[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