o
    b%                     @  sd   d dl mZ 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dZ	dddZ
ddddZdS )    )annotationsN   )is_toplevel_acceptable)scm_find_files)do_expathstrreturn
str | Nonec                 C  s`   zt jddg| p	ddt jd}tjtj| W S  t jy&   Y d S  t	y/   Y d S w )Nhgroot.T)cwdtextstderr)

subprocesscheck_outputDEVNULLosr   normcaserealpathstripCalledProcessErrorOSError)r   out r   Ausr/lib/python3.10/site-packages/setuptools_scm/file_finder_hg.py_hg_toplevel   s   r   topleveltuple[set[str], set[str]]c           	      C  s   t  }| h}tddg| d\}}}|r	 | D ]C}tj|dtjj}tj| |}|	| tj
|}t|t| kr[||vr[|	| tj
|}t|t| kr[||vsDq||fS )Nr   files)r   /)setr   
splitlinesr   r   r   replacesepjoinadddirnamelen)	r   hg_fileshg_dirsr   errretnamefullnamer(   r   r   r   _hg_ls_files_and_dirs   s    

r0    	list[str]c                 C  s8   t | }t|s
g S |d usJ t|\}}t| ||S )N)r   r   r0   r   )r   r   r*   r+   r   r   r   hg_find_files-   s   r3   )r   r   r	   r
   )r   r   r	   r   )r1   )r   r   r	   r2   )
__future__r   r   r   Zfile_finderr   r   utilsr   r   r0   r3   r   r   r   r   <module>   s    

