##// END OF EJS Templates
Start refactoring handling of color....
Start refactoring handling of color. This is one more step into getting rid of the old way of handling colors in IPython, in particular here we move the scheme/style as a configuration option of the parser instead of passing it around into the formats functions. Also remove our own usage of deprecated arguments.

File last commit:

r17690:97718bef
r22911:4335860f
Show More
_process_cli.py
78 lines | 2.4 KiB | text/x-python | PythonLexer
Doug Blank
Removed another of the tweaks, and added a note in that it is largely untested.
r15248 """cli-specific implementation of process utilities.
Doug Blank
Minimal changes to import IPython from IronPython
r15154
cli - Common Language Infrastructure for IronPython. Code
can run on any operating system. Check os.name for os-
specific settings.
This file is only meant to be imported by process.py, not by end-users.
Doug Blank
Removed another of the tweaks, and added a note in that it is largely untested.
r15248
This file is largely untested. To become a full drop-in process
interface for IronPython will probably require you to help fill
in the details.
Doug Blank
Minimal changes to import IPython from IronPython
r15154 """
# Import cli libraries:
import clr
import System
# Import Python libraries:
import os
# Import IPython libraries:
from IPython.utils import py3compat
from ._process_common import arg_split
def _find_cmd(cmd):
"""Find the full path to a command using which."""
Doug Blank
Summary of changes:...
r15208 paths = System.Environment.GetEnvironmentVariable("PATH").Split(os.pathsep)
Doug Blank
Minimal changes to import IPython from IronPython
r15154 for path in paths:
filename = os.path.join(path, cmd)
if System.IO.File.Exists(filename):
return py3compat.bytes_to_str(filename)
raise OSError("command %r not found" % cmd)
def system(cmd):
"""
system(cmd) should work in a cli environment on Mac OSX, Linux,
and Windows
"""
psi = System.Diagnostics.ProcessStartInfo(cmd)
psi.RedirectStandardOutput = True
psi.RedirectStandardError = True
psi.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal
psi.UseShellExecute = False
# Start up process:
reg = System.Diagnostics.Process.Start(psi)
def getoutput(cmd):
"""
getoutput(cmd) should work in a cli environment on Mac OSX, Linux,
and Windows
"""
psi = System.Diagnostics.ProcessStartInfo(cmd)
psi.RedirectStandardOutput = True
psi.RedirectStandardError = True
psi.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal
psi.UseShellExecute = False
# Start up process:
reg = System.Diagnostics.Process.Start(psi)
myOutput = reg.StandardOutput
output = myOutput.ReadToEnd()
myError = reg.StandardError
error = myError.ReadToEnd()
return output
Amin Bandali
Add .NET implementation of check_pid
r17689
def check_pid(pid):
"""
Check if a process with the given PID (pid) exists
"""
try:
System.Diagnostics.Process.GetProcessById(pid)
Amin Bandali
Catch InvalidOperationException as well
r17690 # process with given pid is running
return True
except System.InvalidOperationException:
# process wasn't started by this object (but is running)
Amin Bandali
Add .NET implementation of check_pid
r17689 return True
except System.ArgumentException:
Amin Bandali
Catch InvalidOperationException as well
r17690 # process with given pid isn't running
Amin Bandali
Add .NET implementation of check_pid
r17689 return False