
    ?gz                        % S SK Jr  S SKrS SKJr  S SKJr  S SKJ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SSSS.rS\S'   SS jr " S S5      rg)    )annotationsN)Path)Any)Mapping   )LEGACY_PATH)legacy_path)HOOK_LEGACY_PATH_ARG)collection_pathpath)	file_pathr   )module_pathr   )
start_pathstartdir)pytest_ignore_collectpytest_collect_filepytest_pycollect_makemodulepytest_report_headerpytest_report_collectionfinishzMapping[str, tuple[str, str]]imply_paths_hooksc                J    [        U5      U :w  a  [        SU< SU < S35      eg )NzPath(z) != z8
if both path and fspath are given they need to be equal)r   
ValueError)r   fspaths     7/usr/lib/python3/dist-packages/_pytest/config/compat.py_check_pathr      s9    F|tF:U4( +F F
 	
     c                  6    \ rS rSrSrSS jrS	S jrS
S jrSrg)PathAwareHookProxy"   z
this helper wraps around hook callers
until pluggy supports fixingcalls, this one will do

it currently doesn't return full hook caller proxies for fixed hooks,
this may have to be changed later depending on bugs
c                    Xl         g N_hook_relay)self
hook_relays     r   __init__PathAwareHookProxy.__init__+   s    %r   c                ,    [        U R                  5      $ r!   )dirr#   )r$   s    r   __dir__PathAwareHookProxy.__dir__.   s    4##$$r   c                8  ^^^ [        U R                  U5      mU[        ;  a  TU R                  U'   T$ [        U   u  mm[        R
                  " T5      SUUU4S jj5       nTR                  Ul        TR                  Ul        Xl        X R                  U'   U$ )Nc                   > U R                  TS 5      nU R                  TS 5      nUb(  [        R                  " [        R                  " TTS9SS9  Ub  Ub  [        X5        O[        U5      nOUc   e[        U5      nXT'   X T'   T" S0 U D6$ )N)pylib_path_argpathlib_path_argr   )
stacklevel )popwarningswarnr
   formatr   r	   r   )kw
path_valuefspath_value
fspath_varhookpath_vars      r   
fixed_hook2PathAwareHookProxy.__getattr__.<locals>.fixed_hook9   s    *,&&4*@
3566*d3K+MM,33+5 $%	 )#/#J='2:'>'333!%l!3J)8!-:zbz!r   )r6   r   returnr   )	getattrr#   r   __dict__	functoolswrapsnamespec__name__)r$   keyr<   r9   r:   r;   s      @@@r   __getattr__PathAwareHookProxy.__getattr__1   s    ")$*:*:C"@''!%DMM#K#4S#9 Hj__T"" " #". #iiJO"iiJO"%!+MM#r   r"   N)r%   zpluggy.HookRelayr>   None)r>   z	list[str])rF   strr>   zpluggy.HookCaller)	rE   
__module____qualname____firstlineno____doc__r&   r*   rG   __static_attributes__r1   r   r   r   r   "   s    &%$r   r   )r   r   r   r   r>   rI   )
__future__r   rA   pathlibr   typingr   r   r3   pluggycompatr   r	   
deprecatedr
   r   __annotations__r   r   r1   r   r   <module>rW      sS    "           -
 90#:6&@4 0 
3 3r   