| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- import sys
- from os.path import join, dirname, abspath, isdir
- def _start_linter():
- """
- This is a pre-alpha API. You're not supposed to use it at all, except for
- testing. It will very likely change.
- """
- import jedi
- if '--debug' in sys.argv:
- jedi.set_debug_function()
- for path in sys.argv[2:]:
- if path.startswith('--'):
- continue
- if isdir(path):
- import fnmatch
- import os
- paths = []
- for root, dirnames, filenames in os.walk(path):
- for filename in fnmatch.filter(filenames, '*.py'):
- paths.append(os.path.join(root, filename))
- else:
- paths = [path]
- try:
- for p in paths:
- for error in jedi.Script(path=p)._analysis():
- print(error)
- except Exception:
- if '--pdb' in sys.argv:
- import traceback
- traceback.print_exc()
- import pdb
- pdb.post_mortem()
- else:
- raise
- def _complete():
- import jedi
- import pdb
- if '-d' in sys.argv:
- sys.argv.remove('-d')
- jedi.set_debug_function()
- try:
- completions = jedi.Script(sys.argv[2]).complete()
- for c in completions:
- c.docstring()
- c.type
- except Exception as e:
- print(repr(e))
- pdb.post_mortem()
- else:
- print(completions)
- if len(sys.argv) == 2 and sys.argv[1] == 'repl':
- # don't want to use __main__ only for repl yet, maybe we want to use it for
- # something else. So just use the keyword ``repl`` for now.
- print(join(dirname(abspath(__file__)), 'api', 'replstartup.py'))
- elif len(sys.argv) > 1 and sys.argv[1] == '_linter':
- _start_linter()
- elif len(sys.argv) > 1 and sys.argv[1] == '_complete':
- _complete()
- else:
- print('Command not implemented: %s' % sys.argv[1])
|