Détails : archiv¶
- archiv.debug(msg)¶
Affiche le nom de la fonction appelée et valeurs de ses paramètres.
Note
Cette fonction réduit le code dans les fonctions appelantes à sa plus simple expression. (Pas de “if DEBUG”)
Au fur et à mesure des tests, il suffit de commenter la ligne débutant par debug().
Elle permet de coder un formatage de sortie.
Elle peut être appelée par toutes les fonctions …
- Variables
DEBUG (bool) –
- Parameters
msg (str) – En pratique, = nom de la fonction suivi des valeurs de ses paramètres.
2021-12-12 22:44:04
- archiv.quitter()¶
Cette procédure (sub) met fin au programme (proprement).
Note
Si le programme est fermé brutalement (= sans passer par cette procédure),
par exemple en cliquant sur la croix de fermeture, un fichier pourrait être créé par la base de données (*-journal) où * est le nom du fichier ouvert.
- Variables
CNX (object) –
CC_DB (str) –
2021-12-12 16:44:04
- archiv.connection()¶
Cette procédure (sub) crée une connexion à la base de donnée.
Elle requiert “import sqlite3”.
- Variables
CNX (object) – affectée
CC_DB (str) –
CUR (object) – affectée
2021-12-12 16:44:04
- archiv.input2(msg, str_carac='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_', isCaracOK=True, isVideOK=False)¶
Cette fonction retourne une string composée de caractères autorisés.
- Parameters
msg (str) – message affiché avant le curseur
str_carac (str) – liste des caractères. Par défaut, vaut CARAC_64
isCaracOK (bool) –
True (par défaut)
Si True, second argument = la liste des caractères autorisés
Si False, second argument = liste des caractères interdits
NB : Le contrôle est sûr en n’autorisant que des caractères autorisés,
mais plus lent si quasi tous les caractères sont autorisés
isVideOK (bool) –
False (par défaut)
Si True, la valeur de retour peut être vide
Si False, la valeur de retour ne peut pas être vide
- Returns
Une string tapée (ou collée) par l’utilisateur
- Return type
str
2021-12-12 16:44:04
- archiv.affichStruct()¶
Cette procédure (sub) permet d’afficher la structure de la base de données.
2021-12-12 16:44:04
- archiv.askExecutSQL(sql, isOK=True, msg_OK='', msg_KO='', isSQL=False)¶
Cette procédure (sub), appelée par (de très nombreuses procédure ou fonctions) tente d’altérer la base de données.
- Variables
CUR (object) –
- Parameters
sql (str) – String représentant la requête SQL.
isOK (bool) – Si True, un message (vide ou non) de confirmation de l’exécution sera affiché.
msg_OK (str) – Message de confirmation de l’exécution
msg_KO (str) – Message d’échec de l’exécution
isSQL (bool) – Si true, la string représentant la requête SQL sera affichée avant la tentative d’exécution
2021-12-12 21:10:04
- archiv.effacEcran()¶
Cette procédure (sub) efface l’écran (du terminal).
Elle requiert “import platform”.
Warning
L’effacement de l’écran n’a pas lieu lorsque le programme est lancé via l’éditeur IDLE. Ni sous Mac?
2021-12-12 16:44:04
- archiv.create_DB()¶
Cette fonction crée une base de données (ou affiche un message d’erreur) et retourne le nom court du fichier (DB).
Note
Taille du nouveau fichier = 45.056 octets
Elle requiert : import os
- Variables
CC_DB (str) – affecté
CLS (bool) –
FILENAME (str) –
2021-12-12 16:44:04
- archiv.copy(afterOpenDB=True)¶
Cette procédure (sub) crée une copie horodatée de la DB
Elle requiert “from datetime import datetime” et “import os”
- Variables
CNX (object) –
CC_DB (str) –
CLS (str) –
2021-12-12 16:44:04
- archiv.decrypt()¶
- archiv.crypt()¶
- archiv.openDB()¶
Cette procédure (sub) affiche la liste des DB (dans le dossier de cette application) ou ouvre la seule DB ou crée une DB et l’ouvre.
Elle requiert “import os”.
- Variables
CC_DB (str) – affectée
CLS (str) –
2021-12-12 23:34:04
- archiv.goMenu()¶
Cette procédure (sub) permet de revenir au menu précédent.
- Variables
nMENU (int) –
2021-12-12 16:44:04
- archiv.getIntPositif(msg, a=1, b=99999999)¶
Cette fonction demande à l’utilisateur de taper un nombre entier positif, jusqu’à ce que le nombre soit valide.
- Parameters
msg (str) – label du champ input() message précédant la réponse de l’utilisateur
a (int) – facultatif (vaut alors 1), = limite inférieure comprise
b (int) – facultatif (vaut alors quasi cent millions), = limite supérieure comprise
- Returns
un nombre entier positif (entre a compris et b compris)
- Return type
int
2021-12-12 16:44:04
- archiv.ask2ID(msg1="entre l'ID > 0", msg2="et l'ID >= ")¶
Cette fonction demande à l’utilisateur deux nombres entiers
- Parameters
msg1 (str) – Facultatif, message lié au premier nombre demandé
msg2 (str) – Facultatif, message lié au second nombre demandé
- Returns
retourne deux int dont le premier (>0) est inférieur au second
- Return type
tuple
2021-12-12 16:44:04
- archiv.isDateValid(date_string)¶
Cette fonction retourne True, si la date est valide.
Elle requiert “from datetime import datetime”.
- Parameters
date_string (str) – string censée représenter une date
2021-12-12 16:44:04
- archiv.getAAAAMMJJ(msg, dateX='2099-12-31')¶
Cette fonction demande une date, jusqu’à ce qu’elle soit valide.
- Parameters
msg (str) – label précédant input()
dateX (str) – facultatif (vaut alors 2099-12-31)
Note
Si la date fournie est +x, il est ajouté x années à la date par défaut
Si la date fournie est -JJ, la date est AAAA-MM- (d’aujourd’hui) + JJ
- Returns
Retourne une date valide
- Return type
str (au format AAAA-MM-JJ)
2021-12-12 16:44:04
- archiv.choisir(myTuple, msg='')¶
Cette fonction affiche (dans un colonne) une série d’ID et demande d’en choisir un.
Note
affichTableau() affiche dans n colonnes
=> = version améliorée de choisir()
- Parameters
myTuple (tuple) – Un ensemble d’enregistrements
dont le premier champ est de type un int (ID) et le second de type string (nom)
- Parameters
msg (str) – facultatif (vaut alors “”) Un texte servant à informer l’utilisateur
- Returns
Un seul enregistrement sous forme d’un ‘tuple’ ou ‘None’
- Return type
tuple ou None
2021-12-14 11:18:04
- archiv.affichTableau(myTuple, msg, nbCol=4, isReturnID=True)¶
En construction : (non appelée)
Cette fonction affiche un tableau de n colonnes où chaque cellule affiche un nombre entier suivi de ” : “, suivi d’un mot de taille inférieur à 25 caractères Puis, demande de choisir un de ses nombres. Puis, elle retourne le nombre choisi ou la liste diminuée de l’élément choisi.
- Parameters
myTuple (tuple) – Un ensemble de tuples
dont le premier champ est de type un int (ID) et le second de type string (nom)
- Parameters
msg (str) – facultatif (vaut alors “”) Un texte servant à informer l’utilisateur
2021-12-18 15:26:04
- archiv.detail3(where)¶
Cette fonction affiche la fiche en détail et la retourne (au format ‘tuple’).
- Variables
CUR (object) –
- Parameters
where (str) – est la fin de la requête.
Note
Cette string débute toujours par ” WHERE ” (avec un espace avant WHERE) et se termine par ” id_fiche=… ;” (avec = qui colle à id_fiche), pour ne pas confondre la condition et le champ à afficher)
- Returns
l’enregistrement de la fiche (tous ses champs)
- Return type
tuple
2021-12-12 17:16:04
- archiv.isIDexist(str_id)¶
Cette fonction indique si la fiche existe ou pas
- Variables
CUR (object) –
- Returns
True, si la fiche existe.
- Return type
bool
2021-12-12 16:44:04
- archiv.lastID(isAffichage=True)¶
La fonction retourne un dernier ID utilisé.
- Variables
CUR (object) –
- Parameters
isAffichage (bool) – indique que si l’ID est trouvé, il doit être affiché
- Returns
dernier ID utilisé (ou None, s’il n’existe pas de dernière fiche tel qu’après la création de la DB).
- Return type
int
2021-12-12 16:44:04
- archiv.lowID()¶
Cette retourne le premier ID non-utilisé.
Note
Lorsqu’un enregistrement est supprimé, son ID est “brulé”. Lors de la prochaine insertion d’un nouvel enregistrement, il ne sera pas repris, si ce champ ID est défini comme AutoIncrement. Sauf si l’ID est imposé lors de l’insertion. Comme ce champ ID est aussi PRIMARY, il ne peut y avoir de doublons. Autrement dit, l’ID ne peut être imposé que s’il n’existe pas. Cette fonction retourne ce premier ID non-utilisé.
- Variables
CUR (object) –
- Returns
Une string représentant le premier ID libre (pour une fiche)
- Return type
str
2021-12-12 16:44:04
- archiv.multiLignes(msg)¶
Cette fonction affiche le message passé en argment (sur une ligne) et, au début de la ligne suivante, permet de taper plusieurs lignes, une à une. Lorsqu’on ne tape plus rien, la fonction retourne une string avec une fin de ligne pour chaque ligne tapée.
Warning
Le caractère (“) est automatiquement remplacé par (‘)
- Parameters
msg (str) – Message affiché (qui peut être vide)
- Returns
Une string (qui peut contenir des retours de lignes)
- Return type
str
2021-12-12 16:44:04
- archiv.position(str_num_fard)¶
Cette fonction retourne une position possible (non déjà occupée) dans le conteneur identifié par le paramètre.
- Variables
CUR (object) –
- Parameters
str_num_fard (str) – ID du conteneur choisi
- Returns
Une string représentant un nombre (position libre)
- Return type
str
2021-12-12 16:44:04
- archiv.nbFiches()¶
Cette fonction etourne le nombre de fiches au format <’int’>
- Variables
CUR (object) –
- Returns
Nombre de fiches au format <’int’>
- Return type
int
2021-12-12 16:44:04
- archiv.numFard(sansNB=True, status='')¶
Cette fonction affiche la liste des conteneurs (s’il en existe un).
Note
Même s’il n’existe qu’un seul conteneur, rien ne garantit que son ID soit 1 => afficher la liste malgré tout
- Variables
CUR (object) –
- Parameters
sansNB (bool) –
True, sans son nombre de documents (contenus dans le conteneur)
False, avec son nombre de documents
status (str) –
doit être :
”Y” => n’affiche que les conteneurs non-remplissable
ou “N” => n’affiche que les conteneurs remplissable
ou “” (vide) => affiche tous les conteneurs (valeur par défaut)
- Returns
Elle retourne un ‘tuple’ (l’enregistrement) ou None.
- Return type
tuple ou None
Note
Le premier élément de ce tuple ([0]) est de type <’int’>
2021-12-12 16:44:04
- archiv.numTypDoc(isAsk=True)¶
Cette fonction retourne un ‘tuple’ (l’enregistrement) ou rien.
Note
Le premier élément de ce tuple ([0]) est de type <’int’>
- Variables
CUR (str) –
- Parameters
isAsk (bool) –
Note
Même s’il n’existe qu’un seul type de documents,
rien ne garantit que son ID soit 1 => afficher la liste malgré tout.
2021-12-12 16:44:04
- archiv.numPersonne(msg, isAsk=True)¶
Cette fonction retourne un ‘tuple’ (l’enregistrement) ou rien.
Note
Le premier élément de ce tuple ([0]) est de type <’int’>
- Variables
CUR (str) –
- Parameters
msg (str) –
isAsk (bool) –
2021-12-12 16:44:04
- archiv.numMotCle(isAsk=True)¶
Cette fonction retourne un ‘tuple’ (l’enregistrement) ou rien.
Note
Le premier élément de ce tuple ([0]) est de type <’int’>
Elle appelle : effacEcran(), askExecutSQL() et choisir().
- Variables
CUR (str) –
- Parameters
isAsk (bool) –
2021-12-12 16:44:04
- archiv.ask2Dates(msg1='Entre : ', msg2='Et : ')¶
Cette fonction demande deux dates, jusqu’à ce qu’elles soient valides Si la seconde n’est pas donnée, elle vaudra aujourd’hui au format AAAA-MM-JJ
Elle requiert : import datetime
- Parameters
msg1 (str) – label devant le premier input()
msg2 (str) – label devant le second input()
- Returns
un couple de dates, dont la première est inférieure (ou égale) à la seconde
- Return type
tuple (date1,date2)
2021-12-12 16:44:04
- archiv.trouver()¶
Cette procédure (sub) affiche la liste des critères, demande d’en sélectionner, et affiche toutes les fiches trouvées (en détail)
- Returns
Retourne un ensemble d’enregistrements ou None
- Return type
tuple ou None
2021-12-12 17:19:04
- archiv.affPeu(sql2)¶
Cette procédure (sub) présente un affichage réduit de plusieurs fiches.
Note
Cet affichage n’utilise pas de jointures (=> rapide)
- Parameters
sql2 (str) – suite de la requête
2021-12-12 16:44:04
- archiv.inFard()¶
Cette procédure (sub) affiche les fiches entre les postions A et B (d’un conteneur)
- Variables
CLS (bool) –
2021-12-12 16:44:04
- archiv.affichLast()¶
La procédure (sub) affiche les n dernières fiches ayant les dates de modification les plus récentes.
- Variables
CLS (bool) –
2021-12-13 00:17:04
- archiv.insert_fiches(oldID='')¶
Cette procédure (sub) permet d’ajouter une fiche.
Note
Par défaut, la date de production est la date actuelle. Par défaut, la date de fin d’archivage est 2099-12-31. Par défaut, le num_fard = 19
L’argument peut être vide (=> autoIncrement) ou valoir ‘True’ (=> lowID) ou ‘False’ (=> myID)
Elle requiert “from datetime import datetime”
- Parameters
oldID (str) –
Note
Le destinataire peut être le producteur. C’est voulu.
2021-12-12 17:24:04
- archiv.insert_typDoc()¶
Cette procédure (sub) permet d’ajouter un type de document.
Note
Cette procédure doit être utilisée avec parcimonie pour éviter ensuite de devoir choisir dans une liste trop longue.
2021-12-12 17:35:04
- archiv.insert_personne()¶
Cette procédure (sub) permet d’ajouter un “nom” de personne.
Note
Cette procédure doit être utilisée avec parcimonie pour éviter ensuite de devoir choisir dans une liste trop longue.
2021-12-12 17:28:04
- archiv.insert_conteneur()¶
Cette procédure (sub) permet d’ajouter un nom de conteneur et son emplacement.
Note
Cette procédure doit être utilisée avec parcimonie pour éviter ensuite de devoir choisir dans une liste trop longue.
2021-12-12 16:44:04
- archiv.insert_motCle()¶
Cette procédure (sub) permet d’ajouter un mot-clé.
Note
Cette procédure doit être utilisée avec parcimonie pour éviter ensuite de devoir choisir dans une liste trop longue.
2021-12-12 17:32:04
- archiv.update_description()¶
La procédure (sub) met à jour le champ ‘description’.
2021-12-14 11:00:04
- archiv.update_dateDelete()¶
La procédure (sub) met à jour le champ ‘dateDelete’.
2021-12-14 12:08:04
- archiv.update_nomConteneur()¶
La procédure (sub) met à jour le champ ‘nomConteneur’.
- Variables
ALL_CARAC (str) –
2021-12-12 17:50:04
- archiv.update_emplacement()¶
La procédure (sub) met à jour le champ ‘emplacement’.
- Variables
ALL_CARAC (str) –
2021-12-12 17:51:04
- archiv.update_isRempli()¶
La procédure (sub) met à jour le champ ‘isRempli’.
2021-12-12 17:52:04
- archiv.update_nomPersonne()¶
La procédure (sub) met à jour le champ ‘nomPersonne’.
- Variables
WORD_FR (str) –
2021-12-12 17:54:04
- archiv.update_nomTypDoc()¶
La procédure (sub) met à jour le champ ‘nomTypDoc’.
- Variables
ALL_CARAC (str) –
2021-12-12 18:12:04
- archiv.update_motCle()¶
La procédure (sub) met à jour le champ ‘motCle’.
- Variables
ALL_CARAC (str) –
2021-12-12 18:14:04
- archiv.del_fiches()¶
Cette procédure permet de supprimer des fiches.
2021-12-12 18:17:04
- archiv.del_numTypDoc()¶
Cette procédure permet de supprimer des types de documents, après vérification qu’aucune fiche ait ce ‘numTypDoc’
Warning
Procédure dangereuse
2021-12-12 16:44:04
- archiv.detail(id_fiche=0)¶
Menu 1.3. Cette procédure (sub) affiche tout sur une fiche.
- Parameters
id_fiche (int) – nombre donné par le pgm => il existe en principe
2021-12-12 16:44:04
- archiv.optionCLS()¶
Menu 9.2 : Cette procédure (sub) peut modifier une variable globale CLS.
- Variables
CLS (bool) – affectée
2021-12-12 18:10:04
- archiv.IDvides()¶
Menu 9.3 : Cette procédure (sub) permet d’afficher les ID de fiches “brulés” (= non lié à un document) et de créer une fichier les contenant.
- Variables
CUR (object) –
2021-12-12 16:44:04
- archiv.detail2()¶
Menu 9.4 : Cette procédure (sub) permet d’afficher une fiche, si on connaît son conteneur et sa position dans celui-ci (afin de vérifier la fiche).
2021-12-12 16:44:04
- archiv.moveDoc(isInterne)¶
Menu 9.5 et 9.6 : Cette procédure permet de tenir compte du déplacement d’un document.
- Variables
CUR (object) –
- Pararm bool isInterne
Si True, le document a été déplacé dans le même conteneur
Si False, le document a été déplacé dans un autre conteneur
2021-12-15 11:24:04
- archiv.infos()¶
menu 9.7 : Cette procédure (sub) affiche des informations sur la DB
- Variables
CLS (bool) –
2021-12-12 16:44:04
- archiv.execute()¶
Cette procédure (sub) permet d’exécuter une requête SQL. Et, donc, de gérer toute la base de données ! Une copie de la DB est faite si la requête (non vite) ne débute pas par “SELECT” (ou “select”) Dans le cas contraire, les enregistrements sont affichés.
- Variables
CLS (bool) –
CUR (object) –
2021-12-14 12:25:04
Cette procédure (sub) affiche le menu 1.5, dédiée aux requêtes SELECT.
- Variables
nMENU (int) – affectée
2021-12-12 16:44:04
Cette procédure (sub) affiche le menu 1.6, dédiée aux requêtes INSERT.
- Variables
nMENU (int) – affectée
2021-12-12 16:44:04
Cette procédure (sub) affiche le menu 1.7, dédiée aux requêtes UPDATE.
- Variables
nMENU (int) – affectée
2021-12-12 16:44:04
Cette procédure (sub) affiche le menu 1.8, dédiée aux requêtes DELETE.
- Variables
nMENU (int) – affectée
2021-12-12 16:44:04
Cette procédure (sub) affiche le menu 1.9, un ensemble d’actions.
- Variables
nMENU (int) – affectée
2021-12-12 16:44:04
- archiv.test()¶
Cette procédure vise à tester des fonctions de ce programme. Elle doit donc être la dernière fonction, déclarée avant menu1() qui l’appelle
2021-12-12 16:44:04
Cette procédure (sub) affiche le menu principal qui affiche les actions principales et permet d’appeler d’autres menus
Note
Les actions sont nommées par un verbe à l’infinitif et identifiées par un numéro.
- Variables
nMENU (int) – affectée
2021-12-12 16:44:04
- archiv.main()¶