コード例 #1
0
ファイル: iberdrola.py プロジェクト: gisce/sippers
 def parse_ps(self, line):
     slinia = tuple(self.slices(unicode(line), self.slices_ps))
     slinia = map(lambda s: s.strip(), slinia)
     pslist = slinia[0:len(self.fields_ps)]
     # Llista dels valors del tros que agafem dins dels sips
     data = build_dict(self.headers_ps, pslist)
     result, errors = self.ps_adapter.load(data)
     if errors:
         logger.error(errors)
     return result, errors
コード例 #2
0
ファイル: endesa.py プロジェクト: gisce/sippers
 def parse_line(self, line):
     slinia = tuple(unicode(line.decode(self.encoding)).split(self.delimiter))
     slinia = map(lambda s: s.strip(), slinia)
     parsed = {'ps': {}, 'measures': {}, 'orig': line}
     data = build_dict(self.headers_ps, slinia)
     result, errors = self.adapter.load(data)
     if errors:
         logger.error(errors)
     parsed['ps'] = result
     return parsed, errors
コード例 #3
0
ファイル: cnmc.py プロジェクト: gisce/sippers
    def parse_line(self, line):
        slinia = tuple(line.split(self.delimiter))
        slinia = map(lambda s: s.strip(), slinia)
        parsed = {'ps': {}, 'measure_cnmc': [], 'orig': line}
        all_errors = {}
        consums = build_dict(self.headers, slinia)
        result, errors = self.adapter.load(consums)
        if errors:
            logger.error(errors)
            all_errors.update(errors)
        parsed['measure_cnmc'] = result

        return parsed, errors
コード例 #4
0
ファイル: hidrocantabrico.py プロジェクト: gisce/sippers
 def parse_line(self, line):
     line = unicode(line.decode(self.encoding))
     slinia = tuple(self.slices(line, self.measures_slices))
     slinia = map(lambda s: s.strip(), slinia)
     values = slinia[0:len(self.fields)]
     # Llista dels valors del tros que agafem dins dels sips
     data = build_dict(self.headers, values)
     result, errors = self.adapter.load(data)
     if errors:
         logger.error(errors)
     parsed = {'ps': {},
               'measures': [result], 'orig': line}
     return parsed, errors
コード例 #5
0
ファイル: file.py プロジェクト: kailIII/sippers
 def __init__(self, path, strict=False):
     """
     :param path: Packed SIPS file path
     """
     self.path = path
     self.parser = get_parser(self.path)(strict=strict)
     if not zipfile.is_zipfile(self.path):
         logger.error("File %s is not a zip file", self.path)
         raise zipfile.BadZipfile
     self.fd = zipfile.ZipFile(self.path)
     self.parser = get_parser(self.path)()
     self.files = iter(self.fd.namelist())
     self.stats = PackedSipsFileStats(os.stat(path).st_size, len(self.fd.namelist()))
コード例 #6
0
ファイル: cnmc.py プロジェクト: gisce/sippers
    def parse_line(self, line):

        # passar previament la linia pel csv reader
        # per que agafi be els camps tot i les comes dins del camp direccio
        # per fer-ho cal passar-la a StringIO
        l = StringIO.StringIO(line)
        reader = csv.DictReader(l, fieldnames=self.headers_ps, delimiter=',')
        linia = reader.next() # nomes n'hi ha una

        parsed = {'ps': {}, 'orig': line}
        result, errors = self.adapter.load(linia)

        if errors:
            logger.error(errors)
        parsed['ps'] = result
        return parsed, errors
コード例 #7
0
ファイル: endesa.py プロジェクト: gisce/sippers
 def parse_line(self, line):
     slinia = tuple(line.split(self.delimiter))
     slinia = map(lambda s: s.strip(), slinia)
     start = self.measures_start
     step = self.measures_step
     parsed = {'ps': {}, 'measures': [], 'orig': line}
     c_line = slinia[start:start+step]
     all_errors = {}
     while c_line:
         c_line.insert(0, slinia[0])
         consums = build_dict(self.headers, c_line)
         result, errors = self.adapter.load(consums)
         if errors:
             logger.error(errors)
             all_errors.update(errors)
         parsed['measures'].append(result)
         start += step
         c_line = slinia[start:start+step]
     return parsed, errors
コード例 #8
0
ファイル: iberdrola.py プロジェクト: gisce/sippers
 def parse_measures(self, line):
     measures = []
     start = self.measures_start
     step = self.measures_step
     c_line = line[start:start+step].strip()
     length_c = self.slices_measures
     i, j = self.get_pos('name')
     cups = line[i:j].strip()
     all_errors = {}
     while c_line:
         m = tuple(self.slices(c_line, length_c))
         m = map(lambda s: s.strip(), m)
         consums = build_dict(self.headers_cons, m)
         consums['name'] = cups
         result, errors = self.measures_adapter.load(consums)
         if errors:
             logger.error(errors)
             all_errors.update(errors)
         measures.append(result)
         start += step
         c_line = line[start:start + step].strip()
     return measures, all_errors
コード例 #9
0
ファイル: parser.py プロジェクト: gisce/sippers
def get_parser(sips_file):
    for path, cls in _PARSERS.items():
        if cls.detect(sips_file):
            return cls
    logger.error("Parser not found for file %s", sips_file)
    raise ParserNotFoundException()