1010#include <shadow.h>
1111#endif
1212
13+ /*[clinic input]
14+ output preset file
15+ module spwd
16+ [clinic start generated code]*/
17+ /*[clinic end generated code: output=da39a3ee5e6b4b0d input=b3464a3667278fae]*/
1318
1419PyDoc_STRVAR (spwd__doc__ ,
1520"This module provides access to the Unix shadow password database.\n\
@@ -107,20 +112,25 @@ static PyObject *mkspent(struct spwd *p)
107112
108113#ifdef HAVE_GETSPNAM
109114
110- PyDoc_STRVAR (spwd_getspnam__doc__ ,
111- "getspnam(name) -> (sp_namp, sp_pwdp, sp_lstchg, sp_min, sp_max,\n\
112- sp_warn, sp_inact, sp_expire, sp_flag)\n\
113- Return the shadow password database entry for the given user name.\n\
114- See spwd.__doc__ for more on shadow password database entries." );
115+ /*[clinic input]
116+ spwd.getspnam
115117
116- static PyObject * spwd_getspnam (PyObject * self , PyObject * args )
118+ arg: unicode
119+ /
120+
121+ Return the shadow password database entry for the given user name.
122+
123+ See `help(spwd)` for more on shadow password database entries.
124+ [clinic start generated code]*/
125+
126+ static PyObject *
127+ spwd_getspnam_impl (PyModuleDef * module , PyObject * arg )
128+ /*[clinic end generated code: output=9f6bbe51a4eb3b21 input=dd89429e6167a00f]*/
117129{
118130 char * name ;
119131 struct spwd * p ;
120- PyObject * arg , * bytes , * retval = NULL ;
132+ PyObject * bytes , * retval = NULL ;
121133
122- if (!PyArg_ParseTuple (args , "U:getspnam" , & arg ))
123- return NULL ;
124134 if ((bytes = PyUnicode_EncodeFSDefault (arg )) == NULL )
125135 return NULL ;
126136 if (PyBytes_AsStringAndSize (bytes , & name , NULL ) == -1 )
@@ -139,14 +149,17 @@ static PyObject* spwd_getspnam(PyObject *self, PyObject *args)
139149
140150#ifdef HAVE_GETSPENT
141151
142- PyDoc_STRVAR (spwd_getspall__doc__ ,
143- "getspall() -> list_of_entries\n\
144- Return a list of all available shadow password database entries, \
145- in arbitrary order.\n\
146- See spwd.__doc__ for more on shadow password database entries." );
152+ /*[clinic input]
153+ spwd.getspall
154+
155+ Return a list of all available shadow password database entries, in arbitrary order.
156+
157+ See `help(spwd)` for more on shadow password database entries.
158+ [clinic start generated code]*/
147159
148160static PyObject *
149- spwd_getspall (PyObject * self , PyObject * args )
161+ spwd_getspall_impl (PyModuleDef * module )
162+ /*[clinic end generated code: output=b12d8ec7bdb29612 input=b2c84b7857d622bd]*/
150163{
151164 PyObject * d ;
152165 struct spwd * p ;
@@ -171,10 +184,10 @@ spwd_getspall(PyObject *self, PyObject *args)
171184
172185static PyMethodDef spwd_methods [] = {
173186#ifdef HAVE_GETSPNAM
174- { "getspnam" , spwd_getspnam , METH_VARARGS , spwd_getspnam__doc__ },
187+ SPWD_GETSPNAM_METHODDEF
175188#endif
176189#ifdef HAVE_GETSPENT
177- { "getspall" , spwd_getspall , METH_NOARGS , spwd_getspall__doc__ },
190+ SPWD_GETSPALL_METHODDEF
178191#endif
179192 {NULL , NULL } /* sentinel */
180193};
0 commit comments