| 
									
										
										
										
											2024-05-08 21:52:39 +02:00
										 |  |  | :mod:`!rlcompleter` --- Completion function for GNU readline
 | 
					
						
							|  |  |  | ============================================================
 | 
					
						
							| 
									
										
										
										
											2007-08-15 14:28:22 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | .. module:: rlcompleter
 | 
					
						
							|  |  |  |    :synopsis: Python identifier completion, suitable for the GNU readline library.
 | 
					
						
							| 
									
										
										
										
											2016-06-11 15:02:54 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-08-15 14:28:22 +00:00
										 |  |  | .. sectionauthor:: Moshe Zadka <moshez@zadka.site.co.il>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-01-27 20:38:46 +00:00
										 |  |  | **Source code:** :source:`Lib/rlcompleter.py`
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --------------
 | 
					
						
							| 
									
										
										
										
											2007-08-15 14:28:22 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-15 08:57:23 +00:00
										 |  |  | The :mod:`!rlcompleter` module defines a completion function suitable to be
 | 
					
						
							|  |  |  | passed to :func:`~readline.set_completer` in the :mod:`readline` module.
 | 
					
						
							| 
									
										
										
										
											2007-08-15 14:28:22 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 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
 | 
					
						
							| 
									
										
										
										
											2023-12-15 08:57:23 +00:00
										 |  |  | 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>`.
 | 
					
						
							| 
									
										
										
										
											2007-08-15 14:28:22 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | Example::
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    >>> import rlcompleter
 | 
					
						
							|  |  |  |    >>> import readline
 | 
					
						
							|  |  |  |    >>> readline.parse_and_bind("tab: complete")
 | 
					
						
							|  |  |  |    >>> readline. <TAB PRESSED>
 | 
					
						
							| 
									
										
											  
											
												Merged revisions 64475,64544-64545,64550,64557-64558,64565,64570,64577,64582-64583,64585,64590,64592-64593,64625,64630,64638,64647,64655-64656,64663-64664 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
  r64475 | raymond.hettinger | 2008-06-22 22:29:28 -0500 (Sun, 22 Jun 2008) | 1 line
  Issue 3161: Missing import and test.
........
  r64544 | georg.brandl | 2008-06-26 16:12:55 -0500 (Thu, 26 Jun 2008) | 2 lines
  Use newer versions of externals.
........
  r64545 | benjamin.peterson | 2008-06-26 16:23:30 -0500 (Thu, 26 Jun 2008) | 1 line
  add a htmlview directive
........
  r64550 | brett.cannon | 2008-06-26 19:32:16 -0500 (Thu, 26 Jun 2008) | 2 lines
  Ignore .pyc and .pyo files.
........
  r64557 | mark.dickinson | 2008-06-27 05:11:52 -0500 (Fri, 27 Jun 2008) | 3 lines
  Remove trailing 'L's from numerator and denominator in the
  repr() of a Fraction instance.
........
  r64558 | mark.dickinson | 2008-06-27 06:03:21 -0500 (Fri, 27 Jun 2008) | 2 lines
  Add Jean Brouwers for his work on math.sum
........
  r64565 | raymond.hettinger | 2008-06-27 16:34:24 -0500 (Fri, 27 Jun 2008) | 1 line
  Fix whitespace in example code.
........
  r64570 | hyeshik.chang | 2008-06-27 20:04:31 -0500 (Fri, 27 Jun 2008) | 8 lines
  Give information for compililation of _multiprocessing.SemLock on FreeBSD:
  FreeBSD's P1003.1b semaphore support is highly experimental and
  it's disabled by default.  Even if a user loads the experimental
  kernel module manually, _multiprocessing doesn't work correctly due
  to several known incompatibilities around sem_unlink and sem_getvalue,
  yet.
........
  r64577 | raymond.hettinger | 2008-06-28 17:16:53 -0500 (Sat, 28 Jun 2008) | 1 line
  Issue 3230:  Do not the set specific size macro.
........
  r64582 | benjamin.peterson | 2008-06-28 18:06:05 -0500 (Sat, 28 Jun 2008) | 2 lines
  convert test_audioop to unittest. Thanks to Giampaolo Rodola.
........
  r64583 | benjamin.peterson | 2008-06-28 18:06:49 -0500 (Sat, 28 Jun 2008) | 1 line
  rewrap
........
  r64585 | benjamin.peterson | 2008-06-28 18:35:31 -0500 (Sat, 28 Jun 2008) | 1 line
  fix typo
........
  r64590 | benjamin.peterson | 2008-06-29 08:43:07 -0500 (Sun, 29 Jun 2008) | 1 line
  reinstate the ending backtick. thanks Nick :)
........
  r64592 | vinay.sajip | 2008-06-29 16:25:28 -0500 (Sun, 29 Jun 2008) | 2 lines
  Removed out-of-date comment in _install_handlers and
  used issubclass in place of equality comparison of classes.
........
  r64593 | vinay.sajip | 2008-06-29 16:27:15 -0500 (Sun, 29 Jun 2008) | 1 line
  Updated to reflect change in logging.config to remove out-of-date comment in _install_handlers and the use of issubclass in place of equality comparison of classes.
........
  r64625 | georg.brandl | 2008-07-01 14:59:00 -0500 (Tue, 01 Jul 2008) | 2 lines
  Add a link to PEP 324.
........
  r64630 | georg.brandl | 2008-07-01 15:18:10 -0500 (Tue, 01 Jul 2008) | 2 lines
  #3216: fix Execute's parameter description.
........
  r64638 | georg.brandl | 2008-07-01 15:50:02 -0500 (Tue, 01 Jul 2008) | 2 lines
  #1410739: add a footnote about "is" and "unusual" behavior.
........
  r64647 | benjamin.peterson | 2008-07-01 18:33:06 -0500 (Tue, 01 Jul 2008) | 1 line
  add ABC to the glossary
........
  r64655 | mark.dickinson | 2008-07-02 04:37:01 -0500 (Wed, 02 Jul 2008) | 7 lines
  Replace occurrences of '\d' with '[0-9]' in Decimal regex, to make sure
  that the behaviour of Decimal doesn't change if/when re.UNICODE becomes
  assumed in Python 3.0.
  Also add a check that alternative Unicode digits (e.g. u'\N{FULLWIDTH
  DIGIT ONE}') are *not* accepted in a numeric string.
........
  r64656 | nick.coghlan | 2008-07-02 08:09:19 -0500 (Wed, 02 Jul 2008) | 1 line
  Issue 3190: pydoc now hides module __package__ attributes
........
  r64663 | jesse.noller | 2008-07-02 11:44:09 -0500 (Wed, 02 Jul 2008) | 1 line
  Reenable the manager tests with Amaury's threading fix
........
  r64664 | facundo.batista | 2008-07-02 11:52:55 -0500 (Wed, 02 Jul 2008) | 4 lines
  Issue #449227: Now with the rlcompleter module, callable objects are
  added a '(' when completed.
........
											
										 
											2008-07-02 20:22:54 +00:00
										 |  |  |    readline.__doc__          readline.get_line_buffer(  readline.read_init_file(
 | 
					
						
							|  |  |  |    readline.__file__         readline.insert_text(      readline.set_completer(
 | 
					
						
							|  |  |  |    readline.__name__         readline.parse_and_bind(
 | 
					
						
							| 
									
										
										
										
											2007-08-15 14:28:22 +00:00
										 |  |  |    >>> readline.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-15 08:57:23 +00:00
										 |  |  | The :mod:`!rlcompleter` module is designed for use with Python's
 | 
					
						
							| 
									
										
										
										
											2013-05-04 20:08:35 +02:00
										 |  |  | :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`).
 | 
					
						
							| 
									
										
										
										
											2007-08-15 14:28:22 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | On platforms without :mod:`readline`, the :class:`Completer` class defined by
 | 
					
						
							|  |  |  | this module can still be used for custom purposes.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. _completer-objects:
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-15 08:57:23 +00:00
										 |  |  | .. class:: Completer
 | 
					
						
							| 
									
										
										
										
											2007-08-15 14:28:22 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-15 08:57:23 +00:00
										 |  |  |    Completer objects have the following method:
 | 
					
						
							| 
									
										
										
										
											2007-08-15 14:28:22 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-15 08:57:23 +00:00
										 |  |  |    .. method:: Completer.complete(text, state)
 | 
					
						
							| 
									
										
										
										
											2007-08-15 14:28:22 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-15 08:57:23 +00:00
										 |  |  |       Return the next possible completion for *text*.
 | 
					
						
							| 
									
										
										
										
											2007-08-15 14:28:22 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-15 08:57:23 +00:00
										 |  |  |       When called by the :mod:`readline` module, this method is called
 | 
					
						
							|  |  |  |       successively with ``state == 0, 1, 2, ...`` until the method returns
 | 
					
						
							|  |  |  |       ``None``.
 | 
					
						
							| 
									
										
										
										
											2007-08-15 14:28:22 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-15 08:57:23 +00:00
										 |  |  |       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).
 | 
					
						
							| 
									
										
										
										
											2007-08-15 14:28:22 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-15 08:57:23 +00:00
										 |  |  |       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.
 |