upgini 1.1.274__py3-none-any.whl → 1.1.274a2__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/autofe/date.py CHANGED
@@ -2,7 +2,6 @@ from typing import Any, Optional, Union
2
2
  import numpy as np
3
3
  import pandas as pd
4
4
  from pydantic import BaseModel
5
- from pandas.core.arrays.timedeltas import TimedeltaArray
6
5
 
7
6
  from upgini.autofe.operand import PandasOperand
8
7
 
@@ -74,13 +73,8 @@ class DateListDiff(PandasOperand, DateDiffMixin):
74
73
 
75
74
  return pd.Series(left - right.values).apply(lambda x: self._agg(self._diff(x)))
76
75
 
77
- def _diff(self, x: TimedeltaArray):
78
- if self.diff_unit == "Y":
79
- x = (x / 365 / 24 / 60 / 60 / 10**9).astype(int)
80
- elif self.diff_unit == "M":
81
- raise Exception("Unsupported difference unit: Month")
82
- else:
83
- x = x / np.timedelta64(1, self.diff_unit)
76
+ def _diff(self, x):
77
+ x = x / np.timedelta64(1, self.diff_unit)
84
78
  return x[x > 0]
85
79
 
86
80
  def _agg(self, x):
@@ -424,9 +424,6 @@ class FeaturesEnricher(TransformerMixin):
424
424
 
425
425
  self.__validate_search_keys(self.search_keys, self.search_id)
426
426
 
427
- # Validate client estimator params
428
- self._get_client_cat_features(estimator, X, self.search_keys)
429
-
430
427
  try:
431
428
  self.X = X
432
429
  self.y = y
@@ -820,7 +817,6 @@ class FeaturesEnricher(TransformerMixin):
820
817
  trace_id = trace_id or str(uuid.uuid4())
821
818
  start_time = time.time()
822
819
  with MDC(trace_id=trace_id):
823
- self.logger.info("Start calculate metrics")
824
820
  if len(args) > 0:
825
821
  msg = f"WARNING: Unsupported positional arguments for calculate_metrics: {args}"
826
822
  self.logger.warning(msg)
@@ -872,9 +868,22 @@ class FeaturesEnricher(TransformerMixin):
872
868
  self.__display_support_link(msg)
873
869
  return None
874
870
 
875
- cat_features, search_keys_for_metrics = self._get_client_cat_features(
876
- estimator, effective_X, self.search_keys
877
- )
871
+ cat_features = None
872
+ search_keys_for_metrics = []
873
+ if (
874
+ estimator is not None
875
+ and hasattr(estimator, "get_param")
876
+ and estimator.get_param("cat_features") is not None
877
+ ):
878
+ cat_features = estimator.get_param("cat_features")
879
+ if len(cat_features) > 0 and isinstance(cat_features[0], int):
880
+ cat_features = [effective_X.columns[i] for i in cat_features]
881
+ for cat_feature in cat_features:
882
+ if cat_feature in self.search_keys:
883
+ if self.search_keys[cat_feature] in [SearchKey.COUNTRY, SearchKey.POSTAL_CODE]:
884
+ search_keys_for_metrics.append(cat_feature)
885
+ else:
886
+ raise ValidationError(self.bundle.get("cat_feature_search_key").format(cat_feature))
878
887
 
879
888
  prepared_data = self._prepare_data_for_metrics(
880
889
  trace_id=trace_id,
@@ -889,7 +898,6 @@ class FeaturesEnricher(TransformerMixin):
889
898
  search_keys_for_metrics=search_keys_for_metrics,
890
899
  progress_bar=progress_bar,
891
900
  progress_callback=progress_callback,
892
- cat_features=cat_features,
893
901
  )
894
902
  if prepared_data is None:
895
903
  return None
@@ -1265,29 +1273,6 @@ class FeaturesEnricher(TransformerMixin):
1265
1273
 
1266
1274
  return _cv, groups
1267
1275
 
