Documentation de polygphys

Outils pour programmes en laboratoire.

polygphys.outils

Outils pour programmes en laboratoire.

polygphys.outils.config

Enveloppe pour les fichiers de configuration.

La classe FichierConfig permet de garder un fichier de configuration synchronisé quand des modifications y sont faites dans le programme.

class polygphys.outils.config.FichierConfig(chemin: ~pathlib.Path, defaults: ~typing.Optional[dict] = None, dict_type: type = <class 'dict'>, allow_no_value: bool = False, *, fichier_defaut: ~pathlib.Path = PosixPath('/home/docs/checkouts/readthedocs.org/user_builds/polygphys/envs/latest/lib/python3.10/site-packages/polygphys/outils/config/default.cfg'), delimiters: tuple[str] = ('=', ':'), comment_prefixes: tuple[str] = ('#', ';'), inline_comment_prefixes: ~typing.Optional[tuple[str]] = None, strict: bool = True, empty_lines_in_values: bool = True, default_section: str = 'DEFAULT', interpolation: type = <object object>, converters: dict[str, typing.Callable] = <object object>)

Garde ConfigParser synchronisé avec un fichier.

add_section(section: str)

Ajouter une section.

Parameters:

section (str) – Nom de la section à ajouter.

Return type:

None.

default() str

Retourner le contenu du fichier de configuration par défaut.

Un minimum de formatage peut y être apporté via la méthode str.format, par défaut seul self est passée en argument pour le formatage.

Returns:

Contenu par défaut.

Return type:

str

optionxform(option: str) str

Formater une option.

Pour assurer l’uniformité et la facilité d’écriture et d’utilisation.

Parameters:

option (str) – Nom à formater.

Returns:

Le nom, formaté. Par défaut, rien n’est changé.

Return type:

str

read(encoding: str = 'utf-8')

Lire le contenu du fichier.

Parameters:

encoding (str, optional) – Encodage de lecture. The default is ‘utf-8’.

Return type:

None.

remove_option(section: str, option: str)

Retirer une option.

Parameters:
  • section (str) – Section contenant l’option.

  • option (str) – Option à retirer.

Return type:

None.

remove_section(section: str)

Retirer une section.

Parameters:

section (str) – Section à retirer.

Return type:

None.

set(section: str, option: str, value: Optional[Any] = None)

Modifier une option.

Parameters:
  • section (str) – Section contenant l’option.

  • option (str) – Option à modifier.

  • value (Any, optional) – Valeur. The default is None.

Return type:

None.

write(space_around_delimiters: bool = True)

Écrire le fichier de configuration à self.chemin.

Parameters:

space_around_delimiters (bool, optional) – Détermine si des espaces sont placés autour des séparateurs. The default is True.

Return type:

None.

polygphys.outils.journal

Journalisation synchrone avec différents modules.

  • le module logging

  • un répertoire git

  • une base de données.

class polygphys.outils.journal.Formats(default: str = '[%(asctime)s]\t%(levelname)s\t%(name)s\t%(message)s', labo: str = '[%(asctime)s]\t%(message)s', détails: str = '[%(asctime)s]\t%(levelname)s\t%(name)s\n\tFichier: %(filename)s\n\tFonction: %(funcName)s\n\tLigne: %(lineno)s\n\n\t%(message)s')

Chaîne de format pour la journalisation.

class polygphys.outils.journal.Journal(level: float, dossier: Path, tableau: BaseTableau)

Journal compatible avec le module logging.

Maintiens une base de données des changements apportés, par un programme ou manuellement. Les changements sont aussi sauvegardés dans un répertoire git.

emit(record: LogRecord)

Enregistre une nouvelle entrée.

Cette méthode ne devrait pas être appelée directement.

Parameters:

record (LogRecord) – L’entrée à enregistrer.

Return type:

None.

property fichier

Fichier de base de données (pour SQLite).

flush()

Ne fais rien.

init()

Initialise le répertoire git et la base de données.

class polygphys.outils.journal.Repository(path: Path)

Répertoire git.

add(*args)

Ajouter un fichier à commettre.

Parameters:

*args (TYPE) – DESCRIPTION.

Return type:

None.

branch(b: str = '')

Passer à une nouvelle branche.

Parameters:

