Add compatibility with Python 3.x.

Review Request #9741 — Created March 5, 2018 and submitted

chipx86
beanbag-docutils
master
16619d3...
beanbag-docutils

This adds compatibility for building docs on both Python 2.7 and 3.x
releases. For the most part, we were in good shape to support both, but
we had a few things we were doing wrong.

The primary issue was that we were explicitly using bytestrings for
configuration items and signal connections for Sphinx. This used to be a
requirement, but it isn't anymore (except for add_crossref_type(),
which needs native strings). We now use Unicode strings everywhere.

In a few places, we were calling legacy iter* functions on dictionaries.
Those have been updated to use six.iter* instead.

The GitHub support was working with byte data coming from a process's
output, which needed to be decoded to a Unicode string.

There was also a legacy import (sphinx.util.compat.Directive), which we
needed to update.

Sphinx 1.7.1 and six are now requirements for the package, ensuring
we have what we need to build, and classifiers were added advertising
the Python version support.

Built a few doc packages using Python 2.7, 3.4, 3.5, and 3.6.

There may still be some lines of code that weren't tested thoroughly,
but the main use cases worked. Also verified that Python 3.x could
import all the modules without errors.

  • 0
  • 0
  • 2
  • 0
  • 2
Description From Last Updated
brennie
  1. 
      
  2. setup.py (Diff revision 1)
     
     

    Missing 3.6

  3. 
      
david
  1. 
      
  2. six should be in the 3rdparty section.

  3. 
      
chipx86
david
  1. Ship It!
  2. 
      
chipx86
Review request changed

Status: Closed (submitted)

Change Summary:

Pushed to master (249bc33)
Loading...