+
    ‹°³jK  ã                   ó  € ^ RI HtHtHt ^ RIHtHtHtHtH	t	 ^ RI
H
t
 ^ RIt^ RIt^ RIt^ RIHt ^ RIHt R]/t]! ]! ]! ]4      ^ ,          ]]4      4      t]! ]4      '       g   Q h]! ]! ]]4      4      t]! ]R4      t]! ]R	4      tR
tRtRtRtRtRtRtRtRt Rt!Rt"Rt#Rt$Rt%]PL                  ! R4      t']PL                  ! R4      t(]PL                  ! R4      t)]PL                  ! R4      t*]PL                  ! R4      t+]PL                  ! R4      t,]PL                  ! R4      t-]PL                  ! R4      t.R  t/R! t0]1! 4       R"3R# lt2]1! 4       R3R$ lt3 ! R% R&]Ph                  4      t5]5! 4       t6R' t7R( t8R) t9R* t:R+ t;R, t<R- t=R. t>R/ t?R# )0é    )ÚwalkÚsepÚpardir)ÚsplitÚjoinÚabspathÚexistsÚisfile)ÚglobN)Úraises©Ú_test_this_file_encodingr   ÚbinÚexamplesz/File contains trailing whitespace: %s, line %s.z.File contains an implicit import: %s, line %s.z2File contains tabs instead of spaces: %s, line %s.z:File contains carriage returns at end of line: %s, line %sz+File contains string exception: %s, line %sz,File contains generic exception: %s, line %sz:File contains old-style raise statement: %s, line %s, "%s"z-File does not end with a newline: %s, line %sz/File ends with more than 1 newline: %s, line %sz6Function should start with 'test_' or '_': %s, line %sz.This is a duplicate test function: %s, line %sz3File contains assignments to self/cls: %s, line %s.z&File contains '.func is': %s, line %s.z+File contains bare expression: %s, line %s.z(^\s*(>>> )?(\.\.\. )?from .* import .*\*z9^\s*(>>> )?(\.\.\. )?raise(\s+(\'|\")|\s*(\(\s*)+(\'|\"))z=^\s*(>>> )?(\.\.\. )?raise(\s+Exception|\s*(\(\s*)+Exception)z1^\s*(>>> )?(\.\.\. )?raise((\s*\(\s*)|\s+)\w+\s*,z$^def\s+(?!(_|test))[^(]*\(\s*\)\s*:$z^def\s+test_.*:$z.*[/\\]test_.*\.py$z\.\s*func\s+isc                ó*  € \        V 4      \        V P                  4       4      ,
          pWV^,            R9   g   V RV pMAW^,           R pV RV VR\        V4      \        VP                  4       4      ,
           ,           pVP                  4       V8X  * # )zwReturns True if there are tabs in the leading whitespace of a line,
including the whitespace of docstring code samples.N)z...z>>>)ÚlenÚlstripÚ
expandtabs)ÚsÚnÚcheckÚsmores   &   Úf/home/luca/screen-checking/.venv/lib/python3.14/site-packages/sympy/testing/tests/test_code_quality.pyÚtab_in_leadingr   7   s„   € ô 	ˆA‹”�Q—X‘X“Z“Õ €AØˆq�1�uˆ:˜Ô'Ø�"�1�‰à�a•%�&�	ˆØ�"�1�˜Ð?œs 5›z¬C°·±³Ó,?Õ?Ð@Õ@ˆØ× Ñ Ó" eÒ,Ð,ó    c                óÎ  a€ \         P                  ! V 4      P                   Uu. uF'  p\        V\         P                  4      '       g   K%  VNK)  	  pp. pV EF  pVP                   EFï  p\        V\         P
                  4      '       g   K&  \        ;QJ d&    R VP                   4       F  '       g   K   RM	  RM! R VP                   4       4      '       d   Kv  VP                  R8X  d   K‰  VP                  P                  '       g   K§  VP                  P                  ^ ,          P                  o\         P                  ! V4       EF  p\        V\         P                  4      '       g   K&  VP                   FÐ  p\        V\         P                  4      '       d%   VP                  S8X  d   VP!                  V4       KG  \        V\         P"                  4      '       g   Ki  \        ;QJ d)    V3R lVP$                   4       F  '       g   K   RM	  RM! V3R lVP$                   4       4      '       g   K¿  VP!                  V4       KÒ  	  EK	  	  EKò  	  EK  	  V# u upi )z�Returns a list of "bad" assignments: if there are instances
