Data Handling Module

class DataHandler(*args, **kwargs)

Bases: object

Responsible for data handling. Including data collection and preparation.

async prepare_data(trading_pair: str, start_date: str, end_date: str, granularity: Granularity, list_of_indicators: Optional[list[source.indicators.indicator_handler_base.IndicatorHandlerBase]] = None) DataFrame

Collects data from coinbase API and extends it with list of indicators.

Parameters:
  • trading_pair (str) – String representing unique trading pair symbol.

  • start_date (str) – String representing date that collected data should start from.

  • end_date (str) – String representing date that collected data should finish at.

  • granularity (Granularity) – Enum specifying resolution of collected data - e.g. each 15 minutes or 1 hour or 6 hours is treated separately

  • list_of_indicators (list[IndicatorHandlerBase]) – List of indicators that should be calculated and added to the data. Defaults to None, which means no indicators will be added.

Raises:

RuntimeError – If given trading pair symbol is not recognized.

Returns:

Collected data extended with given indicators.

Return type:

(pd.DataFrame)

read_extended_data_from_csv_formatted_string_buffer(file_content_string_buffer: StringIO) tuple[pandas.core.frame.DataFrame, Optional[dict[str, Any]]]

Reads extended data from a CSV formatted string buffer.

Parameters:

file_content_string_buffer (io.StringIO) – StringIO buffer containing the CSV formatted data.

Returns:

Tuple containing the data frame with extended data and optional metadata.

Return type:

(tuple[pd.DataFrame, Optional[dict[str, Any]]])

register_api_data_collectors(api_data_collectors: list[source.data_handling.api_data_collector_base.ApiDataCollectorBase]) None

Registers API data collectors for data collection.

Parameters:

api_data_collectors (list[ApiDataCollectorBase]) – A list of instances of ApiDataCollectorBase or its subclasses.

save_extended_data_into_csv_formatted_string_buffer(data: DataFrame, meta_data: Optional[dict[str, Any]] = None) StringIO

Saves extended data into a CSV formatted string buffer.

Parameters:
  • data (pd.DataFrame) – Data frame to be saved.

  • meta_data (Optional[dict[str, Any]]) – Optional metadata to include in the CSV.

Returns:

StringIO buffer containing the CSV formatted data.

Return type:

(io.StringIO)