ml-management 0.4.1__tar.gz → 0.5.0__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (114) hide show
  1. ml_management-0.5.0/ML_management/__init__.py +3 -0
  2. {ml-management-0.4.1/ML_management/mlmanagement → ml_management-0.5.0/ML_management}/base_exceptions.py +0 -10
  3. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/collectors/s3/s3collector.py +2 -2
  4. ml_management-0.5.0/ML_management/dataset_loader/dataset_loader_pattern.py +32 -0
  5. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/executor/base_executor.py +2 -93
  6. ml_management-0.5.0/ML_management/graphql/schema.py +3791 -0
  7. ml-management-0.4.1/ML_management/sdk/sdk.py → ml_management-0.5.0/ML_management/graphql/send_graphql_request.py +3 -58
  8. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/mlmanagement/backend_api.py +1 -1
  9. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/mlmanagement/jsonschema_inference.py +17 -9
  10. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/mlmanagement/load_api.py +66 -82
  11. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/mlmanagement/log_api.py +261 -413
  12. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/mlmanagement/server_mlmanager_exceptions.py +2 -2
  13. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/mlmanagement/utils.py +1 -1
  14. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/model/patterns/gradient_model.py +4 -2
  15. ml_management-0.5.0/ML_management/model/patterns/model_pattern.py +54 -0
  16. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/model/patterns/model_with_metrics.py +6 -2
  17. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/model/patterns/preprocessor.py +5 -2
  18. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/model/patterns/transformer.py +2 -2
  19. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/registry/exceptions.py +1 -1
  20. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/s3/manager.py +3 -2
  21. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/sdk/__init__.py +9 -5
  22. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/sdk/dataset_loader.py +65 -24
  23. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/sdk/executor.py +70 -29
  24. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/sdk/experiment.py +18 -18
  25. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/sdk/job.py +17 -27
  26. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/sdk/model.py +63 -46
  27. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/sdk/parameters.py +9 -9
  28. ml_management-0.5.0/ML_management/sdk/sdk.py +57 -0
  29. {ml-management-0.4.1/ML_management/mlmanagement → ml_management-0.5.0/ML_management}/session.py +35 -18
  30. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/test_sdk/test_sdk.py +7 -7
  31. {ml-management-0.4.1/ML_management/mlmanagement → ml_management-0.5.0/ML_management}/variables.py +15 -4
  32. ml_management-0.5.0/ML_management/version.py +6 -0
  33. ml_management-0.5.0/PKG-INFO +27 -0
  34. ml_management-0.5.0/VERSION +1 -0
  35. ml_management-0.5.0/ml_management.egg-info/PKG-INFO +27 -0
  36. {ml-management-0.4.1 → ml_management-0.5.0}/ml_management.egg-info/SOURCES.txt +8 -9
  37. {ml-management-0.4.1 → ml_management-0.5.0}/ml_management.egg-info/requires.txt +10 -6
  38. {ml-management-0.4.1 → ml_management-0.5.0}/setup.py +6 -2
  39. ml-management-0.4.1/ML_management/dataset_loader/dataset_loader_pattern.py +0 -111
  40. ml-management-0.4.1/ML_management/loader/loader.py +0 -68
  41. ml-management-0.4.1/ML_management/mlmanagement/mlmanager.py +0 -212
  42. ml-management-0.4.1/ML_management/model/patterns/model_pattern.py +0 -161
  43. ml-management-0.4.1/ML_management/model/patterns/rich_python_model.py +0 -10
  44. ml-management-0.4.1/ML_management/sdk/schema.py +0 -2306
  45. ml-management-0.4.1/ML_management/uploader_data/__init__.py +0 -0
  46. ml-management-0.4.1/PKG-INFO +0 -17
  47. ml-management-0.4.1/VERSION +0 -1
  48. ml-management-0.4.1/ml_management.egg-info/PKG-INFO +0 -17
  49. {ml-management-0.4.1 → ml_management-0.5.0}/MANIFEST.in +0 -0
  50. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/collectors/__init__.py +0 -0
  51. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/collectors/collector_pattern.py +0 -0
  52. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/collectors/collector_pattern_to_methods_map.py +0 -0
  53. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/collectors/collectors.py +0 -0
  54. {ml-management-0.4.1/ML_management → ml_management-0.5.0/ML_management/collectors/dummy}/__init__.py +0 -0
  55. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/collectors/dummy/dummy_collector.py +0 -0
  56. {ml-management-0.4.1/ML_management/collectors/dummy → ml_management-0.5.0/ML_management/collectors/s3}/__init__.py +0 -0
  57. {ml-management-0.4.1/ML_management/collectors/s3 → ml_management-0.5.0/ML_management/collectors/topic_markers}/__init__.py +0 -0
  58. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/collectors/topic_markers/api_schema.py +0 -0
  59. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/collectors/topic_markers/topic_markers_collector.py +0 -0
  60. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/dataset_loader/__init__.py +0 -0
  61. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/dataset_loader/base_splits_dataset_loader.py +0 -0
  62. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/dataset_loader/dataset_loader_pattern_to_methods_map.py +0 -0
  63. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/dataset_loader/poisoned_images_dataset_loader.py +0 -0
  64. {ml-management-0.4.1/ML_management/collectors/topic_markers → ml_management-0.5.0/ML_management/dataset_loader/templates}/__init__.py +0 -0
  65. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/dataset_loader/templates/dummy_dataset_loader/__init__.py +0 -0
  66. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/dataset_loader/templates/dummy_dataset_loader/conda.yaml +0 -0
  67. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/dataset_loader/templates/dummy_dataset_loader/dummy_dataset.py +0 -0
  68. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/dataset_loader/templates/upload.py +0 -0
  69. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/executor/__init__.py +0 -0
  70. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/executor/executor_pattern.py +0 -0
  71. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/executor/executor_pattern_to_methods_map.py +0 -0
  72. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/executor/no_model_executor_pattern.py +0 -0
  73. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/executor/patterns.py +0 -0
  74. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/executor/templates/__init__.py +0 -0
  75. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/executor/templates/eval/__init__.py +0 -0
  76. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/executor/templates/eval/conda.yaml +0 -0
  77. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/executor/templates/eval/eval_executor.py +0 -0
  78. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/executor/templates/finetune/__init__.py +0 -0
  79. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/executor/templates/finetune/conda.yaml +0 -0
  80. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/executor/templates/finetune/finetune_executor.py +0 -0
  81. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/executor/templates/train/__init__.py +0 -0
  82. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/executor/templates/train/conda.yaml +0 -0
  83. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/executor/templates/train/train_executor.py +0 -0
  84. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/executor/templates/upload.py +0 -0
  85. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/executor/upload_model_mode.py +0 -0
  86. {ml-management-0.4.1/ML_management/dataset_loader/templates → ml_management-0.5.0/ML_management/graphql}/__init__.py +0 -0
  87. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/mlmanagement/__init__.py +0 -0
  88. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/mlmanagement/jsonschema_exceptions.py +0 -0
  89. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/mlmanagement/model_type.py +0 -0
  90. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/mlmanagement/module_finder.py +0 -0
  91. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/mlmanagement/visibility_options.py +0 -0
  92. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/model/__init__.py +0 -0
  93. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/model/model_type_to_methods_map.py +0 -0
  94. {ml-management-0.4.1/ML_management/loader → ml_management-0.5.0/ML_management/model/patterns}/__init__.py +0 -0
  95. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/model/patterns/evaluatable_model.py +0 -0
  96. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/model/patterns/model_with_losses.py +0 -0
  97. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/model/patterns/retrainable_model.py +0 -0
  98. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/model/patterns/target_layer.py +0 -0
  99. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/model/patterns/torch_model.py +0 -0
  100. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/model/patterns/trainable_model.py +0 -0
  101. {ml-management-0.4.1/ML_management/model/patterns → ml_management-0.5.0/ML_management/registry}/__init__.py +0 -0
  102. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/s3/__init__.py +0 -0
  103. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/s3/utils.py +0 -0
  104. {ml-management-0.4.1/ML_management/mlmanagement → ml_management-0.5.0/ML_management}/singleton_pattern.py +0 -0
  105. {ml-management-0.4.1/ML_management/registry → ml_management-0.5.0/ML_management/test_sdk}/__init__.py +0 -0
  106. {ml-management-0.4.1/ML_management/test_sdk → ml_management-0.5.0/ML_management/tests}/__init__.py +0 -0
  107. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/tests/test_jsonschema_inference.py +0 -0
  108. {ml-management-0.4.1/ML_management/tests → ml_management-0.5.0/ML_management/uploader_data}/__init__.py +0 -0
  109. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/uploader_data/s3_uploader.py +0 -0
  110. {ml-management-0.4.1 → ml_management-0.5.0}/ML_management/uploader_data/utils.py +0 -0
  111. {ml-management-0.4.1 → ml_management-0.5.0}/README.md +0 -0
  112. {ml-management-0.4.1 → ml_management-0.5.0}/ml_management.egg-info/dependency_links.txt +0 -0
  113. {ml-management-0.4.1 → ml_management-0.5.0}/ml_management.egg-info/top_level.txt +0 -0
  114. {ml-management-0.4.1 → ml_management-0.5.0}/setup.cfg +0 -0
