<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def default_storable(python_type, exposes=None, version=None, storable_type=None, peek=default_peek):
 """ 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. """

    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)))