'Updates the values in the config from a Python file.  This function
behaves as if the file was imported as module with the
:meth:`from_object` function.
:param filename: the filename of the config.  This can either be an
absolute filename or a filename relative to the
root path.
:param silent: set to ``True`` if you want silent failure for missing
files.
.. versionadded:: 0.7
`silent` parameter.'

def from_pyfile(self, filename, silent=False):

    filename = os.path.join(self.root_path, filename)
    d = types.ModuleType('config')
    d.__file__ = filename
    try:
        with open(filename, mode='rb') as config_file:
            exec compile(config_file.read(), filename, 'exec') in d.__dict__
    except IOError as e:
        if (silent and (e.errno in (errno.ENOENT, errno.EISDIR))):
            return False
        e.strerror = ('Unable    to    load    configuration    file    (%s)' % e.strerror)
        raise
    self.from_object(d)
    return True
