| Property |
Type |
Description |
CACHE_KEY_METADATA |
str |
|
FLYTE_USE_OLD_DC_FORMAT |
str |
|
MESSAGEPACK |
str |
|
SERIALIZATION_FORMAT |
str |
|
def PydanticTransformer()
| Property |
Type |
Description |
is_async |
bool |
|
name |
None |
|
python_type |
Type[T] |
This returns the python type |
type_assertions_enabled |
bool |
Indicates if the transformer wants type assertions to be enabled at the core type engine layer |
def assert_type(
t: Type[T],
v: T,
)
| Parameter |
Type |
Description |
t |
Type[T] |
|
v |
T |
|
def from_binary_idl(
binary_idl_object: flytekit.models.literals.Binary,
expected_python_type: typing.Type[pydantic.main.BaseModel],
) -> pydantic.main.BaseModel
This function primarily handles deserialization for untyped dicts, dataclasses, Pydantic BaseModels, and attribute access.`
For untyped dict, dataclass, and pydantic basemodel:
Life Cycle (Untyped Dict as example):
python val -> msgpack bytes -> binary literal scalar -> msgpack bytes -> python val
(to_literal) (from_binary_idl)
For attribute access:
Life Cycle:
python val -> msgpack bytes -> binary literal scalar -> resolved golang value -> binary literal scalar -> msgpack bytes -> python val
(to_literal) (propeller attribute access) (from_binary_idl)
| Parameter |
Type |
Description |
binary_idl_object |
flytekit.models.literals.Binary |
|
expected_python_type |
typing.Type[pydantic.main.BaseModel] |
|
def from_generic_idl(
generic: Struct,
expected_python_type: Type[T],
) -> Optional[T]
TODO: Support all Flyte Types.
This is for dataclass attribute access from input created from the Flyte Console.
- This can be removed in the future when the Flyte Console support generate Binary IDL Scalar as input.
| Parameter |
Type |
Description |
generic |
Struct |
|
expected_python_type |
Type[T] |
|
def get_literal_type(
t: typing.Type[pydantic.main.BaseModel],
) -> flytekit.models.types.LiteralType
Converts the python type to a Flyte LiteralType
| Parameter |
Type |
Description |
t |
typing.Type[pydantic.main.BaseModel] |
|
def guess_python_type(
literal_type: LiteralType,
) -> Type[T]
Converts the Flyte LiteralType to a python object type.
| Parameter |
Type |
Description |
literal_type |
LiteralType |
|
def isinstance_generic(
obj,
generic_alias,
)
| Parameter |
Type |
Description |
obj |
|
|
generic_alias |
|
|
def schema_match(
schema: dict,
) -> bool
Check if a JSON schema fragment matches this transformer’s python_type.
For BaseModel subclasses, automatically compares the schema’s title, type, and
required fields against the type’s own JSON schema. For other types, returns
False by default — override if needed.
| Parameter |
Type |
Description |
schema |
dict |
|
def to_generic_literal(
ctx: flytekit.core.context_manager.FlyteContext,
python_val: pydantic.main.BaseModel,
python_type: typing.Type[pydantic.main.BaseModel],
expected: flytekit.models.types.LiteralType,
) -> flytekit.models.literals.Literal
Note: This is deprecated and will be removed in the future.
| Parameter |
Type |
Description |
ctx |
flytekit.core.context_manager.FlyteContext |
|
python_val |
pydantic.main.BaseModel |
|
python_type |
typing.Type[pydantic.main.BaseModel] |
|
expected |
flytekit.models.types.LiteralType |
|
def to_html(
ctx: FlyteContext,
python_val: T,
expected_python_type: Type[T],
) -> str
Converts any python val (dataframe, int, float) to a html string, and it will be wrapped in the HTML div
| Parameter |
Type |
Description |
ctx |
FlyteContext |
|
python_val |
T |
|
expected_python_type |
Type[T] |
|
def to_literal(
ctx: flytekit.core.context_manager.FlyteContext,
python_val: pydantic.main.BaseModel,
python_type: typing.Type[pydantic.main.BaseModel],
expected: flytekit.models.types.LiteralType,
) -> flytekit.models.literals.Literal
For pydantic basemodel, we have to go through json first.
This is for handling enum in basemodel.
More details:
https://github.com/flyteorg/flytekit/pull/2792
| Parameter |
Type |
Description |
ctx |
flytekit.core.context_manager.FlyteContext |
|
python_val |
pydantic.main.BaseModel |
|
python_type |
typing.Type[pydantic.main.BaseModel] |
|
expected |
flytekit.models.types.LiteralType |
|
def to_python_value(
ctx: flytekit.core.context_manager.FlyteContext,
lv: flytekit.models.literals.Literal,
expected_python_type: typing.Type[pydantic.main.BaseModel],
) -> pydantic.main.BaseModel
There will have 2 kinds of literal values:
- protobuf Struct (From Flyte Console)
- binary scalar (Others)
Hence we have to handle 2 kinds of cases.
| Parameter |
Type |
Description |
ctx |
flytekit.core.context_manager.FlyteContext |
|
lv |
flytekit.models.literals.Literal |
|
expected_python_type |
typing.Type[pydantic.main.BaseModel] |
|