zou 0.19.68__py3-none-any.whl → 0.19.70__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.
Files changed (53) hide show
  1. zou/__init__.py +1 -1
  2. zou/app/__init__.py +1 -1
  3. zou/app/blueprints/auth/resources.py +17 -15
  4. zou/app/blueprints/breakdown/resources.py +4 -4
  5. zou/app/blueprints/comments/resources.py +2 -2
  6. zou/app/blueprints/crud/base.py +11 -20
  7. zou/app/blueprints/crud/comments.py +4 -40
  8. zou/app/blueprints/crud/event.py +1 -1
  9. zou/app/blueprints/crud/metadata_descriptor.py +9 -9
  10. zou/app/blueprints/crud/organisation.py +16 -1
  11. zou/app/blueprints/crud/person.py +4 -0
  12. zou/app/blueprints/crud/task.py +4 -1
  13. zou/app/blueprints/events/resources.py +8 -8
  14. zou/app/blueprints/export/csv/assets.py +15 -6
  15. zou/app/blueprints/export/csv/edits.py +15 -5
  16. zou/app/blueprints/export/csv/shots.py +15 -5
  17. zou/app/blueprints/index/resources.py +2 -0
  18. zou/app/blueprints/news/resources.py +6 -6
  19. zou/app/blueprints/persons/resources.py +0 -1
  20. zou/app/blueprints/shots/resources.py +0 -1
  21. zou/app/blueprints/source/csv/assets.py +10 -3
  22. zou/app/blueprints/source/csv/base.py +1 -1
  23. zou/app/blueprints/source/csv/edits.py +10 -3
  24. zou/app/blueprints/source/csv/shots.py +10 -3
  25. zou/app/blueprints/tasks/resources.py +7 -1
  26. zou/app/config.py +1 -0
  27. zou/app/models/organisation.py +11 -19
  28. zou/app/models/person.py +1 -1
  29. zou/app/models/serializer.py +17 -17
  30. zou/app/services/assets_service.py +6 -12
  31. zou/app/services/breakdown_service.py +1 -1
  32. zou/app/services/comments_service.py +1 -1
  33. zou/app/services/concepts_service.py +4 -12
  34. zou/app/services/edits_service.py +5 -11
  35. zou/app/services/events_service.py +4 -4
  36. zou/app/services/news_service.py +8 -8
  37. zou/app/services/persons_service.py +9 -4
  38. zou/app/services/preview_files_service.py +12 -4
  39. zou/app/services/projects_service.py +4 -13
  40. zou/app/services/shots_service.py +6 -12
  41. zou/app/services/sync_service.py +4 -4
  42. zou/app/services/tasks_service.py +12 -29
  43. zou/app/services/user_service.py +22 -37
  44. zou/app/utils/commands.py +4 -4
  45. zou/app/utils/csv_utils.py +1 -4
  46. zou/cli.py +4 -4
  47. zou/remote/config_payload.py +2 -1
  48. {zou-0.19.68.dist-info → zou-0.19.70.dist-info}/METADATA +9 -9
  49. {zou-0.19.68.dist-info → zou-0.19.70.dist-info}/RECORD +53 -53
  50. {zou-0.19.68.dist-info → zou-0.19.70.dist-info}/LICENSE +0 -0
  51. {zou-0.19.68.dist-info → zou-0.19.70.dist-info}/WHEEL +0 -0
  52. {zou-0.19.68.dist-info → zou-0.19.70.dist-info}/entry_points.txt +0 -0
  53. {zou-0.19.68.dist-info → zou-0.19.70.dist-info}/top_level.txt +0 -0
@@ -91,13 +91,12 @@ def clear_studio_cache(studio_id):
91
91
  def clear_task_cache(task_id):
92
92
  cache.cache.delete_memoized(get_task, task_id)
93
93
  cache.cache.delete_memoized(get_task, task_id, True)
94
- cache.cache.delete_memoized(get_task_with_relations, task_id)
95
94
 
96
95
 
97
96
  @cache.memoize_function(120)
98
97
  def clear_comment_cache(comment_id):
99
98
  cache.cache.delete_memoized(get_comment, comment_id)
100
- cache.cache.delete_memoized(get_comment_with_relations, comment_id)
99
+ cache.cache.delete_memoized(get_comment, comment_id, True)
101
100
 
102
101
 
103
102
  @cache.memoize_function(120)
@@ -250,14 +249,6 @@ def get_task(task_id, relations=False):
250
249
  return get_task_raw(task_id).serialize(relations=relations)
251
250
 
252
251
 
253
- @cache.memoize_function(120)
254
- def get_task_with_relations(task_id):
255
- """
256
- Get task matching given id as a dictionary.
257
- """
258
- return get_task_raw(task_id).serialize(relations=True)
259
-
260
-
261
252
  def get_task_by_shotgun_id(shotgun_id):
262
253
  """
263
254
  Get task matching given shotgun id as a dictionary.
@@ -396,7 +387,7 @@ def _convert_rows_to_detailed_tasks(rows, relations=False):
396
387
  entity_name,
397
388
  ) = entry
398
389
 
399
- task = get_task_with_relations(str(task_object.id))
390
+ task = get_task(str(task_object.id), relations=relations)
400
391
  task["project_name"] = project_name
401
392
  task["task_type_name"] = task_type_name
402
393
  task["task_status_name"] = task_status_name
@@ -774,21 +765,11 @@ def get_comment_raw(comment_id):
774
765
 
775
766
 
776
767
  @cache.memoize_function(120)
777
- def get_comment(comment_id):
768
+ def get_comment(comment_id, relations=False):
778
769
  """
779
770
  Return comment matching give id as a dict.
780
771
  """
781
- comment = get_comment_raw(comment_id)
782
- return comment.serialize()
783
-
784
-
785
- @cache.memoize_function(120)
786
- def get_comment_with_relations(comment_id):
787
- """
788
- Return comment matching give id as a dict with joins information.
789
- """
790
- comment = get_comment_raw(comment_id)
791
- return comment.serialize(relations=True)
772
+ return get_comment_raw(comment_id).serialize(relations=relations)
792
773
 
793
774
 
794
775
  def get_comment_by_preview_file_id(preview_file_id):
@@ -985,7 +966,7 @@ def get_person_tasks(person_id, projects, is_done=None):
985
966
  except EpisodeNotFoundException:
986
967
  episode_name = "MP"
987
968
 
988
- task_dict = get_task_with_relations(str(task.id))
969
+ task_dict = get_task(str(task.id), relations=True)
989
970
  if entity_type_name == "Sequence" and entity_parent_id is not None:
990
971
  episode_id = entity_parent_id
991
972
  episode = shots_service.get_episode(episode_id)
@@ -1117,7 +1098,7 @@ def get_person_tasks_to_check(project_ids=None, department_ids=None):
1117
1098
  if episode_id is None:
1118
1099
  episode_id = entity_source_id
1119
1100
 
1120
- task_dict = get_task_with_relations(str(task.id))
1101
+ task_dict = get_task(str(task.id), relations=True)
1121
1102
  if entity_type_name == "Sequence" and entity_parent_id is not None:
1122
1103
  episode_id = entity_parent_id
1123
1104
  episode = shots_service.get_episode(episode_id)
@@ -1678,7 +1659,7 @@ def update_preview_file_info(preview_file):
1678
1659
  return entity
1679
1660
 
1680
1661
 
1681
- def get_comments_for_project(project_id, page=0):
1662
+ def get_comments_for_project(project_id, page=0, limit=None):
1682
1663
  """
1683
1664
  Return all comments for given project.
