rdassignies / pylegifrance

Librairie python qui simplifie l'interrogation des contenus de legifrance
https://dassignies.law
MIT License
14 stars 5 forks source link
legal-documents legaltech legifrance python


PyLegifrance

Si vous souhaitez accéder directement à une API simplifiée, c'est par ici : https://lab.dassignies.law

Built With

Pydantic v2

https://dassignies.law

Librairie python qui simplifie l'interrogation des contenus de legifrance en créant des fonctions pythons prêtes à l'emploi pour la recherche ou la consultation de textes légaux et réglementaires.
Elle repose sur l'utilisation de pydantic pour gérer les structures de données d'interrogation et de réponse de l'API legifrance. A terme l'intégralité des fonctions de l'API legifrance seront disponibles sous forme de fonctions python.

Démarrage

Pour installer la librairie : pip install git+https://github.com/rdassignies/pylegifrance

Un package depuis PyPi sera accessible ultérieurement.

Pré requis

Pour obtenir votre accès à l'API legifrance (clé API et secret), vous devez vous connecter sur le portail PISTE : https://developer.aife.economie.gouv.fr/

Installation

Vous devez stocker les clés dans des variables d'environnement manuellement ou en utilisant python-dotenv (par exemple): :

  export LEGIFRANCE_CLIENT_ID="..."
  export LEGIFRANCE_CLIENT_SECRET="..."

sinon vous pouvez initialiser le client manuellement

  from pylegifrance import LegiHandler
  client = LegiHandler()
  client.set_api_keys(legifrance_api_key=<votre clé>, legifrance_api_secret=<votre secret>)

Usage

Recherche dans les codes

Pour la liste des codes disponibles : https://www.legifrance.gouv.fr/liste/code?etatTexte=VIGUEUR

from pylegifrance import recherche_CODE

# Obtenir l'article 7 du Code civil
recherche_CODE(code_name="Code civil", search="7")

# Obtenir l'article 7 du Code civil en ne sélectionnant que certains champs spécifiques
recherche_CODE(code_name="Code civil", search="7", formatter=True)

# Obtenir l'intégralité du Code civil
recherche_CODE(code_name="Code civil")

# Rechercher le mot "sûreté" dans les articles du Code civil
recherche_CODE(code_name="Code civil", search="sûreté", champ="ARTICLE")

La fonction recherche_CODE permet la recherche dans le fond CODE (CODE_DATE, CODE_ETAT) d'un article par son numéro, d'un terme de recherche ou d'un code dans son intégralité.

Cette fonction ne récupère que les codes en vigueur à la date actuelle. Par défaut, la facette "DATE_VERSION" est définie sur la date du jour, quel que soit le fond cible (CODE_DATE ou CODE_ETAT).

! Attention : Il est de la responsabilité exclusive de l'utilisateur de vérifier que les informations renvoyées par l'API sont pertinentes et à jour.

Certains paramètres comme "sort" ou "typepagination" ou le type de de recherche ne sont pas encore accessibles (roadmap infra).

Pour plus de détails, se référer à la documentation de la fonction.

(back to top)

Recherche dans le fond LODA (LOI, ORDONNANCE, DECRET, ARRETE)

from pylegifrance import recherche_LODA

# Obtenir l'article 9 de la loi informatique et libertés
recherche_LODA(text_id="78-17", search="9")

# Obtenir l'article 2 de l'ordonnance 58-1100 
recherche_LODA(text_id='58-1100', search="2", nature=["ORDONNANCE"])

# Obtenir l'intégralité de la loi informatique et libertés
recherche_LODA(text_id="78-17")

# Rechercher le mot "autorité" dans tous les contenus de la loi informatique et libertés
recherche_LODA(text_id="78-17", search="autorité", champ="ALL")

# Rechercher le mot "publique" dans le champ "article" du décret n°2023-823
recherche_LODA(text_id='2023-823', search="publique", nature=["DECRET"], champ="ARTICLE")

# Rechercher le mot "autorité" dans tous les contenus de la loi informatique et libertés en ne sélectionnant que certains champs spécifiques (formatter=True)
recherche_LODA(text_id="78-17", search="autorité", champ="ALL", formatter=True)

# Rechercher les arrêtés et les décrets dont la date de signature est entre le 09 août et le 12 août 2023 (format YYYY-MM-DD)
recherche_LODA(date_signature=["2023-08-09", "2023-08-12"], nature=["DECRET", "ARRETE"])

# Recherche l'expression complète "signature électronique" dans le champ ARTICLE des décrets signés entre le 09 août 2017 et le 12 août 2018 

recherche_LODA(search="signature électronique", champ='ARTICLE', type_recherche="TOUS_LES_MOTS_DANS_UN_CHAMP", nature=['DECRET'], date_signature=["2017-08-09", "2018-08-12"])

La fonction recherche LODA permet la recherche dans le fond LODA (LODA_DATE, LODA_ETAT) d'un texte par son numéro, d'un article dans un texte spécifique, ou d'un terme de recherche dans les champs d'un texte. Il est possible de sélectionner le type de textes en modifiant la liste "nature" qui est par défaut ["LOI", "ORDONNANCE", "DECRET", "ARRETE"].

Cette fonction ne récupère que les textes en vigueur à la date actuelle. Par défaut, la facette "DATE_VERSION" est définie sur la date du jour, et les facettes "TEXT_LEGAL_STATUS" et "ARTICLE_LEGAL_STATUTS" sont définies sur "VIGEUR", quel que soit le fond cible (LODA_DATE ou LODA_ETAT).

! Attention : Il est de la responsabilité exclusive de l'utilisateur de vérifier que les informations renvoyées par l'API sont pertinentes et à jour.

Certains paramètres comme "sort" ou "typepagination" ou le type de de recherche ne sont pas encore accessibles (roadmap infra).

Pour plus de détails, se référer à la documentation de la fonction.

Roadmap

See the open issues for a full list of proposed features (and known issues).

(back to top)

License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

Contact

Raphael d'Assignies - email: rdassignies AT protonmail.ch

https://dassignies.law

Project Link: https://github.com/rdassignies/pylegifrance

(back to top)