tracdap-runtime 0.8.0rc1__tar.gz → 0.9.0rc1__tar.gz

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 (137) hide show
  1. {tracdap_runtime-0.8.0rc1/tracdap_runtime.egg-info → tracdap_runtime-0.9.0rc1}/PKG-INFO +5 -2
  2. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/setup.cfg +3 -1
  3. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/core/data.py +127 -5
  4. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/core/repos.py +7 -0
  5. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/core/storage.py +10 -3
  6. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/exec/functions.py +2 -2
  7. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/grpc/tracdap/api/internal/runtime_pb2.py +1 -1
  8. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/grpc/tracdap/metadata/common_pb2.py +1 -1
  9. tracdap_runtime-0.9.0rc1/src/tracdap/rt/_impl/grpc/tracdap/metadata/config_pb2.py +40 -0
  10. tracdap_runtime-0.9.0rc1/src/tracdap/rt/_impl/grpc/tracdap/metadata/config_pb2.pyi +62 -0
  11. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/grpc/tracdap/metadata/custom_pb2.py +1 -1
  12. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/grpc/tracdap/metadata/data_pb2.py +1 -1
  13. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/grpc/tracdap/metadata/file_pb2.py +1 -1
  14. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/grpc/tracdap/metadata/flow_pb2.py +1 -1
  15. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/grpc/tracdap/metadata/job_pb2.py +1 -1
  16. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/grpc/tracdap/metadata/model_pb2.py +1 -1
  17. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/grpc/tracdap/metadata/object_id_pb2.py +3 -3
  18. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/grpc/tracdap/metadata/object_id_pb2.pyi +4 -0
  19. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/grpc/tracdap/metadata/object_pb2.py +8 -6
  20. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/grpc/tracdap/metadata/object_pb2.pyi +8 -2
  21. tracdap_runtime-0.9.0rc1/src/tracdap/rt/_impl/grpc/tracdap/metadata/resource_pb2.py +42 -0
  22. tracdap_runtime-0.9.0rc1/src/tracdap/rt/_impl/grpc/tracdap/metadata/resource_pb2.pyi +56 -0
  23. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/grpc/tracdap/metadata/search_pb2.py +1 -1
  24. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/grpc/tracdap/metadata/storage_pb2.py +1 -1
  25. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/grpc/tracdap/metadata/tag_pb2.py +1 -1
  26. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/grpc/tracdap/metadata/tag_update_pb2.py +1 -1
  27. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/grpc/tracdap/metadata/type_pb2.py +1 -1
  28. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/runtime.py +8 -0
  29. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_plugins/repo_git.py +56 -11
  30. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_version.py +1 -1
  31. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/config/__init__.py +6 -4
  32. tracdap_runtime-0.9.0rc1/src/tracdap/rt/config/dynamic.py +28 -0
  33. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/config/runtime.py +2 -0
  34. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/metadata/__init__.py +36 -30
  35. tracdap_runtime-0.9.0rc1/src/tracdap/rt/metadata/config.py +95 -0
  36. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/metadata/object.py +6 -0
  37. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/metadata/object_id.py +4 -0
  38. tracdap_runtime-0.9.0rc1/src/tracdap/rt/metadata/resource.py +63 -0
  39. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1/tracdap_runtime.egg-info}/PKG-INFO +5 -2
  40. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/tracdap_runtime.egg-info/SOURCES.txt +4 -0
  41. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/tracdap_runtime.egg-info/requires.txt +2 -0
  42. tracdap_runtime-0.8.0rc1/src/tracdap/rt/_impl/grpc/tracdap/metadata/resource_pb2.py +0 -29
  43. tracdap_runtime-0.8.0rc1/src/tracdap/rt/_impl/grpc/tracdap/metadata/resource_pb2.pyi +0 -16
  44. tracdap_runtime-0.8.0rc1/src/tracdap/rt/metadata/resource.py +0 -23
  45. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/LICENSE +0 -0
  46. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/README.md +0 -0
  47. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/pyproject.toml +0 -0
  48. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/__init__.py +0 -0
  49. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/__init__.py +0 -0
  50. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/core/__init__.py +0 -0
  51. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/core/config_parser.py +0 -0
  52. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/core/guard_rails.py +0 -0
  53. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/core/logging.py +0 -0
  54. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/core/models.py +0 -0
  55. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/core/schemas.py +0 -0
  56. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/core/shim.py +0 -0
  57. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/core/struct.py +0 -0
  58. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/core/type_system.py +0 -0
  59. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/core/util.py +0 -0
  60. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/core/validation.py +0 -0
  61. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/exec/__init__.py +0 -0
  62. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/exec/actors.py +0 -0
  63. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/exec/context.py +0 -0
  64. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/exec/dev_mode.py +0 -0
  65. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/exec/engine.py +0 -0
  66. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/exec/graph.py +0 -0
  67. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/exec/graph_builder.py +0 -0
  68. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/ext/__init__.py +0 -0
  69. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/ext/sql.py +0 -0
  70. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/ext/storage.py +0 -0
  71. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/grpc/__init__.py +0 -0
  72. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/grpc/codec.py +0 -0
  73. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/grpc/server.py +0 -0
  74. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/grpc/tracdap/api/internal/runtime_pb2.pyi +0 -0
  75. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/grpc/tracdap/api/internal/runtime_pb2_grpc.py +0 -0
  76. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/grpc/tracdap/metadata/common_pb2.pyi +0 -0
  77. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/grpc/tracdap/metadata/custom_pb2.pyi +0 -0
  78. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/grpc/tracdap/metadata/data_pb2.pyi +0 -0
  79. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/grpc/tracdap/metadata/file_pb2.pyi +0 -0
  80. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/grpc/tracdap/metadata/flow_pb2.pyi +0 -0
  81. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/grpc/tracdap/metadata/job_pb2.pyi +0 -0
  82. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/grpc/tracdap/metadata/model_pb2.pyi +0 -0
  83. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/grpc/tracdap/metadata/search_pb2.pyi +0 -0
  84. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/grpc/tracdap/metadata/storage_pb2.pyi +0 -0
  85. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/grpc/tracdap/metadata/tag_pb2.pyi +0 -0
  86. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/grpc/tracdap/metadata/tag_update_pb2.pyi +0 -0
  87. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/grpc/tracdap/metadata/type_pb2.pyi +0 -0
  88. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_impl/static_api.py +0 -0
  89. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_plugins/__init__.py +0 -0
  90. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_plugins/_helpers.py +0 -0
  91. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_plugins/config_local.py +0 -0
  92. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_plugins/format_arrow.py +0 -0
  93. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_plugins/format_csv.py +0 -0
  94. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_plugins/format_parquet.py +0 -0
  95. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_plugins/repo_local.py +0 -0
  96. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_plugins/repo_pypi.py +0 -0
  97. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_plugins/storage_aws.py +0 -0
  98. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_plugins/storage_azure.py +0 -0
  99. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_plugins/storage_gcp.py +0 -0
  100. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_plugins/storage_local.py +0 -0
  101. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_plugins/storage_sql.py +0 -0
  102. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/_plugins/storage_sql_dialects.py +0 -0
  103. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/api/__init__.py +0 -0
  104. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/api/constants.py +0 -0
  105. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/api/experimental.py +0 -0
  106. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/api/hook.py +0 -0
  107. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/api/model_api.py +0 -0
  108. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/api/static_api.py +0 -0
  109. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/config/common.py +0 -0
  110. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/config/job.py +0 -0
  111. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/config/platform.py +0 -0
  112. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/config/result.py +0 -0
  113. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/exceptions.py +0 -0
  114. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/ext/__init__.py +0 -0
  115. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/ext/config.py +0 -0
  116. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/ext/embed.py +0 -0
  117. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/ext/plugins.py +0 -0
  118. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/ext/repos.py +0 -0
  119. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/ext/storage.py +0 -0
  120. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/launch/__init__.py +0 -0
  121. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/launch/__main__.py +0 -0
  122. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/launch/cli.py +0 -0
  123. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/launch/launch.py +0 -0
  124. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/metadata/common.py +0 -0
  125. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/metadata/custom.py +0 -0
  126. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/metadata/data.py +0 -0
  127. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/metadata/file.py +0 -0
  128. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/metadata/flow.py +0 -0
  129. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/metadata/job.py +0 -0
  130. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/metadata/model.py +0 -0
  131. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/metadata/search.py +0 -0
  132. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/metadata/storage.py +0 -0
  133. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/metadata/tag.py +0 -0
  134. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/metadata/tag_update.py +0 -0
  135. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/src/tracdap/rt/metadata/type.py +0 -0
  136. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/tracdap_runtime.egg-info/dependency_links.txt +0 -0
  137. {tracdap_runtime-0.8.0rc1 → tracdap_runtime-0.9.0rc1}/tracdap_runtime.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: tracdap-runtime
3
- Version: 0.8.0rc1
3
+ Version: 0.9.0rc1
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
@@ -21,6 +21,8 @@ Requires-Dist: pyarrow==18.1.0
21
21
  Requires-Dist: pyyaml==6.0.2
22
22
  Requires-Dist: dulwich==0.22.7
23
23
  Requires-Dist: requests==2.32.3
24
+ Requires-Dist: typing_extensions<4.13
25
+ Requires-Dist: urllib3<2.4.0
24
26
  Provides-Extra: grpc
25
27
  Requires-Dist: grpcio==1.70.0; extra == "grpc"
26
28
  Requires-Dist: grpcio-status==1.70.0; extra == "grpc"
@@ -46,6 +48,7 @@ Requires-Dist: azure-core==1.30.1; extra == "azure"
46
48
  Requires-Dist: azure-identity==1.16.1; extra == "azure"
47
49
  Requires-Dist: azure-storage-blob==12.19.1; extra == "azure"
48
50
  Requires-Dist: adlfs==2024.4.1; extra == "azure"
51
+ Dynamic: license-file
49
52
 
50
53
  # TRAC Model Runtime for Python
51
54
 
@@ -1,6 +1,6 @@
1
1
  [metadata]
2
2
  name = tracdap-runtime
3
- version = 0.8.0rc1
3
+ version = 0.9.0rc1
4
4
  description = Runtime package for building models on the TRAC Data & Analytics Platform
5
5
  long_description = file: README.md
6
6
  long_description_content_type = text/markdown
@@ -45,6 +45,8 @@ install_requires =
45
45
  pyyaml == 6.0.2
46
46
  dulwich == 0.22.7
47
47
  requests == 2.32.3
48
+ typing_extensions < 4.13
49
+ urllib3 < 2.4.0
48
50
 
49
51
  [options.extras_require]
50
52
  grpc =
@@ -184,6 +184,11 @@ class DataView:
184
184
  else:
185
185
  return DataView(_meta.ObjectType.DATA, trac_schema, parts = dict())
186
186
 
187
+ @staticmethod
188
+ def for_arrow_schema(arrow_schema: pa.Schema):
189
+ trac_schema = DataMapping.arrow_to_trac_schema(arrow_schema)
190
+ return DataView(_meta.ObjectType.DATA, trac_schema, arrow_schema, dict())
191
+
187
192
  @staticmethod
188
193
  def for_file_item(file_item: DataItem):
189
194
  return DataView(file_item.object_type, file_item=file_item)
@@ -259,8 +264,17 @@ class DataMapping:
259
264
  pa.date64(): _meta.BasicType.DATE
260
265
  }
261
266
 
262
- @staticmethod
263
- def arrow_to_python_type(arrow_type: pa.DataType) -> type:
267
+ # For now, categorical handling is disabled by default and enabled by this setting
268
+ # The default will change to "true" for the 0.9 release
269
+ CATEGORICAL_CONFIG_KEY = "trac.runtime.categorical"
270
+ __categorical_enabled = False
271
+
272
+ @classmethod
273
+ def enable_categorical(cls, enabled: bool):
274
+ cls.__categorical_enabled = enabled
275
+
276
+ @classmethod
277
+ def arrow_to_python_type(cls, arrow_type: pa.DataType) -> type:
264
278
 
265
279
  if pa.types.is_boolean(arrow_type):
266
280
  return bool
@@ -283,6 +297,11 @@ class DataMapping:
283
297
  if pa.types.is_timestamp(arrow_type):
284
298
  return dt.datetime
285
299
 
300
+ # The python type for a dictionary-encoded field is its value type
301
+ if pa.types.is_dictionary(arrow_type):
302
+ if isinstance(arrow_type, pa.DictionaryType):
303
+ return cls.arrow_to_python_type(arrow_type.value_type)
304
+
286
305
  raise _ex.ETracInternal(f"No Python type mapping available for Arrow type [{arrow_type}]")
287
306
 
288
307
  @classmethod
@@ -340,7 +359,13 @@ class DataMapping:
340
359
  def trac_to_arrow_field(cls, trac_field: _meta.FieldSchema):
341
360
 
342
361
  arrow_type = cls.trac_to_arrow_basic_type(trac_field.fieldType)
343
- nullable = not trac_field.notNull if trac_field.notNull is not None else not trac_field.businessKey
362
+
363
+ # Categorical data uses an unordered dictionary with int32 index, ordered encoding not (currently) supported
364
+ # For legacy compatability, only use dictionary encoding if the categorical feature is enabled
365
+ if trac_field.categorical and cls.__categorical_enabled:
366
+ arrow_type = pa.dictionary(pa.int32(), arrow_type, False)
367
+
368
+ nullable = not (trac_field.notNull or trac_field.businessKey)
344
369
 
345
370
  return pa.field(trac_field.fieldName, arrow_type, nullable)
346
371
 
@@ -369,12 +394,15 @@ class DataMapping:
369
394
  field_type = cls.arrow_to_trac_type(field.type)
370
395
  label = field.metadata["label"] if field.metadata and "label" in field.metadata else field.name
371
396
 
397
+ # When converting Arrow -> TRAC, always set the categorical flag for dictionary encoded fields
398
+ # This affects dynamic imports and is informational only (physical layout is controlled by Arrow schemas)
399
+
372
400
  return _meta.FieldSchema(
373
401
  field.name, field_index, field_type,
374
402
  label=label,
375
403
  businessKey=False,
376
404
  notNull=not field.nullable,
377
- categorical=False)
405
+ categorical=pa.types.is_dictionary(field.type))
378
406
 
379
407
  @classmethod
380
408
  def arrow_to_trac_type(cls, arrow_type: pa.DataType) -> _meta.BasicType:
@@ -390,6 +418,11 @@ class DataMapping:
390
418
  if pa.types.is_timestamp(arrow_type):
391
419
  return _meta.BasicType.DATETIME
392
420
 
