+
    UBii                       ^ RI Ht ^ RIt^ RIt^ RIt^ RIHtHtH	t	 ^ RI
Ht ^ RIHtHtHtHt ^ RIHt ^ RIt^RIHt ^RIHt ^R	IHt ^R
IHt ^RIHt ^RIHt ]P@                  '       d   ^ RI!t!^ RI"H#t#  ! R R]4      t$R R lt%] ! R R4      4       t&] ! R R4      4       t' ! R R]4      t( ! R R]4      t) ! R R]4      t* ! R R]4      t+ ! R R]4      t, ! R  R!]4      t- ! R" R#4      t.R$ R% lt/R& R' lt0R( R) lt1R# )*    )annotationsN)ConfigParserMissingSectionHeaderErrorParsingError)deepcopy)	dataclassfieldfieldsasdict)Path)mparser)MesonException)AstConditionLevel)
RawPrinter)FullAstVisitor)build_filename)Literalc                  T   a  ] tR t^tRR V 3R llltR V 3R lltR	R R lltRtV ;t# )
DefaultConfigParserc                   V ^8  d   QhRR/# )   
delimiterszT.Tuple[str, ...] )formats   "7/usr/lib/python3.14/site-packages/mesonbuild/mformat.py__annotate__ DefaultConfigParser.__annotate__   s     D D#4 D    c                	*   < \         SV `  VR R7       R # )N)r   interpolation)super__init__)selfr   	__class__s   &&r   r"   DefaultConfigParser.__init__   s    JdCr   c                    V ^8  d   QhRRRR/# )r   filenamer   returnNoner   )r   s   "r   r   r       s     c cT cd cr   c                	  < VP                  4       '       g   \        R V R24      h \        SV `  VRR7       R#   \         d;    T P                  RT P                   R2TP                  RR7      ,           4        R# i ; i)zConfiguration file z
 not foundutf-8encoding[z]
N)existsr   r!   readr   read_stringdefault_section	read_text)r#   r'   r$   s   &&r   read_default DefaultConfigParser.read_default    s~       #6xj
!KLL	cGLGL4( 	cq!5!5 6c:X=O=OY`=O=aab	cs   ; AB ?B c               (    V ^8  d   QhRRRRRRRR/# )r   sectionstrkeyfallbackT.Optional[str]r(   r   )r   s   "r   r   r   (   s)      c   Ra r   c                	|    V P                  WVR 7      pV'       d!   VP                  R4      P                  R4      pV# )r:   "')getstrip)r#   r7   r9   r:   values   &&&& r   getstrDefaultConfigParser.getstr(   s5    !%'!JKK$**3/Er   r   ))=:N)	__name__
__module____qualname____firstlineno__r"   r4   rC   __static_attributes____classcell__r$   s   @r   r   r      s%    D Dc c r   r   c               $    V ^8  d   QhRRRRRR/# )r   r'   r8   patternr(   boolr   )r   s   "r   r   r   /   s!     & & &s &t &r   c                  aa ^ o. oR VV3R llpVP                  RR4      p\        P                  ! RRV4      p\        P                  ! RRV4      p\        P                  ! RR	V4      p\        P                  ! R
RV4      p\        P                  ! RW#4      pVP                  R4      '       d
   RV,           pVR,          p\        P                  ! W04      pVf   R# \        S4       FP  p \        VRV^,            2,          4      pSV,          ^ ,          Tu;8:  d   SV,          ^,          8:  g   M  R# KR  	  R#   \         d      R# i ; i)z.recursive glob match for editorconfig sectionsc                    V ^8  d   QhRRRR/# )r   mzre.Matchr(   r8   r   )r   s   "r   r    match_path.<locals>.__annotate__4   s     	7 	7 	7S 	7r   c                   < R V ^,          9   dO   S^,          oV ^,          P                  R 4      w  rSP                  \        V4      \        V4      34       RS R2# \        P                  ! \
        V ^,          P                  RR4      4      # )z\.\.z(?P<numz
>-?[0-9]+),|)splitappendintTcastr8   replace)rT   lowhighindex
num_rangess   &  r   curl_replace match_path.<locals>.curl_replace4   sx     qtQJE!

8,ICs3xT34UG:..66#qt||C566r   .z\.z	(?<!\\)\?z(?<![\\\*])\*(?!\*)z([^/]*)z(?<!\\)\*\*z(.*)z(?<!\\)\[!(.*?[^\\])\]z([^\1])z(?<!\\)\{(.*?[^\\])}/^$FnumT)r^   resub
startswithsearchranger[   
ValueError)	r'   rP   rc   
pattern_rerT   ivalra   rb   s	   &&     @@r   
match_pathrs   /   s*   E,.J	7 	7 e,Jc:6J.	:FJ
;J1:zJJ/JJ#:%
#J
		*'Ay5\	a#acUn%Ca=#s>jmA.>> ?    		s   .A	E  EEc                     ] tR t^Xt$ ]! RR]P                  /R7      tR]R&   ]! RR]P                  /R7      t
R]R&   ]! RR]P                  /R7      tR]R&   ]! RR]P                  /R7      tR	]R
&   ]! RR]P                  /R7      tR]R&   ]! RR]P                  /R7      tR]R&   ]! RR]P                  /R7      tR]R&   ]! RR]P                  /R7      tR]R&   RtR# )EditorConfigNgetterdefaultmetadataz#T.Optional[Literal['space', 'tab']]indent_styleT.Optional[int]indent_size	tab_widthz'T.Optional[Literal['lf', 'cr', 'crlf']]end_of_linezKT.Optional[Literal['latin1', 'utf-8', 'utf-8-bom', 'utf-16be', 'utf-16le']]charsetT.Optional[bool]trim_trailing_whitespaceinsert_final_newlinez(T.Optional[T.Union[Literal['off'], int]]max_line_lengthr   )rH   rI   rJ   rK   r	   r   r@   rz   __annotations__getintr|   r}   r~   r   
getbooleanr   r   r   rL   r   r   r   ru   ru   X   s    9>dV^`s`w`wUx8yL5y#(K^KeKe@f#gKg!&txI\IcIc>d!eIe;@YacvczczX{;|K8|[`im  zB  DW  D[  D[  y\  \]GX  ]16txYlYwYwNx1y.y-248UhUsUsJt-u*u@Ed^fh{hh  ^A  ABO=  Br   ru   c                     ] tR t^et$ ]! RR]P                  R^P/R7      tR]R&   ]! RR]P                  RR/R7      t
R]R	&   ]! RR]P                  RR
/R7      tR]R&   ]! RR]P                  RR
/R7      tR]R&   ]! RR]P                  RR
/R7      tR]R&   ]! RR]P                  RR
/R7      tR]R&   ]! RR]P                  RR/R7      tR]R&   ]! RR]P                  RR/R7      tR]R&   ]! RR]P                  RR/R7      tR]R&   ]! RR]P                  RR/R7      tR]R&   ]! RR]P                  R^/R7      tR]R&   ]! RR]P                  RR/R7      tR]R&   ]! RR]P                  RR
/R7      tR]R&   ]! RR]P                  RR
/R7      tR]R&   ]R R l4       tR R ltR  R! lt]R" R# l4       tR$tR# )%FormatterConfigNrv   rx   rw   r{   r   z    r;   	indent_byFr   space_arraykwargs_force_multiline
wide_colonno_single_comma_functionnativez1T.Optional[Literal['cr', 'lf', 'crlf', 'native']]r~   z  indent_before_commentsTsimplify_string_literalsr   r}   
sort_filesgroup_arg_valueuse_editor_configc                   V ^8  d   QhRR/# )r   r(   r   r   )r   s   "r   r   FormatterConfig.__annotate__   s       r   c                	    \        V 4       Uu/ uF   qP                  VP                  R ,          bK"  	  ppV ! R/ VB # u upi )rx   r   )r
   namery   )clsfdefaultss   &  r   rx   FormatterConfig.default   s<    ;A#;G;aFFAJJy11;GX Hs   &>c                    V ^8  d   QhRRRR/# )r   configr   r(   r   )r   s   "r   r   r      s      _  r   c                    \        V 4      p\        V4      P                  4        F  w  r4Vf   K  \        W#V4       K  	  V# )z.Returns copy of self updated with other config)r   r   itemssetattr)r#   r   
