@classmethod
def from_config(cls, **config):
    """Manipulate the configuration settings."""
    missing = cls.REQUIRED.difference(config)
    if missing:
        message = 'missing required config keys ({}) from {}'
        raise TypeError(message.format(', '.join(missing), cls.
            FRIENDLY_NAME or cls.__name__))
    instance = cls(**config)
    return instance
