On Sun, May 12, 2013 at 01:03:46PM +0100, Steven Hiscocks wrote: > On 14/04/13 20:55, Steven Hiscocks wrote: > > def get_next(self, skip=1): > >- """Return the next log entry as a dictionary of fields. > >+ """Return the next log entry as a mapping type, currently > >+ a standard dictionary of fields. > > > > Optional skip value will return the `skip`\-th log entry. > > > > Entries will be processed with converters specified during > > Reader creation. > > """ > >- return self._convert_entry( > >- super(Reader, self).get_next(skip)) > >+ if super(Reader, self)._next(skip): > >+ entry = super(Reader, self)._get_all() > >+ if entry: > >+ entry['__REALTIME_TIMESTAMP'] = self._get_realtime() > >+ entry['__MONOTONIC_TIMESTAMP'] = self._get_monotonic() > >+ entry['__CURSOR'] = self._get_cursor() > I've picked up on a bug here in python3, `_get_cursor` returns a > string, which then gets passed to the default bytes->string > conversion in `_convert_field` which in turn throws a TypeError. It > can be worked around by adding "__CUSROR" entry to converters, with > suitable conversion (direct return or str). Good catch. I think that adding __CURSOR to converters is the best approach, because we really know that the string is a valid string (it is generated in a simple way by journal code, so we know that it'll always be plain ASCII). This way we also preserve symmetry, because seek_cursor accepts a string. I'm pushing a patch adding an entry to converters.
Zbyszek _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel