|
1 | 1 | import concurrent.futures |
2 | 2 | import functools |
| 3 | +import typing |
3 | 4 |
|
4 | 5 | from caimira.calculator.validators.virus.virus_validator import VirusFormData |
5 | 6 | from caimira.calculator.store.data_registry import DataRegistry |
| 7 | +from caimira.calculator.models.models import ExposureModel |
6 | 8 | import caimira.calculator.report.virus_report_data as rg |
7 | 9 |
|
8 | 10 |
|
9 | | -def generate_form_obj(form_data, data_registry): |
| 11 | +def generate_form_obj(form_data: typing.Dict, data_registry: DataRegistry) -> VirusFormData: |
10 | 12 | return VirusFormData.from_dict( |
11 | 13 | form_data=form_data, |
12 | 14 | data_registry=data_registry, |
13 | 15 | ) |
14 | 16 |
|
15 | 17 |
|
16 | | -def generate_model(form_obj, data_registry): |
17 | | - sample_size = data_registry.monte_carlo['sample_size'] |
18 | | - return form_obj.build_model(sample_size=sample_size) |
19 | | - |
20 | | - |
21 | | -def generate_report_results(form_obj): |
| 18 | +def generate_report(form_obj: VirusFormData, report_generation_parallelism: typing.Optional[int]) -> typing.Dict: |
22 | 19 | return rg.calculate_report_data( |
23 | 20 | form=form_obj, |
24 | 21 | executor_factory=functools.partial( |
25 | | - concurrent.futures.ThreadPoolExecutor, None, # TODO define report_parallelism |
| 22 | + concurrent.futures.ThreadPoolExecutor, |
| 23 | + report_generation_parallelism, |
26 | 24 | ), |
27 | 25 | ) |
28 | 26 |
|
29 | 27 |
|
30 | | -def submit_virus_form(form_data): |
31 | | - data_registry = DataRegistry |
| 28 | +def submit_virus_form(form_data: typing.Dict, report_generation_parallelism: typing.Optional[int]) -> typing.Dict: |
| 29 | + data_registry: DataRegistry = DataRegistry() |
| 30 | + |
| 31 | + form_obj: VirusFormData = generate_form_obj(form_data=form_data, data_registry=data_registry) |
| 32 | + report_data: typing.Dict = generate_report(form_obj=form_obj, report_generation_parallelism=report_generation_parallelism) |
32 | 33 |
|
33 | | - form_obj = generate_form_obj(form_data=form_data, data_registry=data_registry) |
34 | | - model = generate_model(form_obj=form_obj, data_registry=data_registry) |
35 | | - report_data = generate_report_results(form_obj=form_obj, model=model) |
| 34 | + # Handle model representation |
| 35 | + if report_data['model']: report_data['model'] = repr(report_data['model']) |
36 | 36 |
|
37 | 37 | return report_data |
0 commit comments