Author: bugman Date: Wed Apr 9 11:00:21 2008 New Revision: 5476 URL: http://svn.gna.org/viewcvs/relax?rev=5476&view=rev Log: Created the ResidueContainer.is_empty() method. Modified: 1.3/data/mol_res_spin.py Modified: 1.3/data/mol_res_spin.py URL: http://svn.gna.org/viewcvs/relax/1.3/data/mol_res_spin.py?rev=5476&r1=5475&r2=5476&view=diff ============================================================================== --- 1.3/data/mol_res_spin.py (original) +++ 1.3/data/mol_res_spin.py Wed Apr 9 11:00:21 2008 @@ -209,6 +209,43 @@ return text + def is_empty(self): + """Method for testing if this ResidueContainer object is empty. + + @return: True if this container is empty and the residue number and name have not been + set, False otherwise. + @rtype: bool + """ + + # The residue number or residue name have been set. + if self.num != None or self.name != 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 == 'name' or name == 'select' or name == 'spin': + continue + + # Skip the ResidueContainer methods. + if name == 'is_empty': + continue + + # Skip special objects. + if match("^__", name): + continue + + # An object has been added. + return False + + # The spin list is not empty. + if not self.spin.is_empty(): + return False + + # The ResidueContainer is unmodified. + return True + + class ResidueList(list): """List type data container for residue specific data."""