webspirit.classes.tools package#

Submodules#

webspirit.classes.tools.checktype module#

class webspirit.classes.tools.checktype.CheckType(*parameters, convert=True, return_=False)[source]#

Bases: object

RETURN: str = 'return'#
SELF: str = 'self'#
convert(parameter, value, annotation)[source]#
Return type:

object | None

validate_and_convert_type(parameter)[source]#

webspirit.classes.tools.contexterror module#

class webspirit.classes.tools.contexterror.ErrorContextManager(message='EX_TYPE - EX_VALUE', level=30, _raise=False, logger=<Logger webspirit.config.logger (DEBUG)>)[source]#

Bases: object

Un gestionnaire de contexte qui fonctionne similairement à contextlib.suppress(Exception).

Parameters:
  • message (str, optional) – Le message affiché dans les logs. Il peut prendre différents mots-clés pré-définis. On a ERROR, EX_TYPE, et EX_VALUE par exemple. Defaults to ‘’.

  • level (int, optional) – Le niveau du message pour le log. Defaults to WARNING.

  • _raise (bool, optional) – Permet de provoquer l’erreur original en plus d’afficher un message dans le log. Defaults to False.

  • logger (Logger, optional) – Un logger pour gérer les logs. Defaults to LOGGER.

webspirit.classes.tools.contexterror.ecm#

alias of ErrorContextManager

webspirit.classes.tools.contexterror.raise_error(message='', error=<class 'TypeError'>, cause=None, logger=<Logger webspirit.config.logger (DEBUG)>)[source]#
webspirit.classes.tools.contexterror.re(message='', error=<class 'TypeError'>, cause=None, logger=<Logger webspirit.config.logger (DEBUG)>)#

webspirit.classes.tools.csvmanager module#

The type of the None singleton.

webspirit.classes.tools.manager module#

Implémentation des différentes classes pour la gestion des fichiers, comme json ou csv, comportant des données à manipuler.

class webspirit.classes.tools.manager.BaseManager(path)[source]#

Bases: ABC

copy(**kwargs)#

Call self as a function.

Return type:

Union[Callable[..., Any], Any]

property data: dict | list#
delete()[source]#

Supprime le fichier source de manière transparente

abstractmethod load()[source]#

Formate les données brutes pour correspondre avec celles attendues, et met à jours le manager

Return type:

Self

abstractmethod load_raw()[source]#

Charge les données brutes du fichier source

Return type:

dict | list

property raw_data: dict | list#
registry: dict[str, type] = {'.csv': <class 'webspirit.classes.tools.manager.CsvManager'>, '.json': <class 'webspirit.classes.tools.manager.JsonManager'>}#
repr_format: bool = True#
abstractmethod save(data=None)[source]#

Sauvegarde les données dans le fichier source

Return type:

Self

to_dict()[source]#

Retourne les données du manager sous forme de dictionnaire.

Returns:

Les données internes du manager sous forme de dictionnaire.

Return type:

dict

Raises:

Exception – Si les données ne sont pas stockées dans un format de type dict.

to_list()[source]#

Retourne les données du manager sous forme de liste.

Returns:

Les données internes du manager sous forme de liste.

Return type:

list

Raises:

Exception – Si les données ne sont pas stockées dans un format de type list.

class webspirit.classes.tools.manager.CsvManager(path)[source]#

Bases: BaseManager

decode(data)[source]#
Return type:

list[list[str]]

encode(data)[source]#
Return type:

dict[str, list[str]]

extension = '.csv'#
load()[source]#

Formate les données brutes pour correspondre avec celles attendues, et met à jours le manager

Return type:

Self

load_raw()[source]#

Charge les données brutes du fichier source

Return type:

list

save(data=None)[source]#

Sauvegarde les données dans le fichier source

Return type:

Self

class webspirit.classes.tools.manager.JsonManager(path)[source]#

Bases: BaseManager

extension = '.json'#
load()[source]#

Formate les données brutes pour correspondre avec celles attendues, et met à jours le manager

Return type:

Self

load_raw()[source]#

Charge les données brutes du fichier source

Return type:

dict | list

save(data=None)[source]#

Sauvegarde les données dans le fichier source

Return type:

Self

class webspirit.classes.tools.manager.ManagerMeta(name, bases, namespace, /, **kwargs)[source]#

Bases: ABCMeta

instances: dict[tuple[type, StrPath | None], Any] = {(<class 'webspirit.classes.tools.manager.JsonManager'>, StrPath('/home/runner/work/Webspirit/Webspirit/src/webspirit/data/settings/settings.json')): {   "language": {     "type": "list",     "label": "Langue de l'application",     "default": null,     "source": {       "object": "webspirit.classes.tools.manager.JsonManager",       "params": [         "languages.json"       ],       "default": {         "value": "fr",         "attr": null,         "index": null       }     }   },   "dark_mode": {     "type": "bool",     "label": "Mode sombre",     "default": false,     "source": {       "object": null,       "params": [         null       ],       "default": {         "value": null,         "attr": null,         "index": null       }     }   },   "theme": {     "type": "list",     "label": "Thème visuel",     "default": null,     "source": {       "object": "webspirit.classes.tools.manager.JsonManager",       "params": [         "theme.json"       ],       "default": {         "value": "light",         "attr": null,         "index": null       }     }   },   "username": {     "type": "text",     "label": "Nom d'utilisateur",     "default": "DefaultUser",     "source": {       "object": null,       "params": [         null       ],       "default": {         "value": null,         "attr": null,         "index": null       }     }   },   "launch_animation": {     "type": "bool",     "label": "Animation de démarrage",     "default": true,     "source": {       "object": null,       "params": [         null       ],       "default": {         "value": null,         "attr": null,         "index": null       }     }   },   "path_FFmpeg": {     "type": "text",     "label": "Chemin vers l'exécutable ffmpeg.exe",     "default": null,     "source": {       "object": "webspirit.config.constants.PATH_FFMPEG",       "params": [         null       ],       "default": {         "value": null,         "attr": null,         "index": null       }     }   } }, (<class 'webspirit.classes.tools.manager.JsonManager'>, StrPath('/home/runner/work/Webspirit/Webspirit/src/webspirit/data/settings/user.json')): {   "language": "es",   "dark_mode": true,   "theme": "light",   "username": "Solange",   "launch_animation": true,   "path_FFmpeg": "/home/runner/work/Webspirit/Webspirit/src/webspirit/resources/FFmpeg/bin/ffmpeg.exe" }}#
webspirit.classes.tools.manager.delete_json(path)[source]#

Supprime un fichier json en acceptant soit un chemin soit un manager.

Parameters:

path (StrPath | JsonManager) – Le chemin vers le fichier json ou une instance de JsonManager pointant vers ce fichier.

webspirit.classes.tools.manager.load_json(path)[source]#

Crée un gestionnaire json pour le fichier fourni.

Parameters:

path (StrPath) – Le chemin vers le fichier json.

Returns:

Une instance de JsonManager associée au fichier fourni.

Return type:

JsonManager

webspirit.classes.tools.manager.save_json(data=None, path=None)[source]#

Sauvegarde des données json dans un fichier en gérant plusieurs cas d’entrée. Cette fonction peut utiliser soit des données brutes, soit un JsonManager existant, et créer ou mettre à jour le fichier cible.

Parameters:
  • data (dict | list | JsonManager | None) – Les données à sauvegarder ou un JsonManager existant. Peut être None si un chemin est fourni pour charger et sauvegarder.

  • path (StrPath | None) – Le chemin vers le fichier json à sauvegarder. Peut être None si un JsonManager est fourni.

Returns:

Une instance de JsonManager correspondant au fichier sauvegardé.

