* Add PEP 0 parser
* Add PEP 0 writer
* Add PEP 0 generator and authors override
* Add/update build and run
* Simplify `create_index_file`
* Special status handling
* Add constants for PEP related magic strings
* Prefer checking on class
* Add PEP.hide_status, use constants
* Remove comment from 2008 (current method works fine)
* Clarify intent of for-else loop
* Hook in to Sphinx (oops, missed when splitting out this PR)
* Rename AUTHORS.csv for clarity
* Sort and strip spaces
* Prefer `authors_overrides` name
* Add pep_0_errors.py
* Move author_sort_by to writer
* PEP init misc
* Split out Author
* Drop pep_0 prefix
* Pass title length as an argument
* Add constants.py to hold global type / status values
* Capitalise constants
* Capitalise constants
* Update PEP classification algorithm
* Extract static methods to module level
* Add emit_text, emit_pep_row
* Use constants in writer.py
* Sort imports
* Sort constants
* Fix sorting in historical and dead PEPs
* Extract static methods to module level
* Extract static methods to module level (parser.py
* Make Author a NamedTuple
* Fix author duplication bug with NamedTuples
* Revert to old PEP classification algorithm
* Define PEP equality
See #2, #1385 for context. Superseeds #1566.
This is the docutils parsing, transforms and writing part, building on PR #1930. It contains a pseudo-package, `sphinx_pep_extensions`, which itself contains:
### Docutils parsing:
- `PEPParser` - collates transforms and interfaces with Sphinx core
- `PEPRole` - deals with :PEP:`blah` in RST source
### Docutils transforms:
- `PEPContents` (Creates table of contents without page title)
- `PEPFooter` (Dels with footnotes, link to source, last modified commit)
- `PEPHeaders` (Parses RFC2822 headers)
- `PEPTitle` - Creates document title from PEP headers
- `PEPZero` - Masks email addresses and creates links to PEP numbers from tables in `pep-0000.rst`
### Docutils HTML output:
- `PEPTranslator` - Overrides to the default HTML translator to enable better matching of the current PEP styles