Chemical Data Processing Library Python API - Version 1.4.0
Public Member Functions | Properties | List of all members
CDPL.Chem.ReactionReaderBase Class Reference

Interface for reading data objects of type Chem.Reaction from an arbitrary data source. More...

+ Inheritance diagram for CDPL.Chem.ReactionReaderBase:

Public Member Functions

None __init__ ()
 Contructs the ReactionReaderBase instance.
 
ReactionReaderBase read (Reaction rxn, bool overwrite=True)
 Reads the data record at the current record index and stores the read data in rxn. More...
 
ReactionReaderBase read (int idx, Reaction rxn, bool overwrite=True)
 Reads the data record at index idx and stores the read data in rxn. More...
 
ReactionReaderBase skip ()
 Skips the data record at the current record index. More...
 
bool hasMoreData ()
 Tells if there are any data records left to read. More...
 
int getRecordIndex ()
 Returns the index of the current data record. More...
 
None setRecordIndex (int idx)
 Sets the index of the current data record to idx. More...
 
int getNumRecords ()
 Returns the total number of available data records. More...
 
None close ()
 Performs a reader specific shutdown operation (if required). More...
 
bool __nonzero__ ()
 Returns a boolean indicating the error state of the reader. More...
 
bool __bool__ ()
 Returns a boolean indicating the error state of the reader. More...
 
- Public Member Functions inherited from CDPL.Base.DataIOBase
int registerIOCallback (VoidDataIOBaseFunctor func)
 Registers an I/O callback target function. More...
 
None unregisterIOCallback (int id)
 Unregisters the I/O callback function specified by id. More...
 
None invokeIOCallbacks (float progress)
 Invokes all registered I/O callback functions with the argument self. More...
 
None clearIOCallbacks ()
 Clears all registered I/O callback functions.
 
- Public Member Functions inherited from CDPL.Base.ControlParameterContainer
None setParameter (LookupKey key, Any val)
 Sets the value of the control-parameter specified by key to val. More...
 
bool removeParameter (LookupKey key)
 Removes the entry for the control-parameter specified by key. More...
 
Any getParameter (LookupKey key, bool throw_=False, bool local=False)
 Returns the value of the control-parameter specified by key. More...
 
Any getParameterOrDefault (LookupKey key, Any def_val, bool local=False)
 Returns the value of the control-parameter specified by key , or the default value def_val if an entry does not exist. More...
 
bool isParameterSet (LookupKey key, bool local=False)
 Tells whether or not a value has been assigned to the control-parameter specified by key. More...
 
None clearParameters ()
 Erases all container entries. More...
 
None addParameters (ControlParameterContainer cntnr)
 Adds the control-parameter value entries of the ControlParameterContainer instance cntnr. More...
 
None copyParameters (ControlParameterContainer cntnr)
 Replaces the current control-parameter entries by a copy of the entries in cntnr. More...
 
int getNumParameters ()
 Returns the number of container entries. More...
 
int registerParameterChangedCallback (VoidLookupKeyAnyFunctor func)
 Registers a callback target function that gets invoked when the value of a control-parameter has changed. More...
 
None unregisterParameterChangedCallback (int id)
 Unregisters the callback specified by id. More...
 
int registerParameterRemovedCallback (VoidLookupKeyFunctor func)
 Registers a callback target function that gets invoked when a control-parameter entry has been removed. More...
 
None unregisterParameterRemovedCallback (int id)
 Unregisters the callback specified by id. More...
 
int registerParentChangedCallback (VoidFunctor func)
 Registers a callback target function that gets invoked when the parent container has been changed or was detached. More...
 
None unregisterParentChangedCallback (int id)
 Unregisters the callback specified by id. More...
 
ControlParameterContainer getParent ()
 Returns the parent control-parameter container. More...
 
None setParent (ControlParameterContainer cntnr)
 Sets or removes the parent control-parameter container used to resolve requests for missing entries. More...
 
list getParameterKeys ()
 Returns a list containing the keys of the current control-parameter entries. More...
 
list getParameterValues ()
 Returns a list containing the values of the current control-parameter entries. More...
 
list getParameters ()
 Returns a reference to itself. More...
 
int getObjectID ()
 Returns the numeric identifier (ID) of the wrapped C++ class instance. More...
 
Any __getitem__ (LookupKey key)
 Returns the value of the control-parameter specified by key. More...
 
None __setitem__ (LookupKey key, Any val)
 Sets the value of the control-parameter specified by key to val. More...
 
bool __delitem__ (LookupKey key)
 Removes the entry for the control-parameter specified by key. More...
 
bool __contains__ (LookupKey key)
 Tells whether or not a value has been assigned to the control-parameter specified by key. More...
 
int __len__ ()
 Returns the number of container entries. More...
 

Properties

 numRecords = property(getNumRecords)
 
- Properties inherited from CDPL.Base.ControlParameterContainer
 objectID = property(getObjectID)
 
 parent = property(getParent, setParent)
 
 parameterKeys = property(getParameterKeys)
 
 parameterValues = property(getParameterValues)
 
 parameters = property(getParameters)
 
 numParameters = property(getNumParameters)
 

Detailed Description

Interface for reading data objects of type Chem.Reaction from an arbitrary data source.

ReactionReaderBase is the common interface of classes which read objects of type Chem.Reaction from some data source (e.g. a file) that provides the data encoded in a particular storage format.

From the ReactionReaderBase interface point of view, the data source is organized as an array of logical data records. Each record is addressed by a zero-based sequential record index and contains the data for exactly one data object. The total number of available data records (which is equal to the maximum record index plus 1) can be queried by the method getNumRecords().

Similar to low-level file I/O, data records may either be read in a sequential or in a random access manner. For sequential access the method read(rxn: Reaction) is provided which will read the data record at the 'current' record index (similar to a file reference). The current record index is accessible by the method getRecordIndex() and can be modified using the method setRecordIndex() (similar to a seek operation).

For reading data records in a random access manner a special read() method version is provided that expects the index of the record to read as the first argument.

If a read() (or skip()) operation was successful, the current record index is updated to point to the record immediately following the just read (or skipped) data record. If an operation fails, the reader instance is set into an error state that can be queried by the special methods __bool__() and __nonzero__(). Additionally, a ReactionReaderBase implementation may decide to throw an exception of type Base.IOError to report the error condition.

Member Function Documentation

◆ read() [1/2]

ReactionReaderBase CDPL.Chem.ReactionReaderBase.read ( Reaction  rxn,
bool   overwrite = True 
)

Reads the data record at the current record index and stores the read data in rxn.

If the read operation was successful, the record index is incremented by 1.

Parameters
rxnThe Reaction object storing the read data.
overwriteSpecifies whether any existing data in rxn shall be replaced by the newly read data or if the read data should be appended (if supported by the reader and data type).
Returns
self.
Exceptions
Base.IOErrorif an I/O error occurred.

◆ read() [2/2]

ReactionReaderBase CDPL.Chem.ReactionReaderBase.read ( int  idx,
Reaction  rxn,
bool   overwrite = True 
)

Reads the data record at index idx and stores the read data in rxn.

If the read operation was successful, the record index is set to idx + 1.

Parameters
idxThe zero-based index of the data record to read.
rxnThe Reaction object storing the read data.
overwriteSpecifies whether any existing data in rxn shall be replaced by the newly read data or if the read data should be appended (if supported by the reader and data type).
Returns
self.
Exceptions
Base.IndexErrorif idx is greater or equal to the number of records. Base.IOError if an I/O error occurred.

◆ skip()

ReactionReaderBase CDPL.Chem.ReactionReaderBase.skip ( )

Skips the data record at the current record index.

If the operation was successful, the record index is incremented by 1.

Returns
self.
Exceptions
Base.IOErrorif an I/O error occurred.

◆ hasMoreData()

bool CDPL.Chem.ReactionReaderBase.hasMoreData ( )

Tells if there are any data records left to read.

Returns
True if there are data records left to read, and False otherwise.
Exceptions
Base.IOErrorif an I/O error occurred.

◆ getRecordIndex()

int CDPL.Chem.ReactionReaderBase.getRecordIndex ( )

Returns the index of the current data record.

Returns
The zero-based index of the current data record.

◆ setRecordIndex()

None CDPL.Chem.ReactionReaderBase.setRecordIndex ( int  idx)

Sets the index of the current data record to idx.

Parameters
idxThe zero-based index of the data record.
Exceptions
Base.IndexErrorif idx is greater or equal to the number of available data records. Base.IOError if an I/O error occurred.

◆ getNumRecords()

int CDPL.Chem.ReactionReaderBase.getNumRecords ( )

Returns the total number of available data records.

Returns
The total number of available data records.
Exceptions
Base.IOErrorif an I/O error occurred.

◆ close()

None CDPL.Chem.ReactionReaderBase.close ( )

Performs a reader specific shutdown operation (if required).

Exceptions
Base.IOErrorif an I/O error occurred.

◆ __nonzero__()

bool CDPL.Chem.ReactionReaderBase.__nonzero__ ( )

Returns a boolean indicating the error state of the reader.

This special method allows to write expressions like:

if reader: ...
if (reader.skip()) { ...
Returns
True if the reader is in a good state, and False otherwise.

◆ __bool__()

bool CDPL.Chem.ReactionReaderBase.__bool__ ( )

Returns a boolean indicating the error state of the reader.

This special method allows to write expressions like:

if reader: ...
if (reader.skip()) { ...
Returns
True if the reader is in a good state, and False otherwise.