[execnet-dev] execnet-1.2 released: gevent/eventlet support, many improvements

holger krekel holger at merlinux.eu
Wed Jan 29 14:21:16 CET 2014


Hi all,

just released execnet-1.2, the tool for writing distributed zero-install
python programs.  The release contains lots of improvements and fixes.  
Most notably execnet now supports to use gevent/eventlet models on each of
the initiating side and the remote side (configurable separately).
See the changelog below for details.

Install it via:

    pip install -U execnet

Read the docs here:

    http://codespeak.net/execnet/

have fun playing,
holger


1.2
--------------------------------

- fix issue22 -- during interpreter shutdown don't throw
  an exception when we can't send a termination sequence
  anymore as we are about to die anyway.

- fix issue24 -- allow concurrent creation of gateways
  by guarding automatic id creation by a look.
  Thanks tlecomte.

- majorly refactor internal thread and IO handling.
  execnet can now operate on different thread models,
  defaults to "thread" but allows for eventlet and
  gevent if it is installed.

- gateway.remote_exec() will now execute in multiple
  threads on the other side by default.  The previous
  neccessity of running "gateway.remote_init_threads()"
  to allow for such concurrency is gone.  The latter
  method is now a no-op and will be removed in future
  versions of execnet.

- fix issue20: prevent AttributError at interpreter shutdown
  by not trying to send close/last_message messages if the
  world around is half destroyed.

- fix issue21: allow to create local gateways with sudo aka
  makegateway("popen//python=sudo python").
  Thanks Alfredo Deza for the PR. 

- streamline gateway termination and simplify proxy
  implementation. add more internal tracing.

- if execution hangs in computation, we now try to 
  send a SIGINT to ourselves on Unix platforms
  instead of just calling thread.interrupt_main()
  
- change license from GPL to MIT

- introduce execnet.dump/load variants of dumps/loads
  serializing/unserializing mechanism.

- improve channel.receive() communication latency on python2
  by changing the default timeout of the underlying Queue.get
  to a regular None instead of the previous default -1 
  which caused an internal positive timeout value
  (a hack probably introduced to allow CTRL-C to pass
  through for <python2.5 versions).

- extended ssh-syntax to allow passing of command line args, 
  e.g.  "ssh= -p 50 hostname". The options are passed to 
  the underlying ssh client binary.  Thanks tundish.

- fix issue15: interoperability with inspect.getstack().
  Thanks Peter Feiner.

- fix issue10 : skip PYTHONDONTWRITEBYTECODE test if 
  it we are running with PYTHONDONTWRITEBYTECODE set.

- dont try the jython pid fixup on a RemoteIO

- avoid accidentally setting exc_info() in gateway_base.py


More information about the execnet-dev mailing list