esd-services-api-client 2.6.1a149.dev16__tar.gz → 2.6.2a150.dev14__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 (58) hide show
  1. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/PKG-INFO +1 -1
  2. esd_services_api_client-2.6.2a150.dev14/esd_services_api_client/_version.py +1 -0
  3. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/beast/v3/_connector.py +1 -0
  4. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/crystal/_connector.py +1 -0
  5. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/nexus/abstractions/logger_factory.py +0 -2
  6. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/nexus/algorithms/_remote_algorithm.py +1 -0
  7. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/nexus/core/app_core.py +13 -3
  8. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/nexus/input/payload_reader.py +10 -2
  9. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/nexus/telemetry/user_telemetry_recorder.py +1 -0
  10. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/pyproject.toml +1 -1
  11. esd_services_api_client-2.6.1a149.dev16/esd_services_api_client/_version.py +0 -1
  12. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/LICENSE +0 -0
  13. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/README.md +0 -0
  14. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/__init__.py +0 -0
  15. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/beast/__init__.py +0 -0
  16. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/beast/v3/__init__.py +0 -0
  17. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/beast/v3/_models.py +0 -0
  18. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/boxer/README.md +0 -0
  19. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/boxer/__init__.py +0 -0
  20. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/boxer/_auth.py +0 -0
  21. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/boxer/_base.py +0 -0
  22. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/boxer/_connector.py +0 -0
  23. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/boxer/_models.py +0 -0
  24. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/common/__init__.py +0 -0
  25. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/crystal/__init__.py +0 -0
  26. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/crystal/_api_versions.py +0 -0
  27. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/crystal/_models.py +0 -0
  28. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/nexus/README.md +0 -0
  29. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/nexus/__init__.py +0 -0
  30. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/nexus/abstractions/__init__.py +0 -0
  31. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/nexus/abstractions/algrorithm_cache.py +0 -0
  32. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/nexus/abstractions/input_object.py +0 -0
  33. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/nexus/abstractions/nexus_object.py +0 -0
  34. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/nexus/abstractions/socket_provider.py +0 -0
  35. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/nexus/algorithms/__init__.py +0 -0
  36. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/nexus/algorithms/_baseline_algorithm.py +0 -0
  37. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/nexus/algorithms/distributed.py +0 -0
  38. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/nexus/algorithms/forked_algorithm.py +0 -0
  39. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/nexus/algorithms/minimalistic.py +0 -0
  40. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/nexus/algorithms/recursive.py +0 -0
  41. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/nexus/configurations/__init__.py +0 -0
  42. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/nexus/configurations/algorithm_configuration.py +0 -0
  43. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/nexus/core/__init__.py +0 -0
  44. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/nexus/core/app_dependencies.py +0 -0
  45. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/nexus/core/serializers.py +0 -0
  46. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/nexus/exceptions/__init__.py +0 -0
  47. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/nexus/exceptions/_nexus_error.py +0 -0
  48. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/nexus/exceptions/cache_errors.py +0 -0
  49. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/nexus/exceptions/input_reader_error.py +0 -0
  50. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/nexus/exceptions/startup_error.py +0 -0
  51. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/nexus/input/__init__.py +0 -0
  52. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/nexus/input/input_processor.py +0 -0
  53. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/nexus/input/input_reader.py +0 -0
  54. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/nexus/modules/__init__.py +0 -0
  55. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/nexus/modules/astra_client_module.py +0 -0
  56. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/nexus/modules/mlflow_module.py +0 -0
  57. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/nexus/telemetry/__init__.py +0 -0
  58. {esd_services_api_client-2.6.1a149.dev16 → esd_services_api_client-2.6.2a150.dev14}/esd_services_api_client/nexus/telemetry/recorder.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: esd-services-api-client
3
- Version: 2.6.1a149.dev16
3
+ Version: 2.6.2a150.dev14
4
4
  Summary: Python clients for ESD services
5
5
  License: Apache 2.0
6
6
  Author: ECCO Sneaks & Data
@@ -0,0 +1 @@
1
+ __version__ = 'v2.6.2a150.dev14'
@@ -220,6 +220,7 @@ class BeastConnector:
220
220
  f"Execution failed, please find request's log at: {self.base_url}/job/logs/{request_id}"
221
221
  )
222
222
 
223
+ # pylint: disable=too-many-positional-arguments
223
224
  @staticmethod
