upgini 1.1.280a3418.post4__tar.gz → 1.1.280a3418.post5__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 (64) hide show
  1. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/PKG-INFO +1 -1
  2. upgini-1.1.280a3418.post5/src/upgini/__about__.py +1 -0
  3. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/autofe/all_operands.py +3 -3
  4. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/autofe/date.py +32 -1
  5. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/autofe/unary.py +0 -23
  6. upgini-1.1.280a3418.post4/src/upgini/__about__.py +0 -1
  7. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/.gitignore +0 -0
  8. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/LICENSE +0 -0
  9. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/README.md +0 -0
  10. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/pyproject.toml +0 -0
  11. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/__init__.py +0 -0
  12. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/ads.py +0 -0
  13. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/ads_management/__init__.py +0 -0
  14. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/ads_management/ads_manager.py +0 -0
  15. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/autofe/__init__.py +0 -0
  16. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/autofe/binary.py +0 -0
  17. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/autofe/feature.py +0 -0
  18. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/autofe/groupby.py +0 -0
  19. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/autofe/operand.py +0 -0
  20. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/autofe/vector.py +0 -0
  21. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/data_source/__init__.py +0 -0
  22. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/data_source/data_source_publisher.py +0 -0
  23. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/dataset.py +0 -0
  24. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/errors.py +0 -0
  25. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/features_enricher.py +0 -0
  26. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/http.py +0 -0
  27. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/mdc/__init__.py +0 -0
  28. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/mdc/context.py +0 -0
  29. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/metadata.py +0 -0
  30. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/metrics.py +0 -0
  31. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/normalizer/__init__.py +0 -0
  32. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/normalizer/phone_normalizer.py +0 -0
  33. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/resource_bundle/__init__.py +0 -0
  34. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/resource_bundle/exceptions.py +0 -0
  35. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/resource_bundle/strings.properties +0 -0
  36. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/resource_bundle/strings_widget.properties +0 -0
  37. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/sampler/__init__.py +0 -0
  38. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/sampler/base.py +0 -0
  39. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/sampler/random_under_sampler.py +0 -0
  40. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/sampler/utils.py +0 -0
  41. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/search_task.py +0 -0
  42. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/spinner.py +0 -0
  43. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/utils/__init__.py +0 -0
  44. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/utils/base_search_key_detector.py +0 -0
  45. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/utils/blocked_time_series.py +0 -0
  46. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/utils/country_utils.py +0 -0
  47. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/utils/custom_loss_utils.py +0 -0
  48. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/utils/cv_utils.py +0 -0
  49. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/utils/datetime_utils.py +0 -0
  50. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/utils/deduplicate_utils.py +0 -0
  51. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/utils/display_utils.py +0 -0
  52. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/utils/email_utils.py +0 -0
  53. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/utils/fallback_progress_bar.py +0 -0
  54. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/utils/features_validator.py +0 -0
  55. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/utils/format.py +0 -0
  56. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/utils/ip_utils.py +0 -0
  57. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/utils/phone_utils.py +0 -0
  58. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/utils/postal_code_utils.py +0 -0
  59. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/utils/progress_bar.py +0 -0
  60. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/utils/sklearn_ext.py +0 -0
  61. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/utils/target_utils.py +0 -0
  62. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/utils/track_info.py +0 -0
  63. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/utils/warning_counter.py +0 -0
  64. {upgini-1.1.280a3418.post4 → upgini-1.1.280a3418.post5}/src/upgini/version_validator.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: upgini
3
- Version: 1.1.280a3418.post4
3
+ Version: 1.1.280a3418.post5
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.1.280a3418-5"
@@ -1,10 +1,10 @@
1
1
  from typing import Dict
2
2
 
3
3
  from upgini.autofe.binary import Add, Divide, Max, Min, Multiply, Sim, Subtract
4
- from upgini.autofe.date import DateDiff, DateDiffType2, DateListDiff, DateListDiffBounded
4
+ from upgini.autofe.date import DateDiff, DateDiffType2, DateListDiff, DateListDiffBounded, DatePercentile
5
5
  from upgini.autofe.groupby import GroupByThenAgg, GroupByThenRank
