def parse_content(self, content): if (not content) or (not self.file_path): raise SkipException("No Contents") self._config_name = self.file_path.rsplit("/")[-1] lines = [l for l in content if not l.strip().startswith('#')] self.update(split_kv_pairs(lines, ordered=True))
def parse_content(self, content): if not content: raise SkipException("No data.") self.status = {'peers': 0, 'hosts': []} self.status['peers'] = int(content[0].split(':')[-1].strip()) for group in list( self._grouper(list(filter(lambda x: x != '', content[2:])), 3)): self.status['hosts'].append(split_kv_pairs(group, split_on=':'))
def parse_content(self, content): mdadm_dev = "/mdadm_-E_.dev." if mdadm_dev in self.file_path: self.device = '/dev/' + self.file_path.split(mdadm_dev)[1].strip() else: raise SkipException('Cannot parse device name from path {p}'.format(p=self.file_path)) for key, val in split_kv_pairs(content, split_on=':').items(): if val.isdigit(): val = int(val) self[key] = val
def test_split_kv_pairs(): kv_pairs = split_kv_pairs(SPLIT_TEST_1.splitlines()) assert len(kv_pairs) == 2 assert kv_pairs == { 'keyword1': 'value1', 'keyword2': 'value2a=True, value2b=100M' } kv_pairs = split_kv_pairs(SPLIT_TEST_1.splitlines(), filter_string='value2') assert len(kv_pairs) == 1 assert kv_pairs == {'keyword2': 'value2a=True, value2b=100M'} kv_pairs = split_kv_pairs(SPLIT_TEST_1.splitlines(), use_partition=True) assert len(kv_pairs) == 3 assert kv_pairs == { 'keyword1': 'value1', 'keyword2': 'value2a=True, value2b=100M', 'keyword3': '' } kv_pairs = split_kv_pairs(SPLIT_TEST_1.splitlines(), use_partition=True, ordered=True) assert len(kv_pairs) == 3 assert kv_pairs == SPLIT_TEST_1_OD kv_pairs = split_kv_pairs(SPLIT_TEST_2.splitlines(), comment_char='@', split_on=':') assert len(kv_pairs) == 2 assert kv_pairs == { 'keyword1': 'value1', 'keyword2': 'value2a=True, value2b=100M' } kv_pairs = split_kv_pairs(SPLIT_TEST_2.splitlines(), comment_char='@', split_on=':', filter_string='value2') assert len(kv_pairs) == 1 assert kv_pairs == {'keyword2': 'value2a=True, value2b=100M'} kv_pairs = split_kv_pairs(SPLIT_TEST_2.splitlines(), comment_char='@', split_on=':', use_partition=True) assert len(kv_pairs) == 3 assert kv_pairs == { 'keyword1': 'value1', 'keyword2': 'value2a=True, value2b=100M', 'keyword3': '' }
def parse_content(self, content): if not content: raise SkipException sidx = 0 idx_list = [] for i, l in enumerate(content): if l.strip() == '': idx_list.append((sidx, i)) sidx = i + 1 idx_list.append((sidx, len(content))) for s, e in idx_list: data = split_kv_pairs(content[s:e], use_partition=False) name = data.get('Names', data.get('Id')) if not name: raise ParseException('"Names" or "Id" not found!') self[name] = dict((k, v) for k, v in data.items() if v) if len(self) == 0: raise SkipException
def parse_content(self, content): if not content: raise SkipException("Empty Content!") self._bridges = [] # Extract the bridge name try: self._bridge_name = self.file_path.split( "ovs-ofctl_dump-flows_")[1] except: raise SkipException("Invalid Path!") for line in content: line = line.split(',') flow_list = split_kv_pairs(line, split_on='=') if flow_list: self._bridges.append(flow_list) if not self._bridges: raise SkipException("Invalid Content!")
def parse_content(self, content): self.data = split_kv_pairs(get_active_lines(content))
def parse_content(self, content): _content = split_kv_pairs(content) self.data = { 'product': _content['DISTRIB_ID'], 'version': _content['DISTRIB_RELEASE'] }
def parse_content(self, content): data = split_kv_pairs(content, use_partition=False) """Remove empty key""" self.update(dict((k, v) for k, v in data.items() if not v == ''))
def parse_content(self, content): self.update(split_kv_pairs(content, use_partition=False)) if not self: raise SkipException("empty content")
def parse_content(self, content): if not content: raise SkipException("Empty content.") self.data = split_kv_pairs(content, split_on=":", use_partition=True)
def parse_content(self, content): # Valid comments are both # and ; so remove one locally, # other comments and blank lines are removed by split_kv_pairs. lines = [l for l in content if not l.strip().startswith(';')] self.update(split_kv_pairs(lines, ordered=True))
def parse_content(self, content): _content = get_active_lines(content) if not _content: raise SkipException("Empty content.") self.data = split_kv_pairs(_content)