71 lines
2.1 KiB
Python
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="")
|