mirror of
https://github.com/davidhalter/typeshed.git
synced 2025-12-08 21:14:48 +08:00
Make all single-constraint TypeVars to use bounds
According to the documentation in the typing module, TypeVars cannot have only a single constraint. Attempting to do so will actually result in an exception at runtime. (However, this error is currently ignored by mypy -- see https://github.com/python/mypy/pull/2626 for a related pending pull request). This commit changes all instances of TypeVars using a single constraint (e.g. `T = TypeVar('T', Foo)`) to use bounds instead (e.g. `T = TypeVar('T', bound=Foo)`. This seems to be the correct fix for plistlib after reading the module docs, but it's less obvious this is correct for unittest. The unittest module originally had `_FT = TypeVar('_FT', Callable[[Any], Any])` -- an alternative fix would have been to do `_FT = Callable[[Any], Any]`. Although I'm not entirely sure what it means to have a bound be a Callable, I decided to make the assumption that the original authors probably meant to use TypeVars instead of type aliases for a reason (possibly to handle classes implementing `__call__`?)
This commit is contained in:
committed by
Łukasz Langa
parent
c34f11d569
commit
b46366e77d
@@ -12,7 +12,7 @@ from contextlib import ContextManager
|
||||
|
||||
|
||||
_T = TypeVar('_T')
|
||||
_FT = TypeVar('_FT', Callable[[Any], Any])
|
||||
_FT = TypeVar('_FT', bound=Callable[[Any], Any])
|
||||
|
||||
|
||||
def skip(reason: str) -> Callable[[_FT], _FT]: ...
|
||||
|
||||
Reference in New Issue
Block a user