jobflow_remote.cli.job module#

jobflow_remote.cli.job.delete(job_db_id: ~typing.Annotated[str, <typer.models.ArgumentInfo object at 0x7fc04d797410>] = None, job_index: ~typing.Annotated[int | None, <typer.models.ArgumentInfo object at 0x7fc04d7974d0>] = None, job_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d794d90>] = None, db_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d7953d0>] = None, flow_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d795850>] = None, state: ~typing.Annotated[list[~jobflow_remote.jobs.state.JobState] | None, <typer.models.OptionInfo object at 0x7fc04d795e50>] = None, start_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7fc04d796ad0>] = None, end_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7fc04d796d90>] = None, name: ~typing.Annotated[str | None, <typer.models.OptionInfo object at 0x7fc04d796450>] = None, metadata: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7fc04d7a09d0>] = None, worker_name: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d7965d0>] = None, custom_query: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7fc04d7a0990>] = None, days: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7fc04d796e10>] = None, hours: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7fc04d796ed0>] = None, verbosity: ~typing.Annotated[int, <typer.models.OptionInfo object at 0x7fc04d796f90>] = 0, wait: ~typing.Annotated[int, <typer.models.OptionInfo object at 0x7fc04d797b90>] = None, raise_on_error: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7fc04d797d90>] = False, delete_output: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7fc04d797e90>] = False, delete_files: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7fc04d797f90>] = False, delete_all: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7fc04d7a00d0>] = False) None[source]#

Delete Jobs individually. The Flow document will be updated accordingly but no consistency check is performed. The Flow may be left in an inconsistent state. For advanced users only.

jobflow_remote.cli.job.exec_config(exec_config_value: ~typing.Annotated[str, <typer.models.ArgumentInfo object at 0x7fc047a37f90>], job_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d794d90>] = None, db_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d7953d0>] = None, flow_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d795850>] = None, state: ~typing.Annotated[list[~jobflow_remote.jobs.state.JobState] | None, <typer.models.OptionInfo object at 0x7fc04d795e50>] = None, start_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7fc04d796ad0>] = None, end_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7fc04d796d90>] = None, name: ~typing.Annotated[str | None, <typer.models.OptionInfo object at 0x7fc04d796450>] = None, metadata: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7fc04d7a09d0>] = None, worker_name: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d7965d0>] = None, custom_query: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7fc04d7a0990>] = None, days: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7fc04d796e10>] = None, hours: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7fc04d796ed0>] = None, verbosity: ~typing.Annotated[int, <typer.models.OptionInfo object at 0x7fc04d796f90>] = 0, raise_on_error: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7fc04d797d90>] = False)[source]#

Set the exec_config for the selected Jobs. Only Jobs not in an evolving state (e.g. CHECKED_OUT, UPLOADED, …).

jobflow_remote.cli.job.files_get(job_db_id: ~typing.Annotated[str, <typer.models.ArgumentInfo object at 0x7fc04d797410>], filenames: ~typing.Annotated[list[str], <typer.models.ArgumentInfo object at 0x7fc047a55090>], job_index: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7fc04d797590>] = None, path: ~typing.Annotated[str | None, <typer.models.OptionInfo object at 0x7fc047a550d0>] = None) None[source]#

Retrieve files from the Job’s execution folder.

jobflow_remote.cli.job.files_list(job_db_id: ~typing.Annotated[str, <typer.models.ArgumentInfo object at 0x7fc04d797410>], job_index: ~typing.Annotated[int | None, <typer.models.ArgumentInfo object at 0x7fc04d7974d0>] = None) None[source]#

List of files in the run_dir of the selected Job.

jobflow_remote.cli.job.job_dump(job_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d794d90>] = None, db_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d7953d0>] = None, flow_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d795850>] = None, state: ~typing.Annotated[list[~jobflow_remote.jobs.state.JobState] | None, <typer.models.OptionInfo object at 0x7fc04d795e50>] = None, start_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7fc04d796ad0>] = None, end_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7fc04d796d90>] = None, name: ~typing.Annotated[str | None, <typer.models.OptionInfo object at 0x7fc04d796450>] = None, metadata: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7fc04d7a09d0>] = None, worker_name: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d7965d0>] = None, custom_query: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7fc04d7a0990>] = None, days: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7fc04d796e10>] = None, hours: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7fc04d796ed0>] = None, file_path: ~typing.Annotated[str, <typer.models.OptionInfo object at 0x7fc047a54850>] = 'jobs_dump.json') None[source]#

