Skip to content

Integrer une nouvelle aide dans mes aides : Aspects techniques

Thomas Guillet edited this page Feb 1, 2022 · 9 revisions

Pré-requis

  • Machine Unix de préférence (Mac ou Linux)
    • Il est possible d'utiliser une machine virtuelle.
    • D'expérience, le développement sous Windows peut poser un certain nombre de difficultés, qui, si elles ne sont pas insolubles en général, ralentissent significativement les développements.
  • Python 3.7
    • python3 --version ou python3.7 --version doit renvoyer Python 3.7.x.
  • Virtualenv, disponible dans le paquet python3-virtualenv
    • virtualenv --version doit renvoyer x.y.z
  • Git
  • Un compte GitHub

Installation d'un environnement virtuel (optionnel, recommandé)

Un virtualenv est un outil permettant de créer un environnement python spécifique et compartimenté pour un projet. Il évite les incompatibilités entre différents projets, et simplifie la gestion des permissions lors de l'installation de packages.

Dans un dossier de travail, exécutez la commande suivante :

virtualenv .venv --python=python3.7

Chaque fois que vous souhaitez travailler sur Openfisca, exécutez au préalable, dans votre dossier de travail, la commande :

source .venv/bin/activate

Installation de l'extension pour les partenariats

Pour ne pas surcharger le dépôt openfisca-france, qui ne répertorie que les aides légales, les aides locales extra-légales sont intégrés à des extensions indépendantes qui peuvent être chargés au besoin dans une instance Openfisca.

Nous avons commencé par créer une extension par partenaire mais cela s'est avérée peu pratique. Désormais nous avons regroupé les aides extra-légales dans une extension seule.

Exécutez les commandes suivantes dans votre répertoire de travail :

git clone [email protected]:openfisca/openfisca-france-local.git
cd openfisca-france-local
pip install --editable .

Ces commandes permettent d'installer l'extension. Une fois l'installation terminée, vous devriez pouvoir la tester avec les commandes suivantes :

openfisca test tests/test_dispositif.yml --country-package openfisca_france --extension openfisca_france_local

Le résultat de cette commande devrait ressembler à ça

libyaml is not installed in your environment. This can make OpenFisca slower to start. Once you have installed libyaml, run 'pip uninstall pyyaml && pip install pyyaml --no-cache-dir' so that it is used in your Python environment.

 libyaml is not installed in your environment, this can make your test suite slower to run. Once you have installed libyaml, run `pip uninstall pyyaml && pip install pyyaml --no-cache-dir` so that it is used in your Python environment.
=================== test session starts ===================
platform linux -- Python 3.7.4, pytest-5.1.2, py-1.8.0, pluggy-0.12.0
rootdir: /home/thomas/test/openfisca-france-local
collected 1 item                                          

tests/test_dispositif.yml .

==================== 1 passed in 0.01s ====================

Rédaction des formules et tests

Vous trouverez un exemple d'aide dans le fichier communes/alfortville/noel_enfants.py, ainsi que le fichier de test associé, tests/communes/alfortville/noel_enfants.yml. Les paramètres nécessaires au calcul se trouvent quant à eux dans le fichier openfisca_france_local/parameters/communes/alfortville.yml.

Pour ajouter des formules et tests, créez simplement des fichiers .py et .yamlà l'intérieur du repertoire.

Clone this wiki locally