From 839d0e35aeb6ec00c66668d91a5429de93661aa7 Mon Sep 17 00:00:00 2001 From: Jakob Moser Date: Wed, 21 May 2025 13:54:29 +0200 Subject: [PATCH] Configure Ruff and lint everything --- karaokatalog/Library.py | 5 ++--- karaokatalog/Song.py | 5 ++--- karaokatalog/deduplicate/__main__.py | 19 +++++++++++-------- karaokatalog/deduplicate/find_duplicates.py | 4 ++-- .../deduplicate/instructions/Instruction.py | 5 ++--- karaokatalog/util/get_equivalence_classes.py | 2 +- pyproject.toml | 18 ++++++++++++++++++ 7 files changed, 38 insertions(+), 20 deletions(-) create mode 100644 pyproject.toml diff --git a/karaokatalog/Library.py b/karaokatalog/Library.py index 363a3e3..049e9ae 100644 --- a/karaokatalog/Library.py +++ b/karaokatalog/Library.py @@ -1,9 +1,8 @@ +from collections.abc import Sequence +from dataclasses import dataclass from pathlib import Path from typing import Self -from dataclasses import dataclass -from collections.abc import Sequence - from tqdm import tqdm from karaokatalog.Song import Song diff --git a/karaokatalog/Song.py b/karaokatalog/Song.py index db207d4..8b7515f 100644 --- a/karaokatalog/Song.py +++ b/karaokatalog/Song.py @@ -1,10 +1,9 @@ from __future__ import annotations +import filecmp +from dataclasses import dataclass from pathlib import Path from typing import Self -import filecmp - -from dataclasses import dataclass type Title = str type Artist = str diff --git a/karaokatalog/deduplicate/__main__.py b/karaokatalog/deduplicate/__main__.py index 8035660..97abcc4 100644 --- a/karaokatalog/deduplicate/__main__.py +++ b/karaokatalog/deduplicate/__main__.py @@ -1,14 +1,15 @@ -from karaokatalog.Library import Library -from karaokatalog.Song import Song +import logging +import sys +from pathlib import Path + +from tqdm import tqdm + from karaokatalog.deduplicate.find_duplicates import find_duplicates from karaokatalog.deduplicate.prune import prune +from karaokatalog.Library import Library +from karaokatalog.Song import Song from karaokatalog.util.get_equivalence_classes import get_equivalence_classes -from pathlib import Path -from tqdm import tqdm -import sys -import logging - logging.basicConfig( format="%(asctime)s [%(levelname)s] %(message)s", level=logging.INFO ) @@ -39,7 +40,9 @@ if __name__ == "__main__": for equivalence_class in tqdm(exact_duplicates, unit=" exact duplicates") for instruction in prune(equivalence_class) ) - logging.info(f"{len(pruning_instructions)} exactly duplicated songs will be deleted") + logging.info( + f"{len(pruning_instructions)} exactly duplicated songs will be deleted" + ) # TODO Call all pruning_instructions, to actually delete the files diff --git a/karaokatalog/deduplicate/find_duplicates.py b/karaokatalog/deduplicate/find_duplicates.py index 97fbcbc..db16219 100644 --- a/karaokatalog/deduplicate/find_duplicates.py +++ b/karaokatalog/deduplicate/find_duplicates.py @@ -1,10 +1,10 @@ -from collections.abc import Mapping, Sequence from collections import defaultdict +from collections.abc import Mapping, Sequence from tqdm import tqdm from karaokatalog.Library import Library -from karaokatalog.Song import Song, Title, Artist +from karaokatalog.Song import Artist, Song, Title type TitleAndArtist = tuple[Title, Artist] diff --git a/karaokatalog/deduplicate/instructions/Instruction.py b/karaokatalog/deduplicate/instructions/Instruction.py index fb31ae2..1dcd4cd 100644 --- a/karaokatalog/deduplicate/instructions/Instruction.py +++ b/karaokatalog/deduplicate/instructions/Instruction.py @@ -1,6 +1,5 @@ from typing import Protocol -class Instruction(Protocol): - def __call__(self) -> None: - ... +class Instruction(Protocol): + def __call__(self) -> None: ... diff --git a/karaokatalog/util/get_equivalence_classes.py b/karaokatalog/util/get_equivalence_classes.py index 69fa667..b69503b 100644 --- a/karaokatalog/util/get_equivalence_classes.py +++ b/karaokatalog/util/get_equivalence_classes.py @@ -1,4 +1,4 @@ -from collections.abc import Iterable, Sequence, Callable +from collections.abc import Callable, Iterable, Sequence type EquivalenceClass[T] = Sequence[T] diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..ff97b97 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,18 @@ +[project] +requires-python = ">=3.12" + +[tool.ruff.lint] +select = [ + # Pyflakes + "F", + # isort (for imports) + "I", + # pyupgrade (to upgrade to latest language syntax) + "UP", + # flake8-simplify + "SIM", + # flake8-use-pathlib + "PTH", + # mccabe + "C90", +]