<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def peek_with_kwargs(init, args=[]):
 """ Make datatypes passing keyworded arguments to the constructor. This is a factory function; returns the actual `peek` routine. Arguments: init (callable):
 type constructor. args (iterable):
 arguments NOT to be keyworded; order does matter. Returns: callable: deserializer (`peek` routine). All the peeked attributes that are not referenced in `args` are passed to `init` as keyworded arguments. """

    def peek(store, container, _stack=None):
        return init(\
            *[ store.peek(attr, container, _stack=_stack) for attr in args ], \
            **dict([ (attr, store.peek(attr, container, _stack=_stack)) \
                for attr in container if attr not in args ]))
    return peek