pyVHDLModelTreesitter 0.3.1__tar.gz → 0.4.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.
Files changed (41) hide show
  1. {pyvhdlmodeltreesitter-0.3.1 → pyvhdlmodeltreesitter-0.4.0}/PKG-INFO +1 -5
  2. {pyvhdlmodeltreesitter-0.3.1 → pyvhdlmodeltreesitter-0.4.0}/README.md +0 -4
  3. {pyvhdlmodeltreesitter-0.3.1 → pyvhdlmodeltreesitter-0.4.0}/pyproject.toml +1 -1
  4. pyvhdlmodeltreesitter-0.4.0/src/pyVHDLModelTreesitter/Association.py +36 -0
  5. {pyvhdlmodeltreesitter-0.3.1 → pyvhdlmodeltreesitter-0.4.0}/src/pyVHDLModelTreesitter/Base.py +5 -5
  6. {pyvhdlmodeltreesitter-0.3.1 → pyvhdlmodeltreesitter-0.4.0}/src/pyVHDLModelTreesitter/DesignUnit.py +6 -6
  7. pyvhdlmodeltreesitter-0.4.0/src/pyVHDLModelTreesitter/Expression.py +711 -0
  8. {pyvhdlmodeltreesitter-0.3.1 → pyvhdlmodeltreesitter-0.4.0}/src/pyVHDLModelTreesitter/Interface.py +77 -91
  9. pyvhdlmodeltreesitter-0.4.0/src/pyVHDLModelTreesitter/Name.py +63 -0
  10. {pyvhdlmodeltreesitter-0.3.1 → pyvhdlmodeltreesitter-0.4.0}/src/pyVHDLModelTreesitter/Symbol.py +61 -80
  11. {pyvhdlmodeltreesitter-0.3.1 → pyvhdlmodeltreesitter-0.4.0}/src/pyVHDLModelTreesitter/_Design.py +2 -2
  12. {pyvhdlmodeltreesitter-0.3.1 → pyvhdlmodeltreesitter-0.4.0}/src/pyVHDLModelTreesitter/_Document.py +4 -10
  13. {pyvhdlmodeltreesitter-0.3.1 → pyvhdlmodeltreesitter-0.4.0}/src/pyVHDLModelTreesitter/_Library.py +2 -2
  14. {pyvhdlmodeltreesitter-0.3.1 → pyvhdlmodeltreesitter-0.4.0}/src/pyVHDLModelTreesitter/__init__.py +2 -1
  15. {pyvhdlmodeltreesitter-0.3.1 → pyvhdlmodeltreesitter-0.4.0}/src/pyVHDLModelTreesitter/_errors.py +35 -6
  16. {pyvhdlmodeltreesitter-0.3.1 → pyvhdlmodeltreesitter-0.4.0}/src/pyVHDLModelTreesitter/treesitter/__init__.py +2 -2
  17. {pyvhdlmodeltreesitter-0.3.1 → pyvhdlmodeltreesitter-0.4.0}/src/pyVHDLModelTreesitter/treesitter/_base_class.py +2 -2
  18. {pyvhdlmodeltreesitter-0.3.1 → pyvhdlmodeltreesitter-0.4.0}/src/pyVHDLModelTreesitter/treesitter/_utils.py +4 -4
  19. {pyvhdlmodeltreesitter-0.3.1 → pyvhdlmodeltreesitter-0.4.0}/src/pyVHDLModelTreesitter/treesitter/queries/adding_expression.scm +1 -1
  20. pyvhdlmodeltreesitter-0.4.0/src/pyVHDLModelTreesitter/treesitter/queries/association_elements.scm +3 -0
  21. {pyvhdlmodeltreesitter-0.3.1 → pyvhdlmodeltreesitter-0.4.0}/src/pyVHDLModelTreesitter/treesitter/queries/constrained_1d_array.scm +2 -2
  22. pyvhdlmodeltreesitter-0.4.0/src/pyVHDLModelTreesitter/treesitter/queries/function_call.scm +33 -0
  23. pyvhdlmodeltreesitter-0.4.0/src/pyVHDLModelTreesitter/treesitter/queries/ignorable_parentheses.scm +11 -0
  24. {pyvhdlmodeltreesitter-0.3.1 → pyvhdlmodeltreesitter-0.4.0}/src/pyVHDLModelTreesitter/treesitter/queries/interface_declaration.scm +2 -2
  25. pyvhdlmodeltreesitter-0.4.0/src/pyVHDLModelTreesitter/treesitter/queries/multiplying_expression.scm +5 -0
  26. {pyvhdlmodeltreesitter-0.3.1 → pyvhdlmodeltreesitter-0.4.0}/src/pyVHDLModelTreesitter/treesitter/queries/simple_subtype.scm +2 -2
  27. pyvhdlmodeltreesitter-0.4.0/src/pyVHDLModelTreesitter/treesitter/queries/type_conversion.scm +30 -0
  28. pyvhdlmodeltreesitter-0.4.0/src/pyVHDLModelTreesitter/treesitter/query.py +180 -0
  29. pyvhdlmodeltreesitter-0.3.1/src/pyVHDLModelTreesitter/Expression.py +0 -347
  30. pyvhdlmodeltreesitter-0.3.1/src/pyVHDLModelTreesitter/Name.py +0 -69
  31. pyvhdlmodeltreesitter-0.3.1/src/pyVHDLModelTreesitter/treesitter/query.py +0 -105
  32. {pyvhdlmodeltreesitter-0.3.1 → pyvhdlmodeltreesitter-0.4.0}/.gitignore +0 -0
  33. {pyvhdlmodeltreesitter-0.3.1 → pyvhdlmodeltreesitter-0.4.0}/LICENSE +0 -0
  34. {pyvhdlmodeltreesitter-0.3.1 → pyvhdlmodeltreesitter-0.4.0}/src/pyVHDLModelTreesitter/py.typed +0 -0
  35. {pyvhdlmodeltreesitter-0.3.1 → pyvhdlmodeltreesitter-0.4.0}/src/pyVHDLModelTreesitter/treesitter/queries/design_units.scm +0 -0
  36. {pyvhdlmodeltreesitter-0.3.1 → pyvhdlmodeltreesitter-0.4.0}/src/pyVHDLModelTreesitter/treesitter/queries/entity_declaration.scm +0 -0
  37. {pyvhdlmodeltreesitter-0.3.1 → pyvhdlmodeltreesitter-0.4.0}/src/pyVHDLModelTreesitter/treesitter/queries/interface_declarations.scm +0 -0
  38. {pyvhdlmodeltreesitter-0.3.1 → pyvhdlmodeltreesitter-0.4.0}/src/pyVHDLModelTreesitter/treesitter/queries/library_clauses.scm +0 -0
  39. {pyvhdlmodeltreesitter-0.3.1 → pyvhdlmodeltreesitter-0.4.0}/src/pyVHDLModelTreesitter/treesitter/queries/library_namespaces.scm +0 -0
  40. {pyvhdlmodeltreesitter-0.3.1 → pyvhdlmodeltreesitter-0.4.0}/src/pyVHDLModelTreesitter/treesitter/queries/selected_names.scm +0 -0
  41. {pyvhdlmodeltreesitter-0.3.1 → pyvhdlmodeltreesitter-0.4.0}/src/pyVHDLModelTreesitter/treesitter/queries/use_clauses.scm +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyVHDLModelTreesitter
3
- Version: 0.3.1
3
+ Version: 0.4.0
4
4
  Summary: An implementation of pyVHDLModel using treesitter
5
5
  Project-URL: Repository, https://gitlab.com/dawalters/pyVHDLModelTreesitter
6
6
  Author: Dominic Adam Walters
@@ -44,10 +44,6 @@ Description-Content-Type: text/markdown
44
44
  > Disclaimer: This project is in early development and only implements a
45
45
  fraction of the features of [`pyVHDLModel`][pyVHDLModel-github].
46
46
 
47
- ## Dependencies
48
-
49
- - Python 3.10 or newer.
50
-
51
47
  ## Installation
52
48
 
53
49
  ### `pip`
@@ -12,10 +12,6 @@
12
12
  > Disclaimer: This project is in early development and only implements a
13
13
  fraction of the features of [`pyVHDLModel`][pyVHDLModel-github].
14
14
 
15
- ## Dependencies
16
-
17
- - Python 3.10 or newer.
18
-
19
15
  ## Installation
20
16
 
21
17
  ### `pip`
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "pyVHDLModelTreesitter"
7
- version = "0.3.1"
7
+ version = "0.4.0"
8
8
  description = "An implementation of pyVHDLModel using treesitter"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -0,0 +1,36 @@
1
+ """Submodule mirroring modified aspects of pyVHDLModel.Association."""
2
+
3
+ from __future__ import annotations
4
+
5
+ __all__ = [
6
+ "AssociationItem",
7
+ ]
8
+
9
+ from typing import cast
10
+
11
+ import pyVHDLModel
12
+
13
+
14
+ class AssociationItem(pyVHDLModel.Association.AssociationItem): # noqa: D101
15
+ def __eq__(self, other: object) -> bool: # noqa: D105
16
+ if not isinstance(other, AssociationItem):
17
+ return False
18
+ # Required for LSP completions
19
+ other = cast("AssociationItem", other) # type: ignore[redundant-cast]
20
+ return self._formal == other._formal and self._actual == other._actual
21
+
22
+ def __hash__(self) -> int: # noqa: D105
23
+ return hash(
24
+ (
25
+ self._formal,
26
+ self._actual,
27
+ ),
28
+ )
29
+
30
+ def __repr__(self) -> str: # noqa: D105
31
+ return (
32
+ f"{self.__class__.__name__}("
33
+ f"_formal={self._formal!r}, "
34
+ f"_actual={self._actual!r}, "
35
+ ")"
36
+ )
@@ -21,7 +21,7 @@ from pyVHDLModelTreesitter._errors import (
21
21
  NotImplementedWarning,
22
22
  )
