def scopusParser(scopusFile):
    """Parses a scopus file, _scopusFile_, to extract the individual lines as [ScopusRecords](../classes/ScopusRecord.html#metaknowledge.scopus.ScopusRecord).

    A Scopus file is a csv (Comma-separated values) with a complete header, see [`scopus.scopusHeader`](#metaknowledge.scopus) for the entries, and each line after it containing a record's entry. The string valued entries are quoted with double quotes which means double quotes inside them can cause issues, see [scopusRecordParser()](#metaknowledge.scopus.recordScopus.scopusRecordParser) for more information.

    # Parameters

    _scopusFile_ : `str`

    > A path to a valid scopus file, use [isScopusFile()](#metaknowledge.scopus.scopusHandlers.isScopusFile) to verify

    # Returns

    `set[ScopusRecord]`

    > Records for each of the entries
    """
    #assumes the file is Scopus
    recSet = set()
    error = None
    lineNum = 0
    try:
        with open(scopusFile, 'r', encoding = 'utf-8') as openfile:
            #Get rid of the BOM
            openfile.read(1)
            header = openfile.readline()[:-1].split(',')
            if len(set(header) ^ set(scopusHeader)) == 0:
                header = None
            lineNum = 0
            try:
                for line, row in enumerate(openfile, start = 2):
                    lineNum = line
                    recSet.add(ScopusRecord(row, header = header, sFile = scopusFile, sLine = line))
            except BadScopusFile as e:
                if error is None:
                    error = BadScopusFile("The file '{}' becomes unparsable after line: {}, due to the error: {} ".format(scopusFile, lineNum, e))
    except (csv.Error, UnicodeDecodeError):
        if error is None:
            error = BadScopusFile("The file '{}' has parts of it that are unparsable starting at line: {}.".format(scopusFile, lineNum))
    return recSet, error
Parses a scopus file, _scopusFile_, to extract the individual lines as [ScopusRecords](../classes/ScopusRecord.html#metaknowledge.scopus.ScopusRecord).

    A Scopus file is a csv (Comma-separated values) with a complete header, see [`scopus.scopusHeader`](#metaknowledge.scopus) for the entries, and each line after it containing a record's entry. The string valued entries are quoted with double quotes which means double quotes inside them can cause issues, see [scopusRecordParser()](#metaknowledge.scopus.recordScopus.scopusRecordParser) for more information.

    # Parameters

    _scopusFile_ : `str`

    > A path to a valid scopus file, use [isScopusFile()](#metaknowledge.scopus.scopusHandlers.isScopusFile) to verify

    # Returns

    `set[ScopusRecord]`

    > Records for each of the entries