[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

feedparser 5.1 with Python 3 support



Hi Carlos,

As part of my work on Ubuntu, I have updated the feedparser package to include
a python3-feedparser binary package.  Along the way, I also upgraded to
feedparser 5.1, and carried over our Ubuntu delta to use dh_python2.  I also
updated the package to compat level 8, and simplified the rules file.  I
understand that these changes may be too radical, but I do think it ultimately
makes supporting Python 3 easier.

I see that you have also updated to 5.1 in DPMT svn, so some of my work
duplicates that, but not too much.  As you may know, feedparser 5.1 supports
Python 3, but let's just say there are a few problems ;) which I've solved in
my package.

 * The test suite has several failures, some of which only show up when
   chardet is installed (as it is a build-dep).  When building upstream 5.1 in
   a virtualenv without chardet, these don't fail.  I disable these tests in a
   quilt patch.  This bug has been reported upstream.

 * Some of the parse_date_rfc822 tests do not overflow as expected by the test
   suite on some platforms.  I disable these tests.  This bug has been
   reported upstream.

 * test_unicode_2 fails in an sbuild because sys.getfilesystemencoding() is
   us-ascii for me at least.  When running the tests in a normal environment
   on upstream 5.1, this passes because the file system encoding is utf-8.
   Anyway, I also disable this test.  This bug has been reported upstream.

 * There are lots of problems running feedparsertest.py in Python 3, so I just
   don't :).  You would have to copy it to some unique place, run it through
   2to3, then arrange to have feedparser/test be findable by it.  It didn't
   seem worth it, but I did test the resulting binary package in a chroot and
   it seems to work.

 * The upstream comes with sgmllib3.py which is a 2to3'd version of Python 2's
   sgmllib.py.  This makes up for the removal of sgmllib from Python 3.  I
   didn't like the solution recommended by upstream to handle this, so I
   install the file as feedparser_sgmllib3.py and quilt patch feedparser.py to
   import that as sgmllib (with proper handling if it can't be found).

 * The upstream 5.1 tarball is missing some data files used during the test
   suite.  I add those back and use a debian/source/include-binaries file to
   make things happy.  This bug has been reported upstream.

 * Funny enough, the python3-feedparser package triggers the
   embedded-feedparser-library lintian warning, which I override.  Once this
   lands, I'll open a bug on lintian to avoid that warning, since it's clearly
   bogus in this case.

I think that's about it.  I'd like to ask you what is the best way to get you
the changes.  I can open a bug and attach a patch to that, or I can stick
something in DPMT svn (e.g. .../feedparser/branches/py3 or somesuch).  What is
your preference?

Cheers,
-Barry

Attachment: signature.asc
Description: PGP signature


Reply to: