So, I happened upon this strange issue where seeing if a set contains a Numpy dtype object vs. seeing if a tuple contains one gives different results:
In [1]: x = np.zeros(8)
In [2]: x.dtype
Out[2]: dtype('float64')
In [3]: x.dtype in (np.float32, np.float64)
Out[3]: True
In [4]: x.dtype in {np.float32, np.float64}
Out[4]: False
Why does this happen? What's preventing set().__contains__() from returning True when looking at numpy.dtype objects?