
    NwgI                     *    d dl mZ  G d d      Zd Zy)    )transactionc                   "    e Zd ZdZd Zd Zd Zy)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                 N    || _         |rt        j                  |      | _        y y )N)using)using_transactionsr   atomiccontext_manager)selfr   r   s      J/var/www/horilla/myenv/lib/python3.12/site-packages/import_export/utils.py__init__z$atomic_if_using_transaction.__init__   s%    "4#.#5#5E#BD      c                 R    | j                   r| j                  j                          y y N)r   r
   	__enter__)r   s    r   r   z%atomic_if_using_transaction.__enter__   s"    ""  **, #r   c                 P    | j                   r | j                  j                  |  y y r   )r   r
   __exit__)r   argss     r   r   z$atomic_if_using_transaction.__exit__   s&    "")D  ))40 #r   N)__name__
__module____qualname____doc__r   r   r    r   r   r   r      s    C
-1r   r   c                 4    t        | d      r| j                  S y )Nrelated_model)hasattrr   )fields    r   get_related_modelr      s    uo&""" 'r   N)	django.dbr   r   r   r   r   r   <module>r       s    !1 12#r   