tracdap-runtime 0.6.4__py3-none-any.whl → 0.6.5__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.
Files changed (33) hide show
  1. tracdap/rt/_exec/context.py +382 -29
  2. tracdap/rt/_exec/dev_mode.py +123 -94
  3. tracdap/rt/_exec/engine.py +120 -9
  4. tracdap/rt/_exec/functions.py +125 -20
  5. tracdap/rt/_exec/graph.py +38 -13
  6. tracdap/rt/_exec/graph_builder.py +120 -9
  7. tracdap/rt/_impl/data.py +115 -49
  8. tracdap/rt/_impl/grpc/tracdap/metadata/job_pb2.py +74 -30
  9. tracdap/rt/_impl/grpc/tracdap/metadata/job_pb2.pyi +120 -2
  10. tracdap/rt/_impl/grpc/tracdap/metadata/model_pb2.py +12 -10
  11. tracdap/rt/_impl/grpc/tracdap/metadata/model_pb2.pyi +14 -2
  12. tracdap/rt/_impl/grpc/tracdap/metadata/resource_pb2.py +29 -0
  13. tracdap/rt/_impl/grpc/tracdap/metadata/resource_pb2.pyi +16 -0
  14. tracdap/rt/_impl/models.py +8 -0
  15. tracdap/rt/_impl/static_api.py +16 -0
  16. tracdap/rt/_impl/storage.py +37 -25
  17. tracdap/rt/_impl/validation.py +76 -7
  18. tracdap/rt/_plugins/repo_git.py +1 -1
  19. tracdap/rt/_version.py +1 -1
  20. tracdap/rt/api/experimental.py +220 -0
  21. tracdap/rt/api/hook.py +4 -0
  22. tracdap/rt/api/model_api.py +48 -6
  23. tracdap/rt/config/__init__.py +2 -2
  24. tracdap/rt/config/common.py +6 -0
  25. tracdap/rt/metadata/__init__.py +25 -20
  26. tracdap/rt/metadata/job.py +54 -0
  27. tracdap/rt/metadata/model.py +18 -0
  28. tracdap/rt/metadata/resource.py +24 -0
  29. {tracdap_runtime-0.6.4.dist-info → tracdap_runtime-0.6.5.dist-info}/METADATA +3 -1
  30. {tracdap_runtime-0.6.4.dist-info → tracdap_runtime-0.6.5.dist-info}/RECORD +33 -29
  31. {tracdap_runtime-0.6.4.dist-info → tracdap_runtime-0.6.5.dist-info}/LICENSE +0 -0
  32. {tracdap_runtime-0.6.4.dist-info → tracdap_runtime-0.6.5.dist-info}/WHEEL +0 -0
  33. {tracdap_runtime-0.6.4.dist-info → tracdap_runtime-0.6.5.dist-info}/top_level.txt +0 -0
@@ -12,8 +12,6 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- from __future__ import annotations
16
-
17
15
  import abc as _abc
18
16
  import typing as _tp
19
17
  import logging as _logging
@@ -22,8 +20,18 @@ import logging as _logging
22
20
  # This significantly improves type hinting, inline documentation and auto-complete in JetBrains IDEs
23
21
  from tracdap.rt.metadata import * # DOCGEN_REMOVE
24
22
 
23
+
25
24
  if _tp.TYPE_CHECKING:
26
- import pandas
25
+
26
+ try:
27
+ import pandas
28
+ except ModuleNotFoundError:
29
+ pass
30
+
31
+ try:
32
+ import polars
33
+ except ModuleNotFoundError:
34
+ pass
27
35
 
28
36
 
29
37
  class TracContext:
@@ -134,7 +142,8 @@ class TracContext:
134
142
  pass
135
143
 
136
144
  @_abc.abstractmethod
137
- def get_pandas_table(self, dataset_name: str, use_temporal_objects: _tp.Optional[bool] = None) -> pandas.DataFrame:
145
+ def get_pandas_table(self, dataset_name: str, use_temporal_objects: _tp.Optional[bool] = None) \
146
+ -> "pandas.DataFrame":
138
147
 
139
148
  """
140
149
  Get the data for a model input or output as a Pandas dataframe
@@ -165,6 +174,22 @@ class TracContext:
165
174
  """
166
175
  pass
167
176
 
177
+ @_abc.abstractmethod
178
+ def get_polars_table(self, dataset_name: str) -> "polars.DataFrame":
179
+
180
+ """
181
+ Get the data for a model input or output as a Polars dataframe
182
+
183
+ This method has equivalent semantics to :py:meth:`get_pandas_table`, but returns
184
+ a Polars dataframe.
185
+
186
+ :param dataset_name: The name of the model input or output to get data for
187
+ :return: A polars dataframe containing the data for the named dataset
188
+ :raises: :py:class:`ERuntimeValidation <tracdap.rt.exceptions.ERuntimeValidation>`
189
+ """
190
+
191
+ pass
192
+
168
193
  @_abc.abstractmethod
