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 cls.q().bind(name, node)dem entspricht.

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
str

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
ISA

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 metadata["domain"] automatischen Aufzählung; durch Übergeben eines Werts für ein solches Feld wird außer Kraft gesetzt oder die Domäne eingeschränkt. Nicht schlüsselwortgeschützte Felder, die hier übergeben werden, werden als feste Werte für alle aufgezählten Instanzen verwendet.

Wenn sie beispielsweise eine Transformation mit einem nur schlüsselwortgeschützten Feld und einem Nur-Schlüsselwort-Feld thresholddistance mit einer Domäne erhalten, rufen MyTransform.q(threshold=0.03) Sie Korrekturen threshold auf 0,03 auf, während sie weiterhin alle Werte in der distance Domäne aufzählen.

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.