#ProcessorComponents.py
'''Contains imports of all the specific functions to process survey data,
environmental suitability, spore deposition and epidemiology. These functions
are handled by Processor.py .'''

import logging
import os
from typing import List

# submodules of this project
# All of the process_* functions are callable from config files for the three
# coordinator stages: pre, in (during) and plotting. 

from ProcessorAdvisory import (
        process_in_job_advisory
)

from ProcessorDeposition import (
        process_in_job_dep, 
        process_EWS_plotting_dep
)
from ProcessorEnvironment import (
        process_in_job_env2_0,
        process_copy_past_job_env2_0,
        process_EWS_plotting_env2_0
)
from ProcessorEpidemiology import (
        process_pre_job_epi,
        process_in_job_epi,
        process_EWS_plotting_epi,
)
from ProcessorScraper import (
        process_in_job_media_scraper, 
)
from ProcessorServer import (
        process_pre_job_server_download,
        upload
)
from ProcessorSurveys import (
        process_pre_job_survey, 
        process_in_job_survey,
        process_EWS_plotting_survey
)
from ProcessorUtils import (
        add_filters_to_sublogger,
        query_past_successes
)

# TODO: Replace subprocess scp and ssh commands with paramiko.SSHClient() instance

logger = logging.getLogger('Processor.Components')
add_filters_to_sublogger(logger)

# get path to this script
script_path = os.path.dirname(__file__)+'/'

coordinator_path = script_path

def do_nothing(*args, **kwargs) -> List:
    '''Dummy function'''

    logger.info('Called do_nothing(). Nothing to do here')

    pass
    return []

def do_nothing_return_true(*args, **kwargs) -> bool:
    '''Dummy function'''

    logger.info('Called do_nothing_return_true(). Nothing to do here')

    pass
    return True