258 @rtype object |
258 @rtype object |
259 """ |
259 """ |
260 if fullname in sys.modules or not self.debugging: |
260 if fullname in sys.modules or not self.debugging: |
261 return None |
261 return None |
262 |
262 |
263 if fullname in [self.threadModName, 'PyQt4.QtCore', 'PyQt5.QtCore', |
263 if fullname in [self.threadModName, 'PyQt5.QtCore', 'PySide2.QtCore', |
264 'PySide.QtCore', 'PySide2.QtCore', 'greenlet', |
264 'greenlet', 'threading' |
265 'threading'] and self.enableImportHooks: |
265 ] and self.enableImportHooks: |
266 # Disable hook to be able to import original module |
266 # Disable hook to be able to import original module |
267 self.enableImportHooks = False |
267 self.enableImportHooks = False |
268 return self |
268 return self |
269 |
269 |
270 return None |
270 return None |
370 super(DummyThreadWrapper, self).__init__(*args, **kwargs) |
370 super(DummyThreadWrapper, self).__init__(*args, **kwargs) |
371 |
371 |
372 module._DummyThread = DummyThreadWrapper |
372 module._DummyThread = DummyThreadWrapper |
373 |
373 |
374 # Add hook for *.QThread |
374 # Add hook for *.QThread |
375 elif (fullname in ['PyQt4.QtCore', 'PyQt5.QtCore', |
375 elif (fullname in ['PyQt5.QtCore', 'PySide2.QtCore'] and |
376 'PySide.QtCore', 'PySide2.QtCore'] and |
376 self.qtThreadAttached is False): |
377 self.qtThreadAttached is False): |
|
378 self.qtThreadAttached = True |
377 self.qtThreadAttached = True |
379 # _debugClient as a class attribute can't be accessed in following |
378 # _debugClient as a class attribute can't be accessed in following |
380 # class. Therefore we need a global variable. |
379 # class. Therefore we need a global variable. |
381 _debugClient = self |
380 _debugClient = self |
382 |
381 |