of assigning to the first argument of the class method (except
for staticmethod's).
c              3   ó„   "  € T F6  p\        V\        P                  4      '       g   K%  VP                  R 8H  x € K8  	  R# 5i)ÚstaticmethodN©Ú
isinstanceÚastÚNameÚid)Ú.0Úds   & r   Ú	<genexpr>Ú(find_self_assignments.<locals>.<genexpr>O   s0   é € ð IÙ,�q´
¸1¼c¿h¹h×0Gô *�1—4‘4˜>Ö)Û,ùs
   ‚"A ©A TFÚ__new__c              3   ó†   <"  € T F6  p\        V\        P                  4      '       g   K%  VP                  S8H  x € K8  	  R # 5i©Nr   )r$   ÚqÚ	first_args   & €r   r&   r'   ^   s/   øé € ð ">¹V¸Ü%/°´3·8±8×%<ô #4 !§$¡$¨)Ö"3»Vùs
   ƒ"AªA)r!   ÚparseÚbodyr    ÚClassDefÚFunctionDefÚanyÚdecorator_listÚnameÚargsÚargr   ÚAssignÚtargetsr"   r#   ÚappendÚTupleÚelts)r   r   ÚtÚbadÚcÚmÚar,   s   &      @r   Úfind_self_assignmentsr@   C   s™  ø€ ô
 —I’I˜a“L×%Ò%ÓEÑ%ˆq¬°A´s·|±|×)D�ˆÑ%€AÐEà
€CÜˆØ—•ˆAÜ˜a¤§¡×1Ò1Ùß‹sñ IØ×,Ò,óI�s�sŠsñ IØ×,Ò,óI÷ Iò IáØ�v‰v˜Ô"ÙØ—6‘6—;—;�;ÙØŸ™Ÿ™ A�×*Ñ*ˆIä—X’X˜a—[�Ü˜a¤§¡×,Ô,ØŸYœY˜Ü% a¬¯©×2Ò2°q·t±t¸yÔ7HØŸJ™J qžMÜ(¨¬C¯I©I×6Ô6ß!›cô ">¸Q¿VºVó ">ŸcŸcšcô ">¸Q¿VºVó ">÷ >ô >àŸJ™J qžMô 'ô !ô ñ ð. €Jùò5 	Fs   ¤"I"ÁI"z*.pyc           	     ó€   € V '       g   R# \        V 4       F$  w  rEp\        \        \        WC4      4      W4       K&  	  R# )zÄ
Checks all files in the directory tree (with base_path as starting point)
with the file_check function provided, skipping files that contain
any of the strings in the set provided by exclusions.
N)r   Úcheck_filesr   r   )Ú	base_pathÚ
file_checkÚ
exclusionsÚpatternÚrootÚdirsÚfiless   &&&&   r   Úcheck_directory_treerJ   e   s1   € ÷ ÙÜ! )ž_Ñˆ�EÜ”Dœ˜dÓ,Ó-¨zÖFó -r   c                óP  a€ V '       g   R# V  F”  o\        S4      '       d   \        S4      '       g   K'  \        ;QJ d    V3R lV 4       F  '       g   K   RM	  RM! V3R lV 4       4      '       d   Ki  Ve    \        P                  ! VS4      '       g   KŒ  V! S4       K–  	  R# )z‹
Checks all files with the file_check function provided, skipping files
that contain any of the strings in the set provided by exclusions.
Nc              3   ó,   <"  € T F	  qS9   x € K  	  R # 5ir*   © )r$   ÚexÚfnames   & €r   r&   Úcheck_files.<locals>.<genexpr>{   s   øé € Ð0¡Z˜r�UŽ{£Zùs   ƒTF)r	   r
   r1   ÚreÚmatch)rI   rD   rE   rF   rO   s   &&&&@r   rB   rB   q   sj   ø€ ÷
 ÙÛˆÜ�e�}Š}¤F¨5§M¢MÙß‹3Ô0¡ZÓ0�3�3Š3Ô0¡ZÓ0×0Ò0ÙØŠ?œbŸhšh w°×6Ô6Ù�uÖó r   c                   ó0   a € ] tR t^�t o RtR tR tRtV tR# )Ú_Visita=  return the line number corresponding to the
