zou 0.20.72__py3-none-any.whl → 0.20.74__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.
@@ -303,9 +303,12 @@ def _run_status_automation(automation, task, person_id):
303
303
 
304
304
  elif automation["out_field_type"] == "ready_for":
305
305
  try:
306
- asset = assets_service.update_asset(
307
- task["entity_id"],
308
- {"ready_for": automation["out_task_type_id"]},
306
+ data = {"ready_for": automation["out_task_type_id"]}
307
+ asset = assets_service.update_asset(task["entity_id"], data)
308
+ events.emit(
309
+ "asset:update",
310
+ {"asset_id": task["entity_id"], "data": data},
311
+ project_id=task["project_id"],
309
312
  )
310
313
  breakdown_service.refresh_casting_stats(asset)
311
314
  except AssetNotFoundException:
@@ -526,7 +529,7 @@ def reply_comment(comment_id, text, person_id=None, files={}):
526
529
  comment.update({"replies": replies})
527
530
  comment_dict = comment.serialize(relations=True)
528
531
  if len(files.keys()) > 0:
529
- new_attachment_files = add_attachments_to_comment(
532
+ _, new_attachment_files = add_attachments_to_comment(
530
533
  comment_dict, files, reply_id=reply["id"]
531
534
  )
532
535
  for new_attachment_file in new_attachment_files:
@@ -684,4 +687,4 @@ def add_attachments_to_comment(comment, files, reply_id=None):
684
687
  )
685
688
  comment["attachment_files"].append(attachment_file)
686
689
  new_attachment_files.append(attachment_file)
687
- return new_attachment_files
690
+ return comment, new_attachment_files
@@ -1,6 +1,7 @@
1
1
  import datetime
2
2
 
3
3
  from dateutil import relativedelta
4
+ from collections import defaultdict
4
5
 
5
6
  from sqlalchemy import func
6
7
  from sqlalchemy.exc import DataError
@@ -18,7 +19,7 @@ from zou.app.models.person import Person
18
19
 
19
20
  from zou.app.utils import fields, date_helpers
20
21
 
21
- from zou.app.services import user_service
22
+ from zou.app.services import user_service, projects_service
22
23
  from zou.app.services.exception import WrongDateFormatException
23
24
 
24
25
 
@@ -572,3 +573,62 @@ def get_project_month_time_spents(project_id, timezone=None):
572
573
  "total"
573
574
  ] += time_spent.duration
574
575
  return data
576
+
577
+
578
+ def get_project_task_type_time_spents(
579
+ project_id, task_type_id, start_date, end_date
580
+ ):
581
+ """
582
+ Returns time spents for project and task type in a date range.
583
+ """
584
+ try:
585
+ query = TimeSpent.query.join(Task).filter(
586
+ Task.project_id == project_id, Task.task_type_id == task_type_id
587
+ )
588
+ if start_date is not None:
589
+ query = query.filter(
590
+ TimeSpent.date >= func.cast(start_date, TimeSpent.date.type)
591
+ )
592
+ if end_date is not None:
593
+ query = query.filter(
594
+ TimeSpent.date <= func.cast(end_date, TimeSpent.date.type)
595
+ )
596
+
597
+ time_spents = query.order_by(TimeSpent.date.desc()).all()
598
+
599
+ result = defaultdict(list)
600
+ for ts in time_spents:
601
+ result[str(ts.person_id)].append(ts.serialize())
602
+
603
+ except DataError:
604
+ raise WrongDateFormatException
605
+ return dict(result)
606
+
607
+
608
+ def get_day_offs_between_for_project(
609
+ project_id, start_date=None, end_date=None
610
+ ):
611
+ """
612
+ Get all day off entries for project, start and end date.
613
+ """
614
+ project = projects_service.get_project(project_id, relations=True)
615
+ try:
616
+ query = DayOff.query.filter(DayOff.person_id.in_(project["team"]))
617
+ if start_date is not None:
618
+ query = query.filter(
619
+ func.cast(start_date, DayOff.end_date.type) <= DayOff.end_date
620
+ )
621
+ if end_date is not None:
622
+ query = query.filter(
623
+ func.cast(end_date, DayOff.date.type) >= DayOff.date
624
+ )
625
+
626
+ days_offs = query.order_by(DayOff.date).all()
627
+
628
+ result = defaultdict(list)
629
+ for day_off in days_offs:
630
+ result[str(day_off.person_id)].append(day_off.serialize())
631
+
632
+ except DataError:
633
+ raise WrongDateFormatException
634
+ return dict(result)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: zou
3
- Version: 0.20.72
3
+ Version: 0.20.74
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
@@ -21,8 +21,8 @@ Classifier: Topic :: Multimedia :: Graphics
21
21
  Requires-Python: >=3.10, <3.14
22
22
  License-File: LICENSE
23
23
  Requires-Dist: babel==2.17.0
24
- Requires-Dist: click==8.2.1
25
- Requires-Dist: discord.py==2.6.2
24
+ Requires-Dist: click==8.3.0
25
+ Requires-Dist: discord.py==2.6.3
26
26
  Requires-Dist: email-validator==2.3.0
27
27
  Requires-Dist: ffmpeg-python==0.2.0
28
28
  Requires-Dist: fido2==2.0.0
@@ -41,7 +41,7 @@ Requires-Dist: flask-socketio==5.5.1
41
41
  Requires-Dist: flask==3.1.2
42
42
  Requires-Dist: gazu==0.10.36
43
43
  Requires-Dist: gevent-websocket==0.10.1
44
- Requires-Dist: gevent==25.8.1
44
+ Requires-Dist: gevent==25.9.1
45
45
  Requires-Dist: gunicorn==23.0.0
46
46
  Requires-Dist: isoweek==1.3.3
47
47
  Requires-Dist: itsdangerous==2.2.0
@@ -55,8 +55,8 @@ Requires-Dist: OpenTimelineIO==0.17.0
55
55
  Requires-Dist: OpenTimelineIO-Plugins==0.17.0
56
56
  Requires-Dist: orjson==3.11.3
57
57
  Requires-Dist: pillow==11.3.0
58
- Requires-Dist: psutil==7.0.0
59
- Requires-Dist: psycopg[binary]==3.2.9
58
+ Requires-Dist: psutil==7.1.0
59
+ Requires-Dist: psycopg[binary]==3.2.10
60
60
  Requires-Dist: pyotp==2.9.0
61
61
  Requires-Dist: pysaml2==7.5.2
62
62
  Requires-Dist: python-nomad==2.1.0
@@ -65,11 +65,11 @@ Requires-Dist: python-socketio==5.13.0
65
65
  Requires-Dist: pytz==2025.2
66
66
  Requires-Dist: redis==5.2.1
67
67
  Requires-Dist: requests==2.32.5
68
- Requires-Dist: rq==2.5.0
68
+ Requires-Dist: rq==2.6.0
69
69
  Requires-Dist: semver==3.0.4
70
70
  Requires-Dist: slackclient==2.9.4
71
71
  Requires-Dist: spdx-license-list==3.27.0
72
- Requires-Dist: sqlalchemy_utils==0.41.2
72
+ Requires-Dist: sqlalchemy_utils==0.42.0
73
73
  Requires-Dist: sqlalchemy==2.0.43
74
74
  Requires-Dist: tabulate==0.9.0
75
75
  Requires-Dist: tomlkit==0.13.3
@@ -81,17 +81,17 @@ Requires-Dist: gevent; extra == "prod"
81
81
  Provides-Extra: dev
82
82
  Requires-Dist: wheel; extra == "dev"
83
83
  Provides-Extra: test
84
- Requires-Dist: fakeredis==2.31.0; extra == "test"
84
+ Requires-Dist: fakeredis==2.31.3; extra == "test"
85
85
  Requires-Dist: mixer==7.2.2; extra == "test"
