class FED_Data(object): def __init__(self, dataset=None, url=None): """ :param Datasets dataset: Datasets instance """ self.dataset = dataset self.url = url self.attribute_list = self.dataset.attribute_list self.dimension_list = self.dataset.dimension_list self.provider_name = self.dataset.provider_name self.dataset_code = self.dataset.dataset_code #self.xml_dsd = XMLStructure_2_1(provider_name=self.provider_name, # dataset_code=self.dataset_code) self.rows = None #self.dsd_id = None self._load() def _load(self): download = Downloader(url=self.url, filename="data-%s.xml" % self.dataset_code, #headers=SDMX_DATA_HEADERS ) data_fp, dsd_fp = (extract_zip_file(download.get_filepath())) self.xml_data = XMLData(provider_name=self.provider_name, dataset_code=self.dataset_code, #dimension_keys=self.xml_dsd.dimension_keys ) self.rows = self.xml_data.process(data_fp) def __next__(self): _series = next(self.rows) if not _series: raise StopIteration() return self.build_series(_series) def build_series(self, bson): bson["last_update"] = self.dataset.last_update for key, item in bson['dimensions'].items(): self.dimension_list.update_entry(key, key, item) return bson
def _load(self): download = Downloader(url=self.url, filename="data-%s.xml" % self.dataset_code, #headers=SDMX_DATA_HEADERS ) data_fp, dsd_fp = (extract_zip_file(download.get_filepath())) self.xml_data = XMLData(provider_name=self.provider_name, dataset_code=self.dataset_code, #dimension_keys=self.xml_dsd.dimension_keys ) self.rows = self.xml_data.process(data_fp)