Skip to content

Commit cd96b1d

Browse files
committed
refactor: Replace *Generator with *Iterator
1 parent 8589f7e commit cd96b1d

File tree

19 files changed

+59
-62
lines changed

19 files changed

+59
-62
lines changed

robotcode/__version__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "0.25.2.dev22+gba3f589.d20230203"
1+
__version__ = "0.25.2"

robotcode/debugger/debugger.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
ClassVar,
1616
Deque,
1717
Dict,
18-
Generator,
18+
Iterator,
1919
List,
2020
Literal,
2121
NamedTuple,
@@ -964,7 +964,7 @@ def source_from_entry(entry: StackFrameEntry) -> Optional[Source]:
964964
else:
965965
return None
966966

967-
def yield_stack() -> Generator[StackFrame, None, None]:
967+
def yield_stack() -> Iterator[StackFrame]:
968968
for i, v in enumerate(itertools.islice(self.stack_frames, start_frame, levels)):
969969
if v.stack_frames:
970970
yield StackFrame(

robotcode/language_server/robotframework/diagnostics/analyzer.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import os
77
from collections import defaultdict
88
from dataclasses import dataclass
9-
from typing import Any, Dict, Generator, List, Optional, Set, Tuple, Union, cast
9+
from typing import Any, Dict, Iterator, List, Optional, Set, Tuple, Union, cast
1010

1111
from ....utils.uri import Uri
1212
from ...common.lsp_types import (
@@ -91,7 +91,7 @@ async def run(self) -> AnalyzerResult:
9191

9292
return AnalyzerResult(self._diagnostics, self._keyword_references, self._variable_references)
9393

94-
def yield_argument_name_and_rest(self, node: ast.AST, token: Token) -> Generator[Token, None, None]:
94+
def yield_argument_name_and_rest(self, node: ast.AST, token: Token) -> Iterator[Token]:
9595
from robot.parsing.lexer.tokens import Token as RobotToken
9696
from robot.parsing.model.statements import Arguments
9797

robotcode/language_server/robotframework/diagnostics/namespace.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@
1414
from pathlib import Path
1515
from typing import (
1616
Any,
17-
AsyncGenerator,
17+
AsyncIterator,
1818
Dict,
19-
Generator,
2019
Iterable,
20+
Iterator,
2121
List,
2222
NamedTuple,
2323
Optional,
@@ -920,7 +920,7 @@ async def yield_variables(
920920
nodes: Optional[List[ast.AST]] = None,
921921
position: Optional[Position] = None,
922922
skip_commandline_variables: bool = False,
923-
) -> AsyncGenerator[Tuple[VariableMatcher, VariableDefinition], None]:
923+
) -> AsyncIterator[Tuple[VariableMatcher, VariableDefinition]]:
924924
from robot.parsing.model.blocks import Keyword, TestCase
925925
from robot.parsing.model.statements import Arguments
926926

@@ -1494,7 +1494,7 @@ async def get_imported_keywords(self) -> List[KeywordDoc]:
14941494
return self._imported_keywords
14951495

14961496
@_logger.call
1497-
async def iter_all_keywords(self) -> AsyncGenerator[KeywordDoc, None]:
1497+
async def iter_all_keywords(self) -> AsyncIterator[KeywordDoc]:
14981498
import itertools
14991499

15001500
libdoc = await self.get_library_doc()
@@ -1799,7 +1799,7 @@ def _get_keyword_from_self(self, name: str) -> Optional[KeywordDoc]:
17991799
)
18001800
raise CancelSearchError() from e
18011801

1802-
def _yield_owner_and_kw_names(self, full_name: str) -> Generator[Tuple[str, ...], None, None]:
1802+
def _yield_owner_and_kw_names(self, full_name: str) -> Iterator[Tuple[str, ...]]:
18031803
tokens = full_name.split(".")
18041804
for i in range(1, len(tokens)):
18051805
yield ".".join(tokens[:i]), ".".join(tokens[i:])

robotcode/language_server/robotframework/parts/completion.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from typing import (
99
TYPE_CHECKING,
1010
Any,
11-
AsyncGenerator,
11+
AsyncIterator,
1212
Awaitable,
1313
Callable,
1414
Dict,
@@ -242,7 +242,7 @@ def __init__(
242242
self.namespace = namespace
243243
self.config = config
244244

245-
async def _find_methods(self, cls: Type[Any]) -> AsyncGenerator[_CompleteMethod, None]:
245+
async def _find_methods(self, cls: Type[Any]) -> AsyncIterator[_CompleteMethod]:
246246
if cls is ast.AST:
247247
return
248248

@@ -266,7 +266,7 @@ async def collect(
266266

267267
result_nodes.reverse()
268268

269-
async def iter_results() -> AsyncGenerator[List[CompletionItem], None]:
269+
async def iter_results() -> AsyncIterator[List[CompletionItem]]:
270270
for result_node in result_nodes:
271271
async for method in self._find_methods(type(result_node)):
272272
r = await method(result_node, result_nodes, position, context)

robotcode/language_server/robotframework/parts/documents_cache.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
TYPE_CHECKING,
88
Any,
99
Callable,
10-
Generator,
1110
Iterable,
11+
Iterator,
1212
List,
1313
Optional,
1414
Tuple,
@@ -292,7 +292,7 @@ def __get_model(self, document: TextDocument, tokens: Iterable[Any], document_ty
292292
from robot.parsing.lexer import Token
293293
from robot.parsing.parser.parser import _get_model
294294

295-
def get_tokens(source: str, data_only: bool = False, lang: Any = None) -> Generator[Token, None, None]:
295+
def get_tokens(source: str, data_only: bool = False, lang: Any = None) -> Iterator[Token]:
296296
for t in tokens:
297297
check_canceled_sync()
298298

robotcode/language_server/robotframework/parts/inline_value.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from __future__ import annotations
22

33
import ast
4-
from typing import TYPE_CHECKING, Any, Generator, List, Optional, Tuple
4+
from typing import TYPE_CHECKING, Any, Iterator, List, Optional, Tuple
55

66
from ....utils.async_itertools import async_dropwhile, async_takewhile
77
from ....utils.logging import LoggingDescriptor
@@ -53,7 +53,7 @@ async def collect(
5353

5454
nodes = await get_nodes_at_position(model, context.stopped_location.start)
5555

56-
def get_tokens() -> Generator[Tuple[Token, ast.AST], None, None]:
56+
def get_tokens() -> Iterator[Tuple[Token, ast.AST]]:
5757
for n in iter_nodes(model):
5858
r = range_from_node(n)
5959
if (r.start in real_range or r.end in real_range) and isinstance(n, HasTokens):

robotcode/language_server/robotframework/parts/model_helper.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77
from tokenize import TokenError, generate_tokens
88
from typing import (
99
Any,
10-
AsyncGenerator,
10+
AsyncIterator,
1111
Dict,
12-
Generator,
12+
Iterator,
1313
List,
1414
Optional,
1515
Set,
@@ -242,7 +242,7 @@ async def iter_expression_variables_from_token(
242242
position: Optional[Position] = None,
243243
skip_commandline_variables: bool = False,
244244
return_not_found: bool = False,
245-
) -> AsyncGenerator[Tuple[Token, VariableDefinition], Any]:
245+
) -> AsyncIterator[Tuple[Token, VariableDefinition]]:
246246
from robot.api.parsing import Token as RobotToken
247247

248248
variable_started = False
@@ -330,7 +330,7 @@ def _tokenize_variables(
330330
ignore_errors: bool = False,
331331
*,
332332
extra_types: Optional[Set[str]] = None,
333-
) -> Generator[Token, Any, Any]:
333+
) -> Iterator[Token]:
334334
from robot.api.parsing import Token as RobotToken
335335

336336
for t in tokenize_variables(token, identifiers, ignore_errors, extra_types=extra_types):
@@ -352,7 +352,7 @@ async def iter_variables_from_token(
352352
position: Optional[Position] = None,
353353
skip_commandline_variables: bool = False,
354354
return_not_found: bool = False,
355-
) -> AsyncGenerator[Tuple[Token, VariableDefinition], Any]:
355+
) -> AsyncIterator[Tuple[Token, VariableDefinition]]:
356356
from robot.api.parsing import Token as RobotToken
357357
from robot.variables.search import contains_variable, search_variable
358358

@@ -366,7 +366,7 @@ def is_number(name: str) -> bool:
366366

367367
async def iter_token(
368368
to: Token, ignore_errors: bool = False
369-
) -> AsyncGenerator[Union[Token, Tuple[Token, VariableDefinition]], Any]:
369+
) -> AsyncIterator[Union[Token, Tuple[Token, VariableDefinition]]]:
370370
for sub_token in cls._tokenize_variables(to, ignore_errors=ignore_errors):
371371
if sub_token.type == RobotToken.VARIABLE:
372372
base = sub_token.value[2:-1]

robotcode/language_server/robotframework/parts/semantic_tokens.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from typing import (
1010
TYPE_CHECKING,
1111
Any,
12-
AsyncGenerator,
12+
AsyncIterator,
1313
Dict,
1414
FrozenSet,
1515
List,
@@ -263,7 +263,7 @@ async def generate_sem_sub_tokens(
263263
node: ast.AST,
264264
col_offset: Optional[int] = None,
265265
length: Optional[int] = None,
266-
) -> AsyncGenerator[SemTokenInfo, None]:
266+
) -> AsyncIterator[SemTokenInfo]:
267267
from robot.parsing.lexer.tokens import Token as RobotToken
268268
from robot.parsing.model.statements import (
269269
Arguments,
@@ -485,7 +485,7 @@ async def generate_sem_tokens(
485485
builtin_library_doc: Optional[LibraryDoc],
486486
libraries_matchers: Dict[KeywordMatcher, LibraryEntry],
487487
resources_matchers: Dict[KeywordMatcher, ResourceEntry],
488-
) -> AsyncGenerator[SemTokenInfo, None]:
488+
) -> AsyncIterator[SemTokenInfo]:
489489
from robot.parsing.lexer.tokens import Token as RobotToken
490490
from robot.parsing.model.statements import Variable
491491
from robot.utils.escaping import split_from_equals
@@ -533,11 +533,11 @@ async def generate_run_kw_tokens(
533533
kw_token: Token,
534534
arguments: List[Token],
535535
node: ast.AST,
536-
) -> AsyncGenerator[Tuple[Token, ast.AST], None]:
536+
) -> AsyncIterator[Tuple[Token, ast.AST]]:
537537
from robot.parsing.lexer import Token as RobotToken
538538
from robot.utils.escaping import unescape
539539

540-
async def skip_non_data_tokens() -> AsyncGenerator[Tuple[Token, ast.AST], None]:
540+
async def skip_non_data_tokens() -> AsyncIterator[Tuple[Token, ast.AST]]:
541541
nonlocal arguments
542542
while arguments and arguments[0] and arguments[0].type in RobotToken.NON_DATA_TOKENS:
543543

@@ -627,7 +627,7 @@ async def skip_non_data_tokens() -> AsyncGenerator[Tuple[Token, ast.AST], None]:
627627
yield e
628628
elif kw_doc.is_run_keyword_if() and len(arguments) > 0:
629629

630-
async def generate_run_kw_if() -> AsyncGenerator[Tuple[Token, ast.AST], None]:
630+
async def generate_run_kw_if() -> AsyncIterator[Tuple[Token, ast.AST]]:
631631
nonlocal arguments
632632

633633
yield arguments[0], node,
@@ -711,7 +711,7 @@ async def generate_keyword_tokens(
711711
arguments: List[Token],
712712
node: ast.AST,
713713
kw_doc: Optional[KeywordDoc] = None,
714-
) -> AsyncGenerator[Tuple[Token, ast.AST], None]:
714+
) -> AsyncIterator[Tuple[Token, ast.AST]]:
715715
from robot.parsing.lexer import Token as RobotToken
716716
from robot.utils.escaping import split_from_equals
717717

@@ -758,7 +758,7 @@ async def _collect_internal(
758758
last_line = 0
759759
last_col = 0
760760

761-
async def get_tokens() -> AsyncGenerator[Tuple[Token, ast.AST], None]:
761+
async def get_tokens() -> AsyncIterator[Tuple[Token, ast.AST]]:
762762
async for node in async_ast.iter_nodes(model):
763763
if isinstance(node, HasTokens):
764764
if isinstance(node, LibraryImport):

robotcode/language_server/robotframework/utils/ast_utils.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
from typing import (
55
Any,
66
AsyncIterator,
7-
Generator,
87
Iterator,
98
List,
109
Optional,
@@ -19,7 +18,7 @@
1918
from . import async_ast
2019

2120

22-
def iter_nodes(node: ast.AST) -> Generator[ast.AST, None, None]:
21+
def iter_nodes(node: ast.AST) -> Iterator[ast.AST]:
2322
for _field, value in ast.iter_fields(node):
2423
if isinstance(value, list):
2524
for item in value:
@@ -220,13 +219,13 @@ async def get_node_at_position(node: ast.AST, position: Position, include_end: b
220219
return result_nodes[-1]
221220

222221

223-
def _tokenize_no_variables(token: Token) -> Generator[Token, None, None]:
222+
def _tokenize_no_variables(token: Token) -> Iterator[Token]:
224223
yield token
225224

226225

227226
def tokenize_variables(
228227
token: Token, identifiers: str = "$@&%", ignore_errors: bool = False, *, extra_types: Optional[Set[str]] = None
229-
) -> Generator[Token, Any, Any]:
228+
) -> Iterator[Token]:
230229
from robot.api.parsing import Token as RobotToken
231230
from robot.variables import VariableIterator
232231

@@ -246,7 +245,7 @@ def tokenize_variables(
246245
return _tokenize_variables(token, variables)
247246

248247

249-
def _tokenize_variables(token: Token, variables: Any) -> Generator[Token, Any, Any]:
248+
def _tokenize_variables(token: Token, variables: Any) -> Iterator[Token]:
250249
from robot.api.parsing import Token as RobotToken
251250

252251
lineno = token.lineno

0 commit comments

Comments
 (0)