| 123456789101112131415161718192021222324252627282930313233343536373839 |
- '''
- @author: olivier.massot, sept. 2018
- '''
- import zipfile
- from path import Path, TempDir
- class ValidationReport():
- def __init__(self, title = ""):
- self.title = title
- self.errors = {}
- self.valid = True
-
- class BaseValidator():
-
- @classmethod
- def submit(cls, subject):
- """ prends un dossier ou une archive en entrée et vérifie son contenu """
- subject = Path(subject)
-
- if subject.isfile():
- with TempDir() as dirname:
- zip_ref = zipfile.ZipFile(subject, 'r')
- zip_ref.extractall(dirname)
- zip_ref.close()
- if Path(dirname / subject.stem).isdir(): # cas où l'archive contient un dossier qui lui-même contient les fichiers
- dirname /= subject.stem
- return cls._submit_folder(dirname)
-
- elif subject.isdir():
- return cls._submit_folder(subject)
- else:
- raise FileNotFoundError(f"Impossible de trouver le fichier ou répertoire: {subject}")
- @classmethod
- def _submit_folder(cls, folder):
- raise NotImplementedError()
|