Skip to content

build(deps): bump tomlkit from 0.14.0 to 0.15.1 - #50

Merged
wu-vincent merged 1 commit into
mainfrom
dependabot/uv/tomlkit-0.15.1
Sep 13, 2026
Merged

wu-vincent merged 1 commit into
mainfrom
dependabot/uv/tomlkit-0.15.1

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 12, 2026 •

Copy link
Copy Markdown
Contributor

Bumps tomlkit from 0.14.0 to 0.15.1.

Release notes

Sourced from tomlkit's releases.

0.15.1

What's Changed

... (truncated)

Changelog

Sourced from tomlkit's changelog.

[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)
  • 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)
  • 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)
  • 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)
  • 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)
  • 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)
  • 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)
  • Speed up membership tests (key in ...) on out-of-order tables with a native OutOfOrderTableProxy.__contains__, completing #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)
  • 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)
  • 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)
  • 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; a \r still stops the scan so \r\n stays validated and byte-for-byte preserved. (#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)
  • 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)
  • Raise on malformed array element instead of dropping it, (#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)
  • Fix invalid serialization with a duplicated comma when appending or inserting into a comma-first formatted array. (#499)
  • Fix ParseError when a sub-table extends the last element of an array of tables after an unrelated table. (#261)
  • Fix unparseable serialization when adding a key to a dotted-key table inside an inline table. (#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)
  • 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, #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)
  • 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)
  • Fix comment() producing invalid TOML for a multiline string by prefixing every line with #, not just the first. (#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)
  • 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)
  • 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)
  • Reject tables inserted into inline tables instead of serializing invalid TOML. (#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. (#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)
  • 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)
  • 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)
  • Fix missing newlines when appending a key after a dotted inline table, including when the original document has no trailing newline. (#533)
  • Preserve trailing whitespace when replacing a super table, including assigning it onto itself. (#534)
  • Fix str() and repr() of out-of-order table proxies to show their merged values. (#536)
  • Reject decimal integer literals that exceed Python's integer-string conversion limit instead of coercing them to infinity. (#538)

[0.15.0] - 2026-05-10

Changed

  • Update parser to support TOML spec v1.1.0. (#456)
Commits
  • 1bd7e3b chore: release 0.15..1
  • 94e62fb Float is not a sequence (#563)
  • 495a42e Fix top-level scalar captured by a table rendered from a dotted key (#550)
  • 21a4942 reject a comment containing line breaks in Item.comment and add_line (#544)
  • 8cd44f5 fix: preserve leading newline of multiline string built with string() (#551)
  • 67d3e86 Fix array of tables replacing a dotted key swallowing the next sibling (#542)...
  • e23a254 fix: avoid duplicate table header when adding a key to an out-of-order table ...
  • 34e51e2 Update CHANGELOG.md to reflect recent fixes and enhancements
  • b48c094 reject overlong decimal integer instead of coercing to inf (#538)
  • cc05afa Represent out-of-order table proxies with merged values (#536)
  • Additional commits viewable in compare view

@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python:uv Pull requests that update python:uv code labels Sep 12, 2026
Bumps [tomlkit](https://github.com/python-poetry/tomlkit) from 0.14.0 to 0.15.1.
- [Release notes](https://github.com/python-poetry/tomlkit/releases)
- [Changelog](https://github.com/python-poetry/tomlkit/blob/master/CHANGELOG.md)
- [Commits](python-poetry/tomlkit@0.14.0...0.15.1)

---
updated-dependencies:
- dependency-name: tomlkit
  dependency-version: 0.15.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot changed the title Bump tomlkit from 0.14.0 to 0.15.1 build(deps): bump tomlkit from 0.14.0 to 0.15.1 Sep 13, 2026
@dependabot
dependabot Bot force-pushed the dependabot/uv/tomlkit-0.15.1 branch from fbb7ec2 to 28f1b7a Compare September 13, 2026 12:17
@wu-vincent
wu-vincent merged commit fa7c757 into main Sep 13, 2026
18 checks passed
@dependabot
dependabot Bot deleted the dependabot/uv/tomlkit-0.15.1 branch September 13, 2026 14:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python:uv Pull requests that update python:uv code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant