Guida alla migrazione agli Script in Skoor-8.1

Questa guida aiuta a trasferire i convertitori esistenti ai nuovi script introdotti in SKOOR-8.1

Tipi di script

Sono supportati i seguenti tipi di script (Python, Talend, personalizzati/Shell).

Informazioni generali

Queste modifiche/note sono valide per tutti i tipi di script.

  1. Le variabili d’ambiente possono essere salvate in un file .env nella directory principale.

  2. Non è più necessario caricare un file sorgente per avviare un processo.

  3. Se viene passato un file allo script, questo verrà passato come variabile d'ambiente SKOOR_SOURCE_FILE.

Gli script Talend continuano a richiedere sourceFile come attributo, pertanto non sono stati modificati.

# 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"

Script Python

  1. Per gli script Python, non è più necessario racchiudere il file Python main.py in uno script di shell denominato <converters_name>_run.sh.

  2. Il punto di ingresso dovrebbe essere il file `main.py`, preferibilmente nella directory radice.

  3. Le dipendenze richieste devono essere definite in un file `pyproject.toml`.

Per la gestione delle dipendenze si utilizza Poetry.

Per aggiungere nuove dipendenze al progetto, includere il pacchetto richiesto utilizzando la specifica delle dipendenze supportata da Poetry.

Il nome di un pacchetto importato in uno script Python non sempre corrisponde al nome del pacchetto necessario per il download. Ad esempio, l’aggiunta di `pyscopg2` al file `pyproject.toml` non funziona, poiché il nome corretto del pacchetto è `psycopg2-binary`. Utilizzare PyPI per individuare i nomi corretti dei pacchetti.

L'esempio seguente può essere utilizzato per creare un file `pyproject.toml` iniziale

[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"

Convertitori Talend

Non sono necessarie modifiche di migrazione ai convertitori Talend.