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
tracdap/rt/_impl/data.py CHANGED
@@ -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 dataclasses as dc
18
16
  import typing as tp
19
17
  import datetime as dt
@@ -22,7 +20,16 @@ import platform
22
20
 
23
21
  import pyarrow as pa
24
22
  import pyarrow.compute as pc
25
- import pandas as pd
23
+
24
+ try:
25
+ import pandas # noqa
26
+ except ModuleNotFoundError:
27
+ pandas = None
28
+
29
+ try:
30
+ import polars # noqa
31
+ except ModuleNotFoundError:
32
+ polars = None
26
33
 
27
34
  import tracdap.rt.metadata as _meta
28
35
  import tracdap.rt.exceptions as _ex
@@ -42,7 +49,7 @@ class DataSpec:
42
49
  class DataPartKey:
43
50
 
44
51
  @classmethod
45
- def for_root(cls) -> DataPartKey:
52
+ def for_root(cls) -> "DataPartKey":
46
53
  return DataPartKey(opaque_key='part_root')
47
54
 
48
55
  opaque_key: str
@@ -55,14 +62,14 @@ class DataItem:
55
62
  table: tp.Optional[pa.Table] = None
56
63
  batches: tp.Optional[tp.List[pa.RecordBatch]] = None
57
64
 
58
- pandas: tp.Optional[pd.DataFrame] = None
65
+ pandas: "tp.Optional[pandas.DataFrame]" = None
59
66
  pyspark: tp.Any = None
60
67
 
61
68
  def is_empty(self) -> bool:
62
69
  return self.table is None and (self.batches is None or len(self.batches) == 0)
63
70
 
64
71
  @staticmethod
65
- def create_empty() -> DataItem:
72
+ def create_empty() -> "DataItem":
66
73
  return DataItem(pa.schema([]))
67
74
 
68
75
 
@@ -75,7 +82,7 @@ class DataView:
75
82
  parts: tp.Dict[DataPartKey, tp.List[DataItem]]
76
83
 
77
84
  @staticmethod
78
- def create_empty() -> DataView:
85
+ def create_empty() -> "DataView":
79
86
  return DataView(_meta.SchemaDefinition(), pa.schema([]), dict())
80
87
 
81
88
  @staticmethod
@@ -125,14 +132,14 @@ class DataMapping:
125
132
  }
126
133
 
127
134
  # Check the Pandas dtypes for handling floats are available before setting up the type mapping
128
- __PANDAS_VERSION_ELEMENTS = pd.__version__.split(".")
135
+ __PANDAS_VERSION_ELEMENTS = pandas.__version__.split(".")
129
136
  __PANDAS_MAJOR_VERSION = int(__PANDAS_VERSION_ELEMENTS[0])
130
137
  __PANDAS_MINOR_VERSION = int(__PANDAS_VERSION_ELEMENTS[1])
131
138
 
132
139
  if __PANDAS_MAJOR_VERSION == 2:
133
140
 
134
- __PANDAS_DATE_TYPE = pd.to_datetime([dt.date(2000, 1, 1)]).as_unit(__TRAC_TIMESTAMP_UNIT).dtype
135
- __PANDAS_DATETIME_TYPE = pd.to_datetime([dt.datetime(2000, 1, 1, 0, 0, 0)]).as_unit(__TRAC_TIMESTAMP_UNIT).dtype
141
+ __PANDAS_DATE_TYPE = pandas.to_datetime([dt.date(2000, 1, 1)]).as_unit(__TRAC_TIMESTAMP_UNIT).dtype
142
+ __PANDAS_DATETIME_TYPE = pandas.to_datetime([dt.datetime(2000, 1, 1, 0, 0, 0)]).as_unit(__TRAC_TIMESTAMP_UNIT).dtype
136
143
 
137
144
  @classmethod
138
145
  def __pandas_datetime_type(cls, tz, unit):
@@ -140,42 +147,42 @@ class DataMapping:
140
147
  return cls.__PANDAS_DATETIME_TYPE
141
148
  _unit = unit if unit is not None else cls.__TRAC_TIMESTAMP_UNIT
142
149
  if tz is None:
143
- return pd.to_datetime([dt.datetime(2000, 1, 1, 0, 0, 0)]).as_unit(_unit).dtype
150
+ return pandas.to_datetime([dt.datetime(2000, 1, 1, 0, 0, 0)]).as_unit(_unit).dtype
144
151
  else:
145
- return pd.DatetimeTZDtype(tz=tz, unit=_unit)
152
+ return pandas.DatetimeTZDtype(tz=tz, unit=_unit)
146
153
 
147
- # Minimum supported version for Pandas is 1.2, when pd.Float64Dtype was introduced
154
+ # Minimum supported version for Pandas is 1.2, when pandas.Float64Dtype was introduced
148
155
  elif __PANDAS_MAJOR_VERSION == 1 and __PANDAS_MINOR_VERSION >= 2:
149
156
 
150
- __PANDAS_DATE_TYPE = pd.to_datetime([dt.date(2000, 1, 1)]).dtype
151
- __PANDAS_DATETIME_TYPE = pd.to_datetime([dt.datetime(2000, 1, 1, 0, 0, 0)]).dtype
157
+ __PANDAS_DATE_TYPE = pandas.to_datetime([dt.date(2000, 1, 1)]).dtype
158
+ __PANDAS_DATETIME_TYPE = pandas.to_datetime([dt.datetime(2000, 1, 1, 0, 0, 0)]).dtype
152
159
 
153
160
  @classmethod
154
161
  def __pandas_datetime_type(cls, tz, unit): # noqa
155
162
  if tz is None:
156
163
  return cls.__PANDAS_DATETIME_TYPE
157
164
  else:
158
- return pd.DatetimeTZDtype(tz=tz)
165
+ return pandas.DatetimeTZDtype(tz=tz)
159
166
 
160
167
  else:
161
- raise _ex.EStartup(f"Pandas version not supported: [{pd.__version__}]")
168
+ raise _ex.EStartup(f"Pandas version not supported: [{pandas.__version__}]")
162
169
 
163
170
  # Only partial mapping is possible, decimal and temporal dtypes cannot be mapped this way
164
171
  __ARROW_TO_PANDAS_TYPE_MAPPING = {
165
- pa.bool_(): pd.BooleanDtype(),
166
- pa.int8(): pd.Int8Dtype(),
167
- pa.int16(): pd.Int16Dtype(),
168
- pa.int32(): pd.Int32Dtype(),
169
- pa.int64(): pd.Int64Dtype(),
170
- pa.uint8(): pd.UInt8Dtype(),
171
- pa.uint16(): pd.UInt16Dtype(),
172
- pa.uint32(): pd.UInt32Dtype(),
173
- pa.uint64(): pd.UInt64Dtype(),
174
- pa.float16(): pd.Float32Dtype(),
175
- pa.float32(): pd.Float32Dtype(),
176
- pa.float64(): pd.Float64Dtype(),
177
- pa.string(): pd.StringDtype(),
178
- pa.utf8(): pd.StringDtype()
172
+ pa.bool_(): pandas.BooleanDtype(),
173
+ pa.int8(): pandas.Int8Dtype(),
174
+ pa.int16(): pandas.Int16Dtype(),
175
+ pa.int32(): pandas.Int32Dtype(),
176
+ pa.int64(): pandas.Int64Dtype(),
177
+ pa.uint8(): pandas.UInt8Dtype(),
178
+ pa.uint16(): pandas.UInt16Dtype(),
179
+ pa.uint32(): pandas.UInt32Dtype(),
180
+ pa.uint64(): pandas.UInt64Dtype(),
181
+ pa.float16(): pandas.Float32Dtype(),
182
+ pa.float32(): pandas.Float32Dtype(),
183
+ pa.float64(): pandas.Float64Dtype(),
184
+ pa.string(): pandas.StringDtype(),
185
+ pa.utf8(): pandas.StringDtype()
179
186
  }
180
187
 
181
188
  __ARROW_TO_TRAC_BASIC_TYPE_MAPPING = {
@@ -340,18 +347,31 @@ class DataMapping:
340
347
 
341
348
  @classmethod
342
349
  def view_to_pandas(
343
- cls, view: DataView, part: DataPartKey, schema: tp.Optional[pa.Schema],
344
- temporal_objects_flag: bool) -> pd.DataFrame:
350
+ cls, view: DataView, part: DataPartKey, schema: tp.Optional[pa.Schema],
351
+ temporal_objects_flag: bool) -> "pandas.DataFrame":
345
352
 
346
353
  table = cls.view_to_arrow(view, part)
347
354
  return cls.arrow_to_pandas(table, schema, temporal_objects_flag)
348
355
 
349
356
  @classmethod
350
- def pandas_to_item(cls, df: pd.DataFrame, schema: tp.Optional[pa.Schema]) -> DataItem:
357
+ def view_to_polars(
358
+ cls, view: DataView, part: DataPartKey, schema: tp.Optional[pa.Schema]):
359
+
360
+ table = cls.view_to_arrow(view, part)
361
+ return cls.arrow_to_polars(table, schema)
362
+
363
+ @classmethod
364
+ def pandas_to_item(cls, df: "pandas.DataFrame", schema: tp.Optional[pa.Schema]) -> DataItem:
351
365
 
352
366
  table = cls.pandas_to_arrow(df, schema)
353
367
  return DataItem(table.schema, table)
354
368
 
369
+ @classmethod
370
+ def polars_to_item(cls, df: "polars.DataFrame", schema: tp.Optional[pa.Schema]) -> DataItem:
371
+
372
+ table = cls.polars_to_arrow(df, schema)
373
+ return DataItem(table.schema, table)
374
+
355
375
  @classmethod
356
376
  def add_item_to_view(cls, view: DataView, part: DataPartKey, item: DataItem) -> DataView:
357
377
 
@@ -401,7 +421,7 @@ class DataMapping:
401
421
  @classmethod
402
422
  def arrow_to_pandas(
403
423
  cls, table: pa.Table, schema: tp.Optional[pa.Schema] = None,
404
- temporal_objects_flag: bool = False) -> pd.DataFrame:
424
+ temporal_objects_flag: bool = False) -> "pandas.DataFrame":
405
425
 
406
426
  if schema is not None:
407
427
  table = DataConformance.conform_to_schema(table, schema, warn_extra_columns=False)
@@ -426,7 +446,18 @@ class DataMapping:
426
446
  split_blocks=True) # noqa
427
447
 
428
448
  @classmethod
429
- def pandas_to_arrow(cls, df: pd.DataFrame, schema: tp.Optional[pa.Schema] = None) -> pa.Table:
449
+ def arrow_to_polars(
450
+ cls, table: pa.Table, schema: tp.Optional[pa.Schema] = None) -> "polars.DataFrame":
451
+
452
+ if schema is not None:
453
+ table = DataConformance.conform_to_schema(table, schema, warn_extra_columns=False)
454
+ else:
455
+ DataConformance.check_duplicate_fields(table.schema.names, False)
456
+
457
+ return polars.from_arrow(table)
458
+
459
+ @classmethod
460
+ def pandas_to_arrow(cls, df: "pandas.DataFrame", schema: tp.Optional[pa.Schema] = None) -> pa.Table:
430
461
 
431
462
  # Converting pandas -> arrow needs care to ensure type coercion is applied correctly
432
463
  # Calling Table.from_pandas with the supplied schema will very often reject data
@@ -468,6 +499,30 @@ class DataMapping:
468
499
  df_types = df.dtypes.filter(column_filter) if column_filter else df.dtypes
469
500
  return DataConformance.conform_to_schema(table, schema, df_types)
470
501
 
502
+ @classmethod
503
+ def pandas_to_arrow_schema(cls, df: "pandas.DataFrame") -> pa.Schema:
504
+
505
+ return pa.Schema.from_pandas(df, preserve_index=False) # noqa
506
+
507
+ @classmethod
508
+ def polars_to_arrow(cls, df: "polars.DataFrame", schema: tp.Optional[pa.Schema] = None) -> pa.Table:
509
+
510
+ column_filter = DataConformance.column_filter(df.columns, schema)
511
+
512
+ filtered_df = df.select(polars.col(*column_filter)) if column_filter else df
513
+ table = filtered_df.to_arrow()
514
+
515
+ if schema is None:
516
+ DataConformance.check_duplicate_fields(table.schema.names, False)
517
+ return table
518
+ else:
519
+ return DataConformance.conform_to_schema(table, schema, None)
520
+
521
+ @classmethod
522
+ def polars_to_arrow_schema(cls, df: "polars.DataFrame") -> pa.Schema:
523
+
524
+ return df.top_k(1).to_arrow().schema
525
+
471
526
 
472
527
  class DataConformance:
473
528
 
@@ -784,21 +839,32 @@ class DataConformance:
784
839
  @classmethod
785
840
  def _coerce_string(cls, vector: pa.Array, field: pa.Field) -> pa.Array:
786
841
 
787
- if pa.types.is_string(field.type):
788
- if pa.types.is_string(vector.type):
789
- return vector
842
+ try:
790
843
 
791
- if pa.types.is_large_string(field.type):
792
- if pa.types.is_large_string(vector.type):
793
- return vector
794
- # Allow up-casting string -> large_string
795
- if pa.types.is_string(vector.type):
796
- return pc.cast(vector, field.type)
844
+ if pa.types.is_string(field.type):
845
+ if pa.types.is_string(vector.type):
846
+ return vector
847
+ # Try to down-cast large string -> string, will raise ArrowInvalid if data does not fit
848
+ if pa.types.is_large_string(vector.type):
849
+ return pc.cast(vector, field.type, safe=True)
850
+
851
+ if pa.types.is_large_string(field.type):
852
+ if pa.types.is_large_string(vector.type):
853
+ return vector
854
+ # Allow up-casting string -> large_string
855
+ if pa.types.is_string(vector.type):
856
+ return pc.cast(vector, field.type)
797
857
 
798
- error_message = cls._format_error(cls.__E_WRONG_DATA_TYPE, vector, field)
799
- cls.__log.error(error_message)
858
+ error_message = cls._format_error(cls.__E_WRONG_DATA_TYPE, vector, field)
859
+ cls.__log.error(error_message)
860
+ raise _ex.EDataConformance(error_message)
861
+
862
+ except pa.ArrowInvalid as e:
863
+
864
+ error_message = cls._format_error(cls.__E_DATA_LOSS_DID_OCCUR, vector, field, e)
865
+ cls.__log.error(error_message)
866
+ raise _ex.EDataConformance(error_message) from e
800
867
 
801
- raise _ex.EDataConformance(error_message)
802
868
 
803
869
  @classmethod
804
870
  def _coerce_date(cls, vector: pa.Array, field: pa.Field, pandas_type=None) -> pa.Array:
@@ -816,7 +882,7 @@ class DataConformance:
816
882
  # For Pandas 2.x dates are still np.datetime64 but can be in s, ms, us or ns
817
883
  # This conversion will not apply to dates held in Pandas using the Python date object types
818
884
  if pandas_type is not None:
819
- if pa.types.is_timestamp(vector.type) and pd.api.types.is_datetime64_any_dtype(pandas_type):
885
+ if pa.types.is_timestamp(vector.type) and pandas.api.types.is_datetime64_any_dtype(pandas_type):
820
886
  return pc.cast(vector, field.type)
821
887
 
822
888
  error_message = cls._format_error(cls.__E_WRONG_DATA_TYPE, vector, field)
@@ -17,7 +17,7 @@ from tracdap.rt._impl.grpc.tracdap.metadata import object_id_pb2 as tracdap_dot_
17
17
  from tracdap.rt._impl.grpc.tracdap.metadata import tag_update_pb2 as tracdap_dot_rt_dot___impl_dot_grpc_dot_tracdap_dot_metadata_dot_tag__update__pb2
18
18
 
19
19
 
20
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n0tracdap/rt/_impl/grpc/tracdap/metadata/job.proto\x12\x10tracdap.metadata\x1a\x31tracdap/rt/_impl/grpc/tracdap/metadata/type.proto\x1a\x36tracdap/rt/_impl/grpc/tracdap/metadata/object_id.proto\x1a\x37tracdap/rt/_impl/grpc/tracdap/metadata/tag_update.proto\"\xe6\x01\n\rJobDefinition\x12*\n\x07jobType\x18\x01 \x01(\x0e\x32\x19.tracdap.metadata.JobType\x12\x31\n\x08runModel\x18\x02 \x01(\x0b\x32\x1d.tracdap.metadata.RunModelJobH\x00\x12/\n\x07runFlow\x18\x03 \x01(\x0b\x32\x1c.tracdap.metadata.RunFlowJobH\x00\x12\x37\n\x0bimportModel\x18\x04 \x01(\x0b\x32 .tracdap.metadata.ImportModelJobH\x00\x42\x0c\n\njobDetails\"\xac\x05\n\x0bRunModelJob\x12,\n\x05model\x18\x01 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector\x12\x41\n\nparameters\x18\x02 \x03(\x0b\x32-.tracdap.metadata.RunModelJob.ParametersEntry\x12\x39\n\x06inputs\x18\x03 \x03(\x0b\x32).tracdap.metadata.RunModelJob.InputsEntry\x12;\n\x07outputs\x18\x04 \x03(\x0b\x32*.tracdap.metadata.RunModelJob.OutputsEntry\x12\x45\n\x0cpriorOutputs\x18\x05 \x03(\x0b\x32/.tracdap.metadata.RunModelJob.PriorOutputsEntry\x12\x30\n\x0boutputAttrs\x18\x06 \x03(\x0b\x32\x1b.tracdap.metadata.TagUpdate\x1aJ\n\x0fParametersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.tracdap.metadata.Value:\x02\x38\x01\x1aL\n\x0bInputsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector:\x02\x38\x01\x1aM\n\x0cOutputsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector:\x02\x38\x01\x1aR\n\x11PriorOutputsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector:\x02\x38\x01\"\xae\x06\n\nRunFlowJob\x12+\n\x04\x66low\x18\x01 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector\x12@\n\nparameters\x18\x02 \x03(\x0b\x32,.tracdap.metadata.RunFlowJob.ParametersEntry\x12\x38\n\x06inputs\x18\x03 \x03(\x0b\x32(.tracdap.metadata.RunFlowJob.InputsEntry\x12:\n\x07outputs\x18\x04 \x03(\x0b\x32).tracdap.metadata.RunFlowJob.OutputsEntry\x12\x44\n\x0cpriorOutputs\x18\x05 \x03(\x0b\x32..tracdap.metadata.RunFlowJob.PriorOutputsEntry\x12\x38\n\x06models\x18\x06 \x03(\x0b\x32(.tracdap.metadata.RunFlowJob.ModelsEntry\x12\x30\n\x0boutputAttrs\x18\x07 \x03(\x0b\x32\x1b.tracdap.metadata.TagUpdate\x1aJ\n\x0fParametersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.tracdap.metadata.Value:\x02\x38\x01\x1aL\n\x0bInputsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector:\x02\x38\x01\x1aM\n\x0cOutputsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector:\x02\x38\x01\x1aR\n\x11PriorOutputsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector:\x02\x38\x01\x1aL\n\x0bModelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector:\x02\x38\x01\"\xd7\x01\n\x0eImportModelJob\x12\x10\n\x08language\x18\x01 \x01(\t\x12\x12\n\nrepository\x18\x02 \x01(\t\x12\x19\n\x0cpackageGroup\x18\x07 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x07package\x18\x08 \x01(\t\x12\x0f\n\x07version\x18\x05 \x01(\t\x12\x12\n\nentryPoint\x18\x04 \x01(\t\x12\x0c\n\x04path\x18\x03 \x01(\t\x12/\n\nmodelAttrs\x18\x06 \x03(\x0b\x32\x1b.tracdap.metadata.TagUpdateB\x0f\n\r_packageGroup*_\n\x07JobType\x12\x14\n\x10JOB_TYPE_NOT_SET\x10\x00\x12\r\n\tRUN_MODEL\x10\x01\x12\x0c\n\x08RUN_FLOW\x10\x02\x12\x10\n\x0cIMPORT_MODEL\x10\x03\x12\x0f\n\x0bIMPORT_DATA\x10\x04*\xb8\x01\n\rJobStatusCode\x12\x1b\n\x17JOB_STATUS_CODE_NOT_SET\x10\x00\x12\r\n\tPREPARING\x10\x01\x12\r\n\tVALIDATED\x10\x02\x12\x0b\n\x07PENDING\x10\x03\x12\n\n\x06QUEUED\x10\x04\x12\r\n\tSUBMITTED\x10\x05\x12\x0b\n\x07RUNNING\x10\x06\x12\r\n\tFINISHING\x10\x07\x12\r\n\tSUCCEEDED\x10\x08\x12\n\n\x06\x46\x41ILED\x10\t\x12\r\n\tCANCELLED\x10\nB\x1e\n\x1aorg.finos.tracdap.metadataP\x01\x62\x06proto3')
20
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n0tracdap/rt/_impl/grpc/tracdap/metadata/job.proto\x12\x10tracdap.metadata\x1a\x31tracdap/rt/_impl/grpc/tracdap/metadata/type.proto\x1a\x36tracdap/rt/_impl/grpc/tracdap/metadata/object_id.proto\x1a\x37tracdap/rt/_impl/grpc/tracdap/metadata/tag_update.proto\"\xd4\x02\n\rJobDefinition\x12*\n\x07jobType\x18\x01 \x01(\x0e\x32\x19.tracdap.metadata.JobType\x12\x31\n\x08runModel\x18\x02 \x01(\x0b\x32\x1d.tracdap.metadata.RunModelJobH\x00\x12/\n\x07runFlow\x18\x03 \x01(\x0b\x32\x1c.tracdap.metadata.RunFlowJobH\x00\x12\x37\n\x0bimportModel\x18\x04 \x01(\x0b\x32 .tracdap.metadata.ImportModelJobH\x00\x12\x35\n\nimportData\x18\x05 \x01(\x0b\x32\x1f.tracdap.metadata.ImportDataJobH\x00\x12\x35\n\nexportData\x18\x06 \x01(\x0b\x32\x1f.tracdap.metadata.ExportDataJobH\x00\x42\x0c\n\njobDetails\"\xac\x05\n\x0bRunModelJob\x12,\n\x05model\x18\x01 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector\x12\x41\n\nparameters\x18\x02 \x03(\x0b\x32-.tracdap.metadata.RunModelJob.ParametersEntry\x12\x39\n\x06inputs\x18\x03 \x03(\x0b\x32).tracdap.metadata.RunModelJob.InputsEntry\x12;\n\x07outputs\x18\x04 \x03(\x0b\x32*.tracdap.metadata.RunModelJob.OutputsEntry\x12\x45\n\x0cpriorOutputs\x18\x05 \x03(\x0b\x32/.tracdap.metadata.RunModelJob.PriorOutputsEntry\x12\x30\n\x0boutputAttrs\x18\x06 \x03(\x0b\x32\x1b.tracdap.metadata.TagUpdate\x1aJ\n\x0fParametersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.tracdap.metadata.Value:\x02\x38\x01\x1aL\n\x0bInputsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector:\x02\x38\x01\x1aM\n\x0cOutputsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector:\x02\x38\x01\x1aR\n\x11PriorOutputsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector:\x02\x38\x01\"\xae\x06\n\nRunFlowJob\x12+\n\x04\x66low\x18\x01 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector\x12@\n\nparameters\x18\x02 \x03(\x0b\x32,.tracdap.metadata.RunFlowJob.ParametersEntry\x12\x38\n\x06inputs\x18\x03 \x03(\x0b\x32(.tracdap.metadata.RunFlowJob.InputsEntry\x12:\n\x07outputs\x18\x04 \x03(\x0b\x32).tracdap.metadata.RunFlowJob.OutputsEntry\x12\x44\n\x0cpriorOutputs\x18\x05 \x03(\x0b\x32..tracdap.metadata.RunFlowJob.PriorOutputsEntry\x12\x38\n\x06models\x18\x06 \x03(\x0b\x32(.tracdap.metadata.RunFlowJob.ModelsEntry\x12\x30\n\x0boutputAttrs\x18\x07 \x03(\x0b\x32\x1b.tracdap.metadata.TagUpdate\x1aJ\n\x0fParametersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.tracdap.metadata.Value:\x02\x38\x01\x1aL\n\x0bInputsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector:\x02\x38\x01\x1aM\n\x0cOutputsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector:\x02\x38\x01\x1aR\n\x11PriorOutputsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector:\x02\x38\x01\x1aL\n\x0bModelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector:\x02\x38\x01\"\xd7\x01\n\x0eImportModelJob\x12\x10\n\x08language\x18\x01 \x01(\t\x12\x12\n\nrepository\x18\x02 \x01(\t\x12\x19\n\x0cpackageGroup\x18\x07 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x07package\x18\x08 \x01(\t\x12\x0f\n\x07version\x18\x05 \x01(\t\x12\x12\n\nentryPoint\x18\x04 \x01(\t\x12\x0c\n\x04path\x18\x03 \x01(\t\x12/\n\nmodelAttrs\x18\x06 \x03(\x0b\x32\x1b.tracdap.metadata.TagUpdateB\x0f\n\r_packageGroup\"\x8d\x07\n\rImportDataJob\x12,\n\x05model\x18\x01 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector\x12\x43\n\nparameters\x18\x02 \x03(\x0b\x32/.tracdap.metadata.ImportDataJob.ParametersEntry\x12;\n\x06inputs\x18\x03 \x03(\x0b\x32+.tracdap.metadata.ImportDataJob.InputsEntry\x12=\n\x07outputs\x18\x04 \x03(\x0b\x32,.tracdap.metadata.ImportDataJob.OutputsEntry\x12G\n\x0cpriorOutputs\x18\x05 \x03(\x0b\x32\x31.tracdap.metadata.ImportDataJob.PriorOutputsEntry\x12\x15\n\rstorageAccess\x18\x06 \x03(\t\x12=\n\x07imports\x18\x07 \x03(\x0b\x32,.tracdap.metadata.ImportDataJob.ImportsEntry\x12\x30\n\x0boutputAttrs\x18\x08 \x03(\x0b\x32\x1b.tracdap.metadata.TagUpdate\x12\x30\n\x0bimportAttrs\x18\t \x03(\x0b\x32\x1b.tracdap.metadata.TagUpdate\x1aJ\n\x0fParametersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.tracdap.metadata.Value:\x02\x38\x01\x1aL\n\x0bInputsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector:\x02\x38\x01\x1aM\n\x0cOutputsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector:\x02\x38\x01\x1aR\n\x11PriorOutputsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector:\x02\x38\x01\x1aM\n\x0cImportsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector:\x02\x38\x01\"\xdb\x06\n\rExportDataJob\x12,\n\x05model\x18\x01 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector\x12\x43\n\nparameters\x18\x02 \x03(\x0b\x32/.tracdap.metadata.ExportDataJob.ParametersEntry\x12;\n\x06inputs\x18\x03 \x03(\x0b\x32+.tracdap.metadata.ExportDataJob.InputsEntry\x12=\n\x07outputs\x18\x04 \x03(\x0b\x32,.tracdap.metadata.ExportDataJob.OutputsEntry\x12G\n\x0cpriorOutputs\x18\x05 \x03(\x0b\x32\x31.tracdap.metadata.ExportDataJob.PriorOutputsEntry\x12\x15\n\rstorageAccess\x18\x06 \x03(\t\x12=\n\x07\x65xports\x18\x07 \x03(\x0b\x32,.tracdap.metadata.ExportDataJob.ExportsEntry\x12\x30\n\x0boutputAttrs\x18\x08 \x03(\x0b\x32\x1b.tracdap.metadata.TagUpdate\x1aJ\n\x0fParametersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.tracdap.metadata.Value:\x02\x38\x01\x1aL\n\x0bInputsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector:\x02\x38\x01\x1aM\n\x0cOutputsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector:\x02\x38\x01\x1aR\n\x11PriorOutputsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector:\x02\x38\x01\x1aM\n\x0c\x45xportsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector:\x02\x38\x01*p\n\x07JobType\x12\x14\n\x10JOB_TYPE_NOT_SET\x10\x00\x12\r\n\tRUN_MODEL\x10\x01\x12\x0c\n\x08RUN_FLOW\x10\x02\x12\x10\n\x0cIMPORT_MODEL\x10\x03\x12\x0f\n\x0bIMPORT_DATA\x10\x04\x12\x0f\n\x0b\x45XPORT_DATA\x10\x05*\xb8\x01\n\rJobStatusCode\x12\x1b\n\x17JOB_STATUS_CODE_NOT_SET\x10\x00\x12\r\n\tPREPARING\x10\x01\x12\r\n\tVALIDATED\x10\x02\x12\x0b\n\x07PENDING\x10\x03\x12\n\n\x06QUEUED\x10\x04\x12\r\n\tSUBMITTED\x10\x05\x12\x0b\n\x07RUNNING\x10\x06\x12\r\n\tFINISHING\x10\x07\x12\r\n\tSUCCEEDED\x10\x08\x12\n\n\x06\x46\x41ILED\x10\t\x12\r\n\tCANCELLED\x10\nB\x1e\n\x1aorg.finos.tracdap.metadataP\x01\x62\x06proto3')
21
21
 
