Skip to content

Commit 0fa8fb4

Browse files
authored
Merge branch 'main' into psrt-membership
2 parents ffab026 + 8851590 commit 0fa8fb4

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+6597
-1278
lines changed

.github/CODEOWNERS

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -679,6 +679,13 @@ peps/pep-0800.rst @JelleZijlstra
679679
peps/pep-0801.rst @warsaw
680680
peps/pep-0802.rst @AA-Turner
681681
peps/pep-0803.rst @encukou
682+
peps/pep-0804.rst @pradyunsg
683+
# ...
684+
peps/pep-0806.rst @JelleZijlstra
685+
peps/pep-0807.rst @dstufft
686+
# ...
687+
peps/pep-0809.rst @zooba
688+
peps/pep-0810.rst @pablogsal @DinoV @Yhg1s
682689
peps/pep-0811.rst @sethmlarson @gpshead
683690
# ...
684691
peps/pep-2026.rst @hugovk

.github/workflows/lint.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424
persist-credentials: false
2525

2626
- name: Set up Python 3
27-
uses: actions/setup-python@v5
27+
uses: actions/setup-python@v6
2828
with:
2929
python-version: "3.x"
3030

.github/workflows/render.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ jobs:
3232
fetch-depth: 0 # fetch all history so that last modified date-times are accurate
3333

3434
- name: Set up Python ${{ matrix.python-version }}
35-
uses: actions/setup-python@v5
35+
uses: actions/setup-python@v6
3636
with:
3737
python-version: ${{ matrix.python-version }}
3838
cache: pip

.github/workflows/test.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ jobs:
3030
fail-fast: false
3131
matrix:
3232
python-version:
33-
- "3.9"
3433
- "3.10"
3534
- "3.11"
3635
- "3.12"
@@ -47,7 +46,7 @@ jobs:
4746
persist-credentials: false
4847

4948
- name: Set up Python ${{ matrix.python-version }}
50-
uses: actions/setup-python@v5
49+
uses: actions/setup-python@v6
5150
with:
5251
python-version: ${{ matrix.python-version }}
5352
allow-prereleases: true

.ruff.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
output-format = "full"
2-
target-version = "py39"
2+
target-version = "py310"
33

