def default_storable(python_type, exposes=None, version=None, storable_type=None, peek=default_peek):
if not exposes:<EOL><INDENT>for extension in expose_extensions:<EOL><INDENT>try:<EOL><INDENT>exposes = extension(python_type)<EOL><DEDENT>except (SystemExit, KeyboardInterrupt):<EOL><INDENT>raise<EOL><DEDENT>except:<EOL><INDENT>pass<EOL><DEDENT>else:<EOL><INDENT>if exposes:<EOL><INDENT>break<EOL><DEDENT><DEDENT><DEDENT>if not exposes:<EOL><INDENT>raise AttributeError('<STR_LIT>'.format(python_type))<EOL><DEDENT><DEDENT>return Storable(python_type, key=storable_type,handlers=StorableHandler(version=version, exposes=exposes,poke=poke(exposes), peek=peek(python_type, exposes)))<EOL>
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.