b (str, optional) – DESCRIPTION. The default is ‘’.

Return type:

None.

clone(other: str)

Cloner un répertoire.

Parameters:

other (str) – DESCRIPTION.

Return type:

None.

commit(msg: str, *args)

Commettre les changements.

Parameters:
  • msg (str) – DESCRIPTION.

  • *args (TYPE) – DESCRIPTION.

Return type:

None.

init()

Initialiser un répertoire.

Return type:

None.

log()

Afficher l’historique.

Return type:

None.

pull()

Télécharger les changements lointains.

Return type:

None.

push()

Pousser les changements locaux.

Return type:

None.

rm(*args)

Retirer un fichier.

Parameters:

*args (TYPE) – DESCRIPTION.

Return type:

None.

status()

Évaluer l’état du répertoire.

Return type:

None.

polygphys.outils.appareils

polygphys.outils.appareils.HP

polygphys.outils.base_de_donnees

Construire une base de donnée selon un fichier de configuration simple.

class polygphys.outils.base_de_donnees.BaseDeDonnées(adresse: str, metadata: MetaData)

Lien avec une base de données spécifique.

append(table: str, values: DataFrame)

Ajoute un item à la fin de la base de données.

Parameters:
  • table (str) – Table où ajouter les données.

  • values (pd.DataFrame) – Valuers à ajouter.

Returns:

None

Return type:

NoneType

begin()

Retourne une connection active.

Eg:
with instance_BdD.begin() as con:

Returns:

Connection active

Return type:

Connection SQLAlchemy

columns(table: str) Index
Parameters:

table (str) – Retourne un index des colonnes présentes dans le tableau.

Returns:

DESCRIPTION

Return type:

TYPE

create_engine() <module 'sqlalchemy.engine' from '/home/docs/checkouts/readthedocs.org/user_builds/polygphys/envs/latest/lib/python3.10/site-packages/sqlalchemy/engine/__init__.py'>

Créer le moteur de base de données.

Returns:

Moteur de base de données.

Return type:

sqlalchemy.engine

delete(table: str, values: DataFrame)

Retire une entrée de la base de données.

Parameters:
  • table (str) – Tableau d’où retirer l’entrée.

  • values (pd.DataFrame) – Valeurs à retirer.

Returns:

None

Return type:

NoneType

deviner_type_fichier(chemin: Path) Callable

Retourne la fonction pandas à utiliser pour importer un fichier.

Parameters:

chemin (pathlib.Path) – Chemin du fichier qu’on veut importer.

Returns:

Fonction du module pandas pour importer un fichier.

Return type:

Callable

dtype(table: str, champ: str) str

Retourne le type de données d’un champ dans un tableau.

Parameters:
  • table (str) – Tableau.

  • champ (str) – Champ dont on veut le type.

Returns:

dtype selon pandas.

Return type:

str

dtypes(table: str) Series

Retourne les types des colonnes d’un tableau.

Parameters:

table (str) – Tableau dont on veut les types.

Returns:

Series avec les colonnes comme index, les types comme valeurs.

Return type:

pandas.Series

execute(requête, *args, **kargs)

Exécute la requête SQL donnée et retourne le résultat.

iloc(table: str, columns: tuple[str] = (), where: tuple = (), errors: str = 'ignore')

Retourne un objet de sélection numérique pandas.

Parameters:
  • table (str) – Tableau à extraire.

  • columns (tuple[str], optional) – Colonnes à sélectionner., defaults to tuple()

  • where (tuple, optional) – Contraintes supplémentaires, defaults to tuple()

  • errors (str, optional) – Traitement des erreurs, defaults to ‘ignore’

Returns:

Objet de sélection numérique.

Return type:

pandas.DataFrame.iloc

index(table: str) Index

Retourne l’index d’un tableau (colonne index).

Parameters:

table (str) – Tableau dont on veut l’index.

Returns:

Index du tableau.

Return type:

pandas.Index

initialiser(checkfirst: bool = True)

Créer les tableaux d’une base de données.

Parameters:

checkfirst (bool, optional) – Vérfier ou non l’existence des tableaux et champs, defaults to True

Returns:

None

Return type:

NoneType

insert(table: str, values: DataFrame)

Insère un nouvel élément dans la base de données.

Parameters:
  • table (str) – Tableau utilisé.

  • values (pd.DataFrame) – Valeurs à insérer.

Returns:

None

Return type:

NoneType

loc(table: str, columns: Optional[tuple[str]] = None, where: tuple = (), errors: str = 'ignore')

Retourne un objet de sélection pandas.

Parameters:
  • table (str) – Tableau à extraire.

  • columns (tuple[str], optional) – Colonnes à sélectionner, defaults to None

  • where (tuple, optional) – Contraintes supplémentaires, defaults to tuple()

  • errors (str, optional) – Traitement des erreurs, defaults to ‘ignore’

Returns:

Objet de sélection.

Return type:

pandas.DataFrame.loc

màj(table: str, values: DataFrame)

Met à jour des entrées de la base de données.

Utilise update ou insert selon la préexistence de l’élément. L’index de values est utilisé comme critère.

Parameters:
  • table (str) – Tableau à mettre à jour.

  • values (pd.DataFrame) – Valeurs à mettre à jour.

Returns:

None

Return type:

NoneType

read_file(table: str, chemin: Path, type_fichier: Optional[Union[str, Callable]] = None)

Importer un fichier dans la base de données.

Parameters:
  • table (str) – Tableau dans lequel importer les données.

  • chemin (pathlib.Path) – Fichier à importer.

  • type_fichier (Union[str, Callable], optional) – Type de fichier. Si non spécifié, on devine avec l’extension, defaults to None

Returns:

None

Return type:

NoneType

réinitialiser(checkfirst: bool = True)

Effacer puis créer les tableaux d’une base de données.

Parameters:

checkfirst (bool, optional) – Vérifier ou non l’existence des tableaux et champs , defaults to True

Returns:

None

Return type:

NoneType

select(table: str, columns: tuple[str] = (), where: tuple = (), errors: str = 'ignore') DataFrame

Sélectionne des colonnes et items de la base de données.

Selon les critères fournis.

Parameters:
  • table (str) – Tableau d’où extraire les données.

  • columns (tuple[str], optional) – Colonnes à extraire. The default is tuple(). Un tuple vide sélectionne toutes les colonnes, defaults to tuple()

  • where (tuple, optional) – Critères supplémentaires. The default is tuple(), defaults to tuple()

  • errors (str, optional) – Comportement des erreurs., defaults to ‘ignore’

Returns:

Retourne un DataFrame contenant les items et colonnes

sélectionnées. :rtype: pandas.DataFrame

table(table: str) Table

Retourne une table de la base de données.

property tables: dict[str, sqlalchemy.sql.schema.Table]

Liste des tables contenues dans la base de données.

update(table: str, values: DataFrame)

Mets à jour des items déjà présents dans la base de données.

Parameters:
  • table (str) – Tableau où se trouvent les données.

  • values – DataFrame contenant les valeurs à modifier.

L’index est le critère de sélection. :type values: pd.DataFrame :return: None :rtype: NoneType

class polygphys.outils.base_de_donnees.BaseDeDonnéesConfig(chemin: ~pathlib.Path, defaults: ~typing.Optional[dict] = None, dict_type: type = <class 'dict'>, allow_no_value: bool = False, *, fichier_defaut: ~pathlib.Path = PosixPath('/home/docs/checkouts/readthedocs.org/user_builds/polygphys/envs/latest/lib/python3.10/site-packages/polygphys/outils/config/default.cfg'), delimiters: tuple[str] = ('=', ':'), comment_prefixes: tuple[str] = ('#', ';'), inline_comment_prefixes: ~typing.Optional[tuple[str]] = None, strict: bool = True, empty_lines_in_values: bool = True, default_section: str = 'DEFAULT', interpolation: type = <object object>, converters: dict[str, typing.Callable] = <object object>)

Configuration de base de données.

default() str

Retourne le contenu par défaut de la configuration.

Returns:

Contenu par défaut de la configuration.

Return type:

str

class polygphys.outils.base_de_donnees.BaseTableau(db: BaseDeDonnées, table: str)

Encapsulation de la classe BaseDeDonnées.

append(values: Optional[Union[Series, DataFrame]] = None)

Ajoute des valeurs au tableau.

Parameters:

values (Union[pd.Series, pd.DataFrame], optional) – Valeurs à ajouter, defaults to None