169
194
  def put_schema(self, dataset_name: str, schema: SchemaDefinition):
170
195
 
@@ -196,7 +221,7 @@ class TracContext:
196
221
  pass
197
222
 
198
223
  @_abc.abstractmethod
199
- def put_pandas_table(self, dataset_name: str, dataset: pandas.DataFrame):
224
+ def put_pandas_table(self, dataset_name: str, dataset: "pandas.DataFrame"):
200
225
 
201
226
  """
202
227
  Save the data for a model output as a Pandas dataframe
@@ -217,7 +242,24 @@ class TracContext:
217
242
  :param dataset_name: The name of the model output to save data for
218
243
  :param dataset: A pandas dataframe containing the data for the named dataset
219
244
  :raises: :py:class:`ERuntimeValidation <tracdap.rt.exceptions.ERuntimeValidation>`,
220
- :py:class:`EDataValidation <tracdap.rt.exceptions.EDataValidation>`
245
+ :py:class:`EDataConformance <tracdap.rt.exceptions.EDataConformance>`
246
+ """
247
+
248
+ pass
249
+
250
+ @_abc.abstractmethod
251
+ def put_polars_table(self, dataset_name: str, dataset: "polars.DataFrame"):
252
+
253
+ """
254
+ Save the data for a model output as a Polars dataframe
255
+
256
+ This method has equivalent semantics to :py:meth:`put_pandas_table`, but accepts
257
+ a Polars dataframe.
258
+
259
+ :param dataset_name: The name of the model output to save data for
260
+ :param dataset: A polars dataframe containing the data for the named dataset
261
+ :raises: :py:class:`ERuntimeValidation <tracdap.rt.exceptions.ERuntimeValidation>`,
262
+ :py:class:`EDataConformance <tracdap.rt.exceptions.EDataConformance>`
221
263
  """
222
264
 
223
265
  pass
@@ -10,6 +10,8 @@ from .common import ServiceConfig
10
10
  from .runtime import RuntimeConfig
11
11
  from .runtime import SparkSettings
12
12
 
13
+ from .job import JobConfig
14
+
13
15
  from .platform import RoutingProtocol
14
16
  from .platform import DeploymentLayout
15
17
  from .platform import PlatformConfig
@@ -24,7 +26,5 @@ from .platform import RoutingMatch
24
26
  from .platform import RoutingTarget
25
27
  from .platform import DeploymentConfig
26
28
 
27
- from .job import JobConfig
28
-
29
29
  from .result import TagUpdateList
30
30
  from .result import JobResult
@@ -17,6 +17,8 @@ class PluginConfig:
17
17
 
18
18
  protocol: str = ""
19
19
 
20
+ publicProperties: _tp.Dict[str, str] = _dc.field(default_factory=dict)
21
+
20
22
  properties: _tp.Dict[str, str] = _dc.field(default_factory=dict)
21
23
 
22
24
  secrets: _tp.Dict[str, str] = _dc.field(default_factory=dict)
@@ -63,6 +65,10 @@ class StorageConfig:
63
65
 
64
66
  buckets: _tp.Dict[str, PluginConfig] = _dc.field(default_factory=dict)
65
67
 
68
+ """TODO: Rename "buckets" as "internal" for 0.7"""
69
+
70
+ external: _tp.Dict[str, PluginConfig] = _dc.field(default_factory=dict)
71
+
66
72
  defaultBucket: str = ""
67
73
 
68
74
  defaultFormat: str = ""
@@ -21,30 +21,12 @@ from .data import SchemaDefinition
21
21
  from .data import PartKey
22
22
  from .data import DataDefinition
23
23
 
24
- from .stoarge import CopyStatus
25
- from .stoarge import IncarnationStatus
26
- from .stoarge import StorageCopy
27
- from .stoarge import StorageIncarnation
28
- from .stoarge import StorageItem
29
- from .stoarge import StorageDefinition
30
-
24
+ from .model import ModelType
31
25
  from .model import ModelParameter
32
26
  from .model import ModelInputSchema
33
27
  from .model import ModelOutputSchema
34
28
  from .model import ModelDefinition
35
29
 
36
- from .tag_update import TagOperation
37
- from .tag_update import TagUpdate
38
-
39
- from .job import JobType
40
- from .job import JobStatusCode
41
- from .job import JobDefinition
42
- from .job import RunModelJob
43
- from .job import RunFlowJob
44
- from .job import ImportModelJob
45
-
46
- from .file import FileDefinition
47
-
48
30
  from .search import SearchOperator
