Source code for ldaptor.insensitive

[docs]class InsensitiveString(str): """A str subclass that performs all matching without regard to case.""" def __eq__(self, other): if isinstance(other, basestring): return self.lower() == other.lower() else: return super(InsensitiveString, self).__eq__(other) def __ne__(self, other): if isinstance(other, basestring): return self.lower() != other.lower() else: return super(InsensitiveString, self).__ne__(self, other) def __ge__(self, other): if isinstance(other, basestring): return self.lower() >= other.lower() else: return super(InsensitiveString, self).__ge__(self, other) def __gt__(self, other): if isinstance(other, basestring): return self.lower() > other.lower() else: return super(InsensitiveString, self).__gt__(self, other) def __le__(self, other): if isinstance(other, basestring): return self.lower() <= other.lower() else: return super(InsensitiveString, self).__le__(self, other) def __lt__(self, other): if isinstance(other, basestring): return self.lower() < other.lower() else: return super(InsensitiveString, self).__lt__(self, other) def __hash__(self): return hash(self.lower()) def __contains__(self, other): if isinstance(other, basestring): return other.lower() in self.lower() else: return super(InsensitiveString, self).__contains__(self, other) def __getslice__(self, *a, **kw): r = super(InsensitiveString, self).__getslice__(*a, **kw) return self.__class__(r)