sdk_entrepot_gpf.io#
ApiRequester()
#
Classe singleton pour gérer l'enrobage des requêtes à l'API GPF : gestion du proxy, du HTTPS et des erreurs.
range_next_page(content_range, length)
staticmethod
#
Fonction analysant le Content-Range
d'une réponse pour indiquer s'il
faut faire d'autres requêtes ou si tout est déjà récupéré.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
content_range |
Optional[str]
|
Content-Range renvoyé par l'API |
required |
length |
int
|
nombre d'éléments déjà récupérés |
required |
Returns:
Type | Description |
---|---|
bool
|
True s'il faut continuer, False sinon |
route_request(route_name, route_params=None, method='GET', params=None, data=None, files=None)
#
Exécute une requête à l'API à partir du nom d'une route. La requête est retentée plusieurs fois s'il y a un problème.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
route_name |
str
|
Route à utiliser |
required |
route_params |
Optional[Dict[str, Any]]
|
Paramètres obligatoires pour compléter la route. |
None
|
params |
Optional[Dict[str, Any]]
|
Paramètres optionnels de l'URL. |
None
|
method |
str
|
méthode de la requête. |
'GET'
|
data |
Optional[Dict[str, Any]]
|
Données de la requête. |
None
|
files |
Optional[Dict[str, Tuple[Any]]]
|
Liste des fichiers à envoyer {"file":('fichier.ext', File)}. |
None
|
Raises:
Type | Description |
---|---|
RouteNotFoundError
|
levée si la route demandée n'est pas définie dans les paramètres |
InternalServerError
|
levée si erreur interne de l'API |
NotFoundError
|
levée si l'entité demandée n'est pas trouvée par l'API |
NotAuthorizedError
|
levée si l'action effectuée demande d'autres autorisations |
BadRequestError
|
levée si la requête envoyée n'est pas correcte |
StatusCodeError
|
levée si un "status code" non prévu est récupéré |
Returns:
Type | Description |
---|---|
Response
|
réponse vérifiée |
route_upload_file(route_name, file_path, file_key, route_params=None, method='POST', params=None, data=None)
#
Exécute une requête à l'API à partir du nom d'une route. La requête est retentée plusieurs fois s'il y a un problème.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
route_name |
str
|
Route à utiliser |
required |
file_path |
Path
|
Chemin du fichier à uploader |
required |
file_key |
str
|
nom de la clef dans le dictionnaire |
required |
route_params |
Optional[Dict[str, Any]]
|
Paramètres obligatoires pour compléter la route. |
None
|
params |
Optional[Dict[str, Any]]
|
Paramètres optionnels de l'URL. |
None
|
method |
str
|
méthode de la requête. |
'POST'
|
data |
Optional[Dict[str, Any]]
|
Données de la requête. |
None
|
Returns:
Type | Description |
---|---|
Response
|
réponse vérifiée |
url_request(url, method='GET', params=None, data=None, files=None, header={})
#
Effectue une requête à l'API à partir d'une url. La requête est retentée plusieurs fois s'il y a un problème.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
url |
str
|
url absolue de la requête |
required |
method |
str
|
méthode de la requête |
'GET'
|
params |
Optional[Dict[str, Any]]
|
paramètres de la requête (ajouté à l'url) |
None
|
data |
Optional[Union[Dict[str, Any], List[Any]]]
|
contenue de la requête (ajouté au corp) |
None
|
files |
Optional[Dict[str, Tuple[Any]]]
|
fichiers à envoyer |
None
|
header |
Dict[str, str]
|
Header additionnel pour la requête |
{}
|
Returns:
Type | Description |
---|---|
Response
|
réponse si succès |
Config()
#
Lit le fichier de configuration (classe Singleton). Attributes: __config_parser (configparser): ConfigParser __ini_file_path (string): Chemin vers le fichier de configuration BaGI
A l'instanciation, le fichier par défaut est lu.
Il faudra ensuite surcharger les paramètres en lisant d'autres fichiers via la méthode read
.
Raises:
Type | Description |
---|---|
ConfigReaderError
|
levée si le fichier de configuration par défaut n'est pas trouvé |
get(section, option, fallback=None)
#
Récupère la valeur associée au paramètre demandé.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
section |
str
|
section du paramètre |
required |
option |
str
|
option du paramètre |
required |
fallback |
Optional[str]
|
valeur par défaut. |
None
|
Returns:
Type | Description |
---|---|
Optional[str]
|
Optional[str]: la valeur du paramètre |
get_bool(section, option, fallback=None)
#
Récupère la valeur associée au paramètre demandé, convertie en bool
.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
section |
str
|
section du paramètre |
required |
option |
str
|
option du paramètre |
required |
fallback |
Optional[bool]
|
valeur par défaut. |
None
|
Returns:
Type | Description |
---|---|
bool
|
la valeur du paramètre |
get_float(section, option, fallback=None)
#
Récupère la valeur associée au paramètre demandé, convertie en float
.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
section |
str
|
section du paramètre |
required |
option |
str
|
option du paramètre |
required |
fallback |
Optional[float]
|
valeur par défaut. |
None
|
Returns:
Type | Description |
---|---|
float
|
la valeur du paramètre |
get_int(section, option, fallback=None)
#
Récupère la valeur associée au paramètre demandé, convertie en int
.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
section |
str
|
section du paramètre |
required |
option |
str
|
option du paramètre |
required |
fallback |
Optional[int]
|
valeur par défaut. |
None
|
Returns:
Type | Description |
---|---|
int
|
la valeur du paramètre |
get_parser()
#
Retourne le config_parser.
Returns:
Type | Description |
---|---|
ConfigParser
|
le config parser |
get_str(section, option, fallback=None)
#
Récupère la valeur du paramètre demandé.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
section |
str
|
section du paramètre |
required |
option |
str
|
option du paramètre |
required |
fallback |
Optional[str]
|
valeur par défaut. Defaults to None. |
None
|
Returns:
Type | Description |
---|---|
str
|
Optional[str]: la valeur du paramètre |
get_temp()
#
Récupère le chemin racine du dossier temporaire à utiliser.
Returns:
Type | Description |
---|---|
Path
|
chemin racine du dossier temporaire à utiliser |
read(filenames)
#
Permet de surcharger la configuration en lisant un ou plusieurs nouveau(x) fichier(s) de configuration.
Les derniers fichiers ont la priorité. Si un fichier n'est pas trouvé, aucune erreur n'est levée. La fonction retourne la liste des fichiers lus.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
filenames |
Union[str, Path, Iterable[Union[str, Path]]]
|
Chemin ou liste des chemins vers le ou les fichier(s) à lire |
required |
Returns:
Type | Description |
---|---|
List[str]
|
liste des fichiers trouvés et lus |
Dataset(dataset, p_root_dir)
#
Classe portante les infos nécessaires à la création d'une livraison et issues du dataset.
Attributes:
Name | Type | Description |
---|---|---|
__data_dirs |
List[Path]
|
Liste des dossiers à envoyer à l'API |
__upload_infos |
Dict[str, str]
|
Informations permettant de créer la livraison |
__comments |
List[str]
|
Commentaires à ajouter à la livraison |
__tags |
Dict[str, str]
|
Tags à ajouter à la livraison |
__data_files |
List[Path]
|
Liste des fichiers de données à importer sur l'entrepôt. |
__md5_files |
List[Path]
|
Liste des fichiers md5 à importer sur l'entrepôt. |
__root_dir |
Path
|
Chemin racine du dataset (absolu ou relatif ?) |
Constructeur
Parameters:
Name | Type | Description | Default |
---|---|---|---|
dataset |
Dict[Any, Any]
|
dataset tel que dans le fichier descriptif de livraison |
required |
p_root_dir |
Path
|
Chemin racine à partir duquel sont définis les data_dirs |
required |
UploadDescriptorFileReader(descriptor_file_path)
#
Classe permettant de lire et de valider le fichier descripteur de livraison.
Attributes:
Name | Type | Description |
---|---|---|
__descriptor_dict |
Optional[Dict[Any, Any]]
|
Contenu du fichier descriptif |
__datasets |
List[Dataset]
|
Liste des datasets contenus dans le fichier descripteur de livraison |
__parent_folder(path) |
List[Dataset]
|
Chemin du dossier parent des données |
La classe est instanciée à partir du fichier descripteur de livraison.
Les différents chemins indiqués sont alors vérifiés et les fichiers à téléverser sont listés.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
descriptor_file_path |
Path
|
chemin vers le fichier descripteur de livraison |
required |
JsonConverter()
#
Classe de conversion des objects python en json. Le but est de convertir les objets qui ne sont pas nativement gérés par Python comme les dates.
initialisation : liste des routes et adresse site
convert(data)
#
Passe en string les objets non gérés nativement en JSON par Python. Ex : {"date": date(2020, 1, 1)} => {"date": "2020-01-01"}
Parameters:
Name | Type | Description | Default |
---|---|---|---|
data |
Any
|
données à envoyer à l'api avec des classes python |
required |
Returns:
Name | Type | Description |
---|---|---|
Any |
Any
|
données à envoyer à l'api sans classe python |
dumps(data)
#
Cette fonction permet de convertir les classes python en string JSON. Pour le moment, sont traitées les dates, times, et datetimes. On utilise un "converter" spécialisé.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
data |
Any
|
données à envoyer à l'api avec des classes python |
required |
Returns:
Name | Type | Description |
---|---|---|
str |
str
|
JSON avec gestion des classes Python |
OutputManager(file_logger=None, pattern_formater=None)
#
Classe de gestion du log.
La classe est instanciée à partir d'un fichier de log et d'un modèle de format de log.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
file_logger |
Optional[str]
|
Chemin vers le fichier de log ou |
None
|
pattern_formater |
Optional[str]
|
Modèle de format du log (cf doc
logging) ou |
None
|
critical(message, red_colored=True)
#
Ajout d'un message de type critique (apparaît en rouge dans la console) Args: message (str): message de type critique à journaliser red_colored (bool, optional): indique si le message doit être écrit en rouge (par défaut True)
debug(message)
#
Ajout d'un message de type debug Args: message (str): message de type debug à journaliser
error(message, red_colored=True)
#
Ajout d'un message de type erreur Args: message (str): message de type erreur à journaliser red_colored (bool, optional): indique si le message doit être écrit en rouge (par défaut False)
info(message, green_colored=False)
#
Ajout d'un message de type info
Parameters:
Name | Type | Description | Default |
---|---|---|---|
message |
str
|
message de type info à journaliser |
required |
green_colored |
bool
|
indique si le message doit être écrit en vert (par défaut False) |
False
|
set_log_level(level)
#
Défini le niveau de log du logger.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
level |
str
|
niveau de log (DEBUG, INFO, WARNING, ERROR ou CRITICAL) |
required |
warning(message, yellow_colored=True)
#
Ajout d'un message de type warning Args: message (str): message de type warning à journaliser yellow_colored (bool, optional): indique si le message doit être écrit en jaune (par défaut True)
Errors#
AbstractRequestError(url, method, params, data)
#
Bases: ApiError
Erreur API : erreur générique et sans réponse lors d'une requête à l'API.
Instanciée à partir de l'URL, la méthode, les paramètres et les données posant problème.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
url |
str
|
url de la requête |
required |
method |
str
|
méthode de la requête |
required |
params |
Optional[Dict[str, Any]]
|
paramètres de la requête |
required |
data |
Optional[Union[Dict[str, Any], List[Any]]]
|
données envoyées |
required |
ApiError
#
Bases: Exception
Erreur API : classe abstraite pour gérer les erreurs API en général.
BadRequestError(url, method, params, data, response)
#
Bases: _WithResponseError
Erreur API : mauvaise requête (contactez le support).
Instanciée à partir de l'URL, la méthode, les paramètres et les données posant problème ainsi que la réponse de l'API.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
url |
str
|
url de la requête |
required |
method |
str
|
méthode de la requête |
required |
params |
Optional[Dict[str, Any]]
|
paramètres de la requête |
required |
data |
Optional[Union[Dict[str, Any], List[Any]]]
|
données envoyées |
required |
response |
str
|
données reçues |
required |
ConfigReaderError(message)
#
Bases: GpfSdkError
Erreur levée quand il y a un problème pendant la lecture du fichier de configuration par défaut.
Attributes:
Name | Type | Description |
---|---|---|
__message |
str
|
message décrivant le problème |
Constructor
Parameters:
Name | Type | Description | Default |
---|---|---|---|
message |
str)
|
message décrivant le problème |
required |
ConflictError(url, method, params, data, response)
#
Bases: _WithResponseError
Erreur API : conflit au traitement de la requête (est-ce que vous tentez de supprimer une ressource utilisée ?).
Instanciée à partir de l'URL, la méthode, les paramètres et les données posant problème ainsi que la réponse de l'API.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
url |
str
|
url de la requête |
required |
method |
str
|
méthode de la requête |
required |
params |
Optional[Dict[str, Any]]
|
paramètres de la requête |
required |
data |
Optional[Union[Dict[str, Any], List[Any]]]
|
données envoyées |
required |
response |
str
|
données reçues |
required |
InternalServerError(url, method, params, data)
#
Bases: AbstractRequestError
Erreur API : erreur interne à l'API (contactez le support).
Instanciée à partir de l'URL, la méthode, les paramètres et les données posant problème.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
url |
str
|
url de la requête |
required |
method |
str
|
méthode de la requête |
required |
params |
Optional[Dict[str, Any]]
|
paramètres de la requête |
required |
data |
Optional[Union[Dict[str, Any], List[Any]]]
|
données envoyées |
required |
NotAuthorizedError(url, method, params, data, response)
#
Bases: _WithResponseError
Erreur API : action non autorisée.
Instanciée à partir de l'URL, la méthode, les paramètres et les données posant problème ainsi que la réponse de l'API.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
url |
str
|
url de la requête |
required |
method |
str
|
méthode de la requête |
required |
params |
Optional[Dict[str, Any]]
|
paramètres de la requête |
required |
data |
Optional[Union[Dict[str, Any], List[Any]]]
|
données envoyées |
required |
response |
str
|
données reçues |
required |
NotFoundError(url, method, params, data, response)
#
Bases: _WithResponseError
Erreur API : entité non trouvée sur la Géoplateforme.
Instanciée à partir de l'URL, la méthode, les paramètres et les données posant problème ainsi que la réponse de l'API.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
url |
str
|
url de la requête |
required |
method |
str
|
méthode de la requête |
required |
params |
Optional[Dict[str, Any]]
|
paramètres de la requête |
required |
data |
Optional[Union[Dict[str, Any], List[Any]]]
|
données envoyées |
required |
response |
str
|
données reçues |
required |
RouteNotFoundError(route_name)
#
Bases: ApiError
Route non trouvée (problème de configuration).
Instanciée à partir du nom de la route non trouvée.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
route_name |
str
|
nom de la route manquante |
required |
RoutingReaderError(message)
#
Bases: GpfSdkError
Erreur levée quand il y a un problème pendant la lecture du fichier de configuration des routes.
Attributes:
Name | Type | Description |
---|---|---|
__message |
str
|
message décrivant le problème |
Constructor
Parameters:
Name | Type | Description | Default |
---|---|---|---|
message |
str)
|
message décrivant le problème |
required |
StatusCodeError(url, method, params, data, status_code, response)
#
Bases: _WithResponseError
Erreur API : erreur avec un code de retour non prévu par une erreur explicite...
Instanciée à partir de l'URL, la méthode, les paramètres et les données posant problème ainsi que la réponse et le code de retour de l'API.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
url |
str
|
url de la requête |
required |
method |
str
|
méthode de la requête |
required |
params |
Optional[Dict[str, Any]]
|
paramètres de la requête |
required |
data |
Optional[Union[Dict[str, Any], List[Any]]]
|
données envoyées |
required |
status_code |
int
|
code de retour |
required |
response |
str
|
données reçues |
required |