49
31
  from .search import LogicalOperator
50
32
  from .search import SearchTerm
@@ -52,18 +34,41 @@ from .search import LogicalExpression
52
34
  from .search import SearchExpression
53
35
  from .search import SearchParameters
54
36
 
37
+ from .tag_update import TagOperation
38
+ from .tag_update import TagUpdate
39
+
55
40
  from .flow import FlowNodeType
56
41
  from .flow import FlowNode
57
42
  from .flow import FlowSocket
58
43
  from .flow import FlowEdge
59
44
  from .flow import FlowDefinition
60
45
 
46
+ from .job import JobType
47
+ from .job import JobStatusCode
48
+ from .job import JobDefinition
49
+ from .job import RunModelJob
50
+ from .job import RunFlowJob
51
+ from .job import ImportModelJob
52
+ from .job import ImportDataJob
53
+ from .job import ExportDataJob
54
+
55
+ from .file import FileDefinition
56
+
61
57
  from .custom import CustomDefinition
62
58
 
59
+ from .stoarge import CopyStatus
60
+ from .stoarge import IncarnationStatus
61
+ from .stoarge import StorageCopy
62
+ from .stoarge import StorageIncarnation
63
+ from .stoarge import StorageItem
64
+ from .stoarge import StorageDefinition
65
+
63
66
  from .object import ObjectDefinition
64
67
 
65
- from .tag import Tag
68
+ from .resource import ResourceType
66
69
 
67
70
  from .common import MetadataFormat
68
71
  from .common import MetadataVersion
69
72
  from .common import TenantInfo
73
+
74
+ from .tag import Tag
@@ -32,6 +32,10 @@ class JobType(_enum.Enum):
32
32
 
33
33
  """Import data into the platform"""
34
34
 
35
+ EXPORT_DATA = 5
36
+
37
+ """Export data to external locations"""
38
+
35
39
 
36
40
  class JobStatusCode(_enum.Enum):
37
41
 
@@ -93,6 +97,10 @@ class JobDefinition:
93
97
 
94
98
  importModel: _tp.Optional[ImportModelJob] = None
95
99
 
100
+ importData: _tp.Optional[ImportDataJob] = None
101
+
102
+ exportData: _tp.Optional[ExportDataJob] = None
103
+
96
104
 
97
105
  @_dc.dataclass
98
106
  class RunModelJob:
@@ -152,3 +160,49 @@ class ImportModelJob:
152
160
  path: str = ""
153
161
 
154
162
  modelAttrs: _tp.List[TagUpdate] = _dc.field(default_factory=list)
163
+
164
+
165
+ @_dc.dataclass
166
+ class ImportDataJob:
167
+
168
+ """Specification for an IMPORT_DATA job"""
169
+
170
+ model: TagSelector = _dc.field(default_factory=lambda: TagSelector())
171
+
172
+ parameters: _tp.Dict[str, Value] = _dc.field(default_factory=dict)
173
+
174
+ inputs: _tp.Dict[str, TagSelector] = _dc.field(default_factory=dict)
175
+
176
+ outputs: _tp.Dict[str, TagSelector] = _dc.field(default_factory=dict)
177
+
178
+ priorOutputs: _tp.Dict[str, TagSelector] = _dc.field(default_factory=dict)
179
+
180
+ storageAccess: _tp.List[str] = _dc.field(default_factory=list)
181
+
182
+ imports: _tp.Dict[str, TagSelector] = _dc.field(default_factory=dict)
183
+
184
+ outputAttrs: _tp.List[TagUpdate] = _dc.field(default_factory=list)
185
+
186
+ importAttrs: _tp.List[TagUpdate] = _dc.field(default_factory=list)
187
+
188
+
189
+ @_dc.dataclass
190
+ class ExportDataJob:
191
+
192
+ """Specification for an EXPORT_DATA job"""
193
+
194
+ model: TagSelector = _dc.field(default_factory=lambda: TagSelector())
195
+
196
+ parameters: _tp.Dict[str, Value] = _dc.field(default_factory=dict)
197
+
198
+ inputs: _tp.Dict[str, TagSelector] = _dc.field(default_factory=dict)
199
+
200
+ outputs: _tp.Dict[str, TagSelector] = _dc.field(default_factory=dict)
201
+
202
+ priorOutputs: _tp.Dict[str, TagSelector] = _dc.field(default_factory=dict)
203
+
204
+ storageAccess: _tp.List[str] = _dc.field(default_factory=list)
205
+
206
+ exports: _tp.Dict[str, TagSelector] = _dc.field(default_factory=dict)
207
+
208
+ outputAttrs: _tp.List[TagUpdate] = _dc.field(default_factory=list)
@@ -9,6 +9,22 @@ from .type import * # noqa
9
9
  from .data import * # noqa
