Python Enhancement Proposals
Go to file
Ned Deily 465902c65b
Do not forget to update the bug tracker for a new branch.
2020-05-18 23:08:27 -04:00
.github
pep-0001
pep-0418
pep-0426
pep-0433
pep-0446
pep-0505
pep-0532
pep-0605
pep0
.gitignore
.travis.yml
CODE_OF_CONDUCT.md
CONTRIBUTING.rst
Makefile
PyRSS2Gen.py
README.rst
deploy.bash
docutils.conf
genpepindex.py
pep-0001-process_flow.png
pep-0001.txt
pep-0002.txt
pep-0003.txt
pep-0004.txt
pep-0005.txt
pep-0006.txt
pep-0007.txt
pep-0008.txt PEP 8: Replace Yes/No with Correct/Wrong and unify formatting (#1342) 2020-04-01 09:34:28 -07:00
pep-0009.txt
pep-0010.txt
pep-0011.txt
pep-0012.rst
pep-0013.rst Update pep-0013.rst (#1365) 2020-04-14 08:54:33 -07:00
pep-0020.txt Add the original Zen (Way) of Python link (#1313) 2020-02-20 15:50:16 -08:00
pep-0042.txt
pep-0100.txt
pep-0101.txt Do not forget to update the bug tracker for a new branch. 2020-05-18 23:08:27 -04:00
pep-0102.txt
pep-0103.txt
pep-0160.txt
pep-0200.txt
pep-0201.txt
pep-0202.txt
pep-0203.txt
pep-0204.txt
pep-0205.txt
pep-0206.txt
pep-0207.txt
pep-0208.txt
pep-0209.txt
pep-0210.txt
pep-0211.txt
pep-0212.txt
pep-0213.txt
pep-0214.txt
pep-0215.txt
pep-0216.txt
pep-0217.txt
pep-0218.txt
pep-0219.txt
pep-0220.txt
pep-0221.txt
pep-0222.txt
pep-0223.txt
pep-0224.txt
pep-0225.txt
pep-0226.txt
pep-0227.txt
pep-0228.txt
pep-0229.txt
pep-0230.txt
pep-0231.txt
pep-0232.txt
pep-0233.txt
pep-0234.txt
pep-0235.txt
pep-0236.txt
pep-0237.txt
pep-0238.txt
pep-0239.txt
pep-0240.txt
pep-0241.txt
pep-0242.txt
pep-0243.txt
pep-0244.txt
pep-0245.txt
pep-0246.txt
pep-0247.txt
pep-0248.txt
pep-0249.txt
pep-0250.txt
pep-0251.txt
pep-0252.txt
pep-0253.txt
pep-0254.txt
pep-0255.txt
pep-0256.txt
pep-0257.txt
pep-0258.txt
pep-0259.txt
pep-0260.txt
pep-0261.txt
pep-0262.txt
pep-0263.txt
pep-0264.txt
pep-0265.txt
pep-0266.txt
pep-0267.txt
pep-0268.txt
pep-0269.txt
pep-0270.txt
pep-0271.txt
pep-0272.txt
pep-0273.txt
pep-0274.txt
pep-0275.txt
pep-0276.txt
pep-0277.txt
pep-0278.txt
pep-0279.txt
pep-0280.txt
pep-0281.txt
pep-0282.txt
pep-0283.txt
pep-0284.txt
pep-0285.txt
pep-0286.txt
pep-0287.txt
pep-0288.txt
pep-0289.txt
pep-0290.txt
pep-0291.txt
pep-0292.txt
pep-0293.txt
pep-0294.txt
pep-0295.txt
pep-0296.txt
pep-0297.txt
pep-0298.txt
pep-0299.txt
pep-0301.txt
pep-0302.txt
pep-0303.txt
pep-0304.txt
pep-0305.txt
pep-0306.txt
pep-0307.txt
pep-0308.txt
pep-0309.txt
pep-0310.txt
pep-0311.txt
pep-0312.txt
pep-0313.txt
pep-0314.txt
pep-0315.txt
pep-0316.txt
pep-0317.txt
pep-0318.txt
pep-0319.txt
pep-0320.txt
pep-0321.txt
pep-0322.txt
pep-0323.txt
pep-0324.txt
pep-0325.txt
pep-0326.txt
pep-0327.txt
pep-0328.txt
pep-0329.txt
pep-0330.txt
pep-0331.txt
pep-0332.txt
pep-0333.txt
pep-0334.txt
pep-0335.txt
pep-0336.txt
pep-0337.txt
pep-0338.txt
pep-0339.txt
pep-0340.txt
pep-0341.txt
pep-0342.txt
pep-0343.txt
pep-0344.txt
pep-0345.txt
pep-0346.txt
pep-0347.txt
pep-0348.txt
pep-0349.txt Reject PEP 349: Outdated by Python 3 (#1391) 2020-05-04 09:57:07 -07:00
pep-0350.txt
pep-0351.txt
pep-0352.txt
pep-0353.txt
pep-0354.txt
pep-0355.txt
pep-0356.txt
pep-0357.txt
pep-0358.txt
pep-0359.txt
pep-0360.txt
pep-0361.txt
pep-0362.txt
pep-0363.txt
pep-0364.txt
pep-0365.txt
pep-0366.txt
pep-0367.txt
pep-0368.txt
pep-0369.txt
pep-0370.txt
pep-0371.txt
pep-0372.txt
pep-0373.txt PEP 373: Add 2.7.18 announcement link for reference. 2020-04-20 22:54:29 -05:00
pep-0374.txt
pep-0375.txt
pep-0376.txt clarify status of implmentation notes in PEP 376 (#1307) 2020-02-24 13:23:09 +00:00
pep-0377.txt
pep-0378.txt
pep-0379.txt
pep-0380.txt
pep-0381.txt
pep-0382.txt
pep-0383.txt
pep-0384.txt PEP 384: Update PyType_Spec struct per bpo-15140 (#1354) 2020-04-01 13:35:58 -07:00
pep-0385.txt
pep-0386.txt
pep-0387.txt
pep-0389.txt
pep-0390.txt
pep-0391.txt
pep-0392.txt
pep-0393.txt
pep-0394.txt
pep-0395.txt
pep-0396.txt
pep-0397.txt
pep-0398.txt
pep-0399.txt
pep-0400.txt
pep-0401.txt
pep-0402.txt
pep-0403.txt
pep-0404.txt
pep-0405.txt Removed dead links to Google Code Search (#1272) 2020-01-10 18:03:32 +11:00
pep-0406.txt
pep-0407.txt
pep-0408.txt
pep-0409.txt
pep-0410.txt
pep-0411.txt
pep-0412.txt
pep-0413.txt
pep-0414.txt
pep-0415.txt
pep-0416.txt
pep-0417.txt
pep-0418.txt
pep-0419.txt
pep-0420.txt
pep-0421.txt
pep-0422.txt
pep-0423.txt
pep-0424.txt
pep-0425.txt
pep-0426.txt
pep-0427.txt
pep-0428.txt
pep-0429.txt PEP 429: Python 3.4 is EOL, PEP status is final (#1374) 2020-04-21 14:04:50 -07:00
pep-0430.txt
pep-0431.txt PEP 431: Superseded by PEP 615 (#1404) 2020-05-18 14:33:07 +02:00
pep-0432.txt
pep-0433.txt
pep-0434.txt
pep-0435.txt
pep-0436.txt
pep-0437.txt
pep-0438.txt
pep-0439.txt
pep-0440.txt
pep-0441.txt
pep-0442.txt
pep-0443.txt
pep-0444.txt
pep-0445.txt
pep-0446.txt
pep-0447.txt
pep-0448.txt
pep-0449.txt
pep-0450.txt
pep-0451.txt
pep-0452.txt
pep-0453.txt
pep-0454.txt
pep-0455.txt
pep-0456.txt PEP-456: fix typo (#1258) 2019-12-19 00:58:18 +11:00
pep-0457.txt PEP 457: Mark as Final -- there's nothing left to do here now PEP 570 is accepted (#1223) 2019-11-08 13:56:29 -08:00
pep-0458-1.png PEP 458: fix technical choices and remove ambiguity (#1203) 2019-12-02 13:42:40 -08:00
pep-0458.txt PEP 458: correct spelling of 'infrastucture' (#1329) 2020-03-12 11:46:26 +11:00
pep-0459.txt
pep-0460.txt
pep-0461.txt
pep-0462.txt
pep-0463.txt
pep-0464.txt
pep-0465.txt
pep-0466.txt
pep-0467.txt
pep-0468.txt
pep-0469.txt
pep-0470.txt
pep-0471.txt
pep-0472.txt
pep-0473.txt
pep-0474.txt
pep-0475.txt
pep-0476.txt
pep-0477.txt
pep-0478.txt
pep-0479.txt
pep-0480-1.png
pep-0480.txt PEP 458: update list of authors (#1295) 2020-02-05 04:57:22 +11:00
pep-0481.txt
pep-0482.txt PEP 482: Fix other occurrences of 'parametriz' 2020-02-24 20:20:33 -08:00
pep-0483.txt Remove reference to implicitly Optional parameters (#1345) 2020-03-29 09:07:30 +11:00
pep-0484.txt PEP 484: Fix other occurrences of 'parametriz' 2020-02-24 20:21:41 -08:00
pep-0485.txt
pep-0486.txt
pep-0487.txt typo fix (#1348) 2020-03-30 06:11:00 +11:00
pep-0488.txt
pep-0489.txt
pep-0490.txt
pep-0491.txt
pep-0492.txt
pep-0493.txt
pep-0494.txt 3.7.6 and 3.6.10 actuals 2019-12-19 02:32:17 -05:00
pep-0495-daylightsavings.png
pep-0495-fold-2.png
pep-0495-fold.svg
pep-0495-gap.png
pep-0495-gap.svg
pep-0495.txt
pep-0496.txt
pep-0497.txt
pep-0498.txt
pep-0499.txt PEP 499: Mark as deferred until 3.10 (#1328) 2020-03-14 14:36:57 +10:00
pep-0500.txt
pep-0501.txt
pep-0502.txt
pep-0503.txt Clarify that the CDATA for a repo index should match the project name, not the normalized name (#1324) 2020-03-03 10:19:37 -08:00
pep-0504.txt
pep-0505.rst Update pep-0505.rst (#1370) 2020-04-15 20:22:00 -07:00
pep-0506.txt
pep-0507.txt
pep-0508.txt PEP 508: Add missing comma to grammar test code (#1250) 2019-12-07 14:45:38 +11:00
pep-0509.txt
pep-0510.txt
pep-0511.txt
pep-0512.txt
pep-0513.txt
pep-0514.txt
pep-0515.txt
pep-0516.txt
pep-0517.txt
pep-0518.txt Mark PEP 518 as Final (#1358) 2020-04-06 08:24:22 +10:00
pep-0519.txt
pep-0520.txt
pep-0521.txt
pep-0522.txt
pep-0523.txt
pep-0524.txt
pep-0525-1.png
pep-0525.txt
pep-0526.txt
pep-0527.txt
pep-0528.txt
pep-0529.txt
pep-0530.txt
pep-0531.txt
pep-0532.txt
pep-0533.txt Defer PEP 533 as requested by Yury 2019-11-12 11:18:39 -08:00
pep-0534.txt PEP 534: Mark as Deferred (GH-1327) 2020-03-11 11:49:57 +01:00
pep-0535.txt
pep-0536.txt
pep-0537.txt 3.7.7 released 2020-03-10 11:21:01 -04:00
pep-0538.txt
pep-0539.txt
pep-0540.txt
pep-0541.txt
pep-0542.txt
pep-0543.rst
pep-0544.txt
pep-0545.txt Fixed punctuation, letter case in brand name. (#1232) 2019-11-12 12:58:13 -08:00
pep-0546.txt
pep-0547.rst
pep-0548.rst
pep-0549.rst
pep-0550-hamt_vs_dict-v2.png
pep-0550-hamt_vs_dict.png
pep-0550-lookup_hamt.png
pep-0550.rst
pep-0551.rst
pep-0552.rst
pep-0553.rst Add missing return None in except clause to pseudo-code. (#1205) 2019-12-02 13:26:02 -08:00
pep-0554.rst PEP 554: push the target release back. (#1394) 2020-05-06 14:04:21 -06:00
pep-0555.rst
pep-0556.rst
pep-0557.rst
pep-0558.rst PEP 558: Update proposed C API (#1302) 2020-02-16 22:10:19 +10:00
pep-0559.rst
pep-0560.rst
pep-0561.rst
pep-0562.rst
pep-0563.rst Make `from __future__ import annotations` the default in Python 3.10 (#1371) 2020-05-19 00:32:25 +02:00
pep-0564.rst
pep-0565.rst
pep-0566.rst
pep-0567.rst PEP 567: typo in pseudocode of ContextVar.reset (#1262) 2019-12-23 11:19:34 -08:00
pep-0568.rst
pep-0569.rst [pep-0569] Actual date for 3.8.3 2020-05-14 10:35:50 +02:00
pep-0570.rst
pep-0571.rst
pep-0572.rst
pep-0573.rst Accept PEP 573 2020-04-04 21:42:12 +02:00
pep-0574.rst
pep-0575.rst
pep-0576.rst
pep-0577.rst
pep-0578.rst
pep-0579.rst PEP 579: Accept (with a reminder on informational PEPs) (#1233) 2019-11-19 10:12:42 -08:00
pep-0580.rst
pep-0581.rst PEP 581/588: Discussions to: core-workflow on Discourse (#1395) 2020-05-06 11:21:34 -07:00
pep-0582.rst
pep-0583.rst
pep-0584.rst PEP 584: Add info regarding Mapping/MutableMapping (#1331) 2020-03-14 13:03:12 -07:00
pep-0585.rst [pep-0585] Acknowledge Guido for implementing the PEP 2020-04-19 12:39:56 +02:00
pep-0586.rst
pep-0587.rst
pep-0588.rst PEP 581/588: Discussions to: core-workflow on Discourse (#1395) 2020-05-06 11:21:34 -07:00
pep-0589.rst PEP 589: Fix typos (#1238) 2019-11-20 13:47:39 +01:00
pep-0590.rst
pep-0591.rst
pep-0592.rst Fix a typo in PEP 592 2020-04-24 10:28:03 -07:00
pep-0593.rst PEP 593: Set Python-Version: 3.9 (#1234) 2019-11-13 13:33:48 +00:00
pep-0594.rst PEP 594: Mention removing uu_codec (#1244) 2020-02-24 20:33:49 -08:00
pep-0595.rst
pep-0596.rst Actual date for 3.9.0a6 2020-04-28 16:54:17 +02:00
pep-0597.rst PEP 597 3rd edition. (#1368) 2020-04-17 08:34:21 +09:00
pep-0598.rst
pep-0599.rst PEP 599: Update status to Final (GH-1381) 2020-04-23 20:44:21 +01:00
pep-0600.rst Accept PEP 600 (#1248) 2019-12-04 23:24:33 +00:00
pep-0601.txt
pep-0602-example-release-calendar.png
pep-0602-example-release-calendar.pptx
pep-0602-overlapping-support-matrix.png
pep-0602-overlapping-support-matrix.pptx
pep-0602.rst
pep-0603-hamt_vs_dict.png
pep-0603.rst
pep-0604.rst Pep 0604 : Various updates; GenericAlias impact, and rewrite objections section (#1194) 2019-12-02 13:23:33 -08:00
pep-0605-example-release-calendar.png
pep-0605-overlapping-support-matrix.png
pep-0605.rst
pep-0606.rst Reject PEPs 606 and 608 as per SC decision (#1246) 2019-12-03 16:04:38 -08:00
pep-0607.rst
pep-0608.rst Reject PEPs 606 and 608 as per SC decision (#1246) 2019-12-03 16:04:38 -08:00
pep-0609.rst
pep-0610.rst PEP 610: Provisional Acceptance (#1330) 2020-03-13 13:36:46 -07:00
pep-0611.rst PEP 611: relax hard limits and make 1 million a soft limit. Include recursion depth in limits. (GH-1279) 2020-01-29 11:31:28 +00:00
pep-0612.rst PEP 612: Guido as sponsor, and two minor edits (#1301) 2020-02-06 21:18:37 -08:00
pep-0613.rst Update PEP 0613 status to Accepted (#1291) 2020-01-31 15:38:40 -08:00
pep-0614.rst PEP 614: Accepted by SC 2020-03-03 14:20:05 -08:00
pep-0615.rst PEP 615: Mark as accepted (#1376) 2020-04-20 14:35:54 -07:00
pep-0616.rst PEP 616: How to teach this (#1377) 2020-04-21 14:04:17 -07:00
pep-0617.rst PEP 617: Fix citation for Medeiros ([2]) (#1401) 2020-05-11 14:34:47 -07:00
pep-0618.rst PEP 618: Second Draft (#1399) 2020-05-10 08:31:47 -07:00
pep-0628.txt
pep-0666.txt
pep-0754.txt
pep-0801.rst
pep-3000.txt
pep-3001.txt
pep-3002.txt
pep-3003.txt
pep-3099.txt
pep-3100.txt
pep-3101.txt
pep-3102.txt
pep-3103.txt
pep-3104.txt
pep-3105.txt
pep-3106.txt
pep-3107.txt
pep-3108.txt
pep-3109.txt
pep-3110.txt
pep-3111.txt
pep-3112.txt
pep-3113.txt
pep-3114.txt
pep-3115.txt
pep-3116.txt
pep-3117.txt
pep-3118.txt
pep-3119.txt
pep-3120.txt
pep-3121.txt
pep-3122.txt
pep-3123.txt
pep-3124.txt
pep-3125.txt
pep-3126.txt
pep-3127.txt
pep-3128.txt
pep-3129.txt
pep-3130.txt
pep-3131.txt
pep-3132.txt Fix example description (#1293) 2020-02-03 20:50:41 +11:00
pep-3133.txt
pep-3134.txt
pep-3135.txt
pep-3136.txt
pep-3137.txt
pep-3138.txt
pep-3139.txt
pep-3140.txt
pep-3141.txt
pep-3142.txt
pep-3143.txt
pep-3144.txt
pep-3145.txt
pep-3146.txt
pep-3147-1.dia
pep-3147-1.png
pep-3147.txt
pep-3148.txt
pep-3149.txt
pep-3150.txt
pep-3151.txt
pep-3152.txt
pep-3153.txt
pep-3154.txt PEP 3154: fix typo (#1338) 2020-03-22 21:51:49 -07:00
pep-3155.txt
pep-3156.txt
pep-3333.txt
pep-8000.rst
pep-8001.rst
pep-8002.rst
pep-8010.rst
pep-8011.rst
pep-8012.rst
pep-8013.rst
pep-8014.rst
pep-8015.rst
pep-8016.rst
pep-8100.rst
pep-8101.rst PEP-8101: Results (#1257) 2019-12-16 07:06:45 -08:00
pep.css
pep2html.py
pep2pyramid.py
pep2rss.py
pyramid-pep-template
roman.py
scan-ops.py
style.css

README.rst

Python Enhancement Proposals
============================

.. image:: https://travis-ci.org/python/peps.svg?branch=master
    :target: https://travis-ci.org/python/peps

The PEPs in this repo are published automatically on the web at
http://www.python.org/dev/peps/.  To learn more about the purpose of
PEPs and how to go about writing a PEP, please start reading at PEP 1
(``pep-0001.txt`` in this repo).  Note that PEP 0, the index PEP, is
now automatically generated, and not committed to the repo.


Contributing to PEPs
====================

See the `Contributing Guidelines <./CONTRIBUTING.rst>`_.


reStructuredText for PEPs
=========================

Original PEP source should be written in reStructuredText format,
which is a constrained version of plaintext, and is described in
PEP 12.  Older PEPs were often written in a more mildly restricted
plaintext format, as described in PEP 9.  The ``pep2html.py``
processing and installation script knows how to produce the HTML
for either PEP format.

For processing reStructuredText format PEPs, you need the docutils
package, which is available from `PyPI <http://pypi.python.org>`_.
If you have pip, ``pip install docutils`` should install it.


Generating the PEP Index
========================

PEP 0 is automatically generated based on the metadata headers in other
PEPs. The script handling this is ``genpepindex.py``, with supporting
libraries in the ``pep0`` directory.


Checking PEP formatting and rendering
=====================================

Do not commit changes with bad formatting.  To check the formatting of
a PEP, use the Makefile.  In particular, to generate HTML for PEP 999,
your source code should be in ``pep-0999.rst`` and the HTML will be
generated to ``pep-0999.html`` by the command ``make pep-0999.html``.
The default Make target generates HTML for all PEPs.

If you don't have Make, use the ``pep2html.py`` script directly.


Generating HTML for python.org
==============================

python.org includes its own helper modules to render PEPs as HTML, with
suitable links back to the source pages in the version control repository.

These can be found at https://github.com/python/pythondotorg/tree/master/peps

When making changes to the PEP management process that may impact python.org's
rendering pipeline:

* Clone the python.org repository from https://github.com/python/pythondotorg/
* Get set up for local python.org development as per
  https://pythondotorg.readthedocs.io/install.html#manual-setup
* Adjust ``PEP_REPO_PATH`` in ``pydotorg/settings/local.py`` to refer to your
  local clone of the PEP repository
* Run ``./manage.py generate_pep_pages`` as described in
  https://pythondotorg.readthedocs.io/pep_generation.html