pyVHDLModelTreesitter 0.5.0__tar.gz → 0.5.1__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 (47) hide show
  1. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/PKG-INFO +1 -1
  2. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/pyproject.toml +1 -1
  3. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/src/pyVHDLModelTreesitter/DesignUnit.py +1 -1
  4. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/src/pyVHDLModelTreesitter/_Document.py +21 -7
  5. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/.gitignore +0 -0
  6. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/LICENSE +0 -0
  7. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/README.md +0 -0
  8. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/src/pyVHDLModelTreesitter/Association.py +0 -0
  9. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/src/pyVHDLModelTreesitter/Base.py +0 -0
  10. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/src/pyVHDLModelTreesitter/Concurrent.py +0 -0
  11. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/src/pyVHDLModelTreesitter/Expression.py +0 -0
  12. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/src/pyVHDLModelTreesitter/Interface.py +0 -0
  13. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/src/pyVHDLModelTreesitter/Name.py +0 -0
  14. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/src/pyVHDLModelTreesitter/Object.py +0 -0
  15. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/src/pyVHDLModelTreesitter/Symbol.py +0 -0
  16. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/src/pyVHDLModelTreesitter/_Design.py +0 -0
  17. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/src/pyVHDLModelTreesitter/_Library.py +0 -0
  18. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/src/pyVHDLModelTreesitter/__init__.py +0 -0
  19. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/src/pyVHDLModelTreesitter/_errors.py +0 -0
  20. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/src/pyVHDLModelTreesitter/_parse.py +0 -0
  21. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/src/pyVHDLModelTreesitter/py.typed +0 -0
  22. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/src/pyVHDLModelTreesitter/treesitter/__init__.py +0 -0
  23. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/src/pyVHDLModelTreesitter/treesitter/_base_class.py +0 -0
  24. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/src/pyVHDLModelTreesitter/treesitter/_utils.py +0 -0
  25. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/src/pyVHDLModelTreesitter/treesitter/queries/adding_expression.scm +0 -0
  26. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/src/pyVHDLModelTreesitter/treesitter/queries/architecture_definition.scm +0 -0
  27. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/src/pyVHDLModelTreesitter/treesitter/queries/association_element.scm +0 -0
  28. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/src/pyVHDLModelTreesitter/treesitter/queries/association_elements.scm +0 -0
  29. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/src/pyVHDLModelTreesitter/treesitter/queries/component_instantiation_statement.scm +0 -0
  30. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/src/pyVHDLModelTreesitter/treesitter/queries/constant_declaration.scm +0 -0
  31. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/src/pyVHDLModelTreesitter/treesitter/queries/constrained_1d_array.scm +0 -0
  32. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/src/pyVHDLModelTreesitter/treesitter/queries/design_units.scm +0 -0
  33. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/src/pyVHDLModelTreesitter/treesitter/queries/entity_declaration.scm +0 -0
  34. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/src/pyVHDLModelTreesitter/treesitter/queries/function_call.scm +0 -0
  35. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/src/pyVHDLModelTreesitter/treesitter/queries/ignorable_parentheses.scm +0 -0
  36. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/src/pyVHDLModelTreesitter/treesitter/queries/interface_declaration.scm +0 -0
  37. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/src/pyVHDLModelTreesitter/treesitter/queries/interface_declarations.scm +0 -0
  38. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/src/pyVHDLModelTreesitter/treesitter/queries/library_clauses.scm +0 -0
  39. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/src/pyVHDLModelTreesitter/treesitter/queries/library_namespaces.scm +0 -0
  40. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/src/pyVHDLModelTreesitter/treesitter/queries/multiplying_expression.scm +0 -0
  41. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/src/pyVHDLModelTreesitter/treesitter/queries/package_declaration.scm +0 -0
  42. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/src/pyVHDLModelTreesitter/treesitter/queries/package_definition.scm +0 -0
  43. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/src/pyVHDLModelTreesitter/treesitter/queries/selected_names.scm +0 -0
  44. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/src/pyVHDLModelTreesitter/treesitter/queries/simple_subtype.scm +0 -0
  45. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/src/pyVHDLModelTreesitter/treesitter/queries/type_conversion.scm +0 -0
  46. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/src/pyVHDLModelTreesitter/treesitter/queries/use_clauses.scm +0 -0
  47. {pyvhdlmodeltreesitter-0.5.0 → pyvhdlmodeltreesitter-0.5.1}/src/pyVHDLModelTreesitter/treesitter/query.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyVHDLModelTreesitter
3
- Version: 0.5.0
3
+ Version: 0.5.1
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
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "pyVHDLModelTreesitter"
7
- version = "0.5.0"
7
+ version = "0.5.1"
8
8
  description = "An implementation of pyVHDLModel using treesitter"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -120,7 +120,7 @@ class UseClause(TreesitterNodeMixin, VHDLModel_UseClause): # noqa: D101
120
120
  symbols.append(
121
121
  PackageReferenceSymbol(selected_or_simple_name(selected_name)),
122
122
  )
123
- ret.append(cls(symbols, _treesitter_node=selected_name_node))
123
+ ret.append(cls(symbols, _treesitter_node=use_clause_node))
124
124
  return ret
125
125
 
126
126
  def __eq__(self, other: object) -> bool: # noqa: D105
@@ -21,7 +21,23 @@ from pyVHDLModelTreesitter.treesitter.query import PARSER, DesignUnits
21
21
 
22
22
  class Document(VHDLModel_Document):
23
23
  @classmethod
24
- def from_file(cls, path: str | Path) -> Self: # noqa: C901, PLR0912 # TODO: refactor
24
+ def from_file(cls, path: str | Path) -> Self:
25
+ """
26
+ Create a Document, and all ModelEntities it contains.
27
+
28
+ Nodes that are not recognised issue a `NotImplementedWarning`.
29
+ """
30
+ if isinstance(path, str):
31
+ path = Path(path)
32
+ path = path.resolve()
33
+ return cls.from_text(path.read_bytes(), path)
34
+
35
+ @classmethod
36
+ def from_text( # noqa: C901, PLR0912 # TODO: refactor
37
+ cls,
38
+ text: str | bytes,
39
+ path: str | Path,
40
+ ) -> Self:
25
41
  """
26
42
  Create a Document, and all ModelEntities it contains.
27
43
 
@@ -34,13 +50,16 @@ class Document(VHDLModel_Document):
34
50
  - Any `design_unit` node has no children.
35
51
 
36
52
  """
53
+ if isinstance(text, str):
54
+ text = text.encode()
37
55
  if isinstance(path, str):
38
56
  path = Path(path)
39
57
  path = path.resolve()
40
58
  document = cls(path)
41
59
 
42
- tree = PARSER.parse(path.read_bytes())
60
+ tree = PARSER.parse(text)
43
61
  node = tree.root_node
62
+
44
63
  captures = DesignUnits.capture(node)
45
64
  design_unit_captures = captures.get("design_unit")
46
65
  if design_unit_captures is None:
@@ -52,9 +71,6 @@ class Document(VHDLModel_Document):
52
71
  context_children = design_unit_capture.children[:-1]
53
72
  context_items: list[LibraryClause | UseClause] = []
54
73
  for context_child in context_children:
55
- if context_child is None:
56
- # TODO: error type is wrong: should be "discovered child is empty"
57
- raise NodeMissingChildError(node, "design_unit")
58
74
  if context_child.type == "library_clause":
59
75
  context_items.extend(
60
76
  LibraryClause.from_treesitter_node(context_child),
@@ -65,8 +81,6 @@ class Document(VHDLModel_Document):
65
81
  )
66
82
  else:
67
83
  NotImplementedWarning.warn_child_type(context_child)
68
- if design_unit_child is None:
69
- raise NodeMissingChildError(node, "design_unit")
70
84
  if design_unit_child.type == "architecture_definition":
71
85
  architecture = Architecture.from_treesitter_node(
72
86
  node,