tracdap-runtime 0.6.5__py3-none-any.whl → 0.6.6__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/_exec/context.py +272 -105
- tracdap/rt/_exec/dev_mode.py +231 -138
- tracdap/rt/_exec/engine.py +217 -59
- tracdap/rt/_exec/functions.py +25 -1
- tracdap/rt/_exec/graph.py +9 -0
- tracdap/rt/_exec/graph_builder.py +295 -198
- tracdap/rt/_exec/runtime.py +7 -5
- tracdap/rt/_impl/config_parser.py +11 -4
- tracdap/rt/_impl/data.py +278 -167
- tracdap/rt/_impl/ext/__init__.py +13 -0
- tracdap/rt/_impl/ext/sql.py +116 -0
- tracdap/rt/_impl/ext/storage.py +57 -0
- tracdap/rt/_impl/grpc/tracdap/metadata/job_pb2.py +62 -54
- tracdap/rt/_impl/grpc/tracdap/metadata/job_pb2.pyi +37 -2
- tracdap/rt/_impl/static_api.py +24 -11
- tracdap/rt/_impl/storage.py +2 -2
- tracdap/rt/_impl/util.py +10 -0
- tracdap/rt/_impl/validation.py +66 -13
- tracdap/rt/_plugins/storage_sql.py +417 -0
- tracdap/rt/_plugins/storage_sql_dialects.py +117 -0
- tracdap/rt/_version.py +1 -1
- tracdap/rt/api/experimental.py +79 -32
- tracdap/rt/api/hook.py +10 -0
- tracdap/rt/metadata/__init__.py +4 -0
- tracdap/rt/metadata/job.py +45 -0
- {tracdap_runtime-0.6.5.dist-info → tracdap_runtime-0.6.6.dist-info}/METADATA +3 -1
- {tracdap_runtime-0.6.5.dist-info → tracdap_runtime-0.6.6.dist-info}/RECORD +30 -25
- {tracdap_runtime-0.6.5.dist-info → tracdap_runtime-0.6.6.dist-info}/WHEEL +1 -1
- {tracdap_runtime-0.6.5.dist-info → tracdap_runtime-0.6.6.dist-info}/LICENSE +0 -0
- {tracdap_runtime-0.6.5.dist-info → tracdap_runtime-0.6.6.dist-info}/top_level.txt +0 -0
tracdap/rt/api/experimental.py
CHANGED
@@ -22,70 +22,91 @@ from tracdap.rt.api import *
|
|
22
22
|
from .hook import _StaticApiHook
|
23
23
|
|
24
24
|
|
25
|
-
|
25
|
+
_PROTOCOL = _tp.TypeVar('_PROTOCOL')
|
26
26
|
|
27
|
+
@_dc.dataclass(frozen=True)
|
28
|
+
class _Protocol(_tp.Generic[_PROTOCOL]):
|
27
29
|
|
28
|
-
|
30
|
+
protocol_name: str
|
31
|
+
api_type: _tp.Type[_PROTOCOL]
|
29
32
|
|
30
|
-
|
31
|
-
|
33
|
+
def __str__(self):
|
34
|
+
return self.protocol_name
|
32
35
|
|
33
|
-
def __init__(self, framework_name, framework_type: _DATA_FRAMEWORK):
|
34
|
-
self.__framework_name = framework_name
|
35
|
-
self.__framework_type = framework_type
|
36
36
|
|
37
|
-
|
38
|
-
|
37
|
+
def __pandas_api_type() -> "_tp.Type[pandas.DataFrame]":
|
38
|
+
try:
|
39
|
+
import pandas
|
40
|
+
return pandas.DataFrame
|
41
|
+
except ModuleNotFoundError:
|
42
|
+
return None # noqa
|
39
43
|
|
44
|
+
def __polars_api_type() -> "_tp.Type[polars.DataFrame]":
|
45
|
+
try:
|
46
|
+
import polars
|
47
|
+
return polars.DataFrame
|
48
|
+
except ModuleNotFoundError:
|
49
|
+
return None # noqa
|
40
50
|
|
41
|
-
|
51
|
+
DATA_API = _tp.TypeVar('DATA_API', __pandas_api_type(), __polars_api_type())
|
42
52
|
|
43
|
-
|
44
|
-
_DataFramework.PANDAS = _DataFramework('pandas', pandas.DataFrame)
|
45
|
-
"""The original Python dataframe library, most widely used"""
|
46
|
-
else:
|
47
|
-
_DataFramework.PANDAS = _DataFramework('pandas', None)
|
48
|
-
"""Pandas data framework is not installed"""
|
53
|
+
class DataFramework(_Protocol[DATA_API]):
|
49
54
|
|
50
|
-
|
51
|
-
|
52
|
-
"""A modern, fast and simple alternative to Pandas"""
|
53
|
-
else:
|
54
|
-
_DataFramework.POLARS = _DataFramework('polars', None)
|
55
|
-
"""Polars data framework is not installed"""
|
55
|
+
def __init__(self, protocol_name: str, api_type: _tp.Type[DATA_API]):
|
56
|
+
super().__init__(protocol_name, api_type)
|
56
57
|
|
57
|
-
|
58
|
+
@classmethod
|
59
|
+
def pandas(cls) -> "DataFramework[pandas.DataFrame]":
|
60
|
+
return DataFramework("pandas", DATA_API.__constraints__[0])
|
58
61
|
|
59
|
-
|
60
|
-
|
62
|
+
@classmethod
|
63
|
+
def polars(cls) -> "DataFramework[polars.DataFrame]":
|
64
|
+
return DataFramework("polars", DATA_API.__constraints__[1])
|
61
65
|
|
62
|
-
PANDAS =
|
63
|
-
|
66
|
+
PANDAS = DataFramework.pandas()
|
67
|
+
"""Data framework constant for the Pandas data library"""
|
68
|
+
|
69
|
+
POLARS = DataFramework.polars()
|
70
|
+
"""Data framework constant for the Polars data library"""
|
64
71
|
|
65
72
|
|
66
73
|
class TracContext(TracContext):
|
67
74
|
|
68
75
|
@_abc.abstractmethod
|
69
|
-
def get_table(self, dataset_name: str, framework:
|
76
|
+
def get_table(self, dataset_name: str, framework: DataFramework[DATA_API]) -> DATA_API:
|
70
77
|
|
71
78
|
pass
|
72
79
|
|
73
80
|
@_abc.abstractmethod
|
74
|
-
def put_table(self, dataset_name: str, dataset:
|
81
|
+
def put_table(self, dataset_name: str, dataset: DATA_API):
|
75
82
|
|
76
83
|
pass
|
77
84
|
|
78
85
|
|
79
86
|
def init_static():
|
87
|
+
"""Ensure TRAC's static model API is available to use (for static definitions at module or class scope)"""
|
80
88
|
import tracdap.rt._impl.static_api as _static_impl # noqa
|
81
89
|
_static_impl.StaticApiImpl.register_impl()
|
82
90
|
|
83
91
|
|
84
|
-
def infer_schema(dataset:
|
92
|
+
def infer_schema(dataset: DATA_API) -> SchemaDefinition:
|
93
|
+
"""Infer the full TRAC schema of an existing dataset"""
|
85
94
|
sa = _StaticApiHook.get_instance()
|
86
95
|
return sa.infer_schema(dataset)
|
87
96
|
|
88
97
|
|
98
|
+
def array_type(item_type: BasicType) -> TypeDescriptor:
|
99
|
+
"""Build a type descriptor for an ARRAY type"""
|
100
|
+
sa = _StaticApiHook.get_instance()
|
101
|
+
return sa.array_type(item_type)
|
102
|
+
|
103
|
+
|
104
|
+
def map_type(entry_type: BasicType) -> TypeDescriptor:
|
105
|
+
"""Build a type descriptor for a MAP type"""
|
106
|
+
sa = _StaticApiHook.get_instance()
|
107
|
+
return sa.map_type(entry_type)
|
108
|
+
|
109
|
+
|
89
110
|
class FileType(_enum.Enum):
|
90
111
|
|
91
112
|
FILE = 1
|
@@ -172,6 +193,32 @@ class TracFileStorage:
|
|
172
193
|
stream.write(data)
|
173
194
|
|
174
195
|
|
196
|
+
class TracDataStorage(_tp.Generic[DATA_API]):
|
197
|
+
|
198
|
+
@_abc.abstractmethod
|
199
|
+
def has_table(self, table_name: str) -> bool:
|
200
|
+
pass
|
201
|
+
|
202
|
+
@_abc.abstractmethod
|
203
|
+
def list_tables(self) -> _tp.List[str]:
|
204
|
+
pass
|
205
|
+
|
206
|
+
@_abc.abstractmethod
|
207
|
+
def create_table(self, table_name: str, schema: SchemaDefinition):
|
208
|
+
pass
|
209
|
+
|
210
|
+
@_abc.abstractmethod
|
211
|
+
def read_table(self, table_name: str) -> DATA_API:
|
212
|
+
pass
|
213
|
+
|
214
|
+
@_abc.abstractmethod
|
215
|
+
def write_table(self, table_name: str, dataset: DATA_API):
|
216
|
+
pass
|
217
|
+
|
218
|
+
@_abc.abstractmethod
|
219
|
+
def native_read_query(self, query: str, **parameters) -> DATA_API:
|
220
|
+
pass
|
221
|
+
|
175
222
|
|
176
223
|
class TracDataContext(TracContext):
|
177
224
|
|
@@ -180,7 +227,7 @@ class TracDataContext(TracContext):
|
|
180
227
|
pass
|
181
228
|
|
182
229
|
@_abc.abstractmethod
|
183
|
-
def get_data_storage(self, storage_key: str) ->
|
230
|
+
def get_data_storage(self, storage_key: str, framework: DataFramework[DATA_API], **framework_args) -> TracDataStorage[DATA_API]:
|
184
231
|
pass
|
185
232
|
|
186
233
|
@_abc.abstractmethod
|
@@ -188,7 +235,7 @@ class TracDataContext(TracContext):
|
|
188
235
|
pass
|
189
236
|
|
190
237
|
@_abc.abstractmethod
|
191
|
-
def set_source_metadata(self, dataset_key: str, storage_key: str, source_info: FileStat):
|
238
|
+
def set_source_metadata(self, dataset_key: str, storage_key: str, source_info: _tp.Union[FileStat, str]):
|
192
239
|
pass
|
193
240
|
|
194
241
|
@_abc.abstractmethod
|
tracdap/rt/api/hook.py
CHANGED
@@ -61,6 +61,16 @@ class _StaticApiHook:
|
|
61
61
|
|
62
62
|
return cls.__static_api_hook
|
63
63
|
|
64
|
+
@_abc.abstractmethod
|
65
|
+
def array_type(self, item_type: _meta.BasicType) -> _meta.TypeDescriptor:
|
66
|
+
|
67
|
+
pass
|
68
|
+
|
69
|
+
@_abc.abstractmethod
|
70
|
+
def map_type(self, entry_type: _meta.BasicType) -> _meta.TypeDescriptor:
|
71
|
+
|
72
|
+
pass
|
73
|
+
|
64
74
|
@_abc.abstractmethod
|
65
75
|
def define_attributes(
|
66
76
|
self, *attrs: _tp.Union[_meta.TagUpdate, _tp.List[_meta.TagUpdate]]) \
|
tracdap/rt/metadata/__init__.py
CHANGED
@@ -45,12 +45,16 @@ from .flow import FlowDefinition
|
|
45
45
|
|
46
46
|
from .job import JobType
|
47
47
|
from .job import JobStatusCode
|
48
|
+
from .job import JobGroupType
|
48
49
|
from .job import JobDefinition
|
49
50
|
from .job import RunModelJob
|
50
51
|
from .job import RunFlowJob
|
51
52
|
from .job import ImportModelJob
|
52
53
|
from .job import ImportDataJob
|
53
54
|
from .job import ExportDataJob
|
55
|
+
from .job import JobGroup
|
56
|
+
from .job import SequentialJobGroup
|
57
|
+
from .job import ParallelJobGroup
|
54
58
|
|
55
59
|
from .file import FileDefinition
|
56
60
|
|
tracdap/rt/metadata/job.py
CHANGED
@@ -36,6 +36,10 @@ class JobType(_enum.Enum):
|
|
36
36
|
|
37
37
|
"""Export data to external locations"""
|
38
38
|
|
39
|
+
JOB_GROUP = 6
|
40
|
+
|
41
|
+
"""A job built from a collection of other jobs"""
|
42
|
+
|
39
43
|
|
40
44
|
class JobStatusCode(_enum.Enum):
|
41
45
|
|
@@ -84,6 +88,17 @@ class JobStatusCode(_enum.Enum):
|
|
84
88
|
"""The job was cancelled by a user of the platform"""
|
85
89
|
|
86
90
|
|
91
|
+
class JobGroupType(_enum.Enum):
|
92
|
+
|
93
|
+
"""Specify the group type for a JOB_GROUP job"""
|
94
|
+
|
95
|
+
JOB_GROUP_TYPE_NOT_SET = 0
|
96
|
+
|
97
|
+
SEQUENTIAL_JOB_GROUP = 1
|
98
|
+
|
99
|
+
PARALLEL_JOB_GROUP = 2
|
100
|
+
|
101
|
+
|
87
102
|
@_dc.dataclass
|
88
103
|
class JobDefinition:
|
89
104
|
|
@@ -101,6 +116,8 @@ class JobDefinition:
|
|
101
116
|
|
102
117
|
exportData: _tp.Optional[ExportDataJob] = None
|
103
118
|
|
119
|
+
jobGroup: _tp.Optional[JobGroup] = None
|
120
|
+
|
104
121
|
|
105
122
|
@_dc.dataclass
|
106
123
|
class RunModelJob:
|
@@ -206,3 +223,31 @@ class ExportDataJob:
|
|
206
223
|
exports: _tp.Dict[str, TagSelector] = _dc.field(default_factory=dict)
|
207
224
|
|
208
225
|
outputAttrs: _tp.List[TagUpdate] = _dc.field(default_factory=list)
|
226
|
+
|
227
|
+
|
228
|
+
@_dc.dataclass
|
229
|
+
class JobGroup:
|
230
|
+
|
231
|
+
"""Specification for a JOB_GROUP job, which runs a collection of other jobs"""
|
232
|
+
|
233
|
+
jobGroupType: JobGroupType = JobGroupType.JOB_GROUP_TYPE_NOT_SET
|
234
|
+
|
235
|
+
sequential: _tp.Optional[SequentialJobGroup] = None
|
236
|
+
|
237
|
+
parallel: _tp.Optional[ParallelJobGroup] = None
|
238
|
+
|
239
|
+
|
240
|
+
@_dc.dataclass
|
241
|
+
class SequentialJobGroup:
|
242
|
+
|
243
|
+
"""A job group where each job runs in sequence"""
|
244
|
+
|
245
|
+
jobs: _tp.List[JobDefinition] = _dc.field(default_factory=list)
|
246
|
+
|
247
|
+
|
248
|
+
@_dc.dataclass
|
249
|
+
class ParallelJobGroup:
|
250
|
+
|
251
|
+
"""A job group where all jobs runs in parallel"""
|
252
|
+
|
253
|
+
jobs: _tp.List[JobDefinition] = _dc.field(default_factory=list)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: tracdap-runtime
|
3
|
-
Version: 0.6.
|
3
|
+
Version: 0.6.6
|
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
|
@@ -43,6 +43,8 @@ Provides-Extra: polars
|
|
43
43
|
Requires-Dist: polars<2.0.0,>=1.0.0; extra == "polars"
|
44
44
|
Provides-Extra: spark
|
45
45
|
Requires-Dist: pyspark<3.6.0,>=3.0.0; extra == "spark"
|
46
|
+
Provides-Extra: sql
|
47
|
+
Requires-Dist: sqlalchemy<2.1.0,>=2.0.0; extra == "sql"
|
46
48
|
|
47
49
|
# TRAC Model Runtime for Python
|
48
50
|
|
@@ -1,29 +1,32 @@
|
|
1
1
|
tracdap/rt/__init__.py,sha256=rz9ERpKMlnR4LFZNGLtdNE26B_Y2V168bdd8hRmasKk,643
|
2
|
-
tracdap/rt/_version.py,sha256=
|
2
|
+
tracdap/rt/_version.py,sha256=TRyja83KlYTYBgK-yWywouza7UaoVKvjZCv3SFgEU2I,631
|
3
3
|
tracdap/rt/exceptions.py,sha256=AV2o9g5d5miMoRfsYW3DZ6or4SLVGwcZjfw4UsQ-HTY,7907
|
4
4
|
tracdap/rt/_exec/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
5
5
|
tracdap/rt/_exec/actors.py,sha256=CPSiLsEIPRbYfjeFjPcDqyPv3GKv-2nOFbUGqPOwnSA,34957
|
6
|
-
tracdap/rt/_exec/context.py,sha256=
|
7
|
-
tracdap/rt/_exec/dev_mode.py,sha256=
|
8
|
-
tracdap/rt/_exec/engine.py,sha256=
|
9
|
-
tracdap/rt/_exec/functions.py,sha256=
|
10
|
-
tracdap/rt/_exec/graph.py,sha256=
|
11
|
-
tracdap/rt/_exec/graph_builder.py,sha256=
|
12
|
-
tracdap/rt/_exec/runtime.py,sha256=
|
6
|
+
tracdap/rt/_exec/context.py,sha256=aGq-aemxhYr5X1wmzNPoMIaYYaxoX7z3f8kCIkQ9nq0,39046
|
7
|
+
tracdap/rt/_exec/dev_mode.py,sha256=ghUzwm5rONGDMJBK-tUPc99u_3kCV85q2fCm1z6L9tU,39019
|
8
|
+
tracdap/rt/_exec/engine.py,sha256=sGG2lKj50_MOqxi1LmpaT-aIqUangXwwj7440VLIVMA,42018
|
9
|
+
tracdap/rt/_exec/functions.py,sha256=F7zpkNCWbRY2pxz0ECha1BH-3rguxMxxO3B5MDmFk6s,29599
|
10
|
+
tracdap/rt/_exec/graph.py,sha256=iPXvaIpQeDHSXvie6lDbb_iKUUmb-abiq8--yQo1rOY,11884
|
11
|
+
tracdap/rt/_exec/graph_builder.py,sha256=L_xxFAzzPJpLxFajOs9MeQXL7s4mbSsvSdkatA83g5E,41309
|
12
|
+
tracdap/rt/_exec/runtime.py,sha256=X3KIGTiVUlWcAaNKojwPb2h7nm4uriJawPCM15IJFws,16167
|
13
13
|
tracdap/rt/_exec/server.py,sha256=Nq3r0Fvt5GjvdMUQs74vv8JelLR6F3F1xRQh5PCo1EY,12397
|
14
14
|
tracdap/rt/_impl/__init__.py,sha256=eBZMpgFx9uHJxMA-yMWHCQMvShTKxJRAizdz4vy5eWg,609
|
15
|
-
tracdap/rt/_impl/config_parser.py,sha256=
|
16
|
-
tracdap/rt/_impl/data.py,sha256=
|
15
|
+
tracdap/rt/_impl/config_parser.py,sha256=eBIQjD46IGWt_YEbVLgzdxPOcdL_J2R6E-mcrxttUp8,22866
|
16
|
+
tracdap/rt/_impl/data.py,sha256=6ixeRbJ6JJ65lXQBLKiXKOG5rYRavCMJtUGKzDKvduA,42820
|
17
17
|
tracdap/rt/_impl/guard_rails.py,sha256=Pj_LafXK0uw6cwFUS5bL2hZfi4AzWTd6agQlaH0MHNY,11424
|
18
18
|
tracdap/rt/_impl/models.py,sha256=cSL6UD0YpvkEdvKMy5zhlKQ7oofFgdfLpgukQiUYAXc,10567
|
19
19
|
tracdap/rt/_impl/repos.py,sha256=bdpUkBbNOIQOKJQGOhCDdXUMz2bY91YNIYlKRKTtM4Y,2063
|
20
20
|
tracdap/rt/_impl/schemas.py,sha256=KhMvh_i2ZLx0-P6vzx8ro2-KbnB3upfJgryTHbXMJrs,7417
|
21
21
|
tracdap/rt/_impl/shim.py,sha256=WV9AldhKdt-oLuQ5x89Dkocdn_gJoYZEo9buHHFIYd8,23148
|
22
|
-
tracdap/rt/_impl/static_api.py,sha256=
|
23
|
-
tracdap/rt/_impl/storage.py,sha256
|
22
|
+
tracdap/rt/_impl/static_api.py,sha256=ohKY9CVPPE5JOnJ7DlkRCyGuNMkm1WvUJ48z0-HKkn0,10062
|
23
|
+
tracdap/rt/_impl/storage.py,sha256=bwx_Wf-bW8C52s0wTp08fbEeH2wAq8vpHByK3THcIR0,35728
|
24
24
|
tracdap/rt/_impl/type_system.py,sha256=SBircgzdEIG324le7THmUuAxrJlqDVDyqcQOQVeCUjQ,12710
|
25
|
-
tracdap/rt/_impl/util.py,sha256=
|
26
|
-
tracdap/rt/_impl/validation.py,sha256=
|
25
|
+
tracdap/rt/_impl/util.py,sha256=DIS61cH_BenEoFVdR4RfJp5MruDRUtTKloLCm9lAGpw,11247
|
26
|
+
tracdap/rt/_impl/validation.py,sha256=VxEVFVu5UPVOVmKLN1-TSXwvCv2aI0MTdoOXfCA2AYM,22420
|
27
|
+
tracdap/rt/_impl/ext/__init__.py,sha256=VFwsBdvvDZhB9OmzGnVPNkApXql5KjYoVSnIteKWTRI,608
|
28
|
+
tracdap/rt/_impl/ext/sql.py,sha256=sdKla2UHDt-OrIWQ76v2_J9C6yI4ScIoCslnYiYrfeA,2752
|
29
|
+
tracdap/rt/_impl/ext/storage.py,sha256=IieZpTOye-GRAZ-h4ndm9ck8dvmdgSy6A31h5zl1HvI,1576
|
27
30
|
tracdap/rt/_impl/grpc/__init__.py,sha256=VFwsBdvvDZhB9OmzGnVPNkApXql5KjYoVSnIteKWTRI,608
|
28
31
|
tracdap/rt/_impl/grpc/codec.py,sha256=OTDOET1F0mCvj9-mXRTgxZ2S7RQ9yjGrSWC4tKCQFVg,3783
|
29
32
|
tracdap/rt/_impl/grpc/tracdap/api/internal/runtime_pb2.py,sha256=eH1JFEG4KwIhFAxMJfzw8JmpnTSNiY4seT_Mls2J2sM,5127
|
@@ -39,8 +42,8 @@ tracdap/rt/_impl/grpc/tracdap/metadata/file_pb2.py,sha256=FwZ9CZrS6-n96sYjV_EQXz
|
|
39
42
|
tracdap/rt/_impl/grpc/tracdap/metadata/file_pb2.pyi,sha256=nRBVl47NUBTOLUJ7HOeztUMJoh9sVbPtqpxKLcCMEEw,1085
|
40
43
|
tracdap/rt/_impl/grpc/tracdap/metadata/flow_pb2.py,sha256=GyY4iaqp9wtZ29byMllPmk4o2nosUgdazdqf9KKUg-g,5799
|
41
44
|
tracdap/rt/_impl/grpc/tracdap/metadata/flow_pb2.pyi,sha256=yCP4usBn7VWxFWdlB6NERiCd0R7BqqmH5k29WdKNk04,5880
|
42
|
-
tracdap/rt/_impl/grpc/tracdap/metadata/job_pb2.py,sha256=
|
43
|
-
tracdap/rt/_impl/grpc/tracdap/metadata/job_pb2.pyi,sha256=
|
45
|
+
tracdap/rt/_impl/grpc/tracdap/metadata/job_pb2.py,sha256=QgvJRIEHChOKEVi1xKnCKi1TBrL6KIXoJ0c8whMYaE4,15336
|
46
|
+
tracdap/rt/_impl/grpc/tracdap/metadata/job_pb2.pyi,sha256=G3wuO76UoPCefzwP-Wmst7Yze6oycs-fPlrO0F7KbF8,18432
|
44
47
|
tracdap/rt/_impl/grpc/tracdap/metadata/model_pb2.py,sha256=Z0K9bhYrBstGebIfkC-Ubj8EChqokavl0LOvqWR3N0g,7038
|
45
48
|
tracdap/rt/_impl/grpc/tracdap/metadata/model_pb2.pyi,sha256=4Ci14H5RpaUxsPKkjMnFavm9fdKyddPREnfE5yj5y9E,7028
|
46
49
|
tracdap/rt/_impl/grpc/tracdap/metadata/object_id_pb2.py,sha256=cdNa1Byx6jvZPeakr28VrsEkGIj6av1xvdOM1N8NtuE,2933
|
@@ -72,9 +75,11 @@ tracdap/rt/_plugins/storage_aws.py,sha256=1XyWJcHmRQqr3LpS6yGvR6-yaz4g7_3zFc_KUJ
|
|
72
75
|
tracdap/rt/_plugins/storage_azure.py,sha256=Q7c063SXlbbsyZHWPu4ma8BDwV-sE0ipOyb0Roi9ad0,5813
|
73
76
|
tracdap/rt/_plugins/storage_gcp.py,sha256=ENMrgTzqX0QjSDnMfeGyFK6YUwaFaJgqF7PQzEqviKk,6464
|
74
77
|
tracdap/rt/_plugins/storage_local.py,sha256=ep0EvFzhA8ZKStxwSvtbOPIJBt3HjtYKkmFlnUU_AqU,15555
|
78
|
+
tracdap/rt/_plugins/storage_sql.py,sha256=zgj_zpd-0KE92eAMyYNdD1wEX-t4JkQX3knt0fPsUtM,15710
|
79
|
+
tracdap/rt/_plugins/storage_sql_dialects.py,sha256=4sL3Yxbh8hvpoO6_FB9_bWMfm8KMmJYLKwVtQzld-JY,3363
|
75
80
|
tracdap/rt/api/__init__.py,sha256=rOiUwK6sav9QTXohpZAFXJ9MgsL0KBfUyKA7dYspfGQ,1124
|
76
|
-
tracdap/rt/api/experimental.py,sha256=
|
77
|
-
tracdap/rt/api/hook.py,sha256=
|
81
|
+
tracdap/rt/api/experimental.py,sha256=B37PwK0QiazwRbPVOwhD_zmiByvqZvPVaxmZNYWXr-A,7755
|
82
|
+
tracdap/rt/api/hook.py,sha256=HzBT7vIaGjvOHPZG1tIVzIZ6EJNJFbdJXg5MqQnb3TQ,4711
|
78
83
|
tracdap/rt/api/model_api.py,sha256=bLJMKv60N4x-YYqz3q89JL3vD4AdJGcdXzEJvU8mADA,20588
|
79
84
|
tracdap/rt/api/static_api.py,sha256=dGvw9HCXmw568hW-WOylzFFkMBZ0Jg_H7HF_ar-e2sg,24738
|
80
85
|
tracdap/rt/config/__init__.py,sha256=eEojCBQrEhev7tCs3BEicprdalU2_i-tAbSTvf2JEsE,885
|
@@ -93,13 +98,13 @@ tracdap/rt/launch/__init__.py,sha256=Zz_4f_ODsmweCxRmG2Dq1Slpb927jSugYclfF_Wgfws
|
|
93
98
|
tracdap/rt/launch/__main__.py,sha256=9UVYYSsqvvMVOqjjBBeLNdzV_6IeIa_97KWOMXIpXY4,654
|
94
99
|
tracdap/rt/launch/cli.py,sha256=pQCmFQj9h6YKn3R7DKxh5nvIRi7pfiUfPgVB49F8ulY,2451
|
95
100
|
tracdap/rt/launch/launch.py,sha256=nMOjLRnY8m9BMLi_YegIr6T2jKcQcRXeyPdxvDPg4ds,6602
|
96
|
-
tracdap/rt/metadata/__init__.py,sha256=
|
101
|
+
tracdap/rt/metadata/__init__.py,sha256=HHia6PS4QWmg3chctf6ksukV9G5JLdYqf4qAFnHeo-U,2032
|
97
102
|
tracdap/rt/metadata/common.py,sha256=1rA7z2jaVxvmDKxLC5ZZv5CjpVA1iDo84KhVnyntCV8,1435
|
98
103
|
tracdap/rt/metadata/custom.py,sha256=AJmTWg4-Q5969l1UxsMrKf75SUqY2MvJkBijmMIkjcc,381
|
99
104
|
tracdap/rt/metadata/data.py,sha256=hD6qO1oOG3ubtdEqqzo86hfnKEi59FPe90mBxAYztjQ,3507
|
100
105
|
tracdap/rt/metadata/file.py,sha256=cupU2fY9P81JxE8t-uuxBFlidKEAQtwAS96WUEGLahM,481
|
101
106
|
tracdap/rt/metadata/flow.py,sha256=jnT08Nj3_-Qc5b9BQlcY9nNu82_X6JTpkDPm73qlsl0,3487
|
102
|
-
tracdap/rt/metadata/job.py,sha256=
|
107
|
+
tracdap/rt/metadata/job.py,sha256=GieAy1XUlEZHm6Y2t-sZKzxyl-AmhoGGOAuvRmCeSrY,5881
|
103
108
|
tracdap/rt/metadata/model.py,sha256=bs0ZHTkUrbifFFWN816nQyJDzAcqIsgcTWmtVqGCoNs,3533
|
104
109
|
tracdap/rt/metadata/object.py,sha256=DgRX5AoEu-Ig7BD-Yxzqyx4DTRBgY6z9kdHpI0NWDNc,2810
|
105
110
|
tracdap/rt/metadata/object_id.py,sha256=-3L22nfq243EJ9wuDR3t1zF1A-mjgdoz0-9rh189NdU,4379
|
@@ -109,8 +114,8 @@ tracdap/rt/metadata/stoarge.py,sha256=Z7AF0M8F4MxyG6EP9rIgGBEPsV9R3f9oBvY506BJbf
|
|
109
114
|
tracdap/rt/metadata/tag.py,sha256=wvfEBWbjpInZt0STuxDkpd_SLUyxQDDLHfPCz9aeAOE,5121
|
110
115
|
tracdap/rt/metadata/tag_update.py,sha256=jXVJ0zmQT7JyrLtkvrhlId1ayHtpTN48xfM_AK0HdXk,3744
|
111
116
|
tracdap/rt/metadata/type.py,sha256=_0BwsZSbis-mIq3uZE1RXtjvoV0uEm68jj1FGy3qZKs,9445
|
112
|
-
tracdap_runtime-0.6.
|
113
|
-
tracdap_runtime-0.6.
|
114
|
-
tracdap_runtime-0.6.
|
115
|
-
tracdap_runtime-0.6.
|
116
|
-
tracdap_runtime-0.6.
|
117
|
+
tracdap_runtime-0.6.6.dist-info/LICENSE,sha256=Q5Gh9SdMNa_F2ehQRShh7dJBz6qW_EQFtWzLukOWFWY,11365
|
118
|
+
tracdap_runtime-0.6.6.dist-info/METADATA,sha256=1FmTL6_B1D-civh-3LdbLoaWJsY4N5DrAZun0f0FHS0,5027
|
119
|
+
tracdap_runtime-0.6.6.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
|
120
|
+
tracdap_runtime-0.6.6.dist-info/top_level.txt,sha256=Uv0JfaE1Lp4JnCzqW8lqXNJAEcsAFpAUGOghJolVNdM,8
|
121
|
+
tracdap_runtime-0.6.6.dist-info/RECORD,,
|
File without changes
|
File without changes
|