Skip to content

[ENH]: pyparsing 3.3.0a1 deprecation warnings #30617

Closed

Description

@woutdenolf

Problem

pip install --pre matplotlib

matplotlib 3.10.6

python -W always -c "import matplotlib"

.../python3.12/site-packages/matplotlib/_fontconfig_pattern.py:64: DeprecationWarning: 'oneOf' deprecated - use 'one_of'
  prop = Group((name + Suppress("=") + comma_separated(value)) | oneOf(_CONSTANTS))
.../python3.12/site-packages/matplotlib/_fontconfig_pattern.py:85: DeprecationWarning: 'parseString' deprecated - use 'parse_string'
  parse = parser.parseString(pattern)
.../python3.12/site-packages/matplotlib/_fontconfig_pattern.py:89: DeprecationWarning: 'resetCache' deprecated - use 'reset_cache'
  parser.resetCache()
.../python3.12/site-packages/matplotlib/_fontconfig_pattern.py:85: DeprecationWarning: 'parseString' deprecated - use 'parse_string'
  parse = parser.parseString(pattern)
.../python3.12/site-packages/matplotlib/_fontconfig_pattern.py:89: DeprecationWarning: 'resetCache' deprecated - use 'reset_cache'
  parser.resetCache()
.../python3.12/site-packages/matplotlib/_fontconfig_pattern.py:85: DeprecationWarning: 'parseString' deprecated - use 'parse_string'
  parse = parser.parseString(pattern)
.../python3.12/site-packages/matplotlib/_fontconfig_pattern.py:89: DeprecationWarning: 'resetCache' deprecated - use 'reset_cache'
  parser.resetCache()
.../python3.12/site-packages/matplotlib/_fontconfig_pattern.py:85: DeprecationWarning: 'parseString' deprecated - use 'parse_string'
  parse = parser.parseString(pattern)
.../python3.12/site-packages/matplotlib/_fontconfig_pattern.py:89: DeprecationWarning: 'resetCache' deprecated - use 'reset_cache'
  parser.resetCache()
.../python3.12/site-packages/matplotlib/_fontconfig_pattern.py:85: DeprecationWarning: 'parseString' deprecated - use 'parse_string'
  parse = parser.parseString(pattern)
.../python3.12/site-packages/matplotlib/_fontconfig_pattern.py:89: DeprecationWarning: 'resetCache' deprecated - use 'reset_cache'
  parser.resetCache()
.../python3.12/site-packages/matplotlib/_fontconfig_pattern.py:85: DeprecationWarning: 'parseString' deprecated - use 'parse_string'
  parse = parser.parseString(pattern)
.../python3.12/site-packages/matplotlib/_fontconfig_pattern.py:89: DeprecationWarning: 'resetCache' deprecated - use 'reset_cache'
  parser.resetCache()

Proposed solution

No response

Activity

  1. woutdenolf commented on Sep 29, 2025

    @woutdenolf
    Author

    I think this was supposed to fix it? #29745

  2. timhoffm commented on Sep 29, 2025

    @timhoffm
    Member

    Unfortunately, this was not backported to 3.10.6. I’ve opened a backport in #30589. Though, I’m not clear whether we’ll do a 3.10.7 since 3.11.0 will be released soon.

  3. tacaswell commented on Sep 29, 2025

    @tacaswell
    Member

    If we are going to put something on the backport branch I would rather put a cap on pyparsing rather than bump the floor.

  4. timhoffm commented on Sep 29, 2025

    @timhoffm
    Member

    In such a case, who would be winning the dependency resolution
    matplotlib 3.10.6 with pyparsing 3.3.0 (unbound) or matplotlib 3.10.7 with pyparsing 3.2.x?

    i.e. are we sure that a cap on pyparsing would work or could that just push users to the unpinned lower matplotlib versions?

  5. tacaswell commented on Sep 29, 2025

    @tacaswell
    Member

    Yeah, that is correct and is what pip/uv would do. I was thinking of communicating with down-stream packaging ecosystems (points to one of the inherent flaws in coupling the packaging meta-data [and build infrastructure] directly into the source).

    On conda-forge we can at least patch the meta-data.

  6. timhoffm commented on Sep 29, 2025

    @timhoffm
    Member

    We should have upped the dependency earlier, likely for 3.10 - pyparsing 3 was released in 2021. But given the current situation,
    I'd rather mildly bumb in a bugfix release than risking running into version concurrency through upper-pinning.

    The only other alternative I see would be to ask delaying the pyparsing 3.3 release to after our 3.11 release.

  7. ptmcg commented on Oct 9, 2025

    @ptmcg

    Thanks for jumping on the 3.3.0a1 release! Working kinks out with matplotlib was one of my major goals in putting that out in pypi.

    I just pushed out the last pyparsing 3.2.x release last month (September 2025), so I'm not in a super big hurry to put pyparsing 3.3.0 out. I'm happy to hold off until your 3.11 release. Is there a target release date for that version?

  8. timhoffm commented on Oct 9, 2025

    @timhoffm
    Member

    There is not a fixed date yet, but I project it will be around end of november.

  9. ksunden commented on Oct 9, 2025

    @ksunden
    Member

    @ptmcg We have now released MPL 3.10.7 which updates the pin on pyparsing, so no need to hold off on release on our account.

  10. added this to the v3.10.7 milestone on Oct 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions