upgini 1.2.157a4196.dev2__tar.gz → 1.2.157a4196.dev3__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 (85) hide show
  1. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/PKG-INFO +3 -3
  2. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/README.md +2 -2
  3. upgini-1.2.157a4196.dev3/src/upgini/__about__.py +1 -0
  4. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/dataset.py +2 -11
  5. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/features_enricher.py +8 -0
  6. upgini-1.2.157a4196.dev3/src/upgini/utils/pyarrow_utils.py +28 -0
  7. upgini-1.2.157a4196.dev2/src/upgini/__about__.py +0 -1
  8. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/.gitignore +0 -0
  9. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/LICENSE +0 -0
  10. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/pyproject.toml +0 -0
  11. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/__init__.py +0 -0
  12. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/ads.py +0 -0
  13. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/ads_management/__init__.py +0 -0
  14. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/ads_management/ads_manager.py +0 -0
  15. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/autofe/__init__.py +0 -0
  16. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/autofe/all_operators.py +0 -0
  17. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/autofe/binary.py +0 -0
  18. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/autofe/date.py +0 -0
  19. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/autofe/feature.py +0 -0
  20. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/autofe/groupby.py +0 -0
  21. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/autofe/operator.py +0 -0
  22. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/autofe/timeseries/__init__.py +0 -0
  23. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/autofe/timeseries/base.py +0 -0
  24. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/autofe/timeseries/cross.py +0 -0
  25. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/autofe/timeseries/delta.py +0 -0
  26. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/autofe/timeseries/lag.py +0 -0
  27. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/autofe/timeseries/roll.py +0 -0
  28. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/autofe/timeseries/trend.py +0 -0
  29. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/autofe/timeseries/volatility.py +0 -0
  30. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/autofe/unary.py +0 -0
  31. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/autofe/utils.py +0 -0
  32. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/autofe/vector.py +0 -0
  33. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/data_source/__init__.py +0 -0
  34. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/data_source/data_source_publisher.py +0 -0
  35. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/errors.py +0 -0
  36. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/http.py +0 -0
  37. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/mdc/__init__.py +0 -0
  38. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/mdc/context.py +0 -0
  39. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/metadata.py +0 -0
  40. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/metrics.py +0 -0
  41. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/normalizer/__init__.py +0 -0
  42. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/normalizer/normalize_utils.py +0 -0
  43. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/resource_bundle/__init__.py +0 -0
  44. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/resource_bundle/exceptions.py +0 -0
  45. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/resource_bundle/strings.properties +0 -0
  46. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/resource_bundle/strings_widget.properties +0 -0
  47. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/sampler/__init__.py +0 -0
  48. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/sampler/base.py +0 -0
  49. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/sampler/random_under_sampler.py +0 -0
  50. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/sampler/utils.py +0 -0
  51. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/search_task.py +0 -0
  52. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/spinner.py +0 -0
  53. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/utils/Roboto-Regular.ttf +0 -0
  54. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/utils/__init__.py +0 -0
  55. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/utils/base_search_key_detector.py +0 -0
  56. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/utils/blocked_time_series.py +0 -0
  57. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/utils/config.py +0 -0
  58. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/utils/country_utils.py +0 -0
  59. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/utils/cpu_utils.py +0 -0
  60. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/utils/custom_loss_utils.py +0 -0
  61. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/utils/cv_utils.py +0 -0
  62. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/utils/datetime_utils.py +0 -0
  63. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/utils/deduplicate_utils.py +0 -0
  64. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/utils/display_utils.py +0 -0
  65. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/utils/email_utils.py +0 -0
  66. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/utils/fallback_progress_bar.py +0 -0
  67. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/utils/feature_info.py +0 -0
  68. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/utils/features_validator.py +0 -0
  69. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/utils/format.py +0 -0
  70. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/utils/hash_utils.py +0 -0
  71. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/utils/ip_utils.py +0 -0
  72. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/utils/mstats.py +0 -0
  73. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/utils/one_hot_encoder.py +0 -0
  74. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/utils/phone_utils.py +0 -0
  75. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/utils/postal_code_utils.py +0 -0
  76. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/utils/progress_bar.py +0 -0
  77. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/utils/psi.py +0 -0
  78. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/utils/sample_utils.py +0 -0
  79. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/utils/sklearn_ext.py +0 -0
  80. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/utils/sort.py +0 -0
  81. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/utils/target_utils.py +0 -0
  82. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/utils/track_info.py +0 -0
  83. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/utils/ts_utils.py +0 -0
  84. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/src/upgini/utils/warning_counter.py +0 -0
  85. {upgini-1.2.157a4196.dev2 → upgini-1.2.157a4196.dev3}/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.157a4196.dev2
3
+ Version: 1.2.157a4196.dev3
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/
@@ -203,10 +203,10 @@ Run [Simple sales prediction for retail stores](https://github.com/upgini/upgini
203
203
 
204
204
  ### 1. Install from PyPI
205
205
  ```python
206
- %pip install -U 'pyarrow>=23.0.1,<24' upgini
206
+ %pip install upgini
207
207
  ```
208
208
 
209
- In Colab or Jupyter, **restart the runtime after install** before importing upgini. Otherwise pyarrow may fail with a binary incompatibility error.
209
+ In Colab, it is recommended to **restart the runtime after install** before importing upgini. Otherwise pyarrow may fail with a binary incompatibility error.
210
210
  <details>
211
211
  <summary>
212
212
  🐳 <b>Docker-way</b>
@@ -158,10 +158,10 @@ Run [Simple sales prediction for retail stores](https://github.com/upgini/upgini
158
158
 
159
159
  ### 1. Install from PyPI
160
160
  ```python
161
- %pip install -U 'pyarrow>=23.0.1,<24' upgini
161
+ %pip install upgini
162
162
  ```
163
163
 
164
- In Colab or Jupyter, **restart the runtime after install** before importing upgini. Otherwise pyarrow may fail with a binary incompatibility error.
164
+ In Colab, it is recommended to **restart the runtime after install** before importing upgini. Otherwise pyarrow may fail with a binary incompatibility error.
165
165
  <details>
166
166
  <summary>
167
167
  🐳 <b>Docker-way</b>
@@ -0,0 +1 @@
1
+ __version__ = "1.2.157.a4196.dev3"
@@ -490,17 +490,8 @@ class Dataset:
490
490
  parquet_file_path = f"{tmp_dir}/{self.dataset_name}.parquet"
491
491
 
492
492
  # calculate deterministic digest for any environment
493
- try:
494
- import pyarrow as pa
495
- import pyarrow.parquet as pq
496
- except ValueError as exc:
497
- if "binary incompatibility" in str(exc) or "size changed" in str(exc):
498
- raise ImportError(
499
- "pyarrow was upgraded but the runtime still has an older version loaded. "
500
- "Restart the runtime after installing upgini (Runtime -> Restart session in Colab), "
501
- "then import upgini again."
502
- ) from exc
503
- raise
493
+ import pyarrow as pa
494
+ import pyarrow.parquet as pq
504
495
 
505
496
  table = pa.Table.from_pandas(df_without_fake_date, preserve_index=False)
506
497
  table = table.replace_schema_metadata({}) # remove all metadata
@@ -105,6 +105,7 @@ from upgini.utils.feature_info import FeatureInfo, _round_shap_value
105
105
  from upgini.utils.features_validator import FeaturesValidator
106
106
  from upgini.utils.format import Format
107
107
  from upgini.utils.hash_utils import file_hash, hash_input
108
+ from upgini.utils.pyarrow_utils import import_pyarrow_modules
108
109
  from upgini.utils.ip_utils import IpSearchKeyConverter
109
110
  from upgini.utils.phone_utils import PhoneSearchKeyDetector
110
111
  from upgini.utils.postal_code_utils import PostalCodeSearchKeyDetector
@@ -508,6 +509,7 @@ class FeaturesEnricher(TransformerMixin):
508
509
  stability_agg_func: str, optional (default="max")
509
510
  Function to aggregate stability values. Can be "max", "min", "mean".
510
511
  """
512
+ self._ensure_pyarrow_available()
511
513
  trace_id = self._get_trace_id()
512
514
  if self.print_trace_id:
513
515
  print(f"https://app.datadoghq.eu/logs?query=%40correlation_id%3A{trace_id}")
@@ -793,6 +795,7 @@ class FeaturesEnricher(TransformerMixin):
793
795
  X_new: pandas.DataFrame of shape (n_samples, n_features_new)
794
796
  Transformed dataframe, enriched with valuable features.
795
797
  """
798
+ self._ensure_pyarrow_available()
796
799
  self.warning_counter.reset()
797
800
  search_progress = SearchProgress(0.0, ProgressStage.START_TRANSFORM)
798
801
  if progress_callback is not None:
@@ -922,6 +925,7 @@ class FeaturesEnricher(TransformerMixin):
922
925
  Dataframe with metrics calculated on train and validation datasets.
923
926
  """
924
927
 
928
+ self._ensure_pyarrow_available()
925
929
  trace_id = self._get_trace_id()
926
930
  start_time = time.time()
927
931
  search_id = self.search_id or (self._search_task.search_task_id if self._search_task is not None else None)
@@ -1320,6 +1324,10 @@ class FeaturesEnricher(TransformerMixin):
1320
1324
  finally:
1321
1325
  self.logger.info(f"Calculating metrics elapsed time: {time.time() - start_time}")
1322
1326
 
1327
+ @staticmethod
1328
+ def _ensure_pyarrow_available() -> None:
1329
+ import_pyarrow_modules()
1330
+
1323
1331
  def _get_trace_id(self):
1324
1332
  if get_mdc_fields().get("correlation_id") is not None:
1325
1333
  return get_mdc_fields().get("correlation_id")
@@ -0,0 +1,28 @@
1
+ import warnings
2
+
3
+ PYARROW_RUNTIME_RESTART_MESSAGE = (
4
+ "pyarrow was upgraded but the runtime still has an older version loaded. "
5
+ "Restart the runtime after installing upgini (Runtime -> Restart session in Colab), "
6
+ "then import upgini again."
7
+ )
8
+
9
+
10
+ def is_pyarrow_binary_incompatibility(exc: BaseException) -> bool:
11
+ msg = str(exc).lower()
12
+ return "binary incompatibility" in msg or "size changed" in msg or "ipcreadoptions" in msg
13
+
14
+
15
+ def raise_pyarrow_runtime_error(exc: BaseException) -> None:
16
+ warnings.warn(PYARROW_RUNTIME_RESTART_MESSAGE, UserWarning, stacklevel=3)
17
+ raise ImportError(PYARROW_RUNTIME_RESTART_MESSAGE) from exc
18
+
19
+
20
+ def import_pyarrow_modules():
21
+ try:
22
+ import pyarrow as pa
23
+ import pyarrow.parquet as pq
24
+ except (ValueError, ImportError) as exc:
25
+ if is_pyarrow_binary_incompatibility(exc):
26
+ raise_pyarrow_runtime_error(exc)
27
+ raise
28
+ return pa, pq
@@ -1 +0,0 @@
1
- __version__ = "1.2.157.a4196.dev2"