pySVModel 0.4.1__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pySVModel
3
- Version: 0.4.1
3
+ Version: 0.5.1
4
4
  Summary: An abstract SystemVerilog language model (incl. Verilog).
5
5
  Home-page: https://GitHub.com/edaa-org/pySVModel
6
6
  Author: Patrick Lehmann
@@ -18,17 +18,54 @@ Classifier: Topic :: Software Development :: Code Generators
18
18
  Classifier: Topic :: Software Development :: Compilers
19
19
  Classifier: License :: OSI Approved :: Apache Software License
20
20
  Classifier: Programming Language :: Python :: 3 :: Only
21
- Classifier: Programming Language :: Python :: 3.7
22
- Classifier: Programming Language :: Python :: 3.8
23
21
  Classifier: Programming Language :: Python :: 3.9
24
22
  Classifier: Programming Language :: Python :: 3.10
25
23
  Classifier: Programming Language :: Python :: 3.11
24
+ Classifier: Programming Language :: Python :: 3.12
25
+ Classifier: Programming Language :: Python :: 3.13
26
26
  Classifier: Development Status :: 3 - Alpha
27
- Requires-Python: >=3.7
27
+ Requires-Python: >=3.9
28
28
  Description-Content-Type: text/markdown
29
+ License-File: LICENSE.md
30
+ Requires-Dist: pyTooling~=8.0
29
31
  Provides-Extra: doc
32
+ Requires-Dist: sphinx_reports~=0.7; extra == "doc"
33
+ Requires-Dist: sphinxcontrib-mermaid~=1.0; extra == "doc"
34
+ Requires-Dist: pyTooling~=8.0; extra == "doc"
35
+ Requires-Dist: autoapi>=2.0.1; extra == "doc"
36
+ Requires-Dist: sphinx-copybutton>=0.5.2; extra == "doc"
37
+ Requires-Dist: docutils_stubs~=0.0.22; extra == "doc"
38
+ Requires-Dist: sphinx_autodoc_typehints~=2.5; extra == "doc"
39
+ Requires-Dist: sphinx_rtd_theme~=3.0.0; extra == "doc"
40
+ Requires-Dist: sphinx_design~=0.6.1; extra == "doc"
41
+ Requires-Dist: docutils~=0.21; extra == "doc"
42
+ Requires-Dist: sphinx~=8.1; extra == "doc"
43
+ Provides-Extra: test
44
+ Requires-Dist: lxml~=5.3; extra == "test"
45
+ Requires-Dist: Coverage~=7.6; extra == "test"
46
+ Requires-Dist: pyTooling~=8.0; extra == "test"
47
+ Requires-Dist: pytest-cov~=6.0; extra == "test"
48
+ Requires-Dist: typing_extensions~=4.12; extra == "test"
49
+ Requires-Dist: mypy~=1.13; extra == "test"
50
+ Requires-Dist: pytest~=8.3; extra == "test"
30
51
  Provides-Extra: all
31
- License-File: LICENSE.md
52
+ Requires-Dist: sphinx_reports~=0.7; extra == "all"
53
+ Requires-Dist: lxml~=5.3; extra == "all"
54
+ Requires-Dist: sphinxcontrib-mermaid~=1.0; extra == "all"
55
+ Requires-Dist: Coverage~=7.6; extra == "all"
56
+ Requires-Dist: pyTooling~=8.0; extra == "all"
57
+ Requires-Dist: autoapi>=2.0.1; extra == "all"
58
+ Requires-Dist: sphinx-copybutton>=0.5.2; extra == "all"
59
+ Requires-Dist: docutils_stubs~=0.0.22; extra == "all"
60
+ Requires-Dist: sphinx_autodoc_typehints~=2.5; extra == "all"
61
+ Requires-Dist: pytest-cov~=6.0; extra == "all"
62
+ Requires-Dist: typing_extensions~=4.12; extra == "all"
63
+ Requires-Dist: sphinx_rtd_theme~=3.0.0; extra == "all"
64
+ Requires-Dist: mypy~=1.13; extra == "all"
65
+ Requires-Dist: pytest~=8.3; extra == "all"
66
+ Requires-Dist: sphinx_design~=0.6.1; extra == "all"
67
+ Requires-Dist: docutils~=0.21; extra == "all"
68
+ Requires-Dist: sphinx~=8.1; extra == "all"
32
69
 
