Skip to content

Remove font preamble caching in TexManager. #14044

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

Merged
merged 1 commit into from
Mar 23, 2020

Conversation

anntzer
Copy link
Contributor

@anntzer anntzer commented Apr 25, 2019

TexManager has a complex caching machinery (... among other caching
layers) to map font-related rcParams to a tex preamble (see _rc_cache,
_rc_cache_keys, _reinit) but that's just a matter of a few dict
lookups which are negligible compared to invoking the subprocess; so
just strip out that caching and always regenerate the font-related
preamble.

That caching also set some attributes (texmanager.serif, etc.) as a
side-effect via setattr/getattr, which are used nowhere else (and
it's hard to know they even exist other than figuring out the relevant
setattr calls); just deprecate them.

(I have some followup cleanups on that...)

PR Summary

PR Checklist

  • Has Pytest style unit tests
  • Code is Flake 8 compliant
  • New features are documented, with examples if plot related
  • Documentation is sphinx and numpydoc compliant
  • Added an entry to doc/users/next_whats_new/ if major new feature (follow instructions in README.rst there)
  • Documented in doc/api/api_changes.rst if API changed in a backward-incompatible way

TexManager has a complex caching machinery (... among other caching
layers) to map font-related rcParams to a tex preamble (see `_rc_cache`,
`_rc_cache_keys`, `_reinit`) but that's just a matter of a few dict
lookups which are negligible compared to invoking the subprocess; so
just strip out that caching and always regenerate the font-related
preamble.

That caching also set some attributes (`texmanager.serif`, etc.) as a
side-effect via `setattr`/`getattr`, which are used nowhere else (and
it's hard to know they even exist other than figuring out the relevant
`setattr` calls); just deprecate them.
@anntzer
Copy link
Contributor Author

anntzer commented Mar 22, 2020

rebased

@timhoffm timhoffm added this to the v3.3.0 milestone Mar 23, 2020
@timhoffm timhoffm merged commit 65ebc8c into matplotlib:master Mar 23, 2020
@anntzer anntzer deleted the texmancache branch March 23, 2020 08:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants