jobflow_remote.cli.job module#

jobflow_remote.cli.job.delete(job_db_id: ~typing.Annotated[str, <typer.models.ArgumentInfo object at 0x7f2db94f6c10>] = None, job_index: ~typing.Annotated[int | None, <typer.models.ArgumentInfo object at 0x7f2db94f6cd0>] = None, job_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f4590>] = None, db_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f4a10>] = None, flow_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f4e90>] = None, state: ~typing.Annotated[list[~jobflow_remote.jobs.state.JobState] | None, <typer.models.OptionInfo object at 0x7f2db94f5490>] = None, start_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7f2db96b0550>] = None, end_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7f2db94f5a50>] = None, name: ~typing.Annotated[str | None, <typer.models.OptionInfo object at 0x7f2db94f5a90>] = None, metadata: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7f2db9c04210>] = None, worker_name: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f5c10>] = None, custom_query: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7f2db9c041d0>] = None, days: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7f2db94f6290>] = None, hours: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7f2db94f66d0>] = None, verbosity: ~typing.Annotated[int, <typer.models.OptionInfo object at 0x7f2db94f6790>] = 0, wait: ~typing.Annotated[int, <typer.models.OptionInfo object at 0x7f2db94f7390>] = None, raise_on_error: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7f2db94f7590>] = False, delete_output: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7f2db94f7690>] = False, delete_files: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7f2db94f7790>] = False, delete_all: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7f2db94f7890>] = 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 0x7f2db8f58550>], job_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f4590>] = None, db_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f4a10>] = None, flow_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f4e90>] = None, state: ~typing.Annotated[list[~jobflow_remote.jobs.state.JobState] | None, <typer.models.OptionInfo object at 0x7f2db94f5490>] = None, start_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7f2db96b0550>] = None, end_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7f2db94f5a50>] = None, name: ~typing.Annotated[str | None, <typer.models.OptionInfo object at 0x7f2db94f5a90>] = None, metadata: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7f2db9c04210>] = None, worker_name: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f5c10>] = None, custom_query: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7f2db9c041d0>] = None, days: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7f2db94f6290>] = None, hours: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7f2db94f66d0>] = None, verbosity: ~typing.Annotated[int, <typer.models.OptionInfo object at 0x7f2db94f6790>] = 0, raise_on_error: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7f2db94f7590>] = 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 0x7f2db94f6c10>], filenames: ~typing.Annotated[list[str], <typer.models.ArgumentInfo object at 0x7f2db8f596d0>], job_index: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7f2db94f6d90>] = None, path: ~typing.Annotated[str | None, <typer.models.OptionInfo object at 0x7f2db8f59750>] = 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 0x7f2db94f6c10>], job_index: ~typing.Annotated[int | None, <typer.models.ArgumentInfo object at 0x7f2db94f6cd0>] = 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 0x7f2db94f4590>] = None, db_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f4a10>] = None, flow_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f4e90>] = None, state: ~typing.Annotated[list[~jobflow_remote.jobs.state.JobState] | None, <typer.models.OptionInfo object at 0x7f2db94f5490>] = None, start_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7f2db96b0550>] = None, end_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7f2db94f5a50>] = None, name: ~typing.Annotated[str | None, <typer.models.OptionInfo object at 0x7f2db94f5a90>] = None, metadata: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7f2db9c04210>] = None, worker_name: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f5c10>] = None, custom_query: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7f2db9c041d0>] = None, days: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7f2db94f6290>] = None, hours: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7f2db94f66d0>] = None, file_path: ~typing.Annotated[str, <typer.models.OptionInfo object at 0x7f2db8f58ed0>] = '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 0x7f2db94f6c10>] = None, job_index: ~typing.Annotated[int | None, <typer.models.ArgumentInfo object at 0x7f2db94f6cd0>] = None, pid: ~typing.Annotated[str, <typer.models.OptionInfo object at 0x7f2db8f45910>] = None, show_none: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7f2db8f459d0>] = False, verbosity: ~typing.Annotated[int, <typer.models.OptionInfo object at 0x7f2db94f6790>] = 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 0x7f2db94f4590>] = None, db_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f4a10>] = None, flow_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f4e90>] = None, state: ~typing.Annotated[list[~jobflow_remote.jobs.state.JobState] | None, <typer.models.OptionInfo object at 0x7f2db94f5490>] = None, start_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7f2db96b0550>] = None, end_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7f2db94f5a50>] = None, name: ~typing.Annotated[str | None, <typer.models.OptionInfo object at 0x7f2db94f5a90>] = None, metadata: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7f2db9c04210>] = None, days: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7f2db94f6290>] = None, hours: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7f2db94f66d0>] = None, worker_name: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f5c10>] = None, verbosity: ~typing.Annotated[int, <typer.models.OptionInfo object at 0x7f2db94f6790>] = 0, max_results: ~typing.Annotated[int, <typer.models.OptionInfo object at 0x7f2db94f69d0>] = 100, sort: ~jobflow_remote.cli.utils.Annotated[~jobflow_remote.cli.utils.SortOption, <typer.models.OptionInfo object at 0x7f2db94f6a90>] = SortOption.UPDATED_ON, reverse_sort: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7f2db94f6b50>] = False, locked: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7f2db94f7090>] = False, custom_query: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7f2db9c041d0>] = None, error: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7f2db8f45d90>] = False, running: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7f2db8f45e90>] = False, count: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7f2db94f7e10>] = False, stored_data_keys: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db8f45c10>] = None, cli_output_keys: ~typing.Annotated[str | None, <typer.models.OptionInfo object at 0x7f2db8f45b90>] = None)[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 0x7f2db94f6c10>], job_index: ~typing.Annotated[int | None, <typer.models.ArgumentInfo object at 0x7f2db94f6cd0>] = None, file_path: ~typing.Annotated[str | None, <typer.models.OptionInfo object at 0x7f2db8f59090>] = None, load: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7f2db8f590d0>] = 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 0x7f2db94f6c10>] = None, job_index: ~typing.Annotated[int | None, <typer.models.ArgumentInfo object at 0x7f2db94f6cd0>] = None, job_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f4590>] = None, db_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f4a10>] = None, flow_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f4e90>] = None, state: ~typing.Annotated[list[~jobflow_remote.jobs.state.JobState] | None, <typer.models.OptionInfo object at 0x7f2db94f5490>] = None, start_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7f2db96b0550>] = None, end_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7f2db94f5a50>] = None, name: ~typing.Annotated[str | None, <typer.models.OptionInfo object at 0x7f2db94f5a90>] = None, metadata: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7f2db9c04210>] = None, worker_name: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f5c10>] = None, custom_query: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7f2db9c041d0>] = None, days: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7f2db94f6290>] = None, hours: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7f2db94f66d0>] = None, verbosity: ~typing.Annotated[int, <typer.models.OptionInfo object at 0x7f2db94f6790>] = 0, wait: ~typing.Annotated[int, <typer.models.OptionInfo object at 0x7f2db94f7390>] = None, raise_on_error: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7f2db94f7590>] = 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 0x7f2db94f6c10>] = None, job_index: ~typing.Annotated[int | None, <typer.models.ArgumentInfo object at 0x7f2db94f6cd0>] = None, job_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f4590>] = None, db_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f4a10>] = None, flow_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f4e90>] = None, state: ~typing.Annotated[list[~jobflow_remote.jobs.state.JobState] | None, <typer.models.OptionInfo object at 0x7f2db94f5490>] = None, start_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7f2db96b0550>] = None, end_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7f2db94f5a50>] = None, name: ~typing.Annotated[str | None, <typer.models.OptionInfo object at 0x7f2db94f5a90>] = None, metadata: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7f2db9c04210>] = None, worker_name: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f5c10>] = None, custom_query: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7f2db9c041d0>] = None, days: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7f2db94f6290>] = None, hours: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7f2db94f66d0>] = None, verbosity: ~typing.Annotated[int, <typer.models.OptionInfo object at 0x7f2db94f6790>] = 0, wait: ~typing.Annotated[int, <typer.models.OptionInfo object at 0x7f2db94f7390>] = None, raise_on_error: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7f2db94f7590>] = False) None[source]#

