upgini 1.1.315a3579.dev1__py3-none-any.whl → 1.1.316a1__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.

@@ -1,5 +1,10 @@
1
+ from typing import Optional
2
+
3
+ import numpy as np
1
4
  import pandas as pd
5
+ from pandas.api.types import is_float_dtype, is_object_dtype, is_string_dtype
2
6
 
7
+ from upgini.errors import ValidationError
3
8
  from upgini.utils.base_search_key_detector import BaseSearchKeyDetector
4
9
 
5
10
 
@@ -9,3 +14,341 @@ class PhoneSearchKeyDetector(BaseSearchKeyDetector):
9
14
 
10
15
  def _is_search_key_by_values(self, column: pd.Series) -> bool:
11
16
  return False
17
+
18
+
19
+ class PhoneSearchKeyConverter:
20
+
21
+ def __init__(self, phone_column: str, country_column: Optional[str] = None):
22
+ self.phone_column = phone_column
23
+ self.country_column = country_column
24
+
25
+ def convert(self, df: pd.DataFrame) -> pd.DataFrame:
26
+ df = self.phone_to_int(df)
27
+ if self.country_column is not None:
28
+ df[self.phone_column] = df.apply(self.add_prefix, axis=1)
29
+ df[self.phone_column] = df[self.phone_column].astype("Int64")
30
+ return df
31
+
32
+ def add_prefix(self, row):
33
+ phone = row[self.phone_column]
34
+ if pd.isna(phone):
35
+ return phone
36
+ country = row[self.country_column]
37
+ country_prefix_tuple = self.COUNTRIES_PREFIXES.get(country)
38
+ if country_prefix_tuple is not None:
39
+ country_prefix, number_of_digits = country_prefix_tuple
40
+ if len(str(phone)) == number_of_digits:
41
+ return int(country_prefix + str(phone))
42
+ return phone
43
+
44
+ def phone_to_int(self, df: pd.DataFrame) -> pd.DataFrame:
45
+ """
46
+ Convention: phone number is always presented as int number.
47
+ phone_number = Country code + National Destination Code + Subscriber Number.
48
+ Examples:
49
+ 41793834315 for Switzerland
50
+ 46767040672 for Sweden
51
+ 861065529988 for China
52
+ 18143008198 for the USA
53
+ Inplace conversion of phone to int.
54
+
55
+ Method will remove all non numeric chars from string and convert it to int.
56
+ None will be set for phone numbers that couldn"t be converted to int
57
+ """
58
+ if is_string_dtype(df[self.phone_column]) or is_object_dtype(df[self.phone_column]):
59
+ convert_func = self.phone_str_to_int_safe
60
+ elif is_float_dtype(df[self.phone_column]):
61
+ convert_func = self.phone_float_to_int_safe
62
+ elif df[self.phone_column].dtype == np.int64 or isinstance(
63
+ df[self.phone_column].dtype, pd.Int64Dtype
64
+ ):
65
+ convert_func = self.phone_int_to_int_safe
66
+ else:
67
+ raise ValidationError(
68
+ f"phone_column_name {self.phone_column} doesn't have supported dtype. "
69
+ f"Dataset dtypes: {df.dtypes}. "
70
+ f"Contact developer and request to implement conversion of {self.phone_column} to int"
71
+ )
72
+ df[self.phone_column] = df[self.phone_column].apply(convert_func).astype("Int64")
73
+ return df
74
+
75
+ @staticmethod
76
+ def phone_float_to_int_safe(value: float) -> Optional[int]:
77
+ try:
78
+ return PhoneSearchKeyConverter.validate_length(int(value))
79
+ except Exception:
80
+ return None
81
+
82
+ @staticmethod
83
+ def phone_int_to_int_safe(value: int) -> Optional[int]:
84
+ try:
85
+ return PhoneSearchKeyConverter.validate_length(int(value))
86
+ except Exception:
87
+ return None
88
+
89
+ @staticmethod
90
+ def phone_str_to_int_safe(value: str) -> Optional[int]:
91
+ try:
92
+ value = str(value)
93
+ if value.endswith(".0"):
94
+ value = value[: len(value) - 2]
95
+ numeric_filter = filter(str.isdigit, value)
96
+ numeric_string = "".join(numeric_filter)
97
+ return PhoneSearchKeyConverter.validate_length(int(numeric_string))
98
+ except Exception:
99
+ return None
100
+
101
+ @staticmethod
102
+ def validate_length(value: int) -> Optional[int]:
103
+ if value < 10000000 or value > 999999999999999:
104
+ return None
105
+ else:
106
+ return value
107
+
108
+ COUNTRIES_PREFIXES = {
109
+ "US": ("1", 10),
110
+ "CA": ("1", 10),
111
+ "AI": ("1", 10),
112
+ "AG": ("1", 10),
113
+ "AS": ("1", 10),
114
+ "BB": ("1", 10),
115
+ "BS": ("1", 10),
116
+ "VG": ("1", 10),
117
+ "VI": ("1", 10),
118
+ "KY": ("1", 10),
119
+ "BM": ("1", 10),
120
+ "GD": ("1", 10),
121
+ "TC": ("1", 10),
122
+ "MS": ("1", 10),
123
+ "MP": ("1", 10),
124
+ "GU": ("1", 10),
125
+ "SX": ("1", 10),
126
+ "LC": ("1", 10),
127
+ "DM": ("1", 10),
128
+ "VC": ("1", 10),
129
+ "PR": ("1", 10),
130
+ "TT": ("1", 10),
131
+ "KN": ("1", 10),
132
+ "JM": ("1", 10),
133
+ "EG": ("20", 9),
134
+ "SS": ("211", 9),
135
+ "MA": ("212", 9),
136
+ "EH": ("212", 4),
137
+ "DZ": ("213", 8),
138
+ "TN": ("216", 8),
139
+ "LY": ("218", 9),
140
+ "GM": ("220", 6),
141
+ "SN": ("221", 9),
142
+ "MR": ("222", 7),
143
+ "ML": ("223", 8),
144
+ "GN": ("224", 9),
145
+ "CI": ("225", 7),
146
+ "BF": ("226", 8),
147
+ "NE": ("227", 8),
148
+ "TG": ("228", 8),
149
+ "BJ": ("229", 8),
150
+ "MU": ("230", 7),
151
+ "LR": ("231", 9),
152
+ "SL": ("232", 8),
153
+ "GH": ("233", 9),
154
+ "NG": ("234", 9),
155
+ "TD": ("235", 8),
156
+ "CF": ("236", 7),
157
+ "CM": ("237", 9),
158
+ "CV": ("238", 7),
159
+ "ST": ("239", 7),
160
+ "GQ": ("240", 9),
161
+ "GA": ("241", 8),
162
+ "CG": ("242", 7),
163
+ "CD": ("243", 9),
164
+ "AO": ("244", 9),
165
+ "GW": ("245", 6),
166
+ "IO": ("246", 7),
167
+ "AC": ("247", 5),
168
+ "SC": ("248", 7),
169
+ "SD": ("249", 9),
170
+ "RW": ("250", 9),
171
+ "ET": ("251", 9),
172
+ "SO": ("252", 9),
173
+ "DJ": ("253", 8),
174
+ "KE": ("254", 9),
175
+ "TZ": ("255", 9),
176
+ "UG": ("256", 9),
177
+ "BI": ("257", 8),
178
+ "MZ": ("258", 8),
179
+ "ZM": ("260", 9),
180
+ "MG": ("261", 9),
181
+ "RE": ("262", 9),
182
+ "YT": ("262", 9),
183
+ "TF": ("262", 9),
184
+ "ZW": ("263", 9),
185
+ "NA": ("264", 9),
186
+ "MW": ("265", 7),
187
+ "LS": ("266", 8),
188
+ "BW": ("267", 7),
189
+ "SZ": ("268", 8),
190
+ "KM": ("269", 7),
191
+ "ZA": ("27", 10),
192
+ "SH": ("290", 5),
193
+ "TA": ("290", 5),
194
+ "ER": ("291", 7),
195
+ "AT": ("43", 10),
196
+ "AW": ("297", 7),
197
+ "FO": ("298", 6),
198
+ "GL": ("299", 6),
199
+ "GR": ("30", 10),
200
+ "BE": ("32", 8),
201
+ "FR": ("33", 9),
202
+ "ES": ("34", 9),
203
+ "GI": ("350", 8),
204
+ "PE": ("51", 8),
205
+ "MX": ("52", 10),
206
+ "CU": ("53", 8),
207
+ "AR": ("54", 10),
208
+ "BR": ("55", 10),
209
+ "CL": ("56", 9),
210
+ "CO": ("57", 8),
211
+ "VE": ("58", 10),
212
+ "PT": ("351", 9),
213
+ "LU": ("352", 8),
214
+ "IE": ("353", 8),
215
+ "IS": ("354", 7),
216
+ "AL": ("355", 8),
217
+ "MT": ("356", 8),
218
+ "CY": ("357", 8),
219
+ "FI": ("358", 9),
220
+ "BG": ("359", 8),
221
+ "HU": ("36", 8),
222
+ "LT": ("370", 8),
223
+ "LV": ("371", 8),
224
+ "EE": ("372", 7),
225
+ "MD": ("373", 8),
226
+ "AM": ("374", 8),
227
+ "BY": ("375", 9),
228
+ "AD": ("376", 6),
229
+ "MC": ("377", 8),
230
+ "SM": ("378", 9),
231
+ "VA": ("3906698", 5),
232
+ "UA": ("380", 9),
233
+ "RS": ("381", 9),
234
+ "ME": ("382", 8),
235
+ "HR": ("385", 8),
236
+ "SI": ("386", 8),
237
+ "BA": ("387", 8),
238
+ "MK": ("389", 8),
239
+ "MY": ("60", 9),
240
+ "AU": ("61", 9),
241
+ "CX": ("61", 9),
242
+ "CC": ("61", 9),
243
+ "ID": ("62", 9),
244
+ "PH": ("632", 7),
245
+ "NZ": ("64", 8),
246
+ "PN": ("64", 8),
247
+ "SG": ("65", 8),
248
+ "TH": ("66", 8),
249
+ "IT": ("39", 10),
250
+ "RO": ("40", 9),
251
+ "CH": ("41", 9),
252
+ "CZ": ("420", 9),
253
+ "SK": ("421", 9),
254
+ "GB": ("44", 10),
255
+ "LI": ("423", 7),
256
+ "GG": ("44", 10),
257
+ "IM": ("44", 10),
258
+ "JE": ("44", 10),
259
+ "DK": ("45", 8),
260
+ "SE": ("46", 8),
261
+ "BD": ("880", 8),
262
+ "TW": ("886", 9),
263
+ "JP": ("81", 9),
264
+ "KR": ("82", 9),
265
+ "VN": ("84", 10),
266
+ "KP": ("850", 8),
267
+ "HK": ("852", 8),
268
+ "MO": ("853", 8),
269
+ "KH": ("855", 8),
270
+ "LA": ("856", 8),
271
+ "NO": ("47", 8),
272
+ "SJ": ("47", 8),
273
+ "BV": ("47", 8),
274
+ "PL": ("48", 9),
275
+ "DE": ("49", 10),
276
+ "TR": ("90", 10),
277
+ "IN": ("91", 10),
278
+ "PK": ("92", 9),
279
+ "AF": ("93", 9),
280
+ "LK": ("94", 9),
281
+ "MM": ("95", 7),
282
+ "IR": ("98", 10),
283
+ "MV": ("960", 7),
284
+ "LB": ("961", 7),
285
+ "JO": ("962", 9),
286
+ "SY": ("963", 10),
287
+ "IQ": ("964", 10),
288
+ "KW": ("965", 7),
289
+ "SA": ("966", 9),
290
+ "YE": ("967", 7),
291
+ "OM": ("968", 8),
292
+ "PS": ("970", 8),
293
+ "AE": ("971", 8),
294
+ "IL": ("972", 9),
295
+ "BH": ("973", 8),
296
+ "QA": ("974", 8),
297
+ "BT": ("975", 7),
298
+ "MN": ("976", 8),
299
+ "NP": ("977", 8),
300
+ "TJ": ("992", 9),
301
+ "TM": ("993", 8),
302
+ "AZ": ("994", 9),
303
+ "GE": ("995", 9),
304
+ "KG": ("996", 9),
305
+ "UZ": ("998", 9),
306
+ "FK": ("500", 5),
307
+ "BZ": ("501", 7),
308
+ "GT": ("502", 8),
309
+ "SV": ("503", 8),
310
+ "HN": ("504", 8),
311
+ "NI": ("505", 8),
312
+ "CR": ("506", 8),
313
+ "PA": ("507", 7),
314
+ "PM": ("508", 6),
315
+ "HT": ("509", 8),
316
+ "GS": ("500", 5),
317
+ "MF": ("590", 9),
318
+ "BL": ("590", 9),
319
+ "GP": ("590", 9),
320
+ "BO": ("591", 9),
321
+ "GY": ("592", 9),
322
+ "EC": ("593", 9),
323
+ "GF": ("594", 9),
324
+ "PY": ("595", 9),
325
+ "MQ": ("596", 9),
326
+ "SR": ("597", 9),
327
+ "UY": ("598", 9),
328
+ "CW": ("599", 9),
329
+ "BQ": ("599", 9),
330
+ "RU": ("7", 10),
331
+ "KZ": ("7", 10),
332
+ "TL": ("670", 7),
333
+ "NF": ("672", 7),
334
+ "HM": ("672", 7),
335
+ "BN": ("673", 7),
336
+ "NR": ("674", 7),
337
+ "PG": ("675", 7),
338
+ "TO": ("676", 7),
339
+ "SB": ("677", 7),
340
+ "VU": ("678", 7),
341
+ "FJ": ("679", 7),
342
+ "PW": ("680", 7),
343
+ "WF": ("681", 7),
344
+ "CK": ("682", 5),
345
+ "NU": ("683", 7),
346
+ "WS": ("685", 7),
347
+ "KI": ("686", 7),
348
+ "NC": ("687", 7),
349
+ "TV": ("688", 7),
350
+ "PF": ("689", 7),
351
+ "TK": ("690", 7),
352
+ "FM": ("691", 7),
353
+ "MH": ("692", 7),
354
+ }
@@ -1,4 +1,9 @@
1
1
  import pandas as pd
