samredai commented on a change in pull request #3839:
URL: https://github.com/apache/iceberg/pull/3839#discussion_r783454000
##########
File path: python/src/iceberg/types.py
##########
@@ -157,15 +157,107 @@ def value(self) -> NestedField:
return self._value_field
-BooleanType = Type("boolean", "BooleanType", is_primitive=True)
-IntegerType = Type("int", "IntegerType", is_primitive=True)
-LongType = Type("long", "LongType", is_primitive=True)
-FloatType = Type("float", "FloatType", is_primitive=True)
-DoubleType = Type("double", "DoubleType", is_primitive=True)
-DateType = Type("date", "DateType", is_primitive=True)
-TimeType = Type("time", "TimeType", is_primitive=True)
-TimestampType = Type("timestamp", "TimestampType", is_primitive=True)
-TimestamptzType = Type("timestamptz", "TimestamptzType", is_primitive=True)
-StringType = Type("string", "StringType", is_primitive=True)
-UUIDType = Type("uuid", "UUIDType", is_primitive=True)
-BinaryType = Type("binary", "BinaryType", is_primitive=True)
+class Boolean(Type):
+ """`boolean` from https://iceberg.apache.org/#spec/#primitive-types"""
+
+ def __init__(self):
+ super().__init__("boolean", "BooleanType", is_primitive=True)
+
+
+class Integer(Type):
+ """32-bit signed integers: `int` from
https://iceberg.apache.org/#spec/#primitive-types"""
+
+ max: int = 2147483647
+
+ min: int = -2147483648
+
+ def __init__(self):
+ super().__init__("int", "IntegerType", is_primitive=True)
+
+
+class Long(Type):
+ """64-bit signed integers: `long` from
https://iceberg.apache.org/#spec/#primitive-types"""
Review comment:
```py
"""A Long data type in Iceberg can be represented using an instance of
this class. Longs in Iceberg are
64-bit signed integers.
Example:
>>> column_foo = LongType()
>>> isinstance(column_foo, LongType)
True
Attributes:
max (int): The maximum allowed value for Longs, inherited from the
canonical Iceberg implementation
in Java. (returns `9223372036854775807`)
min (int): The minimum allowed value for Longs, inherited from the
canonical Iceberg implementation
in Java (returns `-9223372036854775808`)
"""
```
##########
File path: python/src/iceberg/types.py
##########
@@ -157,15 +157,107 @@ def value(self) -> NestedField:
return self._value_field
-BooleanType = Type("boolean", "BooleanType", is_primitive=True)
-IntegerType = Type("int", "IntegerType", is_primitive=True)
-LongType = Type("long", "LongType", is_primitive=True)
-FloatType = Type("float", "FloatType", is_primitive=True)
-DoubleType = Type("double", "DoubleType", is_primitive=True)
-DateType = Type("date", "DateType", is_primitive=True)
-TimeType = Type("time", "TimeType", is_primitive=True)
-TimestampType = Type("timestamp", "TimestampType", is_primitive=True)
-TimestamptzType = Type("timestamptz", "TimestamptzType", is_primitive=True)
-StringType = Type("string", "StringType", is_primitive=True)
-UUIDType = Type("uuid", "UUIDType", is_primitive=True)
-BinaryType = Type("binary", "BinaryType", is_primitive=True)
+class Boolean(Type):
+ """`boolean` from https://iceberg.apache.org/#spec/#primitive-types"""
+
+ def __init__(self):
+ super().__init__("boolean", "BooleanType", is_primitive=True)
+
+
+class Integer(Type):
+ """32-bit signed integers: `int` from
https://iceberg.apache.org/#spec/#primitive-types"""
+
+ max: int = 2147483647
+
+ min: int = -2147483648
+
+ def __init__(self):
+ super().__init__("int", "IntegerType", is_primitive=True)
+
+
+class Long(Type):
+ """64-bit signed integers: `long` from
https://iceberg.apache.org/#spec/#primitive-types"""
+
+ max: int = 9223372036854775807
+
+ min: int = -9223372036854775808
+
+ def __init__(self):
+ super().__init__("long", "LongType", is_primitive=True)
+
+
+class Float(Type):
+ """32-bit IEEE 754 floating point: `float` from
https://iceberg.apache.org/#spec/#primitive-types"""
Review comment:
```py
"""A Float data type in Iceberg can be represented using an instance of
this class. Floats in Iceberg are
32-bit IEEE 754 floating points and can be promoted to Doubles.
Example:
>>> column_foo = FloatType()
>>> isinstance(column_foo, FloatType)
True
"""
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]