
    1yic                        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 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
r3 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dz  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
NamedTuple	TypedDict)warn   )place)parse)MissingSection)DEFAULT_CONFIGConfigCommentsAboveDictstraightfromCommentsDictr   r   nestedabovecontentsreturnc                     d| v ryd| v ryy)Nz

 )r   s    M/var/www/html/content_weaver/venv/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_liner+   '   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*   r,   s     r    import_typer9   5   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_syntaxrN   B   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   r>   r    )rU   rT      )"""'''   #;c              3   <   K   | ]  }|j                           y wN)strip).0parts     r    	<genexpr>zskip_line.<locals>.<genexpr>t   s     >dTZZ\>s   r3   r1   T)boollenrH   r8   )	r*   rO   rP   rQ   rR   should_skip
char_index
long_quotera   s	            r    	skip_linerh   Q   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__liststr__annotations__intdictr   setr   r"   r    rj   rj      s    3i9$T#Y''CH~%d3S	>**++#tCH~%&&((MIXr"   rj   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  rm||   }|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 ]Z  }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%       }!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(  ru|,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d4       |6r|6|vrta        =|65      ||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d6nd d6jI                  |#       |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|d7   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	        |d7   d   jQ                  =g             z  }=>vrt        <fd8|,D              >=<   n>=   jm                  <=>fd9|,D               |#r|-|-jG                  |#       |,s
|,d   s
d:|!j/                  |,d         d   v s
|jo                  =       
|#r|-|-jG                  |#       g }#|,D ]R  }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|d7   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	        |d7   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(  r9t_        d1|2 d2| d3d4       |jS                  dt               t               d       |6r|6|vrta        |2|65      |.||6   |   jQ                  |2d$      z  }.|.||6   |   |2<   U ] ||k  rmt	        |      |z
  };tq        ||||	|
||||;|||j                   ||<      S c c}w c c}$w c c}+w )=z9Parses a python file taking out and categorizing imports.)r   r   rV   r   )FindersManager)r,   r   r   r   )rO   rP   rQ   zisort:imports-r[   zisort: imports-rY   rX   rB   r   r/   r0   r?   r@   r\   r&   rZ   z as r>   )z importz cimportr1   zimport(zimport (r   r2   z	 cimport Tz import FNrE   rD   rG   rF   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?)
stacklevel)import_modulesectionz; r   c              3   *   K   | ]
  }||v f  y wr^   r   )r`   moduledirect_importss     r    rb   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)r`   r   r   import_fromroots     r    rb   z file_contents.<locals>.<genexpr>  s;      -"  k!2!6!6vu!E!aSaIab-s   '*rA   zelse-type place_module for )rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   )9line_endingr!   
splitlinesappendrd   old_findersdeprecated.findersr   findr   r   r   r   r|   r   r   rv   forced_separater   rh   rQ   section_comments_endr8   rH   upperlstripfloat_to_topr_   r6   r7   r+   r9   parse_commentsrN   r)   extendrJ   rP   rI   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addrj   )?r   r,   ru   rk   	out_linesrt   r   finder
line_countrn   ro   rp   rq   rw   r   rr   rx   rP   rm   rO   r*   statement_indexskipping_linelstripped_linecommentlessstarting_lineend_of_line_comment
statements	statementr#   type_of_import	raw_linesnested_commentsr:   commentcommentsra   
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lastrs   r   r   r   s?                                                               @@@r    file_contentsr      ss    ,,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QuQRyQ! )7==? T4(00t<L 
 48)!"-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RS^_ .9$LL8J)KLM ,, *2L)Q.+?+I+T+T#R,( (<'?'?QQS'T$+,5ET2,NtyyYaObNcd )a9  "H 2 :)=f)E)P)PQ\^`)a&y>Ca$81$<<5>9R=//1BD, $e 4 $e 4,D8-T9 & A A JJL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 JJL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* 1UFCK,Z8@#%9~L"a(@1(DD9By}335 OOC0$(MM%$8$(MM%$8 0 < 1 =$*$E$E $

F4Q4Q Q09*EPPQWY[\cc !9==#4  )'0}';';'=') !OOC0$(MM%$8$(MM%$8 0 < 1 =$*$E$E $

F4Q4Q 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Bc1UY}	Ua *
^ y>$77L'!#+1!/%%' O
 D& cHs   AG
8AG AG<)AG)T)(__doc__r'   collectionsr   r   	functoolsr   	itertoolsr   typingr   r   r	   r
   warningsr   rV   r   r   r   r   
exceptionsr   settingsr   r   r   r}   r   r   r!   tupler+   r9   rN   r   rc   rh   rj   r   r   r"   r    <module>r      st   L 	 0   < <   - & ,!$sCx.$sCx.Q cNS#X38n&		
LC C S U38_  -; 
c 
6 
sTz 
A A A( +5
+5+5 +5 CHo	+5
 +5 49+5\J " 3A IC I I] Ir"   