a
    µb‘  ã                   @   sB   d dl mZ d dlmZ d dlmZ d dlmZ G dd„ dƒZdS )é    )Úgot_request_exception)Úget_callable)Úconf)ÚRecordModifiedErrorc                   @   s*   e Zd ZdZd	dd„Zdd„ Zdd„ ZdS )
ÚConcurrencyMiddlewarez• Intercept :ref:`RecordModifiedError` and invoke a callable defined in
    :setting:`CONCURRECY_HANDLER409` passing the request and the object.

    Nc                 C   s
   || _ d S ©N©Úget_response)Úselfr	   © r   úS/home/httpd/docs/test/DocsMgr/lib/python3.9/site-packages/concurrency/middleware.pyÚ__init__   s    zConcurrencyMiddleware.__init__c                 C   s   |   |¡}|S r   r   )r
   ÚrequestÚresponser   r   r   Ú__call__   s    
zConcurrencyMiddleware.__call__c                 C   s4   t |tƒr0tj| |d� ttjƒ}|||jd�S d S )N)Zsenderr   )Útarget)Ú
isinstancer   r   Úsendr   r   Z
HANDLER409r   )r
   r   Ú	exceptionÚcallbackr   r   r   Úprocess_exception   s
    

z'ConcurrencyMiddleware.process_exception)N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   r   r      s   
r   N)	Zdjango.core.signalsr   Zdjango.urls.utilsr   Zconcurrency.configr   Zconcurrency.exceptionsr   r   r   r   r   r   Ú<module>   s   