Skip to content

Commit 3acf21e

Browse files
committed
fix: revert the get release date function.
1 parent 7293c68 commit 3acf21e

File tree

2 files changed

+45
-1
lines changed

2 files changed

+45
-1
lines changed

src/diffpy/pdffit2/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
"""PDFfit2 - real space structure refinement program."""
1818

1919
# package version
20-
from diffpy.pdffit2.version import __version__ # noqa
20+
from diffpy.pdffit2.version import __date__, __version__ # noqa
2121

2222
# silence the pyflakes syntax checker
2323
assert __version__ or True

src/diffpy/pdffit2/version.py

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,52 @@
1717
# We do not use the other three variables, but can be added back if needed.
1818
# __all__ = ["__date__", "__git_commit__", "__timestamp__", "__version__"]
1919

20+
import datetime
21+
import json
22+
import urllib.request
23+
2024
# obtain version information
2125
from importlib.metadata import PackageNotFoundError, version
26+
from pathlib import Path
27+
28+
29+
def get_pypi_release_date(package_name, timeout=5):
30+
package_file = Path(__file__).resolve()
31+
32+
try:
33+
with open(package_file, "r", encoding="utf-8") as f:
34+
lines = f.readlines()
35+
for line in reversed(lines):
36+
if line.startswith("# Release date:"):
37+
return line.split(":", 1)[1].strip()
38+
39+
url = f"https://pypi.org/pypi/{package_name}/json"
40+
with urllib.request.urlopen(url, timeout=timeout) as response:
41+
data = json.loads(response.read().decode("utf-8"))
42+
43+
installed_version = version(package_name)
44+
release_data = data["releases"].get(installed_version, [])
45+
if not release_data:
46+
raise ValueError(
47+
f"No release data found for version {installed_version}"
48+
)
49+
50+
release_date_str = release_data[-1]["upload_time"]
51+
release_date = datetime.datetime.fromisoformat(release_date_str).date()
52+
53+
with open(package_file, "a", encoding="utf-8") as f:
54+
f.write(f"\n# Release date: {release_date}")
55+
56+
except (ValueError, OSError) as e:
57+
print(f"Warning: Could not fetch release date from PyPI: {e}")
58+
release_date = datetime.datetime.fromtimestamp(
59+
package_file.stat().st_ctime
60+
).isoformat()
61+
62+
return str(release_date)
63+
64+
65+
__date__ = get_pypi_release_date("diffpy.pdffit2")
2266

2367
try:
2468
__version__ = version("diffpy.pdffit2")

0 commit comments

Comments
 (0)