Skip to content

Commit d09421d

Browse files
authored
Add type annotations to most public functions (#656)
Except for `django_rq.job`, which is too complicated to type properly.
1 parent c6c2446 commit d09421d

File tree

2 files changed

+22
-13
lines changed

2 files changed

+22
-13
lines changed

django_rq/queues.py

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
import warnings
2+
from typing import Any, Callable, Optional, Type, Union
23

34
import redis
45
from redis.sentinel import Sentinel
6+
from rq.job import Job
57
from rq.queue import Queue
68
from rq.utils import import_attribute
79

@@ -138,7 +140,10 @@ def get_redis_connection(config, use_strict_redis=False):
138140
)
139141

140142

141-
def get_connection(name='default', use_strict_redis=False):
143+
def get_connection(
144+
name: str = 'default',
145+
use_strict_redis: bool = False,
146+
) -> redis.Redis:
142147
"""
143148
Returns a Redis connection to use based on parameters in settings.RQ_QUEUES
144149
"""
@@ -148,16 +153,16 @@ def get_connection(name='default', use_strict_redis=False):
148153

149154

150155
def get_queue(
151-
name='default',
152-
default_timeout=None,
153-
is_async=None,
154-
autocommit=None,
155-
connection=None,
156-
queue_class=None,
157-
job_class=None,
158-
serializer=None,
156+
name: str = 'default',
157+
default_timeout: Optional[int] = None,
158+
is_async: Optional[bool] = None,
159+
autocommit: Optional[bool] = None,
160+
connection: Optional[redis.Redis] = None,
161+
queue_class: Optional[Union[str, Type[DjangoRQ]]] = None,
162+
job_class: Optional[Union[str, Type[Job]]] = None,
163+
serializer: Any = None,
159164
**kwargs
160-
):
165+
) -> DjangoRQ:
161166
"""
162167
Returns an rq Queue using parameters defined in ``RQ_QUEUES``
163168
"""
@@ -280,7 +285,7 @@ def get_queues(*queue_names, **kwargs):
280285
return queues
281286

282287

283-
def enqueue(func, *args, **kwargs):
288+
def enqueue(func: Callable, *args, **kwargs) -> Job:
284289
"""
285290
A convenience function to put a job in the default queue. Usage::
286291
@@ -333,7 +338,11 @@ def _create_job(self, *args, **kwargs):
333338

334339
return super(DjangoScheduler, self)._create_job(*args, **kwargs)
335340

336-
def get_scheduler(name='default', queue=None, interval=60):
341+
def get_scheduler(
342+
name: str = 'default',
343+
queue: Optional[DjangoRQ] = None,
344+
interval: int = 60,
345+
) -> DjangoScheduler:
337346
"""
338347
Returns an RQ Scheduler instance using parameters defined in
339348
``RQ_QUEUES``

django_rq/workers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ def get_worker_class(worker_class=None):
3737
return worker_class
3838

3939

40-
def get_worker(*queue_names, **kwargs):
40+
def get_worker(*queue_names: str, **kwargs) -> Worker:
4141
"""
4242
Returns a RQ worker for all queues or specified ones.
4343
"""

0 commit comments

Comments
 (0)