Anleitung zur Migration auf Skripte in Skoor-8.1

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

Skripttypen

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

Allgemeine Informationen

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

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

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

  3. Wird dem Skript eine Datei übergeben, erfolgt dies als Umgebungsvariable SKOOR_SOURCE_FILE.

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 sein, vorzugsweise im Stammverzeichnis.

  3. Erforderliche Abhängigkeiten sollten in einer `pyproject.toml`-Datei 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. Beispielsweise funktioniert das Hinzufügen von „pyscopg2“ zu pyproject.toml 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-Datei 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.