oracle-ads 2.12.7__py3-none-any.whl → 2.12.8__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.
@@ -185,7 +185,7 @@ class AquaDeploymentApp(AquaApp):
185
185
  tags[tag] = aqua_model.freeform_tags[tag]
186
186
 
187
187
  tags.update({Tags.AQUA_MODEL_NAME_TAG: aqua_model.display_name})
188
- tags.update({Tags.TASK: aqua_model.freeform_tags.get(Tags.TASK, None)})
188
+ tags.update({Tags.TASK: aqua_model.freeform_tags.get(Tags.TASK, UNKNOWN)})
189
189
 
190
190
  # Set up info to get deployment config
191
191
  config_source_id = model_id
@@ -533,16 +533,22 @@ class AquaDeploymentApp(AquaApp):
533
533
  return results
534
534
 
535
535
  @telemetry(entry_point="plugin=deployment&action=delete", name="aqua")
536
- def delete(self,model_deployment_id:str):
537
- return self.ds_client.delete_model_deployment(model_deployment_id=model_deployment_id).data
536
+ def delete(self, model_deployment_id: str):
537
+ return self.ds_client.delete_model_deployment(
538
+ model_deployment_id=model_deployment_id
539
+ ).data
538
540
 
539
- @telemetry(entry_point="plugin=deployment&action=deactivate",name="aqua")
540
- def deactivate(self,model_deployment_id:str):
541
- return self.ds_client.deactivate_model_deployment(model_deployment_id=model_deployment_id).data
541
+ @telemetry(entry_point="plugin=deployment&action=deactivate", name="aqua")
542
+ def deactivate(self, model_deployment_id: str):
543
+ return self.ds_client.deactivate_model_deployment(
544
+ model_deployment_id=model_deployment_id
545
+ ).data
542
546
 
543
- @telemetry(entry_point="plugin=deployment&action=activate",name="aqua")
544
- def activate(self,model_deployment_id:str):
545
- return self.ds_client.activate_model_deployment(model_deployment_id=model_deployment_id).data
547
+ @telemetry(entry_point="plugin=deployment&action=activate", name="aqua")
548
+ def activate(self, model_deployment_id: str):
549
+ return self.ds_client.activate_model_deployment(
550
+ model_deployment_id=model_deployment_id
551
+ ).data
546
552
 
547
553
  @telemetry(entry_point="plugin=deployment&action=get", name="aqua")
548
554
  def get(self, model_deployment_id: str, **kwargs) -> "AquaDeploymentDetail":
@@ -1,5 +1,4 @@
1
1
  #!/usr/bin/env python
2
- # -*- coding: utf-8 -*--
3
2
 
4
3
  # Copyright (c) 2023, 2024 Oracle and/or its affiliates.
5
4
  # Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/
@@ -18,7 +17,6 @@ import yaml
18
17
  from cerberus import Validator
19
18
 
20
19
  from ads.opctl import logger, utils
21
- from ads.opctl.operator import __operators__
22
20
 
23
21
  CONTAINER_NETWORK = "CONTAINER_NETWORK"
24
22
 
@@ -26,7 +24,11 @@ CONTAINER_NETWORK = "CONTAINER_NETWORK"
26
24
  class OperatorValidator(Validator):
27
25
  """The custom validator class."""
28
26
 
29
- pass
27
+ def validate(self, obj_dict, **kwargs):
28
+ # Model should be case insensitive
29
+ if "model" in obj_dict["spec"]:
30
+ obj_dict["spec"]["model"] = str(obj_dict["spec"]["model"]).lower()
31
+ return super().validate(obj_dict, **kwargs)
30
32
 
31
33
 
32
34
  def create_output_folder(name):
@@ -34,7 +36,7 @@ def create_output_folder(name):
34
36
  protocol = fsspec.utils.get_protocol(output_folder)
35
37
  storage_options = {}
36
38
  if protocol != "file":
37
- storage_options = auth or default_signer()
39
+ storage_options = default_signer()
38
40
 
39
41
  fs = fsspec.filesystem(protocol, **storage_options)
40
42
  name_suffix = 1
@@ -166,9 +166,8 @@ class AnomalyOperatorBaseModel(ABC):
166
166
  yaml_appendix = rc.Yaml(self.config.to_dict())
167
167
  summary = rc.Block(
168
168
  rc.Group(
169
- rc.Text(
170
- f"You selected the **`{self.spec.model}`** model.\n{model_description.text}\n"
171
- ),
169
+ rc.Text(f"You selected the **`{self.spec.model}`** model.\n"),
170
+ model_description,
172
171
  rc.Text(
173
172
  "Based on your dataset, you could have also selected "
174
173
  f"any of the models: `{'`, `'.join(SupportedModels.keys() if self.spec.datetime_column else NonTimeADSupportedModels.keys())}`."
@@ -26,9 +26,9 @@ class UnSupportedModelError(Exception):
26
26
 
27
27
  def __init__(self, operator_config: AnomalyOperatorConfig, model_type: str):
28
28
  supported_models = (
29
- SupportedModels.values
29
+ SupportedModels.values()
30
30
  if operator_config.spec.datetime_column
31
- else NonTimeADSupportedModels.values
31
+ else NonTimeADSupportedModels.values()
32
32
  )
33
33
  message = (
34
34
  f"Model: `{model_type}` is not supported. "
@@ -1,18 +1,19 @@
1
1
  #!/usr/bin/env python
2
- # -*- coding: utf-8 -*--
3
2
 
4
- # Copyright (c) 2023 Oracle and/or its affiliates.
3
+ # Copyright (c) 2023, 2024 Oracle and/or its affiliates.
5
4
  # Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/
6
5
 
6
+ from abc import ABC
7
+
8
+ import pandas as pd
9
+
7
10
  from ads.opctl import logger
11
+ from ads.opctl.operator.lowcode.common.const import DataColumns
8
12
  from ads.opctl.operator.lowcode.common.errors import (
9
- InvalidParameterError,
10
13
  DataMismatchError,
14
+ InvalidParameterError,
11
15
  )
12
- from ads.opctl.operator.lowcode.common.const import DataColumns
13
16
  from ads.opctl.operator.lowcode.common.utils import merge_category_columns
14
- import pandas as pd
15
- from abc import ABC
16
17
 
17
18
 
18
19
  class Transformations(ABC):
@@ -58,6 +59,7 @@ class Transformations(ABC):
58
59
 
59
60
  """
60
61
  clean_df = self._remove_trailing_whitespace(data)
62
+ # clean_df = self._normalize_column_names(clean_df)
61
63
  if self.name == "historical_data":
62
64
  self._check_historical_dataset(clean_df)
63
65
  clean_df = self._set_series_id_column(clean_df)
@@ -95,8 +97,11 @@ class Transformations(ABC):
95
97
  def _remove_trailing_whitespace(self, df):
96
98
  return df.apply(lambda x: x.str.strip() if x.dtype == "object" else x)
97
99
 
100
+ # def _normalize_column_names(self, df):
101
+ # return df.rename(columns=lambda x: re.sub("[^A-Za-z0-9_]+", "", x))
102
+
98
103
  def _set_series_id_column(self, df):
99
- self._target_category_columns_map = dict()
104
+ self._target_category_columns_map = {}
100
105
  if not self.target_category_columns:
101
106
  df[DataColumns.Series] = "Series 1"
102
107
  self.has_artificial_series = True
@@ -125,10 +130,10 @@ class Transformations(ABC):
125
130
  df[self.dt_column_name] = pd.to_datetime(
126
131
  df[self.dt_column_name], format=self.dt_column_format
127
132
  )
128
- except:
133
+ except Exception as ee:
129
134
  raise InvalidParameterError(
130
135
  f"Unable to determine the datetime type for column: {self.dt_column_name} in dataset: {self.name}. Please specify the format explicitly. (For example adding 'format: %d/%m/%Y' underneath 'name: {self.dt_column_name}' in the datetime_column section of the yaml file if you haven't already. For reference, here is the first datetime given: {df[self.dt_column_name].values[0]}"
131
- )
136
+ ) from ee
132
137
  return df
133
138
 
134
139
  def _set_multi_index(self, df):
@@ -242,7 +247,6 @@ class Transformations(ABC):
242
247
  "Class": "A",
243
248
  "Num": 2
244
249
  },
245
-
246
250
  }
247
251
  """
248
252
 
@@ -1,42 +1,32 @@
1
1
  #!/usr/bin/env python
2
- # -*- coding: utf-8 -*--
3
2
 
4
3
  # Copyright (c) 2024 Oracle and/or its affiliates.
5
4
  # Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/
6
5
 
7
- import argparse
8
6
  import logging
9
7
  import os
10
8
  import shutil
11
9
  import sys
12
10
  import tempfile
13
- import time
14
- from string import Template
15
- from typing import Any, Dict, List, Tuple
16
- import pandas as pd
17
- from ads.opctl import logger
18
- import oracledb
11
+ from typing import List, Union
19
12
 
20
13
  import fsspec
21
- import yaml
22
- from typing import Union
14
+ import oracledb
15
+ import pandas as pd
23
16
 
17
+ from ads.common.object_storage_details import ObjectStorageDetails
24
18
  from ads.opctl import logger
19
+ from ads.opctl.operator.common.operator_config import OutputDirectory
25
20
  from ads.opctl.operator.lowcode.common.errors import (
26
- InputDataError,
27
21
  InvalidParameterError,
28
- PermissionsError,
29
- DataMismatchError,
30
22
  )
31
- from ads.opctl.operator.common.operator_config import OutputDirectory
32
- from ads.common.object_storage_details import ObjectStorageDetails
33
23
  from ads.secrets import ADBSecretKeeper
34
24
 
35
25
 
36
26
  def call_pandas_fsspec(pd_fn, filename, storage_options, **kwargs):
37
- if fsspec.utils.get_protocol(filename) == "file":
38
- return pd_fn(filename, **kwargs)
39
- elif fsspec.utils.get_protocol(filename) in ["http", "https"]:
27
+ if fsspec.utils.get_protocol(filename) == "file" or fsspec.utils.get_protocol(
28
+ filename
29
+ ) in ["http", "https"]:
40
30
  return pd_fn(filename, **kwargs)
41
31
 
42
32
  storage_options = storage_options or (
@@ -48,7 +38,7 @@ def call_pandas_fsspec(pd_fn, filename, storage_options, **kwargs):
48
38
 
49
39
  def load_data(data_spec, storage_options=None, **kwargs):
50
40
  if data_spec is None:
51
- raise InvalidParameterError(f"No details provided for this data source.")
41
+ raise InvalidParameterError("No details provided for this data source.")
52
42
  filename = data_spec.url
53
43
  format = data_spec.format
54
44
  columns = data_spec.columns
@@ -67,7 +57,7 @@ def load_data(data_spec, storage_options=None, **kwargs):
67
57
  if not format:
68
58
  _, format = os.path.splitext(filename)
69
59
  format = format[1:]
70
- if format in ["json", "clipboard", "excel", "csv", "feather", "hdf"]:
60
+ if format in ["json", "clipboard", "excel", "csv", "feather", "hdf", "parquet"]:
71
61
  read_fn = getattr(pd, f"read_{format}")
72
62
  data = call_pandas_fsspec(
73
63
  read_fn, filename, storage_options=storage_options
@@ -84,19 +74,31 @@ def load_data(data_spec, storage_options=None, **kwargs):
84
74
  with tempfile.TemporaryDirectory() as temp_dir:
85
75
  if vault_secret_id is not None:
86
76
  try:
87
- with ADBSecretKeeper.load_secret(vault_secret_id, wallet_dir=temp_dir) as adwsecret:
88
- if 'wallet_location' in adwsecret and 'wallet_location' not in connect_args:
89
- shutil.unpack_archive(adwsecret["wallet_location"], temp_dir)
90
- connect_args['wallet_location'] = temp_dir
91
- if 'user_name' in adwsecret and 'user' not in connect_args:
92
- connect_args['user'] = adwsecret['user_name']
93
- if 'password' in adwsecret and 'password' not in connect_args:
94
- connect_args['password'] = adwsecret['password']
95
- if 'service_name' in adwsecret and 'service_name' not in connect_args:
96
- connect_args['service_name'] = adwsecret['service_name']
77
+ with ADBSecretKeeper.load_secret(
78
+ vault_secret_id, wallet_dir=temp_dir
79
+ ) as adwsecret:
80
+ if (
81
+ "wallet_location" in adwsecret
82
+ and "wallet_location" not in connect_args
83
+ ):
84
+ shutil.unpack_archive(
85
+ adwsecret["wallet_location"], temp_dir
86
+ )
87
+ connect_args["wallet_location"] = temp_dir
88
+ if "user_name" in adwsecret and "user" not in connect_args:
89
+ connect_args["user"] = adwsecret["user_name"]
90
+ if "password" in adwsecret and "password" not in connect_args:
91
+ connect_args["password"] = adwsecret["password"]
92
+ if (
93
+ "service_name" in adwsecret
94
+ and "service_name" not in connect_args
95
+ ):
96
+ connect_args["service_name"] = adwsecret["service_name"]
97
97
 
98
98
  except Exception as e:
99
- raise Exception(f"Could not retrieve database credentials from vault {vault_secret_id}: {e}")
99
+ raise Exception(
100
+ f"Could not retrieve database credentials from vault {vault_secret_id}: {e}"
101
+ )
100
102
 
101
103
  con = oracledb.connect(**connect_args)
102
104
  if table_name is not None:
@@ -105,11 +107,11 @@ def load_data(data_spec, storage_options=None, **kwargs):
105
107
  data = pd.read_sql(sql, con)
106
108
  else:
107
109
  raise InvalidParameterError(
108
- f"Database `connect_args` provided without sql query or table name. Please specify either `sql` or `table_name`."
110
+ "Database `connect_args` provided without sql query or table name. Please specify either `sql` or `table_name`."
109
111
  )
110
112
  else:
111
113
  raise InvalidParameterError(
112
- f"No filename/url provided, and no connect_args provided. Please specify one of these if you want to read data from a file or a database respectively."
114
+ "No filename/url provided, and no connect_args provided. Please specify one of these if you want to read data from a file or a database respectively."
113
115
  )
114
116
  if columns:
115
117
  # keep only these columns, done after load because only CSV supports stream filtering
@@ -232,7 +234,7 @@ def human_time_friendly(seconds):
232
234
  accumulator.append(
233
235
  "{} {}{}".format(int(amount), unit, "" if amount == 1 else "s")
234
236
  )
235
- accumulator.append("{} secs".format(round(seconds, 2)))
237
+ accumulator.append(f"{round(seconds, 2)} secs")
236
238
  return ", ".join(accumulator)
237
239
 
238
240
 
@@ -248,9 +250,7 @@ def find_output_dirname(output_dir: OutputDirectory):
248
250
  unique_output_dir = f"{output_dir}_{counter}"
249
251
  counter += 1
250
252
  logger.warn(
251
- "Since the output directory was not specified, the output will be saved to {} directory.".format(
252
- unique_output_dir
253
- )
253
+ f"Since the output directory was not specified, the output will be saved to {unique_output_dir} directory."
254
254
  )
255
255
  return unique_output_dir
256
256
 
@@ -2,6 +2,7 @@
2
2
  # Copyright (c) 2023, 2024 Oracle and/or its affiliates.
3
3
  # Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/
4
4
  import logging
5
+ import os
5
6
  import traceback
6
7
 
7
8
  import numpy as np
@@ -80,10 +81,17 @@ class AutoMLXOperatorModel(ForecastOperatorBaseModel):
80
81
 
81
82
  from automlx import Pipeline, init
82
83
 
84
+ cpu_count = os.cpu_count()
83
85
  try:
86
+ if cpu_count < 4:
87
+ engine = "local"
88
+ engine_opts = None
89
+ else:
90
+ engine = "ray"
91
+ engine_opts = ({"ray_setup": {"_temp_dir": "/tmp/ray-temp"}},)
84
92
  init(
85
- engine="ray",
86
- engine_opts={"ray_setup": {"_temp_dir": "/tmp/ray-temp"}},
93
+ engine=engine,
94
+ engine_opts=engine_opts,
87
95
  loglevel=logging.CRITICAL,
88
96
  )
89
97
  except Exception as e:
@@ -148,8 +148,9 @@ class ForecastOperatorBaseModel(ABC):
148
148
  header_section = rc.Block(
149
149
  rc.Heading("Forecast Report", level=1),
150
150
  rc.Text(
151
- f"You selected the {self.spec.model} model.\n{model_description}\nBased on your dataset, you could have also selected any of the models: {SupportedModels.keys()}."
151
+ f"You selected the {self.spec.model} model.\nBased on your dataset, you could have also selected any of the models: {SupportedModels.keys()}."
152
152
  ),
153
+ model_description,
153
154
  rc.Group(
154
155
  rc.Metric(
155
156
  heading="Analysis was completed in ",
@@ -11,6 +11,7 @@ from .automlx import AutoMLXOperatorModel
11
11
  from .autots import AutoTSOperatorModel
12
12
  from .base_model import ForecastOperatorBaseModel
13
13
  from .forecast_datasets import ForecastDatasets
14
+ from .ml_forecast import MLForecastOperatorModel
14
15
  from .neuralprophet import NeuralProphetOperatorModel
15
16
  from .prophet import ProphetOperatorModel
16
17
 
@@ -19,7 +20,7 @@ class UnSupportedModelError(Exception):
19
20
  def __init__(self, model_type: str):
20
21
  super().__init__(
21
22
  f"Model: `{model_type}` "
22
- f"is not supported. Supported models: {SupportedModels.values}"
23
+ f"is not supported. Supported models: {SupportedModels.values()}"
23
24
  )
24
25
 
25
26
 
@@ -32,7 +33,7 @@ class ForecastOperatorModelFactory:
32
33
  SupportedModels.Prophet: ProphetOperatorModel,
33
34
  SupportedModels.Arima: ArimaOperatorModel,
34
35
  SupportedModels.NeuralProphet: NeuralProphetOperatorModel,
35
- # SupportedModels.LGBForecast: MLForecastOperatorModel,
36
+ SupportedModels.LGBForecast: MLForecastOperatorModel,
36
37
  SupportedModels.AutoMLX: AutoMLXOperatorModel,
37
38
  SupportedModels.AutoTS: AutoTSOperatorModel,
38
39
  }
@@ -142,6 +142,9 @@ class ProphetOperatorModel(ForecastOperatorBaseModel):
142
142
  dt_column=self.spec.datetime_column.name,
143
143
  )
144
144
 
145
+ # if os.environ["OCI__IS_SPARK"]:
146
+ # pass
147
+ # else:
145
148
  Parallel(n_jobs=-1, require="sharedmem")(
146
149
  delayed(ProphetOperatorModel._train_model)(
147
150
  self, i, series_id, df, model_kwargs.copy()
@@ -354,7 +357,7 @@ class ProphetOperatorModel(ForecastOperatorBaseModel):
354
357
  logger.warn(f"Failed to generate Explanations with error: {e}.")
355
358
  logger.debug(f"Full Traceback: {traceback.format_exc()}")
356
359
 
357
- model_description = (
360
+ model_description = rc.Text(
358
361
  "Prophet is a procedure for forecasting time series data based on an additive "
359
362
  "model where non-linear trends are fit with yearly, weekly, and daily seasonality, "
360
363
  "plus holiday effects. It works best with time series that have strong seasonal "
@@ -311,7 +311,7 @@ spec:
311
311
  missing_value_imputation:
312
312
  type: boolean
313
313
  required: false
314
- default: false
314
+ default: true
315
315
  outlier_treatment:
316
316
  type: boolean
317
317
  required: false
@@ -1,7 +1,6 @@
1
1
  #!/usr/bin/env python
2
- # -*- coding: utf-8 -*--
3
2
 
4
- # Copyright (c) 2023 Oracle and/or its affiliates.
3
+ # Copyright (c) 2023, 2024 Oracle and/or its affiliates.
5
4
  # Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/
6
5
 
7
6
  import uuid
@@ -18,7 +17,7 @@ class UnSupportedDetectorError(Exception):
18
17
  def __init__(self, dtype: str):
19
18
  super().__init__(
20
19
  f"Detector: `{dtype}` "
21
- f"is not supported. Supported models: {SupportedDetector.values}"
20
+ f"is not supported. Supported models: {SupportedDetector.values()}"
22
21
  )
23
22
 
24
23
 
@@ -42,7 +41,10 @@ class SpacyDetector(PiiBaseDetector):
42
41
  @runtime_dependency(module="scrubadub", install_from=OptionalDependency.PII)
43
42
  @runtime_dependency(module="scrubadub_spacy", install_from=OptionalDependency.PII)
44
43
  def construct(cls, entity, model, **kwargs):
45
- spacy_entity_detector = scrubadub_spacy.detectors.spacy.SpacyEntityDetector(
44
+ from scrubadub.filth import Filth
45
+ from scrubadub_spacy.detectors.spacy import SpacyEntityDetector
46
+
47
+ spacy_entity_detector = SpacyEntityDetector(
46
48
  named_entities=[entity],
47
49
  name=f"spacy_{uuid.uuid4()}",
48
50
  model=model,
@@ -50,7 +52,7 @@ class SpacyDetector(PiiBaseDetector):
50
52
  if entity.upper() not in cls.DEFAULT_SPACY_NAMED_ENTITIES:
51
53
  filth_cls = type(
52
54
  construct_filth_cls_name(entity),
53
- (scrubadub.filth.Filth,),
55
+ (Filth,),
54
56
  {"type": entity.upper()},
55
57
  )
56
58
  spacy_entity_detector.filth_cls_map[entity.upper()] = filth_cls
@@ -61,8 +61,9 @@ class RecommenderOperatorBaseModel(ABC):
61
61
  header_section = rc.Block(
62
62
  rc.Heading("Recommender Report", level=1),
63
63
  rc.Text(
64
- f"The recommendations was generated using {SupportedModels.SVD.upper()}. {model_description}"
64
+ f"The recommendations was generated using {SupportedModels.SVD.upper()}."
65
65
  ),
66
+ model_description,
66
67
  rc.Group(
67
68
  rc.Metric(
68
69
  heading="Recommendations was generated in ",
@@ -1,7 +1,6 @@
1
1
  #!/usr/bin/env python
2
- # -*- coding: utf-8 -*--
3
2
 
4
- # Copyright (c) 2023 Oracle and/or its affiliates.
3
+ # Copyright (c) 2023, 2024 Oracle and/or its affiliates.
5
4
  # Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/
6
5
 
7
6
  from ..constant import SupportedModels
@@ -10,11 +9,12 @@ from .base_model import RecommenderOperatorBaseModel
10
9
  from .recommender_dataset import RecommenderDatasets
11
10
  from .svd import SVDOperatorModel
12
11
 
12
+
13
13
  class UnSupportedModelError(Exception):
14
14
  def __init__(self, model_type: str):
15
15
  super().__init__(
16
16
  f"Model: `{model_type}` "
17
- f"is not supported. Supported models: {SupportedModels.values}"
17
+ f"is not supported. Supported models: {SupportedModels.values()}"
18
18
  )
19
19
 
20
20
 
@@ -23,9 +23,7 @@ class RecommenderOperatorModelFactory:
23
23
  The factory class helps to instantiate proper model operator based on the model type.
24
24
  """
25
25
 
26
- _MAP = {
27
- SupportedModels.SVD: SVDOperatorModel
28
- }
26
+ _MAP = {SupportedModels.SVD: SVDOperatorModel}
29
27
 
30
28
  @classmethod
31
29
  def get_model(
@@ -78,11 +78,11 @@ class SVDOperatorModel(RecommenderOperatorBaseModel):
78
78
  return recommendations_df, metric
79
79
 
80
80
  def _generate_report(self):
81
- model_description = """
82
- Singular Value Decomposition (SVD) is a matrix factorization technique used in recommendation systems to
83
- decompose a user-item interaction matrix into three constituent matrices. These matrices capture the
84
- latent factors that explain the observed interactions.
85
- """
81
+ model_description = rc.Text(
82
+ "Singular Value Decomposition (SVD) is a matrix factorization technique used in recommendation systems to \
83
+ decompose a user-item interaction matrix into three constituent matrices. These matrices capture the \
84
+ latent factors that explain the observed interactions."
85
+ )
86
86
  new_user_recommendations = self._get_recommendations(
87
87
  "__new_user__", self.spec.top_k
88
88
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: oracle_ads
3
- Version: 2.12.7
3
+ Version: 2.12.8
4
4
  Summary: Oracle Accelerated Data Science SDK
5
5
  Keywords: Oracle Cloud Infrastructure,OCI,Machine Learning,ML,Artificial Intelligence,AI,Data Science,Cloud,Oracle
6
6
  Author: Oracle Data Science
@@ -58,7 +58,7 @@ ads/aqua/model/enums.py,sha256=t8GbK2nblIPm3gClR8W31RmbtTuqpoSzoN4W3JfD6AI,1004
58
58
  ads/aqua/model/model.py,sha256=pFG4lkaqtovSpiu3BOCGT7scMtXt4rwup9Rof6Hl_CU,63908
59
59
  ads/aqua/modeldeployment/__init__.py,sha256=RJCfU1yazv3hVWi5rS08QVLTpTwZLnlC8wU8diwFjnM,391
60
60
  ads/aqua/modeldeployment/constants.py,sha256=lJF77zwxmlECljDYjwFAMprAUR_zctZHmawiP-4alLg,296
61
- ads/aqua/modeldeployment/deployment.py,sha256=8qx4cxzuln5FZpAXTZlvaHCio2fzFJxO4PrrAS1_b6A,30652
61
+ ads/aqua/modeldeployment/deployment.py,sha256=bk58MfjnrUiDUFwjBRJwBR_8b-6z8IuzTts2T0-pK3E,30729
62
62
  ads/aqua/modeldeployment/entities.py,sha256=7aoE2HemsFEvkQynAI4PCfZBcfPJrvbyZeEYvc7OIAA,5111
63
63
  ads/aqua/modeldeployment/inference.py,sha256=JPqzbHJoM-PpIU_Ft9lHudO9_1vFr7OPQ2GHjPoAufU,2142
64
64
  ads/aqua/training/__init__.py,sha256=w2DNWltXtASQgbrHyvKo0gMs5_chZoG-CSDMI4qe7i0,202
@@ -632,7 +632,7 @@ ads/opctl/operator/common/operator_config.py,sha256=1OEWqNOj7w4vpnSQ9lLxkGDOM4lI
632
632
  ads/opctl/operator/common/operator_loader.py,sha256=fpdrqDyOF9h4lsnGOsdDQsZl1xbdRFtqU6haaQJ15Ls,24146
633
633
  ads/opctl/operator/common/operator_schema.yaml,sha256=kIXKI9GCkwGhkby6THJR2zY6YK0waIgPfPxw85I7aG4,3046
634
634
  ads/opctl/operator/common/operator_yaml_generator.py,sha256=hH6wYj7oDYeAsE1grcIF4K1EE_RhguLXltxPbmB65iQ,5108
635
- ads/opctl/operator/common/utils.py,sha256=KQMTVimdm2A1igbE4r-u_aT_EQw7DkVQvDNFouYLmME,4971
635
+ ads/opctl/operator/common/utils.py,sha256=VC9DLNxipUzwEhkIIL50aQKhh2cjKNm8Nl_pwfXvVM4,5142
636
636
  ads/opctl/operator/common/data/synthetic.csv,sha256=zAxZ7NsWn0CKRWTW6IUKWWwdJs2OY_-yO1Nme_peFY4,769681
637
637
  ads/opctl/operator/lowcode/__init__.py,sha256=sAqmLhogrLXb3xI7dPOj9HmSkpTnLh9wkzysuGd8AXk,204
638
638
  ads/opctl/operator/lowcode/anomaly/MLoperator,sha256=mkf13TlGl64AZtgeNy4PVi81Z-0XEvntW2y7ME8wikw,509
@@ -650,8 +650,8 @@ ads/opctl/operator/lowcode/anomaly/model/anomaly_dataset.py,sha256=zpRRAtbjRgX9H
650
650
  ads/opctl/operator/lowcode/anomaly/model/anomaly_merlion.py,sha256=IT0g6wf2rZI-GFuuOgtESWYTE_D77P8y9YeRZ6ucguQ,5836
651
651
  ads/opctl/operator/lowcode/anomaly/model/automlx.py,sha256=40rY-mVYoLBmDw5uagayRoyYSkjsIY4U4LfyeU11AoA,3469
652
652
  ads/opctl/operator/lowcode/anomaly/model/autots.py,sha256=Ft6bLEXdpIMMDv4lLBzLhC2kRZki7zD9Jnu-LIPDDbw,4154
653
- ads/opctl/operator/lowcode/anomaly/model/base_model.py,sha256=Lbwyt0bCVaF80mSbZPq_05-Dw4oqX3RK6lF7S8QJeEI,15562
654
- ads/opctl/operator/lowcode/anomaly/model/factory.py,sha256=yld9CI-ZZJO2dDB24aOm6SLXbibNMeK1NQEZHpGNdfY,4144
653
+ ads/opctl/operator/lowcode/anomaly/model/base_model.py,sha256=RUNyoGPKi09h4zMQ__NNyremGVZKvllH4_5_8ftNVDA,15533
654
+ ads/opctl/operator/lowcode/anomaly/model/factory.py,sha256=EVYgEGvVTMNFt-tDP6SH3qDoVBAZD3D_Jlw6Xu9zdQU,4148
655
655
  ads/opctl/operator/lowcode/anomaly/model/isolationforest.py,sha256=e_C_I6d6PVojPoHz_D5r8nC_JctTYooVVKFlcX5kkls,2657
656
656
  ads/opctl/operator/lowcode/anomaly/model/oneclasssvm.py,sha256=eejgAtxwjGzWJBVdgp0oZHM4NCLAQh-AksGE0YuM7D4,2557
657
657
  ads/opctl/operator/lowcode/anomaly/model/randomcutforest.py,sha256=K8fVcG952bSUkgoXm7uU1jUUyBd8jvHprkbM4a7i_Xs,4329
@@ -660,8 +660,8 @@ ads/opctl/operator/lowcode/common/__init__.py,sha256=rZrmh1nho40OCeabXCNWtze-mXi
660
660
  ads/opctl/operator/lowcode/common/const.py,sha256=1dUhgup4L_U0s6BSYmgLPpZAe6xqfSHPPoLqW0j46U8,265
661
661
  ads/opctl/operator/lowcode/common/data.py,sha256=nKwE0ubF9fTHFOls5uQ3BBpcPNRtwvGW3UGK-JjAm84,4107
662
662
  ads/opctl/operator/lowcode/common/errors.py,sha256=LvQ_Qzh6cqD6uP91DMFFVXPrcc3010EE8LfBH-CH0ho,1534
663
- ads/opctl/operator/lowcode/common/transformations.py,sha256=Minukbv9Ja1yNJYgTQICU9kykIdbBELhrFFyWECgtes,9630
664
- ads/opctl/operator/lowcode/common/utils.py,sha256=jQIyjtg4i4hfrhBIGhSOzkry2-ziZrn8cBj8lcTv66E,9292
663
+ ads/opctl/operator/lowcode/common/transformations.py,sha256=WQsVKmYmPecZTsGvabUDCBzuNJfzpQVSe93nzElRnIc,9804
664
+ ads/opctl/operator/lowcode/common/utils.py,sha256=XadRZMiIgAUdXw7rDXl4xUPfta9Z_NQsQbDQIR-L73Q,9327
665
665
  ads/opctl/operator/lowcode/feature_store_marketplace/MLoperator,sha256=JO5ulr32WsFnbpk1KN97h8-D70jcFt1kRQ08UMkP4rU,346
666
666
  ads/opctl/operator/lowcode/feature_store_marketplace/README.md,sha256=fN9ROzOPdEZdRgSP_uYvAmD5bD983NC7Irfe_D-mvrw,1356
667
667
  ads/opctl/operator/lowcode/feature_store_marketplace/__init__.py,sha256=rZrmh1nho40OCeabXCNWtze-mXi-PGKetcZdxZSn3_0,204
@@ -686,18 +686,18 @@ ads/opctl/operator/lowcode/forecast/environment.yaml,sha256=eVMf9pcjADI14_GRGdZO
686
686
  ads/opctl/operator/lowcode/forecast/errors.py,sha256=X9zuV2Lqb5N9FuBHHshOFYyhvng5r9KGLHnQijZ5b8c,911
687
687
  ads/opctl/operator/lowcode/forecast/model_evaluator.py,sha256=HssIlfJlJt5HetwzT87rDeRYRwJAXG1yoSjT4SUB8D0,9266
688
688
  ads/opctl/operator/lowcode/forecast/operator_config.py,sha256=vG7n-RIiazujH0UtJ0uarx9IKDIAS0b4WcCo1dNLVL0,6422
689
- ads/opctl/operator/lowcode/forecast/schema.yaml,sha256=twmsn0wPPkgdVk8tKPZL3zBlxqecuXL0GSlIz3I8ZEI,10136
689
+ ads/opctl/operator/lowcode/forecast/schema.yaml,sha256=r9vll4zNn3maiEXO0aQdt4bQ9l9DmK_Jy7lpidhVubc,10135
690
690
  ads/opctl/operator/lowcode/forecast/utils.py,sha256=B7X3vLxmbx3MyUQxoplhQCMb0bgmPk2g-KN-OY768E8,13908
691
691
  ads/opctl/operator/lowcode/forecast/model/__init__.py,sha256=sAqmLhogrLXb3xI7dPOj9HmSkpTnLh9wkzysuGd8AXk,204
692
692
  ads/opctl/operator/lowcode/forecast/model/arima.py,sha256=lU7NlpXI1-g-O_1rGJLlEL17_ruGXAdzzY7H8nFRvGQ,10943
693
- ads/opctl/operator/lowcode/forecast/model/automlx.py,sha256=5_mVPpGqXUXSIKW9dM3fh0mYv-B_7XZu03yqFPrzHdc,14740
693
+ ads/opctl/operator/lowcode/forecast/model/automlx.py,sha256=lrNktixdaJJHHXqIrSmgzCZKEzB_CirQcuquf73AYUQ,14978
694
694
  ads/opctl/operator/lowcode/forecast/model/autots.py,sha256=Y9_EAfDD5r6SPZq7iGp7YMh-vH0lwAGNpyNT2sm7cqo,13027
695
- ads/opctl/operator/lowcode/forecast/model/base_model.py,sha256=b7ZVnGKTIULBWE5W_pQQGzcLM4g2YZIUEH3P94L41aQ,30988
696
- ads/opctl/operator/lowcode/forecast/model/factory.py,sha256=RrE6JJcUmkypjD6IQOR53I9GCg7jQO380r53oLmVK6A,3439
695
+ ads/opctl/operator/lowcode/forecast/model/base_model.py,sha256=H9yQ1DzyfGqnggEaSWgUJjW_bxml6Kto62gohuEO9y4,31006
696
+ ads/opctl/operator/lowcode/forecast/model/factory.py,sha256=hSRPPWdpIRSMYPUFMIUuxc2TPZt-SG18MiqhtdfL3mg,3488
697
697
  ads/opctl/operator/lowcode/forecast/model/forecast_datasets.py,sha256=GCwX9Udh4U79wBNG5bjSYabgRDO0u-ElVJkSC_HcBeA,16563
698
698
  ads/opctl/operator/lowcode/forecast/model/ml_forecast.py,sha256=NSZ2L6gRw4S68BUF0Vyu-cUPSsq8LRxgoVajW9Ra63k,9640
699
699
  ads/opctl/operator/lowcode/forecast/model/neuralprophet.py,sha256=rt4106o9qIKwoHnYICB9sOnQ8ujXyI83eoFY26KzsOU,18774
700
- ads/opctl/operator/lowcode/forecast/model/prophet.py,sha256=s9tWZdD1g50lnu5YgER2SNiXsQ3y51Q-XwYxIsWmmiQ,14284
700
+ ads/opctl/operator/lowcode/forecast/model/prophet.py,sha256=h3So9XYBZPRNqMvYNpU5bxbHgvwgpspuATALCuIWHeM,14368
701
701
  ads/opctl/operator/lowcode/pii/MLoperator,sha256=GKCuiXRwfGLyBqELbtgtg-kJPtNWNVA-kSprYTqhF64,6406
702
702
  ads/opctl/operator/lowcode/pii/README.md,sha256=2P3tpKv6v__Eehj6iLfTXgyDhS4lmi1BTfEdmJhT0K4,9237
703
703
  ads/opctl/operator/lowcode/pii/__init__.py,sha256=sAqmLhogrLXb3xI7dPOj9HmSkpTnLh9wkzysuGd8AXk,204
@@ -710,7 +710,7 @@ ads/opctl/operator/lowcode/pii/operator_config.py,sha256=pXCo97VCq6S7AvfeXW6BUUD
710
710
  ads/opctl/operator/lowcode/pii/schema.yaml,sha256=bgXBVJdOZWff_tthQvkuDE1P0KqeYlqbGyGkHNdln0Y,2735
711
711
  ads/opctl/operator/lowcode/pii/utils.py,sha256=z8VBPRURj_62xifxzijDElxvQNszNUmP694MQ2ErLLw,1130
712
712
  ads/opctl/operator/lowcode/pii/model/__init__.py,sha256=sAqmLhogrLXb3xI7dPOj9HmSkpTnLh9wkzysuGd8AXk,204
713
- ads/opctl/operator/lowcode/pii/model/factory.py,sha256=Fuq8iiN_GkyGBJlGvJJcN0byAfy0bSqKVgkgOE9B2XQ,2452
713
+ ads/opctl/operator/lowcode/pii/model/factory.py,sha256=mM-xifHwVa1tGHcTcvgySUrGsPmIqmOavf8i_dVbkRQ,2502
714
714
  ads/opctl/operator/lowcode/pii/model/guardrails.py,sha256=--GUFt-zlVyJY5WQZNMHjQDlVfVy-tYeXubgvYN-H-U,6246
715
715
  ads/opctl/operator/lowcode/pii/model/pii.py,sha256=hbOomsCNgj7uZNOdUIja3rE-iTGhh9P2hKh8xrtpXR4,5110
716
716
  ads/opctl/operator/lowcode/pii/model/report.py,sha256=vDivP5dWWBoIzDpT1ww2WMBZKybX6DigaPSCW46F__Q,16361
@@ -730,10 +730,10 @@ ads/opctl/operator/lowcode/recommender/environment.yaml,sha256=m3jYkrFpkQfL1dpiA
730
730
  ads/opctl/operator/lowcode/recommender/operator_config.py,sha256=HE30TuiXbVrC6Uy7G2mw4KU_xRSjzgTQHlMNumQauqE,2920
731
731
  ads/opctl/operator/lowcode/recommender/schema.yaml,sha256=OvaQRc56sOO-NNrF2hYU7JEsD-fNkr2LJwP7Nzj_bo8,6029
732
732
  ads/opctl/operator/lowcode/recommender/utils.py,sha256=-DgqObJ3G54wZw04aLvA9zwI_NUqwgQ7jaPHQP_6Q9g,401
733
- ads/opctl/operator/lowcode/recommender/model/base_model.py,sha256=wraH55srwQ9FfWfXTse1vOVTG-OOH8XZRdSDKP91DYM,7395
734
- ads/opctl/operator/lowcode/recommender/model/factory.py,sha256=CHCXR3-6HRSKJG3tCjdgBvUODtQ9C2zU0Nq-0zVb6p8,1798
733
+ ads/opctl/operator/lowcode/recommender/model/base_model.py,sha256=FwEadpqyETznrrRt1hvgVz_Rn7JiYbiBkCUFaIewajQ,7410
734
+ ads/opctl/operator/lowcode/recommender/model/factory.py,sha256=L6llG5EUP-yuCbqh8SSk08GONt-91nsplGnynV7DkCs,1768
735
735
  ads/opctl/operator/lowcode/recommender/model/recommender_dataset.py,sha256=QzcfA4Dzp412NCiNhFrJY2Rqbzlmneb1SAb98m_L_ms,870
736
- ads/opctl/operator/lowcode/recommender/model/svd.py,sha256=unPfnyvZk3wllN07syTjJAvVck3WpQ10XHc3a5_hPQY,4367
736
+ ads/opctl/operator/lowcode/recommender/model/svd.py,sha256=tGi6QccsU_OqrxTjvf6oWY5I3KfVrdjtzM5RwiNzTr0,4372
737
737
  ads/opctl/operator/runtime/__init__.py,sha256=sAqmLhogrLXb3xI7dPOj9HmSkpTnLh9wkzysuGd8AXk,204
738
738
  ads/opctl/operator/runtime/const.py,sha256=FSgllXcXKIRCbYSJiVAP8gZGpH7hGrEf3enYmUBrAIk,522
739
739
  ads/opctl/operator/runtime/container_runtime_schema.yaml,sha256=FU8Jjq1doq1eYW8b5YjlfSmWKnBN-lAuEk289_P9QFU,1235
@@ -815,8 +815,8 @@ ads/type_discovery/unknown_detector.py,sha256=yZuYQReO7PUyoWZE7onhhtYaOg6088wf1y
815
815
  ads/type_discovery/zipcode_detector.py,sha256=3AlETg_ZF4FT0u914WXvTT3F3Z6Vf51WiIt34yQMRbw,1421
816
816
  ads/vault/__init__.py,sha256=x9tMdDAOdF5iDHk9u2di_K-ze5Nq068x25EWOBoWwqY,245
817
817
  ads/vault/vault.py,sha256=hFBkpYE-Hfmzu1L0sQwUfYcGxpWmgG18JPndRl0NOXI,8624
818
- oracle_ads-2.12.7.dist-info/entry_points.txt,sha256=9VFnjpQCsMORA4rVkvN8eH6D3uHjtegb9T911t8cqV0,35
819
- oracle_ads-2.12.7.dist-info/LICENSE.txt,sha256=zoGmbfD1IdRKx834U0IzfFFFo5KoFK71TND3K9xqYqo,1845
820
- oracle_ads-2.12.7.dist-info/WHEEL,sha256=CpUCUxeHQbRN5UGRQHYRJorO5Af-Qy_fHMctcQ8DSGI,82
821
- oracle_ads-2.12.7.dist-info/METADATA,sha256=npukk9HNdJhLDD1g3tKxGQ8AFtlqGADZzKovEmgm_u0,16282
822
- oracle_ads-2.12.7.dist-info/RECORD,,
818
+ oracle_ads-2.12.8.dist-info/entry_points.txt,sha256=9VFnjpQCsMORA4rVkvN8eH6D3uHjtegb9T911t8cqV0,35
819
+ oracle_ads-2.12.8.dist-info/LICENSE.txt,sha256=zoGmbfD1IdRKx834U0IzfFFFo5KoFK71TND3K9xqYqo,1845
820
+ oracle_ads-2.12.8.dist-info/WHEEL,sha256=CpUCUxeHQbRN5UGRQHYRJorO5Af-Qy_fHMctcQ8DSGI,82
821
+ oracle_ads-2.12.8.dist-info/METADATA,sha256=aKjc1EqBFSoyK7K30kgMzGfqvemx9-25hmyl5mZZ-xU,16282
822
+ oracle_ads-2.12.8.dist-info/RECORD,,