Pyro is an acronym for PYthon Remote Objects. It is an advanced and powerful
Distributed Object Technology system written entirely in Python, that is
designed to be very easy to use. It resembles Java's Remote Method
Invocation (RMI). It is less similar to CORBA - which is a system- and
language independent Distributed Object Technology and has much more to
offer than Pyro or RMI. But Pyro is small, simple and free (MIT software
license).

Log message:
py-Pyro: updated to 4.77
Pyro 4.77
- dropped support for Python 3.4 (which has reached end-of-life status). \
Supported Python versions are now 2.7, and 3.5 or newer.
(the life cycle status of the Python versions can be seen here \
https://devguide.python.org/#status-of-python-branches)
- URIs now allow spaces in the location part. Useful for unix domain sockets.

Log message:
py-Pyro: updated to 4.76
Pyro 4.76
- corrected bogus space in worker thread name
- thread server can now be cleanly stopped with SIGINT / Ctrl-C on Windows
(if the selectors module is available which is also used by the multiplex server)
- the behavior of the NATPORT config item has been corrected to be in line with \
the API behavior of the Daemon:
if you leave this at 0 (the default), it will now correctly replicate the \
internal port number as NAT port
(instead of crashing with a configuration error)
- certs are now included in sdist archive so the ssl unit tests also run as intended
- now correctly checks for write access to the correct logfile location, instead \
of assuming the current directory

Log message:
py-Pyro: updated to 4.74
Pyro 4.74
- serpent 1.27 required to avoid regression in previous version
- fixed marshal serializer problem that prevented it to even call register() in \
the name server.
Its dumpsCall is now able to use the class_to_dict conversion for \
unmarshallable types
(in simple situations, not recursively). Previously, you would get a \
ValueError: unmarshallable object.
- msgpack, json and marshal serializers now understand how to serialize \
array.array the same way serpent already did
Pyro 4.73
- include LICENSE file in distribution
- avoid decode error when dealing with memoryview annotations
Pyro 4.72
- (source files: normalized line endings to LF)
- the -k command line option to supply a HMAC encryption key on the command line \
for the name server, nsc,
echoserver, flameserver and httpgateway tools is now deprecated (and will \
print a warning if used).
It is a security issue because the key used is plainly visible.
If you require proper security, use Pyro's 2-way SSL feature. Alternatively, \
set the HMAC key in the (new) environment
variable PYRO_HMAC_KEY if you still have to use it before launching the \
aforementioned tools.
Pyro 4.71
- updated msgpack dependency (was msgpack-python but that name is now deprecated)
- fixed restart and force reload commands of the contrib/init.d/pyro4-nsd \
script, and changed its port binding
from 9999 back to 9090 which is Pyro's default.
- serpent 1.24 library now required to fix some api deprecation warnings when \
using Python 3.7 or newer.
- updated sphinx documentation theme
Pyro 4.70
- bump to version 4.70 to emphasize the following change:
- incompatible API change for python 3.7 compatibility: renaming of async \
function and keyword arguments in the API:
Renamed Pyro4.core.async to Pyro4.core.asyncproxy (and its occurrence in Pyro4)
and the async keyword argument in some methods to asynchronous.
This had to be done because async (and await) are now parsed as keywords in \
Python 3.7 and using them otherwise will result
in a SyntaxError when loading the module.
It is suggested you stop using the asyncproxy function and instead create \
asynchronous proxies using the _pyroAsync
method on the regular proxy.
- For existing code running on Python *older than 3.7*, a backwards \
compatibility feature is present to still provide the
async function and keyword arguments as they were supported on previous Pyro \
versions.
But also for that older environments, it's advised to migrate away from them \
and start using the new names.
- Proxy and Daemon have a new 'connected_socket' parameter. You can set it to a \
user-supplied connected socket that must
be used by them instead of creating a new socket for you. Connected sockets \
can be created using the socket.socketpair()
function for instance, and allow for easy and efficient communication over an \
internal socket between
parent-child processes or threads, using Pyro. Also see the new 'socketpair' \
example.
- dropped support for Python 3.3 (which has reached end-of-life status). \
Supported Python versions are now 2.7, and 3.4 or newer.

Log message:
py-Pyro: updated to 4.63
Pyro 4.63
- fixed bug in autoproxy logic where it registered the wrong type if \
daemon.register() was called with
a class instead of an object (internal register_type_replacement method)
- added check in @expose method to validate the order of decorators on a method \
(@expose should come last,
after @classmethod or @staticmethod).
- added resource tracking feature (see 'Automatically freeing resources when \
client connection gets closed' in the Tips & Tricks chapter)
- the warning about a class not exposing anything now actually tells you the \
correct class