def p_varargslist17(p):
    # def f(a=1, b=2, *args, **kwargs)
    list_args, list_defaults = p[4]
    if len(list_args) != len(list_defaults):
        msg = 'non-default argument follows default argument.'
        tok = FakeToken(p.lexer.lexer, p.lineno(2))
        syntax_error(msg, tok)
    args = [p[1]] + list_args
    defaults = [p[3]] + list_defaults
    p[0] = ast.arguments(args=args, defaults=defaults, vararg=p[7], kwarg=p[10])
Deeply copies everything in the query object except the connection object is shared
dataset/ETHPy150Open nucleic/enaml/enaml/core/parser.py/p_varargslist17--crossover with--dataset/ETHPy150Open ambitioninc/django-query-builder/querybuilder/query.py/Query.copy