Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-pecan for openSUSE:Factory checked in at 2021-12-25 20:16:26 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-pecan (Old) and /work/SRC/openSUSE:Factory/.python-pecan.new.2520 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pecan" Sat Dec 25 20:16:26 2021 rev:29 rq:941482 version:1.4.1 Changes: -------- --- /work/SRC/openSUSE:Factory/python-pecan/python-pecan.changes 2021-10-25 15:17:13.749667970 +0200 +++ /work/SRC/openSUSE:Factory/.python-pecan.new.2520/python-pecan.changes 2021-12-25 20:16:30.973243285 +0100 @@ -1,0 +2,12 @@ +Sat Dec 11 22:31:15 UTC 2021 - Dirk M??ller <dmuel...@suse.com> + +- update to 1.4.1: + * add support for Python 3.10 + * added trove classifiers for Python 3.6 - 3.9 + * fixed a bug related to setuptools as a dependency + * fixed a bug that broke pecan when used with certain + versions of SQLAlchemy +- drop 0001-Support-SQLAlchemy-1.4.x.patch, + 0002-Fix-typo-from-bad-copy-paste.patch: obsolete (upstream) + +------------------------------------------------------------------- Old: ---- 0001-Support-SQLAlchemy-1.4.x.patch 0002-Fix-typo-from-bad-copy-paste.patch pecan-1.4.0.tar.gz New: ---- pecan-1.4.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-pecan.spec ++++++ --- /var/tmp/diff_new_pack.MYj5IP/_old 2021-12-25 20:16:31.497243711 +0100 +++ /var/tmp/diff_new_pack.MYj5IP/_new 2021-12-25 20:16:31.505243718 +0100 @@ -25,15 +25,13 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} %define skip_python2 1 Name: python-pecan -Version: 1.4.0 +Version: 1.4.1 Release: 0 Summary: A WSGI object-dispatching web framework License: BSD-3-Clause URL: https://github.com/pecan/pecan Source: https://files.pythonhosted.org/packages/source/p/pecan/pecan-%{version}.tar.gz Patch0: pecan-no-kajiki.patch -Patch1: 0001-Support-SQLAlchemy-1.4.x.patch -Patch2: 0002-Fix-typo-from-bad-copy-paste.patch BuildRequires: %{python_module Genshi >= 0.7} BuildRequires: %{python_module Jinja2} BuildRequires: %{python_module Mako >= 0.4.0} @@ -78,8 +76,6 @@ %prep %setup -q -n pecan-%{version} %patch0 -p1 -%patch1 -p1 -%patch2 -p1 sed -ie "/^uwsgi$/d" test-requirements.txt sed -ie "/^pep8$/d" test-requirements.txt ++++++ pecan-1.4.0.tar.gz -> pecan-1.4.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.4.0/AUTHORS new/pecan-1.4.1/AUTHORS --- old/pecan-1.4.0/AUTHORS 1970-01-01 01:00:00.000000000 +0100 +++ new/pecan-1.4.1/AUTHORS 2021-12-08 18:46:27.000000000 +0100 @@ -0,0 +1,16 @@ +Pecan is written by various contributors (by date of contribution): + +Jonathan LaCour +Alfredo Deza +Mark McClain +Ryan Petrello +Yoann Roman +John Anderson +Jeremy Jones +Benjamin W. Smith +Pete Chudykowski +Mike Perez +Justin Barber +Wesley Spikes +Steven Berler +Chad Lung diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.4.0/PKG-INFO new/pecan-1.4.1/PKG-INFO --- old/pecan-1.4.0/PKG-INFO 2020-07-30 18:29:36.881268700 +0200 +++ new/pecan-1.4.1/PKG-INFO 2021-12-08 18:51:10.944881700 +0100 @@ -1,12 +1,11 @@ -Metadata-Version: 1.1 +Metadata-Version: 2.1 Name: pecan -Version: 1.4.0 +Version: 1.4.1 Summary: A WSGI object-dispatching web framework, designed to be lean and fast, with few dependencies. Home-page: http://github.com/pecan/pecan Author: Jonathan LaCour Author-email: i...@pecanpy.org License: BSD -Description: UNKNOWN Keywords: web framework wsgi object-dispatch http Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable @@ -20,7 +19,15 @@ Classifier: Operating System :: POSIX Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 -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: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 Classifier: Topic :: Internet :: WWW/HTTP :: WSGI Classifier: Topic :: Software Development :: Libraries :: Application Frameworks +License-File: LICENSE +License-File: AUTHORS + +UNKNOWN + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.4.0/pecan/jsonify.py new/pecan-1.4.1/pecan/jsonify.py --- old/pecan-1.4.0/pecan/jsonify.py 2020-07-30 18:00:23.000000000 +0200 +++ new/pecan-1.4.1/pecan/jsonify.py 2021-12-08 18:46:27.000000000 +0100 @@ -33,6 +33,19 @@ pass +try: + from sqlalchemy.engine.cursor import LegacyCursorResult, LegacyRow +except ImportError: # pragma no cover + # dummy classes since we don't have SQLAlchemy installed + # or we're using SQLAlchemy < 1.4 + + class LegacyCursorResult(object): # noqa + pass + + class LegacyRow(object): # noqa + pass + + # # encoders # @@ -100,6 +113,11 @@ if props['count'] < 0: props['count'] = len(props['rows']) return props + elif isinstance(obj, LegacyCursorResult): + rows = [dict(row._mapping) for row in obj.fetchall()] + return {'count': len(rows), 'rows': rows} + elif isinstance(obj, LegacyRow): + return dict(obj._mapping) elif isinstance(obj, RowProxy): return dict(obj) elif isinstance(obj, webob_dicts): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.4.0/pecan/tests/scaffold_builder.py new/pecan-1.4.1/pecan/tests/scaffold_builder.py --- old/pecan-1.4.0/pecan/tests/scaffold_builder.py 2020-07-30 18:00:23.000000000 +0200 +++ new/pecan-1.4.1/pecan/tests/scaffold_builder.py 2021-12-08 18:46:27.000000000 +0100 @@ -117,27 +117,6 @@ finally: proc.terminate() - class TestGunicornServeCommand(TestThirdPartyServe): - - def test_serve_from_config(self): - # Start the server - proc = subprocess.Popen([ - os.path.join(self.bin, 'gunicorn_pecan'), - 'testing123/config.py' - ]) - - self.poll_http('gunicorn', proc, 8080) - - def test_serve_with_custom_bind(self): - # Start the server - proc = subprocess.Popen([ - os.path.join(self.bin, 'gunicorn_pecan'), - '--bind=0.0.0.0:9191', - 'testing123/config.py' - ]) - - self.poll_http('gunicorn', proc, 9191) - class TestUWSGIServiceCommand(TestThirdPartyServe): def test_serve_from_config(self): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.4.0/pecan/tests/test_base.py new/pecan-1.4.1/pecan/tests/test_base.py --- old/pecan-1.4.0/pecan/tests/test_base.py 2020-07-30 18:00:23.000000000 +0200 +++ new/pecan-1.4.1/pecan/tests/test_base.py 2021-12-08 18:46:27.000000000 +0100 @@ -456,8 +456,12 @@ assert type(ex) == TypeError assert ex.args[0] in ( "index() takes exactly 2 arguments (1 given)", - "index() missing 1 required positional argument: 'id'" - ) # this messaging changed in Python 3.3 + "index() missing 1 required positional argument: 'id'", + ( + "TestControllerArguments.app_.<locals>.RootController." + "index() missing 1 required positional argument: 'id'" + ), + ) # this messaging changed in Python 3.3 and again in Python 3.10 def test_single_argument(self): r = self.app_.get('/1') @@ -994,9 +998,13 @@ except Exception as ex: assert type(ex) == TypeError assert ex.args[0] in ( - "eater() takes at least 2 arguments (1 given)", - "eater() missing 1 required positional argument: 'id'" - ) # this messaging changed in Python 3.3 + "eater() takes exactly 2 arguments (1 given)", + "eater() missing 1 required positional argument: 'id'", + ( + "TestControllerArguments.app_.<locals>.RootController." + "eater() missing 1 required positional argument: 'id'" + ), + ) # this messaging changed in Python 3.3 and again in Python 3.10 def test_one_remainder(self): r = self.app_.get('/eater/1') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.4.0/pecan/tests/test_conf.py new/pecan-1.4.1/pecan/tests/test_conf.py --- old/pecan-1.4.0/pecan/tests/test_conf.py 2020-07-30 18:00:23.000000000 +0200 +++ new/pecan-1.4.1/pecan/tests/test_conf.py 2021-12-08 18:46:27.000000000 +0100 @@ -338,7 +338,7 @@ def test_invalid_path(self): os.environ['PECAN_CONFIG'] = '/' msg = "PECAN_CONFIG was set to an invalid path: /" - self.assertRaisesRegexp( + self.assertRaisesRegex( RuntimeError, msg, self.get_conf_path_from_env @@ -347,7 +347,7 @@ def test_is_not_set(self): msg = "PECAN_CONFIG is not set and " \ "no config file was passed as an argument." - self.assertRaisesRegexp( + self.assertRaisesRegex( RuntimeError, msg, self.get_conf_path_from_env diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.4.0/pecan/tests/test_no_thread_locals.py new/pecan-1.4.1/pecan/tests/test_no_thread_locals.py --- old/pecan-1.4.0/pecan/tests/test_no_thread_locals.py 2020-07-30 18:00:23.000000000 +0200 +++ new/pecan-1.4.1/pecan/tests/test_no_thread_locals.py 2021-12-08 18:46:27.000000000 +0100 @@ -361,9 +361,13 @@ except Exception as ex: assert type(ex) == TypeError assert ex.args[0] in ( - "index() takes exactly 4 arguments (3 given)", - "index() missing 1 required positional argument: 'id'" - ) # this messaging changed in Python 3.3 + "index() takes exactly 2 arguments (1 given)", + "index() missing 1 required positional argument: 'id'", + ( + "TestControllerArguments.app_.<locals>.RootController." + "index() missing 1 required positional argument: 'id'" + ), + ) # this messaging changed in Python 3.3 and again in Python 3.10 def test_single_argument(self): r = self.app_.get('/1') @@ -763,9 +767,13 @@ except Exception as ex: assert type(ex) == TypeError assert ex.args[0] in ( - "eater() takes at least 4 arguments (3 given)", - "eater() missing 1 required positional argument: 'id'" - ) # this messaging changed in Python 3.3 + "eater() takes exactly 2 arguments (1 given)", + "eater() missing 1 required positional argument: 'id'", + ( + "TestControllerArguments.app_.<locals>.RootController." + "eater() missing 1 required positional argument: 'id'" + ), + ) # this messaging changed in Python 3.3 and again in Python 3.10 def test_one_remainder(self): r = self.app_.get('/eater/1') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.4.0/pecan.egg-info/PKG-INFO new/pecan-1.4.1/pecan.egg-info/PKG-INFO --- old/pecan-1.4.0/pecan.egg-info/PKG-INFO 2020-07-30 18:29:36.000000000 +0200 +++ new/pecan-1.4.1/pecan.egg-info/PKG-INFO 2021-12-08 18:51:10.000000000 +0100 @@ -1,12 +1,11 @@ -Metadata-Version: 1.1 +Metadata-Version: 2.1 Name: pecan -Version: 1.4.0 +Version: 1.4.1 Summary: A WSGI object-dispatching web framework, designed to be lean and fast, with few dependencies. Home-page: http://github.com/pecan/pecan Author: Jonathan LaCour Author-email: i...@pecanpy.org License: BSD -Description: UNKNOWN Keywords: web framework wsgi object-dispatch http Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable @@ -20,7 +19,15 @@ Classifier: Operating System :: POSIX Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 -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: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 Classifier: Topic :: Internet :: WWW/HTTP :: WSGI Classifier: Topic :: Software Development :: Libraries :: Application Frameworks +License-File: LICENSE +License-File: AUTHORS + +UNKNOWN + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.4.0/pecan.egg-info/SOURCES.txt new/pecan-1.4.1/pecan.egg-info/SOURCES.txt --- old/pecan-1.4.0/pecan.egg-info/SOURCES.txt 2020-07-30 18:29:36.000000000 +0200 +++ new/pecan-1.4.1/pecan.egg-info/SOURCES.txt 2021-12-08 18:51:10.000000000 +0100 @@ -1,3 +1,4 @@ +AUTHORS LICENSE MANIFEST.in README.rst diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.4.0/pecan.egg-info/requires.txt new/pecan-1.4.1/pecan.egg-info/requires.txt --- old/pecan-1.4.0/pecan.egg-info/requires.txt 2020-07-30 18:29:36.000000000 +0200 +++ new/pecan-1.4.1/pecan.egg-info/requires.txt 2021-12-08 18:51:10.000000000 +0100 @@ -1,5 +1,6 @@ WebOb>=1.8 Mako>=0.4.0 WebTest>=1.3.1 +setuptools six logutils>=0.3 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.4.0/requirements.txt new/pecan-1.4.1/requirements.txt --- old/pecan-1.4.0/requirements.txt 2020-07-30 18:00:23.000000000 +0200 +++ new/pecan-1.4.1/requirements.txt 2021-12-08 18:46:27.000000000 +0100 @@ -1,5 +1,6 @@ WebOb>=1.8 Mako>=0.4.0 WebTest>=1.3.1 +setuptools six logutils>=0.3 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pecan-1.4.0/setup.py new/pecan-1.4.1/setup.py --- old/pecan-1.4.0/setup.py 2020-07-30 18:01:05.000000000 +0200 +++ new/pecan-1.4.1/setup.py 2021-12-08 18:46:27.000000000 +0100 @@ -3,7 +3,7 @@ from setuptools import setup, find_packages -version = '1.4.0' +version = '1.4.1' # # determine requirements @@ -67,8 +67,11 @@ 'Operating System :: POSIX', 'Programming Language :: Python', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.9', + 'Programming Language :: Python :: 3.10', 'Topic :: Internet :: WWW/HTTP :: WSGI', 'Topic :: Software Development :: Libraries :: Application Frameworks' ],