'If the name of the formal parameter starts with dot,
it\'s a tuple parameter, like this:
#          def MyFunc(xx, (a,b,c), yy):
#                  print a, b*2, c*42
In byte-code, the whole tuple is assigned to parameter \'.1\' and
then the tuple gets unpacked to \'a\', \'b\' and \'c\'.
Since identifiers starting with a dot are illegal in Python,
we can search for the byte-code equivalent to \'(a,b,c) = .1\''

def get_tuple_parameter(self, ast, name):

    assert (ast == 'stmts')
    for i in range(len(ast)):
        assert (ast[i][0] == 'stmt')
        node = ast[i][0][0]
        if ((node == 'assign') and (node[0] == ASSIGN_TUPLE_PARAM(name))):
            del ast[i]
            assert (node[1] == 'designator')
            return (('(' + self.traverse(node[1])) + ')')
    raise ("Can't    find    tuple    parameter" % name)
