def __eq__(self, other):
        if isinstance(other, basestring):
            return self.__eq__(self.parse(other, 'utf-8'))
        return (
            self._scheme == other._scheme and
            self._host == other._host and
            self._path == other._path and
            self._port == other._port and
            self._params == other._params and
            self._query == other._query and
            self._fragment == other._fragment)
Subclasses can override this to tamper with the data dict that
dataset/ETHPy150Open circuits/circuits/circuits/web/url.py/URL.__eq__--crossover with--dataset/ETHPy150Open getlogbook/logbook/logbook/ticketing.py/TicketingHandler.process_record