'Return a dictionary subclass that saves itself when changed.
See :ref:`manual-settings` in the :ref:`user-manual` for more
information on how to use :attr:`settings` and **important
limitations** on what it can do.
:returns: :class:`~workflow.workflow.Settings` instance
initialised from the data in JSON file at
:attr:`settings_path` or if that doesn\'t exist, with the
``default_settings`` :class:`dict` passed to
:class:`Workflow` on instantiation.
:rtype: :class:`~workflow.workflow.Settings` instance'

@property
def settings(self):

    if (not self._settings):
        self.logger.debug(u'Reading    settings    from    `{0}`    ...'.format(self.settings_path))
        self._settings = Settings(self.settings_path, self._default_settings)
    return self._settings
