cryptodatapy.extract.adapters.base_adapter
Classes
The Universal Adapter Interface (Abstract Base Class). |
|
Specialized base class for vendors using external HTTP APIs (e.g., DefiLlama). |
|
Refactored Base for Library Wrappers. |
|
Specialized base class for vendors that scrape web data (e.g., HTML, XML). |
Module Contents
- class cryptodatapy.extract.adapters.base_adapter.BaseAdapter(config: Dict[str, Any] | None = None)
Bases:
abc.ABCThe Universal Adapter Interface (Abstract Base Class). All concrete adapter types must inherit from this and implement the abstract methods (e.g., get_data, metadata methods).
- _config
- abstractmethod get_data(request: Any) pandas.DataFrame
Fetch primary time series data based on the request.
- abstractmethod get_assets_info(as_list: bool = False, **kwargs) pandas.DataFrame | list
Fetch canonical asset metadata (e.g., protocols, chains, tickers).
- abstractmethod get_fields_info(as_list: bool = False, **kwargs) pandas.DataFrame | list
Fetch available field/metric definitions.
- class cryptodatapy.extract.adapters.base_adapter.BaseAPIAdapter(config: Dict[str, Any] | None = None)
Bases:
BaseAdapterSpecialized base class for vendors using external HTTP APIs (e.g., DefiLlama). Implements common API-specific logic (e.g., base URL, API key handling).
- _base_url
- _api_key
- _api_endpoints
- abstractmethod get_rate_limit_info() Any | None
Gets and updates the number of API calls made and remaining.
- abstractmethod _convert_params_to_vendor(data_req: cryptodatapy.core.data_request.DataRequest) Dict[str, Any]
CONVERT: Converts the DataRequest object into the vendor’s specific API parameters (URL/payload).
- abstractmethod _fetch_raw_data(vendor_params: Dict[str, Any]) Dict[str, Any] | List[Dict[str, Any]]
EXTRACT: Submits the vendor-specific parameters to the API and returns the raw response.
- abstractmethod _transform_raw_response(data_req: cryptodatapy.core.data_request.DataRequest, raw_data: Any) pandas.DataFrame
TRANSFORM: Processes the raw data response into the package’s standardized tidy DataFrame format.
- get_data(data_req: cryptodatapy.core.data_request.DataRequest) pandas.DataFrame
Executes the full ETL cycle: convert parameters, fetch raw data, and transform into tidy DataFrame. This method acts as the Template Method for the data retrieval process.
- class cryptodatapy.extract.adapters.base_adapter.BaseLibraryAdapter(config: Dict[str, Any] | None = None)
Bases:
BaseAdapterRefactored Base for Library Wrappers. Focuses on client management and bridging sync/async execution.
- _client = None
- abstractmethod _init_client(**kwargs) Any
Logic to instantiate the library’s client object.
- abstractmethod get_rate_limit_info() Any | None
- abstractmethod get_markets_info(as_list: bool = False, **kwargs) pandas.DataFrame | list
- abstractmethod _convert_params_to_vendor(data_req: cryptodatapy.core.data_request.DataRequest) Dict[str, Any]
- abstractmethod _fetch_raw_data(vendor_params: Dict[str, Any]) Any
- abstractmethod _transform_raw_response(data_req: cryptodatapy.core.data_request.DataRequest, raw_data: Any) pandas.DataFrame
- get_data(data_req: cryptodatapy.core.data_request.DataRequest) pandas.DataFrame
The Template Method for library-based data retrieval.
- class cryptodatapy.extract.adapters.base_adapter.BaseWebAdapter(config: Dict[str, Any] | None = None)
Bases:
BaseAdapterSpecialized base class for vendors that scrape web data (e.g., HTML, XML). Implements common logic for session management and anti-bot measures.