1684
1665
  """
@@ -1687,7 +1668,9 @@ def get_comments_for_project(project_id, page=0):
1687
1668
  .filter(Task.project_id == project_id)
1688
1669
  .order_by(Comment.updated_at.desc())
1689
1670
  )
1690
- return query_utils.get_paginated_results(query, page, relations=True)
1671
+ return query_utils.get_paginated_results(
1672
+ query, page, limit, relations=True
1673
+ )
1691
1674
 
1692
1675
 
1693
1676
  def get_time_spents_for_project(project_id, page=0):
@@ -1729,7 +1712,7 @@ def get_tasks_for_project(
1729
1712
 
1730
1713
 
1731
1714
  def get_full_task(task_id, user_id):
1732
- task = get_task_with_relations(task_id)
1715
+ task = get_task(task_id, relations=True)
1733
1716
  task_type = get_task_type(task["task_type_id"])
1734
1717
  project = projects_service.get_project(task["project_id"])
1735
1718
  task_status = get_task_status(task["task_status_id"])
@@ -2054,7 +2037,7 @@ def get_open_tasks(
2054
2037
  except EpisodeNotFoundException:
2055
2038
  episode_name = "MP"
2056
2039
 
2057
- task_dict = get_task_with_relations(str(task.id))
2040
+ task_dict = get_task(str(task.id), relations=True)
2058
2041
  if entity_type_name == "Sequence" and entity_parent_id is not None:
2059
2042
  episode_id = entity_parent_id
2060
2043
  episode = shots_service.get_episode(episode_id)
@@ -410,7 +410,7 @@ def check_belong_to_project(project_id):
410
410
  if project_id is None:
411
411
  return False
412
412
 
413
- project = projects_service.get_project_with_relations(str(project_id))
413
+ project = projects_service.get_project(str(project_id), relations=True)
414
414
  current_user = persons_service.get_current_user()
415
415
  return current_user["id"] in project["team"]
416
416
 
@@ -1559,40 +1559,25 @@ def get_timezone():
1559
1559
 
1560
1560
 
1561
1561
  def get_context():
1562
- if permissions.has_admin_permissions():
1563
- projects = projects_service.open_projects()
1564
- else:
1565
- projects = get_open_projects()
1566
-
1567
- asset_types = assets_service.get_asset_types()
1568
- custom_actions = custom_actions_service.get_custom_actions()
1569
- status_automations = status_automations_service.get_status_automations()
1570
- persons = persons_service.get_persons(
1571
- minimal=not permissions.has_manager_permissions()
1572
- )
1573
- notification_count = get_unread_notifications_count()
1574
- project_status_list = projects_service.get_project_statuses()
1575
- departments = tasks_service.get_departments()
1576
- studios = tasks_service.get_studios()
1577
- task_types = tasks_service.get_task_types()
1578
- task_status_list = tasks_service.get_task_statuses()
1579
- search_filters = get_filters()
1580
- search_filter_groups = get_filter_groups()
1581
- preview_background_files = files_service.get_preview_background_files()
1582
-
1583
- return {
1584
- "asset_types": asset_types,
1585
- "custom_actions": custom_actions,
1586
- "status_automations": status_automations,
1587
- "departments": departments,
1588
- "studios": studios,
1589
- "notification_count": notification_count,
1590
- "persons": persons,
1591
- "project_status": project_status_list,
1592
- "projects": projects,
1593
- "task_types": task_types,
1594
- "task_status": task_status_list,
1595
- "search_filters": search_filters,
1596
- "search_filter_groups": search_filter_groups,
1597
- "preview_background_files": preview_background_files,
1562
+ context = {
1563
+ "asset_types": assets_service.get_asset_types(),
1564
+ "custom_actions": custom_actions_service.get_custom_actions(),
1565
+ "status_automations": status_automations_service.get_status_automations(),
1566
+ "departments": tasks_service.get_departments(),
1567
+ "studios": tasks_service.get_studios(),
1568
+ "notification_count": get_unread_notifications_count(),
1569
+ "persons": persons_service.get_persons(
1570
+ minimal=not permissions.has_manager_permissions()
1571
+ ),
1572
+ "project_status": projects_service.get_project_statuses(),
1573
+ "projects": get_open_projects(),
1574
+ "task_types": tasks_service.get_task_types(),
1575
+ "task_status": tasks_service.get_task_statuses(),
1576
+ "search_filters": get_filters(),
1577
+ "search_filter_groups": get_filter_groups(),
1578
+ "preview_background_files": files_service.get_preview_background_files(),
1598
1579
  }
1580
+
1581
+ if permissions.has_admin_permissions():
1582
+ context["user_limit"] = config.USER_LIMIT
1583
+ return context
zou/app/utils/commands.py CHANGED
@@ -538,7 +538,7 @@ def run_sync_file_change_daemon(
538
538
 
539
539
 
540
540
  def import_last_changes_from_another_instance(
541
- source, login, password, minutes=0, page_size=300
541
+ source, login, password, minutes=0, limit=300
542
542
  ):
543
543
  """
544
544
  Retrieve and save all the data related to most recent events from another
@@ -547,12 +547,12 @@ def import_last_changes_from_another_instance(
547
547
  with app.app_context():
548
548
  sync_service.init(source, login, password)
549
549
  print("Last events syncing started.")
550
- sync_service.run_last_events_sync(minutes=minutes, page_size=300)
550
+ sync_service.run_last_events_sync(minutes=minutes, limit=300)
551
551
  print("Last events syncing ended.")
552
552
 
553
553
 
554
554
  def import_last_file_changes_from_another_instance(
555
- source, login, password, minutes=20, page_size=50, force=False
555
+ source, login, password, minutes=20, limit=50, force=False
556
556
  ):
557
557
  """
558
558
  Retrieve and save all the data related most to recent file events
@@ -562,7 +562,7 @@ def import_last_file_changes_from_another_instance(
562
562
  with app.app_context():
563
563
  sync_service.init(source, login, password)
564
564
  print("Last files syncing started.")
565
- sync_service.run_last_events_files(minutes=minutes, page_size=50)
565
+ sync_service.run_last_events_files(minutes=minutes, limit=50)
566
566
  print("Last files syncing ended.")
567
567
 
568
568
 
@@ -1,9 +1,6 @@
1
- try:
2
- from StringIO import StringIO
3
- except ImportError:
4
- from io import StringIO
5
1
  import csv
6
2
 
3
+ from io import StringIO
7
4
  from flask import make_response
8
5
  from slugify import slugify
9
6
 
zou/cli.py CHANGED
@@ -421,7 +421,7 @@ def sync_file_changes(event_source, source, logs_directory):
421
421
  @click.option("--source", default="http://localhost:8080/api")
422
422
  @click.option("--minutes", default=0)
423
423
  @click.option("--page-size", default=300)
424
- def sync_last_events(source, minutes, page_size):
424
+ def sync_last_events(source, minutes, limit):
425
425
  """
426
426
  Retrieve last events that occured on source instance and import data related
427
427
  to them. It expects that credentials to connect to source instance are
@@ -430,7 +430,7 @@ def sync_last_events(source, minutes, page_size):
430
430
  login = os.getenv("SYNC_LOGIN")
431
431
  password = os.getenv("SYNC_PASSWORD")
432
432
  commands.import_last_changes_from_another_instance(
433
- source, login, password, minutes=minutes, page_size=page_size
433
+ source, login, password, minutes=minutes, limit=limit
434
434
  )
435
435
 
436
436
 
@@ -438,7 +438,7 @@ def sync_last_events(source, minutes, page_size):
438
438
  @click.option("--source", default="http://localhost:8080/api")
439
439
  @click.option("--minutes", default=20)
440
440
  @click.option("--page-size", default=50)
441
- def sync_last_files(source, minutes, page_size):
441
+ def sync_last_files(source, minutes, limit):
442
442
  """
443
443
  Retrieve last preview files and thumbnails uploaded on source instance.
444
444
  It expects that credentials to connect to source instance are
@@ -447,7 +447,7 @@ def sync_last_files(source, minutes, page_size):
447
447
  login = os.getenv("SYNC_LOGIN")
448
448
  password = os.getenv("SYNC_PASSWORD")
449
449
  commands.import_last_file_changes_from_another_instance(
450
- source, login, password, minutes=minutes, page_size=page_size
450
+ source, login, password, minutes=minutes, limit=limit
451
451
  )
452
452
 
453
453
 
@@ -67,7 +67,8 @@ def get_file_from_storage(storage, output_file_path, filename):
67
67
  or os.path.getsize(output_file_path) == 0
68
68
  ):
69
69
  with open(output_file_path, "wb") as output_file:
70
- output_file.write(storage.read(filename))
70
+ for chunk in storage.read_chunks(filename):
71
+ output_file.write(chunk)
71
72
  return output_file_path
72
73
 
73
74
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: zou
3
- Version: 0.19.68
3
+ Version: 0.19.70
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
@@ -27,7 +27,7 @@ Requires-Dist: click==8.1.7
27
27
  Requires-Dist: discord.py==2.4.0
28
28
  Requires-Dist: email-validator==2.2.0
29
29
  Requires-Dist: ffmpeg-python==0.2.0
30
- Requires-Dist: fido2==1.1.3
30
+ Requires-Dist: fido2==1.2.0
31
31
  Requires-Dist: flasgger==0.9.7.1
32
32
  Requires-Dist: flask_bcrypt==1.0.1
33
33
  Requires-Dist: flask_caching==2.3.0
@@ -41,7 +41,7 @@ Requires-Dist: flask-jwt-extended==4.7.1
41
41
  Requires-Dist: flask-migrate==4.0.7
42
42
  Requires-Dist: flask-socketio==5.4.1
43
43
  Requires-Dist: flask==3.1.0
44
- Requires-Dist: gazu==0.10.19
44
+ Requires-Dist: gazu==0.10.20
45
45
  Requires-Dist: gevent-websocket==0.10.1
46
46
  Requires-Dist: gevent==24.11.1
47
47
  Requires-Dist: gunicorn==23.0.0
@@ -50,9 +50,9 @@ Requires-Dist: itsdangerous==2.2.0
50
50
  Requires-Dist: Jinja2==3.1.4
51
51
  Requires-Dist: ldap3==2.9.1
52
52
  Requires-Dist: matterhook==0.2
53
- Requires-Dist: meilisearch==0.31.6
53
+ Requires-Dist: meilisearch==0.33.0
54
54
  Requires-Dist: numpy==2.0.1; python_version == "3.9"
55
- Requires-Dist: numpy==2.1.3; python_version >= "3.10"
55
+ Requires-Dist: numpy==2.2.0; python_version >= "3.10"
56
56
  Requires-Dist: opencv-python==4.10.0.84
57
57
  Requires-Dist: OpenTimelineIO==0.17.0
58
58
  Requires-Dist: OpenTimelineIO-Plugins==0.17.0
@@ -66,13 +66,13 @@ Requires-Dist: python-nomad==2.0.1
66
66
  Requires-Dist: python-slugify==8.0.4
67
67
  Requires-Dist: python-socketio==5.11.4
68
68
  Requires-Dist: pytz==2024.2
69
- Requires-Dist: redis==5.2.0
69
+ Requires-Dist: redis==5.2.1
70
70
  Requires-Dist: requests==2.32.3
71
71
  Requires-Dist: rq==2.0.0
72
72
  Requires-Dist: slackclient==2.9.4
73
73
  Requires-Dist: sqlalchemy_utils==0.41.2
74
74
  Requires-Dist: sqlalchemy==2.0.36
75
- Requires-Dist: ua-parser==0.18.0
75
+ Requires-Dist: ua-parser==1.0.0
76
76
  Requires-Dist: werkzeug==3.1.3
77
77
  Provides-Extra: prod
78
78
  Requires-Dist: gunicorn; extra == "prod"
@@ -83,11 +83,11 @@ Provides-Extra: test
83
83
  Requires-Dist: fakeredis==2.26.1; extra == "test"
84
84
  Requires-Dist: mixer==7.2.2; extra == "test"
85
85
  Requires-Dist: pytest-cov==6.0.0; extra == "test"
86
- Requires-Dist: pytest==8.3.3; extra == "test"
86
+ Requires-Dist: pytest==8.3.4; extra == "test"
87
87
  Provides-Extra: monitoring
88
88
  Requires-Dist: prometheus-flask-exporter==0.23.1; extra == "monitoring"
89
89
  Requires-Dist: pygelf==0.4.2; extra == "monitoring"
90
- Requires-Dist: sentry-sdk==2.19.0; extra == "monitoring"
90
+ Requires-Dist: sentry-sdk==2.19.2; extra == "monitoring"
91
91
  Provides-Extra: lint
92
92
  Requires-Dist: autoflake==2.3.1; extra == "lint"
93
93
  Requires-Dist: black==24.10.0; extra == "lint"
@@ -1,49 +1,49 @@
1
- zou/__init__.py,sha256=HeoiWHiSUydT3-k-xdKv9o6mWVHnrmaEj0pabjfEUyQ,24
2
- zou/cli.py,sha256=E7rinikQMEAoSzyV4VH2IrTR4HRDBgqHAcYswEfyFnU,18893
1
+ zou/__init__.py,sha256=powhLWMd2SAX5HlSx5db8pIXYP2eDMx0gXnFdsbhMNg,24
2
+ zou/cli.py,sha256=H18Wg-wqQOsv4F5_bZRDlxskjO-TRwaV1NmQMTH9mdg,18869
3
3
  zou/debug.py,sha256=1fawPbkD4wn0Y9Gk0BiBFSa-CQe5agFi8R9uJYl2Uyk,520
4
4
  zou/event_stream.py,sha256=_tue9Ry3aqCniZpKGhWJaY1Eo_fd6zOAfnzPvh_mJzU,8489
5
5
  zou/job_settings.py,sha256=_aqBhujt2Q8sXRWIbgbDf-LUdXRdBimdtTc-fZbiXoY,202
6
- zou/app/__init__.py,sha256=AJEGrLTirr5zZmA8DVSjZedtTuDg6eg9rG4kXMimPnQ,6966
6
+ zou/app/__init__.py,sha256=7pRqdA79X-UI_kYt8Sz6lIdleNStBxHnXISr-tePVe8,6962
7
7
  zou/app/api.py,sha256=JTB_IMVO8EOoyqx9KdRkiIix0chOLi0yGDY-verUJXA,5127
8
- zou/app/config.py,sha256=CR0wvWVF_T0Sfh-AGTphyXnMr0dm_ZVdXUOH3WUTz2s,6646
8
+ zou/app/config.py,sha256=kYbcTVFgcl2sGtf-cpOOVu3_fVh2P1fLcceLjCvsIfc,6700
9
9
  zou/app/mixin.py,sha256=eYwfS_CUFvNmldaQXrjsN5mK_gX0wYrBFykfx60uUM8,4897
10
10
  zou/app/swagger.py,sha256=Jr7zsMqJi0V4FledODOdu-aqqVE02jMFzhqVxHK0_2c,54158
11
11
  zou/app/blueprints/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
12
  zou/app/blueprints/assets/__init__.py,sha256=T2zhDagHjXF6jRwOQ8vqokZTkBHyY7XtTI0Rlooamjs,2931
13
13
  zou/app/blueprints/assets/resources.py,sha256=ff7g8_FzZC6dLvMxcYYffsIOy0CqKqdkZibGm2-qgko,25599
14
14
  zou/app/blueprints/auth/__init__.py,sha256=xP874bMWUnLIirOPSEbpe-Q2fBBQrxZGKd0tLZmNJXk,1128
15
- zou/app/blueprints/auth/resources.py,sha256=sTngRcDn_FAROjlZKMq03YjQpbT82QE3cByX8r8vlK4,45553
15
+ zou/app/blueprints/auth/resources.py,sha256=4ZHg1-M86mw7QlygwfveJcWYI3piwChoTuwVRmA3Q-E,45537
16
16
  zou/app/blueprints/breakdown/__init__.py,sha256=Dp6GWSGxxWIedpyzTTEKpCRUYEo8oVNVyQhwNvTMmQM,1888
17
- zou/app/blueprints/breakdown/resources.py,sha256=JY3j17kv7xPKV9S-XoOxNYivpGHlfZkXI5WuGtx3_Yk,13591
17
+ zou/app/blueprints/breakdown/resources.py,sha256=pmGlHLiXFsPRbxf403SiVgGiaBbtK8G_tfYbXSkJtAU,13593
18
18
  zou/app/blueprints/chats/__init__.py,sha256=YGmwGvddg3MgSYVIh-hmkX8t2em9_LblxBeJzFqFJD4,558
19
19
  zou/app/blueprints/chats/resources.py,sha256=4yLFermdwOsnBLs9nx8yxuHWLar24uQWQy0XgsUNDD0,5950
20
20
  zou/app/blueprints/comments/__init__.py,sha256=WqpJ7-_dK1cInGTFJAxQ7syZtPCotwq2oO20UEnk1h4,1532
21
- zou/app/blueprints/comments/resources.py,sha256=_WoAnnv2uRLbc_fzg6XCeXF06_KNFS08r84YVN858Mc,19423
21
+ zou/app/blueprints/comments/resources.py,sha256=_8OoEl51UWSW5nciqiy3u9ZHztkGg_iuUJ29RhpASkM,19423
22
22
  zou/app/blueprints/concepts/__init__.py,sha256=sP_P4mfYvfMcgeE6MHZYP3eD0Lz0Lwit5-CFuVnA-Jg,894
23
23
  zou/app/blueprints/concepts/resources.py,sha256=maJNrBAWX0bKbDKtOZc3YFp4nTVtIdkkAA4H9WA9n1Y,10140
24
24
  zou/app/blueprints/crud/__init__.py,sha256=qn7xkEh2EG0mPS_RBmm0GgYr0O1jnmI8ymXZnFWZCz8,8361
25
25
  zou/app/blueprints/crud/asset_instance.py,sha256=va3mw79aPKry2m9PYAmjVePTScigewDjwD1c672f0y0,1335
26
26
  zou/app/blueprints/crud/attachment_file.py,sha256=FJA5nKli-9l4p-Mka-tNRNRFil6dNC7QMN3N2MBBN_w,1346
27
- zou/app/blueprints/crud/base.py,sha256=7simulGJtcH1JaWSQCVenxQGD71LPuPL6V9mdOgpsYw,16211
27
+ zou/app/blueprints/crud/base.py,sha256=HJcZKeNe3RVe_qEC9bSlpz4FRKhqavzrsfFLSZ8OmoY,15907
28
28
  zou/app/blueprints/crud/chat.py,sha256=Sq1r0y9ANjS113PUpwgAhnjYsxxLKMCM-a7DJ_icF00,344
29
29
  zou/app/blueprints/crud/chat_message.py,sha256=bEEUoV0sNzu5sntNS6fpLh5NC6wWiycWCXtTE-t4yG4,387
30
- zou/app/blueprints/crud/comments.py,sha256=_FOEs2qNqpOqSmAxu8hI3FWK63ik1Uc7PJS3XU5bTLw,8851
30
+ zou/app/blueprints/crud/comments.py,sha256=Ky9RQCscVCARcuUNuuiCtEqpnKSGrn4CYEiQ7Mr3k14,7711
31
31
  zou/app/blueprints/crud/custom_action.py,sha256=zz8E1IgtaV44BGC7m9t7YSQ9t_fYTtoxl_qRn20XijI,992
32
32
  zou/app/blueprints/crud/day_off.py,sha256=hr_cSBG-r7i_an2AkRmgTPtzbwojaI6el_JDUHgBBx4,2571
33
33
  zou/app/blueprints/crud/department.py,sha256=6UVd4OhloboQAHd6vtDjwdTNgx3tf9XyBAcb4IXnmt0,987
34
34
  zou/app/blueprints/crud/entity.py,sha256=3ny1BJv0NHkV6hE8IiKoYGcVaRVKjY__uEwBVKOdvAw,9745
35
35
  zou/app/blueprints/crud/entity_link.py,sha256=PlHGy3RPDUVdwWtOpQegz-wZCcxe9FZw_80nUVBy1Ac,819
36
36
  zou/app/blueprints/crud/entity_type.py,sha256=fYMtAY6nZjyPy7EUBFgNPhPNJ9a_PN4e8cIURBzeNa8,2346
37
- zou/app/blueprints/crud/event.py,sha256=bay2ggg5Oa69lOxNYGkHVQdSKuMxGhk2wqWP7QApKUg,589
37
+ zou/app/blueprints/crud/event.py,sha256=pKEZPDYGE8HLMrwrIazSpS4SROyw7-382R7RNoLaj5w,583
38
38
  zou/app/blueprints/crud/file_status.py,sha256=vw9NR5HiArorW2pZwxYb701f5ubUIxrNhdhVFnVoDTw,523
39
- zou/app/blueprints/crud/metadata_descriptor.py,sha256=lerwRK8MZiP8WKNHsUTdn1KBk7A_cTnfAy0BaMKMPgA,2119
39
+ zou/app/blueprints/crud/metadata_descriptor.py,sha256=G_KVO5wGWT2y9md914UwziI60Q8d-CJjZuw9O1vfXs8,2119
40
40
  zou/app/blueprints/crud/milestone.py,sha256=UIMsyCNS7ZRePjo08yyzubLEo6fcK-RAsVvrfjXoclA,839
41
41
  zou/app/blueprints/crud/news.py,sha256=0baKn4OLEVY7ljWgpJEypo2Pgzhlp8GJxjim78oqLtg,344
42
42
  zou/app/blueprints/crud/notification.py,sha256=A-KNH0IDNCXlE4AddNxvmsD_7a9HqHGo_rI-Z_pdzus,530
43
- zou/app/blueprints/crud/organisation.py,sha256=DLK0BabSZU2Y4CAoEg5Zkzutb87rCMiyguEC9WdxmoU,873
43
+ zou/app/blueprints/crud/organisation.py,sha256=P1yzIwVB1AE0-ZfiZAVZkUl7hshIwV8OL0NF3DZS7gQ,1340
44
44
  zou/app/blueprints/crud/output_file.py,sha256=tz0NOoEUobNa8RMjl195S6uNP7PsPM-ajMOYWdHUhhE,3968
45
45
  zou/app/blueprints/crud/output_type.py,sha256=Uu7Q5iv-4SZDnxHkLk0vUE1N4k0bBUivXQUTsc58BU8,2012
46
- zou/app/blueprints/crud/person.py,sha256=TmxvZfu143TnjAaRqp8MBJ1bBQFnCPMBeZ_wyiUs7KY,9295
46
+ zou/app/blueprints/crud/person.py,sha256=k1EcYxD5C5p7tquAvJUpD2873-ITeF2ogMNIYRxWuDo,9427
47
47
  zou/app/blueprints/crud/playlist.py,sha256=he8iXoWnjBVXzkB_y8aGnZ6vQ_7hGSf-ALofLFoqx1U,1890
48
48
  zou/app/blueprints/crud/preview_background_file.py,sha256=TRJlVQ3nGOYVkA6kxIlNrip9bjkUaknVNCIUYw8uJYk,2451
49
49
  zou/app/blueprints/crud/preview_file.py,sha256=j5tw7fW4m6QUMTg99cwQlq3yZ5WKHfRuUwRlssBkMDU,3845
@@ -56,7 +56,7 @@ zou/app/blueprints/crud/software.py,sha256=oKFINQh3DcVTd0Ap_cvgsgvhrIbGPjVBKucwk
56
56
  zou/app/blueprints/crud/status_automation.py,sha256=BY846JKmFMpTZBZ0DlWXpQ-LHwCpOwAWU8qekK89yk0,2361
57
57
  zou/app/blueprints/crud/studio.py,sha256=N0JjQ92ilFuPcFsq2WYBeaeeXHyPDXf_-UtSQpSFN4A,951
58
58
  zou/app/blueprints/crud/subscription.py,sha256=xFV_nvRg2ow6E0JWo4VHgeK_SkKX3K8i80thY3qRCl0,392
59
- zou/app/blueprints/crud/task.py,sha256=SpiDqppAbwSGY-fZDqTUYGAQPIBFj20Qlje1kzgKuXo,5743
59
+ zou/app/blueprints/crud/task.py,sha256=7ZMetDs4Z-ZxO0IjyM4y1kmzQUGyLvf0ga6pxZOrNsA,5793
60
60
  zou/app/blueprints/crud/task_status.py,sha256=roRbBJtyoaNrXv5nkVIPLH6K5vdJjGQtiWFvqlfbo9s,1482
61
61
  zou/app/blueprints/crud/task_type.py,sha256=9DUtBaNZqC0yHmunKX_CaUyo-bHjNTX3B-g4zyU5uKc,1815
62
62
  zou/app/blueprints/crud/time_spent.py,sha256=9tfoKJ77OEDTnpKHshO3UMDz_KCoyLq1CWquInm5DY0,3057
@@ -66,28 +66,28 @@ zou/app/blueprints/edits/resources.py,sha256=IvgqEhIvjF6OO7VNK6i5w6NKEoFQyKfuZJ7
66
66
  zou/app/blueprints/entities/__init__.py,sha256=v-qt2dl3s3tmK_ur-cpDHNPmcL0A6xCybczyuidjUCo,713
67
67
  zou/app/blueprints/entities/resources.py,sha256=vyEs5ODyRqP9ICf_2KPVnwrGRCJQxZTgO5qFld0F3lg,3166
68
68
  zou/app/blueprints/events/__init__.py,sha256=Vb0gO7Bpj_2Dpx9hhKd2SZW2qqnJrFVoDpJjFOmoMZw,394
69
- zou/app/blueprints/events/resources.py,sha256=SSrfq5TioZj217Qzv8wxFTUzs3_3DP8yGDYUrkttMIs,3238
69
+ zou/app/blueprints/events/resources.py,sha256=y8OtwrvpLBmr6IcUSZroOXqx8ThaSfBWe53LllZOd3U,3194
70
70
  zou/app/blueprints/export/__init__.py,sha256=W3U93VD-dHlozFVSt_RDvP7h7K_FqgHPLA__W5H1DkE,1574
71
71
  zou/app/blueprints/export/csv/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
72
- zou/app/blueprints/export/csv/assets.py,sha256=QafmkM1BphI6wzbcqK6Hc1XBtisjgGTGYejOwJWwWW4,5561
72
+ zou/app/blueprints/export/csv/assets.py,sha256=8KblL_TjQ4_FuVe7poOSnuLJhdkdWzSWEYjLgl5ajiU,5880
73
73
  zou/app/blueprints/export/csv/base.py,sha256=AlNvzpozHAqs76tWGju0PGhX4CthDRDkwI8OyNb_MSc,1114
74
74
  zou/app/blueprints/export/csv/casting.py,sha256=0e4Z9TzpGfAuWx84qbMAJo74CacsRFofpWChZQ8UNC0,14153
75
- zou/app/blueprints/export/csv/edits.py,sha256=mEtIoHQ8iD9mWWgvtspFau_JjPGI6PwAWq6n1Q9W9OM,5408
75
+ zou/app/blueprints/export/csv/edits.py,sha256=Hgb05MOFqfz-OVpc8RAKXTzHroZSlKWZv-zI9hp9RB4,5728
76
76
  zou/app/blueprints/export/csv/persons.py,sha256=z8B6wlGqTYP5gKKpXSh36ez03wWNY129wNVzwvt6AGY,964
77
77
  zou/app/blueprints/export/csv/playlists.py,sha256=AIrMrGMjbdFaPiRw02KZPznaYc6Zp56KUDaIj9RafwY,4830
78
78
  zou/app/blueprints/export/csv/projects.py,sha256=n_266BxGfYHz-3RbgZ-OuFnJellbP4lXuElRAPFzlHc,740
79
- zou/app/blueprints/export/csv/shots.py,sha256=JSJjqyCJPoIXpAmmPnappUQbYau0AA03c_wh8pmQCls,6005
79
+ zou/app/blueprints/export/csv/shots.py,sha256=VPogiIAxjkmSaj9_M2xrbrCwjwkASx4C0cnboXMIT5A,6376
80
80
  zou/app/blueprints/export/csv/task_types.py,sha256=PCEEhOQcdOJv_38i-KNxbkGeNzmQ8Qe01k8YnhRybzo,765
81
81
  zou/app/blueprints/export/csv/tasks.py,sha256=CHFcs9S3eLIz6psE6Q6mZ-OSur_GrpBeLn98Nh9NNcA,4121
82
82
  zou/app/blueprints/export/csv/time_spents.py,sha256=yYPtilOxfQD5mBwyh9h-PbTQBpab-vMrec35tYUw4fQ,2984
83
83
  zou/app/blueprints/files/__init__.py,sha256=7Wty30JW2OXIn-tBFXOWWmPuHnsnxPpH3jNtHvvr9tY,3987
84
84
  zou/app/blueprints/files/resources.py,sha256=8SIV8kaqv3dxyL8nyqG3QiZmk5ZYIvUxw6k1ic-jhBs,69786
85
85
  zou/app/blueprints/index/__init__.py,sha256=Dh3oQiirpg8RCkfVOuk3irIjSvUvuRf0jPxE6oGubz0,828
86
- zou/app/blueprints/index/resources.py,sha256=_JiNodmq3-XCIz4vF0MYkkkg1Wdzh7Fl19KU0TTia1M,8742
86
+ zou/app/blueprints/index/resources.py,sha256=M_wsZDEAqSGPlUrO4dyKAA4USgwfNyU7jBBfKOJzYFo,8852
87
87
  zou/app/blueprints/news/__init__.py,sha256=HxBXjC15dVbotNAZ0CLf02iwUjxJr20kgf8_kT_9nwM,505
88
- zou/app/blueprints/news/resources.py,sha256=5sN4iHTD3W2SEi1MhVHpeR1OjeTdW-XarkD8tyINLzU,7362
88
+ zou/app/blueprints/news/resources.py,sha256=HdLq2NgfKyN2d3hIATBhH3dlk4c50I4dhhvEhhB_NY4,7334
89
89
  zou/app/blueprints/persons/__init__.py,sha256=0cnHHw3K_8OEMm0qOi3wKVomSAg9IJSnVjAXabMeHks,3893
90
- zou/app/blueprints/persons/resources.py,sha256=0EBI6w63WhjqDSj-COYGk4NO6V1oRyAzfH4f7dXNYoE,42793
90
+ zou/app/blueprints/persons/resources.py,sha256=PfK6epzRn_kbqN6g9qYiH9XWStFlccTVCYyKxs72Hu8,42764
91
91
  zou/app/blueprints/playlists/__init__.py,sha256=vuEk1F3hFHsmuKWhdepMoLyOzmNKDn1YrjjfcaIz0lQ,1596
92
92
  zou/app/blueprints/playlists/resources.py,sha256=alRlMHypUFErXLsEYxpFK84cdjFJ3YWwamZtW0KcwLY,17211
93
93
  zou/app/blueprints/previews/__init__.py,sha256=qGohO6LRNZKXBAegINcUXuZlrtxobJKQg84-rQ1L3AU,4202
@@ -97,17 +97,17 @@ zou/app/blueprints/projects/resources.py,sha256=E91Vj9EzId2pxiL50JRfrThiyif1PmzW
97
97
  zou/app/blueprints/search/__init__.py,sha256=QCjQIY_85l_orhdEiqav_GifjReuwsjZggN3V0GeUVY,356
98
98
  zou/app/blueprints/search/resources.py,sha256=_QgRlUuxCPgY-ip5r2lGFtXNcGSE579JsCSrVf8ajVU,3093
99
99
  zou/app/blueprints/shots/__init__.py,sha256=HfgLneZBYUMa2OGwIgEZTz8zrIEYFRiYmRbreBPYeYw,4076
100
- zou/app/blueprints/shots/resources.py,sha256=_Zkxk_XFwuT_b6vWOx9p3VyMuD2PAo-xKJRATsGjPdQ,49965
100
+ zou/app/blueprints/shots/resources.py,sha256=6YUtyDE-auVwm5DTeD84sB9w2R15KnN9wBY4aIKmz2Q,49936
101
101
  zou/app/blueprints/source/__init__.py,sha256=H7K-4TDs4pc5EJvcYTYMJBHesxyqsE5-xq7J8ckOS2g,6093
102
102
  zou/app/blueprints/source/kitsu.py,sha256=4lWdqxaKDzwx-5POAIHIgZ6ODbDMOOVRxaSb_FOLcCk,5012
103
103
  zou/app/blueprints/source/otio.py,sha256=nTXQEauFinPv2QBXziJW83rSrB_qzIbkFQ_qgxbJynA,13419
104
104
  zou/app/blueprints/source/csv/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
105
- zou/app/blueprints/source/csv/assets.py,sha256=yXoiRaEtW-GXYbmVQJn5Nghx0CR3WTQ-D4farDeG8JI,10471
106
- zou/app/blueprints/source/csv/base.py,sha256=rzFBJhqBTUEmAH2eCzjFxJoAXaMW6VDafmWakoBdL-I,4387
105
+ zou/app/blueprints/source/csv/assets.py,sha256=I-HSz3VK6hbMizBGVSdjxzsPUPjeTpxpks-LEg1Tlqo,10794
106
+ zou/app/blueprints/source/csv/base.py,sha256=1WcvpQv5FrJvE5nyRbJ1Nqrye4OgoTEBItYbHga-Uj4,4373
107
107
  zou/app/blueprints/source/csv/casting.py,sha256=zUlwEnSheoCMTIgvRlKJgNv3hYPDjfSry4fiy9dUhwQ,5616
108
- zou/app/blueprints/source/csv/edits.py,sha256=HsgswzYdl9uXjuSbCOgiQnncD0hpnZYlpwrEs1RPpkQ,8064
108
+ zou/app/blueprints/source/csv/edits.py,sha256=yL1RcClBxPNakLt326M2aJk6pVv0H7CrNXALuKHkDZ8,8386
109
109
  zou/app/blueprints/source/csv/persons.py,sha256=QciJ47B3rAPyUQTAeToCUAhEai16J4s37oOErjdC_Vw,2582
110
- zou/app/blueprints/source/csv/shots.py,sha256=Ux7Huvc3d3oqoVb4SDGAr1kOGM5OVUtai5MRUEdgKVY,9426
110
+ zou/app/blueprints/source/csv/shots.py,sha256=5OI0IBY8C72aBbDFrIkvN-ZkWWCHsvOGUQ0Z9rWsnDs,9748
111
111
  zou/app/blueprints/source/csv/task_type_estimations.py,sha256=YppVqTGfEBwXJH9UG09TrC47exErXUykKSriwpVNQxk,5617
112
112
  zou/app/blueprints/source/shotgun/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
113
113
  zou/app/blueprints/source/shotgun/assets.py,sha256=vuRvy0oUszImYRawrbWC2h7CHYSBvGXDJPoa6ZqpG_U,4980
@@ -127,7 +127,7 @@ zou/app/blueprints/source/shotgun/tasks.py,sha256=XXBRe9QhhS-kuZeV3HitOnpf7mmWVx
127
127
  zou/app/blueprints/source/shotgun/team.py,sha256=GF7y2BwDeFJCiidtG68icfCi-uV1-b96YKiH8KR54iE,1819
128
128
  zou/app/blueprints/source/shotgun/versions.py,sha256=8Mb35e5p3FLbbiu6AZb9tJErDKz2pPRBdIYu80Ayj7w,2292
129
129
  zou/app/blueprints/tasks/__init__.py,sha256=pNUqVEVX1KVu1IzRRJNsziPkhWKXqgyvQsNp7LbmIxo,4342
130
- zou/app/blueprints/tasks/resources.py,sha256=VjEZPdd80MJ2gPgBVZx7la5EsCGDBLaOHRMgGJgVb4o,56215
130
+ zou/app/blueprints/tasks/resources.py,sha256=gPxhfjk43gUVPbbLiaUlAMUXqr-M0R4SPVHmW7VIhj4,56379
131
131
  zou/app/blueprints/user/__init__.py,sha256=H9zCHcVobC6jq6dTToXKAjnZmDA0a9gChHiIP3BcZsc,4586
132
132
  zou/app/blueprints/user/resources.py,sha256=loCigQvPCoRw6nVu_9TIY7pjUByJgk6vutFPSo0MwzI,39891
133
133
  zou/app/file_trees/default.json,sha256=ryUrEmQYE8B_WkzCoQLgmem3N9yNwMIWx9G8p3HfG9o,2310
@@ -156,10 +156,10 @@ zou/app/models/metadata_descriptor.py,sha256=LRCJ7NKsy771kMSLeZDrCON7jRk76J-JTFW
156
156
  zou/app/models/milestone.py,sha256=ZwJ7_PbXT_LeUZKv3l5DLPM7ByFQEccpEeWFq4-IM-Q,927
157
157
  zou/app/models/news.py,sha256=UPX0ojWF-leAGZNKqlo7KL0s0lp2tbKMJl4N5lGbouo,1583
158
158
  zou/app/models/notification.py,sha256=1ODOymGPeB4oxgX_3WhOgIL_Lsz-JR7miDkBS6W8t_s,2563
159
- zou/app/models/organisation.py,sha256=jVDsS3C3ani0NYeKKMnsnkGzeeQor9jMU1qkHxkSa9c,1938
159
+ zou/app/models/organisation.py,sha256=R69AR1JDZSs6YeXDalmz3ewmrSMDv9Mr8AZAHn09Iu0,1365
160
160
  zou/app/models/output_file.py,sha256=hyLGrpsgrk0aisDXppRQrB7ItCwyuyw-X0ZwVAHabsA,2569
161
161
  zou/app/models/output_type.py,sha256=us_lCUCEvuP4vi_XmmOcEl1J2MtZhMX5ZheBqEFCgWA,381
162
- zou/app/models/person.py,sha256=E6Q3KyE4QDon41Fz9sJSCYdR6obqWHtvv2jBOYYFGik,7500
162
+ zou/app/models/person.py,sha256=E6aTbN6HigVTh9_myMfYK6iqrdUfMRB6XBtowdA-qYQ,7511
163
163
  zou/app/models/playlist.py,sha256=YGgAk84u0_fdIEY02Dal4kfk8APVZvWFwWYV74qvrio,1503
164
164
  zou/app/models/preview_background_file.py,sha256=j8LgRmY7INnlB07hFwwB-8ssQrRC8vsb8VcpsTbt6tA,559
165
165
  zou/app/models/preview_file.py,sha256=Ur45Wau2X3qyKULh04EUcMbnBmaQc8y4IMs5NgELiAQ,3134
@@ -168,7 +168,7 @@ zou/app/models/project_status.py,sha256=pExaHH7x4Eu8xOqD3_mRRbMzjT2jJZ8rm-9jo7yU
168
168
  zou/app/models/schedule_item.py,sha256=coY5uDDuBoctaMICnfCzx4zT5om2E1uu4iq5MDWAPlY,1444
169
169
  zou/app/models/search_filter.py,sha256=Q699mJa3GGwFEva93Y_nHiIcx3BDht9VsAe2zeQL0FA,1242
170
170
  zou/app/models/search_filter_group.py,sha256=LGT2zn1lk3dCC-Fu7NU7VFD6MWprmBz7saQhS2ST2gA,980
171
- zou/app/models/serializer.py,sha256=VKN5hHJ6M_jsvrbKe5SonnTeg5dxXSYqb_4JDVWIQwA,1477
171
+ zou/app/models/serializer.py,sha256=slL3F6JxvhJQMCd8br_2NVSeNLxtFX04ivoOrYUTiX4,1373
172
172
  zou/app/models/software.py,sha256=3y9xEOS8BBxqgTaRrCaSYHaB6uOdJ88uU5i-cACoCSk,517
173
173
  zou/app/models/status_automation.py,sha256=95c0lmOetujyGWViLd_qsR4GWPhrmlvi9ZfkC0x1NuM,1391
174
174
  zou/app/models/studio.py,sha256=cXnYFh-8m5Kw05QawYcCr59eeLp25NDI0VIb77oqUOs,384
@@ -179,41 +179,41 @@ zou/app/models/task_type.py,sha256=IsixVAfz3pyMf0eQw8x-uFNM9OHNkZpsPLEz_VNQ0hA,1
179
179
  zou/app/models/time_spent.py,sha256=n7i3FO9g1eE_zATkItoCgrGVqq3iMSfdlKSveEZPloc,795
180
180
  zou/app/models/working_file.py,sha256=q0LM3s1ziw_9AmmPDCkwyf1-TJkWTBMgo2LdHyVRwxg,1509
181
181
  zou/app/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
182
- zou/app/services/assets_service.py,sha256=J7o1ewK2bevJNjeXyaGp99PH0G5Yxbm2edxfX90R3W0,23716
182
+ zou/app/services/assets_service.py,sha256=ACD9WW7EJ7lCZsUs2klnByuNYf0prhdKBitGKHVpIgE,23556
183
183
  zou/app/services/auth_service.py,sha256=hQpNb21xlr5EiTrXnzpFb4W4GDtglubqA2z_-YIBfnk,22897
184
184
  zou/app/services/backup_service.py,sha256=_ZtZp6wkcVYnHxBosziwLGdrTvsUttXGphiydq53iy8,4840
185
185
  zou/app/services/base_service.py,sha256=OZd0STFh-DyBBdwsmA7DMMnrwv4C8wJUbShvZ1isndU,1383
186
- zou/app/services/breakdown_service.py,sha256=DJvi5muf3WDcTx9vBVrut6sqarCRUzI2B0Qar4lNHYc,27581
186
+ zou/app/services/breakdown_service.py,sha256=-bH1KUq9-No_OKnQtWK4XEU1w7uDPJnzWFMrKNkS1K0,27593
187
187
  zou/app/services/chats_service.py,sha256=pqnT-RCltdf9Dp4t-2NtOSawGk0jyNhVPTgERZ_nYvk,8297
188
- zou/app/services/comments_service.py,sha256=CUr0CZGkR95OrHDRJnhAZAikBLtWhM-5uLIoxI4gNtA,18589
189
- zou/app/services/concepts_service.py,sha256=KGvk6lF5udj3SWn40X9KE8OAigrLCZUKEz9_CW7EMgQ,11440
188
+ zou/app/services/comments_service.py,sha256=3O54dozhw3x4VkYBoLoQPant-A3H1lHBURWluLO9TBE,18590
189
+ zou/app/services/concepts_service.py,sha256=sXzMPQ5Rav-c_36CBxdDBjKNq0-gaLWFY9QZGy3jjv4,11252
190
190
  zou/app/services/custom_actions_service.py,sha256=fWISEOOdthadrxeHuacEel5Xj6msn0yWXJQDG1gzvsY,297
191
191
  zou/app/services/deletion_service.py,sha256=GdPWmw60_EmWxJohvqQ9KRcION7_PIdQgbl7nr2g2mY,17429
192
- zou/app/services/edits_service.py,sha256=KTk5KUJx1yB-mRka8rQXMgQLIcWq4mNYZfnVhVlKwyQ,12122
192
+ zou/app/services/edits_service.py,sha256=lQck7U9JYRWRqukwTT6ZBWCP0BpoF3XlPPwmEgtUvSM,11965
193
193
  zou/app/services/emails_service.py,sha256=HaSdDzNLU-s_fxoH-YQi-3VFX1YwdYm64kMhJFGa3AM,11923
194
194
  zou/app/services/entities_service.py,sha256=HDl_KqS5aZEUyAkrgsQ11qqYiaFFy0VcD2BrSaOrxJg,16436
195
- zou/app/services/events_service.py,sha256=_gU19herxiAo47WRxVNhvl7v-RKhp-8wZ3gAiHKpOzI,2716
195
+ zou/app/services/events_service.py,sha256=Ew-bY5hqrWLmpbVj1_xd3E2S3JtyAGzdgw2XjudTZjc,2700
196
196
  zou/app/services/exception.py,sha256=mcDVjWGICMIlOi4nsN2EQ7nc3V70rAC-iCmXt6kOXbA,4240
197
197
  zou/app/services/file_tree_service.py,sha256=8JNBDgnXtV-AmSJ3gnUGB4oSwLjPgi1WYyL0Kc98JRE,33875
198
198
  zou/app/services/files_service.py,sha256=df1_9v-vwE5HVi9XjtilTPWHuiWunvrwPyQh_IXupNM,28517
199
199
  zou/app/services/index_service.py,sha256=1w8rGJ7ArYC13B43hD4JOPtVhaRsbseJVVY-GnU_3tA,9874
200
200
  zou/app/services/names_service.py,sha256=TOSrintROmxcAlcFQE0i2E3PBLnw81GAztNselpTn18,2947
201
- zou/app/services/news_service.py,sha256=Wq262gOPP4EThXXcpT9o0QW8Z3lDQuPV6It-7IEzA5U,9116
201
+ zou/app/services/news_service.py,sha256=eOXkvLhOcgncI2NrgiJEccV28oxZX5CsZVqaE-l4kWQ,9084
202
202
  zou/app/services/notifications_service.py,sha256=7GDRio_mGaRYV5BHOAdpxBZjA_LLYUfVpbwZqy1n9pI,15685
203
- zou/app/services/persons_service.py,sha256=0CKYrmHDUq34VNNgLSWDKN37EgmD68ZqyrUmm4ABj18,16356
203
+ zou/app/services/persons_service.py,sha256=ccPP1_anu2J4zH54LKeP7dt1VyVpiYvzfgOS1xXhLrQ,16564
204
204
  zou/app/services/playlists_service.py,sha256=pAlPHET4jNdST5jsmJrFUkf1SVhfSoML9zdNpZ_88l4,32439
205
- zou/app/services/preview_files_service.py,sha256=M1kXryARUKwCDXsr0hOfUUyGn75y-qXIVIwlMOKWWHs,35609
206
- zou/app/services/projects_service.py,sha256=_J8hIHy3MX5MsdEMRIKNfbyewwhxtMEcc_ymeHBsF38,21434
205
+ zou/app/services/preview_files_service.py,sha256=LEBZbLBJOLDLB7syKql5B8a_p1HFHToMi7nKaUxOCb8,35881
206
+ zou/app/services/projects_service.py,sha256=2m-w_HaWR06gy8jL8gO-sToHhGdeCakG4hTKKYsLJKk,21249
207
207
  zou/app/services/scenes_service.py,sha256=iXN19HU4njPF5VtZXuUrVJ-W23ZQuQNPC3ADXltbWtU,992
208
208
  zou/app/services/schedule_service.py,sha256=E99HKYsXgnK2sw58fw-NNHXWBgVJiA60upztjkNSCaM,6989
209
- zou/app/services/shots_service.py,sha256=dJGG6_8P8_RwqT7r2kv776xXzgNPyJ-RqLyFQuwgAnY,52196
209
+ zou/app/services/shots_service.py,sha256=lJViWy9IbB1YOZB9HyyGAyMc1HW9y5qPEA1EefANTek,52040
210
210
  zou/app/services/stats_service.py,sha256=cAlc92i9d6eYtsuwe3hYHYwdytg8KEMi1-TADfysJwM,11733
211
211
  zou/app/services/status_automations_service.py,sha256=tVio7Sj7inhvKS4UOyRhcdpwr_KNP96hT1o0X7XcGF4,715
212
- zou/app/services/sync_service.py,sha256=EunfXlma_IIb7011A_xLQLVQGAi-MteKgm2Y2NAxvMs,41586
213
- zou/app/services/tasks_service.py,sha256=IoogHBoZhbJegnl5SYGgOaBp2YVqrL22Gccjfp8dPn8,69335
212
+ zou/app/services/sync_service.py,sha256=kJ1LGMNfPh9_BDwGTfoYWHrLZ8OlT0hWk-R8wNt0t3w,41562
213
+ zou/app/services/tasks_service.py,sha256=IK0vJx9upHOwbHGmDogDU1X9nDuC30tf2xJES0UOpnQ,68877
214
214
  zou/app/services/telemetry_services.py,sha256=xQm1h1t_JxSFW59zQGf4NuNdUi1UfMa_6pQ-ytRbmGA,1029
215
215
  zou/app/services/time_spents_service.py,sha256=H9X-60s6oqtY9rtU-K2jKwUSljfkdGlf_9wMr3iVfIA,15158
216
- zou/app/services/user_service.py,sha256=sIl9PE2hX2EfKiRV8YqL3ZrHNulzeL9y960LF4BuZbs,50528
216
+ zou/app/services/user_service.py,sha256=csEwaX2VW-CTY4mexD0yTaNb2i0cN2LECeBnzjSyDUs,50036
217
217
  zou/app/stores/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
218
218
  zou/app/stores/auth_tokens_store.py,sha256=-qOJPybLHvnMOq3PWk073OW9HJwOHGhFLZeOIlX1UVw,1290
219
219
  zou/app/stores/file_store.py,sha256=yLQDM6mNbj9oe0vsWdBqun7D8Dw-eSjD1yHCCftX0OI,4045
@@ -225,8 +225,8 @@ zou/app/utils/auth.py,sha256=DZfZSr1Ulge0UK3hfvOWsMo3_d7RVP_llV118u9BtUI,870
225
225
  zou/app/utils/cache.py,sha256=MRluTvGG67ybOkyzgD70B6PGKMdRyFdTc0AYy3dEQe8,1210
226
226
  zou/app/utils/chats.py,sha256=ORngxQ3IQQF0QcVFJLxJ-RaU4ksQ9-0M8cmPa0pc0Ho,4302
227
227
  zou/app/utils/colors.py,sha256=LaGV17NL_8xY0XSp8snGWz5UMwGnm0KPWXyE5BTMG6w,200
228
- zou/app/utils/commands.py,sha256=z1tpCRY6wOH_uSrjPTS5kRkhYwW8SEA-pKhreaXLu0I,27472
229
- zou/app/utils/csv_utils.py,sha256=difqBp9xp3nHvaOjW6B64A4X3Uyfe_vKGw10i6SJ5_E,1291
228
+ zou/app/utils/commands.py,sha256=_ev6tS1bQVDkjIOWGsCTh0zUcJCCoBBcUQKuzOeSJFE,27456
229
+ zou/app/utils/csv_utils.py,sha256=GiI8SeUqmIh9o1JwhZGkQXU_0K0EcPrRHYIZ8bMoYzk,1228
230
230
  zou/app/utils/date_helpers.py,sha256=jFxDPCbAasg0I1gsC72AKEbGcx5c4pLqXZkSfZ4wLdQ,4724
231
231
  zou/app/utils/dbhelpers.py,sha256=RSJuoxLexGJyME16GQCs-euFLBR0u-XAFdJ1KMSv5M8,1143
232
232
  zou/app/utils/emails.py,sha256=hc4HWvVYsG1xoP3sR0Zig0sB0k0y7bNxuNxxBreN5Yg,1436
@@ -408,14 +408,14 @@ zou/migrations/versions/fee7c696166e_.py,sha256=jVvkr0uY5JPtC_I9h18DELo_eRu99RdO
408
408
  zou/migrations/versions/feffd3c5b806_introduce_concepts.py,sha256=wFNAtTTDHa01AdoXhRDayCVdB33stUFn6whc3opg2vQ,4774
409
409
  zou/migrations/versions/ffeed4956ab1_add_more_details_to_projects.py,sha256=cgRcg4IRW9kJ-A9-fVb5y5IXwRd74czomSVqMz3fVJo,1164
410
410
  zou/remote/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
411
- zou/remote/config_payload.py,sha256=7b1xTZ0AHP1Y1KVWozQ4sNMS34s7fg3WO6nNbdDZBDc,1864
411
+ zou/remote/config_payload.py,sha256=pcKy6bJak41lc8Btq0gYMpHRJuG8y2Ae7lbZDOdchNQ,1907
412
412
  zou/remote/normalize_movie.py,sha256=zNfEY3N1UbAHZfddGONTg2Sff3ieLVWd4dfZa1dpnes,2164
413
413
  zou/remote/playlist.py,sha256=AsDo0bgYhDcd6DfNRV6r6Jj3URWwavE2ZN3VkKRPbLU,3293
414
414
  zou/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
415
415
  zou/utils/movie.py,sha256=d67fIL9dVBKt-E_qCGXRbNNdbJaJR5sHvZeX3hf8ldE,16559
416
- zou-0.19.68.dist-info/LICENSE,sha256=dql8h4yceoMhuzlcK0TT_i-NgTFNIZsgE47Q4t3dUYI,34520
417
- zou-0.19.68.dist-info/METADATA,sha256=KcDj-VP0E8-knTHPIuYFUELR0GW-uX58lSxva26OyIU,6710
418
- zou-0.19.68.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
419
- zou-0.19.68.dist-info/entry_points.txt,sha256=PelQoIx3qhQ_Tmne7wrLY-1m2izuzgpwokoURwSohy4,130
420
- zou-0.19.68.dist-info/top_level.txt,sha256=4S7G_jk4MzpToeDItHGjPhHx_fRdX52zJZWTD4SL54g,4
421
- zou-0.19.68.dist-info/RECORD,,
416
+ zou-0.19.70.dist-info/LICENSE,sha256=dql8h4yceoMhuzlcK0TT_i-NgTFNIZsgE47Q4t3dUYI,34520
417
+ zou-0.19.70.dist-info/METADATA,sha256=NmJPDAd3cAO4dtJtUncd8r7XQxwaN5EumoyhxYqaZWg,6709
418
+ zou-0.19.70.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
419
+ zou-0.19.70.dist-info/entry_points.txt,sha256=PelQoIx3qhQ_Tmne7wrLY-1m2izuzgpwokoURwSohy4,130
420
+ zou-0.19.70.dist-info/top_level.txt,sha256=4S7G_jk4MzpToeDItHGjPhHx_fRdX52zJZWTD4SL54g,4
421
+ zou-0.19.70.dist-info/RECORD,,
File without changes
File without changes