analytic-workspace-client 1.29.0rc2__tar.gz → 1.29.1__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 (46) hide show
  1. {analytic_workspace_client-1.29.0rc2 → analytic_workspace_client-1.29.1}/PKG-INFO +1 -1
  2. {analytic_workspace_client-1.29.0rc2 → analytic_workspace_client-1.29.1}/setup.py +2 -2
  3. {analytic_workspace_client-1.29.0rc2 → analytic_workspace_client-1.29.1}/src/analytic_workspace_client.egg-info/PKG-INFO +1 -1
  4. {analytic_workspace_client-1.29.0rc2 → analytic_workspace_client-1.29.1}/src/analytic_workspace_client.egg-info/SOURCES.txt +2 -0
  5. {analytic_workspace_client-1.29.0rc2 → analytic_workspace_client-1.29.1}/src/analytic_workspace_client.egg-info/requires.txt +1 -1
  6. analytic_workspace_client-1.29.1/src/aw_client/ml/mlflow_wrapper.py +50 -0
  7. {analytic_workspace_client-1.29.0rc2 → analytic_workspace_client-1.29.1}/src/aw_client/session.py +6 -20
  8. analytic_workspace_client-1.29.1/src/aw_etl/__init__.py +0 -0
  9. {analytic_workspace_client-1.29.0rc2 → analytic_workspace_client-1.29.1}/README.md +0 -0
  10. {analytic_workspace_client-1.29.0rc2 → analytic_workspace_client-1.29.1}/pyproject.toml +0 -0
  11. {analytic_workspace_client-1.29.0rc2 → analytic_workspace_client-1.29.1}/setup.cfg +0 -0
  12. {analytic_workspace_client-1.29.0rc2 → analytic_workspace_client-1.29.1}/src/analytic_workspace_client.egg-info/dependency_links.txt +0 -0
  13. {analytic_workspace_client-1.29.0rc2 → analytic_workspace_client-1.29.1}/src/analytic_workspace_client.egg-info/top_level.txt +0 -0
  14. {analytic_workspace_client-1.29.0rc2 → analytic_workspace_client-1.29.1}/src/aw_client/__init__.py +0 -0
  15. {analytic_workspace_client-1.29.0rc2 → analytic_workspace_client-1.29.1}/src/aw_client/cache.py +0 -0
  16. {analytic_workspace_client-1.29.0rc2 → analytic_workspace_client-1.29.1}/src/aw_client/core/__init__.py +0 -0
  17. {analytic_workspace_client-1.29.0rc2 → analytic_workspace_client-1.29.1}/src/aw_client/core/bundle.py +0 -0
  18. {analytic_workspace_client-1.29.0rc2 → analytic_workspace_client-1.29.1}/src/aw_client/core/compiler.py +0 -0
  19. {analytic_workspace_client-1.29.0rc2 → analytic_workspace_client-1.29.1}/src/aw_client/core/model_vault.py +0 -0
  20. {analytic_workspace_client-1.29.0rc2 → analytic_workspace_client-1.29.1}/src/aw_client/core/spark.py +0 -0
  21. {analytic_workspace_client-1.29.0rc2 → analytic_workspace_client-1.29.1}/src/aw_client/data_master/__init__.py +0 -0
  22. {analytic_workspace_client-1.29.0rc2 → analytic_workspace_client-1.29.1}/src/aw_client/data_master/base.py +0 -0
  23. {analytic_workspace_client-1.29.0rc2 → analytic_workspace_client-1.29.1}/src/aw_client/data_master/v0.py +0 -0
  24. {analytic_workspace_client-1.29.0rc2 → analytic_workspace_client-1.29.1}/src/aw_client/data_master/v1.py +0 -0
  25. {analytic_workspace_client-1.29.0rc2 → analytic_workspace_client-1.29.1}/src/aw_client/data_master/v2.py +0 -0
  26. {analytic_workspace_client-1.29.0rc2 → analytic_workspace_client-1.29.1}/src/aw_client/domain.py +0 -0
  27. {analytic_workspace_client-1.29.0rc2 → analytic_workspace_client-1.29.1}/src/aw_client/etl_blocks/__init__.py +0 -0
  28. {analytic_workspace_client-1.29.0rc2 → analytic_workspace_client-1.29.1}/src/aw_client/etl_blocks/application.py +0 -0
  29. {analytic_workspace_client-1.29.0rc2 → analytic_workspace_client-1.29.1}/src/aw_client/etl_blocks/dto.py +0 -0
  30. {analytic_workspace_client-1.29.0rc2 → analytic_workspace_client-1.29.1}/src/aw_client/etl_blocks/runtime.py +0 -0
  31. {analytic_workspace_client-1.29.0rc2 → analytic_workspace_client-1.29.1}/src/aw_client/etl_blocks/services.py +0 -0
  32. {analytic_workspace_client-1.29.0rc2 → analytic_workspace_client-1.29.1}/src/aw_client/etl_blocks/test_data.py +0 -0
  33. {analytic_workspace_client-1.29.0rc2 → analytic_workspace_client-1.29.1}/src/aw_client/etl_blocks/tools.py +0 -0
  34. {analytic_workspace_client-1.29.0rc2 → analytic_workspace_client-1.29.1}/src/aw_client/exceptions.py +0 -0
  35. {analytic_workspace_client-1.29.0rc2/src/aw_client/model_dev → analytic_workspace_client-1.29.1/src/aw_client/ml}/__init__.py +0 -0
  36. {analytic_workspace_client-1.29.0rc2/src/aw_client/models → analytic_workspace_client-1.29.1/src/aw_client/model_dev}/__init__.py +0 -0
  37. {analytic_workspace_client-1.29.0rc2 → analytic_workspace_client-1.29.1}/src/aw_client/model_dev/application.py +0 -0
  38. {analytic_workspace_client-1.29.0rc2 → analytic_workspace_client-1.29.1}/src/aw_client/model_dev/cache.py +0 -0
  39. {analytic_workspace_client-1.29.0rc2 → analytic_workspace_client-1.29.1}/src/aw_client/model_dev/runner.py +0 -0
  40. {analytic_workspace_client-1.29.0rc2 → analytic_workspace_client-1.29.1}/src/aw_client/model_dev/virtual_objects.py +0 -0
  41. {analytic_workspace_client-1.29.0rc2/src/aw_etl → analytic_workspace_client-1.29.1/src/aw_client/models}/__init__.py +0 -0
  42. {analytic_workspace_client-1.29.0rc2 → analytic_workspace_client-1.29.1}/src/aw_client/models/model_schema.py +0 -0
  43. {analytic_workspace_client-1.29.0rc2 → analytic_workspace_client-1.29.1}/src/aw_client/tools.py +0 -0
  44. {analytic_workspace_client-1.29.0rc2 → analytic_workspace_client-1.29.1}/src/aw_etl/compiler.py +0 -0
  45. {analytic_workspace_client-1.29.0rc2 → analytic_workspace_client-1.29.1}/src/aw_etl/etl_blocks.py +0 -0
  46. {analytic_workspace_client-1.29.0rc2 → analytic_workspace_client-1.29.1}/src/aw_etl/models.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: analytic_workspace_client
