Description
Summary
I'm about to release version 3.2.2 of pyparsing, which will be the last version to quietly accept both PEP8 and non-PEP8 method and argument names (for instance, accepting parseString
as an alias for parse_string
). In pyparsing version 3.3.0, usage of those synonyms will start emitting DeprecationWarnings
. In version 4.0.0 (currently planned not before 2026), the synonyms will be removed, so that usage of the legacy names will begin to raise various Python exceptions.
Proposed fix
Pyparsing 3.2.2 will include a scanner/converter script pyparsing.tools.cvt_pyparsing_pep8_names
to report needed name changes, and optionally update Python scripts in place (this utility is already checked in to GitHub if you wish to try it out before that version gets released). The modified scripts should be compatible back to pyparsing 3.0.0, with the exception of those using delimitedList
, which will require pyparsing 3.1.0. This script can be added to CI automation as a scanner to detect needed changes, and used manually to actually apply the necessary changes.
In addition, I plan to release at least 1 alpha and 1 beta release of 3.3.0 before a final release, so that the matplotlib team can run it through its paces.
matplotlib is one of the most significant users of pyparsing, and I would like to be sure that I can maintain compatibility with its uses of this package.