23
23
  from pyVHDLModelTreesitter.Expression import parse_simple_expression
24
- from pyVHDLModelTreesitter.treesitter import BaseTreesitterNode
24
+ from pyVHDLModelTreesitter.treesitter import TreesitterNodeMixin
25
25
 
26
26
 
27
27
  def parse_as_direction(string: str) -> pyVHDLModel.Base.Direction | None:
@@ -67,7 +67,7 @@ def parse_as_mode(string: str) -> pyVHDLModel.Base.Mode | None:
67
67
  return None
68
68
 
69
69
 
70
- class Range(BaseTreesitterNode, pyVHDLModel.Base.Range): # noqa: D101
70
+ class Range(TreesitterNodeMixin, pyVHDLModel.Base.Range): # noqa: D101
71
71
  @classmethod
72
72
  def from_treesitter_node( # noqa: C901, PLR0912
73
73
  cls,
@@ -98,7 +98,7 @@ class Range(BaseTreesitterNode, pyVHDLModel.Base.Range): # noqa: D101
98
98
  if left is None:
99
99
  raise NodeMissingChildError(node, "first-child")
100
100
  if left.type != "simple_expression":
101
- NotImplementedWarning.warn_child_type(left.type, "simple_range")
101
+ NotImplementedWarning.warn_child_type(left)
102
102
  return None
103
103
  if left.text is None or len(left.text) == 0:
104
104
  raise NodeTextIsNoneError(left)
@@ -106,7 +106,7 @@ class Range(BaseTreesitterNode, pyVHDLModel.Base.Range): # noqa: D101
106
106
  if direction_node is None:
107
107
  raise NodeMissingChildError(node, "second-child")
108
108
  if len(direction_node.type) == 0:
109
- NotImplementedWarning.warn_child_type(direction_node.type, "")
109
+ NotImplementedWarning.warn_child_type(direction_node)
110
110
  return None
111
111
  if direction_node.text is None or len(direction_node.text) == 0:
112
112
  raise NodeTextIsNoneError(direction_node)
@@ -115,7 +115,7 @@ class Range(BaseTreesitterNode, pyVHDLModel.Base.Range): # noqa: D101
115
115
  if right is None:
116
116
  raise NodeMissingChildError(node, "third-child")
117
117
  if right.type != "simple_expression":
118
- NotImplementedWarning.warn_child_type(right.type, "simple_range")
118
+ NotImplementedWarning.warn_child_type(right)
119
119
  return None
120
120
  if right.text is None or len(right.text) == 0:
121
121
  raise NodeTextIsNoneError(right)
@@ -11,8 +11,8 @@ __all__ = [
11
11
  from typing import TYPE_CHECKING, Self, cast
12
12
 
13
13
  import pyVHDLModel
14
- from pyVHDLModel.DesignUnit import LibraryClause as BaseLibraryClause
15
- from pyVHDLModel.DesignUnit import UseClause as BaseUseClause
14
+ from pyVHDLModel.DesignUnit import LibraryClause as VHDLModel_LibraryClause
15
+ from pyVHDLModel.DesignUnit import UseClause as VHDLModel_UseClause
16
16
 
17
17
  from pyVHDLModelTreesitter._errors import NodeExtraChildError, NodeTextIsNoneError
18
18
  from pyVHDLModelTreesitter.Interface import (
@@ -22,7 +22,7 @@ from pyVHDLModelTreesitter.Interface import (
22
22
  from pyVHDLModelTreesitter.Name import SelectedName, SimpleName
23
23
  from pyVHDLModelTreesitter.Symbol import LibraryReferenceSymbol, PackageReferenceSymbol
24
24
  from pyVHDLModelTreesitter.treesitter import (
25
- BaseTreesitterNode,
25
+ TreesitterNodeMixin,
26
26
  get_node_or_raise,
27
27
  get_nodes_or_raise,
28
28
  sort_into_text_order,
@@ -42,7 +42,7 @@ if TYPE_CHECKING:
42
42
  import tree_sitter
43
43
 
44
44
 
45
- class LibraryClause(BaseTreesitterNode, BaseLibraryClause): # noqa: D101
45
+ class LibraryClause(TreesitterNodeMixin, VHDLModel_LibraryClause): # noqa: D101
46
46
  @classmethod
47
47
  def from_treesitter_node(
48
48
  cls,
@@ -96,7 +96,7 @@ class LibraryClause(BaseTreesitterNode, BaseLibraryClause): # noqa: D101
96
96
  return f"{self.__class__.__name__}(_symbols={self._symbols!r}, )"
97
97
 
98
98
 
99
- class UseClause(BaseTreesitterNode, BaseUseClause): # noqa: D101
99
+ class UseClause(TreesitterNodeMixin, VHDLModel_UseClause): # noqa: D101
100
100
  @classmethod
101
101
  def from_treesitter_node(
102
102
  cls,
@@ -159,7 +159,7 @@ class UseClause(BaseTreesitterNode, BaseUseClause): # noqa: D101
159
159
  return f"{self.__class__.__name__}(_symbols={self._symbols!r}, )"
160
160
 
161
161
 
162
- class Entity(BaseTreesitterNode, pyVHDLModel.Entity): # noqa: D101
162
+ class Entity(TreesitterNodeMixin, pyVHDLModel.Entity): # noqa: D101
163
163
  @classmethod
164
164
  def from_treesitter_node(
165
165
  cls,