1268
- def _get_client_cat_features(
1269
- self, estimator: Optional[Any], X: pd.DataFrame, search_keys: Dict[str, SearchKey]
1270
- ) -> Optional[List[str]]:
1271
- cat_features = None
1272
- search_keys_for_metrics = []
1273
- if (
1274
- estimator is not None
1275
- and hasattr(estimator, "get_param")
1276
- and estimator.get_param("cat_features") is not None
1277
- ):
1278
- cat_features = estimator.get_param("cat_features")
1279
- if len(cat_features) > 0:
1280
- if all([isinstance(f, int) for f in cat_features]):
1281
- cat_features = [X.columns[i] for i in cat_features]
1282
- self.logger.info(f"Collected categorical features {cat_features} from user estimator")
1283
- for cat_feature in cat_features:
1284
- if cat_feature in search_keys:
1285
- if search_keys[cat_feature] in [SearchKey.COUNTRY, SearchKey.POSTAL_CODE]:
1286
- search_keys_for_metrics.append(cat_feature)
1287
- else:
1288
- raise ValidationError(self.bundle.get("cat_feature_search_key").format(cat_feature))
1289
- return cat_features, search_keys_for_metrics
1290
-
1291
1276
  def _prepare_data_for_metrics(
1292
1277
  self,
1293
1278
  trace_id: str,
@@ -1302,7 +1287,6 @@ class FeaturesEnricher(TransformerMixin):
1302
1287
  search_keys_for_metrics: Optional[List[str]] = None,
1303
1288
  progress_bar: Optional[ProgressBar] = None,
1304
1289
  progress_callback: Optional[Callable[[SearchProgress], Any]] = None,
1305
- cat_features: Optional[List[str]] = None,
1306
1290
  ):
1307
1291
  is_input_same_as_fit, X, y, eval_set = self._is_input_same_as_fit(X, y, eval_set)
1308
1292
  is_demo_dataset = hash_input(X, y, eval_set) in DEMO_DATASET_HASHES
@@ -1360,8 +1344,9 @@ class FeaturesEnricher(TransformerMixin):
1360
1344
 
1361
1345
  # Detect and drop high cardinality columns in train
1362
1346
  columns_with_high_cardinality = FeaturesValidator.find_high_cardinality(fitting_X)
1363
- non_excluding_columns = (self.generate_features or []) + (cat_features or [])
1364
- columns_with_high_cardinality = [c for c in columns_with_high_cardinality if c not in non_excluding_columns]
1347
+ columns_with_high_cardinality = [
1348
+ c for c in columns_with_high_cardinality if c not in (self.generate_features or [])
1349
+ ]
1365
1350
  if len(columns_with_high_cardinality) > 0:
