diff --git a/rmgpy/rmg_obj.py b/rmgpy/rmg_obj.py new file mode 100644 index 00000000000..cf5b6e4723b --- /dev/null +++ b/rmgpy/rmg_obj.py @@ -0,0 +1,52 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +############################################################################### +# # +# RMG - Reaction Mechanism Generator # +# # +# Copyright (c) 2002-2018 Prof. William H. Green (whgreen@mit.edu), # +# Prof. Richard H. West (r.west@neu.edu) and the RMG Team (rmg_dev@mit.edu) # +# # +# Permission is hereby granted, free of charge, to any person obtaining a # +# copy of this software and associated documentation files (the 'Software'), # +# to deal in the Software without restriction, including without limitation # +# the rights to use, copy, modify, merge, publish, distribute, sublicense, # +# and/or sell copies of the Software, and to permit persons to whom the # +# Software is furnished to do so, subject to the following conditions: # +# # +# The above copyright notice and this permission notice shall be included in # +# all copies or substantial portions of the Software. # +# # +# THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # +# DEALINGS IN THE SOFTWARE. # +# # +############################################################################### +import numpy as np + +class RMG_Obj(object): + """ + This class provides a general as_dict method to help with yml file construction + for other objects in rmgpy to inherit + """ + def __init__(self): + pass + def as_dict(self): + D = self.__dict__.copy() + for key,val in D.iteritems(): + if not isinstance(val,float) and not isinstance(val,str): + if isinstance(val,np.ndarray): + D[key] = val.tolist() + elif isinstance(val,list): + pass + else: + D[key] = val.as_dict() + + D['class'] = self.__class__.__name__ + + return D \ No newline at end of file