zou 0.19.52__py3-none-any.whl → 0.19.54__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 (39) hide show
  1. zou/__init__.py +1 -1
  2. zou/app/__init__.py +1 -1
  3. zou/app/blueprints/assets/__init__.py +22 -0
  4. zou/app/blueprints/assets/resources.py +240 -3
  5. zou/app/blueprints/chats/resources.py +2 -2
  6. zou/app/blueprints/crud/base.py +10 -6
  7. zou/app/blueprints/crud/day_off.py +3 -3
  8. zou/app/blueprints/crud/entity.py +3 -3
  9. zou/app/blueprints/crud/entity_type.py +15 -0
  10. zou/app/blueprints/crud/metadata_descriptor.py +16 -3
  11. zou/app/blueprints/crud/person.py +13 -15
  12. zou/app/blueprints/crud/preview_background_file.py +3 -3
  13. zou/app/blueprints/crud/project.py +5 -5
  14. zou/app/blueprints/crud/schedule_item.py +2 -2
  15. zou/app/blueprints/crud/task.py +1 -0
  16. zou/app/blueprints/crud/task_type.py +3 -3
  17. zou/app/blueprints/persons/resources.py +2 -2
  18. zou/app/blueprints/previews/resources.py +29 -6
  19. zou/app/blueprints/projects/resources.py +1 -1
  20. zou/app/blueprints/shots/resources.py +2 -2
  21. zou/app/models/base.py +6 -1
  22. zou/app/models/entity.py +3 -5
  23. zou/app/services/assets_service.py +76 -1
  24. zou/app/services/breakdown_service.py +33 -3
  25. zou/app/services/deletion_service.py +5 -0
  26. zou/app/services/exception.py +1 -5
  27. zou/app/services/preview_files_service.py +2 -2
  28. zou/app/services/tasks_service.py +1 -1
  29. zou/app/services/time_spents_service.py +4 -4
  30. zou/app/swagger.py +15 -20
  31. zou/app/utils/query.py +53 -5
  32. zou/event_stream.py +1 -0
  33. zou/migrations/versions/59a7445a966c_add_entity_is_shared.py +41 -0
  34. {zou-0.19.52.dist-info → zou-0.19.54.dist-info}/METADATA +6 -6
  35. {zou-0.19.52.dist-info → zou-0.19.54.dist-info}/RECORD +39 -38
  36. {zou-0.19.52.dist-info → zou-0.19.54.dist-info}/WHEEL +1 -1
  37. {zou-0.19.52.dist-info → zou-0.19.54.dist-info}/LICENSE +0 -0
  38. {zou-0.19.52.dist-info → zou-0.19.54.dist-info}/entry_points.txt +0 -0
  39. {zou-0.19.52.dist-info → zou-0.19.54.dist-info}/top_level.txt +0 -0
zou/app/utils/query.py CHANGED
@@ -1,8 +1,11 @@
1
1
  import math
2
+ import orjson as json
3
+ import sqlalchemy.orm as orm
2
4
 
3
5
  from zou.app import app
4
6
  from zou.app.utils import fields, string
5
7
  from sqlalchemy import func
8
+ from sqlalchemy.inspection import inspect
6
9
 
7
10
 
8
11
  def get_query_criterions_from_request(request):
@@ -21,12 +24,57 @@ def apply_criterions_to_db_query(model, db_query, criterions):
21
24
  """
22
25
  Apply criterions given in HTTP request to the sqlachemy db query object.
23
26
  """
24
- if "name" in criterions and hasattr(model, "name"):
25
- value = criterions["name"]
26
- db_query = db_query.filter(model.name.ilike(value))
27
- del criterions["name"]
28
27
 
29
- return db_query.filter_by(**criterions)
28
+ many_join_filter = []
29
+ in_filter = []
30
+ name_filter = []
31
+ filters = {}
32
+
33
+ column_names = inspect(model).all_orm_descriptors.keys()
34
+ for key, value in criterions.items():
35
+ if key not in ["page", "relations"] and key in column_names:
36
+ field_key = getattr(model, key)
37
+
38
+ is_many_to_many_field = hasattr(
39
+ field_key, "property"
40
+ ) and isinstance(
41
+ field_key.property, orm.properties.RelationshipProperty
42
+ )
43
+ value_is_list = (
44
+ hasattr(value, "__len__")
45
+ and len(value) > 0
46
+ and value[0] == "["
47
+ )
48
+
49
+ if key == "name" and field_key is not None:
50
+ name_filter.append(value)
51
+
52
+ elif is_many_to_many_field:
53
+ many_join_filter.append((key, value))
54
+
55
+ elif value_is_list:
56
+ value_array = json.loads(value)
57
+ in_filter.append(
58
+ field_key.in_(
59
+ [cast_value(value, field_key) for value in value_array]
60
+ )
61
+ )
62
+ else:
63
+ filters[key] = cast_value(value, field_key)
64
+
65
+ if filters:
66
+ db_query = db_query.filter_by(**filters)
67
+
68
+ for value in name_filter:
69
+ db_query = db_query.filter(model.name.ilike(value))
70
+
71
+ for id_filter in in_filter:
72
+ db_query = db_query.filter(id_filter)
73
+
74
+ for key, value in many_join_filter:
75
+ db_query = db_query.filter(getattr(model, key).any(id=value))
76
+
77
+ return db_query
30
78
 
