##// END OF EJS Templates
allow async output on the most recent request...
allow async output on the most recent request Keeps track of the most recent request, so async output is still allowed

File last commit:

r15248:00d0643a
r16359:5703415d
Show More
_process_cli.py
63 lines | 1.9 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