upgini 1.2.167a4220.dev12__tar.gz → 1.2.167a4220.dev14__tar.gz

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.
Files changed (94) hide show
  1. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/PKG-INFO +1 -1
  2. upgini-1.2.167a4220.dev14/src/upgini/__about__.py +1 -0
  3. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/features_enricher.py +0 -59
  4. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/utils/deduplicate_utils.py +13 -4
  5. upgini-1.2.167a4220.dev12/src/upgini/__about__.py +0 -1
  6. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/.gitignore +0 -0
  7. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/LICENSE +0 -0
  8. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/README.md +0 -0
  9. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/pyproject.toml +0 -0
  10. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/__init__.py +0 -0
  11. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/ads.py +0 -0
  12. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/ads_management/__init__.py +0 -0
  13. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/ads_management/ads_manager.py +0 -0
  14. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/autofe/__init__.py +0 -0
  15. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/autofe/all_operators.py +0 -0
  16. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/autofe/binary.py +0 -0
  17. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/autofe/date.py +0 -0
  18. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/autofe/feature.py +0 -0
  19. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/autofe/groupby.py +0 -0
  20. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/autofe/operand.py +0 -0
  21. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/autofe/operator.py +0 -0
  22. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/autofe/timeseries/__init__.py +0 -0
  23. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/autofe/timeseries/base.py +0 -0
  24. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/autofe/timeseries/cross.py +0 -0
  25. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/autofe/timeseries/delta.py +0 -0
  26. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/autofe/timeseries/lag.py +0 -0
  27. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/autofe/timeseries/numpy_kernels.py +0 -0
  28. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/autofe/timeseries/roll.py +0 -0
  29. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/autofe/timeseries/trend.py +0 -0
  30. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/autofe/timeseries/volatility.py +0 -0
  31. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/autofe/unary.py +0 -0
  32. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/autofe/utils.py +0 -0
  33. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/autofe/vector.py +0 -0
  34. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/data_source/__init__.py +0 -0
  35. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/data_source/data_source_publisher.py +0 -0
  36. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/dataset.py +0 -0
  37. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/errors.py +0 -0
  38. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/http.py +0 -0
  39. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/mdc/__init__.py +0 -0
  40. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/mdc/context.py +0 -0
  41. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/metadata.py +0 -0
  42. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/metrics.py +0 -0
  43. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/normalizer/__init__.py +0 -0
  44. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/normalizer/normalize_utils.py +0 -0
  45. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/report/__init__.py +0 -0
  46. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/report/assemble.py +0 -0
  47. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/report/data.py +0 -0
  48. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/report/html.py +0 -0
  49. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/report/stats.py +0 -0
  50. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/report/template.html +0 -0
  51. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/resource_bundle/__init__.py +0 -0
  52. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/resource_bundle/exceptions.py +0 -0
  53. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/resource_bundle/strings.properties +0 -0
  54. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/resource_bundle/strings_widget.properties +0 -0
  55. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/sampler/__init__.py +0 -0
  56. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/sampler/base.py +0 -0
  57. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/sampler/random_under_sampler.py +0 -0
  58. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/sampler/utils.py +0 -0
  59. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/search_task.py +0 -0
  60. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/spinner.py +0 -0
  61. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/utils/Roboto-Regular.ttf +0 -0
  62. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/utils/__init__.py +0 -0
  63. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/utils/base_search_key_detector.py +0 -0
  64. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/utils/blocked_time_series.py +0 -0
  65. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/utils/config.py +0 -0
  66. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/utils/country_utils.py +0 -0
  67. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/utils/cpu_utils.py +0 -0
  68. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/utils/custom_loss_utils.py +0 -0
  69. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/utils/cv_utils.py +0 -0
  70. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/utils/datetime_utils.py +0 -0
  71. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/utils/display_utils.py +0 -0
  72. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/utils/email_utils.py +0 -0
  73. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/utils/fallback_progress_bar.py +0 -0
  74. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/utils/feature_info.py +0 -0
  75. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/utils/features_validator.py +0 -0
  76. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/utils/format.py +0 -0
  77. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/utils/hash_utils.py +0 -0
  78. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/utils/ip_utils.py +0 -0
  79. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/utils/mstats.py +0 -0
  80. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/utils/one_hot_encoder.py +0 -0
  81. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/utils/phone_utils.py +0 -0
  82. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/utils/postal_code_utils.py +0 -0
  83. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/utils/progress_bar.py +0 -0
  84. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/utils/psi.py +0 -0
  85. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/utils/pyarrow_utils.py +0 -0
  86. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/utils/sample_utils.py +0 -0
  87. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/utils/search_key_derivations.py +0 -0
  88. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/utils/sklearn_ext.py +0 -0
  89. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/utils/sort.py +0 -0
  90. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/utils/target_utils.py +0 -0
  91. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/utils/track_info.py +0 -0
  92. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/utils/ts_utils.py +0 -0
  93. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/utils/warning_counter.py +0 -0
  94. {upgini-1.2.167a4220.dev12 → upgini-1.2.167a4220.dev14}/src/upgini/version_validator.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: upgini
3
- Version: 1.2.167a4220.dev12
3
+ Version: 1.2.167a4220.dev14
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/
@@ -0,0 +1 @@
1
+ __version__ = "1.2.167.a4220.dev14"
@@ -100,7 +100,6 @@ from upgini.utils.deduplicate_utils import (
100
100
  remove_fintech_duplicates,
101
101
  )
102
102
  from upgini.report.assemble import (
103
- _fold_model_nodes,
104
103
  _generated_feature_names,
105
104
  _parse_generated_feature,
106
105
  assemble_report_data,
@@ -2514,39 +2513,6 @@ class FeaturesEnricher(TransformerMixin):
2514
2513
  return False
2515
2514
  return bool(aliases & self._column_name_aliases(list(ensemble_names), renaming))
2516
2515
 
2517
- def _match_autofe_node_meta(
2518
- self,
2519
- autofe_feature: Feature,
2520
- features_meta: list[FeaturesMetadataV2],
2521
- used_names: set[str],
2522
- ) -> FeaturesMetadataV2 | None:
2523
- name = autofe_feature.get_display_name(shorten=True, unhash=True, cache=False)
2524
- matched = self._match_autofe_meta_by_names({name} if name else set(), features_meta, used_names)
2525
- if matched is not None or not name:
2526
- return matched
2527
- # Fold formulas omit display_index; FeaturesMetadata still uses the ordinary
2528
- # get_display_name() with that index. Recover only the remainder after the
2529
- # Feature-computed base name, then verify with get_display_name().
2530
- prefix = name + "_"
2531
- previous = autofe_feature.display_index
2532
- try:
2533
- for meta in features_meta or []:
2534
- if meta.name in used_names or not meta.name.startswith(prefix):
2535
- continue
2536
- index = meta.name[len(prefix) :]
2537
- if not index:
2538
- continue
2539
- if (
2540
- autofe_feature.set_display_index(index).get_display_name(
2541
- shorten=True, unhash=True, cache=False
2542
- )
2543
- == meta.name
2544
- ):
2545
- return meta
2546
- finally:
2547
- autofe_feature.set_display_index(previous)
2548
- return None
2549
-
2550
2516
  @staticmethod
2551
2517
  def _match_autofe_meta_by_names(
2552
2518
  names: set[str],
@@ -6070,31 +6036,6 @@ if response.status_code == 200:
6070
6036
  self.logger.exception(f"Failed to parse AutoFE formula: {m.formula}")
6071
6037
  continue
6072
6038
 
6073
- fold_autofe = [
6074
- child
6075
- for fold in _fold_model_nodes(autofe_feature)
6076
- for child in fold.children
6077
- if isinstance(child, Feature)
6078
- and (not child.op.is_vector or isinstance(child.op, TimeSeriesBase))
6079
- ]
6080
- if fold_autofe:
6081
- hashed_to_orig = {hashed: orig for orig, hashed in orig_to_hashed.items()}
6082
- for node in fold_autofe:
6083
- is_ts = isinstance(node.op, TimeSeriesBase)
6084
- source_names = [
6085
- hashed
6086
- for hashed in node.get_columns()
6087
- if not is_ts or hashed_to_orig.get(hashed, hashed) not in self.fit_search_keys
6088
- ]
6089
- self._add_autofe_description(
6090
- descriptions,
6091
- used_names,
6092
- self._match_autofe_node_meta(node, features_meta, used_names),
6093
- source_names,
6094
- node.get_all_operand_names(),
6095
- )
6096
- continue
6097
-
6098
6039
  is_ts = isinstance(autofe_feature.op, TimeSeriesBase)
6099
6040
  if autofe_feature.op.is_vector and not is_ts:
6100
6041
  continue
@@ -17,6 +17,15 @@ from upgini.resource_bundle import ResourceBundle, get_custom_bundle
17
17
  from upgini.utils.datetime_utils import DateTimeConverter
18
18
  from upgini.utils.target_utils import define_task
19
19
 
20
+ _INDEX_SAMPLE = 3
21
+
22
+
23
+ def _format_index_sample(indexes) -> str:
24
+ values = list(indexes)
25
+ if len(values) <= _INDEX_SAMPLE:
26
+ return str(values)
27
+ return str(values[:_INDEX_SAMPLE])[:-1] + ", ...]"
28
+
20
29
 
21
30
  def remove_fintech_duplicates(
22
31
  df: pd.DataFrame,
@@ -117,11 +126,11 @@ def remove_fintech_duplicates(
117
126
  perc = len(rows_to_remove) * 100 / len(segment_df)
118
127
  if eval_index == 0:
119
128
  msg = bundle.get("dataset_train_diff_target_duplicates_fintech").format(
120
- perc, len(rows_to_remove), rows_to_remove.index.to_list()
129
+ perc, len(rows_to_remove), _format_index_sample(rows_to_remove.index)
121
130
  )
122
131
  else:
123
132
  msg = bundle.get("dataset_eval_diff_target_duplicates_fintech").format(
124
- perc, len(rows_to_remove), eval_index, rows_to_remove.index.to_list()
133
+ perc, len(rows_to_remove), eval_index, _format_index_sample(rows_to_remove.index)
125
134
  )
126
135
  return segment_df[~segment_df.index.isin(rows_to_remove.index)], msg
127
136
  return segment_df, None
@@ -227,7 +236,7 @@ def clean_full_duplicates(
227
236
 
228
237
  marked_duplicates = df_for_dedup.duplicated(subset=unique_columns, keep=False)
229
238
  if marked_duplicates.sum() > 0:
230
- dups_indices = df_for_dedup[marked_duplicates].index.to_list()[:100]
239
+ dups_indices = _format_index_sample(df_for_dedup[marked_duplicates].index)
231
240
  nrows_after_tgt_dedup = len(df_for_dedup.drop_duplicates(subset=unique_columns, keep=False))
232
241
  num_dup_rows = len(df_for_dedup) - nrows_after_tgt_dedup
233
242
  share_tgt_dedup = 100 * num_dup_rows / len(df_for_dedup)
@@ -240,7 +249,7 @@ def clean_full_duplicates(
240
249
  df = pd.concat([df_for_dedup, oot_df], ignore_index=False)
241
250
  marked_duplicates = df.duplicated(subset=unique_columns, keep=False)
242
251
  if marked_duplicates.sum() > 0:
243
- dups_indices = df[marked_duplicates].index.to_list()[:100]
252
+ dups_indices = _format_index_sample(df[marked_duplicates].index)
244
253
  nrows_after_tgt_dedup = len(df.drop_duplicates(subset=unique_columns, keep=False))
245
254
  num_dup_rows = len(df) - nrows_after_tgt_dedup
246
255
  share_tgt_dedup = 100 * num_dup_rows / len(df)
@@ -1 +0,0 @@
1
- __version__ = "1.2.167.a4220.dev12"