##// END OF EJS Templates
Merge pull request #6379 from ivanov/under-completion...
Thomas Kluyver -
r17768:38b91d25 merge
parent child Browse files
Show More
@@ -46,25 +46,11 b' Notes:'
46 used, and this module (and the readline module) are silently inactive.
46 used, and this module (and the readline module) are silently inactive.
47 """
47 """
48
48
49 #*****************************************************************************
49 # Copyright (c) IPython Development Team.
50 # Distributed under the terms of the Modified BSD License.
50 #
51 #
51 # Since this file is essentially a minimally modified copy of the rlcompleter
52 # Some of this code originated from rlcompleter in the Python standard library
52 # module which is part of the standard Python distribution, I assume that the
53 # Copyright (C) 2001 Python Software Foundation, www.python.org
53 # proper procedure is to maintain its copyright as belonging to the Python
54 # Software Foundation (in addition to my own, for all new code).
55 #
56 # Copyright (C) 2008 IPython Development Team
57 # Copyright (C) 2001 Fernando Perez. <fperez@colorado.edu>
58 # Copyright (C) 2001 Python Software Foundation, www.python.org
59 #
60 # Distributed under the terms of the BSD License. The full license is in
61 # the file COPYING, distributed as part of this software.
62 #
63 #*****************************************************************************
64
65 #-----------------------------------------------------------------------------
66 # Imports
67 #-----------------------------------------------------------------------------
68
54
69 import __main__
55 import __main__
70 import glob
56 import glob
@@ -735,7 +721,7 b' class IPCompleter(Completer):'
735 else:
721 else:
736 # true if txt is _not_ a _ name, false otherwise:
722 # true if txt is _not_ a _ name, false otherwise:
737 no__name = (lambda txt:
723 no__name = (lambda txt:
738 re.match(r'.*\._.*?',txt) is None)
724 re.match(r'\._.*?',txt[txt.rindex('.'):]) is None)
739 matches = filter(no__name, matches)
725 matches = filter(no__name, matches)
740 except NameError:
726 except NameError:
741 # catches <undefined attributes>.<tab>
727 # catches <undefined attributes>.<tab>
@@ -222,6 +222,7 b' def test_omit__names():'
222 # also happens to test IPCompleter as a configurable
222 # also happens to test IPCompleter as a configurable
223 ip = get_ipython()
223 ip = get_ipython()
224 ip._hidden_attr = 1
224 ip._hidden_attr = 1
225 ip._x = {}
225 c = ip.Completer
226 c = ip.Completer
226 ip.ex('ip=get_ipython()')
227 ip.ex('ip=get_ipython()')
227 cfg = Config()
228 cfg = Config()
@@ -240,6 +241,8 b' def test_omit__names():'
240 s,matches = c.complete('ip.')
241 s,matches = c.complete('ip.')
241 nt.assert_not_in('ip.__str__', matches)
242 nt.assert_not_in('ip.__str__', matches)
242 nt.assert_not_in('ip._hidden_attr', matches)
243 nt.assert_not_in('ip._hidden_attr', matches)
244 s,matches = c.complete('ip._x.')
245 nt.assert_in('ip._x.keys', matches)
243 del ip._hidden_attr
246 del ip._hidden_attr
244
247
245
248
General Comments 0
You need to be logged in to leave comments. Login now