* `pdb` stores `__return__` and `__exception__`` entries on
arbitrary frames, so that feature needs to be preserved
* Some fast locals proxy operations will implicitly update the
underlying shared mapping on the frame
* Anyone explicitly calling `LocalsToFast` is going to want the
read/write proxy, not any of the read-only options (plus it's
hard to fit an essay in an error message)
* Remove lingering reference to the removed `PyLocals_RefreshViews()`
While reading PEP 3104 to understand the ``nonlocal`` keyword, I found the explanation for why an alternative was not chosen to be vague. Further digging revealed an example for why there was a concern that ``.x`` and ``x`` could be used interchangeably. I linked this example as a footnote to save future readers time from digging to find an example. I hope this will increase comprehension of the PEP for future learners.
Per PEP 600:
```
When this PEP is accepted, the previous manylinux PEPs will receive a final update noting that they are no longer maintained and referring to this PEP.
```
This provides full symetry with build_wheel and allows
a fast path for the frontend to validate the backend metadata,
without needing to build the wheel.
Signed-off-by: Bernát Gábor <gaborjbernat@gmail.com>
See #2, #1385 for context.
This is the RSS generation part, building on PR #1930. It contains the logic for generating RSS
This was originally in #1385 and #1565, split out for ease of review
* 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
See #2, #1385 for context. Superseeds #1565.
This is the minimal core Sphinx support part, adding a bare minimum of useful things to get Sphinx to build and deploy, whilst not affecting the current build system. There is no theming or custom parsing needed to properly deal with PEPs.
- `build.py` - build script
- `conf.py` - Sphinx configuration
- `Makefile` - new targets for Sphinx
- `.gitignore` - add ignores for `venv` and `package` directories
- `contents.rst` - Sphinx page to discover all PEPs
- `deploy-gh-pages.yaml` - builds and deploys to github pages
- `requirements.txt`