Dump to json the documents of the selected Jobs from the DB. For debugging.

jobflow_remote.cli.job.job_info(job_db_id: ~typing.Annotated[str, <typer.models.ArgumentInfo object at 0x7fc04d797410>] = None, job_index: ~typing.Annotated[int | None, <typer.models.ArgumentInfo object at 0x7fc04d7974d0>] = None, pid: ~typing.Annotated[str, <typer.models.OptionInfo object at 0x7fc047a36f90>] = None, show_none: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7fc047a36fd0>] = False, verbosity: ~typing.Annotated[int, <typer.models.OptionInfo object at 0x7fc04d796f90>] = 0) None[source]#

Detailed information on a specific job.

jobflow_remote.cli.job.jobs_list(job_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d794d90>] = None, db_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d7953d0>] = None, flow_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d795850>] = None, state: ~typing.Annotated[list[~jobflow_remote.jobs.state.JobState] | None, <typer.models.OptionInfo object at 0x7fc04d795e50>] = None, start_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7fc04d796ad0>] = None, end_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7fc04d796d90>] = None, name: ~typing.Annotated[str | None, <typer.models.OptionInfo object at 0x7fc04d796450>] = None, metadata: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7fc04d7a09d0>] = None, days: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7fc04d796e10>] = None, hours: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7fc04d796ed0>] = None, worker_name: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d7965d0>] = None, verbosity: ~typing.Annotated[int, <typer.models.OptionInfo object at 0x7fc04d796f90>] = 0, max_results: ~typing.Annotated[int, <typer.models.OptionInfo object at 0x7fc04d7971d0>] = 100, sort: ~jobflow_remote.cli.utils.Annotated[~jobflow_remote.cli.utils.SortOption, <typer.models.OptionInfo object at 0x7fc04d797290>] = SortOption.UPDATED_ON, reverse_sort: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7fc04d797350>] = False, locked: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7fc04d797890>] = False, custom_query: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7fc04d7a0990>] = None, error: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7fc047a34f10>] = False, running: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7fc047a34ed0>] = False, count: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7fc04d7a0650>] = False, stored_data_keys: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc047a34d90>] = None, cli_output_keys: ~typing.Annotated[str | None, <typer.models.OptionInfo object at 0x7fc047a34910>] = None, color: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7fc047a34fd0>] = False)[source]#

Get the list of Jobs in the database.

jobflow_remote.cli.job.output(job_db_id: ~typing.Annotated[str, <typer.models.ArgumentInfo object at 0x7fc04d797410>], job_index: ~typing.Annotated[int | None, <typer.models.ArgumentInfo object at 0x7fc04d7974d0>] = None, file_path: ~typing.Annotated[str | None, <typer.models.OptionInfo object at 0x7fc047a54a10>] = None, load: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7fc047a54a50>] = False) None[source]#

Fetch the output of a Job from the output Store.

jobflow_remote.cli.job.pause(job_db_id: ~typing.Annotated[str, <typer.models.ArgumentInfo object at 0x7fc04d797410>] = None, job_index: ~typing.Annotated[int | None, <typer.models.ArgumentInfo object at 0x7fc04d7974d0>] = None, job_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d794d90>] = None, db_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d7953d0>] = None, flow_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d795850>] = None, state: ~typing.Annotated[list[~jobflow_remote.jobs.state.JobState] | None, <typer.models.OptionInfo object at 0x7fc04d795e50>] = None, start_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7fc04d796ad0>] = None, end_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7fc04d796d90>] = None, name: ~typing.Annotated[str | None, <typer.models.OptionInfo object at 0x7fc04d796450>] = None, metadata: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7fc04d7a09d0>] = None, worker_name: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d7965d0>] = None, custom_query: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7fc04d7a0990>] = None, days: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7fc04d796e10>] = None, hours: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7fc04d796ed0>] = None, verbosity: ~typing.Annotated[int, <typer.models.OptionInfo object at 0x7fc04d796f90>] = 0, wait: ~typing.Annotated[int, <typer.models.OptionInfo object at 0x7fc04d797b90>] = None, raise_on_error: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7fc04d797d90>] = False) None[source]#

