adapta 3.3.1a500.dev4__tar.gz → 3.3.2a501.dev4__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 (134) hide show
  1. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/PKG-INFO +1 -1
  2. adapta-3.3.2a501.dev4/adapta/_version.py +1 -0
  3. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/ml/mlflow/_client.py +21 -1
  4. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/ml/mlflow/_functions.py +11 -5
  5. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/pyproject.toml +1 -1
  6. adapta-3.3.1a500.dev4/adapta/_version.py +0 -1
  7. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/LICENSE +0 -0
  8. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/README.md +0 -0
  9. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/__init__.py +0 -0
  10. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/connectors/__init__.py +0 -0
  11. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/connectors/service_bus/__init__.py +0 -0
  12. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/connectors/service_bus/_connector.py +0 -0
  13. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/logs/README.md +0 -0
  14. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/logs/__init__.py +0 -0
  15. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/logs/_async_logger.py +0 -0
  16. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/logs/_base.py +0 -0
  17. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/logs/_internal.py +0 -0
  18. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/logs/_internal_logger.py +0 -0
  19. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/logs/_logger_interface.py +0 -0
  20. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/logs/handlers/__init__.py +0 -0
  21. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/logs/handlers/datadog_api_handler.py +0 -0
  22. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/logs/handlers/safe_stream_handler.py +0 -0
  23. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/logs/models/__init__.py +0 -0
  24. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/logs/models/_log_level.py +0 -0
  25. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/logs/models/_logs_metadata.py +0 -0
  26. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/metrics/__init__.py +0 -0
  27. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/metrics/_base.py +0 -0
  28. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/metrics/providers/README.md +0 -0
  29. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/metrics/providers/__init__.py +0 -0
  30. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/metrics/providers/datadog_provider.py +0 -0
  31. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/ml/__init__.py +0 -0
  32. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/ml/_model.py +0 -0
  33. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/ml/mlflow/__init__.py +0 -0
  34. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/process_communication/__init__.py +0 -0
  35. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/process_communication/_models.py +0 -0
  36. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/schema_management/README.md +0 -0
  37. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/schema_management/__init__.py +0 -0
  38. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/schema_management/schema_entity.py +0 -0
  39. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/security/__init__.py +0 -0
  40. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/security/clients/README.md +0 -0
  41. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/security/clients/__init__.py +0 -0
  42. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/security/clients/_azure_client.py +0 -0
  43. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/security/clients/_base.py +0 -0
  44. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/security/clients/_local_client.py +0 -0
  45. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/security/clients/aws/__init__.py +0 -0
  46. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/security/clients/aws/_aws_client.py +0 -0
  47. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/security/clients/aws/_aws_credentials.py +0 -0
  48. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/security/clients/hashicorp_vault/__init__.py +0 -0
  49. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/security/clients/hashicorp_vault/hashicorp_vault_client.py +0 -0
  50. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/security/clients/hashicorp_vault/kubernetes_client.py +0 -0
  51. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/security/clients/hashicorp_vault/oidc_client.py +0 -0
  52. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/security/clients/hashicorp_vault/token_client.py +0 -0
  53. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/__init__.py +0 -0
  54. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/blob/README.md +0 -0
  55. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/blob/__init__.py +0 -0
  56. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/blob/azure_storage_client.py +0 -0
  57. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/blob/base.py +0 -0
  58. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/blob/local_storage_client.py +0 -0
  59. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/blob/s3_storage_client.py +0 -0
  60. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/cache/__init__.py +0 -0
  61. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/cache/_base.py +0 -0
  62. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/cache/redis_cache.py +0 -0
  63. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/database/__init__.py +0 -0
  64. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/database/v2/README.md +0 -0
  65. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/database/v2/__init__.py +0 -0
  66. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/database/v2/azure_sql.py +0 -0
  67. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/database/v2/models/__init__.py +0 -0
  68. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/database/v2/models/_models.py +0 -0
  69. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/database/v2/odbc.py +0 -0
  70. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/database/v2/snowflake_sql.py +0 -0
  71. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/database/v2/trino_sql.py +0 -0
  72. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/database/v3/README.md +0 -0
  73. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/database/v3/__init__.py +0 -0
  74. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/database/v3/azure_sql.py +0 -0
  75. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/database/v3/models/__init__.py +0 -0
  76. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/database/v3/models/_models.py +0 -0
  77. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/database/v3/odbc.py +0 -0
  78. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/database/v3/snowflake_sql.py +0 -0
  79. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/database/v3/trino_sql.py +0 -0
  80. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/delta_lake/__init__.py +0 -0
  81. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/delta_lake/v2/README.md +0 -0
  82. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/delta_lake/v2/__init__.py +0 -0
  83. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/delta_lake/v2/_functions.py +0 -0
  84. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/delta_lake/v2/_models.py +0 -0
  85. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/delta_lake/v3/README.md +0 -0
  86. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/delta_lake/v3/__init__.py +0 -0
  87. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/delta_lake/v3/_functions.py +0 -0
  88. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/delta_lake/v3/_models.py +0 -0
  89. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/distributed_object_store/__init__.py +0 -0
  90. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/distributed_object_store/v2/__init__.py +0 -0
  91. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/distributed_object_store/v2/datastax_astra/README.md +0 -0
  92. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/distributed_object_store/v2/datastax_astra/__init__.py +0 -0
  93. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/distributed_object_store/v2/datastax_astra/_models.py +0 -0
  94. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/distributed_object_store/v2/datastax_astra/astra_client.py +0 -0
  95. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/distributed_object_store/v3/__init__.py +0 -0
  96. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/distributed_object_store/v3/datastax_astra/README.md +0 -0
  97. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/distributed_object_store/v3/datastax_astra/__init__.py +0 -0
  98. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/distributed_object_store/v3/datastax_astra/_model_mappers.py +0 -0
  99. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/distributed_object_store/v3/datastax_astra/_models.py +0 -0
  100. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/distributed_object_store/v3/datastax_astra/astra_client.py +0 -0
  101. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/exceptions.py +0 -0
  102. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/models/__init__.py +0 -0
  103. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/models/_functions.py +0 -0
  104. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/models/astra.py +0 -0
  105. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/models/aws.py +0 -0
  106. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/models/azure.py +0 -0
  107. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/models/base.py +0 -0
  108. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/models/filter_expression.py +0 -0
  109. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/models/format.py +0 -0
  110. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/models/hive.py +0 -0
  111. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/models/local.py +0 -0
  112. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/query_enabled_store/README.md +0 -0
  113. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/query_enabled_store/__init__.py +0 -0
  114. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/query_enabled_store/_models.py +0 -0
  115. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/query_enabled_store/_qes_astra.py +0 -0
  116. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/query_enabled_store/_qes_delta.py +0 -0
  117. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/query_enabled_store/_qes_local.py +0 -0
  118. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/secrets/README.md +0 -0
  119. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/secrets/__init__.py +0 -0
  120. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/secrets/_base.py +0 -0
  121. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/secrets/azure_secret_client.py +0 -0
  122. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/storage/secrets/hashicorp_vault_secret_storage_client.py +0 -0
  123. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/utils/README.md +0 -0
  124. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/utils/__init__.py +0 -0
  125. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/utils/_common.py +0 -0
  126. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/utils/concurrent_task_runner.py +0 -0
  127. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/utils/data_structures/__init__.py +0 -0
  128. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/utils/data_structures/_functions.py +0 -0
  129. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/utils/decorators/__init__.py +0 -0
  130. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/utils/decorators/_logging.py +0 -0
  131. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/utils/decorators/_rate_limit.py +0 -0
  132. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/utils/metaframe.py +0 -0
  133. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/utils/python_typing/__init__.py +0 -0
  134. {adapta-3.3.1a500.dev4 → adapta-3.3.2a501.dev4}/adapta/utils/python_typing/_functions.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: adapta
