Aller au contenu

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 si on ne veux pas de fichier de log.

None
pattern_formater Optional[str]

Modèle de format du log (cf doc logging) ou None si on veut le format par défaut.

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