subprocess2.BackgroundTask
index

BackgroundTask.py - This contains the implementation and data storage for background tasks.
 
Copyright (c) 2015 Timothy Savannah LGPLv2 All rights reserved. See LICENSE file for more details.
 
  
BackgroundTaskInfo - This is the data structure returned immediately from Popen.runInBackground.
 
_py_read1 - Pure-python implementation of read1 method for non-blocking stream I/O 
 
BackgroundTaskThread - The work implementation of the thread spawned by Popen.runInBackground

 
Modules
       
select
sys
threading
time

 
Classes
       
__builtin__.object
BackgroundTaskInfo
threading.Thread(threading._Verbose)
BackgroundTaskThread

 
class BackgroundTaskInfo(__builtin__.object)
    BackgroundTaskInfo - Represents a task that was sent to run in the background. Will be updated as the status of that process changes.
 
    Can be used like an object or a dictionary.
 
This object populates its data automatically as the program runs in the background, managed by a thread.
 
Optional arg "encoding" - If provided, data will be automatically decoded using this codec. Otherwise, data will be stored as bytes.
 
FIELDS:
 
    stdoutData - Bytes read automatically from stdout, if stdout was a pipe, or from stderr if stderr was set to subprocess.STDOUT
    stderrData - Bytes read automatically from stderr, if different pipe than stdout.
    isFinished - False while the background application is running, True when it completes.
    returnCode - None if the program has not completed, otherwise the numeric return code.
    timeElapsed - Float of how many seconds have elapsed since the last update (updates happen very close to the "pollInterval" provided when calling runInBackground)
 
  Methods defined here:
__contains__(self, name)
__getitem__(self, name)
__init__(self, encoding=False)
__repr__(self)
__setitem__(self, name, value)
asDict(self)
asDict - Returns a copy of the current state as a dictionary. This copy will not be updated automatically.
 
@return <dict> - Dictionary with all fields in BackgroundTaskInfo.FIELDS
items(self)
keys(self)
waitToFinish(self, timeout=None, pollInterval=0.1)
waitToFinish - Wait (Block current thread), optionally with a timeout, until background task completes.
 
@param timeout <None/float> - None to wait forever, otherwise max number of seconds to wait
@param pollInterval <float> - Seconds between each poll. Keep high if interactivity is not important, low if it is.
 
@return - None if process did not complete (and timeout occured), otherwise the return code of the process is returned.

Data descriptors defined here:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)

Data and other attributes defined here:
FIELDS = ('stdoutData', 'stderrData', 'isFinished', 'returnCode', 'timeElapsed', 'encoding')

 
class BackgroundTaskThread(threading.Thread)
    BackgroundTaskThread - INTERNAL. The workhouse of a background task. This runs the actual task and populates the BackgroundTaskInfo object
 
 
Method resolution order:
BackgroundTaskThread
threading.Thread
threading._Verbose
__builtin__.object

Methods defined here:
__init__(self, pipe, taskInfo, pollInterval=0.1, encoding=False)
run(self)

Methods inherited from threading.Thread:
__repr__(self)
getName(self)
isAlive(self)
Return whether the thread is alive.
 
This method returns True just before the run() method starts until just
after the run() method terminates. The module function enumerate()
returns a list of all alive threads.
isDaemon(self)
is_alive = isAlive(self)
Return whether the thread is alive.
 
This method returns True just before the run() method starts until just
after the run() method terminates. The module function enumerate()
returns a list of all alive threads.
join(self, 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
isAlive() 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(self, daemonic)
setName(self, name)
start(self)
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.

Data descriptors inherited from threading.Thread:
daemon
A boolean value indicating whether this thread is a daemon thread (True) or not (False).
 
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 no alive non-daemon threads are
left.
ident
Thread identifier of this thread or None if it has not been started.
 
This is a nonzero integer. See the thread.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.
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.

Data descriptors inherited from threading._Verbose:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)