3
- Version: 1.29.0rc2
3
+ Version: 1.29.1
4
4
  Summary: Библиотека для подключения к Analytic Workspace
5
5
  Home-page: https://analyticworkspace.ru/
6
6
  Author: Analytic Workspace
@@ -10,7 +10,7 @@ long_description = (here / "README.md").read_text(encoding="utf-8")
10
10
 
11
11
  setup(
12
12
  name='analytic_workspace_client',
13
- version='1.29.0rc2',
13
+ version='1.29.1',
14
14
 
15
15
  description='Библиотека для подключения к Analytic Workspace',
16
16
  long_description=long_description,
@@ -42,7 +42,7 @@ setup(
42
42
 
43
43
  extras_require={
44
44
  'dev': ['pyspark==3.5.0', 'pytest>=8.2,<8.3'],
45
- 'ml': ['mlflow>=2.14,<2.15']
45
+ 'ml': ['mlflow==2.14.3']
46
46
  },
47
47
 
48
48
  setup_requires=['wheel'],
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: analytic-workspace-client
3
- Version: 1.29.0rc2
3
+ Version: 1.29.1
4
4
  Summary: Библиотека для подключения к Analytic Workspace
5
5
  Home-page: https://analyticworkspace.ru/
6
6
  Author: Analytic Workspace
@@ -29,6 +29,8 @@ src/aw_client/etl_blocks/runtime.py
29
29
  src/aw_client/etl_blocks/services.py
30
30
  src/aw_client/etl_blocks/test_data.py
31
31
  src/aw_client/etl_blocks/tools.py
32
+ src/aw_client/ml/__init__.py
33
+ src/aw_client/ml/mlflow_wrapper.py
32
34
  src/aw_client/model_dev/__init__.py
33
35
  src/aw_client/model_dev/application.py
34
36
  src/aw_client/model_dev/cache.py
@@ -9,4 +9,4 @@ pyspark==3.5.0
9
9
  pytest<8.3,>=8.2
10
10
 
11
11
  [ml]
12
- mlflow<2.15,>=2.14
12
+ mlflow==2.14.3
@@ -0,0 +1,50 @@
1
+ import os
2
+ from urllib.parse import urljoin
3
+
4
+ from aw_client.exceptions import AwClientMisconfigured
5
+
6
+
7
+ class MlflowWrapper:
8
+ """ """
9
+ def __init__(self, aw_url: str, auth_token: str):
10
+ """ """
11
+ self.aw_url = aw_url
12
+ self.auth_token = auth_token
13
+ self.mlflow = None
14
+
15
+ def _mlflow(self):
16
+ """ """
17
+ if not self.mlflow:
18
+ try:
19
+ import mlflow
20
+ except ImportError:
21
+ raise AwClientMisconfigured(
22
+ 'Для использованиея MLFlow установите библиотеку с опцией ml: pip install analytic-workspace-client[ml]')
23
+
24
+ if not self.auth_token:
25
+ data_master_url = urljoin(self.aw_url, 'data-master/get-token')
26
+ raise AwClientMisconfigured(
27
+ f'Не указан токен доступа к AnalyticWorkspace. Пройдите по адресу {data_master_url} для получения '
28
+ f'токена.')
29
+
30
+ tracking_url = urljoin(self.aw_url, 'mlflow')
31
+
32
+ if mlflow.get_tracking_uri() != tracking_url:
33
+ mlflow.set_tracking_uri(tracking_url)
34
+
35
+ os.environ['MLFLOW_TRACKING_TOKEN'] = self.auth_token
36
+ self.mlflow = mlflow
37
+
38
+ return self.mlflow
39
+
40
+ def setup_experiment(self, experiment_name: str) -> str:
41
+ """ """
42
+ mlflow = self._mlflow()
43
+
44
+ experiment = mlflow.get_experiment_by_name(experiment_name)
45
+ return mlflow.create_experiment(experiment_name) if experiment is None else experiment.experiment_id
46
+
47
+ def __getattr__(self, name: str):
48
+ """ """
49
+ mlflow = self._mlflow()
50
+ return getattr(mlflow, name)
@@ -12,6 +12,7 @@ from aw_client.data_master import get_nearest_api
12
12
  from aw_client.domain import APIConfig
13
13
  from aw_client.models.model_schema import ModelSchema
14
14
  from aw_client.exceptions import AwClientMisconfigured
15
+ from aw_client.ml.mlflow_wrapper import MlflowWrapper
15
16
 
16
17
  from aw_client.tools import strip_column_name_prefix
17
18
 
@@ -34,6 +35,7 @@ class Session:
34
35
  if not self.aw_url.endswith('/'):
35
36
  self.aw_url += '/'
36
37
  self.version = version if version is not None else None
38
+ self._mlflow_wrapper = None
37
39
 
38
40
  def get_aw_version(self) -> int:
39
41
  """ """
@@ -132,23 +134,7 @@ class Session:
132
134
  @property
133
135
  def mlflow(self):
134
136
  """ """
135
- try:
136
- import mlflow
137
- except ImportError:
138
- raise AwClientMisconfigured(
139
- 'Для использованиея MLFlow установите библиотеку с опцией ml: pip install analytic-workspace-client[ml]')
140
-
141
- if not self.token:
142
- data_master_url = urljoin(self.aw_url, 'data-master/get-token')
143
- raise AwClientMisconfigured(
144
- f'Не указан токен доступа к AnalyticWorkspace. Пройдите по адресу {data_master_url} для получения '
145
- f'токена')
146
-
147
- tracking_url = urljoin(self.aw_url, 'mlflow')
148
-
149
- if mlflow.get_tracking_uri() != tracking_url:
150
- mlflow.set_tracking_uri(tracking_url)
151
-
152
- os.environ['MLFLOW_TRACKING_TOKEN'] = self.token
153
-
154
- return mlflow
137
+ if self._mlflow_wrapper is None:
138
+ self._mlflow_wrapper = MlflowWrapper(aw_url=self.aw_url, auth_token=self.token)
139
+
140
+ return self._mlflow_wrapper