Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-Pyro5 for openSUSE:Factory checked in at 2024-01-10 21:51:59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-Pyro5 (Old) and /work/SRC/openSUSE:Factory/.python-Pyro5.new.21961 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-Pyro5" Wed Jan 10 21:51:59 2024 rev:3 rq:1137817 version:5.15 Changes: -------- --- /work/SRC/openSUSE:Factory/python-Pyro5/python-Pyro5.changes 2023-06-12 15:27:18.599356760 +0200 +++ /work/SRC/openSUSE:Factory/.python-Pyro5.new.21961/python-Pyro5.changes 2024-01-10 21:52:21.252310016 +0100 @@ -1,0 +2,13 @@ +Tue Jan 9 21:39:34 UTC 2024 - Dirk Müller <[email protected]> + +- update to 5.15: + * removed Python 3.7 from the support list (it is EOL). Now + supported on Python 3.8 or newer. + * fixed cgi.parse deprecation problem in http gateway + * removed jquery dependency in http gateway + * some small tweaks to setup, tests, examples, and docs. + * updated the self-signed example certificates and serial + numbers in the ssl example. +- drop add-network-marker.patch (upstream) + +------------------------------------------------------------------- Old: ---- Pyro5-5.14.tar.gz add-network-marker.patch New: ---- Pyro5-5.15.tar.gz BETA DEBUG BEGIN: Old: numbers in the ssl example. - drop add-network-marker.patch (upstream) BETA DEBUG END: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-Pyro5.spec ++++++ --- /var/tmp/diff_new_pack.bRFPjb/_old 2024-01-10 21:52:22.524356210 +0100 +++ /var/tmp/diff_new_pack.bRFPjb/_new 2024-01-10 21:52:22.532356500 +0100 @@ -1,7 +1,7 @@ # # spec file for package python-Pyro5 # -# Copyright (c) 2023 SUSE LLC +# Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,14 +18,12 @@ %{?sle15_python_module_pythons} Name: python-Pyro5 -Version: 5.14 +Version: 5.15 Release: 0 Summary: Distributed object middleware for Python (RPC) License: MIT URL: https://github.com/irmen/Pyro5 Source: https://files.pythonhosted.org/packages/source/P/Pyro5/Pyro5-%{version}.tar.gz -# PATCH-FIX-UPSTREAM gh#irmen/Pyro5#76 -Patch0: add-network-marker.patch BuildRequires: %{python_module setuptools} BuildRequires: fdupes BuildRequires: python-rpm-macros ++++++ Pyro5-5.14.tar.gz -> Pyro5-5.15.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro5-5.14/.github/workflows/main-ci.yml new/Pyro5-5.15/.github/workflows/main-ci.yml --- old/Pyro5-5.14/.github/workflows/main-ci.yml 2022-10-12 22:35:31.000000000 +0200 +++ new/Pyro5-5.15/.github/workflows/main-ci.yml 2023-10-18 22:37:43.000000000 +0200 @@ -18,7 +18,7 @@ runs-on: ubuntu-latest strategy: matrix: - python-version: ['3.7', '3.8', '3.9', '3.10', '3.11.0-rc.2'] + python-version: ['3.8', '3.9', '3.10', '3.11', '3.12'] steps: - name: Checkout source diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro5-5.14/.lgtm.yml new/Pyro5-5.15/.lgtm.yml --- old/Pyro5-5.14/.lgtm.yml 2018-09-05 21:46:29.000000000 +0200 +++ new/Pyro5-5.15/.lgtm.yml 1970-01-01 01:00:00.000000000 +0100 @@ -1,4 +0,0 @@ -# Format of this file: https://lgtm.com/help/lgtm/lgtm.yml-configuration-file -path_classifiers: - documentation: - - examples diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro5-5.14/Makefile new/Pyro5-5.15/Makefile --- old/Pyro5-5.14/Makefile 2020-04-16 15:51:22.000000000 +0200 +++ new/Pyro5-5.15/Makefile 2023-10-18 22:29:22.000000000 +0200 @@ -5,7 +5,7 @@ @echo "targets: dist, docs, upload, install, clean, test" docs: - $(PYTHON) setup.py build_sphinx + sphinx-build docs/source build/docs dist: $(PYTHON) setup.py sdist bdist_wheel diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro5-5.14/PKG-INFO new/Pyro5-5.15/PKG-INFO --- old/Pyro5-5.14/PKG-INFO 2022-10-12 22:42:18.973033200 +0200 +++ new/Pyro5-5.15/PKG-INFO 2023-10-18 22:42:33.455201100 +0200 @@ -1,12 +1,13 @@ Metadata-Version: 2.1 Name: Pyro5 -Version: 5.14 +Version: 5.15 Summary: Remote object communication library, fifth major version Home-page: https://github.com/irmen/Pyro5 Author: Irmen de Jong Author-email: [email protected] License: MIT Keywords: distributed objects,RPC,remote method call,IPC +Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: MIT License @@ -14,14 +15,11 @@ Classifier: Natural Language :: Dutch Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 3.7 -Classifier: Programming Language :: Python :: 3.8 -Classifier: Programming Language :: Python :: 3.9 -Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3 Classifier: Topic :: Software Development :: Object Brokering Classifier: Topic :: System :: Distributed Computing Classifier: Topic :: System :: Networking -Requires-Python: >=3.2 +Requires-Python: >=3.7 Description-Content-Type: text/x-rst License-File: LICENSE @@ -36,12 +34,6 @@ .. image:: https://anaconda.org/conda-forge/pyro5/badges/version.svg :target: https://anaconda.org/conda-forge/pyro5 -.. image:: https://img.shields.io/lgtm/grade/python/g/irmen/Pyro5.svg?logo=lgtm&logoWidth=18 - :target: https://lgtm.com/projects/g/irmen/Pyro5/context:python - -.. image:: https://img.shields.io/lgtm/alerts/g/irmen/Pyro5.svg?logo=lgtm&logoWidth=18 - :target: https://lgtm.com/projects/g/irmen/Pyro5/alerts - Info ---- @@ -68,7 +60,7 @@ Features -------- -- written in 100% Python so extremely portable, supported on Python 3.7 and newer, and Pypy3 +- written in 100% Python so extremely portable, supported on Python 3.8 and newer, and Pypy3 - works between different system architectures and operating systems. - able to communicate between different Python versions transparently. - defaults to a safe serializer (`serpent <https://pypi.python.org/pypi/serpent>`_) that supports many Python data types. @@ -95,3 +87,5 @@ - large amount of unit tests and high test coverage. - reliable and established: built upon more than 20 years of existing Pyro history, with ongoing support and development. + + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro5-5.14/Pyro5/__init__.py new/Pyro5-5.15/Pyro5/__init__.py --- old/Pyro5-5.14/Pyro5/__init__.py 2022-10-12 22:28:56.000000000 +0200 +++ new/Pyro5-5.15/Pyro5/__init__.py 2023-10-18 22:09:25.000000000 +0200 @@ -4,7 +4,7 @@ Pyro - Python Remote Objects. Copyright by Irmen de Jong ([email protected]). """ -__version__ = "5.14" +__version__ = "5.15" __author__ = "Irmen de Jong" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro5-5.14/Pyro5/utils/httpgateway.py new/Pyro5-5.15/Pyro5/utils/httpgateway.py --- old/Pyro5-5.14/Pyro5/utils/httpgateway.py 2022-06-17 17:38:28.000000000 +0200 +++ new/Pyro5-5.15/Pyro5/utils/httpgateway.py 2023-10-18 21:56:19.000000000 +0200 @@ -24,7 +24,7 @@ import sys import re -import cgi +import urllib.parse import uuid import json from wsgiref.simple_server import make_server @@ -91,29 +91,33 @@ </style> </head> <body> - <script src="//code.jquery.com/jquery-2.1.3.min.js"></script> <script> "use strict"; - function pyro_call(name, method, params) {{ - $.ajax({{ - url: name+"/"+method, - type: "GET", - data: params, - dataType: "json", - // headers: {{ "X-Pyro-Correlation-Id": "11112222-1111-2222-3333-222244449999" }}, - // headers: {{ "X-Pyro-Gateway-Key": "secret-key" }}, - // headers: {{ "X-Pyro-Options": "oneway" }}, - beforeSend: function(xhr, settings) {{ - $("#pyro_call").text(settings.type+" "+settings.url); - }}, - error: function(xhr, status, error) {{ - var errormessage = "ERROR: "+xhr.status+" "+error+" \\n"+xhr.responseText; - $("#pyro_response").text(errormessage); - }}, - success: function(data) {{ - $("#pyro_response").text(JSON.stringify(data, null, 4)); + async function pyro_call(name, method, params) {{ + // http header examples: + // "X-Pyro-Correlation-Id": "11112222-1111-2222-3333-222244449999" + // "X-Pyro-Gateway-Key": "secret-key" + // "X-Pyro-Options": "oneway" + let api_url = name+"/"+method + if(params) api_url += "?"+(new URLSearchParams(params).toString()) + document.getElementById("pyro_call").innerText = "GET "+api_url; + await fetch(api_url, {{ + method: 'GET', + headers: {{ + 'Accept': 'application/json', + 'Content-Type': 'application/json' }} - }}); + }} ) + .then(async res => {{ + if(res.status>=400) {{ + const err = "SERVER ERROR "+res.status+"\\n"+(await res.text()) + document.getElementById("pyro_response").innerText = err + throw err + }} else {{ + return res.json() + }} + }}) + .then(json_result => document.getElementById("pyro_response").innerText = JSON.stringify(json_result, null, 4)) }} </script> <div id="title-logo"><img src="http://pyro5.readthedocs.io/en/stable/_static/pyro.png"></div> @@ -130,25 +134,25 @@ {name_server_contents_list} <p>Name server examples: (these examples are working if you expose the Pyro.NameServer object)</p> <ul> -<li><a href="Pyro.NameServer/$meta" onclick="pyro_call('Pyro.NameServer','$meta'); return false;">Pyro.NameServer/$meta</a> +<li><a href="javascript:void();" onclick="pyro_call('Pyro.NameServer','$meta'); return false;">Pyro.NameServer/$meta</a> -- gives meta info of the name server (methods)</li> -<li><a href="Pyro.NameServer/list" onclick="pyro_call('Pyro.NameServer','list'); return false;">Pyro.NameServer/list</a> +<li><a href="javascript:void();" onclick="pyro_call('Pyro.NameServer','list'); return false;">Pyro.NameServer/list</a> -- lists the contents of the name server</li> -<li><a href="Pyro.NameServer/list?prefix=test." +<li><a href="javascript:void();" onclick="pyro_call('Pyro.NameServer','list', {{'prefix':'test.'}}); return false;"> Pyro.NameServer/list?prefix=test.</a> -- lists the contents of the name server starting with 'test.'</li> -<li><a href="Pyro.NameServer/lookup?name=Pyro.NameServer" +<li><a href="javascript:void();" onclick="pyro_call('Pyro.NameServer','lookup', {{'name':'Pyro.NameServer'}}); return false;"> Pyro.NameServer/lookup?name=Pyro.NameServer</a> -- perform lookup method of the name server</li> -<li><a href="Pyro.NameServer/lookup?name=test.echoserver" +<li><a href="javascript:void();" onclick="pyro_call('Pyro.NameServer','lookup', {{'name':'test.echoserver'}}); return false;"> Pyro.NameServer/lookup?name=test.echoserver</a> -- perform lookup method of the echo server</li> </ul> <p>Echoserver examples: (these examples are working if you expose the test.echoserver object)</p> <ul> -<li><a href="test.echoserver/error" onclick="pyro_call('test.echoserver','error'); return false;">test.echoserver/error</a> +<li><a href="javascript:void();" onclick="pyro_call('test.echoserver','error'); return false;">test.echoserver/error</a> -- perform error call on echoserver</li> -<li><a href="test.echoserver/echo?message=Hi there, browser script!" +<li><a href="javascript:void();" onclick="pyro_call('test.echoserver','echo', {{'message':'Hi there, browser script!'}}); return false;"> test.echoserver/echo?message=Hi there, browser script!</a> -- perform echo call on echoserver</li> </ul> @@ -182,7 +186,7 @@ proxy._pyroBind() methods = " ".join(proxy._pyroMethods) or "-" attributes = [ - "<a href=\"{name}/{attribute}\" onclick=\"pyro_call('{name}','{attribute}'); return false;\">{attribute}</a>" + "<a href=\"javascript:void();\" onclick=\"pyro_call('{name}','{attribute}'); return false;\">{attribute}</a>" .format(name=name, attribute=attribute) for attribute in proxy._pyroAttrs ] @@ -193,7 +197,7 @@ traceback.print_exc(file=stderr) methods = "??error:%s??" % str(x) nslist.append( - "<tr><td><a href=\"{name}/$meta\" onclick=\"pyro_call('{name}','$meta'); " + "<tr><td><a href=\"javascript:void();\" onclick=\"pyro_call('{name}','$meta'); " "return false;\">{name}</a></td><td>{methods}</td><td>{attributes}</td></tr>" .format(name=name, methods=methods, attributes=attributes)) nslist.append("</table>") @@ -304,7 +308,7 @@ return option_request(start_response) else: """GET POST""" - parameters = singlyfy_parameters(cgi.parse(environ['wsgi.input'], environ)) + parameters = singlyfy_parameters(urllib.parse.parse_qs(environ["QUERY_STRING"])) return process_pyro_request(environ, path[5:], parameters, start_response) else: return invalid_request(start_response) @@ -314,7 +318,7 @@ def singlyfy_parameters(parameters): """ - Makes a cgi-parsed parameter dictionary into a dict where the values that + Makes a parsed querystring parameter dictionary into a dict where the values that are just a list of a single value, are converted to just that single value. """ for key, value in parameters.items(): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro5-5.14/Pyro5.egg-info/PKG-INFO new/Pyro5-5.15/Pyro5.egg-info/PKG-INFO --- old/Pyro5-5.14/Pyro5.egg-info/PKG-INFO 2022-10-12 22:42:18.000000000 +0200 +++ new/Pyro5-5.15/Pyro5.egg-info/PKG-INFO 2023-10-18 22:42:33.000000000 +0200 @@ -1,12 +1,13 @@ Metadata-Version: 2.1 Name: Pyro5 -Version: 5.14 +Version: 5.15 Summary: Remote object communication library, fifth major version Home-page: https://github.com/irmen/Pyro5 Author: Irmen de Jong Author-email: [email protected] License: MIT Keywords: distributed objects,RPC,remote method call,IPC +Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: MIT License @@ -14,14 +15,11 @@ Classifier: Natural Language :: Dutch Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 3.7 -Classifier: Programming Language :: Python :: 3.8 -Classifier: Programming Language :: Python :: 3.9 -Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3 Classifier: Topic :: Software Development :: Object Brokering Classifier: Topic :: System :: Distributed Computing Classifier: Topic :: System :: Networking -Requires-Python: >=3.2 +Requires-Python: >=3.7 Description-Content-Type: text/x-rst License-File: LICENSE @@ -36,12 +34,6 @@ .. image:: https://anaconda.org/conda-forge/pyro5/badges/version.svg :target: https://anaconda.org/conda-forge/pyro5 -.. image:: https://img.shields.io/lgtm/grade/python/g/irmen/Pyro5.svg?logo=lgtm&logoWidth=18 - :target: https://lgtm.com/projects/g/irmen/Pyro5/context:python - -.. image:: https://img.shields.io/lgtm/alerts/g/irmen/Pyro5.svg?logo=lgtm&logoWidth=18 - :target: https://lgtm.com/projects/g/irmen/Pyro5/alerts - Info ---- @@ -68,7 +60,7 @@ Features -------- -- written in 100% Python so extremely portable, supported on Python 3.7 and newer, and Pypy3 +- written in 100% Python so extremely portable, supported on Python 3.8 and newer, and Pypy3 - works between different system architectures and operating systems. - able to communicate between different Python versions transparently. - defaults to a safe serializer (`serpent <https://pypi.python.org/pypi/serpent>`_) that supports many Python data types. @@ -95,3 +87,5 @@ - large amount of unit tests and high test coverage. - reliable and established: built upon more than 20 years of existing Pyro history, with ongoing support and development. + + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro5-5.14/Pyro5.egg-info/SOURCES.txt new/Pyro5-5.15/Pyro5.egg-info/SOURCES.txt --- old/Pyro5-5.14/Pyro5.egg-info/SOURCES.txt 2022-10-12 22:42:18.000000000 +0200 +++ new/Pyro5-5.15/Pyro5.egg-info/SOURCES.txt 2023-10-18 22:42:33.000000000 +0200 @@ -1,5 +1,4 @@ .gitattributes -.lgtm.yml LICENSE MANIFEST.in Makefile @@ -253,8 +252,6 @@ examples/streaming/Readme.txt examples/streaming/client.py examples/streaming/server.py -examples/test/client.py -examples/test/server.py examples/thirdpartylib/Readme.txt examples/thirdpartylib/awesome_thirdparty_library.py examples/thirdpartylib/client.py diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro5-5.14/Pyro5.egg-info/entry_points.txt new/Pyro5-5.15/Pyro5.egg-info/entry_points.txt --- old/Pyro5-5.14/Pyro5.egg-info/entry_points.txt 2022-10-12 22:42:18.000000000 +0200 +++ new/Pyro5-5.15/Pyro5.egg-info/entry_points.txt 2023-10-18 22:42:33.000000000 +0200 @@ -4,3 +4,4 @@ pyro5-httpgateway = Pyro5.utils.httpgateway:main pyro5-ns = Pyro5.nameserver:main pyro5-nsc = Pyro5.nsc:main + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro5-5.14/Readme.rst new/Pyro5-5.15/Readme.rst --- old/Pyro5-5.14/Readme.rst 2021-12-23 22:17:00.000000000 +0100 +++ new/Pyro5-5.15/Readme.rst 2023-09-24 13:24:11.000000000 +0200 @@ -9,12 +9,6 @@ .. image:: https://anaconda.org/conda-forge/pyro5/badges/version.svg :target: https://anaconda.org/conda-forge/pyro5 -.. image:: https://img.shields.io/lgtm/grade/python/g/irmen/Pyro5.svg?logo=lgtm&logoWidth=18 - :target: https://lgtm.com/projects/g/irmen/Pyro5/context:python - -.. image:: https://img.shields.io/lgtm/alerts/g/irmen/Pyro5.svg?logo=lgtm&logoWidth=18 - :target: https://lgtm.com/projects/g/irmen/Pyro5/alerts - Info ---- @@ -41,7 +35,7 @@ Features -------- -- written in 100% Python so extremely portable, supported on Python 3.7 and newer, and Pypy3 +- written in 100% Python so extremely portable, supported on Python 3.8 and newer, and Pypy3 - works between different system architectures and operating systems. - able to communicate between different Python versions transparently. - defaults to a safe serializer (`serpent <https://pypi.python.org/pypi/serpent>`_) that supports many Python data types. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro5-5.14/certs/client_cert.pem new/Pyro5-5.15/certs/client_cert.pem --- old/Pyro5-5.14/certs/client_cert.pem 2018-08-16 09:50:05.000000000 +0200 +++ new/Pyro5-5.15/certs/client_cert.pem 2023-10-18 22:05:10.000000000 +0200 @@ -1,23 +1,23 @@ -----BEGIN CERTIFICATE----- -MIID3DCCAsSgAwIBAgIJANw+/bUr6dNQMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYD -VQQGEwJOTDETMBEGA1UECAwKU29tZS1TdGF0ZTEWMBQGA1UECgwNUmF6b3J2aW5l -Lm5ldDEOMAwGA1UECwwFUHlybzUxEjAQBgNVBAMMCWxvY2FsaG9zdDEiMCAGCSqG -SIb3DQEJARYTaXJtZW5AcmF6b3J2aW5lLm5ldDAeFw0xODA2MTMyMjQ2MTRaFw0y -MDExMjkyMjQ2MTRaMIGCMQswCQYDVQQGEwJOTDETMBEGA1UECAwKU29tZS1TdGF0 -ZTEWMBQGA1UECgwNUmF6b3J2aW5lLm5ldDEOMAwGA1UECwwFUHlybzUxEjAQBgNV -BAMMCWxvY2FsaG9zdDEiMCAGCSqGSIb3DQEJARYTaXJtZW5AcmF6b3J2aW5lLm5l -dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALkoq/1zaZwjMn76HLTz -XJkz8FBz74fydwyentCtH4k6fRa83Oc73qtpBw8p/vNxWrQb5mO7D5JW2sxAQBhL -sjq5KT/JC5zFJbutTXjGmYX9hqe14ts8rNbfCIBHYhZHTPKVTAvJZda2sG+KrOa8 -ojQf8D57T2nQ2TggYPetTPX0JLjEXXe8FRZcjdQm2j0pVptiErj2nLkCFaRV0/WO -lrHEI9J3N2PV8FEClLhqgGmzmvDFrGwul3nPw7Z2Z4B0iAdoBK4X7mm+DlFPGQD+ -QBcxSfsDCoNjqt4mUeitdyqG8XvOARWNma19S/KF4fEh19MN8bJQwsh/N6JJw5G3 -n2MCAwEAAaNTMFEwHQYDVR0OBBYEFBUythr0ngdQ6e11uqlbX99a71tJMB8GA1Ud -IwQYMBaAFBUythr0ngdQ6e11uqlbX99a71tJMA8GA1UdEwEB/wQFMAMBAf8wDQYJ -KoZIhvcNAQELBQADggEBACCBDVBY5ba1SRcoKBYCJaT6bEWbIMetXaNvRqLEwrwC -QntNlaoyCYt7nY6p3Kc/OxujAJse7FovACLpCiXqAn1YIv2hixKodVwRvNEdOQOD -ohBmtOdxcjzs4MRCo87ZyoJwgphmai3uYcwcEr6sMVmTURl91PQJuM3+B9tx5aGF -VWuXFHahJ0tHmblp02Imq0je8536REb+rQyuRsFIAUmgTqn30WEay36sh+JYG4tK -EwEhpG+/OjSghB3doqUqMu7bYi2W6/EVsjNhmTv5pv6E7azG32ebb6fiz6Bne0Ub -dehUNY0kMoBM53UG1QjOxBNVsNWelEM/OU39/sVwi2k= +MIID5zCCAs+gAwIBAgIUH6vXMyAKUtztBwK3qFZ3PzeqwOMwDQYJKoZIhvcNAQEL +BQAwgYIxCzAJBgNVBAYTAk5MMRMwEQYDVQQIDApTb21lLVN0YXRlMRYwFAYDVQQK +DA1SYXpvcnZpbmUubmV0MQ4wDAYDVQQLDAVQeXJvNTESMBAGA1UEAwwJbG9jYWxo +b3N0MSIwIAYJKoZIhvcNAQkBFhNpcm1lbkByYXpvcnZpbmUubmV0MB4XDTIzMTAx +ODIwMDUxMFoXDTI2MDcxMzIwMDUxMFowgYIxCzAJBgNVBAYTAk5MMRMwEQYDVQQI +DApTb21lLVN0YXRlMRYwFAYDVQQKDA1SYXpvcnZpbmUubmV0MQ4wDAYDVQQLDAVQ +eXJvNTESMBAGA1UEAwwJbG9jYWxob3N0MSIwIAYJKoZIhvcNAQkBFhNpcm1lbkBy +YXpvcnZpbmUubmV0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4+xK +kHgMHDKvhAh0XUiEBaMCAs5T1sMZ4LTWxPhWYbIHilmyuxubl2jCGRzQ5YsnBc4Q +oyDefog53f36neYJjuI/04G50Ijif9qvrxs/1DTkre+ukvXeThU9lAtfX4F8XLE0 +y1jeOSSkuPMeynStpPb3KQgrxNM1EOzTKwTZZOyeLQpZNytKwcNedPFUlJLXJbZt +xWWZZUsCCnukLemq03Uc/qG/UvP7yXrLFyJTMo8JQytdsfC3mnlNeVqt0lHIU3tJ +dzxl48qYFhDXDGpNDmDqv0BNTxe12kdFkBLjys/JYMNAgKVvZRN1YK4FMH3sWnvJ +MAJLpSJeF1rqe5WhAwIDAQABo1MwUTAdBgNVHQ4EFgQUwsK62EoZPhoTBMNw5Fde +33m9XnMwHwYDVR0jBBgwFoAUwsK62EoZPhoTBMNw5Fde33m9XnMwDwYDVR0TAQH/ +BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAPt4W0fZ6Upl7mZx/3YrpW7pCi4aD +FvJ0EfZ+Jc74cMziegMrXe8C6UECybdWCT2UyR1wzwJ8rBaZ+CTXxzLQz1Z5c5DV +Am7SgKUe9j29/hVIQbj2BfEmD0ls5hVB0waOS3b7i9T0mSjZv52xqBLfnpryI1Ln +r/Fa1Z2SvWxEHyQ+scFyoQV514X8Rjiugb4PickYYCSgIwTyGS7+HfpDydhxHNgO +m0Bcplw1jNt3rLPZhO/B3lhIEuetPirwKVsS4P5R60k5J+4rkst0SKqFdkyWWeFK +7pQPZMakBA7U2r+XFDlBGGrqiN0Q9mVVDKMvZY3Aq53SdVPgOfFBdoy/+w== -----END CERTIFICATE----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro5-5.14/certs/client_key.pem new/Pyro5-5.15/certs/client_key.pem --- old/Pyro5-5.14/certs/client_key.pem 2018-08-16 09:50:05.000000000 +0200 +++ new/Pyro5-5.15/certs/client_key.pem 2023-10-18 22:04:10.000000000 +0200 @@ -1,28 +1,28 @@ -----BEGIN PRIVATE KEY----- -MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQC5KKv9c2mcIzJ+ -+hy081yZM/BQc++H8ncMnp7QrR+JOn0WvNznO96raQcPKf7zcVq0G+Zjuw+SVtrM -QEAYS7I6uSk/yQucxSW7rU14xpmF/YanteLbPKzW3wiAR2IWR0zylUwLyWXWtrBv -iqzmvKI0H/A+e09p0Nk4IGD3rUz19CS4xF13vBUWXI3UJto9KVabYhK49py5AhWk -VdP1jpaxxCPSdzdj1fBRApS4aoBps5rwxaxsLpd5z8O2dmeAdIgHaASuF+5pvg5R -TxkA/kAXMUn7AwqDY6reJlHorXcqhvF7zgEVjZmtfUvyheHxIdfTDfGyUMLIfzei -ScORt59jAgMBAAECggEBALJI91KUTpyJR5X8Pqf9rKvX1w2glIPSc88y7LkB+duo -9clvEUWV4FIsTx/K0DKYcz35n11oQRYni4YgV5cNTBA/OfixHP1W135e4LnqgOkD -tSTHfiibw9Eh8I2ULl5FSVJLb23p/qVAQ6MjZFjISWbnWezPzyeUcZQZmUTjGbe4 -Olw+7T/DIKASuWzyxjEwYEHmCp6sBAN2E4BjkaH40oOo4h2movgpEL5wqMJf2zG1 -z8vzpXRT8OXqyClX4o/9yaVgA3VWMZPYp0FSu3gd99uZ8o+EekD0EVaA1cCCvN3J -qBkkWdf+4fqOyU8XSxE95YgKnPWPUO36/03/tlslDAECgYEA2qYNZHBeZm+66cEM -WlMcv1qp3U2utpotNo7Iz8lp4hVhCaFVhMuhRbNe6RpxHBoOsDTBSBWy/Urg+hWv -MZTDk9dfS/5oYLosQ9gftq+wgzKtpfUSQU9lYVbapCPyQiXhq+fqU1aCX47Qpesa -6NrjrhG28YtFT8trMOhFKO+bcHUCgYEA2MoLUMpqReAP4d56W2tiuAXBw64Lhdzo -grFeNXsHrFEclofQbe0OuUE0IMPYjtHpdFVyiU2umW3paHFlBTUJYqZCMdliBj7Y -sOx8xKzaAXZbVwDIwzWfcj+QCvjRi90nlanoZ6jf5HeIBjt44xz0+8aYzDmPDsfO -ADMDB0+x1XcCgYBVMd6GBELEJ0TtUAtAJqJM7UbCtEIfZHO5jmkwjYp0TWBCIFry -I2XzgrC4o1TvXjfa8LNfIxVbHJIM3+Yjq5OJR6IaOkbxaZlV1iCFTm+4r0Z6I8O5 -LvaRtwX6bwc2Pwxvry3eyxaBpWQnQjR6BtAwQzbFZz7amKhrphVMnhAzAQKBgQCo -bLBF4DyYdO9h59rf05oqpi5XvIwvP+VURECRBDh947Z2LKX+AUKDIulA22cP7n2V -aB1IFxYjFYVVI2P8m6vi/JBI8j5547GuIsz8b94fbLih63YOU0bBGCjsnUsPgo4S -dKKehlELyuHfFa1hpUmfojdr0vwV251sAjXEJGJhGQKBgQCBK1ZtedBCuyuavKcI -Na/bYC84nHnKSEfGhx8lUG2ugX3lXIlrElqSpoUFSCRdKadHRBKYS6mg02Y48B1N -XrJ3sNMS6k6xq/57y1LlnOjzdnP9gqYQ9xMbvkvxzJjI+i0yOJRufYREb6DD7g50 -w80R2Deyap2JbcdBOlLdAYC/Uw== +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDj7EqQeAwcMq+E +CHRdSIQFowICzlPWwxngtNbE+FZhsgeKWbK7G5uXaMIZHNDliycFzhCjIN5+iDnd +/fqd5gmO4j/TgbnQiOJ/2q+vGz/UNOSt766S9d5OFT2UC19fgXxcsTTLWN45JKS4 +8x7KdK2k9vcpCCvE0zUQ7NMrBNlk7J4tClk3K0rBw1508VSUktcltm3FZZllSwIK +e6Qt6arTdRz+ob9S8/vJessXIlMyjwlDK12x8LeaeU15Wq3SUchTe0l3PGXjypgW +ENcMak0OYOq/QE1PF7XaR0WQEuPKz8lgw0CApW9lE3VgrgUwfexae8kwAkulIl4X +Wup7laEDAgMBAAECggEAPbBUtilnzbICQ1AufpkD8qqd/rhthLElreYEQyeb6bFP +zShd8bqVMDPQZQ+hkp9JHo8Zfa2FyuWAFA+L53S9nYirEcoIyuJhu40rA8/yRLNU +OaenrmsRkjy5f/pcA/N9/3CPA4K4EutSEiTrboyJ+x5E4zws7Ibl1ADlXr1fQasu +ZdIwgs59iWefdPIerqCE9PvKwkz/le3Soum4Do3Mb+M5rKqV9H+dmyjqd+c/DR9S +xw42VwbNkTMJaSky8pidZKmlUt/U7picXxi7pBHpA0aK822jRnAmIv5+LnfV6X4P +OlgpJsmBIs6JCLsyQVRtot1+5JHKcUuTeegccP2BkQKBgQD/gPZmPEObKfPSEUJP +O9D7LE+tyLLfIkiLLi9sOK0XjUBvBaxppxl/koxmPck3A6VBXKn/WGh8JA5h1AUG +v2N9ymcPfl7UcZEZUDXTiIemapVT4XSwwCiuKdMpCi/pD5O82Gb9w4hoMrntWnsr +2yx7dQ+j698GGI1GbbmvEzHCzQKBgQDkXZ2SGJ7/+34FulddUK/LydJcX8PRKrbU +t7E7CuMcEWrV+vmgYtUOoifW/yLNUeRE6E89T46wesR6fmqT8I82HBmnN5JSKzls +a1H7n6F1hihivMQJ9DpUVkzlduB2dGa6sht+78Lil4ZcP0oZfdzt+gPyqmUnqJwR +B/59Dw4TDwKBgQDcC7spjVlENrtP/aE4D/IJf74XkzPJzALiKyKYd69LC1GkzCQS +0eC56AKWwzuZ77/RLPcTfJZv47WnNywlBYuv+DMOOu181Vn7jQLubTU2c7Crjw4q +czQV2tuLCsT8WXgJOe5pOo8t/hH2guh1essygDy6Fhf7bgWt1C4Iw+UlOQKBgQDb +G3cz1au4r/QaSs/IGMKTJPFQ8BFRf0osjpLds3R0WcHHzSX1XN5PTAYtol4h4ZDD +DKH6kXq2mRQq82AO0aCWqh9y8T7S1+YgwFfItUCVIkNdeQAfDNVqVeMxxv1Wqhhm +yLzY7fJutjOUDqVqD/kJ2/gtvI+RnZUgQitKkkdOwQKBgBUZ4XhDau/XUbP+wdym +rPbI1sZ2lmZx+UKjhurl8Ev8GKHqU3RJo+bfIkhxl/+jHQLY/etIeIsErp4YbxSf +ppQ32t5cMzNG0fvXDpVcm++e1R8dtLaiZtc2KorV+MYP2mXkSMeoqTpGII6hg9qo +1IqrIzI5XWAVTc5uX0jC7RsM -----END PRIVATE KEY----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro5-5.14/certs/server_cert.pem new/Pyro5-5.15/certs/server_cert.pem --- old/Pyro5-5.14/certs/server_cert.pem 2018-08-16 09:50:05.000000000 +0200 +++ new/Pyro5-5.15/certs/server_cert.pem 2023-10-18 22:06:45.000000000 +0200 @@ -1,23 +1,23 @@ -----BEGIN CERTIFICATE----- -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 -----END CERTIFICATE----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro5-5.14/certs/server_key.pem new/Pyro5-5.15/certs/server_key.pem --- old/Pyro5-5.14/certs/server_key.pem 2018-08-16 09:50:05.000000000 +0200 +++ new/Pyro5-5.15/certs/server_key.pem 2023-10-18 22:06:05.000000000 +0200 @@ -1,28 +1,28 @@ -----BEGIN PRIVATE KEY----- -MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDCU8XQIDJzhWgy -mLfhFhajUapR9ulrbSvHlqpQaHl9H0VXQMccpeCFLAquOhUkKhIqVmFvaX0MrjU1 -8iuPchC4bsTwuIB8+vmz5LKanIcBi5KJ/TIixUZJVxjzQFaSO3r20d82N/o8Onk9 -PusXJCPMnnU+nietWyCkP+I7GZd0iKsEQPd1x39aLl0eheqwQNFJxupsYVcrnaTd -7HdLkGeDRSkDSZqla2HlIfuPsSkHthWLnsrgqW6l/16RN2R5Mfl/UeLqSHiQ2Tbs -8bRNFd4oLgpYKzMBq4kRAozVA6px3T+/UoCPoluOHJmSUBHoZMo7YzAZFC/3Pxl6 -3qL+n3tBAgMBAAECggEBAIm/yGEX8athzdLP3sh3V+S9ZvZjCGNWJ8p7So9k/3lq -SUTobjwoeVbtOUT3dzUDfYz1XmwTYskyVBXBbI9qU9/o5UGeB7aQUaDrZI+klS7L -OT0HdhqfrIsgaldELBnMgAWmD4vnckJvULHRf+QPgjDxwjp48bc4+ZJ0lnE+WtYH -Lrnao/P2Al2hGEcnYSWyGphdqmOnCy7pplETN7cyLiDarZjde5BM/lcAH001LIpW -yoJftm/gl4MjEW5v82L9tadzOgRJyybhHG5k34bzaBpV63p3jp0FsBX587C4NIP4 -BmnIhfEMpq9RjS9L7vYSKbzMge/Prj0L8g5r90pZAeECgYEA4Odx7fMEZlVgQHU6 -5ZgdJKLJ8lYQ3pcy+3pgPj7HlT/N6REbn8OOO91vEalpHi8I1hOERRzjIWQGH5oR -tzNdFf9BsuIs7Ur6tCYoYcy2pz25zwh58xOtqAvScE2aGVvBP1iTpKGEXkwv0Nn7 -zWcbwh22BIckCzYK2RQaXY/irV8CgYEA3TIMz9sNkOi/iAzh4Ey26nIKfOg852A8 -33c+wvpNcWSGYR9OLnk/a8AGjT+HQA8w8kU3s79T0S7IVLDeVnQomh1lklfhRGGH -6QL/u/miAhIY2ykOtBFS7zICyH0egXUWQea6t3aiHNgqFMLyipa0SngamG9/vP9O -tRSl0j+b+18CgYABUVnZixL7hoSJ3CX8Mmf5Tvrf8KEorLofvxfRRYzl0vnh47fF -t9+dei6sa9Gx25SxrGuZ/BFYoL1ocf6olCR3fIdmBO0+drIBXDfgWtK3KCVukR4l -zne2BFu3TL0aaO8478vtqwSbiNa+4ogXLAN9n67xV9leN3LY0sVUxwMNAQKBgQCO -cnX3wc0JviniVtF73kuJzeldKT5Xjw2Ep8l+TS1kUeWMVFnH6gNiw6Y0fm3+Xgoa -a2ME2bkDpIoUqFZ2/JVNMpM/3GJQ5DJfZ7QDfS7NAJSLRvSWF/X93ooWTSVBH4M2 -63zhO4AI7VikSCtj/suajaAq/NsZfp1UVji3nok4JwKBgFoeRO1ezkq3J7igkIBr -d6D8u6z1/3sAgnYJLbSKjgdpewcedRV9uVC1g0tFRPRjTG7X0F7+ZPLaVjDM8UvO -2zhPOL6S0+fYg2bUPHexuEf2ec0PqIF6rAS+0cR85AohAXqyYGydmyDCQFDNvOvW -ygLQbLsx9AyZzrqsRoEJ7Yo6 +MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDE3GRNsEAxvoUb +qiKnxKtK8qxc81k1GDiptJ7NDZMklPENnzPTWSbnK4Fb6+dvw3KYJ62wqJS9aZ6D +LzPlHPyJ2na0ck/c2N2It3C54Jny0Dj0tQLzlRahvF0EpGJGhyy7s2wxUAy8hYXj +r7PmHk3OxBMBRe0wJTmDwKNHWQAqjHUlORTvmtFEQ53HShUzMd/iuCJYl/K4iVyW +gZbHicUSJF+l+5T6qJS8QjBogE/DE65yjlHX/UKhQl8Bsl6OCCaYn4tN21m9LbVh +JlSHbEN8NVNhu6Y3Odw3965nAL3V2mXP1t4AsNZot1CS7kWrT3vmTVL+FZF8Nin6 +GowF9XDNAgMBAAECggEAD8upRqyGMheZ4ZLgrfpzThOzrc+e0EpNvZwvA7/7lvtW +biPgiixEmVbdzczbaJXTm47PenXEXYBchiUi8lbFkqATVz421z8VY3NomZmCcL+x +Wj0t6/KB+t88zXMNKaCN/8+RNlG4e+XwzMib1DKJRrZn2fnM4siR2Vb7Iu3qu/8e +BkZQZwjpmZC4hr0JborBRqW+U4mLPuGtVkR7cXNQ3qm/MV9xy/urmGYmwfVVeH5e +xUue9B69RdUs/eNRnjmOmR56AVLJt2JXSCLrLR+TB1NVGEXZ7VBUaIUSjxgCPh6R +IoPahnnFJBMUQOVGERispLc0iJi+CEakr6NJnmOUxwKBgQDxZqyd+HbgDIXoKJhW +g63NTDfHuW3Dg0f+nh3owvhESFD6fIwJriE3ox7QzBlLEUSANToEnUf6ZLGAAaMG +Jw3Mt4ZaoRZ/Z4Tu0LrbyYkVBGE57Qg5HX9pdBMlAVlY6ek/d5hRZGEds566pt/9 +Ca2Q78edIfeTdLMClJ2OP5XQIwKBgQDQxCe02VS9kOmwrjic8cO107groP8ovJ9W +0Qm0Alc2vhAonl2lFIU9/IAhqAiA6viSnbPnM8LrLOR3717xHnS5gjYgTYGYYo64 +3GeDWkUG8Tn/PCI+VRW34M+4id7s3Oh/BFbwAWMwZv9mh8Ru7UxxaBt4xa9nA3aL +/IEkJyVSTwKBgQCUkjulEfmf1TVI+Esh2/NJCiK+gopirVbPB2OjEPQZmmR0ddj+ +UDRTeMqLeUIL6Hm/aoLluiNFoVl5TgiWzcx5dW50MvaUvRKcpMyMXtJGpCZur0rD +VDtJnM33lYf26CfNDv8pAN2gmR8VA4WRx7YSIPE67V/hWg6ehPcfSFUc/wKBgQCW +OuH78X1aoQKaAvV4cz4MBZx9wPB9JydeuTTLVffey+0i3buzxM2RarfmAF6GLxDL +qTLCCOyWggqzCA2BZBJJQJukqUG+IAZmnyzaSEZuFX9P3b0ir+XeGahBOu2x89JX +PQ82zTjMpwHZjY/c52TgIzPJuDBd6A8R85YXJxhjXwKBgQCM1AG9kgSn+0Yuc8XI +blTUWZKU+v9yIJoI+T02qZj1EwlwSR6iVSlmI2+Y72jpT0BcgPCEwsAiDro+RmmM +2CrOkOuaZAa+lKrYAR/9zoFxFpQyP0U4F5CtBv/zn1k4DXWpk9XaFgVsyQgakLRa +oYBrU6tJTMtbETSwyB2F+jDWmQ== -----END PRIVATE KEY----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro5-5.14/docs/source/changelog.rst new/Pyro5-5.15/docs/source/changelog.rst --- old/Pyro5-5.14/docs/source/changelog.rst 2022-10-12 22:39:32.000000000 +0200 +++ new/Pyro5-5.15/docs/source/changelog.rst 2023-10-18 22:22:41.000000000 +0200 @@ -2,6 +2,15 @@ Change Log ********** +**Pyro 5.15** + +- removed Python 3.7 from the support list (it is EOL). Now supported on Python 3.8 or newer. +- fixed cgi.parse deprecation problem in http gateway +- removed jquery dependency in http gateway +- some small tweaks to setup, tests, examples, and docs. +- updated the self-signed example certificates and serial numbers in the ssl example. + + **Pyro 5.14** - http gateway now also has OPTION call with CORS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro5-5.14/docs/source/clientcode.rst new/Pyro5-5.15/docs/source/clientcode.rst --- old/Pyro5-5.14/docs/source/clientcode.rst 2021-09-12 16:16:26.000000000 +0200 +++ new/Pyro5-5.15/docs/source/clientcode.rst 2023-01-17 22:46:56.000000000 +0100 @@ -136,7 +136,7 @@ print("velocity = ", velo) -See the :file:`attributes` example for more information. +See the `attributes example <https://github.com/irmen/Pyro5/tree/master/examples/attributes>`_ for more information. @@ -191,7 +191,11 @@ and their unregister-counterparts: :py:meth:`Pyro5.api.unregister_class_to_dict` and :py:meth:`Pyro5.api.unregister_dict_to_class` -Click on the method link to see its apidoc, or have a look at the :file:`custom-serialization` example and the :file:`test_serialize` unit tests for more information. +Click on the method link to see its apidoc, or have a look at the +`custom-serialization example <https://github.com/irmen/Pyro5/tree/master/examples/custom-serialization>`_ +and the +`test_serialize unit tests <https://github.com/irmen/Pyro5/blob/master/tests/test_serialize.py>`_ +for more information. It is recommended to avoid using these hooks if possible, there's a security risk to create arbitrary objects from serialized data that is received from untrusted sources. @@ -251,7 +255,8 @@ **How to make methods one-way:** You mark the methods of your class *in the server* as one-way by using a special *decorator*. See :ref:`decorating-pyro-class` for details on how to do this. -See the :file:`oneway` example for some code that demonstrates the use of oneway methods. +See the `oneway example <https://github.com/irmen/Pyro5/tree/master/examples/oneway>`_ +for some code that demonstrates the use of oneway methods. .. index:: batch calls @@ -299,7 +304,7 @@ # results==None -See the :py:mod:`batchedcalls` example for more details. +See the `batchedcalls example <https://github.com/irmen/Pyro5/tree/master/examples/batchedcalls>`_ for more details. .. index:: remote iterators/generators @@ -353,8 +358,10 @@ Lingering can be disabled completely by setting the value to 0, then all remote generators from a proxy will immediately be discarded in the server if the proxy gets disconnected or closed. -There are several examples that use the remote iterator feature. -Have a look at the :py:mod:`streaming`, :py:mod:`stockquotes`, or the :py:mod:`filetransfer` examples. +There are several examples that use the remote iterator feature. Have a look at the +`streaming <https://github.com/irmen/Pyro5/tree/master/examples/streaming>`_ , +`stockquotes <https://github.com/irmen/Pyro5/tree/master/examples/stockquotes>`_ or the +`filetransfer <https://github.com/irmen/Pyro5/tree/master/examples/filetransfer>`_ examples. .. index:: callback @@ -404,7 +411,7 @@ Also notice that the callback method (or the whole class) has to be decorated with ``@Pyro5.api.expose`` as well to allow it to be called remotely at all. -See the :py:mod:`callback` example for more details and code. +See the `callback example <https://github.com/irmen/Pyro5/tree/master/examples/callback>`_ for more details and code. .. index:: misc features @@ -422,7 +429,7 @@ However, Pyro provides a few extra features when dealing with errors that occurred in remote objects. This subject is explained in detail its own chapter: :doc:`errors`. -See the :py:mod:`exceptions` example for more details. +See the `exceptions example <https://github.com/irmen/Pyro5/tree/master/examples/exceptions>`_ for more details. .. index:: timeouts @@ -444,7 +451,7 @@ proxy._pyroTimeout = 1.5 # 1.5 seconds -See the :py:mod:`timeout` example for more details. +See the `timeout example <https://github.com/irmen/Pyro5/tree/master/examples/timeout>`_ for more details. Also, there is a automatic retry mechanism for timeout or connection closed (by server side), in order to use this automatically retry:: @@ -456,7 +463,7 @@ proxy._pyroMaxRetries = 3 # attempt to retry 3 times before raise the exception Be careful to use when remote functions have a side effect (e.g.: calling twice results in error)! -See the :py:mod:`autoretry` example for more details. +See the `autoretry example <https://github.com/irmen/Pyro5/tree/master/examples/autoretry>`_ for more details. .. index:: double: reconnecting; automatic @@ -467,7 +474,7 @@ ---------------------- If your client program becomes disconnected to the server (because the server crashed for instance), Pyro will raise a :py:exc:`Pyro5.errors.ConnectionClosedError`. -You can use the automatic retry mechanism to handle this exception, see the :py:mod:`autoretry` example for more details. +You can use the automatic retry mechanism to handle this exception, see the `autoretry example <https://github.com/irmen/Pyro5/tree/master/examples/autoretry>`_ for more details. Alternatively, it is also possible to catch this and tell Pyro to attempt to reconnect to the server by calling ``_pyroReconnect()`` on the proxy (it takes an optional argument: the number of attempts to reconnect to the daemon. By default this is almost infinite). Once successful, you can resume operations @@ -483,7 +490,7 @@ up again, it needs to publish its Pyro objects with the exact same URI as before (object id, hostname, daemon port number). -See the :py:mod:`autoreconnect` example for more details and some suggestions on how to do this. +See the `autoreconnect example <https://github.com/irmen/Pyro5/tree/master/examples/autoreconnect>`_ for more details and some suggestions on how to do this. The ``_pyroReconnect()`` method can also be used to force a newly created proxy to connect immediately, rather than on first use. @@ -502,7 +509,7 @@ You can explicitly transfer ownership of a proxy to another thread via the proxy's ``_pyroClaimOwnership()`` method. The current thread then claims the ownership of this proxy from another thread. Any existing connection will remain active. -See the :py:mod:`threadproxysharing` example for more details. +See the `threadproxysharing example <https://github.com/irmen/Pyro5/tree/master/examples/threadproxysharing>`_ for more details. .. index:: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro5-5.14/docs/source/errors.rst new/Pyro5-5.15/docs/source/errors.rst --- old/Pyro5-5.14/docs/source/errors.rst 2020-05-04 00:40:32.000000000 +0200 +++ new/Pyro5-5.15/docs/source/errors.rst 2023-01-17 22:47:24.000000000 +0100 @@ -5,7 +5,7 @@ ******************************** There is an example that shows various ways to deal with exceptions when writing Pyro code. -Have a look at the ``exceptions`` example in the :file:`examples` directory. +Have a look at the `exceptions example <https://github.com/irmen/Pyro5/tree/master/examples/exceptions>`_ . Pyro exceptions --------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro5-5.14/docs/source/intro.rst new/Pyro5-5.15/docs/source/intro.rst --- old/Pyro5-5.14/docs/source/intro.rst 2021-12-23 22:02:04.000000000 +0100 +++ new/Pyro5-5.15/docs/source/intro.rst 2023-09-24 13:24:42.000000000 +0200 @@ -86,7 +86,7 @@ consisting of many different parts and pieces. As long as you have a working (and supported) Python version running on it, you should be able to talk to it using Pyro from any other part of the system. -Have a look at the :file:`examples` directory in the source archive, perhaps one of the many example +Have a look at the `examples directory <https://github.com/irmen/Pyro5/tree/master/examples/>`_ in the source, perhaps one of the many example programs in there gives even more inspiration of possibilities. @@ -119,7 +119,7 @@ If you're familiar with Pyro4, most of the things are the same in Pyro5. These are the changes though: -- Requires Python 3.7 or newer. +- Supported on Python 3.8 or newer. - the Pyro5 API is redesigned and this library is not compatible with Pyro4 code (although everything should be familiar): - Pyro5 is the new package name @@ -278,7 +278,7 @@ This concludes this simple Pyro example. .. note:: - In the source archive there is a directory :file:`examples` that contains a truckload + In the source code there is an `examples directory <https://github.com/irmen/Pyro5/tree/master/examples/>`_ that contains a truckload of example programs that show the various features of Pyro. If you're interested in them (it is highly recommended to be so!) you will have to download the Pyro distribution archive. Installing Pyro only provides the library modules. For more information, see :doc:`config`. @@ -303,4 +303,8 @@ - contents and size of the pyro call request and response messages - the serializer being used -Experiment with the ``benchmark``, ``batchedcalls`` and ``hugetransfer`` examples to see what results you get on your own setup. +Experiment with the +`benchmark <https://github.com/irmen/Pyro5/tree/master/examples/benchmark>`_ , +`batchedcalls <https://github.com/irmen/Pyro5/tree/master/examples/batchedcalls>`_ and +`hugetransfer <https://github.com/irmen/Pyro5/tree/master/examples/hugetransfer>`_ +examples to see what results you get on your own setup. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro5-5.14/docs/source/nameserver.rst new/Pyro5-5.15/docs/source/nameserver.rst --- old/Pyro5-5.14/docs/source/nameserver.rst 2020-05-04 12:17:50.000000000 +0200 +++ new/Pyro5-5.15/docs/source/nameserver.rst 2023-01-17 22:57:00.000000000 +0100 @@ -144,7 +144,7 @@ because you have to integrate the name server into the rest of your program (perhaps you need to merge event loops?). For your convenience, two helper functions are available to create a name server yourself: :py:func:`Pyro5.nameserver.start_ns` and :py:func:`Pyro5.nameserver.start_ns_loop`. -Look at the :file:`eventloop` example to see how you can use this. +Look at the `eventloop example <https://github.com/irmen/Pyro5/tree/master/examples/eventloop>`_ to see how you can use this. **Custom storage mechanism:** The utility functions allow you to specify a custom storage mechanism (via the ``storage`` parameter). @@ -360,7 +360,7 @@ An additional benefit of using a PYRONAME uri in a proxy is that the proxy isn't strictly tied to a specific object on a specific location. This is useful in scenarios where the server objects might move to another location, for instance when a disconnect/reconnect occurs. -See the :file:`autoreconnect` example for more details about this. +See the `autoreconnect example <https://github.com/irmen/Pyro5/tree/master/examples/autoreconnect>`_ for more details about this. .. note:: Pyro has to do a lookup every time it needs to connect one of these PYRONAME uris. @@ -614,7 +614,7 @@ Also see :ref:`nameserver-pyrometa`. -You can find some code that uses the metadata API in the :file:`ns-metadata` example. +You can find some code that uses the metadata API in the `ns-metadata example <https://github.com/irmen/Pyro5/tree/master/examples/ns-metadata>`_ . Note that the ``nsc`` tool (:ref:`nameserver-nsc`) also allows you to manipulate the metadata in the name server from the command line. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro5-5.14/docs/source/security.rst new/Pyro5-5.15/docs/source/security.rst --- old/Pyro5-5.14/docs/source/security.rst 2020-05-04 00:55:18.000000000 +0200 +++ new/Pyro5-5.15/docs/source/security.rst 2023-01-17 22:50:32.000000000 +0100 @@ -68,7 +68,7 @@ For more details see here :ref:`cert_verification`. The SSL config items are in :ref:`config-items`. For example code on how to set up a 2-way-SSL Pyro client and server, with cert verification, -see the ``ssl`` example. +see the `ssl example <https://github.com/irmen/Pyro5/tree/master/examples/ssl>`_ . .. index:: double: security; object traversal @@ -123,4 +123,4 @@ It's a bit too involved to fully describe here but it not much harder than the basic SSL configuration described earlier. You just have to make sure you supply a client certificate and that the server requires a client certificate (and verifies some properties of it). -The ``ssl`` example shows how to do all this. +The `ssl example <https://github.com/irmen/Pyro5/tree/master/examples/ssl>`_ shows how to do all this. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro5-5.14/docs/source/servercode.rst new/Pyro5-5.15/docs/source/servercode.rst --- old/Pyro5-5.14/docs/source/servercode.rst 2022-01-26 22:16:21.000000000 +0100 +++ new/Pyro5-5.15/docs/source/servercode.rst 2023-01-17 22:52:56.000000000 +0100 @@ -109,7 +109,7 @@ See :ref:`oneway-calls-client` for the documentation about how client code handles this. -See the :file:`oneway` example for some code that demonstrates the use of oneway methods. +See the `oneway example <https://github.com/irmen/Pyro5/tree/master/examples/oneway>`_ for some code that demonstrates the use of oneway methods. Exposing classes and methods without changing existing source code @@ -156,7 +156,7 @@ serialization issues for instance when a method of the class returns an object whose type is again a class from the library. -See the :file:`thirdpartylib` example for a little server that deals with such a third party library. +See the `thirdpartylib example <https://github.com/irmen/Pyro5/tree/master/examples/thirdpartylib>`_ for a little server that deals with such a third party library. .. index:: publishing objects @@ -494,7 +494,9 @@ * :py:attr:`Pyro5.server.Daemon.sockets` - list of all socket objects used by the daemon, to inject in your own event loop * :py:meth:`Pyro5.server.Daemon.events` - method to call from your own event loop when Pyro needs to process requests. Argument is a list of sockets that triggered. -For more details and example code, see the :file:`eventloop` and :file:`gui_eventloop` examples. +For more details and example code, see the +`eventloop <https://github.com/irmen/Pyro5/tree/master/examples/eventloop>`_ and +`gui_eventloop <https://github.com/irmen/Pyro5/tree/master/examples/gui_eventloop>`_ examples. They show how to use Pyro including a name server, in your own event loop, and also possible ways to use Pyro from within a GUI program with its own event loop. @@ -519,7 +521,7 @@ so that you only have to call the requestLoop of that "master daemon". Basically Pyro will run an integrated multiplexed event loop for you. You can combine normal Daemon objects, the NameServerDaemon and also the name server's BroadcastServer. - Again, have a look at the :file:`eventloop` example to see how this can be done. + Again, have a look at the `eventloop example <https://github.com/irmen/Pyro5/tree/master/examples/eventloop>`_ to see how this can be done. (Note: this will only work with the ``multiplex`` server type, not with the ``thread`` type) @@ -608,8 +610,8 @@ an ``instance_creator`` callable as well. Pyro will then use that to create an instance of your class. It will call it with the class to create an instance of as the single parameter. -See the :file:`instancemode` example to learn about various ways to use this. -See the :file:`usersession` example to learn how you could use it to build user-bound resource access without concurrency problems. +See the `instancemode example <https://github.com/irmen/Pyro5/tree/master/examples/instancemode>`_ to learn about various ways to use this. +See the `usersession example <https://github.com/irmen/Pyro5/tree/master/examples/usersession>`_ to learn how you could use it to build user-bound resource access without concurrency problems. .. index:: automatic proxying @@ -626,7 +628,7 @@ self._pyroDaemon.register(thing) return thing # just return it, no need to return a proxy -There is a :file:`autoproxy` example that shows the use of this feature, +There is a `autoproxy example <https://github.com/irmen/Pyro5/tree/master/examples/autoproxy>`_ that shows the use of this feature, and several other examples also make use of it. Note that when using the marshal serializer, this feature doesn't work. You have to use @@ -810,7 +812,7 @@ It may be useful however to also process the error on the *server*, for instance, to log the error somewhere for later reference. For this purpose, you can set the ``methodcall_error_handler`` attribute -on the daemon object to a custom error handler function. See the :file:`exceptions` example. +on the daemon object to a custom error handler function. See the `exceptions example <https://github.com/irmen/Pyro5/tree/master/examples/exceptions>`_ . This function's signature is:: def custom_error_handler(daemon: Daemon, client_sock: socketutil.SocketConnection, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro5-5.14/docs/source/tipstricks.rst new/Pyro5-5.15/docs/source/tipstricks.rst --- old/Pyro5-5.14/docs/source/tipstricks.rst 2021-06-12 15:06:33.000000000 +0200 +++ new/Pyro5-5.15/docs/source/tipstricks.rst 2023-10-18 20:28:58.000000000 +0200 @@ -296,7 +296,7 @@ The following table is an indication of the relative speeds when dealing with large amounts -of binary data. It lists the results of the :file:`hugetransfer` example, using python 3.8, +of binary data. It lists the results of the `hugetransfer example <https://github.com/irmen/Pyro5/tree/master/examples/hugetransfer>`_ , using python 3.8, over a 1 Gbit LAN connection: ========== ========== ============= ================ ==================== @@ -317,7 +317,7 @@ Pyro allows you to add custom annotation chunks to the request and response messages (see :ref:`msg_annotations`). Because these are binary chunks they will not be passed through the serializer at all. Depending on what the configured maximum message size is -you may have to split up larger files. The ``filetransfer`` example contains +you may have to split up larger files. The `filetransfer example <https://github.com/irmen/Pyro5/tree/master/examples/filetransfer>`_ contains fully working example code to see this in action. It combines this with the remote iterator capability of Pyro to easily get all chunks of the file. It has to split up the file in small chunks but is still quite a bit faster than transmitting @@ -330,7 +330,7 @@ It is possible to get data transfer speeds that are close to the limit of your network adapter by doing the actual data transfer via low-level socket code and everything else via Pyro. This keeps the amount of low-level code to a minimum. -Have a look at the ``filetransfer`` example again, to see a possible way of doing this. +Have a look at the `filetransfer example <https://github.com/irmen/Pyro5/tree/master/examples/filetransfer>`_ again, to see a possible way of doing this. It creates a special Daemon subclass that uses Pyro for everything as usual, but for actual file transfer it sets up a dedicated temporary socket connection over which the file data is transmitted. @@ -439,7 +439,7 @@ Parameters are passed via a regular query string parameter list (in case of a GET request) or via form post parameters (in case of a POST request). The response is a JSON document. In case of an exception, a JSON encoded exception object is returned. -You can easily call this from your web page scripts using ``XMLHttpRequest`` or something like JQuery's ``$.ajax()``. +You can easily call this from your web page scripts using javascript's ``fetch()``. Have a look at the page source of the gateway's web page to see how this could be done. Note that you have to comply with the browser's same-origin policy: if you want to allow your own scripts to access the gateway, you'll have to make sure they are loaded from the same website. @@ -476,7 +476,7 @@ - 500 Internal server error: something went wrong during request processing, response is serialized exception object (if available) -Look at the :file:`http` example for working code how you could set this up. +Look at the `http example <https://github.com/irmen/Pyro5/tree/master/examples/http>`_ for working code how you could set this up. .. index:: current_context, correlation_id @@ -550,8 +550,8 @@ For an example of how this information can be retrieved, and how to set the ``correlation_id``, -see the :file:`callcontext` example. -See the :file:`usersession` example to learn how you could use it to build user-bound resource access without concurrency problems. +see the `callcontext example <https://github.com/irmen/Pyro5/tree/master/examples/callcontext>`_ . +See the `usersession example <https://github.com/irmen/Pyro5/tree/master/examples/usersession>`_ to learn how you could use it to build user-bound resource access without concurrency problems. .. index:: resource-tracking @@ -593,7 +593,7 @@ Untrack a previously tracked resource, useful if you have freed it normally. -See the ``resourcetracking`` example for working code utilizing this. +See the `resourcetracking example <https://github.com/irmen/Pyro5/tree/master/examples/resourcetracking>`_ for working code utilizing this. .. note:: The order in which the resources are freed is arbitrary. @@ -639,7 +639,9 @@ See :ref:`current_context`. In your server code, in the Daemon, you can use the :py:data:`Pyro5.current_context` to access the ``annotations`` of the last message that was received. -To see how you can work with custom message annotations, see the :py:mod:`callcontext` or :py:mod:`filetransfer` examples. +To see how you can work with custom message annotations, see the +`callcontext <https://github.com/irmen/Pyro5/tree/master/examples/callcontext>`_ or +`filetransfer <https://github.com/irmen/Pyro5/tree/master/examples/filetransfer>`_ examples. .. index:: handshake @@ -667,7 +669,7 @@ if you subclass the proxy and override :py:meth:`Pyro5.client.Proxy._pyroValidateHandshake`. -For an example of how you can work with connections handshake validation, see the :py:mod:`handshake` example. +For an example of how you can work with connections handshake validation, see the `handshake example <https://github.com/irmen/Pyro5/tree/master/examples/handshake>`_ . It implements a (bad!) security mechanism that requires the client to supply a "secret" password to be able to connect to the daemon. @@ -705,7 +707,7 @@ and also don't have to include the source code for the serialized types in the dispatcher. It just deals with a blob of serialized bytes. -An example that shows how this mechanism can be used, can be found as :py:mod:`blob-dispatch` in the examples folder. +An example that shows how this mechanism can be used, is `blob-dispatch <https://github.com/irmen/Pyro5/tree/master/examples/blob-dispatch>`_ . .. index:: socketpair, user provided sockets @@ -727,5 +729,5 @@ for another proxy (to access a different object). You created the socket(s) yourself, and you also have to close the socket(s) yourself. -See the :py:mod:`socketpair` example for two example programs (one using threads, the other using fork +See the `socketpair example <https://github.com/irmen/Pyro5/tree/master/examples/socketpair>`_ for two example programs (one using threads, the other using fork to create a child process). diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro5-5.14/examples/callback/client2.py new/Pyro5-5.15/examples/callback/client2.py --- old/Pyro5-5.14/examples/callback/client2.py 2018-08-16 09:50:05.000000000 +0200 +++ new/Pyro5-5.15/examples/callback/client2.py 2022-11-10 22:28:48.000000000 +0100 @@ -30,11 +30,11 @@ daemon = Daemon() -callback = CallbackHandler() -daemon.register(callback) +callback_handler = CallbackHandler() +daemon.register(callback_handler) with Proxy("PYRONAME:example.callback2") as server: - server.doCallback(callback) # this is a oneway call, so we can continue right away + server.doCallback(callback_handler) # this is a oneway call, so we can continue right away print("waiting for callbacks to arrive...") print("(ctrl-c/break the program once it's done)") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro5-5.14/examples/ssl/client.py new/Pyro5-5.15/examples/ssl/client.py --- old/Pyro5-5.14/examples/ssl/client.py 2018-08-16 09:50:05.000000000 +0200 +++ new/Pyro5-5.15/examples/ssl/client.py 2023-10-18 22:19:55.000000000 +0200 @@ -20,7 +20,7 @@ # today = datetime.datetime.now() # if today > not_after or today < not_before: # raise Pyro5.errors.CommunicationError("cert not yet valid or expired") - if cert["serialNumber"] != "8C3AD2A88A0657EF": + if cert["serialNumber"] != "63B5A2EB71E2C78CBE4200C7EAB9634E7B669407": raise Pyro5.errors.CommunicationError("cert serial number incorrect", cert["serialNumber"]) issuer = dict(p[0] for p in cert["issuer"]) subject = dict(p[0] for p in cert["subject"]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro5-5.14/examples/ssl/server.py new/Pyro5-5.15/examples/ssl/server.py --- old/Pyro5-5.14/examples/ssl/server.py 2018-08-16 09:50:05.000000000 +0200 +++ new/Pyro5-5.15/examples/ssl/server.py 2023-10-18 22:18:44.000000000 +0200 @@ -30,7 +30,7 @@ # today = datetime.datetime.now() # if today > not_after or today < not_before: # raise Pyro5.errors.CommunicationError("cert not yet valid or expired") - if cert["serialNumber"] != "DC3EFDB52BE9D350": + if cert["serialNumber"] != "1FABD733200A52DCED0702B7A856773F37AAC0E3": raise Pyro5.errors.CommunicationError("cert serial number incorrect", cert["serialNumber"]) issuer = dict(p[0] for p in cert["issuer"]) subject = dict(p[0] for p in cert["subject"]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro5-5.14/examples/test/client.py new/Pyro5-5.15/examples/test/client.py --- old/Pyro5-5.14/examples/test/client.py 2022-06-17 20:56:11.000000000 +0200 +++ new/Pyro5-5.15/examples/test/client.py 1970-01-01 01:00:00.000000000 +0100 @@ -1,22 +0,0 @@ -from Pyro5.api import Proxy - -uri = input("enter server uri: ") -t = Proxy(uri) - -print(len(t)) -for letter in t: - print(letter) -# print() -# for letter in reversed(t): -# print(letter) -# print() -# for letter in sorted(t): -# print(letter) -# print() -# print("z" in t) -# print(t[1]) -# t[1]='z' -# print(t[1]) -# del t[1] -# for letter in t: -# print(letter) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro5-5.14/examples/test/server.py new/Pyro5-5.15/examples/test/server.py --- old/Pyro5-5.14/examples/test/server.py 2022-06-17 20:47:22.000000000 +0200 +++ new/Pyro5-5.15/examples/test/server.py 1970-01-01 01:00:00.000000000 +0100 @@ -1,43 +0,0 @@ -from Pyro5.api import Daemon, expose - -@expose -class Thing: - items = ['e','b','c','d','a'] - - def __dunder__(self): - print(".dunder") - return "dunder" - - def __len__(self): - print(".len") - return len(self.items) - - def __contains__(self, item): - print(".contains", item) - return item in self.items - - def __getitem__(self, item): - print(".getitem", item) - return self.items[item] - - def __reversed__(self): - print(".reversed") - return reversed(self.items) - - def __iter__(self): - print(".iter") - return iter(self.items) - - def __setitem__(self, key, value): - print(".setitem", key, value) - self.items[key]=value - - def __delitem__(self, key): - print(".delitem", key) - del self.items[key] - - -if __name__ == "__main__": - Daemon.serveSimple({ - Thing: "thing" - }) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro5-5.14/setup.cfg new/Pyro5-5.15/setup.cfg --- old/Pyro5-5.14/setup.cfg 2022-10-12 22:42:18.973033200 +0200 +++ new/Pyro5-5.15/setup.cfg 2023-10-18 22:42:33.455201100 +0200 @@ -18,10 +18,7 @@ Natural Language :: Dutch Operating System :: OS Independent Programming Language :: Python - Programming Language :: Python :: 3.7 - Programming Language :: Python :: 3.8 - Programming Language :: Python :: 3.9 - Programming Language :: Python :: 3.10 + Programming Language :: Python :: 3 Topic :: Software Development :: Object Brokering Topic :: System :: Distributed Computing Topic :: System :: Networking @@ -30,7 +27,7 @@ zip_safe = True include_package_data = False packages = Pyro5, Pyro5.utils, Pyro5.compatibility -python_requires = >=3.2 +python_requires = >=3.7 install_requires = serpent>=1.41 @@ -46,6 +43,9 @@ max-line-length = 140 exclude = .git,__pycache__,.tox,docs,tests,build,dist,.eggs,.cache,examples +[tool:pytest] +markers = network: Mark a test as requiring network access + [egg_info] tag_build = tag_date = 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro5-5.14/tests/test_naming.py new/Pyro5-5.15/tests/test_naming.py --- old/Pyro5-5.14/tests/test_naming.py 2022-02-02 23:58:11.000000000 +0100 +++ new/Pyro5-5.15/tests/test_naming.py 2023-06-04 18:18:11.000000000 +0200 @@ -36,6 +36,7 @@ class TestBCSetup: + @pytest.mark.network def testBCstart(self): myIpAddress = Pyro5.socketutil.get_ip_address("", workaround127=True) nsUri, nameserver, bcserver = Pyro5.nameserver.start_ns(host=myIpAddress, port=0, bcport=0, enableBroadcast=False) @@ -76,11 +77,13 @@ config.NS_PORT = self.old_nsPort config.NS_BCPORT = self.old_bcPort + @pytest.mark.network def testLookupUnixsockParsing(self): # this must not raise AttributeError, it did before because of a parse bug with pytest.raises(NamingError): Pyro5.core.locate_ns("./u:/tmp/Pyro5-naming.usock") + @pytest.mark.network def testLookupAndRegister(self): ns = Pyro5.core.locate_ns() # broadcast lookup assert isinstance(ns, Pyro5.client.Proxy) @@ -107,6 +110,7 @@ assert ns.lookup("unittest.object3") == Pyro5.core.URI("PYRO:[email protected]:4444") ns._pyroRelease() + @pytest.mark.network def testDaemonPyroObj(self): uri = self.nsUri uri.object = Pyro5.core.DAEMON_NAME @@ -116,6 +120,7 @@ with pytest.raises(AttributeError): daemonobj.shutdown() + @pytest.mark.network def testMulti(self): uristr = str(self.nsUri) p = Pyro5.client.Proxy(uristr) @@ -157,6 +162,7 @@ _ = Pyro5.core.resolve(pyronameUri) _ = Pyro5.core.resolve(pyronameUri) + @pytest.mark.network def testResolve(self): resolved1 = Pyro5.core.resolve(Pyro5.core.URI("PYRO:[email protected]:4444")) resolved2 = Pyro5.core.resolve("PYRO:[email protected]:4444") @@ -186,6 +192,7 @@ with pytest.raises(TypeError): Pyro5.core.resolve(999) + @pytest.mark.network def testRefuseDottedNames(self): with Pyro5.core.locate_ns(self.nsUri.host, self.nsUri.port) as ns: # the name server should never have dotted names enabled @@ -194,6 +201,7 @@ assert ns._pyroConnection is not None assert ns._pyroConnection is None + @pytest.mark.network def testAutoClean(self): try: config.NS_AUTOCLEAN = 0.0 @@ -243,6 +251,7 @@ config.NS_PORT = self.old_nsPort config.NS_BCPORT = self.old_bcPort + @pytest.mark.network def testBCLookup0000(self): ns = Pyro5.core.locate_ns() # broadcast lookup assert isinstance(ns, Pyro5.client.Proxy) @@ -388,6 +397,7 @@ pass ns.close() + @pytest.mark.network def testStartNSfunc(self): myIpAddress = Pyro5.socketutil.get_ip_address("", workaround127=True) uri1, ns1, bc1 = Pyro5.nameserver.start_ns(host=myIpAddress, port=0, bcport=0, enableBroadcast=False) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro5-5.14/tests/test_socketutil.py new/Pyro5-5.15/tests/test_socketutil.py --- old/Pyro5-5.14/tests/test_socketutil.py 2022-02-02 23:58:25.000000000 +0100 +++ new/Pyro5-5.15/tests/test_socketutil.py 2023-06-04 18:18:11.000000000 +0200 @@ -29,6 +29,7 @@ def setup_class(cls): config.POLLTIMEOUT = 0.1 + @pytest.mark.network def testGetIP(self): config.PREFER_IP_VERSION = 4 myip = socketutil.get_ip_address("") @@ -231,6 +232,7 @@ if os.path.exists(SOCKNAME): os.remove(SOCKNAME) + @pytest.mark.network def testBroadcast(self): ss = socketutil.create_bc_socket((None, 0)) port = ss.getsockname()[1] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro5-5.14/tox.ini new/Pyro5-5.15/tox.ini --- old/Pyro5-5.14/tox.ini 2022-06-22 19:03:51.000000000 +0200 +++ new/Pyro5-5.15/tox.ini 2023-09-24 13:23:24.000000000 +0200 @@ -1,5 +1,5 @@ [tox] -envlist=py37,py38,py39,py310,py311,pypy3 +envlist=py38,py39,py310,py311,pypy3 [testenv] deps=
