Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-readme_renderer for
openSUSE:Factory checked in at 2022-08-08 08:44:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-readme_renderer (Old)
and /work/SRC/openSUSE:Factory/.python-readme_renderer.new.1521 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-readme_renderer"
Mon Aug 8 08:44:49 2022 rev:8 rq:989371 version:35.0
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-readme_renderer/python-readme_renderer.changes
2022-02-09 20:38:30.938277746 +0100
+++
/work/SRC/openSUSE:Factory/.python-readme_renderer.new.1521/python-readme_renderer.changes
2022-08-08 08:44:51.406393097 +0200
@@ -1,0 +2,6 @@
+Fri Jul 15 10:07:35 UTC 2022 - Jacob Michalskie <[email protected]>
+
+- Update to 35.0:
+ * works with newer versions of cmarkgfm
+
+-------------------------------------------------------------------
Old:
----
readme_renderer-32.0.tar.gz
New:
----
readme_renderer-35.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-readme_renderer.spec ++++++
--- /var/tmp/diff_new_pack.QvvM5Z/_old 2022-08-08 08:44:51.834394355 +0200
+++ /var/tmp/diff_new_pack.QvvM5Z/_new 2022-08-08 08:44:51.838394367 +0200
@@ -19,7 +19,7 @@
%define skip_python2 1
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-readme_renderer
-Version: 32.0
+Version: 35.0
Release: 0
Summary: A library for rendering "readme" descriptions
License: Apache-2.0
++++++ readme_renderer-32.0.tar.gz -> readme_renderer-35.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/readme_renderer-32.0/CHANGES.rst
new/readme_renderer-35.0/CHANGES.rst
--- old/readme_renderer-32.0/CHANGES.rst 2021-12-13 17:24:51.000000000
+0100
+++ new/readme_renderer-35.0/CHANGES.rst 2022-04-19 19:31:33.000000000
+0200
@@ -1,6 +1,33 @@
Changes
=======
+35.0 (2022-04-19)
+-----------------
+
+* Add py.typed to the built wheel (#228)
+* Use isolated build for tox (#229)
+* Fix renderer ignore (#230)
+* Remove legacy check command and distutils (#233)
+* Emit a warning when no content is rendered (#231)
+* Drop support for Python 3.6 (#236)
+* Update html attribute order in tests (#235)
+
+34.0 (2022-03-11)
+-----------------
+
+* Add static types (#225)
+
+33.0 (2022-03-05)
+-----------------
+
+* Support cmarkgfm>=0.8.0 (#224)
+
+33.0 (2022-02-05)
+-----------------
+
+* Support cmarkgfm>=0.8.0 (#224)
+* Support Python 3.10
+
32.0 (2021-12-13)
-----------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/readme_renderer-32.0/MANIFEST.in
new/readme_renderer-35.0/MANIFEST.in
--- old/readme_renderer-32.0/MANIFEST.in 2021-12-13 17:24:51.000000000
+0100
+++ new/readme_renderer-35.0/MANIFEST.in 2022-04-19 19:31:33.000000000
+0200
@@ -1,5 +1,6 @@
include LICENSE README.rst CHANGES.rst
include tox.ini .coveragerc pytest.ini
+include readme_renderer/py.typed
recursive-include tests *.html
recursive-include tests *.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/readme_renderer-32.0/PKG-INFO
new/readme_renderer-35.0/PKG-INFO
--- old/readme_renderer-32.0/PKG-INFO 2021-12-13 17:25:01.055701700 +0100
+++ new/readme_renderer-35.0/PKG-INFO 2022-04-19 19:31:47.814312000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: readme_renderer
-Version: 32.0
+Version: 35.0
Summary: readme_renderer is a library for rendering "readme" descriptions for
Warehouse
Home-page: https://github.com/pypa/readme_renderer
Author: The Python Packaging Authority
@@ -18,13 +18,13 @@
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
-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: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
-Requires-Python: >=3.6
+Requires-Python: >=3.7
Provides-Extra: md
License-File: LICENSE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/readme_renderer-32.0/pyproject.toml
new/readme_renderer-35.0/pyproject.toml
--- old/readme_renderer-32.0/pyproject.toml 1970-01-01 01:00:00.000000000
+0100
+++ new/readme_renderer-35.0/pyproject.toml 2022-04-19 19:31:33.000000000
+0200
@@ -0,0 +1,18 @@
+[build-system]
+requires = ["setuptools>=40.8.0", "wheel", "bleach>=2.1.0",
"docutils>=0.13.1", "Pygments>=2.5.1"]
+build-backend = "setuptools.build_meta:__legacy__"
+
+[tool.mypy]
+strict = true
+warn_unused_configs = true
+show_error_codes = true
+enable_error_code = [
+ "ignore-without-code"
+]
+
+[[tool.mypy.overrides]]
+# These modules do not yet have types available.
+module = [
+ "cmarkgfm.*"
+]
+ignore_missing_imports = true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/readme_renderer-32.0/readme_renderer/__about__.py
new/readme_renderer-35.0/readme_renderer/__about__.py
--- old/readme_renderer-32.0/readme_renderer/__about__.py 2021-12-13
17:24:51.000000000 +0100
+++ new/readme_renderer-35.0/readme_renderer/__about__.py 2022-04-19
19:31:33.000000000 +0200
@@ -30,7 +30,7 @@
)
__uri__ = "https://github.com/pypa/readme_renderer"
-__version__ = "32.0"
+__version__ = "35.0"
__author__ = "The Python Packaging Authority"
__email__ = "[email protected]"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/readme_renderer-32.0/readme_renderer/clean.py
new/readme_renderer-35.0/readme_renderer/clean.py
--- old/readme_renderer-32.0/readme_renderer/clean.py 2021-12-13
17:24:51.000000000 +0100
+++ new/readme_renderer-35.0/readme_renderer/clean.py 2022-04-19
19:31:33.000000000 +0200
@@ -14,6 +14,7 @@
from __future__ import absolute_import, division, print_function
import functools
+from typing import Any, Dict, Iterator, List, Optional
import bleach
import bleach.callbacks
@@ -59,15 +60,14 @@
"input": ["type", "checked", "disabled"],
}
-ALLOWED_STYLES = [
-]
-
class DisabledCheckboxInputsFilter:
- def __init__(self, source):
+ # The typeshed for bleach (html5lib) filters is incomplete, use
`typing.Any`
+ # See
https://github.com/python/typeshed/blob/505ea726415016e53638c8b584b8fdc9c722cac1/stubs/bleach/bleach/html5lib_shim.pyi#L7-L8
# noqa E501
+ def __init__(self, source: Any) -> None:
self.source = source
- def __iter__(self):
+ def __iter__(self) -> Iterator[Dict[str, Optional[str]]]:
for token in self.source:
if token.get("name") == "input":
# only allow disabled checkbox inputs
@@ -85,23 +85,24 @@
else:
yield token
- def __getattr__(self, name):
+ def __getattr__(self, name: str) -> Any:
return getattr(self.source, name)
-def clean(html, tags=None, attributes=None, styles=None):
+def clean(
+ html: str,
+ tags: Optional[List[str]] = None,
+ attributes: Optional[Dict[str, List[str]]] = None
+) -> Optional[str]:
if tags is None:
tags = ALLOWED_TAGS
if attributes is None:
attributes = ALLOWED_ATTRIBUTES
- if styles is None:
- styles = ALLOWED_STYLES
# Clean the output using Bleach
cleaner = bleach.sanitizer.Cleaner(
tags=tags,
attributes=attributes,
- styles=styles,
filters=[
# Bleach Linkify makes it easy to modify links, however, we will
# not be using it to create additional links.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/readme_renderer-32.0/readme_renderer/integration/__init__.py
new/readme_renderer-35.0/readme_renderer/integration/__init__.py
--- old/readme_renderer-32.0/readme_renderer/integration/__init__.py
2021-12-13 17:24:51.000000000 +0100
+++ new/readme_renderer-35.0/readme_renderer/integration/__init__.py
1970-01-01 01:00:00.000000000 +0100
@@ -1,14 +0,0 @@
-# Copyright 2015 Donald Stufft
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-from __future__ import absolute_import, division, print_function
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/readme_renderer-32.0/readme_renderer/integration/distutils.py
new/readme_renderer-35.0/readme_renderer/integration/distutils.py
--- old/readme_renderer-32.0/readme_renderer/integration/distutils.py
2021-12-13 17:24:51.000000000 +0100
+++ new/readme_renderer-35.0/readme_renderer/integration/distutils.py
1970-01-01 01:00:00.000000000 +0100
@@ -1,102 +0,0 @@
-# Copyright 2015 Donald Stufft
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-from __future__ import absolute_import, division, print_function
-
-import cgi
-import io
-import re
-
-import distutils.log
-from distutils.command.check import check as _check
-from distutils.core import Command
-
-from ..rst import render
-
-
-# Regular expression used to capture and reformat doctuils warnings into
-# something that a human can understand. This is loosely borrowed from
-# Sphinx: https://github.com/sphinx-doc/sphinx/blob
-# /c35eb6fade7a3b4a6de4183d1dd4196f04a5edaf/sphinx/util/docutils.py#L199
-_REPORT_RE = re.compile(
- r'^<string>:(?P<line>(?:\d+)?): '
- r'\((?P<level>DEBUG|INFO|WARNING|ERROR|SEVERE)/(\d+)?\) '
- r'(?P<message>.*)', re.DOTALL | re.MULTILINE)
-
-
-class _WarningStream(object):
- def __init__(self):
- self.output = io.StringIO()
-
- def write(self, text):
- matched = _REPORT_RE.search(text)
-
- if not matched:
- self.output.write(text)
- return
-
- self.output.write(
- u"line {line}: {level_text}: {message}\n".format(
- level_text=matched.group('level').capitalize(),
- line=matched.group('line'),
- message=matched.group('message').rstrip('\r\n')))
-
- def __str__(self):
- return self.output.getvalue()
-
-
-class Check(_check):
- def check_restructuredtext(self):
- """
- Checks if the long string fields are reST-compliant.
- """
- # Warn that this command is deprecated
- # Don't use self.warn() because it will cause the check to fail.
- Command.warn(
- self,
- "This command has been deprecated. Use `twine check` instead: "
- "https://packaging.python.org/guides/making-a-pypi-friendly-readme"
- "#validating-restructuredtext-markup"
- )
-
- data = self.distribution.get_long_description()
- content_type = getattr(
- self.distribution.metadata, 'long_description_content_type', None)
-
- if content_type:
- content_type, _ = cgi.parse_header(content_type)
- if content_type != 'text/x-rst':
- self.warn(
- "Not checking long description content type '%s', this "
- "command only checks 'text/x-rst'." % content_type)
- return
-
- # None or empty string should both trigger this branch.
- if not data or data == 'UNKNOWN':
- self.warn(
- "The project's long_description is either missing or empty.")
- return
-
- stream = _WarningStream()
- markup = render(data, stream=stream)
-
- if markup is None:
- self.warn(
- "The project's long_description has invalid markup which will "
- "not be rendered on PyPI. The following syntax errors were "
- "detected:\n%s" % stream)
- return
-
- self.announce(
- "The project's long description is valid RST.",
- level=distutils.log.INFO)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/readme_renderer-32.0/readme_renderer/markdown.py
new/readme_renderer-35.0/readme_renderer/markdown.py
--- old/readme_renderer-32.0/readme_renderer/markdown.py 2021-12-13
17:24:51.000000000 +0100
+++ new/readme_renderer-35.0/readme_renderer/markdown.py 2022-04-19
19:31:33.000000000 +0200
@@ -15,8 +15,9 @@
import re
import warnings
+from typing import cast, Any, Dict, Callable, Match, Optional
-from html.parser import unescape
+from html import unescape
import pygments
import pygments.lexers
@@ -32,13 +33,13 @@
try:
import cmarkgfm
from cmarkgfm.cmark import Options as cmarkgfmOptions
- variants = {
- "GFM": lambda raw: cmarkgfm.github_flavored_markdown_to_html(
+ variants: Dict[str, Callable[[str], str]] = {
+ "GFM": lambda raw: cast(str, cmarkgfm.github_flavored_markdown_to_html(
raw, options=cmarkgfmOptions.CMARK_OPT_UNSAFE
- ),
- "CommonMark": lambda raw: cmarkgfm.markdown_to_html(
+ )),
+ "CommonMark": lambda raw: cast(str, cmarkgfm.markdown_to_html(
raw, options=cmarkgfmOptions.CMARK_OPT_UNSAFE
- ),
+ )),
}
except ImportError:
warnings.warn(_EXTRA_WARNING)
@@ -51,7 +52,11 @@
}
-def render(raw, variant="GFM", **kwargs):
+def render(
+ raw: str,
+ variant: str = "GFM",
+ **kwargs: Any
+) -> Optional[str]:
if not variants:
warnings.warn(_EXTRA_WARNING)
return None
@@ -71,7 +76,7 @@
return cleaned
-def _highlight(html):
+def _highlight(html: str) -> str:
"""Syntax-highlights HTML-rendered Markdown.
Plucks sections to highlight that conform the the GitHub fenced code info
@@ -94,7 +99,7 @@
'(?(in_code)|<code>)(?P<code>.+?)'
r'</code></pre>', re.DOTALL)
- def replacer(match):
+ def replacer(match: Match[Any]) -> str:
try:
lang = match.group('lang')
lang = _LANG_ALIASES.get(lang, lang)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/readme_renderer-32.0/readme_renderer/rst.py
new/readme_renderer-35.0/readme_renderer/rst.py
--- old/readme_renderer-32.0/readme_renderer/rst.py 2021-12-13
17:24:51.000000000 +0100
+++ new/readme_renderer-35.0/readme_renderer/rst.py 2022-04-19
19:31:33.000000000 +0200
@@ -14,20 +14,28 @@
from __future__ import absolute_import, division, print_function
import io
+from typing import Any, Dict, IO, Optional, Union
from docutils.core import publish_parts
+from docutils.nodes import colspec, image
from docutils.writers.html4css1 import HTMLTranslator, Writer
from docutils.utils import SystemMessage
from .clean import clean
-class ReadMeHTMLTranslator(HTMLTranslator):
+class ReadMeHTMLTranslator(HTMLTranslator): # type: ignore[misc] # docutils
is incomplete, returns `Any` python/typeshed#7256 # noqa E501
# Overrides base class not to output `<object>` tag for SVG images.
- object_image_types = {}
+ object_image_types: Dict[str, str] = {}
- def emptytag(self, node, tagname, suffix="\n", **attributes):
+ def emptytag(
+ self,
+ node: Union[colspec, image],
+ tagname: str,
+ suffix: str = "\n",
+ **attributes: Any
+ ) -> Any:
"""Override this to add back the width/height attributes."""
if tagname == "img":
if "width" in node:
@@ -95,7 +103,11 @@
}
-def render(raw, stream=None, **kwargs):
+def render(
+ raw: str,
+ stream: Optional[IO[str]] = None,
+ **kwargs: Any
+) -> Optional[str]:
if stream is None:
# Use a io.StringIO as the warning stream to prevent warnings from
# being printed to sys.stderr.
@@ -117,4 +129,7 @@
if rendered:
return clean(rendered)
else:
+ # If the warnings stream is empty, docutils had none, so add ours.
+ if not stream.tell():
+ stream.write("No content rendered from RST source.")
return None
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/readme_renderer-32.0/readme_renderer/txt.py
new/readme_renderer-35.0/readme_renderer/txt.py
--- old/readme_renderer-32.0/readme_renderer/txt.py 2021-12-13
17:24:51.000000000 +0100
+++ new/readme_renderer-35.0/readme_renderer/txt.py 2022-04-19
19:31:33.000000000 +0200
@@ -14,6 +14,7 @@
from __future__ import absolute_import, division, print_function
import sys
+from typing import Any, Optional
from .clean import clean
@@ -26,6 +27,6 @@
return escape(s, quote=True).replace("'", ''')
-def render(raw, **kwargs):
+def render(raw: str, **kwargs: Any) -> Optional[str]:
rendered = html_escape(raw).replace("\n", "<br>")
return clean(rendered, tags=["br"])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/readme_renderer-32.0/readme_renderer.egg-info/PKG-INFO
new/readme_renderer-35.0/readme_renderer.egg-info/PKG-INFO
--- old/readme_renderer-32.0/readme_renderer.egg-info/PKG-INFO 2021-12-13
17:25:01.000000000 +0100
+++ new/readme_renderer-35.0/readme_renderer.egg-info/PKG-INFO 2022-04-19
19:31:47.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: readme-renderer
-Version: 32.0
+Version: 35.0
Summary: readme_renderer is a library for rendering "readme" descriptions for
Warehouse
Home-page: https://github.com/pypa/readme_renderer
Author: The Python Packaging Authority
@@ -18,13 +18,13 @@
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
-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: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
-Requires-Python: >=3.6
+Requires-Python: >=3.7
Provides-Extra: md
License-File: LICENSE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/readme_renderer-32.0/readme_renderer.egg-info/SOURCES.txt
new/readme_renderer-35.0/readme_renderer.egg-info/SOURCES.txt
--- old/readme_renderer-32.0/readme_renderer.egg-info/SOURCES.txt
2021-12-13 17:25:01.000000000 +0100
+++ new/readme_renderer-35.0/readme_renderer.egg-info/SOURCES.txt
2022-04-19 19:31:47.000000000 +0200
@@ -3,6 +3,7 @@
LICENSE
MANIFEST.in
README.rst
+pyproject.toml
pytest.ini
setup.cfg
setup.py
@@ -12,19 +13,16 @@
readme_renderer/__main__.py
readme_renderer/clean.py
readme_renderer/markdown.py
+readme_renderer/py.typed
readme_renderer/rst.py
readme_renderer/txt.py
readme_renderer.egg-info/PKG-INFO
readme_renderer.egg-info/SOURCES.txt
readme_renderer.egg-info/dependency_links.txt
-readme_renderer.egg-info/entry_points.txt
readme_renderer.egg-info/requires.txt
readme_renderer.egg-info/top_level.txt
-readme_renderer/integration/__init__.py
-readme_renderer/integration/distutils.py
tests/__init__.py
tests/test_clean.py
-tests/test_integration_distutils.py
tests/test_markdown.py
tests/test_noextra.py
tests/test_rst.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/readme_renderer-32.0/readme_renderer.egg-info/entry_points.txt
new/readme_renderer-35.0/readme_renderer.egg-info/entry_points.txt
--- old/readme_renderer-32.0/readme_renderer.egg-info/entry_points.txt
2021-12-13 17:25:01.000000000 +0100
+++ new/readme_renderer-35.0/readme_renderer.egg-info/entry_points.txt
1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-[distutils.commands]
-check = readme_renderer.integration.distutils:Check
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/readme_renderer-32.0/readme_renderer.egg-info/requires.txt
new/readme_renderer-35.0/readme_renderer.egg-info/requires.txt
--- old/readme_renderer-32.0/readme_renderer.egg-info/requires.txt
2021-12-13 17:25:01.000000000 +0100
+++ new/readme_renderer-35.0/readme_renderer.egg-info/requires.txt
2022-04-19 19:31:47.000000000 +0200
@@ -3,4 +3,4 @@
Pygments>=2.5.1
[md]
-cmarkgfm<0.7.0,>=0.5.0
+cmarkgfm>=0.8.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/readme_renderer-32.0/setup.py
new/readme_renderer-35.0/setup.py
--- old/readme_renderer-32.0/setup.py 2021-12-13 17:24:51.000000000 +0100
+++ new/readme_renderer-35.0/setup.py 2022-04-19 19:31:33.000000000 +0200
@@ -48,18 +48,16 @@
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3 :: Only",
- "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",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
],
install_requires=["bleach>=2.1.0", "docutils>=0.13.1", "Pygments>=2.5.1"],
- entry_points={
- "distutils.commands": ["check =
readme_renderer.integration.distutils:Check"],
- },
- extras_require={"md": "cmarkgfm>=0.5.0,<0.7.0"},
+ include_package_data=True,
+ extras_require={"md": "cmarkgfm>=0.8.0"},
packages=setuptools.find_packages(exclude=["tests", "tests.*"]),
- python_requires=">=3.6",
+ python_requires=">=3.7",
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/readme_renderer-32.0/tests/fixtures/test_GFM_024.html
new/readme_renderer-35.0/tests/fixtures/test_GFM_024.html
--- old/readme_renderer-32.0/tests/fixtures/test_GFM_024.html 2021-12-13
17:24:51.000000000 +0100
+++ new/readme_renderer-35.0/tests/fixtures/test_GFM_024.html 2022-04-19
19:31:33.000000000 +0200
@@ -1,6 +1,6 @@
<ul>
-<li><input disabled type="checkbox"> Valid unchecked checkbox</li>
-<li><input checked disabled type="checkbox"> Valid checked checkbox</li>
+<li><input type="checkbox" disabled> Valid unchecked checkbox</li>
+<li><input type="checkbox" checked disabled> Valid checked checkbox</li>
<li> Invalid enabled checkbox</li>
<li>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/readme_renderer-32.0/tests/fixtures/test_GFM_doublequotes.html
new/readme_renderer-35.0/tests/fixtures/test_GFM_doublequotes.html
--- old/readme_renderer-32.0/tests/fixtures/test_GFM_doublequotes.html
2021-12-13 17:24:51.000000000 +0100
+++ new/readme_renderer-35.0/tests/fixtures/test_GFM_doublequotes.html
2022-04-19 19:31:33.000000000 +0200
@@ -5,7 +5,7 @@
<span class="sd">"""This is a
docstring."""</span>
<span class="k">pass</span>
</pre>
-<pre><span class="kd">func</span> <span class="nx">ThisIsGo</span><span
class="p">(){</span>
- <span class="k">return</span>
-<span class="p">}</span>
+<pre><span class="kd">func</span><span class="w"> </span><span
class="nx">ThisIsGo</span><span class="p">(){</span><span class="w"></span>
+<span class="w"> </span><span class="k">return</span><span class="w"></span>
+<span class="p">}</span><span class="w"></span>
</pre>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/readme_renderer-32.0/tests/fixtures/test_GFM_highlight.html
new/readme_renderer-35.0/tests/fixtures/test_GFM_highlight.html
--- old/readme_renderer-32.0/tests/fixtures/test_GFM_highlight.html
2021-12-13 17:24:51.000000000 +0100
+++ new/readme_renderer-35.0/tests/fixtures/test_GFM_highlight.html
2022-04-19 19:31:33.000000000 +0200
@@ -4,7 +4,7 @@
<pre><span class="k">def</span> <span class="nf">this_is_python</span><span
class="p">():</span>
<span class="k">pass</span>
</pre>
-<pre><span class="kd">func</span> <span class="nx">ThisIsGo</span><span
class="p">(){</span>
- <span class="k">return</span>
-<span class="p">}</span>
+<pre><span class="kd">func</span><span class="w"> </span><span
class="nx">ThisIsGo</span><span class="p">(){</span><span class="w"></span>
+<span class="w"> </span><span class="k">return</span><span class="w"></span>
+<span class="p">}</span><span class="w"></span>
</pre>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/readme_renderer-32.0/tests/fixtures/test_GFM_img.html
new/readme_renderer-35.0/tests/fixtures/test_GFM_img.html
--- old/readme_renderer-32.0/tests/fixtures/test_GFM_img.html 2021-12-13
17:24:51.000000000 +0100
+++ new/readme_renderer-35.0/tests/fixtures/test_GFM_img.html 2022-04-19
19:31:33.000000000 +0200
@@ -1,4 +1,4 @@
-<p><img alt="Image of Yaktocat"
src="https://octodex.github.com/images/yaktocat.png"></p>
+<p><img src="https://octodex.github.com/images/yaktocat.png" alt="Image of
Yaktocat"></p>
<p align="center">
- <img alt="Image of Yaktocat" height="100px"
src="https://octodex.github.com/images/yaktocat.png" width="20%">
+ <img src="https://octodex.github.com/images/yaktocat.png" width="20%"
height="100px" alt="Image of Yaktocat">
</p>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/readme_renderer-32.0/tests/test_integration_distutils.py
new/readme_renderer-35.0/tests/test_integration_distutils.py
--- old/readme_renderer-32.0/tests/test_integration_distutils.py
2021-12-13 17:24:51.000000000 +0100
+++ new/readme_renderer-35.0/tests/test_integration_distutils.py
1970-01-01 01:00:00.000000000 +0100
@@ -1,99 +0,0 @@
-import distutils.dist
-import unittest.mock
-
-import pytest
-import setuptools.dist
-
-import readme_renderer.integration.distutils
-
-
-def test_valid_rst():
- dist = distutils.dist.Distribution(attrs=dict(
- long_description="Hello, I am some text."))
- checker = readme_renderer.integration.distutils.Check(dist)
- checker.warn = unittest.mock.Mock()
-
- checker.check_restructuredtext()
-
- checker.warn.assert_not_called()
-
-
-def test_invalid_rst():
- dist = distutils.dist.Distribution(attrs=dict(
- long_description="Hello, I am some `totally borked< text."))
- checker = readme_renderer.integration.distutils.Check(dist)
- checker.warn = unittest.mock.Mock()
- checker.announce = unittest.mock.Mock()
-
- checker.check_restructuredtext()
-
- # Should warn once for the syntax error, and finally to warn that the
- # overall syntax is invalid
- checker.warn.assert_called_once_with(unittest.mock.ANY)
- message = checker.warn.call_args[0][0]
- assert 'invalid markup' in message
- assert 'line 1: Warning:' in message
- assert 'start-string without end-string' in message
-
- # Should not have announced that it was valid.
- checker.announce.assert_not_called()
-
-
-def test_malicious_rst():
- description = """
-.. raw:: html
- <script>I am evil</script>
-"""
- dist = distutils.dist.Distribution(attrs=dict(
- long_description=description))
- checker = readme_renderer.integration.distutils.Check(dist)
- checker.warn = unittest.mock.Mock()
- checker.announce = unittest.mock.Mock()
-
- checker.check_restructuredtext()
-
- # Should warn once for the syntax error, and finally to warn that the
- # overall syntax is invalid
- checker.warn.assert_called_once_with(unittest.mock.ANY)
- message = checker.warn.call_args[0][0]
- assert 'directive disabled' in message
-
- # Should not have announced that it was valid.
- checker.announce.assert_not_called()
-
-
[email protected]('ignore:::distutils.dist')
-def test_markdown():
- dist = setuptools.dist.Distribution(attrs=dict(
- long_description="Hello, I am some text.",
- long_description_content_type="text/markdown"))
- checker = readme_renderer.integration.distutils.Check(dist)
- checker.warn = unittest.mock.Mock()
-
- checker.check_restructuredtext()
-
- checker.warn.assert_called()
- assert 'content type' in checker.warn.call_args[0][0]
-
-
-def test_invalid_missing():
- dist = distutils.dist.Distribution(attrs=dict())
- checker = readme_renderer.integration.distutils.Check(dist)
- checker.warn = unittest.mock.Mock()
-
- checker.check_restructuredtext()
-
- checker.warn.assert_called_once_with(unittest.mock.ANY)
- assert 'missing' in checker.warn.call_args[0][0]
-
-
-def test_invalid_empty():
- dist = distutils.dist.Distribution(attrs=dict(
- long_description=""))
- checker = readme_renderer.integration.distutils.Check(dist)
- checker.warn = unittest.mock.Mock()
-
- checker.check_restructuredtext()
-
- checker.warn.assert_called_once_with(unittest.mock.ANY)
- assert 'missing' in checker.warn.call_args[0][0]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/readme_renderer-32.0/tests/test_rst.py
new/readme_renderer-35.0/tests/test_rst.py
--- old/readme_renderer-32.0/tests/test_rst.py 2021-12-13 17:24:51.000000000
+0100
+++ new/readme_renderer-35.0/tests/test_rst.py 2022-04-19 19:31:33.000000000
+0200
@@ -53,3 +53,33 @@
""", stream=warnings) is None
assert '"raw" directive disabled' in warnings.getvalue()
+
+
+def test_rst_empty_file():
+ warnings = io.StringIO()
+ assert render("", stream=warnings) is None
+
+ assert "No content rendered from RST source." in warnings.getvalue()
+
+
+def test_rst_header_only():
+ warnings = io.StringIO()
+ assert render("""
+Header
+======
+""", stream=warnings) is None
+
+ assert "No content rendered from RST source." in warnings.getvalue()
+
+
+def test_header_and_malformed_emits_docutils_warning_only():
+ warnings = io.StringIO()
+ assert render("""
+Header
+======
+
+======
+""", stream=warnings) is None
+
+ assert len(warnings.getvalue().splitlines()) == 1
+ assert "No content rendered from RST source." not in warnings.getvalue()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/readme_renderer-32.0/tox.ini
new/readme_renderer-35.0/tox.ini
--- old/readme_renderer-32.0/tox.ini 2021-12-13 17:24:51.000000000 +0100
+++ new/readme_renderer-35.0/tox.ini 2022-04-19 19:31:33.000000000 +0200
@@ -1,13 +1,23 @@
[tox]
-envlist = py36,py37,py38,py39,pep8,packaging,noextra
+envlist = py37,py38,py39,py310,pep8,packaging,noextra,mypy
+isolated_build = True
[testenv]
deps =
pytest
commands =
- pytest --strict {posargs}
+ pytest --strict-markers {posargs}
extras = md
+[testenv:mypy]
+basepython = python3
+deps =
+ mypy
+ types-bleach
+ types-docutils
+ types-Pygments
+commands = mypy readme_renderer
+
[testenv:pep8]
basepython = python3
deps =