Ë
    ¦#ijÔ  ã                   óœ   — d dl 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mZmZmZ d dlmZ d dlmZ d d	lmZmZ  G d
„ de¬«      Zy)é    )ÚABCMetaÚabstractmethod)Úiscoroutinefunction)Úsync_to_async)Úsettings)ÚDEFAULT_TASK_QUEUE_NAME)ÚDEFAULT_TASK_PRIORITYÚTASK_MAX_PRIORITYÚTASK_MIN_PRIORITYÚTask)ÚInvalidTask)Útimezone)Úget_func_argsÚis_module_level_functionc                   óT   — e Zd ZeZdZdZdZdZd„ Z	d„ Z
ed„ «       Zd„ Zd„ Zd„ Zd„ Zy	)
ÚBaseTaskBackendFc                 óŠ   — || _         t        |j                  dt        g«      «      | _        |j                  di «      | _        y )NÚQUEUESÚOPTIONS)ÚaliasÚsetÚgetr   ÚqueuesÚoptions)Úselfr   Úparamss      úT/var/www/html/office/venv/lib/python3.12/site-packages/django/tasks/backends/base.pyÚ__init__zBaseTaskBackend.__init__%   s6   € ØˆŒ
Ü˜&Ÿ*™* XÔ0GÐ/HÓIÓJˆŒØ—z‘z )¨RÓ0ˆ�ó    c                 ón  — t        |j                  «      st        d«      ‚| j                  s t	        |j                  «      rt        d«      ‚t        |j                  «      }|j                  r|r|d   dk7  rt        d«      ‚| j                  s|j                  t        k7  rt        d«      ‚|j                  t        k  s5|j                  t        kD  s"t        |j                  «      |j                  k7  rt        dt        › dt        › d	�«      ‚| j                  s|j                  �t        d«      ‚t        j                   r6|j                  �*t#        j$                  |j                  «      st        d«      ‚| j&                  r2|j(                  | j&                  vrt        d|j(                  › d�«      ‚y
y
)zU
        Determine whether the provided Task can be executed by the backend.
        z0Task function must be defined at a module level.z%Backend does not support async Tasks.r   ÚcontextzCTask takes context but does not have a first argument of 'context'.z3Backend does not support setting priority of tasks.z(priority must be a whole number between z and ú.Nz#Backend does not support run_after.z$run_after must be an aware datetime.zQueue 'z' is not valid for backend.)r   Úfuncr   Úsupports_async_taskr   r   Útakes_contextÚsupports_priorityÚpriorityr	   r   r
   ÚintÚsupports_deferÚ	run_afterr   ÚUSE_TZr   Úis_awarer   Ú
queue_name)r   ÚtaskÚtask_func_argss      r   Úvalidate_taskzBaseTaskBackend.validate_task*   sr  € ô (¨¯	©	Ô2ÜÐPÓQÐQà×'Ò'Ô,?ÀÇ	Á	Ô,JÜÐEÓFÐFä& t§y¡yÓ1ˆØ×ÒÙ .°Ñ"3°yÒ"@äØUóð ð ×%Ò%¨$¯-©-Ô;PÒ*PÜÐSÓTÐTà�M‰MÔ-Ò-Ø�}‰}Ô0Ò0Ü�4—=‘=Ó! T§]¡]Ò2äØ:Ô;LÐ:MÈUÜ$Ð% Qð(óð ð
 ×"Ò" t§~¡~Ð'AÜÐCÓDÐDô �OŠOØ—‘Ð*Ü×%Ñ% d§n¡nÔ5äÐDÓEÐEà�;Š;˜4Ÿ?™?°$·+±+Ñ=Ü ¨¯©Ð'8Ð8SÐTÓUÐUð >ˆ;r   c                  ó   — y)zQueue up a task to be executed.N© ©r   r.   ÚargsÚkwargss       r   ÚenqueuezBaseTaskBackend.enqueueU   s   � r   c              ƒ   ó^   K  —  t        | j                  d¬«      |||¬«      ƒ d{  –—† S 7 Œ­w)z7Queue up a task function (or coroutine) to be executed.T©Úthread_sensitive)r.   r4   r5   N)r   r6   r3   s       r   ÚaenqueuezBaseTaskBackend.aenqueueY   s1   è ø€ àG”] 4§<¡<À$ÔGØ˜D¨ô
÷ 
ð 	
ð 
ús   ‚$-¦+§-c                 ó   — t        d«      ‚)zt
        Retrieve a task result by id.

        Raise TaskResultDoesNotExist if such result does not exist.
        z?This backend does not support retrieving or refreshing results.)ÚNotImplementedError©r   Ú	result_ids     r   Ú
get_resultzBaseTaskBackend.get_result_   s   € ô "ØMó
ð 	
r   c              ƒ   óZ   K  —  t        | j                  d¬«      |¬«      ƒ d{  –—† S 7 Œ­w)zSee get_result().Tr8   )r>   N)r   r?   r=   s     r   Úaget_resultzBaseTaskBackend.aget_resulti   s-   è ø€ àJ”] 4§?¡?ÀTÔJØô
÷ 
ð 	
ð 
ús   ‚"+¤)¥+c                 ó   — g S )Nr2   )r   r5   s     r   ÚcheckzBaseTaskBackend.checko   s   € Øˆ	r   N)Ú__name__Ú
__module__Ú__qualname__r   Ú
task_classr)   r$   Úsupports_get_resultr&   r   r0   r   r6   r:   r?   rA   rC   r2   r   r   r   r      sZ   „ Ø€Jð €Nð  Ðð  Ðð Ðò1ò
)VðV ñ.ó ð.ò
ò
ò
ór   r   )Ú	metaclassN)Úabcr   r   Úinspectr   Úasgiref.syncr   Údjango.confr   Údjango.tasksr   Údjango.tasks.baser	   r
   r   r   Údjango.tasks.exceptionsr   Údjango.utilsr   Údjango.utils.inspectr   r   r   r2   r   r   ú<module>rS      s7   ðß 'Ý 'å &å  Ý 0÷ó õ 0Ý !ß Hô] ö ]r   