JOB_NO_RESULT_TERMINAL_STATES = {
    "FAILED_VALIDATION",
    "CANCELED",
    "TERMINATED",
    "NOT_ENOUGH_FUNDS",
    "JOBS_LIMIT_EXCEEDED",
}
JOB_RESULTS_READY_STATES = {"COMPLETED"}
JOB_TERMINAL_STATES = JOB_RESULTS_READY_STATES.union(JOB_NO_RESULT_TERMINAL_STATES)
JOB_NON_TERMINAL_STATES = {"PENDING", "QUEUED", "RUNNING"}
JOB_STATES = JOB_NON_TERMINAL_STATES.union(JOB_TERMINAL_STATES)

DEVICE_TYPES = {
    "cpu",
    "gpu",
    "quantum",
    "tensor-network",
    "local",
    "pennylane.cpu",
    "pennylane.gpu",
    "pennylane.cpu.adjoint",
    "pennylane.gpu.adjoint",
}

MAXIMUM_NUMBER_OF_BATCH_JOBS = 500
MAX_QUBITS_WITH_STATEVEC = 16
