def init_containers(self):
        """
        Tries to load and create all objects containers specified in config
        """
        containers = {}
        containers_from_local_config = context.app_config['containers']

        for container_name in containers_from_local_config.keys():
            try:
                container_classname = self.CONTAINER_CLASS % container_name.title()
                container_class = loader.import_class(self.CONTAINER_MODULE % (container_name, container_classname))
                containers[container_name] = container_class()
                context.log.debug('loaded container "%s" from %s' % (container_name, container_class))
            except:
                context.log.error('failed to load container %s' % container_name, exc_info=True)
        return containers
def read(config_name, config_file=None):
    """
    Reads specified config and caches it in CONFIG_CACHE dict

    Each config is a python file which can
    Typical name of config for example: /agent/config/app.py

    :param config_name: config name
    :return: python object
    """
    if config_name not in CONFIG_CACHE:
        full_module_name = 'amplify.agent.config.%s' % config_name
        class_name = '%sConfig' % context.environment.title()
        config_object = import_class('%s.%s' % (full_module_name, class_name))(config_file)
        CONFIG_CACHE[config_name] = config_object

    return CONFIG_CACHE[config_name]