Skip to content

Commit 589cf63

Browse files
committed
Add type annotations
1 parent 0917d24 commit 589cf63

File tree

2 files changed

+18
-20
lines changed

2 files changed

+18
-20
lines changed

Lib/_pyrepl/completing_reader.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,6 @@ def get_stem(self) -> str:
294294
def get_completions(self, stem: str) -> list[str]:
295295
return []
296296

297-
def get_line(self):
297+
def get_line(self) -> str:
298298
"""Return the current line until the cursor position."""
299299
return ''.join(self.buffer[:self.pos])

Lib/_pyrepl/readline.py

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828

2929
from __future__ import annotations
3030

31-
import importlib
3231
import pkgutil
3332
import tokenize
3433
import warnings
@@ -65,8 +64,7 @@
6564
TYPE_CHECKING = False
6665

6766
if TYPE_CHECKING:
68-
from typing import Any, Mapping
69-
from types import ModuleType
67+
from typing import Any, Iterator, Mapping
7068

7169

7270
MoreLinesCallable = Callable[[str], bool]
@@ -629,7 +627,7 @@ class ModuleCompleter:
629627
- from foo import (bar as baz, qux<tab>
630628
"""
631629

632-
def __init__(self, namespace: Mapping[str, Any] | None = None):
630+
def __init__(self, namespace: Mapping[str, Any] | None = None) -> None:
633631
self.namespace = namespace or {}
634632
self._global_cache: list[str] = []
635633
self._curr_sys_path: list[str] = sys.path[:]
@@ -679,7 +677,7 @@ def find_modules(self, path: str, prefix: str) -> list[str]:
679677
return [module.name for module in modules
680678
if module.name.startswith(prefix)]
681679

682-
def iter_submodules(self, parent_modules):
680+
def iter_submodules(self, parent_modules) -> Iterator[pkgutil.ModuleInfo]:
683681
"""Iterate over all submodules of the given parent modules."""
684682
specs = [info.module_finder.find_spec(info.name)
685683
for info in parent_modules if info.ispkg]
@@ -716,7 +714,7 @@ def format_completion(self, path: str, module: str) -> str:
716714
return f'{path}{module}'
717715
return f'{path}.{module}'
718716

719-
def resolve_relative_name(self, name, package):
717+
def resolve_relative_name(self, name, package) -> str | None:
720718
"""Resolve a relative module name to an absolute name.
721719
722720
Example: resolve_relative_name('.foo', 'bar') -> 'bar.foo'
@@ -765,7 +763,7 @@ class ImportParser:
765763
}
766764
_keywords = {'import', 'from', 'as'}
767765

768-
def __init__(self, code: str):
766+
def __init__(self, code: str) -> None:
769767
self.code = code
770768
tokens = []
771769
try:
@@ -783,18 +781,18 @@ def __init__(self, code: str):
783781
tokens = []
784782
self.tokens = TokenQueue(tokens[::-1])
785783

786-
def parse(self):
784+
def parse(self) -> tuple[str | None, str | None] | None:
787785
if not (res := self._parse()):
788786
return None
789787
return res.from_name, res.name
790788

791-
def _parse(self):
789+
def _parse(self) -> Result | None:
792790
with self.tokens.save_state():
793791
return self.parse_from_import()
794792
with self.tokens.save_state():
795793
return self.parse_import()
796794

797-
def parse_import(self):
795+
def parse_import(self) -> Result:
798796
if self.code.rstrip().endswith('import') and self.code.endswith(' '):
799797
return Result(name='')
800798
if self.tokens.peek_string(','):
@@ -812,7 +810,7 @@ def parse_import(self):
812810
return Result(name=name)
813811
raise ParseError('parse_import')
814812

815-
def parse_from_import(self):
813+
def parse_from_import(self) -> Result:
816814
if self.code.rstrip().endswith('import') and self.code.endswith(' '):
817815
return Result(from_name=self.parse_empty_from_import(), name='')
818816
if self.code.rstrip().endswith('from') and self.code.endswith(' '):
@@ -830,7 +828,7 @@ def parse_from_import(self):
830828
from_name = self.parse_empty_from_import()
831829
return Result(from_name=from_name, name=name)
832830

833-
def parse_empty_from_import(self):
831+
def parse_empty_from_import(self) -> str:
834832
if self.tokens.peek_string(','):
835833
self.tokens.pop()
836834
self.parse_as_names()
@@ -839,19 +837,19 @@ def parse_empty_from_import(self):
839837
self.tokens.pop_string('import')
840838
return self.parse_from()
841839

842-
def parse_from(self):
840+
def parse_from(self) -> str:
843841
from_name = self.parse_dotted_name()
844842
self.tokens.pop_string('from')
845843
return from_name
846844

847-
def parse_dotted_as_name(self):
845+
def parse_dotted_as_name(self) -> str:
848846
self.tokens.pop_name()
849847
if self.tokens.peek_string('as'):
850848
self.tokens.pop()
851849
with self.tokens.save_state():
852850
return self.parse_dotted_name()
853851

854-
def parse_dotted_name(self):
852+
def parse_dotted_name(self) -> str:
855853
name = []
856854
if self.tokens.peek_string('.'):
857855
name.append('.')
@@ -873,13 +871,13 @@ def parse_dotted_name(self):
873871
self.tokens.pop()
874872
return ''.join(name[::-1])
875873

876-
def parse_as_names(self):
874+
def parse_as_names(self) -> None:
877875
self.parse_as_name()
878876
while self.tokens.peek_string(','):
879877
self.tokens.pop()
880878
self.parse_as_name()
881879

882-
def parse_as_name(self):
880+
def parse_as_name(self) -> None:
883881
self.tokens.pop_name()
884882
if self.tokens.peek_string('as'):
885883
self.tokens.pop()
@@ -905,7 +903,7 @@ def __init__(self, tokens: list[TokenInfo]) -> None:
905903
self.stack: list[int] = []
906904

907905
@contextmanager
908-
def save_state(self):
906+
def save_state(self) -> Any:
909907
try:
910908
self.stack.append(self.index)
911909
yield
@@ -914,7 +912,7 @@ def save_state(self):
914912
else:
915913
self.stack.pop()
916914

917-
def __bool__(self):
915+
def __bool__(self) -> bool:
918916
return self.index < len(self.tokens)
919917

920918
def peek(self) -> TokenInfo | None:

0 commit comments

Comments
 (0)