esd-services-api-client 2.6.2a150.dev14__tar.gz → 2.6.2a158.dev2__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.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/PKG-INFO +2 -2
  2. esd_services_api_client-2.6.2a158.dev2/esd_services_api_client/_version.py +1 -0
  3. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/beast/v3/_connector.py +0 -1
  4. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/crystal/_connector.py +0 -1
  5. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/nexus/algorithms/_remote_algorithm.py +0 -1
  6. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/nexus/core/app_core.py +1 -6
  7. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/nexus/core/serializers.py +5 -5
  8. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/nexus/input/payload_reader.py +3 -11
  9. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/nexus/telemetry/user_telemetry_recorder.py +7 -6
  10. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/pyproject.toml +2 -2
  11. esd_services_api_client-2.6.2a150.dev14/esd_services_api_client/_version.py +0 -1
  12. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/LICENSE +0 -0
  13. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/README.md +0 -0
  14. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/__init__.py +0 -0
  15. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/beast/__init__.py +0 -0
  16. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/beast/v3/__init__.py +0 -0
  17. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/beast/v3/_models.py +0 -0
  18. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/boxer/README.md +0 -0
  19. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/boxer/__init__.py +0 -0
  20. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/boxer/_auth.py +0 -0
  21. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/boxer/_base.py +0 -0
  22. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/boxer/_connector.py +0 -0
  23. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/boxer/_models.py +0 -0
  24. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/common/__init__.py +0 -0
  25. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/crystal/__init__.py +0 -0
  26. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/crystal/_api_versions.py +0 -0
  27. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/crystal/_models.py +0 -0
  28. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/nexus/README.md +0 -0
  29. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/nexus/__init__.py +0 -0
  30. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/nexus/abstractions/__init__.py +0 -0
  31. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/nexus/abstractions/algrorithm_cache.py +0 -0
  32. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/nexus/abstractions/input_object.py +0 -0
  33. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/nexus/abstractions/logger_factory.py +0 -0
  34. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/nexus/abstractions/nexus_object.py +0 -0
  35. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/nexus/abstractions/socket_provider.py +0 -0
  36. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/nexus/algorithms/__init__.py +0 -0
  37. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/nexus/algorithms/_baseline_algorithm.py +0 -0
  38. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/nexus/algorithms/distributed.py +0 -0
  39. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/nexus/algorithms/forked_algorithm.py +0 -0
  40. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/nexus/algorithms/minimalistic.py +0 -0
  41. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/nexus/algorithms/recursive.py +0 -0
  42. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/nexus/configurations/__init__.py +0 -0
  43. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/nexus/configurations/algorithm_configuration.py +0 -0
  44. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/nexus/core/__init__.py +0 -0
  45. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/nexus/core/app_dependencies.py +0 -0
  46. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/nexus/exceptions/__init__.py +0 -0
  47. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/nexus/exceptions/_nexus_error.py +0 -0
  48. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/nexus/exceptions/cache_errors.py +0 -0
  49. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/nexus/exceptions/input_reader_error.py +0 -0
  50. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/nexus/exceptions/startup_error.py +0 -0
  51. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/nexus/input/__init__.py +0 -0
  52. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/nexus/input/input_processor.py +0 -0
  53. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/nexus/input/input_reader.py +0 -0
  54. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/nexus/modules/__init__.py +0 -0
  55. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/nexus/modules/astra_client_module.py +0 -0
  56. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/nexus/modules/mlflow_module.py +0 -0
  57. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/esd_services_api_client/nexus/telemetry/__init__.py +0 -0
  58. {esd_services_api_client-2.6.2a150.dev14 → esd_services_api_client-2.6.2a158.dev2}/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.2a150.dev14
3
+ Version: 2.6.2a158.dev2
4
4
  Summary: Python clients for ESD services
5
5
  License: Apache 2.0
6
6
  Author: ECCO Sneaks & Data
@@ -13,7 +13,7 @@ Classifier: Programming Language :: Python :: 3
13
13
  Classifier: Programming Language :: Python :: 3.11
14
14
  Provides-Extra: azure
15
15
  Provides-Extra: nexus
16
- Requires-Dist: adapta[datadog,storage] (>=3.3,<4.0)
16
+ Requires-Dist: adapta[datadog,storage] (>=3.4,<3.5)
17
17
  Requires-Dist: azure-identity (>=1.7,<1.8) ; extra == "azure"
18
18
  Requires-Dist: dataclasses-json (>=0.6.0,<0.7.0)
19
19
  Requires-Dist: httpx (>=0.27.0,<0.28.0) ; extra == "nexus"
@@ -0,0 +1 @@
1
+ __version__ = 'v2.6.2a158.dev2'
@@ -220,7 +220,6 @@ 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
224
223
  @staticmethod