line on which a bare expression appears if it is a binary op
or a comparison that is not in a with block.

EXAMPLES
========

>>> import ast
>>> class _Visit(ast.NodeVisitor):
...     def visit_Expr(self, node):
...         if isinstance(node.value, (ast.BinOp, ast.Compare)):
...             print(node.lineno)
...     def visit_With(self, node):
...         pass  # no checking there
...
>>> code='''x = 1    # line 1
... for i in range(3):
...     x == 2       # <-- 3
... if x == 2:
...     x == 3       # <-- 5
...     x + 1        # <-- 6
...     x = 1
...     if x == 1:
...         print(1)
... while x != 1:
...     x == 1       # <-- 11
... with raises(TypeError):
...     c == 1
...     raise TypeError
... assert x == 1
... '''
>>> _Visit().visit(ast.parse(code))
3
5
6
11
c                ó¶   € \        VP                  \        P                  \        P                  34      '       d   Q \
        RTP                  3,          4       hR # )NÚ )r    Úvaluer!   ÚBinOpÚCompareÚmessage_bare_exprÚlineno©ÚselfÚnodes   &&r   Ú
visit_ExprÚ_Visit.visit_Expr§   s>   € Ü�d—j‘j¤3§9¡9¬c¯k©kÐ":×;Ò;Ø>Ô*¨b°$·+±+Ð->Õ>Ó>�4ñ <r   c                ó   € R # r*   rM   r\   s   &&r   Ú
visit_WithÚ_Visit.visit_Withª   s   € Ùr   rM   N)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r_   rb   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r   rT   rT   �   s   ø‡ € ñ$òJ?÷ð r   rT   c                ó¦  € \         P                  ! V 4      p \        P                  V4       R#   \         d—   pTP
                  '       g   Q hTP
                  ^ ,          pTP                  \        P                  R^4      ^ ,          4      '       g   Q h\        TP                  R^4      ^,          P                  R4      4      u Rp?# Rp?ii ; i)zUreturn None or else 0-based line number of code on which
