Description
(previously: #3950 and #3955 got existing functionality working on Numpy 2.0; now we want to support a new feature)
import numpy
from hypothesis import given
from hypothesis.extra.numpy import from_dtype
@given(from_dtype(numpy.dtypes.StringDType()))
def test(x):
pass
currently raises hypothesis.errors.InvalidArgument: No strategy inference for StringDType()
, which is not ideal for something that ships upstream. We could fix that with a special case, but I'd like to support user-defined extension dtypes too if possible, which I expect will take some kind of registry system. (I spoke to @ngoldbaum at Scipy and confirmed that we can't introspect dtypes from Python, though something Arrow-based might eventually be possible)
We should also improve the error message if you forget to construct an instance: it's all to easy to do and instead you see InvalidArgument: Expected dtype but got dtype=<class 'numpy.dtypes.StringDType'> (type=_DTypeMeta)
.