Coverage for pyquickhelper/pycode/readme_helper.py: 100%
28 statements
« prev ^ index » next coverage.py v7.2.7, created at 2023-06-03 02:21 +0200
« prev ^ index » next coverage.py v7.2.7, created at 2023-06-03 02:21 +0200
1"""
2@file
3@brief Helpers about readme.
4"""
7def clean_readme(content):
8 """
9 Clean instructions such as ``.. only:: html``.
11 @param content content of an rst file
12 @return cleaned content
13 """
14 lines = content.split("\n")
15 indent = None
16 less = None
17 rows = []
18 for i, line in enumerate(lines):
19 sline = line.lstrip()
20 if sline.startswith(".. only:: html"):
21 indent = len(line) - len(sline)
22 continue
23 if indent is None:
24 rows.append(line)
25 continue
26 exp = indent * " "
27 if len(line) > indent + 1 and line[:indent] == exp:
28 if line[indent] == " ":
29 blank = sline.strip()
30 if len(blank) == 0:
31 rows.append("") # pragma: no cover
32 continue # pragma: no cover
33 if less is None:
34 less = len(line) - len(sline)
35 if less == indent:
36 raise ValueError( # pragma: no cover
37 f"Wrong format at line {i}\n{content}")
38 new_line = line[less - indent:]
39 rows.append(new_line)
40 else:
41 rows.append(line)
42 indent = None
43 less = None
44 else:
45 rows.append(line)
46 return "\n".join(rows)