2
+ from pandas.api.types import (
3
+ is_float_dtype,
4
+ is_object_dtype,
5
+ is_string_dtype,
6
+ )
2
7
 
3
8
  from upgini.utils.base_search_key_detector import BaseSearchKeyDetector
4
9
 
@@ -9,3 +14,32 @@ class PostalCodeSearchKeyDetector(BaseSearchKeyDetector):
9
14
 
10
15
  def _is_search_key_by_values(self, column: pd.Series) -> bool:
11
16
  return False
17
+
18
+
19
+ class PostalCodeSearchKeyConverter:
20
+
21
+ def __init__(self, postal_code_column: str):
22
+ self.postal_code_column = postal_code_column
23
+
24
+ def convert(self, df: pd.DataFrame) -> pd.DataFrame:
25
+ if is_string_dtype(df[self.postal_code_column]) or is_object_dtype(df[self.postal_code_column]):
26
+ try:
27
+ df[self.postal_code_column] = (
28
+ df[self.postal_code_column].astype("string").astype("Float64").astype("Int64").astype("string")
29
+ )
30
+ except Exception:
31
+ pass
32
+ elif is_float_dtype(df[self.postal_code_column]):
33
+ df[self.postal_code_column] = df[self.postal_code_column].astype("Int64").astype("string")
34
+
35
+ df[self.postal_code_column] = (
36
+ df[self.postal_code_column]
37
+ .astype("string")
38
+ .str.upper()
39
+ .str.replace(r"[^0-9A-Z]", "", regex=True) # remove non alphanumeric characters
40
+ .str.replace(r"^0+\B", "", regex=True) # remove leading zeros
41
+ )
42
+ # if (df[self.postal_code_column] == "").all():
43
+ # raise ValidationError(self.bundle.get("invalid_postal_code").format(self.postal_code_column))
44
+
45
+ return df
@@ -194,4 +194,7 @@ def calculate_psi(expected: pd.Series, actual: pd.Series) -> float:
194
194
  test_distribution = actual.value_counts(bins=bins, normalize=True).sort_index().values
