Files
tfm_ainventory/graphify-out/cache/432925d2bed0bc4d4c2f2ffb9ac25871e578cd54ebb07cc8644e3eb2a4de3f6b.json

1 line
60 KiB
JSON

{"nodes": [{"id": "backend_tests_test_image_processing_py", "label": "test_image_processing.py", "file_type": "code", "source_file": "backend/tests/test_image_processing.py", "source_location": "L1"}, {"id": "test_image_processing_processor", "label": "processor()", "file_type": "code", "source_file": "backend/tests/test_image_processing.py", "source_location": "L24"}, {"id": "test_image_processing_sample_image_rgb", "label": "sample_image_rgb()", "file_type": "code", "source_file": "backend/tests/test_image_processing.py", "source_location": "L30"}, {"id": "test_image_processing_sample_image_with_object", "label": "sample_image_with_object()", "file_type": "code", "source_file": "backend/tests/test_image_processing.py", "source_location": "L39"}, {"id": "test_image_processing_sample_image_with_exif", "label": "sample_image_with_exif()", "file_type": "code", "source_file": "backend/tests/test_image_processing.py", "source_location": "L53"}, {"id": "test_image_processing_large_file", "label": "large_file()", "file_type": "code", "source_file": "backend/tests/test_image_processing.py", "source_location": "L69"}, {"id": "test_image_processing_corrupted_image", "label": "corrupted_image()", "file_type": "code", "source_file": "backend/tests/test_image_processing.py", "source_location": "L76"}, {"id": "test_image_processing_testexifrotation", "label": "TestExifRotation", "file_type": "code", "source_file": "backend/tests/test_image_processing.py", "source_location": "L81"}, {"id": "test_image_processing_testexifrotation_test_extract_exif_orientation_with_exif", "label": ".test_extract_exif_orientation_with_exif()", "file_type": "code", "source_file": "backend/tests/test_image_processing.py", "source_location": "L84"}, {"id": "test_image_processing_testexifrotation_test_extract_exif_orientation_without_exif", "label": ".test_extract_exif_orientation_without_exif()", "file_type": "code", "source_file": "backend/tests/test_image_processing.py", "source_location": "L93"}, {"id": "test_image_processing_testexifrotation_test_rotate_by_orientation_identity", "label": ".test_rotate_by_orientation_identity()", "file_type": "code", "source_file": "backend/tests/test_image_processing.py", "source_location": "L101"}, {"id": "test_image_processing_testexifrotation_test_rotate_by_orientation_180", "label": ".test_rotate_by_orientation_180()", "file_type": "code", "source_file": "backend/tests/test_image_processing.py", "source_location": "L108"}, {"id": "test_image_processing_testexifrotation_test_rotate_by_orientation_90", "label": ".test_rotate_by_orientation_90()", "file_type": "code", "source_file": "backend/tests/test_image_processing.py", "source_location": "L115"}, {"id": "test_image_processing_testsmartcrop", "label": "TestSmartCrop", "file_type": "code", "source_file": "backend/tests/test_image_processing.py", "source_location": "L124"}, {"id": "test_image_processing_testsmartcrop_test_smart_crop_detects_object", "label": ".test_smart_crop_detects_object()", "file_type": "code", "source_file": "backend/tests/test_image_processing.py", "source_location": "L127"}, {"id": "test_image_processing_testsmartcrop_test_smart_crop_handles_no_contours", "label": ".test_smart_crop_handles_no_contours()", "file_type": "code", "source_file": "backend/tests/test_image_processing.py", "source_location": "L141"}, {"id": "test_image_processing_testsmartcrop_test_smart_crop_respects_padding", "label": ".test_smart_crop_respects_padding()", "file_type": "code", "source_file": "backend/tests/test_image_processing.py", "source_location": "L150"}, {"id": "test_image_processing_testtextorientation", "label": "TestTextOrientation", "file_type": "code", "source_file": "backend/tests/test_image_processing.py", "source_location": "L162"}, {"id": "test_image_processing_testtextorientation_test_text_orientation_normal", "label": ".test_text_orientation_normal()", "file_type": "code", "source_file": "backend/tests/test_image_processing.py", "source_location": "L165"}, {"id": "test_image_processing_testtextorientation_test_text_orientation_handles_plain_image", "label": ".test_text_orientation_handles_plain_image()", "file_type": "code", "source_file": "backend/tests/test_image_processing.py", "source_location": "L174"}, {"id": "test_image_processing_testresizeandcompress", "label": "TestResizeAndCompress", "file_type": "code", "source_file": "backend/tests/test_image_processing.py", "source_location": "L185"}, {"id": "test_image_processing_testresizeandcompress_test_resize_and_compress_large_image", "label": ".test_resize_and_compress_large_image()", "file_type": "code", "source_file": "backend/tests/test_image_processing.py", "source_location": "L188"}, {"id": "test_image_processing_testresizeandcompress_test_resize_and_compress_small_image", "label": ".test_resize_and_compress_small_image()", "file_type": "code", "source_file": "backend/tests/test_image_processing.py", "source_location": "L204"}, {"id": "test_image_processing_testresizeandcompress_test_resize_and_compress_jpeg_quality", "label": ".test_resize_and_compress_jpeg_quality()", "file_type": "code", "source_file": "backend/tests/test_image_processing.py", "source_location": "L219"}, {"id": "test_image_processing_testresizeandcompress_test_resize_and_compress_rgba_to_rgb", "label": ".test_resize_and_compress_rgba_to_rgb()", "file_type": "code", "source_file": "backend/tests/test_image_processing.py", "source_location": "L229"}, {"id": "test_image_processing_testthumbnailgeneration", "label": "TestThumbnailGeneration", "file_type": "code", "source_file": "backend/tests/test_image_processing.py", "source_location": "L242"}, {"id": "test_image_processing_testthumbnailgeneration_test_generate_thumbnail_200px_square", "label": ".test_generate_thumbnail_200px_square()", "file_type": "code", "source_file": "backend/tests/test_image_processing.py", "source_location": "L245"}, {"id": "test_image_processing_testthumbnailgeneration_test_generate_thumbnail_center_crop", "label": ".test_generate_thumbnail_center_crop()", "file_type": "code", "source_file": "backend/tests/test_image_processing.py", "source_location": "L259"}, {"id": "test_image_processing_testthumbnailgeneration_test_generate_thumbnail_small_image", "label": ".test_generate_thumbnail_small_image()", "file_type": "code", "source_file": "backend/tests/test_image_processing.py", "source_location": "L270"}, {"id": "test_image_processing_testthumbnailgeneration_test_generate_thumbnail_rgba_to_rgb", "label": ".test_generate_thumbnail_rgba_to_rgb()", "file_type": "code", "source_file": "backend/tests/test_image_processing.py", "source_location": "L281"}, {"id": "test_image_processing_testprocessphoto", "label": "TestProcessPhoto", "file_type": "code", "source_file": "backend/tests/test_image_processing.py", "source_location": "L292"}, {"id": "test_image_processing_testprocessphoto_test_process_photo_success", "label": ".test_process_photo_success()", "file_type": "code", "source_file": "backend/tests/test_image_processing.py", "source_location": "L295"}, {"id": "test_image_processing_testprocessphoto_test_process_photo_file_size_validation", "label": ".test_process_photo_file_size_validation()", "file_type": "code", "source_file": "backend/tests/test_image_processing.py", "source_location": "L305"}, {"id": "test_image_processing_testprocessphoto_test_process_photo_with_exif", "label": ".test_process_photo_with_exif()", "file_type": "code", "source_file": "backend/tests/test_image_processing.py", "source_location": "L313"}, {"id": "test_image_processing_testprocessphoto_test_process_photo_with_manual_crop", "label": ".test_process_photo_with_manual_crop()", "file_type": "code", "source_file": "backend/tests/test_image_processing.py", "source_location": "L320"}, {"id": "test_image_processing_testprocessphoto_test_process_photo_fallback_to_pillow", "label": ".test_process_photo_fallback_to_pillow()", "file_type": "code", "source_file": "backend/tests/test_image_processing.py", "source_location": "L329"}, {"id": "test_image_processing_testprocessphoto_test_process_photo_corrupted_image", "label": ".test_process_photo_corrupted_image()", "file_type": "code", "source_file": "backend/tests/test_image_processing.py", "source_location": "L342"}, {"id": "test_image_processing_testprocessphoto_test_process_photo_empty_file", "label": ".test_process_photo_empty_file()", "file_type": "code", "source_file": "backend/tests/test_image_processing.py", "source_location": "L350"}, {"id": "test_image_processing_testintegration", "label": "TestIntegration", "file_type": "code", "source_file": "backend/tests/test_image_processing.py", "source_location": "L357"}, {"id": "test_image_processing_testintegration_test_end_to_end_processing", "label": ".test_end_to_end_processing()", "file_type": "code", "source_file": "backend/tests/test_image_processing.py", "source_location": "L360"}, {"id": "test_image_processing_testintegration_test_multiple_images_processing", "label": ".test_multiple_images_processing()", "file_type": "code", "source_file": "backend/tests/test_image_processing.py", "source_location": "L379"}, {"id": "test_image_processing_testintegration_test_processing_with_all_options", "label": ".test_processing_with_all_options()", "file_type": "code", "source_file": "backend/tests/test_image_processing.py", "source_location": "L385"}, {"id": "test_image_processing_rationale_1", "label": "Test suite for OpenCV-based image processing pipeline. Tests cover: - EXIF orie", "file_type": "rationale", "source_file": "backend/tests/test_image_processing.py", "source_location": "L1"}, {"id": "test_image_processing_rationale_25", "label": "Create ImageProcessor instance.", "file_type": "rationale", "source_file": "backend/tests/test_image_processing.py", "source_location": "L25"}, {"id": "test_image_processing_rationale_31", "label": "Create a simple RGB test image (100x100 red square).", "file_type": "rationale", "source_file": "backend/tests/test_image_processing.py", "source_location": "L31"}, {"id": "test_image_processing_rationale_40", "label": "Create test image with a distinct object (100x100, white bg, black square).", "file_type": "rationale", "source_file": "backend/tests/test_image_processing.py", "source_location": "L40"}, {"id": "test_image_processing_rationale_54", "label": "Create a test image with EXIF orientation tag.", "file_type": "rationale", "source_file": "backend/tests/test_image_processing.py", "source_location": "L54"}, {"id": "test_image_processing_rationale_70", "label": "Create a file larger than 10MB limit.", "file_type": "rationale", "source_file": "backend/tests/test_image_processing.py", "source_location": "L70"}, {"id": "test_image_processing_rationale_77", "label": "Create corrupted image data.", "file_type": "rationale", "source_file": "backend/tests/test_image_processing.py", "source_location": "L77"}, {"id": "test_image_processing_rationale_82", "label": "Test EXIF orientation detection and rotation.", "file_type": "rationale", "source_file": "backend/tests/test_image_processing.py", "source_location": "L82"}, {"id": "test_image_processing_rationale_85", "label": "Test extracting EXIF orientation from image.", "file_type": "rationale", "source_file": "backend/tests/test_image_processing.py", "source_location": "L85"}, {"id": "test_image_processing_rationale_94", "label": "Test handling image without EXIF data.", "file_type": "rationale", "source_file": "backend/tests/test_image_processing.py", "source_location": "L94"}, {"id": "test_image_processing_rationale_102", "label": "Test rotation with orientation=1 (no rotation needed).", "file_type": "rationale", "source_file": "backend/tests/test_image_processing.py", "source_location": "L102"}, {"id": "test_image_processing_rationale_109", "label": "Test rotation with orientation=3 (180\u00b0).", "file_type": "rationale", "source_file": "backend/tests/test_image_processing.py", "source_location": "L109"}, {"id": "test_image_processing_rationale_116", "label": "Test rotation with orientation=6 (270\u00b0 CW = 90\u00b0 CCW).", "file_type": "rationale", "source_file": "backend/tests/test_image_processing.py", "source_location": "L116"}, {"id": "test_image_processing_rationale_125", "label": "Test OpenCV-based smart cropping.", "file_type": "rationale", "source_file": "backend/tests/test_image_processing.py", "source_location": "L125"}, {"id": "test_image_processing_rationale_128", "label": "Test that smart crop detects and bounds main object.", "file_type": "rationale", "source_file": "backend/tests/test_image_processing.py", "source_location": "L128"}, {"id": "test_image_processing_rationale_142", "label": "Test smart crop gracefully returns None when no contours found.", "file_type": "rationale", "source_file": "backend/tests/test_image_processing.py", "source_location": "L142"}, {"id": "test_image_processing_rationale_151", "label": "Test that smart crop applies 10% padding around bounds.", "file_type": "rationale", "source_file": "backend/tests/test_image_processing.py", "source_location": "L151"}, {"id": "test_image_processing_rationale_163", "label": "Test text orientation detection using Hough lines.", "file_type": "rationale", "source_file": "backend/tests/test_image_processing.py", "source_location": "L163"}, {"id": "test_image_processing_rationale_166", "label": "Test text orientation detection on normal image.", "file_type": "rationale", "source_file": "backend/tests/test_image_processing.py", "source_location": "L166"}, {"id": "test_image_processing_rationale_175", "label": "Test text orientation on plain image with no lines.", "file_type": "rationale", "source_file": "backend/tests/test_image_processing.py", "source_location": "L175"}, {"id": "test_image_processing_rationale_186", "label": "Test image resizing and JPEG compression.", "file_type": "rationale", "source_file": "backend/tests/test_image_processing.py", "source_location": "L186"}, {"id": "test_image_processing_rationale_189", "label": "Test resizing image larger than 1200px.", "file_type": "rationale", "source_file": "backend/tests/test_image_processing.py", "source_location": "L189"}, {"id": "test_image_processing_rationale_205", "label": "Test resizing image smaller than 1200px (should not upscale).", "file_type": "rationale", "source_file": "backend/tests/test_image_processing.py", "source_location": "L205"}, {"id": "test_image_processing_rationale_220", "label": "Test that compression uses 85% quality.", "file_type": "rationale", "source_file": "backend/tests/test_image_processing.py", "source_location": "L220"}, {"id": "test_image_processing_rationale_230", "label": "Test that RGBA images are converted to RGB.", "file_type": "rationale", "source_file": "backend/tests/test_image_processing.py", "source_location": "L230"}, {"id": "test_image_processing_rationale_243", "label": "Test thumbnail generation.", "file_type": "rationale", "source_file": "backend/tests/test_image_processing.py", "source_location": "L243"}, {"id": "test_image_processing_rationale_246", "label": "Test thumbnail is exactly 200x200 pixels.", "file_type": "rationale", "source_file": "backend/tests/test_image_processing.py", "source_location": "L246"}, {"id": "test_image_processing_rationale_260", "label": "Test thumbnail uses center crop for non-square images.", "file_type": "rationale", "source_file": "backend/tests/test_image_processing.py", "source_location": "L260"}, {"id": "test_image_processing_rationale_271", "label": "Test thumbnail from very small image.", "file_type": "rationale", "source_file": "backend/tests/test_image_processing.py", "source_location": "L271"}, {"id": "test_image_processing_rationale_282", "label": "Test thumbnail converts RGBA to RGB.", "file_type": "rationale", "source_file": "backend/tests/test_image_processing.py", "source_location": "L282"}, {"id": "test_image_processing_rationale_293", "label": "Test main process_photo method.", "file_type": "rationale", "source_file": "backend/tests/test_image_processing.py", "source_location": "L293"}, {"id": "test_image_processing_rationale_296", "label": "Test successful photo processing.", "file_type": "rationale", "source_file": "backend/tests/test_image_processing.py", "source_location": "L296"}, {"id": "test_image_processing_rationale_306", "label": "Test that files > 10MB are rejected.", "file_type": "rationale", "source_file": "backend/tests/test_image_processing.py", "source_location": "L306"}, {"id": "test_image_processing_rationale_314", "label": "Test photo processing with EXIF orientation.", "file_type": "rationale", "source_file": "backend/tests/test_image_processing.py", "source_location": "L314"}, {"id": "test_image_processing_rationale_321", "label": "Test photo processing with manual crop bounds.", "file_type": "rationale", "source_file": "backend/tests/test_image_processing.py", "source_location": "L321"}, {"id": "test_image_processing_rationale_330", "label": "Test fallback to Pillow if OpenCV fails.", "file_type": "rationale", "source_file": "backend/tests/test_image_processing.py", "source_location": "L330"}, {"id": "test_image_processing_rationale_343", "label": "Test handling of corrupted image data.", "file_type": "rationale", "source_file": "backend/tests/test_image_processing.py", "source_location": "L343"}, {"id": "test_image_processing_rationale_351", "label": "Test handling of empty file.", "file_type": "rationale", "source_file": "backend/tests/test_image_processing.py", "source_location": "L351"}, {"id": "test_image_processing_rationale_358", "label": "Integration tests for full image processing pipeline.", "file_type": "rationale", "source_file": "backend/tests/test_image_processing.py", "source_location": "L358"}, {"id": "test_image_processing_rationale_361", "label": "Test complete image processing pipeline.", "file_type": "rationale", "source_file": "backend/tests/test_image_processing.py", "source_location": "L361"}, {"id": "test_image_processing_rationale_380", "label": "Test processing multiple images.", "file_type": "rationale", "source_file": "backend/tests/test_image_processing.py", "source_location": "L380"}, {"id": "test_image_processing_rationale_386", "label": "Test processing with manual crop bounds.", "file_type": "rationale", "source_file": "backend/tests/test_image_processing.py", "source_location": "L386"}], "edges": [{"source": "backend_tests_test_image_processing_py", "target": "io", "relation": "imports", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L15", "weight": 1.0}, {"source": "backend_tests_test_image_processing_py", "target": "pytest", "relation": "imports", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L16", "weight": 1.0}, {"source": "backend_tests_test_image_processing_py", "target": "pil", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L17", "weight": 1.0}, {"source": "backend_tests_test_image_processing_py", "target": "piexif", "relation": "imports", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L18", "weight": 1.0}, {"source": "backend_tests_test_image_processing_py", "target": "numpy", "relation": "imports", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L19", "weight": 1.0}, {"source": "backend_tests_test_image_processing_py", "target": "backend_services_image_processing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L20", "weight": 1.0}, {"source": "backend_tests_test_image_processing_py", "target": "test_image_processing_processor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L24", "weight": 1.0}, {"source": "backend_tests_test_image_processing_py", "target": "test_image_processing_sample_image_rgb", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L30", "weight": 1.0}, {"source": "backend_tests_test_image_processing_py", "target": "test_image_processing_sample_image_with_object", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L39", "weight": 1.0}, {"source": "backend_tests_test_image_processing_py", "target": "test_image_processing_sample_image_with_exif", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L53", "weight": 1.0}, {"source": "backend_tests_test_image_processing_py", "target": "test_image_processing_large_file", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L69", "weight": 1.0}, {"source": "backend_tests_test_image_processing_py", "target": "test_image_processing_corrupted_image", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L76", "weight": 1.0}, {"source": "backend_tests_test_image_processing_py", "target": "test_image_processing_testexifrotation", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L81", "weight": 1.0}, {"source": "test_image_processing_testexifrotation", "target": "test_image_processing_testexifrotation_test_extract_exif_orientation_with_exif", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L84", "weight": 1.0}, {"source": "test_image_processing_testexifrotation", "target": "test_image_processing_testexifrotation_test_extract_exif_orientation_without_exif", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L93", "weight": 1.0}, {"source": "test_image_processing_testexifrotation", "target": "test_image_processing_testexifrotation_test_rotate_by_orientation_identity", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L101", "weight": 1.0}, {"source": "test_image_processing_testexifrotation", "target": "test_image_processing_testexifrotation_test_rotate_by_orientation_180", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L108", "weight": 1.0}, {"source": "test_image_processing_testexifrotation", "target": "test_image_processing_testexifrotation_test_rotate_by_orientation_90", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L115", "weight": 1.0}, {"source": "backend_tests_test_image_processing_py", "target": "test_image_processing_testsmartcrop", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L124", "weight": 1.0}, {"source": "test_image_processing_testsmartcrop", "target": "test_image_processing_testsmartcrop_test_smart_crop_detects_object", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L127", "weight": 1.0}, {"source": "test_image_processing_testsmartcrop", "target": "test_image_processing_testsmartcrop_test_smart_crop_handles_no_contours", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L141", "weight": 1.0}, {"source": "test_image_processing_testsmartcrop", "target": "test_image_processing_testsmartcrop_test_smart_crop_respects_padding", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L150", "weight": 1.0}, {"source": "backend_tests_test_image_processing_py", "target": "test_image_processing_testtextorientation", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L162", "weight": 1.0}, {"source": "test_image_processing_testtextorientation", "target": "test_image_processing_testtextorientation_test_text_orientation_normal", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L165", "weight": 1.0}, {"source": "test_image_processing_testtextorientation", "target": "test_image_processing_testtextorientation_test_text_orientation_handles_plain_image", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L174", "weight": 1.0}, {"source": "backend_tests_test_image_processing_py", "target": "test_image_processing_testresizeandcompress", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L185", "weight": 1.0}, {"source": "test_image_processing_testresizeandcompress", "target": "test_image_processing_testresizeandcompress_test_resize_and_compress_large_image", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L188", "weight": 1.0}, {"source": "test_image_processing_testresizeandcompress", "target": "test_image_processing_testresizeandcompress_test_resize_and_compress_small_image", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L204", "weight": 1.0}, {"source": "test_image_processing_testresizeandcompress", "target": "test_image_processing_testresizeandcompress_test_resize_and_compress_jpeg_quality", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L219", "weight": 1.0}, {"source": "test_image_processing_testresizeandcompress", "target": "test_image_processing_testresizeandcompress_test_resize_and_compress_rgba_to_rgb", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L229", "weight": 1.0}, {"source": "backend_tests_test_image_processing_py", "target": "test_image_processing_testthumbnailgeneration", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L242", "weight": 1.0}, {"source": "test_image_processing_testthumbnailgeneration", "target": "test_image_processing_testthumbnailgeneration_test_generate_thumbnail_200px_square", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L245", "weight": 1.0}, {"source": "test_image_processing_testthumbnailgeneration", "target": "test_image_processing_testthumbnailgeneration_test_generate_thumbnail_center_crop", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L259", "weight": 1.0}, {"source": "test_image_processing_testthumbnailgeneration", "target": "test_image_processing_testthumbnailgeneration_test_generate_thumbnail_small_image", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L270", "weight": 1.0}, {"source": "test_image_processing_testthumbnailgeneration", "target": "test_image_processing_testthumbnailgeneration_test_generate_thumbnail_rgba_to_rgb", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L281", "weight": 1.0}, {"source": "backend_tests_test_image_processing_py", "target": "test_image_processing_testprocessphoto", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L292", "weight": 1.0}, {"source": "test_image_processing_testprocessphoto", "target": "test_image_processing_testprocessphoto_test_process_photo_success", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L295", "weight": 1.0}, {"source": "test_image_processing_testprocessphoto", "target": "test_image_processing_testprocessphoto_test_process_photo_file_size_validation", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L305", "weight": 1.0}, {"source": "test_image_processing_testprocessphoto", "target": "test_image_processing_testprocessphoto_test_process_photo_with_exif", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L313", "weight": 1.0}, {"source": "test_image_processing_testprocessphoto", "target": "test_image_processing_testprocessphoto_test_process_photo_with_manual_crop", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L320", "weight": 1.0}, {"source": "test_image_processing_testprocessphoto", "target": "test_image_processing_testprocessphoto_test_process_photo_fallback_to_pillow", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L329", "weight": 1.0}, {"source": "test_image_processing_testprocessphoto", "target": "test_image_processing_testprocessphoto_test_process_photo_corrupted_image", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L342", "weight": 1.0}, {"source": "test_image_processing_testprocessphoto", "target": "test_image_processing_testprocessphoto_test_process_photo_empty_file", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L350", "weight": 1.0}, {"source": "backend_tests_test_image_processing_py", "target": "test_image_processing_testintegration", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L357", "weight": 1.0}, {"source": "test_image_processing_testintegration", "target": "test_image_processing_testintegration_test_end_to_end_processing", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L360", "weight": 1.0}, {"source": "test_image_processing_testintegration", "target": "test_image_processing_testintegration_test_multiple_images_processing", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L379", "weight": 1.0}, {"source": "test_image_processing_testintegration", "target": "test_image_processing_testintegration_test_processing_with_all_options", "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L385", "weight": 1.0}, {"source": "test_image_processing_rationale_1", "target": "backend_tests_test_image_processing_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L1", "weight": 1.0}, {"source": "test_image_processing_rationale_25", "target": "test_image_processing_processor", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L25", "weight": 1.0}, {"source": "test_image_processing_rationale_31", "target": "test_image_processing_sample_image_rgb", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L31", "weight": 1.0}, {"source": "test_image_processing_rationale_40", "target": "test_image_processing_sample_image_with_object", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L40", "weight": 1.0}, {"source": "test_image_processing_rationale_54", "target": "test_image_processing_sample_image_with_exif", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L54", "weight": 1.0}, {"source": "test_image_processing_rationale_70", "target": "test_image_processing_large_file", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L70", "weight": 1.0}, {"source": "test_image_processing_rationale_77", "target": "test_image_processing_corrupted_image", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L77", "weight": 1.0}, {"source": "test_image_processing_rationale_82", "target": "test_image_processing_testexifrotation", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L82", "weight": 1.0}, {"source": "test_image_processing_rationale_85", "target": "test_image_processing_testexifrotation_test_extract_exif_orientation_with_exif", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L85", "weight": 1.0}, {"source": "test_image_processing_rationale_94", "target": "test_image_processing_testexifrotation_test_extract_exif_orientation_without_exif", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L94", "weight": 1.0}, {"source": "test_image_processing_rationale_102", "target": "test_image_processing_testexifrotation_test_rotate_by_orientation_identity", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L102", "weight": 1.0}, {"source": "test_image_processing_rationale_109", "target": "test_image_processing_testexifrotation_test_rotate_by_orientation_180", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L109", "weight": 1.0}, {"source": "test_image_processing_rationale_116", "target": "test_image_processing_testexifrotation_test_rotate_by_orientation_90", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L116", "weight": 1.0}, {"source": "test_image_processing_rationale_125", "target": "test_image_processing_testsmartcrop", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L125", "weight": 1.0}, {"source": "test_image_processing_rationale_128", "target": "test_image_processing_testsmartcrop_test_smart_crop_detects_object", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L128", "weight": 1.0}, {"source": "test_image_processing_rationale_142", "target": "test_image_processing_testsmartcrop_test_smart_crop_handles_no_contours", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L142", "weight": 1.0}, {"source": "test_image_processing_rationale_151", "target": "test_image_processing_testsmartcrop_test_smart_crop_respects_padding", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L151", "weight": 1.0}, {"source": "test_image_processing_rationale_163", "target": "test_image_processing_testtextorientation", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L163", "weight": 1.0}, {"source": "test_image_processing_rationale_166", "target": "test_image_processing_testtextorientation_test_text_orientation_normal", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L166", "weight": 1.0}, {"source": "test_image_processing_rationale_175", "target": "test_image_processing_testtextorientation_test_text_orientation_handles_plain_image", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L175", "weight": 1.0}, {"source": "test_image_processing_rationale_186", "target": "test_image_processing_testresizeandcompress", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L186", "weight": 1.0}, {"source": "test_image_processing_rationale_189", "target": "test_image_processing_testresizeandcompress_test_resize_and_compress_large_image", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L189", "weight": 1.0}, {"source": "test_image_processing_rationale_205", "target": "test_image_processing_testresizeandcompress_test_resize_and_compress_small_image", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L205", "weight": 1.0}, {"source": "test_image_processing_rationale_220", "target": "test_image_processing_testresizeandcompress_test_resize_and_compress_jpeg_quality", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L220", "weight": 1.0}, {"source": "test_image_processing_rationale_230", "target": "test_image_processing_testresizeandcompress_test_resize_and_compress_rgba_to_rgb", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L230", "weight": 1.0}, {"source": "test_image_processing_rationale_243", "target": "test_image_processing_testthumbnailgeneration", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L243", "weight": 1.0}, {"source": "test_image_processing_rationale_246", "target": "test_image_processing_testthumbnailgeneration_test_generate_thumbnail_200px_square", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L246", "weight": 1.0}, {"source": "test_image_processing_rationale_260", "target": "test_image_processing_testthumbnailgeneration_test_generate_thumbnail_center_crop", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L260", "weight": 1.0}, {"source": "test_image_processing_rationale_271", "target": "test_image_processing_testthumbnailgeneration_test_generate_thumbnail_small_image", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L271", "weight": 1.0}, {"source": "test_image_processing_rationale_282", "target": "test_image_processing_testthumbnailgeneration_test_generate_thumbnail_rgba_to_rgb", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L282", "weight": 1.0}, {"source": "test_image_processing_rationale_293", "target": "test_image_processing_testprocessphoto", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L293", "weight": 1.0}, {"source": "test_image_processing_rationale_296", "target": "test_image_processing_testprocessphoto_test_process_photo_success", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L296", "weight": 1.0}, {"source": "test_image_processing_rationale_306", "target": "test_image_processing_testprocessphoto_test_process_photo_file_size_validation", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L306", "weight": 1.0}, {"source": "test_image_processing_rationale_314", "target": "test_image_processing_testprocessphoto_test_process_photo_with_exif", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L314", "weight": 1.0}, {"source": "test_image_processing_rationale_321", "target": "test_image_processing_testprocessphoto_test_process_photo_with_manual_crop", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L321", "weight": 1.0}, {"source": "test_image_processing_rationale_330", "target": "test_image_processing_testprocessphoto_test_process_photo_fallback_to_pillow", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L330", "weight": 1.0}, {"source": "test_image_processing_rationale_343", "target": "test_image_processing_testprocessphoto_test_process_photo_corrupted_image", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L343", "weight": 1.0}, {"source": "test_image_processing_rationale_351", "target": "test_image_processing_testprocessphoto_test_process_photo_empty_file", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L351", "weight": 1.0}, {"source": "test_image_processing_rationale_358", "target": "test_image_processing_testintegration", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L358", "weight": 1.0}, {"source": "test_image_processing_rationale_361", "target": "test_image_processing_testintegration_test_end_to_end_processing", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L361", "weight": 1.0}, {"source": "test_image_processing_rationale_380", "target": "test_image_processing_testintegration_test_multiple_images_processing", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L380", "weight": 1.0}, {"source": "test_image_processing_rationale_386", "target": "test_image_processing_testintegration_test_processing_with_all_options", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/tests/test_image_processing.py", "source_location": "L386", "weight": 1.0}], "raw_calls": [{"caller_nid": "test_image_processing_processor", "callee": "ImageProcessor", "source_file": "backend/tests/test_image_processing.py", "source_location": "L26"}, {"caller_nid": "test_image_processing_sample_image_rgb", "callee": "new", "source_file": "backend/tests/test_image_processing.py", "source_location": "L32"}, {"caller_nid": "test_image_processing_sample_image_rgb", "callee": "BytesIO", "source_file": "backend/tests/test_image_processing.py", "source_location": "L33"}, {"caller_nid": "test_image_processing_sample_image_rgb", "callee": "save", "source_file": "backend/tests/test_image_processing.py", "source_location": "L34"}, {"caller_nid": "test_image_processing_sample_image_rgb", "callee": "getvalue", "source_file": "backend/tests/test_image_processing.py", "source_location": "L35"}, {"caller_nid": "test_image_processing_sample_image_with_object", "callee": "new", "source_file": "backend/tests/test_image_processing.py", "source_location": "L41"}, {"caller_nid": "test_image_processing_sample_image_with_object", "callee": "load", "source_file": "backend/tests/test_image_processing.py", "source_location": "L43"}, {"caller_nid": "test_image_processing_sample_image_with_object", "callee": "range", "source_file": "backend/tests/test_image_processing.py", "source_location": "L44"}, {"caller_nid": "test_image_processing_sample_image_with_object", "callee": "range", "source_file": "backend/tests/test_image_processing.py", "source_location": "L45"}, {"caller_nid": "test_image_processing_sample_image_with_object", "callee": "BytesIO", "source_file": "backend/tests/test_image_processing.py", "source_location": "L47"}, {"caller_nid": "test_image_processing_sample_image_with_object", "callee": "save", "source_file": "backend/tests/test_image_processing.py", "source_location": "L48"}, {"caller_nid": "test_image_processing_sample_image_with_object", "callee": "getvalue", "source_file": "backend/tests/test_image_processing.py", "source_location": "L49"}, {"caller_nid": "test_image_processing_sample_image_with_exif", "callee": "new", "source_file": "backend/tests/test_image_processing.py", "source_location": "L55"}, {"caller_nid": "test_image_processing_sample_image_with_exif", "callee": "dump", "source_file": "backend/tests/test_image_processing.py", "source_location": "L61"}, {"caller_nid": "test_image_processing_sample_image_with_exif", "callee": "BytesIO", "source_file": "backend/tests/test_image_processing.py", "source_location": "L63"}, {"caller_nid": "test_image_processing_sample_image_with_exif", "callee": "save", "source_file": "backend/tests/test_image_processing.py", "source_location": "L64"}, {"caller_nid": "test_image_processing_sample_image_with_exif", "callee": "getvalue", "source_file": "backend/tests/test_image_processing.py", "source_location": "L65"}, {"caller_nid": "test_image_processing_testexifrotation_test_extract_exif_orientation_with_exif", "callee": "open", "source_file": "backend/tests/test_image_processing.py", "source_location": "L86"}, {"caller_nid": "test_image_processing_testexifrotation_test_extract_exif_orientation_with_exif", "callee": "BytesIO", "source_file": "backend/tests/test_image_processing.py", "source_location": "L86"}, {"caller_nid": "test_image_processing_testexifrotation_test_extract_exif_orientation_with_exif", "callee": "_extract_exif_orientation", "source_file": "backend/tests/test_image_processing.py", "source_location": "L87"}, {"caller_nid": "test_image_processing_testexifrotation_test_extract_exif_orientation_without_exif", "callee": "open", "source_file": "backend/tests/test_image_processing.py", "source_location": "L95"}, {"caller_nid": "test_image_processing_testexifrotation_test_extract_exif_orientation_without_exif", "callee": "BytesIO", "source_file": "backend/tests/test_image_processing.py", "source_location": "L95"}, {"caller_nid": "test_image_processing_testexifrotation_test_extract_exif_orientation_without_exif", "callee": "_extract_exif_orientation", "source_file": "backend/tests/test_image_processing.py", "source_location": "L96"}, {"caller_nid": "test_image_processing_testexifrotation_test_rotate_by_orientation_identity", "callee": "new", "source_file": "backend/tests/test_image_processing.py", "source_location": "L103"}, {"caller_nid": "test_image_processing_testexifrotation_test_rotate_by_orientation_identity", "callee": "_rotate_by_orientation", "source_file": "backend/tests/test_image_processing.py", "source_location": "L104"}, {"caller_nid": "test_image_processing_testexifrotation_test_rotate_by_orientation_180", "callee": "new", "source_file": "backend/tests/test_image_processing.py", "source_location": "L110"}, {"caller_nid": "test_image_processing_testexifrotation_test_rotate_by_orientation_180", "callee": "_rotate_by_orientation", "source_file": "backend/tests/test_image_processing.py", "source_location": "L111"}, {"caller_nid": "test_image_processing_testexifrotation_test_rotate_by_orientation_90", "callee": "new", "source_file": "backend/tests/test_image_processing.py", "source_location": "L117"}, {"caller_nid": "test_image_processing_testexifrotation_test_rotate_by_orientation_90", "callee": "_rotate_by_orientation", "source_file": "backend/tests/test_image_processing.py", "source_location": "L118"}, {"caller_nid": "test_image_processing_testsmartcrop_test_smart_crop_detects_object", "callee": "open", "source_file": "backend/tests/test_image_processing.py", "source_location": "L129"}, {"caller_nid": "test_image_processing_testsmartcrop_test_smart_crop_detects_object", "callee": "BytesIO", "source_file": "backend/tests/test_image_processing.py", "source_location": "L129"}, {"caller_nid": "test_image_processing_testsmartcrop_test_smart_crop_detects_object", "callee": "_smart_crop_opencv", "source_file": "backend/tests/test_image_processing.py", "source_location": "L130"}, {"caller_nid": "test_image_processing_testsmartcrop_test_smart_crop_handles_no_contours", "callee": "new", "source_file": "backend/tests/test_image_processing.py", "source_location": "L144"}, {"caller_nid": "test_image_processing_testsmartcrop_test_smart_crop_handles_no_contours", "callee": "_smart_crop_opencv", "source_file": "backend/tests/test_image_processing.py", "source_location": "L145"}, {"caller_nid": "test_image_processing_testsmartcrop_test_smart_crop_respects_padding", "callee": "open", "source_file": "backend/tests/test_image_processing.py", "source_location": "L152"}, {"caller_nid": "test_image_processing_testsmartcrop_test_smart_crop_respects_padding", "callee": "BytesIO", "source_file": "backend/tests/test_image_processing.py", "source_location": "L152"}, {"caller_nid": "test_image_processing_testsmartcrop_test_smart_crop_respects_padding", "callee": "_smart_crop_opencv", "source_file": "backend/tests/test_image_processing.py", "source_location": "L153"}, {"caller_nid": "test_image_processing_testtextorientation_test_text_orientation_normal", "callee": "open", "source_file": "backend/tests/test_image_processing.py", "source_location": "L167"}, {"caller_nid": "test_image_processing_testtextorientation_test_text_orientation_normal", "callee": "BytesIO", "source_file": "backend/tests/test_image_processing.py", "source_location": "L167"}, {"caller_nid": "test_image_processing_testtextorientation_test_text_orientation_normal", "callee": "_detect_text_orientation", "source_file": "backend/tests/test_image_processing.py", "source_location": "L168"}, {"caller_nid": "test_image_processing_testtextorientation_test_text_orientation_handles_plain_image", "callee": "new", "source_file": "backend/tests/test_image_processing.py", "source_location": "L176"}, {"caller_nid": "test_image_processing_testtextorientation_test_text_orientation_handles_plain_image", "callee": "_detect_text_orientation", "source_file": "backend/tests/test_image_processing.py", "source_location": "L178"}, {"caller_nid": "test_image_processing_testresizeandcompress_test_resize_and_compress_large_image", "callee": "new", "source_file": "backend/tests/test_image_processing.py", "source_location": "L191"}, {"caller_nid": "test_image_processing_testresizeandcompress_test_resize_and_compress_large_image", "callee": "_resize_and_compress", "source_file": "backend/tests/test_image_processing.py", "source_location": "L193"}, {"caller_nid": "test_image_processing_testresizeandcompress_test_resize_and_compress_large_image", "callee": "isinstance", "source_file": "backend/tests/test_image_processing.py", "source_location": "L196"}, {"caller_nid": "test_image_processing_testresizeandcompress_test_resize_and_compress_large_image", "callee": "len", "source_file": "backend/tests/test_image_processing.py", "source_location": "L197"}, {"caller_nid": "test_image_processing_testresizeandcompress_test_resize_and_compress_large_image", "callee": "open", "source_file": "backend/tests/test_image_processing.py", "source_location": "L200"}, {"caller_nid": "test_image_processing_testresizeandcompress_test_resize_and_compress_large_image", "callee": "BytesIO", "source_file": "backend/tests/test_image_processing.py", "source_location": "L200"}, {"caller_nid": "test_image_processing_testresizeandcompress_test_resize_and_compress_small_image", "callee": "new", "source_file": "backend/tests/test_image_processing.py", "source_location": "L206"}, {"caller_nid": "test_image_processing_testresizeandcompress_test_resize_and_compress_small_image", "callee": "_resize_and_compress", "source_file": "backend/tests/test_image_processing.py", "source_location": "L208"}, {"caller_nid": "test_image_processing_testresizeandcompress_test_resize_and_compress_small_image", "callee": "isinstance", "source_file": "backend/tests/test_image_processing.py", "source_location": "L211"}, {"caller_nid": "test_image_processing_testresizeandcompress_test_resize_and_compress_small_image", "callee": "len", "source_file": "backend/tests/test_image_processing.py", "source_location": "L212"}, {"caller_nid": "test_image_processing_testresizeandcompress_test_resize_and_compress_small_image", "callee": "open", "source_file": "backend/tests/test_image_processing.py", "source_location": "L215"}, {"caller_nid": "test_image_processing_testresizeandcompress_test_resize_and_compress_small_image", "callee": "BytesIO", "source_file": "backend/tests/test_image_processing.py", "source_location": "L215"}, {"caller_nid": "test_image_processing_testresizeandcompress_test_resize_and_compress_jpeg_quality", "callee": "new", "source_file": "backend/tests/test_image_processing.py", "source_location": "L221"}, {"caller_nid": "test_image_processing_testresizeandcompress_test_resize_and_compress_jpeg_quality", "callee": "_resize_and_compress", "source_file": "backend/tests/test_image_processing.py", "source_location": "L223"}, {"caller_nid": "test_image_processing_testresizeandcompress_test_resize_and_compress_jpeg_quality", "callee": "len", "source_file": "backend/tests/test_image_processing.py", "source_location": "L227"}, {"caller_nid": "test_image_processing_testresizeandcompress_test_resize_and_compress_rgba_to_rgb", "callee": "new", "source_file": "backend/tests/test_image_processing.py", "source_location": "L232"}, {"caller_nid": "test_image_processing_testresizeandcompress_test_resize_and_compress_rgba_to_rgb", "callee": "_resize_and_compress", "source_file": "backend/tests/test_image_processing.py", "source_location": "L234"}, {"caller_nid": "test_image_processing_testresizeandcompress_test_resize_and_compress_rgba_to_rgb", "callee": "isinstance", "source_file": "backend/tests/test_image_processing.py", "source_location": "L237"}, {"caller_nid": "test_image_processing_testresizeandcompress_test_resize_and_compress_rgba_to_rgb", "callee": "open", "source_file": "backend/tests/test_image_processing.py", "source_location": "L238"}, {"caller_nid": "test_image_processing_testresizeandcompress_test_resize_and_compress_rgba_to_rgb", "callee": "BytesIO", "source_file": "backend/tests/test_image_processing.py", "source_location": "L238"}, {"caller_nid": "test_image_processing_testthumbnailgeneration_test_generate_thumbnail_200px_square", "callee": "new", "source_file": "backend/tests/test_image_processing.py", "source_location": "L247"}, {"caller_nid": "test_image_processing_testthumbnailgeneration_test_generate_thumbnail_200px_square", "callee": "_generate_thumbnail", "source_file": "backend/tests/test_image_processing.py", "source_location": "L249"}, {"caller_nid": "test_image_processing_testthumbnailgeneration_test_generate_thumbnail_200px_square", "callee": "isinstance", "source_file": "backend/tests/test_image_processing.py", "source_location": "L252"}, {"caller_nid": "test_image_processing_testthumbnailgeneration_test_generate_thumbnail_200px_square", "callee": "len", "source_file": "backend/tests/test_image_processing.py", "source_location": "L253"}, {"caller_nid": "test_image_processing_testthumbnailgeneration_test_generate_thumbnail_200px_square", "callee": "open", "source_file": "backend/tests/test_image_processing.py", "source_location": "L256"}, {"caller_nid": "test_image_processing_testthumbnailgeneration_test_generate_thumbnail_200px_square", "callee": "BytesIO", "source_file": "backend/tests/test_image_processing.py", "source_location": "L256"}, {"caller_nid": "test_image_processing_testthumbnailgeneration_test_generate_thumbnail_center_crop", "callee": "new", "source_file": "backend/tests/test_image_processing.py", "source_location": "L262"}, {"caller_nid": "test_image_processing_testthumbnailgeneration_test_generate_thumbnail_center_crop", "callee": "_generate_thumbnail", "source_file": "backend/tests/test_image_processing.py", "source_location": "L264"}, {"caller_nid": "test_image_processing_testthumbnailgeneration_test_generate_thumbnail_center_crop", "callee": "open", "source_file": "backend/tests/test_image_processing.py", "source_location": "L267"}, {"caller_nid": "test_image_processing_testthumbnailgeneration_test_generate_thumbnail_center_crop", "callee": "BytesIO", "source_file": "backend/tests/test_image_processing.py", "source_location": "L267"}, {"caller_nid": "test_image_processing_testthumbnailgeneration_test_generate_thumbnail_small_image", "callee": "new", "source_file": "backend/tests/test_image_processing.py", "source_location": "L273"}, {"caller_nid": "test_image_processing_testthumbnailgeneration_test_generate_thumbnail_small_image", "callee": "_generate_thumbnail", "source_file": "backend/tests/test_image_processing.py", "source_location": "L275"}, {"caller_nid": "test_image_processing_testthumbnailgeneration_test_generate_thumbnail_small_image", "callee": "open", "source_file": "backend/tests/test_image_processing.py", "source_location": "L278"}, {"caller_nid": "test_image_processing_testthumbnailgeneration_test_generate_thumbnail_small_image", "callee": "BytesIO", "source_file": "backend/tests/test_image_processing.py", "source_location": "L278"}, {"caller_nid": "test_image_processing_testthumbnailgeneration_test_generate_thumbnail_rgba_to_rgb", "callee": "new", "source_file": "backend/tests/test_image_processing.py", "source_location": "L283"}, {"caller_nid": "test_image_processing_testthumbnailgeneration_test_generate_thumbnail_rgba_to_rgb", "callee": "_generate_thumbnail", "source_file": "backend/tests/test_image_processing.py", "source_location": "L285"}, {"caller_nid": "test_image_processing_testthumbnailgeneration_test_generate_thumbnail_rgba_to_rgb", "callee": "open", "source_file": "backend/tests/test_image_processing.py", "source_location": "L288"}, {"caller_nid": "test_image_processing_testthumbnailgeneration_test_generate_thumbnail_rgba_to_rgb", "callee": "BytesIO", "source_file": "backend/tests/test_image_processing.py", "source_location": "L288"}, {"caller_nid": "test_image_processing_testprocessphoto_test_process_photo_success", "callee": "process_photo", "source_file": "backend/tests/test_image_processing.py", "source_location": "L297"}, {"caller_nid": "test_image_processing_testprocessphoto_test_process_photo_file_size_validation", "callee": "process_photo", "source_file": "backend/tests/test_image_processing.py", "source_location": "L307"}, {"caller_nid": "test_image_processing_testprocessphoto_test_process_photo_with_exif", "callee": "process_photo", "source_file": "backend/tests/test_image_processing.py", "source_location": "L315"}, {"caller_nid": "test_image_processing_testprocessphoto_test_process_photo_with_manual_crop", "callee": "process_photo", "source_file": "backend/tests/test_image_processing.py", "source_location": "L323"}, {"caller_nid": "test_image_processing_testprocessphoto_test_process_photo_fallback_to_pillow", "callee": "process_photo", "source_file": "backend/tests/test_image_processing.py", "source_location": "L331"}, {"caller_nid": "test_image_processing_testprocessphoto_test_process_photo_corrupted_image", "callee": "process_photo", "source_file": "backend/tests/test_image_processing.py", "source_location": "L344"}, {"caller_nid": "test_image_processing_testprocessphoto_test_process_photo_empty_file", "callee": "process_photo", "source_file": "backend/tests/test_image_processing.py", "source_location": "L352"}, {"caller_nid": "test_image_processing_testintegration_test_end_to_end_processing", "callee": "process_photo", "source_file": "backend/tests/test_image_processing.py", "source_location": "L362"}, {"caller_nid": "test_image_processing_testintegration_test_multiple_images_processing", "callee": "range", "source_file": "backend/tests/test_image_processing.py", "source_location": "L381"}, {"caller_nid": "test_image_processing_testintegration_test_multiple_images_processing", "callee": "process_photo", "source_file": "backend/tests/test_image_processing.py", "source_location": "L382"}, {"caller_nid": "test_image_processing_testintegration_test_processing_with_all_options", "callee": "process_photo", "source_file": "backend/tests/test_image_processing.py", "source_location": "L388"}]}