10
10
 
11
11
 
12
+ class ModelType(_enum.Enum):
13
+
14
+ """Identify specialized model types for specific tasks"""
15
+
16
+ STANDARD_MODEL = 0
17
+
18
+ """A regular model with parameters, inputs and outputs (this is the default)"""
19
+
20
+ DATA_IMPORT_MODEL = 1
21
+
22
+ """A model with read access to external storage for importing data"""
23
+
24
+ DATA_EXPORT_MODEL = 2
25
+
26
+ """A model with write access to external storage for exporting data"""
27
+
12
28
 
13
29
  @_dc.dataclass
14
30
  class ModelParameter:
@@ -105,3 +121,5 @@ class ModelDefinition:
105
121
  staticAttributes: _tp.Dict[str, Value] = _dc.field(default_factory=dict)
106
122
 
107
123
  """Static attributes defined in model code"""
124
+
125
+ modelType: ModelType = ModelType.STANDARD_MODEL
@@ -0,0 +1,24 @@
1
+ # Code generated by TRAC
2
+
3
+ from __future__ import annotations
4
+ import typing as _tp # noqa
5
+ import dataclasses as _dc # noqa
6
+ import enum as _enum # noqa
7
+
8
+ from .object_id import * # noqa
9
+ from .object import * # noqa
10
+
11
+
12
+ class ResourceType(_enum.Enum):
13
+
14
+ """Enumeration of infrastructure resources that can be added to a tenant"""
15
+
16
+ RESOURCE_TYPE_NOT_SET = 0
17
+
18
+ MODEL_REPOSITORY = 1
19
+
20
+ """Model repository, which can be a source or binary repository"""
21
+
22
+ INTERNAL_STORAGE = 2
23
+
24
+ """Storage location for data held internally by the TRAC platform"""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tracdap-runtime
3
- Version: 0.6.4
3
+ Version: 0.6.5
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
@@ -39,6 +39,8 @@ Requires-Dist: gcsfs==2024.3.1; extra == "gcp"
39
39
  Provides-Extra: grpc
40
40
  Requires-Dist: grpcio==1.66.1; extra == "grpc"
41
41
  Requires-Dist: grpcio-status==1.66.1; extra == "grpc"
42
+ Provides-Extra: polars
43
+ Requires-Dist: polars<2.0.0,>=1.0.0; extra == "polars"
42
44
  Provides-Extra: spark
43
45
  Requires-Dist: pyspark<3.6.0,>=3.0.0; extra == "spark"
44
46
 
@@ -1,29 +1,29 @@
1
1
  tracdap/rt/__init__.py,sha256=rz9ERpKMlnR4LFZNGLtdNE26B_Y2V168bdd8hRmasKk,643
2
- tracdap/rt/_version.py,sha256=H6vRGF3YEHXAfyrJ_ntMEk3X5sqm3R6_C-FSQ242tDk,631
2
+ tracdap/rt/_version.py,sha256=slLtvilKX39o7MaJ1VJkWZHchjupj3h_nmRy9svBXiY,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=JLEOSehpNcC3J3goeuFRlO4a8vmAdb1yhgsCwXaZkPI,17803
7
- tracdap/rt/_exec/dev_mode.py,sha256=rQ6aVmgJIPj5nhX7fmijMa244puGA28KOKkd1ETIhU8,34233
8
- tracdap/rt/_exec/engine.py,sha256=KQPCLYgIlbSrzsoMJxxvd9kwWi16yEp-Ms3fTVdzcAo,32130
9
- tracdap/rt/_exec/functions.py,sha256=2JHX9CKEbsq_j3xUAppNUHc_gwZbLdJ1HJ_xsc7zMS0,24041
10
- tracdap/rt/_exec/graph.py,sha256=wOzOLBD-dKwqFhJtbGg2r49g68CkDNaveK5yi6mmm2A,11084
11
- tracdap/rt/_exec/graph_builder.py,sha256=waf74ogwfqSyxdU2yvwEwtNdt6U9qaExQdOZ7ghNY3M,32845
6
+ tracdap/rt/_exec/context.py,sha256=Hf3sjAJUKa6C5IerGZCGXKqCXq6waBGy657llKaZDo0,32130
7
+ tracdap/rt/_exec/dev_mode.py,sha256=WCiQHxJ3OlRu85l-0naF5qIxqpU0b-3gK6SDWDEK7nk,35276
8
+ tracdap/rt/_exec/engine.py,sha256=wNlKkPH7vlRVpCbxEkV2d0TX6ZRiKaf2DJH2Xkds4_8,36548
9
+ tracdap/rt/_exec/functions.py,sha256=jI04xWKgJf_ki0qJXYsNxwY2u9vY0m09U1vJYhxL29c,28307
10
+ tracdap/rt/_exec/graph.py,sha256=RTngWMQEfp0uNXQKJs-vEiVMYrHpRU69dqYqNV41jfk,11751
11
+ tracdap/rt/_exec/graph_builder.py,sha256=OTma9KYtN5KnmKVoKLwtBBS-9MnTLdmATOI_ynzYmUo,37777
12
12
  tracdap/rt/_exec/runtime.py,sha256=P9G0dqzl-9Rn-IZJppk1u9nib7OVG7UPEJaBxBQQl1Q,15942
13
13
  tracdap/rt/_exec/server.py,sha256=Nq3r0Fvt5GjvdMUQs74vv8JelLR6F3F1xRQh5PCo1EY,12397
14
14
  tracdap/rt/_impl/__init__.py,sha256=eBZMpgFx9uHJxMA-yMWHCQMvShTKxJRAizdz4vy5eWg,609
15
15
  tracdap/rt/_impl/config_parser.py,sha256=ZIQpTGwx41nMh4RWt9KW1iheZ2zwjBeTrowysF2u3mM,22586
16
- tracdap/rt/_impl/data.py,sha256=159Cd5cOSlai8xG-SLRR-yfjkQkLO19tXcyuGDUSYjc,35180
16
+ tracdap/rt/_impl/data.py,sha256=cy3BG9wK5W_vj85-1sCZjl4EKaXaYLLgXmnP9r0y6JI,37621
17
17
  tracdap/rt/_impl/guard_rails.py,sha256=Pj_LafXK0uw6cwFUS5bL2hZfi4AzWTd6agQlaH0MHNY,11424
18
- tracdap/rt/_impl/models.py,sha256=TZwR-Prnnvgclu8JMXyIb9K-H0M8FT-ye-SHf5WhfD8,10177
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=t_pnXHaLeYo8QHNA23ui2Yi2nTWwB4Dnpydezm9n_44,8849
23
- tracdap/rt/_impl/storage.py,sha256=vvu1Qlk0-GHqzNj0M33L_jB9eKv0dh9Fr9MBBiaQ2uM,35075
22
+ tracdap/rt/_impl/static_api.py,sha256=_wgmOAVaqjIyCGKwpf-10K12v9bs-Wyle9vDv3jMmag,9573
23
+ tracdap/rt/_impl/storage.py,sha256=-_77JlK10RlWuAg85EhTDT0Lw1E9OxjKDFIw09TNl6Y,35654
24
24
  tracdap/rt/_impl/type_system.py,sha256=SBircgzdEIG324le7THmUuAxrJlqDVDyqcQOQVeCUjQ,12710
25
25
  tracdap/rt/_impl/util.py,sha256=HeswbIL4dQHjWnCJL3-WEqwsQaYo-xnEuGRoaRJ7kyU,11075
26
- tracdap/rt/_impl/validation.py,sha256=Uk1qOMgBgFKasu7PsVuY0mzOaPx3NlvwTMF3VsRRlGU,18137
26
+ tracdap/rt/_impl/validation.py,sha256=pS2W5u7OJqsqNJnYrY3aqSN7xLuQyeM8ld_sV44WzFA,20502
27
27
  tracdap/rt/_impl/grpc/__init__.py,sha256=VFwsBdvvDZhB9OmzGnVPNkApXql5KjYoVSnIteKWTRI,608
28
28
  tracdap/rt/_impl/grpc/codec.py,sha256=OTDOET1F0mCvj9-mXRTgxZ2S7RQ9yjGrSWC4tKCQFVg,3783
29
29
  tracdap/rt/_impl/grpc/tracdap/api/internal/runtime_pb2.py,sha256=eH1JFEG4KwIhFAxMJfzw8JmpnTSNiY4seT_Mls2J2sM,5127
@@ -39,14 +39,16 @@ tracdap/rt/_impl/grpc/tracdap/metadata/file_pb2.py,sha256=FwZ9CZrS6-n96sYjV_EQXz
39
39
  tracdap/rt/_impl/grpc/tracdap/metadata/file_pb2.pyi,sha256=nRBVl47NUBTOLUJ7HOeztUMJoh9sVbPtqpxKLcCMEEw,1085
40
40
  tracdap/rt/_impl/grpc/tracdap/metadata/flow_pb2.py,sha256=GyY4iaqp9wtZ29byMllPmk4o2nosUgdazdqf9KKUg-g,5799
