
    \jc                        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
r9d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+y)&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yd| v ryy)Nz

 )r   s    5/root/env/lib/python3.12/site-packages/isort/parse.py_infer_line_separatorr&       s    x    raw_linec                 
   t        j                  dd|       }t        j                  dd|      }|j                  dd      }t        j                  dd|      }t        j                  d	d
|      }|j                  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~    
 66&(>ID66%'<dCD<<	:.D66"$5t<D66#%7>D<<c"D>r'   r/   configc                     |j                   r.| j                         j                         j                  d      ryd| v sd| v sd| v ry| j	                  d      ry| j	                  d      ry	y)
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   se    TZZ\002;;FCt}4$8N./wr'   import_stringc                    | j                  dd      } | j                  dd      } dD ]  }| j                  |d      }  | j                         }dD ]  }||v s|j                  |        dj                  |      } | j                  dd      } | j                  dd      } | j                  dd	      j                  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%--mSAB%%'K, $+s#$ HH[)M!))'9=M!))(J?M  t,44T4@@r'   in_quoteindexsection_comments.needs_importc                    t        |      }d| v sd| v rud}|t        |       k  re| |   dk(  r|dz  }nC|r| ||t        |      z    |k(  r-d}n*| |   dv r| ||dz    }|d	v r|}|d
z  }n| |   }n	| |   dk(  rn|dz  }|t        |       k  red| j                  d      d   v rH|rFd | j                  d      D        D ]+  }|s|j                  d      r|j                  d      r*d}- t        |xs |      |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   | ]  }|j                           y wN)strip).0parts     r%   	<genexpr>zskip_line.<locals>.<genexpr>u   s     >dTZZ\>s   r8   r6   T)boollenrM   r=   )	r/   rT   rU   rV   rW   should_skip
char_index
long_quoterf   s	            r%   	skip_linerm   R   s2    x.K
d{cTk
3t9$J4'a

Z#h-%?@HL!Hj!Z/!*zA~>
/)H!OJ#J/Hj!S(!OJ 3t9$" djjoa  \>djjo> 	#D0(?@"	# ()844r'   c                       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<   y)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%   ro   ro      s    3i9$T#Y''CH~%d3S	>**++#tCH~%&&((MIXr'   ro   c                 #  <=> |j                   xs t        |       }| j                         }| r| d   dv r|j                  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  rj||   }|dz  }|}t'        ||||j(                  
      \  }}||j(                  v s||j*                  v r|s|dk(  r|dz
  }Wd|v rO|j-                  d      r>|j/                  d      d   j/                         d	   j1                         }g |	|<   ||
|<   nRd|v rN|j-                  d      r=|j/                  d      d   j/                         d	   j1                         }g |	|<   ||
|<   |r|j                  |       |j3                         }|j4                  r|dk(  r~|r{|sx|j-                  d      sf|j-                  d      sT|j-                  d      sB|j-                  d      s4|j-                  d      s#|dz
  }|r||dz
     s|dz  }|r||dz
     sn|j/                  dd      d	   j7                         }d|v sd|v rd|v rd|vr|}|}d|v sd|v r|j/                  dd      d	   }d|v r|j9                         j;                  d      sl||k  rg||k  rg|j9                         j;                  d      sH||   j/                  dd      d	   }|dz  }||k  r&|j9                         j;                  d      sBn|dz  }||k\  rn||   }d|v rd|v r|j/                  dd      ^}}d|v r-|j/                  d      D cg c]  }|j7                          }}n|g}|r|d    d|d	    |d<   |D ]W  }t=        |      \  }}t?        ||      xs d}|g}|s|j                  |       9|dk(  r|dz
  }i } tA        |      \  }!}"|"r|"gng }#tC        |!      j7                         j/                  d      D $cg c]  }$|$s|$	 }%}$|dk(  rt	        |%      dk(  r|#r|#d	   | |%d   <   d|j/                  dd      d	   v r||k  r|j/                  d      d	   j7                         j;                  d      sj||k  rdtA        ||         \  }}&|dz  }|&r|#j                  |&       tC        |      j7                         }'|dk(  r |'rd|'jE                  dd      vr
|&r|#d   | |'<   |!||z   z  }!|j                  |       |j/                  d      d	   j7                         j;                  d      s||k  rn|j7                         j;                  d      rtA        ||         \  }}&|j3                         }|dz  }|&r|#j                  |&       d|j/                  d      d	   v rad|j/                  d      d	   vrJ||k  rDtC        |      j7                         }'|dk(  r |'rd|'jE                  dd      vr
|&r|#d   | |'<   |!||z   z  }!|j                  |       |j/                  d      d	   j7                         j;                  d      s||k  rtA        ||         \  }}&|dz  }|&r|#j                  |&       tC        |      j7                         }'|dk(  r |'rd|'jE                  dd      vr
|&r|#d   | |'<   |!||z   z  }!|j                  |       |j/                  d      d	   j7                         j;                  d      s||k  rtC        |      j7                         }'|dk(  r |'rd|'jE                  dd      vr
|&r|#d   | |'<   |!j7                         j;                  d      s|j7                         j-                  d      r	|!||z   z  }!n3|!j9                         j9                  d      dz   |j3                         z   }!|j7                         j;                  d      r|dk(  r|!jE                  dd      jE                  dd      jE                  dd      }!d |!vr|jG                  |       d!|!v r|!j/                  d!      }(d"})n|!j/                  d#      }(d$})|(d	   j/                  d      }*|)rd!nd#jI                  |*d	   dz   djI                  |*dd%       z   g|(dd% z         }!tC        |!      j/                         D +cg c]$  }+|+jE                  d&d'      jE                  d(d)      & },}+d%}-|,dd% <d"}.d}/d*|,v r|,jK                  d*      dz   t	        |,      k  rd$}.d*|,v rd%}0|,jK                  d*      }1|dk(  r|,|1dz
     }0|,d	   }/|/d+z   |0z   }2|,|1dz      }3<jM                  |0       <jM                  |3       <jM                  d*       |0|3k(  r|jN                  rn!|3|d   |2   vr|d   |2   j                  |3       |0 d|3 }4| jQ                  |4      }5|5r|5|d,   jS                  |/i       |4<   |5|#v rd|#jU                  |#jK                  |5             nC|,|1dz
     }2|,|1dz      }3|2|3k(  r|jN                  rn!|3|d-   |2   vr|d-   |2   j                  |3       |#r|-|0r%|jV                  r|d   jS                  |/ d.g       }-nX|dk(  s#|jN                  r-|3|2j/                  d+      d   k(  r|d-   jS                  |2g       }-n|d-   jS                  |2 d|3 g       }-|,|1|1dz   = d*|,v r|dk(  rs|,jU                  d	      = |=      }6|jX                  r|jZ                  st]        d/= d0|6        n#|jX                  r|j                  d/= d0|6        |6dk(  rt_        d1= d2| d3       |6r|6|vrta        =|64      ||6   |   >|,D ]S  }7| jQ                  |7      }5|5s|5|d,   jS                  =i       |7<   |5|#v s4|#jU                  |#jK                  |5             U |jb                  r_|#r]|-[t	        |,      dk(  rM|d,   jS                  =i       }8|8jQ                  |,d	   d      }9|9 |9rd5nd d5jI                  |#       |8|,d	   <   g }#|#r|-|d   jS                  =g       }-t	        |      te        |d      dz
  kD  rZ|r|d   j9                         nd}:|:j-                  d      r|:j;                  d      s|:j;                  d      sd|:vrd|:vr|jf                  s|:j7                         |jh                  vr|d6   d   jS                  =g       jk                  d	|jU                  d             |r|d   j9                         }:nd}:|:j-                  d      rS|:j;                  d      sB|:j;                  d      s1d|:vr-d|:vr)|jf                  s|:j7                         |jh                  vr|dz
  |k(  r$|t	        |d6   d   jQ                  =g             z  }=>vrt        <fd7|,D              >=<   n>=   jm                  <=>fd8|,D               |#r|-|-jG                  |#       |,s
|,d   s
d9|!j/                  |,d         d   v s
|jo                  =       
|#r|-|-jG                  |#       g }#|,D ]P  }2|#r
|#|d-   |2<   g }#t	        |      te        |dd      dz
  kD  rZ|r|d   j9                         nd}:|:j-                  d      r|:j;                  d      s|:j;                  d      sd|:vrd|:vr|jf                  s|:j7                         |jh                  vr|d6   d-   jS                  |2g       jk                  d	|jU                  d             |r|d   j9                         }:nd}:|:j-                  d      rS|:j;                  d      sB|:j;                  d      s1d|:vr-d|:vr)|jf                  s|:j7                         |jh                  vr|dz
  |k(  r$|t	        |d6   d-   jQ                  |2g             z  } ||2      }6|jX                  r|jZ                  st]        d:|2 d0|6        n#|jX                  r|j                  d:|2 d0|6        |6dk(  r7t_        d1|2 d2| d3       |jS                  dt               t               d       |6r|6|vrta        |2|64      |.||6   |   jQ                  |2d$      z  }.|.||6   |   |2<   S Z ||k  rjt	        |      |z
  };tq        ||||	|
||||;|||j                   ||;      S c c}w c c}$w c c}+w )<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   r+   r_   z as rC   )z importz cimportr6   zimport(zimport (r#   r7   z	 cimport Tz import FNrJ   rI   rL   rK   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  y wrc   r$   )re   moduledirect_importss     r%   rg   z file_contents.<locals>.<genexpr>  s       4?E>!9:4s   c              3   X   K   | ]!  }|   j                  |d       xs |v f # yw)FN)get)re   r   r   import_fromroots     r%   rg   z file_contents.<locals>.<genexpr>  s;      -"  k!2!6!6vu!E!aSaIab-s   '*rF   zelse-type place_module for )rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   )9line_endingr&   
splitlinesappendri   old_findersdeprecated.findersr   findr   r   r   r   listr   r   r{   forced_separatesetrm   rV   section_comments_endr=   rM   upperlstripfloat_to_toprd   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addro   )?r   r1   rz   rp   	out_linesry   r   finder
line_countrs   rt   ru   rv   r|   r   rw   r}   rU   rr   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commentsrf   
line_partsnew_commentstripped_linepartscimportsfrom_importitem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lastrx   r   r   r   s?                                                               @@@r%   file_contentsr      sv    ,,O0Eh0ON""$HHRLL0Ih-6v.33f5XJ*,M(*%D!/F 1<G "N&*@*@A N(3{}MN  "-	* !$OELH
*

$-856CZCZ%
!
 F+++tv7R7R/Rr!$qyt#(<jj!1226<<>qAGGIG%'M'"&-d#$&4??3+?jj!23B7==?BHHJG%'M'"&-d#T"""--c2"--e4"--e4!,,X6~?X?XY_?`$qy"8L14D+E A%L #8L14D+E #jja0399;!T)]d-B{*;.#(L$(M&-7=M;Y&3&9&9#q&A!&D;.$/$6$6$8$A$A#$F ,z 9".";KDVDVDXDaDa #E /7|.D.J.J3PQ.RST.U , 1	 #/";KDVDVDXDaDa #E )A-L':5!(0(>% '-7=M;Y( &*ZZQ%7""$;37::c?C4$**,CJCJ *2/q1DQ1G0HIJrN# {	UI+I6ND((v6<"N!
I!  *r!$qy O%3D%9"M7$+yH+7+F+L+L+N+T+TUX+Yb4]a$bJb'C
Oq,@X2:1+
2/djja(++
0B**S/!,224==cBuzGY(6x(G%D+QJE" 4$0$6$<$<$>M&&0)}'<'<VR'HH'9A"6!^d%::M$$T* **S/!,224==cBuzGY  jjl++D1(6x(G%D+;;=DQJE" 4 tzz#q11tzz#q'99!J.(4T(:(@(@(B*f4 - #=+@+@+L L +=Eb\OM:%$)>>!((."&**S/!"4":":"<"E"Ec"JuWaOa0>x0O-D+!QJE* ( <,8,>,D,D,FM .& 8$1$'}/D/DVR/P$P$/AI" >)^d-BBM%,,T2 #'**S/!"4":":"<"E"Ec"JuWaOa  %1$6$<$<$>M&&0)}'<'<VR'HH'9A"6$**,55/001HI%$)>>(5(<(<(>(E(Ed(Kc(QTXT_T_Ta(ak jjl++D1n ' ")))Z@WT3'WT3' 
 M1$$Y/-/)//<E#H *//
;E$H#AhnnS108j N N ^c)BGGKO,DDEab	Q! )7==? T4(00t<L 
 7;)!"-N"O!|#););D)AA)E\IZ(Z"'l*$(M+11$7H%/(4X\(B+7?(!1C!7-!G".x!|"<&--m<&--g6&--d3(G38W8W $F6N6,BB"6N6299'B'4oT'$C	-<-@-@-K*- !3 1:EEFVXZ[ )  2X= (X^^<N-O P!-hl!;".x!|"<!W,1P1P $F:,>v,FF":.v6==gF$6$>(V-F-F1Ef1M1X1X#3"44D Er2.  .7 & ? ?Gv||\_O`acOdDd5I*5U5`5`$*B6" 2 6J*5U5`5`'-hd7)$<b6" 2 %X1%<=a l*d '*..q1 &{ 3>>&*>*>7}J}o^_^^"))5k]*]O\ !B&1+iv ND D
 !]'%A({MZZ}-n=#/ MK)8)<)<[)I&) / -X6AA+rR' .9$LL8J)KLM ,, *2L)Q.+?+I+T+T#R,( (<'?'?QQS'T$ ,,5ET2,NtyyYaObNcd )$Q  "H 2 :)=f)E)P)PQ\^`)a&y>Ca$81$<<5>9R=//1BD, $e 4 $e 4,D8-T9 & A A $

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

0M0M M '*l:$09&AEEkSUV)  d*(3 4IU4 )D% %,, -&2- 
  2 >&--h7 !$R(}22<3CDRHH#''4 2 >&--h7!H* 0UFCK,Z8@#%9~L"a(@1(DD9By}335 OOC0$(MM%$8$(MM%$8 0 < 1 =$*$E$E$(JJLF4Q4Q$Q09*EPPQWY[\cc !9==#4  )'0}';';'=') !OOC0$(MM%$8$(MM%$8 0 < 1 =$*$E$E$(JJLF4Q4Q$Q !194(C 4W =j I M MfVX Y- L %+6NM~~f.B.B ;F8:m_]^&--9&M?[ %*5fXYtf MH H  **2KMS^S`/ab$g)E,6=YY#w}'=n'M'Q'Q( O FUGM*>:6Ba0UW{	Ua *
Z y>$77L'!#+1!/%%' K
 D& cHs   AG8AG AG=)AG)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   rh   rm   ro   r   r$   r'   r%   <module>r      sz   L 	 0   S S S   - & ,)!$sCx.$sCx.Q cNS#X38n&		
LC C S U38_  -; 
c 
6 
x} 
A A A( +5
+5+5 +5 CHo	+5
 +5 49+5\J " 3A GC G G] Gr'   