31
79
 
32
80
  def get_paginated_results(query, page, limit=None, relations=False):
zou/event_stream.py CHANGED
@@ -11,6 +11,7 @@ from flask_jwt_extended import (
11
11
  )
12
12
  from flask_socketio import SocketIO, disconnect, join_room, emit
13
13
  from flask_sqlalchemy import SQLAlchemy
14
+
14
15
  from zou.app import config
15
16
  from zou.app.stores import auth_tokens_store
16
17
  from zou.app.utils.monitoring import init_monitoring
@@ -0,0 +1,41 @@
1
+ """Add Entity.is_shared
2
+
3
+ Revision ID: 59a7445a966c
4
+ Revises: ca28796a2a62
5
+ Create Date: 2024-08-16 17:31:59.331365
6
+
7
+ """
8
+
9
+ from alembic import op
10
+ import sqlalchemy as sa
11
+ from sqlalchemy.sql import expression
12
+
13
+
14
+ # revision identifiers, used by Alembic.
15
+ revision = "59a7445a966c"
16
+ down_revision = "ca28796a2a62"
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("entity", schema=None) as batch_op:
24
+ batch_op.add_column(
25
+ sa.Column(
26
+ "is_shared",
27
+ sa.Boolean(),
28
+ nullable=False,
29
+ server_default=expression.false(),
30
+ )
31
+ )
32
+
33
+ # ### end Alembic commands ###
34
+
35
+
36
+ def downgrade():
37
+ # ### commands auto generated by Alembic - please adjust! ###
38
+ with op.batch_alter_table("entity", schema=None) as batch_op:
39
+ batch_op.drop_column("is_shared")
40
+
41
+ # ### end Alembic commands ###
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: zou
3
- Version: 0.19.52
3
+ Version: 0.19.54
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
@@ -37,9 +37,9 @@ Requires-Dist: flask-sqlalchemy ==3.1.1
37
37
  Requires-Dist: flask-fs2[s3,swift] ==0.7.27
38
38
  Requires-Dist: flask-jwt-extended ==4.6.0
39
39
  Requires-Dist: flask-migrate ==4.0.7
40
- Requires-Dist: flask-socketio ==5.3.6
40
+ Requires-Dist: flask-socketio ==5.3.7
41
41
  Requires-Dist: flask ==3.0.3
42
- Requires-Dist: gazu ==0.10.14
42
+ Requires-Dist: gazu ==0.10.15
43
43
  Requires-Dist: gevent-websocket ==0.10.1
44
44
  Requires-Dist: gevent ==24.2.1
45
45
  Requires-Dist: gunicorn ==23.0.0
@@ -60,18 +60,18 @@ Requires-Dist: pyotp ==2.9.0
60
60
  Requires-Dist: pysaml2 ==7.5.0
61
61
  Requires-Dist: python-nomad ==2.0.1
62
62
  Requires-Dist: python-slugify ==8.0.4
63
- Requires-Dist: python-socketio ==5.11.3
63
+ Requires-Dist: python-socketio ==5.11.4
64
64
  Requires-Dist: pytz ==2024.1
65
65
  Requires-Dist: redis ==5.0.8
66
66
  Requires-Dist: requests ==2.32.3
67
67
  Requires-Dist: rq ==1.16.2
68
68
  Requires-Dist: slackclient ==2.9.4
69
69
  Requires-Dist: sqlalchemy-utils ==0.41.2
70
- Requires-Dist: sqlalchemy ==2.0.32
70
+ Requires-Dist: sqlalchemy ==2.0.34
71
71
  Requires-Dist: ua-parser ==0.18.0
72
72
  Requires-Dist: werkzeug ==3.0.4
73
73
  Requires-Dist: numpy ==2.0.1 ; python_version == "3.9"
74
- Requires-Dist: numpy ==2.1.0 ; python_version >= "3.10"
74
+ Requires-Dist: numpy ==2.1.1 ; python_version >= "3.10"
75
75
  Provides-Extra: dev
76
76
  Requires-Dist: wheel ; extra == 'dev'
77
77
  Provides-Extra: lint
@@ -1,22 +1,22 @@
1
- zou/__init__.py,sha256=CXdAtGdLQ3H3JntZq8Z7OptAeL5sbsEvqWtL7mYMKTo,24
1
+ zou/__init__.py,sha256=166Pydgqhznfbi3veNYuwTUKwt-iztD4zn5BNG5qvwY,24
2
2
  zou/cli.py,sha256=DHHf4mz33Bi0gGFJ0GdRUpjrMrMSQYyVubJFppHPZlU,18914
3
3
  zou/debug.py,sha256=1fawPbkD4wn0Y9Gk0BiBFSa-CQe5agFi8R9uJYl2Uyk,520
4
- zou/event_stream.py,sha256=zgob2dZKray2lxPa11hdRNmOg8XRlKDdRcGdF80ylwg,8245
4
+ zou/event_stream.py,sha256=HXPN79RZlG4Y3dYTqkprm8iJPmOn80W7INULHR6GjC8,8246
5
5
  zou/job_settings.py,sha256=WB_RkYxmh4ffQHqg63_wsUDiS0zP3yxiwrxK7DhHG0g,150
6
- zou/app/__init__.py,sha256=1kXv0FUo0XUIoIqZO4268OcLT4Am6pzSYKAcnHrbPW4,6949
6
+ zou/app/__init__.py,sha256=AJEGrLTirr5zZmA8DVSjZedtTuDg6eg9rG4kXMimPnQ,6966
7
7
  zou/app/api.py,sha256=JTB_IMVO8EOoyqx9KdRkiIix0chOLi0yGDY-verUJXA,5127
8
8
  zou/app/config.py,sha256=wA12qGUc7cCVmuD6XNHJ2dJ9mR4-8GnqEFoiS_yJv9s,6544
9
9
  zou/app/mixin.py,sha256=eYwfS_CUFvNmldaQXrjsN5mK_gX0wYrBFykfx60uUM8,4897
10
- zou/app/swagger.py,sha256=UW9DSik3a8GuH1_-7F5P7EYgjZ9DA_kFjukO-6n4kgk,54682
10
+ zou/app/swagger.py,sha256=Jr7zsMqJi0V4FledODOdu-aqqVE02jMFzhqVxHK0_2c,54158
11
11
  zou/app/blueprints/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
- zou/app/blueprints/assets/__init__.py,sha256=tSRvVrnPj732F4k_lkxoTJBJNmIUAqKXPLJDHvOtAA4,2178
13
- zou/app/blueprints/assets/resources.py,sha256=qY4K890kTTRWUVnNomilEuJY7qBy4RWHG2XiTuWPfBA,18988
12
+ zou/app/blueprints/assets/__init__.py,sha256=T2zhDagHjXF6jRwOQ8vqokZTkBHyY7XtTI0Rlooamjs,2931
13
+ zou/app/blueprints/assets/resources.py,sha256=hXcqnGkGhvx-4QiQE46VDBg-nz3BdjT0cBFCtX71-Dg,25571
14
14
  zou/app/blueprints/auth/__init__.py,sha256=xP874bMWUnLIirOPSEbpe-Q2fBBQrxZGKd0tLZmNJXk,1128
15
15
  zou/app/blueprints/auth/resources.py,sha256=CAqlC8Q2Mw3grjL2bU_aZJQ18huwa1Kf3ym2sueH8Bg,45136
16
16
  zou/app/blueprints/breakdown/__init__.py,sha256=Dp6GWSGxxWIedpyzTTEKpCRUYEo8oVNVyQhwNvTMmQM,1888
17
17
  zou/app/blueprints/breakdown/resources.py,sha256=JY3j17kv7xPKV9S-XoOxNYivpGHlfZkXI5WuGtx3_Yk,13591
18
18
  zou/app/blueprints/chats/__init__.py,sha256=YGmwGvddg3MgSYVIh-hmkX8t2em9_LblxBeJzFqFJD4,558
19
- zou/app/blueprints/chats/resources.py,sha256=1THB-UNgMcedspNfB9-3-Tsr6rJ_PUl6Y2s_y0Ww0jk,5910
19
+ zou/app/blueprints/chats/resources.py,sha256=pyTIMaHqErpoSKpqOogLa62syetv6Dg9mCXz_rzflN0,5920
20
20
  zou/app/blueprints/comments/__init__.py,sha256=WqpJ7-_dK1cInGTFJAxQ7syZtPCotwq2oO20UEnk1h4,1532
21
21
  zou/app/blueprints/comments/resources.py,sha256=_WoAnnv2uRLbc_fzg6XCeXF06_KNFS08r84YVN858Mc,19423
22
22
  zou/app/blueprints/concepts/__init__.py,sha256=sP_P4mfYvfMcgeE6MHZYP3eD0Lz0Lwit5-CFuVnA-Jg,894
@@ -24,41 +24,41 @@ zou/app/blueprints/concepts/resources.py,sha256=maJNrBAWX0bKbDKtOZc3YFp4nTVtIdkk
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=nz1-iOyxPPzkF0bivlgQ-bubUfxmiwsLd9pX9kLHr54,16005
27
+ zou/app/blueprints/crud/base.py,sha256=Xug7fzv_aYFdHsf8Jty5753YmktVOL-7LtKIxBekdqY,16140
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
30
  zou/app/blueprints/crud/comments.py,sha256=YH4cllfGloPMcIq1tgpT5pSvKTwNJ1zpkUssrK_OjiU,8334