Resume a Job that was previously PAUSED.

jobflow_remote.cli.job.priority(priority_value: ~typing.Annotated[int, <typer.models.ArgumentInfo object at 0x7f2db8f58cd0>], job_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f4590>] = None, db_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f4a10>] = None, flow_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f4e90>] = None, state: ~typing.Annotated[list[~jobflow_remote.jobs.state.JobState] | None, <typer.models.OptionInfo object at 0x7f2db94f5490>] = None, start_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7f2db96b0550>] = None, end_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7f2db94f5a50>] = None, name: ~typing.Annotated[str | None, <typer.models.OptionInfo object at 0x7f2db94f5a90>] = None, metadata: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7f2db9c04210>] = None, worker_name: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f5c10>] = None, custom_query: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7f2db9c041d0>] = None, days: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7f2db94f6290>] = None, hours: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7f2db94f66d0>] = None, verbosity: ~typing.Annotated[int, <typer.models.OptionInfo object at 0x7f2db94f6790>] = 0, raise_on_error: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7f2db94f7590>] = 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 0x7f2db94f6c10>], job_index: ~typing.Annotated[int | None, <typer.models.ArgumentInfo object at 0x7f2db94f6cd0>] = 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 0x7f2db8f47e10>] = ReportInterval.DAYS, num_intervals: ~typing.Annotated[int | None, <typer.models.ArgumentInfo object at 0x7f2db8f47e50>] = 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 0x7f2db94f6c10>] = None, job_index: ~typing.Annotated[int | None, <typer.models.ArgumentInfo object at 0x7f2db94f6cd0>] = None, job_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f4590>] = None, db_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f4a10>] = None, flow_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f4e90>] = None, state: ~typing.Annotated[list[~jobflow_remote.jobs.state.JobState] | None, <typer.models.OptionInfo object at 0x7f2db94f5490>] = None, start_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7f2db96b0550>] = None, end_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7f2db94f5a50>] = None, name: ~typing.Annotated[str | None, <typer.models.OptionInfo object at 0x7f2db94f5a90>] = None, metadata: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7f2db9c04210>] = None, days: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7f2db94f6290>] = None, hours: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7f2db94f66d0>] = None, worker_name: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f5c10>] = None, custom_query: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7f2db9c041d0>] = None, verbosity: ~typing.Annotated[int, <typer.models.OptionInfo object at 0x7f2db94f6790>] = 0, wait: ~typing.Annotated[int, <typer.models.OptionInfo object at 0x7f2db94f7390>] = None, break_lock: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7f2db94f7490>] = False, force: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7f2db8f45ad0>] = False, raise_on_error: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7f2db94f7590>] = False, no_delete: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7f2db8f45310>] = 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 0x7f2db8f58810>], replace: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7f2db8f58850>] = False, qresources: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7f2db8f589d0>] = False, job_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f4590>] = None, db_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f4a10>] = None, flow_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f4e90>] = None, state: ~typing.Annotated[list[~jobflow_remote.jobs.state.JobState] | None, <typer.models.OptionInfo object at 0x7f2db94f5490>] = None, start_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7f2db96b0550>] = None, end_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7f2db94f5a50>] = None, name: ~typing.Annotated[str | None, <typer.models.OptionInfo object at 0x7f2db94f5a90>] = None, metadata: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7f2db9c04210>] = None, worker_name: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f5c10>] = None, custom_query: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7f2db9c041d0>] = None, days: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7f2db94f6290>] = None, hours: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7f2db94f66d0>] = None, verbosity: ~typing.Annotated[int, <typer.models.OptionInfo object at 0x7f2db94f6790>] = 0, raise_on_error: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7f2db94f7590>] = 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.retry(job_db_id: ~typing.Annotated[str, <typer.models.ArgumentInfo object at 0x7f2db94f6c10>] = None, job_index: ~typing.Annotated[int | None, <typer.models.ArgumentInfo object at 0x7f2db94f6cd0>] = None, job_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f4590>] = None, db_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f4a10>] = None, flow_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f4e90>] = None, state: ~typing.Annotated[list[~jobflow_remote.jobs.state.JobState] | None, <typer.models.OptionInfo object at 0x7f2db94f5490>] = None, start_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7f2db96b0550>] = None, end_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7f2db94f5a50>] = None, name: ~typing.Annotated[str | None, <typer.models.OptionInfo object at 0x7f2db94f5a90>] = None, metadata: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7f2db9c04210>] = None, worker_name: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f5c10>] = None, custom_query: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7f2db9c041d0>] = None, days: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7f2db94f6290>] = None, hours: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7f2db94f66d0>] = None, verbosity: ~typing.Annotated[int, <typer.models.OptionInfo object at 0x7f2db94f6790>] = 0, wait: ~typing.Annotated[int, <typer.models.OptionInfo object at 0x7f2db94f7390>] = None, break_lock: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7f2db94f7490>] = False, raise_on_error: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7f2db94f7590>] = 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 0x7f2db94f5e90>], job_db_id: ~typing.Annotated[str, <typer.models.ArgumentInfo object at 0x7f2db94f6c10>], job_index: ~typing.Annotated[int | None, <typer.models.ArgumentInfo object at 0x7f2db94f6cd0>] = 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 0x7f2db94f6c10>] = None, job_index: ~typing.Annotated[int | None, <typer.models.ArgumentInfo object at 0x7f2db94f6cd0>] = None, job_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f4590>] = None, db_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f4a10>] = None, flow_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f4e90>] = None, state: ~typing.Annotated[list[~jobflow_remote.jobs.state.JobState] | None, <typer.models.OptionInfo object at 0x7f2db94f5490>] = None, start_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7f2db96b0550>] = None, end_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7f2db94f5a50>] = None, name: ~typing.Annotated[str | None, <typer.models.OptionInfo object at 0x7f2db94f5a90>] = None, metadata: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7f2db9c04210>] = None, worker_name: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f5c10>] = None, custom_query: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7f2db9c041d0>] = None, days: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7f2db94f6290>] = None, hours: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7f2db94f66d0>] = None, verbosity: ~typing.Annotated[int, <typer.models.OptionInfo object at 0x7f2db94f6790>] = 0, wait: ~typing.Annotated[int, <typer.models.OptionInfo object at 0x7f2db94f7390>] = None, break_lock: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7f2db94f7490>] = False, raise_on_error: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7f2db94f7590>] = False) None[source]#

