
    ;eQ                          	 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           dS dS )    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                   J    e Zd Zd Zd Zd Zd Zd ZdddZd	 Z	d
 Z
d ZdS )ScriptBindingc                 t    || _         | j         j        | _        | j         j        | _        g | _        d| _        d S )Ng        )editwinflistrootcli_argsperf)selfr   s     (/usr/lib/python3.11/idlelib/runscript.py__init__zScriptBinding.__init__&   s5     \'
L%				    c                    t          | j        t          j                  r | j        j                                         dS |                                 }|sdS |                     |          sdS |                     |          sdS dS )Nbreak)	
isinstancer   r   OutputWindowtextbellgetfilenamechecksyntaxtabnanny)r   eventfilenames      r   check_module_eventz ScriptBinding.check_module_event0   s    dlF$788 	L""$$$7##%% 	7)) 	7}}X&& 	7wr   c                 ^   t          j        |          5 }	 t          j        t          j        |j                             n# t           j        $ rV}|j        \  }\  }}| j        	                    |           | 
                    dd|z             Y d }~d d d            dS d }~wt          j        $ r]}| j        	                    |                                           | 
                    dt                     Y d }~d d d            dS d }~ww xY w	 d d d            n# 1 swxY w Y   dS )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(LMMMM&   *-('%%f---9/&8: : :uuu	 	 	 	 	 	 	 	 $   %%cnn&6&6777/@@@uuu	 	 	 	 	 	 	 	 N	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 tsN   D"+AD"DA B#D"#D5AD<D"DD""D&)D&c                    | j                                         x| _        }|                                }|                    |j                   t          |d          5 }|                                }d d d            n# 1 swxY w Y   d|v r,|                    dd          }|                    dd          }|r|d         t          d          k    r|dz   }| j
        }|j        }|                    ddd           	 t          ||d	          |                    |           S # t          t          t           f$ r}t#          |d
d          p|pd}	t#          |dd          pd}
t#          |dd          pd}|dk    r|
dz  }
d|
dz
  |dz
  fz  }|                    ||           |                     dd|	z             Y d }~|                    |           dS d }~ww xY w# |                    |           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^   !Z22444
U//11  ...(D!! 	QVVXXF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	F??^^GU33F^^E511F 	$fRjCJJ..e^F,|...	368V44 $$\2222 ]J7 		 		 		%++OuO8OCUHb116QFUHb116QF{{!-6!80DDC))$444MM-3777555$$\22222		 $$\2222s=   B  BBD' 'G >BG G# G  G# #G:c                 0    |                      |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dS t          | j        t          j                  r | j        j	        
                                 dS |                                 }|sdS |                     |          }|sdS |                     |          sdS |rGd| j                                         d}t          | j        j	        || j                  j        }|sdS |r|ng df\  | _        }| j        j        }t(          j        r|r|                    d|           t.          j                            |          }	|g}
| j        r
|
| j        z  }
|                    d	|d
|
d|	d           |                    |           |                    |           dS )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#6#6#BS#H#H7dlF$788 	L""$$$7##%% 	7)) 	7}}X&& 	7 	A!9!9!;!;AAAE %*.-9 9 99?  w-6!FRJw"! 	7g 	7%%"X & 7 7 7'//(++z= 	"DM!D    	     	 	 	 	x((( 	twr   c                    	 | j         j        j        }| j                                         st	          j        dddd          }|r"|r | j         j                            d            ng|                                 }| j         j        	                                 |r1| j         j                            d            | j         j        j        }n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 C CH 	$H 	$$$T****..00!++--- $LO((...#|7HH#Hr   c                 b    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   s;    >(/I363==26,2CE E E r   c                     t          j        ||| j        j                   | j        j                                         t          j                    | _        d S )N)r|   )r   	showerrorr   r   rw   rZ   r[   r   )r   rh   rz   s      r   r*   zScriptBinding.errorbox   sJ    UGDL4EFFFF##%%%%''			r   N)__name__
__module____qualname__r   r    r   r   rV   rU   r   rv   r*    r   r   r
   r
   $   s              $3 3 3<< < < 49 7 7 7 7 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( l( l( l( l( l( l(^ zD	+q:::::: r   