def __init__(self, MRepositDir, crossRef):
   self.patchDir = None
   self.MRepositDir = MRepositDir
   self._dataRoot = None
   self._crossRef = crossRef
   self._curFileNo =  None
   self._glbData = {} # fileNo => FileManData
   self._pointerRef = {}
   self._fileKeyIndex = {} # File: => ien => Value
   self._glbLocMap = initGlobalLocationMap # File: => Global Location
   self._rtnRefDict = {} # dict of rtn => fileNo => Details
   self.allFiles = self._getAllFileManZWRFiles()  # Dict of fileNum => Global file
   self.schemaParser = FileManSchemaParser()
   self._allSchemaDict = self.schemaParser.parseSchemaDDFileV2(self.allFiles['0']['path'])
def testGlobalParser(crosRef=None):
    parser = createArgParser()
    result = parser.parse_args()
    print result
    from InitCrossReferenceGenerator import parseCrossRefGeneratorWithArgs
    from FileManDataToHtml import FileManDataToHtml
    crossRef = parseCrossRefGeneratorWithArgs(result)
    glbDataParser = FileManGlobalDataParser(crossRef)
    #glbDataParser.parseAllZWRGlobaFilesBySchema(result.MRepositDir, allSchemaDict)

    allFiles = glbDataParser.getAllFileManZWRFiles(
        os.path.join(result.MRepositDir, 'Packages'), "*/Globals/*.zwr")
    assert '0' in allFiles and '1' in allFiles and set(
        result.fileNos).issubset(allFiles)
    schemaParser = FileManSchemaParser()
    allSchemaDict = schemaParser.parseSchemaDDFileV2(allFiles['0']['path'])
    isolatedFiles = schemaParser.isolatedFiles
    glbDataParser.parseZWRGlobalFileBySchemaV2(allFiles['1']['path'],
                                               allSchemaDict, '1', '^DIC(')
    glbDataParser._allFiles = allFiles
    glbDataParser._allSchemaDict = allSchemaDict
    for fileNo in result.fileNos:
        assert fileNo in glbDataParser.globalLocationMap
    if result.outdir:
        glbDataParser.outDir = result.outdir
    if result.patchRepositDir:
        glbDataParser.patchDir = result.patchRepositDir
    htmlGen = FileManDataToHtml(crossRef, result.outdir)
    if not result.all or set(result.fileNos).issubset(isolatedFiles):
        for fileNo in result.fileNos:
            gdFile = allFiles[fileNo]['path']
            logging.info("Parsing file: %s at %s" % (fileNo, gdFile))
            glbDataParser.parseZWRGlobalFileBySchemaV2(gdFile, allSchemaDict,
                                                       fileNo)
            if result.outdir:
                htmlGen.outputFileManDataAsHtml(glbDataParser)
            else:
                fileManDataMap = glbDataParser.outFileManData
                for file in getKeys(fileManDataMap.iterkeys(), float):
                    printFileManFileData(fileManDataMap[file])
            del glbDataParser.outFileManData[fileNo]
        glbDataParser.outRtnReferenceDict()
        return
    """ Also generate all required files as well """
    sccSet = schemaParser.sccSet
    fileSet = set(result.fileNos)
    for idx, value in enumerate(sccSet):
        fileSet.difference_update(value)
        if not fileSet:
            break
    for i in xrange(0, idx + 1):
        fileSet = sccSet[i]
        fileSet &= set(allFiles.keys())
        fileSet -= isolatedFiles
        fileSet.discard('757')
        if len(fileSet) > 1:
            for file in fileSet:
                zwrFile = allFiles[file]['path']
                globalSub = allFiles[file]['name']
                logging.info("Generate file key index for: %s at %s" %
                             (file, zwrFile))
                glbDataParser.generateFileIndex(zwrFile, allSchemaDict, file)
        for file in fileSet:
            zwrFile = allFiles[file]['path']
            globalSub = allFiles[file]['name']
            logging.info("Parsing file: %s at %s" % (file, zwrFile))
            glbDataParser.parseZWRGlobalFileBySchemaV2(zwrFile, allSchemaDict,
                                                       file)
            if result.outdir:
                htmlGen.outputFileManDataAsHtml(glbDataParser)
            del glbDataParser.outFileManData[file]
Exemple #3
0
def getAllSchema(allFiles):
    schemaParser = FileManSchemaParser()
    allSchemaDict = schemaParser.parseSchemaDDFileV2(allFiles['0']['path'])
    return allSchemaDict