tracdap-runtime 0.12.0.dev2__tar.gz → 0.12.0.dev3__tar.gz
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.
- {tracdap_runtime-0.12.0.dev2/tracdap_runtime.egg-info → tracdap_runtime-0.12.0.dev3}/PKG-INFO +1 -1
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/setup.cfg +1 -1
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/__init__.py +1 -1
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/exec/dev_mode.py +55 -6
- tracdap_runtime-0.12.0.dev3/src/tracdap/rt/_impl/grpc/tracdap/metadata/job_pb2.py +165 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/grpc/tracdap/metadata/job_pb2.pyi +22 -4
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/grpc/tracdap/metadata/tag_update_pb2.py +5 -3
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/grpc/tracdap/metadata/tag_update_pb2.pyi +8 -1
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/api/__init__.py +1 -1
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/metadata/__init__.py +33 -32
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/metadata/flow.py +16 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/metadata/job.py +4 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/metadata/tag_update.py +20 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3/tracdap_runtime.egg-info}/PKG-INFO +1 -1
- tracdap_runtime-0.12.0.dev2/src/tracdap/rt/_impl/grpc/tracdap/metadata/job_pb2.py +0 -157
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/LICENSE +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/README.md +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/pyproject.toml +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/__init__.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/core/__init__.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/core/capture.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/core/config_parser.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/core/data.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/core/file_formats.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/core/guard_rails.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/core/logging.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/core/models.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/core/network.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/core/placement.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/core/plugins.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/core/repos.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/core/resources.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/core/schemas.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/core/shim.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/core/storage.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/core/struct.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/core/type_system.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/core/util.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/core/validation.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/exec/__init__.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/exec/actors.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/exec/context.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/exec/engine.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/exec/functions.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/exec/graph.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/exec/graph_builder.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/ext/__init__.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/ext/sql.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/ext/storage.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/grpc/__init__.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/grpc/codec.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/grpc/server.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/grpc/tracdap/api/internal/runtime_pb2.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/grpc/tracdap/api/internal/runtime_pb2.pyi +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/grpc/tracdap/api/internal/runtime_pb2_grpc.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/grpc/tracdap/metadata/common_pb2.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/grpc/tracdap/metadata/common_pb2.pyi +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/grpc/tracdap/metadata/config_pb2.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/grpc/tracdap/metadata/config_pb2.pyi +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/grpc/tracdap/metadata/custom_pb2.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/grpc/tracdap/metadata/custom_pb2.pyi +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/grpc/tracdap/metadata/data_pb2.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/grpc/tracdap/metadata/data_pb2.pyi +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/grpc/tracdap/metadata/file_pb2.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/grpc/tracdap/metadata/file_pb2.pyi +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/grpc/tracdap/metadata/flow_pb2.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/grpc/tracdap/metadata/flow_pb2.pyi +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/grpc/tracdap/metadata/model_pb2.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/grpc/tracdap/metadata/model_pb2.pyi +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/grpc/tracdap/metadata/object_id_pb2.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/grpc/tracdap/metadata/object_id_pb2.pyi +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/grpc/tracdap/metadata/object_pb2.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/grpc/tracdap/metadata/object_pb2.pyi +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/grpc/tracdap/metadata/resource_pb2.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/grpc/tracdap/metadata/resource_pb2.pyi +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/grpc/tracdap/metadata/search_pb2.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/grpc/tracdap/metadata/search_pb2.pyi +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/grpc/tracdap/metadata/storage_pb2.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/grpc/tracdap/metadata/storage_pb2.pyi +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/grpc/tracdap/metadata/tag_pb2.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/grpc/tracdap/metadata/tag_pb2.pyi +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/grpc/tracdap/metadata/type_pb2.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/grpc/tracdap/metadata/type_pb2.pyi +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/runtime.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/static_api.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_plugins/__init__.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_plugins/_helpers.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_plugins/config_local.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_plugins/format_arrow.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_plugins/format_csv.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_plugins/format_parquet.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_plugins/repo_local.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_plugins/storage_aws.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_plugins/storage_azure.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_plugins/storage_gcp.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_plugins/storage_local.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_plugins/storage_sql.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_plugins/storage_sql_dialects.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/api/constants.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/api/experimental.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/api/hook.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/api/model_api.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/api/static_api.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/config/__init__.py +7 -7
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/config/common.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/config/dynamic.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/config/job.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/config/platform.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/config/result.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/config/runtime.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/config/tenant.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/exceptions.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/ext/__init__.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/ext/config.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/ext/embed.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/ext/external.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/ext/plugins.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/ext/repos.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/ext/storage.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/ext/util.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/launch/__init__.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/launch/__main__.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/launch/cli.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/launch/launch.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/metadata/common.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/metadata/config.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/metadata/custom.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/metadata/data.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/metadata/file.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/metadata/model.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/metadata/object.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/metadata/object_id.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/metadata/resource.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/metadata/search.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/metadata/storage.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/metadata/tag.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/metadata/type.py +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/tracdap_runtime.egg-info/SOURCES.txt +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/tracdap_runtime.egg-info/dependency_links.txt +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/tracdap_runtime.egg-info/requires.txt +0 -0
- {tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/tracdap_runtime.egg-info/top_level.txt +0 -0
{tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/_impl/exec/dev_mode.py
RENAMED
|
@@ -647,18 +647,67 @@ class DevModeTranslator:
|
|
|
647
647
|
model_parameter = cls._infer_parameter(node_name, targets, job_def, job_config)
|
|
648
648
|
updated_flow.parameters[node_name] = model_parameter
|
|
649
649
|
|
|
650
|
-
if node.nodeType == _meta.FlowNodeType.INPUT_NODE
|
|
650
|
+
if node.nodeType == _meta.FlowNodeType.INPUT_NODE:
|
|
651
651
|
targets = edges_by_source.get(node_name) or []
|
|
652
|
-
|
|
653
|
-
|
|
652
|
+
declared_input = flow.inputs.get(node_name)
|
|
653
|
+
if declared_input is not None:
|
|
654
|
+
cls._check_declared_type("Input", node_name, declared_input, targets, lambda model: model.inputs, job_def, job_config)
|
|
655
|
+
if declared_input is None or cls._is_type_only(declared_input):
|
|
656
|
+
model_input = cls._infer_input_schema(node_name, targets, job_def, job_config)
|
|
657
|
+
updated_flow.inputs[node_name] = cls._apply_type_only(declared_input, model_input, "inputProps")
|
|
654
658
|
|
|
655
|
-
if node.nodeType == _meta.FlowNodeType.OUTPUT_NODE
|
|
659
|
+
if node.nodeType == _meta.FlowNodeType.OUTPUT_NODE:
|
|
656
660
|
sources = edges_by_target.get(node_name) or []
|
|
657
|
-
|
|
658
|
-
|
|
661
|
+
declared_output = flow.outputs.get(node_name)
|
|
662
|
+
if declared_output is not None:
|
|
663
|
+
cls._check_declared_type("Output", node_name, declared_output, sources, lambda model: model.outputs, job_def, job_config)
|
|
664
|
+
if declared_output is None or cls._is_type_only(declared_output):
|
|
665
|
+
model_output = cls._infer_output_schema(node_name, sources, job_def, job_config)
|
|
666
|
+
updated_flow.outputs[node_name] = cls._apply_type_only(declared_output, model_output, "outputProps")
|
|
659
667
|
|
|
660
668
|
return updated_flow
|
|
661
669
|
|
|
670
|
+
@classmethod
|
|
671
|
+
def _check_declared_type(
|
|
672
|
+
cls, socket_kind: str, node_name: str, declared, sockets: tp.List[_meta.FlowSocket],
|
|
673
|
+
socket_func: tp.Callable[[_meta.ModelDefinition], dict],
|
|
674
|
+
job_def: _meta.JobDefinition, job_config: _cfg.JobConfig):
|
|
675
|
+
|
|
676
|
+
# Same wording as the object type checks in the platform's job validation
|
|
677
|
+
for socket in sockets:
|
|
678
|
+
model_selector = job_def.runFlow.models.get(socket.node)
|
|
679
|
+
if model_selector is None:
|
|
680
|
+
continue
|
|
681
|
+
model_obj = _util.get_job_metadata(model_selector, job_config)
|
|
682
|
+
model_socket = socket_func(model_obj.model).get(socket.socket)
|
|
683
|
+
if model_socket is not None and model_socket.objectType != declared.objectType:
|
|
684
|
+
err = f"{socket_kind} [{node_name}] is not the right object type" \
|
|
685
|
+
+ f" (expected {declared.objectType.name}, got {model_socket.objectType.name})"
|
|
686
|
+
cls._log.error(err)
|
|
687
|
+
raise _ex.EJobValidation(err)
|
|
688
|
+
|
|
689
|
+
@staticmethod
|
|
690
|
+
def _is_type_only(declared: tp.Union[_meta.ModelInputSchema, _meta.ModelOutputSchema]) -> bool:
|
|
691
|
+
return declared.schema is None and declared.fileType is None
|
|
692
|
+
|
|
693
|
+
@staticmethod
|
|
694
|
+
def _apply_type_only(declared, inferred, props_field: str):
|
|
695
|
+
|
|
696
|
+
# A type-only declaration keeps its label and props, everything else comes from inference
|
|
697
|
+
if declared is None:
|
|
698
|
+
return inferred
|
|
699
|
+
|
|
700
|
+
schema = copy.copy(inferred)
|
|
701
|
+
|
|
702
|
+
if declared.label is not None:
|
|
703
|
+
schema.label = declared.label
|
|
704
|
+
|
|
705
|
+
declared_props = getattr(declared, props_field)
|
|
706
|
+
if declared_props:
|
|
707
|
+
setattr(schema, props_field, {**(getattr(inferred, props_field) or {}), **declared_props})
|
|
708
|
+
|
|
709
|
+
return schema
|
|
710
|
+
|
|
662
711
|
@classmethod
|
|
663
712
|
def _infer_resource(
|
|
664
713
|
cls, resource_name: str, targets: tp.List[_meta.FlowSocket],
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# NO CHECKED-IN PROTOBUF GENCODE
|
|
4
|
+
# source: tracdap/rt/_impl/grpc/tracdap/metadata/job.proto
|
|
5
|
+
# Protobuf Python Version: 6.30.2
|
|
6
|
+
"""Generated protocol buffer code."""
|
|
7
|
+
from google.protobuf import descriptor as _descriptor
|
|
8
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
9
|
+
from google.protobuf import runtime_version as _runtime_version
|
|
10
|
+
from google.protobuf import symbol_database as _symbol_database
|
|
11
|
+
from google.protobuf.internal import builder as _builder
|
|
12
|
+
_runtime_version.ValidateProtobufRuntimeVersion(
|
|
13
|
+
_runtime_version.Domain.PUBLIC,
|
|
14
|
+
6,
|
|
15
|
+
30,
|
|
16
|
+
2,
|
|
17
|
+
'',
|
|
18
|
+
'tracdap/rt/_impl/grpc/tracdap/metadata/job.proto'
|
|
19
|
+
)
|
|
20
|
+
# @@protoc_insertion_point(imports)
|
|
21
|
+
|
|
22
|
+
_sym_db = _symbol_database.Default()
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
from tracdap.rt._impl.grpc.tracdap.metadata import type_pb2 as tracdap_dot_rt_dot___impl_dot_grpc_dot_tracdap_dot_metadata_dot_type__pb2
|
|
26
|
+
from tracdap.rt._impl.grpc.tracdap.metadata import object_id_pb2 as tracdap_dot_rt_dot___impl_dot_grpc_dot_tracdap_dot_metadata_dot_object__id__pb2
|
|
27
|
+
from tracdap.rt._impl.grpc.tracdap.metadata import tag_update_pb2 as tracdap_dot_rt_dot___impl_dot_grpc_dot_tracdap_dot_metadata_dot_tag__update__pb2
|
|
28
|
+
from tracdap.rt._impl.grpc.tracdap.metadata import data_pb2 as tracdap_dot_rt_dot___impl_dot_grpc_dot_tracdap_dot_metadata_dot_data__pb2
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n0tracdap/rt/_impl/grpc/tracdap/metadata/job.proto\x12\x10tracdap.metadata\x1a\x31tracdap/rt/_impl/grpc/tracdap/metadata/type.proto\x1a\x36tracdap/rt/_impl/grpc/tracdap/metadata/object_id.proto\x1a\x37tracdap/rt/_impl/grpc/tracdap/metadata/tag_update.proto\x1a\x31tracdap/rt/_impl/grpc/tracdap/metadata/data.proto\"\xb5\x03\n\rJobDefinition\x12*\n\x07jobType\x18\x01 \x01(\x0e\x32\x19.tracdap.metadata.JobType\x12\x31\n\x08runModel\x18\x02 \x01(\x0b\x32\x1d.tracdap.metadata.RunModelJobH\x00\x12/\n\x07runFlow\x18\x03 \x01(\x0b\x32\x1c.tracdap.metadata.RunFlowJobH\x00\x12\x37\n\x0bimportModel\x18\x04 \x01(\x0b\x32 .tracdap.metadata.ImportModelJobH\x00\x12\x35\n\nimportData\x18\x05 \x01(\x0b\x32\x1f.tracdap.metadata.ImportDataJobH\x00\x12\x35\n\nexportData\x18\x06 \x01(\x0b\x32\x1f.tracdap.metadata.ExportDataJobH\x00\x12.\n\x08jobGroup\x18\x07 \x01(\x0b\x32\x1a.tracdap.metadata.JobGroupH\x00\x12/\n\x08resultId\x18\x08 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelectorB\x0c\n\njobDetails\"\x80\x04\n\x10ResultDefinition\x12,\n\x05jobId\x18\x01 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector\x12\x33\n\nstatusCode\x18\x02 \x01(\x0e\x32\x1f.tracdap.metadata.JobStatusCode\x12\x15\n\rstatusMessage\x18\x03 \x01(\t\x12\x35\n\tlogFileId\x18\x04 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelectorH\x00\x88\x01\x01\x12@\n\x07outputs\x18\x05 \x03(\x0b\x32/.tracdap.metadata.ResultDefinition.OutputsEntry\x12\x46\n\nplacements\x18\x06 \x03(\x0b\x32\x32.tracdap.metadata.ResultDefinition.PlacementsEntry\x1aM\n\x0cOutputsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector:\x02\x38\x01\x1aT\n\x0fPlacementsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32!.tracdap.metadata.PlacementRecord:\x02\x38\x01\x42\x0c\n\n_logFileId\"\xbb\x01\n\x0fPlacementRecord\x12-\n\x06\x64\x61taId\x18\x01 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector\x12\x34\n\x08location\x18\x02 \x01(\x0b\x32\".tracdap.metadata.ExternalLocation\x12\x0e\n\x06\x66ormat\x18\x03 \x01(\t\x12\x10\n\x08mimeType\x18\x04 \x01(\t\x12\x0c\n\x04size\x18\x05 \x01(\x03\x12\x13\n\x0b\x63ontentHash\x18\x06 \x01(\t\"\xc2\x07\n\x0bRunModelJob\x12,\n\x05model\x18\x01 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector\x12\x41\n\nparameters\x18\x02 \x03(\x0b\x32-.tracdap.metadata.RunModelJob.ParametersEntry\x12\x39\n\x06inputs\x18\x03 \x03(\x0b\x32).tracdap.metadata.RunModelJob.InputsEntry\x12;\n\x07outputs\x18\x04 \x03(\x0b\x32*.tracdap.metadata.RunModelJob.OutputsEntry\x12\x45\n\x0cpriorOutputs\x18\x05 \x03(\x0b\x32/.tracdap.metadata.RunModelJob.PriorOutputsEntry\x12?\n\tresources\x18\x07 \x03(\x0b\x32,.tracdap.metadata.RunModelJob.ResourcesEntry\x12\x30\n\x0boutputAttrs\x18\x06 \x03(\x0b\x32\x1b.tracdap.metadata.TagUpdate\x12I\n\x0eperOutputAttrs\x18\x08 \x03(\x0b\x32\x31.tracdap.metadata.RunModelJob.PerOutputAttrsEntry\x1aJ\n\x0fParametersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.tracdap.metadata.Value:\x02\x38\x01\x1aL\n\x0bInputsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector:\x02\x38\x01\x1aM\n\x0cOutputsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector:\x02\x38\x01\x1aR\n\x11PriorOutputsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector:\x02\x38\x01\x1a\x30\n\x0eResourcesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1aV\n\x13PerOutputAttrsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.tracdap.metadata.TagUpdateList:\x02\x38\x01\"\xdf\x08\n\nRunFlowJob\x12+\n\x04\x66low\x18\x01 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector\x12@\n\nparameters\x18\x02 \x03(\x0b\x32,.tracdap.metadata.RunFlowJob.ParametersEntry\x12\x38\n\x06inputs\x18\x03 \x03(\x0b\x32(.tracdap.metadata.RunFlowJob.InputsEntry\x12:\n\x07outputs\x18\x04 \x03(\x0b\x32).tracdap.metadata.RunFlowJob.OutputsEntry\x12\x44\n\x0cpriorOutputs\x18\x05 \x03(\x0b\x32..tracdap.metadata.RunFlowJob.PriorOutputsEntry\x12\x38\n\x06models\x18\x06 \x03(\x0b\x32(.tracdap.metadata.RunFlowJob.ModelsEntry\x12>\n\tresources\x18\x08 \x03(\x0b\x32+.tracdap.metadata.RunFlowJob.ResourcesEntry\x12\x30\n\x0boutputAttrs\x18\x07 \x03(\x0b\x32\x1b.tracdap.metadata.TagUpdate\x12H\n\x0eperOutputAttrs\x18\n \x03(\x0b\x32\x30.tracdap.metadata.RunFlowJob.PerOutputAttrsEntry\x12\x1b\n\x13\x65xportStorageAccess\x18\t \x03(\t\x1aJ\n\x0fParametersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.tracdap.metadata.Value:\x02\x38\x01\x1aL\n\x0bInputsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector:\x02\x38\x01\x1aM\n\x0cOutputsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector:\x02\x38\x01\x1aR\n\x11PriorOutputsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector:\x02\x38\x01\x1aL\n\x0bModelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector:\x02\x38\x01\x1a\x30\n\x0eResourcesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1aV\n\x13PerOutputAttrsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.tracdap.metadata.TagUpdateList:\x02\x38\x01\"\x9e\x02\n\x0eImportModelJob\x12\x10\n\x08language\x18\x01 \x01(\t\x12\x12\n\nrepository\x18\x02 \x01(\t\x12\x19\n\x0cpackageGroup\x18\x07 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x07package\x18\x08 \x01(\t\x12\x0f\n\x07version\x18\x05 \x01(\t\x12\x12\n\nentryPoint\x18\x04 \x01(\t\x12\x0c\n\x04path\x18\x03 \x01(\t\x12/\n\nmodelAttrs\x18\x06 \x03(\x0b\x32\x1b.tracdap.metadata.TagUpdate\x12\x36\n\npriorModel\x18\t \x01(\x0b\x32\x1d.tracdap.metadata.TagSelectorH\x01\x88\x01\x01\x42\x0f\n\r_packageGroupB\r\n\x0b_priorModel\"\x82\x07\n\rImportDataJob\x12,\n\x05model\x18\x01 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector\x12\x43\n\nparameters\x18\x02 \x03(\x0b\x32/.tracdap.metadata.ImportDataJob.ParametersEntry\x12;\n\x06inputs\x18\x03 \x03(\x0b\x32+.tracdap.metadata.ImportDataJob.InputsEntry\x12=\n\x07outputs\x18\x04 \x03(\x0b\x32,.tracdap.metadata.ImportDataJob.OutputsEntry\x12G\n\x0cpriorOutputs\x18\x05 \x03(\x0b\x32\x31.tracdap.metadata.ImportDataJob.PriorOutputsEntry\x12\x15\n\rstorageAccess\x18\x06 \x03(\t\x12\x30\n\x0boutputAttrs\x18\x08 \x03(\x0b\x32\x1b.tracdap.metadata.TagUpdate\x12?\n\x08\x63\x61ptures\x18\n \x03(\x0b\x32-.tracdap.metadata.ImportDataJob.CapturesEntry\x1aJ\n\x0fParametersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.tracdap.metadata.Value:\x02\x38\x01\x1aL\n\x0bInputsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector:\x02\x38\x01\x1aM\n\x0cOutputsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector:\x02\x38\x01\x1aR\n\x11PriorOutputsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector:\x02\x38\x01\x1aP\n\rCapturesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.tracdap.metadata.CaptureSource:\x02\x38\x01J\x04\x08\x07\x10\x08J\x04\x08\t\x10\nR\x07importsR\x0bimportAttrs\"\xea\x02\n\rCaptureSource\x12\x36\n\x08location\x18\x01 \x01(\x0b\x32\".tracdap.metadata.ExternalLocationH\x00\x12;\n\x0cschemaSource\x18\x04 \x01(\x0e\x32%.tracdap.metadata.CaptureSchemaSource\x12\x31\n\x08schemaId\x18\x05 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelectorH\x01\x12\x34\n\x06schema\x18\x06 \x01(\x0b\x32\".tracdap.metadata.SchemaDefinitionH\x01\x12.\n\tdataAttrs\x18\x08 \x03(\x0b\x32\x1b.tracdap.metadata.TagUpdate\x12.\n\tfileAttrs\x18\t \x03(\x0b\x32\x1b.tracdap.metadata.TagUpdateB\x08\n\x06sourceB\x11\n\x0fschemaSpecifier\"\xd7\x01\n\x10\x45xternalLocation\x12\x12\n\nstorageKey\x18\x01 \x01(\t\x12\x13\n\x0bstoragePath\x18\x02 \x01(\t\x12\x10\n\x08protocol\x18\x03 \x01(\t\x12P\n\x0flocationDetails\x18\x04 \x03(\x0b\x32\x37.tracdap.metadata.ExternalLocation.LocationDetailsEntry\x1a\x36\n\x14LocationDetailsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xf1\x02\n\rExportDataJob\x12\x43\n\nplacements\x18\t \x03(\x0b\x32/.tracdap.metadata.ExportDataJob.PlacementsEntry\x12>\n\x11placementConflict\x18\n \x01(\x0e\x32#.tracdap.metadata.PlacementConflict\x1aT\n\x0fPlacementsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32!.tracdap.metadata.PlacementTarget:\x02\x38\x01J\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03J\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05J\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07J\x04\x08\x07\x10\x08J\x04\x08\x08\x10\tR\x05modelR\nparametersR\x06inputsR\x07outputsR\x0cpriorOutputsR\rstorageAccessR\x07\x65xportsR\x0boutputAttrs\"\x82\x01\n\x0fPlacementTarget\x12/\n\x06\x64\x61taId\x18\x01 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelectorH\x00\x12\x34\n\x08location\x18\x03 \x01(\x0b\x32\".tracdap.metadata.ExternalLocationB\x08\n\x06source\"\xc7\x01\n\x08JobGroup\x12\x34\n\x0cjobGroupType\x18\x01 \x01(\x0e\x32\x1e.tracdap.metadata.JobGroupType\x12:\n\nsequential\x18\x02 \x01(\x0b\x32$.tracdap.metadata.SequentialJobGroupH\x00\x12\x36\n\x08parallel\x18\x03 \x01(\x0b\x32\".tracdap.metadata.ParallelJobGroupH\x00\x42\x11\n\x0fjobGroupDetails\"C\n\x12SequentialJobGroup\x12-\n\x04jobs\x18\x01 \x03(\x0b\x32\x1f.tracdap.metadata.JobDefinition\"A\n\x10ParallelJobGroup\x12-\n\x04jobs\x18\x01 \x03(\x0b\x32\x1f.tracdap.metadata.JobDefinition*\x7f\n\x07JobType\x12\x14\n\x10JOB_TYPE_NOT_SET\x10\x00\x12\r\n\tRUN_MODEL\x10\x01\x12\x0c\n\x08RUN_FLOW\x10\x02\x12\x10\n\x0cIMPORT_MODEL\x10\x03\x12\x0f\n\x0bIMPORT_DATA\x10\x04\x12\x0f\n\x0b\x45XPORT_DATA\x10\x05\x12\r\n\tJOB_GROUP\x10\x06*\xb8\x01\n\rJobStatusCode\x12\x1b\n\x17JOB_STATUS_CODE_NOT_SET\x10\x00\x12\r\n\tPREPARING\x10\x01\x12\r\n\tVALIDATED\x10\x02\x12\x0b\n\x07PENDING\x10\x03\x12\n\n\x06QUEUED\x10\x04\x12\r\n\tSUBMITTED\x10\x05\x12\x0b\n\x07RUNNING\x10\x06\x12\r\n\tFINISHING\x10\x07\x12\r\n\tSUCCEEDED\x10\x08\x12\n\n\x06\x46\x41ILED\x10\t\x12\r\n\tCANCELLED\x10\n*n\n\x13\x43\x61ptureSchemaSource\x12!\n\x1d\x43\x41PTURE_SCHEMA_SOURCE_NOT_SET\x10\x00\x12\x1b\n\x17\x43\x41PTURE_SCHEMA_DECLARED\x10\x01\x12\x17\n\x13\x43\x41PTURE_SCHEMA_FILE\x10\x02*v\n\x11PlacementConflict\x12\x1e\n\x1aPLACEMENT_CONFLICT_NOT_SET\x10\x00\x12\x14\n\x10PLACEMENT_SUFFIX\x10\x01\x12\x17\n\x13PLACEMENT_OVERWRITE\x10\x02\x12\x12\n\x0ePLACEMENT_FAIL\x10\x03*\\\n\x0cJobGroupType\x12\x1a\n\x16JOB_GROUP_TYPE_NOT_SET\x10\x00\x12\x18\n\x14SEQUENTIAL_JOB_GROUP\x10\x01\x12\x16\n\x12PARALLEL_JOB_GROUP\x10\x02\x42\x1e\n\x1aorg.finos.tracdap.metadataP\x01\x62\x06proto3')
|
|
32
|
+
|
|
33
|
+
_globals = globals()
|
|
34
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
35
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'tracdap.rt._impl.grpc.tracdap.metadata.job_pb2', _globals)
|
|
36
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
|
37
|
+
_globals['DESCRIPTOR']._loaded_options = None
|
|
38
|
+
_globals['DESCRIPTOR']._serialized_options = b'\n\032org.finos.tracdap.metadataP\001'
|
|
39
|
+
_globals['_RESULTDEFINITION_OUTPUTSENTRY']._loaded_options = None
|
|
40
|
+
_globals['_RESULTDEFINITION_OUTPUTSENTRY']._serialized_options = b'8\001'
|
|
41
|
+
_globals['_RESULTDEFINITION_PLACEMENTSENTRY']._loaded_options = None
|
|
42
|
+
_globals['_RESULTDEFINITION_PLACEMENTSENTRY']._serialized_options = b'8\001'
|
|
43
|
+
_globals['_RUNMODELJOB_PARAMETERSENTRY']._loaded_options = None
|
|
44
|
+
_globals['_RUNMODELJOB_PARAMETERSENTRY']._serialized_options = b'8\001'
|
|
45
|
+
_globals['_RUNMODELJOB_INPUTSENTRY']._loaded_options = None
|
|
46
|
+
_globals['_RUNMODELJOB_INPUTSENTRY']._serialized_options = b'8\001'
|
|
47
|
+
_globals['_RUNMODELJOB_OUTPUTSENTRY']._loaded_options = None
|
|
48
|
+
_globals['_RUNMODELJOB_OUTPUTSENTRY']._serialized_options = b'8\001'
|
|
49
|
+
_globals['_RUNMODELJOB_PRIOROUTPUTSENTRY']._loaded_options = None
|
|
50
|
+
_globals['_RUNMODELJOB_PRIOROUTPUTSENTRY']._serialized_options = b'8\001'
|
|
51
|
+
_globals['_RUNMODELJOB_RESOURCESENTRY']._loaded_options = None
|
|
52
|
+
_globals['_RUNMODELJOB_RESOURCESENTRY']._serialized_options = b'8\001'
|
|
53
|
+
_globals['_RUNMODELJOB_PEROUTPUTATTRSENTRY']._loaded_options = None
|
|
54
|
+
_globals['_RUNMODELJOB_PEROUTPUTATTRSENTRY']._serialized_options = b'8\001'
|
|
55
|
+
_globals['_RUNFLOWJOB_PARAMETERSENTRY']._loaded_options = None
|
|
56
|
+
_globals['_RUNFLOWJOB_PARAMETERSENTRY']._serialized_options = b'8\001'
|
|
57
|
+
_globals['_RUNFLOWJOB_INPUTSENTRY']._loaded_options = None
|
|
58
|
+
_globals['_RUNFLOWJOB_INPUTSENTRY']._serialized_options = b'8\001'
|
|
59
|
+
_globals['_RUNFLOWJOB_OUTPUTSENTRY']._loaded_options = None
|
|
60
|
+
_globals['_RUNFLOWJOB_OUTPUTSENTRY']._serialized_options = b'8\001'
|
|
61
|
+
_globals['_RUNFLOWJOB_PRIOROUTPUTSENTRY']._loaded_options = None
|
|
62
|
+
_globals['_RUNFLOWJOB_PRIOROUTPUTSENTRY']._serialized_options = b'8\001'
|
|
63
|
+
_globals['_RUNFLOWJOB_MODELSENTRY']._loaded_options = None
|
|
64
|
+
_globals['_RUNFLOWJOB_MODELSENTRY']._serialized_options = b'8\001'
|
|
65
|
+
_globals['_RUNFLOWJOB_RESOURCESENTRY']._loaded_options = None
|
|
66
|
+
_globals['_RUNFLOWJOB_RESOURCESENTRY']._serialized_options = b'8\001'
|
|
67
|
+
_globals['_RUNFLOWJOB_PEROUTPUTATTRSENTRY']._loaded_options = None
|
|
68
|
+
_globals['_RUNFLOWJOB_PEROUTPUTATTRSENTRY']._serialized_options = b'8\001'
|
|
69
|
+
_globals['_IMPORTDATAJOB_PARAMETERSENTRY']._loaded_options = None
|
|
70
|
+
_globals['_IMPORTDATAJOB_PARAMETERSENTRY']._serialized_options = b'8\001'
|
|
71
|
+
_globals['_IMPORTDATAJOB_INPUTSENTRY']._loaded_options = None
|
|
72
|
+
_globals['_IMPORTDATAJOB_INPUTSENTRY']._serialized_options = b'8\001'
|
|
73
|
+
_globals['_IMPORTDATAJOB_OUTPUTSENTRY']._loaded_options = None
|
|
74
|
+
_globals['_IMPORTDATAJOB_OUTPUTSENTRY']._serialized_options = b'8\001'
|
|
75
|
+
_globals['_IMPORTDATAJOB_PRIOROUTPUTSENTRY']._loaded_options = None
|
|
76
|
+
_globals['_IMPORTDATAJOB_PRIOROUTPUTSENTRY']._serialized_options = b'8\001'
|
|
77
|
+
_globals['_IMPORTDATAJOB_CAPTURESENTRY']._loaded_options = None
|
|
78
|
+
_globals['_IMPORTDATAJOB_CAPTURESENTRY']._serialized_options = b'8\001'
|
|
79
|
+
_globals['_EXTERNALLOCATION_LOCATIONDETAILSENTRY']._loaded_options = None
|
|
80
|
+
_globals['_EXTERNALLOCATION_LOCATIONDETAILSENTRY']._serialized_options = b'8\001'
|
|
81
|
+
_globals['_EXPORTDATAJOB_PLACEMENTSENTRY']._loaded_options = None
|
|
82
|
+
_globals['_EXPORTDATAJOB_PLACEMENTSENTRY']._serialized_options = b'8\001'
|
|
83
|
+
_globals['_JOBTYPE']._serialized_start=6133
|
|
84
|
+
_globals['_JOBTYPE']._serialized_end=6260
|
|
85
|
+
_globals['_JOBSTATUSCODE']._serialized_start=6263
|
|
86
|
+
_globals['_JOBSTATUSCODE']._serialized_end=6447
|
|
87
|
+
_globals['_CAPTURESCHEMASOURCE']._serialized_start=6449
|
|
88
|
+
_globals['_CAPTURESCHEMASOURCE']._serialized_end=6559
|
|
89
|
+
_globals['_PLACEMENTCONFLICT']._serialized_start=6561
|
|
90
|
+
_globals['_PLACEMENTCONFLICT']._serialized_end=6679
|
|
91
|
+
_globals['_JOBGROUPTYPE']._serialized_start=6681
|
|
92
|
+
_globals['_JOBGROUPTYPE']._serialized_end=6773
|
|
93
|
+
_globals['_JOBDEFINITION']._serialized_start=286
|
|
94
|
+
_globals['_JOBDEFINITION']._serialized_end=723
|
|
95
|
+
_globals['_RESULTDEFINITION']._serialized_start=726
|
|
96
|
+
_globals['_RESULTDEFINITION']._serialized_end=1238
|
|
97
|
+
_globals['_RESULTDEFINITION_OUTPUTSENTRY']._serialized_start=1061
|
|
98
|
+
_globals['_RESULTDEFINITION_OUTPUTSENTRY']._serialized_end=1138
|
|
99
|
+
_globals['_RESULTDEFINITION_PLACEMENTSENTRY']._serialized_start=1140
|
|
100
|
+
_globals['_RESULTDEFINITION_PLACEMENTSENTRY']._serialized_end=1224
|
|
101
|
+
_globals['_PLACEMENTRECORD']._serialized_start=1241
|
|
102
|
+
_globals['_PLACEMENTRECORD']._serialized_end=1428
|
|
103
|
+
_globals['_RUNMODELJOB']._serialized_start=1431
|
|
104
|
+
_globals['_RUNMODELJOB']._serialized_end=2393
|
|
105
|
+
_globals['_RUNMODELJOB_PARAMETERSENTRY']._serialized_start=1940
|
|
106
|
+
_globals['_RUNMODELJOB_PARAMETERSENTRY']._serialized_end=2014
|
|
107
|
+
_globals['_RUNMODELJOB_INPUTSENTRY']._serialized_start=2016
|
|
108
|
+
_globals['_RUNMODELJOB_INPUTSENTRY']._serialized_end=2092
|
|
109
|
+
_globals['_RUNMODELJOB_OUTPUTSENTRY']._serialized_start=1061
|
|
110
|
+
_globals['_RUNMODELJOB_OUTPUTSENTRY']._serialized_end=1138
|
|
111
|
+
_globals['_RUNMODELJOB_PRIOROUTPUTSENTRY']._serialized_start=2173
|
|
112
|
+
_globals['_RUNMODELJOB_PRIOROUTPUTSENTRY']._serialized_end=2255
|
|
113
|
+
_globals['_RUNMODELJOB_RESOURCESENTRY']._serialized_start=2257
|
|
114
|
+
_globals['_RUNMODELJOB_RESOURCESENTRY']._serialized_end=2305
|
|
115
|
+
_globals['_RUNMODELJOB_PEROUTPUTATTRSENTRY']._serialized_start=2307
|
|
116
|
+
_globals['_RUNMODELJOB_PEROUTPUTATTRSENTRY']._serialized_end=2393
|
|
117
|
+
_globals['_RUNFLOWJOB']._serialized_start=2396
|
|
118
|
+
_globals['_RUNFLOWJOB']._serialized_end=3515
|
|
119
|
+
_globals['_RUNFLOWJOB_PARAMETERSENTRY']._serialized_start=1940
|
|
120
|
+
_globals['_RUNFLOWJOB_PARAMETERSENTRY']._serialized_end=2014
|
|
121
|
+
_globals['_RUNFLOWJOB_INPUTSENTRY']._serialized_start=2016
|
|
122
|
+
_globals['_RUNFLOWJOB_INPUTSENTRY']._serialized_end=2092
|
|
123
|
+
_globals['_RUNFLOWJOB_OUTPUTSENTRY']._serialized_start=1061
|
|
124
|
+
_globals['_RUNFLOWJOB_OUTPUTSENTRY']._serialized_end=1138
|
|
125
|
+
_globals['_RUNFLOWJOB_PRIOROUTPUTSENTRY']._serialized_start=2173
|
|
126
|
+
_globals['_RUNFLOWJOB_PRIOROUTPUTSENTRY']._serialized_end=2255
|
|
127
|
+
_globals['_RUNFLOWJOB_MODELSENTRY']._serialized_start=3301
|
|
128
|
+
_globals['_RUNFLOWJOB_MODELSENTRY']._serialized_end=3377
|
|
129
|
+
_globals['_RUNFLOWJOB_RESOURCESENTRY']._serialized_start=2257
|
|
130
|
+
_globals['_RUNFLOWJOB_RESOURCESENTRY']._serialized_end=2305
|
|
131
|
+
_globals['_RUNFLOWJOB_PEROUTPUTATTRSENTRY']._serialized_start=2307
|
|
132
|
+
_globals['_RUNFLOWJOB_PEROUTPUTATTRSENTRY']._serialized_end=2393
|
|
133
|
+
_globals['_IMPORTMODELJOB']._serialized_start=3518
|
|
134
|
+
_globals['_IMPORTMODELJOB']._serialized_end=3804
|
|
135
|
+
_globals['_IMPORTDATAJOB']._serialized_start=3807
|
|
136
|
+
_globals['_IMPORTDATAJOB']._serialized_end=4705
|
|
137
|
+
_globals['_IMPORTDATAJOB_PARAMETERSENTRY']._serialized_start=1940
|
|
138
|
+
_globals['_IMPORTDATAJOB_PARAMETERSENTRY']._serialized_end=2014
|
|
139
|
+
_globals['_IMPORTDATAJOB_INPUTSENTRY']._serialized_start=2016
|
|
140
|
+
_globals['_IMPORTDATAJOB_INPUTSENTRY']._serialized_end=2092
|
|
141
|
+
_globals['_IMPORTDATAJOB_OUTPUTSENTRY']._serialized_start=1061
|
|
142
|
+
_globals['_IMPORTDATAJOB_OUTPUTSENTRY']._serialized_end=1138
|
|
143
|
+
_globals['_IMPORTDATAJOB_PRIOROUTPUTSENTRY']._serialized_start=2173
|
|
144
|
+
_globals['_IMPORTDATAJOB_PRIOROUTPUTSENTRY']._serialized_end=2255
|
|
145
|
+
_globals['_IMPORTDATAJOB_CAPTURESENTRY']._serialized_start=4591
|
|
146
|
+
_globals['_IMPORTDATAJOB_CAPTURESENTRY']._serialized_end=4671
|
|
147
|
+
_globals['_CAPTURESOURCE']._serialized_start=4708
|
|
148
|
+
_globals['_CAPTURESOURCE']._serialized_end=5070
|
|
149
|
+
_globals['_EXTERNALLOCATION']._serialized_start=5073
|
|
150
|
+
_globals['_EXTERNALLOCATION']._serialized_end=5288
|
|
151
|
+
_globals['_EXTERNALLOCATION_LOCATIONDETAILSENTRY']._serialized_start=5234
|
|
152
|
+
_globals['_EXTERNALLOCATION_LOCATIONDETAILSENTRY']._serialized_end=5288
|
|
153
|
+
_globals['_EXPORTDATAJOB']._serialized_start=5291
|
|
154
|
+
_globals['_EXPORTDATAJOB']._serialized_end=5660
|
|
155
|
+
_globals['_EXPORTDATAJOB_PLACEMENTSENTRY']._serialized_start=5441
|
|
156
|
+
_globals['_EXPORTDATAJOB_PLACEMENTSENTRY']._serialized_end=5525
|
|
157
|
+
_globals['_PLACEMENTTARGET']._serialized_start=5663
|
|
158
|
+
_globals['_PLACEMENTTARGET']._serialized_end=5793
|
|
159
|
+
_globals['_JOBGROUP']._serialized_start=5796
|
|
160
|
+
_globals['_JOBGROUP']._serialized_end=5995
|
|
161
|
+
_globals['_SEQUENTIALJOBGROUP']._serialized_start=5997
|
|
162
|
+
_globals['_SEQUENTIALJOBGROUP']._serialized_end=6064
|
|
163
|
+
_globals['_PARALLELJOBGROUP']._serialized_start=6066
|
|
164
|
+
_globals['_PARALLELJOBGROUP']._serialized_end=6131
|
|
165
|
+
# @@protoc_insertion_point(module_scope)
|
|
@@ -149,7 +149,7 @@ class PlacementRecord(_message.Message):
|
|
|
149
149
|
def __init__(self, dataId: _Optional[_Union[_object_id_pb2.TagSelector, _Mapping]] = ..., location: _Optional[_Union[ExternalLocation, _Mapping]] = ..., format: _Optional[str] = ..., mimeType: _Optional[str] = ..., size: _Optional[int] = ..., contentHash: _Optional[str] = ...) -> None: ...
|
|
150
150
|
|
|
151
151
|
class RunModelJob(_message.Message):
|
|
152
|
-
__slots__ = ("model", "parameters", "inputs", "outputs", "priorOutputs", "resources", "outputAttrs")
|
|
152
|
+
__slots__ = ("model", "parameters", "inputs", "outputs", "priorOutputs", "resources", "outputAttrs", "perOutputAttrs")
|
|
153
153
|
class ParametersEntry(_message.Message):
|
|
154
154
|
__slots__ = ("key", "value")
|
|
155
155
|
KEY_FIELD_NUMBER: _ClassVar[int]
|
|
@@ -185,6 +185,13 @@ class RunModelJob(_message.Message):
|
|
|
185
185
|
key: str
|
|
186
186
|
value: str
|
|
187
187
|
def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
|
|
188
|
+
class PerOutputAttrsEntry(_message.Message):
|
|
189
|
+
__slots__ = ("key", "value")
|
|
190
|
+
KEY_FIELD_NUMBER: _ClassVar[int]
|
|
191
|
+
VALUE_FIELD_NUMBER: _ClassVar[int]
|
|
192
|
+
key: str
|
|
193
|
+
value: _tag_update_pb2.TagUpdateList
|
|
194
|
+
def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[_tag_update_pb2.TagUpdateList, _Mapping]] = ...) -> None: ...
|
|
188
195
|
MODEL_FIELD_NUMBER: _ClassVar[int]
|
|
189
196
|
PARAMETERS_FIELD_NUMBER: _ClassVar[int]
|
|
190
197
|
INPUTS_FIELD_NUMBER: _ClassVar[int]
|
|
@@ -192,6 +199,7 @@ class RunModelJob(_message.Message):
|
|
|
192
199
|
PRIOROUTPUTS_FIELD_NUMBER: _ClassVar[int]
|
|
193
200
|
RESOURCES_FIELD_NUMBER: _ClassVar[int]
|
|
194
201
|
OUTPUTATTRS_FIELD_NUMBER: _ClassVar[int]
|
|
202
|
+
PEROUTPUTATTRS_FIELD_NUMBER: _ClassVar[int]
|
|
195
203
|
model: _object_id_pb2.TagSelector
|
|
196
204
|
parameters: _containers.MessageMap[str, _type_pb2.Value]
|
|
197
205
|
inputs: _containers.MessageMap[str, _object_id_pb2.TagSelector]
|
|
@@ -199,10 +207,11 @@ class RunModelJob(_message.Message):
|
|
|
199
207
|
priorOutputs: _containers.MessageMap[str, _object_id_pb2.TagSelector]
|
|
200
208
|
resources: _containers.ScalarMap[str, str]
|
|
201
209
|
outputAttrs: _containers.RepeatedCompositeFieldContainer[_tag_update_pb2.TagUpdate]
|
|
202
|
-
|
|
210
|
+
perOutputAttrs: _containers.MessageMap[str, _tag_update_pb2.TagUpdateList]
|
|
211
|
+
def __init__(self, model: _Optional[_Union[_object_id_pb2.TagSelector, _Mapping]] = ..., parameters: _Optional[_Mapping[str, _type_pb2.Value]] = ..., inputs: _Optional[_Mapping[str, _object_id_pb2.TagSelector]] = ..., outputs: _Optional[_Mapping[str, _object_id_pb2.TagSelector]] = ..., priorOutputs: _Optional[_Mapping[str, _object_id_pb2.TagSelector]] = ..., resources: _Optional[_Mapping[str, str]] = ..., outputAttrs: _Optional[_Iterable[_Union[_tag_update_pb2.TagUpdate, _Mapping]]] = ..., perOutputAttrs: _Optional[_Mapping[str, _tag_update_pb2.TagUpdateList]] = ...) -> None: ...
|
|
203
212
|
|
|
204
213
|
class RunFlowJob(_message.Message):
|
|
205
|
-
__slots__ = ("flow", "parameters", "inputs", "outputs", "priorOutputs", "models", "resources", "outputAttrs", "exportStorageAccess")
|
|
214
|
+
__slots__ = ("flow", "parameters", "inputs", "outputs", "priorOutputs", "models", "resources", "outputAttrs", "perOutputAttrs", "exportStorageAccess")
|
|
206
215
|
class ParametersEntry(_message.Message):
|
|
207
216
|
__slots__ = ("key", "value")
|
|
208
217
|
KEY_FIELD_NUMBER: _ClassVar[int]
|
|
@@ -245,6 +254,13 @@ class RunFlowJob(_message.Message):
|
|
|
245
254
|
key: str
|
|
246
255
|
value: str
|
|
247
256
|
def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
|
|
257
|
+
class PerOutputAttrsEntry(_message.Message):
|
|
258
|
+
__slots__ = ("key", "value")
|
|
259
|
+
KEY_FIELD_NUMBER: _ClassVar[int]
|
|
260
|
+
VALUE_FIELD_NUMBER: _ClassVar[int]
|
|
261
|
+
key: str
|
|
262
|
+
value: _tag_update_pb2.TagUpdateList
|
|
263
|
+
def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[_tag_update_pb2.TagUpdateList, _Mapping]] = ...) -> None: ...
|
|
248
264
|
FLOW_FIELD_NUMBER: _ClassVar[int]
|
|
249
265
|
PARAMETERS_FIELD_NUMBER: _ClassVar[int]
|
|
250
266
|
INPUTS_FIELD_NUMBER: _ClassVar[int]
|
|
@@ -253,6 +269,7 @@ class RunFlowJob(_message.Message):
|
|
|
253
269
|
MODELS_FIELD_NUMBER: _ClassVar[int]
|
|
254
270
|
RESOURCES_FIELD_NUMBER: _ClassVar[int]
|
|
255
271
|
OUTPUTATTRS_FIELD_NUMBER: _ClassVar[int]
|
|
272
|
+
PEROUTPUTATTRS_FIELD_NUMBER: _ClassVar[int]
|
|
256
273
|
EXPORTSTORAGEACCESS_FIELD_NUMBER: _ClassVar[int]
|
|
257
274
|
flow: _object_id_pb2.TagSelector
|
|
258
275
|
parameters: _containers.MessageMap[str, _type_pb2.Value]
|
|
@@ -262,8 +279,9 @@ class RunFlowJob(_message.Message):
|
|
|
262
279
|
models: _containers.MessageMap[str, _object_id_pb2.TagSelector]
|
|
263
280
|
resources: _containers.ScalarMap[str, str]
|
|
264
281
|
outputAttrs: _containers.RepeatedCompositeFieldContainer[_tag_update_pb2.TagUpdate]
|
|
282
|
+
perOutputAttrs: _containers.MessageMap[str, _tag_update_pb2.TagUpdateList]
|
|
265
283
|
exportStorageAccess: _containers.RepeatedScalarFieldContainer[str]
|
|
266
|
-
def __init__(self, flow: _Optional[_Union[_object_id_pb2.TagSelector, _Mapping]] = ..., parameters: _Optional[_Mapping[str, _type_pb2.Value]] = ..., inputs: _Optional[_Mapping[str, _object_id_pb2.TagSelector]] = ..., outputs: _Optional[_Mapping[str, _object_id_pb2.TagSelector]] = ..., priorOutputs: _Optional[_Mapping[str, _object_id_pb2.TagSelector]] = ..., models: _Optional[_Mapping[str, _object_id_pb2.TagSelector]] = ..., resources: _Optional[_Mapping[str, str]] = ..., outputAttrs: _Optional[_Iterable[_Union[_tag_update_pb2.TagUpdate, _Mapping]]] = ..., exportStorageAccess: _Optional[_Iterable[str]] = ...) -> None: ...
|
|
284
|
+
def __init__(self, flow: _Optional[_Union[_object_id_pb2.TagSelector, _Mapping]] = ..., parameters: _Optional[_Mapping[str, _type_pb2.Value]] = ..., inputs: _Optional[_Mapping[str, _object_id_pb2.TagSelector]] = ..., outputs: _Optional[_Mapping[str, _object_id_pb2.TagSelector]] = ..., priorOutputs: _Optional[_Mapping[str, _object_id_pb2.TagSelector]] = ..., models: _Optional[_Mapping[str, _object_id_pb2.TagSelector]] = ..., resources: _Optional[_Mapping[str, str]] = ..., outputAttrs: _Optional[_Iterable[_Union[_tag_update_pb2.TagUpdate, _Mapping]]] = ..., perOutputAttrs: _Optional[_Mapping[str, _tag_update_pb2.TagUpdateList]] = ..., exportStorageAccess: _Optional[_Iterable[str]] = ...) -> None: ...
|
|
267
285
|
|
|
268
286
|
class ImportModelJob(_message.Message):
|
|
269
287
|
__slots__ = ("language", "repository", "packageGroup", "package", "version", "entryPoint", "path", "modelAttrs", "priorModel")
|
|
@@ -25,7 +25,7 @@ _sym_db = _symbol_database.Default()
|
|
|
25
25
|
from tracdap.rt._impl.grpc.tracdap.metadata import type_pb2 as tracdap_dot_rt_dot___impl_dot_grpc_dot_tracdap_dot_metadata_dot_type__pb2
|
|
26
26
|
|
|
27
27
|
|
|
28
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n7tracdap/rt/_impl/grpc/tracdap/metadata/tag_update.proto\x12\x10tracdap.metadata\x1a\x31tracdap/rt/_impl/grpc/tracdap/metadata/type.proto\"\x87\x01\n\tTagUpdate\x12\x31\n\toperation\x18\x01 \x01(\x0e\x32\x1e.tracdap.metadata.TagOperation\x12\x10\n\x08\x61ttrName\x18\x02 \x01(\t\x12+\n\x05value\x18\x03 \x01(\x0b\x32\x17.tracdap.metadata.ValueH\x00\x88\x01\x01\x42\x08\n\x06_value*\x9e\x01\n\x0cTagOperation\x12\x1a\n\x16\x43REATE_OR_REPLACE_ATTR\x10\x00\x12\x19\n\x15\x43REATE_OR_APPEND_ATTR\x10\x01\x12\x0f\n\x0b\x43REATE_ATTR\x10\x02\x12\x10\n\x0cREPLACE_ATTR\x10\x03\x12\x0f\n\x0b\x41PPEND_ATTR\x10\x04\x12\x0f\n\x0b\x44\x45LETE_ATTR\x10\x05\x12\x12\n\x0e\x43LEAR_ALL_ATTR\x10\x06\x42\x1e\n\x1aorg.finos.tracdap.metadataP\x01\x62\x06proto3')
|
|
28
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n7tracdap/rt/_impl/grpc/tracdap/metadata/tag_update.proto\x12\x10tracdap.metadata\x1a\x31tracdap/rt/_impl/grpc/tracdap/metadata/type.proto\"\x87\x01\n\tTagUpdate\x12\x31\n\toperation\x18\x01 \x01(\x0e\x32\x1e.tracdap.metadata.TagOperation\x12\x10\n\x08\x61ttrName\x18\x02 \x01(\t\x12+\n\x05value\x18\x03 \x01(\x0b\x32\x17.tracdap.metadata.ValueH\x00\x88\x01\x01\x42\x08\n\x06_value\";\n\rTagUpdateList\x12*\n\x05\x61ttrs\x18\x01 \x03(\x0b\x32\x1b.tracdap.metadata.TagUpdate*\x9e\x01\n\x0cTagOperation\x12\x1a\n\x16\x43REATE_OR_REPLACE_ATTR\x10\x00\x12\x19\n\x15\x43REATE_OR_APPEND_ATTR\x10\x01\x12\x0f\n\x0b\x43REATE_ATTR\x10\x02\x12\x10\n\x0cREPLACE_ATTR\x10\x03\x12\x0f\n\x0b\x41PPEND_ATTR\x10\x04\x12\x0f\n\x0b\x44\x45LETE_ATTR\x10\x05\x12\x12\n\x0e\x43LEAR_ALL_ATTR\x10\x06\x42\x1e\n\x1aorg.finos.tracdap.metadataP\x01\x62\x06proto3')
|
|
29
29
|
|
|
30
30
|
_globals = globals()
|
|
31
31
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
@@ -33,8 +33,10 @@ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'tracdap.rt._impl.grpc.tracd
|
|
|
33
33
|
if not _descriptor._USE_C_DESCRIPTORS:
|
|
34
34
|
_globals['DESCRIPTOR']._loaded_options = None
|
|
35
35
|
_globals['DESCRIPTOR']._serialized_options = b'\n\032org.finos.tracdap.metadataP\001'
|
|
36
|
-
_globals['_TAGOPERATION']._serialized_start=
|
|
37
|
-
_globals['_TAGOPERATION']._serialized_end=
|
|
36
|
+
_globals['_TAGOPERATION']._serialized_start=328
|
|
37
|
+
_globals['_TAGOPERATION']._serialized_end=486
|
|
38
38
|
_globals['_TAGUPDATE']._serialized_start=129
|
|
39
39
|
_globals['_TAGUPDATE']._serialized_end=264
|
|
40
|
+
_globals['_TAGUPDATELIST']._serialized_start=266
|
|
41
|
+
_globals['_TAGUPDATELIST']._serialized_end=325
|
|
40
42
|
# @@protoc_insertion_point(module_scope)
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
from tracdap.rt._impl.grpc.tracdap.metadata import type_pb2 as _type_pb2
|
|
2
|
+
from google.protobuf.internal import containers as _containers
|
|
2
3
|
from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
|
|
3
4
|
from google.protobuf import descriptor as _descriptor
|
|
4
5
|
from google.protobuf import message as _message
|
|
5
|
-
from collections.abc import Mapping as _Mapping
|
|
6
|
+
from collections.abc import Iterable as _Iterable, Mapping as _Mapping
|
|
6
7
|
from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union
|
|
7
8
|
|
|
8
9
|
DESCRIPTOR: _descriptor.FileDescriptor
|
|
@@ -33,3 +34,9 @@ class TagUpdate(_message.Message):
|
|
|
33
34
|
attrName: str
|
|
34
35
|
value: _type_pb2.Value
|
|
35
36
|
def __init__(self, operation: _Optional[_Union[TagOperation, str]] = ..., attrName: _Optional[str] = ..., value: _Optional[_Union[_type_pb2.Value, _Mapping]] = ...) -> None: ...
|
|
37
|
+
|
|
38
|
+
class TagUpdateList(_message.Message):
|
|
39
|
+
__slots__ = ("attrs",)
|
|
40
|
+
ATTRS_FIELD_NUMBER: _ClassVar[int]
|
|
41
|
+
attrs: _containers.RepeatedCompositeFieldContainer[TagUpdate]
|
|
42
|
+
def __init__(self, attrs: _Optional[_Iterable[_Union[TagUpdate, _Mapping]]] = ...) -> None: ...
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
TRAC model API for Python
|
|
18
18
|
"""
|
|
19
19
|
|
|
20
|
-
__version__ = "0.12.0.
|
|
20
|
+
__version__ = "0.12.0.dev3"
|
|
21
21
|
|
|
22
22
|
# Make metadata classes available to client code when importing the API package
|
|
23
23
|
# Remove this import when generating docs, so metadata classes are only documented once
|
{tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/metadata/__init__.py
RENAMED
|
@@ -13,15 +13,6 @@ from .object_id import ObjectType
|
|
|
13
13
|
from .object_id import TagHeader
|
|
14
14
|
from .object_id import TagSelector
|
|
15
15
|
|
|
16
|
-
from .search import SearchOperator
|
|
17
|
-
from .search import LogicalOperator
|
|
18
|
-
from .search import SearchTerm
|
|
19
|
-
from .search import LogicalExpression
|
|
20
|
-
from .search import SearchExpression
|
|
21
|
-
from .search import SearchParameters
|
|
22
|
-
|
|
23
|
-
from .custom import CustomDefinition
|
|
24
|
-
|
|
25
16
|
from .data import SchemaType
|
|
26
17
|
from .data import PartType
|
|
27
18
|
from .data import FieldSchema
|
|
@@ -35,8 +26,38 @@ from .data import DataSnapshot
|
|
|
35
26
|
from .data import DataPartition
|
|
36
27
|
from .data import DataDefinition
|
|
37
28
|
|
|
29
|
+
from .file import FileDefinition
|
|
30
|
+
from .file import FileType
|
|
31
|
+
|
|
32
|
+
from .resource import ResourceType
|
|
33
|
+
from .resource import ResourceDefinition
|
|
34
|
+
from .resource import CredentialDefinition
|
|
35
|
+
from .resource import IdentityDefinition
|
|
36
|
+
|
|
37
|
+
from .model import ModelType
|
|
38
|
+
from .model import ModelParameter
|
|
39
|
+
from .model import ModelInputSchema
|
|
40
|
+
from .model import ModelOutputSchema
|
|
41
|
+
from .model import ModelResource
|
|
42
|
+
from .model import ModelSystemDetails
|
|
43
|
+
from .model import ModelDefinition
|
|
44
|
+
|
|
45
|
+
from .search import SearchOperator
|
|
46
|
+
from .search import LogicalOperator
|
|
47
|
+
from .search import SearchTerm
|
|
48
|
+
from .search import LogicalExpression
|
|
49
|
+
from .search import SearchExpression
|
|
50
|
+
from .search import SearchParameters
|
|
51
|
+
|
|
38
52
|
from .tag_update import TagOperation
|
|
39
53
|
from .tag_update import TagUpdate
|
|
54
|
+
from .tag_update import TagUpdateList
|
|
55
|
+
|
|
56
|
+
from .flow import FlowNodeType
|
|
57
|
+
from .flow import FlowNode
|
|
58
|
+
from .flow import FlowSocket
|
|
59
|
+
from .flow import FlowEdge
|
|
60
|
+
from .flow import FlowDefinition
|
|
40
61
|
|
|
41
62
|
from .job import JobType
|
|
42
63
|
from .job import JobStatusCode
|
|
@@ -58,21 +79,7 @@ from .job import JobGroup
|
|
|
58
79
|
from .job import SequentialJobGroup
|
|
59
80
|
from .job import ParallelJobGroup
|
|
60
81
|
|
|
61
|
-
from .
|
|
62
|
-
from .file import FileType
|
|
63
|
-
|
|
64
|
-
from .resource import ResourceType
|
|
65
|
-
from .resource import ResourceDefinition
|
|
66
|
-
from .resource import CredentialDefinition
|
|
67
|
-
from .resource import IdentityDefinition
|
|
68
|
-
|
|
69
|
-
from .model import ModelType
|
|
70
|
-
from .model import ModelParameter
|
|
71
|
-
from .model import ModelInputSchema
|
|
72
|
-
from .model import ModelOutputSchema
|
|
73
|
-
from .model import ModelResource
|
|
74
|
-
from .model import ModelSystemDetails
|
|
75
|
-
from .model import ModelDefinition
|
|
82
|
+
from .custom import CustomDefinition
|
|
76
83
|
|
|
77
84
|
from .storage import CopyStatus
|
|
78
85
|
from .storage import IncarnationStatus
|
|
@@ -88,16 +95,10 @@ from .config import ConfigDetails
|
|
|
88
95
|
from .config import ConfigDefinition
|
|
89
96
|
from .config import PlatformConfigEntry
|
|
90
97
|
|
|
91
|
-
from .flow import FlowNodeType
|
|
92
|
-
from .flow import FlowNode
|
|
93
|
-
from .flow import FlowSocket
|
|
94
|
-
from .flow import FlowEdge
|
|
95
|
-
from .flow import FlowDefinition
|
|
96
|
-
|
|
97
98
|
from .object import ObjectDefinition
|
|
98
99
|
|
|
99
|
-
from .tag import Tag
|
|
100
|
-
|
|
101
100
|
from .common import MetadataFormat
|
|
102
101
|
from .common import MetadataVersion
|
|
103
102
|
from .common import TenantInfo
|
|
103
|
+
|
|
104
|
+
from .tag import Tag
|
|
@@ -136,6 +136,22 @@ class FlowDefinition:
|
|
|
136
136
|
|
|
137
137
|
inputs: "_tp.Dict[str, ModelInputSchema]" = _dc.field(default_factory=dict)
|
|
138
138
|
|
|
139
|
+
"""
|
|
140
|
+
Explicit declarations for the flow's input nodes
|
|
141
|
+
|
|
142
|
+
Inputs can be left undeclared, in which case TRAC infers them from the models they connect to.
|
|
143
|
+
An input declared with only its object type (and optionally a label and props) is checked against
|
|
144
|
+
that type, and the rest of its schema is inferred. An input declared in full, with a schema or file type,
|
|
145
|
+
is used as it is. If any inputs are declared, every input node must be declared.
|
|
146
|
+
"""
|
|
147
|
+
|
|
139
148
|
outputs: "_tp.Dict[str, ModelOutputSchema]" = _dc.field(default_factory=dict)
|
|
140
149
|
|
|
150
|
+
"""
|
|
151
|
+
Explicit declarations for the flow's output nodes
|
|
152
|
+
|
|
153
|
+
Outputs can be undeclared, declared with only their object type, or declared in full, as for inputs.
|
|
154
|
+
If any outputs are declared, every output node must be declared.
|
|
155
|
+
"""
|
|
156
|
+
|
|
141
157
|
resources: "_tp.Dict[str, ModelResource]" = _dc.field(default_factory=dict)
|
|
@@ -212,6 +212,8 @@ class RunModelJob:
|
|
|
212
212
|
|
|
213
213
|
outputAttrs: "_tp.List[TagUpdate]" = _dc.field(default_factory=list)
|
|
214
214
|
|
|
215
|
+
perOutputAttrs: "_tp.Dict[str, TagUpdateList]" = _dc.field(default_factory=dict)
|
|
216
|
+
|
|
215
217
|
|
|
216
218
|
@_dc.dataclass
|
|
217
219
|
class RunFlowJob:
|
|
@@ -234,6 +236,8 @@ class RunFlowJob:
|
|
|
234
236
|
|
|
235
237
|
outputAttrs: "_tp.List[TagUpdate]" = _dc.field(default_factory=list)
|
|
236
238
|
|
|
239
|
+
perOutputAttrs: "_tp.Dict[str, TagUpdateList]" = _dc.field(default_factory=dict)
|
|
240
|
+
|
|
237
241
|
exportStorageAccess: "_tp.List[str]" = _dc.field(default_factory=list)
|
|
238
242
|
|
|
239
243
|
|
{tracdap_runtime-0.12.0.dev2 → tracdap_runtime-0.12.0.dev3}/src/tracdap/rt/metadata/tag_update.py
RENAMED
|
@@ -128,3 +128,23 @@ class TagUpdate:
|
|
|
128
128
|
.. seealso::
|
|
129
129
|
:py:obj:`Value <metadata.Value>`
|
|
130
130
|
"""
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
@_dc.dataclass
|
|
134
|
+
class TagUpdateList:
|
|
135
|
+
|
|
136
|
+
"""
|
|
137
|
+
A list of tag updates, where updates are grouped by a key.
|
|
138
|
+
|
|
139
|
+
Protobuf map values can't be repeated, so a map from a key to its tag updates
|
|
140
|
+
uses this message as the value. For example, the tags for each output of a job
|
|
141
|
+
are held as a map from output name to a tag update list.
|
|
142
|
+
|
|
143
|
+
.. seealso::
|
|
144
|
+
:py:obj:`RunModelJob <RunModelJob>`,
|
|
145
|
+
:py:obj:`RunFlowJob <RunFlowJob>`
|
|
146
|
+
"""
|
|
147
|
+
|
|
148
|
+
attrs: "_tp.List[TagUpdate]" = _dc.field(default_factory=list)
|
|
149
|
+
|
|
150
|
+
"""Tag updates for the key this list belongs to"""
|