224
225
  def _report_backoff_failure(
225
226
  target: Any, args: Any, kwargs: Any, tries: int, elapsed: int, wait: int, **_
@@ -151,6 +151,7 @@ class CrystalConnector:
151
151
  def __exit__(self, exc_type, exc_val, exc_tb):
152
152
  self.dispose()
153
153
 
154
+ # pylint: disable=too-many-positional-arguments
154
155
  def create_run(
155
156
  self,
156
157
  algorithm: str,
@@ -36,8 +36,6 @@ class BootstrapLogger(LoggerInterface, ABC):
36
36
  Dummy class to separate bootstrap logging from core app loggers
37
37
  """
38
38
 
39
- pass
40
-
41
39
 
42
40
  @final
43
41
  class BootstrapLoggerFactory:
@@ -44,6 +44,7 @@ class RemoteAlgorithm(NexusObject[TPayload, AlgorithmResult]):
44
44
  Base class for all algorithm implementations.
45
45
  """
46
46
 
47
+ # pylint: disable=too-many-positional-arguments
47
48
  @inject
48
49
  def __init__(
49
50
  self,
@@ -215,6 +215,11 @@ class Nexus:
215
215
  | None = None,
216
216
  delimiter: str = ", ",
217
217
  ) -> "Nexus":
218
+ """
219
+ Adds a log `tagger` and a log `enricher` to be used with injected logger.
220
+ A log `tagger` will add key-value tags to each emitted log message, and those tags can be inferred from the payload and entrypoint arguments.
221
+ A log `enricher` will add additional static templated content to log messages, and render those templates using payload properties entrypoint argyments.
222
+ """
218
223
  self._log_tagger = tagger
219
224
  self._log_enricher = enricher
220
225
  self._log_enrichment_delimiter = delimiter
@@ -323,7 +328,9 @@ class Nexus:
323
328
  if not self._log_enricher
324
329
  else self._log_enricher(payload, self._run_args),
325
330
  fixed_template_delimiter=self._log_enrichment_delimiter,
326
- global_tags=self._log_tagger(payload, self._run_args),
331
+ global_tags=self._log_tagger(payload, self._run_args)
332
+ if self._log_tagger
333
+ else None,
327
334
  )
328
335
  # bind app-level LoggerFactory now
329
336
  self._injector.binder.bind(
@@ -378,8 +385,8 @@ class Nexus:
378
385
 
379
386
  # record telemetry
380
387
  root_logger.info(
381
- "Recording telemetry for the run {request_id}",
382
- request_id=self._run_args.request_id,
388
+ "Recording telemetry for the run {run_id}",
389
+ run_id=self._run_args.request_id,
383
390
  )
384
391
  async with telemetry_recorder as recorder:
385
392
  await recorder.record(
@@ -418,6 +425,9 @@ class Nexus:
418
425
 
419
426
  root_logger.stop()
420
427
 
428
+ if os.getenv("NEXUS__RAISE_ERROR_ON_COMPLETE") and ex is not None:
429
+ raise ex
430
+
421
431
  @classmethod
422
432
  def create(cls) -> "Nexus":
423
433
  """
@@ -1,6 +1,7 @@
1
1
  """
2
2
  Code infrastructure for manipulating payload received from Crystal SAS URI
3
3
  """
4
+ import os
4
5
 
5
6
  # Copyright (c) 2023-2024. ECCO Sneaks & Data
6
7
  #
@@ -62,8 +63,15 @@ class AlgorithmPayloadReader:
62
63
  self._http.close()
63
64
  self._http = None
64
65
 
65
- def __init__(self, payload_uri: str, payload_type: Type[AlgorithmPayload]):
66
- self._http = session_with_retries()
66
+ def __init__(
67
+ self,
68
+ payload_uri: str,
69
+ payload_type: Type[AlgorithmPayload],
70
+ ):
71
+ self._http = session_with_retries(
72
+ file_protocol_supported=os.getenv("NEXUS__SUPPORT_FILE_PROTOCOL_PAYLOADS")
73
+ is not None
74
+ )
67
75
  self._payload: Optional[AlgorithmPayload] = None
68
76
  self._payload_uri = payload_uri
69
77
  self._payload_type = payload_type
@@ -70,6 +70,7 @@ class UserTelemetryRecorder(Generic[TPayload, TResult], ABC):
70
70
  Base class for user-defined telemetry recorders.
71
71
  """
72
72
 
73
+ # pylint: disable=too-many-positional-arguments
73
74
  @inject
74
75
  def __init__(
75
76
  self,
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "esd-services-api-client"
3
- version = "v2.6.1a149.dev16"
3
+ version = "v2.6.2a150.dev14"
4
4
  description = "Python clients for ESD services"
5
5
  authors = ["ECCO Sneaks & Data <esdsupport@ecco.com>"]
6
6
  maintainers = ['GZU <gzu@ecco.com>', 'JRB <ext-jrb@ecco.com>', 'VISA <visa@ecco.com>']
@@ -1 +0,0 @@
1
- __version__ = 'v2.6.1a149.dev16'