28 lines
948 B
Python
Executable file
28 lines
948 B
Python
Executable file
#!/usr/bin/python3
|
|
import re
|
|
from pathlib import Path
|
|
from typing import Dict
|
|
from config import DEFAULT_IMPORT_INDENTATION
|
|
|
|
|
|
def parse_counters(filepath: Path, break_point: Dict) -> Dict:
|
|
if not filepath.is_file():
|
|
return {}
|
|
counters: Dict = {}
|
|
with open(filepath) as f:
|
|
for line in f:
|
|
match = re.search(r"(.*): (\d*\.)*?(\d+)", line)
|
|
if not match:
|
|
continue
|
|
counter, _, num = match.groups()
|
|
num = int(num)
|
|
if counter in break_point and num >= break_point[counter]:
|
|
return counters
|
|
counters[counter] = num
|
|
return counters
|
|
|
|
|
|
def dict2setcounters(counters: Dict):
|
|
counters_as_list = [(counter, counters[counter]) for counter in counters.keys()]
|
|
return ''.join(' ' * DEFAULT_IMPORT_INDENTATION + r'\setcounter{' + counter + '}{' + str(num) + '}\n'
|
|
for (counter, num) in counters_as_list)
|