tracdap-runtime 0.8.0b1__py3-none-any.whl → 0.8.0b3__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 (48) hide show
  1. tracdap/rt/_impl/core/__init__.py +14 -0
  2. tracdap/rt/_impl/{config_parser.py → core/config_parser.py} +14 -7
  3. tracdap/rt/_impl/{data.py → core/data.py} +3 -3
  4. tracdap/rt/_impl/core/logging.py +195 -0
  5. tracdap/rt/_impl/{models.py → core/models.py} +7 -6
  6. tracdap/rt/_impl/{repos.py → core/repos.py} +5 -3
  7. tracdap/rt/_impl/{schemas.py → core/schemas.py} +5 -5
  8. tracdap/rt/_impl/{shim.py → core/shim.py} +5 -4
  9. tracdap/rt/_impl/{storage.py → core/storage.py} +7 -6
  10. tracdap/rt/_impl/{util.py → core/util.py} +0 -110
  11. tracdap/rt/_impl/{validation.py → core/validation.py} +4 -3
  12. tracdap/rt/_impl/exec/__init__.py +14 -0
  13. tracdap/rt/{_exec → _impl/exec}/actors.py +12 -14
  14. tracdap/rt/{_exec → _impl/exec}/context.py +30 -14
  15. tracdap/rt/{_exec → _impl/exec}/dev_mode.py +8 -7
  16. tracdap/rt/{_exec → _impl/exec}/engine.py +227 -104
  17. tracdap/rt/{_exec → _impl/exec}/functions.py +36 -57
  18. tracdap/rt/{_exec → _impl/exec}/graph.py +2 -21
  19. tracdap/rt/{_exec → _impl/exec}/graph_builder.py +33 -19
  20. tracdap/rt/{_exec → _impl/grpc}/server.py +7 -6
  21. tracdap/rt/_impl/grpc/tracdap/metadata/job_pb2.py +64 -62
  22. tracdap/rt/_impl/grpc/tracdap/metadata/job_pb2.pyi +16 -2
  23. tracdap/rt/_impl/grpc/tracdap/metadata/object_id_pb2.py +3 -3
  24. tracdap/rt/_impl/grpc/tracdap/metadata/object_id_pb2.pyi +2 -0
  25. tracdap/rt/_impl/grpc/tracdap/metadata/object_pb2.py +4 -4
  26. tracdap/rt/_impl/grpc/tracdap/metadata/object_pb2.pyi +4 -2
  27. tracdap/rt/{_exec → _impl}/runtime.py +13 -12
  28. tracdap/rt/_impl/static_api.py +4 -4
  29. tracdap/rt/_plugins/format_csv.py +1 -1
  30. tracdap/rt/_plugins/storage_sql.py +1 -1
  31. tracdap/rt/_version.py +1 -1
  32. tracdap/rt/config/__init__.py +1 -0
  33. tracdap/rt/config/platform.py +8 -0
  34. tracdap/rt/ext/embed.py +2 -2
  35. tracdap/rt/ext/plugins.py +3 -3
  36. tracdap/rt/launch/launch.py +3 -3
  37. tracdap/rt/metadata/__init__.py +1 -0
  38. tracdap/rt/metadata/job.py +16 -0
  39. tracdap/rt/metadata/object.py +2 -0
  40. tracdap/rt/metadata/object_id.py +2 -0
  41. {tracdap_runtime-0.8.0b1.dist-info → tracdap_runtime-0.8.0b3.dist-info}/METADATA +2 -2
  42. {tracdap_runtime-0.8.0b1.dist-info → tracdap_runtime-0.8.0b3.dist-info}/RECORD +47 -45
  43. {tracdap_runtime-0.8.0b1.dist-info → tracdap_runtime-0.8.0b3.dist-info}/WHEEL +1 -1
  44. tracdap/rt/_exec/__init__.py +0 -0
  45. /tracdap/rt/_impl/{guard_rails.py → core/guard_rails.py} +0 -0
  46. /tracdap/rt/_impl/{type_system.py → core/type_system.py} +0 -0
  47. {tracdap_runtime-0.8.0b1.dist-info → tracdap_runtime-0.8.0b3.dist-info}/LICENSE +0 -0
  48. {tracdap_runtime-0.8.0b1.dist-info → tracdap_runtime-0.8.0b3.dist-info}/top_level.txt +0 -0
