Process the keyword arguments as additional mappings to install in the
new object. In particular, `subkeys' is not special any more.
PyObject *sub = 0;
keydata_pyobj *me = 0;
key_data *kd = 0;
PyObject *sub = 0;
keydata_pyobj *me = 0;
key_data *kd = 0;
- static const char *const kwlist[] = { "subkeys", 0 };
- if (!PyArg_ParseTupleAndKeywords(arg, kw, "|O:new", KWLIST, &sub))
- goto end;
+ if (!PyArg_ParseTuple(arg, "|O:new", &sub)) goto end;
kd = key_newstruct();
if (sub && populate_struct(kd, sub)) goto end;
kd = key_newstruct();
if (sub && populate_struct(kd, sub)) goto end;
+ if (kw && populate_struct(kd, kw)) goto end;
me = (keydata_pyobj *)ty->tp_alloc(ty, 0);
me->gmops = &keydatastruct_gmops;
me->kd = kd; kd = 0;
me = (keydata_pyobj *)ty->tp_alloc(ty, 0);
me->gmops = &keydatastruct_gmops;
me->kd = kd; kd = 0;
def test_struct(me):
rng = T.detrand("kd-struct")
kd = C.KeyDataStructured({ "a": C.KeyDataString("a"),
def test_struct(me):
rng = T.detrand("kd-struct")
kd = C.KeyDataStructured({ "a": C.KeyDataString("a"),
- "b": C.KeyDataString("b"),
- "c": C.KeyDataString("c"),
- "d": C.KeyDataString("d") })
+ "b": C.KeyDataString("b") },
+ c = C.KeyDataString("c"),
+ d = C.KeyDataString("d"))
for i in ["a", "b", "c", "d"]: me.assertEqual(kd[i].str, i)
me.assertEqual(len(kd), 4)
me.check_encode(kd)
for i in ["a", "b", "c", "d"]: me.assertEqual(kd[i].str, i)
me.assertEqual(len(kd), 4)
me.check_encode(kd)