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
|
pattern_formater
|
Optional[str]
|
Modèle de format du log (cf doc
logging) ou |
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)
#
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 |