code: def check_init_default_params_are_not_mutable(model):
      """Mutable parameters in signatures are discouraged, as explained in
      https://docs.python-guide.org/writing/gotchas/#mutable-default-arguments
  
      We enforce immutable parameters by only allowing a certain list of basic types.
  
      """
  
      allowed = (type(None), float, int, tuple, str, bool, type)
  
      for param in inspect.signature(
          model.__class__
      ).parameters.values():
          assert param.default is inspect._empty or isinstance(
              param.default, allowed
          )
  
imports: from __future__ import annotations
  import copy
  import inspect
  import pickle
  import random
  from .utils import assert_predictions_are_close, seed_params
label_desc: Use image node_id 15 for calling a global function with example usage: check_init_default_params_are_not_mutable(model) without return types