Job types¶
Immutable request values, durable records, retry policy, and scheduler queue rows.
Memory
dataclass
¶
Immutable memory quantity stored as bytes.
Duration
dataclass
¶
Immutable time duration stored as seconds.
parse
classmethod
¶
Parse '2h30m', '01:30:00', '40:00:00', '1-00:00:00', '90m', or plain seconds.
Script
dataclass
¶
JobResources
dataclass
¶
Hardware requirements for job execution.
JobScheduling
dataclass
¶
JobScheduling(partition=None, account=None, priority=None, dependency=None, dependencies=(), node_count=None, exclusive_node=False, array_spec=None, email=None, qos=None, reservation=None)
Scheduler-level parameters.
JobExecution
dataclass
¶
Execution environment parameters.
DependencyRef
dataclass
¶
Logical dependency on another molq job.
DependencyCondition
module-attribute
¶
JobRecord
dataclass
¶
JobRecord(job_id, cluster_name, scheduler, state, scheduler_job_id=None, submitted_at=None, started_at=None, finished_at=None, exit_code=None, failure_reason=None, cwd='', command_type='', command_display='', metadata=dict(), root_job_id='', attempt=1, previous_attempt_job_id=None, retry_group_id=None, profile_name=None, cleaned_at=None)
Immutable snapshot of a job's full lifecycle state.
JobDependency
dataclass
¶
Persisted dependency edge between two molq jobs.
StatusTransition
dataclass
¶
Immutable persisted lifecycle transition for a job.
SubmitorDefaults
dataclass
¶
Default resource, scheduling, and execution parameters for a Submitor.
RetryBackoff
dataclass
¶
Retry delay policy.
RetryPolicy
dataclass
¶
RetryPolicy(max_attempts=1, retry_on_states=(JobState.FAILED, JobState.TIMED_OUT), retry_on_exit_codes=None, backoff=RetryBackoff())
Retry policy applied by molq after terminal failures.
RetentionPolicy
dataclass
¶
RetentionPolicy(keep_job_dirs_for_days=30, keep_terminal_records_for_days=90, keep_failed_job_dirs=True)
Retention policy for job artifacts and terminal records.
RememberedAllocation
dataclass
¶
A scheduling config previously used to submit to a cluster.
Persisted by molq on each successful submission so callers (the molq CLI,
molexp's submit UI) can offer "configs you've used before" without
re-querying the cluster. Identity is the (partition, account, qos,
reservation) tuple; use_count / last_used track usage.
JobState ¶
Bases: StrEnum
Terminal-aware job state.
QueueEntry
dataclass
¶
QueueEntry(scheduler_job_id, name=None, user=None, state=JobState.QUEUED, raw_state='', partition=None, submit_time=None, start_time=None)
A row from the scheduler's current queue.
Independent of molq's own JobRecord: this represents jobs as the
scheduler sees them, including ones submitted outside molq.
DependencyEdge
dataclass
¶
One "wait for that job, under this condition" edge.
condition is a canonical molq DependencyCondition — after,
after_success, after_failure, after_started — and
scheduler_job_id is the upstream job's id as the backend knows it.
Translating the pair into submit syntax belongs to the backend, since only
it knows whether that reads afterok:123, done(123), or something
else entirely.
SchedulerCapabilities
dataclass
¶
SchedulerCapabilities(supports_cwd=False, supports_env=False, supports_output_file=False, supports_error_file=False, supports_job_name=False, supports_cpu_count=False, supports_memory=False, supports_gpu_count=False, supports_gpu_type=False, supports_time_limit=False, supports_partition=False, supports_account=False, supports_priority=False, supports_dependency=False, supports_node_count=False, supports_exclusive_node=False, supports_array_jobs=False, supports_email=False, supports_qos=False, supports_reservation=False)
Declared scheduler support matrix used for submit-time validation.
DependencyPreview
dataclass
¶
DependencyPreview(job_id, upstream_total=0, upstream_satisfied=0, upstream=(), downstream_total=0, downstream=())
Depth-1 dependency preview for a single job.
DependencyPreviewItem
dataclass
¶
DependencyPreviewItem(job_id, dependency_type, relation_state, job_state, command_display='', scheduler_dependency=None)
Dependency relation enriched with related job state.