
    z%iQ                          	 d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dlm	Z	 d dlm
Z
 d dlmZ d dlmZ dZ G d	 d
      Zedk(  rd dlmZ  edd       yy)    N)
messagebox)idleConf)macosx)pyshell)	CustomRun)outwina/  Error: Inconsistent indentation detected!

1) Your indentation is outright incorrect (easy to fix), OR

2) Your indentation mixes tabs and spaces.

To fix case 2, change all tabs to spaces by using Edit->Select All followed by Format->Untabify Region and specify the number of columns used by each tab.
c                   H    e Zd Zd Zd Zd Zd Zd ZdddZd	 Z	d
 Z
d Zy)ScriptBindingc                     || _         | j                   j                  | _        | j                   j                  | _        g | _        d| _        y )Ng        )editwinflistrootcli_argsperf)selfr   s     E/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/idlelib/runscript.py__init__zScriptBinding.__init__&   s;     \\''
LL%%		    c                    t        | j                  t        j                        r%| j                  j                  j                          y| j                         }|sy| j                  |      sy| j                  |      syy)Nbreak)	
isinstancer   r   OutputWindowtextbellgetfilenamechecksyntaxtabnanny)r   eventfilenames      r   check_module_eventz ScriptBinding.check_module_event0   sf    dllF$7$78LL""$##%)}}X&r   c                 X   t        j                  |      5 }	 t        j                  t        j                  |j
                               	 d d d        y# t         j                  $ rT}|j                  \  }\  }}| j                  j                  |       | j                  dd|z         Y d }~d d d        yd }~wt        j                  $ rQ}| j                  j                  |j                                | j                  dt               Y d }~d d d        yd }~ww xY w# 1 sw Y   yxY w)NzTabnanny Tokenizing ErrorzToken Error: %sFzTab/space errorT)tokenizeopenr   process_tokensgenerate_tokensreadline
TokenErrorargsr   gotolineerrorboxNannyNag
get_linenoindent_message)r   r   fmsgmsgtxtlinenostartnags           r   r   zScriptBinding.tabnanny=   s    ]]8$ 	''(@(@(LM	  && *-(('%%f-9/&8:	 	 $$ %%cnn&67/@	 		 sA   D 2AD'AB6)D 6D?DD DD  D)c                    | j                   j                         x| _        }|j                         }|j	                  |j
                         t        |d      5 }|j                         }d d d        dv r$|j                  dd      }|j                  dd      }|r|d   t        d      k7  r|dz   }| j                  }|j                  }|j                  ddd       	 t        ||d	      |j	                  |       S # 1 sw Y   xY w# t        t        t         f$ r}t#        |d
d      xs |xs d}	t#        |dd      xs d}
t#        |dd      xs d}|dk(  r|
dz  }
d|
dz
  |dz
  fz  }|j%                  ||       | j'                  dd|	z         Y d }~|j	                  |       yd }~ww xY w# |j	                  |       w xY w)Nrb   s   
   
ERRORz1.0endexecr/    z<no detail available>r1      offsetr   z0.0 + %d lines + %d charsSyntaxErrorz%-20sF)r   
open_shellshellget_warning_streamset_warning_streamstderrr#   readreplaceordr   r   
tag_removecompiler?   OverflowError
ValueErrorgetattrcolorize_syntax_errorr*   )r   r   rA   saved_streamr.   sourcer   r   valuer/   r1   r>   poss                r   r   zScriptBinding.checksyntaxO   s   !ZZ2244
U//1  .(D! 	QVVXF	F?^^GU3F^^E51FfRjCJ.e^F,,||.	368V4 $$\21	 	 ]J7 		%+OuO8OCUHb16QFUHb16QF{!-6!80DDC))$4MM-37$$\2		 $$\2s7   C<D <DF,A5F'F/ 'F,,F/ /Gc                 (    | j                  |d      S )NT	customize)run_module_event)r   r   s     r   run_custom_eventzScriptBinding.run_custom_eventm   s    $$Ud$;;r   FrS   c          	         	 t        j                         r%t        j                         | j                  z
  dk  ryt        | j                  t        j                        r%| j                  j                  j                          y| j                         }|sy| j                  |      }|sy| j                  |      sy|rWd| j                  j                          d}t        | j                   j                  || j"                        j$                  }|sy|rng df\  | _        }| j                   j&                  }t(        j*                  r|r|j-                  d|       t.        j0                  j3                  |      }	|g}
| j"                  r|
| j"                  z  }
|j5                  d	|d
|
d|	d       |j7                  |       |j9                  |       y)Ng?r   z
Customize z Run)r   TF)with_cwdr   zif 1:
            __file__ = zi
            import sys as _sys
            from os.path import basename as _basename
            argv = z
            if (not _sys.argv or
                _basename(_sys.argv[0]) != _basename(__file__) or
                len(argv) > 1):
                _sys.argv = argv
            import os as _os
            _os.chdir(z:)
            del _sys, argv, _basename, _os
            
)r   	isCocoaTktimeperf_counterr   r   r   r   r   r   r   r   r   r   short_titler   rA   r   resultinterpr   use_subprocessrestart_subprocessospathdirname
runcommandprepend_syspathruncode)r   r   rT   r   codetitlerun_argsrestartr^   rc   argvs              r   rU   zScriptBinding.run_module_eventp   s   	 4#4#4#6#BS#HdllF$7$78LL""$##%)}}X& !9!9!; <DAE %*.--99? -6RJw""!!g%%"X & 7''//(+z==DMM!D  | $ 8  k " 	 	x( 	tr   c                    	 | j                   j                  j                  }| j                   j                         st	        j
                  dddd      }|r)|r'| j                   j                  j                  d        |S | j                         }| j                   j                  j                          |rG| j                   j                  j                  d        | j                   j                  j                  }|S d }|S )NmainGeneralautosavebool)type)
r   ior   	get_savedr   	GetOptionsaveask_save_dialogr   	focus_set)r   r   ro   confirms       r   r   zScriptBinding.getfilename   s    		 <<??++||%%'))&)*46CHH$$T*  ..0!!++-LLOO((.#||77H   $Hr   c                     d}t        j                  d|t         j                  | j                  j                        }|S )Nz%Source Must Be Saved
     OK to Save?zSave Before Run or Check)rh   messagedefaultparent)r   askokcancelOKr   r   )r   r/   rx   s      r   rv   zScriptBinding.ask_save_dialog   s9    >((/I363===26,,2C2CE r   c                     t        j                  ||| j                  j                         | j                  j                  j	                          t        j                         | _        y )N)r|   )r   	showerrorr   r   rw   rZ   r[   r   )r   rh   rz   s      r   r*   zScriptBinding.errorbox   sD    UGDLL4E4EF##%%%'	r   N)__name__
__module____qualname__r   r    r   r   rV   rU   r   rv   r*    r   r   r
   r
   $   s5    $3<< 49 7r6(r   r
   __main__)rm   z idlelib.idle_test.test_runscript   )	verbosity)ra   r   rZ   r"   tkinterr   idlelib.configr   idlelibr   r   idlelib.queryr   r   r-   r
   r   unittestrm   r   r   r   <module>r      s[   
 
     #   # l( l(^ z	+q: r   