@@ -13,8 +13,6 @@
13
13
  # See the License for the specific language governing permissions and
14
14
  # limitations under the License.
15
15
 
16
- from __future__ import annotations
17
-
18
16
  import logging
19
17
  import threading
20
18
  import functools as func
@@ -25,8 +23,8 @@ import inspect
25
23
  import queue
26
24
  import time
27
25
 
28
- import tracdap.rt._impl.util as util # noqa
29
- import tracdap.rt._impl.validation as _val # noqa
26
+ import tracdap.rt._impl.core.logging as _logging
27
+ import tracdap.rt._impl.core.validation as _val
30
28
  import tracdap.rt.exceptions as _ex
31
29
 
32
30
 
@@ -118,7 +116,7 @@ class Actor:
118
116
  def error(self) -> tp.Optional[Exception]:
119
117
  return self.__ctx.get_error()
120
118
 
121
- def actors(self) -> ActorContext:
119
+ def actors(self) -> "ActorContext":
122
120
  return self.__ctx
123
121
 
124
122
  def on_start(self):
@@ -134,7 +132,7 @@ class Actor:
134
132
  class ActorContext:
135
133
 
136
134
  def __init__(
137
- self, node: ActorNode, message: str,
135
+ self, node: "ActorNode", message: str,
138
136
  current_actor: ActorId, parent: ActorId, sender: tp.Optional[ActorId]):
139
137
 
140
138
  self.__node = node
@@ -188,13 +186,13 @@ class ThreadsafeActor(Actor):
188
186
  super().__init__()
189
187
  self.__threadsafe: tp.Optional[ThreadsafeContext] = None
190
188
 
191
- def threadsafe(self) -> ThreadsafeContext:
189
+ def threadsafe(self) -> "ThreadsafeContext":
192
190
  return self.__threadsafe
193
191
 
194
192
 
195
193
  class ThreadsafeContext:
196
194
 
197
- def __init__(self, node: ActorNode):
195
+ def __init__(self, node: "ActorNode"):
198
196
  self.__node = node
199
197
  self.__id = node.actor_id
200
198
  self.__parent = node.parent.actor_id if node.parent is not None else None
@@ -235,7 +233,7 @@ class EventLoop:
235
233
  self.__shutdown = False
236
234
  self.__shutdown_now = False
237
235
  self.__done = False
238
- self.__log = util.logger_for_object(self)
236
+ self.__log = _logging.logger_for_object(self)
239
237
 
240
238
  def post_message(self, msg: _T_MSG, processor: tp.Callable[[_T_MSG], None]) -> bool:
241
239
  with self.__msg_lock:
@@ -365,12 +363,12 @@ class FunctionCache:
365
363
 
366
364
  class ActorNode:
367
365
 
368
- _log = util.logger_for_class(Actor)
366
+ _log = _logging.logger_for_class(Actor)
369
367
 
370
368
  def __init__(
371
369
  self, actor_id: ActorId, actor: Actor,
372
- parent: tp.Optional[ActorNode],
373
- system: ActorSystem,
370
+ parent: "tp.Optional[ActorNode]",
371
+ system: "ActorSystem",
374
372
  event_loop: EventLoop):
375
373
 
376
374
  self.actor_id = actor_id
@@ -483,7 +481,7 @@ class ActorNode:
483
481
 
484
482
  target_node._accept(msg)
485
483
 
486
- def _lookup_node(self, target_id: ActorId) -> tp.Optional[ActorNode]:
484
+ def _lookup_node(self, target_id: ActorId) -> "tp.Optional[ActorNode]":
487
485
 
