Merge lp:~ufleisch/python-mode/improve-completion into lp:python-mode/components-python-mode

Proposed by Andreas Roehler
Status: Merged
Merged at revision: 2569
Proposed branch: lp:~ufleisch/python-mode/improve-completion
Merge into: lp:python-mode/components-python-mode
Diff against target: 74 lines (+24/-9)
2 files modified
completion/pycomplete.py (+16/-4)
completion/test_pycomplete.py (+8/-5)
To merge this branch: bzr merge lp:~ufleisch/python-mode/improve-completion
Reviewer Review Type Date Requested Status
Andreas Roehler Approve
Review via email: mp+284522@code.launchpad.net

Description of the change

completion

To post a comment you must log in.
Revision history for this message
Andreas Roehler (a-roehler) wrote :

Thanks!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'completion/pycomplete.py'
2--- completion/pycomplete.py 2015-12-01 08:21:26 +0000
3+++ completion/pycomplete.py 2016-01-30 20:35:43 +0000
4@@ -654,10 +654,22 @@
5 obj = self.get_method_function(obj)
6
7 if type(obj) in [types.FunctionType, types.LambdaType]:
8- (args, varargs, varkw, defaults) = inspect.getargspec(obj)
9- sig = ('%s: %s' % (obj.__name__,
10- inspect.formatargspec(args, varargs, varkw,
11- defaults)))
12+ try:
13+ (args, varargs, varkw, defaults) = inspect.getargspec(obj)
14+ sig = ('%s: %s' % (obj.__name__,
15+ inspect.formatargspec(args, varargs, varkw,
16+ defaults)))
17+ except ValueError:
18+ try:
19+ (args, varargs, varkw, defaults, kwonlyargs,
20+ kwonlydefaults, annotations) = inspect.getfullargspec(obj)
21+ sig = ('%s: %s' % (
22+ obj.__name__, inspect.formatargspec(
23+ args, varargs, varkw, defaults, kwonlyargs,
24+ kwonlydefaults, annotations)))
25+ except AttributeError:
26+ pass
27+
28 doc = getattr(obj, '__doc__', '')
29 if doc and not sig:
30 doc = doc.lstrip()
31
32=== modified file 'completion/test_pycomplete.py'
33--- completion/test_pycomplete.py 2013-01-05 21:10:33 +0000
34+++ completion/test_pycomplete.py 2016-01-30 20:35:43 +0000
35@@ -1,6 +1,6 @@
36 #!/usr/bin/env python
37
38-import os
39+import os, sys
40 import linecache
41 import tempfile
42 from pycomplete import *
43@@ -19,7 +19,8 @@
44 'csv_reader = reader(iterable [, dialect=\'excel\']'
45 assert pysignature('super') in (
46 'super(type) -> unbound super object',
47- 'super() -> same as super(__class__, <first argument>)')
48+ 'super() -> same as super(__class__, <first argument>)',
49+ 'super(type, obj) -> bound super object; requires isinstance(obj, type)')
50
51 def test_help():
52 assert pyhelp('os.path.join').startswith('Help on function join')
53@@ -28,7 +29,8 @@
54 assert pyhelp('csv', imports=('import csv',)).startswith(
55 'Help on module csv:\n\nNAME\n csv - CSV parsing and writing.\n')
56 assert pyhelp('import').startswith(
57- 'The ``import`` statement\n************************\n')
58+ ('The ``import`` statement\n************************\n',
59+ 'The "import" statement\n**********************\n'))
60 assert pyhelp('pydoc.help').startswith(
61 'Help on class Helper in module pydoc')
62 assert pyhelp('') == ''
63@@ -181,8 +183,9 @@
64 assert pycompletions('TestClass._member2.', name) == []
65 assert pycompletions('TestClass.__member3.ext', name) == \
66 ['extend']
67- assert pycompletions('TestClass.member4.prin', name) == \
68- ['print_help', 'print_usage', 'print_version']
69+ if sys.version_info[0] < 3:
70+ assert pycompletions('TestClass.member4.prin', name) == \
71+ ['print_help', 'print_usage', 'print_version']
72 assert pycompletions('TestClass.member5.writel', name) == \
73 ['writelines']
74 assert pycompletions('TestClass.member6.from', name) == \

Subscribers

People subscribed via source and target branches