From ab3a162c0194fd92884798488eeafdcc5c4d7d57 Mon Sep 17 00:00:00 2001 From: Zbigniew Jędrzejewski-Szmek Date: Fri, 15 Mar 2013 18:10:51 -0400 Subject: systemd-python: small cleanups - separate methods with two empty lines for clarity - avoid malloc(0) by specyfing private data size as -1 - add method name in error messages --- src/python-systemd/_journal.c | 2 +- src/python-systemd/_reader.c | 38 +++++++++++++++++++++++++++++--------- src/python-systemd/id128.c | 2 +- 3 files changed, 31 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/python-systemd/_journal.c b/src/python-systemd/_journal.c index ced52b2f52..2de0d4f91d 100644 --- a/src/python-systemd/_journal.c +++ b/src/python-systemd/_journal.c @@ -128,7 +128,7 @@ static struct PyModuleDef module = { PyModuleDef_HEAD_INIT, "_journal", /* name of module */ NULL, /* module documentation, may be NULL */ - 0, /* size of per-interpreter state of the module */ + -1, /* size of per-interpreter state of the module */ methods }; diff --git a/src/python-systemd/_reader.c b/src/python-systemd/_reader.c index 2feb091c26..908d911298 100644 --- a/src/python-systemd/_reader.c +++ b/src/python-systemd/_reader.c @@ -75,6 +75,7 @@ static PyStructSequence_Desc Monotonic_desc = { }; #endif + static void Reader_dealloc(Reader* self) { sd_journal_close(self->j); @@ -121,6 +122,7 @@ static int Reader_init(Reader *self, PyObject *args, PyObject *keywds) return set_error(r, path, "Invalid flags or path"); } + PyDoc_STRVAR(Reader_fileno__doc__, "fileno() -> int\n\n" "Get a file descriptor to poll for changes in the journal.\n" @@ -136,6 +138,7 @@ static PyObject* Reader_fileno(Reader *self, PyObject *args) return long_FromLong(r); } + PyDoc_STRVAR(Reader_reliable_fd__doc__, "reliable_fd() -> bool\n\n" "Returns True iff the journal can be polled reliably.\n" @@ -151,6 +154,7 @@ static PyObject* Reader_reliable_fd(Reader *self, PyObject *args) return PyBool_FromLong(r); } + PyDoc_STRVAR(Reader_close__doc__, "close() -> None\n\n" "Free resources allocated by this Reader object.\n" @@ -166,6 +170,7 @@ static PyObject* Reader_close(Reader *self, PyObject *args) Py_RETURN_NONE; } + PyDoc_STRVAR(Reader___enter____doc__, "__enter__() -> self\n\n" "Part of the context manager protocol.\n" @@ -192,6 +197,7 @@ static PyObject* Reader___exit__(Reader *self, PyObject *args) Py_RETURN_NONE; } + PyDoc_STRVAR(Reader_get_next__doc__, "get_next([skip]) -> dict\n\n" "Return dictionary of the next log entry. Optional skip value will\n" @@ -204,7 +210,7 @@ static PyObject* Reader_get_next(Reader *self, PyObject *args) int64_t skip = 1LL; int r; - if (!PyArg_ParseTuple(args, "|L", &skip)) + if (!PyArg_ParseTuple(args, "|L:_Reader.get_next", &skip)) return NULL; if (skip == 0LL) { @@ -371,6 +377,7 @@ error: return NULL; } + PyDoc_STRVAR(Reader_get_previous__doc__, "get_previous([skip]) -> dict\n\n" "Return dictionary of the previous log entry. Optional skip value\n" @@ -378,13 +385,14 @@ PyDoc_STRVAR(Reader_get_previous__doc__, static PyObject* Reader_get_previous(Reader *self, PyObject *args) { int64_t skip = 1LL; - if (!PyArg_ParseTuple(args, "|L", &skip)) + if (!PyArg_ParseTuple(args, "|L:_Reader.get_previous", &skip)) return NULL; return PyObject_CallMethod((PyObject *)self, (char*) "get_next", (char*) "L", -skip); } + PyDoc_STRVAR(Reader_add_match__doc__, "add_match(match) -> None\n\n" "Add a match to filter journal log entries. All matches of different\n" @@ -395,7 +403,7 @@ static PyObject* Reader_add_match(Reader *self, PyObject *args, PyObject *keywds { char *match; int match_len, r; - if (!PyArg_ParseTuple(args, "s#", &match, &match_len)) + if (!PyArg_ParseTuple(args, "s#:_Reader.add_match", &match, &match_len)) return NULL; r = sd_journal_add_match(self->j, match, match_len); @@ -406,6 +414,7 @@ static PyObject* Reader_add_match(Reader *self, PyObject *args, PyObject *keywds Py_RETURN_NONE; } + PyDoc_STRVAR(Reader_add_disjunction__doc__, "add_disjunction() -> None\n\n" "Inserts a logical OR between matches added before and afterwards."); @@ -419,6 +428,7 @@ static PyObject* Reader_add_disjunction(Reader *self, PyObject *args) Py_RETURN_NONE; } + PyDoc_STRVAR(Reader_flush_matches__doc__, "flush_matches() -> None\n\n" "Clear all current match filters."); @@ -428,6 +438,7 @@ static PyObject* Reader_flush_matches(Reader *self, PyObject *args) Py_RETURN_NONE; } + PyDoc_STRVAR(Reader_seek_head__doc__, "seek_head() -> None\n\n" "Jump to the beginning of the journal.\n" @@ -444,6 +455,7 @@ static PyObject* Reader_seek_head(Reader *self, PyObject *args) Py_RETURN_NONE; } + PyDoc_STRVAR(Reader_seek_tail__doc__, "seek_tail() -> None\n\n" "Jump to the end of the journal.\n" @@ -460,6 +472,7 @@ static PyObject* Reader_seek_tail(Reader *self, PyObject *args) Py_RETURN_NONE; } + PyDoc_STRVAR(Reader_seek_realtime__doc__, "seek_realtime(realtime) -> None\n\n" "Seek to nearest matching journal entry to `realtime`. Argument\n" @@ -470,7 +483,7 @@ static PyObject* Reader_seek_realtime(Reader *self, PyObject *args) uint64_t timestamp; int r; - if (!PyArg_ParseTuple(args, "d", &timedouble)) + if (!PyArg_ParseTuple(args, "d:_Reader.seek_realtime", &timedouble)) return NULL; timestamp = (uint64_t) (timedouble * 1.0E6); @@ -487,6 +500,7 @@ static PyObject* Reader_seek_realtime(Reader *self, PyObject *args) Py_RETURN_NONE; } + PyDoc_STRVAR(Reader_seek_monotonic__doc__, "seek_monotonic(monotonic[, bootid]) -> None\n\n" "Seek to nearest matching journal entry to `monotonic`. Argument\n" @@ -501,7 +515,7 @@ static PyObject* Reader_seek_monotonic(Reader *self, PyObject *args) sd_id128_t id; int r; - if (!PyArg_ParseTuple(args, "d|z", &timedouble, &bootid)) + if (!PyArg_ParseTuple(args, "d|z:_Reader.seek_monotonic", &timedouble, &bootid)) return NULL; timestamp = (uint64_t) (timedouble * 1.0E6); @@ -531,6 +545,7 @@ static PyObject* Reader_seek_monotonic(Reader *self, PyObject *args) Py_RETURN_NONE; } + PyDoc_STRVAR(Reader_wait__doc__, "wait([timeout]) -> state change (integer)\n\n" "Wait for a change in the journal. Argument `timeout` specifies\n" @@ -545,7 +560,7 @@ static PyObject* Reader_wait(Reader *self, PyObject *args, PyObject *keywds) int r; int64_t timeout = 0LL; - if (!PyArg_ParseTuple(args, "|L", &timeout)) + if (!PyArg_ParseTuple(args, "|L:_Reader.wait", &timeout)) return NULL; Py_BEGIN_ALLOW_THREADS @@ -558,6 +573,7 @@ static PyObject* Reader_wait(Reader *self, PyObject *args, PyObject *keywds) return long_FromLong(r); } + PyDoc_STRVAR(Reader_seek_cursor__doc__, "seek_cursor(cursor) -> None\n\n" "Seek to journal entry by given unique reference `cursor`."); @@ -566,7 +582,7 @@ static PyObject* Reader_seek_cursor(Reader *self, PyObject *args) const char *cursor; int r; - if (!PyArg_ParseTuple(args, "s", &cursor)) + if (!PyArg_ParseTuple(args, "s:_Reader.seek_cursor", &cursor)) return NULL; Py_BEGIN_ALLOW_THREADS @@ -577,6 +593,7 @@ static PyObject* Reader_seek_cursor(Reader *self, PyObject *args) Py_RETURN_NONE; } + static PyObject* Reader_iter(PyObject *self) { Py_INCREF(self); @@ -601,6 +618,7 @@ static PyObject* Reader_iternext(PyObject *self) } } + PyDoc_STRVAR(Reader_query_unique__doc__, "query_unique(field) -> a set of values\n\n" "Return a set of unique values appearing in journal for the\n" @@ -613,7 +631,7 @@ static PyObject* Reader_query_unique(Reader *self, PyObject *args) size_t uniq_len; PyObject *value_set, *key, *value; - if (!PyArg_ParseTuple(args, "s", &query)) + if (!PyArg_ParseTuple(args, "s:_Reader.query_unique", &query)) return NULL; Py_BEGIN_ALLOW_THREADS @@ -676,7 +694,7 @@ static PyObject* get_catalog(PyObject *self, PyObject *args) assert(!self); assert(args); - if (!PyArg_ParseTuple(args, "z", &id_)) + if (!PyArg_ParseTuple(args, "z:get_catalog", &id_)) return NULL; r = sd_id128_from_string(id_, &id); @@ -725,6 +743,7 @@ static int Reader_set_data_threshold(Reader *self, PyObject *value, void *closur return set_error(r, NULL, NULL); } + PyDoc_STRVAR(closed__doc__, "True iff journal is closed"); static PyObject* Reader_get_closed(Reader *self, void *closure) @@ -732,6 +751,7 @@ static PyObject* Reader_get_closed(Reader *self, void *closure) return PyBool_FromLong(self->j == NULL); } + static PyGetSetDef Reader_getsetters[] = { {(char*) "data_threshold", (getter) Reader_get_data_threshold, diff --git a/src/python-systemd/id128.c b/src/python-systemd/id128.c index a6711a5bd5..865cc3ce22 100644 --- a/src/python-systemd/id128.c +++ b/src/python-systemd/id128.c @@ -134,7 +134,7 @@ static struct PyModuleDef module = { PyModuleDef_HEAD_INIT, "id128", /* name of module */ module__doc__, /* module documentation, may be NULL */ - 0, /* size of per-interpreter state of the module */ + -1, /* size of per-interpreter state of the module */ methods }; -- cgit v1.2.3-54-g00ecf