from uuid import uuid1 from pycs.observable import ObservableDict from pycs.projects.MediaFile import MediaFile from pycs.util.RecursiveDictionary import set_recursive from os import path class Project(ObservableDict): def __init__(self, obj: dict, parent): # save data as MediaFile objects for key in obj['data'].keys(): obj['data'][key] = MediaFile(obj['data'][key], self) # initialize super super().__init__(obj, parent) def update_properties(self, update): set_recursive(update, self) def new_media_file_path(self): return path.join('projects', self['id'], 'data'), str(uuid1()) def add_media_file(self, file): file = MediaFile(file, self) self['data'][file['id']] = file