Changelog:
=============
- Fix exception leaks
- MsgpackSerializer.loadsCall: honor ext_hook (symmetric with loads)
- Fixed slow locate_ns() on Windows: skipped reverse DNS lookup of 127.0.1.1 which caused 5+ second delays due to DNS timeout.
- Fixed exception leaks in message handling
- Fixed GC issue with daemon property
- Fixed thread race condition in nameserver remove()
- Fixed possible resource leaks in client
- Fixed IPv6 NAT port parse error in server
- Fixed crash related to None environment variable handling
- Fixed a deadlock scenario when using multiple proxies with different daemon connections
- Improved logging performance by avoiding eager string formatting
- Gracefully handle unreachable network in ip address resolution fallback
- Fixed potential socket leak from broadcast discovery when nameserver is unreachable
- Added extra message protocol validation for robustness
- Fixed nameserver metadata lookup returning incorrect results for None values
- Fix msgpack serializer loadsCall to make sure custom arguments get properly deserialized
- Various documentation and spelling corrections
Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
Upgrade to release 5.16:
- project going into super low maintenance mode, I don't plan on
working on it any longer unless nasty bugs are reported.
- properties can now be a streaming generator too
- loopCondition is relayed from start_ns_loop() to its daemon
- removed Python 3.8 and 3.9 from the support list (they are EOL).
Now supported on Python 3.10 or newer.
- docs: clarify @expose on a class not automatically exposing base
class(es).
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Pyro enables you to build applications in which objects can talk to each
other over the network, with minimal programming effort.
Successor to the python3-pyro4 package - but this supports modern Python,
and still maintained (under the same umbrella that developed pyro4 also).
Ptest takes around a minute to execute. Sample output:
root@qemux86-64:~# ptest-runner
START: ptest-runner
2025-12-16T17:48
BEGIN: /usr/lib/python3-pyro5/ptest
PASS: tests/test_api.py:test_api
PASS: tests/test_client.py:TestProxy.testBasics
PASS: tests/test_client.py:TestProxy.testProxyCopy
[...many lines...]
PASS: tests/test_threadpool.py:TestThreadPool.testClose
PASS: tests/test_threadpool.py:TestThreadPool.testScaling
PASS: tests/test_threadpool.py:TestThreadPoolServer.testServerPoolFull
============================================================================
Testsuite summary
# TOTAL: 415
# PASS: 410
# SKIP: 5
# XFAIL: 0
# FAIL: 0
# XPASS: 0
# ERROR: 0
DURATION: 60
END: /usr/lib/python3-pyro5/ptest
2025-12-16T17:49
STOP: ptest-runner
TOTAL: 1 FAIL: 0
Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>