86
- Requires-Dist: pytest-cov==6.2.1; extra == "test"
87
- Requires-Dist: pytest==8.4.1; extra == "test"
86
+ Requires-Dist: pytest-cov==7.0.0; extra == "test"
87
+ Requires-Dist: pytest==8.4.2; extra == "test"
88
88
  Provides-Extra: monitoring
89
89
  Requires-Dist: prometheus-flask-exporter==0.23.2; extra == "monitoring"
90
90
  Requires-Dist: pygelf==0.4.3; extra == "monitoring"
91
- Requires-Dist: sentry-sdk==2.35.1; extra == "monitoring"
91
+ Requires-Dist: sentry-sdk==2.39.0; extra == "monitoring"
92
92
  Provides-Extra: lint
93
93
  Requires-Dist: autoflake==2.3.1; extra == "lint"
94
- Requires-Dist: black==25.1.0; extra == "lint"
94
+ Requires-Dist: black==25.9.0; extra == "lint"
95
95
  Requires-Dist: pre-commit==4.3.0; extra == "lint"
96
96
  Dynamic: license-file
97
97
  Dynamic: requires-python
@@ -1,4 +1,4 @@
1
- zou/__init__.py,sha256=_WX4SHRpZcJubqL0VD24_QqZtvGGSgZ5W7m41HdXiH8,24
1
+ zou/__init__.py,sha256=XfPpnxKnarguaQf3OrkgE_t9bFlmoaJ40CFc2Edn8bo,24
2
2
  zou/cli.py,sha256=N9FyrL4TDgIiCUa-I3xIzOgiVLM14kz8_QLQ48y51oE,22767
3
3
  zou/debug.py,sha256=1fawPbkD4wn0Y9Gk0BiBFSa-CQe5agFi8R9uJYl2Uyk,520
4
4
  zou/event_stream.py,sha256=9O1PE_vDW8p3yfHJNSZ8w0ybD-660x8oGN0izgJdTjM,8575
@@ -18,7 +18,7 @@ zou/app/blueprints/breakdown/resources.py,sha256=vpE6aTdSPS3KSuGhgFIXxgYf3LXwjUj
18
18
  zou/app/blueprints/chats/__init__.py,sha256=YGmwGvddg3MgSYVIh-hmkX8t2em9_LblxBeJzFqFJD4,558
19
19
  zou/app/blueprints/chats/resources.py,sha256=ekKH8BghL4MAh-ZzT8IDPVy8cYAbCRAYwzjjkIa4DmU,5934
20
20
  zou/app/blueprints/comments/__init__.py,sha256=WqpJ7-_dK1cInGTFJAxQ7syZtPCotwq2oO20UEnk1h4,1532
21
- zou/app/blueprints/comments/resources.py,sha256=HOH3tTdNqJZx4goFr1OZqzx9xv6oS2D9TbfwHdA2tPQ,19479
21
+ zou/app/blueprints/comments/resources.py,sha256=8YLmrj02bJUMdW3G1TF1H-DFxI63EyuMuHEEyxf9RBo,19682
22
22
  zou/app/blueprints/concepts/__init__.py,sha256=sP_P4mfYvfMcgeE6MHZYP3eD0Lz0Lwit5-CFuVnA-Jg,894
23
23
  zou/app/blueprints/concepts/resources.py,sha256=hXVK0ON5vu2VDporVLrQdb5HjyxpVrXLoTq-ObLiO_Y,10114
24
24
  zou/app/blueprints/crud/__init__.py,sha256=bzjCUL2BAYuufiWcP1n83JAp1TKXEMqTeN6wMOha76M,9667
@@ -72,7 +72,7 @@ zou/app/blueprints/departments/resources.py,sha256=OrsMYJj3l5MgB27XgSRp8Mzzf1V9Y
72
72
  zou/app/blueprints/edits/__init__.py,sha256=jR6dURRPHZJcU4DVFsNghLW1iGm3CwEzs1LPbdof158,1152
73
73
  zou/app/blueprints/edits/resources.py,sha256=hRIKFFZGpCDGhCwPQhWtUGOedotrR-C6xXWPPqVaVwU,13211