Stop a Job. Only Jobs that did not complete or had an error can be stopped. The operation is irreversible. 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 0x7f2db94f6c10>] = None, job_index: ~typing.Annotated[int | None, <typer.models.ArgumentInfo object at 0x7f2db94f6cd0>] = None, shell: ~typing.Annotated[str | None, <typer.models.OptionInfo object at 0x7f2db8f58110>] = '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 0x7f2db8f58390>], job_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f4590>] = None, db_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f4a10>] = None, flow_id: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f4e90>] = None, state: ~typing.Annotated[list[~jobflow_remote.jobs.state.JobState] | None, <typer.models.OptionInfo object at 0x7f2db94f5490>] = None, start_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7f2db96b0550>] = None, end_date: ~typing.Annotated[~datetime.datetime | None, <typer.models.OptionInfo object at 0x7f2db94f5a50>] = None, name: ~typing.Annotated[str | None, <typer.models.OptionInfo object at 0x7f2db94f5a90>] = None, metadata: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7f2db9c04210>] = None, select_worker_name: ~typing.Annotated[list[str] | None, <typer.models.OptionInfo object at 0x7f2db94f5c10>] = None, custom_query: ~typing.Annotated[~jobflow_remote.cli.types.DictType | None, <typer.models.OptionInfo object at 0x7f2db9c041d0>] = None, days: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7f2db94f6290>] = None, hours: ~typing.Annotated[int | None, <typer.models.OptionInfo object at 0x7f2db94f66d0>] = None, verbosity: ~typing.Annotated[int, <typer.models.OptionInfo object at 0x7f2db94f6790>] = 0, raise_on_error: ~typing.Annotated[bool, <typer.models.OptionInfo object at 0x7f2db94f7590>] = False)[source]#

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