
    o'e                     0   d dl Z d dlZddlmZ ddlmZmZmZmZ ej                  dk\  rddl
mZ nddlmZ  e j                  e      Zej                   Z G d d	e      Z G d
 de      Z G d de      Z G d de      Z G d de      Z G d de      Zy)    N   )
write_code)QtGui	QtWidgetsLiteralstrict_getattri      	as_stringc                       e Zd Zed        Zy)
_QtWrapperc                 N    	 t        | j                  |      S # t        $ r Y y w xY wN)r   moduleAttributeError)clsnames     C/usr/lib/python3/dist-packages/PyQt5/uic/Compiler/qobjectcreator.pysearchz_QtWrapper.search:   s*    	!#**d33 		s    	$$N)__name__
__module____qualname__classmethodr        r   r   r   9   s     r   r   c                       e Zd ZeZy)_QtGuiWrapperN)r   r   r   r   r   r   r   r   r   r   B   s    Fr   r   c                       e Zd ZeZy)_QtWidgetsWrapperN)r   r   r   r   r   r   r   r   r   r   F   s    Fr   r   c                       e Zd Zd Zd Zd Zy)_ModuleWrapperc                     d|v r)|j                  d      }|d | | _        ||dz   d  | _        nd | _        || _        || _        d| _        y )N.r   F)rfind_package_module_classes_used)selfr   classesidxs       r   __init__z_ModuleWrapper.__init__K   sP    $;**S/C #JDMa>DL DMDL
r   c                     || j                   v rCd| _        |j                  d      d   }t        |t        j
                  fd| j                  i      S y )NTr#   r   )r'   r(   splittyper   QWidgetr&   )r)   r   s     r   r   z_ModuleWrapper.searchW   sM    $--DJ ))C.$Ci//1Hdll3KLLr   c                     | j                   rK| j                  t        d| j                  z         y t        d| j                  d| j                         y y )Nz	import %sfrom  import )r(   r%   r   r&   r)   s    r   _writeImportCodez_ModuleWrapper._writeImportCodeb   s>    ::}}$;56$--NO	 r   N)r   r   r   r,   r   r6   r   r   r   r!   r!   J   s    
	Pr   r!   c                   *    e Zd Zd Zd Zd Zd Zd Zy)_CustomWidgetLoaderc                 0    i | _         t               | _        y r   )_widgetsset_usedWidgetsr5   s    r   r,   z_CustomWidgetLoader.__init__k   s    Er   c                 F    || j                   vsJ ||f| j                   |<   y r   )r:   )r)   widgetClass	baseClassr   s       r   addCustomWidgetz#_CustomWidgetLoader.addCustomWidgeto   s'    $--///&/%8k"r   c                     	 t        dd      D ]  }t        t        |      c S  t        d      # t        $ r Y nw xY w| j                  |   d   }C# t        $ r t        d|z        w xY w)Nr   
   z5baseclass resolve took too long, check custom widgetszunknown baseclass %s)ranger   r   r   r:   
ValueErrorKeyError)r)   r?   xs      r   _resolveBaseclassz%_CustomWidgetLoader._resolveBaseclasss   s    
	A1b\ Z*9i@@Z !!XYY	 &+t+ MM)4Q7	  	A3i?@@	As+   A /A A 	;A ;A A)c                     	 | j                  | j                  |   d         }t        d|d|       | j                  j                  |       t        ||fddi      S # t        $ r Y y w xY w)Nr   zresolved baseclass of z: r    )rG   r:   DEBUGrE   r<   addr0   )r)   r   r?   s      r   r   z_CustomWidgetLoader.search   sq    	..t}}S/A!/DEICCD 	c"C)B88  		s   2A 	A+*A+c                 $   i }| j                   D ]5  }| j                  |   \  }}|j                  |g       j                  |       7 t	        |j                               D ].  \  }}t        d|ddj                  t	        |                   0 y )Nr3   r4   z, )r<   r:   
setdefaultappendsorteditemsr   join)r)   importswidget_r   r*   s         r   r6   z$_CustomWidgetLoader._writeImportCode   s    '' 	:Ff-IAvvr*11&9	:  &gmmo6 	SOFGfdiiw6PQR	Sr   N)r   r   r   r,   r@   rG   r   r6   r   r   r   r8   r8   j   s    "9A	9Sr   r8   c                   D    e Zd Zd Zd Zd Zd ZddZd Zd Z	d Z
d	 Zy
)CompilerCreatorPolicyc                     g | _         y r   )_modulesr5   s    r   r,   zCompilerCreatorPolicy.__init__   s	    r   c                     t         t        gS r   )r   r   r5   s    r   createQtGuiWidgetsWrappersz0CompilerCreatorPolicy.createQtGuiWidgetsWrappers   s    011r   c                 T    t        ||      }| j                  j                  |       |S r   )r!   rX   rN   )r)   r   r*   mws       r   createModuleWrapperz)CompilerCreatorPolicy.createModuleWrapper   s%    D'*R 	r   c                 P    t               }| j                  j                  |       |S r   )r8   rX   rN   )r)   cws     r   createCustomWidgetLoaderz.CompilerCreatorPolicy.createCustomWidgetLoader   s!     "R 	r   c                      |||||      S r   r   )r)   	clsObject
objectname	ctor_argsis_attributeno_instantiations         r   instantiatez!CompilerCreatorPolicy.instantiate   s    \9>NOOr   c                      ||g| S r   r   )r)   rnamemethodargss       r   invokezCompilerCreatorPolicy.invoke   s    e#d##r   c                 "    t        |d|      S )Nr#   )r   )r)   objectslotnames      r   getSlotzCompilerCreatorPolicy.getSlot   s    &(344r   c                     t        |      S r   r
   )r)   ss     r   asStringzCompilerCreatorPolicy.asString   s    |r   c                 F    | j                   D ]  }|j                           y r   )rX   r6   )r)   r   s     r   _writeOutImportsz&CompilerCreatorPolicy._writeOutImports   s!    mm 	&F##%	&r   N)TF)r   r   r   r,   rZ   r]   r`   rg   rl   rp   rs   ru   r   r   r   rV   rV      s0    2

P$5&r   rV   )loggingsysindenterr   	qtproxiesr   r   r   r   
hexversionport_v3.as_stringr   port_v2.as_string	getLoggerr   loggerdebugrJ   rn   r   r   r   r!   r8   rV   r   r   r   <module>r      s   R  
   @ @>>Z-- 
		8	$ J 
 PV P@(S& (SV&F &r   