
    %
i                     \   d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Zd dl
Z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ZdZej        j        j        Zd dlZddlmZ  ej        d          j        Z ej        dej                  j        Zd	Z d
Z!dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ)	 ej*         n# e+$ r de_*        de_,        Y nw xY wd;dZ-d Z.d Z/d Z0dZ1dZ2dZ3dZ4dZ5dZ6e1e2e3e4e5e6gZ7ej        j        j8        Z9 G d  d!e9          Z: G d" d#ej;                  Z< G d$ d%          Z= G d& d'e=ej>                  Z? G d( d)ej@                  ZA G d* d+ejB                  ZCd,ZDe?ZE G d- d.eE          ZF G d/ d0eA          ZGd1 ZHd2 ZIejJ        ZKdaLd<d3ZMd<d4ZNd<d5ZOd6 ZPd7 ZQd8 ZRd9 ZSd: ZTdS )=    N)afxresi  i      )winoutz:\s*(#.*)?$zU
    \s*
    ( return
    | break
    | continue
    | raise
    | pass
    )
    \b
s   Traceback (Interactive WindowFormatTitleFormatInputFormatOutputFormatOutputError)i  r      r   i      "   Arial)  r      r   r   r   1   Courier New)r   r   r   r   i  r   r   r   )r   r   r   r      r   r   r   >>> ...  c                 8    t          j        t          | |          S Nwin32uiGetProfileValsectionProfile)
preferencedefaults     C:\Users\Dell Inspiron 16\Desktop\tws\AgrotaPowerBi\back-agrota-powerbi\mcp-client-agrota\venv\Lib\site-packages\pythonwin/pywin/framework/interact.pyLoadPreferencer    G   s     WEEE    c                 <    t          j        t          | |           d S r   )r   WriteProfileValr   )prefName	prefValues     r   SavePreferencer&   K   s    NHi@@@@@r!   c                     t          j        t          t          t	          t
                               t          j        t          t          t	          t                               t          j        t          t          t	          t                               t          j        t          t          t	          t                               d S r   )r   r#   r   valueFormatTitlestrformatTitlevalueFormatInputformatInputvalueFormatOutputformatOutputvalueFormatOutputErrorformatOutputError r!   r   SaveFontPreferencesr2   O   s    N,<c+>N>NOOON,<c+>N>NOOON,=s<?P?PQQQ.4E0F0F    r!   c                     t           j        }| d t          |                   |k    r|S t           j        }| d t          |                   |k    r|S d S r   )sysps1lenps2)liner5   r7   s      r   GetPromptPrefixr9   X   sV    
'CJc#hhJ3

'CJc#hhJ3
 r!   zInteractive EOLzInteractive OutputzInteractive PromptzInteractive BannerzInteractive ErrorzInteractive Error (final line)c                   .    e Zd Zd Zd Zd Zd Zd	dZdS )
InteractiveFormatterc                 J    t                               | |           d| _        d S )NF)FormatterParent__init__bannerDisplayed)self	scintillas     r   r>   zInteractiveFormatter.__init__z   s&      y111$r!   c                 R   t                               |            t          j        j        j        }|                      |t          t                               |                      |t          t                               |                      |t          t                               |                      |t          t                               |                      |t          t                               |                      |t           t                               d S r   )r=   	SetStylespywinrA   	formatterStyleRegisterStyleSTYLE_INTERACTIVE_EOLSTYLE_INTERACTIVE_PROMPTr,   STYLE_INTERACTIVE_OUTPUTr.   STYLE_INTERACTIVE_BANNERr*   STYLE_INTERACTIVE_ERRORr0   !STYLE_INTERACTIVE_ERROR_FINALLINE)r@   rF   s     r   rC   zInteractiveFormatter.SetStyles~   s    !!$''')/55!68PQQRRR55!9;GGHHH55!9<HHIII55!9;GGHHH55!8:KLLMMME35LMM	
 	
 	
 	
 	
r!   c                 t    t          j        d||          }||k    rt          j        t          ||          }|S )NFormatr   )r@   namer   rcs       r   r    z#InteractiveFormatter.LoadPreference   s8    "8T7;;==&~tWEEB	r!   c                    t          |          }|dk    rd S |}|dd                             d          }d}d}|}	||k     r	|}
||dz   |dz                                d          }|t          k    r|
dvr|                     ||dz
  |           |}|
t	          t
          j                  d         t	          t
          j                  d         fv r	t          }n\|||t          t                    z            t          k    r	t          }n+t          }n"|t          k    rK|
t
          j        t
          j        z   dz   vr+|                     ||dz
  |           |}|
dv r	t          }n|}n|t          fv r)|
dv r#|                     ||dz
  |           |}t          }n|t          k    rr|
dv r5|r3|t          j        vr%|                     |||           |dz   }t          }nU|dk    r1|
t          j        vr#|                     ||dz
  |           |}t          }n|t          k    r(|
dv r#|                     ||dz
  |           |}t          }n|t          k    r2|
dv r-|dk    s|dv r#|                     ||dz
  |           |}t          }n|}||k     r||         d	vr|dz  }||k     r
||         d	v|                     |d |         ||           |                     |dz
            }|t$          j        j        j        }n|j        }|}|dz
  }|||dz                                d          }t          }|	|k    r|}	|dz  }||k     	||k     r|                     ||dz
  |           d S d S )
Nr   r   zlatin-1   
 r   z>[s   
)r6   decoderH   ColorSegr)   r4   r5   r7   rI   tracebackHeaderrL   rJ   string
whitespacerM   rK   ColorizePythonCodeGetStringStylerD   rA   rE   STYLE_DEFAULTrP   )r@   cdoc
styleStartstylePyStart	lengthDocstatechNextstartSegi	lastStatechends               r   ColorizeInteractiveCodez,InteractiveFormatter.ColorizeInteractiveCode   s   II	>>F
 ac!!),,	)mmB!a%!a%-(//	::F ---V##MM(AE5999 Hc#'ll1os37||A??? 8a!c/&:&:"::;NN 7 8222SWsw.444MM(AE5999 HV|| 5 ,3555<<MM(AE5999 H1E111<<F<vV=N/N/NMM(Au555 1uH=EE!VV&*; ; ; MM(AE5999 H=E;;;<<MM(AE5999 H1E222<<Vr\\Vt^^MM(AE5999 H1E Ioo$s)7*B*B1HC Ioo$s)7*B*B''TcT
HeDDD#2237;;'#(?#<#JLL#/#4L!GcC!Gm,33I>>-E!!!	FAM )mmP a<<MM(AE511111 <r!   r   c                 v   | j                             ||d          }d }d }|dk    r|dz
  }|r?| j                             |          dv r#|dz  }|r| j                             |          dv #|r||dz
  k     r|                     |          }d }||j        t
          j         j        j        k    rd}n!|j        t
          j         j        j        k    rd}|l|dk    rf| j                             |dz
            | j                             |dz
            z   | j                             |          z   }	|	|dz  k    r|j        }|t
          j         j        j	        }|d	k    r8| j         
                    |dz
            }
|                     |
          j        }n| j        rt          }nt          }d
| _        | j                             |d           t!          j        ddt#          |          z            | _        |                     |||           | j                             | j                   d | _        d S )NF)rV   r   z
'"rS      r   T   b)r   )rA   GetTextRangeSCIGetCharAtr\   rP   rD   rE   STYLE_TQSSTRINGSTYLE_TQDSTRINGr]   SCIGetStyleAtGetStyleByNumr?   rH   rK   SCIStartStylingarrayr6   style_bufferri   SCISetStylingEx)r@   startrh   	stringValr_   r`   lookstrstyle
quote_charlook_strstylenums              r   ColorizezInteractiveFormatter.Colorize   sT   
 N//s5/II	
199 19D 4>66t<<FF	  4>66t<<FF =uqy((..t44!
'}(A(QQQ%(

!%/*C*SSS%(
!-  !88 $ ; ;D1H E E"&."="=dQh"G"G!H"&."="=d"C"C!D %
  (:>99/7} ?4BL199~33EAI>>H++H55:JJ! 	(.JJ1J#'D &&ub111!KTC	NN-BCC$$Y
LIII&&t'8999 r!   N)r   rj   )__name__
__module____qualname__r>   rC   r    ri   r   r1   r!   r   r;   r;   y   sh        % % %

 

 

  V2 V2 V2p1! 1! 1! 1! 1! 1!r!   r;   c                   $    e Zd ZddZddZd ZdS )PythonwinInteractiveInterpreterNc                 x    |t           j        }||}|| _        t          j                            | |           d S r   )__main____dict__globalscodeInteractiveInterpreterr>   )r@   localsr   s      r   r>   z(PythonwinInteractiveInterpreter.__init__'  s?    >&F?G#,,T6:::::r!   c                     t           j                            t                              d                     t
          j                            | |           d S )Nascii)r4   stderrwriterX   rV   r   r   showsyntaxerror)r@   filenamekwargss      r   r   z/PythonwinInteractiveInterpreter.showsyntaxerror/  sN    
""7++	
 	
 	
 	#33D(CCCCCr!   c                     	 t          || j        | j                   d S # t          $ r   |                                  Y d S xY wr   )execr   r   
SystemExitshowtraceback)r@   r   s     r   runcodez'PythonwinInteractiveInterpreter.runcode5  s\    	!t|T[11111 	 	 		!      s	     ANNr   )r   r   r   r>   r   r   r1   r!   r   r   r   &  sO        ; ; ; ;D D D D! ! ! ! !r!   r   c                       e Zd ZddZd ZddZd ZddZdd	Zd
 Z	d Z
d Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )InteractiveCoreNc                     || _         d S r   )banner)r@   r   s     r   r>   zInteractiveCore.__init__?  s    r!   c                    d x| _         | _        t                      | _        |                                  |                                 dk    r| j        d}t          j        rd}t          j
                            dt          j         dt          j         | d           t          j
                            d                    t          j                             n$t          j
                            | j                   t           j                            d          }|rdd l}	 t)          t+          t-          |d	                                          |d
d          |j        |j                   nH#  t          j
                            d|z             t3          j        t          j
                   Y nxY w|                     g            d S )Nr   r   z, debug buildz
PythonWin z on z.
zLPortions {} - see 'Help/About PythonWin' for further copyright information.
PYTHONSTARTUPrbr   T)dont_inheritz->>> 
Error executing PYTHONSTARTUP script %r
)file)	oldStdOut	oldStdErrr   interp
OutputGrabGetTextLengthr   r   debugr4   r   r   versionplatformformat	copyrightosenvirongetr   r   compileopenreadr   	traceback	print_excAppendToPrompt)r@   suffixrcfiler   s       r   InitzInteractiveCore.InitC  s   *.. 6771$${"= -,F
  KKK#,KKKK   
  cjj)     
  ---00 	5OOO5VT**//1166PT   %%   5
  EP   #444444Bs   (AE5 5AF:Dbgc                    t           j        }|'dt           _        dt           _        t          j        x}}nd|z  t           _        d|z  t           _        || j        _        || j        _        |                     g |           d S )Nr   r   z[%s]>>> z[%s]... )	r4   r5   r7   r   r   r   r   r   r   )r@   r   r   rP   	oldPrompts        r   
SetContextzInteractiveCore.SetContextm  ss    G	?CGCG'00FWW 4'CG 4'CG#%B	*****r!   c                 2    | j         j        | j         j        fS r   )r   r   r   r@   s    r   
GetContextzInteractiveCore.GetContext{  s    {"DK$666r!   rj   c                     |dk    r|                                  }|                     |          }|r |d         dv r|d d         }|r
|d         dv |S )Nrj   )
)LineFromCharGetLine)r@   r8   s     r   	DoGetLinezInteractiveCore.DoGetLine~  sm    2::$$&&D||D!! 	tBx<//9D  	tBx<//r!   c                    |                                   |                                 dz
  }|                     |          }|rp||k    rj|                     |                                 t          |          z
  |                                            |                     t          j                   nd|t          t          j                  k    rGt          |          dk    r| 
                    d           | 
                    t          j                   |                                   | j        j                            dd           |sdS dt          j        z   gt          |          dz
  z  dgz   }t          ||          D ]1\  }}|                                r| 
                    ||z              2|                                   dS )z`Take a command and stick it at the end of the buffer (with python prompts inserted if required).r   r   r   iomarkzend-1cNr   )flushGetLineCountr   SetSelr   r6   
ReplaceSelr4   r5   r)   r   idletextmark_setr7   zipstrip)r@   bufLinesr   
lastLineNor8   termsbufLineterms           r   r   zInteractiveCore.AppendToPrompt  s   

&&((1,
~~j)) 	 **KK**,,s9~~=t?Q?Q?S?STTTOOCG$$$$S\\!!4yyA~~

4   JJsw

	(333 	F.!S]]Q%67B4? 511 	+ 	+MGT}} +

7T>***

r!   c                    |                                   |                                 dz
  }|                     |          }|r|t          j        t          j        fv ra|                     |                                 t          |          z
  |                                            | 	                    d           d S | 
                    d           d S )Nr   r   r   )r   r   r   r4   r5   r7   r   r   r6   r   r   )r@   r   r8   s      r   EnsureNoPromptzInteractiveCore.EnsureNoPrompt  s    

&&((1,
~~j)) 	t111KK**,,s4yy8$:L:L:N:NOOOOOB JJtr!   c                     dgS )Ninteractiver1   r   s    r   _GetSubConfigNamesz"InteractiveCore._GetSubConfigNames  s
    r!   c                    |                      | j        t          j                   |                      | j        t
                     |                      | j        t                     t          j	        j
                            d          }|4|                    | j        j        dt          j        z             | _        d S d | _        d S )NIdleHistoryr   )HookCommandOnSelectBlockr   ID_EDIT_SELECT_BLOCKOnEditCopyCodeID_EDIT_COPY_CODEOnEditExecClipboardID_EDIT_EXEC_CLIPBOARDrD   rA   IDLEenvironmentGetIDLEModuleHistoryr   r   r4   r7   history)r@   mods     r   HookHandlerszInteractiveCore.HookHandlers  s    +W-IJJJ,.?@@@13IJJJo-;;MJJ?;;ty~tcg~FFDLLLDLLLr!   c                    |                      |          }|                                 dz
  }t          |          }|ud}|}|dk    r1t          |                      |dz
                      n|dz  }|dk    1|}||k     r1t          |                      |dz                       n|dz  }||k     1nd}|}|dk    rm|t          t          j                  k    rPt          |                      |dz
                      }|n(|dz  }|dk    r|t          t          j                  k    P|}||k     rQt          |                      |dz                       }|n)|t          t          j                  k    rn|dz  }||k     Q|||fS )Nr   r   )r   r   r9   r)   r4   r5   )r@   lineNor8   	maxLineNoprefixflagstartLineNo	endLineNos           r   GetBlockBoundaryz InteractiveCore.GetBlockBoundary  s   ~~f%%%%''!+	 &&>D K//"4>>+/#B#BCCOq  // Ii''"4>>)a-#@#@AAMQ	 i''
 D K//fCG&<&<(a)H)HII>q  //fCG&<&< Ii''(	A)F)FGG>S\\))Q	 i'' Y--r!   c                     |\  }}g }||k    rJ|                      |          }t          t          |                    }||d          g|z   }|dz  }||k    J|S Nr   )r   r6   r9   )r@   linesr{   rh   retListthisLine	promptLens          r   ExtractCommandzInteractiveCore.ExtractCommand  sp    
sUll~~c**HOH5566I	

+,w6G1HC	 Ull
 r!   c                     t           j        | _        t           j        | _        | t           _        | t           _        |                                  d S r   )r4   stdoutr   r   r   r   r   s    r   r   zInteractiveCore.OutputGrab  s3    



r!   c                     | j         !t          j        | k    r| j         t          _        | j        !t          j        | k    r| j        t          _        d | _         d | _        |                                  d S r   )r   r4   r   r   r   r   r   s    r   OutputReleasezInteractiveCore.OutputRelease  s]    >%zT!!!^
>%zT!!!^


r!   c                    |                                  r*|                                  |                                  d S |                                  d}|                                 rdS |                                 }|                     |          \  }}}|sG|                     g            t          j        t          j	        t          j                             d S |                     ||f          }||                                 dz
  k    r@t          j        d           |                     |           |                     d           d S t          j        t"          j                  dk     p!t          j        t"          j                  dk     }|r|                     d           n(|                     d           |                     d           d                    |          }	|	r |	d         dv r|	d d         }	|	r
|	d         dv |                                  	 | j                            |	d          rd}nf| j        | j                            |	           |                     g            t          j        t          j	        t          j                             |                                  n# |                                  w xY w|rt          j        d	           |                     |          t;          t<          j                  d          }
d}d
}t;          |
          |k    rK|
|         t@          j!        v r7||
|         z  }|dz  }t;          |
          |k    r|
|         t@          j!        v 7tE          |
          r|dz  }ntG          |
          r
|d d         }|                     t<          j        |z              dS )Nr   r   zPress ENTER to execute commandr   rj   z	 z<interactive input>zReady to continue the commandr   	)$SCIAutoCActiveSCIAutoCComplete	SCICancelHandleSpecialLiner   r   r   r   SetStatusText
LoadStringr   AFX_IDS_IDLEMESSAGEr   r   r   win32apiGetKeyStatewin32conVK_SHIFT
VK_CONTROLr   joinr   r   	runsourcer   history_storer   r   r6   r4   r7   rY   rZ   _is_block_opener_is_block_closer)r@   eventhaveGrabbedOutputr   r{   rh   isCoder   bNeedIndentsourcecurLineposindents                r   ProcessEnterEventz!InteractiveCore.ProcessEnterEvent  s      	!!###NNF!!## 	1""$$!226::sF 	###!'"4V5O"P"PQQQF##UCL11 $##%%)))!"BCCC&&&KKOOOF  !233a7 =#H$7881< 	  	%OOD!!!!KKOOOOOD!!!YYu%%F %VBZ500  %VBZ500OO%;((1   #$KK |/226:::''+++)*6+EFF  
 ""$$$$""$$$$ 	.!"ABBBnnV,,S\\^^<GCFg,,$$9J)J)J'#,&q g,,$$9J)J)J  (( %$!'** %OOCGf,---qs   &BJ? ?Kc                     |                                  s|                                 r|                                  n)t          j        d           |                     d           dS )Nz
Cancelled.r   r   )r  SCICallTipActiver  r   r  r   r@   r  s     r   ProcessEscEventzInteractiveCore.ProcessEscEventV  sf       	'D$9$9$;$; 	'NN!,///&&&qr!   c                     |                                  }|                     |          \  }}}|                     |          }|                     |dz             dz
  }|dk     rd}|                     ||           d S )Nr   rS   r   r   )r   r   	LineIndexr   )	r@   commandr   r   r{   rh   r  
startIndexendIndexs	            r   r   zInteractiveCore.OnSelectBlock_  s    ""$$!226::sF^^E**
>>#'**Q.a<<HJ)))))r!   c                    |                                  } |j                    }g }|D ]}|                    t          j                  r7|t          t          j                  d         }|                    |           X|                    t          j                  r6|t          t          j                  d         }|                    |           t          j	        
                    |          }t          j                     	 t          j        t          j        t          |                     t          j                     dS # t          j                     w xY w)zmSanitizes code from interactive window, removing prompts and output,
        and inserts it in the clipboard.N)
GetSelText
splitlines
startswithr4   r5   r6   appendr7   r   linesepr  win32clipboardOpenClipboardSetClipboardDataCF_UNICODETEXTr)   CloseClipboard)r@   r#  r   r   	out_linesr8   out_codes          r   r   zInteractiveCore.OnEditCopyCodeh  s0      !!	 	' 	'Dsw'' 'CLLNN+  &&&&)) 'CLLNN+  &&&:??9--$&&&	,+-s8}}   )+++++N)++++s   	,E
 
Ec                 x   t          j                     	 t          j        t           j                  }t          j                     n# t          j                     w xY w |j        dd          dz   }	 t          |dd          }t          |t          j	                   dS #  t          j                     Y dS xY w)z1Executes python code directly from the clipboard.rT   r   z<clipboard>r   N)r,  r-  GetClipboardDatar/  r0  replacer   r   r   r   r   r   )r@   r#  r   os       r   r   z#InteractiveCore.OnEditExecClipboard~  s    $&&&	,!2>3PQQD)++++N)++++t|FD))D0	"mV44AH%&&&&&	"!!!!!!s   A A4+B! !B9c                 P   g }d}|                     |t          j        df           |                     t          j                   |                     |t          j        df           |                     |t          j        df           |                                 \  }}||k    r|                     |t          df           t          j
        t          j                  r|                     |t          df           |                     |t          j        df           |                     t          j                   |                     |t          j        df           |                     |t          j        d	f           |                     |t          j        d
f           |S )Nr   z&UndozCu&tz&CopyzCopy code without promptsz"Execute python code from clipboardz&Pastez&Select allzSelect &blockzView &Whitespace)r*  r   ID_EDIT_UNDOr  MF_SEPARATORID_EDIT_CUTID_EDIT_COPYGetSelr   r,  IsClipboardFormatAvailabler/  r   ID_EDIT_PASTEID_EDIT_SELECT_ALLr   ID_VIEW_WHITESPACE)r@   retflagsr{   rh   s        r   GetRightMenuItemsz!InteractiveCore.GetRightMenuItems  so   

E7/9:::

8()))

E7.7888

E7/9:::[[]]
sC<<JJ02MNOOO4^5RSS 	JJ.0TU   	

E70(;<<<

8()))

E75}EFFF

E77IJJJ

E757IJKKK
r!   c                 R    t          j                                        d           d S Nr   r   GetMainFrameMDINextr  s     r   MDINextEventzInteractiveCore.MDINextEvent  %    &&q)))))r!   c                 R    t          j                                        d           d S rE  rF  r  s     r   MDIPrevEventzInteractiveCore.MDIPrevEvent  rJ  r!   c                 ,   |                                  }|t          j                    k    rD	 |                                \  }}|                                 d S # t          j        $ r Y d S w xY w	 |                                  j        }|N|j        |                                dk    r/d x}|                                  _        t          j	        d           n!# t          $ r t          d           d }Y nw xY w||                                 d S d S )Nr   z'The last active Window has been closed.z"Can't find the last active window!)GetParentFramer   rG  MDIGetActiveSetFocuserror
lastActive_obj_GetSafeHwndr  AttributeErrorprintMDIActivate)r@   r  parentwndisactiverR  s         r   WindowBackEventzInteractiveCore.WindowBackEvent  s;   $$&&W)++++ & 3 3 5 5X=   

"!0022=
)$,
0F0F0H0HA0M0MDHHJ!4!4!6!6!A)*STTT! " " ":;;;!


" %&&((((( &%s$   +A A-,A-1A)C C98C9r   )r   )rj   )r   r   r   r>   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   rC  rI  rL  r[  r1   r!   r   r   r   >  sx          (  (  ( T+ + + +7 7 7      ,
 
 
  	  	  	 (". ". ".H    
 
 
$L L L^  * * *, , ,," " "  0* * ** * *) ) ) ) )r!   r   c                   &    e Zd Zd Zd Zd Zd ZdS )InteractiveViewc                     t                               |            t          j                            | |           t          j        | _        d S r   )r   r>   r   WindowOutputViewrD   default_scintilla_encodingencoding)r@   docs     r   r>   zInteractiveView.__init__  s=      &&&((s3338r!   c                      t          |           S r   )r;   r   s    r   _MakeColorizerzInteractiveView._MakeColorizer  s    #D)))r!   c                     t           j                            |            |                                  |                                  d S r   )r   r_  OnInitialUpdateSetWordWrapr   r   s    r   rf  zInteractiveView.OnInitialUpdate  s<    //555		r!   c                 x    t           j                            |            t                              |            d S r   )r   r_  r   r   r   s    r   r   zInteractiveView.HookHandlers  s3    ,,T222$$T*****r!   N)r   r   r   r>   rd  rf  r   r1   r!   r   r]  r]    sP        9 9 9
* * *  
+ + + + +r!   r]  c                   "    e Zd ZddZd Zd ZdS )CInteractivePythonNc                     d| _         t          j                            | t          t          t          j        j        dd ||t          	  	         |                                  d S Nr   r   )	IsFinalDestroyr   WindowOutputr>   r   rB  WQ_LINEr]  Create)r@   makeDoc	makeFrames      r   r>   zCInteractivePython.__init__  sX    $$L 
	
 
	
 
	
 	r!   c                 |    | j         r|                                 t          j                            | |           d S r   )rm  r   r   rn  OnViewDestroy)r@   views     r   rt  z CInteractivePython.OnViewDestroy  s>     	!   ))$55555r!   c                 R    d| _         t          j                            |            d S r   )rm  r   rn  Closer   s    r   rw  zCInteractivePython.Close  s'    !!$'''''r!   r   )r   r   r   r>   rt  rw  r1   r!   r   rj  rj    sF           6 6 6
( ( ( ( (r!   rj  c                       e Zd Zd Zd ZdS )InteractiveFramec                 R    d | _         t          j                            |            d S r   )rR  r   WindowOutputFramer>   r   s    r   r>   zInteractiveFrame.__init__  s&     ))$/////r!   c                     |r	|| _         d S d S r   )rR  )r@   bActive	wndActivewndDeactives       r   OnMDIActivatezInteractiveFrame.OnMDIActivate  s     	*)DOOO	* 	*r!   N)r   r   r   r>   r  r1   r!   r   ry  ry    s2        0 0 0* * * * *r!   ry  i  c                   &    e Zd Zd Zd Zd Zd ZdS )DockedInteractiveViewc                     t                               |            |                     | j        t          j                   |                     | j        t          j                   d S r   )DockedInteractiveViewParentr   HookMessage
OnSetFocusr  WM_SETFOCUSOnKillFocusWM_KILLFOCUSr   s    r   r   z"DockedInteractiveView.HookHandlers  sS    #00666(*>???)8+@AAAAAr!   c                 T    |                                                      |            dS r   )rN  SetActiveView)r@   msgs     r   r  z DockedInteractiveView.OnSetFocus  s'    ++D111qr!   c                    |d         x}}	 t          j        |          }|                                |                                 k    }n# t           j        $ r d}Y nw xY w|r'|                                                     d            dS )NrS   r   r   )r   CreateWindowFromHandleGetTopLevelFramerQ  rN  r  )r@   r  hwndwparamrY  resets         r   r  z!DockedInteractiveView.OnKillFocus  s    Av	066C((**d.C.C.E.EEEE} 	 	 	EEE	 	6!!//555qs   >A AAc                 :   |                                  d         }t          j        j                            d|d           	 |                                 j        | k    r'|                                                     d            n# t          j	        $ r Y nw xY w	 t          j
                                                    | k    r&t          j
                                        d            n# t          j	        $ r Y nw xY wt                              | |          S )N   r   docked)GetWindowPlacementrD   	frameworkappSaveWindowSizerN  GetActiveViewr  r   rQ  rG  r  	OnDestroy)r@   r  newSizes      r   r  zDockedInteractiveView.OnDestroy  s   ))++A.**+?(SSS	""$$2d::##%%33D999} 	 	 	D		#%%3355==$&&44T:::} 	 	 	D	*44T3???s&   AB BBAC- -C?>C?N)r   r   r   r   r  r  r  r1   r!   r   r  r    sX        B B B
  
 
 
@ @ @ @ @r!   r  c                   &    e Zd Zd Zd Zd Zd ZdS )CDockedInteractivePythonc                 V    d| _         || _        t                              |            d S rE  )bFirstCreateddockbarrj  r>   r@   r  s     r   r>   z!CDockedInteractivePython.__init__.  s+    ##D)))))r!   c                    | j         rdS 	 t          j                    }|j        rdS n# t          j        t
          f$ r Y dS w xY w	 |                    t                    }|                                 S # t          j        $ r Y dS w xY wrl  )		bCreatingr   rG  closingrQ  rU  GetControlBar ID_DOCKED_INTERACTIVE_CONTROLBARIsWindowVisible)r@   framecbs      r   NeedRecreateWindowz+CDockedInteractivePython.NeedRecreateWindow3  s    > 	1	(**E} q~. 	 	 	11		$$%EFFB))++++} 	 	 	11	s!   ( AA.A5 5BBc                     	 t          j                                        t                    }t          j                                        |dd           d S # t           j        $ r t                       Y d S w xY wr   )r   rG  r  r  ShowControlBarrQ  CreateDockedInteractiveWindowr  s     r   RecreateWindowz'CDockedInteractivePython.RecreateWindowB  s    	,*,,::0 G  ""11'1a@@@@@} 	, 	, 	,)++++++	,s   AA A87A8c                 4   d| _         t          d |                                           }t          |          }t          j        j                            dd          }|d         |d         z
  dk    rd}t          j	        t          j
        z  t          j        z  }d}|                    | j        |||           |                                 d| _        |                                | _        d| _         | j        r|                    | j                   d S d S )Nr   r   r  rS   r   )r   r   i  r   i  )r  InteractiveDocumentDoCreateDocr  rD   r  r  LoadWindowSizer  WS_CHILD
WS_VISIBLE	WS_BORDERCreateWindowr  rf  r  GetFirstViewcurrentViewtitleSetTitle)r@   rb  ru  defRectstyleids         r   rp  zCDockedInteractivePython.CreateK  s   !$(8(8(:(:;;$S))/%445I8TT1:
"a''$G!H$77(:LL$,E7;;;++--: 	%LL$$$$$	% 	%r!   N)r   r   r   r>   r  r  rp  r1   r!   r   r  r  -  sP        * * *
  , , ,% % % % %r!   r  c                 8    t          |           at          j        S r   )r  editr  rX  s    r   InteractiveViewCreatorr  _  s    #F++Dr!   c                     ddl m}   |             }t          }|                    t	          j                    |dt                     |                    |                                t          j
        z  t          j        z  t          j        z             |                    t          j                   t	          j                                        |t          j                   d S )Nr   )
DockingBarr   )pywin.docking.DockingBarr  r  r  r   rG  r  SetBarStyleGetBarStyler   CBRS_TOOLTIPS
CBRS_FLYBYCBRS_SIZE_DYNAMICEnableDockingCBRS_ALIGN_ANYDockControlBarAFX_IDW_DOCKBAR_BOTTOM)r  barcreators      r   r  r  e  s     433333
*,,C$G(	   OO

	

	 
"	#   f+,,,))#v/LMMMMMr!   c                 N    t          dd          }|rt          | |           dS dS )zNCreate some sort of interactive window if the user's preference say we should.zShow at startupr   N)r    CreateInteractiveWindow)rq  rr  bCreates      r   %CreateInteractiveWindowUserPreferencer    s:    .22G 4333334 4r!   c                     t           
J d            t          dd          }|rt                       nt          | |           t           
J d            t           j                                         dS )z>Create a standard or docked interactive window unconditionallyNz#Creating second interactive window!Dockingr   z7Created interactive window, but did not set the global!)r  r    r  CreateMDIInteractiveWindowr  rP  )rq  rr  bDockings      r   r  r    sx    <<><<<i++H 7%''''"7I666Vr!   c                 L    | t           } |t          }t          | |          adS )zACreate a standard (non-docked) interactive window unconditionallyNrq  rr  )r  ry  rj  r  r  s     r   r  r    s/     %$	gCCCDDDr!   c                      t           ^t           j        Tt           j                                        t          j                    k    rdS t                                            da dS dS dS )a&  Destroy the interactive window.
    This is different to Closing the window,
    which may automatically re-appear.  Once destroyed, it can never be recreated,
    and a complete new instance must be created (which the various other helper
    functions will then do after making this call
    N)r  r  rN  r   rG  rw  r1   r!   r   DestroyInteractiveWindowr    s`     D,8**,,0D0F0FFFD JJLLLDDD 88r!   c                     t           t           j        t           j                                        t          j                    k    rFt          j                    } |                     t                    }|                     |dd           dS t           j                                                                         dS dS dS )zEClose the interactive window, allowing it to be re-created on demand.Nr   r   )	r  r  rN  r   rG  r  r  r  DestroyWindow)r  r  s     r   CloseInteractiveWindowr    s     D,8**,,0D0F0FFF(**E$$%EFFB  Q***** ++--;;===== 88r!   c                      t           t                       dS t                                           rt                                            dS t	                       dS )zAIf the interactive window is visible, hide it, otherwise show it.N)r  r  r  r  r  r1   r!   r   ToggleInteractiveWindowr    sY    |!!!!!""$$ 	%!!!!! #$$$$$r!   c                  *   t           t                       dS t                                           rt                                            dS t           j                                        } | t          j                    k    r t           j                                         dS t           j                                        	                                 t          j                    
                    t           j                                                   dS )z5Shows (or creates if necessary) an interactive windowN)r  r  r  r  r  rN  r   rG  rP  AutoRestorerW  r  s    r   ShowInteractiveWindowr    s    |!!!!!""$$ 	V!!!!!%4466F-//// ))+++++ //11==???$&&2243C3R3R3T3TUUUUUr!   c                  H    t           d uot                                            S r   )r  r  r1   r!   r   IsInteractiveWindowVisibler    s!    t=D$;$;$=$= ==r!   r  r   )Urx   r   r   rY   r4   r   r   pywin.framework.apprD   pywin.scintilla.controlpywin.scintilla.formatterpywin.scintilla.IDLEenvironmentr	  r,  r  r   	pywin.mfcr   r   r   rA   rE   tracerer   r   r   searchr  VERBOSEmatchr  rX   r   r(   r+   r-   r/   r*   r,   r.   r0   r5   rU  r7   r    r&   r2   r9   rH   rJ   rI   rK   rL   rM   INTERACTIVE_STYLESPythonSourceFormatterr=   r;   r   r   r   r_  r]  rn  rj  r{  ry  r  r  r  r  r  r  WindowOutputDocumentr  r  r  r  r  r  r  r  r  r  r1   r!   r   <module>r     s     				  



                      & & & &                !' 				       2:n--4 2:	 J    !%    " ,  B>EF GGG   CGCGGG
F F F FA A A     * / / / - $D ! %  /+A`! `! `! `! `!? `! `! `!Z! ! ! ! !d&A ! ! !0E) E) E) E) E) E) E) E)P+ + + + +ov'> + + +&( ( ( ( (, ( ( (4* * * * *v/ * * * $*  - #@ #@ #@ #@ #@7 #@ #@ #@L.% .% .% .% .%1 .% .% .%d  N N N< 1  4 4 4 4	  	  	  	 D D D D  $> > >	% 	% 	%V V V > > > > >s   'B/ /CC