From 04d4d42c9802ef705514eb4b8cd3f21624fb616b Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 28 Jun 2021 11:19:29 +0200 Subject: [PATCH] last_submission get(calc, flag, asdf) --- docs/src/guide/jobs.md | 1 + src/API.jl | 1 + src/calculation.jl | 11 +++++++---- src/jobAPI.jl | 10 ++++++++++ 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/docs/src/guide/jobs.md b/docs/src/guide/jobs.md index 6fed8c3b..ec13095a 100644 --- a/docs/src/guide/jobs.md +++ b/docs/src/guide/jobs.md @@ -39,6 +39,7 @@ set_flow! save(::DFJob) submit isrunning +last_submission last_running_calculation abort ``` diff --git a/src/API.jl b/src/API.jl index 8e0ccb2c..4999269b 100644 --- a/src/API.jl +++ b/src/API.jl @@ -18,6 +18,7 @@ export gencalc_scf, gencalc_vcrelax, gencalc_nscf, gencalc_bands, gencalc_projwf include("jobAPI.jl") #Basic Job Control Functionality export save, submit, abort, set_flow!, set_headerword!, isrunning, last_running_calculation, + last_submission, progressreport, set_serverdir!, set_localdir!, structure, scale_cell!, volume, switch_version!, version, versions, registered_jobs, rm_version!, rm_versions!, rm_tmp_dirs!, cleanup, load_jobs, last_version diff --git a/src/calculation.jl b/src/calculation.jl index c0bbe2bb..a0de4674 100644 --- a/src/calculation.jl +++ b/src/calculation.jl @@ -1,9 +1,5 @@ #these are all the control data, they hold the flags that guide the calculation name(data::InputData) = data.name -function Base.:(==)(d1::InputData, d2::InputData) - return all(x -> getfield(d1, x) == getfield(d2, x), fieldnames(InputData)) -end - name(c::DFCalculation) = c.name dir(c::DFCalculation) = c.dir flags(c::DFCalculation) = c.flags @@ -29,6 +25,13 @@ function flag(calculation::DFCalculation, flag::Symbol) end end +function Base.:(==)(d1::InputData, d2::InputData) + return all(x -> getfield(d1, x) == getfield(d2, x), fieldnames(InputData)) +end + +Base.get(c::DFCalculation, args...) = get(flags(c), args...) + + Base.eltype(::DFCalculation{P}) where {P} = P package(::DFCalculation{P}) where {P} = P diff --git a/src/jobAPI.jl b/src/jobAPI.jl index 5131a7be..b8a25b08 100644 --- a/src/jobAPI.jl +++ b/src/jobAPI.jl @@ -456,3 +456,13 @@ function pdos(job::DFJob, atoms::Vector{AbstractAtom} = atoms(job), args...) end return (energies = t_energies, pdos = t_pdos) end + +""" + last_submission(job::DFJob) + +If a job was ever submitted, the last submission date is returned. +Otherwise 0 date is returned. +""" +function last_submission(job::DFJob) + return get(job.metadata, :timestap, DateTime(0)) +end