33
70
  <p align="center">
34
71
  <a title="edaa-org.github.io/pySVModel" href="https://edaa-org.github.io/pySVModel"><img height="80px" src="doc/_static/logo.svg"/></a>
@@ -11,7 +11,7 @@
11
11
  # #
12
12
  # License: #
13
13
  # ==================================================================================================================== #
14
- # Copyright 2021-2023 Patrick Lehmann - Boetzingen, Germany #
14
+ # Copyright 2021-2024 Patrick Lehmann - Boetzingen, Germany #
15
15
  # #
16
16
  # Licensed under the Apache License, Version 2.0 (the "License"); #
17
17
  # you may not use this file except in compliance with the License. #
@@ -31,8 +31,16 @@
31
31
  """
32
32
  An abstract SystemVerilog language model.
33
33
 
34
- :copyright: Copyright 2021-2023 Patrick Lehmann - Bötzingen, Germany
35
- :license: Apache License, Version 2.0
34
+ This package provides a unified abstract language model for SystemVerilog. Projects reading from source files can derive
35
+ own classes and implement additional logic to create a concrete language model for their tools.
36
+
37
+ Projects consuming pre-processed SystemVerilog data can build higher level features and services on such a model, while
38
+ supporting multiple frontends.
39
+
40
+ .. admonition:: Copyright Information
41
+
42
+ :copyright: Copyright 2021-2024 Patrick Lehmann - Bötzingen, Germany
43
+ :license: Apache License, Version 2.0
36
44
  """
37
45
  from enum import unique, Enum
38
46
  from typing import Dict, Union
@@ -42,26 +50,34 @@ from pyTooling.Decorators import export
42
50
 
43
51
  __author__ = "Patrick Lehmann"
44
52
  __email__ = "Paebbels@gmail.com"
45
- __copyright__ = "2021-2023, Patrick Lehmann"
53
+ __copyright__ = "2021-2024, Patrick Lehmann"
46
54
  __license__ = "Apache License, Version 2.0"
47
- __version__ = "0.4.1"
55
+ __version__ = "0.5.1"
48
56
 
49
57
 
50
58
  @export
51
59
  @unique
52
60
  class SystemVerilogVersion(Enum):
53
- Any = -1
61
+ """
62
+ An enumeration for all possible version numbers for (System)Verilog.
63
+
64
+ A version can be given as integer or string and is represented as a unified
65
+ enumeration value.
54
66
 
55
- Verilog95 = 95
56
- Verilog2001 = 1
57
- Verilog2005 = 5
67
+ This enumeration supports compare operators.
68
+ """
69
+ Any = -1 #: Any
58
70
 
59
- SystemVerilog2005 = 2005
60
- SystemVerilog2009 = 2009
61
- SystemVerilog2012 = 2012
62
- SystemVerilog2017 = 2017
71
+ Verilog95 = 95 #: Verilog-1995
72
+ Verilog2001 = 1 #: Verilog-2001
73
+ Verilog2005 = 5 #: Verilog-2005
63
74
 
64
- Latest = 10000
75
+ SystemVerilog2005 = 2005 #: SystemVerilog-2005
76
+ SystemVerilog2009 = 2009 #: SystemVerilog-2009
77
+ SystemVerilog2012 = 2012 #: SystemVerilog-2012
78
+ SystemVerilog2017 = 2017 #: SystemVerilog-2017
79
+
80
+ Latest = 10000 #: Latest Systemverilog (2017)
65
81
 
66
82
  __VERSION_MAPPINGS__: Dict[Union[int, str], Enum] = {
67
83
  -1: Any,
@@ -96,7 +112,7 @@ class SystemVerilogVersion(Enum):
96
112
  "2012": SystemVerilog2012,
97
113
  "2017": SystemVerilog2017,
98
114
  "Latest": Latest
99
- }
115
+ } #: Dictionary of (System)Verilog year codes variants as integer and strings for mapping to unique enum values.
100
116
 
101
117
  def __init__(self, *_):
102
118
  """Patch the embedded MAP dictionary"""
@@ -106,6 +122,13 @@ class SystemVerilogVersion(Enum):
106
122
 
107
123
  @classmethod
108
124
  def Parse(cls, value: Union[int, str]) -> "SystemVerilogVersion":
125
+ """
126
+ Parses a (System)Verilog year code as integer or string to an enum value.
127
+
128
+ :param value: (System)Verilog year code.
129
+ :returns: Enumeration value.
130
+ :raises ValueError: If the year code is not recognized.
131
+ """
109
132
  try:
110
133
  return cls.__VERSION_MAPPINGS__[value]
111
134
  except KeyError:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pySVModel
3
- Version: 0.4.1
3
+ Version: 0.5.1
4
4
  Summary: An abstract SystemVerilog language model (incl. Verilog).
5
5
  Home-page: https://GitHub.com/edaa-org/pySVModel
6
6
  Author: Patrick Lehmann
@@ -18,17 +18,54 @@ Classifier: Topic :: Software Development :: Code Generators
18
18
  Classifier: Topic :: Software Development :: Compilers
19
19
  Classifier: License :: OSI Approved :: Apache Software License
20
20
  Classifier: Programming Language :: Python :: 3 :: Only
21
- Classifier: Programming Language :: Python :: 3.7
22
- Classifier: Programming Language :: Python :: 3.8
23
21
  Classifier: Programming Language :: Python :: 3.9
24
22
  Classifier: Programming Language :: Python :: 3.10
25
23
  Classifier: Programming Language :: Python :: 3.11
24
+ Classifier: Programming Language :: Python :: 3.12
25
+ Classifier: Programming Language :: Python :: 3.13
26
26
  Classifier: Development Status :: 3 - Alpha
27
- Requires-Python: >=3.7
27
+ Requires-Python: >=3.9
28
28
  Description-Content-Type: text/markdown
29
+ License-File: LICENSE.md
30
+ Requires-Dist: pyTooling~=8.0
29
31
  Provides-Extra: doc
32
+ Requires-Dist: sphinx_reports~=0.7; extra == "doc"
33
+ Requires-Dist: sphinxcontrib-mermaid~=1.0; extra == "doc"
34
+ Requires-Dist: pyTooling~=8.0; extra == "doc"
35
+ Requires-Dist: autoapi>=2.0.1; extra == "doc"
36
+ Requires-Dist: sphinx-copybutton>=0.5.2; extra == "doc"
37
+ Requires-Dist: docutils_stubs~=0.0.22; extra == "doc"
38
+ Requires-Dist: sphinx_autodoc_typehints~=2.5; extra == "doc"
39
+ Requires-Dist: sphinx_rtd_theme~=3.0.0; extra == "doc"
40
+ Requires-Dist: sphinx_design~=0.6.1; extra == "doc"
41
+ Requires-Dist: docutils~=0.21; extra == "doc"
42
+ Requires-Dist: sphinx~=8.1; extra == "doc"
43
+ Provides-Extra: test
44
+ Requires-Dist: lxml~=5.3; extra == "test"
45
+ Requires-Dist: Coverage~=7.6; extra == "test"
46
+ Requires-Dist: pyTooling~=8.0; extra == "test"
47
+ Requires-Dist: pytest-cov~=6.0; extra == "test"
48
+ Requires-Dist: typing_extensions~=4.12; extra == "test"
49
+ Requires-Dist: mypy~=1.13; extra == "test"
50
+ Requires-Dist: pytest~=8.3; extra == "test"
30
51
  Provides-Extra: all
