tracdap-runtime 0.8.0b4__py3-none-any.whl → 0.8.0rc2__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/grpc/codec.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/object_id_pb2.py +2 -2
- 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 +10 -4
- tracdap/rt/_impl/grpc/tracdap/metadata/resource_pb2.py +17 -4
- tracdap/rt/_impl/grpc/tracdap/metadata/resource_pb2.pyi +42 -2
- tracdap/rt/_impl/grpc/tracdap/metadata/{stoarge_pb2.py → storage_pb2.py} +3 -3
- tracdap/rt/_version.py +1 -1
- tracdap/rt/api/__init__.py +1 -23
- tracdap/rt/api/constants.py +57 -0
- tracdap/rt/api/static_api.py +54 -2
- tracdap/rt/config/__init__.py +7 -5
- tracdap/rt/config/dynamic.py +28 -0
- tracdap/rt/metadata/__init__.py +36 -30
- tracdap/rt/metadata/config.py +95 -0
- tracdap/rt/metadata/data.py +2 -2
- tracdap/rt/metadata/file.py +2 -0
- tracdap/rt/metadata/object.py +7 -1
- tracdap/rt/metadata/object_id.py +4 -0
- tracdap/rt/metadata/resource.py +41 -1
- {tracdap_runtime-0.8.0b4.dist-info → tracdap_runtime-0.8.0rc2.dist-info}/METADATA +6 -4
- {tracdap_runtime-0.8.0b4.dist-info → tracdap_runtime-0.8.0rc2.dist-info}/RECORD +30 -26
- {tracdap_runtime-0.8.0b4.dist-info → tracdap_runtime-0.8.0rc2.dist-info}/WHEEL +1 -1
- tracdap/rt/api/file_types.py +0 -29
- /tracdap/rt/_impl/grpc/tracdap/metadata/{stoarge_pb2.pyi → storage_pb2.pyi} +0 -0
- /tracdap/rt/metadata/{stoarge.py → storage.py} +0 -0
- {tracdap_runtime-0.8.0b4.dist-info → tracdap_runtime-0.8.0rc2.dist-info/licenses}/LICENSE +0 -0
- {tracdap_runtime-0.8.0b4.dist-info → tracdap_runtime-0.8.0rc2.dist-info}/top_level.txt +0 -0
tracdap/rt/_impl/grpc/codec.py
CHANGED
@@ -24,7 +24,7 @@ import tracdap.rt._impl.grpc.tracdap.metadata.object_id_pb2 as object_id_pb2
|
|
24
24
|
import tracdap.rt._impl.grpc.tracdap.metadata.object_pb2 as object_pb2
|
25
25
|
from tracdap.rt._impl.grpc.tracdap.metadata import model_pb2
|
26
26
|
import tracdap.rt._impl.grpc.tracdap.metadata.data_pb2 as data_pb2
|
27
|
-
import tracdap.rt._impl.grpc.tracdap.metadata.
|
27
|
+
import tracdap.rt._impl.grpc.tracdap.metadata.storage_pb2 as storage_pb2
|
28
28
|
|
29
29
|
from google.protobuf import message as _message
|
30
30
|
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
3
|
+
# source: tracdap/rt/_impl/grpc/tracdap/metadata/config.proto
|
4
|
+
# Protobuf Python Version: 4.25.3
|
5
|
+
"""Generated protocol buffer code."""
|
6
|
+
from google.protobuf import descriptor as _descriptor
|
7
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
8
|
+
from google.protobuf import symbol_database as _symbol_database
|
9
|
+
from google.protobuf.internal import builder as _builder
|
10
|
+
# @@protoc_insertion_point(imports)
|
11
|
+
|
12
|
+
_sym_db = _symbol_database.Default()
|
13
|
+
|
14
|
+
|
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
|
+
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
|
17
|
+
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
|
18
|
+
|
19
|
+
|
20
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n3tracdap/rt/_impl/grpc/tracdap/metadata/config.proto\x12\x10tracdap.metadata\x1a\x31tracdap/rt/_impl/grpc/tracdap/metadata/type.proto\x1a\x36tracdap/rt/_impl/grpc/tracdap/metadata/object_id.proto\x1a\x35tracdap/rt/_impl/grpc/tracdap/metadata/resource.proto\"\xf8\x01\n\x0b\x43onfigEntry\x12\x13\n\x0b\x63onfigClass\x18\x01 \x01(\t\x12\x11\n\tconfigKey\x18\x02 \x01(\t\x12\x15\n\rconfigVersion\x18\x03 \x01(\x05\x12\x38\n\x0f\x63onfigTimestamp\x18\x04 \x01(\x0b\x32\x1f.tracdap.metadata.DatetimeValue\x12\x16\n\x0eisLatestConfig\x18\x05 \x01(\x08\x12\x15\n\rconfigDeleted\x18\x06 \x01(\x08\x12\x35\n\x07\x64\x65tails\x18\x07 \x01(\x0b\x32\x1f.tracdap.metadata.ConfigDetailsH\x00\x88\x01\x01\x42\n\n\x08_details\"\x8a\x02\n\rConfigDetails\x12\x35\n\x0eobjectSelector\x18\x01 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector\x12\x30\n\nobjectType\x18\x02 \x01(\x0e\x32\x1c.tracdap.metadata.ObjectType\x12\x35\n\nconfigType\x18\x03 \x01(\x0e\x32\x1c.tracdap.metadata.ConfigTypeH\x00\x88\x01\x01\x12\x39\n\x0cresourceType\x18\x04 \x01(\x0e\x32\x1e.tracdap.metadata.ResourceTypeH\x01\x88\x01\x01\x42\r\n\x0b_configTypeB\x0f\n\r_resourceType\"\xbf\x01\n\x10\x43onfigDefinition\x12\x30\n\nconfigType\x18\x01 \x01(\x0e\x32\x1c.tracdap.metadata.ConfigType\x12\x46\n\nproperties\x18\x02 \x03(\x0b\x32\x32.tracdap.metadata.ConfigDefinition.PropertiesEntry\x1a\x31\n\x0fPropertiesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01*5\n\nConfigType\x12\x17\n\x13\x43ONFIG_TYPE_NOT_SET\x10\x00\x12\x0e\n\nPROPERTIES\x10\x01\x42\x1e\n\x1aorg.finos.tracdap.metadataP\x01\x62\x06proto3')
|
21
|
+
|
22
|
+
_globals = globals()
|
23
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
24
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'tracdap.rt._impl.grpc.tracdap.metadata.config_pb2', _globals)
|
25
|
+
if _descriptor._USE_C_DESCRIPTORS == False:
|
26
|
+
_globals['DESCRIPTOR']._options = None
|
27
|
+
_globals['DESCRIPTOR']._serialized_options = b'\n\032org.finos.tracdap.metadataP\001'
|
28
|
+
_globals['_CONFIGDEFINITION_PROPERTIESENTRY']._options = None
|
29
|
+
_globals['_CONFIGDEFINITION_PROPERTIESENTRY']._serialized_options = b'8\001'
|
30
|
+
_globals['_CONFIGTYPE']._serialized_start=949
|
31
|
+
_globals['_CONFIGTYPE']._serialized_end=1002
|
32
|
+
_globals['_CONFIGENTRY']._serialized_start=236
|
33
|
+
_globals['_CONFIGENTRY']._serialized_end=484
|
34
|
+
_globals['_CONFIGDETAILS']._serialized_start=487
|
35
|
+
_globals['_CONFIGDETAILS']._serialized_end=753
|
36
|
+
_globals['_CONFIGDEFINITION']._serialized_start=756
|
37
|
+
_globals['_CONFIGDEFINITION']._serialized_end=947
|
38
|
+
_globals['_CONFIGDEFINITION_PROPERTIESENTRY']._serialized_start=898
|
39
|
+
_globals['_CONFIGDEFINITION_PROPERTIESENTRY']._serialized_end=947
|
40
|
+
# @@protoc_insertion_point(module_scope)
|
@@ -0,0 +1,62 @@
|
|
1
|
+
from tracdap.rt._impl.grpc.tracdap.metadata import type_pb2 as _type_pb2
|
2
|
+
from tracdap.rt._impl.grpc.tracdap.metadata import object_id_pb2 as _object_id_pb2
|
3
|
+
from tracdap.rt._impl.grpc.tracdap.metadata import resource_pb2 as _resource_pb2
|
4
|
+
from google.protobuf.internal import containers as _containers
|
5
|
+
from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
|
6
|
+
from google.protobuf import descriptor as _descriptor
|
7
|
+
from google.protobuf import message as _message
|
8
|
+
from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union
|
9
|
+
|
10
|
+
DESCRIPTOR: _descriptor.FileDescriptor
|
11
|
+
|
12
|
+
class ConfigType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
13
|
+
__slots__ = ()
|
14
|
+
CONFIG_TYPE_NOT_SET: _ClassVar[ConfigType]
|
15
|
+
PROPERTIES: _ClassVar[ConfigType]
|
16
|
+
CONFIG_TYPE_NOT_SET: ConfigType
|
17
|
+
PROPERTIES: ConfigType
|
18
|
+
|
19
|
+
class ConfigEntry(_message.Message):
|
20
|
+
__slots__ = ("configClass", "configKey", "configVersion", "configTimestamp", "isLatestConfig", "configDeleted", "details")
|
21
|
+
CONFIGCLASS_FIELD_NUMBER: _ClassVar[int]
|
22
|
+
CONFIGKEY_FIELD_NUMBER: _ClassVar[int]
|
23
|
+
CONFIGVERSION_FIELD_NUMBER: _ClassVar[int]
|
24
|
+
CONFIGTIMESTAMP_FIELD_NUMBER: _ClassVar[int]
|
25
|
+
ISLATESTCONFIG_FIELD_NUMBER: _ClassVar[int]
|
26
|
+
CONFIGDELETED_FIELD_NUMBER: _ClassVar[int]
|
27
|
+
DETAILS_FIELD_NUMBER: _ClassVar[int]
|
28
|
+
configClass: str
|
29
|
+
configKey: str
|
30
|
+
configVersion: int
|
31
|
+
configTimestamp: _type_pb2.DatetimeValue
|
32
|
+
isLatestConfig: bool
|
33
|
+
configDeleted: bool
|
34
|
+
details: ConfigDetails
|
35
|
+
def __init__(self, configClass: _Optional[str] = ..., configKey: _Optional[str] = ..., configVersion: _Optional[int] = ..., configTimestamp: _Optional[_Union[_type_pb2.DatetimeValue, _Mapping]] = ..., isLatestConfig: bool = ..., configDeleted: bool = ..., details: _Optional[_Union[ConfigDetails, _Mapping]] = ...) -> None: ...
|
36
|
+
|
37
|
+
class ConfigDetails(_message.Message):
|
38
|
+
__slots__ = ("objectSelector", "objectType", "configType", "resourceType")
|
39
|
+
OBJECTSELECTOR_FIELD_NUMBER: _ClassVar[int]
|
40
|
+
OBJECTTYPE_FIELD_NUMBER: _ClassVar[int]
|
41
|
+
CONFIGTYPE_FIELD_NUMBER: _ClassVar[int]
|
42
|
+
RESOURCETYPE_FIELD_NUMBER: _ClassVar[int]
|
43
|
+
objectSelector: _object_id_pb2.TagSelector
|
44
|
+
objectType: _object_id_pb2.ObjectType
|
45
|
+
configType: ConfigType
|
46
|
+
resourceType: _resource_pb2.ResourceType
|
47
|
+
def __init__(self, objectSelector: _Optional[_Union[_object_id_pb2.TagSelector, _Mapping]] = ..., objectType: _Optional[_Union[_object_id_pb2.ObjectType, str]] = ..., configType: _Optional[_Union[ConfigType, str]] = ..., resourceType: _Optional[_Union[_resource_pb2.ResourceType, str]] = ...) -> None: ...
|
48
|
+
|
49
|
+
class ConfigDefinition(_message.Message):
|
50
|
+
__slots__ = ("configType", "properties")
|
51
|
+
class PropertiesEntry(_message.Message):
|
52
|
+
__slots__ = ("key", "value")
|
53
|
+
KEY_FIELD_NUMBER: _ClassVar[int]
|
54
|
+
VALUE_FIELD_NUMBER: _ClassVar[int]
|
55
|
+
key: str
|
56
|
+
value: str
|
57
|
+
def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
|
58
|
+
CONFIGTYPE_FIELD_NUMBER: _ClassVar[int]
|
59
|
+
PROPERTIES_FIELD_NUMBER: _ClassVar[int]
|
60
|
+
configType: ConfigType
|
61
|
+
properties: _containers.ScalarMap[str, str]
|
62
|
+
def __init__(self, configType: _Optional[_Union[ConfigType, str]] = ..., properties: _Optional[_Mapping[str, str]] = ...) -> None: ...
|
@@ -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")
|
@@ -20,10 +20,12 @@ from tracdap.rt._impl.grpc.tracdap.metadata import flow_pb2 as tracdap_dot_rt_do
|
|
20
20
|
from tracdap.rt._impl.grpc.tracdap.metadata import job_pb2 as tracdap_dot_rt_dot___impl_dot_grpc_dot_tracdap_dot_metadata_dot_job__pb2
|
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
|
-
from tracdap.rt._impl.grpc.tracdap.metadata import
|
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/
|
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)
|
@@ -6,7 +6,9 @@ from tracdap.rt._impl.grpc.tracdap.metadata import flow_pb2 as _flow_pb2
|
|
6
6
|
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
|
-
from tracdap.rt._impl.grpc.tracdap.metadata import
|
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
|
@@ -41,8 +45,10 @@ class ObjectDefinition(_message.Message):
|
|
41
45
|
job: _job_pb2.JobDefinition
|
42
46
|
file: _file_pb2.FileDefinition
|
43
47
|
custom: _custom_pb2.CustomDefinition
|
44
|
-
storage:
|
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[
|
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: ...
|
@@ -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,6 +1,6 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
3
|
-
# source: tracdap/rt/_impl/grpc/tracdap/metadata/
|
3
|
+
# source: tracdap/rt/_impl/grpc/tracdap/metadata/storage.proto
|
4
4
|
# Protobuf Python Version: 4.25.3
|
5
5
|
"""Generated protocol buffer code."""
|
6
6
|
from google.protobuf import descriptor as _descriptor
|
@@ -15,11 +15,11 @@ _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/
|
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\"\xe1\x02\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\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\x42\x1e\n\x1aorg.finos.tracdap.metadataP\x01\x62\x06proto3')
|
19
19
|
|
20
20
|
_globals = globals()
|
21
21
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
22
|
-
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'tracdap.rt._impl.grpc.tracdap.metadata.
|
22
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'tracdap.rt._impl.grpc.tracdap.metadata.storage_pb2', _globals)
|
23
23
|
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'
|
tracdap/rt/_version.py
CHANGED
tracdap/rt/api/__init__.py
CHANGED
@@ -23,29 +23,7 @@ from tracdap.rt.metadata import * # noqa DOCGEN_REMOVE
|
|
23
23
|
|
24
24
|
# static_api overrides some metadata types for backwards compatibility with pre-0.8 versions
|
25
25
|
# Make sure it is last in the list
|
26
|
-
from .
|
26
|
+
from .constants import *
|
27
27
|
from .model_api import *
|
28
28
|
from .static_api import *
|
29
29
|
|
30
|
-
# Map basic types into the root of the API package
|
31
|
-
|
32
|
-
BOOLEAN = BasicType.BOOLEAN
|
33
|
-
"""Synonym for :py:attr:`BasicType.BOOLEAN <tracdap.rt.metadata.BasicType.BOOLEAN>`"""
|
34
|
-
|
35
|
-
INTEGER = BasicType.INTEGER
|
36
|
-
"""Synonym for :py:attr:`BasicType.INTEGER <tracdap.rt.metadata.BasicType.INTEGER>`"""
|
37
|
-
|
38
|
-
FLOAT = BasicType.FLOAT
|
39
|
-
"""Synonym for :py:attr:`BasicType.FLOAT <tracdap.rt.metadata.BasicType.FLOAT>`"""
|
40
|
-
|
41
|
-
DECIMAL = BasicType.DECIMAL
|
42
|
-
"""Synonym for :py:attr:`BasicType.DECIMAL <tracdap.rt.metadata.BasicType.DECIMAL>`"""
|
43
|
-
|
44
|
-
STRING = BasicType.STRING
|
45
|
-
"""Synonym for :py:attr:`BasicType.STRING <tracdap.rt.metadata.BasicType.STRING>`"""
|
46
|
-
|
47
|
-
DATE = BasicType.DATE
|
48
|
-
"""Synonym for :py:attr:`BasicType.DATE <tracdap.rt.metadata.BasicType.DATE>`"""
|
49
|
-
|
50
|
-
DATETIME = BasicType.DATETIME
|
51
|
-
"""Synonym for :py:attr:`BasicType.DATETIME <tracdap.rt.metadata.BasicType.DATETIME>`"""
|
@@ -0,0 +1,57 @@
|
|
1
|
+
# Licensed to the Fintech Open Source Foundation (FINOS) under one or
|
2
|
+
# more contributor license agreements. See the NOTICE file distributed
|
3
|
+
# with this work for additional information regarding copyright ownership.
|
4
|
+
# FINOS licenses this file to you under the Apache License, Version 2.0
|
5
|
+
# (the "License"); you may not use this file except in compliance with the
|
6
|
+
# License. You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
|
16
|
+
import tracdap.rt.metadata
|
17
|
+
|
18
|
+
|
19
|
+
class CommonFileTypes:
|
20
|
+
|
21
|
+
"""
|
22
|
+
A collection of common :py:class:`FileTypes <tracdap.rt.metadata.FileType>` to use as model inputs and outputs
|
23
|
+
"""
|
24
|
+
|
25
|
+
TXT = tracdap.rt.metadata.FileType("txt", "text/plain")
|
26
|
+
|
27
|
+
JPG = tracdap.rt.metadata.FileType("jpg", "image/jpeg")
|
28
|
+
PNG = tracdap.rt.metadata.FileType("png", "image/png")
|
29
|
+
SVG = tracdap.rt.metadata.FileType("svg", "image/svg+xml")
|
30
|
+
|
31
|
+
WORD = tracdap.rt.metadata.FileType("docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document")
|
32
|
+
EXCEL = tracdap.rt.metadata.FileType("xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
|
33
|
+
POWERPOINT = tracdap.rt.metadata.FileType("pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation")
|
34
|
+
|
35
|
+
|
36
|
+
# Map basic types into the root of the API package
|
37
|
+
|
38
|
+
BOOLEAN = tracdap.rt.metadata.BasicType.BOOLEAN
|
39
|
+
"""Synonym for :py:attr:`BasicType.BOOLEAN <tracdap.rt.metadata.BasicType.BOOLEAN>`"""
|
40
|
+
|
41
|
+
INTEGER = tracdap.rt.metadata.BasicType.INTEGER
|
42
|
+
"""Synonym for :py:attr:`BasicType.INTEGER <tracdap.rt.metadata.BasicType.INTEGER>`"""
|
43
|
+
|
44
|
+
FLOAT = tracdap.rt.metadata.BasicType.FLOAT
|
45
|
+
"""Synonym for :py:attr:`BasicType.FLOAT <tracdap.rt.metadata.BasicType.FLOAT>`"""
|
46
|
+
|
47
|
+
DECIMAL = tracdap.rt.metadata.BasicType.DECIMAL
|
48
|
+
"""Synonym for :py:attr:`BasicType.DECIMAL <tracdap.rt.metadata.BasicType.DECIMAL>`"""
|
49
|
+
|
50
|
+
STRING = tracdap.rt.metadata.BasicType.STRING
|
51
|
+
"""Synonym for :py:attr:`BasicType.STRING <tracdap.rt.metadata.BasicType.STRING>`"""
|
52
|
+
|
53
|
+
DATE = tracdap.rt.metadata.BasicType.DATE
|
54
|
+
"""Synonym for :py:attr:`BasicType.DATE <tracdap.rt.metadata.BasicType.DATE>`"""
|
55
|
+
|
56
|
+
DATETIME = tracdap.rt.metadata.BasicType.DATETIME
|
57
|
+
"""Synonym for :py:attr:`BasicType.DATETIME <tracdap.rt.metadata.BasicType.DATETIME>`"""
|
tracdap/rt/api/static_api.py
CHANGED
@@ -384,6 +384,14 @@ def load_schema(
|
|
384
384
|
|
385
385
|
def define_file_type(extension: str, mime_type: str) -> FileType:
|
386
386
|
|
387
|
+
"""
|
388
|
+
Define a :py:class:`FileType <tracdap.rt.metadata.FileType>` for use as a model input or output
|
389
|
+
|
390
|
+
:type extension: str
|
391
|
+
:type mime_type: str
|
392
|
+
:rtype: :py:class:`FileType <tracdap.rt.metadata.FileType>`
|
393
|
+
"""
|
394
|
+
|
387
395
|
sa = _StaticApiHook.get_instance()
|
388
396
|
return sa.define_file_type(extension, mime_type)
|
389
397
|
|
@@ -394,6 +402,17 @@ def define_input(
|
|
394
402
|
optional: bool = False, dynamic: bool = False,
|
395
403
|
input_props: _tp.Optional[_tp.Dict[str, _tp.Any]] = None):
|
396
404
|
|
405
|
+
"""
|
406
|
+
Define a model input, which can be any type of dataset or file
|
407
|
+
|
408
|
+
:type requirement: :py:class:`SchemaDefinition <tracdap.rt.metadata.SchemaDefinition>` | :py:class:`FileType <tracdap.rt.metadata.FileType>`
|
409
|
+
:type label: str | None
|
410
|
+
:type optional: bool
|
411
|
+
:type dynamic: bool
|
412
|
+
:type input_props: dict[str, :py:class:`Value <tracdap.rt.metadata.Value>`
|
413
|
+
:rtype: :py:class:`ModelInputSchema <tracdap.rt.metadata.ModelInputSchema>`
|
414
|
+
"""
|
415
|
+
|
397
416
|
sa = _StaticApiHook.get_instance()
|
398
417
|
return sa.define_input(requirement, label=label, optional=optional, dynamic=dynamic, input_props=input_props)
|
399
418
|
|
@@ -404,6 +423,17 @@ def define_output(
|
|
404
423
|
optional: bool = False, dynamic: bool = False,
|
405
424
|
output_props: _tp.Optional[_tp.Dict[str, _tp.Any]] = None):
|
406
425
|
|
426
|
+
"""
|
427
|
+
Define a model output, which can be any type of dataset or file
|
428
|
+
|
429
|
+
:type requirement: :py:class:`SchemaDefinition <tracdap.rt.metadata.SchemaDefinition>` | :py:class:`FileType <tracdap.rt.metadata.FileType>`
|
430
|
+
:type label: str | None
|
431
|
+
:type optional: bool
|
432
|
+
:type dynamic: bool
|
433
|
+
:type output_props: dict[str, :py:class:`Value <tracdap.rt.metadata.Value>`
|
434
|
+
:rtype: :py:class:`ModelOutputSchema <tracdap.rt.metadata.ModelOutputSchema>`
|
435
|
+
"""
|
436
|
+
|
407
437
|
sa = _StaticApiHook.get_instance()
|
408
438
|
return sa.define_output(requirement, label=label, optional=optional, dynamic=dynamic, output_props=output_props)
|
409
439
|
|
@@ -415,7 +445,7 @@ def define_input_table(
|
|
415
445
|
-> ModelInputSchema:
|
416
446
|
|
417
447
|
"""
|
418
|
-
Define a model input
|
448
|
+
Define a model input for a :py:class:`TableSchema <tracdap.rt.metadata.TableSchema>`
|
419
449
|
|
420
450
|
Individual fields can be defined using :py:func:`define_field` or the shorthand alias :py:func:`F`.
|
421
451
|
This function takes a number of fields, either as individual arguments or as a list, and uses them
|
@@ -460,7 +490,7 @@ def define_output_table(
|
|
460
490
|
-> ModelOutputSchema:
|
461
491
|
|
462
492
|
"""
|
463
|
-
Define a model output
|
493
|
+
Define a model output for a :py:class:`TableSchema <tracdap.rt.metadata.TableSchema>`
|
464
494
|
|
465
495
|
Individual fields can be defined using :py:func:`define_field` or the shorthand alias :py:func:`F`.
|
466
496
|
This function takes a number of fields, either as individual arguments or as a list, and uses them
|
@@ -502,6 +532,17 @@ def define_input_file(
|
|
502
532
|
input_props: _tp.Optional[_tp.Dict[str, _tp.Any]] = None) \
|
503
533
|
-> ModelInputSchema:
|
504
534
|
|
535
|
+
"""
|
536
|
+
Define a model input for a :py:class:`FileType <tracdap.rt.metadata.FileType>`
|
537
|
+
|
538
|
+
:type extension str
|
539
|
+
:type mime_type: sr
|
540
|
+
:type label: str | None
|
541
|
+
:type optional: bool
|
542
|
+
:type input_props: dict[str, Any] | None
|
543
|
+
:rtype: :py:class:`ModelInputSchema <tracdap.rt.metadata.ModelInputSchema>`
|
544
|
+
"""
|
545
|
+
|
505
546
|
file_type = define_file_type(extension, mime_type)
|
506
547
|
return define_input(file_type, label=label, optional=optional, input_props=input_props)
|
507
548
|
|
@@ -512,6 +553,17 @@ def define_output_file(
|
|
512
553
|
output_props: _tp.Optional[_tp.Dict[str, _tp.Any]] = None) \
|
513
554
|
-> ModelOutputSchema:
|
514
555
|
|
556
|
+
"""
|
557
|
+
Define a model output for a :py:class:`FileType <tracdap.rt.metadata.FileType>`
|
558
|
+
|
559
|
+
:type extension str
|
560
|
+
:type mime_type: sr
|
561
|
+
:type label: str | None
|
562
|
+
:type optional: bool
|
563
|
+
:type output_props: dict[str, Any] | None
|
564
|
+
:rtype: :py:class:`ModelOutputSchema <tracdap.rt.metadata.ModelOutputSchema>`
|
565
|
+
"""
|
566
|
+
|
515
567
|
file_type = define_file_type(extension, mime_type)
|
516
568
|
return define_output(file_type, label=label, optional=optional, output_props=output_props)
|
517
569
|
|
tracdap/rt/config/__init__.py
CHANGED
@@ -1,15 +1,17 @@
|
|
1
1
|
# Code generated by TRAC
|
2
2
|
|
3
|
+
from .job import JobConfig
|
4
|
+
|
3
5
|
from .common import _ConfigFile
|
4
6
|
from .common import PluginConfig
|
5
7
|
from .common import PlatformInfo
|
6
8
|
from .common import StorageConfig
|
7
9
|
from .common import ServiceConfig
|
8
10
|
|
9
|
-
from .
|
10
|
-
from .runtime import SparkSettings
|
11
|
+
from .dynamic import DynamicConfig
|
11
12
|
|
12
|
-
from .
|
13
|
+
from .result import TagUpdateList
|
14
|
+
from .result import JobResult
|
13
15
|
|
14
16
|
from .platform import RoutingProtocol
|
15
17
|
from .platform import DeploymentLayout
|
@@ -24,5 +26,5 @@ from .platform import RoutingTarget
|
|
24
26
|
from .platform import DeploymentConfig
|
25
27
|
from .platform import ClientConfig
|
26
28
|
|
27
|
-
from .
|
28
|
-
from .
|
29
|
+
from .runtime import RuntimeConfig
|
30
|
+
from .runtime import SparkSettings
|
@@ -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/metadata/__init__.py
CHANGED
@@ -9,12 +9,41 @@ from .type import Value
|
|
9
9
|
from .type import ArrayValue
|
10
10
|
from .type import MapValue
|
11
11
|
|
12
|
-
from .
|
12
|
+
from .tag_update import TagOperation
|
13
|
+
from .tag_update import TagUpdate
|
13
14
|
|
14
15
|
from .object_id import ObjectType
|
15
16
|
from .object_id import TagHeader
|
16
17
|
from .object_id import TagSelector
|
17
18
|
|
19
|
+
from .job import JobType
|
20
|
+
from .job import JobStatusCode
|
21
|
+
from .job import JobGroupType
|
22
|
+
from .job import JobDefinition
|
23
|
+
from .job import ResultDefinition
|
24
|
+
from .job import RunModelJob
|
25
|
+
from .job import RunFlowJob
|
26
|
+
from .job import ImportModelJob
|
27
|
+
from .job import ImportDataJob
|
28
|
+
from .job import ExportDataJob
|
29
|
+
from .job import JobGroup
|
30
|
+
from .job import SequentialJobGroup
|
31
|
+
from .job import ParallelJobGroup
|
32
|
+
|
33
|
+
from .common import MetadataFormat
|
34
|
+
from .common import MetadataVersion
|
35
|
+
from .common import TenantInfo
|
36
|
+
|
37
|
+
from .resource import ResourceType
|
38
|
+
from .resource import ResourceDefinition
|
39
|
+
|
40
|
+
from .config import ConfigType
|
41
|
+
from .config import ConfigEntry
|
42
|
+
from .config import ConfigDetails
|
43
|
+
from .config import ConfigDefinition
|
44
|
+
|
45
|
+
from .custom import CustomDefinition
|
46
|
+
|
18
47
|
from .data import SchemaType
|
19
48
|
from .data import PartType
|
20
49
|
from .data import FieldSchema
|
@@ -25,13 +54,6 @@ from .data import SchemaDefinition
|
|
25
54
|
from .data import PartKey
|
26
55
|
from .data import DataDefinition
|
27
56
|
|
28
|
-
from .stoarge import CopyStatus
|
29
|
-
from .stoarge import IncarnationStatus
|
30
|
-
from .stoarge import StorageCopy
|
31
|
-
from .stoarge import StorageIncarnation
|
32
|
-
from .stoarge import StorageItem
|
33
|
-
from .stoarge import StorageDefinition
|
34
|
-
|
35
57
|
from .file import FileDefinition
|
36
58
|
from .file import FileType
|
37
59
|
|
@@ -48,35 +70,19 @@ from .search import LogicalExpression
|
|
48
70
|
from .search import SearchExpression
|
49
71
|
from .search import SearchParameters
|
50
72
|
|
51
|
-
from .tag_update import TagOperation
|
52
|
-
from .tag_update import TagUpdate
|
53
|
-
|
54
73
|
from .flow import FlowNodeType
|
55
74
|
from .flow import FlowNode
|
56
75
|
from .flow import FlowSocket
|
57
76
|
from .flow import FlowEdge
|
58
77
|
from .flow import FlowDefinition
|
59
78
|
|
60
|
-
from .
|
61
|
-
from .
|
62
|
-
from .
|
63
|
-
from .
|
64
|
-
from .
|
65
|
-
from .
|
66
|
-
from .job import RunFlowJob
|
67
|
-
from .job import ImportModelJob
|
68
|
-
from .job import ImportDataJob
|
69
|
-
from .job import ExportDataJob
|
70
|
-
from .job import JobGroup
|
71
|
-
from .job import SequentialJobGroup
|
72
|
-
from .job import ParallelJobGroup
|
73
|
-
|
74
|
-
from .common import MetadataFormat
|
75
|
-
from .common import MetadataVersion
|
76
|
-
from .common import TenantInfo
|
79
|
+
from .storage import CopyStatus
|
80
|
+
from .storage import IncarnationStatus
|
81
|
+
from .storage import StorageCopy
|
82
|
+
from .storage import StorageIncarnation
|
83
|
+
from .storage import StorageItem
|
84
|
+
from .storage import StorageDefinition
|
77
85
|
|
78
86
|
from .object import ObjectDefinition
|
79
87
|
|
80
88
|
from .tag import Tag
|
81
|
-
|
82
|
-
from .resource import ResourceType
|
@@ -0,0 +1,95 @@
|
|
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
|
+
from .type import * # noqa
|
8
|
+
from .object_id import * # noqa
|
9
|
+
from .resource import * # noqa
|
10
|
+
|
11
|
+
|
12
|
+
class ConfigType(_enum.Enum):
|
13
|
+
|
14
|
+
"""Enumeration of available config types"""
|
15
|
+
|
16
|
+
CONFIG_TYPE_NOT_SET = 0
|
17
|
+
|
18
|
+
PROPERTIES = 1
|
19
|
+
|
20
|
+
"""A key-value properties map, follows the convention used for .properties files"""
|
21
|
+
|
22
|
+
|
23
|
+
@_dc.dataclass
|
24
|
+
class ConfigEntry:
|
25
|
+
|
26
|
+
"""Represents the mapping of a config key to a config object."""
|
27
|
+
|
28
|
+
configClass: "str" = ""
|
29
|
+
|
30
|
+
"""Config class for this config entry."""
|
31
|
+
|
32
|
+
configKey: "str" = ""
|
33
|
+
|
34
|
+
"""Config key for this config entry."""
|
35
|
+
|
36
|
+
configVersion: "int" = 0
|
37
|
+
|
38
|
+
"""Version of the config entry."""
|
39
|
+
|
40
|
+
configTimestamp: "DatetimeValue" = _dc.field(default_factory=lambda: DatetimeValue())
|
41
|
+
|
42
|
+
"""Timestamp for when this version of the config entry was created."""
|
43
|
+
|
44
|
+
isLatestConfig: "bool" = False
|
45
|
+
|
46
|
+
"""Flag indicating whether this is the latest version of the config entry."""
|
47
|
+
|
48
|
+
configDeleted: "bool" = False
|
49
|
+
|
50
|
+
"""Flag indicating whether this config entry has been deleted."""
|
51
|
+
|
52
|
+
details: "_tp.Optional[ConfigDetails]" = None
|
53
|
+
|
54
|
+
"""Describes the content of this config entry, can be used for list / summary views (optional)."""
|
55
|
+
|
56
|
+
|
57
|
+
@_dc.dataclass
|
58
|
+
class ConfigDetails:
|
59
|
+
|
60
|
+
"""
|
61
|
+
Summary content of a config entry.
|
62
|
+
|
63
|
+
.. seealso::
|
64
|
+
:py:obj:`ConfigEntry <ConfigEntry>`
|
65
|
+
"""
|
66
|
+
|
67
|
+
objectSelector: "TagSelector" = _dc.field(default_factory=lambda: TagSelector())
|
68
|
+
|
69
|
+
"""Selector for the metadata object holding the content of this config entry."""
|
70
|
+
|
71
|
+
objectType: "ObjectType" = ObjectType.OBJECT_TYPE_NOT_SET
|
72
|
+
|
73
|
+
"""Type of the metadata object referred to by this config entry."""
|
74
|
+
|
75
|
+
configType: "_tp.Optional[ConfigType]" = None
|
76
|
+
|
77
|
+
"""Indicate the config type (for CONFIG objects only)"""
|
78
|
+
|
79
|
+
resourceType: "_tp.Optional[ResourceType]" = None
|
80
|
+
|
81
|
+
"""Indicate the resource type (for RESOURCE objects only)"""
|
82
|
+
|
83
|
+
|
84
|
+
@_dc.dataclass
|
85
|
+
class ConfigDefinition:
|
86
|
+
|
87
|
+
"""Definition of an individual config entry"""
|
88
|
+
|
89
|
+
configType: "ConfigType" = ConfigType.CONFIG_TYPE_NOT_SET
|
90
|
+
|
91
|
+
"""The type of this config entry"""
|
92
|
+
|
93
|
+
properties: "_tp.Dict[str, str]" = _dc.field(default_factory=dict)
|
94
|
+
|
95
|
+
"""The map of config properties (only available for PROPERTIES config entries)"""
|
tracdap/rt/metadata/data.py
CHANGED
@@ -87,7 +87,7 @@ class TableSchema:
|
|
87
87
|
@_dc.dataclass
|
88
88
|
class StructField:
|
89
89
|
|
90
|
-
"""
|
90
|
+
"""Schema for an individual field in a structured object dataset"""
|
91
91
|
|
92
92
|
fieldType: "TypeDescriptor" = _dc.field(default_factory=lambda: TypeDescriptor())
|
93
93
|
|
@@ -111,7 +111,7 @@ class StructField:
|
|
111
111
|
@_dc.dataclass
|
112
112
|
class StructSchema:
|
113
113
|
|
114
|
-
"""
|
114
|
+
"""Schema for a structured object dataset"""
|
115
115
|
|
116
116
|
fields: "_tp.Dict[str, StructField]" = _dc.field(default_factory=dict)
|
117
117
|
|
tracdap/rt/metadata/file.py
CHANGED
tracdap/rt/metadata/object.py
CHANGED
@@ -12,7 +12,9 @@ from .flow import * # noqa
|
|
12
12
|
from .job import * # noqa
|
13
13
|
from .file import * # noqa
|
14
14
|
from .custom import * # noqa
|
15
|
-
from .
|
15
|
+
from .storage import * # noqa
|
16
|
+
from .config import * # noqa
|
17
|
+
from .resource import * # noqa
|
16
18
|
|
17
19
|
|
18
20
|
|
@@ -72,4 +74,8 @@ class ObjectDefinition:
|
|
72
74
|
|
73
75
|
result: "_tp.Optional[ResultDefinition]" = None
|
74
76
|
|
77
|
+
config: "_tp.Optional[ConfigDefinition]" = None
|
78
|
+
|
79
|
+
resource: "_tp.Optional[ResourceDefinition]" = None
|
80
|
+
|
75
81
|
objectProps: "_tp.Dict[str, Value]" = _dc.field(default_factory=dict)
|
tracdap/rt/metadata/object_id.py
CHANGED
tracdap/rt/metadata/resource.py
CHANGED
@@ -5,7 +5,6 @@ import dataclasses as _dc # noqa
|
|
5
5
|
import enum as _enum # noqa
|
6
6
|
|
7
7
|
from .object_id import * # noqa
|
8
|
-
from .object import * # noqa
|
9
8
|
|
10
9
|
|
11
10
|
class ResourceType(_enum.Enum):
|
@@ -21,3 +20,44 @@ class ResourceType(_enum.Enum):
|
|
21
20
|
INTERNAL_STORAGE = 2
|
22
21
|
|
23
22
|
"""Storage location for data held internally by the TRAC platform"""
|
23
|
+
|
24
|
+
EXTERNAL_STORAGE = 3
|
25
|
+
|
26
|
+
"""Storage location for upstream downstream integration points"""
|
27
|
+
|
28
|
+
|
29
|
+
@_dc.dataclass
|
30
|
+
class ResourceDefinition:
|
31
|
+
|
32
|
+
"""Definition of a platform resource"""
|
33
|
+
|
34
|
+
resourceType: "ResourceType" = ResourceType.RESOURCE_TYPE_NOT_SET
|
35
|
+
|
36
|
+
"""The type of this resource"""
|
37
|
+
|
38
|
+
protocol: "str" = ""
|
39
|
+
|
40
|
+
"""The protocol used to communicate with this resource (usually corresponds to a TRAC plugin)"""
|
41
|
+
|
42
|
+
subProtocol: "_tp.Optional[str]" = None
|
43
|
+
|
44
|
+
"""Optional sub-protocol, to further distinguish the behavior of resources within a protocol"""
|
45
|
+
|
46
|
+
publicProperties: "_tp.Dict[str, str]" = _dc.field(default_factory=dict)
|
47
|
+
|
48
|
+
"""Configuration properties for this resource, made visible to client applications"""
|
49
|
+
|
50
|
+
properties: "_tp.Dict[str, str]" = _dc.field(default_factory=dict)
|
51
|
+
|
52
|
+
"""Configuration properties for this resource, not visible to client applications"""
|
53
|
+
|
54
|
+
secrets: "_tp.Dict[str, str]" = _dc.field(default_factory=dict)
|
55
|
+
|
56
|
+
"""
|
57
|
+
Configuration properties that are stored as secrets using TRAC's secret handling mechanism
|
58
|
+
|
59
|
+
Only the secret alias is stored in metadata, handling of secret storage is delegated to the
|
60
|
+
configured secrets plugin. Secret values may be sent by clients when resource definitions are
|
61
|
+
created / updated, in which case they will be written to the configured secret store and
|
62
|
+
metadata values will be replaced with an alias.
|
63
|
+
"""
|
@@ -1,6 +1,6 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.4
|
2
2
|
Name: tracdap-runtime
|
3
|
-
Version: 0.8.
|
3
|
+
Version: 0.8.0rc2
|
4
4
|
Summary: Runtime package for building models on the TRAC Data & Analytics Platform
|
5
5
|
Home-page: https://tracdap.finos.org/
|
6
6
|
Author: Martin Traverse
|
@@ -46,6 +46,7 @@ Requires-Dist: azure-core==1.30.1; extra == "azure"
|
|
46
46
|
Requires-Dist: azure-identity==1.16.1; extra == "azure"
|
47
47
|
Requires-Dist: azure-storage-blob==12.19.1; extra == "azure"
|
48
48
|
Requires-Dist: adlfs==2024.4.1; extra == "azure"
|
49
|
+
Dynamic: license-file
|
49
50
|
|
50
51
|
# TRAC Model Runtime for Python
|
51
52
|
|
@@ -66,8 +67,9 @@ Documentation for the TRAC platform is available on our website at
|
|
66
67
|
The TRAC runtime for Python has these requirements:
|
67
68
|
|
68
69
|
* Python: 3.9 up to 3.13
|
69
|
-
* Pandas: 1.2 up to 2.2
|
70
|
-
*
|
70
|
+
* Pandas: 1.2 up to 2.2 (optional)
|
71
|
+
* NumPy: 1.2 up to 2.2 (optional, required by Pandas)
|
72
|
+
* Polars: 1.X (optional)
|
71
73
|
|
72
74
|
3rd party libraries may impose additional constraints on supported versions of key libraries.
|
73
75
|
For example, Pandas 1.5 is not available for Python 3.12 or 3.13, while NumPy 2.0 is only
|
@@ -1,5 +1,5 @@
|
|
1
1
|
tracdap/rt/__init__.py,sha256=4aCSENdKNrf9nC1lUULwmHpI1D3K74_4CJzpG_OjA4Q,830
|
2
|
-
tracdap/rt/_version.py,sha256=
|
2
|
+
tracdap/rt/_version.py,sha256=s4iT81zxrTXHmJQ7QoZhAm7Y0Y62L1l7LbI0D7juCkY,821
|
3
3
|
tracdap/rt/exceptions.py,sha256=PsB4fExDI-bliqJZD-ESrr9MeLPDW7R5VN_JcWg7TqU,8175
|
4
4
|
tracdap/rt/_impl/__init__.py,sha256=nFn00zysNlcEFHQJWs4l6vLm9RS5zsJ_IF9-eRwEXlo,796
|
5
5
|
tracdap/rt/_impl/runtime.py,sha256=FX5dqV-KfyvLfQvksv0RTle8N6kd_6-oaIJqSu32S6w,16955
|
@@ -30,13 +30,15 @@ tracdap/rt/_impl/ext/__init__.py,sha256=7VEb_giQUbvBBO8OSTjTtgFgu7WSA43qslcZvhwe
|
|
30
30
|
tracdap/rt/_impl/ext/sql.py,sha256=wDlSixuDWErDlDSXo55Ti5gpHXJ5oe75Lsb4ttlrUL0,2938
|
31
31
|
tracdap/rt/_impl/ext/storage.py,sha256=HvMHAT5pE6XhUaUfyeZ7ej8JNz2jYsu0UQAEh0Iqnsw,1763
|
32
32
|
tracdap/rt/_impl/grpc/__init__.py,sha256=7VEb_giQUbvBBO8OSTjTtgFgu7WSA43qslcZvhweO10,795
|
33
|
-
tracdap/rt/_impl/grpc/codec.py,sha256=
|
33
|
+
tracdap/rt/_impl/grpc/codec.py,sha256=wIOck8a82yy6k8RF6OkwY-rsWe08Hf-6KzuwZPABHhw,3970
|
34
34
|
tracdap/rt/_impl/grpc/server.py,sha256=Q18O5yRAT-Jqr9wDXuUraOYhpEH-rfnFk9tvvb-o3Os,12635
|
35
35
|
tracdap/rt/_impl/grpc/tracdap/api/internal/runtime_pb2.py,sha256=5KCfcaSZ9ydp26z78-iuM2jCmFRmqgDqMuxAg7Xgcx0,5174
|
36
36
|
tracdap/rt/_impl/grpc/tracdap/api/internal/runtime_pb2.pyi,sha256=78VhnLgm_m6HSgQT0bg7j86O9g8GNMADkm3SotQ39lg,3227
|
37
37
|
tracdap/rt/_impl/grpc/tracdap/api/internal/runtime_pb2_grpc.py,sha256=dQod-kQYoAJwpIPHgGRiZBx4q_419JppjqELv7cUJrE,8461
|
38
38
|
tracdap/rt/_impl/grpc/tracdap/metadata/common_pb2.py,sha256=oql1naNGBKxpPIQZViewQSzUmMpt9U8gB-qSJpxkBwo,1945
|
39
39
|
tracdap/rt/_impl/grpc/tracdap/metadata/common_pb2.pyi,sha256=R7fTC8HV0j8zB2E2KVtLWXSAeu5MVLrgeL-PnnOsUxg,1275
|
40
|
+
tracdap/rt/_impl/grpc/tracdap/metadata/config_pb2.py,sha256=BgH_mah2IqajxdfL-MavhWg0G9fgSkw0MCRxWjGoU3A,3718
|
41
|
+
tracdap/rt/_impl/grpc/tracdap/metadata/config_pb2.pyi,sha256=mmQ67x6fEi-JWg5xfx8joAvbQCx1iSfSM6taqc1eZLY,3311
|
40
42
|
tracdap/rt/_impl/grpc/tracdap/metadata/custom_pb2.py,sha256=DfHhxxvKU_htkLjUdvsVfxl8Gj8z5GenAuhCSuMT6Ps,1421
|
41
43
|
tracdap/rt/_impl/grpc/tracdap/metadata/custom_pb2.pyi,sha256=_GubsAG9rpuV_QhhXKTDOPeWIpkAkg5jlHkSZxaILak,702
|
42
44
|
tracdap/rt/_impl/grpc/tracdap/metadata/data_pb2.py,sha256=dLU42LwRw6m8Fcp3Q-f4Hb2a6-7ryUN6SB01zqy_iNA,7060
|
@@ -49,16 +51,16 @@ tracdap/rt/_impl/grpc/tracdap/metadata/job_pb2.py,sha256=OiVZ_EChreM8t6DPKgXAuNB
|
|
49
51
|
tracdap/rt/_impl/grpc/tracdap/metadata/job_pb2.pyi,sha256=PjRbckOQkJuY7y5XUCAPuO-oLFOghEuj659c3wGSaj4,19293
|
50
52
|
tracdap/rt/_impl/grpc/tracdap/metadata/model_pb2.py,sha256=q1VdvKCEslwCxqK6cEb4ABUh32j_veYaVg9WLLdSh2s,7803
|
51
53
|
tracdap/rt/_impl/grpc/tracdap/metadata/model_pb2.pyi,sha256=rBgvG_L521BbuzMpns3lKr5hOZmVwoHGW1bP2_EI4G0,7826
|
52
|
-
tracdap/rt/_impl/grpc/tracdap/metadata/object_id_pb2.py,sha256=
|
53
|
-
tracdap/rt/_impl/grpc/tracdap/metadata/object_id_pb2.pyi,sha256=
|
54
|
-
tracdap/rt/_impl/grpc/tracdap/metadata/object_pb2.py,sha256=
|
55
|
-
tracdap/rt/_impl/grpc/tracdap/metadata/object_pb2.pyi,sha256=
|
56
|
-
tracdap/rt/_impl/grpc/tracdap/metadata/resource_pb2.py,sha256=
|
57
|
-
tracdap/rt/_impl/grpc/tracdap/metadata/resource_pb2.pyi,sha256=
|
54
|
+
tracdap/rt/_impl/grpc/tracdap/metadata/object_id_pb2.py,sha256=oqv2coaPVAdBFJbKjjZsSMg3ZeCcqHEceZxtU8Ls-sc,3021
|
55
|
+
tracdap/rt/_impl/grpc/tracdap/metadata/object_id_pb2.pyi,sha256=vGsKsxSjwhedaE-5I_sMi-pquyGHTmjfedmEjqSCV_A,3401
|
56
|
+
tracdap/rt/_impl/grpc/tracdap/metadata/object_pb2.py,sha256=GIRdZ5aUZRBiOmY_D44kHbA90c8-g1bxxgbSElePdWk,5037
|
57
|
+
tracdap/rt/_impl/grpc/tracdap/metadata/object_pb2.pyi,sha256=ckprYPqWBl7HLYazSqfNkvkgusKOS45AbkGOZrECGjk,3670
|
58
|
+
tracdap/rt/_impl/grpc/tracdap/metadata/resource_pb2.py,sha256=SoF0kxU4AVD8I5oUKnuZC1_ETHUN2m1CmAKe24amwCc,3493
|
59
|
+
tracdap/rt/_impl/grpc/tracdap/metadata/resource_pb2.pyi,sha256=pCPvu0E7Z-4v4wJNGZo4DC2hoDA5bosxibjfzy5A3pk,2719
|
58
60
|
tracdap/rt/_impl/grpc/tracdap/metadata/search_pb2.py,sha256=YsUl-xK3jOQ6mOMCPe8G3-BWOFFz-MpUOXDWMV90DrQ,3654
|
59
61
|
tracdap/rt/_impl/grpc/tracdap/metadata/search_pb2.pyi,sha256=PU-OYKRufI3v5Zx8RI4RvEZq3KPh91AOb8sDNwxyySY,3762
|
60
|
-
tracdap/rt/_impl/grpc/tracdap/metadata/
|
61
|
-
tracdap/rt/_impl/grpc/tracdap/metadata/
|
62
|
+
tracdap/rt/_impl/grpc/tracdap/metadata/storage_pb2.py,sha256=09l_I0KjEL3vtytvVSIK0-XKrLDIvPmb3zzNgekTyL8,4652
|
63
|
+
tracdap/rt/_impl/grpc/tracdap/metadata/storage_pb2.pyi,sha256=ImU8YT62pfiAMDYwTtX5E6nyI_n1PuhUWabFJlRFvnE,4746
|
62
64
|
tracdap/rt/_impl/grpc/tracdap/metadata/tag_pb2.py,sha256=bQ6gA21bizykXQZPzC8AhaN5IgUYddzVEp7KSzz6KNM,2441
|
63
65
|
tracdap/rt/_impl/grpc/tracdap/metadata/tag_pb2.pyi,sha256=6gP3-Rdiq84ng5d6DtVNEWZj5syt1xyD33jRWg3YcgU,1454
|
64
66
|
tracdap/rt/_impl/grpc/tracdap/metadata/tag_update_pb2.py,sha256=HwJtcqjYwbYZw5LpZIaMux1qusVfEitl0wX-J8NMprI,2090
|
@@ -80,14 +82,15 @@ tracdap/rt/_plugins/storage_gcp.py,sha256=D0ReW2ZZ6IDqRdF-lowL43ceaupmf4tJGo7jvW
|
|
80
82
|
tracdap/rt/_plugins/storage_local.py,sha256=KY1CsT0GzjYWo5YYetTnQDWu18RhVrmEGBrEUSQHPKU,15742
|
81
83
|
tracdap/rt/_plugins/storage_sql.py,sha256=QoSDLpxzeAQP-jb3IW9E6cLVXGq9wnVEPAk0JY6Jz1w,16080
|
82
84
|
tracdap/rt/_plugins/storage_sql_dialects.py,sha256=4HWx5Gm50TRf5BTmc3hMREJIFsFgqo4g7wkVEVZzPz0,3550
|
83
|
-
tracdap/rt/api/__init__.py,sha256=
|
85
|
+
tracdap/rt/api/__init__.py,sha256=hwKCBx_PEI5QgCpFO_0MhoaoPb_i35ds0n7fb60EY_8,1261
|
86
|
+
tracdap/rt/api/constants.py,sha256=BSf9Fj9-hASaE9zfSmWmHmL0u-d1SgNetYJfdI0CueA,2583
|
84
87
|
tracdap/rt/api/experimental.py,sha256=ycD7xpMyXBI6W2UCirCbYtQ0rVVCNByAsA0p3euXmo8,9100
|
85
|
-
tracdap/rt/api/file_types.py,sha256=9d8zBI74ALADYKHevGkSnqJlng2Zd4Y7dto4iregnnE,1349
|
86
88
|
tracdap/rt/api/hook.py,sha256=0TA_pu-22IoVNacf38dq3Aaz4sHoau1IdhabfxgKtOE,5243
|
87
89
|
tracdap/rt/api/model_api.py,sha256=ONDU0ocNnejGi2r9nCKTlblqw847Yz4vtGo4M8inc9Q,22435
|
88
|
-
tracdap/rt/api/static_api.py,sha256=
|
89
|
-
tracdap/rt/config/__init__.py,sha256=
|
90
|
+
tracdap/rt/api/static_api.py,sha256=vSt6JUhxuOKQ5wI3CdmHgf8BskHffjry1lId2buDEeA,31852
|
91
|
+
tracdap/rt/config/__init__.py,sha256=DHLUDzk5HhpZVgEA6kGKNhNwHxQKPXkhl9AE_lewP8o,832
|
90
92
|
tracdap/rt/config/common.py,sha256=uKdwvfAKUzi8Wag4NpIYIZyL3D-Ed-KN1sqYuOpOROw,1187
|
93
|
+
tracdap/rt/config/dynamic.py,sha256=3PaL3IVDxb1_PSxdp820U4uEmLlKBLBBIwCHyVQZ1l4,738
|
91
94
|
tracdap/rt/config/job.py,sha256=B-aVIq0vJUY41-vPuIOLIq4A2hdfL9EJN0X9--nGfcI,656
|
92
95
|
tracdap/rt/config/platform.py,sha256=aU7sVInAcf7NxPk6KufaHqDbM_NZRQ9qOb3w4rDT4qI,3005
|
93
96
|
tracdap/rt/config/result.py,sha256=cKFz9ql_6Ru6qj7UP_VJZ2HJORf52dmi1dnK7eBxD-g,612
|
@@ -102,24 +105,25 @@ tracdap/rt/launch/__init__.py,sha256=SPIwj5Bwa-IlhrfY1OJspYnL_mPLvz4F9XTAYKeu6IE
|
|
102
105
|
tracdap/rt/launch/__main__.py,sha256=tfr5wL1gHm0oj4tcX6pv6bl-3Z1K7VMpmmNMQzfMFzU,841
|
103
106
|
tracdap/rt/launch/cli.py,sha256=jGySYBawTDFJrhHgwYnplXb9VPcgfrBVB2UURqx5s-s,2638
|
104
107
|
tracdap/rt/launch/launch.py,sha256=BogIdacUhIvr_Ay-LU2eik8Y1DvGr-GrOiOi40XqZ1A,7806
|
105
|
-
tracdap/rt/metadata/__init__.py,sha256=
|
108
|
+
tracdap/rt/metadata/__init__.py,sha256=fzIophkBh7v8G4JqLnFOn81HLoyGwUtLVZbbio2lSP4,2330
|
106
109
|
tracdap/rt/metadata/common.py,sha256=J24poYPHSJfORPqqhyJGTAmepdhVaT0V0RblWiW9jCI,1404
|
110
|
+
tracdap/rt/metadata/config.py,sha256=jOG78zCw6RPW0Parawbygw_KKx0FjTdPiGZ9MdQrd28,2360
|
107
111
|
tracdap/rt/metadata/custom.py,sha256=GhCO8xjjsjZzlfSefqmCFX80rXJnxDCDq_STWi0ZL_0,352
|
108
|
-
tracdap/rt/metadata/data.py,sha256=
|
109
|
-
tracdap/rt/metadata/file.py,sha256=
|
112
|
+
tracdap/rt/metadata/data.py,sha256=uYUyV7VmtGZ4s8hv4JMN6sXix2USu6TmOqq0POlEX7U,4424
|
113
|
+
tracdap/rt/metadata/file.py,sha256=d4VLinEXiXZamLtPbZSqZQamQbxR8dsU1m680vDaxoY,628
|
110
114
|
tracdap/rt/metadata/flow.py,sha256=IgZTh62xndAAFG1Y44JORrVKOV7Bd4dEqtWjf1CGeHU,3491
|
111
115
|
tracdap/rt/metadata/job.py,sha256=r8IBe-IumI_An1jrg-h8mM2bZPEew8evpXp5GkfEfNo,6390
|
112
116
|
tracdap/rt/metadata/model.py,sha256=bLeAhFtKa9zOAjf5hd1PnJoEZdHqyl0Drskn464dmqA,3761
|
113
|
-
tracdap/rt/metadata/object.py,sha256=
|
114
|
-
tracdap/rt/metadata/object_id.py,sha256=
|
115
|
-
tracdap/rt/metadata/resource.py,sha256=
|
117
|
+
tracdap/rt/metadata/object.py,sha256=6Nw09UewFQ-BzqmGywYTK_GZHf3bw2hNHPpud_4Pu-o,3021
|
118
|
+
tracdap/rt/metadata/object_id.py,sha256=BorEJWcNCayItRBLODdpJ0Xo2GfCWgQ4dWE28Rl4n1Q,4435
|
119
|
+
tracdap/rt/metadata/resource.py,sha256=GgYiD-6hsDw01fZEjwQ55SgCxGJxIeVW4Crm1jQpiWc,1920
|
116
120
|
tracdap/rt/metadata/search.py,sha256=BaH0mL80QEQ6iDmef1bIqEBIlm70orkc18DQv3pya6Y,9931
|
117
|
-
tracdap/rt/metadata/
|
121
|
+
tracdap/rt/metadata/storage.py,sha256=-WYc3aJskSCF_ETFQDavG3fTck__WPGMOfzWEBv55p4,3153
|
118
122
|
tracdap/rt/metadata/tag.py,sha256=cjKF5gdNECHDtA9sc09Dc2Q4WNZQA_7iJsUEHSKFXiQ,5097
|
119
123
|
tracdap/rt/metadata/tag_update.py,sha256=I7iDJiHEcSQ2vhOlhIc0fzeOoqTg6N1LJZU1R6tG_8g,3779
|
120
124
|
tracdap/rt/metadata/type.py,sha256=7XOGlLVvxd6DEmKRBYTANBsu9lmxDOsMKE0aNvzsB3M,9568
|
121
|
-
tracdap_runtime-0.8.
|
122
|
-
tracdap_runtime-0.8.
|
123
|
-
tracdap_runtime-0.8.
|
124
|
-
tracdap_runtime-0.8.
|
125
|
-
tracdap_runtime-0.8.
|
125
|
+
tracdap_runtime-0.8.0rc2.dist-info/licenses/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
|
126
|
+
tracdap_runtime-0.8.0rc2.dist-info/METADATA,sha256=ErUOnikAMjVByItf_AxK6D5obpmAutEGTffIE-j2UaU,5204
|
127
|
+
tracdap_runtime-0.8.0rc2.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
|
128
|
+
tracdap_runtime-0.8.0rc2.dist-info/top_level.txt,sha256=Uv0JfaE1Lp4JnCzqW8lqXNJAEcsAFpAUGOghJolVNdM,8
|
129
|
+
tracdap_runtime-0.8.0rc2.dist-info/RECORD,,
|
tracdap/rt/api/file_types.py
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
# Licensed to the Fintech Open Source Foundation (FINOS) under one or
|
2
|
-
# more contributor license agreements. See the NOTICE file distributed
|
3
|
-
# with this work for additional information regarding copyright ownership.
|
4
|
-
# FINOS licenses this file to you under the Apache License, Version 2.0
|
5
|
-
# (the "License"); you may not use this file except in compliance with the
|
6
|
-
# License. You may obtain a copy of the License at
|
7
|
-
#
|
8
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
-
#
|
10
|
-
# Unless required by applicable law or agreed to in writing, software
|
11
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
-
# See the License for the specific language governing permissions and
|
14
|
-
# limitations under the License.
|
15
|
-
|
16
|
-
from tracdap.rt.metadata import * # DOCGEN_REMOVE
|
17
|
-
|
18
|
-
|
19
|
-
class CommonFileTypes:
|
20
|
-
|
21
|
-
TXT = FileType("txt", "text/plain")
|
22
|
-
|
23
|
-
JPG = FileType("jpg", "image/jpeg")
|
24
|
-
PNG = FileType("png", "image/png")
|
25
|
-
SVG = FileType("svg", "image/svg+xml")
|
26
|
-
|
27
|
-
WORD = FileType("docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document")
|
28
|
-
EXCEL = FileType("xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
|
29
|
-
POWERPOINT = FileType("pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation")
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|