Hello community, here is the log from the commit of package python-Pyro4 for openSUSE:Factory checked in at 2020-01-16 18:16:59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-Pyro4 (Old) and /work/SRC/openSUSE:Factory/.python-Pyro4.new.26092 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-Pyro4" Thu Jan 16 18:16:59 2020 rev:6 rq:764902 version:4.77 Changes: -------- --- /work/SRC/openSUSE:Factory/python-Pyro4/python-Pyro4.changes 2019-09-30 15:55:17.305872978 +0200 +++ /work/SRC/openSUSE:Factory/.python-Pyro4.new.26092/python-Pyro4.changes 2020-01-16 18:17:03.336832767 +0100 @@ -1,0 +2,16 @@ +Fri Jan 10 14:54:11 UTC 2020 - Tomáš Chvátal <[email protected]> + +- Properly conditionalize python2 build for older openSUSE + +------------------------------------------------------------------- +Thu Jan 9 17:59:58 UTC 2020 - Todd R <[email protected]> + +- Update to 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. + * URIs now allow spaces in the location part. Useful for unix + domain sockets. +- Dropped python2 subpackage due to dropping backports dependency. + +------------------------------------------------------------------- Old: ---- Pyro4-4.76.tar.gz New: ---- Pyro4-4.77.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-Pyro4.spec ++++++ --- /var/tmp/diff_new_pack.b2nuJv/_old 2020-01-16 18:17:03.956833118 +0100 +++ /var/tmp/diff_new_pack.b2nuJv/_new 2020-01-16 18:17:03.960833121 +0100 @@ -1,7 +1,7 @@ # # spec file for package python-Pyro4 # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,12 +17,12 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} +%bcond_without python2 Name: python-Pyro4 -Version: 4.76 +Version: 4.77 Release: 0 Summary: Distributed object middleware for Python (RPC) License: MIT -Group: Development/Languages/Python URL: https://github.com/irmen/Pyro4 Source: https://files.pythonhosted.org/packages/source/P/Pyro4/Pyro4-%{version}.tar.gz BuildRequires: %{python_module setuptools} @@ -43,7 +43,9 @@ BuildRequires: %{python_module pytest} BuildRequires: %{python_module serpent >= 1.27} BuildRequires: ca-certificates +%if %{with python2} BuildRequires: python-selectors34 +%endif # /SECTION %ifpython2 Requires: python-selectors34 ++++++ Pyro4-4.76.tar.gz -> Pyro4-4.77.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro4-4.76/PKG-INFO new/Pyro4-4.77/PKG-INFO --- old/Pyro4-4.76/PKG-INFO 2019-06-05 23:31:58.000000000 +0200 +++ new/Pyro4-4.77/PKG-INFO 2019-10-01 22:29:51.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: Pyro4 -Version: 4.76 +Version: 4.77 Summary: distributed object middleware for Python (RPC) Home-page: http://pyro4.readthedocs.io Author: Irmen de Jong @@ -31,10 +31,10 @@ Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 2.7 -Classifier: Programming Language :: Python :: 3.4 Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 Classifier: Topic :: Software Development :: Object Brokering Classifier: Topic :: System :: Distributed Computing Classifier: Topic :: System :: Networking diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro4-4.76/README.md new/Pyro4-4.77/README.md --- old/Pyro4-4.76/README.md 2018-09-04 00:11:22.000000000 +0200 +++ new/Pyro4-4.77/README.md 2019-08-25 13:09:29.000000000 +0200 @@ -15,15 +15,62 @@ runs on many different platforms and Python versions. -Documentation can be found online at: http://pyro4.readthedocs.io -(or unformatted here in the repo at: docs/source/intro.rst) - - This software is copyright (c) by Irmen de Jong ([email protected]). This software is released under the MIT software license. This license, including disclaimer, is available in the 'LICENSE' file. +Pyro5 +----- +Pyro4 is considered feature complete and is now in 'maintenance' mode. +This means that only important bug fixes and security issues will be made to Pyro4. +New development, improvements and new features will only be available in its successor +Pyro5: https://github.com/irmen/Pyro5 + +Documentation +============= +Documentation can be found online at: http://pyro4.readthedocs.io +(or unformatted here in the repo at: docs/source/intro.rst) + + +Feature overview +================ ----- -_Are you interested in the most recent cutting edge Pyro version? Go try out Pyro5! https://github.com/irmen/Pyro5_ +Pyro is a library that enables you to build applications in which +objects can talk to each other over the network, with minimal programming effort. +You can just use normal Python method calls, with almost every possible parameter +and return value type, and Pyro takes care of locating the right object on the right +computer to execute the method. It is designed to be very easy to use, and to +generally stay out of your way. But it also provides a set of powerful features that +enables you to build distributed applications rapidly and effortlessly. +Pyro is a pure Python library and runs on many different platforms and Python versions. + +Here's a quick overview of Pyro's features: + +- written in 100% Python so extremely portable, runs on Python 2.7, Python 3.5 and newer, IronPython, Pypy 2 and 3. +- 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. +- supports different serializers (serpent, json, marshal, msgpack, pickle, cloudpickle, dill). +- can use IPv4, IPv6 and Unix domain sockets. +- optional secure connections via SSL/TLS (encryption, authentication and integrity), including certificate validation on both ends (2-way ssl). +- lightweight client library available for .NET and Java native code ('Pyrolite', provided separately). +- designed to be very easy to use and get out of your way as much as possible, but still provide a lot of flexibility when you do need it. +- name server that keeps track of your object's actual locations so you can move them around transparently. +- yellow-pages type lookups possible, based on metadata tags on registrations in the name server. +- support for automatic reconnection to servers in case of interruptions. +- automatic proxy-ing of Pyro objects which means you can return references to remote objects just as if it were normal objects. +- one-way invocations for enhanced performance. +- batched invocations for greatly enhanced performance of many calls on the same object. +- remote iterator on-demand item streaming avoids having to create large collections upfront and transfer them as a whole. +- you can define timeouts on network communications to prevent a call blocking forever if there's something wrong. +- asynchronous invocations if you want to get the results 'at some later moment in time'. Pyro will take care of gathering the result values in the background. +- remote exceptions will be raised in the caller, as if they were local. You can extract detailed remote traceback information. +- http gateway available for clients wanting to use http+json (such as browser scripts). +- stable network communication code that works reliably on many platforms. +- can hook onto existing sockets created for instance with socketpair() to communicate efficiently between threads or sub-processes. +- possibility to use Pyro's own event loop, or integrate it into your own (or third party) event loop. +- three different possible instance modes for your remote objects (singleton, one per session, one per call). +- many simple examples included to show various features and techniques. +- large amount of unit tests and high test coverage. +- reliable and established: built upon more than 15 years of existing Pyro history, with ongoing support and development. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro4-4.76/docs/source/changelog.rst new/Pyro4-4.77/docs/source/changelog.rst --- old/Pyro4-4.76/docs/source/changelog.rst 2019-06-05 23:14:48.000000000 +0200 +++ new/Pyro4-4.77/docs/source/changelog.rst 2019-10-01 22:08:08.000000000 +0200 @@ -2,6 +2,13 @@ Change Log ********** +**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. + + **Pyro 4.76** - corrected bogus space in worker thread name diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro4-4.76/docs/source/clientcode.rst new/Pyro4-4.77/docs/source/clientcode.rst --- old/Pyro4-4.76/docs/source/clientcode.rst 2018-08-16 09:50:01.000000000 +0200 +++ new/Pyro4-4.77/docs/source/clientcode.rst 2019-07-02 15:41:39.000000000 +0200 @@ -208,6 +208,10 @@ it to allow the pickle, cloudpickle or dill serializers if your client code uses them. See :ref:`nameserver-pickle`. +.. caution:: + Pyro5 won't support insecure serializers such as pickle, cloudpickle and dill. + If you want your code to be more easily ported to Pyro5 later, there's another reason to avoid using them. + .. index:: deserialization, serializing custom classes, deserializing custom classes @@ -519,6 +523,20 @@ Asynchronous calls are implemented using a background thread that waits for the results. Callables from the call chain are invoked sequentially in this background thread. +.. note:: + Be aware that the async setting is on a per-proxy basis (unless you make an + exact copy of a proxy using ``copy.copy``). The async setting is not part of a + serialized proxy object. So this means for instance if you're using auto proxy and + use a method on an async proxy that returns a new proxy, those new proxies will *not* + be async automatically as well. + +.. caution:: + The async proxy concept is not a part of Pyro5. It has been removed in favor of + an explicit user code solution such as using Python's ``concurrent.futures`` and + not relying on a 'hidden' background thread. It is advised to not use this feature + if you want your code to be easily portable to Pyro5 later. + + See the :file:`async` example for more details and example code for call chains. Async calls for normal callables (not only for Pyro proxies) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro4-4.76/docs/source/install.rst new/Pyro4-4.77/docs/source/install.rst --- old/Pyro4-4.76/docs/source/install.rst 2018-08-16 09:50:01.000000000 +0200 +++ new/Pyro4-4.77/docs/source/install.rst 2019-06-25 00:17:21.000000000 +0200 @@ -12,8 +12,7 @@ Compatibility ------------- Pyro is written in 100% Python. It works on any recent operating system where a suitable supported Python implementation is available -(2.7, or 3.4 and newer). It also works with Pypy (2 and 3) and IronPython. -It will probably not work with Jython 2.7 at this time of writing. If you need this, try Pyro version 4.34 or older instead. +(2.7, or 3.5 and newer). It also works with Pypy (2 and 3). Maybe it also works with other Python implementations, but those are not tested. (if you only need to write *client* code in Jython/Java, consider using :doc:`pyrolite` instead!) @@ -31,29 +30,24 @@ Obtaining and installing Pyro ----------------------------- -**Debian Linux (or Debian derived distributions)** - You can install via the package manager: ``apt install python3-pyro4`` (for Python 3.x) or ``apt install python2-pyro4`` (for Python 2.x). - Please pay attention to the packaged Pyro4 version, it can be quite old if you're not getting the package - from the testing or unstable repositories. +**Linux** + Some Linux distributions offer Pyro4 through their package manager. Make sure you install the correct + one for the python version that you are using. It may be more convenient to just pip install it instead + in a virtualenv. **Anaconda** Anaconda users can install the Pyro4 package from conda-forge using ``conda install -c conda-forge pyro4`` -**Pip** +**Pip install** ``pip install Pyro4`` should do the trick. Pyro is available `here <http://pypi.python.org/pypi/Pyro4/>`_ on pypi. -**Manual installation** +**Manual installation from source** Download the source distribution archive (Pyro4-X.YZ.tar.gz) from Pypi or Github, extract and ``python setup.py install``. The `serpent <https://pypi.python.org/pypi/serpent>`_ serialization library must also be installed. - If you're using a version of Python older than 3.4, the `selectors2 <https://pypi.python.org/pypi/selectors2>`_ + If you're using a version of Python older than 3.5, the `selectors2 <https://pypi.python.org/pypi/selectors2>`_ or `selectors34 <https://pypi.python.org/pypi/selectors34>`_ backported module must also be installed to be able to use the multiplex server type. -.. attention:: - When using Python 3.4 or older it is better to install ``selectors2`` instead of ``selectors34``. - Pyro4's package requirements only refer to ``selectors34`` but Pyro will use ``selectors2`` first if it detects it. - (reason: selectors2 deals with interrupted system calls better. Python 3.5 and newer already have this built-in.) - **Github** Source is on Github: https://github.com/irmen/Pyro4 The required serpent serializer library is there as well: https://github.com/irmen/Serpent diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro4-4.76/docs/source/intro.rst new/Pyro4-4.77/docs/source/intro.rst --- old/Pyro4-4.76/docs/source/intro.rst 2018-08-16 09:50:01.000000000 +0200 +++ new/Pyro4-4.77/docs/source/intro.rst 2019-06-25 00:16:42.000000000 +0200 @@ -23,7 +23,7 @@ Here's a quick overview of Pyro's features: -- written in 100% Python so extremely portable, runs on Python 2.7, Python 3.4 and newer, IronPython, Pypy 2 and 3. +- written in 100% Python so extremely portable, runs on Python 2.7, Python 3.5 and newer, IronPython, Pypy 2 and 3. - 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/Pyro4-4.76/docs/source/pyrolite.rst new/Pyro4-4.77/docs/source/pyrolite.rst --- old/Pyro4-4.76/docs/source/pyrolite.rst 2018-08-16 09:50:01.000000000 +0200 +++ new/Pyro4-4.77/docs/source/pyrolite.rst 2019-07-15 22:21:46.000000000 +0200 @@ -30,7 +30,7 @@ Source is on Github: https://github.com/irmen/Pyrolite -Readme: https://raw.githubusercontent.com/irmen/Pyrolite/master/README.txt +Readme: https://github.com/irmen/Pyrolite/blob/master/README.md Small code example in Java: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro4-4.76/docs/source/security.rst new/Pyro4-4.77/docs/source/security.rst --- old/Pyro4-4.76/docs/source/security.rst 2018-08-16 09:50:01.000000000 +0200 +++ new/Pyro4-4.77/docs/source/security.rst 2019-07-02 15:41:45.000000000 +0200 @@ -29,6 +29,11 @@ Because of this the default serializer is serpent, which doesn't have this security problem. Some other means to enhance security are discussed below. +.. caution:: + Pyro5 won't support insecure serializers such as these. If you want your code to be + more easily ported to Pyro5 later, there's another reason to avoid using them. + + .. index:: double: security; network interfaces @@ -86,9 +91,6 @@ For example code on how to set up a 2-way-SSL Pyro client and server, with cert verification, see the ``ssl`` example. -.. important:: - You must use at least Python 2.7.11 / 3.4.4 or newer for proper SSL support. - .. index:: double: security; object traversal double: security; dotted names diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro4-4.76/docs/source/tipstricks.rst new/Pyro4-4.77/docs/source/tipstricks.rst --- old/Pyro4-4.76/docs/source/tipstricks.rst 2018-08-16 09:50:01.000000000 +0200 +++ new/Pyro4-4.77/docs/source/tipstricks.rst 2019-07-02 15:39:15.000000000 +0200 @@ -19,6 +19,10 @@ Avoid using the ``pickle`` (and ``dill``, and ``cloudpickle``) serializers, they will make your solution insecure. Avoid using Flame (it requires pickle, but has severe security implications by itself). +.. note:: + These features are not available in Pyro5 as well, so if you want your code to be easily portable to Pyro5 later, + there's another reason to not use them. + Make as little as possible remotely accessible. ----------------------------------------------- @@ -265,6 +269,10 @@ and you can cancel it altogether via the :py:meth:`Pyro4.futures.Future.cancel` method (which only works if the future hasn't been evaluated yet). +.. note:: + Async proxies are no longer available in Pyro5, so if you want your code to be easily portable to Pyro5 later, + it may be better to not use them. + .. index:: DNS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro4-4.76/examples/timezones/client.py new/Pyro4-4.77/examples/timezones/client.py --- old/Pyro4-4.76/examples/timezones/client.py 2018-08-16 09:50:01.000000000 +0200 +++ new/Pyro4-4.77/examples/timezones/client.py 2019-09-01 22:30:52.000000000 +0200 @@ -41,6 +41,7 @@ # pickle. print("\n******* pickle *******") +print("******* (expecting no errors) ******") Pyro4.config.SERIALIZER = "pickle" try: test() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro4-4.76/setup.py new/Pyro4-4.77/setup.py --- old/Pyro4-4.76/setup.py 2019-03-08 23:14:45.000000000 +0100 +++ new/Pyro4-4.77/setup.py 2019-06-25 00:12:10.000000000 +0200 @@ -70,10 +70,10 @@ "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7", - "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", "Topic :: Software Development :: Object Brokering", "Topic :: System :: Distributed Computing", "Topic :: System :: Networking" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro4-4.76/src/Pyro4/constants.py new/Pyro4-4.77/src/Pyro4/constants.py --- old/Pyro4-4.76/src/Pyro4/constants.py 2019-06-05 23:15:54.000000000 +0200 +++ new/Pyro4-4.77/src/Pyro4/constants.py 2019-10-01 22:17:29.000000000 +0200 @@ -5,7 +5,7 @@ """ # Pyro version -VERSION = "4.76" +VERSION = "4.77" # standard object name for the Daemon object DAEMON_NAME = "Pyro.Daemon" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro4-4.76/src/Pyro4/core.py new/Pyro4-4.77/src/Pyro4/core.py --- old/Pyro4-4.76/src/Pyro4/core.py 2019-03-07 21:34:54.000000000 +0100 +++ new/Pyro4-4.77/src/Pyro4/core.py 2019-10-01 21:56:18.000000000 +0200 @@ -47,7 +47,7 @@ You can write the protocol in lowercase if you like (``pyro:...``) but it will automatically be converted to uppercase internally. """ - uriRegEx = re.compile(r"(?P<protocol>[Pp][Yy][Rr][Oo][a-zA-Z]*):(?P<object>\S+?)(@(?P<location>\S+))?$") + uriRegEx = re.compile(r"(?P<protocol>[Pp][Yy][Rr][Oo][a-zA-Z]*):(?P<object>\S+?)(@(?P<location>.+))?$") def __init__(self, uri): if isinstance(uri, URI): @@ -663,7 +663,9 @@ def _pyroAsync(self, asynchronous=True): """turns the proxy into asynchronous mode so you can do asynchronous method calls, - or sets it back to normal sync mode if you set asynchronous=False.""" + or sets it back to normal sync mode if you set asynchronous=False. + This setting is strictly on a per-proxy basis (unless an exact clone is made + via copy.copy).""" self.__async = asynchronous if sys.version_info < (3, 7): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro4-4.76/src/Pyro4/socketutil.py new/Pyro4-4.77/src/Pyro4/socketutil.py --- old/Pyro4-4.76/src/Pyro4/socketutil.py 2018-08-16 09:50:01.000000000 +0200 +++ new/Pyro4-4.77/src/Pyro4/socketutil.py 2019-06-25 00:15:09.000000000 +0200 @@ -582,8 +582,6 @@ # (disabling vulnerable cyphers and protocols by default). So change this at your own peril. if sys.version_info < (2, 7, 11): raise RuntimeError("need Python 2.7.11 or newer to properly use SSL") - if (3, 0) < sys.version_info < (3, 4, 4): - raise RuntimeError("need Python 3.4.4 or newer to properly use SSL") if servercert: if clientcert: raise ValueError("can't have both server cert and client cert") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro4-4.76/src/Pyro4.egg-info/PKG-INFO new/Pyro4-4.77/src/Pyro4.egg-info/PKG-INFO --- old/Pyro4-4.76/src/Pyro4.egg-info/PKG-INFO 2019-06-05 23:31:58.000000000 +0200 +++ new/Pyro4-4.77/src/Pyro4.egg-info/PKG-INFO 2019-10-01 22:29:51.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: Pyro4 -Version: 4.76 +Version: 4.77 Summary: distributed object middleware for Python (RPC) Home-page: http://pyro4.readthedocs.io Author: Irmen de Jong @@ -31,10 +31,10 @@ Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 2.7 -Classifier: Programming Language :: Python :: 3.4 Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 Classifier: Topic :: Software Development :: Object Brokering Classifier: Topic :: System :: Distributed Computing Classifier: Topic :: System :: Networking diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro4-4.76/tests/PyroTests/test_core.py new/Pyro4-4.77/tests/PyroTests/test_core.py --- old/Pyro4-4.76/tests/PyroTests/test_core.py 2018-08-16 09:50:01.000000000 +0200 +++ new/Pyro4-4.77/tests/PyroTests/test_core.py 2019-10-01 21:57:34.000000000 +0200 @@ -132,6 +132,9 @@ self.assertEqual(uri, str(p)) self.assertEqual(unicodeuri, unicode(p)) self.assertTrue(type(p.sockname) is unicode) + uri = "PYRO:12345@./u:sock name with strings" + p = Pyro4.core.URI(uri) + self.assertEqual(uri, str(p)) def testUriParsingPyro(self): p = Pyro4.core.URI("PYRONAME:some_obj_name") @@ -159,6 +162,9 @@ p = Pyro4.core.URI("PYRO:12345@./u:/tmp/sockname") self.assertEqual("12345", p.object) self.assertEqual("/tmp/sockname", p.sockname) + p = Pyro4.core.URI("PYRO:12345@./u:/path with spaces/sockname ") + self.assertEqual("12345", p.object) + self.assertEqual("/path with spaces/sockname ", p.sockname) p = Pyro4.core.URI("PYRO:12345@./u:../sockname") self.assertEqual("12345", p.object) self.assertEqual("../sockname", p.sockname) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro4-4.76/tests/PyroTests/test_socket.py new/Pyro4-4.77/tests/PyroTests/test_socket.py --- old/Pyro4-4.76/tests/PyroTests/test_socket.py 2019-03-08 23:28:42.000000000 +0100 +++ new/Pyro4-4.77/tests/PyroTests/test_socket.py 2019-06-25 00:15:31.000000000 +0200 @@ -558,7 +558,6 @@ @unittest.skipIf(not ssl, "ssl tests requires ssl module") [email protected]((3, 0) < sys.version_info < (3, 4), "ssl needs python 3.4+") class TestSSL(unittest.TestCase): def testContextAndSock(self): cert_dir = "../../certs" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pyro4-4.76/tox.ini new/Pyro4-4.77/tox.ini --- old/Pyro4-4.76/tox.ini 2018-08-16 09:50:01.000000000 +0200 +++ new/Pyro4-4.77/tox.ini 2019-06-25 00:18:10.000000000 +0200 @@ -1,5 +1,5 @@ [tox] -envlist=py27,py34,py35,py36,py37,pypy +envlist=py27,py35,py36,py37,py38,pypy [testenv] deps=-rtest_requirements.txt
