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()
Exemple #2
0
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()
Exemple #5
0
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)
Exemple #8
0
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()