6
6
  from upgini.autofe.operand import Operand
7
- from upgini.autofe.unary import Abs, Bin, Floor, Freq, Log, Residual, Sigmoid, Sqrt, Square
7
+ from upgini.autofe.unary import Abs, Floor, Freq, Log, Residual, Sigmoid, Sqrt, Square
8
8
  from upgini.autofe.vector import Mean, Sum
9
9
 
10
10
  ALL_OPERANDS: Dict[str, Operand] = {
@@ -49,7 +49,7 @@ ALL_OPERANDS: Dict[str, Operand] = {
49
49
  DateListDiffBounded(diff_unit="Y", aggregation="count", lower_bound=30, upper_bound=45),
50
50
  DateListDiffBounded(diff_unit="Y", aggregation="count", lower_bound=45, upper_bound=60),
51
51
  DateListDiffBounded(diff_unit="Y", aggregation="count", lower_bound=60),
52
- Bin(),
52
+ DatePercentile(),
53
53
  ]
54
54
  }
55
55
 
@@ -1,4 +1,4 @@
1
- from typing import Any, Optional, Union
1
+ from typing import Any, List, Optional, Union
2
2
 
3
3
  import numpy as np
4
4
  import pandas as pd
@@ -116,3 +116,34 @@ class DateListDiffBounded(DateListDiff):
116
116
  def _agg(self, x):
117
117
  x = x[(x >= (self.lower_bound or -np.inf)) & (x < (self.upper_bound or np.inf))]
118
118
  return super()._agg(x)
119
+
120
+
121
+ class DatePercentile(PandasOperand):
122
+ name = "date_per"
123
+ is_binary = True
124
+ output_type = "float"
125
+
126
+ zero_month: Optional[int]
127
+ zero_year: Optional[int]
128
+ zero_bounds: Optional[List[float]]
129
+ step: int = 30
130
+
131
+ def calculate_binary(self, left: pd.Series, right: pd.Series) -> pd.Series:
132
+ # Assuming that left is a date column, right is a feature column
133
+ left = pd.to_datetime(left)
134
+ months = left.dt.month
135
+ years = left.dt.year
136
+
137
+ month_diffs = 12 * (years - (self.zero_year or 0)) + (months - (self.zero_month or 0))
138
+ bounds = month_diffs.apply(
139
+ lambda d: np.array(self.zero_bounds if self.zero_bounds is not None else []) + d * 30
140
+ )
141
+
142
+ return right.index.to_series().apply(lambda i: self.__perc(right[i], bounds[i]))
143
+
144
+ def __perc(self, f, bounds):
145
+ hit = np.where(f >= bounds)[0]
146
+ if hit.size > 0:
147
+ return np.max(hit) * 10
148
+ else:
149
+ return None
@@ -1,4 +1,3 @@
1
- from typing import Optional
2
1
  import numpy as np
3
2
  import pandas as pd
4
3
 
@@ -112,25 +111,3 @@ class Freq(PandasOperand):
112
111
  def calculate_unary(self, data: pd.Series) -> pd.Series:
113
112
  value_counts = data.value_counts(normalize=True)
114
113
  return self._loc(data, value_counts)
115
-
116
-
117
- class Bin(PandasOperand):
118
- name = "bin"
119
- is_unary = True
120
- output_type = "int"
121
- input_type = "discrete"
122
-
123
- zero_bound_low: Optional[int]
124
- zero_bound_high: Optional[int]
125
- step: Optional[int]
126
-
127
- def calculate_unary(self, data: pd.Series) -> pd.Series:
128
- high = self.zero_bound_high if self.zero_bound_high is not None else np.inf
129
- low = self.zero_bound_low if self.zero_bound_low is not None else -np.inf
130
- step = self.step or 1
131
-
132
- res = pd.Series(np.zeros(data.shape), index=data.index, dtype="int")
133
- res.update((data[data < low] - low) // step)
134
- res.update((data[data >= high] - high) // step + 1)
135
-
136
- return res
@@ -1 +0,0 @@
1
- __version__ = "1.1.280a3418-4"