Returns:

None

Return type:

NoneType

property df: DataFrame

Le tableau comme pandas.DataFrame.

dtypes

Description et manipulation de types de données.

polygphys.outils.base_de_donnees.dtypes.column(name: str, dtype: type = <class 'str'>, *args, **kargs) Column

Retourne une description de colonne du bon type et nom.

Parameters:
  • name (str) – Nom de la colonne.

  • dtype (type, optional) – Type de la colonne, defaults to str

  • *args

    Arguments supplémentaires transmis au constructeur de colonne.

  • **kargs

    Arguments supplémentaires transmis au constructeur de colonne.

Returns:

Description de colonne.

Return type:

sqlalchemy.Column

polygphys.outils.base_de_donnees.dtypes.default(dtype: str) Any

Retourne la valeur par défaut pour un type.

Parameters:

dtype (str) – Type de données Pandas.

Returns:

Valeur par défaut du type.

Return type:

Any

polygphys.outils.base_de_donnees.dtypes.get_type(de: str, t: Union[Any, type, str], à: str) Union[type, str]

Retourne un type ou description de type dans le bon format.

Parameters:
  • de (str) – Format de départ.

  • t (Union[Any, type, str]) – Type ou description de type dans le format de départ.

  • à (str) – Format final.

Returns:

Type ou description de type.

Return type:

Union[type, str]

gestion

…base_de_donnees.modeles

Modèles de base de données.

polygphys.outils.base_de_donnees.modeles.col_index() Column

Retourne une colonne d’index.

Returns:

Colonne d’index

Return type:

Column

polygphys.outils.base_de_donnees.modeles.créer_dbs(metadata: MetaData) MetaData

Créer les bases de données.

Parameters:

metadata (MetaData) – Schema

Returns:

Le schémas à jour.

Return type:

MetaData

polygphys.outils.base_de_donnees.modeles.etageres(metadata: MetaData) Table

Retourne le tableau des étagères.

Parameters:

metadata (MetaData) – Schema

Returns:

Une table décrivant des étagères.

Return type:

Table

polygphys.outils.base_de_donnees.modeles.locaux(metadata: MetaData) Table

Retourne le tableau des locaux.

Parameters:

metadata (MetaData) – Schema

Returns:

Une table décrivant des locaux

Return type:

Table

polygphys.outils.base_de_donnees.modeles.personnes(metadata: MetaData) Table

Retourne le tableau du personnel.

Parameters:

metadata (MetaData) – Schema

Returns:

Une table décrivant des personnes.

Return type:

Table

polygphys.outils.base_de_donnees.modeles.portes(metadata: MetaData) Table

Retourne le tableau des portes.

Parameters:

metadata (MetaData) – Schema

Returns:

Une table décrivant des portes de locaux

Return type:

Table

polygphys.outils.interface_graphique

Outils de création d’interface graphique.

En particulier pour des bases de données.

Créé le Fri Nov 26 10:41:14 2021

@author: ejetzer

class polygphys.outils.interface_graphique.InterfaceHandler(entrée: Callable[[DataFrame, Callable, type], Any], texte: Callable[[str], Any], bouton: Callable[[str, Callable], Any], demander: Callable[[str, type], Any], fenetre: Callable[[None], Any], handler: Callable[[Any], Any])

Classe de base pour créer des widgets d’interface.

Ne devrait pas être utilisé directement, mais toujours surclassé.

entrée: Callable[[str, Callable, type], Any] Une fonction qui retourne un widget d’entrée de données. Le troisième argument est le type de l’entrée demandée.

texte: Callable[[str], Any] Une fonction retournant un widget d’affichage de texte.

bouton: Callable[[str, Callable], Any] Une fonction retournant un bouton. Le second argument est la fonction appelée par le déclenchement du bouton.

demander: Callable[[str, type], Callable] Une fonction affichant un invite d’entrée d’informations. Le second argument est le type de l’entrée demandée.

…interface_graphique.html

Éléments d’interface HTML.

class polygphys.outils.interface_graphique.html.HTMLBouton(master: HTMLTable, texte: str, commande: Callable)

Bouton.

class polygphys.outils.interface_graphique.html.HTMLCellule(master: Optional[HTMLTable] = None)

