U e5dŽ,ã@s˜dZddlZddlZddlZeedƒs.edƒ‚dddgZdadadd „Z d d „Z Gd d„de ƒZ d d„Z Gdd„dƒZdd„Zdd„Zedkr”e ƒdS)Ú6éNÚNLz4tokenize.NL doesn't exist -- tokenize module too oldÚcheckÚNannyNagÚprocess_tokenscGs6d}|D]}tj |t|ƒ¡d}qtj d¡dS)NÚú Ú )ÚsysÚstderrÚwriteÚstr)ÚargsÚsepÚarg©rú /usr/lib64/python3.8/tabnanny.pyÚerrprint"s rc Cs¸ddl}z| tjdd…d¡\}}Wn2|jk rX}zt|ƒWY¢dSd}~XYnX|D](\}}|dkrvtda|dkr^tdaq^|s¢tdtjddƒdS|D] }t|ƒq¦dS)NréZqvz-qz-vzUsage:z[-v] file_or_directory ...)Úgetoptr ÚargvÚerrorrÚ filename_onlyÚverboser)rZoptsrÚmsgÚoÚarrrrÚmain)s   rc@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) rcCs||||_|_|_dS©N)ÚlinenorÚline)Úselfrrr rrrÚ__init__BszNannyNag.__init__cCs|jSr)r©r!rrrÚ get_linenoDszNannyNag.get_linenocCs|jSr)rr#rrrÚget_msgFszNannyNag.get_msgcCs|jSr)r r#rrrÚget_lineHszNannyNag.get_lineN)Ú__name__Ú __module__Ú __qualname__r"r$r%r&rrrrr=sc CsHtj |¡rˆtj |¡sˆtr*td|fƒt |¡}|D]J}tj ||¡}tj |¡rbtj |¡rztj |dd…¡dkr8t |ƒq8dSzt   |¡}Wn8t k rÎ}zt d||fƒWY¢dSd}~XYnXtdkrätd|ƒ�z>ztt  |j¡ƒW�n"t jk �r@}z t d||fƒWY¢ W�¢ödSd}~XYnâtk �r|}zt d||fƒWY¢W¢ºdSd}~XYn¦tk �r }z†| ¡}| ¡}t�rÐtd ||fƒtd |fƒt| ¡ƒn6d |k�ræd |d }t�röt|ƒnt||t|ƒƒWY¢W¢dSd}~XYnXW5| ¡Xt�rDtd |fƒdS)Nz%r: listing directoryéýÿÿÿz.pyz%r: I/O Error: %srzchecking %r ...z%r: Token Error: %sz%r: Indentation Error: %sz)%r: *** Line %d: trouble in tab city! ***zoffending line: %rrú"z%r: Clean bill of health.)ÚosÚpathÚisdirÚislinkrÚprintÚlistdirÚjoinÚnormcaserÚtokenizeÚopenÚOSErrorrÚcloserÚgenerate_tokensÚreadlineÚ TokenErrorÚIndentationErrorrr$r&r%rÚrepr) ÚfileÚnamesÚnameÚfullnameÚfrZnagÚbadliner rrrrKsX    ÿþ      c@sLeZdZd\ZZdd„Zdd„Zdd„Zdd „Zd d „Z d d „Z dd„Z dS)Ú Whitespacez c CsÎ||_tjtj}}g}d}}}|jD]v}||krH|d}|d}q*||krœ|d}|d}|t|ƒkr†|dg|t|ƒd}||d||<d}q*q¢q*||_||_t|ƒ|f|_t|ƒdk|_ dS)Nrr) ÚrawrCÚSÚTÚlenÚnÚntÚtupleÚnormÚ is_simple) r!ZwsrErFÚcountÚbrHrIZchrrrr"Ÿs(    zWhitespace.__init__cCs|j\}}tt|ƒd|ƒS©Nr)rKÚmaxrG)r!rMÚtrailingrrrÚlongest_run_of_spaces¸s z Whitespace.longest_run_of_spacescCsH|j\}}d}t|t|ƒƒD]}|||||}q||||jS)Nr)rKÚrangerGrI)r!ÚtabsizerMrQZilÚirrrÚ indent_level¼s  zWhitespace.indent_levelcCs |j|jkSr)rK)r!ÚotherrrrÚequalÓszWhitespace.equalcCsbt| ¡| ¡ƒd}g}td|dƒD]4}| |¡| |¡kr(| || |¡| |¡f¡q(|SrO©rPrRrSrVÚappend©r!rWrHrÚtsrrrÚnot_equal_witnessÚsÿÿþzWhitespace.not_equal_witnesscCsp|j|jkrdS|jr(|jr(|j|jkSt| ¡| ¡ƒd}td|dƒD]}| |¡| |¡krLdSqLdS)NFréT)rHrLrIrPrRrSrV)r!rWrHr\rrrÚlessòs   ÿÿzWhitespace.lesscCsbt| ¡| ¡ƒd}g}td|dƒD]4}| |¡| |¡kr(| || |¡| |¡f¡q(|SrOrYr[rrrÚnot_less_witnesssÿÿþzWhitespace.not_less_witnessN) r'r(r)rErFr"rRrVrXr]r_r`rrrrrCˆsrCcCs8dd„|Dƒ}d}t|ƒdkr&|d}|dd |¡S)Ncss|]}t|dƒVqdS)rN)r )Ú.0ÚtuprrrÚ sz#format_witnesses..z at tab sizerÚsrz, )rGr2)ÚwZfirstsÚprefixrrrÚformat_witnessess  rgcCstj}tj}tj}tjtjf}tdƒg}d}|D]Ø\}}} } } ||krLd}q0||kr¤d}t|ƒ} |d | ¡s˜|d | ¡} dt | ƒ}t | d|| ƒ‚|  | ¡q0||kr¸d}|d=q0|r0||kr0d}t| ƒ} |d  | ¡s0|d  | ¡} dt | ƒ}t | d|| ƒ‚q0dS)Nrrréÿÿÿÿzindent not greater e.g. zindent not equal e.g. )r4ÚINDENTÚDEDENTÚNEWLINEÚCOMMENTrrCr_r`rgrrZrXr])ÚtokensrirjrkZJUNKÚindentsZ check_equalÚtypeÚtokenÚstartÚendr ZthisguyZwitnessrrrrrs6       Ú__main__)Ú __version__r,r r4ÚhasattrÚ ValueErrorÚ__all__rrrrÚ ExceptionrrrCrgrr'rrrrÚs$  =7