
    8 f                         d dl mZ d dlmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlZd dlZd Z G d	 d
          Z G d de          ZeZdS )    )redirect_stdout)unified_diff)PackageNotFoundError)version)StringIO)PathNc                  D    	 t          d          S # t          $ r Y dS w xY w)Nflake8_isortdev)r   r        B/var/www/equiseq/venv/lib/python3.11/site-packages/flake8_isort.py_versionr      s7    ~&&&   uus    
c                   |    e Zd ZdZ e            ZdZdZdZdZ	dZ
dZdZdZd	Zd
 Zed             Zed             ZdS )Flake8IsortBaser
   z0I001 isort found an import in the wrong positionz>I002 no configuration found (.isort.cfg or [isort] in configs)z4I003 isort expected 1 blank line in imports, found 0z4I004 isort found an unexpected blank line in importsz-I005 isort found an unexpected missing importFNTc                 "    || _         || _        d S N)filenamelines)selftreer   r   s       r   __init__zFlake8IsortBase.__init__!   s     


r   c                 j    |                      dddd           |                      dddd           d S )Nz--isort-show-traceback
store_trueTz(Show full traceback with diff from isort)actionparse_from_confighelpz--isort-no-skip-gitignorezTemporarily override the set value of isort's `skip_gitignore` option with `False`. This can cause flake8-isort to run significantly faster at the cost of making flake8-isort's behavior differ slightly from the behavior of `isort --check`.)
add_option)option_managers    r   add_optionszFlake8IsortBase.add_options%   sb    !!$";	 	" 	
 	
 	
 	!!'"3 	" 
	
 
	
 
	
 
	
 
	
r   c                 N    |j         | _         |j        | _        |j        | _        d S r   )stdin_display_nameisort_show_tracebackshow_tracebackisort_no_skip_gitignoreno_skip_gitignore)clsr   optionsargss       r   parse_optionszFlake8IsortBase.parse_options9   s)    !(!;$9 ' ?r   )__name__
__module____qualname__namer   r   isort_unsortedno_config_msgisort_blank_reqisort_blank_unexpisort_add_unexpr$   r&   r"   search_currentr   staticmethodr    classmethodr*   r   r   r   r   r      s        DhjjGGNTMLONEONN   
 
 \
& @ @ [@ @ @r   r   c                       e Zd ZdZd Zd ZdS )Flake8Isort5zclass for isort >=5c           	   #   r  K   | j         | j        urt          | j                   }|j        }nd }t          j                    }| j        r"t          j                            |d          }n t          j                            |          }d	                    | j
                  }d}d}t          |          }t                      }t                      }		 t          |	          5  t          j                            ||||          }d d d            n# 1 swxY w Y   nL# t          j        j        $ r Y n6t          j        j        $ r }
t%          j        |
d           Y d }
~
nd }
~
ww xY w|r|                                }d	                    t+          |                    d	          |                    d	          | j          d
| j          d                    }|	                                 d| }|                     |          D ](\  }}| j        r||z  }|d|t3          |           fV  'd S d S )NF)settings_pathskip_gitignore)r:    )input_streamoutput_streamconfig	file_path   )
stacklevelT)keependsz:beforez:after)fromfiletofile
r   )r   r"   r   parentcwdr&   isortsettingsConfigjoinr   r   r   apisort_stream
exceptionsFileSkipped
ISortErrorwarningswarngetvaluer   
splitlinesisort_linenum_msgr$   type)r   r@   r:   isort_configinput_string	tracebackisort_changedr=   r>   isort_stdouteoutlines
diff_deltaline_nummessages                  r   runzFlake8Isort5.runC   s     = 777T]++I%,MMI HJJM! 	N >00+E 1  LL !>00}0MMLwwtz**	-- 

zz	+ ..   %	 5 5!-"/''	 !6 ! !               + 	 	 	D* 	+ 	+ 	+M!*********	+ 	7$--//H ++T+::'''66 $666"m333	   J (0022BBjBBI%)%;%;J%G%G 7 7!'& )y(G7DJJ66666	7 	77 7sB   D  $$DD  DD  DD   E)6E)	E$$E)c              #   
  K   d}g }g }|                                 D ]E}|                    ddd          rJt          |dd                             d          d                             d          d                   }d|sg|                    ddd          r|dz  }|                    d	dd          rW|                                d	k    r|| j        fV  |dz  }|                    |dd                    || j        fV  |dz  }|                    d
dd          r<|                                d
k    r|| j        fV  .|                    ||f           G|D ]\  }}|dd         |vr|| j	        fV  dS )zParse unified diff for changes and generate messages

        Args
        ----
        udiff : unified diff delta

        Yields
        ------
        tuple: A tuple of the specific isort line number and message.
        r   z@@rA      N ,   -+)
rU   
startswithintsplitstripr2   appendr/   r1   r3   )r   udiffr`   	additionsmoveslines         r   rV   zFlake8Isort5.isort_linenum_msgr   s      	$$&& 	7 	7DtQ** tABBx~~c2215;;C@@CDD sAq)) 7Aa++ 7::<<3&&"D$:::::MHHLLabb***"D$77777MHHa++ 7::<<3&&"D$888888$$h%5666 ( 	5 	5NHd8u$$ 44444	5 	5r   N)r+   r,   r-   __doc__rb   rV   r   r   r   r8   r8   @   s9        -7 -7 -7^(5 (5 (5 (5 (5r   r8   )
contextlibr   difflibr   importlib.metadatar   r   ior   pathlibr   rI   rR   r   r   r8   Flake8Isortr   r   r   <module>rz      s   & & & & & &             3 3 3 3 3 3 & & & & & &                *@ *@ *@ *@ *@ *@ *@ *@ZZ5 Z5 Z5 Z5 Z5? Z5 Z5 Z5z r   