U
    8ÄT_%  ã                   @   s�   d dl mZ d dlmZ d dlmZ eƒ ZG dd„ deƒZedd�Zedd�Z	edd�Z
edd�Zedd�Zedd�Zedd�Zeƒ Zeƒ ZdS )	é    )Úpartial)Úmake_model_tuple)ÚSignalc                       s8   e Zd ZdZdd„ Zd
‡ fdd„	Zd‡ fdd	„	Z‡  ZS )ÚModelSignalzz
    Signal subclass that allows the sender to be lazily specified as a string
    of the `app_label.ModelName` form.
    c                 K   sL   ddl m} t||f|Ž}t|tƒr@|p,|j}| |t|ƒ¡ n||ƒS d S )Nr   )ÚOptions)Zdjango.db.models.optionsr   r   Ú
isinstanceÚstrZdefault_appsZlazy_model_operationr   )ÚselfÚmethodÚappsÚreceiverÚsenderÚkwargsr   Zpartial_method© r   ú</tmp/pip-unpacked-wheel-dv63caxw/django/db/models/signals.pyÚ_lazy_method   s    

zModelSignal._lazy_methodNTc                    s   | j tƒ j|||||d� d S )N)ÚweakÚdispatch_uid)r   ÚsuperÚconnect)r	   r   r   r   r   r   ©Ú	__class__r   r   r      s        þzModelSignal.connectc                    s   | j tƒ j||||d�S )N)r   )r   r   Ú
disconnect)r	   r   r   r   r   r   r   r   r      s        ÿzModelSignal.disconnect)NTNN)NNNN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   Ú__classcell__r   r   r   r   r   	   s   r   T)Zuse_cachingN)Ú	functoolsr   Zdjango.db.models.utilsr   Zdjango.dispatchr   Zclass_preparedr   Zpre_initZ	post_initZpre_saveZ	post_saveZ
pre_deleteZpost_deleteZm2m_changedZpre_migrateZpost_migrater   r   r   r   Ú<module>   s   






