code: def validate_parameter(
      parameter,
      allowed_modes,
      default_value,
      basic_type=str,
      heritable=True,
  ):
      """
      Validates the parameter and wraps it into a tuple with the
      inheritance option (if parameter is not a tuple already).
      In this case the parameter will become a tuple (parameter, 'inherit'),
      which will indicate that the stream settings will override this parameter.
      In case if the parameter is already a tuple specified as parameter=(value, 'strict'), then the parameter
      will not be overrided.
  
      Parameters
      ----------
      parameter : object
          The value of the parameter
      allowed_modes : dict or set
          Allowed values for the parameter
      default_value : object
          Default value to substitute if the parameter is None
      basic_type : type
          Type of the parameter.
      heritable : bool
          Whether to check for heretability option.
  
      Returns
      -------
      out : tuple
          New parameter value wrapped into a tuple.
  
      """
  
      if parameter is None:
          parameter = default_value
  
      if isinstance(parameter, basic_type) and heritable:
          parameter = (parameter, "inherit")
  
      if isinstance(parameter, list):
          parameter = tuple(parameter)
  
      if isinstance(parameter, tuple) and heritable:
          if len(parameter) != 2:
              raise ValueError
          if not isinstance(parameter[0], basic_type):
              raise TypeError
          if parameter[0] not in allowed_modes:
              raise ValueError
          if parameter[1] not in {"inherit", "strict"}:
              raise ValueError
      elif heritable:
          raise NotImplementedError
  
      return parameter
  
file_path: solt/solt/utils/_utils.py
imports: from functools import wraps
  import json
  import yaml
  import inspect
label_desc: Use image node_id 5 for calling a global function with example usage: validate_parameter(parameter, allowed_modes, default_value, basic_type, heritable) and returns: parameter