421
+ # The basic type for a dictionary-encoded field is its value type
422
+ if pa.types.is_dictionary(arrow_type):
423
+ if isinstance(arrow_type, pa.DictionaryType):
424
+ return cls.arrow_to_trac_type(arrow_type.value_type)
425
+
393
426
  raise _ex.ETracInternal(f"No data type mapping available for Arrow type [{arrow_type}]")
394
427
 
395
428
  @classmethod
@@ -766,6 +799,10 @@ class DataConformance:
766
799
  "Field [{field_name}] cannot be converted from {vector_type} to {field_type}, " + \
767
800
  "source and target have different time zones"
768
801
 
802
+ __E_WRONG_CATEGORICAL_TYPE = \
803
+ "Field [{field_name}] categorical types do not match" + \
804
+ "(expected {field_type}, got {vector_type})"
805
+
769
806
  @classmethod
770
807
  def column_filter(cls, columns: tp.List[str], schema: tp.Optional[pa.Schema]) -> tp.Optional[tp.List[str]]:
771
808
 
@@ -918,13 +955,19 @@ class DataConformance:
918
955
  @classmethod
919
956
  def _coerce_vector(cls, vector: pa.Array, field: pa.Field, pandas_type=None) -> pa.Array:
920
957
 
958
+ # Handle null vector
921
959
  if pa.types.is_null(vector.type):
922
-
923
960
  if field.nullable:
924
961
  return pa.nulls(size=len(vector), type=field.type)
925
962
  else:
926
963
  raise _ex.EDataConformance(f"All null values in non-null field [{field.name}]")
927
964
 
965
+ # If the vector is dict-encoded but the expected result is not, decode the dictionary
966
+ if pa.types.is_dictionary(vector.type) and not pa.types.is_dictionary(field.type):
967
+ if isinstance(vector, pa.DictionaryArray):
968
+ dict_vector: pa.DictionaryArray = vector
969
+ vector = dict_vector.dictionary_decode()
970
+
928
971
  if pa.types.is_boolean(field.type):
929
972
  return cls._coerce_boolean(vector, field)
930
973
 
@@ -946,6 +989,9 @@ class DataConformance:
946
989
  if pa.types.is_timestamp(field.type):
947
990
  return cls._coerce_timestamp(vector, field)
948
991
 
992
+ if pa.types.is_dictionary(field.type):
993
+ return cls._coerce_dictionary(vector, field)
994
+
949
995
  error_message = cls._format_error(cls.__E_WRONG_DATA_TYPE, vector, field)
950
996
  cls.__log.error(error_message)
951
997
  raise _ex.EDataConformance(error_message)
@@ -1188,6 +1234,82 @@ class DataConformance:
1188
1234
 
1189
1235
  return pc.cast(scaled_vector, field.type)
1190
1236
 
1237
+ @classmethod
1238
+ def _coerce_dictionary(cls, vector: pa.Array, field: pa.Field):
1239
+
1240
+ try:
1241
+
1242
+ if not isinstance(field.type, pa.DictionaryType):
1243
+ raise _ex.EUnexpected()
1244
+
1245
+ field_type: pa.DictionaryType = field.type
1246
+
1247
+ # Supplied vector is a dictionary (but the dictionary type is not an exact match)
1248
+ if pa.types.is_dictionary(vector.type):
1249
+
1250
+ if not isinstance(vector.type, pa.DictionaryType):
1251
+ raise _ex.EUnexpected()
1252
+
1253
+ vector_type: pa.DictionaryType = vector.type
1254
+
1255
+ # Do not allow coercion to a smaller index type or from unordered to ordered
1256
+ if (vector_type.index_type.bit_width > field_type.index_type.bit_width) or \
1257
+ (field_type.ordered and not vector_type.ordered):
1258
+
1259
+ error_message = cls._format_error(cls.__E_WRONG_DATA_TYPE, vector, field)
1260
+ cls.__log.error(error_message)
1261
+ raise _ex.EDataConformance(error_message)
1262
+
1263
+ # Value types are the same - basic cast should succeed
1264
+ if vector_type.value_type == field_type.value_type:
1265
+ return pc.cast(vector, field.type)
1266
+
1267
+ # Value types differ - try to coerce the underlying dictionary
1268
+ elif isinstance(vector, pa.DictionaryArray):
1269
+ try:
1270
+ values_field = pa.field(field.name, field_type.value_type, field.nullable)
1271
+ values_vector = cls._coerce_vector(vector.dictionary, values_field)
1272
+ dict_vector = pa.DictionaryArray.from_arrays(vector.indices, values_vector, ordered=field_type.ordered) # noqa
1273
+ return pc.cast(dict_vector, field.type)
1274
+ # Handle errors converting the value type
1275
+ except _ex.EDataConformance as e:
1276
+ error_message = cls._format_error(cls.__E_WRONG_CATEGORICAL_TYPE, vector, field)
1277
+ cls.__log.error(error_message)
1278
+ raise _ex.EDataConformance(error_message) from e
1279
+
1280
+ # Special handling for chunked dictionaries
1281
+ elif isinstance(vector, pa.ChunkedArray):
1282
+ chunks = [cls._coerce_dictionary(chunk, field) for chunk in vector.chunks]
1283
+ return pa.chunked_array(chunks)
1284
+
1285
+ # Vector type not recognized, coercion is not possible
1286
+ else:
1287
+ error_message = cls._format_error(cls.__E_WRONG_DATA_TYPE, vector, field)
1288
+ cls.__log.error(error_message)
1289
+ raise _ex.EDataConformance(error_message)
1290
+
1291
+ # Supplied vector matches the dictionary value type - perform dictionary encoding
1292
+ elif vector.type == field_type.value_type and not field_type.ordered:
1293
+ return vector.dictionary_encode().cast(field.type)
1294
+
1295
+ # Fallback option - try to coerce the value type first, then perform dictionary encoding
1296
+ else:
1297
+ try:
1298
+ values_field = pa.field(field.name, field_type.value_type, field.nullable)
1299
+ values_vector = cls._coerce_vector(vector, values_field)
1300
+ return values_vector.dictionary_encode().cast(field.type)
1301
+ # Handle errors converting the value type
1302
+ except _ex.EDataConformance as e:
1303
+ error_message = cls._format_error(cls.__E_WRONG_CATEGORICAL_TYPE, vector, field)
1304
+ cls.__log.error(error_message)
1305
+ raise _ex.EDataConformance(error_message) from e
1306
+
1307
+ except pa.ArrowInvalid as e:
1308
+
1309
+ error_message = cls._format_error(cls.__E_DATA_LOSS_DID_OCCUR, vector, field, e)
1310
+ cls.__log.error(error_message)
1311
+ raise _ex.EDataConformance(error_message) from e
1312
+
1191
1313
  @classmethod
1192
1314
  def _format_error(cls, error_template: str, vector: pa.Array, field: pa.Field, e: Exception = None):
1193
1315
 
@@ -38,6 +38,13 @@ class RepositoryManager:
38
38
 
39
39
  try:
40
40
 
41
+ # Add global properties related to the repo protocol
42
+ related_props = {
43
+ k: v for (k, v) in sys_config.properties.items()
44
+ if k.startswith(f"{repo_config.protocol}.")}
45
+
46
+ repo_config.properties.update(related_props)
47
+
41
48
  self._repos[repo_name] = plugins.PluginManager.load_plugin(IModelRepository, repo_config)
42
49
 
