Skip to content

development

SimonSAMPERE edited this page Apr 14, 2023 · 12 revisions

Environnement de développement

Caractéristiques :

  • utiliser l'API en QA (tenir compte du certificat SSL)
  • gérer les différents flots (flow) d'authentification oAuth2 :
    • Client Credentials pour les applications dites de groupes
    • Authorization Code pour les applications dites de l'utilisateur (qui passe par une interface pour entrer son login/mot de passe)
    • Resource Owner Password Credentials pour les scripts sans interface

Voir la documentation.

Prérequis

Installer Python :

  • une version de Python compatible (versions > 3.7+)
  • de préférence en 64 bits

Environnement

Créer un environnement virtuel :

# environnement virtuel
py -3.7 -m venv .venv
.venv/Scripts/activate
# MAJ pip et setuptools
python -m pip install -U pip setuptools

Installer les dépendances :

# dépendances
# avec pip
python -m pip install -U -r .\requirements.txt
python -m pip install -U -r .\requirements_dev.txt
# ou avec pipenv
python -m pip install -U pipenv
python -m pipenv install --dev

Installer le projet pour le développement

Depuis la racine du dossier :

# installer le projet en mode éditable
# cf. https://pip.pypa.io/en/stable/reference/pip_install/#editable-installs)
python -m pip install -e .

Configuration

  • télécharger les fichiers d'authentification à l'API Isogeo (voir la doc)
  • compléter le fichier .env à partir du modèle situé à la racine du projet. Exemple :
# GLOBAL
ISOGEO_PLATFORM=qa
OAUTHLIB_INSECURE_TRANSPORT=1

# URLS
ISOGEO_API_URL=https://api.qa.isogeo.com/
ISOGEO_ID_URL=https://id.api.qa.isogeo.com/

# API - GROUP (Client Credentials)
ISOGEO_API_DEV_ID=
ISOGEO_API_DEV_SECRET=

# API - USER (Authorization Code)
ISOGEO_API_USER_CLIENT_ID=
ISOGEO_API_USER_CLIENT_SECRET=

# API - SCRIPTS (Legacy Workflow)
ISOGEO_API_SCRIPTS_CLIENT_ID=
ISOGEO_API_SCRIPTS_CLIENT_SECRET=

# USER
ISOGEO_USER_NAME=
ISOGEO_USER_PASSWORD=

# SHORTCUTS
ISOGEO_FIXTURES_METADATA_COMPLETE=
ISOGEO_WORKGROUP_TEST_UUID=

Règles

Formatage du code

Le projet s'appuie sur black pour formater automatiquement le code source.