Skip to content

Commit

Permalink
v0.25.0
Browse files Browse the repository at this point in the history
  • Loading branch information
Paebbels committed Apr 15, 2023
2 parents 7590a6c + 58c1803 commit d315d8a
Show file tree
Hide file tree
Showing 14 changed files with 452 additions and 270 deletions.
4 changes: 2 additions & 2 deletions doc/Dependency.rst
Original file line number Diff line number Diff line change
Expand Up @@ -51,13 +51,13 @@ the mandatory dependencies too.
+-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+
| **Package** | **Version** | **License** | **Dependencies** |
+===========================================================+=============+========================================================================================+======================+
| `pytest <https://GitHub.com/pytest-dev/pytest>`__ | ≥7.2.0 | `MIT <https://GitHub.com/pytest-dev/pytest/blob/master/LICENSE>`__ | *Not yet evaluated.* |
| `pytest <https://GitHub.com/pytest-dev/pytest>`__ | ≥7.3.0 | `MIT <https://GitHub.com/pytest-dev/pytest/blob/master/LICENSE>`__ | *Not yet evaluated.* |
+-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+
| `pytest-cov <https://GitHub.com/pytest-dev/pytest-cov>`__ | ≥4.0.0 | `MIT <https://GitHub.com/pytest-dev/pytest-cov/blob/master/LICENSE>`__ | *Not yet evaluated.* |
+-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+
| `Coverage <https://GitHub.com/nedbat/coveragepy>`__ | ≥7.2 | `Apache License, 2.0 <https://GitHub.com/nedbat/coveragepy/blob/master/LICENSE.txt>`__ | *Not yet evaluated.* |
+-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+
| `mypy <https://GitHub.com/python/mypy>`__ | ≥1.1.1 | `MIT <https://GitHub.com/python/mypy/blob/master/LICENSE>`__ | *Not yet evaluated.* |
| `mypy <https://GitHub.com/python/mypy>`__ | ≥1.2.0 | `MIT <https://GitHub.com/python/mypy/blob/master/LICENSE>`__ | *Not yet evaluated.* |
+-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+
| `lxml <https://GitHub.com/lxml/lxml>`__ | ≥4.9 | `BSD 3-Clause <https://GitHub.com/lxml/lxml/blob/master/LICENSE.txt>`__ | *Not yet evaluated.* |
+-----------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+
Expand Down
2 changes: 1 addition & 1 deletion pyVHDLModel/Association.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ def __str__(self):
if self._formal is None:
return str(self._actual)
else:
return "{formal!s} => {actual!s}".format(formal=self._formal, actual=self._actual)
return f"{self._formal!s} => {self._actual!s}"


@export
Expand Down
6 changes: 1 addition & 5 deletions pyVHDLModel/Base.py
Original file line number Diff line number Diff line change
Expand Up @@ -410,11 +410,7 @@ def Direction(self) -> Direction:
return self._direction

def __str__(self) -> str:
return "{leftBound!s} {direction!s} {rightBound!s}".format(
leftBound=self._leftBound,
direction=self._direction,
rightBound=self._rightBound,
)
return f"{self._leftBound!s} {self._direction!s} {self._rightBound!s}"


@export
Expand Down
6 changes: 3 additions & 3 deletions pyVHDLModel/Concurrent.py
Original file line number Diff line number Diff line change
Expand Up @@ -437,7 +437,7 @@ def Choices(self) -> List[ConcurrentChoice]:
return self._choices

def __str__(self) -> str:
return "when {choices} =>".format(choices=" | ".join([str(c) for c in self._choices]))
return "when {choices} =>".format(choices=" | ".join(str(c) for c in self._choices))


@export
Expand Down Expand Up @@ -575,7 +575,7 @@ def Expression(self) -> ExpressionUnion:
return self._expression

def __str__(self) -> str:
return "{expression!s}".format(expression=self._expression)
return str(self._expression)


@export
Expand All @@ -593,4 +593,4 @@ def Range(self) -> 'Range':
return self._range

def __str__(self) -> str:
return "{range!s}".format(range=self._range)
return str(self._range)
30 changes: 16 additions & 14 deletions pyVHDLModel/DesignUnit.py
Original file line number Diff line number Diff line change
Expand Up @@ -383,12 +383,12 @@ def IndexPackage(self):
print(item)

def __str__(self) -> str:
lib = self._library.Identifier + "?" if self._library is not None else ""
lib = self._library.Identifier if self._library is not None else "%"

return f"Package: {lib}.{self.Identifier}"
return f"Package: '{lib}.{self.Identifier}'"

def __repr__(self) -> str:
lib = self._library.Identifier + "?" if self._library is not None else ""
lib = self._library.Identifier if self._library is not None else "%"

return f"{lib}.{self.Identifier}"

Expand All @@ -399,7 +399,7 @@ class PackageBody(SecondaryUnit, DesignUnitWithContextMixin):
_declaredItems: List

