def __init__(self, model_num=None): """Set up the default objects of the model data container.""" # The model number. self.num = model_num # The empty molecule list. self.mol = MolList()
class ModelContainer(object): """Class containing all the model specific data.""" def __init__(self, model_num=None): """Set up the default objects of the model data container.""" # The model number. self.num = model_num # The empty molecule list. self.mol = MolList() def __repr__(self): """The string representation of the object. Rather than using the standard Python conventions (either the string representation of the value or the "<...desc...>" notation), a rich-formatted description of the object is given. """ # Intro. text = "Class containing the data for model %s.\n" % self.num # Objects. text = text + "\n" text = text + "Objects:\n" for name in dir(self): # Molecule list. if name == 'mol': text = text + " mol: The list of %s molecules within the model.\n" % len(self.mol) continue # Skip the ModelContainer methods. if name == 'is_empty': continue # Skip special objects. if match("^__", name): continue # Add the object's attribute to the text string. text = text + " " + name + ": " + repr(getattr(self, name)) + "\n" return text def is_empty(self): """Method for testing if this ModelContainer object is empty. @return: True if this container is empty and the model number has not been set, False otherwise. @rtype: bool """ # The model num has been set. if self.num != None: return False # An object has been added to the container. for name in dir(self): # Skip the objects initialised in __init__(). if name == 'num' or name == 'mol': continue # Skip the ModelContainer methods. if name == 'is_empty': continue # Skip special objects. if match("^__", name): continue # An object has been added. return False # The molecule list is not empty. if not self.mol.is_empty(): return False # The ModelContainer is unmodified. return True def mol_loop(self): """Generator method to loop over the molecules of this model. @return: The molecules of this model. @rtype: MolContainer instance """ # Loop over all molecules. for mol in self.mol: # No data, so do not yield the molecule. if mol.is_empty(): continue # Yield the molecule. yield mol
class ModelContainer(object): """Class containing all the model specific data.""" def __init__(self, model_num=None): """Set up the default objects of the model data container.""" # The model number. self.num = model_num # The empty molecule list. self.mol = MolList() def __repr__(self): """The string representation of the object. Rather than using the standard Python conventions (either the string representation of the value or the "<...desc...>" notation), a rich-formatted description of the object is given. """ # Intro. text = "Class containing the data for model %s.\n" % self.num # Objects. text = text + "\n" text = text + "Objects:\n" for name in dir(self): # Molecule list. if name == 'mol': text = text + " mol: The list of %s molecules within the model.\n" % len( self.mol) continue # Skip the ModelContainer methods. if name == 'is_empty': continue # Skip special objects. if match("^__", name): continue # Add the object's attribute to the text string. text = text + " " + name + ": " + repr(getattr(self, name)) + "\n" return text def is_empty(self): """Method for testing if this ModelContainer object is empty. @return: True if this container is empty and the model number has not been set, False otherwise. @rtype: bool """ # The model num has been set. if self.num != None: return False # An object has been added to the container. for name in dir(self): # Skip the objects initialised in __init__(). if name == 'num' or name == 'mol': continue # Skip the ModelContainer methods. if name == 'is_empty': continue # Skip special objects. if match("^__", name): continue # An object has been added. return False # The molecule list is not empty. if not self.mol.is_empty(): return False # The ModelContainer is unmodified. return True def mol_loop(self): """Generator method to loop over the molecules of this model. @return: The molecules of this model. @rtype: MolContainer instance """ # Loop over all molecules. for mol in self.mol: # No data, so do not yield the molecule. if mol.is_empty(): continue # Yield the molecule. yield mol