Aller au contenu

Modularité et API

I. Les modules avec Python⚓︎

1.1. Présentation⚓︎

Introduction aux modules | Arnaud Legout (INRIA) (04:19)

1.2. Généralités⚓︎

Un « module» est un ensemble de fonctions suffisamment générales pour être réutilisables dans plusieurs projets. Pour plus de clarté, on ne regroupera dans un même module que les fonctions relatives à une même fonctionnalité.

Un module s'importe par son nom qui est le nom du fichier python privé de l'extension .py.

Par exemple, le module random regroupe des fonctions en lien avec l'aléatoire (randint, choice, shuffle, ...)

Un module étant une boîte noire (on a pas en général le code des fonctions sous les yeux), celui-ci doit exposer de manière claire au développeur son interface, c'est-à dire :

  • la liste des fonctions et leur rôle ;
  • ce que chaque fonction prend en entrée ;
  • ce que chaque fonction renvoie en sortie.

Ces fonctions sont stockées dans un fichier random.py quelque part sur le système de fichiers de votre ordinateur.

Pour cela, un formalisme particulier existe sous python : les « docstrings ». Cela permet de décrire précisément ces informations. Ainsi, un développeur pourra accéder à l'interface du module pour savoir comment utiliser chacune des fonctions.

II. Utilisation des API⚓︎

Une « API » (Application Programming Interface) permet aux développeurs d'intégrer une application à une autre. Cela peut permettre par exemple de récupérer des données structurées depuis un site web pour les exploiter de manière automatisée dans un programme.

2.1. Exemples⚓︎

  • API REST "Where the ISS at?" : Position de l'ISS en temps réel

Traqueur d'ISS

  • API Weatherstack : Données météorologiques mondiales (en temps réel et en historique)

Données météorologiques actuelles à Eu

2.2. API, bibliothèques et Python⚓︎

Utilisation des fichiers GPX | Cédric Gerland (12:27)

Cartes avec folium, format GPX, JSON et GeoJSON | Cédric Gerland (20:05)

Folium, formats EXIF et GeoJSON, cartes choroplèthes | Cédric Gerland (11:47)

III.Ressource Eduscol⚓︎

Modularité et API (fichier PDF)