-
-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Make test suite ready for NumPy 2.0.0 #4622
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
8ca6308 to
749d5df
Compare
packages/python/chart-studio/chart_studio/tests/test_optional/test_utils/test_utils.py
Outdated
Show resolved
Hide resolved
@bnavigator Is it okay if I push some changes here to handle both versions of numpy?
@bnavigator Is it okay if I push some changes here to handle both versions of numpy?
Yes, of course. Sorry I do not have time to enhance it myself right now.
e79e2d6 to
c9bdfbe
Compare
packages/python/plotly/plotly/tests/test_optional/test_utils/test_utils.py
Show resolved
Hide resolved
natsukium
commented
Nov 2, 2024
Thanks for tackling this issue.
I get the following error when using numpy2, do you know what it is?
Please let me know if this should be a separate issue/pr.
I haven't dived into the codebase yet, so I'll report back if I find out anything.
plotly/tests/test_optional/test_utils/test_utils.py::test_masked_constants_example fails with RecursionError: maximum recursion depth exceeded with numpy 2.1.2.
====================================================================================================== test session starts =======================================================================================================
platform linux -- Python 3.12.4, pytest-8.3.3, pluggy-1.5.0
rootdir: /root/plotly.py/packages/python/plotly
configfile: pytest.ini
collected 26 items
plotly/tests/test_optional/test_utils/test_utils.py .........................F [100%]
============================================================================================================ FAILURES ============================================================================================================
_________________________________________________________________________________________________ test_masked_constants_example __________________________________________________________________________________________________
@pytest.mark.matplotlib
def test_masked_constants_example():
try:
pd.options.plotting.backend = "matplotlib"
except Exception:
pass
# example from: https://gist.github.com/tschaume/d123d56bf586276adb98
data = {
"esN": [0, 1, 2, 3],
"ewe_is0": [-398.11901997, -398.11902774, -398.11897111, -398.11882215],
"ewe_is1": [-398.11793027, -398.11792966, -398.11786308, None],
"ewe_is2": [-398.11397008, -398.11396421, None, None],
}
df = pd.DataFrame.from_dict(data)
plotopts = {"x": "esN"}
fig, ax = plt.subplots(1, 1)
> df.plot(ax=ax, **plotopts)
plotly/tests/test_optional/test_utils/test_utils.py:456:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.12/site-packages/pandas/plotting/_core.py:1030: in __call__
return plot_backend.plot(data, kind=kind, **kwargs)
/usr/local/lib/python3.12/site-packages/pandas/plotting/_matplotlib/__init__.py:71: in plot
plot_obj.generate()
/usr/local/lib/python3.12/site-packages/pandas/plotting/_matplotlib/core.py:501: in generate
self._make_plot(fig)
/usr/local/lib/python3.12/site-packages/pandas/plotting/_matplotlib/core.py:1550: in _make_plot
newlines = plotf(
/usr/local/lib/python3.12/site-packages/pandas/plotting/_matplotlib/core.py:1586: in _plot
lines = MPLPlot._plot(ax, x, y_values, style=style, **kwds)
/usr/local/lib/python3.12/site-packages/pandas/plotting/_matplotlib/converter.py:95: in wrapper
return func(*args, **kwargs)
/usr/local/lib/python3.12/site-packages/pandas/plotting/_matplotlib/core.py:966: in _plot
y = np.ma.array(y)
/usr/local/lib/python3.12/site-packages/numpy/__init__.py:346: in __getattr__
import numpy.ma as ma
/usr/local/lib/python3.12/site-packages/numpy/__init__.py:346: in __getattr__
import numpy.ma as ma
E RecursionError: maximum recursion depth exceeded
!!! Recursion detected (same locals & position)
Thanks for tackling this issue. I get the following error when using numpy2, do you know what it is? Please let me know if this should be a separate issue/pr. I haven't dived into the codebase yet, so I'll report back if I find out anything.
I'm also seeing this error - you can see it's happening in the CI as well. I'm currently trying to investigate but if you figure anything out let me know!
The recursion error is fixed! 🎉
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💃
The soon to be released NumPy 2.0.0 removes some aliases of
np.nanandnp.inf, so these must be removed from the tests in order to keep the test suite green.Also, when testing data with small integer types like
int8, the literals need to be cast beforehand in order to avoid overflow errors.References
Code PR
plotly.graph_objects, my modifications concern thecodegenfiles and not generated files.(削除) For a new feature, I have added documentation examples in an existing ornew tutorial notebook (please see the doc checklist as well). (削除ここまで)
(削除) I have added a CHANGELOG entry if fixing/changing/adding anything substantial. (削除ここまで)(削除) For a new feature or a change in behaviour, I have updated the relevant docstrings in the code to describe the feature or behaviour (please see the doc checklist as well). (削除ここまで)