Return type:

JsonManager

Raises:

ValueError – Si ni les données ni le chemin ne sont fournis.

webspirit.classes.tools.typing module#

class webspirit.classes.tools.typing.CsvPath(string, exist=True)[source]#

Bases: SuffixPath

SUFFIX: list[str] = ['.csv']#

Bases: str, _PathOrURL

copy()[source]#
Return type:

HyperLink

property id: str#
static is_url(url)[source]#
Return type:

bool

class webspirit.classes.tools.typing.JsonPath(string, exist=True)[source]#

Bases: SuffixPath

SUFFIX: list[str] = ['.json']#
class webspirit.classes.tools.typing.StrPath(*paths, exist=True)[source]#

Bases: Path, _PathOrURL

copy()[source]#
Return type:

StrPath

dirname()[source]#
Return type:

StrPath

static is_path(string, dir=False, ext=None)[source]#
Return type:

bool

relpath()[source]#
Return type:

StrPath

class webspirit.classes.tools.typing.SuffixPath(string, ext, exist=True)[source]#

Bases: StrPath

static check_ext(ext)[source]#
Return type:

list[str]

copy()[source]#
Return type:

SuffixPath

dirname()[source]#
Return type:

SuffixPath

relpath()[source]#
Return type:

SuffixPath

Module contents#

Répertoire contenant les différents modules qui gerent les classes et objets utilisé dans cette library.

class webspirit.classes.tools.BaseManager(path)[source]#

Bases: ABC

copy(**kwargs)#

Call self as a function.

Return type:

Union[Callable[..., Any], Any]

property data: dict | list#
delete()[source]#

Supprime le fichier source de manière transparente

abstractmethod load()[source]#

Formate les données brutes pour correspondre avec celles attendues, et met à jours le manager

Return type:

Self

abstractmethod load_raw()[source]#

Charge les données brutes du fichier source

Return type:

dict | list

property raw_data: dict | list#
registry: dict[str, type] = {'.csv': <class 'webspirit.classes.tools.manager.CsvManager'>, '.json': <class 'webspirit.classes.tools.manager.JsonManager'>}#
repr_format: bool = True#
abstractmethod save(data=None)[source]#

Sauvegarde les données dans le fichier source

Return type:

Self

to_dict()[source]#

Retourne les données du manager sous forme de dictionnaire.

Returns:

Les données internes du manager sous forme de dictionnaire.

Return type:

dict

Raises:

Exception – Si les données ne sont pas stockées dans un format de type dict.

to_list()[source]#

Retourne les données du manager sous forme de liste.

Returns:

Les données internes du manager sous forme de liste.

Return type:

list

Raises:

Exception – Si les données ne sont pas stockées dans un format de type list.

class webspirit.classes.tools.CheckType(*parameters, convert=True, return_=False)[source]#

Bases: object

RETURN: str = 'return'#
SELF: str = 'self'#
convert(parameter, value, annotation)[source]#
Return type:

object | None

function: Callable[..., Any]#
validate_and_convert_type(parameter)[source]#
without_parentheses: bool#
class webspirit.classes.tools.CsvPath(string, exist=True)[source]#

Bases: SuffixPath

SUFFIX: list[str] = ['.csv']#
class webspirit.classes.tools.ErrorContextManager(message='EX_TYPE - EX_VALUE', level=30, _raise=False, logger=<Logger webspirit.config.logger (DEBUG)>)[source]#

Bases: object

Un gestionnaire de contexte qui fonctionne similairement à contextlib.suppress(Exception).

Parameters:
  • message (str, optional) – Le message affiché dans les logs. Il peut prendre différents mots-clés pré-définis. On a ERROR, EX_TYPE, et EX_VALUE par exemple. Defaults to ‘’.

  • level (int, optional) – Le niveau du message pour le log. Defaults to WARNING.

  • _raise (bool, optional) – Permet de provoquer l’erreur original en plus d’afficher un message dans le log. Defaults to False.

  • logger (Logger, optional) – Un logger pour gérer les logs. Defaults to LOGGER.

