-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
465 class document uploader #470
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
По формату (или вернее по содержанию) MD-файлов, которые мы предполагаем парсить - см. ниже
requirements.txt
Outdated
@@ -27,4 +27,5 @@ pdfplumber==0.6.1 | |||
pytest~=7.1.2 | |||
filetype==1.2.0 | |||
language-tool-python==2.7.1 | |||
md2pdf |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Закрепите версию
@@ -1,42 +1,206 @@ | |||
'''Available checks for md-file: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Самое основное - мы пока хотим парсить md-файлы, содержащие не ВКР (писать в нём дипломы, наверно, уже какое-то извращение), а некоторый текст, оформленный по стилю (https://docs.github.com/ru/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax)
Если конкретные примеры - то это md-файлы отсюда - https://github.com/moevm/scientific_writing-2023/tree/main/0382_Gudov_NR - студенты 4го курса выполняют задания, мы хотим парсить их решения и проверять в рамках нашей системы
Поэтому предлагаю сильно упростить класс избавив его от нагрузки, созданной ВКР (титульные листы, задания, введение, приложения и прочий ужас, стилей аналогичных DOCX соответственно тоже нет) - важно распарсить так, чтобы сохранить исходные разделы/подразделы/текст, и плюсом ссылки/таблицы
- раздел с литературой держать отдельно будет полезно*
app/server.py
Outdated
|
||
# сохраняем те форматы, в которых НЕ НУЖНО проверять MIME: | ||
NOT_MIME_TYPE = {'md'} | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Чтобы не добавлять логику по обходу непроверяемых форматов - добавьте MIME-тип для md+файла (это просто текстовый файл, поэтому тип text/plain
)
Почему проверять тип всё-таки стоит - никто не запретит "злоумышленнику" переименовать какой-то другой формат в md - загрузить его и сломать наш парсер (а может и систему) - проверив тип, и увидев, что это не просто text/plain
можем развернуть его со словами "жулик, уходи"
Наработки вмержены в #471 |
Создан абстрактный класс для двух форматов, md и docx, класс MdUpload модифицирован так, чтобы по возможности сохранить большинство существующих проверок.
Добавлена возможность конвертации в формат pdf.
Список доступных проверок в файле md_uploader.py