From 09dd70623eb0534d2d46702cb92f8b3d3fd28ef9 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Sun, 19 Mar 2023 18:39:03 +0000 Subject: [PATCH] file: Export capabilities in Python Signed-off-by: Michael Tremer --- src/_pakfire/file.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/_pakfire/file.c b/src/_pakfire/file.c index fc4df125a..ca0d32d7f 100644 --- a/src/_pakfire/file.c +++ b/src/_pakfire/file.c @@ -258,6 +258,31 @@ static int File_set_mimetype(FileObject* self, PyObject* value) { return 0; } +static PyObject* File_get_capabilities(FileObject* self) { + PyObject* result = NULL; + char* caps = NULL; + + // No capabilities + if (!pakfire_file_has_caps(self->file)) + Py_RETURN_NONE; + + // Fetch capabilities + caps = pakfire_file_get_caps(self->file); + if (!caps) { + PyErr_SetFromErrno(PyExc_OSError); + goto ERROR; + } + + // Convert to Python string object + result = PyUnicode_FromString(caps); + +ERROR: + if (caps) + free(caps); + + return result; +} + static struct PyMethodDef File_methods[] = { { "digest", @@ -269,6 +294,13 @@ static struct PyMethodDef File_methods[] = { }; static struct PyGetSetDef File_getsetters[] = { + { + "capabilities", + (getter)File_get_capabilities, + NULL, + NULL, + NULL, + }, { "ctime", (getter)File_get_ctime, -- 2.39.5