pyVHDLModelTreesitter 0.5.1__tar.gz → 0.5.2__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 (49) hide show
  1. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/PKG-INFO +4 -4
  2. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/pyproject.toml +4 -4
  3. pyvhdlmodeltreesitter-0.5.2/src/pyVHDLModelTreesitter/format.py +68 -0
  4. pyvhdlmodeltreesitter-0.5.2/src/pyVHDLModelTreesitter/treesitter/queries/concurrent_simple_signal_assignment.scm +5 -0
  5. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/.gitignore +0 -0
  6. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/LICENSE +0 -0
  7. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/README.md +0 -0
  8. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/src/pyVHDLModelTreesitter/Association.py +0 -0
  9. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/src/pyVHDLModelTreesitter/Base.py +0 -0
  10. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/src/pyVHDLModelTreesitter/Concurrent.py +0 -0
  11. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/src/pyVHDLModelTreesitter/DesignUnit.py +0 -0
  12. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/src/pyVHDLModelTreesitter/Expression.py +0 -0
  13. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/src/pyVHDLModelTreesitter/Interface.py +0 -0
  14. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/src/pyVHDLModelTreesitter/Name.py +0 -0
  15. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/src/pyVHDLModelTreesitter/Object.py +0 -0
  16. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/src/pyVHDLModelTreesitter/Symbol.py +0 -0
  17. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/src/pyVHDLModelTreesitter/_Design.py +0 -0
  18. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/src/pyVHDLModelTreesitter/_Document.py +0 -0
  19. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/src/pyVHDLModelTreesitter/_Library.py +0 -0
  20. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/src/pyVHDLModelTreesitter/__init__.py +0 -0
  21. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/src/pyVHDLModelTreesitter/_errors.py +0 -0
  22. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/src/pyVHDLModelTreesitter/_parse.py +0 -0
  23. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/src/pyVHDLModelTreesitter/py.typed +0 -0
  24. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/src/pyVHDLModelTreesitter/treesitter/__init__.py +0 -0
  25. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/src/pyVHDLModelTreesitter/treesitter/_base_class.py +0 -0
  26. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/src/pyVHDLModelTreesitter/treesitter/_utils.py +0 -0
  27. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/src/pyVHDLModelTreesitter/treesitter/queries/adding_expression.scm +0 -0
  28. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/src/pyVHDLModelTreesitter/treesitter/queries/architecture_definition.scm +0 -0
  29. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/src/pyVHDLModelTreesitter/treesitter/queries/association_element.scm +0 -0
  30. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/src/pyVHDLModelTreesitter/treesitter/queries/association_elements.scm +0 -0
  31. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/src/pyVHDLModelTreesitter/treesitter/queries/component_instantiation_statement.scm +0 -0
  32. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/src/pyVHDLModelTreesitter/treesitter/queries/constant_declaration.scm +0 -0
  33. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/src/pyVHDLModelTreesitter/treesitter/queries/constrained_1d_array.scm +0 -0
  34. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/src/pyVHDLModelTreesitter/treesitter/queries/design_units.scm +0 -0
  35. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/src/pyVHDLModelTreesitter/treesitter/queries/entity_declaration.scm +0 -0
  36. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/src/pyVHDLModelTreesitter/treesitter/queries/function_call.scm +0 -0
  37. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/src/pyVHDLModelTreesitter/treesitter/queries/ignorable_parentheses.scm +0 -0
  38. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/src/pyVHDLModelTreesitter/treesitter/queries/interface_declaration.scm +0 -0
  39. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/src/pyVHDLModelTreesitter/treesitter/queries/interface_declarations.scm +0 -0
  40. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/src/pyVHDLModelTreesitter/treesitter/queries/library_clauses.scm +0 -0
  41. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/src/pyVHDLModelTreesitter/treesitter/queries/library_namespaces.scm +0 -0
  42. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/src/pyVHDLModelTreesitter/treesitter/queries/multiplying_expression.scm +0 -0
  43. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/src/pyVHDLModelTreesitter/treesitter/queries/package_declaration.scm +0 -0
  44. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/src/pyVHDLModelTreesitter/treesitter/queries/package_definition.scm +0 -0
  45. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/src/pyVHDLModelTreesitter/treesitter/queries/selected_names.scm +0 -0
  46. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/src/pyVHDLModelTreesitter/treesitter/queries/simple_subtype.scm +0 -0
  47. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/src/pyVHDLModelTreesitter/treesitter/queries/type_conversion.scm +0 -0
  48. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/src/pyVHDLModelTreesitter/treesitter/queries/use_clauses.scm +0 -0
  49. {pyvhdlmodeltreesitter-0.5.1 → pyvhdlmodeltreesitter-0.5.2}/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.1
3
+ Version: 0.5.2
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
@@ -15,7 +15,9 @@ Classifier: Programming Language :: Python :: 3.12
15
15
  Classifier: Programming Language :: Python :: 3.13
16
16
  Classifier: Programming Language :: Python :: 3.14
17
17
  Requires-Python: >=3.11
18
- Requires-Dist: pyvhdlmodel>=0.32.0
18
+ Requires-Dist: pygments>=2.20.0
19
+ Requires-Dist: pyvhdlmodel>=0.34.0
20
+ Requires-Dist: rich>=11.0.0
19
21
  Requires-Dist: tree-sitter-vhdl>=1.2.5