43
50
  except ex.EPluginNotAvailable as e:
@@ -81,7 +81,7 @@ class StorageManager:
81
81
  self.__file_storage: tp.Dict[str, IFileStorage] = dict()
82
82
  self.__data_storage: tp.Dict[str, IDataStorage] = dict()
83
83
  self.__external: tp.List[str] = list()
84
- self.__settings = sys_config.storage
84
+ self.__sys_config = sys_config
85
85
 
86
86
  for storage_key, storage_config in sys_config.storage.buckets.items():
87
87
  self.create_storage(storage_key, storage_config)
@@ -93,13 +93,20 @@ class StorageManager:
93
93
  self.create_storage(storage_key, storage_config)
94
94
 
95
95
  def default_storage_key(self):
96
- return self.__settings.defaultBucket
96
+ return self.__sys_config.storage.defaultBucket
97
97
 
98
98
  def default_storage_format(self):
99
- return self.__settings.defaultFormat
99
+ return self.__sys_config.storage.defaultFormat
100
100
 
101
101
  def create_storage(self, storage_key: str, storage_config: _cfg.PluginConfig):
102
102
 
103
+ # Add global properties related to the storage protocol
104
+ related_props = {
105
+ k: v for (k, v) in self.__sys_config.properties.items()
106
+ if k.startswith(f"{storage_config.protocol}.")}
107
+
108
+ storage_config.properties.update(related_props)
109
+
103
110
  if plugins.PluginManager.is_plugin_available(IStorageProvider, storage_config.protocol):
104
111
  self._create_storage_from_provider(storage_key, storage_config)
105
112
  else:
@@ -294,11 +294,11 @@ class DataViewFunc(NodeFunction[_data.DataView]):
294
294
  # Everything else is a regular data view
295
295
  if self.node.schema is not None and len(self.node.schema.table.fields) > 0:
296
296
  trac_schema = self.node.schema
297
+ data_view = _data.DataView.for_trac_schema(trac_schema)
297
298
  else:
298
299
  arrow_schema = root_item.schema
299
- trac_schema = _data.DataMapping.arrow_to_trac_schema(arrow_schema)
300
+ data_view = _data.DataView.for_arrow_schema(arrow_schema)
300
301
 
301
- data_view = _data.DataView.for_trac_schema(trac_schema)
302
302
  data_view = _data.DataMapping.add_item_to_view(data_view, root_part_key, root_item)
303
303
 
304
304
  return data_view
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
3
3
  # source: tracdap/rt/_impl/grpc/tracdap/api/internal/runtime.proto
4
- # Protobuf Python Version: 4.25.3
4
+ # Protobuf Python Version: 4.25.5
5
5
  """Generated protocol buffer code."""
6
6
  from google.protobuf import descriptor as _descriptor
7
7
  from google.protobuf import descriptor_pool as _descriptor_pool
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
3
3
  # source: tracdap/rt/_impl/grpc/tracdap/metadata/common.proto
4
- # Protobuf Python Version: 4.25.3
4
+ # Protobuf Python Version: 4.25.5
5
5
  """Generated protocol buffer code."""
6
6
  from google.protobuf import descriptor as _descriptor
7
7
  from google.protobuf import descriptor_pool as _descriptor_pool
@@ -0,0 +1,40 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: tracdap/rt/_impl/grpc/tracdap/metadata/config.proto
4
+ # Protobuf Python Version: 4.25.5
5
+ """Generated protocol buffer code."""
6
+ from google.protobuf import descriptor as _descriptor
7
+ from google.protobuf import descriptor_pool as _descriptor_pool
8
+ from google.protobuf import symbol_database as _symbol_database
9
+ from google.protobuf.internal import builder as _builder
10
+ # @@protoc_insertion_point(imports)
11
+
12
+ _sym_db = _symbol_database.Default()
13
+
14
+
15
+ from tracdap.rt._impl.grpc.tracdap.metadata import type_pb2 as tracdap_dot_rt_dot___impl_dot_grpc_dot_tracdap_dot_metadata_dot_type__pb2
16
+ from tracdap.rt._impl.grpc.tracdap.metadata import object_id_pb2 as tracdap_dot_rt_dot___impl_dot_grpc_dot_tracdap_dot_metadata_dot_object__id__pb2
17
+ from tracdap.rt._impl.grpc.tracdap.metadata import resource_pb2 as tracdap_dot_rt_dot___impl_dot_grpc_dot_tracdap_dot_metadata_dot_resource__pb2
18
+
19
+
20
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n3tracdap/rt/_impl/grpc/tracdap/metadata/config.proto\x12\x10tracdap.metadata\x1a\x31tracdap/rt/_impl/grpc/tracdap/metadata/type.proto\x1a\x36tracdap/rt/_impl/grpc/tracdap/metadata/object_id.proto\x1a\x35tracdap/rt/_impl/grpc/tracdap/metadata/resource.proto\"\xf8\x01\n\x0b\x43onfigEntry\x12\x13\n\x0b\x63onfigClass\x18\x01 \x01(\t\x12\x11\n\tconfigKey\x18\x02 \x01(\t\x12\x15\n\rconfigVersion\x18\x03 \x01(\x05\x12\x38\n\x0f\x63onfigTimestamp\x18\x04 \x01(\x0b\x32\x1f.tracdap.metadata.DatetimeValue\x12\x16\n\x0eisLatestConfig\x18\x05 \x01(\x08\x12\x15\n\rconfigDeleted\x18\x06 \x01(\x08\x12\x35\n\x07\x64\x65tails\x18\x07 \x01(\x0b\x32\x1f.tracdap.metadata.ConfigDetailsH\x00\x88\x01\x01\x42\n\n\x08_details\"\x8a\x02\n\rConfigDetails\x12\x35\n\x0eobjectSelector\x18\x01 \x01(\x0b\x32\x1d.tracdap.metadata.TagSelector\x12\x30\n\nobjectType\x18\x02 \x01(\x0e\x32\x1c.tracdap.metadata.ObjectType\x12\x35\n\nconfigType\x18\x03 \x01(\x0e\x32\x1c.tracdap.metadata.ConfigTypeH\x00\x88\x01\x01\x12\x39\n\x0cresourceType\x18\x04 \x01(\x0e\x32\x1e.tracdap.metadata.ResourceTypeH\x01\x88\x01\x01\x42\r\n\x0b_configTypeB\x0f\n\r_resourceType\"\xbf\x01\n\x10\x43onfigDefinition\x12\x30\n\nconfigType\x18\x01 \x01(\x0e\x32\x1c.tracdap.metadata.ConfigType\x12\x46\n\nproperties\x18\x02 \x03(\x0b\x32\x32.tracdap.metadata.ConfigDefinition.PropertiesEntry\x1a\x31\n\x0fPropertiesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01*5\n\nConfigType\x12\x17\n\x13\x43ONFIG_TYPE_NOT_SET\x10\x00\x12\x0e\n\nPROPERTIES\x10\x01\x42\x1e\n\x1aorg.finos.tracdap.metadataP\x01\x62\x06proto3')
21
+
22
+ _globals = globals()
23
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
24
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'tracdap.rt._impl.grpc.tracdap.metadata.config_pb2', _globals)
25
+ if _descriptor._USE_C_DESCRIPTORS == False:
26
+ _globals['DESCRIPTOR']._options = None
27
+ _globals['DESCRIPTOR']._serialized_options = b'\n\032org.finos.tracdap.metadataP\001'
28
+ _globals['_CONFIGDEFINITION_PROPERTIESENTRY']._options = None
29
+ _globals['_CONFIGDEFINITION_PROPERTIESENTRY']._serialized_options = b'8\001'
30
+ _globals['_CONFIGTYPE']._serialized_start=949
31
+ _globals['_CONFIGTYPE']._serialized_end=1002
32
+ _globals['_CONFIGENTRY']._serialized_start=236
33
+ _globals['_CONFIGENTRY']._serialized_end=484
34
+ _globals['_CONFIGDETAILS']._serialized_start=487
35
+ _globals['_CONFIGDETAILS']._serialized_end=753
36
+ _globals['_CONFIGDEFINITION']._serialized_start=756
37
+ _globals['_CONFIGDEFINITION']._serialized_end=947
38
+ _globals['_CONFIGDEFINITION_PROPERTIESENTRY']._serialized_start=898
39
+ _globals['_CONFIGDEFINITION_PROPERTIESENTRY']._serialized_end=947
40
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,62 @@
1
+ from tracdap.rt._impl.grpc.tracdap.metadata import type_pb2 as _type_pb2
2
+ from tracdap.rt._impl.grpc.tracdap.metadata import object_id_pb2 as _object_id_pb2
3
+ from tracdap.rt._impl.grpc.tracdap.metadata import resource_pb2 as _resource_pb2
4
+ from google.protobuf.internal import containers as _containers
5
+ from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
6
+ from google.protobuf import descriptor as _descriptor
7
+ from google.protobuf import message as _message
8
+ from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union
9
+
10
+ DESCRIPTOR: _descriptor.FileDescriptor
11
+
12
+ class ConfigType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
13
+ __slots__ = ()
14
+ CONFIG_TYPE_NOT_SET: _ClassVar[ConfigType]
15
+ PROPERTIES: _ClassVar[ConfigType]
16
+ CONFIG_TYPE_NOT_SET: ConfigType
17
+ PROPERTIES: ConfigType
18
+
19
+ class ConfigEntry(_message.Message):
20
+ __slots__ = ("configClass", "configKey", "configVersion", "configTimestamp", "isLatestConfig", "configDeleted", "details")
21
+ CONFIGCLASS_FIELD_NUMBER: _ClassVar[int]
22
+ CONFIGKEY_FIELD_NUMBER: _ClassVar[int]
23
+ CONFIGVERSION_FIELD_NUMBER: _ClassVar[int]
24
+ CONFIGTIMESTAMP_FIELD_NUMBER: _ClassVar[int]
25
+ ISLATESTCONFIG_FIELD_NUMBER: _ClassVar[int]
26
+ CONFIGDELETED_FIELD_NUMBER: _ClassVar[int]
27
+ DETAILS_FIELD_NUMBER: _ClassVar[int]
28
+ configClass: str
29
+ configKey: str
30
+ configVersion: int
31
+ configTimestamp: _type_pb2.DatetimeValue
32
+ isLatestConfig: bool
33
+ configDeleted: bool
34
+ details: ConfigDetails
35
+ def __init__(self, configClass: _Optional[str] = ..., configKey: _Optional[str] = ..., configVersion: _Optional[int] = ..., configTimestamp: _Optional[_Union[_type_pb2.DatetimeValue, _Mapping]] = ..., isLatestConfig: bool = ..., configDeleted: bool = ..., details: _Optional[_Union[ConfigDetails, _Mapping]] = ...) -> None: ...
36
+
37
+ class ConfigDetails(_message.Message):
38
+ __slots__ = ("objectSelector", "objectType", "configType", "resourceType")
39
+ OBJECTSELECTOR_FIELD_NUMBER: _ClassVar[int]
40
+ OBJECTTYPE_FIELD_NUMBER: _ClassVar[int]
41
+ CONFIGTYPE_FIELD_NUMBER: _ClassVar[int]
42
+ RESOURCETYPE_FIELD_NUMBER: _ClassVar[int]
43
+ objectSelector: _object_id_pb2.TagSelector
44
+ objectType: _object_id_pb2.ObjectType
45
+ configType: ConfigType
46
+ resourceType: _resource_pb2.ResourceType
47
+ def __init__(self, objectSelector: _Optional[_Union[_object_id_pb2.TagSelector, _Mapping]] = ..., objectType: _Optional[_Union[_object_id_pb2.ObjectType, str]] = ..., configType: _Optional[_Union[ConfigType, str]] = ..., resourceType: _Optional[_Union[_resource_pb2.ResourceType, str]] = ...) -> None: ...
48
+
49
+ class ConfigDefinition(_message.Message):
50
+ __slots__ = ("configType", "properties")
51
+ class PropertiesEntry(_message.Message):
52
+ __slots__ = ("key", "value")
53
+ KEY_FIELD_NUMBER: _ClassVar[int]
54
+ VALUE_FIELD_NUMBER: _ClassVar[int]
55
+ key: str
56
+ value: str
57
+ def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
58
+ CONFIGTYPE_FIELD_NUMBER: _ClassVar[int]
59
+ PROPERTIES_FIELD_NUMBER: _ClassVar[int]
60
+ configType: ConfigType
61
+ properties: _containers.ScalarMap[str, str]
62
+ def __init__(self, configType: _Optional[_Union[ConfigType, str]] = ..., properties: _Optional[_Mapping[str, str]] = ...) -> None: ...
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
3
3
  # source: tracdap/rt/_impl/grpc/tracdap/metadata/custom.proto
4
- # Protobuf Python Version: 4.25.3
4
+ # Protobuf Python Version: 4.25.5
5
5
  """Generated protocol buffer code."""
6
6
  from google.protobuf import descriptor as _descriptor
7
7
  from google.protobuf import descriptor_pool as _descriptor_pool
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
3
3
  # source: tracdap/rt/_impl/grpc/tracdap/metadata/data.proto
4
- # Protobuf Python Version: 4.25.3
4
+ # Protobuf Python Version: 4.25.5
5
5
  """Generated protocol buffer code."""
6
6
  from google.protobuf import descriptor as _descriptor
7
7
  from google.protobuf import descriptor_pool as _descriptor_pool
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
3
3
  # source: tracdap/rt/_impl/grpc/tracdap/metadata/file.proto
4
- # Protobuf Python Version: 4.25.3
4
+ # Protobuf Python Version: 4.25.5
5
5
  """Generated protocol buffer code."""
6
6
  from google.protobuf import descriptor as _descriptor
7
7
  from google.protobuf import descriptor_pool as _descriptor_pool
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
3
3
  # source: tracdap/rt/_impl/grpc/tracdap/metadata/flow.proto
4
- # Protobuf Python Version: 4.25.3
4
+ # Protobuf Python Version: 4.25.5
5
5
  """Generated protocol buffer code."""
6
6
  from google.protobuf import descriptor as _descriptor
7
7
  from google.protobuf import descriptor_pool as _descriptor_pool
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
3
3
  # source: tracdap/rt/_impl/grpc/tracdap/metadata/job.proto
4
- # Protobuf Python Version: 4.25.3
4
+ # Protobuf Python Version: 4.25.5
5
5
  """Generated protocol buffer code."""
6
6
  from google.protobuf import descriptor as _descriptor
7
7
  from google.protobuf import descriptor_pool as _descriptor_pool
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
3
3
  # source: tracdap/rt/_impl/grpc/tracdap/metadata/model.proto
4
- # Protobuf Python Version: 4.25.3
4
+ # Protobuf Python Version: 4.25.5
5
5
  """Generated protocol buffer code."""
6
6
  from google.protobuf import descriptor as _descriptor
7
7
  from google.protobuf import descriptor_pool as _descriptor_pool
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
3
3
  # source: tracdap/rt/_impl/grpc/tracdap/metadata/object_id.proto
4
- # Protobuf Python Version: 4.25.3
4
+ # Protobuf Python Version: 4.25.5
5
5
  """Generated protocol buffer code."""
6
6
  from google.protobuf import descriptor as _descriptor
7
7
  from google.protobuf import descriptor_pool as _descriptor_pool
@@ -15,7 +15,7 @@ _sym_db = _symbol_database.Default()
15
15
  from tracdap.rt._impl.grpc.tracdap.metadata import type_pb2 as tracdap_dot_rt_dot___impl_dot_grpc_dot_tracdap_dot_metadata_dot_type__pb2
16
16
 
17
17
 
18
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n6tracdap/rt/_impl/grpc/tracdap/metadata/object_id.proto\x12\x10tracdap.metadata\x1a\x31tracdap/rt/_impl/grpc/tracdap/metadata/type.proto\"\x98\x02\n\tTagHeader\x12\x30\n\nobjectType\x18\x01 \x01(\x0e\x32\x1c.tracdap.metadata.ObjectType\x12\x10\n\x08objectId\x18\x02 \x01(\t\x12\x15\n\robjectVersion\x18\x03 \x01(\x05\x12\x38\n\x0fobjectTimestamp\x18\x04 \x01(\x0b\x32\x1f.tracdap.metadata.DatetimeValue\x12\x12\n\ntagVersion\x18\x05 \x01(\x05\x12\x35\n\x0ctagTimestamp\x18\x06 \x01(\x0b\x32\x1f.tracdap.metadata.DatetimeValue\x12\x16\n\x0eisLatestObject\x18\x07 \x01(\x08\x12\x13\n\x0bisLatestTag\x18\x08 \x01(\x08\"\xb9\x02\n\x0bTagSelector\x12\x30\n\nobjectType\x18\x01 \x01(\x0e\x32\x1c.tracdap.metadata.ObjectType\x12\x10\n\x08objectId\x18\x02 \x01(\t\x12\x16\n\x0clatestObject\x18\x03 \x01(\x08H\x00\x12\x17\n\robjectVersion\x18\x04 \x01(\x05H\x00\x12\x35\n\nobjectAsOf\x18\x05 \x01(\x0b\x32\x1f.tracdap.metadata.DatetimeValueH\x00\x12\x13\n\tlatestTag\x18\x06 \x01(\x08H\x01\x12\x14\n\ntagVersion\x18\x07 \x01(\x05H\x01\x12\x32\n\x07tagAsOf\x18\x08 \x01(\x0b\x32\x1f.tracdap.metadata.DatetimeValueH\x01\x42\x10\n\x0eobjectCriteriaB\r\n\x0btagCriteria*\x88\x01\n\nObjectType\x12\x17\n\x13OBJECT_TYPE_NOT_SET\x10\x00\x12\x08\n\x04\x44\x41TA\x10\x01\x12\t\n\x05MODEL\x10\x02\x12\x08\n\x04\x46LOW\x10\x03\x12\x07\n\x03JOB\x10\x04\x12\x08\n\x04\x46ILE\x10\x05\x12\n\n\x06\x43USTOM\x10\x06\x12\x0b\n\x07STORAGE\x10\x07\x12\n\n\x06SCHEMA\x10\x08\x12\n\n\x06RESULT\x10\tB\x1e\n\x1aorg.finos.tracdap.metadataP\x01\x62\x06proto3')
18
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n6tracdap/rt/_impl/grpc/tracdap/metadata/object_id.proto\x12\x10tracdap.metadata\x1a\x31tracdap/rt/_impl/grpc/tracdap/metadata/type.proto\"\x98\x02\n\tTagHeader\x12\x30\n\nobjectType\x18\x01 \x01(\x0e\x32\x1c.tracdap.metadata.ObjectType\x12\x10\n\x08objectId\x18\x02 \x01(\t\x12\x15\n\robjectVersion\x18\x03 \x01(\x05\x12\x38\n\x0fobjectTimestamp\x18\x04 \x01(\x0b\x32\x1f.tracdap.metadata.DatetimeValue\x12\x12\n\ntagVersion\x18\x05 \x01(\x05\x12\x35\n\x0ctagTimestamp\x18\x06 \x01(\x0b\x32\x1f.tracdap.metadata.DatetimeValue\x12\x16\n\x0eisLatestObject\x18\x07 \x01(\x08\x12\x13\n\x0bisLatestTag\x18\x08 \x01(\x08\"\xb9\x02\n\x0bTagSelector\x12\x30\n\nobjectType\x18\x01 \x01(\x0e\x32\x1c.tracdap.metadata.ObjectType\x12\x10\n\x08objectId\x18\x02 \x01(\t\x12\x16\n\x0clatestObject\x18\x03 \x01(\x08H\x00\x12\x17\n\robjectVersion\x18\x04 \x01(\x05H\x00\x12\x35\n\nobjectAsOf\x18\x05 \x01(\x0b\x32\x1f.tracdap.metadata.DatetimeValueH\x00\x12\x13\n\tlatestTag\x18\x06 \x01(\x08H\x01\x12\x14\n\ntagVersion\x18\x07 \x01(\x05H\x01\x12\x32\n\x07tagAsOf\x18\x08 \x01(\x0b\x32\x1f.tracdap.metadata.DatetimeValueH\x01\x42\x10\n\x0eobjectCriteriaB\r\n\x0btagCriteria*\xa2\x01\n\nObjectType\x12\x17\n\x13OBJECT_TYPE_NOT_SET\x10\x00\x12\x08\n\x04\x44\x41TA\x10\x01\x12\t\n\x05MODEL\x10\x02\x12\x08\n\x04\x46LOW\x10\x03\x12\x07\n\x03JOB\x10\x04\x12\x08\n\x04\x46ILE\x10\x05\x12\n\n\x06\x43USTOM\x10\x06\x12\x0b\n\x07STORAGE\x10\x07\x12\n\n\x06SCHEMA\x10\x08\x12\n\n\x06RESULT\x10\t\x12\n\n\x06\x43ONFIG\x10\n\x12\x0c\n\x08RESOURCE\x10\x0b\x42\x1e\n\x1aorg.finos.tracdap.metadataP\x01\x62\x06proto3')
19
19
 
20
20
  _globals = globals()
21
21
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -24,7 +24,7 @@ if _descriptor._USE_C_DESCRIPTORS == False:
24
24
  _globals['DESCRIPTOR']._options = None
25
25
  _globals['DESCRIPTOR']._serialized_options = b'\n\032org.finos.tracdap.metadataP\001'
26
26
  _globals['_OBJECTTYPE']._serialized_start=727
27
- _globals['_OBJECTTYPE']._serialized_end=863
27
+ _globals['_OBJECTTYPE']._serialized_end=889
28
28
  _globals['_TAGHEADER']._serialized_start=128
29
29
  _globals['_TAGHEADER']._serialized_end=408
30
30
  _globals['_TAGSELECTOR']._serialized_start=411