1366
1351
  self.logger.warning(
1367
1352
  f"High cardinality columns {columns_with_high_cardinality} will be dropped for metrics calculation"
@@ -1824,10 +1809,12 @@ class FeaturesEnricher(TransformerMixin):
1824
1809
  features_section = ""
1825
1810
 
1826
1811
  search_id = self._search_task.search_task_id
1827
- api_example = f"""curl 'https://search.upgini.com/online/api/http_inference_trigger?search_id={search_id}' \\
1812
+ api_example = (
1813
+ f"""curl 'https://search.upgini.com/online/api/http_inference_trigger?search_id={search_id}' \\
1828
1814
  -H 'Authorization: {self.api_key}' \\
1829
1815
  -H 'Content-Type: application/json' \\
1830
1816
  -d '{{"search_keys": {keys}{features_section}}}'"""
1817
+ )
1831
1818
  return api_example
1832
1819
 
1833
1820
  def _get_copy_of_runtime_parameters(self) -> RuntimeParameters:
@@ -1923,7 +1910,8 @@ class FeaturesEnricher(TransformerMixin):
1923
1910
  else:
1924
1911
  self.logger.info("Input dataset hasn't date column")
1925
1912
  if self.add_date_if_missing:
1926
- df = self._add_current_date_as_key(df, search_keys, self.logger, self.bundle)
1913
+ df = self._add_current_date_as_key(df)
1914
+ search_keys[self.CURRENT_DATE] = SearchKey.DATE
1927
1915
  email_column = self._get_email_column(search_keys)
1928
1916
  hem_column = self._get_hem_column(search_keys)
1929
1917
  email_converted_to_hem = False
@@ -2294,7 +2282,8 @@ class FeaturesEnricher(TransformerMixin):
2294
2282
  else:
2295
2283
  self.logger.info("Input dataset hasn't date column")
2296
2284
  if self.add_date_if_missing:
2297
- df = self._add_current_date_as_key(df, self.fit_search_keys, self.logger, self.bundle)
2285
+ df = self._add_current_date_as_key(df)
2286
+ self.fit_search_keys[self.CURRENT_DATE] = SearchKey.DATE
2298
2287
  email_column = self._get_email_column(self.fit_search_keys)
2299
2288
  hem_column = self._get_hem_column(self.fit_search_keys)
2300
2289
  email_converted_to_hem = False
@@ -2876,23 +2865,8 @@ class FeaturesEnricher(TransformerMixin):
2876
2865
  return col
2877
2866
 
2878
2867
  @staticmethod
2879
- def _add_current_date_as_key(
2880
- df: pd.DataFrame, search_keys: Dict[str, SearchKey], logger: logging.Logger, bundle: ResourceBundle
2881
- ) -> pd.DataFrame:
2882
- if (
2883
- set(search_keys.values()) == {SearchKey.PHONE}
2884
- or set(search_keys.values()) == {SearchKey.EMAIL}
2885
- or set(search_keys.values()) == {SearchKey.HEM}
2886
- or set(search_keys.values()) == {SearchKey.COUNTRY, SearchKey.POSTAL_CODE}
2887
- ):
2888
- msg = bundle.get("current_date_added")
2889
- print(msg)
2890
- logger.warning(msg)
2891
- df[FeaturesEnricher.CURRENT_DATE] = datetime.date.today()
2892
- search_keys[FeaturesEnricher.CURRENT_DATE] = SearchKey.DATE
2893
- converter = DateTimeSearchKeyConverter(FeaturesEnricher.CURRENT_DATE, None, logger, bundle)
2894
- df = converter.convert(df)
2895
- return df
2868
+ def _add_current_date_as_key(df: pd.DataFrame) -> pd.DataFrame:
2869
+ df[FeaturesEnricher.CURRENT_DATE] = datetime.date.today()
2896
2870
 
2897
2871
  @staticmethod
2898
2872
  def _get_group_columns(df: pd.DataFrame, search_keys: Dict[str, SearchKey]) -> List[str]:
upgini/metrics.py CHANGED
@@ -1,4 +1,3 @@
1
- import inspect
2
1
  import logging
3
2
  import re
4
3
  from copy import deepcopy
@@ -382,11 +381,6 @@ class EstimatorWrapper:
382
381
  kwargs["estimator"] = estimator_copy
383
382
  if isinstance(estimator, CatBoostClassifier) or isinstance(estimator, CatBoostRegressor):
384
383
  if cat_features is not None:
385
- for cat_feature in cat_features:
386
- if cat_feature not in X.columns:
387
- logger.error(
388
- f"Client cat_feature `{cat_feature}` not found in X columns: {X.columns.to_list()}"
389
- )
390
384
  estimator_copy.set_params(
391
385
  cat_features=[X.columns.get_loc(cat_feature) for cat_feature in cat_features]
392
386
  )
@@ -651,14 +645,9 @@ class OtherEstimatorWrapper(EstimatorWrapper):
651
645
 
652
646
 
653
647
  def validate_scoring_argument(scoring: Union[Callable, str, None]):
648
+ # TODO validate that if it is Callable then it accepts 3 arguments
654
649
  if isinstance(scoring, str) and scoring is not None:
655
650
  _get_scorer_by_name(scoring)
656
- elif isinstance(scoring, Callable):
657
- spec = inspect.getfullargspec(scoring)
658
- if len(spec.args) < 3:
659
- raise ValidationError(
660
- f"Invalid scoring function passed {scoring}. It should accept 3 input arguments: estimator, X, y"
661
- )
662
651
 
663
652
 
664
653
  def _get_scorer_by_name(scoring: str) -> Tuple[Callable, str, int]:
@@ -38,7 +38,6 @@ loss_selection_warn=\nWARNING: Loss `{0}` is not supported for feature selection
38
38
  loss_calc_metrics_warn=\nWARNING: Loss `{0}` is not supported for metrics calculation with {1}
39
39
  multivariate_timeseries_detected=\nWARNING: Multivariate TimeSeries detected. Blocked time series cross-validation split selected.\nMore details: https://github.com/upgini/upgini#-time-series-prediction-support
40
40
  group_k_fold_in_classification=\nWARNING: Using group K-fold cross-validation split for classification task.
41
- current_date_added=\nWARNING: No date/datetime column was detected in X to be used as a search key. The current date will be used to match the latest version of data sources
42
41
 
43
42
  # Errors
44
43
  failed_search_by_task_id=Failed to retrieve the specified search results
@@ -159,7 +158,7 @@ dataset_invalid_multiclass_target=Unexpected dtype of target for multiclass task
159
158
  dataset_invalid_regression_target=Unexpected dtype of target for regression task type: {}. Expected float
160
159
  dataset_invalid_timeseries_target=Unexpected dtype of target for timeseries task type: {}. Expected float
161
160
  dataset_to_many_multiclass_targets=The number of target classes {} exceeds the allowed threshold: {}. Please, correct your data and try again
162
- dataset_rarest_class_less_min=Count of rows with the rarest class `{}` is {}, minimum count must be > {} for each class\nPlease, remove rows with rarest class from your dataframe
161
+ dataset_rarest_class_less_min=Frequency of the rarest class `{}` is {}, minimum frequency must be > {} for each class\nPlease, remove rows with rarest class from your dataframe
163
162
  dataset_rarest_class_less_threshold=\nWARNING: Target is imbalanced and will be undersampled to the rarest class. Frequency of the rarest class `{}` is {}\nMinimum number of observations for each class to avoid undersampling {} ({}%)
164
163
  dataset_date_features=\nWARNING: Columns {} is a datetime or period type but not used as a search key, removed from X
165
164
  dataset_too_many_features=Too many features. Maximum number of features is {}
@@ -55,7 +55,7 @@ def _get_execution_ide() -> str:
55
55
  def get_track_metrics(client_ip: Optional[str] = None, client_visitorid: Optional[str] = None) -> dict:
56
56
  # default values
57
57
  track = {"ide": _get_execution_ide()}
58
- ident_res = "https://api64.ipify.org"
58
+ ident_res = "https://api.ipify.org"
59
59
 
60
60
  try:
61
61
  track["hostname"] = socket.gethostname()
@@ -74,20 +74,17 @@ def get_track_metrics(client_ip: Optional[str] = None, client_visitorid: Optiona
74
74
  display(
75
75
  Javascript(
76
76
  """
77
- async function getVisitorId() {
78
- return import('https://upgini.github.io/upgini/js/a.js')
77
+ import('https://upgini.github.io/upgini/js/a.js')
79
78
  .then(FingerprintJS => FingerprintJS.load())
80
79
  .then(fp => fp.get())
81
- .then(result => result.visitorId);
82
- }
80
+ .then(result => window.visitorId = result.visitorId);
83
81
  """
84
82
  )
85
83
  )
86
- track["visitorId"] = output.eval_js("getVisitorId()", timeout_sec=30)
84
+ track["visitorId"] = output.eval_js("window.visitorId", timeout_sec=10)
87
85
  except Exception as e:
88
86
  track["err"] = str(e)
89
- if "visitorId" not in track:
90
- track["visitorId"] = "None"
87
+ track["visitorId"] = "None"
91
88
  if client_ip:
92
89
  track["ip"] = client_ip
93
90
  else:
@@ -98,19 +95,16 @@ def get_track_metrics(client_ip: Optional[str] = None, client_visitorid: Optiona
98
95
  display(
99
96
  Javascript(
100
97
  f"""
101
- async function getIP() {{
102
- return fetch("{ident_res}")
98
+ fetch("{ident_res}")
103
99
  .then(response => response.text())
104
- .then(data => data);
105
- }}
100
+ .then(data => window.clientIP = data);
106
101
  """
107
102
  )
108
103
  )
109
- track["ip"] = output.eval_js("getIP()", timeout_sec=10)
104
+ track["ip"] = output.eval_js("window.clientIP", timeout_sec=10)
110
105
  except Exception as e:
111
106
  track["err"] = str(e)
112
- if "ip" not in track:
113
- track["ip"] = "0.0.0.0"
107
+ track["ip"] = "0.0.0.0"
114
108
 
115
109
  elif track["ide"] == "binder":
116
110
  try:
@@ -122,10 +116,8 @@ def get_track_metrics(client_ip: Optional[str] = None, client_visitorid: Optiona
122
116
  track["visitorId"] = sha256(os.environ["CLIENT_IP"].encode()).hexdigest()
123
117
  except Exception as e:
124
118
  track["err"] = str(e)
125
- if "ip" not in track:
126
- track["ip"] = "0.0.0.0"
127
- if "visitorId" not in track:
128
- track["visitorId"] = "None"
119
+ track["ip"] = "0.0.0.0"
120
+ track["visitorId"] = "None"
129
121
 
130
122
  elif track["ide"] == "kaggle":
131
123
  try:
@@ -144,8 +136,8 @@ def get_track_metrics(client_ip: Optional[str] = None, client_visitorid: Optiona
144
136
  raise Exception(err)
145
137
  except Exception as e:
146
138
  track["err"] = str(e)
147
- if "visitorId" not in track:
148
- track["visitorId"] = "None"
139
+ track["ip"] = "0.0.0.0"
140
+ track["visitorId"] = "None"
149
141
  else:
150
142
  try:
151
143
  if client_ip:
@@ -158,9 +150,5 @@ def get_track_metrics(client_ip: Optional[str] = None, client_visitorid: Optiona
158
150
  track["visitorId"] = sha256(str(getnode()).encode()).hexdigest()
159
151
  except Exception as e:
160
152
  track["err"] = str(e)
161
- if "visitorId" not in track:
162
- track["visitorId"] = "None"
163
- if "ip" not in track:
164
- track["ip"] = "0.0.0.0"
165
153
 
166
154
  return track
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: upgini
3
- Version: 1.1.274
3
+ Version: 1.1.274a2
4
4
  Summary: Intelligent data search & enrichment for Machine Learning
5
5
  Home-page: https://upgini.com/
6
6
  Author: Upgini Developers
@@ -28,7 +28,7 @@ Description-Content-Type: text/markdown
28
28
  License-File: LICENSE
29
29
  Requires-Dist: python-dateutil >=2.8.0
30
30
  Requires-Dist: requests >=2.8.0
31
- Requires-Dist: pandas <3.0.0,>=1.1.0
31
+ Requires-Dist: pandas <2.1.0,>=1.1.0
32
32
  Requires-Dist: numpy >=1.19.0
33
33
  Requires-Dist: scikit-learn >=1.3.0
34
34
  Requires-Dist: pydantic <2.0.0,>=1.8.2
@@ -2,11 +2,11 @@ upgini/__init__.py,sha256=asENHgEVHQBIkV-e_0IhE_ZWqkCG6398U3ZLrNzAH6k,407
2
2
  upgini/ads.py,sha256=mre6xn44wcC_fg63iLT_kTh4mViZqR9AKRJZAtpQz8Y,2592
3
3
  upgini/dataset.py,sha256=xb4gIANyGbdcuM8Awyq2pJPiH_3k_LEbETApJgAoRBA,45529
4
4
  upgini/errors.py,sha256=pdzQl3MKuK52yvncxMWMRWeSIOGhUFzpQoszoRFBOk0,958
5
- upgini/features_enricher.py,sha256=A03SPhpJNxpZiAq6aSKiVOG6mqo3YrZ9MQRwkk8_OSg,176071
5
+ upgini/features_enricher.py,sha256=eQqiCXs-JM8cDQiXY6VEN1--oIWY3HsqxKrjNnF7rAU,174722
6
6
  upgini/fingerprint.js,sha256=VygVIQlN1v4NGZfjHqtRogOw8zjTnnMNJg_f7M5iGQU,33442
7
7
  upgini/http.py,sha256=zaO86LBBLmkieGbgYifk29eVoPCxXimZQ8YkQtKcM0I,42244
8
8
  upgini/metadata.py,sha256=fwVxtkR6Mn4iRoOqV6BfMJvJrx65I3YwZUMbZjhPyOI,9673
9
- upgini/metrics.py,sha256=tGzdn0jgup86OlH_GS4eoza8ZJZ9wgaJr7SaX3Upwzo,29652
9
+ upgini/metrics.py,sha256=U3VJKbKmuWACqI4jTcszXo0WqeXFtV8bWyY9VLBL-rw,29129
10
10
  upgini/search_task.py,sha256=tmJ17WUxv3J5NWrYUJB_NKdZ792Ifz8Z8UnDXeQnpss,17077
11
11
  upgini/spinner.py,sha256=Dm1dQ5F_z_Ua2odLxZX7OypcOX9tSx_vE5MGaKtUmfw,1118
12
12
  upgini/version_validator.py,sha256=rDIncP6BEko4J2F2hUcMOtKm_vZbI4ICWcNcw8hrwM4,1400
@@ -15,7 +15,7 @@ upgini/ads_management/ads_manager.py,sha256=fP4Yqx3h2Snw5X335TbXEwFoupq1RYsE7y0P
15
15
  upgini/autofe/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
16
  upgini/autofe/all_operands.py,sha256=H66wqVLD-H9k8A4-q2wslhV9QaNxlb49f8YiT0Xfkps,2356
17
17
  upgini/autofe/binary.py,sha256=f8LQqZi9zyaMUAv-jASMmWNA_vT05ncYCjZq0qx3USs,3972
18
- upgini/autofe/date.py,sha256=408p8P2OTPM2D3LsEGGtaiCepKGgM1BbOCQNRzAmI6c,4223
18
+ upgini/autofe/date.py,sha256=_6RoEJZ5Kf-Q_aMOFucS6YSIZpCcelgpw-edV4qmRIM,3935
19
19
  upgini/autofe/feature.py,sha256=2FQRGtIumNz60hFAjfLReaY18SI7HxzYZOoC5avzSjQ,11847
20
20
  upgini/autofe/groupby.py,sha256=iXRfOmOc84ooSzRhsh9GmmG7rTafX0-ekXko8s9Qs68,3089
21
21
  upgini/autofe/operand.py,sha256=dhtToPDGWtP_0u_RjayUpezJJZAgq_TzNbPH0bI9OXI,2805
@@ -29,7 +29,7 @@ upgini/normalizer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU
29
29
  upgini/normalizer/phone_normalizer.py,sha256=_SYMX4GTgwzRXArK54Jp3vUBE5d4jZxSVyze-0tqzg0,9996
30
30
  upgini/resource_bundle/__init__.py,sha256=hdvbqL0b0xMWbY6-kiYGsW1ro2GMiWpxxsO9uCv-h9Q,8379
31
31
  upgini/resource_bundle/exceptions.py,sha256=5fRvx0_vWdE1-7HcSgF0tckB4A9AKyf5RiinZkInTsI,621
32
- upgini/resource_bundle/strings.properties,sha256=1O779a0-Ai0j7W-Z5AznvjuV69YkJvgGhJda-6VMLOQ,26287
32
+ upgini/resource_bundle/strings.properties,sha256=TM9OykiEXNpcgFN3DpqBGbQs4N9m4mzHBn-k6aazc30,26111
33
33
  upgini/resource_bundle/strings_widget.properties,sha256=gOdqvZWntP2LCza_tyVk1_yRYcG4c04K9sQOAVhF_gw,1577
34
34
  upgini/sampler/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
35
  upgini/sampler/base.py,sha256=CC-DvPbrN7zp5--SVFuUqkVmdWM_5F7R0Do98ETV82U,6421
@@ -54,10 +54,10 @@ upgini/utils/postal_code_utils.py,sha256=_8CR9tBqsPptQsmMUvnrCAmBaMIQSWH3JfJ4ly3
54
54
  upgini/utils/progress_bar.py,sha256=iNXyqT3vKCeHpfiG5HHwr7Lk2cTtKViM93Fl8iZnjGc,1564
55
55
  upgini/utils/sklearn_ext.py,sha256=e1aMNXk1zUt7uFnl0FcUF0zOnaXSE7z5xBHmJPknUVs,44014
56
56
  upgini/utils/target_utils.py,sha256=9K67tkY7LWhQMO-vbbPqBaO-KriAmg_6fVz5RQRaLQc,7802
57
- upgini/utils/track_info.py,sha256=p8gmuHhLamZF5JG7K9DeK-PcytQhlFCR29lyRr-wq_U,5665
57
+ upgini/utils/track_info.py,sha256=EPcJ13Jqa17_T0JjM37Ac9kWDz5Zk0GVsIZKutOb8aU,5207
58
58
  upgini/utils/warning_counter.py,sha256=dIWBB4dI5XRRJZudvIlqlIYKEiwLLPcXarsZuYRt338,227
59
- upgini-1.1.274.dist-info/LICENSE,sha256=5RRzgvdJUu3BUDfv4bzVU6FqKgwHlIay63pPCSmSgzw,1514
60
- upgini-1.1.274.dist-info/METADATA,sha256=RwxLyA9AsUogY8ky3LmH6m6eWEp3CO0drCn9SXC7EHI,48156
61
- upgini-1.1.274.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
62
- upgini-1.1.274.dist-info/top_level.txt,sha256=OFhTGiDIWKl5gFI49qvWq1R9IKflPaE2PekcbDXDtx4,7
63
- upgini-1.1.274.dist-info/RECORD,,
59
+ upgini-1.1.274a2.dist-info/LICENSE,sha256=5RRzgvdJUu3BUDfv4bzVU6FqKgwHlIay63pPCSmSgzw,1514
60
+ upgini-1.1.274a2.dist-info/METADATA,sha256=bjcE365HG_llg9ozhC4TSFN2-bemJxgLzCQrX6O8R_M,48158
61
+ upgini-1.1.274a2.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
62
+ upgini-1.1.274a2.dist-info/top_level.txt,sha256=OFhTGiDIWKl5gFI49qvWq1R9IKflPaE2PekcbDXDtx4,7
63
+ upgini-1.1.274a2.dist-info/RECORD,,