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 <hel@lcp.world>
+
+- 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__ = "ad...@mail.pypi.org"
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("'", '&#x27;')
 
 
-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">&quot;&quot;&quot;This is a 
docstring.&quot;&quot;&quot;</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()
-
-
-@pytest.mark.filterwarnings('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 =

Reply via email to