Execnet

Latest version: v2.1.1

Safety actively analyzes 641221 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 3 of 6

1.5.0

------------------

- support shell escaping in python pathnames of popen.

Eugene Ciurana discovered that execnet breaks if you use
pathnames with spaces in a "python=" part of a spec.
We now use shlex.split to split the string. There is a
potential for regressions if you used quote or escape
sequences as part of your python command.

- Only insert importdir into sys.path if it is not already in the path.

This prevents a bug when using enum34 with python 3.6 and
pytest-xdist.

The issue is that enum34 installs an 'enum' module in site-packages
which is normally shadowed by the stdlib version of enum, however in
gateway_bootstrap.py site-packages is added at the front the the
search path. This means on the workers enum34 is hit for import enum
which in turn causes import re to fail (as it makes use of the new
enum features in 3.6).

- fix 49 - use inspect.getfullargspec if possible to avoid deprecationwarnings

- fix 56 - use partials in safe_terminate to avoid a bad carried binding

- fix spec parsing on Windows due to path containing '\' characters.

1.4.1

------------------

- fix a regression of the Serializer created by the implied opcode ordering
which resulted in a incompatible opcode mapping

*warning* stored serialized objects created with 1.4.0 are incompatible
with previous versions and future versions
additionally stored serialized objects containing complex objects will
have a incompatible opcode when read with execnet < 1.4.0
and won't be loadable with execnet 1.4.0 either

its strongly suggested to avoid using the Serializer of execnet 1.4.0
this affects devpi and the external pytest-cache plugin

1.4

----

- de-vendor apipkg and use the pypi dependency instead
(this also fixes the bpython interaction issues)

- Fix issue38: provide ability to connect to Vagrant VMs easily
using :code:`vagrant_ssh=default` or :code:`vagrant_ssh=machinename`
this feature is experimental and will be refined in future releases.
Thanks Christian Theune for the discussion and the initial pull request.

- add support for serializing the "complex" type. Thanks Sebastian
Koslowski.

1.3

--------------------------------

- 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
necessity 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

1.1

--------------------------------

- introduce execnet.dumps/loads providing serialization between
python interpreters.

- group.remote_exec now supports kwargs as well

- support per channel string coercion configuration

- Popen2IO.read now reads correct amounts of bytes from nonblocking fd's

- added a ``dont_write_bytecode`` option to Popen gateways, this sets the
``sys.dont_write_bytecode`` flag on the spawned process, this only works on
CPython 2.6 and higher. Thanks to Alex Gaynor.

- added a pytest --broken-isp option to skip tests that assume
DNS queries for unknown hosts actually are resolved as such (Thanks
Alex Gaynor)

- fix issue 1 - decouple string coercion of channels and gateway

- fix issue 2 - properly reconfigure the channels string coercion for rsync,
so it can send from python2 to python3

- fix issue 9 - properly terminate the worker threadpools in safe_terminate
- fix issue 8 - no longer kill remote pids locally on jython ssh gateways

- refactor socketserver, so it can be directly remote_exec'd for starting a socket gateway on a remote

Page 3 of 6

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.