82 if co.co_flags & CO_VARKEYWORDS: |
82 if co.co_flags & CO_VARKEYWORDS: |
83 varkw = co.co_varnames[nargs] |
83 varkw = co.co_varnames[nargs] |
84 return args, varargs, kwonlyargs, varkw |
84 return args, varargs, kwonlyargs, varkw |
85 |
85 |
86 |
86 |
87 def formatargvalues(args, varargs, varkw, locals, |
87 def formatargvalues(args, varargs, varkw, localsDict, |
88 formatarg=str, |
88 formatarg=str, |
89 formatvarargs=lambda name: '*' + name, |
89 formatvarargs=lambda name: '*' + name, |
90 formatvarkw=lambda name: '**' + name, |
90 formatvarkw=lambda name: '**' + name, |
91 formatvalue=lambda value: '=' + repr(value)): |
91 formatvalue=lambda value: '=' + repr(value)): |
92 """ |
92 """ |
97 @type list of str |
97 @type list of str |
98 @param varargs name of the variable arguments |
98 @param varargs name of the variable arguments |
99 @type str |
99 @type str |
100 @param varkw name of the keyword arguments |
100 @param varkw name of the keyword arguments |
101 @type str |
101 @type str |
102 @param locals reference to the local variables dictionary |
102 @param localsDict reference to the local variables dictionary |
103 @type dict |
103 @type dict |
104 @keyparam formatarg argument formatting function |
104 @keyparam formatarg argument formatting function |
105 @type func |
105 @type func |
106 @keyparam formatvarargs variable arguments formatting function |
106 @keyparam formatvarargs variable arguments formatting function |
107 @type func |
107 @type func |
113 @rtype str |
113 @rtype str |
114 """ |
114 """ |
115 specs = [] |
115 specs = [] |
116 for i in range(len(args)): |
116 for i in range(len(args)): |
117 name = args[i] |
117 name = args[i] |
118 specs.append(formatarg(name) + formatvalue(locals[name])) |
118 specs.append(formatarg(name) + formatvalue(localsDict[name])) |
119 if varargs: |
119 if varargs: |
120 specs.append(formatvarargs(varargs) + formatvalue(locals[varargs])) |
120 specs.append(formatvarargs(varargs) + formatvalue(localsDict[varargs])) |
121 if varkw: |
121 if varkw: |
122 specs.append(formatvarkw(varkw) + formatvalue(locals[varkw])) |
122 specs.append(formatvarkw(varkw) + formatvalue(localsDict[varkw])) |
123 argvalues = '(' + ', '.join(specs) + ')' |
123 argvalues = '(' + ', '.join(specs) + ')' |
124 if '__return__' in locals: |
124 if '__return__' in localsDict: |
125 argvalues += " -> " + formatvalue(locals['__return__']) |
125 argvalues += " -> " + formatvalue(localsDict['__return__']) |
126 return argvalues |
126 return argvalues |
127 |
127 |
128 |
128 |
129 def prepareJsonCommand(method, params): |
129 def prepareJsonCommand(method, params): |
130 """ |
130 """ |