added python handler, and reworked handler and conductor event/job discovery to be more modular
This commit is contained in:
@ -11,20 +11,30 @@ import shutil
|
||||
from datetime import datetime
|
||||
from typing import Any
|
||||
|
||||
from core.correctness.vars import PYTHON_TYPE, PYTHON_FUNC, JOB_STATUS, \
|
||||
from core.correctness.vars import JOB_TYPE_PYTHON, PYTHON_FUNC, JOB_STATUS, \
|
||||
STATUS_RUNNING, JOB_START_TIME, PYTHON_EXECUTION_BASE, JOB_ID, META_FILE, \
|
||||
STATUS_DONE, JOB_END_TIME, STATUS_FAILED, JOB_ERROR, PYTHON_OUTPUT_DIR
|
||||
STATUS_DONE, JOB_END_TIME, STATUS_FAILED, JOB_ERROR, PYTHON_OUTPUT_DIR, \
|
||||
JOB_TYPE
|
||||
from core.correctness.validation import valid_job
|
||||
from core.functionality import read_yaml, write_yaml
|
||||
from core.meow import BaseConductor
|
||||
|
||||
|
||||
# TODO add comments to me
|
||||
class LocalPythonConductor(BaseConductor):
|
||||
def __init__(self)->None:
|
||||
super().__init__()
|
||||
|
||||
def valid_job_types(self)->list[str]:
|
||||
return [PYTHON_TYPE]
|
||||
def valid_execute_criteria(self, job:dict[str,Any])->bool:
|
||||
"""Function to determine given an job defintion, if this conductor can
|
||||
process it or not. This conductor will accept any Python job type"""
|
||||
try:
|
||||
valid_job(job)
|
||||
if job[JOB_TYPE] == JOB_TYPE_PYTHON:
|
||||
return True
|
||||
except:
|
||||
pass
|
||||
return False
|
||||
|
||||
def execute(self, job:dict[str,Any])->None:
|
||||
valid_job(job)
|
||||
|
Reference in New Issue
Block a user