Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gh-101100: Fix Sphinx nitpicks in library/rlcompleter.rst #113125

Merged
merged 3 commits into from
Dec 15, 2023
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
2 changes: 2 additions & 0 deletions Doc/library/readline.rst
Original file line number Diff line number Diff line change
Expand Up @@ -218,6 +218,8 @@ Startup hooks
if Python was compiled for a version of the library that supports it.


.. _readline-completion:

Completion
----------

Expand Down
40 changes: 22 additions & 18 deletions Doc/library/rlcompleter.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,14 @@

--------------

The :mod:`rlcompleter` module defines a completion function suitable for the
:mod:`readline` module by completing valid Python identifiers and keywords.
The :mod:`!rlcompleter` module defines a completion function suitable to be
passed to :func:`~readline.set_completer` in the :mod:`readline` module.

When this module is imported on a Unix platform with the :mod:`readline` module
available, an instance of the :class:`Completer` class is automatically created
and its :meth:`complete` method is set as the :mod:`readline` completer.
and its :meth:`~Completer.complete` method is set as the
:ref:`readline completer <readline-completion>`. The method provides
completion of valid Python :ref:`identifiers and keywords <identifiers>`.

Example::

Expand All @@ -28,7 +30,7 @@ Example::
readline.__name__ readline.parse_and_bind(
>>> readline.

The :mod:`rlcompleter` module is designed for use with Python's
The :mod:`!rlcompleter` module is designed for use with Python's
:ref:`interactive mode <tut-interactive>`. Unless Python is run with the
:option:`-S` option, the module is automatically imported and configured
(see :ref:`rlcompleter-config`).
Expand All @@ -39,23 +41,25 @@ this module can still be used for custom purposes.

.. _completer-objects:

Completer Objects
-----------------
.. class:: Completer

Completer objects have the following method:
Completer objects have the following method:

.. method:: Completer.complete(text, state)

.. method:: Completer.complete(text, state)
Return the next possible completion for *text*.

Return the *state*\ th completion for *text*.
When called by the :mod:`readline` module, this method is called
successively with ``state == 0, 1, 2, ...`` until the method returns
``None``.

If called for *text* that doesn't include a period character (``'.'``), it will
complete from names currently defined in :mod:`__main__`, :mod:`builtins` and
keywords (as defined by the :mod:`keyword` module).

If called for a dotted name, it will try to evaluate anything without obvious
side-effects (functions will not be evaluated, but it can generate calls to
:meth:`__getattr__`) up to the last part, and find matches for the rest via the
:func:`dir` function. Any exception raised during the evaluation of the
expression is caught, silenced and :const:`None` is returned.
If called for *text* that doesn't include a period character (``'.'``), it will
complete from names currently defined in :mod:`__main__`, :mod:`builtins` and
keywords (as defined by the :mod:`keyword` module).

If called for a dotted name, it will try to evaluate anything without obvious
side-effects (functions will not be evaluated, but it can generate calls to
:meth:`~object.__getattr__`) up to the last part, and find matches for the
rest via the :func:`dir` function. Any exception raised during the
evaluation of the expression is caught, silenced and :const:`None` is
returned.
1 change: 0 additions & 1 deletion Doc/tools/.nitignore
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,6 @@ Doc/library/pyexpat.rst
Doc/library/random.rst
Doc/library/readline.rst
Doc/library/resource.rst
Doc/library/rlcompleter.rst
Doc/library/select.rst
Doc/library/signal.rst
Doc/library/smtplib.rst
Expand Down
Loading