Make builtins work

- Jedi cannot really deal with __new__.
- A typeshed issue: "function" should not be defined in the stubs.
- Jedi cannot deal with the weird __call__: NotImplemented typing,
  because it's recursive.
This commit is contained in:
Dave Halter
2019-05-19 00:14:39 +02:00
parent fb753c4226
commit ae9d4f4b21

View File

@@ -166,6 +166,10 @@ class int:
def __new__(cls: Type[_T], x: Union[str, bytes, SupportsInt, _SupportsIndex, _SupportsTrunc] = ...) -> _T: ...
@overload
def __new__(cls: Type[_T], x: Union[str, bytes, bytearray], base: int) -> _T: ...
@overload
def __init__(self, x: Union[str, bytes, SupportsInt, _SupportsIndex, _SupportsTrunc] = ...) -> _T: ...
@overload
def __init__(self, x: Union[str, bytes, bytearray], base: int) -> _T: ...
if sys.version_info >= (3, 8):
def as_integer_ratio(self) -> Tuple[int, Literal[1]]: ...
@property
@@ -326,6 +330,10 @@ class str(Sequence[str]):
def __new__(cls: Type[_T], o: object = ...) -> _T: ...
@overload
def __new__(cls: Type[_T], o: bytes, encoding: str = ..., errors: str = ...) -> _T: ...
@overload
def __init__(self, o: object = ...) -> _T: ...
@overload
def __init__(self, o: bytes, encoding: str = ..., errors: str = ...) -> _T: ...
def capitalize(self) -> str: ...
def casefold(self) -> str: ...
def center(self, __width: int, __fillchar: str = ...) -> str: ...
@@ -622,6 +630,7 @@ class memoryview(Sized, Container[int]):
class bool(int):
def __new__(cls: Type[_T], __o: object = ...) -> _T: ...
def __init__(self, o: object = ...): ...
@overload
def __and__(self, x: bool) -> bool: ...
@overload
@@ -661,6 +670,7 @@ class slice(object):
class tuple(Sequence[_T_co], Generic[_T_co]):
def __new__(cls: Type[_T], iterable: Iterable[_T_co] = ...) -> _T: ...
def __init__(self, iterable: Iterable[_T_co] = ...): ...
def __len__(self) -> int: ...
def __contains__(self, x: object) -> bool: ...
@overload
@@ -683,14 +693,6 @@ class tuple(Sequence[_T_co], Generic[_T_co]):
if sys.version_info >= (3, 9):
def __class_getitem__(cls, item: Any) -> GenericAlias: ...
class function:
# TODO not defined in builtins!
__name__: str
__module__: str
__code__: CodeType
__qualname__: str
__annotations__: Dict[str, Any]
class list(MutableSequence[_T], Generic[_T]):
@overload
def __init__(self) -> None: ...
@@ -743,7 +745,7 @@ class dict(MutableMapping[_KT, _VT], Generic[_KT, _VT]):
@overload
def __init__(self, **kwargs: _VT) -> None: ...
@overload
def __init__(self, map: SupportsKeysAndGetItem[_KT, _VT], **kwargs: _VT) -> None: ...
def __init__(self, map: Mapping[_KT, _VT], **kwargs: _VT) -> None: ...
@overload
def __init__(self, iterable: Iterable[Tuple[_KT, _VT]], **kwargs: _VT) -> None: ...
def __new__(cls: Type[_T1], *args: Any, **kwargs: Any) -> _T1: ...
@@ -892,7 +894,7 @@ class property(object):
class _NotImplementedType(Any): # type: ignore
# A little weird, but typing the __call__ as NotImplemented makes the error message
# for NotImplemented() much better
__call__: NotImplemented # type: ignore
pass
NotImplemented: _NotImplementedType