U
    d                     @   s&   d dl mZ G dd dZdd ZdS )    )transactionc                   @   s(   e Zd ZdZdd Zdd Zdd ZdS )	atomic_if_using_transactionzContext manager wraps `atomic` if `using_transactions`.

    Replaces code::

        if using_transactions:
            with transaction.atomic(using=using):
                return something()
        return something()
    c                 C   s   || _ |rtj|d| _d S )N)using)using_transactionsr   Zatomiccontext_manager)selfr   r    r   7/tmp/pip-unpacked-wheel-gh2cwdms/import_export/utils.py__init__   s    z$atomic_if_using_transaction.__init__c                 C   s   | j r| j  d S N)r   r   	__enter__)r   r   r   r	   r      s    z%atomic_if_using_transaction.__enter__c                 G   s   | j r| jj|  d S r   )r   r   __exit__)r   argsr   r   r	   r      s    z$atomic_if_using_transaction.__exit__N)__name__
__module____qualname____doc__r
   r   r   r   r   r   r	   r      s   	r   c                 C   s
   d| _ | S )z
    A decorator used to mark some class methods as 'original',
    making it easy to detect whether they have been overridden
    by a subclass. Useful for method deprecation.
    T)Zis_original)methodr   r   r	   original   s    r   N)Z	django.dbr   r   r   r   r   r   r	   <module>   s   