def _read(self): if not is_list_like(self.symbols): names = [self.symbols] else: names = self.symbols urls = ["{}?id={}".format(self.url, n) for n in names] def fetch_data(url, name): """Utillity to fetch data""" resp = self._read_url_as_StringIO(url) data = read_csv(resp, index_col=0, parse_dates=True, header=None, skiprows=1, names=["DATE", name], na_values='.') try: return data.truncate(self.start, self.end) except KeyError: # pragma: no cover if data.iloc[3].name[7:12] == 'Error': raise IOError("Failed to get the data. Check that " "{0!r} is a valid FRED series.".format(name)) raise df = concat([fetch_data(url, n) for url, n in zip(urls, names)], axis=1, join='outer') return df
def __init__(self, *args, **kwargs): super(MoexReader, self).__init__(*args, **kwargs) self.start = self.start.date() self.end_dt = self.end self.end = self.end.date() if not is_list_like(self.symbols): self.symbols = [self.symbols] self.__engines, self.__markets = {}, { } # dicts for engines and markets
def __init__(self, *args, **kwargs): super(MoexReader, self).__init__(*args, **kwargs) self.start = self.start.date() self.end_dt = self.end self.end = self.end.date() if isinstance(self.symbols, pd.DataFrame): self.symbols = self.symbols.index.tolist() elif not is_list_like(self.symbols): self.symbols = [self.symbols] self.__markets_n_engines = {} # dicts for tuples of engines and markets