o
    Zh<                     @   sn   d Z ddlZddlmZ ddlmZ ddlmZ dee fddZ		dd
eeejf dedee fddZ	dS )zLProvides a function to report all internal modules for using freezing
tools.    N)Iterator)List)Unionreturnc                  C   s   ddl } tt| }|S )zVReturn a list of module names used by pytest that should be
    included by cx_freeze.r   N)_pytestlist_iter_all_modules)r   result r
   M/var/www/html/lang_env/lib/python3.10/site-packages/_pytest/freeze_support.pyfreeze_includes
   s   r    packageprefixc           
      c   s    ddl }ddl}t| tr| }n| j}|d | jd }}||gD ]"\}}}|rAt|j	|||d dD ]}	||	 V  q8q$|| V  q$dS )zIterate over the names of all modules that can be found in the given
    package, recursively.

        >>> import _pytest
        >>> list(_iter_all_modules(_pytest))
        ['_pytest._argcomplete', '_pytest._code.code', ...]
    r   N.)r   )
ospkgutil
isinstancestr__path____name__iter_modulesr   pathjoin)
r   r   r   r   r   package_path_name
is_packagemr
   r
   r   r      s   
r   )r   )
__doc__typestypingr   r   r   r   r   
ModuleTyper   r
   r
   r
   r   <module>   s    