195
195
 
196
196
  # Calculate the PSI
197
- return np.sum((train_distribution - test_distribution) * np.log(train_distribution / test_distribution))
197
+ try:
198
+ return np.sum((train_distribution - test_distribution) * np.log(train_distribution / test_distribution))
199
+ except Exception:
200
+ return np.nan
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: upgini
3
- Version: 1.1.315a3579.dev1
3
+ Version: 1.1.316a1
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/
@@ -29,9 +29,9 @@ Requires-Dist: ipywidgets>=8.1.0
29
29
  Requires-Dist: jarowinkler>=2.0.0
30
30
  Requires-Dist: levenshtein>=0.25.1
31
31
  Requires-Dist: lightgbm>=3.3.2
32
- Requires-Dist: numpy>=1.19.0
32
+ Requires-Dist: numpy<=1.26.4,>=1.19.0
33
33
  Requires-Dist: pandas<3.0.0,>=1.1.0
34
- Requires-Dist: pydantic<2.0.0,>=1.8.2
34
+ Requires-Dist: pydantic>=2.7.0
35
35
  Requires-Dist: pyjwt>=2.8.0
36
36
  Requires-Dist: python-bidi==0.4.2
37
37
  Requires-Dist: python-dateutil>=2.8.0
@@ -1,12 +1,12 @@
1
- upgini/__about__.py,sha256=A2XytSmCYerlceT1aYbpfAXvRSlpGZVfxnb8LCvviMg,34
1
+ upgini/__about__.py,sha256=31UCeRaXiz7DRsmJ3BKvypU0ky5w4Itv5qqPPf4BU9I,26
2
2
  upgini/__init__.py,sha256=Xs0YFVBu1KUdtZzbStGRPQtLt3YLzJnjx5nIUBlX8BE,415
