From 5e5bc08daabcef1dab3123fcb6b4ecd824370900 Mon Sep 17 00:00:00 2001 From: lb584 <lb584@cam.ac.uk> Date: Tue, 3 Sep 2024 15:49:39 +0100 Subject: [PATCH] getting ready for full epi-fit on prod server. --- .gitlab-ci.yml | 2 +- ews/coordinator/processor_epidemiology.py | 4 ++-- ews/coordinator/utils/processor_utils.py | 12 +++++------- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 95c0d0b..bfa3266 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -142,7 +142,7 @@ epi_fit: python3 $PACKAGES_DIR/epimodel/ews/epi_model/fit_lb584.py /storage/app/EWS_prod/regions/EastAfrica/test_workspace/integration/epi_fit/dev/data_proc/6.0_epi_pipeline/inputs/configs/sys_config_epi_remote.json - /storage/app/EWS_prod/regions/EastAfrica/test_workspace/integration/epi_fit/dev/data_proc/6.0_epi_pipeline/inputs/configs/run_config_epi_short_remote.json + /storage/app/EWS_prod/regions/EastAfrica/test_workspace/integration/epi_fit/dev/data_proc/6.0_epi_pipeline/inputs/configs/run_config_epi_long_remote.json $CI_PROJECT_DIR/fitting_outputs/ 2016 artifacts: diff --git a/ews/coordinator/processor_epidemiology.py b/ews/coordinator/processor_epidemiology.py index 4e3ba0b..60ff6d7 100644 --- a/ews/coordinator/processor_epidemiology.py +++ b/ews/coordinator/processor_epidemiology.py @@ -8,7 +8,7 @@ import logging import os from pathlib import Path import shutil -from typing import List +from typing import List, Union from numpy import all, any, argmax, unique, allclose from pandas import MultiIndex, read_csv, DataFrame, to_datetime @@ -83,7 +83,7 @@ class ProcessorEpidemiology(ProcessorBase): def create_epi_config_file_root(config: dict, job_path: str, start_string: str, - calc_span_days: [str, int]) -> str: + calc_span_days: [Union[str, int], Union[str, int]]) -> str: configtemplate_filename: str = config['config_path'] start_date, end_date = calc_epi_date_range(start_string, calc_span_days) diff --git a/ews/coordinator/utils/processor_utils.py b/ews/coordinator/utils/processor_utils.py index 6ff72ce..19b3312 100644 --- a/ews/coordinator/utils/processor_utils.py +++ b/ews/coordinator/utils/processor_utils.py @@ -15,7 +15,7 @@ from string import Template import subprocess import sys import tarfile -from typing import List +from typing import List, Union from iris import load from iris.cube import CubeList @@ -277,7 +277,7 @@ def end_job(status, ignore_inprogress=False, **kwargs): end_script(**kwargs) -def calc_epi_date_range(init_str: str, span_days: [str, int] = [0, 6]) -> [datetime, datetime]: +def calc_epi_date_range(init_str: str, span_days: [Union[str, int], Union[str, int]] = [0, 6]) -> [datetime, datetime]: '''Date range is determined relative to init_date. span_days is usually defined in the job config file. Day zero is current day, negative values point to past (historical or analysis) days, and @@ -293,17 +293,15 @@ def calc_epi_date_range(init_str: str, span_days: [str, int] = [0, 6]) -> [datet # add 24hrs so that final day is fully included day_shift = datetime.timedelta(days=1) - # if more than 999 days - if len(str(span_days[0]))>3: - # assume it is a date string + # check if span_days[0] is a string + if isinstance(span_days[0], str): start_date = datetime.datetime.strptime(span_days[0]+'0300','%Y%m%d%H%M') else: date_shift0 = datetime.timedelta(days=span_days[0]) start_date = init_date + date_shift0 + threehour_shift - if len(str(span_days[1]))>3: - # assume it is a date string + if isinstance(span_days[1], str): end_date = datetime.datetime.strptime(span_days[1]+'0000','%Y%m%d%H%M') end_date = end_date + day_shift -- GitLab