- Update to version 0.13.1

* Added DeprecationWarning warning for Python 2
  * fix: Bottle.__setattr__ breaks data descriptors
- from version 0.13.0
  * This release contains breaking changers, please read the notes below
  * Dropped support for Python versions that reached their end-of-life.
  * The documented API of the :class:`ConfigDict` class is now considered
    stable and ready to use.
  * Plugins with the old API (``api=1`` or no api attribute) will no longer work.
  * Parameter order of :meth:`Bottle.mount` changed in 0.10.
    The old order will now result in an error instead of a warning.
  * The :class:`ConfigDict` class was introduced in 0.11 and changed during 0.12.
    These changes are now final.
  * Attribute access and assignment was removed due to high overhead and limited usability.
  * Namespaced sub-instance creation was removed. ``config["a"]["b"]``
    has a high overhead and little benefit over ``config["a.b"]``.
  * :class:`ConfigDict` instances are no longer callable.
    This was a shortcut for :meth:`ConfigDict.update`.
  * :class:`ConfigDict` constructor no longer accepts any parameters.
    Use the `load_*` methods instead.
  * Bottle 0.12 changed some aspects of the Simple Template Engine.
    These changes are now final and the old syntax will now longer work.
  * The magic ``{{rebase()}}`` call was replaced by a ``base`` variable. Example: ``{{base}}``
  * In STPL Templates, the ``rebase`` and ``include`` keywords were replaced with functions in 0.12.
  * PEP-263 encoding strings are no longer recognized. Templates are always utf-8.
  * The 'geventSocketIO' server adapter was removed without notice. It did not work anyway.
  * Signed cookies now use a stronger HMAC algorithm by default. This will result
    in old cookies to appear invalid after the update. Pass an explicit ``digestmod=hashlib.md5``
    to :meth:`Request.get_cookie <BaseRequest.get_cookie>` and :meth:`Response.set_cookie
    <BaseResponse.set_cookie>` to get the old behavior.

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-bottle?expand=0&rev=55
This commit is contained in:
Dirk Mueller 2024-09-09 08:31:17 +00:00 committed by Git OBS Bridge
commit 44deb1e4c8
8 changed files with 451 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

BIN
bottle-0.12.25.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

3
bottle-0.13.1.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a48852dc7a051353d3e4de3dd5590cd25de370bcfd94a72237561e314ceb0c88
size 836422

BIN
bottle-docs.pdf (Stored with Git LFS) Normal file

Binary file not shown.

292
python-bottle.changes Normal file
View File

