
    yIfc                        d Z ddlZddlmZmZ ddlmZ ddlmZ ddl	m
Z
mZmZmZmZmZmZ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mZ e
rNddlmZ  edee ef         ee ef         d          Z! edee ef         ee ef         ee ef         e!d          Z"de de fdZ#de dee e f         fdZ$efde dedee          fdZ%de de fdZ&	 d&de de de'dee d f         d!e(dee(e f         fd"Z) G d# d$e          Z*efde dede*fd%Z+dS )'zFDefines parsing functions used by isort for parsing import definitions    N)OrderedDictdefaultdict)partial)chain)TYPE_CHECKINGAnyDictList
NamedTupleOptionalSetTuple)warn   )place)parse)MissingSection)DEFAULT_CONFIGConfig)	TypedDictCommentsAboveDictstraightfromCommentsDictr   r   nestedabovecontentsreturnc                     d| v rdS d| v rdS dS )Nz

 )r   s    ?/var/www/piapp/venv/lib/python3.11/site-packages/isort/parse.py_infer_line_separatorr&       s'    vxt4    raw_linec                    t          j        dd|           }t          j        dd|          }|                    dd          }t          j        dd|          }t          j        d	d
|          }|                    dd          }|| fS )zrNormalizes import related statements in the provided line.

    Returns (normalized_line: str, raw_line: str)
    zfrom(\.+)cimport zfrom \g<1> cimport zfrom(\.+)import zfrom \g<1> import zimport*zimport *z (\.+)import z \g<1> import z (\.+)cimport z \g<1> cimport 	 )resubreplace)r(   lines     r%   normalize_liner0   (   s    
 6&(>IID6%'<dCCD<<	:..D6"$5t<<D6#%7>>D<<c""D>r'   r/   configc                    |j         r;|                                                                                     d          rdS d| v sd| v sd| v rdS |                     d          rdS |                     d          rd	S dS )
zPIf the current line is an import line it will return its type (from or straight)noqaN
isort:skipisort: skipzisort: splitimport zcimport r   from r   )
honor_noqalowerrstripendswith
startswith)r/   r1   s     r%   import_typer>   6   s     TZZ\\0022;;FCC tt}44$8N8Nt.// zw v4r'   import_stringc                    |                      dd          } |                      dd          } dD ]}|                      |d          } |                                 }dD ]}||v r|                    |           d                    |          } |                      dd          } |                      dd          } |                      dd	                               d
d          S )N_importz[[i]]_cimportz[[ci]])\(),r+   )r   importcimport{ {| }|})r.   splitremovejoin)r?   remove_syntaximport_listkeys       r%   strip_syntaxrS   C   s    !)))W==M!))*h??M. B B%--mSAA%%''K, $ $+s###HH[))M!))'9==M!))(J??M  t,,44T4@@@r'   Tin_quoteindexsection_comments.needs_importc                 j   t          |          }d| v sd| v rd}|t          |           k     r| |         dk    r|dz  }n\|r!| ||t          |          z            |k    rd}n9| |         dv r"| ||dz            }|d	v r|}|d
z  }n| |         }n| |         dk    rn|dz  }|t          |           k     d|                     d          d         v rR|rPd |                     d          D             D ]0}|r,|                    d          s|                    d          sd}1t          |p|          |fS )zDetermine if a given line should be skipped.

    Returns back a tuple containing:

    (skip_line: bool,
     in_quote: str,)
    "'r   rC   r    )rZ   rY      )"""'''   #;c              3   >   K   | ]}|                                 V  d S Nstrip.0parts     r%   	<genexpr>zskip_line.<locals>.<genexpr>u   s*      >>dTZZ\\>>>>>>r'   r8   r6   T)boollenrM   r=   )	r/   rT   rU   rV   rW   should_skip
char_index
long_quoterh   s	            r%   	skip_linero   R   s    x..K
d{{cTkk
3t99$$J4''a

 
Z#h--%??@HLL!Hj!Z//!*zA~"=>
//)H!OJJ#J/HHj!S((!OJ 3t99$$" djjooa   \ >>djjoo>>> 	# 	#D#00# (?@@#
 #())844r'   c                   D   e Zd ZU ee         ed<   ee         ed<   eed<   eeee         f         ed<   eeef         ed<   eeeeee         f         f         ed<   eeeeef         f         ed<   ded	<   eed
<   eed<   eed<   eed<   ee         ed<   e	e         ed<   dS )ParsedContentin_lineslines_without_importsimport_indexplace_importsimport_placementsas_mapimportsr   categorized_commentschange_countoriginal_line_countline_separatorsectionsverbose_outputtrailing_commasN)
__name__
__module____qualname__r
   str__annotations__intr	   r   r   r$   r'   r%   rq   rq      s        3i9$$$T#Y''''CH~%%%d3S	>**++++#tCH~%&&&&((((MMMIXr'   rq   c                 )  :;< |j         pt          |           }|                                 }| r| d         dv r|                    d           g }t	          |          }|j        rddlm}  ||          j        }nt          t          j        |          }t	          |          }i }	i }
