upgini 1.2.156.dev1__tar.gz → 1.2.156.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.
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/PKG-INFO +1 -1
- upgini-1.2.156.dev3/src/upgini/__about__.py +1 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/autofe/date.py +37 -9
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/utils/feature_info.py +3 -1
- upgini-1.2.156.dev1/src/upgini/__about__.py +0 -1
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/.gitignore +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/LICENSE +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/README.md +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/pyproject.toml +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/__init__.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/ads.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/ads_management/__init__.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/ads_management/ads_manager.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/autofe/__init__.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/autofe/all_operators.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/autofe/binary.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/autofe/feature.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/autofe/groupby.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/autofe/operator.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/autofe/timeseries/__init__.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/autofe/timeseries/base.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/autofe/timeseries/cross.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/autofe/timeseries/delta.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/autofe/timeseries/lag.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/autofe/timeseries/roll.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/autofe/timeseries/trend.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/autofe/timeseries/volatility.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/autofe/unary.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/autofe/utils.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/autofe/vector.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/data_source/__init__.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/data_source/data_source_publisher.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/dataset.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/errors.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/features_enricher.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/http.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/mdc/__init__.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/mdc/context.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/metadata.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/metrics.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/normalizer/__init__.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/normalizer/normalize_utils.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/resource_bundle/__init__.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/resource_bundle/exceptions.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/resource_bundle/strings.properties +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/resource_bundle/strings_widget.properties +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/sampler/__init__.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/sampler/base.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/sampler/random_under_sampler.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/sampler/utils.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/search_task.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/spinner.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/utils/Roboto-Regular.ttf +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/utils/__init__.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/utils/base_search_key_detector.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/utils/blocked_time_series.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/utils/config.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/utils/country_utils.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/utils/custom_loss_utils.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/utils/cv_utils.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/utils/datetime_utils.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/utils/deduplicate_utils.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/utils/display_utils.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/utils/email_utils.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/utils/fallback_progress_bar.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/utils/features_validator.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/utils/format.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/utils/hash_utils.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/utils/ip_utils.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/utils/mstats.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/utils/one_hot_encoder.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/utils/phone_utils.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/utils/postal_code_utils.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/utils/progress_bar.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/utils/psi.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/utils/sample_utils.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/utils/sklearn_ext.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/utils/sort.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/utils/target_utils.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/utils/track_info.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/utils/ts_utils.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/utils/warning_counter.py +0 -0
- {upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/version_validator.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "1.2.156.dev3"
|
|
@@ -145,23 +145,51 @@ class DateListDiff(PandasOperator, DateDiffMixin, ParametrizedOperator):
|
|
|
145
145
|
return None
|
|
146
146
|
return cls(aggregation=aggregation)
|
|
147
147
|
|
|
148
|
+
@staticmethod
|
|
149
|
+
def _non_empty_list_mask(right: pd.Series) -> pd.Series:
|
|
150
|
+
values = right.to_numpy()
|
|
151
|
+
mask = np.empty(len(values), dtype=bool)
|
|
152
|
+
for i, value in enumerate(values):
|
|
153
|
+
if value is None or (isinstance(value, float) and np.isnan(value)):
|
|
154
|
+
mask[i] = False
|
|
155
|
+
elif isinstance(value, (list, tuple, np.ndarray)):
|
|
156
|
+
mask[i] = len(value) > 0
|
|
157
|
+
else:
|
|
158
|
+
mask[i] = False
|
|
159
|
+
return pd.Series(mask, index=right.index)
|
|
160
|
+
|
|
161
|
+
def _convert_date_lists(self, lists: pd.Series) -> pd.Series:
|
|
162
|
+
exploded = lists.explode()
|
|
163
|
+
converted = pd.to_datetime(exploded, unit=self.right_unit, errors="coerce")
|
|
164
|
+
return pd.Series(
|
|
165
|
+
{
|
|
166
|
+
idx: pd.arrays.DatetimeArray(values.to_numpy())
|
|
167
|
+
for idx, values in converted.groupby(converted.index, sort=False)
|
|
168
|
+
}
|
|
169
|
+
)
|
|
170
|
+
|
|
148
171
|
def calculate_binary(self, left: pd.Series, right: pd.Series) -> pd.Series:
|
|
149
172
|
if left.isna().all() or right.isna().all():
|
|
150
173
|
return pd.Series([None] * len(left), index=left.index, dtype=np.float64)
|
|
151
174
|
|
|
152
175
|
left = self._convert_to_date(left, self.left_unit)
|
|
153
|
-
right_mask =
|
|
176
|
+
right_mask = self._non_empty_list_mask(right)
|
|
154
177
|
mask = left.notna() & right.notna() & right_mask
|
|
155
|
-
right_masked = right[mask].apply(lambda x: pd.arrays.DatetimeArray(self._convert_to_date(x, self.right_unit)))
|
|
156
178
|
|
|
157
|
-
if
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
179
|
+
if not mask.any():
|
|
180
|
+
res = pd.Series(np.nan, index=left.index, dtype=np.float64)
|
|
181
|
+
if self.aggregation in _count_aggregations:
|
|
182
|
+
res[~right_mask] = 0.0
|
|
183
|
+
return res
|
|
184
|
+
|
|
185
|
+
masked_left = left[mask]
|
|
186
|
+
converted_lists = self._convert_date_lists(right[mask])
|
|
187
|
+
results = np.empty(len(masked_left), dtype=np.float64)
|
|
188
|
+
results[:] = np.nan
|
|
189
|
+
for i, (idx, left_date) in enumerate(masked_left.items()):
|
|
190
|
+
results[i] = self._agg(self._diff(left_date - converted_lists[idx]))
|
|
163
191
|
|
|
164
|
-
res_masked = pd.Series(
|
|
192
|
+
res_masked = pd.Series(results, index=masked_left.index)
|
|
165
193
|
res = res_masked.reindex(left.index.union(right.index))
|
|
166
194
|
if self.aggregation in _count_aggregations:
|
|
167
195
|
res[~right_mask] = 0.0
|
|
@@ -105,7 +105,9 @@ def _get_feature_sample(feature_meta: FeaturesMetadataV2, data: Optional[pd.Data
|
|
|
105
105
|
if len(data) > 3:
|
|
106
106
|
rand = np.random.RandomState(42)
|
|
107
107
|
unique_values = sorted(data[feature_meta.name].dropna().unique(), key=str)
|
|
108
|
-
feature_sample =
|
|
108
|
+
feature_sample = (
|
|
109
|
+
rand.choice(unique_values, 3, replace=False).tolist() if len(unique_values) > 3 else unique_values
|
|
110
|
+
)
|
|
109
111
|
else:
|
|
110
112
|
feature_sample = data[feature_meta.name].dropna().unique().tolist()
|
|
111
113
|
if len(feature_sample) > 0 and isinstance(feature_sample[0], float):
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "1.2.156.dev1"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{upgini-1.2.156.dev1 → upgini-1.2.156.dev3}/src/upgini/resource_bundle/strings_widget.properties
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|