new_configr9   rB   s   &&   r   updateFormatterConfig.update   s<    d^
 ...0JC 
/ 1 r   c                    V ^8  d   QhRRRR/# )r   editorconfigru   r(   r   r   )r   s   "r   r   r      s      l  r   c                j   \        V 4      pVP                  R8X  d&   VP                  ;'       g    ^pVR,          Vn        MCVP                  R8X  d	   RVn        M*VP                  '       d   VP                  R,          Vn        VP                  R8X  d	   ^ Vn        M,VP                  '       d   \        VP                  4      Vn        VP                  '       d   VP                  Vn        VP                  '       d   VP                  Vn        VP                  '       d   VP                  Vn        V# )z.Returns copy of self updated with editorconfigspace tab	off)	r   rz   r|   r   r   r[   r~   r   r}   )r#   r   r   r|   s   &&  r   with_editorconfig!FormatterConfig.with_editorconfig   s    $$$/&2277aK*S0F&&%/#F%%%+77#=F''50%&F")))%()E)E%FF"###!-!9!9F,,,*6*K*KF'!!!+55Fr   c                   V ^8  d   QhRR/# )r   r(   r;   r   )r   s   "r   r   r      s       r   c                	x    V P                   R 8X  d   R# V P                   R8X  d   R# V P                   R8X  d   R# R# )crlfz
lf
crN)r~   r#   s   &r   newlineFormatterConfig.newline   s8    v%t#t#r   r   )rH   rI   rJ   rK   r	   r   r   r   r   rC   r   r   r   r   r   r   r~   r   r   r   r}   r   r   r   classmethodrx   r   r   propertyr   rL   r   r   r   r   r   e   s    (-/66R(O_ 
 "'/66V"I 
 %*/::U%K! 
 05/::U0, 
 $)/::U$J  
 27/::U2.  FK/66XFKB 
 /4/66T/O 
 27/::T2. 
 .3/::T.* 
 "'/66Q"I  $)/::T$J  
 )./::U)O% 
 +0/::U+'   4  r   r   c                  F   a  ] tR t^tR R ltR R ltR V 3R lltRtV ;t# )MultilineArgumentDetectorc                   V ^8  d   QhRR/# r   r   r   r   )r   s   "r   r   &MultilineArgumentDetector.__annotate__   s     " " "r   c                	     Wn         R V n        R# )FNr   is_multiliner#   r   s   &&r   r"   "MultilineArgumentDetector.__init__   s    !r   c                    V ^8  d   QhRRRR/# r   nodemparser.BaseNoder(   r)   r   )r   s   "r   r   r      s     % %/ %D %r   c                	    VP                   '       d%   R VP                   P                  9   d
   RV n        R# \        V\        P
                  4      '       d   VP                  '       d
   RV n        R# R# R# )#TN)whitespacesrB   r   
isinstancer   
StringNoder#   r   s   &&r   
enter_node$MultilineArgumentDetector.enter_node   sX    t'7'7'='= = $Dg0011d6G6G6G $D 7H1r   c                    V ^8  d   QhRRRR/# r   r   zmparser.ArgumentNoder(   r)   r   )r   s   "r   r   r      s     ) )'; ) )r   c                	R  < VP                   '       d   R V n         \        V4      pV'       d"   V\        VP                  4      8X  d   R V n         V P                   '       d   R# V P                  P                  '       d   VP
                  '       d   R V n         \        SV `  V4       R# TN)r   lencommasr   r   kwargsr!   visit_ArgumentNode)r#   r   nargsr$   s   && r   r   ,MultilineArgumentDetector.visit_ArgumentNode   sw     $DD	Uc$++.. $D;;---$+++ $D"4(r   r   )	rH   rI   rJ   rK   r"   r   r   rL   rM   rN   s   @r   r   r      s    "%) )r   r   c                  :    ] tR tRtR R ltR R ltR R ltRtR	# )
MultilineParenthesesDetectori  c                   V ^8  d   QhRR/# )r   r(   r)   r   )r   s   "r   r   )MultilineParenthesesDetector.__annotate__  s     I I$ Ir   c                	    R V n         R # rG   last_whitespacesr   s   &r   r"   %MultilineParenthesesDetector.__init__  s
    DHr   c                    V ^8  d   QhRRRR/# r   r   )r   s   "r   r   r     s     % %/ %D %r   c                	    R V n         R # rG   r   r   s   &&r   r   'MultilineParenthesesDetector.enter_node  s
     $r   c                    V ^8  d   QhRRRR/# r   r   )r   s   "r   r   r     s     5 5. 54 5r   c                	    VP                   '       d2   VP                   P                  '       d   VP                   V n        R # R # R # rG   )r   rB   r   r   s   &&r   	exit_node&MultilineParenthesesDetector.exit_node  s5     0 0 6 6 6$($4$4D! !7r   r   N)rH   rI   rJ   rK   r"   r   r   rL   r   r   r   r   r     s    I%5 5r   r   c                    a  ] tR tRtR R ltR R ltR R ltR R	 ltR
 R ltR R lt	R?R R llt
R R ltR R ltR R ltR R ltR V 3R lltR R ltR V 3R lltR V 3R lltR  V 3R! lltR" V 3R# lltR$ V 3R% lltR& R' ltR( V 3R) lltR* V 3R+ lltR, V 3R- lltR. V 3R/ lltR0 V 3R1 lltR2 V 3R3 lltR4 V 3R5 lltR6 V 3R7 lltR8 V 3R9 lltR: V 3R; llt R< R= lt!R>t"V ;t## )@TrimWhitespacesi  c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   TrimWhitespaces.__annotate__  s     " " "r   c                	<    Wn         R V n        ^ V n        RV n        R# )F N)r   in_block_commentsin_argumentsindent_commentsr   s   &&r   r"   TrimWhitespaces.__init__  s    !&!r   c                    V ^8  d   QhRRRR/# r   r   )r   s   "r   r   r     s     & &'7 &D &r   c                	^    V P                  V4       VP                  P                  V 4       R # rG   )r   r   acceptr   s   &&r   visit_default_func"TrimWhitespaces.visit_default_func  s"    %r   c                    V ^8  d   QhRRRR/# r   r   )r   s   "r   r   r     s     D D/ DD Dr   c                	&   \        V\        P                  4      '       d   R # VP                  '       g]   \        P                  ! \        P                  ! RVP
                  ^ ^ ^ RR4      4      Vn        VP                  VP                  n        R # R # )N
whitespacer   r   r   )r   r   WhitespaceNoder   Tokenr'   condition_levelr   s   &&r   r   TrimWhitespaces.enter_node  sq    dG2233&55gmmLRVR_R_abdeghjprt6uvD/3/C/CD,  r   c                    V ^8  d   QhRRRR/# r   r   )r   s   "r   r   r   %  s      . 4 r   c                	    R # rG   r   r   s   &&r   r   TrimWhitespaces.exit_node%  s    r   c               $    V ^8  d   QhRRRRRR/# )r   	from_noder   to_noder(   r)   r   )r   s   "r   r   r   (  s$     ) )*: )EU )Z^ )r   c                	   VP                   P                  VP                   P                  ,           VP                   n        VP                   P                  VP                   n        R Vn         VP                   P                  V 4       R # rG   )r   rB   is_continuationr   )r#   r  r  s   &&&r   move_whitespaces TrimWhitespaces.move_whitespaces(  sc    $-$9$9$?$?'BUBUB[B[$[!.7.C.C.S.S+ $	""4(r   c                    V ^8  d   QhRRRR/# r   r   )r   s   "r   r   r   .  s     ) )$4 ) )r   c                	    VP                   P                  '       g   R VP                   n        R# RVP                   P                  9  d   R VP                   n        R# R# )r   r   Nr   rB   r   s   &&r   add_space_afterTrimWhitespaces.add_space_after.  sI    %%%%(D"((...%(D" /r   c               $    V ^8  d   QhRRRRRR/# )r   r   r   forcerQ   r(   r)   r   )r   s   "r   r   r   4  s"     + +!1 +$ +4 +r   c                	   VP                   P                  '       g   R VP                   n        R# V'       dS   VP                   P                  P                  R 4      '       g&   VP                   ;P                  R ,          un        R# R# R# )r   N)r   rB   endswith)r#   r   r  s   &&&r   add_nl_afterTrimWhitespaces.add_nl_after4  s`    %%%%)D"4++11::4@@""d*" AUr   c                    V ^8  d   QhRRRR/# )r   rB   r8   r(   r   )r   s   "r   r   r   :  s      C C r   c                	    VP                  V P                  P                  4      '       d$   VR \        V P                  P                  4      )  pV# rG   )r  r   r   r   )r#   rB   s   &&r   dedentTrimWhitespaces.dedent:  s?    >>$++//006C 5 5667Er   c                    V ^8  d   QhRRRR/# r   r   )r   s   "r   r   r   ?  s     * *#7 *D *r   c                	R   a R  V3R llpSP                   P                  VR7       R# )c                    V ^8  d   QhRRRR/# )r   argr   r(   r8   r   )r   s   "r   r   4TrimWhitespaces.sort_arguments.<locals>.__annotate__A  s     	. 	.* 	.s 	.r   c                v   < \        V \        P                  4      '       d   V P                  # \	        SR R4      # )rB   r   )r   r   r   	raw_valuegetattr)r  r   s   &r   sort_key0TrimWhitespaces.sort_arguments.<locals>.sort_keyA  s/    #w1122}}$4"--r   )r9   N)	argumentssort)r#   r   r!  s   &f r   sort_argumentsTrimWhitespaces.sort_arguments?  s$    	. 	.
 	)r   c                    V ^8  d   QhRRRR/# r   r   zmparser.EmptyNoder(   r)   r   )r   s   "r   r   r   H  s     ' '$5 '$ 'r   c                	z    V P                  V4       R V n        VP                  P                  V 4       RV n        R# TFN)r   r   r   r   r   s   &&r   visit_EmptyNodeTrimWhitespaces.visit_EmptyNodeH  s2    !%%!&r   c                    V ^8  d   QhRRRR/# r   r   zmparser.WhitespaceNoder(   r)   r   )r   s   "r   r   r   N  s     4 4)? 4D 4r   c                	J   VP                   P                  R R7      pRVn         V P                  pV Uu. uF  pRV9   NK
  	  upR.,           p\        V4       EF:  w  rdVP	                  R4      pVP                  4       pVP                  R4      '       d"   V;P                   R,          un         R Vn        MpVP                  R4      '       dZ   V'       g/   V;P                   V P                  P                  ,          un         M#V;P                   V P                  ,          un         V;P                   V,          un         V'       dI   V'       g(   WV^,           ,          '       g   V P                  '       g   V;P                   R,          un         R pEK=  	  VP                   P	                  R4      '       dg   V;P                   V P                  ,          un         VP                  '       d0   V;P                   V P                  P                  ,          un         R# R# R# u upi )	Tkeependsr   r   Fr   \r   N)rB   
splitlinesr   	enumerater  rA   rl   r  r   r   r   r   r   )r#   r   linesr   linewith_commentsrq   has_nls   &&      r   visit_WhitespaceNode$TrimWhitespaces.visit_WhitespaceNodeN  st   

%%t%4
 2216775'A 'GA]]4(F::<Dt$$

c!
'+$%%(JJ$++"D"DDJJJ$"6"66JJJ$J4=1#5#5T=N=N=N

d"
 $ ( ::t$$JJ$...J###

dkk333
 $ %! 8s   H c                    V ^8  d   QhRRRR/# )r   r   zmparser.SymbolNoder(   r)   r   )r   s   "r   r   r   g  s     & &%7 &D &r   c                	   < \         SV `  V4       VP                  R 9   d-   VP                  P                  R8X  d   RVP                  n        VP                  P	                  V 4       R# )z([{r   r   N)r!   visit_SymbolNoderB   r   r   r#   r   r$   s   &&r   r=   TrimWhitespaces.visit_SymbolNodeg  sQ     &::4#3#3#9#9T#A%'D"%r   c                    V ^8  d   QhRRRR/# r   r   zmparser.StringNoder(   r)   r   )r   s   "r   r   r   m  s     & &%7 &D &r   c                	  a V P                  S4       V P                  P                  '       d   SP                  '       d]   \        ;QJ d    V3R  lR 4       F  '       g   K   RM	  RM! V3R  lR 4       4      '       g   RSn        SP                  4       Sn        SP                  '       d   RSP                  9  d   RSn        SP                  P                  V 4       R# )c              3  @   <"   T F  qSP                   9   x  K  	  R # 5irG   )rB   ).0xr   s   & r   	<genexpr>3TrimWhitespaces.visit_StringNode.<locals>.<genexpr>q  s     ,Rk$**_ks   TF@N)r   r?   )
r   r   r   r   anyescaperB   
is_fstringr   r   r   s   &fr   visit_StringNode TrimWhitespaces.visit_StringNodem  s    ;;///   ,Rk,R,Rk,R)R)R$)!![[]
3djj#8"'%r   c                    V ^8  d   QhRRRR/# )r   r   zmparser.UnaryOperatorNoder(   r)   r   )r   s   "r   r   r   z  s     0 0,E 0$ 0r   c                	^   < \         SV `  V4       V P                  VP                  V4       R # rG   )r!   visit_UnaryOperatorNoder  rB   r>  s   &&r   rP  'TrimWhitespaces.visit_UnaryOperatorNodez  s$    '-djj$/r   c                    V ^8  d   QhRRRR/# )r   r   zmparser.NotNoder(   r)   r   )r   s   "r   r   r   ~  s     0 0/ 0d 0r   c                	   < \         SV `  V4       VP                  P                  P                  '       g   R VP                  P                  n        V P                  VP                  V4       R# r   N)r!   rP  operatorr   rB   r  r>  s   &&r   visit_NotNodeTrimWhitespaces.visit_NotNode~  sL    '-}}((....1DMM%%+djj$/r   c                    V ^8  d   QhRRRR/# )r   r   zmparser.BinaryOperatorNoder(   r)   r   )r   s   "r   r   r     s     0 0-G 0D 0r   c                	   < \         SV `  V4       V P                  VP                  4       V P                  VP                  4       V P                  VP                  V4       R # rG   )r!   visit_BinaryOperatorNoder  leftrU  r  rightr>  s   &&r   rZ  (TrimWhitespaces.visit_BinaryOperatorNode  sH    (.TYY'T]]+djj$/r   c                    V ^8  d   QhRRRR/# r   r   zmparser.ArrayNoder(   r)   r   )r   s   "r   r   r     s     
< 
<$5 
<$ 
<r   c                	h  < \         SV `  V4       V P                  VP                  V4       VP                  P
                  P                  '       d   R VP                  n        VP                  P                  '       do   VP                  P                  '       gS   V P                  P                  '       d7   V P                  VP                  4       V P                  VP                  4       VP                  P                  '       g)   V P                  VP                  VP                  4       R# R# r   )r!   visit_ArrayNoder  rbracketlbracketr   rB   argsr   r#  r   r   r  r>  s   &&r   ra  TrimWhitespaces.visit_ArrayNode  s    %dmmT2==$$***%)DII"99tyy'='='=$++BYBYBY  /  +yy"""!!$--; #r   c                    V ^8  d   QhRRRR/# r   r   zmparser.DictNoder(   r)   r   )r   s   "r   r   r     s     * *#3 * *r   c                	   < \         SV `  V4       V P                  VP                  V4       VP                  P
                  P                  '       d   R VP                  n        R# R# r   )	r!   visit_DictNoder  rcurllcurlr   rB   rd  r   r>  s   &&r   ri  TrimWhitespaces.visit_DictNode  sK    t$djj$/::!!'''%)DII" (r   c                    V ^8  d   QhRRRR/# )r   r   zmparser.CodeBlockNoder(   r)   r   )r   s   "r   r   r     s     - -(= -$ -r   c                	   V P                  V4       VP                  '       d+   R V n        VP                  P                  V 4       RV n        M?\        P
                  ! \        P                  ! RVP                  ^ ^ ^ RR4      4      Vn        R VP                  n        VP                   F  pVP                  V 4       K  	  V P                  V4       VP                  '       d%   V P                  VP                  R,          V4       MzVP                  P                  VP                  P                  ,           VP                  n        RVP                  n        R V n        VP                  P                  V 4       RV n        VP                  ^ 8X  d0   V P                  P                   '       d   V P#                  VR R7       VP                  V P                  P$                  ,          pV'       d6   VP                  '       d$   VP                  ;P                  V,          un        VP                  RR  F&  pVP                  ;P                  V,          un        K(  	  R# )TFr   r   )r  Nr   )r   pre_whitespacesr   r   r   r   r   r'   block_indentr5  r   r  rB   r   r   r   r   r  r   )r#   r   rq   indentr6  s   &&   r   visit_CodeBlockNode#TrimWhitespaces.visit_CodeBlockNode  s   %)D"  ''-%*D"#*#9#9'--VZVcVcefhiklntvx:y#zD ,0)AHHTN t:::!!$**R.$7%)%9%9%?%?$BRBRBXBX%XD")+D  &%)D"##D)%*D"1$)I)I)Id$/%%(=(==djjj  &&&0&JJsOD""f," $r   c                    V ^8  d   QhRRRR/# )r   r   zmparser.IndexNoder(   r)   r   )r   s   "r   r   r     s     3 3$5 3$ 3r   c                	^   < \         SV `  V4       V P                  VP                  V4       R # rG   )r!   visit_IndexNoder  rb  r>  s   &&r   rw  TrimWhitespaces.visit_IndexNode  s$    %dmmT2r   c                    V ^8  d   QhRRRR/# r   r   zmparser.MethodNoder(   r)   r   )r   s   "r   r   r     s     * *%7 *D *r   c                	   < \         SV `  V4       V P                  VP                  V4       VP                  P
                  P                  '       d   R VP                  n        R# R# r   )	r!   visit_MethodNoder  rparlparr   rB   rd  r   r>  s   &&r   r|   TrimWhitespaces.visit_MethodNode  sK     &dii.99  &&&%)DII" 'r   c                    V ^8  d   QhRRRR/# r   r   zmparser.FunctionNoder(   r)   r   )r   s   "r   r   r     s     * *'; * *r   c                	2  < VP                   P                  R 8X  Ed   V P                  P                  '       d   V P	                  VP
                  4       \        VP
                  P                  4      ^8X  d   VP
                  P                  '       g   VP
                  P                  ^ ,          p\        V\        P                  4      '       db   VP                  P                  '       d5   VP                  P                  P                  P                  4       '       g   VP
                  Vn        \        SV `A  V4       V P#                  VP$                  V4       VP&                  P                  P                  '       d   RVP
                  n        R# R# )filesTN)	func_namerB   r   r   r%  rd  r   r#  r   r   r   	ArrayNoderc  r   rA   r!   visit_FunctionNoder  r}  r~  r   )r#   r   r  r$   s   && r   r  "TrimWhitespaces.visit_FunctionNode  s   >>7*{{%%%##DII.499&&'1,TYY5E5E5Eii))!,c7#4#455<<3333<<;S;S;Y;Y;_;_;a;a$'HH	"4(dii.99  &&&%)DII" 'r   c                    V ^8  d   QhRRRR/# )r   r   zmparser.AssignmentNoder(   r)   r   )r   s   "r   r   r     s     0 0)? 0D 0r   c                	   < \         SV `  V4       V P                  VP                  4       V P                  VP                  4       V P                  VP                  V4       R # rG   )r!   visit_AssignmentNoder  var_namerU  r  rB   r>  s   &&r   r  $TrimWhitespaces.visit_AssignmentNode  sH    $T*T]]+T]]+djj$/r   c                    V ^8  d   QhRRRR/# )r   r   zmparser.ForeachClauseNoder(   r)   r   )r   s   "r   r   r     s     5 5,E 5$ 5r   c                	0  < \         SV `  V4       V P                  VP                  4       V P                  VP                  R,          4       VP
                   F  pV P                  V4       K  	  V P                  VP                  4       VP                  P                  ;P                  VP                  V P                  P                  ,          ,          un	        RVP                  P                  n        V P                  VP                  V4       R# )   TNro  )r!   visit_ForeachClauseNoder  foreach_varnamesr   colonblockr   rB   r   r   r   rq  r  
endforeach)r#   r   commar$   s   && r   r  'TrimWhitespaces.visit_ForeachClauseNode  s    '-T]]+T]]2./[[E  ' !TZZ(

$$(<(<t{{?T?T(TT$.2

+doot4r   c                    V ^8  d   QhRRRR/# )r   r   zmparser.IfClauseNoder(   r)   r   )r   s   "r   r   r     s     ] ]'; ] ]r   c                	  < \         SV `  V4       V P                  VP                  V4       VP                   FK  pVP
                  ;P                  VP                  V P                  P                  ,          ,          un        KM  	  \        VP                  \        P                  4      '       dU   VP                  P
                  ;P                  VP                  V P                  P                  ,          ,          un        R # R # rG   )r!   visit_IfClauseNoder  endififsr   rB   r   r   r   r   	elseblockr   ElseNode)r#   r   if_noder$   s   && r   r  "TrimWhitespaces.visit_IfClauseNode  s    "4(djj$/xxG%%)=)=@U@U)UU%  dnng&6&677NN&&,,0D0Dt{{G\G\0\\, 8r   c                    V ^8  d   QhRRRR/# )r   r   zmparser.IfNoder(   r)   r   )r   s   "r   r   r     s     - - -D -r   c                	  < \         SV `  V4       V P                  VP                  4       R V n        V P                  VP                  V4       RV n        VP                  ^,           VP                  n        R VP                  n	        R# r*  )
r!   visit_IfNoder  if_r   r  r  r   r   rq  r>  s   &&r   r  TrimWhitespaces.visit_IfNode  sm    T"TXX&!%djj$/!&+/+?+?!+C((,%r   c                    V ^8  d   QhRRRR/# )r   r   zmparser.ElseNoder(   r)   r   )r   s   "r   r   r     s     - -#3 - -r   c                	   < \         SV `  V4       R V n        V P                  VP                  V4       RV n        VP
                  ^,           VP                  n        R VP                  n        R# r*  )r!   visit_ElseNoder   r  r  r   r   rq  r>  s   &&r   r  TrimWhitespaces.visit_ElseNode  s[    t$!%djj$/!&+/+?+?!+C((,%r   c                    V ^8  d   QhRRRR/# )r   r   zmparser.TernaryNoder(   r)   r   )r   s   "r   r   r     s     5 5&9 5d 5r   c                	6  < \         SV `  V4       V P                  VP                  4       V P                  VP                  4       V P                  VP
                  4       V P                  VP                  4       V P                  VP                  V4       R # rG   )	r!   visit_TernaryNoder  	conditionquestionmark	trueblockr  r  
falseblockr>  s   &&r   r  !TrimWhitespaces.visit_TernaryNode  sn    !$'T^^,T../T^^,TZZ(doot4r   c                    V ^8  d   QhRRRR/# r   r   )r   s   "r   r   r     s     ( ('; ( (r   c                	  < VP                   '       g@   \        V P                  4      pVP                  V4       VP                   '       d   R Vn         V ;P                  ^,          un        \
        SV `  V4       V ;P                  ^,          un        VP                  '       g0   VP                  '       g   VP                  P                  V 4       R# \        VP                  4      \        VP                  4      \        VP                  4      ,           8H  pV'       d   VP                  R,          pMGVP                  '       d#   VP                  P                  4        F  pK  	  MVP                  R,          pV P                  XV4       VP                   '       g1   RVP                  P                  9  d   RVP                  n        R# R# R# )TNr   r   ro  )r   r   r   r   r   r!   r   r#  r   r   r   r   valuesr  rB   )r#   r   ml_detectorhas_trailing_comma	last_noder$   s   &&   r   r   "TrimWhitespaces.visit_ArgumentNode  sJ      3DKK@KKK$'''$(!Q"4(Q~~~dkkk##D) !-T^^1Ds4;;GW1WWBI[[[![[//1	 2 r*Ii.   S0@0@0F0F%F%'D" &G r   c                    V ^8  d   QhRRRR/# r   r   zmparser.ParenthesizedNoder(   r)   r   )r   s   "r   r   r   -  s     / /,E /$ /r   c                	6   V P                  V4       VP                  P                  '       d.   R VP                  P                  P                  9   d	   RVn        MkVP                  '       gZ   \        4       pVP                  P                  V4       VP                  '       d#   RVP                  P                  9   d   RVn        VP                  '       d.   V ;P                  V P                  P                  ,          un	        VP                  P                  V 4       VP                  P                  V 4       VP                  '       d   V P                  VP                  P                  P                  4      VP                  P                  n        V P                  V P                  4      V n	        V P                  VP                  4       MRVP                  n        VP                  P                  V 4       V P                  VP                  V4       R# )r   Tr   N)r   r~  r   rB   r   r   innerr   r   r   r   r   r  r  r}  r  )r#   r   r  s   && r   visit_ParenthesizedNode'TrimWhitespaces.visit_ParenthesizedNode-  sg   99   SDII,A,A,G,G%G $D"""68KJJk*+++8T8T8Z8Z0Z$(!  DKK$9$99 		

$+/;;tzz7M7M7S7S+TDJJ""(#';;t/C/C#DD djj)%)DJJ"		dii.r   )r   r   r   r   )F)$rH   rI   rJ   rK   r"   r   r   r   r  r  r  r  r%  r+  r9  r=  rL  rP  rV  rZ  ra  ri  rs  rw  r|  r  r  r  r  r  r  r  r   r  rL   rM   rN   s   @r   r   r     s    "&D))+
*'42& &&0 00 00 0
< 
<* *-@3 3* ** *$0 05 5] ]- -- -5 5( (</ /r   r   c                     a  ] tR tRtR R ltR R ltR R ltR R	 ltR
 R ltR R lt	R R lt
R R ltR V 3R lltR R ltR R ltR R ltRtV ;t# )ArgumentFormatteriK  c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   ArgumentFormatter.__annotate__M  s       r   c                	J    Wn         ^ V n        RV n        RV n        ^ V n        R# r   FN)r   levelindent_afteris_function_arguments	par_levelr   s   &&r   r"   ArgumentFormatter.__init__M  s%    
!%*"r   c                    V ^8  d   QhRRRR/# r   r   )r   s   "r   r   r  T  s     ) )$4 ) )r   c                	d    VP                   P                  '       g   R VP                   n        R# R# rT  r  r   s   &&r   r  !ArgumentFormatter.add_space_afterT  s'    %%%%(D" &r   c               $    V ^8  d   QhRRRRRR/# )r   r   r   rr  r[   r(   r)   r   )r   s   "r   r   r  X  s'     x x!1 x3 x4 xr   c                	   VP                   P                  '       d   VP                   P                  R 8X  d   RVP                   n        VP                  V,           V P                  P                  ,          pV'       d]   \
        P                  ! RV P                  P                   R2RV,           VP                   P                  4      VP                   n        R# R# )r   r   z\n(z)*N)r   rB   r   r   r   rj   rk   )r#   r   rr  r   s   &&& r   r  ArgumentFormatter.add_nl_afterX  s    %%%)9)9)?)?3)F%)D"))F2dkk6K6KK	%'VVs4;;3H3H2I,LdU^N^`d`p`p`v`v%wD" r   c                    V ^8  d   QhRRRR/# r_  r   )r   s   "r   r   r  _  s      $5 $ r   c                	T   V P                  V4       VP                  P                  '       d]   V ;P                  ^,          un        VP                  P                  '       d(   V P                  VP                  V P                  R7       VP                  P                  V 4       RV n        VP                  P                  V 4       VP                  P                  '       d   V ;P                  ^,          un        VP                  P                  V 4       V P                  V4       R# r  rr  FN)r   rd  r   r  r#  r  rc  r   r  rb  r   r   s   &&r   ra  !ArgumentFormatter.visit_ArrayNode_  s    99!!!JJ!OJyy"""!!$--

!CT"%*"		99!!!JJ!OJT"tr   c                    V ^8  d   QhRRRR/# rg  r   )r   s   "r   r   r  m  s      #3  r   c                	T   V P                  V4       VP                  P                  '       d]   V ;P                  ^,          un        VP                  P                  '       d(   V P                  VP                  V P                  R7       VP                  P                  V 4       RV n        VP                  P                  V 4       VP                  P                  '       d   V ;P                  ^,          un        VP                  P                  V 4       V P                  V4       R# r  )r   rd  r   r  r   r  rk  r   r  rj  r   r   s   &&r   ri   ArgumentFormatter.visit_DictNodem  s    99!!!JJ!OJyy!!$**TZZ!@

$%*"		99!!!JJ!OJ

$tr   c                    V ^8  d   QhRRRR/# rz  r   )r   s   "r   r   r  {  s      %7 D r   c                	   V P                  V4       VP                  P                  V 4       VP                  P                  ;'       d!    VP                  P                  P                  pV'       d   V ;P
                  ^,          un        VP                  P                  '       dA   V ;P
                  ^,          un        V P                  VP                  V P
                  R7       RV n
        VP                  P                  V 4       VP                  P                  '       d   V ;P
                  ^,          un        V'       d   V ;P
                  ^,          un        V P                  V4       R# r  r  TN)r   source_objectr   r   r  r  rd  r   r  r~  r  r   )r#   r   is_conts   && r   r|  "ArgumentFormatter.visit_MethodNode{  s    !!$'$$00ccT5G5G5S5S5c5cJJ!OJ99!!!JJ!OJdii

;%)"		99!!!JJ!OJJJ!OJtr   c                    V ^8  d   QhRRRR/# r  r   )r   s   "r   r   r    s     	 	'; 	 	r   c                	   V P                  V4       VP                  P                  '       dA   V ;P                  ^,          un        V P	                  VP
                  V P                  R7       RV n        VP                  P                  V 4       VP                  P                  '       d   V ;P                  ^,          un        V P                  V4       R# r  )	r   rd  r   r  r  r~  r  r   r   r   s   &&r   r  $ArgumentFormatter.visit_FunctionNode  s    99!!!JJ!OJdii

;%)"		99!!!JJ!OJtr   c                    V ^8  d   QhRRRR/# r.  r   )r   s   "r   r   r    s     
% 
%)? 
%D 
%r   c                	   VP                   P                  R R7      pV'       Ed$   VP                  V P                  ,           V P                  P
                  ,          pVP                  '       d   RMVP                  ^ 4      Vn         V FS  pRV9   d1   VP                  V4      '       g   V;P                   V,          un         V;P                   V,          un         KU  	  V P                  '       dU   VP                   P                  RV P                  P
                  34      '       d   V;P                   V,          un         R# R# R# R# )Tr0  r   r   r   N)rB   r3  r   r  r   r   rq  poprl   r  r  )r#   r   r5  rr  r6  s   &&   r   r9  &ArgumentFormatter.visit_WhitespaceNode  s    

%%t%45**TZZ74;;;P;PPF#000eiilDJ$;tv'>'>JJ&(J

d"
     TZZ%8%8$@U@U9V%W%W

f$
 &X  r   c                    V ^8  d   QhRRRR/# r   r   )r   s   "r   r   r    s     5 5'; 5 5r   c                	F	  < V P                   p\        SV `	  V4       VP                   F  pV P	                  V4       K  	  V P
                  P                  '       d%   VP                   F  pV P	                  V4       K  	  \        VP                  4      \        VP                  4      ,           pVP                  ;'       d    \        VP                  4      V8H  pVP                  '       Ed   R pV^8X  d$   V'       d   V P
                  P                  '       * pV'       d   V'       g   \        P                  ! \        P                  ! RVP                   ^ ^ ^ RR4      4      pVP"                  Vn        \        P$                  ! \        P                  ! RVP                   ^ ^ ^ RR4      4      Vn        VP                  P)                  V4       M+V'       d$   V'       g   VP                  P+                  R	4       ^ p	V P
                  P,                  '       EdV   VP                  RR	  EFA  p
Rp\/        V
\        P0                  4      '       d   V
P2                  P5                  R4      '       do   V
P2                  R8w  d^   VP                  V	^,           ,          p\/        V\        P0                  4      '       d$   VP2                  P5                  R4      '       g   R pV'       d$   V P	                  VP                  V	,          4       MXV	\        VP                  4      8  d?   V P7                  VP                  V	,          V P8                  V P:                  ,           4       V	^,          p	EKD  	  VP                  V	R	  F/  pV P7                  WP8                  V P:                  ,           4       K1  	  VP                  '       g   VP                  '       d#   V P7                  WP8                  ^,
          4       MV'       dl   VP                  R	,          P&                  '       d.   VP                  R	,          P&                  P2                  '       g   VP                  P+                  R	4       VP                   F  pV P	                  V4       K  	  V P=                  V4       R# )
Tr  rW   r   r   NFz--r   ro  )r  r!   r   colonsr  r   r   r   r   r#  r   r   r   r   
SymbolNoder   r'   r   r   r   rZ   r  r   r   r   rB   rl   r  r  r  r   )r#   r   r  r  r9   arguments_countr  
need_commar  	arg_indexr  
group_argsnext_argr$   s   &&           r   r   $ArgumentFormatter.visit_ArgumentNode  s4    $ : :"4([[E  ' ! ;;!!!{{$$S) # dnn-DKK0@@![[PPS-=-PJ!#(=!%!E!EE
"4**7==$--QRTUWXZ`be+fg(,(<(<%$+$:$:7==W[WdWdfgijlmouwy;z${!""5)#J#I{{***>>#2.C!&J!#w'9'9::syy?S?STX?Y?Y^a^g^gko^o#'>>)a-#@%h0B0BCCHNNLeLefjLkLk)-J!,,T[[-CD"S%55))$++i*@$**t~~B]^NI / Yr2!!%dnn)DE 3~~~!!$

Q7 "4;;r?+F+F+F4;;WY?KfKfKlKlKl#$$U+ % 	tr   c                    V ^8  d   QhRRRR/# r  r   )r   s   "r   r   r    s      ,E $ r   c                	`   V P                  V4       VP                  '       d-   V ;P                  ^,          un        V P                  pRV n        VP                  P                  V 4       VP                  '       d9   V P                  VP                  V P                  V P                  ,           R7       VP                  P                  V 4       VP                  '       d!   V ;P                  ^,          un        XV n        VP                  P                  V 4       V P                  V4       R# )r  Tr  N)r   r   r  r  r~  r   r  r  r  r}  r   )r#   r   current_indent_afters   && r   r  )ArgumentFormatter.visit_ParenthesizedNode  s    NNaN#'#4#4  $D		dii

T^^0KL

$NNaN 4D		tr   c                    V ^8  d   QhRRRR/# )r   r   zmparser.OrNoder(   r)   r   )r   s   "r   r   r    s       D r   c                	   V P                  V4       VP                  P                  V 4       V P                  '       d9   V P	                  VP                  V P
                  V P                  ,           R 7       VP                  P                  V 4       VP                  P                  V 4       V P                  V4       R# r  N	r   r[  r   r  r  r  rU  r\  r   r   s   &&r   visit_OrNodeArgumentFormatter.visit_OrNode  }    		>>>dii

T^^0KLT"

$tr   c                    V ^8  d   QhRRRR/# )r   r   zmparser.AndNoder(   r)   r   )r   s   "r   r   r    s      / d r   c                	   V P                  V4       VP                  P                  V 4       V P                  '       d9   V P	                  VP                  V P
                  V P                  ,           R 7       VP                  P                  V 4       VP                  P                  V 4       V P                  V4       R# r  r  r   s   &&r   visit_AndNodeArgumentFormatter.visit_AndNode  r  r   )r   r  r  r  r  )rH   rI   rJ   rK   r"   r  r  ra  ri  r|  r  r9  r   r  r  r  rL   rM   rN   s   @r   r  r  K  sK    )x"	
%5 5n  r   r  c                     a  ] tR tRtR R ltR R ltR R ltR R	 ltR
 R ltR R lt	R R lt
R R ltR R ltR R ltR R ltR V 3R lltR R ltR R ltR R ltR tV ;t# )!ComputeLineLengthsi  c                    V ^8  d   QhRRRR/# )r   r   r   r  r[   r   )r   s   "r   r   ComputeLineLengths.__annotate__  s     % % %s %r   c                	V    Wn         . V n        ^ V n        . V n        W n        RV n        R# r  )r   lengthslengthargument_stackr  need_regenerate)r#   r   r  s   &&&r   r"   ComputeLineLengths.__init__  s*    $&<>
$r   c                    V ^8  d   QhRRRR/# r   r   )r   s   "r   r   r    s      '7 D r   c                	    V P                  V4       \        VR 4      '       g   Q hV ;P                  \        \	        VP
                  4      4      ,          un        V P                  V4       R# )rB   N)r   hasattrr  r   r8   rB   r   r   s   &&r   r   %ComputeLineLengths.visit_default_func  sH    tW%%%%s3tzz?++tr   c                    V ^8  d   QhRRRR/# )r   r6  r8   r(   r[   r   )r   s   "r   r   r    s        r   c                4   VP                  R4      p\        V^ ,          4      pVR,           Fg  pV P                  V,           V P                  P                  ,          ;'       g    V P                  P                  pW5\        V4      ,           ,          pKi  	  V# )z(Compute line length, including tab stopsr   :r  NN)rY   r   r  r   r}   )r#   r6  partsline_lengthp
tab_lengths   &&    r   r   ComputeLineLengths.len  sx    

4 %(mrA;;48M8MMggRVR]R]RgRgJA..K  r   c                    V ^8  d   QhRRRR/# )r   rB   r8   r(   r)   r   )r   s   "r   r   r    s     . .S .T .r   c                	P   VP                  R R7      pV F  pVP                  R4      '       dL   V P                  P                  V P                  V P                  V4      ,           ^,
          4       ^ V n        Ke  V ;P                  V P                  V4      ,          un        K  	  R# )Tr0  r   N)r3  r  r  rZ   r  r   )r#   rB   r5  r6  s   &&  r   count_multiline"ComputeLineLengths.count_multiline  ss      $ /D}}T""##DKK$((4.$@1$DEtxx~- r   c                    V ^8  d   QhRRRR/# r.  r   )r   s   "r   r   r    s     ) ))? )D )r   c                	<    V P                  VP                  4       R # rG   )r  rB   r   s   &&r   r9  'ComputeLineLengths.visit_WhitespaceNode  s    TZZ(r   c                    V ^8  d   QhRRRR/# r(  r   )r   s   "r   r   r  "  s      $5 $ r   c                	J    V P                  V4       V P                  V4       R # rG   )r   r   r   s   &&r   r+  "ComputeLineLengths.visit_EmptyNode"  s    tr   c                    V ^8  d   QhRRRR/# )r   r   zmparser.NumberNoder(   r)   r   )r   s   "r   r   r  &  s      %7 D r   c                	    V P                  V4       V ;P                  \        VP                  4      ,          un        V P	                  V4       R # rG   )r   r  r   r  r   r   s   &&r   visit_NumberNode#ComputeLineLengths.visit_NumberNode&  s1    s4>>**tr   c                    V ^8  d   QhRRRR/# rA  r   )r   s   "r   r   r  +  s      %7 D r   c                	   V P                  V4       VP                  '       d   V ;P                  ^,          un        VP                  '       dO   V ;P                  ^,          un        V P	                  VP
                  4       V ;P                  ^,          un        M9V ;P                  V P                  VP                  4      ^,           ,          un        V P                  V4       R# )r  N)	r   rK  r  r   r  rB   r   r  r   r   s   &&r   rL  #ComputeLineLengths.visit_StringNode+  s    ???KK1KKK1K  ,KK1KKK488DNN3a77Ktr   c                    V ^8  d   QhRRRR/# )r   r   zmparser.ContinueNoder(   r)   r   )r   s   "r   r   r  9  s      ';  r   c                	    V P                  V4       V ;P                  \        R 4      ,          un        V P                  V4       R# )continueNr   r  r   r   r   s   &&r   visit_ContinueNode%ComputeLineLengths.visit_ContinueNode9  s,    s:&tr   c                    V ^8  d   QhRRRR/# )r   r   zmparser.BreakNoder(   r)   r   )r   s   "r   r   r  >  s      $5 $ r   c                	    V P                  V4       V ;P                  \        R 4      ,          un        V P                  V4       R# )breakNr'  r   s   &&r   visit_BreakNode"ComputeLineLengths.visit_BreakNode>  s,    s7|#tr   c                    V ^8  d   QhRRRR/# r   r   )r   s   "r   r   r  C  s     ( ($8 (T (r   c                	D   \        V4      '       d   VP                  '       g{   V P                  V P                  P                  8  dT   \        V P
                  4      V P                  8  d   V P
                  V P                  ,          MTpR Vn        R V n        R# R# R# R# r   )r   r   r  r   r   r  r  r  )r#   r   r  s   && r   split_if_needed"ComputeLineLengths.split_if_neededC  sv    t99T...4;;A\A\3\589L9L5MPTPZPZ5Z$%%djj1`dC#C#'D  4].9r   c                    V ^8  d   QhRRRR/# r   r   )r   s   "r   r   r  I  s     $ $'; $ $r   c                	   < V P                   P                  V4       \        SV `  V4       V P	                  V4       V P                   P                  R4       R# )r  Nro  )r  rZ   r!   r   r1  r  r>  s   &&r   r   %ComputeLineLengths.visit_ArgumentNodeI  sF    ""4("4(T"#r   c                    V ^8  d   QhRRRR/# r_  r   )r   s   "r   r   r  O  s      $5 $ r   c                	"   V P                  V4       VP                  P                  V 4       VP                  P                  V 4       VP                  P                  V 4       V P                  VP                  4       V P                  V4       R # rG   )r   rc  r   rd  rb  r1  r   r   s   &&r   ra  "ComputeLineLengths.visit_ArrayNodeO  sb    T"		T"TYY'tr   c                    V ^8  d   QhRRRR/# rg  r   )r   s   "r   r   r  W  s      #3  r   c                	"   V P                  V4       VP                  P                  V 4       VP                  P                  V 4       VP                  P                  V 4       V P                  VP                  4       V P                  V4       R # rG   )r   rk  r   rd  rj  r1  r   r   s   &&r   ri  !ComputeLineLengths.visit_DictNodeW  sb    

$		

$TYY'tr   c                    V ^8  d   QhRRRR/# r  r   )r   s   "r   r   r  _  s      ,E $ r   c                	v   V P                  V4       VP                  P                  V 4       VP                  P                  V 4       VP                  P                  V 4       VP
                  '       g4   V P                  V P                  P                  8  d   R Vn        R V n	        V P                  V4       R# r   )r   r~  r   r  r}  r   r  r   r   r  r   r   s   &&r   r  *ComputeLineLengths.visit_ParenthesizedNode_  s    		

$		   T[[4;;3N3N%N $D#'D tr   )r  r   r  r  r  r  )rH   rI   rJ   rK   r"   r   r   r  r9  r+  r  rL  r(  r-  r1  r   ra  ri  r  rL   rM   rN   s   @r   r  r    sX    %.)


($ $ r   r  c                  :   a  ] tR tRtR R ltR V 3R lltRtV ;t# )SubdirFetcherij  c                   V ^8  d   QhRR/# )r   current_dirr   r   )r   s   "r   r   SubdirFetcher.__annotate__l  s     ( (D (r   c                	     Wn         . V n        R # rG   rB  subdirs)r#   rB  s   &&r   r"   SubdirFetcher.__init__l  s    &%'r   c                    V ^8  d   QhRRRR/# r  r   )r   s   "r   r   rC  p  s     ) )'; ) )r   c                	  < VP                   P                  R 8X  d   VP                  P                  '       d   \	        VP                  P                  ^ ,          \
        P                  4      '       dT   VP                  P                  ^ ,          P                  pV P                  P                  V P                  V,          4       \        SV `-  V4       R# )subdirN)r  rB   rd  r#  r   r   r   rF  rZ   rB  r!   r  )r#   r   rJ  r$   s   && r   r   SubdirFetcher.visit_FunctionNodep  s    >>8+yy"""z$))2E2Ea2H'J\J\']'],,Q/55##D$4$4v$=>"4(r   rE  )rH   rI   rJ   rK   r"   r  rL   rM   rN   s   @r   r@  r@  j  s    () )r   r@  c                  F    ] tR tRtR R ltR R ltR R ltR R	 ltR
tR# )	Formatterix  c               $    V ^8  d   QhRRRRRR/# )r   configuration_fileT.Optional[Path]r   rQ   fetch_subdirsr   )r   s   "r   r   Formatter.__annotate__z  s$     ( (+; (PT (ei (r   c                	    W0n         W n        V P                  V4      V n        V P                  V n        \        4       V n        . V n        R # rG   )rQ  r   load_configurationr   current_configr   rB  rF  )r#   rO  r   rQ  s   &&&&r   r"   Formatter.__init__z  s>    *!2--.@A"kk6%'r   c                    V ^8  d   QhRRRR/# )r   source_filer   r(   ru   r   )r   s   "r   r   rR    s     & &d &| &r   c                	   \        4       pV\        R 4      8X  d   \        R4      h VP                  4       pTP
                   EF$  pTR,          pTP                  4       '       g   K%  \        RR7      pTP                  T4       TP                  4        Uu. uF'  p\        TP                  4       T4      '       g   K%  TNK)  	  pp\        T4       Fk  p	\        YiP                  R4      e   K  T	P                  R,          p
T F5  p T
! YgT	P                  RR7      pTf   K  \#        Y)P                  T4       K7  	  Km  	  TP%                  TP&                  RRR7      '       g   EK$   T# 	  T#   \         d    \        RT R24      hi ; iu upi   \          d%   p\        R	T	P                   R
T RT 24      ThRp?ii ; i)STDINzBUsing editorconfig with stdin requires --source-file-path argumentzUnable to resolve path for "r>   z.editorconfig)r   Nrv   r=   zInvalid type for key "z" in "z" file:
rootF)rE   )ru   r   r   resolveFileNotFoundErrorparentsr/   r   r4   sectionsrs   as_posixr
   r   r   ry   ro   r   r   r2   )r#   rX  r   source_file_pathr  editorconfig_filecpr7   r_  r   rv   rB   es   &&           r   load_editor_configFormatter.load_editor_config  s   $w-' !eff	P*224 "))A !O 3$++--$7BOO-./1{{}l}G
;K_K_Kacj@k}HlF^2vvt,8H-'G| &rAFFT J (6  ( $ }}R//%}HH5 *4 ; ! 	P #?}A!NOO	P m & |,/EaffXVTeSffopqor-stz{{|s/   E. "F>FF.F	G 	F;	;G 	c                    V ^8  d   QhRRRR/# )r   rO  rP  r(   r   r   )r   s   "r   r   rR    s      5E / r   c                	   \        4       pV'       Ed   \        4       p VP                  V4       \        \        TP                  4       4      P                  R \        T4       4       4      4      pT'       d"   \	        RRP                  T4       RT R24      h\        T4       FR  pTP                  R,          p T! Y3P                  TP                  RR	7      pTf   K<  \!        Y&P                  T4       KT  	  TP"                  '       d   RT n        V#   \         d   p\	        R T RT 24      ThRp?ii ; i  \         d/   p\	        R
\        T4       RTP                   RT: R24      hRp?ii ; i)z$Unable to parse configuration file "z":
Nc              3  8   "   T F  qP                   x  K  	  R # 5irG   )r   )rD  r   s   & r   rF  /Formatter.load_configuration.<locals>.<genexpr>  s     =]nffns   zUnknown config keys: "z, z" in configuration file "r>   rv   r=   zError parsing "z", option "z", error: "T)r   r   r4   r   r   sortedsetr   
differencer
   joinry   r2   r   ro   r8   r   r   )	r#   rO  r   rc  rd  
extra_keysr   rv   rB   s	   &&       r   rT  Formatter.load_configuration  s    "$&Bp 23  BKKM 2 = ==]fU[n=] ]^J$'=dii
>S=TTm  oA  nB  BC  &D  E  EF^H-i"2'9'9166DQE $FFFE2 $ ''')-&)   p$'KL^K__cdecf%ghnoop " i()#.@*A)B+affXU`ab`eefgi iis/   D <D;D8!D33D8;E4)E//E4c               $    V ^8  d   QhRRRRRR/# )r   coder8   rX  r   r(   r   )r   s   "r   r   rR    s!      3 T c r   c                	   VP                   V n        \        P                  4       V n        V P
                  '       d0   V P                  P                  V P                  V4      4      V n        V P                  P                  V P                  4      V n        \        P                  ! WP                  4       4      P                  4       pV P                  '       d8   \        V P                  4      pVP!                  V4       VP"                  V n        VP!                  \%        4       4       \'        ^4       F  pVP!                  \)        V P                  4      4       VP!                  \+        V P                  4      4       \-        V P                  V4      pVP!                  V4       VP.                  '       d   K   M	  \1        4       pVP!                  V4       VP2                  # )   )parentrB  r   rx   rU  r   r   re  r   r   r   Parserr`  parserQ  r@  r   rF  r   rn   r   r  r  r  r   result)r#   rr  rX  astsubdir_fetcherr  cllprinters   &&&     r   r   Formatter.format  s\   &---557!!!"&"5"5"G"GH_H_`kHl"mD"1188EnnT#7#7#9:@@B*4+;+;<NJJ~&)11DL

$&'1XEJJt':':;<JJ()<)<=>$T%8%8%@CJJsO&&&  ,

7~~r   )r   rU  rB  rQ  rF  r   N)	rH   rI   rJ   rK   r"   re  rT  r   rL   r   r   r   rM  rM  x  s    (&P8 r   rM  c                    V ^8  d   QhRRRR/# )r   parserzargparse.ArgumentParserr(   r)   r   )r   s   "r   r   r     s     2 21 2d 2r   c                   V P                  4       pVP                  R RRRR7       VP                  RRRRRR	7       VP                  R
RRRR7       V P                  RRRRR7       V P                  RRR\        RR7       V P                  RRRRRR	7       V P                  RR\        RR7       V P                  R\        RR7       V P                  RR\        R R!7       R"# )#z-qz--check-only
store_truez?silently exit with 1 if files would be modified by meson format)actionhelpz-dz--check-diffFzDexit with 1 and show diff if files would be modified by meson format)r  rx   r  z-iz	--inplacezformat files in-placez-rz--recursivez;recurse subdirs (requires --check-only or --inplace option)z-cz--configurationmeson.formatz$read configuration from meson.format)metavartyper  z-ez--editor-configz,try to read configuration from .editorconfigz-oz--outputz.output file (implies having exactly one input))r  r  z--source-file-pathz$path to use, when reading from stdinsources*zmeson source files)r   r  r  N)add_mutually_exclusive_groupadd_argumentr   )r  inplace_groups   & r   add_argumentsr    s8   779MnN  
 nS	   k$  
 mJ  
 3	   ;	   j=  
 3  
 !	  r   c                    V ^8  d   QhRRRR/# )r   r  zT.List[Path]r(   rP  r   )r   s   "r   r   r     s      l /? r   c                    V  FI  pVP                  4       P                   F(  pVR ,          pVP                  4       '       g   K$  Vu u # 	  KK  	  R# )r  N)r\  r^  is_file)r  src_fileru  targets   &   r   get_meson_formatr    sF    &&(00Fn,F~~ 1 
 r   c                    V ^8  d   QhRRRR/# )r   optionszargparse.Namespacer(   r[   r   )r   s   "r   r   r     s     A A# A Ar   c           
     	   V P                   '       d&   \        V P                  4      ^8w  d   \        R4      hV P                  '       d0   V P
                  '       g   V P                  '       g   \        R4      h\        V P                  4      ^8H  ;'       dQ    V P                  ^ ,          P                  R8H  ;'       d)    V P                  ^ ,          P                  \        4       8H  pV P                  '       d   V'       d   \        R4      hV P
                  '       d   V'       d   \        R4      hV P                  '       d   V'       g   \        R4      hV'       d0   V P                  '       d   V P                  '       g   \        R4      hV P                  P                  4       ;'       g    \        \        4      .pV P                  '       g   \        V4      V n        \!        V P                  V P                  V P                  4      pV'       EdM   VP#                  ^ 4      pVP%                  4       '       d   V\        ,          p V'       d?   V P                  ;'       g    \        R4      p\&        P(                  P+                  4       pMVP-                  R	R
7      p VP1                  WT4      pV P                  '       d   VP3                  VP4                  4       V P
                  '       dO    VP7                  RR	VP8                  P:                  R7      ;_uu_ 4       pVP=                  V4       RRR4       EK5  V P                  '       g   V P>                  '       d   WW8w  dz   V P>                  '       df   \@        PB                  ! VPE                  4       VPE                  4       \G        V4      \G        V4      RRRR7      p	\I        RPK                  V	4      4       ^# EK  V P                   '       dY    V P                   P7                  RR	VP8                  P:                  R7      ;_uu_ 4       p
V
P=                  V4       RRR4       EKE  \I        VRR7       EKU  ^ #   \.         d   p\        RT 24      ThRp?ii ; i  + '       g   i     EK  ; i  \.         d   p\        RT 24      ThRp?ii ; i  + '       g   i     EK  ; i  \.         d   p\        RT P                    24      ThRp?ii ; i)r  z8--output argument implies having exactly one source filezE--recursive argument requires either --inplace or --check-only option-z7--recursive argument is not compatible with stdin inputz5--inplace argument is not compatible with stdin inputz?--source-file-path argument is only compatible with stdin inputzKusing --editor-config with stdin input requires --source-file-path argumentrZ  r+   r,   zUnable to read from Nw)r-   r   zUnable to write to z
(original)z(reformatted)r   )linetermr   )end)&outputr   r  r   	recursiveinplace
check_onlyr   ru  r   ra  editor_configcopyr   configurationr  rM  r  is_dirsysstdinr0   r3   IOErrorr   extendrF  openrU  r   write
check_diffdifflibunified_diffr3  r8   printrn  )r  
from_stdinr  	formatterr  rr  rd  	formattedsfdiffofs   &          r   runr    s   ~~~#goo.!3WXX'///W5G5G5GdeeW__%*uuwq/A/F/F#/MuuRYRaRabcRdRkRkosouRuJZVWW:TUU
^__g+++G4L4L4Ljkk#OO002LLtN7K6LG    0 9'//1F1FHYHYZI
';;q>??.0H	K"33DDtG}yy~~'))7); $$T4	NN9,,-???N]]3)BZBZBbBb]ccgiHHY' dc 7#5#5#5 %%%"//0A9CWCWCY03Hs8}0<o9;=D $))D/* ! ^^^T^^((w	H`H`HhHh(iimoHHY' ji
 )$$?  	K #7z!BCJ	K dcc N$':8*%EFAMN jii T$':7>>:J%KLRSSTs   Q% Q% '*Q% Q% 60R &R8R <:S 6R>S %R0Q??RR	R R R;'R66R;>S		S S S<S77S<)2
__future__r   r  rj   typingr\   configparserr   r   r   r  r   dataclassesr   r	   r
   r   pathlibr   r  r   r   mesonlibr   ast.postprocessr   ast.printerr   ast.visitorr   environmentr   TYPE_CHECKINGargparsetyping_extensionsr   r   rs   ru   r   r   r   r   r  r  r@  rM  r  r  r  r   r   r   <module>r     s   #  	  N N  8 8  
  $ . # ' '???), (&R 	B 	B 	B | | |~) )<
5> 
5x/n x/v	o odj jZ)N )h hV2hAr   