74
74
  zou/app/blueprints/entities/__init__.py,sha256=v-qt2dl3s3tmK_ur-cpDHNPmcL0A6xCybczyuidjUCo,713
75
- zou/app/blueprints/entities/resources.py,sha256=UdbB8WAKcBN23zvIK2gZ5VlZvaon1fanSlaMO6XcLn0,3160
75
+ zou/app/blueprints/entities/resources.py,sha256=aeAKa903Qazyr2m_AXbEPUsFjslSFzK2aR5FnYN1voE,7155
76
76
  zou/app/blueprints/events/__init__.py,sha256=Vb0gO7Bpj_2Dpx9hhKd2SZW2qqnJrFVoDpJjFOmoMZw,394
77
77
  zou/app/blueprints/events/resources.py,sha256=ukx-WY9c7qhfYDB3BH8ni3UhQOjHFaI6xCtAKADOLWE,3182
78
78
  zou/app/blueprints/export/__init__.py,sha256=W3U93VD-dHlozFVSt_RDvP7h7K_FqgHPLA__W5H1DkE,1574
@@ -89,33 +89,33 @@ zou/app/blueprints/export/csv/task_types.py,sha256=PCEEhOQcdOJv_38i-KNxbkGeNzmQ8
89
89
  zou/app/blueprints/export/csv/tasks.py,sha256=CHFcs9S3eLIz6psE6Q6mZ-OSur_GrpBeLn98Nh9NNcA,4121
90
90
  zou/app/blueprints/export/csv/time_spents.py,sha256=yYPtilOxfQD5mBwyh9h-PbTQBpab-vMrec35tYUw4fQ,2984
91
91
  zou/app/blueprints/files/__init__.py,sha256=7Wty30JW2OXIn-tBFXOWWmPuHnsnxPpH3jNtHvvr9tY,3987
92
- zou/app/blueprints/files/resources.py,sha256=B9VcXBGG11aduY-F76A1EljqVvsZFDMIziS2wJxdEy4,69087
92
+ zou/app/blueprints/files/resources.py,sha256=G2Xal8di3LFTETT54VqOGEzXYObsln4oc3L-Lf8FpRY,84021
93
93
  zou/app/blueprints/index/__init__.py,sha256=Dh3oQiirpg8RCkfVOuk3irIjSvUvuRf0jPxE6oGubz0,828
94
- zou/app/blueprints/index/resources.py,sha256=1V43X-FPEJ-Zf4IMAdv2ZtBo2X1XFu9iCA2oTn405p0,8345
94
+ zou/app/blueprints/index/resources.py,sha256=nLLrFK-gJv0S_eDVPOS36xFes_3MjT3vGqDQHbI5kPk,14728
95
95
  zou/app/blueprints/news/__init__.py,sha256=HxBXjC15dVbotNAZ0CLf02iwUjxJr20kgf8_kT_9nwM,505
96
- zou/app/blueprints/news/resources.py,sha256=2KwNH7loiCnuxa-QnrDLhmO-GYsq28wVXYrK9MrKjv0,7298
96
+ zou/app/blueprints/news/resources.py,sha256=Zb3nelGgT4EsFyrFY6fPh-oFrjLAsmaHR3mevYYKI2M,11441
97
97
  zou/app/blueprints/persons/__init__.py,sha256=0cnHHw3K_8OEMm0qOi3wKVomSAg9IJSnVjAXabMeHks,3893
98
- zou/app/blueprints/persons/resources.py,sha256=6IwIG7YeiBnQPLeHx_xRWVkqEohD60NGr5KfQ5Gy4nY,42028
98
+ zou/app/blueprints/persons/resources.py,sha256=ooX3bIEYwEQPUeLGzbagEJpFBlxzpUAdDAJo2ICjMY4,46519
99
99
  zou/app/blueprints/playlists/__init__.py,sha256=vuEk1F3hFHsmuKWhdepMoLyOzmNKDn1YrjjfcaIz0lQ,1596
100
- zou/app/blueprints/playlists/resources.py,sha256=RwcnvyyC7pkO2Sat2agSs8CNREmHoUqsVa9vZof5sDA,17596
100
+ zou/app/blueprints/playlists/resources.py,sha256=dD50WpKkIyaDar4nfYS2GfC_5e8mncV7yFKXuh7prY4,22719
101
101
  zou/app/blueprints/previews/__init__.py,sha256=ihC6OQ9AUjnZ2JeMnjRh_tKGO0UmAjOwhZnOivc3BnQ,4460
102
102
  zou/app/blueprints/previews/resources.py,sha256=mRFVMl4fi4mptE1qMG68GAIg868HMiE7AFnQYnszSAU,53345
103
- zou/app/blueprints/projects/__init__.py,sha256=RlKWld3A3kvMfyvH6uVN7cWXOtYOqnMjwUsrBIqXndg,5634
104
- zou/app/blueprints/projects/resources.py,sha256=kYMjJB91yQWmziE8zx3j7bahpKHKzGChGX5AhHzR_Hk,50721
103
+ zou/app/blueprints/projects/__init__.py,sha256=ZX59ZmMIAI11zNy_RjLacOQnEcSJdwRIr68KwOYiB2k,5918
104
+ zou/app/blueprints/projects/resources.py,sha256=BrPwUtiMAsk8Lozph5gNHV42mj3_RIN-1iG20bp2P88,64602
105
105
  zou/app/blueprints/search/__init__.py,sha256=QCjQIY_85l_orhdEiqav_GifjReuwsjZggN3V0GeUVY,356
106
- zou/app/blueprints/search/resources.py,sha256=mV-JpMta1WOThYKkvboB8VMPG5H_vYPBz8Bx8OKNuvg,3087
106
+ zou/app/blueprints/search/resources.py,sha256=XhNewgF4y0Tj9TIZt-2b0c5Whu43YsoeLuNZG2EHFg4,4797
107
107
  zou/app/blueprints/shots/__init__.py,sha256=EcG9qmAchlucqg1M6-RqWGfuKpa5Kq6RgyLZNSsjUr4,4225
108
108
  zou/app/blueprints/shots/resources.py,sha256=jySSalQh8S8BgufYns3PXEBYkTJKU1s1LLrSWZVDiZw,53991
109
109
  zou/app/blueprints/source/__init__.py,sha256=H7K-4TDs4pc5EJvcYTYMJBHesxyqsE5-xq7J8ckOS2g,6093
110
110
  zou/app/blueprints/source/kitsu.py,sha256=4lWdqxaKDzwx-5POAIHIgZ6ODbDMOOVRxaSb_FOLcCk,5012
111
111
  zou/app/blueprints/source/otio.py,sha256=5H3DlM0fAbKIbKob787Ve0F7a70fE1ihpXga14PPZ1M,13413
112
112
  zou/app/blueprints/source/csv/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
113
- zou/app/blueprints/source/csv/assets.py,sha256=m7Q_wYuKuckbM7rS0sci0-Rxi2h_zNRi-R0PHSBJv0k,10792
113
+ zou/app/blueprints/source/csv/assets.py,sha256=ys9yJnoQUVr8S2i-u0RuwLCbucE2CWQS2uPyYQMamzM,10941
114
114
  zou/app/blueprints/source/csv/base.py,sha256=1WcvpQv5FrJvE5nyRbJ1Nqrye4OgoTEBItYbHga-Uj4,4373
115
115
  zou/app/blueprints/source/csv/casting.py,sha256=aaFK8565NWgm0_OaeY0Q2DI5T7QX3rr1Cntkv2myKLk,5614
116
116
  zou/app/blueprints/source/csv/edits.py,sha256=NnxSqjAeeS_NvKywQPYJxvlOUiPEXUHLjGKcqiG4J_M,8384
117
117
  zou/app/blueprints/source/csv/persons.py,sha256=QciJ47B3rAPyUQTAeToCUAhEai16J4s37oOErjdC_Vw,2582
118
- zou/app/blueprints/source/csv/shots.py,sha256=zmFbf8qOGiA1byp5TBLdQhnTePph5Ny3l7_LXFrktZQ,9746
118
+ zou/app/blueprints/source/csv/shots.py,sha256=UeEhq0NqALE2MVJ8NH7JUJYmf-2DwiJgr80iVImDnhI,9894
119
119
  zou/app/blueprints/source/csv/task_type_estimations.py,sha256=9UwuMIm-40J8EX_h8X8qZBVL7bDCWJK3UMGHWfd71yc,6485
120
120
  zou/app/blueprints/source/shotgun/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
121
121
  zou/app/blueprints/source/shotgun/assets.py,sha256=vuRvy0oUszImYRawrbWC2h7CHYSBvGXDJPoa6ZqpG_U,4980
@@ -135,9 +135,9 @@ zou/app/blueprints/source/shotgun/tasks.py,sha256=XXBRe9QhhS-kuZeV3HitOnpf7mmWVx
135
135
  zou/app/blueprints/source/shotgun/team.py,sha256=GF7y2BwDeFJCiidtG68icfCi-uV1-b96YKiH8KR54iE,1819
136
136
  zou/app/blueprints/source/shotgun/versions.py,sha256=8Mb35e5p3FLbbiu6AZb9tJErDKz2pPRBdIYu80Ayj7w,2292
137
137
  zou/app/blueprints/tasks/__init__.py,sha256=udtTZJVViawRAPu8dO_OoyVzQTheLYWTHeTnrC-2RDA,4331
138
- zou/app/blueprints/tasks/resources.py,sha256=a_YD9q_cKnheu9P1DX7vA5n7h2maZ-gEUrpZ4ItaBZI,55368
138
+ zou/app/blueprints/tasks/resources.py,sha256=WVNu30pj5snz1TXjla5ZzED2CkToTNAsmJF0RcYnYBk,62938
139
139
  zou/app/blueprints/user/__init__.py,sha256=H9zCHcVobC6jq6dTToXKAjnZmDA0a9gChHiIP3BcZsc,4586
140
- zou/app/blueprints/user/resources.py,sha256=dbZe68cOe15twGrUPDU49kV12K9lUbANpBZ7ATLk_d0,39749
140
+ zou/app/blueprints/user/resources.py,sha256=kyNfqkMhAQ286fQmhHV2bM5Vl9kk7Wv_52cRwxo2gpM,49508
141
141
  zou/app/file_trees/default.json,sha256=ryUrEmQYE8B_WkzCoQLgmem3N9yNwMIWx9G8p3HfG9o,2310
142
142
  zou/app/file_trees/simple.json,sha256=VBI43Z3rjQxtTpVCq3ktUgS0UB8x-aTowKL9LXuXCFI,3149
143
143
  zou/app/indexer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -200,7 +200,7 @@ zou/app/services/base_service.py,sha256=OZd0STFh-DyBBdwsmA7DMMnrwv4C8wJUbShvZ1is
200
200
  zou/app/services/breakdown_service.py,sha256=-bH1KUq9-No_OKnQtWK4XEU1w7uDPJnzWFMrKNkS1K0,27593
201
201
  zou/app/services/budget_service.py,sha256=uMU1vJr7kyxtkvMz_Nm7DyhW6qvSGYGqRHEQTxsHYCc,5468
202
202
  zou/app/services/chats_service.py,sha256=pqnT-RCltdf9Dp4t-2NtOSawGk0jyNhVPTgERZ_nYvk,8297
203
- zou/app/services/comments_service.py,sha256=F5SblD7gShjyPDx1bVbf8O7JB54beywQS54z9RsG-rk,22094
203
+ zou/app/services/comments_service.py,sha256=Y77sFEsMEf5Q9Od7RgLEmHwSB59_te-bJlX7s7syzfI,22264
204
204
  zou/app/services/concepts_service.py,sha256=uH0leb23Op48wc1bHlUV2-I97QROsIemKr80F0UwnoM,11213
