
    -h                        S r SSKJr  SSKJr  SSKJr  SSKJr  \\4r	  " S S\R                  5      r\r " S S	\R                  5      r " S
 S\R                  5      r " S S\R                  5      r " S S\R                  5      r " S S\5      r " S S\5      r " S S\R                  5      r " S S\R                  5      r " S S\R                  5      rS r\R0                  " S5      S 5       rg)zSQLAlchemy ORM exceptions.   )exc)util)MultipleResultsFound)NoResultFoundc                       \ rS rSrSrSrg)StaleDataError   a!  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____firstlineno____doc____static_attributes__r
       gC:\Users\ROHAN GUPTA\OneDrive\Desktop\mathbuddy-assessment\venv\Lib\site-packages\sqlalchemy/orm/exc.pyr   r      s    r   r   c                       \ rS rSrSrSrg)
FlushError/   z0A invalid condition was detected during flush().r
   Nr   r
   r   r   r   r   /   s    :r   r   c                       \ rS rSrSrSrg)UnmappedError3   z?Base for exceptions that involve expected mappings not present.r
   Nr   r
   r   r   r   r   3   s    Ir   r   c                       \ rS rSrSrSrg)ObjectDereferencedError7   zHAn operation cannot complete due to an object being garbage
collected.

r
   Nr   r
   r   r   r   r   7   s    r   r   c                       \ rS rSrSrSrSrg)DetachedInstanceError>   zOAn attempt to access unloaded attributes on a
mapped instance that is detached.bhk3r
   N)r   r   r   r   r   coder   r
   r   r   r   r   >   s    ) Dr   r   c                   R    \ rS rSrSr\R                  " S5      SS j5       rS rSr	g)	UnmappedInstanceErrorE   z;An mapping operation was requested for an unknown instance.sqlalchemy.orm.baseNc                 x   [         R                  R                  nU(       d:   UR                  [	        U5      5        [        [	        U5      5      nSU< SU< S3n[        R                  X5        g ! [         a=    [        [	        U5      5      n[        U[        5      (       a  US[        U5      -  -  n N\f = f)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/   UnmappedInstanceError.__init__H   s    ~~&&!!$s),%d3i0
 &*41  	t) & 'S	2c4(($&4S&9:Cs   9A2 2AB98B9c                 <    U R                   S U R                  S   44$ N    	__class__argsr0   s    r   
__reduce__ UnmappedInstanceError.__reduce___       ~~diil333r   r
   N
r   r   r   r   r   r   preload_moduler/   r=   r   r
   r   r   r#   r#   E   s(    E	./* 0*,4r   r#   c                   (    \ rS rSrSrSS jrS rSrg)r,   c   z8An mapping operation was requested for an unknown class.Nc                 R    U(       d  [        U5      n[        R                  X5        g r@   )r-   r   r/   )r0   clsr2   s      r   r/   UnmappedClassError.__init__f   s    #C(Ct)r   c                 <    U R                   S U R                  S   44$ r7   r9   r<   s    r   r=   UnmappedClassError.__reduce__k   r?   r   r
   r@   )r   r   r   r   r   r/   r=   r   r
   r   r   r,   r,   c   s    B*
4r   r,   c                   R    \ rS rSrSr\R                  " S5      SS j5       rS rSr	g)	ObjectDeletedErroro   a  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                     [         R                  R                  nU(       d  SUR                  U5      -  n[        R
                  R                  X5        g )NzDInstance '%s' has been deleted, or its row is otherwise not present.)r   r'   r(   	state_strsa_excInvalidRequestErrorr/   )r0   stater2   r3   s       r   r/   ObjectDeletedError.__init__   sF    ~~&&026..2GH 
 	""++D6r   c                 <    U R                   S U R                  S   44$ r7   r9   r<   s    r   r=   ObjectDeletedError.__reduce__   r?   r   r
   r@   rA   r
   r   r   rK   rK   o   s,    & 
./	7 0	74r   rK   c                       \ rS rSrSrSrg)UnmappedColumnError   z5Mapping operation was requested on an unknown column.r
   Nr   r
   r   r   rV   rV      s    ?r   rV   c                       \ rS rSrSrS rSrg)LoaderStrategyException   z2A loader strategy for an attribute does not exist.c                 6   Uc)  [         R                  R                  U SU< SU< 35        g [         R                  R                  U S[        R                  " U5      < SU< S[        R                  " U5      < S[        R                  " U5      < S3	5        g )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".)rO   rP   r/   r   clsname_as_plain_name)r0   applied_to_property_typerequesting_property
applies_toactual_strategy_typestrategy_keys         r   r/    LoaderStrategyException.__init__   s{      '&&//!46 &&//
 ../CD'../GH..z:r   r
   N)r   r   r   r   r   r/   r   r
   r   r   rY   rY      s
    <r   rY   c                      SR                  U R                  U R                  45      nU$ ! [         a    [	        U SS 5      nUc  [        U 5      n U$ f = f)N.r   )joinr   r   AttributeErrorgetattrrepr)rF   cls_names     r   r+   r+      s]    !88S^^S\\:;
 O	  !3
D1CyHO	!s   '+ %AAr%   c                     [         R                  R                  n UR                  U 5      R                  n[        U 5      nU(       d  SU-  $ g ! [
        4[        -    a    0 n N.f = f)NzClass '%s' is not mapped)r   r'   r(   manager_of_classmappers	TypeErrorNO_STATEr+   )rF   r3   rl   r4   s       r   r-   r-      sh    >>""D'',44 #D)D00 	 <(" s   A A&%A&N)r    r   rO   r   r   r   rf   KeyErrorrn   SQLAlchemyErrorr   ConcurrentModificationErrorr   rP   r   r   r   r#   r,   rK   rV   rY   r+   rB   r-   r
   r   r   <module>rs      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   