upgini 1.2.40__tar.gz → 1.2.41__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.
- {upgini-1.2.40 → upgini-1.2.41}/PKG-INFO +3 -2
- {upgini-1.2.40 → upgini-1.2.41}/README.md +2 -1
- upgini-1.2.41/src/upgini/__about__.py +1 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/features_enricher.py +24 -6
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/resource_bundle/strings.properties +1 -1
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/version_validator.py +1 -1
- upgini-1.2.40/src/upgini/__about__.py +0 -1
- {upgini-1.2.40 → upgini-1.2.41}/.gitignore +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/LICENSE +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/pyproject.toml +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/__init__.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/ads.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/ads_management/__init__.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/ads_management/ads_manager.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/autofe/__init__.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/autofe/all_operands.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/autofe/binary.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/autofe/date.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/autofe/feature.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/autofe/groupby.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/autofe/operand.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/autofe/unary.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/autofe/vector.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/data_source/__init__.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/data_source/data_source_publisher.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/dataset.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/errors.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/http.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/lazy_import.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/mdc/__init__.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/mdc/context.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/metadata.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/metrics.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/normalizer/__init__.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/normalizer/normalize_utils.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/resource_bundle/__init__.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/resource_bundle/exceptions.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/resource_bundle/strings_widget.properties +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/sampler/__init__.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/sampler/base.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/sampler/random_under_sampler.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/sampler/utils.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/search_task.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/spinner.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/utils/Roboto-Regular.ttf +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/utils/__init__.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/utils/base_search_key_detector.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/utils/blocked_time_series.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/utils/country_utils.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/utils/custom_loss_utils.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/utils/cv_utils.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/utils/datetime_utils.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/utils/deduplicate_utils.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/utils/display_utils.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/utils/email_utils.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/utils/fallback_progress_bar.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/utils/feature_info.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/utils/features_validator.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/utils/format.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/utils/ip_utils.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/utils/phone_utils.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/utils/postal_code_utils.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/utils/progress_bar.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/utils/sklearn_ext.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/utils/target_utils.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/utils/track_info.py +0 -0
- {upgini-1.2.40 → upgini-1.2.41}/src/upgini/utils/warning_counter.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: upgini
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.41
|
|
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/
|
|
@@ -164,11 +164,12 @@ Run [Feature search & generation notebook](https://github.com/upgini/upgini/blob
|
|
|
164
164
|
|
|
165
165
|
* The goal is to **predict future sales of different goods in stores** based on a 5-year history of sales.
|
|
166
166
|
* Kaggle Competition [Store Item Demand Forecasting Challenge](https://www.kaggle.com/c/demand-forecasting-kernels-only) is a product sales forecasting. The evaluation metric is [SMAPE](https://en.wikipedia.org/wiki/Symmetric_mean_absolute_percentage_error).
|
|
167
|
-
|
|
167
|
+
|
|
168
168
|
Run [Simple sales prediction for retail stores](https://github.com/upgini/upgini/blob/main/notebooks/kaggle_example.ipynb) inside your browser:
|
|
169
169
|
|
|
170
170
|
[](https://colab.research.google.com/github/upgini/upgini/blob/main/notebooks/kaggle_example.ipynb)
|
|
171
171
|
|
|
172
|
+
<!--
|
|
172
173
|
[](https://mybinder.org/v2/gh/upgini/upgini/main?urlpath=notebooks%2Fnotebooks%2Fkaggle_example.ipynb)
|
|
173
174
|
|
|
174
175
|
[](https://gitpod.io/#/github.com/upgini/upgini)
|
|
@@ -122,11 +122,12 @@ Run [Feature search & generation notebook](https://github.com/upgini/upgini/blob
|
|
|
122
122
|
|
|
123
123
|
* The goal is to **predict future sales of different goods in stores** based on a 5-year history of sales.
|
|
124
124
|
* Kaggle Competition [Store Item Demand Forecasting Challenge](https://www.kaggle.com/c/demand-forecasting-kernels-only) is a product sales forecasting. The evaluation metric is [SMAPE](https://en.wikipedia.org/wiki/Symmetric_mean_absolute_percentage_error).
|
|
125
|
-
|
|
125
|
+
|
|
126
126
|
Run [Simple sales prediction for retail stores](https://github.com/upgini/upgini/blob/main/notebooks/kaggle_example.ipynb) inside your browser:
|
|
127
127
|
|
|
128
128
|
[](https://colab.research.google.com/github/upgini/upgini/blob/main/notebooks/kaggle_example.ipynb)
|
|
129
129
|
|
|
130
|
+
<!--
|
|
130
131
|
[](https://mybinder.org/v2/gh/upgini/upgini/main?urlpath=notebooks%2Fnotebooks%2Fkaggle_example.ipynb)
|
|
131
132
|
|
|
132
133
|
[](https://gitpod.io/#/github.com/upgini/upgini)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "1.2.41"
|
|
@@ -2036,14 +2036,13 @@ class FeaturesEnricher(TransformerMixin):
|
|
|
2036
2036
|
file_metadata = self._search_task.get_file_metadata(str(uuid.uuid4()))
|
|
2037
2037
|
search_keys = file_metadata.search_types()
|
|
2038
2038
|
if SearchKey.IPV6_ADDRESS in search_keys:
|
|
2039
|
-
# search_keys.remove(SearchKey.IPV6_ADDRESS)
|
|
2040
2039
|
search_keys.pop(SearchKey.IPV6_ADDRESS, None)
|
|
2041
|
-
|
|
2040
|
+
original_names = {c.name: c.originalName for c in file_metadata.columns}
|
|
2042
2041
|
keys = (
|
|
2043
2042
|
"{"
|
|
2044
2043
|
+ ", ".join(
|
|
2045
2044
|
[
|
|
2046
|
-
f'"{key.name}": {{"name": "{name}", "value": "{key_example(key)}"}}'
|
|
2045
|
+
f'"{key.name}": {{"name": "{original_names.get(name, name)}", "value": "{key_example(key)}"}}'
|
|
2047
2046
|
for key, name in search_keys.items()
|
|
2048
2047
|
]
|
|
2049
2048
|
)
|
|
@@ -2063,10 +2062,27 @@ class FeaturesEnricher(TransformerMixin):
|
|
|
2063
2062
|
features_section = ""
|
|
2064
2063
|
|
|
2065
2064
|
search_id = self._search_task.search_task_id
|
|
2066
|
-
api_example = f"""
|
|
2065
|
+
api_example = f"""
|
|
2066
|
+
{Format.BOLD}Shell{Format.END}:
|
|
2067
|
+
|
|
2068
|
+
curl 'https://search.upgini.com/online/api/http_inference_trigger?search_id={search_id}' \\
|
|
2067
2069
|
-H 'Authorization: {self.api_key}' \\
|
|
2068
2070
|
-H 'Content-Type: application/json' \\
|
|
2069
|
-
-d '{{"search_keys": {keys}{features_section}, "only_online_sources": {str(only_online_sources).lower()}}}'
|
|
2071
|
+
-d '{{"search_keys": {keys}{features_section}, "only_online_sources": {str(only_online_sources).lower()}}}'
|
|
2072
|
+
|
|
2073
|
+
{Format.BOLD}Python{Format.END}:
|
|
2074
|
+
|
|
2075
|
+
import requests
|
|
2076
|
+
|
|
2077
|
+
response = requests.post(
|
|
2078
|
+
url='https://search.upgini.com/online/api/http_inference_trigger?search_id={search_id}',
|
|
2079
|
+
headers={{'Authorization': '{self.api_key}'}},
|
|
2080
|
+
json={{"search_keys": {keys}{features_section}, "only_online_sources": {only_online_sources}}}
|
|
2081
|
+
)
|
|
2082
|
+
if response.status_code == 200:
|
|
2083
|
+
print(response.json())
|
|
2084
|
+
"""
|
|
2085
|
+
|
|
2070
2086
|
return api_example
|
|
2071
2087
|
|
|
2072
2088
|
def _get_copy_of_runtime_parameters(self) -> RuntimeParameters:
|
|
@@ -2511,9 +2527,11 @@ class FeaturesEnricher(TransformerMixin):
|
|
|
2511
2527
|
def __is_registered(self) -> bool:
|
|
2512
2528
|
return self.api_key is not None and self.api_key != ""
|
|
2513
2529
|
|
|
2514
|
-
def __log_warning(self, message: str, show_support_link: bool = False):
|
|
2530
|
+
def __log_warning(self, message: str, show_support_link: bool = False, is_red=False):
|
|
2515
2531
|
warning_num = self.warning_counter.increment()
|
|
2516
2532
|
formatted_message = f"WARNING #{warning_num}: {message}\n"
|
|
2533
|
+
if is_red:
|
|
2534
|
+
formatted_message = Format.RED + formatted_message + Format.END
|
|
2517
2535
|
if show_support_link:
|
|
2518
2536
|
self.__display_support_link(formatted_message)
|
|
2519
2537
|
else:
|
|
@@ -216,7 +216,7 @@ imbalanced_target=\nTarget is imbalanced and will be undersampled. Frequency of
|
|
|
216
216
|
loss_selection_info=Using loss `{}` for feature selection
|
|
217
217
|
loss_calc_metrics_info=Using loss `{}` for metrics calculation with default estimator
|
|
218
218
|
forced_balance_undersample=For quick data retrieval, your dataset has been sampled. To use data search without data sampling please contact support (sales@upgini.com)
|
|
219
|
-
online_api_features_transform=Please note that some of the selected features {} are provided through a slow enrichment interface and are not available via transformation.
|
|
219
|
+
online_api_features_transform=Please note that some of the selected features {} are provided through a slow enrichment interface and are not available via transformation. \nHowever, they can be accessed via the API:
|
|
220
220
|
|
|
221
221
|
# Validation table
|
|
222
222
|
validation_column_name_header=Column name
|
|
@@ -39,7 +39,7 @@ def validate_version(logger: logging.Logger, warning_function: Optional[Callable
|
|
|
39
39
|
if current_version < latest_version:
|
|
40
40
|
msg = bundle.get("version_warning").format(current_version, latest_version)
|
|
41
41
|
if warning_function:
|
|
42
|
-
warning_function(msg)
|
|
42
|
+
warning_function(msg, is_red=True)
|
|
43
43
|
else:
|
|
44
44
|
logger.warning(msg)
|
|
45
45
|
print(msg)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "1.2.40"
|
|
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
|
|
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
|