code: def get_env(key, *default, **kwargs):
      """
      Return env var.
      This is the parent function of all other get_foo functions,
      and is responsible for unpacking args/kwargs into the values
      that _get_env expects (it is the root function that actually
      interacts with environ).
      Args:
          key: string, the env var name to look up.
          default: (optional) the value to use if the env var does not
              exist. If this value is not supplied, then the env var is
              considered to be required, and a RequiredSettingMissingError
              error will be raised if it does not exist.
      Kwargs:
          coerce: a func that may be supplied to coerce the value into
              something else. This is used by the default get_foo functions
              to cast strings to builtin types, but could be a function that
              returns a custom class.
      Returns the env var, coerced if required, and a default if supplied.
      """
      assert len(default) in (0, 1), "Too many args supplied."
      func = kwargs.get("coerce", lambda x: x)
      required = len(default) == 0
      default = default[0] if not required else None
      return _get_env(
          key, default=default, coerce=func, required=required
      )
  
imports: import decimal
  import json
  import os
  from dateutil import parser
label_desc: Use image node_id 9 for calling a global function with example usage: get_env(key) and returns: _get_env