- if (!PyArg_ParseTuple(arg, "s:bytype", &type)) goto end;
- if ((k = key_bytype(KEYFILE_KF(me), type)) == 0) RETURN_NONE;
- rc = key_pywrap(me, k);
+ if (!PyArg_ParseTupleAndKeywords(arg, kw, "s|O:bytype", KWLIST,
+ &type, &failp))
+ goto end;
+ if ((k = key_bytype(KEYFILE_KF(me), type)) != 0) rc = key_pywrap(me, k);
+ else if (PyObject_IsTrue(failp)) KEYERR(KERR_NOTFOUND);
+ else RETURN_NONE;