static int __init__(PyObject *self, PyObject *args, PyObject *kwds) { ligolw_RowDumper *rowdumper = (ligolw_RowDumper *) self; Py_UNICODE default_delimiter = ','; rowdumper->delimiter = NULL; if(!PyArg_ParseTuple(args, "OO|U", &rowdumper->attributes, &rowdumper->formats, &rowdumper->delimiter)) return -1; if(rowdumper->delimiter) Py_INCREF(rowdumper->delimiter); else rowdumper->delimiter = PyUnicode_FromUnicode(&default_delimiter, 1); rowdumper->attributes = llwtokenizer_build_attributes(rowdumper->attributes); rowdumper->formats = llwtokenizer_build_formats(rowdumper->formats); if(!rowdumper->delimiter || !rowdumper->attributes || !rowdumper->formats) /* memory clean-up happens in __del__() */ return -1; if(PyTuple_GET_SIZE(rowdumper->attributes) != PyTuple_GET_SIZE(rowdumper->formats)) { /* memory clean-up happens in __del__() */ PyErr_SetString(PyExc_ValueError, "len(attributes) != len(formats)"); return -1; } rowdumper->rows_converted = 0; rowdumper->iter = Py_None; Py_INCREF(rowdumper->iter); rowdumper->tokens = Py_None; Py_INCREF(rowdumper->tokens); return 0; }
static int __init__(PyObject *self, PyObject *args, PyObject *kwds) { ligolw_RowBuilder *rowbuilder = (ligolw_RowBuilder *) self; rowbuilder->interns = NULL; if(!PyArg_ParseTuple(args, "OO|O", &rowbuilder->rowtype, &rowbuilder->attributes, &rowbuilder->interns)) return -1; Py_INCREF(rowbuilder->rowtype); rowbuilder->attributes = llwtokenizer_build_attributes(rowbuilder->attributes); if(rowbuilder->interns) rowbuilder->interns = PySequence_Tuple(rowbuilder->interns); else rowbuilder->interns = PyTuple_New(0); if(!rowbuilder->attributes || !rowbuilder->interns) return -1; rowbuilder->row = Py_None; Py_INCREF(rowbuilder->row); rowbuilder->i = 0; rowbuilder->iter = NULL; return 0; }