upgini 1.1.282a3418.post3__py3-none-any.whl → 1.1.284__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.

Potentially problematic release.


This version of upgini might be problematic. Click here for more details.

upgini/__about__.py CHANGED
@@ -1 +1 @@
1
- __version__ = "1.1.282a3418-3"
1
+ __version__ = "1.1.284"
@@ -1,7 +1,7 @@
1
1
  from typing import Dict
2
2
 
3
3
  from upgini.autofe.binary import Add, Divide, Max, Min, Multiply, Sim, Subtract
4
- from upgini.autofe.date import DateDiff, DateDiffType2, DateListDiff, DateListDiffBounded, DatePercentile
4
+ from upgini.autofe.date import DateDiff, DateDiffType2, DateListDiff, DateListDiffBounded
5
5
  from upgini.autofe.groupby import GroupByThenAgg, GroupByThenRank
6
6
  from upgini.autofe.operand import Operand
7
7
  from upgini.autofe.unary import Abs, Floor, Freq, Log, Residual, Sigmoid, Sqrt, Square
@@ -49,7 +49,6 @@ ALL_OPERANDS: Dict[str, Operand] = {
49
49
  DateListDiffBounded(diff_unit="Y", aggregation="count", lower_bound=30, upper_bound=45),
50
50
  DateListDiffBounded(diff_unit="Y", aggregation="count", lower_bound=45, upper_bound=60),
51
51
  DateListDiffBounded(diff_unit="Y", aggregation="count", lower_bound=60),
52
- DatePercentile(),
53
52
  ]
54
53
  }
55
54
 
upgini/autofe/date.py CHANGED
@@ -1,9 +1,9 @@
1
- from typing import Any, Dict, List, Optional, Union
1
+ from typing import Any, Optional, Union
2
2
 
3
3
  import numpy as np
4
4
  import pandas as pd
5
5
  from pandas.core.arrays.timedeltas import TimedeltaArray
6
- from pydantic import BaseModel, validator
6
+ from pydantic import BaseModel
7
7
 
8
8
  from upgini.autofe.operand import PandasOperand
9
9
 
@@ -27,17 +27,6 @@ class DateDiff(PandasOperand, DateDiffMixin):
27
27
  is_binary = True
28
28
  has_symmetry_importance = True
29
29
 
30
- def get_params(self) -> Dict[str, Optional[str]]:
31
- res = super().get_params()
32
- res.update(
33
- {
34
- "diff_unit": self.diff_unit,
35
- "left_unit": self.left_unit,
36
- "right_unit": self.right_unit,
37
- }
38
- )
39
- return res
40
-
41
30
  def calculate_binary(self, left: pd.Series, right: pd.Series) -> pd.Series:
42
31
  left = self._convert_to_date(left, self.left_unit)
43
32
  right = self._convert_to_date(right, self.right_unit)
@@ -53,17 +42,6 @@ class DateDiffType2(PandasOperand, DateDiffMixin):
53
42
  is_binary = True
54
43
  has_symmetry_importance = True
55
44
 
56
- def get_params(self) -> Dict[str, Optional[str]]:
57
- res = super().get_params()
58
- res.update(
59
- {
60
- "diff_unit": self.diff_unit,
61
- "left_unit": self.left_unit,
62
- "right_unit": self.right_unit,
63
- }
64
- )
65
- return res
66
-
67
45
  def calculate_binary(self, left: pd.Series, right: pd.Series) -> pd.Series:
68
46
  left = self._convert_to_date(left, self.left_unit)
69
47
  right = self._convert_to_date(right, self.right_unit)
@@ -86,15 +64,6 @@ class DateListDiff(PandasOperand, DateDiffMixin):
86
64
  has_symmetry_importance = True
87
65
  aggregation: str
88
66
 
89
- def get_params(self) -> Dict[str, Optional[str]]:
90
- res = super().get_params()
91
- res.update(
92
- {
93
- "aggregation": self.aggregation,
94
- }
95
- )
96
- return res
97
-
98
67
  def __init__(self, **data: Any) -> None:
99
68
  if "name" not in data:
100
69
  data["name"] = f"date_diff_{data.get('aggregation')}"
@@ -147,55 +116,3 @@ class DateListDiffBounded(DateListDiff):
147
116
  def _agg(self, x):
148
117
  x = x[(x >= (self.lower_bound or -np.inf)) & (x < (self.upper_bound or np.inf))]
149
118
  return super()._agg(x)
150
-
151
-
152
- class DatePercentile(PandasOperand):
153
- name = "date_per"
154
- is_binary = True
155
- output_type = "float"
156
-
157
- date_unit: Optional[str] = None
158
- zero_month: Optional[int]
159
- zero_year: Optional[int]
160
- zero_bounds: Optional[List[float]]
161
- step: int = 30
162
-
163
- def get_params(self) -> Dict[str, Optional[str]]:
164
- res = super().get_params()
165
- res.update(
166
- {
167
- "date_unit": self.date_unit,
168
- "zero_month": self.zero_month,
169
- "zero_year": self.zero_year,
170
- "zero_bounds": self.zero_bounds,
171
- "step": self.step,
172
- }
173
- )
174
- return res
175
-
176
- @validator("zero_bounds", pre=True)
177
- def validate_bounds(cls, value):
178
- if value is None or isinstance(value, list):
179
- return value
180
- elif isinstance(value, str):
181
- return value[1:-1].split(", ")
182
-
183
- def calculate_binary(self, left: pd.Series, right: pd.Series) -> pd.Series:
184
- # Assuming that left is a date column, right is a feature column
185
- left = pd.to_datetime(left, unit=self.date_unit)
186
- months = left.dt.month
187
- years = left.dt.year
188
-
189
- month_diffs = 12 * (years - (self.zero_year or 0)) + (months - (self.zero_month or 0))
190
- bounds = month_diffs.apply(
191
- lambda d: np.array(self.zero_bounds if self.zero_bounds is not None else []) + d * 30
192
- )
193
-
194
- return right.index.to_series().apply(lambda i: self.__perc(right[i], bounds[i]))
195
-
196
- def __perc(self, f, bounds):
197
- hit = np.where(f >= bounds)[0]
198
- if hit.size > 0:
199
- return np.max(hit) * 10
200
- else:
201
- return np.nan
upgini/autofe/feature.py CHANGED
@@ -1,6 +1,6 @@
1
1
  import hashlib
2
2
  import itertools
3
- from typing import Dict, List, Optional, Set, Tuple, Union
3
+ from typing import Dict, List, Optional, Tuple, Union
4
4
 
5
5
  import numpy as np
6
6
  import pandas as pd
@@ -16,12 +16,6 @@ class Column:
16
16
  self.data = data
17
17
  self.calculate_all = calculate_all
18
18
 
19
- def get_display_name(self, cache: bool = True, shorten: bool = False, **kwargs) -> str:
20
- return self.name
21
-
22
- def set_op_params(self, params: Dict[str, str]) -> "Column":
23
- return self
24
-
25
19
  def rename_columns(self, mapping: Dict[str, str]) -> "Column":
26
20
  self.name = self._unhash(mapping.get(self.name) or self.name)
27
21
  return self
@@ -75,30 +69,19 @@ class Feature:
75
69
  self.cached_display_name = cached_display_name
76
70
  self.alias = alias
77
71
 
78
- def set_op_params(self, params: Optional[Dict[str, str]]) -> "Feature":
79
- obj_dict = self.op.dict().copy()
80
- obj_dict.update(params or {})
81
- self.op = self.op.__class__.parse_obj(obj_dict)
72
+ def set_op_params(self, params: Dict[str, str]) -> "Feature":
82
73
  self.op.set_params(params)
83
-
84
- for child in self.children:
85
- child.set_op_params(params)
86
74
  return self
87
75
 
88
76
  def get_hash(self) -> str:
