Skip to content

Commit a046d97

Browse files
committed
downgrade typing_extensions for 3.7
1 parent c5777ee commit a046d97

File tree

2 files changed

+14
-33
lines changed

2 files changed

+14
-33
lines changed

metaflow/_vendor/v3_7/typing_extensions.py

Lines changed: 13 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -953,21 +953,6 @@ def __round__(self, ndigits: int = 0) -> T_co:
953953
pass
954954

955955

956-
def _ensure_subclassable(mro_entries):
957-
def inner(func):
958-
if sys.implementation.name == "pypy" and sys.version_info < (3, 9):
959-
cls_dict = {
960-
"__call__": staticmethod(func),
961-
"__mro_entries__": staticmethod(mro_entries)
962-
}
963-
t = type(func.__name__, (), cls_dict)
964-
return functools.update_wrapper(t(), func)
965-
else:
966-
func.__mro_entries__ = mro_entries
967-
return func
968-
return inner
969-
970-
971956
if sys.version_info >= (3, 13):
972957
# The standard library TypedDict in Python 3.8 does not store runtime information
973958
# about which (if any) keys are optional. See https://bugs.python.org/issue38834
@@ -1074,9 +1059,6 @@ def __subclasscheck__(cls, other):
10741059

10751060
__instancecheck__ = __subclasscheck__
10761061

1077-
_TypedDict = type.__new__(_TypedDictMeta, 'TypedDict', (), {})
1078-
1079-
@_ensure_subclassable(lambda bases: (_TypedDict,))
10801062
def TypedDict(__typename, __fields=_marker, *, total=True, **kwargs):
10811063
"""A simple typed namespace. At runtime it is equivalent to a plain dict.
10821064
@@ -1160,6 +1142,9 @@ class Point2D(TypedDict):
11601142
td.__orig_bases__ = (TypedDict,)
11611143
return td
11621144

1145+
_TypedDict = type.__new__(_TypedDictMeta, 'TypedDict', (), {})
1146+
TypedDict.__mro_entries__ = lambda bases: (_TypedDict,)
1147+
11631148
if hasattr(typing, "_TypedDictMeta"):
11641149
_TYPEDDICT_TYPES = (typing._TypedDictMeta, _TypedDictMeta)
11651150
else:
@@ -2648,13 +2633,6 @@ def __new__(cls, typename, bases, ns):
26482633
nm_tpl.__init_subclass__()
26492634
return nm_tpl
26502635

2651-
_NamedTuple = type.__new__(_NamedTupleMeta, 'NamedTuple', (), {})
2652-
2653-
def _namedtuple_mro_entries(bases):
2654-
assert NamedTuple in bases
2655-
return (_NamedTuple,)
2656-
2657-
@_ensure_subclassable(_namedtuple_mro_entries)
26582636
def NamedTuple(__typename, __fields=_marker, **kwargs):
26592637
"""Typed version of namedtuple.
26602638
@@ -2720,15 +2698,19 @@ class Employee(NamedTuple):
27202698
nt.__orig_bases__ = (NamedTuple,)
27212699
return nt
27222700

2701+
_NamedTuple = type.__new__(_NamedTupleMeta, 'NamedTuple', (), {})
2702+
27232703
# On 3.8+, alter the signature so that it matches typing.NamedTuple.
27242704
# The signature of typing.NamedTuple on >=3.8 is invalid syntax in Python 3.7,
27252705
# so just leave the signature as it is on 3.7.
27262706
if sys.version_info >= (3, 8):
2727-
_new_signature = '(typename, fields=None, /, **kwargs)'
2728-
if isinstance(NamedTuple, _types.FunctionType):
2729-
NamedTuple.__text_signature__ = _new_signature
2730-
else:
2731-
NamedTuple.__call__.__text_signature__ = _new_signature
2707+
NamedTuple.__text_signature__ = '(typename, fields=None, /, **kwargs)'
2708+
2709+
def _namedtuple_mro_entries(bases):
2710+
assert NamedTuple in bases
2711+
return (_NamedTuple,)
2712+
2713+
NamedTuple.__mro_entries__ = _namedtuple_mro_entries
27322714

27332715

27342716
if hasattr(collections.abc, "Buffer"):
@@ -3004,8 +2986,7 @@ def is_protocol(__tp: type) -> bool:
30042986
return (
30052987
isinstance(__tp, type)
30062988
and getattr(__tp, '_is_protocol', False)
3007-
and __tp is not Protocol
3008-
and __tp is not getattr(typing, "Protocol", object())
2989+
and __tp != Protocol
30092990
)
30102991

30112992
def get_protocol_members(__tp: type) -> typing.FrozenSet[str]:

metaflow/_vendor/vendor_v3_7.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
typeguard==4.1.2
2-
typing_extensions==4.7.1
2+
typing_extensions==4.7.0

0 commit comments

Comments
 (0)