20
22
  Requires-Dist: tree-sitter>=0.23.0
21
23
  Provides-Extra: dev
@@ -26,13 +28,11 @@ Requires-Dist: idna==3.16; extra == 'dev'
26
28
  Requires-Dist: jaraco-context==6.1.2; extra == 'dev'
27
29
  Requires-Dist: mypy==2.1.0; extra == 'dev'
28
30
  Requires-Dist: pre-commit==4.6.0; extra == 'dev'
29
- Requires-Dist: pygments==2.20.0; extra == 'dev'
30
31
  Requires-Dist: pytest-cov==7.1.0; extra == 'dev'
31
32
  Requires-Dist: pytest-order==1.4.0; extra == 'dev'
32
33
  Requires-Dist: pytest-sugar==1.1.1; extra == 'dev'
33
34
  Requires-Dist: pytest-xdist==3.8.0; extra == 'dev'
34
35
  Requires-Dist: pytest==9.0.3; extra == 'dev'
35
- Requires-Dist: rich==15.0.0; extra == 'dev'
36
36
  Requires-Dist: ruff==0.15.14; extra == 'dev'
37
37
  Requires-Dist: ty==0.0.39; extra == 'dev'
38
38
  Requires-Dist: uv==0.11.16; extra == 'dev'
@@ -4,12 +4,14 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "pyVHDLModelTreesitter"
7
- version = "0.5.1"
7
+ version = "0.5.2"
8
8
  description = "An implementation of pyVHDLModel using treesitter"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
11
11
  dependencies = [
12
- "pyVHDLModel >= 0.32.0",
12
+ "pyVHDLModel >= 0.34.0",
13
+ "rich >= 11.0.0",
14
+ "pygments >= 2.20.0", # forced to avoid CVE
13
15
  "tree-sitter >= 0.23.0",
14
16
  "tree-sitter-vhdl >= 1.2.5",
15
17
  ]
@@ -42,8 +44,6 @@ dev = [
42
44
  "pytest-order == 1.4.0",
43
45
  "pytest-sugar == 1.1.1",
44
46
  "pytest-xdist == 3.8.0",
45
- "rich == 15.0.0",
46
- "pygments == 2.20.0", # forced to avoid CVE
47
47
  "ruff == 0.15.14",
48
48
  "ty == 0.0.39",
49
49
  "uv == 0.11.16",
@@ -0,0 +1,68 @@
1
+ """
2
+ Submodule that provides useful utilities for performing nice looking outputs.
3
+
4
+ WARNING: This submodule is a filthy hack. When called, `patch_module`
5
+ monkeypatches a generic `__rich_repr__` method onto every class in a given
6
+ module within `pyVHDLModel`.
7
+
8
+ This avoids having to write a `__rich_repr__` for every class. This is not a
9
+ good solution, but it was quick and works for what I care about.
10
+ """
11
+
12
+ from __future__ import annotations
13
+
14
+ import importlib
15
+ import inspect
16
+ import pkgutil
17
+ from typing import TYPE_CHECKING
18
+
19
+ if TYPE_CHECKING:
20
+ from types import ModuleType
21
+
22
+ if TYPE_CHECKING:
23
+ from rich.repr import Result as RichReprResult
24
+
25
+ import pyVHDLModelTreesitter
26
+
27
+
28
+ def __rich_repr__(obj: object) -> RichReprResult: # noqa: N807
29
+ """
30
+ Return a rich compatible repr for an arbitrary object.
31
+
32
+ WARNING: `obj` must define `__allSlots__` or `__dict__`.
33
+ """ # noqa: DOC402
34
+ for attr in (
35
+ getattr(obj, "__allSlots__", [])
36
+ if hasattr(obj, "__allSlots__")
37
+ else obj.__dict__
38
+ ):
39
+ if attr in {
40
+ "_documents", # this duplicates data in the `_libraries` field
41
+ "_namespace", # this isn't printed
42
+ "_parent", # this duplicates the parent
43
+ "_treesitter_node", # this doesn't provide useful info
44
+ } or attr.endswith(("Graph", "Vertex")): # these are from the dependency graph
45
+ continue
46
+ yield attr, getattr(obj, attr)
47
+
48
+
49
+ def patch_module(
50
+ *,
51
+ module: ModuleType = pyVHDLModelTreesitter,
52
+ top: bool = True,
53
+ ) -> None:
54
+ """Inject a `__rich_repr__` into every class defined in a given module."""
55
+ # Inject into all classes defined in this module
56
+ for _, obj in inspect.getmembers(module):
57
+ if (
58
+ inspect.isclass(obj)
59
+ and obj.__module__ == module.__name__
60
+ and not hasattr(obj, "__rich_repr__")
61
+ ):
62
+ obj.__rich_repr__ = __rich_repr__
63
+ # Inject into all submodules of this module
64
+ if top and hasattr(module, "__path__"):
65
+ for _, name, _ in pkgutil.walk_packages(pyVHDLModelTreesitter.__path__):
66
+ full_name = f"{pyVHDLModelTreesitter.__name__}.{name}"
67
+ submodule = importlib.import_module(full_name)
68
+ patch_module(module=submodule, top=False)
@@ -0,0 +1,5 @@
1
+ (concurrent_simple_signal_assignment
2
+ (name) @lhs
3
+ (signal_assignment)
4
+ (waveform) @rhs
5
+ ) @signal