
    yIfk                        d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlmZm	Z	 	 d dl
Z
dZn# e$ r dZY nw xY w e j        d          Z e j        d	          Zd
edefdZd
edefdZddddededee         dee	         deddfdZdedefdZd#dededefdZ G d d          Z G d de          Z	 d$dedee	         d ed!edef
d"ZdS )%    N)datetime)unified_diff)Path)OptionalTextIOFTz\+[^+]z-[^-]import_linereturnc                    |                                  } |                     d          r-|                     dd          } |                     dd          } n+|                     d          r|                     dd          } | S )Nfrom   import .import )strip
startswithreplace)r   s    @/var/www/piapp/venv/lib/python3.11/site-packages/isort/format.pyformat_simplifiedr      s    ##%%Kg&& 9!))'266!))*c::					*	* 9!)))R88    c                    |                                  } |                     d          sc|                     d          sNd| vrd|  S |                     d          }|                    d          }dd                    |           d| S | S )Nr   r   r   r   )r   r   splitpopjoin)r   partsends      r   format_naturalr      s    ##%%K!!'** 6;3I3I)3T3T 6k!!*[***!!#&&iimm5sxx55555r   )outputcolor_output
file_inputfile_output	file_pathr   r   c                    t          ||          }|dnt          |          }t          |t          j                    n*t          j        |                                j                            }t          |                     d          |                    d          |dz   |dz   |t          t          j                                        }|D ]}	|	                    |	           dS )a  Shows a unified_diff for the provided input and output against the provided file path.

    - **file_input**: A string that represents the contents of a file before changes.
    - **file_output**: A string that represents the contents of a file after changes.
    - **file_path**: A Path object that represents the file path of the file being changed.
    - **output**: A stream to output the diff to. If non is provided uses sys.stdout.
    - **color_output**: Use color in output if True.
    Nr   T)keependsz:beforez:after)fromfiletofilefromfiledate
tofiledate)
create_terminal_printerstrr   nowfromtimestampstatst_mtimer   
splitlines	diff_line)
r    r!   r"   r   r   printer	file_name
file_mtimeunified_diff_lineslines
             r   show_unified_diffr6   +   s      &lF;;G'S^^I#+1G	HXHXHa1b1b J &t,,--Y&8#x|~~&&   #    $   r   c                     d }|dvrIt          d|  d          }|                                }|dv rdS |dv rt          j        d           |dvIdS )	N)yesynonquitqzApply suggested changes to 'z' [y/n/q]? )r:   r;   F)r<   r=      T)inputlowersysexit)r"   answers     r   $ask_whether_to_apply_changes_to_filerD   L   sv    F
<
<
<LiLLLMM[  5]""HQKKK <
<
< 4r   
contentline_separatorc                     |                      |d                               dd                               dd          } | S )Nr    )r   )rF   rG   s     r   remove_whitespacerK   X   s;    oonb1199#rBBJJ6SUVVGNr   c                   h    e Zd ZdZdZddededee         fdZded	dfd
Z	ded	dfdZ
ded	dfdZdS )BasicPrinterERRORSUCCESSNerrorsuccessr   c                 H    |pt           j        | _        || _        || _        d S N)rA   stdoutr   success_messageerror_message)selfrP   rQ   r   s       r   __init__zBasicPrinter.__init__a   s&    *
&"r   messager	   c                 p    t          | j                            | j        |          | j                   d S )N)rQ   rY   file)printrU   formatrO   r   rW   rY   s     r   rQ   zBasicPrinter.successf   s7    d"))$,)PPW[Wbccccccr   c                 z    t          | j                            | j        |          t          j                   d S )N)rP   rY   r[   )r]   rV   r^   rN   rA   stderrr_   s     r   rP   zBasicPrinter.errori   s7    d ''dj''JJQTQ[\\\\\\r   r5   c                 :    | j                             |           d S rS   )r   write)rW   r5   s     r   r0   zBasicPrinter.diff_linel   s    $r   rS   )__name__
__module____qualname__rN   rO   r*   r   r   rX   rQ   rP   r0    r   r   rM   rM   ]   s        EG# #c #C #&9I # # # #
ds dt d d d d]S ]T ] ] ] ] c  d            r   rM   c                   z     e Zd Zdededee         f fdZeddedee         defd	            Zd
eddfdZ	 xZ
S )ColoramaPrinterrP   rQ   r   c                 P   t                                          |||           |                     dt          j        j                  | _        |                     dt          j        j                  | _        t          j        j        | _	        t          j        j        | _
        d S )N)r   rN   rO   )superrX   
style_textcoloramaForeREDrN   GREENrO   
ADDED_LINEREMOVED_LINE)rW   rP   rQ   r   	__class__s       r   rX   zColoramaPrinter.__init__q   sw    777 __Whm.?@@
y(-2EFF"--$M-r   Ntextstyler	   c                 R    || S || z   t          t          j        j                  z   S rS   )r*   rm   Style	RESET_ALL)rt   ru   s     r   rl   zColoramaPrinter.style_text{   s(    =Kt|c(.":;;;;r   r5   c                     d }t          j        t          |          r| j        }n!t          j        t          |          r| j        }| j                            |                     ||                     d S rS   )	rematchADDED_LINE_PATTERNrq   REMOVED_LINE_PATTERNrr   r   rc   rl   )rW   r5   ru   s      r   r0   zColoramaPrinter.diff_line   sl    8&-- 	&OEEX*D11 	&%E$//$6677777r   rS   )rd   re   rf   r*   r   r   rX   staticmethodrl   r0   __classcell__)rs   s   @r   ri   ri   p   s        .c .C .&9I . . . . . . < < <Xc] <c < < < \<
8c 8d 8 8 8 8 8 8 8 8r   ri   r   colorrP   rQ   c                     | r8t           r1d}t          |t          j                   t          j        d           t           st          j        d           | rt          |||          nt          |||          S )Nz
Sorry, but to use --color (color_output) the colorama python package is required.

Reference: https://pypi.org/project/colorama/

You can either install it separately on your system or as the colors extra for isort. Ex: 

$ pip install isort[colors]
r[   r>   F)r   )	colorama_unavailabler]   rA   ra   rB   rm   initri   rM   )r   r   rP   rQ   no_colorama_messages        r   r)   r)      s      
% 
, 	 	!
3333 #E""""38bw///l5RY[a>b>br   )rE   )Nr   r   )rz   rA   r   difflibr   pathlibr   typingr   r   rm   r   ImportErrorcompiler|   r}   r*   r   r   boolr6   rD   rK   rM   ri   r)   rg   r   r   <module>r      st   				 



                         # # # # # # # #!OOO !          RZ	** !rz(++ 3 3    	 	 	 	 	 	"  $         ~	 
 V    
       B	C 	D 	 	 	 	 s C 3    
               &8 8 8 8 8l 8 8 86 SU !&)9<LO     s   + 55