44
[lint]
55
ignore = [

peps/pep-0011.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ aarch64-pc-windows-msvc Steve Dower
124124
arm64-apple-ios iOS on device Russell Keith-Magee, Ned Deily
125125
arm64-apple-ios-simulator iOS on M1 macOS simulator Russell Keith-Magee, Ned Deily
126126
armv7l-unknown-linux-gnueabihf 32-bit Raspberry Pi OS, gcc Gregory P. Smith
127+
aarch64-unknown-linux-gnu 64-bit Raspberry Pi OS, gcc Savannah Ostrowski
127128
powerpc64le-unknown-linux-gnu glibc, clang Victor Stinner
128129

129130
glibc, gcc Victor Stinner

peps/pep-0013.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -347,6 +347,7 @@ History of council elections
347347
* December 2022: :pep:`8104`
348348
* December 2023: :pep:`8105`
349349
* December 2024: :pep:`8106`
350+
* December 2025: :pep:`8107`
350351

351352

352353
History of amendments

peps/pep-0101.rst

Lines changed: 13 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -639,7 +639,7 @@ permissions.
639639
The script will also sign any remaining files that were not
640640
signed with Sigstore until this point. Again, if this happens,
641641
do use your ``@python.org`` address for this process. More info:
642-
https://www.python.org/download/sigstore/
642+
https://www.python.org/downloads/metadata/sigstore/
643643

644644
- In case the CDN already cached a version of the Downloads page
645645
without the files present, you can invalidate the cache using::
@@ -648,8 +648,8 @@ permissions.
648648

649649
- If this is a **final** release:
650650

651-
- Add the new version to the *Python Documentation by Version*
652-
page ``https://www.python.org/doc/versions/`` and
651+
- Add the new version to the `"Python documentation by version"
652+
page <https://www.python.org/doc/versions/>`__ and
653653
remove the current version from any 'in development' section.
654654

655655
- For 3.X.Y, edit all the previous X.Y releases' page(s) to
@@ -666,21 +666,14 @@ permissions.
666666
Note: Python 3.x.(y-1) has been superseded by
667667
`Python 3.x.y </download/releases/3.x.y/>`_.
668668

669-
- Update the "Current Pre-release Testing Versions web page".
670-
671-
There's a page that lists all the currently-in-testing versions
672-
of Python:
673-
674-
* https://www.python.org/download/pre-releases/
675-
676-
Every time you make a release, one way or another you'll
677-
have to update this page:
669+
- Update the `"Current pre-release testing versions" page
670+
<https://www.python.org/download/pre-releases/>`__.
678671

679672
- If you're releasing a version before *3.x.0*,
680-
you should add it to this page, removing the previous pre-release
673+
add it to this page, removing the previous pre-release
681674
of version *3.x* as needed.
682675

683-
- If you're releasing *3.x.0 final*, you need to remove the pre-release
676+
- If you're releasing *3.x.0 final*, remove the pre-release
684677
version from this page.
685678

686679
This is in the "Pages" category on the Django-based website, and finding
@@ -690,15 +683,13 @@ permissions.
690683
page itself. So you can simply follow the link above, click on the
691684
"Edit this page" link, and make your changes as needed. How convenient!
692685

693-
- If appropriate, update the "Python Documentation by Version" page:
694-
695-
* https://www.python.org/doc/versions/
686+
- If appropriate, update the `"Python documentation by version" page
687+
<https://www.python.org/doc/versions/>`__.
696688

697689
This lists all releases of Python by version number and links to their
698-
static (not built daily) online documentation. There's a list at the
699-
bottom of in-development versions, which is where all alphas/betas/RCs
700-
should go. And yes you should be able to click on the link above then
701-
press the shiny, exciting "Edit this page" button.
690+
static (not built daily) online documentation. There's a link at the
691+
bottom to the in-development version.
692+
And yes you can press the shiny, exciting "Edit this page" button.
702693

703694
- Write the announcement on `discuss.python.org`_. This is the
704695
fuzzy bit because not much can be automated. You can use an earlier
@@ -844,7 +835,7 @@ else does them. Some of those tasks include:
844835

845836
* mailing lists (python-dev, python-list, python-announcements)
846837

847-
* Python Dev blog
838+
* `Python Insider blog <https://blog.python.org>`_
848839

849840
- Enjoy your retirement and bask in the glow of a job well done!
850841

peps/pep-0351.rst

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ It is conceivable that third party objects also have similar mutable
3838
and immutable counterparts, and it would be useful to have a standard
3939
protocol for conversion of such objects.
4040

41-
sets.Set objects expose a "protocol for automatic conversion to
42-
immutable" so that you can create sets.Sets of sets.Sets. :pep:`218`
41+
``sets.Set`` objects expose a "protocol for automatic conversion to
42+
immutable" so that you can create ``sets.Set``'s of ``sets.Set``'s. :pep:`218`
4343
deliberately dropped this feature from built-in sets. This PEP
4444
advances that the feature is still useful and proposes a standard
4545
mechanism for its support.
@@ -48,22 +48,24 @@ mechanism for its support.
4848
Proposal
4949
========
5050

51-
It is proposed that a new built-in function called freeze() is added.
51+
It is proposed that a new built-in function called ``freeze()`` is added.
5252

53-
If freeze() is passed an immutable object, as determined by hash() on
54-
that object not raising a TypeError, then the object is returned
53+
If ``freeze()`` is passed an immutable object, as determined by ``hash()`` on
54+
that object not raising a ``TypeError``, then the object is returned
5555
directly.
5656

57-
If freeze() is passed a mutable object (i.e. hash() of that object
58-
raises a TypeError), then freeze() will call that object's
59-
__freeze__() method to get an immutable copy. If the object does not
60-
have a __freeze__() method, then a TypeError is raised.
57+
If ``freeze()`` is passed a mutable object (i.e. ``hash()`` of that object
58+
raises a ``TypeError``), then ``freeze()`` will call that object's
59+
``__freeze__()`` method to get an immutable copy. If the object does not
60+
have a ``__freeze__()`` method, then a ``TypeError`` is raised.
6161

6262

6363
Sample implementations
6464
======================
6565

66-
Here is a Python implementation of the freeze() built-in::
66+
Here is a Python implementation of the ``freeze()`` built-in:
67+
68+
.. code-block:: python
6769
6870
def freeze(obj):
6971
try:
@@ -73,9 +75,11 @@ Here is a Python implementation of the freeze() built-in::
7375
freezer = getattr(obj, '__freeze__', None)
7476
if freezer:
7577
return freezer()
76-
raise TypeError('object is not freezable')``
78+
raise TypeError('object is not freezable')
79+
80+
Here are some code samples which show the intended semantics:
7781

78-
Here are some code samples which show the intended semantics::
82+
.. code-block:: python
7983
8084
class xset(set):
8185
def __freeze__(self):
@@ -104,6 +108,8 @@ Here are some code samples which show the intended semantics::
104108
def __freeze__(self):
105109
return imdict(self)
106110
111+
.. code-block:: python-console
112+
107113
>>> s = set([1, 2, 3])
108114
>>> {s: 4}
109115
Traceback (most recent call last):
@@ -140,9 +146,9 @@ Reference implementation
140146
========================
141147

142148
Patch 1335812_ provides the C implementation of this feature. It adds the
143-
freeze() built-in, along with implementations of the __freeze__()
149+
``freeze()`` built-in, along with implementations of the ``__freeze__()``
144150
method for lists and sets. Dictionaries are not easily freezable in
145-
current Python, so an implementation of dict.__freeze__() is not
151+
current Python, so an implementation of ``dict.__freeze__()`` is not
146152
provided yet.
147153

148154
.. _1335812: http://sourceforge.net/tracker/index.php?func=detail&aid=1335812&group_id=5470&atid=305470
@@ -155,11 +161,11 @@ Open issues
155161
- Should dicts and sets automatically freeze their mutable keys?
156162

157163
- Should we support "temporary freezing" (perhaps with a method called
158-
__congeal__()) a la __as_temporarily_immutable__() in sets.Set?
164+
``__congeal__()``) a la ``__as_temporarily_immutable__()`` in ``sets.Set``?
159165

160-
- For backward compatibility with sets.Set, should we support
161-
__as_immutable__()? Or should __freeze__() just be renamed to
162-
__as_immutable__()?
166+
- For backward compatibility with ``sets.Set``, should we support
167+
``__as_immutable__()``? Or should ``__freeze__()`` just be renamed to
168+
``__as_immutable__()``?
163169

164170

165171
Copyright

peps/pep-0387.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ References
219219

220220
.. [#tiobe] TIOBE Programming Community Index
221221
222-
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
222+
https://www.tiobe.com/tiobe-index/
223223
224224
.. [#warnings] The warnings module
225225

0 commit comments

Comments
 (0)