1
0
mirror of https://github.com/kellyjonbrazil/jc.git synced 2025-06-17 00:07:37 +02:00

fix for multiple list items on a line

This commit is contained in:
Kelly Brazil
2024-02-29 10:09:24 -08:00
parent 52a816cc45
commit 412a772b42

View File

@ -104,11 +104,7 @@ def _process(proc_data: JSONDictType) -> JSONDictType:
return proc_data return proc_data
def parse( def parse(data: str, raw: bool = False, quiet: bool = False) -> JSONDictType:
data: str,
raw: bool = False,
quiet: bool = False
) -> JSONDictType:
""" """
Main text parsing function Main text parsing function
@ -132,8 +128,8 @@ def parse(
advertised_link_modes: List[str] = [] advertised_link_modes: List[str] = []
advertised_fec_modes: List[str] = [] advertised_fec_modes: List[str] = []
current_message_level: List[str] = [] current_message_level: List[str] = []
mode: str = '' # supported_link_modes, supported_fec_modes, advertised_link_modes, mode: str = '' # supported_link_modes, supported_fec_modes, advertised_link_modes,
# advertised_fec_modes, current_message_level # advertised_fec_modes, current_message_level
if jc.utils.has_data(data): if jc.utils.has_data(data):
@ -144,7 +140,7 @@ def parse(
continue continue
data_line = line.replace('\t', ' ') data_line = line.replace('\t', ' ')
if not data_line.startswith(' '): # 9 spaces if not data_line.startswith(' '): # 9 spaces
mode = '' mode = ''
if 'Supported ports:' in line: if 'Supported ports:' in line:
@ -154,27 +150,35 @@ def parse(
supported_ports.extend(val_list) supported_ports.extend(val_list)
continue continue
if 'Supported link modes:' in line: if 'Supported link modes:' in line and 'Not reported' not in line:
_, val = line.split(':', maxsplit=1) _, val = line.split(':', maxsplit=1)
supported_link_modes.append(val.strip()) val = val.strip()
val_list = val.split()
supported_link_modes.extend(val_list)
mode = 'supported_link_modes' mode = 'supported_link_modes'
continue continue
if 'Supported FEC modes:' in line: if 'Supported FEC modes:' in line and 'Not reported' not in line:
_, val = line.split(':', maxsplit=1) _, val = line.split(':', maxsplit=1)
supported_fec_modes.append(val.strip()) val = val.strip()
val_list = val.split()
supported_fec_modes.extend(val_list)
mode = 'supported_fec_modes' mode = 'supported_fec_modes'
continue continue
if 'Advertised link modes:' in line: if 'Advertised link modes:' in line and 'Not reported' not in line:
_, val = line.split(':', maxsplit=1) _, val = line.split(':', maxsplit=1)
advertised_link_modes.append(val.strip()) val = val.strip()
val_list = val.split()
advertised_link_modes.extend(val_list)
mode = 'advertised_link_modes' mode = 'advertised_link_modes'
continue continue
if 'Advertised FEC modes:' in line: if 'Advertised FEC modes:' in line and 'Not reported' not in line:
_, val = line.split(':', maxsplit=1) _, val = line.split(':', maxsplit=1)
advertised_fec_modes.append(val.strip()) val = val.strip()
val_list = val.split()
advertised_fec_modes.extend(val_list)
mode = 'advertised_fec_modes' mode = 'advertised_fec_modes'
continue continue
@ -185,19 +189,27 @@ def parse(
continue continue
if mode == 'supported_link_modes': if mode == 'supported_link_modes':
supported_link_modes.append(line.strip()) val = line.strip()
val_list = val.split()
supported_link_modes.extend(val_list)
continue continue
if mode == 'supported_fec_modes': if mode == 'supported_fec_modes':
supported_fec_modes.append(line.strip()) val = line.strip()
val_list = val.split()
supported_fec_modes.extend(val_list)
continue continue
if mode == 'advertised_link_modes': if mode == 'advertised_link_modes':
advertised_link_modes.append(line.strip()) val = line.strip()
val_list = val.split()
advertised_link_modes.extend(val_list)
continue continue
if mode == 'advertised_fec_modes': if mode == 'advertised_fec_modes':
advertised_fec_modes.append(line.strip()) val = line.strip()
val_list = val.split()
advertised_fec_modes.extend(val_list)
continue continue
if mode == 'current_message_level': if mode == 'current_message_level':