22
22
  _globals = globals()
23
23
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -43,34 +43,78 @@ if _descriptor._USE_C_DESCRIPTORS == False:
43
43
  _globals['_RUNFLOWJOB_PRIOROUTPUTSENTRY']._serialized_options = b'8\001'
44
44
  _globals['_RUNFLOWJOB_MODELSENTRY']._options = None
45
45
  _globals['_RUNFLOWJOB_MODELSENTRY']._serialized_options = b'8\001'
46
- _globals['_JOBTYPE']._serialized_start=2189
47
- _globals['_JOBTYPE']._serialized_end=2284
48
- _globals['_JOBSTATUSCODE']._serialized_start=2287
49
- _globals['_JOBSTATUSCODE']._serialized_end=2471
46
+ _globals['_IMPORTDATAJOB_PARAMETERSENTRY']._options = None
47
+ _globals['_IMPORTDATAJOB_PARAMETERSENTRY']._serialized_options = b'8\001'
48
+ _globals['_IMPORTDATAJOB_INPUTSENTRY']._options = None
49
+ _globals['_IMPORTDATAJOB_INPUTSENTRY']._serialized_options = b'8\001'
50
+ _globals['_IMPORTDATAJOB_OUTPUTSENTRY']._options = None
51
+ _globals['_IMPORTDATAJOB_OUTPUTSENTRY']._serialized_options = b'8\001'
52
+ _globals['_IMPORTDATAJOB_PRIOROUTPUTSENTRY']._options = None
53
+ _globals['_IMPORTDATAJOB_PRIOROUTPUTSENTRY']._serialized_options = b'8\001'
54
+ _globals['_IMPORTDATAJOB_IMPORTSENTRY']._options = None
55
+ _globals['_IMPORTDATAJOB_IMPORTSENTRY']._serialized_options = b'8\001'
56
+ _globals['_EXPORTDATAJOB_PARAMETERSENTRY']._options = None
57
+ _globals['_EXPORTDATAJOB_PARAMETERSENTRY']._serialized_options = b'8\001'
58
+ _globals['_EXPORTDATAJOB_INPUTSENTRY']._options = None
59
+ _globals['_EXPORTDATAJOB_INPUTSENTRY']._serialized_options = b'8\001'
60
+ _globals['_EXPORTDATAJOB_OUTPUTSENTRY']._options = None
61
+ _globals['_EXPORTDATAJOB_OUTPUTSENTRY']._serialized_options = b'8\001'
62
+ _globals['_EXPORTDATAJOB_PRIOROUTPUTSENTRY']._options = None
63
+ _globals['_EXPORTDATAJOB_PRIOROUTPUTSENTRY']._serialized_options = b'8\001'
64
+ _globals['_EXPORTDATAJOB_EXPORTSENTRY']._options = None
65
+ _globals['_EXPORTDATAJOB_EXPORTSENTRY']._serialized_options = b'8\001'
66
+ _globals['_JOBTYPE']._serialized_start=4073
67
+ _globals['_JOBTYPE']._serialized_end=4185
68
+ _globals['_JOBSTATUSCODE']._serialized_start=4188
69
+ _globals['_JOBSTATUSCODE']._serialized_end=4372
50
70
  _globals['_JOBDEFINITION']._serialized_start=235
