-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy path__init__.py
More file actions
39 lines (32 loc) · 1.42 KB
/
__init__.py
File metadata and controls
39 lines (32 loc) · 1.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# Released under MIT License.
# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab
"""
Abstractions for integrating qq with HPC batch scheduling systems.
This module defines the core interfaces that allow qq to interact with
multiple batch systems through a unified API. It provides:
- `BatchInterface`: the central abstract interface that every batch-system
backend implements. It defines operations such as job submission, job
querying, directory synchronization, remote file access, resubmission, and
navigation to compute nodes.
- `BatchJobInterface`, `BatchNodeInterface`, and `BatchQueueInterface`:
lightweight abstractions representing jobs, nodes, and queues as reported
by the underlying scheduler. These interfaces expose normalized metadata
and allow qq to present consistent job/queue/node information regardless
of scheduler differences.
- `BatchMeta`: a metaclass that registers available batch-system backends
and provides mechanisms for selecting one from environment variables or by
probing system availability. The `@batch_system` decorator registers
implementations automatically.
"""
from .interface import BatchInterface
from .job import BatchJobInterface
from .meta import BatchMeta
from .node import BatchNodeInterface
from .queue import BatchQueueInterface
__all__ = [
"BatchInterface",
"BatchJobInterface",
"BatchMeta",
"BatchNodeInterface",
"BatchQueueInterface",
]