a bare expression appeared.
Ú:Ú Ú.N)r!   r-   ÚBareExprÚvisitÚAssertionErrorr4   Ú
startswithrZ   r   ÚintÚrsplitÚrstrip)ÚcodeÚtreeÚmsgs   &  r   Úline_with_bare_exprrz   ±   sš   € ô �9Š9�T‹?€Dð6Ü�‰�tÖøÜô 6Ø�x�xˆxˆˆxØ�h‰h�q�kˆØ�~‰~Ô/×5Ñ5°c¸1Ó=¸aÕ@×AÒAÐAÐAÜ�3—:‘:˜c 1Ó% aÕ(×/Ñ/°Ó4Ó5Õ5ûð	6ús!   ˜/ ¯CºACÂ2CÃCÃCc                 ó0  aa€ V3R lp V3R loR Uu. uF  p\        \        V4      NK  	  ppR\        ,          R\        ,          R\        ,          R\        ,          R\        ,          0pR\        ,          R	\        ,          R
\        ,          R\        ,          R\        ,          R\        ,          R\        ,          R\        ,          R\        ,          R\        ,          R\        ,          R\        ,          R\        ,          R\        ,          R\        ,          R\        ,          R\        ,          R\        ,          R\        ,          0o\        W 4       \	        \
        V 0 RmR4       \	        \        W4       \	        \        W4       R# u upi )aL  
This test tests all files in SymPy and checks that:
  o no lines contains a trailing whitespace
  o no lines end with 

  o no line uses tabs instead of spaces
  o that the file ends with a single newline
  o there are no general or string exceptions
  o there are no old style raise statements
  o name of arg-less test suite functions start with _ or test_
  o no duplicate function names that start with test_
  o no assignments to self variable in class methods
  o no lines contain ".func is" except in the test suite
  o there is no do-nothing expression like `a == b` or `x + 1`
c                 óô   <€ \        V R R7      ;_uu_ 4       pS! W4       RRR4       \        V R R7      ;_uu_ 4       p\        W4       RRR4       R#   + '       g   i     L;; i  + '       g   i     R# ; i)Úutf8)ÚencodingN)Úopenr   )rO   Ú	test_fileÚtest_this_files   & €r   ÚtestÚtest_files.<locals>.testÏ   sQ   ø€ Ü�% &×)Õ)¨YÙ˜5Ô,÷ *ä�% &×)Õ)¨YÜ$ UÔ6÷ *Ñ)÷ *×)úç)×)Ð)ús   —	A½A&ÁA#	Á&A7	c                 ó´  <a € R pVP                  4       pVP                  ^ 4       \        S 9  d   S MS P                  \        ^4      R,          pVP	                  R4      '       d   \        V4      pVe   Q \        S T^,           3,          4       hR p^ p\        4       p\        V4       EFÈ  w  r%\        P                  S 4      '       dÂ   \        P                  V4      '       d   Q \        S T^,           3,          4       h\        P                  V4      '       dq   V^,          pVP                  VR,          P                  R4      ^ ,          P!                  4       4       \#        V4      V8w  d   Q \$        S T^,           3,          4       hVP'                  R4      '       d   Q \(        S T^,           3,          4       hVP'                  R4      '       d   Q \*        S T^,           3,          4       h\-        V4      '       d   Q \.        S T^,           3,          4       h\0        P3                  V4      '       d   Q \4        S T^,           3,          4       h\6        P3                  V4      '       d   Q \8        S T^,           3,          4       h\:        P3                  V4      '       d;   \=        \?        V 3R lS	4      4      '       g   Q \@        S T^,           3,          4       h\B        P3                  V4      '       d7   \        P3                  S 4      '       g   Q \D        S T^,           3,          4       h\F        P3                  V4      pVf   EK   Q \H        S T^,           TPK                  ^4      3,          4       h	  Ve^   VR8X  d#   V^ 8”  d   Q \L        S T^,           3,          4       hVP'                  R4      '       g   Q \N        S T^,           3,          4       hR # R # )	NÚtest_ºé   NNÚ(z
c                 ó   <€ V S9   # r*   rM   )rN   rO   s   &€r   Ú<lambda>Ú4test_files.<locals>.test_this_file.<locals>.<lambda>ö   s	   ø€ ¨r°Uª{r   Ú
éÿÿÿÿ)z 
z	
)(ÚreadÚseekr   ru   rs   rz   rZ   ÚsetÚ	enumerateÚtest_file_rerR   Útest_suite_def_reÚmessage_test_suite_defÚtest_ok_def_reÚaddr   Ústripr   Úmessage_duplicate_testÚendswithÚmessage_spaceÚmessage_carriager   Úmessage_tabsÚstr_raise_reÚsearchÚmessage_str_raiseÚgen_raise_reÚmessage_gen_raiseÚimplicit_test_reÚlistÚfilterÚmessage_implicitÚ
func_is_reÚmessage_func_isÚold_raise_reÚmessage_old_raiseÚgroupÚmessage_multi_eofÚmessage_eof)
rO   r€   Úidxrw   ÚpyÚlineÚtestsÚtest_setÚresultÚimport_excludes
   f&       €r   r�   Ú"test_files.<locals>.test_this_fileÕ   s  ù€ ØˆØ�~‰~ÓˆØ�‰�qÔÜ Ô&‰U¨E¯L©L¼¸aÓ,@ÀÕ,DˆØ�=‰=˜×!Ò!Ü% dÓ+ˆCØŠ?Ø>Ô+¨u°c¸AµgÐ.>Õ>Ó>�5àˆØˆÜ“5ˆÜ" 9×-‰IˆCÜ×!Ñ! %×(Ò(Ü$×*Ñ*¨4×0Ò0ØKÔ"8¸EÀ3ÈÅ7Ð;KÕ"KÓK˜5Ü!×'Ñ'¨×-Ò-Ø˜Q•J�EØ—L‘L  b¥§¡°Ó!4°QÕ!7×!=Ñ!=Ó!?Ô@Ü˜8“}¨Ô-ØOÔ&<ÀÀsÈQÅwÐ?OÕ&OÓO˜uØ�}‰}˜_×-Ò-Ø>œm¨u°c¸AµgÐ.>Õ>Ó>�uØ�}‰}˜V×$Ò$ØAÔ.°%¸¸q½Ð1AÕAÓA�uÜ˜d×#Ò#Ø=œl¨e°S¸1µWÐ-=Õ=Ó=�uÜ×"Ñ" 4×(Ò(ØBÔ/°5¸#À½'Ð2BÕBÓB�uÜ×"Ñ" 4×(Ò(ØBÔ/°5¸#À½'Ð2BÕBÓB�uÜ ×'Ñ'¨×-Ò-ÜœVÔ$:¸NÓK×LÒLØAÔ.°%¸¸q½Ð1AÕAÓA�uÜ× Ñ  ×&Ò&¬|×/BÑ/BÀ5×/IÒ/IØ@œo°¸¸a½Ð0@Õ@Ó@�uä!×(Ñ(¨Ó.ˆFàÕ!ð5Ô/Ø˜3 �7 F§L¡L°£Oð35õ 5ó 5�uñ9 .ð> ÒØ�tŒ|  a¤ØBÔ/°5¸#À½'Ð2BÕBÓB�uØ—]‘] 4×(Ò(à<œk¨U°C¸!µGÐ,<Õ<Ó<�uñ )ñ r   zL%(sep)ssympy%(sep)sparsing%(sep)sautolev%(sep)s_antlr%(sep)sautolevparser.pyzK%(sep)ssympy%(sep)sparsing%(sep)sautolev%(sep)s_antlr%(sep)sautolevlexer.pyzN%(sep)ssympy%(sep)sparsing%(sep)sautolev%(sep)s_antlr%(sep)sautolevlistener.pyzH%(sep)ssympy%(sep)sparsing%(sep)slatex%(sep)s_antlr%(sep)slatexparser.pyzG%(sep)ssympy%(sep)sparsing%(sep)slatex%(sep)s_antlr%(sep)slatexlexer.pyz%(sep)ssympy%(sep)s__init__.pyz%(sep)svector%(sep)s__init__.pyz"%(sep)smechanics%(sep)s__init__.pyz %(sep)squantum%(sep)s__init__.pyz%(sep)spolys%(sep)s__init__.pyz,%(sep)spolys%(sep)sdomains%(sep)s__init__.pyz#%(sep)sinteractive%(sep)ssession.pyz%(sep)sisympy.pyz%(sep)sbin%(sep)ssympy_time.pyz$%(sep)sbin%(sep)ssympy_time_cache.pyz&%(sep)sparsing%(sep)ssympy_tokenize.pyz'%(sep)splotting%(sep)spygletplot%(sep)sz)%(sep)sbin%(sep)stest_external_imports.pyz*%(sep)sbin%(sep)stest_submodule_imports.pyz"%(sep)sutilities%(sep)sruntests.pyz %(sep)sutilities%(sep)spytest.pyz"%(sep)sutilities%(sep)srandtest.pyz"%(sep)sutilities%(sep)stmpfiles.pyz)%(sep)sutilities%(sep)squality_unicode.pyÚ*N)z	isympy.pyzbuild.pyzsetup.py>   Ú~ú.shú.pyc)r   ÚTOP_PATHÚsepdrB   rJ   ÚBIN_PATHÚ
