[ANN] Execnet 1.3.0 released

Ronny Pfannschmidt ich at ronnypfannschmidt.de
Sat Feb 14 23:47:06 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 Python-announce-list mailing list