488
486
  # Check self first
489
487
 
@@ -904,7 +902,7 @@ class ActorSystem:
904
902
 
905
903
  super().__init__()
906
904
 
907
- self._log = util.logger_for_object(self)
905
+ self._log = _logging.logger_for_object(self)
908
906
 
909
907
  # self.__actors: tp.Dict[ActorId, ActorNode] = {self.__ROOT_ID: ActorNode("", self.__ROOT_ID, None)}
910
908
  # self.__message_queue: tp.List[Msg] = list()
@@ -26,11 +26,12 @@ import tracdap.rt.api as _api
26
26
  import tracdap.rt.api.experimental as _eapi
27
27
  import tracdap.rt.metadata as _meta
28
28
  import tracdap.rt.exceptions as _ex
29
- import tracdap.rt._impl.type_system as _types # noqa
30
- import tracdap.rt._impl.data as _data # noqa
31
- import tracdap.rt._impl.storage as _storage # noqa
32
- import tracdap.rt._impl.util as _util # noqa
33
- import tracdap.rt._impl.validation as _val # noqa
29
+ import tracdap.rt._impl.core.data as _data
30
+ import tracdap.rt._impl.core.logging as _logging
31
+ import tracdap.rt._impl.core.storage as _storage
32
+ import tracdap.rt._impl.core.type_system as _types
33
+ import tracdap.rt._impl.core.util as _util
34
+ import tracdap.rt._impl.core.validation as _val
34
35
 
35
36
 
36
37
  class TracContextImpl(_api.TracContext):
@@ -63,10 +64,15 @@ class TracContextImpl(_api.TracContext):
63
64
  model_class: _api.TracModel.__class__,
64
65
  local_ctx: tp.Dict[str, tp.Any],
65
66
  dynamic_outputs: tp.List[str] = None,
66
- checkout_directory: pathlib.Path = None):
67
+ checkout_directory: pathlib.Path = None,
68
+ log_provider: _logging.LogProvider = None):
67
69
 
68
- self.__ctx_log = _util.logger_for_object(self)
69
- self.__model_log = _util.logger_for_class(model_class)
70
+ # If no log provider is supplied, use the default (system logs only)
71
+ if log_provider is None:
72
+ log_provider = _logging.LogProvider()
73
+
74
+ self.__ctx_log = log_provider.logger_for_object(self)
75
+ self.__model_log = log_provider.logger_for_class(model_class)
70
76
 
71
77
  self.__model_def = model_def
72
78
  self.__model_class = model_class
@@ -368,9 +374,9 @@ class TracDataContextImpl(TracContextImpl, _eapi.TracDataContext):
368
374
  self, model_def: _meta.ModelDefinition, model_class: _api.TracModel.__class__,
369
375
  local_ctx: tp.Dict[str, tp.Any], dynamic_outputs: tp.List[str],
370
376
  storage_map: tp.Dict[str, tp.Union[_eapi.TracFileStorage, _eapi.TracDataStorage]],
371
- checkout_directory: pathlib.Path = None):
377
+ checkout_directory: pathlib.Path = None, log_provider: _logging.LogProvider = None):
372
378
 
373
- super().__init__(model_def, model_class, local_ctx, dynamic_outputs, checkout_directory)
379
+ super().__init__(model_def, model_class, local_ctx, dynamic_outputs, checkout_directory, log_provider)
374
380
 
375
381
  self.__model_def = model_def
376
382
  self.__local_ctx = local_ctx
@@ -460,7 +466,9 @@ class TracDataContextImpl(TracContextImpl, _eapi.TracDataContext):
460
466
 
461
467
  class TracFileStorageImpl(_eapi.TracFileStorage):
462
468
 
463
- def __init__(self, storage_key: str, storage_impl: _storage.IFileStorage, write_access: bool, checkout_directory):
469
+ def __init__(
470
+ self, storage_key: str, storage_impl: _storage.IFileStorage,
471
+ write_access: bool, checkout_directory, log_provider: _logging.LogProvider):
464
472
 
