(
given_doctext: Optional[str], injecttext: str, pos: int
)
| 2198 | |
| 2199 | |
| 2200 | def inject_docstring_text( |
| 2201 | given_doctext: Optional[str], injecttext: str, pos: int |
| 2202 | ) -> str: |
| 2203 | doctext: str = _dedent_docstring(given_doctext or "") |
| 2204 | lines = doctext.split("\n") |
| 2205 | if len(lines) == 1: |
| 2206 | lines.append("") |
| 2207 | injectlines = textwrap.dedent(injecttext).split("\n") |
| 2208 | if injectlines[0]: |
| 2209 | injectlines.insert(0, "") |
| 2210 | |
| 2211 | blanks = [num for num, line in enumerate(lines) if not line.strip()] |
| 2212 | blanks.insert(0, 0) |
| 2213 | |
| 2214 | inject_pos = blanks[min(pos, len(blanks) - 1)] |
| 2215 | |
| 2216 | lines = lines[0:inject_pos] + injectlines + lines[inject_pos:] |
| 2217 | return "\n".join(lines) |
| 2218 | |
| 2219 | |
| 2220 | _param_reg = re.compile(r"(\s+):param (.+?):") |
no test coverage detected