code: def isconfigurabletype(mixed, *, strict=False):
      
      from bonobo.config.configurables import ConfigurableMeta, PartiallyConfigured
  
      if isinstance(mixed, ConfigurableMeta):
          return True
  
      if strict:
          return False
  
      if isinstance(mixed, PartiallyConfigured):
          return True
  
      if hasattr(mixed, "_partial") and mixed._partial:
          return True
  
      return False
docs: Check if the given argument is an instance of :class:`bonobo.config.ConfigurableMeta`, meaning it has all the
      plumbery necessary to build :class:`bonobo.config.Configurable`-like instances.
  
      :param mixed:
      :param strict: should we consider partially configured objects?
      :return: bool