
    MȂi                        S SK JrJrJr  S SKJr  S SKJrJr  S SKJ	r	J
r
Jr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)!    )	dataclassfieldreplace)datetime)isclassiscoroutinefunction)AnyCallableDictOptional)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+       BD:\sksbv-state-backend\venv\Lib\site-packages\django/tasks/base.pyr    r        sF    mFG45E-	:;Gfh78Ffl CDJr1   r    T)frozenslotskw_onlyc                       \ rS rSr% \\S'   \\S'   \\S'   \\S'   \\	   \S'   Sr
\\S'   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#   +   priorityfuncbackend
queue_name	run_afterFtakes_contextc                 B    U R                  5       R                  U 5        g N)get_backendvalidate_taskselfs    r2   __post_init__Task.__post_init__6   s    ((.r1   c                 .    U R                   R                  $ r?   )r9   r,   rB   s    r2   name	Task.name9   s    yy!!!r1   N)r8   r;   r<   r:   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<   r:   )r   )rC   r8   r;   r<   r:   changess         r2   using
Task.using=   sQ     "*J!$.L! #,K !(It'w''r1   c                 B    U R                  5       R                  XU5      $ )!Queue up the Task to be executed.)r@   enqueuerC   argskwargss      r2   rO   Task.enqueueR   s    !))$f==r1   c                 ^   #    U R                  5       R                  XU5      I Sh  vN $  N7f)rN   N)r@   aenqueuerP   s      r2   rU   Task.aenqueueV   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taskr9   r   module_pathrC   	result_idresults      r2   rZ   Task.get_resultZ   s^     !!#..y9;;tyy($01H1H0K1M  r1   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().NrX   rY   )r@   aget_resultr[   r9   r   r\   r]   s      r2   rb   Task.aget_resulth   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   r9   r   rP   s      r2   call	Task.callq   s>    tyy)) +T<V<<yy$)&))r1   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   r9   r   rP   s      r2   acall
Task.acallv   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) rl   r:   )rC   rl   s     r2   r@   Task.get_backend{   s    #\\**r1   c                 `    U R                   R                   SU R                   R                   3$ )N.)r9   r-   r.   rB   s    r2   r\   Task.module_path   s)    ))&&'q)?)?(@AAr1   r+   )r,   r-   r.   r/   int__annotations__r
   strr   r   r=   boolrD   propertyrG   rK   rO   rU   rZ   rb   re   rh   r@   r\   r0   r+   r1   r2   r#   r#   +   s    M
NLO!!  M4/ " " (*>E*
?
+
 B Br1   r#   NF)r8   r;   r:   r=   c                N   ^^^^^ SSK Jm  UUUUU4S jnU (       a  U" U 5      $ U$ )Nr   rk   c           	      2   > TT   R                  TU TTTS S9$ )N)r8   r9   r;   r:   r=   r<   )
task_class)fr:   r8   r;   r=   rl   s    r2   wrappertask.<locals>.wrapper   s2    W%00!' 1 
 	
r1   )rm   rl   )functionr8   r;   r:   r=   r{   rl   s    ```` @r2   r[   r[      s'      
 
 x  Nr1   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BaseException
ValueError)rC   exception_classs     r2   r   TaskError.exception_class   sY     ((A(AB''z]0
 0
 ,,//UV  r1   r+   N)	r,   r-   r.   r/   rt   rs   rv   r   r0   r+   r1   r2   r   r      s    N
 
r1   r   c                      \ rS rSr% \\S'   \\S'   \\S'   \\	   \S'   \\	   \S'   \\	   \S'   \\	   \S'   \
\S	'   \\\4   \S
'   \\S'   \
\   \S'   \
\   \S'   \" SSS9r\\   \S'   S r\S 5       r\S 5       r\S 5       rS rS rSrg)
TaskResult   r[   idr   r   r   r   r   rQ   rR   r:   r   r   FN)initr   r   c                     [         R                  U S[        U R                  5      5        [         R                  U S[        U R                  5      5        g )NrQ   rR   )object__setattr__r   rQ   rR   rB   s    r2   rD   TaskResult.__post_init__   s8    4		)BC4>$+++FGr1   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'   r   rB   s    r2   return_valueTaskResult.return_value   sM     ;;*555%%%[[,333]++899r1   c                 \    U R                   [        R                  [        R                  1;   $ r?   )r   r    r'   r)   rB   s    r2   is_finishedTaskResult.is_finished   s$    {{/668H8S8STTTr1   c                 ,    [        U R                  5      $ r?   )lenr   rB   s    r2   attemptsTaskResult.attempts   s    4??##r1   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)r[   r@   rZ   r   TASK_REFRESH_ATTRSr   r   getattrrC   refreshed_taskattrs      r2   refreshTaskResult.refresh   sB    ..0;;DGGD&Dt7>+HI 'r1   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)r[   r@   rb   r   r   r   r   r   r   s      r2   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#   rs   rt   r    r   r   listr   r	   r   r   r   rD   rv   r   r   r   r   r   r0   r+   r1   r2   r   r      s    
JG(##""(##  ))
JcNLOS	#(eT#BM8C=BH : : U U $ $JJr1   r   c                   0    \ rS rSr% \\S'   \S 5       rSrg)TaskContext   task_resultc                 .    U R                   R                  $ r?   )r   r   rB   s    r2   attemptTaskContext.attempt   s    (((r1   r+   N)	r,   r-   r.   r/   r   rs   rv   r   r0   r+   r1   r2   r   r      s    ) )r1   r   r?   )&dataclassesr   r   r   r   inspectr   r   typingr	   r
   r   r   asgiref.syncr   r   django.db.models.enumsr   django.utils.jsonr   django.utils.module_loadingr   django.utils.translationr   
exceptionsr   DEFAULT_TASK_BACKEND_ALIASDEFAULT_TASK_PRIORITYDEFAULT_TASK_QUEUE_NAMETASK_MAX_PRIORITYTASK_MIN_PRIORITYr   r    r#   r[   r   r   r   r+   r1   r2   <module>r      s   1 1  0 0 0 5 . , 5 2 *&  #   	 E{ E $dD1VB VB 2VBt  #&&2 $dD1  2$ $dD1<J <J 2<J~ $dD1) ) 2)r1   