Skip to main content

A versatile interface for the 'EDDS' (EVDS) API of the Central Bank of the Republic of Türkiye (https://evds3.tcmb.gov.tr/dokumanlar). 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

Python package PyPI Supported Python Versions Downloads Downloads Downloads

Pypi Windows Server Pypi Ubuntu Server

Documentation

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

evdschat

package for extended usage of evdspy package. – An open-source RAG application for data aggregation with PyPI.

evdscpp

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 .env file exists in the current working directory, function does not need api_key parameter.

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.

Documentation

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

Documentation

Here is the documentation for other functions and details. Documentation

How to get an API key?

Get a CBRT EVDS API key https://evds3.tcmb.gov.tr/login

Main page of CBRT EVDS API

https://evds3.tcmb.gov.tr

CBRT EVDS API Docs

https://evds3.tcmb.gov.tr/dokumanlar

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

This version

2.0.6

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

evdspy-2.0.6.tar.gz (90.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

evdspy-2.0.6-py3-none-any.whl (136.2 kB view details)

Uploaded Python 3

File details

Details for the file evdspy-2.0.6.tar.gz.

File metadata

  • Download URL: evdspy-2.0.6.tar.gz
  • Upload date:
  • Size: 90.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for evdspy-2.0.6.tar.gz
Algorithm Hash digest
SHA256 29edf3246e8e6a73cadd516313b2fec2f2402f5e503a23e10e77ee5e287f481f
MD5 cf3eeefa4fbf83363ab351fac76cfea8
BLAKE2b-256 aad4c45e1ad1eed8e85c2a47f0563a028560ae03511bead66e9cfd3281988367

See more details on using hashes here.

File details

Details for the file evdspy-2.0.6-py3-none-any.whl.

File metadata

  • Download URL: evdspy-2.0.6-py3-none-any.whl
  • Upload date:
  • Size: 136.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for evdspy-2.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 d000bcdc090ebe0f99ea9bc4a4217e4dd7a46f47a734ec66fafd76633f6f57d3
MD5 8294bfcb371dfd2bbaa40044f8d4485f
BLAKE2b-256 82bd0cf693ddfbbd97b581a72bf55aa175cd9fd31fc3047e8a67c05ca238b88b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page