pkgsrc-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: pkgsrc/devel/py-pyparsing
Module Name: pkgsrc
Committed By: adam
Date: Fri Dec 26 10:21:29 UTC 2025
Modified Files:
pkgsrc/devel/py-pyparsing: Makefile PLIST distinfo
Log Message:
py-pyparsing: updated to 3.3.1
Version 3.3.1 - December, 2025
- Added license info to metadata, following PEP-639. Thanks to Gedalia Pasternak and
Marc Mueller for submitted issue and PR.
Version 3.3.0 - December, 2025
===========================================================================================
The version 3.3.0 release will begin emitting `DeprecationWarnings` for pyparsing methods
that have been renamed to PEP8-compliant names (introduced in pyparsing 3.0.0, in August,
2021, with legacy names retained as aliases). In preparation, I added in pyparsing
3.2.2 a utility for finding and replacing the legacy method names with the new names.
This utility is located at `pyparsing/tools/cvt_pep8_names.py`. This script will scan all
Python files specified on the command line, and if the `-u` option is selected, will
replace all occurrences of the old method names with the new PEP8-compliant names,
updating the files in place.
Here is an example that converts all the files in the pyparsing `/examples` directory:
python -m pyparsing.tools.cvt_pyparsing_pep8_names -u examples/*.py
The new names are compatible with pyparsing versions 3.0.0 and later.
===========================================================================================
- Deprecated `indentedBlock`, when converted using the `cvt_pyparsing_pep8_names`
utility, will emit `UserWarnings` that additional code changes will be required.
This is because the new `IndentedBlock` class no longer requires the calling code
to supply an indent stack, while adding support for nested indentation levels
and grouping.
- Deprecated `locatedExpr`, when converted using the `cvt_pyparsing_pep8_names`
utility, will emit `UserWarnings` that additional code changes may be required.
The new `Located` class removes the extra grouping level of the parsed values.
(If the original `locatedExpr` parser was defined with a results name, then
the extra grouping is retained, so that the results name nesting works properly;
in this case, no code changes would be required.)
- Updated all examples and test cases to use PEP8 names (unless the test case is specifically
designed to test behavior of a legacy method). Added railroad diagrams for some examples.
- Added exception handling when calling `formatted_message()`, so that `str(exception)`
always returns at least _something_.
- All unit tests pass with Python 3.14, including 3.14t. This does _not_ necessarily
mean that pyparsing is now thread-safe, just that when run in the free-threaded
interpreter, there were no errors. None of the unit tests try to do any parsing
with multiple threads - they test the basic functionality of the library, under various
versions of packrat and left-recursive parsing.
- Added AI instructions so that AI agents can be prompted with best practices
for generating parsers using pyparsing code. These instructions are in the
`ai/best_practices.md` file, and can be accessed programmatically by calling
`pyparsing.show_best_practices()` or running `python -m pyparsing.ai.show_best_practices`
from the command line, after installing the `pyparsing` package.
- Implemented a TINY language parser/interpreter using pyparsing, in the `examples/tiny`
directory. This is a little tutorial language that I used to demonstrate how to use pyparsing to
build a simple interpreter, following a recommended parser+AST+engine+run structure.
The `docs` sub-directory also includes transcripts of the AI session used to create the
parser and the interpreter. The `samples` sub-directory includes a few sample TINY programs.
- Fixed minor formatting bugs in `pyparsing.testing.with_line_numbers`, found during development
of the TINY language example.
- Added test in `DelimitedList` and `nested_expr` which auto-suppress delimiting commas to
avoid wrapping in a `Suppress` if delimiter is already a `Suppress`.
- Added performance benchmarking tools and documentation:
- `tests/perf_pyparsing.py` runs a series of benchmark parsing tests, exercising different
aspects of the pyparsing package. For cross-version analysis, this script can export
results as CSV and append to a consolidated data file.
- Runner scripts `run_perf_all_tags.bat` (Windows) and `run_perf_all_tags.sh` (Ubuntu/bash)
execute the benchmark across multiple Python versions (3.9–3.14) and pyparsing versions
(3.1.1 through 3.3.0), aggregating results into `perf_pyparsing.csv` at the repo root.
- See `tests/README.md` for usage instructions.
- Used performance benchmarking to identify and revert an inefficient utility method used in
`transform_string` (introduced in pyparsing 3.2.0b2).
To generate a diff of this commit:
cvs rdiff -u -r1.39 -r1.40 pkgsrc/devel/py-pyparsing/Makefile
cvs rdiff -u -r1.10 -r1.11 pkgsrc/devel/py-pyparsing/PLIST
cvs rdiff -u -r1.36 -r1.37 pkgsrc/devel/py-pyparsing/distinfo
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: pkgsrc/devel/py-pyparsing/Makefile
diff -u pkgsrc/devel/py-pyparsing/Makefile:1.39 pkgsrc/devel/py-pyparsing/Makefile:1.40
--- pkgsrc/devel/py-pyparsing/Makefile:1.39 Tue Sep 23 17:43:46 2025
+++ pkgsrc/devel/py-pyparsing/Makefile Fri Dec 26 10:21:29 2025
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.39 2025/09/23 17:43:46 adam Exp $
+# $NetBSD: Makefile,v 1.40 2025/12/26 10:21:29 adam Exp $
-DISTNAME= pyparsing-3.2.5
+DISTNAME= pyparsing-3.3.1
PKGNAME= ${PYPKGPREFIX}-${DISTNAME}
CATEGORIES= devel python
MASTER_SITES= ${MASTER_SITE_PYPI:=p/pyparsing/}
Index: pkgsrc/devel/py-pyparsing/PLIST
diff -u pkgsrc/devel/py-pyparsing/PLIST:1.10 pkgsrc/devel/py-pyparsing/PLIST:1.11
--- pkgsrc/devel/py-pyparsing/PLIST:1.10 Sat Apr 12 11:44:18 2025
+++ pkgsrc/devel/py-pyparsing/PLIST Fri Dec 26 10:21:29 2025
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.10 2025/04/12 11:44:18 adam Exp $
+@comment $NetBSD: PLIST,v 1.11 2025/12/26 10:21:29 adam Exp $
${PYSITELIB}/${WHEEL_INFODIR}/METADATA
${PYSITELIB}/${WHEEL_INFODIR}/RECORD
${PYSITELIB}/${WHEEL_INFODIR}/WHEEL
@@ -9,6 +9,16 @@ ${PYSITELIB}/pyparsing/__init__.pyo
${PYSITELIB}/pyparsing/actions.py
${PYSITELIB}/pyparsing/actions.pyc
${PYSITELIB}/pyparsing/actions.pyo
+${PYSITELIB}/pyparsing/ai/__init__.py
+${PYSITELIB}/pyparsing/ai/__init__.pyc
+${PYSITELIB}/pyparsing/ai/__init__.pyo
+${PYSITELIB}/pyparsing/ai/best_practices.md
+${PYSITELIB}/pyparsing/ai/show_best_practices/__init__.py
+${PYSITELIB}/pyparsing/ai/show_best_practices/__init__.pyc
+${PYSITELIB}/pyparsing/ai/show_best_practices/__init__.pyo
+${PYSITELIB}/pyparsing/ai/show_best_practices/__main__.py
+${PYSITELIB}/pyparsing/ai/show_best_practices/__main__.pyc
+${PYSITELIB}/pyparsing/ai/show_best_practices/__main__.pyo
${PYSITELIB}/pyparsing/common.py
${PYSITELIB}/pyparsing/common.pyc
${PYSITELIB}/pyparsing/common.pyo
Index: pkgsrc/devel/py-pyparsing/distinfo
diff -u pkgsrc/devel/py-pyparsing/distinfo:1.36 pkgsrc/devel/py-pyparsing/distinfo:1.37
--- pkgsrc/devel/py-pyparsing/distinfo:1.36 Tue Sep 23 17:43:46 2025
+++ pkgsrc/devel/py-pyparsing/distinfo Fri Dec 26 10:21:29 2025
@@ -1,5 +1,5 @@
-$NetBSD: distinfo,v 1.36 2025/09/23 17:43:46 adam Exp $
+$NetBSD: distinfo,v 1.37 2025/12/26 10:21:29 adam Exp $
-BLAKE2s (pyparsing-3.2.5.tar.gz) = b15f24d2ae99962ab0ce13a08682f75460f46d678a6f333e2dbf314407f242f8
-SHA512 (pyparsing-3.2.5.tar.gz) = e9c4e4c7a7e324331ced2214b5a406c538209fedd8b56ffa2a28b44b497be0d4a03b705e9ce9a449e8f126a8fa555e8c1572894b09dda0eda4e3da156ba7e3ff
-Size (pyparsing-3.2.5.tar.gz) = 1099274 bytes
+BLAKE2s (pyparsing-3.3.1.tar.gz) = 4cd8a24d0d6259f646fe81a5f4cb7feb779c727f799d9b60f9cd63018c74d8ee
+SHA512 (pyparsing-3.3.1.tar.gz) = 897335233a642fefd05e729d86caeb6d1bb6b5873d6f4cf67dd922d0ec188efd9c051e2dad60df08f4876b61923078bb03f4cd93e835fe12e5c4e1ff6d591daa
+Size (pyparsing-3.3.1.tar.gz) = 1550512 bytes
Home |
Main Index |
Thread Index |
Old Index