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, timeout=-1000) #

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
timeout Optional[int]

timeout en seconde ou None pour désactiver le timeout.

-1000

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, timeout=-1000) #

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={}, timeout=-1000) #

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

{}
timeout Optional[int]

timeout en seconde ou None pour désactiver le timeout.

-1000

Returns:

Type Description
Response

réponse si succès

Config() #

Lit et compile les fichiers de configuration (classe Singleton). Attributes: __config (dict[str, Any]): configuration entière sous forme de dictionnaire (sections) de dictionnaires

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. Si la valeur est None, une exception est levée.

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:

Name Type Description
bool bool

la valeur du paramètre

get_config() #

Retourne la config entière.

Returns:

Type Description
Dict[str, Dict[str, Any]]

Dict[str, Dict[str, Any]]: la full config

get_float(section, option, fallback=None) #

Récupère la valeur associée au paramètre demandé, convertie en float. Si la valeur est None, une exception est levée.

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:

Name Type Description
float 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. Si la valeur est None, une exception est levée.

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:

Name Type Description
int int

la valeur du paramètre

get_str(section, option, fallback=None) #

Récupère la valeur du paramètre demandé. Si la valeur est None, une exception est levée.

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:

Name Type Description
str 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

merge(old, new) staticmethod #

Fusionne récursivement new dans old avec une priorité sur new.

Parameters:

Name Type Description Default
old Any

old object

required
new Any

new object

required

Returns:

Name Type Description
Any Any

old surchargé par new

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]

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 mais aussi de permettre de corriger les erreurs en loguant ce qui pose problème.

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, force_flush=False) #

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) force_flush (bool, optional): forcer la remonté des logs. Defaults to False.

debug(message, force_flush=False) #

Ajout d'un message de type debug

Parameters:

Name Type Description Default
message str

message de type debug à journaliser

required
force_flush bool

forcer la remonté des logs. Defaults to False.

False

error(message, red_colored=True, force_flush=False) #

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) force_flush (bool, optional): forcer la remonté des logs. Defaults to False.

info(message, green_colored=False, force_flush=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
force_flush bool

forcer la remonté des logs. Defaults to 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, force_flush=False) #

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) force_flush (bool, optional): forcer la remonté des logs. Defaults to False.

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).

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

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 ?).

InternalServerError(url, method, params, data) #

Bases: AbstractRequestError

Erreur API : erreur interne à l'API (contactez le support).

NotAuthorizedError(url, method, params, data, response) #

Bases: _WithResponseError

Erreur API : action non autorisée.

NotFoundError(url, method, params, data, response) #

Bases: _WithResponseError

Erreur API : entité non trouvée sur la Géoplateforme.

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

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