robotcode-robot 0.95.0__py3-none-any.whl → 0.95.2__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- robotcode/robot/__version__.py +1 -1
- robotcode/robot/diagnostics/entities.py +8 -8
- robotcode/robot/diagnostics/imports_manager.py +3 -10
- robotcode/robot/diagnostics/keyword_finder.py +40 -39
- robotcode/robot/diagnostics/library_doc.py +197 -204
- robotcode/robot/diagnostics/model_helper.py +3 -3
- robotcode/robot/diagnostics/namespace.py +2 -7
- robotcode/robot/diagnostics/namespace_analyzer.py +8 -5
- robotcode/robot/utils/ast.py +42 -60
- robotcode/robot/utils/markdownformatter.py +11 -11
- robotcode/robot/utils/match.py +6 -5
- robotcode/robot/utils/robot_path.py +2 -2
- robotcode/robot/utils/stubs.py +1 -25
- robotcode/robot/utils/variables.py +5 -5
- robotcode/robot/utils/visitor.py +2 -28
- {robotcode_robot-0.95.0.dist-info → robotcode_robot-0.95.2.dist-info}/METADATA +2 -2
- robotcode_robot-0.95.2.dist-info/RECORD +32 -0
- robotcode_robot-0.95.0.dist-info/RECORD +0 -32
- {robotcode_robot-0.95.0.dist-info → robotcode_robot-0.95.2.dist-info}/WHEEL +0 -0
- {robotcode_robot-0.95.0.dist-info → robotcode_robot-0.95.2.dist-info}/licenses/LICENSE.txt +0 -0
@@ -1,4 +1,5 @@
|
|
1
1
|
import ast
|
2
|
+
import functools
|
2
3
|
import itertools
|
3
4
|
import os
|
4
5
|
import token as python_token
|
@@ -70,7 +71,7 @@ from .entities import (
|
|
70
71
|
)
|
71
72
|
from .errors import DIAGNOSTICS_SOURCE_NAME, Error
|
72
73
|
from .keyword_finder import KeywordFinder
|
73
|
-
from .library_doc import KeywordDoc, is_embedded_keyword
|
74
|
+
from .library_doc import KeywordDoc, LibraryDoc, is_embedded_keyword
|
74
75
|
from .model_helper import ModelHelper
|
75
76
|
|
76
77
|
if TYPE_CHECKING:
|
@@ -697,7 +698,7 @@ class NamespaceAnalyzer(Visitor):
|
|
697
698
|
code=Error.RESERVED_KEYWORD,
|
698
699
|
)
|
699
700
|
|
700
|
-
if get_robot_version() >= (6, 0) and result.is_resource_keyword and result.is_private
|
701
|
+
if get_robot_version() >= (6, 0) and result.is_resource_keyword and result.is_private:
|
701
702
|
if self._namespace.source != result.source:
|
702
703
|
self._append_diagnostics(
|
703
704
|
range=kw_range,
|
@@ -1042,12 +1043,14 @@ class NamespaceAnalyzer(Visitor):
|
|
1042
1043
|
if name_token is not None and name_token.value:
|
1043
1044
|
self._analyze_token_variables(name_token, DiagnosticSeverity.HINT)
|
1044
1045
|
|
1046
|
+
@functools.cached_property
|
1047
|
+
def _namespace_lib_doc(self) -> LibraryDoc:
|
1048
|
+
return self._namespace.get_library_doc()
|
1049
|
+
|
1045
1050
|
def visit_Keyword(self, node: Keyword) -> None: # noqa: N802
|
1046
1051
|
if node.name:
|
1047
1052
|
name_token = node.header.get_token(Token.KEYWORD_NAME)
|
1048
|
-
self._current_keyword_doc = ModelHelper.get_keyword_definition_at_token(
|
1049
|
-
self._namespace.get_library_doc(), name_token
|
1050
|
-
)
|
1053
|
+
self._current_keyword_doc = ModelHelper.get_keyword_definition_at_token(self._namespace_lib_doc, name_token)
|
1051
1054
|
|
1052
1055
|
if self._current_keyword_doc is not None and self._current_keyword_doc not in self._keyword_references:
|
1053
1056
|
self._keyword_references[self._current_keyword_doc] = set()
|
robotcode/robot/utils/ast.py
CHANGED
@@ -38,13 +38,6 @@ def cached_isinstance(obj: Any, *expected_types: Type[_T]) -> TypeGuard[Union[_T
|
|
38
38
|
return False
|
39
39
|
|
40
40
|
|
41
|
-
# def cached_isinstance(obj: Any, *expected_types: type) -> bool:
|
42
|
-
# try:
|
43
|
-
# return isinstance(obj, expected_types)
|
44
|
-
# except TypeError:
|
45
|
-
# return False
|
46
|
-
|
47
|
-
|
48
41
|
def iter_nodes(node: ast.AST, descendants: bool = True) -> Iterator[ast.AST]:
|
49
42
|
for _field, value in ast.iter_fields(node):
|
50
43
|
if cached_isinstance(value, list):
|
@@ -87,23 +80,23 @@ class FirstAndLastRealStatementFinder(Visitor):
|
|
87
80
|
self.last_statement = statement
|
88
81
|
|
89
82
|
|
83
|
+
_NON_DATA_TOKENS = {
|
84
|
+
Token.SEPARATOR,
|
85
|
+
Token.CONTINUATION,
|
86
|
+
Token.EOL,
|
87
|
+
Token.EOS,
|
88
|
+
}
|
89
|
+
|
90
|
+
_NON_DATA_TOKENS_WITH_COMMENT = {*_NON_DATA_TOKENS, Token.COMMENT}
|
91
|
+
|
92
|
+
|
90
93
|
def _get_non_data_range_from_node(
|
91
94
|
node: ast.AST, only_start: bool = False, allow_comments: bool = False
|
92
95
|
) -> Optional[Range]:
|
96
|
+
non_data_tokens = _NON_DATA_TOKENS_WITH_COMMENT if allow_comments else _NON_DATA_TOKENS
|
93
97
|
if cached_isinstance(node, Statement) and node.tokens:
|
94
98
|
start_token = next(
|
95
|
-
(
|
96
|
-
v
|
97
|
-
for v in node.tokens
|
98
|
-
if v.type
|
99
|
-
not in [
|
100
|
-
Token.SEPARATOR,
|
101
|
-
*([] if allow_comments else [Token.COMMENT]),
|
102
|
-
Token.CONTINUATION,
|
103
|
-
Token.EOL,
|
104
|
-
Token.EOS,
|
105
|
-
]
|
106
|
-
),
|
99
|
+
(v for v in node.tokens if v.type not in non_data_tokens),
|
107
100
|
None,
|
108
101
|
)
|
109
102
|
|
@@ -113,18 +106,7 @@ def _get_non_data_range_from_node(
|
|
113
106
|
end_tokens = node.tokens
|
114
107
|
|
115
108
|
end_token = next(
|
116
|
-
(
|
117
|
-
v
|
118
|
-
for v in reversed(end_tokens)
|
119
|
-
if v.type
|
120
|
-
not in [
|
121
|
-
Token.SEPARATOR,
|
122
|
-
*([] if allow_comments else [Token.COMMENT]),
|
123
|
-
Token.CONTINUATION,
|
124
|
-
Token.EOL,
|
125
|
-
Token.EOS,
|
126
|
-
]
|
127
|
-
),
|
109
|
+
(v for v in reversed(end_tokens) if v.type not in non_data_tokens),
|
128
110
|
None,
|
129
111
|
)
|
130
112
|
if start_token is not None and end_token is not None:
|
@@ -289,35 +271,35 @@ def tokenize_variables(
|
|
289
271
|
return _tokenize_variables(token, variables)
|
290
272
|
|
291
273
|
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
274
|
+
def _tokenize_variables_before7(token: Token, variables: Any) -> Iterator[Token]:
|
275
|
+
lineno = token.lineno
|
276
|
+
col_offset = token.col_offset
|
277
|
+
remaining = ""
|
278
|
+
for before, variable, remaining in variables:
|
279
|
+
if before:
|
280
|
+
yield Token(token.type, before, lineno, col_offset)
|
281
|
+
col_offset += len(before)
|
282
|
+
yield Token(Token.VARIABLE, variable, lineno, col_offset)
|
283
|
+
col_offset += len(variable)
|
284
|
+
if remaining:
|
285
|
+
yield Token(token.type, remaining, lineno, col_offset)
|
286
|
+
|
287
|
+
|
288
|
+
def _tokenize_variables_v7(token: Token, variables: Any) -> Iterator[Token]:
|
289
|
+
lineno = token.lineno
|
290
|
+
col_offset = token.col_offset
|
291
|
+
after = ""
|
292
|
+
for match in variables:
|
293
|
+
if match.before:
|
294
|
+
yield Token(token.type, match.before, lineno, col_offset)
|
295
|
+
yield Token(Token.VARIABLE, match.match, lineno, col_offset + match.start)
|
296
|
+
col_offset += match.end
|
297
|
+
after = match.after
|
298
|
+
if after:
|
299
|
+
yield Token(token.type, after, lineno, col_offset)
|
300
|
+
|
301
|
+
|
302
|
+
_tokenize_variables = _tokenize_variables_before7 if get_robot_version() < (7, 0) else _tokenize_variables_v7
|
321
303
|
|
322
304
|
|
323
305
|
def iter_over_keyword_names_and_owners(
|
@@ -3,7 +3,7 @@ from __future__ import annotations
|
|
3
3
|
import itertools
|
4
4
|
import re
|
5
5
|
from abc import ABC, abstractmethod
|
6
|
-
from typing import Any, Callable, Iterator, List, Optional, Tuple
|
6
|
+
from typing import Any, Callable, Final, Iterator, List, Optional, Tuple
|
7
7
|
|
8
8
|
|
9
9
|
class Formatter(ABC):
|
@@ -87,7 +87,7 @@ class SingleLineFormatter(Formatter):
|
|
87
87
|
|
88
88
|
|
89
89
|
class HeaderFormatter(SingleLineFormatter):
|
90
|
-
_regex = re.compile(r"^(={1,5})\s+(\S.*?)\s+\1$")
|
90
|
+
_regex: Final["re.Pattern[str]"] = re.compile(r"^(={1,5})\s+(\S.*?)\s+\1$")
|
91
91
|
|
92
92
|
def match(self, line: str) -> Optional[re.Match[str]]:
|
93
93
|
return self._regex.match(line)
|
@@ -103,8 +103,8 @@ class HeaderFormatter(SingleLineFormatter):
|
|
103
103
|
|
104
104
|
class LinkFormatter:
|
105
105
|
_image_exts = (".jpg", ".jpeg", ".png", ".gif", ".bmp", ".svg")
|
106
|
-
_link = re.compile(r"\[(.+?\|.*?)\]")
|
107
|
-
_url = re.compile(
|
106
|
+
_link: Final["re.Pattern[str]"] = re.compile(r"\[(.+?\|.*?)\]")
|
107
|
+
_url: Final["re.Pattern[str]"] = re.compile(
|
108
108
|
r"""
|
109
109
|
((^|\ ) ["'(\[{]*) # begin of line or space and opt. any char "'([{
|
110
110
|
([a-z][\w+-.]*://[^\s|]+?) # url
|
@@ -177,7 +177,7 @@ class LinkFormatter:
|
|
177
177
|
|
178
178
|
|
179
179
|
class LineFormatter:
|
180
|
-
_bold = re.compile(
|
180
|
+
_bold: Final["re.Pattern[str]"] = re.compile(
|
181
181
|
r"""
|
182
182
|
( # prefix (group 1)
|
183
183
|
(^|\ ) # begin of line or space
|
@@ -193,7 +193,7 @@ class LineFormatter:
|
|
193
193
|
""",
|
194
194
|
re.VERBOSE,
|
195
195
|
)
|
196
|
-
_italic = re.compile(
|
196
|
+
_italic: Final["re.Pattern[str]"] = re.compile(
|
197
197
|
r"""
|
198
198
|
( (^|\ ) ["'(]* ) # begin of line or space and opt. any char "'(
|
199
199
|
_ # start of italic
|
@@ -203,7 +203,7 @@ _ # end of italic
|
|
203
203
|
""",
|
204
204
|
re.VERBOSE,
|
205
205
|
)
|
206
|
-
_code = re.compile(
|
206
|
+
_code: Final["re.Pattern[str]"] = re.compile(
|
207
207
|
r"""
|
208
208
|
( (^|\ ) ["'(]* ) # same as above with _ changed to ``
|
209
209
|
``
|
@@ -296,7 +296,7 @@ class ListFormatter(Formatter):
|
|
296
296
|
|
297
297
|
|
298
298
|
class RulerFormatter(SingleLineFormatter):
|
299
|
-
regex = re.compile("^-{3,}$")
|
299
|
+
regex: Final["re.Pattern[str]"] = re.compile("^-{3,}$")
|
300
300
|
|
301
301
|
def match(self, line: str) -> Optional[re.Match[str]]:
|
302
302
|
return self.regex.match(line)
|
@@ -306,9 +306,9 @@ class RulerFormatter(SingleLineFormatter):
|
|
306
306
|
|
307
307
|
|
308
308
|
class TableFormatter(Formatter):
|
309
|
-
_table_line = re.compile(r"^\| (.* |)\|$")
|
310
|
-
_line_splitter = re.compile(r" \|(?= )")
|
311
|
-
_format_cell_content = _line_formatter.format
|
309
|
+
_table_line: Final["re.Pattern[str]"] = re.compile(r"^\| (.* |)\|$")
|
310
|
+
_line_splitter: Final["re.Pattern[str]"] = re.compile(r" \|(?= )")
|
311
|
+
_format_cell_content: Final[Callable[[str], str]] = _line_formatter.format
|
312
312
|
|
313
313
|
def _handles(self, line: str) -> bool:
|
314
314
|
return self._table_line.match(line) is not None
|
robotcode/robot/utils/match.py
CHANGED
@@ -2,16 +2,17 @@ from functools import lru_cache
|
|
2
2
|
|
3
3
|
_transform_table = str.maketrans("", "", "_ ")
|
4
4
|
|
5
|
+
_transform_table_namespace = str.maketrans("", "", " ")
|
5
6
|
|
6
|
-
|
7
|
+
|
8
|
+
@lru_cache(maxsize=8192)
|
7
9
|
def normalize(text: str) -> str:
|
8
|
-
|
9
|
-
return text.casefold().translate(_transform_table)
|
10
|
+
return text.translate(_transform_table).casefold()
|
10
11
|
|
11
12
|
|
12
|
-
@lru_cache(maxsize=
|
13
|
+
@lru_cache(maxsize=8192)
|
13
14
|
def normalize_namespace(text: str) -> str:
|
14
|
-
return text.
|
15
|
+
return text.translate(_transform_table_namespace).casefold()
|
15
16
|
|
16
17
|
|
17
18
|
def eq(str1: str, str2: str) -> bool:
|
@@ -6,7 +6,7 @@ from typing import Optional, Union
|
|
6
6
|
|
7
7
|
def find_file_ex(
|
8
8
|
path: Union[Path, "PathLike[str]", str],
|
9
|
-
basedir: Union[Path, PathLike[str], str] = ".",
|
9
|
+
basedir: Union[Path, "PathLike[str]", str] = ".",
|
10
10
|
file_type: Optional[str] = None,
|
11
11
|
) -> str:
|
12
12
|
from robot.errors import DataError
|
@@ -33,7 +33,7 @@ def find_file_ex(
|
|
33
33
|
|
34
34
|
def find_file(
|
35
35
|
path: Union[Path, "PathLike[str]", str],
|
36
|
-
basedir: Union[Path, PathLike[str], str] = ".",
|
36
|
+
basedir: Union[Path, "PathLike[str]", str] = ".",
|
37
37
|
file_type: Optional[str] = None,
|
38
38
|
) -> str:
|
39
39
|
return find_file_ex(path, basedir, file_type)
|
robotcode/robot/utils/stubs.py
CHANGED
@@ -1,30 +1,6 @@
|
|
1
|
-
from
|
1
|
+
from typing import Any, Dict, Iterator, List, Protocol, Set
|
2
2
|
|
3
|
-
from typing import Any, Dict, Iterator, List, Optional, Protocol, Set, runtime_checkable
|
4
3
|
|
5
|
-
|
6
|
-
@runtime_checkable
|
7
|
-
class HasError(Protocol):
|
8
|
-
error: Optional[str]
|
9
|
-
|
10
|
-
|
11
|
-
@runtime_checkable
|
12
|
-
class HasErrors(Protocol):
|
13
|
-
errors: Optional[List[str]]
|
14
|
-
|
15
|
-
|
16
|
-
@runtime_checkable
|
17
|
-
class HeaderAndBodyBlock(Protocol):
|
18
|
-
header: Any
|
19
|
-
body: List[Any]
|
20
|
-
|
21
|
-
|
22
|
-
@runtime_checkable
|
23
|
-
class BodyBlock(Protocol):
|
24
|
-
body: List[Any]
|
25
|
-
|
26
|
-
|
27
|
-
@runtime_checkable
|
28
4
|
class Languages(Protocol):
|
29
5
|
languages: List[Any]
|
30
6
|
headers: Dict[str, str]
|
@@ -47,26 +47,26 @@ BUILTIN_VARIABLES = [
|
|
47
47
|
]
|
48
48
|
|
49
49
|
|
50
|
-
@functools.lru_cache(maxsize=
|
50
|
+
@functools.lru_cache(maxsize=8192)
|
51
51
|
def contains_variable(string: str, identifiers: str = "$@&") -> bool:
|
52
52
|
return cast(bool, robot_contains_variable(string, identifiers))
|
53
53
|
|
54
54
|
|
55
|
-
@functools.lru_cache(maxsize=
|
55
|
+
@functools.lru_cache(maxsize=8192)
|
56
56
|
def is_scalar_assign(string: str, allow_assign_mark: bool = False) -> bool:
|
57
57
|
return cast(bool, robot_is_scalar_assign(string, allow_assign_mark))
|
58
58
|
|
59
59
|
|
60
|
-
@functools.lru_cache(maxsize=
|
60
|
+
@functools.lru_cache(maxsize=8192)
|
61
61
|
def is_variable(string: str, identifiers: str = "$@&") -> bool:
|
62
62
|
return cast(bool, robot_is_variable(string, identifiers))
|
63
63
|
|
64
64
|
|
65
|
-
@functools.lru_cache(maxsize=
|
65
|
+
@functools.lru_cache(maxsize=8192)
|
66
66
|
def search_variable(string: str, identifiers: str = "$@&%*", ignore_errors: bool = False) -> RobotVariableMatch:
|
67
67
|
return robot_search_variable(string, identifiers, ignore_errors)
|
68
68
|
|
69
69
|
|
70
|
-
@functools.lru_cache(maxsize=
|
70
|
+
@functools.lru_cache(maxsize=8192)
|
71
71
|
def split_from_equals(string: str) -> Tuple[str, Optional[str]]:
|
72
72
|
return cast(Tuple[str, Optional[str]], robot_split_from_equals(string))
|
robotcode/robot/utils/visitor.py
CHANGED
@@ -2,8 +2,8 @@ import ast
|
|
2
2
|
from abc import ABC
|
3
3
|
from typing import (
|
4
4
|
Any,
|
5
|
-
AsyncIterator,
|
6
5
|
Callable,
|
6
|
+
ClassVar,
|
7
7
|
Dict,
|
8
8
|
Iterator,
|
9
9
|
Optional,
|
@@ -37,34 +37,8 @@ def iter_field_values(node: ast.AST) -> Iterator[Any]:
|
|
37
37
|
pass
|
38
38
|
|
39
39
|
|
40
|
-
def iter_child_nodes(node: ast.AST) -> Iterator[ast.AST]:
|
41
|
-
for _name, field in iter_fields(node):
|
42
|
-
if isinstance(field, ast.AST):
|
43
|
-
yield field
|
44
|
-
elif isinstance(field, list):
|
45
|
-
for item in field:
|
46
|
-
if isinstance(item, ast.AST):
|
47
|
-
yield item
|
48
|
-
|
49
|
-
|
50
|
-
async def iter_nodes(node: ast.AST) -> AsyncIterator[ast.AST]:
|
51
|
-
for _name, value in iter_fields(node):
|
52
|
-
if isinstance(value, list):
|
53
|
-
for item in value:
|
54
|
-
if isinstance(item, ast.AST):
|
55
|
-
yield item
|
56
|
-
async for n in iter_nodes(item):
|
57
|
-
yield n
|
58
|
-
|
59
|
-
elif isinstance(value, ast.AST):
|
60
|
-
yield value
|
61
|
-
|
62
|
-
async for n in iter_nodes(value):
|
63
|
-
yield n
|
64
|
-
|
65
|
-
|
66
40
|
class VisitorFinder(ABC):
|
67
|
-
__cls_finder_cache__: Dict[Type[Any], Optional[Callable[..., Any]]]
|
41
|
+
__cls_finder_cache__: ClassVar[Dict[Type[Any], Optional[Callable[..., Any]]]]
|
68
42
|
|
69
43
|
def __init_subclass__(cls, **kwargs: Any) -> None:
|
70
44
|
super().__init_subclass__(**kwargs)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: robotcode-robot
|
3
|
-
Version: 0.95.
|
3
|
+
Version: 0.95.2
|
4
4
|
Summary: Support classes for RobotCode for handling Robot Framework projects.
|
5
5
|
Project-URL: Homepage, https://robotcode.io
|
6
6
|
Project-URL: Donate, https://opencollective.com/robotcode
|
@@ -26,7 +26,7 @@ Classifier: Topic :: Utilities
|
|
26
26
|
Classifier: Typing :: Typed
|
27
27
|
Requires-Python: >=3.8
|
28
28
|
Requires-Dist: platformdirs<4.2.0,>=3.2.0
|
29
|
-
Requires-Dist: robotcode-core==0.95.
|
29
|
+
Requires-Dist: robotcode-core==0.95.2
|
30
30
|
Requires-Dist: robotframework>=4.1.0
|
31
31
|
Requires-Dist: tomli>=1.1.0; python_version < '3.11'
|
32
32
|
Description-Content-Type: text/markdown
|
@@ -0,0 +1,32 @@
|
|
1
|
+
robotcode/robot/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
|
+
robotcode/robot/__version__.py,sha256=MtUGhM3YznPa3gIwYy1bSEC9CMiXlkQf9fXXldoBPnM,23
|
3
|
+
robotcode/robot/py.typed,sha256=bWew9mHgMy8LqMu7RuqQXFXLBxh2CRx0dUbSx-3wE48,27
|
4
|
+
robotcode/robot/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
5
|
+
robotcode/robot/config/loader.py,sha256=bNJwr_XdCoUzpG2ag0BH33PIfiCwn0GMxn7q_Sw3zOk,8103
|
6
|
+
robotcode/robot/config/model.py,sha256=sgr6-4_E06g-yIXW41Z-NtIXZ_7JMmR5WvUD7kTUqu4,89106
|
7
|
+
robotcode/robot/config/utils.py,sha256=xY-LH31BidWzonpvSrle-4HvKrp02I7IRqU2JwlL4Ls,2931
|
8
|
+
robotcode/robot/diagnostics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
9
|
+
robotcode/robot/diagnostics/data_cache.py,sha256=Wge9HuxSUiBVMmrmlsYSMmG2ad7f3Texwox0Dm8lN7U,2969
|
10
|
+
robotcode/robot/diagnostics/diagnostics_modifier.py,sha256=3dDsu8-ET6weIvv7Sk3IQaPYFNxnXUs8Y7gpGTjfOBs,9796
|
11
|
+
robotcode/robot/diagnostics/document_cache_helper.py,sha256=n903UxVXM4Uq4fPxN5s-dugQAKcWUwf4Nw4q0CJV7aw,23902
|
12
|
+
robotcode/robot/diagnostics/entities.py,sha256=b4u2yQN8MDg90RoTMaW7iLogiDNwOAtK180KCB94RfE,10970
|
13
|
+
robotcode/robot/diagnostics/errors.py,sha256=vRH7HiZOfQIC-L7ys2Bj9ULYxLpUH7I03qJRSkEx08k,1813
|
14
|
+
robotcode/robot/diagnostics/imports_manager.py,sha256=_IA_aDdylTGXul4FLoN4bmUBwPjiRqpaSszulZcl45M,58886
|
15
|
+
robotcode/robot/diagnostics/keyword_finder.py,sha256=dm4BA0ccp5V4C65CkSYUJUNXegSmvG24uu09T3eL6a4,17319
|
16
|
+
robotcode/robot/diagnostics/library_doc.py,sha256=ndDh5AVqCKWLmp1raB-9HBE3e-ptkkXInfAZyiU7lDA,100428
|
17
|
+
robotcode/robot/diagnostics/model_helper.py,sha256=ltuUNWwZJFBmMFXIomMmW1IP5v7tMpQSoC1YbncgoNI,30985
|
18
|
+
robotcode/robot/diagnostics/namespace.py,sha256=lJOkaS_yCp8SVhURqh5NqAsm394s0cHZUMQwVeh9nno,75159
|
19
|
+
robotcode/robot/diagnostics/namespace_analyzer.py,sha256=MgEoEGH7FvwVYoR3wA0JEGQxMWJTUUHq10NrorJV5LY,74183
|
20
|
+
robotcode/robot/diagnostics/workspace_config.py,sha256=3SoewUj_LZB1Ki5hXM8oxQpJr6vyiog66SUw-ibODSA,2478
|
21
|
+
robotcode/robot/utils/__init__.py,sha256=OjNPMn_XSnfaMCyKd8Kmq6vlRt6mIGlzW4qiiD3ykUg,447
|
22
|
+
robotcode/robot/utils/ast.py,sha256=eqAVVquoRbMw3WvGmK6FnkUjZzAxHAitVjqK-vx-HSY,10764
|
23
|
+
robotcode/robot/utils/markdownformatter.py,sha256=SdHFfK9OdBnljWMP5r5Jy2behtHy-_Myd7GV4hiH-kI,11688
|
24
|
+
robotcode/robot/utils/match.py,sha256=9tG1OD9KS1v9ocWgsERSf6z_w9gAeE5LourNUYHzvTM,653
|
25
|
+
robotcode/robot/utils/robot_path.py,sha256=Z-GVBOPA_xeD20bCJi4_AWaU0eQWvCym-YFtyRpXARE,1767
|
26
|
+
robotcode/robot/utils/stubs.py,sha256=umugZYAyneFNgqRJBRMJPzm0u0B_TH8Sx_y-ykXnxpw,351
|
27
|
+
robotcode/robot/utils/variables.py,sha256=-ldL8mRRSYYW2pwlm8IpoDeQcG6LYBqaYyV_7U3xsIc,2174
|
28
|
+
robotcode/robot/utils/visitor.py,sha256=nP3O0qh3YYuxR6S8wYJRBFfNwIVgsgohURBlrnFkRYQ,2299
|
29
|
+
robotcode_robot-0.95.2.dist-info/METADATA,sha256=df4ORmop30qwHqbcpO1sXHaYH-F5Bb4hhzfaM8rGOwg,2240
|
30
|
+
robotcode_robot-0.95.2.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
|
31
|
+
robotcode_robot-0.95.2.dist-info/licenses/LICENSE.txt,sha256=B05uMshqTA74s-0ltyHKI6yoPfJ3zYgQbvcXfDVGFf8,10280
|
32
|
+
robotcode_robot-0.95.2.dist-info/RECORD,,
|
@@ -1,32 +0,0 @@
|
|
1
|
-
robotcode/robot/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
|
-
robotcode/robot/__version__.py,sha256=1KBvo1_4ig2ZeMfCvFApYtfDll8Ysfu6h45ByRERz1E,23
|
3
|
-
robotcode/robot/py.typed,sha256=bWew9mHgMy8LqMu7RuqQXFXLBxh2CRx0dUbSx-3wE48,27
|
4
|
-
robotcode/robot/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
5
|
-
robotcode/robot/config/loader.py,sha256=bNJwr_XdCoUzpG2ag0BH33PIfiCwn0GMxn7q_Sw3zOk,8103
|
6
|
-
robotcode/robot/config/model.py,sha256=sgr6-4_E06g-yIXW41Z-NtIXZ_7JMmR5WvUD7kTUqu4,89106
|
7
|
-
robotcode/robot/config/utils.py,sha256=xY-LH31BidWzonpvSrle-4HvKrp02I7IRqU2JwlL4Ls,2931
|
8
|
-
robotcode/robot/diagnostics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
9
|
-
robotcode/robot/diagnostics/data_cache.py,sha256=Wge9HuxSUiBVMmrmlsYSMmG2ad7f3Texwox0Dm8lN7U,2969
|
10
|
-
robotcode/robot/diagnostics/diagnostics_modifier.py,sha256=3dDsu8-ET6weIvv7Sk3IQaPYFNxnXUs8Y7gpGTjfOBs,9796
|
11
|
-
robotcode/robot/diagnostics/document_cache_helper.py,sha256=n903UxVXM4Uq4fPxN5s-dugQAKcWUwf4Nw4q0CJV7aw,23902
|
12
|
-
robotcode/robot/diagnostics/entities.py,sha256=dA5jTt1pSCLvWWC_DkHPjfBZmnS80dVt3gZptASR3Uo,11008
|
13
|
-
robotcode/robot/diagnostics/errors.py,sha256=vRH7HiZOfQIC-L7ys2Bj9ULYxLpUH7I03qJRSkEx08k,1813
|
14
|
-
robotcode/robot/diagnostics/imports_manager.py,sha256=lmwg_wYFZLNx_o0u856_5JihXHPLBei2vfr6Puhlm-c,59127
|
15
|
-
robotcode/robot/diagnostics/keyword_finder.py,sha256=O3EHA93ZGqNI-TocvSYAmWz7INWakhhfBeiXq57wepM,17421
|
16
|
-
robotcode/robot/diagnostics/library_doc.py,sha256=6j_7qy5O-dFAbVmwjn_sDkBHrFvghJwu0fvPcLhJnMw,100901
|
17
|
-
robotcode/robot/diagnostics/model_helper.py,sha256=-dRXt__coz-m2HaMLTqgQEUF6ylH0QZxj5hUv2DBJyQ,31017
|
18
|
-
robotcode/robot/diagnostics/namespace.py,sha256=Y6HDBKIYyCc3qCg2TT-orB9mASd-Ii4fkZuIpcFQMbk,75417
|
19
|
-
robotcode/robot/diagnostics/namespace_analyzer.py,sha256=NlvfAEYH_GyE1ZQ1JH9vR9yPfki3Xmw9TyNEc-B0mtM,74067
|
20
|
-
robotcode/robot/diagnostics/workspace_config.py,sha256=3SoewUj_LZB1Ki5hXM8oxQpJr6vyiog66SUw-ibODSA,2478
|
21
|
-
robotcode/robot/utils/__init__.py,sha256=OjNPMn_XSnfaMCyKd8Kmq6vlRt6mIGlzW4qiiD3ykUg,447
|
22
|
-
robotcode/robot/utils/ast.py,sha256=_ob36KHFY776n9dhljn0xAWVoUDb7pV86fPW40vIirY,11266
|
23
|
-
robotcode/robot/utils/markdownformatter.py,sha256=Cj4NjComTcNZf8uuezvtBbZqPMLjS237RknMopZYETk,11418
|
24
|
-
robotcode/robot/utils/match.py,sha256=Vtz1ueT6DIZZ4hKyXgvTg1A3x2puBwHgvjw1oAYBn5w,632
|
25
|
-
robotcode/robot/utils/robot_path.py,sha256=6XfNjnIVQREwgUR7r0eUMHgLnduXKTpHWy2Dvs_MbPo,1763
|
26
|
-
robotcode/robot/utils/stubs.py,sha256=6-DMI_CQVJHDgG13t-zINKGCRb_Q7MQPm0_AkfhAEvE,748
|
27
|
-
robotcode/robot/utils/variables.py,sha256=XNPUDpghGy_f_Fne9lJ4OST-kFi-72Nrr0yJUu6f_Oc,2169
|
28
|
-
robotcode/robot/utils/visitor.py,sha256=V3ZtpzrCilKpLQfDXUcjapd2uGq12XxbHppNPOl_Jns,3080
|
29
|
-
robotcode_robot-0.95.0.dist-info/METADATA,sha256=ucoFRI1dSKtBhbXI3KtxfGXyEbIXRUHxBoe7LURhGVY,2240
|
30
|
-
robotcode_robot-0.95.0.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
|
31
|
-
robotcode_robot-0.95.0.dist-info/licenses/LICENSE.txt,sha256=B05uMshqTA74s-0ltyHKI6yoPfJ3zYgQbvcXfDVGFf8,10280
|
32
|
-
robotcode_robot-0.95.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|