
    %
iHN                        d dl Z 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 e j	        e j
        z   e j        z   Z G d de          Z G d de          Zd Zd	 Z	 e ed
          j        _        n# e$ r Y nw xY w G d d          Z G d d          Zd Zd Zd Z G d d          ZddZd Zd Z G d d          Zd Ze dk    r e             dS dS )    N)default_scintilla_encoding)GetSimpleInputc                       e Zd ZdS )	TextErrorN__name__
__module____qualname__     C:\Users\Dell Inspiron 16\Desktop\tws\AgrotaPowerBi\back-agrota-powerbi\mcp-client-agrota\venv\Lib\site-packages\pythonwin/pywin/scintilla/IDLEenvironment.pyr   r              Dr   r   c                       e Zd ZdS )
EmptyRangeNr   r   r   r   r   r      r   r   r   c                     	 d| z   }t          |           n4# t          $ r'}d|  d| }t          j        |           Y d }~d S d }~ww xY wt          j        |         }t          |_        |S )Npywin.idle.zThe IDLE extension 'zY' can not be located.

Please correct the installation and restart the application.

)
__import__ImportErrorwin32ui
MessageBoxsysmodulesr   TclError)modulemodnamedetailsmsgmods        r   GetIDLEModuler      s    &(7   .6 . .$+. . 	
 	3ttttt +g
CCLJs    
AAAc                 :   | j         rd}nxd| j        vr6| j        j                                                            d          | _        | j        }| j        dz   x}| _        |t          |          k    rd}n||         dz   }|	                    t                    S )N _scint_lines
   )finished__dict__texteditGetTextRangesplitr"   ilenencoder   )selfvalslr+   s       r   fast_readliner1   0   s    } .. $	 ; ; = = C CD I IDVaZDFB<<CCQ%$,C::0111r   
AutoIndentc                   P    e Zd Zd Zd Zd Zd Z	 ddZddZd	 Z	d
 Z
d Zd ZdS )IDLEEditorWindowc                 X    || _         t          |          | _        i | _        i | _        d S N)r(   TkTextr'   
extensionsextension_menusr.   r(   s     r   __init__zIDLEEditorWindow.__init__I   s+    	4LL	!r   c                     d x| _         | _        d | _        	 | j                                        D ]}t          |dd           }|
 |              	 i | _        d S # i | _        w xY w)Nclose)r(   r'   r9   r8   valuesgetattr)r.   extclosers      r   r=   zIDLEEditorWindow.closeO   s     $$	DI#	!--//   gt44%FHHH
 !DOOObDO    s   9A 	A#c                    | j                             |          }||S t          |          }|d S t          ||          } ||           x}| j         |<   d t	          |          D             }|D ]a}d                    |d d                             dd                    }| j        j        	                    |t          ||                     b|S )Nc                 .    g | ]}|d d         dk    |S )N_eventr   .0items     r   
