summaryrefslogtreecommitdiff
path: root/src/python-systemd/_reader.c
AgeCommit message (Collapse)Author
2013-04-18move _cleanup_ attribute in front of the typeHarald Hoyer
http://lists.freedesktop.org/archives/systemd-devel/2013-April/010510.html
2013-04-17python-systemd: Reader return special fields and _Reader changesSteven Hiscocks
Changes to _Reader make it match closer to C API, by removing `get_next` and `get_previous`. A `get_all` method added, which returns dictionary of fields using C API SD_JOURNAL_FOREACH_DATA macro, which can be used in conjunction with `next`. _Reader `get`, `next`, `get_{realtime,monotonic,cursor}` and new `previous` methods are made private. This is so the traversal and getting of journal fields can be made transparent in the python interface. Reader now solely implements `get_next` and `get_previous`, returning a standard dictionary (future: other mapping types?) with all standard and special fields through the converters. This makes the output the same as journalctl json/export format output. Iterator methods also moved to Reader, as they do not function as intend with changes to _Reader. These changes also mean that more optimised journal interfaces can be made more easily from _Reader, by avoiding getting of unrequired fields by using the `_get` method, and avoiding field conversions.
2013-04-16systemd-python: export new sd_journal_{process,get_events,get_timeout}Zbigniew Jędrzejewski-Szmek
get_timeout_ms is added as a convenience function, since it is abysmally hard to call clock_gettime() in Python versions lower than 3.3. And even for Python 3.3 users it saves a few lines.
2013-04-14systemd-python: fix formatting in docstringZbigniew Jędrzejewski-Szmek
2013-04-05Use initalization instead of explicit zeroingZbigniew Jędrzejewski-Szmek
Before, we would initialize many fields twice: first by filling the structure with zeros, and then a second time with the real values. We can let the compiler do the job for us, avoiding one copy. A downside of this patch is that text gets slightly bigger. This is because all zero() calls are effectively inlined: $ size build/.libs/systemd text data bss dec hex filename before 897737 107300 2560 1007597 f5fed build/.libs/systemd after 897873 107300 2560 1007733 f6075 build/.libs/systemd … actually less than 1‰. A few asserts that the parameter is not null had to be removed. I don't think this changes much, because first, it is quite unlikely for the assert to fail, and second, an immediate SEGV is almost as good as an assert.
2013-03-21systemd-python: allow retrieval of single fieldsZbigniew Jędrzejewski-Szmek
This can give huge efficiency gains, e.g. if only MESSAGE is required and all other fields can be ignored.
2013-03-21systemd-python: split out realtime and monotonic into separate functionsZbigniew Jędrzejewski-Szmek
This matches the C API more closely, and also enables the user to get just partial information, should she desire to do so. Functions names in error messages are modified to not include the class name, because Python uses just the function name into functions declared as METH_NOARGS, and error messages were inconsistent.
2013-03-21systemd-python: implement _Reader.test_cursorZbigniew Jędrzejewski-Szmek
Getting the cursor is split out from .get_next() into .get_cursor(). This mirrors the C API more closely, and also makes things a bit faster if the cursor is not needed.
2013-03-21systemd-python: cleanup up usec_t handlingZbigniew Jędrzejewski-Szmek
The behaviour wrt. seconds vs. microseconds was inconsistent. Now _Reader always uses native units (us), while Reader always uses seconds and accepts both floats and ints. This way the conversion is always done in the Python layer, and the lower level API allows access to the journal API without the potentially lossy conversion between double and uint64_t.
2013-03-21systemd-python: export sd_journal_get_usageZbigniew Jędrzejewski-Szmek
2013-03-19systemd-python: small cleanupsZbigniew Jędrzejewski-Szmek
- separate methods with two empty lines for clarity - avoid malloc(0) by specyfing private data size as -1 - add method name in error messages
2013-03-19systemd-python: add journal.get_catalog()Zbigniew Jędrzejewski-Szmek
This one wraps sd_journal_get_catalog_from_message_id. Thanks to Python namespacing, we can stick to a shorter name.
2013-03-19systemd-python: add _Reader.get_catalog()Zbigniew Jędrzejewski-Szmek
This one wraps sd_journaal_get_catalog.
2013-03-19systemd-python: add _Reader.closed attributeZbigniew Jędrzejewski-Szmek
This should make the file interface of _Reader complete.
2013-03-18systemd-python: allow Reader to be used as a context managerZbigniew Jędrzejewski-Szmek
2013-03-15systemd-python: add systemd.daemon wrapping sd-daemonZbigniew Jędrzejewski-Szmek
Please see the documentation (e.g. pydoc3 systemd.daemon) for full description. As usual, systemd._daemon wraps the raw interface, while systemd.daemon provides the more pythonic API. sd_listen_fds, sd_booted, sd_is_fifo, sd_is_socket, sd_is_socket_unix, sd_is_socket_inet, sd_is_mq, and SD_LISTEN_FDS_START are currently wrapped.
2013-03-07systemd-python: fix segfault on double closeZbigniew Jędrzejewski-Szmek
2013-03-07systemd-python: fix typosZbigniew Jędrzejewski-Szmek
2013-03-07systemd-python: refuse path and flags together in __init__Zbigniew Jędrzejewski-Szmek
It's better to explictly check, instead of just documenting it. The return value from init is changed from 1 to -1 on error. Python seems to ignore 1 every second time. Looks like a bug in Python, but the return value doesn't seem to be documented anywhere, and -1 works as expected... so let's just use that.
2013-03-07systemd-python: export sd_j_get_fd, sd_j_reliable_fd, sd_j_closeZbigniew Jędrzejewski-Szmek
sd_journal_get_fd(j) is called j.fileno(), for compatiblity with Python conventions for file-like objects. More importantly, those new .seek_head() and .seek_tail() do not call .get_next(). This is better, if one wants to skip before retrieving an entry.
2013-03-07systemd-python: split .seek() into .seek_head() and .seek_tail()Zbigniew Jędrzejewski-Szmek
This way python code follows the original interface more closely. Also, .seek(0, journal.SEEK_END) was just to much to type.
2013-03-05systemd-python: fix error check in _Reader.wait()Zbigniew Jędrzejewski-Szmek
2013-03-01systemd-python: add missing check for return of PyDict_SetItem in _reader.cLukas Nykryn
2013-02-28python-systemd: rename Journal to ReaderZbigniew Jędrzejewski-Szmek
It seems inevitable that we'll also grow a writing interface, and then it'll be cumbersome to have a "Journal" for reading, and a "Writer" for writing.
2013-02-28systemd-python: return both parts of sd_journal_get_monotonic_usecZbigniew Jędrzejewski-Szmek
In Python 3, a named tuple is used. In Python 2, a simple tuple is used. In either case, the pair is (timestamp, bootid).
2013-02-28python-systemd: check all errors and use automatic cleanupZbigniew Jędrzejewski-Szmek
__REALTIME_TIMESTAMP and __MONOTONIC_TIMESTAMP return ints. It doesn't make sense to convert to string, just to convert back to a number later on. Also try to follow systemd rules for indentation.
2013-02-28systemd-python: polish the docstringsZbigniew Jędrzejewski-Szmek
2013-02-22systemd-python: indenation and style tweaksZbigniew Jędrzejewski-Szmek
2013-02-22systemd-python: downgrade _reader.c to C89Zbigniew Jędrzejewski-Szmek
2013-02-22systemd-python: add casts and fix unused variable warnings in _readerZbigniew Jędrzejewski-Szmek
2013-02-22systemd-python: wrap some python differences using macrosZbigniew Jędrzejewski-Szmek
2013-02-22systemd-python: introduce error setting helperZbigniew Jędrzejewski-Szmek
2013-02-22systemd-python: fix memory leak in _reader and minor bugsSteven Hiscocks
iternext now checks for error from get_next, and changed a DECREF to XDECREF rather than NULL check
2013-02-22systemd-python: update Journal python docstringsSteven Hiscocks
2013-02-22systemd-python: tidy up import names in journalSteven Hiscocks
2013-02-22systemd-python: remove unneeded ifdef for query_uniqueSteven Hiscocks
2013-02-22systemd-python: _reader now takes unix timestamp in secondsSteven Hiscocks
2013-02-22systemd-python: Update _reader docstringsSteven Hiscocks
2013-02-22systemd-python: _reader add_match takes single stringSteven Hiscocks
python code now takes care of multiple matches
2013-02-22systemd-python: correct data_threshold error return valueSteven Hiscocks
2013-02-22systemd-python: updated _reader header to standard licenseSteven Hiscocks
2013-02-22systemd-python: Moved _reader datetime usage to pythonSteven Hiscocks
2013-02-22systemd-python: Tidy up _reader error handlingSteven Hiscocks
2013-02-22systemd-python: some python3 and bug fixesSteven Hiscocks
2013-02-22systemd-python: implement this_boot/this_machine in PythonSteven Hiscocks
2013-02-22systemd-python: Journal log_level moved to pythonSteven Hiscocks
2013-02-22systemd-python: move default call dicts from C to pythonSteven Hiscocks
2013-02-22systemd-python: moved PyRun_String to journal.py codeSteven Hiscocks
2013-02-22systemd-python: add Journal class for reading journalSteven Hiscocks