robotcode-robot 0.97.0__py3-none-any.whl → 0.98.0__py3-none-any.whl

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.
@@ -1 +1 @@
1
- __version__ = "0.97.0"
1
+ __version__ = "0.98.0"
@@ -44,6 +44,7 @@ from robotcode.core.lsp.types import (
44
44
  from robotcode.core.text_document import TextDocument
45
45
  from robotcode.core.uri import Uri
46
46
  from robotcode.core.utils.logging import LoggingDescriptor
47
+ from robotcode.core.utils.path import same_file
47
48
 
48
49
  from ..utils.ast import (
49
50
  range_from_node,
@@ -1242,8 +1243,37 @@ class Namespace:
1242
1243
 
1243
1244
  source = self.imports_manager.find_resource(value.name, base_dir, variables=variables)
1244
1245
 
1245
- if source in self._resources_files:
1246
+ allread_imported_resource = next(
1247
+ (
1248
+ v
1249
+ for k, v in self._resources.items()
1250
+ if v.library_doc.source is not None and same_file(v.library_doc.source, source)
1251
+ ),
1252
+ None,
1253
+ )
1254
+ if allread_imported_resource is not None:
1246
1255
  self._logger.debug(lambda: f"Resource '{value.name}' already imported.", context_name="import")
1256
+ if top_level:
1257
+ self.append_diagnostics(
1258
+ range=value.range,
1259
+ message=f"Resource '{value.name}' already imported.",
1260
+ severity=DiagnosticSeverity.INFORMATION,
1261
+ source=DIAGNOSTICS_SOURCE_NAME,
1262
+ related_information=(
1263
+ [
1264
+ DiagnosticRelatedInformation(
1265
+ location=Location(
1266
+ uri=str(Uri.from_path(allread_imported_resource.import_source)),
1267
+ range=allread_imported_resource.import_range,
1268
+ ),
1269
+ message="",
1270
+ )
1271
+ ]
1272
+ if allread_imported_resource.import_source
1273
+ else None
1274
+ ),
1275
+ code=Error.RESOURCE_ALREADY_IMPORTED,
1276
+ )
1247
1277
  return None
1248
1278
 
1249
1279
  if self.source == source:
@@ -1453,7 +1483,7 @@ class Namespace:
1453
1483
  allread_imported_resource = self._resources_files.get(entry.library_doc.source, None)
1454
1484
 
1455
1485
  if allread_imported_resource is None and entry.library_doc.source != self.source:
1456
- self._resources[entry.import_name] = entry
1486
+ self._resources[entry.library_doc.source] = entry
1457
1487
  self._resources_files[entry.library_doc.source] = entry
1458
1488
  if entry.variables:
1459
1489
  variables = self.get_suite_variables()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: robotcode-robot
3
- Version: 0.97.0
3
+ Version: 0.98.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
@@ -25,7 +25,7 @@ Classifier: Topic :: Utilities
25
25
  Classifier: Typing :: Typed
26
26
  Requires-Python: >=3.8
27
27
  Requires-Dist: platformdirs<4.4.0,>=3.2.0
28
- Requires-Dist: robotcode-core==0.97.0
28
+ Requires-Dist: robotcode-core==0.98.0
29
29
  Requires-Dist: robotframework>=4.1.0
30
30
  Requires-Dist: tomli>=1.1.0; python_version < '3.11'
31
31
  Description-Content-Type: text/markdown
@@ -1,5 +1,5 @@
1
1
  robotcode/robot/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- robotcode/robot/__version__.py,sha256=4n3tdadixJ_eZgVwheQyewJFQEfb651DXkoZqfN9A3o,23
2
+ robotcode/robot/__version__.py,sha256=wDatk6DOlwcbppXlUNCn5v8i6SpKrbGGBYEGlrqUork,23
3
3
  robotcode/robot/py.typed,sha256=bWew9mHgMy8LqMu7RuqQXFXLBxh2CRx0dUbSx-3wE48,27
4
4
  robotcode/robot/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  robotcode/robot/config/loader.py,sha256=tLPzeyHl4ELBIVSj2JtU2wVqlurouKTdfxHy0T5HxRE,8584
@@ -15,7 +15,7 @@ robotcode/robot/diagnostics/imports_manager.py,sha256=jaEE7iUzEA4Rp-KXP3nfn0JyUG
15
15
  robotcode/robot/diagnostics/keyword_finder.py,sha256=dm4BA0ccp5V4C65CkSYUJUNXegSmvG24uu09T3eL6a4,17319
16
16
  robotcode/robot/diagnostics/library_doc.py,sha256=VPCX7xp-0LJiYSFLO68y8MuNAMIYcnhJTIHRmWPpl30,100507
17
17
  robotcode/robot/diagnostics/model_helper.py,sha256=ltuUNWwZJFBmMFXIomMmW1IP5v7tMpQSoC1YbncgoNI,30985
18
- robotcode/robot/diagnostics/namespace.py,sha256=lJOkaS_yCp8SVhURqh5NqAsm394s0cHZUMQwVeh9nno,75159
18
+ robotcode/robot/diagnostics/namespace.py,sha256=nP2Nr388yw91tkd5L6DE9Yn8lb9Y4ML6c5hFn9qq4O4,76705
19
19
  robotcode/robot/diagnostics/namespace_analyzer.py,sha256=MgEoEGH7FvwVYoR3wA0JEGQxMWJTUUHq10NrorJV5LY,74183
20
20
  robotcode/robot/diagnostics/workspace_config.py,sha256=gyKR5z-HpnjxPAui3YujgeZqXX7RYBO_ErGVlk7vnGc,2689
21
21
  robotcode/robot/utils/__init__.py,sha256=OjNPMn_XSnfaMCyKd8Kmq6vlRt6mIGlzW4qiiD3ykUg,447
@@ -26,7 +26,7 @@ robotcode/robot/utils/robot_path.py,sha256=Z-GVBOPA_xeD20bCJi4_AWaU0eQWvCym-YFty
26
26
  robotcode/robot/utils/stubs.py,sha256=umugZYAyneFNgqRJBRMJPzm0u0B_TH8Sx_y-ykXnxpw,351
27
27
  robotcode/robot/utils/variables.py,sha256=-ldL8mRRSYYW2pwlm8IpoDeQcG6LYBqaYyV_7U3xsIc,2174
28
28
  robotcode/robot/utils/visitor.py,sha256=nP3O0qh3YYuxR6S8wYJRBFfNwIVgsgohURBlrnFkRYQ,2299
29
- robotcode_robot-0.97.0.dist-info/METADATA,sha256=ZH34rvGP5O_-ihAJedp0f682Q7DOkNVFoT8s9n9wUeo,2214
30
- robotcode_robot-0.97.0.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
31
- robotcode_robot-0.97.0.dist-info/licenses/LICENSE.txt,sha256=B05uMshqTA74s-0ltyHKI6yoPfJ3zYgQbvcXfDVGFf8,10280
32
- robotcode_robot-0.97.0.dist-info/RECORD,,
29
+ robotcode_robot-0.98.0.dist-info/METADATA,sha256=uHcW1ePx5mWUf9_sVG8Gdkc6Fr1kPyxlpmKF1Zj674c,2214
30
+ robotcode_robot-0.98.0.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
31
+ robotcode_robot-0.98.0.dist-info/licenses/LICENSE.txt,sha256=B05uMshqTA74s-0ltyHKI6yoPfJ3zYgQbvcXfDVGFf8,10280
32
+ robotcode_robot-0.98.0.dist-info/RECORD,,