<listcomp>z2IDLEEditorWindow.IDLEExtension.<locals>.<listcomp>d   s*    GGG4bcch1F1F$1F1F1Fr   z<<{}>>rD   _-)
r8   getr   r?   dirformatreplacer(   bindingsbind)r.   	extensionr@   r   klasseventseventnames           r   IDLEExtensionzIDLEEditorWindow.IDLEExtensionZ   s    o!!),,?JI&&;4Y''+05;;6doi(GG3u::GGG 	? 	?E??5":#5#5c3#?#?@@DI##D'#u*=*=>>>>
r   c                 B   | j         j        }g }| j                                        D ]v}t	          |dg           }|D ]`\  }}||k    rUd |D             D ]H\  }}	|                    dd          }|                    dd          }|                    ||	f           Iaw|S )Nmenudefsc                     g | ]}||S r6   r   rF   s     r   rI   z1IDLEEditorWindow.GetMenuItems.<locals>.<listcomp>r   s    'S'S'S$BRBRBRBRr   &z&&rJ   )r(   rP   r8   r>   r?   rO   append)
r.   	menu_namerP   retr@   rY   rV   itemsr'   rU   s
             r   GetMenuItemszIDLEEditorWindow.GetMenuItemsj   s    9%?))++ 	2 	2CsJ33H' 2 2e9$$'S'S'S'S'S 2 2e#||C66#||C55

D%=11112 
r   Nr   c                    	 t          |t          |          |          }|dS d }	 t          |          }n# t          $ r d}Y nw xY w|s|||k     rd| }|s|||k    rd| }|r!t	          j        ||t          j                   |S )Nr$   r   zPlease enter an integerz1Please enter an integer greater then or equal to z.Please enter an integer less then or equal to )r   strint
ValueErrorr   r   win32conMB_OK)	r.   captionpromptparentinitialvalueminvaluemaxvaluercerrs	            r   
askintegerzIDLEEditorWindow.askinteger{   s    	L(9(97CCBzqC0WW 0 0 0/0 U8/BMMT(TT R8/BMMQxQQ "3@@@Is   7 AAc                 ^    t          j        ||t          j                  t          j        k    S r6   )r   r   re   MB_YESNOIDYES)r.   rg   rh   ri   s       r   askyesnozIDLEEditorWindow.askyesno   s!    !&'83DEEWWr   c                     | j                             |          }| j         j                                        }|r|                    |          dS dS )Nr   r$   )r'   
_getoffsetr(   _GetColorizerGetStringStyle)r.   
text_indexcs      r   is_char_in_stringz"IDLEEditorWindow.is_char_in_string   sS     Y))*55
IN((** 	!!*--51qr   c                     	 | j                             d          }| j                             d          }||fS # t          $ r Y dS w xY w)Nz	sel.firstzsel.last)NN)r'   indexr   )r.   firstlasts      r   get_selection_indicesz&IDLEEditorWindow.get_selection_indices   sY    	IOOK00E9??:..D$; 	 	 	::	s   7: 
AAc                 :    | j                             |           d S r6   )r(   SCISetTabWidth)r.   widths     r   set_tabwidthzIDLEEditorWindow.set_tabwidth   s    	  '''''r   c                 4    | j                                         S r6   )r(   GetTabWidthr.   s    r   get_tabwidthzIDLEEditorWindow.get_tabwidth   s    y$$&&&r   )Nr   NNr6   )r   r	   r
   r;   r=   rW   r`   ro   rs   rz   r   r   r   r   r   r   r4   r4   H   s        " " "	! 	! 	!     $ UY   *X X X X    ( ( (' ' ' ' 'r   r4   c                        e Zd Zd Zd Zd ZdS )CallTipsc                     || _         d S r6   )r(   r:   s     r   r;   zCallTips.__init__   s    			r   c                 :    | j                             |           d S r6   )r(   SCICallTipShow)r.   tip_texts     r   showtipzCallTips.showtip   s    	  *****r   c                 8    | j                                          d S r6   )r(   SCICallTipCancelr   s    r   hidetipzCallTips.hidetip       	""$$$$$r   N)r   r	   r
   r;   r   r   r   r   r   r   r      sA          + + +% % % % %r   r   c                     d}t          | |                                          } |                    |           }|                    |          }d|dz   | |z
  fz  S )Nr   z%d.%dr$   )minGetTextLengthLineFromChar	LineIndex)offsetr(   lineoffline	lineIndexs        r   TkOffsetToIndexr      s_    G++--..FV$$Dt$$IdQh 2333r   c                 T   t          |           }||k    rdS ||k     r3| |         t          j        v r|dz  }||k     r| |         t          j        v | |         dv r| |         |dz   fS |}||k     r9| |         t          j        dz   v r"|dz  }||k     r| |         t          j        dz   v "||k    r| ||         |fS |}||k     rS| |         t          j        t          j        z   dz   vr/|dz  }||k     r$| |         t          j        t          j        z   dz   v/||k    r| ||         |fS dS )N)Nr   r$   z+-.)r,   string
whitespacedigits)rb   posendendPoss       r   _NextTokr      se   
c((C
czzw
))CF$555q ))CF$555 3x43xq  F
3,,3v;&-#*===! 3,,3v;&-#*===
f}}3v:&&F
3,,3v;f.?&-.ORV.VVV! 3,,3v;f.?&-.ORV.VVV
f}}3v:&&7r   c                 J   t          | d          \  }}|t          d          |                    d          dk    r+	 |                    dd          \  }}|dk    s|dk    rZ|dk    rt          d          |                                }|d         |d	         k    rt
          |dk    r	|d         }n|d	         }nt          |          d	z
  }||                                k    r|                                d	z   }nA|	                    |          }|d
k    r|                                }|t          |          z  }n# t          t          f$ r t          d|z            w xY w|dk    r|                                d         }nh|dk    r8|                                }|r!|                    |d	z
            dk    r|d	z  }n*	 ||         }n # t          $ r t          d|z            w xY w	 t          | |          \  }	}|	n
|	dv rt          | |          \  }
}|
t          d          t          | |          \  }}|t          d          |d         dk    rt          d          |	dk    r|t          |
          z  }n|t          |
          z  }ns|	dk    rQ|dk    rI|                    |d	z
            t          v r*|d	z  }|dk    r|                    |d	z
            t          v *n|	dk    r^|                                }||k     rC|                    |          t          v r'|d	z  }||k     r|                    |          t          v 'n|	dk    rF|dk    r?|                    |d	z
            dvr%|d	z  }|dk    r|                    |d	z
            dv%nl|	dk    rT|                                }||k     r9|                    |          dvr"|d	z  }||k     r|                    |          dv"nt          d|	z            !t          |d          S )Nr   zEmpty bookmark ID!r      r}   r~   selzTags aren't here!r$   zUnexpected literal in '%s'insertr   r#   z.Unsupported base offset or undefined mark '%s')+rK   z+/- operator needs 2 argsry   z+/- only supports charsr   	wordstartwordend	linestartz
lineendz Unsupported relative offset '%s')r   rd   findr*   GetSelr   rc   GetLineCountr   r   
IndexErrorSCIGetCharAtKeyError	wordcharsmax)bmr(   marksbase
nextTokPosr   colr   r   wordnumwhatr   s                r   TkIndexToOffsetr      s   AD*|-...yy~~	B

3**ID#g~~5==$%8999kkmmq6SV##$$'>>a&CCa&CC 4yy1}$++----,,..2CC....Cbyy"00223s88OCJ' 	B 	B 	B9D@AAA	B			kkmmA	  "" 	4$$S1W--551HC	V+CC 	V 	V 	VMPTTUUU	V H#B
33j<:&r:66OC{ !<==='J77D*| !<===Aw#~~ !:;;;s{{s3xxs3xx[  ''d//a88IEEq ''d//a88IEEY$$&&C)) 1 1# 6 6) C Cq )) 1 1# 6 6) C C[  ''d//a88FFq ''d//a88FFY$$&&C)) 1 1# 6 6f D Dq )) 1 1# 6 6f D D ?$FGGGA HB sA;;s    DE $E'
G G0c                   ~    e Zd Zd Zd Zd Zd Zd Zd ZddZ	d	 Z
d
 ZddZd Zd Zd Zd Zd Zd Zd Zd ZdS )r7   c                 0    d | _         || _        i | _        d S r6   )calltipsr(   r   r:   s     r   r;   zTkText.__init__7  s    	


r   c                 P    | j         t          | j                  | _         | j         S r6   )r   r   r(   r   s    r   make_calltip_windowzTkText.make_calltip_windowH  s#    = $TY//DM}r   c                 8    t          || j        | j                  S r6   )r   r(   r   )r.   r|   s     r   ru   zTkText._getoffsetM  s    udi<<<r   c                 ,    t          || j                  S r6   )r   r(   )r.   offs     r   	_getindexzTkText._getindexP  s    sDI...r   c                 p   |dk    rgt          | j                            |                    dz  dk    r9|dz  }|dk    r.t          | j                            |                    dz  dk    9|| j                                        k     r~t          | j                            |                    dz  dk    rP|dz  }|| j                                        k     r.t          | j                            |                    dz  dk    P|dk    rD| j                            |          dk    r&| j                            |dz
            dk    r|dz  }|| j                                        k     rD| j                            |dz
            dk    r#| j                            |          dk    r|dz  }||fS )Nr         r$   r#   )ordr(   r   r   )r.   startr   s      r   _fix_indexeszTkText._fix_indexesS  s   aiiC	 6 6u = =>>EMMQJE aiiC	 6 6u = =>>EMM $)))++++DI**3//00474??1HC $)))++++DI**3//00474??
 AII	&&u--55	&&uqy11T99QJE$)))++++	&&sQw//477	&&s++t331HCczr   c                 F    | j         j                            ||           d S r6   )r(   rP   rQ   )r.   bindinghandlers      r   rQ   zTkText.bindx  s#    	11111r   Nc                    	 |                      |          }||dz   }n|                      |          }n# t          $ r Y dS w xY w||k    rdS | j                                        }d}||k    r|}d}|                     ||          \  }}| j                            ||          }|r|r|d         dk    r|dz  }|                    dd          S )Nr$   r!   r   r   r#   r   )ru   r   r(   r   r   r)   rO   )r.   r   r   r   checkEndr^   s         r   rL   z
TkText.get{  s    	OOE**E{aiooc** 	 	 	22	 %<<2i%%''99CH&&uc22
si$$UC00 	S 	CGtOO4KC{{4$$$s   25 
AAc                 v    	 |                      |                     |                    S # t          $ r Y dS w xY w)Nr!   )r   ru   r   )r.   specs     r   r|   zTkText.index  sG    	>>$//$"7"7888 	 	 	22	s   '* 
88c                    	 |                      |          }n# t          $ r t          d          w xY w| j                            ||f           |                    d          }| j                            |d                    |dd          D ]5}| j                                         | j                            |           6d S )NEmpty ranger#   r   r$   )ru   r   r   r(   SetSelr*   
SCIAddText
SCINewline)r.   r   r'   bitsbits        r   r   zTkText.insert  s    	+//#&&CC 	+ 	+ 	+M***	+	#s$$$ zz$	T!W%%%8 	& 	&CI  """I  %%%%	& 	&s    2c                 R   	 |                      |          }||                      |          }n# t          $ r t          d          w xY w||k    rd S ||dz   }n||k     rd S || j                                        k    rd S | j                                        d         }|                     ||          \  }}| j                            ||f           | j                                         ||k    r	||k     r|}n||k    r|||z
  z  }| j                            |           d S )Nr   r$   r   )	ru   r   r   r(   r   r   r   r   Clear)r.   r   r   olds       r   deletezTkText.delete  sN   	+OOE**Eooc** 	+ 	+ 	+M***	+ C<<F;!)CC U{{DI++----Fi  #&&uc22
s	%&&&	%<<C#IICCCZZ3;C	s	   ,/ A	c                 ,    t          j                     d S r6   )win32apiMessageBeepr   s    r   bellzTkText.bell  s    r   c                     d S r6   r   )r.   r   s     r   seez
TkText.see  s	     	r   c                     	 |                      |          }n # t          $ r t          d|z            w xY w|dk    r| j                            |           d S || j        |<   d S )NzEmpty range '%s'r   )ru   r   r   r(   r   r   )r.   rV   r   s      r   mark_setzTkText.mark_set  s    	6//#&&CC 	6 	6 	6.4555	68IS!!!!!"DJts    5c                     |dk    rt          d          	 |                     |          }|                     |          }n# t          $ r t          d          w xY w| j                            ||           d S )Nr   zOnly sel tag is supportedr   )rd   ru   r   r   r(   r   r.   rV   r   r   s       r   tag_addzTkText.tag_add  s    5==8999	+OOE**E//#&&CC 	+ 	+ 	+M***	+	$$$$$s   *A Ac                     |dk    s|dk    s|dk    rt          d          | j                            | j                                        d                    d S )Nr   z1.0r   zCan't remove this tagr   )rd   r(   r   r   r   s       r   
tag_removezTkText.tag_remove  sY    5==EUNNcUll4555	))++A./////r   c                     	 |                      |          }n# t          $ r d}Y nw xY w	 |                      |          }n# t          $ r d}Y nw xY wt          d|||fz            S )Nr!   z%d%s%d)ru   r   eval)r.   i1opi2s       r   comparezTkText.compare  s    	$$BB 	 	 	BBB		$$BB 	 	 	BBB	HB|+,,,s    ''A AAc                 8    | j                                          d S r6   )r(   SCIBeginUndoActionr   s    r   undo_block_startzTkText.undo_block_start  s    	$$&&&&&r   c                 8    | j                                          d S r6   )r(   SCIEndUndoActionr   s    r   undo_block_stopzTkText.undo_block_stop  r   r   r6   )r   r	   r
   r;   r   ru   r   r   rQ   rL   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r7   r7   6  s-         "  
= = =/ / /  J2 2 2% % % %0  & & &   <    
# # #% % %0 0 0	- 	- 	-' ' '% % % % %r   r7   c                 `    t          | |i           }||k    rt          d| d|d|           d S d S )NzERROR: Indexz
, expectedzbut got)r   print)r|   r(   expectedrm   s       r   	TestCheckr     sA    	b	)	)B	X~~ne\8YKKKKK ~r   c           
      x    |                     | |          }||k    rt          d| d|d|d|           d S d S )NzERROR: get(z, z) expected z
, but got )rL   r   )frtotr   gots        r   TestGetr    sX    
%%B--C
hRBRRBRRXRR3RRSSSSS r   c                     dd l } | j        j        j                            d           }|                                }t          |          }|                    d           |                    d           d}|                    d           t          dd|d           |                    d           t          dd|d           |                    d	           t          dd|d           d S )
Nr   z/hi there how
are you today
I hope you are well)   r  a  
    TestCheck("insert", e, 4)
    TestCheck("insert wordstart", e, 3)
    TestCheck("insert wordend", e, 8)
    TestCheck("insert linestart", e, 0)
    TestCheck("insert lineend", e, 12)
    TestCheck("insert + 4 chars", e, 8)
    TestCheck("insert +4c", e, 8)
    TestCheck("insert - 2 chars", e, 2)
    TestCheck("insert -2c", e, 2)
    TestCheck("insert-2c", e, 2)
    TestCheck("insert-2 c", e, 2)
    TestCheck("insert- 2c", e, 2)
    TestCheck("1.1", e, 1)
    TestCheck("1.0", e, 0)
    TestCheck("2.0", e, 13)
    try:
        TestCheck("sel.first", e, 0)
        print("*** sel.first worked with an empty selection")
    except TextError:
        pass
    e.SetSel((4,5))
    TestCheck("sel.first- 2c", e, 2)
    TestCheck("sel.last- 2c", e, 3)
    zinsert lineendzinsert lineend +1cr#   )   r  )#   r	  )
pywin.framework.editor	frameworkeditoreditorTemplateOpenDocumentFileGetFirstViewr7   r   r   r  )pywinder  skips        r   testr  
  s    !!!!->>tDDA	Aq		ALLEFFFHHVD4 HHV2At<<<HHX2At<<<HHX2At<<<<<r   c                       e Zd Zd ZdS )IDLEWrapperc                     || _         d S r6   )r'   )r.   controls     r   r;   zIDLEWrapper.__init__6  s    			r   N)r   r	   r
   r;   r   r   r   r  r  5  s#            r   r  c                 4   dd l }dd l}d| z   }t          |           |j        |         }t          |_        t          ||           }dd l}|j        j	        j
                            d           }|                                }|j                            t                    d         dz   }	|                    t#          |	                                                     |                    d            |t)          t+          |                              }
|
S )Nr   r   z.py)osr   r   r   r   r   r?   r
  r  r  r  r  r  pathsplitext__file__r   openreadSetModifiedFlagr  r7   )rR   r  r   r   r   rS   r  r  vfnamers              r   IDLETestr$  :  s    IIIJJJi'Gw
+g
CCLC##E "!!!->>tDDA	AGX&&q)E1ELLe!!##$$$ak&))$$%%AHr   __main__r6   )!r   r   r   re   r   r  r   pywin.mfc.dialogr   ascii_uppercaseascii_lowercaser   r   	Exceptionr   r   r   r1   IndentSearcherreadlineAttributeErrorr4   r   r   r   r   r7   r   r  r  r  r$  r   r   r   r   <module>r-     sn    



    , , , , , , + + + + + +"V%;;fmK		 	 	 	 		 	 	 		 	 	 	 	 	 	 	  02 2 2 	:GMM,.77 	 	 	D	j' j' j' j' j' j' j' j'\% % % % % % % %4 4 4  0L L Lb@% @% @% @% @% @% @% @%PL L L LT T T(= (= (=V       
  , zDFFFFF s   A1 1A98A9