Skip to content

Commit 7938207

Browse files
Merge branch 'dev' to master (sync)
2 parents 1f5a8fa + e1d20a2 commit 7938207

39 files changed

+175
-88
lines changed

Dockerfile

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM node:20-alpine as frontend_build
1+
FROM node:20-alpine AS frontend_build
22

33
WORKDIR /app
44
ADD package.json webpack.config.js ./
@@ -7,10 +7,11 @@ RUN npm install && npm install webpack
77
ADD ./assets ./assets
88
RUN npm run build
99

10-
FROM dvivanov/dis-base:v0.4
10+
FROM dvivanov/dis-base:v0.5
1111

1212
LABEL project='dis'
13-
LABEL version='0.4'
13+
LABEL version='0.5'
14+
ENV PYTHONPATH="${PYTHONPATH}:/usr/src/project/app"
1415

1516
WORKDIR /usr/src/project
1617

@@ -19,6 +20,4 @@ ADD ./db_versioning ./db_versioning/
1920
ADD ./app ./app/
2021
COPY --from=frontend_build /app/src ./src/
2122

22-
ENV PYTHONPATH "${PYTHONPATH}:/usr/src/project/app"
23-
24-
CMD ./scripts/local_start.sh
23+
CMD ["./scripts/local_start.sh"]

Dockerfile_base

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
1-
FROM python:3.10-slim-bullseye
1+
FROM python:3.12-slim-bullseye
22

33
LABEL project='dis'
4-
LABEL version='0.4-base'
4+
LABEL version='0.5-base'
55

6-
ENV LANG en_US.UTF-8
6+
ENV LANG=en_US.UTF-8
77
ENV TZ=Europe/Moscow
88

99
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
10-
11-
RUN apt update && apt install -y libreoffice-writer libreoffice-impress default-jre
10+
RUN apt update && apt install -y g++ gcc libreoffice-writer libreoffice-impress default-jre
1211

1312
ADD requirements.txt .
1413
RUN python3 -m pip install -r requirements.txt --no-cache-dir

app/db/clear_users.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@
44

55
logger = logging.getLogger('root_logger')
66

7-
client.drop_database('dis-db')
8-
logger.info("Вся информация очищена!")
7+
8+
def drop_database():
9+
client.drop_database('pres-parser-db')

app/main/check_packs/base_criterion_pack.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
import logging
2+
import traceback
23
from .utils import init_criterions
34

45
logger = logging.getLogger('root_logger')
56

67
PRIORITY_CHECK_FAILED_MSG = "<b>Данный критерий является обязательным для прохождения.<br>Результат всей проверки обнулен, но вы можете ознакомиться с результатами каждого критерия.</b><br>"
7-
UNEXPECTED_CHECK_FAIL_MSG = "<b>Во время проверки произошла ошибка, попробуйте позже или обратитесь к администратору системы.<b>"
8+
UNEXPECTED_CHECK_FAIL_MSG = "<b>Во время проверки произошла ошибка: проверьте соответствия оформления файла шаблона (в том числе разделов и уровней заголовков), попробуйте позже или обратитесь к администратору системы.<b>"
89

910
class BaseCriterionPack:
1011

@@ -26,8 +27,10 @@ def check(self):
2627
try:
2728
criterion_check_result = criterion.check()
2829
except Exception as e:
29-
err_msg = f'{criterion.id}: oшибка во время проверки: {e}'
30+
trace_msg = traceback.format_exc()
31+
err_msg = f'{criterion.id}: oшибка во время проверки: {e} ({trace_msg[len(trace_msg)//2:]})'
3032
logger.error(err_msg)
33+
logger.error(trace_msg)
3134
criterion_check_result = {'score': 0, 'verdict': [UNEXPECTED_CHECK_FAIL_MSG, f"Информация об ошибке для администратора: {err_msg}"]}
3235
if criterion.priority and not criterion_check_result['score']:
3336
failed_priority_check = True
@@ -72,5 +75,5 @@ def get_proportion(result):
7275
score = 0.
7376
for check in result:
7477
score += float(check['score'])
75-
return score, len(result)
78+
return round(score, 2), len(result)
7679

app/main/checks/base_check.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import pymorphy2
1+
import pymorphy3
22

3-
morph = pymorphy2.MorphAnalyzer()
3+
morph = pymorphy3.MorphAnalyzer()
44

55

66
def answer(mod, *args):

app/main/checks/presentation_checks/find_theme_in_pres.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import nltk
88
from nltk.tokenize import word_tokenize, sent_tokenize
99
from nltk.corpus import stopwords
10-
from pymorphy2 import MorphAnalyzer
10+
from pymorphy3 import MorphAnalyzer
1111

1212

1313
MORPH_ANALYZER = MorphAnalyzer()

app/main/checks/report_checks/find_theme_in_report.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import string
77
from nltk.tokenize import word_tokenize, sent_tokenize
88
from nltk.corpus import stopwords
9-
from pymorphy2 import MorphAnalyzer
9+
from pymorphy3 import MorphAnalyzer
1010

1111

1212
MORPH_ANALYZER = MorphAnalyzer()

app/main/checks/report_checks/sw_keywords_check.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
from nltk.tokenize import word_tokenize
55
from nltk.corpus import stopwords
6-
from pymorphy2 import MorphAnalyzer
6+
from pymorphy3 import MorphAnalyzer
77
from ..base_check import BaseReportCriterion, answer
88

99

app/main/reports/md_uploader/md_uploader.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ def build_chapter_tree(self, chapters):
176176
while len(stack) > level:
177177
stack.pop()
178178

179-
parent = stack[-1]
179+
parent = stack[-1] if stack else []
180180
new_chapter = {
181181
'name': chapter['name'],
182182
'text': chapter['text'],

app/main/reports/pdf_document/pdf_document_manager.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11

22
# import pdfplumber
3-
import fitz
3+
import pymupdf
44

55

66
from app.utils import convert_to
@@ -9,10 +9,10 @@ class PdfDocumentManager:
99
def __init__(self, path_to_file, pdf_filepath):
1010
if not pdf_filepath:
1111
# self.pdf_file = pdfplumber.open(convert_to(path_to_file, target_format='pdf'))
12-
self.pdf_file = fitz.open(convert_to(path_to_file, target_format='pdf'))
12+
self.pdf_file = pymupdf.open(convert_to(path_to_file, target_format='pdf'))
1313
else:
1414
# self.pdf_file = pdfplumber.open(pdf_filepath)
15-
self.pdf_file = fitz.open(pdf_filepath)
15+
self.pdf_file = pymupdf.open(pdf_filepath)
1616
self.pages = [self.pdf_file.load_page(page_num) for page_num in range(self.pdf_file.page_count)]
1717
self.page_count_all = self.pdf_file.page_count
1818
# self.page_count = len(self.pages)
@@ -34,7 +34,7 @@ def page_images(self, page_without_pril):
3434
total_height = 0
3535
for page_num in range(page_without_pril):
3636
page = self.pdf_file[page_num]
37-
images = self.pdf_file.get_page_images(page)
37+
images = self.pdf_file.get_page_images(page_num)
3838
for image in images:
3939
image_coord = page.get_image_bbox(image[7], transform=0) # might be [1.0, 1.0, -1.0, -1.0]
4040
image_height = image_coord[3] - image_coord[1]

0 commit comments

Comments
 (0)