@classmethod
def from_section(cls, config, section, **kwargs):
    """
        Creates a :class:`~vsgen.project.VSGProject` from a :class:`~configparser.ConfigParser` section.

        :param ConfigParser config:   A :class:`~configparser.ConfigParser` instance.
        :param str          section:  A :class:`~configparser.ConfigParser` section key.
        :param              kwargs:   List of additional keyworded arguments to be passed into the :class:`~vsgen.project.VSGProject`.
        :return:                      A valid :class:`~vsgen.project.VSGProject` instance if succesful; None otherwise.
        """
    p = cls(**kwargs)
    p.Name = config.get(section, 'name', fallback=p.Name)
    p.FileName = config.getfile(section, 'filename', fallback=p.FileName)
    p.SearchPath = config.getdirs(section, 'search_path', fallback=p.SearchPath
        )
    p.OutputPath = config.getdir(section, 'output_path', fallback=p.OutputPath)
    p.WorkingDirectory = config.getdir(section, 'working_directory',
        fallback=p.WorkingDirectory)
    p.RootNamespace = config.get(section, 'root_namespace', fallback=p.
        RootNamespace)
    p.ProjectHome = config.getdir(section, 'project_home', fallback=p.
        ProjectHome)
    p.StartupFile = config.getfile(section, 'startup_file', fallback=p.
        StartupFile)
    p.CompileFiles = config.getlist(section, 'compile_files', fallback=p.
        CompileFiles)
    p.ContentFiles = config.getlist(section, 'content_files', fallback=p.
        ContentFiles)
    p.CompileInFilter = config.getlist(section, 'compile_in_filter',
        fallback=p.CompileInFilter)
    p.CompileExFilter = config.getlist(section, 'compile_ex_filter',
        fallback=p.CompileExFilter)
    p.ContentInFilter = config.getlist(section, 'content_in_filter',
        fallback=p.ContentInFilter)
    p.ContentExFilter = config.getlist(section, 'content_ex_filter',
        fallback=p.ContentExFilter)
    p.DirectoryInFilter = config.getlist(section, 'directory_in_filter',
        fallback=p.DirectoryInFilter)
    p.DirectoryExFilter = config.getlist(section, 'directory_ex_filter',
        fallback=p.DirectoryExFilter)
    root_path = config.get(section, 'root_path', fallback='')
    p.insert_files(root_path)
    return p
