def from_config_specs(cls, config_specs, prepare=True):
        """
        Alternate constructor that merges config attributes from
        ``$HOME/.bangrc`` and :attr:`config_specs` into a single
        :class:`Config` object.

        The first (and potentially *only* spec) in :attr:`config_specs` should
        be main configuration file for the stack to be deployed.  The returned
        object's :attr:`filepath` will be set to the absolute path of the first
        config file.

        If multiple config specs are supplied, their values are merged together
        in the order specified in :attr:`config_specs` - That is, later values
        override earlier values.

        :param config_specs:  List of config specs.
        :type config_specs:  :class:`list` of :class:`str`

        :param bool prepare:  Flag to control whether or not :meth:`prepare` is
            called automatically before returning the object.

        :rtype:  :class:`Config`

        """
        bangrc = parse_bangrc()
        config_dir = bangrc.get(A.CONFIG_DIR, DEFAULT_CONFIG_DIR)
        config_paths = [
                resolve_config_spec(cs, config_dir) for cs in config_specs
                ]
        config = cls()
        config.update(bangrc)
        if config_paths:
            config.filepath = config_paths[0]
        for c in config_paths:
            with open(c) as f:
                deep_merge_dicts(config, yaml.safe_load(f))
        if prepare:
            config.prepare()
        return config