Skip to content

Commit 348fd7b

Browse files
committed
fix:p3.10 support
1 parent 8340706 commit 348fd7b

File tree

13 files changed

+167
-93
lines changed

13 files changed

+167
-93
lines changed

poetry.lock

+74-7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

+2-2
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ documentation = "https://django-tasks-scheduler.readthedocs.io/"
4141
"Funding" = "https://github.com/sponsors/cunla"
4242

4343
[tool.poetry.dependencies]
44-
python = "^3.11"
44+
python = "^3.10"
4545
django = ">=5"
4646
croniter = ">=2.0"
4747
click = "^8.1"
@@ -54,7 +54,7 @@ time-machine = "^2.16.0"
5454
poetry = "^2.1.2"
5555
ruff = "^0.11"
5656
coverage = "^7.6"
57-
fakeredis = { version = "^2.21.5", extras = ['lua'] }
57+
fakeredis = { version = "^2.21", extras = ['lua'] }
5858
pyyaml = "^6"
5959
freezegun = "^1.5"
6060

scheduler/helpers/queues/queue_logic.py

+26-26
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import sys
33
import traceback
44
from datetime import datetime
5-
from typing import Dict, List, Optional, Tuple, Union, Self, Any
5+
from typing import Dict, List, Optional, Tuple, Union, Any
66

77
from redis import WatchError
88

@@ -19,7 +19,7 @@
1919
)
2020
from scheduler.redis_models import JobStatus, SchedulerLock, Result, ResultType, JobModel
2121
from scheduler.settings import logger, SCHEDULER_CONFIG
22-
from scheduler.types import ConnectionType, FunctionReferenceType
22+
from scheduler.types import ConnectionType, FunctionReferenceType, Self
2323

2424

2525
class InvalidJobOperation(Exception):
@@ -176,24 +176,24 @@ def get_all_jobs(self) -> List[JobModel]:
176176
return JobModel.get_many(job_names, connection=self.connection)
177177

178178
def create_and_enqueue_job(
179-
self,
180-
func: FunctionReferenceType,
181-
args: Union[Tuple, List, None] = None,
182-
kwargs: Optional[Dict] = None,
183-
when: Optional[datetime] = None,
184-
timeout: Optional[int] = None,
185-
result_ttl: Optional[int] = None,
186-
job_info_ttl: Optional[int] = None,
187-
description: Optional[str] = None,
188-
name: Optional[str] = None,
189-
at_front: bool = False,
190-
meta: Optional[Dict] = None,
191-
on_success: Optional[Callback] = None,
192-
on_failure: Optional[Callback] = None,
193-
on_stopped: Optional[Callback] = None,
194-
task_type: Optional[str] = None,
195-
scheduled_task_id: Optional[int] = None,
196-
pipeline: Optional[ConnectionType] = None,
179+
self,
180+
func: FunctionReferenceType,
181+
args: Union[Tuple, List, None] = None,
182+
kwargs: Optional[Dict] = None,
183+
when: Optional[datetime] = None,
184+
timeout: Optional[int] = None,
185+
result_ttl: Optional[int] = None,
186+
job_info_ttl: Optional[int] = None,
187+
description: Optional[str] = None,
188+
name: Optional[str] = None,
189+
at_front: bool = False,
190+
meta: Optional[Dict] = None,
191+
on_success: Optional[Callback] = None,
192+
on_failure: Optional[Callback] = None,
193+
on_stopped: Optional[Callback] = None,
194+
task_type: Optional[str] = None,
195+
scheduled_task_id: Optional[int] = None,
196+
pipeline: Optional[ConnectionType] = None,
197197
) -> JobModel:
198198
"""Creates a job to represent the delayed function call and enqueues it.
199199
:param when: When to schedule the job (None to enqueue immediately)
@@ -245,7 +245,7 @@ def create_and_enqueue_job(
245245
return job_model
246246

247247
def job_handle_success(
248-
self, job: JobModel, result: Any, job_info_ttl: int, result_ttl: int, connection: ConnectionType
248+
self, job: JobModel, result: Any, job_info_ttl: int, result_ttl: int, connection: ConnectionType
249249
):
250250
"""Saves and cleanup job after successful execution"""
251251
job.after_execution(
@@ -304,10 +304,10 @@ def run_sync(self, job: JobModel) -> JobModel:
304304

305305
@classmethod
306306
def dequeue_any(
307-
cls,
308-
queues: List[Self],
309-
timeout: Optional[int],
310-
connection: Optional[ConnectionType] = None,
307+
cls,
308+
queues: List[Self],
309+
timeout: Optional[int],
310+
connection: Optional[ConnectionType] = None,
311311
) -> Tuple[Optional[JobModel], Optional[Self]]:
312312
"""Class method returning a Job instance at the front of the given set of Queues, where the order of the queues
313313
is important.
@@ -410,7 +410,7 @@ def delete_job(self, job_name: str, expire_job_model: bool = True) -> None:
410410
pass
411411

412412
def enqueue_job(
413-
self, job_model: JobModel, connection: Optional[ConnectionType] = None, at_front: bool = False
413+
self, job_model: JobModel, connection: Optional[ConnectionType] = None, at_front: bool = False
414414
) -> JobModel:
415415
"""Enqueues a job for delayed execution without checking dependencies.
416416

scheduler/helpers/utils.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ def current_timestamp() -> int:
1111

1212
def utcnow() -> datetime.datetime:
1313
"""Return now in UTC"""
14-
return datetime.datetime.now(datetime.UTC)
14+
return datetime.datetime.now(datetime.timezone.utc)
1515

1616

1717
def callable_func(callable_str: str) -> Callable:

scheduler/redis_models/base.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
import dataclasses
22
import json
33
from collections.abc import Sequence
4-
from datetime import datetime, UTC
4+
from datetime import datetime, timezone
55
from enum import Enum
6-
from typing import List, Optional, Union, Self, Dict, Collection, Any, ClassVar, Set, Type
6+
from typing import List, Optional, Union, Dict, Collection, Any, ClassVar, Set, Type
77

88
from redis import Redis
99

10-
from scheduler.types import ConnectionType
1110
from scheduler.settings import logger
11+
from scheduler.types import ConnectionType, Self
1212

1313
MAX_KEYS = 1000
1414

@@ -228,7 +228,7 @@ class StreamModel(BaseModel):
228228

229229
def __init__(self, name: str, parent: str, created_at: Optional[datetime] = None):
230230
self.name = name
231-
self.created_at: datetime = created_at or datetime.now(UTC)
231+
self.created_at: datetime = created_at or datetime.now(timezone.utc)
232232
self.parent: str = parent
233233

234234
@property

0 commit comments

Comments
 (0)