t          t                    t          t                    d}t                      }g }t          |j        |j                  D ]"}t                      t                      d||<   #i i i i i dd}t%                      }d	}d}d}||k     r~||         }|dz  }|}t'          ||||j        
          \  }}||j        v s	||j        v r|s|dk    r|dz
  }Qd|v re|                    d          rP|                    d          d                                         d	                                         }g |	|<   ||
|<   nhd|v rd|                    d          rO|                    d          d                                         d	                                         }g |	|<   ||
|<   |r|                    |           ;|                                }|j        r|dk    r|r|s|                    d          s|                    d          s|                    d          s|                    d          s;|                    d          s&|dz
  }|r||dz
           s|dz  }|r||dz
           n5|                    dd          d	                                         }d|v sd|v rd|v rd|vr|}|}d|v sd|v r|                    dd          d	         }d|v r|                                                    d          s||k     r||k     r{|                                                    d          sT||                             dd          d	         }|dz  }||k     r'|                                                    d          Tn|dz  }||k    rn||         }d|v d|v |                    dd          ^}}d|v r d |                    d          D             }n|g}|r|d          d|d	          |d<   |D ]}t=          |          \  }}t?          ||          pd}|g}|s|                    |           B|dk    r|dz
  }i } tA          |          \  }!}"|"r|"gng }#d tC          |!                                                              d          D             }$|dk    r&t	          |$          dk    r|#r|#d	         | |$d         <   d|                    dd          d	         v r4||k     r-|                    d          d	                                                             d          s||k     rtA          ||                   \  }}%|dz  }|%r|#                    |%           tC          |                                          }&|dk    r'|&r%d|&"                    dd          vr|%r|#d         | |&<   |!||z   z  }!|                    |           |                    d          d	                                                             d          s||k     nU|                                                    d          r-tA          ||                   \  }}%|                                }|dz  }|%r|#                    |%           d|                    d          d	         v rd|                    d          d	         vr||k     rtC          |                                          }&|dk    r'|&r%d|&"                    dd          vr|%r|#d         | |&<   |!||z   z  }!|                    |           |                    d          d	                                                             d          s||k     rtA          ||                   \  }}%|dz  }|%r|#                    |%           tC          |                                          }&|dk    r'|&r%d|&"                    dd          vr|%r|#d         | |&<   |!||z   z  }!|                    |           |                    d          d	                                                             d          s||k     tC          |                                          }&|dk    r'|&r%d|&"                    dd          vr|%r|#d         | |&<   |!                                                    d          s'|                                                    d          r	|!||z   z  }!n?|!                                                    d          dz   |                                z   }!|                                                    d          -|dk    r|!"                    dd           "                    dd          "                    d!d          }!d"|!vr|#                    |           d#|!v r|!                    d#          }'d$}(n|!                    d%          }'d&}(|'d	                             d          })|(rd#nd%$                    |)d	         dz   d$                    |)dd'                   z   g|'dd'         z             }!d( tC          |!                                          D             }*d'}+|*dd'         :d$},d}-d)|*v rV|*%                    d)          dz   t	          |*          k     r,d&},d)|*v r%d'}.|*%                    d)          }/|dk    r|*|/dz
           }.|*d	         }-|-d*z   |.z   }0|*|/dz            }1:&                    |.           :&                    |1           :&                    d)           |.|1k    r|j'        rn1|1|d         |0         vr!|d         |0                             |1           |. d|1 }2| (                    |2          }3|3rK|3|d+         )                    |-i           |2<   |3|#v r(|#*                    |#%                    |3                     nU|*|/dz
           }0|*|/dz            }1|0|1k    r|j'        rn1|1|d,         |0         vr!|d,         |0                             |1           |#r|+|.r'|j+        r |d         )                    |- d-g           }+nj|dk    s&|j'        r<|1|0                    d*          d         k    r|d,         )                    |0g           }+n!|d,         )                    |0 d|1 g           }+|*|/|/dz   = d)|*v %|dk    r|**                    d	          ; |;          }4|j,        r|j-        st]          d.; d/|4            n"|j,        r|                    d.; d/|4            |4dk    rt_          d0; d1| d2           |4r|4|vrta          ;|43          ||4         |         <|*D ]d}5| (                    |5          }3|3rK|3|d+         )                    ;i           |5<   |3|#v r(|#*                    |#%                    |3                     e|j1        ry|#rw|+ut	          |*          dk    rb|d+         )                    ;i           }6|6(                    |*d	         d          }7|7 |7rd4nd d4$                    |#           |6|*d	         <   g }#|#r|+|d         )                    ;g           }+t	          |          te          |d          dz
  k    r|r|d                                         nd}8|8                    d          r&|8                    d          s|8                    d          sd|8vrd|8vr|j3        s|8                                |j4        vr|d5         d         )                    ;g           5                    d	|*                    d                     |r|d                                         }8nd}8|8                    d          rT|8                    d          s?|8                    d          s*d|8vr&d|8vr"|j3        s|8                                |j4        v|dz
  |k    r2|t	          |d5         d         (                    ;g                     z  };<vrt          :fd6|*D                       <;<   n)<;         6                    :;<fd7|*D                        |#r|+|+#                    |#           |*r@|*d         r8d8|!                    |*d                   d         v r|7                    ;           !|#r|+|+#                    |#           g }#|*D ]}0|#r|#|d,         |0<   g }#t	          |          te          |dd          dz
  k    r|r|d                                         nd}8|8                    d          r&|8                    d          s|8                    d          sd|8vrd|8vr|j3        s|8                                |j4        vr|d5         d,         )                    |0g           5                    d	|*                    d                     |r|d                                         }8nd}8|8                    d          rT|8                    d          s?|8                    d          s*d|8vr&d|8vr"|j3        s|8                                |j4        v|dz
  |k    r2|t	          |d5         d,         (                    |0g                     z  } ||0          }4|j,        r|j-        st]          d9|0 d/|4            n"|j,        r|                    d9|0 d/|4            |4dk    rGt_          d0|0 d1| d2           |)                    dt                      t                      d           |4r|4|vrta          |0|43          |,||4         |         (                    |0d&          z  },|,||4         |         |0<   ||k     ~t	          |          |z
  }9tq          ||||	|
||||9|||j        ||:          S );z9Parses a python file taking out and categorizing imports.)r#   r"   r[   r   )FindersManager)r1   r   r   r   )rT   rU   rV   zisort:imports-r`   zisort: imports-r^   r]   rG   r   r4   r5   rD   rE   ra   c                 6    g | ]}|                                 S r$   rd   )rg   r/   s     r%   
<listcomp>z!file_contents.<locals>.<listcomp>  s     CCC4$**,,CCCr'   c                     g | ]}||S r$   r$   rf   s     r%   r   z!file_contents.<locals>.<listcomp>  s    bbb4]ab$bbbr'   r+   r_   z as rC   )z importz cimportr6   zimport(zimport (r#   r7   z	 cimport Tz import FNc                 b    g | ],}|                     d d                               dd          -S )rJ   rI   rL   rK   )r.   )rg   items     r%   r   z!file_contents.<locals>.<listcomp>{  sF        T4((00t<<  r'   as.r   r   z.__combined_as__zfrom-type place_module for z
 returned zcould not place module z	 of line z, -- Do you need to define a default section?)import_modulesectionz; r   c              3   $   K   | ]
}||v fV  d S rc   r$   )rg   moduledirect_importss     r%   ri   z file_contents.<locals>.<genexpr>  s>       4 4?E>!9:4 4 4 4 4 4r'   c              3   \   K   | ]&}|                              |d           p|v fV  'dS )FN)get)rg   r   r   import_fromroots     r%   ri   z file_contents.<locals>.<genexpr>  s\       - -"  k!2!6!6vu!E!E!aSaIab- - - - - -r'   rF   zelse-type place_module for )rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   )9line_endingr&   
splitlinesappendrk   old_findersdeprecated.findersr   findr   r   r   r   listr   r   r}   forced_separatesetro   rV   section_comments_endr=   rM   upperlstripfloat_to_topre   r;   r<   r0   r>   parse_commentsrS   r.   extendrO   rU   rN   remove_redundant_aliasesr   
setdefaultpopcombine_as_importsverboseonly_modifiedprintr   r   force_single_linemaxtreat_all_comments_as_codetreat_comments_as_codeinsertupdateaddrq   )=r   r1   r|   rr   	out_linesr{   r   finder
line_countru   rv   rw   rx   r~   r   ry   r   rU   rt   rT   r/   statement_indexskipping_linelstripped_linecommentlessstarting_lineend_of_line_comment
statements	statementr(   type_of_import	raw_linesnested_commentsr?   commentcomments
line_partsnew_commentstripped_linepartscimportsfrom_importjust_importsattach_comments_tostraight_importtop_level_modulenested_moduleas_indexr   as_name	full_nameassociated_commentplaced_moduleimport_namenested_from_commentsexisting_commentlastrz   r   r   r   s=                                                             @@@r%   file_contentsr      sh    ,O0Eh0O0ON""$$H HRLL00Ih-- 6666666v...3f555XJ*,M(*%%D!!/ /F 1<G "N&*@AA N N(3{}}MM "--	* * !$OELH
*


$-856CZ%
 %
 %
!
 F+++tv7R/R/R 0Sr!!$qyt##(<(<#jj!12226<<>>qAGGIIG%'M'"&-d##$&&4??3+?+?&jj!233B7==??BHHJJG%'M'"&-d# 	T""")	?"" # # #--c22 # #--e44	 #
 #--e44 # ",,X66  ?~?X?XY_?`?`  ?$qy" &8L14D+E & A%L # &8L14D+E & #jja00399;;!T))]d-B-B{**;..#(L$(M&-77=M;Y;Y&3&9&9#q&A&A!&D;..$/$6$6$8$8$A$A#$F$F / ,z 9 9".";";KDVDVDXDXDaDa #E E"; /7|.D.J.J3PQ.R.RST.U , 1	 #/";";KDVDVDXDXDaDa #E E"; )A-L':55!(0(>% '-77=M;Y;Y( &*ZZQ%7%7""$;;CC4::c??CCCJJJ 	J *2II1DQ1GIIJrN# {	U {	UI+I66ND((v66<"N!
I!   ***r!!$qy O%3D%9%9"M7$+3yyHbb<+F+F+L+L+N+N+T+TUX+Y+YbbbJ''C
OOq,@,@X,@2:1+
2/djja((+++
0B0B**S//!,2244==cBB +uzGYGY(6x(G(G%D+QJE" 5 444$0$6$6$<$<$>$>M&&00) 1}'<'<VR'H'HHH' I :B"6!^d%::M$$T*** **S//!,2244==cBB +uzGYGY  jjll++D11 5b(6x(G(G%D+;;==DQJE" 5 444 tzz#q111tzz#q'999!J..(4T(:(:(@(@(B(B*f44 - 5 #=+@+@+L+L L L + !M >Fb\OM:%$)>>!((..."&**S//!"4":":"<"<"E"Ec"J"J 3uWaOaOa0>x0O0O-D+!QJE* = ( < < <,8,>,>,D,D,F,FM .& 8 8$1 !9$'}/D/DVR/P/P$P$P$/ %Q BJ" >)^d-BBM%,,T222 #'**S//!"4":":"<"<"E"Ec"J"J 3uWaOaOa  %1$6$6$<$<$>$>M&&00) 1}'<'<VR'H'HHH' I :B"6$**,,55/  b001HIIb &$)>>(5(<(<(>(>(E(Ed(K(Kc(QTXT_T_TaTa(ak jjll++D11 5bn '' ")))Z@@WT3''WT3'' 
 M11$$Y///-//)//<<E#HH *//
;;E$H#AhnnS1108!Hj N N ^c)BGGKO,D,DDEabb	Q! ! (77==??  L
 7;)!""-N"O!|##););D)A)AA)E\IZIZ(Z(Z"'l**$(M+11$77H%//(4X\(B+7?(!1C!7-!G".x!|"<&--m<<<&--g666&--d333(G338W3 $F6N6,BBB"6N6299'BBB'4$C$C'$C$C	-<-@-@-K-K*- Q !3 1:EEFVXZ[[ )  2X== (X^^<N-O-O P P P!-hl!;".x!|"<!W,,1P, $F:,>v,FFF":.v6==gFFF "$6$>( "V-F "1Ef1M1X1X#3 E E Er2 2..  .77 & ?  8DKv||\_O`O`acOdDdDd5I*5U5`5`$*B6" 6" 2 2 6J*5U5`5`'-$<$<7$<$<b6" 6" 2 %X1%<=a l**d ''*..q11 &{ 3 3> &*> ^^^}^^____^ "))\k\\]\\   !B&&D+ D D D D D  
 ! []'%A%A({MZZZZ}-n=#/ M MK)8)<)<[)I)I&) M / -X6AA+rRR' .99$LL8J)K)KLLL," " +2L))Q..+?+I+T+T#R, ,( (<'?'?QQS'T'T$ ,d5E-MTT2dtyyYaObObdd )$Q  "H b 2 :)=f)E)P)PQ\^`)a)a&y>>Ca$8$81$<<<5>F9R=//111BD,,& $e 4 4& !%e 4 4& -D88-T99 & A : $

0M M M,W5f=HHVXYY``y}}R00   % &#,R=#7#7#9#9DD#%D ,,& $e 4 4& !%e 4 4& -D88-T99 & A : $

0M M M '*l::$09&AEEkSUVV) )  d**(3 4 4 4 4IU4 4 4 ) )D%% %,, - - - - - -&2- - -   
  8 2 >&--h777 !5$R(5 }22<3CDDRHHH#''444 " 2 >&--h777!H* 0U 0UF &CK,Z8@#%9~~L"a(@(@1(DDD9BJy}33555 OOC00*$(MM%$8$8* %)MM%$8$8* !1 < < 1 = =$*$E !>$(JJLLF4Q$Q$Q09*EPPQWY[\\cc !9==#4#4    ) *'0}';';'='=') !OOC00*$(MM%$8$8* %)MM%$8$8* !1 < < 1 = =$*$E !>$(JJLLF4Q$Q$Q !1944(C 4W =j I M MfVX Y Y- - L %+F6NNM~ f.B ]F]]m]]^^^^ &--[&[[M[[   %**Hf H Ht H H H    **2KMMS^S`S`/a/abbb$ Zg)E)E,6=YYYY#w}'=n'M'Q'Q( ( O FUGM*>:6BBa0Uw
 *

Z y>>$77L'!#+1!/%%'   r'   )T),__doc__r,   collectionsr   r   	functoolsr   	itertoolsr   typingr   r   r	   r
   r   r   r   r   warningsr   r[   r   r   r   r   
exceptionsr   settingsr   r   mypy_extensionsr   r   r   r   r&   r0   r>   rS   r   rj   ro   rq   r   r$   r'   r%   <module>r      s   L L 				 0 0 0 0 0 0 0 0             S S S S S S S S S S S S S S S S S S S S             - - - - - - & & & & & & , , , , , , , , ))))))!	$sCx.$sCx.QQ  9cNS#X38n&		
 	
 LC C    S U38_     -; 
 
c 
6 
x} 
 
 
 
A A A A A A( +5 +5
+5+5 +5 CHo	+5
 +5 49+5 +5 +5 +5\    J   " 3A G GC G G] G G G G G Gr'   