From bca65fa4bc7f20b053e5ca63ad3e0e4a067d5314 Mon Sep 17 00:00:00 2001 From: Tyler Yep Date: Tue, 11 Feb 2025 00:59:20 -0800 Subject: [PATCH] Upgrade to Ruff v0.9.6 --- .pre-commit-config.yaml | 2 +- stanfordkarel/didyoumean.py | 3 ++- stanfordkarel/karel_application.py | 7 +++++-- stanfordkarel/karel_ascii.py | 9 ++++++--- stanfordkarel/style_checker.py | 3 ++- stanfordkarel/world_editor.py | 5 ++++- 6 files changed, 20 insertions(+), 9 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 82878c0..38eae0c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -2,7 +2,7 @@ ci: skip: [mypy, pytest] repos: - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.9.4 + rev: v0.9.6 hooks: - id: ruff args: [--fix] diff --git a/stanfordkarel/didyoumean.py b/stanfordkarel/didyoumean.py index 84853c3..21ce084 100644 --- a/stanfordkarel/didyoumean.py +++ b/stanfordkarel/didyoumean.py @@ -13,9 +13,10 @@ import difflib import itertools import re -from typing import TYPE_CHECKING, Any, Callable, Iterator +from typing import TYPE_CHECKING, Any if TYPE_CHECKING: + from collections.abc import Callable, Iterator from types import FrameType, TracebackType # To be used in `get_suggestions_for_exception`. diff --git a/stanfordkarel/karel_application.py b/stanfordkarel/karel_application.py index 1124e93..4c9ec96 100644 --- a/stanfordkarel/karel_application.py +++ b/stanfordkarel/karel_application.py @@ -20,12 +20,15 @@ from tkinter.filedialog import askopenfilename from tkinter.messagebox import showwarning from types import FrameType, ModuleType -from typing import Any, Callable, cast +from typing import TYPE_CHECKING, Any, cast from .didyoumean import add_did_you_mean from .karel_canvas import DEFAULT_ICON, LIGHT_GREY, PAD_X, PAD_Y, KarelCanvas from .karel_program import KarelException, KarelProgram +if TYPE_CHECKING: + from collections.abc import Callable + class StudentModule(ModuleType): move: Any @@ -130,7 +133,7 @@ def main(self) -> None: try: self.mods[0].main() except Exception as e: - if isinstance(e, (KarelException, NameError, RuntimeError)): + if isinstance(e, KarelException | NameError | RuntimeError): self.print_error_traceback(e) raise diff --git a/stanfordkarel/karel_ascii.py b/stanfordkarel/karel_ascii.py index 1fa7130..db25f6e 100644 --- a/stanfordkarel/karel_ascii.py +++ b/stanfordkarel/karel_ascii.py @@ -10,14 +10,17 @@ from __future__ import annotations from enum import Enum, unique -from typing import Any, Dict, Iterator, Tuple +from typing import TYPE_CHECKING, Any from .karel_world import Direction, KarelWorld +if TYPE_CHECKING: + from collections.abc import Iterator + CHAR_WIDTH = 5 HORIZONTAL, VERTICAL = "─", "│" SPACING = 10 -BEEPER_COORDS = Dict[Tuple[int, int], int] +BEEPER_COORDS = dict[tuple[int, int], int] class Tile: @@ -182,7 +185,7 @@ def compare_output(first: Any, second: Any) -> str: def create_two_column_string(col1: list[str], col2: list[str]) -> Iterator[str]: """col1 and col2 are Lists.""" - return (f"{x[0]}{' ' * SPACING}{x[1]}" for x in zip(col1, col2)) + return (f"{x[0]}{' ' * SPACING}{x[1]}" for x in zip(col1, col2, strict=False)) def symmetric_difference( a: BEEPER_COORDS, b: BEEPER_COORDS diff --git a/stanfordkarel/style_checker.py b/stanfordkarel/style_checker.py index 1fc7788..a4d8ee0 100644 --- a/stanfordkarel/style_checker.py +++ b/stanfordkarel/style_checker.py @@ -10,8 +10,9 @@ import ast import inspect +from collections.abc import Callable from pathlib import Path -from typing import Any, Callable +from typing import Any import stanfordkarel diff --git a/stanfordkarel/world_editor.py b/stanfordkarel/world_editor.py index bfd1dce..18a7b38 100644 --- a/stanfordkarel/world_editor.py +++ b/stanfordkarel/world_editor.py @@ -15,12 +15,15 @@ from pathlib import Path from tkinter import messagebox, simpledialog from tkinter.filedialog import askopenfilename, asksaveasfilename -from typing import Any, Callable +from typing import TYPE_CHECKING, Any from .karel_canvas import DEFAULT_ICON, LIGHT_GREY, PAD_X, PAD_Y, KarelCanvas from .karel_program import KarelProgram from .karel_world import COLOR_MAP, INFINITY, Direction +if TYPE_CHECKING: + from collections.abc import Callable + MIN_DIMENSIONS = 1 MAX_DIMENSIONS = 50 DEFAULT_COLOR = "Red"