51
- _globals['_JOBDEFINITION']._serialized_end=465
52
- _globals['_RUNMODELJOB']._serialized_start=468
53
- _globals['_RUNMODELJOB']._serialized_end=1152
54
- _globals['_RUNMODELJOB_PARAMETERSENTRY']._serialized_start=837
55
- _globals['_RUNMODELJOB_PARAMETERSENTRY']._serialized_end=911
56
- _globals['_RUNMODELJOB_INPUTSENTRY']._serialized_start=913
57
- _globals['_RUNMODELJOB_INPUTSENTRY']._serialized_end=989
58
- _globals['_RUNMODELJOB_OUTPUTSENTRY']._serialized_start=991
59
- _globals['_RUNMODELJOB_OUTPUTSENTRY']._serialized_end=1068
60
- _globals['_RUNMODELJOB_PRIOROUTPUTSENTRY']._serialized_start=1070
61
- _globals['_RUNMODELJOB_PRIOROUTPUTSENTRY']._serialized_end=1152
62
- _globals['_RUNFLOWJOB']._serialized_start=1155
63
- _globals['_RUNFLOWJOB']._serialized_end=1969
64
- _globals['_RUNFLOWJOB_PARAMETERSENTRY']._serialized_start=837
65
- _globals['_RUNFLOWJOB_PARAMETERSENTRY']._serialized_end=911
66
- _globals['_RUNFLOWJOB_INPUTSENTRY']._serialized_start=913
67
- _globals['_RUNFLOWJOB_INPUTSENTRY']._serialized_end=989
68
- _globals['_RUNFLOWJOB_OUTPUTSENTRY']._serialized_start=991
69
- _globals['_RUNFLOWJOB_OUTPUTSENTRY']._serialized_end=1068
70
- _globals['_RUNFLOWJOB_PRIOROUTPUTSENTRY']._serialized_start=1070
71
- _globals['_RUNFLOWJOB_PRIOROUTPUTSENTRY']._serialized_end=1152
72
- _globals['_RUNFLOWJOB_MODELSENTRY']._serialized_start=1893
73
- _globals['_RUNFLOWJOB_MODELSENTRY']._serialized_end=1969
74
- _globals['_IMPORTMODELJOB']._serialized_start=1972
75
- _globals['_IMPORTMODELJOB']._serialized_end=2187
71
+ _globals['_JOBDEFINITION']._serialized_end=575
72
+ _globals['_RUNMODELJOB']._serialized_start=578
73
+ _globals['_RUNMODELJOB']._serialized_end=1262
74
+ _globals['_RUNMODELJOB_PARAMETERSENTRY']._serialized_start=947
75
+ _globals['_RUNMODELJOB_PARAMETERSENTRY']._serialized_end=1021
76
+ _globals['_RUNMODELJOB_INPUTSENTRY']._serialized_start=1023
77
+ _globals['_RUNMODELJOB_INPUTSENTRY']._serialized_end=1099
78
+ _globals['_RUNMODELJOB_OUTPUTSENTRY']._serialized_start=1101
79
+ _globals['_RUNMODELJOB_OUTPUTSENTRY']._serialized_end=1178
80
+ _globals['_RUNMODELJOB_PRIOROUTPUTSENTRY']._serialized_start=1180
81
+ _globals['_RUNMODELJOB_PRIOROUTPUTSENTRY']._serialized_end=1262
82
+ _globals['_RUNFLOWJOB']._serialized_start=1265
83
+ _globals['_RUNFLOWJOB']._serialized_end=2079
84
+ _globals['_RUNFLOWJOB_PARAMETERSENTRY']._serialized_start=947
85
+ _globals['_RUNFLOWJOB_PARAMETERSENTRY']._serialized_end=1021
86
+ _globals['_RUNFLOWJOB_INPUTSENTRY']._serialized_start=1023
87
+ _globals['_RUNFLOWJOB_INPUTSENTRY']._serialized_end=1099
88
+ _globals['_RUNFLOWJOB_OUTPUTSENTRY']._serialized_start=1101
89
+ _globals['_RUNFLOWJOB_OUTPUTSENTRY']._serialized_end=1178
90
+ _globals['_RUNFLOWJOB_PRIOROUTPUTSENTRY']._serialized_start=1180
91
+ _globals['_RUNFLOWJOB_PRIOROUTPUTSENTRY']._serialized_end=1262
92
+ _globals['_RUNFLOWJOB_MODELSENTRY']._serialized_start=2003
93
+ _globals['_RUNFLOWJOB_MODELSENTRY']._serialized_end=2079
94
+ _globals['_IMPORTMODELJOB']._serialized_start=2082
95
+ _globals['_IMPORTMODELJOB']._serialized_end=2297
96
+ _globals['_IMPORTDATAJOB']._serialized_start=2300
97
+ _globals['_IMPORTDATAJOB']._serialized_end=3209
98
+ _globals['_IMPORTDATAJOB_PARAMETERSENTRY']._serialized_start=947
99
+ _globals['_IMPORTDATAJOB_PARAMETERSENTRY']._serialized_end=1021
100
+ _globals['_IMPORTDATAJOB_INPUTSENTRY']._serialized_start=1023
101
+ _globals['_IMPORTDATAJOB_INPUTSENTRY']._serialized_end=1099
102
+ _globals['_IMPORTDATAJOB_OUTPUTSENTRY']._serialized_start=1101
103
+ _globals['_IMPORTDATAJOB_OUTPUTSENTRY']._serialized_end=1178
104
+ _globals['_IMPORTDATAJOB_PRIOROUTPUTSENTRY']._serialized_start=1180
105
+ _globals['_IMPORTDATAJOB_PRIOROUTPUTSENTRY']._serialized_end=1262
106
+ _globals['_IMPORTDATAJOB_IMPORTSENTRY']._serialized_start=3132
107
+ _globals['_IMPORTDATAJOB_IMPORTSENTRY']._serialized_end=3209
108
+ _globals['_EXPORTDATAJOB']._serialized_start=3212
109
+ _globals['_EXPORTDATAJOB']._serialized_end=4071
110
+ _globals['_EXPORTDATAJOB_PARAMETERSENTRY']._serialized_start=947
111
+ _globals['_EXPORTDATAJOB_PARAMETERSENTRY']._serialized_end=1021
112
+ _globals['_EXPORTDATAJOB_INPUTSENTRY']._serialized_start=1023
113
+ _globals['_EXPORTDATAJOB_INPUTSENTRY']._serialized_end=1099
114
+ _globals['_EXPORTDATAJOB_OUTPUTSENTRY']._serialized_start=1101
115
+ _globals['_EXPORTDATAJOB_OUTPUTSENTRY']._serialized_end=1178
116
+ _globals['_EXPORTDATAJOB_PRIOROUTPUTSENTRY']._serialized_start=1180
117
+ _globals['_EXPORTDATAJOB_PRIOROUTPUTSENTRY']._serialized_end=1262
118
+ _globals['_EXPORTDATAJOB_EXPORTSENTRY']._serialized_start=3994
119
+ _globals['_EXPORTDATAJOB_EXPORTSENTRY']._serialized_end=4071
76
120
  # @@protoc_insertion_point(module_scope)
@@ -16,6 +16,7 @@ class JobType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
16
16
  RUN_FLOW: _ClassVar[JobType]
17
17
  IMPORT_MODEL: _ClassVar[JobType]
18
18
  IMPORT_DATA: _ClassVar[JobType]
19
+ EXPORT_DATA: _ClassVar[JobType]
19
20
 
20
21
  class JobStatusCode(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
21
22
  __slots__ = ()
@@ -35,6 +36,7 @@ RUN_MODEL: JobType
35
36
  RUN_FLOW: JobType
36
37
  IMPORT_MODEL: JobType
37
38
  IMPORT_DATA: JobType
39
+ EXPORT_DATA: JobType
38
40
  JOB_STATUS_CODE_NOT_SET: JobStatusCode
39
41
  PREPARING: JobStatusCode
40
42
  VALIDATED: JobStatusCode
@@ -48,16 +50,20 @@ FAILED: JobStatusCode
48
50
  CANCELLED: JobStatusCode
49
51
 
50
52
  class JobDefinition(_message.Message):
51
- __slots__ = ("jobType", "runModel", "runFlow", "importModel")
53
+ __slots__ = ("jobType", "runModel", "runFlow", "importModel", "importData", "exportData")
52
54
  JOBTYPE_FIELD_NUMBER: _ClassVar[int]
53
55
  RUNMODEL_FIELD_NUMBER: _ClassVar[int]
54
56
  RUNFLOW_FIELD_NUMBER: _ClassVar[int]
55
57
  IMPORTMODEL_FIELD_NUMBER: _ClassVar[int]
58
+ IMPORTDATA_FIELD_NUMBER: _ClassVar[int]
59
+ EXPORTDATA_FIELD_NUMBER: _ClassVar[int]
56
60
  jobType: JobType
57
61
  runModel: RunModelJob
58
62
  runFlow: RunFlowJob
59
63
  importModel: ImportModelJob
60
- def __init__(self, jobType: _Optional[_Union[JobType, str]] = ..., runModel: _Optional[_Union[RunModelJob, _Mapping]] = ..., runFlow: _Optional[_Union[RunFlowJob, _Mapping]] = ..., importModel: _Optional[_Union[ImportModelJob, _Mapping]] = ...) -> None: ...
64
+ importData: ImportDataJob
65
+ exportData: ExportDataJob
66
+ def __init__(self, jobType: _Optional[_Union[JobType, str]] = ..., runModel: _Optional[_Union[RunModelJob, _Mapping]] = ..., runFlow: _Optional[_Union[RunFlowJob, _Mapping]] = ..., importModel: _Optional[_Union[ImportModelJob, _Mapping]] = ..., importData: _Optional[_Union[ImportDataJob, _Mapping]] = ..., exportData: _Optional[_Union[ExportDataJob, _Mapping]] = ...) -> None: ...
61
67
 
62
68
  class RunModelJob(_message.Message):
63
69
  __slots__ = ("model", "parameters", "inputs", "outputs", "priorOutputs", "outputAttrs")
@@ -175,3 +181,115 @@ class ImportModelJob(_message.Message):
175
181
  path: str
176
182
  modelAttrs: _containers.RepeatedCompositeFieldContainer[_tag_update_pb2.TagUpdate]
177
183
  def __init__(self, language: _Optional[str] = ..., repository: _Optional[str] = ..., packageGroup: _Optional[str] = ..., package: _Optional[str] = ..., version: _Optional[str] = ..., entryPoint: _Optional[str] = ..., path: _Optional[str] = ..., modelAttrs: _Optional[_Iterable[_Union[_tag_update_pb2.TagUpdate, _Mapping]]] = ...) -> None: ...
184
+
185
+ class ImportDataJob(_message.Message):
186
+ __slots__ = ("model", "parameters", "inputs", "outputs", "priorOutputs", "storageAccess", "imports", "outputAttrs", "importAttrs")
187
+ class ParametersEntry(_message.Message):
188
+ __slots__ = ("key", "value")
189
+ KEY_FIELD_NUMBER: _ClassVar[int]
190
+ VALUE_FIELD_NUMBER: _ClassVar[int]
191
+ key: str
192
+ value: _type_pb2.Value
193
+ def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[_type_pb2.Value, _Mapping]] = ...) -> None: ...
194
+ class InputsEntry(_message.Message):
195
+ __slots__ = ("key", "value")
196
+ KEY_FIELD_NUMBER: _ClassVar[int]
197
+ VALUE_FIELD_NUMBER: _ClassVar[int]
198
+ key: str
199
+ value: _object_id_pb2.TagSelector
200
+ def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[_object_id_pb2.TagSelector, _Mapping]] = ...) -> None: ...
201
+ class OutputsEntry(_message.Message):
202
+ __slots__ = ("key", "value")
203
+ KEY_FIELD_NUMBER: _ClassVar[int]
204
+ VALUE_FIELD_NUMBER: _ClassVar[int]
205
+ key: str
206
+ value: _object_id_pb2.TagSelector
207
+ def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[_object_id_pb2.TagSelector, _Mapping]] = ...) -> None: ...
208
+ class PriorOutputsEntry(_message.Message):
209
+ __slots__ = ("key", "value")
210
+ KEY_FIELD_NUMBER: _ClassVar[int]
211
+ VALUE_FIELD_NUMBER: _ClassVar[int]
212
+ key: str
213
+ value: _object_id_pb2.TagSelector
214
+ def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[_object_id_pb2.TagSelector, _Mapping]] = ...) -> None: ...
215
+ class ImportsEntry(_message.Message):
216
+ __slots__ = ("key", "value")
217
+ KEY_FIELD_NUMBER: _ClassVar[int]
218
+ VALUE_FIELD_NUMBER: _ClassVar[int]
219
+ key: str
220
+ value: _object_id_pb2.TagSelector
221
+ def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[_object_id_pb2.TagSelector, _Mapping]] = ...) -> None: ...
222
+ MODEL_FIELD_NUMBER: _ClassVar[int]
223
+ PARAMETERS_FIELD_NUMBER: _ClassVar[int]
224
+ INPUTS_FIELD_NUMBER: _ClassVar[int]
225
+ OUTPUTS_FIELD_NUMBER: _ClassVar[int]
226
+ PRIOROUTPUTS_FIELD_NUMBER: _ClassVar[int]
227
+ STORAGEACCESS_FIELD_NUMBER: _ClassVar[int]
228
+ IMPORTS_FIELD_NUMBER: _ClassVar[int]
229
+ OUTPUTATTRS_FIELD_NUMBER: _ClassVar[int]
230
+ IMPORTATTRS_FIELD_NUMBER: _ClassVar[int]
231
+ model: _object_id_pb2.TagSelector
232
+ parameters: _containers.MessageMap[str, _type_pb2.Value]
233
+ inputs: _containers.MessageMap[str, _object_id_pb2.TagSelector]
234
+ outputs: _containers.MessageMap[str, _object_id_pb2.TagSelector]
235
+ priorOutputs: _containers.MessageMap[str, _object_id_pb2.TagSelector]
236
+ storageAccess: _containers.RepeatedScalarFieldContainer[str]
237
+ imports: _containers.MessageMap[str, _object_id_pb2.TagSelector]
238
+ outputAttrs: _containers.RepeatedCompositeFieldContainer[_tag_update_pb2.TagUpdate]
239
+ importAttrs: _containers.RepeatedCompositeFieldContainer[_tag_update_pb2.TagUpdate]
240
+ def __init__(self, model: _Optional[_Union[_object_id_pb2.TagSelector, _Mapping]] = ..., parameters: _Optional[_Mapping[str, _type_pb2.Value]] = ..., inputs: _Optional[_Mapping[str, _object_id_pb2.TagSelector]] = ..., outputs: _Optional[_Mapping[str, _object_id_pb2.TagSelector]] = ..., priorOutputs: _Optional[_Mapping[str, _object_id_pb2.TagSelector]] = ..., storageAccess: _Optional[_Iterable[str]] = ..., imports: _Optional[_Mapping[str, _object_id_pb2.TagSelector]] = ..., outputAttrs: _Optional[_Iterable[_Union[_tag_update_pb2.TagUpdate, _Mapping]]] = ..., importAttrs: _Optional[_Iterable[_Union[_tag_update_pb2.TagUpdate, _Mapping]]] = ...) -> None: ...
241
+
242
+ class ExportDataJob(_message.Message):
243
+ __slots__ = ("model", "parameters", "inputs", "outputs", "priorOutputs", "storageAccess", "exports", "outputAttrs")
244
+ class ParametersEntry(_message.Message):
245
+ __slots__ = ("key", "value")
246
+ KEY_FIELD_NUMBER: _ClassVar[int]
247
+ VALUE_FIELD_NUMBER: _ClassVar[int]
248
+ key: str
249
+ value: _type_pb2.Value
250
+ def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[_type_pb2.Value, _Mapping]] = ...) -> None: ...
251
+ class InputsEntry(_message.Message):
252
+ __slots__ = ("key", "value")
253
+ KEY_FIELD_NUMBER: _ClassVar[int]
254
+ VALUE_FIELD_NUMBER: _ClassVar[int]
255
+ key: str
256
+ value: _object_id_pb2.TagSelector
257
+ def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[_object_id_pb2.TagSelector, _Mapping]] = ...) -> None: ...
258
+ class OutputsEntry(_message.Message):
259
+ __slots__ = ("key", "value")
260
+ KEY_FIELD_NUMBER: _ClassVar[int]
261
+ VALUE_FIELD_NUMBER: _ClassVar[int]
262
+ key: str
263
+ value: _object_id_pb2.TagSelector
264
+ def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[_object_id_pb2.TagSelector, _Mapping]] = ...) -> None: ...
265
+ class PriorOutputsEntry(_message.Message):
266
+ __slots__ = ("key", "value")
267
+ KEY_FIELD_NUMBER: _ClassVar[int]
268
+ VALUE_FIELD_NUMBER: _ClassVar[int]
269
+ key: str
270
+ value: _object_id_pb2.TagSelector
271
+ def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[_object_id_pb2.TagSelector, _Mapping]] = ...) -> None: ...
272
+ class ExportsEntry(_message.Message):
273
+ __slots__ = ("key", "value")
274
+ KEY_FIELD_NUMBER: _ClassVar[int]
275
+ VALUE_FIELD_NUMBER: _ClassVar[int]
276
+ key: str
277
+ value: _object_id_pb2.TagSelector
278
+ def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[_object_id_pb2.TagSelector, _Mapping]] = ...) -> None: ...
279
+ MODEL_FIELD_NUMBER: _ClassVar[int]
280
+ PARAMETERS_FIELD_NUMBER: _ClassVar[int]
281
+ INPUTS_FIELD_NUMBER: _ClassVar[int]
282
+ OUTPUTS_FIELD_NUMBER: _ClassVar[int]
283
+ PRIOROUTPUTS_FIELD_NUMBER: _ClassVar[int]
284
+ STORAGEACCESS_FIELD_NUMBER: _ClassVar[int]
285
+ EXPORTS_FIELD_NUMBER: _ClassVar[int]
286
+ OUTPUTATTRS_FIELD_NUMBER: _ClassVar[int]
287
+ model: _object_id_pb2.TagSelector
288
+ parameters: _containers.MessageMap[str, _type_pb2.Value]
289
+ inputs: _containers.MessageMap[str, _object_id_pb2.TagSelector]
290
+ outputs: _containers.MessageMap[str, _object_id_pb2.TagSelector]
291
+ priorOutputs: _containers.MessageMap[str, _object_id_pb2.TagSelector]
292
+ storageAccess: _containers.RepeatedScalarFieldContainer[str]
293
+ exports: _containers.MessageMap[str, _object_id_pb2.TagSelector]
294
+ outputAttrs: _containers.RepeatedCompositeFieldContainer[_tag_update_pb2.TagUpdate]
295
+ def __init__(self, model: _Optional[_Union[_object_id_pb2.TagSelector, _Mapping]] = ..., parameters: _Optional[_Mapping[str, _type_pb2.Value]] = ..., inputs: _Optional[_Mapping[str, _object_id_pb2.TagSelector]] = ..., outputs: _Optional[_Mapping[str, _object_id_pb2.TagSelector]] = ..., priorOutputs: _Optional[_Mapping[str, _object_id_pb2.TagSelector]] = ..., storageAccess: _Optional[_Iterable[str]] = ..., exports: _Optional[_Mapping[str, _object_id_pb2.TagSelector]] = ..., outputAttrs: _Optional[_Iterable[_Union[_tag_update_pb2.TagUpdate, _Mapping]]] = ...) -> None: ...
@@ -16,7 +16,7 @@ from tracdap.rt._impl.grpc.tracdap.metadata import type_pb2 as tracdap_dot_rt_do
16
16
  from tracdap.rt._impl.grpc.tracdap.metadata import data_pb2 as tracdap_dot_rt_dot___impl_dot_grpc_dot_tracdap_dot_metadata_dot_data__pb2
