code: def default_storable(python_type, exposes=None, version=None, storable_type=None, peek=default_peek):
      
      if not exposes:
          for extension in expose_extensions:
              try:
                  exposes = extension(python_type)
              except (SystemExit, KeyboardInterrupt):
                  raise
              except:
                  pass
              else:
                  if exposes:
                      break
          if not exposes:
              raise AttributeError('`exposes` required for type: {!r}'.format(python_type))
      return Storable(python_type, key=storable_type, \
          handlers=StorableHandler(version=version, exposes=exposes, \
          poke=poke(exposes), peek=peek(python_type, exposes)))
docs: Default mechanics for building the storable instance for a type.
  
      Arguments:
  
          python_type (type): type.
  
          exposes (iterable): attributes exposed by the type.
  
          version (tuple): version number.
  
          storable_type (str): universal string identifier for the type.
  
          peek (callable): peeking routine.
  
      Returns:
  
          Storable: storable instance.