Metadata-Version: 2.3
Name: data-france
Version: 0.15.0
Summary: Paquet agrégeant des données administratives publiques pour en rendre l'utilisation facile.
License: GNU-GPL 3.0
Author: Salomé Cheysson
Author-email: salome@cheysson.fr
Requires-Python: >=3.10,<4.0
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: License :: Other/Proprietary License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Requires-Dist: django (>=4.2,<5.0)
Requires-Dist: django-countries (>=7.3.1)
Requires-Dist: openpyxl (>=3.1.5,<4.0.0)
Requires-Dist: psycopg[binary] (>=3.2.6,<4.0.0)
Project-URL: Homepage, https://github.com/aktiur/data-france
Description-Content-Type: text/x-rst

data-france
=============

Un ensemble de données administratives et géographiques pour la France. Elle double comme application Django
pour permettre l'intégration aisée de ces données.


Installer le paquet
-------------------

Installez ce paquet avec pip::

  pip install data-france


Importer les données
--------------------

Pour importer les données, appliquez les migrations et utilisez la commande de management::

  ./manage.py update_data_france


Modèles
--------

Circonscriptions administratives et collectivités locales
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

L'application django comporte les modèles suivants :

* `Commune`

  * Inclut les communes délégués / communes associées / arrondissements PLM /
    secteurs électoraux PLM
  * Les différents types d'entités sont différenciés par le champ `type`

* `EPCI`

  * Il s'agit des EPCI à fiscalité propre : CA, CC, CU et métropoles
  * N'inclut pas encore les EPT du Grand Paris

* Canton

  * N'inclut pas encore les géométries

* `Departement` et `Region` pour les départements et régions comme
  circonscriptions administratives de l'État

* `CollectiviteDepartementale` et `CollectiviteRegionale` pour les départements
  et régions comme collectivités territoriales :

  * La métropole de Lyon (aux compétences départementales) est référencée comme
    une collectivité départementale ;
  * les collectivités territoriales uniques (par exemple l'Assemblée de Corse)
    sont référencées comme des collectivités régionales (cela inclut, de façon
    contre-intuitive, le département de Mayotte) ;
  * À noter que comme le conseil de Paris est déjà référencé comme une
    `Commune`, il n'est pas référencé de nouveau comme collectivité
    départementale.

* Les codes postaux

* Circonscriptions législatives

* Cisconscriptions consulaires

Toutes ces entités (sauf les codes postaux, les cantons, les circonscriptions
consulaires, et les collectivités régionales, dont la géométrie est
systématiquement celle de la région correspondante) viennent avec une géometrie
et les articles + charnière.

Élu·es
~~~~~~

Les fichiers suivants du répertoire national des élus sont importés et
disponibles sous forme de modèle Django :

* Les élus municipaux

* Les députés


Vues JSON
----------

Recherche de communes
~~~~~~~~~~~~~~~~~~~~~

Une vue de recherche renvoyant les résultats en JSON est disponible, à l'URL
`chercher/communes/` si vous importez `data_france.urls` (en utilisant le
paramètre GET `q`). Il est possible d'obtenir les résultats au format geojson en
ajoutant le paramètre GET `geojson` à une valeur non vide.

Recherche de circonscriptions consulaires
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Une vue de recherche des circonscriptions consulaires, à l'adresse
`circonscriptions-consulaires/chercher/`, en utilisant le paramètre `q`.

Des vues d'affichage par code
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Des vues existent pour afficher une des entités suivantes en la référençant par son code INSEE usuel :

* Les communes, `communes/par-code/`
* Les epci, `epci/par-code/`

  * Il faut utiliser les codes SIREN

* Les départements, `departements/par-code/`
* Les régions, `regions/par-code/`
* Les codes postaux, `code-postal/par-code/`
* Les collectivités de niveau départemental, `collectivite-departementale/par-code/`

  * Le code du département considéré comme une collectivité départementale
    plutôt que comme une circonscription administrative de l'État est
    généralement `<code dep>D`.

* Les collectivités de niveau régional, `collectivite-regionale/par-code/`

  * Généralement

Autres remarques
----------------

**ATTENTION** : Ce paquet ne fonctionne que si votre projet Django utilise
**PostGIS** car il utilise certaines fonctionnalités propres à PostgreSQL.


Dev
~~~

* Vous devez avoir `geo2topo, toposimplify, topo2geo` d'installer sur votre machine - https://github.com/topojson/topojson

Installer le projet `poetry install`
Télécharger les sources et build le projet : `poetry run doit build`
Monter de version avant de publier : `poetry version patch/minor/major` - https://python-poetry.org/docs/cli#version
Build le package : `poetry build`
Publier le package sur Python Package Index : `poetry publish`