3
3
  upgini/ads.py,sha256=nvuRxRx5MHDMgPr9SiU-fsqRdFaBv8p4_v1oqiysKpc,2714
4
- upgini/dataset.py,sha256=MOzBVsvzlHLxNfPWtMaXC_jIPeW7_gUvbSGeXnsPgNI,46158
4
+ upgini/dataset.py,sha256=yAWIygHejxdKXOA4g3QjtCu0VRa9at-4nPPuugCr77U,30857
5
5
  upgini/errors.py,sha256=2b_Wbo0OYhLUbrZqdLIx5jBnAsiD1Mcenh-VjR4HCTw,950
6
- upgini/features_enricher.py,sha256=JzSnwqxUKuYqBC4DHgPcG4MxQzvnCfKuOgihTllwRis,182583
7
- upgini/http.py,sha256=a4Epc9YLIJBuYk4t8E_2-QDLBtJFqKO35jn2SnYQZCg,42920
8
- upgini/lazy_import.py,sha256=EwoM0msNGbSmWBhGbrLDny1DSnOlvTxCjmMKPxYlDms,610
9
- upgini/metadata.py,sha256=E5WWZ_MkjGyYNQh_LnwMIBHyqPx1fxk-qhEfQIJnzq8,10209
6
+ upgini/features_enricher.py,sha256=_d8ya5RRoYN0o6mV6gda-bLdOngQ4rb1SA51SlM_TG0,188002
7
+ upgini/http.py,sha256=_A_DGMk8gkygdVFCDp8I6js_re4YX34PB9TpJV8aPqo,42784
8
+ upgini/lazy_import.py,sha256=74gQ8JuA48BGRLxAo7lNHNKY2D2emMxrUxKGdxVGhuY,1012
9
+ upgini/metadata.py,sha256=osmzdNESeh7yP3BZday6N9Q3eaIHfzhhRM1d6NSgcf0,11223
10
10
  upgini/metrics.py,sha256=Tu5cN8RlhOSSMWUTXRSkdl8SWBqR1N_2eJpBum9pZxc,30926
11
11
  upgini/search_task.py,sha256=LtRJ9bCPjMo1gJ-sUDKERhDwGcWKImrzwVFHjkMSQHQ,17071
12
12
  upgini/spinner.py,sha256=4iMd-eIe_BnkqFEMIliULTbj6rNI2HkN_VJ4qYe0cUc,1118
@@ -15,19 +15,19 @@ upgini/ads_management/__init__.py,sha256=qzyisOToVRP-tquAJD1PblZhNtMrOB8FiyF9Jvf
15
15
  upgini/ads_management/ads_manager.py,sha256=igVbN2jz80Umb2BUJixmJVj-zx8unoKpecVo-R-nGdw,2648
16
16
  upgini/autofe/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
17
  upgini/autofe/all_operands.py,sha256=3LiH9iU-ArGmYpS8FHWH7yCFx40ILfvlSXJlKIa75BQ,2542
18
- upgini/autofe/binary.py,sha256=VyDCv6lw3LlKCsAS9ghwwh6_1OYBbejSzwGGH1Vc1tI,6908
19
- upgini/autofe/date.py,sha256=AO3P8GtUHD6vPE_1Vrj3nsnXYBxiXe7vun6aLHReZgQ,9064
20
- upgini/autofe/feature.py,sha256=gwGWY2UcX_0wHAvfEiu1rRU7GFZyzMWZIaPVcf6kD80,14223
21
- upgini/autofe/groupby.py,sha256=4WjDzQxqpZxB79Ih4ihMMI5GDxaFqiH6ZelfV82ClT4,3091
22
- upgini/autofe/operand.py,sha256=MKEsl3zxpWzRDpTkE0sNJxTu62U20sWOvEKhPjUWS6s,2915
23
- upgini/autofe/unary.py,sha256=oIMf-IVy7L7GkzxMmQyExX0tOH9RhWeQh7cGxxMDiPk,3832
24
- upgini/autofe/vector.py,sha256=dLxfAstJs-gw_OQ1xxoxcM6pVzORlV0HVzdzt7cLXVQ,606
18
+ upgini/autofe/binary.py,sha256=xRBT7RNqQ7pprz6cRpO1KnvZCb7PvU3QXBfaP6Omqi4,7425
19
+ upgini/autofe/date.py,sha256=eLPrO2Cgm74VB4rPtIaeUDuI5vmLiGnygHSvU4aGHWU,9223
20
+ upgini/autofe/feature.py,sha256=CivPkE7YrAtDrgF8WhVPnDAnNDR8gbRQ-8_hXiQE6ew,14234
21
+ upgini/autofe/groupby.py,sha256=r-xl_keZZgm_tpiEoDhjYSkT6NHv7a4cRQR4wJ4uCp8,3263
22
+ upgini/autofe/operand.py,sha256=uk883RaNqgXqtkaRqA1re1d9OFnnpv0JVvelYx09Yw0,2943
23
+ upgini/autofe/unary.py,sha256=RiK-Fz3fgjPlqWWfro6x7qChjEZ8W8RTnl5-MT1kaQA,4218
24
+ upgini/autofe/vector.py,sha256=ehcZUDqV71TfbU8EmKfdYp603gS2dJY_-fpr10ho5sI,663
25
25
  upgini/data_source/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
