'Clean Up Expired Password Hints.
Any `password_expires_at` filters on the `list_users` or
`list_users_in_group` queries are modified so the call will
return valid data.
The filters `comparator` is changed to the operator specified in
the call, otherwise it is assumed to be `equals`. The filters
`value` becomes the timestamp specified. Both the operator and
timestamp are validated, and will raise a InvalidOperatorError
or ValidationTimeStampError exception respectively if invalid.'

def _translate_expired_password_hints(self, hints):

    operators = {'lt': operator.lt, 'gt': operator.gt, 'eq': operator.eq, 'lte': operator.le, 'gte': operator.ge, 'neq': operator.ne}
    for filter_ in hints.filters:
        if ('password_expires_at' == filter_['name']):
            if (':' in filter_['value'][2:4]):
                (op, timestamp) = filter_['value'].split(':', 1)
            else:
                op = 'eq'
                timestamp = filter_['value']
            try:
                filter_['value'] = timeutils.parse_isotime(timestamp)
            except ValueError:
                raise exception.ValidationTimeStampError
            try:
                filter_['comparator'] = operators[op]
            except KeyError:
                raise exception.InvalidOperatorError(op)
    return hints