41
41
  tracdap/rt/_impl/grpc/tracdap/metadata/flow_pb2.pyi,sha256=yCP4usBn7VWxFWdlB6NERiCd0R7BqqmH5k29WdKNk04,5880
42
- tracdap/rt/_impl/grpc/tracdap/metadata/job_pb2.py,sha256=iuHQEwWXSlbr76XPiv3txYinpRqkllSfrSIjhXVRTCs,8305
43
- tracdap/rt/_impl/grpc/tracdap/metadata/job_pb2.pyi,sha256=n1OEkSYBCPRLNWo1JtvwQwiOXC4xw5a6OWvloNvMlZ8,9411
44
- tracdap/rt/_impl/grpc/tracdap/metadata/model_pb2.py,sha256=Of31c23jixxmSlsgh58NwSPSu01LQcfL8ublXFdnVdE,6731
45
- tracdap/rt/_impl/grpc/tracdap/metadata/model_pb2.pyi,sha256=86-0-hECYmRL5wJEdqacWa3jJPiAIPjO-9RFxrPkezM,6517
42
+ tracdap/rt/_impl/grpc/tracdap/metadata/job_pb2.py,sha256=UslaU_pEJG64g_4Nsb0P13kd3JCKPvGtUtLRHJkXCOE,14169
43
+ tracdap/rt/_impl/grpc/tracdap/metadata/job_pb2.pyi,sha256=mcrgMkNwb4UteNGwpKwL85BQolFZS-jaJi7t-EGb7rg,16794
44
+ tracdap/rt/_impl/grpc/tracdap/metadata/model_pb2.py,sha256=Z0K9bhYrBstGebIfkC-Ubj8EChqokavl0LOvqWR3N0g,7038
45
+ tracdap/rt/_impl/grpc/tracdap/metadata/model_pb2.pyi,sha256=4Ci14H5RpaUxsPKkjMnFavm9fdKyddPREnfE5yj5y9E,7028
46
46
  tracdap/rt/_impl/grpc/tracdap/metadata/object_id_pb2.py,sha256=cdNa1Byx6jvZPeakr28VrsEkGIj6av1xvdOM1N8NtuE,2933
47
47
  tracdap/rt/_impl/grpc/tracdap/metadata/object_id_pb2.pyi,sha256=vWMjD_CG4ozUBSVsl44kjux-Qr-L_7cLgvQRpuUM7x0,3238
48
48
  tracdap/rt/_impl/grpc/tracdap/metadata/object_pb2.py,sha256=G5MkYnJ7Nx_US_bjJw4KFtijbHcOHbgb_Bq1VN7hSd0,4378
49
49
  tracdap/rt/_impl/grpc/tracdap/metadata/object_pb2.pyi,sha256=BSTvD36Vvk1WrbplWwv5ZLGWIX-zHug5moAWYGO5HZc,3010
50
+ tracdap/rt/_impl/grpc/tracdap/metadata/resource_pb2.py,sha256=cXIkqZRCHG2teGgvExqztCl5xtvitz4JO7PWT8IleFE,1843
51
+ tracdap/rt/_impl/grpc/tracdap/metadata/resource_pb2.pyi,sha256=JAlgacWw94Yq3nnrrSEvtBfWw4kXlctZrj_V8TU4Tck,704
50
52
  tracdap/rt/_impl/grpc/tracdap/metadata/search_pb2.py,sha256=YsUl-xK3jOQ6mOMCPe8G3-BWOFFz-MpUOXDWMV90DrQ,3654
51
53
  tracdap/rt/_impl/grpc/tracdap/metadata/search_pb2.pyi,sha256=PU-OYKRufI3v5Zx8RI4RvEZq3KPh91AOb8sDNwxyySY,3762
52
54
  tracdap/rt/_impl/grpc/tracdap/metadata/stoarge_pb2.py,sha256=Zyi6y4vOSN8-VI00cq0gC2xv7YQcFrpMEC2phQxk32k,4652
@@ -63,7 +65,7 @@ tracdap/rt/_plugins/config_local.py,sha256=lDA_idZ_C6fkcxECyfzN08LsYgTlmXVIOZGZG
63
65
  tracdap/rt/_plugins/format_arrow.py,sha256=C4mcRRD-bIZhytxEn4meM1gwIaq1cSl_YgmUGUwzuPY,2210
64
66
  tracdap/rt/_plugins/format_csv.py,sha256=e9yr5ZSseuns-YHa-dKPMOO0EvFM4Kx3CJbvHQQika4,16823
65
67
  tracdap/rt/_plugins/format_parquet.py,sha256=clOkTGvqEPgnF7eRaxceyDDiWgFbSHZcYQWGOr2130c,2159
66
- tracdap/rt/_plugins/repo_git.py,sha256=68nE9NBw5M4wId9tgTI8K9Pv80V8BDAG7oJDPf5_C9I,10276
68
+ tracdap/rt/_plugins/repo_git.py,sha256=qMuh5nhm3YRMe8OVCmlxz5_eCcx3CeZIkNLNsLKX5DY,10277
67
69
  tracdap/rt/_plugins/repo_local.py,sha256=oW35YZIjOI4uRTGWI44Vnr9mzelQL-HuLvLnmHZHzTU,2726
68
70
  tracdap/rt/_plugins/repo_pypi.py,sha256=DGNgoUGM7fbAYtxqW-Liu2d2Lpx0OHAOnMnT-t0hEbA,13345
69
71
  tracdap/rt/_plugins/storage_aws.py,sha256=1XyWJcHmRQqr3LpS6yGvR6-yaz4g7_3zFc_KUJPWmz8,12973
@@ -71,11 +73,12 @@ tracdap/rt/_plugins/storage_azure.py,sha256=Q7c063SXlbbsyZHWPu4ma8BDwV-sE0ipOyb0
71
73
  tracdap/rt/_plugins/storage_gcp.py,sha256=ENMrgTzqX0QjSDnMfeGyFK6YUwaFaJgqF7PQzEqviKk,6464
72
74
  tracdap/rt/_plugins/storage_local.py,sha256=ep0EvFzhA8ZKStxwSvtbOPIJBt3HjtYKkmFlnUU_AqU,15555
73
75
  tracdap/rt/api/__init__.py,sha256=rOiUwK6sav9QTXohpZAFXJ9MgsL0KBfUyKA7dYspfGQ,1124
74
- tracdap/rt/api/hook.py,sha256=FDrfBpUuvY0xHplu4nAi2IegVXuDd5EelKvkT4EAVm4,4365
75
- tracdap/rt/api/model_api.py,sha256=2Phmgd_5xqbL7FxNWSvlSo1T5GgzCWvfLNVJ5Qxr2jI,19221
76
+ tracdap/rt/api/experimental.py,sha256=bsZ7FWew4_-MjGSr7MtG74bGmXcXhAwAsNrR88r1Vdc,6382
77
+ tracdap/rt/api/hook.py,sha256=RQLuNRKBBx_yL_TG0coTIvtM5jIWwU9GfPLyc378y9g,4476
78
+ tracdap/rt/api/model_api.py,sha256=bLJMKv60N4x-YYqz3q89JL3vD4AdJGcdXzEJvU8mADA,20588
76
79
  tracdap/rt/api/static_api.py,sha256=dGvw9HCXmw568hW-WOylzFFkMBZ0Jg_H7HF_ar-e2sg,24738
77
- tracdap/rt/config/__init__.py,sha256=jVp_duXrHMjjC5s-MfzDviabHd0XXn6RzmCN-hRIh1Y,885
78
- tracdap/rt/config/common.py,sha256=hdFTMqf6atqiUBYIGjz3tXHJQURNo41E0jirKeSsj7E,1294
80
+ tracdap/rt/config/__init__.py,sha256=eEojCBQrEhev7tCs3BEicprdalU2_i-tAbSTvf2JEsE,885
81
+ tracdap/rt/config/common.py,sha256=w71v9_7sm8gpy48BiB1YD_2PX0tTv6NMKtZpqgUKFIc,1503
79
82
  tracdap/rt/config/job.py,sha256=H6U0FOtCNYbsyCDh12aR4Te7m8HRGKNT7GiRGtFGaRk,681
80
83
  tracdap/rt/config/platform.py,sha256=813H2EnuXCxClKjgxDiL7nkuBFJ-ehYv0-ATQBd7uu4,3214
81
84
  tracdap/rt/config/result.py,sha256=abWmt3GUpQgTSoybfv0k2RJ4JDo8MzaPFvbQO9OzKF4,637
@@ -90,23 +93,24 @@ tracdap/rt/launch/__init__.py,sha256=Zz_4f_ODsmweCxRmG2Dq1Slpb927jSugYclfF_Wgfws
90
93
  tracdap/rt/launch/__main__.py,sha256=9UVYYSsqvvMVOqjjBBeLNdzV_6IeIa_97KWOMXIpXY4,654
91
94
  tracdap/rt/launch/cli.py,sha256=pQCmFQj9h6YKn3R7DKxh5nvIRi7pfiUfPgVB49F8ulY,2451
92
95
  tracdap/rt/launch/launch.py,sha256=nMOjLRnY8m9BMLi_YegIr6T2jKcQcRXeyPdxvDPg4ds,6602
