diff --git a/wimf/__init__.py b/wimf/__init__.py index dda4e80..226f9a8 100644 --- a/wimf/__init__.py +++ b/wimf/__init__.py @@ -47,9 +47,9 @@ def save(path, image, **kwargs): raw = encoder.encode(**encode_args) try: - from . import wimf_cpp + from .wimf_cpp import c_save_file - wimf_cpp.c_save_file(path, raw) + c_save_file(path, raw) except (ImportError, AttributeError): with _builtins.open(path, "wb") as f: f.write(raw) diff --git a/wimf/animation.py b/wimf/animation.py index 2536c0f..5c8d354 100644 --- a/wimf/animation.py +++ b/wimf/animation.py @@ -10,7 +10,9 @@ try: from . import wimf_cpp # type: ignore[attr-defined] except ImportError: - pass + logging.getLogger(__name__).debug( + "Optional module '.wimf_cpp' could not be imported; using Python implementation." + ) logger = logging.getLogger(__name__) diff --git a/wimf/cat.py b/wimf/cat.py index c7e9b25..f368e7c 100644 --- a/wimf/cat.py +++ b/wimf/cat.py @@ -14,7 +14,7 @@ def render_terminal(wimf_img, width=None): if width is None: try: width = os.get_terminal_size().columns - except: + except OSError: width = 80 # Account for terminal character aspect ratio (~2:1) diff --git a/wimf/cli.py b/wimf/cli.py index 4283c2c..e6ef55a 100644 --- a/wimf/cli.py +++ b/wimf/cli.py @@ -12,8 +12,6 @@ import numpy as np from PIL import ExifTags, Image, ImageSequence -from wimf.io import loadImage, saveImage - logger = logging.getLogger(__name__) diff --git a/wimf/codec.py b/wimf/codec.py index 9d55846..fc72c14 100644 --- a/wimf/codec.py +++ b/wimf/codec.py @@ -8,8 +8,9 @@ try: from . import wimf_cpp # type: ignore[attr-defined] -except ImportError: - pass +except ImportError as exc: + # Optional C++ acceleration module is unavailable; fall back to Python implementation. + logger.debug("wimf_cpp extension not available, using Python codec path: %s", exc) import multiprocessing from concurrent.futures import ThreadPoolExecutor diff --git a/wimf/test_core.py b/wimf/test_core.py index 7eb84a6..2ee2cb6 100644 --- a/wimf/test_core.py +++ b/wimf/test_core.py @@ -1,5 +1,3 @@ -import os - import numpy as np from PIL import Image diff --git a/wimf/viewer.py b/wimf/viewer.py index 091c2de..3010909 100644 --- a/wimf/viewer.py +++ b/wimf/viewer.py @@ -177,7 +177,7 @@ def main(): if os.path.exists(p): root = tk.Tk() - viewer = WIMFViewer(root, p) + WIMFViewer(root, p) root.mainloop() else: print(f"File not found: {p}")