
    YjEc                        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
rH 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'dS )&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dS d| v rdS dS )Nz

 )r   s    O/var/www/app.qaans.com/backend/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_liner+   '   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*   r,   s     r    import_typer9   5   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_syntaxrN   B   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   r>   r    )rU   rT      )"""'''   #;c              3   >   K   | ]}|                                 V  d S Nstrip.0parts     r    	<genexpr>zskip_line.<locals>.<genexpr>t   s*      >>dTZZ\\>>>>>>r"   r3   r1   T)boollenrH   r8   )	r*   rO   rP   rQ   rR   should_skip
char_index
long_quoterc   s	            r    	skip_linerj   Q   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__liststr__annotations__intdictr   setr   r"   r    rl   rl      s        3i9$$$T#Y''''CH~%%%d3S	>**++++#tCH~%&&&&((((MMMIXr"   rl   c                 )  9:; |j         pt          |           }|                                 }| r| d         dv r|                    d           g }t	          |          }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 ]}t5          |          \  }}t7          ||          pd}|g}|s|                    |           B|dk    r|dz
  }i }t9          |          \  } }!|!r|!gng }"d t;          |                                                               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     rt9          ||                   \  }}$|dz  }|$r|"                    |$           t;          |                                          }%|dk    r'|%r%d|%                    dd          vr|$r|"d         ||%<   | ||z   z  } |                    |           |                    d          d                                                             d          s||k     nU|                                                    d          r-t9          ||                   \  }}$|                                }|dz  }|$r|"                    |$           d|                    d          d         v rd|                    d          d         vr||k     rt;          |                                          }%|dk    r'|%r%d|%                    dd          vr|$r|"d         ||%<   | ||z   z  } |                    |           |                    d          d                                                             d          s||k     rt9          ||                   \  }}$|dz  }|$r|"                    |$           t;          |                                          }%|dk    r'|%r%d|%                    dd          vr|$r|"d         ||%<   | ||z   z  } |                    |           |                    d          d                                                             d          s||k     t;          |                                          }%|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&                   } d' t;          |                                           D             })d&}*|)dd&         9d#}+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   }/|)|.dz            }09"                    |-           9"                    |0           9"                    d(           |-|0k    r|j#        rn1|0|
d         |/         vr!|
d         |/                             |0           |- d|0 }1|$                    |1          }2|2rK|2|d*         %                    |,i           |1<   |2|"v r(|"&                    |"!                    |2                     nU|)|.dz
           }/|)|.dz            }0|/|0k    r|j#        rn1|0|
d+         |/         vr!|
d+         |/                             |0           |"r|*|-r'|j'        r |d         %                    |, d,g           }*nj|dk    s&|j#        r<|0|/                    d)          d         k    r|d+         %                    |/g           }*n!|d+         %                    |/ d|0 g           }*|)|.|.dz   = d(|)v %|dk    r|)&                    d          : |:          }3|j(        r|j)        stU          d-: d.|3            n"|j(        r|                    d-: d.|3            |3dk    rtW          d/: d0| d1d2           |3r|3|vrtY          :|33          ||3         |         ;|)D ]d}4|$                    |4          }2|2rK|2|d*         %                    :i           |4<   |2|"v r(|"&                    |"!                    |2                     e|j-        ry|"rw|*ut	          |)          dk    rb|d*         %                    :i           }5|5$                    |)d         d          }6|6 |6rd4nd d4                     |"           |5|)d         <   g }"|"r|*|d         %                    :g           }*t	          |          t]          |d          dz
  k    r|r|d                                         nd}7|7                    d          r&|7                    d          s|7                    d          sd
|7vrd|7vr|j/        s|7                                |j0        vr|d5         d         %                    :g           1                    d|&                    d                     |r|d                                         }7nd}7|7                    d          rT|7                    d          s?|7                    d          s*d
|7vr&d|7vr"|j/        s|7                                |j0        v|dz
  |k    r2|t	          |d5         d         $                    :g                     z  }:;vrt          9fd6|)D                       ;:<   n);:         2                    9:;fd7|)D                        |"r|*|*                    |"           |)r@|)d         r8d8|                     |)d                   d         v r|3                    :           "|"r|*|*                    |"           g }"|)D ]}/|"r|"|d+         |/<   g }"t	          |          t]          |dd          dz
  k    r|r|d                                         nd}7|7                    d          r&|7                    d          s|7                    d          sd
|7vrd|7vr|j/        s|7                                |j0        vr|d5         d+         %                    |/g           1                    d|&                    d                     |r|d                                         }7nd}7|7                    d          rT|7                    d          s?|7                    d          s*d
|7vr&d|7vr"|j/        s|7                                |j0        v|dz
  |k    r2|t	          |d5         d+         $                    |/g                     z  } ||/          }3|j(        r|j)        stU          d9|/ d.|3            n"|j(        r|                    d9|/ d.|3            |3dk    rItW          d/|/ d0| d1d2           |%                    dt                      t                      d           |3r|3|vrtY          |/|33          |+||3         |         $                    |/d%          z  }+|+||3         |         |/<   ||k     t	          |          |z
  }8ti          |||||	|
|||8|||j        ||:          S );z9Parses a python file taking out and categorizing imports.)r   r   rV   )r,   r   r   r   r   )rO   rP   rQ   zisort:imports-r[   zisort: imports-rY   rX   rB   r   r/   r0   r?   r@   r\   c                 6    g | ]}|                                 S r   r_   )rb   r*   s     r    
<listcomp>z!file_contents.<locals>.<listcomp>  s     CCC4$**,,CCCr"   c                     g | ]}||S r   r   ra   s     r    r   z!file_contents.<locals>.<listcomp>  s    bbb4]ab$bbbr"   r&   rZ   z as r>   )z importz cimportr1   zimport(zimport (r   r2   z	 cimport Tz import FNc                 b    g | ],}|                     d d                               dd          -S )rE   rD   rG   rF   )r)   )rb   items     r    r   z!file_contents.<locals>.<listcomp>x  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?)
stacklevel)import_modulesectionz; r   c              3   $   K   | ]
}||v fV  d S r^   r   )rb   moduledirect_importss     r    rd   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)rb   r   r   import_fromroots     r    rd   z file_contents.<locals>.<genexpr>   s\       - -"  k!2!6!6vu!E!E!aSaIab- - - - - -r"   rA   zelse-type place_module for )rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   )5line_endingr!   
splitlinesappendrf   r   r   r   r   r~   r   r   rx   forced_separater   rj   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addrl   )<r   r,   rw   rm   	out_linesrv   finder
line_countrp   rq   rr   rs   ry   r   rt   rz   rP   ro   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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lastru   r   r   r   s<                                                            @@@r    file_contentsr      s2    ,O0Eh0O0ON""$$H HRLL00Ih--U\&111F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QuQRRyQ! ! (77==??  L
 48)!""-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RS^_ .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 )a9  "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 : JJLL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 : JJLL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* /U /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 !> $

F4Q 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 !> $

F4Q 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'QRXZ_'`'``OETGM*>:6BB_/Uy
 *

Z y>>$77L'!#+1!/%%'   r"   )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   re   rj   rl   r   r   r"   r    <module>r      s   L L 				 0 0 0 0 0 0 0 0             < < < < < < < < < < < <             - - - - - - & & & & & & , , , , , , , , !	$sCx.$sCx.QQ  9cNS#X38n&		
 	
 LC C    S U38_     -; 
 
c 
6 
sTz 
 
 
 
A A A A A A( +5 +5
+5+5 +5 CHo	+5
 +5 49+5 +5 +5 +5\    J   ( 3A B BC B B] B B B B B Br"   