@@ -18,6 +18,8 @@ class ObjectType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
18
18
  STORAGE: _ClassVar[ObjectType]
19
19
  SCHEMA: _ClassVar[ObjectType]
20
20
  RESULT: _ClassVar[ObjectType]
21
+ CONFIG: _ClassVar[ObjectType]
22
+ RESOURCE: _ClassVar[ObjectType]
21
23
  OBJECT_TYPE_NOT_SET: ObjectType
22
24
  DATA: ObjectType
23
25
  MODEL: ObjectType
@@ -28,6 +30,8 @@ CUSTOM: ObjectType
28
30
  STORAGE: ObjectType
29
31
  SCHEMA: ObjectType
30
32
  RESULT: ObjectType
33
+ CONFIG: ObjectType
34
+ RESOURCE: ObjectType
31
35
 
32
36
  class TagHeader(_message.Message):
33
37
  __slots__ = ("objectType", "objectId", "objectVersion", "objectTimestamp", "tagVersion", "tagTimestamp", "isLatestObject", "isLatestTag")
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
3
3
  # source: tracdap/rt/_impl/grpc/tracdap/metadata/object.proto
4
- # Protobuf Python Version: 4.25.3
4
+ # Protobuf Python Version: 4.25.5
5
5
  """Generated protocol buffer code."""
6
6
  from google.protobuf import descriptor as _descriptor
7
7
  from google.protobuf import descriptor_pool as _descriptor_pool
@@ -21,9 +21,11 @@ from tracdap.rt._impl.grpc.tracdap.metadata import job_pb2 as tracdap_dot_rt_dot
21
21
  from tracdap.rt._impl.grpc.tracdap.metadata import file_pb2 as tracdap_dot_rt_dot___impl_dot_grpc_dot_tracdap_dot_metadata_dot_file__pb2
22
22
  from tracdap.rt._impl.grpc.tracdap.metadata import custom_pb2 as tracdap_dot_rt_dot___impl_dot_grpc_dot_tracdap_dot_metadata_dot_custom__pb2
23
23
  from tracdap.rt._impl.grpc.tracdap.metadata import storage_pb2 as tracdap_dot_rt_dot___impl_dot_grpc_dot_tracdap_dot_metadata_dot_storage__pb2
24
+ from tracdap.rt._impl.grpc.tracdap.metadata import config_pb2 as tracdap_dot_rt_dot___impl_dot_grpc_dot_tracdap_dot_metadata_dot_config__pb2
25
+ from tracdap.rt._impl.grpc.tracdap.metadata import resource_pb2 as tracdap_dot_rt_dot___impl_dot_grpc_dot_tracdap_dot_metadata_dot_resource__pb2
24
26
 
25
27
 
26
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n3tracdap/rt/_impl/grpc/tracdap/metadata/object.proto\x12\x10tracdap.metadata\x1a\x36tracdap/rt/_impl/grpc/tracdap/metadata/object_id.proto\x1a\x31tracdap/rt/_impl/grpc/tracdap/metadata/type.proto\x1a\x31tracdap/rt/_impl/grpc/tracdap/metadata/data.proto\x1a\x32tracdap/rt/_impl/grpc/tracdap/metadata/model.proto\x1a\x31tracdap/rt/_impl/grpc/tracdap/metadata/flow.proto\x1a\x30tracdap/rt/_impl/grpc/tracdap/metadata/job.proto\x1a\x31tracdap/rt/_impl/grpc/tracdap/metadata/file.proto\x1a\x33tracdap/rt/_impl/grpc/tracdap/metadata/custom.proto\x1a\x34tracdap/rt/_impl/grpc/tracdap/metadata/storage.proto\"\xbd\x05\n\x10ObjectDefinition\x12\x30\n\nobjectType\x18\x01 \x01(\x0e\x32\x1c.tracdap.metadata.ObjectType\x12\x30\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .tracdap.metadata.DataDefinitionH\x00\x12\x32\n\x05model\x18\x03 \x01(\x0b\x32!.tracdap.metadata.ModelDefinitionH\x00\x12\x30\n\x04\x66low\x18\x04 \x01(\x0b\x32 .tracdap.metadata.FlowDefinitionH\x00\x12.\n\x03job\x18\x05 \x01(\x0b\x32\x1f.tracdap.metadata.JobDefinitionH\x00\x12\x30\n\x04\x66ile\x18\x06 \x01(\x0b\x32 .tracdap.metadata.FileDefinitionH\x00\x12\x34\n\x06\x63ustom\x18\x07 \x01(\x0b\x32\".tracdap.metadata.CustomDefinitionH\x00\x12\x36\n\x07storage\x18\x08 \x01(\x0b\x32#.tracdap.metadata.StorageDefinitionH\x00\x12\x34\n\x06schema\x18\t \x01(\x0b\x32\".tracdap.metadata.SchemaDefinitionH\x00\x12\x34\n\x06result\x18\n \x01(\x0b\x32\".tracdap.metadata.ResultDefinitionH\x00\x12H\n\x0bobjectProps\x18\x64 \x03(\x0b\x32\x33.tracdap.metadata.ObjectDefinition.ObjectPropsEntry\x1aK\n\x10ObjectPropsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.tracdap.metadata.Value:\x02\x38\x01\x42\x0c\n\ndefinitionB2\n\x1aorg.finos.tracdap.metadataB\x12ObjectProtoWrapperP\x01\x62\x06proto3')
28
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n3tracdap/rt/_impl/grpc/tracdap/metadata/object.proto\x12\x10tracdap.metadata\x1a\x36tracdap/rt/_impl/grpc/tracdap/metadata/object_id.proto\x1a\x31tracdap/rt/_impl/grpc/tracdap/metadata/type.proto\x1a\x31tracdap/rt/_impl/grpc/tracdap/metadata/data.proto\x1a\x32tracdap/rt/_impl/grpc/tracdap/metadata/model.proto\x1a\x31tracdap/rt/_impl/grpc/tracdap/metadata/flow.proto\x1a\x30tracdap/rt/_impl/grpc/tracdap/metadata/job.proto\x1a\x31tracdap/rt/_impl/grpc/tracdap/metadata/file.proto\x1a\x33tracdap/rt/_impl/grpc/tracdap/metadata/custom.proto\x1a\x34tracdap/rt/_impl/grpc/tracdap/metadata/storage.proto\x1a\x33tracdap/rt/_impl/grpc/tracdap/metadata/config.proto\x1a\x35tracdap/rt/_impl/grpc/tracdap/metadata/resource.proto\"\xad\x06\n\x10ObjectDefinition\x12\x30\n\nobjectType\x18\x01 \x01(\x0e\x32\x1c.tracdap.metadata.ObjectType\x12\x30\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .tracdap.metadata.DataDefinitionH\x00\x12\x32\n\x05model\x18\x03 \x01(\x0b\x32!.tracdap.metadata.ModelDefinitionH\x00\x12\x30\n\x04\x66low\x18\x04 \x01(\x0b\x32 .tracdap.metadata.FlowDefinitionH\x00\x12.\n\x03job\x18\x05 \x01(\x0b\x32\x1f.tracdap.metadata.JobDefinitionH\x00\x12\x30\n\x04\x66ile\x18\x06 \x01(\x0b\x32 .tracdap.metadata.FileDefinitionH\x00\x12\x34\n\x06\x63ustom\x18\x07 \x01(\x0b\x32\".tracdap.metadata.CustomDefinitionH\x00\x12\x36\n\x07storage\x18\x08 \x01(\x0b\x32#.tracdap.metadata.StorageDefinitionH\x00\x12\x34\n\x06schema\x18\t \x01(\x0b\x32\".tracdap.metadata.SchemaDefinitionH\x00\x12\x34\n\x06result\x18\n \x01(\x0b\x32\".tracdap.metadata.ResultDefinitionH\x00\x12\x34\n\x06\x63onfig\x18\x0b \x01(\x0b\x32\".tracdap.metadata.ConfigDefinitionH\x00\x12\x38\n\x08resource\x18\x0c \x01(\x0b\x32$.tracdap.metadata.ResourceDefinitionH\x00\x12H\n\x0bobjectProps\x18\x64 \x03(\x0b\x32\x33.tracdap.metadata.ObjectDefinition.ObjectPropsEntry\x1aK\n\x10ObjectPropsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.tracdap.metadata.Value:\x02\x38\x01\x42\x0c\n\ndefinitionB2\n\x1aorg.finos.tracdap.metadataB\x12ObjectProtoWrapperP\x01\x62\x06proto3')
27
29
 
