pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/textproc/py-tomlkit



Module Name:    pkgsrc
Committed By:   wiz
Date:           Sun Jul 19 10:52:28 UTC 2026

Modified Files:
        pkgsrc/textproc/py-tomlkit: Makefile PLIST distinfo

Log Message:
py-tomlkit: update to 0.15.1.

## [0.15.1] - 2026-07-17

### Changed

- Speed up membership tests (`key in ...`) on `Container`, `Table` and `InlineTable` with native `__contains__` implementations, avoiding the inherited `MutableMapping` round-trip through 
`__getitem__` (which resolves the value and builds an exception on every absent key). ([#483](https://github.com/python-poetry/tomlkit/issues/483))
- Speed up parsing by making `Source` index-based: it now tracks an integer position over the input string instead of materializing a list of `(index, char)` tuples up front, so construction is O(1) 
and state save/restore no longer copies an iterator. ([#489](https://github.com/python-poetry/tomlkit/pull/489))
- Speed up parsing by scanning character runs in bulk: `Source.advance_while`/`advance_until` consume a whole run of whitespace, bare-key or number characters in a single pass over the input string 
instead of one `inc()` call per character. ([#490](https://github.com/python-poetry/tomlkit/pull/490))
- Speed up parsing of single-line strings by bulk-appending the run of ordinary characters up to the next delimiter, backslash or control character in one pass, instead of one character at a time. 
([#491](https://github.com/python-poetry/tomlkit/pull/491))
- Speed up parsing by removing the internal `TOMLChar` wrapper: the parser now reads plain `str` characters from `Source` and detects end-of-input positionally, avoiding a per-character object 
construction and method dispatch. ([#492](https://github.com/python-poetry/tomlkit/pull/492))
- Speed up parsing by comparing `StringType` members by identity (`is`) instead of building a set on every `is_basic`/`is_literal`/`is_singleline`/`is_multiline` call, avoiding millions of enum 
hashes while parsing. ([#502](https://github.com/python-poetry/tomlkit/pull/502))
- Speed up merging super tables by merging in place instead of deep-copying the growing target on every merge, turning the parse of documents with many subtables under a shared super table (e.g. 
consecutive `[a.b.c]` / `[a.b.d]` headers) from O(n²) into O(n). ([#503](https://github.com/python-poetry/tomlkit/pull/503))
- Speed up membership tests (`key in ...`) on out-of-order tables with a native `OutOfOrderTableProxy.__contains__`, completing [#483](https://github.com/python-poetry/tomlkit/issues/483) for the 
last mapping type that still inherited the slow `MutableMapping` mixin (which resolves the value and builds an exception on every absent key). 
([#515](https://github.com/python-poetry/tomlkit/pull/515))
- Speed up parsing documents with many dotted keys or table headers sharing a prefix by validating out-of-order tables incrementally: each new fragment is merged into a cached validation container 
once, instead of re-merging (and deep-copying) every earlier fragment on each append, turning a super-cubic worst case into linear time (80 shared-prefix dotted keys: ~8 s → ~10 ms). 
([#479](https://github.com/python-poetry/tomlkit/issues/479))
- Speed up parsing of arrays that close right after a value (e.g. the `files = [...]` blocks that dominate lock files): the parser no longer attempts to read a value while sitting on the closing `]`, 
which previously built an `UnexpectedCharError` just to discard it — and constructing that exception eagerly computes a line/column by scanning the whole document, making it O(document size) per such 
array. ([#517](https://github.com/python-poetry/tomlkit/pull/517))
- Speed up parsing of multiline strings by bulk-appending the run of ordinary characters — across raw line feeds and tabs — up to the next delimiter, backslash, carriage return or control character, 
instead of one character at a time. This extends to `"""`/`'''` bodies the single-line fast path added in [#491](https://github.com/python-poetry/tomlkit/pull/491); a `\r` still stops the scan so 
`\r\n` stays validated and byte-for-byte preserved. ([#518](https://github.com/python-poetry/tomlkit/pull/518))
- Speed up `unwrap()` (converting a parsed document to a plain `dict`) by resolving each key directly from the container's key map instead of iterating the inherited `MutableMapping` view, which 
rebuilt a `SingleKey` from the bare string for every key just to re-look-up the value. Out-of-order tables still resolve through their proxy, so their validation is unchanged. 
([#521](https://github.com/python-poetry/tomlkit/pull/521))
- Speed up rendering (`as_string()` / `dumps()`) of inline tables with many keys by precomputing the last-key and last-deleted-element indices in a single pass, instead of rescanning the remaining 
body on every separator comma — turning an O(n²) render into O(n). ([#525](https://github.com/python-poetry/tomlkit/pull/525))
- Raise on malformed array element instead of dropping it, ([#527](https://github.com/python-poetry/tomlkit/pull/527))

### Fixed

- Fix `string()` dropping a leading newline of a multiline string on round-trip: a value beginning with a newline is now rendered with an extra leading newline (the one the parser trims after the 
opening delimiter) so it survives re-parsing.
- Fix invalid serialization with a duplicated comma when removing a non-edge element from a parsed inline table. ([#486](https://github.com/python-poetry/tomlkit/pull/486))
- Fix invalid serialization with a duplicated comma when appending or inserting into a comma-first formatted array. ([#499](https://github.com/python-poetry/tomlkit/pull/499))
- Fix `ParseError` when a sub-table extends the last element of an array of tables after an unrelated table. ([#261](https://github.com/python-poetry/tomlkit/issues/261))
- Fix unparseable serialization when adding a key to a dotted-key table inside an inline table. ([#500](https://github.com/python-poetry/tomlkit/pull/500))
- Fix a table replaced by a plain value being serialized inside the preceding table's body when other tables follow; the value now moves before the first table like other root-level values. 
([#504](https://github.com/python-poetry/tomlkit/issues/504))
- Fix assigning a table over a dotted key (e.g. `doc["a"] = {...}` where `a` came from `a.b = ...`): the dotted prefix was duplicated onto the new `[a]` header, and the header then swallowed any 
sibling that follows it on round-trip. The replacement now renders as a plain table and, when needed, moves before the inline entries (values and dotted keys) it would otherwise capture. 
([#513](https://github.com/python-poetry/tomlkit/issues/513), [#524](https://github.com/python-poetry/tomlkit/issues/524))
- Restore `dumps()` rendering mapping-like wrappers around a parsed document (e.g. `dotty_dict`'s `Dotty`) through their delegated `as_string`, preserving the original table order and layout instead 
of re-encoding through a plain dict — a 0.15.0 regression. ([#482](https://github.com/python-poetry/tomlkit/issues/482))
- Fix uncontrolled recursion when parsing deeply nested documents: crafted input could crash the process with a `RecursionError`. Values nested more than 100 levels deep and keys with more than 100 
dotted fragments now raise `ParseError`. ([#459](https://github.com/python-poetry/tomlkit/issues/459))
- Fix `comment()` producing invalid TOML for a multiline string by prefixing every line with `#`, not just the first. ([#449](https://github.com/python-poetry/tomlkit/issues/449))
- Fix the separator comma being swallowed by a trailing comment when appending a key to a multiline inline table, leaving the new key without a separator so the result no longer round-trips. 
([#512](https://github.com/python-poetry/tomlkit/issues/512))
- Fix a `KeyAlreadyPresent` error when parsing or accessing an out-of-order table whose array-of-tables elements are split across the table's parts. 
([#505](https://github.com/python-poetry/tomlkit/issues/505))
- Out-of-order value-vs-table and dotted-key-vs-table redefinitions are now rejected at parse time instead of being silently accepted or raising only on access. The parser also detects when a 
non-dotted key is a prefix of an existing dotted key, matching the stdlib `tomllib` behaviour. ([#523](https://github.com/python-poetry/tomlkit/issues/523))
- Reject tables inserted into inline tables instead of serializing invalid TOML. ([#531](https://github.com/python-poetry/tomlkit/issues/531))
- Fix assigning an array of tables over a dotted key (e.g. `doc["a"] = aot(...)` where `a` came from `a.b = ...`): the new `[[a]]` header kept the dotted key's inline position and swallowed the 
following dotted sibling on round-trip. The array of tables now renders past the inline entries it would otherwise capture, mirroring the table fix for 
[#513](https://github.com/python-poetry/tomlkit/issues/513). ([#542](https://github.com/python-poetry/tomlkit/issues/542))
- Fix a new top-level scalar being captured by a table rendered from a dotted key: appending a scalar after a dotted-key entry (e.g. `a.b = 1`) whose table had gained a `[a.c]`-style child placed the 
scalar inside that table's scope, silently re-nesting it on round-trip. Scalars now move before such an entry, like they do before regular tables. 
([#543](https://github.com/python-poetry/tomlkit/issues/543))
- Fix invalid serialization with a duplicated `[table]` header when adding a key to an out-of-order table whose concrete header is declared after its sub-tables; the new key now lands in the existing 
concrete part instead of giving the header-less super part a second header. ([#545](https://github.com/python-poetry/tomlkit/pull/545))
- Fix a table's display name (its exact header spelling, including whitespace and quoting) being normalised when the table is assigned onto itself, e.g. `doc[k] = doc[k]` rewriting `[keys .'a'.'c']` 
to `[keys.a.'c']`. ([#291](https://github.com/python-poetry/tomlkit/issues/291))
- Fix missing newlines when appending a key after a dotted inline table, including when the original document has no trailing newline. ([#533](https://github.com/python-poetry/tomlkit/pull/533))
- Preserve trailing whitespace when replacing a super table, including assigning it onto itself. ([#534](https://github.com/python-poetry/tomlkit/pull/534))
- Fix `str()` and `repr()` of out-of-order table proxies to show their merged values. ([#536](https://github.com/python-poetry/tomlkit/pull/536))
- Reject decimal integer literals that exceed Python's integer-string conversion limit instead of coercing them to infinity. ([#538](https://github.com/python-poetry/tomlkit/pull/538))


To generate a diff of this commit:
cvs rdiff -u -r1.27 -r1.28 pkgsrc/textproc/py-tomlkit/Makefile
cvs rdiff -u -r1.5 -r1.6 pkgsrc/textproc/py-tomlkit/PLIST
cvs rdiff -u -r1.25 -r1.26 pkgsrc/textproc/py-tomlkit/distinfo

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/textproc/py-tomlkit/Makefile
diff -u pkgsrc/textproc/py-tomlkit/Makefile:1.27 pkgsrc/textproc/py-tomlkit/Makefile:1.28
--- pkgsrc/textproc/py-tomlkit/Makefile:1.27    Mon May 11 13:20:44 2026
+++ pkgsrc/textproc/py-tomlkit/Makefile Sun Jul 19 10:52:28 2026
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.27 2026/05/11 13:20:44 adam Exp $
+# $NetBSD: Makefile,v 1.28 2026/07/19 10:52:28 wiz Exp $
 
-DISTNAME=      tomlkit-0.15.0
+DISTNAME=      tomlkit-0.15.1
 PKGNAME=       ${PYPKGPREFIX}-${DISTNAME}
 CATEGORIES=    textproc python
 MASTER_SITES=  ${MASTER_SITE_PYPI:=t/tomlkit/}

Index: pkgsrc/textproc/py-tomlkit/PLIST
diff -u pkgsrc/textproc/py-tomlkit/PLIST:1.5 pkgsrc/textproc/py-tomlkit/PLIST:1.6
--- pkgsrc/textproc/py-tomlkit/PLIST:1.5        Mon Sep 22 07:44:43 2025
+++ pkgsrc/textproc/py-tomlkit/PLIST    Sun Jul 19 10:52:28 2026
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.5 2025/09/22 07:44:43 wiz Exp $
+@comment $NetBSD: PLIST,v 1.6 2026/07/19 10:52:28 wiz Exp $
 ${PYSITELIB}/${WHEEL_INFODIR}/METADATA
 ${PYSITELIB}/${WHEEL_INFODIR}/RECORD
 ${PYSITELIB}/${WHEEL_INFODIR}/WHEEL
@@ -34,9 +34,6 @@ ${PYSITELIB}/tomlkit/py.typed
 ${PYSITELIB}/tomlkit/source.py
 ${PYSITELIB}/tomlkit/source.pyc
 ${PYSITELIB}/tomlkit/source.pyo
-${PYSITELIB}/tomlkit/toml_char.py
-${PYSITELIB}/tomlkit/toml_char.pyc
-${PYSITELIB}/tomlkit/toml_char.pyo
 ${PYSITELIB}/tomlkit/toml_document.py
 ${PYSITELIB}/tomlkit/toml_document.pyc
 ${PYSITELIB}/tomlkit/toml_document.pyo

Index: pkgsrc/textproc/py-tomlkit/distinfo
diff -u pkgsrc/textproc/py-tomlkit/distinfo:1.25 pkgsrc/textproc/py-tomlkit/distinfo:1.26
--- pkgsrc/textproc/py-tomlkit/distinfo:1.25    Mon May 11 13:20:44 2026
+++ pkgsrc/textproc/py-tomlkit/distinfo Sun Jul 19 10:52:28 2026
@@ -1,5 +1,5 @@
-$NetBSD: distinfo,v 1.25 2026/05/11 13:20:44 adam Exp $
+$NetBSD: distinfo,v 1.26 2026/07/19 10:52:28 wiz Exp $
 
-BLAKE2s (tomlkit-0.15.0.tar.gz) = 0e8857267d9da2e79d3326402388a742a81bac14d8b1bcdedb87ce317761cb0b
-SHA512 (tomlkit-0.15.0.tar.gz) = dfb7dbb44243f13e01c0b66aa9e0a49edba8c4d8cf720bc81b2faa30877599f465ba38e9235a0b4323100c4efd82d78659b25cf15b345ce5fc5376c3695b73e4
-Size (tomlkit-0.15.0.tar.gz) = 161875 bytes
+BLAKE2s (tomlkit-0.15.1.tar.gz) = f294c6531d21c6d7ebd84e22116369fc2d65a9050543ba69b23218fce2db2434
+SHA512 (tomlkit-0.15.1.tar.gz) = f47fec4f550167e5d95d19fe6d6bf1ee4f1587f852d12dd17c2d5b83410b510f891ee1235e70c8825ce4c1ac5b35126d4136f7dc02a07809c2642173be55bef1
+Size (tomlkit-0.15.1.tar.gz) = 180129 bytes



Home | Main Index | Thread Index | Old Index