code: def get_env(key, *default, **kwargs):
      
      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)
docs: 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 RequiredSettingMissing
              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.