Bases: str, _PathOrURL

copy()[source]#
Return type:

HyperLink

property id: str#
static is_url(url)[source]#
Return type:

bool

class webspirit.classes.tools.JsonPath(string, exist=True)[source]#

Bases: SuffixPath

SUFFIX: list[str] = ['.json']#
class webspirit.classes.tools.ManagerMeta(name, bases, namespace, /, **kwargs)[source]#

Bases: ABCMeta

instances: dict[tuple[type, StrPath | None], Any] = {(<class 'webspirit.classes.tools.manager.JsonManager'>, StrPath('/home/runner/work/Webspirit/Webspirit/src/webspirit/data/settings/settings.json')): {   "language": {     "type": "list",     "label": "Langue de l'application",     "default": null,     "source": {       "object": "webspirit.classes.tools.manager.JsonManager",       "params": [         "languages.json"       ],       "default": {         "value": "fr",         "attr": null,         "index": null       }     }   },   "dark_mode": {     "type": "bool",     "label": "Mode sombre",     "default": false,     "source": {       "object": null,       "params": [         null       ],       "default": {         "value": null,         "attr": null,         "index": null       }     }   },   "theme": {     "type": "list",     "label": "Thème visuel",     "default": null,     "source": {       "object": "webspirit.classes.tools.manager.JsonManager",       "params": [         "theme.json"       ],       "default": {         "value": "light",         "attr": null,         "index": null       }     }   },   "username": {     "type": "text",     "label": "Nom d'utilisateur",     "default": "DefaultUser",     "source": {       "object": null,       "params": [         null       ],       "default": {         "value": null,         "attr": null,         "index": null       }     }   },   "launch_animation": {     "type": "bool",     "label": "Animation de démarrage",     "default": true,     "source": {       "object": null,       "params": [         null       ],       "default": {         "value": null,         "attr": null,         "index": null       }     }   },   "path_FFmpeg": {     "type": "text",     "label": "Chemin vers l'exécutable ffmpeg.exe",     "default": null,     "source": {       "object": "webspirit.config.constants.PATH_FFMPEG",       "params": [         null       ],       "default": {         "value": null,         "attr": null,         "index": null       }     }   } }, (<class 'webspirit.classes.tools.manager.JsonManager'>, StrPath('/home/runner/work/Webspirit/Webspirit/src/webspirit/data/settings/user.json')): {   "language": "es",   "dark_mode": true,   "theme": "light",   "username": "Solange",   "launch_animation": true,   "path_FFmpeg": "/home/runner/work/Webspirit/Webspirit/src/webspirit/resources/FFmpeg/bin/ffmpeg.exe" }}#
class webspirit.classes.tools.StrPath(*paths, exist=True)[source]#

Bases: Path, _PathOrURL

copy()[source]#
Return type:

StrPath

dirname()[source]#
Return type:

StrPath

static is_path(string, dir=False, ext=None)[source]#
Return type:

bool

relpath()[source]#
Return type:

StrPath

class webspirit.classes.tools.SuffixPath(string, ext, exist=True)[source]#

Bases: StrPath

static check_ext(ext)[source]#
Return type:

list[str]

copy()[source]#
Return type:

SuffixPath

dirname()[source]#
Return type:

SuffixPath

relpath()[source]#
Return type:

SuffixPath

webspirit.classes.tools.ecm#

alias of ErrorContextManager

webspirit.classes.tools.raise_error(message='', error=<class 'TypeError'>, cause=None, logger=<Logger webspirit.config.logger (DEBUG)>)[source]#
webspirit.classes.tools.re(message='', error=<class 'TypeError'>, cause=None, logger=<Logger webspirit.config.logger (DEBUG)>)#