zou 0.20.38__py3-none-any.whl → 0.20.40__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 (42) hide show
  1. zou/__init__.py +1 -1
  2. zou/app/api.py +38 -43
  3. zou/app/blueprints/crud/__init__.py +10 -0
  4. zou/app/blueprints/crud/budget.py +21 -0
  5. zou/app/blueprints/crud/budget_entry.py +15 -0
  6. zou/app/blueprints/crud/plugin.py +13 -0
  7. zou/app/blueprints/crud/salary_scale.py +73 -0
  8. zou/app/blueprints/playlists/resources.py +15 -0
  9. zou/app/blueprints/projects/__init__.py +17 -0
  10. zou/app/blueprints/projects/resources.py +402 -7
  11. zou/app/blueprints/shots/resources.py +1 -0
  12. zou/app/mixin.py +12 -1
  13. zou/app/models/budget.py +39 -0
  14. zou/app/models/budget_entry.py +65 -0
  15. zou/app/models/person.py +17 -1
  16. zou/app/models/plugin.py +21 -0
  17. zou/app/models/salary_scale.py +28 -0
  18. zou/app/services/budget_service.py +195 -0
  19. zou/app/services/comments_service.py +1 -1
  20. zou/app/services/exception.py +8 -0
  21. zou/app/services/plugins_service.py +169 -0
  22. zou/app/services/user_service.py +1 -3
  23. zou/app/utils/commands.py +51 -1
  24. zou/app/utils/fields.py +10 -0
  25. zou/app/utils/plugins.py +88 -0
  26. zou/cli.py +169 -1
  27. zou/event_stream.py +23 -5
  28. zou/migrations/versions/2762a797f1f9_add_people_salary_information.py +52 -0
  29. zou/migrations/versions/45f739ef962a_add_people_salary_scale_table.py +70 -0
  30. zou/migrations/versions/4aab1f84ad72_introduce_plugin_table.py +68 -0
  31. zou/migrations/versions/7a16258f2fab_add_currency_field_to_budgets.py +33 -0
  32. zou/migrations/versions/83e2f33a9b14_add_project_bugdet_table.py +57 -0
  33. zou/migrations/versions/8ab98c178903_add_budget_entry_table.py +123 -0
  34. zou/migrations/versions/d25118cddcaa_modify_salary_scale_model.py +133 -0
  35. zou/plugin_template/__init__.py +39 -0
  36. zou/plugin_template/routes.py +6 -0
  37. {zou-0.20.38.dist-info → zou-0.20.40.dist-info}/METADATA +7 -3
  38. {zou-0.20.38.dist-info → zou-0.20.40.dist-info}/RECORD +42 -22
  39. {zou-0.20.38.dist-info → zou-0.20.40.dist-info}/WHEEL +1 -1
  40. {zou-0.20.38.dist-info → zou-0.20.40.dist-info}/entry_points.txt +0 -0
  41. {zou-0.20.38.dist-info → zou-0.20.40.dist-info}/licenses/LICENSE +0 -0
  42. {zou-0.20.38.dist-info → zou-0.20.40.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,133 @@
1
+ """modify salary scale model
2
+
3
+ Revision ID: d25118cddcaa
4
+ Revises: 7a16258f2fab
5
+ Create Date: 2025-04-23 22:49:26.645851
6
+
7
+ """
8
+
9
+ from alembic import op
10
+ import sqlalchemy as sa
11
+ import sqlalchemy_utils
12
+
13
+
14
+ # revision identifiers, used by Alembic.
15
+ revision = "d25118cddcaa"
16
+ down_revision = "7a16258f2fab"
17
+ branch_labels = None
18
+ depends_on = None
19
+
20
+ from zou.app.models.person import POSITION_TYPES, SENIORITY_TYPES
21
+
22
+
23
+ def upgrade():
24
+ # ### commands auto generated by Alembic - please adjust! ###
25
+ with op.batch_alter_table("salary_scale", schema=None) as batch_op:
26
+ batch_op.add_column(
27
+ sa.Column(
28
+ "position",
29
+ sqlalchemy_utils.types.choice.ChoiceType(POSITION_TYPES),
30
+ nullable=False,
31
+ )
32
+ )
33
+ batch_op.add_column(
34
+ sa.Column(
35
+ "seniority",
36
+ sqlalchemy_utils.types.choice.ChoiceType(SENIORITY_TYPES),
37
+ nullable=False,
38
+ )
39
+ )
40
+ batch_op.add_column(sa.Column("salary", sa.Integer(), nullable=False))
41
+ batch_op.drop_column("mid_artist_salary")
42
+ batch_op.drop_column("junior_lead_salary")
43
+ batch_op.drop_column("mid_lead_salary")
44
+ batch_op.drop_column("mid_supervisor_salary")
45
+ batch_op.drop_column("junior_supervisor_salary")
46
+ batch_op.drop_column("senior_artist_salary")
47
+ batch_op.drop_column("senior_lead_salary")
48
+ batch_op.drop_column("junior_artist_salary")
49
+ batch_op.drop_column("senior_supervisor_salary")
50
+
51
+ # ### end Alembic commands ###
52
+
53
+
54
+ def downgrade():
55
+ # ### commands auto generated by Alembic - please adjust! ###
56
+ with op.batch_alter_table("salary_scale", schema=None) as batch_op:
57
+ batch_op.add_column(
58
+ sa.Column(
59
+ "senior_supervisor_salary",
60
+ sa.INTEGER(),
61
+ autoincrement=False,
62
+ nullable=False,
63
+ )
64
+ )
65
+ batch_op.add_column(
66
+ sa.Column(
67
+ "junior_artist_salary",
68
+ sa.INTEGER(),
69
+ autoincrement=False,
70
+ nullable=False,
71
+ )
72
+ )
73
+ batch_op.add_column(
74
+ sa.Column(
75
+ "senior_lead_salary",
76
+ sa.INTEGER(),
77
+ autoincrement=False,
78
+ nullable=False,
79
+ )
80
+ )
81
+ batch_op.add_column(
82
+ sa.Column(
83
+ "senior_artist_salary",
84
+ sa.INTEGER(),
85
+ autoincrement=False,
86
+ nullable=False,
87
+ )
88
+ )
89
+ batch_op.add_column(
90
+ sa.Column(
91
+ "junior_supervisor_salary",
92
+ sa.INTEGER(),
93
+ autoincrement=False,
94
+ nullable=False,
95
+ )
96
+ )
97
+ batch_op.add_column(
98
+ sa.Column(
99
+ "mid_supervisor_salary",
100
+ sa.INTEGER(),
101
+ autoincrement=False,
102
+ nullable=False,
103
+ )
104
+ )
105
+ batch_op.add_column(
106
+ sa.Column(
107
+ "mid_lead_salary",
108
+ sa.INTEGER(),
109
+ autoincrement=False,
110
+ nullable=False,
111
+ )
112
+ )
113
+ batch_op.add_column(
114
+ sa.Column(
115
+ "junior_lead_salary",
116
+ sa.INTEGER(),
117
+ autoincrement=False,
118
+ nullable=False,
119
+ )
120
+ )
121
+ batch_op.add_column(
122
+ sa.Column(
123
+ "mid_artist_salary",
124
+ sa.INTEGER(),
125
+ autoincrement=False,
126
+ nullable=False,
127
+ )
128
+ )
129
+ batch_op.drop_column("salary")
130
+ batch_op.drop_column("seniority")
131
+ batch_op.drop_column("position")
132
+
133
+ # ### end Alembic commands ###
@@ -0,0 +1,39 @@
1
+ from . import routes
2
+ from flask import Blueprint
3
+ from zou.app.utils.api import configure_api_from_blueprint
4
+
5
+
6
+ def init_plugin(app, manifest):
7
+ """
8
+ Init the plugin.
9
+ """
10
+ app.logger.info("Loading plugin...")
11
+ routes_tuples = [(f"/hello-world", routes.HelloWorld)]
12
+
13
+ blueprint = Blueprint(manifest["id"], manifest["id"])
14
+ configure_api_from_blueprint(blueprint, routes_tuples)
15
+ app.register_blueprint(blueprint, url_prefix=f"/{manifest['id']}")
16
+
17
+
18
+ def pre_install(manifest):
19
+ """
20
+ Pre install the plugin.
21
+ """
22
+
23
+
24
+ def post_install(manifest):
25
+ """
26
+ Post install the plugin.
27
+ """
28
+
29
+
30
+ def pre_uninstall(manifest):
31
+ """
32
+ Pre uninstall the plugin.
33
+ """
34
+
35
+
36
+ def post_uninstall(manifest):
37
+ """
38
+ Post uninstall the plugin.
39
+ """
@@ -0,0 +1,6 @@
1
+ from flask_restful import Resource
2
+
3
+
4
+ class HelloWorld(Resource):
5
+ def get(self):
6
+ return {"message": "Hello, World!"}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: zou
3
- Version: 0.20.38
3
+ Version: 0.20.40
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
@@ -42,7 +42,7 @@ Requires-Dist: flask-socketio==5.5.1
42
42
  Requires-Dist: flask==3.1.0
43
43
  Requires-Dist: gazu==0.10.31
44
44
  Requires-Dist: gevent-websocket==0.10.1
45
- Requires-Dist: gevent==25.4.1
45
+ Requires-Dist: gevent==25.4.2
46
46
  Requires-Dist: gunicorn==23.0.0
47
47
  Requires-Dist: isoweek==1.3.3
48
48
  Requires-Dist: itsdangerous==2.2.0
@@ -68,9 +68,13 @@ Requires-Dist: pytz==2025.2
68
68
  Requires-Dist: redis==5.2.1
69
69
  Requires-Dist: requests==2.32.3
70
70
  Requires-Dist: rq==2.3.2
71
+ Requires-Dist: semver==3.0.4
71
72
  Requires-Dist: slackclient==2.9.4
73
+ Requires-Dist: spdx-license-list==3.26.0
72
74
  Requires-Dist: sqlalchemy_utils==0.41.2
73
75
  Requires-Dist: sqlalchemy==2.0.40
76
+ Requires-Dist: tabulate==0.9.0
77
+ Requires-Dist: tomlkit==0.13.2
74
78
  Requires-Dist: ua-parser==1.0.1
75
79
  Requires-Dist: werkzeug==3.1.3
76
80
  Provides-Extra: prod
@@ -86,7 +90,7 @@ Requires-Dist: pytest==8.3.5; extra == "test"
86
90
  Provides-Extra: monitoring
87
91
  Requires-Dist: prometheus-flask-exporter==0.23.2; extra == "monitoring"
88
92
  Requires-Dist: pygelf==0.4.2; extra == "monitoring"
89
- Requires-Dist: sentry-sdk==2.26.1; extra == "monitoring"
93
+ Requires-Dist: sentry-sdk==2.27.0; extra == "monitoring"
90
94
  Provides-Extra: lint
91
95
  Requires-Dist: autoflake==2.3.1; extra == "lint"
92
96
  Requires-Dist: black==25.1.0; extra == "lint"
@@ -1,12 +1,12 @@
1
- zou/__init__.py,sha256=mG3KCYJoGnL--iIUuKC00s78pm3sUUzbVQLzdRbPzDY,24
2
- zou/cli.py,sha256=HuYi2Ma7SP2SD7C9d9dwpZ49BHpytKIoyJP_su9JwZY,18755
1
+ zou/__init__.py,sha256=LX2y5NhPizX5sFF0x5gfQ8yRTDJdVoERlxtXJcFvRd4,24
2
+ zou/cli.py,sha256=Mes4MNjmPFxrAMHkiJtmU4G3F9VMvFJfieOAyt2Irb8,22064
3
3
  zou/debug.py,sha256=1fawPbkD4wn0Y9Gk0BiBFSa-CQe5agFi8R9uJYl2Uyk,520
4
- zou/event_stream.py,sha256=KljIebYRa3zyfxf1eO-ITIufv754zDdejKmgXmdekwE,7567
4
+ zou/event_stream.py,sha256=DTn3v9jDw3KrR68k9jAAesJ5QGs-9j565FitM9RSkb0,8214
5
5
  zou/job_settings.py,sha256=_aqBhujt2Q8sXRWIbgbDf-LUdXRdBimdtTc-fZbiXoY,202
6
6
  zou/app/__init__.py,sha256=zGmaBGBHSS_Px34I3_WZmcse62G_AZJArjm4F6TwmRk,7100
7
- zou/app/api.py,sha256=JTB_IMVO8EOoyqx9KdRkiIix0chOLi0yGDY-verUJXA,5127
7
+ zou/app/api.py,sha256=TYWUC__i23Lbpd2ahfJ_0Ny0fGieAluT5EP_wd9cQKw,5033
8
8
  zou/app/config.py,sha256=eXVrmZf550Tk0fiN0Asfrhel0StesTDLTAYU6LdM3n4,6747
9
- zou/app/mixin.py,sha256=tvg5ErxKKW0tBweteB0iCg7Y-v4tUMd5RhQ3DoL3qNM,4894
9
+ zou/app/mixin.py,sha256=MGRrwLLRjWQtXHZ1YTaMgR5Jc8khnOrFqkvy2hzP5QY,5211
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
@@ -21,10 +21,12 @@ zou/app/blueprints/comments/__init__.py,sha256=WqpJ7-_dK1cInGTFJAxQ7syZtPCotwq2o
21
21
  zou/app/blueprints/comments/resources.py,sha256=hS5Yt8Mz7d9e19A4-yXaXO12sFugg_UzLPBxKXdtQYU,19260
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
- zou/app/blueprints/crud/__init__.py,sha256=qn7xkEh2EG0mPS_RBmm0GgYr0O1jnmI8ymXZnFWZCz8,8361
24
+ zou/app/blueprints/crud/__init__.py,sha256=HWBVCcaGm87SGK67LoR-WkQtqdUU-XogiDRNLpLXfyE,8749
25
25
  zou/app/blueprints/crud/asset_instance.py,sha256=va3mw79aPKry2m9PYAmjVePTScigewDjwD1c672f0y0,1335
26
26
  zou/app/blueprints/crud/attachment_file.py,sha256=-yur0V16BOTvpdqtNymDTHEugwRPgGtWccdXotpvYZ4,1193
27
27
  zou/app/blueprints/crud/base.py,sha256=HJcZKeNe3RVe_qEC9bSlpz4FRKhqavzrsfFLSZ8OmoY,15907
28
+ zou/app/blueprints/crud/budget.py,sha256=brWECp0pVnapk8_ycKac20KGAChHW8Km9BZsU7jIXjY,494
29
+ zou/app/blueprints/crud/budget_entry.py,sha256=4tnorbcwfFt5hopioWEX6YlhtXnNjamdsbvFx1gqReM,390
28
30
  zou/app/blueprints/crud/chat.py,sha256=Sq1r0y9ANjS113PUpwgAhnjYsxxLKMCM-a7DJ_icF00,344
29
31
  zou/app/blueprints/crud/chat_message.py,sha256=bEEUoV0sNzu5sntNS6fpLh5NC6wWiycWCXtTE-t4yG4,387
30
32
  zou/app/blueprints/crud/comments.py,sha256=tdEvRCr40gui-O4HRSleIDqa8z-eYvS-82zizCnjUaI,7902
@@ -45,10 +47,12 @@ zou/app/blueprints/crud/output_file.py,sha256=tz0NOoEUobNa8RMjl195S6uNP7PsPM-ajM
45
47
  zou/app/blueprints/crud/output_type.py,sha256=Uu7Q5iv-4SZDnxHkLk0vUE1N4k0bBUivXQUTsc58BU8,2012
46
48
  zou/app/blueprints/crud/person.py,sha256=k1EcYxD5C5p7tquAvJUpD2873-ITeF2ogMNIYRxWuDo,9427
47
49
  zou/app/blueprints/crud/playlist.py,sha256=he8iXoWnjBVXzkB_y8aGnZ6vQ_7hGSf-ALofLFoqx1U,1890
50
+ zou/app/blueprints/crud/plugin.py,sha256=azDWurAX8KUD4FXwhCpo8q0qRUVG8TG4Dg8oib1aOzc,356
48
51
  zou/app/blueprints/crud/preview_background_file.py,sha256=TRJlVQ3nGOYVkA6kxIlNrip9bjkUaknVNCIUYw8uJYk,2451
49
52
  zou/app/blueprints/crud/preview_file.py,sha256=0-1Zv62xDY5JM54P1iac1mPm-tC4NsbAEgbQZaPYLBw,3899
50
53
  zou/app/blueprints/crud/project.py,sha256=g8kWGzgWyVk7s6Y-41DRAGjIegxS36W4SbP1FMJTQDM,8428
51
54
  zou/app/blueprints/crud/project_status.py,sha256=XIiIsAfaD5sLZA6wT3UL4FZQpnoOcqPzYfFIWrp9Svs,540
55
+ zou/app/blueprints/crud/salary_scale.py,sha256=CLvY6DJhSaOZnSqzyLwrEmqRb7Hru2qDC4iB0bKM168,2436
52
56
  zou/app/blueprints/crud/schedule_item.py,sha256=1dbNKbftNG3if38Hzh1uslCAu3BE4jOqWhLV0590A90,1400
53
57
  zou/app/blueprints/crud/search_filter.py,sha256=qR0crZFfaOd2YxFcPMKhAj1SXCc-YW9Wk4UA07dDgMQ,393
54
58
  zou/app/blueprints/crud/search_filter_group.py,sha256=bdCLP1EmSatSNQXW8qYjqXQ1_dqluxUeEe7wEpcP_R0,424
@@ -89,15 +93,15 @@ zou/app/blueprints/news/resources.py,sha256=HdLq2NgfKyN2d3hIATBhH3dlk4c50I4dhhvE
89
93
  zou/app/blueprints/persons/__init__.py,sha256=0cnHHw3K_8OEMm0qOi3wKVomSAg9IJSnVjAXabMeHks,3893
90
94
  zou/app/blueprints/persons/resources.py,sha256=YS5ogqi3xbA0fKZp4c-FH4YWsf3HdBKWy4CKAF5BcY4,42184
91
95
  zou/app/blueprints/playlists/__init__.py,sha256=vuEk1F3hFHsmuKWhdepMoLyOzmNKDn1YrjjfcaIz0lQ,1596
92
- zou/app/blueprints/playlists/resources.py,sha256=alRlMHypUFErXLsEYxpFK84cdjFJ3YWwamZtW0KcwLY,17211
96
+ zou/app/blueprints/playlists/resources.py,sha256=mF3gmlWpe9YKyyKVRUXYtvTCk7OguWIMVaCN_J_JPS4,17636
93
97
  zou/app/blueprints/previews/__init__.py,sha256=ihC6OQ9AUjnZ2JeMnjRh_tKGO0UmAjOwhZnOivc3BnQ,4460
94
98
  zou/app/blueprints/previews/resources.py,sha256=uyjfW3vyE2a1PPXO8MsHP8-3jhuVKHt3oi2pYsq-ZIw,53376
95
- zou/app/blueprints/projects/__init__.py,sha256=Pn3fA5bpNFEPBzxTKJ2foV6osZFflXXSM2l2uZh3ktM,3927
96
- zou/app/blueprints/projects/resources.py,sha256=1WBS2FyaY1RSA_T-BdPnc8X9myjTJ127bMDigyoAklk,31979
99
+ zou/app/blueprints/projects/__init__.py,sha256=setMMX-aPrAUUuRJCdH2kJaYMwSMB6XbT9Tx6c63dBY,4489
100
+ zou/app/blueprints/projects/resources.py,sha256=vmIAj1h_HpB_BGge0iCKUf122ycS4Dz24qiCQsNYx18,43689
97
101
  zou/app/blueprints/search/__init__.py,sha256=QCjQIY_85l_orhdEiqav_GifjReuwsjZggN3V0GeUVY,356
98
102
  zou/app/blueprints/search/resources.py,sha256=_QgRlUuxCPgY-ip5r2lGFtXNcGSE579JsCSrVf8ajVU,3093
99
103
  zou/app/blueprints/shots/__init__.py,sha256=EcG9qmAchlucqg1M6-RqWGfuKpa5Kq6RgyLZNSsjUr4,4225
100
- zou/app/blueprints/shots/resources.py,sha256=Uv8zXKK1e23U0Sw11qjnJT7-JrirDPjS8usQKMHzix0,52366
104
+ zou/app/blueprints/shots/resources.py,sha256=xiKH9Rxyq33TBkaEexQLL7tsqyNysK0lD4xUpjWzTSQ,52367
101
105
  zou/app/blueprints/source/__init__.py,sha256=H7K-4TDs4pc5EJvcYTYMJBHesxyqsE5-xq7J8ckOS2g,6093
102
106
  zou/app/blueprints/source/kitsu.py,sha256=4lWdqxaKDzwx-5POAIHIgZ6ODbDMOOVRxaSb_FOLcCk,5012
103
107
  zou/app/blueprints/source/otio.py,sha256=nTXQEauFinPv2QBXziJW83rSrB_qzIbkFQ_qgxbJynA,13419
@@ -138,6 +142,8 @@ zou/app/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
138
142
  zou/app/models/asset_instance.py,sha256=ajfyA3qe6IjoNvd3mM8yr7wk9p4R9WO0qTfqT9ijntg,1714
139
143
  zou/app/models/attachment_file.py,sha256=26SAjgGncoUbpgyygXg8tigEBWMgaz9wfn8Kx6dLueM,1470
140
144
  zou/app/models/base.py,sha256=vZoPzdixyRbk0SoDJGEbQ9LFouBaDCA7gVSZ1o_SIhI,8808
145
+ zou/app/models/budget.py,sha256=_8TNBvCYdd0fqaTcRuXDGPql7Cw5OGMZS2bczhrKrjU,1096
146
+ zou/app/models/budget_entry.py,sha256=pNjx25PylfSXQxoEgTQpGRVYikXQuhJxWoVLJH0d5SM,1954
141
147
  zou/app/models/build_job.py,sha256=aW6KZXkyMP9d3g8fvcOYk9EAoNMw-6IleZdWbaqLLVw,1286
142
148
  zou/app/models/chat.py,sha256=u-IZB67IYlMMoPooFSKJX2kpXFdshlmRKf7UuwAcA6c,1273
143
149
  zou/app/models/chat_message.py,sha256=8w7xtoqCW_CRoGKrF4ba5w-oyAHIRh-2ms3p5sQQor4,874
@@ -159,12 +165,14 @@ zou/app/models/notification.py,sha256=1ODOymGPeB4oxgX_3WhOgIL_Lsz-JR7miDkBS6W8t_
159
165
  zou/app/models/organisation.py,sha256=R69AR1JDZSs6YeXDalmz3ewmrSMDv9Mr8AZAHn09Iu0,1365
160
166
  zou/app/models/output_file.py,sha256=hyLGrpsgrk0aisDXppRQrB7ItCwyuyw-X0ZwVAHabsA,2569
161
167
  zou/app/models/output_type.py,sha256=us_lCUCEvuP4vi_XmmOcEl1J2MtZhMX5ZheBqEFCgWA,381
162
- zou/app/models/person.py,sha256=txHmSzokaS-tET_MIjGHxhNNS8CPt-GzUPIhp5baDmU,7714
168
+ zou/app/models/person.py,sha256=xRjoPL2OayjmwUJcvbD7BJY7atxm-daIzPfEhgr5LbU,8107
163
169
  zou/app/models/playlist.py,sha256=YGgAk84u0_fdIEY02Dal4kfk8APVZvWFwWYV74qvrio,1503
170
+ zou/app/models/plugin.py,sha256=2VUKrnoQaZDMG9vTmNsk51uuUUzhN6Xhh-E9xH85Js4,711
164
171
  zou/app/models/preview_background_file.py,sha256=j8LgRmY7INnlB07hFwwB-8ssQrRC8vsb8VcpsTbt6tA,559
165
172
  zou/app/models/preview_file.py,sha256=eDPXw0QIdJze_E4kAS8SsyabrefWhIIdwuGmjss7iXo,3282
166
173
  zou/app/models/project.py,sha256=mXoLK7fEwDRGd21AoQadgV9K0AgoxYwTb5Sdf_cezlY,9203
167
174
  zou/app/models/project_status.py,sha256=pExaHH7x4Eu8xOqD3_mRRbMzjT2jJZ8rm-9jo7yUGXA,390
175
+ zou/app/models/salary_scale.py,sha256=3TaOtgJkGq2sPUAmE9nbzAqgkPzZYiSLZw-YSv-oLyc,814
168
176
  zou/app/models/schedule_item.py,sha256=coY5uDDuBoctaMICnfCzx4zT5om2E1uu4iq5MDWAPlY,1444
169
177
  zou/app/models/search_filter.py,sha256=Q699mJa3GGwFEva93Y_nHiIcx3BDht9VsAe2zeQL0FA,1242
170
178
  zou/app/models/search_filter_group.py,sha256=LGT2zn1lk3dCC-Fu7NU7VFD6MWprmBz7saQhS2ST2gA,980
@@ -184,8 +192,9 @@ zou/app/services/auth_service.py,sha256=hQpNb21xlr5EiTrXnzpFb4W4GDtglubqA2z_-YIB
184
192
  zou/app/services/backup_service.py,sha256=_ZtZp6wkcVYnHxBosziwLGdrTvsUttXGphiydq53iy8,4840
185
193
  zou/app/services/base_service.py,sha256=OZd0STFh-DyBBdwsmA7DMMnrwv4C8wJUbShvZ1isndU,1383
186
194
  zou/app/services/breakdown_service.py,sha256=-bH1KUq9-No_OKnQtWK4XEU1w7uDPJnzWFMrKNkS1K0,27593
195
+ zou/app/services/budget_service.py,sha256=r2nXDbnLVkiPclHhLy10gfct4WgDLmD5QQMdrJ9b8BQ,5067
187
196
  zou/app/services/chats_service.py,sha256=pqnT-RCltdf9Dp4t-2NtOSawGk0jyNhVPTgERZ_nYvk,8297
188
- zou/app/services/comments_service.py,sha256=rDLzB-Pma6YMrO1oFEIeI7Ccon5dXFRoZKTGbsHe3Fk,18788
197
+ zou/app/services/comments_service.py,sha256=C2XL11EAnd2ZC1A8RJ-NRgQ0QeinUkqCjggm97ZXuEE,18789
189
198
  zou/app/services/concepts_service.py,sha256=sXzMPQ5Rav-c_36CBxdDBjKNq0-gaLWFY9QZGy3jjv4,11252
190
199
  zou/app/services/custom_actions_service.py,sha256=fWISEOOdthadrxeHuacEel5Xj6msn0yWXJQDG1gzvsY,297
191
200
  zou/app/services/deletion_service.py,sha256=GdPWmw60_EmWxJohvqQ9KRcION7_PIdQgbl7nr2g2mY,17429
@@ -193,7 +202,7 @@ zou/app/services/edits_service.py,sha256=P3-eBoHSikYjtuHeulTv_WuILEe502sU4qFObfo
193
202
  zou/app/services/emails_service.py,sha256=i9EP3zw02ZteVt9OZTvkfaoU19_T4kLhRmrhIvYw2SQ,11965
194
203
  zou/app/services/entities_service.py,sha256=c-AnoHkro_Bw-6156m85qg96VpdI6Ox-sv0xL1d_TTU,16903
195
204
  zou/app/services/events_service.py,sha256=Ew-bY5hqrWLmpbVj1_xd3E2S3JtyAGzdgw2XjudTZjc,2700
196
- zou/app/services/exception.py,sha256=mcDVjWGICMIlOi4nsN2EQ7nc3V70rAC-iCmXt6kOXbA,4240
205
+ zou/app/services/exception.py,sha256=miD3RCXUgGezLvm2hqZfNqGEdodybu1TTLifPKgb5-E,4349
197
206
  zou/app/services/file_tree_service.py,sha256=8JNBDgnXtV-AmSJ3gnUGB4oSwLjPgi1WYyL0Kc98JRE,33875
198
207
  zou/app/services/files_service.py,sha256=df1_9v-vwE5HVi9XjtilTPWHuiWunvrwPyQh_IXupNM,28517
199
208
  zou/app/services/index_service.py,sha256=IaffQz_oj6GPEbuDp4a2qnSc6n-hhIcmA_LrTm3Wots,10201
@@ -202,6 +211,7 @@ zou/app/services/news_service.py,sha256=eOXkvLhOcgncI2NrgiJEccV28oxZX5CsZVqaE-l4
202
211
  zou/app/services/notifications_service.py,sha256=7GDRio_mGaRYV5BHOAdpxBZjA_LLYUfVpbwZqy1n9pI,15685
203
212
  zou/app/services/persons_service.py,sha256=HjV-su80Y2BO9l5zoBKHMNF0mDGtkWqPhEOs3nQ3nlI,16566
204
213
  zou/app/services/playlists_service.py,sha256=OCq6CD9XSzH99Eipie8gyEBo8BAGQp2wEMbYKqHS9vw,32496
214
+ zou/app/services/plugins_service.py,sha256=SW0lTQCLJTT-Gxi8pEAmtyMOF97ebOyTHUBYqZ36c88,4422
205
215
  zou/app/services/preview_files_service.py,sha256=Yk-vwzHuKTzNkEZfl9DhQRdDuRU006uwZxJ-RKajEkI,35842
206
216
  zou/app/services/projects_service.py,sha256=aIbYaFomy7OX2Pxvkf9w5qauDvkjuc9ummSGNYIpQMY,21249
207
217
  zou/app/services/scenes_service.py,sha256=iXN19HU4njPF5VtZXuUrVJ-W23ZQuQNPC3ADXltbWtU,992
@@ -213,7 +223,7 @@ zou/app/services/sync_service.py,sha256=iWxx1kOGEXympHmSBBQWtDZWNtumdxp8kppee0Oe
213
223
  zou/app/services/tasks_service.py,sha256=D-u-8W3rIg00Nqp7MuG1WSOcPANE4XXliKpVwm5NbVU,69815
214
224
  zou/app/services/telemetry_services.py,sha256=xQm1h1t_JxSFW59zQGf4NuNdUi1UfMa_6pQ-ytRbmGA,1029
215
225
  zou/app/services/time_spents_service.py,sha256=H9X-60s6oqtY9rtU-K2jKwUSljfkdGlf_9wMr3iVfIA,15158
216
- zou/app/services/user_service.py,sha256=OPQUP0N7xFpN_WIiIT8IrJKuhqY9NQD54Mlm-ABReFc,51510
226
+ zou/app/services/user_service.py,sha256=rvo_e_JkPdTqIOE3FETXlUXnuS8n0lLyovTpwApyt8I,51470
217
227
  zou/app/stores/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
218
228
  zou/app/stores/auth_tokens_store.py,sha256=-qOJPybLHvnMOq3PWk073OW9HJwOHGhFLZeOIlX1UVw,1290
219
229
  zou/app/stores/file_store.py,sha256=yLQDM6mNbj9oe0vsWdBqun7D8Dw-eSjD1yHCCftX0OI,4045
@@ -225,7 +235,7 @@ zou/app/utils/auth.py,sha256=DZfZSr1Ulge0UK3hfvOWsMo3_d7RVP_llV118u9BtUI,870
225
235
  zou/app/utils/cache.py,sha256=MRluTvGG67ybOkyzgD70B6PGKMdRyFdTc0AYy3dEQe8,1210
226
236
  zou/app/utils/chats.py,sha256=ORngxQ3IQQF0QcVFJLxJ-RaU4ksQ9-0M8cmPa0pc0Ho,4302
227
237
  zou/app/utils/colors.py,sha256=LaGV17NL_8xY0XSp8snGWz5UMwGnm0KPWXyE5BTMG6w,200
228
- zou/app/utils/commands.py,sha256=7PeiQ9YFeta4onlsho4Cabjt34SUkmy1w3KW0v_gphs,27951
238
+ zou/app/utils/commands.py,sha256=rd93hTuF-kjmIVBnpBL1uOPDfwY10wJIyu9DQKkbbNM,29785
229
239
  zou/app/utils/csv_utils.py,sha256=GiI8SeUqmIh9o1JwhZGkQXU_0K0EcPrRHYIZ8bMoYzk,1228
230
240
  zou/app/utils/date_helpers.py,sha256=jFxDPCbAasg0I1gsC72AKEbGcx5c4pLqXZkSfZ4wLdQ,4724
231
241
  zou/app/utils/dbhelpers.py,sha256=RSJuoxLexGJyME16GQCs-euFLBR0u-XAFdJ1KMSv5M8,1143
@@ -233,13 +243,14 @@ zou/app/utils/emails.py,sha256=hc4HWvVYsG1xoP3sR0Zig0sB0k0y7bNxuNxxBreN5Yg,1436
233
243
  zou/app/utils/env.py,sha256=haveriMt1rDeLOosAPMm0IblF_QpMViEsjg7BJqD-rw,711
234
244
  zou/app/utils/events.py,sha256=a_W70v0Oi4QJwJzCLVUQ8RTwjlWo-VzAT_hQZCz2HQU,3024
235
245
  zou/app/utils/fido.py,sha256=qhUWZdDCvgWqydYS4DN1SVkNwdAQkRSV9zs0Xw9O15E,536
236
- zou/app/utils/fields.py,sha256=uZbKRqeG5_SmbOu3K0W-i-KmlTI1Y7X4rlKcVnu4DzI,3475
246
+ zou/app/utils/fields.py,sha256=GTG6249Dz5pJUI1pcDPilzZqGkyPkAEyLpT3Gu2CfB0,3707
237
247
  zou/app/utils/flask.py,sha256=t0sC6yEDyzn-vCsijWzI9lpNWoxAYWfui25QtjQi_64,1822
238
248
  zou/app/utils/fs.py,sha256=EIRfKJXtHubVVi8FlDd9s9TcUok91LvRgU0l_B3Fq3w,3356
239
249
  zou/app/utils/git.py,sha256=MhmAYvEY-bXsnLvcHUW_NY5V636lJL3H-cdNrTHgLGk,114
240
250
  zou/app/utils/logs.py,sha256=lB6kyFmeANxCILUULLqGN8fuq9IY5FcbrVWmLdqWs2U,1404
241
251
  zou/app/utils/monitoring.py,sha256=XCpl0QshKD_tSok1vrIu9lB97JsvKLhvxJo3UyeqEoQ,2153
242
252
  zou/app/utils/permissions.py,sha256=Oq91C_lN6aGVCtCVUqQhijMQEjXOiMezbngpjybzzQk,3426
253
+ zou/app/utils/plugins.py,sha256=wlyG3GcbDYSlMXdKCk6u2gE_5nD5ZtDoQGvEjtt3LKg,2611
243
254
  zou/app/utils/query.py,sha256=q8ETGPAqnz0Pt9xWoQt5o7FFAVYUKVCJiWpwefIr-iU,4592
244
255
  zou/app/utils/redis.py,sha256=xXEh9pl-3qPbr89dKHvcXSUTC6hd77vv_N8PVcRRZTE,377
245
256
  zou/app/utils/remote_job.py,sha256=QPxcCWEv-NM1Q4IQawAyJAiSORwkMeOlByQb9OCShEw,2522
@@ -275,6 +286,7 @@ zou/migrations/versions/20a8ad264659_tasktypeassettypelink_.py,sha256=evXbBdw-HI
275
286
  zou/migrations/versions/20dfeb36142b_add_projecttaskstatuslink_roles_for_.py,sha256=L_BaHxyrWutZ9vJ_x3OQ6cGxicoRNlwps8wakIxrNe4,1256
276
287
  zou/migrations/versions/23122f290ca2_add_entity_chat_models.py,sha256=FPnFj84qk36m9DfiBggOIHybtUCMMquRB9j0bw3cL3A,4532
277
288
  zou/migrations/versions/269d41bfb73f_add_entity_entity_links.py,sha256=mPChSTYtDAmID9C7p-8iQB6_BXoejPoPSCFf5nDgAxk,1626
289
+ zou/migrations/versions/2762a797f1f9_add_people_salary_information.py,sha256=VqYSuWg5Y0qWp_Tw_7N-XwWjUoMqgkaca9GUMa5IEP4,1364
278
290
  zou/migrations/versions/29df910f04a4_create_unique_constraint_project_id_.py,sha256=tTm0mw9OJF7rTtDuLwvKxtzwY23tS9mQ8x40W3MqOSQ,4879
279
291
  zou/migrations/versions/29fe01a6c9eb_add_status_automation_field.py,sha256=bwmzPBTcph_9FDo3astadE8CWyNWRRlguWhQyXKIsNo,4410
280
292
  zou/migrations/versions/2adc020885fa_.py,sha256=CZoG30mi3HadEz7aBIM9rY2kAEcgxNHUj_fgWJQ_XfA,1352
@@ -299,7 +311,9 @@ zou/migrations/versions/43d0cf0ed5e7_.py,sha256=otDdiBZUqq39lPHtjuheud0-BifPtNpn
299
311
  zou/migrations/versions/443d1e78a932_.py,sha256=H1xMgzmQKNrdjDy2vRevpAh-eZHxRw_-yt1ZrLfkuuE,687
300
312
  zou/migrations/versions/45c2de366e66_.py,sha256=p9soMb1eDVZGoMxYVocX0iuPuNFfv5YkK9YClYKw9-4,814
301
313
  zou/migrations/versions/45dafbb3f4e1_for_person_contract_type_disallow_null.py,sha256=-o81RczDJ34Jxx8dECem9jemUIVDmJzPKalBavJ8NBI,4499
314
+ zou/migrations/versions/45f739ef962a_add_people_salary_scale_table.py,sha256=BwWUooGOWngD5ok0WH85HWh6QwlrJRzfsBFoYaAjHbo,2349
302
315
  zou/migrations/versions/4715c2586036_add_last_preview_file_fields.py,sha256=ez0HfwcFNpo5Gq8Jc-BxaTQ42pJM7T6VFpL1rawPGdk,1353
316
+ zou/migrations/versions/4aab1f84ad72_introduce_plugin_table.py,sha256=6fbUq13vheZjuN-o6rxrR82h67JXcPwjcQ3AgiL5vCI,2156
303
317
  zou/migrations/versions/4e3738cdc34c_.py,sha256=0THgcNbLygTZb462fHZ9SK2EBq_j6_htcPXz4CZbVkg,2636
304
318
  zou/migrations/versions/4f2398ebcd49_.py,sha256=7ZYIHv3bjppg3dqvBHe_sBatzz7etQBpuRKY-DSvR_Q,683
305
319
  zou/migrations/versions/523ee9647bee_.py,sha256=2PbD0cNflQtHd7TLxyfSQDJ8gHybUYCKcPQw_XUivfU,1262
@@ -331,17 +345,20 @@ zou/migrations/versions/7417c8eb70d8_add_for_entity_field_to_playlists.py,sha256
331
345
  zou/migrations/versions/772a5e43f05b_.py,sha256=w5QB_sW9FCZXBX48R-wKHKukjrlZn7fpYJMxZi3s7wE,1622
332
346
  zou/migrations/versions/7748d3d22925_add_columns_to_searchfilter_table_to_.py,sha256=gkkqHxo5qeyEx26Q961kPPKO3C8NmRqXOsqRVldxk0Y,2938
333
347
  zou/migrations/versions/77d6820f494f_add_reply_to_notif.py,sha256=aHyhzOO6f89M1xyLvUANjbuhOT0evr0Y5oqt32yDAcA,1035
348
+ zou/migrations/versions/7a16258f2fab_add_currency_field_to_budgets.py,sha256=6TdHgIsprwBdNaa4rOhmd9l2-rF1PiH0nT9Q66J8fCI,863
334
349
  zou/migrations/versions/7b1f765677d8_.py,sha256=4xRIeivIPFrwYgvYLYYjpiXAX_90-SNmMC-b_BKLEWk,773
335
350
  zou/migrations/versions/7bc746997e8d_add_slack_token_field_to_organisation.py,sha256=qVgHyNJSf3Go5TtijHr7YFMjGpHLAdjDyT8-UUXrpGc,705
336
351
  zou/migrations/versions/7dc79d4ed7cd_.py,sha256=4wqG5fm6EuOE_aWfoofDsxq9HXBQrmDzswAtL6BbZfA,1373
337
352
  zou/migrations/versions/818f7bda2528_.py,sha256=xt98AMxccOm0nUM48jErCBjzp9hBr4dadDY5pLmJbUs,684
338
353
  zou/migrations/versions/82e7f7a95e84_add_project_id_to_events.py,sha256=TGHJDIaIP7XDQbUJSYRiVwbltPlft8aOudxyQF9UQjQ,1708
339
354
  zou/migrations/versions/82ee682204ab_add_is_generated_from_ldap_column_to_.py,sha256=t_1Bg_qQ66JexXF1pyfE5ceI3A7vkDTZTXDcn_ZhxvY,3802
355
+ zou/migrations/versions/83e2f33a9b14_add_project_bugdet_table.py,sha256=0fCPkRMXjZBlPmRraAQjftPi59TO4VbnO0WdXuqVp1A,1638
340
356
  zou/migrations/versions/8588f254d6b8_add_archived_fields.py,sha256=MOsF5NLOhTa-aEPaGGqNni6WEmxpt2QHb-Ro6qtuXl8,949
341
357
  zou/migrations/versions/8739ae9fa28b_add_for_client_field.py,sha256=ZLxFovlRpTnPC5jIR1yvkNwB4E4x3ED_TkFHMb04zvk,990
342
358
  zou/migrations/versions/87efceb6745b_add_ready_for_to_entity.py,sha256=YDRS-cthq643fIJSmgCp_El_aM5gLyvkUqkQL_Ld9wQ,1048
343
359
  zou/migrations/versions/892b264937ec_.py,sha256=6T6WZ68teGuuI3s-GA7om9XQhbTQ70opSnGtRqBuu3E,3287
344
360
  zou/migrations/versions/8a1b4a1b7f4a_add_totp_columns_for_person.py,sha256=ZcLUDhvtE2yxqEdcmE0zwDY3hfJzzi-M377Mokzhcv4,1076
361
+ zou/migrations/versions/8ab98c178903_add_budget_entry_table.py,sha256=wfRgAwXc34FIyp4ZZbSD-QcEtduvVMmd_8RojlUr3gY,3781
345
362
  zou/migrations/versions/8e4f39e321f4_add_day_off_table.py,sha256=Mc7lEtTBhR0ZNGfxBjzFe5kxVOeG3cPLEjGDfbsjMp0,1584
346
363
  zou/migrations/versions/8e67c183bed7_add_preference_fields.py,sha256=x04wpTsjRZLEKSwQ9fw-Y5-KmtONkXRaxy6pf9z0BY4,2244
347
364
  zou/migrations/versions/8fbd40afbe5f_allow_to_set_float_values_for_.py,sha256=aJI7O6yOpuMUwZ5O2cid1hIbuBSbbiWI10aRofOLdH4,1933
@@ -388,6 +405,7 @@ zou/migrations/versions/c81f3e83bdb5_.py,sha256=eGoGIOImywjBRSqe-isbt_N_o3zK1ktr
388
405
  zou/migrations/versions/ca28796a2a62_add_is_done_field_to_the_task_model.py,sha256=adalMYr3AvOEpPR5V1nj6QxsVJUz-44VYaGnHM_tQyA,3046
389
406
  zou/migrations/versions/cf3d365de164_add_entity_version_model.py,sha256=n3k3ojRQAk0tJAOBIUgDEoZbNFERx4vs3hg5hrFm7v4,1763
390
407
  zou/migrations/versions/cf6cec6d6bf5_add_status_field_to_preview_file.py,sha256=0c8_OghAaaM0R6bKbs7MADvOkZ1sFE3SVp_nNB2ACgQ,950
408
+ zou/migrations/versions/d25118cddcaa_modify_salary_scale_model.py,sha256=hjrfR0tnxAAfVgAG_Fqi2He4PqDyoqX6pOaj5TrmEJc,3814
391
409
  zou/migrations/versions/d80267806131_task_status_new_column_is_default.py,sha256=7HtK0bfBUh9MrJIbpUgz6S-Ye_R_4DbHILpODMBVVwE,2610
392
410
  zou/migrations/versions/d8dcd5196d57_add_casting_label.py,sha256=TO4dlWblBzwAcs9Vx4fJVoMsdy2XuF7OncFn8N6BSe8,687
393
411
  zou/migrations/versions/de8a3de227ef_.py,sha256=3spU6b2kSApcMi9NomIRQGmoNtYos137krVrmdJWLCQ,1319
@@ -414,15 +432,17 @@ zou/migrations/versions/fc322f908695_.py,sha256=KT3BfEVbbvlMDvC_tP2Y96fh9v3TjxOS
414
432
  zou/migrations/versions/fee7c696166e_.py,sha256=jVvkr0uY5JPtC_I9h18DELo_eRu99RdOYMtEcaUnNXc,1839
415
433
  zou/migrations/versions/feffd3c5b806_introduce_concepts.py,sha256=wFNAtTTDHa01AdoXhRDayCVdB33stUFn6whc3opg2vQ,4774
416
434
  zou/migrations/versions/ffeed4956ab1_add_more_details_to_projects.py,sha256=cgRcg4IRW9kJ-A9-fVb5y5IXwRd74czomSVqMz3fVJo,1164
435
+ zou/plugin_template/__init__.py,sha256=f-p3Ds5rRK48camU6WCflKkpdYi9IhLPaifqluFygVw,772
436
+ zou/plugin_template/routes.py,sha256=cE4DAsLXBSPzigj2B_xWNdxYS9AG9uPhiDIgsE_okW4,128
417
437
  zou/remote/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
418
438
  zou/remote/config_payload.py,sha256=pcKy6bJak41lc8Btq0gYMpHRJuG8y2Ae7lbZDOdchNQ,1907
419
439
  zou/remote/normalize_movie.py,sha256=zNfEY3N1UbAHZfddGONTg2Sff3ieLVWd4dfZa1dpnes,2164
420
440
  zou/remote/playlist.py,sha256=AsDo0bgYhDcd6DfNRV6r6Jj3URWwavE2ZN3VkKRPbLU,3293
421
441
  zou/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
422
442
  zou/utils/movie.py,sha256=d67fIL9dVBKt-E_qCGXRbNNdbJaJR5sHvZeX3hf8ldE,16559
423
- zou-0.20.38.dist-info/licenses/LICENSE,sha256=dql8h4yceoMhuzlcK0TT_i-NgTFNIZsgE47Q4t3dUYI,34520
424
- zou-0.20.38.dist-info/METADATA,sha256=Z9sLGmUbx-alurwJ_6aamX-eoTY0fr_VAl2W9UMv77g,6694
425
- zou-0.20.38.dist-info/WHEEL,sha256=pxyMxgL8-pra_rKaQ4drOZAegBVuX-G_4nRHjjgWbmo,91
426
- zou-0.20.38.dist-info/entry_points.txt,sha256=PelQoIx3qhQ_Tmne7wrLY-1m2izuzgpwokoURwSohy4,130
427
- zou-0.20.38.dist-info/top_level.txt,sha256=4S7G_jk4MzpToeDItHGjPhHx_fRdX52zJZWTD4SL54g,4
428
- zou-0.20.38.dist-info/RECORD,,
443
+ zou-0.20.40.dist-info/licenses/LICENSE,sha256=dql8h4yceoMhuzlcK0TT_i-NgTFNIZsgE47Q4t3dUYI,34520
444
+ zou-0.20.40.dist-info/METADATA,sha256=B0-k7wF7MXU4PPR2r1VPIuDaexT5PSBKmzosFULQ9fA,6826
445
+ zou-0.20.40.dist-info/WHEEL,sha256=ck4Vq1_RXyvS4Jt6SI0Vz6fyVs4GWg7AINwpsaGEgPE,91
446
+ zou-0.20.40.dist-info/entry_points.txt,sha256=PelQoIx3qhQ_Tmne7wrLY-1m2izuzgpwokoURwSohy4,130
447
+ zou-0.20.40.dist-info/top_level.txt,sha256=4S7G_jk4MzpToeDItHGjPhHx_fRdX52zJZWTD4SL54g,4
448
+ zou-0.20.40.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (79.0.0)
2
+ Generator: setuptools (80.0.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5