Cellule de tableau HTML.

grid(row: int, column: int)

Afficher.

Parameters:
  • row (int) – DESCRIPTION.

  • column (int) – DESCRIPTION.

Returns:

DESCRIPTION.

Return type:

TYPE

class polygphys.outils.interface_graphique.html.HTMLEntrée(master: HTMLTable, texte: str, commande: Callable)

Entrée de données.

class polygphys.outils.interface_graphique.html.HTMLTable(master=None)

Tableau HTML.

grid(row: int, column: int)

Afficher.

Parameters:
  • row (int) – DESCRIPTION.

  • column (int) – DESCRIPTION.

Returns:

DESCRIPTION.

Return type:

TYPE

class polygphys.outils.interface_graphique.html.HTMLTexte(master: HTMLTable, texte: str)

Texte.

class polygphys.outils.interface_graphique.html.HTMLÉlémentInterface(master, tag: str, attrs: dict[str, str], contenu: Optional[list] = None)

Interface HTML.

grid(row: int, column: int)

Afficher.

Parameters:
  • row (int) – DESCRIPTION.

  • column (int) – DESCRIPTION.

Returns:

DESCRIPTION.

Return type:

TYPE

…interface_graphique.tableau

Manipulation et affichage de base de données.

class polygphys.outils.interface_graphique.tableau.Formulaire(handler: InterfaceHandler, db: BaseDeDonnées, table: str)

Formulaire d’entrée de données.

build()

Construire tous les widgets.

Return type:

None.

build_commandes() tuple

Construit les widgets de commandes.

Eg: boutons.

Returns:

Boutons créés.

Return type:

tuple

property children

Liste les widgets.

Returns:

Widgets.

Return type:

itertools.chain

property columnspan

Retourne le nombre de colonnes + 1 (pour l’en-tête).

destroy()

Détruire les enfants, puis nous.

Return type:

None.

destroy_children()

Détruire les enfants.

Return type:

None.

effacer()

Effacer les champs du formulaire.

Return type:

None.

grid(row: int, column: int)

Affiche le formulaire.

Parameters:
  • row (int) – Rangée initiale.

  • column (int) – Colonne initiale.

Return type:

None.

oublie_pas_la_màj(f: Callable, *args)

Force la mise à jour de la grille.

À utiliser après un changement à la base de données.

property rowspan

Retourne le nombre de rangées + 1 (pour l’index).

soumettre()

Rentre les données dans la base de données.

Return type:

None.

update_grid()

Update the grid after a change to the DataFrame.

Return type:

None.

class polygphys.outils.interface_graphique.tableau.Graphe(handler: InterfaceHandler, db: BaseDeDonnées, table: str)
build()

Construire les widgets.

Return type:

None.

grid()

Display the DataFrame.

Parameters:
  • row (int) – Rangée initiale.

  • column (int) – Colonne initiale.

Return type:

None.

update_grid()

Met l’affichage à jour.

Return type:

None.

class polygphys.outils.interface_graphique.tableau.Tableau(handler: InterfaceHandler, db: BaseDeDonnées, table: str)

Encapsulation de InterfaceHandler, avec héritage de BaseTableau.

build()

Construire les widgets.

Return type:

None.

build_commandes(rangée: int) tuple

Construire les widgets de boutons.

Eg: soummettre des données, effacer, etc.

Parameters:

rangée (int) – Rangée des widgets.

Returns:

Les widgets.

Return type:

tuple

property children

Retourne tous les widgets de l’affichage.

Returns:

Itérateur de tous les widgets.

Return type:

itertools.chain

property columnspan

Retourne le nombre de colonnes + 1 (pour l’en-tête).

destroy()

Assure la destruction des enfants avec la notre.

Return type:

None.

destroy_children()

Détruit les widgets.

Return type:

None.

grid(row: int, column: int)

Display the DataFrame.

Parameters:
  • row (int) – Rangée initiale.

  • column (int) – Colonne initiale.

Return type:

None.

oublie_pas_la_màj(f: Callable, *args) Callable

Force la mise à jour de la grille.

À utiliser après un changement à la base de données.

Parameters:
  • f (Callable) – Fonction à envelopper.

  • *args (TYPE) – Arguments transmis à f.

Returns:

F – Fonction enveloppée.