31
31
  zou/app/blueprints/crud/custom_action.py,sha256=Nf6S6YBxePg4-nfaPTroIYZGWt9fJEHC719DOKJ8R98,978
32
- zou/app/blueprints/crud/day_off.py,sha256=y0vahwLa7F9u6K5KUQ_6vt7XxHWQ_9vBdzDxvEMGIKg,2496
32
+ zou/app/blueprints/crud/day_off.py,sha256=ZjTNBUMH5gJrQ7xWjcAnnOxATi_YJ3or6IqLkO2PQlo,2511
33
33
  zou/app/blueprints/crud/department.py,sha256=AAN_qxZDQGS-mR1kRS_2qGx1D7PKT3h_Ke3IXtJ_F90,973
34
- zou/app/blueprints/crud/entity.py,sha256=8ZVzvdFWkA_gCZ_88aPyDJyhKyfzRqRyJGjtM5gRs6c,9716
34
+ zou/app/blueprints/crud/entity.py,sha256=WdAmVoK1nwo_JmzVKls-DV-rK6miu3y9wZELGDo3Fqw,9731
35
35
  zou/app/blueprints/crud/entity_link.py,sha256=PlHGy3RPDUVdwWtOpQegz-wZCcxe9FZw_80nUVBy1Ac,819
36
- zou/app/blueprints/crud/entity_type.py,sha256=eiOwyoxwA2r857vX6Nni1ukXnNnV-6GnpjIGuTrRqrI,1927
36
+ zou/app/blueprints/crud/entity_type.py,sha256=LT25rqkD--X0LzQdzwTMLmDYqRLepARvTSRD-sjeNfw,2361
37
37
  zou/app/blueprints/crud/event.py,sha256=bay2ggg5Oa69lOxNYGkHVQdSKuMxGhk2wqWP7QApKUg,589
38
38
  zou/app/blueprints/crud/file_status.py,sha256=g2YM_0pscO0GAd-VOzTnl7EF57BS_7zbAwCt1WlNujs,509
39
- zou/app/blueprints/crud/metadata_descriptor.py,sha256=6sNsebjbXnUnlflG4biB0M-C2n30m7vYVbTNjWmUEOY,1622
39
+ zou/app/blueprints/crud/metadata_descriptor.py,sha256=Dc9_HOPCroqI7XDPiO6nrbmLfzaRIR0pFgg41Lq2sj0,2063
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
43
  zou/app/blueprints/crud/organisation.py,sha256=bNGo3Dtir2o_cHk0vDPs4cJw7mRWlSwPf2oA4lDQUyU,859
44
44
  zou/app/blueprints/crud/output_file.py,sha256=jWSagq4LxwtFQH0XL_LjXaiW9FRn8T4k0tv1EbmPfg0,3954
45
45
  zou/app/blueprints/crud/output_type.py,sha256=eYJXLPkUCRj9-v5mc3rxqEHM3yycmf6rVAoaOfbnAcU,1998
46
- zou/app/blueprints/crud/person.py,sha256=7masu1UxnSJT7KZ4zVUvUA7B2_zdY8ZtcEtqEiSIEfc,9201
46
+ zou/app/blueprints/crud/person.py,sha256=qKgko2ZlGCHj_7SC9NW9hFHrjblk18khS_7bGKheyIs,9177
47
47
  zou/app/blueprints/crud/playlist.py,sha256=ZXaz-hHPej6XYKo_RUfJ2QnGOh2W8-y9hTkPZCUp7Zk,1876
48
- zou/app/blueprints/crud/preview_background_file.py,sha256=Kuw2tGetYdYdHTXiCVxPG5OhUAGqCef6qfvvvDddJT4,2422
48
+ zou/app/blueprints/crud/preview_background_file.py,sha256=WzOfag5qhz5B3-XDObYRC8TO4X-kIo1sHOnMCV62IEo,2437
49
49
  zou/app/blueprints/crud/preview_file.py,sha256=252EDEdF-wQaL9ZhqQv5j9z_JKK5WeYwidJfFafArjo,3831
50
- zou/app/blueprints/crud/project.py,sha256=2Bf6NcV_QUJiJdMoZcAP0xHe391xnHDJr5xW3mFZbXk,8171
50
+ zou/app/blueprints/crud/project.py,sha256=rU79oZm-awKMC0k-qNpn-k2D498avge4vxYVOlrR2TQ,8196
51
51
  zou/app/blueprints/crud/project_status.py,sha256=7q78eGCJAg4ZofqBJWBeHsLVpmtxfP9Blpg8-ZYduC8,526
