from metaflow import namespace, Metaflow, Run

def fmt(t):
    return t.strftime('%Y-%m-%dT%H:%M:%SZ')

print('flow,run,step,task,created,finished,user,runtime,pod_id,pod_name')
namespace(None)
for flow in Metaflow():
    for run in flow:
        if run.successful:
            for step in run:
                for task in step:
                    created = fmt(task.created_at)
                    finished = fmt(task.finished_at)
                    meta = task.metadata_dict
                    user = meta.get('user', '')
                    runtime = meta['runtime']
                    pod_id = meta.get('kubernetes-pod-id', '')
                    pod_name = meta.get('kubernetes-pod-name', '')
                    fields = [
                        flow.id,
                        run.id,
                        step.id,
                        task.id,
                        created,
                        finished,
                        user,
                        runtime,
                        pod_id,
                        pod_name]
                    print(','.join(fields))