1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
from typing import Any
import pandas as pd
# pandas can take several different types of database connection,
# and itself exposes its connection parameters as "Any".
# This alias might help things be a bit clearer in our documentation.
DB = Any
def app_counts_for_workflow(workflow_id: Any, db: DB) -> pd.DataFrame:
return pd.read_sql_query("""
SELECT task_func_name, count(*) as 'frequency'
FROM task
WHERE run_id='%s'
GROUP BY task_func_name;
""" % workflow_id, db)
def nodes_for_workflow(workflow_id: Any, db: Any) -> pd.DataFrame:
return pd.read_sql_query("""
SELECT *
FROM node
WHERE run_id='%s';
""" % (workflow_id), db)
def resources_for_workflow(workflow_id: Any, db: Any) -> pd.DataFrame:
return pd.read_sql_query("""
SELECT *
FROM resource
WHERE run_id='%s';
""" % (workflow_id), db)
def resources_for_task(workflow_id: Any, task_id: Any, db: Any) -> pd.DataFrame:
return pd.read_sql_query("""
SELECT *
FROM resource
WHERE run_id='%s' AND task_id='%s';
""" % (workflow_id, task_id), db)
def status_for_workflow(workflow_id: Any, db: Any) -> pd.DataFrame:
return pd.read_sql_query("""
SELECT run_id, task_id, task_status_name, timestamp
FROM status
WHERE run_id='%s';
""" % workflow_id, db)
def completion_times_for_workflow(workflow_id: Any, db: Any) -> pd.DataFrame:
return pd.read_sql_query("""
SELECT task_id, task_func_name, task_time_returned
FROM task
WHERE run_id='%s'
""" % (workflow_id), db)
def tasks_for_workflow(workflow_id: Any, db: Any) -> pd.DataFrame:
return pd.read_sql_query("""
SELECT *
FROM task
WHERE run_id='%s'
""" % (workflow_id), db)
def tries_for_workflow(workflow_id: Any, db: Any) -> pd.DataFrame:
return pd.read_sql_query("""
SELECT task.task_id, task_func_name, task_time_returned, task_try_time_running, task_try_time_returned
FROM task, try
WHERE task.task_id = try.task_id AND task.run_id='%s' AND try.run_id='%s'
""" % (workflow_id, workflow_id), db)
|