def __eq__(self, other):
        if not isinstance(other, Vulnerability):
            raise TypeError("Expected Vulnerability, got '%s' instead" % type(other))

        if other.cves != self.cves:
            return False
        if other.threat != self.threat:
            return False
        if other.name != self.name:
            return False
        if other.cvss != self.cvss:
            return False
        if other.description != self.description:
            return False
        if other.id != self.id:
            return False
        if other.level != self.level:
            return False
        if other.references != self.references:
            return False

        for host, port in self.hosts:
            for o_host, o_port in other.hosts:
                if o_host == host and o_port == port:
                    break
            else:
                return False

        return True
dataset/ETHPy150Open cr0hn/openvas_to_report/openvas_to_report/libs/data/parsed_data.py/Vulnerability.__eq__/original