
    lgQ                    P   S SK Jr  S SKrS SKJr  S SKJr  S SKrS SK	r	S SK
r
S SK
Jr  S SK
Jr  S SK
Jr  S SK
Jr  S SK
Jr  S S	K
Jr  S S
K
Jr  S SK
Jr  S SK
Jr  S SK
Jr  S SK
Jr  S SK
Jr  S SK
Jr  S SK
Jr  S SK
Jr  S SK
Jr  S SK
Jr  S SK
Jr  SSKJr   S SKJ r   S SKJ!r!  S SKJ"r"  S SKJ#r#  S SKJ$r$  S SKJ%r%  S SKJ&r&  S S KJ'r'  S S!KJ(r(  S S"KJ)r)  S S#KJ*r*  S S$KJ+r+  S S%KJ,r,  S S&KJ-r-  S S'KJ.r.  S S(KJ/r/  S S)KJ0r0  S S*KJ1r1  \" S+\S,9r2\" S-5      r3\" S.SS/9r4\" S0SS19r5\" S25      r6\" S3SS/9r7\Rp                  (       a  \9" \
RN                  \'/5      r:O	\9" \'/5      r:\Rv                  (       a  S S4K<J=r=  O\>" S5      r=\" S55      r?\\\   \@\\\0S64   rA " S7 S8\*5      rB " S9 S:\*\2   5      rC " S; S<\*\3\74   5      rD\'S=   rESS>SS?.               SlS@ jjrF    SmSA jrG      SnSB jrHSSSC.         SoSD jjrISSE.       SpSF jjrJSqSG jrKSrSH jrLSsSI jrMStSJ jrNSuSK jrOSvSL jrPSwSM jrQSxSN jrRSySO jrS  Sz       S{SP jjrT\S|SQ j5       rU\S}SR j5       rU\    SmSS j5       rU    SmST jrU\      S~SU j5       rV\      SSV j5       rV      SSW jrVSSX jrWStSY jrXSSZ jrY      SS[ jrZSS\.       SS] jjr[SS^ jr\ " S_ S`\*5      r]\" Sa\]S,9r^ " Sb Sc\\^   5      r_\" Sd\]SSe9r` " Sf Sg\\`   5      ra\" Sh\\Si\4      S,9rb " Sj Sk\\b   5      rcg)    )annotationsN)deque)Any)Callable)cast)Dict)
ForwardRef)Generic)Iterable)Mapping)NewType)NoReturn)Optional)overload)Set)Tuple)Type)TYPE_CHECKING)TypeVar)Union   )compatT)	Annotated)Concatenate)dataclass_transform)Final)final)get_args)
get_origin)Literal)NotRequired)	ParamSpec)Protocol)SupportsIndex)	TypeAlias)	TypedDict)	TypeGuard)Self)TypeAliasType)Never_T)bound_KT_KT_co)	covariant
_KT_contra)contravariant_VT_VT_co)NoneTypeNonezGenericProtocol[Any]c                  $    \ rS rSr% SrS\S'   Srg)ArgsTypeProtocolZ   zWprotocol for types that have ``__args__``

there's no public interface for this AFAIK

Tuple[_AnnotationScanType, ...]__args__ N__name__
__module____qualname____firstlineno____doc____annotations____static_attributes__r;       ^/Users/Alptekin/Desktop/izin_takip/venv/lib/python3.13/site-packages/sqlalchemy/util/typing.pyr7   r7   Z   s     .-rD   r7   c                  .    \ rS rSr% SrS\S'   S\S'   Srg)	GenericProtocold   zPprotocol for generic types.

this since Python.typing _GenericAlias is private

r9   r:   Type[_T]
__origin__r;   Nr<   r;   rD   rE   rG   rG   d   s     .-rD   rG   c                  (    \ rS rSrSS jrSS jrSrg)SupportsKeysAndGetItemx   c                    g Nr;   )selfs    rE   keysSupportsKeysAndGetItem.keysy   s    SrD   c                    g rO   r;   )rP   _SupportsKeysAndGetItem__ks     rE   __getitem__"SupportsKeysAndGetItem.__getitem__{   s    srD   r;   N)returnzIterable[_KT])rT   r-   rW   r3   )r=   r>   r?   r@   rQ   rU   rC   r;   rD   rE   rL   rL   x   s    (2rD   rL   *Fstr_cleanup_fninclude_generic_already_seenc                 ^ ^^^^^ Un[        U5      (       a  UR                  n[        U[        5      (       a  T(       a	  T" UT5      n[	        UTTT S9nT(       au  [        U5      (       ae  [        U5      (       dU  Tc
  [        5       mUT;   a  U$ TR                  U5        [        UU UUUU4S jUR                   5       5      n[        X5      $ U$ )a'  Resolve annotations that may be string based into real objects.

This is particularly important if a module defines "from __future__ import
annotations", as everything inside of __annotations__ is a string. We want
to at least have generic containers like ``Mapped``, ``Union``, ``List``,
etc.

locals_in_classc              3  B   >#    U  H  n[        TUTTTTTS 9v   M     g7f)rY   N)de_stringify_annotation).0elemr\   clsr[   r_   originating_modulerZ   s     rE   	<genexpr>*de_stringify_annotation.<locals>.<genexpr>   s6      
 , $"- /+ ,s   )
is_fwd_ref__forward_arg__
isinstancestreval_expression
is_generic
is_literalsetaddtupler:   _copy_generic_annotation_with)	re   
annotationrf   r_   rZ   r[   r\   original_annotationelementss	   ` `````  rE   rb   rb      s    . %*//
*c""'
4FGJ$*Gc


 	z"":&& EM&
 '&j) 
 
 #++
 
 -ZBBrD   c                   [        U 5      (       a  [        U 5      [        [        [        [
        R                  [
        R                  [
        R                  [
        R                  [
        R                  4;   a  [        R                  " S[        U 5      5      (       d]  [        U 5      R                  [        [!        U 5       Vs/ s H%  n[#        U[$        5      (       a  ['        U5      OUPM'     sn5      5      $ U $ s  snf )z^Correct dict['x', 'y'] into dict[ForwardRef('x'), ForwardRef('y')]
and similar for list, set

z3typing.(?:Dict|List|Set|.*Mapping|.*Sequence|.*Set))rn   r   dictrp   listcollections_abc
MutableSetMutableMappingMutableSequencer   Sequencerematchrepr__class_getitem__rr   r   rk   rl   r	   )type_rd   s     rE   fixup_container_fwd_refsr      s     	5u&&**++##$$	


 A4;
 

 % 22 !) / )34(=(=Jt$4G /
 	
 Ls   ,C>c                d    [        U S5      (       a  U R                  U5      $ U R                  U   $ )N	copy_with)hasattrr   rJ   )rt   rv   s     rE   rs   rs      s5     z;''##H-- $$X..rD   r^   c                   [         R                  U   R                  n UbP  [        UR                  5      nUR                  UR                  U5        UR                  U5        [        XU5      nU$ [        XU5      n U$ ! [         a  n[	        SU SU  35      UeS nAff = f! [         a  n[	        SU < 35      UeS nAff = f)NModule z9 isn't present in sys.modules; can't evaluate expression z"Could not de-stringify annotation )sysmodules__dict__KeyError	NameErrorrx   
setdefaultr=   updateeval	Exception)	
expressionmodule_namer_   r`   base_globalskecls_namespacert   errs	            rE   rm   rm      s    '*{{;'?'H'H !2!23M$$X%6%6A
   .jAJ  j@J 1  k] ###-,0
 	&  0?
	s5   B AB& 3B& 
B#BB#&
C0C  Cr_   c               J   SU ;   a
  [        XUS9$  [        R                  U   R                  n X0   $ ! [         a  n[        SU SU  35      UeS nAff = f! [         a@  n [        R                  U    s S nA$ ! [         a     Of = f[        SU  SU 35      UeS nAff = f)N.r   r   z2 isn't present in sys.modules; can't resolve name zCould not locate name z in module )rm   r   r   r   r   r   builtins)namer   r_   r   r   s        rE   eval_name_onlyr   !  s     d{t'BB'*{{;'?'H'H!!  k] # 6#
 	  		$$T** 		 $TF+k]C
		sI   4 A 
AAA
B"#A;5B";
BBBBB"c                X     [        X5      n[        USU 5      $ ! [         a    U s $ f = f)Nr=   )r   getattrr   )r   r   objs      rE   resolve_name_to_real_class_namer   C  s8    .T/ sJ--  s    ))c                :    U S L=(       a    [        U 5      [        L $ rO   )r   r   r   s    rE   	is_pep593r   L  s    ?E!2i!??rD   c                z    [        U [        R                  5      =(       a    [        U [        [        45      (       + $ rO   )rk   rz   r   rl   bytes)r   s    rE   is_non_string_iterabler   P  s1    c?334 Zc5\> : rD   c                &    [        U 5      [        ;   $ rO   )r   LITERAL_TYPESr   s    rE   ro   ro   V  s    e--rD   c                    [        U S5      $ )N__supertype__r   r   s    rE   
is_newtyper   Z  s    5/**rD   c                @    [        U S5      =(       a    [        U S5      $ )Nr:   rJ   r   r   s    rE   rn   rn   b  s    5*%F'%*FFrD   c                "    [        U [        5      $ rO   )rk   r)   r   s    rE   	is_pep695r   f  s    e]++rD   c                z    U R                   n[        U5      (       a  UR                   n[        U5      (       a  M  U$ rO   )r   r   )r   
super_types     rE   flatten_newtyper   j  s6    $$J
Z
 
 --
 Z
 
 rD   c                j  ^^ [        5       mUU4S jmT" U 5      n[        U[        5      (       a  [        5       n[        U5      nU(       ac  UR	                  5       n[        U[        5      (       a  UR                  U5        O#UR                  U[        [        1;   a  SOU5        U(       a  Mc  U$ U1$ )zExtracts the value from a TypeAliasType, recursively exploring unions
and inner TypeAliasType to flatten them into a single set.

Forward references are not evaluated, so no recursive exploration happens
into them.
c                   > U T;   a  U $ TR                  U 5        [        U 5      (       d  U $ U R                  n[        U5      (       d  U$ UR                   Vs/ s H  nT" U5      PM     sn$ s  snf rO   )rq   r   	__value__is_unionr:   )r   valuet_seenrecursive_values      rE   r   &pep695_values.<locals>.recursive_valuez  se    E> L		%LL,1NN;Nq"N;;;s   A.N)	rp   rk   ry   r   popleftextendrq   r4   NoneFwd)r   restypesstackr   r   r   s        @@rE   pep695_valuesr   q  s     EE< %
 C#tc
A!T""Q		!'':":$B e urD   c                   ^ T(       a  [        U [        5      (       a  g[        U [        5      (       a  gU(       a/  [        U 5      (       a  [	        U4S jU R
                   5       5      $ g)NTc              3  :   >#    U  H  n[        US TS9v   M     g7f)T)check_for_plain_stringN)ri   )rc   argr   s     rE   rg   is_fwd_ref.<locals>.<genexpr>  s)      
 & T2H &s   F)rk   rl   r	   rn   anyr:   )r   check_genericr   s     `rE   ri   ri     sY    
 *UC"8"8	E:	&	&	:e,, 
 ~~	
 
 	
 rD   c                    g rO   r;   r   s    rE   de_optionalize_union_typesr     s    36rD   c                    g rO   r;   r   s    rE   r   r     s    ?BrD   c                    g rO   r;   r   s    rE   r   r          rD   c                T   [        U 5      (       a  [        U S5      $ [        U 5      (       a  [        U 5      (       a  [        R
                  (       a  [        U R                  5      nO[        U /5      n[        5       nU(       a`  UR                  5       nUR                   H7  n[        U5      (       a  UR                  U5        M&  UR                  U5        M9     U(       a  M`  UR                  S5        UR                  [        5        UR                  [        5        [        U6 $ U $ )zGiven a type, filter out ``Union`` types that include ``NoneType``
to not include the ``NoneType``.

Contains extra logic to work on non-flattened unions, unions that contain
``None`` (seen in py38, 37)

FN)ri   #_de_optionalize_fwd_ref_union_typesr   includes_noner   py39rp   r:   r   r   appendrq   discardr4   r   make_union_type)r   typstack_of_unionsu_typrd   s        rE   r   r     s     %25%@@	%]511;;enn%C $UGnO%C!'//1!NND~~'..t4	 + "/ KKHG$$ rD   c                    g rO   r;   r   return_has_nones     rE   r   r     s     rD   c                    g rO   r;   r   s     rE   r   r     r   rD   c                "   U R                   n[        R                  " SU5      nU(       Ga  UR                  S5      R	                  S5      S   nUS:X  a#  U(       a  S$ [        UR                  S5      5      $ US:X  Ga$  S	UR                  S5      ;   a  / n/ nS
nUR                  S5       Hx  nUS	:X  a  US-  nOXUS:X  a  US-  nOLUS
:X  aF  US:X  a@  UR                  SR                  U5      R                  5       5        UR                  5         Mg  UR                  U5        Mz     O&[        R                  " SUR                  S5      5      nU V	s/ s H  oS:w  d  M
  [        U	5      PM     n
n	U(       a  [        U5      [        U
5      :g  $ U
(       a  [        U
6 $ [        $ U(       a  S$ U $ [        R                  " SU5      nSU;   nU(       a  U$ U(       a0  SR                  S U 5       5      nU(       a  [        U5      $ [        $ U $ s  sn	f )zreturn the non-optional type for Optional[], Union[None, ...], x|None,
etc. without de-stringifying forward refs.

unfortunately this seems to require lots of hardcoded heuristics

z^(.+?)\[(.+)\]$r   r   r   T   r   [r   ], z,\s*r5   Fz\s*\|\s*|c              3  4   #    U  H  oS :w  d  M
  Uv   M     g7f)r5   Nr;   )rc   ps     rE   rg   6_de_optionalize_fwd_ref_union_types.<locals>.<genexpr>  s     B{!6kAA{s   		)rj   r   r   groupsplitr	   r   joinstripclearlenr   r*   )r   r   rt   mmg1rv   currentignore_commacharrd   partspipe_tokenshas_noneanno_strs                 rE   r   r     s    &&J	$j	1B	XXa[s#B'*4G
288A;0GG7]bhhqk!&(%' HHQKDs{$)$)%*ts{ (8(>(>(@A NN4( ( 88GRXXa[92:M($fn%Z%(EM8}E
2227.BUB+566((;
3K$H88B{BB'/z(#:U:L! Ns   	HHc                 .    [         R                  " U 5      $ )zMake a Union type.)r   rU   )r   s    rE   r   r   #  s    U##rD   c                   [        U 5      (       a  [        U S5      $ [        U 5      (       a  [        S [	        U 5       5       5      $ [        U 5      (       a  [        [	        U 5      S   5      $ [        U 5      (       a  [        S [        U 5       5       5      $ [        U 5      (       a  [        U R                  5      $ U [        [        S4;   $ )a
  Returns if the type annotation ``type_`` allows ``None``.

This function supports:
* forward refs
* unions
* pep593 - Annotated
* pep695 - TypeAliasType (does not support looking into
fw reference of other pep695)
* NewType
* plain types like ``int``, ``None``, etc
Tc              3  8   #    U  H  n[        U5      v   M     g 7frO   r   rc   r   s     rE   rg    includes_none.<locals>.<genexpr>7  s     =_=##_   r   c              3  8   #    U  H  n[        U5      v   M     g 7frO   r   r   s     rE   rg   r   ;  s     B-A=##-Ar   N)ri   r   r   r   r   r   r   r   r   r   r   r   r4   r   s    rE   r   r   (  s     %25$??=Xe_===Xe_Q/00B]5-ABBB%U0011Wh---rD   c                    [        U SS5      $ )Nr   	UnionType)is_origin_ofr   s    rE   r   r   A  s    w44rD   c                d    [        U 5      nUc  g[        U[        5      =(       a    [        X!5      $ )zWreturn True if the given type has an __origin__ that shares a base
with the given classF)r   rk   type
issubclass)r   	class_objorigins      rE   is_origin_of_clsr	  E  s-     F~fd#E
6(EErD   )modulec                   [        U 5      nUc  g[        U5      U;   =(       a&    USL =(       d    UR                  R                  U5      $ )zXreturn True if the given type has an __origin__ with the given name
and optional module.NF)r   _get_type_namer>   
startswith)r   r
  namesr  s       rE   r  r  R  sJ     F~&!U* $>&++66v>rD   c                    [         R                  (       a  U R                  $ [        U SS 5      nUc  [        U SS 5      nU$ )Nr=   _name)r   py310r=   r   )r   typ_names     rE   r  r  a  s:    ||~~5*d3ugt4HrD   c                  2    \ rS rSrSS jrSS jrS	S jrSrg)
DescriptorProtoil  c                    g rO   r;   rP   instanceowners      rE   __get__DescriptorProto.__get__m  s    CrD   c                    g rO   r;   rP   r  r   s      rE   __set__DescriptorProto.__set__o  s    #rD   c                    g rO   r;   rP   r  s     rE   
__delete__DescriptorProto.__delete__q  s    rD   r;   N)r  objectr  r   rW   r   )r  r   r   r   rW   r5   r  r   rW   r5   )r=   r>   r?   r@   r  r  r!  rC   r;   rD   rE   r  r  l  s    ?=4rD   r  _DESCc                  J    \ rS rSrSr\(       a  SS jrS	S jrS
S jrSr	gSr	g)DescriptorReferenceiw  ar  a descriptor that refers to a descriptor.

used for cases where we need to have an instance variable referring to an
object that is itself a descriptor, which typically confuses typing tools
as they don't know when they should use ``__get__`` or not when referring
to the descriptor assignment as an instance variable. See
sqlalchemy.orm.interfaces.PropComparator.prop

c                    g rO   r;   r  s      rE   r  DescriptorReference.__get__      #rD   c                    g rO   r;   r  s      rE   r  DescriptorReference.__set__      rD   c                    g rO   r;   r   s     rE   r!  DescriptorReference.__delete__      SrD   r;   N)r  r#  r  r   rW   r%  )r  r   r   r%  rW   r5   r$  
r=   r>   r?   r@   rA   r   r  r  r!  rC   r;   rD   rE   r'  r'  w  s     EC8 rD   r'  _DESC_co)r,   r/   c                  J    \ rS rSrSr\(       a  SS jrS	S jrS
S jrSr	gSr	g)RODescriptorReferencei  za descriptor that refers to a descriptor.

same as :class:`.DescriptorReference` but is read-only, so that subclasses
can define a subtype as the generically contained element

c                    g rO   r;   r  s      rE   r  RODescriptorReference.__get__  s    SrD   c                    g rO   r;   r  s      rE   r  RODescriptorReference.__set__  r*  rD   c                    g rO   r;   r   s     rE   r!   RODescriptorReference.__delete__  s    rD   r;   N)r  r#  r  r   rW   r2  )r  r   r   r   rW   r   )r  r   rW   r   r1  r;   rD   rE   r4  r4    s     HE< rD   r4  _FN.c                  J    \ rS rSrSr\(       a  SS jrS	S jrS
S jrSr	gSr	g)CallableReferencei  za descriptor that refers to a callable.

works around mypy's limitation of not allowing callables assigned
as instance variables


c                    g rO   r;   r  s      rE   r  CallableReference.__get__  r-  rD   c                    g rO   r;   r  s      rE   r  CallableReference.__set__  s    crD   c                    g rO   r;   r   s     rE   r!  CallableReference.__delete__  r0  rD   r;   N)r  r#  r  r   rW   r;  )r  r   r   r;  rW   r5   r$  r1  r;   rD   rE   r=  r=    s     CA8 rD   r=  )re   	Type[Any]rt   _AnnotationScanTyperf   rl   r_   zMapping[str, Any]rZ   z#Optional[Callable[[str, str], str]]r[   boolr\   zOptional[Set[Any]]rW   rD  )r   rE  rW   rE  )rt   zGenericProtocol[_T]rv   r9   rW   rI   )
r   rl   r   rl   r_   Optional[Mapping[str, Any]]r`   zOptional[Type[Any]]rW   r   )r   rl   r   rl   r_   rG  rW   r   )r   rl   r   rl   rW   rl   )r   zOptional[Any]rW   rF  )r   r   rW   zTypeGuard[Iterable[Any]])r   r   rW   rF  )r   zOptional[_AnnotationScanType]rW   zTypeGuard[NewType])r   rE  rW   zTypeGuard[GenericProtocol[Any]])r   rE  rW   zTypeGuard[TypeAliasType])r   r   rW   rD  )r   rE  rW   zSet[Any])FF)r   rE  r   rF  r   rF  rW   zTypeGuard[ForwardRef])r   rl   rW   rl   )r   rD  rW   rD  )r   r	   r   zLiteral[True]rW   rF  )r   r	   r   zLiteral[False]rW   rE  )r   r	   r   rF  rW   z Union[_AnnotationScanType, bool])r   rE  rW   rD  )r   r   rW   zTypeGuard[ArgsTypeProtocol])r   r   r  z'Union[Tuple[Type[Any], ...], Type[Any]]rW   rF  )r   r   r  rl   r
  zOptional[str]rW   rF  )r   rD  rW   rl   )d
__future__r   r   collectionsr   collections.abcabcrz   r   r   typingr   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   typing_extensionsr   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r-   r.   r0   r2   r3   py38	frozensetr   r  r   r4   r  r   rl   rE  r7   rG   rL   _LiteralStarrb   r   rs   rm   r   r   r   r   ro   r   rn   r   r   r   ri   r   r   r   r   r   r	  r  r  r  r%  r'  r2  r4  r;  r=  r;   rD   rE   <module>rQ     s   #   ) 	 
                     8< 106:4<86@888.@0Ten	T	*\6
en	T	*	;; v~~w78Mwi(M 
<< +DzH
V
 IsJ8NN 
.x .hrl (3Xc6k2 3 s| ;?!(,D	D#D D 	D 8D D &D DN&&&R/#//N// ,0$(!!! )	!
 "! 	!P ,0	
 )	
 	D.@.+G,"N  #( ! 	( 
 6 
 6 
 B 
 B 
 

&&&R 
(5	 

 
(6 

33(,3%3l$
.25
F
FB
F	
F 6:%2	5h 5 	/9'%. 9( :_E=GH- =" e8HS#X$6789 9rD   