PEPs (Python Enhancement Proposals) are a special part of the Python programming language. Some were accepted, and some were not. This package implements some PEPs that were rejected, deferred or withdrawn.
A PEP included needs to match these points:
-
It's not a syntax or major API change, or has a simple and clear way to bypass it.
-
It's about code, not governance etc.
-
It can be implemented in pure Python code.
Parts related to the bytecode, C API etc. are not implemented.
PEPs with an * are slightly modified.
- PEP 204 — Range Literals
- PEP 211 — Adding A New Outer Product Operator
- PEP 212 — Loop Counter Iteration
- PEP 259 — Omit printing newline after newline
- PEP 265 — Sorting Dictionaries by Value
- PEP 276 — Simple Iterator for
int
s - PEP 281* – Loop Counter Iteration with
range
andxrange
- PEP 294 — Type Names in the types Module
- PEP 303 — Extend
divmod()
for Multiple Divisors - PEP 313* – Adding Roman Numeral
LiteralsFunctions to Python - PEP 326 — A Case for Top and Bottom Values
- PEP 335* – Overloadable Boolean
OperatorsOperator Functions - PEP 336 — Make
None
callable - PEP 349* – Allow
str()
to returnunicode stringsbytes - PEP 351 — The
freeze
protocol - PEP 416 — Add a
frozendict
builtin type - PEP 535 — Rich comparison chaining
- PEP 559 — Built-in
noop()
- PEP 754 — IEEE 754 Floating Point Special Values
- PEP 3140 –
str(container)
should callstr(item)
, notrepr(item)
Wiki is coming soon!
Quick example:
>>> import rejected_peps as rp
>>> rp.pep(559).noop() # Function call
>>> Min = rp.pep326.Min # Module
>>> Min < 3.14
True
>>> Min == -10, Min == Min
(False, True)
>>> rp.info(416)
pepinfo(number=416, title='Add a frozendict builtin type', status='Rejected', creation='2012-02-29', url='https://peps.python.org/pep-0416/')
>>> rp.SUPPORTED
frozenset({259, 265, ..., 351, 754})
>>>