
    	h                     x   S r SSKrSSKrSSKrSSKJr  SSKrSSKJrJ	r	  Sr
SrSrS	r0 \R                  S
_\R                  S
_\R                   S_\R"                  S_\R$                  S_\R&                  S
_\R(                  S_\R*                  S
_\R,                  S
_\R.                  S
_\R0                  S
_\R2                  S
_\R4                  S
_\R6                  S
_\R8                  S_\R:                  S
_rS rS r S r!S r" " S S5      r# " S S\RH                  \#5      r%S r& " S S\RH                  \#5      r' " S S\RH                  \#5      r( " S S\RR                  \#5      r) " S S\RT                  \#5      r* " S  S!\RH                  \#5      r+ " S" S#5      r, " S$ S%5      r-\.S&:X  a	  \/" S'5        gg)(a  genpy.py - The worker for makepy.  See makepy.py for more details

This code was moved simply to speed Python in normal circumstances.  As the makepy.py
is normally run from the command line, it reparses the code each time.  Now makepy
is nothing more than the command line handler and public interface.

The makepy command line etc handling is also getting large enough in its own right!
    N)chain   )buildgencachez0.5.01fullzdemand(base)zdemand(child)intfloatstrtypezdatetime.datec                     / nU SS   H/  n[         R                  " U5      nUc    OUR                  U5        M1     [        U5      $ Nr   )r   MakeDefaultArgReprappendtuple)argsDescretdescdefaults       hC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\win32com/client/genpy.pyMakeDefaultArgsForPropertyPutr   =   sG    
C**40?

7	 
 :    c                 d    [        U Vs/ s H  ofS S PM	     sn5      nSU UUS S UUU4-  $ s  snf )N   z(%s, %d, %s, %s, "%s", %s))r   )dispidwFlagsretTypeargTypesuserresultCLSIDwhats          r   MakeMapLineEntryr!   G   sN    84842Ah845H'+   5s   -c                 "    U S S S:X  a  U $ SU -   $ )Nr   On )	eventNames    r   MakeEventMethodNamer&   T   s!    !}ir   c           	      Z   [        SUS9  [        U R                  R                  5       U R                  R                  5       U R
                  R                  5       5       H>  nUR                  R                  n[        SU[        UR                  S   5      4-  US9  M@     [        SUS9  g )Nz	_dispid_to_func_ = {filez		%9d : "%s",r   z		})
printr   
propMapGetvalues
propMapPutmapFuncsr   memidr&   names)objstreamentryr/   s       r   WriteSinkEventMapr4   [   s    	
"0
 

  (;EKKN(K LL	
 
'r   c                        \ rS rSrS rS rSrg)WritableIteml   c                     U R                   UR                   :X  a  U R                  UR                  :  $ U R                   UR                   :  $ N)orderdoc)selfothers     r   __lt__WritableItem.__lt__m   s8    ::$88eii''zzEKK''r   c                 <    SU R                   < SU R                   3$ )NzOleItem: doc=z, order=)r;   r:   r<   s    r   __repr__WritableItem.__repr__r   s    txxl(4::,??r   r$   N)__name__
__module____qualname____firstlineno__r>   rB   __static_attributes__r$   r   r   r6   r6   l   s    (
@r   r6   c                   ,    \ rS rSrSrSrSS jrS rSrg)	
RecordItemv   	   RECORDNc                 V    [         R                  R                  X5        US   U l        g Nr   )r   OleItem__init__clsid)r<   typeInfotypeAttrr;   bForUsers        r   rQ   RecordItem.__init__z   s!     	t)a[
r   c                     g r9   r$   r<   	generators     r   
WriteClassRecordItem.WriteClass       r   )rR   r   	rD   rE   rF   rG   r:   typenamerQ   rZ   rH   r$   r   r   rJ   rJ   v   s    EH	!r   rJ   c                     UR                  5        H\  nU R                  (       d  M  UR                  (       d  M)  UR                  S   U R                  S   :X  d  MK  UR                  X5        M^     g rO   )r,   r;   aliasDocWriteAliasItem)item
aliasItemsr2   aliass       r   WriteAliasesForItemre      sL    ""$888ENN1,=!,L  4 %r   c                   ,    \ rS rSrSrSrSS jrS rSrg)		AliasItem   r   ALIASNc                 R   [         R                  R                  X5        US   nX l        [	        U[
        5      (       aZ  [	        US   [        5      (       aB  US   nUR                  U5      nUR                  S5      U l	        UR                  5       U l        g S U l	        S U l        g )N   r   )r   rP   rQ   attr
isinstancer   r   GetRefTypeInfoGetDocumentationr`   GetTypeAttr	aliasAttr)r<   typeinform   r;   rU   aihrefalinfos           r   rQ   AliasItem.__init__   s    t)"X	b%  Z1s%;%;a5D,,T2F"33B7DM#//1DN DM!DNr   c                    U R                   (       a  g U R                  (       aE  U R                  S   nX1;   a  X   R                  X5        [        U R                  S   S-   U-   US9  OKU R
                  S   n[        U[        5      (       a'   [        U   n[        SU R                  S    SU 3US9  [        US9  SU l         g ! [         a)    [        U R                  S   S-   [        U5      -   US9   NCf = f)	Nr   z = r(   rk   z# =z# = None # Can't convert alias info r   )bWrittenr`   ra   r*   r;   rm   rn   r   mapVTToTypeStringKeyErrorr
   )r<   	aliasDictr2   depNamert   typeStrs         r   ra   AliasItem.WriteAliasItem   s    ====mmA&G#"11)D$((1+%/f=2B"c""/3GBtxx{m1WI6VD 	6   &KKcRTgU#s   &C 0C87C8)rr   r`   rm   rz   r   )	rD   rE   rF   rG   r:   r^   rQ   ra   rH   r$   r   r   rg   rg      s    EH"r   rg   c                   ,    \ rS rSrSrSrSS jrS rSrg)	EnumerationItem   r   ENUMERATIONNc                    [         R                  R                  X5        US   U l        0 U l        US   nU[
        R                  -  =(       d    U[
        R                  -  U l        [        US   5       HN  nUR                  U5      nUR                  US   5      S   n[         R                  " U5      U R                  U'   MP     g )Nr         )r   rP   rQ   rR   mapVars	pythoncomTYPEFLAG_FHIDDENTYPEFLAG_FRESTRICTEDhiddenrange
GetVarDescGetNamesMapEntry)	r<   rs   rm   r;   rU   	typeFlagsjvdescnames	            r   rQ   EnumerationItem.__init__   s    t)!W
H		222 :9999 	
 tAwA''*E$$U1X.q1D!&!6DLL  r   c           	         SnU R                   S   n[        U R                  5       H  nU R                  U   nUR                  nUS   [        R
                  :X  d  M7  US   n[        U5      n [        USS5        [        S	[        R                  " US
5      <S SU<S SU< 3US9  US-  nM     U$ ! [         a    UR                  SS5      nSU S3n N\f = f)Nr      r   z<makepy>eval"'z7" # This VARIANT type cannot be converted automatically	T30ry   10z # from enum r(   )r;   sortedr   r   r   	VAR_CONSTreprcompileSyntaxErrorreplacer*   r   MakePublicAttributeName)	r<   r2   numenumNamer   r3   r   valuses	            r   WriteEnumerationItems%EnumerationItem.WriteEnumerationItems   s    88A;4<<(DLL&EJJEQx9...Ah3iCV4 44T4@#xQ
 q1 )2 
 #  ++c3/CC5 WX 	s   /B44"CC)rR   r   r   r   )	rD   rE   rF   rG   r:   r^   rQ   r   rH   r$   r   r   r   r      s    EH7*r   r   c                   $    \ rS rSrSrS rS rSrg)
VTableItem   r   c                 4    U R                  U5        SU l        g r   )WriteVTableMaprz   rX   s     r   rZ   VTableItem.WriteClass   s    I&r   c           
         UR                   n[        SU R                  U R                  4-  US9  [        U R                   S3US9  U R                   GH  nUu  pEnUR
                  [        R                  :X  d   e/ nSn[        SSUS9  U H3  n	[        [        U	5      SSUS9  US	-  nUS
-  S:X  d  M(  [        SSUS9  M5     [        SXVR                  UR                  4-  SUS9  UR                   Hg  n
US	-  nUS
-  S:X  a  [        SSUS9  [        R                  " U
5      nU
S   c  S nO[        U
S   5      n[        [        U
S   U
S	   X45      SSUS9  Mi     [        SSUS9  [        [        UR                  5      SSUS9  [        [        UR                  5      SSUS9  [        [        UR                   5      SSUS9  [        [        UR"                  5      SSUS9  [        [        UR$                  5      SSUS9  [        [        UR&                  5      SSUS9  [        [        UR(                  5      SSUS9  [        SUS9  GM     [        SUS9  [        US9  g )Nz%s_vtables_dispatch_ = %dr(   z_vtables_ = [r   z	(( )endr)   ,r      z
			z), %d, (%r, %r, [   z],z)),])r)   r*   python_namebIsDispatchvtableFuncsdesckindr   DESCKIND_FUNCDESCr   r/   
scodeArrayargsr   r   funckindinvkindcallconv
cParamsOptoVftrettype
wFuncFlags)r<   rY   r2   vr0   r   r   	arg_reprsitem_numr   argdefval	arg3_reprs                r   r   VTableItem.WriteVTableMap   sC   '4+;+;T=M=M*NN	
 	!!"-0v>!!A"#E4==I$?$????IH&c/d4j#3V<Aa<1$*#F;	 
 #vzz4??&KK
 yyAa<1$*#F;11#6q6> $I $SVI#a&#a&&<=sRX ! $Cf-$t}}%s&A$t||$cs@$t}}%s&A$t'#FC$tyy/3Cf=$t||$cs@$t'#FC%f%K "L 	c6r   )rz   N)rD   rE   rF   rG   r:   rZ   r   rH   r$   r   r   r   r      s    E.r   r   c                   @    \ rS rSrSrSS jrS rS rS rS r	S	 r
S
rg)DispatchItemi.  r   Nc                 ^    [         R                  R                  XX#5        X l        S U l        g r9   )r   r   rQ   	type_attrcoclass_clsid)r<   rs   rm   r;   s       r   rQ   DispatchItem.__init__1  s%    ##DD>!r   c                 X   U R                   (       d)  U R                  R                  [        R                  :X  d  g U R
                  (       a#  U R                  U5        U R                  U5        O"U R                  U5        U R                  U5        [        UR                  S9  SU l        g )Nr(   r   )r   r   typekindr   TKIND_DISPATCHbIsSinkWriteEventSinkClassHeaderWriteCallbackClassBodyWriteClassHeaderWriteClassBodyr*   r)   rz   rX   s     r   rZ   DispatchItem.WriteClass6  sz      NN++y/G/GG <<**95''	2!!),	*9>>"r   c                 $   UR                  5         U R                  nUR                  n[        SU R                  -   S-   US9  US   (       a$  [        S[
        R                  " US   5      -   US9   [        R                  " U R                  5      n[        SU-  US9  [        SU R                  < 3US9  U R                  c  [        SUS9  O[        S	U R                  < 3US9  [        US9  SU l        g ! [        R                   a     Nof = f)
Nclass z(DispatchBaseClass):r(   r   r   +	# This class is creatable by the name '%s'		CLSID = 	coclass_clsid = None	coclass_clsid = )checkWriteDispatchBaseClassr;   r)   r*   r   r   _makeDocStringr   ProgIDFromCLSIDrR   	com_errorr   rz   r<   rY   r;   r2   progIds        r   r   DispatchItem.WriteClassHeaderG  s    --/hhh))),BBPq6$--c!f55FC	..tzz:F>&IPV
 	
4::.)7%*8&t'9'9&<=FK6 "" 		s   2-C8 8DDc                    UR                  5         U R                  nUR                  n[        SU R                  -   S-   US9  US   (       a$  [        S[
        R                  " US   5      -   US9   [        R                  " U R                  5      n[        SU-  US9  [        SU R                  < 3US9  U R                  c  [        SUS9  O[        S	U R                  < 3US9  [        S
US9  [        X5        [        US9  [        SUS9  [        SUS9  [        SUS9  [        SUS9  [        SUS9  [        SUS9  [        SUS9  [        SUS9  [        SUS9  [        SUS9  [        SUS9  [        SUS9  [        SUS9  [        SUS9  [        SUS9  [        SUS9  [        SUS9  [        SUS9  [        SUS9  [        SUS9  [        SUS9  [        S US9  [        US9  SU l        g ! [        R                   a     GNjf = f)!Nr   :r(   r   r   r   z	CLSID = CLSID_Sink = r   r   z/	_public_methods_ = [] # For COM Server supportz!	def __init__(self, oobj = None):z		if oobj is None:z			self._olecp = Nonez		else:z			import win32com.server.utilz8			from win32com.server.policy import EventHandlerPolicyzL			cpc=oobj._oleobj_.QueryInterface(pythoncom.IID_IConnectionPointContainer)z.			cp=cpc.FindConnectionPoint(self.CLSID_Sink)zR			cookie=cp.Advise(win32com.server.util.wrap(self, usePolicy=EventHandlerPolicy))z-			self._olecp,self._olecp_cookie = cp,cookiez	def __del__(self):		try:z			self.close()z		except pythoncom.com_error:z			passz	def close(self):z		if self._olecp is not None:zV			cp,cookie,self._olecp,self._olecp_cookie = self._olecp,self._olecp_cookie,None,Nonez			cp.Unadvise(cookie)z"	def _query_interface_(self, iid):z		import win32com.server.utilzA		if iid==self.CLSID_Sink: return win32com.server.util.wrap(self))checkWriteEventBaseClassr;   r)   r*   r   r   r   r   r   rR   r   r   r4   rz   r   s        r   r   &DispatchItem.WriteEventSinkClassHeader]  s    **,hhh)))C/f=q6$--c!f55FC	..tzz:F>&IPV
 	'

~6VD%*8&t'9'9&<=FK@vN$'62@$62(v6k'1?IPV	
 	]	
 	AOc	
 	@vN$62jv&"0/f=l("0/f=g	
 	)73&A/f=Q	
 	6_ "" 		s   2-G2 2H
	H
c                    UR                   n[        SUS9  [        SUS9  [        U R                  R	                  5       U R
                  R	                  5       U R                  R	                  5       5       H  nUR                  n[        UR                  S   5      n[        SU-   S-   [        R                  " UUR                  SSS	S
SS9-   S-   US9  UR                  (       d  Mr  UR                  S   (       d  M  [        S[        R                  " UR                  S   5      -   US9  M     [        US9  SU l        g )Nz	# Event Handlersr(   zE	# If you create handlers, they should have the following prototypes:r   z#	def z(selfdefaultNamedOptArgdefaultNamedNotOptArgdefaultUnnamedArgzpythoncom.MissingT)
is_commentz):r   z#		)r)   r*   r   r+   r,   r-   r.   r   r&   r0   r   BuildCallListr;   r   rz   )r<   rY   r2   r3   fdescmethNames         r   r   #DispatchItem.WriteCallbackClassBody  s"   "0T	
 OO""$doo&<&<&>@T@T@V
E JJE*5;;q>:H %%KK(+''#    yyyUYYq\\g 4 4UYYq\ BBP-
. 	6r   c           
         UR                   nS S S S S.n[        U R                  5       GH  nU R                  U   nUR                  R                  [
        R                  :X  d   eUR                  R                  nUR                  R                  [
        R                  -  (       a  U[
        R                  :w  a  M  UR                  R                  [
        R                  :w  a  M  U[
        R                  :X  a  SnOBU[
        R                  :X  a  XUR                  R                  S 4US'   GM  UR                  5       nXs;   a  X7   c  XUR                  R                  S 4X7'   UR                   (       d  UR"                  (       a  GMa  UR%                  5       (       a  ['        SUR%                  5       -   US9  UR(                  (       a  ['        SU-  US9  U R+                  U[,        R.                  " U5      5      nU H  n	['        XS9  M     GM     ['        SUS9  [        U R0                  5       GHo  n
U R0                  U
   nUR                   (       d  UR"                  (       a  M7  UR%                  5       nU(       a  ['        SU
 S	U S
3US9  U
R                  5       nUR                  nUS   nSn[3        UR                  [
        R4                  UUU
UR7                  5       5      nUR                  [
        R                  :X  a  SnO1UR                  [
        R                  :X  a  SnOU
R                  5       nXs;   a;  X7   c6  U[
        R4                  U4X7'   UR                  [
        R                  :X  a  GMJ  ['        S[,        R.                  " U
5       SU S3US9  GMr     [        U R8                  5       GH  n
U R8                  U
   nUR                   (       d  UR"                  (       a  M7  UR%                  5       (       a'  ['        SR;                  XR%                  5       5      US9  UR                  nUR                  [
        R                  :X  d   eU
R                  5       nUS   nUS   n[3        US   [
        R4                  UUU
UR7                  5       5      nUR                  [
        R                  :X  a  SnO1UR                  [
        R                  :X  a  SnOU
R                  5       nXs;   a;  X7   c6  U[
        R4                  U4X7'   UR                  [
        R                  :X  a  GMz  ['        S[,        R.                  " U
5       SU S3US9  GM     ['        SUS9  ['        SUS9  [        U R0                  5       H  n
U R0                  U
   nUR                   (       d  UR"                  (       a  M6  U
R                  5       nUR                  n[,        R<                  " US   5      nUc  SnOUS-  n['        S[,        R.                  " U
5      US   [
        R>                  U4-  US9  M     [        U R@                  5       H{  n
U R@                  U
   nUR                   (       d  UR"                  (       a  M6  UR                  n[C        US   5      n['        S[,        R.                  " U
5      US   US   U4-  US9  M}     ['        SUS9  US   (       a  US   u  nnnUc  SnU R+                  US5      nOSnSU-  /n['        SU SURD                  S    S
3US9  U H  n	['        XS9  M     ['        SUS9  ['        S US9  ['        S!US9  ['        S"US9  US   (       aZ  US   u  nnnUR                  R                  [
        R                  :X  d   eUR                  R                  nUR7                  5       nO#[
        RF                  [
        R4                  -  nS#nUS#:X  a-  S$U R                  ;   a  U R                  S$   R7                  5       n['        S%US9  ['        S&US9  ['        S'US9  ['        S([
        R                  U4-  US9  ['        S)US9  ['        S*US9  ['        S+U-  US9  US,   (       ae  US,   u  nnnUR7                  5       n['        S-US9  ['        S.US9  ['        S/US9  ['        S0US9  ['        S1UR                  R                  UU4-  US9  US2   (       ag  US2   u  nnnUc  SnU R+                  US35      nOSnS4U-  /n['        S5U-  US9  U H  n	['        XS9  M     ['        S6US9  ['        S7US9  ['        S8US9  g g )9N)countrb   value_newenumr   r   z	# Result is of type r(   ze	# The method %s is actually a property, but must be used as a method to correctly pass the argumentsz	_prop_map_get_ = {z		# Property 'z' is an object of type 'r   r   r$   z		"z": r   z+		# Method '{}' returns object of type '{}'   r   z	}z	_prop_map_put_ = { z"		"%s" : ((%s, LCID, %d, 0),(%s)),z		"%s": ((%s, LCID, %d, 0),%s),r   method__call__propertyz4	def __call__(self):
		return self._ApplyTypes_(*%s)z	# Default z for this class is 'z	def __str__(self, *args):z"		return str(self.__call__(*args))z	def __int__(self, *args):z"		return int(self.__call__(*args))NoneItemz	def __iter__(self):z,		"Return a Python iterator for this object"r   z9			ob = self._oleobj_.InvokeTypes(%d,LCID,%d,(13, 10),())z		except pythoncom.error:z>			raise TypeError("This object does not support enumeration")z.		return win32com.client.util.Iterator(ob, %s)rb   z^	#This class has Item property/method which allows indexed access with the object[key] syntax.zQ	#Some objects will accept a string or other type of key in addition to integers.z?	#Note that many Office objects do not use zero-based indexing.z	def __getitem__(self, key):zZ		return self._get_good_object_(self._oleobj_.Invoke(*(%d, LCID, %d, 1, key)), "Item", %s)r   __len__z3	def __len__(self):
		return self._ApplyTypes_(*%s)z;	#This class has Count() %s - allow len(ob) to provide thiszP	#This class has a __len__ - this is needed so 'if object:' always returns TRUE.z	def __bool__(self):z		return True)$r)   r   r.   r   r   r   r   r/   r   FUNCFLAG_FRESTRICTEDDISPID_NEWENUMr   FUNC_DISPATCHDISPID_VALUEr   lowerbBuildHiddenr   GetResultNamer*   wasPropertyMakeFuncMethodr   r   propMapr!   DISPATCH_PROPERTYGETGetResultCLSIDStrr+   formatr   DISPATCH_PROPERTYPUTr-   r   r0   DISPATCH_METHOD)r<   rY   r2   specialItemsr   r3   r   lkeyr   linekey
resultNamedetails
resultDescargDescmapEntry
defArgDesc
invoketypepropArgsr^   	enumEntryr   r   s                          r   r   DispatchItem.WriteClassBody  s   	
 4==)DMM$'E::&&)*E*EEEE ZZ%%F

%%	(F(FFi666zz""i&=&==///9333,1::3E3Et+LZ(zz|$);)C&+ZZ-?-?%F"%%U\\\&&((2U5H5H5JJQWX$$ A#
 ))%1N1Nt1TUD$,  I *L 	$62$,,'CLL%E%%U\\\"002
*3%/G
|STU# yy{**$QZ
+MM22++- ==I$:$::"D]]i&>&>>%D99;D(\-?-G !66 *L& }}	(@(@@ E99#>?s8*ANS (Z $//*COOC(E%%U\\\&&((GNN!4!4!6 $	  **''9+F+FFFFyy{!!*$QZ
+AJ22++- ==I$:$::"D]]i&>&>>%D99;D(\-?-G !66 *L& }}	(@(@@ E99#>?s8*ANS +\ 	e&!$62$,,'CLL%E%%U\\\yy{**"55gajA
%!#J#%J:55c:
!66"	  	 (, $//*COOC(E%%U\\\**:71:F
755c:

"	  	 + 	e&! *6w*?'E:x#))%<%N xj(<U[[^<LAN d( /f=8vF/f=8vF 
#.::.F+Iz8>>**i.I.IIIInn,,G $557K//)2P2PPG K& Vt}}%<--/AACK%F3>VLjv&J''12	

 	+&9O	

 	>L	

 *6v*>'E:x113Kq d R 1?n::##Z=>  *6w*?'E:x#))%;%MPXX N
 d(  c )7#&1/ !r   )rz   r   r   r9   )rD   rE   rF   rG   r:   rQ   rZ   r   r   r   r   rH   r$   r   r   r   r   .  s(    E"
",;zB]2r   r   c                   4    \ rS rSrSrSrS/ / S4S jrS rSrg)	CoClassItemi  r   COCLASSNr   c                 |    [         R                  R                  X5        US   U l        X@l        XPl        SU l        g )Nr   r   )r   rP   rQ   rR   sources
interfacesr   )r<   rs   rm   r;   r$  r%  rU   s          r   rQ   CoClassItem.__init__  s1    t)!W
$r   c           	      |   UR                  5         U R                  nUR                  nUR                  [        :X  a  / nU R
                   H  u  pVUR                  U5        M     U R                   H  u  pVUR                  U5        M     [        SUS9  U Hs  n[        SUR                   SUR                   S3US9  [        SR                  UR                  UR                  UR                  UR                  5      US9  SUl        Mu      [        R                  " U R                  5      n[        SU-  US9  [        S	U R                  -  US9  U(       a  US   (       a  [        S
US   -   US9  [        SU R                  < 3US9  [        SUS9  S nU R
                   H[  u  pU[        R"                  -  (       a  U	nU	R                  (       a  U	R                  n
OSU	R                   S3n
[        SU
 S3US9  M]     [        SUS9  U(       a;  UR                  (       a  UR                  nOSUR                   S3n[        SU 3US9  [        SUS9  S nU R                   H[  u  pU[        R"                  -  (       a  U	nU	R                  (       a  U	R                  n
OSU	R                   S3n
[        SU
 S3US9  M]     [        SUS9  U(       a;  UR                  (       a  UR                  nOSUR                   S3n[        SU 3US9  SU l        [        US9  g ! [        R                    a     GNf = f)Nz
import sysr(   z__import__('.z')z{} = sys.modules['{}.{}'].{}r   z(# This CoClass is known by the name '%s'z'class %s(CoClassBaseClass): # A CoClassz	# r   z	coclass_sources = [r   z		r   z	]z	default_source = z	coclass_interfaces = [z	default_interface = )checkWriteCoClassBaseClassr;   r)   generate_typeGEN_DEMAND_CHILDr$  r   r%  r*   base_mod_namer   r  rz   r   r   rR   r   IMPLTYPEFLAG_FDEFAULT)r<   rY   r;   r2   referenced_itemsrefflagr   defItemrb   r  defNames               r   rZ   CoClassItem.WriteClass  s   ,,.hh""&66!!\\	 '', *!__	 '', -,V,'"9#:#:";1S__<MRP 299!//	    ! ( 	..tzz:F<GfU 	59I9IJQW	
 3q6&3q6//
4::.)7%F3,,JDi555 }}&&$**Q'DQ-f- ' 	e&!!--gmm_A.'y1?(v6//JDi555}}&&$**Q'DQ-f- * 	e&!!--gmm_A.*7)46B6] "" 		s   -L# #L;:L;)r   rz   rR   r%  r$  r]   r$   r   r   r!  r!    s!    EH+/UV Mr   r!  c                   R    \ rS rSrS rS rS rSS jrSS jrS r	S	 r
S
 rS rSrg)GeneratorProgressi6  c                     g r9   r$   rA   s    r   rQ   GeneratorProgress.__init__7  r\   r   c                     Xl         g)zCalled when the process starts.Ntlb_desc)r<   r:  s     r   StartingGeneratorProgress.Starting:  s     r   c                     g)z$Called when the process is complete.Nr$   rA   s    r   FinishedGeneratorProgress.Finished>      r   Nc                     g)ziWe are entering a major step.  If maxticks, then this
is how many ticks we expect to make until finished
Nr$   )r<   r   maxtickss      r   SetDescription GeneratorProgress.SetDescriptionA  r@  r   c                     g)z>Minor progress step.  Can provide new description if necessaryNr$   r<   r   s     r   TickGeneratorProgress.TickF  r@  r   c                     g)zVerbose/Debugging output.Nr$   rF  s     r   VerboseProgress!GeneratorProgress.VerboseProgressI  r@  r   c                     g)zIf a warning is generatedNr$   rF  s     r   
LogWarningGeneratorProgress.LogWarningL  r@  r   c                     g r9   r$   r<   filenames     r   LogBeginGenerate"GeneratorProgress.LogBeginGenerateO  r\   r   c                     g r9   r$   rA   s    r   CloseGeneratorProgress.CloseR  r\   r   r9  r9   )rD   rE   rF   rG   rQ   r;  r>  rC  rG  rJ  rM  rR  rU  rH   r$   r   r   r5  r5  6  s0    !3
M((r   r5  c                       \ rS rSr SS jrS rS rS rS rS r	SS jr
S	 rS
 rSS jrS rS rS rS rS rS rS rSrg)	GeneratoriV  c                 l    SU l         SU l        SU l        Xl        X l        X@l        X0l        S U l        g rO   )bHaveWrittenDispatchBaseClassbHaveWrittenCoClassBaseClassbHaveWrittenEventBaseClasstypelibsourceFilenamer  progressr)   )r<   r]  r^  progressObjectr  s        r   rQ   Generator.__init__W  s9     ./*,-)*+',(&	r   c                 F   / n[        U R                  R                  5       5       Hw  nU R                  R                  U5      nU R                  R	                  U5      nU R                  R                  U5      nUR                  5       nUR                  X4XV45        My     U$ r9   )r   r]  GetTypeInfoCountGetTypeInfoGetTypeInfoTyperp   rq   r   )r<   r   iinfoinfotyper;   rm   s          r   CollectOleItemInfosFromType%Generator.CollectOleItemInfosFromTypeh  s    t||4467A<<++A.D||33A6H,,//2C##%DJJ23 8 
r   c           	      r   Uu  p#pE/ n[        US   5       Hu  nUR                  U5      n UR                  UR                  U5      5      n	U	R                  5       n
UR                  UU
R                  U	U	R                  S5      U
U45        Mw     [        X%U5      nX4$ ! [        R
                   a     M  f = f)Nr   rl   )r   GetImplTypeFlagsro   GetRefTypeOfImplTyper   r   rq   r   r   rp   r!  )r<   type_info_tuplerg  rh  r;   rm   child_infosr   flagsrefTyperefAttrnewItems               r   _Build_CoClassGenerator._Build_CoClassr  s    $3!tAwA))!,E--d.G.G.JK ))+G$$,,R0	  ( d#.### && s    BB65B6c                 Z   0 n0 nU GHd  u  pxppUR                   [        R                  :X  d=  UR                   [        R                  :X  d  MF  US   [        R                  -  (       d  Mc  US   nX;   a  X=   nO[        XU
5      nXUR                  '   UR                  Ul        U[        R                  -  (       a  SUl	        X4X^R                  '   OX4XnR                  '   X;  d  M  US   [        R                  -  (       d  M  U	R                  U	R                  S5      5      n	U	R                  5       nUR                   [        R                  :X  d   S5       e[        XU
5      nXU'   GMg     [        UR!                  5       5      Ul        [        UR!                  5       5      Ul        g )Nr   r   r   rl   zmust be interface bynow!)r   r   r   TKIND_INTERFACETYPEFLAG_FDISPATCHABLEr   rR   r   IMPLTYPEFLAG_FSOURCEr   TYPEFLAG_FDUALro   rm  rq   r   listr,   r$  r%  )r<   coclasscoclass_infooleItemsvtableItemsr$  r%  rg  	info_typerq  r;   rr  rp  rR   dispItem
vtableItems                   r   _Build_CoClassChildren Generator._Build_CoClassChildren  sr   
=I9DW79#;#;;  I$=$==BK)"B"BBB
$'H+GcBH/7X^^,)0&9999'(H$/7.?GNN+2:1BJ~~.+i>V>V0V0V%44W5Q5QRT5UVG%113G"++y/H/HH 2H ",Gc!BJ)3&5 >J6 w~~/0!*"3"3"56r   c                    Uu  p#pES =pgU[         R                  :X  d/  U[         R                  :X  a  US   [         R                  -  (       as  [	        X%U5      nUR
                  [         R                  -  (       aC  UR                  S5      nUR                  U5      nUR                  5       n[         R                  nOS nUS [         R                  4;   d   S5       eU[         R                  :X  a  [        X%U5      nXg4$ )Nr   rl   z&Must be a real interface at this point)r   r   rw  rx  r   
wTypeFlagsrz  rm  ro   rq   r   )	r<   rn  rg  rh  r;   rm   oleItemr  refhtypes	            r   _Build_InterfaceGenerator._Build_Interface  s    $3!##y///	111R9;;;"4s3G!9!9944R8**84'')$44%%
 
 	4 4	4 
 y000#D4J""r   c                 <   U R                   (       d   S5       e0 n0 n0 n0 nU R                  5        GHd  nUu  pgpU	S   n
U[        R                  :X  d  U[        R                  :X  a  [        XiU5      nXUR                  S   '   MU  U[        R                  [        R                  4;   a)  X;  a"  U R                  U5      u  pXU
'   Ub  XU
'   M  M  M  U[        R                  :X  d  U[        R                  :X  a  [        XiU5      nXUR                  '   M  U[        R                  :X  a  M  U[        R                  :X  a6  U R!                  U5      u  pU R#                  XX5        XUR                  '   GMF  U R$                  R'                  SU-  5        GMg     XX44$ )NzOThis code doesn't look at the hidden flag - I thought everyone set it true!?!?!r   zUnknown TKIND found: %d)r  ri  r   
TKIND_ENUMTKIND_MODULEr   r;   r   rw  r  TKIND_RECORDTKIND_UNIONrJ   rR   TKIND_ALIASTKIND_COCLASSrt  r  r_  rM  )r<   r~  	enumItemsrecordItemsr  rn  rg  rh  r;   rm   rR   rs  r  r  ro  s                  r   BuildOleItemsFromTypeGenerator.BuildOleItemsFromType  s      	
]	
  	#??AO(7%DCGE9///8y?U?U3U)$c:,3'++a.) i66	8Q8QRR(*.*?*?*P'G&-UO!--7E* . ) I222h)BWBW6W$T5-4GMM*Y222Y444'+':':?'K$++G(X*1'(()BX)MN7  B: K<<r   c                 :    U R                  U5      n[        USUS9$ )Nwt)encoding)get_temp_filenameopen)r<   rQ  r  temp_filenames       r   open_writerGenerator.open_writer  s#     ..x8M4(;;r   c                     UR                  5         U R                  U5      nU(       a  [        R                  " XA5        g  [        R                  " U5        [        R                  " U5        g ! [
         a     g f = fr9   )closer  osr   unlinkOSError)r<   rQ  fworkedr  s        r   finish_writerGenerator.finish_writer  sY    		..x8JJ}/		(#		-( s   ,A. .
A;:A;c                 6    SU[         R                  " 5       4-  $ )Nz
%s.%d.temp)r  getpidrP  s     r   r  Generator.get_temp_filename  s    x555r   c                     U(       a  [         U l        O[        U l        Xl        U R	                  5         S U l        U R
                  R                  5         g r9   )GEN_DEMAND_BASEr*  GEN_FULLr)   do_generater_  r>  )r<   r)   is_for_demands      r   generateGenerator.generate
  s=    !0D!)D		 r   c                 4   U R                   R                  5       nU R                   R                  S5      nSnUS   (       a  US   nSU l        SU l        SU l        U R                  R                  (       d   U R                  5       eU R                  R                  n[        SU S3U R                  S9  [        S[         3U R                  S9  [        S	R                  [        R                  R                  S
S5      5      U R                  S9  U R                  (       aB  [        S[        R                   R#                  U R                  5      S    S3U R                  S9  [        S[$        R&                  " [$        R$                  " 5       5      -  U R                  S9  [        [(        R*                  " U5      U R                  S9  [        S[        < 3U R                  S9  [        S[        R,                  S 3U R                  S9  [        U R                  S9  [        SU R                  S9  [        SU R                  S9  [        SU R                  S9  [        SU R                  S9  [        U R                  S9  [        SU R                  S9  [        SU R                  S9  [        SU R                  S9  [        SU R                  S9  [        SU R                  S9  [        U R                  S9  [        SUS   < 3U R                  S9  [        SUS    3U R                  S9  [        SUS    3U R                  S9  [        S US!    3U R                  S9  [        S"[/        US   5      -   U R                  S9  [        U R                  S9  g )#Nrl   r   r   r   z# -*- coding: z -*-r(   z# Created by makepy.py version z# By python version {}
-z# From type library 'r   z# On %szmakepy_version = zpython_version = 0xxz:import win32com.client.CLSIDToClass, pythoncom, pywintypeszimport win32com.client.utilzfrom pywintypes import IIDz$from win32com.client import DispatchzC# The following 3 lines may need tweaking for the particular serverz;# Candidates are pythoncom.Missing, .Empty and .ArgNotFoundz"defaultNamedOptArg=pythoncom.Emptyz%defaultNamedNotOptArg=pythoncom.Emptyz!defaultUnnamedArg=pythoncom.EmptyzCLSID = zMajorVersion = r   zMinorVersion = r   zLibraryFlags = r   zLCID = )r]  
GetLibAttrrp   rZ  r[  r\  r)   r  r*   makepy_versionr  sysversionr   r^  r  pathsplittimectimer   r   
hexversionhex)r<   la	moduleDocdocDescr  s        r   do_gen_file_headerGenerator.do_gen_file_header  s   \\$$&LL11"5	Q<lG ./*,-)*+' yy!!,499,!99%%xj-DII>//?@tyyQ$++CKK,?,?c,JK	
 'd6I6I(J1(M'NaPYY 	i$**TYY[11		Be""7+$))<!.!34499E#CNN1#56TYYG499Htyy	
 	+$))<*;4499E499Q	
 	I	
 	2C5DIIF1		B499A	"31w'dii81w'dii81w'dii8i#be*$4995499r   c                 
   U R                   R                  S5      nU R                  nSnUS   (       a  US   nU R                  R	                  U5        U R                  R                  S5        U R                  5         U R                  5       u  pEpgU R                  R                  S[        U5      [        U5      -   [        U5      -   5        U(       as  [        SUS9  Sn[        UR                  5       5       H0  n	XR                  U5      -  nU R                  R                  5         M2     U(       d
  [        S	US9  [        US9  U R                  [        :X  a  [        [!        S UR                  5       5      5       H.  n	U R                  R                  5         U	R#                  U 5        M0     [        UR                  5       5       H.  n	U R                  R                  5         U	R#                  U 5        M0     O0U R                  R                  [        U5      [        U5      -   5        [        S
US9  UR                  5        H^  n
U
R$                  S   < SU
R&                   S3nU
R&                  [(        R*                  :X  a  [        SU 3SUS9  MQ  [        SU 3US9  M`     [        SUS9  [        US9  U R                  [        :X  a  [        SUS9  UR                  5        H@  nUc  M  UR,                  (       d  M  [        SUR&                   SUR.                   S3US9  MB     [        SUS9  [        SUS9  [        SUS9  [        SUS9  [        SUS9  UR                  5        H(  n[        SUR&                   SUR.                   S3US9  M*     [        SUS9  [        US9  O[        SUS9  [        SUS9  UR                  5        H.  nUc  M  [        SUR&                   SUR.                  < S3US9  M0     [        SUS9  [        SUS9  [        SUS9  UR                  5        H(  n[        SUR&                   SUR.                   S3US9  M*     [        SUS9  [        US9  [        US9  0 nUR                  5        H7  nUc  M  [1        U[2        5      (       a  M  UR&                  XR.                  '   M9     UR                  5        H  nUR&                  XR.                  '   M     [        SUS9  UR5                  5        H  u  p[        SU SU S3US9  M     [        SUS9  [        US9  U(       a
  [        SUS9  [        US9  g ) Nrl   r   r   )Building definitions from type library...Generating...zclass constants:r(   r   z	passzRecordMap = {z: 'z',z	###z9# Record disabled because it doesn't have a non-null GUIDr   }zCLSIDToClassMap = {z	'z' : r   zCLSIDToPackageMap = {}zFwin32com.client.CLSIDToClass.RegisterCLSIDsFromDict( CLSIDToClassMap )zVTablesToPackageMap = {}zVTablesToClassMap = {z' : 'zCLSIDToClassMap = {}zCLSIDToPackageMap = {zVTablesToClassMap = {}zVTablesToPackageMap = {zNamesToIIDMap = {z>win32com.client.constants.__dicts__.append(constants.__dict__))r]  rp   r)   r_  r;  rC  r  r  lenr*   r   r,   r   rG  r*  r  filterrZ   r;   rR   r   IID_NULLrz   r   rn   r!  items)r<   r  r2   r  r~  r  r  r  num_writtenoleitemrecord
record_strrb   mapr   iids                   r   r  Generator.do_generateQ  s   LL11"5	Q<lGw'$$%PQ!8<8R8R8T5[$$S]S^;c+>NN	

 $62K!)"2"2"45<<VDD""$ 6 hV,v)!&x/@"AB""$""4( C "+"4"4"67""$""4( 8 MMs8}s;/??@oF+!((*F"JJqM,C~R@J||y111J<(O :,'f5 + 	c6 )'f5 )#djj\d.>.>-?qA# * #F#*8X ,6:)7#**,DJJ<uT-=-=,>bAO -#F#v (v6)7 )#djj\d.>.>-AC# * #F#*8+&9#**,DJJ<uT-=-=,>bAO -#F#v6OO%D
4(E(E(,

$$% &  &&(D$(JJC  ! ) 	!/IDCvU3%r*8 %c6P 	6r   c           	      d   [         U l        U R                  R                  5       nUS   nUS   nUS   nUS   nS[	        U5      SS -   SU SU SU 3-   U l         0 n0 n	U R                  5       n
SnU
 H  nUu  pnnU[        R                  :X  d  M  U R                  U5      u  nn[        R                  " US   5      U:H  nU(       d1  U H+  u  nnnnnn[        R                  " US   5      U:X  d  M)  Sn  O   U(       d  M  UUUR                  '   U R                  UUX5          O   U(       dw  U
 Hq  nUu  pnnU[        R                  [        R                  4;   d  M/  [        R                  " US   5      U:X  d  MN  SnU R!                  U5      u  nnUX'   Uc  Mm  UX'   Ms     U(       d   S	U S
35       e0 nUR#                  5        H  u  nnUS4UU'   M     U	R#                  5        H,  u  nnUR%                  US5      nUb  US   U4nOSU4nUUU'   M.     U R&                  R)                  S[+        U5      5        UR-                  5        GH  u  nnU=(       d    Un U R.                  (       a   S5       e[0        R2                  R5                  UU R6                  5      S-   n!Sn"U R9                  U!5      U l         Ub  U R;                  U5        Ub  U R;                  U5        U R&                  R=                  5         Sn"[>        R@                  " U R
                  RC                  S5      S   5         U RE                  U!U R.                  U"5        SSS5        SU l        GM     U R&                  RG                  5         g! , (       d  f       N5= f! [>        R@                  " U R
                  RC                  S5      S   5         U RE                  U!U R.                  U"5        SSS5        SU l        f ! , (       d  f       SU l        f = f= f! U R&                  RG                  5         f = f)zRGenerate a single child.  May force a few children to be built as we generate depsr   r   r   r   zwin32com.gen_py.rl   r  NzCan't find the 'z/' interface in the CoClasses, or the interfacesr  zalready have a file?z.pyFTr(  )$r+  r*  r]  r  r
   r,  ri  r   r  rt  r   r   rR   r  rw  r   r  r  getr_  rC  r  r,   r)   r  r  joinr   r  do_gen_child_itemrG  r   ModuleMutexr  r  r>  )#r<   childdirr  lcidrR   majorminorr~  r  infosfoundrn  rg  rh  r;   rm   coClassItemro  r  rq  rr  rp  r  r  r  r  r   existingnew_valr  
vtableiteman_itemout_namer  s#                                      r   generate_childGenerator.generate_child  s   -\\$$&!u111UAb!11avQugQug4NN 	T	%
 HK446EE#(,;)Ty666/3/B/B?/S,K!99#a&AUJE  ) %##!$<<SVDM() % ) u6A!2!2333'h / $)0 ',O0?-DC!11!00$  !88Q@EI$%E262G2G2X/GZ.5HO)55? 2 (-  "5')XY5 E&nn.
U#T]c
 /)//1
U 99S$/'&qk50G"EkG$c
 2 MM((#e*E',||~#!/Z99<&<<} 77<<W-@-@AEI ,,X6	
%*..w7!-..z:MM&&(!F!--d.@.@.F.Fs.KB.OP**8TYYG Q $DI% (6( MM""$	 QP--d.@.@.F.Fs.KB.OP**8TYYG Q $DI QP $DIMM""$s|   3P AP 6P AP #P P !D!P AN2P 9NP 
N	P 3P
O8	(P8
PPP P/c                    U R                   R                  S5      nSnUS   (       a  US   nU R                  R                  U5        U R                  R	                  S5        U R                  5         UR                  U 5        UR                  (       a9  [        SR                  UR                  UR                  5      U R                  S9  g g )Nrl   r   r   r  z6win32com.client.CLSIDToClass.RegisterCLSID( "{}", {} )r(   )r]  rp   r_  r;  rC  r  rZ   rz   r*   r  rR   r   r)   )r<   r  r  r  s       r   r  Generator.do_gen_child_item%  s    LL11"5	Q<lGw'$$%PQ!4 HOOMM7#6#6 YY	 r   c                 ^    U R                   (       d  [        SU R                  S9  SU l         g g )Nz-from win32com.client import DispatchBaseClassr(   r   )rZ  r*   r)   rA   s    r   r   %Generator.checkWriteDispatchBaseClass6  s'    11A		R12D. 2r   c                 ^    U R                   (       d  [        SU R                  S9  SU l         g g )Nz,from win32com.client import CoClassBaseClassr(   r   )r[  r*   r)   rA   s    r   r)  $Generator.checkWriteCoClassBaseClass;  s'    00@tyyQ01D- 1r   c                 6    U R                   (       d  SU l         g g r   )r\  rA   s    r   r   "Generator.checkWriteEventBaseClass@  s    .../D+ /r   )
r  r[  rZ  r\  r,  r)   r*  r_  r^  r]  N)r   )zutf-8)r   )rD   rE   rF   rG   rQ   ri  rt  r  r  r  r  r  r  r  r  r  r  r  r   r)  r   rH   r$   r   r   rX  rX  V  sc     "$67B#2&=P
<
6!;zpd`%D"3
2
0r   rX  __main__zEThis is a worker module.  Please use makepy to generate Python files.)0__doc__r  r  r  	itertoolsr   r   r   r   r   r  r  r  r+  VT_I2VT_I4VT_R4VT_R8VT_BSTRVT_BOOL
VT_VARIANTVT_I1VT_UI1VT_UI2VT_UI4VT_I8VT_UI8VT_INTVT_DATEVT_UINTr{   r   r!   r&   r4   r6   rP   rJ   re   rg   r   r   r   r!  r5  rX  rD   r*   r$   r   r   <module>r     s   
 
     " OOUOOU OOW OOW	
 u u & OOU e e e OOU e e   u! 4
  "@ @ *5)| )X6emm\ 6r5!!< 5pj25%%| j2ZX%-- Xv @n0 n0b z	
QR r   