DebugClients/Python3/DebugUtilities.py

branch
debugger speed
changeset 5178
878ce843ca9f
parent 5174
8c48f5e0cd92
child 5179
5f56410e7624
diff -r 8c48f5e0cd92 -r 878ce843ca9f DebugClients/Python3/DebugUtilities.py
--- a/DebugClients/Python3/DebugUtilities.py	Sun Sep 18 21:35:53 2016 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,149 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2015 - 2016 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('{0!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('{0!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
-
-
-def prepareJsonCommand(method, params):
-    """
-    Function to prepare a single command or response for transmission to
-    the IDE.
-    
-    @param method command or response name to be sent
-    @type str
-    @param params dictionary of named parameters for the command or response
-    @type dict
-    @return prepared JSON command or response string
-    @rtype str
-    """
-    import json
-    
-    commandDict = {
-        "jsonrpc": "2.0",
-        "method": method,
-        "params": params,
-    }
-    return json.dumps(commandDict) + '\n'
-
-#
-# eflag: noqa = M702

eric ide

mercurial