Fixed non-clashing basename generation
This commit is contained in:
parent
0e76ae673a
commit
69e97ba5a3
3 changed files with 50 additions and 38 deletions
|
|
@ -3,6 +3,7 @@ import time
|
|||
import io
|
||||
import threading
|
||||
from PIL import Image
|
||||
import datetime
|
||||
import logging
|
||||
|
||||
try:
|
||||
|
|
@ -33,6 +34,11 @@ def entry_by_id(id: str, object_list: list):
|
|||
return found
|
||||
|
||||
|
||||
def generate_basename():
|
||||
"""Return a default filename based on the capture datetime"""
|
||||
return datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
|
||||
|
||||
|
||||
class CameraEvent(object):
|
||||
"""
|
||||
A frame-signaller object used by any instances or subclasses of BaseCamera.
|
||||
|
|
@ -222,6 +228,18 @@ class BaseCamera(object):
|
|||
self.videos,
|
||||
shunt_others=shunt_others)
|
||||
|
||||
# INTELLIGENTLY GENERATE FILENAMES
|
||||
def generate_basename(self, obj_list: list) -> str:
|
||||
initial_basename = generate_basename()
|
||||
basename = initial_basename
|
||||
# Handle clashing
|
||||
iterator = 1
|
||||
while basename in [obj.basename for obj in obj_list]:
|
||||
basename = initial_basename + "_{}".format(iterator)
|
||||
iterator += 1
|
||||
|
||||
return basename
|
||||
|
||||
# WORKER THREAD
|
||||
|
||||
def _thread(self):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue