Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-bottle for openSUSE:Factory checked in at 2022-05-30 12:42:40 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-bottle (Old) and /work/SRC/openSUSE:Factory/.python-bottle.new.2254 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-bottle" Mon May 30 12:42:40 2022 rev:19 rq:979443 version:0.12.21 Changes: -------- --- /work/SRC/openSUSE:Factory/python-bottle/python-bottle.changes 2020-11-17 21:21:22.457093955 +0100 +++ /work/SRC/openSUSE:Factory/.python-bottle.new.2254/python-bottle.changes 2022-05-30 12:43:17.284337642 +0200 @@ -1,0 +2,12 @@ +Thu May 26 20:41:56 UTC 2022 - Beno??t Monin <[email protected]> + +- update to version 0.12.21: bugfix release + * Fix: Bad deprecation warning in cherrypy server adapter +- update to version 0.12.20: security fix + * fix: Multipart file uploads with empty filename not detected + as binary + * fix auth_basic decorator (#586) + * Add ServerAdapter for CherryPy >= 9 + * Gracefully handle errors during early request binding + +------------------------------------------------------------------- Old: ---- bottle-0.12.19.tar.gz New: ---- bottle-0.12.21.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-bottle.spec ++++++ --- /var/tmp/diff_new_pack.26wJfS/_old 2022-05-30 12:43:18.024338627 +0200 +++ /var/tmp/diff_new_pack.26wJfS/_new 2022-05-30 12:43:18.032338637 +0200 @@ -1,7 +1,7 @@ # # spec file for package python-bottle # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,7 +18,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-bottle -Version: 0.12.19 +Version: 0.12.21 Release: 0 Summary: WSGI framework for small web applications License: MIT @@ -29,9 +29,9 @@ Patch0: fix_cookie_test.patch BuildRequires: %{python_module setuptools} BuildRequires: python-rpm-macros -BuildArch: noarch Requires(post): update-alternatives -Requires(postun): update-alternatives +Requires(postun):update-alternatives +BuildArch: noarch %python_subpackages %description ++++++ bottle-0.12.19.tar.gz -> bottle-0.12.21.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bottle-0.12.19/AUTHORS new/bottle-0.12.21/AUTHORS --- old/bottle-0.12.19/AUTHORS 1970-01-01 01:00:00.000000000 +0100 +++ new/bottle-0.12.21/AUTHORS 2022-05-24 20:27:52.000000000 +0200 @@ -0,0 +1,64 @@ +Bottle is written and maintained by Marcel Hellkamp <[email protected]>. + +Thanks to all the people who found bugs, sent patches, spread the word, helped each other on the mailing-list and made this project possible. I hope the following (alphabetically sorted) list is complete. If you miss your name on that list (or want your name removed) please :doc:`tell me <contact>` or add it yourself. + +* acasajus +* Adam R. Smith +* Alexey Borzenkov +* Alexis Daboville +* Anton I. Sipos +* Anton Kolechkin +* apexi200sx +* apheage +* BillMa +* Brad Greenlee +* Brandon Gilmore +* Branko Vukelic +* Brian Sierakowski +* Brian Wickman +* Carl Scharenberg +* Damien Degois +* David Buxton +* Duane Johnson +* fcamel +* Frank Murphy +* Frederic Junod +* goldfaber3012 +* Greg Milby +* gstein +* Ian Davis +* Itamar Nabriski +* Iuri de Silvio +* Jaimie Murdock +* Jeff Nichols +* Jeremy Kelley +* joegester +* Johannes Krampf +* Jonas Haag +* Joshua Roesslein +* Karl +* Kevin Zuber +* Kraken +* Kyle Fritz +* m35 +* Marcos Neves +* masklinn +* Michael Labbe +* Michael Soulier +* `reddit <http://reddit.com/r/python>`_ +* Nicolas Vanhoren +* Robert Rollins +* rogererens +* rwxrwx +* Santiago Gala +* Sean M. Collins +* Sebastian Wollrath +* Seth +* Sigurd H??gsbro +* Stuart Rackham +* Sun Ning +* Tom??s A. Schertel +* Tristan Zajonc +* voltron +* Wieland Hoffmann +* zombat diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bottle-0.12.19/PKG-INFO new/bottle-0.12.21/PKG-INFO --- old/bottle-0.12.19/PKG-INFO 2020-11-11 19:50:24.091900000 +0100 +++ new/bottle-0.12.21/PKG-INFO 2022-05-26 20:46:29.381940000 +0200 @@ -1,23 +1,11 @@ -Metadata-Version: 1.1 +Metadata-Version: 2.1 Name: bottle -Version: 0.12.19 +Version: 0.12.21 Summary: Fast and simple WSGI-framework for small web-applications. Home-page: http://bottlepy.org/ Author: Marcel Hellkamp Author-email: [email protected] License: MIT -Description: - Bottle is a fast and simple micro-framework for small web applications. It - offers request dispatching (Routes) with url parameter support, templates, - a built-in HTTP Server and adapters for many third party WSGI/HTTP-server and - template engines - all in a single file and with no dependencies other than the - Python Standard Library. - - Homepage and documentation: http://bottlepy.org/ - - Copyright (c) 2016, Marcel Hellkamp. - License: MIT (see LICENSE for details) - Platform: any Classifier: Development Status :: 4 - Beta Classifier: Intended Audience :: Developers @@ -39,3 +27,17 @@ Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 +License-File: LICENSE +License-File: AUTHORS + + +Bottle is a fast and simple micro-framework for small web applications. It +offers request dispatching (Routes) with url parameter support, templates, +a built-in HTTP Server and adapters for many third party WSGI/HTTP-server and +template engines - all in a single file and with no dependencies other than the +Python Standard Library. + +Homepage and documentation: http://bottlepy.org/ + +Copyright (c) 2016, Marcel Hellkamp. +License: MIT (see LICENSE for details) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bottle-0.12.19/bottle.egg-info/PKG-INFO new/bottle-0.12.21/bottle.egg-info/PKG-INFO --- old/bottle-0.12.19/bottle.egg-info/PKG-INFO 2020-11-11 19:50:24.000000000 +0100 +++ new/bottle-0.12.21/bottle.egg-info/PKG-INFO 2022-05-26 20:46:28.000000000 +0200 @@ -1,23 +1,11 @@ -Metadata-Version: 1.1 +Metadata-Version: 2.1 Name: bottle -Version: 0.12.19 +Version: 0.12.21 Summary: Fast and simple WSGI-framework for small web-applications. Home-page: http://bottlepy.org/ Author: Marcel Hellkamp Author-email: [email protected] License: MIT -Description: - Bottle is a fast and simple micro-framework for small web applications. It - offers request dispatching (Routes) with url parameter support, templates, - a built-in HTTP Server and adapters for many third party WSGI/HTTP-server and - template engines - all in a single file and with no dependencies other than the - Python Standard Library. - - Homepage and documentation: http://bottlepy.org/ - - Copyright (c) 2016, Marcel Hellkamp. - License: MIT (see LICENSE for details) - Platform: any Classifier: Development Status :: 4 - Beta Classifier: Intended Audience :: Developers @@ -39,3 +27,17 @@ Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 +License-File: LICENSE +License-File: AUTHORS + + +Bottle is a fast and simple micro-framework for small web applications. It +offers request dispatching (Routes) with url parameter support, templates, +a built-in HTTP Server and adapters for many third party WSGI/HTTP-server and +template engines - all in a single file and with no dependencies other than the +Python Standard Library. + +Homepage and documentation: http://bottlepy.org/ + +Copyright (c) 2016, Marcel Hellkamp. +License: MIT (see LICENSE for details) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bottle-0.12.19/bottle.egg-info/SOURCES.txt new/bottle-0.12.21/bottle.egg-info/SOURCES.txt --- old/bottle-0.12.19/bottle.egg-info/SOURCES.txt 2020-11-11 19:50:24.000000000 +0100 +++ new/bottle-0.12.21/bottle.egg-info/SOURCES.txt 2022-05-26 20:46:29.000000000 +0200 @@ -1,3 +1,4 @@ +AUTHORS LICENSE MANIFEST.in README.rst diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bottle-0.12.19/bottle.py new/bottle-0.12.21/bottle.py --- old/bottle-0.12.19/bottle.py 2020-11-11 19:43:12.000000000 +0100 +++ new/bottle-0.12.21/bottle.py 2022-05-26 20:36:26.000000000 +0200 @@ -16,7 +16,7 @@ from __future__ import with_statement __author__ = 'Marcel Hellkamp' -__version__ = '0.12.19' +__version__ = '0.12.21' __license__ = 'MIT' # The gevent server adapter needs to patch some modules before they are imported @@ -848,17 +848,19 @@ return tob(template(ERROR_PAGE_TEMPLATE, e=res)) def _handle(self, environ): - path = environ['bottle.raw_path'] = environ['PATH_INFO'] - if py3k: - try: - environ['PATH_INFO'] = path.encode('latin1').decode('utf8') - except UnicodeError: - return HTTPError(400, 'Invalid path string. Expected UTF-8') - try: + environ['bottle.app'] = self request.bind(environ) response.bind() + + path = environ['bottle.raw_path'] = environ['PATH_INFO'] + if py3k: + try: + environ['PATH_INFO'] = path.encode('latin1').decode('utf8') + except UnicodeError: + return HTTPError(400, 'Invalid path string. Expected UTF-8') + try: self.trigger_hook('before_request') route, args = self.router.match(environ) @@ -1239,11 +1241,11 @@ self['_cgi.FieldStorage'] = data #http://bugs.python.org/issue18394#msg207958 data = data.list or [] for item in data: - if item.filename: + if item.filename is None: + post[item.name] = item.value + else: post[item.name] = FileUpload(item.file, item.name, item.filename, item.headers) - else: - post[item.name] = item.value return post @property @@ -2689,6 +2691,7 @@ ''' Callback decorator to require HTTP auth (basic). TODO: Add route(check_auth=...) parameter. ''' def decorator(func): + @functools.wraps(func) def wrapper(*a, **ka): user, password = request.auth or (None, None) if user is None or not check(user, password): @@ -2792,7 +2795,11 @@ class CherryPyServer(ServerAdapter): def run(self, handler): # pragma: no cover - from cherrypy import wsgiserver + depr("The wsgi server part of cherrypy was split into a new " + "project called 'cheroot'. Use the 'cheroot' server " + "adapter instead of cherrypy.") + from cherrypy import wsgiserver # This will fail for CherryPy >= 9 + self.options['bind_addr'] = (self.host, self.port) self.options['wsgi_app'] = handler @@ -2815,6 +2822,25 @@ server.stop() +class CherootServer(ServerAdapter): + def run(self, handler): # pragma: no cover + from cheroot import wsgi + from cheroot.ssl import builtin + self.options['bind_addr'] = (self.host, self.port) + self.options['wsgi_app'] = handler + certfile = self.options.pop('certfile', None) + keyfile = self.options.pop('keyfile', None) + chainfile = self.options.pop('chainfile', None) + server = wsgi.Server(**self.options) + if certfile and keyfile: + server.ssl_adapter = builtin.BuiltinSSLAdapter( + certfile, keyfile, chainfile) + try: + server.start() + finally: + server.stop() + + class WaitressServer(ServerAdapter): def run(self, handler): from waitress import serve @@ -2982,7 +3008,9 @@ class AutoServer(ServerAdapter): """ Untested. """ - adapters = [WaitressServer, PasteServer, TwistedServer, CherryPyServer, WSGIRefServer] + adapters = [WaitressServer, PasteServer, TwistedServer, CherryPyServer, + CherootServer, WSGIRefServer] + def run(self, handler): for sa in self.adapters: try: @@ -2996,6 +3024,7 @@ 'wsgiref': WSGIRefServer, 'waitress': WaitressServer, 'cherrypy': CherryPyServer, + 'cheroot': CherootServer, 'paste': PasteServer, 'fapws3': FapwsServer, 'tornado': TornadoServer,
