Repository navigation
Closed
Labels
Release criticalFor bugs that make the library unusable (segfaults, incorrect plots, etc) and major regressions.For bugs that make the library unusable (segfaults, incorrect plots, etc) and major regressions.
Milestone
Description
Bug report
I am actually not sure if this is a bug. It started happening today for matplotlib installed from your master branch for our CI. We run some image tests using your dev version on CircleCI, which uses our tox.ini and some settings in astropy/conftest.py.
It starts to complain about no backend even though we set it at astropy/conftest.py#L84 and that works for older versions of matplotlib.
INTERNALERROR> File ".../matplotlib/__init__.py", line 843, in <module>
INTERNALERROR> fail_on_error=True)
INTERNALERROR> File ".../matplotlib/__init__.py", line 773, in _rc_params_in_file
INTERNALERROR> config[key] = val # try to convert to proper type or raise
INTERNALERROR> File ".../matplotlib/__init__.py", line 607, in __setitem__
INTERNALERROR> raise ValueError(f"Key {key}: {ve}") from None
INTERNALERROR> ValueError: Key backend: '' is not a valid value for backend; supported values are
['GTK3Agg', 'GTK3Cairo', 'MacOSX', 'nbAgg', 'Qt4Agg', 'Qt4Cairo', 'Qt5Agg', 'Qt5Cairo',
'TkAgg', 'TkCairo', 'WebAgg', 'WX', 'WXAgg', 'WXCairo', 'agg', 'cairo', 'pdf', 'pgf', 'ps', 'svg', 'template']
Code for reproduction
We can reproduce it on both GitHub Actions and CircleCI using tox + pytest but only with the dev version of matplotlib.
Actual outcome
See traceback above.
Expected outcome
It does not throw ValueError.
Matplotlib version
- Operating system: Ubuntu on Actions, some Linux image on CircleCI
- Matplotlib version (
import matplotlib; print(matplotlib.__version__)): matplotlib @ git+https://github.com/matplotlib/matplotlib.git@cc8669fc69b0cc618336a17d324f5fdbf1922f22 (reported by CircleCI) - Matplotlib backend (
print(matplotlib.get_backend())): Agg but somehow not registering (see above) - Python version: 3.7
- Jupyter version (if applicable): N/A
- Other libraries: There is a list on CircleCI log under pip freeze
Also, the Actions log.
Metadata
Metadata
Assignees
Labels
Release criticalFor bugs that make the library unusable (segfaults, incorrect plots, etc) and major regressions.For bugs that make the library unusable (segfaults, incorrect plots, etc) and major regressions.
Activity
QuLogic commentedon Apr 1, 2021
Probably related to #19603
pllim commentedon Apr 2, 2021
@QuLogic , what does that mean for downstream setup? Do we have to completely change the way we set backend for CI? Can you please advise? Thanks!
ianhi commentedon Apr 2, 2021
I ran into this yesterday as well and opened: matplotlib/pytest-mpl#117
For me this was failing just from using pytest-mpl before getting to any tests:
pllim commentedon Apr 2, 2021
It is unclear to me where the fix should be. Does pytest-mpl need to be fixed to be compatible now, or is this unintentional side effect of matplotlib change?
jklymak commentedon Apr 2, 2021
I'm pretty sure it's unintentional and as @QuLogic suggested probably caused by the merged change in the template handling. @anntzer is the expert on the fallback logic and maybe can tease it apart.
tacaswell commentedon Apr 2, 2021
This is definitely a fix on our side, I will look at this this afternoon.
pllim commentedon Apr 2, 2021
Thank you all for the quick responses!
FIX: ignore empty backend value in matplotlibrc
tacaswell commentedon Apr 2, 2021
See #19854