upgini 1.2.157.dev2__tar.gz → 1.2.157.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 (84) hide show
  1. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/PKG-INFO +1 -1
  2. upgini-1.2.157.dev3/src/upgini/__about__.py +1 -0
  3. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/autofe/feature.py +11 -12
  4. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/autofe/operand.py +21 -0
  5. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/autofe/unary.py +1 -1
  6. upgini-1.2.157.dev2/src/upgini/__about__.py +0 -1
  7. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/.gitignore +0 -0
  8. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/LICENSE +0 -0
  9. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/README.md +0 -0
  10. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/pyproject.toml +0 -0
  11. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/__init__.py +0 -0
  12. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/ads.py +0 -0
  13. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/ads_management/__init__.py +0 -0
  14. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/ads_management/ads_manager.py +0 -0
  15. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/autofe/__init__.py +0 -0
  16. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/autofe/all_operators.py +0 -0
  17. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/autofe/binary.py +0 -0
  18. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/autofe/date.py +0 -0
  19. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/autofe/groupby.py +0 -0
  20. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/autofe/operator.py +0 -0
  21. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/autofe/timeseries/__init__.py +0 -0
  22. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/autofe/timeseries/base.py +0 -0
  23. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/autofe/timeseries/cross.py +0 -0
  24. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/autofe/timeseries/delta.py +0 -0
  25. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/autofe/timeseries/lag.py +0 -0
  26. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/autofe/timeseries/roll.py +0 -0
  27. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/autofe/timeseries/trend.py +0 -0
  28. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/autofe/timeseries/volatility.py +0 -0
  29. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/autofe/utils.py +0 -0
  30. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/autofe/vector.py +0 -0
  31. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/data_source/__init__.py +0 -0
  32. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/data_source/data_source_publisher.py +0 -0
  33. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/dataset.py +0 -0
  34. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/errors.py +0 -0
  35. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/features_enricher.py +0 -0
  36. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/http.py +0 -0
  37. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/mdc/__init__.py +0 -0
  38. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/mdc/context.py +0 -0
  39. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/metadata.py +0 -0
  40. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/metrics.py +0 -0
  41. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/normalizer/__init__.py +0 -0
  42. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/normalizer/normalize_utils.py +0 -0
  43. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/resource_bundle/__init__.py +0 -0
  44. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/resource_bundle/exceptions.py +0 -0
  45. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/resource_bundle/strings.properties +0 -0
  46. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/resource_bundle/strings_widget.properties +0 -0
  47. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/sampler/__init__.py +0 -0
  48. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/sampler/base.py +0 -0
  49. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/sampler/random_under_sampler.py +0 -0
  50. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/sampler/utils.py +0 -0
  51. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/search_task.py +0 -0
  52. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/spinner.py +0 -0
  53. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/utils/Roboto-Regular.ttf +0 -0
  54. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/utils/__init__.py +0 -0
  55. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/utils/base_search_key_detector.py +0 -0
  56. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/utils/blocked_time_series.py +0 -0
  57. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/utils/config.py +0 -0
  58. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/utils/country_utils.py +0 -0
  59. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/utils/custom_loss_utils.py +0 -0
  60. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/utils/cv_utils.py +0 -0
  61. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/utils/datetime_utils.py +0 -0
  62. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/utils/deduplicate_utils.py +0 -0
  63. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/utils/display_utils.py +0 -0
  64. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/utils/email_utils.py +0 -0
  65. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/utils/fallback_progress_bar.py +0 -0
  66. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/utils/feature_info.py +0 -0
  67. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/utils/features_validator.py +0 -0
  68. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/utils/format.py +0 -0
  69. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/utils/hash_utils.py +0 -0
  70. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/utils/ip_utils.py +0 -0
  71. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/utils/mstats.py +0 -0
  72. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/utils/one_hot_encoder.py +0 -0
  73. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/utils/phone_utils.py +0 -0
  74. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/utils/postal_code_utils.py +0 -0
  75. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/utils/progress_bar.py +0 -0
  76. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/utils/psi.py +0 -0
  77. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/utils/sample_utils.py +0 -0
  78. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/utils/sklearn_ext.py +0 -0
  79. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/utils/sort.py +0 -0
  80. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/utils/target_utils.py +0 -0
  81. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/utils/track_info.py +0 -0
  82. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/utils/ts_utils.py +0 -0
  83. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/utils/warning_counter.py +0 -0
  84. {upgini-1.2.157.dev2 → upgini-1.2.157.dev3}/src/upgini/version_validator.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: upgini
3
- Version: 1.2.157.dev2
3
+ Version: 1.2.157.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/
@@ -0,0 +1 @@
1
+ __version__ = "1.2.157.dev3"
@@ -8,7 +8,7 @@ import pandas as pd
8
8
  from pandas._typing import DtypeObj
9
9
 
10
10
  from upgini.autofe.all_operators import find_op
