class_docstr: This is a very simple wrapper to allow parameter "conversion" to be delayed until
  the `_set_constants` function in FlowSpec. Typically, parameters are converted
  by click when the command line option is processed. For some parameters, like
  IncludeFile, this is too early as it would mean we would trigger the upload
  of the file too early. If a parameter converts to a DelayedEvaluationParameter
  object through the usual click mechanisms, `_set_constants` knows to invoke the
  __call__ method on that DelayedEvaluationParameter; in that case, the __call__
  method is invoked without any parameter. The return_str parameter will be used
  by schedulers when they need to convert DelayedEvaluationParameters to a
  string to store them
class_docstr_tok: ["This","is","a","very","simple","wrapper","to","allow","parameter","``","conversion","''","to","be","delayed","until","the","`","_set_constants","`","function","in","FlowSpec",".","Typically",",","parameters","are","converted","by","click","when","the","command","line","option","is","processed",".","For","some","parameters",",","like","IncludeFile",",","this","is","too","early","as","it","would","mean","we","would","trigger","the","upload","of","the","file","too","early",".","If","a","parameter","converts","to","a","DelayedEvaluationParameter","object","through","the","usual","click","mechanisms",",","`","_set_constants","`","knows","to","invoke","the","__call__","method","on","that","DelayedEvaluationParameter",";","in","that","case",",","the","__call__","method","is","invoked","without","any","parameter",".","The","return_str","parameter","will","be","used","by","schedulers","when","they","need","to","convert","DelayedEvaluationParameters","to","a","string","to","store","them"]
code: def __init__(self, name, field, fun):
      self._name = name
      self._field = field
      self._fun = fun
  
imports: import json
  from typing import Any, Callable, Dict, NamedTuple, Optional, Type, Union
  from metaflow._vendor import click
  from .util import get_username, is_stringish
  from .exception import ParameterFieldFailed, ParameterFieldTypeMismatch, MetaflowException
label_desc: Use image node_id 1 to create a new DelayedEvaluationParameter object from inherited base classes: object with example: obj = DelayedEvaluationParameter(name, field, fun)