Bibliotheken
Eine Bibliothek ist ein Skript mit dem Auslöser Bibliothek: Es läuft nie von allein. Es ist dazu da, von anderen Skripten importiert zu werden.
So wird ein zu groß gewordenes Skript aufgeteilt. Der sperrige Teil wandert in eine Bibliothek mit eigener Seite, eigenem Editor und eigenem Probelauf — statt als tausend Zeilen weiterzuleben, die niemand mehr anfasst.
Anlegen und benutzen
Abschnitt betitelt „Anlegen und benutzen“Im Baum links legen Sie über Neu eine Neue Bibliothek an. Sie bekommt einen Pfad wie jedes
Skript, zum Beispiel Plant1.Conversion. Importiert wird sie über genau diesen Pfad:
import Plant1.Conversionfrom Plant1.Conversion import to_pascalIn einer Bibliothek steht system. genauso zur Verfügung wie in dem Skript, das sie importiert —
system.tag.write, system.file.list, system.log.info —, so kann ein Import in einer Bibliothek
liegen und aus zwei Skripten gestartet werden: einem mit Datei angekommen und einem hinter
einem Knopf.
Auf der Seite einer Bibliothek gibt es kein Jetzt starten und kein Protokoll. Beides wäre eine Zusage, die nicht eingelöst werden kann: Der Server lehnt einen Startversuch ab. An ihrer Stelle steht Wer benutzt es.
Wer benutzt es
Abschnitt betitelt „Wer benutzt es“Das ist die einzige Frage, die man zu einer Bibliothek wirklich hat — und die, die vor dem Löschen oder Umbenennen beantwortet sein muss. Die Liste nennt die Pfade der Skripte, die diese Bibliothek importieren; ein Klick springt dorthin.
Ermittelt wird sie, indem der Code gelesen wird. Erkannt werden die üblichen Formen:
import Plant1.Conversionimport Plant1.Conversion as ufrom Plant1.Conversion import to_pascalfrom Plant1 import ConversionWas nicht erkannt wird: ein Import, der zur Laufzeit zusammengebaut wird, etwa über
importlib.import_module(name). Die Liste ist also ein Hinweis für einen Menschen, keine
Garantie. Sie ist nicht die Bindungsübersicht der Tags: Ein Import betrifft Code, keine Werte.
Umbenennen und Löschen
Abschnitt betitelt „Umbenennen und Löschen“Ein Import nennt den Pfad im Code der anderen Skripte. Wird die Bibliothek verschoben oder gelöscht, findet niemand sie unter dem alten Namen wieder — und TrakState schreibt fremden Code nicht um.
Deshalb wird beides abgelehnt, solange andere Skripte importieren. Sie bekommen die Liste und die Frage: Trotzdem verschieben beziehungsweise Trotzdem löschen. Der zweite Klick ist der, der die Importe bricht; danach müssen Sie sie von Hand nachziehen.
Ein Ordner lässt sich mit allem darunter in einem Zug umbenennen. Auch dabei gilt die Prüfung.
Wenn ein Import ins Leere zeigt
Abschnitt betitelt „Wenn ein Import ins Leere zeigt“Im Reiter Probleme steht Hier nicht gefunden: …, wenn ein Import weder auf ein Skript dieses Mandanten noch auf ein Modul zeigt, von dem sicher ist, dass Python es mitbringt. Zwei harmlose Fälle sehen genauso aus: eine Bibliothek, die es noch nicht gibt, und ein Python-Paket, das auf dieser Anlage installiert ist und das TrakState nicht kennt. Deshalb ist das ein Hinweis und keine Fehlermeldung.