Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Commits on Oct 14, 2013
  1. @timabbott

    Merge pull request #4 from dehnert/charset

    timabbott committed
    Improve charset support
  2. @timabbott

    Merge pull request #5 from dehnert/finish-cython

    timabbott committed
    Update README to talk about Cython
  3. @dehnert

    Switch README from Pyrex to Cython

    dehnert committed
    In 41015a2, Nelson converted from Pyrex to Cython. This updates the
    README as well.
  4. @dehnert
Commits on Oct 12, 2013
  1. @dehnert
Commits on Jan 2, 2013
  1. @timabbott

    Fix memory leak on receive path.

    timabbott committed
    receive() attempts to avoid memory management by using a local
    variable "notice" as the storage area for the Zephyr notice object.
    However, one still needs to call ZFreeNotice on the object at the end,
    to free notice->z_packet.
  2. @timabbott

    Merge pull request #2 from dehnert/master

    timabbott committed
    Use shorter default format
  3. @timabbott

    Merge pull request #1 from nelhage/pypy

    timabbott committed
    PyPy support
Commits on Jan 1, 2013
  1. @dehnert

    Use a shorter default format

    dehnert committed with Debothena
    This may have practical advantages when the zephyr header is otherwise quite
    long. It should have negligible functional impact, since current clients mostly
    ignore the field (paying attention to it is a security risk). The particular
    default format this uses is a link to a page that will explaining (for any
    clients that *do* show it) why they're seeing it and why that's bad, and is the
    same format used by barnowl and some other clients.
  2. @nelhage

    Explicitly hold references to PyObject*s after conversion to char*.

    nelhage committed
    If we are holding onto the char* version of a PyObject*, we need to
    hold a reference to that PyObject itself. In CPython, the previous
    code generally works because the ZNotice object would hold a reference
    from __dict__. This assumption is not true in PyPy, and would also
    break in weirder cases like someone subclassing ZNotice and replacing
    'cls' with a property.
    We can't just hold the objects in a Python list, because again, in
    PyPy, that results in conversion to PyPy's internal format, which does
    not hold onto the specific PyObject* generated by cpyext. So instead,
    write some C code to maintain an object pool of objects to which we
    need references.
Commits on Dec 2, 2012
  1. @nelhage

    Switch from Pyrex to Cython.

    nelhage committed
    Cython is a fork that is better-maintained, and has better PyPy
    support. PyZephyr is simple enough that the switch appears to require
    no code changes.
  2. @nelhage
Commits on Nov 28, 2012
  1. @timabbott

    Remove trailing whitespace.

    timabbott committed
  2. @timabbott
  3. @timabbott
Commits on Nov 25, 2011
  1. Don't assume zephyr messages are UTF-8 on the wire

    Older clients have a tendency to send latin-1 on the wire, and the
    zephyr protocol itself does not require an explicit
    encoding. Therefore, make encoding and decoding the responsibility of
    the application using PyZephyr.
    (PyZephyr will to continue to encode a unicode string to UTF-8 before
    sending it if that is handed in)
    Reported-by: Arun A. Tharuvai <>
  2. Add a _zephyr.subAll function to handle subscription entirely in C

    Reported-by: Arun A. Tharuvai <>
Commits on Jan 17, 2010
  1. Why am I explicitly linking against krb4?

    It makes PyZephyr FTBFS on post-1.7 krb5.
Commits on Nov 19, 2009
Commits on May 16, 2009
  1. Tag a version 0.2.0.

  2. @nelhage

    Don't block unnecessarily in receive().

    nelhage committed
    If code other than receive() ends up calling ZWaitForNotice or similar
    routines, then there may be zephyrs in the internal Zephyr queue, but no
    data available on the Zephyr FD. Therefore, before we assume we need to
    block to receive notices, we need to check ZPending() and process any
    queued notices.
Commits on Apr 23, 2009
Commits on Mar 14, 2009
  1. If _zephyr.receive is called with block=True, run our own select loop.

    The one in ZReceiveNotice times out eventually.
Commits on Feb 13, 2009
  1. @andersk

    Prevent encoded_message from being freed too early.

    andersk committed
    Signed-off-by: Anders Kaseorg <>
Commits on Nov 29, 2008
  1. Fix for timeval conversion on 64-bit systems

    Instead of using a function to convert between struct timeval and a
    Python float, inline the necessary code in the ZUid and ZNotice
    On 64-bit Debian systems, this would result in a struct _ZTimeval
    being cast to a struct timeval, which just didn't work like you would
Commits on Nov 27, 2008
  1. Don't set __slots__ on Pyrex classes.

    While it's certainly a nice idea and a good easy way to figure out
    what fields the class should have, classes created in Pyrex, even if
    they inherit from object, don't respect the __slots__ attribute.
  2. Apparently Redhat-based systems don't have _ZTimeval

    They use timeval instead. And Debian-based systems will work if you
    use timeval instead of _ZTimeval, they'll just whine at you
Commits on Nov 2, 2008
  1. Release version 0.1.0

  2. Ignore the egg-info directory

Commits on Oct 8, 2008
Commits on Oct 1, 2008
  1. Fix a typo in unsub

Something went wrong with that request. Please try again.