11
- from upgini.autofe.operand import CalculationContext, OperandValue
11
+ from upgini.autofe.operand import CalculationContext, OperandValue, operand_to_output
12
12
  from upgini.autofe.operator import Operator, PandasOperator
13
13
  from upgini.autofe.timeseries.base import TimeSeriesBase
14
14
  from upgini.autofe.utils import pydantic_dump_method, pydantic_parse_method
@@ -62,9 +62,14 @@ class Column:
62
62
  def infer_type(self, data: pd.DataFrame) -> DtypeObj:
63
63
  return data[self.name].dtype
64
64
 
65
- def calculate(self, data: Union[pd.DataFrame, CalculationContext]) -> pd.Series:
65
+ def calculate(
66
+ self,
67
+ data: Union[pd.DataFrame, CalculationContext],
68
+ preserve_kind: bool = False,
69
+ ) -> Union[pd.Series, OperandValue]:
66
70
  ctx = data if isinstance(data, CalculationContext) else CalculationContext.from_dataframe(data)
67
- return self._eval(ctx).as_series()
71
+ operand = self._eval(ctx)
72
+ return operand if preserve_kind else operand.as_series()
68
73
 
69
74
  def _eval(self, ctx: CalculationContext) -> OperandValue:
70
75
  self.data = ctx.resolve_operand(self.name)
@@ -245,10 +250,11 @@ class Feature:
245
250
  self,
246
251
  data: Union[pd.DataFrame, CalculationContext],
247
252
  is_root: bool = False,
248
- ) -> Union[pd.Series, pd.DataFrame]:
253
+ preserve_kind: bool = False,
254
+ ) -> Union[pd.Series, pd.DataFrame, OperandValue]:
249
255
  ctx = data if isinstance(data, CalculationContext) else CalculationContext.from_dataframe(data)
250
256
  result = self._eval(ctx)
251
- new_data = self._operand_to_output(result)
257
+ new_data = operand_to_output(result, preserve_kind=preserve_kind)
252
258
 
253
259
  if is_root:
254
260
  self.data = new_data
@@ -266,13 +272,6 @@ class Feature:
266
272
  return self.op.calculate(left=left, right=right)
267
273
  raise NotImplementedError(f"Unrecognized operator {self.op.name}.")
268
274
 
269
- @staticmethod
270
- def _operand_to_output(operand: OperandValue) -> Union[pd.Series, pd.DataFrame]:
271
- new_data = operand.as_series()
272
- if (str(new_data.dtype) == "category") | (str(new_data.dtype) == "object"):
273
- return new_data
274
- return new_data.replace([-np.inf, np.inf], np.nan)
275
-
276
275
  @staticmethod
277
276
  def check_xor(left: Union[Column, "Feature"], right: Union[Column, "Feature"]) -> bool:
278
277
  def _get_all_columns(feature: Union[Column, "Feature"]) -> List[str]:
@@ -94,6 +94,27 @@ class CalculationContext:
94
94
  raise KeyError(name)
95
95
 
96
96
 
97
+ def finalize_operand(operand: OperandValue) -> OperandValue:
98
+ if operand.kind == OperandKind.MATRIX:
99
+ matrix = np.where(np.isinf(operand.as_matrix()), np.nan, operand.as_matrix())
100
+ return OperandValue.from_matrix(matrix, index=operand.index, source=operand.source)
101
+ if operand.kind == OperandKind.ARRAY:
102
+ array = operand.data # type: ignore[assignment]
103
+ array = np.where(np.isinf(array), np.nan, array)
104
+ return OperandValue.from_array(array, index=operand.index, source=operand.source)
105
+ new_data = operand.as_series()
106
+ if (str(new_data.dtype) == "category") | (str(new_data.dtype) == "object"):
107
+ return OperandValue.from_series(new_data, source=operand.source)
108
+ return OperandValue.from_series(new_data.replace([-np.inf, np.inf], np.nan), source=operand.source)
109
+
110
+
111
+ def operand_to_output(operand: OperandValue, preserve_kind: bool = False) -> Union[pd.Series, OperandValue]:
112
+ finalized = finalize_operand(operand)
113
+ if preserve_kind:
114
+ return finalized
115
+ return finalized.as_series()
116
+
117
+
97
118
  def wrap_operand(
98
119
  result: Union[pd.Series, np.ndarray, "OperandValue"],
99
120
  source: Optional[str] = None,
@@ -162,7 +162,7 @@ class Embeddings(PandasOperator):
162
162
  name: str = "emb"
163
163
  is_unary: bool = True
164
164
  input_type: Optional[str] = "string"
165
- output_type: Optional[str] = "matrix"
165
+ output_type: Optional[str] = "vector"
166
166
 
167
167
 
168
168
  class Bin(PandasOperator):
@@ -1 +0,0 @@
1
- __version__ = "1.2.157.dev2"
File without changes
File without changes
File without changes