Source code for enaml.resource
#------------------------------------------------------------------------------
# Copyright (c) 2012, Enthought, Inc.
# All rights reserved.
#------------------------------------------------------------------------------
from traits.api import HasTraits
[docs]class Resource(HasTraits):
""" A base class to use for creating resource objects.
"""
[docs] def class_name(self):
""" Get the class name of this resource.
"""
return type(self).__name__
[docs] def base_names(self):
""" Get the base class names of this resource.
"""
names = []
for base in type(self).mro()[1:]:
if base is Resource:
names.append(base.__name__)
break
names.append(base.__name__)
return names
[docs] def snapshot(self):
""" Get a snapshot dictionary for this resource.
Subclass should reimplement this method to add more metadata
to the snapshot dictionary.
"""
return {'class': self.class_name(), 'bases': self.base_names()}