SYMPY_PATHÚEXAMPLES_PATH)r‚   ÚfileÚtop_level_filesÚexcluder³   r�   s       @@r   Ú
test_filesrÁ   ¿   sB  ù€ õ 7õ1=ñj9ó ñ 9°”tœH dÖ+ñ 9€Oð ð 	WÔY]Õ]ØUÔX\Õ\ØXÔ[_Õ_ØRÔUYÕYØQÔTXÕXð€Gð 	)¬4Õ/ð 	*¬DÕ0Ø,¬tÕ3Ø*¬TÕ1Ø(¬4Õ/Ø6¼Õ=à-´Õ4àœTÕ!à(¬4Õ/Ø.´Õ5à0´4Õ7à1´DÕ8à3´dÕ:Ø4´tÕ;à,¬tÕ3Ø*¬TÕ1Ø,¬tÕ3Ø,¬tÕ3Ø3´dÕ:ð;€Nô> �Ô&Üœ 4Ò)=¸sÔCÜœ TÔ3Üœ¨Ö6ùòas   “Fc                 óL   € \         P                  ! ^ ^
4      R,          V ,           # )r   rn   )ÚrandomÚrandint)r=   s   &r   Ú_with_spacerÅ   =  s   € ä�>Š>˜!˜RÓ  Õ$ qÕ(Ð(r   c                  óB  € . ROp . ROp. ROp. ROpV  Fx  p\         P                  \        V4      4      e   Q V4       h\        P                  \        V4      4      e   Q V4       h\        P                  \        V4      4      f   Ks  Q V4       h	  V F*  p\         P                  \        V4      4      e   K%  Q V4       h	  V F*  p\        P                  \        V4      4      e   K%  Q V4       h	  V F*  p\        P                  \        V4      4      e   K%  Q V4       h	  R# )ú#some text # raise Exception, 'text'N)rÇ   z2raise ValueError('text') # raise Exception, 'text'úraise ValueError('text')zraise ValueErrorrÈ   zraise ValueError('text') #,zB'"""This function will raise ValueError, except when it doesn't"""zraise (ValueError('text'))zraise 'exception'zraise 'Exception'zraise "exception"zraise "Exception"zraise 'ValueError')z1raise Exception('text') # raise Exception, 'text'úraise Exception('text')zraise ExceptionrÉ   zraise Exception('text') #,úraise Exception, 'text'ú1raise Exception, 'text' # raise Exception('text')ú1raise Exception, 'text' # raise Exception, 'text'ú>>> raise Exception, 'text'ú5>>> raise Exception, 'text' # raise Exception('text')ú5>>> raise Exception, 'text' # raise Exception, 'text')rÊ   rË   rÌ   rÍ   rÎ   rÏ   zraise ValueError, 'text'z2raise ValueError, 'text' # raise Exception('text')z2raise ValueError, 'text' # raise Exception, 'text'z>>> raise ValueError, 'text'z6>>> raise ValueError, 'text' # raise Exception('text')z6>>> raise ValueError, 'text' # raise Exception, 'text'zraise(ValueError,zraise (ValueError,zraise( ValueError,zraise ( ValueError,zraise(ValueError ,zraise (ValueError ,zraise( ValueError ,zraise ( ValueError ,)r�   rž   rÅ   r    r¨   )Úcandidates_okÚstr_candidates_failÚgen_candidates_failÚold_candidates_failr=   s        r   Ú'test_raise_statement_regular_expressionrÔ   B  s  € ò
€MòÐòÐòÐó. ˆÜ×"Ñ"¤;¨q£>Ó2Ò:Ð=¸AÓ=Ð:Ü×"Ñ"¤;¨q£>Ó2Ò:Ð=¸AÓ=Ð:Ü×"Ñ"¤;¨q£>Ó2Ô:Ð=¸AÓ=Ð:ñ ó !ˆÜ×"Ñ"¤;¨q£>Ó2Ô>ÐAÀÓAÐ>ñ !ã ˆÜ×"Ñ"¤;¨q£>Ó2Ô>ÐAÀÓAÐ>ñ !ã ˆÜ×"Ñ"¤;¨q£>Ó2Ô>ÐAÀÓAÐ>ó !r   c                  óÖ   € . ROp . ROpV  F*  p\         P                  \        V4      4      f   K%  Q V4       h	  V F*  p\         P                  \        V4      4      e   K%  Q V4       h	  R# )úfrom sympy import somethingN)rÖ   z>>> from sympy import somethingz%from sympy.somewhere import somethingz)>>> from sympy.somewhere import somethingzimport sympyz>>> import sympyz import sympy.something.somethingz... import sympyz$... import sympy.something.somethingz... from sympy import somethingz)... from sympy.somewhere import somethingz>> from sympy import *z# from sympy import *zsome text # from sympy import *)zfrom sympy import *z>>> from sympy import *zfrom sympy.somewhere import *z!>>> from sympy.somewhere import *z... from sympy import *z!... from sympy.somewhere import *)r¢   rž   rÅ   ©rÐ   Úcandidates_failr=   s      r   Ú(test_implicit_imports_regular_expressionrÙ   …  sf   € ò€Mò €Oó ˆÜ×&Ñ&¤{°1£~Ó6Ô>ÐAÀÓAÐ>ñ ãˆÜ×&Ñ&¤{°1£~Ó6ÔBÐEÀAÓEÐBó r   c                  ó²   € . ROp . ROpV  F!  p\         P                  V4      f   K  Q V4       h	  V F!  p\         P                  V4      e   K  Q V4       h	  R# )ú    def foo():
N)rÛ   zdef foo(arg):
zdef _foo():
zdef test_foo():
)zdef foo():
zdef foo() :
zdef foo( ):
zdef  foo():
)r“   rž   r×   s      r   Útest_test_suite_defsrÜ   ¤  s^   € ò€Mò€Oó ˆÜ ×'Ñ'¨Ó*Ô2Ð5°AÓ5Ð2ñ ãˆÜ ×'Ñ'¨Ó*Ô6Ð9¸Ó9Ð6ó r   c                  ó€   € . ROp RR.pRpR pV  F  pV! V4      V8X  d   K  Q h	  V F  pV! V4      V8w  d   K  Q h	  R# )údef foo():
def foo():
zdef test_():
def test_ ():
zdef test_1():
def  test_1():
Nc                 óz  € ^ p\        4       p\        V P                  4       4       F‘  w  r4\        P	                  V4      '       g   K"  V^,          pVP                  VR,          P                  R4      ^ ,          P                  4       4       \        V4      V8w  g   Ky  R\        RV^,           3,          3u # 	  R# )r   r†   rˆ   Fr   ©Nr   )
r�   r‘   Ú
splitlinesr•   rR   r–   r   r—   r   r˜   )r¾   r°   r±   r­   r¯   s   &    r   r   Ú'test_test_duplicate_defs.<locals>.checkÂ  s•   € ØˆÜ“5ˆÜ" 4§?¡?Ó#4Ö5‰IˆCÜ×#Ñ# D×)Ô)Ø˜•
�Ø—‘˜T "�XŸ^™^¨CÓ0°Õ3×9Ñ9Ó;Ô<Ü�x“= EÖ)Ø Ô"8¸GÀSÈ1ÅWÐ;MÕ"MÐMÒMñ 6ð Ðr   )rÞ   zdef test():
def test_():
zdef test_():
def test__():
rà   rM   )rÐ   rØ   Úokr   r=   s        r   Útest_test_duplicate_defsrä   ·  sZ   € ò€Mð 	(Ø)ð€Oð 
€Bò	ó ˆÙ�Q‹x˜2Ž~Ðˆ~ñ ãˆÙ�Q‹x˜2Ž~Ðˆ~ó r   c                  ó‚   € . ROp . ROpV  F  p\        V4      . 8X  d   K  Q h	  V F  p\        V4      . 8w  d   K  Q h	  R# )ú4class A(object):
    def foo(self, arg): arg = self
