zou 0.19.60__tar.gz → 0.19.62__tar.gz

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.
Files changed (430) hide show
  1. {zou-0.19.60/zou.egg-info → zou-0.19.62}/PKG-INFO +5 -5
  2. {zou-0.19.60 → zou-0.19.62}/setup.cfg +4 -4
  3. zou-0.19.62/zou/__init__.py +1 -0
  4. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/index/resources.py +2 -2
  5. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/user/resources.py +0 -1
  6. {zou-0.19.60 → zou-0.19.62}/zou/app/config.py +1 -1
  7. {zou-0.19.60 → zou-0.19.62}/zou/app/services/user_service.py +29 -23
  8. {zou-0.19.60 → zou-0.19.62}/zou/app/utils/string.py +2 -0
  9. {zou-0.19.60 → zou-0.19.62}/zou/cli.py +11 -12
  10. zou-0.19.62/zou/migrations/versions/9d3bb33c6fc6_add_department_keys_to_filter_models.py +73 -0
  11. {zou-0.19.60 → zou-0.19.62/zou.egg-info}/PKG-INFO +5 -5
  12. {zou-0.19.60 → zou-0.19.62}/zou.egg-info/requires.txt +4 -4
  13. zou-0.19.60/zou/__init__.py +0 -1
  14. zou-0.19.60/zou/migrations/versions/9d3bb33c6fc6_add_department_keys_to_filter_models.py +0 -44
  15. {zou-0.19.60 → zou-0.19.62}/LICENSE +0 -0
  16. {zou-0.19.60 → zou-0.19.62}/README.rst +0 -0
  17. {zou-0.19.60 → zou-0.19.62}/pyproject.toml +0 -0
  18. {zou-0.19.60 → zou-0.19.62}/setup.py +0 -0
  19. {zou-0.19.60 → zou-0.19.62}/zou/app/__init__.py +0 -0
  20. {zou-0.19.60 → zou-0.19.62}/zou/app/api.py +0 -0
  21. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/__init__.py +0 -0
  22. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/assets/__init__.py +0 -0
  23. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/assets/resources.py +0 -0
  24. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/auth/__init__.py +0 -0
  25. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/auth/resources.py +0 -0
  26. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/breakdown/__init__.py +0 -0
  27. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/breakdown/resources.py +0 -0
  28. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/chats/__init__.py +0 -0
  29. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/chats/resources.py +0 -0
  30. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/comments/__init__.py +0 -0
  31. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/comments/resources.py +0 -0
  32. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/concepts/__init__.py +0 -0
  33. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/concepts/resources.py +0 -0
  34. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/crud/__init__.py +0 -0
  35. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/crud/asset_instance.py +0 -0
  36. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/crud/attachment_file.py +0 -0
  37. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/crud/base.py +0 -0
  38. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/crud/chat.py +0 -0
  39. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/crud/chat_message.py +0 -0
  40. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/crud/comments.py +0 -0
  41. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/crud/custom_action.py +0 -0
  42. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/crud/day_off.py +0 -0
  43. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/crud/department.py +0 -0
  44. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/crud/entity.py +0 -0
  45. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/crud/entity_link.py +0 -0
  46. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/crud/entity_type.py +0 -0
  47. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/crud/event.py +0 -0
  48. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/crud/file_status.py +0 -0
  49. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/crud/metadata_descriptor.py +0 -0
  50. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/crud/milestone.py +0 -0
  51. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/crud/news.py +0 -0
  52. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/crud/notification.py +0 -0
  53. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/crud/organisation.py +0 -0
  54. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/crud/output_file.py +0 -0
  55. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/crud/output_type.py +0 -0
  56. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/crud/person.py +0 -0
  57. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/crud/playlist.py +0 -0
  58. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/crud/preview_background_file.py +0 -0
  59. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/crud/preview_file.py +0 -0
  60. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/crud/project.py +0 -0
  61. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/crud/project_status.py +0 -0
  62. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/crud/schedule_item.py +0 -0
  63. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/crud/search_filter.py +0 -0
  64. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/crud/search_filter_group.py +0 -0
  65. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/crud/software.py +0 -0
  66. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/crud/status_automation.py +0 -0
  67. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/crud/studio.py +0 -0
  68. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/crud/subscription.py +0 -0
  69. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/crud/task.py +0 -0
  70. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/crud/task_status.py +0 -0
  71. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/crud/task_type.py +0 -0
  72. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/crud/time_spent.py +0 -0
  73. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/crud/working_file.py +0 -0
  74. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/edits/__init__.py +0 -0
  75. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/edits/resources.py +0 -0
  76. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/entities/__init__.py +0 -0
  77. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/entities/resources.py +0 -0
  78. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/events/__init__.py +0 -0
  79. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/events/resources.py +0 -0
  80. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/export/__init__.py +0 -0
  81. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/export/csv/__init__.py +0 -0
  82. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/export/csv/assets.py +0 -0
  83. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/export/csv/base.py +0 -0
  84. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/export/csv/casting.py +0 -0
  85. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/export/csv/edits.py +0 -0
  86. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/export/csv/persons.py +0 -0
  87. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/export/csv/playlists.py +0 -0
  88. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/export/csv/projects.py +0 -0
  89. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/export/csv/shots.py +0 -0
  90. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/export/csv/task_types.py +0 -0
  91. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/export/csv/tasks.py +0 -0
  92. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/export/csv/time_spents.py +0 -0
  93. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/files/__init__.py +0 -0
  94. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/files/resources.py +0 -0
  95. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/index/__init__.py +0 -0
  96. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/news/__init__.py +0 -0
  97. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/news/resources.py +0 -0
  98. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/persons/__init__.py +0 -0
  99. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/persons/resources.py +0 -0
  100. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/playlists/__init__.py +0 -0
  101. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/playlists/resources.py +0 -0
  102. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/previews/__init__.py +0 -0
  103. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/previews/resources.py +0 -0
  104. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/projects/__init__.py +0 -0
  105. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/projects/resources.py +0 -0
  106. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/search/__init__.py +0 -0
  107. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/search/resources.py +0 -0
  108. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/shots/__init__.py +0 -0
  109. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/shots/resources.py +0 -0
  110. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/source/__init__.py +0 -0
  111. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/source/csv/__init__.py +0 -0
  112. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/source/csv/assets.py +0 -0
  113. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/source/csv/base.py +0 -0
  114. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/source/csv/casting.py +0 -0
  115. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/source/csv/edits.py +0 -0
  116. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/source/csv/persons.py +0 -0
  117. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/source/csv/shots.py +0 -0
  118. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/source/csv/task_type_estimations.py +0 -0
  119. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/source/kitsu.py +0 -0
  120. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/source/otio.py +0 -0
  121. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/source/shotgun/__init__.py +0 -0
  122. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/source/shotgun/assets.py +0 -0
  123. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/source/shotgun/base.py +0 -0
  124. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/source/shotgun/episode.py +0 -0
  125. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/source/shotgun/exception.py +0 -0
  126. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/source/shotgun/import_errors.py +0 -0
  127. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/source/shotgun/notes.py +0 -0
  128. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/source/shotgun/person.py +0 -0
  129. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/source/shotgun/project.py +0 -0
  130. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/source/shotgun/scene.py +0 -0
  131. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/source/shotgun/sequence.py +0 -0
  132. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/source/shotgun/shot.py +0 -0
  133. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/source/shotgun/status.py +0 -0
  134. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/source/shotgun/steps.py +0 -0
  135. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/source/shotgun/tasks.py +0 -0
  136. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/source/shotgun/team.py +0 -0
  137. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/source/shotgun/versions.py +0 -0
  138. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/tasks/__init__.py +0 -0
  139. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/tasks/resources.py +0 -0
  140. {zou-0.19.60 → zou-0.19.62}/zou/app/blueprints/user/__init__.py +0 -0
  141. {zou-0.19.60 → zou-0.19.62}/zou/app/file_trees/default.json +0 -0
  142. {zou-0.19.60 → zou-0.19.62}/zou/app/file_trees/simple.json +0 -0
  143. {zou-0.19.60 → zou-0.19.62}/zou/app/indexer/__init__.py +0 -0
  144. {zou-0.19.60 → zou-0.19.62}/zou/app/indexer/indexing.py +0 -0
  145. {zou-0.19.60 → zou-0.19.62}/zou/app/mixin.py +0 -0
  146. {zou-0.19.60 → zou-0.19.62}/zou/app/models/__init__.py +0 -0
  147. {zou-0.19.60 → zou-0.19.62}/zou/app/models/asset_instance.py +0 -0
  148. {zou-0.19.60 → zou-0.19.62}/zou/app/models/attachment_file.py +0 -0
  149. {zou-0.19.60 → zou-0.19.62}/zou/app/models/base.py +0 -0
  150. {zou-0.19.60 → zou-0.19.62}/zou/app/models/build_job.py +0 -0
  151. {zou-0.19.60 → zou-0.19.62}/zou/app/models/chat.py +0 -0
  152. {zou-0.19.60 → zou-0.19.62}/zou/app/models/chat_message.py +0 -0
  153. {zou-0.19.60 → zou-0.19.62}/zou/app/models/comment.py +0 -0
  154. {zou-0.19.60 → zou-0.19.62}/zou/app/models/custom_action.py +0 -0
  155. {zou-0.19.60 → zou-0.19.62}/zou/app/models/data_import_error.py +0 -0
  156. {zou-0.19.60 → zou-0.19.62}/zou/app/models/day_off.py +0 -0
  157. {zou-0.19.60 → zou-0.19.62}/zou/app/models/department.py +0 -0
  158. {zou-0.19.60 → zou-0.19.62}/zou/app/models/desktop_login_log.py +0 -0
  159. {zou-0.19.60 → zou-0.19.62}/zou/app/models/entity.py +0 -0
  160. {zou-0.19.60 → zou-0.19.62}/zou/app/models/entity_type.py +0 -0
  161. {zou-0.19.60 → zou-0.19.62}/zou/app/models/event.py +0 -0
  162. {zou-0.19.60 → zou-0.19.62}/zou/app/models/file_status.py +0 -0
  163. {zou-0.19.60 → zou-0.19.62}/zou/app/models/login_log.py +0 -0
  164. {zou-0.19.60 → zou-0.19.62}/zou/app/models/metadata_descriptor.py +0 -0
  165. {zou-0.19.60 → zou-0.19.62}/zou/app/models/milestone.py +0 -0
  166. {zou-0.19.60 → zou-0.19.62}/zou/app/models/news.py +0 -0
  167. {zou-0.19.60 → zou-0.19.62}/zou/app/models/notification.py +0 -0
  168. {zou-0.19.60 → zou-0.19.62}/zou/app/models/organisation.py +0 -0
  169. {zou-0.19.60 → zou-0.19.62}/zou/app/models/output_file.py +0 -0
  170. {zou-0.19.60 → zou-0.19.62}/zou/app/models/output_type.py +0 -0
  171. {zou-0.19.60 → zou-0.19.62}/zou/app/models/person.py +0 -0
  172. {zou-0.19.60 → zou-0.19.62}/zou/app/models/playlist.py +0 -0
  173. {zou-0.19.60 → zou-0.19.62}/zou/app/models/preview_background_file.py +0 -0
  174. {zou-0.19.60 → zou-0.19.62}/zou/app/models/preview_file.py +0 -0
  175. {zou-0.19.60 → zou-0.19.62}/zou/app/models/project.py +0 -0
  176. {zou-0.19.60 → zou-0.19.62}/zou/app/models/project_status.py +0 -0
  177. {zou-0.19.60 → zou-0.19.62}/zou/app/models/schedule_item.py +0 -0
  178. {zou-0.19.60 → zou-0.19.62}/zou/app/models/search_filter.py +0 -0
  179. {zou-0.19.60 → zou-0.19.62}/zou/app/models/search_filter_group.py +0 -0
  180. {zou-0.19.60 → zou-0.19.62}/zou/app/models/serializer.py +0 -0
  181. {zou-0.19.60 → zou-0.19.62}/zou/app/models/software.py +0 -0
  182. {zou-0.19.60 → zou-0.19.62}/zou/app/models/status_automation.py +0 -0
  183. {zou-0.19.60 → zou-0.19.62}/zou/app/models/studio.py +0 -0
  184. {zou-0.19.60 → zou-0.19.62}/zou/app/models/subscription.py +0 -0
  185. {zou-0.19.60 → zou-0.19.62}/zou/app/models/task.py +0 -0
  186. {zou-0.19.60 → zou-0.19.62}/zou/app/models/task_status.py +0 -0
  187. {zou-0.19.60 → zou-0.19.62}/zou/app/models/task_type.py +0 -0
  188. {zou-0.19.60 → zou-0.19.62}/zou/app/models/time_spent.py +0 -0
  189. {zou-0.19.60 → zou-0.19.62}/zou/app/models/working_file.py +0 -0
  190. {zou-0.19.60 → zou-0.19.62}/zou/app/services/__init__.py +0 -0
  191. {zou-0.19.60 → zou-0.19.62}/zou/app/services/assets_service.py +0 -0
  192. {zou-0.19.60 → zou-0.19.62}/zou/app/services/auth_service.py +0 -0
  193. {zou-0.19.60 → zou-0.19.62}/zou/app/services/backup_service.py +0 -0
  194. {zou-0.19.60 → zou-0.19.62}/zou/app/services/base_service.py +0 -0
  195. {zou-0.19.60 → zou-0.19.62}/zou/app/services/breakdown_service.py +0 -0
  196. {zou-0.19.60 → zou-0.19.62}/zou/app/services/chats_service.py +0 -0
  197. {zou-0.19.60 → zou-0.19.62}/zou/app/services/comments_service.py +0 -0
  198. {zou-0.19.60 → zou-0.19.62}/zou/app/services/concepts_service.py +0 -0
  199. {zou-0.19.60 → zou-0.19.62}/zou/app/services/custom_actions_service.py +0 -0
  200. {zou-0.19.60 → zou-0.19.62}/zou/app/services/deletion_service.py +0 -0
  201. {zou-0.19.60 → zou-0.19.62}/zou/app/services/edits_service.py +0 -0
  202. {zou-0.19.60 → zou-0.19.62}/zou/app/services/emails_service.py +0 -0
  203. {zou-0.19.60 → zou-0.19.62}/zou/app/services/entities_service.py +0 -0
  204. {zou-0.19.60 → zou-0.19.62}/zou/app/services/events_service.py +0 -0
  205. {zou-0.19.60 → zou-0.19.62}/zou/app/services/exception.py +0 -0
  206. {zou-0.19.60 → zou-0.19.62}/zou/app/services/file_tree_service.py +0 -0
  207. {zou-0.19.60 → zou-0.19.62}/zou/app/services/files_service.py +0 -0
  208. {zou-0.19.60 → zou-0.19.62}/zou/app/services/index_service.py +0 -0
  209. {zou-0.19.60 → zou-0.19.62}/zou/app/services/names_service.py +0 -0
  210. {zou-0.19.60 → zou-0.19.62}/zou/app/services/news_service.py +0 -0
  211. {zou-0.19.60 → zou-0.19.62}/zou/app/services/notifications_service.py +0 -0
  212. {zou-0.19.60 → zou-0.19.62}/zou/app/services/persons_service.py +0 -0
  213. {zou-0.19.60 → zou-0.19.62}/zou/app/services/playlists_service.py +0 -0
  214. {zou-0.19.60 → zou-0.19.62}/zou/app/services/preview_files_service.py +0 -0
  215. {zou-0.19.60 → zou-0.19.62}/zou/app/services/projects_service.py +0 -0
  216. {zou-0.19.60 → zou-0.19.62}/zou/app/services/scenes_service.py +0 -0
  217. {zou-0.19.60 → zou-0.19.62}/zou/app/services/schedule_service.py +0 -0
  218. {zou-0.19.60 → zou-0.19.62}/zou/app/services/shots_service.py +0 -0
  219. {zou-0.19.60 → zou-0.19.62}/zou/app/services/stats_service.py +0 -0
  220. {zou-0.19.60 → zou-0.19.62}/zou/app/services/status_automations_service.py +0 -0
  221. {zou-0.19.60 → zou-0.19.62}/zou/app/services/sync_service.py +0 -0
  222. {zou-0.19.60 → zou-0.19.62}/zou/app/services/tasks_service.py +0 -0
  223. {zou-0.19.60 → zou-0.19.62}/zou/app/services/telemetry_services.py +0 -0
  224. {zou-0.19.60 → zou-0.19.62}/zou/app/services/time_spents_service.py +0 -0
  225. {zou-0.19.60 → zou-0.19.62}/zou/app/stores/__init__.py +0 -0
  226. {zou-0.19.60 → zou-0.19.62}/zou/app/stores/auth_tokens_store.py +0 -0
  227. {zou-0.19.60 → zou-0.19.62}/zou/app/stores/file_store.py +0 -0
  228. {zou-0.19.60 → zou-0.19.62}/zou/app/stores/publisher_store.py +0 -0
  229. {zou-0.19.60 → zou-0.19.62}/zou/app/stores/queue_store.py +0 -0
  230. {zou-0.19.60 → zou-0.19.62}/zou/app/swagger.py +0 -0
  231. {zou-0.19.60 → zou-0.19.62}/zou/app/utils/__init__.py +0 -0
  232. {zou-0.19.60 → zou-0.19.62}/zou/app/utils/api.py +0 -0
  233. {zou-0.19.60 → zou-0.19.62}/zou/app/utils/auth.py +0 -0
  234. {zou-0.19.60 → zou-0.19.62}/zou/app/utils/cache.py +0 -0
  235. {zou-0.19.60 → zou-0.19.62}/zou/app/utils/chats.py +0 -0
  236. {zou-0.19.60 → zou-0.19.62}/zou/app/utils/colors.py +0 -0
  237. {zou-0.19.60 → zou-0.19.62}/zou/app/utils/commands.py +0 -0
  238. {zou-0.19.60 → zou-0.19.62}/zou/app/utils/csv_utils.py +0 -0
  239. {zou-0.19.60 → zou-0.19.62}/zou/app/utils/date_helpers.py +0 -0
  240. {zou-0.19.60 → zou-0.19.62}/zou/app/utils/dbhelpers.py +0 -0
  241. {zou-0.19.60 → zou-0.19.62}/zou/app/utils/emails.py +0 -0
  242. {zou-0.19.60 → zou-0.19.62}/zou/app/utils/env.py +0 -0
  243. {zou-0.19.60 → zou-0.19.62}/zou/app/utils/events.py +0 -0
  244. {zou-0.19.60 → zou-0.19.62}/zou/app/utils/fido.py +0 -0
  245. {zou-0.19.60 → zou-0.19.62}/zou/app/utils/fields.py +0 -0
  246. {zou-0.19.60 → zou-0.19.62}/zou/app/utils/flask.py +0 -0
  247. {zou-0.19.60 → zou-0.19.62}/zou/app/utils/fs.py +0 -0
  248. {zou-0.19.60 → zou-0.19.62}/zou/app/utils/git.py +0 -0
  249. {zou-0.19.60 → zou-0.19.62}/zou/app/utils/logs.py +0 -0
  250. {zou-0.19.60 → zou-0.19.62}/zou/app/utils/monitoring.py +0 -0
  251. {zou-0.19.60 → zou-0.19.62}/zou/app/utils/permissions.py +0 -0
  252. {zou-0.19.60 → zou-0.19.62}/zou/app/utils/query.py +0 -0
  253. {zou-0.19.60 → zou-0.19.62}/zou/app/utils/remote_job.py +0 -0
  254. {zou-0.19.60 → zou-0.19.62}/zou/app/utils/saml.py +0 -0
  255. {zou-0.19.60 → zou-0.19.62}/zou/app/utils/shell.py +0 -0
  256. {zou-0.19.60 → zou-0.19.62}/zou/app/utils/thumbnail.py +0 -0
  257. {zou-0.19.60 → zou-0.19.62}/zou/debug.py +0 -0
  258. {zou-0.19.60 → zou-0.19.62}/zou/event_stream.py +0 -0
  259. {zou-0.19.60 → zou-0.19.62}/zou/job_settings.py +0 -0
  260. {zou-0.19.60 → zou-0.19.62}/zou/migrations/README +0 -0
  261. {zou-0.19.60 → zou-0.19.62}/zou/migrations/__init__.py +0 -0
  262. {zou-0.19.60 → zou-0.19.62}/zou/migrations/alembic.ini +0 -0
  263. {zou-0.19.60 → zou-0.19.62}/zou/migrations/env.py +0 -0
  264. {zou-0.19.60 → zou-0.19.62}/zou/migrations/script.py.mako +0 -0
  265. {zou-0.19.60 → zou-0.19.62}/zou/migrations/utils/__init__.py +0 -0
  266. {zou-0.19.60 → zou-0.19.62}/zou/migrations/utils/base.py +0 -0
  267. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/003be8a91001_add_start_and_end_dates_to_projects.py +0 -0
  268. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/0596674df51d_add_department_mentions_to_comments.py +0 -0
  269. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/05ac7e8caa21_remove_unique_constraint_for_taskstatus_.py +0 -0
  270. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/05b7dc79a416_add_archived_fields_to_main_tables.py +0 -0
  271. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/0cf5e0e035fa_drop_column_tasktype_for_shots.py +0 -0
  272. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/0ec3762a745d_add_attachment_table.py +0 -0
  273. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/0ef6416a507b_.py +0 -0
  274. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/10cf267d95c9_fix_schedule_item.py +0 -0
  275. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/16328eae4b5f_add_new_constraint_for_timespent.py +0 -0
  276. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/16df47d76c64_add_some_indexes.py +0 -0
  277. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/17ef8f7be758_disallow_null_choicetype.py +0 -0
  278. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/1bb55759146f_add_table_studio.py +0 -0
  279. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/1cb44194db49_add_file_size_field_to_preview_file.py +0 -0
  280. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/1e150c2cea4d_add_nb_entities_out.py +0 -0
  281. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/1e2d77a2f0c4_add_hd_by_default_column.py +0 -0
  282. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/1fab8c420678_add_attachments_to_message_chats.py +0 -0
  283. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/20dfeb36142b_add_projecttaskstatuslink_roles_for_.py +0 -0
  284. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/23122f290ca2_add_entity_chat_models.py +0 -0
  285. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/269d41bfb73f_add_entity_entity_links.py +0 -0
  286. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/29df910f04a4_create_unique_constraint_project_id_.py +0 -0
  287. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/29fe01a6c9eb_add_status_automation_field.py +0 -0
  288. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/2adc020885fa_.py +0 -0
  289. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/2baede80b111_add_entity_status_field.py +0 -0
  290. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/306266361f4f_.py +0 -0
  291. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/328fd44c6347_add_entity_created_by.py +0 -0
  292. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/32f134ff1201_add_is_shared_flag_to_filters.py +0 -0
  293. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/346250b5304c_add_position_to_preview_files.py +0 -0
  294. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/3476e147e632_add_acks_to_comments.py +0 -0
  295. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/389cfb9de776_.py +0 -0
  296. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/38baa9a23b3d_.py +0 -0
  297. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/398150912a3f_validation_status_preview.py +0 -0
  298. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/3b0d1321079e_.py +0 -0
  299. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/3d5c93bafb9d_.py +0 -0
  300. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/3e0538ddf80f_.py +0 -0
  301. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/3fee3bd10f9d_.py +0 -0
  302. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/4095103c7d01_add_is_clients_isolated_flag_to_projects.py +0 -0
  303. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/40dea9555940_.py +0 -0
  304. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/42ec83db6a01_change_person_preferred_two_factor_.py +0 -0
  305. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/43d0cf0ed5e7_.py +0 -0
  306. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/443d1e78a932_.py +0 -0
  307. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/45c2de366e66_.py +0 -0
  308. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/45dafbb3f4e1_for_person_contract_type_disallow_null.py +0 -0
  309. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/4715c2586036_add_last_preview_file_fields.py +0 -0
  310. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/4e3738cdc34c_.py +0 -0
  311. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/4f2398ebcd49_.py +0 -0
  312. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/523ee9647bee_.py +0 -0
  313. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/54ee0d1d60ba_add_build_job_model.py +0 -0
  314. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/556526e47daa_.py +0 -0
  315. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/57222395f2be_add_statusautomation_import_last_revision.py +0 -0
  316. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/5798d2c9020b_change_person_role_to_choicetype.py +0 -0
  317. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/590aa1ffe731_add_notifications_enabled_flag.py +0 -0
  318. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/59a7445a966c_add_entity_is_shared.py +0 -0
  319. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/5a291251823c_add_max_retake_parameter.py +0 -0
  320. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/5ab9d7a75887_.py +0 -0
  321. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/5b0fcbb94f24_.py +0 -0
  322. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/5b7fa3e51701_add_is_client_allowed_flag_to_task_.py +0 -0
  323. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/5b980f0dc365_add_comment_links.py +0 -0
  324. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/5b9fd9ddfe43_add_homepage_and_contract_fields.py +0 -0
  325. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/5c0498e264bc_add_slack_fields.py +0 -0
  326. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/5e2ce62632a6_add_workflow_to_project.py +0 -0
  327. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/680c64565f9d_for_searchfiltergroup_is_shared.py +0 -0
  328. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/693cc511d28d_add_taskstatus_priority.py +0 -0
  329. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/6aa446ee4072_add_is_for_all_flage_to_playlists.py +0 -0
  330. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/6bd3b102d61b_.py +0 -0
  331. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/6c597e842afa_add_task_type_field_to_playlists.py +0 -0
  332. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/6d1b2c60f58b_add_milestone_model.py +0 -0
  333. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/6d7fa5a8e9a5_add_timesheets_locked_field_to_org.py +0 -0
  334. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/6eeaff945706_add_data_field_on_entity_links.py +0 -0
  335. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/6f6049877105_.py +0 -0
  336. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/7417c8eb70d8_add_for_entity_field_to_playlists.py +0 -0
  337. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/772a5e43f05b_.py +0 -0
  338. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/7748d3d22925_add_columns_to_searchfilter_table_to_.py +0 -0
  339. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/77d6820f494f_add_reply_to_notif.py +0 -0
  340. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/7b1f765677d8_.py +0 -0
  341. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/7bc746997e8d_add_slack_token_field_to_organisation.py +0 -0
  342. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/7dc79d4ed7cd_.py +0 -0
  343. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/818f7bda2528_.py +0 -0
  344. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/82e7f7a95e84_add_project_id_to_events.py +0 -0
  345. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/82ee682204ab_add_is_generated_from_ldap_column_to_.py +0 -0
  346. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/8588f254d6b8_add_archived_fields.py +0 -0
  347. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/8739ae9fa28b_add_for_client_field.py +0 -0
  348. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/87efceb6745b_add_ready_for_to_entity.py +0 -0
  349. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/892b264937ec_.py +0 -0
  350. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/8a1b4a1b7f4a_add_totp_columns_for_person.py +0 -0
  351. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/8e4f39e321f4_add_day_off_table.py +0 -0
  352. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/8e67c183bed7_add_preference_fields.py +0 -0
  353. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/8fbd40afbe5f_allow_to_set_float_values_for_.py +0 -0
  354. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/9010a64e5a2d_add_indices.py +0 -0
  355. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/9060dd4f6116_notification_uc.py +0 -0
  356. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/925771029620_.py +0 -0
  357. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/92b40d79ad3f_allow_message_attachments.py +0 -0
  358. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/92bdfe07e5f5_discord_integration.py +0 -0
  359. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/956659992419_add_columns_for_person_to_store_fido_.py +0 -0
  360. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/96c79d31e648_add_mail_otp_columns_for_person.py +0 -0
  361. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/96f58a4a2a58_person_partial_index_for_email_only_.py +0 -0
  362. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/971dbf5a0faf_add_short_name_for_asset_type_entity_.py +0 -0
  363. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/98c90621cf58_add_for_client_flag_to_playlist.py +0 -0
  364. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/99825b9cc778_.py +0 -0
  365. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/9a09467f9b2c_.py +0 -0
  366. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/9b85c14fa8a7_add_day_off_new_columns.py +0 -0
  367. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/9bd17364fc18_.py +0 -0
  368. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/9e5b3a9b0cee_add_new_column_metadatadescriptor_data_type_.py +0 -0
  369. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/9f8445f9b42c_add_man_days_fields.py +0 -0
  370. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/a23682ccc1f1_.py +0 -0
  371. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/a252a094e977_add_descriptions_for_entities_tasks_and_.py +0 -0
  372. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/a519c710877c_.py +0 -0
  373. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/a65bdadbae2f_.py +0 -0
  374. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/a66508788c53_add_nb_assets_ready.py +0 -0
  375. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/a6c25eed3ea1_add_login_failed_attemps_and_last_login_.py +0 -0
  376. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/a7c43f3fbc76_add_duration_column_to_the_preview_file.py +0 -0
  377. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/aa0a60033106_feedback_request.py +0 -0
  378. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/addbbefa7028_add_departments_link_to_metadata_.py +0 -0
  379. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/ae0127f2fc56_add_previewfile_width_and_previewfile_.py +0 -0
  380. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/af1790868e2c_.py +0 -0
  381. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/b45cb782bb9c_.py +0 -0
  382. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/b4dd0add5f79_.py +0 -0
  383. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/b8c0a0f9d054_drop_task_status_is_reviewable.py +0 -0
  384. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/b8ed0fb263f8_add_person_jti_and_jti_expiration_date.py +0 -0
  385. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/b97a71306fc8_add_is_casting_standby_column_to_entity.py +0 -0
  386. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/be56dc0fb760_for_is_shared_disallow_nullable.py +0 -0
  387. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/bf1347acdee2_.py +0 -0
  388. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/c49e41f1298b_add_previewbackground.py +0 -0
  389. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/c68c2a62cfac_add_mimetype_column_to_attachment.py +0 -0
  390. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/c726b98be194_.py +0 -0
  391. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/c81f3e83bdb5_.py +0 -0
  392. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/ca28796a2a62_add_is_done_field_to_the_task_model.py +0 -0
  393. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/cf3d365de164_add_entity_version_model.py +0 -0
  394. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/cf6cec6d6bf5_add_status_field_to_preview_file.py +0 -0
  395. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/d80267806131_task_status_new_column_is_default.py +0 -0
  396. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/d8dcd5196d57_add_casting_label.py +0 -0
  397. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/de8a3de227ef_.py +0 -0
  398. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/deeacd38d373_for_projecttaskstatuslink_set_default_.py +0 -0
  399. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/df1834485f57_.py +0 -0
  400. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/df9f8a147e80_change_file_size_to_big_integer.py +0 -0
  401. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/e1ef93f40d3d_.py +0 -0
  402. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/e29638428dfd_add_schedule_item_table.py +0 -0
  403. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/e3f6db74cc1e_.py +0 -0
  404. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/e839d6603c09_add_person_id_to_shot_history.py +0 -0
  405. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/ee2373fbe3a4_.py +0 -0
  406. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/f0567e8d0c62_.py +0 -0
  407. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/f0c6cbb61869_add_production_style_field.py +0 -0
  408. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/f344b867a911_for_description_of_entity_task_working_.py +0 -0
  409. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/f4ff5a73d283_add_person_ldap_uid.py +0 -0
  410. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/f5b113876a49_add_preferred_two_factor_authentication_.py +0 -0
  411. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/f5bdca075cdc_add_preview_download_flag_to_projects.py +0 -0
  412. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/f874ad5e898a_add_link_entity_type_task_type.py +0 -0
  413. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/f995b28fb749_.py +0 -0
  414. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/fb6b6f188497_.py +0 -0
  415. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/fb87feaaa094_add_missing_unique_constraints.py +0 -0
  416. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/fc322f908695_.py +0 -0
  417. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/fee7c696166e_.py +0 -0
  418. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/feffd3c5b806_introduce_concepts.py +0 -0
  419. {zou-0.19.60 → zou-0.19.62}/zou/migrations/versions/ffeed4956ab1_add_more_details_to_projects.py +0 -0
  420. {zou-0.19.60 → zou-0.19.62}/zou/remote/__init__.py +0 -0
  421. {zou-0.19.60 → zou-0.19.62}/zou/remote/config_payload.py +0 -0
  422. {zou-0.19.60 → zou-0.19.62}/zou/remote/normalize_movie.py +0 -0
  423. {zou-0.19.60 → zou-0.19.62}/zou/remote/playlist.py +0 -0
  424. {zou-0.19.60 → zou-0.19.62}/zou/utils/__init__.py +0 -0
  425. {zou-0.19.60 → zou-0.19.62}/zou/utils/movie.py +0 -0
  426. {zou-0.19.60 → zou-0.19.62}/zou.egg-info/SOURCES.txt +0 -0
  427. {zou-0.19.60 → zou-0.19.62}/zou.egg-info/dependency_links.txt +0 -0
  428. {zou-0.19.60 → zou-0.19.62}/zou.egg-info/entry_points.txt +0 -0
  429. {zou-0.19.60 → zou-0.19.62}/zou.egg-info/not-zip-safe +0 -0
  430. {zou-0.19.60 → zou-0.19.62}/zou.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: zou
3
- Version: 0.19.60
3
+ Version: 0.19.62
4
4
  Summary: API to store and manage the data of your animation production
5
5
  Home-page: https://zou.cg-wire.com
6
6
  Author: CG Wire
@@ -41,7 +41,7 @@ Requires-Dist: flask-socketio==5.4.1
41
41
  Requires-Dist: flask==3.0.3
42
42
  Requires-Dist: gazu==0.10.16
43
43
  Requires-Dist: gevent-websocket==0.10.1
44
- Requires-Dist: gevent==24.10.2
44
+ Requires-Dist: gevent==24.10.3
45
45
  Requires-Dist: gunicorn==23.0.0
46
46
  Requires-Dist: isoweek==1.3.3
47
47
  Requires-Dist: itsdangerous==2.2.0
@@ -54,9 +54,9 @@ Requires-Dist: numpy==2.1.2; python_version >= "3.10"
54
54
  Requires-Dist: opencv-python==4.10.0.84
55
55
  Requires-Dist: OpenTimelineIO==0.17.0
56
56
  Requires-Dist: OpenTimelineIO-Plugins==0.17.0
57
- Requires-Dist: orjson==3.10.7
57
+ Requires-Dist: orjson==3.10.9
58
58
  Requires-Dist: pillow==11.0.0
59
- Requires-Dist: psutil==6.0.0
59
+ Requires-Dist: psutil==6.1.0
60
60
  Requires-Dist: psycopg[binary]==3.2.3
61
61
  Requires-Dist: pyotp==2.9.0
62
62
  Requires-Dist: pysaml2==7.5.0
@@ -85,7 +85,7 @@ Requires-Dist: pytest==8.3.3; extra == "test"
85
85
  Provides-Extra: monitoring
86
86
  Requires-Dist: prometheus-flask-exporter==0.23.1; extra == "monitoring"
87
87
  Requires-Dist: pygelf==0.4.2; extra == "monitoring"
88
- Requires-Dist: sentry-sdk==2.16.0; extra == "monitoring"
88
+ Requires-Dist: sentry-sdk==2.17.0; extra == "monitoring"
89
89
  Provides-Extra: lint
90
90
  Requires-Dist: autoflake==2.3.1; extra == "lint"
91
91
  Requires-Dist: black==24.10.0; extra == "lint"
@@ -47,7 +47,7 @@ install_requires =
47
47
  flask==3.0.3
48
48
  gazu==0.10.16
49
49
  gevent-websocket==0.10.1
50
- gevent==24.10.2
50
+ gevent==24.10.3
51
51
  gunicorn==23.0.0
52
52
  isoweek==1.3.3
53
53
  itsdangerous==2.2.0
@@ -60,9 +60,9 @@ install_requires =
60
60
  opencv-python==4.10.0.84
61
61
  OpenTimelineIO==0.17.0
62
62
  OpenTimelineIO-Plugins==0.17.0
63
- orjson==3.10.7
63
+ orjson==3.10.9
64
64
  pillow==11.0.0
65
- psutil==6.0.0
65
+ psutil==6.1.0
66
66
  psycopg[binary]==3.2.3
67
67
  pyotp==2.9.0
68
68
  pysaml2==7.5.0
@@ -99,7 +99,7 @@ test =
99
99
  monitoring =
100
100
  prometheus-flask-exporter==0.23.1
101
101
  pygelf==0.4.2
102
- sentry-sdk==2.16.0
102
+ sentry-sdk==2.17.0
103
103
  lint =
104
104
  autoflake==2.3.1
105
105
  black==24.10.0
@@ -0,0 +1 @@
1
+ __version__ = "0.19.62"
@@ -283,8 +283,8 @@ class ConfigResource(Resource):
283
283
  responses:
284
284
  200:
285
285
  description: Configuration object including self-hosted status,
286
- Crisp token, indexer configuration, SAML status, and dark theme
287
- status
286
+ Crisp token, indexer configuration, SAML status, and dark
287
+ theme status.
288
288
  """
289
289
  organisation = persons_service.get_organisation()
290
290
  conf = {
@@ -783,7 +783,6 @@ class FilterGroupResource(Resource, ArgsMixin):
783
783
  )
784
784
 
785
785
  data = self.clear_empty_fields(data)
786
- print("data", data)
787
786
  user_filter = user_service.update_filter_group(filter_group_id, data)
788
787
  return user_filter, 200
789
788
 
@@ -81,7 +81,7 @@ MAIL_SERVER = os.getenv("MAIL_SERVER", "localhost")
81
81
  MAIL_PORT = os.getenv("MAIL_PORT", 25)
82
82
  MAIL_USERNAME = os.getenv("MAIL_USERNAME", "")
83
83
  MAIL_PASSWORD = os.getenv("MAIL_PASSWORD", "")
84
- MAIL_DEBUG = int(os.getenv("MAIL_DEBUG", "0"))
84
+ MAIL_DEBUG = envtobool("MAIL_DEBUG", False)
85
85
  MAIL_DEBUG_BODY = envtobool("MAIL_DEBUG_BODY", False)
86
86
  MAIL_USE_TLS = envtobool("MAIL_USE_TLS", False)
87
87
  MAIL_USE_SSL = envtobool("MAIL_USE_SSL", False)
@@ -895,8 +895,8 @@ def get_user_filters(current_user_id):
895
895
  for search_filter in filters:
896
896
  department_id = search_filter.department_id
897
897
  is_in_departments = (
898
- department_id is not None and \
899
- str(department_id) in current_user["departments"]
898
+ department_id is not None
899
+ and str(department_id) in current_user["departments"]
900
900
  )
901
901
 
902
902
  if department_id is None or is_manager or is_in_departments:
@@ -996,15 +996,17 @@ def update_filter(search_filter_id, data):
996
996
  f"No department found with id: {department_id}"
997
997
  )
998
998
 
999
- if data.get("is_shared", None) is not None and \
1000
- search_filter.is_shared != data["is_shared"] and \
1001
- (
1002
- data.get("project_id", None) is None or
1003
- (
999
+ if (
1000
+ data.get("is_shared", None) is not None
1001
+ and search_filter.is_shared != data["is_shared"]
1002
+ and (
1003
+ data.get("project_id", None) is None
1004
+ or (
1004
1005
  data["project_id"] is not None
1005
1006
  and not has_manager_project_access(data["project_id"])
1006
- )
1007
- ):
1007
+ )
1008
+ )
1009
+ ):
1008
1010
  data["is_shared"] = False
1009
1011
 
1010
1012
  if (
@@ -1105,8 +1107,8 @@ def get_user_filter_groups(current_user_id):
1105
1107
 
1106
1108
  department_id = search_filter_group.department_id
1107
1109
  is_in_departments = (
1108
- department_id is not None and \
1109
- str(department_id) in current_user["departments"]
1110
+ department_id is not None
1111
+ and str(department_id) in current_user["departments"]
1110
1112
  )
1111
1113
  if department_id is None or is_manager or is_in_departments:
1112
1114
  subresult = result[search_filter_group.list_type]
@@ -1130,7 +1132,7 @@ def create_filter_group(
1130
1132
  project_id=None,
1131
1133
  entity_type=None,
1132
1134
  is_shared=False,
1133
- department_id=None
1135
+ department_id=None,
1134
1136
  ):
1135
1137
  """
1136
1138
  Add a new search filter group to the database.
@@ -1193,22 +1195,26 @@ def update_filter_group(search_filter_group_id, data):
1193
1195
  if search_filter_group is None:
1194
1196
  raise SearchFilterGroupNotFoundException
1195
1197
 
1196
- if data.get("is_shared", None) is not None and \
1197
- search_filter_group.is_shared != data["is_shared"] and \
1198
- (
1199
- data.get("project_id", None) is None or
1200
- (
1198
+ if (
1199
+ data.get("is_shared", None) is not None
1200
+ and search_filter_group.is_shared != data["is_shared"]
1201
+ and (
1202
+ data.get("project_id", None) is None
1203
+ or (
1201
1204
  data["project_id"] is not None
1202
1205
  and not has_manager_project_access(data["project_id"])
1203
- )
1204
- ):
1205
- data["is_shared"] = False
1206
+ )
1207
+ )
1208
+ ):
1209
+ data["is_shared"] = False
1206
1210
 
1207
1211
  search_filter_group.update(data)
1208
1212
 
1209
- if data.get("is_shared", None) is not None \
1210
- and data.get("project_id", None) is not None \
1211
- and has_manager_project_access(data["project_id"]):
1213
+ if (
1214
+ data.get("is_shared", None) is not None
1215
+ and data.get("project_id", None) is not None
1216
+ and has_manager_project_access(data["project_id"])
1217
+ ):
1212
1218
  if (
1213
1219
  SearchFilter.query.filter_by(
1214
1220
  search_filter_group_id=search_filter_group_id
@@ -6,6 +6,8 @@ def strtobool(val):
6
6
  """
7
7
  if isinstance(val, bool):
8
8
  return val
9
+ if isinstance(val, int):
10
+ return bool(val)
9
11
  elif val.lower() in ("y", "yes", "t", "true", "on", "1"):
10
12
  return True
11
13
  elif val.lower() in ("n", "no", "f", "false", "off", "0"):
@@ -30,7 +30,7 @@ def cli():
30
30
  @cli.command()
31
31
  def version():
32
32
  """
33
- Returns current installation version.
33
+ Return current installation version.
34
34
  """
35
35
  from zou import __version__
36
36
 
@@ -39,7 +39,7 @@ def version():
39
39
 
40
40
  @cli.command()
41
41
  def init_db():
42
- "Creates datababase table (database must be created through PG client)."
42
+ "Create database table (database must be created through PG client)."
43
43
 
44
44
  print("Creating database and tables...")
45
45
  with app.app_context():
@@ -50,17 +50,16 @@ def init_db():
50
50
  @cli.command()
51
51
  def is_db_ready():
52
52
  """
53
- Return a message telling if the database wheter the database is
54
- initiliazed or not."
53
+ Return a message telling whether the database is initialized or not.
55
54
  """
56
55
  with app.app_context():
57
56
  is_init = dbhelpers.is_init()
58
57
  if is_init:
59
- print("Database is initiliazed.")
58
+ print("Database is initialized.")
60
59
  else:
61
60
  print(
62
- "Database is not initiliazed. "
63
- "Run 'zou init-db' and 'init-data'."
61
+ "Database is not initialized. "
62
+ "Run 'zou init-db' and 'zou init-data'."
64
63
  )
65
64
 
66
65
 
@@ -99,7 +98,7 @@ def clear_db():
99
98
 
100
99
  @cli.command()
101
100
  def reset_db():
102
- "Drop all tables then recreates them."
101
+ "Drop all tables, then recreate them."
103
102
  with app.app_context():
104
103
  print("Deleting database and tables...")
105
104
  dbhelpers.drop_all()
@@ -113,7 +112,7 @@ def reset_db():
113
112
  @click.option("--no-telemetry", is_flag=True, default=False)
114
113
  def upgrade_db(no_telemetry=False):
115
114
  """
116
- Upgrade database schema. Send anonymized statistics to our telemery
115
+ Upgrade database schema. Send anonymized statistics to our telemetry
117
116
  services (user and preview amounts). It allows us to size the Kitsu
118
117
  community.
119
118
  """
@@ -217,7 +216,7 @@ def clear_all_auth_tokens():
217
216
 
218
217
  @cli.command()
219
218
  def init_data():
220
- "Generates minimal data set required to run Kitsu."
219
+ "Generate minimal data set required to run Kitsu."
221
220
  commands.init_data()
222
221
 
223
222
 
@@ -441,7 +440,7 @@ def sync_last_events(source, minutes, page_size):
441
440
  @click.option("--page-size", default=50)
442
441
  def sync_last_files(source, minutes, page_size):
443
442
  """
444
- Retrieve last preview files and thumbnails updloaded on source instance.
443
+ Retrieve last preview files and thumbnails uploaded on source instance.
445
444
  It expects that credentials to connect to source instance are
446
445
  given through SYNC_LOGIN and SYNC_PASSWORD environment variables.
447
446
  """
@@ -495,7 +494,7 @@ def clean_tasks_data(project_id):
495
494
  def remove_old_data(days):
496
495
  """
497
496
  Remove old events, notifications and login logs older than 90 days
498
- (by deafult).
497
+ (by default).
499
498
  """
500
499
  commands.remove_old_data(days)
501
500
 
@@ -0,0 +1,73 @@
1
+ """add department keys to filter models
2
+
3
+ Revision ID: 9d3bb33c6fc6
4
+ Revises: 8e67c183bed7
5
+ Create Date: 2024-10-11 15:52:29.740222
6
+
7
+ """
8
+
9
+ from alembic import op
10
+ import sqlalchemy as sa
11
+ import sqlalchemy_utils
12
+ import sqlalchemy_utils
13
+ import uuid
14
+
15
+ # revision identifiers, used by Alembic.
16
+ revision = "9d3bb33c6fc6"
17
+ down_revision = "8e67c183bed7"
18
+ branch_labels = None
19
+ depends_on = None
20
+
21
+
22
+ def upgrade():
23
+ # ### commands auto generated by Alembic - please adjust! ###
24
+ with op.batch_alter_table("search_filter", schema=None) as batch_op:
25
+ batch_op.add_column(
26
+ sa.Column(
27
+ "department_id",
28
+ sqlalchemy_utils.types.uuid.UUIDType(binary=False),
29
+ default=uuid.uuid4,
30
+ nullable=True,
31
+ )
32
+ )
33
+ batch_op.create_foreign_key(
34
+ "search_filter_department_id_fkey",
35
+ "department",
36
+ ["department_id"],
37
+ ["id"],
38
+ )
39
+
40
+ with op.batch_alter_table("search_filter_group", schema=None) as batch_op:
41
+ batch_op.add_column(
42
+ sa.Column(
43
+ "department_id",
44
+ sqlalchemy_utils.types.uuid.UUIDType(binary=False),
45
+ default=uuid.uuid4,
46
+ nullable=True,
47
+ )
48
+ )
49
+ batch_op.create_foreign_key(
50
+ "search_filter_group_department_id_fkey",
51
+ "department",
52
+ ["department_id"],
53
+ ["id"],
54
+ )
55
+
56
+ # ### end Alembic commands ###
57
+
58
+
59
+ def downgrade():
60
+ # ### commands auto generated by Alembic - please adjust! ###
61
+ with op.batch_alter_table("search_filter_group", schema=None) as batch_op:
62
+ batch_op.drop_constraint(
63
+ "search_filter_group_department_id_fkey", type_="foreignkey"
64
+ )
65
+ batch_op.drop_column("department_id")
66
+
67
+ with op.batch_alter_table("search_filter", schema=None) as batch_op:
68
+ batch_op.drop_constraint(
69
+ "search_filter_department_id_fkey", type_="foreignkey"
70
+ )
71
+ batch_op.drop_column("department_id")
72
+
73
+ # ### end Alembic commands ###
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: zou
3
- Version: 0.19.60
3
+ Version: 0.19.62
4
4
  Summary: API to store and manage the data of your animation production
5
5
  Home-page: https://zou.cg-wire.com
6
6
  Author: CG Wire
@@ -41,7 +41,7 @@ Requires-Dist: flask-socketio==5.4.1
41
41
  Requires-Dist: flask==3.0.3
42
42
  Requires-Dist: gazu==0.10.16
43
43
  Requires-Dist: gevent-websocket==0.10.1
44
- Requires-Dist: gevent==24.10.2
44
+ Requires-Dist: gevent==24.10.3
45
45
  Requires-Dist: gunicorn==23.0.0
46
46
  Requires-Dist: isoweek==1.3.3
47
47
  Requires-Dist: itsdangerous==2.2.0
@@ -54,9 +54,9 @@ Requires-Dist: numpy==2.1.2; python_version >= "3.10"
54
54
  Requires-Dist: opencv-python==4.10.0.84
55
55
  Requires-Dist: OpenTimelineIO==0.17.0
56
56
  Requires-Dist: OpenTimelineIO-Plugins==0.17.0
57
- Requires-Dist: orjson==3.10.7
57
+ Requires-Dist: orjson==3.10.9
58
58
  Requires-Dist: pillow==11.0.0
59
- Requires-Dist: psutil==6.0.0
59
+ Requires-Dist: psutil==6.1.0
60
60
  Requires-Dist: psycopg[binary]==3.2.3
61
61
  Requires-Dist: pyotp==2.9.0
62
62
  Requires-Dist: pysaml2==7.5.0
@@ -85,7 +85,7 @@ Requires-Dist: pytest==8.3.3; extra == "test"
85
85
  Provides-Extra: monitoring
86
86
  Requires-Dist: prometheus-flask-exporter==0.23.1; extra == "monitoring"
87
87
  Requires-Dist: pygelf==0.4.2; extra == "monitoring"
88
- Requires-Dist: sentry-sdk==2.16.0; extra == "monitoring"
88
+ Requires-Dist: sentry-sdk==2.17.0; extra == "monitoring"
89
89
  Provides-Extra: lint
90
90
  Requires-Dist: autoflake==2.3.1; extra == "lint"
91
91
  Requires-Dist: black==24.10.0; extra == "lint"
@@ -19,7 +19,7 @@ flask-socketio==5.4.1
19
19
  flask==3.0.3
20
20
  gazu==0.10.16
21
21
  gevent-websocket==0.10.1
22
- gevent==24.10.2
22
+ gevent==24.10.3
23
23
  gunicorn==23.0.0
24
24
  isoweek==1.3.3
25
25
  itsdangerous==2.2.0
@@ -30,9 +30,9 @@ meilisearch==0.31.5
30
30
  opencv-python==4.10.0.84
31
31
  OpenTimelineIO==0.17.0
32
32
  OpenTimelineIO-Plugins==0.17.0
33
- orjson==3.10.7
33
+ orjson==3.10.9
34
34
  pillow==11.0.0
35
- psutil==6.0.0
35
+ psutil==6.1.0
36
36
  psycopg[binary]==3.2.3
37
37
  pyotp==2.9.0
38
38
  pysaml2==7.5.0
@@ -66,7 +66,7 @@ pre-commit==4.0.1
66
66
  [monitoring]
67
67
  prometheus-flask-exporter==0.23.1
68
68
  pygelf==0.4.2
69
- sentry-sdk==2.16.0
69
+ sentry-sdk==2.17.0
70
70
 
71
71
  [prod]
72
72
  gunicorn
@@ -1 +0,0 @@
1
- __version__ = "0.19.60"
@@ -1,44 +0,0 @@
1
- """add department keys to filter models
2
-
3
- Revision ID: 9d3bb33c6fc6
4
- Revises: 8e67c183bed7
5
- Create Date: 2024-10-11 15:52:29.740222
6
-
7
- """
8
- from alembic import op
9
- import sqlalchemy as sa
10
- import sqlalchemy_utils
11
- import sqlalchemy_utils
12
- import uuid
13
-
14
- # revision identifiers, used by Alembic.
15
- revision = '9d3bb33c6fc6'
16
- down_revision = '8e67c183bed7'
17
- branch_labels = None
18
- depends_on = None
19
-
20
-
21
- def upgrade():
22
- # ### commands auto generated by Alembic - please adjust! ###
23
- with op.batch_alter_table('search_filter', schema=None) as batch_op:
24
- batch_op.add_column(sa.Column('department_id', sqlalchemy_utils.types.uuid.UUIDType(binary=False), default=uuid.uuid4, nullable=True))
25
- batch_op.create_foreign_key(None, 'department', ['department_id'], ['id'])
26
-
27
- with op.batch_alter_table('search_filter_group', schema=None) as batch_op:
28
- batch_op.add_column(sa.Column('department_id', sqlalchemy_utils.types.uuid.UUIDType(binary=False), default=uuid.uuid4, nullable=True))
29
- batch_op.create_foreign_key(None, 'department', ['department_id'], ['id'])
30
-
31
- # ### end Alembic commands ###
32
-
33
-
34
- def downgrade():
35
- # ### commands auto generated by Alembic - please adjust! ###
36
- with op.batch_alter_table('search_filter_group', schema=None) as batch_op:
37
- batch_op.drop_constraint(None, type_='foreignkey')
38
- batch_op.drop_column('department_id')
39
-
40
- with op.batch_alter_table('search_filter', schema=None) as batch_op:
41
- batch_op.drop_constraint(None, type_='foreignkey')
42
- batch_op.drop_column('department_id')
43
-
44
- # ### end Alembic commands ###
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes