upgini 1.2.161a4145.dev2__tar.gz → 1.2.161a4145.dev4__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 (86) hide show
  1. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/PKG-INFO +1 -1
  2. upgini-1.2.161a4145.dev4/src/upgini/__about__.py +1 -0
  3. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/features_enricher.py +15 -10
  4. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/search_task.py +4 -0
  5. upgini-1.2.161a4145.dev2/src/upgini/__about__.py +0 -1
  6. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/.gitignore +0 -0
  7. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/LICENSE +0 -0
  8. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/README.md +0 -0
  9. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/pyproject.toml +0 -0
  10. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/__init__.py +0 -0
  11. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/ads.py +0 -0
  12. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/ads_management/__init__.py +0 -0
  13. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/ads_management/ads_manager.py +0 -0
  14. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/autofe/__init__.py +0 -0
  15. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/autofe/all_operators.py +0 -0
  16. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/autofe/binary.py +0 -0
  17. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/autofe/date.py +0 -0
  18. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/autofe/feature.py +0 -0
  19. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/autofe/groupby.py +0 -0
  20. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/autofe/operand.py +0 -0
  21. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/autofe/operator.py +0 -0
  22. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/autofe/timeseries/__init__.py +0 -0
  23. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/autofe/timeseries/base.py +0 -0
  24. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/autofe/timeseries/cross.py +0 -0
  25. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/autofe/timeseries/delta.py +0 -0
  26. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/autofe/timeseries/lag.py +0 -0
  27. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/autofe/timeseries/roll.py +0 -0
  28. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/autofe/timeseries/trend.py +0 -0
  29. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/autofe/timeseries/volatility.py +0 -0
  30. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/autofe/unary.py +0 -0
  31. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/autofe/utils.py +0 -0
  32. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/autofe/vector.py +0 -0
  33. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/data_source/__init__.py +0 -0
  34. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/data_source/data_source_publisher.py +0 -0
  35. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/dataset.py +0 -0
  36. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/errors.py +0 -0
  37. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/http.py +0 -0
  38. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/mdc/__init__.py +0 -0
  39. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/mdc/context.py +0 -0
  40. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/metadata.py +0 -0
  41. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/metrics.py +0 -0
  42. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/normalizer/__init__.py +0 -0
  43. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/normalizer/normalize_utils.py +0 -0
  44. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/resource_bundle/__init__.py +0 -0
  45. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/resource_bundle/exceptions.py +0 -0
  46. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/resource_bundle/strings.properties +0 -0
  47. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/resource_bundle/strings_widget.properties +0 -0
  48. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/sampler/__init__.py +0 -0
  49. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/sampler/base.py +0 -0
  50. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/sampler/random_under_sampler.py +0 -0
  51. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/sampler/utils.py +0 -0
  52. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/spinner.py +0 -0
  53. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/utils/Roboto-Regular.ttf +0 -0
  54. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/utils/__init__.py +0 -0
  55. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/utils/base_search_key_detector.py +0 -0
  56. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/utils/blocked_time_series.py +0 -0
  57. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/utils/config.py +0 -0
  58. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/utils/country_utils.py +0 -0
  59. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/utils/cpu_utils.py +0 -0
  60. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/utils/custom_loss_utils.py +0 -0
  61. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/utils/cv_utils.py +0 -0
  62. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/utils/datetime_utils.py +0 -0
  63. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/utils/deduplicate_utils.py +0 -0
  64. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/utils/display_utils.py +0 -0
  65. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/utils/email_utils.py +0 -0
  66. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/utils/fallback_progress_bar.py +0 -0
  67. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/utils/feature_info.py +0 -0
  68. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/utils/features_validator.py +0 -0
  69. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/utils/format.py +0 -0
  70. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/utils/hash_utils.py +0 -0
  71. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/utils/ip_utils.py +0 -0
  72. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/utils/mstats.py +0 -0
  73. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/utils/one_hot_encoder.py +0 -0
  74. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/utils/phone_utils.py +0 -0
  75. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/utils/postal_code_utils.py +0 -0
  76. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/utils/progress_bar.py +0 -0
  77. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/utils/psi.py +0 -0
  78. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/utils/pyarrow_utils.py +0 -0
  79. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/utils/sample_utils.py +0 -0
  80. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/utils/sklearn_ext.py +0 -0
  81. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/utils/sort.py +0 -0
  82. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/utils/target_utils.py +0 -0
  83. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/utils/track_info.py +0 -0
  84. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/utils/ts_utils.py +0 -0
  85. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/src/upgini/utils/warning_counter.py +0 -0
  86. {upgini-1.2.161a4145.dev2 → upgini-1.2.161a4145.dev4}/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.161a4145.dev2
3
+ Version: 1.2.161a4145.dev4
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.161.a4145.dev4"
@@ -13,7 +13,7 @@ from copy import deepcopy
13
13
  from dataclasses import dataclass
14
14
  from pathlib import Path
15
15
  from threading import Thread
16
- from typing import Any, Callable, Dict, Optional
16
+ from typing import Any, Callable, Dict, Iterable, Optional
17
17
 
18
18
  import numpy as np
19
19
  import pandas as pd
@@ -1988,7 +1988,7 @@ class FeaturesEnricher(TransformerMixin):
1988
1988
  self,
1989
1989
  client_features: list[str],
1990
1990
  columns_renaming: dict[str, str],
1991
- available_columns: pd.Index,
1991
+ available_columns: Iterable[str],
1992
1992
  ) -> tuple[list[str], set[str]]:
1993
1993
  available_columns_set = set(available_columns)
1994
1994
  resolved: list[str] = []
@@ -2029,14 +2029,17 @@ class FeaturesEnricher(TransformerMixin):
2029
2029
  def _get_etalon_columns_renamed(
2030
2030
  self,
2031
2031
  columns_renaming: dict[str, str],
2032
- available_columns: pd.Index,
2032
+ available_columns: Iterable[str],
2033
2033
  ) -> list[str]:
2034
- if self.df_with_original_index is None:
2035
- return []
2036
- etalon_columns = [
2037
- c for c in self.df_with_original_index.columns if c not in [EVAL_SET_INDEX, TARGET]
2038
- ]
2039
- resolved, _ = self._resolve_client_features_in_sampled(etalon_columns, columns_renaming, available_columns)
2034
+ available = list(available_columns)
2035
+ if self.df_with_original_index is not None:
2036
+ etalon_columns = [
2037
+ c for c in self.df_with_original_index.columns if c not in [EVAL_SET_INDEX, TARGET]
2038
+ ]
2039
+ else:
2040
+ # Restored-from-search_id enrichers have no df_with_original_index; use sampled X columns.
2041
+ etalon_columns = [c for c in available if c not in [EVAL_SET_INDEX, TARGET]]
2042
+ resolved, _ = self._resolve_client_features_in_sampled(etalon_columns, columns_renaming, available)
2040
2043
  return resolved
2041
2044
 
2042
2045
  @staticmethod
@@ -2742,7 +2745,9 @@ class FeaturesEnricher(TransformerMixin):
2742
2745
  selecting_columns_renamed.append(renamed_column)
2743
2746
  seen_selecting_columns.add(renamed_column)
2744
2747
 
2745
- etalon_columns_renamed = self._get_etalon_columns_renamed(self.fit_columns_renaming or {}, enriched_Xy.columns)
2748
+ etalon_columns_renamed = self._get_etalon_columns_renamed(
2749
+ self.fit_columns_renaming or {}, enriched_Xy.columns
2750
+ )
2746
2751
  columns_for_metrics = []
2747
2752
  seen_metrics_columns = set()
2748
2753
  for column in etalon_columns_renamed + selecting_columns_renamed:
@@ -335,6 +335,10 @@ class SearchTask:
335
335
  def get_add_info(self, trace_id: str) -> AddInfo:
336
336
  add_info_dict = self.rest_client.get_add_info(trace_id, self.search_task_id)
337
337
  if add_info_dict is not None:
338
+ add_info_dict = dict(add_info_dict)
339
+ # Do not load autodetected_search_keys from add_info JSON since they won't be parsed correctly.
340
+ # We restore them later from FileMetadata.autodetectedSearchKeys instead.
341
+ add_info_dict.pop("autodetected_search_keys", None)
338
342
  return AddInfo(**add_info_dict)
339
343
  return AddInfo()
340
344
 
@@ -1 +0,0 @@
1
- __version__ = "1.2.161.a4145.dev2"