'Update basic attributes (\'ids\', \'names\', \'classes\',
\'dupnames\', but not \'source\') from node or dictionary `dict`.'

def update_basic_atts(self, dict):

    if isinstance(dict, Node):
        dict = dict.attributes
    for att in ('ids', 'classes', 'names', 'dupnames'):
        for value in dict.get(att, []):
            if (not (value in self[att])):
                self[att].append(value)