N)ræ   z9class A(object):
    def foo(self, arg): self.prop = arg
z?class A(object):
    def foo(self, arg): obj, obj2 = arg, self
zCclass A(object):
    @classmethod
    def bar(cls, arg): arg = cls
z2class A(object):
    def foo(var, arg): arg = var
)z4class A(object):
    def foo(self, arg): self = arg
z>class A(object):
    def foo(self, arg): obj, self = arg, arg
zCclass A(object):
    def foo(self, arg):
        if arg: self = argzCclass A(object):
    @classmethod
    def foo(cls, arg): cls = arg
z2class A(object):
    def foo(var, arg): var = arg
)r@   r×   s      r   Útest_find_self_assignmentsrç   Ò  sL   € ò€Mò€Oó ˆÜ$ QÓ'¨2Ö-Ð-Ð-ñ ãˆÜ$ QÓ'¨2Ö-Ð-Ð-ó r   c                  óÖ   a aaa€ R .oR.oRo R.o\        \        V VVV3R l4       Ro R.o\        S SSS4       R o R.o\        \        V VVV3R l4       Ro R.o\        S SSS4       R# )ÚfooÚbarÚabcu   Î±c                  ó    <€ \        S SSS4      # r*   r   ©rO   r€   Úunicode_strict_whitelistÚunicode_whitelists   €€€€r   rŠ   Ú,test_test_unicode_encoding.<locals>.<lambda>î  ó   ø€ Ô#;ØˆyÐ+Ð-Eô$Gr   c                  ó    <€ \        S SSS4      # r*   r   rí   s   €€€€r   rŠ   rð   ø  rñ   r   N)r   rr   r   rí   s   @@@@r   Útest_test_unicode_encodingró   è  s“   û€ Ø˜ÐØ %˜wÐà€EØ�€IÜ
Œ>÷ Gô Hð €EØ�€IÜØˆyÐ+Ð-EôGð €EØ�€IÜ
Œ>÷ Gô Hð €EØ�€IÜØˆyÐ+Ð-EöGr   )@Úosr   r   r   Úos.pathr   r   r   r	   r
   r   rQ   rÃ   r!   Úsympy.testing.pytestr   Úsympy.testing.quality_unicoder   rº   Ú__file__r¼   r¹   r»   r½   rš   r¥   rœ   r›   rŸ   r¡   r©   r¬   r«   r”   r˜   Úmessage_self_assignmentsr§   rZ   Úcompiler¢   r�   r    r¨   r“   r•   r’   r¦   r   r@   r�   rJ   rB   ÚNodeVisitorrT   rp   rz   rÁ   rÅ   rÔ   rÙ   rÜ   rä   rç   ró   rM   r   r   Ú<module>rü      sÏ  ðç  Ñ  ß 8Õ 8Ý Û 	Û Û 
å 'Ý Bð 	ˆs€|€ñ ‘T™% ›/¨!Õ,¨f°fÓ=Ó>€
Ùˆj×ÒÐ Ðá‘4˜
 FÓ+Ó,€Ù�˜%Ó €Ù�X˜zÓ*€ð B€ØCÐ ØC€ØOÐ ØAÐ ØBÐ ØRÐ Ø=€ØEÐ ØQÐ ØIÐ ØPÐ Ø:€ØAÐ à—:’:ÐIÓJÐ Ø�zŠzØ@óB€à�zŠzØDóF€à�zŠzÐNÓO€Ø—J’JÐFÓGÐ Ø—’Ð/Ó0€Ø�zŠzÐ0Ó1€Ø�ZŠZÐ)Ó*€
ò	-òñD <?»5È&ô 	Gñ /2«e¸Tô ô *ˆS�_‰_ô *ñZ ‹8€ò6ò{7ò|)ò
@BòFFò>:ò&ò6.ô,Gr   