def drop_by_id(self, variables):
    "Remove a dict of variables from the user namespace, if they are the\n        same as the values in the dictionary.\n\n        This is intended for use by extensions: variables that they've added can\n        be taken back out if they are unloaded, without removing any that the\n        user has overwritten.\n\n        Parameters\n        ----------\n        variables : dict\n            A dictionary mapping object names (as strings) to the objects.\n        "
    for (name, obj) in variables.items():
        if ((name in self.user_ns) and (self.user_ns[name] is obj)):
            del self.user_ns[name]
            self.user_ns_hidden.pop(name, None)
Remove a dict of variables from the user namespace, if they are the
same as the values in the dictionary.

This is intended for use by extensions: variables that they've added can
be taken back out if they are unloaded, without removing any that the
user has overwritten.

Parameters
----------
variables : dict
    A dictionary mapping object names (as strings) to the objects.
def drop_by_id(self, variables):
    "Remove a dict of variables from the user namespace, if they are the\n        same as the values in the dictionary.\n\n        This is intended for use by extensions: variables that they've added can\n        be taken back out if they are unloaded, without removing any that the\n        user has overwritten.\n\n        Parameters\n        ----------\n        variables : dict\n            A dictionary mapping object names (as strings) to the objects.\n        "
    for (name, obj) in variables.items():
        if ((name in self.user_ns) and (self.user_ns[name] is obj)):
            del self.user_ns[name]
            self.user_ns_hidden.pop(name, None)