Arguments:

            storable (StorableHandler): storable instance.

            objname (any): record reference.

            obj (any): object to be serialized.

            container (any): container.

            visited (dict): map of the previously serialized objects that are
                passed by references; keys are the objects' IDs.

            _stack (CallStack): stack of parent object names.

        Trailing keyword arguments are passed to the :class:`Storable` instance's
        :attr:`~Storable.poke`.

def pokeStorable(self, storable, objname, obj, container, visited=None, _stack=None, **kwargs):
        """
        Arguments:

            storable (StorableHandler): storable instance.

            objname (any): record reference.

            obj (any): object to be serialized.

            container (any): container.

            visited (dict): map of the previously serialized objects that are
                passed by references; keys are the objects' IDs.

            _stack (CallStack): stack of parent object names.

        Trailing keyword arguments are passed to the :class:`Storable` instance's
        :attr:`~Storable.poke`.
        """
        #print((objname, storable.storable_type)) # debug
        storable.poke(self, objname, obj, container, visited=visited, _stack=_stack, **kwargs)
        try:
            record = self.getRecord(objname, container)
        except KeyError:
            # fake storable; silently skip
            if self.verbose:
                print("skipping `{}` (type: {})".format(objname, storable.storable_type))
                if 1 < self.verbose:
                    print(traceback.format_exc())
        else:
            self.setRecordAttr('type', storable.storable_type, record)
            if storable.version is not None:
                self.setRecordAttr('version', from_version(storable.version), record)