defillama_wrangler

Attributes

logger

Classes

DefiLlamaWrangler

Handles DefiLlama API specific data wrangling for both time series data

Module Contents

defillama_wrangler.logger
class defillama_wrangler.DefiLlamaWrangler(data_req, data_resp)

Bases: cryptodatapy.transform.wranglers.base_wrangler.BaseDataWrangler

Handles DefiLlama API specific data wrangling for both time series data and metadata (info) responses. Inherits common data processing from BaseDataWrangler.

wrangle_chains_info(remove_missing: list | None = None, as_list: bool = False) pandas.DataFrame | list

Wrangles DefiLlama chains info.

Parameters:
  • remove_missing (Optional[list]) – List of columns to check for missing values to remove rows.

  • as_list (bool) – If True, returns a list of chain names instead of DataFrame.

Returns:

Wrangled DataFrame or list of chain names.

Return type:

Union[pd.DataFrame, list]

wrangle_protocols_info(remove_missing: list | None = None, as_list: bool = False) pandas.DataFrame | list

Wrangles DefiLlama protocols info.

Parameters:
  • remove_missing (Optional[list]) – List of columns to check for missing values to remove rows.

  • as_list (bool) – If True, returns a list of chain names instead of DataFrame.

Returns:

Wrangled DataFrame or list of chain names.

Return type:

Union[pd.DataFrame, list]

wrangle_fees_info(remove_missing: list | None = None, as_list: bool = False) pandas.DataFrame | list

Wrangles DefiLlama fees info.

Parameters:
  • remove_missing (Optional[list]) – List of columns to check for missing values to remove rows.

  • as_list (bool) – If True, returns a list of protocol names instead of DataFrame.

Returns:

Wrangled DataFrame or list of protocol names.

Return type:

Union[pd.DataFrame, list]

wrangle_stablecoins_info(remove_missing: list | None = None, as_list: bool = False) pandas.DataFrame | list

Wrangles DefiLlama stablecoins info.

Parameters:
  • remove_missing (Optional[list]) – List of columns to check for missing values to remove rows.

  • as_list (bool) – If True, returns a list of stablecoin names instead of DataFrame.

Returns:

Wrangled DataFrame or list of stablecoin names.

Return type:

Union[pd.DataFrame, list]

wrangle_yields_info() pandas.DataFrame | list

Wrangle DefiLlama yields info.

Returns:

Wrangled DataFrame of yields info.

Return type:

Union[pd.DataFrame, list]

_process_single_timeseries(raw_resp: Dict[str, Any]) pandas.DataFrame

Converts a single raw API response (dict) into a clean DataFrame with appropriate index and metadata columns.

Parameters:

raw_resp (Dict[str, Any]) – Raw response dictionary containing ‘metadata’ and ‘data’ keys.

Returns:

Processed DataFrame for the single time series.

Return type:

pd.DataFrame

wrangle_time_series() pandas.DataFrame

Processes the list of raw time series data responses and consolidates them into a single, tidy, multi-index DataFrame.

Returns:

Consolidated DataFrame of all time series data.

Return type:

pd.DataFrame

wrangle() pandas.DataFrame

Orchestrates the transformation of DefiLlama time series data.

Returns:

Wrangled dataframe into tidy data format.

Return type:

pd.DataFrame