snowflake-ml-python 1.7.0__py3-none-any.whl → 1.7.1__py3-none-any.whl
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.
- snowflake/cortex/__init__.py +4 -0
- snowflake/cortex/_complete.py +107 -64
- snowflake/cortex/_finetune.py +273 -0
- snowflake/cortex/_sse_client.py +91 -28
- snowflake/cortex/_util.py +30 -1
- snowflake/ml/_internal/type_utils.py +3 -3
- snowflake/ml/data/__init__.py +5 -0
- snowflake/ml/model/_client/model/model_version_impl.py +7 -7
- snowflake/ml/model/_client/ops/model_ops.py +51 -30
- snowflake/ml/model/_client/ops/service_ops.py +13 -2
- snowflake/ml/model/_client/sql/model.py +0 -14
- snowflake/ml/model/_client/sql/service.py +25 -1
- snowflake/ml/model/_model_composer/model_method/infer_function.py_template +2 -1
- snowflake/ml/model/_packager/model_env/model_env.py +12 -0
- snowflake/ml/model/_packager/model_handlers/_utils.py +1 -1
- snowflake/ml/model/_packager/model_handlers/catboost.py +1 -1
- snowflake/ml/model/_packager/model_handlers/custom.py +3 -1
- snowflake/ml/model/_packager/model_handlers/lightgbm.py +2 -1
- snowflake/ml/model/_packager/model_handlers/sklearn.py +48 -1
- snowflake/ml/model/_packager/model_handlers/snowmlmodel.py +1 -1
- snowflake/ml/model/_packager/model_handlers/tensorflow.py +23 -6
- snowflake/ml/model/_packager/model_handlers/torchscript.py +14 -14
- snowflake/ml/model/_packager/model_meta/_packaging_requirements.py +2 -3
- snowflake/ml/model/_packager/model_meta/model_meta_schema.py +5 -0
- snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py +2 -10
- snowflake/ml/model/_packager/model_runtime/model_runtime.py +4 -9
- snowflake/ml/model/_packager/model_task/model_task_utils.py +1 -1
- snowflake/ml/model/_signatures/core.py +63 -16
- snowflake/ml/model/_signatures/pandas_handler.py +71 -27
- snowflake/ml/model/_signatures/pytorch_handler.py +2 -2
- snowflake/ml/model/_signatures/snowpark_handler.py +2 -1
- snowflake/ml/model/_signatures/tensorflow_handler.py +2 -2
- snowflake/ml/model/_signatures/utils.py +4 -0
- snowflake/ml/model/model_signature.py +38 -9
- snowflake/ml/model/type_hints.py +1 -1
- snowflake/ml/modeling/lightgbm/lgbm_classifier.py +2 -4
- snowflake/ml/modeling/lightgbm/lgbm_regressor.py +2 -4
- snowflake/ml/monitoring/_client/model_monitor_sql_client.py +158 -1045
- snowflake/ml/monitoring/_manager/model_monitor_manager.py +106 -230
- snowflake/ml/monitoring/entities/model_monitor_config.py +10 -10
- snowflake/ml/monitoring/model_monitor.py +7 -96
- snowflake/ml/registry/registry.py +17 -29
- snowflake/ml/version.py +1 -1
- {snowflake_ml_python-1.7.0.dist-info → snowflake_ml_python-1.7.1.dist-info}/METADATA +31 -5
- {snowflake_ml_python-1.7.0.dist-info → snowflake_ml_python-1.7.1.dist-info}/RECORD +48 -47
- {snowflake_ml_python-1.7.0.dist-info → snowflake_ml_python-1.7.1.dist-info}/WHEEL +1 -1
- snowflake/ml/monitoring/entities/model_monitor_interval.py +0 -46
- {snowflake_ml_python-1.7.0.dist-info → snowflake_ml_python-1.7.1.dist-info}/LICENSE.txt +0 -0
- {snowflake_ml_python-1.7.0.dist-info → snowflake_ml_python-1.7.1.dist-info}/top_level.txt +0 -0
@@ -23,6 +23,11 @@ from snowflake.snowpark import session
|
|
23
23
|
_TELEMETRY_PROJECT = "MLOps"
|
24
24
|
_MODEL_TELEMETRY_SUBPROJECT = "ModelManagement"
|
25
25
|
|
26
|
+
_MODEL_MONITORING_UNIMPLEMENTED_ERROR = "Model Monitoring is not implemented in python yet."
|
27
|
+
_MODEL_MONITORING_DISABLED_ERROR = (
|
28
|
+
"""Must enable monitoring to use this method. Please set `options={"enable_monitoring": True}` in the Registry"""
|
29
|
+
)
|
30
|
+
|
26
31
|
|
27
32
|
class Registry:
|
28
33
|
def __init__(
|
@@ -84,7 +89,6 @@ class Registry:
|
|
84
89
|
session=session,
|
85
90
|
database_name=self._database_name,
|
86
91
|
schema_name=self._schema_name,
|
87
|
-
create_if_not_exists=True, # TODO: Support static setup method to configure schema for monitoring.
|
88
92
|
statement_params=monitor_statement_params,
|
89
93
|
)
|
90
94
|
|
@@ -381,34 +385,25 @@ class Registry:
|
|
381
385
|
def add_monitor(
|
382
386
|
self,
|
383
387
|
name: str,
|
384
|
-
|
388
|
+
source_config: model_monitor_config.ModelMonitorSourceConfig,
|
385
389
|
model_monitor_config: model_monitor_config.ModelMonitorConfig,
|
386
|
-
*,
|
387
|
-
add_dashboard_udtfs: bool = False,
|
388
390
|
) -> model_monitor.ModelMonitor:
|
389
391
|
"""Add a Model Monitor to the Registry
|
390
392
|
|
391
393
|
Args:
|
392
394
|
name: Name of Model Monitor to create
|
393
|
-
|
395
|
+
source_config: Configuration options of table for ModelMonitor.
|
394
396
|
model_monitor_config: Configuration options of ModelMonitor.
|
395
|
-
add_dashboard_udtfs: Add UDTFs useful for creating a dashboard.
|
396
397
|
|
397
398
|
Returns:
|
398
399
|
The newly added ModelMonitor object.
|
399
400
|
|
400
401
|
Raises:
|
401
|
-
ValueError: If monitoring
|
402
|
+
ValueError: If monitoring is not enabled in the Registry.
|
402
403
|
"""
|
403
404
|
if not self.enable_monitoring:
|
404
|
-
raise ValueError(
|
405
|
-
|
406
|
-
)
|
407
|
-
|
408
|
-
# TODO: Change to fully qualified source table reference to allow table to live in different DB.
|
409
|
-
return self._model_monitor_manager.add_monitor(
|
410
|
-
name, table_config, model_monitor_config, add_dashboard_udtfs=add_dashboard_udtfs
|
411
|
-
)
|
405
|
+
raise ValueError(_MODEL_MONITORING_DISABLED_ERROR)
|
406
|
+
return self._model_monitor_manager.add_monitor(name, source_config, model_monitor_config)
|
412
407
|
|
413
408
|
@overload
|
414
409
|
def get_monitor(self, model_version: model_version_impl.ModelVersion) -> model_monitor.ModelMonitor:
|
@@ -446,17 +441,14 @@ class Registry:
|
|
446
441
|
The fetched ModelMonitor.
|
447
442
|
|
448
443
|
Raises:
|
449
|
-
ValueError: If monitoring
|
450
|
-
ValueError: If neither name nor model_version specified.
|
444
|
+
ValueError: If monitoring is not enabled in the Registry.
|
451
445
|
"""
|
452
446
|
if not self.enable_monitoring:
|
453
|
-
raise ValueError(
|
454
|
-
"Must enable monitoring in Registry to use this method. Please set the `enable_monitoring=True` option"
|
455
|
-
)
|
447
|
+
raise ValueError(_MODEL_MONITORING_DISABLED_ERROR)
|
456
448
|
if name is not None:
|
457
449
|
return self._model_monitor_manager.get_monitor(name=name)
|
458
450
|
elif model_version is not None:
|
459
|
-
return self._model_monitor_manager.get_monitor_by_model_version(model_version
|
451
|
+
return self._model_monitor_manager.get_monitor_by_model_version(model_version)
|
460
452
|
else:
|
461
453
|
raise ValueError("Must provide either `name` or `model_version` to get ModelMonitor")
|
462
454
|
|
@@ -472,12 +464,10 @@ class Registry:
|
|
472
464
|
List of snowpark.Row containing metadata for each model monitor.
|
473
465
|
|
474
466
|
Raises:
|
475
|
-
ValueError: If monitoring
|
467
|
+
ValueError: If monitoring is not enabled in the Registry.
|
476
468
|
"""
|
477
469
|
if not self.enable_monitoring:
|
478
|
-
raise ValueError(
|
479
|
-
"Must enable monitoring in Registry to use this method. Please set the `enable_monitoring=True` option"
|
480
|
-
)
|
470
|
+
raise ValueError(_MODEL_MONITORING_DISABLED_ERROR)
|
481
471
|
return self._model_monitor_manager.show_model_monitors()
|
482
472
|
|
483
473
|
@telemetry.send_api_usage_telemetry(
|
@@ -492,10 +482,8 @@ class Registry:
|
|
492
482
|
name: Name of the Model Monitor to delete.
|
493
483
|
|
494
484
|
Raises:
|
495
|
-
ValueError: If monitoring
|
485
|
+
ValueError: If monitoring is not enabled in the registry.
|
496
486
|
"""
|
497
487
|
if not self.enable_monitoring:
|
498
|
-
raise ValueError(
|
499
|
-
"Must enable monitoring in Registry to use this method. Please set the `enable_monitoring=True` option"
|
500
|
-
)
|
488
|
+
raise ValueError(_MODEL_MONITORING_DISABLED_ERROR)
|
501
489
|
self._model_monitor_manager.delete_monitor(name)
|
snowflake/ml/version.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
VERSION="1.7.
|
1
|
+
VERSION="1.7.1"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: snowflake-ml-python
|
3
|
-
Version: 1.7.
|
3
|
+
Version: 1.7.1
|
4
4
|
Summary: The machine learning client library that is used for interacting with Snowflake to build machine learning solutions.
|
5
5
|
Author-email: "Snowflake, Inc" <support@snowflake.com>
|
6
6
|
License:
|
@@ -236,10 +236,11 @@ Requires-Dist: absl-py <2,>=0.15
|
|
236
236
|
Requires-Dist: anyio <4,>=3.5.0
|
237
237
|
Requires-Dist: cachetools <6,>=3.1.1
|
238
238
|
Requires-Dist: cloudpickle >=2.0.0
|
239
|
+
Requires-Dist: cryptography
|
239
240
|
Requires-Dist: fsspec[http] <2024,>=2022.11
|
240
241
|
Requires-Dist: importlib-resources <7,>=6.1.1
|
241
242
|
Requires-Dist: numpy <2,>=1.23
|
242
|
-
Requires-Dist: packaging <
|
243
|
+
Requires-Dist: packaging <25,>=20.9
|
243
244
|
Requires-Dist: pandas <3,>=1.0.0
|
244
245
|
Requires-Dist: pyarrow
|
245
246
|
Requires-Dist: pytimeparse <2,>=1.1.8
|
@@ -255,7 +256,7 @@ Requires-Dist: typing-extensions <5,>=4.1.0
|
|
255
256
|
Requires-Dist: xgboost <3,>=1.7.3
|
256
257
|
Provides-Extra: all
|
257
258
|
Requires-Dist: catboost <2,>=1.2.0 ; extra == 'all'
|
258
|
-
Requires-Dist: lightgbm <5,>=
|
259
|
+
Requires-Dist: lightgbm <5,>=4.1.0 ; extra == 'all'
|
259
260
|
Requires-Dist: mlflow <2.4,>=2.1.0 ; extra == 'all'
|
260
261
|
Requires-Dist: peft <1,>=0.5.0 ; extra == 'all'
|
261
262
|
Requires-Dist: sentence-transformers <3,>=2.2.2 ; extra == 'all'
|
@@ -269,7 +270,7 @@ Requires-Dist: transformers <5,>=4.32.1 ; extra == 'all'
|
|
269
270
|
Provides-Extra: catboost
|
270
271
|
Requires-Dist: catboost <2,>=1.2.0 ; extra == 'catboost'
|
271
272
|
Provides-Extra: lightgbm
|
272
|
-
Requires-Dist: lightgbm <5,>=
|
273
|
+
Requires-Dist: lightgbm <5,>=4.1.0 ; extra == 'lightgbm'
|
273
274
|
Provides-Extra: llm
|
274
275
|
Requires-Dist: peft <1,>=0.5.0 ; extra == 'llm'
|
275
276
|
Provides-Extra: mlflow
|
@@ -372,7 +373,32 @@ be compatibility issues. Server-side functionality that `snowflake-ml-python` de
|
|
372
373
|
|
373
374
|
# Release History
|
374
375
|
|
375
|
-
## 1.7.
|
376
|
+
## 1.7.1
|
377
|
+
|
378
|
+
### Bug Fixes
|
379
|
+
|
380
|
+
- Registry: Null value is now allowed in the dataframe used in model signature inference. Null values will be ignored
|
381
|
+
and others will be used to infer the signature.
|
382
|
+
- Registry: Pandas Extension DTypes (`pandas.StringDType()`, `pandas.BooleanDType()`, etc.) are now supported in model
|
383
|
+
signature inference.
|
384
|
+
- Registry: Null value is now allowed in the dataframe used to predict.
|
385
|
+
- Data: Fix missing `snowflake.ml.data.*` module exports in wheel
|
386
|
+
- Dataset: Fix missing `snowflake.ml.dataset.*` module exports in wheel.
|
387
|
+
- Registry: Fix the issue that `tf_keras.Model` is not recognized as keras model when logging.
|
388
|
+
|
389
|
+
### Behavior Changes
|
390
|
+
|
391
|
+
### New Features
|
392
|
+
|
393
|
+
- Registry: Option to `enable_monitoring` set to False by default. This will gate access to preview features of Model Monitoring.
|
394
|
+
- Model Monitoring: `show_model_monitors` Registry method. This feature is still in Private Preview.
|
395
|
+
- Registry: Support `pd.Series` in input and output data.
|
396
|
+
- Model Monitoring: `add_monitor` Registry method. This feature is still in Private Preview.
|
397
|
+
- Model Monitoring: `resume` and `suspend` ModelMonitor. This feature is still in Private Preview.
|
398
|
+
- Model Monitoring: `get_monitor` Registry method. This feature is still in Private Preview.
|
399
|
+
- Model Monitoring: `delete_monitor` Registry method. This feature is still in Private Preview.
|
400
|
+
|
401
|
+
## 1.7.0 (10-22-2024)
|
376
402
|
|
377
403
|
### Behavior Change
|
378
404
|
|
@@ -1,22 +1,23 @@
|
|
1
|
-
snowflake/cortex/__init__.py,sha256=
|
1
|
+
snowflake/cortex/__init__.py,sha256=IZra16r_FeqcwdtCUE8Lj0gIsTDq7VGlux8xDnnq42U,770
|
2
2
|
snowflake/cortex/_classify_text.py,sha256=1SnEdAnQ1IbCKp1bUvQSW7zhGtcS_8qk34X1sVQL37U,1338
|
3
|
-
snowflake/cortex/_complete.py,sha256=
|
3
|
+
snowflake/cortex/_complete.py,sha256=AvE5pNQ8hmWAHUHh8K8NCZLSh_UutrTOD7iQi85-m20,13053
|
4
4
|
snowflake/cortex/_embed_text_1024.py,sha256=zQp2F3MTAxacnIJo7zu8OHkXmX-xi8YzoUcs_FM48uo,1381
|
5
5
|
snowflake/cortex/_embed_text_768.py,sha256=lTus5A1zehbzX4FV6IYZ8bl66QoxUiC_ZilYeBLdLOE,1377
|
6
6
|
snowflake/cortex/_extract_answer.py,sha256=hmJG0iVEe_ww-ll9XEtIL_xPOiNitycUkXBI6WwgfzA,1342
|
7
|
+
snowflake/cortex/_finetune.py,sha256=V-cb1M-TDurjO-F25E1CwviXp2r-QCcu6NjsVE6icOg,10952
|
7
8
|
snowflake/cortex/_sentiment.py,sha256=6_RfOKpwoH0k1puvMaj2TP-0RHQvbkLqrorFvmhdx3E,1206
|
8
|
-
snowflake/cortex/_sse_client.py,sha256=
|
9
|
+
snowflake/cortex/_sse_client.py,sha256=sLYgqAfTOPADCnaWH2RWAJi8KbU_7gSRsTUDcDD5Tl8,5239
|
9
10
|
snowflake/cortex/_summarize.py,sha256=bwpFBzBGmNQSoJqKs3IB5wASjAREnC5ZnViSuZK5IrU,1059
|
10
11
|
snowflake/cortex/_translate.py,sha256=69YUps6mnhzVdubdU_H0IfUAlbBwF9OPemFEQ34P-ts,1404
|
11
|
-
snowflake/cortex/_util.py,sha256=
|
12
|
-
snowflake/ml/version.py,sha256=
|
12
|
+
snowflake/cortex/_util.py,sha256=cwRGgrcUo3E05ZaIDT9436vXLQ7GfuBVAjR0QeQ2bDE,3320
|
13
|
+
snowflake/ml/version.py,sha256=QyWKL6Zvq-VDoZgBZ32iGHIzxeVh0z4fIKkiZHSX7t4,16
|
13
14
|
snowflake/ml/_internal/env.py,sha256=kCrJTRnqQ97VGUVI1cWUPD8HuBWeL5vOOtwUR0NB9Mg,161
|
14
15
|
snowflake/ml/_internal/env_utils.py,sha256=J_jitp8jvDoC3a79EbMSDatFRYw-HiXaI9vR81bhtU8,28075
|
15
16
|
snowflake/ml/_internal/file_utils.py,sha256=OyXHv-UcItiip1YgLnab6etonUQkYuyDtmplZA0CaoU,13622
|
16
17
|
snowflake/ml/_internal/init_utils.py,sha256=U-oPOtyVf22hCwDH_CH2uDr9yuN6Mr3kwQ_yRAs1mcM,2696
|
17
18
|
snowflake/ml/_internal/migrator_utils.py,sha256=k3erO8x3YJcX6nkKeyJAUNGg1qjE3RFmD-W6dtLzIH0,161
|
18
19
|
snowflake/ml/_internal/telemetry.py,sha256=xgpJtUgKNZXrhf9u4G-0IBoSX7QXB5goLC5sHETiJHc,29850
|
19
|
-
snowflake/ml/_internal/type_utils.py,sha256=
|
20
|
+
snowflake/ml/_internal/type_utils.py,sha256=x0sm7lhpDyjdA1G7KvJb06z4PEGsogWiMwFrskPTWkA,2197
|
20
21
|
snowflake/ml/_internal/exceptions/dataset_error_messages.py,sha256=h7uGJbxBM6se-TW_64LKGGGdBCbwflzbBnmijWKX3Gc,285
|
21
22
|
snowflake/ml/_internal/exceptions/dataset_errors.py,sha256=TqESe8cDfWurJdv5X0DOwgzBfHCEqga_F3WQipYbdqg,741
|
22
23
|
snowflake/ml/_internal/exceptions/error_codes.py,sha256=S1N9TvjKlAl3GppkcS8y8xnsOzD2b9kOHeLqWhJV0uk,5519
|
@@ -46,6 +47,7 @@ snowflake/ml/_internal/utils/snowpark_dataframe_utils.py,sha256=pV8m0d4xfG2_Cl25
|
|
46
47
|
snowflake/ml/_internal/utils/sql_identifier.py,sha256=A5mfeDuz4z6VuUYG3EBpDyQQQCNiRtjVS1WNWAoiqq8,4682
|
47
48
|
snowflake/ml/_internal/utils/table_manager.py,sha256=pU7v8Cx-jGObf6RtTmfCmALfhbpJD-lL45T1gWX1nSY,4982
|
48
49
|
snowflake/ml/_internal/utils/temp_file_utils.py,sha256=0-HTjXdxVt0kE6XcgyvRvY0btflWlmotP2bMXVpFJPA,1553
|
50
|
+
snowflake/ml/data/__init__.py,sha256=vTUXLV3r8CoPkepoEzj5HSpKiaHH4MrthXb9RyclVto,275
|
49
51
|
snowflake/ml/data/data_connector.py,sha256=iOOEkRsy11acWZZnLJj6EDgLM63Q8GY-1htO0l7m9Wo,8711
|
50
52
|
snowflake/ml/data/data_ingestor.py,sha256=Nrj5l0cVnoXWI6Ilig-r_pGS902xkZATbqh3OsV53NI,1017
|
51
53
|
snowflake/ml/data/data_source.py,sha256=dRemXGi_HHQdn6gaNkxxGJixnQPuUYFDP8NBjmB_ZMk,518
|
@@ -96,66 +98,66 @@ snowflake/ml/lineage/__init__.py,sha256=8p1YGynC-qOxAZ8jZX2z84Reg5bv1NoJMoJmNJCr
|
|
96
98
|
snowflake/ml/lineage/lineage_node.py,sha256=e6L4bdYDSVgTv0BEfqgPQWNoDiTiuI7HmfJ6n-WmNLE,5812
|
97
99
|
snowflake/ml/model/__init__.py,sha256=EvPtblqPN6_T6dyVfaYUxCfo_M7D2CQ1OR5giIH4TsQ,314
|
98
100
|
snowflake/ml/model/custom_model.py,sha256=O60mjz2Vy8A0Rt3obq43zBT3BxkU7CIcN0AkHsOgHZI,11221
|
99
|
-
snowflake/ml/model/model_signature.py,sha256=
|
100
|
-
snowflake/ml/model/type_hints.py,sha256=
|
101
|
+
snowflake/ml/model/model_signature.py,sha256=gZnZPs9zTCYkeFoiQzoGUQYZMydYjzH-4xPTzfqt4hU,30496
|
102
|
+
snowflake/ml/model/type_hints.py,sha256=9GPwEuG6B6GSWOXdOy8B1Swz6yDngL865yEtJMd0v1U,8883
|
101
103
|
snowflake/ml/model/_client/model/model_impl.py,sha256=pqjK8mSZIQJ_30tRWWFPIo8X35InSVoAunXlQNtSJEM,15369
|
102
|
-
snowflake/ml/model/_client/model/model_version_impl.py,sha256=
|
104
|
+
snowflake/ml/model/_client/model/model_version_impl.py,sha256=PTVqTkNm1adHUjTTWsUlnTSPiMQV-PZLEaj9UstICqk,39076
|
103
105
|
snowflake/ml/model/_client/ops/metadata_ops.py,sha256=7cGx8zYzye2_cvZnyGxoukPtT6Q-Kexd-s4yeZmpmj8,4890
|
104
|
-
snowflake/ml/model/_client/ops/model_ops.py,sha256
|
105
|
-
snowflake/ml/model/_client/ops/service_ops.py,sha256=
|
106
|
+
snowflake/ml/model/_client/ops/model_ops.py,sha256=didFBsjb7KJYV_586TUK4c9DudVQvjzlphEXJW0AnmY,43935
|
107
|
+
snowflake/ml/model/_client/ops/service_ops.py,sha256=LLvRqBBwyJsjNfphN_VdH8O1aQEPNf97Wmco5dfLUN0,19093
|
106
108
|
snowflake/ml/model/_client/service/model_deployment_spec.py,sha256=uyh5k_u8mVP5T4lf0jq8s2cFuiTsbV_nJL6z1Zum2rM,4456
|
107
109
|
snowflake/ml/model/_client/service/model_deployment_spec_schema.py,sha256=eaulF6OFNuDfQz3oPYlDjP26Ww2jWWatm81dCbg602E,825
|
108
110
|
snowflake/ml/model/_client/sql/_base.py,sha256=Qrm8M92g3MHb-QnSLUlbd8iVKCRxLhG_zr5M2qmXwJ8,1473
|
109
|
-
snowflake/ml/model/_client/sql/model.py,sha256=
|
111
|
+
snowflake/ml/model/_client/sql/model.py,sha256=o36oPq4aU9TwahqY2uODYvICxmj1orLztijJ0yMbWnM,5852
|
110
112
|
snowflake/ml/model/_client/sql/model_version.py,sha256=hNMlmwN5JQngKuaeUYV2Bli73RMnHmVH01ABX9NBHFk,20686
|
111
|
-
snowflake/ml/model/_client/sql/service.py,sha256=
|
113
|
+
snowflake/ml/model/_client/sql/service.py,sha256=fvQRhRGU4FBeOBouIoQByTvfQg-qbEQKplCG99BPmL0,10408
|
112
114
|
snowflake/ml/model/_client/sql/stage.py,sha256=hrCh9P9F4l5R0hLr2r-wLDIEc4XYHMFdX1wNRveMVt0,819
|
113
115
|
snowflake/ml/model/_client/sql/tag.py,sha256=pwwrcyPtSnkUfDzL3M8kqM0KSx7CaTtgty3HDhVC9vg,4345
|
114
116
|
snowflake/ml/model/_model_composer/model_composer.py,sha256=535ElL3Kw8eoUjL7fHd-K20eDCBqvJFwowUx2_UOCl8,6712
|
115
117
|
snowflake/ml/model/_model_composer/model_manifest/model_manifest.py,sha256=X6-cKLBZ1X2liIjWnyrd9efQaQhwIoxRSE90Zs0kAZo,7822
|
116
118
|
snowflake/ml/model/_model_composer/model_manifest/model_manifest_schema.py,sha256=akDY_lM3srumPHjmL7AUl782eARg1rWTIdLu-U0Jjwc,2720
|
117
119
|
snowflake/ml/model/_model_composer/model_method/function_generator.py,sha256=2cE463GKWAJCrqEYD1s8IPzd3iPu0X0eQ12NnXQhGBM,2556
|
118
|
-
snowflake/ml/model/_model_composer/model_method/infer_function.py_template,sha256=
|
120
|
+
snowflake/ml/model/_model_composer/model_method/infer_function.py_template,sha256=JbCgx__GqkHi6n_ceYdZi_ywNKK38u-d5c5Afg9QUi0,1476
|
119
121
|
snowflake/ml/model/_model_composer/model_method/infer_partitioned.py_template,sha256=L5R04QeoW6dH1PdEy3qo1LS478rTmvvRmrwlgqVwimg,1504
|
120
122
|
snowflake/ml/model/_model_composer/model_method/infer_table_function.py_template,sha256=NUDSyFFAdEZEWtSkvYxkU9vB-NTjcTg6sjkrNpcmF6A,1418
|
121
123
|
snowflake/ml/model/_model_composer/model_method/model_method.py,sha256=LBZsXzkGj-OiL9Tw4S0yBJlWLIzwzefCL6iO964gdCw,7019
|
122
124
|
snowflake/ml/model/_packager/model_handler.py,sha256=wMPGOegXx5GgiSA81gbKpfODosdj2mvD1bFbeN4OmNc,2642
|
123
125
|
snowflake/ml/model/_packager/model_packager.py,sha256=EhpEmfd2oDYuIrOYFOadI0OOFJa9bleMvI1WTHQqjE8,5806
|
124
|
-
snowflake/ml/model/_packager/model_env/model_env.py,sha256=
|
126
|
+
snowflake/ml/model/_packager/model_env/model_env.py,sha256=968vlQJrI2_2rQ88cl3uXe1FP5kG-zG4UkUySRDgFt4,17517
|
125
127
|
snowflake/ml/model/_packager/model_handlers/_base.py,sha256=qQS1ZSz1Ikdj0TvyLU9n8K6KAj-PknL4s801qpnWodo,7164
|
126
|
-
snowflake/ml/model/_packager/model_handlers/_utils.py,sha256=
|
127
|
-
snowflake/ml/model/_packager/model_handlers/catboost.py,sha256=
|
128
|
-
snowflake/ml/model/_packager/model_handlers/custom.py,sha256=
|
128
|
+
snowflake/ml/model/_packager/model_handlers/_utils.py,sha256=KwBZVSlp6HcCXd7T_zJJE8s5W9YGeXAD_kTpKhrLVzE,9209
|
129
|
+
snowflake/ml/model/_packager/model_handlers/catboost.py,sha256=psBv5txOfAjKMqQnxg3sLPd1I7JYtruslbGUkhULtTs,10704
|
130
|
+
snowflake/ml/model/_packager/model_handlers/custom.py,sha256=i9jhMzNrgxEdiJLw9ojeiMaCWYk5nVj48JyS_e87RpM,8333
|
129
131
|
snowflake/ml/model/_packager/model_handlers/huggingface_pipeline.py,sha256=BzeZgY4Z8GTtgc2sv65wjLlONgfEH1_yWBd2N4RDCMg,21397
|
130
|
-
snowflake/ml/model/_packager/model_handlers/lightgbm.py,sha256=
|
132
|
+
snowflake/ml/model/_packager/model_handlers/lightgbm.py,sha256=E0667G5FFfMssaXjkM77vtf_cyQJg53OKgUJOBmWhaQ,11092
|
131
133
|
snowflake/ml/model/_packager/model_handlers/mlflow.py,sha256=A3HnCa065jtHsRM40ZxfLv5alk0RYhVmsU4Jt2klRwQ,9189
|
132
134
|
snowflake/ml/model/_packager/model_handlers/pytorch.py,sha256=DDcf85xisPLT1PyXdmPrjJpIIepkdmWNXCOpT_dCncw,8294
|
133
135
|
snowflake/ml/model/_packager/model_handlers/sentence_transformers.py,sha256=f21fJw2wPsXzzhv71Gi1eHctSlyJ6NAR1EQX5iUL5M8,9842
|
134
|
-
snowflake/ml/model/_packager/model_handlers/sklearn.py,sha256=
|
135
|
-
snowflake/ml/model/_packager/model_handlers/snowmlmodel.py,sha256=
|
136
|
-
snowflake/ml/model/_packager/model_handlers/tensorflow.py,sha256=
|
137
|
-
snowflake/ml/model/_packager/model_handlers/torchscript.py,sha256=
|
136
|
+
snowflake/ml/model/_packager/model_handlers/sklearn.py,sha256=UbtqgOztM9racr_N-SPRymEpUwhZGKov5iv6dcbINy8,13995
|
137
|
+
snowflake/ml/model/_packager/model_handlers/snowmlmodel.py,sha256=uhsJ3zK24aavBRO5gNyxv8BHqU9n1TPUBYm1qHTuaxE,12176
|
138
|
+
snowflake/ml/model/_packager/model_handlers/tensorflow.py,sha256=SkbnvkElK4UIMgygv9EK9f5hBxWZ2YDroymUC9uBsBk,9169
|
139
|
+
snowflake/ml/model/_packager/model_handlers/torchscript.py,sha256=BIdRINO1xZ5uHrR9uA0vExWQymOryTaSpyAMpCCtz8U,8036
|
138
140
|
snowflake/ml/model/_packager/model_handlers/xgboost.py,sha256=iQkwJ_Ksly3ZSNNjnW2pRetjpyLLneDT5QaeHrpidnw,11542
|
139
141
|
snowflake/ml/model/_packager/model_handlers_migrator/base_migrator.py,sha256=BZo14UrywGZM1kTqzN4VFQcYjl7dggDp1U90ZBCMuOg,1409
|
140
|
-
snowflake/ml/model/_packager/model_meta/_packaging_requirements.py,sha256=
|
142
|
+
snowflake/ml/model/_packager/model_meta/_packaging_requirements.py,sha256=yOrF0WBkFh5NvyzZMSZHpsv_W1iR5hRpPH1bwzpSH_Q,78
|
141
143
|
snowflake/ml/model/_packager/model_meta/model_blob_meta.py,sha256=GmiqqI-XVjrOX7cSa5GKerKhfHptlsg74MKqTGwJ5Jk,1949
|
142
144
|
snowflake/ml/model/_packager/model_meta/model_meta.py,sha256=Fn0yrMiTRmp2lgy15DJvIeT_PMOu_ACNO37b9o4_q2Q,18787
|
143
|
-
snowflake/ml/model/_packager/model_meta/model_meta_schema.py,sha256=
|
145
|
+
snowflake/ml/model/_packager/model_meta/model_meta_schema.py,sha256=5Sdh1_NCKycLvhMO1IbLyXdl4RO_vnw9Z9-AHf5ojpE,2839
|
144
146
|
snowflake/ml/model/_packager/model_meta_migrator/base_migrator.py,sha256=SORlqpPbOeBg6dvJ3DidHeLVi0w9YF0Zv4tC0Kbc20g,1311
|
145
147
|
snowflake/ml/model/_packager/model_meta_migrator/migrator_plans.py,sha256=nf6PWDH_gvX_OiS4A-G6BzyCLFEG4dASU0t5JTsijM4,1041
|
146
148
|
snowflake/ml/model/_packager/model_meta_migrator/migrator_v1.py,sha256=qEPzdCw_FzExMbPuyFHupeWlYD88yejLdcmkPwjJzDk,2070
|
147
|
-
snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py,sha256=
|
148
|
-
snowflake/ml/model/_packager/model_runtime/model_runtime.py,sha256=
|
149
|
-
snowflake/ml/model/_packager/model_task/model_task_utils.py,sha256=
|
149
|
+
snowflake/ml/model/_packager/model_runtime/_snowml_inference_alternative_requirements.py,sha256=5YHbTmgPdURGQDZwzmC7mlYSl8q_e7hzHJ-JyMXgDFY,1419
|
150
|
+
snowflake/ml/model/_packager/model_runtime/model_runtime.py,sha256=G52nrjzcZiWBJaed6Z1qKq-HjqtnG2MnywDdU9lPusg,5051
|
151
|
+
snowflake/ml/model/_packager/model_task/model_task_utils.py,sha256=0aEUfg71bP5-RkwmzOJBe51yHxLRrtM17tUBoCiuMMk,6310
|
150
152
|
snowflake/ml/model/_signatures/base_handler.py,sha256=WwBfe-83Y0m-HcDx1YSYCGwanIe0fb2MWhTeXc1IeJI,1304
|
151
153
|
snowflake/ml/model/_signatures/builtins_handler.py,sha256=nF-2ptQjeu7ikO72_d14jk1N6BVbmy-mjtZ9I1c7-Qg,2741
|
152
|
-
snowflake/ml/model/_signatures/core.py,sha256=
|
154
|
+
snowflake/ml/model/_signatures/core.py,sha256=C9iTtdaXJVMDkOqCH5Tie7ucib4d0pBJ0oXJWAqur3s,20233
|
153
155
|
snowflake/ml/model/_signatures/numpy_handler.py,sha256=wE9GNuNNmC-0jLmz8lI_UhyETNkKUvftIABAuNsSe94,5858
|
154
|
-
snowflake/ml/model/_signatures/pandas_handler.py,sha256=
|
155
|
-
snowflake/ml/model/_signatures/pytorch_handler.py,sha256=
|
156
|
-
snowflake/ml/model/_signatures/snowpark_handler.py,sha256=
|
157
|
-
snowflake/ml/model/_signatures/tensorflow_handler.py,sha256=
|
158
|
-
snowflake/ml/model/_signatures/utils.py,sha256
|
156
|
+
snowflake/ml/model/_signatures/pandas_handler.py,sha256=ACv8egyiK2Sug8uhkQqMDGTTc9HPkI3-UZYMUxzSjLg,11145
|
157
|
+
snowflake/ml/model/_signatures/pytorch_handler.py,sha256=yEU-V_WRjE8Q7NdHyghl0iYpMiIDzGaIR5Pd_ixB1Hk,4631
|
158
|
+
snowflake/ml/model/_signatures/snowpark_handler.py,sha256=2_AY1ssucMICKSPeDjf3mV4WT5farKYdnYkHsvhHZ20,6066
|
159
|
+
snowflake/ml/model/_signatures/tensorflow_handler.py,sha256=9bUbxtHpl4kEoFzeDJF87bQPb8RdLLm9OV23-aUyW3s,6114
|
160
|
+
snowflake/ml/model/_signatures/utils.py,sha256=-RuAFPJn8JHh8QUMLAgMbgpuDvNLI6gVDeLf-lvUBxQ,13109
|
159
161
|
snowflake/ml/model/models/huggingface_pipeline.py,sha256=62GpPZxBheqCnFNxNOggiDE1y9Dhst-v6D4IkGLuDeQ,10221
|
160
162
|
snowflake/ml/modeling/_internal/constants.py,sha256=aJGngY599w3KqN8cDZCYrjbWe6UwYIbgv0gx0Ukdtc0,105
|
161
163
|
snowflake/ml/modeling/_internal/estimator_utils.py,sha256=mbMm8_5tQde_sQDwI8pS3ljHZ8maCHl2Shb5nQwLYac,11872
|
@@ -260,8 +262,8 @@ snowflake/ml/modeling/kernel_approximation/skewed_chi2_sampler.py,sha256=uFOYWOH
|
|
260
262
|
snowflake/ml/modeling/kernel_ridge/__init__.py,sha256=rY5qSOkHj59bHiTV6LhBiEhUA0StoCb0ACNR2vkV4v0,297
|
261
263
|
snowflake/ml/modeling/kernel_ridge/kernel_ridge.py,sha256=OHjaB-MgZvuYFtQawAC1e5rWw98n2n4jpubjdDxoa6w,52067
|
262
264
|
snowflake/ml/modeling/lightgbm/__init__.py,sha256=rY5qSOkHj59bHiTV6LhBiEhUA0StoCb0ACNR2vkV4v0,297
|
263
|
-
snowflake/ml/modeling/lightgbm/lgbm_classifier.py,sha256=
|
264
|
-
snowflake/ml/modeling/lightgbm/lgbm_regressor.py,sha256=
|
265
|
+
snowflake/ml/modeling/lightgbm/lgbm_classifier.py,sha256=7Sv6ovpKWEVX9tgo9YgPIRPqHmZ9752PacHzpw8YJpo,51570
|
266
|
+
snowflake/ml/modeling/lightgbm/lgbm_regressor.py,sha256=V0EBtok8jgxDlkCR4M8lg2CW_UOVXmMS7AqOH8LNLEY,51072
|
265
267
|
snowflake/ml/modeling/linear_model/__init__.py,sha256=rY5qSOkHj59bHiTV6LhBiEhUA0StoCb0ACNR2vkV4v0,297
|
266
268
|
snowflake/ml/modeling/linear_model/ard_regression.py,sha256=DEX9-MxB9zuw2kdNZM8fjoUHBwRtmoIxeV6zzDvHIm0,51827
|
267
269
|
snowflake/ml/modeling/linear_model/bayesian_ridge.py,sha256=gc8wvc6ewNnA4L0pSRMgI_we8AN-tNl6FxGgb37xArk,52197
|
@@ -377,24 +379,23 @@ snowflake/ml/modeling/xgboost/xgb_classifier.py,sha256=2QEK6-NihXjKXO8Ue-fOZDyuc
|
|
377
379
|
snowflake/ml/modeling/xgboost/xgb_regressor.py,sha256=ZorEmRohT2-AUdS8fK0xH8BdB8ENxvVMMDYy34Jzm1o,61703
|
378
380
|
snowflake/ml/modeling/xgboost/xgbrf_classifier.py,sha256=67jh9RosrTeYCWsJbnJ6_MQICHeG22z-DMy8CegP8Vg,62383
|
379
381
|
snowflake/ml/modeling/xgboost/xgbrf_regressor.py,sha256=7_ZwF_QvVqBrkFx_zgGgLXyxtbX26XrWWLozAF-EBB0,61908
|
380
|
-
snowflake/ml/monitoring/model_monitor.py,sha256=
|
382
|
+
snowflake/ml/monitoring/model_monitor.py,sha256=p8FWMpr9O8ScL_y6wdrMUstlpA43gJ0Qiv2e8w-ADts,1374
|
381
383
|
snowflake/ml/monitoring/model_monitor_version.py,sha256=TlmDJZDE0lCVatRaBRgXIjzDF538nrMIc-zWj9MM_nk,46
|
382
384
|
snowflake/ml/monitoring/shap.py,sha256=Dp9nYquPEZjxMTW62YYA9g9qUdmCEFxcSk7ejvOP7PE,3597
|
383
|
-
snowflake/ml/monitoring/_client/model_monitor_sql_client.py,sha256=
|
385
|
+
snowflake/ml/monitoring/_client/model_monitor_sql_client.py,sha256=EH2jTz6ctNxfXbOMGVbQTAgikUig5YmvSsX93cd9ZF8,20194
|
384
386
|
snowflake/ml/monitoring/_client/queries/record_count.ssql,sha256=Bd1uNMwhPKqPyrDd5ug8iY493t9KamJjrlo82OAfmjY,335
|
385
387
|
snowflake/ml/monitoring/_client/queries/rmse.ssql,sha256=OEJiSStRz9-qKoZaFvmubtY_n0xMUjyVU2uiQHCp7KU,822
|
386
|
-
snowflake/ml/monitoring/_manager/model_monitor_manager.py,sha256=
|
387
|
-
snowflake/ml/monitoring/entities/model_monitor_config.py,sha256=
|
388
|
-
snowflake/ml/monitoring/entities/model_monitor_interval.py,sha256=yDUaAXmYRQEFGW9rXihrEs5p0Ur94LCnoqKBjqi0Cyk,1681
|
388
|
+
snowflake/ml/monitoring/_manager/model_monitor_manager.py,sha256=gT3aYZsjD5wIRLdbe7fyyb5vICIxw9WWsK7H0hxbz9E,10314
|
389
|
+
snowflake/ml/monitoring/entities/model_monitor_config.py,sha256=wvk0v9-VvhFAaNdpYXSqKdWj2Kx-KGjuWVkaCgL4MUc,825
|
389
390
|
snowflake/ml/monitoring/entities/output_score_type.py,sha256=UJyS4z5hncRZ0agVNa6_X041RY9q3Us-6Bh3dPVAmEw,2982
|
390
391
|
snowflake/ml/registry/__init__.py,sha256=XdPQK9ejYkSJVrSQ7HD3jKQO0hKq2mC4bPCB6qrtH3U,76
|
391
|
-
snowflake/ml/registry/registry.py,sha256=
|
392
|
+
snowflake/ml/registry/registry.py,sha256=_G6Sm4Zi67iJJ3RUwz2XNYszPnrOtYF5bK8KeGtjubM,23793
|
392
393
|
snowflake/ml/registry/_manager/model_manager.py,sha256=gFr1EqaMR2Eb4erwVz7fi7xK1G1YsFXz1PF5GvOR0pg,12131
|
393
394
|
snowflake/ml/utils/connection_params.py,sha256=JRpQppuWRk6bhdLzVDhMfz3Y6yInobFNLHmIBaXD7po,8005
|
394
395
|
snowflake/ml/utils/sparse.py,sha256=XqDQkw39Ml6YIknswdkvFIwUwBk_GBXAbP8IACfPENg,3817
|
395
396
|
snowflake/ml/utils/sql_client.py,sha256=z4Rhi7pQz3s9cyu_Uzfr3deCnrkCdFh9IYIvicsuwdc,692
|
396
|
-
snowflake_ml_python-1.7.
|
397
|
-
snowflake_ml_python-1.7.
|
398
|
-
snowflake_ml_python-1.7.
|
399
|
-
snowflake_ml_python-1.7.
|
400
|
-
snowflake_ml_python-1.7.
|
397
|
+
snowflake_ml_python-1.7.1.dist-info/LICENSE.txt,sha256=PdEp56Av5m3_kl21iFkVTX_EbHJKFGEdmYeIO1pL_Yk,11365
|
398
|
+
snowflake_ml_python-1.7.1.dist-info/METADATA,sha256=s1vUDI47E0APJr53Bs6qTDV-fWFk3gLkW9yImkzM960,65547
|
399
|
+
snowflake_ml_python-1.7.1.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
|
400
|
+
snowflake_ml_python-1.7.1.dist-info/top_level.txt,sha256=TY0gFSHKDdZy3THb0FGomyikWQasEGldIR1O0HGOHVw,10
|
401
|
+
snowflake_ml_python-1.7.1.dist-info/RECORD,,
|
@@ -1,46 +0,0 @@
|
|
1
|
-
from enum import Enum
|
2
|
-
|
3
|
-
|
4
|
-
class ModelMonitorAggregationWindow(Enum):
|
5
|
-
WINDOW_1_HOUR = 60
|
6
|
-
WINDOW_1_DAY = 24 * 60
|
7
|
-
|
8
|
-
def __init__(self, minutes: int) -> None:
|
9
|
-
super().__init__()
|
10
|
-
self.minutes = minutes
|
11
|
-
|
12
|
-
|
13
|
-
class ModelMonitorRefreshInterval:
|
14
|
-
EVERY_30_MINUTES = "30 minutes"
|
15
|
-
HOURLY = "1 hours"
|
16
|
-
EVERY_6_HOURS = "6 hours"
|
17
|
-
EVERY_12_HOURS = "12 hours"
|
18
|
-
DAILY = "1 days"
|
19
|
-
WEEKLY = "7 days"
|
20
|
-
BIWEEKLY = "14 days"
|
21
|
-
MONTHLY = "30 days"
|
22
|
-
|
23
|
-
_ALLOWED_TIME_UNITS = {"minutes": 1, "hours": 60, "days": 24 * 60}
|
24
|
-
|
25
|
-
def __init__(self, raw_time_str: str) -> None:
|
26
|
-
try:
|
27
|
-
num_units_raw, time_units = raw_time_str.strip().split(" ")
|
28
|
-
num_units = int(num_units_raw) # try to cast
|
29
|
-
except Exception as e:
|
30
|
-
raise ValueError(
|
31
|
-
f"""Failed to parse refresh interval with exception {e}.
|
32
|
-
Provide '<num> <minutes | hours | days>'.
|
33
|
-
See https://docs.snowflake.com/en/sql-reference/sql/create-dynamic-table#required-parameters for more info."""
|
34
|
-
)
|
35
|
-
if time_units.lower() not in self._ALLOWED_TIME_UNITS:
|
36
|
-
raise ValueError(
|
37
|
-
"""Invalid time unit in refresh interval. Provide '<num> <minutes | hours | days>'.
|
38
|
-
See https://docs.snowflake.com/en/sql-reference/sql/create-dynamic-table#required-parameters for more info."""
|
39
|
-
)
|
40
|
-
minutes_multiplier = self._ALLOWED_TIME_UNITS[time_units.lower()]
|
41
|
-
self.minutes = num_units * minutes_multiplier
|
42
|
-
|
43
|
-
def __eq__(self, value: object) -> bool:
|
44
|
-
if not isinstance(value, ModelMonitorRefreshInterval):
|
45
|
-
return False
|
46
|
-
return self.minutes == value.minutes
|
File without changes
|
File without changes
|