endoreg-db 0.8.4.7__py3-none-any.whl → 0.8.4.9__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of endoreg-db might be problematic. Click here for more details.

@@ -11,23 +11,26 @@ Changelog:
11
11
 
12
12
  from datetime import date
13
13
  import logging
14
- import sys
15
14
  import os
15
+ import random
16
16
  import shutil
17
+ import sys
17
18
  import time
18
19
  from contextlib import contextmanager
20
+ from datetime import date
19
21
  from pathlib import Path
20
- from typing import Union, Dict, Any, Optional, List, Tuple
22
+ from typing import Any, Dict, List, Optional, Tuple, Union
23
+
21
24
  from django.db import transaction
25
+ from django.db.models.fields.files import FieldFile
22
26
  from lx_anonymizer import FrameCleaner
23
27
  from moviepy import video
24
- from endoreg_db.models import VideoFile, SensitiveMeta
25
- from endoreg_db.utils.paths import STORAGE_DIR, VIDEO_DIR, ANONYM_VIDEO_DIR
26
- import random
28
+
29
+ from endoreg_db.models import EndoscopyProcessor, SensitiveMeta, VideoFile
30
+ from endoreg_db.models.media.video.video_file_anonymize import \
31
+ _cleanup_raw_assets
27
32
  from endoreg_db.utils.hashs import get_video_hash
28
- from endoreg_db.models.media.video.video_file_anonymize import _cleanup_raw_assets
29
- from django.db.models.fields.files import FieldFile
30
- from endoreg_db.models import EndoscopyProcessor
33
+ from endoreg_db.utils.paths import ANONYM_VIDEO_DIR, STORAGE_DIR, VIDEO_DIR
31
34
 
32
35
  # File lock configuration (matches PDF import)
33
36
  STALE_LOCK_SECONDS = 6000 # 100 minutes - reclaim locks older than this
@@ -895,20 +898,30 @@ class VideoImportService:
895
898
 
896
899
  sm = sensitive_meta
897
900
  updated_fields = []
898
-
901
+
902
+ # Ensure center is set from video.center if not in extracted_metadata
903
+ metadata_to_update = extracted_metadata.copy()
904
+ if 'center_name' not in metadata_to_update and video.center:
905
+ metadata_to_update['center_name'] = video.center.name
906
+ self.logger.debug("Added center_name '%s' to metadata for SensitiveMeta update", video.center.name)
907
+
899
908
  try:
900
- sm.update_from_dict(extracted_metadata)
901
- updated_fields = list(extracted_metadata.keys())
909
+ sm.update_from_dict(metadata_to_update)
910
+ updated_fields = list(extracted_metadata.keys()) # Only log originally extracted fields
902
911
  except KeyError as e:
903
912
  self.logger.warning(f"Failed to update SensitiveMeta field {e}")
904
913
 
905
914
  if updated_fields:
906
- sm.save(update_fields=updated_fields)
907
- self.logger.info("Updated SensitiveMeta fields for video %s: %s", video.uuid, updated_fields)
915
+ try:
916
+ sm.save() # Remove update_fields to allow all necessary fields to be saved
917
+ self.logger.info("Updated SensitiveMeta fields for video %s: %s", video.uuid, updated_fields)
908
918
 
909
- state = video.get_or_create_state()
910
- state.mark_sensitive_meta_processed(save=True)
911
- self.logger.info("Marked sensitive metadata as processed for video %s", video.uuid)
919
+ state = video.get_or_create_state()
920
+ state.mark_sensitive_meta_processed(save=True)
921
+ self.logger.info("Marked sensitive metadata as processed for video %s", video.uuid)
922
+ except Exception as e:
923
+ self.logger.error(f"Failed to save SensitiveMeta: {e}")
924
+ raise # Re-raise to trigger fallback in calling method
912
925
  else:
913
926
  self.logger.info("No SensitiveMeta fields updated for video %s - all existing values preserved", video.uuid)
914
927