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.