Project.py 775 B

1234567891011121314151617181920212223242526
  1. from uuid import uuid1
  2. from pycs.observable import ObservableDict
  3. from pycs.projects.MediaFile import MediaFile
  4. from pycs.util.RecursiveDictionary import set_recursive
  5. from os import path
  6. class Project(ObservableDict):
  7. def __init__(self, obj: dict, parent):
  8. # save data as MediaFile objects
  9. for key in obj['data'].keys():
  10. obj['data'][key] = MediaFile(obj['data'][key], self)
  11. # initialize super
  12. super().__init__(obj, parent)
  13. def update_properties(self, update):
  14. set_recursive(update, self)
  15. def new_media_file_path(self):
  16. return path.join('projects', self['id'], 'data'), str(uuid1())
  17. def add_media_file(self, file):
  18. file = MediaFile(file, self)
  19. self['data'][file['id']] = file