ISATransform Klasse
Abstrakte Basisklasse für Transformationen zwischen ISAs (z. B. QEC-Schemas).
Eine ISA-Transformation definiert eine Zuordnung von einer erforderlichen Eingabe-ISA (z. B. Architektureinschränkungen) zu einer bereitgestellten Ausgabe-ISA (logische Anweisungen). Es unterstützt die Enumeration von Konfigurationsparametern.
Konstruktor
ISATransform()
Methoden
| bind |
Erstellen Sie einen BindingNode für diese Transformation. Dies ist eine Komfortmethode, die |
| enumerate_isas |
Aufzählen aller gültigen ISAs für diese Transformation gegebener Implementierungs-ISAs. Diese Methode durchläuft alle Instanzen der Transformationsklasse (Aufzählen von Hyperparametern) und filtert implementierungs-ISAs anhand von Anforderungen. |
| provided_isa |
Ergibt ISAs, die von dieser Transformation bereitgestellt werden, wenn eine Implementierungs-ISA vorhanden ist. |
| q |
Erstellen Sie einen ISAQuery-Knoten für diese Transformation. |
| required_isa |
Geben Sie die Anforderungen zurück, die eine Implementierungs-ISA erfüllen muss. |
bind
Erstellen Sie einen BindingNode für diese Transformation.
Dies ist eine Komfortmethode, die cls.q().bind(name, node)dem entspricht.
bind(name: str, node: ISAQuery) -> _BindingNode
Parameter
| Name | Beschreibung |
|---|---|
|
name
Erforderlich
|
Der Name, an den die Ausgabe der Transformation gebunden werden soll. |
|
node
Erforderlich
|
<xref:qdk.qre.Node>
Der untergeordnete Knoten, der auf diese Bindung verweisen kann. |
Gibt zurück
| Typ | Beschreibung |
|---|---|
|
<xref:BindingNode>
|
Ein Bindungsknoten, der diese Transformation umschließt. |
enumerate_isas
Aufzählen aller gültigen ISAs für diese Transformation gegebener Implementierungs-ISAs.
Diese Methode durchläuft alle Instanzen der Transformationsklasse (Aufzählen von Hyperparametern) und filtert implementierungs-ISAs anhand von Anforderungen.
enumerate_isas(impl_isa: ISA | Iterable[ISA], ctx: ISAContext, **kwargs) -> Generator[ISA, None, None]
Parameter
| Name | Beschreibung |
|---|---|
|
impl_isa
Erforderlich
|
<xref:ISA | Iterable>[<xref:ISA>]
Mindestens ein Implementierungs-ISAs. |
|
ctx
Erforderlich
|
Der Enumerationskontext. |
|
**kwargs
Erforderlich
|
Argumente, die an die Parameterenumeration übergeben werden. |
provided_isa
Ergibt ISAs, die von dieser Transformation bereitgestellt werden, wenn eine Implementierungs-ISA vorhanden ist.
abstract provided_isa(impl_isa: ISA, ctx: ISAContext) -> Generator[ISA, None, None]
Parameter
| Name | Beschreibung |
|---|---|
|
impl_isa
Erforderlich
|
Die Implementierungs-ISA, die anforderungen erfüllt. |
|
ctx
Erforderlich
|
Der Enumerationskontext, dessen Provenienzdiagramm die Anweisungen speichert. |
q
Erstellen Sie einen ISAQuery-Knoten für diese Transformation.
q(*, source: ISAQuery | None = None, **kwargs) -> ISAQuery
Parameter
| Name | Beschreibung |
|---|---|
|
source
Erforderlich
|
<xref:<xref:qdk.qre.Node | None>>
Der Quellknoten, der Implementierungs-ISAs bereitstellt. Standardmäßig wird ISA_ROOT. |
|
**kwargs
Erforderlich
|
Feste Werte oder Domänen für Datenklassenfelder. Nur Schlüsselwortfelder mit einer Wenn sie beispielsweise eine Transformation mit einem nur schlüsselwortgeschützten Feld und einem Nur-Schlüsselwort-Feld |
Nur Schlüsselwortparameter
| Name | Beschreibung |
|---|---|
|
source
|
Standardwert: None
|
Gibt zurück
| Typ | Beschreibung |
|---|---|
|
Ein Enumerationsknoten, der diese Transformation darstellt. |
required_isa
Geben Sie die Anforderungen zurück, die eine Implementierungs-ISA erfüllen muss.
abstract static required_isa() -> ISARequirements
Gibt zurück
| Typ | Beschreibung |
|---|---|
|
Die Anforderungen für die zugrunde liegende ISA. |