|
1 | 1 | from dataclasses import dataclass
|
2 | 2 | from datetime import datetime, timezone, timedelta
|
| 3 | +from enum import Enum |
3 | 4 | import re
|
4 | 5 | from typing import (
|
5 | 6 | Any,
|
|
18 | 19 | from .model import InsertResult
|
19 | 20 | from .fnv import fnv1_hash
|
20 | 21 |
|
21 |
| -JOB_STATE_AVAILABLE = "available" |
22 |
| -JOB_STATE_CANCELLED = "cancelled" |
23 |
| -JOB_STATE_COMPLETED = "completed" |
24 |
| -JOB_STATE_DISCARDED = "discarded" |
25 |
| -JOB_STATE_RETRYABLE = "retryable" |
26 |
| -JOB_STATE_RUNNING = "running" |
27 |
| -JOB_STATE_SCHEDULED = "scheduled" |
28 |
| - |
29 |
| -MAX_ATTEMPTS_DEFAULT = 25 |
30 |
| -PRIORITY_DEFAULT = 1 |
31 |
| -QUEUE_DEFAULT = "default" |
32 |
| -UNIQUE_STATES_DEFAULT = [ |
33 |
| - JOB_STATE_AVAILABLE, |
34 |
| - JOB_STATE_COMPLETED, |
35 |
| - JOB_STATE_RUNNING, |
36 |
| - JOB_STATE_RETRYABLE, |
37 |
| - JOB_STATE_SCHEDULED, |
| 22 | + |
| 23 | +class JobState(str, Enum): |
| 24 | + AVAILABLE = "available" |
| 25 | + CANCELLED = "cancelled" |
| 26 | + COMPLETED = "completed" |
| 27 | + DISCARDED = "discarded" |
| 28 | + PENDING = "pending" |
| 29 | + RETRYABLE = "retryable" |
| 30 | + RUNNING = "running" |
| 31 | + SCHEDULED = "scheduled" |
| 32 | + |
| 33 | + |
| 34 | +MAX_ATTEMPTS_DEFAULT: int = 25 |
| 35 | +PRIORITY_DEFAULT: int = 1 |
| 36 | +QUEUE_DEFAULT: str = "default" |
| 37 | +UNIQUE_STATES_DEFAULT: list[str] = [ |
| 38 | + JobState.AVAILABLE, |
| 39 | + JobState.COMPLETED, |
| 40 | + JobState.RUNNING, |
| 41 | + JobState.RETRYABLE, |
| 42 | + JobState.SCHEDULED, |
38 | 43 | ]
|
39 | 44 |
|
40 | 45 |
|
@@ -351,7 +356,7 @@ def _uint64_to_int64(uint64):
|
351 | 356 | return (uint64 + (1 << 63)) % (1 << 64) - (1 << 63)
|
352 | 357 |
|
353 | 358 |
|
354 |
| -tag_re = re.compile("\A[\w][\w\-]+[\w]\Z") |
| 359 | +tag_re = re.compile(r"\A[\w][\w\-]+[\w]\Z") |
355 | 360 |
|
356 | 361 |
|
357 | 362 | def _validate_tags(tags: list[str]) -> list[str]:
|
|
0 commit comments