    protected void parse(PyObject[] args, String[] kws) {
        int largs = args.length;
        if (kws != null) {
            for (String kw: kws) {
                keywords.put(kw, args[--largs]);
            }
        }
        arguments = new PyObject[largs];
        System.arraycopy(args, 0, arguments, 0, largs);
    }

    protected void parse(PyObject[] args, String[] kws) {
        int largs = args.length;
        if (kws != null) {
            for (int i = kws.length - 1; i >= 0; i--) {
                keywords.put(kws[i], args[--largs]);
            }
        }
        arguments = new PyObject[largs];
        System.arraycopy(args, 0, arguments, 0, largs);
    }
