DocValidator — это инструмент для проверки содержимого каталога документов по заранее заданным требованиям. Программа умеет искать обязательные файлы, проверять расширения, обнаруживать пустые и лишние файлы, а затем формировать отчет в текстовом, JSON или CSV формате.
- проверять существование целевого каталога;
- загружать требования из JSON-файла;
- искать файлы по имени и допустимым расширениям;
- выявлять отсутствующие, пустые и лишние файлы;
- формировать отчет в формате
.txt,.json,.csv,.pdf; - работать как через CLI, так и через графический интерфейс на базе
tkinter.
- Перейти в корень проекта.
- Создать виртуальное окружение и установить зависимости:
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtОсновная команда запуска:
python3 -m doc_validator.main <target_dir> [-r requirements.json] [-o report.txt] [-f txt|json|csv] [--full] [--debug]target_dir— обязательный путь к каталогу, который нужно проверить;-r,--requirements— путь к JSON-файлу требований;-o,--output— путь к файлу отчета. Если не указан, отчет выводится в консоль;-f,--format— формат отчета:txt,json,csvили.pdf;--full— включить более подробный вывод в консоль;--debug— включить подробные служебные сообщения.
python3 -m doc_validator.main examples/documents -r examples/expected_files.jsonpython3 -m doc_validator.main examples/documents -r examples/expected_files.json -o output/report.txt -f txt --fullpython3 -m doc_validator.main examples/documents -r examples/expected_files.json -o output/report.json -f json --debugГрафический интерфейс реализован в файле gui.py.
python3 gui.pyВ интерфейсе можно:
- выбрать каталог для проверки;
- ввести список ожидаемых файлов;
- включить рекурсивный поиск;
- включить проверку пустых и лишних файлов;
- сохранить отчет в файл или вывести его в окно интерфейса.
Файл требований должен быть JSON-объектом со следующими полями:
required_files— список ожидаемых файлов;settings— настройки проверки (recursive,check_empty_files,detect_extra_files).
Пример можно увидеть в файле examples/expected_files.json.
{
"required_files": [
{
"name": "report",
"allowed_extensions": [".pdf", ".docx"],
"required": true
}
],
"settings": {
"recursive": true,
"check_empty_files": true,
"detect_extra_files": true
}
}Для ожидаемых файлов поддерживаются следующие расширения:
.txt.doc.docx.pdf.xls.xlsx.ppt.pptx
- отчеты поддерживаются только в форматах
.txt,.json,.csvи.pdf; - проверка выполняется последовательно;
- интерфейс и отчеты ориентированы на русский язык;
- файлы без расширения и файлы с неподдерживаемыми расширениями не участвуют в проверке как ожидаемые документы.
Проект реализован и готов к использованию как CLI-приложение и как GUI-приложение.