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.
output
strNon-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.
- 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.
output
strNon-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.
- 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.safe_readable(handle)[source]#
Attempts to find if the handle is readable without throwing an error.