diff options
author | Daniƫl van Noord <13665637+DanielNoord@users.noreply.github.com> | 2022-07-11 16:30:32 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-11 16:30:32 +0200 |
commit | c9425824b06adc654ca2d5f7b1471f65f74f64f6 (patch) | |
tree | fc7a9e6b2da82e1ad9574e1048c3868f339c8913 /astroid/bases.py | |
parent | bb4b66abc11810c4bc5928d2d92e779569709474 (diff) | |
download | astroid-git-c9425824b06adc654ca2d5f7b1471f65f74f64f6.tar.gz |
Add some implicit typing (#1706)
* Type most defintions of ``pytype`` and ``qname``
* Add typing to ``implicit_parameters``
* Type ``type()``
Diffstat (limited to 'astroid/bases.py')
-rw-r--r-- | astroid/bases.py | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/astroid/bases.py b/astroid/bases.py index a154838c..1f5072a8 100644 --- a/astroid/bases.py +++ b/astroid/bases.py @@ -9,6 +9,7 @@ from __future__ import annotations import collections import collections.abc +import sys from collections.abc import Sequence from typing import Any @@ -29,6 +30,11 @@ from astroid.exceptions import ( from astroid.typing import InferenceErrorInfo, InferenceResult from astroid.util import Uninferable, lazy_descriptor, lazy_import +if sys.version_info >= (3, 8): + from typing import Literal +else: + from typing_extensions import Literal + objectmodel = lazy_import("interpreter.objectmodel") helpers = lazy_import("helpers") manager = lazy_import("manager") @@ -326,7 +332,7 @@ class Instance(BaseInstance): except AttributeInferenceError: return False - def pytype(self): + def pytype(self) -> str: return self._proxied.qname() def display_type(self): @@ -390,7 +396,7 @@ class UnboundMethod(Proxy): self.__class__.__name__, self._proxied.name, frame.qname(), id(self) ) - def implicit_parameters(self): + def implicit_parameters(self) -> Literal[0]: return 0 def is_bound(self): @@ -470,7 +476,7 @@ class BoundMethod(UnboundMethod): super().__init__(proxy) self.bound = bound - def implicit_parameters(self): + def implicit_parameters(self) -> Literal[0, 1]: if self.name == "__new__": # __new__ acts as a classmethod but the class argument is not implicit. return 0 @@ -611,7 +617,7 @@ class Generator(BaseInstance): def callable(self): return False - def pytype(self): + def pytype(self) -> Literal["builtins.generator"]: return "builtins.generator" def display_type(self): @@ -630,7 +636,7 @@ class Generator(BaseInstance): class AsyncGenerator(Generator): """Special node representing an async generator""" - def pytype(self): + def pytype(self) -> Literal["builtins.async_generator"]: return "builtins.async_generator" def display_type(self): |