225
224
  def _report_backoff_failure(
226
225
  target: Any, args: Any, kwargs: Any, tries: int, elapsed: int, wait: int, **_
@@ -151,7 +151,6 @@ 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
155
154
  def create_run(
156
155
  self,
157
156
  algorithm: str,
@@ -44,7 +44,6 @@ class RemoteAlgorithm(NexusObject[TPayload, AlgorithmResult]):
44
44
  Base class for all algorithm implementations.
45
45
  """
46
46
 
47
- # pylint: disable=too-many-positional-arguments
48
47
  @inject
49
48
  def __init__(
50
49
  self,
@@ -328,9 +328,7 @@ class Nexus:
328
328
  if not self._log_enricher
329
329
  else self._log_enricher(payload, self._run_args),
330
330
  fixed_template_delimiter=self._log_enrichment_delimiter,
331
- global_tags=self._log_tagger(payload, self._run_args)
332
- if self._log_tagger
333
- else None,
331
+ global_tags=self._log_tagger(payload, self._run_args),
334
332
  )
335
333
  # bind app-level LoggerFactory now
336
334
  self._injector.binder.bind(
@@ -425,9 +423,6 @@ class Nexus:
425
423
 
426
424
  root_logger.stop()
427
425
 
428
- if os.getenv("NEXUS__RAISE_ERROR_ON_COMPLETE") and ex is not None:
429
- raise ex
430
-
431
426
  @classmethod
432
427
  def create(cls) -> "Nexus":
433
428
  """
@@ -2,10 +2,10 @@
2
2
  from typing import final, Any, TypeVar, Type
3
3
 
4
4
  import pandas
5
- from adapta.storage.models.format import (
6
- DataFrameParquetSerializationFormat,
5
+ from adapta.storage.models.format import SerializationFormat
6
+ from adapta.storage.models.formatters import (
7
+ PandasDataFrameParquetSerializationFormat,
7
8
  DictJsonSerializationFormat,
8
- SerializationFormat,
9
9
  )
10
10
 
11
11
  T = TypeVar("T") # pylint: disable=C0103
@@ -59,7 +59,7 @@ class TelemetrySerializer(Serializer):
59
59
  def __init__(self):
60
60
  super().__init__(
61
61
  default_serialization_formats={
62
- pandas.DataFrame: DataFrameParquetSerializationFormat,
62
+ pandas.DataFrame: PandasDataFrameParquetSerializationFormat,
63
63
  dict: DictJsonSerializationFormat,
64
64
  }
65
65
  )
@@ -72,7 +72,7 @@ class ResultSerializer(Serializer):
72
72
  def __init__(self):
73
73
  super().__init__(
74
74
  default_serialization_formats={
75
- pandas.DataFrame: DataFrameParquetSerializationFormat,
75
+ pandas.DataFrame: PandasDataFrameParquetSerializationFormat,
76
76
  dict: DictJsonSerializationFormat,
77
77
  }
78
78
  )
@@ -1,7 +1,6 @@
1
1
  """
2
2
  Code infrastructure for manipulating payload received from Crystal SAS URI
3
3
  """
4
- import os
5
4
 
6
5
  # Copyright (c) 2023-2024. ECCO Sneaks & Data
7
6
  #
@@ -22,7 +21,7 @@ from dataclasses import dataclass
22
21
 
23
22
  from typing import final, Optional, Type
24
23
 
25
- from adapta.storage.models.format import DictJsonSerializationFormat
24
+ from adapta.storage.models.formatters import DictJsonSerializationFormat
26
25
  from adapta.utils import session_with_retries
27
26
 
28
27
  from dataclasses_json import DataClassJsonMixin
@@ -63,15 +62,8 @@ class AlgorithmPayloadReader:
63
62
  self._http.close()
64
63
  self._http = None
65
64
 
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
- )
65
+ def __init__(self, payload_uri: str, payload_type: Type[AlgorithmPayload]):
66
+ self._http = session_with_retries()
75
67
  self._payload: Optional[AlgorithmPayload] = None
76
68
  self._payload_uri = payload_uri
77
69
  self._payload_type = payload_type
@@ -43,7 +43,9 @@ class UserTelemetry:
43
43
  """
44
44
 
45
45
  def __init__(
46
- self, telemetry: DataFrame, *telemetry_path_segments: UserTelemetryPathSegment
46
+ self,
47
+ telemetry: DataFrame,
48
+ *telemetry_path_segments: UserTelemetryPathSegment,
47
49
  ):
48
50
  self._telemetry = telemetry
49
51
  self._telemetry_path_segments = telemetry_path_segments
@@ -70,7 +72,6 @@ class UserTelemetryRecorder(Generic[TPayload, TResult], ABC):
70
72
  Base class for user-defined telemetry recorders.
71
73
  """
72
74
 
73
- # pylint: disable=too-many-positional-arguments
74
75
  @inject
75
76
  def __init__(
76
77
  self,
@@ -144,6 +145,8 @@ class UserTelemetryRecorder(Generic[TPayload, TResult], ABC):
144
145
  )
145
146
  return
146
147
 
148
+ serializer = self._serializer.get_serialization_format(telemetry.telemetry)
149
+
147
150
  self._storage_client.save_data_as_blob(
148
151
  data=telemetry.telemetry,
149
152
  blob_path=DataSocket(
@@ -153,13 +156,11 @@ class UserTelemetryRecorder(Generic[TPayload, TResult], ABC):
153
156
  "telemetry_group=user",
154
157
  f"recorder_class={self.__class__.alias()}",
155
158
  telemetry.telemetry_path, # path join eliminates empty segments
156
- run_id,
159
+ serializer.get_output_name(output_name=run_id),
157
160
  ),
158
161
  data_format="null",
159
162
  ).parse_data_path(),
160
- serialization_format=self._serializer.get_serialization_format(
161
- telemetry.telemetry
162
- ),
163
+ serialization_format=serializer,
163
164
  overwrite=True,
164
165
  )
165
166
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "esd-services-api-client"
3
- version = "v2.6.2a150.dev14"
3
+ version = "v2.6.2a158.dev2"
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>']
@@ -10,7 +10,7 @@ repository = 'https://github.com/SneaksAndData/esd-services-api-client'
10
10
 
11
11
  [tool.poetry.dependencies]
12
12
  python = ">=3.11,<3.12"
13
- adapta = { version = "^3.3", extras = ["storage", "datadog"] }
13
+ adapta = { version = "~3.4", extras = ["storage", "datadog"] }
14
14
  dataclasses-json = "^0.6.0"
15
15
  pycryptodome = "~3.15"
16
16
  azure-identity = { version = "~1.7", optional = true }
@@ -1 +0,0 @@
1
- __version__ = 'v2.6.2a150.dev14'