Rpyc

Latest version: v6.0.0

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

Scan your dependencies

Page 1 of 9

29.05.2017

Please excuse the briefity for this versions changelist.

* Add keepalive interface [`151`_]

* Various fixes: `136`_, `140`_, `143`_, `147`_, `149`_, `151`_, `159`_, `160`_, `166`_, `173`_, `176`_, `179`_, `174`_, `182`_, `183`_ and others.

.. _136: https://github.com/tomerfiliba/rpyc/issues/136
.. _140: https://github.com/tomerfiliba/rpyc/issues/140
.. _143: https://github.com/tomerfiliba/rpyc/issues/143
.. _147: https://github.com/tomerfiliba/rpyc/issues/147
.. _149: https://github.com/tomerfiliba/rpyc/issues/149
.. _151: https://github.com/tomerfiliba/rpyc/issues/151
.. _159: https://github.com/tomerfiliba/rpyc/issues/159
.. _160: https://github.com/tomerfiliba/rpyc/issues/160
.. _166: https://github.com/tomerfiliba/rpyc/issues/166
.. _173: https://github.com/tomerfiliba/rpyc/issues/173
.. _174: https://github.com/tomerfiliba/rpyc/issues/174
.. _176: https://github.com/tomerfiliba/rpyc/issues/176
.. _179: https://github.com/tomerfiliba/rpyc/issues/179
.. _182: https://github.com/tomerfiliba/rpyc/issues/182
.. _183: https://github.com/tomerfiliba/rpyc/issues/183

26.07.2017

* Add missing endpoints config in ThreadPoolServer (`222`_)
* Fix jython support (`156`_, `171`_)
* Improve documentation (`158`_, `185`_, `189`_, `198`_ and more)

.. _156: https://github.com/tomerfiliba/rpyc/issues/156
.. _158: https://github.com/tomerfiliba/rpyc/issues/158
.. _171: https://github.com/tomerfiliba/rpyc/issues/171
.. _185: https://github.com/tomerfiliba/rpyc/issues/185
.. _189: https://github.com/tomerfiliba/rpyc/issues/189
.. _198: https://github.com/tomerfiliba/rpyc/issues/198
.. _222: https://github.com/tomerfiliba/rpyc/issues/222

14.06.2017

* Fix ``export_function`` on python 3.6

12.26.2020

Backwards Incompatible
^^^^^^^^^^^^^^^^^^^^^^
- RPyC 5.0.0 cannot teleport functions to earlier versions
- Deprecated Python 2 support to coincide with it's EOL

Improvements
^^^^^^^^^^^^
- Server hostname default supports IPv4 and IPv6 by using the wildcard address `425`_
- Added ``docker/docker-compose.yml`` for Python 3.6, 3.7, 3.8, 3.9, and 3.10 containers to improve local workflow
- Fixed pickle failure on windows for ``connect_multiprocess`` and ``connect_thread`` `412`_
- Fixed teleport function behavior for keyword-only arguments with default `422`_
- Improved documentation on custom exception handling
- Fixed IPv6 support for server `407`_
- Added a simple asynchronous service example `400`_

.. _425: https://github.com/tomerfiliba-org/rpyc/issues/425
.. _412: https://github.com/tomerfiliba-org/rpyc/pull/412
.. _422: https://github.com/tomerfiliba-org/rpyc/pull/422
.. _407: https://github.com/tomerfiliba-org/rpyc/issues/407
.. _400: https://github.com/tomerfiliba-org/rpyc/pull/400

12.06.2018

- fix ValueError during install due to absolute PATH in SOURCES.txt (`276`_)

.. _276: https://github.com/tomerfiliba/rpyc/issues/276

11.06.2018

This release brings a few minor backward incompatibilities, so be sure to read
on before upgrading. However, fear not: the ones that are most likely relevant
to you have a relatively simple migration path.

Backward Incompatibilities
^^^^^^^^^^^^^^^^^^^^^^^^^^

* ``classic.teleport_function`` now executes the function in the connection's
namespace by default. To get the old behaviour, use
``teleport_function(conn, func, conn.modules[func.__module__].__dict__)``
instead.

* Changed signature of ``Service.on_connect`` and ``on_disconnect``, adding
the connection as argument.

* Changed signature of ``Service.__init__``, removing the connection argument

* no longer store connection as ``self._conn``. (allows services that serve
multiple clients using the same service object, see `198`_).

* ``SlaveService`` is now split into two asymmetric classes: ``SlaveService``
and ``MasterService``. The slave exposes functionality to the master but can
not anymore access remote objects on the master (`232`_, `248`_).
If you were previously using ``SlaveService``, you may experience problems
when feeding the slave with netrefs to objects on the master. In this case, do
any of the following:

* use ``ClassicService`` (acts exactly like the old ``SlaveService``)
* use ``SlaveService`` with a ``config`` that allows attribute access etc
* use ``rpyc.utils.deliver`` to feed copies rather than netrefs to
the slave

* ``RegistryServer.on_service_removed`` is once again called whenever a service
instance is removed, making it symmetric to ``on_service_added`` (`238`_)
This reverts PR `173`_ on issue `172`_.