- upgini/data_source/data_source_publisher.py,sha256=kTewGmdoxTVkZEqDdbhWbmIKIvb7W0w7ml3WOo-qc2g,21450
26
+ upgini/data_source/data_source_publisher.py,sha256=Vg0biG86YB0OEaoxbK9YYrr4yARm11_h3bTWIBgoScA,22115
27
27
  upgini/mdc/__init__.py,sha256=aM08nIWFc2gWdWUa3_IuEnNND0cQPkBGnYpRMnfFN8k,1019
28
28
  upgini/mdc/context.py,sha256=3u1B-jXt7tXEvNcV3qmR9SDCseudnY7KYsLclBdwVLk,1405
29
29
  upgini/normalizer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
- upgini/normalizer/phone_normalizer.py,sha256=EzTaahk6myRv6ZXgbyVFGY4kpo_2VlQgOrm5_lfbmNI,9996
30
+ upgini/normalizer/normalize_utils.py,sha256=bHRPWCNrUvt2R9qMX6dZFCJ0i8ENVCQ2Rw3dHH9IJEg,7447
31
31
  upgini/resource_bundle/__init__.py,sha256=S5F2G47pnJd2LDpmFsjDqEwiKkP8Hm-hcseDbMka6Ko,8345
32
32
  upgini/resource_bundle/exceptions.py,sha256=5fRvx0_vWdE1-7HcSgF0tckB4A9AKyf5RiinZkInTsI,621
