Dory/dory_sort_out.py

71 lines
2.1 KiB
Python

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="")