def attributes(cls):
        """Returns the list of noncallable attributes's names."""
        #Get mro list of interfaces.
        interfaces = [interface for interface in cls.mro() \
                      if isinstance(interface, Interface)]
        #Build list of attribs.
        attribs = {}
        for interface in interfaces:
            for attrib in interface.__attributes__:
                if not callable(getattr(interface, attrib)):
                    attribs[attrib] = None
        return attribs.keys()
Returns the list of noncallable attributes's names.
recipes/Python/164901_Simplified_Interface_Framework/recipe-164901.py