Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-feedparser for openSUSE:Factory checked in at 2021-06-14 23:11:22 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-feedparser (Old) and /work/SRC/openSUSE:Factory/.python-feedparser.new.32437 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-feedparser" Mon Jun 14 23:11:22 2021 rev:30 rq:899978 version:6.0.5 Changes: -------- --- /work/SRC/openSUSE:Factory/python-feedparser/python-feedparser.changes 2021-05-01 00:47:18.507289027 +0200 +++ /work/SRC/openSUSE:Factory/.python-feedparser.new.32437/python-feedparser.changes 2021-06-14 23:11:53.184837283 +0200 @@ -1,0 +2,19 @@ +Mon Jun 14 16:04:31 UTC 2021 - Beno??t Monin <benoit.mo...@gmx.fr> + +- update to version 6.0.5: + * Prevent a TypeError crash that may occur when including a + username and password in the feed URL. (#276) + +------------------------------------------------------------------- +Sun Jun 13 19:01:57 UTC 2021 - Beno??t Monin <benoit.mo...@gmx.fr> + +- update to version 6.0.4: + * Prevent a UnicodeDecodeError crash that may occur when the + title element's type attribute exists but is empty. (#277) + * Prevent a UnicodeEncodeError crash that may occur if the URL + contains Unicode characters in the path. (#273) +- additional changes from version 6.0.3: + * Fix an issue with the HTTP request status on Python >= 3.9. +- drop numerical_return_status.patch: fixed upstream + +------------------------------------------------------------------- Old: ---- feedparser-6.0.2.tar.gz numerical_return_status.patch New: ---- feedparser-6.0.5.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-feedparser.spec ++++++ --- /var/tmp/diff_new_pack.EGFdcH/_old 2021-06-14 23:11:53.548837940 +0200 +++ /var/tmp/diff_new_pack.EGFdcH/_new 2021-06-14 23:11:53.552837947 +0200 @@ -19,16 +19,13 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} %define skip_python2 1 Name: python-feedparser -Version: 6.0.2 +Version: 6.0.5 Release: 0 Summary: Universal Feed Parser Module for Python License: BSD-2-Clause Group: Development/Libraries/Python URL: https://github.com/kurtmckee/feedparser Source: https://files.pythonhosted.org/packages/source/f/feedparser/feedparser-%{version}.tar.gz -# PATCH-FIX-UPSTREAM numerical_return_status.patch gh#kurtmckee/feedparser#272/files mc...@suse.com -# Maintain numeric result status code in Python>=3.9 -Patch0: numerical_return_status.patch BuildRequires: %{python_module chardet} BuildRequires: %{python_module setuptools} BuildRequires: %{python_module sgmllib3k} ++++++ feedparser-6.0.2.tar.gz -> feedparser-6.0.5.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-6.0.2/LICENSE new/feedparser-6.0.5/LICENSE --- old/feedparser-6.0.2/LICENSE 2020-09-01 05:42:10.000000000 +0200 +++ new/feedparser-6.0.5/LICENSE 2021-06-13 18:52:57.000000000 +0200 @@ -2,7 +2,7 @@ ----- begin license block ----- -Copyright (C) 2010-2020 Kurt McKee <contac...@kurtmckee.org> +Copyright (C) 2010-2021 Kurt McKee <contac...@kurtmckee.org> Copyright (C) 2002-2008 Mark Pilgrim All rights reserved. @@ -38,7 +38,7 @@ ----- begin license block ----- -Copyright (C) 2010-2020 Kurt McKee <contac...@kurtmckee.org> +Copyright (C) 2010-2021 Kurt McKee <contac...@kurtmckee.org> Copyright (C) 2004-2008 Mark Pilgrim. All rights reserved. Redistribution and use in source (Sphinx ReST) and "compiled" forms (HTML, PDF, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-6.0.2/NEWS new/feedparser-6.0.5/NEWS --- old/feedparser-6.0.2/NEWS 2020-10-25 18:37:10.000000000 +0100 +++ new/feedparser-6.0.5/NEWS 2021-06-14 14:25:31.000000000 +0200 @@ -1,5 +1,18 @@ coming in the next release: +6.0.5 - 14 June 2021 + * Prevent a TypeError crash that may occur when including a + username and password in the feed URL. (#276) + +6.0.4 - 13 June 2021 + * Prevent a UnicodeDecodeError crash that may occur when + the title element's type attribute exists but is empty. (#277) + * Prevent a UnicodeEncodeError crash that may occur if + the URL contains Unicode characters in the path. (#273) + +6.0.3 - 12 June 2021 + * Fix an issue with the HTTP request status on Python >= 3.9. + 6.0.2 - 25 October 2020 * Stop building Python wheels with ``universal=1`` set. (#251) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-6.0.2/PKG-INFO new/feedparser-6.0.5/PKG-INFO --- old/feedparser-6.0.2/PKG-INFO 2020-10-25 18:37:47.110600200 +0100 +++ new/feedparser-6.0.5/PKG-INFO 2021-06-14 14:26:19.157571300 +0200 @@ -1,66 +1,12 @@ Metadata-Version: 2.1 Name: feedparser -Version: 6.0.2 +Version: 6.0.5 Summary: Universal feed parser, handles RSS 0.9x, RSS 1.0, RSS 2.0, CDF, Atom 0.3, and Atom 1.0 feeds Home-page: https://github.com/kurtmckee/feedparser Author: Kurt McKee Author-email: contac...@kurtmckee.org License: BSD-2-Clause Download-URL: https://pypi.python.org/pypi/feedparser -Description: feedparser - Parse Atom and RSS feeds in Python. - - | Copyright 2010-2020 Kurt McKee <contac...@kurtmckee.org> - | Copyright 2002-2008 Mark Pilgrim - - feedparser is open source. See the LICENSE file for more information. - - - Installation - ============ - - feedparser can be installed by running pip: - - .. code-block:: shell - - $ pip install feedparser - - - Documentation - ============= - - The feedparser documentation is available on the web at: - - https://feedparser.readthedocs.io/en/latest/ - - It is also included in its source format, ReST, in the ``docs/`` directory. - To build the documentation you'll need the Sphinx package, which is available at: - - https://www.sphinx-doc.org/ - - You can then build HTML pages using a command similar to: - - .. code-block:: shell - - $ sphinx-build -b html docs/ fpdocs - - This will produce HTML documentation in the ``fpdocs/`` directory. - - - Testing - ======= - - Feedparser has an extensive test suite, powered by tox. To run it, type this: - - .. code-block:: shell - - $ python -m venv venv - $ source venv/bin/activate # or "venv\bin\activate.ps1" on Windows - (venv) $ pip install -r requirements-dev.txt - (venv) $ tox - - This will spawn an HTTP server that will listen on port 8097. The tests will - fail if that port is in use. - Keywords: atom,cdf,feed,parser,rdf,rss Platform: POSIX Platform: Windows @@ -77,3 +23,60 @@ Classifier: Topic :: Text Processing :: Markup :: XML Requires-Python: >=3.6 Description-Content-Type: text/x-rst +License-File: LICENSE + +feedparser - Parse Atom and RSS feeds in Python. + +| Copyright 2010-2021 Kurt McKee <contac...@kurtmckee.org> +| Copyright 2002-2008 Mark Pilgrim + +feedparser is open source. See the LICENSE file for more information. + + +Installation +============ + +feedparser can be installed by running pip: + +.. code-block:: shell + + $ pip install feedparser + + +Documentation +============= + +The feedparser documentation is available on the web at: + + https://feedparser.readthedocs.io/en/latest/ + +It is also included in its source format, ReST, in the ``docs/`` directory. +To build the documentation you'll need the Sphinx package, which is available at: + + https://www.sphinx-doc.org/ + +You can then build HTML pages using a command similar to: + +.. code-block:: shell + + $ sphinx-build -b html docs/ fpdocs + +This will produce HTML documentation in the ``fpdocs/`` directory. + + +Testing +======= + +Feedparser has an extensive test suite, powered by tox. To run it, type this: + +.. code-block:: shell + + $ python -m venv venv + $ source venv/bin/activate # or "venv\bin\activate.ps1" on Windows + (venv) $ pip install -r requirements-dev.txt + (venv) $ tox + +This will spawn an HTTP server that will listen on port 8097. The tests will +fail if that port is in use. + + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-6.0.2/README.rst new/feedparser-6.0.5/README.rst --- old/feedparser-6.0.2/README.rst 2020-10-25 18:36:15.000000000 +0100 +++ new/feedparser-6.0.5/README.rst 2021-06-14 13:58:59.000000000 +0200 @@ -1,6 +1,6 @@ feedparser - Parse Atom and RSS feeds in Python. -| Copyright 2010-2020 Kurt McKee <contac...@kurtmckee.org> +| Copyright 2010-2021 Kurt McKee <contac...@kurtmckee.org> | Copyright 2002-2008 Mark Pilgrim feedparser is open source. See the LICENSE file for more information. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-6.0.2/docs/conf.py new/feedparser-6.0.5/docs/conf.py --- old/feedparser-6.0.2/docs/conf.py 2020-10-25 18:36:08.000000000 +0100 +++ new/feedparser-6.0.5/docs/conf.py 2021-06-13 18:52:57.000000000 +0200 @@ -11,7 +11,7 @@ # project information project = 'feedparser' -copyright = '2010-2020 Kurt McKee, 2004-2008 Mark Pilgrim' +copyright = '2010-2021 Kurt McKee, 2004-2008 Mark Pilgrim' language = 'en' # documentation options diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-6.0.2/docs/license.rst new/feedparser-6.0.5/docs/license.rst --- old/feedparser-6.0.2/docs/license.rst 2020-09-01 05:42:10.000000000 +0200 +++ new/feedparser-6.0.5/docs/license.rst 2021-06-13 18:52:57.000000000 +0200 @@ -3,7 +3,7 @@ Documentation license ===================== -Copyright 2010-2020 Kurt McKee, 2004-2008 Mark Pilgrim. All rights reserved. +Copyright 2010-2021 Kurt McKee, 2004-2008 Mark Pilgrim. All rights reserved. Redistribution and use in source (Sphinx ReST) and "compiled" forms (HTML, PDF, PostScript, RTF and so forth) with or without modification, are permitted diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-6.0.2/feedparser/__init__.py new/feedparser-6.0.5/feedparser/__init__.py --- old/feedparser-6.0.2/feedparser/__init__.py 2020-10-25 18:36:15.000000000 +0100 +++ new/feedparser-6.0.5/feedparser/__init__.py 2021-06-14 14:25:31.000000000 +0200 @@ -1,4 +1,4 @@ -# Copyright 2010-2020 Kurt McKee <contac...@kurtmckee.org> +# Copyright 2010-2021 Kurt McKee <contac...@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # @@ -32,7 +32,7 @@ __author__ = 'Kurt McKee <contac...@kurtmckee.org>' __license__ = 'BSD 2-clause' -__version__ = '6.0.2' +__version__ = '6.0.5' # HTTP "User-Agent" header to send to servers when downloading feeds. # If you are embedding feedparser in a larger application, you should diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-6.0.2/feedparser/api.py new/feedparser-6.0.5/feedparser/api.py --- old/feedparser-6.0.2/feedparser/api.py 2020-09-15 13:49:58.000000000 +0200 +++ new/feedparser-6.0.5/feedparser/api.py 2021-06-14 13:58:59.000000000 +0200 @@ -1,5 +1,5 @@ # The public API for feedparser -# Copyright 2010-2020 Kurt McKee <contac...@kurtmckee.org> +# Copyright 2010-2021 Kurt McKee <contac...@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-6.0.2/feedparser/datetimes/__init__.py new/feedparser-6.0.5/feedparser/datetimes/__init__.py --- old/feedparser-6.0.2/feedparser/datetimes/__init__.py 2020-09-15 13:49:58.000000000 +0200 +++ new/feedparser-6.0.5/feedparser/datetimes/__init__.py 2021-06-13 18:52:57.000000000 +0200 @@ -1,4 +1,4 @@ -# Copyright 2010-2020 Kurt McKee <contac...@kurtmckee.org> +# Copyright 2010-2021 Kurt McKee <contac...@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-6.0.2/feedparser/datetimes/asctime.py new/feedparser-6.0.5/feedparser/datetimes/asctime.py --- old/feedparser-6.0.2/feedparser/datetimes/asctime.py 2020-09-15 13:49:58.000000000 +0200 +++ new/feedparser-6.0.5/feedparser/datetimes/asctime.py 2021-06-13 18:52:57.000000000 +0200 @@ -1,4 +1,4 @@ -# Copyright 2010-2020 Kurt McKee <contac...@kurtmckee.org> +# Copyright 2010-2021 Kurt McKee <contac...@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-6.0.2/feedparser/datetimes/greek.py new/feedparser-6.0.5/feedparser/datetimes/greek.py --- old/feedparser-6.0.2/feedparser/datetimes/greek.py 2020-09-15 13:49:58.000000000 +0200 +++ new/feedparser-6.0.5/feedparser/datetimes/greek.py 2021-06-13 18:52:57.000000000 +0200 @@ -1,4 +1,4 @@ -# Copyright 2010-2020 Kurt McKee <contac...@kurtmckee.org> +# Copyright 2010-2021 Kurt McKee <contac...@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-6.0.2/feedparser/datetimes/hungarian.py new/feedparser-6.0.5/feedparser/datetimes/hungarian.py --- old/feedparser-6.0.2/feedparser/datetimes/hungarian.py 2020-09-15 13:49:58.000000000 +0200 +++ new/feedparser-6.0.5/feedparser/datetimes/hungarian.py 2021-06-13 18:52:57.000000000 +0200 @@ -1,4 +1,4 @@ -# Copyright 2010-2020 Kurt McKee <contac...@kurtmckee.org> +# Copyright 2010-2021 Kurt McKee <contac...@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-6.0.2/feedparser/datetimes/iso8601.py new/feedparser-6.0.5/feedparser/datetimes/iso8601.py --- old/feedparser-6.0.2/feedparser/datetimes/iso8601.py 2020-09-15 13:49:58.000000000 +0200 +++ new/feedparser-6.0.5/feedparser/datetimes/iso8601.py 2021-06-13 18:52:57.000000000 +0200 @@ -1,4 +1,4 @@ -# Copyright 2010-2020 Kurt McKee <contac...@kurtmckee.org> +# Copyright 2010-2021 Kurt McKee <contac...@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-6.0.2/feedparser/datetimes/korean.py new/feedparser-6.0.5/feedparser/datetimes/korean.py --- old/feedparser-6.0.2/feedparser/datetimes/korean.py 2020-09-15 13:49:58.000000000 +0200 +++ new/feedparser-6.0.5/feedparser/datetimes/korean.py 2021-06-13 18:52:57.000000000 +0200 @@ -1,4 +1,4 @@ -# Copyright 2010-2020 Kurt McKee <contac...@kurtmckee.org> +# Copyright 2010-2021 Kurt McKee <contac...@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-6.0.2/feedparser/datetimes/perforce.py new/feedparser-6.0.5/feedparser/datetimes/perforce.py --- old/feedparser-6.0.2/feedparser/datetimes/perforce.py 2020-09-15 13:49:58.000000000 +0200 +++ new/feedparser-6.0.5/feedparser/datetimes/perforce.py 2021-06-13 18:52:57.000000000 +0200 @@ -1,4 +1,4 @@ -# Copyright 2010-2020 Kurt McKee <contac...@kurtmckee.org> +# Copyright 2010-2021 Kurt McKee <contac...@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-6.0.2/feedparser/datetimes/rfc822.py new/feedparser-6.0.5/feedparser/datetimes/rfc822.py --- old/feedparser-6.0.2/feedparser/datetimes/rfc822.py 2020-09-15 13:49:58.000000000 +0200 +++ new/feedparser-6.0.5/feedparser/datetimes/rfc822.py 2021-06-13 18:52:57.000000000 +0200 @@ -1,4 +1,4 @@ -# Copyright 2010-2020 Kurt McKee <contac...@kurtmckee.org> +# Copyright 2010-2021 Kurt McKee <contac...@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-6.0.2/feedparser/datetimes/w3dtf.py new/feedparser-6.0.5/feedparser/datetimes/w3dtf.py --- old/feedparser-6.0.2/feedparser/datetimes/w3dtf.py 2020-09-15 13:49:58.000000000 +0200 +++ new/feedparser-6.0.5/feedparser/datetimes/w3dtf.py 2021-06-13 18:52:57.000000000 +0200 @@ -1,4 +1,4 @@ -# Copyright 2010-2020 Kurt McKee <contac...@kurtmckee.org> +# Copyright 2010-2021 Kurt McKee <contac...@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-6.0.2/feedparser/encodings.py new/feedparser-6.0.5/feedparser/encodings.py --- old/feedparser-6.0.2/feedparser/encodings.py 2020-09-15 13:49:58.000000000 +0200 +++ new/feedparser-6.0.5/feedparser/encodings.py 2021-06-14 13:58:59.000000000 +0200 @@ -1,5 +1,5 @@ # Character encoding routines -# Copyright 2010-2020 Kurt McKee <contac...@kurtmckee.org> +# Copyright 2010-2021 Kurt McKee <contac...@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-6.0.2/feedparser/exceptions.py new/feedparser-6.0.5/feedparser/exceptions.py --- old/feedparser-6.0.2/feedparser/exceptions.py 2020-09-15 13:49:58.000000000 +0200 +++ new/feedparser-6.0.5/feedparser/exceptions.py 2021-06-14 13:58:59.000000000 +0200 @@ -1,5 +1,5 @@ # Exceptions used throughout feedparser -# Copyright 2010-2020 Kurt McKee <contac...@kurtmckee.org> +# Copyright 2010-2021 Kurt McKee <contac...@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-6.0.2/feedparser/html.py new/feedparser-6.0.5/feedparser/html.py --- old/feedparser-6.0.2/feedparser/html.py 2020-09-15 13:49:58.000000000 +0200 +++ new/feedparser-6.0.5/feedparser/html.py 2021-06-14 13:58:59.000000000 +0200 @@ -1,4 +1,4 @@ -# Copyright 2010-2020 Kurt McKee <contac...@kurtmckee.org> +# Copyright 2010-2021 Kurt McKee <contac...@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-6.0.2/feedparser/http.py new/feedparser-6.0.5/feedparser/http.py --- old/feedparser-6.0.2/feedparser/http.py 2020-09-15 13:49:58.000000000 +0200 +++ new/feedparser-6.0.5/feedparser/http.py 2021-06-14 14:25:31.000000000 +0200 @@ -1,4 +1,4 @@ -# Copyright 2010-2020 Kurt McKee <contac...@kurtmckee.org> +# Copyright 2010-2021 Kurt McKee <contac...@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # @@ -78,7 +78,7 @@ host = urllib.parse.urlparse(req.get_full_url())[1] if 'Authorization' not in req.headers or 'WWW-Authenticate' not in headers: return self.http_error_default(req, fp, code, msg, headers) - auth = base64.decodebytes(req.headers['Authorization'].split(' ')[1].encode('utf8')) + auth = base64.decodebytes(req.headers['Authorization'].split(' ')[1].encode()).decode() user, passw = auth.split(':') realm = re.findall('realm="([^"]*)"', headers['WWW-Authenticate'])[0] self.add_password(realm, host, user, passw) @@ -145,12 +145,23 @@ if url_pieces.port: new_pieces[1] = f'{url_pieces.hostname}:{url_pieces.port}' url = urllib.parse.urlunparse(new_pieces) - auth = base64.standard_b64encode(f'{url_pieces.username}:{url_pieces.password}').strip() + auth = base64.standard_b64encode(f'{url_pieces.username}:{url_pieces.password}'.encode()).decode() # iri support if not isinstance(url, bytes): url = convert_to_idn(url) + # Prevent UnicodeEncodeErrors caused by Unicode characters in the path. + bits = [] + for c in url: + try: + c.encode('ascii') + except UnicodeEncodeError: + bits.append(urllib.parse.quote(c)) + else: + bits.append(c) + url = ''.join(bits) + # try to open with urllib2 (to use optional headers) request = _build_urllib2_request(url, agent, ACCEPT_HEADER, etag, modified, referrer, auth, request_headers) opener = urllib.request.build_opener(*tuple(handlers + [_FeedURLHandler()])) @@ -203,7 +214,7 @@ result['href'] = f.url.decode('utf-8', 'ignore') else: result['href'] = f.url - result['status'] = getattr(f, 'status', 200) + result['status'] = getattr(f, 'status', None) or 200 # Stop processing if the server sent HTTP 304 Not Modified. if getattr(f, 'code', 0) == 304: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-6.0.2/feedparser/mixin.py new/feedparser-6.0.5/feedparser/mixin.py --- old/feedparser-6.0.2/feedparser/mixin.py 2020-09-15 13:49:58.000000000 +0200 +++ new/feedparser-6.0.5/feedparser/mixin.py 2021-06-14 13:58:59.000000000 +0200 @@ -1,4 +1,4 @@ -# Copyright 2010-2020 Kurt McKee <contac...@kurtmckee.org> +# Copyright 2010-2021 Kurt McKee <contac...@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # @@ -506,9 +506,7 @@ if base64 and self.contentparams.get('base64', 0): try: output = base64.decodebytes(output.encode('utf8')).decode('utf8') - except binascii.Error: - pass - except binascii.Incomplete: + except (binascii.Error, binascii.Incomplete, UnicodeDecodeError): pass # resolve relative URIs diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-6.0.2/feedparser/namespaces/_base.py new/feedparser-6.0.5/feedparser/namespaces/_base.py --- old/feedparser-6.0.2/feedparser/namespaces/_base.py 2020-09-15 13:49:58.000000000 +0200 +++ new/feedparser-6.0.5/feedparser/namespaces/_base.py 2021-06-13 18:52:57.000000000 +0200 @@ -1,5 +1,5 @@ # Support for the Atom, RSS, RDF, and CDF feed formats -# Copyright 2010-2020 Kurt McKee <contac...@kurtmckee.org> +# Copyright 2010-2021 Kurt McKee <contac...@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-6.0.2/feedparser/namespaces/admin.py new/feedparser-6.0.5/feedparser/namespaces/admin.py --- old/feedparser-6.0.2/feedparser/namespaces/admin.py 2020-09-15 13:49:58.000000000 +0200 +++ new/feedparser-6.0.5/feedparser/namespaces/admin.py 2021-06-13 18:52:57.000000000 +0200 @@ -1,5 +1,5 @@ # Support for the administrative elements extension -# Copyright 2010-2020 Kurt McKee <contac...@kurtmckee.org> +# Copyright 2010-2021 Kurt McKee <contac...@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-6.0.2/feedparser/namespaces/cc.py new/feedparser-6.0.5/feedparser/namespaces/cc.py --- old/feedparser-6.0.2/feedparser/namespaces/cc.py 2020-09-15 13:49:58.000000000 +0200 +++ new/feedparser-6.0.5/feedparser/namespaces/cc.py 2021-06-13 18:52:57.000000000 +0200 @@ -1,5 +1,5 @@ # Support for the Creative Commons licensing extensions -# Copyright 2010-2020 Kurt McKee <contac...@kurtmckee.org> +# Copyright 2010-2021 Kurt McKee <contac...@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-6.0.2/feedparser/namespaces/dc.py new/feedparser-6.0.5/feedparser/namespaces/dc.py --- old/feedparser-6.0.2/feedparser/namespaces/dc.py 2020-09-15 13:49:58.000000000 +0200 +++ new/feedparser-6.0.5/feedparser/namespaces/dc.py 2021-06-13 18:52:57.000000000 +0200 @@ -1,5 +1,5 @@ # Support for the Dublin Core metadata extensions -# Copyright 2010-2020 Kurt McKee <contac...@kurtmckee.org> +# Copyright 2010-2021 Kurt McKee <contac...@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-6.0.2/feedparser/namespaces/georss.py new/feedparser-6.0.5/feedparser/namespaces/georss.py --- old/feedparser-6.0.2/feedparser/namespaces/georss.py 2020-09-15 13:49:58.000000000 +0200 +++ new/feedparser-6.0.5/feedparser/namespaces/georss.py 2021-06-13 18:52:57.000000000 +0200 @@ -1,5 +1,5 @@ # Support for the GeoRSS format -# Copyright 2010-2020 Kurt McKee <contac...@kurtmckee.org> +# Copyright 2010-2021 Kurt McKee <contac...@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-6.0.2/feedparser/namespaces/itunes.py new/feedparser-6.0.5/feedparser/namespaces/itunes.py --- old/feedparser-6.0.2/feedparser/namespaces/itunes.py 2020-09-15 13:49:58.000000000 +0200 +++ new/feedparser-6.0.5/feedparser/namespaces/itunes.py 2021-06-13 18:52:57.000000000 +0200 @@ -1,5 +1,5 @@ # Support for the iTunes format -# Copyright 2010-2020 Kurt McKee <contac...@kurtmckee.org> +# Copyright 2010-2021 Kurt McKee <contac...@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-6.0.2/feedparser/namespaces/mediarss.py new/feedparser-6.0.5/feedparser/namespaces/mediarss.py --- old/feedparser-6.0.2/feedparser/namespaces/mediarss.py 2020-09-15 13:49:58.000000000 +0200 +++ new/feedparser-6.0.5/feedparser/namespaces/mediarss.py 2021-06-13 18:52:57.000000000 +0200 @@ -1,5 +1,5 @@ # Support for the Media RSS format -# Copyright 2010-2020 Kurt McKee <contac...@kurtmckee.org> +# Copyright 2010-2021 Kurt McKee <contac...@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-6.0.2/feedparser/namespaces/psc.py new/feedparser-6.0.5/feedparser/namespaces/psc.py --- old/feedparser-6.0.2/feedparser/namespaces/psc.py 2020-09-15 13:49:59.000000000 +0200 +++ new/feedparser-6.0.5/feedparser/namespaces/psc.py 2021-06-13 18:52:57.000000000 +0200 @@ -1,5 +1,5 @@ # Support for the Podlove Simple Chapters format -# Copyright 2010-2020 Kurt McKee <contac...@kurtmckee.org> +# Copyright 2010-2021 Kurt McKee <contac...@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-6.0.2/feedparser/parsers/loose.py new/feedparser-6.0.5/feedparser/parsers/loose.py --- old/feedparser-6.0.2/feedparser/parsers/loose.py 2020-09-15 13:49:59.000000000 +0200 +++ new/feedparser-6.0.5/feedparser/parsers/loose.py 2021-06-14 13:58:59.000000000 +0200 @@ -1,5 +1,5 @@ # The loose feed parser that interfaces with an SGML parsing library -# Copyright 2010-2020 Kurt McKee <contac...@kurtmckee.org> +# Copyright 2010-2021 Kurt McKee <contac...@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-6.0.2/feedparser/parsers/strict.py new/feedparser-6.0.5/feedparser/parsers/strict.py --- old/feedparser-6.0.2/feedparser/parsers/strict.py 2020-09-15 13:49:59.000000000 +0200 +++ new/feedparser-6.0.5/feedparser/parsers/strict.py 2021-06-14 13:58:59.000000000 +0200 @@ -1,5 +1,5 @@ # The strict feed parser that interfaces with an XML parsing library -# Copyright 2010-2020 Kurt McKee <contac...@kurtmckee.org> +# Copyright 2010-2021 Kurt McKee <contac...@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-6.0.2/feedparser/sanitizer.py new/feedparser-6.0.5/feedparser/sanitizer.py --- old/feedparser-6.0.2/feedparser/sanitizer.py 2020-09-15 13:49:59.000000000 +0200 +++ new/feedparser-6.0.5/feedparser/sanitizer.py 2021-06-14 13:58:59.000000000 +0200 @@ -1,4 +1,4 @@ -# Copyright 2010-2020 Kurt McKee <contac...@kurtmckee.org> +# Copyright 2010-2021 Kurt McKee <contac...@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-6.0.2/feedparser/sgml.py new/feedparser-6.0.5/feedparser/sgml.py --- old/feedparser-6.0.2/feedparser/sgml.py 2020-09-15 13:49:59.000000000 +0200 +++ new/feedparser-6.0.5/feedparser/sgml.py 2021-06-14 13:58:59.000000000 +0200 @@ -1,4 +1,4 @@ -# Copyright 2010-2020 Kurt McKee <contac...@kurtmckee.org> +# Copyright 2010-2021 Kurt McKee <contac...@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-6.0.2/feedparser/urls.py new/feedparser-6.0.5/feedparser/urls.py --- old/feedparser-6.0.2/feedparser/urls.py 2020-09-15 13:49:59.000000000 +0200 +++ new/feedparser-6.0.5/feedparser/urls.py 2021-06-14 13:58:59.000000000 +0200 @@ -1,4 +1,4 @@ -# Copyright 2010-2020 Kurt McKee <contac...@kurtmckee.org> +# Copyright 2010-2021 Kurt McKee <contac...@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-6.0.2/feedparser/util.py new/feedparser-6.0.5/feedparser/util.py --- old/feedparser-6.0.2/feedparser/util.py 2020-09-15 13:49:59.000000000 +0200 +++ new/feedparser-6.0.5/feedparser/util.py 2021-06-14 13:58:59.000000000 +0200 @@ -1,4 +1,4 @@ -# Copyright 2010-2020 Kurt McKee <contac...@kurtmckee.org> +# Copyright 2010-2021 Kurt McKee <contac...@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-6.0.2/feedparser.egg-info/PKG-INFO new/feedparser-6.0.5/feedparser.egg-info/PKG-INFO --- old/feedparser-6.0.2/feedparser.egg-info/PKG-INFO 2020-10-25 18:37:43.000000000 +0100 +++ new/feedparser-6.0.5/feedparser.egg-info/PKG-INFO 2021-06-14 14:26:13.000000000 +0200 @@ -1,66 +1,12 @@ Metadata-Version: 2.1 Name: feedparser -Version: 6.0.2 +Version: 6.0.5 Summary: Universal feed parser, handles RSS 0.9x, RSS 1.0, RSS 2.0, CDF, Atom 0.3, and Atom 1.0 feeds Home-page: https://github.com/kurtmckee/feedparser Author: Kurt McKee Author-email: contac...@kurtmckee.org License: BSD-2-Clause Download-URL: https://pypi.python.org/pypi/feedparser -Description: feedparser - Parse Atom and RSS feeds in Python. - - | Copyright 2010-2020 Kurt McKee <contac...@kurtmckee.org> - | Copyright 2002-2008 Mark Pilgrim - - feedparser is open source. See the LICENSE file for more information. - - - Installation - ============ - - feedparser can be installed by running pip: - - .. code-block:: shell - - $ pip install feedparser - - - Documentation - ============= - - The feedparser documentation is available on the web at: - - https://feedparser.readthedocs.io/en/latest/ - - It is also included in its source format, ReST, in the ``docs/`` directory. - To build the documentation you'll need the Sphinx package, which is available at: - - https://www.sphinx-doc.org/ - - You can then build HTML pages using a command similar to: - - .. code-block:: shell - - $ sphinx-build -b html docs/ fpdocs - - This will produce HTML documentation in the ``fpdocs/`` directory. - - - Testing - ======= - - Feedparser has an extensive test suite, powered by tox. To run it, type this: - - .. code-block:: shell - - $ python -m venv venv - $ source venv/bin/activate # or "venv\bin\activate.ps1" on Windows - (venv) $ pip install -r requirements-dev.txt - (venv) $ tox - - This will spawn an HTTP server that will listen on port 8097. The tests will - fail if that port is in use. - Keywords: atom,cdf,feed,parser,rdf,rss Platform: POSIX Platform: Windows @@ -77,3 +23,60 @@ Classifier: Topic :: Text Processing :: Markup :: XML Requires-Python: >=3.6 Description-Content-Type: text/x-rst +License-File: LICENSE + +feedparser - Parse Atom and RSS feeds in Python. + +| Copyright 2010-2021 Kurt McKee <contac...@kurtmckee.org> +| Copyright 2002-2008 Mark Pilgrim + +feedparser is open source. See the LICENSE file for more information. + + +Installation +============ + +feedparser can be installed by running pip: + +.. code-block:: shell + + $ pip install feedparser + + +Documentation +============= + +The feedparser documentation is available on the web at: + + https://feedparser.readthedocs.io/en/latest/ + +It is also included in its source format, ReST, in the ``docs/`` directory. +To build the documentation you'll need the Sphinx package, which is available at: + + https://www.sphinx-doc.org/ + +You can then build HTML pages using a command similar to: + +.. code-block:: shell + + $ sphinx-build -b html docs/ fpdocs + +This will produce HTML documentation in the ``fpdocs/`` directory. + + +Testing +======= + +Feedparser has an extensive test suite, powered by tox. To run it, type this: + +.. code-block:: shell + + $ python -m venv venv + $ source venv/bin/activate # or "venv\bin\activate.ps1" on Windows + (venv) $ pip install -r requirements-dev.txt + (venv) $ tox + +This will spawn an HTTP server that will listen on port 8097. The tests will +fail if that port is in use. + + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-6.0.2/feedparser.egg-info/SOURCES.txt new/feedparser-6.0.5/feedparser.egg-info/SOURCES.txt --- old/feedparser-6.0.2/feedparser.egg-info/SOURCES.txt 2020-10-25 18:37:44.000000000 +0100 +++ new/feedparser-6.0.5/feedparser.egg-info/SOURCES.txt 2021-06-14 14:26:14.000000000 +0200 @@ -1055,6 +1055,7 @@ tests/wellformed/atom10/entry_title_text_plain.xml tests/wellformed/atom10/entry_title_text_plain_brackets.xml tests/wellformed/atom10/entry_title_type_default.xml +tests/wellformed/atom10/entry_title_type_empty-no-crash.xml tests/wellformed/atom10/entry_title_type_text.xml tests/wellformed/atom10/feed_author_email.xml tests/wellformed/atom10/feed_author_map_author.xml diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-6.0.2/setup.py new/feedparser-6.0.5/setup.py --- old/feedparser-6.0.2/setup.py 2020-09-15 13:49:59.000000000 +0200 +++ new/feedparser-6.0.5/setup.py 2021-06-14 13:58:59.000000000 +0200 @@ -1,4 +1,4 @@ -# Copyright 2010-2020 Kurt McKee <contac...@kurtmckee.org> +# Copyright 2010-2021 Kurt McKee <contac...@kurtmckee.org> # Copyright 2002-2008 Mark Pilgrim # All rights reserved. # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-6.0.2/tests/runtests.py new/feedparser-6.0.5/tests/runtests.py --- old/feedparser-6.0.2/tests/runtests.py 2020-09-15 13:49:59.000000000 +0200 +++ new/feedparser-6.0.5/tests/runtests.py 2021-06-14 14:25:31.000000000 +0200 @@ -40,6 +40,7 @@ import threading import time import unittest +import urllib.error import warnings import xml.sax import zlib @@ -404,6 +405,18 @@ r = feedparser.api._open_resource(s, '', '', '', '', [], {}, {}) self.assertEqual(s, r) + def test_http_client_ascii_unicode_encode_error(self): + """Confirm that a Unicode character doesn't cause a UnicodeEncodeError crash.""" + url = 'https://0.0.0.0/??' + with self.assertRaises(urllib.error.URLError): + feedparser.api._open_resource(url, '', '', '', '', [], {}, {}) + + def test_http_client_basic_auth_type_error(self): + """Confirm an in-URL username/password doesn't cause a TypeError.""" + url = 'https://username@password@0.0.0.0/feed' + with self.assertRaises(urllib.error.URLError): + feedparser.api._open_resource(url, '', '', '', '', [], {}, {}) + def make_safe_uri_test(rel, expect, doc): def fn(self): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feedparser-6.0.2/tests/wellformed/atom10/entry_title_type_empty-no-crash.xml new/feedparser-6.0.5/tests/wellformed/atom10/entry_title_type_empty-no-crash.xml --- old/feedparser-6.0.2/tests/wellformed/atom10/entry_title_type_empty-no-crash.xml 1970-01-01 01:00:00.000000000 +0100 +++ new/feedparser-6.0.5/tests/wellformed/atom10/entry_title_type_empty-no-crash.xml 2021-06-13 18:52:57.000000000 +0200 @@ -0,0 +1,9 @@ +<!-- +Description: entry title type='' -- no base64/unicodedecodeerror crash +Expect: entries[0]['title'] == 'evil' +--> +<feed xmlns="http://www.w3.org/2005/Atom"> +<entry> + <title type="">evil</title> +</entry> +</feed>