Get changes from current branch. debugger speed

Sun, 18 Sep 2016 21:35:53 +0200

author
T.Rzepka <Tobias.Rzepka@gmail.com>
date
Sun, 18 Sep 2016 21:35:53 +0200
branch
debugger speed
changeset 5174
8c48f5e0cd92
parent 5170
fb9168c2e069 (current diff)
parent 5173
632257ad7337 (diff)
child 5178
878ce843ca9f

Get changes from current branch.

DebugClients/Python/AsyncFile.py file | annotate | diff | comparison | revisions
DebugClients/Python/AsyncIO.py file | annotate | diff | comparison | revisions
DebugClients/Python/BreakpointWatch.py file | annotate | diff | comparison | revisions
DebugClients/Python/DCTestResult.py file | annotate | diff | comparison | revisions
DebugClients/Python/DebugBase.py file | annotate | diff | comparison | revisions
DebugClients/Python/DebugClient.py file | annotate | diff | comparison | revisions
DebugClients/Python/DebugClientBase.py file | annotate | diff | comparison | revisions
DebugClients/Python/DebugClientCapabilities.py file | annotate | diff | comparison | revisions
DebugClients/Python/DebugClientThreads.py file | annotate | diff | comparison | revisions
DebugClients/Python/DebugConfig.py file | annotate | diff | comparison | revisions
DebugClients/Python/DebugProtocol.py file | annotate | diff | comparison | revisions
DebugClients/Python/DebugThread.py file | annotate | diff | comparison | revisions
DebugClients/Python/FlexCompleter.py file | annotate | diff | comparison | revisions
DebugClients/Python/PyProfile.py file | annotate | diff | comparison | revisions
DebugClients/Python/__init__.py file | annotate | diff | comparison | revisions
DebugClients/Python/coverage/__init__.py file | annotate | diff | comparison | revisions
DebugClients/Python/coverage/__main__.py file | annotate | diff | comparison | revisions
DebugClients/Python/coverage/annotate.py file | annotate | diff | comparison | revisions
DebugClients/Python/coverage/backunittest.py file | annotate | diff | comparison | revisions
DebugClients/Python/coverage/backward.py file | annotate | diff | comparison | revisions
DebugClients/Python/coverage/bytecode.py file | annotate | diff | comparison | revisions
DebugClients/Python/coverage/cmdline.py file | annotate | diff | comparison | revisions
DebugClients/Python/coverage/collector.py file | annotate | diff | comparison | revisions
DebugClients/Python/coverage/config.py file | annotate | diff | comparison | revisions
DebugClients/Python/coverage/control.py file | annotate | diff | comparison | revisions
DebugClients/Python/coverage/data.py file | annotate | diff | comparison | revisions
DebugClients/Python/coverage/debug.py file | annotate | diff | comparison | revisions
DebugClients/Python/coverage/doc/AUTHORS.txt file | annotate | diff | comparison | revisions
DebugClients/Python/coverage/doc/CHANGES.txt file | annotate | diff | comparison | revisions
DebugClients/Python/coverage/doc/LICENSE.txt file | annotate | diff | comparison | revisions
DebugClients/Python/coverage/doc/README.rst file | annotate | diff | comparison | revisions
DebugClients/Python/coverage/env.py file | annotate | diff | comparison | revisions
DebugClients/Python/coverage/execfile.py file | annotate | diff | comparison | revisions
DebugClients/Python/coverage/files.py file | annotate | diff | comparison | revisions
DebugClients/Python/coverage/html.py file | annotate | diff | comparison | revisions
DebugClients/Python/coverage/misc.py file | annotate | diff | comparison | revisions
DebugClients/Python/coverage/monkey.py file | annotate | diff | comparison | revisions
DebugClients/Python/coverage/parser.py file | annotate | diff | comparison | revisions
DebugClients/Python/coverage/phystokens.py file | annotate | diff | comparison | revisions
DebugClients/Python/coverage/pickle2json.py file | annotate | diff | comparison | revisions
DebugClients/Python/coverage/plugin.py file | annotate | diff | comparison | revisions
DebugClients/Python/coverage/plugin_support.py file | annotate | diff | comparison | revisions
DebugClients/Python/coverage/python.py file | annotate | diff | comparison | revisions
DebugClients/Python/coverage/pytracer.py file | annotate | diff | comparison | revisions
DebugClients/Python/coverage/report.py file | annotate | diff | comparison | revisions
DebugClients/Python/coverage/results.py file | annotate | diff | comparison | revisions
DebugClients/Python/coverage/summary.py file | annotate | diff | comparison | revisions
DebugClients/Python/coverage/templite.py file | annotate | diff | comparison | revisions
DebugClients/Python/coverage/test_helpers.py file | annotate | diff | comparison | revisions
DebugClients/Python/coverage/version.py file | annotate | diff | comparison | revisions
DebugClients/Python/coverage/xmlreport.py file | annotate | diff | comparison | revisions
DebugClients/Python/eric6dbgstub.py file | annotate | diff | comparison | revisions
DebugClients/Python/getpass.py file | annotate | diff | comparison | revisions
DebugClients/Python2/BreakpointWatch.py file | annotate | diff | comparison | revisions
DebugClients/Python2/DebugBase.py file | annotate | diff | comparison | revisions
DebugClients/Python2/DebugClientBase.py file | annotate | diff | comparison | revisions
DebugClients/Python3/AsyncIO.py file | annotate | diff | comparison | revisions
DebugClients/Python3/BreakpointWatch.py file | annotate | diff | comparison | revisions
DebugClients/Python3/DebugBase.py file | annotate | diff | comparison | revisions
DebugClients/Python3/DebugClientBase.py file | annotate | diff | comparison | revisions
DebugClients/Python3/DebugProtocol.py file | annotate | diff | comparison | revisions
DebugClients/Python3/coverage/doc/CHANGES.txt file | annotate | diff | comparison | revisions
DebugClients/Python3/getpass.py file | annotate | diff | comparison | revisions
Debugger/DebugProtocol.py file | annotate | diff | comparison | revisions
Debugger/DebuggerInterfacePython.py file | annotate | diff | comparison | revisions
Documentation/Source/eric6.DebugClients.Python.AsyncFile.html file | annotate | diff | comparison | revisions
Documentation/Source/eric6.DebugClients.Python.AsyncIO.html file | annotate | diff | comparison | revisions
Documentation/Source/eric6.DebugClients.Python.DCTestResult.html file | annotate | diff | comparison | revisions
Documentation/Source/eric6.DebugClients.Python.DebugBase.html file | annotate | diff | comparison | revisions
Documentation/Source/eric6.DebugClients.Python.DebugClient.html file | annotate | diff | comparison | revisions
Documentation/Source/eric6.DebugClients.Python.DebugClientBase.html file | annotate | diff | comparison | revisions
Documentation/Source/eric6.DebugClients.Python.DebugClientCapabilities.html file | annotate | diff | comparison | revisions
Documentation/Source/eric6.DebugClients.Python.DebugClientThreads.html file | annotate | diff | comparison | revisions
Documentation/Source/eric6.DebugClients.Python.DebugConfig.html file | annotate | diff | comparison | revisions
Documentation/Source/eric6.DebugClients.Python.DebugProtocol.html file | annotate | diff | comparison | revisions
Documentation/Source/eric6.DebugClients.Python.DebugThread.html file | annotate | diff | comparison | revisions
Documentation/Source/eric6.DebugClients.Python.FlexCompleter.html file | annotate | diff | comparison | revisions
Documentation/Source/eric6.DebugClients.Python.PyProfile.html file | annotate | diff | comparison | revisions
Documentation/Source/eric6.DebugClients.Python.eric6dbgstub.html file | annotate | diff | comparison | revisions
Documentation/Source/eric6.DebugClients.Python.getpass.html file | annotate | diff | comparison | revisions
Documentation/Source/eric6.DebugClients.Python3.AsyncIO.html file | annotate | diff | comparison | revisions
Documentation/Source/eric6.DebugClients.Python3.DebugProtocol.html file | annotate | diff | comparison | revisions
Documentation/Source/eric6.Debugger.DebugProtocol.html file | annotate | diff | comparison | revisions
Documentation/Source/eric6.Debugger.DebuggerInterfacePython.html file | annotate | diff | comparison | revisions
Documentation/Source/eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html file | annotate | diff | comparison | revisions
Documentation/Source/eric6.Plugins.VcsPlugins.vcsMercurial.TransplantExtension.ProjectHelper.html file | annotate | diff | comparison | revisions
Documentation/Source/eric6.Plugins.VcsPlugins.vcsMercurial.TransplantExtension.TransplantDialog.html file | annotate | diff | comparison | revisions
Documentation/Source/eric6.Plugins.VcsPlugins.vcsMercurial.TransplantExtension.transplant.html file | annotate | diff | comparison | revisions
Documentation/Source/eric6.WebBrowser.CookieJar.CookieDetailsDialog.html file | annotate | diff | comparison | revisions
Documentation/Source/eric6.WebBrowser.CookieJar.CookieModel.html file | annotate | diff | comparison | revisions
Documentation/Source/index-eric6.DebugClients.Python.html file | annotate | diff | comparison | revisions
Documentation/Source/index-eric6.Plugins.VcsPlugins.vcsMercurial.TransplantExtension.html file | annotate | diff | comparison | revisions
Plugins/CheckerPlugins/CodeStyleChecker/pep8.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsMercurial/TransplantExtension/ProjectHelper.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsMercurial/TransplantExtension/TransplantDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsMercurial/TransplantExtension/TransplantDialog.ui file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsMercurial/TransplantExtension/__init__.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsMercurial/TransplantExtension/transplant.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsMercurial/styles/logBrowserBookmark.style file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsMercurial/styles/logBrowserBookmarkPhase.style file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsMercurial/styles/logDialogBookmark.style file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsMercurial/styles/logDialogBookmarkPhase.style file | annotate | diff | comparison | revisions
WebBrowser/CookieJar/CookieDetailsDialog.py file | annotate | diff | comparison | revisions
WebBrowser/CookieJar/CookieModel.py file | annotate | diff | comparison | revisions
eric6.e4p file | annotate | diff | comparison | revisions
--- a/.hgignore	Thu Sep 15 21:49:13 2016 +0200
+++ b/.hgignore	Sun Sep 18 21:35:53 2016 +0200
@@ -17,3 +17,4 @@
 glob:**.DS_Store
 glob:**.coverage
 glob:GPUCache
+glob:**Thumbs.db
--- a/APIs/Python3/eric6.api	Thu Sep 15 21:49:13 2016 +0200
+++ b/APIs/Python3/eric6.api	Sun Sep 18 21:35:53 2016 +0200
@@ -118,222 +118,184 @@
 eric6.DataViews.PyProfileDialog.PyProfileDialog.on_buttonBox_clicked?4(button)
 eric6.DataViews.PyProfileDialog.PyProfileDialog.start?4(pfn, fn=None)
 eric6.DataViews.PyProfileDialog.PyProfileDialog?1(parent=None)
-eric6.DebugClients.Python.AsyncFile.AsyncFile.close?4(closeit=0)
-eric6.DebugClients.Python.AsyncFile.AsyncFile.fileno?4()
-eric6.DebugClients.Python.AsyncFile.AsyncFile.flush?4()
-eric6.DebugClients.Python.AsyncFile.AsyncFile.isatty?4()
-eric6.DebugClients.Python.AsyncFile.AsyncFile.maxbuffersize?7
-eric6.DebugClients.Python.AsyncFile.AsyncFile.maxtries?7
-eric6.DebugClients.Python.AsyncFile.AsyncFile.pendingWrite?4()
-eric6.DebugClients.Python.AsyncFile.AsyncFile.read?4(size=-1)
-eric6.DebugClients.Python.AsyncFile.AsyncFile.read_p?4(size=-1)
-eric6.DebugClients.Python.AsyncFile.AsyncFile.readline?4(sizehint=-1)
-eric6.DebugClients.Python.AsyncFile.AsyncFile.readline_p?4(size=-1)
-eric6.DebugClients.Python.AsyncFile.AsyncFile.readlines?4(sizehint=-1)
-eric6.DebugClients.Python.AsyncFile.AsyncFile.seek?4(offset, whence=0)
-eric6.DebugClients.Python.AsyncFile.AsyncFile.tell?4()
-eric6.DebugClients.Python.AsyncFile.AsyncFile.truncate?4(size=-1)
-eric6.DebugClients.Python.AsyncFile.AsyncFile.write?4(s)
-eric6.DebugClients.Python.AsyncFile.AsyncFile.writelines?4(list)
-eric6.DebugClients.Python.AsyncFile.AsyncFile?1(sock, mode, name)
-eric6.DebugClients.Python.AsyncFile.AsyncPendingWrite?4(file)
-eric6.DebugClients.Python.AsyncIO.AsyncIO.disconnect?4()
-eric6.DebugClients.Python.AsyncIO.AsyncIO.readReady?4(fd)
-eric6.DebugClients.Python.AsyncIO.AsyncIO.setDescriptors?4(rfd, wfd)
-eric6.DebugClients.Python.AsyncIO.AsyncIO.write?4(s)
-eric6.DebugClients.Python.AsyncIO.AsyncIO.writeReady?4(fd)
-eric6.DebugClients.Python.AsyncIO.AsyncIO?1()
-eric6.DebugClients.Python.DCTestResult.DCTestResult.addError?4(test, err)
-eric6.DebugClients.Python.DCTestResult.DCTestResult.addExpectedFailure?4(test, err)
-eric6.DebugClients.Python.DCTestResult.DCTestResult.addFailure?4(test, err)
-eric6.DebugClients.Python.DCTestResult.DCTestResult.addSkip?4(test, reason)
-eric6.DebugClients.Python.DCTestResult.DCTestResult.addUnexpectedSuccess?4(test)
-eric6.DebugClients.Python.DCTestResult.DCTestResult.startTest?4(test)
-eric6.DebugClients.Python.DCTestResult.DCTestResult.stopTest?4(test)
-eric6.DebugClients.Python.DCTestResult.DCTestResult?1(parent)
-eric6.DebugClients.Python.DebugBase.DebugBase.break_anywhere?4(frame)
-eric6.DebugClients.Python.DebugBase.DebugBase.break_here?4(frame)
-eric6.DebugClients.Python.DebugBase.DebugBase.clear_watch?4(cond)
-eric6.DebugClients.Python.DebugBase.DebugBase.dispatch_exception?4(frame, arg)
-eric6.DebugClients.Python.DebugBase.DebugBase.dispatch_line?4(frame)
-eric6.DebugClients.Python.DebugBase.DebugBase.dispatch_return?4(frame, arg)
-eric6.DebugClients.Python.DebugBase.DebugBase.fix_frame_filename?4(frame)
-eric6.DebugClients.Python.DebugBase.DebugBase.getCurrentFrame?4()
-eric6.DebugClients.Python.DebugBase.DebugBase.getEvent?4()
-eric6.DebugClients.Python.DebugBase.DebugBase.getFrameLocals?4(frmnr=0)
-eric6.DebugClients.Python.DebugBase.DebugBase.getStack?4()
-eric6.DebugClients.Python.DebugBase.DebugBase.get_break?4(filename, lineno)
-eric6.DebugClients.Python.DebugBase.DebugBase.get_watch?4(cond)
-eric6.DebugClients.Python.DebugBase.DebugBase.go?4(special)
-eric6.DebugClients.Python.DebugBase.DebugBase.isBroken?4()
-eric6.DebugClients.Python.DebugBase.DebugBase.profile?4(frame, event, arg)
-eric6.DebugClients.Python.DebugBase.DebugBase.setRecursionDepth?4(frame)
-eric6.DebugClients.Python.DebugBase.DebugBase.set_continue?4(special)
-eric6.DebugClients.Python.DebugBase.DebugBase.set_quit?4()
-eric6.DebugClients.Python.DebugBase.DebugBase.set_trace?4(frame=None)
-eric6.DebugClients.Python.DebugBase.DebugBase.set_watch?4(cond, temporary=0)
-eric6.DebugClients.Python.DebugBase.DebugBase.step?4(traceMode)
-eric6.DebugClients.Python.DebugBase.DebugBase.stepOut?4()
-eric6.DebugClients.Python.DebugBase.DebugBase.stop_here?4(frame)
-eric6.DebugClients.Python.DebugBase.DebugBase.storeFrameLocals?4(frmnr=0)
-eric6.DebugClients.Python.DebugBase.DebugBase.trace_dispatch?4(frame, event, arg)
-eric6.DebugClients.Python.DebugBase.DebugBase.user_exception?4(frame, (exctype, excval, exctb), unhandled=0)
-eric6.DebugClients.Python.DebugBase.DebugBase.user_line?4(frame)
-eric6.DebugClients.Python.DebugBase.DebugBase.user_return?4(frame, retval)
-eric6.DebugClients.Python.DebugBase.DebugBase?1(dbgClient)
-eric6.DebugClients.Python.DebugBase.gRecursionLimit?7
-eric6.DebugClients.Python.DebugBase.printerr?4(s)
-eric6.DebugClients.Python.DebugBase.setRecursionLimit?4(limit)
-eric6.DebugClients.Python.DebugClient.DebugClient.debugClient?7
-eric6.DebugClients.Python.DebugClient.DebugClient?1()
-eric6.DebugClients.Python.DebugClientBase.DebugClientBase.absPath?4(fn)
-eric6.DebugClients.Python.DebugClientBase.DebugClientBase.attachThread?4(target=None, args=None, kwargs=None, mainThread=0)
-eric6.DebugClients.Python.DebugClientBase.DebugClientBase.clientCapabilities?7
-eric6.DebugClients.Python.DebugClientBase.DebugClientBase.close?4(fd)
-eric6.DebugClients.Python.DebugClientBase.DebugClientBase.connectDebugger?4(port, remoteAddress=None, redirect=1)
-eric6.DebugClients.Python.DebugClientBase.DebugClientBase.eventLoop?4(disablePolling=False)
-eric6.DebugClients.Python.DebugClientBase.DebugClientBase.eventPoll?4()
-eric6.DebugClients.Python.DebugClientBase.DebugClientBase.fork?4()
-eric6.DebugClients.Python.DebugClientBase.DebugClientBase.getCoding?4()
-eric6.DebugClients.Python.DebugClientBase.DebugClientBase.getRunning?4()
-eric6.DebugClients.Python.DebugClientBase.DebugClientBase.handleLine?4(line)
-eric6.DebugClients.Python.DebugClientBase.DebugClientBase.input?4(prompt)
-eric6.DebugClients.Python.DebugClientBase.DebugClientBase.main?4()
-eric6.DebugClients.Python.DebugClientBase.DebugClientBase.progTerminated?4(status)
-eric6.DebugClients.Python.DebugClientBase.DebugClientBase.raw_input?4(prompt, echo)
-eric6.DebugClients.Python.DebugClientBase.DebugClientBase.run_call?4(scriptname, func, *args)
-eric6.DebugClients.Python.DebugClientBase.DebugClientBase.sessionClose?4(exit=1)
-eric6.DebugClients.Python.DebugClientBase.DebugClientBase.shouldSkip?4(fn)
-eric6.DebugClients.Python.DebugClientBase.DebugClientBase.startDebugger?4(filename=None, host=None, port=None, enableTrace=1, exceptions=1, tracePython=0, redirect=1)
-eric6.DebugClients.Python.DebugClientBase.DebugClientBase.startProgInDebugger?4(progargs, wd='', host=None, port=None, exceptions=1, tracePython=0, redirect=1)
-eric6.DebugClients.Python.DebugClientBase.DebugClientBase.write?4(s)
-eric6.DebugClients.Python.DebugClientBase.DebugClientBase?1()
-eric6.DebugClients.Python.DebugClientBase.DebugClientClose?4(fd)
-eric6.DebugClients.Python.DebugClientBase.DebugClientFork?4()
-eric6.DebugClients.Python.DebugClientBase.DebugClientInput?4(prompt="")
-eric6.DebugClients.Python.DebugClientBase.DebugClientInstance?7
-eric6.DebugClients.Python.DebugClientBase.DebugClientRawInput?4(prompt="", echo=1)
-eric6.DebugClients.Python.DebugClientBase.DebugClientSetRecursionLimit?4(limit)
-eric6.DebugClients.Python.DebugClientCapabilities.HasAll?7
-eric6.DebugClients.Python.DebugClientCapabilities.HasCompleter?7
-eric6.DebugClients.Python.DebugClientCapabilities.HasCoverage?7
-eric6.DebugClients.Python.DebugClientCapabilities.HasDebugger?7
-eric6.DebugClients.Python.DebugClientCapabilities.HasInterpreter?7
-eric6.DebugClients.Python.DebugClientCapabilities.HasProfiler?7
-eric6.DebugClients.Python.DebugClientCapabilities.HasShell?7
-eric6.DebugClients.Python.DebugClientCapabilities.HasUnittest?7
-eric6.DebugClients.Python.DebugClientThreads.DebugClientThreads.attachThread?4(target=None, args=None, kwargs=None, mainThread=0)
-eric6.DebugClients.Python.DebugClientThreads.DebugClientThreads.debugClient?7
-eric6.DebugClients.Python.DebugClientThreads.DebugClientThreads.eventLoop?4(disablePolling=False)
-eric6.DebugClients.Python.DebugClientThreads.DebugClientThreads.lockClient?4(blocking=1)
-eric6.DebugClients.Python.DebugClientThreads.DebugClientThreads.setCurrentThread?4(id)
-eric6.DebugClients.Python.DebugClientThreads.DebugClientThreads.set_quit?4()
-eric6.DebugClients.Python.DebugClientThreads.DebugClientThreads.threadTerminated?4(dbgThread)
-eric6.DebugClients.Python.DebugClientThreads.DebugClientThreads.unlockClient?4()
-eric6.DebugClients.Python.DebugClientThreads.DebugClientThreads?1()
-eric6.DebugClients.Python.DebugClientThreads._debugclient_start_new_thread?5(target, args, kwargs={})
-eric6.DebugClients.Python.DebugClientThreads._original_start_thread?8
-eric6.DebugClients.Python.DebugConfig.ConfigVarTypeStrings?7
-eric6.DebugClients.Python.DebugProtocol.CallTrace?7
-eric6.DebugClients.Python.DebugProtocol.DebugAddress?7
-eric6.DebugClients.Python.DebugProtocol.EOT?7
-eric6.DebugClients.Python.DebugProtocol.PassiveStartup?7
-eric6.DebugClients.Python.DebugProtocol.RequestBanner?7
-eric6.DebugClients.Python.DebugProtocol.RequestBreak?7
-eric6.DebugClients.Python.DebugProtocol.RequestBreakEnable?7
-eric6.DebugClients.Python.DebugProtocol.RequestBreakIgnore?7
-eric6.DebugClients.Python.DebugProtocol.RequestCallTrace?7
-eric6.DebugClients.Python.DebugProtocol.RequestCapabilities?7
-eric6.DebugClients.Python.DebugProtocol.RequestCompletion?7
-eric6.DebugClients.Python.DebugProtocol.RequestContinue?7
-eric6.DebugClients.Python.DebugProtocol.RequestCoverage?7
-eric6.DebugClients.Python.DebugProtocol.RequestEnv?7
-eric6.DebugClients.Python.DebugProtocol.RequestEval?7
-eric6.DebugClients.Python.DebugProtocol.RequestExec?7
-eric6.DebugClients.Python.DebugProtocol.RequestForkMode?7
-eric6.DebugClients.Python.DebugProtocol.RequestForkTo?7
-eric6.DebugClients.Python.DebugProtocol.RequestLoad?7
-eric6.DebugClients.Python.DebugProtocol.RequestOK?7
-eric6.DebugClients.Python.DebugProtocol.RequestProfile?7
-eric6.DebugClients.Python.DebugProtocol.RequestRun?7
-eric6.DebugClients.Python.DebugProtocol.RequestSetFilter?7
-eric6.DebugClients.Python.DebugProtocol.RequestShutdown?7
-eric6.DebugClients.Python.DebugProtocol.RequestStep?7
-eric6.DebugClients.Python.DebugProtocol.RequestStepOut?7
-eric6.DebugClients.Python.DebugProtocol.RequestStepOver?7
-eric6.DebugClients.Python.DebugProtocol.RequestStepQuit?7
-eric6.DebugClients.Python.DebugProtocol.RequestThreadList?7
-eric6.DebugClients.Python.DebugProtocol.RequestThreadSet?7
-eric6.DebugClients.Python.DebugProtocol.RequestUTPrepare?7
-eric6.DebugClients.Python.DebugProtocol.RequestUTRun?7
-eric6.DebugClients.Python.DebugProtocol.RequestUTStop?7
-eric6.DebugClients.Python.DebugProtocol.RequestVariable?7
-eric6.DebugClients.Python.DebugProtocol.RequestVariables?7
-eric6.DebugClients.Python.DebugProtocol.RequestWatch?7
-eric6.DebugClients.Python.DebugProtocol.RequestWatchEnable?7
-eric6.DebugClients.Python.DebugProtocol.RequestWatchIgnore?7
-eric6.DebugClients.Python.DebugProtocol.ResponseBPConditionError?7
-eric6.DebugClients.Python.DebugProtocol.ResponseBanner?7
-eric6.DebugClients.Python.DebugProtocol.ResponseCapabilities?7
-eric6.DebugClients.Python.DebugProtocol.ResponseClearBreak?7
-eric6.DebugClients.Python.DebugProtocol.ResponseClearWatch?7
-eric6.DebugClients.Python.DebugProtocol.ResponseCompletion?7
-eric6.DebugClients.Python.DebugProtocol.ResponseContinue?7
-eric6.DebugClients.Python.DebugProtocol.ResponseException?7
-eric6.DebugClients.Python.DebugProtocol.ResponseExit?7
-eric6.DebugClients.Python.DebugProtocol.ResponseForkTo?7
-eric6.DebugClients.Python.DebugProtocol.ResponseLine?7
-eric6.DebugClients.Python.DebugProtocol.ResponseOK?7
-eric6.DebugClients.Python.DebugProtocol.ResponseRaw?7
-eric6.DebugClients.Python.DebugProtocol.ResponseSignal?7
-eric6.DebugClients.Python.DebugProtocol.ResponseStack?7
-eric6.DebugClients.Python.DebugProtocol.ResponseSyntax?7
-eric6.DebugClients.Python.DebugProtocol.ResponseThreadList?7
-eric6.DebugClients.Python.DebugProtocol.ResponseThreadSet?7
-eric6.DebugClients.Python.DebugProtocol.ResponseUTFinished?7
-eric6.DebugClients.Python.DebugProtocol.ResponseUTPrepared?7
-eric6.DebugClients.Python.DebugProtocol.ResponseUTStartTest?7
-eric6.DebugClients.Python.DebugProtocol.ResponseUTStopTest?7
-eric6.DebugClients.Python.DebugProtocol.ResponseUTTestErrored?7
-eric6.DebugClients.Python.DebugProtocol.ResponseUTTestFailed?7
-eric6.DebugClients.Python.DebugProtocol.ResponseUTTestFailedExpected?7
-eric6.DebugClients.Python.DebugProtocol.ResponseUTTestSkipped?7
-eric6.DebugClients.Python.DebugProtocol.ResponseUTTestSucceededUnexpected?7
-eric6.DebugClients.Python.DebugProtocol.ResponseVariable?7
-eric6.DebugClients.Python.DebugProtocol.ResponseVariables?7
-eric6.DebugClients.Python.DebugProtocol.ResponseWPConditionError?7
-eric6.DebugClients.Python.DebugThread.DebugThread.bootstrap?4()
-eric6.DebugClients.Python.DebugThread.DebugThread.get_ident?4()
-eric6.DebugClients.Python.DebugThread.DebugThread.get_name?4()
-eric6.DebugClients.Python.DebugThread.DebugThread.set_ident?4(id)
-eric6.DebugClients.Python.DebugThread.DebugThread.traceThread?4()
-eric6.DebugClients.Python.DebugThread.DebugThread.trace_dispatch?4(frame, event, arg)
-eric6.DebugClients.Python.DebugThread.DebugThread?1(dbgClient, targ=None, args=None, kwargs=None, mainThread=0)
-eric6.DebugClients.Python.FlexCompleter.Completer._callable_postfix?5(val, word)
-eric6.DebugClients.Python.FlexCompleter.Completer.attr_matches?4(text)
-eric6.DebugClients.Python.FlexCompleter.Completer.complete?4(text, state)
-eric6.DebugClients.Python.FlexCompleter.Completer.global_matches?4(text)
-eric6.DebugClients.Python.FlexCompleter.Completer?1(namespace=None)
-eric6.DebugClients.Python.FlexCompleter.get_class_members?4(klass)
-eric6.DebugClients.Python.PyProfile.PyProfile.dispatch?7
-eric6.DebugClients.Python.PyProfile.PyProfile.dump_stats?4(file)
-eric6.DebugClients.Python.PyProfile.PyProfile.erase?4()
-eric6.DebugClients.Python.PyProfile.PyProfile.fix_frame_filename?4(frame)
-eric6.DebugClients.Python.PyProfile.PyProfile.save?4()
-eric6.DebugClients.Python.PyProfile.PyProfile.trace_dispatch_call?4(frame, t)
-eric6.DebugClients.Python.PyProfile.PyProfile?1(basename, timer=None, bias=None)
-eric6.DebugClients.Python.eric6dbgstub.debugger?7
-eric6.DebugClients.Python.eric6dbgstub.ericpath?7
-eric6.DebugClients.Python.eric6dbgstub.initDebugger?4(kind="standard")
-eric6.DebugClients.Python.eric6dbgstub.modDir?7
-eric6.DebugClients.Python.eric6dbgstub.runcall?4(func, *args)
-eric6.DebugClients.Python.eric6dbgstub.setScriptname?4(name)
-eric6.DebugClients.Python.eric6dbgstub.startDebugger?4(enableTrace=True, exceptions=True, tracePython=False, redirect=True)
-eric6.DebugClients.Python.getpass.default_getpass?7
-eric6.DebugClients.Python.getpass.getpass?4(prompt='Password: ')
-eric6.DebugClients.Python.getpass.getuser?4()
-eric6.DebugClients.Python.getpass.unix_getpass?7
-eric6.DebugClients.Python.getpass.win_getpass?7
+eric6.DebugClients.Python2.AsyncFile.AsyncFile.close?4(closeit=False)
+eric6.DebugClients.Python2.AsyncFile.AsyncFile.fileno?4()
+eric6.DebugClients.Python2.AsyncFile.AsyncFile.flush?4()
+eric6.DebugClients.Python2.AsyncFile.AsyncFile.isatty?4()
+eric6.DebugClients.Python2.AsyncFile.AsyncFile.maxbuffersize?7
+eric6.DebugClients.Python2.AsyncFile.AsyncFile.maxtries?7
+eric6.DebugClients.Python2.AsyncFile.AsyncFile.pendingWrite?4()
+eric6.DebugClients.Python2.AsyncFile.AsyncFile.read?4(size=-1)
+eric6.DebugClients.Python2.AsyncFile.AsyncFile.read_p?4(size=-1)
+eric6.DebugClients.Python2.AsyncFile.AsyncFile.readable?4()
+eric6.DebugClients.Python2.AsyncFile.AsyncFile.readline?4(sizehint=-1)
+eric6.DebugClients.Python2.AsyncFile.AsyncFile.readline_p?4(size=-1)
+eric6.DebugClients.Python2.AsyncFile.AsyncFile.readlines?4(sizehint=-1)
+eric6.DebugClients.Python2.AsyncFile.AsyncFile.seek?4(offset, whence=0)
+eric6.DebugClients.Python2.AsyncFile.AsyncFile.seekable?4()
+eric6.DebugClients.Python2.AsyncFile.AsyncFile.tell?4()
+eric6.DebugClients.Python2.AsyncFile.AsyncFile.truncate?4(size=-1)
+eric6.DebugClients.Python2.AsyncFile.AsyncFile.writable?4()
+eric6.DebugClients.Python2.AsyncFile.AsyncFile.write?4(s)
+eric6.DebugClients.Python2.AsyncFile.AsyncFile.write_p?4(s)
+eric6.DebugClients.Python2.AsyncFile.AsyncFile.writelines?4(lines)
+eric6.DebugClients.Python2.AsyncFile.AsyncFile?1(sock, mode, name)
+eric6.DebugClients.Python2.AsyncFile.AsyncPendingWrite?4(file)
+eric6.DebugClients.Python2.DCTestResult.DCTestResult.addError?4(test, err)
+eric6.DebugClients.Python2.DCTestResult.DCTestResult.addExpectedFailure?4(test, err)
+eric6.DebugClients.Python2.DCTestResult.DCTestResult.addFailure?4(test, err)
+eric6.DebugClients.Python2.DCTestResult.DCTestResult.addSkip?4(test, reason)
+eric6.DebugClients.Python2.DCTestResult.DCTestResult.addUnexpectedSuccess?4(test)
+eric6.DebugClients.Python2.DCTestResult.DCTestResult.startTest?4(test)
+eric6.DebugClients.Python2.DCTestResult.DCTestResult.stopTest?4(test)
+eric6.DebugClients.Python2.DCTestResult.DCTestResult?1(dbgClient)
+eric6.DebugClients.Python2.DebugBase.DebugBase.break_anywhere?4(frame)
+eric6.DebugClients.Python2.DebugBase.DebugBase.break_here?4(frame)
+eric6.DebugClients.Python2.DebugBase.DebugBase.clear_watch?4(cond)
+eric6.DebugClients.Python2.DebugBase.DebugBase.dispatch_exception?4(frame, arg)
+eric6.DebugClients.Python2.DebugBase.DebugBase.dispatch_line?4(frame)
+eric6.DebugClients.Python2.DebugBase.DebugBase.dispatch_return?4(frame, arg)
+eric6.DebugClients.Python2.DebugBase.DebugBase.fix_frame_filename?4(frame)
+eric6.DebugClients.Python2.DebugBase.DebugBase.getCurrentFrame?4()
+eric6.DebugClients.Python2.DebugBase.DebugBase.getEvent?4()
+eric6.DebugClients.Python2.DebugBase.DebugBase.getFrameLocals?4(frmnr=0)
+eric6.DebugClients.Python2.DebugBase.DebugBase.getStack?4()
+eric6.DebugClients.Python2.DebugBase.DebugBase.get_break?4(filename, lineno)
+eric6.DebugClients.Python2.DebugBase.DebugBase.get_watch?4(cond)
+eric6.DebugClients.Python2.DebugBase.DebugBase.go?4(special)
+eric6.DebugClients.Python2.DebugBase.DebugBase.isBroken?4()
+eric6.DebugClients.Python2.DebugBase.DebugBase.profile?4(frame, event, arg)
+eric6.DebugClients.Python2.DebugBase.DebugBase.setRecursionDepth?4(frame)
+eric6.DebugClients.Python2.DebugBase.DebugBase.set_continue?4(special)
+eric6.DebugClients.Python2.DebugBase.DebugBase.set_quit?4()
+eric6.DebugClients.Python2.DebugBase.DebugBase.set_trace?4(frame=None)
+eric6.DebugClients.Python2.DebugBase.DebugBase.set_watch?4(cond, temporary=False)
+eric6.DebugClients.Python2.DebugBase.DebugBase.step?4(traceMode)
+eric6.DebugClients.Python2.DebugBase.DebugBase.stepOut?4()
+eric6.DebugClients.Python2.DebugBase.DebugBase.stop_here?4(frame)
+eric6.DebugClients.Python2.DebugBase.DebugBase.storeFrameLocals?4(frmnr=0)
+eric6.DebugClients.Python2.DebugBase.DebugBase.trace_dispatch?4(frame, event, arg)
+eric6.DebugClients.Python2.DebugBase.DebugBase.user_exception?4(frame, (exctype, excval, exctb), unhandled=0)
+eric6.DebugClients.Python2.DebugBase.DebugBase.user_line?4(frame)
+eric6.DebugClients.Python2.DebugBase.DebugBase.user_return?4(frame, retval)
+eric6.DebugClients.Python2.DebugBase.DebugBase?1(dbgClient)
+eric6.DebugClients.Python2.DebugBase.gRecursionLimit?7
+eric6.DebugClients.Python2.DebugBase.printerr?4(s)
+eric6.DebugClients.Python2.DebugBase.setRecursionLimit?4(limit)
+eric6.DebugClients.Python2.DebugClient.DebugClient.debugClient?7
+eric6.DebugClients.Python2.DebugClient.DebugClient?1()
+eric6.DebugClients.Python2.DebugClientBase.DebugClientBase.Indicators?7
+eric6.DebugClients.Python2.DebugClientBase.DebugClientBase.absPath?4(fn)
+eric6.DebugClients.Python2.DebugClientBase.DebugClientBase.attachThread?4(target=None, args=None, kwargs=None, mainThread=False)
+eric6.DebugClients.Python2.DebugClientBase.DebugClientBase.clientCapabilities?7
+eric6.DebugClients.Python2.DebugClientBase.DebugClientBase.close?4(fd)
+eric6.DebugClients.Python2.DebugClientBase.DebugClientBase.connectDebugger?4(port, remoteAddress=None, redirect=1)
+eric6.DebugClients.Python2.DebugClientBase.DebugClientBase.eventLoop?4(disablePolling=False)
+eric6.DebugClients.Python2.DebugClientBase.DebugClientBase.eventPoll?4()
+eric6.DebugClients.Python2.DebugClientBase.DebugClientBase.fork?4()
+eric6.DebugClients.Python2.DebugClientBase.DebugClientBase.getCoding?4()
+eric6.DebugClients.Python2.DebugClientBase.DebugClientBase.getRunning?4()
+eric6.DebugClients.Python2.DebugClientBase.DebugClientBase.handleJsonCommand?4(jsonStr)
+eric6.DebugClients.Python2.DebugClientBase.DebugClientBase.handleLine?4(line)
+eric6.DebugClients.Python2.DebugClientBase.DebugClientBase.input?4(prompt)
+eric6.DebugClients.Python2.DebugClientBase.DebugClientBase.main?4()
+eric6.DebugClients.Python2.DebugClientBase.DebugClientBase.progTerminated?4(status, message="")
+eric6.DebugClients.Python2.DebugClientBase.DebugClientBase.raw_input?4(prompt, echo)
+eric6.DebugClients.Python2.DebugClientBase.DebugClientBase.readReady?4(stream)
+eric6.DebugClients.Python2.DebugClientBase.DebugClientBase.run_call?4(scriptname, func, *args)
+eric6.DebugClients.Python2.DebugClientBase.DebugClientBase.sendCallTrace?4(event, fromInfo, toInfo)
+eric6.DebugClients.Python2.DebugClientBase.DebugClientBase.sendClearTemporaryBreakpoint?4(filename, lineno)
+eric6.DebugClients.Python2.DebugClientBase.DebugClientBase.sendClearTemporaryWatch?4(condition)
+eric6.DebugClients.Python2.DebugClientBase.DebugClientBase.sendException?4(exceptionType, exceptionMessage, stack)
+eric6.DebugClients.Python2.DebugClientBase.DebugClientBase.sendJsonCommand?4(method, params)
+eric6.DebugClients.Python2.DebugClientBase.DebugClientBase.sendPassiveStartup?4(filename, exceptions)
+eric6.DebugClients.Python2.DebugClientBase.DebugClientBase.sendResponseLine?4(stack)
+eric6.DebugClients.Python2.DebugClientBase.DebugClientBase.sendSyntaxError?4(message, filename, lineno, charno)
+eric6.DebugClients.Python2.DebugClientBase.DebugClientBase.sessionClose?4(exit=True)
+eric6.DebugClients.Python2.DebugClientBase.DebugClientBase.shouldSkip?4(fn)
+eric6.DebugClients.Python2.DebugClientBase.DebugClientBase.startDebugger?4(filename=None, host=None, port=None, enableTrace=True, exceptions=True, tracePython=False, redirect=True)
+eric6.DebugClients.Python2.DebugClientBase.DebugClientBase.startProgInDebugger?4(progargs, wd='', host=None, port=None, exceptions=True, tracePython=False, redirect=True)
+eric6.DebugClients.Python2.DebugClientBase.DebugClientBase.writeReady?4(stream)
+eric6.DebugClients.Python2.DebugClientBase.DebugClientBase?1()
+eric6.DebugClients.Python2.DebugClientBase.DebugClientClose?4(fd)
+eric6.DebugClients.Python2.DebugClientBase.DebugClientFork?4()
+eric6.DebugClients.Python2.DebugClientBase.DebugClientInput?4(prompt="")
+eric6.DebugClients.Python2.DebugClientBase.DebugClientInstance?7
+eric6.DebugClients.Python2.DebugClientBase.DebugClientRawInput?4(prompt="", echo=1)
+eric6.DebugClients.Python2.DebugClientBase.DebugClientSetRecursionLimit?4(limit)
+eric6.DebugClients.Python2.DebugClientCapabilities.HasAll?7
+eric6.DebugClients.Python2.DebugClientCapabilities.HasCompleter?7
+eric6.DebugClients.Python2.DebugClientCapabilities.HasCoverage?7
+eric6.DebugClients.Python2.DebugClientCapabilities.HasDebugger?7
+eric6.DebugClients.Python2.DebugClientCapabilities.HasInterpreter?7
+eric6.DebugClients.Python2.DebugClientCapabilities.HasProfiler?7
+eric6.DebugClients.Python2.DebugClientCapabilities.HasShell?7
+eric6.DebugClients.Python2.DebugClientCapabilities.HasUnittest?7
+eric6.DebugClients.Python2.DebugClientThreads.DebugClientThreads.attachThread?4(target=None, args=None, kwargs=None, mainThread=False)
+eric6.DebugClients.Python2.DebugClientThreads.DebugClientThreads.debugClient?7
+eric6.DebugClients.Python2.DebugClientThreads.DebugClientThreads.eventLoop?4(disablePolling=False)
+eric6.DebugClients.Python2.DebugClientThreads.DebugClientThreads.lockClient?4(blocking=True)
+eric6.DebugClients.Python2.DebugClientThreads.DebugClientThreads.setCurrentThread?4(id)
+eric6.DebugClients.Python2.DebugClientThreads.DebugClientThreads.set_quit?4()
+eric6.DebugClients.Python2.DebugClientThreads.DebugClientThreads.threadTerminated?4(dbgThread)
+eric6.DebugClients.Python2.DebugClientThreads.DebugClientThreads.unlockClient?4()
+eric6.DebugClients.Python2.DebugClientThreads.DebugClientThreads?1()
+eric6.DebugClients.Python2.DebugClientThreads._debugclient_start_new_thread?5(target, args, kwargs={})
+eric6.DebugClients.Python2.DebugClientThreads._original_start_thread?8
+eric6.DebugClients.Python2.DebugConfig.ConfigVarTypeStrings?7
+eric6.DebugClients.Python2.DebugThread.DebugThread.bootstrap?4()
+eric6.DebugClients.Python2.DebugThread.DebugThread.get_ident?4()
+eric6.DebugClients.Python2.DebugThread.DebugThread.get_name?4()
+eric6.DebugClients.Python2.DebugThread.DebugThread.set_ident?4(id)
+eric6.DebugClients.Python2.DebugThread.DebugThread.traceThread?4()
+eric6.DebugClients.Python2.DebugThread.DebugThread.trace_dispatch?4(frame, event, arg)
+eric6.DebugClients.Python2.DebugThread.DebugThread?1(dbgClient, targ=None, args=None, kwargs=None, mainThread=False)
+eric6.DebugClients.Python2.DebugUtilities.prepareJsonCommand?4(method, params)
+eric6.DebugClients.Python2.DebugVariables.BaseResolver.getDictionary?4(var)
+eric6.DebugClients.Python2.DebugVariables.BaseResolver.resolve?4(var, attribute)
+eric6.DebugClients.Python2.DebugVariables.DefaultResolver.getDictionary?4(var)
+eric6.DebugClients.Python2.DebugVariables.DefaultResolver.resolve?4(var, attribute)
+eric6.DebugClients.Python2.DebugVariables.DictResolver.getDictionary?4(var)
+eric6.DebugClients.Python2.DebugVariables.DictResolver.resolve?4(var, attribute)
+eric6.DebugClients.Python2.DebugVariables.ListResolver.getDictionary?4(var)
+eric6.DebugClients.Python2.DebugVariables.ListResolver.resolve?4(var, attribute)
+eric6.DebugClients.Python2.DebugVariables.MaxItemsToHandle?7
+eric6.DebugClients.Python2.DebugVariables.SetResolver.getDictionary?4(var)
+eric6.DebugClients.Python2.DebugVariables.SetResolver.resolve?4(var, attribute)
+eric6.DebugClients.Python2.DebugVariables.TooLargeAttribute?7
+eric6.DebugClients.Python2.DebugVariables.TooLargeMessage?7
+eric6.DebugClients.Python2.DebugVariables._TypeMap?8
+eric6.DebugClients.Python2.DebugVariables._initTypeMap?5()
+eric6.DebugClients.Python2.DebugVariables.defaultResolver?7
+eric6.DebugClients.Python2.DebugVariables.dictResolver?7
+eric6.DebugClients.Python2.DebugVariables.getType?4(obj)
+eric6.DebugClients.Python2.DebugVariables.listResolver?7
+eric6.DebugClients.Python2.DebugVariables.setResolver?7
+eric6.DebugClients.Python2.FlexCompleter.Completer._callable_postfix?5(val, word)
+eric6.DebugClients.Python2.FlexCompleter.Completer.attr_matches?4(text)
+eric6.DebugClients.Python2.FlexCompleter.Completer.complete?4(text, state)
+eric6.DebugClients.Python2.FlexCompleter.Completer.global_matches?4(text)
+eric6.DebugClients.Python2.FlexCompleter.Completer?1(namespace=None)
+eric6.DebugClients.Python2.FlexCompleter.get_class_members?4(klass)
+eric6.DebugClients.Python2.PyProfile.PyProfile.dispatch?7
+eric6.DebugClients.Python2.PyProfile.PyProfile.dump_stats?4(file)
+eric6.DebugClients.Python2.PyProfile.PyProfile.erase?4()
+eric6.DebugClients.Python2.PyProfile.PyProfile.fix_frame_filename?4(frame)
+eric6.DebugClients.Python2.PyProfile.PyProfile.save?4()
+eric6.DebugClients.Python2.PyProfile.PyProfile.trace_dispatch_call?4(frame, t)
+eric6.DebugClients.Python2.PyProfile.PyProfile?1(basename, timer=None, bias=None)
+eric6.DebugClients.Python2.eric6dbgstub.debugger?7
+eric6.DebugClients.Python2.eric6dbgstub.ericpath?7
+eric6.DebugClients.Python2.eric6dbgstub.initDebugger?4(kind="standard")
+eric6.DebugClients.Python2.eric6dbgstub.modDir?7
+eric6.DebugClients.Python2.eric6dbgstub.runcall?4(func, *args)
+eric6.DebugClients.Python2.eric6dbgstub.setScriptname?4(name)
+eric6.DebugClients.Python2.eric6dbgstub.startDebugger?4(enableTrace=True, exceptions=True, tracePython=False, redirect=True)
+eric6.DebugClients.Python2.getpass.default_getpass?7
+eric6.DebugClients.Python2.getpass.getpass?4(prompt='Password: ')
+eric6.DebugClients.Python2.getpass.getuser?4()
+eric6.DebugClients.Python2.getpass.unix_getpass?7
+eric6.DebugClients.Python2.getpass.win_getpass?7
 eric6.DebugClients.Python3.AsyncFile.AsyncFile.close?4(closeit=False)
 eric6.DebugClients.Python3.AsyncFile.AsyncFile.fileno?4()
 eric6.DebugClients.Python3.AsyncFile.AsyncFile.flush?4()
@@ -353,15 +315,10 @@
 eric6.DebugClients.Python3.AsyncFile.AsyncFile.truncate?4(size=-1)
 eric6.DebugClients.Python3.AsyncFile.AsyncFile.writable?4()
 eric6.DebugClients.Python3.AsyncFile.AsyncFile.write?4(s)
-eric6.DebugClients.Python3.AsyncFile.AsyncFile.writelines?4(list)
+eric6.DebugClients.Python3.AsyncFile.AsyncFile.write_p?4(s)
+eric6.DebugClients.Python3.AsyncFile.AsyncFile.writelines?4(lines)
 eric6.DebugClients.Python3.AsyncFile.AsyncFile?1(sock, mode, name)
 eric6.DebugClients.Python3.AsyncFile.AsyncPendingWrite?4(file)
-eric6.DebugClients.Python3.AsyncIO.AsyncIO.disconnect?4()
-eric6.DebugClients.Python3.AsyncIO.AsyncIO.readReady?4(fd)
-eric6.DebugClients.Python3.AsyncIO.AsyncIO.setDescriptors?4(rfd, wfd)
-eric6.DebugClients.Python3.AsyncIO.AsyncIO.write?4(s)
-eric6.DebugClients.Python3.AsyncIO.AsyncIO.writeReady?4(fd)
-eric6.DebugClients.Python3.AsyncIO.AsyncIO?1()
 eric6.DebugClients.Python3.DCTestResult.DCTestResult.addError?4(test, err)
 eric6.DebugClients.Python3.DCTestResult.DCTestResult.addExpectedFailure?4(test, err)
 eric6.DebugClients.Python3.DCTestResult.DCTestResult.addFailure?4(test, err)
@@ -369,7 +326,7 @@
 eric6.DebugClients.Python3.DCTestResult.DCTestResult.addUnexpectedSuccess?4(test)
 eric6.DebugClients.Python3.DCTestResult.DCTestResult.startTest?4(test)
 eric6.DebugClients.Python3.DCTestResult.DCTestResult.stopTest?4(test)
-eric6.DebugClients.Python3.DCTestResult.DCTestResult?1(parent)
+eric6.DebugClients.Python3.DCTestResult.DCTestResult?1(dbgClient)
 eric6.DebugClients.Python3.DebugBase.DebugBase.break_anywhere?4(frame)
 eric6.DebugClients.Python3.DebugBase.DebugBase.break_here?4(frame)
 eric6.DebugClients.Python3.DebugBase.DebugBase.clear_watch?4(cond)
@@ -405,6 +362,7 @@
 eric6.DebugClients.Python3.DebugBase.setRecursionLimit?4(limit)
 eric6.DebugClients.Python3.DebugClient.DebugClient.debugClient?7
 eric6.DebugClients.Python3.DebugClient.DebugClient?1()
+eric6.DebugClients.Python3.DebugClientBase.DebugClientBase.Indicators?7
 eric6.DebugClients.Python3.DebugClientBase.DebugClientBase.absPath?4(fn)
 eric6.DebugClients.Python3.DebugClientBase.DebugClientBase.attachThread?4(target=None, args=None, kwargs=None, mainThread=False)
 eric6.DebugClients.Python3.DebugClientBase.DebugClientBase.clientCapabilities?7
@@ -415,16 +373,26 @@
 eric6.DebugClients.Python3.DebugClientBase.DebugClientBase.fork?4()
 eric6.DebugClients.Python3.DebugClientBase.DebugClientBase.getCoding?4()
 eric6.DebugClients.Python3.DebugClientBase.DebugClientBase.getRunning?4()
+eric6.DebugClients.Python3.DebugClientBase.DebugClientBase.handleJsonCommand?4(jsonStr)
 eric6.DebugClients.Python3.DebugClientBase.DebugClientBase.handleLine?4(line)
 eric6.DebugClients.Python3.DebugClientBase.DebugClientBase.input?4(prompt, echo=True)
 eric6.DebugClients.Python3.DebugClientBase.DebugClientBase.main?4()
-eric6.DebugClients.Python3.DebugClientBase.DebugClientBase.progTerminated?4(status)
+eric6.DebugClients.Python3.DebugClientBase.DebugClientBase.progTerminated?4(status, message="")
+eric6.DebugClients.Python3.DebugClientBase.DebugClientBase.readReady?4(stream)
 eric6.DebugClients.Python3.DebugClientBase.DebugClientBase.run_call?4(scriptname, func, *args)
+eric6.DebugClients.Python3.DebugClientBase.DebugClientBase.sendCallTrace?4(event, fromInfo, toInfo)
+eric6.DebugClients.Python3.DebugClientBase.DebugClientBase.sendClearTemporaryBreakpoint?4(filename, lineno)
+eric6.DebugClients.Python3.DebugClientBase.DebugClientBase.sendClearTemporaryWatch?4(condition)
+eric6.DebugClients.Python3.DebugClientBase.DebugClientBase.sendException?4(exceptionType, exceptionMessage, stack)
+eric6.DebugClients.Python3.DebugClientBase.DebugClientBase.sendJsonCommand?4(method, params)
+eric6.DebugClients.Python3.DebugClientBase.DebugClientBase.sendPassiveStartup?4(filename, exceptions)
+eric6.DebugClients.Python3.DebugClientBase.DebugClientBase.sendResponseLine?4(stack)
+eric6.DebugClients.Python3.DebugClientBase.DebugClientBase.sendSyntaxError?4(message, filename, lineno, charno)
 eric6.DebugClients.Python3.DebugClientBase.DebugClientBase.sessionClose?4(exit=True)
 eric6.DebugClients.Python3.DebugClientBase.DebugClientBase.shouldSkip?4(fn)
 eric6.DebugClients.Python3.DebugClientBase.DebugClientBase.startDebugger?4(filename=None, host=None, port=None, enableTrace=True, exceptions=True, tracePython=False, redirect=True)
 eric6.DebugClients.Python3.DebugClientBase.DebugClientBase.startProgInDebugger?4(progargs, wd='', host=None, port=None, exceptions=True, tracePython=False, redirect=True)
-eric6.DebugClients.Python3.DebugClientBase.DebugClientBase.write?4(s)
+eric6.DebugClients.Python3.DebugClientBase.DebugClientBase.writeReady?4(stream)
 eric6.DebugClients.Python3.DebugClientBase.DebugClientBase?1()
 eric6.DebugClients.Python3.DebugClientBase.DebugClientClose?4(fd)
 eric6.DebugClients.Python3.DebugClientBase.DebugClientFork?4()
@@ -451,74 +419,6 @@
 eric6.DebugClients.Python3.DebugClientThreads._debugclient_start_new_thread?5(target, args, kwargs={})
 eric6.DebugClients.Python3.DebugClientThreads._original_start_thread?8
 eric6.DebugClients.Python3.DebugConfig.ConfigVarTypeStrings?7
-eric6.DebugClients.Python3.DebugProtocol.CallTrace?7
-eric6.DebugClients.Python3.DebugProtocol.DebugAddress?7
-eric6.DebugClients.Python3.DebugProtocol.EOT?7
-eric6.DebugClients.Python3.DebugProtocol.PassiveStartup?7
-eric6.DebugClients.Python3.DebugProtocol.RequestBanner?7
-eric6.DebugClients.Python3.DebugProtocol.RequestBreak?7
-eric6.DebugClients.Python3.DebugProtocol.RequestBreakEnable?7
-eric6.DebugClients.Python3.DebugProtocol.RequestBreakIgnore?7
-eric6.DebugClients.Python3.DebugProtocol.RequestCallTrace?7
-eric6.DebugClients.Python3.DebugProtocol.RequestCapabilities?7
-eric6.DebugClients.Python3.DebugProtocol.RequestCompletion?7
-eric6.DebugClients.Python3.DebugProtocol.RequestContinue?7
-eric6.DebugClients.Python3.DebugProtocol.RequestCoverage?7
-eric6.DebugClients.Python3.DebugProtocol.RequestEnv?7
-eric6.DebugClients.Python3.DebugProtocol.RequestEval?7
-eric6.DebugClients.Python3.DebugProtocol.RequestExec?7
-eric6.DebugClients.Python3.DebugProtocol.RequestForkMode?7
-eric6.DebugClients.Python3.DebugProtocol.RequestForkTo?7
-eric6.DebugClients.Python3.DebugProtocol.RequestLoad?7
-eric6.DebugClients.Python3.DebugProtocol.RequestOK?7
-eric6.DebugClients.Python3.DebugProtocol.RequestProfile?7
-eric6.DebugClients.Python3.DebugProtocol.RequestRun?7
-eric6.DebugClients.Python3.DebugProtocol.RequestSetFilter?7
-eric6.DebugClients.Python3.DebugProtocol.RequestShutdown?7
-eric6.DebugClients.Python3.DebugProtocol.RequestStep?7
-eric6.DebugClients.Python3.DebugProtocol.RequestStepOut?7
-eric6.DebugClients.Python3.DebugProtocol.RequestStepOver?7
-eric6.DebugClients.Python3.DebugProtocol.RequestStepQuit?7
-eric6.DebugClients.Python3.DebugProtocol.RequestThreadList?7
-eric6.DebugClients.Python3.DebugProtocol.RequestThreadSet?7
-eric6.DebugClients.Python3.DebugProtocol.RequestUTPrepare?7
-eric6.DebugClients.Python3.DebugProtocol.RequestUTRun?7
-eric6.DebugClients.Python3.DebugProtocol.RequestUTStop?7
-eric6.DebugClients.Python3.DebugProtocol.RequestVariable?7
-eric6.DebugClients.Python3.DebugProtocol.RequestVariables?7
-eric6.DebugClients.Python3.DebugProtocol.RequestWatch?7
-eric6.DebugClients.Python3.DebugProtocol.RequestWatchEnable?7
-eric6.DebugClients.Python3.DebugProtocol.RequestWatchIgnore?7
-eric6.DebugClients.Python3.DebugProtocol.ResponseBPConditionError?7
-eric6.DebugClients.Python3.DebugProtocol.ResponseBanner?7
-eric6.DebugClients.Python3.DebugProtocol.ResponseCapabilities?7
-eric6.DebugClients.Python3.DebugProtocol.ResponseClearBreak?7
-eric6.DebugClients.Python3.DebugProtocol.ResponseClearWatch?7
-eric6.DebugClients.Python3.DebugProtocol.ResponseCompletion?7
-eric6.DebugClients.Python3.DebugProtocol.ResponseContinue?7
-eric6.DebugClients.Python3.DebugProtocol.ResponseException?7
-eric6.DebugClients.Python3.DebugProtocol.ResponseExit?7
-eric6.DebugClients.Python3.DebugProtocol.ResponseForkTo?7
-eric6.DebugClients.Python3.DebugProtocol.ResponseLine?7
-eric6.DebugClients.Python3.DebugProtocol.ResponseOK?7
-eric6.DebugClients.Python3.DebugProtocol.ResponseRaw?7
-eric6.DebugClients.Python3.DebugProtocol.ResponseSignal?7
-eric6.DebugClients.Python3.DebugProtocol.ResponseStack?7
-eric6.DebugClients.Python3.DebugProtocol.ResponseSyntax?7
-eric6.DebugClients.Python3.DebugProtocol.ResponseThreadList?7
-eric6.DebugClients.Python3.DebugProtocol.ResponseThreadSet?7
-eric6.DebugClients.Python3.DebugProtocol.ResponseUTFinished?7
-eric6.DebugClients.Python3.DebugProtocol.ResponseUTPrepared?7
-eric6.DebugClients.Python3.DebugProtocol.ResponseUTStartTest?7
-eric6.DebugClients.Python3.DebugProtocol.ResponseUTStopTest?7
-eric6.DebugClients.Python3.DebugProtocol.ResponseUTTestErrored?7
-eric6.DebugClients.Python3.DebugProtocol.ResponseUTTestFailed?7
-eric6.DebugClients.Python3.DebugProtocol.ResponseUTTestFailedExpected?7
-eric6.DebugClients.Python3.DebugProtocol.ResponseUTTestSkipped?7
-eric6.DebugClients.Python3.DebugProtocol.ResponseUTTestSucceededUnexpected?7
-eric6.DebugClients.Python3.DebugProtocol.ResponseVariable?7
-eric6.DebugClients.Python3.DebugProtocol.ResponseVariables?7
-eric6.DebugClients.Python3.DebugProtocol.ResponseWPConditionError?7
 eric6.DebugClients.Python3.DebugThread.DebugThread.bootstrap?4()
 eric6.DebugClients.Python3.DebugThread.DebugThread.get_ident?4()
 eric6.DebugClients.Python3.DebugThread.DebugThread.get_name?4()
@@ -530,6 +430,27 @@
 eric6.DebugClients.Python3.DebugUtilities._getfullargs?5(co)
 eric6.DebugClients.Python3.DebugUtilities.formatargvalues?4(args, varargs, varkw, locals, formatarg=str, formatvarargs=lambda name: '*' + name, formatvarkw=lambda name: '**' + name, formatvalue=lambda value: '=' + repr(value))
 eric6.DebugClients.Python3.DebugUtilities.getargvalues?4(frame)
+eric6.DebugClients.Python3.DebugUtilities.prepareJsonCommand?4(method, params)
+eric6.DebugClients.Python3.DebugVariables.BaseResolver.getDictionary?4(var)
+eric6.DebugClients.Python3.DebugVariables.BaseResolver.resolve?4(var, attribute)
+eric6.DebugClients.Python3.DebugVariables.DefaultResolver.getDictionary?4(var)
+eric6.DebugClients.Python3.DebugVariables.DefaultResolver.resolve?4(var, attribute)
+eric6.DebugClients.Python3.DebugVariables.DictResolver.getDictionary?4(var)
+eric6.DebugClients.Python3.DebugVariables.DictResolver.resolve?4(var, attribute)
+eric6.DebugClients.Python3.DebugVariables.ListResolver.getDictionary?4(var)
+eric6.DebugClients.Python3.DebugVariables.ListResolver.resolve?4(var, attribute)
+eric6.DebugClients.Python3.DebugVariables.MaxItemsToHandle?7
+eric6.DebugClients.Python3.DebugVariables.SetResolver.getDictionary?4(var)
+eric6.DebugClients.Python3.DebugVariables.SetResolver.resolve?4(var, attribute)
+eric6.DebugClients.Python3.DebugVariables.TooLargeAttribute?7
+eric6.DebugClients.Python3.DebugVariables.TooLargeMessage?7
+eric6.DebugClients.Python3.DebugVariables._TypeMap?8
+eric6.DebugClients.Python3.DebugVariables._initTypeMap?5()
+eric6.DebugClients.Python3.DebugVariables.defaultResolver?7
+eric6.DebugClients.Python3.DebugVariables.dictResolver?7
+eric6.DebugClients.Python3.DebugVariables.getType?4(obj)
+eric6.DebugClients.Python3.DebugVariables.listResolver?7
+eric6.DebugClients.Python3.DebugVariables.setResolver?7
 eric6.DebugClients.Python3.FlexCompleter.Completer._callable_postfix?5(val, word)
 eric6.DebugClients.Python3.FlexCompleter.Completer.attr_matches?4(text)
 eric6.DebugClients.Python3.FlexCompleter.Completer.complete?4(text, state)
@@ -594,10 +515,13 @@
 eric6.Debugger.CallTraceViewer.CallTraceViewer.on_resizeButton_clicked?4()
 eric6.Debugger.CallTraceViewer.CallTraceViewer.on_saveButton_clicked?4()
 eric6.Debugger.CallTraceViewer.CallTraceViewer.on_startTraceButton_clicked?4()
+eric6.Debugger.CallTraceViewer.CallTraceViewer.on_stopCheckBox_clicked?4(checked)
 eric6.Debugger.CallTraceViewer.CallTraceViewer.on_stopTraceButton_clicked?4()
 eric6.Debugger.CallTraceViewer.CallTraceViewer.setProjectMode?4(enabled)
 eric6.Debugger.CallTraceViewer.CallTraceViewer.sourceFile?7
 eric6.Debugger.CallTraceViewer.CallTraceViewer?1(debugServer, parent=None)
+eric6.Debugger.Config.ConfigVarTypeDispStrings?7
+eric6.Debugger.Config.ConfigVarTypeFilters?7
 eric6.Debugger.DebugClientCapabilities.HasAll?7
 eric6.Debugger.DebugClientCapabilities.HasCompleter?7
 eric6.Debugger.DebugClientCapabilities.HasCoverage?7
@@ -606,73 +530,6 @@
 eric6.Debugger.DebugClientCapabilities.HasProfiler?7
 eric6.Debugger.DebugClientCapabilities.HasShell?7
 eric6.Debugger.DebugClientCapabilities.HasUnittest?7
-eric6.Debugger.DebugProtocol.CallTrace?7
-eric6.Debugger.DebugProtocol.EOT?7
-eric6.Debugger.DebugProtocol.PassiveStartup?7
-eric6.Debugger.DebugProtocol.RequestBanner?7
-eric6.Debugger.DebugProtocol.RequestBreak?7
-eric6.Debugger.DebugProtocol.RequestBreakEnable?7
-eric6.Debugger.DebugProtocol.RequestBreakIgnore?7
-eric6.Debugger.DebugProtocol.RequestCallTrace?7
-eric6.Debugger.DebugProtocol.RequestCapabilities?7
-eric6.Debugger.DebugProtocol.RequestCompletion?7
-eric6.Debugger.DebugProtocol.RequestContinue?7
-eric6.Debugger.DebugProtocol.RequestCoverage?7
-eric6.Debugger.DebugProtocol.RequestEnv?7
-eric6.Debugger.DebugProtocol.RequestEval?7
-eric6.Debugger.DebugProtocol.RequestExec?7
-eric6.Debugger.DebugProtocol.RequestForkMode?7
-eric6.Debugger.DebugProtocol.RequestForkTo?7
-eric6.Debugger.DebugProtocol.RequestLoad?7
-eric6.Debugger.DebugProtocol.RequestOK?7
-eric6.Debugger.DebugProtocol.RequestProfile?7
-eric6.Debugger.DebugProtocol.RequestRun?7
-eric6.Debugger.DebugProtocol.RequestSetFilter?7
-eric6.Debugger.DebugProtocol.RequestShutdown?7
-eric6.Debugger.DebugProtocol.RequestStep?7
-eric6.Debugger.DebugProtocol.RequestStepOut?7
-eric6.Debugger.DebugProtocol.RequestStepOver?7
-eric6.Debugger.DebugProtocol.RequestStepQuit?7
-eric6.Debugger.DebugProtocol.RequestThreadList?7
-eric6.Debugger.DebugProtocol.RequestThreadSet?7
-eric6.Debugger.DebugProtocol.RequestUTPrepare?7
-eric6.Debugger.DebugProtocol.RequestUTRun?7
-eric6.Debugger.DebugProtocol.RequestUTStop?7
-eric6.Debugger.DebugProtocol.RequestVariable?7
-eric6.Debugger.DebugProtocol.RequestVariables?7
-eric6.Debugger.DebugProtocol.RequestWatch?7
-eric6.Debugger.DebugProtocol.RequestWatchEnable?7
-eric6.Debugger.DebugProtocol.RequestWatchIgnore?7
-eric6.Debugger.DebugProtocol.ResponseBPConditionError?7
-eric6.Debugger.DebugProtocol.ResponseBanner?7
-eric6.Debugger.DebugProtocol.ResponseCapabilities?7
-eric6.Debugger.DebugProtocol.ResponseClearBreak?7
-eric6.Debugger.DebugProtocol.ResponseClearWatch?7
-eric6.Debugger.DebugProtocol.ResponseCompletion?7
-eric6.Debugger.DebugProtocol.ResponseContinue?7
-eric6.Debugger.DebugProtocol.ResponseException?7
-eric6.Debugger.DebugProtocol.ResponseExit?7
-eric6.Debugger.DebugProtocol.ResponseForkTo?7
-eric6.Debugger.DebugProtocol.ResponseLine?7
-eric6.Debugger.DebugProtocol.ResponseOK?7
-eric6.Debugger.DebugProtocol.ResponseRaw?7
-eric6.Debugger.DebugProtocol.ResponseSignal?7
-eric6.Debugger.DebugProtocol.ResponseStack?7
-eric6.Debugger.DebugProtocol.ResponseSyntax?7
-eric6.Debugger.DebugProtocol.ResponseThreadList?7
-eric6.Debugger.DebugProtocol.ResponseThreadSet?7
-eric6.Debugger.DebugProtocol.ResponseUTFinished?7
-eric6.Debugger.DebugProtocol.ResponseUTPrepared?7
-eric6.Debugger.DebugProtocol.ResponseUTStartTest?7
-eric6.Debugger.DebugProtocol.ResponseUTStopTest?7
-eric6.Debugger.DebugProtocol.ResponseUTTestErrored?7
-eric6.Debugger.DebugProtocol.ResponseUTTestFailed?7
-eric6.Debugger.DebugProtocol.ResponseUTTestFailedExpected?7
-eric6.Debugger.DebugProtocol.ResponseUTTestSkipped?7
-eric6.Debugger.DebugProtocol.ResponseUTTestSucceededUnexpected?7
-eric6.Debugger.DebugProtocol.ResponseVariable?7
-eric6.Debugger.DebugProtocol.ResponseVariables?7
-eric6.Debugger.DebugProtocol.ResponseWPConditionError?7
 eric6.Debugger.DebugServer.DebugServer.appendStdout?7
 eric6.Debugger.DebugServer.DebugServer.callTraceInfo?7
 eric6.Debugger.DebugServer.DebugServer.clientBanner?7
@@ -731,8 +588,6 @@
 eric6.Debugger.DebugServer.DebugServer.remoteContinue?4(special=False)
 eric6.Debugger.DebugServer.DebugServer.remoteCoverage?4(fn, argv, wd, env, autoClearShell=True, erase=False, forProject=False, runInConsole=False, clientType="")
 eric6.Debugger.DebugServer.DebugServer.remoteEnvironment?4(env)
-eric6.Debugger.DebugServer.DebugServer.remoteEval?4(arg)
-eric6.Debugger.DebugServer.DebugServer.remoteExec?4(stmt)
 eric6.Debugger.DebugServer.DebugServer.remoteLoad?4(fn, argv, wd, env, autoClearShell=True, tracePython=False, autoContinue=True, forProject=False, runInConsole=False, autoFork=False, forkChild=False, clientType="", enableCallTrace=False)
 eric6.Debugger.DebugServer.DebugServer.remoteProfile?4(fn, argv, wd, env, autoClearShell=True, erase=False, forProject=False, runInConsole=False, clientType="")
 eric6.Debugger.DebugServer.DebugServer.remoteRawInput?4(s)
@@ -757,7 +612,7 @@
 eric6.Debugger.DebugServer.DebugServer.signalClientClearWatch?4(condition)
 eric6.Debugger.DebugServer.DebugServer.signalClientCompletionList?4(completionList, text)
 eric6.Debugger.DebugServer.DebugServer.signalClientException?4(exceptionType, exceptionMessage, stackTrace)
-eric6.Debugger.DebugServer.DebugServer.signalClientExit?4(status)
+eric6.Debugger.DebugServer.DebugServer.signalClientExit?4(status, message="")
 eric6.Debugger.DebugServer.DebugServer.signalClientLine?4(filename, lineno, forStack=False)
 eric6.Debugger.DebugServer.DebugServer.signalClientOutput?4(line)
 eric6.Debugger.DebugServer.DebugServer.signalClientRawInput?4(prompt, echo)
@@ -784,6 +639,7 @@
 eric6.Debugger.DebugServer.DebugServer?1()
 eric6.Debugger.DebugServer.DebuggerInterfaces?7
 eric6.Debugger.DebugUI.DebugUI.appendStdout?7
+eric6.Debugger.DebugUI.DebugUI.clearHistories?4()
 eric6.Debugger.DebugUI.DebugUI.clientStack?7
 eric6.Debugger.DebugUI.DebugUI.compileForms?7
 eric6.Debugger.DebugUI.DebugUI.compileResources?7
@@ -821,6 +677,8 @@
 eric6.Debugger.DebugViewer.DebugViewer.setCallTraceToProjectMode?4(enabled)
 eric6.Debugger.DebugViewer.DebugViewer.setCurrentWidget?4(widget)
 eric6.Debugger.DebugViewer.DebugViewer.setDebugger?4(debugUI)
+eric6.Debugger.DebugViewer.DebugViewer.setGlobalsFilter?4()
+eric6.Debugger.DebugViewer.DebugViewer.setLocalsFilter?4()
 eric6.Debugger.DebugViewer.DebugViewer.setVariablesFilter?4(globalsFilter, localsFilter)
 eric6.Debugger.DebugViewer.DebugViewer.showThreadList?4(currentID, threadList)
 eric6.Debugger.DebugViewer.DebugViewer.showVariable?4(vlist, globals)
@@ -834,7 +692,6 @@
 eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.getClientCapabilities?4()
 eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.isConnected?4()
 eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.newConnection?4(sock)
-eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.remoteBanner?4()
 eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.remoteBreakpoint?4(fn, line, set, cond=None, temp=False)
 eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.remoteBreakpointEnable?4(fn, line, enable)
 eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.remoteBreakpointIgnore?4(fn, line, count)
@@ -847,7 +704,6 @@
 eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.remoteCoverage?4(fn, argv, wd, erase=False)
 eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.remoteEnvironment?4(env)
 eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.remoteEval?4(arg)
-eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.remoteExec?4(stmt)
 eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.remoteLoad?4(fn, argv, wd, traceInterpreter=False, autoContinue=True, autoFork=False, forkChild=False)
 eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.remoteProfile?4(fn, argv, wd, erase=False)
 eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.remoteRawInput?4(s)
@@ -872,56 +728,54 @@
 eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone?1(debugServer, passive)
 eric6.Debugger.DebuggerInterfaceNone.createDebuggerInterfaceNone?4(debugServer, passive)
 eric6.Debugger.DebuggerInterfaceNone.getRegistryData?4()
-eric6.Debugger.DebuggerInterfacePython.ClientDefaultCapabilities?7
-eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.flush?4()
-eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.getClientCapabilities?4()
-eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.isConnected?4()
-eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.newConnection?4(sock)
-eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.remoteBanner?4()
-eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.remoteBreakpoint?4(fn, line, set, cond=None, temp=False)
-eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.remoteBreakpointEnable?4(fn, line, enable)
-eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.remoteBreakpointIgnore?4(fn, line, count)
-eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.remoteCapabilities?4()
-eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.remoteClientSetFilter?4(scope, filter)
-eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.remoteClientVariable?4(scope, filter, var, framenr=0)
-eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.remoteClientVariables?4(scope, filter, framenr=0)
-eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.remoteCompletion?4(text)
-eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.remoteContinue?4(special=False)
-eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.remoteCoverage?4(fn, argv, wd, erase=False)
-eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.remoteEnvironment?4(env)
-eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.remoteEval?4(arg)
-eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.remoteExec?4(stmt)
-eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.remoteLoad?4(fn, argv, wd, traceInterpreter=False, autoContinue=True, autoFork=False, forkChild=False)
-eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.remoteProfile?4(fn, argv, wd, erase=False)
-eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.remoteRawInput?4(s)
-eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.remoteRun?4(fn, argv, wd, autoFork=False, forkChild=False)
-eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.remoteSetThread?4(tid)
-eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.remoteStatement?4(stmt)
-eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.remoteStep?4()
-eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.remoteStepOut?4()
-eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.remoteStepOver?4()
-eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.remoteStepQuit?4()
-eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.remoteThreadList?4()
-eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.remoteUTPrepare?4(fn, tn, tfn, failed, cov, covname, coverase)
-eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.remoteUTRun?4()
-eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.remoteUTStop?4()
-eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.remoteWatchpoint?4(cond, set, temp=False)
-eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.remoteWatchpointEnable?4(cond, enable)
-eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.remoteWatchpointIgnore?4(cond, count)
-eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.setCallTraceEnabled?4(on)
-eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.shutdown?4()
-eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.startRemote?4(port, runInConsole)
-eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.startRemoteForProject?4(port, runInConsole)
-eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython?1(debugServer, passive)
-eric6.Debugger.DebuggerInterfacePython.createDebuggerInterfacePython?4(debugServer, passive)
-eric6.Debugger.DebuggerInterfacePython.getRegistryData?4()
+eric6.Debugger.DebuggerInterfacePython2.ClientDefaultCapabilities?7
+eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.flush?4()
+eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.getClientCapabilities?4()
+eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.isConnected?4()
+eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.newConnection?4(sock)
+eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.remoteBanner?4()
+eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.remoteBreakpoint?4(fn, line, setBreakpoint, cond=None, temp=False)
+eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.remoteBreakpointEnable?4(fn, line, enable)
+eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.remoteBreakpointIgnore?4(fn, line, count)
+eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.remoteCapabilities?4()
+eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.remoteClientSetFilter?4(scope, filter)
+eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.remoteClientVariable?4(scope, filter, var, framenr=0)
+eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.remoteClientVariables?4(scope, filter, framenr=0)
+eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.remoteCompletion?4(text)
+eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.remoteContinue?4(special=False)
+eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.remoteCoverage?4(fn, argv, wd, erase=False)
+eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.remoteEnvironment?4(env)
+eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.remoteLoad?4(fn, argv, wd, traceInterpreter=False, autoContinue=True, autoFork=False, forkChild=False)
+eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.remoteProfile?4(fn, argv, wd, erase=False)
+eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.remoteRawInput?4(s)
+eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.remoteRun?4(fn, argv, wd, autoFork=False, forkChild=False)
+eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.remoteSetThread?4(tid)
+eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.remoteStatement?4(stmt)
+eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.remoteStep?4()
+eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.remoteStepOut?4()
+eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.remoteStepOver?4()
+eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.remoteStepQuit?4()
+eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.remoteThreadList?4()
+eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.remoteUTPrepare?4(fn, tn, tfn, failed, cov, covname, coverase)
+eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.remoteUTRun?4()
+eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.remoteUTStop?4()
+eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.remoteWatchpoint?4(cond, setWatch, temp=False)
+eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.remoteWatchpointEnable?4(cond, enable)
+eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.remoteWatchpointIgnore?4(cond, count)
+eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.setCallTraceEnabled?4(on)
+eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.shutdown?4()
+eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.startRemote?4(port, runInConsole)
+eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2.startRemoteForProject?4(port, runInConsole)
+eric6.Debugger.DebuggerInterfacePython2.DebuggerInterfacePython2?1(debugServer, passive)
+eric6.Debugger.DebuggerInterfacePython2.createDebuggerInterfacePython2?4(debugServer, passive)
+eric6.Debugger.DebuggerInterfacePython2.getRegistryData?4()
 eric6.Debugger.DebuggerInterfacePython3.ClientDefaultCapabilities?7
 eric6.Debugger.DebuggerInterfacePython3.DebuggerInterfacePython3.flush?4()
 eric6.Debugger.DebuggerInterfacePython3.DebuggerInterfacePython3.getClientCapabilities?4()
 eric6.Debugger.DebuggerInterfacePython3.DebuggerInterfacePython3.isConnected?4()
 eric6.Debugger.DebuggerInterfacePython3.DebuggerInterfacePython3.newConnection?4(sock)
 eric6.Debugger.DebuggerInterfacePython3.DebuggerInterfacePython3.remoteBanner?4()
-eric6.Debugger.DebuggerInterfacePython3.DebuggerInterfacePython3.remoteBreakpoint?4(fn, line, set, cond=None, temp=False)
+eric6.Debugger.DebuggerInterfacePython3.DebuggerInterfacePython3.remoteBreakpoint?4(fn, line, setBreakpoint, cond=None, temp=False)
 eric6.Debugger.DebuggerInterfacePython3.DebuggerInterfacePython3.remoteBreakpointEnable?4(fn, line, enable)
 eric6.Debugger.DebuggerInterfacePython3.DebuggerInterfacePython3.remoteBreakpointIgnore?4(fn, line, count)
 eric6.Debugger.DebuggerInterfacePython3.DebuggerInterfacePython3.remoteCapabilities?4()
@@ -932,8 +786,6 @@
 eric6.Debugger.DebuggerInterfacePython3.DebuggerInterfacePython3.remoteContinue?4(special=False)
 eric6.Debugger.DebuggerInterfacePython3.DebuggerInterfacePython3.remoteCoverage?4(fn, argv, wd, erase=False)
 eric6.Debugger.DebuggerInterfacePython3.DebuggerInterfacePython3.remoteEnvironment?4(env)
-eric6.Debugger.DebuggerInterfacePython3.DebuggerInterfacePython3.remoteEval?4(arg)
-eric6.Debugger.DebuggerInterfacePython3.DebuggerInterfacePython3.remoteExec?4(stmt)
 eric6.Debugger.DebuggerInterfacePython3.DebuggerInterfacePython3.remoteLoad?4(fn, argv, wd, traceInterpreter=False, autoContinue=True, autoFork=False, forkChild=False)
 eric6.Debugger.DebuggerInterfacePython3.DebuggerInterfacePython3.remoteProfile?4(fn, argv, wd, erase=False)
 eric6.Debugger.DebuggerInterfacePython3.DebuggerInterfacePython3.remoteRawInput?4(s)
@@ -948,7 +800,7 @@
 eric6.Debugger.DebuggerInterfacePython3.DebuggerInterfacePython3.remoteUTPrepare?4(fn, tn, tfn, failed, cov, covname, coverase)
 eric6.Debugger.DebuggerInterfacePython3.DebuggerInterfacePython3.remoteUTRun?4()
 eric6.Debugger.DebuggerInterfacePython3.DebuggerInterfacePython3.remoteUTStop?4()
-eric6.Debugger.DebuggerInterfacePython3.DebuggerInterfacePython3.remoteWatchpoint?4(cond, set, temp=False)
+eric6.Debugger.DebuggerInterfacePython3.DebuggerInterfacePython3.remoteWatchpoint?4(cond, setWatch, temp=False)
 eric6.Debugger.DebuggerInterfacePython3.DebuggerInterfacePython3.remoteWatchpointEnable?4(cond, enable)
 eric6.Debugger.DebuggerInterfacePython3.DebuggerInterfacePython3.remoteWatchpointIgnore?4(cond, count)
 eric6.Debugger.DebuggerInterfacePython3.DebuggerInterfacePython3.setCallTraceEnabled?4(on)
@@ -989,14 +841,20 @@
 eric6.Debugger.VariablesFilterDialog.VariablesFilterDialog.setSelection?4(lList, gList)
 eric6.Debugger.VariablesFilterDialog.VariablesFilterDialog?1(parent=None, name=None, modal=False)
 eric6.Debugger.VariablesViewer.ArrayElementVarItem?1(parent, dvar, dvalue, dtype)
-eric6.Debugger.VariablesViewer.SpecialArrayElementVarItem?1(parent, dvar, dvalue, dtype, frmnr, scope)
+eric6.Debugger.VariablesViewer.SpecialArrayElementVarItem?1(parent, dvar, dvalue, dtype, frmnr, globalScope)
 eric6.Debugger.VariablesViewer.SpecialVarItem.expand?4()
-eric6.Debugger.VariablesViewer.SpecialVarItem?1(parent, dvar, dvalue, dtype, frmnr, scope)
+eric6.Debugger.VariablesViewer.SpecialVarItem?1(parent, dvar, dvalue, dtype, frmnr, globalScope)
+eric6.Debugger.VariablesViewer.VariableItem.Indicators?7
+eric6.Debugger.VariablesViewer.VariableItem.Type2Indicators?7
+eric6.Debugger.VariablesViewer.VariableItem._buildKey?5()
 eric6.Debugger.VariablesViewer.VariableItem.attachDummy?4()
 eric6.Debugger.VariablesViewer.VariableItem.collapse?4()
 eric6.Debugger.VariablesViewer.VariableItem.data?4(column, role)
 eric6.Debugger.VariablesViewer.VariableItem.deleteChildren?4()
 eric6.Debugger.VariablesViewer.VariableItem.expand?4()
+eric6.Debugger.VariablesViewer.VariableItem.extractId?4(var)
+eric6.Debugger.VariablesViewer.VariableItem.extractIndicators?4(var)
+eric6.Debugger.VariablesViewer.VariableItem.getId?4()
 eric6.Debugger.VariablesViewer.VariableItem.getValue?4()
 eric6.Debugger.VariablesViewer.VariableItem?1(parent, dvar, dvalue, dtype)
 eric6.Debugger.VariablesViewer.VariablesViewer.collapseItem?4(parentItem)
@@ -1005,7 +863,7 @@
 eric6.Debugger.VariablesViewer.VariablesViewer.mouseDoubleClickEvent?4(mouseEvent)
 eric6.Debugger.VariablesViewer.VariablesViewer.showVariable?4(vlist)
 eric6.Debugger.VariablesViewer.VariablesViewer.showVariables?4(vlist, frmnr)
-eric6.Debugger.VariablesViewer.VariablesViewer?1(parent=None, scope=1)
+eric6.Debugger.VariablesViewer.VariablesViewer?1(viewer, globalScope, parent=None)
 eric6.Debugger.WatchPointModel.WatchPointModel.addWatchPoint?4(cond, special, properties)
 eric6.Debugger.WatchPointModel.WatchPointModel.columnCount?4(parent=QModelIndex())
 eric6.Debugger.WatchPointModel.WatchPointModel.data?4(index, role)
@@ -1458,11 +1316,13 @@
 eric6.E5Gui.E5PathPicker.E5PathPickerBase?1(parent=None, useLineEdit=True)
 eric6.E5Gui.E5PathPicker.E5PathPickerModes.CustomMode?7
 eric6.E5Gui.E5PathPicker.E5PathPickerModes.DirectoryMode?7
+eric6.E5Gui.E5PathPicker.E5PathPickerModes.DirectoryShowFilesMode?7
 eric6.E5Gui.E5PathPicker.E5PathPickerModes.NoMode?7
 eric6.E5Gui.E5PathPicker.E5PathPickerModes.OpenFileMode?7
 eric6.E5Gui.E5PathPicker.E5PathPickerModes.OpenFilesMode?7
 eric6.E5Gui.E5PathPicker.E5PathPickerModes.SaveFileEnsureExtensionMode?7
 eric6.E5Gui.E5PathPicker.E5PathPickerModes.SaveFileMode?7
+eric6.E5Gui.E5PathPicker.E5PathPickerModes.SaveFileOverwriteMode?7
 eric6.E5Gui.E5ProgressDialog.E5ProgressDialog.format?4()
 eric6.E5Gui.E5ProgressDialog.E5ProgressDialog.setFormat?4(format)
 eric6.E5Gui.E5ProgressDialog.E5ProgressDialog?1(labelText, cancelButtonText, minimum, maximum, format=None, parent=None, flags=Qt.WindowFlags())
@@ -1586,6 +1446,7 @@
 eric6.E5Gui.E5ToolBarManager.E5ToolBarManager.VersionMarker?7
 eric6.E5Gui.E5ToolBarManager.E5ToolBarManager.actionById?4(aID)
 eric6.E5Gui.E5ToolBarManager.E5ToolBarManager.addAction?4(action, category)
+eric6.E5Gui.E5ToolBarManager.E5ToolBarManager.addActions?4(actions, category)
 eric6.E5Gui.E5ToolBarManager.E5ToolBarManager.addToolBar?4(toolBar, category)
 eric6.E5Gui.E5ToolBarManager.E5ToolBarManager.categories?4()
 eric6.E5Gui.E5ToolBarManager.E5ToolBarManager.categoryActions?4(category)
@@ -3804,6 +3665,7 @@
 eric6.MultiProject.MultiProject.MultiProject.addProject?4(startdir=None)
 eric6.MultiProject.MultiProject.MultiProject.changeProjectProperties?4(pro)
 eric6.MultiProject.MultiProject.MultiProject.checkDirty?4()
+eric6.MultiProject.MultiProject.MultiProject.clearRecent?4()
 eric6.MultiProject.MultiProject.MultiProject.closeMultiProject?4()
 eric6.MultiProject.MultiProject.MultiProject.dirty?7
 eric6.MultiProject.MultiProject.MultiProject.getActions?4()
@@ -4273,130 +4135,134 @@
 eric6.Plugins.CheckerPlugins.CodeStyleChecker.mccabe.PathNode.dot_id?4()
 eric6.Plugins.CheckerPlugins.CodeStyleChecker.mccabe.PathNode.to_dot?4()
 eric6.Plugins.CheckerPlugins.CodeStyleChecker.mccabe.PathNode?1(name, look="circle")
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.ARITHMETIC_OP?7
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.BENCHMARK_KEYS?7
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.BaseReport.error?4(line_number, offset, text, check)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.BaseReport.error_args?4(line_number, offset, text, check, *args)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.BaseReport.get_count?4(prefix='')
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.BaseReport.get_file_results?4()
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.BaseReport.get_statistics?4(prefix='')
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.BaseReport.increment_logical_line?4()
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.BaseReport.init_file?4(filename, lines, expected, line_offset)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.BaseReport.print_benchmark?4()
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.BaseReport.print_filename?7
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.BaseReport.print_statistics?4(prefix='')
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.BaseReport.start?4()
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.BaseReport.stop?4()
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.BaseReport?1(options)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.COMMENT_WITH_NL?7
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.COMPARE_NEGATIVE_REGEX?7
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.COMPARE_SINGLETON_REGEX?7
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.COMPARE_TYPE_REGEX?7
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.Checker.build_tokens_line?4()
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.Checker.check_all?4(expected=None, line_offset=0)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.Checker.check_ast?4()
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.Checker.check_logical?4()
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.Checker.check_physical?4(line)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.Checker.generate_tokens?4()
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.Checker.init_checker_state?4(name, argument_names)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.Checker.maybe_check_physical?4(token)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.Checker.readline?4()
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.Checker.report_invalid_syntax?4()
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.Checker.run_check?4(check, argument_names)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.Checker?1(filename=None, lines=None, options=None, report=None, **kwargs)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.DEFAULT_EXCLUDE?7
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.DEFAULT_IGNORE?7
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.DOCSTRING_REGEX?7
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.DiffReport.error?4(line_number, offset, text, check)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.DiffReport?1(options)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.ERRORCODE_REGEX?7
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.EXTRANEOUS_WHITESPACE_REGEX?7
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.FileReport.print_filename?7
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.HUNK_REGEX?7
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.INDENT_REGEX?7
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.KEYWORDS?7
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.KEYWORD_REGEX?7
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.LAMBDA_REGEX?7
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.MAX_LINE_LENGTH?7
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.NEWLINE?7
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.OPERATOR_REGEX?7
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.PROJECT_CONFIG?7
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.RAISE_COMMA_REGEX?7
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.REPORT_FORMAT?7
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.RERAISE_COMMA_REGEX?7
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.SINGLETONS?7
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.SKIP_COMMENTS?7
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.SKIP_TOKENS?7
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.StandardReport.error?4(line_number, offset, text, check)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.StandardReport.error_args?4(line_number, offset, code, check, *args)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.StandardReport.get_file_results?4()
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.StandardReport.init_file?4(filename, lines, expected, line_offset)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.StandardReport?1(options)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.StyleGuide.check_files?4(paths=None)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.StyleGuide.excluded?4(filename, parent=None)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.StyleGuide.get_checks?4(argument_name)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.StyleGuide.ignore_code?4(code)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.StyleGuide.init_report?4(reporter=None)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.StyleGuide.input_dir?4(dirname)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.StyleGuide.input_file?4(filename, lines=None, expected=None, line_offset=0)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.StyleGuide?1(*args, **kwargs)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.TESTSUITE_PATH?7
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.UNARY_OPERATORS?7
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.WHITESPACE?7
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.WHITESPACE_AFTER_COMMA_REGEX?7
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.WS_NEEDED_OPERATORS?7
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.WS_OPTIONAL_OPERATORS?7
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8._add_check?5(check, kind, codes, args)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8._checks?8
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8._get_parameters?5(function)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8._is_eol_token?5(token)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8._is_eol_token?5(token, _eol_token=_is_eol_token)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8._main?5()
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8._parse_multi_options?5(options, split_token=', ')
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.blank_lines?4(logical_line, blank_lines, indent_level, line_number, blank_before, previous_logical, previous_indent_level)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.break_around_binary_operator?4(logical_line, tokens)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.comparison_negative?4(logical_line)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.comparison_to_singleton?4(logical_line, noqa)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.comparison_type?4(logical_line, noqa)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.compound_statements?4(logical_line)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.continued_indentation?4(logical_line, tokens, indent_level, hang_closing, indent_char, noqa, verbose)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.expand_indent?4(line)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.explicit_line_join?4(logical_line, tokens)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.extraneous_whitespace?4(logical_line)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.filename_match?4(filename, patterns, default=True)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.get_parser?4(prog='pep8', version=__version__)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.imports_on_separate_lines?4(logical_line)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.indentation?4(logical_line, previous_logical, indent_char, indent_level, previous_indent_level)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.init_checks_registry?4()
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.is_binary_operator?4(token_type, text)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.is_string_literal?4(line)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.maximum_line_length?4(physical_line, max_line_length, multiline)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.missing_whitespace?4(logical_line)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.missing_whitespace_around_operator?4(logical_line, tokens)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.module_imports_on_top_of_file?4(logical_line, indent_level, checker_state, noqa)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.mute_string?4(text)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.noqa?7
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.normalize_paths?4(value, parent=os.curdir)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.parse_udiff?4(diff, patterns=None, parent='.')
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.process_options?4(arglist=None, parse_argv=False, config_file=None, parser=None)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.python_3000_backticks?4(logical_line)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.python_3000_has_key?4(logical_line, noqa)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.python_3000_not_equal?4(logical_line)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.python_3000_raise_comma?4(logical_line)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.read_config?4(options, args, arglist, parser)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.readlines?4(filename)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.register_check?4(check, codes=None)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.stdin_get_value?4()
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.tabs_obsolete?4(physical_line)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.tabs_or_spaces?4(physical_line, indent_char)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.trailing_blank_lines?4(physical_line, lines, line_number, total_lines)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.trailing_whitespace?4(physical_line)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.whitespace_around_comma?4(logical_line)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.whitespace_around_keywords?4(logical_line)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.whitespace_around_named_parameter_equals?4(logical_line, tokens)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.whitespace_around_operator?4(logical_line)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.whitespace_before_comment?4(logical_line, tokens)
-eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.whitespace_before_parameters?4(logical_line, tokens)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.ARITHMETIC_OP?7
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.BENCHMARK_KEYS?7
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.BaseReport.error?4(line_number, offset, text, check)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.BaseReport.error_args?4(line_number, offset, text, check, *args)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.BaseReport.get_count?4(prefix='')
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.BaseReport.get_file_results?4()
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.BaseReport.get_statistics?4(prefix='')
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.BaseReport.increment_logical_line?4()
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.BaseReport.init_file?4(filename, lines, expected, line_offset)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.BaseReport.print_benchmark?4()
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.BaseReport.print_filename?7
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.BaseReport.print_statistics?4(prefix='')
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.BaseReport.start?4()
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.BaseReport.stop?4()
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.BaseReport?1(options)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.COMMENT_WITH_NL?7
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.COMPARE_NEGATIVE_REGEX?7
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.COMPARE_SINGLETON_REGEX?7
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.COMPARE_TYPE_REGEX?7
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.Checker.build_tokens_line?4()
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.Checker.check_all?4(expected=None, line_offset=0)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.Checker.check_ast?4()
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.Checker.check_logical?4()
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.Checker.check_physical?4(line)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.Checker.generate_tokens?4()
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.Checker.init_checker_state?4(name, argument_names)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.Checker.maybe_check_physical?4(token)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.Checker.readline?4()
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.Checker.report_invalid_syntax?4()
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.Checker.run_check?4(check, argument_names)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.Checker?1(filename=None, lines=None, options=None, report=None, **kwargs)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.DEFAULT_EXCLUDE?7
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.DEFAULT_IGNORE?7
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.DOCSTRING_REGEX?7
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.DiffReport.error?4(line_number, offset, text, check)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.DiffReport?1(options)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.ERRORCODE_REGEX?7
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.EXTRANEOUS_WHITESPACE_REGEX?7
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.FileReport.print_filename?7
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.HUNK_REGEX?7
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.INDENT_REGEX?7
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.KEYWORDS?7
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.KEYWORD_REGEX?7
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.LAMBDA_REGEX?7
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.MAX_LINE_LENGTH?7
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.NEWLINE?7
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.OPERATOR_REGEX?7
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.PROJECT_CONFIG?7
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.PyCF_ONLY_AST?7
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.RAISE_COMMA_REGEX?7
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.REPORT_FORMAT?7
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.RERAISE_COMMA_REGEX?7
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.SINGLETONS?7
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.SKIP_COMMENTS?7
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.SKIP_TOKENS?7
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.StandardReport.error?4(line_number, offset, text, check)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.StandardReport.error_args?4(line_number, offset, code, check, *args)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.StandardReport.get_file_results?4()
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.StandardReport.init_file?4(filename, lines, expected, line_offset)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.StandardReport?1(options)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.StyleGuide.check_files?4(paths=None)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.StyleGuide.excluded?4(filename, parent=None)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.StyleGuide.get_checks?4(argument_name)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.StyleGuide.ignore_code?4(code)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.StyleGuide.init_report?4(reporter=None)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.StyleGuide.input_dir?4(dirname)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.StyleGuide.input_file?4(filename, lines=None, expected=None, line_offset=0)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.StyleGuide?1(*args, **kwargs)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.TESTSUITE_PATH?7
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.UNARY_OPERATORS?7
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.WHITESPACE?7
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.WHITESPACE_AFTER_COMMA_REGEX?7
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.WS_NEEDED_OPERATORS?7
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.WS_OPTIONAL_OPERATORS?7
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle._add_check?5(check, kind, codes, args)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle._checks?8
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle._get_parameters?5(function)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle._is_eol_token?5(token)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle._is_eol_token?5(token, _eol_token=_is_eol_token)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle._main?5()
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle._parse_multi_options?5(options, split_token=', ')
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.ambiguous_identifier?4(logical_line, tokens)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.blank_lines?4(logical_line, blank_lines, indent_level, line_number, blank_before, previous_logical, previous_unindented_logical_line, previous_indent_level, lines)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.break_around_binary_operator?4(logical_line, tokens)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.comparison_negative?4(logical_line)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.comparison_to_singleton?4(logical_line, noqa)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.comparison_type?4(logical_line, noqa)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.compound_statements?4(logical_line)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.continued_indentation?4(logical_line, tokens, indent_level, hang_closing, indent_char, noqa, verbose)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.expand_indent?4(line)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.explicit_line_join?4(logical_line, tokens)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.extraneous_whitespace?4(logical_line)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.filename_match?4(filename, patterns, default=True)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.get_parser?4(prog='pycodestyle', version=__version__)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.imports_on_separate_lines?4(logical_line)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.indentation?4(logical_line, previous_logical, indent_char, indent_level, previous_indent_level)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.init_checks_registry?4()
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.is_binary_operator?4(token_type, text)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.is_string_literal?4(line)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.maximum_line_length?4(physical_line, max_line_length, multiline, noqa)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.missing_whitespace?4(logical_line)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.missing_whitespace_after_import_keyword?4(logical_line)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.missing_whitespace_around_operator?4(logical_line, tokens)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.module_imports_on_top_of_file?4(logical_line, indent_level, checker_state, noqa)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.mute_string?4(text)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.noqa?7
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.normalize_paths?4(value, parent=os.curdir)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.parse_udiff?4(diff, patterns=None, parent='.')
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.process_options?4(arglist=None, parse_argv=False, config_file=None, parser=None)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.python_3000_backticks?4(logical_line)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.python_3000_has_key?4(logical_line, noqa)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.python_3000_not_equal?4(logical_line)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.python_3000_raise_comma?4(logical_line)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.read_config?4(options, args, arglist, parser)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.readlines?4(filename)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.register_check?4(check, codes=None)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.stdin_get_value?4()
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.tabs_obsolete?4(physical_line)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.tabs_or_spaces?4(physical_line, indent_char)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.trailing_blank_lines?4(physical_line, lines, line_number, total_lines)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.trailing_whitespace?4(physical_line)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.update_counts?4(s, counts)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.whitespace_around_comma?4(logical_line)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.whitespace_around_keywords?4(logical_line)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.whitespace_around_named_parameter_equals?4(logical_line, tokens)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.whitespace_around_operator?4(logical_line)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.whitespace_before_comment?4(logical_line, tokens)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.whitespace_before_parameters?4(logical_line, tokens)
 eric6.Plugins.CheckerPlugins.CodeStyleChecker.translations._messages?8
 eric6.Plugins.CheckerPlugins.CodeStyleChecker.translations._messages_sample_args?8
 eric6.Plugins.CheckerPlugins.CodeStyleChecker.translations.getTranslatedMessage?4(message)
@@ -5495,21 +5361,6 @@
 eric6.Plugins.VcsPlugins.vcsMercurial.ShelveExtension.shelve.Shelve.hgUnshelveContinue?4(name)
 eric6.Plugins.VcsPlugins.vcsMercurial.ShelveExtension.shelve.Shelve.shutdown?4()
 eric6.Plugins.VcsPlugins.vcsMercurial.ShelveExtension.shelve.Shelve?1(vcs)
-eric6.Plugins.VcsPlugins.vcsMercurial.TransplantExtension.ProjectHelper.TransplantProjectHelper.initActions?4()
-eric6.Plugins.VcsPlugins.vcsMercurial.TransplantExtension.ProjectHelper.TransplantProjectHelper.initMenu?4(mainMenu)
-eric6.Plugins.VcsPlugins.vcsMercurial.TransplantExtension.ProjectHelper.TransplantProjectHelper.menuTitle?4()
-eric6.Plugins.VcsPlugins.vcsMercurial.TransplantExtension.ProjectHelper.TransplantProjectHelper.setObjects?4(vcsObject, projectObject)
-eric6.Plugins.VcsPlugins.vcsMercurial.TransplantExtension.ProjectHelper.TransplantProjectHelper?1()
-eric6.Plugins.VcsPlugins.vcsMercurial.TransplantExtension.TransplantDialog.RevisionsValidator.validate?4(input, pos)
-eric6.Plugins.VcsPlugins.vcsMercurial.TransplantExtension.TransplantDialog.RevisionsValidator?1(multiRevsAllowed, parent=None)
-eric6.Plugins.VcsPlugins.vcsMercurial.TransplantExtension.TransplantDialog.TransplantDialog.getData?4()
-eric6.Plugins.VcsPlugins.vcsMercurial.TransplantExtension.TransplantDialog.TransplantDialog.on_allCheckBox_clicked?4(checked)
-eric6.Plugins.VcsPlugins.vcsMercurial.TransplantExtension.TransplantDialog.TransplantDialog.on_branchesCombo_editTextChanged?4(txt)
-eric6.Plugins.VcsPlugins.vcsMercurial.TransplantExtension.TransplantDialog.TransplantDialog.on_revisionsEdit_textChanged?4()
-eric6.Plugins.VcsPlugins.vcsMercurial.TransplantExtension.TransplantDialog.TransplantDialog?1(branchesList, parent=None)
-eric6.Plugins.VcsPlugins.vcsMercurial.TransplantExtension.transplant.Transplant.hgTransplant?4(path)
-eric6.Plugins.VcsPlugins.vcsMercurial.TransplantExtension.transplant.Transplant.hgTransplantContinue?4(path)
-eric6.Plugins.VcsPlugins.vcsMercurial.TransplantExtension.transplant.Transplant?1(vcs)
 eric6.Plugins.VcsPlugins.vcsMercurial.hg.Hg.IgnoreFileName?7
 eric6.Plugins.VcsPlugins.vcsMercurial.hg.Hg._createStatusMonitorThread?5(interval, project)
 eric6.Plugins.VcsPlugins.vcsMercurial.hg.Hg.activeExtensionsChanged?7
@@ -5533,8 +5384,8 @@
 eric6.Plugins.VcsPlugins.vcsMercurial.hg.Hg.hgBookmarkIncoming?4(name)
 eric6.Plugins.VcsPlugins.vcsMercurial.hg.Hg.hgBookmarkMove?4(name)
 eric6.Plugins.VcsPlugins.vcsMercurial.hg.Hg.hgBookmarkOutgoing?4(name)
-eric6.Plugins.VcsPlugins.vcsMercurial.hg.Hg.hgBookmarkPull?4(name)
-eric6.Plugins.VcsPlugins.vcsMercurial.hg.Hg.hgBookmarkPush?4(name)
+eric6.Plugins.VcsPlugins.vcsMercurial.hg.Hg.hgBookmarkPull?4(name, current=False)
+eric6.Plugins.VcsPlugins.vcsMercurial.hg.Hg.hgBookmarkPush?4(name, current=False)
 eric6.Plugins.VcsPlugins.vcsMercurial.hg.Hg.hgBookmarkRename?4(name)
 eric6.Plugins.VcsPlugins.vcsMercurial.hg.Hg.hgBranch?4(name)
 eric6.Plugins.VcsPlugins.vcsMercurial.hg.Hg.hgBundle?4(name)
@@ -7015,13 +6866,13 @@
 eric6.Project.Project.Project.checkDirty?4()
 eric6.Project.Project.Project.checkLanguageFiles?4()
 eric6.Project.Project.Project.checkVCSStatus?4()
+eric6.Project.Project.Project.clearRecent?4()
 eric6.Project.Project.Project.clearStatusMonitorCachedState?4(name)
 eric6.Project.Project.Project.closeProject?4(reopen=False, noSave=False)
 eric6.Project.Project.Project.completeRepopulateItem?7
 eric6.Project.Project.Project.copyDirectory?4(olddn, newdn)
 eric6.Project.Project.Project.createNewProject?4()
 eric6.Project.Project.Project.createProjectManagementDir?4()
-eric6.Project.Project.Project.dbgKeynames?7
 eric6.Project.Project.Project.deleteDirectory?4(dn)
 eric6.Project.Project.Project.deleteFile?4(fn)
 eric6.Project.Project.Project.deleteLanguageFile?4(langFile)
@@ -7072,6 +6923,7 @@
 eric6.Project.Project.Project.isDebugPropertiesLoaded?4()
 eric6.Project.Project.Project.isDirty?4()
 eric6.Project.Project.Project.isJavaScriptProject?4()
+eric6.Project.Project.Project.isMixedLanguageProject?4()
 eric6.Project.Project.Project.isOpen?4()
 eric6.Project.Project.Project.isProjectFile?4(fn)
 eric6.Project.Project.Project.isProjectForm?4(fn)
@@ -7082,7 +6934,6 @@
 eric6.Project.Project.Project.isPy3Project?4()
 eric6.Project.Project.Project.isPythonProject?4()
 eric6.Project.Project.Project.isRubyProject?4()
-eric6.Project.Project.Project.keynames?7
 eric6.Project.Project.Project.lexerAssociationsChanged?7
 eric6.Project.Project.Project.linguistFile?7
 eric6.Project.Project.Project.moveDirectory?4(olddn, newdn)
@@ -7133,6 +6984,7 @@
 eric6.Project.Project.Project.setDirty?4(b)
 eric6.Project.Project.Project.setStatusMonitorAutoUpdate?4(auto)
 eric6.Project.Project.Project.setStatusMonitorInterval?4(interval)
+eric6.Project.Project.Project.setTranslationPattern?4(pattern)
 eric6.Project.Project.Project.showMenu?7
 eric6.Project.Project.Project.sourceFile?7
 eric6.Project.Project.Project.startStatusMonitor?4()
@@ -7141,7 +6993,6 @@
 eric6.Project.Project.Project.unregisterProjectType?4(type_)
 eric6.Project.Project.Project.updateFileTypes?4()
 eric6.Project.Project.Project.useSystemEol?4()
-eric6.Project.Project.Project.userKeynames?7
 eric6.Project.Project.Project.vcsSoftwareAvailable?4()
 eric6.Project.Project.Project.vcsStatusMonitorStatus?7
 eric6.Project.Project.Project.writeTasks?4()
@@ -7158,6 +7009,7 @@
 eric6.Project.ProjectBaseBrowser.ProjectBaseBrowser._expandAllDirs?5()
 eric6.Project.ProjectBaseBrowser.ProjectBaseBrowser._initHookMethods?5()
 eric6.Project.ProjectBaseBrowser.ProjectBaseBrowser._initMenusAndVcs?5()
+eric6.Project.ProjectBaseBrowser.ProjectBaseBrowser._keyboardSearchType?5(item)
 eric6.Project.ProjectBaseBrowser.ProjectBaseBrowser._newProject?5()
 eric6.Project.ProjectBaseBrowser.ProjectBaseBrowser._prepareRepopulateItem?5(name)
 eric6.Project.ProjectBaseBrowser.ProjectBaseBrowser._projectClosed?5()
@@ -8150,6 +8002,7 @@
 eric6.QScintilla.SearchReplaceWidget.SearchReplaceWidget.updateSelectionCheckBox?4(editor)
 eric6.QScintilla.SearchReplaceWidget.SearchReplaceWidget?1(replace, vm, parent=None, sliding=False)
 eric6.QScintilla.Shell.Shell.clear?4()
+eric6.QScintilla.Shell.Shell.clearAllHistories?4()
 eric6.QScintilla.Shell.Shell.closeShell?4()
 eric6.QScintilla.Shell.Shell.contextMenuEvent?4(ev)
 eric6.QScintilla.Shell.Shell.dragEnterEvent?4(event)
@@ -8359,6 +8212,11 @@
 eric6.Tasks.TaskPropertiesDialog.TaskPropertiesDialog.setReadOnly?4()
 eric6.Tasks.TaskPropertiesDialog.TaskPropertiesDialog.setSubTaskMode?4(projectTask)
 eric6.Tasks.TaskPropertiesDialog.TaskPropertiesDialog?1(task=None, parent=None, projectOpen=False)
+eric6.Tasks.TaskViewer.ProjectTaskExtractionThread.requestInterrupt?4()
+eric6.Tasks.TaskViewer.ProjectTaskExtractionThread.run?4()
+eric6.Tasks.TaskViewer.ProjectTaskExtractionThread.scan?4(markers, files)
+eric6.Tasks.TaskViewer.ProjectTaskExtractionThread.taskFound?7
+eric6.Tasks.TaskViewer.ProjectTaskExtractionThread?1(parent=None)
 eric6.Tasks.TaskViewer.TaskViewer.addFileTask?4(summary, filename, lineno, taskType=Task.TypeTodo, description="")
 eric6.Tasks.TaskViewer.TaskViewer.addTask?4(summary, priority=1, filename="", lineno=0, completed=False, _time=0, isProjectTask=False, taskType=Task.TypeTodo, description="", uid="", parentTask=None)
 eric6.Tasks.TaskViewer.TaskViewer.clearFileTasks?4(filename, conditionally=False)
@@ -8369,8 +8227,10 @@
 eric6.Tasks.TaskViewer.TaskViewer.getGlobalTasks?4()
 eric6.Tasks.TaskViewer.TaskViewer.getProjectTasks?4()
 eric6.Tasks.TaskViewer.TaskViewer.handlePreferencesChanged?4()
+eric6.Tasks.TaskViewer.TaskViewer.regenerateProjectTasks?4(quiet=False)
 eric6.Tasks.TaskViewer.TaskViewer.saveProjectTasks?4()
 eric6.Tasks.TaskViewer.TaskViewer.setProjectOpen?4(o=False)
+eric6.Tasks.TaskViewer.TaskViewer.stopProjectTaskExtraction?4()
 eric6.Tasks.TaskViewer.TaskViewer?1(parent, project)
 eric6.Templates.TemplateHelpDialog.TemplateHelpDialog?1(parent=None)
 eric6.Templates.TemplateMultipleVariablesDialog.TemplateMultipleVariablesDialog.getVariables?4()
@@ -8493,6 +8353,7 @@
 eric6.UI.Browser.Browser._editPixmap?5()
 eric6.UI.Browser.Browser._gotoAttribute?5(act)
 eric6.UI.Browser.Browser._init?5()
+eric6.UI.Browser.Browser._keyboardSearchType?5(item)
 eric6.UI.Browser.Browser._openHexEditor?5()
 eric6.UI.Browser.Browser._openItem?5()
 eric6.UI.Browser.Browser._resizeColumns?5(index)
@@ -8507,6 +8368,7 @@
 eric6.UI.Browser.Browser.handlePreferencesChanged?4()
 eric6.UI.Browser.Browser.handleProgramChange?4(fn)
 eric6.UI.Browser.Browser.handleUnittest?4()
+eric6.UI.Browser.Browser.keyboardSearch?4(search)
 eric6.UI.Browser.Browser.layoutDisplay?4()
 eric6.UI.Browser.Browser.linguistFile?7
 eric6.UI.Browser.Browser.mouseDoubleClickEvent?4(mouseEvent)
@@ -8651,6 +8513,8 @@
 eric6.UI.BrowserSortFilterProxyModel.BrowserSortFilterProxyModel.preferencesChanged?4()
 eric6.UI.BrowserSortFilterProxyModel.BrowserSortFilterProxyModel.sort?4(column, order)
 eric6.UI.BrowserSortFilterProxyModel.BrowserSortFilterProxyModel?1(parent=None)
+eric6.UI.ClearPrivateDataDialog.ClearPrivateDataDialog.getData?4()
+eric6.UI.ClearPrivateDataDialog.ClearPrivateDataDialog?1(parent=None)
 eric6.UI.CompareDialog.CompareDialog.compare?4(lines1, lines2, name1="", name2="")
 eric6.UI.CompareDialog.CompareDialog.on_buttonBox_clicked?4(button)
 eric6.UI.CompareDialog.CompareDialog.on_diffButton_clicked?4()
@@ -9207,6 +9071,7 @@
 eric6.Utilities.extractFlags?4(text)
 eric6.Utilities.extractFlagsFromFile?4(filename)
 eric6.Utilities.extractLineFlags?4(line, startComment=")
+eric6.Utilities.filterAnsiSequences?4(txt)
 eric6.Utilities.fromNativeSeparators?4(path)
 eric6.Utilities.generateDistroInfo?4(linesep='\n')
 eric6.Utilities.generatePluginsVersionInfo?4(linesep='\n')
@@ -9432,6 +9297,7 @@
 eric6.ViewManager.ViewManager.ViewManager.checkActions?7
 eric6.ViewManager.ViewManager.ViewManager.checkAllDirty?4()
 eric6.ViewManager.ViewManager.ViewManager.checkDirty?4(editor, autosave=False)
+eric6.ViewManager.ViewManager.ViewManager.clearRecent?4()
 eric6.ViewManager.ViewManager.ViewManager.cloneEditor?4(caller, filetype, fn)
 eric6.ViewManager.ViewManager.ViewManager.closeAllWindows?4()
 eric6.ViewManager.ViewManager.ViewManager.closeCurrentWindow?4()
@@ -9705,7 +9571,9 @@
 eric6.WebBrowser.Bookmarks.BookmarkPropertiesDialog.BookmarkPropertiesDialog.accept?4()
 eric6.WebBrowser.Bookmarks.BookmarkPropertiesDialog.BookmarkPropertiesDialog?1(node, parent=None)
 eric6.WebBrowser.Bookmarks.BookmarksDialog.BookmarksDialog.closeEvent?4(evt)
-eric6.WebBrowser.Bookmarks.BookmarksDialog.BookmarksDialog.newUrl?7
+eric6.WebBrowser.Bookmarks.BookmarksDialog.BookmarksDialog.newBackgroundTab?7
+eric6.WebBrowser.Bookmarks.BookmarksDialog.BookmarksDialog.newTab?7
+eric6.WebBrowser.Bookmarks.BookmarksDialog.BookmarksDialog.newWindow?7
 eric6.WebBrowser.Bookmarks.BookmarksDialog.BookmarksDialog.openUrl?7
 eric6.WebBrowser.Bookmarks.BookmarksDialog.BookmarksDialog.reject?4()
 eric6.WebBrowser.Bookmarks.BookmarksDialog.BookmarksDialog?1(parent=None, manager=None)
@@ -9775,9 +9643,10 @@
 eric6.WebBrowser.Bookmarks.BookmarksManager.BookmarksManager.entryChanged?7
 eric6.WebBrowser.Bookmarks.BookmarksManager.BookmarksManager.entryRemoved?7
 eric6.WebBrowser.Bookmarks.BookmarksManager.BookmarksManager.exportBookmarks?4()
+eric6.WebBrowser.Bookmarks.BookmarksManager.BookmarksManager.faviconChanged?4(url)
 eric6.WebBrowser.Bookmarks.BookmarksManager.BookmarksManager.getFileName?4()
-eric6.WebBrowser.Bookmarks.BookmarksManager.BookmarksManager.iconChanged?4(url)
 eric6.WebBrowser.Bookmarks.BookmarksManager.BookmarksManager.importBookmarks?4()
+eric6.WebBrowser.Bookmarks.BookmarksManager.BookmarksManager.incVisitCount?4(node)
 eric6.WebBrowser.Bookmarks.BookmarksManager.BookmarksManager.load?4()
 eric6.WebBrowser.Bookmarks.BookmarksManager.BookmarksManager.menu?4()
 eric6.WebBrowser.Bookmarks.BookmarksManager.BookmarksManager.reload?4()
@@ -9787,6 +9656,7 @@
 eric6.WebBrowser.Bookmarks.BookmarksManager.BookmarksManager.setTimestamp?4(node, timestampType, timestamp)
 eric6.WebBrowser.Bookmarks.BookmarksManager.BookmarksManager.setTitle?4(node, newTitle)
 eric6.WebBrowser.Bookmarks.BookmarksManager.BookmarksManager.setUrl?4(node, newUrl)
+eric6.WebBrowser.Bookmarks.BookmarksManager.BookmarksManager.setVisitCount?4(node, count)
 eric6.WebBrowser.Bookmarks.BookmarksManager.BookmarksManager.toolbar?4()
 eric6.WebBrowser.Bookmarks.BookmarksManager.BookmarksManager.undoRedoStack?4()
 eric6.WebBrowser.Bookmarks.BookmarksManager.BookmarksManager?1(parent=None)
@@ -9803,7 +9673,8 @@
 eric6.WebBrowser.Bookmarks.BookmarksManager.StartRoot?7
 eric6.WebBrowser.Bookmarks.BookmarksManager.StartToolBar?7
 eric6.WebBrowser.Bookmarks.BookmarksMenu.BookmarksMenu.createBaseMenu?4()
-eric6.WebBrowser.Bookmarks.BookmarksMenu.BookmarksMenu.newUrl?7
+eric6.WebBrowser.Bookmarks.BookmarksMenu.BookmarksMenu.newTab?7
+eric6.WebBrowser.Bookmarks.BookmarksMenu.BookmarksMenu.newWindow?7
 eric6.WebBrowser.Bookmarks.BookmarksMenu.BookmarksMenu.openAll?4()
 eric6.WebBrowser.Bookmarks.BookmarksMenu.BookmarksMenu.openUrl?7
 eric6.WebBrowser.Bookmarks.BookmarksMenu.BookmarksMenu.postPopulated?4()
@@ -9818,6 +9689,7 @@
 eric6.WebBrowser.Bookmarks.BookmarksModel.BookmarksModel.TypeRole?7
 eric6.WebBrowser.Bookmarks.BookmarksModel.BookmarksModel.UrlRole?7
 eric6.WebBrowser.Bookmarks.BookmarksModel.BookmarksModel.UrlStringRole?7
+eric6.WebBrowser.Bookmarks.BookmarksModel.BookmarksModel.VisitCountRole?7
 eric6.WebBrowser.Bookmarks.BookmarksModel.BookmarksModel.bookmarksManager?4()
 eric6.WebBrowser.Bookmarks.BookmarksModel.BookmarksModel.columnCount?4(parent=QModelIndex())
 eric6.WebBrowser.Bookmarks.BookmarksModel.BookmarksModel.data?4(index, role=Qt.DisplayRole)
@@ -9840,7 +9712,8 @@
 eric6.WebBrowser.Bookmarks.BookmarksModel.BookmarksModel.supportedDropActions?4()
 eric6.WebBrowser.Bookmarks.BookmarksModel.BookmarksModel?1(manager, parent=None)
 eric6.WebBrowser.Bookmarks.BookmarksToolBar.BookmarksToolBar._createMenu?5()
-eric6.WebBrowser.Bookmarks.BookmarksToolBar.BookmarksToolBar.newUrl?7
+eric6.WebBrowser.Bookmarks.BookmarksToolBar.BookmarksToolBar.newTab?7
+eric6.WebBrowser.Bookmarks.BookmarksToolBar.BookmarksToolBar.newWindow?7
 eric6.WebBrowser.Bookmarks.BookmarksToolBar.BookmarksToolBar.openUrl?7
 eric6.WebBrowser.Bookmarks.BookmarksToolBar.BookmarksToolBar?1(mainWindow, model, parent=None)
 eric6.WebBrowser.Bookmarks.DefaultBookmarks_rc.qCleanupResources?4()
@@ -9867,8 +9740,6 @@
 eric6.WebBrowser.ClosedTabsManager.ClosedTabsManager.isClosedTabAvailable?4()
 eric6.WebBrowser.ClosedTabsManager.ClosedTabsManager.recordBrowser?4(browser, position)
 eric6.WebBrowser.ClosedTabsManager.ClosedTabsManager?1(parent=None)
-eric6.WebBrowser.CookieJar.CookieDetailsDialog.CookieDetailsDialog.setData?4(domain, name, path, secure, expires, value)
-eric6.WebBrowser.CookieJar.CookieDetailsDialog.CookieDetailsDialog?1(parent=None)
 eric6.WebBrowser.CookieJar.CookieExceptionsModel.CookieExceptionsModel.addRule?4(host, rule)
 eric6.WebBrowser.CookieJar.CookieExceptionsModel.CookieExceptionsModel.columnCount?4(parent=QModelIndex())
 eric6.WebBrowser.CookieJar.CookieExceptionsModel.CookieExceptionsModel.data?4(index, role)
@@ -9892,10 +9763,12 @@
 eric6.WebBrowser.CookieJar.CookieJar.CookieJar.blockedCookies?4()
 eric6.WebBrowser.CookieJar.CookieJar.CookieJar.clear?4()
 eric6.WebBrowser.CookieJar.CookieJar.CookieJar.close?4()
+eric6.WebBrowser.CookieJar.CookieJar.CookieJar.cookieDomains?4()
 eric6.WebBrowser.CookieJar.CookieJar.CookieJar.cookies?4()
 eric6.WebBrowser.CookieJar.CookieJar.CookieJar.cookiesChanged?7
 eric6.WebBrowser.CookieJar.CookieJar.CookieJar.filterTrackingCookies?4()
 eric6.WebBrowser.CookieJar.CookieJar.CookieJar.keepPolicy?4()
+eric6.WebBrowser.CookieJar.CookieJar.CookieJar.removeCookie?4(cookie)
 eric6.WebBrowser.CookieJar.CookieJar.CookieJar.removeCookies?4(cookies)
 eric6.WebBrowser.CookieJar.CookieJar.CookieJar.setAcceptPolicy?4(policy)
 eric6.WebBrowser.CookieJar.CookieJar.CookieJar.setAllowForSessionCookies?4(list_)
@@ -9904,17 +9777,17 @@
 eric6.WebBrowser.CookieJar.CookieJar.CookieJar.setFilterTrackingCookies?4(filterTrackingCookies)
 eric6.WebBrowser.CookieJar.CookieJar.CookieJar.setKeepPolicy?4(policy)
 eric6.WebBrowser.CookieJar.CookieJar.CookieJar?1(parent=None)
-eric6.WebBrowser.CookieJar.CookieModel.CookieModel.columnCount?4(parent=QModelIndex())
-eric6.WebBrowser.CookieJar.CookieModel.CookieModel.data?4(index, role)
-eric6.WebBrowser.CookieJar.CookieModel.CookieModel.headerData?4(section, orientation, role)
-eric6.WebBrowser.CookieJar.CookieModel.CookieModel.removeRows?4(row, count, parent=QModelIndex())
-eric6.WebBrowser.CookieJar.CookieModel.CookieModel.rowCount?4(parent=QModelIndex())
-eric6.WebBrowser.CookieJar.CookieModel.CookieModel?1(cookieJar, parent=None)
 eric6.WebBrowser.CookieJar.CookiesConfigurationDialog.CookiesConfigurationDialog.accept?4()
 eric6.WebBrowser.CookieJar.CookiesConfigurationDialog.CookiesConfigurationDialog.on_cookiesButton_clicked?4()
 eric6.WebBrowser.CookieJar.CookiesConfigurationDialog.CookiesConfigurationDialog.on_exceptionsButton_clicked?4()
 eric6.WebBrowser.CookieJar.CookiesConfigurationDialog.CookiesConfigurationDialog?1(parent)
+eric6.WebBrowser.CookieJar.CookiesDialog.CookiesDialog.CookieRole?7
+eric6.WebBrowser.CookieJar.CookiesDialog.CookiesDialog.DomainRole?7
 eric6.WebBrowser.CookieJar.CookiesDialog.CookiesDialog.on_addButton_clicked?4()
+eric6.WebBrowser.CookieJar.CookiesDialog.CookiesDialog.on_cookiesTree_currentItemChanged?4(current, previous)
+eric6.WebBrowser.CookieJar.CookiesDialog.CookiesDialog.on_removeAllButton_clicked?4()
+eric6.WebBrowser.CookieJar.CookiesDialog.CookiesDialog.on_removeButton_clicked?4()
+eric6.WebBrowser.CookieJar.CookiesDialog.CookiesDialog.on_searchEdit_textChanged?4(txt)
 eric6.WebBrowser.CookieJar.CookiesDialog.CookiesDialog?1(cookieJar, parent=None)
 eric6.WebBrowser.CookieJar.CookiesExceptionsDialog.CookiesExceptionsDialog.on_allowButton_clicked?4()
 eric6.WebBrowser.CookieJar.CookiesExceptionsDialog.CookiesExceptionsDialog.on_allowForSessionButton_clicked?4()
@@ -9997,7 +9870,10 @@
 eric6.WebBrowser.Feeds.FeedsManager.FeedsManager.ErrorDataRole?7
 eric6.WebBrowser.Feeds.FeedsManager.FeedsManager.UrlStringRole?7
 eric6.WebBrowser.Feeds.FeedsManager.FeedsManager.addFeed?4(urlString, title, icon)
-eric6.WebBrowser.Feeds.FeedsManager.FeedsManager.newUrl?7
+eric6.WebBrowser.Feeds.FeedsManager.FeedsManager.newBackgroundTab?7
+eric6.WebBrowser.Feeds.FeedsManager.FeedsManager.newPrivateWindow?7
+eric6.WebBrowser.Feeds.FeedsManager.FeedsManager.newTab?7
+eric6.WebBrowser.Feeds.FeedsManager.FeedsManager.newWindow?7
 eric6.WebBrowser.Feeds.FeedsManager.FeedsManager.on_deleteButton_clicked?4()
 eric6.WebBrowser.Feeds.FeedsManager.FeedsManager.on_editButton_clicked?4()
 eric6.WebBrowser.Feeds.FeedsManager.FeedsManager.on_feedsTree_itemSelectionChanged?4()
@@ -10140,7 +10016,10 @@
 eric6.WebBrowser.History.HistoryCompleter.HistoryCompletionView.resizeEvent?4(evt)
 eric6.WebBrowser.History.HistoryCompleter.HistoryCompletionView.sizeHintForRow?4(row)
 eric6.WebBrowser.History.HistoryCompleter.HistoryCompletionView?1(parent=None)
-eric6.WebBrowser.History.HistoryDialog.HistoryDialog.newUrl?7
+eric6.WebBrowser.History.HistoryDialog.HistoryDialog.newBackgroundTab?7
+eric6.WebBrowser.History.HistoryDialog.HistoryDialog.newPrivateWindow?7
+eric6.WebBrowser.History.HistoryDialog.HistoryDialog.newTab?7
+eric6.WebBrowser.History.HistoryDialog.HistoryDialog.newWindow?7
 eric6.WebBrowser.History.HistoryDialog.HistoryDialog.openUrl?7
 eric6.WebBrowser.History.HistoryDialog.HistoryDialog?1(parent=None, manager=None)
 eric6.WebBrowser.History.HistoryFilterModel.HistoryData?1(offset, frequency=0)
@@ -10186,7 +10065,10 @@
 eric6.WebBrowser.History.HistoryManager.HistoryManager.setHistory?4(history, loadedAndSorted=False)
 eric6.WebBrowser.History.HistoryManager.HistoryManager.updateHistoryEntry?4(url, title)
 eric6.WebBrowser.History.HistoryManager.HistoryManager?1(parent=None)
-eric6.WebBrowser.History.HistoryMenu.HistoryMenu.newUrl?7
+eric6.WebBrowser.History.HistoryMenu.HistoryMenu.newBackgroundTab?7
+eric6.WebBrowser.History.HistoryMenu.HistoryMenu.newPrivateWindow?7
+eric6.WebBrowser.History.HistoryMenu.HistoryMenu.newTab?7
+eric6.WebBrowser.History.HistoryMenu.HistoryMenu.newWindow?7
 eric6.WebBrowser.History.HistoryMenu.HistoryMenu.openUrl?7
 eric6.WebBrowser.History.HistoryMenu.HistoryMenu.postPopulated?4()
 eric6.WebBrowser.History.HistoryMenu.HistoryMenu.prePopulated?4()
@@ -10202,7 +10084,10 @@
 eric6.WebBrowser.History.HistoryMenu.HistoryMenuModel.parent?4(index)
 eric6.WebBrowser.History.HistoryMenu.HistoryMenuModel.rowCount?4(parent=QModelIndex())
 eric6.WebBrowser.History.HistoryMenu.HistoryMenuModel?1(sourceModel, parent=None)
-eric6.WebBrowser.History.HistoryMenu.HistoryMostVisitedMenu.newUrl?7
+eric6.WebBrowser.History.HistoryMenu.HistoryMostVisitedMenu.newBackgroundTab?7
+eric6.WebBrowser.History.HistoryMenu.HistoryMostVisitedMenu.newPrivateWindow?7
+eric6.WebBrowser.History.HistoryMenu.HistoryMostVisitedMenu.newTab?7
+eric6.WebBrowser.History.HistoryMenu.HistoryMostVisitedMenu.newWindow?7
 eric6.WebBrowser.History.HistoryMenu.HistoryMostVisitedMenu.openUrl?7
 eric6.WebBrowser.History.HistoryMenu.HistoryMostVisitedMenu.prePopulated?4()
 eric6.WebBrowser.History.HistoryMenu.HistoryMostVisitedMenu?1(count, parent=None)
@@ -10453,24 +10338,31 @@
 eric6.WebBrowser.QtHelp.HelpIndexWidget.HelpIndexWidget.escapePressed?7
 eric6.WebBrowser.QtHelp.HelpIndexWidget.HelpIndexWidget.eventFilter?4(watched, event)
 eric6.WebBrowser.QtHelp.HelpIndexWidget.HelpIndexWidget.focusInEvent?4(evt)
-eric6.WebBrowser.QtHelp.HelpIndexWidget.HelpIndexWidget.linkActivated?7
-eric6.WebBrowser.QtHelp.HelpIndexWidget.HelpIndexWidget.linksActivated?7
-eric6.WebBrowser.QtHelp.HelpIndexWidget.HelpIndexWidget?1(engine, mainWindow, parent=None)
+eric6.WebBrowser.QtHelp.HelpIndexWidget.HelpIndexWidget.newBackgroundTab?7
+eric6.WebBrowser.QtHelp.HelpIndexWidget.HelpIndexWidget.newTab?7
+eric6.WebBrowser.QtHelp.HelpIndexWidget.HelpIndexWidget.newWindow?7
+eric6.WebBrowser.QtHelp.HelpIndexWidget.HelpIndexWidget.openUrl?7
+eric6.WebBrowser.QtHelp.HelpIndexWidget.HelpIndexWidget?1(engine, parent=None)
 eric6.WebBrowser.QtHelp.HelpSearchWidget.HelpSearchWidget.contextMenuEvent?4(evt)
 eric6.WebBrowser.QtHelp.HelpSearchWidget.HelpSearchWidget.escapePressed?7
 eric6.WebBrowser.QtHelp.HelpSearchWidget.HelpSearchWidget.eventFilter?4(watched, event)
 eric6.WebBrowser.QtHelp.HelpSearchWidget.HelpSearchWidget.keyPressEvent?4(evt)
-eric6.WebBrowser.QtHelp.HelpSearchWidget.HelpSearchWidget.linkActivated?7
-eric6.WebBrowser.QtHelp.HelpSearchWidget.HelpSearchWidget?1(engine, mainWindow, parent=None)
+eric6.WebBrowser.QtHelp.HelpSearchWidget.HelpSearchWidget.newBackgroundTab?7
+eric6.WebBrowser.QtHelp.HelpSearchWidget.HelpSearchWidget.newTab?7
+eric6.WebBrowser.QtHelp.HelpSearchWidget.HelpSearchWidget.newWindow?7
+eric6.WebBrowser.QtHelp.HelpSearchWidget.HelpSearchWidget.openUrl?7
+eric6.WebBrowser.QtHelp.HelpSearchWidget.HelpSearchWidget?1(engine, parent=None)
 eric6.WebBrowser.QtHelp.HelpTocWidget.HelpTocWidget.escapePressed?7
 eric6.WebBrowser.QtHelp.HelpTocWidget.HelpTocWidget.eventFilter?4(watched, event)
 eric6.WebBrowser.QtHelp.HelpTocWidget.HelpTocWidget.expandToDepth?4(depth)
 eric6.WebBrowser.QtHelp.HelpTocWidget.HelpTocWidget.focusInEvent?4(evt)
-eric6.WebBrowser.QtHelp.HelpTocWidget.HelpTocWidget.itemClicked?4(index)
 eric6.WebBrowser.QtHelp.HelpTocWidget.HelpTocWidget.keyPressEvent?4(evt)
-eric6.WebBrowser.QtHelp.HelpTocWidget.HelpTocWidget.linkActivated?7
+eric6.WebBrowser.QtHelp.HelpTocWidget.HelpTocWidget.newBackgroundTab?7
+eric6.WebBrowser.QtHelp.HelpTocWidget.HelpTocWidget.newTab?7
+eric6.WebBrowser.QtHelp.HelpTocWidget.HelpTocWidget.newWindow?7
+eric6.WebBrowser.QtHelp.HelpTocWidget.HelpTocWidget.openUrl?7
 eric6.WebBrowser.QtHelp.HelpTocWidget.HelpTocWidget.syncToContent?4(url)
-eric6.WebBrowser.QtHelp.HelpTocWidget.HelpTocWidget?1(engine, mainWindow, parent=None)
+eric6.WebBrowser.QtHelp.HelpTocWidget.HelpTocWidget?1(engine, parent=None)
 eric6.WebBrowser.QtHelp.HelpTopicDialog.HelpTopicDialog.link?4()
 eric6.WebBrowser.QtHelp.HelpTopicDialog.HelpTopicDialog?1(parent, keyword, links)
 eric6.WebBrowser.QtHelp.QtHelpDocumentationDialog.QtHelpDocumentationDialog.getTabsToClose?4()
@@ -10648,6 +10540,9 @@
 eric6.WebBrowser.Tools.DelayedFileWatcher.DelayedFileWatcher.delayedDirectoryChanged?7
 eric6.WebBrowser.Tools.DelayedFileWatcher.DelayedFileWatcher.delayedFileChanged?7
 eric6.WebBrowser.Tools.DelayedFileWatcher.DelayedFileWatcher?1(paths=None, parent=None)
+eric6.WebBrowser.Tools.PrintToPdfDialog.PrintToPdfDialog.getData?4()
+eric6.WebBrowser.Tools.PrintToPdfDialog.PrintToPdfDialog.on_pageLayoutButton_clicked?4()
+eric6.WebBrowser.Tools.PrintToPdfDialog.PrintToPdfDialog?1(filePath, parent=None)
 eric6.WebBrowser.Tools.Scripts.completeFormData?4(data)
 eric6.WebBrowser.Tools.Scripts.getAllImages?4()
 eric6.WebBrowser.Tools.Scripts.getAllMetaAttributes?4()
@@ -10670,6 +10565,7 @@
 eric6.WebBrowser.Tools.WebBrowserTools.readAllFileByteContents?4(filename)
 eric6.WebBrowser.Tools.WebBrowserTools.readAllFileContents?4(filename)
 eric6.WebBrowser.Tools.WebHitTestResult.WebHitTestResult.alternateText?4()
+eric6.WebBrowser.Tools.WebHitTestResult.WebHitTestResult.baseUrl?4()
 eric6.WebBrowser.Tools.WebHitTestResult.WebHitTestResult.boundingRect?4()
 eric6.WebBrowser.Tools.WebHitTestResult.WebHitTestResult.imageUrl?4()
 eric6.WebBrowser.Tools.WebHitTestResult.WebHitTestResult.isContentEditable?4()
@@ -10814,6 +10710,7 @@
 eric6.WebBrowser.WebBrowserPage.WebBrowserPage.certificateError?4(error)
 eric6.WebBrowser.WebBrowserPage.WebBrowserPage.execJavaScript?4(script, worldId=QWebEngineScript.MainWorld, timeout=500)
 eric6.WebBrowser.WebBrowserPage.WebBrowserPage.hitTestContent?4(pos)
+eric6.WebBrowser.WebBrowserPage.WebBrowserPage.icon?4()
 eric6.WebBrowser.WebBrowserPage.WebBrowserPage.isJavaScriptEnabled?4()
 eric6.WebBrowser.WebBrowserPage.WebBrowserPage.javaScriptConsoleMessage?4(level, message, lineNumber, sourceId)
 eric6.WebBrowser.WebBrowserPage.WebBrowserPage.mapToViewport?4(pos)
@@ -10847,8 +10744,8 @@
 eric6.WebBrowser.WebBrowserTabWidget.WebBrowserTabWidget.currentUrlBar?4()
 eric6.WebBrowser.WebBrowserTabWidget.WebBrowserTabWidget.currentUrlChanged?7
 eric6.WebBrowser.WebBrowserTabWidget.WebBrowserTabWidget.getSourceFileList?4()
-eric6.WebBrowser.WebBrowserTabWidget.WebBrowserTabWidget.newBrowser?4(link=None, position=-1)
-eric6.WebBrowser.WebBrowserTabWidget.WebBrowserTabWidget.newBrowserAfter?4(browser, link=None)
+eric6.WebBrowser.WebBrowserTabWidget.WebBrowserTabWidget.newBrowser?4(link=None, position=-1, background=False)
+eric6.WebBrowser.WebBrowserTabWidget.WebBrowserTabWidget.newBrowserAfter?4(browser, link=None, background=False)
 eric6.WebBrowser.WebBrowserTabWidget.WebBrowserTabWidget.preferencesChanged?4()
 eric6.WebBrowser.WebBrowserTabWidget.WebBrowserTabWidget.printBrowser?4(browser=None)
 eric6.WebBrowser.WebBrowserTabWidget.WebBrowserTabWidget.printBrowserPdf?4(browser=None)
@@ -10888,6 +10785,7 @@
 eric6.WebBrowser.WebBrowserView.WebBrowserView.dropEvent?4(evt)
 eric6.WebBrowser.WebBrowserView.WebBrowserView.event?4(evt)
 eric6.WebBrowser.WebBrowserView.WebBrowserView.eventFilter?4(obj, evt)
+eric6.WebBrowser.WebBrowserView.WebBrowserView.faviconChanged?7
 eric6.WebBrowser.WebBrowserView.WebBrowserView.findNextPrev?4(txt, case, backwards, callback)
 eric6.WebBrowser.WebBrowserView.WebBrowserView.focusOutEvent?4(evt)
 eric6.WebBrowser.WebBrowserView.WebBrowserView.forward?4()
@@ -10899,7 +10797,6 @@
 eric6.WebBrowser.WebBrowserView.WebBrowserView.highlighted?7
 eric6.WebBrowser.WebBrowserView.WebBrowserView.home?4()
 eric6.WebBrowser.WebBrowserView.WebBrowserView.icon?4()
-eric6.WebBrowser.WebBrowserView.WebBrowserView.iconChanged?7
 eric6.WebBrowser.WebBrowserView.WebBrowserView.inputWidget?4()
 eric6.WebBrowser.WebBrowserView.WebBrowserView.isBackwardAvailable?4()
 eric6.WebBrowser.WebBrowserView.WebBrowserView.isForwardAvailable?4()
@@ -10915,6 +10812,7 @@
 eric6.WebBrowser.WebBrowserView.WebBrowserView.reload?4()
 eric6.WebBrowser.WebBrowserView.WebBrowserView.reloadBypassingCache?4()
 eric6.WebBrowser.WebBrowserView.WebBrowserView.requestFullScreen?4(enable)
+eric6.WebBrowser.WebBrowserView.WebBrowserView.saveAs?4()
 eric6.WebBrowser.WebBrowserView.WebBrowserView.search?7
 eric6.WebBrowser.WebBrowserView.WebBrowserView.selectAll?4()
 eric6.WebBrowser.WebBrowserView.WebBrowserView.setSource?4(name, newTab=False)
@@ -10922,6 +10820,7 @@
 eric6.WebBrowser.WebBrowserView.WebBrowserView.source?4()
 eric6.WebBrowser.WebBrowserView.WebBrowserView.sourceChanged?7
 eric6.WebBrowser.WebBrowserView.WebBrowserView.undo?4()
+eric6.WebBrowser.WebBrowserView.WebBrowserView.unselect?4()
 eric6.WebBrowser.WebBrowserView.WebBrowserView.zoomIn?4()
 eric6.WebBrowser.WebBrowserView.WebBrowserView.zoomOut?4()
 eric6.WebBrowser.WebBrowserView.WebBrowserView.zoomReset?4()
@@ -10997,12 +10896,15 @@
 eric6.WebBrowser.WebBrowserWindow.WebBrowserWindow.mousePressEvent?4(evt)
 eric6.WebBrowser.WebBrowserWindow.WebBrowserWindow.networkManager?4()
 eric6.WebBrowser.WebBrowserWindow.WebBrowserWindow.newPrivateWindow?4(link=None)
-eric6.WebBrowser.WebBrowserWindow.WebBrowserWindow.newTab?4(link=None, addNextTo=None)
+eric6.WebBrowser.WebBrowserWindow.WebBrowserWindow.newTab?4(link=None, addNextTo=None, background=False)
 eric6.WebBrowser.WebBrowserWindow.WebBrowserWindow.newWindow?4(link=None)
 eric6.WebBrowser.WebBrowserWindow.WebBrowserWindow.notificationsEnabled?4()
 eric6.WebBrowser.WebBrowserWindow.WebBrowserWindow.openSearchManager?4()
-eric6.WebBrowser.WebBrowserWindow.WebBrowserWindow.openUrl?4(url, title)
-eric6.WebBrowser.WebBrowserWindow.WebBrowserWindow.openUrlNewTab?4(url, title)
+eric6.WebBrowser.WebBrowserWindow.WebBrowserWindow.openUrl?4(url, title=None)
+eric6.WebBrowser.WebBrowserWindow.WebBrowserWindow.openUrlNewBackgroundTab?4(url, title=None)
+eric6.WebBrowser.WebBrowserWindow.WebBrowserWindow.openUrlNewPrivateWindow?4(url, title=None)
+eric6.WebBrowser.WebBrowserWindow.WebBrowserWindow.openUrlNewTab?4(url, title=None)
+eric6.WebBrowser.WebBrowserWindow.WebBrowserWindow.openUrlNewWindow?4(url, title=None)
 eric6.WebBrowser.WebBrowserWindow.WebBrowserWindow.passwordManager?4()
 eric6.WebBrowser.WebBrowserWindow.WebBrowserWindow.personalInformationManager?4()
 eric6.WebBrowser.WebBrowserWindow.WebBrowserWindow.preferencesChanged?4()
@@ -11126,6 +11028,24 @@
 eric6.eric6_webbrowser.main?4()
 eric6.eric6config._pkg_config?8
 eric6.eric6config.getConfig?4(name)
+eric6.install-debugclients.cleanUp?4()
+eric6.install-debugclients.cleanupSource?4(dirName)
+eric6.install-debugclients.copyTree?4(src, dst, filters, excludeDirs=[], excludePatterns=[])
+eric6.install-debugclients.currDir?7
+eric6.install-debugclients.distDir?7
+eric6.install-debugclients.doCleanup?7
+eric6.install-debugclients.doCompile?7
+eric6.install-debugclients.exit?4(rcode=0)
+eric6.install-debugclients.initGlobals?4()
+eric6.install-debugclients.installEricDebugClients?4()
+eric6.install-debugclients.installPackage?7
+eric6.install-debugclients.main?4(argv)
+eric6.install-debugclients.modDir?7
+eric6.install-debugclients.progName?7
+eric6.install-debugclients.pyModDir?7
+eric6.install-debugclients.shutilCopy?4(src, dst, perm=0o644)
+eric6.install-debugclients.sourceDir?7
+eric6.install-debugclients.usage?4(rcode=2)
 eric6.install-i18n.configDir?7
 eric6.install-i18n.getConfigDir?4()
 eric6.install-i18n.installTranslations?4()
@@ -11188,6 +11108,16 @@
 eric6.patch_modpython.modDir?7
 eric6.patch_modpython.progName?7
 eric6.patch_modpython.usage?4(rcode=2)
+eric6.uninstall-debugclients.currDir?7
+eric6.uninstall-debugclients.exit?4(rcode=0)
+eric6.uninstall-debugclients.initGlobals?4()
+eric6.uninstall-debugclients.installPackage?7
+eric6.uninstall-debugclients.main?4(argv)
+eric6.uninstall-debugclients.modDir?7
+eric6.uninstall-debugclients.progName?7
+eric6.uninstall-debugclients.pyModDir?7
+eric6.uninstall-debugclients.uninstallEricDebugClients?4()
+eric6.uninstall-debugclients.usage?4(rcode=2)
 eric6.uninstall.PythonMarkers?7
 eric6.uninstall.defaultMacAppBundleName?7
 eric6.uninstall.defaultMacAppBundlePath?7
--- a/APIs/Python3/eric6.bas	Thu Sep 15 21:49:13 2016 +0200
+++ b/APIs/Python3/eric6.bas	Sun Sep 18 21:35:53 2016 +0200
@@ -70,6 +70,7 @@
 ClassItem UMLItem
 ClassModel UMLModel
 ClbrBase _ClbrBase
+ClearPrivateDataDialog QDialog Ui_ClearPrivateDataDialog
 ClickToFlash QWidget Ui_ClickToFlash
 ClickToFlashPlugin WebPluginInterface
 ClickToFlashWhitelistDialog QDialog Ui_ClickToFlashWhitelistDialog
@@ -77,7 +78,7 @@
 CodeMetricsDialog QDialog Ui_CodeMetricsDialog
 CodeStyleCheckerDialog QDialog Ui_CodeStyleCheckerDialog
 CodeStyleCheckerPlugin QObject
-CodeStyleCheckerReport pep8.BaseReport
+CodeStyleCheckerReport pycodestyle.BaseReport
 CodeStyleCodeSelectionDialog QDialog Ui_CodeStyleCodeSelectionDialog
 CodeStyleStatisticsDialog QDialog Ui_CodeStyleStatisticsDialog
 Coding ClbrBase
@@ -110,23 +111,25 @@
 DCTestResult TestResult
 Data bytes
 DebugBase bdb.Bdb
-DebugClient AsyncIO DebugBase DebugClientBase.DebugClientBase
-DebugClientThreads AsyncIO DebugClientBase.DebugClientBase
+DebugClient DebugBase DebugClientBase.DebugClientBase
+DebugClientThreads DebugClientBase.DebugClientBase
 DebugServer QTcpServer
 DebugThread DebugBase
 DebugUI QObject
 DebugViewer QWidget
 DebuggerGeneralPage ConfigurationPageBase Ui_DebuggerGeneralPage
 DebuggerInterfaceNone QObject
-DebuggerInterfacePython QObject
+DebuggerInterfacePython2 QObject
 DebuggerInterfacePython3 QObject
 DebuggerPropertiesDialog QDialog Ui_DebuggerPropertiesDialog
 DebuggerPropertiesReader XMLStreamReaderBase
 DebuggerPropertiesWriter XMLStreamWriterBase
 DebuggerPython3Page ConfigurationPageBase Ui_DebuggerPython3Page
 DebuggerPythonPage ConfigurationPageBase Ui_DebuggerPythonPage
+DefaultResolver BaseResolver
 DelayedFileWatcher QFileSystemWatcher
 DeleteFilesConfirmationDialog QDialog Ui_DeleteFilesConfirmationDialog
+DictResolver BaseResolver
 DiffDialog QWidget Ui_DiffDialog
 DiffHighlighter E5GenericDiffHighlighter
 DiffReport StandardReport
@@ -489,6 +492,7 @@
 LexerYAML Lexer QsciLexerYAML
 LfConvertDataDialog QDialog Ui_LfConvertDataDialog
 LfRevisionsInputDialog QDialog Ui_LfRevisionsInputDialog
+ListResolver BaseResolver
 Listspace ViewManager
 LogViewer QWidget
 LogViewerEdit QTextEdit
@@ -583,6 +587,7 @@
 Previewer QStackedWidget
 PreviewerHTML QWidget
 PreviewerQSS QWidget Ui_PreviewerQSS
+PrintToPdfDialog QDialog Ui_PrintToPdfDialog
 Printer QsciPrinter
 PrinterPage ConfigurationPageBase Ui_PrinterPage
 ProfileTreeWidgetItem QTreeWidgetItem
@@ -603,6 +608,7 @@
 ProjectReader XMLStreamReaderBase
 ProjectResourcesBrowser ProjectBaseBrowser
 ProjectSourcesBrowser ProjectBaseBrowser
+ProjectTaskExtractionThread QThread
 ProjectTranslationsBrowser ProjectBaseBrowser
 ProjectWriter XMLStreamWriterBase
 PropertiesDialog QDialog Ui_PropertiesDialog
@@ -650,7 +656,6 @@
 RecursionError OverflowError ValueError
 Redirector QObject
 RemoveBookmarksCommand QUndoCommand
-RevisionsValidator QValidator
 SafariImporter BookmarksImporter
 SchemeAccessHandler QObject
 SearchReplaceSlidingWidget QWidget
@@ -660,6 +665,7 @@
 SendRefererWhitelistDialog QDialog Ui_SendRefererWhitelistDialog
 SessionReader XMLStreamReaderBase
 SessionWriter XMLStreamWriterBase
+SetResolver BaseResolver
 Shell QsciScintillaCompat
 ShellAssembly QWidget
 ShellHistoryDialog QDialog Ui_ShellHistoryDialog
@@ -781,9 +787,6 @@
 ToolGroupConfigurationDialog QDialog Ui_ToolGroupConfigurationDialog
 TranslationPropertiesDialog QDialog Ui_TranslationPropertiesDialog
 TranslationsDict QObject
-Transplant HgExtension
-TransplantDialog QDialog Ui_TransplantDialog
-TransplantProjectHelper HgExtensionProjectHelper
 TrayStarter QSystemTrayIcon
 TrayStarterPage ConfigurationPageBase Ui_TrayStarterPage
 UIPreviewer E5MainWindow
--- a/DataViews/PyCoverageDialog.py	Thu Sep 15 21:49:13 2016 +0200
+++ b/DataViews/PyCoverageDialog.py	Sun Sep 18 21:35:53 2016 +0200
@@ -22,7 +22,7 @@
 from .Ui_PyCoverageDialog import Ui_PyCoverageDialog
 
 import Utilities
-from coverage import coverage
+from coverage import Coverage
 from coverage.misc import CoverageException
 
 
@@ -168,7 +168,7 @@
             self.path = os.path.dirname(cfn)
         files.sort()
         
-        cover = coverage(data_file=self.cfn)
+        cover = Coverage(data_file=self.cfn)
         cover.load()
         
         # set the exclude pattern
@@ -315,7 +315,7 @@
         itm = self.resultList.currentItem()
         fn = itm.text(0)
         
-        cover = coverage(data_file=self.cfn)
+        cover = Coverage(data_file=self.cfn)
         cover.exclude(self.excludeList[0])
         cover.load()
         cover.annotate([fn], None, True)
@@ -337,7 +337,7 @@
             itm = self.resultList.topLevelItem(index)
             files.append(itm.text(0))
         
-        cover = coverage(data_file=self.cfn)
+        cover = Coverage(data_file=self.cfn)
         cover.exclude(self.excludeList[0])
         cover.load()
         
@@ -365,7 +365,7 @@
         This method erases the collected coverage data that is
         stored in the .coverage file.
         """
-        cover = coverage(data_file=self.cfn)
+        cover = Coverage(data_file=self.cfn)
         cover.load()
         cover.erase()
         
--- a/DebugClients/Python/AsyncFile.py	Thu Sep 15 21:49:13 2016 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,304 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2002 - 2016 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing an asynchronous file like socket interface for the
-debugger.
-"""
-
-import socket
-
-from DebugProtocol import EOT
-
-
-def AsyncPendingWrite(file):
-    """
-    Module function to check for data to be written.
-    
-    @param file The file object to be checked (file)
-    @return Flag indicating if there is data wating (int)
-    """
-    try:
-        pending = file.pendingWrite()
-    except Exception:
-        pending = 0
-
-    return pending
-
-
-class AsyncFile(object):
-    """
-    Class wrapping a socket object with a file interface.
-    """
-    maxtries = 10
-    maxbuffersize = 1024 * 1024 * 4
-    
-    def __init__(self, sock, mode, name):
-        """
-        Constructor
-        
-        @param sock the socket object being wrapped
-        @param mode mode of this file (string)
-        @param name name of this file (string)
-        """
-        # Initialise the attributes.
-        self.closed = 0
-        self.sock = sock
-        self.mode = mode
-        self.name = name
-        self.nWriteErrors = 0
-        self.encoding = "utf-8"
-
-        self.wpending = u''
-
-    def __checkMode(self, mode):
-        """
-        Private method to check the mode.
-        
-        This method checks, if an operation is permitted according to
-        the mode of the file. If it is not, an IOError is raised.
-        
-        @param mode the mode to be checked (string)
-        @exception IOError raised to indicate a bad file descriptor
-        """
-        if mode != self.mode:
-            raise IOError('[Errno 9] Bad file descriptor')
-
-    def __nWrite(self, n):
-        """
-        Private method to write a specific number of pending bytes.
-        
-        @param n the number of bytes to be written (int)
-        """
-        if n:
-            try:
-                buf = "%s%s" % (self.wpending[:n], EOT)
-                try:
-                    buf = buf.encode('utf-8')
-                except (UnicodeEncodeError, UnicodeDecodeError):
-                    pass
-                self.sock.sendall(buf)
-                self.wpending = self.wpending[n:]
-                self.nWriteErrors = 0
-            except socket.error:
-                self.nWriteErrors += 1
-                if self.nWriteErrors > self.maxtries:
-                    self.wpending = u''  # delete all output
-
-    def pendingWrite(self):
-        """
-        Public method that returns the number of bytes waiting to be written.
-        
-        @return the number of bytes to be written (int)
-        """
-        return self.wpending.rfind('\n') + 1
-
-    def close(self, closeit=0):
-        """
-        Public method to close the file.
-        
-        @param closeit flag to indicate a close ordered by the debugger code
-            (boolean)
-        """
-        if closeit and not self.closed:
-            self.flush()
-            self.sock.close()
-            self.closed = 1
-
-    def flush(self):
-        """
-        Public method to write all pending bytes.
-        """
-        self.__nWrite(len(self.wpending))
-
-    def isatty(self):
-        """
-        Public method to indicate whether a tty interface is supported.
-        
-        @return always false
-        """
-        return 0
-
-    def fileno(self):
-        """
-        Public method returning the file number.
-        
-        @return file number (int)
-        """
-        try:
-            return self.sock.fileno()
-        except socket.error:
-            return -1
-
-    def read_p(self, size=-1):
-        """
-        Public method to read bytes from this file.
-        
-        @param size maximum number of bytes to be read (int)
-        @return the bytes read (any)
-        """
-        self.__checkMode('r')
-
-        if size < 0:
-            size = 20000
-
-        return self.sock.recv(size).decode('utf8')
-
-    def read(self, size=-1):
-        """
-        Public method to read bytes from this file.
-        
-        @param size maximum number of bytes to be read (int)
-        @return the bytes read (any)
-        """
-        self.__checkMode('r')
-
-        buf = raw_input()
-        if size >= 0:
-            buf = buf[:size]
-        return buf
-
-    def readline_p(self, size=-1):
-        """
-        Public method to read a line from this file.
-        
-        <b>Note</b>: This method will not block and may return
-        only a part of a line if that is all that is available.
-        
-        @param size maximum number of bytes to be read (int)
-        @return one line of text up to size bytes (string)
-        """
-        self.__checkMode('r')
-
-        if size < 0:
-            size = 20000
-
-        # The integration of the debugger client event loop and the connection
-        # to the debugger relies on the two lines of the debugger command being
-        # delivered as two separate events.  Therefore we make sure we only
-        # read a line at a time.
-        line = self.sock.recv(size, socket.MSG_PEEK)
-
-        eol = line.find('\n')
-
-        if eol >= 0:
-            size = eol + 1
-        else:
-            size = len(line)
-
-        # Now we know how big the line is, read it for real.
-        return self.sock.recv(size).decode('utf8')
-
-    def readlines(self, sizehint=-1):
-        """
-        Public method to read all lines from this file.
-        
-        @param sizehint hint of the numbers of bytes to be read (int)
-        @return list of lines read (list of strings)
-        """
-        self.__checkMode('r')
-
-        lines = []
-        room = sizehint
-
-        line = self.readline_p(room)
-        linelen = len(line)
-
-        while linelen > 0:
-            lines.append(line)
-
-            if sizehint >= 0:
-                room = room - linelen
-
-                if room <= 0:
-                    break
-
-            line = self.readline_p(room)
-            linelen = len(line)
-
-        return lines
-
-    def readline(self, sizehint=-1):
-        """
-        Public method to read one line from this file.
-        
-        @param sizehint hint of the numbers of bytes to be read (int)
-        @return one line read (string)
-        """
-        self.__checkMode('r')
-
-        line = raw_input() + '\n'
-        if sizehint >= 0:
-            line = line[:sizehint]
-        return line
-        
-    def seek(self, offset, whence=0):
-        """
-        Public method to move the filepointer.
-        
-        @param offset offset to seek for
-        @param whence where to seek from
-        @exception IOError This method is not supported and always raises an
-        IOError.
-        """
-        raise IOError('[Errno 29] Illegal seek')
-
-    def tell(self):
-        """
-        Public method to get the filepointer position.
-        
-        @exception IOError This method is not supported and always raises an
-        IOError.
-        """
-        raise IOError('[Errno 29] Illegal seek')
-
-    def truncate(self, size=-1):
-        """
-        Public method to truncate the file.
-        
-        @param size size to truncate to (integer)
-        @exception IOError This method is not supported and always raises an
-        IOError.
-        """
-        raise IOError('[Errno 29] Illegal seek')
-
-    def write(self, s):
-        """
-        Public method to write a string to the file.
-        
-        @param s bytes to be written (string)
-        @exception socket.error raised to indicate too many send attempts
-        """
-        self.__checkMode('w')
-        tries = 0
-        if not self.wpending:
-            self.wpending = s
-        elif type(self.wpending) != type(s) or \
-                len(self.wpending) + len(s) > self.maxbuffersize:
-            # flush wpending so that different string types are not
-            # concatenated
-            while self.wpending:
-                # if we have a persistent error in sending the data, an
-                # exception will be raised in __nWrite
-                self.flush()
-                tries += 1
-                if tries > self.maxtries:
-                    raise socket.error("Too many attempts to send data")
-            self.wpending = s
-        else:
-            self.wpending += s
-        self.__nWrite(self.pendingWrite())
-
-    def writelines(self, list):
-        """
-        Public method to write a list of strings to the file.
-        
-        @param list the list to be written (list of string)
-        """
-        map(self.write, list)
-
-#
-# eflag: FileType = Python2
-# eflag: noqa = M601, M702
--- a/DebugClients/Python/AsyncIO.py	Thu Sep 15 21:49:13 2016 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2002 - 2016 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a base class of an asynchronous interface for the debugger.
-"""
-
-
-class AsyncIO(object):
-    """
-    Class implementing asynchronous reading and writing.
-    """
-    def __init__(self):
-        """
-        Constructor
-        """
-        # There is no connection yet.
-        self.disconnect()
-
-    def disconnect(self):
-        """
-        Public method to disconnect any current connection.
-        """
-        self.readfd = None
-        self.writefd = None
-
-    def setDescriptors(self, rfd, wfd):
-        """
-        Public method called to set the descriptors for the connection.
-        
-        @param rfd file descriptor of the input file (int)
-        @param wfd file descriptor of the output file (int)
-        """
-        self.rbuf = ''
-        self.readfd = rfd
-
-        self.wbuf = ''
-        self.writefd = wfd
-
-    def readReady(self, fd):
-        """
-        Public method called when there is data ready to be read.
-        
-        @param fd file descriptor of the file that has data to be read (int)
-        """
-        try:
-            got = self.readfd.readline_p()
-        except Exception:
-            return
-
-        if len(got) == 0:
-            self.sessionClose()
-            return
-
-        self.rbuf = self.rbuf + got
-
-        # Call handleLine for the line if it is complete.
-        eol = self.rbuf.find('\n')
-
-        while eol >= 0:
-            s = self.rbuf[:eol + 1]
-            self.rbuf = self.rbuf[eol + 1:]
-            self.handleLine(s)
-            eol = self.rbuf.find('\n')
-
-    def writeReady(self, fd):
-        """
-        Public method called when we are ready to write data.
-        
-        @param fd file descriptor of the file that has data to be written (int)
-        """
-        self.writefd.write(self.wbuf)
-        self.writefd.flush()
-        self.wbuf = ''
-
-    def write(self, s):
-        """
-        Public method to write a string.
-        
-        @param s the data to be written (string)
-        """
-        self.wbuf = self.wbuf + s
-
-#
-# eflag: FileType = Python2
-# eflag: noqa = M601, M702
--- a/DebugClients/Python/BreakpointWatch.py	Thu Sep 15 21:49:13 2016 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,333 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2016 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the breakpoint and watch class.
-"""
-
-import os
-
-
-class Breakpoint:
-    """
-    Breakpoint class.
-
-    Implements temporary breakpoints, ignore counts, disabling and
-    (re)-enabling, and conditionals.
-
-    Breakpoints are indexed by the file,line tuple using breaks. It
-    points to a single Breakpoint instance. This is rather different to
-    the original bdb, since there may be more than one breakpoint per line.
-    
-    To test for a specific line in a file there is another dict breakInFile,
-    which is indexed only by filename and holds all line numbers where
-    breakpoints are.
-    """
-    breaks = {}     # indexed by (filename, lineno) tuple: Breakpoint
-    breakInFile = {}  # indexed by filename: [lineno]
-    breakInFrameCache = {}
-    
-    def __init__(self, filename, lineno, temporary=0, cond=None):
-        """
-        Constructor
-        
-        @param filename the filename where a breakpoint is set
-        @type str
-        @param lineno the line number of the breakpoint
-        @type int
-        @keyparam temporary flag to indicate a temporary breakpoint
-        @type int
-        @keyparam cond Python expression which dynamically enables this bp
-        @type str
-        """
-        filename = os.path.abspath(filename)
-        self.file = filename
-        self.line = lineno
-        self.temporary = temporary
-        self.cond = cond
-        self.enabled = 1
-        self.ignore = 0
-        self.hits = 0
-        self.breaks[filename, lineno] = self
-        lines = self.breakInFile.setdefault(filename, [])
-        if lineno not in lines:
-            lines.append(lineno)
-        self.breakInFrameCache.clear()
-
-    def deleteMe(self):
-        """
-        Public method to clear this breakpoint.
-        """
-        try:
-            del self.breaks[(self.file, self.line)]
-            self.breakInFile[self.file].remove(self.line)
-            if not self.breakInFile[self.file]:
-                del self.breakInFile[self.file]
-        except KeyError:
-            pass
-
-    def enable(self):
-        """
-        Public method to enable this breakpoint.
-        """
-        self.enabled = 1
-
-    def disable(self):
-        """
-        Public method to disable this breakpoint.
-        """
-        self.enabled = 0
-
-    @staticmethod
-    def clear_break(filename, lineno):
-        """
-        Public method reimplemented from bdb.py to clear a breakpoint.
-        
-        @param filename the filename of the bp to retrieve
-        @type str
-        @param lineno the linenumber of the bp to retrieve
-        @type int
-        """
-        bp = Breakpoint.breaks.get((filename, lineno))
-        if bp:
-            bp.deleteMe()
-        Breakpoint.breakInFrameCache.clear()
-
-    @staticmethod
-    def clear_all_breaks():
-        """
-        Public method to clear all breakpoints.
-        """
-        for bp in Breakpoint.breaks.copy():
-            bp.deleteMe()
-        Breakpoint.breakInFrameCache.clear()
-
-    @staticmethod
-    def get_break(filename, lineno):
-        """
-        Public method to get the breakpoint of a particular line.
-        
-        Because eric6 supports only one breakpoint per line, this
-        method will return only one breakpoint.
-        
-        @param filename the filename of the bp to retrieve
-        @type str
-        @param lineno the linenumber of the bp to retrieve
-        @type int
-        @return Breakpoint or None, if there is no bp
-        @rtype Breakpoint object or None
-        """
-        return Breakpoint.breaks.get((filename, lineno))
-    
-    @staticmethod
-    def effectiveBreak(filename, lineno, frame):
-        """
-        Public method to determine which breakpoint for this filename:lineno
-        is to be acted upon.
-
-        Called only if we know there is a bpt at this
-        location.  Returns breakpoint that was triggered and a flag
-        that indicates if it is ok to delete a temporary bp.
-        
-        @param filename the filename of the bp to retrieve
-        @type str
-        @param lineno the linenumber of the bp to retrieve
-        @type int
-        @param frame the current execution frame
-        @type frame object
-        @return tuple of Breakpoint and a flag to indicate, that a
-            temporary breakpoint may be deleted
-        @rtype tuple of Breakpoint, bool
-        """
-        b = Breakpoint.breaks[filename, lineno]
-        if b.enabled == 0:
-            return (None, 0)
-        
-        # Count every hit when bp is enabled
-        b.hits += 1
-        if not b.cond:
-            # If unconditional, and ignoring,
-            # go on to next, else break
-            if b.ignore > 0:
-                b.ignore -= 1
-                return (None, 0)
-            else:
-                # breakpoint and marker that's ok
-                # to delete if temporary
-                return (b, 1)
-        else:
-            # Conditional bp.
-            # Ignore count applies only to those bpt hits where the
-            # condition evaluates to true.
-            try:
-                val = eval(b.cond, frame.f_globals, frame.f_locals)
-                if val:
-                    if b.ignore > 0:
-                        b.ignore -= 1
-                        # continue
-                    else:
-                        return (b, 1)
-                # else:
-                #   continue
-            except Exception:
-                # if eval fails, most conservative
-                # thing is to stop on breakpoint
-                # regardless of ignore count.
-                # Don't delete temporary,
-                # as another hint to user.
-                return (b, 0)
-        return (None, 0)
-
-
-class Watch:
-    """
-    Watch class.
-
-    Implements temporary watches, ignore counts, disabling and
-    (re)-enabling, and conditionals.
-    """
-    watches = []
-
-    def __init__(self, cond, compiledCond, flag, temporary=0):
-        """
-        Constructor
-        
-        @param cond condition as string with flag
-        @type str
-        @param compiledCond precompiled condition
-        @type code object
-        @param flag indicates type of watch (created or changed)
-        @type str
-        @keyparam temporary flag for temporary watches
-        @type int
-        """
-        # Should not occur
-        if not cond:
-            return
-        
-        self.cond = cond
-        self.compiledCond = compiledCond
-        self.temporary = temporary
-        
-        self.enabled = 1
-        self.ignore = 0
-        
-        self.created = False
-        self.changed = False
-        if flag == '??created??':
-            self.created = True
-        elif flag == '??changed??':
-            self.changed = True
-        
-        self.values = {}
-        self.watches.append(self)
-
-    def deleteMe(self):
-        """
-        Public method to clear this watch expression.
-        """
-        try:
-            del self.watches[self]
-        except ValueError:
-            pass
-
-    def enable(self):
-        """
-        Public method to enable this watch.
-        """
-        self.enabled = 1
-
-    def disable(self):
-        """
-        Public method to disable this watch.
-        """
-        self.enabled = 0
-
-    @staticmethod
-    def clear_watch(cond):
-        """
-        Public method to clear a watch expression.
-        
-        @param cond expression of the watch expression to be cleared
-        @type str
-        """
-        try:
-            Watch.watches.remove(Watch.get_watch(cond))
-        except ValueError:
-            pass
-
-    @staticmethod
-    def clear_all_watches():
-        """
-        Public method to clear all watch expressions.
-        """
-        del Watch.watches[:]
-
-    @staticmethod
-    def get_watch(cond):
-        """
-        Public method to get a watch expression.
-        
-        @param cond expression of the watch expression to be cleared
-        @type str
-        @return reference to the watch point
-        @rtype Watch or None
-        """
-        for b in Watch.watches:
-            if b.cond == cond:
-                return b
-
-    @staticmethod
-    def effectiveWatch(frame):
-        """
-        Public method to determine, if a watch expression is effective.
-        
-        @param frame the current execution frame
-        @type frame object
-        @return tuple of watch expression and a flag to indicate, that a
-            temporary watch expression may be deleted
-        @rtype tuple of Watch, int
-        """
-        for b in Watch.watches:
-            if b.enabled == 0:
-                continue
-            try:
-                val = eval(b.compiledCond, frame.f_globals, frame.f_locals)
-                if b.created:
-                    if frame in b.values:
-                        continue
-                    else:
-                        b.values[frame] = [1, val, b.ignore]
-                        return (b, 1)
-                    
-                elif b.changed:
-                    try:
-                        if b.values[frame][1] != val:
-                            b.values[frame][1] = val
-                        else:
-                            continue
-                    except KeyError:
-                        b.values[frame] = [1, val, b.ignore]
-                    
-                    if b.values[frame][2] > 0:
-                        b.values[frame][2] -= 1
-                        continue
-                    else:
-                        return (b, 1)
-                    
-                elif val:
-                    if b.ignore > 0:
-                        b.ignore -= 1
-                        continue
-                    else:
-                        return (b, 1)
-            except Exception:
-                continue
-        return (None, 0)
-
-
-#
-# eflag: FileType = Python2
-# eflag: noqa = M601, M702
--- a/DebugClients/Python/DCTestResult.py	Thu Sep 15 21:49:13 2016 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,131 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2003 - 2016 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a TestResult derivative for the eric6 debugger.
-"""
-
-import select
-from unittest import TestResult
-
-
-from DebugProtocol import ResponseUTTestFailed, ResponseUTTestErrored, \
-    ResponseUTStartTest, ResponseUTStopTest, ResponseUTTestSkipped, \
-    ResponseUTTestFailedExpected, ResponseUTTestSucceededUnexpected
-
-
-class DCTestResult(TestResult):
-    """
-    A TestResult derivative to work with eric6's debug client.
-    
-    For more details see unittest.py of the standard python distribution.
-    """
-    def __init__(self, parent):
-        """
-        Constructor
-        
-        @param parent The parent widget.
-        """
-        TestResult.__init__(self)
-        self.parent = parent
-        
-    def addFailure(self, test, err):
-        """
-        Public method called if a test failed.
-        
-        @param test Reference to the test object
-        @param err The error traceback
-        """
-        TestResult.addFailure(self, test, err)
-        tracebackLines = self._exc_info_to_string(err, test)
-        self.parent.write(
-            '%s%s\n' % (
-                ResponseUTTestFailed,
-                unicode((unicode(test), tracebackLines, test.id()))))
-        
-    def addError(self, test, err):
-        """
-        Public method called if a test errored.
-        
-        @param test Reference to the test object
-        @param err The error traceback
-        """
-        TestResult.addError(self, test, err)
-        tracebackLines = self._exc_info_to_string(err, test)
-        self.parent.write(
-            '%s%s\n' % (
-                ResponseUTTestErrored,
-                unicode((unicode(test), tracebackLines, test.id()))))
-        
-    def addSkip(self, test, reason):
-        """
-        Public method called if a test was skipped.
-        
-        @param test reference to the test object
-        @param reason reason for skipping the test (string)
-        """
-        TestResult.addSkip(self, test, reason)
-        self.parent.write(
-            '%s%s\n' % (
-                ResponseUTTestSkipped,
-                str((str(test), reason, test.id()))))
-        
-    def addExpectedFailure(self, test, err):
-        """
-        Public method called if a test failed expected.
-        
-        @param test reference to the test object
-        @param err error traceback
-        """
-        TestResult.addExpectedFailure(self, test, err)
-        tracebackLines = self._exc_info_to_string(err, test)
-        self.parent.write(
-            '%s%s\n' % (
-                ResponseUTTestFailedExpected,
-                str((str(test), tracebackLines, test.id()))))
-        
-    def addUnexpectedSuccess(self, test):
-        """
-        Public method called if a test succeeded expectedly.
-        
-        @param test reference to the test object
-        """
-        TestResult.addUnexpectedSuccess(self, test)
-        self.parent.write(
-            '%s%s\n' % (
-                ResponseUTTestSucceededUnexpected,
-                str((str(test), test.id()))))
-        
-    def startTest(self, test):
-        """
-        Public method called at the start of a test.
-        
-        @param test Reference to the test object
-        """
-        TestResult.startTest(self, test)
-        self.parent.write(
-            '%s%s\n' % (
-                ResponseUTStartTest,
-                unicode((unicode(test), test.shortDescription()))))
-
-    def stopTest(self, test):
-        """
-        Public method called at the end of a test.
-        
-        @param test Reference to the test object
-        """
-        TestResult.stopTest(self, test)
-        self.parent.write('%s\n' % ResponseUTStopTest)
-        
-        # ensure that pending input is processed
-        rrdy, wrdy, xrdy = select.select([self.parent.readstream], [], [],
-                                         0.01)
-
-        if self.parent.readstream in rrdy:
-            self.parent.readReady(self.parent.readstream.fileno())
-
-#
-# eflag: FileType = Python2
-# eflag: noqa = M601, M702
--- a/DebugClients/Python/DebugBase.py	Thu Sep 15 21:49:13 2016 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,895 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2002 - 2016 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the debug base class which based originally on bdb.
-"""
-
-import sys
-import os
-import types
-import atexit
-import inspect
-import ctypes
-import thread
-import time
-
-from DebugProtocol import ResponseClearWatch, ResponseClearBreak, \
-    ResponseLine, ResponseSyntax, ResponseException, CallTrace
-from BreakpointWatch import Breakpoint, Watch
-
-gRecursionLimit = 64
-
-
-def printerr(s):
-    """
-    Module function used for debugging the debug client.
-    
-    @param s data to be printed
-    """
-    sys.__stderr__.write('%s\n' % unicode(s))
-    sys.__stderr__.flush()
-
-
-def setRecursionLimit(limit):
-    """
-    Module function to set the recursion limit.
-    
-    @param limit recursion limit (integer)
-    """
-    global gRecursionLimit
-    gRecursionLimit = limit
-
-
-class DebugBase(object):
-    """
-    Class implementing base class of the debugger.
-
-    Provides methods for the 'owning' client to call to step etc.
-    """
-    # Don't thrust distutils.sysconfig.get_python_lib: possible case mismatch
-    #  on Windows
-    lib = os.path.dirname(inspect.__file__)
-    # tuple required because it's accessed a lot of times by startswith method
-    pathsToSkip = ('<', os.path.dirname(__file__), inspect.__file__[:-1])
-    filesToSkip = {}
-
-    # cache for fixed file names
-    _fnCache = {}
-
-    def __init__(self, dbgClient):
-        """
-        Constructor
-        
-        @param dbgClient the owning client
-        """
-        self._dbgClient = dbgClient
-        self._mainThread = 1
-        self.quitting = 0
-        
-        self.tracePythonLibs(0)
-        
-        # Special handling of a recursion error
-        self.skipFrames = 0
-        
-        self.__isBroken = False
-        self.cFrame = None
-        
-        # current frame we are at
-        self.currentFrame = None
-        
-        # frame that we are stepping in, can be different than currentFrame
-        self.stepFrame = None
-        
-        self.botframe = None
-        self.stopframe = None
-        self.returnframe = None
-        self.stop_everywhere = False
-        
-        # provide a hook to perform a hard breakpoint
-        # Use it like this:
-        # if hasattr(sys, 'breakpoint): sys.breakpoint()
-        sys.breakpoint = self.set_trace
-        
-        self.__recursionDepth = -1
-        self.setRecursionDepth(inspect.currentframe())
-        
-        # background task to periodicaly check for client interactions
-        self.eventPollFlag = False
-        self.timer = thread.start_new_thread(self.__eventPollTimer, ())
-
-    def __eventPollTimer(self):
-        """
-        Private method to set a flag every 0.5 s to check for new messages.
-        """
-        while True:
-            time.sleep(0.5)
-            self.eventPollFlag = True
-    
-    def getCurrentFrame(self):
-        """
-        Public method to return the current frame.
-        
-        @return the current frame
-        """
-        return self.currentFrame
-    
-    def getFrameLocals(self, frmnr=0):
-        """
-        Public method to return the locals dictionary of the current frame
-        or a frame below.
-        
-        @keyparam frmnr distance of frame to get locals dictionary of. 0 is
-            the current frame (int)
-        @return locals dictionary of the frame
-        """
-        f = self.currentFrame
-        while f is not None and frmnr > 0:
-            f = f.f_back
-            frmnr -= 1
-        return f.f_locals
-    
-    def storeFrameLocals(self, frmnr=0):
-        """
-        Public method to store the locals into the frame, so an access to
-        frame.f_locals returns the last data.
-        
-        @keyparam frmnr distance of frame to store locals dictionary to. 0 is
-            the current frame (int)
-        """
-        cf = self.currentFrame
-        while cf is not None and frmnr > 0:
-            cf = cf.f_back
-            frmnr -= 1
-        ctypes.pythonapi.PyFrame_LocalsToFast(
-            ctypes.py_object(cf),
-            ctypes.c_int(0))
-    
-    def step(self, traceMode):
-        """
-        Public method to perform a step operation in this thread.
-        
-        @param traceMode If it is non-zero, then the step is a step into,
-              otherwise it is a step over.
-        """
-        self.stepFrame = self.currentFrame
-        
-        if traceMode:
-            self.currentFrame = None
-            self.set_step()
-        else:
-            self.set_next(self.currentFrame)
-    
-    def stepOut(self):
-        """
-        Public method to perform a step out of the current call.
-        """
-        self.stepFrame = self.currentFrame
-        self.set_return(self.currentFrame)
-    
-    def go(self, special):
-        """
-        Public method to resume the thread.
-
-        It resumes the thread stopping only at breakpoints or exceptions.
-        
-        @param special flag indicating a special continue operation
-        """
-        self.currentFrame = None
-        self.set_continue(special)
-    
-    def setRecursionDepth(self, frame):
-        """
-        Public method to determine the current recursion depth.
-        
-        @param frame The current stack frame.
-        """
-        self.__recursionDepth = 0
-        while frame is not None:
-            self.__recursionDepth += 1
-            frame = frame.f_back
-    
-    def profileWithRecursion(self, frame, event, arg):
-        """
-        Public method used to trace some stuff independent of the debugger
-        trace function.
-        
-        @param frame current stack frame
-        @type frame object
-        @param event trace event
-        @type str
-        @param arg arguments
-        @type depends on the previous event parameter
-        @exception RuntimeError raised to indicate too many recursions
-        """
-        if event == 'return':
-            self.cFrame = frame.f_back
-            self.__recursionDepth -= 1
-            if self._dbgClient.callTraceEnabled:
-                self.__sendCallTrace(event, frame, self.cFrame)
-        elif event == 'call':
-            if self._dbgClient.callTraceEnabled:
-                self.__sendCallTrace(event, self.cFrame, frame)
-            self.cFrame = frame
-            self.__recursionDepth += 1
-            if self.__recursionDepth > gRecursionLimit:
-                raise RuntimeError(
-                    'maximum recursion depth exceeded\n'
-                    '(offending frame is two down the stack)')
-    
-    def profile(self, frame, event, arg):
-        """
-        Public method used to trace some stuff independent of the debugger
-        trace function.
-        
-        @param frame current stack frame
-        @type frame object
-        @param event trace event
-        @type str
-        @param arg arguments
-        @type depends on the previous event parameter
-        """
-        if event == 'return':
-            self.__sendCallTrace(event, frame, frame.f_back)
-        elif event == 'call':
-            self.__sendCallTrace(event, frame.f_back, frame)
-    
-    def __sendCallTrace(self, event, fromFrame, toFrame):
-        """
-        Private method to send a call/return trace.
-        
-        @param event trace event
-        @type str
-        @param fromFrame originating frame
-        @type frame object
-        @param toFrame destination frame
-        @type frame object
-        """
-        if not self.__skipFrame(fromFrame) and not self.__skipFrame(toFrame):
-            fromStr = "%s:%s:%s" % (
-                self._dbgClient.absPath(self.fix_frame_filename(fromFrame)),
-                fromFrame.f_lineno,
-                fromFrame.f_code.co_name)
-            toStr = "%s:%s:%s" % (
-                self._dbgClient.absPath(self.fix_frame_filename(toFrame)),
-                toFrame.f_lineno,
-                toFrame.f_code.co_name)
-            self._dbgClient.write("%s%s@@%s@@%s\n" % (
-                CallTrace, event[0], fromStr, toStr))
-    
-    def trace_dispatch(self, frame, event, arg):
-        """
-        Public method reimplemented from bdb.py to do some special things.
-        
-        This specialty is to check the connection to the debug server
-        for new events (i.e. new breakpoints) while we are going through
-        the code.
-        
-        @param frame The current stack frame
-        @type frame object
-        @param event The trace event
-        @type str
-        @param arg The arguments
-        @type depends on the previous event parameter
-        @return local trace function
-        @rtype trace function or None
-        @exception SystemExit
-        """
-        # give the client a chance to push through new break points.
-        if self.eventPollFlag:
-            self._dbgClient.eventPoll()
-            self.eventPollFlag = False
-            
-            if self.quitting:
-                raise SystemExit
-        
-        if event == 'line':
-            if self.stop_here(frame) or self.break_here(frame):
-                self.user_line(frame)
-            return
-        
-        if event == 'call':
-            if self.botframe is None and frame.f_lineno > 1:
-                self.botframe = frame.f_back
-                frame.f_trace = self.trace_dispatch
-                self._dbgClient.mainFrame = frame
-                
-                self.user_line(frame)
-                return self.trace_dispatch
-            
-            if not (self.stop_here(frame) or
-                    self.__checkBreakInFrame(frame) or
-                    Watch.watches != []):
-                # No need to trace this function
-                return
-            return self.trace_dispatch
-        
-        if event == 'return':
-            # The program has finished if we have just left the first frame
-            if (self.stop_here(frame) and
-                    frame == self._dbgClient.mainFrame and
-                    self._mainThread):
-                atexit._run_exitfuncs()
-                self._dbgClient.progTerminated(arg)
-            
-            if self.quitting and not self._dbgClient.passive:
-                raise SystemExit
-            return
-        
-        if event == 'exception':
-            if not self.__skipFrame(frame):
-                self.user_exception(frame, arg)
-            return
-
-        if event == 'c_call':
-            return
-        if event == 'c_exception':
-            return
-        if event == 'c_return':
-            return
-        print 'DebugBase.trace_dispatch: unknown debugging event:', repr(event)  # __IGNORE_WARNING__
-        return self.trace_dispatch
-
-    def set_trace(self, frame=None):
-        """
-        Public method to start debugging from 'frame'.
-
-        If frame is not specified, debugging starts from caller's frame.
-        Because of jump optimizations it's not possible to use sys.breakpoint()
-        as last instruction in a function or method.
-        
-        @keyparam frame frame to start debugging from
-        @type frame object
-        """
-        if frame is None:
-            frame = sys._getframe().f_back  # Skip set_trace method
-        
-        frame.f_trace = self.trace_dispatch
-        while frame is not None:
-            # stop at erics debugger frame
-            if frame.f_back.f_code == self._dbgClient.handleLine.func_code:
-                frame.f_trace = self.trace_dispatch
-                self.botframe = frame
-                self._dbgClient.mainFrame = frame
-                break
-            
-            frame = frame.f_back
-        
-        self.stop_everywhere = True
-        sys.settrace(self.trace_dispatch)
-        sys.setprofile(self._dbgClient.callTraceEnabled)
-    
-    def run(self, cmd, globals=None, locals=None):
-        """
-        Public method to start a given command under debugger control.
-        
-        @param cmd command / code to execute under debugger control
-        @type str or CodeType
-        @keyparam globals dictionary of global variables for cmd
-        @type dict
-        @keyparam locals  dictionary of local variables for cmd
-        @type dict
-        """
-        if globals is None:
-            import __main__
-            globals = __main__.__dict__
-        
-        if locals is None:
-            locals = globals
-        
-        sys.settrace(self.trace_dispatch)
-        if not isinstance(cmd, types.CodeType):
-            cmd += '\n'
-        
-        try:
-            exec cmd in globals, locals
-        except SystemExit:
-            pass
-        finally:
-            self.quitting = 1
-            sys.settrace(None)
-
-    def _set_stopinfo(self, stopframe, returnframe):
-        """
-        Protected method to update the frame pointers.
-        
-        @param stopframe the frame object where to stop
-        @type frame object
-        @param returnframe the frame object where to stop on a function return
-        @type frame object
-        """
-        self.stopframe = stopframe
-        self.returnframe = returnframe
-        self.stop_everywhere = False
-
-    def set_continue(self, special):
-        """
-        Public method to stop only on next breakpoint.
-        
-        @param special flag indicating a special continue operation
-        @type bool
-        """
-        # Here we only set a new stop frame if it is a normal continue.
-        if not special:
-            self._set_stopinfo(self.botframe, None)
-        
-        # Disable tracing if not started in debug mode
-        if not self._dbgClient.debugging:
-            sys.settrace(None)
-            sys.setprofile(None)
-
-    def set_step(self):
-        """
-        Public method to stop after one line of code.
-        """
-        self._set_stopinfo(None, None)
-        self.stop_everywhere = True
-
-    def set_next(self, frame):
-        """
-        Public method to stop on the next line in or below the given frame.
-        
-        @param frame the frame object
-        @type frame object
-        """
-        self._set_stopinfo(frame, frame.f_back)
-        frame.f_back.f_trace = self.trace_dispatch
-        frame.f_trace = self.trace_dispatch
-
-    def set_return(self, frame):
-        """
-        Public method to stop when returning from the given frame.
-        
-        @param frame the frame object
-        @type frame object
-        """
-        self._set_stopinfo(None, frame.f_back)
-
-    def set_quit(self):
-        """
-        Public method to quit.
-        
-        Disables the trace functions and resets all frame pointer.
-        """
-        self.currentFrame = None
-        sys.setprofile(None)
-        sys.settrace(None)
-        self.stopframe = None
-        self.returnframe = None
-        self.quitting = 1
-    
-    def fix_frame_filename(self, frame):
-        """
-        Public method used to fixup the filename for a given frame.
-        
-        The logic employed here is that if a module was loaded
-        from a .pyc file, then the correct .py to operate with
-        should be in the same path as the .pyc. The reason this
-        logic is needed is that when a .pyc file is generated, the
-        filename embedded and thus what is readable in the code object
-        of the frame object is the fully qualified filepath when the
-        pyc is generated. If files are moved from machine to machine
-        this can break debugging as the .pyc will refer to the .py
-        on the original machine. Another case might be sharing
-        code over a network... This logic deals with that.
-        
-        @param frame the frame object
-        @type frame object
-        @return fixed up file name
-        @rtype str
-        """
-        # get module name from __file__
-        fn = frame.f_globals.get('__file__')
-        try:
-            return self._fnCache[fn]
-        except KeyError:
-            if fn and fn != frame.f_code.co_filename:
-                absFilename = os.path.abspath(fn)
-                if absFilename.endswith(('.pyc', '.pyo')):
-                    fixedName = absFilename[:-1]
-                    if not os.path.exists(fixedName):
-                        fixedName = absFilename
-                else:
-                    fixedName = absFilename
-            else:
-                fixedName = frame.f_code.co_filename
-            # update cache
-            self._fnCache[fn] = fixedName
-            return fixedName
-
-    def __checkBreakInFrame(self, frame):
-        """
-        Private method to check if the function / method has a line number
-        which is a breakpoint.
-        
-        @param frame the frame object
-        @type frame object
-        @return Flag indicating a function / method with breakpoint
-        @rtype bool
-        """
-        try:
-            return Breakpoint.breakInFrameCache[
-                frame.f_globals.get('__file__'),
-                frame.f_code.co_firstlineno]
-        except KeyError:
-            filename = self.fix_frame_filename(frame)
-            if filename not in Breakpoint.breakInFile:
-                Breakpoint.breakInFrameCache[
-                    frame.f_globals.get('__file__'),
-                    frame.f_code.co_firstlineno] = False
-                return False
-            lineNo = frame.f_code.co_firstlineno
-            lineNumbers = [lineNo]
-            # No need to handle special case if a lot of lines between
-            # (e.g. closure), because the additional lines won't cause a bp
-            for co_lno in frame.f_code.co_lnotab[1::2]:
-                lineNo += ord(co_lno)
-                lineNumbers.append(lineNo)
-            
-            for bp in Breakpoint.breakInFile[filename]:
-                if bp in lineNumbers:
-                    Breakpoint.breakInFrameCache[
-                        frame.f_globals.get('__file__'),
-                        frame.f_code.co_firstlineno] = True
-                    return True
-            Breakpoint.breakInFrameCache[
-                frame.f_globals.get('__file__'),
-                frame.f_code.co_firstlineno] = False
-            return False
-    
-    def break_here(self, frame):
-        """
-        Public method reimplemented from bdb.py to fix the filename from the
-        frame.
-        
-        See fix_frame_filename for more info.
-        
-        @param frame the frame object
-        @type frame object
-        @return flag indicating the break status
-        @rtype bool
-        """
-        filename = self.fix_frame_filename(frame)
-        if (filename, frame.f_lineno) in Breakpoint.breaks:
-            bp, flag = Breakpoint.effectiveBreak(
-                filename, frame.f_lineno, frame)
-            if bp:
-                # flag says ok to delete temp. bp
-                if flag and bp.temporary:
-                    self.__do_clearBreak(filename, frame.f_lineno)
-                return True
-        
-        if Watch.watches != []:
-            bp, flag = Watch.effectiveWatch(frame)
-            if bp:
-                # flag says ok to delete temp. watch
-                if flag and bp.temporary:
-                    self.__do_clearWatch(bp.cond)
-                return True
-        
-        return False
-
-    def __do_clearBreak(self, filename, lineno):
-        """
-        Private method called to clear a temporary breakpoint.
-        
-        @param filename name of the file the bp belongs to
-        @type str
-        @param lineno linenumber of the bp
-        @type int
-        """
-        Breakpoint.clear_break(filename, lineno)
-        self._dbgClient.write('%s%s,%d\n' % (ResponseClearBreak, filename,
-                                             lineno))
-
-    def __do_clearWatch(self, cond):
-        """
-        Private method called to clear a temporary watch expression.
-        
-        @param cond expression of the watch expression to be cleared
-        @type str
-        """
-        Watch.clear_watch(cond)
-        self._dbgClient.write('%s%s\n' % (ResponseClearWatch, cond))
-
-    def getStack(self):
-        """
-        Public method to get the stack.
-        
-        @return list of lists with file name (string), line number (integer)
-            and function name (string)
-        """
-        fr = self.cFrame
-        stack = []
-        while fr is not None:
-            fname = self._dbgClient.absPath(self.fix_frame_filename(fr))
-            if not fname.startswith("<"):
-                fline = fr.f_lineno
-                ffunc = fr.f_code.co_name
-                
-                if ffunc == '?':
-                    ffunc = ''
-            
-                if ffunc and not ffunc.startswith("<"):
-                    argInfo = inspect.getargvalues(fr)
-                    try:
-                        fargs = inspect.formatargvalues(argInfo[0], argInfo[1],
-                                                        argInfo[2], argInfo[3])
-                    except Exception:
-                        fargs = ""
-                else:
-                    fargs = ""
-                
-            stack.append([fname, fline, ffunc, fargs])
-            
-            if fr == self._dbgClient.mainFrame:
-                fr = None
-            else:
-                fr = fr.f_back
-        
-        return stack
-    
-    def user_line(self, frame):
-        """
-        Public method reimplemented to handle the program about to execute a
-        particular line.
-        
-        @param frame the frame object
-        """
-        # We never stop on line 0.
-        if frame.f_lineno == 0:
-            return
-        
-        self.currentFrame = frame
-        
-        fr = frame
-        stack = []
-        while fr is not None:
-            # Reset the trace function so we can be sure
-            # to trace all functions up the stack... This gets around
-            # problems where an exception/breakpoint has occurred
-            # but we had disabled tracing along the way via a None
-            # return from dispatch_call
-            fr.f_trace = self.trace_dispatch
-            fname = self._dbgClient.absPath(self.fix_frame_filename(fr))
-            if not fname.startswith("<"):
-                fline = fr.f_lineno
-                ffunc = fr.f_code.co_name
-                
-                if ffunc == '?':
-                    ffunc = ''
-                
-                if ffunc and not ffunc.startswith("<"):
-                    argInfo = inspect.getargvalues(fr)
-                    try:
-                        fargs = inspect.formatargvalues(argInfo[0], argInfo[1],
-                                                        argInfo[2], argInfo[3])
-                    except Exception:
-                        fargs = ""
-                else:
-                    fargs = ""
-                
-            stack.append([fname, fline, ffunc, fargs])
-            
-            if fr == self._dbgClient.mainFrame:
-                fr = None
-            else:
-                fr = fr.f_back
-        
-        self.__isBroken = True
-        
-        self._dbgClient.write('%s%s\n' % (ResponseLine, unicode(stack)))
-        self._dbgClient.eventLoop()
-        
-        self.__isBroken = False
-
-    def user_exception(self, frame, (exctype, excval, exctb), unhandled=0):
-        """
-        Public method reimplemented to report an exception to the debug server.
-        
-        @param frame the frame object
-        @type frame object
-        @param exctype the type of the exception
-        @type Exception
-        @param excval data about the exception
-        @type excval object
-        @param exctb traceback for the exception
-        @type traceback frame object
-        @param unhandled flag indicating an uncaught exception
-        @type int
-        """
-        if exctype in [GeneratorExit, StopIteration]:
-            # ignore these
-            return
-        
-        if exctype == SystemExit:
-            atexit._run_exitfuncs()
-            if excval is None:
-                excval = 0
-            elif isinstance(excval, (unicode, str)):
-                self._dbgClient.write(excval)
-                excval = 1
-            if isinstance(excval, int):
-                self._dbgClient.progTerminated(excval)
-            else:
-                self._dbgClient.progTerminated(excval.code)
-            return
-        
-        if exctype in [SyntaxError, IndentationError]:
-            try:
-                message, (filename, linenr, charnr, text) = excval
-            except ValueError:
-                exclist = []
-                realSyntaxError = True
-            else:
-                exclist = [message, [filename, linenr, charnr]]
-                realSyntaxError = os.path.exists(filename)
-            
-            if realSyntaxError:
-                self._dbgClient.write("%s%s\n" % (ResponseSyntax,
-                                                  unicode(exclist)))
-                self._dbgClient.eventLoop()
-                return
-        
-        self.skipFrames = 0
-        if (exctype == RuntimeError and
-                str(excval).startswith('maximum recursion depth exceeded')):
-            excval = 'maximum recursion depth exceeded'
-            depth = 0
-            tb = exctb
-            while tb:
-                tb = tb.tb_next
-                
-                if (tb and tb.tb_frame.f_code.co_name == 'trace_dispatch' and
-                        __file__.startswith(tb.tb_frame.f_code.co_filename)):
-                    depth = 1
-                self.skipFrames += depth
-        
-        if type(exctype) in [types.ClassType,   # Python up to 2.4
-                             types.TypeType]:   # Python 2.5+
-            exctype = exctype.__name__
-        
-        if excval is None:
-            excval = ''
-        
-        if unhandled:
-            exctypetxt = "unhandled %s" % unicode(exctype)
-        else:
-            exctypetxt = unicode(exctype)
-        
-        try:
-            exclist = [exctypetxt,
-                       unicode(excval).encode(self._dbgClient.getCoding())]
-        except TypeError:
-            exclist = [exctypetxt, str(excval)]
-        
-        if exctb:
-            frlist = self.__extract_stack(exctb)
-            frlist.reverse()
-            
-            self.currentFrame = frlist[0]
-            
-            for fr in frlist[self.skipFrames:]:
-                filename = self._dbgClient.absPath(self.fix_frame_filename(fr))
-                
-                if os.path.basename(filename).startswith("DebugClientBase"):
-                    break
-                
-                linenr = fr.f_lineno
-                ffunc = fr.f_code.co_name
-                
-                if ffunc == '?':
-                    ffunc = ''
-                
-                if ffunc and not ffunc.startswith("<"):
-                    argInfo = inspect.getargvalues(fr)
-                    try:
-                        fargs = inspect.formatargvalues(argInfo[0], argInfo[1],
-                                                        argInfo[2], argInfo[3])
-                    except Exception:
-                        fargs = ""
-                else:
-                    fargs = ""
-                
-                exclist.append([filename, linenr, ffunc, fargs])
-        
-        self._dbgClient.write("%s%s\n" % (ResponseException, unicode(exclist)))
-        
-        if exctb is None:
-            return
-        
-        self._dbgClient.eventLoop()
-        self.skipFrames = 0
-    
-    def __extract_stack(self, exctb):
-        """
-        Private member to return a list of stack frames.
-        
-        @param exctb exception traceback
-        @return list of stack frames
-        """
-        tb = exctb
-        stack = []
-        while tb is not None:
-            stack.append(tb.tb_frame)
-            tb = tb.tb_next
-        tb = None
-        return stack
-
-    def stop_here(self, frame):
-        """
-        Public method reimplemented to filter out debugger files.
-        
-        Tracing is turned off for files that are part of the
-        debugger that are called from the application being debugged.
-        
-        @param frame the frame object
-        @type frame object
-        @return flag indicating whether the debugger should stop here
-        @rtype bool
-        """
-        if self.__skipFrame(frame):
-            return False
-        
-        return (self.stop_everywhere or
-                frame is self.stopframe or
-                frame is self.returnframe or
-                frame is self.botframe)
-
-    def tracePythonLibs(self, enable):
-        """
-        Public method to update the settings to trace into Python libraries.
-        
-        @param enable flag to debug into Python libraries
-        @type int
-        """
-        pathsToSkip = list(self.pathsToSkip)
-        # don't trace into Python library?
-        if enable:
-            pathsToSkip = [x for x in pathsToSkip if not x.endswith(
-                ("site-packages", "dist-packages", self.lib))]
-        else:
-            pathsToSkip.append(self.lib)
-            localLib = [x for x in sys.path if x.endswith(("site-packages",
-                        "dist-packages")) and not x.startswith(self.lib)]
-            pathsToSkip.extend(localLib)
-        
-        self.pathsToSkip = tuple(pathsToSkip)
-
-    def __skipFrame(self, frame):
-        """
-        Private method to filter out debugger files.
-        
-        Tracing is turned off for files that are part of the
-        debugger that are called from the application being debugged.
-        
-        @param frame the frame object
-        @type frame object
-        @return flag indicating whether the debugger should skip this frame
-        @rtype bool
-        """
-        try:
-            return self.filesToSkip[frame.f_code.co_filename]
-        except KeyError:
-            ret = frame.f_code.co_filename.startswith(self.pathsToSkip)
-            self.filesToSkip[frame.f_code.co_filename] = ret
-            return ret
-        except AttributeError:
-            # if frame is None
-            return True
-    
-    def isBroken(self):
-        """
-        Public method to return the broken state of the debugger.
-        
-        @return flag indicating the broken state
-        @rtype bool
-        """
-        return self.__isBroken
-
-
-#
-# eflag: FileType = Python2
-# eflag: noqa = M601, M702
--- a/DebugClients/Python/DebugClient.py	Thu Sep 15 21:49:13 2016 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2003 - 2016 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a Qt free version of the debug client.
-"""
-
-from AsyncIO import AsyncIO
-from DebugBase import DebugBase
-import DebugClientBase
-
-
-class DebugClient(DebugClientBase.DebugClientBase, AsyncIO, DebugBase):
-    """
-    Class implementing the client side of the debugger.
-    
-    This variant of the debugger implements the standard debugger client
-    by subclassing all relevant base classes.
-    """
-    def __init__(self):
-        """
-        Constructor
-        """
-        AsyncIO.__init__(self)
-        
-        DebugClientBase.DebugClientBase.__init__(self)
-        
-        DebugBase.__init__(self, self)
-        
-        self.variant = 'Standard'
-
-# We are normally called by the debugger to execute directly.
-
-if __name__ == '__main__':
-    debugClient = DebugClient()
-    debugClient.main()
-
-#
-# eflag: FileType = Python2
-# eflag: noqa = M601, M702
--- a/DebugClients/Python/DebugClientBase.py	Thu Sep 15 21:49:13 2016 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2211 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2002 - 2016 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a debug client base class.
-"""
-
-import sys
-import socket
-import select
-import codeop
-import traceback
-import os
-import imp
-import re
-import atexit
-import signal
-import inspect
-
-
-import DebugProtocol
-import DebugClientCapabilities
-from DebugBase import setRecursionLimit, printerr   # __IGNORE_WARNING__
-from AsyncFile import AsyncFile, AsyncPendingWrite
-from DebugConfig import ConfigVarTypeStrings
-from FlexCompleter import Completer
-from BreakpointWatch import Breakpoint, Watch
-
-
-DebugClientInstance = None
-
-###############################################################################
-
-
-def DebugClientRawInput(prompt="", echo=1):
-    """
-    Replacement for the standard raw_input builtin.
-    
-    This function works with the split debugger.
-    
-    @param prompt prompt to be shown. (string)
-    @param echo flag indicating echoing of the input (boolean)
-    @return result of the raw_input() call
-    """
-    if DebugClientInstance is None or DebugClientInstance.redirect == 0:
-        return DebugClientOrigRawInput(prompt)
-
-    return DebugClientInstance.raw_input(prompt, echo)
-
-# Use our own raw_input().
-try:
-    DebugClientOrigRawInput = __builtins__.__dict__['raw_input']
-    __builtins__.__dict__['raw_input'] = DebugClientRawInput
-except (AttributeError, KeyError):
-    import __main__
-    DebugClientOrigRawInput = __main__.__builtins__.__dict__['raw_input']
-    __main__.__builtins__.__dict__['raw_input'] = DebugClientRawInput
-
-###############################################################################
-
-
-def DebugClientInput(prompt=""):
-    """
-    Replacement for the standard input builtin.
-    
-    This function works with the split debugger.
-    
-    @param prompt prompt to be shown (string)
-    @return result of the input() call
-    """
-    if DebugClientInstance is None or DebugClientInstance.redirect == 0:
-        return DebugClientOrigInput(prompt)
-
-    return DebugClientInstance.input(prompt)
-
-# Use our own input().
-try:
-    DebugClientOrigInput = __builtins__.__dict__['input']
-    __builtins__.__dict__['input'] = DebugClientInput
-except (AttributeError, KeyError):
-    import __main__
-    DebugClientOrigInput = __main__.__builtins__.__dict__['input']
-    __main__.__builtins__.__dict__['input'] = DebugClientInput
-
-###############################################################################
-
-
-def DebugClientFork():
-    """
-    Replacement for the standard os.fork().
-    
-    @return result of the fork() call
-    """
-    if DebugClientInstance is None:
-        return DebugClientOrigFork()
-    
-    return DebugClientInstance.fork()
-
-# use our own fork().
-if 'fork' in dir(os):
-    DebugClientOrigFork = os.fork
-    os.fork = DebugClientFork
-
-###############################################################################
-
-
-def DebugClientClose(fd):
-    """
-    Replacement for the standard os.close(fd).
-    
-    @param fd open file descriptor to be closed (integer)
-    """
-    if DebugClientInstance is None:
-        DebugClientOrigClose(fd)
-    
-    DebugClientInstance.close(fd)
-
-# use our own close().
-if 'close' in dir(os):
-    DebugClientOrigClose = os.close
-    os.close = DebugClientClose
-
-###############################################################################
-
-
-def DebugClientSetRecursionLimit(limit):
-    """
-    Replacement for the standard sys.setrecursionlimit(limit).
-    
-    @param limit recursion limit (integer)
-    """
-    rl = max(limit, 64)
-    setRecursionLimit(rl)
-    DebugClientOrigSetRecursionLimit(rl + 64)
-
-# use our own setrecursionlimit().
-if 'setrecursionlimit' in dir(sys):
-    DebugClientOrigSetRecursionLimit = sys.setrecursionlimit
-    sys.setrecursionlimit = DebugClientSetRecursionLimit
-    DebugClientSetRecursionLimit(sys.getrecursionlimit())
-
-###############################################################################
-
-
-class DebugClientBase(object):
-    """
-    Class implementing the client side of the debugger.
-
-    It provides access to the Python interpeter from a debugger running in
-    another process whether or not the Qt event loop is running.
-
-    The protocol between the debugger and the client assumes that there will be
-    a single source of debugger commands and a single source of Python
-    statements.  Commands and statement are always exactly one line and may be
-    interspersed.
-
-    The protocol is as follows.  First the client opens a connection to the
-    debugger and then sends a series of one line commands.  A command is either
-    &gt;Load&lt;, &gt;Step&lt;, &gt;StepInto&lt;, ... or a Python statement.
-    See DebugProtocol.py for a listing of valid protocol tokens.
-
-    A Python statement consists of the statement to execute, followed (in a
-    separate line) by &gt;OK?&lt;. If the statement was incomplete then the
-    response is &gt;Continue&lt;. If there was an exception then the response
-    is &gt;Exception&lt;. Otherwise the response is &gt;OK&lt;. The reason
-    for the &gt;OK?&lt; part is to provide a sentinal (ie. the responding
-    &gt;OK&lt;) after any possible output as a result of executing the command.
-
-    The client may send any other lines at any other time which should be
-    interpreted as program output.
-
-    If the debugger closes the session there is no response from the client.
-    The client may close the session at any time as a result of the script
-    being debugged closing or crashing.
-    
-    <b>Note</b>: This class is meant to be subclassed by individual
-    DebugClient classes. Do not instantiate it directly.
-    """
-    clientCapabilities = DebugClientCapabilities.HasAll
-    
-    def __init__(self):
-        """
-        Constructor
-        """
-        self.breakpoints = {}
-        self.redirect = 1
-
-        # The next couple of members are needed for the threaded version.
-        # For this base class they contain static values for the non threaded
-        # debugger
-        
-        # dictionary of all threads running
-        self.threads = {}
-        
-        # the "current" thread, basically the thread we are at a breakpoint
-        # for.
-        self.currentThread = self
-        
-        # special objects representing the main scripts thread and frame
-        self.mainThread = self
-        self.mainFrame = None
-        self.framenr = 0
-        
-        # The context to run the debugged program in.
-        self.debugMod = imp.new_module('__main__')
-        self.debugMod.__dict__['__builtins__'] = __builtins__
-
-        # The list of complete lines to execute.
-        self.buffer = ''
-        
-        # The list of regexp objects to filter variables against
-        self.globalsFilterObjects = []
-        self.localsFilterObjects = []
-
-        self.pendingResponse = DebugProtocol.ResponseOK
-        self._fncache = {}
-        self.dircache = []
-        self.inRawMode = 0
-        self.mainProcStr = None     # used for the passive mode
-        self.passive = 0            # used to indicate the passive mode
-        self.running = None
-        self.test = None
-        self.debugging = 0
-        
-        self.fork_auto = False
-        self.fork_child = False
-
-        self.readstream = None
-        self.writestream = None
-        self.errorstream = None
-        self.pollingDisabled = False
-        
-        self.callTraceEnabled = None
-        
-        self.skipdirs = sys.path[:]
-        
-        self.variant = 'You should not see this'
-        
-        # commandline completion stuff
-        self.complete = Completer(self.debugMod.__dict__).complete
-        
-        if sys.hexversion < 0x2020000:
-            self.compile_command = codeop.compile_command
-        else:
-            self.compile_command = codeop.CommandCompiler()
-        
-        self.coding_re = re.compile(r"coding[:=]\s*([-\w_.]+)")
-        self.defaultCoding = 'utf-8'
-        self.__coding = self.defaultCoding
-        self.noencoding = False
-
-    def getCoding(self):
-        """
-        Public method to return the current coding.
-        
-        @return codec name (string)
-        """
-        return self.__coding
-        
-    def __setCoding(self, filename):
-        """
-        Private method to set the coding used by a python file.
-        
-        @param filename name of the file to inspect (string)
-        """
-        if self.noencoding:
-            self.__coding = sys.getdefaultencoding()
-        else:
-            default = 'latin-1'
-            try:
-                f = open(filename, 'rb')
-                # read the first and second line
-                text = f.readline()
-                text = "%s%s" % (text, f.readline())
-                f.close()
-            except IOError:
-                self.__coding = default
-                return
-            
-            for l in text.splitlines():
-                m = self.coding_re.search(l)
-                if m:
-                    self.__coding = m.group(1)
-                    return
-            self.__coding = default
-
-    def attachThread(self, target=None, args=None, kwargs=None, mainThread=0):
-        """
-        Public method to setup a thread for DebugClient to debug.
-        
-        If mainThread is non-zero, then we are attaching to the already
-        started mainthread of the app and the rest of the args are ignored.
-        
-        @param target the start function of the target thread (i.e. the user
-            code)
-        @param args arguments to pass to target
-        @param kwargs keyword arguments to pass to target
-        @param mainThread non-zero, if we are attaching to the already
-              started mainthread of the app
-        """
-        pass
-    
-    def __dumpThreadList(self):
-        """
-        Private method to send the list of threads.
-        """
-        threadList = []
-        if self.threads and self.currentThread:
-            # indication for the threaded debugger
-            currentId = self.currentThread.get_ident()
-            for t in self.threads.values():
-                d = {}
-                d["id"] = t.get_ident()
-                d["name"] = t.get_name()
-                d["broken"] = t.isBroken()
-                threadList.append(d)
-        else:
-            currentId = -1
-            d = {}
-            d["id"] = -1
-            d["name"] = "MainThread"
-            if hasattr(self, "isBroken"):
-                d["broken"] = self.isBroken()
-            else:
-                d["broken"] = False
-            threadList.append(d)
-        
-        self.write('%s%s\n' % (DebugProtocol.ResponseThreadList,
-                               unicode((currentId, threadList))))
-    
-    def raw_input(self, prompt, echo):
-        """
-        Public method to implement raw_input() using the event loop.
-        
-        @param prompt the prompt to be shown (string)
-        @param echo Flag indicating echoing of the input (boolean)
-        @return the entered string
-        """
-        self.write("%s%s\n" % (DebugProtocol.ResponseRaw,
-                               unicode((prompt, echo))))
-        self.inRawMode = 1
-        self.eventLoop(True)
-        return self.rawLine
-
-    def input(self, prompt):
-        """
-        Public method to implement input() using the event loop.
-        
-        @param prompt the prompt to be shown (string)
-        @return the entered string evaluated as a Python expresion
-        """
-        return eval(self.raw_input(prompt, 1))
-        
-    def __exceptionRaised(self):
-        """
-        Private method called in the case of an exception.
-        
-        It ensures that the debug server is informed of the raised exception.
-        """
-        self.pendingResponse = DebugProtocol.ResponseException
-    
-    def sessionClose(self, exit=1):
-        """
-        Public method to close the session with the debugger and optionally
-        terminate.
-        
-        @param exit flag indicating to terminate (boolean)
-        """
-        try:
-            self.set_quit()
-        except Exception:
-            pass
-
-        # clean up asyncio.
-        self.disconnect()
-        self.debugging = 0
-        
-        # make sure we close down our end of the socket
-        # might be overkill as normally stdin, stdout and stderr
-        # SHOULD be closed on exit, but it does not hurt to do it here
-        self.readstream.close(1)
-        self.writestream.close(1)
-        self.errorstream.close(1)
-
-        if exit:
-            # Ok, go away.
-            sys.exit()
-
-    def handleLine(self, line):
-        """
-        Public method to handle the receipt of a complete line.
-
-        It first looks for a valid protocol token at the start of the line.
-        Thereafter it trys to execute the lines accumulated so far.
-        
-        @param line the received line
-        """
-        # Remove any newline.
-        if line[-1] == '\n':
-            line = line[:-1]
-
-##        printerr(line)          ##debug
-
-        eoc = line.find('<')
-
-        if eoc >= 0 and line[0] == '>':
-            # Get the command part and any argument.
-            cmd = line[:eoc + 1]
-            arg = line[eoc + 1:]
-            
-            if cmd == DebugProtocol.RequestVariables:
-                frmnr, scope, filter = eval(arg)
-                self.__dumpVariables(int(frmnr), int(scope), filter)
-                return
-            
-            if cmd == DebugProtocol.RequestVariable:
-                var, frmnr, scope, filter = eval(arg)
-                self.__dumpVariable(var, int(frmnr), int(scope), filter)
-                return
-            
-            if cmd == DebugProtocol.RequestThreadList:
-                self.__dumpThreadList()
-                return
-            
-            if cmd == DebugProtocol.RequestThreadSet:
-                tid = eval(arg)
-                if tid in self.threads:
-                    self.setCurrentThread(tid)
-                    self.write(DebugProtocol.ResponseThreadSet + '\n')
-                    stack = self.currentThread.getStack()
-                    self.write('%s%s\n' % (DebugProtocol.ResponseStack,
-                                           unicode(stack)))
-                return
-            
-            if cmd == DebugProtocol.RequestStep:
-                self.currentThread.step(1)
-                self.eventExit = 1
-                return
-
-            if cmd == DebugProtocol.RequestStepOver:
-                self.currentThread.step(0)
-                self.eventExit = 1
-                return
-            
-            if cmd == DebugProtocol.RequestStepOut:
-                self.currentThread.stepOut()
-                self.eventExit = 1
-                return
-            
-            if cmd == DebugProtocol.RequestStepQuit:
-                if self.passive:
-                    self.progTerminated(42)
-                else:
-                    self.set_quit()
-                    self.eventExit = 1
-                return
-
-            if cmd == DebugProtocol.RequestContinue:
-                special = int(arg)
-                self.currentThread.go(special)
-                self.eventExit = 1
-                return
-
-            if cmd == DebugProtocol.RequestOK:
-                self.write(self.pendingResponse + '\n')
-                self.pendingResponse = DebugProtocol.ResponseOK
-                return
-
-            if cmd == DebugProtocol.RequestCallTrace:
-                if arg.strip().lower() == "on":
-                    callTraceEnabled = self.profile
-                else:
-                    callTraceEnabled = None
-                if self.debugging:
-                    sys.setprofile(callTraceEnabled)
-                else:
-                    # remember for later
-                    self.callTraceEnabled = callTraceEnabled
-                    
-                return
-            
-            if cmd == DebugProtocol.RequestEnv:
-                env = eval(arg)
-                for key, value in env.items():
-                    if key.endswith("+"):
-                        if key[:-1] in os.environ:
-                            os.environ[key[:-1]] += value
-                        else:
-                            os.environ[key[:-1]] = value
-                    else:
-                        os.environ[key] = value
-                return
-
-            if cmd == DebugProtocol.RequestLoad:
-                self._fncache = {}
-                self.dircache = []
-                sys.argv = []
-                wd, fn, args, tracePython = arg.split('|')
-                fn = fn.encode(sys.getfilesystemencoding())
-                self.__setCoding(fn)
-                sys.argv.append(fn)
-                sys.argv.extend(eval(args))
-                sys.path = self.__getSysPath(os.path.dirname(sys.argv[0]))
-                if wd == '':
-                    os.chdir(sys.path[1])
-                else:
-                    os.chdir(wd)
-                self.running = sys.argv[0]
-                self.mainFrame = None
-                self.inRawMode = 0
-                self.debugging = 1
-                
-                self.threads.clear()
-                self.attachThread(mainThread=1)
-                
-                # set the system exception handling function to ensure, that
-                # we report on all unhandled exceptions
-                sys.excepthook = self.__unhandled_exception
-                self.__interceptSignals()
-                
-                # clear all old breakpoints, they'll get set after we have
-                # started
-                Breakpoint.clear_all_breaks()
-                Watch.clear_all_watches()
-                
-                self.mainThread.tracePythonLibs(int(tracePython))
-                
-                # This will eventually enter a local event loop.
-                # Note the use of backquotes to cause a repr of self.running.
-                # The need for this is on Windows os where backslash is the
-                # path separator. They will get inadvertantly stripped away
-                # during the eval causing IOErrors, if self.running is passed
-                # as a normal str.
-                self.debugMod.__dict__['__file__'] = self.running
-                sys.modules['__main__'] = self.debugMod
-                sys.setprofile(self.callTraceEnabled)
-                res = self.mainThread.run(
-                    'execfile(' + repr(self.running) + ')',
-                    self.debugMod.__dict__)
-                self.progTerminated(res)
-                return
-
-            if cmd == DebugProtocol.RequestRun:
-                sys.argv = []
-                wd, fn, args = arg.split('|')
-                fn = fn.encode(sys.getfilesystemencoding())
-                self.__setCoding(fn)
-                sys.argv.append(fn)
-                sys.argv.extend(eval(args))
-                sys.path = self.__getSysPath(os.path.dirname(sys.argv[0]))
-                if wd == '':
-                    os.chdir(sys.path[1])
-                else:
-                    os.chdir(wd)
-
-                self.running = sys.argv[0]
-                self.mainFrame = None
-                self.botframe = None
-                self.inRawMode = 0
-                
-                self.threads.clear()
-                self.attachThread(mainThread=1)
-                
-                # set the system exception handling function to ensure, that
-                # we report on all unhandled exceptions
-                sys.excepthook = self.__unhandled_exception
-                self.__interceptSignals()
-                
-                self.mainThread.tracePythonLibs(0)
-                
-                self.debugMod.__dict__['__file__'] = sys.argv[0]
-                sys.modules['__main__'] = self.debugMod
-                res = 0
-                try:
-                    execfile(sys.argv[0], self.debugMod.__dict__)
-                except SystemExit as exc:
-                    res = exc.code
-                    atexit._run_exitfuncs()
-                self.writestream.flush()
-                self.progTerminated(res)
-                return
-
-            if cmd == DebugProtocol.RequestCoverage:
-                from coverage import coverage
-                sys.argv = []
-                wd, fn, args, erase = arg.split('@@')
-                fn = fn.encode(sys.getfilesystemencoding())
-                self.__setCoding(fn)
-                sys.argv.append(fn)
-                sys.argv.extend(eval(args))
-                sys.path = self.__getSysPath(os.path.dirname(sys.argv[0]))
-                if wd == '':
-                    os.chdir(sys.path[1])
-                else:
-                    os.chdir(wd)
-                
-                # set the system exception handling function to ensure, that
-                # we report on all unhandled exceptions
-                sys.excepthook = self.__unhandled_exception
-                self.__interceptSignals()
-                
-                # generate a coverage object
-                self.cover = coverage(
-                    auto_data=True,
-                    data_file="%s.coverage" % os.path.splitext(sys.argv[0])[0])
-                
-                if int(erase):
-                    self.cover.erase()
-                sys.modules['__main__'] = self.debugMod
-                self.debugMod.__dict__['__file__'] = sys.argv[0]
-                self.running = sys.argv[0]
-                res = 0
-                self.cover.start()
-                try:
-                    execfile(sys.argv[0], self.debugMod.__dict__)
-                except SystemExit as exc:
-                    res = exc.code
-                    atexit._run_exitfuncs()
-                self.cover.stop()
-                self.cover.save()
-                self.writestream.flush()
-                self.progTerminated(res)
-                return
-            
-            if cmd == DebugProtocol.RequestProfile:
-                sys.setprofile(None)
-                import PyProfile
-                sys.argv = []
-                wd, fn, args, erase = arg.split('|')
-                fn = fn.encode(sys.getfilesystemencoding())
-                self.__setCoding(fn)
-                sys.argv.append(fn)
-                sys.argv.extend(eval(args))
-                sys.path = self.__getSysPath(os.path.dirname(sys.argv[0]))
-                if wd == '':
-                    os.chdir(sys.path[1])
-                else:
-                    os.chdir(wd)
-
-                # set the system exception handling function to ensure, that
-                # we report on all unhandled exceptions
-                sys.excepthook = self.__unhandled_exception
-                self.__interceptSignals()
-                
-                # generate a profile object
-                self.prof = PyProfile.PyProfile(sys.argv[0])
-                
-                if int(erase):
-                    self.prof.erase()
-                self.debugMod.__dict__['__file__'] = sys.argv[0]
-                sys.modules['__main__'] = self.debugMod
-                self.running = sys.argv[0]
-                res = 0
-                try:
-                    self.prof.run('execfile(%r)' % sys.argv[0])
-                except SystemExit as exc:
-                    res = exc.code
-                    atexit._run_exitfuncs()
-                self.prof.save()
-                self.writestream.flush()
-                self.progTerminated(res)
-                return
-
-            if cmd == DebugProtocol.RequestShutdown:
-                self.sessionClose()
-                return
-            
-            if cmd == DebugProtocol.RequestBreak:
-                fn, line, temporary, set, cond = arg.split('@@')
-                fn = fn.encode(sys.getfilesystemencoding())
-                line = int(line)
-                set = int(set)
-                temporary = int(temporary)
-
-                if set:
-                    if cond == 'None' or cond == '':
-                        cond = None
-                    else:
-                        try:
-                            cond = compile(cond, '<string>', 'eval')
-                        except SyntaxError:
-                            self.write(
-                                '%s%s,%d\n' %
-                                (DebugProtocol.ResponseBPConditionError,
-                                 fn, line))
-                            return
-                    Breakpoint(fn, line, temporary, cond)
-                else:
-                    Breakpoint.clear_break(fn, line)
-
-                return
-            
-            if cmd == DebugProtocol.RequestBreakEnable:
-                fn, line, enable = arg.split(',')
-                fn = fn.encode(sys.getfilesystemencoding())
-                line = int(line)
-                enable = int(enable)
-                
-                bp = Breakpoint.get_break(fn, line)
-                if bp is not None:
-                    if enable:
-                        bp.enable()
-                    else:
-                        bp.disable()
-                    
-                return
-            
-            if cmd == DebugProtocol.RequestBreakIgnore:
-                fn, line, count = arg.split(',')
-                fn = fn.encode(sys.getfilesystemencoding())
-                line = int(line)
-                count = int(count)
-                
-                bp = Breakpoint.get_break(fn, line)
-                if bp is not None:
-                    bp.ignore = count
-                    
-                return
-            
-            if cmd == DebugProtocol.RequestWatch:
-                cond, temporary, set = arg.split('@@')
-                set = int(set)
-                temporary = int(temporary)
-                
-                if cond.endswith(('??created??', '??changed??')):
-                    compiledCond, flag = cond.split()
-                else:
-                    compiledCond = cond
-                    flag = ''
-                
-                try:
-                    compiledCond = compile(compiledCond, '<string>', 'eval')
-                except SyntaxError:
-                    self.write('%s%s\n' % (
-                        DebugProtocol.ResponseWPConditionError, cond))
-                    return
-                
-                if set:
-                    Watch(cond, compiledCond, flag, temporary)
-                else:
-                    Watch.clear_watch(cond)
-
-                return
-            
-            if cmd == DebugProtocol.RequestWatchEnable:
-                cond, enable = arg.split(',')
-                enable = int(enable)
-                
-                bp = Watch.get_watch(cond)
-                if bp is not None:
-                    if enable:
-                        bp.enable()
-                    else:
-                        bp.disable()
-                    
-                return
-            
-            if cmd == DebugProtocol.RequestWatchIgnore:
-                cond, count = arg.split(',')
-                count = int(count)
-                
-                bp = Watch.get_watch(cond)
-                if bp is not None:
-                    bp.ignore = count
-                    
-                return
-            
-            if cmd == DebugProtocol.RequestEval:
-                try:
-                    value = eval(
-                        arg,
-                        self.currentThread.getCurrentFrame().f_globals,
-                        self.currentThread.getFrameLocals(self.framenr))
-                    self.currentThread.storeFrameLocals(self.framenr)
-                except Exception:
-                    # Report the exception and the traceback
-                    try:
-                        type, value, tb = sys.exc_info()
-                        sys.last_type = type
-                        sys.last_value = value
-                        sys.last_traceback = tb
-                        tblist = traceback.extract_tb(tb)
-                        del tblist[:1]
-                        list = traceback.format_list(tblist)
-                        if list:
-                            list.insert(0, "Traceback (innermost last):\n")
-                            list[len(list):] = \
-                                traceback.format_exception_only(type, value)
-                    finally:
-                        tblist = tb = None
-
-                    map(self.write, list)
-
-                    self.write(DebugProtocol.ResponseException + '\n')
-                
-                else:
-                    self.write(unicode(value) + '\n')
-                    self.write(DebugProtocol.ResponseOK + '\n')
-                
-                return
-            
-            if cmd == DebugProtocol.RequestExec:
-                _globals = self.currentThread.getCurrentFrame().f_globals
-                _locals = self.currentThread.getFrameLocals(self.framenr)
-                try:
-                    code = compile(arg + '\n', '<stdin>', 'single')
-                    exec code in _globals, _locals
-                    self.currentThread.storeFrameLocals(self.framenr)
-                except Exception:
-                    # Report the exception and the traceback
-                    try:
-                        type, value, tb = sys.exc_info()
-                        sys.last_type = type
-                        sys.last_value = value
-                        sys.last_traceback = tb
-                        tblist = traceback.extract_tb(tb)
-                        del tblist[:1]
-                        list = traceback.format_list(tblist)
-                        if list:
-                            list.insert(0, "Traceback (innermost last):\n")
-                            list[len(list):] = \
-                                traceback.format_exception_only(type, value)
-                    finally:
-                        tblist = tb = None
-
-                    map(self.write, list)
-
-                    self.write(DebugProtocol.ResponseException + '\n')
-                
-                return
-            
-            if cmd == DebugProtocol.RequestBanner:
-                self.write(
-                    '%s%s\n' % (
-                        DebugProtocol.ResponseBanner,
-                        unicode(("Python %s" % sys.version,
-                                 socket.gethostname(),
-                                 self.variant))))
-                return
-            
-            if cmd == DebugProtocol.RequestCapabilities:
-                self.write('%s%d, "Python2"\n' % (
-                    DebugProtocol.ResponseCapabilities,
-                    self.__clientCapabilities()))
-                return
-            
-            if cmd == DebugProtocol.RequestCompletion:
-                self.__completionList(arg)
-                return
-            
-            if cmd == DebugProtocol.RequestSetFilter:
-                scope, filterString = eval(arg)
-                self.__generateFilterObjects(int(scope), filterString)
-                return
-            
-            if cmd == DebugProtocol.RequestUTPrepare:
-                fn, tn, tfn, failed, cov, covname, erase = arg.split('|')
-                fn = fn.encode(sys.getfilesystemencoding())
-                sys.path.insert(0, os.path.dirname(os.path.abspath(fn)))
-                os.chdir(sys.path[0])
-                failed = eval(failed)
-
-                # set the system exception handling function to ensure, that
-                # we report on all unhandled exceptions
-                sys.excepthook = self.__unhandled_exception
-                self.__interceptSignals()
-                
-                try:
-                    import unittest
-                    utModule = __import__(tn)
-                    try:
-                        if failed:
-                            self.test = unittest.defaultTestLoader\
-                                .loadTestsFromNames(failed, utModule)
-                        else:
-                            self.test = unittest.defaultTestLoader\
-                                .loadTestsFromName(tfn, utModule)
-                    except AttributeError:
-                        self.test = unittest.defaultTestLoader\
-                            .loadTestsFromModule(utModule)
-                except Exception:
-                    exc_type, exc_value, exc_tb = sys.exc_info()
-                    self.write(
-                        '%s%s\n' % (
-                            DebugProtocol.ResponseUTPrepared,
-                            unicode((0, str(exc_type), str(exc_value)))))
-                    self.__exceptionRaised()
-                    return
-                
-                # generate a coverage object
-                if int(cov):
-                    from coverage import coverage
-                    self.cover = coverage(
-                        auto_data=True,
-                        data_file="%s.coverage" % os.path.splitext(covname)[0])
-                    if int(erase):
-                        self.cover.erase()
-                else:
-                    self.cover = None
-                
-                self.write(
-                    '%s%s\n' % (
-                        DebugProtocol.ResponseUTPrepared,
-                        unicode((self.test.countTestCases(), "", ""))))
-                return
-            
-            if cmd == DebugProtocol.RequestUTRun:
-                from DCTestResult import DCTestResult
-                self.testResult = DCTestResult(self)
-                if self.cover:
-                    self.cover.start()
-                self.test.run(self.testResult)
-                if self.cover:
-                    self.cover.stop()
-                    self.cover.save()
-                self.write('%s\n' % DebugProtocol.ResponseUTFinished)
-                return
-            
-            if cmd == DebugProtocol.RequestUTStop:
-                self.testResult.stop()
-                return
-            
-            if cmd == DebugProtocol.ResponseForkTo:
-                # this results from a separate event loop
-                self.fork_child = (arg == 'child')
-                self.eventExit = 1
-                return
-            
-            if cmd == DebugProtocol.RequestForkMode:
-                self.fork_auto, self.fork_child = eval(arg)
-                return
-        
-        # If we are handling raw mode input then reset the mode and break out
-        # of the current event loop.
-        if self.inRawMode:
-            self.inRawMode = 0
-            self.rawLine = line
-            self.eventExit = 1
-            return
-
-        if self.buffer:
-            self.buffer = self.buffer + '\n' + line
-        else:
-            self.buffer = line
-
-        try:
-            code = self.compile_command(self.buffer, self.readstream.name)
-        except (OverflowError, SyntaxError, ValueError):
-            # Report the exception
-            sys.last_type, sys.last_value, sys.last_traceback = sys.exc_info()
-            map(self.write, traceback.format_exception_only(
-                sys.last_type, sys.last_value))
-            self.buffer = ''
-        else:
-            if code is None:
-                self.pendingResponse = DebugProtocol.ResponseContinue
-            else:
-                self.buffer = ''
-
-                try:
-                    if self.running is None:
-                        exec code in self.debugMod.__dict__
-                    else:
-                        if self.currentThread is None:
-                            # program has terminated
-                            self.running = None
-                            _globals = self.debugMod.__dict__
-                            _locals = _globals
-                        else:
-                            cf = self.currentThread.getCurrentFrame()
-                            # program has terminated
-                            if cf is None:
-                                self.running = None
-                                _globals = self.debugMod.__dict__
-                                _locals = _globals
-                            else:
-                                frmnr = self.framenr
-                                while cf is not None and frmnr > 0:
-                                    cf = cf.f_back
-                                    frmnr -= 1
-                                _globals = cf.f_globals
-                                _locals = \
-                                    self.currentThread.getFrameLocals(
-                                        self.framenr)
-                        # reset sys.stdout to our redirector (unconditionally)
-                        if "sys" in _globals:
-                            __stdout = _globals["sys"].stdout
-                            _globals["sys"].stdout = self.writestream
-                            exec code in _globals, _locals
-                            _globals["sys"].stdout = __stdout
-                        elif "sys" in _locals:
-                            __stdout = _locals["sys"].stdout
-                            _locals["sys"].stdout = self.writestream
-                            exec code in _globals, _locals
-                            _locals["sys"].stdout = __stdout
-                        else:
-                            exec code in _globals, _locals
-                        
-                        self.currentThread.storeFrameLocals(self.framenr)
-                except SystemExit, exc:
-                    self.progTerminated(exc.code)
-                except Exception:
-                    # Report the exception and the traceback
-                    try:
-                        type, value, tb = sys.exc_info()
-                        sys.last_type = type
-                        sys.last_value = value
-                        sys.last_traceback = tb
-                        tblist = traceback.extract_tb(tb)
-                        del tblist[:1]
-                        list = traceback.format_list(tblist)
-                        if list:
-                            list.insert(0, "Traceback (innermost last):\n")
-                            list[len(list):] = \
-                                traceback.format_exception_only(type, value)
-                    finally:
-                        tblist = tb = None
-
-                    map(self.write, list)
-
-    def __clientCapabilities(self):
-        """
-        Private method to determine the clients capabilities.
-        
-        @return client capabilities (integer)
-        """
-        try:
-            import PyProfile    # __IGNORE_WARNING__
-            try:
-                del sys.modules['PyProfile']
-            except KeyError:
-                pass
-            return self.clientCapabilities
-        except ImportError:
-            return (
-                self.clientCapabilities & ~DebugClientCapabilities.HasProfiler)
-        
-    def write(self, s):
-        """
-        Public method to write data to the output stream.
-        
-        @param s data to be written (string)
-        """
-        self.writestream.write(s)
-        self.writestream.flush()
-
-    def __interact(self):
-        """
-        Private method to interact with the debugger.
-        """
-        global DebugClientInstance
-
-        self.setDescriptors(self.readstream, self.writestream)
-        DebugClientInstance = self
-
-        if not self.passive:
-            # At this point simulate an event loop.
-            self.eventLoop()
-
-    def eventLoop(self, disablePolling=False):
-        """
-        Public method implementing our event loop.
-        
-        @param disablePolling flag indicating to enter an event loop with
-            polling disabled (boolean)
-        """
-        self.eventExit = None
-        self.pollingDisabled = disablePolling
-
-        while self.eventExit is None:
-            wrdy = []
-
-            if self.writestream.nWriteErrors > self.writestream.maxtries:
-                break
-            
-            if AsyncPendingWrite(self.writestream):
-                wrdy.append(self.writestream)
-
-            if AsyncPendingWrite(self.errorstream):
-                wrdy.append(self.errorstream)
-            
-            try:
-                rrdy, wrdy, xrdy = select.select([self.readstream], wrdy, [])
-            except (select.error, KeyboardInterrupt, socket.error):
-                # just carry on
-                continue
-
-            if self.readstream in rrdy:
-                self.readReady(self.readstream.fileno())
-
-            if self.writestream in wrdy:
-                self.writeReady(self.writestream.fileno())
-
-            if self.errorstream in wrdy:
-                self.writeReady(self.errorstream.fileno())
-
-        self.eventExit = None
-        self.pollingDisabled = False
-
-    def eventPoll(self):
-        """
-        Public method to poll for events like 'set break point'.
-        """
-        if self.pollingDisabled:
-            return
-        
-        wrdy = []
-        if AsyncPendingWrite(self.writestream):
-            wrdy.append(self.writestream)
-
-        if AsyncPendingWrite(self.errorstream):
-            wrdy.append(self.errorstream)
-        
-        # immediate return if nothing is ready.
-        try:
-            rrdy, wrdy, xrdy = select.select([self.readstream], wrdy, [], 0)
-        except (select.error, KeyboardInterrupt, socket.error):
-            return
-
-        if self.readstream in rrdy:
-            self.readReady(self.readstream.fileno())
-
-        if self.writestream in wrdy:
-            self.writeReady(self.writestream.fileno())
-
-        if self.errorstream in wrdy:
-            self.writeReady(self.errorstream.fileno())
-        
-    def connectDebugger(self, port, remoteAddress=None, redirect=1):
-        """
-        Public method to establish a session with the debugger.
-        
-        It opens a network connection to the debugger, connects it to stdin,
-        stdout and stderr and saves these file objects in case the application
-        being debugged redirects them itself.
-        
-        @param port the port number to connect to (int)
-        @param remoteAddress the network address of the debug server host
-            (string)
-        @param redirect flag indicating redirection of stdin, stdout and
-            stderr (boolean)
-        """
-        if remoteAddress is None:
-            remoteAddress = "127.0.0.1"
-        elif "@@i" in remoteAddress:
-            remoteAddress = remoteAddress.split("@@i")[0]
-        sock = socket.create_connection((remoteAddress, port))
-
-        self.readstream = AsyncFile(sock, sys.stdin.mode, sys.stdin.name)
-        self.writestream = AsyncFile(sock, sys.stdout.mode, sys.stdout.name)
-        self.errorstream = AsyncFile(sock, sys.stderr.mode, sys.stderr.name)
-        
-        if redirect:
-            sys.stdin = self.readstream
-            sys.stdout = self.writestream
-            sys.stderr = self.errorstream
-        self.redirect = redirect
-        
-        # attach to the main thread here
-        self.attachThread(mainThread=1)
-
-    def __unhandled_exception(self, exctype, excval, exctb):
-        """
-        Private method called to report an uncaught exception.
-        
-        @param exctype the type of the exception
-        @param excval data about the exception
-        @param exctb traceback for the exception
-        """
-        self.mainThread.user_exception(None, (exctype, excval, exctb), 1)
-    
-    def __interceptSignals(self):
-        """
-        Private method to intercept common signals.
-        """
-        for signum in [
-            signal.SIGABRT,                 # abnormal termination
-            signal.SIGFPE,                  # floating point exception
-            signal.SIGILL,                  # illegal instruction
-            signal.SIGSEGV,                 # segmentation violation
-        ]:
-            signal.signal(signum, self.__signalHandler)
-    
-    def __signalHandler(self, signalNumber, stackFrame):
-        """
-        Private method to handle signals.
-        
-        @param signalNumber number of the signal to be handled
-        @type int
-        @param stackFrame current stack frame
-        @type frame object
-        """
-        if signalNumber == signal.SIGABRT:
-            message = "Abnormal Termination"
-        elif signalNumber == signal.SIGFPE:
-            message = "Floating Point Exception"
-        elif signalNumber == signal.SIGILL:
-            message = "Illegal Instruction"
-        elif signalNumber == signal.SIGSEGV:
-            message = "Segmentation Violation"
-        else:
-            message = "Unknown Signal '%d'" % signalNumber
-        
-        filename = self.absPath(stackFrame)
-        
-        linenr = stackFrame.f_lineno
-        ffunc = stackFrame.f_code.co_name
-        
-        if ffunc == '?':
-            ffunc = ''
-        
-        if ffunc and not ffunc.startswith("<"):
-            argInfo = inspect.getargvalues(stackFrame)
-            try:
-                fargs = inspect.formatargvalues(
-                    argInfo.args, argInfo.varargs,
-                    argInfo.keywords, argInfo.locals)
-            except Exception:
-                fargs = ""
-        else:
-            fargs = ""
-        
-        siglist = [message, [filename, linenr, ffunc, fargs]]
-        
-        self.write("%s%s" % (DebugProtocol.ResponseSignal, str(siglist)))
-        
-    def absPath(self, fn):
-        """
-        Public method to convert a filename to an absolute name.
-
-        sys.path is used as a set of possible prefixes. The name stays
-        relative if a file could not be found.
-        
-        @param fn filename (string)
-        @return the converted filename (string)
-        """
-        if os.path.isabs(fn):
-            return fn
-
-        # Check the cache.
-        if fn in self._fncache:
-            return self._fncache[fn]
-
-        # Search sys.path.
-        for p in sys.path:
-            afn = os.path.abspath(os.path.join(p, fn))
-            nafn = os.path.normcase(afn)
-
-            if os.path.exists(nafn):
-                self._fncache[fn] = afn
-                d = os.path.dirname(afn)
-                if (d not in sys.path) and (d not in self.dircache):
-                    self.dircache.append(d)
-                return afn
-
-        # Search the additional directory cache
-        for p in self.dircache:
-            afn = os.path.abspath(os.path.join(p, fn))
-            nafn = os.path.normcase(afn)
-            
-            if os.path.exists(nafn):
-                self._fncache[fn] = afn
-                return afn
-                
-        # Nothing found.
-        return fn
-
-    def getRunning(self):
-        """
-        Public method to return the main script we are currently running.
-        
-        @return flag indicating a running debug session (boolean)
-        """
-        return self.running
-
-    def progTerminated(self, status):
-        """
-        Public method to tell the debugger that the program has terminated.
-        
-        @param status return status
-        @type int
-        """
-        if status is None:
-            status = 0
-        else:
-            try:
-                int(status)
-            except ValueError:
-                status = 1
-
-        if self.running:
-            self.set_quit()
-            self.running = None
-            self.write('%s%d\n' % (DebugProtocol.ResponseExit, status))
-        
-        # reset coding
-        self.__coding = self.defaultCoding
-
-    def __dumpVariables(self, frmnr, scope, filter):
-        """
-        Private method to return the variables of a frame to the debug server.
-        
-        @param frmnr distance of frame reported on. 0 is the current frame
-            (int)
-        @param scope 1 to report global variables, 0 for local variables (int)
-        @param filter the indices of variable types to be filtered
-            (list of int)
-        """
-        if self.currentThread is None:
-            return
-        
-        frmnr += self.currentThread.skipFrames
-        if scope == 0:
-            self.framenr = frmnr
-        
-        f = self.currentThread.getCurrentFrame()
-        
-        while f is not None and frmnr > 0:
-            f = f.f_back
-            frmnr -= 1
-        
-        if f is None:
-            if scope:
-                dict = self.debugMod.__dict__
-            else:
-                scope = -1
-        elif scope:
-            dict = f.f_globals
-        elif f.f_globals is f.f_locals:
-                scope = -1
-        else:
-            dict = f.f_locals
-            
-        varlist = [scope]
-        
-        if scope != -1:
-            keylist = dict.keys()
-            
-            vlist = self.__formatVariablesList(keylist, dict, scope, filter)
-            varlist.extend(vlist)
-            
-        self.write('%s%s\n' % (
-            DebugProtocol.ResponseVariables, unicode(varlist)))
-    
-    def __dumpVariable(self, var, frmnr, scope, filter):
-        """
-        Private method to return the variables of a frame to the debug server.
-        
-        @param var list encoded name of the requested variable
-            (list of strings)
-        @param frmnr distance of frame reported on. 0 is the current frame
-            (int)
-        @param scope 1 to report global variables, 0 for local variables (int)
-        @param filter the indices of variable types to be filtered
-            (list of int)
-        """
-        if self.currentThread is None:
-            return
-        
-        frmnr += self.currentThread.skipFrames
-        f = self.currentThread.getCurrentFrame()
-        
-        while f is not None and frmnr > 0:
-            f = f.f_back
-            frmnr -= 1
-        
-        if f is None:
-            if scope:
-                dict = self.debugMod.__dict__
-            else:
-                scope = -1
-        elif scope:
-            dict = f.f_globals
-        elif f.f_globals is f.f_locals:
-                scope = -1
-        else:
-            dict = f.f_locals
-        
-        varlist = [scope, var]
-        
-        if scope != -1:
-            # search the correct dictionary
-            i = 0
-            rvar = var[:]
-            dictkeys = None
-            obj = None
-            isDict = 0
-            formatSequences = 0
-            access = ""
-            oaccess = ""
-            odict = dict
-            
-            qtVariable = False
-            qvar = None
-            qvtype = ""
-            
-            while i < len(var):
-                if len(dict):
-                    udict = dict
-                ndict = {}
-                # this has to be in line with VariablesViewer.indicators
-                if var[i][-2:] in ["[]", "()", "{}"]:   # __IGNORE_WARNING__
-                    if i + 1 == len(var):
-                        if var[i][:-2] == '...':
-                            dictkeys = [var[i - 1]]
-                        else:
-                            dictkeys = [var[i][:-2]]
-                        formatSequences = 1
-                        if not access and not oaccess:
-                            if var[i][:-2] == '...':
-                                access = '["%s"]' % var[i - 1]
-                                dict = odict
-                            else:
-                                access = '["%s"]' % var[i][:-2]
-                        else:
-                            if var[i][:-2] == '...':
-                                if oaccess:
-                                    access = oaccess
-                                else:
-                                    access = '%s[%s]' % (access, var[i - 1])
-                                dict = odict
-                            else:
-                                if oaccess:
-                                    access = '%s[%s]' % (oaccess, var[i][:-2])
-                                    oaccess = ''
-                                else:
-                                    access = '%s[%s]' % (access, var[i][:-2])
-                        if var[i][-2:] == "{}":         # __IGNORE_WARNING__
-                            isDict = 1
-                        break
-                    else:
-                        if not access:
-                            if var[i][:-2] == '...':
-                                access = '["%s"]' % var[i - 1]
-                                dict = odict
-                            else:
-                                access = '["%s"]' % var[i][:-2]
-                        else:
-                            if var[i][:-2] == '...':
-                                access = '%s[%s]' % (access, var[i - 1])
-                                dict = odict
-                            else:
-                                if oaccess:
-                                    access = '%s[%s]' % (oaccess, var[i][:-2])
-                                    oaccess = ''
-                                else:
-                                    access = '%s[%s]' % (access, var[i][:-2])
-                else:
-                    if access:
-                        if oaccess:
-                            access = '%s[%s]' % (oaccess, var[i])
-                        else:
-                            access = '%s[%s]' % (access, var[i])
-                        if var[i - 1][:-2] == '...':
-                            oaccess = access
-                        else:
-                            oaccess = ''
-                        try:
-                            exec 'mdict = dict%s.__dict__' % access
-                            ndict.update(mdict)
-                            exec 'obj = dict%s' % access
-                            if "PyQt4." in str(type(obj)) or \
-                                    "PyQt5." in str(type(obj)):
-                                qtVariable = True
-                                qvar = obj
-                                qvtype = ("%s" % type(qvar))[1:-1]\
-                                    .split()[1][1:-1]
-                        except Exception:
-                            pass
-                        try:
-                            exec 'mcdict = dict%s.__class__.__dict__' % access
-                            ndict.update(mcdict)
-                            if mdict and "sipThis" not in mdict.keys():
-                                del rvar[0:2]
-                                access = ""
-                        except Exception:
-                            pass
-                        try:
-                            cdict = {}
-                            exec 'slv = dict%s.__slots__' % access
-                            for v in slv:   # __IGNORE_WARNING__
-                                try:
-                                    exec 'cdict[v] = dict%s.%s' % (access, v)
-                                except Exception:
-                                    pass
-                            ndict.update(cdict)
-                            exec 'obj = dict%s' % access
-                            access = ""
-                            if "PyQt4." in str(type(obj)) or \
-                                    "PyQt5." in str(type(obj)):
-                                qtVariable = True
-                                qvar = obj
-                                qvtype = ("%s" % type(qvar))[1:-1]\
-                                    .split()[1][1:-1]
-                        except Exception:
-                            pass
-                    else:
-                        try:
-                            ndict.update(dict[var[i]].__dict__)
-                            ndict.update(dict[var[i]].__class__.__dict__)
-                            del rvar[0]
-                            obj = dict[var[i]]
-                            if "PyQt4." in str(type(obj)) or \
-                                    "PyQt5." in str(type(obj)):
-                                qtVariable = True
-                                qvar = obj
-                                qvtype = ("%s" % type(qvar))[1:-1]\
-                                    .split()[1][1:-1]
-                        except Exception:
-                            pass
-                        try:
-                            cdict = {}
-                            slv = dict[var[i]].__slots__
-                            for v in slv:
-                                try:
-                                    exec 'cdict[v] = dict[var[i]].%s' % v
-                                except Exception:
-                                    pass
-                            ndict.update(cdict)
-                            obj = dict[var[i]]
-                            if "PyQt4." in str(type(obj)) or \
-                                    "PyQt5." in str(type(obj)):
-                                qtVariable = True
-                                qvar = obj
-                                qvtype = ("%s" % type(qvar))[1:-1]\
-                                    .split()[1][1:-1]
-                        except Exception:
-                            pass
-                    odict = dict
-                    dict = ndict
-                i += 1
-            
-            if qtVariable:
-                vlist = self.__formatQtVariable(qvar, qvtype)
-            elif ("sipThis" in dict.keys() and len(dict) == 1) or \
-                    (len(dict) == 0 and len(udict) > 0):
-                if access:
-                    exec 'qvar = udict%s' % access
-                # this has to be in line with VariablesViewer.indicators
-                elif rvar and rvar[0][-2:] in ["[]", "()", "{}"]:   # __IGNORE_WARNING__
-                    exec 'qvar = udict["%s"][%s]' % (rvar[0][:-2], rvar[1])
-                else:
-                    qvar = udict[var[-1]]
-                qvtype = ("%s" % type(qvar))[1:-1].split()[1][1:-1]
-                if qvtype.startswith(("PyQt4", "PyQt5")):
-                    vlist = self.__formatQtVariable(qvar, qvtype)
-                else:
-                    vlist = []
-            else:
-                qtVariable = False
-                if len(dict) == 0 and len(udict) > 0:
-                    if access:
-                        exec 'qvar = udict%s' % access
-                    # this has to be in line with VariablesViewer.indicators
-                    elif rvar and rvar[0][-2:] in ["[]", "()", "{}"]:   # __IGNORE_WARNING__
-                        exec 'qvar = udict["%s"][%s]' % (rvar[0][:-2], rvar[1])
-                    else:
-                        qvar = udict[var[-1]]
-                    qvtype = ("%s" % type(qvar))[1:-1].split()[1][1:-1]
-                    if qvtype.startswith(("PyQt4", "PyQt5")):
-                        qtVariable = True
-                
-                if qtVariable:
-                    vlist = self.__formatQtVariable(qvar, qvtype)
-                else:
-                    # format the dictionary found
-                    if dictkeys is None:
-                        dictkeys = dict.keys()
-                    else:
-                        # treatment for sequences and dictionaries
-                        if access:
-                            exec "dict = dict%s" % access
-                        else:
-                            dict = dict[dictkeys[0]]
-                        if isDict:
-                            dictkeys = dict.keys()
-                        else:
-                            dictkeys = range(len(dict))
-                    vlist = self.__formatVariablesList(
-                        dictkeys, dict, scope, filter, formatSequences)
-            varlist.extend(vlist)
-        
-            if obj is not None and not formatSequences:
-                try:
-                    if unicode(repr(obj)).startswith('{'):
-                        varlist.append(('...', 'dict', "%d" % len(obj.keys())))
-                    elif unicode(repr(obj)).startswith('['):
-                        varlist.append(('...', 'list', "%d" % len(obj)))
-                    elif unicode(repr(obj)).startswith('('):
-                        varlist.append(('...', 'tuple', "%d" % len(obj)))
-                except Exception:
-                    pass
-        
-        self.write('%s%s\n' % (
-            DebugProtocol.ResponseVariable, unicode(varlist)))
-        
-    def __formatQtVariable(self, value, vtype):
-        """
-        Private method to produce a formatted output of a simple Qt4/Qt5 type.
-        
-        @param value variable to be formatted
-        @param vtype type of the variable to be formatted (string)
-        @return A tuple consisting of a list of formatted variables. Each
-            variable entry is a tuple of three elements, the variable name,
-            its type and value.
-        """
-        qttype = vtype.split('.')[-1]
-        varlist = []
-        if qttype == 'QChar':
-            varlist.append(("", "QChar", "%s" % unichr(value.unicode())))
-            varlist.append(("", "int", "%d" % value.unicode()))
-        elif qttype == 'QByteArray':
-            varlist.append(("hex", "QByteArray", "%s" % value.toHex()))
-            varlist.append(("base64", "QByteArray", "%s" % value.toBase64()))
-            varlist.append(("percent encoding", "QByteArray",
-                            "%s" % value.toPercentEncoding()))
-        elif qttype == 'QString':
-            varlist.append(("", "QString", "%s" % value))
-        elif qttype == 'QStringList':
-            for i in range(value.count()):
-                varlist.append(("%d" % i, "QString", "%s" % value[i]))
-        elif qttype == 'QPoint':
-            varlist.append(("x", "int", "%d" % value.x()))
-            varlist.append(("y", "int", "%d" % value.y()))
-        elif qttype == 'QPointF':
-            varlist.append(("x", "float", "%g" % value.x()))
-            varlist.append(("y", "float", "%g" % value.y()))
-        elif qttype == 'QRect':
-            varlist.append(("x", "int", "%d" % value.x()))
-            varlist.append(("y", "int", "%d" % value.y()))
-            varlist.append(("width", "int", "%d" % value.width()))
-            varlist.append(("height", "int", "%d" % value.height()))
-        elif qttype == 'QRectF':
-            varlist.append(("x", "float", "%g" % value.x()))
-            varlist.append(("y", "float", "%g" % value.y()))
-            varlist.append(("width", "float", "%g" % value.width()))
-            varlist.append(("height", "float", "%g" % value.height()))
-        elif qttype == 'QSize':
-            varlist.append(("width", "int", "%d" % value.width()))
-            varlist.append(("height", "int", "%d" % value.height()))
-        elif qttype == 'QSizeF':
-            varlist.append(("width", "float", "%g" % value.width()))
-            varlist.append(("height", "float", "%g" % value.height()))
-        elif qttype == 'QColor':
-            varlist.append(("name", "str", "%s" % value.name()))
-            r, g, b, a = value.getRgb()
-            varlist.append(("rgba", "int", "%d, %d, %d, %d" % (r, g, b, a)))
-            h, s, v, a = value.getHsv()
-            varlist.append(("hsva", "int", "%d, %d, %d, %d" % (h, s, v, a)))
-            c, m, y, k, a = value.getCmyk()
-            varlist.append(
-                ("cmyka", "int", "%d, %d, %d, %d, %d" % (c, m, y, k, a)))
-        elif qttype == 'QDate':
-            varlist.append(("", "QDate", "%s" % value.toString()))
-        elif qttype == 'QTime':
-            varlist.append(("", "QTime", "%s" % value.toString()))
-        elif qttype == 'QDateTime':
-            varlist.append(("", "QDateTime", "%s" % value.toString()))
-        elif qttype == 'QDir':
-            varlist.append(("path", "str", "%s" % value.path()))
-            varlist.append(
-                ("absolutePath", "str", "%s" % value.absolutePath()))
-            varlist.append(
-                ("canonicalPath", "str", "%s" % value.canonicalPath()))
-        elif qttype == 'QFile':
-            varlist.append(("fileName", "str", "%s" % value.fileName()))
-        elif qttype == 'QFont':
-            varlist.append(("family", "str", "%s" % value.family()))
-            varlist.append(("pointSize", "int", "%d" % value.pointSize()))
-            varlist.append(("weight", "int", "%d" % value.weight()))
-            varlist.append(("bold", "bool", "%s" % value.bold()))
-            varlist.append(("italic", "bool", "%s" % value.italic()))
-        elif qttype == 'QUrl':
-            varlist.append(("url", "str", "%s" % value.toString()))
-            varlist.append(("scheme", "str", "%s" % value.scheme()))
-            varlist.append(("user", "str", "%s" % value.userName()))
-            varlist.append(("password", "str", "%s" % value.password()))
-            varlist.append(("host", "str", "%s" % value.host()))
-            varlist.append(("port", "int", "%d" % value.port()))
-            varlist.append(("path", "str", "%s" % value.path()))
-        elif qttype == 'QModelIndex':
-            varlist.append(("valid", "bool", "%s" % value.isValid()))
-            if value.isValid():
-                varlist.append(("row", "int", "%s" % value.row()))
-                varlist.append(("column", "int", "%s" % value.column()))
-                varlist.append(
-                    ("internalId", "int", "%s" % value.internalId()))
-                varlist.append(
-                    ("internalPointer", "void *", "%s" %
-                     value.internalPointer()))
-        elif qttype == 'QRegExp':
-            varlist.append(("pattern", "str", "%s" % value.pattern()))
-        
-        # GUI stuff
-        elif qttype == 'QAction':
-            varlist.append(("name", "str", "%s" % value.objectName()))
-            varlist.append(("text", "str", "%s" % value.text()))
-            varlist.append(("icon text", "str", "%s" % value.iconText()))
-            varlist.append(("tooltip", "str", "%s" % value.toolTip()))
-            varlist.append(("whatsthis", "str", "%s" % value.whatsThis()))
-            varlist.append(
-                ("shortcut", "str", "%s" % value.shortcut().toString()))
-        elif qttype == 'QKeySequence':
-            varlist.append(("value", "", "%s" % value.toString()))
-            
-        # XML stuff
-        elif qttype == 'QDomAttr':
-            varlist.append(("name", "str", "%s" % value.name()))
-            varlist.append(("value", "str", "%s" % value.value()))
-        elif qttype == 'QDomCharacterData':
-            varlist.append(("data", "str", "%s" % value.data()))
-        elif qttype == 'QDomComment':
-            varlist.append(("data", "str", "%s" % value.data()))
-        elif qttype == "QDomDocument":
-            varlist.append(("text", "str", "%s" % value.toString()))
-        elif qttype == 'QDomElement':
-            varlist.append(("tagName", "str", "%s" % value.tagName()))
-            varlist.append(("text", "str", "%s" % value.text()))
-        elif qttype == 'QDomText':
-            varlist.append(("data", "str", "%s" % value.data()))
-            
-        # Networking stuff
-        elif qttype == 'QHostAddress':
-            varlist.append(
-                ("address", "QHostAddress", "%s" % value.toString()))
-            
-        return varlist
-        
-    def __formatVariablesList(self, keylist, dict, scope, filter=[],
-                              formatSequences=0):
-        """
-        Private method to produce a formated variables list.
-        
-        The dictionary passed in to it is scanned. Variables are
-        only added to the list, if their type is not contained
-        in the filter list and their name doesn't match any of
-        the filter expressions. The formated variables list (a list of tuples
-        of 3 values) is returned.
-        
-        @param keylist keys of the dictionary
-        @param dict the dictionary to be scanned
-        @param scope 1 to filter using the globals filter, 0 using the locals
-            filter (int).
-            Variables are only added to the list, if their name do not match
-            any of the filter expressions.
-        @param filter the indices of variable types to be filtered. Variables
-            are only added to the list, if their type is not contained in the
-            filter list.
-        @param formatSequences flag indicating, that sequence or dictionary
-            variables should be formatted. If it is 0 (or false), just the
-            number of items contained in these variables is returned. (boolean)
-        @return A tuple consisting of a list of formatted variables. Each
-            variable entry is a tuple of three elements, the variable name,
-            its type and value.
-        """
-        varlist = []
-        if scope:
-            patternFilterObjects = self.globalsFilterObjects
-        else:
-            patternFilterObjects = self.localsFilterObjects
-        
-        for key in keylist:
-            # filter based on the filter pattern
-            matched = 0
-            for pat in patternFilterObjects:
-                if pat.match(unicode(key)):
-                    matched = 1
-                    break
-            if matched:
-                continue
-            
-            # filter hidden attributes (filter #0)
-            if 0 in filter and unicode(key)[:2] == '__':
-                continue
-            
-            # special handling for '__builtins__' (it's way too big)
-            if key == '__builtins__':
-                rvalue = '<module __builtin__ (built-in)>'
-                valtype = 'module'
-            else:
-                value = dict[key]
-                valtypestr = ("%s" % type(value))[1:-1]
-                    
-                if valtypestr.split(' ', 1)[0] == 'class':
-                    # handle new class type of python 2.2+
-                    if ConfigVarTypeStrings.index('instance') in filter:
-                        continue
-                    valtype = valtypestr
-                else:
-                    valtype = valtypestr[6:-1]
-                    try:
-                        if ConfigVarTypeStrings.index(valtype) in filter:
-                            continue
-                    except ValueError:
-                        if valtype == "classobj":
-                            if ConfigVarTypeStrings.index(
-                                    'instance') in filter:
-                                continue
-                        elif valtype == "sip.methoddescriptor":
-                            if ConfigVarTypeStrings.index(
-                                    'instance method') in filter:
-                                continue
-                        elif valtype == "sip.enumtype":
-                            if ConfigVarTypeStrings.index('class') in filter:
-                                continue
-                        elif not valtype.startswith("PySide") and \
-                                ConfigVarTypeStrings.index('other') in filter:
-                            continue
-                    
-                try:
-                    if valtype not in ['list', 'tuple', 'dict']:
-                        rvalue = repr(value)
-                        if valtype.startswith('class') and \
-                           rvalue[0] in ['{', '(', '[']:
-                            rvalue = ""
-                    else:
-                        if valtype == 'dict':
-                            rvalue = "%d" % len(value.keys())
-                        else:
-                            rvalue = "%d" % len(value)
-                except Exception:
-                    rvalue = ''
-                
-            if formatSequences:
-                if unicode(key) == key:
-                    key = "'%s'" % key
-                else:
-                    key = unicode(key)
-            varlist.append((key, valtype, rvalue))
-        
-        return varlist
-        
-    def __generateFilterObjects(self, scope, filterString):
-        """
-        Private slot to convert a filter string to a list of filter objects.
-        
-        @param scope 1 to generate filter for global variables, 0 for local
-            variables (int)
-        @param filterString string of filter patterns separated by ';'
-        """
-        patternFilterObjects = []
-        for pattern in filterString.split(';'):
-            patternFilterObjects.append(re.compile('^%s$' % pattern))
-        if scope:
-            self.globalsFilterObjects = patternFilterObjects[:]
-        else:
-            self.localsFilterObjects = patternFilterObjects[:]
-        
-    def __completionList(self, text):
-        """
-        Private slot to handle the request for a commandline completion list.
-        
-        @param text the text to be completed (string)
-        """
-        completerDelims = ' \t\n`~!@#$%^&*()-=+[{]}\\|;:\'",<>/?'
-        
-        completions = set()
-        # find position of last delim character
-        pos = -1
-        while pos >= -len(text):
-            if text[pos] in completerDelims:
-                if pos == -1:
-                    text = ''
-                else:
-                    text = text[pos + 1:]
-                break
-            pos -= 1
-        
-        # Get local and global completions
-        try:
-            localdict = self.currentThread.getFrameLocals(self.framenr)
-            localCompleter = Completer(localdict).complete
-            self.__getCompletionList(text, localCompleter, completions)
-        except AttributeError:
-            pass
-        self.__getCompletionList(text, self.complete, completions)
-        
-        self.write("%s%s||%s\n" % (DebugProtocol.ResponseCompletion,
-                                   unicode(list(completions)), text))
-
-    def __getCompletionList(self, text, completer, completions):
-        """
-        Private method to create a completions list.
-        
-        @param text text to complete (string)
-        @param completer completer methode
-        @param completions set where to add new completions strings (set)
-        """
-        state = 0
-        try:
-            comp = completer(text, state)
-        except Exception:
-            comp = None
-        while comp is not None:
-            completions.add(comp)
-            state += 1
-            try:
-                comp = completer(text, state)
-            except Exception:
-                comp = None
-
-    def startDebugger(self, filename=None, host=None, port=None,
-                      enableTrace=1, exceptions=1, tracePython=0, redirect=1):
-        """
-        Public method used to start the remote debugger.
-        
-        @param filename the program to be debugged (string)
-        @param host hostname of the debug server (string)
-        @param port portnumber of the debug server (int)
-        @param enableTrace flag to enable the tracing function (boolean)
-        @param exceptions flag to enable exception reporting of the IDE
-            (boolean)
-        @param tracePython flag to enable tracing into the Python library
-            (boolean)
-        @param redirect flag indicating redirection of stdin, stdout and
-            stderr (boolean)
-        """
-        global debugClient
-        if host is None:
-            host = os.getenv('ERICHOST', 'localhost')
-        if port is None:
-            port = os.getenv('ERICPORT', 42424)
-        
-        remoteAddress = self.__resolveHost(host)
-        self.connectDebugger(port, remoteAddress, redirect)
-        if filename is not None:
-            self.running = os.path.abspath(filename)
-        else:
-            try:
-                self.running = os.path.abspath(sys.argv[0])
-            except IndexError:
-                self.running = None
-        if self.running:
-            self.__setCoding(self.running)
-        self.passive = 1
-        self.write("%s%s|%d\n" % (
-            DebugProtocol.PassiveStartup, self.running, exceptions))
-        self.__interact()
-        
-        # setup the debugger variables
-        self._fncache = {}
-        self.dircache = []
-        self.mainFrame = None
-        self.inRawMode = 0
-        self.debugging = 1
-        
-        self.attachThread(mainThread=1)
-        self.mainThread.tracePythonLibs(tracePython)
-        
-        # set the system exception handling function to ensure, that
-        # we report on all unhandled exceptions
-        sys.excepthook = self.__unhandled_exception
-        self.__interceptSignals()
-        
-        # now start debugging
-        if enableTrace:
-            self.mainThread.set_trace()
-        
-    def startProgInDebugger(self, progargs, wd='', host=None,
-                            port=None, exceptions=1, tracePython=0,
-                            redirect=1):
-        """
-        Public method used to start the remote debugger.
-        
-        @param progargs commandline for the program to be debugged
-            (list of strings)
-        @param wd working directory for the program execution (string)
-        @param host hostname of the debug server (string)
-        @param port portnumber of the debug server (int)
-        @param exceptions flag to enable exception reporting of the IDE
-            (boolean)
-        @param tracePython flag to enable tracing into the Python library
-            (boolean)
-        @param redirect flag indicating redirection of stdin, stdout and
-            stderr (boolean)
-        """
-        if host is None:
-            host = os.getenv('ERICHOST', 'localhost')
-        if port is None:
-            port = os.getenv('ERICPORT', 42424)
-        
-        remoteAddress = self.__resolveHost(host)
-        self.connectDebugger(port, remoteAddress, redirect)
-        
-        self._fncache = {}
-        self.dircache = []
-        sys.argv = progargs[:]
-        sys.argv[0] = os.path.abspath(sys.argv[0])
-        sys.path = self.__getSysPath(os.path.dirname(sys.argv[0]))
-        if wd == '':
-            os.chdir(sys.path[1])
-        else:
-            os.chdir(wd)
-        self.running = sys.argv[0]
-        self.__setCoding(self.running)
-        self.mainFrame = None
-        self.inRawMode = 0
-        self.debugging = 1
-        
-        self.passive = 1
-        self.write("%s%s|%d\n" % (
-            DebugProtocol.PassiveStartup, self.running, exceptions))
-        self.__interact()
-        
-        self.attachThread(mainThread=1)
-        self.mainThread.tracePythonLibs(tracePython)
-        
-        # set the system exception handling function to ensure, that
-        # we report on all unhandled exceptions
-        sys.excepthook = self.__unhandled_exception
-        self.__interceptSignals()
-        
-        # This will eventually enter a local event loop.
-        # Note the use of backquotes to cause a repr of self.running. The
-        # need for this is on Windows os where backslash is the path separator.
-        # They will get inadvertantly stripped away during the eval causing
-        # IOErrors if self.running is passed as a normal str.
-        self.debugMod.__dict__['__file__'] = self.running
-        sys.modules['__main__'] = self.debugMod
-        res = self.mainThread.run('execfile(' + repr(self.running) + ')',
-                                  self.debugMod.__dict__)
-        self.progTerminated(res)
-
-    def run_call(self, scriptname, func, *args):
-        """
-        Public method used to start the remote debugger and call a function.
-        
-        @param scriptname name of the script to be debugged (string)
-        @param func function to be called
-        @param *args arguments being passed to func
-        @return result of the function call
-        """
-        self.startDebugger(scriptname, enableTrace=0)
-        res = self.mainThread.runcall(func, *args)
-        self.progTerminated(res)
-        return res
-        
-    def __resolveHost(self, host):
-        """
-        Private method to resolve a hostname to an IP address.
-        
-        @param host hostname of the debug server (string)
-        @return IP address (string)
-        """
-        try:
-            host, version = host.split("@@")
-        except ValueError:
-            version = 'v4'
-        if version == 'v4':
-            family = socket.AF_INET
-        else:
-            family = socket.AF_INET6
-        return socket.getaddrinfo(host, None, family,
-                                  socket.SOCK_STREAM)[0][4][0]
-        
-    def main(self):
-        """
-        Public method implementing the main method.
-        """
-        if '--' in sys.argv:
-            args = sys.argv[1:]
-            host = None
-            port = None
-            wd = ''
-            tracePython = 0
-            exceptions = 1
-            redirect = 1
-            while args[0]:
-                if args[0] == '-h':
-                    host = args[1]
-                    del args[0]
-                    del args[0]
-                elif args[0] == '-p':
-                    port = int(args[1])
-                    del args[0]
-                    del args[0]
-                elif args[0] == '-w':
-                    wd = args[1]
-                    del args[0]
-                    del args[0]
-                elif args[0] == '-t':
-                    tracePython = 1
-                    del args[0]
-                elif args[0] == '-e':
-                    exceptions = 0
-                    del args[0]
-                elif args[0] == '-n':
-                    redirect = 0
-                    del args[0]
-                elif args[0] == '--no-encoding':
-                    self.noencoding = True
-                    del args[0]
-                elif args[0] == '--fork-child':
-                    self.fork_auto = True
-                    self.fork_child = True
-                    del args[0]
-                elif args[0] == '--fork-parent':
-                    self.fork_auto = True
-                    self.fork_child = False
-                    del args[0]
-                elif args[0] == '--':
-                    del args[0]
-                    break
-                else:   # unknown option
-                    del args[0]
-            if not args:
-                print "No program given. Aborting!"     # __IGNORE_WARNING__
-            else:
-                if not self.noencoding:
-                    self.__coding = self.defaultCoding
-                self.startProgInDebugger(args, wd, host, port,
-                                         exceptions=exceptions,
-                                         tracePython=tracePython,
-                                         redirect=redirect)
-        else:
-            if sys.argv[1] == '--no-encoding':
-                self.noencoding = True
-                del sys.argv[1]
-            if sys.argv[1] == '':
-                del sys.argv[1]
-            try:
-                port = int(sys.argv[1])
-            except (ValueError, IndexError):
-                port = -1
-            try:
-                redirect = int(sys.argv[2])
-            except (ValueError, IndexError):
-                redirect = 1
-            try:
-                ipOrHost = sys.argv[3]
-                if ':' in ipOrHost:
-                    remoteAddress = ipOrHost
-                elif ipOrHost[0] in '0123456789':
-                    remoteAddress = ipOrHost
-                else:
-                    remoteAddress = self.__resolveHost(ipOrHost)
-            except Exception:
-                remoteAddress = None
-            sys.argv = ['']
-            if '' not in sys.path:
-                sys.path.insert(0, '')
-            if port >= 0:
-                if not self.noencoding:
-                    self.__coding = self.defaultCoding
-                self.connectDebugger(port, remoteAddress, redirect)
-                self.__interact()
-            else:
-                print "No network port given. Aborting..."  # __IGNORE_WARNING__
-        
-    def fork(self):
-        """
-        Public method implementing a fork routine deciding which branch to
-        follow.
-        
-        @return process ID (integer)
-        """
-        if not self.fork_auto:
-            self.write(DebugProtocol.RequestForkTo + '\n')
-            self.eventLoop(True)
-        pid = DebugClientOrigFork()
-        if pid == 0:
-            # child
-            if not self.fork_child:
-                sys.settrace(None)
-                sys.setprofile(None)
-                self.sessionClose(0)
-        else:
-            # parent
-            if self.fork_child:
-                sys.settrace(None)
-                sys.setprofile(None)
-                self.sessionClose(0)
-        return pid
-        
-    def close(self, fd):
-        """
-        Public method implementing a close method as a replacement for
-        os.close().
-        
-        It prevents the debugger connections from being closed.
-        
-        @param fd file descriptor to be closed (integer)
-        """
-        if fd in [self.readstream.fileno(), self.writestream.fileno(),
-                  self.errorstream.fileno()]:
-            return
-        
-        DebugClientOrigClose(fd)
-        
-    def __getSysPath(self, firstEntry):
-        """
-        Private slot to calculate a path list including the PYTHONPATH
-        environment variable.
-        
-        @param firstEntry entry to be put first in sys.path (string)
-        @return path list for use as sys.path (list of strings)
-        """
-        sysPath = [path for path in os.environ.get("PYTHONPATH", "")
-                   .split(os.pathsep)
-                   if path not in sys.path] + sys.path[:]
-        if "" in sysPath:
-            sysPath.remove("")
-        sysPath.insert(0, firstEntry)
-        sysPath.insert(0, '')
-        return sysPath
-
-#
-# eflag: FileType = Python2
-# eflag: noqa = M601, M702
--- a/DebugClients/Python/DebugClientCapabilities.py	Thu Sep 15 21:49:13 2016 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2005 - 2016 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module defining the debug clients capabilities.
-"""
-
-HasDebugger = 0x0001
-HasInterpreter = 0x0002
-HasProfiler = 0x0004
-HasCoverage = 0x0008
-HasCompleter = 0x0010
-HasUnittest = 0x0020
-HasShell = 0x0040
-
-HasAll = HasDebugger | HasInterpreter | HasProfiler | \
-    HasCoverage | HasCompleter | HasUnittest | HasShell
-
-#
-# eflag: FileType = Python2
-# eflag: noqa = M601, M702
--- a/DebugClients/Python/DebugClientThreads.py	Thu Sep 15 21:49:13 2016 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,203 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2003 - 2016 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the multithreaded version of the debug client.
-"""
-
-import thread
-import sys
-
-from AsyncIO import AsyncIO
-from DebugThread import DebugThread
-import DebugClientBase
-
-
-def _debugclient_start_new_thread(target, args, kwargs={}):
-    """
-    Module function used to allow for debugging of multiple threads.
-    
-    The way it works is that below, we reset thread._start_new_thread to
-    this function object. Thus, providing a hook for us to see when
-    threads are started. From here we forward the request onto the
-    DebugClient which will create a DebugThread object to allow tracing
-    of the thread then start up the thread. These actions are always
-    performed in order to allow dropping into debug mode.
-    
-    See DebugClientThreads.attachThread and DebugThread.DebugThread in
-    DebugThread.py
-    
-    @param target the start function of the target thread (i.e. the user code)
-    @param args arguments to pass to target
-    @param kwargs keyword arguments to pass to target
-    @return The identifier of the created thread
-    """
-    if DebugClientBase.DebugClientInstance is not None:
-        return DebugClientBase.DebugClientInstance.attachThread(
-            target, args, kwargs)
-    else:
-        return _original_start_thread(target, args, kwargs)
-    
-# make thread hooks available to system
-_original_start_thread = thread.start_new_thread
-thread.start_new_thread = _debugclient_start_new_thread
-
-# Note: import threading here AFTER above hook, as threading cache's
-#       thread._start_new_thread.
-from threading import RLock
-
-
-class DebugClientThreads(DebugClientBase.DebugClientBase, AsyncIO):
-    """
-    Class implementing the client side of the debugger.
-
-    This variant of the debugger implements a threaded debugger client
-    by subclassing all relevant base classes.
-    """
-    def __init__(self):
-        """
-        Constructor
-        """
-        AsyncIO.__init__(self)
-        
-        DebugClientBase.DebugClientBase.__init__(self)
-        
-        # protection lock for synchronization
-        self.clientLock = RLock()
-        
-        # the "current" thread, basically the thread we are at a breakpoint
-        # for.
-        self.currentThread = None
-        
-        # special objects representing the main scripts thread and frame
-        self.mainThread = None
-        self.mainFrame = None
-        
-        self.variant = 'Threaded'
-
-    def attachThread(self, target=None, args=None, kwargs=None, mainThread=0):
-        """
-        Public method to setup a thread for DebugClient to debug.
-        
-        If mainThread is non-zero, then we are attaching to the already
-        started mainthread of the app and the rest of the args are ignored.
-        
-        @param target the start function of the target thread (i.e. the
-            user code)
-        @param args arguments to pass to target
-        @param kwargs keyword arguments to pass to target
-        @param mainThread non-zero, if we are attaching to the already
-              started mainthread of the app
-        @return The identifier of the created thread
-        """
-        try:
-            self.lockClient()
-            newThread = DebugThread(self, target, args, kwargs, mainThread)
-            ident = -1
-            if mainThread:
-                ident = thread.get_ident()
-                self.mainThread = newThread
-                if self.debugging:
-                    sys.setprofile(newThread.profile)
-            else:
-                ident = _original_start_thread(newThread.bootstrap, ())
-                if self.mainThread is not None:
-                    self.tracePython = self.mainThread.tracePython
-            newThread.set_ident(ident)
-            self.threads[newThread.get_ident()] = newThread
-        finally:
-            self.unlockClient()
-        return ident
-    
-    def threadTerminated(self, dbgThread):
-        """
-        Public method called when a DebugThread has exited.
-        
-        @param dbgThread the DebugThread that has exited
-        """
-        try:
-            self.lockClient()
-            try:
-                del self.threads[dbgThread.get_ident()]
-            except KeyError:
-                pass
-        finally:
-            self.unlockClient()
-            
-    def lockClient(self, blocking=1):
-        """
-        Public method to acquire the lock for this client.
-        
-        @param blocking flag to indicating a blocking lock
-        @return flag indicating successful locking
-        """
-        if blocking:
-            self.clientLock.acquire()
-        else:
-            return self.clientLock.acquire(blocking)
-        
-    def unlockClient(self):
-        """
-        Public method to release the lock for this client.
-        """
-        try:
-            self.clientLock.release()
-        except AssertionError:
-            pass
-        
-    def setCurrentThread(self, id):
-        """
-        Public method to set the current thread.
-
-        @param id the id the current thread should be set to.
-        """
-        try:
-            self.lockClient()
-            if id is None:
-                self.currentThread = None
-            else:
-                self.currentThread = self.threads[id]
-        finally:
-            self.unlockClient()
-    
-    def eventLoop(self, disablePolling=False):
-        """
-        Public method implementing our event loop.
-        
-        @param disablePolling flag indicating to enter an event loop with
-            polling disabled (boolean)
-        """
-        # make sure we set the current thread appropriately
-        threadid = thread.get_ident()
-        self.setCurrentThread(threadid)
-        
-        DebugClientBase.DebugClientBase.eventLoop(self, disablePolling)
-        
-        self.setCurrentThread(None)
-
-    def set_quit(self):
-        """
-        Public method to do a 'set quit' on all threads.
-        """
-        try:
-            locked = self.lockClient(0)
-            try:
-                for key in self.threads.keys():
-                    self.threads[key].set_quit()
-            except Exception:
-                pass
-        finally:
-            if locked:
-                self.unlockClient()
-
-# We are normally called by the debugger to execute directly.
-
-if __name__ == '__main__':
-    debugClient = DebugClientThreads()
-    debugClient.main()
-
-#
-# eflag: FileType = Python2
-# eflag: noqa = M601, M702, E402
--- a/DebugClients/Python/DebugConfig.py	Thu Sep 15 21:49:13 2016 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2005 - 2016 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module defining type strings for the different Python types.
-"""
-
-ConfigVarTypeStrings = [
-    '__', 'NoneType', 'type',
-    'bool', 'int', 'long', 'float', 'complex',
-    'str', 'unicode', 'tuple', 'list',
-    'dict', 'dict-proxy', 'set', 'file', 'xrange',
-    'slice', 'buffer', 'class', 'instance',
-    'instance method', 'property', 'generator',
-    'function', 'builtin_function_or_method', 'code', 'module',
-    'ellipsis', 'traceback', 'frame', 'other'
-]
-
-#
-# eflag: FileType = Python2
-# eflag: noqa = M601, M702
--- a/DebugClients/Python/DebugProtocol.py	Thu Sep 15 21:49:13 2016 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2002 - 2016 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module defining the debug protocol tokens.
-"""
-
-# The address used for debugger/client communications.
-DebugAddress = '127.0.0.1'
-
-# The protocol "words".
-RequestOK = '>OK?<'
-RequestEnv = '>Environment<'
-RequestCapabilities = '>Capabilities<'
-RequestLoad = '>Load<'
-RequestRun = '>Run<'
-RequestCoverage = '>Coverage<'
-RequestProfile = '>Profile<'
-RequestContinue = '>Continue<'
-RequestStep = '>Step<'
-RequestStepOver = '>StepOver<'
-RequestStepOut = '>StepOut<'
-RequestStepQuit = '>StepQuit<'
-RequestBreak = '>Break<'
-RequestBreakEnable = '>EnableBreak<'
-RequestBreakIgnore = '>IgnoreBreak<'
-RequestWatch = '>Watch<'
-RequestWatchEnable = '>EnableWatch<'
-RequestWatchIgnore = '>IgnoreWatch<'
-RequestVariables = '>Variables<'
-RequestVariable = '>Variable<'
-RequestSetFilter = '>SetFilter<'
-RequestThreadList = '>ThreadList<'
-RequestThreadSet = '>ThreadSet<'
-RequestEval = '>Eval<'
-RequestExec = '>Exec<'
-RequestShutdown = '>Shutdown<'
-RequestBanner = '>Banner<'
-RequestCompletion = '>Completion<'
-RequestUTPrepare = '>UTPrepare<'
-RequestUTRun = '>UTRun<'
-RequestUTStop = '>UTStop<'
-RequestForkTo = '>ForkTo<'
-RequestForkMode = '>ForkMode<'
-
-ResponseOK = '>OK<'
-ResponseCapabilities = RequestCapabilities
-ResponseContinue = '>Continue<'
-ResponseException = '>Exception<'
-ResponseSyntax = '>SyntaxError<'
-ResponseSignal = '>Signal<'
-ResponseExit = '>Exit<'
-ResponseLine = '>Line<'
-ResponseRaw = '>Raw<'
-ResponseClearBreak = '>ClearBreak<'
-ResponseBPConditionError = '>BPConditionError<'
-ResponseClearWatch = '>ClearWatch<'
-ResponseWPConditionError = '>WPConditionError<'
-ResponseVariables = RequestVariables
-ResponseVariable = RequestVariable
-ResponseThreadList = RequestThreadList
-ResponseThreadSet = RequestThreadSet
-ResponseStack = '>CurrentStack<'
-ResponseBanner = RequestBanner
-ResponseCompletion = RequestCompletion
-ResponseUTPrepared = '>UTPrepared<'
-ResponseUTStartTest = '>UTStartTest<'
-ResponseUTStopTest = '>UTStopTest<'
-ResponseUTTestFailed = '>UTTestFailed<'
-ResponseUTTestErrored = '>UTTestErrored<'
-ResponseUTTestSkipped = '>UTTestSkipped<'
-ResponseUTTestFailedExpected = '>UTTestFailedExpected<'
-ResponseUTTestSucceededUnexpected = '>UTTestSucceededUnexpected<'
-ResponseUTFinished = '>UTFinished<'
-ResponseForkTo = RequestForkTo
-
-PassiveStartup = '>PassiveStartup<'
-
-RequestCallTrace = '>CallTrace<'
-CallTrace = '>CallTrace<'
-
-EOT = '>EOT<\n'
-
-#
-# eflag: FileType = Python2
-# eflag: noqa = M601, M702
--- a/DebugClients/Python/DebugThread.py	Thu Sep 15 21:49:13 2016 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,134 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2002 - 2016 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the debug thread.
-"""
-
-import bdb
-import sys
-
-from DebugBase import DebugBase
-
-
-class DebugThread(DebugBase):
-    """
-    Class implementing a debug thread.
-
-    It represents a thread in the python interpreter that we are tracing.
-    
-    Provides simple wrapper methods around bdb for the 'owning' client to
-    call to step etc.
-    """
-    def __init__(self, dbgClient, targ=None, args=None, kwargs=None,
-                 mainThread=0):
-        """
-        Constructor
-        
-        @param dbgClient the owning client
-        @param targ the target method in the run thread
-        @param args  arguments to be passed to the thread
-        @param kwargs arguments to be passed to the thread
-        @param mainThread 0 if this thread is not the mainscripts thread
-        """
-        DebugBase.__init__(self, dbgClient)
-        
-        self._target = targ
-        self._args = args
-        self._kwargs = kwargs
-        self._mainThread = mainThread
-        # thread running tracks execution state of client code
-        # it will always be 0 for main thread as that is tracked
-        # by DebugClientThreads and Bdb...
-        self._threadRunning = 0
-        
-        self.__ident = None  # id of this thread.
-        self.__name = ""
-        self.tracePython = False
-    
-    def set_ident(self, id):
-        """
-        Public method to set the id for this thread.
-        
-        @param id id for this thread (int)
-        """
-        self.__ident = id
-    
-    def get_ident(self):
-        """
-        Public method to return the id of this thread.
-        
-        @return the id of this thread (int)
-        """
-        return self.__ident
-    
-    def get_name(self):
-        """
-        Public method to return the name of this thread.
-        
-        @return name of this thread (string)
-        """
-        return self.__name
-    
-    def traceThread(self):
-        """
-        Public method to setup tracing for this thread.
-        """
-        self.set_trace()
-        if not self._mainThread:
-            self.set_continue(0)
-    
-    def bootstrap(self):
-        """
-        Public method to bootstrap the thread.
-        
-        It wraps the call to the user function to enable tracing
-        before hand.
-        """
-        try:
-            try:
-                self._threadRunning = 1
-                self.traceThread()
-                self._target(*self._args, **self._kwargs)
-            except bdb.BdbQuit:
-                pass
-        finally:
-            self._threadRunning = 0
-            self.quitting = 1
-            self._dbgClient.threadTerminated(self)
-            sys.settrace(None)
-            sys.setprofile(None)
-    
-    def trace_dispatch(self, frame, event, arg):
-        """
-        Public method wrapping the trace_dispatch of bdb.py.
-        
-        It wraps the call to dispatch tracing into
-        bdb to make sure we have locked the client to prevent multiple
-        threads from entering the client event loop.
-        
-        @param frame The current stack frame.
-        @param event The trace event (string)
-        @param arg The arguments
-        @return local trace function
-        """
-        try:
-            self._dbgClient.lockClient()
-            # if this thread came out of a lock, and we are quitting
-            # and we are still running, then get rid of tracing for this thread
-            if self.quitting and self._threadRunning:
-                sys.settrace(None)
-                sys.setprofile(None)
-            import threading
-            self.__name = threading.currentThread().getName()
-            retval = DebugBase.trace_dispatch(self, frame, event, arg)
-        finally:
-            self._dbgClient.unlockClient()
-        
-        return retval
-
-#
-# eflag: FileType = Python2
-# eflag: noqa = M601, M702
--- a/DebugClients/Python/FlexCompleter.py	Thu Sep 15 21:49:13 2016 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,275 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
-Word completion for the eric6 shell.
-
-<h4>NOTE for eric6 variant</h4>
-
-    This version is a re-implementation of FlexCompleter
-    as found in the PyQwt package. It is modified to work with the eric6 debug
-    clients.
-
-
-<h4>NOTE for the PyQwt variant</h4>
-
-    This version is a re-implementation of FlexCompleter
-    with readline support for PyQt&sip-3.6 and earlier.
-
-    Full readline support is present in PyQt&sip-snapshot-20030531 and later.
-
-
-<h4>NOTE for FlexCompleter</h4>
-
-    This version is a re-implementation of rlcompleter with
-    selectable namespace.
-
-    The problem with rlcompleter is that it's hardwired to work with
-    __main__.__dict__, and in some cases one may have 'sandboxed' namespaces.
-    So this class is a ripoff of rlcompleter, with the namespace to work in as
-    an optional parameter.
-    
-    This class can be used just like rlcompleter, but the Completer class now
-    has a constructor with the optional 'namespace' parameter.
-    
-    A patch has been submitted to Python@sourceforge for these changes to go in
-    the standard Python distribution.
-
-
-<h4>Original rlcompleter documentation</h4>
-
-    This requires the latest extension to the readline module (the
-    completes keywords, built-ins and globals in __main__; when completing
-    NAME.NAME..., it evaluates (!) the expression up to the last dot and
-    completes its attributes.
-    
-    It's very cool to do "import string" type "string.", hit the
-    completion key (twice), and see the list of names defined by the
-    string module!
-    
-    Tip: to use the tab key as the completion key, call
-    
-    'readline.parse_and_bind("tab: complete")'
-    
-    <b>Notes</b>:
-    <ul>
-    <li>
-    Exceptions raised by the completer function are *ignored* (and
-    generally cause the completion to fail).  This is a feature -- since
-    readline sets the tty device in raw (or cbreak) mode, printing a
-    traceback wouldn't work well without some complicated hoopla to save,
-    reset and restore the tty state.
-    </li>
-    <li>
-    The evaluation of the NAME.NAME... form may cause arbitrary
-    application defined code to be executed if an object with a
-    __getattr__ hook is found.  Since it is the responsibility of the
-    application (or the user) to enable this feature, I consider this an
-    acceptable risk.  More complicated expressions (e.g. function calls or
-    indexing operations) are *not* evaluated.
-    </li>
-    <li>
-    GNU readline is also used by the built-in functions input() and
-    raw_input(), and thus these also benefit/suffer from the completer
-    features.  Clearly an interactive application can benefit by
-    specifying its own completer function and using raw_input() for all
-    its input.
-    </li>
-    <li>
-    When the original stdin is not a tty device, GNU readline is never
-    used, and this module (and the readline module) are silently inactive.
-    </li>
-    </ul>
-"""
-
-#*****************************************************************************
-#
-# Since this file is essentially a minimally modified copy of the rlcompleter
-# module which is part of the standard Python distribution, I assume that the
-# proper procedure is to maintain its copyright as belonging to the Python
-# Software Foundation:
-#
-#       Copyright (C) 2001 Python Software Foundation, www.python.org
-#
-#  Distributed under the terms of the Python Software Foundation license.
-#
-#  Full text available at:
-#
-#                  http://www.python.org/2.1/license.html
-#
-#*****************************************************************************
-
-import __builtin__
-import __main__
-
-__all__ = ["Completer"]
-
-
-class Completer(object):
-    """
-    Class implementing the command line completer object.
-    """
-    def __init__(self, namespace=None):
-        """
-        Constructor
-
-        Completer([namespace]) -> completer instance.
-
-        If unspecified, the default namespace where completions are performed
-        is __main__ (technically, __main__.__dict__). Namespaces should be
-        given as dictionaries.
-
-        Completer instances should be used as the completion mechanism of
-        readline via the set_completer() call:
-
-        readline.set_completer(Completer(my_namespace).complete)
-        
-        @param namespace namespace for the completer
-        @exception TypeError raised to indicate a wrong namespace structure
-        """
-        if namespace and not isinstance(namespace, dict):
-            raise TypeError('namespace must be a dictionary')
-
-        # Don't bind to namespace quite yet, but flag whether the user wants a
-        # specific namespace or to use __main__.__dict__. This will allow us
-        # to bind to __main__.__dict__ at completion time, not now.
-        if namespace is None:
-            self.use_main_ns = 1
-        else:
-            self.use_main_ns = 0
-            self.namespace = namespace
-
-    def complete(self, text, state):
-        """
-        Public method to return the next possible completion for 'text'.
-
-        This is called successively with state == 0, 1, 2, ... until it
-        returns None.  The completion should begin with 'text'.
-        
-        @param text The text to be completed. (string)
-        @param state The state of the completion. (integer)
-        @return The possible completions as a list of strings.
-        """
-        if self.use_main_ns:
-            self.namespace = __main__.__dict__
-            
-        if state == 0:
-            if "." in text:
-                self.matches = self.attr_matches(text)
-            else:
-                self.matches = self.global_matches(text)
-        try:
-            return self.matches[state]
-        except IndexError:
-            return None
-
-    def _callable_postfix(self, val, word):
-        """
-        Protected method to check for a callable.
-        
-        @param val value to check (object)
-        @param word word to ammend (string)
-        @return ammended word (string)
-        """
-        if hasattr(val, '__call__'):
-            word = word + "("
-        return word
-
-    def global_matches(self, text):
-        """
-        Public method to compute matches when text is a simple name.
-
-        @param text The text to be completed. (string)
-        @return A list of all keywords, built-in functions and names currently
-        defined in self.namespace that match.
-        """
-        import keyword
-        matches = []
-        n = len(text)
-        for word in keyword.kwlist:
-            if word[:n] == text:
-                matches.append(word)
-        for nspace in [__builtin__.__dict__, self.namespace]:
-            for word, val in nspace.items():
-                if word[:n] == text and word != "__builtins__":
-                    matches.append(self._callable_postfix(val, word))
-        return matches
-
-    def attr_matches(self, text):
-        """
-        Public method to compute matches when text contains a dot.
-
-        Assuming the text is of the form NAME.NAME....[NAME], and is
-        evaluatable in self.namespace, it will be evaluated and its attributes
-        (as revealed by dir()) are used as possible completions.  (For class
-        instances, class members are are also considered.)
-
-        <b>WARNING</b>: this can still invoke arbitrary C code, if an object
-        with a __getattr__ hook is evaluated.
-        
-        @param text The text to be completed. (string)
-        @return A list of all matches.
-        """
-        import re
-
-    # Testing. This is the original code:
-    #m = re.match(r"(\w+(\.\w+)*)\.(\w*)", text)
-
-    # Modified to catch [] in expressions:
-    #m = re.match(r"([\w\[\]]+(\.[\w\[\]]+)*)\.(\w*)", text)
-
-        # Another option, seems to work great. Catches things like ''.<tab>
-        m = re.match(r"(\S+(\.\w+)*)\.(\w*)", text)
-
-        if not m:
-            return
-        expr, attr = m.group(1, 3)
-        try:
-            thisobject = eval(expr, self.namespace)
-        except Exception:
-            return []
-
-        # get the content of the object, except __builtins__
-        words = dir(thisobject)
-        if "__builtins__" in words:
-            words.remove("__builtins__")
-
-        if hasattr(object, '__class__'):
-            words.append('__class__')
-            words = words + get_class_members(object.__class__)
-        matches = []
-        n = len(attr)
-        for word in words:
-            try:
-                if word[:n] == attr and hasattr(thisobject, word):
-                    val = getattr(thisobject, word)
-                    word = self._callable_postfix(
-                        val, "%s.%s" % (expr, word))
-                    matches.append(word)
-            except Exception:
-                # some badly behaved objects pollute dir() with non-strings,
-                # which cause the completion to fail.  This way we skip the
-                # bad entries and can still continue processing the others.
-                pass
-        return matches
-
-
-def get_class_members(klass):
-    """
-    Module function to retrieve the class members.
-    
-    @param klass The class object to be analysed.
-    @return A list of all names defined in the class.
-    """
-    # PyQwt's hack for PyQt&sip-3.6 and earlier
-    if hasattr(klass, 'getLazyNames'):
-        return klass.getLazyNames()
-    # vanilla Python stuff
-    ret = dir(klass)
-    if hasattr(klass, '__bases__'):
-        for base in klass.__bases__:
-            ret = ret + get_class_members(base)
-    return ret
-
-#
-# eflag: FileType = Python2
-# eflag: noqa = M601, M702, M111
--- a/DebugClients/Python/PyProfile.py	Thu Sep 15 21:49:13 2016 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,172 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2002 - 2016 Detlev Offenbach <detlev@die-offenbachs.de>
-
-"""
-Module defining additions to the standard Python profile.py.
-"""
-
-import os
-import marshal
-import profile
-import atexit
-import pickle
-
-
-class PyProfile(profile.Profile):
-    """
-    Class extending the standard Python profiler with additional methods.
-    
-    This class extends the standard Python profiler by the functionality to
-    save the collected timing data in a timing cache, to restore these data
-    on subsequent calls, to store a profile dump to a standard filename and
-    to erase these caches.
-    """
-    def __init__(self, basename, timer=None, bias=None):
-        """
-        Constructor
-        
-        @param basename name of the script to be profiled (string)
-        @param timer function defining the timing calculation
-        @param bias calibration value (float)
-        """
-        try:
-            profile.Profile.__init__(self, timer, bias)
-        except TypeError:
-            profile.Profile.__init__(self, timer)
-        
-        self.dispatch = self.__class__.dispatch
-        
-        basename = os.path.splitext(basename)[0]
-        self.profileCache = "%s.profile" % basename
-        self.timingCache = "%s.timings" % basename
-        
-        self.__restore()
-        atexit.register(self.save)
-        
-    def __restore(self):
-        """
-        Private method to restore the timing data from the timing cache.
-        """
-        if not os.path.exists(self.timingCache):
-            return
-            
-        try:
-            cache = open(self.timingCache, 'rb')
-            timings = marshal.load(cache)
-            cache.close()
-            if isinstance(timings, type.DictType):
-                self.timings = timings
-        except Exception:
-            pass
-        
-    def save(self):
-        """
-        Public method to store the collected profile data.
-        """
-        # dump the raw timing data
-        cache = open(self.timingCache, 'wb')
-        marshal.dump(self.timings, cache)
-        cache.close()
-        
-        # dump the profile data
-        self.dump_stats(self.profileCache)
-        
-    def dump_stats(self, file):
-        """
-        Public method to dump the statistics data.
-        
-        @param file name of the file to write to (string)
-        """
-        try:
-            f = open(file, 'wb')
-            self.create_stats()
-            pickle.dump(self.stats, f, 2)
-        except (EnvironmentError, pickle.PickleError):
-            pass
-        finally:
-            f.close()
-
-    def erase(self):
-        """
-        Public method to erase the collected timing data.
-        """
-        self.timings = {}
-        if os.path.exists(self.timingCache):
-            os.remove(self.timingCache)
-
-    def fix_frame_filename(self, frame):
-        """
-        Public method used to fixup the filename for a given frame.
-        
-        The logic employed here is that if a module was loaded
-        from a .pyc file, then the correct .py to operate with
-        should be in the same path as the .pyc. The reason this
-        logic is needed is that when a .pyc file is generated, the
-        filename embedded and thus what is readable in the code object
-        of the frame object is the fully qualified filepath when the
-        pyc is generated. If files are moved from machine to machine
-        this can break debugging as the .pyc will refer to the .py
-        on the original machine. Another case might be sharing
-        code over a network... This logic deals with that.
-        
-        @param frame the frame object
-        @return fixed up file name (string)
-        """
-        # get module name from __file__
-        if not isinstance(frame, profile.Profile.fake_frame) and \
-                '__file__' in frame.f_globals:
-            root, ext = os.path.splitext(frame.f_globals['__file__'])
-            if ext == '.pyc' or ext == '.py':
-                fixedName = root + '.py'
-                if os.path.exists(fixedName):
-                    return fixedName
-
-        return frame.f_code.co_filename
-
-    def trace_dispatch_call(self, frame, t):
-        """
-        Public method used to trace functions calls.
-        
-        This is a variant of the one found in the standard Python
-        profile.py calling fix_frame_filename above.
-        
-        @param frame reference to the call frame
-        @param t arguments of the call
-        @return flag indicating a handled call
-        """
-        if self.cur and frame.f_back is not self.cur[-2]:
-            rpt, rit, ret, rfn, rframe, rcur = self.cur
-            if not isinstance(rframe, profile.Profile.fake_frame):
-                assert rframe.f_back is frame.f_back, ("Bad call", rfn,
-                                                       rframe, rframe.f_back,
-                                                       frame, frame.f_back)
-                self.trace_dispatch_return(rframe, 0)
-                assert (self.cur is None or
-                        frame.f_back is self.cur[-2]), ("Bad call",
-                                                        self.cur[-3])
-        fcode = frame.f_code
-        fn = (self.fix_frame_filename(frame),
-              fcode.co_firstlineno, fcode.co_name)
-        self.cur = (t, 0, 0, fn, frame, self.cur)
-        timings = self.timings
-        if fn in timings:
-            cc, ns, tt, ct, callers = timings[fn]
-            timings[fn] = cc, ns + 1, tt, ct, callers
-        else:
-            timings[fn] = 0, 0, 0, 0, {}
-        return 1
-    
-    dispatch = {
-        "call": trace_dispatch_call,
-        "exception": profile.Profile.trace_dispatch_exception,
-        "return": profile.Profile.trace_dispatch_return,
-        "c_call": profile.Profile.trace_dispatch_c_call,
-        "c_exception": profile.Profile.trace_dispatch_return,
-        # the C function returned
-        "c_return": profile.Profile.trace_dispatch_return,
-    }
-
-#
-# eflag: FileType = Python2
-# eflag: noqa = M601, M702
--- a/DebugClients/Python/__init__.py	Thu Sep 15 21:49:13 2016 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2005 - 2016 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Package implementing the Python debugger.
-
-It consists of different kinds of debug clients.
-"""
-
-#
-# eflag: FileType = Python2
--- a/DebugClients/Python/coverage/__init__.py	Thu Sep 15 21:49:13 2016 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
-
-"""Code coverage measurement for Python.
-
-Ned Batchelder
-http://nedbatchelder.com/code/coverage
-
-"""
-
-from coverage.version import __version__, __url__, version_info
-
-from coverage.control import Coverage, process_startup
-from coverage.data import CoverageData
-from coverage.misc import CoverageException
-from coverage.plugin import CoveragePlugin, FileTracer, FileReporter
-
-# Backward compatibility.
-coverage = Coverage
-
-# On Windows, we encode and decode deep enough that something goes wrong and
-# the encodings.utf_8 module is loaded and then unloaded, I don't know why.
-# Adding a reference here prevents it from being unloaded.  Yuk.
-import encodings.utf_8
-
-# Because of the "from coverage.control import fooey" lines at the top of the
-# file, there's an entry for coverage.coverage in sys.modules, mapped to None.
-# This makes some inspection tools (like pydoc) unable to find the class
-# coverage.coverage.  So remove that entry.
-import sys
-try:
-    del sys.modules['coverage.coverage']
-except KeyError:
-    pass
-
-#
-# eflag: FileType = Python2
--- a/DebugClients/Python/coverage/__main__.py	Thu Sep 15 21:49:13 2016 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
-
-"""Coverage.py's main entry point."""
-
-import sys
-from coverage.cmdline import main
-sys.exit(main())
-
-#
-# eflag: FileType = Python2
--- a/DebugClients/Python/coverage/annotate.py	Thu Sep 15 21:49:13 2016 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +0,0 @@
-# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
-
-"""Source file annotation for coverage.py."""
-
-import io
-import os
-import re
-
-from coverage.files import flat_rootname
-from coverage.report import Reporter
-
-class AnnotateReporter(Reporter):
-    """Generate annotated source files showing line coverage.
-
-    This reporter creates annotated copies of the measured source files. Each
-    .py file is copied as a .py,cover file, with a left-hand margin annotating
-    each line::
-
-        > def h(x):
-        -     if 0:   #pragma: no cover
-        -         pass
-        >     if x == 1:
-        !         a = 1
-        >     else:
-        >         a = 2
-
-        > h(2)
-
-    Executed lines use '>', lines not executed use '!', lines excluded from
-    consideration use '-'.
-
-    """
-
-    def __init__(self, coverage, config):
-        super(AnnotateReporter, self).__init__(coverage, config)
-        self.directory = None
-
-    blank_re = re.compile(r"\s*(#|$)")
-    else_re = re.compile(r"\s*else\s*:\s*(#|$)")
-
-    def report(self, morfs, directory=None):
-        """Run the report.
-
-        See `coverage.report()` for arguments.
-
-        """
-        self.report_files(self.annotate_file, morfs, directory)
-
-    def annotate_file(self, fr, analysis):
-        """Annotate a single file.
-
-        `fr` is the FileReporter for the file to annotate.
-
-        """
-        statements = sorted(analysis.statements)
-        missing = sorted(analysis.missing)
-        excluded = sorted(analysis.excluded)
-
-        if self.directory:
-            dest_file = os.path.join(self.directory, flat_rootname(fr.relative_filename()))
-            if dest_file.endswith("_py"):
-                dest_file = dest_file[:-3] + ".py"
-            dest_file += ",cover"
-        else:
-            dest_file = fr.filename + ",cover"
-
-        with io.open(dest_file, 'w', encoding='utf8') as dest:
-            i = 0
-            j = 0
-            covered = True
-            source = fr.source()
-            for lineno, line in enumerate(source.splitlines(True), start=1):
-                while i < len(statements) and statements[i] < lineno:
-                    i += 1
-                while j < len(missing) and missing[j] < lineno:
-                    j += 1
-                if i < len(statements) and statements[i] == lineno:
-                    covered = j >= len(missing) or missing[j] > lineno
-                if self.blank_re.match(line):
-                    dest.write(u'  ')
-                elif self.else_re.match(line):
-                    # Special logic for lines containing only 'else:'.
-                    if i >= len(statements) and j >= len(missing):
-                        dest.write(u'! ')
-                    elif i >= len(statements) or j >= len(missing):
-                        dest.write(u'> ')
-                    elif statements[i] == missing[j]:
-                        dest.write(u'! ')
-                    else:
-                        dest.write(u'> ')
-                elif lineno in excluded:
-                    dest.write(u'- ')
-                elif covered:
-                    dest.write(u'> ')
-                else:
-                    dest.write(u'! ')
-
-                dest.write(line)
-
-#
-# eflag: FileType = Python2
--- a/DebugClients/Python/coverage/backunittest.py	Thu Sep 15 21:49:13 2016 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
-
-"""Implementations of unittest features from the future."""
-
-# Use unittest2 if it's available, otherwise unittest.  This gives us
-# back-ported features for 2.6.
-try:
-    import unittest2 as unittest
-except ImportError:
-    import unittest
-
-
-def unittest_has(method):
-    """Does `unittest.TestCase` have `method` defined?"""
-    return hasattr(unittest.TestCase, method)
-
-
-class TestCase(unittest.TestCase):
-    """Just like unittest.TestCase, but with assert methods added.
-
-    Designed to be compatible with 3.1 unittest.  Methods are only defined if
-    `unittest` doesn't have them.
-
-    """
-    # pylint: disable=missing-docstring
-
-    # Many Pythons have this method defined.  But PyPy3 has a bug with it
-    # somehow (https://bitbucket.org/pypy/pypy/issues/2092), so always use our
-    # own implementation that works everywhere, at least for the ways we're
-    # calling it.
-    def assertCountEqual(self, s1, s2):
-        """Assert these have the same elements, regardless of order."""
-        self.assertEqual(sorted(s1), sorted(s2))
-
-    if not unittest_has('assertRaisesRegex'):
-        def assertRaisesRegex(self, *args, **kwargs):
-            return self.assertRaisesRegexp(*args, **kwargs)
-
-    if not unittest_has('assertRegex'):
-        def assertRegex(self, *args, **kwargs):
-            return self.assertRegexpMatches(*args, **kwargs)
--- a/DebugClients/Python/coverage/backward.py	Thu Sep 15 21:49:13 2016 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,172 +0,0 @@
-# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
-
-"""Add things to old Pythons so I can pretend they are newer."""
-
-# This file does lots of tricky stuff, so disable a bunch of pylint warnings.
-# pylint: disable=redefined-builtin
-# pylint: disable=unused-import
-# pylint: disable=no-name-in-module
-
-import sys
-
-from coverage import env
-
-
-# Pythons 2 and 3 differ on where to get StringIO.
-try:
-    from cStringIO import StringIO
-except ImportError:
-    from io import StringIO
-
-# In py3, ConfigParser was renamed to the more-standard configparser
-try:
-    import configparser
-except ImportError:
-    import ConfigParser as configparser
-
-# What's a string called?
-try:
-    string_class = basestring
-except NameError:
-    string_class = str
-
-# What's a Unicode string called?
-try:
-    unicode_class = unicode
-except NameError:
-    unicode_class = str
-
-# Where do pickles come from?
-try:
-    import cPickle as pickle
-except ImportError:
-    import pickle
-
-# range or xrange?
-try:
-    range = xrange
-except NameError:
-    range = range
-
-# A function to iterate listlessly over a dict's items.
-try:
-    {}.iteritems
-except AttributeError:
-    def iitems(d):
-        """Produce the items from dict `d`."""
-        return d.items()
-else:
-    def iitems(d):
-        """Produce the items from dict `d`."""
-        return d.iteritems()
-
-# Getting the `next` function from an iterator is different in 2 and 3.
-try:
-    iter([]).next
-except AttributeError:
-    def iternext(seq):
-        """Get the `next` function for iterating over `seq`."""
-        return iter(seq).__next__
-else:
-    def iternext(seq):
-        """Get the `next` function for iterating over `seq`."""
-        return iter(seq).next
-
-# Python 3.x is picky about bytes and strings, so provide methods to
-# get them right, and make them no-ops in 2.x
-if env.PY3:
-    def to_bytes(s):
-        """Convert string `s` to bytes."""
-        return s.encode('utf8')
-
-    def binary_bytes(byte_values):
-        """Produce a byte string with the ints from `byte_values`."""
-        return bytes(byte_values)
-
-    def byte_to_int(byte_value):
-        """Turn an element of a bytes object into an int."""
-        return byte_value
-
-    def bytes_to_ints(bytes_value):
-        """Turn a bytes object into a sequence of ints."""
-        # In Python 3, iterating bytes gives ints.
-        return bytes_value
-
-else:
-    def to_bytes(s):
-        """Convert string `s` to bytes (no-op in 2.x)."""
-        return s
-
-    def binary_bytes(byte_values):
-        """Produce a byte string with the ints from `byte_values`."""
-        return "".join(chr(b) for b in byte_values)
-
-    def byte_to_int(byte_value):
-        """Turn an element of a bytes object into an int."""
-        return ord(byte_value)
-
-    def bytes_to_ints(bytes_value):
-        """Turn a bytes object into a sequence of ints."""
-        for byte in bytes_value:
-            yield ord(byte)
-
-
-try:
-    # In Python 2.x, the builtins were in __builtin__
-    BUILTINS = sys.modules['__builtin__']
-except KeyError:
-    # In Python 3.x, they're in builtins
-    BUILTINS = sys.modules['builtins']
-
-
-# imp was deprecated in Python 3.3
-try:
-    import importlib
-    import importlib.util
-    imp = None
-except ImportError:
-    importlib = None
-
-# We only want to use importlib if it has everything we need.
-try:
-    importlib_util_find_spec = importlib.util.find_spec
-except Exception:
-    import imp
-    importlib_util_find_spec = None
-
-# What is the .pyc magic number for this version of Python?
-try:
-    PYC_MAGIC_NUMBER = importlib.util.MAGIC_NUMBER
-except AttributeError:
-    PYC_MAGIC_NUMBER = imp.get_magic()
-
-
-def import_local_file(modname):
-    """Import a local file as a module.
-
-    Opens a file in the current directory named `modname`.py, imports it
-    as `modname`, and returns the module object.
-
-    """
-    try:
-        from importlib.machinery import SourceFileLoader
-    except ImportError:
-        SourceFileLoader = None
-
-    modfile = modname + '.py'
-    if SourceFileLoader:
-        mod = SourceFileLoader(modname, modfile).load_module()
-    else:
-        for suff in imp.get_suffixes():                 # pragma: part covered
-            if suff[0] == '.py':
-                break
-
-        with open(modfile, 'r') as f:
-            # pylint: disable=undefined-loop-variable
-            mod = imp.load_module(modname, f, modfile, suff)
-
-    return mod
-
-#
-# eflag: FileType = Python2
--- a/DebugClients/Python/coverage/bytecode.py	Thu Sep 15 21:49:13 2016 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,90 +0,0 @@
-# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
-
-"""Bytecode manipulation for coverage.py"""
-
-import opcode
-import types
-
-from coverage.backward import byte_to_int
-
-
-class ByteCode(object):
-    """A single bytecode."""
-    def __init__(self):
-        # The offset of this bytecode in the code object.
-        self.offset = -1
-
-        # The opcode, defined in the `opcode` module.
-        self.op = -1
-
-        # The argument, a small integer, whose meaning depends on the opcode.
-        self.arg = -1
-
-        # The offset in the code object of the next bytecode.
-        self.next_offset = -1
-
-        # The offset to jump to.
-        self.jump_to = -1
-
-
-class ByteCodes(object):
-    """Iterator over byte codes in `code`.
-
-    This handles the logic of EXTENDED_ARG byte codes internally.  Those byte
-    codes are not returned by this iterator.
-
-    Returns `ByteCode` objects.
-
-    """
-    def __init__(self, code):
-        self.code = code
-
-    def __getitem__(self, i):
-        return byte_to_int(self.code[i])
-
-    def __iter__(self):
-        offset = 0
-        ext_arg = 0
-        while offset < len(self.code):
-            bc = ByteCode()
-            bc.op = self[offset]
-            bc.offset = offset
-
-            next_offset = offset+1
-            if bc.op >= opcode.HAVE_ARGUMENT:
-                bc.arg = ext_arg + self[offset+1] + 256*self[offset+2]
-                next_offset += 2
-
-                label = -1
-                if bc.op in opcode.hasjrel:
-                    label = next_offset + bc.arg
-                elif bc.op in opcode.hasjabs:
-                    label = bc.arg
-                bc.jump_to = label
-
-            bc.next_offset = offset = next_offset
-            if bc.op == opcode.EXTENDED_ARG:
-                ext_arg = bc.arg * 256*256
-            else:
-                ext_arg = 0
-                yield bc
-
-
-class CodeObjects(object):
-    """Iterate over all the code objects in `code`."""
-    def __init__(self, code):
-        self.stack = [code]
-
-    def __iter__(self):
-        while self.stack:
-            # We're going to return the code object on the stack, but first
-            # push its children for later returning.
-            code = self.stack.pop()
-            for c in code.co_consts:
-                if isinstance(c, types.CodeType):
-                    self.stack.append(c)
-            yield code
-
-#
-# eflag: FileType = Python2
--- a/DebugClients/Python/coverage/cmdline.py	Thu Sep 15 21:49:13 2016 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,714 +0,0 @@
-# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
-
-"""Command-line support for coverage.py."""
-
-import glob
-import optparse
-import os.path
-import sys
-import traceback
-
-from coverage import env
-from coverage.execfile import run_python_file, run_python_module
-from coverage.misc import CoverageException, ExceptionDuringRun, NoSource
-from coverage.debug import info_formatter, info_header
-
-
-class Opts(object):
-    """A namespace class for individual options we'll build parsers from."""
-
-    append = optparse.make_option(
-        '-a', '--append', action='store_true',
-        help="Append coverage data to .coverage, otherwise it is started "
-                "clean with each run."
-        )
-    branch = optparse.make_option(
-        '', '--branch', action='store_true',
-        help="Measure branch coverage in addition to statement coverage."
-        )
-    CONCURRENCY_CHOICES = [
-        "thread", "gevent", "greenlet", "eventlet", "multiprocessing",
-    ]
-    concurrency = optparse.make_option(
-        '', '--concurrency', action='store', metavar="LIB",
-        choices=CONCURRENCY_CHOICES,
-        help="Properly measure code using a concurrency library. "
-            "Valid values are: %s." % ", ".join(CONCURRENCY_CHOICES)
-        )
-    debug = optparse.make_option(
-        '', '--debug', action='store', metavar="OPTS",
-        help="Debug options, separated by commas"
-        )
-    directory = optparse.make_option(
-        '-d', '--directory', action='store', metavar="DIR",
-        help="Write the output files to DIR."
-        )
-    fail_under = optparse.make_option(
-        '', '--fail-under', action='store', metavar="MIN", type="int",
-        help="Exit with a status of 2 if the total coverage is less than MIN."
-        )
-    help = optparse.make_option(
-        '-h', '--help', action='store_true',
-        help="Get help on this command."
-        )
-    ignore_errors = optparse.make_option(
-        '-i', '--ignore-errors', action='store_true',
-        help="Ignore errors while reading source files."
-        )
-    include = optparse.make_option(
-        '', '--include', action='store',
-        metavar="PAT1,PAT2,...",
-        help="Include only files whose paths match one of these patterns. "
-                "Accepts shell-style wildcards, which must be quoted."
-        )
-    pylib = optparse.make_option(
-        '-L', '--pylib', action='store_true',
-        help="Measure coverage even inside the Python installed library, "
-                "which isn't done by default."
-        )
-    show_missing = optparse.make_option(
-        '-m', '--show-missing', action='store_true',
-        help="Show line numbers of statements in each module that weren't "
-                "executed."
-        )
-    skip_covered = optparse.make_option(
-        '--skip-covered', action='store_true',
-        help="Skip files with 100% coverage."
-        )
-    omit = optparse.make_option(
-        '', '--omit', action='store',
-        metavar="PAT1,PAT2,...",
-        help="Omit files whose paths match one of these patterns. "
-                "Accepts shell-style wildcards, which must be quoted."
-        )
-    output_xml = optparse.make_option(
-        '-o', '', action='store', dest="outfile",
-        metavar="OUTFILE",
-        help="Write the XML report to this file. Defaults to 'coverage.xml'"
-        )
-    parallel_mode = optparse.make_option(
-        '-p', '--parallel-mode', action='store_true',
-        help="Append the machine name, process id and random number to the "
-                ".coverage data file name to simplify collecting data from "
-                "many processes."
-        )
-    module = optparse.make_option(
-        '-m', '--module', action='store_true',
-        help="<pyfile> is an importable Python module, not a script path, "
-                "to be run as 'python -m' would run it."
-        )
-    rcfile = optparse.make_option(
-        '', '--rcfile', action='store',
-        help="Specify configuration file.  Defaults to '.coveragerc'"
-        )
-    source = optparse.make_option(
-        '', '--source', action='store', metavar="SRC1,SRC2,...",
-        help="A list of packages or directories of code to be measured."
-        )
-    timid = optparse.make_option(
-        '', '--timid', action='store_true',
-        help="Use a simpler but slower trace method.  Try this if you get "
-                "seemingly impossible results!"
-        )
-    title = optparse.make_option(
-        '', '--title', action='store', metavar="TITLE",
-        help="A text string to use as the title on the HTML."
-        )
-    version = optparse.make_option(
-        '', '--version', action='store_true',
-        help="Display version information and exit."
-        )
-
-
-class CoverageOptionParser(optparse.OptionParser, object):
-    """Base OptionParser for coverage.py.
-
-    Problems don't exit the program.
-    Defaults are initialized for all options.
-
-    """
-
-    def __init__(self, *args, **kwargs):
-        super(CoverageOptionParser, self).__init__(
-            add_help_option=False, *args, **kwargs
-            )
-        self.set_defaults(
-            action=None,
-            append=None,
-            branch=None,
-            concurrency=None,
-            debug=None,
-            directory=None,
-            fail_under=None,
-            help=None,
-            ignore_errors=None,
-            include=None,
-            module=None,
-            omit=None,
-            parallel_mode=None,
-            pylib=None,
-            rcfile=True,
-            show_missing=None,
-            skip_covered=None,
-            source=None,
-            timid=None,
-            title=None,
-            version=None,
-            )
-
-        self.disable_interspersed_args()
-        self.help_fn = self.help_noop
-
-    def help_noop(self, error=None, topic=None, parser=None):
-        """No-op help function."""
-        pass
-
-    class OptionParserError(Exception):
-        """Used to stop the optparse error handler ending the process."""
-        pass
-
-    def parse_args_ok(self, args=None, options=None):
-        """Call optparse.parse_args, but return a triple:
-
-        (ok, options, args)
-
-        """
-        try:
-            options, args = \
-                super(CoverageOptionParser, self).parse_args(args, options)
-        except self.OptionParserError:
-            return False, None, None
-        return True, options, args
-
-    def error(self, msg):
-        """Override optparse.error so sys.exit doesn't get called."""
-        self.help_fn(msg)
-        raise self.OptionParserError
-
-
-class GlobalOptionParser(CoverageOptionParser):
-    """Command-line parser for coverage.py global option arguments."""
-
-    def __init__(self):
-        super(GlobalOptionParser, self).__init__()
-
-        self.add_options([
-            Opts.help,
-            Opts.version,
-        ])
-
-
-class CmdOptionParser(CoverageOptionParser):
-    """Parse one of the new-style commands for coverage.py."""
-
-    def __init__(self, action, options=None, defaults=None, usage=None,
-                description=None
-                ):
-        """Create an OptionParser for a coverage.py command.
-
-        `action` is the slug to put into `options.action`.
-        `options` is a list of Option's for the command.
-        `defaults` is a dict of default value for options.
-        `usage` is the usage string to display in help.
-        `description` is the description of the command, for the help text.
-
-        """
-        if usage:
-            usage = "%prog " + usage
-        super(CmdOptionParser, self).__init__(
-            prog="coverage %s" % action,
-            usage=usage,
-            description=description,
-        )
-        self.set_defaults(action=action, **(defaults or {}))
-        if options:
-            self.add_options(options)
-        self.cmd = action
-
-    def __eq__(self, other):
-        # A convenience equality, so that I can put strings in unit test
-        # results, and they will compare equal to objects.
-        return (other == "<CmdOptionParser:%s>" % self.cmd)
-
-GLOBAL_ARGS = [
-    Opts.debug,
-    Opts.help,
-    Opts.rcfile,
-    ]
-
-CMDS = {
-    'annotate': CmdOptionParser("annotate",
-        [
-            Opts.directory,
-            Opts.ignore_errors,
-            Opts.include,
-            Opts.omit,
-            ] + GLOBAL_ARGS,
-        usage = "[options] [modules]",
-        description = "Make annotated copies of the given files, marking "
-            "statements that are executed with > and statements that are "
-            "missed with !."
-        ),
-
-    'combine': CmdOptionParser("combine", GLOBAL_ARGS,
-        usage = "<path1> <path2> ... <pathN>",
-        description = "Combine data from multiple coverage files collected "
-            "with 'run -p'.  The combined results are written to a single "
-            "file representing the union of the data. The positional "
-            "arguments are data files or directories containing data files. "
-            "If no paths are provided, data files in the default data file's "
-            "directory are combined."
-        ),
-
-    'debug': CmdOptionParser("debug", GLOBAL_ARGS,
-        usage = "<topic>",
-        description = "Display information on the internals of coverage.py, "
-            "for diagnosing problems. "
-            "Topics are 'data' to show a summary of the collected data, "
-            "or 'sys' to show installation information."
-        ),
-
-    'erase': CmdOptionParser("erase", GLOBAL_ARGS,
-        usage = " ",
-        description = "Erase previously collected coverage data."
-        ),
-
-    'help': CmdOptionParser("help", GLOBAL_ARGS,
-        usage = "[command]",
-        description = "Describe how to use coverage.py"
-        ),
-
-    'html': CmdOptionParser("html",
-        [
-            Opts.directory,
-            Opts.fail_under,
-            Opts.ignore_errors,
-            Opts.include,
-            Opts.omit,
-            Opts.title,
-            ] + GLOBAL_ARGS,
-        usage = "[options] [modules]",
-        description = "Create an HTML report of the coverage of the files.  "
-            "Each file gets its own page, with the source decorated to show "
-            "executed, excluded, and missed lines."
-        ),
-
-    'report': CmdOptionParser("report",
-        [
-            Opts.fail_under,
-            Opts.ignore_errors,
-            Opts.include,
-            Opts.omit,
-            Opts.show_missing,
-            Opts.skip_covered,
-            ] + GLOBAL_ARGS,
-        usage = "[options] [modules]",
-        description = "Report coverage statistics on modules."
-        ),
-
-    'run': CmdOptionParser("run",
-        [
-            Opts.append,
-            Opts.branch,
-            Opts.concurrency,
-            Opts.include,
-            Opts.module,
-            Opts.omit,
-            Opts.pylib,
-            Opts.parallel_mode,
-            Opts.source,
-            Opts.timid,
-            ] + GLOBAL_ARGS,
-        usage = "[options] <pyfile> [program options]",
-        description = "Run a Python program, measuring code execution."
-        ),
-
-    'xml': CmdOptionParser("xml",
-        [
-            Opts.fail_under,
-            Opts.ignore_errors,
-            Opts.include,
-            Opts.omit,
-            Opts.output_xml,
-            ] + GLOBAL_ARGS,
-        usage = "[options] [modules]",
-        description = "Generate an XML report of coverage results."
-        ),
-    }
-
-
-OK, ERR, FAIL_UNDER = 0, 1, 2
-
-
-class CoverageScript(object):
-    """The command-line interface to coverage.py."""
-
-    def __init__(self, _covpkg=None, _run_python_file=None,
-                 _run_python_module=None, _help_fn=None, _path_exists=None):
-        # _covpkg is for dependency injection, so we can test this code.
-        if _covpkg:
-            self.covpkg = _covpkg
-        else:
-            import coverage
-            self.covpkg = coverage
-
-        # For dependency injection:
-        self.run_python_file = _run_python_file or run_python_file
-        self.run_python_module = _run_python_module or run_python_module
-        self.help_fn = _help_fn or self.help
-        self.path_exists = _path_exists or os.path.exists
-        self.global_option = False
-
-        self.coverage = None
-
-    def command_line(self, argv):
-        """The bulk of the command line interface to coverage.py.
-
-        `argv` is the argument list to process.
-
-        Returns 0 if all is well, 1 if something went wrong.
-
-        """
-        # Collect the command-line options.
-        if not argv:
-            self.help_fn(topic='minimum_help')
-            return OK
-
-        # The command syntax we parse depends on the first argument.  Global
-        # switch syntax always starts with an option.
-        self.global_option = argv[0].startswith('-')
-        if self.global_option:
-            parser = GlobalOptionParser()
-        else:
-            parser = CMDS.get(argv[0])
-            if not parser:
-                self.help_fn("Unknown command: '%s'" % argv[0])
-                return ERR
-            argv = argv[1:]
-
-        parser.help_fn = self.help_fn
-        ok, options, args = parser.parse_args_ok(argv)
-        if not ok:
-            return ERR
-
-        # Handle help and version.
-        if self.do_help(options, args, parser):
-            return OK
-
-        # Check for conflicts and problems in the options.
-        if not self.args_ok(options, args):
-            return ERR
-
-        # We need to be able to import from the current directory, because
-        # plugins may try to, for example, to read Django settings.
-        sys.path[0] = ''
-
-        # Listify the list options.
-        source = unshell_list(options.source)
-        omit = unshell_list(options.omit)
-        include = unshell_list(options.include)
-        debug = unshell_list(options.debug)
-
-        # Do something.
-        self.coverage = self.covpkg.coverage(
-            data_suffix = options.parallel_mode,
-            cover_pylib = options.pylib,
-            timid = options.timid,
-            branch = options.branch,
-            config_file = options.rcfile,
-            source = source,
-            omit = omit,
-            include = include,
-            debug = debug,
-            concurrency = options.concurrency,
-            )
-
-        if options.action == "debug":
-            return self.do_debug(args)
-
-        elif options.action == "erase":
-            self.coverage.erase()
-            return OK
-
-        elif options.action == "run":
-            return self.do_run(options, args)
-
-        elif options.action == "combine":
-            self.coverage.load()
-            data_dirs = args or None
-            self.coverage.combine(data_dirs)
-            self.coverage.save()
-            return OK
-
-        # Remaining actions are reporting, with some common options.
-        report_args = dict(
-            morfs = unglob_args(args),
-            ignore_errors = options.ignore_errors,
-            omit = omit,
-            include = include,
-            )
-
-        self.coverage.load()
-
-        total = None
-        if options.action == "report":
-            total = self.coverage.report(
-                show_missing=options.show_missing,
-                skip_covered=options.skip_covered, **report_args)
-        elif options.action == "annotate":
-            self.coverage.annotate(
-                directory=options.directory, **report_args)
-        elif options.action == "html":
-            total = self.coverage.html_report(
-                directory=options.directory, title=options.title,
-                **report_args)
-        elif options.action == "xml":
-            outfile = options.outfile
-            total = self.coverage.xml_report(outfile=outfile, **report_args)
-
-        if total is not None:
-            # Apply the command line fail-under options, and then use the config
-            # value, so we can get fail_under from the config file.
-            if options.fail_under is not None:
-                self.coverage.set_option("report:fail_under", options.fail_under)
-
-            if self.coverage.get_option("report:fail_under"):
-
-                # Total needs to be rounded, but be careful of 0 and 100.
-                if 0 < total < 1:
-                    total = 1
-                elif 99 < total < 100:
-                    total = 99
-                else:
-                    total = round(total)
-
-                if total >= self.coverage.get_option("report:fail_under"):
-                    return OK
-                else:
-                    return FAIL_UNDER
-
-        return OK
-
-    def help(self, error=None, topic=None, parser=None):
-        """Display an error message, or the named topic."""
-        assert error or topic or parser
-        if error:
-            print(error)
-            print("Use 'coverage help' for help.")
-        elif parser:
-            print(parser.format_help().strip())
-        else:
-            help_msg = HELP_TOPICS.get(topic, '').strip()
-            if help_msg:
-                print(help_msg % self.covpkg.__dict__)
-            else:
-                print("Don't know topic %r" % topic)
-
-    def do_help(self, options, args, parser):
-        """Deal with help requests.
-
-        Return True if it handled the request, False if not.
-
-        """
-        # Handle help.
-        if options.help:
-            if self.global_option:
-                self.help_fn(topic='help')
-            else:
-                self.help_fn(parser=parser)
-            return True
-
-        if options.action == "help":
-            if args:
-                for a in args:
-                    parser = CMDS.get(a)
-                    if parser:
-                        self.help_fn(parser=parser)
-                    else:
-                        self.help_fn(topic=a)
-            else:
-                self.help_fn(topic='help')
-            return True
-
-        # Handle version.
-        if options.version:
-            self.help_fn(topic='version')
-            return True
-
-        return False
-
-    def args_ok(self, options, args):
-        """Check for conflicts and problems in the options.
-
-        Returns True if everything is OK, or False if not.
-
-        """
-        if options.action == "run" and not args:
-            self.help_fn("Nothing to do.")
-            return False
-
-        return True
-
-    def do_run(self, options, args):
-        """Implementation of 'coverage run'."""
-
-        if options.append and self.coverage.get_option("run:parallel"):
-            self.help_fn("Can't append to data files in parallel mode.")
-            return ERR
-
-        if not self.coverage.get_option("run:parallel"):
-            if not options.append:
-                self.coverage.erase()
-
-        # Run the script.
-        self.coverage.start()
-        code_ran = True
-        try:
-            if options.module:
-                self.run_python_module(args[0], args)
-            else:
-                filename = args[0]
-                self.run_python_file(filename, args)
-        except NoSource:
-            code_ran = False
-            raise
-        finally:
-            self.coverage.stop()
-            if code_ran:
-                if options.append:
-                    data_file = self.coverage.get_option("run:data_file")
-                    if self.path_exists(data_file):
-                        self.coverage.combine(data_paths=[data_file])
-                self.coverage.save()
-
-        return OK
-
-    def do_debug(self, args):
-        """Implementation of 'coverage debug'."""
-
-        if not args:
-            self.help_fn("What information would you like: data, sys?")
-            return ERR
-
-        for info in args:
-            if info == 'sys':
-                sys_info = self.coverage.sys_info()
-                print(info_header("sys"))
-                for line in info_formatter(sys_info):
-                    print(" %s" % line)
-            elif info == 'data':
-                self.coverage.load()
-                data = self.coverage.data
-                print(info_header("data"))
-                print("path: %s" % self.coverage.data_files.filename)
-                if data:
-                    print("has_arcs: %r" % data.has_arcs())
-                    summary = data.line_counts(fullpath=True)
-                    filenames = sorted(summary.keys())
-                    print("\n%d files:" % len(filenames))
-                    for f in filenames:
-                        line = "%s: %d lines" % (f, summary[f])
-                        plugin = data.file_tracer(f)
-                        if plugin:
-                            line += " [%s]" % plugin
-                        print(line)
-                else:
-                    print("No data collected")
-            else:
-                self.help_fn("Don't know what you mean by %r" % info)
-                return ERR
-
-        return OK
-
-
-def unshell_list(s):
-    """Turn a command-line argument into a list."""
-    if not s:
-        return None
-    if env.WINDOWS:
-        # When running coverage.py as coverage.exe, some of the behavior
-        # of the shell is emulated: wildcards are expanded into a list of
-        # file names.  So you have to single-quote patterns on the command
-        # line, but (not) helpfully, the single quotes are included in the
-        # argument, so we have to strip them off here.
-        s = s.strip("'")
-    return s.split(',')
-
-
-def unglob_args(args):
-    """Interpret shell wildcards for platforms that need it."""
-    if env.WINDOWS:
-        globbed = []
-        for arg in args:
-            if '?' in arg or '*' in arg:
-                globbed.extend(glob.glob(arg))
-            else:
-                globbed.append(arg)
-        args = globbed
-    return args
-
-
-HELP_TOPICS = {
-# -------------------------
-'help': """\
-Coverage.py, version %(__version__)s
-Measure, collect, and report on code coverage in Python programs.
-
-usage: coverage <command> [options] [args]
-
-Commands:
-    annotate    Annotate source files with execution information.
-    combine     Combine a number of data files.
-    erase       Erase previously collected coverage data.
-    help        Get help on using coverage.py.
-    html        Create an HTML report.
-    report      Report coverage stats on modules.
-    run         Run a Python program and measure code execution.
-    xml         Create an XML report of coverage results.
-
-Use "coverage help <command>" for detailed help on any command.
-For full documentation, see %(__url__)s
-""",
-# -------------------------
-'minimum_help': """\
-Code coverage for Python.  Use 'coverage help' for help.
-""",
-# -------------------------
-'version': """\
-Coverage.py, version %(__version__)s.
-Documentation at %(__url__)s
-""",
-}
-
-
-def main(argv=None):
-    """The main entry point to coverage.py.
-
-    This is installed as the script entry point.
-
-    """
-    if argv is None:
-        argv = sys.argv[1:]
-    try:
-        status = CoverageScript().command_line(argv)
-    except ExceptionDuringRun as err:
-        # An exception was caught while running the product code.  The
-        # sys.exc_info() return tuple is packed into an ExceptionDuringRun
-        # exception.
-        traceback.print_exception(*err.args)
-        status = ERR
-    except CoverageException as err:
-        # A controlled error inside coverage.py: print the message to the user.
-        print(err)
-        status = ERR
-    except SystemExit as err:
-        # The user called `sys.exit()`.  Exit with their argument, if any.
-        if err.args:
-            status = err.args[0]
-        else:
-            status = None
-    return status
-
-#
-# eflag: FileType = Python2
--- a/DebugClients/Python/coverage/collector.py	Thu Sep 15 21:49:13 2016 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,325 +0,0 @@
-# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
-
-"""Raw data collector for coverage.py."""
-
-import os, sys
-
-from coverage import env
-from coverage.backward import iitems
-from coverage.files import abs_file
-from coverage.misc import CoverageException
-from coverage.pytracer import PyTracer
-
-try:
-    # Use the C extension code when we can, for speed.
-    from coverage.tracer import CTracer, CFileDisposition   # pylint: disable=no-name-in-module
-except ImportError:
-    # Couldn't import the C extension, maybe it isn't built.
-    if os.getenv('COVERAGE_TEST_TRACER') == 'c':
-        # During testing, we use the COVERAGE_TEST_TRACER environment variable
-        # to indicate that we've fiddled with the environment to test this
-        # fallback code.  If we thought we had a C tracer, but couldn't import
-        # it, then exit quickly and clearly instead of dribbling confusing
-        # errors. I'm using sys.exit here instead of an exception because an
-        # exception here causes all sorts of other noise in unittest.
-        sys.stderr.write("*** COVERAGE_TEST_TRACER is 'c' but can't import CTracer!\n")
-        sys.exit(1)
-    CTracer = None
-
-
-class FileDisposition(object):
-    """A simple value type for recording what to do with a file."""
-    pass
-
-
-class Collector(object):
-    """Collects trace data.
-
-    Creates a Tracer object for each thread, since they track stack
-    information.  Each Tracer points to the same shared data, contributing
-    traced data points.
-
-    When the Collector is started, it creates a Tracer for the current thread,
-    and installs a function to create Tracers for each new thread started.
-    When the Collector is stopped, all active Tracers are stopped.
-
-    Threads started while the Collector is stopped will never have Tracers
-    associated with them.
-
-    """
-
-    # The stack of active Collectors.  Collectors are added here when started,
-    # and popped when stopped.  Collectors on the stack are paused when not
-    # the top, and resumed when they become the top again.
-    _collectors = []
-
-    def __init__(self, should_trace, check_include, timid, branch, warn, concurrency):
-        """Create a collector.
-
-        `should_trace` is a function, taking a file name, and returning a
-        `coverage.FileDisposition object`.
-
-        `check_include` is a function taking a file name and a frame. It returns
-        a boolean: True if the file should be traced, False if not.
-
-        If `timid` is true, then a slower simpler trace function will be
-        used.  This is important for some environments where manipulation of
-        tracing functions make the faster more sophisticated trace function not
-        operate properly.
-
-        If `branch` is true, then branches will be measured.  This involves
-        collecting data on which statements followed each other (arcs).  Use
-        `get_arc_data` to get the arc data.
-
-        `warn` is a warning function, taking a single string message argument,
-        to be used if a warning needs to be issued.
-
-        `concurrency` is a string indicating the concurrency library in use.
-        Valid values are "greenlet", "eventlet", "gevent", or "thread" (the
-        default).
-
-        """
-        self.should_trace = should_trace
-        self.check_include = check_include
-        self.warn = warn
-        self.branch = branch
-        self.threading = None
-        self.concurrency = concurrency
-
-        self.concur_id_func = None
-
-        try:
-            if concurrency == "greenlet":
-                import greenlet
-                self.concur_id_func = greenlet.getcurrent
-            elif concurrency == "eventlet":
-                import eventlet.greenthread     # pylint: disable=import-error,useless-suppression
-                self.concur_id_func = eventlet.greenthread.getcurrent
-            elif concurrency == "gevent":
-                import gevent                   # pylint: disable=import-error,useless-suppression
-                self.concur_id_func = gevent.getcurrent
-            elif concurrency == "thread" or not concurrency:
-                # It's important to import threading only if we need it.  If
-                # it's imported early, and the program being measured uses
-                # gevent, then gevent's monkey-patching won't work properly.
-                import threading
-                self.threading = threading
-            else:
-                raise CoverageException("Don't understand concurrency=%s" % concurrency)
-        except ImportError:
-            raise CoverageException(
-                "Couldn't trace with concurrency=%s, the module isn't installed." % concurrency
-            )
-
-        self.reset()
-
-        if timid:
-            # Being timid: use the simple Python trace function.
-            self._trace_class = PyTracer
-        else:
-            # Being fast: use the C Tracer if it is available, else the Python
-            # trace function.
-            self._trace_class = CTracer or PyTracer
-
-        if self._trace_class is CTracer:
-            self.file_disposition_class = CFileDisposition
-            self.supports_plugins = True
-        else:
-            self.file_disposition_class = FileDisposition
-            self.supports_plugins = False
-
-    def __repr__(self):
-        return "<Collector at 0x%x: %s>" % (id(self), self.tracer_name())
-
-    def tracer_name(self):
-        """Return the class name of the tracer we're using."""
-        return self._trace_class.__name__
-
-    def reset(self):
-        """Clear collected data, and prepare to collect more."""
-        # A dictionary mapping file names to dicts with line number keys (if not
-        # branch coverage), or mapping file names to dicts with line number
-        # pairs as keys (if branch coverage).
-        self.data = {}
-
-        # A dictionary mapping file names to file tracer plugin names that will
-        # handle them.
-        self.file_tracers = {}
-
-        # The .should_trace_cache attribute is a cache from file names to
-        # coverage.FileDisposition objects, or None.  When a file is first
-        # considered for tracing, a FileDisposition is obtained from
-        # Coverage.should_trace.  Its .trace attribute indicates whether the
-        # file should be traced or not.  If it should be, a plugin with dynamic
-        # file names can decide not to trace it based on the dynamic file name
-        # being excluded by the inclusion rules, in which case the
-        # FileDisposition will be replaced by None in the cache.
-        if env.PYPY:
-            import __pypy__                     # pylint: disable=import-error
-            # Alex Gaynor said:
-            # should_trace_cache is a strictly growing key: once a key is in
-            # it, it never changes.  Further, the keys used to access it are
-            # generally constant, given sufficient context. That is to say, at
-            # any given point _trace() is called, pypy is able to know the key.
-            # This is because the key is determined by the physical source code
-            # line, and that's invariant with the call site.
-            #
-            # This property of a dict with immutable keys, combined with
-            # call-site-constant keys is a match for PyPy's module dict,
-            # which is optimized for such workloads.
-            #
-            # This gives a 20% benefit on the workload described at
-            # https://bitbucket.org/pypy/pypy/issue/1871/10x-slower-than-cpython-under-coverage
-            self.should_trace_cache = __pypy__.newdict("module")
-        else:
-            self.should_trace_cache = {}
-
-        # Our active Tracers.
-        self.tracers = []
-
-    def _start_tracer(self):
-        """Start a new Tracer object, and store it in self.tracers."""
-        tracer = self._trace_class()
-        tracer.data = self.data
-        tracer.trace_arcs = self.branch
-        tracer.should_trace = self.should_trace
-        tracer.should_trace_cache = self.should_trace_cache
-        tracer.warn = self.warn
-
-        if hasattr(tracer, 'concur_id_func'):
-            tracer.concur_id_func = self.concur_id_func
-        elif self.concur_id_func:
-            raise CoverageException(
-                "Can't support concurrency=%s with %s, only threads are supported" % (
-                    self.concurrency, self.tracer_name(),
-                )
-            )
-
-        if hasattr(tracer, 'file_tracers'):
-            tracer.file_tracers = self.file_tracers
-        if hasattr(tracer, 'threading'):
-            tracer.threading = self.threading
-        if hasattr(tracer, 'check_include'):
-            tracer.check_include = self.check_include
-
-        fn = tracer.start()
-        self.tracers.append(tracer)
-
-        return fn
-
-    # The trace function has to be set individually on each thread before
-    # execution begins.  Ironically, the only support the threading module has
-    # for running code before the thread main is the tracing function.  So we
-    # install this as a trace function, and the first time it's called, it does
-    # the real trace installation.
-
-    def _installation_trace(self, frame, event, arg):
-        """Called on new threads, installs the real tracer."""
-        # Remove ourselves as the trace function.
-        sys.settrace(None)
-        # Install the real tracer.
-        fn = self._start_tracer()
-        # Invoke the real trace function with the current event, to be sure
-        # not to lose an event.
-        if fn:
-            fn = fn(frame, event, arg)
-        # Return the new trace function to continue tracing in this scope.
-        return fn
-
-    def start(self):
-        """Start collecting trace information."""
-        if self._collectors:
-            self._collectors[-1].pause()
-
-        # Check to see whether we had a fullcoverage tracer installed. If so,
-        # get the stack frames it stashed away for us.
-        traces0 = []
-        fn0 = sys.gettrace()
-        if fn0:
-            tracer0 = getattr(fn0, '__self__', None)
-            if tracer0:
-                traces0 = getattr(tracer0, 'traces', [])
-
-        try:
-            # Install the tracer on this thread.
-            fn = self._start_tracer()
-        except:
-            if self._collectors:
-                self._collectors[-1].resume()
-            raise
-
-        # If _start_tracer succeeded, then we add ourselves to the global
-        # stack of collectors.
-        self._collectors.append(self)
-
-        # Replay all the events from fullcoverage into the new trace function.
-        for args in traces0:
-            (frame, event, arg), lineno = args
-            try:
-                fn(frame, event, arg, lineno=lineno)
-            except TypeError:
-                raise Exception("fullcoverage must be run with the C trace function.")
-
-        # Install our installation tracer in threading, to jump start other
-        # threads.
-        if self.threading:
-            self.threading.settrace(self._installation_trace)
-
-    def stop(self):
-        """Stop collecting trace information."""
-        assert self._collectors
-        assert self._collectors[-1] is self, (
-            "Expected current collector to be %r, but it's %r" % (self, self._collectors[-1])
-        )
-
-        self.pause()
-        self.tracers = []
-
-        # Remove this Collector from the stack, and resume the one underneath
-        # (if any).
-        self._collectors.pop()
-        if self._collectors:
-            self._collectors[-1].resume()
-
-    def pause(self):
-        """Pause tracing, but be prepared to `resume`."""
-        for tracer in self.tracers:
-            tracer.stop()
-            stats = tracer.get_stats()
-            if stats:
-                print("\nCoverage.py tracer stats:")
-                for k in sorted(stats.keys()):
-                    print("%16s: %s" % (k, stats[k]))
-        if self.threading:
-            self.threading.settrace(None)
-
-    def resume(self):
-        """Resume tracing after a `pause`."""
-        for tracer in self.tracers:
-            tracer.start()
-        if self.threading:
-            self.threading.settrace(self._installation_trace)
-        else:
-            self._start_tracer()
-
-    def save_data(self, covdata):
-        """Save the collected data to a `CoverageData`.
-
-        Also resets the collector.
-
-        """
-        def abs_file_dict(d):
-            """Return a dict like d, but with keys modified by `abs_file`."""
-            return dict((abs_file(k), v) for k, v in iitems(d))
-
-        if self.branch:
-            covdata.add_arcs(abs_file_dict(self.data))
-        else:
-            covdata.add_lines(abs_file_dict(self.data))
-        covdata.add_file_tracers(abs_file_dict(self.file_tracers))
-
-        self.reset()
-
-#
-# eflag: FileType = Python2
--- a/DebugClients/Python/coverage/config.py	Thu Sep 15 21:49:13 2016 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,366 +0,0 @@
-# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
-
-"""Config file for coverage.py"""
-
-import collections
-import os
-import re
-import sys
-
-from coverage.backward import configparser, iitems, string_class
-from coverage.misc import CoverageException
-
-
-class HandyConfigParser(configparser.RawConfigParser):
-    """Our specialization of ConfigParser."""
-
-    def __init__(self, section_prefix):
-        configparser.RawConfigParser.__init__(self)
-        self.section_prefix = section_prefix
-
-    def read(self, filename):
-        """Read a file name as UTF-8 configuration data."""
-        kwargs = {}
-        if sys.version_info >= (3, 2):
-            kwargs['encoding'] = "utf-8"
-        return configparser.RawConfigParser.read(self, filename, **kwargs)
-
-    def has_option(self, section, option):
-        section = self.section_prefix + section
-        return configparser.RawConfigParser.has_option(self, section, option)
-
-    def has_section(self, section):
-        section = self.section_prefix + section
-        return configparser.RawConfigParser.has_section(self, section)
-
-    def options(self, section):
-        section = self.section_prefix + section
-        return configparser.RawConfigParser.options(self, section)
-
-    def get_section(self, section):
-        """Get the contents of a section, as a dictionary."""
-        d = {}
-        for opt in self.options(section):
-            d[opt] = self.get(section, opt)
-        return d
-
-    def get(self, section, *args, **kwargs):
-        """Get a value, replacing environment variables also.
-
-        The arguments are the same as `RawConfigParser.get`, but in the found
-        value, ``$WORD`` or ``${WORD}`` are replaced by the value of the
-        environment variable ``WORD``.
-
-        Returns the finished value.
-
-        """
-        section = self.section_prefix + section
-        v = configparser.RawConfigParser.get(self, section, *args, **kwargs)
-        def dollar_replace(m):
-            """Called for each $replacement."""
-            # Only one of the groups will have matched, just get its text.
-            word = next(w for w in m.groups() if w is not None)     # pragma: part covered
-            if word == "$":
-                return "$"
-            else:
-                return os.environ.get(word, '')
-
-        dollar_pattern = r"""(?x)   # Use extended regex syntax
-            \$(?:                   # A dollar sign, then
-            (?P<v1>\w+) |           #   a plain word,
-            {(?P<v2>\w+)} |         #   or a {-wrapped word,
-            (?P<char>[$])           #   or a dollar sign.
-            )
-            """
-        v = re.sub(dollar_pattern, dollar_replace, v)
-        return v
-
-    def getlist(self, section, option):
-        """Read a list of strings.
-
-        The value of `section` and `option` is treated as a comma- and newline-
-        separated list of strings.  Each value is stripped of whitespace.
-
-        Returns the list of strings.
-
-        """
-        value_list = self.get(section, option)
-        values = []
-        for value_line in value_list.split('\n'):
-            for value in value_line.split(','):
-                value = value.strip()
-                if value:
-                    values.append(value)
-        return values
-
-    def getregexlist(self, section, option):
-        """Read a list of full-line regexes.
-
-        The value of `section` and `option` is treated as a newline-separated
-        list of regexes.  Each value is stripped of whitespace.
-
-        Returns the list of strings.
-
-        """
-        line_list = self.get(section, option)
-        value_list = []
-        for value in line_list.splitlines():
-            value = value.strip()
-            try:
-                re.compile(value)
-            except re.error as e:
-                raise CoverageException(
-                    "Invalid [%s].%s value %r: %s" % (section, option, value, e)
-                )
-            if value:
-                value_list.append(value)
-        return value_list
-
-
-# The default line exclusion regexes.
-DEFAULT_EXCLUDE = [
-    r'(?i)#\s*pragma[:\s]?\s*no\s*cover',
-]
-
-# The default partial branch regexes, to be modified by the user.
-DEFAULT_PARTIAL = [
-    r'(?i)#\s*pragma[:\s]?\s*no\s*branch',
-]
-
-# The default partial branch regexes, based on Python semantics.
-# These are any Python branching constructs that can't actually execute all
-# their branches.
-DEFAULT_PARTIAL_ALWAYS = [
-    'while (True|1|False|0):',
-    'if (True|1|False|0):',
-]
-
-
-class CoverageConfig(object):
-    """Coverage.py configuration.
-
-    The attributes of this class are the various settings that control the
-    operation of coverage.py.
-
-    """
-    def __init__(self):
-        """Initialize the configuration attributes to their defaults."""
-        # Metadata about the config.
-        self.attempted_config_files = []
-        self.config_files = []
-
-        # Defaults for [run]
-        self.branch = False
-        self.concurrency = None
-        self.cover_pylib = False
-        self.data_file = ".coverage"
-        self.debug = []
-        self.note = None
-        self.parallel = False
-        self.plugins = []
-        self.source = None
-        self.timid = False
-
-        # Defaults for [report]
-        self.exclude_list = DEFAULT_EXCLUDE[:]
-        self.fail_under = 0
-        self.ignore_errors = False
-        self.include = None
-        self.omit = None
-        self.partial_always_list = DEFAULT_PARTIAL_ALWAYS[:]
-        self.partial_list = DEFAULT_PARTIAL[:]
-        self.precision = 0
-        self.show_missing = False
-        self.skip_covered = False
-
-        # Defaults for [html]
-        self.extra_css = None
-        self.html_dir = "htmlcov"
-        self.html_title = "Coverage report"
-
-        # Defaults for [xml]
-        self.xml_output = "coverage.xml"
-        self.xml_package_depth = 99
-
-        # Defaults for [paths]
-        self.paths = {}
-
-        # Options for plugins
-        self.plugin_options = {}
-
-    MUST_BE_LIST = ["omit", "include", "debug", "plugins"]
-
-    def from_args(self, **kwargs):
-        """Read config values from `kwargs`."""
-        for k, v in iitems(kwargs):
-            if v is not None:
-                if k in self.MUST_BE_LIST and isinstance(v, string_class):
-                    v = [v]
-                setattr(self, k, v)
-
-    def from_file(self, filename, section_prefix=""):
-        """Read configuration from a .rc file.
-
-        `filename` is a file name to read.
-
-        Returns True or False, whether the file could be read.
-
-        """
-        self.attempted_config_files.append(filename)
-
-        cp = HandyConfigParser(section_prefix)
-        try:
-            files_read = cp.read(filename)
-        except configparser.Error as err:
-            raise CoverageException("Couldn't read config file %s: %s" % (filename, err))
-        if not files_read:
-            return False
-
-        self.config_files.extend(files_read)
-
-        try:
-            for option_spec in self.CONFIG_FILE_OPTIONS:
-                self._set_attr_from_config_option(cp, *option_spec)
-        except ValueError as err:
-            raise CoverageException("Couldn't read config file %s: %s" % (filename, err))
-
-        # Check that there are no unrecognized options.
-        all_options = collections.defaultdict(set)
-        for option_spec in self.CONFIG_FILE_OPTIONS:
-            section, option = option_spec[1].split(":")
-            all_options[section].add(option)
-
-        for section, options in iitems(all_options):
-            if cp.has_section(section):
-                for unknown in set(cp.options(section)) - options:
-                    if section_prefix:
-                        section = section_prefix + section
-                    raise CoverageException(
-                        "Unrecognized option '[%s] %s=' in config file %s" % (
-                            section, unknown, filename
-                        )
-                    )
-
-        # [paths] is special
-        if cp.has_section('paths'):
-            for option in cp.options('paths'):
-                self.paths[option] = cp.getlist('paths', option)
-
-        # plugins can have options
-        for plugin in self.plugins:
-            if cp.has_section(plugin):
-                self.plugin_options[plugin] = cp.get_section(plugin)
-
-        return True
-
-    CONFIG_FILE_OPTIONS = [
-        # These are *args for _set_attr_from_config_option:
-        #   (attr, where, type_="")
-        #
-        #   attr is the attribute to set on the CoverageConfig object.
-        #   where is the section:name to read from the configuration file.
-        #   type_ is the optional type to apply, by using .getTYPE to read the
-        #       configuration value from the file.
-
-        # [run]
-        ('branch', 'run:branch', 'boolean'),
-        ('concurrency', 'run:concurrency'),
-        ('cover_pylib', 'run:cover_pylib', 'boolean'),
-        ('data_file', 'run:data_file'),
-        ('debug', 'run:debug', 'list'),
-        ('include', 'run:include', 'list'),
-        ('note', 'run:note'),
-        ('omit', 'run:omit', 'list'),
-        ('parallel', 'run:parallel', 'boolean'),
-        ('plugins', 'run:plugins', 'list'),
-        ('source', 'run:source', 'list'),
-        ('timid', 'run:timid', 'boolean'),
-
-        # [report]
-        ('exclude_list', 'report:exclude_lines', 'regexlist'),
-        ('fail_under', 'report:fail_under', 'int'),
-        ('ignore_errors', 'report:ignore_errors', 'boolean'),
-        ('include', 'report:include', 'list'),
-        ('omit', 'report:omit', 'list'),
-        ('partial_always_list', 'report:partial_branches_always', 'regexlist'),
-        ('partial_list', 'report:partial_branches', 'regexlist'),
-        ('precision', 'report:precision', 'int'),
-        ('show_missing', 'report:show_missing', 'boolean'),
-        ('skip_covered', 'report:skip_covered', 'boolean'),
-
-        # [html]
-        ('extra_css', 'html:extra_css'),
-        ('html_dir', 'html:directory'),
-        ('html_title', 'html:title'),
-
-        # [xml]
-        ('xml_output', 'xml:output'),
-        ('xml_package_depth', 'xml:package_depth', 'int'),
-    ]
-
-    def _set_attr_from_config_option(self, cp, attr, where, type_=''):
-        """Set an attribute on self if it exists in the ConfigParser."""
-        section, option = where.split(":")
-        if cp.has_option(section, option):
-            method = getattr(cp, 'get' + type_)
-            setattr(self, attr, method(section, option))
-
-    def get_plugin_options(self, plugin):
-        """Get a dictionary of options for the plugin named `plugin`."""
-        return self.plugin_options.get(plugin, {})
-
-    def set_option(self, option_name, value):
-        """Set an option in the configuration.
-
-        `option_name` is a colon-separated string indicating the section and
-        option name.  For example, the ``branch`` option in the ``[run]``
-        section of the config file would be indicated with `"run:branch"`.
-
-        `value` is the new value for the option.
-
-        """
-
-        # Check all the hard-coded options.
-        for option_spec in self.CONFIG_FILE_OPTIONS:
-            attr, where = option_spec[:2]
-            if where == option_name:
-                setattr(self, attr, value)
-                return
-
-        # See if it's a plugin option.
-        plugin_name, _, key = option_name.partition(":")
-        if key and plugin_name in self.plugins:
-            self.plugin_options.setdefault(plugin_name, {})[key] = value
-            return
-
-        # If we get here, we didn't find the option.
-        raise CoverageException("No such option: %r" % option_name)
-
-    def get_option(self, option_name):
-        """Get an option from the configuration.
-
-        `option_name` is a colon-separated string indicating the section and
-        option name.  For example, the ``branch`` option in the ``[run]``
-        section of the config file would be indicated with `"run:branch"`.
-
-        Returns the value of the option.
-
-        """
-
-        # Check all the hard-coded options.
-        for option_spec in self.CONFIG_FILE_OPTIONS:
-            attr, where = option_spec[:2]
-            if where == option_name:
-                return getattr(self, attr)
-
-        # See if it's a plugin option.
-        plugin_name, _, key = option_name.partition(":")
-        if key and plugin_name in self.plugins:
-            return self.plugin_options.get(plugin_name, {}).get(key)
-
-        # If we get here, we didn't find the option.
-        raise CoverageException("No such option: %r" % option_name)
-
-#
-# eflag: FileType = Python2
--- a/DebugClients/Python/coverage/control.py	Thu Sep 15 21:49:13 2016 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1196 +0,0 @@
-# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
-
-"""Core control stuff for coverage.py."""
-
-import atexit
-import inspect
-import os
-import platform
-import sys
-import traceback
-
-from coverage import env, files
-from coverage.annotate import AnnotateReporter
-from coverage.backward import string_class, iitems
-from coverage.collector import Collector
-from coverage.config import CoverageConfig
-from coverage.data import CoverageData, CoverageDataFiles
-from coverage.debug import DebugControl
-from coverage.files import TreeMatcher, FnmatchMatcher
-from coverage.files import PathAliases, find_python_files, prep_patterns
-from coverage.files import ModuleMatcher, abs_file
-from coverage.html import HtmlReporter
-from coverage.misc import CoverageException, bool_or_none, join_regex
-from coverage.misc import file_be_gone
-from coverage.monkey import patch_multiprocessing
-from coverage.plugin import FileReporter
-from coverage.plugin_support import Plugins
-from coverage.python import PythonFileReporter
-from coverage.results import Analysis, Numbers
-from coverage.summary import SummaryReporter
-from coverage.xmlreport import XmlReporter
-
-
-# Pypy has some unusual stuff in the "stdlib".  Consider those locations
-# when deciding where the stdlib is.
-try:
-    import _structseq
-except ImportError:
-    _structseq = None
-
-
-class Coverage(object):
-    """Programmatic access to coverage.py.
-
-    To use::
-
-        from coverage import Coverage
-
-        cov = Coverage()
-        cov.start()
-        #.. call your code ..
-        cov.stop()
-        cov.html_report(directory='covhtml')
-
-    """
-    def __init__(
-        self, data_file=None, data_suffix=None, cover_pylib=None,
-        auto_data=False, timid=None, branch=None, config_file=True,
-        source=None, omit=None, include=None, debug=None,
-        concurrency=None,
-    ):
-        """
-        `data_file` is the base name of the data file to use, defaulting to
-        ".coverage".  `data_suffix` is appended (with a dot) to `data_file` to
-        create the final file name.  If `data_suffix` is simply True, then a
-        suffix is created with the machine and process identity included.
-
-        `cover_pylib` is a boolean determining whether Python code installed
-        with the Python interpreter is measured.  This includes the Python
-        standard library and any packages installed with the interpreter.
-
-        If `auto_data` is true, then any existing data file will be read when
-        coverage measurement starts, and data will be saved automatically when
-        measurement stops.
-
-        If `timid` is true, then a slower and simpler trace function will be
-        used.  This is important for some environments where manipulation of
-        tracing functions breaks the faster trace function.
-
-        If `branch` is true, then branch coverage will be measured in addition
-        to the usual statement coverage.
-
-        `config_file` determines what configuration file to read:
-
-            * If it is ".coveragerc", it is interpreted as if it were True,
-              for backward compatibility.
-
-            * If it is a string, it is the name of the file to read.  If the
-              file can't be read, it is an error.
-
-            * If it is True, then a few standard files names are tried
-              (".coveragerc", "setup.cfg").  It is not an error for these files
-              to not be found.
-
-            * If it is False, then no configuration file is read.
-
-        `source` is a list of file paths or package names.  Only code located
-        in the trees indicated by the file paths or package names will be
-        measured.
-
-        `include` and `omit` are lists of file name patterns. Files that match
-        `include` will be measured, files that match `omit` will not.  Each
-        will also accept a single string argument.
-
-        `debug` is a list of strings indicating what debugging information is
-        desired.
-
-        `concurrency` is a string indicating the concurrency library being used
-        in the measured code.  Without this, coverage.py will get incorrect
-        results.  Valid strings are "greenlet", "eventlet", "gevent", or
-        "thread" (the default).
-
-        .. versionadded:: 4.0
-            The `concurrency` parameter.
-
-        """
-        # Build our configuration from a number of sources:
-        # 1: defaults:
-        self.config = CoverageConfig()
-
-        # 2: from the rcfile, .coveragerc or setup.cfg file:
-        if config_file:
-            did_read_rc = False
-            # Some API users were specifying ".coveragerc" to mean the same as
<