conversions
Utility module for various conversions around PrimitiveType implementations.
This module enables
- Converting partition strings to built-in python objects.
- Converting a value to a byte buffer.
- Converting a byte buffer to a value.
Note
Conversion logic varies based on the PrimitiveType implementation. Therefore conversion functions are defined here as generic functions using the @singledispatch decorator. For each PrimitiveType implementation, a concrete function is registered for each generic conversion function. For PrimitiveType implementations that share the same conversion logic, registrations can be stacked.
from_bytes(primitive_type, b)
¶
Convert bytes to a built-in python value.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
primitive_type
|
PrimitiveType
|
An implementation of the PrimitiveType base class. |
required |
b
|
bytes
|
The bytes to convert. |
required |
Source code in pyiceberg/conversions.py
handle_none(func)
¶
Handle cases where partition values are None
or "HIVE_DEFAULT_PARTITION".
Parameters:
Name | Type | Description | Default |
---|---|---|---|
func
|
Callable
|
A function registered to the singledispatch function |
required |
Source code in pyiceberg/conversions.py
partition_to_py(primitive_type, value_str)
¶
Convert a partition string to a python built-in.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
primitive_type
|
PrimitiveType
|
An implementation of the PrimitiveType base class. |
required |
value_str
|
str
|
A string representation of a partition value. |
required |
Source code in pyiceberg/conversions.py
to_bytes(primitive_type, _)
¶
Convert a built-in python value to bytes.
This conversion follows the serialization scheme for storing single values as individual binary values defined in the Iceberg specification that can be found at https://iceberg.apache.org/spec/#appendix-d-single-value-serialization
Parameters:
Name | Type | Description | Default |
---|---|---|---|
primitive_type
|
PrimitiveType
|
An implementation of the PrimitiveType base class. |
required |
_
|
Union[bool, bytes, Decimal, date, datetime, float, int, str, time, UUID]
|
The value to convert to bytes (The type of this value depends on which dispatched function is used--check dispatchable functions for type hints). |
required |