diff --git a/compile/__init__.py b/compile/__init__.py index dc7ed5c..5426a64 100644 --- a/compile/__init__.py +++ b/compile/__init__.py @@ -25,15 +25,15 @@ from abc import ABC, abstractmethod from dataclasses import dataclass -from typing import TYPE_CHECKING, Any, Mapping +from typing import Any, Mapping try: # pragma: no cover - optional dependency guard from PIL import Image, ImageDraw, ImageFont # type: ignore except ImportError: # pragma: no cover - Pillow missing at runtime Image = ImageDraw = ImageFont = None # type: ignore[assignment] -if TYPE_CHECKING: # pragma: no cover - typing aid - from PIL import Image as PILImage +from fonts import font_store +from imaging import load_image def _require_pillow() -> None: @@ -43,9 +43,6 @@ def _require_pillow() -> None: "Install the 'Pillow' package to enable this feature." ) -from fonts import font_store -from imaging import load_image - __all__ = [ "Backend", "Calibration", diff --git a/compile/tspl.py b/compile/tspl.py index 8e7e2f8..3d3624c 100644 --- a/compile/tspl.py +++ b/compile/tspl.py @@ -2,24 +2,13 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Any, Iterable, Mapping +from typing import Any, Iterable, Mapping try: # pragma: no cover - optional dependency guard from PIL import Image # type: ignore except ImportError: # pragma: no cover - Pillow missing at runtime Image = None # type: ignore[assignment] -if TYPE_CHECKING: # pragma: no cover - typing only - from PIL import Image as PILImage - - -def _require_pillow() -> None: - if Image is None: - raise RuntimeError( - "Pillow must be installed to render TSPL bitmaps. " - "Install the 'Pillow' package to enable this feature." - ) - from imaging.raster import ( fingerprint_image, prepare_bitmap_for_tspl, @@ -40,6 +29,14 @@ def _require_pillow() -> None: render_text_bitmap, ) + +def _require_pillow() -> None: + if Image is None: + raise RuntimeError( + "Pillow must be installed to render TSPL bitmaps. " + "Install the 'Pillow' package to enable this feature." + ) + __all__ = ["TSPLBackend"] diff --git a/compile/zpl.py b/compile/zpl.py index 8ac2d72..fe4822a 100644 --- a/compile/zpl.py +++ b/compile/zpl.py @@ -2,24 +2,13 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Any, Iterable, Mapping +from typing import Any, Iterable, Mapping try: # pragma: no cover - optional dependency guard from PIL import Image # type: ignore except ImportError: # pragma: no cover - Pillow missing at runtime Image = None # type: ignore[assignment] -if TYPE_CHECKING: # pragma: no cover - typing only - from PIL import Image as PILImage - - -def _require_pillow() -> None: - if Image is None: - raise RuntimeError( - "Pillow must be installed to render ZPL bitmaps. " - "Install the 'Pillow' package to enable this feature." - ) - from imaging.raster import fingerprint_image, prepare_bitmap_for_tspl from printing_utils import ZPLMediaParams, emit_zpl_footer, emit_zpl_media_setup @@ -32,6 +21,14 @@ def _require_pillow() -> None: render_text_bitmap, ) + +def _require_pillow() -> None: + if Image is None: + raise RuntimeError( + "Pillow must be installed to render ZPL bitmaps. " + "Install the 'Pillow' package to enable this feature." + ) + __all__ = ["ZPLBackend"] diff --git a/imaging/loader.py b/imaging/loader.py index 6158acc..fd77c84 100644 --- a/imaging/loader.py +++ b/imaging/loader.py @@ -5,15 +5,14 @@ import io import uuid from pathlib import Path -from typing import TYPE_CHECKING, Any, BinaryIO +from typing import Any, BinaryIO try: # pragma: no cover - optional dependency guard from PIL import Image # type: ignore except ImportError: # pragma: no cover - Pillow missing at runtime Image = None # type: ignore[assignment] -if TYPE_CHECKING: # pragma: no cover - typing only - from PIL import Image as PILImage +from utils.fs import canonical_path, file_hash def _require_pillow() -> None: @@ -23,8 +22,6 @@ def _require_pillow() -> None: "Install the 'Pillow' package to enable this feature." ) -from utils.fs import canonical_path, file_hash - __all__ = ["load_image"] diff --git a/imaging/raster.py b/imaging/raster.py index 9554f39..9e4082f 100644 --- a/imaging/raster.py +++ b/imaging/raster.py @@ -6,16 +6,12 @@ import io from collections.abc import Iterable, MutableMapping from pathlib import Path -from typing import TYPE_CHECKING try: # pragma: no cover - optional dependency guard from PIL import Image, ImageFilter, ImageOps # type: ignore except ImportError: # pragma: no cover - Pillow missing at runtime Image = ImageFilter = ImageOps = None # type: ignore[assignment] -if TYPE_CHECKING: # pragma: no cover - typing aid - from PIL import Image as PILImage - try: # pragma: no cover - optional Pillow component from PIL import ImageCms # type: ignore except Exception: # pragma: no cover - optional dependency diff --git a/printing/__init__.py b/printing/__init__.py index b8ac0b4..9852142 100644 --- a/printing/__init__.py +++ b/printing/__init__.py @@ -14,16 +14,13 @@ import unicodedata from dataclasses import dataclass, field from pathlib import Path -from typing import TYPE_CHECKING, Any, Callable, Mapping, Protocol +from typing import Any, Callable, Mapping, Protocol try: # pragma: no cover - optional dependency guard from PIL import Image # type: ignore except ImportError: # pragma: no cover - Pillow missing at runtime Image = None # type: ignore[assignment] -if TYPE_CHECKING: # pragma: no cover - typing only - from PIL import Image as PILImage - from compile import Calibration, CompilationError, SafeDict, get_backend from db import store as db_store from fonts import font_store @@ -33,7 +30,8 @@ from utils import recurso_caminho from utils.fs import canonical_path as canonical_file_path -from .queue import PrinterTarget, enqueue_job, wait_for_all as _queue_wait_for_all +from .queue import PrinterTarget, enqueue_job +from .queue import wait_for_all as _queue_wait_for_all # ---------------------------------------------------------------------------- diff --git a/render/preview.py b/render/preview.py index d83bd08..f348949 100644 --- a/render/preview.py +++ b/render/preview.py @@ -17,7 +17,7 @@ from dataclasses import dataclass, field from pathlib import Path -from typing import TYPE_CHECKING, Any, Iterable, Mapping +from typing import Any, Iterable, Mapping try: # pragma: no cover - optional dependency during runtime import qrcode @@ -29,9 +29,6 @@ except ImportError: # pragma: no cover - Pillow missing at runtime Image = ImageDraw = ImageFont = None # type: ignore[assignment] -if TYPE_CHECKING: # pragma: no cover - typing aid - from PIL import Image as PILImage - try: # pragma: no cover - optional dependency during runtime import barcode # type: ignore from barcode.writer import ImageWriter # type: ignore diff --git a/utils/__init__.py b/utils/__init__.py index 69a3e60..a444fb6 100644 --- a/utils/__init__.py +++ b/utils/__init__.py @@ -19,16 +19,12 @@ import sys from datetime import datetime from functools import lru_cache -from typing import TYPE_CHECKING try: # pragma: no cover - optional dependency guard from PIL import Image # type: ignore except ImportError: # pragma: no cover - Pillow missing at runtime Image = None # type: ignore[assignment] -if TYPE_CHECKING: # pragma: no cover - typing aid - from PIL import Image as PILImage - def _base_dir() -> str: """Obtém o diretório base do aplicativo.