futureexpert 0.10.0__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.
- futureexpert-0.10.0/LICENSE +21 -0
- futureexpert-0.10.0/PKG-INFO +118 -0
- futureexpert-0.10.0/README.md +69 -0
- futureexpert-0.10.0/futureexpert/__about__.py +1 -0
- futureexpert-0.10.0/futureexpert/__init__.py +32 -0
- futureexpert-0.10.0/futureexpert/_future_api.py +510 -0
- futureexpert-0.10.0/futureexpert/_helpers.py +63 -0
- futureexpert-0.10.0/futureexpert/checkin.py +237 -0
- futureexpert-0.10.0/futureexpert/expert_client.py +853 -0
- futureexpert-0.10.0/futureexpert/forecast.py +796 -0
- futureexpert-0.10.0/futureexpert/matcher.py +204 -0
- futureexpert-0.10.0/futureexpert/plot.py +1295 -0
- futureexpert-0.10.0/futureexpert/pool.py +123 -0
- futureexpert-0.10.0/futureexpert/py.typed +0 -0
- futureexpert-0.10.0/futureexpert/shared_models.py +109 -0
- futureexpert-0.10.0/futureexpert.egg-info/PKG-INFO +118 -0
- futureexpert-0.10.0/futureexpert.egg-info/SOURCES.txt +20 -0
- futureexpert-0.10.0/futureexpert.egg-info/dependency_links.txt +1 -0
- futureexpert-0.10.0/futureexpert.egg-info/requires.txt +25 -0
- futureexpert-0.10.0/futureexpert.egg-info/top_level.txt +5 -0
- futureexpert-0.10.0/pyproject.toml +111 -0
- futureexpert-0.10.0/setup.cfg +4 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 prognostica GmbH
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: futureexpert
|
|
3
|
+
Version: 0.10.0
|
|
4
|
+
Summary: Forecasting has never been easier.
|
|
5
|
+
Author-email: prognostica GmbH <support@future-forecasting.de>
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/discovertomorrow/futureexpert
|
|
8
|
+
Keywords: time-series,forecast,ml
|
|
9
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
10
|
+
Classifier: Programming Language :: Python :: 3
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
15
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
16
|
+
Classifier: Intended Audience :: Developers
|
|
17
|
+
Classifier: Intended Audience :: Science/Research
|
|
18
|
+
Classifier: Topic :: Scientific/Engineering
|
|
19
|
+
Classifier: Topic :: Software Development
|
|
20
|
+
Classifier: Typing :: Typed
|
|
21
|
+
Requires-Python: >=3.9
|
|
22
|
+
Description-Content-Type: text/markdown
|
|
23
|
+
License-File: LICENSE
|
|
24
|
+
Requires-Dist: python-keycloak==3.12.0
|
|
25
|
+
Requires-Dist: tenacity>=8.2.0
|
|
26
|
+
Requires-Dist: httpx>=0.27.2
|
|
27
|
+
Requires-Dist: matplotlib>=3.8.0
|
|
28
|
+
Requires-Dist: plotly>=5.24.1
|
|
29
|
+
Requires-Dist: pydantic<3.0.0,>=2.5.0
|
|
30
|
+
Requires-Dist: numpy<2.0.0,>=1.22.4
|
|
31
|
+
Requires-Dist: pandas>=1.4.3
|
|
32
|
+
Requires-Dist: python-dotenv
|
|
33
|
+
Provides-Extra: dev
|
|
34
|
+
Requires-Dist: pytest; extra == "dev"
|
|
35
|
+
Requires-Dist: ipytest; extra == "dev"
|
|
36
|
+
Requires-Dist: isort; extra == "dev"
|
|
37
|
+
Requires-Dist: mypy==1.0.*; extra == "dev"
|
|
38
|
+
Requires-Dist: autopep8; extra == "dev"
|
|
39
|
+
Requires-Dist: cloudpickle; extra == "dev"
|
|
40
|
+
Requires-Dist: pdoc3; extra == "dev"
|
|
41
|
+
Requires-Dist: types-pkg-resources==0.1.3; extra == "dev"
|
|
42
|
+
Requires-Dist: types-python-dateutil; extra == "dev"
|
|
43
|
+
Requires-Dist: types-toml; extra == "dev"
|
|
44
|
+
Requires-Dist: jupyter==1.0.0; extra == "dev"
|
|
45
|
+
Requires-Dist: nbconvert==7.2.6; extra == "dev"
|
|
46
|
+
Requires-Dist: nbqa==1.5.3; extra == "dev"
|
|
47
|
+
Requires-Dist: python-dotenv; extra == "dev"
|
|
48
|
+
Dynamic: license-file
|
|
49
|
+
|
|
50
|
+
# futureEXPERT
|
|
51
|
+
|
|
52
|
+
futureEXPERT offers high-quality forecasts for data experts with ease, providing a complete workflow from data preparation to final forecast generation.
|
|
53
|
+
It is configured with best-practice defaults for immediate use.
|
|
54
|
+
|
|
55
|
+
The workflow is handled by four distinct modules:
|
|
56
|
+
|
|
57
|
+
1. *CHECK-IN*: Prepares your time series data. This module validates, cleans, and transforms your input data to ensure it's ready for forecasting.
|
|
58
|
+
2. *POOL*: Provides a library of curated external variables (e.g., economic indicators, weather data). You can search this continuously updated collection to find useful covariates for your forecast.
|
|
59
|
+
3. *MATCHER*: Ranks covariates to find the most impactful ones for your data. It takes your own covariates or variables from the *POOL*, determines their optimal time lag, and measures their predictive value against a baseline model.
|
|
60
|
+
4. *FORECAST*: Generates the final forecast. This module automatically selects the best model (from statistical, ML, and AI methods) for each time series and can incorporate the top-performing covariates identified by *MATCHER*.
|
|
61
|
+
|
|
62
|
+
The simplest workflow only contains *CHECK-IN* and *FORECAST* is described in the jupyter notebook [getting started](https://github.com/discovertomorrow/futureexpert/blob/main/notebooks/getting_started.ipynb).
|
|
63
|
+
|
|
64
|
+
In case you don't want to use this Python client or access futureEXPERT via API, check out our frontend solution [futureNOW](https://www.future-forecasting.de/).
|
|
65
|
+
|
|
66
|
+
## Registration
|
|
67
|
+
|
|
68
|
+
If you do not have an account for [future](https://now.future-forecasting.de) yet, click [here](https://launch.future-forecasting.de/) to register for a free account.
|
|
69
|
+
|
|
70
|
+
## Installation
|
|
71
|
+
|
|
72
|
+
In order to use futureEXPERT, you need a Python environment with Python 3.9 or higher.
|
|
73
|
+
|
|
74
|
+
The futureEXPERT package can be directly installed with `pip` from our GitHub repository.
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
pip install -U futureexpert
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Getting started
|
|
81
|
+
|
|
82
|
+
To get started with futureEXPERT we recommend checking out the jupyter notebook [getting started](https://github.com/discovertomorrow/futureexpert/blob/main/notebooks/getting_started.ipynb) to help you with your first steps. Also check our [quick start video tutorial](https://www.future-forecasting.de/video/getting-started/).
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
## Ready-made use case templates
|
|
86
|
+
|
|
87
|
+
Utilize our use case templates to get started with your own business application right away.
|
|
88
|
+
|
|
89
|
+
- [Demand Planning](https://github.com/discovertomorrow/futureexpert/blob/main/use_cases/demand_planning/demand_planning.ipynb)
|
|
90
|
+
- [Sales Forecasting](https://github.com/discovertomorrow/futureexpert/blob/main/use_cases/sales_forecasting/sales_forecasting.ipynb)
|
|
91
|
+
|
|
92
|
+
## Advanced usage
|
|
93
|
+
|
|
94
|
+
- [checkin configuration options](https://github.com/discovertomorrow/futureexpert/blob/main/notebooks/checkin_configuration_options.ipynb) - Different options to prepare your data to time series.
|
|
95
|
+
|
|
96
|
+
- [Advanced workflow FORECAST](https://github.com/discovertomorrow/futureexpert/blob/main/notebooks/advanced_workflow.ipynb) - For more control about the single steps for generating a forecast.
|
|
97
|
+
- [Using covariates for FORECAST](https://github.com/discovertomorrow/futureexpert/blob/main/notebooks/forecast_with_covariates.ipynb) - Create forecasts with covariates by using your own data of influencing factors.
|
|
98
|
+
- [Using covariates - MATCHER and FORECAST](https://github.com/discovertomorrow/futureexpert/blob/main/notebooks/cov_matcher_and_forecast.ipynb?ref_type=heads) - Using covariates: Leverage MATCHER to identify predictive covariates, get ranking of all covariates with the best time lag & incorporate the result into your FORECAST.
|
|
99
|
+
- [Using covariates from POOL](https://github.com/discovertomorrow/futureexpert/blob/main/notebooks/using_covariates_from_POOL.ipynb) - How to use potential influencing factors from POOL.
|
|
100
|
+
|
|
101
|
+
- [Working with results](https://github.com/discovertomorrow/futureexpert/blob/main/notebooks/working_with_results.ipynb) - Overview of forecast result functions (e.g. export, plotting) and how to use them; further detailed information about the results (e.g. summary of forecasting methods).
|
|
102
|
+
|
|
103
|
+
- [API documentation](https://discovertomorrow.github.io/futureEXPERT) - Further information about all features and configurations.
|
|
104
|
+
|
|
105
|
+
## Video tutorials
|
|
106
|
+
|
|
107
|
+
Check out our video tutorials for a quick introduction to various aspects of futureEXPERT.
|
|
108
|
+
|
|
109
|
+
- [Getting started](https://www.future-forecasting.de/video/getting-started/) from registration to first forecasts within minutes.
|
|
110
|
+
- [CHECK-IN](https://www.future-forecasting.de/video/check-in/) your data and create time series for your forecasting use case.
|
|
111
|
+
|
|
112
|
+
## Contributing
|
|
113
|
+
|
|
114
|
+
You can report issues or send pull requests in our [GitHub project](https://github.com/discovertomorrow/futureexpert).
|
|
115
|
+
|
|
116
|
+
## Wiki for prognostica employees
|
|
117
|
+
|
|
118
|
+
Further information for prognostica employees can be found [here](https://git.prognostica.de/prognostica/future/futureapp/futureexpert/-/wikis/home)
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# futureEXPERT
|
|
2
|
+
|
|
3
|
+
futureEXPERT offers high-quality forecasts for data experts with ease, providing a complete workflow from data preparation to final forecast generation.
|
|
4
|
+
It is configured with best-practice defaults for immediate use.
|
|
5
|
+
|
|
6
|
+
The workflow is handled by four distinct modules:
|
|
7
|
+
|
|
8
|
+
1. *CHECK-IN*: Prepares your time series data. This module validates, cleans, and transforms your input data to ensure it's ready for forecasting.
|
|
9
|
+
2. *POOL*: Provides a library of curated external variables (e.g., economic indicators, weather data). You can search this continuously updated collection to find useful covariates for your forecast.
|
|
10
|
+
3. *MATCHER*: Ranks covariates to find the most impactful ones for your data. It takes your own covariates or variables from the *POOL*, determines their optimal time lag, and measures their predictive value against a baseline model.
|
|
11
|
+
4. *FORECAST*: Generates the final forecast. This module automatically selects the best model (from statistical, ML, and AI methods) for each time series and can incorporate the top-performing covariates identified by *MATCHER*.
|
|
12
|
+
|
|
13
|
+
The simplest workflow only contains *CHECK-IN* and *FORECAST* is described in the jupyter notebook [getting started](https://github.com/discovertomorrow/futureexpert/blob/main/notebooks/getting_started.ipynb).
|
|
14
|
+
|
|
15
|
+
In case you don't want to use this Python client or access futureEXPERT via API, check out our frontend solution [futureNOW](https://www.future-forecasting.de/).
|
|
16
|
+
|
|
17
|
+
## Registration
|
|
18
|
+
|
|
19
|
+
If you do not have an account for [future](https://now.future-forecasting.de) yet, click [here](https://launch.future-forecasting.de/) to register for a free account.
|
|
20
|
+
|
|
21
|
+
## Installation
|
|
22
|
+
|
|
23
|
+
In order to use futureEXPERT, you need a Python environment with Python 3.9 or higher.
|
|
24
|
+
|
|
25
|
+
The futureEXPERT package can be directly installed with `pip` from our GitHub repository.
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
pip install -U futureexpert
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Getting started
|
|
32
|
+
|
|
33
|
+
To get started with futureEXPERT we recommend checking out the jupyter notebook [getting started](https://github.com/discovertomorrow/futureexpert/blob/main/notebooks/getting_started.ipynb) to help you with your first steps. Also check our [quick start video tutorial](https://www.future-forecasting.de/video/getting-started/).
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
## Ready-made use case templates
|
|
37
|
+
|
|
38
|
+
Utilize our use case templates to get started with your own business application right away.
|
|
39
|
+
|
|
40
|
+
- [Demand Planning](https://github.com/discovertomorrow/futureexpert/blob/main/use_cases/demand_planning/demand_planning.ipynb)
|
|
41
|
+
- [Sales Forecasting](https://github.com/discovertomorrow/futureexpert/blob/main/use_cases/sales_forecasting/sales_forecasting.ipynb)
|
|
42
|
+
|
|
43
|
+
## Advanced usage
|
|
44
|
+
|
|
45
|
+
- [checkin configuration options](https://github.com/discovertomorrow/futureexpert/blob/main/notebooks/checkin_configuration_options.ipynb) - Different options to prepare your data to time series.
|
|
46
|
+
|
|
47
|
+
- [Advanced workflow FORECAST](https://github.com/discovertomorrow/futureexpert/blob/main/notebooks/advanced_workflow.ipynb) - For more control about the single steps for generating a forecast.
|
|
48
|
+
- [Using covariates for FORECAST](https://github.com/discovertomorrow/futureexpert/blob/main/notebooks/forecast_with_covariates.ipynb) - Create forecasts with covariates by using your own data of influencing factors.
|
|
49
|
+
- [Using covariates - MATCHER and FORECAST](https://github.com/discovertomorrow/futureexpert/blob/main/notebooks/cov_matcher_and_forecast.ipynb?ref_type=heads) - Using covariates: Leverage MATCHER to identify predictive covariates, get ranking of all covariates with the best time lag & incorporate the result into your FORECAST.
|
|
50
|
+
- [Using covariates from POOL](https://github.com/discovertomorrow/futureexpert/blob/main/notebooks/using_covariates_from_POOL.ipynb) - How to use potential influencing factors from POOL.
|
|
51
|
+
|
|
52
|
+
- [Working with results](https://github.com/discovertomorrow/futureexpert/blob/main/notebooks/working_with_results.ipynb) - Overview of forecast result functions (e.g. export, plotting) and how to use them; further detailed information about the results (e.g. summary of forecasting methods).
|
|
53
|
+
|
|
54
|
+
- [API documentation](https://discovertomorrow.github.io/futureEXPERT) - Further information about all features and configurations.
|
|
55
|
+
|
|
56
|
+
## Video tutorials
|
|
57
|
+
|
|
58
|
+
Check out our video tutorials for a quick introduction to various aspects of futureEXPERT.
|
|
59
|
+
|
|
60
|
+
- [Getting started](https://www.future-forecasting.de/video/getting-started/) from registration to first forecasts within minutes.
|
|
61
|
+
- [CHECK-IN](https://www.future-forecasting.de/video/check-in/) your data and create time series for your forecasting use case.
|
|
62
|
+
|
|
63
|
+
## Contributing
|
|
64
|
+
|
|
65
|
+
You can report issues or send pull requests in our [GitHub project](https://github.com/discovertomorrow/futureexpert).
|
|
66
|
+
|
|
67
|
+
## Wiki for prognostica employees
|
|
68
|
+
|
|
69
|
+
Further information for prognostica employees can be found [here](https://git.prognostica.de/prognostica/future/futureapp/futureexpert/-/wikis/home)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.10.0"
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
|
|
3
|
+
from futureexpert.__about__ import __version__
|
|
4
|
+
from futureexpert.checkin import DataDefinition, FileSpecification, FilterSettings, TsCreationConfig
|
|
5
|
+
from futureexpert.expert_client import ExpertClient
|
|
6
|
+
from futureexpert.forecast import ForecastingConfig, MethodSelectionConfig, PreprocessingConfig, ReportConfig
|
|
7
|
+
from futureexpert.matcher import ActualsCovsConfiguration, LagSelectionConfig, MatcherConfig
|
|
8
|
+
from futureexpert.shared_models import MAX_TS_LEN_CONFIG, CovariateRef
|
|
9
|
+
|
|
10
|
+
__all__ = [
|
|
11
|
+
'DataDefinition',
|
|
12
|
+
'ExpertClient',
|
|
13
|
+
'FileSpecification',
|
|
14
|
+
'FilterSettings',
|
|
15
|
+
'ForecastingConfig',
|
|
16
|
+
'LagSelectionConfig',
|
|
17
|
+
'MatcherConfig',
|
|
18
|
+
'MethodSelectionConfig',
|
|
19
|
+
'PreprocessingConfig',
|
|
20
|
+
'ReportConfig',
|
|
21
|
+
'TsCreationConfig',
|
|
22
|
+
'MAX_TS_LEN_CONFIG',
|
|
23
|
+
'ActualsCovsConfiguration',
|
|
24
|
+
'CovariateRef'
|
|
25
|
+
]
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
logging.basicConfig(level=logging.INFO)
|
|
29
|
+
logging.getLogger("httpx").setLevel(logging.WARNING)
|
|
30
|
+
logging.getLogger("httpx").propagate = False
|
|
31
|
+
logging.getLogger("httpcore").setLevel(logging.WARNING)
|
|
32
|
+
logging.getLogger("httpcore").propagate = False
|