msaSDK - مجموعة أدوات تطوير بنية الخدمات الصغيرة المستندة إلى FastAPI
لإنشاء PoC وMVP وAPI مع CRUD ولوحات المعلومات بشكل سريع ومتسق.
يمكنك البناء على FastAPI وSQLModel وSQLAlchemy وAmis والعديد من المكتبات الأخرى المقاومة للرصاص.
الوثائق : وثائق MSA SDK (http://msa.u2d.ai/)
إنشاء تطبيقات موزعة متصلة بشكل أسرع : جاهز لـ Dapr.
الاتساق : في بعض الأحيان، مع 10 أو 100 ثانية من الخدمات الصغيرة، تساعد SDK على التحكم السهل في الإصدار وتوفر أساس Dapr مستقرًا.
الأداء العالي : يعتمد على FastAPI. استمتع بجميع المزايا.
المجدول المتكامل : تحديد مهام المجدول مع توقيتات اللغة الطبيعية وتبعياتها.
واجهة مستخدم لوحة المعلومات المتكاملة : لوحة معلومات ممكّنة للمسؤول والمصادقة الاختيارية مع نماذج CRUD.
CRUD المتكامل : يُنشئ نماذج لوحة تحكم جهاز التوجيه CRUD والمسؤول استنادًا إلى SQLModel وSQLAlchemy.
نظام ملفات مجردة متكامل : واجهة برمجة تطبيقات نظام الملفات المجردة اللاأدريية التي تسمح باستخدام S3 وGCS وAzure Datalake وFS المحلي وYoutube وما إلى ذلك.
واجهة مستخدم ويب justpy المدمجة : إطار ويب واجهة المستخدم justpy المتكامل إلى MSAAPI، والذي يسمح بإضافة مسارات بسيطة إلى وظائف صفحات الويب justpy.
الإملاء المتكامل مع واجهة التخزين الخلفية : استخدم Dict مع وحدة التخزين الخلفية مثل redis.
الإشارات المتكاملة : استخدام الإشارات والمهام والتعامل معها.
إدارة الميزات المتكاملة : إدارة تبديل الميزات مع الشروط.
FastAPI
تم دمج SQLModel مع SQLAlchemy وPydantic، بكل ميزاتهما.
msaUtils : أدوات مساعدة عامة للخدمات الصغيرة المستندة إلى FastAPI مثل Profiler وScheduler وSysinfo وHealtcheck ومعالجة الأخطاء وما إلى ذلك.
msaJustPyUI : قام FastAPI بتعديل إصدار JustPy لدمج Justpy UI Web Framework مع msaAppService، والذي يسمح بإضافة مسارات بسيطة إلى وظائف صفحات الويب justpy.
msaCRUD : SQLModel/SQLAlchemy/FastAPI - أتمتة كائن قاعدة البيانات CRUD/API
msaFeature : ميزة إدارة التبديل مع الشروط
msaServer : مساعد ومغلف حول Uvicorn/Gunicorn للتطبيقات المستندة إلى FastAPI
msaSignal : إشارات/أحداث لـ Starlette/FastAPI.
msaDocModels : # نماذج ومخططات مستند MSA، تُستخدم لتخزين نتائج Parser وNLP وNLU وAI للمستندات المعالجة
msaStorageDict : يمكنك الإملاء باستخدام واجهة تخزين خلفية مثل redis أو Zookeeper
# -*- الترميز: utf-8 -*-"""حقوق الطبع والنشر (c) 2022 - U2D.ai / S.Welcker"""من الكتابة استيراد اختياري، Listfrom sqlmodel import SQLModelfrom msaSDK.admin.utils.fields import Fieldfrom msaSDK .models.service استيراد get_msa_app_settingsfrom msaSDK.service استيراد MSAAppasync def test_timer_min():app.logger.info("مؤقت اختبار msaSDK يتزامن كل دقيقة")def test_timer_five_sec():app.logger.info("msaSDK Test Timer Sync 5 Second")class TestArticle(SQLModel, table=True):__table_args__ = {'extend_existing': True}id: اختياري[int] = حقل (افتراضي=لا شيء، Primary_key=True, nullable=False)title: str = Field(title='ArticleTitle', max_length=200)description: اختياري[str] = Field(default='', title='ArticleDescription', max_length=400)الحالة: bool = Field(None, title='status')content: str = Field(title='ArticleContent')class TestCategory(SQLModel, table=True):__table_args__ = {'extend_existing': True}id: اختياري[int] = Field(default=None, Primary_key=True, nullable=False)title: str = Field(title='ArticleTitle' , max_length=200)الوصف: اختياري[str] = الحقل(افتراضي='', العنوان='وصف المقال', max_length=400)الحالة: bool = Field(None, title='status')content: str = Field(title='ArticleContent')get_msa_app_settings.cache_clear()settings = get_msa_app_settings()settings.title = "u2d.ai - MSA /SDK MVP"settings.version = "0.0.1"settings.debug = Trueapp = MSAApp(settings=settings, auto_mount_site=True, sql_models=[TestArticle, TestCategory], contact={"name": "msaSDK", "url": "http://u2d.ai", "email": " [email protected]"}, License_info={"name": "MIT", "url": "https://opensource.org/licenses/MIT", })app.scheduler.task("كل دقيقة واحدة"، func=test_timer_min )app.scheduler.task("كل 5 ثوانٍ"، func=test_timer_five_sec )app.logger.info("تمت التهيئة " + settings.title + " " + settings.version)@app.on_event("startup") غير متزامن عند بدء التشغيل():app.logger.info("msaSDK حدث بدء التشغيل الخاص بـ MSAUIE")#app.mount_site()@app.on_event("shutdown")async def Shutdown():app.logger.info("msaSDK Own Shutdown MSAUIEvent")if __name__ == '__main__':pass
افتح http://127.0.0.1:8090/admin/
في متصفحك:
افتح http://127.0.0.1:8090/admin/auth/form/login
في متصفحك:
افتح http://127.0.0.1:8090/#/admin/docs
في متصفحك:
افتح http://127.0.0.1:8090/#/admin/profiler
في متصفحك:
msaSDK
استنادًا إلى مصدر مفتوح MIT
ومجاني الاستخدام، فهو مجاني للاستخدام التجاري، ولكن يرجى إظهار/إدراج معلومات حقوق الطبع والنشر حول msaSDK في مكان ما.
نحن نستخدم mkdocs وmkdocsstring. يتم إنشاء مرجع الكود وإدخال التنقل افتراضيًا بواسطة برنامج python النصي الذي تم تشغيله /docs/gen_ref_pages.py أثناء تنفيذ serve
mkdocs
أو build
.
يستخدم تصدير PDF بشكل أساسي weasyprint، إذا ظهرت لك بعض الأخطاء هنا، فيرجى الاتصال بنا. تحقق هناك الوثائق. يعد التثبيت جزءًا من msaSDK، لذا يجب أن يكون هذا جيدًا.
يمكننا الآن اختبار وعرض وثائقنا باستخدام:
mkdocs serve
بناء موقع ثابت:
mkdocs build
يبني:
python setup.py sdist
النشر إلى pypi:
twine upload dist/*