upgini 1.2.135a1__tar.gz → 1.2.135a2__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.

Potentially problematic release.


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

Files changed (82) hide show
  1. {upgini-1.2.135a1 → upgini-1.2.135a2}/PKG-INFO +1 -1
  2. upgini-1.2.135a2/src/upgini/__about__.py +1 -0
  3. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/features_enricher.py +12 -6
  4. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/utils/features_validator.py +5 -3
  5. upgini-1.2.135a1/src/upgini/__about__.py +0 -1
  6. {upgini-1.2.135a1 → upgini-1.2.135a2}/.gitignore +0 -0
  7. {upgini-1.2.135a1 → upgini-1.2.135a2}/LICENSE +0 -0
  8. {upgini-1.2.135a1 → upgini-1.2.135a2}/README.md +0 -0
  9. {upgini-1.2.135a1 → upgini-1.2.135a2}/pyproject.toml +0 -0
  10. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/__init__.py +0 -0
  11. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/ads.py +0 -0
  12. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/ads_management/__init__.py +0 -0
  13. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/ads_management/ads_manager.py +0 -0
  14. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/autofe/__init__.py +0 -0
  15. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/autofe/all_operators.py +0 -0
  16. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/autofe/binary.py +0 -0
  17. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/autofe/date.py +0 -0
  18. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/autofe/feature.py +0 -0
  19. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/autofe/groupby.py +0 -0
  20. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/autofe/operator.py +0 -0
  21. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/autofe/timeseries/__init__.py +0 -0
  22. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/autofe/timeseries/base.py +0 -0
  23. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/autofe/timeseries/cross.py +0 -0
  24. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/autofe/timeseries/delta.py +0 -0
  25. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/autofe/timeseries/lag.py +0 -0
  26. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/autofe/timeseries/roll.py +0 -0
  27. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/autofe/timeseries/trend.py +0 -0
  28. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/autofe/timeseries/volatility.py +0 -0
  29. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/autofe/unary.py +0 -0
  30. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/autofe/utils.py +0 -0
  31. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/autofe/vector.py +0 -0
  32. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/data_source/__init__.py +0 -0
  33. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/data_source/data_source_publisher.py +0 -0
  34. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/dataset.py +0 -0
  35. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/errors.py +0 -0
  36. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/http.py +0 -0
  37. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/mdc/__init__.py +0 -0
  38. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/mdc/context.py +0 -0
  39. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/metadata.py +0 -0
  40. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/metrics.py +0 -0
  41. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/normalizer/__init__.py +0 -0
  42. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/normalizer/normalize_utils.py +0 -0
  43. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/resource_bundle/__init__.py +0 -0
  44. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/resource_bundle/exceptions.py +0 -0
  45. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/resource_bundle/strings.properties +0 -0
  46. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/resource_bundle/strings_widget.properties +0 -0
  47. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/sampler/__init__.py +0 -0
  48. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/sampler/base.py +0 -0
  49. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/sampler/random_under_sampler.py +0 -0
  50. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/sampler/utils.py +0 -0
  51. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/search_task.py +0 -0
  52. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/spinner.py +0 -0
  53. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/utils/Roboto-Regular.ttf +0 -0
  54. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/utils/__init__.py +0 -0
  55. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/utils/base_search_key_detector.py +0 -0
  56. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/utils/blocked_time_series.py +0 -0
  57. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/utils/config.py +0 -0
  58. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/utils/country_utils.py +0 -0
  59. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/utils/custom_loss_utils.py +0 -0
  60. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/utils/cv_utils.py +0 -0
  61. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/utils/datetime_utils.py +0 -0
  62. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/utils/deduplicate_utils.py +0 -0
  63. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/utils/display_utils.py +0 -0
  64. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/utils/email_utils.py +0 -0
  65. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/utils/fallback_progress_bar.py +0 -0
  66. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/utils/feature_info.py +0 -0
  67. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/utils/format.py +0 -0
  68. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/utils/hash_utils.py +0 -0
  69. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/utils/ip_utils.py +0 -0
  70. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/utils/mstats.py +0 -0
  71. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/utils/phone_utils.py +0 -0
  72. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/utils/postal_code_utils.py +0 -0
  73. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/utils/progress_bar.py +0 -0
  74. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/utils/psi.py +0 -0
  75. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/utils/sample_utils.py +0 -0
  76. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/utils/sklearn_ext.py +0 -0
  77. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/utils/sort.py +0 -0
  78. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/utils/target_utils.py +0 -0
  79. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/utils/track_info.py +0 -0
  80. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/utils/ts_utils.py +0 -0
  81. {upgini-1.2.135a1 → upgini-1.2.135a2}/src/upgini/utils/warning_counter.py +0 -0
  82. {upgini-1.2.135a1 → upgini-1.2.135a2}/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.135a1
3
+ Version: 1.2.135a2
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.135a2"
@@ -1047,7 +1047,8 @@ class FeaturesEnricher(TransformerMixin):
1047
1047
  with Spinner():
1048
1048
  self._check_train_and_eval_target_distribution(y_sorted, fitting_eval_set_dict)
1049
1049
 
1050
- has_date = self._get_date_column(search_keys) is not None
1050
+ date_col = self._get_date_column(search_keys)
1051
+ has_date = date_col is not None and date_col in validated_X.columns
1051
1052
  model_task_type = self.model_task_type or define_task(y_sorted, has_date, self.logger, silent=True)
1052
1053
  cat_features = list(set(client_cat_features + cat_features_from_backend))
1053
1054
  has_time = has_date and isinstance(_cv, TimeSeriesSplit) or isinstance(_cv, BlockedTimeSeriesSplit)
@@ -1323,7 +1324,7 @@ class FeaturesEnricher(TransformerMixin):
1323
1324
  search_keys = {str(k): v for k, v in search_keys.items()}
1324
1325
 
1325
1326
  date_column = self._get_date_column(search_keys)
1326
- has_date = date_column is not None
1327
+ has_date = date_column is not None and date_column in validated_X.columns
1327
1328
  if not has_date:
1328
1329
  self.logger.info("No date column for OOT PSI calculation")
1329
1330
  return
@@ -2087,7 +2088,8 @@ class FeaturesEnricher(TransformerMixin):
2087
2088
  search_keys = self.fit_search_keys.copy()
2088
2089
 
2089
2090
  rows_to_drop = None
2090
- has_date = self._get_date_column(search_keys) is not None
2091
+ date_column = self._get_date_column(search_keys)
2092
+ has_date = date_column is not None and date_column in validated_X.columns
2091
2093
  self.model_task_type = self.model_task_type or define_task(
2092
2094
  self.df_with_original_index[TARGET], has_date, self.logger, silent=True
2093
2095
  )
@@ -2954,7 +2956,10 @@ if response.status_code == 200:
2954
2956
  is_transform: bool = False,
2955
2957
  ):
2956
2958
  fit_input_columns = [c.originalName for c in self._search_task.get_file_metadata(trace_id).columns]
2957
- new_columns_on_transform = [c for c in validated_Xy.columns if c not in fit_input_columns]
2959
+ original_dropped_features = [self.fit_columns_renaming.get(c, c) for c in self.fit_dropped_features]
2960
+ new_columns_on_transform = [
2961
+ c for c in validated_Xy.columns if c not in fit_input_columns and c not in original_dropped_features
2962
+ ]
2958
2963
 
2959
2964
  selected_generated_features = [c for c in generated_features if c in self.feature_names_]
2960
2965
  if keep_input is True:
@@ -3129,7 +3134,7 @@ if response.status_code == 200:
3129
3134
  self.fit_search_keys = self.__prepare_search_keys(df, self.fit_search_keys, is_demo_dataset)
3130
3135
 
3131
3136
  maybe_date_column = SearchKey.find_key(self.fit_search_keys, [SearchKey.DATE, SearchKey.DATETIME])
3132
- has_date = maybe_date_column is not None
3137
+ has_date = maybe_date_column is not None and maybe_date_column in validated_X.columns
3133
3138
 
3134
3139
  self.model_task_type = self.model_task_type or define_task(validated_y, has_date, self.logger)
3135
3140
 
@@ -3763,7 +3768,8 @@ if response.status_code == 200:
3763
3768
  if eval_set is None:
3764
3769
  return None
3765
3770
  validated_eval_set = []
3766
- has_date = self._get_date_column(self.search_keys) is not None
3771
+ date_col = self._get_date_column(self.search_keys)
3772
+ has_date = date_col is not None and date_col in X.columns
3767
3773
  for idx, eval_pair in enumerate(eval_set):
3768
3774
  validated_pair = self._validate_eval_set_pair(X, eval_pair)
3769
3775
  if validated_pair[1].isna().all():
@@ -44,12 +44,14 @@ class FeaturesValidator:
44
44
  else:
45
45
  empty_or_constant_features.append(f)
46
46
 
47
+ columns_renaming = columns_renaming or {}
48
+
47
49
  if one_hot_encoded_features:
48
- msg = bundle.get("one_hot_encoded_features").format(one_hot_encoded_features)
50
+ msg = bundle.get("one_hot_encoded_features").format(
51
+ [columns_renaming.get(f, f) for f in one_hot_encoded_features]
52
+ )
49
53
  warnings.append(msg)
50
54
 
51
- columns_renaming = columns_renaming or {}
52
-
53
55
  if empty_or_constant_features:
54
56
  msg = bundle.get("empty_or_contant_features").format(
55
57
  [columns_renaming.get(f, f) for f in empty_or_constant_features]
@@ -1 +0,0 @@
1
- __version__ = "1.2.135a1"
File without changes
File without changes
File without changes
File without changes
File without changes