From 20e8bbdfbd6443590d9727ea53374102c60bc0e2 Mon Sep 17 00:00:00 2001 From: Catherine Date: Wed, 16 Aug 2023 14:00:40 +0000 Subject: [PATCH] Bring `__version__` retrieval up to date. NFCI Because `importlib.metadata.PackageNotFoundError` inherits from `ImportError`, the code did not previously work in the way that was stated in the comment. We should probably deprecate `__version__` entirely at some point. --- amaranth/__init__.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/amaranth/__init__.py b/amaranth/__init__.py index 1d57367..95a6cce 100644 --- a/amaranth/__init__.py +++ b/amaranth/__init__.py @@ -1,12 +1,13 @@ +# Extract version for this package from the environment package metadata. This used to be a lot +# more difficult in earlier Python versions, and the `__version__` field is a legacy of that time. +import importlib.metadata try: - from importlib import metadata as importlib_metadata - __version__ = importlib_metadata.version(__package__) - del importlib_metadata -except ImportError: - # No importlib_metadata. This shouldn't normally happen, but some people prefer not installing - # packages via pip at all, instead using PYTHONPATH directly or copying the package files into - # `lib/pythonX.Y/site-packages`. Although not a recommended way, we still try to support it. + __version__ = importlib.metadata.version(__package__) +except importlib.metadata.PackageNotFoundError: + # No importlib metadata for this package. This shouldn't normally happen, but some people + # prefer not installing packages via pip at all. Although not recommended we still support it. __version__ = "unknown" # :nocov: +del importlib from .hdl import *