diff options
| author | Frederick Muriuki Muriithi | 2026-01-13 10:29:06 -0600 |
|---|---|---|
| committer | Frederick Muriuki Muriithi | 2026-01-13 10:29:06 -0600 |
| commit | 225171b7ddf4387ab944c8c3ce781e716060ca08 (patch) | |
| tree | c42558665247b2b2c4e58032deeb30847d391a9b | |
| parent | 096fe9dfe3a582658c6bf9179b6c2662cc78711b (diff) | |
| download | gn-uploader-225171b7ddf4387ab944c8c3ce781e716060ca08.tar.gz | |
Make default datetime formatter for module.
| -rw-r--r-- | uploader/background_jobs.py | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/uploader/background_jobs.py b/uploader/background_jobs.py index 61e57f7..3bfd354 100644 --- a/uploader/background_jobs.py +++ b/uploader/background_jobs.py @@ -25,6 +25,17 @@ background_jobs_bp = Blueprint("background-jobs", __name__) HandlerType = Callable[[dict], Response] +def make_datetime_formatter(dtformat: str = "%A, %d %B %Y at %H:%M %Z") -> Callable[[str], str]: + """Make a datetime formatter with the provided `dtformat`""" + def __formatter__(val: str) -> str: + dt = datetime.datetime.fromisoformat(val) + return dt.strftime(dtformat.strip()) + + return __formatter__ + +__default_datetime_formatter__ = make_datetime_formatter() + + def __default_error_handler__(job: dict) -> Response: return redirect(url_for("background-jobs.job_summary", job_id=job["job_id"])) @@ -109,7 +120,7 @@ def job_status(job_id: uuid.UUID): return render_template("background-jobs/job-status.html", job=job, - display_datetime=make_datetime_formatter()) + display_datetime=__default_datetime_formatter__) except JobNotFound as _jnf: return render_template("jobs/job-not-found.html", job_id=job_id) @@ -126,15 +137,6 @@ def job_error(job_id: uuid.UUID): return render_template("jobs/job-not-found.html", job_id=job_id) -def make_datetime_formatter(dtformat: str = "") -> Callable[[str], str]: - """Make a datetime formatter with the provided `dtformat`""" - def __formatter__(val: str) -> str: - dt = datetime.datetime.fromisoformat(val) - return dt.strftime(dtformat.strip() or "%A, %d %B %Y at %H:%M %Z") - - return __formatter__ - - @background_jobs_bp.route("/list") @require_login def list_jobs(): @@ -144,7 +146,7 @@ def list_jobs(): "background-jobs/list-jobs.html", jobs=jobs.jobs_by_external_id( conn, session.user_details()["user_id"]), - display_datetime=make_datetime_formatter()) + display_datetime=__default_datetime_formatter__) @background_jobs_bp.route("/summary/<uuid:job_id>") @@ -159,7 +161,7 @@ def job_summary(job_id: uuid.UUID): if status in ("completed", "error", "stopped"): return render_template("background-jobs/job-summary.html", job=job, - display_datetime=make_datetime_formatter()) + display_datetime=__default_datetime_formatter__) return redirect(url_for( "background-jobs.job_status", job_id=job["job_id"])) except JobNotFound as _jnf: @@ -182,7 +184,7 @@ def delete_single(job_id: uuid.UUID): if request.method == "GET": return render_template("background-jobs/delete-job.html", job=job, - display_datetime=make_datetime_formatter()) + display_datetime=__default_datetime_formatter__) if request.form["btn-confirm-delete"] == "delete": jobs.delete_job(conn, job_id) @@ -211,7 +213,7 @@ def stop_job(job_id: uuid.UUID): if request.method == "GET": return render_template("background-jobs/stop-job.html", job=job, - display_datetime=make_datetime_formatter()) + display_datetime=__default_datetime_formatter__) if request.form["btn-confirm-stop"] == "stop": jobs.kill_job(conn, job_id) |
