示例#1
0
文件: bot.py 项目: plixer/intelmq
 def parse_csv(self, report: dict):
     """
     A basic CSV parser.
     """
     raw_report = utils.base64_decode(report.get("raw")).strip()
     raw_report = raw_report.translate({0: None})
     if self.ignore_lines_starting:
         raw_report = '\n'.join([line for line in raw_report.splitlines()
                                 if not any([line.startswith(prefix) for prefix
                                             in self.ignore_lines_starting])])
     self.handle = RewindableFileHandle(io.StringIO(raw_report))
     for line in csv.reader(self.handle, **self.csv_params):
         self.current_line = self.handle.current_line
         yield line
示例#2
0
 def parse_csv_dict(self, report: dict):
     """
     A basic CSV Dictionary parser.
     """
     raw_report = utils.base64_decode(report.get("raw")).strip()
     if self.ignore_lines_starting:
         raw_report = '\n'.join([
             line for line in raw_report.splitlines() if not any([
                 line.startswith(prefix)
                 for prefix in self.ignore_lines_starting
             ])
         ])
     self.handle = RewindableFileHandle(io.StringIO(raw_report))
     for line in csv.DictReader(self.handle):
         self.current_line = self.handle.current_line
         yield line
示例#3
0
文件: bot.py 项目: plixer/intelmq
    def parse_csv_dict(self, report: dict):
        """
        A basic CSV Dictionary parser.
        """
        raw_report = utils.base64_decode(report.get("raw")).strip()
        raw_report = raw_report.translate({0: None})
        if self.ignore_lines_starting:
            raw_report = '\n'.join([line for line in raw_report.splitlines()
                                    if not any([line.startswith(prefix) for prefix
                                                in self.ignore_lines_starting])])
        self.handle = RewindableFileHandle(io.StringIO(raw_report))

        csv_reader = csv.DictReader(self.handle, **self.csv_params)
        # create an array of fieldnames,
        # those were automagically created by the dictreader
        self.csv_fieldnames = csv_reader.fieldnames

        for line in csv_reader:
            self.current_line = self.handle.current_line
            yield line