def __init__(self, packageSymbol: PackageSymbol, contextItems: Iterable['Context'] = None, declaredItems: Iterable = None, documentation: str = None):
super().__init__(packageSymbol.Identifier, contextItems, documentation)
super().__init__(packageSymbol.Name.Identifier, contextItems, documentation)
DesignUnitWithContextMixin.__init__(self)

self._package = packageSymbol
Expand Down Expand Up @@ -490,14 +490,16 @@ def Architectures(self) -> Dict[str, 'Architecture']:
return self._architectures

def __str__(self) -> str:
lib = self._library.Identifier + "?" if self._library is not None else ""
lib = self._library.Identifier if self._library is not None else "%"
archs = ', '.join(self._architectures.keys()) if self._architectures else "%"

return f"Entity: {lib}.{self.Identifier}({', '.join(self._architectures.keys())})"
return f"Entity: '{lib}.{self.Identifier}({archs})'"

def __repr__(self) -> str:
lib = self._library.Identifier + "?" if self._library is not None else ""
lib = self._library.Identifier if self._library is not None else "%"
archs = ', '.join(self._architectures.keys()) if self._architectures else "%"

return f"{lib}.{self.Identifier}({', '.join(self._architectures.keys())})"
return f"{lib}.{self.Identifier}({archs})"


@export
Expand Down Expand Up @@ -528,14 +530,14 @@ def Library(self, library: 'Library') -> None:
self._library = library

def __str__(self) -> str:
lib = self._library.Identifier + "?" if self._library is not None else ""
ent = self._entity.Identifier + "?" if self._entity is not None else ""
lib = self._library.Identifier if self._library is not None else "%"
ent = self._entity.Identifier if self._entity is not None else "%"

return f"Architecture: {lib}.{ent}({self.Identifier})"

def __repr__(self) -> str:
lib = self._library.Identifier + "?" if self._library is not None else ""
ent = self._entity.Identifier + "?" if self._entity is not None else ""
lib = self._library.Identifier if self._library is not None else "%"
ent = self._entity.Identifier if self._entity is not None else "%"

return f"{lib}.{ent}({self.Identifier})"

