For the complete documentation index, see llms.txt. This page is also available as Markdown.

مرجع السكربتات

تُوثّق هذه الصفحة واجهة برمجة التطبيقات العامة (public headless scripting API) المعروضة عبر حزمة Python المسماة studio.

تركز الوثائق على الرموز العامة التالية:

  • StudioScenario

  • install_logging_event

  • enable_logging_stdout

  • disable_logging_stdout

إذا لم تقُم بتشغيل سيناريو في الوضع headless مسبقًا، فاقرأ قسم Headless أولاً ثم عد إلى هنا للحصول على تفاصيل الـ API.


الاستيراد

كل واجهات الـ API الموثقة هنا يتم تصديرها من الحزمة العلوية studio:

from studio import (
	StudioScenario,
	install_logging_event,
	enable_logging_stdout,
	disable_logging_stdout,
)

تعريفات الأنواع (Type Stubs)

السطح العام للعمل في الوضع headless يمكن إيجاده كالتالي:


StudioScenario

StudioScenario هو نقطة الدخول الرئيسية لعمليات تحميل وتشغيل ملف .pmod بدون واجهة سطح المكتب (desktop UI).

المُنشئ

verification_code

تُستخدم هذه القيمة لتكوين الترخيص (licensing) للتنفيذ في الوضع headless.

الأنماط الشائعة:

  • جهاز محلي / خادم: مرّر سلسلة رمز التحقق (verification code).

  • Docker / CI: قم بتركيب ملف الترخيص داخل الحاوية ومرّر مسار الملف (path) كـ verification_code.


دورة الحياة النموذجية

في معظم السكربتات ستقوم بالخطوات التالية:

  1. إنشاء السيناريو (StudioScenario(...))

  2. تحميل ملف .pmod (load_scenario(...))

  3. تشغيله (run(...))

  4. التنظيف (cleanup())

cleanup() مهم في العمليات طويلة التشغيل (خدمات، مهام دفعية) لتحرير الذاكرة وإعادة ضبط حالة وقت التشغيل.


تحميل ملف .pmod

  • تُرجع StudioScenario عند النجاح.

  • تُرجع None إذا كان المسار غير موجود.

إذا كان السيناريو يشير إلى موارد خارجية، فاحفظ نفس هيكل المجلدات المستخدم على سطح المكتب (راجع قسم “Transferring .pmod files”).


تشغيل سيناريو

يتحقق وقت التشغيل من أن عدد الوسائط (arguments) يطابق عدد مداخل السيناريو.

إذا كان ملف .pmod يحتوي على:

  • 0 مدخلات: استدعِ scenario.run() أو scenario.run(())

  • مدخل واحد: استدعِ scenario.run((value,))

  • مدخلان: استدعِ scenario.run((value1, value2))


مزيد من أساليب StudioScenario

يغطي هذا القسم طرقًا عامة إضافية يمكن استخدامها للأتمتة والتصحيح.

التحميل بدون الفشل عند عدم وجود موارد

إذا كنت تنقل سيناريوهات بين آلات/حاويات وبعض الموارد قد تكون غير متاحة، يمكنك التحميل بتسامح أكبر:

التحميل / الحفظ

العقد المخصصة (Custom nodes)

تحميل وحدات Python للعقد المخصصة من مجلد:

اسم السيناريو

المنافذ (مدخلات/مخرجات السيناريو)

يمكنك استعلام أسماء منافذ الإدخال/الإخراج:

تشغيل خادم ويب (اختياري)

إذا رغبت في كشف مشغل السيناريو عبر HTTP:

الأحداث (Events)

تثبيت ردود نداء (callbacks) حول دورة حياة تنفيذ السيناريو:


مساعدات السجل (Logging Helpers)

يمتلك AugeLab Studio نظام سجل وقت تشغيل يُستخدم بواسطة البلوكات والسيناريوهات. في الوضع headless عادةً تريد أحد الخيارات التالية:

  • طباعة السجلات إلى stdout أثناء التطوير

  • إعادة توجيه السجلات إلى نظام التسجيل الخاص بك

تلك المساعدات عامة (global) وتؤثر على مسجل وقت التشغيل المستخدم بواسطة سيناريوهاتك في الوضع headless.


enable_logging_stdout()

يفعّل طباعة سجلات وقت التشغيل بشكل "موجَّه" إلى stdout.

استخدم هذا عندما تريد رؤية سجلات البلوكات/السيناريو في الكونسول:


disable_logging_stdout()

يعطّل طباعة سجلات وقت التشغيل إلى stdout.

مفيد عندما:

  • تستخدم install_logging_event(...) وتريد تجنب تكرار السجلات

  • تريد إخراجًا نظيفًا (فقط مخرجات print(...) أو سجلك الخاص)


install_logging_event(event: Callable[[str], None])

يثبت رد نداء يستقبل رسائل السجل في وقت التشغيل.

هذا أسهل طريقة لدمج سجلات AugeLab في إطار تسجيل الخاص بك.

StudioScenario.install_logging_hook(hook, level=0)

إذا فضّلت تثبيت hook على مستوى السيناريو مع تصفية بمستوى محدد، استخدم:


أنماط موصى بها

1) متغير بيئي لترخيص التشغيل

بالنسبة للسكربتات التي تعمل في بيئات مختلفة (محلي مقابل CI مقابل Docker)، تمرير verification_code عبر متغير بيئي يجعل الشيفرة قابلة للنقل:

2) التنظيف دائمًا باستخدام try/finally

آخر تحديث