@ -0,0 +1,292 @@
-------------------------------------------------------------------
Mon Sep 9 06:21:36 UTC 2024 - John Paul Adrian Glaubitz <adrian.glaubitz@suse.com>
- Update to version 0.13.1
* Added DeprecationWarning warning for Python 2
* fix: Bottle.__setattr__ breaks data descriptors
- from version 0.13.0
* This release contains breaking changers, please read the notes below
* Dropped support for Python versions that reached their end-of-life.
* The documented API of the :class:`ConfigDict` class is now considered
stable and ready to use.
* Plugins with the old API (``api=1`` or no api attribute) will no longer work.
* Parameter order of :meth:`Bottle.mount` changed in 0.10.
The old order will now result in an error instead of a warning.
* The :class:`ConfigDict` class was introduced in 0.11 and changed during 0.12.
These changes are now final.
* Attribute access and assignment was removed due to high overhead and limited usability.
* Namespaced sub-instance creation was removed. ``config["a"]["b"]``
has a high overhead and little benefit over ``config["a.b"]``.
* :class:`ConfigDict` instances are no longer callable.
This was a shortcut for :meth:`ConfigDict.update`.
* :class:`ConfigDict` constructor no longer accepts any parameters.
Use the `load_*` methods instead.
* Bottle 0.12 changed some aspects of the Simple Template Engine.
These changes are now final and the old syntax will now longer work.
* The magic ``{{rebase()}}`` call was replaced by a ``base`` variable. Example: ``{{base}}``
* In STPL Templates, the ``rebase`` and ``include`` keywords were replaced with functions in 0.12.
* PEP-263 encoding strings are no longer recognized. Templates are always utf-8.
* The 'geventSocketIO' server adapter was removed without notice. It did not work anyway.
* Signed cookies now use a stronger HMAC algorithm by default. This will result
in old cookies to appear invalid after the update. Pass an explicit ``digestmod=hashlib.md5``
to :meth:`Request.get_cookie <BaseRequest.get_cookie>` and :meth:`Response.set_cookie
<BaseResponse.set_cookie>` to get the old behavior.
* Bottle now ships with its own multipart form data parser (borrowed from `multipart
<https://pypi.org/project/multipart/>`_) and no longer relies on ``cgi.FieldStorage``,
which was removed in Python 3.13. This may change the way broken (non-standard) form
submissions are parsed. The new parser is more strict and correct than ohe old one.
* :class:`Bottle` instances are now context managers. If used in a with-statement,
the default application changes to the specific instance and the shortcuts for
many instance methods can be used.
* Added support for ``PATCH`` requests and the :meth:`Bottle.patch` decorator.
* Added `aiohttp <http://aiohttp.readthedocs.io/en/stable/>`_ and
`uvloop <https://github.com/MagicStack/uvloop>`_ server adapters.
* Added command-line arguments for config from json or ini files.
* :meth:`Bottle.mount` now recognizes instances of :class:`Bottle` and
mounts them with significantly less overhead than other WSGI applications.
* The :attr:`Request.json <BaseRequest.json>` property
now accepts ``application/json-rpc`` requests.
* :func:`static_file` gained support for ``ETag`` headers. It will generate
ETags and recognizes ``If-None-Match`` headers.
* :func:`static_file` will now guess the mime type of ``*.gz`` and other compressed files
correctly (e.g. ``application/gzip``) and NOT set the ``Content-Encoding`` header.
* Jinja2 templates will produce better error messages than before.
- Drop update-module-loader.patch, merged upstream
-------------------------------------------------------------------
Wed Oct 18 05:46:24 UTC 2023 - Steve Kowalik <steven.kowalik@suse.com>
- Add patch update-module-loader.patch:
* Add find_spec to the magic bottle.ext loader, Python 3.12 no longer
calls find_module.
- Switch to pyproject and autosetup macros.
-------------------------------------------------------------------
Fri May 19 09:25:55 UTC 2023 - Jiri Srain <jsrain@suse.com>
- refresh bottle-docs.pdf from the upstream URL
-------------------------------------------------------------------
Sun Apr 23 23:06:11 UTC 2023 - Matej Cepl <mcepl@suse.com>
- Switch documentation to be within the main package.
-------------------------------------------------------------------
Fri Apr 21 12:22:51 UTC 2023 - Dirk Müller <dmueller@suse.com>
- add sle15_python_module_pythons (jsc#PED-68)
-------------------------------------------------------------------
Sun Mar 5 17:56:40 UTC 2023 - Benoît Monin <benoit.monin@gmx.fr>
- update to version 0.12.25: bugfix release
* Reduce deprectation warnings during tests
* Adjusts the test_server 'fetch' method to disable proxying
within test cases where it is used
* fix #1194: Regular expression catastrophic backtracking in
bottle.Router.rule_syntax
* fix #1155: Catastrophic backtracking issue in template parser
* Fix release task in Makefile
* fix: Raising HTTPResponse should not bypass JsonPlugin
- drop python_module macro: provided by python-rpm-macros
- run fdupes to deduplicate identical files
-------------------------------------------------------------------
Tue Feb 21 18:22:20 UTC 2023 - Benoît Monin <benoit.monin@gmx.fr>
- update to version 0.12.24: bugfix release
* Fix fapws3 link
* fix: Route.get_config typo
* fix #1111: Unicode multipart/form-data values in python3
-------------------------------------------------------------------
Wed Aug 3 20:24:55 UTC 2022 - Benoît Monin <benoit.monin@gmx.fr>
- update to version 0.12.23: bugfix release
* fix: Include keyword-only-args in getarcspec() polyfill
- additional changes from version 0.12.22:
* fix: Jinja2 and mako test path issues
* getargspec is gone in python 3.11: so use getfullargspec on all
3.x versions instead
* fix: view decorator does not forward default values if route
result is None
* fix: Make tests runnable with both unittest and pytest
* fix: Cookie test falsely reports a failure for some python
versions
- drop fix_cookie_test.patch: fixed upstream
- run the tests with unittest
-------------------------------------------------------------------
Thu May 26 20:41:56 UTC 2022 - Benoît Monin <benoit.monin@gmx.fr>
- update to version 0.12.21: bugfix release
* Fix: Bad deprecation warning in cherrypy server adapter
- update to version 0.12.20 (bsc#1200286, CVE-2022-31799):
* fix: Multipart file uploads with empty filename not detected
as binary
* obsoletes 0002_Gracefully_handle_errors_during_early_request_binding.patch in older dists
* fix auth_basic decorator (#586)
* Add ServerAdapter for CherryPy >= 9
* Gracefully handle errors during early request binding
-------------------------------------------------------------------
Fri Nov 13 17:49:59 UTC 2020 - Benoît Monin <benoit.monin@gmx.fr>
- update to version 0.12.19 (bsc#1182181, CVE-2020-28473):
* obsoletes 0001_Do_not_split_query_strings_on_semicolon_anymore.patch in older dists
* Do not split query strings on `;` anymore.
* Fix the Allow: header value in 405 "Method not allowed."
response.
- add fix_cookie_test.patch: imported from upstream master branch
- update the documentation pdf
- remove the separate LICENSE file: now packaged in release
- drop removing the executable bit from egg-info files: fixed
- run the tests during build
-------------------------------------------------------------------
Tue Apr 14 11:52:22 UTC 2020 - Matej Cepl <mcepl@suse.com>
- Don't use %python3_only command, but properly use alternatives.
-------------------------------------------------------------------
Wed Apr 8 12:04:22 UTC 2020 - Tomáš Chvátal <tchvatal@suse.com>
- Drop require on doc package to pull python2 package
-------------------------------------------------------------------
Sun Dec 8 16:56:51 UTC 2019 - Benoît Monin <benoit.monin@gmx.fr>
- update to version 0.12.18:
* Bugfix release to improve Python 3.8+ support
- add the missing LICENSE file
- update the documentation pdf
- remove the executable bit from egg-info files
-------------------------------------------------------------------
Sun Jul 28 16:13:23 UTC 2019 - Arun Persaud <arun@gmx.de>
- update to version 0.12.17:
* fix #1148: redirect() and non-ascii characters
-------------------------------------------------------------------
Sun Mar 17 14:57:13 UTC 2019 - Jan Engelhardt <jengelh@inai.de>
- Ensure neutrality of description and fixup some
spelling/grammar issues.
-------------------------------------------------------------------
Thu Feb 28 15:20:17 UTC 2019 - Ondřej Súkup <mimi.vx@gmail.com>
- update to 0.12.16
* DeprecationWarning: Flags not at the start of the expression
* Some modules set __file__ as None
* gevent-1.3.0 removes 'fast' wsgi implementation.
-------------------------------------------------------------------
Wed Mar 29 15:24:50 UTC 2017 - toddrme2178@gmail.com
- update pdf doc file.
-------------------------------------------------------------------
Thu Mar 23 18:09:54 UTC 2017 - jmatejek@suse.com
- update for singlespec
- use automation for docs
- update to 0.12.13
* bugfix release
* fixed TypeError on unicode WSGI headers
* fixed get_header on FileUpload
* fixed crlf header injection (CVE-2016-9964)
* switch to setuptools for build
* allow multiline dict/list/set comprehensions in templates
* allow unicode keys in ConfigDict
-------------------------------------------------------------------
Sun Apr 26 18:21:13 UTC 2015 - benoit.monin@gmx.fr
- update to version 0.12.8: no upstream changelog
- update bottle-docs.pdf
- point the source URL of the pdf to the project homepage
- create of separate subpackage for the pdf documentation
-------------------------------------------------------------------
Tue May 20 12:20:37 UTC 2014 - toddrme2178@gmail.com
- Update to 0.12.7
* No upstream changelog
- Update to 0.12
* New SimpleTemplate parser implementation
* Support for multi-line code blocks (<% ... %>).
* The keywords include and rebase are functions now
and can accept variable template names.
* The new BaseRequest.route() property returns the Route
that originally matched the request.
* Removed the BaseRequest.MAX_PARAMS limit.
The hash collision bug in CPythons dict() implementation was
fixed over a year ago. If you are still using Python 2.5 in
production, consider upgrading or at least make sure that you
get security fixed from your distributor.
* New ConfigDict API (see Configuration (DRAFT))
-------------------------------------------------------------------
Tue Sep 17 19:50:09 UTC 2013 - os-dev@jacraig.com
- Update to 0.11.6:
* Fix content-type header in mounted apps
- Changes from 0.11.5:
* Update HTTPResponse call when mounting apps
* BUg fix: Some cookies are lost when using mount()
-------------------------------------------------------------------
Thu Nov 22 13:35:28 UTC 2012 - saschpe@suse.de
- Update to version 0.11.4:
+ Upstream provides no changelog
- Changes from version 0.11:
+ Native support for Python 2.x and 3.x syntax. No need to run 2to3 anymore.
+ Support for partial downloads (Range header) in static_file().
+ The new ResourceManager interface helps locating files bundled with an
application.
+ Added a server adapter for waitress.
+ New Bottle.merge() method to install all routes from one application
into another.
+ New BaseRequest.app property to get the application object that
handles a request.
+ Added FormsDict.decode() to get an all-unicode version (needed by WTForms).
+ MultiDict and subclasses are now pickle-able.
+ Response.status is a read-write property that can be assigned either a
numeric status code or a status string with a reason phrase (200 OK). The
return value is now a string to better match existing APIs (WebOb,
werkzeug). To be absolutely clear, you can use the read-only properties
BaseResponse.status_code and BaseResponse.status_line.
+ SimpleTALTemplate is now deprecating. There seems to be no demand.
-------------------------------------------------------------------
Wed Aug 15 03:24:14 UTC 2012 - highwaystar.ru@gmail.com
- updated to 0.10.11
- python3 package added
- spec improved (files section)
-------------------------------------------------------------------
Mon Mar 12 20:46:22 UTC 2012 - saschpe@gmx.de
- update to version 0.10.9
-------------------------------------------------------------------
Fri Sep 23 13:53:20 UTC 2011 - saschpe@suse.de
- Update to version 0.9.6
- Removed file LICENSE, upstream now has LICENSE.txt
-------------------------------------------------------------------
Fri Nov 19 10:38:29 UTC 2010 - cfarrell@novell.com
- Added LICENSE and bottle-docs.pdf.
- Removed dead symlink README
-------------------------------------------------------------------
Fri Nov 19 09:21:46 UTC 2010 - cfarrell@novell.com
- Initial build

94
python-bottle.spec Normal file
View File

@ -0,0 +1,94 @@
#
# spec file for package python-bottle
#
# 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
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%{?sle15_python_module_pythons}
Name: python-bottle
Version: 0.13.1
Release: 0
Summary: WSGI framework for small web applications
License: MIT
URL: https://bottlepy.org/
Source: https://files.pythonhosted.org/packages/source/b/bottle/bottle-%{version}.tar.gz
Source1: http://bottlepy.org/docs/0.12/bottle-docs.pdf
BuildRequires: %{python_module pip}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module wheel}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires(post): update-alternatives
Requires(postun): update-alternatives
BuildArch: noarch
%python_subpackages
%description
Bottle is a 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
servers and template engines. This is all in a single file and with
no dependencies other than the Python Standard Library.
%if 0%{?suse_version} > 1500
%package -n %{name}-doc
Summary: Documentation for %{name}
Provides: %{python_module bottle-doc = %{version}}
%description -n %{name}-doc
Bottle is a 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
servers and template engines. This is all in a single file and with
no dependencies other than the Python Standard Library.
This subpackage contains the PDF documentation for %{name}.
%endif
%prep
%autosetup -p1 -n bottle-%{version}
cp %{SOURCE1} .
%build
%pyproject_wheel
%install
%pyproject_install
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%python_clone -a %{buildroot}%{_bindir}/bottle.py
%check
%pyunittest -v
%post
%python_install_alternative bottle.py
%postun
%python_uninstall_alternative bottle.py
%files %{python_files}
%license LICENSE
%doc README.rst
%python_alternative %{_bindir}/bottle.py
%{python_sitelib}/bottle.py*
%pycache_only %{python_sitelib}/__pycache__
%{python_sitelib}/bottle-%{version}.dist-info
%if 0%{?suse_version} > 1500
%files -n %{name}-doc
%endif
%doc bottle-docs.pdf
%changelog

View File

@ -0,0 +1,32 @@
From ca6762c559c5e71e0dff71dc97eb4c6b3ed9bbcd Mon Sep 17 00:00:00 2001
From: Marcel Hellkamp <marc@gsites.de>
Date: Sun, 12 Jun 2022 15:15:35 +0200
Subject: [PATCH] Fix #1378: Module loader should move from find_mdoule to
find_spec.
---
bottle.py | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
Index: bottle-0.12.25/bottle.py
===================================================================
--- bottle-0.12.25.orig/bottle.py
+++ bottle-0.12.25/bottle.py
@@ -1803,10 +1803,15 @@ class _ImportRedirect(object):
'__all__': [], '__loader__': self})
sys.meta_path.append(self)
+ def find_spec(self, fullname, path, target=None):
+ if '.' not in fullname: return
+ if fullname.rsplit('.', 1)[0] != self.name: return
+ from importlib.util import spec_from_loader
+ return spec_from_loader(fullname, self)
+
def find_module(self, fullname, path=None):
if '.' not in fullname: return
- packname = fullname.rsplit('.', 1)[0]
- if packname != self.name: return
+ if fullname.rsplit('.', 1)[0] != self.name: return
return self
def load_module(self, fullname):