Use tomllib on Python 3.11 (#9741)
This commit is contained in:
parent
752a059cc2
commit
2e8a319828
|
@ -0,0 +1,3 @@
|
||||||
|
On Python 3.11, use the standard library's :mod:`tomllib` to parse TOML.
|
||||||
|
|
||||||
|
:mod:`tomli`` is no longer a dependency on Python 3.11.
|
|
@ -46,10 +46,10 @@ install_requires =
|
||||||
packaging
|
packaging
|
||||||
pluggy>=0.12,<2.0
|
pluggy>=0.12,<2.0
|
||||||
py>=1.8.2
|
py>=1.8.2
|
||||||
tomli>=1.0.0
|
|
||||||
atomicwrites>=1.0;sys_platform=="win32"
|
atomicwrites>=1.0;sys_platform=="win32"
|
||||||
colorama;sys_platform=="win32"
|
colorama;sys_platform=="win32"
|
||||||
importlib-metadata>=0.12;python_version<"3.8"
|
importlib-metadata>=0.12;python_version<"3.8"
|
||||||
|
tomli>=1.0.0;python_version<"3.11"
|
||||||
python_requires = >=3.7
|
python_requires = >=3.7
|
||||||
package_dir =
|
package_dir =
|
||||||
=src
|
=src
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import os
|
import os
|
||||||
|
import sys
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Dict
|
from typing import Dict
|
||||||
from typing import Iterable
|
from typing import Iterable
|
||||||
|
@ -64,12 +65,15 @@ def load_config_dict_from_file(
|
||||||
|
|
||||||
# '.toml' files are considered if they contain a [tool.pytest.ini_options] table.
|
# '.toml' files are considered if they contain a [tool.pytest.ini_options] table.
|
||||||
elif filepath.suffix == ".toml":
|
elif filepath.suffix == ".toml":
|
||||||
import tomli
|
if sys.version_info >= (3, 11):
|
||||||
|
import tomllib
|
||||||
|
else:
|
||||||
|
import tomli as tomllib
|
||||||
|
|
||||||
toml_text = filepath.read_text(encoding="utf-8")
|
toml_text = filepath.read_text(encoding="utf-8")
|
||||||
try:
|
try:
|
||||||
config = tomli.loads(toml_text)
|
config = tomllib.loads(toml_text)
|
||||||
except tomli.TOMLDecodeError as exc:
|
except tomllib.TOMLDecodeError as exc:
|
||||||
raise UsageError(f"{filepath}: {exc}") from exc
|
raise UsageError(f"{filepath}: {exc}") from exc
|
||||||
|
|
||||||
result = config.get("tool", {}).get("pytest", {}).get("ini_options", None)
|
result = config.get("tool", {}).get("pytest", {}).get("ini_options", None)
|
||||||
|
|
Loading…
Reference in New Issue