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

archiv.menu5()

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

archiv.menu6()

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

archiv.menu7()

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

archiv.menu8()

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

archiv.menu9()

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

archiv.menu1()

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