465
473
  self.__storage_key = storage_key
466
474
 
@@ -481,7 +489,11 @@ class TracFileStorageImpl(_eapi.TracFileStorage):
481
489
  self.__rmdir = None
482
490
  self.__write_byte_stream = None
483
491
 
484
- self.__log = _util.logger_for_object(self)
492
+ # If no log provider is supplied, use the default (system logs only)
493
+ if log_provider is None:
494
+ log_provider = _logging.LogProvider()
495
+
496
+ self.__log = log_provider.logger_for_object(self)
485
497
  self.__val = TracStorageValidator(self.__log, checkout_directory, self.__storage_key)
486
498
 
487
499
  def get_storage_key(self) -> str:
@@ -602,7 +614,7 @@ class TracDataStorageImpl(_eapi.TracDataStorage[_eapi.DATA_API]):
602
614
  def __init__(
603
615
  self, storage_key: str, storage_impl: _storage.IDataStorageBase[_data.T_INTERNAL_DATA, _data.T_INTERNAL_SCHEMA],
604
616
  data_converter: _data.DataConverter[_eapi.DATA_API, _data.T_INTERNAL_DATA, _data.T_INTERNAL_SCHEMA],
605
- write_access: bool, checkout_directory):
617
+ write_access: bool, checkout_directory, log_provider: _logging.LogProvider):
606
618
 
607
619
  self.__storage_key = storage_key
608
620
  self.__converter = data_converter
@@ -619,7 +631,11 @@ class TracDataStorageImpl(_eapi.TracDataStorage[_eapi.DATA_API]):
619
631
  self.__create_table = None
620
632
  self.__write_table = None
621
633
 
622
- self.__log = _util.logger_for_object(self)
634
+ # If no log provider is supplied, use the default (system logs only)
635
+ if log_provider is None:
636
+ log_provider = _logging.LogProvider()
637
+
638
+ self.__log = log_provider.logger_for_object(self)
623
639
  self.__val = TracStorageValidator(self.__log, checkout_directory, self.__storage_key)
624
640
 
625
641
  def has_table(self, table_name: str) -> bool:
@@ -22,11 +22,12 @@ import tracdap.rt.api as _api
22
22
  import tracdap.rt.config as _cfg
23
23
  import tracdap.rt.metadata as _meta
24
24
  import tracdap.rt.exceptions as _ex
25
- import tracdap.rt._impl.config_parser as _cfg_p # noqa
26
- import tracdap.rt._impl.models as _models # noqa
27
- import tracdap.rt._impl.storage as _storage # noqa
28
- import tracdap.rt._impl.type_system as _types # noqa
29
- import tracdap.rt._impl.util as _util # noqa
25
+ import tracdap.rt._impl.core.config_parser as _cfg_p
26
+ import tracdap.rt._impl.core.logging as _logging
27
+ import tracdap.rt._impl.core.models as _models
28
+ import tracdap.rt._impl.core.storage as _storage
29
+ import tracdap.rt._impl.core.type_system as _types
30
+ import tracdap.rt._impl.core.util as _util
30
31
 
31
32
 
32
33
  DEV_MODE_JOB_CONFIG = [
@@ -50,7 +51,7 @@ DEV_MODE_SYS_CONFIG = []
50
51
 
51
52
  class DevModeTranslator:
52
53
 
53
- _log: tp.Optional[_util.logging.Logger] = None
54
+ _log: tp.Optional[_logging.Logger] = None
54
55
 
55
56
  @classmethod
56
57
  def translate_sys_config(cls, sys_config: _cfg.RuntimeConfig, config_mgr: _cfg_p.ConfigManager):
@@ -1039,4 +1040,4 @@ class DevModeTranslator:
1039
1040
 
1040
1041
 
1041
1042
 
1042
- DevModeTranslator._log = _util.logger_for_class(DevModeTranslator)
1043
+ DevModeTranslator._log = _logging.logger_for_class(DevModeTranslator)