##// END OF EJS Templates
First step in reintegrating Jedi...
First step in reintegrating Jedi If Jedi is installed expose a private API use it with prompt toolkit. Jedi does not _yet_ provide all the completion IPython has, so this is still a bit awkward. In order to debug this (and see what is Jedi provided we for now inject a fake Jedi/IPython delimiter in the menu. Jedi completion and this behavior are enabled by default, but could likely be opt-in. Add also a number of debug flags to be able to track why jedi is not working, and/or what completions are found by IPython and not Jedi. That should give us a bit of heads up and feedback to know whether we can remove part of the IPython completer, and more especially if we can drop `python_matches`. Once `python_matches` is dropped and some other of the current matchers are either dropped or converted to the new API, that should simplify the internal quite a bit. That would just be too much for an already BIG pull-request.

File last commit:

r23045:1c24cd61
r23284:3ff1be2e
Show More
process.py
69 lines | 1.8 KiB | text/x-python | PythonLexer
Brian Granger
Work to address the review comments on Fernando's branch....
r2498 # encoding: utf-8
"""
Utilities for working with external processes.
"""
Min RK
use py3compat.which in common locations
r21122 # Copyright (c) IPython Development Team.
# Distributed under the terms of the Modified BSD License.
Brian Granger
Work to address the review comments on Fernando's branch....
r2498
import os
import sys
Fernando Perez
Fully refactored subprocess handling on all platforms....
r2908 if sys.platform == 'win32':
Min RK
use py3compat.which in common locations
r21122 from ._process_win32 import system, getoutput, arg_split, check_pid
Doug Blank
Minimal changes to import IPython from IronPython
r15154 elif sys.platform == 'cli':
Min RK
use py3compat.which in common locations
r21122 from ._process_cli import system, getoutput, arg_split, check_pid
Fernando Perez
Fully refactored subprocess handling on all platforms....
r2908 else:
Min RK
use py3compat.which in common locations
r21122 from ._process_posix import system, getoutput, arg_split, check_pid
Jörgen Stenarson
Moved arg_split to _process_win32.py and _process_posix.py.
r5517
Paul Ivanov
initial test for the embedding
r14184 from ._process_common import getoutputerror, get_output_error_code, process_handler
Thomas Kluyver
Python 3 compatibility for os.getcwdu()
r13447 from . import py3compat
Brian Granger
Work to address the review comments on Fernando's branch....
r2498
class FindCmdError(Exception):
pass
def find_cmd(cmd):
"""Find absolute path to executable cmd in a cross platform manner.
Bernardo B. Marques
remove all trailling spaces
r4872
Brian Granger
Work to address the review comments on Fernando's branch....
r2498 This function tries to determine the full path to a command line program
using `which` on Unix/Linux/OS X and `win32api` on Windows. Most of the
MinRK
remove special case for 'python' in find_cmd
r10696 time it will use the version that is first on the users `PATH`.
Brian Granger
Work to address the review comments on Fernando's branch....
r2498
Warning, don't use this to find IPython command line programs as there
is a risk you will find the wrong one. Instead find those using the
following code and looking for the application itself::
Bernardo B. Marques
remove all trailling spaces
r4872
anantkaushik89
Incorporating review comments
r22809 import sys
kaushikanant
Edit the example when not to use find_cmd command
r22832 argv = [sys.executable, '-m', 'IPython']
anantkaushik89
cleanup unused code from utils/process.py
r22787
Brian Granger
Work to address the review comments on Fernando's branch....
r2498 Parameters
----------
cmd : str
The command line program to look for.
"""
Min RK
use py3compat.which in common locations
r21122 path = py3compat.which(cmd)
if path is None:
Brian Granger
Work to address the review comments on Fernando's branch....
r2498 raise FindCmdError('command could not be found: %s' % cmd)
Min RK
use py3compat.which in common locations
r21122 return path
Brian Granger
Work to address the review comments on Fernando's branch....
r2498
def abbrev_cwd():
""" Return abbreviated version of cwd, e.g. d:mydir """
Srinivas Reddy Thatiparthy
rename py3compat.getcwd() -> os.getcwd()
r23045 cwd = os.getcwd().replace('\\','/')
Brian Granger
Work to address the review comments on Fernando's branch....
r2498 drivepart = ''
tail = cwd
if sys.platform == 'win32':
if len(cwd) < 4:
return cwd
drivepart,tail = os.path.splitdrive(cwd)
parts = tail.split('/')
if len(parts) > 2:
tail = '/'.join(parts[-2:])
return (drivepart + (
cwd == '/' and '/' or tail))