def testGlobalParser(args): from InitCrossReferenceGenerator import parseCrossRefGeneratorWithArgs from FileManDataToHtml import FileManDataToHtml crossRef = parseCrossRefGeneratorWithArgs(args) _doxURL = "http://code.osehra.org/dox/" if args.local: _doxURL = "../dox/" glbDataParser = FileManGlobalDataParser(args.MRepositDir, crossRef) assert '0' in glbDataParser.allFiles and '1' in glbDataParser.allFiles and set( args.fileNos).issubset(glbDataParser.allFiles) # Populate glbDataParser.globalLocationMap glbDataParser.parseZWRGlobalFileBySchemaV2( glbDataParser.allFiles['1']['path'], '1', '^DIC(') for fileNo in args.fileNos: assert fileNo in glbDataParser.globalLocationMap del glbDataParser.outFileManData['1'] glbDataParser.outdir = args.outdir glbDataParser.patchDir = args.patchRepositDir htmlGen = FileManDataToHtml(crossRef, args.outdir, doxURL=_doxURL) isolatedFiles = glbDataParser.schemaParser.isolatedFiles if not args.all or set(args.fileNos).issubset(isolatedFiles): for fileNo in args.fileNos: gdFile = glbDataParser.allFiles[fileNo]['path'] logging.info("Parsing file: %s at %s" % (fileNo, gdFile)) glbDataParser.parseZWRGlobalFileBySchemaV2(gdFile, fileNo) htmlGen.outputFileManDataAsHtml(glbDataParser) del glbDataParser.outFileManData[fileNo] else: # Generate all required files sccSet = glbDataParser.schemaParser.sccSet print sccSet fileSet = set(args.fileNos) for idx, value in enumerate(sccSet): fileSet.difference_update(value) if not fileSet: break for i in xrange(0, idx + 1): fileSet = fileSet.union(sccSet[i]) fileSet &= set(glbDataParser.allFiles.keys()) fileSet.discard('757') if len(fileSet) > 1: for file in fileSet: zwrFile = glbDataParser.allFiles[file]['path'] globalSub = glbDataParser.allFiles[file]['name'] logging.info("Generate file key index for: %s at %s" % (file, zwrFile)) glbDataParser.generateFileIndex(zwrFile, file) for file in fileSet: zwrFile = glbDataParser.allFiles[file]['path'] globalSub = glbDataParser.allFiles[file]['name'] logging.info("Parsing file: %s at %s" % (file, zwrFile)) glbDataParser.parseZWRGlobalFileBySchemaV2(zwrFile, file) htmlGen.outputFileManDataAsHtml(glbDataParser) del glbDataParser.outFileManData[file] glbDataParser.outRtnReferenceDict()
def run(args): from InitCrossReferenceGenerator import parseCrossRefGeneratorWithArgs from FileManDataToHtml import FileManDataToHtml # Ensure that output directory exists if not os.path.exists(os.path.join(args.outDir, "dox")): os.makedirs(os.path.join(args.outDir, "dox")) crossRef = parseCrossRefGeneratorWithArgs(args) # Populate glbDataParse glbDataParser = FileManGlobalDataParser(args.MRepositDir, crossRef) glbDataParser.parseZWRGlobalFileBySchemaV2( glbDataParser.allFiles['1']['path'][0], '1', '^DIC(') del glbDataParser.outFileManData['1'] glbDataParser.outdir = args.outDir glbDataParser.patchDir = args.patchRepositDir _doxURL = getDOXURL(args.local) _vivianURL = getViViaNURL(args.local) htmlGen = FileManDataToHtml(crossRef, glbDataParser.schemaParser, args.outDir, _doxURL, _vivianURL) if not args.all: assert set(args.fileNos).issubset(glbDataParser.allFiles) for fileNo in args.fileNos: assert fileNo in glbDataParser.globalLocationMap processFiles(glbDataParser, htmlGen, args.fileNos) else: # Start with 'Strongly connected components' fileSet = glbDataParser.schemaParser.sccSet # Add files we're specifically interested int fileSet.add('101') #Protocol fileSet.add('8994') #Remote Procedure fileSet.add('19') #Option fileSet.add('779.2') #HLO Application fileSet.add('9.7') #Install fileSet.add('.5') #Function fileSet.add('409.61') #List Template fileSet.add('19.1') #Security Key fileSet.add('9.2') #Help Frame fileSet.add('.403') #Form fileSet.add('.401') #Sort Template fileSet.add('771') #HL7 APPLICATION PARAMETER # Make sure to only use files that are in glbDataParser.allFiles.keys() fileSet &= set(glbDataParser.allFiles.keys()) for file in fileSet: for zwrFile in glbDataParser.allFiles[file]['path']: glbDataParser.generateFileIndex(zwrFile, file) processFiles(glbDataParser, htmlGen, fileSet) glbDataParser.outRtnReferenceDict()
def run(args): from InitCrossReferenceGenerator import parseCrossRefGeneratorWithArgs from FileManDataToHtml import FileManDataToHtml crossRef = parseCrossRefGeneratorWithArgs(args) _doxURL = getDOXURL(args.local) glbDataParser = FileManGlobalDataParser(args.MRepositDir, crossRef) assert '0' in glbDataParser.allFiles and '1' in glbDataParser.allFiles and set(args.fileNos).issubset(glbDataParser.allFiles) # Populate glbDataParser.globalLocationMap glbDataParser.parseZWRGlobalFileBySchemaV2(glbDataParser.allFiles['1']['path'], '1', '^DIC(') for fileNo in args.fileNos: assert fileNo in glbDataParser.globalLocationMap del glbDataParser.outFileManData['1'] glbDataParser.outdir = args.outdir glbDataParser.patchDir = args.patchRepositDir htmlGen = FileManDataToHtml(crossRef, args.outdir, _doxURL) isolatedFiles = glbDataParser.schemaParser.isolatedFiles if not args.all or set(args.fileNos).issubset(isolatedFiles): for fileNo in args.fileNos: gdFile = glbDataParser.allFiles[fileNo]['path'] logging.info("Parsing file: %s at %s" % (fileNo, gdFile)) glbDataParser.parseZWRGlobalFileBySchemaV2(gdFile, fileNo) htmlGen.outputFileManDataAsHtml(glbDataParser) del glbDataParser.outFileManData[fileNo] else: # Generate all required files sccSet = glbDataParser.schemaParser.sccSet print sccSet fileSet = set(args.fileNos) for idx, value in enumerate(sccSet): fileSet.difference_update(value) if not fileSet: break for i in xrange(0,idx+1): fileSet = fileSet.union(sccSet[i]) fileSet &= set(glbDataParser.allFiles.keys()) fileSet.discard('757') if len(fileSet) > 1: for file in fileSet: zwrFile = glbDataParser.allFiles[file]['path'] globalSub = glbDataParser.allFiles[file]['name'] logging.info("Generate file key index for: %s at %s" % (file, zwrFile)) glbDataParser.generateFileIndex(zwrFile, file) for file in fileSet: zwrFile = glbDataParser.allFiles[file]['path'] globalSub = glbDataParser.allFiles[file]['name'] logging.info("Parsing file: %s at %s" % (file, zwrFile)) glbDataParser.parseZWRGlobalFileBySchemaV2(zwrFile, file) htmlGen.outputFileManDataAsHtml(glbDataParser) del glbDataParser.outFileManData[file] glbDataParser.outRtnReferenceDict()
def run(args): from InitCrossReferenceGenerator import parseCrossRefGeneratorWithArgs from FileManDataToHtml import FileManDataToHtml # Ensure that output directory exists if not os.path.exists(os.path.join(args.outDir, "dox")): os.makedirs(os.path.join(args.outDir, "dox")) crossRef = parseCrossRefGeneratorWithArgs(args) # Populate glbDataParse glbDataParser = FileManGlobalDataParser(args.MRepositDir, crossRef) glbDataParser.parseZWRGlobalFileBySchemaV2(glbDataParser.allFiles['1']['path'][0], '1', '^DIC(') del glbDataParser.outFileManData['1'] glbDataParser.outdir = args.outDir glbDataParser.patchDir = args.patchRepositDir _doxURL = getDOXURL(args.local) _vivianURL = getViViaNURL(args.local) htmlGen = FileManDataToHtml(crossRef, glbDataParser.schemaParser, args.outDir, _doxURL, _vivianURL) if not args.all: assert set(args.fileNos).issubset(glbDataParser.allFiles) for fileNo in args.fileNos: assert fileNo in glbDataParser.globalLocationMap processFiles(glbDataParser, htmlGen, args.fileNos) else: # Start with 'Strongly connected components' fileSet = glbDataParser.schemaParser.sccSet # Add files we're specifically interested int fileSet.add('101') #Protocol fileSet.add('8994') #Remote Procedure fileSet.add('19') #Option fileSet.add('779.2') #HLO Application fileSet.add('9.7') #Install fileSet.add('.5') #Function fileSet.add('409.61') #List Template fileSet.add('19.1') #Security Key fileSet.add('9.2') #Help Frame fileSet.add('.403') #Form fileSet.add('.401') #Sort Template fileSet.add('771') #HL7 APPLICATION PARAMETER # Make sure to only use files that are in glbDataParser.allFiles.keys() fileSet &= set(glbDataParser.allFiles.keys()) for file in fileSet: for zwrFile in glbDataParser.allFiles[file]['path']: glbDataParser.generateFileIndex(zwrFile, file) processFiles(glbDataParser, htmlGen, fileSet) glbDataParser.outRtnReferenceDict()
def testGlobalParser(crosRef=None): parser = createArgParser() result = parser.parse_args() print result from InitCrossReferenceGenerator import parseCrossRefGeneratorWithArgs from FileManDataToHtml import FileManDataToHtml outputFile = open(os.path.join(result.outdir, "filesInfo.json"), 'wb') __generateGitRepositoryKey__(result.gitPath, result.MRepositDir, outputFile) 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]
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]
if result[0] != None: pageObject += """<a href='../dox/%s'>%s</a></br> """ % (getPackageHtmlFileName(result[1].getName()),nmsp) else: pageObject += nmsp + "</br>" output.write("<td>%s</td>\n" % pageObject) else: output.write("<td>%s</td>\n" % item) output.write("</tr>\n") output.write("</tbody>\n") output.write("</table>\n") output.write("</div>\n") output.write("</div>\n") output.write ("</body></html>\n") if __name__ == '__main__': initParser = createInitialCrossRefGenArgParser() parser = argparse.ArgumentParser( description='VistA Visual Namespace and Numberspace Generator', parents=[initParser]) parser.add_argument('-o', '--outdir', required=True, help='Output Web Page directory') parser.add_argument('-nn','--NameNumberdir', required=True, help='Path to directory with Name/Numberspace listing') result = parser.parse_args(); for file in glob.glob(os.path.join(result.NameNumberdir,"*.json")): jsonData = json.load(open(file,"r")) dataType = jsonData["headers"][0] if "Number" in dataType: dataType = "Numberspace" crossRef = parseCrossRefGeneratorWithArgs(result) generateListingPage(result.outdir,jsonData,dataType)
def run(args): from InitCrossReferenceGenerator import parseCrossRefGeneratorWithArgs from FileManDataToHtml import FileManDataToHtml logger.progress("Start FileMan Global Data Parser") # Ensure that output directory exists if not os.path.exists(os.path.join(args.outDir, "dox")): os.makedirs(os.path.join(args.outDir, "dox")) crossRef = parseCrossRefGeneratorWithArgs(args) # Populate glbDataParse logger.progress("Populate global data parser") glbDataParser = FileManGlobalDataParser(args.MRepositDir, crossRef) glbDataParser.parseZWRGlobalFileBySchemaV2(glbDataParser.allFiles['1']['path'][0], '1', '^DIC(') del glbDataParser.outFileManData['1'] glbDataParser.outdir = args.outDir glbDataParser.patchDir = args.patchRepositDir logger.progress("Fileman data to html") _doxURL = getDOXURL(args.local) _vivianURL = getViViaNURL(args.local) _filesURL = getFilesURL(args.local) htmlGen = FileManDataToHtml(crossRef, glbDataParser.schemaParser, args.outDir, _doxURL, _vivianURL, _filesURL) if not args.all: logger.progress("Checking files...") assert set(args.fileNos).issubset(glbDataParser.allFiles) for fileNo in args.fileNos: assert fileNo in glbDataParser.globalLocationMap logger.progress("Process files...") processFiles(glbDataParser, htmlGen, args.fileNos) else: # Start with 'Strongly connected components' fileSet = glbDataParser.schemaParser.sccSet # Add files we're specifically interested int fileSet.add('101') #Protocol fileSet.add('8994') #Remote Procedure fileSet.add('19') #Option fileSet.add('779.2') #HLO Application fileSet.add('9.6') #Build (needs to be before install) fileSet.add('9.7') #Install fileSet.add('.5') #Function fileSet.add('409.61') #List Template fileSet.add('19.1') #Security Key fileSet.add('9.2') #Help Frame fileSet.add('.403') #Form fileSet.add('.401') #Sort Template fileSet.add('771') #HL7 APPLICATION PARAMETER # Make sure to only use files that are in glbDataParser.allFiles.keys() fileSet &= set(glbDataParser.allFiles.keys()) n = 0 numFiles = len(fileSet) fileList = list(fileSet) # HACK: Sorts by File number coerced to float. Fixes some "dependency" # issues between files needed for later information. # # Depends # 9.7 => 9.6, to write out dependency information for patches # 19 => 9.4, to find and query for Package names of options found. fileList = sorted(fileList, key=lambda x: float(x)) for file in fileList: n += 1 logger.progress("Processing %s (file %d/%d)" % (file, n, numFiles)) for zwrFile in glbDataParser.allFiles[file]['path']: glbDataParser.generateFileIndex(zwrFile, file) logger.progress("Process files...") processFiles(glbDataParser, htmlGen, fileList) glbDataParser.outRtnReferenceDict()