
    jc!                        S SK Jr  S SKJrJrJrJr  S SKJr  S SKJ	r	J
r
  S SKJr  S SKJrJr  S SKJr  S SKJr  S S	KJr  S S
KJr  SSKJr  SrS rSrSrSr1 Skr " S S\5      r \" SSSS9 " S S5      5       r! S!\\\SS.S jjr"\" SSSS9 " S S5      5       r#\" SSSS9 " S S5      5       r$\" SSSS9 " S S 5      5       r%g)"    )Callable)	dataclassfieldfieldsreplace)datetime)isclassiscoroutinefunction)Any)async_to_syncsync_to_async)TextChoices)normalize_json)import_string)pgettext_lazy   )TaskResultMismatchdefaultd   i>   errorsstatus
started_at
worker_idsenqueued_atfinished_at_return_valuelast_attempted_atc                   l    \ rS rSrS\" SS5      4rS\" SS5      4rS\" SS5      4rS	\" SS
5      4rSr	g)TaskResultStatus!   READYTaskReadyRUNNINGRunningFAILEDFailed
SUCCESSFUL
Successful N)
__name__
__module____qualname____firstlineno__r   r!   r$   r&   r(   __static_attributes__r*       I/var/www/html/KUNJ/venv/lib/python3.13/site-packages/django/tasks/base.pyr   r   !   sF    mFG45E-	:;Gfh78Ffl CDJr0   r   T)frozenslotskw_onlyc                       \ rS rSr% \S\4   \S'   \r\	\S'   \
r\\S'   \r\\S'   Sr\S-  \S'   S	r\\S
'   S r\S 5       rS r\S 5       rSSSSS.S jrS rS rS rS rS rS rS r \S 5       r!Sr"g)r"   ,   .funcprioritybackend
queue_nameN	run_afterFtakes_contextc                 B    U R                  5       R                  U 5        g N)get_backendvalidate_taskselfs    r1   __post_init__Task.__post_init__7   s    ((.r0   c                     US   n [        U5      nUR                  US'   U " S0 UD6$ ! [        [        4 a  nSU< S3n[	        U5      UeS nAff = f)Nr7   z	Expected z to point to a Task instance.r*   )r   r7   ImportErrorAttributeError
ValueError)clskwargs	func_pathr7   emsgs         r1   _reconstructTask._reconstruct:   sg    6N		) +D!YYF6N }V} ^, 	)i]*GHCS/q(	)s   ) AAAc                     [        U 5       Vs0 s H"  oR                  [        XR                  5      _M$     nnU R                  US'   U R                  R
                  U44$ s  snf )Nr7   )r   namegetattrmodule_path	__class__rN   )rB   frJ   s      r1   
__reduce__Task.__reduce__E   sV    9?FA&&'$//F))v++fY77 Gs   )A!c                 .    U R                   R                  $ r>   )r7   r+   rA   s    r1   rQ   	Task.nameK   s    yy!!!r0   )r8   r:   r;   r9   c                V    0 nUb  XS'   Ub  X%S'   Ub  X5S'   Ub  XES'   [        U 40 UD6$ )z)Create a new Task with modified defaults.r8   r:   r;   r9   )r   )rB   r8   r:   r;   r9   changess         r1   using
Task.usingO   sQ     "*J!$.L! #,K !(It'w''r0   c                 B    U R                  5       R                  XU5      $ )!Queue up the Task to be executed.)r?   enqueuerB   argsrJ   s      r1   r`   Task.enqueued   s    !))$f==r0   c                 ^   #    U R                  5       R                  XU5      I Sh  vN $  N7f)r_   N)r?   aenqueuera   s      r1   re   Task.aenqueueh   s'     %%'00VDDDDs   $-+-c                     U R                  5       R                  U5      nUR                  R                  U R                  :w  a$  [	        SUR                  R
                  < S35      eU$ )z
Retrieve a task result by id.

Raise TaskResultDoesNotExist if such result does not exist, or raise
TaskResultMismatch if the result exists but belongs to another Task.
Task does not match (received ))r?   
get_resulttaskr7   r   rS   rB   	result_idresults      r1   rj   Task.get_resultl   s^     !!#..y9;;tyy($01H1H0K1M  r0   c                    #    U R                  5       R                  U5      I Sh  vN nUR                  R                  U R                  :w  a$  [	        SUR                  R
                  < S35      eU$  NN7f)zSee get_result().Nrh   ri   )r?   aget_resultrk   r7   r   rS   rl   s      r1   rq   Task.aget_resultz   sh     '')55i@@;;tyy($01H1H0K1M   As   #A6A4AA6c                     [        U R                  5      (       a  [        U R                  5      " U0 UD6$ U R                  " U0 UD6$ r>   )r
   r7   r   ra   s      r1   call	Task.call   s>    tyy)) +T<V<<yy$)&))r0   c                    #    [        U R                  5      (       a  U R                  " U0 UD6I S h  vN $ [        U R                  5      " U0 UD6I S h  vN $  N' N7fr>   )r
   r7   r   ra   s      r1   acall