17
17
 
18
18
 
19
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n2tracdap/rt/_impl/grpc/tracdap/metadata/model.proto\x12\x10tracdap.metadata\x1a\x31tracdap/rt/_impl/grpc/tracdap/metadata/type.proto\x1a\x31tracdap/rt/_impl/grpc/tracdap/metadata/data.proto\"\xab\x02\n\x0eModelParameter\x12\x33\n\tparamType\x18\x01 \x01(\x0b\x32 .tracdap.metadata.TypeDescriptor\x12\r\n\x05label\x18\x02 \x01(\t\x12\x32\n\x0c\x64\x65\x66\x61ultValue\x18\x03 \x01(\x0b\x32\x17.tracdap.metadata.ValueH\x00\x88\x01\x01\x12\x44\n\nparamProps\x18\x04 \x03(\x0b\x32\x30.tracdap.metadata.ModelParameter.ParamPropsEntry\x1aJ\n\x0fParamPropsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.tracdap.metadata.Value:\x02\x38\x01\x42\x0f\n\r_defaultValue\"\x9b\x02\n\x10ModelInputSchema\x12\x32\n\x06schema\x18\x01 \x01(\x0b\x32\".tracdap.metadata.SchemaDefinition\x12\x12\n\x05label\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x08optional\x18\x03 \x01(\x08\x12\x0f\n\x07\x64ynamic\x18\x05 \x01(\x08\x12\x46\n\ninputProps\x18\x04 \x03(\x0b\x32\x32.tracdap.metadata.ModelInputSchema.InputPropsEntry\x1aJ\n\x0fInputPropsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.tracdap.metadata.Value:\x02\x38\x01\x42\x08\n\x06_label\"\xa0\x02\n\x11ModelOutputSchema\x12\x32\n\x06schema\x18\x01 \x01(\x0b\x32\".tracdap.metadata.SchemaDefinition\x12\x12\n\x05label\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x08optional\x18\x03 \x01(\x08\x12\x0f\n\x07\x64ynamic\x18\x05 \x01(\x08\x12I\n\x0boutputProps\x18\x04 \x03(\x0b\x32\x34.tracdap.metadata.ModelOutputSchema.OutputPropsEntry\x1aK\n\x10OutputPropsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.tracdap.metadata.Value:\x02\x38\x01\x42\x08\n\x06_label\"\x9e\x06\n\x0fModelDefinition\x12\x10\n\x08language\x18\x01 \x01(\t\x12\x12\n\nrepository\x18\x02 \x01(\t\x12\x19\n\x0cpackageGroup\x18\n \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x07package\x18\x0b \x01(\t\x12\x0f\n\x07version\x18\x06 \x01(\t\x12\x12\n\nentryPoint\x18\x05 \x01(\t\x12\x11\n\x04path\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x45\n\nparameters\x18\x07 \x03(\x0b\x32\x31.tracdap.metadata.ModelDefinition.ParametersEntry\x12=\n\x06inputs\x18\x08 \x03(\x0b\x32-.tracdap.metadata.ModelDefinition.InputsEntry\x12?\n\x07outputs\x18\t \x03(\x0b\x32..tracdap.metadata.ModelDefinition.OutputsEntry\x12Q\n\x10staticAttributes\x18\x0c \x03(\x0b\x32\x37.tracdap.metadata.ModelDefinition.StaticAttributesEntry\x1aS\n\x0fParametersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12/\n\x05value\x18\x02 \x01(\x0b\x32 .tracdap.metadata.ModelParameter:\x02\x38\x01\x1aQ\n\x0bInputsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x31\n\x05value\x18\x02 \x01(\x0b\x32\".tracdap.metadata.ModelInputSchema:\x02\x38\x01\x1aS\n\x0cOutputsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x32\n\x05value\x18\x02 \x01(\x0b\x32#.tracdap.metadata.ModelOutputSchema:\x02\x38\x01\x1aP\n\x15StaticAttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.tracdap.metadata.Value:\x02\x38\x01\x42\x0f\n\r_packageGroupB\x07\n\x05_pathB\x1e\n\x1aorg.finos.tracdap.metadataP\x01\x62\x06proto3')
19
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n2tracdap/rt/_impl/grpc/tracdap/metadata/model.proto\x12\x10tracdap.metadata\x1a\x31tracdap/rt/_impl/grpc/tracdap/metadata/type.proto\x1a\x31tracdap/rt/_impl/grpc/tracdap/metadata/data.proto\"\xab\x02\n\x0eModelParameter\x12\x33\n\tparamType\x18\x01 \x01(\x0b\x32 .tracdap.metadata.TypeDescriptor\x12\r\n\x05label\x18\x02 \x01(\t\x12\x32\n\x0c\x64\x65\x66\x61ultValue\x18\x03 \x01(\x0b\x32\x17.tracdap.metadata.ValueH\x00\x88\x01\x01\x12\x44\n\nparamProps\x18\x04 \x03(\x0b\x32\x30.tracdap.metadata.ModelParameter.ParamPropsEntry\x1aJ\n\x0fParamPropsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.tracdap.metadata.Value:\x02\x38\x01\x42\x0f\n\r_defaultValue\"\x9b\x02\n\x10ModelInputSchema\x12\x32\n\x06schema\x18\x01 \x01(\x0b\x32\".tracdap.metadata.SchemaDefinition\x12\x12\n\x05label\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x08optional\x18\x03 \x01(\x08\x12\x0f\n\x07\x64ynamic\x18\x05 \x01(\x08\x12\x46\n\ninputProps\x18\x04 \x03(\x0b\x32\x32.tracdap.metadata.ModelInputSchema.InputPropsEntry\x1aJ\n\x0fInputPropsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.tracdap.metadata.Value:\x02\x38\x01\x42\x08\n\x06_label\"\xa0\x02\n\x11ModelOutputSchema\x12\x32\n\x06schema\x18\x01 \x01(\x0b\x32\".tracdap.metadata.SchemaDefinition\x12\x12\n\x05label\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x08optional\x18\x03 \x01(\x08\x12\x0f\n\x07\x64ynamic\x18\x05 \x01(\x08\x12I\n\x0boutputProps\x18\x04 \x03(\x0b\x32\x34.tracdap.metadata.ModelOutputSchema.OutputPropsEntry\x1aK\n\x10OutputPropsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.tracdap.metadata.Value:\x02\x38\x01\x42\x08\n\x06_label\"\xce\x06\n\x0fModelDefinition\x12\x10\n\x08language\x18\x01 \x01(\t\x12\x12\n\nrepository\x18\x02 \x01(\t\x12\x19\n\x0cpackageGroup\x18\n \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x07package\x18\x0b \x01(\t\x12\x0f\n\x07version\x18\x06 \x01(\t\x12\x12\n\nentryPoint\x18\x05 \x01(\t\x12\x11\n\x04path\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x45\n\nparameters\x18\x07 \x03(\x0b\x32\x31.tracdap.metadata.ModelDefinition.ParametersEntry\x12=\n\x06inputs\x18\x08 \x03(\x0b\x32-.tracdap.metadata.ModelDefinition.InputsEntry\x12?\n\x07outputs\x18\t \x03(\x0b\x32..tracdap.metadata.ModelDefinition.OutputsEntry\x12Q\n\x10staticAttributes\x18\x0c \x03(\x0b\x32\x37.tracdap.metadata.ModelDefinition.StaticAttributesEntry\x12.\n\tmodelType\x18\r \x01(\x0e\x32\x1b.tracdap.metadata.ModelType\x1aS\n\x0fParametersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12/\n\x05value\x18\x02 \x01(\x0b\x32 .tracdap.metadata.ModelParameter:\x02\x38\x01\x1aQ\n\x0bInputsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x31\n\x05value\x18\x02 \x01(\x0b\x32\".tracdap.metadata.ModelInputSchema:\x02\x38\x01\x1aS\n\x0cOutputsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x32\n\x05value\x18\x02 \x01(\x0b\x32#.tracdap.metadata.ModelOutputSchema:\x02\x38\x01\x1aP\n\x15StaticAttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.tracdap.metadata.Value:\x02\x38\x01\x42\x0f\n\r_packageGroupB\x07\n\x05_path*M\n\tModelType\x12\x12\n\x0eSTANDARD_MODEL\x10\x00\x12\x15\n\x11\x44\x41TA_IMPORT_MODEL\x10\x01\x12\x15\n\x11\x44\x41TA_EXPORT_MODEL\x10\x02\x42\x1e\n\x1aorg.finos.tracdap.metadataP\x01\x62\x06proto3')
20
20
 