@@ -0,0 +1,3 @@
1
+ import ML_management.version
2
+
3
+ __version__ = ML_management.version.__version__
@@ -1,6 +1,3 @@
1
- """Base classes for custom exceptions used in project."""
2
-
3
-
4
1
  class MLMBaseError(Exception):
5
2
  """Base exception for all custom exceptions."""
6
3
 
@@ -23,10 +20,3 @@ class MLMClientError(MLMBaseError):
23
20
  """Base exception for all client-side specific exceptions."""
24
21
 
25
22
  pass
26
-
27
-
28
- class PylintError(MLMBaseError):
29
- """Base exception for all errors within linter check."""
30
-
31
- def __init__(self, message):
32
- super().__init__("Pylint found errors in code of uploaded modules:\n" + message)
@@ -16,8 +16,8 @@ class S3Collector(CollectorPattern):
16
16
  "type": "object",
17
17
  "properties": {
18
18
  "bucket": {"type": "string"},
19
- "untar_data": {"type": "boolean"},
20
- "remote_paths": {"type": "array", "items": {"type": "string"}},
19
+ "untar_data": {"type": "boolean", "default": False},
20
+ "remote_paths": {"type": ["array", None], "items": {"type": "string"}, "default": None},
21
21
  },
22
22
  "required": ["bucket"],
23
23
  "additionalProperties": False,
@@ -0,0 +1,32 @@
1
+ """Dataset loader template for custom dataset loader."""
2
+ from abc import ABC, abstractmethod
3
+
4
+
5
+ class DatasetLoaderPattern(ABC):
6
+ """Define dataset loader.
7
+
8
+ Attributes
9
+ ----------
10
+ artifacts : str
11
+ Local path to artifacts.
12
+ That parameters will be set automatically in job before the 'get_dataset' func would be executed.
13
+ data_path: str
14
+ A path to data to be loaded.
15
+
16
+ """
17
+
18
+ def __init__(self):
19
+ """Init dataset loader class."""
20
+ self.artifacts: str
21
+ self.data_path = None
22
+
23
+ @abstractmethod
24
+ def get_dataset(self, **dataset_params):
25
+ """
26
+ Return dataset.
27
+
28
+ To get data_path use self.data_path parameter, which also will be set in the job.
29
+ 'dataset_params' are dataset_loader parameters. One has to define it as ordinary kwargs
30
+ with type annotation.
31
+ """
32
+ raise NotImplementedError
@@ -1,10 +1,8 @@
1
1
  """Executor template for custom executor."""
2
2
 
3
3
  from abc import ABC, abstractmethod
4
- from typing import Any, Dict, List, Optional, Union
4
+ from typing import Any, Dict, Union
5
5
 
6
- import ML_management.mlmanagement.log_api
7
- import ML_management.mlmanagement.mlmanager
8
6
  from ML_management.dataset_loader import DatasetLoaderPattern
9
7
  from ML_management.dataset_loader.dataset_loader_pattern_to_methods_map import DatasetLoaderMethodName
