+
    yjn                        ^ RI Ht ^ RIt^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RI	H
t
 ^ RI	Ht ^ RI	Ht ^ RIt ! R R4      tR	 R
 ltRR R lltR R ltR R ltRR R lltR# )    )annotationsN)bisect_right)Iterable)Iterator)overloadc                      ] tR t^tRtRR R lltR R ltRt]R R l4       t	]R	 R
 l4       t	R R lt	R R lt
R R ltR R ltRR R lltR R ltR R ltR R ltR R ltRtR# ) SourceznAn immutable object holding a source code fragment.

When using Source(...), the source lines are deindented.
Nc                    V ^8  d   QhRRRR/# )   objobjectreturnNone )formats   "H/var/www/html/2rare/lib/python3.14/site-packages/_pytest/_code/source.py__annotate__Source.__annotate__   s     3 3F 3d 3    c                	"   V'       g
   . V n         R# \        V\        4      '       d   VP                   V n         R# \        V\        \        34      '       d   \        R  V 4       4      V n         R# \        V\        4      '       d"   \        VP                  R4      4      V n         R#  \        V4      p\        P                  ! V4      p\        VP                  R4      4      V n         R#   \         d    \        P                  ! T4      p LDi ; i)c              3  B   "   T F  qP                  R 4      x  K  	  R# 5i
N)rstrip.0xs   & r   	<genexpr>"Source.__init__.<locals>.<genexpr>   s     !>#Q((4..#s   r   N)lines
isinstancer	   tuplelistdeindentstrsplit
getrawcodeinspect	getsource	TypeError)selfr   rawcodesrcs   &&  r   __init__Source.__init__   s    $&DJV$$DJeT]++!!>#!>>DJS!!!#))D/2DJ-$S/''0 "#))D/2DJ  -'',-s   (!C* *!DDc                    V ^8  d   QhRRRR/# )r   otherr   r   boolr   )r   s   "r   r   r   '   s     ) )F )t )r   c                	l    \        V\        4      '       g   \        # V P                  VP                  8H  # N)r!   r	   NotImplementedr    )r+   r1   s   &&r   __eq__Source.__eq__'   s(    %((!!zzU[[((r   c                    V ^8  d   QhRRRR/# )r   keyintr   r%   r   )r   s   "r   r   r   0   s    //s/s/r   c                	    R # r4   r   r+   r9   s   &&r   __getitem__Source.__getitem__/   s    ,/r   c                    V ^8  d   QhRRRR/# )r   r9   slicer   r	   r   )r   s   "r   r   r   3   s    44u44r   c                	    R # r4   r   r<   s   &&r   r=   r>   2   s    14r   c                    V ^8  d   QhRRRR/# )r   r9   zint | slicer   zstr | Sourcer   )r   s   "r   r   r   5   s      { | r   c                	    \        V\        4      '       d   V P                  V,          # VP                  R9  d   \	        R4      h\        4       pV P                  VP                  VP                   Vn        V# )Nz!cannot slice a Source with a step)N   )r!   r:   r    step
IndexErrorr	   startstop)r+   r9   	newsources   && r   r=   r>   5   s\    c3::c?"xxy( !DEEI"jjSXX>IOr   c                   V ^8  d   QhRR/# )r   r   zIterator[str]r   )r   s   "r   r   r   ?   s        -  r   c                	,    \        V P                  4      # r4   )iterr    r+   s   &r   __iter__Source.__iter__?   s    DJJr   c                   V ^8  d   QhRR/# )r   r   r:   r   )r   s   "r   r   r   B   s       r   c                	,    \        V P                  4      # r4   )lenr    rM   s   &r   __len__Source.__len__B   s    4::r   c                   V ^8  d   QhRR/# r   r   r	   r   )r   s   "r   r   r   E   s     	 	v 	r   c                V   ^ \        V 4      r!W8  d3   V P                  V,          P                  4       '       g   V^,          pK8  W!8  d:   V P                  V^,
          ,          P                  4       '       g   V^,          pK?  \        4       pV P                  W VP                  R&   V# )zGReturn new Source object with trailing and leading blank lines removed.NNN)rR   r    stripr	   )r+   rG   endsources   &   r   rY   Source.stripE   s}    D	sk$**U"3"9"9";";QJEk$**S1W"5";";"="=1HC**U/Qr   c                    V ^8  d   QhRRRR/# )r   indentr%   r   r	   r   )r   s   "r   r   r   P   s      S v r   c                r    \        4       pV P                   Uu. uF  q1V,           NK  	  upVn        V# u upi )zVReturn a copy of the source object with all lines indented by the
