* Update headers/etc. of older packaging PEPs to reflect replacement PEPs
* Infra: Fix lowercase and tweak plural in text for PyPA spec banner
* Add banner to all relevant PEPs pointing to their canonical PyPA specs
Co-authored-by: Brett Cannon <brett@python.org>
As originally discussed in #2692 , this adds a three new custom directives intended to be used at the top of PEPs:
* `pep-banner`, a generic admonition banner that can be subclassed with an arbitrary message,
* `canonical-docs`, which renders a banner linking to a `Final` PEP's canonical documentation/specification.
* `canonical-pypa-spec`, a banner for packaging interoperability PEPs linking to the canonical PyPA specs.
Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
* 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