89
- return hashlib.sha256(
90
- "_".join([self.op.name] + [ch.get_display_name() for ch in self.children]).encode("utf-8")
91
- ).hexdigest()[:8]
77
+ return hashlib.sha256("_".join([self.op.name] + [ch.name for ch in self.children]).encode("utf-8")).hexdigest()[
78
+ :8
79
+ ]
92
80
 
93
81
  def set_alias(self, alias: str) -> "Feature":
94
82
  self.alias = alias
95
83
  return self
96
84
 
97
- def get_all_operand_names(self) -> Set[str]:
98
- return {self.op.name}.union(
99
- {n for f in self.children if isinstance(f, Feature) for n in f.get_all_operand_names()}
100
- )
101
-
102
85
  def rename_columns(self, mapping: Dict[str, str]) -> "Feature":
103
86
  for child in self.children:
104
87
  child.rename_columns(mapping)
upgini/autofe/operand.py CHANGED
@@ -25,10 +25,8 @@ class Operand(BaseModel):
25
25
  self.params = params
26
26
  return self
27
27
 
28
- def get_params(self) -> Dict[str, Optional[str]]:
29
- res = {"alias": self.alias}
30
- res.update(self.params or {})
31
- return res
28
+ def get_params(self) -> Dict[str, str]:
29
+ return self.params
32
30
 
33
31
 
34
32
  MAIN_COLUMN = "main_column"
@@ -935,7 +935,7 @@ class FeaturesEnricher(TransformerMixin):
935
935
  metric = wrapper.metric_name
936
936
  multiplier = wrapper.multiplier
937
937
 
938
- # 1 If client features are presented - fit and predict with KFold CatBoost model
938
+ # 1 If client features are presented - fit and predict with KFold estimator
939
939
  # on etalon features and calculate baseline metric
940
940
  etalon_metric = None
941
941
  baseline_estimator = None
@@ -962,9 +962,15 @@ class FeaturesEnricher(TransformerMixin):
962
962
  etalon_metric = baseline_estimator.cross_val_predict(
963
963
  fitting_X, y_sorted, self.baseline_score_column
964
964
  )
965
- self.logger.info(f"Baseline {metric} on train client features: {etalon_metric}")
965
+ if etalon_metric is None:
966
+ self.logger.info(
967
+ f"Baseline {metric} on train client features is None (maybe all features was removed)"
968
+ )
969
+ baseline_estimator = None
970
+ else:
971
+ self.logger.info(f"Baseline {metric} on train client features: {etalon_metric}")
966
972
 
967
- # 2 Fit and predict with KFold Catboost model on enriched tds
973
+ # 2 Fit and predict with KFold estimator on enriched tds
968
974
  # and calculate final metric (and uplift)
969
975
  enriched_estimator = None
970
976
  if set(fitting_X.columns) != set(fitting_enriched_X.columns):
@@ -986,11 +992,15 @@ class FeaturesEnricher(TransformerMixin):
986
992
  has_date=has_date,
987
993
  )
988
994
  enriched_metric = enriched_estimator.cross_val_predict(fitting_enriched_X, enriched_y_sorted)
989
- self.logger.info(f"Enriched {metric} on train combined features: {enriched_metric}")
990
- if etalon_metric is not None:
991
- uplift = (enriched_metric - etalon_metric) * multiplier
992
- else:
995
+ if etalon_metric is None:
996
+ self.logger.warning(
997
+ f"Enriched {metric} on train combined features is None (maybe all features was removed)"
998
+ )
999
+ enriched_estimator = None
993
1000
  uplift = None
1001
+ else:
1002
+ self.logger.info(f"Enriched {metric} on train combined features: {enriched_metric}")
1003
+ uplift = (enriched_metric - etalon_metric) * multiplier
994
1004
  else:
995
1005
  enriched_metric = None
996
1006
  uplift = None
@@ -1442,12 +1452,15 @@ class FeaturesEnricher(TransformerMixin):
1442
1452
  if len(decimal_columns_to_fix) > 0:
1443
1453
  for col in decimal_columns_to_fix:
1444
1454
  fitting_eval_X[col] = (
1445
- fitting_eval_X[col].astype("string").str.replace(",", ".", regex=False).astype(np.float64)
1455
+ fitting_eval_X[col]
1456
+ .astype("string").str
1457
+ .replace(",", ".", regex=False)
1458
+ .astype(np.float64)
1446
1459
  )
1447
1460
  fitting_enriched_eval_X[col] = (
1448
1461
  fitting_enriched_eval_X[col]
1449
- .astype("string")
1450
- .str.replace(",", ".", regex=False)
1462
+ .astype("string").str
1463
+ .replace(",", ".", regex=False)
1451
1464
  .astype(np.float64)
1452
1465
  )
1453
1466
 
@@ -3266,16 +3279,10 @@ class FeaturesEnricher(TransformerMixin):
3266
3279
 
3267
3280
  descriptions = []
3268
3281
  for m in autofe_meta:
3282
+ autofe_feature = Feature.from_formula(m.formula)
3269
3283
  orig_to_hashed = {base_column.original_name: base_column.hashed_name for base_column in m.base_columns}
3270
-
3271
- autofe_feature = (
3272
- Feature.from_formula(m.formula)
3273
- .set_display_index(m.display_index)
3274
- .set_alias(m.alias)
3275
- .set_op_params(m.operator_params or {})
3276
- .rename_columns(orig_to_hashed)
3277
- )
3278
-
3284
+ autofe_feature.rename_columns(orig_to_hashed)
3285
+ autofe_feature.set_display_index(m.display_index)
3279
3286
  if autofe_feature.op.is_vector:
3280
3287
  continue
3281
3288
 
@@ -3296,7 +3303,7 @@ class FeaturesEnricher(TransformerMixin):
3296
3303
  description[f"Feature {feature_idx}"] = bc.hashed_name
3297
3304
  feature_idx += 1
3298
3305
 
3299
- description["Function"] = ",".join(sorted(autofe_feature.get_all_operand_names()))
3306
+ description["Function"] = autofe_feature.op.name
3300
3307
 
3301
3308
  descriptions.append(description)
3302
3309
 
upgini/metadata.py CHANGED
@@ -256,11 +256,9 @@ class BaseColumnMetadata(BaseModel):
256
256
 
257
257
 
258
258
  class GeneratedFeatureMetadata(BaseModel):
259
- alias: Optional[str]
260
- formula: str
259
+ formula: str # on hashed names
261
260
  display_index: str
262
261
  base_columns: List[BaseColumnMetadata]
263
- operator_params: Optional[Dict[str, str]]
264
262
 
265
263
 
266
264
  class ProviderTaskMetadataV2(BaseModel):
upgini/metrics.py CHANGED
@@ -298,6 +298,7 @@ class EstimatorWrapper:
298
298
  scorer = check_scoring(self.estimator, scoring=self.scorer)
299
299
 
300
300
  if baseline_score_column is not None and self.metric_name == "GINI":
301
+ self.logger.info("Calculate baseline GINI on passed baseline_score_column and target")
301
302
  metric = roc_auc_score(y, x[baseline_score_column])
302
303
  else:
