From a7f5602160c01cd02197fe2db5e93aab875614bb Mon Sep 17 00:00:00 2001 From: anrinion <202868497+anrinion@users.noreply.github.com> Date: Thu, 8 Oct 2026 17:51:49 +0200 Subject: [PATCH] fix: match file extensions case-insensitively FileExtension.contains() compared entry.suffix against the enum's lowercase values case-sensitively, so files with uppercase extensions (e.g. iPhone's default IMG_1234.MOV) were silently skipped, making the extractor report an empty input directory even when a valid video was present. Closes #199 Co-Authored-By: Claude Sonnet 5 --- perfectframe/schemas.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/perfectframe/schemas.py b/perfectframe/schemas.py index 1264a88..4a1d946 100644 --- a/perfectframe/schemas.py +++ b/perfectframe/schemas.py @@ -64,7 +64,7 @@ class FileExtension(str, Enum): @classmethod def contains(cls, value: str) -> bool: """Check if value is a valid extension.""" - return value in cls._value2member_map_ + return value.lower() in cls._value2member_map_ class ImageExtension(FileExtension):