bBFjUddlZddlmZddlmZddlmZmZddlm Z ddl m Z m Z dZ dZd Zd Zd Zd Zd ZdZdZeedfed<eez ZdZdZGddZGddeZGddeZGddeZGddeZdZ Gdd eZ!Gd!d"eZ"Gd#d$e Z#dS)%N)contextmanager)Tuple) ErrorFinderErrorFinderConfig)Rule)FlowScope) import_name import_from)classdeffuncdefif_stmt while_stmtfor_stmttry_stmt with_stmt)termr power)([{))]})+-~)*rr**/z//@)z<>|&^)=%z-><>==z>=z<=z<>!=z+=z-=z*=z@=z/=z%=z&=z|=z^=z<<=z>>=z**=z//=. _NEEDS_SPACE)dictorsetmakerargument) subscript subscriptlistsliceopcreZdZeZeZeZeZeZdS)IndentationTypesN) __name__ __module__ __qualname__objectVERTICAL_BRACKETHANGING_BRACKET BACKSLASHSUITEIMPLICIT?C:\PYTHON\_runtimes\venv\Lib\site-packages\parso/python/pep8.pyr2r2sFvxxfhhOI FHHEvxxHHHr=r2c0eZdZejZddZdZdZdS)IndentationNodeNc0|x|_|_||_dSN)bracket_indentation indentationparent)selfconfigrDrEs r>__init__zIndentationNode.__init__(s6AA 4#3 r=c d|jjzS)Nz<%s>) __class__r3)rFs r>__repr__zIndentationNode.__repr__,s///r=cR|}|"|jtjkr|S|j}| dSdSrB)typer2r:rE)rFns r>get_latest_suite_nodez%IndentationNode.get_latest_suite_node/s8 mv)///A mmmmmr=rB) r3r4r5r2r:rMrHrKrOr<r=r>r@r@%sN  !D000r=r@ceZdZddZdS) BracketNodeFc||_|}|}|jtjkr|j} t |dr|j|jjkrn=|}t|tr ||jkrn|j}c|j }| }d|j vs d|j vr0||j z|_||j z|_ tj|_nE|jd} d|j vrd|_ n d| z|_ |j |_tj|_|rI|jtjkr4|j ||j zkr!|xj |j z c_ |j |_||_dS)NTleaf    )rSrMr2r;rEhasattrlineget_previous_leaf isinstancerQrD get_next_leafprefix#closing_bracket_hanging_indentationrCr8end_posr7r:) rFrGrSrEin_suite_introducer previous_leafrNparent_indentation next_leafexpected_end_indents r>rHzBracketNode.__init__9s   6%. . .A q&!! m&8AFK&G&G);;==Ma-- !&1H1HA ]&&(( 9# # #ty/?'?'? (:<(=D $1F4FFD (8DII#',q/ v)))#'  #&)<#< '+'7D $(9DI  86;2B2H#H#H$(:V=O(OOO    2 2  '+'7D $ r=NF)r3r4r5rHr<r=r>rQrQ8s(111111r=rQc"eZdZdZfdZxZS) ImplicitNodezk Implicit indentation after keyword arguments, default arguments, annotations and dict values. ct|||tj|_|}|dkr$d|jvrd|jvr|xjdz c_dSdSdSdS)N:rTrUrX)superrHr2r;rMr]r^rD)rFrGrSrErdrJs r>rHzImplicitNode.__init__rs v...$- &&(( 3;;4y'777D HXrhrhmsB$$$$$$$$$r=rhc$eZdZejZddZdS) BackslashNodeNc&|d}|W|jd}d|jvrd|_nH|j|jkr||jz|_n(d|jddzz|_n||jz|_|j|_||_dS)N expr_stmtrWrXrV)search_ancestorchildrenrDr` start_posrCrE)rFrGrccontaining_leafspacingrErrequalss r>rHzBackslashNode.__init__~s#33K@@  '+Fv)))#'  >W%666'9Frprp{s0  %Dr=rpcj|jdo|jdS)N__)value startswithendswith)names r>_is_magic_namers- :  & & D4:+>+>t+D+DDr=ceZdZfdZefdZedZdZdZddZ fdZ d Z d Z d Z d Zfd ZxZS)PEP8NormalizercTtj|i|d|_d|_d|_d|_d|_d|_d|_d|_ t|j dx|_ |_ d|_d|j jvrd|_d|_dSd |_d|_dS) NTrF)rDrXspacesrWtabs)rkrH_previous_part_previous_leaf _on_newline_newline_count_wanted_newline_count_max_new_lines_in_prefix_new_statement_implicit_indentation_possibler@_config_indentation_tos_last_indentation_tos_in_suite_introducerrD_indentation_type_wrong_indentation_char)rFargskwargsrJs r>rHzPEP8Normalizer.__init__s$)&)))""%)"()%".3+ DLb 9 9 9 : :$)! $,* * *%-D "+/D ( ( (%+D "+.D ( ( (r=c#Kt|5||5dVdddn #1swxYwYddddS#1swxYwYdSrB)rk visit_node _visit_node)rFnoderJs r>rzPEP8Normalizer.visit_nodes WW   % %  !!$''                                   s4A$A  A$ A A$A A$$A(+A(c#>K|j}|dvrM|}t|dkr$|ddD]}||ddn|dkrR|j}|jdkr>t d|jddd Dr||d d nC|d kr9|jD]/}|jd kr"|jdkr||dd0n|dkr|jD]y}|jdvr t|jd kr%|jd}|jd}|jdkr/|jdkr$|jdkr||ddnzn||dkrv|jd} | } | j } | ds9| ds$| s | | jdvr|| dd|tvr|j} | j} | jdkr| j | }| jd|D]}|g}|jd kr|jdd}d!}|D]}|jd"kr|sd#}|jdkr,td$|DrI|jtvst|trm||d%d&n|t v}|t"v}|rd#|_ns|d'krd|jjt(jkr|jj|_t-|j|jj|jjz|j(|_n |rd#|_dV|d'kr6|jjt(jksJ|jj|_d|_dS|r6d!|_|jjt(jkr|jj|_dSdS|r&d!|_|d)vr||_dSdSdS)*Nr rVizMultiple imports on one linelambdefrrc3,K|]}|jdkVdS)rN)rM.0rNs r> z-PEP8Normalizer._visit_node..sE5Y5Y9:67Vv5E5Y5Y5Y5Y5Y5Yr=rsiz,Do not assign a lambda expression, use a defrkeywordexceptiz1Do not use bare except, specify exception instead comparison) atom_exprrrtrailerrrMiz'Do not compare types, use 'isinstance() file_inputrTrU rTrUi$zNo newline at end of file simple_stmtFstringTc34K|]}t|VdSrB)rrs r>rz-PEP8Normalizer._visit_node..s*#U#U!N1$5$5#U#U#U#U#U#Ur=iz&Module level import not at top of filesuiterE)r r )rMget_defined_nameslen add_issuerEanyrur|r[r^r~ _IMPORT_TYPESindexallr\r_IMPLICIT_INDENTATION_TYPES_SUITE_INTRODUCERSrrr2r9r@rrDrr:rr;_get_wanted_blank_lines_count)rFrtypnamesrrrchildratom endmarkerprevr^rmodulerrufound_docstringcimplicit_indentation_possible in_introducers r>rzPEP8Normalizer._visit_nodesi -  **,,E5zzA~~!"1"INNDNN4.LMMMM I   I~,,5Y5Y>G>PQVRTUVQV>W5Y5Y5Y2Y2Y,tS*XYYY J   d d:**u{h/F/FNN5#/bccc  d L   :%;;;u~&&**.+~a(<9,,f1D1D J&00NN4.WXXXE L  b)I..00D%FOOD)) L&//$2G2G L L"ldj@T.T.Ty#/JKKK -  +K 'F{l**--k::#_VeV4E %wHz]22#(>#2##6&+O%!!6X--o-$*.6[00 ##U#Uq?R?R?T?T#U#U#U U U1$6]22jD6I6I2$tS2Z[[[ (+/J(J%11  7(,D % % G^^$)-=-GGG(,(=(D%$3 %1DL4LL,%%%D ! ! + 726D /  '>>(-1A1GGGGG$($9$@D !)-D & & & * R27D /$)-=-FFF(,(=(D%%%GF  R(-D %----1-O-O-Q-Q*** R R--r=cd|j|jvr!||dd|jzdSdS)NezIndentation contains TF)rr|rr)rFrxs r>_check_tabs_spacesz!PEP8Normalizer._check_tabs_spacess;  '7= 8 8 NN7C)@4CY)Y Z Z Z4ur=cf|j}t|jdudzS)NrV)rrOintrE)rF suite_nodes r>rz,PEP8Normalizer._get_wanted_blank_lines_count!s1*@@BB :$,--11r=Fct|j|j|_|j}|U|jdz }||kr>|jdkr3|s0|dkrdnd}d|d|}||||d|_nd|_|s|}|jdz }|j} | dkr|jjd kpI| d kp.| d ko| d kp| d ko |j d ko|jjjd k} | rv||krp|j} | j} | jd kr| j} | j t| jdk| kr)|dkrdnd}d|d|}||||d|_d|_dS)NrVrri.i-z expected z blank line, found r! decoratorclassasyncdef decoratedrr) maxrrrrMrrr|rEr]rrur) rFrxrS is_commentwanted blank_linescodemessageactualval needs_lines func_or_clsrs r>_reset_newlineszPEP8Normalizer._reset_newlines%s -t/B C C %+  -1K ## [(@(@!6"(A++333DD!66;;0GNN7D':::15D.-1* .7799F2Q6F*Cs >t{/;>=7NGg~G$*<*<*>*>%*GGe|F(;w(F=k(-<  ;v"k #*:,,!LE>#ejG&;"<"<=LL"(A++333DD!6666+GNN7D':::,-D )r=ct||D]8}|jdkrn*||||9|||||||j|_|jdk|_ |jdkr+|jjtj kr|jj |_|j dkr|j jtvrd|_n|j dkrd|_|j s|||d|_||_|j S)NrxnewlinerjFelifTr)rk visit_leaf _split_prefixrM _visit_partcreate_spacing_part_analyse_non_prefixrrrr2r9rEr|rrr_max_blank_linesr)rFrSpartrJs r>rzPEP8Normalizer.visit_leafXsa 4   &&(( E EDyI%%   T4#;#;#=#=t D D D D   &&& tT***&*%:""i94 9 ! !%*.>.HHH$($9$@D ! :  !15G!G!G(-D % % Z6 ! !(,D %" &  t , , ,$%D !"zr=c |j}|j}|dkrdS|dkr!|jjdkr|jj|_|j}|dkr|dr-|dr||ddn|jrStj d |s=|dks7|d r |j d ks||d d n,tj d|s||dd| ||dn|dkr}|j | kr ||dd|j zn0|dvr,|jjjdkr||dd|xj dz c_ |dkr|jtjkr|jtjkr||ddn|j}|jr$|jtjkr||jjz }t)|j||||j|_n6|jr|j}|jtjkr!|jjdkr|jj|_||s|j}|dkrK|j} t1|t1| jkrn| j}| |_| |krn| j} C|jrf|dkr|r||dd n[||kr=t1|jjd!|j} ||d"d#| zn|d$vr|j}n|j}|jrC||j|jjzkr||d%d&n||kr||s|jd'vr{|d$vrG|jtjkr||d(d)n`||d*d+nGt1|t1|kr|jtjkr||d,d-n|jtjkr||d.d/n|jtjkr||d0d1n||d2d3n|jtjkr||d4d5n[|jtjkr||d6d1n.||d7d8n|||| |||rt|d9vrp|dkrj|jjd:krZ|tBvr(tE|j||j|j;|_no|jtjksJ|jj|_nF|dN error_leaf,r,commentz###i z'Too many leading '#' for block comment.z#:? z#!)rVri z$Block comment should start with '# 'z#:? [^ ]iz%Inline comment should start with '# 'T)rri/zToo many blank lines (%s))rrri0z*Blank lines found after function decoratorrV backslashiz+The backslash is redundant between bracketsr#Trailing whitespacerXoz!Indentation is not a multiple of z])}z+Line with same indent as next logical blockr|z1Closing bracket does not match visual indentation{zCLosing bracket does not match indentation of opening bracket's linez2Continuation line under-indented for visual indentzz2Continuation line missing indentation or outdentedxxxyz3Continuation line under-indented for hanging indentz1Continuation line over-indented for visual indent~z2Continuation line over-indented for hanging indentz()[]{} error_node)rEra)r%rj)rrbom)'r|rMrErr}lstriprrrematchrvrrrr2r9r:rDrrrprrrrrrrCrOr7r;_check_spacing_check_line_length_OPENING_BRACKETSrQrrrh_previous_spacing) rFrrxrSr|type_rrDshould_be_indentationrNss r>rzPEP8Normalizer._visit_partzsm   L F C<>tS*VWWW   1 $   K  y,6669 0 666NN4.[\\\\"&"2K0@TYBRBX5X5X#t|'?? ,9 ##4 ---D) ] /!-Ky,666+0I==(,(=(D%**733U *(,(8%I%%2A %{++c!-.@.@@@!01 -56299!H %&E* ))&P NN7C9NOOO$(==='*4<+C'D'D'D'DdF\F\]tS2UXY2YZZZ~~040H--040@-09*[ 6688D"l676767tS2_````$(===#66w??4*DJ 4E5E5$~~#'90@0Q#Q#Q$(NN(,(+([%&%&%&%& %)NN(,(+)P%&%&%&%&$'{#3#3c:O6P6P#P#P'+y4D4U'U'U(,,0,/,`)*)*)*)* *.6F6P)P)P(,,0,/,`)*)*)*)* *.6F6O)O)O(,tS%(H(H(H(H(,,0,/,a)*)*)*)* (,y4D4U'U'U(,,0,/,_)*)*)*)* *.6F6O)O)O(,tS%(H(H(H(H(,,0,/,`)*)*)*   g . . . g...  Uh&&5L+@+@K$ 44)))(3L$0(,(A)))%% y$4$=====(,(=(D%% j T%H K$(CCC*K$0 d4+@%%%D !!$CC"!(r=c |jdkr|jddz}n |jd}||jjkr|jd|jjkrd}|jdkr]|jdd}t|dkr)|jdt|dz dkrd}|r.||dd |d |jjd dSdSdSdS) NrrVTrrHFizLine too long (z > z characters)) rMrvr`rmax_charactersr|splitrr)rFrrx last_columnreportsplitteds r>rz!PEP8Normalizer._check_line_length's 9 # #.+a/KK,q/K 4 4 4%a(DL,GGGFyI%%:abb>//11x==A%%!\!_s8A;/?/??2EE"F C [[$,"="="=? 5 4GG  r=c fd} fd}|j j}| |jdks |jdkrdS|j}d vr|dddS|dkr8t jjkr|dd dSdS|d kr||d d dSt d kr|dddS|tvrd|jz}||d|dS|tvrd|jz}||d|dS|dvs|dkr,|j jtvrd|jz}||d|dS|dkr|j jtvrdS|dvr||dddS|dkrdS|dvr|j jtvs|dvr|j jtvrdS|tvr|j jdkrdS|dkr|j jdkrdS|tvs |tvr|dkr|j jdvs|dkrS|j jdvrE|dkr|j }n|j }|jd kr|jr||d!d"dS||d#d$dS|tvs |tvr||d%d&dS|d'ks|d'kr||d(d)dSd*} ||d+| dS|d,ks |jd,kr||d-d.dSj} |t"vr@ | jkr5d/jjvr'd0jjvrd1}|d2| r6|t"vr/|t"vr(d*} |tvrd|jz}||d3|dSdSdSdSdS)4Nc r j|SdSrBrrrFrs r> add_if_spacesz4PEP8Normalizer._check_spacing..add_if_spaces?s$ -%t~t,, - -r=c s j|SdSrBrrs r>add_not_spacesz5PEP8Normalizer._check_spacing..add_not_spacesCs$ -%t~t,, - -r=rrWzUsed tab to separate tokensriz)At least two spaces before inline commentrrrrVzMultiple spaces usedzWhitespace after '%s'zWhitespace before '%s')r;rj)rrrjzmissing whitespace after '%s')rrfactorr!rr%)r-paramrz(Expected spaces around annotation equalsz3Unexpected spaces around keyword / parameter equalsz3Missing whitespace around bitwise or shift operatorr&z)Missing whitespace around modulo operatorz!Missing whitespace between tokensriz!Missing whitespace around keywordrTrUz>Whitespace before operator doesn't match with whitespace after)r|rrMrrrspaces_before_commentr_CLOSING_BRACKETSrE_POSSIBLE_SLICE_PARENTS_NON_STAR_TYPES_FACTORr+ annotation_BITWISE_OPERATORr _ALLOW_SPACErr^) rFrrxrrrrrr message_225 prev_spacingrs ` @r>rzPEP8Normalizer._check_spacing>s - - - - - - - - - - - -"   \ 9 9TY,=V=V F  6>> NN7C)F G G G G G i  6{{T\???w-XYYYYY@? i   M'3(= > > > > > [[1__ NN7C)? @ @ @ @ @(((1DJ> gsG44444***2TZ? gsG44444##ts{{ (0GGG2TZ? gsG44444!15L!L!L((w-LMMMMM$$)9)P)P{** (??T[%5%A%A!1[!@!@%%)=)=3;;4;#37L#L#L3;;4;+;?T+T+Ts{{ $  $ zW,,1A,&w5_`````% #Q ...$:K2K2K"NM S[[DCKK"N7C1\]]]]]"EK"N7C=====)##tyI'='=w-PQQQQQ#5 <''Fl6H,H,H (;(BBB (;(BBB^GNN7C999=d,664|;S;S"EK000":TZ"G% gsG<<<<< ==66;S;S10r=c|j}|dkr|jdvr|rd}|jjdkr,|jj|kr||d|dzdS|jjdkr,|jj|kr||d|dzdS|d |d z|dSdS|jd krt |jttfrq|jjd krc| }|jd krF|jjdkr||dddS||dddSdSdSdS|jdkrM| jdvr||dddS||dddS|jdvr|j}|j |}|j |dz }|j |dz}||fD]d} | jdks | jdkrL| jdkrd}||d|dS| jdvrd }||d!|dSedS|jd"vrc|j}|jd#krM|jjd$kr?|jd%kr||d&d'dS||d(d)dSdSdS|d*kryt|j ddD]H\} } tjd+| d,} |j| zt%| f} | IdS|d-kr$|jd.kr||d/d0dSdSdS)1Nr)lOIz0Do not define %s named 'l', 'O', or 'I' one linericlassesfunctionii variablesrjrrr iz%Multiple statements on one line (def)iz'Multiple statements on one line (colon)r)rrizStatement ends with a semicoloniz+Multiple statements on one line (semicolon))r)r*rVrNonez/comparison to None should be 'if cond is None:'i)TrueFalsezCcomparison to False/True should be 'if cond is True:' or 'if cond:'i)inisrnot_testr8iz&test for membership should be 'not in'iz+test for object identity should be 'is not'rz[ \t]*rrriBlank line at end of file)rMr| is_definitionrErrr\rr r]rur enumerate splitlinesrrgrouprZrr)rFrSrrrdrrleftrightrirZrDrvs r>rz"PEP8Normalizer._analyse_non_prefixs8i &==TZ?::!!## EL;#w..4;3Ct3K3KNN4g .ABBBBB[%33 8HD8P8PNN4g .BCCCCCNN3+(=tDDDDD E EZ3  $+e}55 b$+:Ji:W:W ..00 >Y..{'944y#7^_____y#7`aaaaa  b b:W:W.. Z3  !!##(,DDDtS*KLLLLLtS*WXXXXX Z< ' 'J'--d33E&uqy1D' 2Ee  9 ))TY&-@-@zV++"StS':::'888#EtS':::  Z< ' 'J,..:3D3IZ3W3W:%%NN4.VWWWWWNN4.[\\\\\ /.3W3W H__$TZ%:%:%<%rzPEP8Normalizer.add_issues   *"22<@@L"'<77    - - 9 F :   GG  dD' 2 2 2 2 2 +t $ $ . .tT7 C C C C Cr=rf)r3r4r5rHrrrrrrrrrrrrrmrns@r>rrs6/////,^ cRcR^cRJ 2221 1 1 1 f     Dk)k)k)Z.]=]=]=~8G8G8Gt D D D D D D D D Dr=rc eZdZeZ ddZdS)PEP8NormalizerConfig NOrcb||_||}||_d|_d|_||_||_dS)NrF)rDhanging_indentationr_break_after_binaryrr$)rFrDrIrr$s r>rHzPEP8NormalizerConfig.__init__sD&  &"- #6 350"',%:"""r=)rFNrGr)r3r4r5rnormalizer_classrHr<r=r>rErEs=%AE:; ; ; ; ; ; ;r=rEceZdZdZdZdZdS)BlankLineAtEndir;cdS)NFr<)rFrSs r>is_issuezBlankLineAtEnd.is_issuesur=N)r3r4r5rrrOr<r=r>rMrMs- D)Gr=rM)$r contextlibrtypingrparso.python.errorsrrparso.normalizerrparso.python.treerr rrr'rr%r(r+r*r+str__annotations__rr&r2r6r@rQrhrprrrErMr<r=r>rWs\ %%%%%%>>>>>>>>!!!!!!))))))))/ ;2!! 2 -! eCHo  !! <Cf&22222/222j $ $ $ $ $; $ $ $O2EEEL DL DL DL DL D[L DL DL D^;;;;;,;;;&Tr=