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]