Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Écrire la loi en Python

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →

Écrire la loi en Python

Le projet OpenFisca propose depuis 2011 un accès sous forme de code source aux formules de calcul décrites dans les textes des lois socio-fiscales.

Source des slides : https://github.com/openfisca/communication/tree/master/docs/PyConFR-2016

Avatar for Christophe Benz

Christophe Benz

October 16, 2016

Other Decks in Programming

Transcript

  1. Écrire la loi en Python PyCon France 2016 à Rennes

    openfisca.fr – @OpenFisca Christophe Benz 1 / 26
  2. Les problèmes en 2011 les calculateurs sont éparpillés accessibles ou

    pas – mais propriétaires les démarches sont morcelées les économistes sont coincés 4 / 26
  3. Un calculateur une situation en entrée évaluation de formules de

    calcul un résultat en sortie simulateur – calculateur 6 / 26
  4. Exemple simplifié d e f i m p o t

    ( s a l a i r e ) : r e t u r n s a l a i r e * 0 . 3 9 / 26
  5. Exemple simplifié d e f i m p o t

    ( s a l a i r e ) : r e t u r n s a l a i r e * 0 . 3 d e f a l l o c a t i o n s ( s a l a i r e ) : r e t u r n 1 0 0 0 i f s a l a i r e < 1 0 0 0 0 e l s e 0 9 / 26
  6. Exemple simplifié d e f i m p o t

    ( s a l a i r e ) : r e t u r n s a l a i r e * 0 . 3 d e f a l l o c a t i o n s ( s a l a i r e ) : r e t u r n 1 0 0 0 i f s a l a i r e < 1 0 0 0 0 e l s e 0 d e f r e v e n u _ d i s p o n i b l e ( s a l a i r e ) : r e t u r n s a l a i r e - i m p o t ( s a l a i r e ) + a l l o c a t i o n s ( s a l a i r e ) 9 / 26
  7. Exemple réel c l a s s r e v

    d i s p ( V a r i a b l e ) : c o l u m n = F l o a t C o l ( d e f a u l t = 0 ) e n t i t y _ c l a s s = M e n a g e s l a b e l = u " R e v e n u d i s p o n i b l e d u m é n a g e " d e f f u n c t i o n ( s e l f , s i m u l a t i o n , p e r i o d ) : p e r i o d = p e r i o d . s t a r t . p e r i o d ( ' y e a r ' ) . o f f s e t ( ' f i r s t - o f ' ) r e v _ t r a v _ h o l d e r = s i m u l a t i o n . c o m p u t e ( ' r e v _ t r a v ' , p e r i o d ) p e n _ h o l d e r = s i m u l a t i o n . c o m p u t e ( ' p e n ' , p e r i o d ) r e v _ c a p _ h o l d e r = s i m u l a t i o n . c o m p u t e ( ' r e v _ c a p ' , p e r i o d ) p s o c _ h o l d e r = s i m u l a t i o n . c o m p u t e ( ' p s o c ' , p e r i o d ) p p e _ h o l d e r = s i m u l a t i o n . c o m p u t e ( ' p p e ' , p e r i o d ) i m p o = s i m u l a t i o n . c a l c u l a t e ( ' i m p o ' , p e r i o d ) p e n = s e l f . s u m _ b y _ e n t i t y ( p e n _ h o l d e r ) p p e = s e l f . c a s t _ f r o m _ e n t i t y _ t o _ r o l e ( p p e _ h o l d e r , r o l e = V O U S ) p p e = s e l f . s u m _ b y _ e n t i t y ( p p e ) p s o c = s e l f . c a s t _ f r o m _ e n t i t y _ t o _ r o l e ( p s o c _ h o l d e r , r o l e = C H E F ) p s o c = s e l f . s u m _ b y _ e n t i t y ( p s o c ) r e v _ c a p = s e l f . s u m _ b y _ e n t i t y ( r e v _ c a p _ h o l d e r ) r e v _ t r a v = s e l f . s u m _ b y _ e n t i t y ( r e v _ t r a v _ h o l d e r ) r e t u r n p e r i o d , r e v _ t r a v + p e n + r e v _ c a p + p s o c + p p e + i m p o 10 / 26
  8. Composants logiciels moteur de calcul : OpenFisca-Core législation Française :

    OpenFisca-France API Web HTTP+JSON api.openfisca.fr ou auto-hébergement 19 / 26
  9. Fiabilisation par les tests (non-régression) par comparaison entre calculateurs génération

    aléatoire de ~2000 familles les écarts apparaissent 21 / 26
  10. Appel à la contribution apportez votre savoir sur la loi

    utilisez OpenFisca pour un article implémentez des formules écrivez des applications proposez vos idées ! 24 / 26
  11. L'État tend à plus d'ouverture La société civile en bénéficie

    Un outil neutre pour un débat informé 25 / 26