Prepared the Python3 debug client for some obsolescences of the inspect.py module.

Sat, 12 Sep 2015 12:54:12 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 12 Sep 2015 12:54:12 +0200
changeset 4455
ca13a6f6c452
parent 4453
e8bea5026dd0
child 4456
9a2304647d95

Prepared the Python3 debug client for some obsolescences of the inspect.py module.

APIs/Python3/eric6.api 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/DebugUtilities.py file | annotate | diff | comparison | revisions
Documentation/Help/source.qch file | annotate | diff | comparison | revisions
Documentation/Help/source.qhp file | annotate | diff | comparison | revisions
Documentation/Source/eric6.DebugClients.Python3.DebugUtilities.html file | annotate | diff | comparison | revisions
Documentation/Source/eric6.install.html file | annotate | diff | comparison | revisions
Documentation/Source/index-eric6.DebugClients.Python3.html file | annotate | diff | comparison | revisions
eric6.e4p file | annotate | diff | comparison | revisions
install.py file | annotate | diff | comparison | revisions
--- a/APIs/Python3/eric6.api	Fri Sep 11 19:45:19 2015 +0200
+++ b/APIs/Python3/eric6.api	Sat Sep 12 12:54:12 2015 +0200
@@ -525,6 +525,10 @@
 eric6.DebugClients.Python3.DebugThread.DebugThread.traceThread?4()
 eric6.DebugClients.Python3.DebugThread.DebugThread.trace_dispatch?4(frame, event, arg)
 eric6.DebugClients.Python3.DebugThread.DebugThread?1(dbgClient, targ=None, args=None, kwargs=None, mainThread=False)
+eric6.DebugClients.Python3.DebugUtilities.ArgInfo?7
+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.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)
@@ -9395,6 +9399,7 @@
 eric6.install.main?4(argv)
 eric6.install.modDir?7
 eric6.install.platBinDir?7
+eric6.install.platBinDirOld?7
 eric6.install.prepareInfoFile?4(fileName)
 eric6.install.progLanguages?7
 eric6.install.progName?7
--- a/DebugClients/Python3/DebugBase.py	Fri Sep 11 19:45:19 2015 +0200
+++ b/DebugClients/Python3/DebugBase.py	Sat Sep 12 12:54:12 2015 +0200
@@ -16,6 +16,7 @@
 
 from DebugProtocol import ResponseClearWatch, ResponseClearBreak, \
     ResponseLine, ResponseSyntax, ResponseException, CallTrace
+from DebugUtilities import getargvalues, formatargvalues
 
 gRecursionLimit = 64
 
@@ -590,9 +591,9 @@
                     ffunc = ''
                 
                 if ffunc and not ffunc.startswith("<"):
-                    argInfo = inspect.getargvalues(fr)
+                    argInfo = getargvalues(fr)
                     try:
-                        fargs = inspect.formatargvalues(
+                        fargs = formatargvalues(
                             argInfo.args, argInfo.varargs,
                             argInfo.keywords, argInfo.locals)
                     except Exception:
@@ -652,9 +653,9 @@
                     ffunc = ''
                 
                 if ffunc and not ffunc.startswith("<"):
-                    argInfo = inspect.getargvalues(fr)
+                    argInfo = getargvalues(fr)
                     try:
-                        fargs = inspect.formatargvalues(
+                        fargs = formatargvalues(
                             argInfo.args, argInfo.varargs,
                             argInfo.keywords, argInfo.locals)
                     except Exception:
@@ -759,9 +760,9 @@
                     ffunc = ''
                 
                 if ffunc and not ffunc.startswith("<"):
-                    argInfo = inspect.getargvalues(fr)
+                    argInfo = getargvalues(fr)
                     try:
-                        fargs = inspect.formatargvalues(
+                        fargs = formatargvalues(
                             argInfo.args, argInfo.varargs,
                             argInfo.keywords, argInfo.locals)
                     except Exception:
--- a/DebugClients/Python3/DebugClientBase.py	Fri Sep 11 19:45:19 2015 +0200
+++ b/DebugClients/Python3/DebugClientBase.py	Sat Sep 12 12:54:12 2015 +0200
@@ -18,7 +18,6 @@
 import re
 import atexit
 import signal
-import inspect
 
 
 import DebugProtocol
@@ -27,6 +26,7 @@
 from AsyncFile import AsyncFile, AsyncPendingWrite
 from DebugConfig import ConfigVarTypeStrings
 from FlexCompleter import Completer
+from DebugUtilities import getargvalues, formatargvalues
 
 
 DebugClientInstance = None
@@ -1218,9 +1218,9 @@
             ffunc = ''
         
         if ffunc and not ffunc.startswith("<"):
-            argInfo = inspect.getargvalues(stackFrame)
+            argInfo = getargvalues(stackFrame)
             try:
-                fargs = inspect.formatargvalues(
+                fargs = formatargvalues(
                     argInfo.args, argInfo.varargs,
                     argInfo.keywords, argInfo.locals)
             except Exception:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DebugClients/Python3/DebugUtilities.py	Sat Sep 12 12:54:12 2015 +0200
@@ -0,0 +1,124 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2015 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing utilities functions for the debug client.
+"""
+
+#
+# Taken from inspect.py of Python 3.4
+#
+
+from collections import namedtuple
+from inspect import iscode, isframe
+
+# Create constants for the compiler flags in Include/code.h
+# We try to get them from dis to avoid duplication, but fall
+# back to hardcoding so the dependency is optional
+try:
+    from dis import COMPILER_FLAG_NAMES
+except ImportError:
+    CO_OPTIMIZED, CO_NEWLOCALS = 0x1, 0x2
+    CO_VARARGS, CO_VARKEYWORDS = 0x4, 0x8
+    CO_NESTED, CO_GENERATOR, CO_NOFREE = 0x10, 0x20, 0x40
+else:
+    mod_dict = globals()
+    for k, v in COMPILER_FLAG_NAMES.items():
+        mod_dict["CO_" + v] = k
+
+ArgInfo = namedtuple('ArgInfo', 'args varargs keywords locals')
+
+
+def getargvalues(frame):
+    """
+    Function to get information about arguments passed into a
+    particular frame.
+    
+    @param frame reference to a frame object to be processed
+    @type frame
+    @return tuple of four things, where 'args' is a list of the argument names,
+        'varargs' and 'varkw' are the names of the * and ** arguments or None
+        and 'locals' is the locals dictionary of the given frame.
+    @exception TypeError raised if the input parameter is not a frame object
+    """
+    if not isframe(frame):
+        raise TypeError('{!r} is not a frame object'.format(frame))
+
+    args, varargs, kwonlyargs, varkw = _getfullargs(frame.f_code)
+    return ArgInfo(args + kwonlyargs, varargs, varkw, frame.f_locals)
+
+
+def _getfullargs(co):
+    """
+    Protected function to get information about the arguments accepted
+    by a code object.
+    
+    @param co reference to a code object to be processed
+    @type code
+    @return tuple of four things, where 'args' and 'kwonlyargs' are lists of
+        argument names, and 'varargs' and 'varkw' are the names of the
+        * and ** arguments or None.
+    @exception TypeError raised if the input parameter is not a code object
+    """
+    if not iscode(co):
+        raise TypeError('{!r} is not a code object'.format(co))
+
+    nargs = co.co_argcount
+    names = co.co_varnames
+    nkwargs = co.co_kwonlyargcount
+    args = list(names[:nargs])
+    kwonlyargs = list(names[nargs:nargs + nkwargs])
+
+    nargs += nkwargs
+    varargs = None
+    if co.co_flags & CO_VARARGS:
+        varargs = co.co_varnames[nargs]
+        nargs = nargs + 1
+    varkw = None
+    if co.co_flags & CO_VARKEYWORDS:
+        varkw = co.co_varnames[nargs]
+    return args, varargs, kwonlyargs, varkw
+
+
+def formatargvalues(args, varargs, varkw, locals,
+                    formatarg=str,
+                    formatvarargs=lambda name: '*' + name,
+                    formatvarkw=lambda name: '**' + name,
+                    formatvalue=lambda value: '=' + repr(value)):
+    """
+    Function to format an argument spec from the 4 values returned
+    by getargvalues.
+    
+    @param args list of argument names
+    @type list of str
+    @param varargs name of the variable arguments
+    @type str
+    @param varkw name of the keyword arguments
+    @type str
+    @param locals reference to the local variables dictionary
+    @type dict
+    @keyparam formatarg argument formatting function
+    @type func
+    @keyparam formatvarargs variable arguments formatting function
+    @type func
+    @keyparam formatvarkw keyword arguments formatting function
+    @type func
+    @keyparam formatvalue value formating functtion
+    @type func
+    @return formatted call signature
+    @rtype str
+    """
+    specs = []
+    for i in range(len(args)):
+        name = args[i]
+        specs.append(formatarg(name) + formatvalue(locals[name]))
+    if varargs:
+        specs.append(formatvarargs(varargs) + formatvalue(locals[varargs]))
+    if varkw:
+        specs.append(formatvarkw(varkw) + formatvalue(locals[varkw]))
+    argvalues = '(' + ', '.join(specs) + ')'
+    if '__return__' in locals:
+        argvalues += " -> " + formatvalue(locals['__return__'])
+    return argvalues
Binary file Documentation/Help/source.qch has changed
--- a/Documentation/Help/source.qhp	Fri Sep 11 19:45:19 2015 +0200
+++ b/Documentation/Help/source.qhp	Sat Sep 12 12:54:12 2015 +0200
@@ -56,6 +56,7 @@
               <section title="eric6.DebugClients.Python3.DebugConfig" ref="eric6.DebugClients.Python3.DebugConfig.html" />
               <section title="eric6.DebugClients.Python3.DebugProtocol" ref="eric6.DebugClients.Python3.DebugProtocol.html" />
               <section title="eric6.DebugClients.Python3.DebugThread" ref="eric6.DebugClients.Python3.DebugThread.html" />
+              <section title="eric6.DebugClients.Python3.DebugUtilities" ref="eric6.DebugClients.Python3.DebugUtilities.html" />
               <section title="eric6.DebugClients.Python3.FlexCompleter" ref="eric6.DebugClients.Python3.FlexCompleter.html" />
               <section title="eric6.DebugClients.Python3.PyProfile" ref="eric6.DebugClients.Python3.PyProfile.html" />
               <section title="eric6.DebugClients.Python3.eric6dbgstub" ref="eric6.DebugClients.Python3.eric6dbgstub.html" />
@@ -3117,6 +3118,7 @@
       <keyword name="DebugUI.shutdown" id="DebugUI.shutdown" ref="eric6.Debugger.DebugUI.html#DebugUI.shutdown" />
       <keyword name="DebugUI.shutdownServer" id="DebugUI.shutdownServer" ref="eric6.Debugger.DebugUI.html#DebugUI.shutdownServer" />
       <keyword name="DebugUI.variablesFilter" id="DebugUI.variablesFilter" ref="eric6.Debugger.DebugUI.html#DebugUI.variablesFilter" />
+      <keyword name="DebugUtilities (Module)" id="DebugUtilities (Module)" ref="eric6.DebugClients.Python3.DebugUtilities.html" />
       <keyword name="DebugViewer" id="DebugViewer" ref="eric6.Debugger.DebugViewer.html#DebugViewer" />
       <keyword name="DebugViewer (Constructor)" id="DebugViewer (Constructor)" ref="eric6.Debugger.DebugViewer.html#DebugViewer.__init__" />
       <keyword name="DebugViewer (Module)" id="DebugViewer (Module)" ref="eric6.Debugger.DebugViewer.html" />
@@ -13369,6 +13371,7 @@
       <keyword name="_debugclient_start_new_thread" id="_debugclient_start_new_thread" ref="eric6.DebugClients.Python.DebugClientThreads.html#_debugclient_start_new_thread" />
       <keyword name="_debugclient_start_new_thread" id="_debugclient_start_new_thread" ref="eric6.DebugClients.Python3.DebugClientThreads.html#_debugclient_start_new_thread" />
       <keyword name="_encode_base64" id="_encode_base64" ref="eric6.UI.EmailDialog.html#_encode_base64" />
+      <keyword name="_getfullargs" id="_getfullargs" ref="eric6.DebugClients.Python3.DebugUtilities.html#_getfullargs" />
       <keyword name="_indent" id="_indent" ref="eric6.Utilities.ClassBrowsers.pyclbr.html#_indent" />
       <keyword name="_indent" id="_indent" ref="eric6.Utilities.ModuleParser.html#_indent" />
       <keyword name="_is_eol_token" id="_is_eol_token" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#_is_eol_token" />
@@ -13587,6 +13590,7 @@
       <keyword name="flush" id="flush" ref="eric6.DebugClients.Ruby.AsyncFile.html#flush" />
       <keyword name="formatTime" id="formatTime" ref="eric6.Plugins.VcsPlugins.vcsPySvn.SvnUtilities.html#formatTime" />
       <keyword name="format_witnesses" id="format_witnesses" ref="eric6.Plugins.CheckerPlugins.Tabnanny.Tabnanny.html#format_witnesses" />
+      <keyword name="formatargvalues" id="formatargvalues" ref="eric6.DebugClients.Python3.DebugUtilities.html#formatargvalues" />
       <keyword name="fromNativeSeparators" id="fromNativeSeparators" ref="eric6.Utilities.__init__.html#fromNativeSeparators" />
       <keyword name="generateDistroInfo" id="generateDistroInfo" ref="eric6.Utilities.__init__.html#generateDistroInfo" />
       <keyword name="generatePluginsVersionInfo" id="generatePluginsVersionInfo" ref="eric6.Utilities.__init__.html#generatePluginsVersionInfo" />
@@ -13712,6 +13716,7 @@
       <keyword name="get_codingBytes" id="get_codingBytes" ref="eric6.Utilities.__init__.html#get_codingBytes" />
       <keyword name="get_parser" id="get_parser" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.pep8.html#get_parser" />
       <keyword name="get_thread" id="get_thread" ref="eric6.DebugClients.Ruby.Debuggee.html#get_thread" />
+      <keyword name="getargvalues" id="getargvalues" ref="eric6.DebugClients.Python3.DebugUtilities.html#getargvalues" />
       <keyword name="getpass" id="getpass" ref="eric6.DebugClients.Python.getpass.html#getpass" />
       <keyword name="getpass" id="getpass" ref="eric6.DebugClients.Python3.getpass.html#getpass" />
       <keyword name="getpass (Module)" id="getpass (Module)" ref="eric6.DebugClients.Python.getpass.html" />
@@ -14086,6 +14091,7 @@
       <file>eric6.DebugClients.Python3.DebugConfig.html</file>
       <file>eric6.DebugClients.Python3.DebugProtocol.html</file>
       <file>eric6.DebugClients.Python3.DebugThread.html</file>
+      <file>eric6.DebugClients.Python3.DebugUtilities.html</file>
       <file>eric6.DebugClients.Python3.FlexCompleter.html</file>
       <file>eric6.DebugClients.Python3.PyProfile.html</file>
       <file>eric6.DebugClients.Python3.eric6dbgstub.html</file>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/eric6.DebugClients.Python3.DebugUtilities.html	Sat Sep 12 12:54:12 2015 +0200
@@ -0,0 +1,145 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric6.DebugClients.Python3.DebugUtilities</title>
+<meta charset="UTF-8">
+<style>
+body {
+    background: #EDECE6;
+    margin: 0em 1em 10em 1em;
+    color: black;
+}
+
+h1 { color: white; background: #85774A; }
+h2 { color: white; background: #85774A; }
+h3 { color: white; background: #9D936E; }
+h4 { color: white; background: #9D936E; }
+    
+a { color: #BA6D36; }
+
+</style>
+</head>
+<body><a NAME="top" ID="top"></a>
+<h1>eric6.DebugClients.Python3.DebugUtilities</h1>
+<p>
+Module implementing utilities functions for the debug client.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>ArgInfo</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr>
+<td><a href="#_getfullargs">_getfullargs</a></td>
+<td>Protected function to get information about the arguments accepted by a code object.</td>
+</tr><tr>
+<td><a href="#formatargvalues">formatargvalues</a></td>
+<td>Function to format an argument spec from the 4 values returned by getargvalues.</td>
+</tr><tr>
+<td><a href="#getargvalues">getargvalues</a></td>
+<td>Function to get information about arguments passed into a particular frame.</td>
+</tr>
+</table>
+<hr /><hr />
+<a NAME="_getfullargs" ID="_getfullargs"></a>
+<h2>_getfullargs</h2>
+<b>_getfullargs</b>(<i>co</i>)
+<p>
+    Protected function to get information about the arguments accepted
+    by a code object.
+</p><dl>
+<dt><i>co</i> (code)</dt>
+<dd>
+reference to a code object to be processed
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+tuple of four things, where 'args' and 'kwonlyargs' are lists of
+        argument names, and 'varargs' and 'varkw' are the names of the
+        * and ** arguments or None.
+</dd>
+</dl><dl>
+<dt>Raises <b>TypeError</b>:</dt>
+<dd>
+raised if the input parameter is not a code object
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="formatargvalues" ID="formatargvalues"></a>
+<h2>formatargvalues</h2>
+<b>formatargvalues</b>(<i>args, varargs, varkw, locals, formatarg=str, formatvarargs=lambda name: '*' + name, formatvarkw=lambda name: '**' + name, formatvalue=lambda value: '=' + repr(value)</i>)
+<p>
+    Function to format an argument spec from the 4 values returned
+    by getargvalues.
+</p><dl>
+<dt><i>args</i> (list of str)</dt>
+<dd>
+list of argument names
+</dd><dt><i>varargs</i> (str)</dt>
+<dd>
+name of the variable arguments
+</dd><dt><i>varkw</i> (str)</dt>
+<dd>
+name of the keyword arguments
+</dd><dt><i>locals</i> (dict)</dt>
+<dd>
+reference to the local variables dictionary
+</dd><dt><i>formatarg=</i> (func)</dt>
+<dd>
+argument formatting function
+</dd><dt><i>formatvarargs=</i> (func)</dt>
+<dd>
+variable arguments formatting function
+</dd><dt><i>formatvarkw=</i> (func)</dt>
+<dd>
+keyword arguments formatting function
+</dd><dt><i>formatvalue=</i> (func)</dt>
+<dd>
+value formating functtion
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+formatted call signature
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="getargvalues" ID="getargvalues"></a>
+<h2>getargvalues</h2>
+<b>getargvalues</b>(<i>frame</i>)
+<p>
+    Function to get information about arguments passed into a
+    particular frame.
+</p><dl>
+<dt><i>frame</i> (frame)</dt>
+<dd>
+reference to a frame object to be processed
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+tuple of four things, where 'args' is a list of the argument names,
+        'varargs' and 'varkw' are the names of the * and ** arguments or None
+        and 'locals' is the locals dictionary of the given frame.
+</dd>
+</dl><dl>
+<dt>Raises <b>TypeError</b>:</dt>
+<dd>
+raised if the input parameter is not a frame object
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- a/Documentation/Source/eric6.install.html	Fri Sep 11 19:45:19 2015 +0200
+++ b/Documentation/Source/eric6.install.html	Sat Sep 12 12:54:12 2015 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>BlackLists</td></tr><tr><td>PlatformsBlackLists</td></tr><tr><td>PythonMarkers</td></tr><tr><td>PythonTextMarkers</td></tr><tr><td>apisDir</td></tr><tr><td>cfg</td></tr><tr><td>configLength</td></tr><tr><td>configName</td></tr><tr><td>currDir</td></tr><tr><td>defaultMacAppBundleName</td></tr><tr><td>defaultMacAppBundlePath</td></tr><tr><td>defaultMacPythonExe</td></tr><tr><td>distDir</td></tr><tr><td>doCleanup</td></tr><tr><td>doCompile</td></tr><tr><td>includePythonVariant</td></tr><tr><td>installApis</td></tr><tr><td>macAppBundleName</td></tr><tr><td>macAppBundlePath</td></tr><tr><td>macPythonExe</td></tr><tr><td>modDir</td></tr><tr><td>platBinDir</td></tr><tr><td>progLanguages</td></tr><tr><td>progName</td></tr><tr><td>pyModDir</td></tr><tr><td>pyqtOverride</td></tr><tr><td>pyqtVariant</td></tr><tr><td>sourceDir</td></tr>
+<tr><td>BlackLists</td></tr><tr><td>PlatformsBlackLists</td></tr><tr><td>PythonMarkers</td></tr><tr><td>PythonTextMarkers</td></tr><tr><td>apisDir</td></tr><tr><td>cfg</td></tr><tr><td>configLength</td></tr><tr><td>configName</td></tr><tr><td>currDir</td></tr><tr><td>defaultMacAppBundleName</td></tr><tr><td>defaultMacAppBundlePath</td></tr><tr><td>defaultMacPythonExe</td></tr><tr><td>distDir</td></tr><tr><td>doCleanup</td></tr><tr><td>doCompile</td></tr><tr><td>includePythonVariant</td></tr><tr><td>installApis</td></tr><tr><td>macAppBundleName</td></tr><tr><td>macAppBundlePath</td></tr><tr><td>macPythonExe</td></tr><tr><td>modDir</td></tr><tr><td>platBinDir</td></tr><tr><td>platBinDirOld</td></tr><tr><td>progLanguages</td></tr><tr><td>progName</td></tr><tr><td>pyModDir</td></tr><tr><td>pyqtOverride</td></tr><tr><td>pyqtVariant</td></tr><tr><td>sourceDir</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/Documentation/Source/index-eric6.DebugClients.Python3.html	Fri Sep 11 19:45:19 2015 +0200
+++ b/Documentation/Source/index-eric6.DebugClients.Python3.html	Sat Sep 12 12:54:12 2015 +0200
@@ -63,6 +63,9 @@
 <td><a href="eric6.DebugClients.Python3.DebugThread.html">DebugThread</a></td>
 <td>Module implementing the debug thread.</td>
 </tr><tr>
+<td><a href="eric6.DebugClients.Python3.DebugUtilities.html">DebugUtilities</a></td>
+<td>Module implementing utilities functions for the debug client.</td>
+</tr><tr>
 <td><a href="eric6.DebugClients.Python3.FlexCompleter.html">FlexCompleter</a></td>
 <td>Word completion for the eric6 shell.</td>
 </tr><tr>
--- a/eric6.e4p	Fri Sep 11 19:45:19 2015 +0200
+++ b/eric6.e4p	Sat Sep 12 12:54:12 2015 +0200
@@ -77,6 +77,7 @@
     <Source>DebugClients/Python3/DebugConfig.py</Source>
     <Source>DebugClients/Python3/DebugProtocol.py</Source>
     <Source>DebugClients/Python3/DebugThread.py</Source>
+    <Source>DebugClients/Python3/DebugUtilities.py</Source>
     <Source>DebugClients/Python3/FlexCompleter.py</Source>
     <Source>DebugClients/Python3/PyProfile.py</Source>
     <Source>DebugClients/Python3/__init__.py</Source>
--- a/install.py	Fri Sep 11 19:45:19 2015 +0200
+++ b/install.py	Sat Sep 12 12:54:12 2015 +0200
@@ -38,6 +38,9 @@
 modDir = None
 pyModDir = None
 platBinDir = None
+# TODO: change the installation location on Win to the Scripts directory
+# following entry is needed to uninstall the scripts from the former location
+platBinDirOld = None
 distDir = None
 apisDir = None
 installApis = True

eric ide

mercurial