Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 1 addition & 13 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -554,6 +554,7 @@ jobs:
- Thread
free-threading:
- false
- true
sanitizer:
- TSan
include:
Expand All @@ -565,17 +566,6 @@ jobs:
sanitizer: ${{ matrix.sanitizer }}
free-threading: ${{ matrix.free-threading }}

# XXX: Temporarily allow this job to fail to not block PRs.
build-san-free-threading:
# ${{ '' } is a hack to nest jobs under the same sidebar category.
name: Sanitizers${{ '' }} # zizmor: ignore[obfuscation]
needs: build-context
if: needs.build-context.outputs.run-ubuntu == 'true'
uses: ./.github/workflows/reusable-san.yml
with:
sanitizer: TSan
free-threading: true

cross-build-linux:
name: Cross build Linux
runs-on: ubuntu-26.04
Expand Down Expand Up @@ -679,7 +669,6 @@ jobs:
- test-hypothesis
- build-asan
- build-san
- build-san-free-threading
- cross-build-linux
- cifuzz
if: always()
Expand All @@ -691,7 +680,6 @@ jobs:
allowed-failures: >-
build-android,
build-emscripten,
build-san-free-threading,
build-windows-msi,
build-ubuntu-ssltests,
test-hypothesis,
Expand Down
6 changes: 0 additions & 6 deletions Doc/c-api/float.rst
Original file line number Diff line number Diff line change
Expand Up @@ -233,9 +233,6 @@ most likely :exc:`OverflowError`).

Pack a C double as the IEEE 754 binary64 double precision format.

.. impl-detail::
This function always succeeds in CPython.


Unpack functions
^^^^^^^^^^^^^^^^
Expand All @@ -251,9 +248,6 @@ Return value: The unpacked double. On error, this is ``-1.0`` and
:c:func:`PyErr_Occurred` is true (and an exception is set, most likely
:exc:`OverflowError`).

.. impl-detail::
These functions always succeed in CPython.

.. c:function:: double PyFloat_Unpack2(const char *p, int le)

Unpack the IEEE 754 binary16 half-precision format as a C double.
Expand Down
62 changes: 54 additions & 8 deletions Doc/library/imaplib.rst
Original file line number Diff line number Diff line change
Expand Up @@ -273,10 +273,16 @@ An :class:`IMAP4` instance has the following methods:
mailbox. This is the recommended command before ``LOGOUT``.


.. method:: IMAP4.copy(message_set, new_mailbox)
.. method:: IMAP4.copy(message_set, new_mailbox, *, uid=False)

Copy *message_set* messages onto end of *new_mailbox*.

If *uid* is true, *message_set* is a set of UIDs and the ``UID COPY``
command is used instead of ``COPY``.

.. versionchanged:: next
Added the *uid* parameter.


.. method:: IMAP4.create(mailbox)

Expand All @@ -303,19 +309,33 @@ An :class:`IMAP4` instance has the following methods:
The :meth:`enable` method itself, and :RFC:`6855` support.


.. method:: IMAP4.expunge()
.. method:: IMAP4.expunge(message_set=None, *, uid=False)

Permanently remove deleted items from selected mailbox. Generates an ``EXPUNGE``
response for each deleted message. Returned data contains a list of ``EXPUNGE``
message numbers in order received.

If *uid* is true, the ``UID EXPUNGE`` command (:rfc:`4315`) is used to remove
only the messages that both are marked as deleted and have a UID in
*message_set*. *message_set* is required in this case, and must be omitted
otherwise.

.. versionchanged:: next
Added the *message_set* and *uid* parameters.


.. method:: IMAP4.fetch(message_set, message_parts)
.. method:: IMAP4.fetch(message_set, message_parts, *, uid=False)

Fetch (parts of) messages. *message_parts* should be a string of message part
names enclosed within parentheses, eg: ``"(UID BODY[TEXT])"``. Returned data
are tuples of message part envelope and data.

If *uid* is true, *message_set* is a set of UIDs and the message numbers in
the response are UIDs (``UID FETCH``).

.. versionchanged:: next
Added the *uid* parameter.


.. method:: IMAP4.getacl(mailbox)

Expand Down Expand Up @@ -495,12 +515,15 @@ An :class:`IMAP4` instance has the following methods:
Returned data are tuples of message part envelope and data.


.. method:: IMAP4.move(message_set, new_mailbox)
.. method:: IMAP4.move(message_set, new_mailbox, *, uid=False)

Move *message_set* messages onto end of *new_mailbox*.

The server must support the ``MOVE`` capability (:rfc:`6851`).

If *uid* is true, *message_set* is a set of UIDs and the ``UID MOVE``
command is used instead of ``MOVE``.

.. versionadded:: next


Expand Down Expand Up @@ -575,7 +598,7 @@ An :class:`IMAP4` instance has the following methods:
code, instead of the usual type.


