messari package

Subpackages

Submodules

messari.dataloader module

This module is meant to contain the DataLoader class

class messari.dataloader.DataLoader(api_dict: Dict, taxonomy_dict: Dict)

Bases: object

This class is meant to represent a base wrapper around a variety of different API’s used as data sources

Methods

get_response(endpoint_url[, params, headers])

Gets response from endpoint and checks for HTTP errors when requesting data.

set_api_dict(api_dict)

Sets a new dictionary to be used as an API key pair

set_taxonomy_dict(taxonomy_dict)

Sets a new dictionary to be used for taxonomy translations

translate(input_slugs)

Wrapper around messari.utils.validate_input, validate input & check if it's supported by DeFi Llama

get_response(endpoint_url: str, params: Optional[Dict] = None, headers: Optional[Dict] = None) Dict

Gets response from endpoint and checks for HTTP errors when requesting data.

Parameters
  • endpoint_url – str URL API string.

  • params – dict Dictionary of query parameters.

  • headers – str: Dictionary of headers

Returns

JSON with requested data

:raises SystemError if HTTP error occurs

set_api_dict(api_dict: Dict) None

Sets a new dictionary to be used as an API key pair

Parameters

api_dict – Dict New API dictionary

set_taxonomy_dict(taxonomy_dict: Dict) None

Sets a new dictionary to be used for taxonomy translations

Parameters

taxonomy_dict – Dict New taxonomy dictionary

translate(input_slugs: Union[str, List]) Optional[List]

Wrapper around messari.utils.validate_input, validate input & check if it’s supported by DeFi Llama

Parameters
input_slugs: str, list

Single input slug string or list of input slugs (i.e. bitcoin)

Returns
List

list of validated & translated slugs

messari.utils module

This module is dedicated to utilites used by multiple classes

messari.utils.convert_flatten(response_json: Union[Dict, collections.abc.MutableMapping], parent_key: str = '', sep: str = '_') Dict

Collapse JSON response to one single dictionary.

Parameters
  • response_json – dict, MutableMapping JSON response from API call.

  • parent_key – str Key from original JSON

  • sep – str Delimiter for new keys

:return Collapsed JSON.ass

messari.utils.find_and_update_asset_field(asset_fields: List, field: str, updated_field: str) List

Find a updates fields list to concatenate drill metric or profile drill down in url.

Parameters
  • asset_fields – list List of asset fields.

  • field – str String of asset field to replace.

  • updated_field – str String to update asset field.

:return Updated asset field list.

messari.utils.get_taxonomy_dict(filename: str) Dict
messari.utils.time_filter_df(df_in: pandas.core.frame.DataFrame, start_date: Optional[Union[str, datetime.datetime]] = None, end_date: Optional[Union[str, datetime.datetime]] = None) pandas.core.frame.DataFrame

Convert filter timeseries indexed DataFrame

Parameters
  • df_in – pd.DataFrame Dataframe to filter

  • start_date – str Optional starting date for filter

  • end_date – str Optional end date for filter

Returns

pandas DataFrame

messari.utils.unpack_list_of_dicts(list_of_dicts: List) Dict

Unpack list of dictionaries to dictionary of dictionaries.

The keys of the object are assets and the value is the associated asset data.

Parameters

list_of_dicts – list List of python dictionaries

:return Dictionary of dictionaries

messari.utils.validate_asset_fields_list_order(asset_fields: List, field: str) List

Validates fields list order is arranged correctly when constructing url.

Parameters
  • asset_fields – list List of asset fields

  • field – str String of asset field

:return Arranged list of metrics

messari.utils.validate_datetime(datetime_input: Union[str, datetime.datetime]) Optional[datetime.date]

Checks if input is datetime.datetime.

Parameters

datetime_input – str, datetime.datetime Single string “YYYY-MM-DD” or datetime.datetime

:return datetime.datetime. :raises ValueError if input is neither a string (formatted correctly) or datetime.datetime

messari.utils.validate_input(asset_input: Union[str, List]) List[str]

Checks if input is list.

Parameters

asset_input – str, list Single asset slug string or list of asset slugs (i.e. BTC).

:return List of asset slugs. :raises ValueError if input is neither a string or list

messari.utils.validate_int(int_input: Union[int, List]) List[int]

Checks if input is list.

Parameters

asset_input – int, list Single int or list of ints

:return List of ints. :raises ValueError if input is neither a int or list

Module contents