31
- License-File: LICENSE.md
52
+ Requires-Dist: sphinx_reports~=0.7; extra == "all"
53
+ Requires-Dist: lxml~=5.3; extra == "all"
54
+ Requires-Dist: sphinxcontrib-mermaid~=1.0; extra == "all"
55
+ Requires-Dist: Coverage~=7.6; extra == "all"
56
+ Requires-Dist: pyTooling~=8.0; extra == "all"
57
+ Requires-Dist: autoapi>=2.0.1; extra == "all"
58
+ Requires-Dist: sphinx-copybutton>=0.5.2; extra == "all"
59
+ Requires-Dist: docutils_stubs~=0.0.22; extra == "all"
60
+ Requires-Dist: sphinx_autodoc_typehints~=2.5; extra == "all"
61
+ Requires-Dist: pytest-cov~=6.0; extra == "all"
62
+ Requires-Dist: typing_extensions~=4.12; extra == "all"
63
+ Requires-Dist: sphinx_rtd_theme~=3.0.0; extra == "all"
64
+ Requires-Dist: mypy~=1.13; extra == "all"
65
+ Requires-Dist: pytest~=8.3; extra == "all"
66
+ Requires-Dist: sphinx_design~=0.6.1; extra == "all"
67
+ Requires-Dist: docutils~=0.21; extra == "all"
68
+ Requires-Dist: sphinx~=8.1; extra == "all"
32
69
 
33
70
  <p align="center">
34
71
  <a title="edaa-org.github.io/pySVModel" href="https://edaa-org.github.io/pySVModel"><img height="80px" src="doc/_static/logo.svg"/></a>
@@ -0,0 +1,42 @@
1
+ pyTooling~=8.0
2
+
3
+ [all]
4
+ sphinx_reports~=0.7
5
+ lxml~=5.3
6
+ sphinxcontrib-mermaid~=1.0
7
+ Coverage~=7.6
8
+ pyTooling~=8.0
9
+ autoapi>=2.0.1
10
+ sphinx-copybutton>=0.5.2
11
+ docutils_stubs~=0.0.22
12
+ sphinx_autodoc_typehints~=2.5
13
+ pytest-cov~=6.0
14
+ typing_extensions~=4.12
15
+ sphinx_rtd_theme~=3.0.0
16
+ mypy~=1.13
17
+ pytest~=8.3
18
+ sphinx_design~=0.6.1
19
+ docutils~=0.21
20
+ sphinx~=8.1
21
+
22
+ [doc]
23
+ sphinx_reports~=0.7
24
+ sphinxcontrib-mermaid~=1.0
25
+ pyTooling~=8.0
26
+ autoapi>=2.0.1
27
+ sphinx-copybutton>=0.5.2
28
+ docutils_stubs~=0.0.22
29
+ sphinx_autodoc_typehints~=2.5
30
+ sphinx_rtd_theme~=3.0.0
31
+ sphinx_design~=0.6.1
32
+ docutils~=0.21
33
+ sphinx~=8.1
34
+
35
+ [test]
36
+ lxml~=5.3
37
+ Coverage~=7.6
38
+ pyTooling~=8.0
39
+ pytest-cov~=6.0
40
+ typing_extensions~=4.12
41
+ mypy~=1.13
42
+ pytest~=8.3
@@ -1,8 +1,8 @@
1
1
  [build-system]
2
2
  requires = [
3
- "setuptools >= 68.0.0",
4
- "wheel >= 0.40.0",
5
- "pyTooling >= 5.0.0"
3
+ "setuptools ~= 75.4",
4
+ "wheel ~= 0.45",
5
+ "pyTooling ~= 8.0"
6
6
  ]
7
7
  build-backend = "setuptools.build_meta"
8
8
 
@@ -10,15 +10,18 @@ build-backend = "setuptools.build_meta"
10
10
  line-length = 120
11
11
 
12
12
  [tool.mypy]
13
- python_version = "3.11"
14
- namespace_packages = true
15
-
13
+ files = ["pySVModel"]
14
+ python_version = "3.13"
15
+ #ignore_missing_imports = true
16
+ strict = true
16
17
  pretty = true
17
18
  show_error_context = true
18
-
19
+ show_error_codes = true
20
+ namespace_packages = true
19
21
  html_report = "report/typing"
20
22
 
21
23
  [tool.pytest.ini_options]
24
+ addopts = "--tb=native"
22
25
  # Don't set 'python_classes = *' otherwise, pytest doesn't search for classes