10
8
  from ML_management.executor.patterns import (
@@ -14,17 +12,13 @@ from ML_management.executor.patterns import (
14
12
  OneDatasetLoaderPattern,
15
13
  OneModelPattern,
16
14
  )
17
- from ML_management.mlmanagement import variables
18
- from ML_management.mlmanagement.module_finder import ModuleFinder
19
- from ML_management.mlmanagement.visibility_options import VisibilityOptions
20
15
  from ML_management.model.model_type_to_methods_map import ModelMethodName
21
16
  from ML_management.model.patterns.model_pattern import Model
22
- from ML_management.model.patterns.rich_python_model import RichPythonModel
23
17
 
24
18
  default_dataset_loader_pattern = OneDatasetLoaderPattern()
25
19
 
26
20
 
27
- class BaseExecutor(RichPythonModel, ABC):
21
+ class BaseExecutor(ABC):
28
22
  """Define custom job executor."""
29
23
 
30
24
  DEFAULT_ROLE = DEFAULT_ROLE
@@ -140,91 +134,6 @@ class BaseExecutor(RichPythonModel, ABC):
140
134
  """
141
135
  raise NotImplementedError
142
136
 
143
- def upload_executor(
144
- self,
145
- executor_name: str,
146
- pip_requirements=None,
147
- description: Optional[str] = None,
148
- extra_pip_requirements=None,
149
- conda_env=None,
150
- artifacts: Optional[dict] = None,
151
- visibility: VisibilityOptions = VisibilityOptions.PRIVATE,
152
- extra_modules_names: Optional[List[str]] = None,
153
- used_modules_names: Optional[List[str]] = None,
154
- linter_check: bool = True,
155
- start_build: bool = False,
156
- ) -> None:
157
- """
158
- Upload wrapper to MLmanagement server.
159
-
160
- :param pip_requirements: {{ pip_requirements }}
161
-
162
- :param extra_pip_requirements: {{ extra_pip_requirements }}
163
- `pip_requirements` and 'extra_pip_requirements' must be either a string path to a pip requirements file on the
164
- local filesystem or an iterable of pip requirement strings.
165
-
166
- :param conda_env: {{ conda_env }}
167
- 'conda_env' must be a dict specifying the conda environment for this model.
168
-
169
- :param artifacts: A dictionary containing ``<name, artifact_uri>`` entries. Remote artifact URIs
170
- are resolved to absolute filesystem paths, producing a dictionary of
171
- ``<name, absolute_path>`` entries. ``python_model`` can reference these
172
- resolved entries as the ``artifacts`` property of the ``context`` parameter
173
- in :func:`PythonModel.load_context() <mlflow.pyfunc.PythonModel.load_context>`
174
- and :func:`PythonModel.predict() <mlflow.pyfunc.PythonModel.predict>`.
175
- For example, consider the following ``artifacts`` dictionary::
176
-
177
- {
178
- "my_file": "s3://my-bucket/path/to/my/file"
179
- }
180
-
181
- In this case, the ``"my_file"`` artifact is downloaded from S3. The
182
- ``python_model`` can then refer to ``"my_file"`` as an absolute filesystem
183
- path via ``context.artifacts["my_file"]``.
184
-
185
- If ``None``, no artifacts are added to the executor.
186
-
187
- :param visibility: either a private or public executor.
188
-
189
- :param extra_modules_names: names of modules that should be pickled by value
190
- in addition to auto-detected modules.
191
-
192
- :param used_modules_names: modules that should be pickled by value, disables the auto-detection of modules.
193
-
194
- :param linter_check: if True, check code of the executor by linter.
195
-
196
- :param start_build: if set to True, start job to create docker image.
197
- This parameter may be True only if there is no models for executor.
198
- """
199
- old_experiment_name = variables.active_experiment
200
- if (self.desired_model_methods or self.upload_model_modes) and start_build:
201
- raise RuntimeError("Parameter start_build=True is acceptable only if there is no models for executor.")
202
- ML_management.mlmanagement.mlmanager.set_experiment(
203
- variables.EXPERIMENT_NAME_FOR_EXECUTOR, visibility=VisibilityOptions.PUBLIC
204
- )
205
- try:
206
- with ML_management.mlmanagement.mlmanager.start_run(nested=True):
207
- ML_management.mlmanagement.log_api._log_model(
208
- artifact_path="",
209
- description=description,
210
- artifacts=artifacts,
211
- python_model=self,
212
- registered_model_name=executor_name,
213
- pip_requirements=pip_requirements,
214
- extra_pip_requirements=extra_pip_requirements,
215
- conda_env=conda_env,
216
- visibility=visibility,
217
- extra_modules_names=extra_modules_names,
218
- used_modules_names=used_modules_names,
219
- root_module_name=ModuleFinder.get_my_caller_module_name(),
220
- linter_check=linter_check,
221
- start_build=start_build,
222
- )
223
- except Exception as err:
224
- raise err
225
- finally:
226
- variables.active_experiment = old_experiment_name
227
-
228
137
  @property
229
138
  def model(self) -> Model:
230
139
  """Property returning a single model.