303
304
  cv_results = cross_validate(
@@ -548,14 +549,21 @@ class CatBoostWrapper(EstimatorWrapper):
548
549
  except Exception as e:
549
550
  if "Dictionary size is 0" in e.args[0] and self.text_features:
550
551
  high_cardinality_features = FeaturesValidator.find_high_cardinality(x[self.text_features])
551
- self.logger.warning(
552
- "Calculate metrics has problem with CatBoost text features. Try to remove high cardinality"
553
- f" text features {high_cardinality_features} and retry"
554
- )
552
+ if len(high_cardinality_features) == 0:
553
+ high_cardinality_features = self.text_features
554
+ self.logger.warning(
555
+ "Calculate metrics has problem with CatBoost text features. High cardinality features not found"
556
+ f". Try to remove all text features {high_cardinality_features} and retry"
557
+ )
558
+ else:
559
+ self.logger.warning(
560
+ "Calculate metrics has problem with CatBoost text features. Try to remove high cardinality"
561
+ f" text features {high_cardinality_features} and retry"
562
+ )
555
563
  for f in high_cardinality_features:
556
564
  self.text_features.remove(f)
557
565
  self.exclude_features.append(f)
558
- x = x.drop(columns=f)
566
+ x = x.drop(columns=f, errors="ignore")
559
567
  return super().cross_val_predict(x, y, baseline_score_column)
560
568
  else:
561
569
  raise e
@@ -17,7 +17,7 @@ from sklearn.base import clone, is_classifier
17
17
  from sklearn.exceptions import FitFailedWarning, NotFittedError
18
18
  from sklearn.metrics import check_scoring
19
19
  from sklearn.metrics._scorer import _MultimetricScorer
20
- from sklearn.model_selection import check_cv
20
+ from sklearn.model_selection import StratifiedKFold, check_cv
21
21
  from sklearn.utils.fixes import np_version, parse_version
22
22
  from sklearn.utils.validation import indexable
23
23
 
@@ -312,25 +312,34 @@ def cross_validate(
312
312
  ret[key] = train_scores_dict[name]
313
313
 
314
314
  return ret
315
- except Exception:
315
+ except ValueError as e:
316
316
  # logging.exception("Failed to execute overriden cross_validate. Fallback to original")
317
- raise
318
- # fit_params["use_best_model"] = False
319
- # return original_cross_validate(
320
- # estimator,
321
- # X,
322
- # y,
323
- # groups=groups,
324
- # scoring=scoring,
325
- # cv=cv,
326
- # n_jobs=n_jobs,
327
- # verbose=verbose,
328
- # fit_params=fit_params,
329
- # pre_dispatch=pre_dispatch,
330
- # return_train_score=return_train_score,
331
- # return_estimator=return_estimator,
332
- # error_score=error_score,
333
- # )
317
+ if hasattr(e, "args") and len(e.args) > 0 and "Only one class present in y_true" in e.args[0]:
318
+ # Try change CV to StratifiedKFold and retry
319
+ if hasattr(cv, "shuffle"):
320
+ shuffle = cv.shuffle
321
+ else:
322
+ shuffle = False
323
+ if hasattr(cv, "random_state"):
324
+ random_state = cv.random_state
325
+ else:
326
+ random_state = None
327
+ return cross_validate(
328
+ estimator,
329
+ x,
330
+ y,
331
+ groups=groups,
332
+ scoring=scoring,
333
+ cv=StratifiedKFold(n_splits=cv.get_n_splits(), shuffle=shuffle, random_state=random_state),
334
+ n_jobs=n_jobs,
335
+ verbose=verbose,
336
+ fit_params=fit_params,
337
+ pre_dispatch=pre_dispatch,
338
+ return_train_score=return_train_score,
339
+ return_estimator=return_estimator,
340
+ error_score=error_score,
341
+ )
342
+ raise e
334
343
 
335
344
 
336
345
  def _fit_and_score(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: upgini
3
- Version: 1.1.282a3418.post3
3
+ Version: 1.1.284
4
4
  Summary: Intelligent data search & enrichment for Machine Learning
5
5
  Project-URL: Bug Reports, https://github.com/upgini/upgini/issues
6
6
  Project-URL: Homepage, https://upgini.com/
@@ -839,4 +839,4 @@ Some convenient ways to start contributing are:
839
839
  - [More perks for registered users](https://profile.upgini.com)
840
840
 
841
841
  <sup>😔 Found mistype or a bug in code snippet? Our bad! <a href="https://github.com/upgini/upgini/issues/new?assignees=&title=readme%2Fbug">
842
- Please report it here.</a></sup>
842
+ Please report it here</a></sup>
@@ -1,24 +1,24 @@
1
- upgini/__about__.py,sha256=UWj0vKkKvP9Cu_tYbFWFIdRBjiAcKLIfcNwhmbKYIHI,31
1
+ upgini/__about__.py,sha256=nDI-Yx5FbPR6Ypp9ywFECEIUTCUuFhHhMahhqU8Larw,24
2
2
  upgini/__init__.py,sha256=asENHgEVHQBIkV-e_0IhE_ZWqkCG6398U3ZLrNzAH6k,407
3
3
  upgini/ads.py,sha256=nvuRxRx5MHDMgPr9SiU-fsqRdFaBv8p4_v1oqiysKpc,2714
4
4
  upgini/dataset.py,sha256=7TLVVhGtjgx_9yaiaIUK3kZSe_R9wg5dY0d4F5qCGM4,45636
5
5
  upgini/errors.py,sha256=2b_Wbo0OYhLUbrZqdLIx5jBnAsiD1Mcenh-VjR4HCTw,950
6
- upgini/features_enricher.py,sha256=cEv1veAlJe0iz9-myz46Ecz8ii6I-v7Qr2ksaFxEsZw,176966
6
+ upgini/features_enricher.py,sha256=PU9i_5yUIF3ANxe6kJBC2GrDX9UNDQ0u8nJNSFkHxx8,177462
7
7
  upgini/http.py,sha256=khrYSldpY-HbVLCcApfV1BjBFK6Uyuatb4colKybxgY,42301
8
- upgini/metadata.py,sha256=qDAIO7NLSSQp_XiXCv3U4XJTLO0KH3YuQ8lvCLYPqzs,9781
9
- upgini/metrics.py,sha256=tTXAgjEuoo_vDe4n-R0AFK95IIx_7kugIJJJv2Hr_1o,30128
8
+ upgini/metadata.py,sha256=CFJekYGD7Ep7pRFH7wCEcsXS4bz83do33FNmtcCY9P4,9729
9
+ upgini/metrics.py,sha256=DLvA2YLV4f7lnzBCcfZ5T4NkqAv3pbstbjTepavuT7U,30688
10
10
  upgini/search_task.py,sha256=LtRJ9bCPjMo1gJ-sUDKERhDwGcWKImrzwVFHjkMSQHQ,17071
11
11
  upgini/spinner.py,sha256=4iMd-eIe_BnkqFEMIliULTbj6rNI2HkN_VJ4qYe0cUc,1118
12
12
  upgini/version_validator.py,sha256=RGg87VweujTNlibgsOuqPLIEiBgIOkuXNVTGuNCD234,1405
13
13
  upgini/ads_management/__init__.py,sha256=qzyisOToVRP-tquAJD1PblZhNtMrOB8FiyF9JvfkvgE,50
14
14
  upgini/ads_management/ads_manager.py,sha256=igVbN2jz80Umb2BUJixmJVj-zx8unoKpecVo-R-nGdw,2648
15
15
  upgini/autofe/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
- upgini/autofe/all_operands.py,sha256=7UyvmmqGSqQu4kDgoFwQRKY__b9xKDk3Fpp2-H8A7AA,2399
16
+ upgini/autofe/all_operands.py,sha256=SyKVU-xGMHgoRZvHrCmba2u2Ygc73c1mXFolNSWe8Uo,2357
17
17
  upgini/autofe/binary.py,sha256=441BRuqMsxlxuw4c8rMZB6h5EpRdVMk-bVa03U7T5Hg,3973
18
- upgini/autofe/date.py,sha256=ZRFfZHKttBWSM_NDp7kgpMahli91_HVpnZeBDbm8aeI,6732
19
- upgini/autofe/feature.py,sha256=_V9B74B3ue7eAYXSOt9JKhVC9klkAKks22MwnBRye_w,12487
18
+ upgini/autofe/date.py,sha256=Vy1I92fLLYLhuYKJmtuPBMI8cPxE4Uwk40hqE2F2e1A,4224
19
+ upgini/autofe/feature.py,sha256=ChSuuIbRPGIWnPjKAgZbeAEi7Y_PjSVRyxxx41MyFp0,11845
20
20
  upgini/autofe/groupby.py,sha256=4WjDzQxqpZxB79Ih4ihMMI5GDxaFqiH6ZelfV82ClT4,3091
21
- upgini/autofe/operand.py,sha256=JjEVT1U3kY9NDjUPMdoki7Oa8hMDG0-_h_NklVjIFyc,2882
21
+ upgini/autofe/operand.py,sha256=xgEIZuFCfckc6LpBqVu1OVK3JEabm1O-LHUsp83EHKA,2806
22
22
  upgini/autofe/unary.py,sha256=v-l3aiE5hj6kurvh6adCQL8W3X9u9a7RVbS_WPR2qlw,3146
23
23
  upgini/autofe/vector.py,sha256=dLxfAstJs-gw_OQ1xxoxcM6pVzORlV0HVzdzt7cLXVQ,606
24
24
  upgini/data_source/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -52,11 +52,11 @@ upgini/utils/ip_utils.py,sha256=Zf3F2cnQmOCH09QLQHetpjMFu1PnD0cTmDymn0SnSy8,1672
52
52
  upgini/utils/phone_utils.py,sha256=JNSkF8G6mgsN8Czy11pamaJdsY6rBINEMpi7jbVt_RA,408
53
53
  upgini/utils/postal_code_utils.py,sha256=_8CR9tBqsPptQsmMUvnrCAmBaMIQSWH3JfJ4ly3x_zs,409
54
54
  upgini/utils/progress_bar.py,sha256=N-Sfdah2Hg8lXP_fV9EfUTXz_PyRt4lo9fAHoUDOoLc,1550
55
- upgini/utils/sklearn_ext.py,sha256=c23MGSUVfxLnaDWKAxavHgnOtm5dGKkF3YswdWQcFzs,43984
55
+ upgini/utils/sklearn_ext.py,sha256=N-eJrfAJxYpDPc85sKQyMFcIeL9Ug2lwlqDyS4jFOdE,44499
56
56
  upgini/utils/target_utils.py,sha256=Y96_PJ5cC-WsEbeqg20v9uqywDQobLoTb-xoP7S3o4E,7807
57
57
  upgini/utils/track_info.py,sha256=G5Lu1xxakg2_TQjKZk4b5SvrHsATTXNVV3NbvWtT8k8,5663
58
58
  upgini/utils/warning_counter.py,sha256=dIWBB4dI5XRRJZudvIlqlIYKEiwLLPcXarsZuYRt338,227
59
- upgini-1.1.282a3418.post3.dist-info/METADATA,sha256=PEPCHswhtmofXHXwBfboDN-RUzok5rp2yBkczC4Sgac,48129
60
- upgini-1.1.282a3418.post3.dist-info/WHEEL,sha256=zEMcRr9Kr03x1ozGwg5v9NQBKn3kndp6LSoSlVg-jhU,87
61
- upgini-1.1.282a3418.post3.dist-info/licenses/LICENSE,sha256=5RRzgvdJUu3BUDfv4bzVU6FqKgwHlIay63pPCSmSgzw,1514
62
- upgini-1.1.282a3418.post3.dist-info/RECORD,,
59
+ upgini-1.1.284.dist-info/METADATA,sha256=dDV3y75wuSFvxeGRlh_IwhfMWn4qKG6YE_-Um4Drtmo,48117
60
+ upgini-1.1.284.dist-info/WHEEL,sha256=zEMcRr9Kr03x1ozGwg5v9NQBKn3kndp6LSoSlVg-jhU,87
61
+ upgini-1.1.284.dist-info/licenses/LICENSE,sha256=5RRzgvdJUu3BUDfv4bzVU6FqKgwHlIay63pPCSmSgzw,1514
62
+ upgini-1.1.284.dist-info/RECORD,,