endoreg-db 0.8.2.4__py3-none-any.whl → 0.8.2.5__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.
- endoreg_db/helpers/default_objects.py +48 -29
- endoreg_db/management/commands/import_video.py +5 -4
- endoreg_db/models/__init__.py +4 -4
- endoreg_db/models/media/__init__.py +3 -1
- endoreg_db/models/media/video/__init__.py +4 -0
- endoreg_db/models/media/video/video_file.py +53 -44
- endoreg_db/models/{video_metadata.py → media/video/video_metadata.py} +1 -2
- endoreg_db/models/{video_processing.py → media/video/video_processing.py} +1 -2
- endoreg_db/models/medical/hardware/endoscopy_processor.py +28 -10
- endoreg_db/models/metadata/sensitive_meta.py +8 -8
- endoreg_db/serializers/video/video_metadata.py +1 -1
- endoreg_db/services/pseudonym_service.py +1 -1
- endoreg_db/services/video_import.py +275 -410
- endoreg_db/urls/media.py +1 -9
- endoreg_db/utils/paths.py +15 -16
- endoreg_db/views/__init__.py +1 -13
- endoreg_db/views/video/__init__.py +0 -4
- endoreg_db/views/video/correction.py +20 -177
- {endoreg_db-0.8.2.4.dist-info → endoreg_db-0.8.2.5.dist-info}/METADATA +2 -2
- {endoreg_db-0.8.2.4.dist-info → endoreg_db-0.8.2.5.dist-info}/RECORD +22 -25
- endoreg_db/models/media/video/video_file_meta.py +0 -11
- endoreg_db/services/ollama_api_docs.py +0 -1528
- endoreg_db/views/video/video_reprocess.py +0 -40
- {endoreg_db-0.8.2.4.dist-info → endoreg_db-0.8.2.5.dist-info}/WHEEL +0 -0
- {endoreg_db-0.8.2.4.dist-info → endoreg_db-0.8.2.5.dist-info}/licenses/LICENSE +0 -0
endoreg_db/urls/media.py
CHANGED
|
@@ -24,10 +24,8 @@ from endoreg_db.views import (
|
|
|
24
24
|
from endoreg_db.views.pdf.reimport import PdfReimportView
|
|
25
25
|
from endoreg_db.views.video.reimport import VideoReimportView
|
|
26
26
|
from endoreg_db.views.video.correction import (
|
|
27
|
-
VideoReprocessView,
|
|
28
27
|
VideoMetadataView,
|
|
29
28
|
VideoProcessingHistoryView,
|
|
30
|
-
VideoAnalyzeView,
|
|
31
29
|
VideoApplyMaskView,
|
|
32
30
|
VideoRemoveFramesView,
|
|
33
31
|
VideoCorrectionView,
|
|
@@ -85,7 +83,6 @@ urlpatterns = [
|
|
|
85
83
|
# POST /api/media/videos/<int:pk>/analyze/
|
|
86
84
|
# Analyzes video for sensitive frames using MiniCPM-o 2.6 or OCR+LLM
|
|
87
85
|
# Body: { detection_method: 'minicpm'|'ocr_llm'|'hybrid', sample_interval: 30 }
|
|
88
|
-
path("media/videos/<int:pk>/analyze/", VideoAnalyzeView.as_view(), name="video-analyze"),
|
|
89
86
|
|
|
90
87
|
# Video Masking API
|
|
91
88
|
# POST /api/media/videos/<int:pk>/apply-mask/
|
|
@@ -98,12 +95,7 @@ urlpatterns = [
|
|
|
98
95
|
# Removes specified frames from video
|
|
99
96
|
# Body: { frame_list: [10,20,30] OR frame_ranges: '10-20,30' OR detection_method: 'automatic' }
|
|
100
97
|
path("media/videos/<int:pk>/remove-frames/", VideoRemoveFramesView.as_view(), name="video-remove-frames"),
|
|
101
|
-
|
|
102
|
-
# Video Reprocess API endpoint (modern media framework)
|
|
103
|
-
# POST /api/media/videos/<int:pk>/reprocess/
|
|
104
|
-
# Re-runs entire anonymization pipeline for a video (correction workflow)
|
|
105
|
-
path("media/videos/<int:pk>/reprocess/", VideoReprocessView.as_view(), name="video-reprocess"),
|
|
106
|
-
|
|
98
|
+
|
|
107
99
|
# ---------------------------------------------------------------------------------------
|
|
108
100
|
# VIDEO SEGMENT API ENDPOINTS (Modern Media Framework - October 14, 2025)
|
|
109
101
|
#
|
endoreg_db/utils/paths.py
CHANGED
|
@@ -6,27 +6,25 @@ It provides a unified dictionary 'data_paths' for accessing all path objects.
|
|
|
6
6
|
"""
|
|
7
7
|
|
|
8
8
|
from logging import getLogger
|
|
9
|
+
|
|
10
|
+
from sphinx.search import no
|
|
9
11
|
logger = getLogger(__name__)
|
|
10
12
|
|
|
11
13
|
from pathlib import Path
|
|
12
14
|
from typing import Dict
|
|
13
|
-
|
|
14
15
|
import os
|
|
16
|
+
# Alternative approach using env_path helper, deprecated since monorepo setup. Alright for single install, env is always preferred.
|
|
17
|
+
#from endoreg_db.config.env import env_path
|
|
15
18
|
|
|
16
19
|
STORAGE_DIR = Path(os.getenv("STORAGE_DIR", "storage"))
|
|
17
20
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
# # Fall back to a local storage directory under the repo.
|
|
26
|
-
# return (BASE_DIR / "storage").resolve()
|
|
27
|
-
|
|
28
|
-
# STORAGE_DIR = _resolve_storage_dir()
|
|
29
|
-
STORAGE_DIR.mkdir(parents=True, exist_ok=True)
|
|
21
|
+
storage_dir_env = os.getenv("STORAGE_DIR")
|
|
22
|
+
if storage_dir_env is None:
|
|
23
|
+
raise RuntimeError("STORAGE_DIR environment variable is not set.")
|
|
24
|
+
storage_dir_str = Path(storage_dir_env)
|
|
25
|
+
STORAGE_DIR = storage_dir_str
|
|
26
|
+
if not STORAGE_DIR.exists():
|
|
27
|
+
STORAGE_DIR.mkdir(parents=True, exist_ok=True)
|
|
30
28
|
|
|
31
29
|
PREFIX_RAW = "raw_"
|
|
32
30
|
IMPORT_DIR_NAME = "import"
|
|
@@ -91,6 +89,7 @@ data_paths:Dict[str,Path] = {
|
|
|
91
89
|
logger.info(f"Storage directory: {STORAGE_DIR.resolve()}")
|
|
92
90
|
logger.info(f"Export directory: {EXPORT_DIR.resolve()}")
|
|
93
91
|
|
|
94
|
-
for key, path in data_paths.items():
|
|
95
|
-
|
|
96
|
-
|
|
92
|
+
# for key, path in data_paths.items():
|
|
93
|
+
# path.mkdir(parents=True, exist_ok=True)
|
|
94
|
+
|
|
95
|
+
# logger.info(f"{key.capitalize()} directory: {path.resolve()}")
|
endoreg_db/views/__init__.py
CHANGED
|
@@ -127,19 +127,8 @@ from .video import (
|
|
|
127
127
|
# Video Correction (Phase 1.1) - Implemented
|
|
128
128
|
VideoMetadataView,
|
|
129
129
|
VideoProcessingHistoryView,
|
|
130
|
-
VideoAnalyzeView,
|
|
131
130
|
VideoApplyMaskView,
|
|
132
131
|
VideoRemoveFramesView,
|
|
133
|
-
VideoReprocessView,
|
|
134
|
-
|
|
135
|
-
# Phase 1.2: Media Management Views ✅ IMPLEMENTED
|
|
136
|
-
# VideoMediaView, # Imported via video module
|
|
137
|
-
# PDFMediaView, # Legacy view still in pdf module
|
|
138
|
-
|
|
139
|
-
# TODO Phase 1.2+: Future views
|
|
140
|
-
# VideoCorrectionView,
|
|
141
|
-
# TaskStatusView,
|
|
142
|
-
# VideoDownloadProcessedView,
|
|
143
132
|
|
|
144
133
|
# Existing views
|
|
145
134
|
VideoReimportView,
|
|
@@ -266,10 +255,9 @@ __all__ = [
|
|
|
266
255
|
# Video Views (Phase 1.1 - Implemented)
|
|
267
256
|
'VideoMetadataView',
|
|
268
257
|
'VideoProcessingHistoryView',
|
|
269
|
-
'VideoAnalyzeView',
|
|
270
258
|
'VideoApplyMaskView',
|
|
271
259
|
'VideoRemoveFramesView',
|
|
272
|
-
|
|
260
|
+
|
|
273
261
|
'VideoCorrectionView',
|
|
274
262
|
|
|
275
263
|
# Video Views (Existing)
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
from .correction import (
|
|
2
2
|
VideoMetadataView,
|
|
3
3
|
VideoProcessingHistoryView,
|
|
4
|
-
VideoAnalyzeView,
|
|
5
4
|
VideoApplyMaskView,
|
|
6
5
|
VideoRemoveFramesView,
|
|
7
|
-
VideoReprocessView,
|
|
8
6
|
VideoCorrectionView,
|
|
9
7
|
)
|
|
10
8
|
|
|
@@ -34,10 +32,8 @@ __all__ = [
|
|
|
34
32
|
# Video Correction (Phase 1.1) - Implemented
|
|
35
33
|
'VideoMetadataView',
|
|
36
34
|
'VideoProcessingHistoryView',
|
|
37
|
-
'VideoAnalyzeView',
|
|
38
35
|
'VideoApplyMaskView',
|
|
39
36
|
'VideoRemoveFramesView',
|
|
40
|
-
'VideoReprocessView',
|
|
41
37
|
|
|
42
38
|
# Phase 1.2: Media Management Views ✅ IMPLEMENTED
|
|
43
39
|
'VideoMediaView',
|
|
@@ -30,6 +30,16 @@ from endoreg_db.utils.permissions import EnvironmentAwarePermission
|
|
|
30
30
|
|
|
31
31
|
logger = logging.getLogger(__name__)
|
|
32
32
|
|
|
33
|
+
def update_processed_file(video, output_path: Path):
|
|
34
|
+
from endoreg_db.utils import data_paths
|
|
35
|
+
storage_root = Path(data_paths["storage"])
|
|
36
|
+
try:
|
|
37
|
+
rel_path = output_path.relative_to(storage_root)
|
|
38
|
+
except ValueError:
|
|
39
|
+
rel_path = output_path.relative_to(Path(settings.MEDIA_ROOT))
|
|
40
|
+
video.processed_file.name = str(rel_path)
|
|
41
|
+
video.save(update_fields=["processed_file"])
|
|
42
|
+
|
|
33
43
|
|
|
34
44
|
class VideoCorrectionView(APIView):
|
|
35
45
|
"""
|
|
@@ -213,111 +223,6 @@ class VideoProcessingHistoryView(APIView):
|
|
|
213
223
|
return Response(serializer.data)
|
|
214
224
|
|
|
215
225
|
|
|
216
|
-
class VideoAnalyzeView(APIView):
|
|
217
|
-
"""
|
|
218
|
-
POST /api/media/videos/{pk}/analyze/
|
|
219
|
-
|
|
220
|
-
Analyze video for sensitive frames using MiniCPM-o 2.6 or OCR+LLM.
|
|
221
|
-
|
|
222
|
-
Request body (optional):
|
|
223
|
-
{
|
|
224
|
-
"detection_method": "minicpm", // or "ocr_llm", "hybrid"
|
|
225
|
-
"sample_interval": 30 // analyze every Nth frame (default: adaptive)
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
Returns:
|
|
229
|
-
{
|
|
230
|
-
"sensitive_frame_count": 42,
|
|
231
|
-
"total_frames": 840,
|
|
232
|
-
"sensitive_ratio": 0.05,
|
|
233
|
-
"sensitive_frame_ids": [10, 15, 20, ...],
|
|
234
|
-
"sensitive_percentage": 5.0,
|
|
235
|
-
"detection_method": "minicpm",
|
|
236
|
-
"message": "Analysis complete"
|
|
237
|
-
}
|
|
238
|
-
"""
|
|
239
|
-
|
|
240
|
-
def post(self, request, pk):
|
|
241
|
-
"""Analyze video for sensitive content."""
|
|
242
|
-
video = get_object_or_404(VideoFile, pk=pk)
|
|
243
|
-
|
|
244
|
-
# Extract parameters
|
|
245
|
-
detection_method = request.data.get('detection_method', 'minicpm')
|
|
246
|
-
sample_interval = request.data.get('sample_interval', None)
|
|
247
|
-
|
|
248
|
-
try:
|
|
249
|
-
# Initialize FrameCleaner with appropriate detection method
|
|
250
|
-
use_minicpm = detection_method in ['minicpm', 'hybrid']
|
|
251
|
-
frame_cleaner = FrameCleaner(use_minicpm=use_minicpm)
|
|
252
|
-
|
|
253
|
-
# Get video path
|
|
254
|
-
video_path = video.raw_file.path if hasattr(video.raw_file, 'path') else str(video.raw_file)
|
|
255
|
-
|
|
256
|
-
# Run analysis (uses existing FrameCleaner.analyze_video_sensitivity)
|
|
257
|
-
analysis_result = frame_cleaner.analyze_video_sensitivity(
|
|
258
|
-
)
|
|
259
|
-
|
|
260
|
-
# Extract results
|
|
261
|
-
sensitive_frame_ids = analysis_result.get('sensitive_frame_ids', [])
|
|
262
|
-
total_frames = analysis_result.get('total_frames', 0)
|
|
263
|
-
sensitive_count = len(sensitive_frame_ids)
|
|
264
|
-
sensitive_ratio = sensitive_count / total_frames if total_frames > 0 else 0.0
|
|
265
|
-
|
|
266
|
-
# Update or create metadata
|
|
267
|
-
metadata, created = VideoMetadata.objects.update_or_create(
|
|
268
|
-
video=video,
|
|
269
|
-
defaults={
|
|
270
|
-
'sensitive_frame_count': sensitive_count,
|
|
271
|
-
'sensitive_ratio': sensitive_ratio,
|
|
272
|
-
'sensitive_frame_ids': json.dumps(sensitive_frame_ids)
|
|
273
|
-
}
|
|
274
|
-
)
|
|
275
|
-
|
|
276
|
-
# Create processing history record
|
|
277
|
-
VideoProcessingHistory.objects.create(
|
|
278
|
-
video=video,
|
|
279
|
-
operation=VideoProcessingHistory.OPERATION_ANALYSIS,
|
|
280
|
-
status=VideoProcessingHistory.STATUS_SUCCESS,
|
|
281
|
-
config={
|
|
282
|
-
'detection_method': detection_method,
|
|
283
|
-
'sample_interval': sample_interval
|
|
284
|
-
},
|
|
285
|
-
details=f"Found {sensitive_count} sensitive frames out of {total_frames} total frames"
|
|
286
|
-
)
|
|
287
|
-
|
|
288
|
-
logger.info(f"Video {pk} analyzed: {sensitive_count}/{total_frames} sensitive frames")
|
|
289
|
-
|
|
290
|
-
return Response({
|
|
291
|
-
'sensitive_frame_count': sensitive_count,
|
|
292
|
-
'total_frames': total_frames,
|
|
293
|
-
'sensitive_ratio': sensitive_ratio,
|
|
294
|
-
'sensitive_frame_ids': sensitive_frame_ids,
|
|
295
|
-
'sensitive_percentage': sensitive_ratio * 100,
|
|
296
|
-
'detection_method': detection_method,
|
|
297
|
-
'message': 'Analysis complete'
|
|
298
|
-
})
|
|
299
|
-
|
|
300
|
-
except Exception as e:
|
|
301
|
-
logger.error(f"Video analysis failed for {pk}: {str(e)}", exc_info=True)
|
|
302
|
-
|
|
303
|
-
# Create failure record
|
|
304
|
-
VideoProcessingHistory.objects.create(
|
|
305
|
-
video=video,
|
|
306
|
-
operation=VideoProcessingHistory.OPERATION_ANALYSIS,
|
|
307
|
-
status=VideoProcessingHistory.STATUS_FAILURE,
|
|
308
|
-
config={
|
|
309
|
-
'detection_method': detection_method,
|
|
310
|
-
'sample_interval': sample_interval
|
|
311
|
-
},
|
|
312
|
-
details=str(e)
|
|
313
|
-
)
|
|
314
|
-
|
|
315
|
-
return Response(
|
|
316
|
-
{'error': f'Analysis failed: {str(e)}'},
|
|
317
|
-
status=status.HTTP_500_INTERNAL_SERVER_ERROR
|
|
318
|
-
)
|
|
319
|
-
|
|
320
|
-
|
|
321
226
|
class VideoApplyMaskView(APIView):
|
|
322
227
|
"""
|
|
323
228
|
POST /api/media/videos/{pk}/apply-mask/
|
|
@@ -391,7 +296,7 @@ class VideoApplyMaskView(APIView):
|
|
|
391
296
|
frame_cleaner = FrameCleaner()
|
|
392
297
|
|
|
393
298
|
# Get video paths
|
|
394
|
-
video_path = video.raw_file.path if hasattr(video.raw_file, 'path') else str(video.raw_file)
|
|
299
|
+
video_path = Path(video.raw_file.path) if hasattr(video.raw_file, 'path') else Path(str(video.raw_file))
|
|
395
300
|
output_path = Path(settings.MEDIA_ROOT) / 'anonym_videos' / f"{video.uuid}_masked.mp4"
|
|
396
301
|
output_path.parent.mkdir(parents=True, exist_ok=True)
|
|
397
302
|
|
|
@@ -403,7 +308,6 @@ class VideoApplyMaskView(APIView):
|
|
|
403
308
|
# Convert ROI to mask config
|
|
404
309
|
mask_config = frame_cleaner._create_mask_config_from_roi(
|
|
405
310
|
endoscope_roi=roi,
|
|
406
|
-
processor_rois=None
|
|
407
311
|
)
|
|
408
312
|
|
|
409
313
|
# Apply mask (uses existing FrameCleaner._mask_video)
|
|
@@ -413,16 +317,16 @@ class VideoApplyMaskView(APIView):
|
|
|
413
317
|
success = frame_cleaner._mask_video(
|
|
414
318
|
input_video=video_path,
|
|
415
319
|
mask_config=mask_config,
|
|
416
|
-
output_video=
|
|
320
|
+
output_video=output_path
|
|
417
321
|
)
|
|
418
322
|
|
|
419
323
|
processing_time = time.time() - start_time
|
|
420
324
|
|
|
421
325
|
if success:
|
|
422
326
|
# Update video record with anonymized file
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
327
|
+
from django.core.files import File
|
|
328
|
+
processed_file_path = output_path
|
|
329
|
+
update_processed_file(video, processed_file_path)
|
|
426
330
|
# Mark history as success
|
|
427
331
|
history.mark_success(
|
|
428
332
|
output_file=str(output_path),
|
|
@@ -544,7 +448,7 @@ class VideoRemoveFramesView(APIView):
|
|
|
544
448
|
frame_cleaner = FrameCleaner()
|
|
545
449
|
|
|
546
450
|
# Get video paths
|
|
547
|
-
video_path = video.raw_file.path if hasattr(video.raw_file, 'path') else str(video.raw_file)
|
|
451
|
+
video_path = Path(video.raw_file.path) if hasattr(video.raw_file, 'path') else Path(str(video.raw_file))
|
|
548
452
|
output_path = Path(settings.MEDIA_ROOT) / 'anonym_videos' / f"{video.uuid}_cleaned.mp4"
|
|
549
453
|
output_path.parent.mkdir(parents=True, exist_ok=True)
|
|
550
454
|
|
|
@@ -555,15 +459,15 @@ class VideoRemoveFramesView(APIView):
|
|
|
555
459
|
success = frame_cleaner.remove_frames_from_video(
|
|
556
460
|
original_video=video_path,
|
|
557
461
|
frames_to_remove=frames_to_remove,
|
|
558
|
-
output_video=
|
|
462
|
+
output_video=output_path
|
|
559
463
|
)
|
|
560
464
|
|
|
561
465
|
processing_time = time.time() - start_time
|
|
562
466
|
|
|
563
467
|
if success:
|
|
564
468
|
# Update video record
|
|
565
|
-
video
|
|
566
|
-
|
|
469
|
+
update_processed_file(video, output_path)
|
|
470
|
+
|
|
567
471
|
|
|
568
472
|
# Phase 1.4: Update LabelVideoSegments (shift frame numbers)
|
|
569
473
|
segment_update_result = update_segments_after_frame_removal(video, frames_to_remove)
|
|
@@ -623,65 +527,4 @@ class VideoRemoveFramesView(APIView):
|
|
|
623
527
|
frames.extend(range(start, end + 1))
|
|
624
528
|
else:
|
|
625
529
|
frames.append(int(part))
|
|
626
|
-
return sorted(set(frames)) # Remove duplicates and sort
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
class VideoReprocessView(APIView):
|
|
630
|
-
"""
|
|
631
|
-
POST /api/media/videos/{pk}/reprocess/
|
|
632
|
-
|
|
633
|
-
Re-run entire anonymization pipeline for a video.
|
|
634
|
-
|
|
635
|
-
Request body: {} (empty)
|
|
636
|
-
|
|
637
|
-
Returns:
|
|
638
|
-
{
|
|
639
|
-
"message": "Reprocessing started",
|
|
640
|
-
"status": "processing_anonymization"
|
|
641
|
-
}
|
|
642
|
-
|
|
643
|
-
Note: This resets VideoState and triggers video_import service.
|
|
644
|
-
"""
|
|
645
|
-
|
|
646
|
-
def post(self, request, pk):
|
|
647
|
-
"""Reprocess video through entire anonymization pipeline."""
|
|
648
|
-
video = get_object_or_404(VideoFile, pk=pk)
|
|
649
|
-
|
|
650
|
-
try:
|
|
651
|
-
# Create processing history record
|
|
652
|
-
history = VideoProcessingHistory.objects.create(
|
|
653
|
-
video=video,
|
|
654
|
-
operation=VideoProcessingHistory.OPERATION_REPROCESSING,
|
|
655
|
-
status=VideoProcessingHistory.STATUS_PENDING,
|
|
656
|
-
config={}
|
|
657
|
-
)
|
|
658
|
-
|
|
659
|
-
# Reset video state to trigger re-processing
|
|
660
|
-
if hasattr(video, 'state') and video.state:
|
|
661
|
-
video.state.anonymization_status = 'processing_anonymization'
|
|
662
|
-
video.state.save()
|
|
663
|
-
|
|
664
|
-
# Clear previous metadata
|
|
665
|
-
VideoMetadata.objects.filter(video=video).delete()
|
|
666
|
-
|
|
667
|
-
# TODO Phase 1.2: Trigger Celery task for async reprocessing
|
|
668
|
-
# task = reprocess_video_task.delay(video.id)
|
|
669
|
-
# history.task_id = task.id
|
|
670
|
-
# history.save()
|
|
671
|
-
|
|
672
|
-
history.mark_success(details="Reprocessing initiated")
|
|
673
|
-
|
|
674
|
-
logger.info(f"Video {pk} reprocessing started")
|
|
675
|
-
|
|
676
|
-
return Response({
|
|
677
|
-
'message': 'Reprocessing started',
|
|
678
|
-
'status': 'processing_anonymization'
|
|
679
|
-
})
|
|
680
|
-
|
|
681
|
-
except Exception as e:
|
|
682
|
-
logger.error(f"Reprocessing failed for {pk}: {str(e)}", exc_info=True)
|
|
683
|
-
|
|
684
|
-
return Response(
|
|
685
|
-
{'error': f'Reprocessing failed: {str(e)}'},
|
|
686
|
-
status=status.HTTP_500_INTERNAL_SERVER_ERROR
|
|
687
|
-
)
|
|
530
|
+
return sorted(set(frames)) # Remove duplicates and sort
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: endoreg-db
|
|
3
|
-
Version: 0.8.2.
|
|
3
|
+
Version: 0.8.2.5
|
|
4
4
|
Summary: EndoReg Db Django App
|
|
5
5
|
Project-URL: Homepage, https://info.coloreg.de
|
|
6
6
|
Project-URL: Repository, https://github.com/wg-lux/endoreg-db
|
|
@@ -33,7 +33,7 @@ Requires-Dist: gunicorn>=23.0.0
|
|
|
33
33
|
Requires-Dist: icecream>=2.1.4
|
|
34
34
|
Requires-Dist: librosa==0.11.0
|
|
35
35
|
Requires-Dist: llvmlite>=0.44.0
|
|
36
|
-
Requires-Dist: lx-anonymizer[llm,ocr]>=0.8.
|
|
36
|
+
Requires-Dist: lx-anonymizer[llm,ocr]>=0.8.3
|
|
37
37
|
Requires-Dist: moviepy==2.2.1
|
|
38
38
|
Requires-Dist: mypy>=1.16.0
|
|
39
39
|
Requires-Dist: numpy>=2.2.3
|
|
@@ -240,7 +240,7 @@ endoreg_db/forms/settings/__init__.py,sha256=xKCYyRS1tEAWsm5C9OrG0Btqgitzuh_s31O
|
|
|
240
240
|
endoreg_db/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
241
241
|
endoreg_db/helpers/count_db.py,sha256=IkdgvDPM5xq7DgFn8Bp1rgpXOtmLzPfLpZy-5cFTEPg,1951
|
|
242
242
|
endoreg_db/helpers/data_loader.py,sha256=Kn5MyRRuul-bDtLtqg2gn4E2OKt1-5HkjjD3QcwWyPM,6324
|
|
243
|
-
endoreg_db/helpers/default_objects.py,sha256
|
|
243
|
+
endoreg_db/helpers/default_objects.py,sha256=g1ZeSsqEEp9kbeMpCUr7MyNXVvcqnhdj3wWtgtJY5Cs,13928
|
|
244
244
|
endoreg_db/helpers/download_segmentation_model.py,sha256=VZ8BU7QkYpZkr8kpkUrnuvDBkirmLhuf2rHC2jRBILM,1053
|
|
245
245
|
endoreg_db/helpers/interact.py,sha256=EAiUP_5CXCauKcYYEoUo-Ot3FqE5n1Rm4UX6mkC06IY,174
|
|
246
246
|
endoreg_db/helpers/test_video_helper.py,sha256=4iIjH3Xe-5krhLffQLJO16XtxKJpM9wplpWUocmwWeg,4695
|
|
@@ -253,7 +253,7 @@ endoreg_db/management/commands/fix_missing_patient_data.py,sha256=5TPUTOQwI2fVh3
|
|
|
253
253
|
endoreg_db/management/commands/fix_video_paths.py,sha256=7LLwc38oX3B_tYWbLJA43Li_KBO3m5Lyw0CF6YqN5rU,7145
|
|
254
254
|
endoreg_db/management/commands/import_fallback_video.py,sha256=PhSBqyHevGgOZieZsj3NBfPJ656wqEkdCWrp2NSb538,9590
|
|
255
255
|
endoreg_db/management/commands/import_report.py,sha256=vFst-NeQdL-w62yoH4kDamq-2Hos5GW90vLTO2-hfYI,13168
|
|
256
|
-
endoreg_db/management/commands/import_video.py,sha256=
|
|
256
|
+
endoreg_db/management/commands/import_video.py,sha256=AMvgi1eN0F_hjhgnNNYIFkJtHfjalBfh2lfDxw6VTzE,17980
|
|
257
257
|
endoreg_db/management/commands/import_video_with_classification.py,sha256=ulZH5jvAWu_pJ1kI9B3hbIO1-p_BReY0zbIQDS_d9OI,14726
|
|
258
258
|
endoreg_db/management/commands/init_default_ai_model.py,sha256=98yBigGZ5gkA-b1LPcvzS5x2jAms3pX58fU-TEAcjKw,4669
|
|
259
259
|
endoreg_db/management/commands/load_ai_model_data.py,sha256=QDyWPjIC1ga13Ou67_mnE8HUGTAK0uF2LLQ12sE-95E,2747
|
|
@@ -310,11 +310,9 @@ endoreg_db/migrations/0001_initial.py,sha256=xfdlddGyRGvwKbm77E4gPRWsgJWZvXs6aw_
|
|
|
310
310
|
endoreg_db/migrations/0002_add_video_correction_models.py,sha256=EFnABa4FClf6DwytRiG15Ws-aZwZ1ZgACnl6r2dNUxs,3691
|
|
311
311
|
endoreg_db/migrations/0003_add_center_display_name.py,sha256=F13-IUe1q6XjVzE5-oMTAVx4oo_jvMcLpDiHtrTfQL4,873
|
|
312
312
|
endoreg_db/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
313
|
-
endoreg_db/models/__init__.py,sha256=
|
|
313
|
+
endoreg_db/models/__init__.py,sha256=UeaNymydlkhJbplbVlnv7MjCACnDQ4e09yzZj6NCZ_Y,7042
|
|
314
314
|
endoreg_db/models/upload_job.py,sha256=lSsyv2d5jZxI8jAKlBU7dXi4jhEIKYjJKt8gZlwRz94,3000
|
|
315
315
|
endoreg_db/models/utils.py,sha256=G2W-QzPEKLDqbBuE4Z0srlkUageW0ZRuIIF8sQCXp2w,4451
|
|
316
|
-
endoreg_db/models/video_metadata.py,sha256=aULgRXCwIsB7pZ3uj3nI9Z26Bkj0fJCgpS4dJep4IfM,2007
|
|
317
|
-
endoreg_db/models/video_processing.py,sha256=00ClmeN-nLO3k1F5u86gMjH8AHSccBpDlxtRJ9D5O_Y,4746
|
|
318
316
|
endoreg_db/models/administration/__init__.py,sha256=T1dgcMsnYlz6peK7ThskJF6EFigw12lYZie34t301yw,1717
|
|
319
317
|
endoreg_db/models/administration/ai/__init__.py,sha256=AYnrzvWkLYsySnlryfZ35_wgJ5egIdIpgmxW3DzO4OY,168
|
|
320
318
|
endoreg_db/models/administration/ai/active_model.py,sha256=c0Ps5ObhEIoWCgf2T4SbDz8pf92rA10Cx594-Cj-lX4,1453
|
|
@@ -375,7 +373,7 @@ endoreg_db/models/label/annotation/video_segmentation_annotation.py,sha256=KccKV
|
|
|
375
373
|
endoreg_db/models/label/label_video_segment/__init__.py,sha256=MLFkJvmLm8IZccn2IOMg9C9kZyKUviZtAZpbGdev_nw,84
|
|
376
374
|
endoreg_db/models/label/label_video_segment/_create_from_video.py,sha256=Rp9OzIxuPhOye3efmP60yagz7bp5gIXizAu5PFbX8AY,1205
|
|
377
375
|
endoreg_db/models/label/label_video_segment/label_video_segment.py,sha256=chOgGhevzFWJWpuS879bdQ4hT1_nfnqlyEmMZAd2XD4,21807
|
|
378
|
-
endoreg_db/models/media/__init__.py,sha256=
|
|
376
|
+
endoreg_db/models/media/__init__.py,sha256=WuomOKk-3kNGDLKoLO_ltnXbo028JDVlCCScdJMMQI4,465
|
|
379
377
|
endoreg_db/models/media/frame/__init__.py,sha256=25WriZHocR82rbHr_IMIgBt5z-mkV2O0LVWUpJRnQ5E,45
|
|
380
378
|
endoreg_db/models/media/frame/frame.py,sha256=6BvNKTAGsC_Q0S27nrvZ2cySDy3LSu5HCxrNcZwIEsA,4408
|
|
381
379
|
endoreg_db/models/media/pdf/__init__.py,sha256=1fimtZK5LUuP_yqETN6pMj0hxKXuQqeLb1DP5wPmtT4,343
|
|
@@ -384,18 +382,19 @@ endoreg_db/models/media/pdf/report_file.py,sha256=6Vt_TJSB3qaF26qXbyjRSn-s_zN5y4
|
|
|
384
382
|
endoreg_db/models/media/pdf/report_reader/__init__.py,sha256=LiMooVstXRay5qcB-uZW0wxbcdUvPrfAs_xBwWiuuWc,166
|
|
385
383
|
endoreg_db/models/media/pdf/report_reader/report_reader_config.py,sha256=wYVDmPSmNIuCTpaaWqoLVgVZFYW-dqGpnAyVBqRLqXE,3445
|
|
386
384
|
endoreg_db/models/media/pdf/report_reader/report_reader_flag.py,sha256=j9tjbLRenxpWfeaseALl8rV2Dqem9YaM_duS1iJkARU,536
|
|
387
|
-
endoreg_db/models/media/video/__init__.py,sha256=
|
|
385
|
+
endoreg_db/models/media/video/__init__.py,sha256=ifW4SXXN2q6wAuFwSP7XlYskpX7UX6uy0py5mpCCOCM,211
|
|
388
386
|
endoreg_db/models/media/video/create_from_file.py,sha256=3n4bbzFteEOFDUuEikP0x-StCKI5R5IhyKC7o3kLZ6Y,15128
|
|
389
387
|
endoreg_db/models/media/video/pipe_1.py,sha256=hOII3BCiMpxgpDKpV5h52-O2XTqKlb4YArxuH2fWyck,9402
|
|
390
388
|
endoreg_db/models/media/video/pipe_2.py,sha256=DnMxW0uOqSsf7-0n9Rlvn7u89U4Jpkv7n6hFpQfUjkQ,4964
|
|
391
389
|
endoreg_db/models/media/video/refactor_plan.md,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
392
|
-
endoreg_db/models/media/video/video_file.py,sha256=
|
|
390
|
+
endoreg_db/models/media/video/video_file.py,sha256=txlxR8d1OBgt3UEkWvLcGSyLarh0jXLw-z0SAV5KOok,26789
|
|
393
391
|
endoreg_db/models/media/video/video_file_ai.py,sha256=3ABea52FOF1qlrlxHdYhz_M3Kmqfzqtgq7M0prl-FAo,18819
|
|
394
392
|
endoreg_db/models/media/video/video_file_anonymize.py,sha256=pet1UfSsbSHJJZxq6gDPifAfBWpGyEpD1jEQuSQi0Gg,16027
|
|
395
393
|
endoreg_db/models/media/video/video_file_frames.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
396
394
|
endoreg_db/models/media/video/video_file_io.py,sha256=9y3jBiIHA3Rw5pWczGbf13u-EcKiZQIuDserq2vOwuk,7921
|
|
397
|
-
endoreg_db/models/media/video/video_file_meta.py,sha256=H0DvZ6pt5XUdkgDmHcBFCSsjOeW5q7McE1Zo3ArBF6s,443
|
|
398
395
|
endoreg_db/models/media/video/video_file_segments.py,sha256=42oc2go3VWtNY1gsjp4kLbfQb5Qtl-aMbnAuKN3vum4,8647
|
|
396
|
+
endoreg_db/models/media/video/video_metadata.py,sha256=cM7COVZu7RMNr1uR_oDBpTU91YW-xToyyWJR50RlxjY,1994
|
|
397
|
+
endoreg_db/models/media/video/video_processing.py,sha256=_Hg_LMLj4JoJQUdVBcQj8yXEYs-rI1elaMVaAVrS93Y,4733
|
|
399
398
|
endoreg_db/models/media/video/video_file_frames/__init__.py,sha256=X1eX1o5X8PVaWwdejtQcSdkG_mvYGXXvlnzF8tE7Lck,2060
|
|
400
399
|
endoreg_db/models/media/video/video_file_frames/_bulk_create_frames.py,sha256=9kihorJQZQvoJK669mNBPGzdnNaiPG1cZMnPmox95kg,702
|
|
401
400
|
endoreg_db/models/media/video/video_file_frames/_create_frame_object.py,sha256=5nf69epDRRFZuTaGJxQS5co0tvNeb0dnTEfo1o5YV7M,539
|
|
@@ -434,7 +433,7 @@ endoreg_db/models/medical/finding/finding_intervention.py,sha256=FBwjI15yitMpTXk
|
|
|
434
433
|
endoreg_db/models/medical/finding/finding_type.py,sha256=ohDEmLcgEpYjG5q0uhCaq2xQS8jH_rj4qyKQ2DUumqQ,1117
|
|
435
434
|
endoreg_db/models/medical/hardware/__init__.py,sha256=uX2-UpBzX2chpZEeCyqbv2BSrv3OZNG9PrB8sHEWpHQ,178
|
|
436
435
|
endoreg_db/models/medical/hardware/endoscope.py,sha256=8T8R2Bo2T29psQ3C_HTrhBogN8hiysuZkJOxUefqGoI,1657
|
|
437
|
-
endoreg_db/models/medical/hardware/endoscopy_processor.py,sha256=
|
|
436
|
+
endoreg_db/models/medical/hardware/endoscopy_processor.py,sha256=DLKMXPWValfJCf4rZ1u6PdpeBa2ST0WTjkcuruFlzG0,6201
|
|
438
437
|
endoreg_db/models/medical/laboratory/__init__.py,sha256=595XF1ikkwzQWbUsyasU23v1kDRugrgTp3eUfrMd0UQ,62
|
|
439
438
|
endoreg_db/models/medical/laboratory/lab_value.py,sha256=uw4mjguVrqvsxQ-NzGO0DoNlSCaydI8KaJgUhuM16wo,20258
|
|
440
439
|
endoreg_db/models/medical/medication/__init__.py,sha256=BHh6ARvm2uVNswN12EQAEMFPnoGBiVwl7RCjKrW6C2I,761
|
|
@@ -465,7 +464,7 @@ endoreg_db/models/metadata/frame_ocr_result.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQe
|
|
|
465
464
|
endoreg_db/models/metadata/model_meta.py,sha256=aZH6Bz5Ss874Knvg1b3Kgq6gU8kVzPHXneunZJNF4yw,7111
|
|
466
465
|
endoreg_db/models/metadata/model_meta_logic.py,sha256=yiIWbxxykUp6VB_7imRqSXcO0RS5GuoYP83O48TyKws,8987
|
|
467
466
|
endoreg_db/models/metadata/pdf_meta.py,sha256=BTmpSgqxmPKi0apcNjyrZAS4AFKCPXVdBd6VBeyyv6E,3174
|
|
468
|
-
endoreg_db/models/metadata/sensitive_meta.py,sha256=
|
|
467
|
+
endoreg_db/models/metadata/sensitive_meta.py,sha256=ekLHrW-b5uYcjfkRd0EW5ncx5ef8Bu-K6msDkpWCAbk,13034
|
|
469
468
|
endoreg_db/models/metadata/sensitive_meta_logic.py,sha256=Oh7ssZQEPfKGfRMF5nXKJpOIxXx-Xibd3rpOu-bQilk,29988
|
|
470
469
|
endoreg_db/models/metadata/video_meta.py,sha256=c6xWdLW3uNqJ5VPJXHCxXA3mbXw-b0uR54-TOS3qL2Q,14966
|
|
471
470
|
endoreg_db/models/metadata/video_prediction_logic.py,sha256=j5N82mHtiomeeIaf1HA65kT5d0htQfJmbI2bJb8mpxQ,7677
|
|
@@ -587,7 +586,7 @@ endoreg_db/serializers/video/segmentation.py,sha256=TrWNLGilp2prs7bD7G3S1Y0CVO9H
|
|
|
587
586
|
endoreg_db/serializers/video/video_file_brief.py,sha256=9g5njY0rI64kLO-Kt8J220M_y5ObYUHaNw9bf3-8lK8,272
|
|
588
587
|
endoreg_db/serializers/video/video_file_detail.py,sha256=NqhziTHtoJM_gTEPEe086eAn5tvEMJknQAKa1zY6ENo,3639
|
|
589
588
|
endoreg_db/serializers/video/video_file_list.py,sha256=FGG33V-oKo86fqXYLMgrCPCD49IOngEHSTAud00wwsw,2255
|
|
590
|
-
endoreg_db/serializers/video/video_metadata.py,sha256=
|
|
589
|
+
endoreg_db/serializers/video/video_metadata.py,sha256=ghB2iLc1nZCACq4i1zGqv1S29HXhx35lKJRheIQyw7Q,3177
|
|
591
590
|
endoreg_db/serializers/video/video_processing_history.py,sha256=pJD4LltXCKlCQYsG119bhMHEhv7NslG6vlxJgS4Avg4,5281
|
|
592
591
|
endoreg_db/services/__init__.py,sha256=CMLgpzemgjXvKN5HGFD_UVtRAg9XeMIfXvoSu-aUaRE,136
|
|
593
592
|
endoreg_db/services/anonymization.py,sha256=iM-xW1aJm99G3PmkfZtMJmvoaj99c8OASP5-abBNcy0,8986
|
|
@@ -595,14 +594,13 @@ endoreg_db/services/examination_evaluation.py,sha256=jx9IL2PIoBzjiITzs00c1XucE7A
|
|
|
595
594
|
endoreg_db/services/finding_description_service.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
596
595
|
endoreg_db/services/lookup_service.py,sha256=A2t07-qlQhFEeNvOhez0GU0sxi7mnN0MIlhYzxj4W1U,10581
|
|
597
596
|
endoreg_db/services/lookup_store.py,sha256=8sB2HmJQrnzq5Vfqt-UdaJLHYMRZCxnui9BCCXscnJE,4856
|
|
598
|
-
endoreg_db/services/ollama_api_docs.py,sha256=6uyep2jqjrvx87By_teEW8BX0cm14Pt2b-Hht-rrelQ,47259
|
|
599
597
|
endoreg_db/services/pdf_import.py,sha256=_ll_Vng1SpI7mEKxNRYuNttVnehuJFpKjQGDB8OX7no,47133
|
|
600
598
|
endoreg_db/services/polling_coordinator.py,sha256=alnPB-kdMyxbYaxQN9fki9dKrwmAsY3s68bUHWDSNeI,10662
|
|
601
|
-
endoreg_db/services/pseudonym_service.py,sha256=
|
|
599
|
+
endoreg_db/services/pseudonym_service.py,sha256=CJhbtRa6K6SPbphgCZgEMi8AFQtB18CUoBDttFnxEoM,3126
|
|
602
600
|
endoreg_db/services/requirements_object.py,sha256=290zf8AEbVtCoHhW4Jr7_ud-RvrqYmb1Nz9UBHtTnc0,6164
|
|
603
601
|
endoreg_db/services/segment_sync.py,sha256=YgHvIHkbW4mqCu0ACf3zjRSZnNfxWwt4gh5syUVXuE0,6400
|
|
604
602
|
endoreg_db/services/storage_aware_video_processor.py,sha256=kKFK64vXLeBSVkp1YJonU3gFDTeXZ8C4qb9QZZB99SE,13420
|
|
605
|
-
endoreg_db/services/video_import.py,sha256=
|
|
603
|
+
endoreg_db/services/video_import.py,sha256=X20FQkEO5QGcfuacAz8jX1_LW1GhwbF33JGPpmypEyk,50161
|
|
606
604
|
endoreg_db/tasks/upload_tasks.py,sha256=OJq7DhNwcbWdXzHY8jz5c51BCVkPN5gSWOz-6Fx6W5M,7799
|
|
607
605
|
endoreg_db/tasks/video_ingest.py,sha256=kxFuYkHijINV0VabQKCFVpJRv6eCAw07tviONurDgg8,5265
|
|
608
606
|
endoreg_db/tasks/video_processing_tasks.py,sha256=KjcERRJ1TZzmavBpvr6OsvSTUViU0PR1ECWnEdzu2Js,14140
|
|
@@ -617,7 +615,7 @@ endoreg_db/urls/examination.py,sha256=IWNIR-hsWKD3nfL27EzMMazcZnOa_imjgk8RL0mql2
|
|
|
617
615
|
endoreg_db/urls/files.py,sha256=qfa8mPDNF9SW4z66B26SCtX7WHyoAo1muS1DR2QwST8,192
|
|
618
616
|
endoreg_db/urls/label_video_segment_validate.py,sha256=bGWacxIG4pHnGRbnHL_L91ShKWfKCn5X-YXsHGs6i-I,1044
|
|
619
617
|
endoreg_db/urls/label_video_segments.py,sha256=Hjc__HjohZnNE-oudqBc_uOIHqiSbQ_zpN4aHzGYRuE,1142
|
|
620
|
-
endoreg_db/urls/media.py,sha256=
|
|
618
|
+
endoreg_db/urls/media.py,sha256=ufFP3GL3fpxYUSlFJfIfg1L6pmUcC_Blao46G3PsEPQ,10699
|
|
621
619
|
endoreg_db/urls/patient.py,sha256=VLKFbEiNgpfYLWFisbHidyoUnoQuEzj1U0SgZDpdPDM,588
|
|
622
620
|
endoreg_db/urls/report.py,sha256=9i3sOSofB7_PHGByr3DMghZFtcbjKf_U5PVSlxu9d4I,1917
|
|
623
621
|
endoreg_db/urls/requirements.py,sha256=5d-SD_7nsTA9YXlBeWdZuh-mXh26BkgH29fFBaTLjU8,455
|
|
@@ -641,7 +639,7 @@ endoreg_db/utils/mime_types.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuF
|
|
|
641
639
|
endoreg_db/utils/names.py,sha256=6OKOSmXeAKv5XVs86_IjlQ7klyF3zLkvVQz9Bl7Lf0o,2745
|
|
642
640
|
endoreg_db/utils/ocr.py,sha256=LvyABxX5OZhIeXw2pI6af8_xTj7nHQQoKGh5kNsrv7o,7136
|
|
643
641
|
endoreg_db/utils/parse_and_generate_yaml.py,sha256=k7y0fl9Jbb_LNryeJYd6tebklRlu1-P70dJ-4sxvEZs,1626
|
|
644
|
-
endoreg_db/utils/paths.py,sha256=
|
|
642
|
+
endoreg_db/utils/paths.py,sha256=ncXtB_l6FBVXXdk59U7v4FhSvLO7Yb0DQ-GQMcOqiTw,3398
|
|
645
643
|
endoreg_db/utils/permissions.py,sha256=IqxG9IqJBSZuxvT1ItVgGS8fMzkA2OLdDV6y8mKHSuo,5096
|
|
646
644
|
endoreg_db/utils/requirement_helpers.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
647
645
|
endoreg_db/utils/translation.py,sha256=77Xel12pAGo0rQ0NxB7nfejvMb0GBjEmhC3I7mcU91I,1256
|
|
@@ -680,7 +678,7 @@ endoreg_db/utils/video/names.py,sha256=m268j2Ynt94OYH6dYxeL8gzU5ODtFJD4OmzS7l0nB
|
|
|
680
678
|
endoreg_db/utils/video/streaming_processor.py,sha256=C-39DtxhSnL7B2cObFE5k829VLXl_Fl0KQFrFP368JA,13747
|
|
681
679
|
endoreg_db/utils/video/video_splitter.py,sha256=EZEnhNjaUva_9VxjcjScgRSrxsEuifhBjlwIMLX1qaA,3698
|
|
682
680
|
endoreg_db/views/Frames_NICE_and_PARIS_classifications_views.py,sha256=Lu1JuUD44B6yUAR9pcYLlQ-3g66VTktmzStuO0uGIj4,8752
|
|
683
|
-
endoreg_db/views/__init__.py,sha256=
|
|
681
|
+
endoreg_db/views/__init__.py,sha256=L1xXouAYYqIK7zXDvA6qhcEv7gs5b7wc3g8HeFCVFWU,6553
|
|
684
682
|
endoreg_db/views/anonymization/__init__.py,sha256=s1_r9j0jPJsKHy1-isjFAlRF3Cw0o8EXxyUP7Xv1Kqo,698
|
|
685
683
|
endoreg_db/views/anonymization/media_management.py,sha256=ObiXjPa-KsSGs3IfmABE-TVzQZ2U6yJioFh64T7TtKY,16799
|
|
686
684
|
endoreg_db/views/anonymization/overview.py,sha256=fA4a4tZ4tbnWf3BUP6heAtqmHvinixUnDoI3dqPjTE0,8320
|
|
@@ -770,8 +768,8 @@ endoreg_db/views/requirement_lookup/lookup.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeR
|
|
|
770
768
|
endoreg_db/views/requirement_lookup/lookup_store.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
771
769
|
endoreg_db/views/stats/__init__.py,sha256=VHxrW0-RAWYki_89jWWJ0TrD7Nb0D3m-VjYV6bvP2k4,259
|
|
772
770
|
endoreg_db/views/stats/stats_views.py,sha256=v9ue1BKXdcApOgyolgNiT3hazx1xSVVvo26r91IozWY,8656
|
|
773
|
-
endoreg_db/views/video/__init__.py,sha256=
|
|
774
|
-
endoreg_db/views/video/correction.py,sha256=
|
|
771
|
+
endoreg_db/views/video/__init__.py,sha256=wRYF-M3amwlmTRlJ7nAYQZiwS0QgLLPxH3pPtHSQy-A,1288
|
|
772
|
+
endoreg_db/views/video/correction.py,sha256=VEzpnDPCAhsYatXVRZhGZA5FpFS_t9mENs89zFJsoYo,19750
|
|
775
773
|
endoreg_db/views/video/reimport.py,sha256=gSDBQ_Bam2xpJIj1SIMoLKnoBDBRgQ9V_TZdK9OICrI,8959
|
|
776
774
|
endoreg_db/views/video/segmentation.py,sha256=jzsLB95rYnHALSX2E_QNpAM9BpE1pbteOBxcAr_EjZo,11758
|
|
777
775
|
endoreg_db/views/video/task_status.py,sha256=PXaesTS4R7Uhu9WBaTL4lscpOschVqyR32zVDUuSbfw,1770
|
|
@@ -785,9 +783,8 @@ endoreg_db/views/video/video_media.py,sha256=fvMQmSM1a-3rxpx_wK0wee9sRXV3EZz2bF8
|
|
|
785
783
|
endoreg_db/views/video/video_meta.py,sha256=C1wBMTtQb_yzEUrhFGAy2UHEWMk_CbU75WXX_5z00sE,1021
|
|
786
784
|
endoreg_db/views/video/video_processing_history.py,sha256=mhFuS8RG5GV8E-lTtuD0qrq-bIpnUFp8vy9aERfC-J8,770
|
|
787
785
|
endoreg_db/views/video/video_remove_frames.py,sha256=2FmvNrSPM0fUXiBxINN6vBUUDCqDlBkNcGR3WsLDgKo,1696
|
|
788
|
-
endoreg_db/views/video/video_reprocess.py,sha256=IVlt_ASldNy5BywOecgkl1OT7l2SRijf78PUutMansA,1294
|
|
789
786
|
endoreg_db/views/video/video_stream.py,sha256=kLyuf0ORTmsLeYUQkTQ6iRYqlIQozWhMMR3Lhfe_trk,12148
|
|
790
|
-
endoreg_db-0.8.2.
|
|
791
|
-
endoreg_db-0.8.2.
|
|
792
|
-
endoreg_db-0.8.2.
|
|
793
|
-
endoreg_db-0.8.2.
|
|
787
|
+
endoreg_db-0.8.2.5.dist-info/METADATA,sha256=JOdQtG1Bilq-iXh5pnJnhft411306plJg0udZDasq5Q,14770
|
|
788
|
+
endoreg_db-0.8.2.5.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
789
|
+
endoreg_db-0.8.2.5.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
790
|
+
endoreg_db-0.8.2.5.dist-info/RECORD,,
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
# This file is likely obsolete after refactoring into the video_file_meta submodule.
|
|
2
|
-
# Its contents should have been moved to files like:
|
|
3
|
-
# - video_file_meta/text_meta.py
|
|
4
|
-
# - video_file_meta/video_meta.py
|
|
5
|
-
# - video_file_meta/initialize_video_specs.py
|
|
6
|
-
# - video_file_meta/get_fps.py
|
|
7
|
-
# - video_file_meta/get_endo_roi.py
|
|
8
|
-
# - video_file_meta/get_crop_template.py
|
|
9
|
-
#
|
|
10
|
-
# Please ensure all logic has been migrated and consider deleting this file.
|
|
11
|
-
pass
|