3131import os
3232import sys
3333
34- __version__ = "0.4.1 "
34+ __version__ = "0.4.2 "
3535
3636# All unique members of Qt.py
3737__added__ = list ()
@@ -68,14 +68,20 @@ def remap(object, name, value, safe=True):
6868 raise AttributeError ("%s != 'module': Cannot alter "
6969 "anything but modules" % object )
7070
71- __remapped__ .append (name )
71+ elif hasattr (object , name ):
72+ # Keep track of modifications
73+ __modified__ .append (name )
74+
75+ if name not in __added__ :
76+ __remapped__ .append (name )
77+
7278 setattr (object , name , value )
7379
7480
75- def add (object , name , value ):
81+ def add (object , name , value , safe = True ):
7682 """Identical to :func:`remap` and provided for readability only"""
7783 __added__ .append (name )
78- remap (object , name , value )
84+ remap (object , name , value , safe )
7985
8086
8187def pyqt5 ():
@@ -89,7 +95,7 @@ def pyqt5():
8995 add (PyQt5 , "__wrapper_version__" , __version__ )
9096 add (PyQt5 , "__binding__" , "PyQt5" )
9197 add (PyQt5 , "__binding_version__" , QtCore .PYQT_VERSION_STR )
92- add (PyQt5 , "__qt_version__" , QtCore .QT_VERSION_STR )
98+ add (PyQt5 , "__qt_version__" , QtCore .QT_VERSION_STR , safe = False )
9399 add (PyQt5 , "__added__" , __added__ )
94100 add (PyQt5 , "__remapped__" , __remapped__ )
95101 add (PyQt5 , "__modified__" , __modified__ )
@@ -244,20 +250,24 @@ def init():
244250 try :
245251 binding = binding ()
246252
253+ except ImportError as e :
254+ log (" - ImportError(\" %s\" )\n " % e , verbose )
255+ continue
256+
257+ else :
258+ # Reference to this module
259+ binding .__shim__ = sys .modules [__name__ ]
260+
247261 sys .modules .update ({
248262 __name__ : binding ,
249263
250264 # Fix #133, `from Qt.QtWidgets import QPushButton`
251265 __name__ + ".QtWidgets" : binding .QtWidgets
266+
252267 })
253268
254269 return
255270
256- except ImportError as e :
257- log (" - ImportError(\" %s\" )\n " % e , verbose )
258-
259- continue
260-
261271 # If not binding were found, throw this error
262272 raise ImportError ("No Qt binding were found." )
263273
0 commit comments