Skip to content

Commit 86b8874

Browse files
committed
correct some timings for locks, correct some mypy hints
1 parent d91b847 commit 86b8874

File tree

12 files changed

+123
-111
lines changed

12 files changed

+123
-111
lines changed

poetry.lock

Lines changed: 45 additions & 38 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ classifiers = [
5252

5353
[tool.poetry.dependencies]
5454
python = "^3.8"
55-
robotframework = { version = ">=4.1.0"}
55+
robotframework = { version = ">=4.1.0" }
5656

5757

5858
[tool.poetry.group.dev.dependencies]
@@ -147,5 +147,24 @@ warn_return_any = true
147147
warn_unused_configs = true
148148
strict = true
149149
disallow_subclassing_any = false
150+
#ignore_missing_imports = true
151+
exclude = [
152+
"\\.mypy_cache",
153+
"\\.venv",
154+
"build",
155+
"dist",
156+
"out",
157+
"playground",
158+
"scripts",
159+
]
160+
161+
[[tool.mypy.overrides]]
162+
module = [
163+
"robot.*",
164+
"robotremoteserver.*",
165+
"debugpy.*",
166+
"coloredlogs.*",
167+
"robotidy.*",
168+
"robocop.*",
169+
]
150170
ignore_missing_imports = true
151-
exclude = ["\\.mypy_cache", "\\.venv", "build", "dist", "out", "playground"]

robotcode/debugger/__main__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ def set_server(value: "DebugAdapterServer") -> None:
6666
async def wait_for_server(timeout: float = 5) -> "DebugAdapterServer":
6767
async def wait() -> None:
6868
while get_server() is None:
69-
await asyncio.sleep(0.05)
69+
await asyncio.sleep(0.005)
7070

7171
await asyncio.wait_for(wait(), timeout)
7272

robotcode/debugger/server.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
from ..jsonrpc2.protocol import rpc_method
66
from ..jsonrpc2.server import JsonRPCServer, JsonRpcServerMode, TcpParams
77
from ..utils import async_tools
8-
from ..utils.async_tools import run_coroutine_from_thread
98
from ..utils.logging import LoggingDescriptor
109
from .dap_types import (
1110
AttachRequestArguments,
@@ -78,7 +77,7 @@ def __init__(self) -> None:
7877

7978
def on_debugger_send_event(self, sender: Any, event: Event) -> None:
8079
if self._loop is not None:
81-
run_coroutine_from_thread(self.send_event_async, event, loop=self._loop)
80+
asyncio.run_coroutine_threadsafe(self.send_event_async(event), loop=self._loop)
8281

8382
@property
8483
def connected(self) -> bool:

robotcode/jsonrpc2/protocol.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -615,7 +615,7 @@ def set_result(f: asyncio.Future[Any], r: Any, ev: threading.Event) -> None:
615615
if time.monotonic() - start > 120:
616616
raise TimeoutError("Can't set future result.")
617617

618-
await asyncio.sleep(0.001)
618+
await asyncio.sleep(0)
619619

620620
else:
621621
self._logger.warning(f"Response {entry:r} loop is not running.")

robotcode/language_server/common/parts/code_action.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ async def collect(
4141
...
4242

4343
@async_tasking_event
44-
async def resolve(sender, code_action: CodeAction) -> CodeAction: # NOSONAR
44+
async def resolve(sender, code_action: CodeAction) -> Optional[CodeAction]: # NOSONAR
4545
...
4646

4747
def extend_capabilities(self, capabilities: ServerCapabilities) -> None:

robotcode/language_server/common/parts/completion.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ async def collect(
4545
...
4646

4747
@async_tasking_event
48-
async def resolve(sender, completion_item: CompletionItem) -> CompletionItem: # NOSONAR
48+
async def resolve(sender, completion_item: CompletionItem) -> Optional[CompletionItem]: # NOSONAR
4949
...
5050

5151
def extend_capabilities(self, capabilities: ServerCapabilities) -> None:

robotcode/language_server/common/parts/diagnostics.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -190,11 +190,11 @@ def extend_capabilities(self, capabilities: ServerCapabilities) -> None:
190190
)
191191

192192
@async_tasking_event_iterator
193-
async def collect(sender, document: TextDocument) -> DiagnosticsResult: # NOSONAR
193+
async def collect(sender, document: TextDocument) -> Optional[DiagnosticsResult]: # NOSONAR
194194
...
195195

196196
@async_tasking_event
197-
async def load_workspace_documents(sender) -> List[WorkspaceDocumentsResult]: # NOSONAR
197+
async def load_workspace_documents(sender) -> Optional[List[WorkspaceDocumentsResult]]: # NOSONAR
198198
...
199199

200200
@async_tasking_event
@@ -405,6 +405,8 @@ async def _get_diagnostics_for_document(
405405
if isinstance(result_any, BaseException):
406406
if not isinstance(result_any, asyncio.CancelledError):
407407
self._logger.exception(result_any, exc_info=result_any)
408+
elif result_any is None:
409+
continue
408410
else:
409411
result = cast(DiagnosticsResult, result_any)
410412

robotcode/language_server/robotframework/diagnostics/analyzer.py

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

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

7474
return AnalyzerResult(self._diagnostics, self._keyword_references, self._variable_references)
7575

76-
async def yield_argument_name_and_rest(self, node: ast.AST, token: Token) -> AsyncGenerator[Token, None]:
76+
def yield_argument_name_and_rest(self, node: ast.AST, token: Token) -> Generator[Token, None, None]:
7777
from robot.parsing.lexer.tokens import Token as RobotToken
7878
from robot.parsing.model.statements import Arguments
7979

@@ -95,7 +95,7 @@ async def yield_argument_name_and_rest(self, node: ast.AST, token: Token) -> Asy
9595
yield argument
9696
i = len(argument.value)
9797

98-
async for t in self.yield_argument_name_and_rest(
98+
for t in self.yield_argument_name_and_rest(
9999
node, RobotToken(token.type, token.value[i:], token.lineno, token.col_offset + i, token.error)
100100
):
101101
yield t
@@ -173,7 +173,7 @@ async def visit(self, node: ast.AST) -> None:
173173
and t.error is None
174174
and contains_variable(t.value, "$@&%")
175175
):
176-
async for token in self.yield_argument_name_and_rest(node, token1):
176+
for token in self.yield_argument_name_and_rest(node, token1):
177177
if isinstance(node, Arguments) and token.value == "@{}":
178178
continue
179179

0 commit comments

Comments
 (0)