MCPcopy
hub / github.com/psycopg/psycopg / _update_history_file

Method _update_history_file

tools/bump_version.py:197–232  ·  view source on GitHub ↗
(self, fp: Path, version: Version)

Source from the content-addressed store, hash-verified

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:

Callers 1

update_filesMethod · 0.95

Calls 4

_find_linesMethod · 0.95
infoMethod · 0.45
openMethod · 0.45
writeMethod · 0.45

Tested by

no test coverage detected