Hello community,
here is the log from the commit of package python-typing_extensions for
openSUSE:Factory checked in at 2020-10-29 09:48:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-typing_extensions (Old)
and /work/SRC/openSUSE:Factory/.python-typing_extensions.new.3463 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-typing_extensions"
Thu Oct 29 09:48:09 2020 rev:8 rq:841925 version:3.7.4.3
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-typing_extensions/python-typing_extensions.changes
2020-04-07 10:26:23.326167196 +0200
+++
/work/SRC/openSUSE:Factory/.python-typing_extensions.new.3463/python-typing_extensions.changes
2020-10-29 09:48:15.580165023 +0100
@@ -1,0 +2,7 @@
+Thu Oct 15 12:51:36 UTC 2020 - Dirk Mueller <[email protected]>
+
+- update to version 3.7.4.3:
+ * enables PEP 613 Typealias to typing_extensions
+ * Fix tests for Python 3.9
+
+-------------------------------------------------------------------
Old:
----
typing_extensions-3.7.4.2.tar.gz
New:
----
typing_extensions-3.7.4.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-typing_extensions.spec ++++++
--- /var/tmp/diff_new_pack.sqh9IR/_old 2020-10-29 09:48:16.880166132 +0100
+++ /var/tmp/diff_new_pack.sqh9IR/_new 2020-10-29 09:48:16.880166132 +0100
@@ -20,7 +20,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%bcond_without python2
Name: python-typing_extensions
-Version: 3.7.4.2
+Version: 3.7.4.3
Release: 0
Summary: Backported and Experimental Type Hints for Python 35+
License: Python-2.0
++++++ typing_extensions-3.7.4.2.tar.gz -> typing_extensions-3.7.4.3.tar.gz
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/typing_extensions-3.7.4.2/PKG-INFO
new/typing_extensions-3.7.4.3/PKG-INFO
--- old/typing_extensions-3.7.4.2/PKG-INFO 2020-04-02 19:20:22.907262800
+0200
+++ new/typing_extensions-3.7.4.3/PKG-INFO 2020-08-23 18:33:40.000000000
+0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: typing_extensions
-Version: 3.7.4.2
+Version: 3.7.4.3
Summary: Backported and Experimental Type Hints for Python 3.5+
Home-page:
https://github.com/python/typing/blob/master/typing_extensions/README.rst
Author: Guido van Rossum, Jukka Lehtosalo, Lukasz Langa, Michael Lee
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/typing_extensions-3.7.4.2/setup.py
new/typing_extensions-3.7.4.3/setup.py
--- old/typing_extensions-3.7.4.2/setup.py 2020-04-02 19:19:42.000000000
+0200
+++ new/typing_extensions-3.7.4.3/setup.py 2020-08-23 18:32:30.000000000
+0200
@@ -9,7 +9,7 @@
'to install the typing package.\n')
exit(1)
-version = '3.7.4.2'
+version = '3.7.4.3'
description = 'Backported and Experimental Type Hints for Python 3.5+'
long_description = '''\
Typing Extensions -- Backported and Experimental Type Hints for Python
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/typing_extensions-3.7.4.2/src_py2/test_typing_extensions.py
new/typing_extensions-3.7.4.3/src_py2/test_typing_extensions.py
--- old/typing_extensions-3.7.4.2/src_py2/test_typing_extensions.py
2020-02-11 19:17:38.000000000 +0100
+++ new/typing_extensions-3.7.4.3/src_py2/test_typing_extensions.py
2020-07-08 00:29:25.000000000 +0200
@@ -7,7 +7,7 @@
from typing_extensions import Annotated, NoReturn, ClassVar, IntVar
from typing_extensions import ContextManager, Counter, Deque, DefaultDict
-from typing_extensions import NewType, overload
+from typing_extensions import NewType, TypeAlias, overload
from typing import Dict, List
import typing
import typing_extensions
@@ -377,6 +377,47 @@
self.assertEqual(X[int], List[Annotated[int, 5]])
+class TypeAliasTests(BaseTestCase):
+ def test_canonical_usage(self):
+ Alias = Employee # type: TypeAlias
+
+ def test_cannot_instantiate(self):
+ with self.assertRaises(TypeError):
+ TypeAlias()
+
+ def test_no_isinstance(self):
+ with self.assertRaises(TypeError):
+ isinstance(42, TypeAlias)
+
+ def test_no_issubclass(self):
+ with self.assertRaises(TypeError):
+ issubclass(Employee, TypeAlias)
+
+ with self.assertRaises(TypeError):
+ issubclass(TypeAlias, Employee)
+
+ def test_cannot_subclass(self):
+ with self.assertRaises(TypeError):
+ class C(TypeAlias):
+ pass
+
+ with self.assertRaises(TypeError):
+ class C(type(TypeAlias)):
+ pass
+
+ def test_repr(self):
+ if hasattr(typing, 'TypeAlias'):
+ self.assertEqual(repr(TypeAlias), 'typing.TypeAlias')
+ self.assertEqual(repr(type(TypeAlias)), 'typing.TypeAlias')
+ else:
+ self.assertEqual(repr(TypeAlias), 'typing_extensions.TypeAlias')
+ self.assertEqual(repr(type(TypeAlias)),
'typing_extensions.TypeAlias')
+
+ def test_cannot_subscript(self):
+ with self.assertRaises(TypeError):
+ TypeAlias[int]
+
+
class AllTests(BaseTestCase):
def test_typing_extensions_includes_standard(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/typing_extensions-3.7.4.2/src_py2/typing_extensions.py
new/typing_extensions-3.7.4.3/src_py2/typing_extensions.py
--- old/typing_extensions-3.7.4.2/src_py2/typing_extensions.py 2020-02-11
19:17:38.000000000 +0100
+++ new/typing_extensions-3.7.4.3/src_py2/typing_extensions.py 2020-07-08
00:29:25.000000000 +0200
@@ -5,6 +5,7 @@
ClassVar, Type, Generic, Callable, GenericMeta, TypingMeta,
Counter, DefaultDict, Deque, TypeVar, Tuple, Final, final,
NewType, overload, Text, TYPE_CHECKING, Literal, TypedDict, Protocol,
+ SupportsIndex,
runtime_checkable,
# We use internal typing helpers here, but this significantly reduces
# code duplication. (Also this is only until Protocol is in typing.)
@@ -26,6 +27,9 @@
'Deque',
'DefaultDict',
+ # Structural checks, a.k.a. protocols.
+ 'SupportsIndex',
+
# One-off things.
'final',
'IntVar',
@@ -237,5 +241,43 @@
__slots__ = ()
+class _TypeAliasMeta(typing.TypingMeta):
+ """Metaclass for TypeAlias"""
+
+ def __new__(cls, name, bases, namespace):
+ cls.assert_no_subclassing(bases)
+ self = super(_TypeAliasMeta, cls).__new__(cls, name, bases, namespace)
+ return self
+
+ def __repr__(self):
+ return 'typing_extensions.TypeAlias'
+
+
+class _TypeAliasBase(typing._FinalTypingBase):
+ """Special marker indicating that an assignment should
+ be recognized as a proper type alias definition by type
+ checkers.
+
+ For example::
+
+ Predicate = Callable[..., bool] # type: TypeAlias
+
+ It's invalid when used anywhere except as in the example above.
+ """
+ __metaclass__ = _TypeAliasMeta
+ __slots__ = ()
+
+ def __instancecheck__(self, obj):
+ raise TypeError("TypeAlias cannot be used with isinstance().")
+
+ def __subclasscheck__(self, cls):
+ raise TypeError("TypeAlias cannot be used with issubclass().")
+
+ def __repr__(self):
+ return 'typing_extensions.TypeAlias'
+
+
+TypeAlias = _TypeAliasBase(_root=True)
+
# This alias exists for backwards compatibility.
runtime = runtime_checkable
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/typing_extensions-3.7.4.2/src_py3/test_typing_extensions.py
new/typing_extensions-3.7.4.3/src_py3/test_typing_extensions.py
--- old/typing_extensions-3.7.4.2/src_py3/test_typing_extensions.py
2020-02-12 01:51:39.000000000 +0100
+++ new/typing_extensions-3.7.4.3/src_py3/test_typing_extensions.py
2020-07-08 00:29:25.000000000 +0200
@@ -13,6 +13,7 @@
from typing import Generic
from typing import no_type_check
from typing_extensions import NoReturn, ClassVar, Final, IntVar, Literal,
Type, NewType, TypedDict
+from typing_extensions import TypeAlias
try:
from typing_extensions import Protocol, runtime, runtime_checkable
except ImportError:
@@ -1588,13 +1589,17 @@
class AnnotatedTests(BaseTestCase):
def test_repr(self):
+ if hasattr(typing, 'Annotated'):
+ mod_name = 'typing'
+ else:
+ mod_name = "typing_extensions"
self.assertEqual(
repr(Annotated[int, 4, 5]),
- "typing_extensions.Annotated[int, 4, 5]"
+ mod_name + ".Annotated[int, 4, 5]"
)
self.assertEqual(
repr(Annotated[List[int], 4, 5]),
- "typing_extensions.Annotated[typing.List[int], 4, 5]"
+ mod_name + ".Annotated[typing.List[int], 4, 5]"
)
def test_flatten(self):
@@ -1822,6 +1827,52 @@
)
+class TypeAliasTests(BaseTestCase):
+ @skipUnless(PY36, 'Python 3.6 required')
+ def test_canonical_usage_with_variable_annotation(self):
+ ns = {}
+ exec('Alias: TypeAlias = Employee', globals(), ns)
+
+ def test_canonical_usage_with_type_comment(self):
+ Alias = Employee # type: TypeAlias
+
+ def test_cannot_instantiate(self):
+ with self.assertRaises(TypeError):
+ TypeAlias()
+
+ def test_no_isinstance(self):
+ with self.assertRaises(TypeError):
+ isinstance(42, TypeAlias)
+
+ def test_no_issubclass(self):
+ with self.assertRaises(TypeError):
+ issubclass(Employee, TypeAlias)
+
+ if SUBCLASS_CHECK_FORBIDDEN:
+ with self.assertRaises(TypeError):
+ issubclass(TypeAlias, Employee)
+
+ def test_cannot_subclass(self):
+ with self.assertRaises(TypeError):
+ class C(TypeAlias):
+ pass
+
+ if SUBCLASS_CHECK_FORBIDDEN:
+ with self.assertRaises(TypeError):
+ class C(type(TypeAlias)):
+ pass
+
+ def test_repr(self):
+ if hasattr(typing, 'TypeAlias'):
+ self.assertEqual(repr(TypeAlias), 'typing.TypeAlias')
+ else:
+ self.assertEqual(repr(TypeAlias), 'typing_extensions.TypeAlias')
+
+ def test_cannot_subscript(self):
+ with self.assertRaises(TypeError):
+ TypeAlias[int]
+
+
class AllTests(BaseTestCase):
def test_typing_extensions_includes_standard(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/typing_extensions-3.7.4.2/src_py3/typing_extensions.egg-info/PKG-INFO
new/typing_extensions-3.7.4.3/src_py3/typing_extensions.egg-info/PKG-INFO
--- old/typing_extensions-3.7.4.2/src_py3/typing_extensions.egg-info/PKG-INFO
2020-04-02 19:20:22.000000000 +0200
+++ new/typing_extensions-3.7.4.3/src_py3/typing_extensions.egg-info/PKG-INFO
2020-08-23 18:33:40.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: typing-extensions
-Version: 3.7.4.2
+Version: 3.7.4.3
Summary: Backported and Experimental Type Hints for Python 3.5+
Home-page:
https://github.com/python/typing/blob/master/typing_extensions/README.rst
Author: Guido van Rossum, Jukka Lehtosalo, Lukasz Langa, Michael Lee
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/typing_extensions-3.7.4.2/src_py3/typing_extensions.py
new/typing_extensions-3.7.4.3/src_py3/typing_extensions.py
--- old/typing_extensions-3.7.4.2/src_py3/typing_extensions.py 2020-02-12
01:51:39.000000000 +0100
+++ new/typing_extensions-3.7.4.3/src_py3/typing_extensions.py 2020-07-08
00:29:25.000000000 +0200
@@ -136,6 +136,9 @@
'DefaultDict',
'TypedDict',
+ # Structural checks, a.k.a. protocols.
+ 'SupportsIndex',
+
# One-off things.
'final',
'IntVar',
@@ -1569,6 +1572,18 @@
runtime = runtime_checkable
+if hasattr(typing, 'SupportsIndex'):
+ SupportsIndex = typing.SupportsIndex
+elif HAVE_PROTOCOLS:
+ @runtime_checkable
+ class SupportsIndex(Protocol):
+ __slots__ = ()
+
+ @abc.abstractmethod
+ def __index__(self) -> int:
+ pass
+
+
if sys.version_info[:2] >= (3, 9):
# The standard library TypedDict in Python 3.8 does not store runtime
information
# about which (if any) keys are optional. See
https://bugs.python.org/issue38834
@@ -2056,3 +2071,98 @@
res = (list(res[:-1]), res[-1])
return res
return ()
+
+
+if hasattr(typing, 'TypeAlias'):
+ TypeAlias = typing.TypeAlias
+elif sys.version_info[:2] >= (3, 9):
+ class _TypeAliasForm(typing._SpecialForm, _root=True):
+ def __repr__(self):
+ return 'typing_extensions.' + self._name
+
+ @_TypeAliasForm
+ def TypeAlias(self, parameters):
+ """Special marker indicating that an assignment should
+ be recognized as a proper type alias definition by type
+ checkers.
+
+ For example::
+
+ Predicate: TypeAlias = Callable[..., bool]
+
+ It's invalid when used anywhere except as in the example above.
+ """
+ raise TypeError("{} is not subscriptable".format(self))
+
+elif sys.version_info[:2] >= (3, 7):
+ class _TypeAliasForm(typing._SpecialForm, _root=True):
+ def __repr__(self):
+ return 'typing_extensions.' + self._name
+
+ TypeAlias = _TypeAliasForm('TypeAlias',
+ doc="""Special marker indicating that an
assignment should
+ be recognized as a proper type alias definition
by type
+ checkers.
+
+ For example::
+
+ Predicate: TypeAlias = Callable[..., bool]
+
+ It's invalid when used anywhere except as in
the example
+ above.""")
+
+elif hasattr(typing, '_FinalTypingBase'):
+ class _TypeAliasMeta(typing.TypingMeta):
+ """Metaclass for TypeAlias"""
+
+ def __repr__(self):
+ return 'typing_extensions.TypeAlias'
+
+ class _TypeAliasBase(typing._FinalTypingBase, metaclass=_TypeAliasMeta,
_root=True):
+ """Special marker indicating that an assignment should
+ be recognized as a proper type alias definition by type
+ checkers.
+
+ For example::
+
+ Predicate: TypeAlias = Callable[..., bool]
+
+ It's invalid when used anywhere except as in the example above.
+ """
+ __slots__ = ()
+
+ def __instancecheck__(self, obj):
+ raise TypeError("TypeAlias cannot be used with isinstance().")
+
+ def __subclasscheck__(self, cls):
+ raise TypeError("TypeAlias cannot be used with issubclass().")
+
+ def __repr__(self):
+ return 'typing_extensions.TypeAlias'
+
+ TypeAlias = _TypeAliasBase(_root=True)
+else:
+ class _TypeAliasMeta(typing.TypingMeta):
+ """Metaclass for TypeAlias"""
+
+ def __instancecheck__(self, obj):
+ raise TypeError("TypeAlias cannot be used with isinstance().")
+
+ def __subclasscheck__(self, cls):
+ raise TypeError("TypeAlias cannot be used with issubclass().")
+
+ def __call__(self, *args, **kwargs):
+ raise TypeError("Cannot instantiate TypeAlias")
+
+ class TypeAlias(metaclass=_TypeAliasMeta, _root=True):
+ """Special marker indicating that an assignment should
+ be recognized as a proper type alias definition by type
+ checkers.
+
+ For example::
+
+ Predicate: TypeAlias = Callable[..., bool]
+
+ It's invalid when used anywhere except as in the example above.
+ """
+ __slots__ = ()