--- projects/pystatgrab/_statgrab.pyx 2007/07/13 22:26:19 1.20 +++ projects/pystatgrab/_statgrab.pyx 2008/06/16 21:06:49 1.21 @@ -17,7 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # -# $Id: _statgrab.pyx,v 1.20 2007/07/13 22:26:19 tdb Exp $ +# $Id: _statgrab.pyx,v 1.21 2008/06/16 21:06:49 tdb Exp $ # ctypedef long time_t @@ -274,15 +274,16 @@ py_SG_PROCESS_STATE_ZOMBIE = SG_PROCESS_STATE_ZOMBIE py_SG_PROCESS_STATE_UNKNOWN = SG_PROCESS_STATE_UNKNOWN -class Result: +class Result(dict): def __init__(self, attrs): - self.attrs = attrs - for attr in attrs: - setattr(self, attr, attrs[attr]) - def __getitem__(self, item): - return getattr(self, item) - def __repr__(self): - return str(self.attrs) + self.attrs = attrs # to maintain compatibility + super(Result, self).__init__(attrs) + + def __getattr__(self, item): + try: + return self.__getitem__(item) + except KeyError: + raise AttributeError(item) class StatgrabException(Exception): def __init__(self, value):