'Merge options in lower and upper option lists into upper.
Default values in upper are overridden by
non default values in lower.'

def merge_options(self, lower, upper):

    for dest in lower.__dict__.keys():
        if (dest not in upper.__dict__):
            continue
        opt = self.option_by_dest(dest)
        if ((lower.__dict__[dest] != opt.default) and (upper.__dict__[dest] == opt.default)):
            upper.__dict__[dest] = lower.__dict__[dest]