33
33
  upgini/resource_bundle/strings.properties,sha256=WZAuYPX2Dpn6BHoA3RX8uvMNMr-yJE2fF7Gz0i24x2s,26459
@@ -39,25 +39,25 @@ upgini/sampler/utils.py,sha256=PYOk3kKSnFlyxcpdtDNLBEEhTB4lO_iP7pQHqeUcmAc,20211
39
39
  upgini/utils/__init__.py,sha256=O_KgzKiJjW3g4NoqZ7lAxUpoHcBi_gze6r3ndEjCH74,842
40
40
  upgini/utils/base_search_key_detector.py,sha256=Inc6iGG-VXQdejWFfbekIkZk2ahC4k7CdGqzOkie6Bs,1021
41
41
  upgini/utils/blocked_time_series.py,sha256=Uqr3vp4YqNclj2-PzEYqVy763GSXHn86sbpIl1UOB4s,3382
42
- upgini/utils/country_utils.py,sha256=yE8oRgMpXuJxPfQm4fioY6dg6700HgVnHSk4Cv9sUyM,6511
42
+ upgini/utils/country_utils.py,sha256=lY-eXWwFVegdVENFttbvLcgGDjFO17Sex8hd2PyJaRk,6937
43
43
  upgini/utils/custom_loss_utils.py,sha256=kieNZYBYZm5ZGBltF1F_jOSF4ea6C29rYuCyiDcqVNY,3857
44
44
  upgini/utils/cv_utils.py,sha256=w6FQb9nO8BWDx88EF83NpjPLarK4eR4ia0Wg0kLBJC4,3525
45
- upgini/utils/datetime_utils.py,sha256=uJ3wJNr4KQvDJ-gSOLcmP85hLtASK271o6mob4aZT90,11064
45
+ upgini/utils/datetime_utils.py,sha256=4tsGeehU0KS6wqNsc9gEEWZ9s6T9E0UReUIO3rSuXNU,12174
46
46
  upgini/utils/deduplicate_utils.py,sha256=Zvs7zW4QzaERQmJNPrTVf2ZTVBkBLOycFCzyMwtXuV8,8770
47
47
  upgini/utils/display_utils.py,sha256=A2ouB5eiZ-Kyt9ykYxkLQwyoRPrdYeJymwNTiajtFXs,10990
