aboutsummaryrefslogtreecommitdiffstats
path: root/pyGHDL
diff options
context:
space:
mode:
authorPatrick Lehmann <Patrick.Lehmann@plc2.de>2022-11-28 00:39:29 +0100
committerPatrick Lehmann <Patrick.Lehmann@plc2.de>2022-11-30 23:32:47 +0100
commit30a8c57439520e6f043b5aaa5fde9ea5ca38e490 (patch)
treecafbf499a71f14a25763943e74c955db880e4e4b /pyGHDL
parente6cc3aba4fec28d23df9fe974d92706d867c1668 (diff)
downloadghdl-30a8c57439520e6f043b5aaa5fde9ea5ca38e490.tar.gz
ghdl-30a8c57439520e6f043b5aaa5fde9ea5ca38e490.tar.bz2
ghdl-30a8c57439520e6f043b5aaa5fde9ea5ca38e490.zip
Formatted code with black.
Diffstat (limited to 'pyGHDL')
-rw-r--r--pyGHDL/dom/Attribute.py8
-rw-r--r--pyGHDL/dom/Concurrent.py12
-rw-r--r--pyGHDL/dom/Expression.py4
-rw-r--r--pyGHDL/dom/NonStandard.py4
-rw-r--r--pyGHDL/dom/Sequential.py8
-rw-r--r--pyGHDL/dom/Type.py4
-rw-r--r--pyGHDL/dom/_Translate.py64
-rw-r--r--pyGHDL/dom/formatting/prettyprint.py32
-rw-r--r--pyGHDL/libghdl/_decorator.py14
9 files changed, 111 insertions, 39 deletions
diff --git a/pyGHDL/dom/Attribute.py b/pyGHDL/dom/Attribute.py
index 808f0a6a3..86be400ac 100644
--- a/pyGHDL/dom/Attribute.py
+++ b/pyGHDL/dom/Attribute.py
@@ -121,14 +121,18 @@ class AttributeSpecification(VHDLModel_AttributeSpecification, DOMMixin):
print("[NOT IMPLEMENTED] Signature name in attribute specifications.")
else:
position = Position.parse(name)
- raise DOMException(f"Unknown name kind '{nameKind.name}' in attribute specification '{attributeNode}' at {position.Filename}:{position.Line}:{position.Column}.")
+ raise DOMException(
+ f"Unknown name kind '{nameKind.name}' in attribute specification '{attributeNode}' at {position.Filename}:{position.Line}:{position.Column}."
+ )
entityClassToken = nodes.Get_Entity_Class(attributeNode)
try:
entityClass = _TOKEN_TRANSLATION[entityClassToken]
except KeyError:
position = Position.parse(attributeNode)
- raise DOMException(f"Unknown token '{entityClassToken.name}' in attribute specification for entity class '{attributeNode}' at {position.Filename}:{position.Line}:{position.Column}.")
+ raise DOMException(
+ f"Unknown token '{entityClassToken.name}' in attribute specification for entity class '{attributeNode}' at {position.Filename}:{position.Line}:{position.Column}."
+ )
expression = GetExpressionFromNode(nodes.Get_Expression(attributeNode))
diff --git a/pyGHDL/dom/Concurrent.py b/pyGHDL/dom/Concurrent.py
index 754f58f14..693feba27 100644
--- a/pyGHDL/dom/Concurrent.py
+++ b/pyGHDL/dom/Concurrent.py
@@ -552,7 +552,9 @@ class CaseGenerateStatement(VHDLModel_CaseGenerateStatement, DOMMixin):
rng = GetNameFromNode(choiceRange)
else:
pos = Position.parse(alternative)
- raise DOMException(f"Unknown choice range kind '{choiceRangeKind.name}' in case...generate statement at line {pos.Line}.")
+ raise DOMException(
+ f"Unknown choice range kind '{choiceRangeKind.name}' in case...generate statement at line {pos.Line}."
+ )
choice = RangedGenerateChoice(alternative, rng)
if sameAlternative:
@@ -569,7 +571,9 @@ class CaseGenerateStatement(VHDLModel_CaseGenerateStatement, DOMMixin):
continue
else:
pos = Position.parse(alternative)
- raise DOMException(f"Unknown choice kind '{choiceKind.name}' in case...generate statement at line {pos.Line}.")
+ raise DOMException(
+ f"Unknown choice kind '{choiceKind.name}' in case...generate statement at line {pos.Line}."
+ )
if choices is not None:
cases.append(GenerateCase.parse(caseNode, choices))
@@ -625,7 +629,9 @@ class ForGenerateStatement(VHDLModel_ForGenerateStatement, DOMMixin):
rng = GetNameFromNode(discreteRange)
else:
pos = Position.parse(generateNode)
- raise DOMException(f"Unknown discete range kind '{rangeKind.name}' in for...generate statement at line {pos.Line}.")
+ raise DOMException(
+ f"Unknown discete range kind '{rangeKind.name}' in for...generate statement at line {pos.Line}."
+ )
body = nodes.Get_Generate_Statement_Body(generateNode)
declarationChain = nodes.Get_Declaration_Chain(body)
diff --git a/pyGHDL/dom/Expression.py b/pyGHDL/dom/Expression.py
index f56ca148f..51b73c57e 100644
--- a/pyGHDL/dom/Expression.py
+++ b/pyGHDL/dom/Expression.py
@@ -519,7 +519,9 @@ class Aggregate(VHDLModel_Aggregate, DOMMixin):
rng = GetNameFromNode(choiceRange)
else:
pos = Position.parse(item)
- raise DOMException(f"Unknown discete range kind '{rangeKind.name}' in for...generate statement at line {pos.Line}.")
+ raise DOMException(
+ f"Unknown discete range kind '{rangeKind.name}' in for...generate statement at line {pos.Line}."
+ )
choices.append(RangedAggregateElement(item, rng, value))
elif kind == nodes.Iir_Kind.Choice_By_Name:
diff --git a/pyGHDL/dom/NonStandard.py b/pyGHDL/dom/NonStandard.py
index e6af8284a..c55786d54 100644
--- a/pyGHDL/dom/NonStandard.py
+++ b/pyGHDL/dom/NonStandard.py
@@ -191,7 +191,9 @@ class Document(VHDLModel_Document):
contextItems.append(ContextReference.parse(item))
else:
pos = Position.parse(item)
- raise DOMException(f"Unknown context item kind '{itemKind.name}' in context at line {pos.Line}.")
+ raise DOMException(
+ f"Unknown context item kind '{itemKind.name}' in context at line {pos.Line}."
+ )
if nodeKind == nodes.Iir_Kind.Entity_Declaration:
entity = Entity.parse(libraryUnit, contextItems)
diff --git a/pyGHDL/dom/Sequential.py b/pyGHDL/dom/Sequential.py
index 3e9ebaf48..0258d3a14 100644
--- a/pyGHDL/dom/Sequential.py
+++ b/pyGHDL/dom/Sequential.py
@@ -291,7 +291,9 @@ class CaseStatement(VHDLModel_CaseStatement, DOMMixin):
rng = GetNameFromNode(choiceRange)
else:
pos = Position.parse(alternative)
- raise DOMException(f"Unknown choice range kind '{choiceRangeKind.name}' in case statement at line {pos.Line}.")
+ raise DOMException(
+ f"Unknown choice range kind '{choiceRangeKind.name}' in case statement at line {pos.Line}."
+ )
choice = RangedChoice(alternative, rng)
if sameAlternative:
@@ -362,7 +364,9 @@ class ForLoopStatement(VHDLModel_ForLoopStatement, DOMMixin):
rng = GetNameFromNode(discreteRange)
else:
pos = Position.parse(loopNode)
- raise DOMException(f"Unknown discete range kind '{rangeKind.name}' in for...loop statement at line {pos.Line}.")
+ raise DOMException(
+ f"Unknown discete range kind '{rangeKind.name}' in for...loop statement at line {pos.Line}."
+ )
statementChain = nodes.Get_Sequential_Statement_Chain(loopNode)
statements = GetSequentialStatementsFromChainedNodes(statementChain, "for", label)
diff --git a/pyGHDL/dom/Type.py b/pyGHDL/dom/Type.py
index 6724ac743..b0f2d1311 100644
--- a/pyGHDL/dom/Type.py
+++ b/pyGHDL/dom/Type.py
@@ -168,7 +168,9 @@ class ArrayType(VHDLModel_ArrayType, DOMMixin):
indexSubtype = GetSimpleTypeFromNode(index)
indices.append(indexSubtype)
else:
- raise DOMException(f"Unknown kind '{indexKind.name}' for an index in the array definition of `{typeName}`.")
+ raise DOMException(
+ f"Unknown kind '{indexKind.name}' for an index in the array definition of `{typeName}`."
+ )
elementSubtypeIndication = nodes.Get_Element_Subtype_Indication(typeDefinitionNode)
elementSubtype = GetSubtypeIndicationFromIndicationNode(elementSubtypeIndication, "array declaration", typeName)
diff --git a/pyGHDL/dom/_Translate.py b/pyGHDL/dom/_Translate.py
index 7e21b98bf..a125abfe5 100644
--- a/pyGHDL/dom/_Translate.py
+++ b/pyGHDL/dom/_Translate.py
@@ -216,7 +216,9 @@ def GetAssociations(node: Iir) -> List:
associations.append(expr)
else:
- raise DOMException(f"Unknown association kind '{kind.name}' in array index/slice or function call '{node}'.")
+ raise DOMException(
+ f"Unknown association kind '{kind.name}' in array index/slice or function call '{node}'."
+ )
return associations
@@ -239,7 +241,9 @@ def GetArrayConstraintsFromSubtypeIndication(
constraints.append(GetNameFromNode(constraint))
else:
position = Position.parse(constraint)
- raise DOMException(f"Unknown constraint kind '{constraintKind.name}' for constraint '{constraint}' in subtype indication '{subtypeIndication}' at {position.Filename}:{position.Line}:{position.Column}.")
+ raise DOMException(
+ f"Unknown constraint kind '{constraintKind.name}' for constraint '{constraint}' in subtype indication '{subtypeIndication}' at {position.Filename}:{position.Line}:{position.Column}."
+ )
return constraints
@@ -266,7 +270,9 @@ def GetTypeFromNode(node: Iir) -> BaseType:
return ProtectedType.parse(typeName, typeDefinition)
else:
position = Position.parse(typeDefinition)
- raise DOMException(f"GetTypeFromNode: Unknown type definition kind '{kind.name}' for type '{typeName}' at {position.Filename}:{position.Line}:{position.Column}.")
+ raise DOMException(
+ f"GetTypeFromNode: Unknown type definition kind '{kind.name}' for type '{typeName}' at {position.Filename}:{position.Line}:{position.Column}."
+ )
@export
@@ -294,7 +300,9 @@ def GetAnonymousTypeFromNode(node: Iir) -> BaseType:
return ArrayType(typeDefinition, "????", [], None)
else:
position = Position.parse(typeDefinition)
- raise DOMException(f"GetAnonymousTypeFromNode: Unknown type definition kind '{kind.name}' for type '{typeName}' at {position.Filename}:{position.Line}:{position.Column}.")
+ raise DOMException(
+ f"GetAnonymousTypeFromNode: Unknown type definition kind '{kind.name}' for type '{typeName}' at {position.Filename}:{position.Line}:{position.Column}."
+ )
@export
@@ -438,7 +446,9 @@ def GetExpressionFromNode(node: Iir) -> ExpressionUnion:
cls = __EXPRESSION_TRANSLATION[kind]
except KeyError:
position = Position.parse(node)
- raise DOMException(f"Unknown expression kind '{kind.name}' in expression '{node}' at {position.Filename}:{position.Line}:{position.Column}.")
+ raise DOMException(
+ f"Unknown expression kind '{kind.name}' in expression '{node}' at {position.Filename}:{position.Line}:{position.Column}."
+ )
return cls.parse(node)
@@ -495,7 +505,9 @@ def GetGenericsFromChainedNodes(
yield GenericFunctionInterfaceItem.parse(generic)
else:
position = Position.parse(generic)
- raise DOMException(f"Unknown generic kind '{kind.name}' in generic '{generic}' at {position.Filename}:{position.Line}:{position.Column}.")
+ raise DOMException(
+ f"Unknown generic kind '{kind.name}' in generic '{generic}' at {position.Filename}:{position.Line}:{position.Column}."
+ )
generic = nodes.Get_Chain(generic)
@@ -537,7 +549,9 @@ def GetPortsFromChainedNodes(
continue
else:
position = Position.parse(port)
- raise DOMException(f"Unknown port kind '{kind.name}' in port '{port}' at {position.Filename}:{position.Line}:{position.Column}.")
+ raise DOMException(
+ f"Unknown port kind '{kind.name}' in port '{port}' at {position.Filename}:{position.Line}:{position.Column}."
+ )
@export
@@ -566,7 +580,9 @@ def GetParameterFromChainedNodes(
param = ParameterFileInterfaceItem.parse(parameter)
else:
position = Position.parse(parameter)
- raise DOMException(f"Unknown parameter kind '{kind.name}' in parameter '{parameter}' at {position.Filename}:{position.Line}:{position.Column}.")
+ raise DOMException(
+ f"Unknown parameter kind '{kind.name}' in parameter '{parameter}' at {position.Filename}:{position.Line}:{position.Column}."
+ )
# Lookahead for parameters with multiple identifiers at once
if nodes.Get_Has_Identifier_List(parameter):
@@ -682,7 +698,9 @@ def GetDeclaredItemsFromChainedNodes(nodeChain: Iir, entity: str, name: str) ->
pass
else:
position = Position.parse(item)
- raise DOMException(f"Found unexpected function body '{GetNameOfNode(item)}' in {entity} '{name}' at {position.Filename}:{position.Line}:{position.Column}.")
+ raise DOMException(
+ f"Found unexpected function body '{GetNameOfNode(item)}' in {entity} '{name}' at {position.Filename}:{position.Line}:{position.Column}."
+ )
elif kind == nodes.Iir_Kind.Procedure_Declaration:
if nodes.Get_Has_Body(item):
yield Procedure.parse(item)
@@ -697,7 +715,9 @@ def GetDeclaredItemsFromChainedNodes(nodeChain: Iir, entity: str, name: str) ->
pass
else:
position = Position.parse(item)
- raise DOMException(f"Found unexpected procedure body '{GetNameOfNode(item)}' in {entity} '{name}' at {position.Filename}:{position.Line}:{position.Column}.")
+ raise DOMException(
+ f"Found unexpected procedure body '{GetNameOfNode(item)}' in {entity} '{name}' at {position.Filename}:{position.Line}:{position.Column}."
+ )
elif kind == nodes.Iir_Kind.Protected_Type_Body:
yield ProtectedTypeBody.parse(item)
elif kind == nodes.Iir_Kind.Object_Alias_Declaration:
@@ -748,7 +768,9 @@ def GetDeclaredItemsFromChainedNodes(nodeChain: Iir, entity: str, name: str) ->
print(f"[NOT IMPLEMENTED] Terminal declaration in {name}")
else:
position = Position.parse(item)
- raise DOMException(f"Unknown declared item kind '{kind.name}' in {entity} '{name}' at {position.Filename}:{position.Line}:{position.Column}.")
+ raise DOMException(
+ f"Unknown declared item kind '{kind.name}' in {entity} '{name}' at {position.Filename}:{position.Line}:{position.Column}."
+ )
lastKind = None
item = nodes.Get_Chain(item)
@@ -796,9 +818,13 @@ def GetConcurrentStatementsFromChainedNodes(
elif kind == nodes.Iir_Kind.Concurrent_Simple_Signal_Assignment:
yield ConcurrentSimpleSignalAssignment.parse(statement, label)
elif kind == nodes.Iir_Kind.Concurrent_Conditional_Signal_Assignment:
- print(f"[NOT IMPLEMENTED] Concurrent (conditional) signal assignment (label: '{label}') at line {position.Line}")
+ print(
+ f"[NOT IMPLEMENTED] Concurrent (conditional) signal assignment (label: '{label}') at line {position.Line}"
+ )
elif kind == nodes.Iir_Kind.Concurrent_Selected_Signal_Assignment:
- print(f"[NOT IMPLEMENTED] Concurrent (selected) signal assignment (label: '{label}') at line {position.Line}")
+ print(
+ f"[NOT IMPLEMENTED] Concurrent (selected) signal assignment (label: '{label}') at line {position.Line}"
+ )
elif kind == nodes.Iir_Kind.Concurrent_Procedure_Call_Statement:
yield ConcurrentProcedureCall.parse(statement, label)
elif kind == nodes.Iir_Kind.Component_Instantiation_Statement:
@@ -811,7 +837,9 @@ def GetConcurrentStatementsFromChainedNodes(
elif instantiatedUnitKind == nodes.Iir_Kind.Simple_Name:
yield ComponentInstantiation.parse(statement, instantiatedUnit, label)
else:
- raise DOMException(f"Unknown instantiation kind '{instantiatedUnitKind.name}' in instantiation of label {label} at {position.Filename}:{position.Line}:{position.Column}.")
+ raise DOMException(
+ f"Unknown instantiation kind '{instantiatedUnitKind.name}' in instantiation of label {label} at {position.Filename}:{position.Line}:{position.Column}."
+ )
elif kind == nodes.Iir_Kind.Block_Statement:
yield ConcurrentBlockStatement.parse(statement, label)
elif kind == nodes.Iir_Kind.If_Generate_Statement:
@@ -825,7 +853,9 @@ def GetConcurrentStatementsFromChainedNodes(
elif kind == nodes.Iir_Kind.Simple_Simultaneous_Statement:
print(f"[NOT IMPLEMENTED] Simple simultaneous statement (label: '{label}') at line {position.Line}")
else:
- raise DOMException(f"Unknown statement of kind '{kind.name}' in {entity} '{name}' at {position.Filename}:{position.Line}:{position.Column}.")
+ raise DOMException(
+ f"Unknown statement of kind '{kind.name}' in {entity} '{name}' at {position.Filename}:{position.Line}:{position.Column}."
+ )
def GetSequentialStatementsFromChainedNodes(
@@ -861,7 +891,9 @@ def GetSequentialStatementsFromChainedNodes(
elif kind == nodes.Iir_Kind.Null_Statement:
yield NullStatement(statement, label)
else:
- raise DOMException(f"Unknown statement of kind '{kind.name}' in {entity} '{name}' at {position.Filename}:{position.Line}:{position.Column}.")
+ raise DOMException(
+ f"Unknown statement of kind '{kind.name}' in {entity} '{name}' at {position.Filename}:{position.Line}:{position.Column}."
+ )
def GetAliasFromNode(aliasNode: Iir):
diff --git a/pyGHDL/dom/formatting/prettyprint.py b/pyGHDL/dom/formatting/prettyprint.py
index 14d13e2c5..aa9c90c34 100644
--- a/pyGHDL/dom/formatting/prettyprint.py
+++ b/pyGHDL/dom/formatting/prettyprint.py
@@ -189,7 +189,9 @@ class PrettyPrint:
def formatEntity(self, entity: Entity, level: int = 0) -> StringBuffer:
buffer = []
prefix = " " * level
- buffer.append(f"{prefix}- Name: {entity.Identifier}\n{prefix} File: {entity.Position.Filename.name}\n{prefix} Position: {entity.Position.Line}:{entity.Position.Column}")
+ buffer.append(
+ f"{prefix}- Name: {entity.Identifier}\n{prefix} File: {entity.Position.Filename.name}\n{prefix} Position: {entity.Position.Line}:{entity.Position.Column}"
+ )
buffer.append(f"{prefix} Generics:")
for generic in entity.GenericItems:
for line in self.formatGeneric(generic, level + 1):
@@ -214,7 +216,9 @@ class PrettyPrint:
def formatArchitecture(self, architecture: Architecture, level: int = 0) -> StringBuffer:
buffer = []
prefix = " " * level
- buffer.append(f"{prefix}- Name: {architecture.Identifier}\n{prefix} File: {architecture.Position.Filename.name}\n{prefix} Position: {architecture.Position.Line}:{architecture.Position.Column}")
+ buffer.append(
+ f"{prefix}- Name: {architecture.Identifier}\n{prefix} File: {architecture.Position.Filename.name}\n{prefix} Position: {architecture.Position.Line}:{architecture.Position.Column}"
+ )
buffer.append(f"{prefix} Entity: {architecture.Entity.SymbolName}")
buffer.append(f"{prefix} Declared:")
for item in architecture.DeclaredItems:
@@ -250,7 +254,9 @@ class PrettyPrint:
def formatPackage(self, package: Package, level: int = 0) -> StringBuffer:
buffer = []
prefix = " " * level
- buffer.append(f"{prefix}- Name: {package.Identifier}\n{prefix} File: {package.Position.Filename.name}\n{prefix} Position: {package.Position.Line}:{package.Position.Column}")
+ buffer.append(
+ f"{prefix}- Name: {package.Identifier}\n{prefix} File: {package.Position.Filename.name}\n{prefix} Position: {package.Position.Line}:{package.Position.Column}"
+ )
buffer.append(f"{prefix} Declared:")
for item in package.DeclaredItems:
for line in self.formatDeclaredItems(item, level + 1):
@@ -301,13 +307,17 @@ class PrettyPrint:
elif isinstance(generic, GenericTypeInterfaceItem):
return self.formatGenericType(generic, level)
else:
- raise PrettyPrintException(f"Unhandled generic kind '{generic.__class__.__name__}' for generic '{generic.Identifiers[0]}'.")
+ raise PrettyPrintException(
+ f"Unhandled generic kind '{generic.__class__.__name__}' for generic '{generic.Identifiers[0]}'."
+ )
def formatPort(self, port: Union[NamedEntity, PortInterfaceItem], level: int = 0) -> StringBuffer:
if isinstance(port, PortSignalInterfaceItem):
return self.formatPortSignal(port, level)
else:
- raise PrettyPrintException(f"Unhandled port kind '{port.__class__.__name__}' for port '{port.Identifiers[0]}'.")
+ raise PrettyPrintException(
+ f"Unhandled port kind '{port.__class__.__name__}' for port '{port.Identifiers[0]}'."
+ )
def formatGenericConstant(self, generic: GenericConstantInterfaceItem, level: int = 0) -> StringBuffer:
buffer = []
@@ -381,9 +391,7 @@ class PrettyPrint:
prefix=prefix,
name=", ".join(item.Identifiers),
subtype=self.formatSubtypeIndication(item.Subtype, "signal", item.Identifiers[0]),
- initValue=f" := {item.DefaultExpression!s}"
- if item.DefaultExpression is not None
- else "",
+ initValue=f" := {item.DefaultExpression!s}" if item.DefaultExpression is not None else "",
)
)
elif isinstance(item, File):
@@ -418,7 +426,9 @@ class PrettyPrint:
elif isinstance(item, PackageInstantiation):
buffer.append(f"{prefix}- package {item.Identifier} is new {item.PackageReference!s} generic map (.....)")
elif isinstance(item, DefaultClock):
- buffer.append(f"{prefix}- default {item.Identifier} is {'...'}", )
+ buffer.append(
+ f"{prefix}- default {item.Identifier} is {'...'}",
+ )
else:
raise PrettyPrintException(f"Unhandled declared item kind '{item.__class__.__name__}'.")
@@ -461,7 +471,9 @@ class PrettyPrint:
return "{type}({constraints})".format(type=subtypeIndication.SymbolName, constraints=", ".join(constraints))
else:
- raise PrettyPrintException(f"Unhandled subtype kind '{subtypeIndication.__class__.__name__}' for {entity} '{name}'.")
+ raise PrettyPrintException(
+ f"Unhandled subtype kind '{subtypeIndication.__class__.__name__}' for {entity} '{name}'."
+ )
def formatInitialValue(self, item: WithDefaultExpressionMixin) -> str:
if item.DefaultExpression is None:
diff --git a/pyGHDL/libghdl/_decorator.py b/pyGHDL/libghdl/_decorator.py
index 99ebbe286..65a0473da 100644
--- a/pyGHDL/libghdl/_decorator.py
+++ b/pyGHDL/libghdl/_decorator.py
@@ -136,7 +136,9 @@ def BindToLibGHDL(subprogramName):
raise ValueError(f"Function {func.__name__} is not annotated with a return type.")
if (typeHintCount - 1) != func.__code__.co_argcount:
- raise ValueError(f"Number of type annotations ({typeHintCount - 1}) for function '{func.__name__}' does not match number of parameters ({func.__code__.co_argcount}).")
+ raise ValueError(
+ f"Number of type annotations ({typeHintCount - 1}) for function '{func.__name__}' does not match number of parameters ({func.__code__.co_argcount})."
+ )
# print(typeHints)
@@ -167,7 +169,10 @@ def BindToLibGHDL(subprogramName):
returnValue = functionPointer(*args)
except OSError as ex:
errors = [str(ex)]
- raise LibGHDLException(f"Caught exception when calling '{subprogramName}' in libghdl.", errors,) from ex
+ raise LibGHDLException(
+ f"Caught exception when calling '{subprogramName}' in libghdl.",
+ errors,
+ ) from ex
return returnType(returnValue)
@@ -180,7 +185,10 @@ def BindToLibGHDL(subprogramName):
return functionPointer(*args)
except OSError as ex:
errors = [str(ex)]
- raise LibGHDLException(f"Caught exception when calling '{subprogramName}' in libghdl.", errors,) from ex
+ raise LibGHDLException(
+ f"Caught exception when calling '{subprogramName}' in libghdl.",
+ errors,
+ ) from ex
return inner