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