a
    !f;                     @   sh   d Z ddlZddlmZ ddlmZ ddlmZ ee dddZdeeejf eee d
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
   W/var/www/html/python-backend/venv/lib/python3.9/site-packages/_pytest/freeze_support.pyfreeze_includes	   s    r    )packageprefixr   c           
      c   s   ddl }ddl}t| tr | }n| j}|d | jd  }}||gD ]D\}}}|rt|j	|||d dD ]}	||	 V  qnqF|| V  qFd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    