feat:ask and verify user inputs

This commit is contained in:
pierre.gauthier 2025-01-31 16:22:17 +01:00
parent d942e0e778
commit 661df49aa0
2 changed files with 77 additions and 0 deletions

7
__init__.py Normal file
View File

@ -0,0 +1,7 @@
from dory_sort_out import sortout
def main():
sortout()
if __name__ == "__main__":
main()

70
dory_sort_out.py Normal file
View File

@ -0,0 +1,70 @@
import time
import re
from datetime import *
def testDate(date : str):
#Pattern pour vérifier qu'il y a bien 8 chiffres, 4pour l'année, 2 pour le mois, 2 pour le jour
#permet d'exclure les erreurs de frappes, comme les "." les " " ou les lettres
pattern = r'^\d{4}\d{2}\d{2}$'
if re.match(pattern,date):
try:
datetime.strptime(date,"%Y%m%d")
return True
except ValueError:
print("Erreur dans le format de la date, veuillez la saisir comme suit AAAAMMJJ")
return False
else :
print("Erreur de frappe, la date ne noit contenir que 8 chiffres")
return False
def testSirenInsee(isPlu : bool, number : str):
if isPlu:
if len(number) == 5 and number.isdigit():
return True
else :
print("Le numero INSEE est invalide")
return False
else:
if len(number) == 9 and number.isdigit():
return True
else :
print("Le numero siren est invalide")
return False
def sortout ():
isPlu = True
#on demande si c'est un PLU ou un PLUi tant que la valeur de l'input ne correspond pas à ce que l'on attend
while True:
answer = int(input("[1] - PLU \n[2] - PLUi \nQuel type de dossier est a étudier ? :"))
if answer > 2 or answer < 1 :
print("erreur dans la saisie du choix")
print("\033[A\033[K", end="")
else:
isPlU = answer == 1
break
while True:
print("numero INSEE : " if isPlU else "numero siren : ", end="")
prefixe = input()
if(testSirenInsee(isPlu, prefixe)):
break
#On demande la date d'approbation tant que l'input est invalide
while True:
print("Date d'approbation (Format AAAAMMJJ): ", end="")
suffixe = input()
if(testDate(suffixe)):
break
#Chargement
# for i in range(100):
# print(f"{i}%")
# time.sleep(0.5)
# if i <100:
# print("\033[A\033[K", end="")