Skip to content

Commit f97244b

Browse files
committed
merge main and handle different versions of typing_extension deprecated
1 parent 32decdd commit f97244b

File tree

1 file changed

+17
-9
lines changed

1 file changed

+17
-9
lines changed

awsiot/mqtt_connection_builder.py

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -133,18 +133,26 @@
133133
# the `@deprecated` tags.
134134
from typing_extensions import deprecated
135135
else:
136+
_impl = None
136137
try:
137138
# preferred import of deprecated
138-
from typing_extensions import deprecated
139-
except ModuleNotFoundError:
139+
from typing_extensions import deprecated as _impl
140+
except Exception:
140141
try:
141-
# Python 3.12+
142-
from typing import deprecated
143-
except ImportError:
144-
# shim if both are unavailable that turn `deprecated` into a no-op
145-
def deprecated(msg=None, *, since=None):
146-
def wrapper(obj): return obj
147-
return wrapper
142+
from typing import deprecated as _impl # Python 3.13+
143+
except Exception:
144+
_impl = None
145+
146+
def deprecated(msg=None, *, since=None):
147+
if _impl is None:
148+
def _noop(obj): return obj
149+
return _noop
150+
if since is not None:
151+
try:
152+
return _impl(msg, since=since)
153+
except TypeError:
154+
pass # older typing_extensions: no 'since' keyword
155+
return _impl(msg)
148156

149157

150158
def _check_required_kwargs(**kwargs):

0 commit comments

Comments
 (0)