xonsh.procs.pipelines#

Command pipeline tools.

class xonsh.procs.pipelines.CommandPipeline(specs)[source]#

Represents a subprocess-mode command pipeline.

Parameters:
specslist of SubprocSpec

Process specifications

Attributes:
specSubprocSpec

The last specification in specs

procPopen-like

The process in procs

endedbool

Boolean for if the command has stopped executing.

inputstr

A string of the standard input.

outputstr

Non-blocking, lazy access to output

errorsstr

A string of the standard error.

lineslist of str

The output lines

starttimefloats or None

Pipeline start timestamp.

end(tee_output=True)[source]#

End the pipeline, return the controlling terminal if needed.

Main things done in self._end().

itercheck()[source]#

Iterates through the command lines and throws an error if the returncode is non-zero.

iterraw()[source]#

Iterates through the last stdout, and returns the lines exactly as found.

resume(job, tee_output=True)[source]#
stream_stderr(lines)[source]#

Streams lines to sys.stderr and the errors attribute.

tee_stdout()[source]#

Writes the process stdout to the output variable, line-by-line, and yields each line. This may optionally accept lines (in bytes) to iterate over, in which case it does not call iterraw().

property alias#

Alias the process used.

property args#

Arguments to the process.

attrnames = ('stdin', 'stdout', 'stderr', 'pid', 'returncode', 'args', 'alias', 'stdin_redirect', 'stdout_redirect', 'stderr_redirect', 'timestamps', 'executed_cmd', 'input', 'output', 'errors')#
property err#

Error messages as a string.

property executed_cmd#

The resolve and executed command.

property inp#

Creates normalized input string from args.

nonblocking = (<class '_io.BytesIO'>, <class 'xonsh.procs.readers.NonBlockingFDReader'>, <class 'xonsh.procs.readers.ConsoleParallelReader'>)#
property out#

Output value as a str.

property output#

Non-blocking, lazy access to output

property pid#

Process identifier.

property raw_err#

Errors as raw bytes.

property raw_out#

Output as raw bytes.

property returncode#

Process return code, waits until command is completed.

property rtn#

Alias to return code.

property stderr#

Process stderr.

property stderr_postfix#

Postfix to print after stderr, as bytes.

property stderr_prefix#

Prefix to print in front of stderr, as bytes.

property stderr_redirect#

Redirection used for stderr.

property stdin#

Process stdin.

property stdin_redirect#

Redirection used for stdin.

property stdout#

Process stdout.

property stdout_redirect#

Redirection used for stdout.

property timestamps#

The start and end time stamps.

class xonsh.procs.pipelines.HiddenCommandPipeline(specs)[source]#
Parameters:
specslist of SubprocSpec

Process specifications

Attributes:
specSubprocSpec

The last specification in specs

procPopen-like

The process in procs

endedbool

Boolean for if the command has stopped executing.

inputstr

A string of the standard input.

outputstr

Non-blocking, lazy access to output

errorsstr

A string of the standard error.

lineslist of str

The output lines

starttimefloats or None

Pipeline start timestamp.

end(tee_output=True)#

End the pipeline, return the controlling terminal if needed.

Main things done in self._end().

itercheck()#

Iterates through the command lines and throws an error if the returncode is non-zero.

iterraw()#

Iterates through the last stdout, and returns the lines exactly as found.

resume(job, tee_output=True)#
stream_stderr(lines)#

Streams lines to sys.stderr and the errors attribute.

tee_stdout()#

Writes the process stdout to the output variable, line-by-line, and yields each line. This may optionally accept lines (in bytes) to iterate over, in which case it does not call iterraw().

property alias#

Alias the process used.

property args#

Arguments to the process.

attrnames = ('stdin', 'stdout', 'stderr', 'pid', 'returncode', 'args', 'alias', 'stdin_redirect', 'stdout_redirect', 'stderr_redirect', 'timestamps', 'executed_cmd', 'input', 'output', 'errors')#
property err#

Error messages as a string.

property executed_cmd#

