Exemples d'intégration
Ces exemples utilisent Catnip comme DSL embarqué dans une application Python. Le guide d'embedding présente le contrat minimal ; cette page sert uniquement de catalogue exécutable.
Pattern commun
from catnip import Catnip, Context, pass_context
class AppContext(Context):
def __init__(self, data):
super().__init__()
self.globals['data'] = data
def app_function(ctx, value):
return ctx.globals['data'][value]
context = AppContext(data)
context.globals['app_function'] = pass_context(app_function)
engine = Catnip(context=context)
engine.parse(script)
result = engine.execute()
Pour une extension distribuable, la gestion des scopes et l'API complète, voir EXTENDING_CONTEXT.
Catalogue
| Exemple | Dépendance ou objectif |
|---|---|
01_dataframe_dsl.py |
transformations pandas |
02_config_dsl.py |
validation de configuration |
03_etl_pipeline.py |
pipeline ETL |
04_rule_engine.py |
règles métier |
05_report_builder.py |
rapports et métriques |
06_workflow_dsl.py |
orchestration avec état |
07_flask_sandbox.py |
exposition contrôlée dans Flask |
08_jupyter_integration.py |
commandes magiques IPython |
09_streamlit_app.py |
interface Streamlit |
10_pickle_serialization.py |
sérialisation d'AST, scopes et closures |
Chaque fichier se lance directement :
python docs/examples/embedding/04_rule_engine.py
Installe d'abord la dépendance indiquée par l'exemple, par exemple pandas, flask, ipython ou streamlit.
Dix applications hôtes, dix vocabulaires métier, un seul interpréteur. Le contexte change ; la syntaxe remplit le formulaire correspondant.