defillama_wrangler ================== .. py:module:: defillama_wrangler Attributes ---------- .. autoapisummary:: defillama_wrangler.logger Classes ------- .. autoapisummary:: defillama_wrangler.DefiLlamaWrangler Module Contents --------------- .. py:data:: logger .. py:class:: DefiLlamaWrangler(data_req, data_resp) Bases: :py:obj:`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. .. py:method:: wrangle_chains_info(remove_missing: Optional[list] = None, as_list: bool = False) -> Union[pandas.DataFrame, list] Wrangles DefiLlama chains info. :param remove_missing: List of columns to check for missing values to remove rows. :type remove_missing: Optional[list] :param as_list: If True, returns a list of chain names instead of DataFrame. :type as_list: bool :returns: Wrangled DataFrame or list of chain names. :rtype: Union[pd.DataFrame, list] .. py:method:: wrangle_protocols_info(remove_missing: Optional[list] = None, as_list: bool = False) -> Union[pandas.DataFrame, list] Wrangles DefiLlama protocols info. :param remove_missing: List of columns to check for missing values to remove rows. :type remove_missing: Optional[list] :param as_list: If True, returns a list of chain names instead of DataFrame. :type as_list: bool :returns: Wrangled DataFrame or list of chain names. :rtype: Union[pd.DataFrame, list] .. py:method:: wrangle_fees_info(remove_missing: Optional[list] = None, as_list: bool = False) -> Union[pandas.DataFrame, list] Wrangles DefiLlama fees info. :param remove_missing: List of columns to check for missing values to remove rows. :type remove_missing: Optional[list] :param as_list: If True, returns a list of protocol names instead of DataFrame. :type as_list: bool :returns: Wrangled DataFrame or list of protocol names. :rtype: Union[pd.DataFrame, list] .. py:method:: wrangle_stablecoins_info(remove_missing: Optional[list] = None, as_list: bool = False) -> Union[pandas.DataFrame, list] Wrangles DefiLlama stablecoins info. :param remove_missing: List of columns to check for missing values to remove rows. :type remove_missing: Optional[list] :param as_list: If True, returns a list of stablecoin names instead of DataFrame. :type as_list: bool :returns: Wrangled DataFrame or list of stablecoin names. :rtype: Union[pd.DataFrame, list] .. py:method:: wrangle_yields_info() -> Union[pandas.DataFrame, list] Wrangle DefiLlama yields info. :returns: Wrangled DataFrame of yields info. :rtype: Union[pd.DataFrame, list] .. py:method:: _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. :param raw_resp: Raw response dictionary containing 'metadata' and 'data' keys. :type raw_resp: Dict[str, Any] :returns: Processed DataFrame for the single time series. :rtype: pd.DataFrame .. py:method:: 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. :rtype: pd.DataFrame .. py:method:: wrangle() -> pandas.DataFrame Orchestrates the transformation of DefiLlama time series data. :returns: Wrangled dataframe into tidy data format. :rtype: pd.DataFrame