diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 0490ae968..adf3f9bdc 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -58,7 +58,7 @@ repos: - py>=1.8.2 - attrs>=19.2.0 - packaging - - types-toml + - tomli - types-pkg_resources - repo: local hooks: diff --git a/AUTHORS b/AUTHORS index 5c3610e69..16a53d94b 100644 --- a/AUTHORS +++ b/AUTHORS @@ -302,6 +302,7 @@ Sven-Hendrik Haase Sylvain Marié Tadek Teleżyński Takafumi Arakaki +Taneli Hukkinen Tanvi Mehta Tarcisio Fischer Tareq Alayan diff --git a/changelog/8789.feature.rst b/changelog/8789.feature.rst new file mode 100644 index 000000000..198d9ade3 --- /dev/null +++ b/changelog/8789.feature.rst @@ -0,0 +1 @@ +Support TOML v1.0.0 syntax in ``pyproject.toml``. diff --git a/setup.cfg b/setup.cfg index 0e86f10e7..094dfed87 100644 --- a/setup.cfg +++ b/setup.cfg @@ -47,7 +47,7 @@ install_requires = packaging pluggy>=0.12,<1.0.0a1 py>=1.8.2 - toml + tomli>=1.0.0,<2.0.0 atomicwrites>=1.0;sys_platform=="win32" colorama;sys_platform=="win32" importlib-metadata>=0.12;python_version<"3.8" diff --git a/src/_pytest/config/findpaths.py b/src/_pytest/config/findpaths.py index 7dde4b92d..62214f8d9 100644 --- a/src/_pytest/config/findpaths.py +++ b/src/_pytest/config/findpaths.py @@ -64,9 +64,9 @@ def load_config_dict_from_file( # '.toml' files are considered if they contain a [tool.pytest.ini_options] table. elif filepath.suffix == ".toml": - import toml + import tomli - config = toml.load(str(filepath)) + config = tomli.loads(filepath.read_text(encoding="utf-8")) result = config.get("tool", {}).get("pytest", {}).get("ini_options", None) if result is not None: diff --git a/testing/test_findpaths.py b/testing/test_findpaths.py index af6aeb3a5..3c876d96b 100644 --- a/testing/test_findpaths.py +++ b/testing/test_findpaths.py @@ -77,6 +77,7 @@ class TestLoadConfigDictFromFile: y = 20.0 values = ["tests", "integration"] name = "foo" + heterogeneous_array = [1, "str"] """ ), encoding="utf-8", @@ -86,6 +87,7 @@ class TestLoadConfigDictFromFile: "y": "20.0", "values": ["tests", "integration"], "name": "foo", + "heterogeneous_array": [1, "str"], }