gh-89554: Document socket.SocketType as a class#150683
Conversation
|
For context, I am aware of gh-88427 (the |
Documentation build overview
4 files changed± library/array.html± library/socket.html± whatsnew/3.16.html± whatsnew/changelog.html |
79787b0 to
0ad690a
Compare
|
Backward-compatibility check. No independent |
|
|
||
|
|
||
| .. data:: SocketType | ||
| .. class:: SocketType |
There was a problem hiding this comment.
You should move the declaration at https://docs.python.org/dev/library/socket.html#socket-objects and convert methods documentation to .. method: format.
0ad690a to
d89fe9f
Compare
| ``isinstance(socket(...), SocketType)`` is true, but ``SocketType`` is not | ||
| the same as ``type(socket(...))``, which is :class:`~socket.socket` itself. | ||
|
|
||
| Socket objects have the following methods. Except for |
There was a problem hiding this comment.
For the methods below, you should add an indentation of 3 spaces, and replace .. method:: socket.xxx(...) with .. method:: xxx(...) (remove socket. prefix).
socket.SocketType is a class (re-exported from _socket as an alias of _socket.socket, the base class of socket.socket), but was documented with the ".. data::" directive, so ":class:" cross-references to it cannot resolve against a py:class target. Switch the entry to ".. class::", correct the misleading description (SocketType is the base class of the socket type, not "type(socket(...))" which is socket.socket; addresses pythongh-88427), move it into the Socket Objects section, and document the socket object methods and attributes nested under the socket class, dropping the redundant "socket." prefix.
d89fe9f to
f1bb611
Compare
vstinner
left a comment
There was a problem hiding this comment.
Ah thank you! The rendered documentation is much better like that!
There is now a bunch of warnings on the documentation, such as: "c:func reference target not found: connect [ref.func]". I suggested fixes.
|
|
||
| .. versionchanged:: 3.6 | ||
| :exc:`OSError` is now raised if an error occurs when the underlying | ||
| :c:func:`close` call is made. |
There was a problem hiding this comment.
| :c:func:`close` call is made. | |
| :c:meth:`close` call is made. |
|
|
||
| .. availability:: not WASI. | ||
| Like ``connect(address)``, but return an error indicator instead of raising an | ||
| exception for errors returned by the C-level :c:func:`connect` call (other |
There was a problem hiding this comment.
| exception for errors returned by the C-level :c:func:`connect` call (other | |
| exception for errors returned by the C-level :c:func:`!connect` call (other |
| inside the buffer provided it has not been truncated before the | ||
| start of its associated data. | ||
|
|
||
| On systems which support the :const:`SCM_RIGHTS` mechanism, the |
There was a problem hiding this comment.
| On systems which support the :const:`SCM_RIGHTS` mechanism, the | |
| On systems which support the :const:`!SCM_RIGHTS` mechanism, the |
|
|
||
| The following function sends the list of file descriptors *fds* | ||
| over an :const:`AF_UNIX` socket, on systems which support the | ||
| :const:`SCM_RIGHTS` mechanism. See also :meth:`recvmsg`. :: |
There was a problem hiding this comment.
| :const:`SCM_RIGHTS` mechanism. See also :meth:`recvmsg`. :: | |
| :const:`!SCM_RIGHTS` mechanism. See also :meth:`recvmsg`. :: |
| case it is up to the caller to ensure that the bytestring contains the | ||
| proper bits (see the optional built-in module :mod:`struct` for a way to | ||
| encode C structures as bytestrings). When *value* is set to ``None``, | ||
| *optlen* argument is required. It's equivalent to calling :c:func:`setsockopt` C |
There was a problem hiding this comment.
| *optlen* argument is required. It's equivalent to calling :c:func:`setsockopt` C | |
| *optlen* argument is required. It's equivalent to calling :c:func:`!setsockopt` C |
|
|
||
| Note that there are no methods :meth:`read` or :meth:`write`; use | ||
| :meth:`~socket.recv` and :meth:`~socket.send` without *flags* argument instead. | ||
| Note that there are no methods :meth:`read` or :meth:`write`; use |
There was a problem hiding this comment.
| Note that there are no methods :meth:`read` or :meth:`write`; use | |
| Note that there are no methods :meth:`!read` or :meth:`!write`; use |
socket.SocketTypeis a class, but the documentation marks it with the.. data::directive, so:class:cross-references to it cannot resolve against a py:class target.This switches the entry to
.. class::. It also corrects the description:SocketTypeis re-exported from_socketas an alias of_socket.socket, the base class ofsocket.socket, soisinstance(socket(...), SocketType)is true whiletype(socket(...))issocket.socketitself. The current wording, "the same astype(socket(...))", is the misleading text reported in gh-88427.This overlaps with #93288, which corrects the same sentence but keeps
.. data::. This PR combines that wording fix with the role fix.Refs: gh-89554, gh-88427. Documentation-only change, so no
Misc/NEWSentry (skip news).This file is not covered by CODEOWNERS, so cc @vstinner, who reviews most socket changes.