93
- tracdap/rt/metadata/__init__.py,sha256=UsipN-xle6_HGBPR9gGuFJ36w8NPi0pNabMxu3iShE0,1779
96
+ tracdap/rt/metadata/__init__.py,sha256=kvAovsLFRKnjZRm_uNg32jiABcLRSJXszpIQB_T2Qsg,1906
94
97
  tracdap/rt/metadata/common.py,sha256=1rA7z2jaVxvmDKxLC5ZZv5CjpVA1iDo84KhVnyntCV8,1435
95
98
  tracdap/rt/metadata/custom.py,sha256=AJmTWg4-Q5969l1UxsMrKf75SUqY2MvJkBijmMIkjcc,381
96
99
  tracdap/rt/metadata/data.py,sha256=hD6qO1oOG3ubtdEqqzo86hfnKEi59FPe90mBxAYztjQ,3507
97
100
  tracdap/rt/metadata/file.py,sha256=cupU2fY9P81JxE8t-uuxBFlidKEAQtwAS96WUEGLahM,481
98
101
  tracdap/rt/metadata/flow.py,sha256=jnT08Nj3_-Qc5b9BQlcY9nNu82_X6JTpkDPm73qlsl0,3487
99
- tracdap/rt/metadata/job.py,sha256=47XIwZLcgsjOdqf0eBekbFTR10ZLEoH7-Iq4n13AvmI,3359
100
- tracdap/rt/metadata/model.py,sha256=w6oVvpGcSE6EJLO74lQIF8ECJhEZOzKQBn04yofWTag,3073
102
+ tracdap/rt/metadata/job.py,sha256=Tu6V8h4VfAnOcn1uZiv5Z3UZjq6ZyecnwG82cN12CwQ,4955
103
+ tracdap/rt/metadata/model.py,sha256=bs0ZHTkUrbifFFWN816nQyJDzAcqIsgcTWmtVqGCoNs,3533
101
104
  tracdap/rt/metadata/object.py,sha256=DgRX5AoEu-Ig7BD-Yxzqyx4DTRBgY6z9kdHpI0NWDNc,2810
102
105
  tracdap/rt/metadata/object_id.py,sha256=-3L22nfq243EJ9wuDR3t1zF1A-mjgdoz0-9rh189NdU,4379
106
+ tracdap/rt/metadata/resource.py,sha256=hVR45_rWlqYA64hMjVZpLAzlklXRO5NKy2Yo2OKbdmw,561
103
107
  tracdap/rt/metadata/search.py,sha256=u-fo3uDH1tsUAWs3cN9AspBofFGloyflgOauGt6EkLI,9938
104
108
  tracdap/rt/metadata/stoarge.py,sha256=Z7AF0M8F4MxyG6EP9rIgGBEPsV9R3f9oBvY506BJbfE,3153
105
109
  tracdap/rt/metadata/tag.py,sha256=wvfEBWbjpInZt0STuxDkpd_SLUyxQDDLHfPCz9aeAOE,5121
106
110
  tracdap/rt/metadata/tag_update.py,sha256=jXVJ0zmQT7JyrLtkvrhlId1ayHtpTN48xfM_AK0HdXk,3744
107
111
  tracdap/rt/metadata/type.py,sha256=_0BwsZSbis-mIq3uZE1RXtjvoV0uEm68jj1FGy3qZKs,9445
108
- tracdap_runtime-0.6.4.dist-info/LICENSE,sha256=Q5Gh9SdMNa_F2ehQRShh7dJBz6qW_EQFtWzLukOWFWY,11365
109
- tracdap_runtime-0.6.4.dist-info/METADATA,sha256=W-7kk2vxRspbeyjQzk9tKVlTJPx5LyODmyN38X5GgtA,4873
110
- tracdap_runtime-0.6.4.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
111
- tracdap_runtime-0.6.4.dist-info/top_level.txt,sha256=Uv0JfaE1Lp4JnCzqW8lqXNJAEcsAFpAUGOghJolVNdM,8
112
- tracdap_runtime-0.6.4.dist-info/RECORD,,
112
+ tracdap_runtime-0.6.5.dist-info/LICENSE,sha256=Q5Gh9SdMNa_F2ehQRShh7dJBz6qW_EQFtWzLukOWFWY,11365
113
+ tracdap_runtime-0.6.5.dist-info/METADATA,sha256=BYYL7v4Ut1an9VuHgPJpZ_ol5ThqivNM2W_0YSVP50g,4951
114
+ tracdap_runtime-0.6.5.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
115
+ tracdap_runtime-0.6.5.dist-info/top_level.txt,sha256=Uv0JfaE1Lp4JnCzqW8lqXNJAEcsAFpAUGOghJolVNdM,8
116
+ tracdap_runtime-0.6.5.dist-info/RECORD,,