.. method:: IMAP4.search(charset, criterion[, ...])
.. method:: IMAP4.search(charset, criterion[, ...], *, uid=False)

Search mailbox for matching messages. *charset* may be ``None``, in which case
no ``CHARSET`` will be specified in the request to the server. The IMAP
Expand All @@ -584,6 +607,9 @@ An :class:`IMAP4` instance has the following methods:
the ``UTF8=ACCEPT`` capability was enabled using the :meth:`enable`
command.

If *uid* is true, the message numbers in the response are UIDs
(``UID SEARCH``).

Example::

# M is a connected IMAP4 instance...
Expand All @@ -592,6 +618,9 @@ An :class:`IMAP4` instance has the following methods:
# or:
typ, msgnums = M.search(None, '(FROM "LDJ")')

.. versionchanged:: next
Added the *uid* parameter.


.. method:: IMAP4.select(mailbox='INBOX', readonly=False)

Expand Down Expand Up @@ -636,7 +665,7 @@ An :class:`IMAP4` instance has the following methods:
Returns socket instance used to connect to server.


.. method:: IMAP4.sort(sort_criteria, charset, search_criterion[, ...])
.. method:: IMAP4.sort(sort_criteria, charset, search_criterion[, ...], *, uid=False)

The ``sort`` command is a variant of ``search`` with sorting semantics for the
results. Returned data contains a space separated list of matching message
Expand All @@ -651,8 +680,13 @@ An :class:`IMAP4` instance has the following methods:
the interpretation of strings in the searching criteria. It then returns the
numbers of matching messages.

If *uid* is true, the message numbers in the response are UIDs (``UID SORT``).

This is an ``IMAP4rev1`` extension command.

.. versionchanged:: next
Added the *uid* parameter.


.. method:: IMAP4.starttls(ssl_context=None)

Expand Down Expand Up @@ -681,12 +715,15 @@ An :class:`IMAP4` instance has the following methods:
Request named status conditions for *mailbox*.


.. method:: IMAP4.store(message_set, command, flag_list)
.. method:: IMAP4.store(message_set, command, flag_list, *, uid=False)

Alters flag dispositions for messages in mailbox. *command* is specified by
section 6.4.6 of :rfc:`3501` as being one of "FLAGS", "+FLAGS", or "-FLAGS",
optionally with a suffix of ".SILENT".

If *uid* is true, *message_set* is a set of UIDs and the ``UID STORE``
command is used instead of ``STORE``.

For example, to set the delete flag on all messages::

typ, data = M.search(None, 'ALL')
Expand All @@ -706,12 +743,15 @@ An :class:`IMAP4` instance has the following methods:
Python 3.6, handles them if they are sent from the server, since this
improves real-world compatibility.

.. versionchanged:: next
Added the *uid* parameter.

.. method:: IMAP4.subscribe(mailbox)

Subscribe to new mailbox.


.. method:: IMAP4.thread(threading_algorithm, charset, search_criterion[, ...])
.. method:: IMAP4.thread(threading_algorithm, charset, search_criterion[, ...], *, uid=False)

The ``thread`` command is a variant of ``search`` with threading semantics for
the results. Returned data contains a space separated list of thread members.
Expand All @@ -729,8 +769,14 @@ An :class:`IMAP4` instance has the following methods:
returns the matching messages threaded according to the specified threading
algorithm.

If *uid* is true, the message numbers in the response are UIDs
(``UID THREAD``).

This is an ``IMAP4rev1`` extension command.

.. versionchanged:: next
Added the *uid* parameter.


.. method:: IMAP4.uid(command, arg[, ...])

Expand Down
2 changes: 0 additions & 2 deletions Doc/tools/.nitignore
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,4 @@ Doc/library/xml.sax.reader.rst
Doc/library/xml.sax.rst
Doc/library/xmlrpc.client.rst
Doc/library/xmlrpc.server.rst
Doc/whatsnew/2.4.rst
Doc/whatsnew/2.5.rst
Doc/whatsnew/2.6.rst
6 changes: 3 additions & 3 deletions Doc/using/windows.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1174,9 +1174,9 @@ on using nuget. What follows is a summary that is sufficient for Python
developers.

The ``nuget.exe`` command line tool may be downloaded directly from
``https://aka.ms/nugetclidl``, for example, using curl or PowerShell. With the
tool, the latest version of Python for 64-bit or 32-bit machines is installed
using::
``https://dist.nuget.org/win-x86-commandline/latest/nuget.exe``, for example,
using curl or PowerShell. With the tool, the latest version of Python for
64-bit or 32-bit machines is installed using::

nuget.exe install python -ExcludeVersion -OutputDirectory .
nuget.exe install pythonx86 -ExcludeVersion -OutputDirectory .
Expand Down
Loading
Loading