Verfügbare Methoden für die Skripterstellung
Synthetic Data Generator verfügt über eine Reihe von verschiedenen Methoden für die Skripterstellung.
Sie können diese Methoden verwenden, um Knoten zu erstellen und zu ändern, Knoten zu verknüpfen, Bewegungen zu bearbeiten und Knoteninformationen abzurufen.
- Knoten erstellen
- Knoten verbinden und trennen
- Eigenschaften festlegen
- Knoten importieren, ersetzen und löschen
- Lokalisierung von Knotenpunkten
- Informationen zu Knoten abrufen
Methoden zum Erstellen von Knoten
Das Hinzufügen von Knoten zu bestehenden Abläufen umfasst in der Regel folgende Schritte:
- Erstellen der neuen Knotenpunkte.
- Verknüpfung der Knoten mit bestehenden Knoten im Fluss.
Die verfügbaren Methoden bieten eine Reihe von Möglichkeiten zur Erstellung von Knoten durch Skripterstellung.
| Methode | Rückgabetyp | Beschreibung |
|---|---|---|
s.create(nodeType, name) |
Knoten | Erstellt einen Knoten des angegebenen Typs und fügt ihn dem angegebenen Ablauf hinzu. |
s.createAt(nodeType, name, x, y) |
Knoten | Erstellt einen Knoten des angegebenen Typs und fügt ihn an der angegebenen Stelle in den angegebenen Ablauf ein. Wenn entweder x < 0 oder y < 0 ist, ist der Standort nicht festgelegt. |
s.createModelApplier(modelOutput, name) |
Knoten | Erstellt einen Modell-Applier-Knoten, der vom angegebenen Modell-Ausgabeobjekt abgeleitet ist. |
Scripting-Beispiel
Sie können das folgende Skript verwenden, um einen mimc-Knoten in einem Fluss zu erstellen:
stream = sdg.script.stream()
# Create a new Type node
node = stream.create("mimic", "Mimic1")
Knoten verbinden und trennen
Nachdem Sie einen neuen Knoten zu einem Fluss hinzugefügt haben, müssen Sie ihn mit einer Reihe von Knoten verbinden, bevor er verwendet werden kann. Für die Verknüpfung und Aufhebung der Verknüpfung von Knoten gibt es eine Reihe von Methoden.
| Methode | Rückgabetyp | Beschreibung |
|---|---|---|
s.link(source, target) |
Nicht zutreffend | Erstellt eine neue Verbindung zwischen dem Quell- und dem Zielknoten. |
s.link(source, targets) |
Nicht zutreffend | Erstellt neue Verknüpfungen zwischen dem Quellknoten und jedem Zielknoten in der angegebenen Liste. |
s.linkBetween(inserted, source, target) |
Nicht zutreffend | Verbindet einen Knoten mit zwei anderen Knoteninstanzen (dem Quell- und dem Zielknoten) und legt die Position des eingefügten Knotens so fest, dass er sich zwischen diesen beiden befindet. Zunächst wird jede direkte Verbindung zwischen dem Quell- und dem Zielknoten entfernt. |
s.linkPath(path) |
Nicht zutreffend | Erstellt einen neuen Pfad zwischen Knoteninstanzen. Der erste Knoten ist mit dem zweiten verbunden, der zweite mit dem dritten und so weiter. |
s.unlink(source, target) |
Nicht zutreffend | Entfernt jede direkte Verbindung zwischen dem Quell- und dem Zielknoten. |
s.unlink(source, targets) |
Nicht zutreffend | Entfernt alle direkten Verknüpfungen zwischen dem Quellknoten und jedem Objekt in der Zielliste. |
s.unlinkPath(path) |
Nicht zutreffend | Entfernt alle Pfade, die zwischen Knoteninstanzen bestehen. |
s.disconnect(node) |
Nicht zutreffend | Entfernt alle Verbindungen zwischen dem angegebenen Knoten und allen anderen Knoten im angegebenen Fluss. |
s.isValidLink(source, target) |
boolesch | Gibt zurück True , ob die Erstellung einer Verbindung zwischen dem angegebenen Quell- und Zielknoten zulässig wäre. Diese Methode überprüft, ob beide Objekte zu dem angegebenen Fluss gehören, ob der Quellknoten eine Verbindung bereitstellen und der Zielknoten eine Verbindung empfangen kann und ob die Erstellung einer solchen Verbindung keine Zirkulation im Fluss verursacht. |
Scripting-Beispiel
Das folgende Beispielskript führt diese fünf Aufgaben aus:
- Erstellt einen Knoten "Importieren", einen Knoten "Anonymisieren" und einen Knoten "Nachahmen".
- Verbindet die Knoten miteinander.
- Führt den Mimic-Knoten aus.
stream = sdg.script.stream()
sourcenode = stream.findByID("idGXVBG5FBZH")
anonymizenode = stream.createAt("anonymize", "Anonymize", 192, 64)
mimicnode = stream.createAt("mimic", "Mimic", 288, 64)
stream.link(sourcenode, anonymizenode)
stream.link(anonymizenode, mimicnode)
anonymizenode.setKeyedPropertyValue("include", "Drug", False)
results = []
mimicnode.run(results)
Methoden zum Einstellen von Eigenschaften
Knoten, Flüsse, Modelle und Ausgaben verfügen alle über Eigenschaften, auf die zugegriffen und die in den meisten Fällen auch festgelegt werden können. Eigenschaften werden in der Regel verwendet, um das Verhalten oder das Erscheinungsbild des Objekts zu ändern. Die Methoden, die zum Abrufen und Festlegen von Objekteigenschaften zur Verfügung stehen, sind in der folgenden Tabelle zusammengefasst.
| Methode | Rückgabetyp | Beschreibung |
|---|---|---|
p.getPropertyValue(propertyName) |
Objekt | Gibt den Wert der angegebenen Eigenschaft zurück oder, None falls keine solche Eigenschaft vorhanden ist. |
p.setPropertyValue(propertyName, value) |
Nicht zutreffend | Legt den Wert der angegebenen Eigenschaft fest. |
p.setPropertyValues(properties) |
Nicht zutreffend | Legt die Werte der angegebenen Eigenschaften fest. Jeder Eintrag in der Eigenschaftstabelle besteht aus einem Schlüssel, der den Namen der Eigenschaft angibt, und dem Wert, der dieser Eigenschaft zugewiesen werden soll. |
p.getKeyedPropertyValue(propertyName, keyName) |
Objekt | Gibt den Wert der angegebenen Eigenschaft und des zugehörigen Schlüssels zurück oder, None falls keine solche Eigenschaft oder kein solcher Schlüssel vorhanden ist. |
p.setKeyedPropertyValue(propertyName, keyName, value) |
Nicht zutreffend | Setzt den Wert der angegebenen Eigenschaft und des angegebenen Schlüssels. |
Scripting-Beispiel
Das folgende Skript setzt den Wert eines Mimic-Knotens für einen Fluss:
stream = sdg.script.stream()
node = stream.findByType("mimc", None)
node.setPropertyValue("name_extension", "new_mimic")
Methoden zur Lokalisierung von Knotenpunkten
Sie können das Auffinden eines vorhandenen Knotens verwenden. Diese Methoden sind in der folgenden Tabelle zusammengefasst.
| Methode | Rückgabetyp | Beschreibung |
|---|---|---|
s.findAll(type, label) |
Sammlung | Gibt eine Liste aller Knoten mit dem angegebenen Typ und der angegebenen Bezeichnung zurück. Entweder kann der Typ oder die Bezeichnung angegeben werden None; in diesem Fall wird der andere Parameter verwendet. |
s.findAll(filter, recursive) |
Sammlung | Gibt eine Sammlung aller Knoten zurück, die vom angegebenen Filter akzeptiert werden. Wenn das Rekursiv-Flag True lautet. |
s.findByID(id) |
Knoten | Gibt den Knoten mit der angegebenen ID zurück oder, None falls kein solcher Knoten existiert. Die Suche ist auf den Stromfluss beschränkt. |
s.findByType(type, label) |
Knoten | Gibt den Knoten mit dem angegebenen Typ, der Bezeichnung oder beidem zurück. Es kann entweder der Typ oder der Name angegeben werden None; in diesem Fall wird der andere Parameter verwendet. Wenn mehrere Knoten eine Übereinstimmung ergeben, wird ein beliebiger davon ausgewählt und zurückgegeben. Wenn kein Knoten eine Übereinstimmung ergibt, lautet der NoneRückgabewert. |
s.findDownstream(fromNodes) |
Sammlung | Durchsucht die angegebene Liste von Knoten und gibt die Menge der Knoten zurück, die den angegebenen Knoten nachgelagert sind. Die zurückgegebene Liste enthält die ursprünglich übergebenen Knoten. |
s.findUpstream(fromNodes) |
Sammlung | Durchsucht die angegebene Liste von Knoten und gibt die Menge der Knoten zurück, die den angegebenen Knoten vorgelagert sind. Die zurückgegebene Liste enthält die ursprünglich übergebenen Knoten. |
s.findProcessorForID(id, recursive) |
Knoten | Gibt den Knoten mit der angegebenen ID zurück oder, None falls kein solcher Knoten existiert. Wenn das Rekursionsflag gesetzt ist true, werden auch alle zusammengesetzten Knoten innerhalb dieses Diagramms durchsucht. |
Skripting-Beispiele
Wenn ein Ablauf beispielsweise einen einzelnen Knoten "Auswerten" enthält, auf den das Script zugreifen muss, kann der Knoten "Auswerten" mit dem folgenden Script gefunden werden:
stream = sdg.script.stream()
node = stream.findByType("evaluate", None)
...
Alternativ kannst du die ID eines Knotens verwenden. Zum Beispiel:
stream = sdg.script.stream()
node = stream.findByID("id49CVL4GHVV8") # the Evaluate node ID
node.setPropertyValue("mode", "Multiple")
node.setPropertyValue("name_extension", "evaluate")
Um die ID eines beliebigen Knotens in einem Ablauf zu einem Skript hinzuzufügen, klicken Sie auf das Symbol Skripting in der Symbolleiste, wählen Sie dann den gewünschten Knoten in Ihrem Ablauf aus und klicken Sie auf Ausgewählte Knoten-ID einfügen.
Methoden zum Importieren, Ersetzen und Löschen von Knoten
Manchmal ist es notwendig, Knoten in einem Fluss zu ersetzen und zu löschen. Sie können die folgenden Methoden verwenden, um Knoten zu importieren, zu ersetzen und zu löschen.
| Methode | Rückgabetyp | Beschreibung |
|---|---|---|
s.replace(originalNode, replacementNode, discardOriginal) |
Nicht zutreffend | Ersetzt den angegebenen Knoten aus dem angegebenen Ablauf. Sowohl der ursprüngliche Knoten als auch der Ersatzknoten müssen zu dem angegebenen Fluss gehören. |
s.insert(source, nodes, newIDs) |
Liste | Fügt Kopien der Knoten aus der angegebenen Liste ein. Es wird davon ausgegangen, dass alle Knoten in der angegebenen Liste in dem angegebenen Fluss enthalten sind. Das newIDs Flag gibt an, ob für jeden Knoten neue IDs generiert werden sollen oder ob die vorhandene ID kopiert und verwendet werden soll. Die Methode gibt die Liste der neu eingefügten Knoten zurück, wobei die Reihenfolge der Knoten undefiniert ist. |
s.delete(node) |
Nicht zutreffend | Löscht den angegebenen Knoten aus dem angegebenen Ablauf. Der Knoten muss zum angegebenen Fluss gehören. |
s.deleteAll(nodes) |
Nicht zutreffend | Löscht alle angegebenen Knoten aus dem angegebenen Ablauf. Alle Knoten in der Sammlung müssen zu dem angegebenen Fluss gehören. |
s.clear() |
Nicht zutreffend | Löscht alle Knoten aus dem angegebenen Fluss. |
Informationen zu Knoten abrufen
Sie können Informationen über Knoten auf verschiedene Weise finden. Sie können die folgenden Methoden verwenden, um die ID, den Namen und die Bezeichnung eines Knotens zu erhalten.
| Methode | Rückgabetyp | Beschreibung |
|---|---|---|
n.getLabel() |
Zeichenfolge | Gibt die Anzeige-Bezeichnung des angegebenen Knotens zurück. Die Bezeichnung ist nur dann der custom_name Wert der Eigenschaft, wenn diese Eigenschaft eine nicht leere Zeichenkette ist und die use_custom_name Eigenschaft nicht gesetzt ist; andernfalls ist die Bezeichnung der Wert von getName(). |
n.setLabel(label) |
Nicht zutreffend | Legt die Anzeige-Bezeichnung des angegebenen Knotens fest. Ist die neue Bezeichnung eine nicht leere Zeichenkette, wird sie der Eigenschaft zugewiesen, und False wird der custom_name Eigenschaft use_custom_name zugewiesen, sodass die angegebene Bezeichnung Vorrang hat; andernfalls wird der Eigenschaft eine leere custom_name Zeichenkette zugewiesen, und True wird der Eigenschaft use_custom_namezugewiesen. |
n.getName() |
Zeichenfolge | Gibt den Namen des angegebenen Knotens zurück. |
n.getID() |
Zeichenfolge | Gibt die ID des angegebenen Knotens zurück. Jedes Mal, wenn ein neuer Knoten erstellt wird, wird eine neue ID generiert. Die ID wird beim Speichern des Knotens als Teil eines Ablaufs mitgespeichert, sodass die Knoten-IDs beim Öffnen des Ablaufs erhalten bleiben. Wird jedoch ein gespeicherter Knoten in einen Ablauf eingefügt, wird der eingefügte Knoten als neues Objekt betrachtet und erhält eine neue ID. |
In der folgenden Tabelle sind Methoden zusammengefasst, mit denen weitere Informationen über einen Knoten abgerufen werden können.
| Methode | Rückgabetyp | Beschreibung |
|---|---|---|
n.getTypeName() |
Zeichenfolge | Gibt den Skriptnamen dieses Knotens zurück. Dies ist derselbe Name, der zum Erstellen einer neuen Instanz dieses Knotens verwendet werden könnte. |
n.isInitial() |
boolesch | Gibt True zurück, wenn es sich um einen Anfangsknoten handelt (einer, der am Anfang eines Flusses auftritt). |
n.isInline() |
boolesch | Gibt True zurück, wenn es sich um einen Inline-Knoten handelt (einer, der in der Mitte des Flusses auftritt). |
n.isTerminal() |
boolesch | Gibt True zurück, wenn es sich um einen Endknoten handelt (einer, der am Ende eines Flusses auftritt). |
n.getXPosition() |
Ganzzahl | Gibt den Versatz der x-Position des Knotens im Fluss zurück. |
n.getYPosition() |
Ganzzahl | Gibt den Versatz der y-Position des Knotens im Fluss zurück. |
n.setXYPosition(x, y) |
Nicht zutreffend | Legt die Position des Knotens im Ablauf fest. |
n.setPositionBetween(source, target) |
Nicht zutreffend | Legt die Position des Knotens im Ablauf so fest, dass er zwischen den angegebenen Knoten platziert wird. |
n.isCacheEnabled() |
boolesch | Gibt zurück True , ob der Cache aktiviert ist; andernfalls wird False zurückgegeben. |
n.setCacheEnabled(val) |
Nicht zutreffend | Aktiviert oder deaktiviert den Cache für dieses Objekt. Wenn der Cache voll ist und die Zwischenspeicherung deaktiviert wird, wird der Cache geleert. |
n.isCacheFull() |
boolesch | Gibt zurück True , wenn der Cache voll ist; andernfalls wird False zurückgegeben. |
n.flushCache() |
Nicht zutreffend | Leert den Cache dieses Knotens. Hat keine Auswirkung, wenn der Cache nicht aktiviert oder nicht voll ist. |