21
21
  _globals = globals()
22
22
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -38,6 +38,8 @@ if _descriptor._USE_C_DESCRIPTORS == False:
38
38
  _globals['_MODELDEFINITION_OUTPUTSENTRY']._serialized_options = b'8\001'
39
39
  _globals['_MODELDEFINITION_STATICATTRIBUTESENTRY']._options = None
40
40
  _globals['_MODELDEFINITION_STATICATTRIBUTESENTRY']._serialized_options = b'8\001'
41
+ _globals['_MODELTYPE']._serialized_start=1902
42
+ _globals['_MODELTYPE']._serialized_end=1979
41
43
  _globals['_MODELPARAMETER']._serialized_start=175
42
44
  _globals['_MODELPARAMETER']._serialized_end=474
43
45
  _globals['_MODELPARAMETER_PARAMPROPSENTRY']._serialized_start=383
@@ -51,13 +53,13 @@ if _descriptor._USE_C_DESCRIPTORS == False:
51
53
  _globals['_MODELOUTPUTSCHEMA_OUTPUTPROPSENTRY']._serialized_start=966
52
54
  _globals['_MODELOUTPUTSCHEMA_OUTPUTPROPSENTRY']._serialized_end=1041
53
55
  _globals['_MODELDEFINITION']._serialized_start=1054
54
- _globals['_MODELDEFINITION']._serialized_end=1852
55
- _globals['_MODELDEFINITION_PARAMETERSENTRY']._serialized_start=1493
56
- _globals['_MODELDEFINITION_PARAMETERSENTRY']._serialized_end=1576
57
- _globals['_MODELDEFINITION_INPUTSENTRY']._serialized_start=1578
58
- _globals['_MODELDEFINITION_INPUTSENTRY']._serialized_end=1659
59
- _globals['_MODELDEFINITION_OUTPUTSENTRY']._serialized_start=1661
60
- _globals['_MODELDEFINITION_OUTPUTSENTRY']._serialized_end=1744
61
- _globals['_MODELDEFINITION_STATICATTRIBUTESENTRY']._serialized_start=1746
62
- _globals['_MODELDEFINITION_STATICATTRIBUTESENTRY']._serialized_end=1826
56
+ _globals['_MODELDEFINITION']._serialized_end=1900
57
+ _globals['_MODELDEFINITION_PARAMETERSENTRY']._serialized_start=1541
58
+ _globals['_MODELDEFINITION_PARAMETERSENTRY']._serialized_end=1624
59
+ _globals['_MODELDEFINITION_INPUTSENTRY']._serialized_start=1626
60
+ _globals['_MODELDEFINITION_INPUTSENTRY']._serialized_end=1707
61
+ _globals['_MODELDEFINITION_OUTPUTSENTRY']._serialized_start=1709
62
+ _globals['_MODELDEFINITION_OUTPUTSENTRY']._serialized_end=1792
63
+ _globals['_MODELDEFINITION_STATICATTRIBUTESENTRY']._serialized_start=1794
64
+ _globals['_MODELDEFINITION_STATICATTRIBUTESENTRY']._serialized_end=1874
63
65
  # @@protoc_insertion_point(module_scope)