52
- zou/app/blueprints/crud/schedule_item.py,sha256=xOYEVdmyFoDTk5PmZj7KPrRBiAuST0CyJS8pS-R2Pm0,1360
52
+ zou/app/blueprints/crud/schedule_item.py,sha256=qrUJxkK0ib8iocwjQ0iPd3GaZzy-kdx4_uJcLZnJMQY,1370
53
53
  zou/app/blueprints/crud/search_filter.py,sha256=qR0crZFfaOd2YxFcPMKhAj1SXCc-YW9Wk4UA07dDgMQ,393
54
54
  zou/app/blueprints/crud/search_filter_group.py,sha256=bdCLP1EmSatSNQXW8qYjqXQ1_dqluxUeEe7wEpcP_R0,424
55
55
  zou/app/blueprints/crud/software.py,sha256=8UmSPMX-V210nlX0k_RafV930tYqPayt2mBOyDSsqNQ,1960
56
56
  zou/app/blueprints/crud/status_automation.py,sha256=VYgqYlPDmXG38qvACY2UXZNVVqiWjjZM0jD2_2746Kw,2347
57
57
  zou/app/blueprints/crud/studio.py,sha256=GviLxRFt8SDE9F58MoVLdXLE1DXq9IlaZB23RrQiz5g,937
58
58
  zou/app/blueprints/crud/subscription.py,sha256=xFV_nvRg2ow6E0JWo4VHgeK_SkKX3K8i80thY3qRCl0,392
59
- zou/app/blueprints/crud/task.py,sha256=a-BJ5mgE3dRDUiE-KaZjho7vgJ2qbm9D6d36ZWhWrZA,5672
59
+ zou/app/blueprints/crud/task.py,sha256=efhEWUZUs8HMRaze8ORvi8qoZ3fAfJ154BXtZQunBos,5729
60
60
  zou/app/blueprints/crud/task_status.py,sha256=SAWI7qG_9QsBZY5CpjZABYE0zuCimVzhfZfyEfQ_Rj8,1468
61
- zou/app/blueprints/crud/task_type.py,sha256=5DLFkIBl8EmCBBTTD888juRFzaYa2wPrwJTdtGVHtHE,1786
61
+ zou/app/blueprints/crud/task_type.py,sha256=c_UIIEJjYpwuy7DB2zADWCppr4wOOyDNqhc4JaeSaJM,1801
62
62
  zou/app/blueprints/crud/time_spent.py,sha256=9tfoKJ77OEDTnpKHshO3UMDz_KCoyLq1CWquInm5DY0,3057
63
63
  zou/app/blueprints/crud/working_file.py,sha256=mGg1tkmlhyM0-18TWMoEPVIcwT-JTq5qhLx9umH0OGg,3439
64
64
  zou/app/blueprints/edits/__init__.py,sha256=jR6dURRPHZJcU4DVFsNghLW1iGm3CwEzs1LPbdof158,1152
@@ -87,17 +87,17 @@ zou/app/blueprints/index/resources.py,sha256=N0u0RWxThnRndfb5dMy4o2E45ePc3jxWRDw
87
87
  zou/app/blueprints/news/__init__.py,sha256=HxBXjC15dVbotNAZ0CLf02iwUjxJr20kgf8_kT_9nwM,505
88
88
  zou/app/blueprints/news/resources.py,sha256=6e3Ex_Q-djxWDjQQ-eD1fBcylea6XaJphO7Tl9zWKcY,7057
89
89
  zou/app/blueprints/persons/__init__.py,sha256=0cnHHw3K_8OEMm0qOi3wKVomSAg9IJSnVjAXabMeHks,3893
90
- zou/app/blueprints/persons/resources.py,sha256=wYM5xcjP7Q0-ETZTom4yjvOnTO9kYzfjYP8wEa6X030,42674
90
+ zou/app/blueprints/persons/resources.py,sha256=RsN8ix67zRU7NNeMY7uFCXkU2ntJlmKF6DizmGVYdE0,42684
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
94
- zou/app/blueprints/previews/resources.py,sha256=UgzObCvYfQTT1c1OriQaWVYr17iuQQpbrLHZThsKcNM,47120
94
+ zou/app/blueprints/previews/resources.py,sha256=OO6hQxyYo941ANtSapl9DGYpSuto8NeE8jtvx1Hcbek,48028
95
95
  zou/app/blueprints/projects/__init__.py,sha256=Pn3fA5bpNFEPBzxTKJ2foV6osZFflXXSM2l2uZh3ktM,3927
96
- zou/app/blueprints/projects/resources.py,sha256=v9_TLh3mujL-p7QcGkfSOJnNojzoJA15jhqAHz5kEIc,31552
96
+ zou/app/blueprints/projects/resources.py,sha256=E91Vj9EzId2pxiL50JRfrThiyif1PmzWS1oPeMThzQI,31544
97
97
  zou/app/blueprints/search/__init__.py,sha256=QCjQIY_85l_orhdEiqav_GifjReuwsjZggN3V0GeUVY,356
98
98
  zou/app/blueprints/search/resources.py,sha256=ni-dX8Xfib_0FonLttoXgntXBR957-xhifPSQHHnOnY,2696
