Example #1
0
 def generate(self):
     logger = self.logger
     outputter = self.OutputType()
     outputter.make_runner(parser=self.parser,
                           dry_run=self.dry_run,
                           setarith=self.setarith)
     con = fileless_context(scopes=[self.parse_result],
                            verbose=self.verbose,
                            logger=logger,
                            run_mode=self.run_mode)
     self.make_more(self.parse_result, con)
Example #2
0
    def get_string(self, varname):
        """!Resolves the given variable reference within the global scope

        @param varname a variable reference, such as "plat%BASELINE"
        to send to self.scope.resolve().  

        @returns the string value of the varname

        @raise KeyError if the variable does not exist"""
        var = self.scope.resolve(varname)
        con = fileless_context(verbose=self.verbose)
        return var.string_context(con)
Example #3
0
 def generate(self):
     """!Generates the on-disk files used to run the workflow."""
     logger = self.logger
     outputter = self.OutputType()
     outputter.make_runner(parser=self.parser,
                           dry_run=self.dry_run,
                           setarith=self.setarith)
     con = fileless_context(scopes=[self.parse_result],
                            verbose=self.verbose,
                            logger=logger,
                            run_mode=self.run_mode)
     self.make_more(self.parse_result, con)
Example #4
0
 def get_string(self, varname):
     var = self.scope.resolve(varname)
     con = fileless_context(verbose=self.verbose)
     return var.string_context(con)
Example #5
0
gfsvars={
  use gfspaths
  use plat
  use enable_ndslfv
  nam_dyn=[[[
&nam_dyn
# there would be many more variables here ...
  ndslfv=@[NDSLFV],
  mass_dp=@[MASS_DP],
  process_split=@[PROCESS_SPLIT],
/
]]]
  GFS_VERSION="v13.0.4"
}
'''

tokenizer = Tokenizer()
parser = Parser()
context = fileless_context()
scope = Scope()
parser.parse(tokenizer.tokenize(mystring, filename="(mystring)"), scope)


def get(var):
    return scope.resolve(var).string_context(context)


print "nam_dyn = \n%s\n" % (get('gfsvars%nam_dyn'), )
print "NWPROD = %s\n" % (get('plat%NWPROD'), )
print "FIXGLOBAL = %s\n" % (get('gfsvars%FIXGLOBAL'), )