flyte 0.0.1b0__py3-none-any.whl → 2.0.0b46__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- flyte/__init__.py +83 -30
- flyte/_bin/connect.py +61 -0
- flyte/_bin/debug.py +38 -0
- flyte/_bin/runtime.py +87 -19
- flyte/_bin/serve.py +351 -0
- flyte/_build.py +3 -2
- flyte/_cache/cache.py +6 -5
- flyte/_cache/local_cache.py +216 -0
- flyte/_code_bundle/_ignore.py +31 -5
- flyte/_code_bundle/_packaging.py +42 -11
- flyte/_code_bundle/_utils.py +57 -34
- flyte/_code_bundle/bundle.py +130 -27
- flyte/_constants.py +1 -0
- flyte/_context.py +21 -5
- flyte/_custom_context.py +73 -0
- flyte/_debug/constants.py +37 -0
- flyte/_debug/utils.py +17 -0
- flyte/_debug/vscode.py +315 -0
- flyte/_deploy.py +396 -75
- flyte/_deployer.py +109 -0
- flyte/_environment.py +94 -11
- flyte/_excepthook.py +37 -0
- flyte/_group.py +2 -1
- flyte/_hash.py +1 -16
- flyte/_image.py +544 -234
- flyte/_initialize.py +443 -294
- flyte/_interface.py +40 -5
- flyte/_internal/controllers/__init__.py +22 -8
- flyte/_internal/controllers/_local_controller.py +159 -35
- flyte/_internal/controllers/_trace.py +18 -10
- flyte/_internal/controllers/remote/__init__.py +38 -9
- flyte/_internal/controllers/remote/_action.py +82 -12
- flyte/_internal/controllers/remote/_client.py +6 -2
- flyte/_internal/controllers/remote/_controller.py +290 -64
- flyte/_internal/controllers/remote/_core.py +155 -95
- flyte/_internal/controllers/remote/_informer.py +40 -20
- flyte/_internal/controllers/remote/_service_protocol.py +2 -2
- flyte/_internal/imagebuild/__init__.py +2 -10
- flyte/_internal/imagebuild/docker_builder.py +391 -84
- flyte/_internal/imagebuild/image_builder.py +111 -55
- flyte/_internal/imagebuild/remote_builder.py +409 -0
- flyte/_internal/imagebuild/utils.py +79 -0
- flyte/_internal/resolvers/_app_env_module.py +92 -0
- flyte/_internal/resolvers/_task_module.py +5 -38
- flyte/_internal/resolvers/app_env.py +26 -0
- flyte/_internal/resolvers/common.py +8 -1
- flyte/_internal/resolvers/default.py +2 -2
- flyte/_internal/runtime/convert.py +322 -33
- flyte/_internal/runtime/entrypoints.py +106 -18
- flyte/_internal/runtime/io.py +71 -23
- flyte/_internal/runtime/resources_serde.py +21 -7
- flyte/_internal/runtime/reuse.py +125 -0
- flyte/_internal/runtime/rusty.py +196 -0
- flyte/_internal/runtime/task_serde.py +239 -66
- flyte/_internal/runtime/taskrunner.py +48 -8
- flyte/_internal/runtime/trigger_serde.py +162 -0
- flyte/_internal/runtime/types_serde.py +7 -16
- flyte/_keyring/file.py +115 -0
- flyte/_link.py +30 -0
- flyte/_logging.py +241 -42
- flyte/_map.py +312 -0
- flyte/_metrics.py +59 -0
- flyte/_module.py +74 -0
- flyte/_pod.py +30 -0
- flyte/_resources.py +296 -33
- flyte/_retry.py +1 -7
- flyte/_reusable_environment.py +72 -7
- flyte/_run.py +461 -132
- flyte/_secret.py +47 -11
- flyte/_serve.py +333 -0
- flyte/_task.py +245 -56
- flyte/_task_environment.py +219 -97
- flyte/_task_plugins.py +47 -0
- flyte/_tools.py +8 -8
- flyte/_trace.py +15 -24
- flyte/_trigger.py +1027 -0
- flyte/_utils/__init__.py +12 -1
- flyte/_utils/asyn.py +3 -1
- flyte/_utils/async_cache.py +139 -0
- flyte/_utils/coro_management.py +5 -4
- flyte/_utils/description_parser.py +19 -0
- flyte/_utils/docker_credentials.py +173 -0
- flyte/_utils/helpers.py +45 -19
- flyte/_utils/module_loader.py +123 -0
- flyte/_utils/org_discovery.py +57 -0
- flyte/_utils/uv_script_parser.py +8 -1
- flyte/_version.py +16 -3
- flyte/app/__init__.py +27 -0
- flyte/app/_app_environment.py +362 -0
- flyte/app/_connector_environment.py +40 -0
- flyte/app/_deploy.py +130 -0
- flyte/app/_parameter.py +343 -0
- flyte/app/_runtime/__init__.py +3 -0
- flyte/app/_runtime/app_serde.py +383 -0
- flyte/app/_types.py +113 -0
- flyte/app/extras/__init__.py +9 -0
- flyte/app/extras/_auth_middleware.py +217 -0
- flyte/app/extras/_fastapi.py +93 -0
- flyte/app/extras/_model_loader/__init__.py +3 -0
- flyte/app/extras/_model_loader/config.py +7 -0
- flyte/app/extras/_model_loader/loader.py +288 -0
- flyte/cli/__init__.py +12 -0
- flyte/cli/_abort.py +28 -0
- flyte/cli/_build.py +114 -0
- flyte/cli/_common.py +493 -0
- flyte/cli/_create.py +371 -0
- flyte/cli/_delete.py +45 -0
- flyte/cli/_deploy.py +401 -0
- flyte/cli/_gen.py +316 -0
- flyte/cli/_get.py +446 -0
- flyte/cli/_option.py +33 -0
- {union/_cli → flyte/cli}/_params.py +152 -153
- flyte/cli/_plugins.py +209 -0
- flyte/cli/_prefetch.py +292 -0
- flyte/cli/_run.py +690 -0
- flyte/cli/_serve.py +338 -0
- flyte/cli/_update.py +86 -0
- flyte/cli/_user.py +20 -0
- flyte/cli/main.py +246 -0
- flyte/config/__init__.py +3 -0
- flyte/config/_config.py +248 -0
- flyte/config/_internal.py +73 -0
- flyte/config/_reader.py +225 -0
- flyte/connectors/__init__.py +11 -0
- flyte/connectors/_connector.py +330 -0
- flyte/connectors/_server.py +194 -0
- flyte/connectors/utils.py +159 -0
- flyte/errors.py +134 -2
- flyte/extend.py +24 -0
- flyte/extras/_container.py +69 -56
- flyte/git/__init__.py +3 -0
- flyte/git/_config.py +279 -0
- flyte/io/__init__.py +8 -1
- flyte/io/{structured_dataset → _dataframe}/__init__.py +32 -30
- flyte/io/{structured_dataset → _dataframe}/basic_dfs.py +75 -68
- flyte/io/{structured_dataset/structured_dataset.py → _dataframe/dataframe.py} +207 -242
- flyte/io/_dir.py +575 -113
- flyte/io/_file.py +587 -141
- flyte/io/_hashing_io.py +342 -0
- flyte/io/extend.py +7 -0
- flyte/models.py +635 -0
- flyte/prefetch/__init__.py +22 -0
- flyte/prefetch/_hf_model.py +563 -0
- flyte/remote/__init__.py +14 -3
- flyte/remote/_action.py +879 -0
- flyte/remote/_app.py +346 -0
- flyte/remote/_auth_metadata.py +42 -0
- flyte/remote/_client/_protocols.py +62 -4
- flyte/remote/_client/auth/_auth_utils.py +19 -0
- flyte/remote/_client/auth/_authenticators/base.py +8 -2
- flyte/remote/_client/auth/_authenticators/device_code.py +4 -5
- flyte/remote/_client/auth/_authenticators/factory.py +4 -0
- flyte/remote/_client/auth/_authenticators/passthrough.py +79 -0
- flyte/remote/_client/auth/_authenticators/pkce.py +17 -18
- flyte/remote/_client/auth/_channel.py +47 -18
- flyte/remote/_client/auth/_client_config.py +5 -3
- flyte/remote/_client/auth/_keyring.py +15 -2
- flyte/remote/_client/auth/_token_client.py +3 -3
- flyte/remote/_client/controlplane.py +206 -18
- flyte/remote/_common.py +66 -0
- flyte/remote/_data.py +107 -22
- flyte/remote/_logs.py +116 -33
- flyte/remote/_project.py +21 -19
- flyte/remote/_run.py +164 -631
- flyte/remote/_secret.py +72 -29
- flyte/remote/_task.py +387 -46
- flyte/remote/_trigger.py +368 -0
- flyte/remote/_user.py +43 -0
- flyte/report/_report.py +10 -6
- flyte/storage/__init__.py +13 -1
- flyte/storage/_config.py +237 -0
- flyte/storage/_parallel_reader.py +289 -0
- flyte/storage/_storage.py +268 -59
- flyte/syncify/__init__.py +56 -0
- flyte/syncify/_api.py +414 -0
- flyte/types/__init__.py +39 -0
- flyte/types/_interface.py +22 -7
- flyte/{io/pickle/transformer.py → types/_pickle.py} +37 -9
- flyte/types/_string_literals.py +8 -9
- flyte/types/_type_engine.py +230 -129
- flyte/types/_utils.py +1 -1
- flyte-2.0.0b46.data/scripts/debug.py +38 -0
- flyte-2.0.0b46.data/scripts/runtime.py +194 -0
- flyte-2.0.0b46.dist-info/METADATA +352 -0
- flyte-2.0.0b46.dist-info/RECORD +221 -0
- flyte-2.0.0b46.dist-info/entry_points.txt +8 -0
- flyte-2.0.0b46.dist-info/licenses/LICENSE +201 -0
- flyte/_api_commons.py +0 -3
- flyte/_cli/_common.py +0 -287
- flyte/_cli/_create.py +0 -42
- flyte/_cli/_delete.py +0 -23
- flyte/_cli/_deploy.py +0 -140
- flyte/_cli/_get.py +0 -235
- flyte/_cli/_run.py +0 -152
- flyte/_cli/main.py +0 -72
- flyte/_datastructures.py +0 -342
- flyte/_internal/controllers/pbhash.py +0 -39
- flyte/_protos/common/authorization_pb2.py +0 -66
- flyte/_protos/common/authorization_pb2.pyi +0 -108
- flyte/_protos/common/authorization_pb2_grpc.py +0 -4
- flyte/_protos/common/identifier_pb2.py +0 -71
- flyte/_protos/common/identifier_pb2.pyi +0 -82
- flyte/_protos/common/identifier_pb2_grpc.py +0 -4
- flyte/_protos/common/identity_pb2.py +0 -48
- flyte/_protos/common/identity_pb2.pyi +0 -72
- flyte/_protos/common/identity_pb2_grpc.py +0 -4
- flyte/_protos/common/list_pb2.py +0 -36
- flyte/_protos/common/list_pb2.pyi +0 -69
- flyte/_protos/common/list_pb2_grpc.py +0 -4
- flyte/_protos/common/policy_pb2.py +0 -37
- flyte/_protos/common/policy_pb2.pyi +0 -27
- flyte/_protos/common/policy_pb2_grpc.py +0 -4
- flyte/_protos/common/role_pb2.py +0 -37
- flyte/_protos/common/role_pb2.pyi +0 -53
- flyte/_protos/common/role_pb2_grpc.py +0 -4
- flyte/_protos/common/runtime_version_pb2.py +0 -28
- flyte/_protos/common/runtime_version_pb2.pyi +0 -24
- flyte/_protos/common/runtime_version_pb2_grpc.py +0 -4
- flyte/_protos/logs/dataplane/payload_pb2.py +0 -96
- flyte/_protos/logs/dataplane/payload_pb2.pyi +0 -168
- flyte/_protos/logs/dataplane/payload_pb2_grpc.py +0 -4
- flyte/_protos/secret/definition_pb2.py +0 -49
- flyte/_protos/secret/definition_pb2.pyi +0 -93
- flyte/_protos/secret/definition_pb2_grpc.py +0 -4
- flyte/_protos/secret/payload_pb2.py +0 -62
- flyte/_protos/secret/payload_pb2.pyi +0 -94
- flyte/_protos/secret/payload_pb2_grpc.py +0 -4
- flyte/_protos/secret/secret_pb2.py +0 -38
- flyte/_protos/secret/secret_pb2.pyi +0 -6
- flyte/_protos/secret/secret_pb2_grpc.py +0 -198
- flyte/_protos/secret/secret_pb2_grpc_grpc.py +0 -198
- flyte/_protos/validate/validate/validate_pb2.py +0 -76
- flyte/_protos/workflow/node_execution_service_pb2.py +0 -26
- flyte/_protos/workflow/node_execution_service_pb2.pyi +0 -4
- flyte/_protos/workflow/node_execution_service_pb2_grpc.py +0 -32
- flyte/_protos/workflow/queue_service_pb2.py +0 -106
- flyte/_protos/workflow/queue_service_pb2.pyi +0 -141
- flyte/_protos/workflow/queue_service_pb2_grpc.py +0 -172
- flyte/_protos/workflow/run_definition_pb2.py +0 -128
- flyte/_protos/workflow/run_definition_pb2.pyi +0 -310
- flyte/_protos/workflow/run_definition_pb2_grpc.py +0 -4
- flyte/_protos/workflow/run_logs_service_pb2.py +0 -41
- flyte/_protos/workflow/run_logs_service_pb2.pyi +0 -28
- flyte/_protos/workflow/run_logs_service_pb2_grpc.py +0 -69
- flyte/_protos/workflow/run_service_pb2.py +0 -133
- flyte/_protos/workflow/run_service_pb2.pyi +0 -175
- flyte/_protos/workflow/run_service_pb2_grpc.py +0 -412
- flyte/_protos/workflow/state_service_pb2.py +0 -58
- flyte/_protos/workflow/state_service_pb2.pyi +0 -71
- flyte/_protos/workflow/state_service_pb2_grpc.py +0 -138
- flyte/_protos/workflow/task_definition_pb2.py +0 -72
- flyte/_protos/workflow/task_definition_pb2.pyi +0 -65
- flyte/_protos/workflow/task_definition_pb2_grpc.py +0 -4
- flyte/_protos/workflow/task_service_pb2.py +0 -44
- flyte/_protos/workflow/task_service_pb2.pyi +0 -31
- flyte/_protos/workflow/task_service_pb2_grpc.py +0 -104
- flyte/io/_dataframe.py +0 -0
- flyte/io/pickle/__init__.py +0 -0
- flyte/remote/_console.py +0 -18
- flyte-0.0.1b0.dist-info/METADATA +0 -179
- flyte-0.0.1b0.dist-info/RECORD +0 -390
- flyte-0.0.1b0.dist-info/entry_points.txt +0 -3
- union/__init__.py +0 -54
- union/_api_commons.py +0 -3
- union/_bin/__init__.py +0 -0
- union/_bin/runtime.py +0 -113
- union/_build.py +0 -25
- union/_cache/__init__.py +0 -12
- union/_cache/cache.py +0 -141
- union/_cache/defaults.py +0 -9
- union/_cache/policy_function_body.py +0 -42
- union/_cli/__init__.py +0 -0
- union/_cli/_common.py +0 -263
- union/_cli/_create.py +0 -40
- union/_cli/_delete.py +0 -23
- union/_cli/_deploy.py +0 -120
- union/_cli/_get.py +0 -162
- union/_cli/_run.py +0 -150
- union/_cli/main.py +0 -72
- union/_code_bundle/__init__.py +0 -8
- union/_code_bundle/_ignore.py +0 -113
- union/_code_bundle/_packaging.py +0 -187
- union/_code_bundle/_utils.py +0 -342
- union/_code_bundle/bundle.py +0 -176
- union/_context.py +0 -146
- union/_datastructures.py +0 -295
- union/_deploy.py +0 -185
- union/_doc.py +0 -29
- union/_docstring.py +0 -26
- union/_environment.py +0 -43
- union/_group.py +0 -31
- union/_hash.py +0 -23
- union/_image.py +0 -760
- union/_initialize.py +0 -585
- union/_interface.py +0 -84
- union/_internal/__init__.py +0 -3
- union/_internal/controllers/__init__.py +0 -77
- union/_internal/controllers/_local_controller.py +0 -77
- union/_internal/controllers/pbhash.py +0 -39
- union/_internal/controllers/remote/__init__.py +0 -40
- union/_internal/controllers/remote/_action.py +0 -131
- union/_internal/controllers/remote/_client.py +0 -43
- union/_internal/controllers/remote/_controller.py +0 -169
- union/_internal/controllers/remote/_core.py +0 -341
- union/_internal/controllers/remote/_informer.py +0 -260
- union/_internal/controllers/remote/_service_protocol.py +0 -44
- union/_internal/imagebuild/__init__.py +0 -11
- union/_internal/imagebuild/docker_builder.py +0 -416
- union/_internal/imagebuild/image_builder.py +0 -243
- union/_internal/imagebuild/remote_builder.py +0 -0
- union/_internal/resolvers/__init__.py +0 -0
- union/_internal/resolvers/_task_module.py +0 -31
- union/_internal/resolvers/common.py +0 -24
- union/_internal/resolvers/default.py +0 -27
- union/_internal/runtime/__init__.py +0 -0
- union/_internal/runtime/convert.py +0 -163
- union/_internal/runtime/entrypoints.py +0 -121
- union/_internal/runtime/io.py +0 -136
- union/_internal/runtime/resources_serde.py +0 -134
- union/_internal/runtime/task_serde.py +0 -202
- union/_internal/runtime/taskrunner.py +0 -179
- union/_internal/runtime/types_serde.py +0 -53
- union/_logging.py +0 -124
- union/_protos/__init__.py +0 -0
- union/_protos/common/authorization_pb2.py +0 -66
- union/_protos/common/authorization_pb2.pyi +0 -106
- union/_protos/common/authorization_pb2_grpc.py +0 -4
- union/_protos/common/identifier_pb2.py +0 -71
- union/_protos/common/identifier_pb2.pyi +0 -82
- union/_protos/common/identifier_pb2_grpc.py +0 -4
- union/_protos/common/identity_pb2.py +0 -48
- union/_protos/common/identity_pb2.pyi +0 -72
- union/_protos/common/identity_pb2_grpc.py +0 -4
- union/_protos/common/list_pb2.py +0 -36
- union/_protos/common/list_pb2.pyi +0 -69
- union/_protos/common/list_pb2_grpc.py +0 -4
- union/_protos/common/policy_pb2.py +0 -37
- union/_protos/common/policy_pb2.pyi +0 -27
- union/_protos/common/policy_pb2_grpc.py +0 -4
- union/_protos/common/role_pb2.py +0 -37
- union/_protos/common/role_pb2.pyi +0 -51
- union/_protos/common/role_pb2_grpc.py +0 -4
- union/_protos/common/runtime_version_pb2.py +0 -28
- union/_protos/common/runtime_version_pb2.pyi +0 -24
- union/_protos/common/runtime_version_pb2_grpc.py +0 -4
- union/_protos/logs/dataplane/payload_pb2.py +0 -96
- union/_protos/logs/dataplane/payload_pb2.pyi +0 -168
- union/_protos/logs/dataplane/payload_pb2_grpc.py +0 -4
- union/_protos/secret/definition_pb2.py +0 -49
- union/_protos/secret/definition_pb2.pyi +0 -93
- union/_protos/secret/definition_pb2_grpc.py +0 -4
- union/_protos/secret/payload_pb2.py +0 -62
- union/_protos/secret/payload_pb2.pyi +0 -94
- union/_protos/secret/payload_pb2_grpc.py +0 -4
- union/_protos/secret/secret_pb2.py +0 -38
- union/_protos/secret/secret_pb2.pyi +0 -6
- union/_protos/secret/secret_pb2_grpc.py +0 -198
- union/_protos/validate/validate/validate_pb2.py +0 -76
- union/_protos/workflow/node_execution_service_pb2.py +0 -26
- union/_protos/workflow/node_execution_service_pb2.pyi +0 -4
- union/_protos/workflow/node_execution_service_pb2_grpc.py +0 -32
- union/_protos/workflow/queue_service_pb2.py +0 -75
- union/_protos/workflow/queue_service_pb2.pyi +0 -103
- union/_protos/workflow/queue_service_pb2_grpc.py +0 -172
- union/_protos/workflow/run_definition_pb2.py +0 -100
- union/_protos/workflow/run_definition_pb2.pyi +0 -256
- union/_protos/workflow/run_definition_pb2_grpc.py +0 -4
- union/_protos/workflow/run_logs_service_pb2.py +0 -41
- union/_protos/workflow/run_logs_service_pb2.pyi +0 -28
- union/_protos/workflow/run_logs_service_pb2_grpc.py +0 -69
- union/_protos/workflow/run_service_pb2.py +0 -133
- union/_protos/workflow/run_service_pb2.pyi +0 -173
- union/_protos/workflow/run_service_pb2_grpc.py +0 -412
- union/_protos/workflow/state_service_pb2.py +0 -58
- union/_protos/workflow/state_service_pb2.pyi +0 -69
- union/_protos/workflow/state_service_pb2_grpc.py +0 -138
- union/_protos/workflow/task_definition_pb2.py +0 -72
- union/_protos/workflow/task_definition_pb2.pyi +0 -65
- union/_protos/workflow/task_definition_pb2_grpc.py +0 -4
- union/_protos/workflow/task_service_pb2.py +0 -44
- union/_protos/workflow/task_service_pb2.pyi +0 -31
- union/_protos/workflow/task_service_pb2_grpc.py +0 -104
- union/_resources.py +0 -226
- union/_retry.py +0 -32
- union/_reusable_environment.py +0 -25
- union/_run.py +0 -374
- union/_secret.py +0 -61
- union/_task.py +0 -354
- union/_task_environment.py +0 -186
- union/_timeout.py +0 -47
- union/_tools.py +0 -27
- union/_utils/__init__.py +0 -11
- union/_utils/asyn.py +0 -119
- union/_utils/file_handling.py +0 -71
- union/_utils/helpers.py +0 -46
- union/_utils/lazy_module.py +0 -54
- union/_utils/uv_script_parser.py +0 -49
- union/_version.py +0 -21
- union/connectors/__init__.py +0 -0
- union/errors.py +0 -128
- union/extras/__init__.py +0 -5
- union/extras/_container.py +0 -263
- union/io/__init__.py +0 -11
- union/io/_dataframe.py +0 -0
- union/io/_dir.py +0 -425
- union/io/_file.py +0 -418
- union/io/pickle/__init__.py +0 -0
- union/io/pickle/transformer.py +0 -117
- union/io/structured_dataset/__init__.py +0 -122
- union/io/structured_dataset/basic_dfs.py +0 -219
- union/io/structured_dataset/structured_dataset.py +0 -1057
- union/py.typed +0 -0
- union/remote/__init__.py +0 -23
- union/remote/_client/__init__.py +0 -0
- union/remote/_client/_protocols.py +0 -129
- union/remote/_client/auth/__init__.py +0 -12
- union/remote/_client/auth/_authenticators/__init__.py +0 -0
- union/remote/_client/auth/_authenticators/base.py +0 -391
- union/remote/_client/auth/_authenticators/client_credentials.py +0 -73
- union/remote/_client/auth/_authenticators/device_code.py +0 -120
- union/remote/_client/auth/_authenticators/external_command.py +0 -77
- union/remote/_client/auth/_authenticators/factory.py +0 -200
- union/remote/_client/auth/_authenticators/pkce.py +0 -515
- union/remote/_client/auth/_channel.py +0 -184
- union/remote/_client/auth/_client_config.py +0 -83
- union/remote/_client/auth/_default_html.py +0 -32
- union/remote/_client/auth/_grpc_utils/__init__.py +0 -0
- union/remote/_client/auth/_grpc_utils/auth_interceptor.py +0 -204
- union/remote/_client/auth/_grpc_utils/default_metadata_interceptor.py +0 -144
- union/remote/_client/auth/_keyring.py +0 -154
- union/remote/_client/auth/_token_client.py +0 -258
- union/remote/_client/auth/errors.py +0 -16
- union/remote/_client/controlplane.py +0 -86
- union/remote/_data.py +0 -149
- union/remote/_logs.py +0 -74
- union/remote/_project.py +0 -86
- union/remote/_run.py +0 -820
- union/remote/_secret.py +0 -132
- union/remote/_task.py +0 -193
- union/report/__init__.py +0 -3
- union/report/_report.py +0 -178
- union/report/_template.html +0 -124
- union/storage/__init__.py +0 -24
- union/storage/_remote_fs.py +0 -34
- union/storage/_storage.py +0 -247
- union/storage/_utils.py +0 -5
- union/types/__init__.py +0 -11
- union/types/_renderer.py +0 -162
- union/types/_string_literals.py +0 -120
- union/types/_type_engine.py +0 -2131
- union/types/_utils.py +0 -80
- /flyte/{_cli → _debug}/__init__.py +0 -0
- /flyte/{_protos → _keyring}/__init__.py +0 -0
- {flyte-0.0.1b0.dist-info → flyte-2.0.0b46.dist-info}/WHEEL +0 -0
- {flyte-0.0.1b0.dist-info → flyte-2.0.0b46.dist-info}/top_level.txt +0 -0
flyte/__init__.py
CHANGED
|
@@ -1,32 +1,85 @@
|
|
|
1
1
|
"""
|
|
2
|
-
Flyte SDK for authoring
|
|
2
|
+
Flyte SDK for authoring compound AI applications, services and workflows.
|
|
3
|
+
"""
|
|
3
4
|
|
|
4
|
-
|
|
5
|
+
from __future__ import annotations
|
|
5
6
|
|
|
6
|
-
|
|
7
|
+
import sys
|
|
7
8
|
|
|
8
|
-
|
|
9
|
+
from ._build import build
|
|
10
|
+
from ._cache import Cache, CachePolicy, CacheRequest
|
|
11
|
+
from ._context import ctx
|
|
12
|
+
from ._custom_context import custom_context, get_custom_context
|
|
13
|
+
from ._deploy import build_images, deploy
|
|
14
|
+
from ._environment import Environment
|
|
15
|
+
from ._excepthook import custom_excepthook
|
|
16
|
+
from ._group import group
|
|
17
|
+
from ._image import Image
|
|
18
|
+
from ._initialize import current_domain, init, init_from_api_key, init_from_config, init_in_cluster, init_passthrough
|
|
19
|
+
from ._link import Link
|
|
20
|
+
from ._logging import logger
|
|
21
|
+
from ._map import map
|
|
22
|
+
from ._pod import PodTemplate
|
|
23
|
+
from ._resources import AMD_GPU, GPU, HABANA_GAUDI, TPU, Device, DeviceClass, Neuron, Resources
|
|
24
|
+
from ._retry import RetryStrategy
|
|
25
|
+
from ._reusable_environment import ReusePolicy
|
|
26
|
+
from ._run import run, with_runcontext
|
|
27
|
+
from ._secret import Secret, SecretRequest
|
|
28
|
+
from ._serve import serve, with_servecontext
|
|
29
|
+
from ._task_environment import TaskEnvironment
|
|
30
|
+
from ._timeout import Timeout, TimeoutType
|
|
31
|
+
from ._trace import trace
|
|
32
|
+
from ._trigger import Cron, FixedRate, Trigger, TriggerTime
|
|
33
|
+
from ._version import __version__
|
|
9
34
|
|
|
10
|
-
|
|
11
|
-
|
|
35
|
+
sys.excepthook = custom_excepthook
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def _silence_grpc_warnings():
|
|
39
|
+
"""
|
|
40
|
+
Silences gRPC warnings that can clutter the output.
|
|
41
|
+
"""
|
|
42
|
+
import os
|
|
43
|
+
|
|
44
|
+
# Set environment variables for gRPC, this reduces log spew and avoids unnecessary warnings
|
|
45
|
+
# before importing grpc
|
|
46
|
+
if "GRPC_VERBOSITY" not in os.environ:
|
|
47
|
+
os.environ["GRPC_VERBOSITY"] = "ERROR"
|
|
48
|
+
os.environ["GRPC_CPP_MIN_LOG_LEVEL"] = "ERROR"
|
|
49
|
+
# Disable fork support (stops "skipping fork() handlers")
|
|
50
|
+
os.environ["GRPC_ENABLE_FORK_SUPPORT"] = "0"
|
|
51
|
+
# Reduce absl/glog verbosity
|
|
52
|
+
os.environ["GLOG_minloglevel"] = "2"
|
|
53
|
+
os.environ["ABSL_LOG"] = "0"
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
_silence_grpc_warnings()
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
def version() -> str:
|
|
60
|
+
"""
|
|
61
|
+
Returns the version of the Flyte SDK.
|
|
62
|
+
"""
|
|
63
|
+
return __version__
|
|
12
64
|
|
|
13
|
-
@env.task
|
|
14
|
-
async def my_task():
|
|
15
|
-
pass
|
|
16
|
-
```
|
|
17
|
-
"""
|
|
18
65
|
|
|
19
66
|
__all__ = [
|
|
20
|
-
"
|
|
21
|
-
"GCS",
|
|
67
|
+
"AMD_GPU",
|
|
22
68
|
"GPU",
|
|
23
|
-
"
|
|
69
|
+
"HABANA_GAUDI",
|
|
24
70
|
"TPU",
|
|
25
71
|
"Cache",
|
|
26
72
|
"CachePolicy",
|
|
27
73
|
"CacheRequest",
|
|
74
|
+
"Cron",
|
|
28
75
|
"Device",
|
|
76
|
+
"DeviceClass",
|
|
77
|
+
"Environment",
|
|
78
|
+
"FixedRate",
|
|
29
79
|
"Image",
|
|
80
|
+
"Link",
|
|
81
|
+
"Neuron",
|
|
82
|
+
"PodTemplate",
|
|
30
83
|
"Resources",
|
|
31
84
|
"RetryStrategy",
|
|
32
85
|
"ReusePolicy",
|
|
@@ -35,28 +88,28 @@ __all__ = [
|
|
|
35
88
|
"TaskEnvironment",
|
|
36
89
|
"Timeout",
|
|
37
90
|
"TimeoutType",
|
|
91
|
+
"Trigger",
|
|
92
|
+
"TriggerTime",
|
|
38
93
|
"__version__",
|
|
94
|
+
"build",
|
|
95
|
+
"build_images",
|
|
39
96
|
"ctx",
|
|
97
|
+
"current_domain",
|
|
98
|
+
"custom_context",
|
|
40
99
|
"deploy",
|
|
100
|
+
"get_custom_context",
|
|
41
101
|
"group",
|
|
42
102
|
"init",
|
|
103
|
+
"init_from_api_key",
|
|
104
|
+
"init_from_config",
|
|
105
|
+
"init_in_cluster",
|
|
106
|
+
"init_passthrough",
|
|
107
|
+
"logger",
|
|
108
|
+
"map",
|
|
43
109
|
"run",
|
|
110
|
+
"serve",
|
|
44
111
|
"trace",
|
|
112
|
+
"version",
|
|
45
113
|
"with_runcontext",
|
|
114
|
+
"with_servecontext",
|
|
46
115
|
]
|
|
47
|
-
|
|
48
|
-
from ._cache import Cache, CachePolicy, CacheRequest
|
|
49
|
-
from ._context import ctx
|
|
50
|
-
from ._deploy import deploy
|
|
51
|
-
from ._group import group
|
|
52
|
-
from ._image import Image
|
|
53
|
-
from ._initialize import ABFS, GCS, S3, init
|
|
54
|
-
from ._resources import GPU, TPU, Device, Resources
|
|
55
|
-
from ._retry import RetryStrategy
|
|
56
|
-
from ._reusable_environment import ReusePolicy
|
|
57
|
-
from ._run import run, with_runcontext
|
|
58
|
-
from ._secret import Secret, SecretRequest
|
|
59
|
-
from ._task_environment import TaskEnvironment
|
|
60
|
-
from ._timeout import Timeout, TimeoutType
|
|
61
|
-
from ._trace import trace
|
|
62
|
-
from ._version import __version__
|
flyte/_bin/connect.py
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
from typing import List
|
|
2
|
+
|
|
3
|
+
import click
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
@click.group()
|
|
7
|
+
def _connect():
|
|
8
|
+
"""Debug commands for Flyte."""
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@_connect.command()
|
|
12
|
+
@click.option(
|
|
13
|
+
"--port",
|
|
14
|
+
default="8000",
|
|
15
|
+
is_flag=False,
|
|
16
|
+
type=int,
|
|
17
|
+
help="Grpc port for the connector service. Defaults to 8000",
|
|
18
|
+
)
|
|
19
|
+
@click.option(
|
|
20
|
+
"--prometheus_port",
|
|
21
|
+
default="9090",
|
|
22
|
+
is_flag=False,
|
|
23
|
+
type=int,
|
|
24
|
+
help="Prometheus port for the connector service. Defaults to 9090",
|
|
25
|
+
)
|
|
26
|
+
@click.option(
|
|
27
|
+
"--worker",
|
|
28
|
+
default="10",
|
|
29
|
+
is_flag=False,
|
|
30
|
+
type=int,
|
|
31
|
+
help="Number of workers for the grpc server",
|
|
32
|
+
)
|
|
33
|
+
@click.option(
|
|
34
|
+
"--timeout",
|
|
35
|
+
default=None,
|
|
36
|
+
is_flag=False,
|
|
37
|
+
type=int,
|
|
38
|
+
help="It will wait for the specified number of seconds before shutting down grpc server. It should only be used "
|
|
39
|
+
"for testing.",
|
|
40
|
+
)
|
|
41
|
+
@click.option(
|
|
42
|
+
"--modules",
|
|
43
|
+
required=False,
|
|
44
|
+
multiple=True,
|
|
45
|
+
type=str,
|
|
46
|
+
help="List of additional files or module that defines the connector",
|
|
47
|
+
)
|
|
48
|
+
@click.pass_context
|
|
49
|
+
def main(
|
|
50
|
+
_: click.Context, port: int, prometheus_port: int, worker: int, timeout: int | None, modules: List[str] | None
|
|
51
|
+
):
|
|
52
|
+
"""
|
|
53
|
+
Start a grpc server for the connector service.
|
|
54
|
+
"""
|
|
55
|
+
from flyte.connectors import ConnectorService
|
|
56
|
+
|
|
57
|
+
ConnectorService.run(port, prometheus_port, worker, timeout, modules)
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
if __name__ == "__main__":
|
|
61
|
+
_connect()
|
flyte/_bin/debug.py
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import click
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
@click.group()
|
|
5
|
+
def _debug():
|
|
6
|
+
"""Debug commands for Flyte."""
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@_debug.command("resume")
|
|
10
|
+
@click.option("--pid", "-m", type=int, required=True, help="PID of the vscode server.")
|
|
11
|
+
def resume(pid):
|
|
12
|
+
"""
|
|
13
|
+
Resume a Flyte task for debugging purposes.
|
|
14
|
+
|
|
15
|
+
Args:
|
|
16
|
+
pid (int): PID of the vscode server.
|
|
17
|
+
"""
|
|
18
|
+
import os
|
|
19
|
+
import signal
|
|
20
|
+
|
|
21
|
+
print("Terminating server and resuming task.")
|
|
22
|
+
answer = (
|
|
23
|
+
input(
|
|
24
|
+
"This operation will kill the server. All unsaved data will be lost,"
|
|
25
|
+
" and you will no longer be able to connect to it. Do you really want to terminate? (Y/N): "
|
|
26
|
+
)
|
|
27
|
+
.strip()
|
|
28
|
+
.upper()
|
|
29
|
+
)
|
|
30
|
+
if answer == "Y":
|
|
31
|
+
os.kill(pid, signal.SIGTERM)
|
|
32
|
+
print("The server has been terminated and the task has been resumed.")
|
|
33
|
+
else:
|
|
34
|
+
print("Operation canceled.")
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
if __name__ == "__main__":
|
|
38
|
+
_debug()
|
flyte/_bin/runtime.py
CHANGED
|
@@ -12,23 +12,28 @@ from typing import List
|
|
|
12
12
|
|
|
13
13
|
import click
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
# ACTION_NAME = "_U_ACTION_NAME"
|
|
17
|
-
# RUN_NAME = "_U_RUN_NAME"
|
|
18
|
-
# PROJECT_NAME = "_U_PROJECT_NAME"
|
|
19
|
-
# DOMAIN_NAME = "_U_DOMAIN_NAME"
|
|
20
|
-
# ORG_NAME = "_U_ORG_NAME"
|
|
15
|
+
from flyte.models import PathRewrite
|
|
21
16
|
|
|
22
17
|
ACTION_NAME = "ACTION_NAME"
|
|
23
18
|
RUN_NAME = "RUN_NAME"
|
|
24
|
-
PROJECT_NAME = "
|
|
25
|
-
DOMAIN_NAME = "
|
|
19
|
+
PROJECT_NAME = "FLYTE_INTERNAL_EXECUTION_PROJECT"
|
|
20
|
+
DOMAIN_NAME = "FLYTE_INTERNAL_EXECUTION_DOMAIN"
|
|
26
21
|
ORG_NAME = "_U_ORG_NAME"
|
|
27
22
|
ENDPOINT_OVERRIDE = "_U_EP_OVERRIDE"
|
|
23
|
+
INSECURE_SKIP_VERIFY_OVERRIDE = "_U_INSECURE_SKIP_VERIFY"
|
|
28
24
|
RUN_OUTPUT_BASE_DIR = "_U_RUN_BASE"
|
|
25
|
+
FLYTE_ENABLE_VSCODE_KEY = "_F_E_VS"
|
|
29
26
|
|
|
27
|
+
_UNION_EAGER_API_KEY_ENV_VAR = "_UNION_EAGER_API_KEY"
|
|
28
|
+
_F_PATH_REWRITE = "_F_PATH_REWRITE"
|
|
30
29
|
|
|
31
|
-
|
|
30
|
+
|
|
31
|
+
@click.group()
|
|
32
|
+
def _pass_through():
|
|
33
|
+
pass
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
@_pass_through.command("a0")
|
|
32
37
|
@click.option("--inputs", "-i", required=True)
|
|
33
38
|
@click.option("--outputs-path", "-o", required=True)
|
|
34
39
|
@click.option("--version", "-v", required=True)
|
|
@@ -41,6 +46,8 @@ RUN_OUTPUT_BASE_DIR = "_U_RUN_BASE"
|
|
|
41
46
|
@click.option("--project", envvar=PROJECT_NAME, required=False)
|
|
42
47
|
@click.option("--domain", envvar=DOMAIN_NAME, required=False)
|
|
43
48
|
@click.option("--org", envvar=ORG_NAME, required=False)
|
|
49
|
+
@click.option("--debug", envvar=FLYTE_ENABLE_VSCODE_KEY, type=click.BOOL, required=False)
|
|
50
|
+
@click.option("--interactive-mode", type=click.BOOL, required=False)
|
|
44
51
|
@click.option("--image-cache", required=False)
|
|
45
52
|
@click.option("--tgz", required=False)
|
|
46
53
|
@click.option("--pkl", required=False)
|
|
@@ -51,12 +58,16 @@ RUN_OUTPUT_BASE_DIR = "_U_RUN_BASE"
|
|
|
51
58
|
type=click.UNPROCESSED,
|
|
52
59
|
nargs=-1,
|
|
53
60
|
)
|
|
61
|
+
@click.pass_context
|
|
54
62
|
def main(
|
|
63
|
+
ctx: click.Context,
|
|
55
64
|
run_name: str,
|
|
56
65
|
name: str,
|
|
57
66
|
project: str,
|
|
58
67
|
domain: str,
|
|
59
68
|
org: str,
|
|
69
|
+
debug: bool,
|
|
70
|
+
interactive_mode: bool,
|
|
60
71
|
image_cache: str,
|
|
61
72
|
version: str,
|
|
62
73
|
inputs: str,
|
|
@@ -73,13 +84,24 @@ def main(
|
|
|
73
84
|
):
|
|
74
85
|
sys.path.insert(0, ".")
|
|
75
86
|
|
|
87
|
+
import faulthandler
|
|
88
|
+
import signal
|
|
89
|
+
|
|
90
|
+
import flyte
|
|
76
91
|
import flyte._utils as utils
|
|
77
|
-
|
|
78
|
-
|
|
92
|
+
import flyte.errors
|
|
93
|
+
import flyte.storage as storage
|
|
94
|
+
from flyte._initialize import init_in_cluster
|
|
79
95
|
from flyte._internal.controllers import create_controller
|
|
80
96
|
from flyte._internal.imagebuild.image_builder import ImageCache
|
|
81
97
|
from flyte._internal.runtime.entrypoints import load_and_run_task
|
|
98
|
+
from flyte._logging import logger
|
|
99
|
+
from flyte.models import ActionID, Checkpoints, CodeBundle, RawDataPath
|
|
100
|
+
|
|
101
|
+
logger.info("Registering faulthandler for SIGUSR1")
|
|
102
|
+
faulthandler.register(signal.SIGUSR1)
|
|
82
103
|
|
|
104
|
+
logger.info(f"Initializing flyte runtime - version {flyte.__version__}")
|
|
83
105
|
assert org, "Org is required for now"
|
|
84
106
|
assert project, "Project is required"
|
|
85
107
|
assert domain, "Domain is required"
|
|
@@ -91,21 +113,42 @@ def main(
|
|
|
91
113
|
if name.startswith("{{"):
|
|
92
114
|
name = os.getenv("ACTION_NAME", "")
|
|
93
115
|
|
|
94
|
-
|
|
116
|
+
logger.warning(f"Flyte runtime started for action {name} with run name {run_name}")
|
|
117
|
+
|
|
118
|
+
if debug and name == "a0":
|
|
119
|
+
from flyte._debug.vscode import _start_vscode_server
|
|
95
120
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
121
|
+
asyncio.run(_start_vscode_server(ctx))
|
|
122
|
+
|
|
123
|
+
bundle = None
|
|
124
|
+
if tgz or pkl:
|
|
125
|
+
bundle = CodeBundle(tgz=tgz, pkl=pkl, destination=dest, computed_version=version)
|
|
126
|
+
|
|
127
|
+
controller_kwargs = init_in_cluster(org=org, project=project, domain=domain)
|
|
128
|
+
# Controller is created with the same kwargs as init, so that it can be used to run tasks
|
|
129
|
+
controller = create_controller(ct="remote", **controller_kwargs)
|
|
100
130
|
|
|
101
131
|
ic = ImageCache.from_transport(image_cache) if image_cache else None
|
|
102
132
|
|
|
133
|
+
path_rewrite_cfg = os.getenv(_F_PATH_REWRITE, None)
|
|
134
|
+
path_rewrite = None
|
|
135
|
+
if path_rewrite_cfg:
|
|
136
|
+
potential_path_rewrite = PathRewrite.from_str(path_rewrite_cfg)
|
|
137
|
+
if storage.exists_sync(potential_path_rewrite.new_prefix):
|
|
138
|
+
path_rewrite = potential_path_rewrite
|
|
139
|
+
logger.info(f"Path rewrite configured for {path_rewrite.new_prefix}")
|
|
140
|
+
else:
|
|
141
|
+
logger.error(
|
|
142
|
+
f"Path rewrite failed for path {potential_path_rewrite.new_prefix}, "
|
|
143
|
+
f"not found, reverting to original path {potential_path_rewrite.old_prefix}"
|
|
144
|
+
)
|
|
145
|
+
|
|
103
146
|
# Create a coroutine to load the task and run it
|
|
104
147
|
task_coroutine = load_and_run_task(
|
|
105
148
|
resolver=resolver,
|
|
106
149
|
resolver_args=resolver_args,
|
|
107
150
|
action=ActionID(name=name, run_name=run_name, project=project, domain=domain, org=org),
|
|
108
|
-
raw_data_path=RawDataPath(path=raw_data_path),
|
|
151
|
+
raw_data_path=RawDataPath(path=raw_data_path, path_rewrite=path_rewrite),
|
|
109
152
|
checkpoints=Checkpoints(checkpoint_path, prev_checkpoint),
|
|
110
153
|
code_bundle=bundle,
|
|
111
154
|
input_path=inputs,
|
|
@@ -114,13 +157,38 @@ def main(
|
|
|
114
157
|
version=version,
|
|
115
158
|
controller=controller,
|
|
116
159
|
image_cache=ic,
|
|
160
|
+
interactive_mode=interactive_mode or debug,
|
|
117
161
|
)
|
|
118
162
|
# Create a coroutine to watch for errors
|
|
119
163
|
controller_failure = controller.watch_for_errors()
|
|
120
164
|
|
|
121
165
|
# Run both coroutines concurrently and wait for first to finish and cancel the other
|
|
122
166
|
async def _run_and_stop():
|
|
123
|
-
|
|
124
|
-
|
|
167
|
+
loop = asyncio.get_event_loop()
|
|
168
|
+
loop.set_exception_handler(flyte.errors.silence_grpc_polling_error)
|
|
169
|
+
try:
|
|
170
|
+
await utils.run_coros(controller_failure, task_coroutine)
|
|
171
|
+
await controller.stop()
|
|
172
|
+
except flyte.errors.RuntimeSystemError as e:
|
|
173
|
+
logger.error(f"Runtime system error: {e}")
|
|
174
|
+
from flyte._internal.runtime.convert import convert_from_native_to_error
|
|
175
|
+
from flyte._internal.runtime.io import upload_error
|
|
176
|
+
|
|
177
|
+
logger.error(f"Flyte runtime failed for action {name} with run name {run_name}, error: {e}")
|
|
178
|
+
err = convert_from_native_to_error(e)
|
|
179
|
+
path = await upload_error(err.err, outputs_path)
|
|
180
|
+
logger.error(f"Run {run_name} Action {name} failed with error: {err}. Uploaded error to {path}")
|
|
181
|
+
await controller.stop()
|
|
125
182
|
|
|
126
183
|
asyncio.run(_run_and_stop())
|
|
184
|
+
logger.warning(f"Flyte runtime completed for action {name} with run name {run_name}")
|
|
185
|
+
for h in logger.handlers:
|
|
186
|
+
h.flush()
|
|
187
|
+
sys.stdout.flush()
|
|
188
|
+
# We os._exit here to ensure that grpc does not block the exiting! grpc currently has a graceful shutdown system
|
|
189
|
+
# that blocks the process from exiting
|
|
190
|
+
os._exit(0)
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
if __name__ == "__main__":
|
|
194
|
+
_pass_through()
|