summaryrefslogtreecommitdiff
path: root/astroid/bases.py
diff options
context:
space:
mode:
authorDaniƫl van Noord <13665637+DanielNoord@users.noreply.github.com>2022-07-11 16:30:32 +0200
committerGitHub <noreply@github.com>2022-07-11 16:30:32 +0200
commitc9425824b06adc654ca2d5f7b1471f65f74f64f6 (patch)
treefc7a9e6b2da82e1ad9574e1048c3868f339c8913 /astroid/bases.py
parentbb4b66abc11810c4bc5928d2d92e779569709474 (diff)
downloadastroid-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.py16
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):