diff --git a/README.md b/README.md
index ef5cb8a..c85e490 100644
--- a/README.md
+++ b/README.md
@@ -16,10 +16,10 @@ 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.8|
-|pytomlpp|1.0.13|
-|rtoml|0.9.0|
+|tomlkit|0.12.5|
+|rtoml|0.11.0|
|qtoml|0.3.1|
+|tomllib|(Python 3.12.2)|
### Dumping `None` value
@@ -33,9 +33,9 @@ Literally `.dumps(None)`
|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'|
+|tomllib|Dumping not supported|
### Dumping key-`None` pair
@@ -49,9 +49,9 @@ Literally `.dumps({"key": None})`
|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|
+|tomllib|Dumping not supported|
### Dumping list with `None` value
@@ -65,9 +65,9 @@ Literally `.dumps({"key": [1, 2, 3, None, 5]})`
|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|
+|tomllib|Dumping not supported|
### Loading `None`-like values
@@ -81,9 +81,9 @@ Literally `.loads('v1 = "null" v2 = "None"')`
|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'}|
+|tomllib|{'v1': 'null', 'v2': 'None'}|
### Dumping a heterogenous array
@@ -97,9 +97,9 @@ Literally `.dumps({"v": [1, 1.2, True, "string"]})`
|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'\]
|
+|tomllib|Dumping not supported|
### Loading a heterogenous array
@@ -113,9 +113,9 @@ Literally `.loads('v = [1, 1.2, True, "string"]')`
|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']}`|
+|tomllib|`{'v': [1, 1.2, True, 'string']}`|
### Dumping a nested array
@@ -129,9 +129,9 @@ Literally `.dumps({"v": [[1], [1, 2]]})`
|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\]\]
|
+|tomllib|Dumping not supported|
### Loading a nested array
@@ -145,9 +145,9 @@ Literally `.loads('v = [[1], [1, 2]]')`
|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]]}`|
+|tomllib|`{'v': [[1], [1, 2]]}`|
### Dumping keeps order of keys?
@@ -163,9 +163,9 @@ like `c = 1\na = 2\nb = 3\n`.
|toml|Kept|
|tomli/tomli_w|Kept|
|tomlkit|Kept|
-|pytomlpp|Lost|
|rtoml|Kept|
|qtoml|Kept|
+|tomllib|Dumping not supported|
### Loading keeps order of keys?
@@ -181,9 +181,9 @@ a dictionary with keys in the order of `['c', 'a', 'b']`.
|toml|Kept|
|tomli/tomli_w|Kept|
|tomlkit|Kept|
-|pytomlpp|Lost|
|rtoml|Kept|
|qtoml|Kept|
+|tomllib|Kept|
### Dumping unicode
@@ -197,9 +197,9 @@ Literally, `.dumps({"你好": "世界"})`
|toml|"你好" = "世界"
|
|tomli/tomli_w|"你好" = "世界"
|
|tomlkit|"你好" = "世界"
|
-|pytomlpp|'你好' = '世界'|
|rtoml|"你好" = "世界"
|
|qtoml|'你好' = '世界'
|
+|tomllib|Dumping not supported|
### Loaded unicode
@@ -223,9 +223,9 @@ with open(self.datafile, "r", encoding="utf-8") as f:
|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|{'你好': '世界'}|
+|tomllib|File must be opened in binary mode, e.g. use `open('foo.toml', 'rb')`
When loaded with `rb`:
{'你好': '世界'}|
### Compliance with valid tests in toml-test
@@ -238,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.3.0)|
+| |Result (toml-test v1.5.0)|
|-|-----------------------|
-|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*|
+|toml|[spec/array-0.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/spec/array-0.toml) Not a homogeneous array (line 8 column 1 char 261)
[spec/keys-4.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/spec/keys-4.toml) Found invalid character in key name: 'c'. Try quoting the key name. (line 2 column 8 char 57)
[spec/local-time-0.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/spec/local-time-0.toml) Parsed as unexpected data.
[datetime/no-seconds.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/datetime/no-seconds.toml) invalid literal for int() with base 0: '13:37' (line 2 column 1 char 46)
[datetime/local-time.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/datetime/local-time.toml) Parsed as unexpected data.
[datetime/datetime.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/datetime/datetime.toml) Parsed as unexpected data.
[comment/tricky.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/comment/tricky.toml) Parsed as unexpected data.
[key/dotted-1.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/key/dotted-1.toml) Parsed as unexpected data.
[key/unicode.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/key/unicode.toml) Found invalid character in key name: ''. Try quoting the key name. (line 5 column 2 char 67)
[key/dotted-2.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/key/dotted-2.toml) Found invalid character in key name: '"'. Try quoting the key name. (line 7 column 11 char 166)
[key/quoted-unicode.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/key/quoted-unicode.toml) Duplicate keys! (line 3 column 1 char 19)
[key/dotted-empty.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/key/dotted-empty.toml) Duplicate keys! (line 2 column 1 char 17)
[key/escapes.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/key/escapes.toml) Parsed as unexpected data.
[table/empty-name.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/table/empty-name.toml) Can't have a keygroup with an empty name (line 1 column 1 char 0)
[string/raw-multiline.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/string/raw-multiline.toml) Unbalanced quotes (line 20 column 50 char 532)
[string/ends-in-whitespace-escape.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/string/ends-in-whitespace-escape.toml) Reserved escape sequence used (line 6 column 1 char 28)
[string/hex-escape.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/string/hex-escape.toml) Reserved escape sequence used (line 3 column 1 char 35)
[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/string/escape-esc.toml) Reserved escape sequence used (line 1 column 1 char 0)
[string/multiline-quotes.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/string/multiline-quotes.toml) Unterminated string found. Reached end of file. (line 27 column 1 char 664)
[float/zero.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/float/zero.toml) Weirdness with leading zeroes or underscores in your number. (line 4 column 1 char 47)
[array/mixed-int-string.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.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.5.0/tests//valid/array/nested-double.toml) Not a homogeneous array (line 1 column 1 char 0)
[array/string-with-comma-2.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/array/string-with-comma-2.toml) string index out of range
[array/mixed-int-float.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.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.5.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.5.0/tests//valid/array/mixed-int-array.toml) Not a homogeneous array (line 1 column 1 char 0)
[inline-table/multiline.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/inline-table/multiline.toml) Invalid inline table value encountered (line 1 column 1 char 0)
[inline-table/key-dotted-1.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/inline-table/key-dotted-1.toml) Parsed as unexpected data.
[inline-table/key-dotted-5.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/inline-table/key-dotted-5.toml) Not a homogeneous array (line 2 column 1 char 20)
[inline-table/newline.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/inline-table/newline.toml) Key name found without value. Reached end of line. (line 5 column 2 char 98)
*157/187 (83.96%) passed*|
+|tomli/tomli_w|[datetime/no-seconds.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/datetime/no-seconds.toml) Expected newline or end of document after a statement (at line 2, column 23)
[key/unicode.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/key/unicode.toml) Invalid statement (at line 3, column 1)
[string/hex-escape.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/string/hex-escape.toml) Unescaped '\' in a string (at line 3, column 22)
[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/string/escape-esc.toml) Unescaped '\' in a string (at line 1, column 10)
[inline-table/newline.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/inline-table/newline.toml) Invalid initial character for a key part (at line 3, column 21)
*182/187 (97.33%) passed*|
+|tomlkit|[datetime/no-seconds.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/datetime/no-seconds.toml) Invalid number at line 2 col 25
[key/unicode.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/key/unicode.toml) Empty key at line 3 col 0
[string/hex-escape.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/string/hex-escape.toml) Invalid character 'x' in string at line 3 col 20
[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/string/escape-esc.toml) Invalid character 'e' in string at line 1 col 8
[inline-table/newline.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/inline-table/newline.toml) Empty key at line 3 col 20
*182/187 (97.33%) passed*|
+|rtoml|[spec/table-9.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/spec/table-9.toml) duplicate key: `apple` for key `fruit` at line 8 column 1
[datetime/no-seconds.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/datetime/no-seconds.toml) expected a colon, found a newline at line 2 column 26
[key/unicode.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/key/unicode.toml) unexpected character found: `\u{20ac}` at line 3 column 1
[table/array-within-dotted.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/table/array-within-dotted.toml) duplicate key: `apple` for key `fruit` at line 4 column 1
[string/hex-escape.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/string/hex-escape.toml) invalid escape character in string: `x` at line 3 column 21
[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/string/escape-esc.toml) invalid escape character in string: `e` at line 1 column 9
[inline-table/newline.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/inline-table/newline.toml) expected a table key, found a newline at line 3 column 21
*180/187 (96.26%) passed*|
+|qtoml|[spec/string-4.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/spec/string-4.toml) Didn't find expected newline (line 7, column 62)
[spec/string-7.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/spec/string-7.toml) Didn't find expected newline (line 7, column 50)
[datetime/no-seconds.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/datetime/no-seconds.toml) can't parse type (line 2, column 20)
[datetime/milliseconds.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.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.5.0/tests//valid/datetime/datetime.toml) Didn't find expected newline (line 4, column 18)
[comment/after-literal-no-ws.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/comment/after-literal-no-ws.toml) can't parse type (line 1, column 4)
[comment/tricky.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/comment/tricky.toml) can't parse type (line 11, column 7)
[key/unicode.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/key/unicode.toml) '€' cannot begin key (line 3, column 0)
[string/raw-multiline.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/string/raw-multiline.toml) Didn't find expected newline (line 22, column 3)
[string/hex-escape.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/string/hex-escape.toml) \x not a valid escape (line 3, column 43)
[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.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.5.0/tests//valid/string/multiline-quotes.toml) Didn't find expected newline (line 4, column 26)
[inline-table/newline.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/inline-table/newline.toml) ' ' cannot begin key (line 3, column 20)
*174/187 (93.05%) passed*|
+|tomllib|[datetime/no-seconds.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/datetime/no-seconds.toml) Expected newline or end of document after a statement (at line 2, column 23)
[key/unicode.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/key/unicode.toml) Invalid statement (at line 3, column 1)
[string/hex-escape.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/string/hex-escape.toml) Unescaped '\' in a string (at line 3, column 22)
[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/string/escape-esc.toml) Unescaped '\' in a string (at line 1, column 10)
[inline-table/newline.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/inline-table/newline.toml) Invalid initial character for a key part (at line 3, column 21)
*182/187 (97.33%) passed*|
### Compliance with invalid tests in toml-test
@@ -259,14 +259,14 @@ here:
parsing error.
-| |Result (toml-test v1.3.0)|
+| |Result (toml-test v1.5.0)|
|-|-----------------------|
-|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*|
+|toml|Not OK: [integer/double-sign-plus.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/integer/double-sign-plus.toml) incorrectly parsed.
Not OK: [integer/us-after-bin.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/integer/us-after-bin.toml) incorrectly parsed.
Not OK: [integer/double-sign-nex.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/integer/double-sign-nex.toml) incorrectly parsed.
Not OK: [integer/us-after-hex.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.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.5.0/tests//invalid/integer/us-after-oct.toml) incorrectly parsed.
Not OK: [spec/inline-table-2-0.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/spec/inline-table-2-0.toml) incorrectly parsed.
Not OK: [datetime/offset-overflow-minute.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/datetime/offset-overflow-minute.toml) incorrectly parsed.
Not OK: [datetime/offset-overflow-hour.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/datetime/offset-overflow-hour.toml) incorrectly parsed.
Not OK: [control/comment-del.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/control/comment-del.toml) incorrectly parsed.
Not OK: [control/string-del.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/control/string-del.toml) incorrectly parsed.
Not OK: *63 more items incorrectly parsed.*
*298/371 (80.32%) passed*|
+|tomli/tomli_w|OK: [inline-table/linebreak-1.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/inline-table/linebreak-1.toml) Unclosed inline table (at line 3, column 18)
*371/371 (100%) passed*|
+|tomlkit|Not OK: [control/comment-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/control/comment-cr.toml) incorrectly parsed.
Not OK: [control/multi-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/control/multi-cr.toml) incorrectly parsed.
Not OK: [control/rawmulti-cd.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/control/rawmulti-cd.toml) incorrectly parsed.
Not OK: [control/bare-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.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.5.0/tests//invalid/table/append-with-dotted-keys-1.toml) incorrectly parsed.
Not OK: [table/overwrite-array-in-parent.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/table/overwrite-array-in-parent.toml) incorrectly parsed.
Not OK: [table/append-to-array-with-dotted-keys.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/table/append-to-array-with-dotted-keys.toml) incorrectly parsed.
Not OK: [table/append-with-dotted-keys-2.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/table/append-with-dotted-keys-2.toml) incorrectly parsed.
Not OK: [array/extend-defined-aot.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/array/extend-defined-aot.toml) incorrectly parsed.
Not OK: [inline-table/overwrite-09.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/inline-table/overwrite-09.toml) incorrectly parsed.
*361/371 (97.30%) passed*|
+|rtoml|Not OK: [integer/positive-hex.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/integer/positive-hex.toml) incorrectly parsed.
Not OK: [integer/positive-bin.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/integer/positive-bin.toml) incorrectly parsed.
Not OK: [integer/positive-oct.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/integer/positive-oct.toml) incorrectly parsed.
Not OK: [datetime/offset-overflow-minute.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/datetime/offset-overflow-minute.toml) incorrectly parsed.
Not OK: [datetime/offset-overflow-hour.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/datetime/offset-overflow-hour.toml) incorrectly parsed.
Not OK: [control/comment-del.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/control/comment-del.toml) incorrectly parsed.
Not OK: [control/comment-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/control/comment-cr.toml) incorrectly parsed.
Not OK: [control/multi-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/control/multi-cr.toml) incorrectly parsed.
Not OK: [control/rawmulti-cd.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/control/rawmulti-cd.toml) incorrectly parsed.
Not OK: [control/bare-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/control/bare-cr.toml) incorrectly parsed.
*361/371 (97.30%) passed*|
+|qtoml|Not OK: [spec/inline-table-2-0.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/spec/inline-table-2-0.toml) incorrectly parsed.
Not OK: [spec/table-9-1.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/spec/table-9-1.toml) incorrectly parsed.
Not OK: [spec/table-9-0.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/spec/table-9-0.toml) incorrectly parsed.
Not OK: [datetime/offset-overflow-minute.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/datetime/offset-overflow-minute.toml) incorrectly parsed.
Not OK: [control/comment-del.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/control/comment-del.toml) incorrectly parsed.
Not OK: [control/comment-lf.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/control/comment-lf.toml) incorrectly parsed.
Not OK: [control/comment-null.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/control/comment-null.toml) incorrectly parsed.
Not OK: [control/comment-ff.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/control/comment-ff.toml) incorrectly parsed.
Not OK: [control/comment-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/control/comment-cr.toml) incorrectly parsed.
Not OK: [control/multi-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/control/multi-cr.toml) incorrectly parsed.
Not OK: *14 more items incorrectly parsed.*
*347/371 (93.53%) passed*|
+|tomllib|OK: [inline-table/linebreak-1.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/inline-table/linebreak-1.toml) Unclosed inline table (at line 3, column 18)
*371/371 (100%) passed*|
### Compliance with valid tests in python tomllib test data
@@ -279,14 +279,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 (cpython tag 3.11.0)|
+| |Result (cpython tag 3.12.4)|
|-|-----------------------|
-|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*|
+|toml|[apostrophes-in-literal-string.toml](https://github.com/python/cpython/tree/v3.12.4/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.12.4/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.12.4/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.12.4/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*|
+|qtoml|[apostrophes-in-literal-string.toml](https://github.com/python/cpython/tree/v3.12.4/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.12.4/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.12.4/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*|
+|tomllib|OK, *12/12 (100%) passed*|
### Compliance with invalid tests in python tomllib test data
@@ -300,31 +300,14 @@ for invalid toml files here:
parsing error.
-| |Result (cpython tag 3.11.0)|
+| |Result (cpython tag 3.12.4)|
|-|-----------------------|
-|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|7.55s (1000 iterations)|3.11s (1000 iterations)|
-|tomlkit|150.98s (1000 iterations)|2.14s (1000 iterations)|
-|pytomlpp|1.41s (1000 iterations)|0.98s (1000 iterations)|
-|rtoml|0.98s (1000 iterations)|values must be emitted before tables|
-|qtoml|18.39s (1000 iterations)|4.75s (1000 iterations)|
+|toml|Not OK: [invalid-comment-char.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/invalid-comment-char.toml) incorrectly parsed.
Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table-with-subtable.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table-with-subtable.toml) incorrectly parsed.
Not OK: [array/unclosed-empty.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/array/unclosed-empty.toml) incorrectly parsed.
Not OK: [array/file-end-after-val.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/array/file-end-after-val.toml) incorrectly parsed.
Not OK: [array/unclosed-after-item.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/array/unclosed-after-item.toml) incorrectly parsed.
Not OK: [inline-table/overwrite-value-in-inner-table.toml](https://github.com/python/cpython/tree/v3.12.4/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.12.4/Lib/test/test_tomllib/data//invalid/inline-table/unclosed-empty.toml) incorrectly parsed.
*41/50 (82.00%) passed*|
+|tomli/tomli_w|OK: [inline-table/overwrite-implicitly.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/inline-table/overwrite-implicitly.toml) Cannot overwrite a value (at line 1, column 21)
*50/50 (100%) passed*|
+|tomlkit|Not OK: [array-of-tables/overwrite-array-in-parent.toml](https://github.com/python/cpython/tree/v3.12.4/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.12.4/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-aot.toml](https://github.com/python/cpython/tree/v3.12.4/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.12.4/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table-with-subtable.toml) incorrectly parsed.
Not OK: [inline-table/override-val-in-table.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/inline-table/override-val-in-table.toml) incorrectly parsed.
*44/50 (88.00%) passed*|
+|rtoml|Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.12.4/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.12.4/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.12.4/Lib/test/test_tomllib/data//invalid/invalid-comment-char.toml) incorrectly parsed.
Not OK: [table/redefine-2.toml](https://github.com/python/cpython/tree/v3.12.4/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.12.4/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.12.4/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table-with-subtable.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table-with-subtable.toml) incorrectly parsed.
Not OK: [inline-table/overwrite-value-in-inner-table.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/inline-table/overwrite-value-in-inner-table.toml) incorrectly parsed.
Not OK: [inline-table/override-val-with-table.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/inline-table/override-val-with-table.toml) incorrectly parsed.
*41/50 (82.00%) passed*|
+|tomllib|OK: [inline-table/overwrite-implicitly.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/inline-table/overwrite-implicitly.toml) Cannot overwrite a value (at line 1, column 21)
*50/50 (100%) passed*|
### Running speed with data provided by `rtoml`
@@ -337,11 +320,11 @@ provided by `rtoml`
| |Loading speed|Dumping speed|
|-|-|-|
|toml|Excluded (heterogeneous arrays not supported)|Excluded (heterogeneous arrays not supported)|
-|tomli/tomli_w|1.56s (1000 iterations)|0.55s (1000 iterations)|
-|tomlkit|29.90s (1000 iterations)|0.75s (1000 iterations)|
-|pytomlpp|0.24s (1000 iterations)|0.19s (1000 iterations)|
-|rtoml|0.19s (1000 iterations)|0.05s (1000 iterations)|
-|qtoml|4.57s (1000 iterations)|1.26s (1000 iterations)|
+|tomli/tomli_w|2.14s (5000 iterations)|0.74s (5000 iterations)|
+|tomlkit|40.28s (5000 iterations)|1.01s (5000 iterations)|
+|rtoml|0.38s (5000 iterations)|0.09s (5000 iterations)|
+|qtoml|5.04s (5000 iterations)|1.92s (5000 iterations)|
+|tomllib|2.05s (5000 iterations)|Dumping not supported|
### Running speed with data provided by `tomli`
@@ -354,20 +337,19 @@ provided by `tomli`
| |Loading speed|Dumping speed|
|-|-|-|
|toml|Excluded (heterogeneous arrays not supported)|Excluded (heterogeneous arrays not supported)|
-|tomli/tomli_w|1.11s (1000 iterations)|0.38s (1000 iterations)|
-|tomlkit|19.39s (1000 iterations)|0.37s (1000 iterations)|
-|pytomlpp|0.25s (1000 iterations)|0.18s (1000 iterations)|
-|rtoml|0.20s (1000 iterations)|0.11s (1000 iterations)|
-|qtoml|3.61s (1000 iterations)|0.94s (1000 iterations)|
+|tomli/tomli_w|1.40s (5000 iterations)|0.46s (5000 iterations)|
+|tomlkit|26.10s (5000 iterations)|0.52s (5000 iterations)|
+|rtoml|0.32s (5000 iterations)|0.17s (5000 iterations)|
+|qtoml|3.72s (5000 iterations)|1.33s (5000 iterations)|
+|tomllib|1.50s (5000 iterations)|Dumping not supported|
## Other reports
+- [Tests with `toml-test` v1.4.0](./reports/with_toml-test_v1.4.0.md)
+- [Tests with `toml-test` v1.3.0](./reports/with_toml-test_v1.3.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 2d04b81..0ba2ffc 100644
--- a/README.raw.md
+++ b/README.raw.md
@@ -10,10 +10,9 @@ See also: [toml-lang](https://toml.io/en/) and [PEP 680](https://www.python.org/
## Other reports
+- [Tests with `toml-test` v1.4.0](./reports/with_toml-test_v1.4.0.md)
+- [Tests with `toml-test` v1.3.0](./reports/with_toml-test_v1.3.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 b5fdaf5..3e84392 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -1,4 +1,18 @@
-# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand.
+# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand.
+
+[[package]]
+name = "argx"
+version = "0.2.10"
+description = "Super-charged argparse for python"
+optional = false
+python-versions = ">=3.7,<4.0"
+files = [
+ {file = "argx-0.2.10-py3-none-any.whl", hash = "sha256:85c6b150c5ec86dd5aefaca260dcf8bd8445a3c6d174eaaacb5835638d207083"},
+ {file = "argx-0.2.10.tar.gz", hash = "sha256:72ab5511163870eeb589c007fb11cb2c5cc91b9faa553ed45e7404f6c1e7a238"},
+]
+
+[package.dependencies]
+python-simpleconf = ">=0.6,<0.7"
[[package]]
name = "attrs"
@@ -55,13 +69,13 @@ files = [
[[package]]
name = "diot"
-version = "0.1.8"
+version = "0.2.3"
description = "Python dictionary with dot notation."
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"},
+ {file = "diot-0.2.3-py3-none-any.whl", hash = "sha256:defd4556bd961327cbfd497f63fcb9d0d79a649bbc8932f26d94dd25a7832e1c"},
+ {file = "diot-0.2.3.tar.gz", hash = "sha256:0b8ccbe3813acda67665ea9025d4eea7f73b2df4e2ab16c5c3f1da8b0dbba4cf"},
]
[package.dependencies]
@@ -69,22 +83,22 @@ inflection = ">=0.5,<0.6"
[[package]]
name = "importlib-metadata"
-version = "5.2.0"
+version = "7.2.1"
description = "Read metadata from Python packages"
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
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"},
+ {file = "importlib_metadata-7.2.1-py3-none-any.whl", hash = "sha256:ffef94b0b66046dd8ea2d619b701fe978d9264d38f3998bc4c27ec3b146a87c8"},
+ {file = "importlib_metadata-7.2.1.tar.gz", hash = "sha256:509ecb2ab77071db5137c655e24ceb3eee66e7bbc6574165d0d114d9fc4bbe68"},
]
[package.dependencies]
zipp = ">=0.5"
[package.extras]
-docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"]
+doc = ["furo", "jaraco.packaging (>=9.3)", "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)"]
+test = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-perf (>=0.9.2)", "pytest-ruff (>=0.2.1)"]
[[package]]
name = "inflection"
@@ -97,80 +111,15 @@ files = [
{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.16.1"
-description = "Pygments is a syntax highlighting package written in Python."
-optional = false
-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.4"
-description = "Powerful parameter processing."
-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 = ">=13,<14"
-
[[package]]
name = "python-dateutil"
-version = "2.8.2"
+version = "2.9.0.post0"
description = "Extensions to the standard Python datetime module"
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"},
+ {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"},
+ {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"},
]
[package.dependencies]
@@ -178,23 +127,23 @@ six = ">=1.5"
[[package]]
name = "python-simpleconf"
-version = "0.5.7"
+version = "0.6.0"
description = "Simple configuration management with python."
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"},
+ {file = "python_simpleconf-0.6.0-py3-none-any.whl", hash = "sha256:40e73fbd60d84ff45d22fcd8f7e2ade5fcca65559f8d9865e7750d8bcfadd209"},
+ {file = "python_simpleconf-0.6.0.tar.gz", hash = "sha256:06c29e0c08e22a41024028c46cd845bdfe3cbba402730fa65fb007fa89315801"},
]
[package.dependencies]
-diot = ">=0.1,<0.2"
+diot = ">=0.2.1,<0.3.0"
[package.extras]
-all = ["iniconfig (>=1.1,<2.0)", "python-dotenv (>=0.20,<0.21)", "pyyaml (>=6,<7)", "rtoml (>=0.8,<0.9)"]
-env = ["python-dotenv (>=0.20,<0.21)"]
-ini = ["iniconfig (>=1.1,<2.0)"]
-toml = ["rtoml (>=0.8,<0.9)"]
+all = ["iniconfig (>=2.0,<3.0)", "python-dotenv (>=0.21,<0.22)", "pyyaml (>=6,<7)", "rtoml (>=0.8,<0.9)", "tomli (>=2.0,<3.0)"]
+env = ["python-dotenv (>=0.21,<0.22)"]
+ini = ["iniconfig (>=2.0,<3.0)"]
+toml = ["rtoml (>=0.8,<0.9)", "tomli (>=2.0,<3.0)"]
yaml = ["pyyaml (>=6,<7)"]
[[package]]
@@ -280,177 +229,162 @@ click = ">=7.0,<9.0"
[[package]]
name = "regex"
-version = "2022.10.31"
+version = "2024.5.15"
description = "Alternative regular expression module, to replace re."
optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.8"
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"},
- {file = "regex-2022.10.31-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d03fe67b2325cb3f09be029fd5da8df9e6974f0cde2c2ac6a79d2634e791dd57"},
- {file = "regex-2022.10.31-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9d0b68ac1743964755ae2d89772c7e6fb0118acd4d0b7464eaf3921c6b49dd4"},
- {file = "regex-2022.10.31-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a45b6514861916c429e6059a55cf7db74670eaed2052a648e3e4d04f070e001"},
- {file = "regex-2022.10.31-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8b0886885f7323beea6f552c28bff62cbe0983b9fbb94126531693ea6c5ebb90"},
- {file = "regex-2022.10.31-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5aefb84a301327ad115e9d346c8e2760009131d9d4b4c6b213648d02e2abe144"},
- {file = "regex-2022.10.31-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:702d8fc6f25bbf412ee706bd73019da5e44a8400861dfff7ff31eb5b4a1276dc"},
- {file = "regex-2022.10.31-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:a3c1ebd4ed8e76e886507c9eddb1a891673686c813adf889b864a17fafcf6d66"},
- {file = "regex-2022.10.31-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:50921c140561d3db2ab9f5b11c5184846cde686bb5a9dc64cae442926e86f3af"},
- {file = "regex-2022.10.31-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:7db345956ecce0c99b97b042b4ca7326feeec6b75facd8390af73b18e2650ffc"},
- {file = "regex-2022.10.31-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:763b64853b0a8f4f9cfb41a76a4a85a9bcda7fdda5cb057016e7706fde928e66"},
- {file = "regex-2022.10.31-cp310-cp310-win32.whl", hash = "sha256:44136355e2f5e06bf6b23d337a75386371ba742ffa771440b85bed367c1318d1"},
- {file = "regex-2022.10.31-cp310-cp310-win_amd64.whl", hash = "sha256:bfff48c7bd23c6e2aec6454aaf6edc44444b229e94743b34bdcdda2e35126cf5"},
- {file = "regex-2022.10.31-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4b4b1fe58cd102d75ef0552cf17242705ce0759f9695334a56644ad2d83903fe"},
- {file = "regex-2022.10.31-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:542e3e306d1669b25936b64917285cdffcd4f5c6f0247636fec037187bd93542"},
- {file = "regex-2022.10.31-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c27cc1e4b197092e50ddbf0118c788d9977f3f8f35bfbbd3e76c1846a3443df7"},
- {file = "regex-2022.10.31-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b8e38472739028e5f2c3a4aded0ab7eadc447f0d84f310c7a8bb697ec417229e"},
- {file = "regex-2022.10.31-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:76c598ca73ec73a2f568e2a72ba46c3b6c8690ad9a07092b18e48ceb936e9f0c"},
- {file = "regex-2022.10.31-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c28d3309ebd6d6b2cf82969b5179bed5fefe6142c70f354ece94324fa11bf6a1"},
- {file = "regex-2022.10.31-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9af69f6746120998cd9c355e9c3c6aec7dff70d47247188feb4f829502be8ab4"},
- {file = "regex-2022.10.31-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a5f9505efd574d1e5b4a76ac9dd92a12acb2b309551e9aa874c13c11caefbe4f"},
- {file = "regex-2022.10.31-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:5ff525698de226c0ca743bfa71fc6b378cda2ddcf0d22d7c37b1cc925c9650a5"},
- {file = "regex-2022.10.31-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:4fe7fda2fe7c8890d454f2cbc91d6c01baf206fbc96d89a80241a02985118c0c"},
- {file = "regex-2022.10.31-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:2cdc55ca07b4e70dda898d2ab7150ecf17c990076d3acd7a5f3b25cb23a69f1c"},
- {file = "regex-2022.10.31-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:44a6c2f6374e0033873e9ed577a54a3602b4f609867794c1a3ebba65e4c93ee7"},
- {file = "regex-2022.10.31-cp311-cp311-win32.whl", hash = "sha256:d8716f82502997b3d0895d1c64c3b834181b1eaca28f3f6336a71777e437c2af"},
- {file = "regex-2022.10.31-cp311-cp311-win_amd64.whl", hash = "sha256:61edbca89aa3f5ef7ecac8c23d975fe7261c12665f1d90a6b1af527bba86ce61"},
- {file = "regex-2022.10.31-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:0a069c8483466806ab94ea9068c34b200b8bfc66b6762f45a831c4baaa9e8cdd"},
- {file = "regex-2022.10.31-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d26166acf62f731f50bdd885b04b38828436d74e8e362bfcb8df221d868b5d9b"},
- {file = "regex-2022.10.31-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ac741bf78b9bb432e2d314439275235f41656e189856b11fb4e774d9f7246d81"},
- {file = "regex-2022.10.31-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75f591b2055523fc02a4bbe598aa867df9e953255f0b7f7715d2a36a9c30065c"},
- {file = "regex-2022.10.31-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b30bddd61d2a3261f025ad0f9ee2586988c6a00c780a2fb0a92cea2aa702c54"},
- {file = "regex-2022.10.31-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ef4163770525257876f10e8ece1cf25b71468316f61451ded1a6f44273eedeb5"},
- {file = "regex-2022.10.31-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:7b280948d00bd3973c1998f92e22aa3ecb76682e3a4255f33e1020bd32adf443"},
- {file = "regex-2022.10.31-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:d0213671691e341f6849bf33cd9fad21f7b1cb88b89e024f33370733fec58742"},
- {file = "regex-2022.10.31-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:22e7ebc231d28393dfdc19b185d97e14a0f178bedd78e85aad660e93b646604e"},
- {file = "regex-2022.10.31-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:8ad241da7fac963d7573cc67a064c57c58766b62a9a20c452ca1f21050868dfa"},
- {file = "regex-2022.10.31-cp36-cp36m-musllinux_1_1_s390x.whl", hash = "sha256:586b36ebda81e6c1a9c5a5d0bfdc236399ba6595e1397842fd4a45648c30f35e"},
- {file = "regex-2022.10.31-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:0653d012b3bf45f194e5e6a41df9258811ac8fc395579fa82958a8b76286bea4"},
- {file = "regex-2022.10.31-cp36-cp36m-win32.whl", hash = "sha256:144486e029793a733e43b2e37df16a16df4ceb62102636ff3db6033994711066"},
- {file = "regex-2022.10.31-cp36-cp36m-win_amd64.whl", hash = "sha256:c14b63c9d7bab795d17392c7c1f9aaabbffd4cf4387725a0ac69109fb3b550c6"},
- {file = "regex-2022.10.31-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:4cac3405d8dda8bc6ed499557625585544dd5cbf32072dcc72b5a176cb1271c8"},
- {file = "regex-2022.10.31-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23cbb932cc53a86ebde0fb72e7e645f9a5eec1a5af7aa9ce333e46286caef783"},
- {file = "regex-2022.10.31-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:74bcab50a13960f2a610cdcd066e25f1fd59e23b69637c92ad470784a51b1347"},
- {file = "regex-2022.10.31-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:78d680ef3e4d405f36f0d6d1ea54e740366f061645930072d39bca16a10d8c93"},
- {file = "regex-2022.10.31-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce6910b56b700bea7be82c54ddf2e0ed792a577dfaa4a76b9af07d550af435c6"},
- {file = "regex-2022.10.31-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:659175b2144d199560d99a8d13b2228b85e6019b6e09e556209dfb8c37b78a11"},
- {file = "regex-2022.10.31-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1ddf14031a3882f684b8642cb74eea3af93a2be68893901b2b387c5fd92a03ec"},
- {file = "regex-2022.10.31-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b683e5fd7f74fb66e89a1ed16076dbab3f8e9f34c18b1979ded614fe10cdc4d9"},
- {file = "regex-2022.10.31-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2bde29cc44fa81c0a0c8686992c3080b37c488df167a371500b2a43ce9f026d1"},
- {file = "regex-2022.10.31-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:4919899577ba37f505aaebdf6e7dc812d55e8f097331312db7f1aab18767cce8"},
- {file = "regex-2022.10.31-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:9c94f7cc91ab16b36ba5ce476f1904c91d6c92441f01cd61a8e2729442d6fcf5"},
- {file = "regex-2022.10.31-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ae1e96785696b543394a4e3f15f3f225d44f3c55dafe3f206493031419fedf95"},
- {file = "regex-2022.10.31-cp37-cp37m-win32.whl", hash = "sha256:c670f4773f2f6f1957ff8a3962c7dd12e4be54d05839b216cb7fd70b5a1df394"},
- {file = "regex-2022.10.31-cp37-cp37m-win_amd64.whl", hash = "sha256:8e0caeff18b96ea90fc0eb6e3bdb2b10ab5b01a95128dfeccb64a7238decf5f0"},
- {file = "regex-2022.10.31-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:131d4be09bea7ce2577f9623e415cab287a3c8e0624f778c1d955ec7c281bd4d"},
- {file = "regex-2022.10.31-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:e613a98ead2005c4ce037c7b061f2409a1a4e45099edb0ef3200ee26ed2a69a8"},
- {file = "regex-2022.10.31-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:052b670fafbe30966bbe5d025e90b2a491f85dfe5b2583a163b5e60a85a321ad"},
- {file = "regex-2022.10.31-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa62a07ac93b7cb6b7d0389d8ef57ffc321d78f60c037b19dfa78d6b17c928ee"},
- {file = "regex-2022.10.31-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5352bea8a8f84b89d45ccc503f390a6be77917932b1c98c4cdc3565137acc714"},
- {file = "regex-2022.10.31-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20f61c9944f0be2dc2b75689ba409938c14876c19d02f7585af4460b6a21403e"},
- {file = "regex-2022.10.31-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:29c04741b9ae13d1e94cf93fca257730b97ce6ea64cfe1eba11cf9ac4e85afb6"},
- {file = "regex-2022.10.31-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:543883e3496c8b6d58bd036c99486c3c8387c2fc01f7a342b760c1ea3158a318"},
- {file = "regex-2022.10.31-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b7a8b43ee64ca8f4befa2bea4083f7c52c92864d8518244bfa6e88c751fa8fff"},
- {file = "regex-2022.10.31-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:6a9a19bea8495bb419dc5d38c4519567781cd8d571c72efc6aa959473d10221a"},
- {file = "regex-2022.10.31-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:6ffd55b5aedc6f25fd8d9f905c9376ca44fcf768673ffb9d160dd6f409bfda73"},
- {file = "regex-2022.10.31-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:4bdd56ee719a8f751cf5a593476a441c4e56c9b64dc1f0f30902858c4ef8771d"},
- {file = "regex-2022.10.31-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8ca88da1bd78990b536c4a7765f719803eb4f8f9971cc22d6ca965c10a7f2c4c"},
- {file = "regex-2022.10.31-cp38-cp38-win32.whl", hash = "sha256:5a260758454580f11dd8743fa98319bb046037dfab4f7828008909d0aa5292bc"},
- {file = "regex-2022.10.31-cp38-cp38-win_amd64.whl", hash = "sha256:5e6a5567078b3eaed93558842346c9d678e116ab0135e22eb72db8325e90b453"},
- {file = "regex-2022.10.31-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5217c25229b6a85049416a5c1e6451e9060a1edcf988641e309dbe3ab26d3e49"},
- {file = "regex-2022.10.31-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4bf41b8b0a80708f7e0384519795e80dcb44d7199a35d52c15cc674d10b3081b"},
- {file = "regex-2022.10.31-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cf0da36a212978be2c2e2e2d04bdff46f850108fccc1851332bcae51c8907cc"},
- {file = "regex-2022.10.31-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d403d781b0e06d2922435ce3b8d2376579f0c217ae491e273bab8d092727d244"},
- {file = "regex-2022.10.31-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a37d51fa9a00d265cf73f3de3930fa9c41548177ba4f0faf76e61d512c774690"},
- {file = "regex-2022.10.31-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4f781ffedd17b0b834c8731b75cce2639d5a8afe961c1e58ee7f1f20b3af185"},
- {file = "regex-2022.10.31-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d243b36fbf3d73c25e48014961e83c19c9cc92530516ce3c43050ea6276a2ab7"},
- {file = "regex-2022.10.31-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:370f6e97d02bf2dd20d7468ce4f38e173a124e769762d00beadec3bc2f4b3bc4"},
- {file = "regex-2022.10.31-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:597f899f4ed42a38df7b0e46714880fb4e19a25c2f66e5c908805466721760f5"},
- {file = "regex-2022.10.31-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7dbdce0c534bbf52274b94768b3498abdf675a691fec5f751b6057b3030f34c1"},
- {file = "regex-2022.10.31-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:22960019a842777a9fa5134c2364efaed5fbf9610ddc5c904bd3a400973b0eb8"},
- {file = "regex-2022.10.31-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:7f5a3ffc731494f1a57bd91c47dc483a1e10048131ffb52d901bfe2beb6102e8"},
- {file = "regex-2022.10.31-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7ef6b5942e6bfc5706301a18a62300c60db9af7f6368042227ccb7eeb22d0892"},
- {file = "regex-2022.10.31-cp39-cp39-win32.whl", hash = "sha256:395161bbdbd04a8333b9ff9763a05e9ceb4fe210e3c7690f5e68cedd3d65d8e1"},
- {file = "regex-2022.10.31-cp39-cp39-win_amd64.whl", hash = "sha256:957403a978e10fb3ca42572a23e6f7badff39aa1ce2f4ade68ee452dc6807692"},
- {file = "regex-2022.10.31.tar.gz", hash = "sha256:a3a98921da9a1bf8457aeee6a551948a83601689e5ecdd736894ea9bbec77e83"},
+ {file = "regex-2024.5.15-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a81e3cfbae20378d75185171587cbf756015ccb14840702944f014e0d93ea09f"},
+ {file = "regex-2024.5.15-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7b59138b219ffa8979013be7bc85bb60c6f7b7575df3d56dc1e403a438c7a3f6"},
+ {file = "regex-2024.5.15-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a0bd000c6e266927cb7a1bc39d55be95c4b4f65c5be53e659537537e019232b1"},
+ {file = "regex-2024.5.15-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5eaa7ddaf517aa095fa8da0b5015c44d03da83f5bd49c87961e3c997daed0de7"},
+ {file = "regex-2024.5.15-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ba68168daedb2c0bab7fd7e00ced5ba90aebf91024dea3c88ad5063c2a562cca"},
+ {file = "regex-2024.5.15-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6e8d717bca3a6e2064fc3a08df5cbe366369f4b052dcd21b7416e6d71620dca1"},
+ {file = "regex-2024.5.15-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1337b7dbef9b2f71121cdbf1e97e40de33ff114801263b275aafd75303bd62b5"},
+ {file = "regex-2024.5.15-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f9ebd0a36102fcad2f03696e8af4ae682793a5d30b46c647eaf280d6cfb32796"},
+ {file = "regex-2024.5.15-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:9efa1a32ad3a3ea112224897cdaeb6aa00381627f567179c0314f7b65d354c62"},
+ {file = "regex-2024.5.15-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:1595f2d10dff3d805e054ebdc41c124753631b6a471b976963c7b28543cf13b0"},
+ {file = "regex-2024.5.15-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:b802512f3e1f480f41ab5f2cfc0e2f761f08a1f41092d6718868082fc0d27143"},
+ {file = "regex-2024.5.15-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:a0981022dccabca811e8171f913de05720590c915b033b7e601f35ce4ea7019f"},
+ {file = "regex-2024.5.15-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:19068a6a79cf99a19ccefa44610491e9ca02c2be3305c7760d3831d38a467a6f"},
+ {file = "regex-2024.5.15-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:1b5269484f6126eee5e687785e83c6b60aad7663dafe842b34691157e5083e53"},
+ {file = "regex-2024.5.15-cp310-cp310-win32.whl", hash = "sha256:ada150c5adfa8fbcbf321c30c751dc67d2f12f15bd183ffe4ec7cde351d945b3"},
+ {file = "regex-2024.5.15-cp310-cp310-win_amd64.whl", hash = "sha256:ac394ff680fc46b97487941f5e6ae49a9f30ea41c6c6804832063f14b2a5a145"},
+ {file = "regex-2024.5.15-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f5b1dff3ad008dccf18e652283f5e5339d70bf8ba7c98bf848ac33db10f7bc7a"},
+ {file = "regex-2024.5.15-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c6a2b494a76983df8e3d3feea9b9ffdd558b247e60b92f877f93a1ff43d26656"},
+ {file = "regex-2024.5.15-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a32b96f15c8ab2e7d27655969a23895eb799de3665fa94349f3b2fbfd547236f"},
+ {file = "regex-2024.5.15-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:10002e86e6068d9e1c91eae8295ef690f02f913c57db120b58fdd35a6bb1af35"},
+ {file = "regex-2024.5.15-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ec54d5afa89c19c6dd8541a133be51ee1017a38b412b1321ccb8d6ddbeb4cf7d"},
+ {file = "regex-2024.5.15-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:10e4ce0dca9ae7a66e6089bb29355d4432caed736acae36fef0fdd7879f0b0cb"},
+ {file = "regex-2024.5.15-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3e507ff1e74373c4d3038195fdd2af30d297b4f0950eeda6f515ae3d84a1770f"},
+ {file = "regex-2024.5.15-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d1f059a4d795e646e1c37665b9d06062c62d0e8cc3c511fe01315973a6542e40"},
+ {file = "regex-2024.5.15-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0721931ad5fe0dda45d07f9820b90b2148ccdd8e45bb9e9b42a146cb4f695649"},
+ {file = "regex-2024.5.15-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:833616ddc75ad595dee848ad984d067f2f31be645d603e4d158bba656bbf516c"},
+ {file = "regex-2024.5.15-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:287eb7f54fc81546346207c533ad3c2c51a8d61075127d7f6d79aaf96cdee890"},
+ {file = "regex-2024.5.15-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:19dfb1c504781a136a80ecd1fff9f16dddf5bb43cec6871778c8a907a085bb3d"},
+ {file = "regex-2024.5.15-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:119af6e56dce35e8dfb5222573b50c89e5508d94d55713c75126b753f834de68"},
+ {file = "regex-2024.5.15-cp311-cp311-win32.whl", hash = "sha256:1c1c174d6ec38d6c8a7504087358ce9213d4332f6293a94fbf5249992ba54efa"},
+ {file = "regex-2024.5.15-cp311-cp311-win_amd64.whl", hash = "sha256:9e717956dcfd656f5055cc70996ee2cc82ac5149517fc8e1b60261b907740201"},
+ {file = "regex-2024.5.15-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:632b01153e5248c134007209b5c6348a544ce96c46005d8456de1d552455b014"},
+ {file = "regex-2024.5.15-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e64198f6b856d48192bf921421fdd8ad8eb35e179086e99e99f711957ffedd6e"},
+ {file = "regex-2024.5.15-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:68811ab14087b2f6e0fc0c2bae9ad689ea3584cad6917fc57be6a48bbd012c49"},
+ {file = "regex-2024.5.15-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8ec0c2fea1e886a19c3bee0cd19d862b3aa75dcdfb42ebe8ed30708df64687a"},
+ {file = "regex-2024.5.15-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d0c0c0003c10f54a591d220997dd27d953cd9ccc1a7294b40a4be5312be8797b"},
+ {file = "regex-2024.5.15-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2431b9e263af1953c55abbd3e2efca67ca80a3de8a0437cb58e2421f8184717a"},
+ {file = "regex-2024.5.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a605586358893b483976cffc1723fb0f83e526e8f14c6e6614e75919d9862cf"},
+ {file = "regex-2024.5.15-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:391d7f7f1e409d192dba8bcd42d3e4cf9e598f3979cdaed6ab11288da88cb9f2"},
+ {file = "regex-2024.5.15-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9ff11639a8d98969c863d4617595eb5425fd12f7c5ef6621a4b74b71ed8726d5"},
+ {file = "regex-2024.5.15-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4eee78a04e6c67e8391edd4dad3279828dd66ac4b79570ec998e2155d2e59fd5"},
+ {file = "regex-2024.5.15-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:8fe45aa3f4aa57faabbc9cb46a93363edd6197cbc43523daea044e9ff2fea83e"},
+ {file = "regex-2024.5.15-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:d0a3d8d6acf0c78a1fff0e210d224b821081330b8524e3e2bc5a68ef6ab5803d"},
+ {file = "regex-2024.5.15-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c486b4106066d502495b3025a0a7251bf37ea9540433940a23419461ab9f2a80"},
+ {file = "regex-2024.5.15-cp312-cp312-win32.whl", hash = "sha256:c49e15eac7c149f3670b3e27f1f28a2c1ddeccd3a2812cba953e01be2ab9b5fe"},
+ {file = "regex-2024.5.15-cp312-cp312-win_amd64.whl", hash = "sha256:673b5a6da4557b975c6c90198588181029c60793835ce02f497ea817ff647cb2"},
+ {file = "regex-2024.5.15-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:87e2a9c29e672fc65523fb47a90d429b70ef72b901b4e4b1bd42387caf0d6835"},
+ {file = "regex-2024.5.15-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c3bea0ba8b73b71b37ac833a7f3fd53825924165da6a924aec78c13032f20850"},
+ {file = "regex-2024.5.15-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:bfc4f82cabe54f1e7f206fd3d30fda143f84a63fe7d64a81558d6e5f2e5aaba9"},
+ {file = "regex-2024.5.15-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e5bb9425fe881d578aeca0b2b4b3d314ec88738706f66f219c194d67179337cb"},
+ {file = "regex-2024.5.15-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:64c65783e96e563103d641760664125e91bd85d8e49566ee560ded4da0d3e704"},
+ {file = "regex-2024.5.15-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cf2430df4148b08fb4324b848672514b1385ae3807651f3567871f130a728cc3"},
+ {file = "regex-2024.5.15-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5397de3219a8b08ae9540c48f602996aa6b0b65d5a61683e233af8605c42b0f2"},
+ {file = "regex-2024.5.15-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:455705d34b4154a80ead722f4f185b04c4237e8e8e33f265cd0798d0e44825fa"},
+ {file = "regex-2024.5.15-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:b2b6f1b3bb6f640c1a92be3bbfbcb18657b125b99ecf141fb3310b5282c7d4ed"},
+ {file = "regex-2024.5.15-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:3ad070b823ca5890cab606c940522d05d3d22395d432f4aaaf9d5b1653e47ced"},
+ {file = "regex-2024.5.15-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:5b5467acbfc153847d5adb21e21e29847bcb5870e65c94c9206d20eb4e99a384"},
+ {file = "regex-2024.5.15-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:e6662686aeb633ad65be2a42b4cb00178b3fbf7b91878f9446075c404ada552f"},
+ {file = "regex-2024.5.15-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:2b4c884767504c0e2401babe8b5b7aea9148680d2e157fa28f01529d1f7fcf67"},
+ {file = "regex-2024.5.15-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:3cd7874d57f13bf70078f1ff02b8b0aa48d5b9ed25fc48547516c6aba36f5741"},
+ {file = "regex-2024.5.15-cp38-cp38-win32.whl", hash = "sha256:e4682f5ba31f475d58884045c1a97a860a007d44938c4c0895f41d64481edbc9"},
+ {file = "regex-2024.5.15-cp38-cp38-win_amd64.whl", hash = "sha256:d99ceffa25ac45d150e30bd9ed14ec6039f2aad0ffa6bb87a5936f5782fc1569"},
+ {file = "regex-2024.5.15-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:13cdaf31bed30a1e1c2453ef6015aa0983e1366fad2667657dbcac7b02f67133"},
+ {file = "regex-2024.5.15-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:cac27dcaa821ca271855a32188aa61d12decb6fe45ffe3e722401fe61e323cd1"},
+ {file = "regex-2024.5.15-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7dbe2467273b875ea2de38ded4eba86cbcbc9a1a6d0aa11dcf7bd2e67859c435"},
+ {file = "regex-2024.5.15-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:64f18a9a3513a99c4bef0e3efd4c4a5b11228b48aa80743be822b71e132ae4f5"},
+ {file = "regex-2024.5.15-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d347a741ea871c2e278fde6c48f85136c96b8659b632fb57a7d1ce1872547600"},
+ {file = "regex-2024.5.15-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1878b8301ed011704aea4c806a3cadbd76f84dece1ec09cc9e4dc934cfa5d4da"},
+ {file = "regex-2024.5.15-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4babf07ad476aaf7830d77000874d7611704a7fcf68c9c2ad151f5d94ae4bfc4"},
+ {file = "regex-2024.5.15-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:35cb514e137cb3488bce23352af3e12fb0dbedd1ee6e60da053c69fb1b29cc6c"},
+ {file = "regex-2024.5.15-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:cdd09d47c0b2efee9378679f8510ee6955d329424c659ab3c5e3a6edea696294"},
+ {file = "regex-2024.5.15-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:72d7a99cd6b8f958e85fc6ca5b37c4303294954eac1376535b03c2a43eb72629"},
+ {file = "regex-2024.5.15-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:a094801d379ab20c2135529948cb84d417a2169b9bdceda2a36f5f10977ebc16"},
+ {file = "regex-2024.5.15-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:c0c18345010870e58238790a6779a1219b4d97bd2e77e1140e8ee5d14df071aa"},
+ {file = "regex-2024.5.15-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:16093f563098448ff6b1fa68170e4acbef94e6b6a4e25e10eae8598bb1694b5d"},
+ {file = "regex-2024.5.15-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:e38a7d4e8f633a33b4c7350fbd8bad3b70bf81439ac67ac38916c4a86b465456"},
+ {file = "regex-2024.5.15-cp39-cp39-win32.whl", hash = "sha256:71a455a3c584a88f654b64feccc1e25876066c4f5ef26cd6dd711308aa538694"},
+ {file = "regex-2024.5.15-cp39-cp39-win_amd64.whl", hash = "sha256:cab12877a9bdafde5500206d1020a584355a97884dfd388af3699e9137bf7388"},
+ {file = "regex-2024.5.15.tar.gz", hash = "sha256:d3ee02d9e5f482cc8309134a91eeaacbdd2261ba111b0fef3748eeb4913e6a2c"},
]
-[[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"},
-]
-
-[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"
+version = "0.11.0"
description = ""
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
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"},
- {file = "rtoml-0.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:38ed7487251aed9f118949d49e0edff2ace2f979ef7d23adf174bcb30983627a"},
- {file = "rtoml-0.9.0-cp310-cp310-manylinux_2_24_armv7l.whl", hash = "sha256:a500481c61b0babb438b1d4c0a295ba60a0c890688431db980e3209d7c093045"},
- {file = "rtoml-0.9.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9826a25e7c274fbcfa1518f1e1c99104f10ba553b34be38dcd31b6c9d5207e47"},
- {file = "rtoml-0.9.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:2dff4812186dff9381459d6a962e8dfd909ea8cb03f98ba28aa486b9bf8d72f8"},
- {file = "rtoml-0.9.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7a6088f6e77817389720ed8852ec2493b4524c96bd25f3aafe217e2a6cb29f7d"},
- {file = "rtoml-0.9.0-cp310-none-win32.whl", hash = "sha256:38362ab6123a28e2f1f88995f286b999fc6f7c27896f402ee293de2a090b305c"},
- {file = "rtoml-0.9.0-cp310-none-win_amd64.whl", hash = "sha256:f920b97df9b33c18d3857dbd4af234e2a7f3372de3cfb4c0d8514e66ffd4dfdb"},
- {file = "rtoml-0.9.0-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:91a25c5ab2a518b5126a52300d1a6ced0e363510e9b6e64cb36b19275083b441"},
- {file = "rtoml-0.9.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:85d8abf6eb1da262a26f15d97de6ec83960172095e627dadf1ee7a32b70a367b"},
- {file = "rtoml-0.9.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:363d41f1f69d415ced4c6be8c5feb6680c2330406ca2f0ba8ea04318857b8ca3"},
- {file = "rtoml-0.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e31bec5a3d7b56966130ba2a68be7bef608822063ff8b9a6362c5001a2a4c82b"},
- {file = "rtoml-0.9.0-cp311-cp311-manylinux_2_24_armv7l.whl", hash = "sha256:9eb42c8af0300c0e3c11057a7ace894247f3f9d265b10bedde72e1008bf09634"},
- {file = "rtoml-0.9.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:604782f36701d8b7df9b7f928e054e2a62dde828860e828377b2c8db550afb28"},
- {file = "rtoml-0.9.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:13dc836d84fe987ddc00b6ec8683002eb53ffa59dc13d5a9ef51a1409539bea7"},
- {file = "rtoml-0.9.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:2f4e7841ab7cbdfaa15cbc5f0b049b154a68644fa39fc27a1f72a0dc23012e40"},
- {file = "rtoml-0.9.0-cp311-none-win32.whl", hash = "sha256:9ca09643e9ffdebcbb27a095ffca86e32c3fb0a63c8788c5d40890065962eb65"},
- {file = "rtoml-0.9.0-cp311-none-win_amd64.whl", hash = "sha256:5c91c99f5646e81c677133b3740a8e6b25cbe6fbf33fefd749c85e031f7716b9"},
- {file = "rtoml-0.9.0-cp37-cp37m-macosx_10_7_x86_64.whl", hash = "sha256:9c3f0b1b6c70e7d9ef29b3b2412412f2be10b333da3aeac74c6f69961b955272"},
- {file = "rtoml-0.9.0-cp37-cp37m-macosx_11_0_arm64.whl", hash = "sha256:37c7d3903d818b2770f2ad424b1aee3c47533f1cdccb037b2a51e47a89d2de30"},
- {file = "rtoml-0.9.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a79400cde1a6d75e6f36498a3b6d86b6713bf757989ab304c1c3e6a610d0665"},
- {file = "rtoml-0.9.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb48915dc12f18dd680772f5c1f248197945ce639ca4a0897ee01878ada65411"},
- {file = "rtoml-0.9.0-cp37-cp37m-manylinux_2_24_armv7l.whl", hash = "sha256:cccac32cf08749fcf9e905e41c8cb58348fa4110459b09f49245a40553514871"},
- {file = "rtoml-0.9.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ba96ee3afbc2cdfe90833f9f7d789aef7d9be1911ec0cd748c786c0b8cda0b98"},
- {file = "rtoml-0.9.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:a78d504d0d6598655f5d01eabe2df6d458ff2f9463a3c6f85a3e96a57cb61631"},
- {file = "rtoml-0.9.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e68c3a7a7388ae2dd586e3a20474908bc889fbe77809f06d46eec37c0c4b96ff"},
- {file = "rtoml-0.9.0-cp37-none-win32.whl", hash = "sha256:9fc3652e963150ace043c6797b5053c8a03341c1bd813c6d9ad7403bfa5d1138"},
- {file = "rtoml-0.9.0-cp37-none-win_amd64.whl", hash = "sha256:13ff304eb8e9be8702f8f9c7c561e5ebffcbb4e830d4ae3f2f9471d1c8a656fa"},
- {file = "rtoml-0.9.0-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:b99ec14d5bd8fc62a94acf1ce328d11cda1934f736d40baefdbb212333f25250"},
- {file = "rtoml-0.9.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:dc02f77bc81d1ade12bd983d46a1aa1ed4bc10418de0ac81267928b49f73cc9b"},
- {file = "rtoml-0.9.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba38c4efcf639ec5df271c6debd6953a53be62087fff48bd7cd239553e01d66a"},
- {file = "rtoml-0.9.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1f2c8aa5c07c1b8886e27d34332e5be7e3b658d6a8d5f55227ff1e4014ac87f"},
- {file = "rtoml-0.9.0-cp38-cp38-manylinux_2_24_armv7l.whl", hash = "sha256:3b02257049dac81b0a7e333e7c35477939c016b39b444f849473650dd7c52410"},
- {file = "rtoml-0.9.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d6a95c1dcdb0dbb340fc67b35ef86a07f01ef4842d6bbcb883dcfefef87ac106"},
- {file = "rtoml-0.9.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:449701954ded52d885ac2f9f79b503c5aa1e2c6e7f0f6100ad4f46262c82dd66"},
- {file = "rtoml-0.9.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:9591699c1231dd9e615ec1b27933f1a4d8b8f57841e62d1f2aa109150da941ea"},
- {file = "rtoml-0.9.0-cp38-none-win32.whl", hash = "sha256:352fb220615c0904d77bf719c7f7e066dcf5a10ba118dc6cea8809424f858dad"},
- {file = "rtoml-0.9.0-cp38-none-win_amd64.whl", hash = "sha256:f780f90e3305b5e961dcc8f00c0d3bfa023d7626d64e8fa15c91f9ed6be6d10a"},
- {file = "rtoml-0.9.0-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:39e377e075af4f33a1c60cafdedcb02d7a4d7bf241e6c0bf76998c10ffc8222a"},
- {file = "rtoml-0.9.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:afead84d80f835a5d6194faf1cdae9ebee092dac68f25a69a8fecc0dc26d1720"},
- {file = "rtoml-0.9.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c3973f1d22450d5eb3abad65f9c30167c8f6ce475615a9a6364903476b68b56"},
- {file = "rtoml-0.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ea08ba5fc9a03a50e1e783266ff5b84fc81b3af5bf77cb5f190b5a516b53810"},
- {file = "rtoml-0.9.0-cp39-cp39-manylinux_2_24_armv7l.whl", hash = "sha256:ada33f7fc46b24f20e0219b659f3de15c09ea7209657e43770e2f5f0e95ab6ec"},
- {file = "rtoml-0.9.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f4cba47bf407642214a4aea349e91699ea67c6c07ebfa4412a2383837d295ccc"},
- {file = "rtoml-0.9.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9f1ab9638aba4027e7cf007dd7f5d497b1bd6b643a7c24bbc09bba76843fa779"},
- {file = "rtoml-0.9.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b43f61df97a74a4ebc216d9fdcefb1c631bfa98265655fcc0950fbe206054e8b"},
- {file = "rtoml-0.9.0-cp39-none-win32.whl", hash = "sha256:0eea8963824eb4be5d41c11a2e5dd51c6149f5274f015012f53dd82bf146a16b"},
- {file = "rtoml-0.9.0-cp39-none-win_amd64.whl", hash = "sha256:c539af5d88056a4d53a1f9067fee97bf6015edbb8e82fbde6ba96e19a1b41645"},
- {file = "rtoml-0.9.0.tar.gz", hash = "sha256:113f2e133d152d9424269c475b4a7d0679987078b543e88fcb16c870dc2c460d"},
+ {file = "rtoml-0.11.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:bbea5538d8e7a495878717743225bf261b097b42b17558d7f6876ec8ff700649"},
+ {file = "rtoml-0.11.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ec72c71ce1eec6a9a75a59c914644a92afed55625f88086418c8f610646f6c31"},
+ {file = "rtoml-0.11.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4161c01ee5cbf173382d4a55b26fc0d4a00ce68b9252c51cf6ee1a7b15d7922b"},
+ {file = "rtoml-0.11.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ca19e750d2becefe482bd4ddcc3395816a0d1e69fbc562a18a0fe2f4b688ec70"},
+ {file = "rtoml-0.11.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:398a17548248d06844e125fd748f5fd507819652866e833db4114bd32fda30f6"},
+ {file = "rtoml-0.11.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cb4c11a82a5ae89a4f5793dceed93e186032f1588e8f7ab3ebc48b8b54665a92"},
+ {file = "rtoml-0.11.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:384a580433edf011d8cdc683996866d0809721b7b9ab055c279a4bd51b5c7300"},
+ {file = "rtoml-0.11.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c55295fac0e18af5a7b91dc8a308dd50fe0dbf26e439a86ff674290823ed010d"},
+ {file = "rtoml-0.11.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b00ea0a3f14af57f1bdbb89b71f59c912d4682f9aa6a1a3a6729d210a599c64f"},
+ {file = "rtoml-0.11.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2bde7832c792a95d3c2f1a55833d5f5ae745c701ff0c09ad3e935146670403ed"},
+ {file = "rtoml-0.11.0-cp310-none-win32.whl", hash = "sha256:dc350452dcdd69b5c247d6a6951f4253a5bec93b9da621da96ced4e1edc1d42d"},
+ {file = "rtoml-0.11.0-cp310-none-win_amd64.whl", hash = "sha256:1836518858936ab435fff23805120760b759c7fa441d7150cdc6744d8d28e0ad"},
+ {file = "rtoml-0.11.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:abf9a0f729040f99c7b1734c433919b19314843d0f1d597f2d82e448e210c60f"},
+ {file = "rtoml-0.11.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:48a3504d58d9a0178947cf988841f2a771b63bb90155ad20ba4da93318ca2195"},
+ {file = "rtoml-0.11.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:56421e722d61ff09df0ae1d447ed1f8f109877281a091da1062165093bfe6291"},
+ {file = "rtoml-0.11.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a1be1b24c51a0a79beaf13e69603a556a165f27c92c93d284408e44686f82fbc"},
+ {file = "rtoml-0.11.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ec5837a2e0e0e3084d243914c11aff602f6840e5c07a7b2e1ca0c89464ed7079"},
+ {file = "rtoml-0.11.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:765bb5f226f7694d66af39f23d79b65f6b30744ee1c1396acff303b772f4ba1d"},
+ {file = "rtoml-0.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd6dfbc1830055290e8ee9f7ffb7465106536f54c1465e08c980c38147e3bcf4"},
+ {file = "rtoml-0.11.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:068131643b18ee839f1d5798ef5b347d04e101b8b9398b774fc839e6231c63c7"},
+ {file = "rtoml-0.11.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:042fc83c225b1075b6e717d156c4c7ecdab255127f875f6188fb062d72e59c5f"},
+ {file = "rtoml-0.11.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:bcab62bbf210434dcab736c658911d0182afe33b3920b051978c04ca442504a9"},
+ {file = "rtoml-0.11.0-cp311-none-win32.whl", hash = "sha256:8edbf3f0498287557a0a170c9a9331dfb69058729968578c37aad19977ba5722"},
+ {file = "rtoml-0.11.0-cp311-none-win_amd64.whl", hash = "sha256:d5e3d8d73a220d06bf2359b13572bdbd198e66f45aeac1e84058e448dc34f85e"},
+ {file = "rtoml-0.11.0-cp311-none-win_arm64.whl", hash = "sha256:806e3893555657012fe89774e62999e8cac50df53a7bd27f7c838f606397c3f7"},
+ {file = "rtoml-0.11.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:34c4fd6e6465e6de84ac499e19ae3e4b0d4cd3f9763d1a72a75bd2ef4d0e466a"},
+ {file = "rtoml-0.11.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0095bc482788d39c6c3e2f9f3a6f7a8149ee1cefe624129e2afc90512d8f16b7"},
+ {file = "rtoml-0.11.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d90b06a36325c9ae6e273669d811aa0e6b8ae41fa9ffe3949f02ef1870dc0ad5"},
+ {file = "rtoml-0.11.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:902148f2bd13b4c64d2c5ed576910c5a0a2c86dc052f4e31ca1855131ee157c8"},
+ {file = "rtoml-0.11.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d84bbdad28e24f66b8ad632fb7cbec64b921fdff48bf57f4f7179648726f7e54"},
+ {file = "rtoml-0.11.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4b1d4d4b8d765cf5228e5def9c39837d5b70c6e51422e05b975898c8a765fd1e"},
+ {file = "rtoml-0.11.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b900dcdf2068105b81b1ded3342dad952e3ea7d4a949473a690c686116a1730"},
+ {file = "rtoml-0.11.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4a491ad282b918292812518a61f432d6becf1b4a965d9c6595b7f00b1b722e61"},
+ {file = "rtoml-0.11.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d5ccbe43af82f17efed273b517e29febbd8225dab9a314f5728465b61a34781a"},
+ {file = "rtoml-0.11.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4125260584290461825abac23dafb34048dcbedaf9fafea913b5f0b1691c1ad0"},
+ {file = "rtoml-0.11.0-cp312-none-win32.whl", hash = "sha256:6e42385f510458f68587051a533cd0161653e1f2b381400a4873eab6f706940b"},
+ {file = "rtoml-0.11.0-cp312-none-win_amd64.whl", hash = "sha256:fdce3405e50ba73a45acdf36a793e3563da04fc913c53d54852c5d6cf1eb6d25"},
+ {file = "rtoml-0.11.0-cp312-none-win_arm64.whl", hash = "sha256:affc854919b46555f37d1408cb67f06f7453744bf1c5c1c53b69ed8b5227a28d"},
+ {file = "rtoml-0.11.0-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:377d24e0c9aac0aa92ff7f4f48d90298c005e4b01a97b532d4a9cc18c180a29c"},
+ {file = "rtoml-0.11.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a557bd7c40afbdad121f952dd4b87a432c8fc50fea795b44889b84d5f8adea7e"},
+ {file = "rtoml-0.11.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:91c9d5b3a8f7efcee02cd250cedebe0b02ca65abd7dfc20b5f69a16b68808d53"},
+ {file = "rtoml-0.11.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eb53b953925ea0f59d1892307503ceb21b66724b7929186d9dc7a53599075b51"},
+ {file = "rtoml-0.11.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4aab5871b86e557087d2042136cde2528ad5d2fd34e4261b43a4e66dcaaacd1d"},
+ {file = "rtoml-0.11.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:992646793a06fc6925171301440f56d7c44cd8302a0f1f573935e92e30f50a8e"},
+ {file = "rtoml-0.11.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c8dd9e35799ad86aba60a742c73bfe036210f2d504ab40e623d8360e43cc34f4"},
+ {file = "rtoml-0.11.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0658ed9376fddb96803e2d042d1b86056f9e8a81e31ee24cca638553ed3aee25"},
+ {file = "rtoml-0.11.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:1d15df762e4d513e979158c7dd670bf6df5856b768ac0107bfef0330865229f1"},
+ {file = "rtoml-0.11.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d931274a54fc770601735f611f03bc44032226b549536a16c2479a455a86e1d2"},
+ {file = "rtoml-0.11.0-cp38-none-win32.whl", hash = "sha256:e8dfb1460d3fc0501720dbee32acf1100d8ca4d02fbf634e956587f8d969632f"},
+ {file = "rtoml-0.11.0-cp38-none-win_amd64.whl", hash = "sha256:38f805d8030b276b3ba19561cde1ac0c74b680b550e284a9e85f4d026be7d9ca"},
+ {file = "rtoml-0.11.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:15511219ff53406b42da8fb14ecf1ab580ff1bdbdb5d76405df3d97c155fb997"},
+ {file = "rtoml-0.11.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:faeb038772540ad3344fd73329eae3a9e84614c6b25c848dad3258647b3f4abf"},
+ {file = "rtoml-0.11.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:52b410561af66ca5689a5c21b6bd31036d5839bb97b06cec71ac1147109f8fb6"},
+ {file = "rtoml-0.11.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fe9938d4793b873e53bb6fc12e4a5b88820b8596a3eaabee67cc3563f080eb85"},
+ {file = "rtoml-0.11.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5178ebb7442d9e24448e76d4d32f07aa75acbd765563a2accf50cfb262163b18"},
+ {file = "rtoml-0.11.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1d0e6f5c936a5d5e2c26d2443a8c861448885cc099f351982c3f7f3a0d1ce114"},
+ {file = "rtoml-0.11.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b750450e1ac63eb43dfbba3612dbb1830b6d90cc22c6ea78d7f2322ec698727d"},
+ {file = "rtoml-0.11.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3d41b865acf22bd547e771dfac3394e7dbf14586f236f20b70d3058a89352027"},
+ {file = "rtoml-0.11.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:8362905a25f3f3b0a6ca015877811d1bd4131ac3dd16f8acd4229e3f40ebd2e5"},
+ {file = "rtoml-0.11.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:e42a8536bce3ce91ee8ea867caf5bbc1caedbf477820b14498e85e6d539592aa"},
+ {file = "rtoml-0.11.0-cp39-none-win32.whl", hash = "sha256:84b83f2c57a8c4f65c0a6f0c3dbbe1ecb9082757b1fde02b2eb4781040483725"},
+ {file = "rtoml-0.11.0-cp39-none-win_amd64.whl", hash = "sha256:fe6594d1a2f1948abf74ecfa24425b4ed7817b93c3daeb1ec779b5fbf935f388"},
+ {file = "rtoml-0.11.0.tar.gz", hash = "sha256:a1d1ec36261c47169934a6c0f713a6cdf917604b3f72a72a809c3a68384255d4"},
]
[[package]]
@@ -499,31 +433,31 @@ files = [
[[package]]
name = "tomlkit"
-version = "0.11.8"
+version = "0.12.5"
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"},
+ {file = "tomlkit-0.12.5-py3-none-any.whl", hash = "sha256:af914f5a9c59ed9d0762c7b64d3b5d5df007448eb9cd2edc8a46b1eafead172f"},
+ {file = "tomlkit-0.12.5.tar.gz", hash = "sha256:eef34fba39834d4d6b73c9ba7f3e4d1c417a4e56f89a7e96e090dd0d24b8fb3c"},
]
[[package]]
name = "zipp"
-version = "3.17.0"
+version = "3.19.2"
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"},
+ {file = "zipp-3.19.2-py3-none-any.whl", hash = "sha256:f091755f667055f2d02b32c53771a7a6c8b47e1fdbc4b72a8b9072b3eef8015c"},
+ {file = "zipp-3.19.2.tar.gz", hash = "sha256:bf1dcf6450f873a13e952a29504887c89e6de7506209e5b1bcc3460135d4de19"},
]
[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"]
+doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"]
+test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy", "pytest-ruff (>=0.2.1)"]
[metadata]
lock-version = "2.0"
python-versions = "^3.9"
-content-hash = "9b40789515ad140c8b3daa2363cbf12525a7fe7b1b2cb7341a63086325adc4f5"
+content-hash = "19f12b253b74488979ac892d93fa637e710d96fe3681fe51329447ec2eae4940"
diff --git a/pyproject.toml b/pyproject.toml
index d6aaecb..55824a0 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,26 +1,26 @@
[tool.poetry]
name = "toml-bench"
-version = "0.3.1"
+version = "0.4.0"
description = "Benchmarking for python toml libraries"
authors = ["pwwang "]
license = "MIT"
[tool.poetry.dependencies]
-benchwork = "^0.0.2"
python = "^3.9"
-pyparam = "^0.5"
+benchwork = "^0.0.2"
toml = "^0.10.2"
-rtoml = "^0.9.0"
+rtoml = "^0.11.0"
# pytomlpp does not support python 3.11 yet
pytomlpp = {version = "^1.0.13", python = "<3.11"}
tomli = "^2.0.1"
tomli-w = "^1.0.0"
qtoml = "^0.3.1"
-tomlkit = "^0.11.8"
+tomlkit = "^0.12.5"
python-dateutil = "^2.8.2"
-importlib-metadata = "^5.0.0"
+importlib-metadata = "^7.2.1"
# required by tomlkit, but cannot be inferred by poetry
-regex = "^2022.10.31"
+regex = "^2024.5.15"
+argx = "^0.2.10"
[tool.poetry.dev-dependencies]
diff --git a/reports/with_toml-test_latest.md b/reports/with_toml-test_latest.md
index 1b5b44d..5a974c5 100644
--- a/reports/with_toml-test_latest.md
+++ b/reports/with_toml-test_latest.md
@@ -8,10 +8,10 @@ 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.8|
-|pytomlpp|1.0.13|
-|rtoml|0.9.0|
+|tomlkit|0.12.5|
+|rtoml|0.11.0|
|qtoml|0.3.1|
+|tomllib|(Python 3.12.2)|
## Dumping `None` value
@@ -25,9 +25,9 @@ Literally `.dumps(None)`
|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'|
+|tomllib|Dumping not supported|
## Dumping key-`None` pair
@@ -41,9 +41,9 @@ Literally `.dumps({"key": None})`
|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|
+|tomllib|Dumping not supported|
## Dumping list with `None` value
@@ -57,9 +57,9 @@ Literally `.dumps({"key": [1, 2, 3, None, 5]})`
|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|
+|tomllib|Dumping not supported|
## Loading `None`-like values
@@ -73,9 +73,9 @@ Literally `.loads('v1 = "null" v2 = "None"')`
|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'}|
+|tomllib|{'v1': 'null', 'v2': 'None'}|
## Dumping a heterogenous array
@@ -89,9 +89,9 @@ Literally `.dumps({"v": [1, 1.2, True, "string"]})`
|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'\]
|
+|tomllib|Dumping not supported|
## Loading a heterogenous array
@@ -105,9 +105,9 @@ Literally `.loads('v = [1, 1.2, True, "string"]')`
|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']}`|
+|tomllib|`{'v': [1, 1.2, True, 'string']}`|
## Dumping a nested array
@@ -121,9 +121,9 @@ Literally `.dumps({"v": [[1], [1, 2]]})`
|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\]\]
|
+|tomllib|Dumping not supported|
## Loading a nested array
@@ -137,9 +137,9 @@ Literally `.loads('v = [[1], [1, 2]]')`
|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]]}`|
+|tomllib|`{'v': [[1], [1, 2]]}`|
## Dumping keeps order of keys?
@@ -155,9 +155,9 @@ like `c = 1\na = 2\nb = 3\n`.
|toml|Kept|
|tomli/tomli_w|Kept|
|tomlkit|Kept|
-|pytomlpp|Lost|
|rtoml|Kept|
|qtoml|Kept|
+|tomllib|Dumping not supported|
## Loading keeps order of keys?
@@ -173,9 +173,9 @@ a dictionary with keys in the order of `['c', 'a', 'b']`.
|toml|Kept|
|tomli/tomli_w|Kept|
|tomlkit|Kept|
-|pytomlpp|Lost|
|rtoml|Kept|
|qtoml|Kept|
+|tomllib|Kept|
## Dumping unicode
@@ -189,9 +189,9 @@ Literally, `.dumps({"你好": "世界"})`
|toml|"你好" = "世界"
|
|tomli/tomli_w|"你好" = "世界"
|
|tomlkit|"你好" = "世界"
|
-|pytomlpp|'你好' = '世界'|
|rtoml|"你好" = "世界"
|
|qtoml|'你好' = '世界'
|
+|tomllib|Dumping not supported|
## Loaded unicode
@@ -215,9 +215,9 @@ with open(self.datafile, "r", encoding="utf-8") as f:
|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|{'你好': '世界'}|
+|tomllib|File must be opened in binary mode, e.g. use `open('foo.toml', 'rb')`
When loaded with `rb`:
{'你好': '世界'}|
## Compliance with valid tests in toml-test
@@ -230,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.3.0)|
+| |Result (toml-test v1.5.0)|
|-|-----------------------|
-|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*|
+|toml|[spec/array-0.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/spec/array-0.toml) Not a homogeneous array (line 8 column 1 char 261)
[spec/keys-4.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/spec/keys-4.toml) Found invalid character in key name: 'c'. Try quoting the key name. (line 2 column 8 char 57)
[spec/local-time-0.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/spec/local-time-0.toml) Parsed as unexpected data.
[datetime/no-seconds.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/datetime/no-seconds.toml) invalid literal for int() with base 0: '13:37' (line 2 column 1 char 46)
[datetime/local-time.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/datetime/local-time.toml) Parsed as unexpected data.
[datetime/datetime.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/datetime/datetime.toml) Parsed as unexpected data.
[comment/tricky.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/comment/tricky.toml) Parsed as unexpected data.
[key/dotted-1.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/key/dotted-1.toml) Parsed as unexpected data.
[key/unicode.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/key/unicode.toml) Found invalid character in key name: ''. Try quoting the key name. (line 5 column 2 char 67)
[key/dotted-2.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/key/dotted-2.toml) Found invalid character in key name: '"'. Try quoting the key name. (line 7 column 11 char 166)
[key/quoted-unicode.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/key/quoted-unicode.toml) Duplicate keys! (line 3 column 1 char 19)
[key/dotted-empty.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/key/dotted-empty.toml) Duplicate keys! (line 2 column 1 char 17)
[key/escapes.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/key/escapes.toml) Parsed as unexpected data.
[table/empty-name.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/table/empty-name.toml) Can't have a keygroup with an empty name (line 1 column 1 char 0)
[string/raw-multiline.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/string/raw-multiline.toml) Unbalanced quotes (line 20 column 50 char 532)
[string/ends-in-whitespace-escape.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/string/ends-in-whitespace-escape.toml) Reserved escape sequence used (line 6 column 1 char 28)
[string/hex-escape.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/string/hex-escape.toml) Reserved escape sequence used (line 3 column 1 char 35)
[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/string/escape-esc.toml) Reserved escape sequence used (line 1 column 1 char 0)
[string/multiline-quotes.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/string/multiline-quotes.toml) Unterminated string found. Reached end of file. (line 27 column 1 char 664)
[float/zero.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/float/zero.toml) Weirdness with leading zeroes or underscores in your number. (line 4 column 1 char 47)
[array/mixed-int-string.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.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.5.0/tests//valid/array/nested-double.toml) Not a homogeneous array (line 1 column 1 char 0)
[array/string-with-comma-2.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/array/string-with-comma-2.toml) string index out of range
[array/mixed-int-float.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.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.5.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.5.0/tests//valid/array/mixed-int-array.toml) Not a homogeneous array (line 1 column 1 char 0)
[inline-table/multiline.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/inline-table/multiline.toml) Invalid inline table value encountered (line 1 column 1 char 0)
[inline-table/key-dotted-1.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/inline-table/key-dotted-1.toml) Parsed as unexpected data.
[inline-table/key-dotted-5.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/inline-table/key-dotted-5.toml) Not a homogeneous array (line 2 column 1 char 20)
[inline-table/newline.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/inline-table/newline.toml) Key name found without value. Reached end of line. (line 5 column 2 char 98)
*157/187 (83.96%) passed*|
+|tomli/tomli_w|[datetime/no-seconds.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/datetime/no-seconds.toml) Expected newline or end of document after a statement (at line 2, column 23)
[key/unicode.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/key/unicode.toml) Invalid statement (at line 3, column 1)
[string/hex-escape.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/string/hex-escape.toml) Unescaped '\' in a string (at line 3, column 22)
[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/string/escape-esc.toml) Unescaped '\' in a string (at line 1, column 10)
[inline-table/newline.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/inline-table/newline.toml) Invalid initial character for a key part (at line 3, column 21)
*182/187 (97.33%) passed*|
+|tomlkit|[datetime/no-seconds.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/datetime/no-seconds.toml) Invalid number at line 2 col 25
[key/unicode.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/key/unicode.toml) Empty key at line 3 col 0
[string/hex-escape.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/string/hex-escape.toml) Invalid character 'x' in string at line 3 col 20
[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/string/escape-esc.toml) Invalid character 'e' in string at line 1 col 8
[inline-table/newline.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/inline-table/newline.toml) Empty key at line 3 col 20
*182/187 (97.33%) passed*|
+|rtoml|[spec/table-9.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/spec/table-9.toml) duplicate key: `apple` for key `fruit` at line 8 column 1
[datetime/no-seconds.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/datetime/no-seconds.toml) expected a colon, found a newline at line 2 column 26
[key/unicode.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/key/unicode.toml) unexpected character found: `\u{20ac}` at line 3 column 1
[table/array-within-dotted.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/table/array-within-dotted.toml) duplicate key: `apple` for key `fruit` at line 4 column 1
[string/hex-escape.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/string/hex-escape.toml) invalid escape character in string: `x` at line 3 column 21
[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/string/escape-esc.toml) invalid escape character in string: `e` at line 1 column 9
[inline-table/newline.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/inline-table/newline.toml) expected a table key, found a newline at line 3 column 21
*180/187 (96.26%) passed*|
+|qtoml|[spec/string-4.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/spec/string-4.toml) Didn't find expected newline (line 7, column 62)
[spec/string-7.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/spec/string-7.toml) Didn't find expected newline (line 7, column 50)
[datetime/no-seconds.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/datetime/no-seconds.toml) can't parse type (line 2, column 20)
[datetime/milliseconds.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.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.5.0/tests//valid/datetime/datetime.toml) Didn't find expected newline (line 4, column 18)
[comment/after-literal-no-ws.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/comment/after-literal-no-ws.toml) can't parse type (line 1, column 4)
[comment/tricky.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/comment/tricky.toml) can't parse type (line 11, column 7)
[key/unicode.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/key/unicode.toml) '€' cannot begin key (line 3, column 0)
[string/raw-multiline.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/string/raw-multiline.toml) Didn't find expected newline (line 22, column 3)
[string/hex-escape.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/string/hex-escape.toml) \x not a valid escape (line 3, column 43)
[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.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.5.0/tests//valid/string/multiline-quotes.toml) Didn't find expected newline (line 4, column 26)
[inline-table/newline.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/inline-table/newline.toml) ' ' cannot begin key (line 3, column 20)
*174/187 (93.05%) passed*|
+|tomllib|[datetime/no-seconds.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/datetime/no-seconds.toml) Expected newline or end of document after a statement (at line 2, column 23)
[key/unicode.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/key/unicode.toml) Invalid statement (at line 3, column 1)
[string/hex-escape.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/string/hex-escape.toml) Unescaped '\' in a string (at line 3, column 22)
[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/string/escape-esc.toml) Unescaped '\' in a string (at line 1, column 10)
[inline-table/newline.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//valid/inline-table/newline.toml) Invalid initial character for a key part (at line 3, column 21)
*182/187 (97.33%) passed*|
## Compliance with invalid tests in toml-test
@@ -251,14 +251,14 @@ here:
parsing error.
-| |Result (toml-test v1.3.0)|
+| |Result (toml-test v1.5.0)|
|-|-----------------------|
-|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*|
+|toml|Not OK: [integer/double-sign-plus.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/integer/double-sign-plus.toml) incorrectly parsed.
Not OK: [integer/us-after-bin.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/integer/us-after-bin.toml) incorrectly parsed.
Not OK: [integer/double-sign-nex.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/integer/double-sign-nex.toml) incorrectly parsed.
Not OK: [integer/us-after-hex.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.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.5.0/tests//invalid/integer/us-after-oct.toml) incorrectly parsed.
Not OK: [spec/inline-table-2-0.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/spec/inline-table-2-0.toml) incorrectly parsed.
Not OK: [datetime/offset-overflow-minute.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/datetime/offset-overflow-minute.toml) incorrectly parsed.
Not OK: [datetime/offset-overflow-hour.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/datetime/offset-overflow-hour.toml) incorrectly parsed.
Not OK: [control/comment-del.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/control/comment-del.toml) incorrectly parsed.
Not OK: [control/string-del.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/control/string-del.toml) incorrectly parsed.
Not OK: *63 more items incorrectly parsed.*
*298/371 (80.32%) passed*|
+|tomli/tomli_w|OK: [inline-table/linebreak-1.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/inline-table/linebreak-1.toml) Unclosed inline table (at line 3, column 18)
*371/371 (100%) passed*|
+|tomlkit|Not OK: [control/comment-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/control/comment-cr.toml) incorrectly parsed.
Not OK: [control/multi-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/control/multi-cr.toml) incorrectly parsed.
Not OK: [control/rawmulti-cd.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/control/rawmulti-cd.toml) incorrectly parsed.
Not OK: [control/bare-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.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.5.0/tests//invalid/table/append-with-dotted-keys-1.toml) incorrectly parsed.
Not OK: [table/overwrite-array-in-parent.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/table/overwrite-array-in-parent.toml) incorrectly parsed.
Not OK: [table/append-to-array-with-dotted-keys.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/table/append-to-array-with-dotted-keys.toml) incorrectly parsed.
Not OK: [table/append-with-dotted-keys-2.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/table/append-with-dotted-keys-2.toml) incorrectly parsed.
Not OK: [array/extend-defined-aot.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/array/extend-defined-aot.toml) incorrectly parsed.
Not OK: [inline-table/overwrite-09.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/inline-table/overwrite-09.toml) incorrectly parsed.
*361/371 (97.30%) passed*|
+|rtoml|Not OK: [integer/positive-hex.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/integer/positive-hex.toml) incorrectly parsed.
Not OK: [integer/positive-bin.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/integer/positive-bin.toml) incorrectly parsed.
Not OK: [integer/positive-oct.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/integer/positive-oct.toml) incorrectly parsed.
Not OK: [datetime/offset-overflow-minute.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/datetime/offset-overflow-minute.toml) incorrectly parsed.
Not OK: [datetime/offset-overflow-hour.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/datetime/offset-overflow-hour.toml) incorrectly parsed.
Not OK: [control/comment-del.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/control/comment-del.toml) incorrectly parsed.
Not OK: [control/comment-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/control/comment-cr.toml) incorrectly parsed.
Not OK: [control/multi-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/control/multi-cr.toml) incorrectly parsed.
Not OK: [control/rawmulti-cd.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/control/rawmulti-cd.toml) incorrectly parsed.
Not OK: [control/bare-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/control/bare-cr.toml) incorrectly parsed.
*361/371 (97.30%) passed*|
+|qtoml|Not OK: [spec/inline-table-2-0.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/spec/inline-table-2-0.toml) incorrectly parsed.
Not OK: [spec/table-9-1.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/spec/table-9-1.toml) incorrectly parsed.
Not OK: [spec/table-9-0.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/spec/table-9-0.toml) incorrectly parsed.
Not OK: [datetime/offset-overflow-minute.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/datetime/offset-overflow-minute.toml) incorrectly parsed.
Not OK: [control/comment-del.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/control/comment-del.toml) incorrectly parsed.
Not OK: [control/comment-lf.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/control/comment-lf.toml) incorrectly parsed.
Not OK: [control/comment-null.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/control/comment-null.toml) incorrectly parsed.
Not OK: [control/comment-ff.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/control/comment-ff.toml) incorrectly parsed.
Not OK: [control/comment-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/control/comment-cr.toml) incorrectly parsed.
Not OK: [control/multi-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/control/multi-cr.toml) incorrectly parsed.
Not OK: *14 more items incorrectly parsed.*
*347/371 (93.53%) passed*|
+|tomllib|OK: [inline-table/linebreak-1.toml](https://github.com/BurntSushi/toml-test/blob/v1.5.0/tests//invalid/inline-table/linebreak-1.toml) Unclosed inline table (at line 3, column 18)
*371/371 (100%) passed*|
## Compliance with valid tests in python tomllib test data
@@ -271,14 +271,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 (cpython tag 3.11.0)|
+| |Result (cpython tag 3.12.4)|
|-|-----------------------|
-|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*|
+|toml|[apostrophes-in-literal-string.toml](https://github.com/python/cpython/tree/v3.12.4/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.12.4/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.12.4/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.12.4/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*|
+|qtoml|[apostrophes-in-literal-string.toml](https://github.com/python/cpython/tree/v3.12.4/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.12.4/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.12.4/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*|
+|tomllib|OK, *12/12 (100%) passed*|
## Compliance with invalid tests in python tomllib test data
@@ -292,31 +292,14 @@ for invalid toml files here:
parsing error.
-| |Result (cpython tag 3.11.0)|
+| |Result (cpython tag 3.12.4)|
|-|-----------------------|
-|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|7.55s (1000 iterations)|3.11s (1000 iterations)|
-|tomlkit|150.98s (1000 iterations)|2.14s (1000 iterations)|
-|pytomlpp|1.41s (1000 iterations)|0.98s (1000 iterations)|
-|rtoml|0.98s (1000 iterations)|values must be emitted before tables|
-|qtoml|18.39s (1000 iterations)|4.75s (1000 iterations)|
+|toml|Not OK: [invalid-comment-char.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/invalid-comment-char.toml) incorrectly parsed.
Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table-with-subtable.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table-with-subtable.toml) incorrectly parsed.
Not OK: [array/unclosed-empty.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/array/unclosed-empty.toml) incorrectly parsed.
Not OK: [array/file-end-after-val.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/array/file-end-after-val.toml) incorrectly parsed.
Not OK: [array/unclosed-after-item.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/array/unclosed-after-item.toml) incorrectly parsed.
Not OK: [inline-table/overwrite-value-in-inner-table.toml](https://github.com/python/cpython/tree/v3.12.4/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.12.4/Lib/test/test_tomllib/data//invalid/inline-table/unclosed-empty.toml) incorrectly parsed.
*41/50 (82.00%) passed*|
+|tomli/tomli_w|OK: [inline-table/overwrite-implicitly.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/inline-table/overwrite-implicitly.toml) Cannot overwrite a value (at line 1, column 21)
*50/50 (100%) passed*|
+|tomlkit|Not OK: [array-of-tables/overwrite-array-in-parent.toml](https://github.com/python/cpython/tree/v3.12.4/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.12.4/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-aot.toml](https://github.com/python/cpython/tree/v3.12.4/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.12.4/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table-with-subtable.toml) incorrectly parsed.
Not OK: [inline-table/override-val-in-table.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/inline-table/override-val-in-table.toml) incorrectly parsed.
*44/50 (88.00%) passed*|
+|rtoml|Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.12.4/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.12.4/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.12.4/Lib/test/test_tomllib/data//invalid/invalid-comment-char.toml) incorrectly parsed.
Not OK: [table/redefine-2.toml](https://github.com/python/cpython/tree/v3.12.4/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.12.4/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.12.4/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table-with-subtable.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table-with-subtable.toml) incorrectly parsed.
Not OK: [inline-table/overwrite-value-in-inner-table.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/inline-table/overwrite-value-in-inner-table.toml) incorrectly parsed.
Not OK: [inline-table/override-val-with-table.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/inline-table/override-val-with-table.toml) incorrectly parsed.
*41/50 (82.00%) passed*|
+|tomllib|OK: [inline-table/overwrite-implicitly.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/inline-table/overwrite-implicitly.toml) Cannot overwrite a value (at line 1, column 21)
*50/50 (100%) passed*|
## Running speed with data provided by `rtoml`
@@ -329,11 +312,11 @@ provided by `rtoml`
| |Loading speed|Dumping speed|
|-|-|-|
|toml|Excluded (heterogeneous arrays not supported)|Excluded (heterogeneous arrays not supported)|
-|tomli/tomli_w|1.56s (1000 iterations)|0.55s (1000 iterations)|
-|tomlkit|29.90s (1000 iterations)|0.75s (1000 iterations)|
-|pytomlpp|0.24s (1000 iterations)|0.19s (1000 iterations)|
-|rtoml|0.19s (1000 iterations)|0.05s (1000 iterations)|
-|qtoml|4.57s (1000 iterations)|1.26s (1000 iterations)|
+|tomli/tomli_w|2.14s (5000 iterations)|0.74s (5000 iterations)|
+|tomlkit|40.28s (5000 iterations)|1.01s (5000 iterations)|
+|rtoml|0.38s (5000 iterations)|0.09s (5000 iterations)|
+|qtoml|5.04s (5000 iterations)|1.92s (5000 iterations)|
+|tomllib|2.05s (5000 iterations)|Dumping not supported|
## Running speed with data provided by `tomli`
@@ -346,9 +329,9 @@ provided by `tomli`
| |Loading speed|Dumping speed|
|-|-|-|
|toml|Excluded (heterogeneous arrays not supported)|Excluded (heterogeneous arrays not supported)|
-|tomli/tomli_w|1.11s (1000 iterations)|0.38s (1000 iterations)|
-|tomlkit|19.39s (1000 iterations)|0.37s (1000 iterations)|
-|pytomlpp|0.25s (1000 iterations)|0.18s (1000 iterations)|
-|rtoml|0.20s (1000 iterations)|0.11s (1000 iterations)|
-|qtoml|3.61s (1000 iterations)|0.94s (1000 iterations)|
+|tomli/tomli_w|1.40s (5000 iterations)|0.46s (5000 iterations)|
+|tomlkit|26.10s (5000 iterations)|0.52s (5000 iterations)|
+|rtoml|0.32s (5000 iterations)|0.17s (5000 iterations)|
+|qtoml|3.72s (5000 iterations)|1.33s (5000 iterations)|
+|tomllib|1.50s (5000 iterations)|Dumping not supported|
diff --git a/reports/with_toml-test_v1.0.0.md b/reports/with_toml-test_v1.0.0.md
deleted file mode 100644
index bfa945f..0000000
--- a/reports/with_toml-test_v1.0.0.md
+++ /dev/null
@@ -1,354 +0,0 @@
-# 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"]})`
-
-
-| |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"]')`
-
-
-| |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.0.0)|
-|-|-----------------------|
-|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*|
-|rtoml|OK, *96/96 (100%) passed*|
-|qtoml|[comment/tricky.toml](https://github.com/BurntSushi/toml-test/blob/v1.0.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.0.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.0.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.0.0/tests//valid/datetime/datetime.toml) Didn't find expected newline (line 2, column 18)
*92/96 (95.83%) 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.0.0)|
-|-|-----------------------|
-|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
-
-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|7.39s (1000 iterations)|3.16s (1000 iterations)|
-|tomlkit|145.48s (1000 iterations)|2.69s (1000 iterations)|
-|pytomlpp|1.58s (1000 iterations)|1.05s (1000 iterations)|
-|rtoml|0.98s (1000 iterations)|values must be emitted before tables|
-|qtoml|19.28s (1000 iterations)|4.84s (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.60s (1000 iterations)|0.57s (1000 iterations)|
-|tomlkit|32.29s (1000 iterations)|0.76s (1000 iterations)|
-|pytomlpp|0.27s (1000 iterations)|0.20s (1000 iterations)|
-|rtoml|0.19s (1000 iterations)|0.05s (1000 iterations)|
-|qtoml|4.87s (1000 iterations)|1.31s (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.06s (1000 iterations)|0.37s (1000 iterations)|
-|tomlkit|20.23s (1000 iterations)|0.42s (1000 iterations)|
-|pytomlpp|0.27s (1000 iterations)|0.17s (1000 iterations)|
-|rtoml|0.18s (1000 iterations)|0.11s (1000 iterations)|
-|qtoml|3.29s (1000 iterations)|0.84s (1000 iterations)|
-
diff --git a/reports/with_toml-test_v1.1.0.md b/reports/with_toml-test_v1.1.0.md
deleted file mode 100644
index 801630d..0000000
--- a/reports/with_toml-test_v1.1.0.md
+++ /dev/null
@@ -1,354 +0,0 @@
-# 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"]})`
-
-
-| |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"]')`
-
-
-| |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.1.0)|
-|-|-----------------------|
-|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*|
-|rtoml|OK, *99/99 (100%) passed*|
-|qtoml|[comment/tricky.toml](https://github.com/BurntSushi/toml-test/blob/v1.1.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.1.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.1.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.1.0/tests//valid/datetime/datetime.toml) Didn't find expected newline (line 2, column 18)
*95/99 (95.96%) 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.1.0)|
-|-|-----------------------|
-|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
-
-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|7.28s (1000 iterations)|3.27s (1000 iterations)|
-|tomlkit|144.16s (1000 iterations)|2.23s (1000 iterations)|
-|pytomlpp|1.41s (1000 iterations)|0.95s (1000 iterations)|
-|rtoml|0.98s (1000 iterations)|values must be emitted before tables|
-|qtoml|18.94s (1000 iterations)|4.87s (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.79s (1000 iterations)|0.62s (1000 iterations)|
-|tomlkit|31.72s (1000 iterations)|0.74s (1000 iterations)|
-|pytomlpp|0.26s (1000 iterations)|0.22s (1000 iterations)|
-|rtoml|0.20s (1000 iterations)|0.06s (1000 iterations)|
-|qtoml|4.90s (1000 iterations)|1.24s (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.12s (1000 iterations)|0.38s (1000 iterations)|
-|tomlkit|20.12s (1000 iterations)|0.37s (1000 iterations)|
-|pytomlpp|0.25s (1000 iterations)|0.16s (1000 iterations)|
-|rtoml|0.17s (1000 iterations)|0.10s (1000 iterations)|
-|qtoml|3.34s (1000 iterations)|0.93s (1000 iterations)|
-
diff --git a/reports/with_toml-test_v1.2.0.md b/reports/with_toml-test_v1.2.0.md
index 274b7ed..31d41cd 100644
--- a/reports/with_toml-test_v1.2.0.md
+++ b/reports/with_toml-test_v1.2.0.md
@@ -8,10 +8,10 @@ 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.8|
-|pytomlpp|1.0.13|
-|rtoml|0.9.0|
+|tomlkit|0.12.5|
+|rtoml|0.11.0|
|qtoml|0.3.1|
+|tomllib|(Python 3.12.2)|
## Dumping `None` value
@@ -25,9 +25,9 @@ Literally `.dumps(None)`
|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'|
+|tomllib|Dumping not supported|
## Dumping key-`None` pair
@@ -41,9 +41,9 @@ Literally `.dumps({"key": None})`
|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|
+|tomllib|Dumping not supported|
## Dumping list with `None` value
@@ -57,9 +57,9 @@ Literally `.dumps({"key": [1, 2, 3, None, 5]})`
|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|
+|tomllib|Dumping not supported|
## Loading `None`-like values
@@ -73,9 +73,9 @@ Literally `.loads('v1 = "null" v2 = "None"')`
|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'}|
+|tomllib|{'v1': 'null', 'v2': 'None'}|
## Dumping a heterogenous array
@@ -89,9 +89,9 @@ Literally `.dumps({"v": [1, 1.2, True, "string"]})`
|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'\]
|
+|tomllib|Dumping not supported|
## Loading a heterogenous array
@@ -105,9 +105,9 @@ Literally `.loads('v = [1, 1.2, True, "string"]')`
|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']}`|
+|tomllib|`{'v': [1, 1.2, True, 'string']}`|
## Dumping a nested array
@@ -121,9 +121,9 @@ Literally `.dumps({"v": [[1], [1, 2]]})`
|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\]\]
|
+|tomllib|Dumping not supported|
## Loading a nested array
@@ -137,9 +137,9 @@ Literally `.loads('v = [[1], [1, 2]]')`
|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]]}`|
+|tomllib|`{'v': [[1], [1, 2]]}`|
## Dumping keeps order of keys?
@@ -155,9 +155,9 @@ like `c = 1\na = 2\nb = 3\n`.
|toml|Kept|
|tomli/tomli_w|Kept|
|tomlkit|Kept|
-|pytomlpp|Lost|
|rtoml|Kept|
|qtoml|Kept|
+|tomllib|Dumping not supported|
## Loading keeps order of keys?
@@ -173,9 +173,9 @@ a dictionary with keys in the order of `['c', 'a', 'b']`.
|toml|Kept|
|tomli/tomli_w|Kept|
|tomlkit|Kept|
-|pytomlpp|Lost|
|rtoml|Kept|
|qtoml|Kept|
+|tomllib|Kept|
## Dumping unicode
@@ -189,9 +189,9 @@ Literally, `.dumps({"你好": "世界"})`
|toml|"你好" = "世界"
|
|tomli/tomli_w|"你好" = "世界"
|
|tomlkit|"你好" = "世界"
|
-|pytomlpp|'你好' = '世界'|
|rtoml|"你好" = "世界"
|
|qtoml|'你好' = '世界'
|
+|tomllib|Dumping not supported|
## Loaded unicode
@@ -215,9 +215,9 @@ with open(self.datafile, "r", encoding="utf-8") as f:
|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|{'你好': '世界'}|
+|tomllib|File must be opened in binary mode, e.g. use `open('foo.toml', 'rb')`
When loaded with `rb`:
{'你好': '世界'}|
## Compliance with valid tests in toml-test
@@ -232,12 +232,12 @@ 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*|
+|toml|[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.
[comment/tricky.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/comment/tricky.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)
[key/escapes.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//valid/key/escapes.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)
[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)
[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)
[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-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)
[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)
[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.
*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*|
+|qtoml|[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)
[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)
*95/100 (95.00%) passed*|
+|tomllib|[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*|
## Compliance with invalid tests in toml-test
@@ -253,12 +253,12 @@ 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*|
+|toml|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/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: [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-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: [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/string-del.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/string-del.toml) incorrectly parsed.
Not OK: [control/multi-us.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/multi-us.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-null.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/comment-null.toml) incorrectly parsed.
Not OK: *36 more items incorrectly parsed.*
*177/223 (79.37%) passed*|
+|tomli/tomli_w|OK: [inline-table/linebreak-1.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/inline-table/linebreak-1.toml) Unclosed inline table (at line 3, column 18)
*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*|
+|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: [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-lf.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/control/comment-lf.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: [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/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/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/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*|
+|tomllib|OK: [inline-table/linebreak-1.toml](https://github.com/BurntSushi/toml-test/blob/v1.2.0/tests//invalid/inline-table/linebreak-1.toml) Unclosed inline table (at line 3, column 18)
*223/223 (100%) passed*|
## Compliance with valid tests in python tomllib test data
@@ -271,14 +271,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 (cpython tag 3.11.0)|
+| |Result (cpython tag 3.12.4)|
|-|-----------------------|
-|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*|
+|toml|[apostrophes-in-literal-string.toml](https://github.com/python/cpython/tree/v3.12.4/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.12.4/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.12.4/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.12.4/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*|
+|qtoml|[apostrophes-in-literal-string.toml](https://github.com/python/cpython/tree/v3.12.4/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.12.4/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.12.4/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*|
+|tomllib|OK, *12/12 (100%) passed*|
## Compliance with invalid tests in python tomllib test data
@@ -292,31 +292,14 @@ for invalid toml files here:
parsing error.
-| |Result (cpython tag 3.11.0)|
+| |Result (cpython tag 3.12.4)|
|-|-----------------------|
-|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|7.34s (1000 iterations)|3.21s (1000 iterations)|
-|tomlkit|146.22s (1000 iterations)|2.32s (1000 iterations)|
-|pytomlpp|1.61s (1000 iterations)|1.08s (1000 iterations)|
-|rtoml|1.00s (1000 iterations)|values must be emitted before tables|
-|qtoml|18.91s (1000 iterations)|5.37s (1000 iterations)|
+|toml|Not OK: [invalid-comment-char.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/invalid-comment-char.toml) incorrectly parsed.
Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table-with-subtable.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table-with-subtable.toml) incorrectly parsed.
Not OK: [array/unclosed-empty.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/array/unclosed-empty.toml) incorrectly parsed.
Not OK: [array/file-end-after-val.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/array/file-end-after-val.toml) incorrectly parsed.
Not OK: [array/unclosed-after-item.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/array/unclosed-after-item.toml) incorrectly parsed.
Not OK: [inline-table/overwrite-value-in-inner-table.toml](https://github.com/python/cpython/tree/v3.12.4/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.12.4/Lib/test/test_tomllib/data//invalid/inline-table/unclosed-empty.toml) incorrectly parsed.
*41/50 (82.00%) passed*|
+|tomli/tomli_w|OK: [inline-table/overwrite-implicitly.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/inline-table/overwrite-implicitly.toml) Cannot overwrite a value (at line 1, column 21)
*50/50 (100%) passed*|
+|tomlkit|Not OK: [array-of-tables/overwrite-array-in-parent.toml](https://github.com/python/cpython/tree/v3.12.4/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.12.4/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-aot.toml](https://github.com/python/cpython/tree/v3.12.4/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.12.4/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table-with-subtable.toml) incorrectly parsed.
Not OK: [inline-table/override-val-in-table.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/inline-table/override-val-in-table.toml) incorrectly parsed.
*44/50 (88.00%) passed*|
+|rtoml|Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.12.4/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.12.4/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.12.4/Lib/test/test_tomllib/data//invalid/invalid-comment-char.toml) incorrectly parsed.
Not OK: [table/redefine-2.toml](https://github.com/python/cpython/tree/v3.12.4/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.12.4/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.12.4/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table-with-subtable.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table-with-subtable.toml) incorrectly parsed.
Not OK: [inline-table/overwrite-value-in-inner-table.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/inline-table/overwrite-value-in-inner-table.toml) incorrectly parsed.
Not OK: [inline-table/override-val-with-table.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/inline-table/override-val-with-table.toml) incorrectly parsed.
*41/50 (82.00%) passed*|
+|tomllib|OK: [inline-table/overwrite-implicitly.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/inline-table/overwrite-implicitly.toml) Cannot overwrite a value (at line 1, column 21)
*50/50 (100%) passed*|
## Running speed with data provided by `rtoml`
@@ -329,11 +312,11 @@ provided by `rtoml`
| |Loading speed|Dumping speed|
|-|-|-|
|toml|Excluded (heterogeneous arrays not supported)|Excluded (heterogeneous arrays not supported)|
-|tomli/tomli_w|1.71s (1000 iterations)|0.56s (1000 iterations)|
-|tomlkit|30.65s (1000 iterations)|0.90s (1000 iterations)|
-|pytomlpp|0.30s (1000 iterations)|0.24s (1000 iterations)|
-|rtoml|0.23s (1000 iterations)|0.06s (1000 iterations)|
-|qtoml|5.47s (1000 iterations)|1.47s (1000 iterations)|
+|tomli/tomli_w|2.10s (5000 iterations)|0.74s (5000 iterations)|
+|tomlkit|40.82s (5000 iterations)|0.99s (5000 iterations)|
+|rtoml|0.37s (5000 iterations)|0.09s (5000 iterations)|
+|qtoml|5.01s (5000 iterations)|1.88s (5000 iterations)|
+|tomllib|2.06s (5000 iterations)|Dumping not supported|
## Running speed with data provided by `tomli`
@@ -346,9 +329,9 @@ provided by `tomli`
| |Loading speed|Dumping speed|
|-|-|-|
|toml|Excluded (heterogeneous arrays not supported)|Excluded (heterogeneous arrays not supported)|
-|tomli/tomli_w|1.25s (1000 iterations)|0.42s (1000 iterations)|
-|tomlkit|19.34s (1000 iterations)|0.39s (1000 iterations)|
-|pytomlpp|0.25s (1000 iterations)|0.16s (1000 iterations)|
-|rtoml|0.16s (1000 iterations)|0.10s (1000 iterations)|
-|qtoml|3.19s (1000 iterations)|0.87s (1000 iterations)|
+|tomli/tomli_w|1.42s (5000 iterations)|0.46s (5000 iterations)|
+|tomlkit|25.31s (5000 iterations)|0.50s (5000 iterations)|
+|rtoml|0.32s (5000 iterations)|0.16s (5000 iterations)|
+|qtoml|3.65s (5000 iterations)|1.28s (5000 iterations)|
+|tomllib|1.54s (5000 iterations)|Dumping not supported|
diff --git a/reports/with_python3.11.md b/reports/with_toml-test_v1.3.0.md
similarity index 55%
rename from reports/with_python3.11.md
rename to reports/with_toml-test_v1.3.0.md
index 473c8fe..c19352d 100644
--- a/reports/with_python3.11.md
+++ b/reports/with_toml-test_v1.3.0.md
@@ -8,10 +8,10 @@ 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.8|
-|rtoml|0.9.0|
+|tomlkit|0.12.5|
+|rtoml|0.11.0|
|qtoml|0.3.1|
-|tomllib|(Python 3.11.2)|
+|tomllib|(Python 3.12.2)|
## Dumping `None` value
@@ -232,11 +232,11 @@ loading the toml file yields the same result as the JSON counterpart.
| |Result (toml-test v1.3.0)|
|-|-----------------------|
-|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*|
+|toml|[datetime/local-time.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/datetime/local-time.toml) Parsed as unexpected data.
[datetime/datetime.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/datetime/datetime.toml) Parsed as unexpected data.
[comment/tricky.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/comment/tricky.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)
[key/escapes.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//valid/key/escapes.toml) Parsed as unexpected data.
[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)
[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)
[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/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-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)
[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)
[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)
[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.
*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*|
|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*|
+|qtoml|[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)
[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/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)
[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)
*95/100 (95.00%) passed*|
|tomllib|[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*|
## Compliance with invalid tests in toml-test
@@ -253,12 +253,12 @@ parsing error.
| |Result (toml-test v1.3.0)|
|-|-----------------------|
-|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*|
-|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*|
-|tomllib|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*|
+|toml|Not OK: [integer/double-sign-plus.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/integer/double-sign-plus.toml) incorrectly parsed.
Not OK: [integer/us-after-bin.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/integer/us-after-bin.toml) incorrectly parsed.
Not OK: [integer/double-sign-nex.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/integer/double-sign-nex.toml) incorrectly parsed.
Not OK: [integer/us-after-hex.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.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.3.0/tests//invalid/integer/us-after-oct.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/string-del.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/control/string-del.toml) incorrectly parsed.
Not OK: [control/multi-us.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/control/multi-us.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-null.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/control/comment-null.toml) incorrectly parsed.
Not OK: *39 more items incorrectly parsed.*
*188/237 (79.32%) passed*|
+|tomli/tomli_w|OK: [inline-table/linebreak-1.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/inline-table/linebreak-1.toml) Unclosed inline table (at line 3, column 18)
*237/237 (100%) passed*|
+|tomlkit|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/bare-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.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.3.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.3.0/tests//invalid/table/append-with-dotted-keys-2.toml) incorrectly parsed.
*233/237 (98.31%) passed*|
+|rtoml|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.
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-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/control/comment-cr.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.
*232/237 (97.89%) passed*|
+|qtoml|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-lf.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/control/comment-lf.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: [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-us.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/control/comment-us.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: [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.
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/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/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*|
+|tomllib|OK: [inline-table/linebreak-1.toml](https://github.com/BurntSushi/toml-test/blob/v1.3.0/tests//invalid/inline-table/linebreak-1.toml) Unclosed inline table (at line 3, column 18)
*237/237 (100%) passed*|
## Compliance with valid tests in python tomllib test data
@@ -271,13 +271,13 @@ 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)|
+| |Result (cpython tag 3.12.4)|
|-|-----------------------|
-|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*|
+|toml|[apostrophes-in-literal-string.toml](https://github.com/python/cpython/tree/v3.12.4/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.12.4/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.12.4/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.12.4/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*|
|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*|
+|qtoml|[apostrophes-in-literal-string.toml](https://github.com/python/cpython/tree/v3.12.4/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.12.4/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.12.4/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*|
|tomllib|OK, *12/12 (100%) passed*|
## Compliance with invalid tests in python tomllib test data
@@ -292,31 +292,14 @@ for invalid toml files here:
parsing error.
-| |Result (cpython tag 3.11.0)|
+| |Result (cpython tag 3.12.4)|
|-|-----------------------|
-|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*|
-|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*|
-|tomllib|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*|
-
-## 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|2.75s (500 iterations)|1.07s (500 iterations)|
-|tomlkit|50.32s (500 iterations)|0.76s (500 iterations)|
-|rtoml|0.47s (500 iterations)|values must be emitted before tables|
-|qtoml|5.56s (500 iterations)|1.75s (500 iterations)|
-|tomllib|2.80s (500 iterations)|Dumping not supported|
+|toml|Not OK: [invalid-comment-char.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/invalid-comment-char.toml) incorrectly parsed.
Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table-with-subtable.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table-with-subtable.toml) incorrectly parsed.
Not OK: [array/unclosed-empty.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/array/unclosed-empty.toml) incorrectly parsed.
Not OK: [array/file-end-after-val.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/array/file-end-after-val.toml) incorrectly parsed.
Not OK: [array/unclosed-after-item.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/array/unclosed-after-item.toml) incorrectly parsed.
Not OK: [inline-table/overwrite-value-in-inner-table.toml](https://github.com/python/cpython/tree/v3.12.4/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.12.4/Lib/test/test_tomllib/data//invalid/inline-table/unclosed-empty.toml) incorrectly parsed.
*41/50 (82.00%) passed*|
+|tomli/tomli_w|OK: [inline-table/overwrite-implicitly.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/inline-table/overwrite-implicitly.toml) Cannot overwrite a value (at line 1, column 21)
*50/50 (100%) passed*|
+|tomlkit|Not OK: [array-of-tables/overwrite-array-in-parent.toml](https://github.com/python/cpython/tree/v3.12.4/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.12.4/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-aot.toml](https://github.com/python/cpython/tree/v3.12.4/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.12.4/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table-with-subtable.toml) incorrectly parsed.
Not OK: [inline-table/override-val-in-table.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/inline-table/override-val-in-table.toml) incorrectly parsed.
*44/50 (88.00%) passed*|
+|rtoml|Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.12.4/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.12.4/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.12.4/Lib/test/test_tomllib/data//invalid/invalid-comment-char.toml) incorrectly parsed.
Not OK: [table/redefine-2.toml](https://github.com/python/cpython/tree/v3.12.4/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.12.4/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.12.4/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table-with-subtable.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table-with-subtable.toml) incorrectly parsed.
Not OK: [inline-table/overwrite-value-in-inner-table.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/inline-table/overwrite-value-in-inner-table.toml) incorrectly parsed.
Not OK: [inline-table/override-val-with-table.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/inline-table/override-val-with-table.toml) incorrectly parsed.
*41/50 (82.00%) passed*|
+|tomllib|OK: [inline-table/overwrite-implicitly.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/inline-table/overwrite-implicitly.toml) Cannot overwrite a value (at line 1, column 21)
*50/50 (100%) passed*|
## Running speed with data provided by `rtoml`
@@ -329,11 +312,11 @@ provided by `rtoml`
| |Loading speed|Dumping speed|
|-|-|-|
|toml|Excluded (heterogeneous arrays not supported)|Excluded (heterogeneous arrays not supported)|
-|tomli/tomli_w|0.63s (500 iterations)|0.20s (500 iterations)|
-|tomlkit|10.92s (500 iterations)|0.26s (500 iterations)|
-|rtoml|0.09s (500 iterations)|0.03s (500 iterations)|
-|qtoml|1.38s (500 iterations)|0.46s (500 iterations)|
-|tomllib|0.61s (500 iterations)|Dumping not supported|
+|tomli/tomli_w|2.15s (5000 iterations)|0.75s (5000 iterations)|
+|tomlkit|39.49s (5000 iterations)|0.99s (5000 iterations)|
+|rtoml|0.38s (5000 iterations)|0.09s (5000 iterations)|
+|qtoml|4.97s (5000 iterations)|1.87s (5000 iterations)|
+|tomllib|2.02s (5000 iterations)|Dumping not supported|
## Running speed with data provided by `tomli`
@@ -346,9 +329,9 @@ provided by `tomli`
| |Loading speed|Dumping speed|
|-|-|-|
|toml|Excluded (heterogeneous arrays not supported)|Excluded (heterogeneous arrays not supported)|
-|tomli/tomli_w|0.42s (500 iterations)|0.12s (500 iterations)|
-|tomlkit|6.64s (500 iterations)|0.13s (500 iterations)|
-|rtoml|0.08s (500 iterations)|0.05s (500 iterations)|
-|qtoml|1.00s (500 iterations)|0.31s (500 iterations)|
-|tomllib|0.41s (500 iterations)|Dumping not supported|
+|tomli/tomli_w|1.40s (5000 iterations)|0.47s (5000 iterations)|
+|tomlkit|25.86s (5000 iterations)|0.50s (5000 iterations)|
+|rtoml|0.32s (5000 iterations)|0.16s (5000 iterations)|
+|qtoml|3.71s (5000 iterations)|1.31s (5000 iterations)|
+|tomllib|1.49s (5000 iterations)|Dumping not supported|
diff --git a/reports/with_toml-test_v1.4.0.md b/reports/with_toml-test_v1.4.0.md
new file mode 100644
index 0000000..3ae2a08
--- /dev/null
+++ b/reports/with_toml-test_v1.4.0.md
@@ -0,0 +1,337 @@
+# 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.12.5|
+|rtoml|0.11.0|
+|qtoml|0.3.1|
+|tomllib|(Python 3.12.2)|
+
+## 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|
+|rtoml|"null"|
+|qtoml|'NoneType' object has no attribute 'items'|
+|tomllib|Dumping not supported|
+
+## 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 |
+|rtoml|key = "null"
|
+|qtoml|TOML cannot encode None|
+|tomllib|Dumping not supported|
+
+## 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 |
+|rtoml|key = [1, 2, 3, "null", 5]
|
+|qtoml|bad type '' for dump_value|
+|tomllib|Dumping not supported|
+
+## 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'}|
+|rtoml|{'v1': 'null', 'v2': 'None'}|
+|qtoml|{'v1': 'null', 'v2': 'None'}|
+|tomllib|{'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"]})`
+
+
+| |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"\]
|
+|rtoml|v = \[1, 1.2, true, "string"\]
|
+|qtoml|v = \[1, 1.2, true, 'string'\]
|
+|tomllib|Dumping not supported|
+
+## Loading a heterogenous array
+
+How the package loads a toml string with a heterogenous array.
+
+Literally `.loads('v = [1, 1.2, True, "string"]')`
+
+
+| |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']}`|
+|rtoml|`{'v': [1, 1.2, True, 'string']}`|
+|qtoml|`{'v': [1, 1.2, True, 'string']}`|
+|tomllib|`{'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\]\]
|
+|rtoml|v = \[\[1\], \[1, 2\]\]
|
+|qtoml|v = \[\[1\], \[1, 2\]\]
|
+|tomllib|Dumping not supported|
+
+## 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]]}`|
+|rtoml|`{'v': [[1], [1, 2]]}`|
+|qtoml|`{'v': [[1], [1, 2]]}`|
+|tomllib|`{'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|
+|rtoml|Kept|
+|qtoml|Kept|
+|tomllib|Dumping not supported|
+
+## 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|
+|rtoml|Kept|
+|qtoml|Kept|
+|tomllib|Kept|
+
+## Dumping unicode
+
+How the package dumps Unicode in python
+
+Literally, `.dumps({"你好": "世界"})`
+
+
+| |Dumped value|
+|-|-----------------------|
+|toml|"你好" = "世界"
|
+|tomli/tomli_w|"你好" = "世界"
|
+|tomlkit|"你好" = "世界"
|
+|rtoml|"你好" = "世界"
|
+|qtoml|'你好' = '世界'
|
+|tomllib|Dumping not supported|
+
+## 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|{'你好': '世界'}|
+|rtoml|{'你好': '世界'}|
+|qtoml|{'你好': '世界'}|
+|tomllib|File must be opened in binary mode, e.g. use `open('foo.toml', 'rb')`
When loaded with `rb`:
{'你好': '世界'}|
+
+## 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.4.0)|
+|-|-----------------------|
+|toml|[spec/array-0.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/spec/array-0.toml) Not a homogeneous array (line 8 column 1 char 261)
[spec/keys-4.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/spec/keys-4.toml) Found invalid character in key name: 'c'. Try quoting the key name. (line 2 column 8 char 57)
[datetime/no-seconds.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/datetime/no-seconds.toml) invalid literal for int() with base 0: '13:37' (line 2 column 1 char 46)
[datetime/local-time.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/datetime/local-time.toml) Parsed as unexpected data.
[datetime/datetime.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/datetime/datetime.toml) Parsed as unexpected data.
[comment/tricky.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/comment/tricky.toml) Parsed as unexpected data.
[key/unicode.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/key/unicode.toml) Found invalid character in key name: ''. Try quoting the key name. (line 5 column 2 char 67)
[key/quoted-unicode.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/key/quoted-unicode.toml) Duplicate keys! (line 3 column 1 char 19)
[key/dotted.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/key/dotted.toml) Found invalid character in key name: '"'. Try quoting the key name. (line 12 column 11 char 245)
[key/dotted-empty.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/key/dotted-empty.toml) Duplicate keys! (line 2 column 1 char 17)
[key/escapes.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/key/escapes.toml) Parsed as unexpected data.
[table/empty-name.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/table/empty-name.toml) Can't have a keygroup with an empty name (line 1 column 1 char 0)
[string/hex-escape.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/string/hex-escape.toml) Reserved escape sequence used (line 3 column 1 char 35)
[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/string/escape-esc.toml) Reserved escape sequence used (line 1 column 1 char 0)
[float/zero.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/float/zero.toml) Weirdness with leading zeroes or underscores in your number. (line 4 column 1 char 47)
[array/mixed-int-string.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.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.4.0/tests//valid/array/nested-double.toml) Not a homogeneous array (line 1 column 1 char 0)
[array/string-with-comma-2.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/array/string-with-comma-2.toml) string index out of range
[array/mixed-int-float.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.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.4.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.4.0/tests//valid/array/mixed-int-array.toml) Not a homogeneous array (line 1 column 1 char 0)
[inline-table/multiline.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/inline-table/multiline.toml) Invalid inline table value encountered (line 1 column 1 char 0)
[inline-table/key-dotted.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/inline-table/key-dotted.toml) Parsed as unexpected data.
[inline-table/newline.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/inline-table/newline.toml) Key name found without value. Reached end of line. (line 5 column 2 char 98)
*137/161 (85.09%) passed*|
+|tomli/tomli_w|[datetime/no-seconds.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/datetime/no-seconds.toml) Expected newline or end of document after a statement (at line 2, column 23)
[key/unicode.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/key/unicode.toml) Invalid statement (at line 3, column 1)
[string/hex-escape.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/string/hex-escape.toml) Unescaped '\' in a string (at line 3, column 22)
[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/string/escape-esc.toml) Unescaped '\' in a string (at line 1, column 10)
[inline-table/newline.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/inline-table/newline.toml) Invalid initial character for a key part (at line 3, column 21)
*156/161 (96.89%) passed*|
+|tomlkit|[datetime/no-seconds.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/datetime/no-seconds.toml) Invalid number at line 2 col 25
[key/unicode.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/key/unicode.toml) Empty key at line 3 col 0
[string/hex-escape.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/string/hex-escape.toml) Invalid character 'x' in string at line 3 col 20
[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/string/escape-esc.toml) Invalid character 'e' in string at line 1 col 8
[inline-table/newline.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/inline-table/newline.toml) Empty key at line 3 col 20
*156/161 (96.89%) passed*|
+|rtoml|[spec/table-9.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/spec/table-9.toml) duplicate key: `apple` for key `fruit` at line 8 column 1
[datetime/no-seconds.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/datetime/no-seconds.toml) expected a colon, found a newline at line 2 column 26
[key/unicode.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/key/unicode.toml) unexpected character found: `\u{20ac}` at line 3 column 1
[table/array-within-dotted.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/table/array-within-dotted.toml) duplicate key: `apple` for key `fruit` at line 4 column 1
[string/hex-escape.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/string/hex-escape.toml) invalid escape character in string: `x` at line 3 column 21
[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/string/escape-esc.toml) invalid escape character in string: `e` at line 1 column 9
[inline-table/newline.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/inline-table/newline.toml) expected a table key, found a newline at line 3 column 21
*154/161 (95.65%) passed*|
+|qtoml|[spec/string-4.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/spec/string-4.toml) Didn't find expected newline (line 7, column 62)
[spec/string-7.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/spec/string-7.toml) Didn't find expected newline (line 7, column 50)
[datetime/no-seconds.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/datetime/no-seconds.toml) can't parse type (line 2, column 20)
[datetime/milliseconds.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.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.4.0/tests//valid/datetime/datetime.toml) Didn't find expected newline (line 2, column 18)
[comment/tricky.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/comment/tricky.toml) can't parse type (line 11, column 7)
[key/unicode.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/key/unicode.toml) '€' cannot begin key (line 3, column 0)
[string/hex-escape.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/string/hex-escape.toml) \x not a valid escape (line 3, column 43)
[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.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.4.0/tests//valid/string/multiline-quotes.toml) Didn't find expected newline (line 4, column 26)
[inline-table/newline.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/inline-table/newline.toml) ' ' cannot begin key (line 3, column 20)
*150/161 (93.17%) passed*|
+|tomllib|[datetime/no-seconds.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/datetime/no-seconds.toml) Expected newline or end of document after a statement (at line 2, column 23)
[key/unicode.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/key/unicode.toml) Invalid statement (at line 3, column 1)
[string/hex-escape.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/string/hex-escape.toml) Unescaped '\' in a string (at line 3, column 22)
[string/escape-esc.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/string/escape-esc.toml) Unescaped '\' in a string (at line 1, column 10)
[inline-table/newline.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//valid/inline-table/newline.toml) Invalid initial character for a key part (at line 3, column 21)
*156/161 (96.89%) 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.4.0)|
+|-|-----------------------|
+|toml|Not OK: [integer/double-sign-plus.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//invalid/integer/double-sign-plus.toml) incorrectly parsed.
Not OK: [integer/us-after-bin.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//invalid/integer/us-after-bin.toml) incorrectly parsed.
Not OK: [integer/double-sign-nex.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//invalid/integer/double-sign-nex.toml) incorrectly parsed.
Not OK: [integer/us-after-hex.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.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.4.0/tests//invalid/integer/us-after-oct.toml) incorrectly parsed.
Not OK: [spec/inline-table-2-0.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//invalid/spec/inline-table-2-0.toml) incorrectly parsed.
Not OK: [control/comment-del.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//invalid/control/comment-del.toml) incorrectly parsed.
Not OK: [control/string-del.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//invalid/control/string-del.toml) incorrectly parsed.
Not OK: [control/multi-us.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//invalid/control/multi-us.toml) incorrectly parsed.
Not OK: [control/comment-lf.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//invalid/control/comment-lf.toml) incorrectly parsed.
Not OK: *44 more items incorrectly parsed.*
*205/259 (79.15%) passed*|
+|tomli/tomli_w|OK: [inline-table/linebreak-1.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//invalid/inline-table/linebreak-1.toml) Unclosed inline table (at line 3, column 18)
*259/259 (100%) passed*|
+|tomlkit|Not OK: [control/comment-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//invalid/control/comment-cr.toml) incorrectly parsed.
Not OK: [control/bare-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.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.4.0/tests//invalid/table/append-with-dotted-keys-1.toml) incorrectly parsed.
Not OK: [table/append-to-array-with-dotted-keys.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//invalid/table/append-to-array-with-dotted-keys.toml) incorrectly parsed.
Not OK: [table/append-with-dotted-keys-2.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//invalid/table/append-with-dotted-keys-2.toml) incorrectly parsed.
*254/259 (98.07%) passed*|
+|rtoml|Not OK: [integer/positive-hex.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//invalid/integer/positive-hex.toml) incorrectly parsed.
Not OK: [integer/positive-bin.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//invalid/integer/positive-bin.toml) incorrectly parsed.
Not OK: [control/comment-del.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//invalid/control/comment-del.toml) incorrectly parsed.
Not OK: [control/comment-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//invalid/control/comment-cr.toml) incorrectly parsed.
Not OK: [control/bare-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//invalid/control/bare-cr.toml) incorrectly parsed.
*254/259 (98.07%) passed*|
+|qtoml|Not OK: [spec/inline-table-2-0.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//invalid/spec/inline-table-2-0.toml) incorrectly parsed.
Not OK: [spec/table-9-1.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//invalid/spec/table-9-1.toml) incorrectly parsed.
Not OK: [spec/table-9-0.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//invalid/spec/table-9-0.toml) incorrectly parsed.
Not OK: [control/comment-del.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//invalid/control/comment-del.toml) incorrectly parsed.
Not OK: [control/comment-lf.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//invalid/control/comment-lf.toml) incorrectly parsed.
Not OK: [control/comment-null.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//invalid/control/comment-null.toml) incorrectly parsed.
Not OK: [control/comment-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//invalid/control/comment-cr.toml) incorrectly parsed.
Not OK: [control/comment-us.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//invalid/control/comment-us.toml) incorrectly parsed.
Not OK: [control/bare-cr.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.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.4.0/tests//invalid/table/append-with-dotted-keys-1.toml) incorrectly parsed.
Not OK: *6 more items incorrectly parsed.*
*243/259 (93.82%) passed*|
+|tomllib|OK: [inline-table/linebreak-1.toml](https://github.com/BurntSushi/toml-test/blob/v1.4.0/tests//invalid/inline-table/linebreak-1.toml) Unclosed inline table (at line 3, column 18)
*259/259 (100%) 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.12.4)|
+|-|-----------------------|
+|toml|[apostrophes-in-literal-string.toml](https://github.com/python/cpython/tree/v3.12.4/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.12.4/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.12.4/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.12.4/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*|
+|rtoml|OK, *12/12 (100%) passed*|
+|qtoml|[apostrophes-in-literal-string.toml](https://github.com/python/cpython/tree/v3.12.4/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.12.4/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.12.4/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*|
+|tomllib|OK, *12/12 (100%) 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.12.4)|
+|-|-----------------------|
+|toml|Not OK: [invalid-comment-char.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/invalid-comment-char.toml) incorrectly parsed.
Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table-with-subtable.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table-with-subtable.toml) incorrectly parsed.
Not OK: [array/unclosed-empty.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/array/unclosed-empty.toml) incorrectly parsed.
Not OK: [array/file-end-after-val.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/array/file-end-after-val.toml) incorrectly parsed.
Not OK: [array/unclosed-after-item.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/array/unclosed-after-item.toml) incorrectly parsed.
Not OK: [inline-table/overwrite-value-in-inner-table.toml](https://github.com/python/cpython/tree/v3.12.4/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.12.4/Lib/test/test_tomllib/data//invalid/inline-table/unclosed-empty.toml) incorrectly parsed.
*41/50 (82.00%) passed*|
+|tomli/tomli_w|OK: [inline-table/overwrite-implicitly.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/inline-table/overwrite-implicitly.toml) Cannot overwrite a value (at line 1, column 21)
*50/50 (100%) passed*|
+|tomlkit|Not OK: [array-of-tables/overwrite-array-in-parent.toml](https://github.com/python/cpython/tree/v3.12.4/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.12.4/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-aot.toml](https://github.com/python/cpython/tree/v3.12.4/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.12.4/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table-with-subtable.toml) incorrectly parsed.
Not OK: [inline-table/override-val-in-table.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/inline-table/override-val-in-table.toml) incorrectly parsed.
*44/50 (88.00%) passed*|
+|rtoml|Not OK: [multiline-basic-str/carriage-return.toml](https://github.com/python/cpython/tree/v3.12.4/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.12.4/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.12.4/Lib/test/test_tomllib/data//invalid/invalid-comment-char.toml) incorrectly parsed.
Not OK: [table/redefine-2.toml](https://github.com/python/cpython/tree/v3.12.4/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.12.4/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.12.4/Lib/test/test_tomllib/data//invalid/multiline-basic-str/carriage-return.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table.toml) incorrectly parsed.
Not OK: [dotted-keys/extend-defined-table-with-subtable.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/dotted-keys/extend-defined-table-with-subtable.toml) incorrectly parsed.
Not OK: [inline-table/overwrite-value-in-inner-table.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/inline-table/overwrite-value-in-inner-table.toml) incorrectly parsed.
Not OK: [inline-table/override-val-with-table.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/inline-table/override-val-with-table.toml) incorrectly parsed.
*41/50 (82.00%) passed*|
+|tomllib|OK: [inline-table/overwrite-implicitly.toml](https://github.com/python/cpython/tree/v3.12.4/Lib/test/test_tomllib/data//invalid/inline-table/overwrite-implicitly.toml) Cannot overwrite a value (at line 1, column 21)
*50/50 (100%) passed*|
+
+## 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|2.05s (5000 iterations)|0.73s (5000 iterations)|
+|tomlkit|40.15s (5000 iterations)|1.00s (5000 iterations)|
+|rtoml|0.38s (5000 iterations)|0.08s (5000 iterations)|
+|qtoml|5.04s (5000 iterations)|1.89s (5000 iterations)|
+|tomllib|2.03s (5000 iterations)|Dumping not supported|
+
+## 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.39s (5000 iterations)|0.46s (5000 iterations)|
+|tomlkit|25.00s (5000 iterations)|0.50s (5000 iterations)|
+|rtoml|0.32s (5000 iterations)|0.16s (5000 iterations)|
+|qtoml|3.64s (5000 iterations)|1.25s (5000 iterations)|
+|tomllib|1.42s (5000 iterations)|Dumping not supported|
+
diff --git a/run-tests.py b/run-tests.py
index 97c48de..250ce40 100644
--- a/run-tests.py
+++ b/run-tests.py
@@ -4,10 +4,10 @@
from pathlib import Path
REPORTS = {
- "latest": "1.3.0",
+ "latest": "1.5.0",
+ "v1.4.0": "1.4.0",
+ "v1.3.0": "1.3.0",
"v1.2.0": "1.2.0",
- "v1.1.0": "1.1.0",
- "v1.0.0": "1.0.0",
}
@@ -16,7 +16,7 @@ def run_test(comver):
outfile = f"reports/with_toml-test_{comver}.md"
- cmd = f"python -m toml_bench --iter 1000 --comver {REPORTS[comver]} --report {outfile}"
+ cmd = f"python -m toml_bench --iter 5000 --comver {REPORTS[comver]} --report {outfile}"
os.system(cmd)
diff --git a/toml_bench/__main__.py b/toml_bench/__main__.py
index eef3c7a..37b82eb 100644
--- a/toml_bench/__main__.py
+++ b/toml_bench/__main__.py
@@ -1,57 +1,59 @@
from benchwork import run_suite
-from pyparam import Params
+from argx import ArgumentParser
from .suite import BenchSuite
-def init_params() -> Params:
- params = Params(
+def init_params() -> ArgumentParser:
+ """Init the parameters"""
+ parser = ArgumentParser(
prog="toml_bench",
- help_on_void=False,
- desc="Benchmarking on toml packages in python",
+ description="Benchmarking on toml packages in python",
)
- params.add_param(
- "datadir",
+ parser.add_argument(
+ "--datadir",
type="path",
default="/tmp/toml-bench",
- desc="Where to put the test-data",
+ help="Where to put the test-data",
)
- params.add_param(
- "report",
- default="",
- desc="If provided, the report will be written to this file",
+ parser.add_argument(
+ "--report",
+ type="path",
+ default="/dev/stdout",
+ help="If provided, the report will be written to this file",
)
- params.add_param(
- "title",
+ parser.add_argument(
+ "--title",
default="Report",
- desc="The title of the report",
+ help="The title of the report",
)
- params.add_param(
- "comver",
- default="1.3.0",
- desc="The version of the toml-test to use in compliance tests",
+ parser.add_argument(
+ "--comver",
+ default="1.5.0",
+ help="The version of the toml-test to use in compliance tests",
)
- params.add_param(
- "cpyver",
- default="3.11.0",
- desc="The version (tag) of cpython to grab the tomllib test data",
+ parser.add_argument(
+ "--cpyver",
+ default="3.12.4",
+ help="The version (tag) of cpython to grab the tomllib test data",
)
- params.add_param(
- "nocache",
- default=False,
- desc="Do not use cached data, re-download them.",
+ parser.add_argument(
+ "--nocache",
+ action="store_true",
+ help="Do not use cached data, re-download them.",
)
- params.add_param(
- "iter",
+ parser.add_argument(
+ "--iter",
+ type="int",
default=5000,
- desc="The number of iterations to run in speed tests",
+ help="The number of iterations to run in speed tests",
)
- return params
+ return parser
def main():
"""Main entrance"""
- args = init_params().parse()
+ args = init_params().parse_args()
run_suite(
BenchSuite,
args=args,
diff --git a/toml_bench/suite.py b/toml_bench/suite.py
index 4f33e37..ba524dc 100644
--- a/toml_bench/suite.py
+++ b/toml_bench/suite.py
@@ -18,7 +18,7 @@
BenchSetComplianceInvalid,
BenchSetTomllibComplianceValid,
BenchSetTomllibComplianceInvalid,
- BenchSetSpeedWithPytomlppData,
+ # BenchSetSpeedWithPytomlppData,
BenchSetSpeedWithRtomlData,
BenchSetSpeedWithTomliData,
)
@@ -43,7 +43,7 @@ class BenchSuite(BenchSuite):
BenchSetComplianceInvalid,
BenchSetTomllibComplianceValid,
BenchSetTomllibComplianceInvalid,
- BenchSetSpeedWithPytomlppData,
+ # BenchSetSpeedWithPytomlppData,
BenchSetSpeedWithRtomlData,
BenchSetSpeedWithTomliData,
]