You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I would like to write a Python package that also installs an mpl style file. To do that, I can use the data_files attribute of setuptools. This allows me to install files anywhere in the installation directory, which, for pip on Linux, defaults to ~/.local. Unfortunately, mpl will search for mplstyle files only in ~/.config. This means that, for my package, I have to pull a weird stunt:
Install the file in ~/.local with the rest of the package
Upon "start-up" of the package (import or some function call), check if the file is already in mpl.get_configdir(), has the same content (for updates), and if not, copy it there. Possibly create the directory.
This feels a bit off.
I'd hence suggest that mpl also searches for mplstyle file in, e.g., ~/.local/share/matplotlib/. This would also better fit its nature, given that the file is not meant to be edited by the user.
The text was updated successfully, but these errors were encountered:
As argued elsewhere, I think it would be much simpler from a distribution POV to distribute style files as plain python packages (see e.g. #14943.). Even if you do want to keep the mplstyle syntax, just distribute them in a subpackage of your normal python package and make the usage import mystyle; mpl.style.use(mystyle.get_rc()) or something similar.
It's just one import, and then mpl.style.use(foobar.style), which is really not that bad. And as argued elsewhere, if your user has access to foobar.style (a dict), they have much more freedom to poke into it (it's a plain dict, they know how to handle that), whereas if they have access to "foobar" (a string), they can't do anything with it (other than passing it to mpl.style.use).
I would like to write a Python package that also installs an mpl style file. To do that, I can use the
data_files
attribute ofsetuptools
. This allows me to install files anywhere in the installation directory, which, for pip on Linux, defaults to~/.local
. Unfortunately, mpl will search for mplstyle files only in~/.config
. This means that, for my package, I have to pull a weird stunt:~/.local
with the rest of the packageimport
or some function call), check if the file is already inmpl.get_configdir()
, has the same content (for updates), and if not, copy it there. Possibly create the directory.This feels a bit off.
I'd hence suggest that mpl also searches for mplstyle file in, e.g.,
~/.local/share/matplotlib/
. This would also better fit its nature, given that the file is not meant to be edited by the user.The text was updated successfully, but these errors were encountered: