Giter Club home page Giter Club logo

calculette-impots-exemples's Introduction

calculatrice-impots-exemples

Ce repository contient plusieurs applications basées sur la calculatrice M de l'impôt sur le revenu.

Dossiers

  • dossier calculette_impots_exemples : implémentations en python de la calculatrice
  • dossier graph : représentation des graphes obtenus en graphml (actuellement non maintenu)
  • dossier json : résultats intermédiaires de calculs (actuellement non maintenu)
  • dossier notebooks : exemples d'applications sous la forme de notebooks jupyter

Exécuter le code sur son poste

Il est nécessaire d'installer la dépendance calculette-impots-m-language-parser.

Ce paquet n'est pas publié sur le dépôt PyPI donc pour l'installer il faut passer par git clone.

git clone https://github.com/etalab/calculette-impots-exemples.git
cd calculette-impots-exemples
pip3 install --editable . --user

L'option --user sert sur les systèmes GNU/Linux.

Pour les utilisateurs expérimentés, il est préférable d'utiliser un environnement virtuel. Voir par exemples pew.

Après le lancement du serveur jupyter notebook (exécuter la commande jupyter notebook), les notebook sont accessible par le navigateur, par exemple http://localhost:8888/notebooks/notebooks/diachronie.ipynb

Calculs

Un "moteur d'execution" permet d'exécuter un calcul sur l'arbre des formules, et en appliquant les 20 opérations du langages m. Les moteurs d'exécution sont assez semblables mais ces 20 fonctions peuvent avoir des implémentations différentes :

  • function_set_scalaire définit une implémentation non vectorielle
  • function_set_numpy.py définit une implémentation vectorielle du calcul
  • function_set_gpu.py définit une implémentation pour tensorflow, permettant d'utiliser une carte graphique.

Le notebook exemples.ipynb donne un exemple d'utilisation de chaque moteur d'exécution.

Le notebook diachronie.ipynb donne des exemples d'utilisation basés sur les différentes années d'imposition.

Les résultats peuvent être comparés au simulateur en ligne pis à disposition par la DGFiP : http://www3.finances.gouv.fr/calcul_impot/XXXX/index.htmXXXX est l'année de l'imposition.

Etude du graphe de quelques variables importantes (actuellement non maintenu)

  • Calcul des dépendances d'une dizaine de variables
  • Vérification que le graphe est bien acyclique
  • Détermination d'une ordre tel que qu'un variable ne dépend que de variables d'index inférieur.

Fichiers de sortie :

  • formulas_light.json : formules des variables utilisées dans le calcul
  • constants_light.json : constantes utilisées par le calcul
  • inputs_light.json : variables d'entrée utilisées dans le calcul
  • children_light.json : Dépendances directes pour chaque variables utilisée dans le calcul
  • unknowns_light.json : variables utilisées dans le calcul mais que ne sont pas définies dans le code m.
  • computing_order.json : ordre d'exécution non récursif

Simplification du graphe (actuellement non maintenu)

Environ 200 variables 'communes' sont sélectionées et les autres sont supposées nulle. Cette situation est censée correspondre à la plupart des situations fiscales. Le graphe de calcul est pré-calculé et les nœuds qui ne dépendent plus de variables d'entrée sont éliminés. Le graphe simplifié contrient 1658 nœuds de type formule.

Licences

Les fichiers (json ou autre) dérivés du code M sont soumis à la licence CeCILL v2.1.

Les autres codes sources sont soumis à la licence MIT.

calculette-impots-exemples's People

Contributors

upineau avatar olivierblanc avatar

Stargazers

Maxime Mouchet avatar Julien Bouquillon avatar

Watchers

Thomas Parisot avatar Yohan Boniface avatar James Cloos avatar Pierre Pezziardi avatar  avatar Alexis avatar Michel Blancard avatar Flo avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.