99
99
  zou/app/blueprints/shots/__init__.py,sha256=HfgLneZBYUMa2OGwIgEZTz8zrIEYFRiYmRbreBPYeYw,4076
100
- zou/app/blueprints/shots/resources.py,sha256=Dl2uFAcYVrvSPLBv5xt7i0z0MvawMLMHUl1dDm9mJ7c,49955
100
+ zou/app/blueprints/shots/resources.py,sha256=_Zkxk_XFwuT_b6vWOx9p3VyMuD2PAo-xKJRATsGjPdQ,49965
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=WkzpKylVkNlbY_jwf6uV5-HPylrktQznOcbCs_p8TDQ,13391
@@ -137,7 +137,7 @@ zou/app/indexer/indexing.py,sha256=rzZxtAInXVZ2cZES-6QJw3NJlRpSPpKLxL0eP8l0onI,3
137
137
  zou/app/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
138
138
  zou/app/models/asset_instance.py,sha256=ajfyA3qe6IjoNvd3mM8yr7wk9p4R9WO0qTfqT9ijntg,1714
139
139
  zou/app/models/attachment_file.py,sha256=d3gldEyKhRyLqGQHBbWVwtmPgtq7oxipxHanZUKWVGI,1377
140
- zou/app/models/base.py,sha256=lxAfdT2kx1d3NmuYrj_FZOWE_FpFuX53kEX9KOqdRaE,8677
140
+ zou/app/models/base.py,sha256=vZoPzdixyRbk0SoDJGEbQ9LFouBaDCA7gVSZ1o_SIhI,8808
141
141
  zou/app/models/build_job.py,sha256=aW6KZXkyMP9d3g8fvcOYk9EAoNMw-6IleZdWbaqLLVw,1286
142
142
  zou/app/models/chat.py,sha256=yeKqe6o7RRAExx8xD-7dRXzUPhq_dwZffrbIG4HQp1w,1189
143
143
  zou/app/models/chat_message.py,sha256=8w7xtoqCW_CRoGKrF4ba5w-oyAHIRh-2ms3p5sQQor4,874
@@ -147,7 +147,7 @@ zou/app/models/data_import_error.py,sha256=dCyzaX0KATa0F8h5V3sTPlXz-XNl1VNkflRfJ
147
147
  zou/app/models/day_off.py,sha256=WMZs7oMhUBpMnNyvhgpl1j6egZ5J0drnrF1dH3N5cII,691
148
148
  zou/app/models/department.py,sha256=ZUzZXemrHJOxoEgALCiMqGww1wnEvxTL12k6KmkWoW4,418
149
149
  zou/app/models/desktop_login_log.py,sha256=fdgqEXAQkHw6CtRU_Y-CuboaZA9QWJc9OzklvbdPBJY,546
150
- zou/app/models/entity.py,sha256=tbli3LQk7RSlgR1jgUpKQe-s54OFWr0-exRosd19RTQ,8592
150
+ zou/app/models/entity.py,sha256=KfRurXnssOGkRRGLz1UA1U27tZDJMeaRPTkADbGo094,8550
151
151
  zou/app/models/entity_type.py,sha256=747igCypAv5n-Lf-xl_nVEO3MzyUPQu5qgH_jksnsrY,1871
152
152
  zou/app/models/event.py,sha256=WNZ9mSh5kIIg-W5CDKfohtAE_ObXbmgRB5JMyWRZktA,677
153
153
  zou/app/models/file_status.py,sha256=pdYnI4empolJ2o2yHSEqp5ZTra4zyXiZPx3bE599GLo,351
@@ -179,21 +179,21 @@ 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=BvAi5mnvZvMJJXnxFF3bofu4JZjiPvdlPrgUyW8PuKY,21460
182
+ zou/app/services/assets_service.py,sha256=VCfXtl8OzPgLV7sHGDfVifv9unZ4wtY6oYs4ndkcPDY,23620
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=p93HncjC36qbmvZiB259QGRtciS37N-s_7IWVAQx5eE,26727
186
+ zou/app/services/breakdown_service.py,sha256=n6xLoFGSEH2JXUKiXKq2NGVZZg_AIORtA05d5D4uaB4,27480
187
187
  zou/app/services/chats_service.py,sha256=V1RmQeQnsH1xvtbs6wcjEpudQS547eJBM7bgJr9-qYM,8270
188
188
  zou/app/services/comments_service.py,sha256=CUr0CZGkR95OrHDRJnhAZAikBLtWhM-5uLIoxI4gNtA,18589
189
189
  zou/app/services/concepts_service.py,sha256=KGvk6lF5udj3SWn40X9KE8OAigrLCZUKEz9_CW7EMgQ,11440
190
190
  zou/app/services/custom_actions_service.py,sha256=fWISEOOdthadrxeHuacEel5Xj6msn0yWXJQDG1gzvsY,297