Pause a Job. Only READY and WAITING Jobs can be paused. The operation is reversible.

jobflow_remote.cli.job.play(job_db_id: ~typing.Annotated[str, <typer.models.ArgumentInfo object at 0x7fc04d797410>] = None, job_index: ~typing.Annotated[int | None, <typer.models.ArgumentInfo object at 0x7fc04d7974d0>] = None, job_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d794d90>] = None, db_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d7953d0>] = None, flow_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d795850>] = None, state: ~typing.Annotated[list[~jobflow_remote.jobs.state.JobState] | None, <typer.models.OptionInfo object at 0x7fc04d795e50>] = None, start_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7fc04d796ad0>] = None, end_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7fc04d796d90>] = None, name: ~typing.Annotated[str | None, <typer.models.OptionInfo object at 0x7fc04d796450>] = None, metadata: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7fc04d7a09d0>] = None, worker_name: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d7965d0>] = None, custom_query: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7fc04d7a0990>] = None, days: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7fc04d796e10>] = None, hours: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7fc04d796ed0>] = None, verbosity: ~typing.Annotated[int, <typer.models.OptionInfo object at 0x7fc04d796f90>] = 0, wait: ~typing.Annotated[int, <typer.models.OptionInfo object at 0x7fc04d797b90>] = None, raise_on_error: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7fc04d797d90>] = False) None[source]#

Resume a Job that was previously PAUSED or STOPPED. DEPRECATED: use resume instead

jobflow_remote.cli.job.priority(priority_value: ~typing.Annotated[int, <typer.models.ArgumentInfo object at 0x7fc047a54690>], job_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d794d90>] = None, db_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d7953d0>] = None, flow_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d795850>] = None, state: ~typing.Annotated[list[~jobflow_remote.jobs.state.JobState] | None, <typer.models.OptionInfo object at 0x7fc04d795e50>] = None, start_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7fc04d796ad0>] = None, end_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7fc04d796d90>] = None, name: ~typing.Annotated[str | None, <typer.models.OptionInfo object at 0x7fc04d796450>] = None, metadata: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7fc04d7a09d0>] = None, worker_name: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d7965d0>] = None, custom_query: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7fc04d7a0990>] = None, days: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7fc04d796e10>] = None, hours: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7fc04d796ed0>] = None, verbosity: ~typing.Annotated[int, <typer.models.OptionInfo object at 0x7fc04d796f90>] = 0, raise_on_error: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7fc04d797d90>] = False)[source]#

Set the priority for the selected Jobs. Only Jobs not in an evolving state (e.g. CHECKED_OUT, UPLOADED, …).

jobflow_remote.cli.job.queue_out(job_db_id: ~typing.Annotated[str, <typer.models.ArgumentInfo object at 0x7fc04d797410>], job_index: ~typing.Annotated[int | None, <typer.models.ArgumentInfo object at 0x7fc04d7974d0>] = None) None[source]#

Print the content of the output files produced by the queue manager.

jobflow_remote.cli.job.report(interval: ~jobflow_remote.cli.utils.Annotated[~jobflow_remote.cli.utils.ReportInterval, <typer.models.ArgumentInfo object at 0x7fc047a37790>] = ReportInterval.DAYS, num_intervals: ~typing.Annotated[int | None, <typer.models.ArgumentInfo object at 0x7fc047a377d0>] = None)[source]#

Generate a report about the Jobs in the database.

jobflow_remote.cli.job.rerun(job_db_id: ~typing.Annotated[str, <typer.models.ArgumentInfo object at 0x7fc04d797410>] = None, job_index: ~typing.Annotated[int | None, <typer.models.ArgumentInfo object at 0x7fc04d7974d0>] = None, job_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d794d90>] = None, db_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d7953d0>] = None, flow_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d795850>] = None, state: ~typing.Annotated[list[~jobflow_remote.jobs.state.JobState] | None, <typer.models.OptionInfo object at 0x7fc04d795e50>] = None, start_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7fc04d796ad0>] = None, end_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7fc04d796d90>] = None, name: ~typing.Annotated[str | None, <typer.models.OptionInfo object at 0x7fc04d796450>] = None, metadata: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7fc04d7a09d0>] = None, days: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7fc04d796e10>] = None, hours: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7fc04d796ed0>] = None, worker_name: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d7965d0>] = None, custom_query: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7fc04d7a0990>] = None, verbosity: ~typing.Annotated[int, <typer.models.OptionInfo object at 0x7fc04d796f90>] = 0, wait: ~typing.Annotated[int, <typer.models.OptionInfo object at 0x7fc04d797b90>] = None, break_lock: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7fc04d797c90>] = False, force: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7fc047a37110>] = False, raise_on_error: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7fc04d797d90>] = False, no_delete: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7fc047a37150>] = False) None[source]#