48
- upgini/utils/email_utils.py,sha256=aKHa4xVBSsEsiZtFCPj_DrUaFupceYfvJeP_e8w_D5E,3813
48
+ upgini/utils/email_utils.py,sha256=j0Ug1R_0AnCg1Y92zIZ4XMwvKo3G5_pcOlBN1OH_gZs,5191
49
49
  upgini/utils/fallback_progress_bar.py,sha256=PDaKb8dYpVZaWMroNcOHsTc3pSjgi9mOm0--cOFTwJ0,1074
50
50
  upgini/utils/features_validator.py,sha256=PgKNt5dyqfErTvjtRNNUS9g7GFqHBtAtnsfA-V5UO1A,3307
51
51
  upgini/utils/format.py,sha256=Yv5cvvSs2bOLUzzNu96Pu33VMDNbabio92QepUj41jU,243
52
- upgini/utils/ip_utils.py,sha256=Zf3F2cnQmOCH09QLQHetpjMFu1PnD0cTmDymn0SnSy8,1672
53
- upgini/utils/phone_utils.py,sha256=JNSkF8G6mgsN8Czy11pamaJdsY6rBINEMpi7jbVt_RA,408
54
- upgini/utils/postal_code_utils.py,sha256=_8CR9tBqsPptQsmMUvnrCAmBaMIQSWH3JfJ4ly3x_zs,409
52
+ upgini/utils/ip_utils.py,sha256=ZZj_uQFTHhagzt-MRew__ZBOp2DdnkMrachS7PElkSE,5143
53
+ upgini/utils/phone_utils.py,sha256=IrbztLuOJBiePqqxllfABWfYlfAjYevPhXKipl95wUI,10432
54
+ upgini/utils/postal_code_utils.py,sha256=C899tJS8qM_ps4I3g-Ve6qzIa22O_UqwNmGFoyy9sO8,1716
55
55
  upgini/utils/progress_bar.py,sha256=N-Sfdah2Hg8lXP_fV9EfUTXz_PyRt4lo9fAHoUDOoLc,1550
56
56
  upgini/utils/sklearn_ext.py,sha256=13jQS_k7v0aUtudXV6nGUEWjttPQzAW9AFYL5wgEz9k,44511
57
- upgini/utils/target_utils.py,sha256=Y96_PJ5cC-WsEbeqg20v9uqywDQobLoTb-xoP7S3o4E,7807
57
+ upgini/utils/target_utils.py,sha256=BVtDmrmFMKerSUWaNOIEdzsYHIFiODdpnWbE50QDPDc,7864
58
58
  upgini/utils/track_info.py,sha256=G5Lu1xxakg2_TQjKZk4b5SvrHsATTXNVV3NbvWtT8k8,5663
59
59
  upgini/utils/warning_counter.py,sha256=dIWBB4dI5XRRJZudvIlqlIYKEiwLLPcXarsZuYRt338,227
60
- upgini-1.1.315a3579.dev1.dist-info/METADATA,sha256=X3U032Jk0GFUwkQc1R8aYxFrB-6zmlzDckNZEvOj7nU,48232
61
- upgini-1.1.315a3579.dev1.dist-info/WHEEL,sha256=zEMcRr9Kr03x1ozGwg5v9NQBKn3kndp6LSoSlVg-jhU,87
62
- upgini-1.1.315a3579.dev1.dist-info/licenses/LICENSE,sha256=5RRzgvdJUu3BUDfv4bzVU6FqKgwHlIay63pPCSmSgzw,1514
63
- upgini-1.1.315a3579.dev1.dist-info/RECORD,,
60
+ upgini-1.1.316a1.dist-info/METADATA,sha256=eJXt7Ga1qWst0_EIHCQYMTnAf0EkeO73tt5hbx4K_5g,48226
61
+ upgini-1.1.316a1.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
62
+ upgini-1.1.316a1.dist-info/licenses/LICENSE,sha256=5RRzgvdJUu3BUDfv4bzVU6FqKgwHlIay63pPCSmSgzw,1514
63
+ upgini-1.1.316a1.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: hatchling 1.24.2
2
+ Generator: hatchling 1.25.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any