.dumps({"v": [[1], [1, 2]]})`
+
+
+| |Dumped value or error|
+|-|-----------------------|
+|toml|v = [ [ 1,], [ 1, 2,],]
|
+|tomli/tomli_w|v = [
[
1,
],
[
1,
2,
],
]
|
+|tomlkit|v = [[1], [1, 2]]
|
+|pytomlpp|v = [ [ 1 ], [ 1, 2 ] ]
|
+|rtoml|v = [[1], [1, 2]]
|
+|qtoml|v = [[1], [1, 2]]
|
+
+### Loading a nested array
+
+How the package loads a toml string with a nested array.
+
+Literally `.loads('v = [[1], [1, 2]]')`
+
+
+| |Loaded as|
+|-|-----------------------|
+|toml|{'v': [[1], [1, 2]]}|
+|tomli/tomli_w|{'v': [[1], [1, 2]]}|
+|tomlkit|{'v': [[1], [1, 2]]}|
+|pytomlpp|{'v': [[1], [1, 2]]}|
+|rtoml|{'v': [[1], [1, 2]]}|
+|qtoml|{'v': [[1], [1, 2]]}|
+
### Dumping keeps order of keys?
Whether the package preserves the order of the keys while dumps
@@ -174,14 +238,14 @@ The tests come up with a JSON counterpart that can be used to valid whether
loading the toml file yields the same result as the JSON counterpart.
-| |Result (toml-test v1.2.0)|
+| |Result (toml-test v1.3.0)|
|-|-----------------------|
-|toml|[comment/tricky.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/comment/tricky.toml) Parsed as unexpected data.
[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/string/escape-esc.toml) Reserved escape sequence used (line 1 column 1 char 0)
[array/mixed-int-array.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/array/mixed-int-array.toml) Not a homogeneous array (line 1 column 1 char 0)
[array/mixed-int-float.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/array/mixed-int-float.toml) Not a homogeneous array (line 1 column 1 char 0)
[array/mixed-string-table.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/array/mixed-string-table.toml) list index out of range
[array/mixed-int-string.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/array/mixed-int-string.toml) Not a homogeneous array (line 1 column 1 char 0)
[array/nested-double.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/array/nested-double.toml) Not a homogeneous array (line 1 column 1 char 0)
[float/zero.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/float/zero.toml) Weirdness with leading zeroes or underscores in your number. (line 4 column 1 char 47)
[key/escapes.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/key/escapes.toml) Parsed as unexpected data.
[key/dotted.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/key/dotted.toml) Found invalid character in key name: '"'. Try quoting the key name. (line 12 column 11 char 245)
[inline-table/key-dotted.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/inline-table/key-dotted.toml) Parsed as unexpected data.
[inline-table/multiline.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/inline-table/multiline.toml) Invalid inline table value encountered (line 1 column 1 char 0)
[datetime/local-time.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/datetime/local-time.toml) Parsed as unexpected data.
[datetime/datetime.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/datetime/datetime.toml) Parsed as unexpected data.
*86/100 (86.00%) passed*|
-|tomli/tomli_w|[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/string/escape-esc.toml) Unescaped '\' in a string (at line 1, column 10)
*99/100 (99.00%) passed*|
-|tomlkit|[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/string/escape-esc.toml) Invalid character 'e' in string at line 1 col 8
*99/100 (99.00%) passed*|
-|pytomlpp|[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/string/escape-esc.toml) Error while parsing string: unknown escape sequence '\e' (error occurred at line 1, column 9)
*99/100 (99.00%) passed*|
-|rtoml|[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/string/escape-esc.toml) invalid escape character in string: `e` at line 1 column 9
*99/100 (99.00%) passed*|
-|qtoml|[comment/tricky.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/comment/tricky.toml) can't parse type (line 11, column 7)
[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/string/escape-esc.toml) \e not a valid escape (line 1, column 33)
[string/multiline-quotes.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/string/multiline-quotes.toml) Didn't find expected newline (line 4, column 26)
[datetime/milliseconds.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/datetime/milliseconds.toml) Didn't find expected newline (line 2, column 27)
[datetime/datetime.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/datetime/datetime.toml) Didn't find expected newline (line 2, column 18)
*95/100 (95.00%) passed*|
+|toml|[key/escapes.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/key/escapes.toml) Parsed as unexpected data.
[key/dotted.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/key/dotted.toml) Found invalid character in key name: '"'. Try quoting the key name. (line 12 column 11 char 245)
[comment/tricky.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/comment/tricky.toml) Parsed as unexpected data.
[inline-table/key-dotted.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/inline-table/key-dotted.toml) Parsed as unexpected data.
[inline-table/multiline.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/inline-table/multiline.toml) Invalid inline table value encountered (line 1 column 1 char 0)
[array/nested-double.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/array/nested-double.toml) Not a homogeneous array (line 1 column 1 char 0)
[array/mixed-int-string.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/array/mixed-int-string.toml) Not a homogeneous array (line 1 column 1 char 0)
[array/mixed-string-table.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/array/mixed-string-table.toml) list index out of range
[array/mixed-int-array.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/array/mixed-int-array.toml) Not a homogeneous array (line 1 column 1 char 0)
[array/mixed-int-float.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/array/mixed-int-float.toml) Not a homogeneous array (line 1 column 1 char 0)
[float/zero.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/float/zero.toml) Weirdness with leading zeroes or underscores in your number. (line 4 column 1 char 47)
[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/string/escape-esc.toml) Reserved escape sequence used (line 1 column 1 char 0)
[datetime/datetime.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/datetime/datetime.toml) Parsed as unexpected data.
[datetime/local-time.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/datetime/local-time.toml) Parsed as unexpected data.
*86/100 (86.00%) passed*|
+|tomli/tomli_w|[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/string/escape-esc.toml) Unescaped '\' in a string (at line 1, column 10)
*99/100 (99.00%) passed*|
+|tomlkit|[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/string/escape-esc.toml) Invalid character 'e' in string at line 1 col 8
*99/100 (99.00%) passed*|
+|pytomlpp|[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/string/escape-esc.toml) Error while parsing string: escape sequence '\e' is not supported in TOML 1.0.0 and earlier (error occurred at line 1, column 9)
*99/100 (99.00%) passed*|
+|rtoml|[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/string/escape-esc.toml) invalid escape character in string: `e` at line 1 column 9
*99/100 (99.00%) passed*|
+|qtoml|[comment/tricky.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/comment/tricky.toml) can't parse type (line 11, column 7)
[string/multiline-quotes.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/string/multiline-quotes.toml) Didn't find expected newline (line 4, column 26)
[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/string/escape-esc.toml) \e not a valid escape (line 1, column 33)
[datetime/milliseconds.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/datetime/milliseconds.toml) Didn't find expected newline (line 2, column 27)
[datetime/datetime.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/datetime/datetime.toml) Didn't find expected newline (line 2, column 18)
*95/100 (95.00%) passed*|
### Compliance with invalid tests in toml-test
@@ -195,14 +259,14 @@ here:
parsing error.
-| |Result (toml-test v1.2.0)|
+| |Result (toml-test v1.3.0)|
|-|-----------------------|
-|toml|Not OK: [integer/us-after-hex.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/integer/us-after-hex.toml) incorrectly parsed.
Not OK: [integer/us-after-oct.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/integer/us-after-oct.toml) incorrectly parsed.
Not OK: [integer/double-sign-plus.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/integer/double-sign-plus.toml) incorrectly parsed.
Not OK: [integer/double-sign-nex.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/integer/double-sign-nex.toml) incorrectly parsed.
Not OK: [integer/us-after-bin.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/integer/us-after-bin.toml) incorrectly parsed.
Not OK: [array/no-close.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/array/no-close.toml) incorrectly parsed.
Not OK: [array/tables-1.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/array/tables-1.toml) incorrectly parsed.
Not OK: [array/no-close-2.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/array/no-close-2.toml) incorrectly parsed.
Not OK: [array/no-close-table.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/array/no-close-table.toml) incorrectly parsed.
Not OK: [array/no-close-table-2.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/array/no-close-table-2.toml) incorrectly parsed.
Not OK: *36 more items incorrectly parsed.*
*177/223 (79.37%) passed*|
-|tomli/tomli_w|OK: [table/duplicate-key-dotted-table2.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/table/duplicate-key-dotted-table2.toml) Cannot declare ('fruit', 'apple', 'taste') twice (at line 4, column 19)
*223/223 (100%) passed*|
-|tomlkit|Not OK: [control/comment-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/comment-cr.toml) incorrectly parsed.
Not OK: [control/bare-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/bare-cr.toml) incorrectly parsed.
Not OK: [table/append-with-dotted-keys-1.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/table/append-with-dotted-keys-1.toml) incorrectly parsed.
Not OK: [table/append-with-dotted-keys-2.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/table/append-with-dotted-keys-2.toml) incorrectly parsed.
*219/223 (98.21%) passed*|
-|pytomlpp|Not OK: [control/comment-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/comment-cr.toml) incorrectly parsed.
Not OK: [control/bare-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/bare-cr.toml) incorrectly parsed.
*221/223 (99.10%) passed*|
-|rtoml|Not OK: [integer/positive-hex.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/integer/positive-hex.toml) incorrectly parsed.
Not OK: [integer/positive-bin.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/integer/positive-bin.toml) incorrectly parsed.
Not OK: [control/comment-del.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/comment-del.toml) incorrectly parsed.
Not OK: [control/comment-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/comment-cr.toml) incorrectly parsed.
Not OK: [control/bare-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/bare-cr.toml) incorrectly parsed.
*218/223 (97.76%) passed*|
-|qtoml|Not OK: [inline-table/add.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/inline-table/add.toml) incorrectly parsed.
Not OK: [inline-table/trailing-comma.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/inline-table/trailing-comma.toml) incorrectly parsed.
Not OK: [control/comment-del.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/comment-del.toml) incorrectly parsed.
Not OK: [control/comment-null.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/comment-null.toml) incorrectly parsed.
Not OK: [control/comment-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/comment-cr.toml) incorrectly parsed.
Not OK: [control/comment-us.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/comment-us.toml) incorrectly parsed.
Not OK: [control/bare-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/bare-cr.toml) incorrectly parsed.
Not OK: [control/comment-lf.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/comment-lf.toml) incorrectly parsed.
Not OK: [table/append-with-dotted-keys-1.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/table/append-with-dotted-keys-1.toml) incorrectly parsed.
Not OK: [table/append-with-dotted-keys-2.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/table/append-with-dotted-keys-2.toml) incorrectly parsed.
Not OK: *2 more items incorrectly parsed.*
*211/223 (94.62%) passed*|
+|toml|Not OK: [key/start-dot.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/key/start-dot.toml) incorrectly parsed.
Not OK: [key/escape.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/key/escape.toml) incorrectly parsed.
Not OK: [key/special-character.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/key/special-character.toml) incorrectly parsed.
Not OK: [key/two-equals3.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/key/two-equals3.toml) incorrectly parsed.
Not OK: [key/two-equals2.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/key/two-equals2.toml) incorrectly parsed.
Not OK: [inline-table/add.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/inline-table/add.toml) incorrectly parsed.
Not OK: [array/no-close-2.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/array/no-close-2.toml) incorrectly parsed.
Not OK: [array/tables-1.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/array/tables-1.toml) incorrectly parsed.
Not OK: [array/no-close.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/array/no-close.toml) incorrectly parsed.
Not OK: [array/extending-table.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/array/extending-table.toml) incorrectly parsed.
Not OK: *39 more items incorrectly parsed.*
*188/237 (79.32%) passed*|
+|tomli/tomli_w|OK: [datetime/mday-under.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/datetime/mday-under.toml) Expected newline or end of document after a statement (at line 3, column 9)
*237/237 (100%) passed*|
+|tomlkit|Not OK: [control/bare-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/control/bare-cr.toml) incorrectly parsed.
Not OK: [control/comment-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/control/comment-cr.toml) incorrectly parsed.
Not OK: [table/append-with-dotted-keys-2.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/table/append-with-dotted-keys-2.toml) incorrectly parsed.
Not OK: [table/append-with-dotted-keys-1.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/table/append-with-dotted-keys-1.toml) incorrectly parsed.
*233/237 (98.31%) passed*|
+|pytomlpp|Not OK: [control/bare-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/control/bare-cr.toml) incorrectly parsed.
Not OK: [control/comment-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/control/comment-cr.toml) incorrectly parsed.
*235/237 (99.16%) passed*|
+|rtoml|Not OK: [control/bare-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/control/bare-cr.toml) incorrectly parsed.
Not OK: [control/comment-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/control/comment-cr.toml) incorrectly parsed.
Not OK: [control/comment-del.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/control/comment-del.toml) incorrectly parsed.
Not OK: [integer/positive-hex.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/integer/positive-hex.toml) incorrectly parsed.
Not OK: [integer/positive-bin.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/integer/positive-bin.toml) incorrectly parsed.
*232/237 (97.89%) passed*|
+|qtoml|Not OK: [inline-table/trailing-comma.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/inline-table/trailing-comma.toml) incorrectly parsed.
Not OK: [inline-table/add.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/inline-table/add.toml) incorrectly parsed.
Not OK: [control/bare-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/control/bare-cr.toml) incorrectly parsed.
Not OK: [control/comment-us.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/control/comment-us.toml) incorrectly parsed.
Not OK: [control/comment-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/control/comment-cr.toml) incorrectly parsed.
Not OK: [control/comment-lf.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/control/comment-lf.toml) incorrectly parsed.
Not OK: [control/comment-del.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/control/comment-del.toml) incorrectly parsed.
Not OK: [control/comment-null.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/control/comment-null.toml) incorrectly parsed.
Not OK: [table/duplicate-key-dotted-table.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/table/duplicate-key-dotted-table.toml) incorrectly parsed.
Not OK: [table/duplicate-key-dotted-table2.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/table/duplicate-key-dotted-table2.toml) incorrectly parsed.
Not OK: *2 more items incorrectly parsed.*
*225/237 (94.94%) passed*|
### Compliance with valid tests in python tomllib test data
@@ -217,12 +281,12 @@ loading the toml file yields the same result as the JSON counterpart.
| |Result (cpython tag 3.11.0)|
|-|-----------------------|
-|toml|[five-quotes.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/five-quotes.toml) Unterminated string found. Reached end of file. (line 7 column 1 char 97)
[apostrophes-in-literal-string.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/apostrophes-in-literal-string.toml) Unbalanced quotes (line 1 column 50 char 49)
[multiline-basic-str/ends-in-whitespace-escape.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/multiline-basic-str/ends-in-whitespace-escape.toml) Reserved escape sequence used (line 6 column 1 char 28)
[dates-and-times/datetimes.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/dates-and-times/datetimes.toml) Parsed as unexpected data.
*8/12 (66.67%) passed*|
+|toml|[apostrophes-in-literal-string.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/apostrophes-in-literal-string.toml) Unbalanced quotes (line 1 column 50 char 49)
[five-quotes.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/five-quotes.toml) Unterminated string found. Reached end of file. (line 7 column 1 char 97)
[dates-and-times/datetimes.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/dates-and-times/datetimes.toml) Parsed as unexpected data.
[multiline-basic-str/ends-in-whitespace-escape.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/multiline-basic-str/ends-in-whitespace-escape.toml) Reserved escape sequence used (line 6 column 1 char 28)
*8/12 (66.67%) passed*|
|tomli/tomli_w|OK, *12/12 (100%) passed*|
|tomlkit|OK, *12/12 (100%) passed*|
-|pytomlpp|[array/open-parent-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/array/open-parent-table.toml) Error while parsing table header: cannot redefine existing table 'parent-table' (error occurred at line 3, column 1)
*11/12 (91.67%) passed*|
+|pytomlpp|OK, *12/12 (100%) passed*|
|rtoml|OK, *12/12 (100%) passed*|
-|qtoml|[five-quotes.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/five-quotes.toml) Didn't find expected newline (line 3, column 3)
[apostrophes-in-literal-string.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/apostrophes-in-literal-string.toml) Didn't find expected newline (line 3, column 3)
[dates-and-times/datetimes.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/dates-and-times/datetimes.toml) Didn't find expected newline (line 1, column 19)
*9/12 (75.00%) passed*|
+|qtoml|[apostrophes-in-literal-string.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/apostrophes-in-literal-string.toml) Didn't find expected newline (line 3, column 3)
[five-quotes.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/five-quotes.toml) Didn't find expected newline (line 3, column 3)
[dates-and-times/datetimes.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/dates-and-times/datetimes.toml) Didn't find expected newline (line 1, column 19)
*9/12 (75.00%) passed*|
### Compliance with invalid tests in python tomllib test data
@@ -238,12 +302,12 @@ parsing error.
| |Result (cpython tag 3.11.0)|
|-|-----------------------|
-|toml|Not OK: [invalid-comment-char.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/invalid-comment-char.toml) incorrectly parsed.
Not OK: [array/file-end-after-val.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/array/file-end-after-val.toml) incorrectly parsed.
Not OK: [array/unclosed-empty.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/array/unclosed-empty.toml) incorrectly parsed.
Not OK: [array/unclosed-after-item.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/array/unclosed-after-item.toml) incorrectly parsed.
Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table-with-subtable.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table-with-subtable.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table.toml) incorrectly parsed.
Not OK: [inline-table/overwrite-value-in-inner-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/overwrite-value-in-inner-table.toml) incorrectly parsed.
Not OK: [inline-table/unclosed-empty.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/unclosed-empty.toml) incorrectly parsed.
*41/50 (82.00%) passed*|
-|tomli/tomli_w|OK: [dates-and-times/invalid-day.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dates-and-times/invalid-day.toml) Invalid date or datetime (at line 1, column 36)
*50/50 (100%) passed*|
-|tomlkit|Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
Not OK: [array-of-tables/overwrite-array-in-parent.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/array-of-tables/overwrite-array-in-parent.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-aot.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-aot.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table-with-subtable.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table-with-subtable.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table.toml) incorrectly parsed.
Not OK: [inline-table/override-val-in-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/override-val-in-table.toml) incorrectly parsed.
*44/50 (88.00%) passed*|
+|toml|Not OK: [invalid-comment-char.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/invalid-comment-char.toml) incorrectly parsed.
Not OK: [inline-table/unclosed-empty.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/unclosed-empty.toml) incorrectly parsed.
Not OK: [inline-table/overwrite-value-in-inner-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/overwrite-value-in-inner-table.toml) incorrectly parsed.
Not OK: [array/unclosed-empty.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/array/unclosed-empty.toml) incorrectly parsed.
Not OK: [array/unclosed-after-item.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/array/unclosed-after-item.toml) incorrectly parsed.
Not OK: [array/file-end-after-val.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/array/file-end-after-val.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table-with-subtable.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table-with-subtable.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table.toml) incorrectly parsed.
Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
*41/50 (82.00%) passed*|
+|tomli/tomli_w|OK: [multiline-basic-str/escape-only.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/multiline-basic-str/escape-only.toml) Unterminated string (at end of document)
*50/50 (100%) passed*|
+|tomlkit|Not OK: [inline-table/override-val-in-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/override-val-in-table.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table-with-subtable.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table-with-subtable.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-aot.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-aot.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table.toml) incorrectly parsed.
Not OK: [array-of-tables/overwrite-array-in-parent.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/array-of-tables/overwrite-array-in-parent.toml) incorrectly parsed.
Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
*44/50 (88.00%) passed*|
|pytomlpp|Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
*49/50 (98.00%) passed*|
|rtoml|Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
*49/50 (98.00%) passed*|
-|qtoml|Not OK: [invalid-comment-char.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/invalid-comment-char.toml) incorrectly parsed.
Not OK: [non-scalar-escaped.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/non-scalar-escaped.toml) incorrectly parsed.
Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table-with-subtable.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table-with-subtable.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table.toml) incorrectly parsed.
Not OK: [inline-table/override-val-with-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/override-val-with-table.toml) incorrectly parsed.
Not OK: [inline-table/overwrite-value-in-inner-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/overwrite-value-in-inner-table.toml) incorrectly parsed.
Not OK: [table/redefine-2.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/table/redefine-2.toml) incorrectly parsed.
Not OK: [table/redefine-1.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/table/redefine-1.toml) incorrectly parsed.
*41/50 (82.00%) passed*|
+|qtoml|Not OK: [non-scalar-escaped.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/non-scalar-escaped.toml) incorrectly parsed.
Not OK: [invalid-comment-char.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/invalid-comment-char.toml) incorrectly parsed.
Not OK: [inline-table/override-val-with-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/override-val-with-table.toml) incorrectly parsed.
Not OK: [inline-table/overwrite-value-in-inner-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/overwrite-value-in-inner-table.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table-with-subtable.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table-with-subtable.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table.toml) incorrectly parsed.
Not OK: [table/redefine-2.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/table/redefine-2.toml) incorrectly parsed.
Not OK: [table/redefine-1.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/table/redefine-1.toml) incorrectly parsed.
Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
*41/50 (82.00%) passed*|
### Running speed with data provided by `pytomlpp`
@@ -255,12 +319,12 @@ using data provided by `pytomlpp`
| |Loading speed|Dumping speed|
|-|-|-|
-|toml|7.04s (5000 iterations)|1.75s (5000 iterations)|
-|tomli/tomli_w|3.53s (5000 iterations)|1.21s (5000 iterations)|
-|tomlkit|63.07s (5000 iterations)|1.14s (5000 iterations)|
-|pytomlpp|0.96s (5000 iterations)|0.62s (5000 iterations)|
-|rtoml|0.56s (5000 iterations)|0.36s (5000 iterations)|
-|qtoml|11.06s (5000 iterations)|2.61s (5000 iterations)|
+|toml|Excluded (heterogeneous arrays not supported)|Excluded (heterogeneous arrays not supported)|
+|tomli/tomli_w|7.44s (1000 iterations)|3.69s (1000 iterations)|
+|tomlkit|136.86s (1000 iterations)|2.54s (1000 iterations)|
+|pytomlpp|1.37s (1000 iterations)|0.96s (1000 iterations)|
+|rtoml|0.98s (1000 iterations)|values must be emitted before tables|
+|qtoml|19.28s (1000 iterations)|5.15s (1000 iterations)|
### Running speed with data provided by `rtoml`
@@ -272,12 +336,12 @@ provided by `rtoml`
| |Loading speed|Dumping speed|
|-|-|-|
-|toml|16.57s (5000 iterations)|2.30s (5000 iterations)|
-|tomli/tomli_w|7.90s (5000 iterations)|2.55s (5000 iterations)|
-|tomlkit|154.61s (5000 iterations)|3.38s (5000 iterations)|
-|pytomlpp|1.34s (5000 iterations)|0.97s (5000 iterations)|
-|rtoml|0.92s (5000 iterations)|0.24s (5000 iterations)|
-|qtoml|22.86s (5000 iterations)|6.83s (5000 iterations)|
+|toml|Excluded (heterogeneous arrays not supported)|Excluded (heterogeneous arrays not supported)|
+|tomli/tomli_w|1.80s (1000 iterations)|0.68s (1000 iterations)|
+|tomlkit|30.51s (1000 iterations)|0.82s (1000 iterations)|
+|pytomlpp|0.24s (1000 iterations)|0.19s (1000 iterations)|
+|rtoml|0.19s (1000 iterations)|0.05s (1000 iterations)|
+|qtoml|4.62s (1000 iterations)|1.32s (1000 iterations)|
### Running speed with data provided by `tomli`
@@ -289,19 +353,20 @@ provided by `tomli`
| |Loading speed|Dumping speed|
|-|-|-|
-|toml|11.71s (5000 iterations)|1.83s (5000 iterations)|
-|tomli/tomli_w|5.09s (5000 iterations)|2.10s (5000 iterations)|
-|tomlkit|104.04s (5000 iterations)|1.65s (5000 iterations)|
-|pytomlpp|1.25s (5000 iterations)|0.78s (5000 iterations)|
-|rtoml|0.72s (5000 iterations)|0.42s (5000 iterations)|
-|qtoml|15.73s (5000 iterations)|4.10s (5000 iterations)|
+|toml|Excluded (heterogeneous arrays not supported)|Excluded (heterogeneous arrays not supported)|
+|tomli/tomli_w|1.17s (1000 iterations)|0.38s (1000 iterations)|
+|tomlkit|18.75s (1000 iterations)|0.40s (1000 iterations)|
+|pytomlpp|0.24s (1000 iterations)|0.15s (1000 iterations)|
+|rtoml|0.16s (1000 iterations)|0.11s (1000 iterations)|
+|qtoml|3.72s (1000 iterations)|0.94s (1000 iterations)|
## Other reports
-- [Tests with `toml-test` v1.0.0](./reports/with_toml-test_v1.0.0.md)
+- [Tests with `toml-test` v1.2.0](./reports/with_toml-test_v1.2.0.md)
- [Tests with `toml-test` v1.1.0](./reports/with_toml-test_v1.1.0.md)
+- [Tests with `toml-test` v1.0.0](./reports/with_toml-test_v1.0.0.md)
- [Tests with python 3.11 (`tomllib` included)](./reports/with_python3.11.md)
## Run your own report
diff --git a/README.raw.md b/README.raw.md
index dcade81..375ef76 100644
--- a/README.raw.md
+++ b/README.raw.md
@@ -10,8 +10,9 @@ See also: [toml-lang](https://toml.io/en/) and [PEP 680](https://www.python.org/
## Other reports
-- [Tests with `toml-test` v1.0.0](./reports/with_toml-test_v1.0.0.md)
+- [Tests with `toml-test` v1.2.0](./reports/with_toml-test_v1.2.0.md)
- [Tests with `toml-test` v1.1.0](./reports/with_toml-test_v1.1.0.md)
+- [Tests with `toml-test` v1.0.0](./reports/with_toml-test_v1.0.0.md)
- [Tests with python 3.11 (`tomllib` included)](./reports/with_python3.11.md)
## Run your own report
diff --git a/poetry.lock b/poetry.lock
index 160e737..b5fdaf5 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -1,10 +1,15 @@
+# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand.
+
[[package]]
name = "attrs"
version = "21.4.0"
description = "Classes Without Boilerplate"
-category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+files = [
+ {file = "attrs-21.4.0-py2.py3-none-any.whl", hash = "sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4"},
+ {file = "attrs-21.4.0.tar.gz", hash = "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd"},
+]
[package.extras]
dev = ["cloudpickle", "coverage[toml] (>=5.0.2)", "furo", "hypothesis", "mypy", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "six", "sphinx", "sphinx-notfound-page", "zope.interface"]
@@ -16,17 +21,23 @@ tests-no-zope = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy"
name = "benchwork"
version = "0.0.2"
description = "A framework for benchmarking in python"
-category = "main"
optional = false
python-versions = ">=3.7,<4.0"
+files = [
+ {file = "benchwork-0.0.2-py3-none-any.whl", hash = "sha256:108ca9bd7aef958ff0b5af1e41d654d95296629ffcffb2b49a9ba1a9347f1fb2"},
+ {file = "benchwork-0.0.2.tar.gz", hash = "sha256:5e6c3ba005c535485534bb67fe48b16a153739103c2d4e319eca57730701fdbe"},
+]
[[package]]
name = "click"
-version = "8.1.3"
+version = "8.1.7"
description = "Composable command line interface toolkit"
-category = "main"
optional = false
python-versions = ">=3.7"
+files = [
+ {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"},
+ {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"},
+]
[package.dependencies]
colorama = {version = "*", markers = "platform_system == \"Windows\""}
@@ -35,45 +46,43 @@ colorama = {version = "*", markers = "platform_system == \"Windows\""}
name = "colorama"
version = "0.4.6"
description = "Cross-platform colored terminal text."
-category = "main"
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
-
-[[package]]
-name = "commonmark"
-version = "0.9.1"
-description = "Python parser for the CommonMark Markdown spec"
-category = "main"
-optional = false
-python-versions = "*"
-
-[package.extras]
-test = ["flake8 (==3.7.8)", "hypothesis (==3.55.3)"]
+files = [
+ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"},
+ {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
+]
[[package]]
name = "diot"
-version = "0.1.6"
+version = "0.1.8"
description = "Python dictionary with dot notation."
-category = "main"
optional = false
python-versions = ">=3.7,<4.0"
+files = [
+ {file = "diot-0.1.8-py3-none-any.whl", hash = "sha256:f2d7d2f121e8a60cd06b7d1b476765e25c37002d0db44e0f5ef72dca98d22640"},
+ {file = "diot-0.1.8.tar.gz", hash = "sha256:21408f8a09628bfb8c88791eaab1558a71692adff4e237c96b4b31a54d3cb2f5"},
+]
[package.dependencies]
inflection = ">=0.5,<0.6"
[[package]]
name = "importlib-metadata"
-version = "5.0.0"
+version = "5.2.0"
description = "Read metadata from Python packages"
-category = "main"
optional = false
python-versions = ">=3.7"
+files = [
+ {file = "importlib_metadata-5.2.0-py3-none-any.whl", hash = "sha256:0eafa39ba42bf225fc00e67f701d71f85aead9f878569caf13c3724f704b970f"},
+ {file = "importlib_metadata-5.2.0.tar.gz", hash = "sha256:404d48d62bba0b7a77ff9d405efd91501bef2e67ff4ace0bed40a0cf28c3c7cd"},
+]
[package.dependencies]
zipp = ">=0.5"
[package.extras]
-docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)"]
+docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"]
perf = ["ipython"]
testing = ["flake8 (<5)", "flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf (>=0.9.2)"]
@@ -81,41 +90,88 @@ testing = ["flake8 (<5)", "flufl.flake8", "importlib-resources (>=1.3)", "packag
name = "inflection"
version = "0.5.1"
description = "A port of Ruby on Rails inflector to Python"
-category = "main"
optional = false
python-versions = ">=3.5"
+files = [
+ {file = "inflection-0.5.1-py2.py3-none-any.whl", hash = "sha256:f38b2b640938a4f35ade69ac3d053042959b62a0f1076a5bbaa1b9526605a8a2"},
+ {file = "inflection-0.5.1.tar.gz", hash = "sha256:1a29730d366e996aaacffb2f1f1cb9593dc38e2ddd30c91250c6dde09ea9b417"},
+]
+
+[[package]]
+name = "markdown-it-py"
+version = "3.0.0"
+description = "Python port of markdown-it. Markdown parsing, done right!"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"},
+ {file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"},
+]
+
+[package.dependencies]
+mdurl = ">=0.1,<1.0"
+
+[package.extras]
+benchmarking = ["psutil", "pytest", "pytest-benchmark"]
+code-style = ["pre-commit (>=3.0,<4.0)"]
+compare = ["commonmark (>=0.9,<1.0)", "markdown (>=3.4,<4.0)", "mistletoe (>=1.0,<2.0)", "mistune (>=2.0,<3.0)", "panflute (>=2.3,<3.0)"]
+linkify = ["linkify-it-py (>=1,<3)"]
+plugins = ["mdit-py-plugins"]
+profiling = ["gprof2dot"]
+rtd = ["jupyter_sphinx", "mdit-py-plugins", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"]
+testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"]
+
+[[package]]
+name = "mdurl"
+version = "0.1.2"
+description = "Markdown URL utilities"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"},
+ {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"},
+]
[[package]]
name = "pygments"
-version = "2.13.0"
+version = "2.16.1"
description = "Pygments is a syntax highlighting package written in Python."
-category = "main"
optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.7"
+files = [
+ {file = "Pygments-2.16.1-py3-none-any.whl", hash = "sha256:13fc09fa63bc8d8671a6d247e1eb303c4b343eaee81d861f3404db2935653692"},
+ {file = "Pygments-2.16.1.tar.gz", hash = "sha256:1daff0494820c69bc8941e407aa20f577374ee88364ee10a98fdbe0aece96e29"},
+]
[package.extras]
plugins = ["importlib-metadata"]
[[package]]
name = "pyparam"
-version = "0.5.3"
+version = "0.5.4"
description = "Powerful parameter processing."
-category = "main"
optional = false
python-versions = ">=3.7,<4.0"
+files = [
+ {file = "pyparam-0.5.4-py3-none-any.whl", hash = "sha256:1fc94f0aa4914274dcf07c8ae270470ef63b36efd31bc2a38ba22ab00de35a14"},
+ {file = "pyparam-0.5.4.tar.gz", hash = "sha256:5513742f9668429d42e7b0acaf02c6ae868466b048ff91f1241f0c6d067a0af5"},
+]
[package.dependencies]
diot = ">=0.1,<0.2"
python-simpleconf = ">=0.5,<0.6"
-rich = ">=12,<13"
+rich = ">=13,<14"
[[package]]
name = "python-dateutil"
version = "2.8.2"
description = "Extensions to the standard Python datetime module"
-category = "main"
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
+files = [
+ {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"},
+ {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"},
+]
[package.dependencies]
six = ">=1.5"
@@ -124,9 +180,12 @@ six = ">=1.5"
name = "python-simpleconf"
version = "0.5.7"
description = "Simple configuration management with python."
-category = "main"
optional = false
python-versions = ">=3.7,<4.0"
+files = [
+ {file = "python-simpleconf-0.5.7.tar.gz", hash = "sha256:e8c41be99cc835d59efe6a0d1617cffcfa6c7661142c5299d7ae39ecc06b3f14"},
+ {file = "python_simpleconf-0.5.7-py3-none-any.whl", hash = "sha256:e44f2ef56ee931607f2e6a836e5a3b77457abea8dc0e536e8ba8403751f07b2c"},
+]
[package.dependencies]
diot = ">=0.1,<0.2"
@@ -140,19 +199,80 @@ yaml = ["pyyaml (>=6,<7)"]
[[package]]
name = "pytomlpp"
-version = "1.0.11"
+version = "1.0.13"
description = "A python wrapper for toml++"
-category = "main"
optional = false
python-versions = "*"
+files = [
+ {file = "pytomlpp-1.0.13-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:131644b5c32a0b32667875883251fa01a6a852e0386e5db8d0f70ddf44bebe3b"},
+ {file = "pytomlpp-1.0.13-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:23d7ac98b01965e17c604bc86c77f751e4f91055c68397a724e7a05cd91c04fd"},
+ {file = "pytomlpp-1.0.13-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:98ae1451dcabb3449df8a097014b2d5cdaeb8961f16cced83462dfb704b61d12"},
+ {file = "pytomlpp-1.0.13-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cc31231a57b45499c68b7c6c7c7d176874c1b4d3c236e3e4ecfc005642496815"},
+ {file = "pytomlpp-1.0.13-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68d1743e03806e67a0b5daefb8f548609ffeec4ab94d91092440325c9e22bc77"},
+ {file = "pytomlpp-1.0.13-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:5b9a8b2179271abc54c0879cccc880b50918409765074c9ee25d45545f60b2a8"},
+ {file = "pytomlpp-1.0.13-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4d325590d276104e4030c7907dd559148566347e840cb1c3874671ea09491789"},
+ {file = "pytomlpp-1.0.13-cp310-cp310-win_amd64.whl", hash = "sha256:fab6e69a754d3be5d8580753feac56fa70d2f4f9388f1d7a30c719ceca2d3ff2"},
+ {file = "pytomlpp-1.0.13-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:47684714f9ed1a880e66b2e183789519a9ad7b55f2da9e30b65090a42342ef83"},
+ {file = "pytomlpp-1.0.13-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4d7c0e8a1e21249df4e60f07a728129f33899b7548ff391343b244e1222296b1"},
+ {file = "pytomlpp-1.0.13-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:aa016e89a76c3ed58ea7a1eb2cb795ee1b1aa2831bb47c724ae787cb03dcf790"},
+ {file = "pytomlpp-1.0.13-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d4549130097ca8b7aada5f6e8440db3dbc36f0f3df24231b3521297a5e3cecf1"},
+ {file = "pytomlpp-1.0.13-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7d2e7be5ddf349fbcfdd1cfcee630c4ad33031411a9dded93a96d186f2086038"},
+ {file = "pytomlpp-1.0.13-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:3398853a6ab98ccb5e722b9d2f1ac127ea2a82d267dcff8ff7dc98a472f70ad0"},
+ {file = "pytomlpp-1.0.13-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:b606dea8b05d2f5915a4d6f88e7772eb4772ed8a65c113b15bff5754982f48df"},
+ {file = "pytomlpp-1.0.13-cp311-cp311-win_amd64.whl", hash = "sha256:1843cd3816e25453bfcac5468106f9f39e766bda198bd69d41e09184a6062497"},
+ {file = "pytomlpp-1.0.13-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:adfbfb981bcfe31cec4443b2410ae65cea6ec37b13396f7a0a66ffffd418a075"},
+ {file = "pytomlpp-1.0.13-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:87256e701a6237a178739323394e5abfe3bf5fa5eb0188d8710839412556b56e"},
+ {file = "pytomlpp-1.0.13-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2752caeb649c04dcdfe78dd43d63b9c03db01d41f4e97af133f214cf6ee5f09"},
+ {file = "pytomlpp-1.0.13-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:988288644025dc20a997a5caa8d6d283ad94bdbc30415a965a12b82bc77026c1"},
+ {file = "pytomlpp-1.0.13-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:807f8cfff2195b68fbefe8122561be6ced51009f5c95c422f781bae5d7d90fc4"},
+ {file = "pytomlpp-1.0.13-cp36-cp36m-win_amd64.whl", hash = "sha256:7443a2dce8f48c0801c1f5b3ea78acbae30fb263480570f8b68b198620041afa"},
+ {file = "pytomlpp-1.0.13-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c155e2b72844dd11ca0fdfc3bfb44bc41770ba34803b67621e41496f67b70453"},
+ {file = "pytomlpp-1.0.13-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffae01816f10fa29e0cd30bd8709573de5ba1ec57dd5901ab6e2f8c7c199ed7a"},
+ {file = "pytomlpp-1.0.13-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e030b4440cc65937ae9701448615ba445ea2c1ff20fa630c149e368e06f9b082"},
+ {file = "pytomlpp-1.0.13-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2e2a94463207608d1cba0c36ea4f882e0b409e28590e2dbc48961dea59f170c0"},
+ {file = "pytomlpp-1.0.13-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:70b43d955fb53ca9186dafc95fa24ea783870a226bf875b833c25dd5865ed526"},
+ {file = "pytomlpp-1.0.13-cp37-cp37m-win_amd64.whl", hash = "sha256:7832307f4bc0518f78f0afc615cb8135400522be8676eff47ece5dfbca240115"},
+ {file = "pytomlpp-1.0.13-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:d50395394963529940703638b422b19d84c5a003a7eb0106ad7c7347ad6f20c0"},
+ {file = "pytomlpp-1.0.13-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:73062c46d315e1f3cdf631fb8761e0981dda0df346723ca50355c4311167fbfa"},
+ {file = "pytomlpp-1.0.13-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2fe54bcd5911b33410a7a7e9cad66d016b056b331cfdf9e5e9d8b404339b1003"},
+ {file = "pytomlpp-1.0.13-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88facf9533603b8e2a502f4485641dcb3121d20ccff78f1167b38efc1c7eb9a4"},
+ {file = "pytomlpp-1.0.13-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce78fab1987ff48d42e4f4759d765dbf183824a56862f35f500ce0cfc974b5ef"},
+ {file = "pytomlpp-1.0.13-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:0cf58c70c6cf97d8f98f1931c168b5a2b4c894e5bfd46bd574f0ea0668e8d2b2"},
+ {file = "pytomlpp-1.0.13-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b95933988d11d6b54beb1dbf5d13b7afb4f60c2d014dfaaa5c7df44393e23537"},
+ {file = "pytomlpp-1.0.13-cp38-cp38-win_amd64.whl", hash = "sha256:a43b2be6182d56914e9cf8aea25cd756b6c7415395ed223b7fc270582a0a4fd2"},
+ {file = "pytomlpp-1.0.13-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2fea0318339407d0a9a097d63e9c020cc1bdb0b2de90b5ba6cfb3eabfdbbdfd1"},
+ {file = "pytomlpp-1.0.13-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:98510ef5b92f8f7c5e42280948301f542f0086c39bf879f140e111a987f521aa"},
+ {file = "pytomlpp-1.0.13-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8287ded4f27d9f54d017e996480e95ebcf9b2fd8381d4bc755f39fc0b2f70629"},
+ {file = "pytomlpp-1.0.13-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f931803e4f48df82ac86ddc075a16635d57018bbac779e0258c896544f5e8ec6"},
+ {file = "pytomlpp-1.0.13-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20a1f6584814f7c9db63f1f590868788aff86201e2b49e89f76772346b79606a"},
+ {file = "pytomlpp-1.0.13-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:abbca560310f4bc1f0dea15e77042da03d2a9437ffc239fd949fdcb4302bd85b"},
+ {file = "pytomlpp-1.0.13-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:62150ce6f7a47a135ba4375a8075eb321d1064ea2295f59fd92d5d148b7093f0"},
+ {file = "pytomlpp-1.0.13-cp39-cp39-win_amd64.whl", hash = "sha256:b5e89ea80cd25732a2789d67075b72d64133fdf13490aa058abfe9e4964880e4"},
+ {file = "pytomlpp-1.0.13-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:4710c72456c10a90e58084174312abef8f9652b0f91c240c008903c1bd99814d"},
+ {file = "pytomlpp-1.0.13-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b59acc12339a992404289ab7294f28ba06c7df3c2562e81d316a0e744ab4103b"},
+ {file = "pytomlpp-1.0.13-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:252e31a5e013a74b898784f4ffb8aa8068e136b910ad11f2af1ee8a5700e6e1e"},
+ {file = "pytomlpp-1.0.13-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:09e716c0f462d15f2334cecc736957777dd30f8a5bfa5cf8150679da7577d2fd"},
+ {file = "pytomlpp-1.0.13-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:19dbded2995370e802105fa6dce54ed60f79e58b4eb35fee7ef33f1fb5958f6c"},
+ {file = "pytomlpp-1.0.13-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9f87f6c958309e4c2358b778902c80bd33611d1c392f1abe2c226e3a62909ca4"},
+ {file = "pytomlpp-1.0.13-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e285aca948b419301fdda1927723287ef28482752782c44c9ee8c57eae7a1dc8"},
+ {file = "pytomlpp-1.0.13-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:aad6ae19c056ea62a43fec82427ad4675b5c773dc255c4bdcf6da659cd7edff6"},
+ {file = "pytomlpp-1.0.13-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:0e0b34b7a132856567714342e9a622f7be0b4c9bac561a6252f0f85626c1aa4b"},
+ {file = "pytomlpp-1.0.13-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ac06ca7683f5a2737b3888ea1e38d6968abb24fab703bc7ceccbe589d5420e0c"},
+ {file = "pytomlpp-1.0.13-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:35225c1d9d674df87b4682f04af97856049351c38822455b78258248d9309363"},
+ {file = "pytomlpp-1.0.13-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:dbc9208ac58ea2a9d5ebb77e69d54d146744007f4a704a3f4e56d9881d41ee1c"},
+ {file = "pytomlpp-1.0.13.tar.gz", hash = "sha256:a0bd639a8f624d1bdf5b3ea94363ca23dbfef38ab7b5b9348881a84afab434ad"},
+]
[[package]]
name = "qtoml"
version = "0.3.1"
description = "New TOML encoder/decoder"
-category = "main"
optional = false
python-versions = ">=3.6,<4.0"
+files = [
+ {file = "qtoml-0.3.1-py3-none-any.whl", hash = "sha256:de4ec4f759a77931cda324a06e2c2fbbb2209372c42f4741c2ab6748f15640b4"},
+ {file = "qtoml-0.3.1.tar.gz", hash = "sha256:7f2d0c2c39659d2a408ae93d02a068e0d22eb67e16e474239f7735ff1094b1ba"},
+]
[package.dependencies]
attrs = ">=19.3.0,<22.0"
@@ -162,187 +282,9 @@ click = ">=7.0,<9.0"
name = "regex"
version = "2022.10.31"
description = "Alternative regular expression module, to replace re."
-category = "main"
-optional = false
-python-versions = ">=3.6"
-
-[[package]]
-name = "rich"
-version = "12.6.0"
-description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal"
-category = "main"
-optional = false
-python-versions = ">=3.6.3,<4.0.0"
-
-[package.dependencies]
-commonmark = ">=0.9.0,<0.10.0"
-pygments = ">=2.6.0,<3.0.0"
-
-[package.extras]
-jupyter = ["ipywidgets (>=7.5.1,<8.0.0)"]
-
-[[package]]
-name = "rtoml"
-version = "0.9.0"
-description = ""
-category = "main"
-optional = false
-python-versions = ">=3.7"
-
-[[package]]
-name = "six"
-version = "1.16.0"
-description = "Python 2 and 3 compatibility utilities"
-category = "main"
-optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
-
-[[package]]
-name = "toml"
-version = "0.10.2"
-description = "Python Library for Tom's Obvious, Minimal Language"
-category = "main"
-optional = false
-python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
-
-[[package]]
-name = "tomli"
-version = "2.0.1"
-description = "A lil' TOML parser"
-category = "main"
-optional = false
-python-versions = ">=3.7"
-
-[[package]]
-name = "tomli-w"
-version = "1.0.0"
-description = "A lil' TOML writer"
-category = "main"
-optional = false
-python-versions = ">=3.7"
-
-[[package]]
-name = "tomlkit"
-version = "0.11.6"
-description = "Style preserving TOML library"
-category = "main"
optional = false
python-versions = ">=3.6"
-
-[[package]]
-name = "zipp"
-version = "3.10.0"
-description = "Backport of pathlib-compatible object wrapper for zip files"
-category = "main"
-optional = false
-python-versions = ">=3.7"
-
-[package.extras]
-docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)"]
-testing = ["flake8 (<5)", "func-timeout", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"]
-
-[metadata]
-lock-version = "1.1"
-python-versions = "^3.9"
-content-hash = "13d34e242f9996b15abee75e63dbcf53fdae48af51e22c272e274cf23c59e95a"
-
-[metadata.files]
-attrs = [
- {file = "attrs-21.4.0-py2.py3-none-any.whl", hash = "sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4"},
- {file = "attrs-21.4.0.tar.gz", hash = "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd"},
-]
-benchwork = [
- {file = "benchwork-0.0.2-py3-none-any.whl", hash = "sha256:108ca9bd7aef958ff0b5af1e41d654d95296629ffcffb2b49a9ba1a9347f1fb2"},
- {file = "benchwork-0.0.2.tar.gz", hash = "sha256:5e6c3ba005c535485534bb67fe48b16a153739103c2d4e319eca57730701fdbe"},
-]
-click = [
- {file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"},
- {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"},
-]
-colorama = [
- {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"},
- {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
-]
-commonmark = [
- {file = "commonmark-0.9.1-py2.py3-none-any.whl", hash = "sha256:da2f38c92590f83de410ba1a3cbceafbc74fee9def35f9251ba9a971d6d66fd9"},
- {file = "commonmark-0.9.1.tar.gz", hash = "sha256:452f9dc859be7f06631ddcb328b6919c67984aca654e5fefb3914d54691aed60"},
-]
-diot = [
- {file = "diot-0.1.6-py3-none-any.whl", hash = "sha256:1e7f97bbc92cbbdd51d8c535885f5e2a71762b364c1b2410dfc84f3a4572d551"},
- {file = "diot-0.1.6.tar.gz", hash = "sha256:1dcfc37dff406c96020d14350c05f920cb7446c3e5abf3477cf2ae0587f72066"},
-]
-importlib-metadata = [
- {file = "importlib_metadata-5.0.0-py3-none-any.whl", hash = "sha256:ddb0e35065e8938f867ed4928d0ae5bf2a53b7773871bfe6bcc7e4fcdc7dea43"},
- {file = "importlib_metadata-5.0.0.tar.gz", hash = "sha256:da31db32b304314d044d3c12c79bd59e307889b287ad12ff387b3500835fc2ab"},
-]
-inflection = [
- {file = "inflection-0.5.1-py2.py3-none-any.whl", hash = "sha256:f38b2b640938a4f35ade69ac3d053042959b62a0f1076a5bbaa1b9526605a8a2"},
- {file = "inflection-0.5.1.tar.gz", hash = "sha256:1a29730d366e996aaacffb2f1f1cb9593dc38e2ddd30c91250c6dde09ea9b417"},
-]
-pygments = [
- {file = "Pygments-2.13.0-py3-none-any.whl", hash = "sha256:f643f331ab57ba3c9d89212ee4a2dabc6e94f117cf4eefde99a0574720d14c42"},
- {file = "Pygments-2.13.0.tar.gz", hash = "sha256:56a8508ae95f98e2b9bdf93a6be5ae3f7d8af858b43e02c5a2ff083726be40c1"},
-]
-pyparam = [
- {file = "pyparam-0.5.3-py3-none-any.whl", hash = "sha256:dfc289b56c7be9f16c6f3697ec6863ef1e577dae90bc388be878d3ba082c349d"},
- {file = "pyparam-0.5.3.tar.gz", hash = "sha256:574b5bce18ff1513e47043d6a21a3a192cf1435eda232999411c743fffb97387"},
-]
-python-dateutil = [
- {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"},
- {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"},
-]
-python-simpleconf = [
- {file = "python-simpleconf-0.5.7.tar.gz", hash = "sha256:e8c41be99cc835d59efe6a0d1617cffcfa6c7661142c5299d7ae39ecc06b3f14"},
- {file = "python_simpleconf-0.5.7-py3-none-any.whl", hash = "sha256:e44f2ef56ee931607f2e6a836e5a3b77457abea8dc0e536e8ba8403751f07b2c"},
-]
-pytomlpp = [
- {file = "pytomlpp-1.0.11-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:450e0298fc879064ed5d0f4a4dd3b4419894ea609c49b711c0adcafdb1c55074"},
- {file = "pytomlpp-1.0.11-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:19664c06fb132daa5ba94107f6c205a4f3122495155788e16503d1ea4e49d79d"},
- {file = "pytomlpp-1.0.11-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c4ec6951158a0b51e8a7de79e0a5c29a2a73f7381bb35ce638b833e628a26e77"},
- {file = "pytomlpp-1.0.11-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9505450bf56bef8f751ebe22097e0edc0ccdb68aa8841bd5369dc347bbca5d0e"},
- {file = "pytomlpp-1.0.11-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:e0f176edb38a22d078bddcc7cd3c34e38edfe1af9db82d2a08d9af474674423a"},
- {file = "pytomlpp-1.0.11-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:86810e8f9df7b55e8e65325d809a738e1ad7f49637e275cb55d8ab42651eabf6"},
- {file = "pytomlpp-1.0.11-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e85e392fcd4b6c6682af937717305646e3d318b1c204beaa7f37297c71aa801c"},
- {file = "pytomlpp-1.0.11-cp310-cp310-win_amd64.whl", hash = "sha256:58c3dd9fe03a76cce4d8afb5fc21341773807e8cf81b201f013189c902474938"},
- {file = "pytomlpp-1.0.11-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:a85ebedf272e7084dd16c14ea59243328e88a66fff43532987307a8771d240cd"},
- {file = "pytomlpp-1.0.11-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:01e6a27a8d77f39ce3eab2717107539b5cdd4b8caf524e58396b7066f38981b1"},
- {file = "pytomlpp-1.0.11-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:363b1b2469f6782dfb684f5f0c5b97e969b4822fe5c6d5619bc9d0c3ee3418dc"},
- {file = "pytomlpp-1.0.11-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:ac1d9b8fec0ee3efa4a6cfa21107e301f7a567cb2310d7c31c6fe3529f11e4e0"},
- {file = "pytomlpp-1.0.11-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:b73028948fa8ff81c4279592ae980370acd0b9d5cdbb871cefc644c58b2d0dd1"},
- {file = "pytomlpp-1.0.11-cp36-cp36m-win_amd64.whl", hash = "sha256:9ee0860c9fa1c1c382fec5624c99835c8cb6bbde174d1b94c9542f531fc7678d"},
- {file = "pytomlpp-1.0.11-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b29690c81c6ca42058031936add3e1b5c133beefbaf9efd0897ab50c6a15ad18"},
- {file = "pytomlpp-1.0.11-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:c807e00f495d8b6c3bcd253a5490f8b7888bb9d8d98057b70d7dee625cd608f7"},
- {file = "pytomlpp-1.0.11-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4d9a43a375b816f6eaedd4e8d9921d8a4618c89970014dd993e17a3d61360a2d"},
- {file = "pytomlpp-1.0.11-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:1d1c9566102da161a541329b9000574b2f3e4ccda7807c0799e1466c29ddab97"},
- {file = "pytomlpp-1.0.11-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:adcd00554beca01a056234a3f3fb5415b2391fa1c4b6b710ccb8765a6ad79017"},
- {file = "pytomlpp-1.0.11-cp37-cp37m-win_amd64.whl", hash = "sha256:f0ea1aeba4bc1be0de2f25eb3fe6ea77315c5449f54a43c6af6ab36ac37a529d"},
- {file = "pytomlpp-1.0.11-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:2f479327b4cd91d8ad9e0b8bcbc793d5b0dff38d4bea310bb4e33205ad60dfca"},
- {file = "pytomlpp-1.0.11-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:99b0efff21de3568e5df9e13781338143fbc672b246025d20359a5ffd6d8eb94"},
- {file = "pytomlpp-1.0.11-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:8edf552d041dfc9fc21af458176e3d790d2e279128c0ac1b26d6237f78a605c1"},
- {file = "pytomlpp-1.0.11-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0f9ca56a7d2932cf06bf6468fb398e8d9b67a2eb5bdf3de199f0d3ab5993c053"},
- {file = "pytomlpp-1.0.11-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:0ab3ec403080a902d56bc2ad29b8895f45c8c8ce132e773e14d5267e7ed1cd79"},
- {file = "pytomlpp-1.0.11-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a73d045c85b35ebc289830a475a1aa80572dbd656b1110d9a8d197d63cfd70f3"},
- {file = "pytomlpp-1.0.11-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:7a7ba1069f98d3c9d2d867ebf8d0e5dcd381927e22854a0db2f5d410bc46819d"},
- {file = "pytomlpp-1.0.11-cp38-cp38-win_amd64.whl", hash = "sha256:27dd7d5299e064619ecfd1d5da6a97a3626bc9c0eb7a8c5fb0f405f2d37178a5"},
- {file = "pytomlpp-1.0.11-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:6040e3d70957695ff5864477b8554a23b7306a854262276a996a88d09264e669"},
- {file = "pytomlpp-1.0.11-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2fc2c806d41176fb456cde35d09f93539b8e12f2a25db82d0a7c9832b5d86c10"},
- {file = "pytomlpp-1.0.11-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6a41243cf07b2f489e3ffdd191a6bc4b30715463a7fd6cb09e5400976e2f6259"},
- {file = "pytomlpp-1.0.11-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:160a29bf397a6f5dbd8ab0b985b3bcd8c6ec8ba29d4137cd2751cdcb6401409e"},
- {file = "pytomlpp-1.0.11-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:02d7c0291bbec46576d9b86f61881021b2279224baa770b9a57b17888bba64e3"},
- {file = "pytomlpp-1.0.11-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:a1db522368079a7a8e5525e249484f7fe087797f201b8b588573dbd05a0092df"},
- {file = "pytomlpp-1.0.11-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:cd83a7f18df52175a0155052ea83d8cacdea972bce7c24fd950d41b3f62ee9fc"},
- {file = "pytomlpp-1.0.11-cp39-cp39-win_amd64.whl", hash = "sha256:592567be7c2261580673e977b17dafc262e977c7d24a6019438f1e2c0e4d7b70"},
- {file = "pytomlpp-1.0.11-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:9420596fb5ba9fad4bdf3899767448be2bf9144263a4506b2d7956d1099bf85d"},
- {file = "pytomlpp-1.0.11-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:04cabd19fc746b8a04b278f1a1429de68eb3aa6a7cae0330d5c919e455eba7fd"},
- {file = "pytomlpp-1.0.11-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:acb66fe6c27c210f3519dda2e70928419388f1af8853102c579fa3079d9ff97c"},
- {file = "pytomlpp-1.0.11-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:1e583427ff49928e628d43940af31919f0d9e87138aaf1b506978d9d999d4551"},
- {file = "pytomlpp-1.0.11.tar.gz", hash = "sha256:90021866ee72c16475692ec8b0ecc69ec530d2b8ce27a63a4cc39c1907f4b37a"},
-]
-qtoml = [
- {file = "qtoml-0.3.1-py3-none-any.whl", hash = "sha256:de4ec4f759a77931cda324a06e2c2fbbb2209372c42f4741c2ab6748f15640b4"},
- {file = "qtoml-0.3.1.tar.gz", hash = "sha256:7f2d0c2c39659d2a408ae93d02a068e0d22eb67e16e474239f7735ff1094b1ba"},
-]
-regex = [
+files = [
{file = "regex-2022.10.31-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a8ff454ef0bb061e37df03557afda9d785c905dab15584860f982e88be73015f"},
{file = "regex-2022.10.31-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1eba476b1b242620c266edf6325b443a2e22b633217a9835a52d8da2b5c051f9"},
{file = "regex-2022.10.31-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d0e5af9a9effb88535a472e19169e09ce750c3d442fb222254a276d77808620b"},
@@ -432,11 +374,32 @@ regex = [
{file = "regex-2022.10.31-cp39-cp39-win_amd64.whl", hash = "sha256:957403a978e10fb3ca42572a23e6f7badff39aa1ce2f4ade68ee452dc6807692"},
{file = "regex-2022.10.31.tar.gz", hash = "sha256:a3a98921da9a1bf8457aeee6a551948a83601689e5ecdd736894ea9bbec77e83"},
]
-rich = [
- {file = "rich-12.6.0-py3-none-any.whl", hash = "sha256:a4eb26484f2c82589bd9a17c73d32a010b1e29d89f1604cd9bf3a2097b81bb5e"},
- {file = "rich-12.6.0.tar.gz", hash = "sha256:ba3a3775974105c221d31141f2c116f4fd65c5ceb0698657a11e9f295ec93fd0"},
+
+[[package]]
+name = "rich"
+version = "13.5.3"
+description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal"
+optional = false
+python-versions = ">=3.7.0"
+files = [
+ {file = "rich-13.5.3-py3-none-any.whl", hash = "sha256:9257b468badc3d347e146a4faa268ff229039d4c2d176ab0cffb4c4fbc73d5d9"},
+ {file = "rich-13.5.3.tar.gz", hash = "sha256:87b43e0543149efa1253f485cd845bb7ee54df16c9617b8a893650ab84b4acb6"},
]
-rtoml = [
+
+[package.dependencies]
+markdown-it-py = ">=2.2.0"
+pygments = ">=2.13.0,<3.0.0"
+
+[package.extras]
+jupyter = ["ipywidgets (>=7.5.1,<9)"]
+
+[[package]]
+name = "rtoml"
+version = "0.9.0"
+description = ""
+optional = false
+python-versions = ">=3.7"
+files = [
{file = "rtoml-0.9.0-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:b440445df3a5bdd30f70196305c964699fb8c6a23dfe08b9b0a822a8c3a1da00"},
{file = "rtoml-0.9.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4e00c085841c215868b5c3d607ae7076bad4faf6cc00bf9da334c0683b2001a9"},
{file = "rtoml-0.9.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d66f145fca240150d54334b1779edbc713a2b2b0547c703a9b441b94f05cec14"},
@@ -489,27 +452,78 @@ rtoml = [
{file = "rtoml-0.9.0-cp39-none-win_amd64.whl", hash = "sha256:c539af5d88056a4d53a1f9067fee97bf6015edbb8e82fbde6ba96e19a1b41645"},
{file = "rtoml-0.9.0.tar.gz", hash = "sha256:113f2e133d152d9424269c475b4a7d0679987078b543e88fcb16c870dc2c460d"},
]
-six = [
+
+[[package]]
+name = "six"
+version = "1.16.0"
+description = "Python 2 and 3 compatibility utilities"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
+files = [
{file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},
{file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
]
-toml = [
+
+[[package]]
+name = "toml"
+version = "0.10.2"
+description = "Python Library for Tom's Obvious, Minimal Language"
+optional = false
+python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
+files = [
{file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"},
{file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"},
]
-tomli = [
+
+[[package]]
+name = "tomli"
+version = "2.0.1"
+description = "A lil' TOML parser"
+optional = false
+python-versions = ">=3.7"
+files = [
{file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"},
{file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"},
]
-tomli-w = [
+
+[[package]]
+name = "tomli-w"
+version = "1.0.0"
+description = "A lil' TOML writer"
+optional = false
+python-versions = ">=3.7"
+files = [
{file = "tomli_w-1.0.0-py3-none-any.whl", hash = "sha256:9f2a07e8be30a0729e533ec968016807069991ae2fd921a78d42f429ae5f4463"},
{file = "tomli_w-1.0.0.tar.gz", hash = "sha256:f463434305e0336248cac9c2dc8076b707d8a12d019dd349f5c1e382dd1ae1b9"},
]
-tomlkit = [
- {file = "tomlkit-0.11.6-py3-none-any.whl", hash = "sha256:07de26b0d8cfc18f871aec595fda24d95b08fef89d147caa861939f37230bf4b"},
- {file = "tomlkit-0.11.6.tar.gz", hash = "sha256:71b952e5721688937fb02cf9d354dbcf0785066149d2855e44531ebdd2b65d73"},
+
+[[package]]
+name = "tomlkit"
+version = "0.11.8"
+description = "Style preserving TOML library"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "tomlkit-0.11.8-py3-none-any.whl", hash = "sha256:8c726c4c202bdb148667835f68d68780b9a003a9ec34167b6c673b38eff2a171"},
+ {file = "tomlkit-0.11.8.tar.gz", hash = "sha256:9330fc7faa1db67b541b28e62018c17d20be733177d290a13b24c62d1614e0c3"},
]
-zipp = [
- {file = "zipp-3.10.0-py3-none-any.whl", hash = "sha256:4fcb6f278987a6605757302a6e40e896257570d11c51628968ccb2a47e80c6c1"},
- {file = "zipp-3.10.0.tar.gz", hash = "sha256:7a7262fd930bd3e36c50b9a64897aec3fafff3dfdeec9623ae22b40e93f99bb8"},
+
+[[package]]
+name = "zipp"
+version = "3.17.0"
+description = "Backport of pathlib-compatible object wrapper for zip files"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "zipp-3.17.0-py3-none-any.whl", hash = "sha256:0e923e726174922dce09c53c59ad483ff7bbb8e572e00c7f7c46b88556409f31"},
+ {file = "zipp-3.17.0.tar.gz", hash = "sha256:84e64a1c28cf7e91ed2078bb8cc8c259cb19b76942096c8d7b84947690cabaf0"},
]
+
+[package.extras]
+docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"]
+testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy (>=0.9.1)", "pytest-ruff"]
+
+[metadata]
+lock-version = "2.0"
+python-versions = "^3.9"
+content-hash = "9b40789515ad140c8b3daa2363cbf12525a7fe7b1b2cb7341a63086325adc4f5"
diff --git a/pyproject.toml b/pyproject.toml
index 44ceb04..30a4982 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -12,11 +12,11 @@ pyparam = "^0.5"
toml = "^0.10.2"
rtoml = "^0.9.0"
# pytomlpp does not support python 3.11 yet
-pytomlpp = {version = "^1.0.11", python = "<3.11"}
+pytomlpp = {version = "^1.0.13", python = "<3.11"}
tomli = "^2.0.1"
tomli-w = "^1.0.0"
qtoml = "^0.3.1"
-tomlkit = "^0.11.6"
+tomlkit = "^0.11.8"
python-dateutil = "^2.8.2"
importlib-metadata = "^5.0.0"
# required by tomlkit, but cannot be inferred by poetry
diff --git a/reports/with_toml-test_latest.md b/reports/with_toml-test_latest.md
index 3ac71aa..89ba5bd 100644
--- a/reports/with_toml-test_latest.md
+++ b/reports/with_toml-test_latest.md
@@ -8,8 +8,8 @@ The verions of the packages tested in this report.
|-|-----------------------|
|toml|0.10.2|
|tomli/tomli_w|2.0.1; **tomli_w**: 1.0.0|
-|tomlkit|0.11.6|
-|pytomlpp|1.0.11|
+|tomlkit|0.11.8|
+|pytomlpp|1.0.13|
|rtoml|0.9.0|
|qtoml|0.3.1|
@@ -77,6 +77,70 @@ Literally `.loads('v1 = "null" v2 = "None"')`
|rtoml|{'v1': 'null', 'v2': 'None'}|
|qtoml|{'v1': 'null', 'v2': 'None'}|
+## Dumping a heterogenous array
+
+How the package dumps a python dictionary with a heterogenous array.
+
+Literally `.dumps({"v": [1, 1.2, True, "string", [1, 2], {"a": 1, "b": 2}]})`
+
+
+| |Dumped value or error|
+|-|-----------------------|
+|toml|v = [ 1, 1.2, true, "string",]
|
+|tomli/tomli_w|v = [
1,
1.2,
true,
"string",
]
|
+|tomlkit|v = [1, 1.2, true, "string"]
|
+|pytomlpp|v = [ 1, 1.2, 1, 'string' ]|
+|rtoml|v = [1, 1.2, true, "string"]
|
+|qtoml|v = [1, 1.2, true, 'string']
|
+
+## Loading a heterogenous array
+
+How the package loads a toml string with a heterogenous array.
+
+Literally `.loads('v = [1, 1.2, True, "string", [1, 2], {"a": 1, "b": 2}]')`
+
+
+| |Loaded as|
+|-|-----------------------|
+|toml|Not a homogeneous array (line 2 column 1 char 1)|
+|tomli/tomli_w|{'v': [1, 1.2, True, 'string']}|
+|tomlkit|{'v': [1, 1.2, True, 'string']}|
+|pytomlpp|{'v': [1, 1.2, True, 'string']}|
+|rtoml|{'v': [1, 1.2, True, 'string']}|
+|qtoml|{'v': [1, 1.2, True, 'string']}|
+
+## Dumping a nested array
+
+How the package dumps a python dictionary with a nested array.
+
+Literally `.dumps({"v": [[1], [1, 2]]})`
+
+
+| |Dumped value or error|
+|-|-----------------------|
+|toml|v = [ [ 1,], [ 1, 2,],]
|
+|tomli/tomli_w|v = [
[
1,
],
[
1,
2,
],
]
|
+|tomlkit|v = [[1], [1, 2]]
|
+|pytomlpp|v = [ [ 1 ], [ 1, 2 ] ]
|
+|rtoml|v = [[1], [1, 2]]
|
+|qtoml|v = [[1], [1, 2]]
|
+
+## Loading a nested array
+
+How the package loads a toml string with a nested array.
+
+Literally `.loads('v = [[1], [1, 2]]')`
+
+
+| |Loaded as|
+|-|-----------------------|
+|toml|{'v': [[1], [1, 2]]}|
+|tomli/tomli_w|{'v': [[1], [1, 2]]}|
+|tomlkit|{'v': [[1], [1, 2]]}|
+|pytomlpp|{'v': [[1], [1, 2]]}|
+|rtoml|{'v': [[1], [1, 2]]}|
+|qtoml|{'v': [[1], [1, 2]]}|
+
## Dumping keeps order of keys?
Whether the package preserves the order of the keys while dumps
@@ -166,14 +230,14 @@ The tests come up with a JSON counterpart that can be used to valid whether
loading the toml file yields the same result as the JSON counterpart.
-| |Result (toml-test v1.2.0)|
+| |Result (toml-test v1.3.0)|
|-|-----------------------|
-|toml|[comment/tricky.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/comment/tricky.toml) Parsed as unexpected data.
[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/string/escape-esc.toml) Reserved escape sequence used (line 1 column 1 char 0)
[array/mixed-int-array.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/array/mixed-int-array.toml) Not a homogeneous array (line 1 column 1 char 0)
[array/mixed-int-float.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/array/mixed-int-float.toml) Not a homogeneous array (line 1 column 1 char 0)
[array/mixed-string-table.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/array/mixed-string-table.toml) list index out of range
[array/mixed-int-string.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/array/mixed-int-string.toml) Not a homogeneous array (line 1 column 1 char 0)
[array/nested-double.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/array/nested-double.toml) Not a homogeneous array (line 1 column 1 char 0)
[float/zero.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/float/zero.toml) Weirdness with leading zeroes or underscores in your number. (line 4 column 1 char 47)
[key/escapes.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/key/escapes.toml) Parsed as unexpected data.
[key/dotted.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/key/dotted.toml) Found invalid character in key name: '"'. Try quoting the key name. (line 12 column 11 char 245)
[inline-table/key-dotted.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/inline-table/key-dotted.toml) Parsed as unexpected data.
[inline-table/multiline.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/inline-table/multiline.toml) Invalid inline table value encountered (line 1 column 1 char 0)
[datetime/local-time.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/datetime/local-time.toml) Parsed as unexpected data.
[datetime/datetime.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/datetime/datetime.toml) Parsed as unexpected data.
*86/100 (86.00%) passed*|
-|tomli/tomli_w|[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/string/escape-esc.toml) Unescaped '\' in a string (at line 1, column 10)
*99/100 (99.00%) passed*|
-|tomlkit|[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/string/escape-esc.toml) Invalid character 'e' in string at line 1 col 8
*99/100 (99.00%) passed*|
-|pytomlpp|[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/string/escape-esc.toml) Error while parsing string: unknown escape sequence '\e' (error occurred at line 1, column 9)
*99/100 (99.00%) passed*|
-|rtoml|[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/string/escape-esc.toml) invalid escape character in string: `e` at line 1 column 9
*99/100 (99.00%) passed*|
-|qtoml|[comment/tricky.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/comment/tricky.toml) can't parse type (line 11, column 7)
[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/string/escape-esc.toml) \e not a valid escape (line 1, column 33)
[string/multiline-quotes.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/string/multiline-quotes.toml) Didn't find expected newline (line 4, column 26)
[datetime/milliseconds.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/datetime/milliseconds.toml) Didn't find expected newline (line 2, column 27)
[datetime/datetime.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/datetime/datetime.toml) Didn't find expected newline (line 2, column 18)
*95/100 (95.00%) passed*|
+|toml|[key/escapes.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/key/escapes.toml) Parsed as unexpected data.
[key/dotted.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/key/dotted.toml) Found invalid character in key name: '"'. Try quoting the key name. (line 12 column 11 char 245)
[comment/tricky.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/comment/tricky.toml) Parsed as unexpected data.
[inline-table/key-dotted.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/inline-table/key-dotted.toml) Parsed as unexpected data.
[inline-table/multiline.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/inline-table/multiline.toml) Invalid inline table value encountered (line 1 column 1 char 0)
[array/nested-double.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/array/nested-double.toml) Not a homogeneous array (line 1 column 1 char 0)
[array/mixed-int-string.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/array/mixed-int-string.toml) Not a homogeneous array (line 1 column 1 char 0)
[array/mixed-string-table.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/array/mixed-string-table.toml) list index out of range
[array/mixed-int-array.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/array/mixed-int-array.toml) Not a homogeneous array (line 1 column 1 char 0)
[array/mixed-int-float.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/array/mixed-int-float.toml) Not a homogeneous array (line 1 column 1 char 0)
[float/zero.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/float/zero.toml) Weirdness with leading zeroes or underscores in your number. (line 4 column 1 char 47)
[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/string/escape-esc.toml) Reserved escape sequence used (line 1 column 1 char 0)
[datetime/datetime.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/datetime/datetime.toml) Parsed as unexpected data.
[datetime/local-time.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/datetime/local-time.toml) Parsed as unexpected data.
*86/100 (86.00%) passed*|
+|tomli/tomli_w|[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/string/escape-esc.toml) Unescaped '\' in a string (at line 1, column 10)
*99/100 (99.00%) passed*|
+|tomlkit|[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/string/escape-esc.toml) Invalid character 'e' in string at line 1 col 8
*99/100 (99.00%) passed*|
+|pytomlpp|[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/string/escape-esc.toml) Error while parsing string: escape sequence '\e' is not supported in TOML 1.0.0 and earlier (error occurred at line 1, column 9)
*99/100 (99.00%) passed*|
+|rtoml|[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/string/escape-esc.toml) invalid escape character in string: `e` at line 1 column 9
*99/100 (99.00%) passed*|
+|qtoml|[comment/tricky.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/comment/tricky.toml) can't parse type (line 11, column 7)
[string/multiline-quotes.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/string/multiline-quotes.toml) Didn't find expected newline (line 4, column 26)
[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/string/escape-esc.toml) \e not a valid escape (line 1, column 33)
[datetime/milliseconds.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/datetime/milliseconds.toml) Didn't find expected newline (line 2, column 27)
[datetime/datetime.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/datetime/datetime.toml) Didn't find expected newline (line 2, column 18)
*95/100 (95.00%) passed*|
## Compliance with invalid tests in toml-test
@@ -187,14 +251,14 @@ here:
parsing error.
-| |Result (toml-test v1.2.0)|
+| |Result (toml-test v1.3.0)|
|-|-----------------------|
-|toml|Not OK: [integer/us-after-hex.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/integer/us-after-hex.toml) incorrectly parsed.
Not OK: [integer/us-after-oct.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/integer/us-after-oct.toml) incorrectly parsed.
Not OK: [integer/double-sign-plus.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/integer/double-sign-plus.toml) incorrectly parsed.
Not OK: [integer/double-sign-nex.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/integer/double-sign-nex.toml) incorrectly parsed.
Not OK: [integer/us-after-bin.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/integer/us-after-bin.toml) incorrectly parsed.
Not OK: [array/no-close.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/array/no-close.toml) incorrectly parsed.
Not OK: [array/tables-1.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/array/tables-1.toml) incorrectly parsed.
Not OK: [array/no-close-2.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/array/no-close-2.toml) incorrectly parsed.
Not OK: [array/no-close-table.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/array/no-close-table.toml) incorrectly parsed.
Not OK: [array/no-close-table-2.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/array/no-close-table-2.toml) incorrectly parsed.
Not OK: *36 more items incorrectly parsed.*
*177/223 (79.37%) passed*|
-|tomli/tomli_w|OK: [table/duplicate-key-dotted-table2.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/table/duplicate-key-dotted-table2.toml) Cannot declare ('fruit', 'apple', 'taste') twice (at line 4, column 19)
*223/223 (100%) passed*|
-|tomlkit|Not OK: [control/comment-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/comment-cr.toml) incorrectly parsed.
Not OK: [control/bare-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/bare-cr.toml) incorrectly parsed.
Not OK: [table/append-with-dotted-keys-1.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/table/append-with-dotted-keys-1.toml) incorrectly parsed.
Not OK: [table/append-with-dotted-keys-2.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/table/append-with-dotted-keys-2.toml) incorrectly parsed.
*219/223 (98.21%) passed*|
-|pytomlpp|Not OK: [control/comment-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/comment-cr.toml) incorrectly parsed.
Not OK: [control/bare-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/bare-cr.toml) incorrectly parsed.
*221/223 (99.10%) passed*|
-|rtoml|Not OK: [integer/positive-hex.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/integer/positive-hex.toml) incorrectly parsed.
Not OK: [integer/positive-bin.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/integer/positive-bin.toml) incorrectly parsed.
Not OK: [control/comment-del.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/comment-del.toml) incorrectly parsed.
Not OK: [control/comment-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/comment-cr.toml) incorrectly parsed.
Not OK: [control/bare-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/bare-cr.toml) incorrectly parsed.
*218/223 (97.76%) passed*|
-|qtoml|Not OK: [inline-table/add.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/inline-table/add.toml) incorrectly parsed.
Not OK: [inline-table/trailing-comma.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/inline-table/trailing-comma.toml) incorrectly parsed.
Not OK: [control/comment-del.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/comment-del.toml) incorrectly parsed.
Not OK: [control/comment-null.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/comment-null.toml) incorrectly parsed.
Not OK: [control/comment-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/comment-cr.toml) incorrectly parsed.
Not OK: [control/comment-us.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/comment-us.toml) incorrectly parsed.
Not OK: [control/bare-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/bare-cr.toml) incorrectly parsed.
Not OK: [control/comment-lf.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/comment-lf.toml) incorrectly parsed.
Not OK: [table/append-with-dotted-keys-1.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/table/append-with-dotted-keys-1.toml) incorrectly parsed.
Not OK: [table/append-with-dotted-keys-2.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/table/append-with-dotted-keys-2.toml) incorrectly parsed.
Not OK: *2 more items incorrectly parsed.*
*211/223 (94.62%) passed*|
+|toml|Not OK: [key/start-dot.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/key/start-dot.toml) incorrectly parsed.
Not OK: [key/escape.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/key/escape.toml) incorrectly parsed.
Not OK: [key/special-character.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/key/special-character.toml) incorrectly parsed.
Not OK: [key/two-equals3.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/key/two-equals3.toml) incorrectly parsed.
Not OK: [key/two-equals2.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/key/two-equals2.toml) incorrectly parsed.
Not OK: [inline-table/add.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/inline-table/add.toml) incorrectly parsed.
Not OK: [array/no-close-2.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/array/no-close-2.toml) incorrectly parsed.
Not OK: [array/tables-1.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/array/tables-1.toml) incorrectly parsed.
Not OK: [array/no-close.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/array/no-close.toml) incorrectly parsed.
Not OK: [array/extending-table.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/array/extending-table.toml) incorrectly parsed.
Not OK: *39 more items incorrectly parsed.*
*188/237 (79.32%) passed*|
+|tomli/tomli_w|OK: [datetime/mday-under.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/datetime/mday-under.toml) Expected newline or end of document after a statement (at line 3, column 9)
*237/237 (100%) passed*|
+|tomlkit|Not OK: [control/bare-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/control/bare-cr.toml) incorrectly parsed.
Not OK: [control/comment-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/control/comment-cr.toml) incorrectly parsed.
Not OK: [table/append-with-dotted-keys-2.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/table/append-with-dotted-keys-2.toml) incorrectly parsed.
Not OK: [table/append-with-dotted-keys-1.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/table/append-with-dotted-keys-1.toml) incorrectly parsed.
*233/237 (98.31%) passed*|
+|pytomlpp|Not OK: [control/bare-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/control/bare-cr.toml) incorrectly parsed.
Not OK: [control/comment-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/control/comment-cr.toml) incorrectly parsed.
*235/237 (99.16%) passed*|
+|rtoml|Not OK: [control/bare-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/control/bare-cr.toml) incorrectly parsed.
Not OK: [control/comment-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/control/comment-cr.toml) incorrectly parsed.
Not OK: [control/comment-del.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/control/comment-del.toml) incorrectly parsed.
Not OK: [integer/positive-hex.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/integer/positive-hex.toml) incorrectly parsed.
Not OK: [integer/positive-bin.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/integer/positive-bin.toml) incorrectly parsed.
*232/237 (97.89%) passed*|
+|qtoml|Not OK: [inline-table/trailing-comma.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/inline-table/trailing-comma.toml) incorrectly parsed.
Not OK: [inline-table/add.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/inline-table/add.toml) incorrectly parsed.
Not OK: [control/bare-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/control/bare-cr.toml) incorrectly parsed.
Not OK: [control/comment-us.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/control/comment-us.toml) incorrectly parsed.
Not OK: [control/comment-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/control/comment-cr.toml) incorrectly parsed.
Not OK: [control/comment-lf.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/control/comment-lf.toml) incorrectly parsed.
Not OK: [control/comment-del.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/control/comment-del.toml) incorrectly parsed.
Not OK: [control/comment-null.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/control/comment-null.toml) incorrectly parsed.
Not OK: [table/duplicate-key-dotted-table.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/table/duplicate-key-dotted-table.toml) incorrectly parsed.
Not OK: [table/duplicate-key-dotted-table2.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/table/duplicate-key-dotted-table2.toml) incorrectly parsed.
Not OK: *2 more items incorrectly parsed.*
*225/237 (94.94%) passed*|
## Compliance with valid tests in python tomllib test data
@@ -209,12 +273,12 @@ loading the toml file yields the same result as the JSON counterpart.
| |Result (cpython tag 3.11.0)|
|-|-----------------------|
-|toml|[five-quotes.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/five-quotes.toml) Unterminated string found. Reached end of file. (line 7 column 1 char 97)
[apostrophes-in-literal-string.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/apostrophes-in-literal-string.toml) Unbalanced quotes (line 1 column 50 char 49)
[multiline-basic-str/ends-in-whitespace-escape.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/multiline-basic-str/ends-in-whitespace-escape.toml) Reserved escape sequence used (line 6 column 1 char 28)
[dates-and-times/datetimes.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/dates-and-times/datetimes.toml) Parsed as unexpected data.
*8/12 (66.67%) passed*|
+|toml|[apostrophes-in-literal-string.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/apostrophes-in-literal-string.toml) Unbalanced quotes (line 1 column 50 char 49)
[five-quotes.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/five-quotes.toml) Unterminated string found. Reached end of file. (line 7 column 1 char 97)
[dates-and-times/datetimes.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/dates-and-times/datetimes.toml) Parsed as unexpected data.
[multiline-basic-str/ends-in-whitespace-escape.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/multiline-basic-str/ends-in-whitespace-escape.toml) Reserved escape sequence used (line 6 column 1 char 28)
*8/12 (66.67%) passed*|
|tomli/tomli_w|OK, *12/12 (100%) passed*|
|tomlkit|OK, *12/12 (100%) passed*|
-|pytomlpp|[array/open-parent-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/array/open-parent-table.toml) Error while parsing table header: cannot redefine existing table 'parent-table' (error occurred at line 3, column 1)
*11/12 (91.67%) passed*|
+|pytomlpp|OK, *12/12 (100%) passed*|
|rtoml|OK, *12/12 (100%) passed*|
-|qtoml|[five-quotes.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/five-quotes.toml) Didn't find expected newline (line 3, column 3)
[apostrophes-in-literal-string.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/apostrophes-in-literal-string.toml) Didn't find expected newline (line 3, column 3)
[dates-and-times/datetimes.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/dates-and-times/datetimes.toml) Didn't find expected newline (line 1, column 19)
*9/12 (75.00%) passed*|
+|qtoml|[apostrophes-in-literal-string.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/apostrophes-in-literal-string.toml) Didn't find expected newline (line 3, column 3)
[five-quotes.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/five-quotes.toml) Didn't find expected newline (line 3, column 3)
[dates-and-times/datetimes.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/dates-and-times/datetimes.toml) Didn't find expected newline (line 1, column 19)
*9/12 (75.00%) passed*|
## Compliance with invalid tests in python tomllib test data
@@ -230,12 +294,12 @@ parsing error.
| |Result (cpython tag 3.11.0)|
|-|-----------------------|
-|toml|Not OK: [invalid-comment-char.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/invalid-comment-char.toml) incorrectly parsed.
Not OK: [array/file-end-after-val.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/array/file-end-after-val.toml) incorrectly parsed.
Not OK: [array/unclosed-empty.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/array/unclosed-empty.toml) incorrectly parsed.
Not OK: [array/unclosed-after-item.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/array/unclosed-after-item.toml) incorrectly parsed.
Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table-with-subtable.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table-with-subtable.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table.toml) incorrectly parsed.
Not OK: [inline-table/overwrite-value-in-inner-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/overwrite-value-in-inner-table.toml) incorrectly parsed.
Not OK: [inline-table/unclosed-empty.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/unclosed-empty.toml) incorrectly parsed.
*41/50 (82.00%) passed*|
-|tomli/tomli_w|OK: [dates-and-times/invalid-day.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dates-and-times/invalid-day.toml) Invalid date or datetime (at line 1, column 36)
*50/50 (100%) passed*|
-|tomlkit|Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
Not OK: [array-of-tables/overwrite-array-in-parent.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/array-of-tables/overwrite-array-in-parent.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-aot.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-aot.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table-with-subtable.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table-with-subtable.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table.toml) incorrectly parsed.
Not OK: [inline-table/override-val-in-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/override-val-in-table.toml) incorrectly parsed.
*44/50 (88.00%) passed*|
+|toml|Not OK: [invalid-comment-char.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/invalid-comment-char.toml) incorrectly parsed.
Not OK: [inline-table/unclosed-empty.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/unclosed-empty.toml) incorrectly parsed.
Not OK: [inline-table/overwrite-value-in-inner-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/overwrite-value-in-inner-table.toml) incorrectly parsed.
Not OK: [array/unclosed-empty.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/array/unclosed-empty.toml) incorrectly parsed.
Not OK: [array/unclosed-after-item.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/array/unclosed-after-item.toml) incorrectly parsed.
Not OK: [array/file-end-after-val.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/array/file-end-after-val.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table-with-subtable.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table-with-subtable.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table.toml) incorrectly parsed.
Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
*41/50 (82.00%) passed*|
+|tomli/tomli_w|OK: [multiline-basic-str/escape-only.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/multiline-basic-str/escape-only.toml) Unterminated string (at end of document)
*50/50 (100%) passed*|
+|tomlkit|Not OK: [inline-table/override-val-in-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/override-val-in-table.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table-with-subtable.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table-with-subtable.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-aot.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-aot.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table.toml) incorrectly parsed.
Not OK: [array-of-tables/overwrite-array-in-parent.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/array-of-tables/overwrite-array-in-parent.toml) incorrectly parsed.
Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
*44/50 (88.00%) passed*|
|pytomlpp|Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
*49/50 (98.00%) passed*|
|rtoml|Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
*49/50 (98.00%) passed*|
-|qtoml|Not OK: [invalid-comment-char.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/invalid-comment-char.toml) incorrectly parsed.
Not OK: [non-scalar-escaped.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/non-scalar-escaped.toml) incorrectly parsed.
Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table-with-subtable.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table-with-subtable.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table.toml) incorrectly parsed.
Not OK: [inline-table/override-val-with-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/override-val-with-table.toml) incorrectly parsed.
Not OK: [inline-table/overwrite-value-in-inner-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/overwrite-value-in-inner-table.toml) incorrectly parsed.
Not OK: [table/redefine-2.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/table/redefine-2.toml) incorrectly parsed.
Not OK: [table/redefine-1.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/table/redefine-1.toml) incorrectly parsed.
*41/50 (82.00%) passed*|
+|qtoml|Not OK: [non-scalar-escaped.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/non-scalar-escaped.toml) incorrectly parsed.
Not OK: [invalid-comment-char.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/invalid-comment-char.toml) incorrectly parsed.
Not OK: [inline-table/override-val-with-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/override-val-with-table.toml) incorrectly parsed.
Not OK: [inline-table/overwrite-value-in-inner-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/overwrite-value-in-inner-table.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table-with-subtable.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table-with-subtable.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table.toml) incorrectly parsed.
Not OK: [table/redefine-2.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/table/redefine-2.toml) incorrectly parsed.
Not OK: [table/redefine-1.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/table/redefine-1.toml) incorrectly parsed.
Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
*41/50 (82.00%) passed*|
## Running speed with data provided by `pytomlpp`
@@ -247,12 +311,12 @@ using data provided by `pytomlpp`
| |Loading speed|Dumping speed|
|-|-|-|
-|toml|7.04s (5000 iterations)|1.75s (5000 iterations)|
-|tomli/tomli_w|3.53s (5000 iterations)|1.21s (5000 iterations)|
-|tomlkit|63.07s (5000 iterations)|1.14s (5000 iterations)|
-|pytomlpp|0.96s (5000 iterations)|0.62s (5000 iterations)|
-|rtoml|0.56s (5000 iterations)|0.36s (5000 iterations)|
-|qtoml|11.06s (5000 iterations)|2.61s (5000 iterations)|
+|toml|Excluded (heterogeneous arrays not supported)|Excluded (heterogeneous arrays not supported)|
+|tomli/tomli_w|7.44s (1000 iterations)|3.69s (1000 iterations)|
+|tomlkit|136.86s (1000 iterations)|2.54s (1000 iterations)|
+|pytomlpp|1.37s (1000 iterations)|0.96s (1000 iterations)|
+|rtoml|0.98s (1000 iterations)|values must be emitted before tables|
+|qtoml|19.28s (1000 iterations)|5.15s (1000 iterations)|
## Running speed with data provided by `rtoml`
@@ -264,12 +328,12 @@ provided by `rtoml`
| |Loading speed|Dumping speed|
|-|-|-|
-|toml|16.57s (5000 iterations)|2.30s (5000 iterations)|
-|tomli/tomli_w|7.90s (5000 iterations)|2.55s (5000 iterations)|
-|tomlkit|154.61s (5000 iterations)|3.38s (5000 iterations)|
-|pytomlpp|1.34s (5000 iterations)|0.97s (5000 iterations)|
-|rtoml|0.92s (5000 iterations)|0.24s (5000 iterations)|
-|qtoml|22.86s (5000 iterations)|6.83s (5000 iterations)|
+|toml|Excluded (heterogeneous arrays not supported)|Excluded (heterogeneous arrays not supported)|
+|tomli/tomli_w|1.80s (1000 iterations)|0.68s (1000 iterations)|
+|tomlkit|30.51s (1000 iterations)|0.82s (1000 iterations)|
+|pytomlpp|0.24s (1000 iterations)|0.19s (1000 iterations)|
+|rtoml|0.19s (1000 iterations)|0.05s (1000 iterations)|
+|qtoml|4.62s (1000 iterations)|1.32s (1000 iterations)|
## Running speed with data provided by `tomli`
@@ -281,10 +345,10 @@ provided by `tomli`
| |Loading speed|Dumping speed|
|-|-|-|
-|toml|11.71s (5000 iterations)|1.83s (5000 iterations)|
-|tomli/tomli_w|5.09s (5000 iterations)|2.10s (5000 iterations)|
-|tomlkit|104.04s (5000 iterations)|1.65s (5000 iterations)|
-|pytomlpp|1.25s (5000 iterations)|0.78s (5000 iterations)|
-|rtoml|0.72s (5000 iterations)|0.42s (5000 iterations)|
-|qtoml|15.73s (5000 iterations)|4.10s (5000 iterations)|
+|toml|Excluded (heterogeneous arrays not supported)|Excluded (heterogeneous arrays not supported)|
+|tomli/tomli_w|1.17s (1000 iterations)|0.38s (1000 iterations)|
+|tomlkit|18.75s (1000 iterations)|0.40s (1000 iterations)|
+|pytomlpp|0.24s (1000 iterations)|0.15s (1000 iterations)|
+|rtoml|0.16s (1000 iterations)|0.11s (1000 iterations)|
+|qtoml|3.72s (1000 iterations)|0.94s (1000 iterations)|
diff --git a/reports/with_toml-test_v1.0.0.md b/reports/with_toml-test_v1.0.0.md
index 090b897..5869620 100644
--- a/reports/with_toml-test_v1.0.0.md
+++ b/reports/with_toml-test_v1.0.0.md
@@ -8,8 +8,8 @@ The verions of the packages tested in this report.
|-|-----------------------|
|toml|0.10.2|
|tomli/tomli_w|2.0.1; **tomli_w**: 1.0.0|
-|tomlkit|0.11.6|
-|pytomlpp|1.0.11|
+|tomlkit|0.11.8|
+|pytomlpp|1.0.13|
|rtoml|0.9.0|
|qtoml|0.3.1|
@@ -77,6 +77,70 @@ Literally `.loads('v1 = "null" v2 = "None"')`
|rtoml|{'v1': 'null', 'v2': 'None'}|
|qtoml|{'v1': 'null', 'v2': 'None'}|
+## Dumping a heterogenous array
+
+How the package dumps a python dictionary with a heterogenous array.
+
+Literally `.dumps({"v": [1, 1.2, True, "string", [1, 2], {"a": 1, "b": 2}]})`
+
+
+| |Dumped value or error|
+|-|-----------------------|
+|toml|v = [ 1, 1.2, true, "string",]
|
+|tomli/tomli_w|v = [
1,
1.2,
true,
"string",
]
|
+|tomlkit|v = [1, 1.2, true, "string"]
|
+|pytomlpp|v = [ 1, 1.2, 1, 'string' ]|
+|rtoml|v = [1, 1.2, true, "string"]
|
+|qtoml|v = [1, 1.2, true, 'string']
|
+
+## Loading a heterogenous array
+
+How the package loads a toml string with a heterogenous array.
+
+Literally `.loads('v = [1, 1.2, True, "string", [1, 2], {"a": 1, "b": 2}]')`
+
+
+| |Loaded as|
+|-|-----------------------|
+|toml|Not a homogeneous array (line 2 column 1 char 1)|
+|tomli/tomli_w|{'v': [1, 1.2, True, 'string']}|
+|tomlkit|{'v': [1, 1.2, True, 'string']}|
+|pytomlpp|{'v': [1, 1.2, True, 'string']}|
+|rtoml|{'v': [1, 1.2, True, 'string']}|
+|qtoml|{'v': [1, 1.2, True, 'string']}|
+
+## Dumping a nested array
+
+How the package dumps a python dictionary with a nested array.
+
+Literally `.dumps({"v": [[1], [1, 2]]})`
+
+
+| |Dumped value or error|
+|-|-----------------------|
+|toml|v = [ [ 1,], [ 1, 2,],]
|
+|tomli/tomli_w|v = [
[
1,
],
[
1,
2,
],
]
|
+|tomlkit|v = [[1], [1, 2]]
|
+|pytomlpp|v = [ [ 1 ], [ 1, 2 ] ]
|
+|rtoml|v = [[1], [1, 2]]
|
+|qtoml|v = [[1], [1, 2]]
|
+
+## Loading a nested array
+
+How the package loads a toml string with a nested array.
+
+Literally `.loads('v = [[1], [1, 2]]')`
+
+
+| |Loaded as|
+|-|-----------------------|
+|toml|{'v': [[1], [1, 2]]}|
+|tomli/tomli_w|{'v': [[1], [1, 2]]}|
+|tomlkit|{'v': [[1], [1, 2]]}|
+|pytomlpp|{'v': [[1], [1, 2]]}|
+|rtoml|{'v': [[1], [1, 2]]}|
+|qtoml|{'v': [[1], [1, 2]]}|
+
## Dumping keeps order of keys?
Whether the package preserves the order of the keys while dumps
@@ -168,7 +232,7 @@ loading the toml file yields the same result as the JSON counterpart.
| |Result (toml-test v1.0.0)|
|-|-----------------------|
-|toml|[comment/tricky.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//valid/comment/tricky.toml) Parsed as unexpected data.
[array/mixed-int-array.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//valid/array/mixed-int-array.toml) Not a homogeneous array (line 1 column 1 char 0)
[array/mixed-int-float.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//valid/array/mixed-int-float.toml) Not a homogeneous array (line 1 column 1 char 0)
[array/mixed-string-table.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//valid/array/mixed-string-table.toml) list index out of range
[array/mixed-int-string.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//valid/array/mixed-int-string.toml) Not a homogeneous array (line 1 column 1 char 0)
[array/nested-double.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//valid/array/nested-double.toml) Not a homogeneous array (line 1 column 1 char 0)
[float/zero.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//valid/float/zero.toml) Weirdness with leading zeroes or underscores in your number. (line 4 column 1 char 29)
[key/escapes.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//valid/key/escapes.toml) Parsed as unexpected data.
[key/dotted.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//valid/key/dotted.toml) Found invalid character in key name: '"'. Try quoting the key name. (line 12 column 11 char 245)
[inline-table/key-dotted.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//valid/inline-table/key-dotted.toml) Parsed as unexpected data.
[inline-table/multiline.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//valid/inline-table/multiline.toml) Invalid inline table value encountered (line 1 column 1 char 0)
[datetime/local-time.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//valid/datetime/local-time.toml) Parsed as unexpected data.
[datetime/datetime.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//valid/datetime/datetime.toml) Parsed as unexpected data.
*83/96 (86.46%) passed*|
+|toml|[key/escapes.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//valid/key/escapes.toml) Parsed as unexpected data.
[key/dotted.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//valid/key/dotted.toml) Found invalid character in key name: '"'. Try quoting the key name. (line 12 column 11 char 245)
[comment/tricky.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//valid/comment/tricky.toml) Parsed as unexpected data.
[inline-table/key-dotted.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//valid/inline-table/key-dotted.toml) Parsed as unexpected data.
[inline-table/multiline.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//valid/inline-table/multiline.toml) Invalid inline table value encountered (line 1 column 1 char 0)
[array/nested-double.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//valid/array/nested-double.toml) Not a homogeneous array (line 1 column 1 char 0)
[array/mixed-int-string.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//valid/array/mixed-int-string.toml) Not a homogeneous array (line 1 column 1 char 0)
[array/mixed-string-table.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//valid/array/mixed-string-table.toml) list index out of range
[array/mixed-int-array.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//valid/array/mixed-int-array.toml) Not a homogeneous array (line 1 column 1 char 0)
[array/mixed-int-float.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//valid/array/mixed-int-float.toml) Not a homogeneous array (line 1 column 1 char 0)
[float/zero.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//valid/float/zero.toml) Weirdness with leading zeroes or underscores in your number. (line 4 column 1 char 29)
[datetime/datetime.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//valid/datetime/datetime.toml) Parsed as unexpected data.
[datetime/local-time.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//valid/datetime/local-time.toml) Parsed as unexpected data.
*83/96 (86.46%) passed*|
|tomli/tomli_w|OK, *96/96 (100%) passed*|
|tomlkit|OK, *96/96 (100%) passed*|
|pytomlpp|OK, *96/96 (100%) passed*|
@@ -189,12 +253,12 @@ parsing error.
| |Result (toml-test v1.0.0)|
|-|-----------------------|
-|toml|Not OK: [integer/us-after-hex.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//invalid/integer/us-after-hex.toml) incorrectly parsed.
Not OK: [integer/us-after-oct.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//invalid/integer/us-after-oct.toml) incorrectly parsed.
Not OK: [integer/double-sign-plus.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//invalid/integer/double-sign-plus.toml) incorrectly parsed.
Not OK: [integer/double-sign-nex.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//invalid/integer/double-sign-nex.toml) incorrectly parsed.
Not OK: [integer/us-after-bin.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//invalid/integer/us-after-bin.toml) incorrectly parsed.
Not OK: [array/no-close.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//invalid/array/no-close.toml) incorrectly parsed.
Not OK: [array/tables-1.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//invalid/array/tables-1.toml) incorrectly parsed.
Not OK: [array/no-close-2.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//invalid/array/no-close-2.toml) incorrectly parsed.
Not OK: [array/no-close-table.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//invalid/array/no-close-table.toml) incorrectly parsed.
Not OK: [array/no-close-table-2.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//invalid/array/no-close-table-2.toml) incorrectly parsed.
Not OK: *29 more items incorrectly parsed.*
*146/185 (78.92%) passed*|
-|tomli/tomli_w|OK: [table/nested-brackets-close.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//invalid/table/nested-brackets-close.toml) Expected newline or end of document after a statement (at line 1, column 4)
*185/185 (100%) passed*|
-|tomlkit|OK: [table/nested-brackets-close.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//invalid/table/nested-brackets-close.toml) Unexpected character: 'b' at line 1 col 3
*185/185 (100%) passed*|
-|pytomlpp|OK: [table/nested-brackets-close.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//invalid/table/nested-brackets-close.toml) Error while parsing table header: expected a comment or whitespace, saw 'b' (error occurred at line 1, column 4)
*185/185 (100%) passed*|
-|rtoml|Not OK: [integer/positive-hex.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//invalid/integer/positive-hex.toml) incorrectly parsed.
Not OK: [integer/positive-bin.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//invalid/integer/positive-bin.toml) incorrectly parsed.
Not OK: [control/comment-del.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//invalid/control/comment-del.toml) incorrectly parsed.
*182/185 (98.38%) passed*|
-|qtoml|Not OK: [inline-table/trailing-comma.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//invalid/inline-table/trailing-comma.toml) incorrectly parsed.
Not OK: [control/comment-del.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//invalid/control/comment-del.toml) incorrectly parsed.
Not OK: [control/comment-null.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//invalid/control/comment-null.toml) incorrectly parsed.
Not OK: [control/comment-us.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//invalid/control/comment-us.toml) incorrectly parsed.
Not OK: [control/comment-lf.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//invalid/control/comment-lf.toml) incorrectly parsed.
*180/185 (97.30%) passed*|
+|toml|Not OK: [key/escape.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//invalid/key/escape.toml) incorrectly parsed.
Not OK: [key/special-character.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//invalid/key/special-character.toml) incorrectly parsed.
Not OK: [key/two-equals3.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//invalid/key/two-equals3.toml) incorrectly parsed.
Not OK: [key/two-equals2.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//invalid/key/two-equals2.toml) incorrectly parsed.
Not OK: [array/no-close-2.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//invalid/array/no-close-2.toml) incorrectly parsed.
Not OK: [array/tables-1.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//invalid/array/tables-1.toml) incorrectly parsed.
Not OK: [array/no-close.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//invalid/array/no-close.toml) incorrectly parsed.
Not OK: [array/no-close-table.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//invalid/array/no-close-table.toml) incorrectly parsed.
Not OK: [array/no-close-table-2.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//invalid/array/no-close-table-2.toml) incorrectly parsed.
Not OK: [float/exp-leading-us.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//invalid/float/exp-leading-us.toml) incorrectly parsed.
Not OK: *29 more items incorrectly parsed.*
*146/185 (78.92%) passed*|
+|tomli/tomli_w|OK: [datetime/impossible-date.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//invalid/datetime/impossible-date.toml) Expected newline or end of document after a statement (at line 1, column 9)
*185/185 (100%) passed*|
+|tomlkit|OK: [datetime/impossible-date.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//invalid/datetime/impossible-date.toml) Invalid datetime at line 1 col 24
*185/185 (100%) passed*|
+|pytomlpp|OK: [datetime/impossible-date.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//invalid/datetime/impossible-date.toml) Error while parsing date: expected day between 1 and 31 (inclusive), saw 50 (error occurred at line 1, column 15)
*185/185 (100%) passed*|
+|rtoml|Not OK: [control/comment-del.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//invalid/control/comment-del.toml) incorrectly parsed.
Not OK: [integer/positive-hex.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//invalid/integer/positive-hex.toml) incorrectly parsed.
Not OK: [integer/positive-bin.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//invalid/integer/positive-bin.toml) incorrectly parsed.
*182/185 (98.38%) passed*|
+|qtoml|Not OK: [inline-table/trailing-comma.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//invalid/inline-table/trailing-comma.toml) incorrectly parsed.
Not OK: [control/comment-us.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//invalid/control/comment-us.toml) incorrectly parsed.
Not OK: [control/comment-lf.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//invalid/control/comment-lf.toml) incorrectly parsed.
Not OK: [control/comment-del.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//invalid/control/comment-del.toml) incorrectly parsed.
Not OK: [control/comment-null.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.0/tests//invalid/control/comment-null.toml) incorrectly parsed.
*180/185 (97.30%) passed*|
## Compliance with valid tests in python tomllib test data
@@ -209,12 +273,12 @@ loading the toml file yields the same result as the JSON counterpart.
| |Result (cpython tag 3.11.0)|
|-|-----------------------|
-|toml|[five-quotes.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/five-quotes.toml) Unterminated string found. Reached end of file. (line 7 column 1 char 97)
[apostrophes-in-literal-string.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/apostrophes-in-literal-string.toml) Unbalanced quotes (line 1 column 50 char 49)
[multiline-basic-str/ends-in-whitespace-escape.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/multiline-basic-str/ends-in-whitespace-escape.toml) Reserved escape sequence used (line 6 column 1 char 28)
[dates-and-times/datetimes.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/dates-and-times/datetimes.toml) Parsed as unexpected data.
*8/12 (66.67%) passed*|
+|toml|[apostrophes-in-literal-string.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/apostrophes-in-literal-string.toml) Unbalanced quotes (line 1 column 50 char 49)
[five-quotes.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/five-quotes.toml) Unterminated string found. Reached end of file. (line 7 column 1 char 97)
[dates-and-times/datetimes.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/dates-and-times/datetimes.toml) Parsed as unexpected data.
[multiline-basic-str/ends-in-whitespace-escape.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/multiline-basic-str/ends-in-whitespace-escape.toml) Reserved escape sequence used (line 6 column 1 char 28)
*8/12 (66.67%) passed*|
|tomli/tomli_w|OK, *12/12 (100%) passed*|
|tomlkit|OK, *12/12 (100%) passed*|
-|pytomlpp|[array/open-parent-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/array/open-parent-table.toml) Error while parsing table header: cannot redefine existing table 'parent-table' (error occurred at line 3, column 1)
*11/12 (91.67%) passed*|
+|pytomlpp|OK, *12/12 (100%) passed*|
|rtoml|OK, *12/12 (100%) passed*|
-|qtoml|[five-quotes.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/five-quotes.toml) Didn't find expected newline (line 3, column 3)
[apostrophes-in-literal-string.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/apostrophes-in-literal-string.toml) Didn't find expected newline (line 3, column 3)
[dates-and-times/datetimes.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/dates-and-times/datetimes.toml) Didn't find expected newline (line 1, column 19)
*9/12 (75.00%) passed*|
+|qtoml|[apostrophes-in-literal-string.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/apostrophes-in-literal-string.toml) Didn't find expected newline (line 3, column 3)
[five-quotes.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/five-quotes.toml) Didn't find expected newline (line 3, column 3)
[dates-and-times/datetimes.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/dates-and-times/datetimes.toml) Didn't find expected newline (line 1, column 19)
*9/12 (75.00%) passed*|
## Compliance with invalid tests in python tomllib test data
@@ -230,12 +294,12 @@ parsing error.
| |Result (cpython tag 3.11.0)|
|-|-----------------------|
-|toml|Not OK: [invalid-comment-char.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/invalid-comment-char.toml) incorrectly parsed.
Not OK: [array/file-end-after-val.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/array/file-end-after-val.toml) incorrectly parsed.
Not OK: [array/unclosed-empty.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/array/unclosed-empty.toml) incorrectly parsed.
Not OK: [array/unclosed-after-item.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/array/unclosed-after-item.toml) incorrectly parsed.
Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table-with-subtable.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table-with-subtable.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table.toml) incorrectly parsed.
Not OK: [inline-table/overwrite-value-in-inner-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/overwrite-value-in-inner-table.toml) incorrectly parsed.
Not OK: [inline-table/unclosed-empty.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/unclosed-empty.toml) incorrectly parsed.
*41/50 (82.00%) passed*|
-|tomli/tomli_w|OK: [dates-and-times/invalid-day.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dates-and-times/invalid-day.toml) Invalid date or datetime (at line 1, column 36)
*50/50 (100%) passed*|
-|tomlkit|Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
Not OK: [array-of-tables/overwrite-array-in-parent.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/array-of-tables/overwrite-array-in-parent.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-aot.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-aot.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table-with-subtable.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table-with-subtable.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table.toml) incorrectly parsed.
Not OK: [inline-table/override-val-in-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/override-val-in-table.toml) incorrectly parsed.
*44/50 (88.00%) passed*|
+|toml|Not OK: [invalid-comment-char.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/invalid-comment-char.toml) incorrectly parsed.
Not OK: [inline-table/unclosed-empty.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/unclosed-empty.toml) incorrectly parsed.
Not OK: [inline-table/overwrite-value-in-inner-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/overwrite-value-in-inner-table.toml) incorrectly parsed.
Not OK: [array/unclosed-empty.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/array/unclosed-empty.toml) incorrectly parsed.
Not OK: [array/unclosed-after-item.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/array/unclosed-after-item.toml) incorrectly parsed.
Not OK: [array/file-end-after-val.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/array/file-end-after-val.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table-with-subtable.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table-with-subtable.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table.toml) incorrectly parsed.
Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
*41/50 (82.00%) passed*|
+|tomli/tomli_w|OK: [multiline-basic-str/escape-only.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/multiline-basic-str/escape-only.toml) Unterminated string (at end of document)
*50/50 (100%) passed*|
+|tomlkit|Not OK: [inline-table/override-val-in-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/override-val-in-table.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table-with-subtable.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table-with-subtable.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-aot.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-aot.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table.toml) incorrectly parsed.
Not OK: [array-of-tables/overwrite-array-in-parent.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/array-of-tables/overwrite-array-in-parent.toml) incorrectly parsed.
Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
*44/50 (88.00%) passed*|
|pytomlpp|Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
*49/50 (98.00%) passed*|
|rtoml|Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
*49/50 (98.00%) passed*|
-|qtoml|Not OK: [invalid-comment-char.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/invalid-comment-char.toml) incorrectly parsed.
Not OK: [non-scalar-escaped.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/non-scalar-escaped.toml) incorrectly parsed.
Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table-with-subtable.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table-with-subtable.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table.toml) incorrectly parsed.
Not OK: [inline-table/override-val-with-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/override-val-with-table.toml) incorrectly parsed.
Not OK: [inline-table/overwrite-value-in-inner-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/overwrite-value-in-inner-table.toml) incorrectly parsed.
Not OK: [table/redefine-2.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/table/redefine-2.toml) incorrectly parsed.
Not OK: [table/redefine-1.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/table/redefine-1.toml) incorrectly parsed.
*41/50 (82.00%) passed*|
+|qtoml|Not OK: [non-scalar-escaped.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/non-scalar-escaped.toml) incorrectly parsed.
Not OK: [invalid-comment-char.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/invalid-comment-char.toml) incorrectly parsed.
Not OK: [inline-table/override-val-with-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/override-val-with-table.toml) incorrectly parsed.
Not OK: [inline-table/overwrite-value-in-inner-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/overwrite-value-in-inner-table.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table-with-subtable.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table-with-subtable.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table.toml) incorrectly parsed.
Not OK: [table/redefine-2.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/table/redefine-2.toml) incorrectly parsed.
Not OK: [table/redefine-1.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/table/redefine-1.toml) incorrectly parsed.
Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
*41/50 (82.00%) passed*|
## Running speed with data provided by `pytomlpp`
@@ -247,12 +311,12 @@ using data provided by `pytomlpp`
| |Loading speed|Dumping speed|
|-|-|-|
-|toml|7.92s (5000 iterations)|1.62s (5000 iterations)|
-|tomli/tomli_w|4.16s (5000 iterations)|1.19s (5000 iterations)|
-|tomlkit|60.58s (5000 iterations)|1.14s (5000 iterations)|
-|pytomlpp|0.94s (5000 iterations)|0.60s (5000 iterations)|
-|rtoml|0.56s (5000 iterations)|0.36s (5000 iterations)|
-|qtoml|10.86s (5000 iterations)|2.53s (5000 iterations)|
+|toml|Excluded (heterogeneous arrays not supported)|Excluded (heterogeneous arrays not supported)|
+|tomli/tomli_w|7.32s (1000 iterations)|3.29s (1000 iterations)|
+|tomlkit|140.81s (1000 iterations)|2.40s (1000 iterations)|
+|pytomlpp|1.41s (1000 iterations)|0.97s (1000 iterations)|
+|rtoml|0.97s (1000 iterations)|values must be emitted before tables|
+|qtoml|19.31s (1000 iterations)|4.92s (1000 iterations)|
## Running speed with data provided by `rtoml`
@@ -264,12 +328,12 @@ provided by `rtoml`
| |Loading speed|Dumping speed|
|-|-|-|
-|toml|16.31s (5000 iterations)|2.31s (5000 iterations)|
-|tomli/tomli_w|7.52s (5000 iterations)|2.89s (5000 iterations)|
-|tomlkit|151.86s (5000 iterations)|3.50s (5000 iterations)|
-|pytomlpp|1.37s (5000 iterations)|0.98s (5000 iterations)|
-|rtoml|0.92s (5000 iterations)|0.23s (5000 iterations)|
-|qtoml|20.39s (5000 iterations)|6.22s (5000 iterations)|
+|toml|Excluded (heterogeneous arrays not supported)|Excluded (heterogeneous arrays not supported)|
+|tomli/tomli_w|1.63s (1000 iterations)|0.57s (1000 iterations)|
+|tomlkit|30.96s (1000 iterations)|0.79s (1000 iterations)|
+|pytomlpp|0.24s (1000 iterations)|0.20s (1000 iterations)|
+|rtoml|0.20s (1000 iterations)|0.05s (1000 iterations)|
+|qtoml|4.59s (1000 iterations)|1.30s (1000 iterations)|
## Running speed with data provided by `tomli`
@@ -281,10 +345,10 @@ provided by `tomli`
| |Loading speed|Dumping speed|
|-|-|-|
-|toml|11.13s (5000 iterations)|1.76s (5000 iterations)|
-|tomli/tomli_w|4.92s (5000 iterations)|1.72s (5000 iterations)|
-|tomlkit|98.12s (5000 iterations)|1.65s (5000 iterations)|
-|pytomlpp|1.25s (5000 iterations)|0.84s (5000 iterations)|
-|rtoml|0.73s (5000 iterations)|0.41s (5000 iterations)|
-|qtoml|14.37s (5000 iterations)|4.00s (5000 iterations)|
+|toml|Excluded (heterogeneous arrays not supported)|Excluded (heterogeneous arrays not supported)|
+|tomli/tomli_w|1.11s (1000 iterations)|0.38s (1000 iterations)|
+|tomlkit|21.12s (1000 iterations)|0.39s (1000 iterations)|
+|pytomlpp|0.25s (1000 iterations)|0.16s (1000 iterations)|
+|rtoml|0.16s (1000 iterations)|0.11s (1000 iterations)|
+|qtoml|3.47s (1000 iterations)|0.96s (1000 iterations)|
diff --git a/reports/with_toml-test_v1.1.0.md b/reports/with_toml-test_v1.1.0.md
index 4095f10..c213b03 100644
--- a/reports/with_toml-test_v1.1.0.md
+++ b/reports/with_toml-test_v1.1.0.md
@@ -8,8 +8,8 @@ The verions of the packages tested in this report.
|-|-----------------------|
|toml|0.10.2|
|tomli/tomli_w|2.0.1; **tomli_w**: 1.0.0|
-|tomlkit|0.11.6|
-|pytomlpp|1.0.11|
+|tomlkit|0.11.8|
+|pytomlpp|1.0.13|
|rtoml|0.9.0|
|qtoml|0.3.1|
@@ -77,6 +77,70 @@ Literally `.loads('v1 = "null" v2 = "None"')`
|rtoml|{'v1': 'null', 'v2': 'None'}|
|qtoml|{'v1': 'null', 'v2': 'None'}|
+## Dumping a heterogenous array
+
+How the package dumps a python dictionary with a heterogenous array.
+
+Literally `.dumps({"v": [1, 1.2, True, "string", [1, 2], {"a": 1, "b": 2}]})`
+
+
+| |Dumped value or error|
+|-|-----------------------|
+|toml|v = [ 1, 1.2, true, "string",]
|
+|tomli/tomli_w|v = [
1,
1.2,
true,
"string",
]
|
+|tomlkit|v = [1, 1.2, true, "string"]
|
+|pytomlpp|v = [ 1, 1.2, 1, 'string' ]|
+|rtoml|v = [1, 1.2, true, "string"]
|
+|qtoml|v = [1, 1.2, true, 'string']
|
+
+## Loading a heterogenous array
+
+How the package loads a toml string with a heterogenous array.
+
+Literally `.loads('v = [1, 1.2, True, "string", [1, 2], {"a": 1, "b": 2}]')`
+
+
+| |Loaded as|
+|-|-----------------------|
+|toml|Not a homogeneous array (line 2 column 1 char 1)|
+|tomli/tomli_w|{'v': [1, 1.2, True, 'string']}|
+|tomlkit|{'v': [1, 1.2, True, 'string']}|
+|pytomlpp|{'v': [1, 1.2, True, 'string']}|
+|rtoml|{'v': [1, 1.2, True, 'string']}|
+|qtoml|{'v': [1, 1.2, True, 'string']}|
+
+## Dumping a nested array
+
+How the package dumps a python dictionary with a nested array.
+
+Literally `.dumps({"v": [[1], [1, 2]]})`
+
+
+| |Dumped value or error|
+|-|-----------------------|
+|toml|v = [ [ 1,], [ 1, 2,],]
|
+|tomli/tomli_w|v = [
[
1,
],
[
1,
2,
],
]
|
+|tomlkit|v = [[1], [1, 2]]
|
+|pytomlpp|v = [ [ 1 ], [ 1, 2 ] ]
|
+|rtoml|v = [[1], [1, 2]]
|
+|qtoml|v = [[1], [1, 2]]
|
+
+## Loading a nested array
+
+How the package loads a toml string with a nested array.
+
+Literally `.loads('v = [[1], [1, 2]]')`
+
+
+| |Loaded as|
+|-|-----------------------|
+|toml|{'v': [[1], [1, 2]]}|
+|tomli/tomli_w|{'v': [[1], [1, 2]]}|
+|tomlkit|{'v': [[1], [1, 2]]}|
+|pytomlpp|{'v': [[1], [1, 2]]}|
+|rtoml|{'v': [[1], [1, 2]]}|
+|qtoml|{'v': [[1], [1, 2]]}|
+
## Dumping keeps order of keys?
Whether the package preserves the order of the keys while dumps
@@ -168,7 +232,7 @@ loading the toml file yields the same result as the JSON counterpart.
| |Result (toml-test v1.1.0)|
|-|-----------------------|
-|toml|[comment/tricky.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//valid/comment/tricky.toml) Parsed as unexpected data.
[array/mixed-int-array.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//valid/array/mixed-int-array.toml) Not a homogeneous array (line 1 column 1 char 0)
[array/mixed-int-float.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//valid/array/mixed-int-float.toml) Not a homogeneous array (line 1 column 1 char 0)
[array/mixed-string-table.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//valid/array/mixed-string-table.toml) list index out of range
[array/mixed-int-string.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//valid/array/mixed-int-string.toml) Not a homogeneous array (line 1 column 1 char 0)
[array/nested-double.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//valid/array/nested-double.toml) Not a homogeneous array (line 1 column 1 char 0)
[float/zero.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//valid/float/zero.toml) Weirdness with leading zeroes or underscores in your number. (line 4 column 1 char 47)
[key/escapes.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//valid/key/escapes.toml) Parsed as unexpected data.
[key/dotted.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//valid/key/dotted.toml) Found invalid character in key name: '"'. Try quoting the key name. (line 12 column 11 char 245)
[inline-table/key-dotted.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//valid/inline-table/key-dotted.toml) Parsed as unexpected data.
[inline-table/multiline.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//valid/inline-table/multiline.toml) Invalid inline table value encountered (line 1 column 1 char 0)
[datetime/local-time.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//valid/datetime/local-time.toml) Parsed as unexpected data.
[datetime/datetime.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//valid/datetime/datetime.toml) Parsed as unexpected data.
*86/99 (86.87%) passed*|
+|toml|[key/escapes.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//valid/key/escapes.toml) Parsed as unexpected data.
[key/dotted.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//valid/key/dotted.toml) Found invalid character in key name: '"'. Try quoting the key name. (line 12 column 11 char 245)
[comment/tricky.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//valid/comment/tricky.toml) Parsed as unexpected data.
[inline-table/key-dotted.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//valid/inline-table/key-dotted.toml) Parsed as unexpected data.
[inline-table/multiline.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//valid/inline-table/multiline.toml) Invalid inline table value encountered (line 1 column 1 char 0)
[array/nested-double.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//valid/array/nested-double.toml) Not a homogeneous array (line 1 column 1 char 0)
[array/mixed-int-string.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//valid/array/mixed-int-string.toml) Not a homogeneous array (line 1 column 1 char 0)
[array/mixed-string-table.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//valid/array/mixed-string-table.toml) list index out of range
[array/mixed-int-array.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//valid/array/mixed-int-array.toml) Not a homogeneous array (line 1 column 1 char 0)
[array/mixed-int-float.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//valid/array/mixed-int-float.toml) Not a homogeneous array (line 1 column 1 char 0)
[float/zero.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//valid/float/zero.toml) Weirdness with leading zeroes or underscores in your number. (line 4 column 1 char 47)
[datetime/datetime.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//valid/datetime/datetime.toml) Parsed as unexpected data.
[datetime/local-time.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//valid/datetime/local-time.toml) Parsed as unexpected data.
*86/99 (86.87%) passed*|
|tomli/tomli_w|OK, *99/99 (100%) passed*|
|tomlkit|OK, *99/99 (100%) passed*|
|pytomlpp|OK, *99/99 (100%) passed*|
@@ -189,12 +253,12 @@ parsing error.
| |Result (toml-test v1.1.0)|
|-|-----------------------|
-|toml|Not OK: [integer/us-after-hex.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/integer/us-after-hex.toml) incorrectly parsed.
Not OK: [integer/us-after-oct.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/integer/us-after-oct.toml) incorrectly parsed.
Not OK: [integer/double-sign-plus.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/integer/double-sign-plus.toml) incorrectly parsed.
Not OK: [integer/double-sign-nex.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/integer/double-sign-nex.toml) incorrectly parsed.
Not OK: [integer/us-after-bin.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/integer/us-after-bin.toml) incorrectly parsed.
Not OK: [array/no-close.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/array/no-close.toml) incorrectly parsed.
Not OK: [array/tables-1.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/array/tables-1.toml) incorrectly parsed.
Not OK: [array/no-close-2.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/array/no-close-2.toml) incorrectly parsed.
Not OK: [array/no-close-table.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/array/no-close-table.toml) incorrectly parsed.
Not OK: [array/no-close-table-2.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/array/no-close-table-2.toml) incorrectly parsed.
Not OK: *35 more items incorrectly parsed.*
*169/214 (78.97%) passed*|
-|tomli/tomli_w|OK: [table/duplicate-key-dotted-table2.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/table/duplicate-key-dotted-table2.toml) Cannot declare ('fruit', 'apple', 'taste') twice (at line 4, column 19)
*214/214 (100%) passed*|
-|tomlkit|Not OK: [control/comment-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/control/comment-cr.toml) incorrectly parsed.
Not OK: [control/bare-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/control/bare-cr.toml) incorrectly parsed.
Not OK: [table/append-with-dotted-keys-1.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/table/append-with-dotted-keys-1.toml) incorrectly parsed.
Not OK: [table/append-with-dotted-keys-2.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/table/append-with-dotted-keys-2.toml) incorrectly parsed.
*210/214 (98.13%) passed*|
-|pytomlpp|Not OK: [control/comment-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/control/comment-cr.toml) incorrectly parsed.
Not OK: [control/bare-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/control/bare-cr.toml) incorrectly parsed.
*212/214 (99.07%) passed*|
-|rtoml|Not OK: [integer/positive-hex.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/integer/positive-hex.toml) incorrectly parsed.
Not OK: [integer/positive-bin.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/integer/positive-bin.toml) incorrectly parsed.
Not OK: [control/comment-del.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/control/comment-del.toml) incorrectly parsed.
Not OK: [control/comment-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/control/comment-cr.toml) incorrectly parsed.
Not OK: [control/bare-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/control/bare-cr.toml) incorrectly parsed.
*209/214 (97.66%) passed*|
-|qtoml|Not OK: [inline-table/add.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/inline-table/add.toml) incorrectly parsed.
Not OK: [inline-table/trailing-comma.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/inline-table/trailing-comma.toml) incorrectly parsed.
Not OK: [control/comment-del.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/control/comment-del.toml) incorrectly parsed.
Not OK: [control/comment-null.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/control/comment-null.toml) incorrectly parsed.
Not OK: [control/comment-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/control/comment-cr.toml) incorrectly parsed.
Not OK: [control/comment-us.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/control/comment-us.toml) incorrectly parsed.
Not OK: [control/bare-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/control/bare-cr.toml) incorrectly parsed.
Not OK: [control/comment-lf.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/control/comment-lf.toml) incorrectly parsed.
Not OK: [table/append-with-dotted-keys-1.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/table/append-with-dotted-keys-1.toml) incorrectly parsed.
Not OK: [table/append-with-dotted-keys-2.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/table/append-with-dotted-keys-2.toml) incorrectly parsed.
Not OK: *2 more items incorrectly parsed.*
*202/214 (94.39%) passed*|
+|toml|Not OK: [key/escape.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/key/escape.toml) incorrectly parsed.
Not OK: [key/special-character.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/key/special-character.toml) incorrectly parsed.
Not OK: [key/two-equals3.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/key/two-equals3.toml) incorrectly parsed.
Not OK: [key/two-equals2.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/key/two-equals2.toml) incorrectly parsed.
Not OK: [inline-table/add.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/inline-table/add.toml) incorrectly parsed.
Not OK: [array/no-close-2.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/array/no-close-2.toml) incorrectly parsed.
Not OK: [array/tables-1.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/array/tables-1.toml) incorrectly parsed.
Not OK: [array/no-close.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/array/no-close.toml) incorrectly parsed.
Not OK: [array/no-close-table.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/array/no-close-table.toml) incorrectly parsed.
Not OK: [array/no-close-table-2.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/array/no-close-table-2.toml) incorrectly parsed.
Not OK: *35 more items incorrectly parsed.*
*169/214 (78.97%) passed*|
+|tomli/tomli_w|OK: [datetime/mday-under.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/datetime/mday-under.toml) Expected newline or end of document after a statement (at line 3, column 9)
*214/214 (100%) passed*|
+|tomlkit|Not OK: [control/bare-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/control/bare-cr.toml) incorrectly parsed.
Not OK: [control/comment-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/control/comment-cr.toml) incorrectly parsed.
Not OK: [table/append-with-dotted-keys-2.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/table/append-with-dotted-keys-2.toml) incorrectly parsed.
Not OK: [table/append-with-dotted-keys-1.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/table/append-with-dotted-keys-1.toml) incorrectly parsed.
*210/214 (98.13%) passed*|
+|pytomlpp|Not OK: [control/bare-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/control/bare-cr.toml) incorrectly parsed.
Not OK: [control/comment-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/control/comment-cr.toml) incorrectly parsed.
*212/214 (99.07%) passed*|
+|rtoml|Not OK: [control/bare-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/control/bare-cr.toml) incorrectly parsed.
Not OK: [control/comment-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/control/comment-cr.toml) incorrectly parsed.
Not OK: [control/comment-del.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/control/comment-del.toml) incorrectly parsed.
Not OK: [integer/positive-hex.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/integer/positive-hex.toml) incorrectly parsed.
Not OK: [integer/positive-bin.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/integer/positive-bin.toml) incorrectly parsed.
*209/214 (97.66%) passed*|
+|qtoml|Not OK: [inline-table/trailing-comma.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/inline-table/trailing-comma.toml) incorrectly parsed.
Not OK: [inline-table/add.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/inline-table/add.toml) incorrectly parsed.
Not OK: [control/bare-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/control/bare-cr.toml) incorrectly parsed.
Not OK: [control/comment-us.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/control/comment-us.toml) incorrectly parsed.
Not OK: [control/comment-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/control/comment-cr.toml) incorrectly parsed.
Not OK: [control/comment-lf.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/control/comment-lf.toml) incorrectly parsed.
Not OK: [control/comment-del.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/control/comment-del.toml) incorrectly parsed.
Not OK: [control/comment-null.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/control/comment-null.toml) incorrectly parsed.
Not OK: [table/duplicate-key-dotted-table.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/table/duplicate-key-dotted-table.toml) incorrectly parsed.
Not OK: [table/duplicate-key-dotted-table2.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.0/tests//invalid/table/duplicate-key-dotted-table2.toml) incorrectly parsed.
Not OK: *2 more items incorrectly parsed.*
*202/214 (94.39%) passed*|
## Compliance with valid tests in python tomllib test data
@@ -209,12 +273,12 @@ loading the toml file yields the same result as the JSON counterpart.
| |Result (cpython tag 3.11.0)|
|-|-----------------------|
-|toml|[five-quotes.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/five-quotes.toml) Unterminated string found. Reached end of file. (line 7 column 1 char 97)
[apostrophes-in-literal-string.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/apostrophes-in-literal-string.toml) Unbalanced quotes (line 1 column 50 char 49)
[multiline-basic-str/ends-in-whitespace-escape.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/multiline-basic-str/ends-in-whitespace-escape.toml) Reserved escape sequence used (line 6 column 1 char 28)
[dates-and-times/datetimes.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/dates-and-times/datetimes.toml) Parsed as unexpected data.
*8/12 (66.67%) passed*|
+|toml|[apostrophes-in-literal-string.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/apostrophes-in-literal-string.toml) Unbalanced quotes (line 1 column 50 char 49)
[five-quotes.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/five-quotes.toml) Unterminated string found. Reached end of file. (line 7 column 1 char 97)
[dates-and-times/datetimes.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/dates-and-times/datetimes.toml) Parsed as unexpected data.
[multiline-basic-str/ends-in-whitespace-escape.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/multiline-basic-str/ends-in-whitespace-escape.toml) Reserved escape sequence used (line 6 column 1 char 28)
*8/12 (66.67%) passed*|
|tomli/tomli_w|OK, *12/12 (100%) passed*|
|tomlkit|OK, *12/12 (100%) passed*|
-|pytomlpp|[array/open-parent-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/array/open-parent-table.toml) Error while parsing table header: cannot redefine existing table 'parent-table' (error occurred at line 3, column 1)
*11/12 (91.67%) passed*|
+|pytomlpp|OK, *12/12 (100%) passed*|
|rtoml|OK, *12/12 (100%) passed*|
-|qtoml|[five-quotes.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/five-quotes.toml) Didn't find expected newline (line 3, column 3)
[apostrophes-in-literal-string.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/apostrophes-in-literal-string.toml) Didn't find expected newline (line 3, column 3)
[dates-and-times/datetimes.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/dates-and-times/datetimes.toml) Didn't find expected newline (line 1, column 19)
*9/12 (75.00%) passed*|
+|qtoml|[apostrophes-in-literal-string.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/apostrophes-in-literal-string.toml) Didn't find expected newline (line 3, column 3)
[five-quotes.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/five-quotes.toml) Didn't find expected newline (line 3, column 3)
[dates-and-times/datetimes.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/dates-and-times/datetimes.toml) Didn't find expected newline (line 1, column 19)
*9/12 (75.00%) passed*|
## Compliance with invalid tests in python tomllib test data
@@ -230,12 +294,12 @@ parsing error.
| |Result (cpython tag 3.11.0)|
|-|-----------------------|
-|toml|Not OK: [invalid-comment-char.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/invalid-comment-char.toml) incorrectly parsed.
Not OK: [array/file-end-after-val.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/array/file-end-after-val.toml) incorrectly parsed.
Not OK: [array/unclosed-empty.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/array/unclosed-empty.toml) incorrectly parsed.
Not OK: [array/unclosed-after-item.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/array/unclosed-after-item.toml) incorrectly parsed.
Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table-with-subtable.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table-with-subtable.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table.toml) incorrectly parsed.
Not OK: [inline-table/overwrite-value-in-inner-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/overwrite-value-in-inner-table.toml) incorrectly parsed.
Not OK: [inline-table/unclosed-empty.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/unclosed-empty.toml) incorrectly parsed.
*41/50 (82.00%) passed*|
-|tomli/tomli_w|OK: [dates-and-times/invalid-day.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dates-and-times/invalid-day.toml) Invalid date or datetime (at line 1, column 36)
*50/50 (100%) passed*|
-|tomlkit|Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
Not OK: [array-of-tables/overwrite-array-in-parent.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/array-of-tables/overwrite-array-in-parent.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-aot.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-aot.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table-with-subtable.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table-with-subtable.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table.toml) incorrectly parsed.
Not OK: [inline-table/override-val-in-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/override-val-in-table.toml) incorrectly parsed.
*44/50 (88.00%) passed*|
+|toml|Not OK: [invalid-comment-char.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/invalid-comment-char.toml) incorrectly parsed.
Not OK: [inline-table/unclosed-empty.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/unclosed-empty.toml) incorrectly parsed.
Not OK: [inline-table/overwrite-value-in-inner-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/overwrite-value-in-inner-table.toml) incorrectly parsed.
Not OK: [array/unclosed-empty.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/array/unclosed-empty.toml) incorrectly parsed.
Not OK: [array/unclosed-after-item.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/array/unclosed-after-item.toml) incorrectly parsed.
Not OK: [array/file-end-after-val.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/array/file-end-after-val.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table-with-subtable.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table-with-subtable.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table.toml) incorrectly parsed.
Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
*41/50 (82.00%) passed*|
+|tomli/tomli_w|OK: [multiline-basic-str/escape-only.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/multiline-basic-str/escape-only.toml) Unterminated string (at end of document)
*50/50 (100%) passed*|
+|tomlkit|Not OK: [inline-table/override-val-in-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/override-val-in-table.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table-with-subtable.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table-with-subtable.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-aot.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-aot.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table.toml) incorrectly parsed.
Not OK: [array-of-tables/overwrite-array-in-parent.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/array-of-tables/overwrite-array-in-parent.toml) incorrectly parsed.
Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
*44/50 (88.00%) passed*|
|pytomlpp|Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
*49/50 (98.00%) passed*|
|rtoml|Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
*49/50 (98.00%) passed*|
-|qtoml|Not OK: [invalid-comment-char.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/invalid-comment-char.toml) incorrectly parsed.
Not OK: [non-scalar-escaped.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/non-scalar-escaped.toml) incorrectly parsed.
Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table-with-subtable.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table-with-subtable.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table.toml) incorrectly parsed.
Not OK: [inline-table/override-val-with-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/override-val-with-table.toml) incorrectly parsed.
Not OK: [inline-table/overwrite-value-in-inner-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/overwrite-value-in-inner-table.toml) incorrectly parsed.
Not OK: [table/redefine-2.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/table/redefine-2.toml) incorrectly parsed.
Not OK: [table/redefine-1.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/table/redefine-1.toml) incorrectly parsed.
*41/50 (82.00%) passed*|
+|qtoml|Not OK: [non-scalar-escaped.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/non-scalar-escaped.toml) incorrectly parsed.
Not OK: [invalid-comment-char.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/invalid-comment-char.toml) incorrectly parsed.
Not OK: [inline-table/override-val-with-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/override-val-with-table.toml) incorrectly parsed.
Not OK: [inline-table/overwrite-value-in-inner-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/overwrite-value-in-inner-table.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table-with-subtable.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table-with-subtable.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table.toml) incorrectly parsed.
Not OK: [table/redefine-2.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/table/redefine-2.toml) incorrectly parsed.
Not OK: [table/redefine-1.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/table/redefine-1.toml) incorrectly parsed.
Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
*41/50 (82.00%) passed*|
## Running speed with data provided by `pytomlpp`
@@ -247,12 +311,12 @@ using data provided by `pytomlpp`
| |Loading speed|Dumping speed|
|-|-|-|
-|toml|8.29s (5000 iterations)|1.55s (5000 iterations)|
-|tomli/tomli_w|3.95s (5000 iterations)|1.22s (5000 iterations)|
-|tomlkit|67.71s (5000 iterations)|1.17s (5000 iterations)|
-|pytomlpp|0.96s (5000 iterations)|0.62s (5000 iterations)|
-|rtoml|0.56s (5000 iterations)|0.38s (5000 iterations)|
-|qtoml|11.32s (5000 iterations)|2.65s (5000 iterations)|
+|toml|Excluded (heterogeneous arrays not supported)|Excluded (heterogeneous arrays not supported)|
+|tomli/tomli_w|7.50s (1000 iterations)|3.23s (1000 iterations)|
+|tomlkit|139.95s (1000 iterations)|2.37s (1000 iterations)|
+|pytomlpp|1.37s (1000 iterations)|0.97s (1000 iterations)|
+|rtoml|0.96s (1000 iterations)|values must be emitted before tables|
+|qtoml|20.08s (1000 iterations)|4.86s (1000 iterations)|
## Running speed with data provided by `rtoml`
@@ -264,12 +328,12 @@ provided by `rtoml`
| |Loading speed|Dumping speed|
|-|-|-|
-|toml|17.97s (5000 iterations)|2.39s (5000 iterations)|
-|tomli/tomli_w|7.73s (5000 iterations)|2.46s (5000 iterations)|
-|tomlkit|153.29s (5000 iterations)|3.44s (5000 iterations)|
-|pytomlpp|1.39s (5000 iterations)|0.99s (5000 iterations)|
-|rtoml|0.96s (5000 iterations)|0.23s (5000 iterations)|
-|qtoml|22.25s (5000 iterations)|6.27s (5000 iterations)|
+|toml|Excluded (heterogeneous arrays not supported)|Excluded (heterogeneous arrays not supported)|
+|tomli/tomli_w|1.65s (1000 iterations)|0.56s (1000 iterations)|
+|tomlkit|30.99s (1000 iterations)|0.91s (1000 iterations)|
+|pytomlpp|0.28s (1000 iterations)|0.20s (1000 iterations)|
+|rtoml|0.20s (1000 iterations)|0.05s (1000 iterations)|
+|qtoml|5.13s (1000 iterations)|1.43s (1000 iterations)|
## Running speed with data provided by `tomli`
@@ -281,10 +345,10 @@ provided by `tomli`
| |Loading speed|Dumping speed|
|-|-|-|
-|toml|10.99s (5000 iterations)|1.77s (5000 iterations)|
-|tomli/tomli_w|5.51s (5000 iterations)|1.76s (5000 iterations)|
-|tomlkit|97.62s (5000 iterations)|1.67s (5000 iterations)|
-|pytomlpp|1.22s (5000 iterations)|0.81s (5000 iterations)|
-|rtoml|0.73s (5000 iterations)|0.44s (5000 iterations)|
-|qtoml|14.70s (5000 iterations)|4.05s (5000 iterations)|
+|toml|Excluded (heterogeneous arrays not supported)|Excluded (heterogeneous arrays not supported)|
+|tomli/tomli_w|1.16s (1000 iterations)|0.40s (1000 iterations)|
+|tomlkit|19.50s (1000 iterations)|0.40s (1000 iterations)|
+|pytomlpp|0.23s (1000 iterations)|0.15s (1000 iterations)|
+|rtoml|0.16s (1000 iterations)|0.10s (1000 iterations)|
+|qtoml|3.35s (1000 iterations)|0.84s (1000 iterations)|
diff --git a/reports/with_toml-test_v1.2.0.md b/reports/with_toml-test_v1.2.0.md
new file mode 100644
index 0000000..7e1b4e7
--- /dev/null
+++ b/reports/with_toml-test_v1.2.0.md
@@ -0,0 +1,354 @@
+# Report
+
+## Version
+
+The verions of the packages tested in this report.
+
+| |Version|
+|-|-----------------------|
+|toml|0.10.2|
+|tomli/tomli_w|2.0.1; **tomli_w**: 1.0.0|
+|tomlkit|0.11.8|
+|pytomlpp|1.0.13|
+|rtoml|0.9.0|
+|qtoml|0.3.1|
+
+## Dumping `None` value
+
+How the package dumps `None` value in python
+
+Literally `.dumps(None)`
+
+
+| |Dumped value or error|
+|-|-----------------------|
+|toml|'NoneType' object is not iterable|
+|tomli/tomli_w|'NoneType' object has no attribute 'items'|
+|tomlkit|Expecting Mapping or TOML Container, given|
+|pytomlpp|dumps(): incompatible function arguments. The following argument types are supported:
1. (arg0: dict) -> str
Invoked with: None|
+|rtoml|"null"|
+|qtoml|'NoneType' object has no attribute 'items'|
+
+## Dumping key-`None` pair
+
+How the package dumps key-value pair with value `None`
+
+Literally `.dumps({"key": None})`
+
+
+| |Dumped value or error|
+|-|-----------------------|
+|toml||
+|tomli/tomli_w|Object of type is not TOML serializable|
+|tomlkit|Invalid type |
+|pytomlpp|cannot convert value None to proper toml type
|
+|rtoml|key = "null"
|
+|qtoml|TOML cannot encode None|
+
+## Dumping list with `None` value
+
+How the package dumps a list with `None` value in it.
+
+Literally `.dumps({"key": [1, 2, 3, None, 5]})`
+
+
+| |Dumped value or error|
+|-|-----------------------|
+|toml|key = [ 1, 2, 3, "None", 5,]
|
+|tomli/tomli_w|Object of type is not TOML serializable|
+|tomlkit|Invalid type |
+|pytomlpp|not a valid type for conversion None|
+|rtoml|key = [1, 2, 3, "null", 5]
|
+|qtoml|bad type '' for dump_value|
+
+## Loading `None`-like values
+
+How the package loads `None`-like value in string
+
+Literally `.loads('v1 = "null" v2 = "None"')`
+
+
+| |Loaded as|
+|-|-----------------------|
+|toml|{'v1': 'null', 'v2': 'None'}|
+|tomli/tomli_w|{'v1': 'null', 'v2': 'None'}|
+|tomlkit|{'v1': 'null', 'v2': 'None'}|
+|pytomlpp|{'v1': 'null', 'v2': 'None'}|
+|rtoml|{'v1': 'null', 'v2': 'None'}|
+|qtoml|{'v1': 'null', 'v2': 'None'}|
+
+## Dumping a heterogenous array
+
+How the package dumps a python dictionary with a heterogenous array.
+
+Literally `.dumps({"v": [1, 1.2, True, "string", [1, 2], {"a": 1, "b": 2}]})`
+
+
+| |Dumped value or error|
+|-|-----------------------|
+|toml|v = [ 1, 1.2, true, "string",]
|
+|tomli/tomli_w|v = [
1,
1.2,
true,
"string",
]
|
+|tomlkit|v = [1, 1.2, true, "string"]
|
+|pytomlpp|v = [ 1, 1.2, 1, 'string' ]|
+|rtoml|v = [1, 1.2, true, "string"]
|
+|qtoml|v = [1, 1.2, true, 'string']
|
+
+## Loading a heterogenous array
+
+How the package loads a toml string with a heterogenous array.
+
+Literally `.loads('v = [1, 1.2, True, "string", [1, 2], {"a": 1, "b": 2}]')`
+
+
+| |Loaded as|
+|-|-----------------------|
+|toml|Not a homogeneous array (line 2 column 1 char 1)|
+|tomli/tomli_w|{'v': [1, 1.2, True, 'string']}|
+|tomlkit|{'v': [1, 1.2, True, 'string']}|
+|pytomlpp|{'v': [1, 1.2, True, 'string']}|
+|rtoml|{'v': [1, 1.2, True, 'string']}|
+|qtoml|{'v': [1, 1.2, True, 'string']}|
+
+## Dumping a nested array
+
+How the package dumps a python dictionary with a nested array.
+
+Literally `.dumps({"v": [[1], [1, 2]]})`
+
+
+| |Dumped value or error|
+|-|-----------------------|
+|toml|v = [ [ 1,], [ 1, 2,],]
|
+|tomli/tomli_w|v = [
[
1,
],
[
1,
2,
],
]
|
+|tomlkit|v = [[1], [1, 2]]
|
+|pytomlpp|v = [ [ 1 ], [ 1, 2 ] ]
|
+|rtoml|v = [[1], [1, 2]]
|
+|qtoml|v = [[1], [1, 2]]
|
+
+## Loading a nested array
+
+How the package loads a toml string with a nested array.
+
+Literally `.loads('v = [[1], [1, 2]]')`
+
+
+| |Loaded as|
+|-|-----------------------|
+|toml|{'v': [[1], [1, 2]]}|
+|tomli/tomli_w|{'v': [[1], [1, 2]]}|
+|tomlkit|{'v': [[1], [1, 2]]}|
+|pytomlpp|{'v': [[1], [1, 2]]}|
+|rtoml|{'v': [[1], [1, 2]]}|
+|qtoml|{'v': [[1], [1, 2]]}|
+
+## Dumping keeps order of keys?
+
+Whether the package preserves the order of the keys while dumps
+a python dictionary.
+
+Thus, whether `.dumps({"c": 1, "a": 2, "b": 3})` yields a string
+like `c = 1\na = 2\nb = 3\n`.
+
+
+| |Order kept?|
+|-|-----------------------|
+|toml|Kept|
+|tomli/tomli_w|Kept|
+|tomlkit|Kept|
+|pytomlpp|Lost|
+|rtoml|Kept|
+|qtoml|Kept|
+
+## Loading keeps order of keys?
+
+Whether the package preserves the order of the keys
+while loads a TOML string.
+
+Thus, whether `.loads('c = 1\na = 2\nb = 3\n')` yields
+a dictionary with keys in the order of `['c', 'a', 'b']`.
+
+
+| |Order kept?|
+|-|-----------------------|
+|toml|Kept|
+|tomli/tomli_w|Kept|
+|tomlkit|Kept|
+|pytomlpp|Lost|
+|rtoml|Kept|
+|qtoml|Kept|
+
+## Dumping unicode
+
+How the package dumps Unicode in python
+
+Literally, `.dumps({"你好": "世界"})`
+
+
+| |Dumped value|
+|-|-----------------------|
+|toml|"你好" = "世界"
|
+|tomli/tomli_w|"你好" = "世界"
|
+|tomlkit|"你好" = "世界"
|
+|pytomlpp|'你好' = '世界'|
+|rtoml|"你好" = "世界"
|
+|qtoml|'你好' = '世界'
|
+
+## Loaded unicode
+
+How the package loads a file with unicode.
+
+The file was created by:
+
+```python
+# Create a file with unicode content
+with open(self.datafile, "w", encoding="utf-8") as f:
+ f.write('"你好" = "世界"\n')
+
+# Use `.load()` to load the file
+with open(self.datafile, "r", encoding="utf-8") as f:
+ loaded = .load(f)
+```
+
+
+| |Loaded as|
+|-|-----------------------|
+|toml|{'你好': '世界'}|
+|tomli/tomli_w|File must be opened in binary mode, e.g. use `open('foo.toml', 'rb')`
When loaded with `rb`:
{'你好': '世界'}|
+|tomlkit|{'你好': '世界'}|
+|pytomlpp|{'你好': '世界'}|
+|rtoml|{'你好': '世界'}|
+|qtoml|{'你好': '世界'}|
+
+## Compliance with valid tests in toml-test
+
+Test the compliance with the standard test suites for valid toml files
+here:
+
+> https://github.com/BurntSushi/toml-test/
+
+The tests come up with a JSON counterpart that can be used to valid whether
+loading the toml file yields the same result as the JSON counterpart.
+
+
+| |Result (toml-test v1.2.0)|
+|-|-----------------------|
+|toml|[key/escapes.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/key/escapes.toml) Parsed as unexpected data.
[key/dotted.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/key/dotted.toml) Found invalid character in key name: '"'. Try quoting the key name. (line 12 column 11 char 245)
[comment/tricky.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/comment/tricky.toml) Parsed as unexpected data.
[inline-table/key-dotted.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/inline-table/key-dotted.toml) Parsed as unexpected data.
[inline-table/multiline.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/inline-table/multiline.toml) Invalid inline table value encountered (line 1 column 1 char 0)
[array/nested-double.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/array/nested-double.toml) Not a homogeneous array (line 1 column 1 char 0)
[array/mixed-int-string.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/array/mixed-int-string.toml) Not a homogeneous array (line 1 column 1 char 0)
[array/mixed-string-table.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/array/mixed-string-table.toml) list index out of range
[array/mixed-int-array.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/array/mixed-int-array.toml) Not a homogeneous array (line 1 column 1 char 0)
[array/mixed-int-float.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/array/mixed-int-float.toml) Not a homogeneous array (line 1 column 1 char 0)
[float/zero.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/float/zero.toml) Weirdness with leading zeroes or underscores in your number. (line 4 column 1 char 47)
[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/string/escape-esc.toml) Reserved escape sequence used (line 1 column 1 char 0)
[datetime/datetime.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/datetime/datetime.toml) Parsed as unexpected data.
[datetime/local-time.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/datetime/local-time.toml) Parsed as unexpected data.
*86/100 (86.00%) passed*|
+|tomli/tomli_w|[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/string/escape-esc.toml) Unescaped '\' in a string (at line 1, column 10)
*99/100 (99.00%) passed*|
+|tomlkit|[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/string/escape-esc.toml) Invalid character 'e' in string at line 1 col 8
*99/100 (99.00%) passed*|
+|pytomlpp|[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/string/escape-esc.toml) Error while parsing string: escape sequence '\e' is not supported in TOML 1.0.0 and earlier (error occurred at line 1, column 9)
*99/100 (99.00%) passed*|
+|rtoml|[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/string/escape-esc.toml) invalid escape character in string: `e` at line 1 column 9
*99/100 (99.00%) passed*|
+|qtoml|[comment/tricky.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/comment/tricky.toml) can't parse type (line 11, column 7)
[string/multiline-quotes.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/string/multiline-quotes.toml) Didn't find expected newline (line 4, column 26)
[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/string/escape-esc.toml) \e not a valid escape (line 1, column 33)
[datetime/milliseconds.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/datetime/milliseconds.toml) Didn't find expected newline (line 2, column 27)
[datetime/datetime.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/datetime/datetime.toml) Didn't find expected newline (line 2, column 18)
*95/100 (95.00%) passed*|
+
+## Compliance with invalid tests in toml-test
+
+Test the compliance with the standard test suites for invalid toml files
+here:
+
+> https://github.com/BurntSushi/toml-test/
+
+- `Not OK`: The toml file is parsed without error, but expected to fail.
+- `OK`: All files are failed to parse, as expected. Showing the last
+parsing error.
+
+
+| |Result (toml-test v1.2.0)|
+|-|-----------------------|
+|toml|Not OK: [key/escape.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/key/escape.toml) incorrectly parsed.
Not OK: [key/special-character.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/key/special-character.toml) incorrectly parsed.
Not OK: [key/two-equals3.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/key/two-equals3.toml) incorrectly parsed.
Not OK: [key/two-equals2.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/key/two-equals2.toml) incorrectly parsed.
Not OK: [inline-table/add.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/inline-table/add.toml) incorrectly parsed.
Not OK: [array/no-close-2.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/array/no-close-2.toml) incorrectly parsed.
Not OK: [array/tables-1.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/array/tables-1.toml) incorrectly parsed.
Not OK: [array/no-close.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/array/no-close.toml) incorrectly parsed.
Not OK: [array/extending-table.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/array/extending-table.toml) incorrectly parsed.
Not OK: [array/no-close-table.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/array/no-close-table.toml) incorrectly parsed.
Not OK: *36 more items incorrectly parsed.*
*177/223 (79.37%) passed*|
+|tomli/tomli_w|OK: [datetime/mday-under.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/datetime/mday-under.toml) Expected newline or end of document after a statement (at line 3, column 9)
*223/223 (100%) passed*|
+|tomlkit|Not OK: [control/bare-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/bare-cr.toml) incorrectly parsed.
Not OK: [control/comment-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/comment-cr.toml) incorrectly parsed.
Not OK: [table/append-with-dotted-keys-2.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/table/append-with-dotted-keys-2.toml) incorrectly parsed.
Not OK: [table/append-with-dotted-keys-1.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/table/append-with-dotted-keys-1.toml) incorrectly parsed.
*219/223 (98.21%) passed*|
+|pytomlpp|Not OK: [control/bare-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/bare-cr.toml) incorrectly parsed.
Not OK: [control/comment-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/comment-cr.toml) incorrectly parsed.
*221/223 (99.10%) passed*|
+|rtoml|Not OK: [control/bare-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/bare-cr.toml) incorrectly parsed.
Not OK: [control/comment-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/comment-cr.toml) incorrectly parsed.
Not OK: [control/comment-del.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/comment-del.toml) incorrectly parsed.
Not OK: [integer/positive-hex.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/integer/positive-hex.toml) incorrectly parsed.
Not OK: [integer/positive-bin.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/integer/positive-bin.toml) incorrectly parsed.
*218/223 (97.76%) passed*|
+|qtoml|Not OK: [inline-table/trailing-comma.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/inline-table/trailing-comma.toml) incorrectly parsed.
Not OK: [inline-table/add.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/inline-table/add.toml) incorrectly parsed.
Not OK: [control/bare-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/bare-cr.toml) incorrectly parsed.
Not OK: [control/comment-us.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/comment-us.toml) incorrectly parsed.
Not OK: [control/comment-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/comment-cr.toml) incorrectly parsed.
Not OK: [control/comment-lf.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/comment-lf.toml) incorrectly parsed.
Not OK: [control/comment-del.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/comment-del.toml) incorrectly parsed.
Not OK: [control/comment-null.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/comment-null.toml) incorrectly parsed.
Not OK: [table/duplicate-key-dotted-table.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/table/duplicate-key-dotted-table.toml) incorrectly parsed.
Not OK: [table/duplicate-key-dotted-table2.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/table/duplicate-key-dotted-table2.toml) incorrectly parsed.
Not OK: *2 more items incorrectly parsed.*
*211/223 (94.62%) passed*|
+
+## Compliance with valid tests in python tomllib test data
+
+Test the compliance with python tomllib test data (since python 3.11)
+for valid toml files here:
+
+> https://github.com/python/cpython/tree/3.11/Lib/test/test_tomllib/data/valid
+
+The tests come up with a JSON counterpart that can be used to valid whether
+loading the toml file yields the same result as the JSON counterpart.
+
+
+| |Result (cpython tag 3.11.0)|
+|-|-----------------------|
+|toml|[apostrophes-in-literal-string.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/apostrophes-in-literal-string.toml) Unbalanced quotes (line 1 column 50 char 49)
[five-quotes.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/five-quotes.toml) Unterminated string found. Reached end of file. (line 7 column 1 char 97)
[dates-and-times/datetimes.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/dates-and-times/datetimes.toml) Parsed as unexpected data.
[multiline-basic-str/ends-in-whitespace-escape.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/multiline-basic-str/ends-in-whitespace-escape.toml) Reserved escape sequence used (line 6 column 1 char 28)
*8/12 (66.67%) passed*|
+|tomli/tomli_w|OK, *12/12 (100%) passed*|
+|tomlkit|OK, *12/12 (100%) passed*|
+|pytomlpp|OK, *12/12 (100%) passed*|
+|rtoml|OK, *12/12 (100%) passed*|
+|qtoml|[apostrophes-in-literal-string.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/apostrophes-in-literal-string.toml) Didn't find expected newline (line 3, column 3)
[five-quotes.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/five-quotes.toml) Didn't find expected newline (line 3, column 3)
[dates-and-times/datetimes.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//valid/dates-and-times/datetimes.toml) Didn't find expected newline (line 1, column 19)
*9/12 (75.00%) passed*|
+
+## Compliance with invalid tests in python tomllib test data
+
+Test the compliance with python tomllib test data (since python 3.11)
+for invalid toml files here:
+
+> https://github.com/python/cpython/tree/main/Lib/test/test_tomllib/data/invalid
+
+- `Not OK`: The toml file is parsed without error, but expected to fail.
+- `OK`: All files are failed to parse, as expected. Showing the last
+parsing error.
+
+
+| |Result (cpython tag 3.11.0)|
+|-|-----------------------|
+|toml|Not OK: [invalid-comment-char.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/invalid-comment-char.toml) incorrectly parsed.
Not OK: [inline-table/unclosed-empty.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/unclosed-empty.toml) incorrectly parsed.
Not OK: [inline-table/overwrite-value-in-inner-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/overwrite-value-in-inner-table.toml) incorrectly parsed.
Not OK: [array/unclosed-empty.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/array/unclosed-empty.toml) incorrectly parsed.
Not OK: [array/unclosed-after-item.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/array/unclosed-after-item.toml) incorrectly parsed.
Not OK: [array/file-end-after-val.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/array/file-end-after-val.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table-with-subtable.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table-with-subtable.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table.toml) incorrectly parsed.
Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
*41/50 (82.00%) passed*|
+|tomli/tomli_w|OK: [multiline-basic-str/escape-only.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/multiline-basic-str/escape-only.toml) Unterminated string (at end of document)
*50/50 (100%) passed*|
+|tomlkit|Not OK: [inline-table/override-val-in-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/override-val-in-table.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table-with-subtable.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table-with-subtable.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-aot.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-aot.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table.toml) incorrectly parsed.
Not OK: [array-of-tables/overwrite-array-in-parent.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/array-of-tables/overwrite-array-in-parent.toml) incorrectly parsed.
Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
*44/50 (88.00%) passed*|
+|pytomlpp|Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
*49/50 (98.00%) passed*|
+|rtoml|Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
*49/50 (98.00%) passed*|
+|qtoml|Not OK: [non-scalar-escaped.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/non-scalar-escaped.toml) incorrectly parsed.
Not OK: [invalid-comment-char.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/invalid-comment-char.toml) incorrectly parsed.
Not OK: [inline-table/override-val-with-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/override-val-with-table.toml) incorrectly parsed.
Not OK: [inline-table/overwrite-value-in-inner-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/inline-table/overwrite-value-in-inner-table.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table-with-subtable.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table-with-subtable.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table.toml) incorrectly parsed.
Not OK: [table/redefine-2.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/table/redefine-2.toml) incorrectly parsed.
Not OK: [table/redefine-1.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/table/redefine-1.toml) incorrectly parsed.
Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.11.0/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
*41/50 (82.00%) passed*|
+
+## Running speed with data provided by `pytomlpp`
+
+Test the speed of loading and dumping the loaded
+using data provided by `pytomlpp`
+
+> https://github.com/bobfang1992/pytomlpp/raw/master/benchmark/data.toml
+
+
+| |Loading speed|Dumping speed|
+|-|-|-|
+|toml|Excluded (heterogeneous arrays not supported)|Excluded (heterogeneous arrays not supported)|
+|tomli/tomli_w|8.17s (1000 iterations)|4.00s (1000 iterations)|
+|tomlkit|144.28s (1000 iterations)|2.39s (1000 iterations)|
+|pytomlpp|1.53s (1000 iterations)|1.11s (1000 iterations)|
+|rtoml|1.14s (1000 iterations)|values must be emitted before tables|
+|qtoml|19.34s (1000 iterations)|4.92s (1000 iterations)|
+
+## Running speed with data provided by `rtoml`
+
+Test the speed of loading and dumping the loaded using data
+provided by `rtoml`
+
+> https://github.com/samuelcolvin/rtoml/raw/main/tests/data.toml
+
+
+| |Loading speed|Dumping speed|
+|-|-|-|
+|toml|Excluded (heterogeneous arrays not supported)|Excluded (heterogeneous arrays not supported)|
+|tomli/tomli_w|1.63s (1000 iterations)|0.57s (1000 iterations)|
+|tomlkit|31.80s (1000 iterations)|0.82s (1000 iterations)|
+|pytomlpp|0.24s (1000 iterations)|0.20s (1000 iterations)|
+|rtoml|0.20s (1000 iterations)|0.05s (1000 iterations)|
+|qtoml|4.59s (1000 iterations)|1.33s (1000 iterations)|
+
+## Running speed with data provided by `tomli`
+
+Test the speed of loading and dumping the loaded using data
+provided by `tomli`
+
+> https://github.com/hukkin/tomli/raw/master/benchmark/data.toml
+
+
+| |Loading speed|Dumping speed|
+|-|-|-|
+|toml|Excluded (heterogeneous arrays not supported)|Excluded (heterogeneous arrays not supported)|
+|tomli/tomli_w|1.20s (1000 iterations)|0.39s (1000 iterations)|
+|tomlkit|20.44s (1000 iterations)|0.41s (1000 iterations)|
+|pytomlpp|0.24s (1000 iterations)|0.16s (1000 iterations)|
+|rtoml|0.16s (1000 iterations)|0.10s (1000 iterations)|
+|qtoml|3.38s (1000 iterations)|0.86s (1000 iterations)|
+
diff --git a/run-tests.py b/run-tests.py
index e2fb540..97c48de 100644
--- a/run-tests.py
+++ b/run-tests.py
@@ -4,7 +4,8 @@
from pathlib import Path
REPORTS = {
- "latest": "1.2.0",
+ "latest": "1.3.0",
+ "v1.2.0": "1.2.0",
"v1.1.0": "1.1.0",
"v1.0.0": "1.0.0",
}
@@ -15,7 +16,7 @@ def run_test(comver):
outfile = f"reports/with_toml-test_{comver}.md"
- cmd = f"python -m toml_bench --comver {REPORTS[comver]} --report {outfile}"
+ cmd = f"python -m toml_bench --iter 1000 --comver {REPORTS[comver]} --report {outfile}"
os.system(cmd)
diff --git a/toml_bench/__main__.py b/toml_bench/__main__.py
index 4d77a79..eef3c7a 100644
--- a/toml_bench/__main__.py
+++ b/toml_bench/__main__.py
@@ -28,7 +28,7 @@ def init_params() -> Params:
)
params.add_param(
"comver",
- default="1.2.0",
+ default="1.3.0",
desc="The version of the toml-test to use in compliance tests",
)
params.add_param(
diff --git a/toml_bench/cases/hetero_array.py b/toml_bench/cases/hetero_array.py
new file mode 100644
index 0000000..7620bf9
--- /dev/null
+++ b/toml_bench/cases/hetero_array.py
@@ -0,0 +1,48 @@
+from typing import Any
+from benchwork import BenchCase
+
+
+class BenchCaseDumpsHeteroArray(BenchCase):
+ def run(self) -> Any:
+ v1 = {
+ "v": [1, 1.2, True, "string"]
+ }
+ try:
+ return self.api.dumps(v1)
+ except Exception as e:
+ return e
+
+
+class BenchCaseLoadsHeteroArray(BenchCase):
+
+ def run(self) -> Any:
+ v1 = """
+ v = [1, 1.2, true, "string"]
+ """
+ try:
+ return self.api.loads(v1)
+ except Exception as e1:
+ return e1
+
+
+class BenchCaseDumpsNestedArray(BenchCase):
+ def run(self) -> Any:
+ v1 = {
+ "v": [[1], [1, 2]]
+ }
+ try:
+ return '' + self.api.dumps(v1) + '
'
+ except Exception as e:
+ return e
+
+
+class BenchCaseLoadsNestedArray(BenchCase):
+
+ def run(self) -> Any:
+ v1 = """
+ v = [[1], [1, 2]]
+ """
+ try:
+ return self.api.loads(v1)
+ except Exception as e1:
+ return e1
diff --git a/toml_bench/cases/speed.py b/toml_bench/cases/speed.py
index 7f89daa..aba8ffc 100644
--- a/toml_bench/cases/speed.py
+++ b/toml_bench/cases/speed.py
@@ -28,6 +28,12 @@ def run_dumping(self):
return self.api.dumps(self.loaded)
def run(self) -> Any:
+ if self.api._name == "toml":
+ return [
+ "Excluded (heterogeneous arrays not supported)",
+ "Excluded (heterogeneous arrays not supported)",
+ ]
+
self.run_core = self.run_loading
out = super().run()
loading = f"{out:.2f}s ({self.args.iter} iterations)"
diff --git a/toml_bench/sets.py b/toml_bench/sets.py
index 21057ad..d49b7e8 100644
--- a/toml_bench/sets.py
+++ b/toml_bench/sets.py
@@ -10,6 +10,12 @@
BenchCaseDumpNone,
BenchCaseLoadNoneLike,
)
+from .cases.hetero_array import (
+ BenchCaseDumpsHeteroArray,
+ BenchCaseLoadsHeteroArray,
+ BenchCaseDumpsNestedArray,
+ BenchCaseLoadsNestedArray,
+)
from .cases.keys_order import (
BenchCaseDumpKeysOrder,
BenchCaseLoadKeysOrder,
@@ -99,6 +105,53 @@ class BenchSetLoadNoneLike(BenchSetTable):
case = BenchCaseLoadNoneLike
+class BenchSetDumpsHeteroArray(BenchSetTable):
+ """How the package dumps a python dictionary with a heterogenous array.
+
+ Literally `.dumps({"v": [1, 1.2, True, "string", [1, 2], {"a": 1, "b": 2}]})`
+ """
+
+ title = "Dumping a heterogenous array"
+ header = "Dumped value or error"
+ api_base = APIBase
+ case = BenchCaseDumpsHeteroArray
+
+
+class BenchSetLoadsHeteroArray(BenchSetTable):
+ """How the package loads a toml string with a heterogenous array.
+
+ Literally `.loads('v = [1, 1.2, True, "string", [1, 2], {"a": 1, "b": 2}]')`
+ """
+
+ title = "Loading a heterogenous array"
+ header = "Loaded as"
+ api_base = APIBase
+ case = BenchCaseLoadsHeteroArray
+
+
+class BenchSetDumpsNestedArray(BenchSetTable):
+ """How the package dumps a python dictionary with a nested array.
+
+ Literally `.dumps({"v": [[1], [1, 2]]})`
+ """
+
+ title = "Dumping a nested array"
+ header = "Dumped value or error"
+ api_base = APIBase
+ case = BenchCaseDumpsNestedArray
+
+
+class BenchSetLoadsNestedArray(BenchSetTable):
+ """How the package loads a toml string with a nested array.
+
+ Literally `.loads('v = [[1], [1, 2]]')`
+ """
+ title = "Loading a nested array"
+ header = "Loaded as"
+ api_base = APIBase
+ case = BenchCaseLoadsNestedArray
+
+
class BenchSetDumpKeysOrder(BenchSetTable):
"""Whether the package preserves the order of the keys while dumps
a python dictionary.
diff --git a/toml_bench/suite.py b/toml_bench/suite.py
index 35fa654..4f33e37 100644
--- a/toml_bench/suite.py
+++ b/toml_bench/suite.py
@@ -6,6 +6,10 @@
BenchSetDumpValueNone,
BenchSetDumpListWithNone,
BenchSetLoadNoneLike,
+ BenchSetDumpsHeteroArray,
+ BenchSetLoadsHeteroArray,
+ BenchSetDumpsNestedArray,
+ BenchSetLoadsNestedArray,
BenchSetDumpKeysOrder,
BenchSetLoadKeysOrder,
BenchSetDumpsUnicode,
@@ -27,6 +31,10 @@ class BenchSuite(BenchSuite):
BenchSetDumpValueNone,
BenchSetDumpListWithNone,
BenchSetLoadNoneLike,
+ BenchSetDumpsHeteroArray,
+ BenchSetLoadsHeteroArray,
+ BenchSetDumpsNestedArray,
+ BenchSetLoadsNestedArray,
BenchSetDumpKeysOrder,
BenchSetLoadKeysOrder,
BenchSetDumpsUnicode,