(self, fp: Path, version: Version)
| 195 | f.write(line) |
| 196 | |
| 197 | def _update_history_file(self, fp: Path, version: Version) -> None: |
| 198 | logger.info("upgrading history file %s", fp) |
| 199 | with fp.open() as f: |
| 200 | lines = f.readlines() |
| 201 | |
| 202 | vln: int = -1 |
| 203 | lns = self._find_lines( |
| 204 | r"^[^\s]+ " + re.escape(str(version)) + r"\s*\(unreleased\)?$", lines |
| 205 | ) |
| 206 | assert len(lns) <= 1 |
| 207 | if len(lns) == 1: |
| 208 | vln = lns[0] |
| 209 | lines[vln] = lines[vln].rsplit(None, 1)[0] |
| 210 | lines[vln + 1] = lines[vln + 1][0] * len(lines[lns[0]]) |
| 211 | |
| 212 | lns = self._find_lines("^Future", lines) |
| 213 | assert len(lns) <= 1 |
| 214 | if len(lns) == 1: |
| 215 | del lines[lns[0] : lns[0] + 3] |
| 216 | if vln > lns[0]: |
| 217 | vln -= 3 |
| 218 | |
| 219 | lns = self._find_lines("^Current", lines) |
| 220 | assert len(lns) <= 1 |
| 221 | if len(lns) == 1 and vln >= 0: |
| 222 | clines = lines[lns[0] : lns[0] + 3] |
| 223 | del lines[lns[0] : lns[0] + 3] |
| 224 | if vln > lns[0]: |
| 225 | vln -= 3 |
| 226 | lines[vln:vln] = clines |
| 227 | |
| 228 | with fp.open("w") as f: |
| 229 | for line in lines: |
| 230 | f.write(line) |
| 231 | if not line.endswith("\n"): |
| 232 | f.write("\n") |
| 233 | |
| 234 | def _get_changes_lines(self, fp: Path, version: Version) -> list[str]: |
| 235 | with fp.open() as f: |
no test coverage detected