Expand Down Expand Up @@ -590,11 +592,11 @@ def __init__(self, identifier: str, contextItems: Iterable[Context] = None, docu
DesignUnitWithContextMixin.__init__(self)

def __str__(self) -> str:
lib = self._library.Identifier + "?" if self._library is not None else ""
lib = self._library.Identifier if self._library is not None else "%"

return f"Configuration: {lib}.{self.Identifier}"

def __repr__(self) -> str:
lib = self._library.Identifier + "?" if self._library is not None else ""
lib = self._library.Identifier if self._library is not None else "%"

return f"{lib}.{self.Identifier}"
14 changes: 4 additions & 10 deletions pyVHDLModel/Expression.py
Original file line number Diff line number Diff line change
Expand Up @@ -615,7 +615,7 @@ def Subtype(self) -> Symbol:
return self._subtype

def __str__(self) -> str:
return "new {subtype!s}".format(subtype=self._subtype)
return f"new {self._subtype!s}"


@export
Expand All @@ -633,7 +633,7 @@ def QualifiedExpression(self) -> QualifiedExpression:
return self._qualifiedExpression

def __str__(self) -> str:
return "new {expr!s}".format(expr=self._qualifiedExpression)
return f"new {self._qualifiedExpression!s}"


@export
Expand Down Expand Up @@ -673,10 +673,7 @@ def Index(self) -> int:
return self._index

def __str__(self) -> str:
return "{index!s} => {value!s}".format(
index=self._index,
value=self._expression,
)
return f"{self._index!s} => {self._expression!s}"


@export
Expand All @@ -694,10 +691,7 @@ def Range(self) -> 'Range':
return self._range

def __str__(self) -> str:
return "{range!s} => {value!s}".format(
range=self._range,
value=self._expression,
)
return f"{self._range!s} => {self._expression!s}"


@export
Expand Down
37 changes: 20 additions & 17 deletions pyVHDLModel/Name.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,12 @@ def HasPrefix(self) -> bool:
"""
return self._prefix is not None

def __repr__(self) -> str:
return f"Name: '{self.__str__()}'"

def __str__(self) -> str:
return self._identifier


@export
class SimpleName(Name):
Expand All @@ -125,9 +131,6 @@ class SimpleName(Name):
reference other (already) declared language entities.
"""

def __str__(self):
return self._identifier


@export
class ParenthesisName(Name):
Expand All @@ -145,8 +148,8 @@ def __init__(self, prefix: Name, associations: Iterable):
def Associations(self) -> List:
return self._associations

def __str__(self):
return str(self._prefix) + "(" + ", ".join([str(a) for a in self._associations]) + ")"
def __str__(self) -> str:
return f"{self._prefix!s}({', '.join(str(a) for a in self._associations)})"


@export
Expand All @@ -165,6 +168,9 @@ def __init__(self, prefix: Name, indices: Iterable[ExpressionUnion]):
def Indices(self) -> List[ExpressionUnion]:
return self._indices

def __str__(self) -> str:
return f"{self._prefix!s}({', '.join(str(i) for i in self._indices)})"


@export
class SlicedName(Name):
Expand All @@ -184,42 +190,39 @@ class SelectedName(Name):
def __init__(self, identifier: str, prefix: Name):
super().__init__(identifier, prefix)

def __str__(self):
return str(self._prefix) + "." + self._identifier
def __str__(self) -> str:
return f"{self._prefix!s}.{self._identifier}"


@export
class AttributeName(Name):
def __init__(self, identifier: str, prefix: Name):
super().__init__(identifier, prefix)

def __str__(self):
return str(self._prefix) + "'" + self._identifier
def __str__(self) -> str:
return f"{self._prefix!s}'{self._identifier}"


@export
class AllName(Name):
class AllName(SelectedName):
"""
The *all name* represents the reserved word ``all`` used in names.
Most likely this name is used in use-statements.
"""
def __init__(self, prefix: Name):
super().__init__("all", prefix)

def __str__(self):
return str(self._prefix) + "." + "all"
super().__init__("all", prefix) # TODO: the case of 'ALL' is not preserved


@export
class OpenName(Name):
"""
The *open name* represents the reserved word ``open``.
Most likely this name is used in port assoziations.
Most likely this name is used in port associations.
"""
def __init__(self):
super().__init__("open")
super().__init__("open") # TODO: the case of 'ALL' is not preserved

def __str__(self):
def __str__(self) -> str:
return "open"
22 changes: 10 additions & 12 deletions pyVHDLModel/STD.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,9 @@

from pyTooling.Decorators import export

from pyVHDLModel import Library
from pyVHDLModel.Symbol import LibraryReferenceSymbol, PackageReferenceSymbol, PackageMembersReferenceSymbol, AllPackageMembersReferenceSymbol, PackageSymbol
from pyVHDLModel import Library
from pyVHDLModel.Name import SimpleName, SelectedName, AllName
from pyVHDLModel.Symbol import LibraryReferenceSymbol, PackageMembersReferenceSymbol, AllPackageMembersReferenceSymbol, PackageSymbol
from pyVHDLModel.DesignUnit import LibraryClause, UseClause, Package, PackageBody


Expand All @@ -61,7 +62,7 @@ def AddPackages(self, packages):
@export
class PredefinedMixin:
def _AddLibraryClause(self, libraries: Iterable[str]):
symbols = [LibraryReferenceSymbol(libName) for libName in libraries]
symbols = [LibraryReferenceSymbol(SimpleName(libName)) for libName in libraries]
libraryClause = LibraryClause(symbols)

self._contextItems.append(libraryClause)
Expand All @@ -71,11 +72,12 @@ def _AddPackageClause(self, packages: Iterable[str]):
symbols = []
for qualifiedPackageName in packages:
libName, packName, members = qualifiedPackageName.split(".")
packageSymbol = PackageReferenceSymbol(packName, LibraryReferenceSymbol(libName))

packageName = SelectedName(packName, SimpleName(libName))
if members.lower() == "all":
symbols.append(AllPackageMembersReferenceSymbol(packageSymbol))
symbols.append(AllPackageMembersReferenceSymbol(AllName(packageName)))
else:
symbols.append(PackageMembersReferenceSymbol(members, packageSymbol))
symbols.append(PackageMembersReferenceSymbol(SelectedName(members, packageName)))

useClause = UseClause(symbols)
self._contextItems.append(useClause)
Expand All @@ -91,7 +93,7 @@ def __init__(self):
@export
class PredefinedPackageBody(PackageBody, PredefinedMixin):
def __init__(self):
packageSymbol = PackageSymbol(self.__class__.__name__[:-5])
packageSymbol = PackageSymbol(SimpleName(self.__class__.__name__[:-5]))
super().__init__(packageSymbol)


Expand Down Expand Up @@ -126,11 +128,7 @@ class Env(PredefinedPackage):
def __init__(self):
super().__init__()

# Use clauses
useTextIOSymbols = (
AllPackageMembersReferenceSymbol(PackageReferenceSymbol("textio", LibraryReferenceSymbol("work"))),
)
self._packageReferences.append(UseClause(useTextIOSymbols))
self._AddPackageClause(("work.textio.all",))


@export
Expand Down
6 changes: 3 additions & 3 deletions pyVHDLModel/Sequential.py
Original file line number Diff line number Diff line change
Expand Up @@ -214,7 +214,7 @@ def Expression(self) -> ExpressionUnion:
return self._expression

def __str__(self) -> str:
return "{expression!s}".format(expression=self._expression)
return str(self._expression)


@export
Expand All @@ -232,7 +232,7 @@ def Range(self) -> 'Range':
return self._range

def __str__(self) -> str:
return "{range!s}".format(range=self._range)
return str(self._range)


@export
Expand Down Expand Up @@ -268,7 +268,7 @@ def Choices(self) -> List[SequentialChoice]:
return self._choices

def __str__(self) -> str:
return "when {choices} =>".format(choices=" | ".join([str(c) for c in self._choices]))
return "when {choices} =>".format(choices=" | ".join(str(c) for c in self._choices))


@export
Expand Down

0 comments on commit d315d8a

Please sign in to comment.