On Sat, May 15, 2021 at 2:09 AM David Mertz <mertz@gnosis.cx> wrote:
> Just add a ._uuid attribute and have object equality follow equality of that attribute. There's no reason to expose that in the .__repr__, but it would be inspectable in concept.
I think it's worth preserving the idiom of comparing sentinels using
`is`, as we do for `None` and other existing sentinel values. It's
relatively easy to do, such as by using a single-value Enum or by
using a class with a custom __new__.
This only works if:
a) Unpickling is within a single interpreter session
b) Sentinels are explicitly created in imported modules, not as a runtime, user-level creation
Maybe there's a way to do it, but how would you handle this situation:
if some_runtime_condition:
my_sentinal = Sentinel(desc="Gosh, I need a sentinel")
# ... code ...
pickle.dump(thing_using_sentinel, fh)
Equality is certainly a lot easier to get than identity here.
The dead increasingly dominate and strangle both the living and the
not-yet born. Vampiric capital and undead corporate persons abuse
the lives and control the thoughts of homo faber. Ideas, once born,
become abortifacients against new conceptions.