Skip to content

Improve support for new and user-defined Numpy dtypes (e.g. np.dtypes.StringDType) #4039

Open
@Zac-HD

Description

@Zac-HD

(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).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementit's not broken, but we want it to be betterinterophow to play nicely with other packages

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions