tracdap-runtime 0.8.0rc1__py3-none-any.whl → 0.9.0b1__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.
- tracdap/rt/_impl/core/data.py +578 -33
- tracdap/rt/_impl/core/repos.py +7 -0
- tracdap/rt/_impl/core/storage.py +10 -3
- tracdap/rt/_impl/core/util.py +54 -11
- tracdap/rt/_impl/exec/dev_mode.py +122 -100
- tracdap/rt/_impl/exec/engine.py +178 -109
- tracdap/rt/_impl/exec/functions.py +218 -257
- tracdap/rt/_impl/exec/graph.py +140 -125
- tracdap/rt/_impl/exec/graph_builder.py +411 -449
- tracdap/rt/_impl/grpc/codec.py +4 -2
- tracdap/rt/_impl/grpc/server.py +7 -7
- tracdap/rt/_impl/grpc/tracdap/api/internal/runtime_pb2.py +25 -18
- tracdap/rt/_impl/grpc/tracdap/api/internal/runtime_pb2.pyi +27 -9
- tracdap/rt/_impl/grpc/tracdap/metadata/common_pb2.py +1 -1
- tracdap/rt/_impl/grpc/tracdap/metadata/config_pb2.py +40 -0
- tracdap/rt/_impl/grpc/tracdap/metadata/config_pb2.pyi +62 -0
- tracdap/rt/_impl/grpc/tracdap/metadata/custom_pb2.py +1 -1
- tracdap/rt/_impl/grpc/tracdap/metadata/data_pb2.py +1 -1
- tracdap/rt/_impl/grpc/tracdap/metadata/file_pb2.py +1 -1
- tracdap/rt/_impl/grpc/tracdap/metadata/flow_pb2.py +1 -1
- tracdap/rt/_impl/grpc/tracdap/metadata/job_pb2.py +67 -63
- tracdap/rt/_impl/grpc/tracdap/metadata/job_pb2.pyi +11 -2
- tracdap/rt/_impl/grpc/tracdap/metadata/model_pb2.py +1 -1
- tracdap/rt/_impl/grpc/tracdap/metadata/object_id_pb2.py +3 -3
- tracdap/rt/_impl/grpc/tracdap/metadata/object_id_pb2.pyi +4 -0
- tracdap/rt/_impl/grpc/tracdap/metadata/object_pb2.py +8 -6
- tracdap/rt/_impl/grpc/tracdap/metadata/object_pb2.pyi +8 -2
- tracdap/rt/_impl/grpc/tracdap/metadata/resource_pb2.py +18 -5
- tracdap/rt/_impl/grpc/tracdap/metadata/resource_pb2.pyi +42 -2
- tracdap/rt/_impl/grpc/tracdap/metadata/search_pb2.py +1 -1
- tracdap/rt/_impl/grpc/tracdap/metadata/storage_pb2.py +11 -9
- tracdap/rt/_impl/grpc/tracdap/metadata/storage_pb2.pyi +11 -2
- tracdap/rt/_impl/grpc/tracdap/metadata/tag_pb2.py +1 -1
- tracdap/rt/_impl/grpc/tracdap/metadata/tag_update_pb2.py +1 -1
- tracdap/rt/_impl/grpc/tracdap/metadata/type_pb2.py +1 -1
- tracdap/rt/_impl/runtime.py +8 -0
- tracdap/rt/_plugins/repo_git.py +56 -11
- tracdap/rt/_version.py +1 -1
- tracdap/rt/config/__init__.py +6 -4
- tracdap/rt/config/common.py +5 -0
- tracdap/rt/config/dynamic.py +28 -0
- tracdap/rt/config/job.py +13 -3
- tracdap/rt/config/result.py +8 -4
- tracdap/rt/config/runtime.py +2 -0
- tracdap/rt/metadata/__init__.py +37 -30
- tracdap/rt/metadata/config.py +95 -0
- tracdap/rt/metadata/job.py +2 -0
- tracdap/rt/metadata/object.py +6 -0
- tracdap/rt/metadata/object_id.py +4 -0
- tracdap/rt/metadata/resource.py +41 -1
- tracdap/rt/metadata/storage.py +9 -0
- {tracdap_runtime-0.8.0rc1.dist-info → tracdap_runtime-0.9.0b1.dist-info}/METADATA +5 -2
- {tracdap_runtime-0.8.0rc1.dist-info → tracdap_runtime-0.9.0b1.dist-info}/RECORD +56 -52
- {tracdap_runtime-0.8.0rc1.dist-info → tracdap_runtime-0.9.0b1.dist-info}/WHEEL +1 -1
- {tracdap_runtime-0.8.0rc1.dist-info → tracdap_runtime-0.9.0b1.dist-info/licenses}/LICENSE +0 -0
- {tracdap_runtime-0.8.0rc1.dist-info → tracdap_runtime-0.9.0b1.dist-info}/top_level.txt +0 -0
@@ -1,7 +1,7 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
3
3
|
# source: tracdap/rt/_impl/grpc/tracdap/metadata/object_id.proto
|
4
|
-
# Protobuf Python Version: 4.25.
|
4
|
+
# Protobuf Python Version: 4.25.5
|
5
5
|
"""Generated protocol buffer code."""
|
6
6
|
from google.protobuf import descriptor as _descriptor
|
7
7
|
from google.protobuf import descriptor_pool as _descriptor_pool
|
@@ -15,7 +15,7 @@ _sym_db = _symbol_database.Default()
|
|
15
15
|
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
|
16
16
|
|
17
17
|
|
18
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n6tracdap/rt/_impl/grpc/tracdap/metadata/object_id.proto\x12\x10tracdap.metadata\x1a\x31tracdap/rt/_impl/grpc/tracdap/metadata/type.proto\"\x98\x02\n\tTagHeader\x12\x30\n\nobjectType\x18\x01 \x01(\x0e\x32\x1c.tracdap.metadata.ObjectType\x12\x10\n\x08objectId\x18\x02 \x01(\t\x12\x15\n\robjectVersion\x18\x03 \x01(\x05\x12\x38\n\x0fobjectTimestamp\x18\x04 \x01(\x0b\x32\x1f.tracdap.metadata.DatetimeValue\x12\x12\n\ntagVersion\x18\x05 \x01(\x05\x12\x35\n\x0ctagTimestamp\x18\x06 \x01(\x0b\x32\x1f.tracdap.metadata.DatetimeValue\x12\x16\n\x0eisLatestObject\x18\x07 \x01(\x08\x12\x13\n\x0bisLatestTag\x18\x08 \x01(\x08\"\xb9\x02\n\x0bTagSelector\x12\x30\n\nobjectType\x18\x01 \x01(\x0e\x32\x1c.tracdap.metadata.ObjectType\x12\x10\n\x08objectId\x18\x02 \x01(\t\x12\x16\n\x0clatestObject\x18\x03 \x01(\x08H\x00\x12\x17\n\robjectVersion\x18\x04 \x01(\x05H\x00\x12\x35\n\nobjectAsOf\x18\x05 \x01(\x0b\x32\x1f.tracdap.metadata.DatetimeValueH\x00\x12\x13\n\tlatestTag\x18\x06 \x01(\x08H\x01\x12\x14\n\ntagVersion\x18\x07 \x01(\x05H\x01\x12\x32\n\x07tagAsOf\x18\x08 \x01(\x0b\x32\x1f.tracdap.metadata.DatetimeValueH\x01\x42\x10\n\x0eobjectCriteriaB\r\n\x0btagCriteria*\
|
18
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n6tracdap/rt/_impl/grpc/tracdap/metadata/object_id.proto\x12\x10tracdap.metadata\x1a\x31tracdap/rt/_impl/grpc/tracdap/metadata/type.proto\"\x98\x02\n\tTagHeader\x12\x30\n\nobjectType\x18\x01 \x01(\x0e\x32\x1c.tracdap.metadata.ObjectType\x12\x10\n\x08objectId\x18\x02 \x01(\t\x12\x15\n\robjectVersion\x18\x03 \x01(\x05\x12\x38\n\x0fobjectTimestamp\x18\x04 \x01(\x0b\x32\x1f.tracdap.metadata.DatetimeValue\x12\x12\n\ntagVersion\x18\x05 \x01(\x05\x12\x35\n\x0ctagTimestamp\x18\x06 \x01(\x0b\x32\x1f.tracdap.metadata.DatetimeValue\x12\x16\n\x0eisLatestObject\x18\x07 \x01(\x08\x12\x13\n\x0bisLatestTag\x18\x08 \x01(\x08\"\xb9\x02\n\x0bTagSelector\x12\x30\n\nobjectType\x18\x01 \x01(\x0e\x32\x1c.tracdap.metadata.ObjectType\x12\x10\n\x08objectId\x18\x02 \x01(\t\x12\x16\n\x0clatestObject\x18\x03 \x01(\x08H\x00\x12\x17\n\robjectVersion\x18\x04 \x01(\x05H\x00\x12\x35\n\nobjectAsOf\x18\x05 \x01(\x0b\x32\x1f.tracdap.metadata.DatetimeValueH\x00\x12\x13\n\tlatestTag\x18\x06 \x01(\x08H\x01\x12\x14\n\ntagVersion\x18\x07 \x01(\x05H\x01\x12\x32\n\x07tagAsOf\x18\x08 \x01(\x0b\x32\x1f.tracdap.metadata.DatetimeValueH\x01\x42\x10\n\x0eobjectCriteriaB\r\n\x0btagCriteria*\xa2\x01\n\nObjectType\x12\x17\n\x13OBJECT_TYPE_NOT_SET\x10\x00\x12\x08\n\x04\x44\x41TA\x10\x01\x12\t\n\x05MODEL\x10\x02\x12\x08\n\x04\x46LOW\x10\x03\x12\x07\n\x03JOB\x10\x04\x12\x08\n\x04\x46ILE\x10\x05\x12\n\n\x06\x43USTOM\x10\x06\x12\x0b\n\x07STORAGE\x10\x07\x12\n\n\x06SCHEMA\x10\x08\x12\n\n\x06RESULT\x10\t\x12\n\n\x06\x43ONFIG\x10\n\x12\x0c\n\x08RESOURCE\x10\x0b\x42\x1e\n\x1aorg.finos.tracdap.metadataP\x01\x62\x06proto3')
|
19
19
|
|
20
20
|
_globals = globals()
|
21
21
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
@@ -24,7 +24,7 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
24
24
|
_globals['DESCRIPTOR']._options = None
|
25
25
|
_globals['DESCRIPTOR']._serialized_options = b'\n\032org.finos.tracdap.metadataP\001'
|
26
26
|
_globals['_OBJECTTYPE']._serialized_start=727
|
27
|
-
_globals['_OBJECTTYPE']._serialized_end=
|
27
|
+
_globals['_OBJECTTYPE']._serialized_end=889
|
28
28
|
_globals['_TAGHEADER']._serialized_start=128
|
29
29
|
_globals['_TAGHEADER']._serialized_end=408
|
30
30
|
_globals['_TAGSELECTOR']._serialized_start=411
|
@@ -18,6 +18,8 @@ class ObjectType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
|
18
18
|
STORAGE: _ClassVar[ObjectType]
|
19
19
|
SCHEMA: _ClassVar[ObjectType]
|
20
20
|
RESULT: _ClassVar[ObjectType]
|
21
|
+
CONFIG: _ClassVar[ObjectType]
|
22
|
+
RESOURCE: _ClassVar[ObjectType]
|
21
23
|
OBJECT_TYPE_NOT_SET: ObjectType
|
22
24
|
DATA: ObjectType
|
23
25
|
MODEL: ObjectType
|
@@ -28,6 +30,8 @@ CUSTOM: ObjectType
|
|
28
30
|
STORAGE: ObjectType
|
29
31
|
SCHEMA: ObjectType
|
30
32
|
RESULT: ObjectType
|
33
|
+
CONFIG: ObjectType
|
34
|
+
RESOURCE: ObjectType
|
31
35
|
|
32
36
|
class TagHeader(_message.Message):
|
33
37
|
__slots__ = ("objectType", "objectId", "objectVersion", "objectTimestamp", "tagVersion", "tagTimestamp", "isLatestObject", "isLatestTag")
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
3
3
|
# source: tracdap/rt/_impl/grpc/tracdap/metadata/object.proto
|
4
|
-
# Protobuf Python Version: 4.25.
|
4
|
+
# Protobuf Python Version: 4.25.5
|
5
5
|
"""Generated protocol buffer code."""
|
6
6
|
from google.protobuf import descriptor as _descriptor
|
7
7
|
from google.protobuf import descriptor_pool as _descriptor_pool
|
@@ -21,9 +21,11 @@ from tracdap.rt._impl.grpc.tracdap.metadata import job_pb2 as tracdap_dot_rt_dot
|
|
21
21
|
from tracdap.rt._impl.grpc.tracdap.metadata import file_pb2 as tracdap_dot_rt_dot___impl_dot_grpc_dot_tracdap_dot_metadata_dot_file__pb2
|
22
22
|
from tracdap.rt._impl.grpc.tracdap.metadata import custom_pb2 as tracdap_dot_rt_dot___impl_dot_grpc_dot_tracdap_dot_metadata_dot_custom__pb2
|
23
23
|
from tracdap.rt._impl.grpc.tracdap.metadata import storage_pb2 as tracdap_dot_rt_dot___impl_dot_grpc_dot_tracdap_dot_metadata_dot_storage__pb2
|
24
|
+
from tracdap.rt._impl.grpc.tracdap.metadata import config_pb2 as tracdap_dot_rt_dot___impl_dot_grpc_dot_tracdap_dot_metadata_dot_config__pb2
|
25
|
+
from tracdap.rt._impl.grpc.tracdap.metadata import resource_pb2 as tracdap_dot_rt_dot___impl_dot_grpc_dot_tracdap_dot_metadata_dot_resource__pb2
|
24
26
|
|
25
27
|
|
26
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n3tracdap/rt/_impl/grpc/tracdap/metadata/object.proto\x12\x10tracdap.metadata\x1a\x36tracdap/rt/_impl/grpc/tracdap/metadata/object_id.proto\x1a\x31tracdap/rt/_impl/grpc/tracdap/metadata/type.proto\x1a\x31tracdap/rt/_impl/grpc/tracdap/metadata/data.proto\x1a\x32tracdap/rt/_impl/grpc/tracdap/metadata/model.proto\x1a\x31tracdap/rt/_impl/grpc/tracdap/metadata/flow.proto\x1a\x30tracdap/rt/_impl/grpc/tracdap/metadata/job.proto\x1a\x31tracdap/rt/_impl/grpc/tracdap/metadata/file.proto\x1a\x33tracdap/rt/_impl/grpc/tracdap/metadata/custom.proto\x1a\x34tracdap/rt/_impl/grpc/tracdap/metadata/storage.proto\"\
|
28
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n3tracdap/rt/_impl/grpc/tracdap/metadata/object.proto\x12\x10tracdap.metadata\x1a\x36tracdap/rt/_impl/grpc/tracdap/metadata/object_id.proto\x1a\x31tracdap/rt/_impl/grpc/tracdap/metadata/type.proto\x1a\x31tracdap/rt/_impl/grpc/tracdap/metadata/data.proto\x1a\x32tracdap/rt/_impl/grpc/tracdap/metadata/model.proto\x1a\x31tracdap/rt/_impl/grpc/tracdap/metadata/flow.proto\x1a\x30tracdap/rt/_impl/grpc/tracdap/metadata/job.proto\x1a\x31tracdap/rt/_impl/grpc/tracdap/metadata/file.proto\x1a\x33tracdap/rt/_impl/grpc/tracdap/metadata/custom.proto\x1a\x34tracdap/rt/_impl/grpc/tracdap/metadata/storage.proto\x1a\x33tracdap/rt/_impl/grpc/tracdap/metadata/config.proto\x1a\x35tracdap/rt/_impl/grpc/tracdap/metadata/resource.proto\"\xad\x06\n\x10ObjectDefinition\x12\x30\n\nobjectType\x18\x01 \x01(\x0e\x32\x1c.tracdap.metadata.ObjectType\x12\x30\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .tracdap.metadata.DataDefinitionH\x00\x12\x32\n\x05model\x18\x03 \x01(\x0b\x32!.tracdap.metadata.ModelDefinitionH\x00\x12\x30\n\x04\x66low\x18\x04 \x01(\x0b\x32 .tracdap.metadata.FlowDefinitionH\x00\x12.\n\x03job\x18\x05 \x01(\x0b\x32\x1f.tracdap.metadata.JobDefinitionH\x00\x12\x30\n\x04\x66ile\x18\x06 \x01(\x0b\x32 .tracdap.metadata.FileDefinitionH\x00\x12\x34\n\x06\x63ustom\x18\x07 \x01(\x0b\x32\".tracdap.metadata.CustomDefinitionH\x00\x12\x36\n\x07storage\x18\x08 \x01(\x0b\x32#.tracdap.metadata.StorageDefinitionH\x00\x12\x34\n\x06schema\x18\t \x01(\x0b\x32\".tracdap.metadata.SchemaDefinitionH\x00\x12\x34\n\x06result\x18\n \x01(\x0b\x32\".tracdap.metadata.ResultDefinitionH\x00\x12\x34\n\x06\x63onfig\x18\x0b \x01(\x0b\x32\".tracdap.metadata.ConfigDefinitionH\x00\x12\x38\n\x08resource\x18\x0c \x01(\x0b\x32$.tracdap.metadata.ResourceDefinitionH\x00\x12H\n\x0bobjectProps\x18\x64 \x03(\x0b\x32\x33.tracdap.metadata.ObjectDefinition.ObjectPropsEntry\x1aK\n\x10ObjectPropsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.tracdap.metadata.Value:\x02\x38\x01\x42\x0c\n\ndefinitionB2\n\x1aorg.finos.tracdap.metadataB\x12ObjectProtoWrapperP\x01\x62\x06proto3')
|
27
29
|
|
28
30
|
_globals = globals()
|
29
31
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
@@ -33,8 +35,8 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
33
35
|
_globals['DESCRIPTOR']._serialized_options = b'\n\032org.finos.tracdap.metadataB\022ObjectProtoWrapperP\001'
|
34
36
|
_globals['_OBJECTDEFINITION_OBJECTPROPSENTRY']._options = None
|
35
37
|
_globals['_OBJECTDEFINITION_OBJECTPROPSENTRY']._serialized_options = b'8\001'
|
36
|
-
_globals['_OBJECTDEFINITION']._serialized_start=
|
37
|
-
_globals['_OBJECTDEFINITION']._serialized_end=
|
38
|
-
_globals['_OBJECTDEFINITION_OBJECTPROPSENTRY']._serialized_start=
|
39
|
-
_globals['_OBJECTDEFINITION_OBJECTPROPSENTRY']._serialized_end=
|
38
|
+
_globals['_OBJECTDEFINITION']._serialized_start=651
|
39
|
+
_globals['_OBJECTDEFINITION']._serialized_end=1464
|
40
|
+
_globals['_OBJECTDEFINITION_OBJECTPROPSENTRY']._serialized_start=1375
|
41
|
+
_globals['_OBJECTDEFINITION_OBJECTPROPSENTRY']._serialized_end=1450
|
40
42
|
# @@protoc_insertion_point(module_scope)
|
@@ -7,6 +7,8 @@ from tracdap.rt._impl.grpc.tracdap.metadata import job_pb2 as _job_pb2
|
|
7
7
|
from tracdap.rt._impl.grpc.tracdap.metadata import file_pb2 as _file_pb2
|
8
8
|
from tracdap.rt._impl.grpc.tracdap.metadata import custom_pb2 as _custom_pb2
|
9
9
|
from tracdap.rt._impl.grpc.tracdap.metadata import storage_pb2 as _storage_pb2
|
10
|
+
from tracdap.rt._impl.grpc.tracdap.metadata import config_pb2 as _config_pb2
|
11
|
+
from tracdap.rt._impl.grpc.tracdap.metadata import resource_pb2 as _resource_pb2
|
10
12
|
from google.protobuf.internal import containers as _containers
|
11
13
|
from google.protobuf import descriptor as _descriptor
|
12
14
|
from google.protobuf import message as _message
|
@@ -15,7 +17,7 @@ from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Opti
|
|
15
17
|
DESCRIPTOR: _descriptor.FileDescriptor
|
16
18
|
|
17
19
|
class ObjectDefinition(_message.Message):
|
18
|
-
__slots__ = ("objectType", "data", "model", "flow", "job", "file", "custom", "storage", "schema", "result", "objectProps")
|
20
|
+
__slots__ = ("objectType", "data", "model", "flow", "job", "file", "custom", "storage", "schema", "result", "config", "resource", "objectProps")
|
19
21
|
class ObjectPropsEntry(_message.Message):
|
20
22
|
__slots__ = ("key", "value")
|
21
23
|
KEY_FIELD_NUMBER: _ClassVar[int]
|
@@ -33,6 +35,8 @@ class ObjectDefinition(_message.Message):
|
|
33
35
|
STORAGE_FIELD_NUMBER: _ClassVar[int]
|
34
36
|
SCHEMA_FIELD_NUMBER: _ClassVar[int]
|
35
37
|
RESULT_FIELD_NUMBER: _ClassVar[int]
|
38
|
+
CONFIG_FIELD_NUMBER: _ClassVar[int]
|
39
|
+
RESOURCE_FIELD_NUMBER: _ClassVar[int]
|
36
40
|
OBJECTPROPS_FIELD_NUMBER: _ClassVar[int]
|
37
41
|
objectType: _object_id_pb2.ObjectType
|
38
42
|
data: _data_pb2.DataDefinition
|
@@ -44,5 +48,7 @@ class ObjectDefinition(_message.Message):
|
|
44
48
|
storage: _storage_pb2.StorageDefinition
|
45
49
|
schema: _data_pb2.SchemaDefinition
|
46
50
|
result: _job_pb2.ResultDefinition
|
51
|
+
config: _config_pb2.ConfigDefinition
|
52
|
+
resource: _resource_pb2.ResourceDefinition
|
47
53
|
objectProps: _containers.MessageMap[str, _type_pb2.Value]
|
48
|
-
def __init__(self, objectType: _Optional[_Union[_object_id_pb2.ObjectType, str]] = ..., data: _Optional[_Union[_data_pb2.DataDefinition, _Mapping]] = ..., model: _Optional[_Union[_model_pb2.ModelDefinition, _Mapping]] = ..., flow: _Optional[_Union[_flow_pb2.FlowDefinition, _Mapping]] = ..., job: _Optional[_Union[_job_pb2.JobDefinition, _Mapping]] = ..., file: _Optional[_Union[_file_pb2.FileDefinition, _Mapping]] = ..., custom: _Optional[_Union[_custom_pb2.CustomDefinition, _Mapping]] = ..., storage: _Optional[_Union[_storage_pb2.StorageDefinition, _Mapping]] = ..., schema: _Optional[_Union[_data_pb2.SchemaDefinition, _Mapping]] = ..., result: _Optional[_Union[_job_pb2.ResultDefinition, _Mapping]] = ..., objectProps: _Optional[_Mapping[str, _type_pb2.Value]] = ...) -> None: ...
|
54
|
+
def __init__(self, objectType: _Optional[_Union[_object_id_pb2.ObjectType, str]] = ..., data: _Optional[_Union[_data_pb2.DataDefinition, _Mapping]] = ..., model: _Optional[_Union[_model_pb2.ModelDefinition, _Mapping]] = ..., flow: _Optional[_Union[_flow_pb2.FlowDefinition, _Mapping]] = ..., job: _Optional[_Union[_job_pb2.JobDefinition, _Mapping]] = ..., file: _Optional[_Union[_file_pb2.FileDefinition, _Mapping]] = ..., custom: _Optional[_Union[_custom_pb2.CustomDefinition, _Mapping]] = ..., storage: _Optional[_Union[_storage_pb2.StorageDefinition, _Mapping]] = ..., schema: _Optional[_Union[_data_pb2.SchemaDefinition, _Mapping]] = ..., result: _Optional[_Union[_job_pb2.ResultDefinition, _Mapping]] = ..., config: _Optional[_Union[_config_pb2.ConfigDefinition, _Mapping]] = ..., resource: _Optional[_Union[_resource_pb2.ResourceDefinition, _Mapping]] = ..., objectProps: _Optional[_Mapping[str, _type_pb2.Value]] = ...) -> None: ...
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
3
3
|
# source: tracdap/rt/_impl/grpc/tracdap/metadata/resource.proto
|
4
|
-
# Protobuf Python Version: 4.25.
|
4
|
+
# Protobuf Python Version: 4.25.5
|
5
5
|
"""Generated protocol buffer code."""
|
6
6
|
from google.protobuf import descriptor as _descriptor
|
7
7
|
from google.protobuf import descriptor_pool as _descriptor_pool
|
@@ -13,10 +13,9 @@ _sym_db = _symbol_database.Default()
|
|
13
13
|
|
14
14
|
|
15
15
|
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
|
16
|
-
from tracdap.rt._impl.grpc.tracdap.metadata import object_pb2 as tracdap_dot_rt_dot___impl_dot_grpc_dot_tracdap_dot_metadata_dot_object__pb2
|
17
16
|
|
18
17
|
|
19
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n5tracdap/rt/_impl/grpc/tracdap/metadata/resource.proto\x12\x10tracdap.metadata\x1a\x36tracdap/rt/_impl/grpc/tracdap/metadata/object_id.proto\
|
18
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n5tracdap/rt/_impl/grpc/tracdap/metadata/resource.proto\x12\x10tracdap.metadata\x1a\x36tracdap/rt/_impl/grpc/tracdap/metadata/object_id.proto\"\x86\x04\n\x12ResourceDefinition\x12\x34\n\x0cresourceType\x18\x01 \x01(\x0e\x32\x1e.tracdap.metadata.ResourceType\x12\x10\n\x08protocol\x18\x02 \x01(\t\x12\x18\n\x0bsubProtocol\x18\x03 \x01(\tH\x00\x88\x01\x01\x12T\n\x10publicProperties\x18\x04 \x03(\x0b\x32:.tracdap.metadata.ResourceDefinition.PublicPropertiesEntry\x12H\n\nproperties\x18\x05 \x03(\x0b\x32\x34.tracdap.metadata.ResourceDefinition.PropertiesEntry\x12\x42\n\x07secrets\x18\x06 \x03(\x0b\x32\x31.tracdap.metadata.ResourceDefinition.SecretsEntry\x1a\x37\n\x15PublicPropertiesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x31\n\x0fPropertiesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a.\n\x0cSecretsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0e\n\x0c_subProtocol*k\n\x0cResourceType\x12\x19\n\x15RESOURCE_TYPE_NOT_SET\x10\x00\x12\x14\n\x10MODEL_REPOSITORY\x10\x01\x12\x14\n\x10INTERNAL_STORAGE\x10\x02\x12\x14\n\x10\x45XTERNAL_STORAGE\x10\x03\x42\x1e\n\x1aorg.finos.tracdap.metadataP\x01\x62\x06proto3')
|
20
19
|
|
21
20
|
_globals = globals()
|
22
21
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
@@ -24,6 +23,20 @@ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'tracdap.rt._impl.grpc.tracd
|
|
24
23
|
if _descriptor._USE_C_DESCRIPTORS == False:
|
25
24
|
_globals['DESCRIPTOR']._options = None
|
26
25
|
_globals['DESCRIPTOR']._serialized_options = b'\n\032org.finos.tracdap.metadataP\001'
|
27
|
-
_globals['
|
28
|
-
_globals['
|
26
|
+
_globals['_RESOURCEDEFINITION_PUBLICPROPERTIESENTRY']._options = None
|
27
|
+
_globals['_RESOURCEDEFINITION_PUBLICPROPERTIESENTRY']._serialized_options = b'8\001'
|
28
|
+
_globals['_RESOURCEDEFINITION_PROPERTIESENTRY']._options = None
|
29
|
+
_globals['_RESOURCEDEFINITION_PROPERTIESENTRY']._serialized_options = b'8\001'
|
30
|
+
_globals['_RESOURCEDEFINITION_SECRETSENTRY']._options = None
|
31
|
+
_globals['_RESOURCEDEFINITION_SECRETSENTRY']._serialized_options = b'8\001'
|
32
|
+
_globals['_RESOURCETYPE']._serialized_start=652
|
33
|
+
_globals['_RESOURCETYPE']._serialized_end=759
|
34
|
+
_globals['_RESOURCEDEFINITION']._serialized_start=132
|
35
|
+
_globals['_RESOURCEDEFINITION']._serialized_end=650
|
36
|
+
_globals['_RESOURCEDEFINITION_PUBLICPROPERTIESENTRY']._serialized_start=480
|
37
|
+
_globals['_RESOURCEDEFINITION_PUBLICPROPERTIESENTRY']._serialized_end=535
|
38
|
+
_globals['_RESOURCEDEFINITION_PROPERTIESENTRY']._serialized_start=537
|
39
|
+
_globals['_RESOURCEDEFINITION_PROPERTIESENTRY']._serialized_end=586
|
40
|
+
_globals['_RESOURCEDEFINITION_SECRETSENTRY']._serialized_start=588
|
41
|
+
_globals['_RESOURCEDEFINITION_SECRETSENTRY']._serialized_end=634
|
29
42
|
# @@protoc_insertion_point(module_scope)
|
@@ -1,8 +1,9 @@
|
|
1
1
|
from tracdap.rt._impl.grpc.tracdap.metadata import object_id_pb2 as _object_id_pb2
|
2
|
-
from
|
2
|
+
from google.protobuf.internal import containers as _containers
|
3
3
|
from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
|
4
4
|
from google.protobuf import descriptor as _descriptor
|
5
|
-
from
|
5
|
+
from google.protobuf import message as _message
|
6
|
+
from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union
|
6
7
|
|
7
8
|
DESCRIPTOR: _descriptor.FileDescriptor
|
8
9
|
|
@@ -11,6 +12,45 @@ class ResourceType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
|
11
12
|
RESOURCE_TYPE_NOT_SET: _ClassVar[ResourceType]
|
12
13
|
MODEL_REPOSITORY: _ClassVar[ResourceType]
|
13
14
|
INTERNAL_STORAGE: _ClassVar[ResourceType]
|
15
|
+
EXTERNAL_STORAGE: _ClassVar[ResourceType]
|
14
16
|
RESOURCE_TYPE_NOT_SET: ResourceType
|
15
17
|
MODEL_REPOSITORY: ResourceType
|
16
18
|
INTERNAL_STORAGE: ResourceType
|
19
|
+
EXTERNAL_STORAGE: ResourceType
|
20
|
+
|
21
|
+
class ResourceDefinition(_message.Message):
|
22
|
+
__slots__ = ("resourceType", "protocol", "subProtocol", "publicProperties", "properties", "secrets")
|
23
|
+
class PublicPropertiesEntry(_message.Message):
|
24
|
+
__slots__ = ("key", "value")
|
25
|
+
KEY_FIELD_NUMBER: _ClassVar[int]
|
26
|
+
VALUE_FIELD_NUMBER: _ClassVar[int]
|
27
|
+
key: str
|
28
|
+
value: str
|
29
|
+
def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
|
30
|
+
class PropertiesEntry(_message.Message):
|
31
|
+
__slots__ = ("key", "value")
|
32
|
+
KEY_FIELD_NUMBER: _ClassVar[int]
|
33
|
+
VALUE_FIELD_NUMBER: _ClassVar[int]
|
34
|
+
key: str
|
35
|
+
value: str
|
36
|
+
def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
|
37
|
+
class SecretsEntry(_message.Message):
|
38
|
+
__slots__ = ("key", "value")
|
39
|
+
KEY_FIELD_NUMBER: _ClassVar[int]
|
40
|
+
VALUE_FIELD_NUMBER: _ClassVar[int]
|
41
|
+
key: str
|
42
|
+
value: str
|
43
|
+
def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
|
44
|
+
RESOURCETYPE_FIELD_NUMBER: _ClassVar[int]
|
45
|
+
PROTOCOL_FIELD_NUMBER: _ClassVar[int]
|
46
|
+
SUBPROTOCOL_FIELD_NUMBER: _ClassVar[int]
|
47
|
+
PUBLICPROPERTIES_FIELD_NUMBER: _ClassVar[int]
|
48
|
+
PROPERTIES_FIELD_NUMBER: _ClassVar[int]
|
49
|
+
SECRETS_FIELD_NUMBER: _ClassVar[int]
|
50
|
+
resourceType: ResourceType
|
51
|
+
protocol: str
|
52
|
+
subProtocol: str
|
53
|
+
publicProperties: _containers.ScalarMap[str, str]
|
54
|
+
properties: _containers.ScalarMap[str, str]
|
55
|
+
secrets: _containers.ScalarMap[str, str]
|
56
|
+
def __init__(self, resourceType: _Optional[_Union[ResourceType, str]] = ..., protocol: _Optional[str] = ..., subProtocol: _Optional[str] = ..., publicProperties: _Optional[_Mapping[str, str]] = ..., properties: _Optional[_Mapping[str, str]] = ..., secrets: _Optional[_Mapping[str, str]] = ...) -> None: ...
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
3
3
|
# source: tracdap/rt/_impl/grpc/tracdap/metadata/search.proto
|
4
|
-
# Protobuf Python Version: 4.25.
|
4
|
+
# Protobuf Python Version: 4.25.5
|
5
5
|
"""Generated protocol buffer code."""
|
6
6
|
from google.protobuf import descriptor as _descriptor
|
7
7
|
from google.protobuf import descriptor_pool as _descriptor_pool
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
3
3
|
# source: tracdap/rt/_impl/grpc/tracdap/metadata/storage.proto
|
4
|
-
# Protobuf Python Version: 4.25.
|
4
|
+
# Protobuf Python Version: 4.25.5
|
5
5
|
"""Generated protocol buffer code."""
|
6
6
|
from google.protobuf import descriptor as _descriptor
|
7
7
|
from google.protobuf import descriptor_pool as _descriptor_pool
|
@@ -15,7 +15,7 @@ _sym_db = _symbol_database.Default()
|
|
15
15
|
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
|
16
16
|
|
17
17
|
|
18
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n4tracdap/rt/_impl/grpc/tracdap/metadata/storage.proto\x12\x10tracdap.metadata\x1a\x31tracdap/rt/_impl/grpc/tracdap/metadata/type.proto\"\xd2\x02\n\x0bStorageCopy\x12\x12\n\nstorageKey\x18\x01 \x01(\t\x12\x13\n\x0bstoragePath\x18\x02 \x01(\t\x12\x15\n\rstorageFormat\x18\x03 \x01(\t\x12\x30\n\ncopyStatus\x18\x04 \x01(\x0e\x32\x1c.tracdap.metadata.CopyStatus\x12\x36\n\rcopyTimestamp\x18\x05 \x01(\x0b\x32\x1f.tracdap.metadata.DatetimeValue\x12I\n\x0estorageOptions\x18\x06 \x03(\x0b\x32\x31.tracdap.metadata.StorageCopy.StorageOptionsEntry\x1aN\n\x13StorageOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.tracdap.metadata.Value:\x02\x38\x01\"\xdc\x01\n\x12StorageIncarnation\x12-\n\x06\x63opies\x18\x01 \x03(\x0b\x32\x1d.tracdap.metadata.StorageCopy\x12\x18\n\x10incarnationIndex\x18\x02 \x01(\x05\x12=\n\x14incarnationTimestamp\x18\x03 \x01(\x0b\x32\x1f.tracdap.metadata.DatetimeValue\x12>\n\x11incarnationStatus\x18\x04 \x01(\x0e\x32#.tracdap.metadata.IncarnationStatus\"I\n\x0bStorageItem\x12:\n\x0cincarnations\x18\x01 \x03(\x0b\x32$.tracdap.metadata.StorageIncarnation\"\
|
18
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n4tracdap/rt/_impl/grpc/tracdap/metadata/storage.proto\x12\x10tracdap.metadata\x1a\x31tracdap/rt/_impl/grpc/tracdap/metadata/type.proto\"\xd2\x02\n\x0bStorageCopy\x12\x12\n\nstorageKey\x18\x01 \x01(\t\x12\x13\n\x0bstoragePath\x18\x02 \x01(\t\x12\x15\n\rstorageFormat\x18\x03 \x01(\t\x12\x30\n\ncopyStatus\x18\x04 \x01(\x0e\x32\x1c.tracdap.metadata.CopyStatus\x12\x36\n\rcopyTimestamp\x18\x05 \x01(\x0b\x32\x1f.tracdap.metadata.DatetimeValue\x12I\n\x0estorageOptions\x18\x06 \x03(\x0b\x32\x31.tracdap.metadata.StorageCopy.StorageOptionsEntry\x1aN\n\x13StorageOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.tracdap.metadata.Value:\x02\x38\x01\"\xdc\x01\n\x12StorageIncarnation\x12-\n\x06\x63opies\x18\x01 \x03(\x0b\x32\x1d.tracdap.metadata.StorageCopy\x12\x18\n\x10incarnationIndex\x18\x02 \x01(\x05\x12=\n\x14incarnationTimestamp\x18\x03 \x01(\x0b\x32\x1f.tracdap.metadata.DatetimeValue\x12>\n\x11incarnationStatus\x18\x04 \x01(\x0e\x32#.tracdap.metadata.IncarnationStatus\"I\n\x0bStorageItem\x12:\n\x0cincarnations\x18\x01 \x03(\x0b\x32$.tracdap.metadata.StorageIncarnation\"\x92\x03\n\x11StorageDefinition\x12\x45\n\tdataItems\x18\x01 \x03(\x0b\x32\x32.tracdap.metadata.StorageDefinition.DataItemsEntry\x12O\n\x0estorageOptions\x18\x03 \x03(\x0b\x32\x37.tracdap.metadata.StorageDefinition.StorageOptionsEntry\x12/\n\x06layout\x18\x04 \x01(\x0e\x32\x1f.tracdap.metadata.StorageLayout\x1aO\n\x0e\x44\x61taItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.tracdap.metadata.StorageItem:\x02\x38\x01\x1aN\n\x13StorageOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.tracdap.metadata.Value:\x02\x38\x01J\x04\x08\x02\x10\x03R\rstorageFormat*L\n\nCopyStatus\x12\x17\n\x13\x43OPY_STATUS_NOT_SET\x10\x00\x12\x12\n\x0e\x43OPY_AVAILABLE\x10\x01\x12\x11\n\rCOPY_EXPUNGED\x10\x02*h\n\x11IncarnationStatus\x12\x1e\n\x1aINCARNATION_STATUS_NOT_SET\x10\x00\x12\x19\n\x15INCARNATION_AVAILABLE\x10\x01\x12\x18\n\x14INCARNATION_EXPUNGED\x10\x02*;\n\rStorageLayout\x12\x14\n\x10OBJECT_ID_LAYOUT\x10\x00\x12\x14\n\x10\x44\x45VELOPER_LAYOUT\x10\x01\x42\x1e\n\x1aorg.finos.tracdap.metadataP\x01\x62\x06proto3')
|
19
19
|
|
20
20
|
_globals = globals()
|
21
21
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
@@ -29,10 +29,12 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
29
29
|
_globals['_STORAGEDEFINITION_DATAITEMSENTRY']._serialized_options = b'8\001'
|
30
30
|
_globals['_STORAGEDEFINITION_STORAGEOPTIONSENTRY']._options = None
|
31
31
|
_globals['_STORAGEDEFINITION_STORAGEOPTIONSENTRY']._serialized_options = b'8\001'
|
32
|
-
_globals['_COPYSTATUS']._serialized_start=
|
33
|
-
_globals['_COPYSTATUS']._serialized_end=
|
34
|
-
_globals['_INCARNATIONSTATUS']._serialized_start=
|
35
|
-
_globals['_INCARNATIONSTATUS']._serialized_end=
|
32
|
+
_globals['_COPYSTATUS']._serialized_start=1169
|
33
|
+
_globals['_COPYSTATUS']._serialized_end=1245
|
34
|
+
_globals['_INCARNATIONSTATUS']._serialized_start=1247
|
35
|
+
_globals['_INCARNATIONSTATUS']._serialized_end=1351
|
36
|
+
_globals['_STORAGELAYOUT']._serialized_start=1353
|
37
|
+
_globals['_STORAGELAYOUT']._serialized_end=1412
|
36
38
|
_globals['_STORAGECOPY']._serialized_start=126
|
37
39
|
_globals['_STORAGECOPY']._serialized_end=464
|
38
40
|
_globals['_STORAGECOPY_STORAGEOPTIONSENTRY']._serialized_start=386
|
@@ -42,9 +44,9 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
42
44
|
_globals['_STORAGEITEM']._serialized_start=689
|
43
45
|
_globals['_STORAGEITEM']._serialized_end=762
|
44
46
|
_globals['_STORAGEDEFINITION']._serialized_start=765
|
45
|
-
_globals['_STORAGEDEFINITION']._serialized_end=
|
46
|
-
_globals['_STORAGEDEFINITION_DATAITEMSENTRY']._serialized_start=
|
47
|
-
_globals['_STORAGEDEFINITION_DATAITEMSENTRY']._serialized_end=
|
47
|
+
_globals['_STORAGEDEFINITION']._serialized_end=1167
|
48
|
+
_globals['_STORAGEDEFINITION_DATAITEMSENTRY']._serialized_start=987
|
49
|
+
_globals['_STORAGEDEFINITION_DATAITEMSENTRY']._serialized_end=1066
|
48
50
|
_globals['_STORAGEDEFINITION_STORAGEOPTIONSENTRY']._serialized_start=386
|
49
51
|
_globals['_STORAGEDEFINITION_STORAGEOPTIONSENTRY']._serialized_end=464
|
50
52
|
# @@protoc_insertion_point(module_scope)
|
@@ -18,12 +18,19 @@ class IncarnationStatus(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
|
18
18
|
INCARNATION_STATUS_NOT_SET: _ClassVar[IncarnationStatus]
|
19
19
|
INCARNATION_AVAILABLE: _ClassVar[IncarnationStatus]
|
20
20
|
INCARNATION_EXPUNGED: _ClassVar[IncarnationStatus]
|
21
|
+
|
22
|
+
class StorageLayout(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
23
|
+
__slots__ = ()
|
24
|
+
OBJECT_ID_LAYOUT: _ClassVar[StorageLayout]
|
25
|
+
DEVELOPER_LAYOUT: _ClassVar[StorageLayout]
|
21
26
|
COPY_STATUS_NOT_SET: CopyStatus
|
22
27
|
COPY_AVAILABLE: CopyStatus
|
23
28
|
COPY_EXPUNGED: CopyStatus
|
24
29
|
INCARNATION_STATUS_NOT_SET: IncarnationStatus
|
25
30
|
INCARNATION_AVAILABLE: IncarnationStatus
|
26
31
|
INCARNATION_EXPUNGED: IncarnationStatus
|
32
|
+
OBJECT_ID_LAYOUT: StorageLayout
|
33
|
+
DEVELOPER_LAYOUT: StorageLayout
|
27
34
|
|
28
35
|
class StorageCopy(_message.Message):
|
29
36
|
__slots__ = ("storageKey", "storagePath", "storageFormat", "copyStatus", "copyTimestamp", "storageOptions")
|
@@ -67,7 +74,7 @@ class StorageItem(_message.Message):
|
|
67
74
|
def __init__(self, incarnations: _Optional[_Iterable[_Union[StorageIncarnation, _Mapping]]] = ...) -> None: ...
|
68
75
|
|
69
76
|
class StorageDefinition(_message.Message):
|
70
|
-
__slots__ = ("dataItems", "storageOptions")
|
77
|
+
__slots__ = ("dataItems", "storageOptions", "layout")
|
71
78
|
class DataItemsEntry(_message.Message):
|
72
79
|
__slots__ = ("key", "value")
|
73
80
|
KEY_FIELD_NUMBER: _ClassVar[int]
|
@@ -84,6 +91,8 @@ class StorageDefinition(_message.Message):
|
|
84
91
|
def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[_type_pb2.Value, _Mapping]] = ...) -> None: ...
|
85
92
|
DATAITEMS_FIELD_NUMBER: _ClassVar[int]
|
86
93
|
STORAGEOPTIONS_FIELD_NUMBER: _ClassVar[int]
|
94
|
+
LAYOUT_FIELD_NUMBER: _ClassVar[int]
|
87
95
|
dataItems: _containers.MessageMap[str, StorageItem]
|
88
96
|
storageOptions: _containers.MessageMap[str, _type_pb2.Value]
|
89
|
-
|
97
|
+
layout: StorageLayout
|
98
|
+
def __init__(self, dataItems: _Optional[_Mapping[str, StorageItem]] = ..., storageOptions: _Optional[_Mapping[str, _type_pb2.Value]] = ..., layout: _Optional[_Union[StorageLayout, str]] = ...) -> None: ...
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
3
3
|
# source: tracdap/rt/_impl/grpc/tracdap/metadata/tag.proto
|
4
|
-
# Protobuf Python Version: 4.25.
|
4
|
+
# Protobuf Python Version: 4.25.5
|
5
5
|
"""Generated protocol buffer code."""
|
6
6
|
from google.protobuf import descriptor as _descriptor
|
7
7
|
from google.protobuf import descriptor_pool as _descriptor_pool
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
3
3
|
# source: tracdap/rt/_impl/grpc/tracdap/metadata/tag_update.proto
|
4
|
-
# Protobuf Python Version: 4.25.
|
4
|
+
# Protobuf Python Version: 4.25.5
|
5
5
|
"""Generated protocol buffer code."""
|
6
6
|
from google.protobuf import descriptor as _descriptor
|
7
7
|
from google.protobuf import descriptor_pool as _descriptor_pool
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
3
3
|
# source: tracdap/rt/_impl/grpc/tracdap/metadata/type.proto
|
4
|
-
# Protobuf Python Version: 4.25.
|
4
|
+
# Protobuf Python Version: 4.25.5
|
5
5
|
"""Generated protocol buffer code."""
|
6
6
|
from google.protobuf import descriptor as _descriptor
|
7
7
|
from google.protobuf import descriptor_pool as _descriptor_pool
|
tracdap/rt/_impl/runtime.py
CHANGED
@@ -30,6 +30,7 @@ import tracdap.rt.config as _cfg
|
|
30
30
|
import tracdap.rt.exceptions as _ex
|
31
31
|
import tracdap.rt.ext.plugins as _plugins
|
32
32
|
import tracdap.rt._impl.core.config_parser as _cparse
|
33
|
+
import tracdap.rt._impl.core.data as _data
|
33
34
|
import tracdap.rt._impl.core.guard_rails as _guard
|
34
35
|
import tracdap.rt._impl.core.logging as _logging
|
35
36
|
import tracdap.rt._impl.core.models as _models
|
@@ -167,6 +168,13 @@ class TracRuntime:
|
|
167
168
|
else:
|
168
169
|
self._log.info("Using embedded system config")
|
169
170
|
|
171
|
+
# Check whether to enable categorical processing in the data layer
|
172
|
+
|
173
|
+
if _data.DataMapping.CATEGORICAL_CONFIG_KEY in self._sys_config.properties:
|
174
|
+
categorical_prop = self._sys_config.properties[_data.DataMapping.CATEGORICAL_CONFIG_KEY]
|
175
|
+
categorical_flag = categorical_prop and categorical_prop.lower() == "true"
|
176
|
+
_data.DataMapping.enable_categorical(categorical_flag)
|
177
|
+
|
170
178
|
# Dev mode translation is controlled by the dev mode flag
|
171
179
|
# I.e. it can be applied to embedded configs
|
172
180
|
|
tracdap/rt/_plugins/repo_git.py
CHANGED
@@ -23,6 +23,7 @@ import time
|
|
23
23
|
import dulwich.repo as git_repo
|
24
24
|
import dulwich.client as git_client
|
25
25
|
import dulwich.index as git_index
|
26
|
+
import urllib3.exceptions # noqa
|
26
27
|
|
27
28
|
import tracdap.rt.metadata as meta
|
28
29
|
import tracdap.rt.exceptions as ex
|
@@ -75,20 +76,45 @@ class GitRepository(IModelRepository):
|
|
75
76
|
|
76
77
|
def do_checkout(self, model_def: meta.ModelDefinition, checkout_dir: pathlib.Path) -> pathlib.Path:
|
77
78
|
|
78
|
-
|
79
|
-
f"Git checkout: repo = [{model_def.repository}], " +
|
80
|
-
f"group = [{model_def.packageGroup}], package = [{model_def.package}], version = [{model_def.version}]")
|
79
|
+
try:
|
81
80
|
|
82
|
-
|
81
|
+
self._log.info(
|
82
|
+
f"Git checkout: repo = [{model_def.repository}], " +
|
83
|
+
f"group = [{model_def.packageGroup}], package = [{model_def.package}], version = [{model_def.version}]")
|
83
84
|
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
85
|
+
self._log.info(f"Checkout location: [{checkout_dir}]")
|
86
|
+
|
87
|
+
if self._native_git:
|
88
|
+
package_path = self._do_native_checkout(model_def, checkout_dir)
|
89
|
+
else:
|
90
|
+
package_path = self._do_python_checkout(model_def, checkout_dir)
|
91
|
+
|
92
|
+
self._log.info(f"Git checkout succeeded for {model_def.package} {model_def.version}")
|
93
|
+
|
94
|
+
return package_path
|
95
|
+
|
96
|
+
except Exception as e:
|
97
|
+
|
98
|
+
error = e
|
99
|
+
|
100
|
+
# For retry failures, try to find the original cause
|
101
|
+
while e.__cause__ is not None:
|
102
|
+
if isinstance(e, urllib3.exceptions.MaxRetryError):
|
103
|
+
error = e.__cause__
|
104
|
+
break
|
105
|
+
else:
|
106
|
+
e = e.__cause__
|
107
|
+
|
108
|
+
# Try to sanitize error messages from urllib3
|
109
|
+
if isinstance(error, urllib3.exceptions.HTTPError):
|
110
|
+
detail = self._clean_urllib3_error(error)
|
111
|
+
else:
|
112
|
+
detail = str(error)
|
88
113
|
|
89
|
-
|
114
|
+
message = f"Failed to check out [{model_def.repository}]: {detail}"
|
90
115
|
|
91
|
-
|
116
|
+
self._log.error(message)
|
117
|
+
raise ex.EModelRepo(message) from error
|
92
118
|
|
93
119
|
def _do_native_checkout(self, model_def: meta.ModelDefinition, checkout_dir: pathlib.Path) -> pathlib.Path:
|
94
120
|
|
@@ -150,10 +176,15 @@ class GitRepository(IModelRepository):
|
|
150
176
|
for line in cmd_err:
|
151
177
|
self._log.info(line)
|
152
178
|
|
153
|
-
|
179
|
+
elif cmd_err:
|
180
|
+
|
154
181
|
for line in cmd_err:
|
155
182
|
self._log.error(line)
|
156
183
|
|
184
|
+
raise ex.EModelRepo(cmd_err[-1])
|
185
|
+
|
186
|
+
else:
|
187
|
+
|
157
188
|
error_msg = f"Git checkout failed for {model_def.package} {model_def.version}"
|
158
189
|
self._log.error(error_msg)
|
159
190
|
raise ex.EModelRepo(error_msg)
|
@@ -265,6 +296,20 @@ class GitRepository(IModelRepository):
|
|
265
296
|
def _ref_key(key):
|
266
297
|
return bytes(key, "ascii")
|
267
298
|
|
299
|
+
@classmethod
|
300
|
+
def _clean_urllib3_error(cls, error: urllib3.exceptions.HTTPError):
|
301
|
+
|
302
|
+
match = cls._URLLIB3_ERROR_PATTERN.match(str(error))
|
303
|
+
|
304
|
+
# Best efforts to clean up the message, fall back on str(error)
|
305
|
+
if match:
|
306
|
+
return match.group(1)
|
307
|
+
else:
|
308
|
+
return str(error)
|
309
|
+
|
310
|
+
# Error message format is like this:
|
311
|
+
# <pkg.ClassName object at 0xXXXXXXX>: Message
|
312
|
+
_URLLIB3_ERROR_PATTERN = re.compile(r"<[^>]*>: (.*)")
|
268
313
|
|
269
314
|
# Register plugin
|
270
315
|
plugins.PluginManager.register_plugin(IModelRepository, GitRepository, ["git"])
|
tracdap/rt/_version.py
CHANGED
tracdap/rt/config/__init__.py
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# Code generated by TRAC
|
2
2
|
|
3
|
-
from .
|
3
|
+
from .result import JobResultAttrs
|
4
|
+
from .result import JobResult
|
4
5
|
|
5
6
|
from .common import _ConfigFile
|
6
7
|
from .common import PluginConfig
|
@@ -8,9 +9,6 @@ from .common import PlatformInfo
|
|
8
9
|
from .common import StorageConfig
|
9
10
|
from .common import ServiceConfig
|
10
11
|
|
11
|
-
from .result import TagUpdateList
|
12
|
-
from .result import JobResult
|
13
|
-
|
14
12
|
from .platform import RoutingProtocol
|
15
13
|
from .platform import DeploymentLayout
|
16
14
|
from .platform import PlatformConfig
|
@@ -26,3 +24,7 @@ from .platform import ClientConfig
|
|
26
24
|
|
27
25
|
from .runtime import RuntimeConfig
|
28
26
|
from .runtime import SparkSettings
|
27
|
+
|
28
|
+
from .job import JobConfig
|
29
|
+
|
30
|
+
from .dynamic import DynamicConfig
|
tracdap/rt/config/common.py
CHANGED
@@ -4,6 +4,9 @@ import typing as _tp # noqa
|
|
4
4
|
import dataclasses as _dc # noqa
|
5
5
|
import enum as _enum # noqa
|
6
6
|
|
7
|
+
import tracdap.rt.metadata as metadata
|
8
|
+
|
9
|
+
|
7
10
|
|
8
11
|
@_dc.dataclass
|
9
12
|
class _ConfigFile:
|
@@ -46,6 +49,8 @@ class StorageConfig:
|
|
46
49
|
|
47
50
|
defaultFormat: "str" = ""
|
48
51
|
|
52
|
+
defaultLayout: "metadata.StorageLayout" = metadata.StorageLayout.OBJECT_ID_LAYOUT
|
53
|
+
|
49
54
|
|
50
55
|
@_dc.dataclass
|
51
56
|
class ServiceConfig:
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# Code generated by TRAC
|
2
|
+
|
3
|
+
import typing as _tp # noqa
|
4
|
+
import dataclasses as _dc # noqa
|
5
|
+
import enum as _enum # noqa
|
6
|
+
|
7
|
+
import tracdap.rt.metadata as metadata
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
@_dc.dataclass
|
12
|
+
class DynamicConfig:
|
13
|
+
|
14
|
+
"""
|
15
|
+
Represent config that is normally held in the metadata store
|
16
|
+
|
17
|
+
This can be used to supply config to isolated processes, including
|
18
|
+
the runtime when operating in batch mode. It can also be used to
|
19
|
+
to supply config for testing or to bootstrap the metadata store.
|
20
|
+
"""
|
21
|
+
|
22
|
+
configClass: "str" = ""
|
23
|
+
|
24
|
+
resourceClass: "str" = ""
|
25
|
+
|
26
|
+
config: "_tp.Dict[str, metadata.ConfigDefinition]" = _dc.field(default_factory=dict)
|
27
|
+
|
28
|
+
resources: "_tp.Dict[str, metadata.ResourceDefinition]" = _dc.field(default_factory=dict)
|
tracdap/rt/config/job.py
CHANGED
@@ -13,10 +13,20 @@ class JobConfig:
|
|
13
13
|
|
14
14
|
jobId: "metadata.TagHeader" = _dc.field(default_factory=lambda: metadata.TagHeader())
|
15
15
|
|
16
|
+
"""ID and definition of the job being submitted"""
|
17
|
+
|
16
18
|
job: "metadata.JobDefinition" = _dc.field(default_factory=lambda: metadata.JobDefinition())
|
17
19
|
|
18
|
-
|
20
|
+
objectMapping: "_tp.Dict[str, metadata.TagHeader]" = _dc.field(default_factory=dict)
|
21
|
+
|
22
|
+
"""Metadata needed to execute the job (objects referred to in the job definition)"""
|
23
|
+
|
24
|
+
objects: "_tp.Dict[str, metadata.ObjectDefinition]" = _dc.field(default_factory=dict)
|
25
|
+
|
26
|
+
tags: "_tp.Dict[str, metadata.Tag]" = _dc.field(default_factory=dict)
|
27
|
+
|
28
|
+
resultId: "metadata.TagHeader" = _dc.field(default_factory=lambda: metadata.TagHeader())
|
19
29
|
|
20
|
-
|
30
|
+
"""Preallocated IDs for job outputs"""
|
21
31
|
|
22
|
-
|
32
|
+
preallocatedIds: "_tp.List[metadata.TagHeader]" = _dc.field(default_factory=list)
|
tracdap/rt/config/result.py
CHANGED
@@ -9,7 +9,7 @@ import tracdap.rt.metadata as metadata
|
|
9
9
|
|
10
10
|
|
11
11
|
@_dc.dataclass
|
12
|
-
class
|
12
|
+
class JobResultAttrs:
|
13
13
|
|
14
14
|
attrs: "_tp.List[metadata.TagUpdate]" = _dc.field(default_factory=list)
|
15
15
|
|
@@ -19,8 +19,12 @@ class JobResult:
|
|
19
19
|
|
20
20
|
jobId: "metadata.TagHeader" = _dc.field(default_factory=lambda: metadata.TagHeader())
|
21
21
|
|
22
|
-
|
22
|
+
resultId: "metadata.TagHeader" = _dc.field(default_factory=lambda: metadata.TagHeader())
|
23
23
|
|
24
|
-
|
24
|
+
result: "metadata.ResultDefinition" = _dc.field(default_factory=lambda: metadata.ResultDefinition())
|
25
25
|
|
26
|
-
|
26
|
+
objectIds: "_tp.List[metadata.TagHeader]" = _dc.field(default_factory=list)
|
27
|
+
|
28
|
+
objects: "_tp.Dict[str, metadata.ObjectDefinition]" = _dc.field(default_factory=dict)
|
29
|
+
|
30
|
+
attrs: "_tp.Dict[str, JobResultAttrs]" = _dc.field(default_factory=dict)
|
tracdap/rt/config/runtime.py
CHANGED