evdsts 0.1.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.
@@ -0,0 +1,93 @@
1
+ # Project
2
+ **/test.py
3
+ **/evds_series_references.json
4
+ **/evds_api_key.json
5
+
6
+
7
+ # VS Code
8
+ .vscode/**/*
9
+
10
+ # Byte-compiled / optimized / DLL files
11
+ __pycache__/
12
+ *.py[cod]
13
+ *$py.class
14
+
15
+ # Distribution / packaging
16
+ .Python
17
+ build/
18
+ develop-eggs/
19
+ dist/
20
+ downloads/
21
+ eggs/
22
+ .eggs/
23
+ lib/
24
+ lib64/
25
+ parts/
26
+ sdist/
27
+ var/
28
+ wheels/
29
+ share/python-wheels/
30
+ *.egg-info/
31
+ .installed.cfg
32
+ *.egg
33
+ MANIFEST
34
+
35
+ # Installer logs
36
+ pip-log.txt
37
+ pip-delete-this-directory.txt
38
+
39
+ # Unit test / coverage reports
40
+ htmlcov/
41
+ .tox/
42
+ .nox/
43
+ .coverage
44
+ .coverage.*
45
+ .cache
46
+ nosetests.xml
47
+ coverage.xml
48
+ *.cover
49
+ *.py,cover
50
+ .hypothesis/
51
+ .pytest_cache/
52
+ cover/
53
+
54
+ # Translations
55
+ *.mo
56
+ *.pot
57
+
58
+ # Jupyter Notebook
59
+ .ipynb_checkpoints
60
+
61
+ # IPython
62
+ profile_default/
63
+ ipython_config.py
64
+
65
+ # Environments
66
+ .env
67
+ .venv
68
+ env/
69
+ venv/
70
+ ENV/
71
+ env.bak/
72
+ venv.bak/
73
+ .pixi/*
74
+ !.pixi/config.toml
75
+ pixi.lock
76
+ uv.lock
77
+
78
+ # Spyder project settings
79
+ .spyderproject
80
+ .spyproject
81
+
82
+ # Rope project settings
83
+ .ropeproject
84
+
85
+ # mkdocs documentation
86
+ /site
87
+
88
+ # mypy
89
+ .mypy_cache/
90
+ .dmypy.json
91
+ dmypy.json
92
+
93
+
@@ -0,0 +1,19 @@
1
+ Copyright (c) 2022 Burak ÇELİK
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to deal
5
+ in the Software without restriction, including without limitation the rights
6
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in
11
+ all copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ THE SOFTWARE.
evdsts-0.1.0/PKG-INFO ADDED
@@ -0,0 +1,168 @@
1
+ Metadata-Version: 2.4
2
+ Name: evdsts
3
+ Version: 0.1.0
4
+ Summary: A Python implementation for retrieving and transforming macroeconomic time series data from TCMB EVDS (CBRT EDDS) API.
5
+ Project-URL: Homepage, https://github.com/syncoding/evdsts
6
+ Project-URL: Documentation, https://github.com/syncoding/evdsts/blob/master/README_EN.md
7
+ Project-URL: Repository, https://github.com/syncoding/evdsts.git
8
+ Project-URL: Issues, https://github.com/syncoding/evdsts/issues
9
+ Project-URL: Changelog, https://github.com/syncoding/evdsts/blob/master/CHANGELOG.md
10
+ Author-email: Burak CELIK <synertic@gmail.com>
11
+ Maintainer-email: syncoding <synertic@gmail.com>
12
+ License-Expression: MIT
13
+ License-File: LICENSE.txt
14
+ Keywords: cbot,econometrics,edds,evds,macroeconomics,tcmb
15
+ Classifier: Development Status :: 5 - Production/Stable
16
+ Classifier: Intended Audience :: Developers
17
+ Classifier: Intended Audience :: Financial and Insurance Industry
18
+ Classifier: Intended Audience :: Science/Research
19
+ Classifier: License :: OSI Approved :: MIT License
20
+ Classifier: Natural Language :: English
21
+ Classifier: Natural Language :: Turkish
22
+ Classifier: Operating System :: OS Independent
23
+ Classifier: Programming Language :: Python :: 3 :: Only
24
+ Classifier: Programming Language :: Python :: 3.13
25
+ Classifier: Programming Language :: Python :: 3.14
26
+ Requires-Python: >=3.13
27
+ Requires-Dist: pandas>=3.0.0
28
+ Requires-Dist: requests>=2.32.5
29
+ Requires-Dist: tqdm>=4.67.3
30
+ Provides-Extra: excel
31
+ Requires-Dist: openpyxl; extra == 'excel'
32
+ Description-Content-Type: text/markdown
33
+
34
+ <p align="center">
35
+ <img src="https://github.com/syncoding/evdsts/blob/master/docs/images/evdsts.png?raw=true" width="120"/>
36
+ </p>
37
+
38
+ <h1 align="center">evdsts</h1>
39
+
40
+ <p align="center">
41
+ <strong>Macroeconomic time series toolkit for TCMB EVDS (CBRT EDDS)</strong>
42
+ </p>
43
+
44
+ <p align="center">
45
+ <a href="https://pypi.org/project/evdsts/"><img src="https://badge.fury.io/py/evdsts.svg" alt="PyPI version"></a>
46
+ <a href="https://pypistats.org/packages/evdsts"><img src="https://img.shields.io/pypi/dm/evdsts" alt="Downloads"></a>
47
+ <a href="https://pypi.org/project/evdsts/"><img src="https://img.shields.io/pypi/pyversions/evdsts" alt="Python Version"></a>
48
+ <a href="https://pypi.org/project/evdsts/"><img src="https://img.shields.io/pypi/status/evdsts" alt="Status"></a>
49
+ <a href="https://github.com/syncoding/evdsts/blob/master/LICENSE.txt"><img src="https://img.shields.io/github/license/syncoding/evdsts" alt="License"></a>
50
+ <a href="https://github.com/syncoding/evdsts/issues"><img src="https://img.shields.io/github/issues-raw/syncoding/evdsts" alt="Issues"></a>
51
+ <a href="https://github.com/syncoding/evdsts"><img src="https://img.shields.io/github/languages/top/syncoding/evdsts" alt="Top Language"></a>
52
+ <a href="https://github.com/syncoding/evdsts"><img src="https://img.shields.io/github/forks/syncoding/evdsts?style=social" alt="Forks"></a>
53
+ </p>
54
+
55
+ ---
56
+
57
+ ## The Purpose
58
+
59
+ `evdsts` is a Python implementation for retrieving and transforming macroeconomic time series data from
60
+ **The Central Bank of Republic of Turkiye** **Electronic Data Delivery System** **(EDDS)** API.
61
+ `evdsts` is designed for making both data retrieving and also time series analysis easy thanks to its
62
+ time series analysis ready outputs and other useful transformations.
63
+
64
+ ## Overview
65
+
66
+ `evdsts` is mainly designed for preparing the time series analysis ready datasets from the data
67
+ retrieved from **EDDS**. `evdsts` both makes the data retrieving easy and also allows you to start
68
+ working on data instantly with its advanced features that gives you complete control over the
69
+ retrieved data.
70
+
71
+ `evdsts` is consisted of two important classes:
72
+
73
+ | Class | Responsibility |
74
+ |:------|:---------------|
75
+ | **Connector** | Connecting to EDDS, data retrieving, data renaming, etc. |
76
+ | **Transformator** | Co-integrated transformations such as z-score, dummies, outliers, differencing and more. |
77
+
78
+ ### Key Features
79
+
80
+ - **In-situ search** -- search series by keywords without leaving Python; results are instant and local.
81
+ - **Analysis-ready outputs** -- every returned value is guaranteed to be a proper numeric or datetime type, never a raw string.
82
+ - **Auto time-series indexing** -- retrieved data are converted to real pandas DatetimeIndex series automatically (optional).
83
+ - **Reference names** -- assign memorable aliases like `usdtry` or `cppi` to complex EDDS codes; aliases are permanent and portable across projects.
84
+ - **Human-readable parameters** -- use `daily`, `quarterly`, `percent`, `diff`, `max` instead of cryptic API codes.
85
+ - **Pre-flight validation** -- many parameter errors are caught before any network request is made.
86
+ - **Extended transformations** -- log-returns, higher-order differences and other operations not natively supported by the API.
87
+ - **Flexible output** -- get results as `DataFrame`, `JSON` or `dict`; write to disk as CSV, JSON or XLS.
88
+ - **CLI support** -- rebuild search indexes from the command line with `evdsts build-index`.
89
+ - **Fully annotated** -- type hints and docstrings everywhere for IDE autocompletion and quick help.
90
+
91
+ ## Quick Start
92
+
93
+ ```python
94
+ from evdsts import Connector
95
+
96
+ connector = Connector("YOUR_API_KEY", language="EN")
97
+
98
+ # search for a series
99
+ connector.where("consumer price index")
100
+
101
+ # retrieve data
102
+ cpi = connector.get_series("TP.FE.OKTG01", start_date="01.01.2020")
103
+
104
+ # retrieve multiple series
105
+ rates = connector.get_series(
106
+ "TP.DK.USD.A.YTL, TP.DK.EUR.A.YTL",
107
+ start_date="01.01.2023",
108
+ frequency="M",
109
+ transformations="percent",
110
+ )
111
+ ```
112
+
113
+ ## CLI Usage
114
+
115
+ ```bash
116
+ # rebuild the search index
117
+ evdsts build-index --language ENG -y
118
+
119
+ # see all options
120
+ evdsts build-index --help
121
+ ```
122
+
123
+ ## Documentation
124
+
125
+ Please see [**THE USER MANUAL**](https://github.com/syncoding/evdsts/blob/master/docs/manuals/manual_en.md) for detailed explanations about how to get an API key from the EDDS and use `evdsts`.
126
+
127
+ ## Examples [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/syncoding/evdsts/blob/master/examples/examples.ipynb)
128
+
129
+ Download the [**Jupyter Notebook Application**](https://github.com/syncoding/evdsts/blob/master/examples) that covers the main use cases of `evdsts`,
130
+ or alternatively open it on **Google Colab** by clicking the *Open in Colab* badge above.
131
+
132
+ ## Installation
133
+
134
+ Stable version of `evdsts` is available on GitHub, PyPI and conda-forge.
135
+
136
+ ```bash
137
+ # PyPI
138
+ pip install evdsts
139
+
140
+ # GitHub
141
+ pip install git+https://github.com/syncoding/evdsts.git
142
+
143
+ # Conda
144
+ conda install evdsts -c conda-forge
145
+ ```
146
+
147
+ ## Dependencies
148
+
149
+ | Package | Version |
150
+ |:--------|:--------|
151
+ | Python | >= 3.11 |
152
+ | pandas | >= 3.0.0 |
153
+ | requests | >= 2.32.5 |
154
+ | tqdm | >= 4.67.3 |
155
+
156
+ > [openpyxl](https://pypi.org/project/openpyxl/) is additionally required if you want to write data in MS Excel format.
157
+
158
+ ## Links
159
+
160
+ | | |
161
+ |:--|:--|
162
+ | Source Code | [GitHub](https://github.com/syncoding/evdsts/blob/master/evdsts) |
163
+ | Changelog | [CHANGELOG.md](https://github.com/syncoding/evdsts/blob/master/CHANGELOG.md) |
164
+ | License | [MIT](https://github.com/syncoding/evdsts/blob/master/LICENSE.txt) |
165
+
166
+ ## Contact
167
+
168
+ <a href="mailto:synertic@gmail.com?"><img src="https://img.shields.io/badge/gmail-%23DD0031.svg?&style=for-the-badge&logo=gmail&logoColor=white"/></a>
@@ -0,0 +1,135 @@
1
+ <p align="center">
2
+ <img src="https://github.com/syncoding/evdsts/blob/master/docs/images/evdsts.png?raw=true" width="120"/>
3
+ </p>
4
+
5
+ <h1 align="center">evdsts</h1>
6
+
7
+ <p align="center">
8
+ <strong>Macroeconomic time series toolkit for TCMB EVDS (CBRT EDDS)</strong>
9
+ </p>
10
+
11
+ <p align="center">
12
+ <a href="https://pypi.org/project/evdsts/"><img src="https://badge.fury.io/py/evdsts.svg" alt="PyPI version"></a>
13
+ <a href="https://pypistats.org/packages/evdsts"><img src="https://img.shields.io/pypi/dm/evdsts" alt="Downloads"></a>
14
+ <a href="https://pypi.org/project/evdsts/"><img src="https://img.shields.io/pypi/pyversions/evdsts" alt="Python Version"></a>
15
+ <a href="https://pypi.org/project/evdsts/"><img src="https://img.shields.io/pypi/status/evdsts" alt="Status"></a>
16
+ <a href="https://github.com/syncoding/evdsts/blob/master/LICENSE.txt"><img src="https://img.shields.io/github/license/syncoding/evdsts" alt="License"></a>
17
+ <a href="https://github.com/syncoding/evdsts/issues"><img src="https://img.shields.io/github/issues-raw/syncoding/evdsts" alt="Issues"></a>
18
+ <a href="https://github.com/syncoding/evdsts"><img src="https://img.shields.io/github/languages/top/syncoding/evdsts" alt="Top Language"></a>
19
+ <a href="https://github.com/syncoding/evdsts"><img src="https://img.shields.io/github/forks/syncoding/evdsts?style=social" alt="Forks"></a>
20
+ </p>
21
+
22
+ ---
23
+
24
+ ## The Purpose
25
+
26
+ `evdsts` is a Python implementation for retrieving and transforming macroeconomic time series data from
27
+ **The Central Bank of Republic of Turkiye** **Electronic Data Delivery System** **(EDDS)** API.
28
+ `evdsts` is designed for making both data retrieving and also time series analysis easy thanks to its
29
+ time series analysis ready outputs and other useful transformations.
30
+
31
+ ## Overview
32
+
33
+ `evdsts` is mainly designed for preparing the time series analysis ready datasets from the data
34
+ retrieved from **EDDS**. `evdsts` both makes the data retrieving easy and also allows you to start
35
+ working on data instantly with its advanced features that gives you complete control over the
36
+ retrieved data.
37
+
38
+ `evdsts` is consisted of two important classes:
39
+
40
+ | Class | Responsibility |
41
+ |:------|:---------------|
42
+ | **Connector** | Connecting to EDDS, data retrieving, data renaming, etc. |
43
+ | **Transformator** | Co-integrated transformations such as z-score, dummies, outliers, differencing and more. |
44
+
45
+ ### Key Features
46
+
47
+ - **In-situ search** -- search series by keywords without leaving Python; results are instant and local.
48
+ - **Analysis-ready outputs** -- every returned value is guaranteed to be a proper numeric or datetime type, never a raw string.
49
+ - **Auto time-series indexing** -- retrieved data are converted to real pandas DatetimeIndex series automatically (optional).
50
+ - **Reference names** -- assign memorable aliases like `usdtry` or `cppi` to complex EDDS codes; aliases are permanent and portable across projects.
51
+ - **Human-readable parameters** -- use `daily`, `quarterly`, `percent`, `diff`, `max` instead of cryptic API codes.
52
+ - **Pre-flight validation** -- many parameter errors are caught before any network request is made.
53
+ - **Extended transformations** -- log-returns, higher-order differences and other operations not natively supported by the API.
54
+ - **Flexible output** -- get results as `DataFrame`, `JSON` or `dict`; write to disk as CSV, JSON or XLS.
55
+ - **CLI support** -- rebuild search indexes from the command line with `evdsts build-index`.
56
+ - **Fully annotated** -- type hints and docstrings everywhere for IDE autocompletion and quick help.
57
+
58
+ ## Quick Start
59
+
60
+ ```python
61
+ from evdsts import Connector
62
+
63
+ connector = Connector("YOUR_API_KEY", language="EN")
64
+
65
+ # search for a series
66
+ connector.where("consumer price index")
67
+
68
+ # retrieve data
69
+ cpi = connector.get_series("TP.FE.OKTG01", start_date="01.01.2020")
70
+
71
+ # retrieve multiple series
72
+ rates = connector.get_series(
73
+ "TP.DK.USD.A.YTL, TP.DK.EUR.A.YTL",
74
+ start_date="01.01.2023",
75
+ frequency="M",
76
+ transformations="percent",
77
+ )
78
+ ```
79
+
80
+ ## CLI Usage
81
+
82
+ ```bash
83
+ # rebuild the search index
84
+ evdsts build-index --language ENG -y
85
+
86
+ # see all options
87
+ evdsts build-index --help
88
+ ```
89
+
90
+ ## Documentation
91
+
92
+ Please see [**THE USER MANUAL**](https://github.com/syncoding/evdsts/blob/master/docs/manuals/manual_en.md) for detailed explanations about how to get an API key from the EDDS and use `evdsts`.
93
+
94
+ ## Examples [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/syncoding/evdsts/blob/master/examples/examples.ipynb)
95
+
96
+ Download the [**Jupyter Notebook Application**](https://github.com/syncoding/evdsts/blob/master/examples) that covers the main use cases of `evdsts`,
97
+ or alternatively open it on **Google Colab** by clicking the *Open in Colab* badge above.
98
+
99
+ ## Installation
100
+
101
+ Stable version of `evdsts` is available on GitHub, PyPI and conda-forge.
102
+
103
+ ```bash
104
+ # PyPI
105
+ pip install evdsts
106
+
107
+ # GitHub
108
+ pip install git+https://github.com/syncoding/evdsts.git
109
+
110
+ # Conda
111
+ conda install evdsts -c conda-forge
112
+ ```
113
+
114
+ ## Dependencies
115
+
116
+ | Package | Version |
117
+ |:--------|:--------|
118
+ | Python | >= 3.11 |
119
+ | pandas | >= 3.0.0 |
120
+ | requests | >= 2.32.5 |
121
+ | tqdm | >= 4.67.3 |
122
+
123
+ > [openpyxl](https://pypi.org/project/openpyxl/) is additionally required if you want to write data in MS Excel format.
124
+
125
+ ## Links
126
+
127
+ | | |
128
+ |:--|:--|
129
+ | Source Code | [GitHub](https://github.com/syncoding/evdsts/blob/master/evdsts) |
130
+ | Changelog | [CHANGELOG.md](https://github.com/syncoding/evdsts/blob/master/CHANGELOG.md) |
131
+ | License | [MIT](https://github.com/syncoding/evdsts/blob/master/LICENSE.txt) |
132
+
133
+ ## Contact
134
+
135
+ <a href="mailto:synertic@gmail.com?"><img src="https://img.shields.io/badge/gmail-%23DD0031.svg?&style=for-the-badge&logo=gmail&logoColor=white"/></a>
@@ -0,0 +1,3 @@
1
+ from evdsts.base.connecting import Connector
2
+ from evdsts.base.indexing import IndexBuilder
3
+ from evdsts.base.transforming import Transformator
File without changes