unstale

pypi / tomlkit

tomlkit

What changed in tomlkit 0.15, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-29.

15 breaking1 security1 new APIs and options1 performance1 behavior and defaults25 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.2.9 on npm

tomlkit 0.1544 changes

Breaking changes 15

  • Rejects array slice assignment before mutating values.

    0.15.2release notes

  • Rejects trailing characters in key_value() rather than accepting them.

    0.15.2release notes

  • Rejects special float literals that are not lowercase.

    0.15.2release notes

  • Rejects surrogate code points in Unicode escapes, non-hexadecimal escape digits, tabs in bare keys, and malformed array-of-tables headers.

    0.15.2release notes

  • Renders timezone-aware times as local times without an offset.

    0.15.2release notes

  • Malformed array elements now raise an error instead of being dropped.

    0.15.1release notes

  • Tab characters in bare keys are rejected.

    0.15.1release notes

  • Rejects comments containing line breaks in Item.comment and add_line.

    0.15.1release notesrelease notes

  • Rejects overlong decimal integers instead of coercing them to infinity.

    0.15.1release notesrelease notes

  • Float is no longer treated as a sequence.

    0.15.1release notes

  • Out-of-order concrete and super table redefinitions are rejected during parsing.

    0.15.1release notes

  • Surrogate code points in \U Unicode escapes are rejected.

    0.15.1release notes

  • Rejects invalid table redefinitions, including redefinitions after a parent header and out-of-order concrete and super-table redefinitions.

    0.15.1release notesrelease notes

  • Inserting tables into inline tables is rejected.

    0.15.1release notes

  • Non-hexadecimal digits in \u and \U escapes are rejected.

    0.15.1release notes

Security 1

New APIs and options 1

Performance 1

Behavior and default changes 1

  • Updated to TOML specification v1.1, changing which TOML features tomlkit supports.

    0.15.0release notes

Fixes and other changes 25

  • Renders an emptied array of tables as an empty array.

    0.15.2release notes

  • Compares Bool items by value.

    0.15.2release notes

  • Preserves fold when subtracting datetimes and when unwrapping a datetime or time.

    0.15.2release notes

  • Fixes separator placement and comma handling when appending to or removing elements from inline tables, including tables with trailing comments.

    0.15.2release notes

  • Fixes corrupt output when adding dotted keys, inserting elements, or rendering inline tables with comments; also rejects tables inserted into inline tables.

    0.15.2release notes

  • Preserves underscores when creating integers from strings.

    0.15.2release notes

  • Preserves inline table key order in item() and preserves unwrap() key order after a value is replaced.

    0.15.2release notes

  • Escapes content appended to a String via __add__.

    0.15.2release notes

  • Adds the standard-library fold argument to Time and DateTime.

    0.15.2release notes

  • An array-of-tables header missing its second closing bracket is rejected.

    0.15.1release notes

  • Inserting into a comma-first array no longer produces a doubled comma.

    0.15.1release notes

  • A newline after a dotted inline table is preserved.

    0.15.1release notes

  • Adding to a dotted key inside an inline table no longer corrupts the rendered output.

    0.15.1release notes

  • dumps() again delegates to as_string for non-Mapping wrappers.

    0.15.1release notes

  • Removing a middle inline table element no longer produces a duplicated comma.

    0.15.1release notes

  • Inline table separators are placed after values rather than trailing comments, and appending no longer corrupts separator placement.

    0.15.1release notes

  • Returns a single key for a single-element list.

    0.15.1release notesrelease notes

  • Every line of a multiline comment is prefixed with # when rendered.

    0.15.1release notes

  • Out-of-order table proxies represent merged values, merge array-of-tables fragments, and avoid duplicate headers when adding a key.

    0.15.1release notes

  • Fixes parsing and rendering of out-of-order tables, including sub-tables extending arrays of tables and merged array-of-tables fragments.

    0.15.1release notesrelease notes

  • Preserves the leading newline of a multiline string built with string().

    0.15.1release notesrelease notes

  • Table display names are preserved on self-assignment.

    0.15.1release notes

  • Replacing a dotted key with a table no longer duplicates prefixes or captures siblings, and top-level scalars are not captured by the rendered table.

    0.15.1release notes

  • Fixed a parser hang.

    0.15.0release notes

  • The sort_keys option is now honored for parsed TOML documents.

    0.15.0release notes