Anleitung zur Migration auf Skripte in Skoor-8.1

Diese Anleitung hilft Ihnen dabei, bestehende Konverter auf die neuen Skripte umzustellen, die in SKOOR-8.1 eingeführt wurden

Skripttypen

Die folgenden Skripttypen werden unterstützt (Python, Talend, Benutzerdefiniert/Shell).

Allgemeine Informationen

Diese Änderungen/Hinweise gelten für alle Skripttypen.

  1. Umgebungsvariablen können in einer Datei „.env“ im Stammverzeichnis gespeichert werden.

  2. Das Hochladen einer Quelldatei ist zum Starten eines Jobs nicht mehr erforderlich.

  3. Wird dem Skript eine Datei übergeben, wird diese als Umgebungsvariable „SKOOR_SOURCE_FILE“ weitergeleitet.

Talend-Skripte erwarten weiterhin das Attribut „sourceFile“, daher wurden sie nicht geändert.

# Replace source_file = getArg("sourceFile") with the following 

#IN PYTHON
source_file = os.environ.get('SKOOR_SOURCE_FILE')

#IN SHELL 
source_file="$SKOOR_SOURCE_FILE"

Python-Skripte

  1. Bei Python-Skripten ist es nicht mehr erforderlich, die Python-Datei „main.py“ mit einem Shell-Skript „<converters_name>_run.sh“ zu umschließen.

  2. Der Einstiegspunkt sollte „main.py“ lauten und sich vorzugsweise im Stammverzeichnis befinden.

  3. Erforderliche Abhängigkeiten sollten in einer „pyproject.toml“ definiert werden

Für das Abhängigkeitsmanagement wird Poetry verwendet.

Um dem Projekt neue Abhängigkeiten hinzuzufügen, fügen Sie das erforderliche Paket unter Verwendung der von Poetry unterstützten Abhängigkeitsspezifikation ein.

Der Name eines in einem Python-Skript importierten Pakets stimmt nicht immer mit dem für den Download erforderlichen Paketnamen überein. Das Hinzufügen von „pyscopg2“ zu „pyproject.toml“ funktioniert beispielsweise nicht, da der korrekte Paketname „psycopg2-binary“ lautet. Verwenden Sie PyPI, um die korrekten Paketnamen zu finden.

Das folgende Beispiel könnte zum Erstellen einer ersten „pyproject.toml“ verwendet werden

[tool.poetry]
name = "PROJECT_NAME"
version = "0.1.0"
description = ""
authors = ["SKOOR GmbH <info@skoor.com>"]
package-mode = false

[tool.poetry.dependencies]
python = "^3.9"
et-xmlfile= "^2.0.0"
greenlet= "^3.1.1"
numpy= "^2.0.2"
openpyxl= "^3.1.5"
pandas= "^2.2.3"
psycopg2-binary= "^2.9.10"
python-dateutil= "^2.9.0.post0"
python-dotenv= "^1.0.1"
pytz= "^2024.2"
six= "^1.16.0"
sqlalchemy= "^2.0.36"
typing-extensions= "^4.12.2"
tzdata= "^2024.2"
requests= "^2.32.3"
cachetools= "^5.5.0"
jsonschema= "^4.23.0"
multicorn= "^0.1.0"

[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

Talend-Konverter

Für Talend-Konverter sind keine Migrationsänderungen erforderlich.