3
- Version: 3.3.1a500.dev4
3
+ Version: 3.3.2a501.dev4
4
4
  Summary: Logging, data connectors, monitoring, secret handling and general lifehacks to make data people lives easier.
5
5
  License: Apache 2.0
6
6
  Author: ECCO Sneaks & Data
@@ -0,0 +1 @@
1
+ __version__ = 'v3.3.2a501.dev4'
@@ -80,7 +80,7 @@ class MlflowBasicClient:
80
80
  """
81
81
  return self._client.get_model_version_by_alias(model_name, alias)
82
82
 
83
- def _get_artifact_repo_backported(self, run_id) -> mlflow.store.artifact_repo.ArtifactRepository:
83
+ def _get_artifact_repo_backported(self, run_id: str) -> mlflow.store.artifact_repo.ArtifactRepository:
84
84
  run = self._client.get_run(run_id)
85
85
 
86
86
  artifact_uri = (
@@ -137,6 +137,26 @@ class MlflowBasicClient:
137
137
  version=model_version,
138
138
  )
139
139
 
140
+ def log_dict(self, artifact: dict, artifact_path: str, run_id: str):
141
+ """
142
+ inherited the logging dictionary in Mlflow
143
+
144
+ :param artifact: dictionary to log
145
+ :param artifact_path: artifact path
146
+ :param run_id: run id
147
+ """
148
+ self._client.log_dict(run_id=run_id, dictionary=artifact, artifact_file=artifact_path)
149
+
150
+ def log_metric(self, run_id: str, metric_name: str, metric_value: float):
151
+ """
152
+ inherited the logging metric in Mlflow
153
+
154
+ :param run_id: run id
155
+ :param metric_name: metric name
156
+ :param metric_value: metric value
157
+ """
158
+ self._client.log_metric(run_id=run_id, key=metric_name, value=metric_value)
159
+
140
160
  @staticmethod
141
161
  def load_model_by_name(model_name: str, stage_or_version: str) -> PyFuncModel:
142
162
  """
