+
    -jN2                    r  a  0 t $ ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ 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7       ! R R4      4       t]]]3,          tR]R&   R R l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# )&    )annotations)Iterable)Sequence)	dataclass)KW_ONLYN)Path)Literal)	TypeAlias)
UsageError)failabsolutepath)
commonpathsafe_existsT)frozenc                  D    ] tR t^t$ RtR]R&   R]R&   R]R&   R]R	&   R
tR# )ConfigValuea  Represents a configuration value with its origin and parsing mode.

This allows tracking whether a value came from a configuration file
or from a CLI override (--override-ini), which is important for
determining precedence when dealing with ini option aliases.

The mode tracks the parsing mode/data model used for the value:
- "ini": from INI files or [tool.pytest.ini_options], where the only
  supported value types are `str` or `list[str]`.
- "toml": from TOML files (not in INI mode), where native TOML types
   are preserved.
objectvaluer   _zLiteral['file', 'override']originzLiteral['ini', 'toml']mode N)__name__
__module____qualname____firstlineno____doc____annotations____static_attributes__r       m/Users/mitch_tango/dev/rabbit-r1-livekit/agent/.venv/lib/python3.14/site-packages/_pytest/config/findpaths.pyr   r      s     MJ''
  r"   r   r
   
ConfigDictc                    V ^8  d   QhRRRR/# )   pathr   returnziniconfig.IniConfigr   )formats   "r#   __annotate__r*   .   s     	, 	,D 	,%8 	,r"   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_configr1   .   sC    ,""3t9-- ,S"+,s   ! AAAc                    V ^8  d   QhRRRR/# )r&   filepathr   r(   zConfigDict | Noner   )r)   s   "r#   r*   r*   :   s      a aaar"   c                
   V P                   R8X  da   \        V 4      pRV9   d9   VR,          P                  4        UUu/ uF  w  r#V\        VRRR7      bK  	  upp# V P                  R9   d   / #  R# V P                   R8X  d   \        V 4      pRVP
                  9   d9   VR,          P                  4        UUu/ uF  w  r#V\        VRRR7      bK  	  upp# RVP
                  9   d"   \        \        P                  RR	7      R
R7       R# V P                   R8X  E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9   dN   TP#                  R/ 4      pT'       d2   TP                  4        UUu/ uF  w  r#T\        TRRR7      bK  	  upp# / # TP#                  R/ 4      P#                  R/ 4      p	T	P                  4        UUu/ uF  w  r#TR8w  g   K  Y#bK  	  p
ppT	P#                  RR4      pT
'       d   T'       d   \!        T  R24      hT
'       d2   T
P                  4        UUu/ uF  w  r#T\        TRRR7      bK  	  upp# Te>   R R lpTP                  4        UUu/ uF  w  r#T\        T! T4      RRR7      bK  	  upp# R# u uppi u uppi   TP                   d   p\!        T  RT 24      ThRp?ii ; iu uppi u uppi u upp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fileinir   r   z.cfgztool:pytest	setup.cfg)filenameF)pytracez.tomlNzutf-8)encodingz: tomltoolini_optionsz: Cannot use both [tool.pytest] (native TOML types) and [tool.pytest.ini_options] (string-based INI format) simultaneously. Please use [tool.pytest] with native TOML types (recommended) or [tool.pytest.ini_options] for backwards compatibility.c                    V ^8  d   QhRRRR/# )r&   vr   r(   zstr | list[str]r   )r)   s   "r#   r*   0load_config_dict_from_file.<locals>.__annotate__   s     @ @6 @o @r"   c                H    \        V \        4      '       d   V # \        V 4      # N)
isinstancelistr.   )rA   s   &r#   make_scalar/load_config_dict_from_file.<locals>.make_scalar   s     *1d 3 31?Q?r"   >   
pytest.ini.pytest.ini)      )pytest.toml.pytest.toml)suffixr1   itemsr   namesectionsr   CFG_PYTEST_SECTIONr)   sysversion_infotomllibtomli	read_textloadsTOMLDecodeErrorr   get)r3   r,   krA   rV   	toml_textconfigr0   pytest_configtool_pytesttoml_config
ini_configrG   s   &            r#   load_config_dict_from_filerc   :   s'    & %h/	y  &h/5577DA ;qe<<7  }} ==	 >^ W 
F	"%h/	I... &m4::<<DA ;qe<<<  +++ #**K*@%P@ w 
G	#w&#&&&8		<]]9-F
 ==;;"JJx4M !. 3 3 5 5 {1V&AA 5 
 I !**VR044XrBK -8,=,=,?V,?DA1CU414,?KV$=Jz j !P P   !, 1 1 3 3 {1V&AA 3 
 '@
 !+ 0 0 2 2 {;q>&uMM 2 
 k* && 	<zC512;	< WsA   J79J=K K-2K3K3K9 K?K*K%%K*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, ConfigDict, Sequence[str]]r   )r)   s   "r#   r*   r*      s'     , ,,
, @,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. pV F  p\        V4      pV.VP                  O F  pV F  p	W,          p
V
P	                  4       '       g   K#  V
P
                  R8X  d   Vf   T
p\        V
4      pVf   KK  VP                  V	4      pW,^,           R  FC  pW,          pVP	                  4       '       g   K#  \        V4      f   K2  VP                  V4       KE  	  WW3u u u # 	  K  	  K  	  Ve   VP                  V/ . 3# RR/ . 3# u upi )zSearch in the list of arguments for a valid ini-file for pytest,
and return a tuple of (rootdir, inifile, cfg-dict, ignored-config-files), where
ignored-config-files is a list of config basenames found that contain
pytest configuration but were ignored.pyproject.toml-N)rM   rN   rI   rJ   ri   ztox.inir9   )
r.   
startswithr   parentsis_filerQ   rc   indexappendparent)re   rf   config_namesxfound_pyproject_tomlignored_config_filesargargpathbaseconfig_nameprb   rn   	remainderp2s   &&             r#   locate_configr|      sH   L :t!3q6#4#4S#9AAtD:(,&(s#/w/D+&99;;vv!116J6R/0,!;A!>J!- , 2 2; ?)5aik)BI!%!1B "

$>r$B$N 4 ; ;I F *C  $
HH  , 0 & '#**,@"bHHr27 ;s
   "EEc               $    V ^8  d   QhRRRRRR/# )r&   re   r   pathsrg   r(   r   )r)   s   "r#   r*   r*      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# rD   )existsrl   r   rm   rp   )re   r~   common_ancestorr'   shareds   &&   r#   get_common_ancestorr      s     $(O{{}}""O,,.$2I000"&#D:%&,O  (  
	 	 	"	")00r"   c                    V ^8  d   QhRRRR/# )r&   rf   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&   rr   r.   r(   boolr   )r)   s   "r#   r*   (get_dirs_from_args.<locals>.__annotate__   s     ! !S !T !r"   c                $    V P                  R 4      # )rj   )rk   rr   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&   rr   r.   r(   r   )r)   s   "r#   r*   r      s        c  c  r"   c                2    V P                  R 4      ^ ,          # )z::)splitr   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*   r      s        r"   c                J    V P                  4       '       d   V # V P                  # rD   )is_dirrp   )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rD   r   ).0ru   r   r   s   & r#   	<genexpr>%get_dirs_from_args.<locals>.<genexpr>   s/      C~ 	6/455s   11r   )rf   r   possible_pathsr'   r   r   s   &   @@r#   get_dirs_from_argsr      sK    ! N 1?T+dBS#d#TTTs
   AAc                    V ^8  d   QhRRRR/# )r&   override_iniSequence[str] | Noner(   r$   r   )r)   s   "r#   r*   r*      s      %9 j r"   c                    / pT ;'       g    R F(  p VP                  R^4      w  r4\        VRRR7      W&   K*  	  V#   \         d   p\        RT: R24      ThRp?ii ; i)	zParse the -o/--override-ini command line arguments and return the overrides.

:raises UsageError:
    If one of the values is malformed.
=overrider7   r8   z3-o/--override-ini expects option=value style (got: z).Nr   )r   r   
ValueErrorr   )r   	overridesrb   keyuser_ini_valuees   &     r#   parse_override_inir      s     I #((b(
	X","2"23":C )
QVWIN )   	Ej^SUV	s   =AAAz][pytest] section in {filename} files is no longer supported, change to [tool:pytest] instead.c               0    V ^8  d   QhRRRRRRRRRR	R
R/# )r&   inifilez
str | Noner   r   rf   zSequence[str]rootdir_cmd_argre   r   r(   z3tuple[Path, Path | None, ConfigDict, Sequence[str]]r   )r)   s   "r#   r*   r*     sN     @: @:@: '@: 	@:
  @: @: 9@:r"   c                   Rp\        V4      p. pV '       d4   \        V 4      pTp	\        V4      ;'       g    / p
Vf   VP                  pM\	        WF4      p\        WK.4      w  rYrVfu   Vfq   V.VP                  O F$  pVR,          P                  4       '       g   K"  Tp M;	  Wk.8w  d   \        WF4      w  rYrVf!   \	        WDV.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4      pV
P                  V4       Vf   Q hWYW3# )a  Determine the rootdir, inifile and ini configuration values from the
command line arguments.

:param inifile:
    The `--inifile` command line argument, if given.
:param override_ini:
    The -o/--override-ini command line arguments, 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.

:raises UsageError:
Nzsetup.pyzDirectory 'z+' not found. Check your '--rootdir' option.)r   r   rc   rp   r   r|   rl   rm   
is_fs_rootosr'   
expandvarsr   r   r   update)r   r   rf   r   re   rootdirdirsrt   inipath_inipathinicfgancestorpossible_rootdirr   ini_overridess   $$$$$          r#   determine_setupr     sa   0 Gd#D*,('+H5;;"ooG&~<9FJ:
6& ?6%-$A0@0@$A $z1::<<.G %B
 :%2?2U/Gf?1&(BG "'**"*rww11/BC~~gY&QR  '|4M
MM- V99r"   c                    V ^8  d   QhRRRR/# )r&   ry   r   r(   r   r   )r)   s   "r#   r*   r*   Y  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)ry   s   &r#   r   r   Y  s+    
 77c!f%a(BFF22r"   )'__conditional_annotations__
__future__r   collections.abcr   r   dataclassesr   r   r   pathlibr   rT   typingr	   r
   r,   
exceptionsr   _pytest.outcomesr   _pytest.pathlibr   r   r   r   dictr.   r$   r    r1   rc   r|   r   r   r   rS   r   r   )r   s   @r#   <module>r      s    " " $ $ !  	  
    " ! ( & ' $! ! !( S+-.
I .	,aH,^4U,, u @:F3r"   