28
30
  _globals = globals()
29
31
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -33,8 +35,8 @@ if _descriptor._USE_C_DESCRIPTORS == False:
33
35
  _globals['DESCRIPTOR']._serialized_options = b'\n\032org.finos.tracdap.metadataB\022ObjectProtoWrapperP\001'
34
36
  _globals['_OBJECTDEFINITION_OBJECTPROPSENTRY']._options = None
35
37
  _globals['_OBJECTDEFINITION_OBJECTPROPSENTRY']._serialized_options = b'8\001'
36
- _globals['_OBJECTDEFINITION']._serialized_start=543
37
- _globals['_OBJECTDEFINITION']._serialized_end=1244
38
- _globals['_OBJECTDEFINITION_OBJECTPROPSENTRY']._serialized_start=1155
39
- _globals['_OBJECTDEFINITION_OBJECTPROPSENTRY']._serialized_end=1230
38
+ _globals['_OBJECTDEFINITION']._serialized_start=651
39
+ _globals['_OBJECTDEFINITION']._serialized_end=1464
40
+ _globals['_OBJECTDEFINITION_OBJECTPROPSENTRY']._serialized_start=1375
41
+ _globals['_OBJECTDEFINITION_OBJECTPROPSENTRY']._serialized_end=1450
40
42
  # @@protoc_insertion_point(module_scope)
@@ -7,6 +7,8 @@ from tracdap.rt._impl.grpc.tracdap.metadata import job_pb2 as _job_pb2
7
7
  from tracdap.rt._impl.grpc.tracdap.metadata import file_pb2 as _file_pb2
8
8
  from tracdap.rt._impl.grpc.tracdap.metadata import custom_pb2 as _custom_pb2
9
9
  from tracdap.rt._impl.grpc.tracdap.metadata import storage_pb2 as _storage_pb2
10
+ from tracdap.rt._impl.grpc.tracdap.metadata import config_pb2 as _config_pb2
11
+ from tracdap.rt._impl.grpc.tracdap.metadata import resource_pb2 as _resource_pb2
10
12
  from google.protobuf.internal import containers as _containers
11
13
  from google.protobuf import descriptor as _descriptor
12
14
  from google.protobuf import message as _message
@@ -15,7 +17,7 @@ from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Opti
15
17
  DESCRIPTOR: _descriptor.FileDescriptor
16
18
 
17
19
  class ObjectDefinition(_message.Message):
18
- __slots__ = ("objectType", "data", "model", "flow", "job", "file", "custom", "storage", "schema", "result", "objectProps")
20
+ __slots__ = ("objectType", "data", "model", "flow", "job", "file", "custom", "storage", "schema", "result", "config", "resource", "objectProps")
19
21
  class ObjectPropsEntry(_message.Message):
20
22
  __slots__ = ("key", "value")
21
23
  KEY_FIELD_NUMBER: _ClassVar[int]
@@ -33,6 +35,8 @@ class ObjectDefinition(_message.Message):
33
35
  STORAGE_FIELD_NUMBER: _ClassVar[int]
34
36
  SCHEMA_FIELD_NUMBER: _ClassVar[int]
35
37
  RESULT_FIELD_NUMBER: _ClassVar[int]
38
+ CONFIG_FIELD_NUMBER: _ClassVar[int]
39
+ RESOURCE_FIELD_NUMBER: _ClassVar[int]
36
40
  OBJECTPROPS_FIELD_NUMBER: _ClassVar[int]
37
41
  objectType: _object_id_pb2.ObjectType
38
42
  data: _data_pb2.DataDefinition
@@ -44,5 +48,7 @@ class ObjectDefinition(_message.Message):
44
48
  storage: _storage_pb2.StorageDefinition
45
49
  schema: _data_pb2.SchemaDefinition
46
50
  result: _job_pb2.ResultDefinition
51
+ config: _config_pb2.ConfigDefinition
52
+ resource: _resource_pb2.ResourceDefinition
47
53
  objectProps: _containers.MessageMap[str, _type_pb2.Value]
48
- def __init__(self, objectType: _Optional[_Union[_object_id_pb2.ObjectType, str]] = ..., data: _Optional[_Union[_data_pb2.DataDefinition, _Mapping]] = ..., model: _Optional[_Union[_model_pb2.ModelDefinition, _Mapping]] = ..., flow: _Optional[_Union[_flow_pb2.FlowDefinition, _Mapping]] = ..., job: _Optional[_Union[_job_pb2.JobDefinition, _Mapping]] = ..., file: _Optional[_Union[_file_pb2.FileDefinition, _Mapping]] = ..., custom: _Optional[_Union[_custom_pb2.CustomDefinition, _Mapping]] = ..., storage: _Optional[_Union[_storage_pb2.StorageDefinition, _Mapping]] = ..., schema: _Optional[_Union[_data_pb2.SchemaDefinition, _Mapping]] = ..., result: _Optional[_Union[_job_pb2.ResultDefinition, _Mapping]] = ..., objectProps: _Optional[_Mapping[str, _type_pb2.Value]] = ...) -> None: ...
54
+ def __init__(self, objectType: _Optional[_Union[_object_id_pb2.ObjectType, str]] = ..., data: _Optional[_Union[_data_pb2.DataDefinition, _Mapping]] = ..., model: _Optional[_Union[_model_pb2.ModelDefinition, _Mapping]] = ..., flow: _Optional[_Union[_flow_pb2.FlowDefinition, _Mapping]] = ..., job: _Optional[_Union[_job_pb2.JobDefinition, _Mapping]] = ..., file: _Optional[_Union[_file_pb2.FileDefinition, _Mapping]] = ..., custom: _Optional[_Union[_custom_pb2.CustomDefinition, _Mapping]] = ..., storage: _Optional[_Union[_storage_pb2.StorageDefinition, _Mapping]] = ..., schema: _Optional[_Union[_data_pb2.SchemaDefinition, _Mapping]] = ..., result: _Optional[_Union[_job_pb2.ResultDefinition, _Mapping]] = ..., config: _Optional[_Union[_config_pb2.ConfigDefinition, _Mapping]] = ..., resource: _Optional[_Union[_resource_pb2.ResourceDefinition, _Mapping]] = ..., objectProps: _Optional[_Mapping[str, _type_pb2.Value]] = ...) -> None: ...