jupyter
This commit is contained in:
69
packages/python/yap_kernel/yap_ipython/utils/process.py
Normal file
69
packages/python/yap_kernel/yap_ipython/utils/process.py
Normal file
@@ -0,0 +1,69 @@
|
||||
# encoding: utf-8
|
||||
"""
|
||||
Utilities for working with external processes.
|
||||
"""
|
||||
|
||||
# Copyright (c) yap_ipython Development Team.
|
||||
# Distributed under the terms of the Modified BSD License.
|
||||
|
||||
|
||||
import os
|
||||
import shutil
|
||||
import sys
|
||||
|
||||
if sys.platform == 'win32':
|
||||
from ._process_win32 import system, getoutput, arg_split, check_pid
|
||||
elif sys.platform == 'cli':
|
||||
from ._process_cli import system, getoutput, arg_split, check_pid
|
||||
else:
|
||||
from ._process_posix import system, getoutput, arg_split, check_pid
|
||||
|
||||
from ._process_common import getoutputerror, get_output_error_code, process_handler
|
||||
|
||||
|
||||
class FindCmdError(Exception):
|
||||
pass
|
||||
|
||||
|
||||
def find_cmd(cmd):
|
||||
"""Find absolute path to executable cmd in a cross platform manner.
|
||||
|
||||
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
|
||||
time it will use the version that is first on the users `PATH`.
|
||||
|
||||
Warning, don't use this to find yap_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::
|
||||
|
||||
import sys
|
||||
argv = [sys.executable, '-m', 'yap_ipython']
|
||||
|
||||
Parameters
|
||||
----------
|
||||
cmd : str
|
||||
The command line program to look for.
|
||||
"""
|
||||
path = shutil.which(cmd)
|
||||
if path is None:
|
||||
raise FindCmdError('command could not be found: %s' % cmd)
|
||||
return path
|
||||
|
||||
|
||||
def abbrev_cwd():
|
||||
""" Return abbreviated version of cwd, e.g. d:mydir """
|
||||
cwd = os.getcwd().replace('\\','/')
|
||||
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))
|
||||
Reference in New Issue
Block a user