o
    /a                     @   sN   d dl mZ d dlmZ d dlmZ d dlZdd Zddd	Z	i fd
dZ
dS )    )absolute_import)defaultdict)find_packagesNc                 C   s   | N )er   r   <usr/lib/python3.10/site-packages/pyproject2setuppy/common.py	raise_exc   s   r	   .c              	   C   s   i }|dkrd|i|d< t jt j|| r)|dt|| d| fdi |S t jt j|| d r@|d| gi |S td	| )
z
    Find packages for modname, and supply proper setup() args for them.
    Supports both packages and modules in correct directory.  Includes
    all nested subpackages.
    r
    package_dirpackagesz{}.*)whereincludez.py
py_moduleszNo package matching {} found)	ospathisdirjoinupdater   formatisfileRuntimeError)modnamesubdirretdictr   r   r   auto_find_packages   s    r   c           	      C   s   t t}dg|d< | D ]A}||tj|dd|dd}tj|tdD ]$\}}}dd |D |dd< d	|vrKtj	||}|| 
|d
  q'qtdd | D S )z?Find additional package data dirs and return package_data dict.*r   r
   /)onerrorc                 S   s"   g | ]}|d kr| ds|qS )__pycache__r
   )
startswith).0xr   r   r   
<listcomp>3   s    
z%find_package_data.<locals>.<listcomp>Nz__init__.pyz/*c                 s   s$    | ]\}}|t t|fV  qd S r   )sorted	frozenset)r"   r#   yr   r   r   	<genexpr>9   s   " z$find_package_data.<locals>.<genexpr>)r   listgetr   r   r   replacewalkr	   relpathappenddictitems)	r   package_dirsretppkgdirtopdirdirsfiles	data_pathr   r   r   find_package_data(   s   

r9   )r
   )
__future__r   collectionsr   
setuptoolsr   os.pathr   r	   r   r9   r   r   r   r   <module>   s   
