'Return a list of possible values for completion.
The default implementation just returns valid_values, but it might be
useful to override this for special cases.
Return:
A list of (value, description) tuples or None.'

def complete(self):

    if (self.valid_values is None):
        return None
    else:
        out = []
        for val in self.valid_values:
            try:
                desc = self.valid_values.descriptions[val]
            except KeyError:
                desc = ''
            out.append((val, desc))
        return out
