[Numpy-discussion] OpenOpt Suite release 0.45

Robert Kern robert.kern at gmail.com
Sat Mar 16 13:54:28 EDT 2013

On Sat, Mar 16, 2013 at 10:39 AM, Matthieu Brucher
<matthieu.brucher at gmail.com> wrote:
> Even if they have different hashes, they can be stored in the same
> underlying list before they are retrieved. Then, an actual comparison is
> done to check if the given key (i.e. object instance, not hash) is the same
> as one of the stored keys.

Right. And the rule is that if two objects compare equal, then they
must also hash equal. Unfortunately, it looks like `oofun` objects do
not obey this property. oofun.__eq__() seems to return a Constraint
rather than a bool, so oofun objects should simply not be used as
dictionary keys. That's quite possibly the source of the bug. Or at
least, that's a bug that needs to get fixed first before attempting to
debug anything else or attribute bugs to Python or numpy. Also, the
lack of a bool-returning __eq__() will prevent proper sorting, which
also seems to be used in the code snippet that Dmitrey showed.

Robert Kern

More information about the NumPy-Discussion mailing list