Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-MarkupSafe for
openSUSE:Factory checked in at 2022-03-29 18:14:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-MarkupSafe (Old)
and /work/SRC/openSUSE:Factory/.python-MarkupSafe.new.1900 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-MarkupSafe"
Tue Mar 29 18:14:15 2022 rev:23 rq:965250 version:2.1.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-MarkupSafe/python-MarkupSafe.changes
2021-07-10 22:53:32.704201903 +0200
+++
/work/SRC/openSUSE:Factory/.python-MarkupSafe.new.1900/python-MarkupSafe.changes
2022-03-29 18:14:29.443076915 +0200
@@ -1,0 +2,18 @@
+Fri Mar 18 22:31:50 UTC 2022 - Arun Persaud <[email protected]>
+
+- specfile:
+ * update copyright year
+ * require python >= 3.7
+
+- update to version 2.1.1:
+ * Avoid ambiguous regex matches in "striptags". :pr:`293`
+
+- changes from version 2.1.0:
+ * Drop support for Python 3.6. :pr:`262`
+ * Remove "soft_unicode", which was previously deprecated. Use
+ "soft_str" instead. :pr:`261`
+ * Raise error on missing single placeholder during string
+ interpolation. :issue:`225`
+ * Disable speedups module for GraalPython. :issue:`277`
+
+-------------------------------------------------------------------
Old:
----
MarkupSafe-2.0.1.tar.gz
New:
----
MarkupSafe-2.1.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-MarkupSafe.spec ++++++
--- /var/tmp/diff_new_pack.KNPkYm/_old 2022-03-29 18:14:29.939077371 +0200
+++ /var/tmp/diff_new_pack.KNPkYm/_new 2022-03-29 18:14:29.943077375 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-MarkupSafe
#
-# Copyright (c) 2021 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
@@ -16,30 +16,30 @@
#
-%bcond_without test
%define oldpython python
%define skip_python2 1
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
+%bcond_without test
Name: python-MarkupSafe
-Version: 2.0.1
+Version: 2.1.1
Release: 0
-URL: https://github.com/pallets/markupsafe
Summary: Implements a XML/HTML/XHTML Markup safe string for Python
License: BSD-3-Clause
Group: Development/Languages/Python
+URL: https://github.com/pallets/markupsafe
Source:
https://files.pythonhosted.org/packages/source/M/MarkupSafe/MarkupSafe-%{version}.tar.gz
BuildRequires: %{python_module devel}
-%if %{with test}
-BuildRequires: %{python_module pytest}
-%endif
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
+Requires: python-base >= 3.7
+%if %{with test}
+BuildRequires: %{python_module pytest}
+%endif
%ifpython2
Provides: %{oldpython}-markupsafe = %{version}
Obsoletes: %{oldpython}-markupsafe < %{version}
%endif
-
%python_subpackages
%description
@@ -60,7 +60,7 @@
%if %{with test}
%check
-%python_expand PYTHONPATH=%{buildroot}%{$python_sitearch} $python -m pytest
+%pytest_arch
%endif
%files %{python_files}
++++++ MarkupSafe-2.0.1.tar.gz -> MarkupSafe-2.1.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/MarkupSafe-2.0.1/CHANGES.rst
new/MarkupSafe-2.1.1/CHANGES.rst
--- old/MarkupSafe-2.0.1/CHANGES.rst 2021-05-18 19:03:18.000000000 +0200
+++ new/MarkupSafe-2.1.1/CHANGES.rst 2022-03-14 17:53:29.000000000 +0100
@@ -1,3 +1,24 @@
+Version 2.1.1
+-------------
+
+Released 2022-03-14
+
+- Avoid ambiguous regex matches in ``striptags``. :pr:`293`
+
+
+Version 2.1.0
+-------------
+
+Released 2022-02-17
+
+- Drop support for Python 3.6. :pr:`262`
+- Remove ``soft_unicode``, which was previously deprecated. Use
+ ``soft_str`` instead. :pr:`261`
+- Raise error on missing single placeholder during string
+ interpolation. :issue:`225`
+- Disable speedups module for GraalPython. :issue:`277`
+
+
Version 2.0.1
-------------
@@ -37,7 +58,7 @@
- Build wheels for Linux, Mac, and Windows, allowing systems without
a compiler to take advantage of the C extension speedups. :pr:`104`
- Use newer CPython API on Python 3, resulting in a 1.5x speedup.
- :pr`64`
+ :pr:`64`
- ``escape`` wraps ``__html__`` result in ``Markup``, consistent with
documented behavior. :pr:`69`
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/MarkupSafe-2.0.1/PKG-INFO
new/MarkupSafe-2.1.1/PKG-INFO
--- old/MarkupSafe-2.0.1/PKG-INFO 2021-05-18 19:04:31.574849400 +0200
+++ new/MarkupSafe-2.1.1/PKG-INFO 2022-03-15 14:06:38.150444500 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: MarkupSafe
-Version: 2.0.1
+Version: 2.1.1
Summary: Safely add untrusted strings to HTML/XML markup.
Home-page: https://palletsprojects.com/p/markupsafe/
Author: Armin Ronacher
@@ -15,76 +15,6 @@
Project-URL: Issue Tracker, https://github.com/pallets/markupsafe/issues/
Project-URL: Twitter, https://twitter.com/PalletsTeam
Project-URL: Chat, https://discord.gg/pallets
-Description: MarkupSafe
- ==========
-
- MarkupSafe implements a text object that escapes characters so it is
- safe to use in HTML and XML. Characters that have special meanings are
- replaced so that they display as the actual characters. This mitigates
- injection attacks, meaning untrusted user input can safely be displayed
- on a page.
-
-
- Installing
- ----------
-
- Install and update using `pip`_:
-
- .. code-block:: text
-
- pip install -U MarkupSafe
-
- .. _pip: https://pip.pypa.io/en/stable/quickstart/
-
-
- Examples
- --------
-
- .. code-block:: pycon
-
- >>> from markupsafe import Markup, escape
-
- >>> # escape replaces special characters and wraps in Markup
- >>> escape("<script>alert(document.cookie);</script>")
- Markup('<script>alert(document.cookie);</script>')
-
- >>> # wrap in Markup to mark text "safe" and prevent escaping
- >>> Markup("<strong>Hello</strong>")
- Markup('<strong>hello</strong>')
-
- >>> escape(Markup("<strong>Hello</strong>"))
- Markup('<strong>hello</strong>')
-
- >>> # Markup is a str subclass
- >>> # methods and operators escape their arguments
- >>> template = Markup("Hello <em>{name}</em>")
- >>> template.format(name='"World"')
- Markup('Hello <em>"World"</em>')
-
-
- Donate
- ------
-
- The Pallets organization develops and supports MarkupSafe and other
- popular packages. In order to grow the community of contributors and
- users, and allow the maintainers to devote more time to the projects,
- `please donate today`_.
-
- .. _please donate today: https://palletsprojects.com/donate
-
-
- Links
- -----
-
- - Documentation: https://markupsafe.palletsprojects.com/
- - Changes: https://markupsafe.palletsprojects.com/changes/
- - PyPI Releases: https://pypi.org/project/MarkupSafe/
- - Source Code: https://github.com/pallets/markupsafe/
- - Issue Tracker: https://github.com/pallets/markupsafe/issues/
- - Website: https://palletsprojects.com/p/markupsafe/
- - Twitter: https://twitter.com/PalletsTeam
- - Chat: https://discord.gg/pallets
-
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Web Environment
@@ -94,5 +24,78 @@
Classifier: Programming Language :: Python
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Text Processing :: Markup :: HTML
-Requires-Python: >=3.6
+Requires-Python: >=3.7
Description-Content-Type: text/x-rst
+License-File: LICENSE.rst
+
+MarkupSafe
+==========
+
+MarkupSafe implements a text object that escapes characters so it is
+safe to use in HTML and XML. Characters that have special meanings are
+replaced so that they display as the actual characters. This mitigates
+injection attacks, meaning untrusted user input can safely be displayed
+on a page.
+
+
+Installing
+----------
+
+Install and update using `pip`_:
+
+.. code-block:: text
+
+ pip install -U MarkupSafe
+
+.. _pip: https://pip.pypa.io/en/stable/getting-started/
+
+
+Examples
+--------
+
+.. code-block:: pycon
+
+ >>> from markupsafe import Markup, escape
+
+ >>> # escape replaces special characters and wraps in Markup
+ >>> escape("<script>alert(document.cookie);</script>")
+ Markup('<script>alert(document.cookie);</script>')
+
+ >>> # wrap in Markup to mark text "safe" and prevent escaping
+ >>> Markup("<strong>Hello</strong>")
+ Markup('<strong>hello</strong>')
+
+ >>> escape(Markup("<strong>Hello</strong>"))
+ Markup('<strong>hello</strong>')
+
+ >>> # Markup is a str subclass
+ >>> # methods and operators escape their arguments
+ >>> template = Markup("Hello <em>{name}</em>")
+ >>> template.format(name='"World"')
+ Markup('Hello <em>"World"</em>')
+
+
+Donate
+------
+
+The Pallets organization develops and supports MarkupSafe and other
+popular packages. In order to grow the community of contributors and
+users, and allow the maintainers to devote more time to the projects,
+`please donate today`_.
+
+.. _please donate today: https://palletsprojects.com/donate
+
+
+Links
+-----
+
+- Documentation: https://markupsafe.palletsprojects.com/
+- Changes: https://markupsafe.palletsprojects.com/changes/
+- PyPI Releases: https://pypi.org/project/MarkupSafe/
+- Source Code: https://github.com/pallets/markupsafe/
+- Issue Tracker: https://github.com/pallets/markupsafe/issues/
+- Website: https://palletsprojects.com/p/markupsafe/
+- Twitter: https://twitter.com/PalletsTeam
+- Chat: https://discord.gg/pallets
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/MarkupSafe-2.0.1/README.rst
new/MarkupSafe-2.1.1/README.rst
--- old/MarkupSafe-2.0.1/README.rst 2021-02-24 21:55:18.000000000 +0100
+++ new/MarkupSafe-2.1.1/README.rst 2021-10-22 19:43:18.000000000 +0200
@@ -17,7 +17,7 @@
pip install -U MarkupSafe
-.. _pip: https://pip.pypa.io/en/stable/quickstart/
+.. _pip: https://pip.pypa.io/en/stable/getting-started/
Examples
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/MarkupSafe-2.0.1/docs/conf.py
new/MarkupSafe-2.1.1/docs/conf.py
--- old/MarkupSafe-2.0.1/docs/conf.py 2021-04-16 17:03:02.000000000 +0200
+++ new/MarkupSafe-2.1.1/docs/conf.py 2021-10-22 19:43:18.000000000 +0200
@@ -38,10 +38,10 @@
]
}
html_sidebars = {
- "index": ["project.html", "localtoc.html", "searchbox.html"],
- "**": ["localtoc.html", "relations.html", "searchbox.html"],
+ "index": ["project.html", "localtoc.html", "searchbox.html",
"ethicalads.html"],
+ "**": ["localtoc.html", "relations.html", "searchbox.html",
"ethicalads.html"],
}
-singlehtml_sidebars = {"index": ["project.html", "localtoc.html"]}
+singlehtml_sidebars = {"index": ["project.html", "localtoc.html",
"ethicalads.html"]}
html_title = f"MarkupSafe Documentation ({version})"
html_show_sourcelink = False
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/MarkupSafe-2.0.1/requirements/dev.txt
new/MarkupSafe-2.1.1/requirements/dev.txt
--- old/MarkupSafe-2.0.1/requirements/dev.txt 2021-05-12 00:33:53.000000000
+0200
+++ new/MarkupSafe-2.1.1/requirements/dev.txt 2022-02-16 20:02:27.000000000
+0100
@@ -1,131 +1,59 @@
+# SHA1:54b5b77ec8c7a0064ffa93b2fd16cb0130ba177c
#
-# This file is autogenerated by pip-compile
+# This file is autogenerated by pip-compile-multi
# To update, run:
#
-# pip-compile requirements/dev.in
+# pip-compile-multi
#
-alabaster==0.7.12
- # via sphinx
-appdirs==1.4.4
- # via virtualenv
-attrs==21.2.0
- # via pytest
-babel==2.9.1
- # via sphinx
-certifi==2020.12.5
- # via requests
-cfgv==3.2.0
+-r docs.txt
+-r tests.txt
+-r typing.txt
+cfgv==3.3.1
# via pre-commit
-chardet==4.0.0
- # via requests
-click==8.0.0
- # via pip-tools
-distlib==0.3.1
+click==8.0.3
+ # via
+ # pip-compile-multi
+ # pip-tools
+distlib==0.3.4
# via virtualenv
-docutils==0.17.1
- # via sphinx
-filelock==3.0.12
+filelock==3.5.1
# via
# tox
# virtualenv
-identify==2.2.4
+identify==2.4.10
# via pre-commit
-idna==2.10
- # via requests
-imagesize==1.2.0
- # via sphinx
-iniconfig==1.1.1
- # via pytest
-jinja2==3.0.0
- # via sphinx
-markupsafe==2.0.0
- # via jinja2
-mypy-extensions==0.4.3
- # via mypy
-mypy==0.812
- # via -r requirements/typing.in
nodeenv==1.6.0
# via pre-commit
-packaging==20.9
- # via
- # pallets-sphinx-themes
- # pytest
- # sphinx
- # tox
-pallets-sphinx-themes==2.0.0
- # via -r requirements/docs.in
-pep517==0.10.0
+pep517==0.12.0
# via pip-tools
-pip-tools==6.1.0
+pip-compile-multi==2.4.3
# via -r requirements/dev.in
-pluggy==0.13.1
- # via
- # pytest
- # tox
-pre-commit==2.12.1
+pip-tools==6.5.1
+ # via pip-compile-multi
+platformdirs==2.5.0
+ # via virtualenv
+pre-commit==2.17.0
# via -r requirements/dev.in
-py==1.10.0
- # via
- # pytest
- # tox
-pygments==2.9.0
- # via sphinx
-pyparsing==2.4.7
- # via packaging
-pytest==6.2.4
- # via -r requirements/tests.in
-pytz==2021.1
- # via babel
-pyyaml==5.4.1
+pyyaml==6.0
# via pre-commit
-requests==2.25.1
- # via sphinx
six==1.16.0
# via
# tox
# virtualenv
-snowballstemmer==2.1.0
- # via sphinx
-sphinx-issues==1.2.0
- # via -r requirements/docs.in
-git+https://github.com/sphinx-doc/sphinx.git@96dbe5e3
- # via
- # -r requirements/docs.in
- # pallets-sphinx-themes
- # sphinx-issues
- # sphinxcontrib-log-cabinet
-sphinxcontrib-applehelp==1.0.2
- # via sphinx
-sphinxcontrib-devhelp==1.0.2
- # via sphinx
-sphinxcontrib-htmlhelp==1.0.3
- # via sphinx
-sphinxcontrib-jsmath==1.0.1
- # via sphinx
-sphinxcontrib-log-cabinet==1.0.1
- # via -r requirements/docs.in
-sphinxcontrib-qthelp==1.0.3
- # via sphinx
-sphinxcontrib-serializinghtml==1.1.4
- # via sphinx
toml==0.10.2
# via
- # pep517
# pre-commit
- # pytest
# tox
-tox==3.23.1
+toposort==1.7
+ # via pip-compile-multi
+tox==3.24.5
# via -r requirements/dev.in
-typed-ast==1.4.3
- # via mypy
-typing-extensions==3.10.0.0
- # via mypy
-urllib3==1.26.4
- # via requests
-virtualenv==20.4.6
+virtualenv==20.13.1
# via
# pre-commit
# tox
+wheel==0.37.1
+ # via pip-tools
# The following packages are considered to be unsafe in a requirements file:
# pip
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/MarkupSafe-2.0.1/requirements/docs.txt
new/MarkupSafe-2.1.1/requirements/docs.txt
--- old/MarkupSafe-2.0.1/requirements/docs.txt 2021-05-12 00:33:53.000000000
+0200
+++ new/MarkupSafe-2.1.1/requirements/docs.txt 2022-02-16 20:02:22.000000000
+0100
@@ -1,56 +1,57 @@
+# SHA1:45c590f97fe95b8bdc755eef796e91adf5fbe4ea
#
-# This file is autogenerated by pip-compile
+# This file is autogenerated by pip-compile-multi
# To update, run:
#
-# pip-compile requirements/docs.in
+# pip-compile-multi
#
alabaster==0.7.12
# via sphinx
babel==2.9.1
# via sphinx
-certifi==2020.12.5
+certifi==2021.10.8
# via requests
-chardet==4.0.0
+charset-normalizer==2.0.12
# via requests
docutils==0.17.1
# via sphinx
-idna==2.10
+idna==3.3
# via requests
-imagesize==1.2.0
+imagesize==1.3.0
# via sphinx
-jinja2==3.0.0
+jinja2==3.0.3
# via sphinx
-markupsafe==2.0.0
+markupsafe==2.0.1
# via jinja2
-packaging==20.9
+packaging==21.3
# via
# pallets-sphinx-themes
# sphinx
-pallets-sphinx-themes==2.0.0
+pallets-sphinx-themes==2.0.2
# via -r requirements/docs.in
-pygments==2.9.0
+pygments==2.11.2
# via sphinx
-pyparsing==2.4.7
+pyparsing==3.0.7
# via packaging
-pytz==2021.1
+pytz==2021.3
# via babel
-requests==2.25.1
+requests==2.27.1
# via sphinx
-snowballstemmer==2.1.0
+snowballstemmer==2.2.0
# via sphinx
-sphinx-issues==1.2.0
- # via -r requirements/docs.in
-git+https://github.com/sphinx-doc/sphinx.git@96dbe5e3
+sphinx==4.4.0
# via
# -r requirements/docs.in
# pallets-sphinx-themes
# sphinx-issues
# sphinxcontrib-log-cabinet
+sphinx-issues==3.0.1
+ # via -r requirements/docs.in
sphinxcontrib-applehelp==1.0.2
# via sphinx
sphinxcontrib-devhelp==1.0.2
# via sphinx
-sphinxcontrib-htmlhelp==1.0.3
+sphinxcontrib-htmlhelp==2.0.0
# via sphinx
sphinxcontrib-jsmath==1.0.1
# via sphinx
@@ -58,10 +59,7 @@
# via -r requirements/docs.in
sphinxcontrib-qthelp==1.0.3
# via sphinx
-sphinxcontrib-serializinghtml==1.1.4
+sphinxcontrib-serializinghtml==1.1.5
# via sphinx
-urllib3==1.26.4
+urllib3==1.26.8
# via requests
-
-# The following packages are considered to be unsafe in a requirements file:
-# setuptools
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/MarkupSafe-2.0.1/requirements/tests.txt
new/MarkupSafe-2.1.1/requirements/tests.txt
--- old/MarkupSafe-2.0.1/requirements/tests.txt 2021-05-11 21:32:42.000000000
+0200
+++ new/MarkupSafe-2.1.1/requirements/tests.txt 2022-02-16 20:02:23.000000000
+0100
@@ -1,22 +1,23 @@
+# SHA1:0eaa389e1fdb3a1917c0f987514bd561be5718ee
#
-# This file is autogenerated by pip-compile
+# This file is autogenerated by pip-compile-multi
# To update, run:
#
-# pip-compile requirements/tests.in
+# pip-compile-multi
#
-attrs==21.2.0
+attrs==21.4.0
# via pytest
iniconfig==1.1.1
# via pytest
-packaging==20.9
+packaging==21.3
# via pytest
-pluggy==0.13.1
+pluggy==1.0.0
# via pytest
-py==1.10.0
+py==1.11.0
# via pytest
-pyparsing==2.4.7
+pyparsing==3.0.7
# via packaging
-pytest==6.2.4
+pytest==7.0.1
# via -r requirements/tests.in
-toml==0.10.2
+tomli==2.0.1
# via pytest
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/MarkupSafe-2.0.1/requirements/typing.txt
new/MarkupSafe-2.1.1/requirements/typing.txt
--- old/MarkupSafe-2.0.1/requirements/typing.txt 2021-05-11
21:32:42.000000000 +0200
+++ new/MarkupSafe-2.1.1/requirements/typing.txt 2022-02-16
20:02:24.000000000 +0100
@@ -1,14 +1,15 @@
+# SHA1:7983aaa01d64547827c20395d77e248c41b2572f
#
-# This file is autogenerated by pip-compile
+# This file is autogenerated by pip-compile-multi
# To update, run:
#
-# pip-compile requirements/typing.in
+# pip-compile-multi
#
+mypy==0.931
+ # via -r requirements/typing.in
mypy-extensions==0.4.3
# via mypy
-mypy==0.812
- # via -r requirements/typing.in
-typed-ast==1.4.3
+tomli==2.0.1
# via mypy
-typing-extensions==3.10.0.0
+typing-extensions==4.1.1
# via mypy
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/MarkupSafe-2.0.1/setup.cfg
new/MarkupSafe-2.1.1/setup.cfg
--- old/MarkupSafe-2.0.1/setup.cfg 2021-05-18 19:04:31.574849400 +0200
+++ new/MarkupSafe-2.1.1/setup.cfg 2022-03-15 14:06:38.150444500 +0100
@@ -32,8 +32,8 @@
[options]
packages = find:
package_dir = = src
-include_package_data = true
-python_requires = >= 3.6
+include_package_data = True
+python_requires = >= 3.7
[options.packages.find]
where = src
@@ -44,7 +44,7 @@
error
[coverage:run]
-branch = true
+branch = True
source =
markupsafe
tests
@@ -55,7 +55,7 @@
*/site-packages
[flake8]
-select = B, E, F, W, B9
+select = B, E, F, W, B9, ISC
ignore =
E203
E501
@@ -65,7 +65,8 @@
[mypy]
files = src/markupsafe
-python_version = 3.6
+python_version = 3.7
+show_error_codes = True
disallow_subclassing_any = True
disallow_untyped_calls = True
disallow_untyped_defs = True
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/MarkupSafe-2.0.1/setup.py
new/MarkupSafe-2.1.1/setup.py
--- old/MarkupSafe-2.0.1/setup.py 2021-02-15 16:28:50.000000000 +0100
+++ new/MarkupSafe-2.1.1/setup.py 2022-02-16 19:46:40.000000000 +0100
@@ -1,10 +1,10 @@
import os
import platform
import sys
+
from distutils.errors import CCompilerError
from distutils.errors import DistutilsExecError
from distutils.errors import DistutilsPlatformError
-
from setuptools import Extension
from setuptools import setup
from setuptools.command.build_ext import build_ext
@@ -22,18 +22,18 @@
def run(self):
try:
build_ext.run(self)
- except DistutilsPlatformError:
- raise BuildFailed()
+ except DistutilsPlatformError as e:
+ raise BuildFailed() from e
def build_extension(self, ext):
try:
build_ext.build_extension(self, ext)
- except (CCompilerError, DistutilsExecError, DistutilsPlatformError):
- raise BuildFailed()
- except ValueError:
+ except (CCompilerError, DistutilsExecError, DistutilsPlatformError) as
e:
+ raise BuildFailed() from e
+ except ValueError as e:
# this can happen on Windows 64 bit, see Python issue 7511
if "'path'" in str(sys.exc_info()[1]): # works with Python 2 and 3
- raise BuildFailed()
+ raise BuildFailed() from e
raise
@@ -52,7 +52,11 @@
print("=" * 74)
-supports_speedups = platform.python_implementation() not in {"PyPy", "Jython"}
+supports_speedups = platform.python_implementation() not in {
+ "PyPy",
+ "Jython",
+ "GraalVM",
+}
if os.environ.get("CIBUILDWHEEL", "0") == "1" and supports_speedups:
run_setup(True)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/MarkupSafe-2.0.1/src/MarkupSafe.egg-info/PKG-INFO
new/MarkupSafe-2.1.1/src/MarkupSafe.egg-info/PKG-INFO
--- old/MarkupSafe-2.0.1/src/MarkupSafe.egg-info/PKG-INFO 2021-05-18
19:04:31.000000000 +0200
+++ new/MarkupSafe-2.1.1/src/MarkupSafe.egg-info/PKG-INFO 2022-03-15
14:06:38.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: MarkupSafe
-Version: 2.0.1
+Version: 2.1.1
Summary: Safely add untrusted strings to HTML/XML markup.
Home-page: https://palletsprojects.com/p/markupsafe/
Author: Armin Ronacher
@@ -15,76 +15,6 @@
Project-URL: Issue Tracker, https://github.com/pallets/markupsafe/issues/
Project-URL: Twitter, https://twitter.com/PalletsTeam
Project-URL: Chat, https://discord.gg/pallets
-Description: MarkupSafe
- ==========
-
- MarkupSafe implements a text object that escapes characters so it is
- safe to use in HTML and XML. Characters that have special meanings are
- replaced so that they display as the actual characters. This mitigates
- injection attacks, meaning untrusted user input can safely be displayed
- on a page.
-
-
- Installing
- ----------
-
- Install and update using `pip`_:
-
- .. code-block:: text
-
- pip install -U MarkupSafe
-
- .. _pip: https://pip.pypa.io/en/stable/quickstart/
-
-
- Examples
- --------
-
- .. code-block:: pycon
-
- >>> from markupsafe import Markup, escape
-
- >>> # escape replaces special characters and wraps in Markup
- >>> escape("<script>alert(document.cookie);</script>")
- Markup('<script>alert(document.cookie);</script>')
-
- >>> # wrap in Markup to mark text "safe" and prevent escaping
- >>> Markup("<strong>Hello</strong>")
- Markup('<strong>hello</strong>')
-
- >>> escape(Markup("<strong>Hello</strong>"))
- Markup('<strong>hello</strong>')
-
- >>> # Markup is a str subclass
- >>> # methods and operators escape their arguments
- >>> template = Markup("Hello <em>{name}</em>")
- >>> template.format(name='"World"')
- Markup('Hello <em>"World"</em>')
-
-
- Donate
- ------
-
- The Pallets organization develops and supports MarkupSafe and other
- popular packages. In order to grow the community of contributors and
- users, and allow the maintainers to devote more time to the projects,
- `please donate today`_.
-
- .. _please donate today: https://palletsprojects.com/donate
-
-
- Links
- -----
-
- - Documentation: https://markupsafe.palletsprojects.com/
- - Changes: https://markupsafe.palletsprojects.com/changes/
- - PyPI Releases: https://pypi.org/project/MarkupSafe/
- - Source Code: https://github.com/pallets/markupsafe/
- - Issue Tracker: https://github.com/pallets/markupsafe/issues/
- - Website: https://palletsprojects.com/p/markupsafe/
- - Twitter: https://twitter.com/PalletsTeam
- - Chat: https://discord.gg/pallets
-
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Web Environment
@@ -94,5 +24,78 @@
Classifier: Programming Language :: Python
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Text Processing :: Markup :: HTML
-Requires-Python: >=3.6
+Requires-Python: >=3.7
Description-Content-Type: text/x-rst
+License-File: LICENSE.rst
+
+MarkupSafe
+==========
+
+MarkupSafe implements a text object that escapes characters so it is
+safe to use in HTML and XML. Characters that have special meanings are
+replaced so that they display as the actual characters. This mitigates
+injection attacks, meaning untrusted user input can safely be displayed
+on a page.
+
+
+Installing
+----------
+
+Install and update using `pip`_:
+
+.. code-block:: text
+
+ pip install -U MarkupSafe
+
+.. _pip: https://pip.pypa.io/en/stable/getting-started/
+
+
+Examples
+--------
+
+.. code-block:: pycon
+
+ >>> from markupsafe import Markup, escape
+
+ >>> # escape replaces special characters and wraps in Markup
+ >>> escape("<script>alert(document.cookie);</script>")
+ Markup('<script>alert(document.cookie);</script>')
+
+ >>> # wrap in Markup to mark text "safe" and prevent escaping
+ >>> Markup("<strong>Hello</strong>")
+ Markup('<strong>hello</strong>')
+
+ >>> escape(Markup("<strong>Hello</strong>"))
+ Markup('<strong>hello</strong>')
+
+ >>> # Markup is a str subclass
+ >>> # methods and operators escape their arguments
+ >>> template = Markup("Hello <em>{name}</em>")
+ >>> template.format(name='"World"')
+ Markup('Hello <em>"World"</em>')
+
+
+Donate
+------
+
+The Pallets organization develops and supports MarkupSafe and other
+popular packages. In order to grow the community of contributors and
+users, and allow the maintainers to devote more time to the projects,
+`please donate today`_.
+
+.. _please donate today: https://palletsprojects.com/donate
+
+
+Links
+-----
+
+- Documentation: https://markupsafe.palletsprojects.com/
+- Changes: https://markupsafe.palletsprojects.com/changes/
+- PyPI Releases: https://pypi.org/project/MarkupSafe/
+- Source Code: https://github.com/pallets/markupsafe/
+- Issue Tracker: https://github.com/pallets/markupsafe/issues/
+- Website: https://palletsprojects.com/p/markupsafe/
+- Twitter: https://twitter.com/PalletsTeam
+- Chat: https://discord.gg/pallets
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/MarkupSafe-2.0.1/src/markupsafe/__init__.py
new/MarkupSafe-2.1.1/src/markupsafe/__init__.py
--- old/MarkupSafe-2.0.1/src/markupsafe/__init__.py 2021-05-18
19:03:18.000000000 +0200
+++ new/MarkupSafe-2.1.1/src/markupsafe/__init__.py 2022-03-14
17:53:29.000000000 +0100
@@ -11,9 +11,10 @@
pass
-__version__ = "2.0.1"
+__version__ = "2.1.1"
-_striptags_re = re.compile(r"(<!--.*?-->|<[^>]*>)")
+_strip_comments_re = re.compile(r"<!--.*?-->")
+_strip_tags_re = re.compile(r"<.*?>")
def _simple_escaping_wrapper(name: str) -> t.Callable[..., "Markup"]:
@@ -92,19 +93,24 @@
return NotImplemented
- def __mul__(self, num: int) -> "Markup":
+ def __mul__(self, num: "te.SupportsIndex") -> "Markup":
if isinstance(num, int):
return self.__class__(super().__mul__(num))
- return NotImplemented # type: ignore
+ return NotImplemented
__rmul__ = __mul__
def __mod__(self, arg: t.Any) -> "Markup":
if isinstance(arg, tuple):
+ # a tuple of arguments, each wrapped
arg = tuple(_MarkupEscapeHelper(x, self.escape) for x in arg)
- else:
+ elif hasattr(type(arg), "__getitem__") and not isinstance(arg, str):
+ # a mapping of arguments, wrapped
arg = _MarkupEscapeHelper(arg, self.escape)
+ else:
+ # a single argument, wrapped with the helper and a tuple
+ arg = (_MarkupEscapeHelper(arg, self.escape),)
return self.__class__(super().__mod__(arg))
@@ -153,8 +159,11 @@
>>> Markup("Main »\t<em>About</em>").striptags()
'Main ?? About'
"""
- stripped = " ".join(_striptags_re.sub("", self).split())
- return Markup(stripped).unescape()
+ # Use two regexes to avoid ambiguous matches.
+ value = _strip_comments_re.sub("", self)
+ value = _strip_tags_re.sub("", value)
+ value = " ".join(value.split())
+ return Markup(value).unescape()
@classmethod
def escape(cls, s: t.Any) -> "Markup":
@@ -280,9 +289,7 @@
from ._speedups import escape as escape
from ._speedups import escape_silent as escape_silent
from ._speedups import soft_str as soft_str
- from ._speedups import soft_unicode
except ImportError:
from ._native import escape as escape
from ._native import escape_silent as escape_silent # noqa: F401
from ._native import soft_str as soft_str # noqa: F401
- from ._native import soft_unicode # noqa: F401
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/MarkupSafe-2.0.1/src/markupsafe/_native.py
new/MarkupSafe-2.1.1/src/markupsafe/_native.py
--- old/MarkupSafe-2.0.1/src/markupsafe/_native.py 2021-04-16
00:27:24.000000000 +0200
+++ new/MarkupSafe-2.1.1/src/markupsafe/_native.py 2022-02-16
19:46:40.000000000 +0100
@@ -61,15 +61,3 @@
return str(s)
return s
-
-
-def soft_unicode(s: t.Any) -> str:
- import warnings
-
- warnings.warn(
- "'soft_unicode' has been renamed to 'soft_str'. The old name"
- " will be removed in MarkupSafe 2.1.",
- DeprecationWarning,
- stacklevel=2,
- )
- return soft_str(s)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/MarkupSafe-2.0.1/src/markupsafe/_speedups.c
new/MarkupSafe-2.1.1/src/markupsafe/_speedups.c
--- old/MarkupSafe-2.0.1/src/markupsafe/_speedups.c 2021-04-16
00:27:24.000000000 +0200
+++ new/MarkupSafe-2.1.1/src/markupsafe/_speedups.c 2022-02-16
19:46:40.000000000 +0100
@@ -254,19 +254,6 @@
}
-static PyObject*
-soft_unicode(PyObject *self, PyObject *s)
-{
- PyErr_WarnEx(
- PyExc_DeprecationWarning,
- "'soft_unicode' has been renamed to 'soft_str'. The old name"
- " will be removed in MarkupSafe 2.1.",
- 2
- );
- return soft_str(self, s);
-}
-
-
static PyMethodDef module_methods[] = {
{
"escape",
@@ -308,12 +295,6 @@
">>> escape(soft_str(value))\n"
"Markup('<User 1>')\n"
},
- {
- "soft_unicode",
- (PyCFunction)soft_unicode,
- METH_O,
- ""
- },
{NULL, NULL, 0, NULL} /* Sentinel */
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/MarkupSafe-2.0.1/tests/conftest.py
new/MarkupSafe-2.1.1/tests/conftest.py
--- old/MarkupSafe-2.0.1/tests/conftest.py 2021-01-30 03:46:42.000000000
+0100
+++ new/MarkupSafe-2.1.1/tests/conftest.py 2022-02-16 19:46:40.000000000
+0100
@@ -35,8 +35,3 @@
@pytest.fixture(scope="session")
def soft_str(_mod):
return _mod.soft_str
-
-
[email protected](scope="session")
-def soft_unicode(_mod):
- return _mod.soft_unicode
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/MarkupSafe-2.0.1/tests/test_markupsafe.py
new/MarkupSafe-2.1.1/tests/test_markupsafe.py
--- old/MarkupSafe-2.0.1/tests/test_markupsafe.py 2021-01-30
00:09:24.000000000 +0100
+++ new/MarkupSafe-2.1.1/tests/test_markupsafe.py 2022-03-14
17:53:29.000000000 +0100
@@ -45,6 +45,12 @@
assert result == "<strong><em>awesome</em></strong>"
[email protected]("args", ["foo", 42, ("foo", 42)])
+def test_missing_interpol(args):
+ with pytest.raises(TypeError):
+ Markup("<em></em>") % args
+
+
def test_tuple_interpol():
result = Markup("<em>%s:%s</em>") % ("<foo>", "<bar>")
expect = Markup("<em><foo>:<bar></em>")
@@ -63,7 +69,15 @@
def test_escaping(escape):
assert escape("\"<>&'") == ""<>&'"
- assert Markup("<em>Foo & Bar</em>").striptags() == "Foo & Bar"
+ assert (
+ Markup(
+ "<!-- outer comment -->"
+ "<em>Foo & Bar"
+ "<!-- inner comment about <em> -->"
+ "</em>"
+ ).striptags()
+ == "Foo & Bar"
+ )
def test_unescape():
@@ -178,8 +192,3 @@
assert type(soft_str("")) is str
assert type(soft_str(Markup())) is Markup
assert type(soft_str(15)) is str
-
-
-def test_soft_unicode_deprecated(soft_unicode):
- with pytest.warns(DeprecationWarning):
- assert type(soft_unicode(Markup())) is Markup
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/MarkupSafe-2.0.1/tox.ini new/MarkupSafe-2.1.1/tox.ini
--- old/MarkupSafe-2.0.1/tox.ini 2021-02-24 21:55:18.000000000 +0100
+++ new/MarkupSafe-2.1.1/tox.ini 2022-02-16 19:46:40.000000000 +0100
@@ -1,6 +1,6 @@
[tox]
envlist =
- py{39,38,37,36,py3}
+ py3{11,10,9,8,7},pypy3{8,7}
style
typing
docs