o
    Ú­jY	  ã                   @   sz   d dl Z d dlZd dlmZ d dlmZ ddlmZ ddlmZ ddl	m
Z
 d dlmZ d	d
ddddœZG dd„ dƒZdS )é    N)ÚPath)ÚOptionalé   )ÚLEGACY_PATH)Úlegacy_path)ÚHOOK_LEGACY_PATH_ARG)Ú_check_path)Úcollection_pathÚpath)Ú	file_pathr
   )Úmodule_pathr
   )Ú
start_pathÚstartdir)Úpytest_ignore_collectÚpytest_collect_fileÚpytest_pycollect_makemoduleÚpytest_report_headerÚpytest_report_collectionfinishc                   @   s.   e Zd ZdZdd„ Zdd„ Zejfdd„ZdS )	ÚPathAwareHookProxyzê
    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                 C   s
   || _ d S ©N)Ú _PathAwareHookProxy__hook_caller)ÚselfÚhook_caller© r   úR/var/www/html/CropPilot/venv/lib/python3.10/site-packages/_pytest/config/compat.pyÚ__init__   ó   
zPathAwareHookProxy.__init__c                 C   s
   t | jƒS r   )Údirr   )r   r   r   r   Ú__dir__!   r   zPathAwareHookProxy.__dir__c                    sZ   t | j|ƒ‰|tvrˆ| j|< ˆS t| \‰‰ |ˆƒ‡ ‡‡fdd„ƒ}||_|| j|< |S )Nc                     s�   |   ˆd ¡}|   ˆ d ¡}|d urtjtjˆ ˆd�dd� |d ur/|d ur*t||ƒ nt|ƒ}n
|d us5J ‚t|ƒ}|| ˆ< || ˆ < ˆdi | ¤ŽS )N)Úpylib_path_argÚpathlib_path_argr   )Ú
stacklevelr   )ÚpopÚwarningsÚwarnr   Úformatr   r   r   )ÚkwÚ
path_valueÚfspath_value©Ú
fspath_varÚhookÚpath_varr   r   Ú
fixed_hook,   s$   ÿü
z2PathAwareHookProxy.__getattr__.<locals>.fixed_hook)Úgetattrr   Úimply_paths_hooksÚ__dict__Ú__name__)r   ÚkeyÚ_wrapsr-   r   r)   r   Ú__getattr__$   s   

zPathAwareHookProxy.__getattr__N)	r1   Ú
__module__Ú__qualname__Ú__doc__r   r   Ú	functoolsÚwrapsr4   r   r   r   r   r      s
    r   )r8   r#   Úpathlibr   Útypingr   Úcompatr   r   Ú
deprecatedr   Ú_pytest.nodesr   r/   r   r   r   r   r   Ú<module>   s    û	