Skip to content

Commit 4b1fa83

Browse files
authored
Merge pull request #6 from kubantjan/test-pr
Improve tests, fix a little bit
2 parents 0a44774 + 221167e commit 4b1fa83

File tree

6 files changed

+25
-11
lines changed

6 files changed

+25
-11
lines changed

conda.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@ name: fast-form
22
channels:
33
- conda-forge
44
dependencies:
5-
- python=3.7.9
5+
- python=3.7.10
66
- poppler=20.09.0

fast_form/outputting/process_document.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import logging
22
import os
3+
from typing import Optional
34

45
from fast_form.config.configuration_dataclasses import ProcessingConfig
56
from fast_form.field_recognizer.recognize_all import recognize
@@ -13,11 +14,12 @@
1314

1415

1516
def process_document_and_add_to_validation_excel(document_path: str, processing_config: ProcessingConfig,
16-
excel_path: str):
17+
excel_path: str, patient_id: Optional[str] = None):
1718
if os.path.exists(document_path):
18-
maybe_patient_id = os.path.basename(document_path).split(".")[0]
19+
if not patient_id:
20+
patient_id = os.path.basename(document_path).split(".")[0]
1921
form_data = process_document(processing_config, document_path=document_path)
20-
df, images = output_data(form_data, maybe_patient_id=maybe_patient_id)
22+
df, images = output_data(form_data, maybe_patient_id=patient_id)
2123

2224
save_data(df, images, excel_path=excel_path)
2325
else:

fast_form/outputting/utils_for_main.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@
33
import os
44

55
import dacite
6+
import openpyxl
67
import pandas as pd
78
from openpyxl import load_workbook
89

910
from fast_form.config.configuration_dataclasses import PathsForProcessingConfig
1011
from fast_form.config.configuration_loading import get_processing_config
1112
from fast_form.outputting.process_document import process_document_and_add_to_validation_excel
13+
from fast_form.structure_parser.form_structure_dataclasses import FieldType
1214

1315
SHEET_WITH_RESULTS = "automatic_results"
1416
VALIDATION_EXCEL_NAME = "validation_excel.xlsx"
@@ -25,7 +27,7 @@ def process_to_validation_excel(paths_for_processing_config: PathsForProcessingC
2527
document_names = [file for file in os.listdir(paths_for_processing_config.folder_with_documents_path) if
2628
file.endswith('.pdf') or file.endswith(".jpg") or file.endswith(".png")]
2729
logger.info(f"Processing to validation excel from {paths_for_processing_config.folder_with_documents_path}. Number"
28-
f" of documents is {len(document_names)}")
30+
f" of documents is {len(document_names)}")
2931
for document_name in document_names:
3032
logging.debug(f"Processing document {document_name}")
3133
process_document_and_add_to_validation_excel(
@@ -48,6 +50,7 @@ def process_to_final_excel(paths_for_processing_config: PathsForProcessingConfig
4850
one_patient_per_row_df = (
4951
validation_df
5052
.set_index(['patient_id', 'name'])
53+
.loc[lambda df: df.field_type == FieldType.SINGLE_CHOICE]
5154
.data
5255
.apply(lambda response_or_error: response_or_error if response_or_error >= 0 else "")
5356
.unstack(level=1)
@@ -65,8 +68,10 @@ def process_to_final_excel(paths_for_processing_config: PathsForProcessingConfig
6568
sheet_name=SHEET_WITH_RESULTS)
6669

6770
combined_one_patient_per_row_df = one_patient_per_row_df.combine_first(old_one_patient_per_row_df)
71+
book = load_workbook(paths_for_processing_config.final_excel_path)
72+
else:
73+
book = openpyxl.Workbook()
6874

69-
book = load_workbook(paths_for_processing_config.final_excel_path)
7075
writer = pd.ExcelWriter(paths_for_processing_config.final_excel_path, engine='openpyxl')
7176
if SHEET_WITH_RESULTS in book.sheetnames:
7277
book.remove(book[SHEET_WITH_RESULTS])

fast_form/tests/test_basic_questionnaire.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
from fast_form.config.configuration_loading import get_processing_config
77
from fast_form.outputting.ouput_data import output_data
88
from fast_form.outputting.process_document import process_document, process_document_and_add_to_validation_excel
9-
from fast_form.outputting.utils_for_main import load_paths_for_processing_config, VALIDATION_EXCEL_NAME
9+
from fast_form.outputting.utils_for_main import load_paths_for_processing_config, VALIDATION_EXCEL_NAME, \
10+
process_to_final_excel
1011

1112

1213
class TestWholeProcess(unittest.TestCase):
@@ -35,7 +36,10 @@ def test_process_to_excel(self):
3536
os.remove(validation_excel_path)
3637
process_document_and_add_to_validation_excel(document_path=self.document_path,
3738
processing_config=self.processing_config,
38-
excel_path=validation_excel_path)
39+
excel_path=validation_excel_path,
40+
patient_id="test1")
3941
process_document_and_add_to_validation_excel(document_path=self.document_path,
4042
processing_config=self.processing_config,
41-
excel_path=validation_excel_path)
43+
excel_path=validation_excel_path,
44+
patient_id="test2")
45+
process_to_final_excel(self.paths_for_processing_config)

fast_form/tests/test_special_questionnaire.py

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

44
from fast_form.config.configuration_loading import get_processing_config
55
from fast_form.outputting.process_document import process_document_and_add_to_validation_excel
6-
from fast_form.outputting.utils_for_main import load_paths_for_processing_config, VALIDATION_EXCEL_NAME
6+
from fast_form.outputting.utils_for_main import load_paths_for_processing_config, VALIDATION_EXCEL_NAME, \
7+
process_to_final_excel
78

89

910
class TestWholeProcess(unittest.TestCase):
@@ -21,3 +22,4 @@ def test_process_to_excel(self):
2122
process_document_and_add_to_validation_excel(document_path=self.document_path,
2223
processing_config=self.processing_config,
2324
excel_path=self.validation_excel_path)
25+
process_to_final_excel(self.paths_for_processing_config)

setup.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,10 +81,11 @@
8181
# requirements files see:
8282
# https://packaging.python.org/en/latest/requirements.html
8383
install_requires=[
84+
'scipy<=1.4.1'
8485
'numpy>=1.18.3',
8586
'opencv-contrib-python>=4.4.0.42',
86-
'pandas>=1.1.4',
8787
'tensorflow<=2.1.0',
88+
'pandas>=1.1.4',
8889
'keras<=2.3.1',
8990
'autopep8>=1.5.4',
9091
'dacite>=1.5.1',

0 commit comments

Comments
 (0)