
    +h                        d Z ddlmZ ddlmZ ddlmZ ddlmZ eefZ		  G d dej                        ZeZ G d d	ej                        Z G d
 dej                        Z G d dej                        Z G d dej                        Z G d de      Z G d de      Z G d dej                        Z G d dej                        Z G d dej                        Zd Z ej0                  d      d        Zy)zSQLAlchemy ORM exceptions.   )exc)util)MultipleResultsFound)NoResultFoundc                       e Zd ZdZy)StaleDataErroraa  An operation encountered database state that is unaccounted for.

    Conditions which cause this to happen include:

    * A flush may have attempted to update or delete rows
      and an unexpected number of rows were matched during
      the UPDATE or DELETE statement.   Note that when
      version_id_col is used, rows in UPDATE or DELETE statements
      are also matched against the current known version
      identifier.

    * A mapped object with version_id_col was refreshed,
      and the version number coming back from the database does
      not match that of the object itself.

    * A object is detached from its parent object, however
      the object was previously attached to a different parent
      identity which was garbage collected, and a decision
      cannot be made if the new parent was really the most
      recent "parent".

    N__name__
__module____qualname____doc__     E/var/www/html/venv/lib/python3.12/site-packages/sqlalchemy/orm/exc.pyr   r      s    r   r   c                       e Zd ZdZy)
FlushErrorz0A invalid condition was detected during flush().Nr	   r   r   r   r   r   /   s    :r   r   c                       e Zd ZdZy)UnmappedErrorz?Base for exceptions that involve expected mappings not present.Nr	   r   r   r   r   r   3   s    Ir   r   c                       e Zd ZdZy)ObjectDereferencedErrorzPAn operation cannot complete due to an object being garbage
    collected.

    Nr	   r   r   r   r   r   7   s    r   r   c                       e Zd ZdZdZy)DetachedInstanceErrorzSAn attempt to access unloaded attributes on a
    mapped instance that is detached.bhk3N)r
   r   r   r   coder   r   r   r   r   >   s    ) Dr   r   c                   H    e Zd ZdZ ej
                  d      dd       Zd Zy)UnmappedInstanceErrorz;An mapping operation was requested for an unknown instance.sqlalchemy.orm.baseNc                 `   t         j                  j                  }|s8	 |j                  t	        |             t        t	        |            }d|d|d}t        j                  | |       y # t        $ r8 t        t	        |            }t        |t              r|dt        |      z  z  }Y Ww xY w)NzClass z| is mapped, but this instance lacks instrumentation.  This occurs when the instance is created before sqlalchemy.orm.mapper(z) was called.z;; was a class (%s) supplied where an instance was required?)r   	preloadedorm_baseclass_mappertype_safe_cls_nameUnmappedClassError_default_unmapped
isinstancer   __init__)selfobjmsgbasenames        r   r'   zUnmappedInstanceError.__init__H   s    ~~&&!!$s),%d3i0
 &*41  	tS) & 'S	2c4($&4S&9:Cs   7A, ,>B-,B-c                 <    | j                   d | j                  d   ffS N    	__class__argsr(   s    r   
__reduce__z UnmappedInstanceError.__reduce___       ~~diil333r   Nr
   r   r   r   r   preload_moduler'   r4   r   r   r   r   r   E   s*    ET./* 0*,4r   r   c                       e Zd ZdZddZd Zy)r$   z8An mapping operation was requested for an unknown class.Nc                 J    |st        |      }t        j                  | |       y r6   )r%   r   r'   )r(   clsr*   s      r   r'   zUnmappedClassError.__init__f   s    #C(CtS)r   c                 <    | j                   d | j                  d   ffS r.   r0   r3   s    r   r4   zUnmappedClassError.__reduce__k   r5   r   r6   )r
   r   r   r   r'   r4   r   r   r   r$   r$   c   s    B*
4r   r$   c                   H    e Zd ZdZ ej
                  d      dd       Zd Zy)ObjectDeletedErrora  A refresh operation failed to retrieve the database
    row corresponding to an object's known primary key identity.

    A refresh operation proceeds when an expired attribute is
    accessed on an object, or when :meth:`_query.Query.get` is
    used to retrieve an object which is, upon retrieval, detected
    as expired.   A SELECT is emitted for the target row
    based on primary key; if no row is returned, this
    exception is raised.

    The true meaning of this exception is simply that
    no row exists for the primary key identifier associated
    with a persistent object.   The row may have been
    deleted, or in some cases the primary key updated
    to a new value, outside of the ORM's management of the target
    object.

    r   Nc                     t         j                  j                  }|sd|j                  |      z  }t        j
                  j                  | |       y )NzDInstance '%s' has been deleted, or its row is otherwise not present.)r   r   r    	state_strsa_excInvalidRequestErrorr'   )r(   stater*   r+   s       r   r'   zObjectDeletedError.__init__   sH    ~~&&026..2GH 
 	""++D#6r   c                 <    | j                   d | j                  d   ffS r.   r0   r3   s    r   r4   zObjectDeletedError.__reduce__   r5   r   r6   r7   r   r   r   r>   r>   o   s.    & T./	7 0	74r   r>   c                       e Zd ZdZy)UnmappedColumnErrorz5Mapping operation was requested on an unknown column.Nr	   r   r   r   rF   rF      s    ?r   rF   c                       e Zd ZdZd Zy)LoaderStrategyExceptionz2A loader strategy for an attribute does not exist.c                 "   |'t         j                  j                  | d|d|       y t         j                  j                  | dt        j                  |      d|dt        j                  |      dt        j                  |      d	       y )NzCan't find strategy z for zCan't apply "z" strategy to property "z", which is a "z7"; this loader strategy is intended to be used with a "z".)rA   rB   r'   r   clsname_as_plain_name)r(   applied_to_property_typerequesting_property
applies_toactual_strategy_typestrategy_keys         r   r'   z LoaderStrategyException.__init__   s{      '&&//!46 &&//
 ../CD'../GH..z:r   N)r
   r   r   r   r'   r   r   r   rH   rH      s
    <r   rH   c                     	 dj                  | j                  | j                  f      }|S # t        $ r t	        | dd       }|t        |       }Y |S w xY w)N.r
   )joinr   r
   AttributeErrorgetattrrepr)r;   cls_names     r   r#   r#      s]    !88S^^S\\:;
 O	  !3
D1CyHO	!s   '+ #AAr   c                     t         j                  j                  }	 |j                  |       j                  }t        |       }|sd|z  S y # t
        ft        z   $ r i }Y (w xY w)NzClass '%s' is not mapped)r   r   r    manager_of_classmappers	TypeErrorNO_STATEr#   )r;   r+   rY   r,   s       r   r%   r%      sh    >>""D'',44 #D)D00 	 <(" s   A
 
A A N)r    r   rA   r   r   r   rS   KeyErrorr[   SQLAlchemyErrorr   ConcurrentModificationErrorr   rB   r   r   r   r   r$   r>   rF   rH   r#   r8   r%   r   r   r   <module>r`      s   !   &  H% LV++ 2 - ;'' ;JF.. Jf44 F22 4M 4<	4 	4!433 !4H@&44 @f88 @ *+
1 ,
1r   