diff --git a/src/ocrmypdf/_concurrent.py b/src/ocrmypdf/_concurrent.py index 643d18e4..86b55662 100644 --- a/src/ocrmypdf/_concurrent.py +++ b/src/ocrmypdf/_concurrent.py @@ -7,7 +7,8 @@ from __future__ import annotations import threading from abc import ABC, abstractmethod -from typing import Callable, Iterable +from collections.abc import Iterable +from typing import Callable def _task_noop(*_args, **_kwargs): diff --git a/src/ocrmypdf/_exec/ghostscript.py b/src/ocrmypdf/_exec/ghostscript.py index e28d23e9..c638c130 100644 --- a/src/ocrmypdf/_exec/ghostscript.py +++ b/src/ocrmypdf/_exec/ghostscript.py @@ -8,7 +8,6 @@ from __future__ import annotations import logging import os import re -import sys from io import BytesIO from os import fspath from pathlib import Path diff --git a/src/ocrmypdf/_exec/unpaper.py b/src/ocrmypdf/_exec/unpaper.py index 2944b4f4..9004382a 100644 --- a/src/ocrmypdf/_exec/unpaper.py +++ b/src/ocrmypdf/_exec/unpaper.py @@ -9,11 +9,12 @@ import logging import os import shlex import sys +from collections.abc import Iterator from contextlib import contextmanager from decimal import Decimal from pathlib import Path from subprocess import PIPE, STDOUT -from typing import Iterator, Union +from typing import Union from packaging.version import Version from PIL import Image diff --git a/src/ocrmypdf/_jobcontext.py b/src/ocrmypdf/_jobcontext.py index 8bccf511..fd4a00f6 100644 --- a/src/ocrmypdf/_jobcontext.py +++ b/src/ocrmypdf/_jobcontext.py @@ -9,9 +9,9 @@ import os import shutil import sys from argparse import Namespace +from collections.abc import Iterator from copy import copy from pathlib import Path -from typing import Iterator from pluggy import PluginManager diff --git a/src/ocrmypdf/_pipeline.py b/src/ocrmypdf/_pipeline.py index 051a1981..47cd1533 100644 --- a/src/ocrmypdf/_pipeline.py +++ b/src/ocrmypdf/_pipeline.py @@ -10,11 +10,12 @@ import logging import os import re import sys +from collections.abc import Iterable, Iterator, Sequence from contextlib import suppress from datetime import datetime, timezone from pathlib import Path from shutil import copyfileobj -from typing import Any, BinaryIO, Iterable, Iterator, Sequence, cast +from typing import Any, BinaryIO, cast import img2pdf import pikepdf diff --git a/src/ocrmypdf/_plugin_manager.py b/src/ocrmypdf/_plugin_manager.py index 6e3a3a26..9123256c 100644 --- a/src/ocrmypdf/_plugin_manager.py +++ b/src/ocrmypdf/_plugin_manager.py @@ -10,8 +10,8 @@ import importlib import importlib.util import pkgutil import sys +from collections.abc import Sequence from pathlib import Path -from typing import Sequence import pluggy diff --git a/src/ocrmypdf/_sync.py b/src/ocrmypdf/_sync.py index 9f077966..e5c8bd98 100644 --- a/src/ocrmypdf/_sync.py +++ b/src/ocrmypdf/_sync.py @@ -13,12 +13,13 @@ import logging.handlers import os import sys import threading +from collections.abc import Sequence from concurrent.futures.process import BrokenProcessPool from concurrent.futures.thread import BrokenThreadPool from functools import partial from pathlib import Path from tempfile import mkdtemp -from typing import NamedTuple, Sequence, cast +from typing import NamedTuple, cast import PIL diff --git a/src/ocrmypdf/_validation.py b/src/ocrmypdf/_validation.py index 08ee77ef..69c65252 100644 --- a/src/ocrmypdf/_validation.py +++ b/src/ocrmypdf/_validation.py @@ -12,9 +12,9 @@ import os import sys import unicodedata from argparse import Namespace +from collections.abc import Sequence from pathlib import Path from shutil import copyfileobj -from typing import Sequence import pikepdf import PIL diff --git a/src/ocrmypdf/api.py b/src/ocrmypdf/api.py index 16caa43e..f0dd1e85 100644 --- a/src/ocrmypdf/api.py +++ b/src/ocrmypdf/api.py @@ -10,10 +10,11 @@ import os import sys import threading from argparse import Namespace +from collections.abc import Iterable from enum import IntEnum from io import IOBase from pathlib import Path -from typing import AnyStr, BinaryIO, Iterable, Union +from typing import AnyStr, BinaryIO, Union from warnings import warn import pluggy diff --git a/src/ocrmypdf/builtin_plugins/concurrency.py b/src/ocrmypdf/builtin_plugins/concurrency.py index c39f9b5b..a96ceeff 100644 --- a/src/ocrmypdf/builtin_plugins/concurrency.py +++ b/src/ocrmypdf/builtin_plugins/concurrency.py @@ -12,9 +12,10 @@ import queue import signal import sys import threading +from collections.abc import Iterable from concurrent.futures import ProcessPoolExecutor, ThreadPoolExecutor, as_completed from contextlib import suppress -from typing import Callable, Iterable, Type, Union +from typing import Callable, Union from rich.console import Console as RichConsole @@ -23,7 +24,7 @@ from ocrmypdf._logging import RichLoggingHandler, RichTqdmProgressAdapter from ocrmypdf.exceptions import InputFileError from ocrmypdf.helpers import remove_all_log_handlers -FuturesExecutorClass = Union[Type[ThreadPoolExecutor], Type[ProcessPoolExecutor]] +FuturesExecutorClass = Union[type[ThreadPoolExecutor], type[ProcessPoolExecutor]] Queue = Union[multiprocessing.Queue, queue.Queue] UserInit = Callable[[], None] WorkerInit = Callable[[Queue, UserInit, int], None] diff --git a/src/ocrmypdf/builtin_plugins/optimize.py b/src/ocrmypdf/builtin_plugins/optimize.py index 3f61cecc..ff841f93 100644 --- a/src/ocrmypdf/builtin_plugins/optimize.py +++ b/src/ocrmypdf/builtin_plugins/optimize.py @@ -6,8 +6,8 @@ from __future__ import annotations import argparse import logging +from collections.abc import Sequence from pathlib import Path -from typing import Sequence from ocrmypdf import Executor, PdfContext, hookimpl from ocrmypdf._exec import jbig2enc, pngquant diff --git a/src/ocrmypdf/cli.py b/src/ocrmypdf/cli.py index 6635a96f..0aa66fef 100644 --- a/src/ocrmypdf/cli.py +++ b/src/ocrmypdf/cli.py @@ -6,7 +6,8 @@ from __future__ import annotations import argparse -from typing import Any, Callable, Mapping, TypeVar +from collections.abc import Mapping +from typing import Any, Callable, TypeVar from ocrmypdf._version import PROGRAM_NAME as _PROGRAM_NAME from ocrmypdf._version import __version__ as _VERSION diff --git a/src/ocrmypdf/extra_plugins/semfree.py b/src/ocrmypdf/extra_plugins/semfree.py index 94e88757..b1f64642 100644 --- a/src/ocrmypdf/extra_plugins/semfree.py +++ b/src/ocrmypdf/extra_plugins/semfree.py @@ -20,12 +20,13 @@ from __future__ import annotations import logging import logging.handlers import signal +from collections.abc import Iterable, Iterator from contextlib import suppress from enum import Enum, auto from itertools import islice, repeat, takewhile, zip_longest from multiprocessing import Pipe, Process from multiprocessing.connection import Connection, wait -from typing import Callable, Iterable, Iterator +from typing import Callable from ocrmypdf import Executor, hookimpl from ocrmypdf._concurrent import NullProgressBar diff --git a/src/ocrmypdf/helpers.py b/src/ocrmypdf/helpers.py index a18adf0e..47c4aced 100644 --- a/src/ocrmypdf/helpers.py +++ b/src/ocrmypdf/helpers.py @@ -10,7 +10,7 @@ import multiprocessing import os import shutil import warnings -from collections.abc import Iterable +from collections.abc import Iterable, Sequence from contextlib import suppress from decimal import Decimal from io import StringIO @@ -21,9 +21,6 @@ from typing import ( Any, Callable, Generic, - Sequence, - SupportsFloat, - SupportsRound, TypeVar, ) diff --git a/src/ocrmypdf/optimize.py b/src/ocrmypdf/optimize.py index b54a5b56..33ed3e1d 100644 --- a/src/ocrmypdf/optimize.py +++ b/src/ocrmypdf/optimize.py @@ -11,9 +11,10 @@ import sys import tempfile import threading from collections import defaultdict +from collections.abc import Iterator, MutableSet, Sequence from os import fspath from pathlib import Path -from typing import Callable, Iterator, MutableSet, NamedTuple, NewType, Sequence +from typing import Callable, NamedTuple, NewType from zlib import compress import img2pdf diff --git a/src/ocrmypdf/pdfa.py b/src/ocrmypdf/pdfa.py index 949cac4d..fb5d169c 100644 --- a/src/ocrmypdf/pdfa.py +++ b/src/ocrmypdf/pdfa.py @@ -6,9 +6,9 @@ from __future__ import annotations import base64 +from collections.abc import Iterator from importlib.resources import files as package_files from pathlib import Path -from typing import Iterator import pikepdf diff --git a/src/ocrmypdf/pdfinfo/info.py b/src/ocrmypdf/pdfinfo/info.py index a787f85c..d5a4ffeb 100644 --- a/src/ocrmypdf/pdfinfo/info.py +++ b/src/ocrmypdf/pdfinfo/info.py @@ -12,6 +12,7 @@ import re import statistics import sys from collections import defaultdict +from collections.abc import Container, Iterable, Iterator, Mapping, Sequence from contextlib import ExitStack from decimal import Decimal from enum import Enum, auto @@ -19,7 +20,7 @@ from functools import partial from math import hypot, inf, isclose from os import PathLike from pathlib import Path -from typing import Container, Iterable, Iterator, Mapping, NamedTuple, Sequence, Tuple +from typing import NamedTuple from warnings import warn from pikepdf import ( @@ -73,7 +74,7 @@ class Encoding(Enum): runlength = auto() -FloatRect = Tuple[float, float, float, float] +FloatRect = tuple[float, float, float, float] FRIENDLY_COLORSPACE: dict[str, Colorspace] = { '/DeviceGray': Colorspace.gray, diff --git a/src/ocrmypdf/pluginspec.py b/src/ocrmypdf/pluginspec.py index 00c8a4df..e217010c 100644 --- a/src/ocrmypdf/pluginspec.py +++ b/src/ocrmypdf/pluginspec.py @@ -7,9 +7,10 @@ from __future__ import annotations from abc import ABC, abstractmethod from argparse import ArgumentParser, Namespace +from collections.abc import Sequence from logging import Handler from pathlib import Path -from typing import TYPE_CHECKING, AbstractSet, NamedTuple, Sequence +from typing import TYPE_CHECKING, AbstractSet, NamedTuple import pluggy diff --git a/src/ocrmypdf/quality.py b/src/ocrmypdf/quality.py index 0ceb718d..bf7ab508 100644 --- a/src/ocrmypdf/quality.py +++ b/src/ocrmypdf/quality.py @@ -7,7 +7,7 @@ from __future__ import annotations import re -from typing import Iterable +from collections.abc import Iterable class OcrQualityDictionary: diff --git a/src/ocrmypdf/subprocess/__init__.py b/src/ocrmypdf/subprocess/__init__.py index c1918cf4..71edf21a 100644 --- a/src/ocrmypdf/subprocess/__init__.py +++ b/src/ocrmypdf/subprocess/__init__.py @@ -8,11 +8,12 @@ import logging import os import re import sys +from collections.abc import Mapping, Sequence from contextlib import suppress from pathlib import Path from subprocess import PIPE, STDOUT, CalledProcessError, CompletedProcess, Popen from subprocess import run as subprocess_run -from typing import Callable, Mapping, Sequence, Union +from typing import Callable, Union from packaging.version import Version diff --git a/src/ocrmypdf/subprocess/_windows.py b/src/ocrmypdf/subprocess/_windows.py index 10bd1e34..da0e3db6 100644 --- a/src/ocrmypdf/subprocess/_windows.py +++ b/src/ocrmypdf/subprocess/_windows.py @@ -9,9 +9,10 @@ import os import re import shutil import sys +from collections.abc import Iterable, Iterator from itertools import chain from pathlib import Path -from typing import Any, Callable, Iterable, Iterator, TypeVar +from typing import Any, Callable, TypeVar from packaging.version import InvalidVersion, Version