191
- zou/app/services/deletion_service.py,sha256=ddaup7i_CTugcJDrynczNcfhjSKgDeGhPQjQ68We_l8,17255
191
+ zou/app/services/deletion_service.py,sha256=GdPWmw60_EmWxJohvqQ9KRcION7_PIdQgbl7nr2g2mY,17429
192
192
  zou/app/services/edits_service.py,sha256=KTk5KUJx1yB-mRka8rQXMgQLIcWq4mNYZfnVhVlKwyQ,12122
193
193
  zou/app/services/emails_service.py,sha256=ZSwfL3iO9mIyHttqH61vI4WA-DTVdBk7lo6t9zbvfDA,11922
194
194
  zou/app/services/entities_service.py,sha256=j_dyMHUVISqXFkxm2ydqvAo0nbcEE7_5v9jFauZhSe4,16327
195
195
  zou/app/services/events_service.py,sha256=_gU19herxiAo47WRxVNhvl7v-RKhp-8wZ3gAiHKpOzI,2716
196
- zou/app/services/exception.py,sha256=OBhVlLel081vNUUVywJkY4_8lJE8pFbWa-mrSKrtZuc,4288
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
@@ -202,7 +202,7 @@ zou/app/services/news_service.py,sha256=ltMVObZiNpSat4qze4z6W5zoy9IdPXiIfsqSr2aw
202
202
  zou/app/services/notifications_service.py,sha256=7GDRio_mGaRYV5BHOAdpxBZjA_LLYUfVpbwZqy1n9pI,15685
203
203
  zou/app/services/persons_service.py,sha256=06CyF--QnGVkjvZPkAYIBz8V-P_Nbb4Iv1lkHQWqh4k,16310
204
204
  zou/app/services/playlists_service.py,sha256=pAlPHET4jNdST5jsmJrFUkf1SVhfSoML9zdNpZ_88l4,32439
205
- zou/app/services/preview_files_service.py,sha256=SIZ_SB1bWNRE_Zm7SuEpvFWqVpHKOgfZlCM2BfkgbWE,35598
205
+ zou/app/services/preview_files_service.py,sha256=C3085NjeCoqA8-3tkogFHYWxZ1BJHzKqjZUyd7K_S_Y,35608
206
206
  zou/app/services/projects_service.py,sha256=_J8hIHy3MX5MsdEMRIKNfbyewwhxtMEcc_ymeHBsF38,21434
207
207
  zou/app/services/scenes_service.py,sha256=iXN19HU4njPF5VtZXuUrVJ-W23ZQuQNPC3ADXltbWtU,992
208
208
  zou/app/services/schedule_service.py,sha256=E99HKYsXgnK2sw58fw-NNHXWBgVJiA60upztjkNSCaM,6989
@@ -210,9 +210,9 @@ zou/app/services/shots_service.py,sha256=Y1oTewc2TNxwPzU5CZFfEhjJznjR54a9GTirFZx
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
212
  zou/app/services/sync_service.py,sha256=EunfXlma_IIb7011A_xLQLVQGAi-MteKgm2Y2NAxvMs,41586
213
- zou/app/services/tasks_service.py,sha256=AZYz0qiDcX6t6q_ZZAdw7-6HzXziUux05G2GEtDDRLc,69347
213
+ zou/app/services/tasks_service.py,sha256=IoogHBoZhbJegnl5SYGgOaBp2YVqrL22Gccjfp8dPn8,69335
214
214
  zou/app/services/telemetry_services.py,sha256=xQm1h1t_JxSFW59zQGf4NuNdUi1UfMa_6pQ-ytRbmGA,1029
215
- zou/app/services/time_spents_service.py,sha256=TBLC1O9Dg_UbciG5Nw-dejqX2-5n6q44lACeN6OnUkQ,15206
215
+ zou/app/services/time_spents_service.py,sha256=H9X-60s6oqtY9rtU-K2jKwUSljfkdGlf_9wMr3iVfIA,15158
216
216
  zou/app/services/user_service.py,sha256=BiOhPV7O-vowet7jOksjXk2V4yxZkdqsIyNboJ-Oz_A,46595
217
217
  zou/app/stores/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
218
218
  zou/app/stores/auth_tokens_store.py,sha256=adcGe3SxfY4y_tP57HIR2SZbnu_Amqk-dAGVZIcJQ9c,1237
@@ -240,7 +240,7 @@ zou/app/utils/git.py,sha256=MhmAYvEY-bXsnLvcHUW_NY5V636lJL3H-cdNrTHgLGk,114
240
240
  zou/app/utils/logs.py,sha256=lB6kyFmeANxCILUULLqGN8fuq9IY5FcbrVWmLdqWs2U,1404
241
241
  zou/app/utils/monitoring.py,sha256=xOwyfM-7ZKWNtOxmX2WB1fOav5NpY6k8Tmuhli0nMBs,2082
242
242
  zou/app/utils/permissions.py,sha256=Oq91C_lN6aGVCtCVUqQhijMQEjXOiMezbngpjybzzQk,3426
