Utilities Functions

utils.py: function

This module contains various utility functions.

src.utils.read_twelvedata_api_config_file(file_path: str)

Custom loading of twelvedata pi config file.

This transforms list values whom keys end with ‘_keys’ to set.

Parameters:

file_path (str) – The config file path.

Examples

>>> import pprint
>>> pprint.pprint((read_twelvedata_api_config_file("config/twelvedata_api_info.json")))
{'market_keys': {'code',
                 'country',
                 'is_market_open',
                 'name',
                 'time_after_open',
                 'time_to_close',
                 'time_to_open'},
 'market_url': 'https://api.twelvedata.com/market_state',
 'symbols_url': 'https://api.twelvedata.com/stocks',
 'timeseries_meta_keys': {'currency',
                          'exchange',
                          'exchange_timezone',
                          'interval',
                          'mic_code',
                          'symbol',
                          'type'},
 'timeseries_params': {'format': 'json',
                       'interval': '8h',
                       'outputsize': '5000'},
 'timeseries_url': 'https://api.twelvedata.com/time_series',
 'timeseries_values_keys': {'close',
                            'datetime',
                            'high',
                            'low',
                            'open',
                            'volume'}}
src.utils.series_to_apexcharts(timeseries: Series | None, performance: bool = True) List[List[int | float]]

Format data to send to the frontend.

This function transforms a pd.Series into a readable input for Apexcharts (frontend).

Parameters:
  • timeseries (pd.Series | None) – The timeseries.

  • performance (bool, optional) – If true, transforms data to create performance data, by default True

Returns:

The data formatted.

Return type:

List[List[int | float]]

Examples

>>> import datetime
>>> values = [3, 1, 2]
>>> dates = [
...     datetime.datetime(2023, 1, 1),
...     datetime.datetime(2023, 1, 3),
...     datetime.datetime(2023, 1, 2),
... ]
>>> timeseries = pd.Series(values, index = dates)
>>> series_to_apexcharts(timeseries, performance = False)
[[1672531200000, 3.0], [1672704000000, 1.0], [1672617600000, 2.0]]
>>> series_to_apexcharts(timeseries, performance = True)
[[1672531200000, 100.0], [1672704000000, 33.33], [1672617600000, 66.67]]