Skip to content

Commit

Permalink
Use tomllib on Python 3.11 (#9741)
Browse files Browse the repository at this point in the history
  • Loading branch information
hauntsaninja committed Apr 17, 2022
1 parent 752a059 commit 2e8a319
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 4 deletions.
3 changes: 3 additions & 0 deletions changelog/9741.improvement.rst
@@ -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.
2 changes: 1 addition & 1 deletion setup.cfg
Expand Up @@ -46,10 +46,10 @@ install_requires =
packaging
pluggy>=0.12,<2.0
py>=1.8.2
tomli>=1.0.0
atomicwrites>=1.0;sys_platform=="win32"
colorama;sys_platform=="win32"
importlib-metadata>=0.12;python_version<"3.8"
tomli>=1.0.0;python_version<"3.11"
python_requires = >=3.7
package_dir =
=src
Expand Down
10 changes: 7 additions & 3 deletions src/_pytest/config/findpaths.py
@@ -1,4 +1,5 @@
import os
import sys
from pathlib import Path
from typing import Dict
from typing import Iterable
Expand Down Expand Up @@ -64,12 +65,15 @@ def load_config_dict_from_file(

# '.toml' files are considered if they contain a [tool.pytest.ini_options] table.
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")
try:
config = tomli.loads(toml_text)
except tomli.TOMLDecodeError as exc:
config = tomllib.loads(toml_text)
except tomllib.TOMLDecodeError as exc:
raise UsageError(f"{filepath}: {exc}") from exc

result = config.get("tool", {}).get("pytest", {}).get("ini_options", None)
Expand Down

0 comments on commit 2e8a319

Please sign in to comment.