|
7 | 7 | # File coded by: Billinge Group members and community contributors. |
8 | 8 | # |
9 | 9 | # See GitHub contributions for a more detailed list of contributors. |
10 | | -# https://github.com/diffpy/diffpy.pdffit2/graphs/contributors |
| 10 | +# https://github.com/diffpy/diffpy.pdffit2/graphs/contributors # noqa: E501 |
11 | 11 | # |
12 | 12 | # See LICENSE.rst for license information. |
13 | 13 | # |
14 | 14 | ############################################################################## |
15 | 15 | """Definition of __version__.""" |
16 | 16 |
|
17 | | -import datetime |
18 | | -import json |
19 | | -import urllib.request |
20 | | -from importlib.metadata import version |
21 | | -from pathlib import Path |
| 17 | +# We do not use the other three variables, but can be added back if needed. |
| 18 | +# __all__ = ["__date__", "__git_commit__", "__timestamp__", "__version__"] |
22 | 19 |
|
| 20 | +# obtain version information |
| 21 | +from importlib.metadata import PackageNotFoundError, version |
23 | 22 |
|
24 | | -def get_pypi_release_date(package_name, timeout=5): |
25 | | - package_file = Path(__file__).resolve() |
26 | | - |
27 | | - try: |
28 | | - with open(package_file, "r", encoding="utf-8") as f: |
29 | | - lines = f.readlines() |
30 | | - for line in reversed(lines): |
31 | | - if line.startswith("# Release date:"): |
32 | | - return line.split(":", 1)[1].strip() |
33 | | - |
34 | | - url = f"https://pypi.org/pypi/{package_name}/json" |
35 | | - with urllib.request.urlopen(url, timeout=timeout) as response: |
36 | | - data = json.loads(response.read().decode("utf-8")) |
37 | | - |
38 | | - installed_version = version(package_name) |
39 | | - release_data = data["releases"].get(installed_version, []) |
40 | | - if not release_data: |
41 | | - raise ValueError( |
42 | | - f"No release data found for version {installed_version}" |
43 | | - ) |
44 | | - |
45 | | - release_date_str = release_data[-1]["upload_time"] |
46 | | - release_date = datetime.datetime.fromisoformat(release_date_str).date() |
47 | | - |
48 | | - with open(package_file, "a", encoding="utf-8") as f: |
49 | | - f.write(f"\n# Release date: {release_date}") |
50 | | - |
51 | | - except (ValueError, OSError) as e: |
52 | | - print(f"Warning: Could not fetch release date from PyPI: {e}") |
53 | | - release_date = datetime.datetime.fromtimestamp( |
54 | | - package_file.stat().st_ctime |
55 | | - ).isoformat() |
56 | | - |
57 | | - return str(release_date) |
58 | | - |
59 | | - |
60 | | -__version__ = version("diffpy.pdffit2") |
61 | | -__date__ = get_pypi_release_date("diffpy.pdffit2") |
62 | | - |
63 | | -# End of file |
64 | | - |
65 | | -# Release date: 2025-02-07 |
| 23 | +try: |
| 24 | + __version__ = version("diffpy.pdffit2") |
| 25 | +except PackageNotFoundError: |
| 26 | + __version__ = "unknown" |
0 commit comments