- Removed
- Python 3.6 support
- Support for text file objects as
load
input. Use binary file objects instead.
- Fixed
- Illegal characters in error messages were surrounded by two pairs of quotation marks
- Improved
TOMLDecodeError.__module__
is now the public import path (tomli
) instead of private import path (tomli._parser
)- Eliminated an import cycle when
typing.TYPE_CHECKING
isTrue
. This allowssphinx-autodoc-typehints
to resolve type annotations.
- Fixed
- Raise an error if a carriage return (without a following line feed) is found in a multi-line basic string
- Type annotations
- Type annotate
load
input astyping.BinaryIO
only to discourage use of deprecated text file objects.
- Type annotate
- Packaging
- Remove legacy
setup.py
from PyPI source distribution. If you're a packager and absolutely need this file, please create an issue.
- Remove legacy
- Deprecated
- Text file objects as input to
load
. Binary file objects should be used instead to avoid opening a TOML file with universal newlines or with an encoding other than UTF-8.
- Text file objects as input to
- Added
load
can now take a binary file object
- Performance
- Minor boost (~4%)
- Fixed
- Raise
TOMLDecodeError
instead ofValueError
when parsing dates and datetimes that pass the regex check but don't correspond to a valid date or datetime.
- Raise
- Performance
- Improved multiline literal string parsing performance
- Performance
- Minor boost (~4%)
- Performance
- A significant boost
- Fixed
- Raise
TOMLDecodeError
instead ofKeyError
when overwriting implicitly in an inline table
- Raise
- Fixed
- Raise
TOMLDecodeError
if overwriting nested inline tables from the parent inline - Raise
TOMLDecodeError
if escaped Unicode character is not a Unicode scalar value
- Raise
- Performance
- Increased parsing speed of single line basic strings, and multi-line literal and basic strings
- Fixed
TOMLDecodeError
now raised when opening a table implicitly created by a key/value pair- Don't error when two array-of-tables items open a subtable with the same name
- Don't error when opening parent table of an already defined array-of-tables item
- Performance
- Significant boost to comment parsing speed
- Added
- Improved
TOMLDecodeError
error messages. Line and column are included when applicable.
- Improved
- Performance
- Over 5% boost
- Fixed
- Made exception type
TOMLDecodeError
when overwriting a value with a deeply nested table
- Made exception type
- Fixed
TOMLDecodeError
is now raised when attempting to overwrite a value in an inline table's or array's namespace with a table definition
- Fixed
- Error type was not TOMLDecodeError in some obscure cases
- Added
tomli.load
for parsing IO streams returned byopen()
parse_float
keyword argument totomli.loads
. Allows parsing TOML floats to a non-float type in Python.
- Fixed
TOMLDecodeError
is now raised for duplicate keys in inline tables, as opposed to silently overriding the previous value
- Changed
- Project name to Tomli
- Performance
- A performance boost
- Added
tomli.loads
for parsing TOML stringstomli.TOMLDecodeError
that is raised for parse errors