Source code for fred

from fred.clients.categories import CategoriesClient
from fred.clients.releases import ReleasesClient
from fred.clients.tags import TagsClient
from fred.clients.sources import SourcesClient
from fred.clients.eseries import ESeriesClient
import fred.config as c
import weakref

## Establish Federal Reserve Economic Data (Fred) wrapper for Python
[docs]class Fred(object): """ Fred client. Provides a straightforward mapping from Python to FRED REST endpoints. The instance has attributes ``cateogry``, ``release``, ``series``, ``tag`` and ``source`` that provide access to instances of :class:`fred.clients.categories.CategoriesClient`, :class:`fred.clients.releases.ReleasesClient`, :class:`fred.clients.eseries.ESeriesClient`, :class:`fred.clients.tags.TagsClient` and :class:`fred.clients.sources.SourcesClient` respectively. This is the preferred (and only supported) way to get access to those classes and their methods. :arg str api_key: 32 character alpha-numeric lowercase string. Required. :arg str realtime_start: The start of the real-time period. Format "YYYY-MM-DD" :arg str realtime_end: The end of the real-time period. Format "YYYY-MM-DD" """ def __init__(self,api_key=c.api_key,response_type=c.response_type): ## Set root URL self.url_root = 'https://api.stlouisfed.org/fred' ## Set default API key self.api_key = api_key if api_key else None ## Set default file type self.response_type = response_type if response_type else None ## Initiate clients self.category = CategoriesClient(weakref.proxy(self),self.api_key,self.url_root,self.response_type) self.release = ReleasesClient(weakref.proxy(self),self.api_key,self.url_root,self.response_type) self.series = ESeriesClient(weakref.proxy(self),self.api_key,self.url_root,self.response_type) self.tag = TagsClient(weakref.proxy(self),self.api_key,self.url_root,self.response_type) self.source = SourcesClient(weakref.proxy(self),self.api_key,self.url_root,self.response_type)