diff options
author | Ondrej Oprala | 2013-08-29 14:57:04 +0200 |
---|---|---|
committer | Karel Zak | 2013-09-20 12:48:53 +0200 |
commit | 464074532c0d1898f945a00c2f143e5b3ca59601 (patch) | |
tree | beb19a7e647b6738c57a822d7c4fdb8992042bb0 /libmount/python/tab.c | |
parent | build-sys: support --with-python[={2,3}] (diff) | |
download | kernel-qcow2-util-linux-464074532c0d1898f945a00c2f143e5b3ca59601.tar.gz kernel-qcow2-util-linux-464074532c0d1898f945a00c2f143e5b3ca59601.tar.xz kernel-qcow2-util-linux-464074532c0d1898f945a00c2f143e5b3ca59601.zip |
pylibmount: rewrite to be py2/py3 universal
Signed-off-by: Ondrej Oprala <ooprala@redhat.com>
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'libmount/python/tab.c')
-rw-r--r-- | libmount/python/tab.c | 41 |
1 files changed, 12 insertions, 29 deletions
diff --git a/libmount/python/tab.c b/libmount/python/tab.c index 817643cf8..9ea6924c0 100644 --- a/libmount/python/tab.c +++ b/libmount/python/tab.c @@ -148,22 +148,25 @@ static PyObject *Table_replace_file(TableObject *self, PyObject *args, PyObject return rc ? UL_RaiseExc(-rc) : UL_IncRef(self); } -#define Table_write_file_HELP "write_file(file)\n\n" \ +#define Table_write_file_HELP "write_file(path)\n\n" \ "This function writes tab to file(stream)" static PyObject *Table_write_file(TableObject *self, PyObject *args, PyObject *kwds) { int rc; - PyFileObject *stream = NULL; + //PyObject *stream = NULL; FILE *f = NULL; - char *kwlist[] = {"file", NULL}; + char *path = NULL; + char *kwlist[] = {"path", NULL}; - if (!PyArg_ParseTupleAndKeywords(args, kwds, "O!", kwlist, - &PyFile_Type, &stream)) { + if (!PyArg_ParseTupleAndKeywords(args, kwds, "s", kwlist, + &path)) { PyErr_SetString(PyExc_TypeError, ARG_ERR); return NULL; } - f = PyFile_AsFile((PyObject *)stream); + if (!(f = fopen(path, "w"))) + return UL_RaiseExc(errno); rc = mnt_table_write_file(self->tab, f); + fclose(f); return rc ? UL_RaiseExc(-rc) : UL_IncRef(self); } @@ -427,24 +430,6 @@ static PyObject *Table_parse_swaps(TableObject *self, PyObject* args, PyObject * return rc ? UL_RaiseExc(-rc) : UL_IncRef(self); } -#define Table_parse_stream_HELP "parse_stream(stream, filename)\n\n" \ - "Returns self or raises an exception in case of an error." -static PyObject *Table_parse_stream(TableObject *self, PyObject* args, PyObject *kwds) -{ - int rc; - PyFileObject *stream = NULL; - char *filename = NULL; - FILE *f; - char *kwlist[] = {"stream", "filename", NULL}; - - if (!PyArg_ParseTupleAndKeywords(args, kwds, "O!s", kwlist, &PyFile_Type, &stream, &filename)) { - PyErr_SetString(PyExc_TypeError, ARG_ERR); - return NULL; - } - f = PyFile_AsFile((PyObject *)stream); - rc = mnt_table_parse_stream(self->tab, f, filename); - return rc ? UL_RaiseExc(-rc) : UL_IncRef(self); -} #define Table_add_fs_HELP "add_fs(fs)\n\nAdds a new entry to tab.\n" \ "Returns self or raises an exception in case of an error." @@ -528,7 +513,6 @@ static PyMethodDef Table_methods[] = { {"parse_dir", (PyCFunction)Table_parse_dir, METH_VARARGS|METH_KEYWORDS, Table_parse_dir_HELP}, {"parse_swaps", (PyCFunction)Table_parse_swaps, METH_VARARGS|METH_KEYWORDS, Table_parse_swaps_HELP}, {"is_fs_mounted", (PyCFunction)Table_is_fs_mounted, METH_VARARGS|METH_KEYWORDS, Table_is_fs_mounted_HELP}, - {"parse_stream", (PyCFunction)Table_parse_stream, METH_VARARGS|METH_KEYWORDS, Table_parse_stream_HELP}, {"add_fs", (PyCFunction)Table_add_fs, METH_VARARGS|METH_KEYWORDS, Table_add_fs_HELP}, {"remove_fs", (PyCFunction)Table_remove_fs, METH_VARARGS|METH_KEYWORDS, Table_remove_fs_HELP}, {"next_fs", (PyCFunction)Table_next_fs, METH_NOARGS, Table_next_fs_HELP}, @@ -569,7 +553,7 @@ static void Table_destructor(TableObject *self) mnt_free_iter(self->iter); Py_XDECREF(self->errcb); - self->ob_type->tp_free((PyObject*)self); + PyFree(self); } static PyObject *Table_new(PyTypeObject *type, @@ -734,7 +718,7 @@ static PyGetSetDef Table_getseters[] = { static PyObject *Table_repr(TableObject *self) { - return PyString_FromFormat( + return PyUnicode_FromFormat( "<libmount.Table object at %p, entries=%d, comments_enabled=%s, errcb=%s>", self, mnt_table_get_nents(self->tab), @@ -743,8 +727,7 @@ static PyObject *Table_repr(TableObject *self) } PyTypeObject TableType = { - PyObject_HEAD_INIT(NULL) - 0, /*ob_size*/ + PyVarObject_HEAD_INIT(NULL, 0) "libmount.Table", /*tp_name*/ sizeof(TableObject), /*tp_basicsize*/ 0, /*tp_itemsize*/ |