243
- zou/app/utils/query.py,sha256=Uwmco3NMpSlG6o7arQP52mx60Sq63T0DkUUKVsrkj-I,3126
243
+ zou/app/utils/query.py,sha256=q8ETGPAqnz0Pt9xWoQt5o7FFAVYUKVCJiWpwefIr-iU,4592
244
244
  zou/app/utils/remote_job.py,sha256=QPxcCWEv-NM1Q4IQawAyJAiSORwkMeOlByQb9OCShEw,2522
245
245
  zou/app/utils/saml.py,sha256=b869bvaTR4E4CzOK2gbaN9h6JVkU6aVb1v8_F_ofWDY,1837
246
246
  zou/app/utils/shell.py,sha256=D30NuOzr1D6jsa9OF69JYXyqYNhtIdnfKSVYW4irbz8,405
@@ -304,6 +304,7 @@ zou/migrations/versions/556526e47daa_.py,sha256=XvDBc0o4l76Rf1FBXb5sopNHiGEe-R8t
304
304
  zou/migrations/versions/57222395f2be_add_statusautomation_import_last_revision.py,sha256=rPRvyxfrtEtFywGuBkfB8VLEs3EUytgUyA8xB8vtH4A,1039
305
305
  zou/migrations/versions/5798d2c9020b_change_person_role_to_choicetype.py,sha256=Ll-sR4wYtJ_mbQw7Ve6JnGq6W6KV70f7pHW8zebkMh0,1349
306
306
  zou/migrations/versions/590aa1ffe731_add_notifications_enabled_flag.py,sha256=d-vRUQzI1rZlPinTqAabGOTa3pHLpBjrfa01cIF4VGY,723
307
+ zou/migrations/versions/59a7445a966c_add_entity_is_shared.py,sha256=pFuBaxpNrARVQb7oeGq-ZMJgsO73E_Ak0vOnhIsYmCQ,975
307
308
  zou/migrations/versions/5a291251823c_add_max_retake_parameter.py,sha256=O5N92ZgfFGqyGcOybSQiN6Ie2npQ3Yu_cPZNzt3SAxs,690
308
309
  zou/migrations/versions/5ab9d7a75887_.py,sha256=6kIF_t0qkDhJhqi8EABRSeMpsHlxe_-FXf1XKoeDoYI,335
309
310
  zou/migrations/versions/5b0fcbb94f24_.py,sha256=ysHRLsOL3cv0_daFpd3uqH7gtYc75zbeqpaqOxmZhuk,829
@@ -410,9 +411,9 @@ zou/remote/normalize_movie.py,sha256=zNfEY3N1UbAHZfddGONTg2Sff3ieLVWd4dfZa1dpnes
410
411
  zou/remote/playlist.py,sha256=AsDo0bgYhDcd6DfNRV6r6Jj3URWwavE2ZN3VkKRPbLU,3293
411
412
  zou/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
412
413
  zou/utils/movie.py,sha256=u9LCEOvmkxwm-KiZ6jKNdB9LSC6XXUDwJpVx8LkDwJg,16416
413
- zou-0.19.52.dist-info/LICENSE,sha256=dql8h4yceoMhuzlcK0TT_i-NgTFNIZsgE47Q4t3dUYI,34520
414
- zou-0.19.52.dist-info/METADATA,sha256=60v2YWNqsw0AW9QBQdYFaQ-XBUfXMaGBbp_p0KxL6-g,6704
415
- zou-0.19.52.dist-info/WHEEL,sha256=uCRv0ZEik_232NlR4YDw4Pv3Ajt5bKvMH13NUU7hFuI,91
416
- zou-0.19.52.dist-info/entry_points.txt,sha256=PelQoIx3qhQ_Tmne7wrLY-1m2izuzgpwokoURwSohy4,130
417
- zou-0.19.52.dist-info/top_level.txt,sha256=4S7G_jk4MzpToeDItHGjPhHx_fRdX52zJZWTD4SL54g,4
418
- zou-0.19.52.dist-info/RECORD,,
414
+ zou-0.19.54.dist-info/LICENSE,sha256=dql8h4yceoMhuzlcK0TT_i-NgTFNIZsgE47Q4t3dUYI,34520
415
+ zou-0.19.54.dist-info/METADATA,sha256=0sFDQwWARVyRbxzBwpRrBqB5t_9d3elr_a0U7jSM99w,6704
416
+ zou-0.19.54.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
417
+ zou-0.19.54.dist-info/entry_points.txt,sha256=PelQoIx3qhQ_Tmne7wrLY-1m2izuzgpwokoURwSohy4,130
418
+ zou-0.19.54.dist-info/top_level.txt,sha256=4S7G_jk4MzpToeDItHGjPhHx_fRdX52zJZWTD4SL54g,4
419
+ zou-0.19.54.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (74.1.1)
2
+ Generator: setuptools (75.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
File without changes