Package csb :: Package bio :: Package io :: Module wwpdb :: Class AsyncStructureParser
[frames] | no frames]

Class AsyncStructureParser

source code

object --+
         |
        AsyncStructureParser

Wraps StructureParser in an asynchronous call. Since a new process is started by Python internally (as opposed to only starting a new thread), this makes the parser slower, but provides a way to set a parse timeout limit.

If initialized with more than one worker, supports parallel parsing through the self.parse_async method.

Instance Methods
 
__init__(self, workers=1)
x.__init__(...) initializes x; see help(type(x)) for signature
source code
list
parse_async(self, structure_files, timeout, model=None, parser=<class 'csb.bio.io.wwpdb.RegularStructureParser'>)
Call self.parse_structure for a list of structure files simultaneously.
source code
csb.structure.Structure
parse_structure(self, structure_file, timeout, model=None, parser=<class 'csb.bio.io.wwpdb.RegularStructureParser'>)
Call StructureParser.parse_structure() in a separate process and return the output.
source code

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __str__, __subclasshook__

Properties

Inherited from object: __class__

Method Details

__init__(self, workers=1)
(Constructor)

source code 

x.__init__(...) initializes x; see help(type(x)) for signature

Parameters:
  • workers (int) - number of worker threads (1 by default)
Overrides: object.__init__
(inherited documentation)

parse_async(self, structure_files, timeout, model=None, parser=<class 'csb.bio.io.wwpdb.RegularStructureParser'>)

source code 

Call self.parse_structure for a list of structure files simultaneously. The actual degree of parallelism will depend on the number of workers specified while constructing the parser object.

Parameters:
  • structure_files (tuple of str) - a list of structure files
  • timeout (int) - raise multiprocessing.TimeoutError if timeout seconds elapse before the parser completes its job
  • parser (type) - any implementing AbstractStructureParser class
Returns: list
a list of AsyncParseResult objects

Note: Don't be tempted to pass a large list of structures to this method. Every time a TimeoutError is encountered, the corresponding worker process in the pool will hang until the process terminates on its own. During that time, this worker is unusable. If a sufficiently high number of timeouts occur, the whole pool of workers will be unsable. At the end of the method however a pool cleanup is performed and any unusable workers are 'reactivated'. However, that only happens at the end of parse_async.

parse_structure(self, structure_file, timeout, model=None, parser=<class 'csb.bio.io.wwpdb.RegularStructureParser'>)

source code 

Call StructureParser.parse_structure() in a separate process and return the output. Raise TimeoutError if the parser does not respond within timeout seconds.

Parameters:
  • structure_file (str) - structure file to parse
  • timeout (int) - raise multiprocessing.TimeoutError if timeout seconds elapse before the parser completes its job
  • parser (type) - any implementing AbstractStructureParser class
Returns: csb.structure.Structure
parsed structure