pysqa.queueadapter.QueueAdapter#
- class pysqa.queueadapter.QueueAdapter(directory: str = '~/.queues', execute_command: callable = <function execute_command>)[source]#
Bases:
object
The goal of the QueueAdapter class is to make submitting to a queue system as easy as starting another sub process locally.
- Parameters:
directory (str) – directory containing the queue.yaml files as well as corresponding jinja2 templates for the individual queues.
- .. attribute:: config
QueueAdapter configuration read from the queue.yaml file.
- .. attribute:: queue_list
List of available queues
- .. attribute:: queue_view
Pandas DataFrame representation of the available queues, read from queue.yaml.
- .. attribute:: queues
Queues available for auto completion QueueAdapter().queues.<queue name> returns the queue name.
- __init__(directory: str = '~/.queues', execute_command: callable = <function execute_command>)[source]#
Methods
__init__
([directory, execute_command])check_queue_parameters
(queue[, cores, ...])- param queue:
convert_path_to_remote
(path)- param path:
delete_job
(process_id)- param process_id:
enable_reservation
(process_id)- param process_id:
get_job_from_remote
(working_directory)Get the results of the calculation - this is necessary when the calculation was executed on a remote host.
get_queue_status
([user])- param user:
get_status_of_job
(process_id)- param process_id:
get_status_of_jobs
(process_id_lst)- param process_id_lst:
- rtype:
pandas.DataFrame
List available computing clusters for remote submission
submit_job
([queue, job_name, ...])Submits command to the given queue.
switch_cluster
(cluster_name)Switch to a different computing cluster
transfer_file_to_remote
(file[, ...])Transfer file from remote host to local host
Attributes
Returns: dict:
Returns: list:
Returns: pandas.DataFrame:
queues
Returns: bool:
ssh_delete_file_on_remote
- check_queue_parameters(queue: str, cores: int = 1, run_time_max: int | None = None, memory_max: int | None = None, active_queue: dict | None = None)[source]#
- Parameters:
queue (str/None)
cores (int)
run_time_max (int/None)
memory_max (int/None)
active_queue (dict)
- Returns:
[cores, run_time_max, memory_max]
- Return type:
list
- property config#
Returns: dict:
- get_job_from_remote(working_directory: str)[source]#
Get the results of the calculation - this is necessary when the calculation was executed on a remote host.
- Parameters:
working_directory (str)
- get_queue_status(user: str | None = None) DataFrame [source]#
- Parameters:
user (str)
- Return type:
pandas.DataFrame
- get_status_of_job(process_id: int) str [source]#
- Parameters:
process_id
- Returns:
[‘running’, ‘pending’, ‘error’]
- Return type:
str
- get_status_of_jobs(process_id_lst: list[int]) list[str] [source]#
- Parameters:
process_id_lst
- Returns:
[‘running’, ‘pending’, ‘error’, …]
- Return type:
list
- list_clusters() list[str] [source]#
List available computing clusters for remote submission
- Returns:
List of computing clusters
- Return type:
list
- property queue_list: list[str]#
Returns: list:
- property queue_view: DataFrame#
Returns: pandas.DataFrame:
- property remote_flag: bool#
Returns: bool:
- submit_job(queue: str | None = None, job_name: str | None = None, working_directory: str | None = None, cores: int | None = None, memory_max: int | None = None, run_time_max: int | None = None, dependency_list: list[str] | None = None, command: str | None = None, **kwargs) int [source]#
Submits command to the given queue.
- Parameters:
queue (str/None) – Name of the queue to submit to, must be one of the names configured for this adapter (optional)
job_name (str/None) – Name of the job for the underlying queuing system (optional)
working_directory (str/None) – Directory to run the job in (optional)
cores (int/None) – Number of hardware threads requested (optional)
memory_max (int/None) – Amount of memory requested per node in GB (optional)
run_time_max (int/None) – Maximum runtime in seconds (optional)
dependency_list(list[str]/None – Job ids of jobs to be completed before starting (optional)
command (str/None) – shell command to run in the job
**kwargs – allows writing additional parameters to the job submission script if they are available in the corresponding template.
- Returns:
Job id received from the queuing system for the job which was submitted
- Return type:
int