@@ -18,7 +18,7 @@ import configparser
18
18
  import importlib
19
19
  import pathlib
20
20
  import tempfile
21
- from typing import Optional, Dict, Any
21
+ from typing import Optional, Dict, Any, Literal
22
22
 
23
23
  import mlflow
24
24
  from mlflow.pyfunc import PythonModel
@@ -52,12 +52,13 @@ def register_mlflow_model(
52
52
  model_name: str,
53
53
  experiment: str,
54
54
  run_name: str = None,
55
- transition_to_stage: str = None,
56
- version_alias: str = None,
55
+ transition_to_stage: Optional[Literal["Staging", "Production"]] = None,
56
+ parent_run_id: Optional[str] = None,
57
+ version_alias: Optional[str] = None,
57
58
  metrics: Optional[Dict[str, float]] = None,
58
59
  model_params: Optional[Dict[str, Any]] = None,
59
60
  artifacts_to_log: Dict[str, str] = None,
60
- ):
61
+ ) -> str:
61
62
  """Registers mlflow model
62
63
 
63
64
  :param model: Machine learning model to register
@@ -65,11 +66,14 @@ def register_mlflow_model(
65
66
  :param model_name: Name of Mlflow model
66
67
  :param experiment: Name of Mlflow experiment
67
68
  :param run_name: Name of Mlflow run
69
+ :param parent_run_id: Parent run id
68
70
  :param transition_to_stage: Whether to transition to stage
69
71
  :param version_alias: Alias to assign to model
70
72
  :param metrics: Metrics to log
71
73
  :param model_params: Model hyperparameters to log
72
74
  :param artifacts_to_log: Additional artifacts to log
75
+
76
+ :return: Run id of the newly created run for registering the model
73
77
  """
74
78
  assert transition_to_stage in [None, "Staging", "Production"]
75
79
 
@@ -98,7 +102,7 @@ def register_mlflow_model(
98
102
  raise ValueError('Artifact names "model" and "config" are reserved for internal usage')
99
103
  artifacts.update(artifacts_to_log)
100
104
 
101
- with mlflow.start_run(nested=True, run_name=run_name):
105
+ with mlflow.start_run(nested=True, run_name=run_name, parent_run_id=parent_run_id) as run:
102
106
  mlflow.pyfunc.log_model(
103
107
  artifact_path="mlflow_model",
104
108
  python_model=_MlflowMachineLearningModel(),
@@ -123,3 +127,5 @@ def register_mlflow_model(
123
127
  stage=transition_to_stage,
124
128
  model_version=version,
125
129
  )
130
+
131
+ return run.info.run_id
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "adapta"
3
- version = "v3.3.1a500.dev4"
3
+ version = "v3.3.2a501.dev4"
4
4
  description = "Logging, data connectors, monitoring, secret handling and general lifehacks to make data people lives easier."
5
5
  authors = ["ECCO Sneaks & Data <esdsupport@ecco.com>"]
6
6
  maintainers = ['GZU <gzu@ecco.com>', 'JRB <ext-jrb@ecco.com>']
@@ -1 +0,0 @@
1
- __version__ = 'v3.3.1a500.dev4'
File without changes