diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index e9b3e53..7b0404a 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,7 +1,7 @@ # https://pre-commit.com repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.3.0 + rev: v4.6.0 hooks: - id: check-added-large-files - id: check-case-conflict @@ -24,7 +24,7 @@ repos: - --markdown-linebreak-ext=md - repo: https://github.com/pre-commit/mirrors-mypy - rev: v0.971 + rev: v1.10.0 hooks: - id: mypy args: @@ -33,14 +33,14 @@ repos: - types-requests - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.0.291 + rev: v0.4.4 hooks: - id: ruff args: [--fix, --exit-non-zero-on-fix] - id: ruff-format - repo: https://github.com/shellcheck-py/shellcheck-py - rev: v0.8.0.4 + rev: v0.10.0.1 hooks: - id: shellcheck diff --git a/freeze.py b/freeze.py index aa80fd7..9fd0966 100644 --- a/freeze.py +++ b/freeze.py @@ -1,4 +1,4 @@ -""" Package freezing for Windows. """ +"""Package freezing for Windows.""" import os import re diff --git a/sacad/__init__.py b/sacad/__init__.py index 1774461..e4d17b8 100755 --- a/sacad/__init__.py +++ b/sacad/__init__.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 -""" Smart Automatic Cover Art Downloader : search and download music album covers. """ +"""Smart Automatic Cover Art Downloader : search and download music album covers.""" __version__ = "2.7.5" __author__ = "desbma" diff --git a/sacad/__main__.py b/sacad/__main__.py index bc88bb3..2b6d2f5 100755 --- a/sacad/__main__.py +++ b/sacad/__main__.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 -""" Command line entry point for sacad program. """ +"""Command line entry point for sacad program.""" import sacad diff --git a/sacad/colored_logging.py b/sacad/colored_logging.py index 962395b..63ab649 100644 --- a/sacad/colored_logging.py +++ b/sacad/colored_logging.py @@ -1,4 +1,4 @@ -""" Formatter for the logging module, coloring terminal output according to error criticity. """ +"""Formatter for the logging module, coloring terminal output according to error criticity.""" import enum import logging @@ -11,7 +11,6 @@ class ColoredFormatter(logging.Formatter): - """Logging formatter coloring terminal output according to error criticity.""" def format(self, record): diff --git a/sacad/cover.py b/sacad/cover.py index c0180eb..51b3b1e 100644 --- a/sacad/cover.py +++ b/sacad/cover.py @@ -1,4 +1,4 @@ -""" Sacad album cover. """ +"""Sacad album cover.""" import asyncio import enum @@ -35,7 +35,6 @@ class CoverSourceQuality(enum.IntFlag): - """Flags to describe cover source quality.""" # whether or not the search query matching is fuzzy (does a typo return results ?) @@ -61,7 +60,6 @@ def isReference(self) -> bool: class CoverImageMetadata(enum.IntFlag): - """Flags to describe image metadata.""" NONE = 0 @@ -83,7 +81,6 @@ def is_square(x): class CoverSourceResult: - """Cover image returned by a source, candidate to be downloaded.""" METADATA_PEEK_SIZE_INCREMENT = 2**12 diff --git a/sacad/http_helpers.py b/sacad/http_helpers.py index d463954..4813586 100644 --- a/sacad/http_helpers.py +++ b/sacad/http_helpers.py @@ -1,4 +1,4 @@ -""" Common HTTP code. """ +"""Common HTTP code.""" import asyncio import logging @@ -26,7 +26,6 @@ def aiohttp_socket_timeout(socket_timeout_s): class Http: - """Async HTTP client code.""" def __init__( diff --git a/sacad/mkstemp_ctx.py b/sacad/mkstemp_ctx.py index 1b4f1b6..edf5e0f 100644 --- a/sacad/mkstemp_ctx.py +++ b/sacad/mkstemp_ctx.py @@ -1,4 +1,4 @@ -""" Additions to the tempfile module. """ +"""Additions to the tempfile module.""" import contextlib import os diff --git a/sacad/rate_watcher.py b/sacad/rate_watcher.py index 1b718ef..916e082 100644 --- a/sacad/rate_watcher.py +++ b/sacad/rate_watcher.py @@ -1,4 +1,4 @@ -""" Provide a class with a context manager to help avoid overloading web servers. """ +"""Provide a class with a context manager to help avoid overloading web servers.""" import asyncio import logging @@ -10,7 +10,6 @@ class AccessRateWatcher: - """Access rate limiter, supporting concurrent access by threads and/or processes.""" def __init__( diff --git a/sacad/recurse.py b/sacad/recurse.py index c88be66..bc221c6 100755 --- a/sacad/recurse.py +++ b/sacad/recurse.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 -""" Recursively search and download album covers for a music library. """ +"""Recursively search and download album covers for a music library.""" import argparse import asyncio @@ -36,7 +36,6 @@ # TODO use a dataclasses.dataclass when Python < 3.7 is dropped class Work: - """Represent a single search & download work item.""" def __init__(self, cover_filepath, audio_filepaths, metadata): diff --git a/sacad/sources/__init__.py b/sacad/sources/__init__.py index 42a498f..ae677eb 100644 --- a/sacad/sources/__init__.py +++ b/sacad/sources/__init__.py @@ -1,4 +1,4 @@ -""" SACAD cover sources. """ +"""SACAD cover sources.""" from sacad.sources.amazoncd import AmazonCdCoverSource, AmazonCdCoverSourceResult # noqa: F401 from sacad.sources.amazondigital import AmazonDigitalCoverSource, AmazonDigitalCoverSourceResult # noqa: F401 diff --git a/sacad/sources/amazonbase.py b/sacad/sources/amazonbase.py index 364d1a2..81f757c 100644 --- a/sacad/sources/amazonbase.py +++ b/sacad/sources/amazonbase.py @@ -1,10 +1,9 @@ -""" Base class for Amazon cover sources. """ +"""Base class for Amazon cover sources.""" from sacad.sources.base import CoverSource class AmazonBaseCoverSource(CoverSource): - """Base class for Amazon cover sources.""" def __init__(self, *args, base_domain, **kwargs): diff --git a/sacad/sources/amazoncd.py b/sacad/sources/amazoncd.py index 5c2c172..7ba913e 100644 --- a/sacad/sources/amazoncd.py +++ b/sacad/sources/amazoncd.py @@ -1,4 +1,4 @@ -""" Amazon CD cover source. """ +"""Amazon CD cover source.""" import collections import urllib.parse @@ -11,7 +11,6 @@ class AmazonCdCoverSourceResult(CoverSourceResult): - """Amazon CD cover search result.""" def __init__(self, *args, **kwargs): @@ -21,7 +20,6 @@ def __init__(self, *args, **kwargs): class AmazonCdCoverSource(AmazonBaseCoverSource): - """Cover source returning Amazon.com audio CD images.""" TLDS = ("com", "ca", "cn", "fr", "de", "co.jp", "co.uk") diff --git a/sacad/sources/amazondigital.py b/sacad/sources/amazondigital.py index e815f40..0785a99 100644 --- a/sacad/sources/amazondigital.py +++ b/sacad/sources/amazondigital.py @@ -1,4 +1,4 @@ -""" Amazon digital cover source. """ +"""Amazon digital cover source.""" import collections import operator @@ -36,7 +36,6 @@ class AmazonDigitalCoverSourceResult(CoverSourceResult): - """Amazon digital cover search result.""" def __init__(self, *args, **kwargs): @@ -46,7 +45,6 @@ def __init__(self, *args, **kwargs): class AmazonDigitalCoverSource(AmazonBaseCoverSource): - """Cover source returning Amazon.com digital music images.""" BASE_URL = "https://www.amazon.com" diff --git a/sacad/sources/base.py b/sacad/sources/base.py index e1e9d61..2a6d789 100644 --- a/sacad/sources/base.py +++ b/sacad/sources/base.py @@ -1,4 +1,4 @@ -""" Common code for all cover sources cover sources. """ +"""Common code for all cover sources cover sources.""" import abc import asyncio @@ -21,7 +21,6 @@ class CoverSource(metaclass=abc.ABCMeta): - """Base class for all cover sources.""" def __init__( diff --git a/sacad/sources/deezer.py b/sacad/sources/deezer.py index 92ef2fc..9737cfd 100644 --- a/sacad/sources/deezer.py +++ b/sacad/sources/deezer.py @@ -1,4 +1,4 @@ -""" Deezer cover source. """ +"""Deezer cover source.""" import collections import json @@ -9,7 +9,6 @@ class DeezerCoverSourceResult(CoverSourceResult): - """Deezer search cover result.""" def __init__(self, *args, **kwargs): @@ -21,7 +20,6 @@ def __init__(self, *args, **kwargs): class DeezerCoverSource(CoverSource): - """ Cover source using the official Deezer API. diff --git a/sacad/sources/discogs.py b/sacad/sources/discogs.py index 27cd8d6..9477972 100644 --- a/sacad/sources/discogs.py +++ b/sacad/sources/discogs.py @@ -1,4 +1,4 @@ -""" Discogs cover source. """ +"""Discogs cover source.""" import collections import json @@ -11,7 +11,6 @@ class DiscogsCoverSourceResult(CoverSourceResult): - """Discogs search cover result.""" def __init__(self, *args, **kwargs): @@ -24,7 +23,6 @@ def __init__(self, *args, **kwargs): class DiscogsCoverSource(CoverSource): - """ Cover source using the official API. diff --git a/sacad/sources/itunes.py b/sacad/sources/itunes.py index 970dd89..75677fa 100644 --- a/sacad/sources/itunes.py +++ b/sacad/sources/itunes.py @@ -1,4 +1,4 @@ -""" Itunes cover source. """ +"""Itunes cover source.""" import collections import json @@ -9,7 +9,6 @@ class ItunesCoverSourceResult(CoverSourceResult): - """Itunes search cover result.""" def __init__(self, *args, **kwargs): @@ -21,7 +20,6 @@ def __init__(self, *args, **kwargs): class ItunesCoverSource(CoverSource): - """Itunes cover source.""" SEARCH_URL = "https://itunes.apple.com/search" diff --git a/sacad/sources/lastfm.py b/sacad/sources/lastfm.py index ff2b364..22cb1cd 100644 --- a/sacad/sources/lastfm.py +++ b/sacad/sources/lastfm.py @@ -1,4 +1,4 @@ -""" LastFM cover source. """ +"""LastFM cover source.""" import collections import os.path @@ -10,7 +10,6 @@ class LastFmCoverSourceResult(CoverSourceResult): - """LastFM cover search result.""" def __init__(self, *args, **kwargs): @@ -22,7 +21,6 @@ def __init__(self, *args, **kwargs): class LastFmCoverSource(CoverSource): - """ Cover source using the official LastFM API. diff --git a/sacad/tqdm_logging.py b/sacad/tqdm_logging.py index 72e6f0c..60417c6 100644 --- a/sacad/tqdm_logging.py +++ b/sacad/tqdm_logging.py @@ -1,4 +1,4 @@ -""" Code to help using the logging module with tqdm progress bars. """ +"""Code to help using the logging module with tqdm progress bars.""" import contextlib import logging @@ -8,7 +8,6 @@ class TqdmLoggingHandler(logging.Handler): - """Logging handler sending messages to the tqdm write method (avoids overlap).""" def __init__(self, tqdm, *args, **kwargs): diff --git a/setup.py b/setup.py index c072a4c..016dcc5 100755 --- a/setup.py +++ b/setup.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 -""" Package setup. """ +"""Package setup.""" import os import re diff --git a/tests/__init__.py b/tests/__init__.py index a0ac6b5..7f20787 100755 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 -""" Unit tests for main module. """ +"""Unit tests for main module.""" import asyncio import contextlib @@ -74,7 +74,6 @@ async def delay_coroutine(coroutine, delay): @unittest.skipUnless(is_internet_reachable(), "Need Internet access") class TestSacad(unittest.TestCase): - """Test suite for main module.""" @staticmethod diff --git a/tests/rate_watcher_test.py b/tests/rate_watcher_test.py index fa85825..aae30da 100755 --- a/tests/rate_watcher_test.py +++ b/tests/rate_watcher_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 -""" Unit tests for rate watcher. """ +"""Unit tests for rate watcher.""" import os import tempfile @@ -15,7 +15,6 @@ class TestRateWatcher(unittest.TestCase): - """Test suite for rate watcher.""" def test_minDelayBetweenAccesses(self): diff --git a/tests/recurse_test.py b/tests/recurse_test.py index 60e5442..eedc0f7 100755 --- a/tests/recurse_test.py +++ b/tests/recurse_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 -""" Unit tests for recurse module. """ +"""Unit tests for recurse module.""" import collections import contextlib @@ -39,7 +39,6 @@ def download(url, filepath): class TestRecursive(unittest.TestCase): - """Test suite for recurse module.""" def __init__(self, *args, **kwargs):