Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
    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)