Rerun a Job. By default, this is limited to jobs that failed and children did not start or jobs that are running. The rerun Job is set to READY and children Jobs to WAITING. If possible, the associated job submitted to the remote queue will be cancelled. Most of the limitations can be overridden by the ‘force’ option. This could lead to inconsistencies in the overall state of the Jobs of the Flow. All the folders of the Jobs whose state are modified will also be deleted on the worker.

jobflow_remote.cli.job.resources(resources_value: ~typing.Annotated[str, <typer.models.ArgumentInfo object at 0x7fc047a54310>], replace: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7fc047a54350>] = False, qresources: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7fc047a54410>] = False, job_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d794d90>] = None, db_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d7953d0>] = None, flow_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d795850>] = None, state: ~typing.Annotated[list[~jobflow_remote.jobs.state.JobState] | None, <typer.models.OptionInfo object at 0x7fc04d795e50>] = None, start_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7fc04d796ad0>] = None, end_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7fc04d796d90>] = None, name: ~typing.Annotated[str | None, <typer.models.OptionInfo object at 0x7fc04d796450>] = None, metadata: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7fc04d7a09d0>] = None, worker_name: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d7965d0>] = None, custom_query: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7fc04d7a0990>] = None, days: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7fc04d796e10>] = None, hours: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7fc04d796ed0>] = None, verbosity: ~typing.Annotated[int, <typer.models.OptionInfo object at 0x7fc04d796f90>] = 0, raise_on_error: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7fc04d797d90>] = False)[source]#

Set the resources for the selected Jobs. Only Jobs not in an evolving state (e.g. CHECKED_OUT, UPLOADED, …)

jobflow_remote.cli.job.resume(job_db_id: ~typing.Annotated[str, <typer.models.ArgumentInfo object at 0x7fc04d797410>] = None, job_index: ~typing.Annotated[int | None, <typer.models.ArgumentInfo object at 0x7fc04d7974d0>] = None, job_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d794d90>] = None, db_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d7953d0>] = None, flow_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d795850>] = None, state: ~typing.Annotated[list[~jobflow_remote.jobs.state.JobState] | None, <typer.models.OptionInfo object at 0x7fc04d795e50>] = None, start_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7fc04d796ad0>] = None, end_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7fc04d796d90>] = None, name: ~typing.Annotated[str | None, <typer.models.OptionInfo object at 0x7fc04d796450>] = None, metadata: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7fc04d7a09d0>] = None, worker_name: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d7965d0>] = None, custom_query: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7fc04d7a0990>] = None, days: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7fc04d796e10>] = None, hours: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7fc04d796ed0>] = None, verbosity: ~typing.Annotated[int, <typer.models.OptionInfo object at 0x7fc04d796f90>] = 0, wait: ~typing.Annotated[int, <typer.models.OptionInfo object at 0x7fc04d797b90>] = None, raise_on_error: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7fc04d797d90>] = False) None[source]#

Resume a Job that was previously PAUSED or STOPPED.

jobflow_remote.cli.job.retry(job_db_id: ~typing.Annotated[str, <typer.models.ArgumentInfo object at 0x7fc04d797410>] = None, job_index: ~typing.Annotated[int | None, <typer.models.ArgumentInfo object at 0x7fc04d7974d0>] = None, job_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d794d90>] = None, db_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d7953d0>] = None, flow_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d795850>] = None, state: ~typing.Annotated[list[~jobflow_remote.jobs.state.JobState] | None, <typer.models.OptionInfo object at 0x7fc04d795e50>] = None, start_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7fc04d796ad0>] = None, end_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7fc04d796d90>] = None, name: ~typing.Annotated[str | None, <typer.models.OptionInfo object at 0x7fc04d796450>] = None, metadata: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7fc04d7a09d0>] = None, worker_name: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d7965d0>] = None, custom_query: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7fc04d7a0990>] = None, days: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7fc04d796e10>] = None, hours: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7fc04d796ed0>] = None, verbosity: ~typing.Annotated[int, <typer.models.OptionInfo object at 0x7fc04d796f90>] = 0, wait: ~typing.Annotated[int, <typer.models.OptionInfo object at 0x7fc04d797b90>] = None, break_lock: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7fc04d797c90>] = False, raise_on_error: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7fc04d797d90>] = False) None[source]#

