From a151d1ae34df58d902ea0ce8a9efa342756f2bc2 Mon Sep 17 00:00:00 2001 From: Bartosz Sokorski Date: Tue, 22 Apr 2025 12:43:10 +0200 Subject: [PATCH] Deprecate __version__ attribute --- src/pendulum/__init__.py | 20 ++++++++++++++++++-- src/pendulum/__version__.py | 4 ---- 2 files changed, 18 insertions(+), 6 deletions(-) delete mode 100644 src/pendulum/__version__.py diff --git a/src/pendulum/__init__.py b/src/pendulum/__init__.py index 4656aaa0..c62fd217 100644 --- a/src/pendulum/__init__.py +++ b/src/pendulum/__init__.py @@ -2,11 +2,11 @@ import datetime as _datetime +from typing import Any from typing import Union from typing import cast from typing import overload -from pendulum.__version__ import __version__ from pendulum.constants import DAYS_PER_WEEK from pendulum.constants import HOURS_PER_DAY from pendulum.constants import MINUTES_PER_HOUR @@ -343,6 +343,23 @@ def interval( travel_to = _traveller.travel_to travel_back = _traveller.travel_back + +def __getattr__(name: str) -> Any: + if name == "__version__": + import importlib.metadata + import warnings + + warnings.warn( + "The '__version__' attribute is deprecated and will be removed in" + " Pendulum 3.4. Use 'importlib.metadata.version(\"pendulum\")' instead.", + DeprecationWarning, + stacklevel=2, + ) + return importlib.metadata.version("pendulum") + + raise AttributeError(name) + + __all__ = [ "DAYS_PER_WEEK", "HOURS_PER_DAY", @@ -364,7 +381,6 @@ def interval( "Time", "Timezone", "WeekDay", - "__version__", "date", "datetime", "duration", diff --git a/src/pendulum/__version__.py b/src/pendulum/__version__.py deleted file mode 100644 index e3a529d4..00000000 --- a/src/pendulum/__version__.py +++ /dev/null @@ -1,4 +0,0 @@ -from __future__ import annotations - - -__version__ = "3.1.0"