From 110ba4c808499420ef499cd6fee04bf2ad1feffb Mon Sep 17 00:00:00 2001 From: Alexandre Detiste Date: Mon, 28 Jul 2025 17:39:36 +0200 Subject: [PATCH 1/4] prefer newer "tomllib" over "tomli" backport --- lib/ts_utils/metadata.py | 10 +++++++--- lib/ts_utils/mypy.py | 7 +++++-- requirements-tests.txt | 2 +- scripts/stubsabot.py | 8 ++++++-- 4 files changed, 19 insertions(+), 8 deletions(-) diff --git a/lib/ts_utils/metadata.py b/lib/ts_utils/metadata.py index ff5bfadec494..5ba349cca14d 100644 --- a/lib/ts_utils/metadata.py +++ b/lib/ts_utils/metadata.py @@ -15,7 +15,11 @@ from typing import Annotated, Any, Final, NamedTuple, final from typing_extensions import TypeGuard -import tomli +try: + import tomllib +except ImportError: + import tomli as tomllib + import tomlkit from packaging.requirements import Requirement from packaging.specifiers import Specifier @@ -52,7 +56,7 @@ def _is_nested_dict(obj: object) -> TypeGuard[dict[str, dict[str, Any]]]: @functools.cache def get_oldest_supported_python() -> str: with PYPROJECT_PATH.open("rb") as config: - val = tomli.load(config)["tool"]["typeshed"]["oldest_supported_python"] + val = tomllib.load(config)["tool"]["typeshed"]["oldest_supported_python"] assert type(val) is str return val @@ -92,7 +96,7 @@ def system_requirements_for_platform(self, platform: str) -> list[str]: def read_stubtest_settings(distribution: str) -> StubtestSettings: """Return an object describing the stubtest settings for a single stubs distribution.""" with metadata_path(distribution).open("rb") as f: - data: dict[str, object] = tomli.load(f).get("tool", {}).get("stubtest", {}) + data: dict[str, object] = tomllib.load(f).get("tool", {}).get("stubtest", {}) skip: object = data.get("skip", False) apt_dependencies: object = data.get("apt_dependencies", []) diff --git a/lib/ts_utils/mypy.py b/lib/ts_utils/mypy.py index 39f4255ec011..69aa15491713 100644 --- a/lib/ts_utils/mypy.py +++ b/lib/ts_utils/mypy.py @@ -4,7 +4,10 @@ from contextlib import contextmanager from typing import Any, NamedTuple -import tomli +try: + import tomllib +except ImportError: + import tomli as tomllib from ts_utils.metadata import StubtestSettings, metadata_path from ts_utils.utils import NamedTemporaryFile, TemporaryFileWrapper @@ -26,7 +29,7 @@ class MypyDistConf(NamedTuple): def mypy_configuration_from_distribution(distribution: str) -> list[MypyDistConf]: with metadata_path(distribution).open("rb") as f: - data = tomli.load(f) + data = tomllib.load(f) # TODO: This could be added to ts_utils.metadata mypy_tests_conf: dict[str, dict[str, Any]] = data.get("mypy-tests", {}) diff --git a/requirements-tests.txt b/requirements-tests.txt index d9dbeb1f85dc..819ac11c17fb 100644 --- a/requirements-tests.txt +++ b/requirements-tests.txt @@ -19,7 +19,7 @@ ruff==0.12.2 # TODO (2025-05-07): Dependency libcst doesn't support Python 3.14 yet. stubdefaulter==0.1.0; python_version < "3.14" termcolor>=2.3 -tomli==2.2.1 +tomli==2.2.1; python_version < "3.11" tomlkit==0.13.3 typing_extensions>=4.14.0rc1 uv==0.7.19 diff --git a/scripts/stubsabot.py b/scripts/stubsabot.py index 71e0d0b04527..4147d067f4fa 100755 --- a/scripts/stubsabot.py +++ b/scripts/stubsabot.py @@ -25,9 +25,13 @@ from typing import Annotated, Any, ClassVar, NamedTuple, TypeVar from typing_extensions import Self, TypeAlias +try: + import tomllib +except ImportError: + import tomli as tomllib + import aiohttp import packaging.version -import tomli import tomlkit from packaging.specifiers import Specifier from termcolor import colored @@ -536,7 +540,7 @@ def parse_no_longer_updated_from_archive(source: zipfile.ZipFile | tarfile.TarFi return False with file as f: - toml_data: dict[str, object] = tomli.load(f) + toml_data: dict[str, object] = tomllib.load(f) no_longer_updated = toml_data.get("no_longer_updated", False) assert type(no_longer_updated) is bool From 0d52d840a9af0b1af2d8f1131ac4353c1e218278 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 28 Jul 2025 15:42:23 +0000 Subject: [PATCH 2/4] [pre-commit.ci] auto fixes from pre-commit.com hooks --- scripts/stubsabot.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/stubsabot.py b/scripts/stubsabot.py index 4147d067f4fa..a797d472227b 100755 --- a/scripts/stubsabot.py +++ b/scripts/stubsabot.py @@ -26,9 +26,9 @@ from typing_extensions import Self, TypeAlias try: - import tomllib + import tomllib except ImportError: - import tomli as tomllib + import tomli as tomllib import aiohttp import packaging.version From 0c196fa66ed71accb3d8b83983a8cc8be8756484 Mon Sep 17 00:00:00 2001 From: Alexandre Detiste Date: Mon, 28 Jul 2025 17:48:46 +0200 Subject: [PATCH 3/4] merge --- lib/ts_utils/metadata.py | 4 ++-- lib/ts_utils/mypy.py | 4 ++-- scripts/stubsabot.py | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/ts_utils/metadata.py b/lib/ts_utils/metadata.py index 5ba349cca14d..4039464b4c92 100644 --- a/lib/ts_utils/metadata.py +++ b/lib/ts_utils/metadata.py @@ -15,9 +15,9 @@ from typing import Annotated, Any, Final, NamedTuple, final from typing_extensions import TypeGuard -try: +if sys.version_info >= (3, 11): import tomllib -except ImportError: +else: import tomli as tomllib import tomlkit diff --git a/lib/ts_utils/mypy.py b/lib/ts_utils/mypy.py index 69aa15491713..8dd49bcce61d 100644 --- a/lib/ts_utils/mypy.py +++ b/lib/ts_utils/mypy.py @@ -4,9 +4,9 @@ from contextlib import contextmanager from typing import Any, NamedTuple -try: +if sys.version_info >= (3, 11): import tomllib -except ImportError: +else: import tomli as tomllib from ts_utils.metadata import StubtestSettings, metadata_path diff --git a/scripts/stubsabot.py b/scripts/stubsabot.py index a797d472227b..7b7ac77a06c7 100755 --- a/scripts/stubsabot.py +++ b/scripts/stubsabot.py @@ -25,9 +25,9 @@ from typing import Annotated, Any, ClassVar, NamedTuple, TypeVar from typing_extensions import Self, TypeAlias -try: +if sys.version_info >= (3, 11): import tomllib -except ImportError: +else: import tomli as tomllib import aiohttp From 6b3f21f6c11792a9f03ec4205ace6e7ed3f0e8fc Mon Sep 17 00:00:00 2001 From: Alexandre Detiste Date: Mon, 28 Jul 2025 17:51:33 +0200 Subject: [PATCH 4/4] pyflakes --- lib/ts_utils/metadata.py | 1 + lib/ts_utils/mypy.py | 1 + 2 files changed, 2 insertions(+) diff --git a/lib/ts_utils/metadata.py b/lib/ts_utils/metadata.py index 4039464b4c92..43a8c918b770 100644 --- a/lib/ts_utils/metadata.py +++ b/lib/ts_utils/metadata.py @@ -8,6 +8,7 @@ import datetime import functools import re +import sys import urllib.parse from collections.abc import Mapping from dataclasses import dataclass diff --git a/lib/ts_utils/mypy.py b/lib/ts_utils/mypy.py index 8dd49bcce61d..5bfcfc1528c8 100644 --- a/lib/ts_utils/mypy.py +++ b/lib/ts_utils/mypy.py @@ -1,5 +1,6 @@ from __future__ import annotations +import sys from collections.abc import Generator, Iterable from contextlib import contextmanager from typing import Any, NamedTuple pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy