msaSDK - Kit de développement d'architecture de microservices basé sur FastAPI
Pour créer des PoC, des MVP, des API avec CRUD et des tableaux de bord de manière rapide et cohérente.
Construit sur FastAPI, SQLModel, SQLAlchemy, Amis et de nombreuses autres bibliothèques à l'épreuve des balles.
Documentation : Documentation du SDK MSA (http://msa.u2d.ai/)
Créez plus rapidement des applications distribuées connectées : prêt pour Dapr.
Cohérence : Avec parfois des dizaines ou des centaines de Micro Services, le SDK facilite le contrôle de version et fournit une base Dapr stable.
Haute performance : Basé sur FastAPI. Profitez de tous les avantages.
Planificateur intégré : définissez les tâches du planificateur avec des horaires et des dépendances en langage naturel.
Interface utilisateur du tableau de bord intégré : tableau de bord activé par l'administration et l'authentification facultative avec les formulaires CRUD.
CRUD intégré : génère des formulaires de routeur CRUD et de tableau de bord d'administration basés sur SQLModel et SQLAlchemy.
Integrated Abstract Filesystem : API Agnostic Abstract Filesystem qui permet d'utiliser S3, GCS, Azure Datalake, votre FS local, Youtube etc.
Interface utilisateur WEB justpy intégrée : framework Web justpy UI intégré à MSAAPI, qui permet l'ajout simple d'itinéraires aux fonctions des pages Web justpy.
Dict intégré avec stockage backend : utilisez Dict avec un stockage backend comme Redis.
Signaux intégrés : utiliser et gérer les signaux et les tâches.
Gestion intégrée des fonctionnalités : gestion des commutateurs de fonctionnalités avec conditions.
API rapide
SQLModel combiné avec SQLAlchemy et Pydantic, avec toutes leurs fonctionnalités.
msaUtils : utilitaires généraux pour les microservices basés sur FastAPI comme Profiler, Scheduler, Sysinfo, Healtcheck, Error Handling etc.
msaJustPyUI : version JustPy adaptée de FastAPI pour l'intégration du framework Web justpy UI à msaAppService, qui permet l'ajout simple de routes aux fonctions des pages Web justpy.
msaCRUD : SQLModel/SQLAlchemy/FastAPI - DB Object CRUD/API Automation
msaFeature : Gestion des changements de fonctionnalités avec conditions
msaServer : Helper & Wrapper autour d'Uvicorn/Gunicorn pour les applications basées sur FastAPI
msaSignal : Signaux/Evénements pour Starlette/FastAPI.
msaDocModels : # Modèles et schémas Pydantic de documents MSA, utilisés pour stocker les résultats Parser, NLP, NLU et AI pour les documents traités
msaStorageDict : Dict avec un backend de stockage comme Redis ou Zookeeper
# -*- encodage : utf-8 -*-"""Copyright (c) 2022 - U2D.ai / S.Welcker"""from typing import Facultatif, Listfrom sqlmodel import SQLModelfrom msaSDK.admin.utils.fields import Fieldfrom msaSDK .models.service import get_msa_app_settingsfrom msaSDK.service import MSAAppasync def test_timer_min():app.logger.info("MsaSDK Test Timer Async Every Minute")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 : Facultatif[int] = Field(default=Aucun, Primary_key=True, nullable=False)titre : str = Field(title='ArticleTitle', max_length=200)description : Facultatif[str] = Field(default='', title='ArticleDescription', max_length=400)statut : bool = Field(Aucun, title='status')content : str = Field(title='ArticleContent')class TestCategory(SQLModel, table=True):__table_args__ = {'extend_existing' : True}id : Facultatif[int] = Field(default=None, Primary_key=True, nullable=False)title : str = Field(title='ArticleTitle', max_length=200 )description : Facultatif[str] = Champ(default='', title='ArticleDescription', max_length=400)status : bool = Field(Aucun, 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]"}, licence_info={" name": "MIT", "url": "https://opensource.org/licenses/MIT", })app.scheduler.task("toutes les 1 min", func=test_timer_min )app.scheduler.task("toutes les 5 secondes", func=test_timer_five_sec )app.logger.info("Initialisé " + settings.title + " " + settings.version)@app.on_event("startup")async def startup ():app.logger.info("Démarrage propre à msaSDK MSAUIEvent")#app.mount_site()@app.on_event("shutdown")async def shutdown():app.logger.info("msaSDK Own Shutdown MSAUIEvent")if __name__ == '__main__':pass
Ouvrez http://127.0.0.1:8090/admin/
dans votre navigateur :
Ouvrez http://127.0.0.1:8090/admin/auth/form/login
dans votre navigateur :
Ouvrez http://127.0.0.1:8090/#/admin/docs
dans votre navigateur :
Ouvrez http://127.0.0.1:8090/#/admin/profiler
dans votre navigateur :
msaSDK
Basé sur l'open source MIT
et gratuit à utiliser, il est gratuit pour un usage commercial, mais veuillez afficher/répertorier les informations de droits d'auteur sur msaSDK quelque part.
Nous utilisons mkdocs et mkdocsstring. La référence de code et l'entrée de navigation sont créées virtuellement par le script python déclenché /docs/gen_ref_pages.py pendant que mkdocs
serve
ou build
est exécuté.
PDF Export utilise principalement weasyprint, si vous obtenez des erreurs ici, s'il vous plaît. vérifiez la documentation. L'installation fait partie du msaSDK, donc cela devrait aller.
Nous pouvons désormais tester et visualiser notre documentation en utilisant :
mkdocs serve
Créer un site statique :
mkdocs build
Construire:
python setup.py sdist
Publier sur pypi :
twine upload dist/*