Source code for frost.models.sources_response

import pprint


[docs]class SourcesResponse(object): """ Response object for source endpoint """ def __init__(self, sources_json): self.sources = sources_json
[docs] def to_str(self): """Returns the string representation of the data""" return pprint.pformat(self.sources)
[docs] def to_df(self, compact=False): """ Returns a Pandas DataFrame representation of the model :param bool compact: If True returns a compact version with fewer columns """ try: from pandas.io.json import json_normalize import pandas as pd except ImportError: # dependency missing, issue a warning import warnings warnings.warn('Pandas dependency not found, please install with pip install frost-client[pandas] to enable to_df() feature') return None else: compact_columns = ["id", "name", "shortName", "county", "countyId", "municipality", "municipalityId"] df = json_normalize(self.sources) # change date columns to datetime date_columns = ['validFrom', 'validTo'] for c in date_columns: if c in df.columns: df[c] = pd.to_datetime(df[c], errors='coerce') if compact: return df[compact_columns] return df
[docs] def to_list(self): """Returns the sources as a Python list of dicts""" return self.sources
[docs] def to_ids_list(self): """Returns only station IDs as a Python list""" return [s['id'] for s in self.sources]