Determines whether given path is valid, and if so uses it.
            Otherwise searches both the working directory and nomenclate/core for the specified config file.

        :param config_filepath: str, file path or relative file name within package
        :return: str, resolved full file path to the config file

def resolve_config_file_path(self, config_filepath):
        """ Determines whether given path is valid, and if so uses it.
            Otherwise searches both the working directory and nomenclate/core for the specified config file.

        :param config_filepath: str, file path or relative file name within package
        :return: str, resolved full file path to the config file
        """
        search_paths = [config_filepath,
                        os.path.normpath(os.path.join(os.getcwd(), config_filepath)),
                        os.path.normpath(os.path.join(os.path.dirname(os.path.abspath(__file__)), config_filepath))]

        for search_path in search_paths:
            try:
                self.validate_config_file(search_path)
                return search_path
            except (IOError, OSError):
                pass

        raise errors.SourceError(
            'No config file found in current working directory or nomenclate/core and %s is not a valid YAML file')