A versatile interface for the 'EDDS' (EVDS) API of the Central Bank of the Republic of Türkiye (https://evds2.tcmb.gov.tr/index.php?/evds/userDocs). This package allows users to easily access and manage economic data through a user-friendly menu function. It features a robust caching mechanism to enhance the efficiency of data requests by storing frequently accessed data for selected periods. Required API keys can be obtained by registering on the EVDS website.
Project description
Documentation
evdspy
installation
pip install evdspy -U
Updated on this version
-
get_series_exp function was added
see Documentation for its usage and result data types
other alternative libraries
evdschat
package for extended usage of evdspy package. – An open-source RAG application for data aggregation with PyPI.
evdscpp
C++ library to retrieve data from CBRT API.
package for extended usage of C++ header only package.
api_key usage with evdspy python package
api key will be read from .env file on load if available.
.env file [Alternative 1]
You may create a .env file in your work environment and write your api key as follows. Script will load your api key from this file on load if available.
# filename : `.env`
EVDS_API_KEY=AxByCzDsFoGmHeIgJaKrLbMaNgOe
Proxy from .env file
You may also define your proxies as below in your .env file.
Script will load your proxies from this file if they exist.
# example `.env` file content
EVDS_API_KEY=AxByCzDsFoGmHeIgJaKrLbMaNgOe
http_proxy=http://proxy.example.com:80
https_proxy=http://proxy.example.com:80
api_key inside get_series function [Alternative 2]
if
.envfile exists in the current working directory, function does not needapi_keyparameter.
from evdspy import get_series, default_start_date_fnc, default_end_date_fnc
df1 = get_series("bie_gsyhgycf", cache=False, api_key="YOUR_API_KEY_HERE")
template = """TP_GSYIH01_GY_CF
TP_GSYIH02_GY_CF
TP_GSYIH03_GY_CF
TP_GSYIH04_GY_CF
TP_GSYIH05_GY_CF
TP_GSYIH06_GY_CF
TP_GSYIH07_GY_CF
TP_GSYIH08_GY_CF
TP_GSYIH09_GY_CF
TP_GSYIH10_GY_CF
TP_GSYIH11_GY_CF
TP_GSYIH14_GY_CF
TP_GSYIH15_GY_CF
TP_GSYIH16_GY_CF
"""
df2 = get_series(template, debug=False, cache=False)
from evdspy import get_series , get_series_exp
CPI = """
TP.FG.J0 # Consumer Price Index
"""
inf_exp_market_part = """
TP.ENFBEK.PKA12ENF # Annual inflation expectations of market participants (12-month ahead, %)
"""
inf_exp_real_sector = """
TP.ENFBEK.IYA12ENF # Annual inflation expectations of real sector (12-month ahead, %)
"""
for index in [CPI, inf_exp_market_part, inf_exp_real_sector]:
res = get_series_exp(index , cache = True , start_date = "01-01-2010" )
print(res.data)
print(res.metadata)
datagroup names can be used to retrieve multiple series
from evdspy import get_series_exp
cpi_table = """
bie_tukfiy4 # CPI
"""
inf_exp_table = """
bie_enfbek # inflation expectations
"""
reserves_table = """
bie_abres2 # reserves
"""
def clean_name(name : str ) :
return name.replace("\n" , "" ).replace(" " , "")
for index in [cpi_table, inf_exp_table, reserves_table]:
res = get_series_exp(index, cache=True, start_date="01-01-2010")
print(res.data)
print(res.metadata)
res.to_excel(clean_name(index) + ".xlsx")
Some more examples
from evdspy import get_series
template = '''
TP.ODEMGZS.BDTTOPLAM
TP.ODEMGZS.ABD
TP.ODEMGZS.ARJANTIN
'''
df = get_series(index=template)
df1 = get_series(index=template, start_date="01-01-2000", frequency="monthly")
df2a = get_series(index='TP.ODEMGZS.BDTTOPLAM', start_date="01-01-2000", frequency="monthly", cache=True)
df2b = get_series(index=('TP.ODEMGZS.BDTTOPLAM', 'TP.ODEMGZS.ARJANTIN',),
start_date="01-01-2000",
frequency="monthly",
cache=True)
df3 = get_series(template, start_date="01-01-2000", frequency="monthly", aggregation="avg")
df4 = get_series(template, start_date="01-01-2000", frequency="monthly", aggregation=("avg", "min", "avg"))
df5 = get_series(template, proxy="http://proxy.example.com:80")
df6 = get_series(template, proxies={
'http': "http://proxy.example.com:80",
'https': "http://proxy.example.com:80",
})
get_series
all parameters of get_series function
from typing import Union
import pandas as pd
def get_series(
index: Union[str, tuple[str]],
start_date: str = '01-01-2000',
end_date: str = '01-01-2100',
frequency: str = None, # | monthly | weekly | annually | semimonthly | semiannually | business
formulas: str = None, # | level | percentage_change | difference |
# | year_to_year_percent_change | year_to_year_differences |
aggregation: str = None, # | avg |min | max | first | last | sum
cache: bool = False,
proxy: str = None,
proxies: dict = None,
debug: bool = False
) -> pd.DataFrame:
...
"""proxy
proxy = "http://proxy.example.com:80"
"""
"""proxies
proxies = {
'http': "http://proxy.example.com:80",
'https': "http://proxy.example.com:80",
}
"""
Documentation
Here is the documentation for other functions and details.
Menu
python script
from evdspy import menu
menu()
command line / Terminal
$ evdspy menu
Visual Menu to request data
About
evdspy is an open source python interface which helps you make efficient requests by caching results (storing a dict using hashable parameters in order to avoid redundant requests), it provides a user friendly menu to ask data from the institution's API service. It is a Python interface to make requests from (CBRT) EVDS API Server. Fast, efficient and user friendly solution. Caches results to avoid redundant requests. Creates excel files reading configuration text file that can be easily created from the menu or console. Provides visual menu to the user. It is extendable and importable for user's own python projects.
installation
pip install evdspy -U
importing
from evdspy import *
check()
get()
help_evds()
or import evdspy as ev ev.check() ev.get() ev.help_evds()
menu
from evdspy import *
menu()
or import evdspy as ev ev.menu() Menu function will display a friendly menu to setup project, creating output folders and some setup files to create some set of series to make a request and download from EVDS server save your api key to get data from EVDS. Than it will convert this data to a pandas dataframe and create some folders on your local area.
menu()
OPTION 2
FROM THE MENU
menu()
checking....
OPTION 3
FROM THE OS COMMAND LINE
(Windows Command line / Linux Terminal / Mac Terminal)
$ evdspy setup
--------------
creates initial folders for your environment to save data and caches
$ evdspy menu
--------------
Launces evdspy and loads the menu
$ evdspy create series
--------------
Creates series file (leaves untouched if exists)
$ evdspy help
--------------
shows help and some documentation from command line
$ evdspy create options
--------------
creates options on the current folder
$ evdspy get
--------------
makes request from EVDS API and creates excel files regarding information on your series file
$ evdspy save
--------------
asks for your api key to save a file in your environment named `APIKEY_FOLDER`
Documentation
Here is the documentation for other functions and details. Documentation
How to get an API key?
Get a CBRT EVDS API key https://evds2.tcmb.gov.tr/index.php?/evds/login
Main page of CBRT EVDS API
CBRT EVDS API Docs
https://evds2.tcmb.gov.tr/index.php?/evds/userDocs
About
evdspy is an open source python interface which helps you make efficient requests by caching results (storing a dict using hashable parameters in order to avoid redundant requests), it provides a user friendly menu to ask data from the institution's API service.
Disclaimer
We would like inform you that evdspy is not an official package affiliated or endorsed by the CBRT institution.
It is an open source project with MIT LICENSE therefore following the rules of its
general MIT LICENSE you may use this interface without creator's permission, extend it or write your own modules
by importing evdspy's modules, classes or functions to request data from the mentioned API Service following the
institution's rules and parameters.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file evdspy-1.1.42.tar.gz.
File metadata
- Download URL: evdspy-1.1.42.tar.gz
- Upload date:
- Size: 92.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
91b816c3a29d2d579f4154baac5cf6d80afab839941dfae18248e6b6a363a32c
|
|
| MD5 |
933edb6f3eb493eb43409acf3321e873
|
|
| BLAKE2b-256 |
89f69f5eb55fcdfab43cd97bcf4f190a1eebadf5d38b660eb0e693db829fd735
|
File details
Details for the file evdspy-1.1.42-py3-none-any.whl.
File metadata
- Download URL: evdspy-1.1.42-py3-none-any.whl
- Upload date:
- Size: 137.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e1813949c6624a17de1aaf4c03533d2d3f78fc417eff15178139951302f5116d
|
|
| MD5 |
b4083d485c836977a5bd18f4cc742c29
|
|
| BLAKE2b-256 |
ac87d28406bba614adace36529540b4723a70caaaabd2c5147636cb0eadb900c
|