From 19f10ed6c933b0489d46867d44ef71a7a5b1f0cf Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Mon, 6 Feb 2023 00:41:24 +0100 Subject: [PATCH 01/10] Bumped version to v0.2.0. [skip ci] --- VHDLDomain/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VHDLDomain/__init__.py b/VHDLDomain/__init__.py index 3691c71..0a8987c 100644 --- a/VHDLDomain/__init__.py +++ b/VHDLDomain/__init__.py @@ -42,7 +42,7 @@ __email__ = "Paebbels@gmail.com" __copyright__ = "2016-2023, Patrick Lehmann" __license__ = "Apache License, Version 2.0" -__version__ = "0.1.0" +__version__ = "0.2.0" from pathlib import Path from typing import Dict, Tuple, Any, Optional as Nullable, cast From 5d637613265b8e1bd661a9eeb9c2d84df2a71576 Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Mon, 6 Feb 2023 23:18:36 +0100 Subject: [PATCH 02/10] More activated directives. --- VHDLDomain/Directive.py | 507 +++++++++++++++++++++++++--------------- VHDLDomain/__init__.py | 6 +- doc/StopWatch/index.rst | 11 + 3 files changed, 338 insertions(+), 186 deletions(-) diff --git a/VHDLDomain/Directive.py b/VHDLDomain/Directive.py index 232a735..a319c6e 100644 --- a/VHDLDomain/Directive.py +++ b/VHDLDomain/Directive.py @@ -96,8 +96,193 @@ class BaseDirective(ObjectDescription): :py:exc:`TypeError` exceptions. """ - # def __init__(self, *args, **kwargs): - # super().__init__(*args, **kwargs) + def ParseBooleanOption(self, optionName: str, default: bool) -> bool: + try: + option = self.options[optionName] + except KeyError: + try: + option = self.defaultValues[optionName] + except KeyError: + return default + + if option in ("yes", "true"): + return True + elif option in ("no", "false"): + return False + else: + raise ValueError(f"Value '{option}' not supported for a boolean value (yes/true, no/false).") + + def _PrepareTable(self, columns: Dict[str, int], classes: List[str]) -> Tuple[table, tgroup]: + tableGroup = nodes.tgroup(cols=(len(columns))) + table = nodes.table("", tableGroup, classes=classes) + + tableRow = nodes.row() + for columnTitle, width in columns.items(): + tableGroup += nodes.colspec(colwidth=width) + tableRow += nodes.entry("", nodes.paragraph(text=columnTitle)) + + tableGroup += nodes.thead("", tableRow) + + return table, tableGroup + + +@export +class WithParametersMixin: + def ParseParameterStyleOption(self, optionName: str) -> ParameterStyle: + try: + option = self.options[optionName] + except KeyError: + try: + option = self.defaultValues[optionName] + except KeyError: + return ParameterStyle.Table + + if option == "never": + return ParameterStyle.Never + elif option == "table": + return ParameterStyle.Table + elif option == "sections": + return ParameterStyle.Sections + else: + raise ValueError(f"value '{option}' is not in list of choices: never, table, sections.") + + +@export +class WithGenericsMixin(WithParametersMixin): + def _CreateGenericsAsTable(self, entity: Entity) -> table: + table, tableGroup = self._PrepareTable( + columns={ + "Generic Name": 2, + "Type": 1, + "Default Value": 2, + "Description": 4, + }, + classes=["vhdl", "vhdl-generic-table"] + ) + + tableBody = nodes.tbody() + tableGroup += tableBody + + for generic in entity.GenericItems: + cellGenericName = nodes.entry() + cellGenericType = nodes.entry() + cellDefaultValue = nodes.entry() + cellDescription = nodes.entry() + tableBody += nodes.row("", cellGenericName, cellGenericType, cellDefaultValue, cellDescription) + + if isinstance(generic, GenericConstantInterfaceItem): + cellGenericName += nodes.paragraph(text=", ".join(generic.Identifiers)) + cellGenericType += nodes.paragraph(text=generic.Documentation) + if generic.DefaultExpression is not None: + cellDefaultValue += nodes.paragraph(text="??") # str(generic.DefaultExpression)) + if generic.Documentation is not None: + cellDescription += nodes.paragraph(text=generic.Documentation) + + return table + + def _CreateGenericsAsSections(self, entity: Entity) -> List[section]: + content = [] + for generic in entity.GenericItems: + if isinstance(generic, GenericConstantInterfaceItem): + genericSection = nodes.section(ids=[f"{entity.NormalizedIdentifier}-generic-{nID}" for nID in generic.NormalizedIdentifiers]) + genericSection.append(nodes.title(text=", ".join(generic.Identifiers))) + genericSection.append(nodes.paragraph(text=generic.Documentation)) + + content.append(genericSection) + + return content + + def CreateGenericSection(self, entity: Entity, style: ParameterStyle) -> section: + content = [ + nodes.title(text="Generics") + ] + + if True: + content.append(nodes.paragraph(text="list of all generics")) + + if style is ParameterStyle.Table: + content.append(self._CreateGenericsAsTable(entity)) + elif style is ParameterStyle.Sections: + content.extend(self._CreateGenericsAsSections(entity)) + + section = nodes.section( + ids=[f"{entity.NormalizedIdentifier}-generics"], + classes=["vhdl", "vhdl-entity-generic-section"] + ) + section.extend(content) + + return section + + +@export +class WithPortsMixin(WithParametersMixin): + def _CreatePortsAsTable(self, entity: Entity) -> table: + table, tableGroup = self._PrepareTable( + columns={ + "Port Name": 2, + "Direction": 1, + "Type": 1, + "Default Value": 2, + "Description": 4, + }, + classes=["vhdl", "vhdl-port-table"] + ) + + tableBody = nodes.tbody() + tableGroup += tableBody + + for port in entity.PortItems: + cellPortName = nodes.entry() + cellPortDirection = nodes.entry() + cellPortType = nodes.entry() + cellDefaultValue = nodes.entry() + cellDescription = nodes.entry() + tableBody += nodes.row("", cellPortName, cellPortDirection, cellPortType, cellDefaultValue, cellDescription) + + if isinstance(port, PortSignalInterfaceItem): + cellPortName += nodes.paragraph(text=", ".join(port.Identifiers)) + cellPortDirection += nodes.paragraph(text=str(port.Mode)) + cellPortType += nodes.paragraph(text=port.Documentation) + if port.DefaultExpression is not None: + cellDefaultValue += nodes.paragraph(text=str(port.DefaultExpression)) + if port.Documentation is not None: + cellDescription += nodes.paragraph(text=port.Documentation) + + return table + + def _CreatePortsAsSections(self, entity: Entity) -> List[section]: + content = [] + for port in entity.PortItems: + if isinstance(port, PortSignalInterfaceItem): + portSection = nodes.section(ids=[f"{entity.NormalizedIdentifier}-port-{nID}" for nID in port.NormalizedIdentifiers]) + portSection.append(nodes.title(text=", ".join(port.Identifiers))) + portSection.append(nodes.paragraph(text=port.Documentation)) + + content.append(portSection) + + return content + + + def CreatePortSection(self, entity: Entity, style: ParameterStyle) -> section: + content = [ + nodes.title(text="Ports") + ] + + if True: + content.append(nodes.paragraph(text="list of all ports")) + + if style is ParameterStyle.Table: + content.append(self._CreatePortsAsTable(entity)) + elif style is ParameterStyle.Sections: + content.extend(self._CreatePortsAsSections(entity)) + + section = nodes.section( + ids=[f"{entity.NormalizedIdentifier}-ports"], + classes=["vhdl", "vhdl-entity-port-section"] + ) + section.extend(content) + + return section @export @@ -195,17 +380,49 @@ class DescribeContext(BaseDirective): def run(self) -> List[Node]: from VHDLDomain import Design + # FIXME: check with regexp + # FIXME: better error message(s) + if len(self.arguments) == 1: + try: + libraryName, contextName = self.arguments[0].split(".") + except ValueError: + raise ValueError(f"Parameter to 'vhdl:describecontext' has incorrect format.") + else: + raise ValueError(f"Parameter to 'vhdl:describecontext' directive has too many content lines ({len(self.arguments)}).") + + # TODO: Can this be done in an __init__ or so? + self.directiveName = self.name.split(":")[1] + self.defaultValues = self.env.config.vhdl_defaults[self.directiveName] + + # parse all directive options or use default values + optionReferencedBy = self.ParseBooleanOption("referencedby", True) + + # Get entity object from design vhdlDomain: Domain = self.env.domains["vhdl"] designs: Dict[str, Design] = vhdlDomain.data["designs"] - design = designs["StopWatch"] + design = designs["StopWatch"] # FIXME: allow specification of design name or default design + library = design.GetLibrary(libraryName.lower()) + context = library.Contexts[contextName.lower()] + + content = [ + nodes.title(text=context.Identifier), + nodes.paragraph(text=context.Documentation) + ] - paragraph = nodes.paragraph(text="Describe context") + # if optionReferencedBy: + # content.append(self.CreateReferencedBySection(package)) - return [paragraph] + contextSection = nodes.section( + ids=[context.NormalizedIdentifier], + classes=["vhdl", "vhdl-context-section"] + ) + contextSection.extend(content) + + return [contextSection] @export -class DescribeEntity(BaseDirective): +class DescribeEntity(BaseDirective, WithGenericsMixin, WithPortsMixin): """ This directive will be replaced by the description of a VHDL entity. """ @@ -221,19 +438,6 @@ class DescribeEntity(BaseDirective): "referencedby": strip, } - def _PrepareTable(self, columns: Dict[str, int], classes: List[str]) -> Tuple[table, tgroup]: - tableGroup = nodes.tgroup(cols=(len(columns))) - table = nodes.table("", tableGroup, classes=classes) - - tableRow = nodes.row() - for columnTitle, width in columns.items(): - tableGroup += nodes.colspec(colwidth=width) - tableRow += nodes.entry("", nodes.paragraph(text=columnTitle)) - - tableGroup += nodes.thead("", tableRow) - - return table, tableGroup - def CreateDefinitionSection(self, entity: Entity) -> section: title = nodes.title(text="Definition") paragraph = nodes.literal_block(text=dedent(f"""\ @@ -258,168 +462,47 @@ def CreateDefinitionSection(self, entity: Entity) -> section: return section - def CreateGenericSection(self, entity: Entity, style: ParameterStyle) -> section: - content = [ - nodes.title(text="Generics") - ] - - if True: - content.append(nodes.paragraph(text="list of all generics")) - - if style is ParameterStyle.Table: - table, tableGroup = self._PrepareTable( - columns={ - "Generic Name": 2, - "Type": 1, - "Default Value": 4, - }, - classes=["vhdl", "vhdl-generic-table"] - ) - - tableBody = nodes.tbody() - tableGroup += tableBody - - for generic in entity.GenericItems: - cellGenericName = nodes.entry() - cellGenericType = nodes.entry() - cellDefaultValue = nodes.entry() - tableBody += nodes.row("", cellGenericName, cellGenericType, cellDefaultValue) - - if isinstance(generic, GenericConstantInterfaceItem): - cellGenericName += nodes.paragraph(text=", ".join(generic.Identifiers)) - cellGenericType += nodes.paragraph(text=generic.Documentation) - if generic.DefaultExpression is not None: - cellDefaultValue += nodes.paragraph(text="??") # str(generic.DefaultExpression)) - - content.append(table) - elif style is ParameterStyle.Sections: - for generic in entity.GenericItems: - if isinstance(generic, GenericConstantInterfaceItem): - genericSection = nodes.section(ids=[f"{entity.NormalizedIdentifier}-generic-{nID}" for nID in generic.NormalizedIdentifiers]) - genericSection.append(nodes.title(text=", ".join(generic.Identifiers))) - genericSection.append(nodes.paragraph(text=generic.Documentation)) - - content.append(genericSection) - - section = nodes.section( - ids=[f"{entity.NormalizedIdentifier}-generics"], - classes=["vhdl", "vhdl-entity-generic-section"] - ) - section.extend(content) - - return section - - def CreatePortSection(self, entity: Entity, style: ParameterStyle) -> section: - content = [ - nodes.title(text="Ports") - ] - - if True: - content.append(nodes.paragraph(text="list of all ports")) - - if style is ParameterStyle.Table: - table, tableGroup = self._PrepareTable( - columns={ - "Port Name": 2, - "Direction": 1, - "Type": 1, - "Default Value": 3 - }, - classes=["vhdl", "vhdl-port-table"] - ) - - tableBody = nodes.tbody() - tableGroup += tableBody - - for port in entity.PortItems: - cellPortName = nodes.entry() - cellPortDirection = nodes.entry() - cellPortType = nodes.entry() - cellDefaultValue = nodes.entry() - tableBody += nodes.row("", cellPortName, cellPortDirection, cellPortType, cellDefaultValue) - - if isinstance(port, PortSignalInterfaceItem): - cellPortName += nodes.paragraph(text=", ".join(port.Identifiers)) - cellPortDirection += nodes.paragraph(text=str(port.Mode)) - cellPortType += nodes.paragraph(text=port.Documentation) - if port.DefaultExpression is not None: - cellDefaultValue += nodes.paragraph(text=str(port.DefaultExpression)) - - content.append(table) - elif style is ParameterStyle.Sections: - for port in entity.PortItems: - if isinstance(port, PortSignalInterfaceItem): - portSection = nodes.section(ids=[f"{entity.NormalizedIdentifier}-port-{nID}" for nID in port.NormalizedIdentifiers]) - portSection.append(nodes.title(text=", ".join(port.Identifiers))) - portSection.append(nodes.paragraph(text=port.Documentation)) - - content.append(portSection) - - section = nodes.section( - ids=[f"{entity.NormalizedIdentifier}-ports"], - classes=["vhdl", "vhdl-entity-port-section"] - ) - section.extend(content) - - return section - def CreateArchitectureSection(self, entity: Entity) -> section: - title = nodes.title(text="Architectures") - paragraph = nodes.paragraph(text=", ".join(entity.Architectures)) section = nodes.section( - "", - title, - paragraph, ids=[f"{entity.NormalizedIdentifier}-architectures"], classes=["vhdl", "vhdl-entity-architectures-section"] ) + section += nodes.title(text="Architectures") + section += nodes.paragraph(text=", ".join(entity.Architectures)) return section def CreateReferencedBySection(self, entity: Entity) -> section: - title = nodes.title(text="Referenced By") - paragraph = nodes.paragraph(text="list of usages and back links") section = nodes.section( - "", - title, - paragraph, ids=[f"{entity.NormalizedIdentifier}-referenced-by"], classes=["vhdl", "vhdl-entity-referencedby-section"] ) + predecessors = entity.HierarchyVertex.Predecessors + + section += nodes.title(text="Referenced By") + section += nodes.paragraph(text=f"Entity '{entity.Identifier}' is referenced from {len(predecessors)} code locations:") + + bulletList = nodes.bullet_list() + section += bulletList + + for referencingVertex in predecessors: + listItem = nodes.list_item() + listItem += nodes.paragraph(text=repr(referencingVertex.Value)) + bulletList += listItem + return section def CreateInnerHierarchySection(self, entity: Entity) -> section: - title = nodes.title(text="Inner Hierarchy") - paragraph = nodes.paragraph(text="diagram of inner instances") section = nodes.section( - "", - title, - paragraph, ids=[f"{entity.NormalizedIdentifier}-hierarchy"], classes=["vhdl", "vhdl-entity-innerhierarchy-section"] ) + section += nodes.title(text="Inner Hierarchy") + section += nodes.paragraph(text="diagram of inner instances") return section - def ParseParameterStyleOption(self, optionName: str) -> ParameterStyle: - try: - option = self.options[optionName] - except KeyError: - try: - option = self.defaultValues[optionName] - except KeyError: - return ParameterStyle.Table - - if option == "never": - return ParameterStyle.Never - elif option == "table": - return ParameterStyle.Table - elif option == "sections": - return ParameterStyle.Sections - else: - raise ValueError(f"value '{option}' is not in list of choices: never, table, sections.") - def ParseArchitecturesStyleOption(self, optionName: str) -> ArchitecturesStyle: try: option = self.options[optionName] @@ -438,25 +521,11 @@ def ParseArchitecturesStyleOption(self, optionName: str) -> ArchitecturesStyle: else: raise ValueError(f"value '{option}' is not in list of choices: never, multiple, always.") - def ParseBooleanOption(self, optionName: str, default: bool) -> bool: - try: - option = self.options[optionName] - except KeyError: - try: - option = self.defaultValues[optionName] - except KeyError: - return default - - if option in ("yes", "true"): - return True - elif option in ("no", "false"): - return False - else: - raise ValueError(f"Value '{option}' not supported for a boolean value (yes/true, no/false).") - def run(self) -> List[Node]: from VHDLDomain import Design + # FIXME: check with regexp + # FIXME: better error message(s) if len(self.arguments) == 1: try: libraryName, entityName = self.arguments[0].split(".") @@ -469,6 +538,7 @@ def run(self) -> List[Node]: self.directiveName = self.name.split(":")[1] self.defaultValues = self.env.config.vhdl_defaults[self.directiveName] + # parse all directive options or use default values optionDefinition = self.ParseBooleanOption("definition", True) optionGenerics = self.ParseParameterStyleOption("genericlist") optionPorts = self.ParseParameterStyleOption("portlist") @@ -476,9 +546,10 @@ def run(self) -> List[Node]: optionReferencedBy = self.ParseBooleanOption("referencedby", True) optionHierarchy = self.ParseBooleanOption("hierarchy", True) + # Get entity object from design vhdlDomain: Domain = self.env.domains["vhdl"] designs: Dict[str, Design] = vhdlDomain.data["designs"] - design = designs["StopWatch"] + design = designs["StopWatch"] # FIXME: allow specification of design name or default design library = design.GetLibrary(libraryName.lower()) entity = library.Entities[entityName.lower()] @@ -490,9 +561,9 @@ def run(self) -> List[Node]: if optionDefinition: content.append(self.CreateDefinitionSection(entity)) - if optionGenerics is not ParameterStyle.Never: + if optionGenerics is not ParameterStyle.Never and len(entity.GenericItems) > 0: content.append(self.CreateGenericSection(entity, optionGenerics)) - if optionPorts is not ParameterStyle.Never: + if optionPorts is not ParameterStyle.Never and len(entity.PortItems) > 0: content.append(self.CreatePortSection(entity, optionPorts)) if (optionArchitectures is ArchitecturesStyle.Always or @@ -537,7 +608,7 @@ def run(self) -> List[Node]: @export -class DescribePackage(BaseDirective): +class DescribePackage(BaseDirective, WithGenericsMixin): """ This directive will be replaced by the description of a VHDL package. """ @@ -554,13 +625,51 @@ class DescribePackage(BaseDirective): def run(self) -> List[Node]: from VHDLDomain import Design + # FIXME: check with regexp + # FIXME: better error message(s) + if len(self.arguments) == 1: + try: + libraryName, packageName = self.arguments[0].split(".") + except ValueError: + raise ValueError(f"Parameter to 'vhdl:describepackage' has incorrect format.") + else: + raise ValueError(f"Parameter to 'vhdl:describepackage' directive has too many content lines ({len(self.arguments)}).") + + # TODO: Can this be done in an __init__ or so? + self.directiveName = self.name.split(":")[1] + self.defaultValues = self.env.config.vhdl_defaults[self.directiveName] + + # parse all directive options or use default values + optionDefinition = self.ParseBooleanOption("definition", True) + optionGenerics = self.ParseParameterStyleOption("genericlist") + optionReferencedBy = self.ParseBooleanOption("referencedby", True) + + # Get entity object from design vhdlDomain: Domain = self.env.domains["vhdl"] designs: Dict[str, Design] = vhdlDomain.data["designs"] - design = designs["StopWatch"] + design = designs["StopWatch"] # FIXME: allow specification of design name or default design + library = design.GetLibrary(libraryName.lower()) + package = library.Packages[packageName.lower()] - paragraph = nodes.paragraph(text="Describe package") + content = [ + nodes.title(text=package.Identifier), + nodes.paragraph(text=package.Documentation) + ] - return [paragraph] + # if optionDefinition: + # content.append(self.CreateDefinitionSection(package)) + if optionGenerics is not ParameterStyle.Never and len(package.GenericItems) > 0: + content.append(self.CreateGenericSection(package, optionGenerics)) + # if optionReferencedBy: + # content.append(self.CreateReferencedBySection(package)) + + packageSection = nodes.section( + ids=[package.NormalizedIdentifier], + classes=["vhdl", "vhdl-package-section"] + ) + packageSection.extend(content) + + return [packageSection] @export @@ -602,10 +711,42 @@ class DescribeConfiguration(BaseDirective): def run(self) -> List[Node]: from VHDLDomain import Design + # FIXME: check with regexp + # FIXME: better error message(s) + if len(self.arguments) == 1: + try: + libraryName, configurationName = self.arguments[0].split(".") + except ValueError: + raise ValueError(f"Parameter to 'vhdl:describepackage' has incorrect format.") + else: + raise ValueError(f"Parameter to 'vhdl:describepackage' directive has too many content lines ({len(self.arguments)}).") + + # TODO: Can this be done in an __init__ or so? + self.directiveName = self.name.split(":")[1] + self.defaultValues = self.env.config.vhdl_defaults[self.directiveName] + + # parse all directive options or use default values + optionReferencedBy = self.ParseBooleanOption("referencedby", True) + + # Get entity object from design vhdlDomain: Domain = self.env.domains["vhdl"] designs: Dict[str, Design] = vhdlDomain.data["designs"] - design = designs["StopWatch"] + design = designs["StopWatch"] # FIXME: allow specification of design name or default design + library = design.GetLibrary(libraryName.lower()) + configuration = library.Configurations[configurationName.lower()] + + content = [ + nodes.title(text=configuration.Identifier), + nodes.paragraph(text=configuration.Documentation) + ] - paragraph = nodes.paragraph(text="Describe configuration") + # if optionReferencedBy: + # content.append(self.CreateReferencedBySection(package)) - return [paragraph] + configurationSection = nodes.section( + ids=[configuration.NormalizedIdentifier], + classes=["vhdl", "vhdl-configuration-section"] + ) + configurationSection.extend(content) + + return [configurationSection] diff --git a/VHDLDomain/__init__.py b/VHDLDomain/__init__.py index 0a8987c..2aa22ee 100644 --- a/VHDLDomain/__init__.py +++ b/VHDLDomain/__init__.py @@ -105,12 +105,12 @@ class VHDLDomain(Domain): "describedesign": DescribeDesign, # "describelibrary": DescribeLibrary, # "describedocument": DescribeDocument, - # "describecontext": DescribeContext, + "describecontext": DescribeContext, "describeentity": DescribeEntity, # "describearchitecture": DescribeArchitecture, - # "describepackage": DescribePackage, + "describepackage": DescribePackage, # "describepackagebody": DescribePackageBody, - # "describeconfiguration": DescribeConfiguration, + "describeconfiguration": DescribeConfiguration, } #: A dictionary of all directives in this domain. roles = { diff --git a/doc/StopWatch/index.rst b/doc/StopWatch/index.rst index a853f81..0eed9f2 100644 --- a/doc/StopWatch/index.rst +++ b/doc/StopWatch/index.rst @@ -14,19 +14,30 @@ StopWatch lib_Utilities ************* +.. vhdl:describepackage:: lib_Utilities.Utilities_pkg + +.. vhdl:describecontext:: lib_Utilities.Utilities_ctx + .. vhdl:describeentity:: lib_Utilities.Counter .. vhdl:describeentity:: lib_Utilities.Debouncer .. vhdl:describeentity:: lib_Utilities.sync_Bits + lib_StopWatch ************* +.. vhdl:describepackage:: lib_StopWatch.StopWatch_pkg + +.. vhdl:describecontext:: lib_StopWatch.StopWatch_ctx + .. vhdl:describeentity:: lib_StopWatch.seg7_Encoder .. vhdl:describeentity:: lib_StopWatch.seg7_Display +.. vhdl:describeconfiguration:: lib_StopWatch.seg7_Display_cfg + .. vhdl:describeentity:: lib_StopWatch.StopWatch .. vhdl:describeentity:: lib_StopWatch.toplevel From 29b8619a94a5b2062bdd69b73142cd6eb4a86d6a Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Fri, 10 Mar 2023 12:55:14 +0100 Subject: [PATCH 03/10] Bumped dependencies. --- doc/Dependency.rst | 14 ++++++++------ doc/requirements.txt | 4 ++-- pyproject.toml | 2 +- requirements.txt | 2 +- tests/requirements.txt | 4 ++-- 5 files changed, 14 insertions(+), 12 deletions(-) diff --git a/doc/Dependency.rst b/doc/Dependency.rst index bbc60e4..c901a09 100644 --- a/doc/Dependency.rst +++ b/doc/Dependency.rst @@ -23,7 +23,7 @@ VHDLDomain Package +--------------------------------------------------------+-------------+------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------+ | **Package** | **Version** | **License** | **Dependencies** | +========================================================+=============+==========================================================================================+=================================================================================================================================+ -| `pyTooling `__ | ≥2.12.0 | `Apache License, 2.0 `__ | *None* | +| `pyTooling `__ | ≥2.13.0 | `Apache License, 2.0 `__ | *None* | +--------------------------------------------------------+-------------+------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------+ | `Sphinx `__ | ≥5.3.0 | `BSD-2-Clause `__ |br| | * ❓`sphinxcontrib-applehelp <>`__ | | | | | * ❓`sphinxcontrib-devhelp <>`__ | @@ -78,9 +78,9 @@ the mandatory dependencies too. +-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ | `pytest-cov `__ | ≥4.0.0 | `MIT `__ | *Not yet evaluated.* | +-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ -| `Coverage `__ | ≥7.0 | `Apache License, 2.0 `__ | *Not yet evaluated.* | +| `Coverage `__ | ≥7.2 | `Apache License, 2.0 `__ | *Not yet evaluated.* | +-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ -| `mypy `__ | ≥0.990 | `MIT `__ | *Not yet evaluated.* | +| `mypy `__ | ≥1.1.1 | `MIT `__ | *Not yet evaluated.* | +-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ | `lxml `__ | ≥4.9 | `BSD 3-Clause `__ | *Not yet evaluated.* | +-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ @@ -112,9 +112,11 @@ the mandatory dependencies too. +=================================================================================================+==============+==========================================================================================================+======================+ | `Sphinx `__ | ≥5.3.0 | `BSD 3-Clause `__ | *Not yet evaluated.* | +-------------------------------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+----------------------+ -| `sphinx_btd_theme `__ | | `MIT `__ | *Not yet evaluated.* | +| `sphinxcontrib-mermaid `__ | ≥0.8.1 | `BSD `__ | *Not yet evaluated.* | ++-------------------------------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+----------------------+ +| `autoapi `__ | ≥2.0.1 | `Apache License, 2.0 `__ | *Not yet evaluated.* | +-------------------------------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+----------------------+ -| `autoapi `__ | | `Apache License, 2.0 `__ | *Not yet evaluated.* | +| `sphinx_btd_theme `__ | | `MIT `__ | *Not yet evaluated.* | +-------------------------------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+----------------------+ | ❗❗ `sphinx_fontawesome `__ | ≥0.0.6 | `GPL 2.0 `__ | *Not yet evaluated.* | +-------------------------------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+----------------------+ @@ -146,7 +148,7 @@ install the mandatory dependencies too. +----------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ | **Package** | **Version** | **License** | **Dependencies** | +============================================================================+==============+==========================================================================================================+======================================================================================================================================================+ -| `pyTooling `__ | ≥2.12.0 | `Apache License, 2.0 `__ | *None* | +| `pyTooling `__ | ≥2.13.0 | `Apache License, 2.0 `__ | *None* | +----------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ | `wheel `__ | ≥0.38.1 | `MIT `__ | *Not yet evaluated.* | +----------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ diff --git a/doc/requirements.txt b/doc/requirements.txt index 25917fd..c48cd75 100644 --- a/doc/requirements.txt +++ b/doc/requirements.txt @@ -1,6 +1,6 @@ -r ../requirements.txt -pyTooling>=2.12.0 +pyTooling>=2.13.0, <3.0 # Enforce latest version on ReadTheDocs sphinx>=5.3.0, <6.0 @@ -8,7 +8,7 @@ sphinx>=5.3.0, <6.0 # Sphinx Extenstions #sphinx.ext.coverage #sphinxcontrib-actdiag>=0.8.5 -sphinxcontrib-mermaid>=0.7.1 +sphinxcontrib-mermaid>=0.8.1 #sphinxcontrib-seqdiag>=0.8.5 #sphinxcontrib-textstyle>=0.2.1 #sphinxcontrib-spelling>=2.2.0 diff --git a/pyproject.toml b/pyproject.toml index df1e990..808813d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [build-system] requires = [ - "pyTooling >= 2.12.0", + "pyTooling >= 2.13.0", "setuptools >= 62.3.3", "wheel >= 0.38.1" ] diff --git a/requirements.txt b/requirements.txt index 792e4e7..2d1a867 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,2 @@ -pyTooling>=2.12.0 +pyTooling>=2.13.0, <3.0 pyGHDL diff --git a/tests/requirements.txt b/tests/requirements.txt index 7719481..88a4ede 100644 --- a/tests/requirements.txt +++ b/tests/requirements.txt @@ -1,12 +1,12 @@ -r ../requirements.txt # Coverage collection -Coverage>=7.0 +Coverage>=7.2 # Test Runner pytest>=7.2.0 pytest-cov>=4.0.0 # Static Type Checking -mypy>=0.990 +mypy>=1.1.1 lxml>=4.9 From a610b22145564cbae9449ade5c27d6220886da7f Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Sun, 16 Apr 2023 20:49:00 +0200 Subject: [PATCH 04/10] Bumped dependencies. --- doc/Dependency.rst | 4 ++-- doc/requirements.txt | 2 +- requirements.txt | 2 +- setup.py | 5 ++++- tests/requirements.txt | 4 ++-- tests/unit/Instantiate.py | 3 ++- 6 files changed, 12 insertions(+), 8 deletions(-) diff --git a/doc/Dependency.rst b/doc/Dependency.rst index c901a09..7312e1b 100644 --- a/doc/Dependency.rst +++ b/doc/Dependency.rst @@ -74,13 +74,13 @@ the mandatory dependencies too. +-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ | **Package** | **Version** | **License** | **Dependencies** | +===========================================================+=============+========================================================================================+======================+ -| `pytest `__ | ≥7.2.0 | `MIT `__ | *Not yet evaluated.* | +| `pytest `__ | ≥7.3.0 | `MIT `__ | *Not yet evaluated.* | +-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ | `pytest-cov `__ | ≥4.0.0 | `MIT `__ | *Not yet evaluated.* | +-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ | `Coverage `__ | ≥7.2 | `Apache License, 2.0 `__ | *Not yet evaluated.* | +-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ -| `mypy `__ | ≥1.1.1 | `MIT `__ | *Not yet evaluated.* | +| `mypy `__ | ≥1.2.0 | `MIT `__ | *Not yet evaluated.* | +-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ | `lxml `__ | ≥4.9 | `BSD 3-Clause `__ | *Not yet evaluated.* | +-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ diff --git a/doc/requirements.txt b/doc/requirements.txt index c48cd75..e48d6df 100644 --- a/doc/requirements.txt +++ b/doc/requirements.txt @@ -1,6 +1,6 @@ -r ../requirements.txt -pyTooling>=2.13.0, <3.0 +pyTooling>=4.0.1, <5.0 # Enforce latest version on ReadTheDocs sphinx>=5.3.0, <6.0 diff --git a/requirements.txt b/requirements.txt index 2d1a867..5c24797 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,2 @@ -pyTooling>=2.13.0, <3.0 +pyTooling>=4.0.1, <5.0 pyGHDL diff --git a/setup.py b/setup.py index de4028e..e688389 100644 --- a/setup.py +++ b/setup.py @@ -50,5 +50,8 @@ "Topic :: Documentation :: Sphinx", "Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)", "Topic :: Software Development :: Documentation", - ] + ], + dataFiles={ + packageName: ["py.typed"] + } ) diff --git a/tests/requirements.txt b/tests/requirements.txt index 88a4ede..84d8c97 100644 --- a/tests/requirements.txt +++ b/tests/requirements.txt @@ -4,9 +4,9 @@ Coverage>=7.2 # Test Runner -pytest>=7.2.0 +pytest>=7.3.0 pytest-cov>=4.0.0 # Static Type Checking -mypy>=1.1.1 +mypy>=1.2.0 lxml>=4.9 diff --git a/tests/unit/Instantiate.py b/tests/unit/Instantiate.py index 7e55504..a3e96f0 100644 --- a/tests/unit/Instantiate.py +++ b/tests/unit/Instantiate.py @@ -33,6 +33,7 @@ from unittest import TestCase from pyVHDLModel import Library +from pyVHDLModel.Name import SimpleName from pyVHDLModel.Symbol import LibraryReferenceSymbol @@ -46,7 +47,7 @@ class Symbols(TestCase): def test_LibraryReferenceSymbol(self): - symbol = LibraryReferenceSymbol("Lib") + symbol = LibraryReferenceSymbol(SimpleName("Lib")) self.assertEqual("Lib", symbol.Identifier) self.assertEqual("lib", symbol.NormalizedIdentifier) From 7e4a99e5407a3f84d8d4427510cc8717548b2991 Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Sun, 16 Apr 2023 20:54:29 +0200 Subject: [PATCH 05/10] Added constants and subprograms. --- VHDLDomain/Directive.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/VHDLDomain/Directive.py b/VHDLDomain/Directive.py index a319c6e..89f61f1 100644 --- a/VHDLDomain/Directive.py +++ b/VHDLDomain/Directive.py @@ -663,6 +663,14 @@ def run(self) -> List[Node]: # if optionReferencedBy: # content.append(self.CreateReferencedBySection(package)) + content.append(nodes.paragraph(text="Constants")) + for constant in package.Constants.values(): + content.append(nodes.paragraph(text=constant.Identifiers)) + + content.append(nodes.paragraph(text="Subprograms")) + for subprogram in package.Subprograms.values(): + content.append(nodes.paragraph(text=subprogram.Identifiers)) + packageSection = nodes.section( ids=[package.NormalizedIdentifier], classes=["vhdl", "vhdl-package-section"] From 5d10db12d4adf1f7b8e2cc1563d2e810c086290e Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Sun, 16 Apr 2023 21:14:50 +0200 Subject: [PATCH 06/10] Adjusted Docker image for documentation job. --- .btd.yml | 2 +- requirements.txt | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.btd.yml b/.btd.yml index 270d2f8..2fb7499 100644 --- a/.btd.yml +++ b/.btd.yml @@ -4,5 +4,5 @@ requirements: requirements.txt target: gh-pages formats: [ html ] images: - base: btdi/sphinx:vhdldomain + base: btdi/sphinx:pytooling theme: https://codeload.github.com/buildthedocs/sphinx.theme/tar.gz/v1 diff --git a/requirements.txt b/requirements.txt index 5c24797..29a09ec 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,3 @@ pyTooling>=4.0.1, <5.0 -pyGHDL +#pyGHDL +https://github.com/ghdl/ghdl/archive/master.zip#pyGHDL From ac6edefa17ffe12a767f67069ea2012f2356790e Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Sat, 15 Jul 2023 23:13:18 +0200 Subject: [PATCH 07/10] Bumped dependencies. --- VHDLDomain/Directive.py | 10 +++++----- dist/requirements.txt | 4 ++-- doc/Dependency.rst | 10 +++++----- doc/requirements.txt | 4 ++-- pyproject.toml | 6 +++--- requirements.txt | 2 +- tests/requirements.txt | 2 +- 7 files changed, 19 insertions(+), 19 deletions(-) diff --git a/VHDLDomain/Directive.py b/VHDLDomain/Directive.py index 89f61f1..284a416 100644 --- a/VHDLDomain/Directive.py +++ b/VHDLDomain/Directive.py @@ -88,12 +88,12 @@ class BaseDirective(ObjectDescription): """ Mapping of option names to validator functions. - A dictionary, mapping known option names to conversion functions such as :py:class:`int` or :py:class:`float` + A dictionary, mapping known option names to conversion functions such as :class:`int` or :class:`float` (default: {}, no options). Several conversion functions are defined in the ``directives/__init__.py`` module. - Option conversion functions take a single parameter, the option argument (a string or :py:class:`None`), validate it - and/or convert it to the appropriate form. Conversion functions may raise :py:exc:`ValueError` and - :py:exc:`TypeError` exceptions. + Option conversion functions take a single parameter, the option argument (a string or :class:`None`), validate it + and/or convert it to the appropriate form. Conversion functions may raise :exc:`ValueError` and + :exc:`TypeError` exceptions. """ def ParseBooleanOption(self, optionName: str, default: bool) -> bool: @@ -127,7 +127,7 @@ def _PrepareTable(self, columns: Dict[str, int], classes: List[str]) -> Tuple[ta @export -class WithParametersMixin: +class WithParametersMixin(metaclass=ExtendedType, mixin=True): def ParseParameterStyleOption(self, optionName: str) -> ParameterStyle: try: option = self.options[optionName] diff --git a/dist/requirements.txt b/dist/requirements.txt index e4718c9..a414030 100644 --- a/dist/requirements.txt +++ b/dist/requirements.txt @@ -1,2 +1,2 @@ -wheel>=0.38.1 -twine +wheel >= 0.40.0 +twine >= 4.0.2 diff --git a/doc/Dependency.rst b/doc/Dependency.rst index 7312e1b..864fd87 100644 --- a/doc/Dependency.rst +++ b/doc/Dependency.rst @@ -76,7 +76,7 @@ the mandatory dependencies too. +===========================================================+=============+========================================================================================+======================+ | `pytest `__ | ≥7.3.0 | `MIT `__ | *Not yet evaluated.* | +-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ -| `pytest-cov `__ | ≥4.0.0 | `MIT `__ | *Not yet evaluated.* | +| `pytest-cov `__ | ≥4.1.0 | `MIT `__ | *Not yet evaluated.* | +-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ | `Coverage `__ | ≥7.2 | `Apache License, 2.0 `__ | *Not yet evaluated.* | +-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ @@ -112,7 +112,7 @@ the mandatory dependencies too. +=================================================================================================+==============+==========================================================================================================+======================+ | `Sphinx `__ | ≥5.3.0 | `BSD 3-Clause `__ | *Not yet evaluated.* | +-------------------------------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+----------------------+ -| `sphinxcontrib-mermaid `__ | ≥0.8.1 | `BSD `__ | *Not yet evaluated.* | +| `sphinxcontrib-mermaid `__ | ≥0.9.2 | `BSD `__ | *Not yet evaluated.* | +-------------------------------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+----------------------+ | `autoapi `__ | ≥2.0.1 | `Apache License, 2.0 `__ | *Not yet evaluated.* | +-------------------------------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+----------------------+ @@ -150,7 +150,7 @@ install the mandatory dependencies too. +============================================================================+==============+==========================================================================================================+======================================================================================================================================================+ | `pyTooling `__ | ≥2.13.0 | `Apache License, 2.0 `__ | *None* | +----------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ -| `wheel `__ | ≥0.38.1 | `MIT `__ | *Not yet evaluated.* | +| `wheel `__ | ≥0.40.0 | `MIT `__ | *Not yet evaluated.* | +----------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ @@ -179,7 +179,7 @@ install the mandatory dependencies too. +----------------------------------------------------------+--------------+-------------------------------------------------------------------------------------------+----------------------+ | **Package** | **Version** | **License** | **Dependencies** | +==========================================================+==============+===========================================================================================+======================+ -| `wheel `__ | ≥0.38.1 | `MIT `__ | *Not yet evaluated.* | +| `wheel `__ | ≥0.40.0 | `MIT `__ | *Not yet evaluated.* | +----------------------------------------------------------+--------------+-------------------------------------------------------------------------------------------+----------------------+ -| `Twine `__ | any | `Apache License, 2.0 `__ | *Not yet evaluated.* | +| `Twine `__ | ≥4.0.2 | `Apache License, 2.0 `__ | *Not yet evaluated.* | +----------------------------------------------------------+--------------+-------------------------------------------------------------------------------------------+----------------------+ diff --git a/doc/requirements.txt b/doc/requirements.txt index e48d6df..db0ee14 100644 --- a/doc/requirements.txt +++ b/doc/requirements.txt @@ -1,6 +1,6 @@ -r ../requirements.txt -pyTooling>=4.0.1, <5.0 +pyTooling >= 5.0.0, <6.0 # Enforce latest version on ReadTheDocs sphinx>=5.3.0, <6.0 @@ -8,7 +8,7 @@ sphinx>=5.3.0, <6.0 # Sphinx Extenstions #sphinx.ext.coverage #sphinxcontrib-actdiag>=0.8.5 -sphinxcontrib-mermaid>=0.8.1 +sphinxcontrib-mermaid>=0.9.2 #sphinxcontrib-seqdiag>=0.8.5 #sphinxcontrib-textstyle>=0.2.1 #sphinxcontrib-spelling>=2.2.0 diff --git a/pyproject.toml b/pyproject.toml index 808813d..a383f7e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,8 +1,8 @@ [build-system] requires = [ - "pyTooling >= 2.13.0", - "setuptools >= 62.3.3", - "wheel >= 0.38.1" + "pyTooling >= 5.0.0", + "setuptools >= 68.0.0", + "wheel >= 0.40.0" ] build-backend = "setuptools.build_meta" diff --git a/requirements.txt b/requirements.txt index 29a09ec..872383d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,3 @@ -pyTooling>=4.0.1, <5.0 +pyTooling >= 5.0.0, <6.0 #pyGHDL https://github.com/ghdl/ghdl/archive/master.zip#pyGHDL diff --git a/tests/requirements.txt b/tests/requirements.txt index 84d8c97..1fa6598 100644 --- a/tests/requirements.txt +++ b/tests/requirements.txt @@ -5,7 +5,7 @@ Coverage>=7.2 # Test Runner pytest>=7.3.0 -pytest-cov>=4.0.0 +pytest-cov>=4.1.0 # Static Type Checking mypy>=1.2.0 From 5137464b7d32b68d4d57dfe63974524c51be532f Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Sun, 13 Aug 2023 23:04:52 +0200 Subject: [PATCH 08/10] Fixed InterSphinx configuration. --- doc/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/conf.py b/doc/conf.py index 7e1f0ba..d47937f 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -227,7 +227,7 @@ extlinks = { "ghissue": ('https://GitHub.com/vhdl/VHDLDomain/issues/%s', 'issue #'), "ghpull": ('https://GitHub.com/vhdl/VHDLDomain/pull/%s', 'pull request #'), - "ghsrc": ('https://GitHub.com/vhdl/VHDLDomain/blob/main/%s?ts=2', ""), + "ghsrc": ('https://GitHub.com/vhdl/VHDLDomain/blob/main/%s?ts=2', None), } From 18e80d160fd7ab167c028f3948d6f776d8804200 Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Sun, 13 Aug 2023 23:06:26 +0200 Subject: [PATCH 09/10] Bumped dependencies. --- doc/Dependency.rst | 30 ++++++++++++++++-------------- doc/requirements.txt | 2 +- tests/requirements.txt | 9 +++++---- 3 files changed, 22 insertions(+), 19 deletions(-) diff --git a/doc/Dependency.rst b/doc/Dependency.rst index 864fd87..70be716 100644 --- a/doc/Dependency.rst +++ b/doc/Dependency.rst @@ -71,19 +71,21 @@ the mandatory dependencies too. .. rubric:: Dependency List -+-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ -| **Package** | **Version** | **License** | **Dependencies** | -+===========================================================+=============+========================================================================================+======================+ -| `pytest `__ | ≥7.3.0 | `MIT `__ | *Not yet evaluated.* | -+-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ -| `pytest-cov `__ | ≥4.1.0 | `MIT `__ | *Not yet evaluated.* | -+-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ -| `Coverage `__ | ≥7.2 | `Apache License, 2.0 `__ | *Not yet evaluated.* | -+-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ -| `mypy `__ | ≥1.2.0 | `MIT `__ | *Not yet evaluated.* | -+-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ -| `lxml `__ | ≥4.9 | `BSD 3-Clause `__ | *Not yet evaluated.* | -+-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ ++---------------------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ +| **Package** | **Version** | **License** | **Dependencies** | ++=====================================================================+=============+========================================================================================+======================+ +| `pytest `__ | ≥7.4.0 | `MIT `__ | *Not yet evaluated.* | ++---------------------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ +| `pytest-cov `__ | ≥4.1.0 | `MIT `__ | *Not yet evaluated.* | ++---------------------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ +| `Coverage `__ | ≥7.3 | `Apache License, 2.0 `__ | *Not yet evaluated.* | ++---------------------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ +| `mypy `__ | ≥1.5.0 | `MIT `__ | *Not yet evaluated.* | ++---------------------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ +| `typing-extensions `__ | ≥4.7.1 | `PSF-2.0 `__ | *Not yet evaluated.* | ++---------------------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ +| `lxml `__ | ≥4.9 | `BSD 3-Clause `__ | *Not yet evaluated.* | ++---------------------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+ .. _dependency-documentation: @@ -120,7 +122,7 @@ the mandatory dependencies too. +-------------------------------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+----------------------+ | ❗❗ `sphinx_fontawesome `__ | ≥0.0.6 | `GPL 2.0 `__ | *Not yet evaluated.* | +-------------------------------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+----------------------+ -| `sphinx_autodoc_typehints `__ | ≥1.19.5 | `MIT `__ | *Not yet evaluated.* | +| `sphinx_autodoc_typehints `__ | ≥1.24.0 | `MIT `__ | *Not yet evaluated.* | +-------------------------------------------------------------------------------------------------+--------------+----------------------------------------------------------------------------------------------------------+----------------------+ diff --git a/doc/requirements.txt b/doc/requirements.txt index db0ee14..34cfd74 100644 --- a/doc/requirements.txt +++ b/doc/requirements.txt @@ -14,7 +14,7 @@ sphinxcontrib-mermaid>=0.9.2 #sphinxcontrib-spelling>=2.2.0 autoapi>=2.0.1 sphinx_fontawesome>=0.0.6 -sphinx_autodoc_typehints>=1.19.5 +sphinx_autodoc_typehints >= 1.24.0 # changelog>=0.3.5 # BuildTheDocs Extensions (mostly patched Sphinx extensions) diff --git a/tests/requirements.txt b/tests/requirements.txt index 1fa6598..e75ed5e 100644 --- a/tests/requirements.txt +++ b/tests/requirements.txt @@ -1,12 +1,13 @@ -r ../requirements.txt # Coverage collection -Coverage>=7.2 +Coverage >= 7.3 # Test Runner -pytest>=7.3.0 -pytest-cov>=4.1.0 +pytest >= 7.4.0 +pytest-cov >= 4.1.0 # Static Type Checking -mypy>=1.2.0 +mypy >= 1.5.0 +typing_extensions >= 4.7.1 lxml>=4.9 From fc356e686cda5620a2be6c58821e7336455dadb0 Mon Sep 17 00:00:00 2001 From: Jared Dillard Date: Sat, 16 Dec 2023 19:16:59 -0800 Subject: [PATCH 10/10] Add new Sphinx Domain classifier As seen here: https://pypi.org/search/?c=Framework+%3A%3A+Sphinx+%3A%3A+Domain --- setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py index de4028e..780411a 100644 --- a/setup.py +++ b/setup.py @@ -46,6 +46,7 @@ sourceFileWithVersion=packageInformationFile, developmentStatus="alpha", classifiers=list(DEFAULT_CLASSIFIERS) + [ + "Framework :: Sphinx :: Domain", "Framework :: Sphinx :: Extension", "Topic :: Documentation :: Sphinx", "Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)",