دليل الترحيل إلى البرامج النصية في سكور-8.1

يساعد هذا الدليل في تحويل المحولات الحالية إلى البرامج النصية الجديدة التي تم تقديمها في SKOOR-8.1

أنواع البرامج النصية

يتم دعم أنواع البرامج النصية التالية (Python، Talend، مخصص/Shell).

معلومات عامة

تنطبق هذه التغييرات/الملاحظات على جميع أنواع البرامج النصية.

  1. يمكن حفظ متغيرات البيئة في ملف .env الموجود في المجلد الجذر.

  2. لم يعد من الضروري تحميل ملف المصدر لبدء المهمة.

  3. إذا تم تمرير ملف إلى البرنامج النصي، فسيتم تمريره كمتغير بيئة SKOOR_SOURCE_FILE.

لا تزال البرامج النصية لـ Talend تتوقع وجود «sourceFile» كسمة، لذا لم يتم تغييرها.

# 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

  1. بالنسبة لبرامج Python النصية، لم تعد هناك حاجة لتغليف ملف Python النصي (main.py) ببرنامج نصي shell (<converters_name>_run.sh).

  2. يجب أن تكون نقطة الدخول هي main.py ويفضل أن تكون في الجذر.

  3. يجب تعريف التبعيات المطلوبة في ملف pyproject.toml

يُستخدم Poetry لإدارة التبعيات.

لإضافة تبعيات جديدة إلى المشروع، قم بتضمين الحزمة المطلوبة باستخدام مواصفات التبعيات المدعومة من Poetry.

لا يتطابق اسم الحزمة المستوردة في نص Python دائمًا مع اسم الحزمة المطلوب للتنزيل. على سبيل المثال، لا تعمل إضافة pyscopg2 إلى pyproject.toml لأن اسم الحزمة الصحيح هو psycopg2-binary. استخدم PyPI للعثور على أسماء الحزم الصحيحة.

يمكن استخدام المثال التالي لإنشاء ملف pyproject.toml أولي

[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

لا توجد حاجة لإجراء أي تغييرات في الترحيل على محولات Talend.