On 12/30/22 15:47, Paul Bryan wrote:
What kind of elements are being added to the set? Can you show reproducible sample code?

The objects in question are DHCP leases.  I consider them "equal" if
the lease address (or IPv6 prefix) is equal, even if the timestamps have
changed.  That code is not small, but it's easy to demonstrate the
behavior.

>>> import datetime
>>> class Foo(object):
...     def __init__(self, index):
...         self.index = index
...         self.timestamp = datetime.datetime.now()
...     def __eq__(self, other):
...         return type(other) is Foo and other.index == self.index
...     def __hash__(self):
...         return hash(self.index)
...     def __repr__(self):
...         return f'Foo({self.index}) created at {str(self.timestamp)}'
...
>>> f1 = Foo(1)
>>> s = { f1 }
>>> s
{Foo(1) created at 2022-12-30 16:24:12.352908}
>>> f2 = Foo(1)
>>> f2
Foo(1) created at 2022-12-30 16:24:35.489208
>>> s.add(f2)
>>> s
{Foo(1) created at 2022-12-30 16:24:12.352908}

--
========================================================================
Google                                      Where SkyNet meets Idiocracy
========================================================================

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to