diff --git a/blurb/blurb.py b/blurb/blurb.py index 2b9475b..0cb87cc 100755 --- a/blurb/blurb.py +++ b/blurb/blurb.py @@ -49,10 +49,12 @@ from collections import OrderedDict import glob import hashlib +import io import inspect import itertools import math import os +from pathlib import Path import re import shlex import shutil @@ -1064,11 +1066,15 @@ def merge(output=None, *, forced=False): builtins.print("You already have a", repr(output), "file.") require_ok("Type ok to overwrite") - news = open(output, "wt", encoding="utf-8") + write_news(output, versions=versions) + + +def write_news(output, *, versions): + buff = io.StringIO() def print(*a, sep=" "): s = sep.join(str(x) for x in a) - return builtins.print(s, file=news) + return builtins.print(s, file=buff) print (""" +++++++++++ @@ -1129,7 +1135,20 @@ def print(*a, sep=" "): print(text) print() print("**(For information about older versions, consult the HISTORY file.)**") - news.close() + + + new_contents = buff.getvalue() + + # Only write in `output` if the contents are different + # This speeds up subsequent Sphinx builds + try: + previous_contents = Path(output).read_text(encoding="UTF-8") + except (FileNotFoundError, UnicodeError): + previous_contents = None + if new_contents != previous_contents: + Path(output).write_text(new_contents, encoding="UTF-8") + else: + builtins.print(output, "is already up to date") git_add_files = [] pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy