
    ]jL                         d dl mZmZmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ ddlmZ ddlmZmZ d	 ZddZd
d
d
ddedeeeee   f      deeeee   f      deeeee   f      def
dZy
)    )OptionalTypeUnion)Worker)Job)import_attribute)settings   )get_job_class)DjangoRQ
get_queuesc                  J    ddl m}  | D cg c]  }t        |       c}S c c}w )z
    Custom exception handlers could be defined in settings.py:
    RQ = {
        'EXCEPTION_HANDLERS': ['path.to.handler'],
    }
    r
   )EXCEPTION_HANDLERS)r	   r   r   )r   paths     ;/root/env/lib/python3.12/site-packages/django_rq/workers.pyget_exception_handlersr      s!     -/ABtT"BBBs    Nc                     t        t        di       }| t        } d|v r|j                  d      } t	        | t
              rt        |       } | S )z
    Return worker class from RQ settings, otherwise return Worker.
    If `worker_class` is not None, it is used as an override (can be
    python import path as string).
    RQWORKER_CLASS)getattrr	   r   get
isinstancestrr   )worker_classr   s     r   get_worker_classr      sM     
4	$BR66.1L,$'5    )	job_classqueue_classr   queue_namesr   r   r   returnc                     t        |       } t        || |d}|d   j                  }t        |      } ||f|d   j                  t               xs d| |d|S )z?
    Returns a RQ worker for all queues or specified ones.
    )r   r   r   N)
connectionexception_handlersr   r   )r   r   	__class__r   r"   r   )r   r   r   r   kwargsqueuess         r   
get_workerr'   +   sr     i(I	{SF)%%K#L1L!9''13;t  r   )N)typingr   r   r   rqr   rq.jobr   rq.utilsr   django.confr	   jobsr   r&   r   r   r   r   r   r'    r   r   <module>r/      s    ( (   %    (	C( 268<7;	c49n-. %T(^ 345 5d6l!234	 r   