o
    g                     @   sr   d dl Z d dlZd dlZd dlmZmZmZmZ d dlm	Z	 d dl
Z
ddlmZ ddlmZ G dd de
jZdS )	    N)AnyDictIteratorList)warn   )api)DEFAULT_CONFIGc                   @   sV   e Zd ZU dZdZg Zee ed< dddZ	ddd	Z
dee fd
dZdddZdS )ISortCommandzoThe :class:`ISortCommand` class is used by setuptools to perform
    imports checks on registered modules.
    z-Run isort on modules registered in setuptoolsuser_optionsreturnNc                 C   s.   t t }| D ]
\}}t| || q
d S )N)varsr	   copyitemssetattr)selfdefault_settingskeyvalue r   P/var/www/html/gwz/venv/lib/python3.10/site-packages/isort/setuptools_commands.pyinitialize_options   s   zISortCommand.initialize_optionsc                 C   s   i | _ t | j d< dS )zGet options from config files.settings_pathN)	argumentsosgetcwd)r   r   r   r   finalize_options   s   zISortCommand.finalize_optionsc                 c   s    | j jr4| j jp
i }| j jD ]$}|}||v r|| }nd|v r*|d tjj | }|dtjjV  q| j jrE| j jD ]}| dV  q<dV  dS )zFind distribution packages. .z.pyzsetup.pyN)distributionpackagespackage_dirr   pathsepreplace
py_modules)r   package_dirspackagepkg_dirfilenamer   r   r   distribution_files   s   

zISortCommand.distribution_filesc                 C   s   | j }d}|  D ]8}ttj|dD ]+}ztj|fi |s#d}W q t	y@ } zt
d| d|  W Y d }~qd }~ww q	|rKtd d S d S )NFz*.pyTzUnable to parse file z due to r   )r   r*   globiglobr   r"   joinr   
check_fileOSErrorr   sysexit)r   r   wrong_sorted_filesr"   python_fileerrorr   r   r   run2   s     zISortCommand.run)r   N)__name__
__module____qualname____doc__descriptionr   r   r   __annotations__r   r   r   strr*   r5   r   r   r   r   r
      s   
 

r
   )r+   r   r0   typingr   r   r   r   warningsr   
setuptoolsr   r   settingsr	   Commandr
   r   r   r   r   <module>   s    