code: def handle_args_and_set_context(args):
    
    parser = argparse.ArgumentParser()
    parser.add_argument("env", help="environment")
    parser.add_argument("path_to_template", help="path to the config template to process")
    parser.add_argument("--no_params", help="disable loading values from params file", action="store_true", default=False)
    parser.add_argument("--verbose", help="Output extra info", action="store_true", default=False)
    parser.add_argument("--lint", help="Test configs for valid JSON/YAML syntax", action="store_true", default=False)
    parser.add_argument("--silent", help="Suppress output of rendered template", action="store_true", default=False)
    parsed = vars(parser.parse_args(args))
    path_to_template = abspath(parsed["path_to_template"])
    service = path_to_template.split('/')[-3]
  
    return Context(
        get_account_alias(parsed["env"]),
        EFConfig.DEFAULT_REGION,
        parsed["env"],
        service,
        path_to_template,
        parsed["no_params"],
        parsed["verbose"],
        parsed["lint"],
        parsed["silent"]
    )
docs: Args:
      args: the command line args, probably passed from main() as sys.argv[1:]
    Returns:
      a populated Context object based on CLI args