given indent-string.)r	   r    )r+   r^   rI   lines   &&  r   r^   Source.indentP   s5     H	7;zzBztTMMzB	 Cs   4c                    V ^8  d   QhRRRR/# )r   linenor:   r   r	   r   )r   s   "r   r   r   W   s      3 6 r   c                0    V P                  V4      w  r#WV # )zMReturn Source statement which contains the given linenumber
(counted from 0).)getstatementrange)r+   rc   rG   rZ   s   &&  r   getstatementSource.getstatementW   s      ++F3
#r   c                    V ^8  d   QhRRRR/# )r   rc   r:   r   ztuple[int, int]r   )r   s   "r   r   r   ]   s        r   c                n    ^ Tu;8:  d   \        V 4      8  g   M \        R4      h\        W4      w  r#pW43# )zeReturn (start, end) tuple which spans the minimal statement region
which containing the given lineno.zlineno out of range)rR   rF   getstatementrange_ast)r+   rc   astrG   rZ   s   &&   r   re   Source.getstatementrange]   s7     V'c$i'233/=Czr   c                   V ^8  d   QhRR/# rV   r   )r   s   "r   r   r   e   s      & r   c                ^    \        4       p\        V P                  4      VP                  R&   V# )z&Return a new Source object deindented.rX   )r	   r$   r    )r+   rI   s   & r   r$   Source.deindente   s&    H	%djj1	r   c                   V ^8  d   QhRR/# )r   r   r%   r   )r   s   "r   r   r   k   s     % % %r   c                	8    R P                  V P                  4      # r   )joinr    rM   s   &r   __str__Source.__str__k   s    yy$$r   r    r4   )z    )__name__
__module____qualname____firstlineno____doc__r.   r6   __hash__r   r=   rN   rS   rY   r^   rf   re   r$   rt   __static_attributes__r   r   r   r	   r	      sf    
3") H/ /4 4 	% %r   r	   c                   V ^8  d   QhRR/# )r   r   ztuple[Source | None, int]r   )r   s   "r   r   r   t   s      0 r   c                     \         P                  ! V 4      w  r\        4       pT Uu. uF  qDP	                  4       NK  	  upTn        Y23#   \         d    Ru # i ; iu upi )N)N)r(   
findsource	Exceptionr	   r   r    )r   sourcelinesrc   r[   r`   s   &    r   r   r   t   s_    %005 XF.9:kdKKMk:FL>	   ;s   A AAAc               $    V ^8  d   QhRRRRRR/# )r   r   r   trycallr2   r   ztypes.CodeTyper   )r   s   "r   r   r   ~   s!     
> 
>F 
>T 
>^ 
>r   c                     V P                   #   \         d     Mi ; iT'       d9   \        T RR4      pT'       d$   \        T \        4      '       g   \        TRR7      # \        RT : 24      h)z&Return code object for given function.__call__NF)r   zcould not get code object for )__code__AttributeErrorgetattrr!   typer'   r*   )r   r   calls   && r   r'   r'   ~   sc    || sJ-
3--dE22
4SG<
==s    c                    V ^8  d   QhRRRR/# )r   r    zIterable[str]r   z	list[str]r   )r   s   "r   r   r      s     : :M :i :r   c                h    \         P                  ! R P                  V 4      4      P                  4       # rr   )textwrapdedentrs   
splitlinesrv   s   &r   r$   r$      s#    ??499U+,7799r   c               $    V ^8  d   QhRRRRRR/# )r   rc   r:   nodezast.ASTr   ztuple[int, int | None]r   )r   s   "r   r   r      s"      C w ;Q r   c                   . p\         P                  ! V4       EF  p\        V\         P                  \         P                  34      '       g   K6  \        V\         P
                  \         P                  \         P                  34      '       d6   VP                   F%  pVP                  VP                  ^,
          4       K'  	  VP                  VP                  ^,
          4       R FI  p\        W5R4      pV'       g   K  VP                  V^ ,          P                  ^,
          ^,
          4       KK  	  EK  	  VP                  4        \        W 4      pW'^,
          ,          pV\        V4      8  d   Rp	W3# W',          p	W3# )rD   N)	finalbodyorelse)rk   walkr!   stmtExceptHandlerClassDefFunctionDefAsyncFunctionDefdecorator_listappendrc   r   sortr   rR   )
rc   r   valuesr   dnamevalinsert_indexrG   rZ   s
   &&        r   get_statement_startend2r      s    FXXd^a#((C$5$5677!cllCOOS=Q=QRSS))AMM!((Q,/ *MM!((Q,'/-4Qd-C3MM#a&--!"3a"78	 0  KKM/L!#$Es6{" : ":r   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r   rc   r:   r[   r	   	assertionr2   astnodezast.AST | Noner   ztuple[ast.AST, int, int]r   )r   s   "r   r   r      s:     . ... . 	.
 .r   c                  a
 Vf`   \        V4      p\        P                  ! 4       ;_uu_ 4        \        P                  ! R4       \        P
                  ! VRR4      pR R R 4       \        W4      w  rVVf   \        VP                  4      pWe^,           8  d   \        P                  ! 4       p\        VP                  V,          4      ;'       d)    VP                  V,          ^ ,          P                  4       Vn        R VP                  WV  4       o
 \        P                  ! V
3R l4       F  pVP                   ! V!   K  	  V'       dT   VP                  V^,
          ,          P+                  4       p	V	P-                  R4      '       g	   V	'       g   V^,          pKZ   W5V3#   + '       g   i     ELP; i  \        P"                  \$        3 d    TP&                  T,           p L\(         d     Li ; i)Nignorer[   execc              3  2   "   T F  qR ,           x  K  	  R# 5ir   r   r   s   & r   r   (getstatementrange_ast.<locals>.<genexpr>   s     :"9Q4xx"9s   c                    < \        S 4      # r4   )next)its   r   <lambda>'getstatementrange_ast.<locals>.<lambda>   s	    Rr   #)r%   warningscatch_warningssimplefilterrk   parser   rR   r    r(   BlockFinderr2   isspacestartedtokenizegenerate_tokens
tokeneater
EndOfBlockIndentationErrorlastr   lstrip
startswith)rc   r[   r   r   contentrG   rZ   block_findertokr`   r   s   &&&&      @r   rj   rj      s    f+ $$&&!!(+ii6:G ' )9JE
 {&,,
QY **, e$%JJ&,,u*=a*@*H*H*J 	 ;&,,u"9:	//0@A''- B ||C!G$++-??3t1HC3I '&&0 ""$45 	,##e+C 		s)   /F$1F8 $F5	8.G5(G51G54G5)T)FN)
__future__r   rk   bisectr   r(   r   r   typestypingr   r   r   r   r	   r   r'   r$   r   rj   r   r   r   <module>r      sQ    " 
         \% \%H
>:4. .r   