robotcode-robot 2.6.2__tar.gz → 2.8.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/.gitignore +4 -1
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/PKG-INFO +4 -3
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/pyproject.toml +2 -1
- robotcode_robot-2.8.0/src/robotcode/robot/__version__.py +1 -0
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/src/robotcode/robot/config/loader.py +18 -5
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/src/robotcode/robot/config/model.py +389 -112
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/src/robotcode/robot/diagnostics/analyzer_result.py +6 -1
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/src/robotcode/robot/diagnostics/data_cache.py +12 -1
- robotcode_robot-2.8.0/src/robotcode/robot/diagnostics/diagnostic_rules.py +87 -0
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/src/robotcode/robot/diagnostics/diagnostics_modifier.py +83 -43
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/src/robotcode/robot/diagnostics/document_cache_helper.py +168 -17
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/src/robotcode/robot/diagnostics/entities.py +20 -4
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/src/robotcode/robot/diagnostics/errors.py +7 -0
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/src/robotcode/robot/diagnostics/import_resolver.py +179 -26
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/src/robotcode/robot/diagnostics/imports_manager.py +584 -233
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/src/robotcode/robot/diagnostics/library_doc.py +877 -162
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/src/robotcode/robot/diagnostics/namespace.py +89 -32
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/src/robotcode/robot/diagnostics/namespace_analyzer.py +101 -29
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/src/robotcode/robot/diagnostics/project_index.py +88 -13
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/src/robotcode/robot/diagnostics/scope_tree.py +2 -2
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/src/robotcode/robot/diagnostics/semantic_analyzer/analyzer.py +866 -214
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/src/robotcode/robot/diagnostics/semantic_analyzer/enums.py +40 -2
- robotcode_robot-2.8.0/src/robotcode/robot/diagnostics/semantic_analyzer/json_dump.py +364 -0
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/src/robotcode/robot/diagnostics/semantic_analyzer/model.py +113 -12
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/src/robotcode/robot/diagnostics/semantic_analyzer/nodes.py +55 -1
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/src/robotcode/robot/diagnostics/semantic_analyzer/serialization.py +25 -11
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/src/robotcode/robot/diagnostics/semantic_analyzer/variable_tokenizer.py +218 -112
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/src/robotcode/robot/diagnostics/workspace_config.py +3 -0
- robotcode_robot-2.8.0/src/robotcode/robot/utils/markdown_docs.py +733 -0
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/src/robotcode/robot/utils/markdownformatter.py +57 -12
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/src/robotcode/robot/utils/match.py +13 -0
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/src/robotcode/robot/utils/robot_patching.py +4 -0
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/src/robotcode/robot/utils/variables.py +12 -0
- robotcode_robot-2.6.2/src/robotcode/robot/__version__.py +0 -1
- robotcode_robot-2.6.2/src/robotcode/robot/diagnostics/diagnostic_rules.py +0 -12
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/README.md +0 -0
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/src/robotcode/robot/__init__.py +0 -0
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/src/robotcode/robot/config/__init__.py +0 -0
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/src/robotcode/robot/config/utils.py +0 -0
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/src/robotcode/robot/diagnostics/__init__.py +0 -0
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/src/robotcode/robot/diagnostics/keyword_finder.py +0 -0
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/src/robotcode/robot/diagnostics/model_helper.py +0 -0
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/src/robotcode/robot/diagnostics/semantic_analyzer/__init__.py +0 -0
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/src/robotcode/robot/diagnostics/semantic_analyzer/run_keyword.py +0 -0
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/src/robotcode/robot/diagnostics/variable_scope.py +0 -0
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/src/robotcode/robot/py.typed +0 -0
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/src/robotcode/robot/utils/__init__.py +0 -0
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/src/robotcode/robot/utils/ast.py +0 -0
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/src/robotcode/robot/utils/robot_path.py +0 -0
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/src/robotcode/robot/utils/stubs.py +0 -0
- {robotcode_robot-2.6.2 → robotcode_robot-2.8.0}/src/robotcode/robot/utils/visitor.py +0 -0
|
@@ -279,6 +279,9 @@ dist
|
|
|
279
279
|
# vuepress build output
|
|
280
280
|
.vuepress/dist
|
|
281
281
|
|
|
282
|
+
# Astro (documentation site)
|
|
283
|
+
docs/.astro/
|
|
284
|
+
|
|
282
285
|
# Serverless directories
|
|
283
286
|
.serverless/
|
|
284
287
|
|
|
@@ -339,7 +342,7 @@ bundled/libs
|
|
|
339
342
|
# .agents
|
|
340
343
|
.agents/
|
|
341
344
|
skills-lock.json
|
|
342
|
-
|
|
345
|
+
#.claude
|
|
343
346
|
|
|
344
347
|
# sarif files
|
|
345
348
|
/**/*.sarif.json
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
2
|
Name: robotcode-robot
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.8.0
|
|
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
|
|
@@ -20,13 +20,14 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
20
20
|
Classifier: Programming Language :: Python :: 3.12
|
|
21
21
|
Classifier: Programming Language :: Python :: 3.13
|
|
22
22
|
Classifier: Programming Language :: Python :: 3.14
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.15
|
|
23
24
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
24
25
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
25
26
|
Classifier: Topic :: Utilities
|
|
26
27
|
Classifier: Typing :: Typed
|
|
27
28
|
Requires-Python: >=3.10
|
|
28
29
|
Requires-Dist: platformdirs>=4.3
|
|
29
|
-
Requires-Dist: robotcode-core==2.
|
|
30
|
+
Requires-Dist: robotcode-core==2.8.0
|
|
30
31
|
Requires-Dist: robotframework>=5.0.0
|
|
31
32
|
Requires-Dist: tomli>=1.1.0; python_version < '3.11'
|
|
32
33
|
Description-Content-Type: text/markdown
|
|
@@ -19,6 +19,7 @@ classifiers = [
|
|
|
19
19
|
"Programming Language :: Python :: 3.12",
|
|
20
20
|
"Programming Language :: Python :: 3.13",
|
|
21
21
|
"Programming Language :: Python :: 3.14",
|
|
22
|
+
"Programming Language :: Python :: 3.15",
|
|
22
23
|
"Programming Language :: Python :: Implementation :: CPython",
|
|
23
24
|
"Programming Language :: Python :: Implementation :: PyPy",
|
|
24
25
|
"Operating System :: OS Independent",
|
|
@@ -31,7 +32,7 @@ dependencies = [
|
|
|
31
32
|
"robotframework>=5.0.0",
|
|
32
33
|
"tomli>=1.1.0; python_version < '3.11'",
|
|
33
34
|
"platformdirs>=4.3",
|
|
34
|
-
"robotcode-core==2.
|
|
35
|
+
"robotcode-core==2.8.0",
|
|
35
36
|
]
|
|
36
37
|
dynamic = ["version"]
|
|
37
38
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "2.8.0"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import sys
|
|
2
2
|
from dataclasses import fields, is_dataclass
|
|
3
3
|
from enum import Enum
|
|
4
|
-
from pathlib import Path
|
|
4
|
+
from pathlib import Path, PurePath
|
|
5
5
|
from typing import Any, Callable, Dict, Optional, Sequence, Tuple, Type, TypeVar, Union
|
|
6
6
|
|
|
7
7
|
from robotcode.core.utils.dataclasses import from_dict
|
|
@@ -213,6 +213,20 @@ def load_robot_config_from_path(
|
|
|
213
213
|
)
|
|
214
214
|
|
|
215
215
|
|
|
216
|
+
_TPath = TypeVar("_TPath", bound=PurePath)
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
def _find_common_base(src_parents: Sequence[Sequence[_TPath]]) -> Optional[_TPath]:
|
|
220
|
+
"""The deepest folder all sources have in common.
|
|
221
|
+
|
|
222
|
+
Sources on different drives (Windows) have nothing in common.
|
|
223
|
+
"""
|
|
224
|
+
common = set.intersection(*(set(parents) for parents in src_parents))
|
|
225
|
+
if not common:
|
|
226
|
+
return None
|
|
227
|
+
return max(common, key=lambda path: path.parts)
|
|
228
|
+
|
|
229
|
+
|
|
216
230
|
def find_project_root(
|
|
217
231
|
*sources: Union[str, Path],
|
|
218
232
|
root_folder: Optional[Path] = None,
|
|
@@ -228,10 +242,9 @@ def find_project_root(
|
|
|
228
242
|
|
|
229
243
|
src_parents = [list(path.parents) + ([path] if path.is_dir() else []) for path in path_srcs]
|
|
230
244
|
|
|
231
|
-
common_base =
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
)
|
|
245
|
+
common_base = _find_common_base(src_parents)
|
|
246
|
+
if common_base is None:
|
|
247
|
+
return None, DiscoverdBy.NOT_FOUND
|
|
235
248
|
|
|
236
249
|
for directory in (common_base, *common_base.parents):
|
|
237
250
|
if (directory / LOCAL_ROBOT_TOML).is_file():
|