From d612b7c8a734f08a2cac6e6edbec496b37aea16d Mon Sep 17 00:00:00 2001 From: Tieqiong Zhang Date: Thu, 9 Jan 2025 20:56:37 -0500 Subject: [PATCH 1/4] fix: correct release date --- src/diffpy/pdffit2/version.py | 45 +++++++++++++++++++++++++++++------ 1 file changed, 38 insertions(+), 7 deletions(-) diff --git a/src/diffpy/pdffit2/version.py b/src/diffpy/pdffit2/version.py index 2ed4ab8..afe31d8 100644 --- a/src/diffpy/pdffit2/version.py +++ b/src/diffpy/pdffit2/version.py @@ -14,15 +14,46 @@ ############################################################################## """Definition of __version__.""" -# We do not use the other three variables, but can be added back if needed. -__all__ = ["__date__", "__git_commit__", "__timestamp__", "__version__"] +import datetime +from importlib.metadata import distribution, version +from pathlib import Path +import urllib.request +import json + + +def get_pypi_release_date(package_name, timeout=5): + package_file = Path(__file__).resolve() + + try: + with open(package_file, "r", encoding="utf-8") as f: + lines = f.readlines() + for line in reversed(lines): + if line.startswith("# Release date:"): + return line.split(":", 1)[1].strip() + + url = f"https://pypi.org/pypi/{package_name}/json" + with urllib.request.urlopen(url, timeout=timeout) as response: + data = json.loads(response.read().decode('utf-8')) + + installed_version = version(package_name) + release_data = data["releases"].get(installed_version, []) + if not release_data: + raise ValueError(f"No release data found for version {installed_version}") + + release_date_str = release_data[-1]["upload_time"] + release_date = datetime.datetime.fromisoformat(release_date_str).date() + + with open(package_file, "a", encoding="utf-8") as f: + f.write(f"\n# Release date: {release_date}") + + except (ValueError, OSError) as e: + print(f"Warning: Could not fetch release date from PyPI: {e}") + release_date = datetime.datetime.fromtimestamp(package_file.stat().st_ctime).isoformat() + + return str(release_date) -# obtain version information -from importlib.metadata import version __version__ = version("diffpy.pdffit2") -__date__ = __all__[0] -__git_commit__ = __all__[1] -__timestamp__ = __all__[2] +__date__ = get_pypi_release_date("diffpy.pdffit2") # End of file From 19d4a8364556f1de9764c9f13f5c8a51ca1fa808 Mon Sep 17 00:00:00 2001 From: Tieqiong Zhang Date: Thu, 9 Jan 2025 21:14:59 -0500 Subject: [PATCH 2/4] pcmt --- src/diffpy/pdffit2/version.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/diffpy/pdffit2/version.py b/src/diffpy/pdffit2/version.py index afe31d8..9cf6575 100644 --- a/src/diffpy/pdffit2/version.py +++ b/src/diffpy/pdffit2/version.py @@ -15,10 +15,10 @@ """Definition of __version__.""" import datetime +import json +import urllib.request from importlib.metadata import distribution, version from pathlib import Path -import urllib.request -import json def get_pypi_release_date(package_name, timeout=5): @@ -33,7 +33,7 @@ def get_pypi_release_date(package_name, timeout=5): url = f"https://pypi.org/pypi/{package_name}/json" with urllib.request.urlopen(url, timeout=timeout) as response: - data = json.loads(response.read().decode('utf-8')) + data = json.loads(response.read().decode("utf-8")) installed_version = version(package_name) release_data = data["releases"].get(installed_version, []) From 07bfe2ce0b5faa3363a4105c1f028e7525bd6e22 Mon Sep 17 00:00:00 2001 From: Tieqiong Zhang Date: Thu, 9 Jan 2025 21:16:25 -0500 Subject: [PATCH 3/4] more pcmt --- src/diffpy/pdffit2/version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/diffpy/pdffit2/version.py b/src/diffpy/pdffit2/version.py index 9cf6575..6847d8e 100644 --- a/src/diffpy/pdffit2/version.py +++ b/src/diffpy/pdffit2/version.py @@ -17,7 +17,7 @@ import datetime import json import urllib.request -from importlib.metadata import distribution, version +from importlib.metadata import version from pathlib import Path From a1531a00e99fdf5ad082046b5185cd9500396de9 Mon Sep 17 00:00:00 2001 From: Tieqiong Zhang Date: Fri, 10 Jan 2025 21:25:48 -0500 Subject: [PATCH 4/4] add news --- news/date.rst | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 news/date.rst diff --git a/news/date.rst b/news/date.rst new file mode 100644 index 0000000..7f556be --- /dev/null +++ b/news/date.rst @@ -0,0 +1,23 @@ +**Added:** + +* + +**Changed:** + +* + +**Deprecated:** + +* + +**Removed:** + +* + +**Fixed:** + +* Fix missing `__date__`, use PyPI release date. + +**Security:** + +*