23
26
  # derived from unittest.Testcase
24
27
  python_files = "*"
@@ -27,13 +30,28 @@ filterwarnings = [
27
30
  "error::DeprecationWarning",
28
31
  "error::PendingDeprecationWarning"
29
32
  ]
33
+ junit_logging = "all"
34
+
35
+ [tool.interrogate]
36
+ color = true
37
+ verbose = 1 # possible values: 0 (minimal output), 1 (-v), 2 (-vv)
38
+ fail-under = 59
39
+ exclude = [
40
+ "build",
41
+ "dist",
42
+ "doc",
43
+ "tests",
44
+ "setup.py"
45
+ ]
46
+ ignore-setters = true
30
47
 
31
48
  [tool.coverage.run]
32
49
  branch = true
50
+ relative_files = true
33
51
  omit = [
34
52
  "*site-packages*",
35
53
  "setup.py",
36
- "tests/*"
54
+ "tests/unit/*"
37
55
  ]
38
56
 
39
57
  [tool.coverage.report]
@@ -47,9 +65,12 @@ omit = [
47
65
  "tests/*"
48
66
  ]
49
67
 
68
+ [tool.coverage.xml]
69
+ output = "report/coverage/coverage.xml"
70
+
71
+ [tool.coverage.json]
72
+ output = "report/coverage/coverage.json"
73
+
50
74
  [tool.coverage.html]
51
75
  directory = "report/coverage/html"
52
76
  title="Code Coverage of pySVModel"
53
-
54
- [tool.coverage.xml]
55
- output = "report/coverage/coverage.xml"
@@ -11,7 +11,7 @@
11
11
  # #
12
12
  # License: #
13
13
  # ==================================================================================================================== #
14
- # Copyright 2021-2023 Patrick Lehmann - Boetzingen, Germany #
14
+ # Copyright 2021-2024 Patrick Lehmann - Boetzingen, Germany #
15
15
  # #
16
16
  # Licensed under the Apache License, Version 2.0 (the "License"); #
17
17
  # you may not use this file except in compliance with the License. #
@@ -29,6 +29,8 @@
29
29
  # ==================================================================================================================== #
30
30
  #
31
31
  """Package installer for 'An abstract System Verilog language model'."""
32
+ from setuptools import setup
33
+
32
34
  from pathlib import Path
33
35
  from pyTooling.Packaging import DescribePythonPackageHostedOnGitHub, DEFAULT_CLASSIFIERS
34
36
 
@@ -37,7 +39,7 @@ packageName = "pySVModel"
37
39
  packageDirectory = packageName
38
40
  packageInformationFile = Path(f"{packageDirectory}/__init__.py")
39
41
 
40
- DescribePythonPackageHostedOnGitHub(
42
+ setup(**DescribePythonPackageHostedOnGitHub(
41
43
  packageName=packageName,
42
44
  description="An abstract SystemVerilog language model (incl. Verilog).",
43
45
  gitHubNamespace=gitHubNamespace,
@@ -48,5 +50,8 @@ DescribePythonPackageHostedOnGitHub(
48
50
  "Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)",
49
51
  "Topic :: Software Development :: Code Generators",
50
52
  "Topic :: Software Development :: Compilers"
51
- ]
52
- )
53
+ ],
54
+ dataFiles={
55
+ packageName: ["py.typed"]
56
+ }
57
+ ))
@@ -1,17 +0,0 @@
1
- pyTooling>=5.0.0
2
-
3
- [all]
4
- sphinx_autodoc_typehints>=1.19.5
5
- sphinx>=5.3.0
6
- sphinx_fontawesome>=0.0.6
7
- sphinxcontrib-mermaid>=0.7.1
8
- pyTooling>=5.0.0
9
- autoapi>=2.0.1
10
-
11
- [doc]
12
- sphinx_autodoc_typehints>=1.19.5
13
- sphinx>=5.3.0
14
- sphinx_fontawesome>=0.0.6
15
- sphinxcontrib-mermaid>=0.7.1
16
- pyTooling>=5.0.0
17
- autoapi>=2.0.1
File without changes
File without changes
File without changes