To discuss better general solutions to the __module__ issue, I've opened https://discuss.scientific-python.org/t/alternative-solution-to-modifications-of-module/2217 .
On Mon, Jan 5, 2026 at 6:37 AM Evgeni Burovski via NumPy-Discussion < [email protected]> wrote: > Indeed, nice catch! > > I opened https://github.com/scipy/scipy_doctest/issues/213 to investigate > a fix for numpy, scipy et al. > Your pandas fix AFAIU might include unrelated objects (e.g. > builtins.float.__new__) but definitely `matrix.all` is missing otherwise. > > While on the subject of the stdlib doctest deficiencies around methods of > objects, and in case it's relevant for pandas, > numpy had to work around doctests skipping member descriptors: > https://github.com/scipy/scipy_doctest/pull/180 > This might be relevant if you assemble an object from C. > > Cheers, > > Evgeni > > > On Sun, Jan 4, 2026 at 7:48 PM Richard Shadrach via NumPy-Discussion < > [email protected]> wrote: > >> I did a more systematic search and I think I found some cases. I'm not >> seeing methods of matrix such as np.matrix.all being run here: >> >> >> https://circleci.com/api/v1.1/project/github/numpy/numpy/51982/output/111/0?file=true&allocation-id=69343730dc0e375e9b03576e-0-build%2FABCDEFGH >> >> https://numpy.org/doc/stable/reference/generated/numpy.matrix.all.html#numpy-matrix-all >> >> Best, >> Richard >> >> On Sun, Jan 4, 2026 at 11:11 AM Richard Shadrach <[email protected]> >> wrote: >> >>> Similar to NumPy, pandas has modified the __module__ attribute of >>> various objects to point to their public location rather than where they >>> are defined in the code. Somewhat recently, we realized that this has >>> silently prevented many of our doctests from running. This is due to the >>> __module__ of the class no longer agreeing with the __module__ of the >>> methods on said class. When this occurs, CPython skips running the doctest >>> on the method due to this check: >>> >>> >>> https://github.com/python/cpython/blob/9bf5100037f661f3a369d3ee539bec06f063b650/Lib/doctest.py#L1069-L1072 >>> >>> since `self._from_module(module, val))` results in False. In pandas, >>> we've hacked our way around this check here: >>> >>> >>> https://github.com/pandas-dev/pandas/blob/91514c363604506f447e53380d3aa00520f1037b/pandas/conftest.py#L122-L131 >>> >>> I've spot-checked a few of the doctest from a recent PR in NumPy, and >>> from what I can tell NumPy is _not_ impacted by this. It seems to me that >>> on classes where the __module__ is being modified, the doctests are still >>> running. However I have not been able to tell why this is, so I am sending >>> this only out of caution in case I've missed something. >>> >>> Best, >>> Richard >>> >>> _______________________________________________ >> NumPy-Discussion mailing list -- [email protected] >> To unsubscribe send an email to [email protected] >> https://mail.python.org/mailman3//lists/numpy-discussion.python.org >> Member address: [email protected] >> > _______________________________________________ > NumPy-Discussion mailing list -- [email protected] > To unsubscribe send an email to [email protected] > https://mail.python.org/mailman3//lists/numpy-discussion.python.org > Member address: [email protected] >
_______________________________________________ NumPy-Discussion mailing list -- [email protected] To unsubscribe send an email to [email protected] https://mail.python.org/mailman3//lists/numpy-discussion.python.org Member address: [email protected]
