add line break syntax to python config parser
This commit is contained in:
parent
d6851210d7
commit
2113a22f11
1 changed files with 43 additions and 7 deletions
|
|
@ -262,14 +262,50 @@ def _parse(
|
|||
else:
|
||||
from ..constants import config_dir
|
||||
base_path_for_includes = config_dir
|
||||
for i, line in enumerate(lines):
|
||||
|
||||
it = iter(lines)
|
||||
line: str;
|
||||
nextLine: str = ""
|
||||
nextLineNum = 0;
|
||||
|
||||
while True:
|
||||
try:
|
||||
with currently_parsing.set_line(line, i + 1):
|
||||
parse_line(line, parse_conf_item, ans, base_path_for_includes, accumulate_bad_lines)
|
||||
except Exception as e:
|
||||
if accumulate_bad_lines is None:
|
||||
raise
|
||||
accumulate_bad_lines.append(BadLine(i + 1, line.rstrip(), e, currently_parsing.file))
|
||||
if nextLine != "":
|
||||
line = nextLine
|
||||
else:
|
||||
line = next(it).lstrip()
|
||||
nextLineNum += 1
|
||||
lineNum = nextLineNum
|
||||
|
||||
try:
|
||||
nextLine = next(it).lstrip()
|
||||
nextLineNum += 1
|
||||
|
||||
while nextLine.startswith('\\'):
|
||||
if line.endswith("\n"):
|
||||
line = line[:-1]
|
||||
line += nextLine[1:]
|
||||
try:
|
||||
nextLine = next(it).lstrip()
|
||||
nextLineNum += 1
|
||||
except StopIteration:
|
||||
nextLine = ""
|
||||
break
|
||||
except StopIteration:
|
||||
nextLine = ""
|
||||
pass
|
||||
|
||||
# code
|
||||
|
||||
try:
|
||||
with currently_parsing.set_line(line, lineNum):
|
||||
parse_line(line, parse_conf_item, ans, base_path_for_includes, accumulate_bad_lines)
|
||||
except Exception as e:
|
||||
if accumulate_bad_lines is None:
|
||||
raise
|
||||
accumulate_bad_lines.append(BadLine(lineNum, line.rstrip(), e, currently_parsing.file))
|
||||
except StopIteration:
|
||||
break
|
||||
|
||||
|
||||
def parse_config_base(
|
||||
|
|
|
|||
Loading…
Reference in a new issue