static PyObject * grp_getgrgid(PyObject *self, PyObject *pyo_id) { PyObject *py_int_id; gid_t gid; struct group *p; py_int_id = PyNumber_Int(pyo_id); if (!py_int_id) return NULL; if (!_Py_Gid_Converter(py_int_id, &gid)) { Py_DECREF(py_int_id); return NULL; } Py_DECREF(py_int_id); if ((p = getgrgid(gid)) == NULL) { if (gid < 0) PyErr_Format(PyExc_KeyError, "getgrgid(): gid not found: %ld", (long)gid); else PyErr_Format(PyExc_KeyError, "getgrgid(): gid not found: %lu", (unsigned long)gid); return NULL; } return mkgrent(p); }
static PyObject * grp_getgrgid_impl(PyModuleDef *module, PyObject *id) /*[clinic end generated code: output=8a11f5fdeb8c78a0 input=15fa0e2ccf5cda25]*/ { PyObject *py_int_id; gid_t gid; struct group *p; if (!_Py_Gid_Converter(id, &gid)) { if (!PyErr_ExceptionMatches(PyExc_TypeError)) { return NULL; } PyErr_Clear(); if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1, "group id must be int, not %.200", id->ob_type->tp_name) < 0) { return NULL; } py_int_id = PyNumber_Long(id); if (!py_int_id) return NULL; if (!_Py_Gid_Converter(py_int_id, &gid)) { Py_DECREF(py_int_id); return NULL; } Py_DECREF(py_int_id); } if ((p = getgrgid(gid)) == NULL) { PyObject *gid_obj = _PyLong_FromGid(gid); if (gid_obj == NULL) return NULL; PyErr_Format(PyExc_KeyError, "getgrgid(): gid not found: %S", gid_obj); Py_DECREF(gid_obj); return NULL; } return mkgrent(p); }