Work around mypy issue #4554 in attrs. (#1914)

This commit is contained in:
David Euresti
2018-02-24 13:00:15 -08:00
committed by Jelle Zijlstra
parent 38aea73b4b
commit 61e63293f1

View File

@@ -66,7 +66,19 @@ class Attribute(Generic[_T]):
# This makes this type of assignments possible:
# x: int = attr(8)
# 1st form catches _T set.
# 1st form catches _T set and works around mypy issue #4554
@overload
def attrib(default: _T,
validator: Optional[_ValidatorArgType[_T]] = ...,
repr: bool = ...,
cmp: bool = ...,
hash: Optional[bool] = ...,
init: bool = ...,
convert: Optional[_ConverterType[_T]] = ...,
metadata: Optional[Mapping[Any, Any]] = ...,
type: Optional[Type[_T]] = ...,
converter: Optional[_ConverterType[_T]] = ...) -> _T: ...
# 2nd one with an optional default.
@overload
def attrib(default: Optional[_T] = ...,
validator: Optional[_ValidatorArgType[_T]] = ...,
@@ -78,7 +90,7 @@ def attrib(default: Optional[_T] = ...,
metadata: Optional[Mapping[Any, Any]] = ...,
type: Optional[Type[_T]] = ...,
converter: Optional[_ConverterType[_T]] = ...) -> _T: ...
# 2nd form no _T , so returns Any.
# 3rd form no _T , so returns Any.
@overload
def attrib(default: None = ...,
validator: None = ...,
@@ -86,11 +98,11 @@ def attrib(default: None = ...,
cmp: bool = ...,
hash: Optional[bool] = ...,
init: bool = ...,
convert: Optional[_ConverterType[_T]] = ...,
convert: None = ...,
metadata: Optional[Mapping[Any, Any]] = ...,
type: None = ...,
converter: None = ...) -> Any: ...
# 3rd form covers non-Type: e.g. forward references (str), Any
# 4th form covers type=non-Type: e.g. forward references (str), Any
@overload
def attrib(default: Optional[_T] = ...,
validator: Optional[_ValidatorArgType[_T]] = ...,
@@ -191,6 +203,17 @@ def get_run_validators() -> bool: ...
# dataclass = attrs # Technically, partial(attrs, auto_attribs=True) ;)
@overload
def ib(default: _T,
validator: Optional[_ValidatorArgType[_T]] = ...,
repr: bool = ...,
cmp: bool = ...,
hash: Optional[bool] = ...,
init: bool = ...,
convert: Optional[_ConverterType[_T]] = ...,
metadata: Optional[Mapping[Any, Any]] = ...,
type: Optional[Type[_T]] = ...,
converter: Optional[_ConverterType[_T]] = ...) -> _T: ...
@overload
def ib(default: Optional[_T] = ...,
validator: Optional[_ValidatorArgType[_T]] = ...,
@@ -209,7 +232,7 @@ def ib(default: None = ...,
cmp: bool = ...,
hash: Optional[bool] = ...,
init: bool = ...,
convert: Optional[_ConverterType[_T]] = ...,
convert: None = ...,
metadata: Optional[Mapping[Any, Any]] = ...,
type: None = ...,
converter: None = ...) -> Any: ...
@@ -226,6 +249,17 @@ def ib(default: Optional[_T] = ...,
converter: Optional[_ConverterType[_T]] = ...) -> Any: ...
@overload
def attr(default: _T,
validator: Optional[_ValidatorArgType[_T]] = ...,
repr: bool = ...,
cmp: bool = ...,
hash: Optional[bool] = ...,
init: bool = ...,
convert: Optional[_ConverterType[_T]] = ...,
metadata: Optional[Mapping[Any, Any]] = ...,
type: Optional[Type[_T]] = ...,
converter: Optional[_ConverterType[_T]] = ...) -> _T: ...
@overload
def attr(default: Optional[_T] = ...,
validator: Optional[_ValidatorArgType[_T]] = ...,
repr: bool = ...,
@@ -243,7 +277,7 @@ def attr(default: None = ...,
cmp: bool = ...,
hash: Optional[bool] = ...,
init: bool = ...,
convert: Optional[_ConverterType[_T]] = ...,
convert: None = ...,
metadata: Optional[Mapping[Any, Any]] = ...,
type: None = ...,
converter: None = ...) -> Any: ...