Skip to content

Tags: memo-off/rpyc

Tags

4.0.2

Toggle 4.0.2's commit message
Release rpyc 4.0.2

- fix default hostname for ipv6 in rpyc_classic.py (tomerfiliba-org#277)
- fix ThreadPoolServer not working (tomerfiliba-org#283)

4.0.1

Toggle 4.0.1's commit message
Release rpyc 4.0.1

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

.. _#276: tomerfiliba-org#276

4.0.0

Toggle 4.0.0's commit message
Release rpyc 4.0.0

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 `tomerfiliba-org#198`_).

* ``SlaveService`` is now split into two asymetric classes: ``SlaveService``
  and ``MasterService``. The slave exposes functionality to the master but can
  not anymore access remote objects on the master (`tomerfiliba-org#232`_, `tomerfiliba-org#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`` (`tomerfiliba-org#238`_)
  This reverts PR `tomerfiliba-org#173`_ on issue `tomerfiliba-org#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. (`tomerfiliba-org#165`_)

.. _#165: tomerfiliba-org#165
.. _#172: tomerfiliba-org#172
.. _#173: tomerfiliba-org#173
.. _#198: tomerfiliba-org#198
.. _#232: tomerfiliba-org#232
.. _#238: tomerfiliba-org#238
.. _#248: tomerfiliba-org#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 (`tomerfiliba-org#237`_)

* handle synchronous and asynchronous requests uniformly

* fix deadlock with connections talking to each other multithreadedly (`tomerfiliba-org#270`_)

* handle timeouts cumulatively

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

* use readthedocs theme for documentation (`tomerfiliba-org#269`_)

* actually time out sync requests (`tomerfiliba-org#264`_)

* clarify documentation concerning exceptions in ``Connection.ping`` (`tomerfiliba-org#265`_)

* fix ``__hash__`` for netrefs (`tomerfiliba-org#267`_, `tomerfiliba-org#268`_)

* rename ``async`` module to ``async_`` for py37 compatibility (`tomerfiliba-org#253`_)

* fix ``deliver()`` from IronPython to CPython2 (`tomerfiliba-org#251`_)

* fix brine string handling in py2 IronPython (`tomerfiliba-org#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. (`tomerfiliba-org#146`_)

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

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

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

* fix bug when copying remote numpy arrays (`tomerfiliba-org#236`_)

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

* can now pass services optionally as instance or class (could only pass as
  class, `tomerfiliba-org#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 `tomerfiliba-org#239`_-`tomerfiliba-org#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 (`tomerfiliba-org#137`_, `tomerfiliba-org#153`_)

* fix bug with proxying context managers (`tomerfiliba-org#228`_)

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

* fix logger issue on jython

.. _#137: tomerfiliba-org#137
.. _#146: tomerfiliba-org#146
.. _#153: tomerfiliba-org#153
.. _#165: tomerfiliba-org#165
.. _#228: tomerfiliba-org#228
.. _#231: tomerfiliba-org#231
.. _#236: tomerfiliba-org#236
.. _#237: tomerfiliba-org#237
.. _#239: tomerfiliba-org#239
.. _#244: tomerfiliba-org#244
.. _#247: tomerfiliba-org#247
.. _#251: tomerfiliba-org#251
.. _#253: tomerfiliba-org#253
.. _#264: tomerfiliba-org#264
.. _#265: tomerfiliba-org#265
.. _#267: tomerfiliba-org#267
.. _#268: tomerfiliba-org#268
.. _#269: tomerfiliba-org#269
.. _#270: tomerfiliba-org#270

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

3.4.4

Toggle 3.4.4's commit message
Release rpyc 3.4.4

- Fix refcount leakage when unboxing from cache (tomerfiliba-org#196)
- Fix TypeError when dispatching exceptions on py2 (unicode)
- Respect ``rpyc_protocol_config`` for default Service getattr (tomerfiliba-org#202)
- Support unix domain sockets (tomerfiliba-org#100,tomerfiliba-org#208)
- Use first accessible server in ``connect_by_service`` (tomerfiliba-org#220)
- Fix deadlock problem with logging (tomerfiliba-org#207,tomerfiliba-org#212)

v3.4.3

Toggle v3.4.3's commit message
Release rpyc 3.4.3

- Add missing endpoints config in ThreadPoolServer (tomerfiliba-org#222)
- Fix jython support (tomerfiliba-org#156,tomerfiliba-org#171)
- Improve documentation (tomerfiliba-org#158,tomerfiliba-org#185,tomerfiliba-org#189,tomerfiliba-org#198 and more)

v3.4.2

Toggle v3.4.2's commit message
Release RPyC 3.4.2

- Fix ``export_function`` on python 3.6

v3.4.1

Toggle v3.4.1's commit message
Release rpyc 3.4.1

* Fix issue high-cpu polling (tomerfiliba-org#191,tomerfiliba-org#218)
* Fix filename argument in logging (tomerfiliba-org#197)
* Improved log messages (tomerfiliba-org#191,tomerfiliba-org#204)
* Drop support for python 3.2 and py 2.5

v3.4.0

Toggle v3.4.0's commit message
Release rpyc 3.4.0

v3.3

Toggle v3.3's commit message
realeasing 3.3

v3.3-rc1

Toggle v3.3-rc1's commit message
remove six