+
    yj~                        ^ RI Ht ^ RIt^ RIHt ^ RIt^ RIHt ^ RIHt ^ RI	t	^RI
Ht ^ RIHt ^ RIHt ^ R	IHt ^ R
IHt R R ltR R ltR R ltR R ltR R ltRtR R ltR R ltR# )    )annotationsN)Path)Iterable)Sequence)
UsageError)failabsolutepath)
commonpathsafe_existsc                    V ^8  d   QhRRRR/# )   pathr   returnziniconfig.IniConfig )formats   "L/var/www/html/2rare/lib/python3.14/site-packages/_pytest/config/findpaths.py__annotate__r      s     	, 	,D 	,%8 	,    c                     \         P                  ! \        V 4      4      #   \         P                   d   p\	        \        T4      4      ThRp?ii ; i)zParse the given generic '.ini' file using legacy IniConfig parser, returning
the parsed object.

Raise UsageError if the file cannot be parsed.
N)	iniconfig	IniConfigstr
ParseErrorr   )r   excs   & r   _parse_ini_configr      sC    ,""3t9-- ,S"+,s   ! AAAc                    V ^8  d   QhRRRR/# )r   filepathr   r   z!dict[str, str | list[str]] | Noner   )r   s   "r   r   r      s     4 44&4r   c                   V P                   R8X  dI   \        V 4      pRV9   d!   \        VR,          P                  4       4      # V P                  R8X  d   / #  R# V P                   R8X  dq   \        V 4      pRVP
                  9   d!   \        VR,          P                  4       4      # RVP
                  9   d"   \        \        P                  RR7      RR	7       R# V P                   R
8X  d   \        P                  R8  d   ^ RIpM^ RIpV P                  RR7      p VP                  V4      pTP#                  R/ 4      P#                  R/ 4      P#                  RR4      pTe1   R R lpTP                  4        UU	u/ uF  w  rY! T	4      bK  	  up	p# R#   TP                   d   p\!        T  RT 24      ThRp?ii ; iu up	pi )zLoad pytest configuration from the given file path, if supported.

Return None if the file does not contain valid pytest configuration.
z.inipytest
pytest.iniz.cfgztool:pytest	setup.cfg)filenameF)pytracez.tomlNzutf-8)encodingz: toolini_optionsc                    V ^8  d   QhRRRR/# )r   vobjectr   zstr | list[str]r   )r   s   "r   r   0load_config_dict_from_file.<locals>.__annotate__M   s     < <v </ <r   c                H    \        V \        4      '       d   V # \        V 4      # N)
isinstancelistr   )r*   s   &r   make_scalar/load_config_dict_from_file.<locals>.make_scalarM   s    &q$//q;SV;r   )      )suffixr   dictitemsnamesectionsr   CFG_PYTEST_SECTIONr   sysversion_infotomllibtomli	read_textloadsTOMLDecodeErrorr   get)
r   r   r=   	toml_textconfigr   resultr1   kr*   s
   &         r   load_config_dict_from_filerG      s    & %h/	y 	(+11344 }},	 -J C 
F	"%h/	I...	-066899+++ #**K*@%P2 - 
G	#w&#&&&8		<]]9-F FB'++Hb9==mTR< 39,,.A.$!A{1~%.AA && 	<zC512;	< Bs   F =G F='F88F=c               $    V ^8  d   QhRRRRRR/# )r   invocation_dirr   argsIterable[Path]r   z;tuple[Path | None, Path | None, dict[str, str | list[str]]]r   )r   s   "r   r   r   U   s'      
 Ar   c                   . ROpV Uu. uF'  p\        V4      P                  R4      '       d   K%  VNK)  	  ppV'       g   V .pRpV F}  p\        V4      pV.VP                  O F\  pV FS  pWx,          p	V	P	                  4       '       g   K#  V	P
                  R8X  d   Vf   T	p\        V	4      p
V
f   KK  WyV
3u u u # 	  K^  	  K  	  Ve   VP                  V/ 3# RR/ 3# u upi )ztSearch in the list of arguments for a valid ini-file for pytest,
and return a tuple of (rootdir, inifile, cfg-dict).pyproject.toml-N)r"   z.pytest.inirM   ztox.inir#   )r   
startswithr
   parentsis_filer8   rG   parent)rI   rJ   config_namesxfound_pyproject_tomlargargpathbaseconfig_namep
ini_configs   &&         r   locate_configr\   U   s    L :t!3q6#4#4S#9AAtD:(,s#/w/D+&99;;vv!116J6R/0,!;A!>J!-#
22  , 0  '#**,@"DDr># ;s
   "C C c               $    V ^8  d   QhRRRRRR/# )r   rI   r   pathsrK   r   r   )r   s   "r   r   r   v   s&       
r   c                .   R pV Fb  pVP                  4       '       g   K  Vf   TpK#  W#P                  9   g   W28X  d   K;  W2P                  9   d   TpKO  \        W24      pVf   K`  TpKd  	  Vf   T pV# VP                  4       '       d   VP                  pV# r.   )existsrP   r   rQ   rR   )rI   r^   common_ancestorr   shareds   &&   r   get_common_ancestorrc   v   s     $(O{{}}""O,,.$2I000"&#D:%&,O  (  
	 	 	"	")00r   c                    V ^8  d   QhRRRR/# )r   rJ   zIterable[str]r   z
list[Path]r   )r   s   "r   r   r      s     U U] Uz Ur   c                   aa R  R loR R loR R lpVV3R lV  4       pV Uu. uF  p\        V4      '       g   K  V! V4      NK   	  up# u upi )c                    V ^8  d   QhRRRR/# )r   rT   r   r   boolr   )r   s   "r   r   (get_dirs_from_args.<locals>.__annotate__   s     ! !S !T !r   c                $    V P                  R 4      # )rN   )rO   rT   s   &r   	is_option%get_dirs_from_args.<locals>.is_option   s    ||C  r   c                    V ^8  d   QhRRRR/# )r   rT   r   r   r   )r   s   "r   r   rh      s        c  c  r   c                2    V P                  R 4      ^ ,          # )z::)splitrj   s   &r   get_file_part_from_node_id6get_dirs_from_args.<locals>.get_file_part_from_node_id   s    wwt}Qr   c                    V ^8  d   QhRRRR/# )r   r   r   r   r   )r   s   "r   r   rh      s        r   c                J    V P                  4       '       d   V # V P                  # r.   )is_dirrR   )r   s   &r   get_dir_from_path-get_dirs_from_args.<locals>.get_dir_from_path   s    ;;==K{{r   c              3  f   <"   T F&  pS! V4      '       d   K  \        S! V4      4      x  K(  	  R # 5ir.   r	   ).0rV   rp   rk   s   & r   	<genexpr>%get_dirs_from_args.<locals>.<genexpr>   s/      C~ 	6/455s   11r   )rJ   ru   possible_pathsr   rp   rk   s   &   @@r   get_dirs_from_argsr|      sK    ! N 1?T+dBS#d#TTTs
   AAz][pytest] section in {filename} files is no longer supported, change to [tool:pytest] instead.c          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
r   inifilez
str | NonerJ   zSequence[str]rootdir_cmd_argrI   r   r   z4tuple[Path, Path | None, dict[str, str | list[str]]]r   )r   s   "r   r   r      s<     3* 3*3* 3*  	3*
 3* :3*r   c                   Rp\        V4      pV '       d4   \        V 4      pTp\        V4      ;'       g    / pVf   VP                  pM\	        W54      p	\        W9.4      w  rGpVfu   Vfq   V	.V	P                  O F$  p
V
R,          P                  4       '       g   K"  T
p M;	  WY.8w  d   \        W54      w  rGpVf!   \	        W3V	.4      p\        V4      '       d   T	pV'       dN   \        \        P                  P                  V4      4      pVP                  4       '       g   \        RV R24      hVf   Q hYGT;'       g    / 3# )al  Determine the rootdir, inifile and ini configuration values from the
command line arguments.

:param inifile:
    The `--inifile` command line argument, if given.
:param args:
    The free command line arguments.
:param rootdir_cmd_arg:
    The `--rootdir` command line argument, if given.
:param invocation_dir:
    The working directory when pytest was invoked.
Nzsetup.pyzDirectory 'z+' not found. Check your '--rootdir' option.)r|   r
   rG   rR   rc   r\   rP   rQ   
is_fs_rootosr   
expandvarsrt   r   )r~   rJ   r   rI   rootdirdirsinipath_inipathinicfgancestorpossible_rootdirs   $$$$       r   determine_setupr      sF   & Gd#D('+H5;;"ooG&~<#0#L &?6%-$A0@0@$A $z1::<<.G %B
 :%/<^/R,Gf?1&(BG "'**"*rww11/BC~~gY&QR  V\\r))r   c                    V ^8  d   QhRRRR/# )r   rZ   r   r   rg   r   )r   s   "r   r   r      s     3 3$ 34 3r   c                    \         P                  P                  \        V 4      4      ^,          \         P                  8H  # )z{
Return True if the given path is pointing to the root of the
file system ("/" on Unix and "C:\\" on Windows for example).
)r   r   
splitdriver   sep)rZ   s   &r   r   r      s+    
 77c!f%a(BFF22r   )
__future__r   r   pathlibr   r;   typingr   r   r   
exceptionsr   _pytest.outcomesr   _pytest.pathlibr
   r   r   r   rG   r\   rc   r|   r:   r   r   r   r   r   <module>r      sY    " 	  
    " ! ( & '	,4nB4U, u 3*l3r   