Task.acall   sO     tyy))D3F333"499-t>v>>> 4>s!   0AA"AAAAc                 *    SSK Jn  XR                     $ )Nr   task_backends) r{   r9   )rB   r{   s     r1   r?   Task.get_backend   s    #\\**r0   c                 `    U R                   R                   SU R                   R                   3$ )N.)r7   r,   r-   rA   s    r1   rS   Task.module_path   s)    ))&&'q)?)?(@AAr0   r*   )#r+   r,   r-   r.   r   r   __annotations__DEFAULT_TASK_PRIORITYr8   intDEFAULT_TASK_BACKEND_ALIASr9   strDEFAULT_TASK_QUEUE_NAMEr:   r;   r   r<   boolrC   classmethodrN   rV   propertyrQ   r\   r`   re   rj   rq   rt   rw   r?   rS   r/   r*   r0   r1   r"   r"   ,   s    
38
)Hc)-GS--J-!%Ix$%  M4/  8 " " (*>E*
?
+
 B Br0   r"   NF)r8   r:   r9   r<   c                t   ^^^^^^ SSK Jm  ST;   a  [        S5      eUUUUUU4S jnU (       a  U" U 5      $ U$ )Nr   rz   r;   zqrun_after cannot be defined statically with the @task decorator. Use .using(run_after=...) to set it dynamically.c           	      :   > TT   R                   " SU TTTTS.TD6$ )N)r7   r8   r:   r9   r<   r*   )
task_class)rU   r9   rJ   r8   r:   r<   r{   s    r1   wrappertask.<locals>.wrapper   s9    W%00 
!'
 
 	
r0   )r|   r{   	TypeError)functionr8   r:   r9   r<   rJ   r   r{   s    ````` @r1   rk   rk      sA      f?
 	


 
 x  Nr0   c                   :    \ rS rSr% \\S'   \\S'   \S 5       rSrg)	TaskError   exception_class_path	tracebackc                     [        U R                  5      n[        U5      (       a  [        U[        5      (       d  [        U R                  < S35      eU$ )Nz& does not reference a valid exception.)r   r   r	   
issubclassBaseExceptionrH   )rB   exception_classs     r1   r   TaskError.exception_class   sY     ((A(AB''z]0
 0
 ,,//UV  r0   r*   N)	r+   r,   r-   r.   r   r   r   r   r/   r*   r0   r1   r   r      s    N
 
r0   r   c                   "   \ rS rSr% \\S'   \\S'   \\S'   \S-  \S'   \S-  \S'   \S-  \S'   \S-  \S	'   \	\
   \S
'   \\\
4   \S'   \\S'   \	\   \S'   \	\   \S'   \" SSS9r\
S-  \S'   S r\S 5       r\S 5       r\S 5       rS rS rSrg)
TaskResult   rk   idr   Nr   r   r   r   rb   rJ   r9   r   r   F)initr   r   c                     [         R                  U S[        U R                  5      5        [         R                  U S[        U R                  5      5        g )Nrb   rJ   )object__setattr__r   rb   rJ   rA   s    r1   rC   TaskResult.__post_init__   s8    4		)BC4>$+++FGr0   c                     U R                   [        R                  :X  a  U R                  $ U R                   [        R                  :X  a  [        S5      e[        S5      e)z
The return value of the task.

If the task didn't succeed, an exception is raised.
This is to distinguish against the task returning None.
zTask failedzTask has not finished yet)r   r   r(   r   r&   rH   rA   s    r1   return_valueTaskResult.return_value   sM     ;;*555%%%[[,333]++899r0   c                 \    U R                   [        R                  [        R                  1;   $ r>   )r   r   r&   r(   rA   s    r1   is_finishedTaskResult.is_finished   s$    {{/668H8S8STTTr0   c                 ,    [        U R                  5      $ r>   )lenr   rA   s    r1   attemptsTaskResult.attempts   s    4??##r0   c           	          U R                   R                  5       R                  U R                  5      n[         H"  n[
        R                  X[        X5      5        M$     g)z0Reload the cached task data from the task store.N)rk   r?   rj   r   TASK_REFRESH_ATTRSr   r   rR   rB   refreshed_taskattrs      r1   refreshTaskResult.refresh   sB    ..0;;DGGD&Dt7>+HI 'r0   c           	         #    U R                   R                  5       R                  U R                  5      I Sh  vN n[         H"  n[
        R                  X[        X5      5        M$     g N17f)z1
Reload the cached task data from the task store
N)rk   r?   rq   r   r   r   r   rR   r   s      r1   arefreshTaskResult.arefresh  sP       $yy446BB477KK&Dt7>+HI ' Ls   7A-A+2A-r*   )r+   r,   r-   r.   r"   r   r   r   r   listr   dictr   r   r   rC   r   r   r   r   r   r   r/   r*   r0   r1   r   r      s    
JGD 4D   $&
s)OcNLOS	 %5$ ?M3:?H : : U U $ $JJr0   r   c                   0    \ rS rSr% \\S'   \S 5       rSrg)TaskContexti
  task_resultc                 .    U R                   R                  $ r>   )r   r   rA   s    r1   attemptTaskContext.attempt  s    (((r0   r*   N)	r+   r,   r-   r.   r   r   r   r   r/   r*   r0   r1   r   r   
  s    ) )r0   r   r>   )&collections.abcr   dataclassesr   r   r   r   r   inspectr	   r
   typingr   asgiref.syncr   r   django.db.models.enumsr   django.utils.jsonr   django.utils.module_loadingr   django.utils.translationr   
exceptionsr   r   r   r   TASK_MAX_PRIORITYTASK_MIN_PRIORITYr   r   r"   rk   r   r   r   r*   r0   r1   <module>r      s   $ 9 9  0  5 . , 5 2 *&  #   	 E{ E $dD1gB gB 2gBV  #&&@ $dD1  2$ $dD1<J <J 2<J~ $dD1) ) 2)r0   