##// END OF EJS Templates
back to dev
back to dev

File last commit:

r24010:77b36a9f
r28066:14faa28a
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
Hugo
Remove redundant Python 2 code
r24010 import shutil
Brian Granger
Work to address the review comments on Fernando's branch....
r2498 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
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.
"""
Hugo
Remove redundant Python 2 code
r24010 path = shutil.which(cmd)
Min RK
use py3compat.which in common locations
r21122 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))