Retry to perform the operation that failed for a job in a REMOTE_ERROR state or reset the number of attempts at remote action, in order to allow the runner to try it again immediately.

jobflow_remote.cli.job.set_state(state: ~jobflow_remote.jobs.state.Annotated[~jobflow_remote.jobs.state.JobState, <typer.models.ArgumentInfo object at 0x7fc04d796850>], job_db_id: ~typing.Annotated[str, <typer.models.ArgumentInfo object at 0x7fc04d797410>], job_index: ~typing.Annotated[int | None, <typer.models.ArgumentInfo object at 0x7fc04d7974d0>] = None) None[source]#

Sets the state of a Job to an arbitrary value. WARNING: No checks. This can lead to inconsistencies in the DB. Use with care.

jobflow_remote.cli.job.stop(job_db_id: ~typing.Annotated[str, <typer.models.ArgumentInfo object at 0x7fc04d797410>] = None, job_index: ~typing.Annotated[int | None, <typer.models.ArgumentInfo object at 0x7fc04d7974d0>] = None, job_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d794d90>] = None, db_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d7953d0>] = None, flow_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d795850>] = None, state: ~typing.Annotated[list[~jobflow_remote.jobs.state.JobState] | None, <typer.models.OptionInfo object at 0x7fc04d795e50>] = None, start_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7fc04d796ad0>] = None, end_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7fc04d796d90>] = None, name: ~typing.Annotated[str | None, <typer.models.OptionInfo object at 0x7fc04d796450>] = None, metadata: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7fc04d7a09d0>] = None, worker_name: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d7965d0>] = None, custom_query: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7fc04d7a0990>] = None, days: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7fc04d796e10>] = None, hours: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7fc04d796ed0>] = None, verbosity: ~typing.Annotated[int, <typer.models.OptionInfo object at 0x7fc04d796f90>] = 0, wait: ~typing.Annotated[int, <typer.models.OptionInfo object at 0x7fc04d797b90>] = None, break_lock: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7fc04d797c90>] = False, raise_on_error: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7fc04d797d90>] = False) None[source]#

Stop a Job. Only Jobs that did not complete or had an error can be stopped. If possible, the associated job submitted to the remote queue will be cancelled.

jobflow_remote.cli.job.todir(job_db_id: ~typing.Annotated[str, <typer.models.ArgumentInfo object at 0x7fc04d797410>] = None, job_index: ~typing.Annotated[int | None, <typer.models.ArgumentInfo object at 0x7fc04d7974d0>] = None, shell: ~typing.Annotated[str | None, <typer.models.OptionInfo object at 0x7fc047a37810>] = 'bash')[source]#

Connect to the worker and go to the job run_dir.

jobflow_remote.cli.job.worker(worker_name: ~typing.Annotated[str, <typer.models.ArgumentInfo object at 0x7fc047a37dd0>], job_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d794d90>] = None, db_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d7953d0>] = None, flow_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d795850>] = None, state: ~typing.Annotated[list[~jobflow_remote.jobs.state.JobState] | None, <typer.models.OptionInfo object at 0x7fc04d795e50>] = None, start_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7fc04d796ad0>] = None, end_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7fc04d796d90>] = None, name: ~typing.Annotated[str | None, <typer.models.OptionInfo object at 0x7fc04d796450>] = None, metadata: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7fc04d7a09d0>] = None, select_worker_name: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7fc04d7965d0>] = None, custom_query: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7fc04d7a0990>] = None, days: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7fc04d796e10>] = None, hours: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7fc04d796ed0>] = None, verbosity: ~typing.Annotated[int, <typer.models.OptionInfo object at 0x7fc04d796f90>] = 0, raise_on_error: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7fc04d797d90>] = False)[source]#

Set the worker for the selected Jobs. Only Jobs not in an evolving state (e.g. CHECKED_OUT, UPLOADED, …).