| | 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': |
| | |
| | |
| | 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]) |
| |
|