205
205
  zou/app/services/custom_actions_service.py,sha256=fWISEOOdthadrxeHuacEel5Xj6msn0yWXJQDG1gzvsY,297
206
206
  zou/app/services/deletion_service.py,sha256=UPojg4oyyCKjUObfwv9nY6tD0SVDeimpv0xgbcSmyyk,17372
@@ -229,7 +229,7 @@ zou/app/services/status_automations_service.py,sha256=tVio7Sj7inhvKS4UOyRhcdpwr_
229
229
  zou/app/services/sync_service.py,sha256=iWxx1kOGEXympHmSBBQWtDZWNtumdxp8kppee0OefMo,41811
230
230
  zou/app/services/tasks_service.py,sha256=ZLUi6_XhLU_SLwERFHx4QwcXdS-ncrVH_rIl-Lt-9yE,69993
231
231
  zou/app/services/telemetry_services.py,sha256=xQm1h1t_JxSFW59zQGf4NuNdUi1UfMa_6pQ-ytRbmGA,1029
232
- zou/app/services/time_spents_service.py,sha256=8sYnepgeo4yohNFRNiEedqFfL2vuJ78GZSHOpRmp52Q,16502
232
+ zou/app/services/time_spents_service.py,sha256=h3YlhAAhfAxijmQe-32p2qZNu4h5J3lIh8fOjV0uy4Y,18394
233
233
  zou/app/services/user_service.py,sha256=inFNPsAb11odskiidXAOzNGlY5S2DvFYuYCeGGN_1lc,52990
234
234
  zou/app/stores/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
235
235
  zou/app/stores/auth_tokens_store.py,sha256=-qOJPybLHvnMOq3PWk073OW9HJwOHGhFLZeOIlX1UVw,1290
@@ -469,9 +469,9 @@ zou/remote/normalize_movie.py,sha256=zNfEY3N1UbAHZfddGONTg2Sff3ieLVWd4dfZa1dpnes
469
469
  zou/remote/playlist.py,sha256=AsDo0bgYhDcd6DfNRV6r6Jj3URWwavE2ZN3VkKRPbLU,3293
470
470
  zou/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
471
471
  zou/utils/movie.py,sha256=d67fIL9dVBKt-E_qCGXRbNNdbJaJR5sHvZeX3hf8ldE,16559
472
- zou-0.20.72.dist-info/licenses/LICENSE,sha256=dql8h4yceoMhuzlcK0TT_i-NgTFNIZsgE47Q4t3dUYI,34520
473
- zou-0.20.72.dist-info/METADATA,sha256=-iKpNLlvzUksYlXtOZK6Nr--LA2u1JHTL68nabo1zQg,6697
474
- zou-0.20.72.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
475
- zou-0.20.72.dist-info/entry_points.txt,sha256=PelQoIx3qhQ_Tmne7wrLY-1m2izuzgpwokoURwSohy4,130
476
- zou-0.20.72.dist-info/top_level.txt,sha256=4S7G_jk4MzpToeDItHGjPhHx_fRdX52zJZWTD4SL54g,4
477
- zou-0.20.72.dist-info/RECORD,,
472
+ zou-0.20.74.dist-info/licenses/LICENSE,sha256=dql8h4yceoMhuzlcK0TT_i-NgTFNIZsgE47Q4t3dUYI,34520
473
+ zou-0.20.74.dist-info/METADATA,sha256=JHbyHNZzhvDcMKA0cso9abXsl70PRr8G5WD9mdd-IPc,6698
474
+ zou-0.20.74.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
475
+ zou-0.20.74.dist-info/entry_points.txt,sha256=PelQoIx3qhQ_Tmne7wrLY-1m2izuzgpwokoURwSohy4,130
476
+ zou-0.20.74.dist-info/top_level.txt,sha256=4S7G_jk4MzpToeDItHGjPhHx_fRdX52zJZWTD4SL54g,4
477
+ zou-0.20.74.dist-info/RECORD,,
File without changes