The resolve and executed command.

property inp#

Creates normalized input string from args.

nonblocking = (<class '_io.BytesIO'>, <class 'xonsh.procs.readers.NonBlockingFDReader'>, <class 'xonsh.procs.readers.ConsoleParallelReader'>)#
property out#

Output value as a str.

property output#

Non-blocking, lazy access to output

property pid#

Process identifier.

property raw_err#

Errors as raw bytes.

property raw_out#

Output as raw bytes.

property returncode#

Process return code, waits until command is completed.

property rtn#

Alias to return code.

property stderr#

Process stderr.

property stderr_postfix#

Postfix to print after stderr, as bytes.

property stderr_prefix#

Prefix to print in front of stderr, as bytes.

property stderr_redirect#

Redirection used for stderr.

property stdin#

Process stdin.

property stdin_redirect#

Redirection used for stdin.

property stdout#

Process stdout.

property stdout_redirect#

Redirection used for stdout.

property timestamps#

The start and end time stamps.

class xonsh.procs.pipelines.PrevProcCloser(pipeline)[source]#

Previous process closer thread for pipelines whose last command is itself unthreadable. This makes sure that the pipeline is driven forward and does not deadlock.

Parameters:
pipelineCommandPipeline

The pipeline whose prev procs we should close.

getName()#

Return a string used for identification purposes only.

This method is deprecated, use the name attribute instead.

isDaemon()#

Return whether this thread is a daemon.

This method is deprecated, use the daemon attribute instead.

is_alive()#

Return whether the thread is alive.

This method returns True just before the run() method starts until just after the run() method terminates. See also the module function enumerate().

join(timeout=None)#

Wait until the thread terminates.

This blocks the calling thread until the thread whose join() method is called terminates – either normally or through an unhandled exception or until the optional timeout occurs.

When the timeout argument is present and not None, it should be a floating point number specifying a timeout for the operation in seconds (or fractions thereof). As join() always returns None, you must call is_alive() after join() to decide whether a timeout happened – if the thread is still alive, the join() call timed out.

When the timeout argument is not present or None, the operation will block until the thread terminates.

A thread can be join()ed many times.

join() raises a RuntimeError if an attempt is made to join the current thread as that would cause a deadlock. It is also an error to join() a thread before it has been started and attempts to do so raises the same exception.

run()[source]#

Runs the closing algorithm.

setDaemon(daemonic)#

Set whether this thread is a daemon.

This method is deprecated, use the .daemon property instead.

setName(name)#

Set the name string for this thread.

This method is deprecated, use the name attribute instead.

start()#

Start the thread’s activity.

It must be called at most once per thread object. It arranges for the object’s run() method to be invoked in a separate thread of control.

This method will raise a RuntimeError if called more than once on the same thread object.

property daemon#

A boolean value indicating whether this thread is a daemon thread.

This must be set before start() is called, otherwise RuntimeError is raised. Its initial value is inherited from the creating thread; the main thread is not a daemon thread and therefore all threads created in the main thread default to daemon = False.

The entire Python program exits when only daemon threads are left.

property ident#

Thread identifier of this thread or None if it has not been started.

This is a nonzero integer. See the get_ident() function. Thread identifiers may be recycled when a thread exits and another thread is created. The identifier is available even after the thread has exited.

property name#

A string used for identification purposes only.

It has no semantics. Multiple threads may be given the same name. The initial name is set by the constructor.

property native_id#

Native integral thread ID of this thread, or None if it has not been started.

This is a non-negative integer. See the get_native_id() function. This represents the Thread ID as reported by the kernel.

xonsh.procs.pipelines.resume_process(p)[source]#

Sends SIGCONT to a process if possible.

xonsh.procs.pipelines.safe_readable(handle)[source]#

Attempts to find if the handle is readable without throwing an error.

xonsh.procs.pipelines.safe_readlines(handle, hint=-1)[source]#

Attempts to read lines without throwing an error.

xonsh.procs.pipelines.update_process_group(pipeline_group, background)[source]#