* Removed module ``rpyc.experimental.splitbrain``. It's too confusing and
undocumented for me and I won't be developing it, so better remove it
altogether. (It's still available in the ``splitbrain`` branch)

* Removed module ``rpyc.experimental.retunnel``. Seemingly unused anywhere, no
documentation, no clue what this is about.

* ``bin/rpyc_classic.py`` will bind to ``127.0.0.1`` instead of ``0.0.0.0`` by
default

* ``SlaveService`` no longer serves exposed attributes (i.e., it now uses
``allow_exposed_attrs=False``)

* Exposed attributes no longer hide plain attributes if one otherwise has the
required permissions to access the plain attribute. (`165`_)

.. _165: https://github.com/tomerfiliba/rpyc/issues/165
.. _172: https://github.com/tomerfiliba/rpyc/issues/172
.. _173: https://github.com/tomerfiliba/rpyc/issues/173
.. _198: https://github.com/tomerfiliba/rpyc/issues/198
.. _232: https://github.com/tomerfiliba/rpyc/issues/232
.. _238: https://github.com/tomerfiliba/rpyc/issues/238
.. _248: https://github.com/tomerfiliba/rpyc/issues/248

What else is new
^^^^^^^^^^^^^^^^

* teleported functions will now be defined by default in the globals dict

* Can now explicitly specify globals for teleported functions

* Can now use streams as context manager

* keep a hard reference to connection in netrefs, may fix some ``EOFError``
issues, in particular on Jython related (`237`_)

* handle synchronous and asynchronous requests uniformly

* fix deadlock with connections talking to each other multithreadedly (`270`_)

* handle timeouts cumulatively

* fix possible performance bug in ``Win32PipeStream.poll`` (oversleeping)

* use readthedocs theme for documentation (`269`_)

* actually time out sync requests (`264`_)

* clarify documentation concerning exceptions in ``Connection.ping`` (`265`_)

* fix ``__hash__`` for netrefs (`267`_, `268`_)

* rename ``async`` module to ``async_`` for py37 compatibility (`253`_)

* fix ``deliver()`` from IronPython to CPython2 (`251`_)

* fix brine string handling in py2 IronPython (`251`_)

* add gevent_ Server. For now, this requires using ``gevent.monkey.patch_all()``
before importing for rpyc. Client connections can already be made without
further changes to rpyc, just using gevent's monkey patching. (`146`_)

* add function ``rpyc.lib.spawn`` to spawn daemon threads

* fix several bugs in ``bin/rpycd.py`` that crashed this script on startup
(`231`_)

* fix problem with MongoDB, or more generally any remote objects that have a
*catch-all* ``__getattr__`` (`165`_)

* fix bug when copying remote numpy arrays (`236`_)

* added ``rpyc.utils.helpers.classpartial`` to bind arguments to services (`244`_)

* can now pass services optionally as instance or class (could only pass as
class, `244`_)

* The service is now charged with setting up the connection, doing so in
``Service._connect``. This allows using custom protocols by e.g. subclassing
``Connection``. More discussions and related features in `239`_-`247`_.

* service can now easily override protocol handlers, by updating
``conn._HANDLERS`` in ``_connect`` or ``on_connect``. For example:
``conn._HANDLERS[HANDLE_GETATTR] = self._handle_getattr``.

* most protocol handlers (``Connection._handle_XXX``) now directly get the
object rather than its ID as first argument. This makes overriding
individual handlers feel much more high-level. And by the way it turns out
that this fixes two long-standing issues (`137`_, `153`_)

* fix bug with proxying context managers (`228`_)

* expose server classes from ``rpyc`` top level module

* fix logger issue on jython

.. _137: https://github.com/tomerfiliba/rpyc/issues/137
.. _146: https://github.com/tomerfiliba/rpyc/issues/146
.. _153: https://github.com/tomerfiliba/rpyc/issues/153
.. _165: https://github.com/tomerfiliba/rpyc/issues/165
.. _228: https://github.com/tomerfiliba/rpyc/issues/228
.. _231: https://github.com/tomerfiliba/rpyc/issues/231
.. _236: https://github.com/tomerfiliba/rpyc/issues/236
.. _237: https://github.com/tomerfiliba/rpyc/issues/237
.. _239: https://github.com/tomerfiliba/rpyc/issues/239
.. _244: https://github.com/tomerfiliba/rpyc/issues/244
.. _247: https://github.com/tomerfiliba/rpyc/issues/247
.. _251: https://github.com/tomerfiliba/rpyc/issues/251
.. _253: https://github.com/tomerfiliba/rpyc/issues/253
.. _264: https://github.com/tomerfiliba/rpyc/issues/264
.. _265: https://github.com/tomerfiliba/rpyc/issues/265
.. _267: https://github.com/tomerfiliba/rpyc/issues/267
.. _268: https://github.com/tomerfiliba/rpyc/issues/268
.. _269: https://github.com/tomerfiliba/rpyc/issues/269
.. _270: https://github.com/tomerfiliba/rpyc/issues/270

.. _gevent: http://www.gevent.org/

Page 1 of 9

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.