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

An interface for reading data objects of type Chem.Molecule from an arbitrary data source. More...

+ Inheritance diagram for CDPL.Chem.MoleculeReaderBase:

Public Member Functions

None __init__ ()
 Initializes the MoleculeReaderBase instance.
 
MoleculeReaderBase read (Molecule mol, bool overwrite=True)
 Reads the data record at the current record index and stores the read data in mol. More...
 
MoleculeReaderBase read (int idx, Molecule mol, bool overwrite=True)
 Reads the data record at index idx and stores the read data in mol. More...
 
MoleculeReaderBase 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__ ()
 
bool __bool__ ()
 
- 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 value)
 
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_value, bool local=False)
 
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 in the ControlParameterContainer instance cntnr. More...
 
None copyParameters (ControlParameterContainer cntnr)
 Replaces the current set of properties 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 a reference to 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 ()
 
list getParameterValues ()
 
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)
 
None __setitem__ (LookupKey key, Any value)
 
bool __delitem__ (LookupKey self)
 
bool __contains__ (LookupKey self, bool key)
 Returns the result of the membership test operation self in arg1. More...
 
int __len__ ()
 

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

An interface for reading data objects of type Chem.Molecule from an arbitrary data source.

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

From the MoleculeReaderBase 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(mol: Molecule) 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, the method read(std::size_t idx, mol: Molecule) is available. In contrast to the former read() method, this method 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 MoleculeReaderBase implementation may decide to throw an exception of type Base.IOError to report the error condition.

Member Function Documentation

◆ read() [1/2]

MoleculeReaderBase CDPL.Chem.MoleculeReaderBase.read ( Molecule  mol,
bool   overwrite = True 
)

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

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

Parameters
molThe Molecule object storing the read data.
overwriteSpecifies whether any existing data in mol 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]

MoleculeReaderBase CDPL.Chem.MoleculeReaderBase.read ( int  idx,
Molecule  mol,
bool   overwrite = True 
)

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

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.
molThe Molecule object storing the read data.
overwriteSpecifies whether any existing data in mol 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()

MoleculeReaderBase CDPL.Chem.MoleculeReaderBase.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.MoleculeReaderBase.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.MoleculeReaderBase.getRecordIndex ( )

Returns the index of the current data record.

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

◆ setRecordIndex()

None CDPL.Chem.MoleculeReaderBase.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.MoleculeReaderBase.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.MoleculeReaderBase.close ( )

Performs a reader specific shutdown operation (if required).

Exceptions
Base.IOErrorif an I/O error occurred.

◆ __nonzero__()

bool CDPL.Chem.MoleculeReaderBase.__nonzero__ ( )
Returns

◆ __bool__()

bool CDPL.Chem.MoleculeReaderBase.__bool__ ( )
Returns