mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
fix: resolve all audit findings — e2e coverage, feature system hardening, visual baselines
- Add 8 new E2E specs for AI tools (upscale, enhance-faces, colorize, restore-photo, erase-object, smart-crop, passport-photo, red-eye-removal) closing all HIGH/MEDIUM coverage gaps from the test matrix audit - Fix ensureAiDirs() crash on non-Docker environments by gating on isDockerEnvironment() — prevents ENOENT when /data doesn't exist - Bump torch 2.6.0→2.7.0 and torchvision 0.21.0→0.22.0 in feature manifest for broader Python version compatibility - Add Python 3.14 version guard warning in install_feature.py - Remove duplicate torchvision shims from upscale.py and enhance_faces.py (dispatcher.py already handles this at startup) - Remove orphaned tools.batch i18n key and dead pipeline-builder filter - Regenerate 4 visual regression baselines for current UI state - Add data-testid to passport-photo generate button for E2E testability
This commit is contained in:
@@ -3,34 +3,6 @@ import sys
|
||||
import json
|
||||
import os
|
||||
|
||||
# Patch for basicsr compatibility with torchvision >= 0.17.
|
||||
# torchvision removed transforms.functional_tensor, merging everything
|
||||
# into transforms.functional. basicsr 1.4.2 still imports the old path
|
||||
# (e.g. rgb_to_grayscale), so we create a proxy module that forwards
|
||||
# ALL attribute lookups to the new location.
|
||||
try:
|
||||
import torchvision.transforms.functional_tensor # noqa: F401
|
||||
except (ImportError, ModuleNotFoundError):
|
||||
try:
|
||||
import types
|
||||
import torchvision.transforms.functional as _F
|
||||
|
||||
import torchvision.transforms
|
||||
|
||||
_shim = types.ModuleType("torchvision.transforms.functional_tensor")
|
||||
_shim.__getattr__ = lambda name: getattr(_F, name)
|
||||
# Pre-populate the attribute basicsr actually imports so that
|
||||
# `from torchvision.transforms.functional_tensor import rgb_to_grayscale`
|
||||
# works (from-import checks __dict__ before __getattr__).
|
||||
_shim.rgb_to_grayscale = _F.rgb_to_grayscale
|
||||
sys.modules["torchvision.transforms.functional_tensor"] = _shim
|
||||
# The parent package must also reference the submodule for
|
||||
# `from torchvision.transforms.functional_tensor import ...` to
|
||||
# resolve correctly in all Python versions.
|
||||
torchvision.transforms.functional_tensor = _shim
|
||||
except (ImportError, AttributeError) as e:
|
||||
print(f"[upscale] torchvision shim failed: {e}", file=sys.stderr, flush=True)
|
||||
|
||||
|
||||
def emit_progress(percent, stage):
|
||||
"""Emit structured progress to stderr for bridge.ts to capture."""
|
||||
|
||||
Reference in New Issue
Block a user