Source code for openclimate.Client

from dataclasses import dataclass
import pandas as pd
from typing import Optional

from .ActorOverview import ActorOverview
from .Base import Base
from .Emissions import Emissions
from .GDP import GDP
from .Population import Population
from .Search import Search
from .Targets import Targets


[docs]@dataclass class Client(Base): """OpenClimate API Python Client *If you are using Jupyter* either run ```python client = Client() client.jupyter ``` or manually add the following lines of code ```python import nest_asyncio nest_asyncio.apply() ``` """ @property def jupyter(self): import nest_asyncio nest_asyncio.apply()
[docs] def emissions( self, actor_id: str, datasource_id: Optional[str] = None, ignore_warnings: bool = False ) -> pd.DataFrame: """retreive actor emissions Args: actor_id (str|List[str]): code for actor your want to retrieve datasource_id (str): code emissions dataset ignore_warnings (bool): ignore warning messages Returns: DataFrame: data for each emissions dataset """ return Emissions().emissions(actor_id=actor_id, datasource_id=datasource_id, ignore_warnings=ignore_warnings)
[docs] def emissions_datasets(self, actor_id: str, ignore_warnings: bool = False) -> pd.DataFrame: """retreive actor emissions datasets Args: actor_id (str): code for actor your want to retrieve ignore_warnings (bool): ignore warning messages Returns: DataFrame: data of emission datasets """ return Emissions().datasets(actor_id=actor_id, ignore_warnings=ignore_warnings)
[docs] def targets(self, actor_id: str, ignore_warnings: bool = False) -> pd.DataFrame: """retreive actor targets Args: actor_id (str|List[str]): code for actor your want to retrieve ignore_warnings (bool): ignore warning messages Returns: DataFrame: dataframe of targets """ return Targets().targets(actor_id=actor_id, ignore_warnings=ignore_warnings)
[docs] def population(self, actor_id: str, ignore_warnings: bool = False) -> pd.DataFrame: """retreive actor population Args: actor_id (str|List[str]): code for actor your want to retrieve ignore_warnings (bool): ignore warning messages Returns: DataFrame: dataframe of population """ return Population().population(actor_id=actor_id, ignore_warnings=ignore_warnings)
[docs] def gdp(self, actor_id: str, ignore_warnings: bool = False) -> pd.DataFrame: """retreive actor GDP Args: actor_id (str|List[str]): code for actor your want to retrieve ignore_warnings (bool): ignore warning messages Returns: DataFrame: dataframe of GDP """ return GDP().gdp(actor_id=actor_id, ignore_warnings=ignore_warnings)
[docs] def parts( self, actor_id: str, part_type: Optional[str] = None, *args, **kwargs ) -> pd.DataFrame: """retreive actor parts returns subnational, cities, companies, etc. within an actor_id Args: actor_id (str|List[str]): code for actor your want to retrieve part_type (str): retrieve actors from administrative part ['planet', 'country', 'adm1', 'adm2', 'city', 'organization', 'site'] Returns: DataFrame: dataframe of actors parts """ return ActorOverview().parts(actor_id=actor_id, part_type=part_type)
[docs] def search( self, name: Optional[str] = None, identifier: Optional[str] = None, query: Optional[str] = None, language: Optional[str] = None, namespace: Optional[str] = None, *args, **kwargs, ) -> pd.DataFrame: """search actor names and identifiers Args: query (str): full search of identifiers and names that include the search parameter name (str): searches for actors with exact name match (e.g. "Minnesota") language (str, optional): two letter language code [requires name to be set] identifier (str): searches for actors with exact identifier code match (e.g. "US") namespace (str, optional): actor namespace code [requires identifier to be be set] Returns: DataFrame: dataframe of search results """ return Search().search( name=name, identifier=identifier, query=query, language=language, namespace=namespace, )
[docs] def country_codes( self, like: Optional[str] = None, case_sensitive: bool = False, regex: bool = True, *args, **kwargs, ) -> pd.DataFrame: """get country codes and filter using `like` regex phrases Args: like (str): phrase to search for in name (optional) case_senstive (bool): case senstive search [default: False] (optional) regex (bool): use regex with like [default: True] (optional) Returns: DataFrame: dataframe of country codes """ return ( ActorOverview() .country_codes( like=like, case_sensitive=case_sensitive, regex=regex) .reset_index(drop=True) )