Ignore:
Timestamp:
01/22/18 16:46:08 (6 years ago)
Author:
sdipsl
Message:
  • optimize the way we drive where dr2xml_${compname}.xml write files
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/libIGCM/libIGCM_post/xios_parser.py

    r1413 r1420  
    175175            print s1 
    176176        print '\n' 
    177      
     177    
     178def modifyPath(args): 
     179    """Recursively find tree element with file tag and change the path prefix of the name attribute.""" 
     180 
     181    # Loop over file_def files 
     182    for inputFile in args.file: 
     183        # Read the file_def_xml 
     184        if args.verbosity >= 1: print '\nReading dr2xml_def_xml=',inputFile 
     185        try: 
     186            tree = ET.parse(inputFile) 
     187        except: 
     188            print "Parse error. Please fix so that it can be parsed." 
     189            traceback.print_exc(file=sys.stdout) 
     190            return 
     191        root=tree.getroot() 
     192        if args.verbosity >= 3: print root.tag, root.attrib, '\n' 
     193 
     194        # Change file name prefix to point where we want 
     195        for elem in tree.iter(tag='file'): 
     196            name=elem.attrib.get('name') 
     197            elem.set('name', os.path.normpath(args.newPath[0]) + '/' + os.path.normpath(name)) 
     198            if args.verbosity >= 2: print elem.tag, elem.attrib 
     199 
     200        # Write out the results 
     201        if args.verbosity >= 1: print '\nWriting dr2xml_def_xml=','modified.' + inputFile 
     202        try: 
     203            tree.write ('modified.' + inputFile) 
     204        except: 
     205            print "Write error. Please fix so that it can be parsed." 
     206            traceback.print_exc(file=sys.stdout) 
     207            return 
     208  
    178209if __name__ == '__main__': 
    179210 
     
    206237        parser_check.set_defaults(func=check, correction=True) 
    207238 
    208         # create the parser for the "modify" command 
     239        # create the parser for the "modifyPath" command 
     240        parser_check = subparsers.add_parser('modifyPath', help='Will make sure dr2xml write files where it should be') 
     241        parser_check.add_argument('--newPath', nargs=1, required=True, help='Directory output for file produced from dr2xml_file type') 
     242        parser_check.add_argument('--file', nargs='+', required=True, help='XIOS xml dr2xml_file type') 
     243        parser_check.set_defaults(func=modifyPath) 
     244         
     245        # create the parser for the "showtime" command 
    209246        parser_check = subparsers.add_parser('showtime', help='Just want to make sure you feel good today') 
    210247        parser_check.set_defaults(func=showtime) 
Note: See TracChangeset for help on using the changeset viewer.