[execnet-dev] [ANN] Execnet 1.3.0 released

Ronny Pfannschmidt opensource at ronnypfannschmidt.de
Sat Feb 14 23:50:16 CET 2015


Hello,

is my pleasure to announce the release of execnet 1.3.0
availiable at https://pypi.python.org/pypi/execnet/1.3.0

-- Ronny

PS: 

execnet: distributed Python deployment and communication
========================================================

.. _execnet: http://codespeak.net/execnet

execnet_ provides carefully tested means to ad-hoc interact with Python
interpreters across version, platform and network barriers.  It provides
a minimal and fast API targetting the following uses:

* distribute tasks to local or remote processes
* write and deploy hybrid multi-process applications
* write scripts to administer multiple hosts

Features
------------------

* zero-install bootstrapping: no remote installation required!

* flexible communication: send/receive as well as
 callback/queue mechanisms supported

* simple serialization of python builtin types (no pickling)

* grouped creation and robust termination of processes

* well tested between CPython 2.6-3.X, Jython 2.5.1 and PyPy 2.2
 interpreters.

* interoperable between Windows and Unix-ish systems.

* integrates with different threading models, including standard
 os threads, eventlet and gevent based systems.


Changelog
===========


1.3.0
--------------------------------

- fix issue33: index.txt to correctly mention MIT instead of GPL.

- fix issue35: adapt some doctests, fix some channel tests for py3.

- use subprocess32 when available for python < 3.

- try to be a bit more careful when interpreter is shutting down
 to avoid random exceptions, thanks Alfredo Deza.

- ignore errors on orphan file removal when rsyncing

- fix issue34: limit use of import based bootstrap

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