From f9f0cf7524707cd0099e4088b8122540b20b34bd Mon Sep 17 00:00:00 2001 From: Charlie Marsh Date: Thu, 22 Jun 2023 11:40:16 -0400 Subject: [PATCH] Use `__future__` imports in scripts (#5301) --- scripts/_utils.py | 2 ++ scripts/add_plugin.py | 1 + scripts/add_rule.py | 1 + scripts/check_docs_formatted.py | 7 ++++++- scripts/ecosystem_all_check.py | 5 +++-- scripts/generate_known_standard_library.py | 1 + scripts/generate_mkdocs.py | 2 ++ scripts/pyproject.toml | 5 ++++- scripts/transform_readme.py | 2 ++ scripts/update_ambiguous_characters.py | 2 ++ scripts/update_schemastore.py | 1 + 11 files changed, 25 insertions(+), 4 deletions(-) diff --git a/scripts/_utils.py b/scripts/_utils.py index 23ac16d57d3b1..7871be6cd9787 100644 --- a/scripts/_utils.py +++ b/scripts/_utils.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import re from pathlib import Path diff --git a/scripts/add_plugin.py b/scripts/add_plugin.py index 7cc83974b74ed..9e171faf5c2d1 100755 --- a/scripts/add_plugin.py +++ b/scripts/add_plugin.py @@ -8,6 +8,7 @@ --url https://pypi.org/project/flake8-pie/ --prefix PIE """ +from __future__ import annotations import argparse diff --git a/scripts/add_rule.py b/scripts/add_rule.py index 43bfddfadec3a..1fb271aa85ee5 100755 --- a/scripts/add_rule.py +++ b/scripts/add_rule.py @@ -9,6 +9,7 @@ --code 807 \ --linter flake8-pie """ +from __future__ import annotations import argparse import subprocess diff --git a/scripts/check_docs_formatted.py b/scripts/check_docs_formatted.py index 336ce040ebdaf..7256f28c7cdc7 100755 --- a/scripts/check_docs_formatted.py +++ b/scripts/check_docs_formatted.py @@ -1,17 +1,22 @@ #!/usr/bin/env python3 """Check code snippets in docs are formatted by black.""" +from __future__ import annotations + import argparse import os import re import textwrap -from collections.abc import Sequence from pathlib import Path from re import Match +from typing import TYPE_CHECKING import black from black.mode import Mode, TargetVersion from black.parsing import InvalidInput +if TYPE_CHECKING: + from collections.abc import Sequence + TARGET_VERSIONS = ["py37", "py38", "py39", "py310", "py311"] SNIPPED_RE = re.compile( r"(?P^(?P *)```\s*python\n)" diff --git a/scripts/ecosystem_all_check.py b/scripts/ecosystem_all_check.py index 9f509c57ac9c0..96107c7365ac5 100644 --- a/scripts/ecosystem_all_check.py +++ b/scripts/ecosystem_all_check.py @@ -3,13 +3,14 @@ It's a less elaborate, more hacky version of check_ecosystem.py """ +from __future__ import annotations import json import subprocess import sys from pathlib import Path from subprocess import CalledProcessError -from typing import NamedTuple, Optional +from typing import NamedTuple from tqdm import tqdm @@ -19,7 +20,7 @@ class Repository(NamedTuple): org: str repo: str - ref: Optional[str] + ref: str | None def main() -> None: diff --git a/scripts/generate_known_standard_library.py b/scripts/generate_known_standard_library.py index 7fd7ae7222aed..5d9c66c58b02c 100644 --- a/scripts/generate_known_standard_library.py +++ b/scripts/generate_known_standard_library.py @@ -5,6 +5,7 @@ Only the generation of the file has been modified for use in this project. """ +from __future__ import annotations from pathlib import Path diff --git a/scripts/generate_mkdocs.py b/scripts/generate_mkdocs.py index 5793858e9154a..8d0b92b882b22 100644 --- a/scripts/generate_mkdocs.py +++ b/scripts/generate_mkdocs.py @@ -1,4 +1,6 @@ """Generate an MkDocs-compatible `docs` and `mkdocs.yml` from the README.md.""" +from __future__ import annotations + import argparse import re import shutil diff --git a/scripts/pyproject.toml b/scripts/pyproject.toml index ca7d45e5083ff..7f4282c4c3b8e 100644 --- a/scripts/pyproject.toml +++ b/scripts/pyproject.toml @@ -2,7 +2,7 @@ name = "scripts" version = "0.0.1" dependencies = ["sphinx"] -requires-python = ">=3.9" +requires-python = ">=3.8" [tool.black] line-length = 88 @@ -21,5 +21,8 @@ ignore = [ "FBT", # flake8-boolean-trap ] +[tool.ruff.isort] +required-imports = ["from __future__ import annotations"] + [tool.ruff.pydocstyle] convention = "pep257" diff --git a/scripts/transform_readme.py b/scripts/transform_readme.py index 963f55ca3f8be..7170eef20f1f3 100644 --- a/scripts/transform_readme.py +++ b/scripts/transform_readme.py @@ -4,6 +4,8 @@ targets have different strategies for rendering light- and dark-mode images. This script adjusts the images in the README.md to support the given target. """ +from __future__ import annotations + import argparse from pathlib import Path diff --git a/scripts/update_ambiguous_characters.py b/scripts/update_ambiguous_characters.py index 4243313e6e95e..27a06fd039176 100644 --- a/scripts/update_ambiguous_characters.py +++ b/scripts/update_ambiguous_characters.py @@ -1,4 +1,6 @@ """Generate the confusables.rs file from the VS Code ambiguous.json file.""" +from __future__ import annotations + import json import subprocess from pathlib import Path diff --git a/scripts/update_schemastore.py b/scripts/update_schemastore.py index 9c79d7dc425b9..685fa7bbff0ed 100644 --- a/scripts/update_schemastore.py +++ b/scripts/update_schemastore.py @@ -4,6 +4,7 @@ to a new branch tagged with the ruff git hash. You should see a URL to create the PR to schemastore in the CLI. """ +from __future__ import annotations import json from pathlib import Path