./devel/py-Pyro, Distributed Object Technology system in Python

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]

Branch: CURRENT, Version: 4.77, Package name: py37-Pyro4-4.77, Maintainer: pkgsrc-users

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

Get the manual from


Check quite impressive success stories on


Required to run:
[devel/py-setuptools] [devel/py-serpent] [lang/python37]

Required to build:

Master sites:

SHA1: 54e24209b5fc67f6bcfde270e4d73e68da2fed0e
RMD160: 382e259b4b6a4e5821e4cba062a82f88e649ac59
Filesize: 467.798 KB

Version history: (Expand)

CVS history: (Expand)

   2019-12-11 15:45:17 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
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 \ 
- URIs now allow spaces in the location part. Useful for unix domain sockets.
   2019-06-21 13:20:33 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
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
   2019-02-21 11:28:54 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-Pyro: updated to 4.75

Pyro 4.75:
- fixed distributed-mandelbrot example to actually run multiple concurrent \ 
- CI build process now using more modern Python versions.
- missing API method doc added on NameServer.count()
   2018-12-16 15:38:34 by Adam Ciarcinski | Files touched by this commit (1)
Log message:
   2018-12-16 15:33:25 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
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 \ 
  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' \ 
- 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.
   2017-10-31 13:53:58 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
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
   2017-10-19 08:19:18 by Thomas Klausner | Files touched by this commit (1)
Log message:
py-Pyro: remove patch that is not in distinfo
   2017-10-08 12:21:57 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-Pyro: update to 4.62

Pyro 4.62:
major new feature: SSL/TLS support added - a handful of new config items \ 
(‘SSL’ prefixed), supports server-only certificate and also 2-way-ssl \ 
(server+client certificates). For testing purposes, self-signed server and \ 
client certificates are available in the ‘certs’ directory. SSL/TLS in Pyro \ 
is supported on Python 2.7.11+ or Python 3.4.4+ (these versions have various \ 
important security related changes such as disabling vulnerable cyphers or \ 
protocols by default)
added SSL example that shows how to configure 2-way-SSL in Pyro and how to do \ 
certificate verification on both sides.
added cloudpickle serialization support (https://github.com/cloudpipe/cloudpickle/)
added a small extended-pickle example that shows what dill and cloudpickle can \ 
do (send actual functions)
daemon is now more resilient to exceptions occurring with socket communications \ 
(it logs them but is otherwise not interrupted) (this was required to avoid \ 
errors occurring in the SSL layer stopping the server)
some small bugs fixed (crash when logging certain errors in thread server, \ 
invalid protected members showing up on pypy3)
the raise data line in a traceback coming from Pyro now has a comment after it, \ 
telling you that you probably should inspect the remote traceback as well.
note: if you’re using Python 3 only and are interested in a modernized version \ 
of Pyro, have a look at Pyro5: https://github.com/irmen/Pyro5 It’s \ 
experimental work in progress, but it works pretty well.
note: Pyro4 is reaching a state where I consider it “feature complete”: \ 
I’m considering not adding more new features but only doing bug-fixes. New \ 
features (if any) will then appear only in Pyro5.