o
    h                     @   s   d dl mZ d dlmZ 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 d d	lmZmZmZ d d
lmZ ddlmZ edZedZG dd deZdS )    )deepcopy)partial)ListTypeVar)transaction)timezone)	ParamSpec)ResultDoesNotExist)task_enqueued)ResultStatusTask
TaskResult)get_random_id   )BaseTaskBackendTPc                	       s   e Zd ZU dZdZee ed< dede	ddf fddZ
d	eddfd
dZdeeef dejdejdee fddZdedefddZdddZ  ZS )DummyBackendTresultsaliasparamsreturnNc                    s   t  || g | _d S N)super__init__r   )selfr   r   	__class__ [/var/www/html/ndineBlogger/venv/lib/python3.10/site-packages/django_tasks/backends/dummy.pyr      s   
zDummyBackend.__init__resultc                 C   s4   t |dt  | j| tjt| |d d S )Nenqueued_at)task_result)	object__setattr__r   nowr   appendr
   sendtype)r   r    r   r   r   _store_result   s   zDummyBackend._store_resulttaskargskwargsc                 C   sh   |  | tt |t tjd d d ||| jd	}| |dur+t	t
| j| t|S | | t|S )N)	r*   idstatusr!   
started_atfinished_atr+   r,   backendF)validate_taskr   r   r   r   NEWr   _get_enqueue_on_commit_for_taskr   	on_commitr   r)   r   )r   r*   r+   r,   r    r   r   r   enqueue#   s"   

zDummyBackend.enqueue	result_idc                    s4   zt  fdd| jD W S  ty   t d w )Nc                 3   s    | ]
}|j  kr|V  qd S r   )r-   ).0r    r7   r   r   	<genexpr>?   s    z*DummyBackend.get_result.<locals>.<genexpr>)nextr   StopIterationr	   )r   r7   r   r9   r   
get_result=   s
   
zDummyBackend.get_resultc                 C   s   | j   d S r   )r   clear)r   r   r   r   r>   C   s   zDummyBackend.clear)r   N)__name__
__module____qualname__supports_defersupports_async_taskr   r   __annotations__strdictr   r)   r   r   r   r+   r,   r6   r=   r>   __classcell__r   r   r   r   r      s"   
 

r   N)copyr   	functoolsr   typingr   r   	django.dbr   django.utilsr   typing_extensionsr   django_tasks.exceptionsr	   django_tasks.signalsr
   django_tasks.taskr   r   r   django_tasks.utilsr   baser   r   r   r   r   r   r   r   <module>   s    