Return type:

Callable

property rowspan

Retourne le nombre de rangées + 1 (pour l’index).

update_grid()

Met l’affichage à jour.

Return type:

None.

…interface_graphique.tkinter

Interface graphique avec tkinter.

polygphys.outils.interface_graphique.tkinter.tkHandler(master: Tk, editable: bool = True) InterfaceHandler

Retourne une instance InterfaceHandler pour tk.

…interface_graphique.tkinter.onglets

polygphys.outils.reseau

Gestion de connexions réseau.

Facilite les connexions à des disques réseau ou à des VPNs.

class polygphys.outils.reseau.DisqueRéseau(adresse: str, chemin: Path, drive: str, nom: str, mdp: str, mode: str = 'smbfs', timeout: int = 1)

Disque réseau.

exists()

Vérifie l’existence.

Returns:

DESCRIPTION.

Return type:

TYPE

is_mount()

Vérifie le montage.

Returns:

DESCRIPTION.

Return type:

TYPE

mount()

Monter le disque.

Raises:
Return type:

None.

static mount_cmd(nom: str, mdp: str, url: str, mode: str, chemin: Path)

Commande de montage de disque.

static net_use_cmd(nom: str, mdp: str, url: str, drive: str)

Commande de montage Windows.

static net_use_delete_cmd(drive: str, url: str)

Commande de démontage Windows.

umount()

Démonter le disque.

Raises:
Returns:

DESCRIPTION.

Return type:

TYPE

static umount_cmd(chemin: Path)

Commande de démontage de disque.

exception polygphys.outils.reseau.ErreurDeMontage

Le montage n’a pas réussi.

exception polygphys.outils.reseau.ExceptionDisqueReseau

Exception générique avec les disques réseau.

exception polygphys.outils.reseau.LePointDeMontageExiste

Le point de montage existe déjà.

exception polygphys.outils.reseau.LePointDeMontageNExistePas

Le point de montage n’existe pas.

exception polygphys.outils.reseau.LeVolumeNEstPasMonte

Le volume n,est pas monté.

…reseau.msforms

msforms.

Suivre les modifications à des fichiers Excel contenant les résultats de formulaires.

class polygphys.outils.reseau.msforms.MSForm(config: FichierConfig)

Formulaire.

action(cadre: DataFrame)

Action à définir.

Parameters:

cadre (pd.DataFrame) – DESCRIPTION.

Return type:

None.

property colonnes

Champs du formulaire.

Returns:

DESCRIPTION.

Return type:

TYPE

convertir_champs(vieux_champs: DataFrame) DataFrame

Convertir les champs.

Parameters:

vieux_champs (pd.DataFrame) – DESCRIPTION.

Returns:

DESCRIPTION.

Return type:

TYPE

property dernière_mise_à_jour

Dernière mise à jour.

Return type:

None.

property fichier

Fichier des données.

Returns:

DESCRIPTION.

Return type:

TYPE

mise_à_jour()

Mise à jour.

Return type:

None.

nettoyer(cadre: DataFrame) DataFrame

Nettoyer les données.

Parameters:

cadre (pd.DataFrame) – DESCRIPTION.

Returns:

cadre – DESCRIPTION.

Return type:

TYPE

nouvelles_entrées() DataFrame

Charger les nouvelles entrées.

Returns:

DESCRIPTION.

Return type:

TYPE

class polygphys.outils.reseau.msforms.MSFormConfig(chemin: ~pathlib.Path, defaults: ~typing.Optional[dict] = None, dict_type: type = <class 'dict'>, allow_no_value: bool = False, *, fichier_defaut: ~pathlib.Path = PosixPath('/home/docs/checkouts/readthedocs.org/user_builds/polygphys/envs/latest/lib/python3.10/site-packages/polygphys/outils/config/default.cfg'), delimiters: tuple[str] = ('=', ':'), comment_prefixes: tuple[str] = ('#', ';'), inline_comment_prefixes: ~typing.Optional[tuple[str]] = None, strict: bool = True, empty_lines_in_values: bool = True, default_section: str = 'DEFAULT', interpolation: type = <object object>, converters: dict[str, typing.Callable] = <object object>)

Configuration de formulaire.

default()

Configuration par défaut.

Return type:

None.

Indices and tables