fotolab 0.16.7__tar.gz → 0.16.12__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. {fotolab-0.16.7 → fotolab-0.16.12}/.pre-commit-config.yaml +3 -3
  2. {fotolab-0.16.7 → fotolab-0.16.12}/.python-version +1 -1
  3. {fotolab-0.16.7 → fotolab-0.16.12}/CHANGELOG.md +32 -0
  4. {fotolab-0.16.7 → fotolab-0.16.12}/CONTRIBUTING.md +7 -7
  5. {fotolab-0.16.7 → fotolab-0.16.12}/PKG-INFO +48 -3
  6. {fotolab-0.16.7 → fotolab-0.16.12}/Pipfile.lock +230 -208
  7. {fotolab-0.16.7 → fotolab-0.16.12}/README.md +47 -2
  8. {fotolab-0.16.7 → fotolab-0.16.12}/fotolab/__init__.py +1 -1
  9. {fotolab-0.16.7 → fotolab-0.16.12}/noxfile.py +24 -22
  10. {fotolab-0.16.7 → fotolab-0.16.12}/.coveragerc +0 -0
  11. {fotolab-0.16.7 → fotolab-0.16.12}/.gitignore +0 -0
  12. {fotolab-0.16.7 → fotolab-0.16.12}/LICENSE.md +0 -0
  13. {fotolab-0.16.7 → fotolab-0.16.12}/Pipfile +0 -0
  14. {fotolab-0.16.7 → fotolab-0.16.12}/docs/Makefile +0 -0
  15. {fotolab-0.16.7 → fotolab-0.16.12}/docs/make.bat +0 -0
  16. {fotolab-0.16.7 → fotolab-0.16.12}/docs/source/CHANGELOG.md +0 -0
  17. {fotolab-0.16.7 → fotolab-0.16.12}/docs/source/CONTRIBUTING.md +0 -0
  18. {fotolab-0.16.7 → fotolab-0.16.12}/docs/source/LICENSE.md +0 -0
  19. {fotolab-0.16.7 → fotolab-0.16.12}/docs/source/README.md +0 -0
  20. {fotolab-0.16.7 → fotolab-0.16.12}/docs/source/_static/logo.jpg +0 -0
  21. {fotolab-0.16.7 → fotolab-0.16.12}/docs/source/conf.py +0 -0
  22. {fotolab-0.16.7 → fotolab-0.16.12}/docs/source/index.rst +0 -0
  23. {fotolab-0.16.7 → fotolab-0.16.12}/fotolab/__main__.py +0 -0
  24. {fotolab-0.16.7 → fotolab-0.16.12}/fotolab/animate.py +0 -0
  25. {fotolab-0.16.7 → fotolab-0.16.12}/fotolab/auto.py +0 -0
  26. {fotolab-0.16.7 → fotolab-0.16.12}/fotolab/border.py +0 -0
  27. {fotolab-0.16.7 → fotolab-0.16.12}/fotolab/cli.py +0 -0
  28. {fotolab-0.16.7 → fotolab-0.16.12}/fotolab/contrast.py +0 -0
  29. {fotolab-0.16.7 → fotolab-0.16.12}/fotolab/env.py +0 -0
  30. {fotolab-0.16.7 → fotolab-0.16.12}/fotolab/info.py +0 -0
  31. {fotolab-0.16.7 → fotolab-0.16.12}/fotolab/montage.py +0 -0
  32. {fotolab-0.16.7 → fotolab-0.16.12}/fotolab/resize.py +0 -0
  33. {fotolab-0.16.7 → fotolab-0.16.12}/fotolab/rotate.py +0 -0
  34. {fotolab-0.16.7 → fotolab-0.16.12}/fotolab/sharpen.py +0 -0
  35. {fotolab-0.16.7 → fotolab-0.16.12}/fotolab/watermark.py +0 -0
  36. {fotolab-0.16.7 → fotolab-0.16.12}/pyproject.toml +0 -0
  37. {fotolab-0.16.7 → fotolab-0.16.12}/tests/__init__.py +0 -0
  38. {fotolab-0.16.7 → fotolab-0.16.12}/tests/conftest.py +0 -0
  39. {fotolab-0.16.7 → fotolab-0.16.12}/tests/test_env.py +0 -0
  40. {fotolab-0.16.7 → fotolab-0.16.12}/tests/test_help_flag.py +0 -0
  41. {fotolab-0.16.7 → fotolab-0.16.12}/tests/test_quiet_flag.py +0 -0
@@ -45,7 +45,7 @@ repos:
45
45
  - --py=312
46
46
 
47
47
  - repo: https://github.com/psf/black
48
- rev: 24.4.2
48
+ rev: 24.8.0
49
49
  hooks:
50
50
  - id: black
51
51
  language_version: python3.12
@@ -58,7 +58,7 @@ repos:
58
58
  - --target-version=py312
59
59
 
60
60
  - repo: https://github.com/asottile/blacken-docs
61
- rev: 1.16.0
61
+ rev: 1.18.0
62
62
  hooks:
63
63
  - id: blacken-docs
64
64
  additional_dependencies:
@@ -107,7 +107,7 @@ repos:
107
107
  - --disable=R0801,W0212
108
108
 
109
109
  - repo: https://github.com/pre-commit/mirrors-mypy
110
- rev: v1.10.1
110
+ rev: v1.11.1
111
111
  hooks:
112
112
  - id: mypy
113
113
  exclude: docs/
@@ -2,4 +2,4 @@
2
2
  3.9.19
3
3
  3.10.14
4
4
  3.11.9
5
- 3.12.3
5
+ 3.12.4
@@ -7,6 +7,38 @@ and this project adheres to [0-based versioning](https://0ver.org/).
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## v0.16.12 (2024-08-04)
11
+
12
+ - Bump deps and `pre-commit` hooks
13
+ - Hide courtesy message when updating deps
14
+ - Use extra args when running `test` session in `nox`
15
+
16
+ ## v0.16.11 (2024-07-28)
17
+
18
+ - Bump deps and `pre-commit` hooks
19
+ - Refactor `readme` nox session to capture help message correctly
20
+ - Use common helper function to install deps
21
+
22
+ ## v0.16.10 (2024-07-21)
23
+
24
+ - Bump deps
25
+ - Fix first line of comment should be in imperative mood
26
+ - Install `pipenv` in venv managed by `nox`
27
+ - Update `nox` session in contributing doc
28
+ - Use `sphinx-build` in venv managed by `nox`
29
+
30
+ ## v0.16.9 (2024-07-14)
31
+
32
+ - Add marker to all subcommand in readme
33
+ - Bump deps
34
+ - Fix `pipenv` install warning in `nox`
35
+ - Refactor `readme` session in `nox`
36
+
37
+ ## v0.16.8 (2024-07-07)
38
+
39
+ - Bump deps, `pre-commit` hooks, and Python versions for `pyenv`
40
+ - Do not reuse `venv` for all `nox` sessions
41
+
10
42
  ## v0.16.7 (2024-06-30)
11
43
 
12
44
  - Bump deps and `pre-commit` hooks
@@ -50,13 +50,13 @@ nox -l
50
50
  ```console
51
51
  ...
52
52
  * deps -> Update pre-commit hooks and deps.
53
- * lint -> Runs pre-commit linter.
54
- * test-3.8 -> Runs test.
55
- * test-3.9 -> Runs test.
56
- * test-3.10 -> Runs test.
57
- * test-3.11 -> Runs test.
58
- * test-3.12 -> Runs test.
59
- * cov -> Runs test coverage.
53
+ * lint -> Run pre-commit linter.
54
+ * test-3.8 -> Run test.
55
+ * test-3.9 -> Run test.
56
+ * test-3.10 -> Run test.
57
+ * test-3.11 -> Run test.
58
+ * test-3.12 -> Run test.
59
+ * cov -> Run test coverage.
60
60
  * doc -> Build doc with sphinx.
61
61
  * readme -> Update console help menu to readme.
62
62
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fotolab
3
- Version: 0.16.7
3
+ Version: 0.16.12
4
4
  Summary: A console program that manipulate images.
5
5
  Keywords: photography,photo
6
6
  Author-email: Kian-Meng Ang <kianmeng@cpan.org>
@@ -60,7 +60,8 @@ fotolab -h
60
60
 
61
61
  ```console
62
62
  usage: fotolab [-h] [-o] [-op] [-od OUTPUT_DIR] [-q] [-v] [-d] [-V]
63
- {animate,auto,border,contrast,info,resize,rotate,montage,sharpen,watermark,env} ...
63
+ {animate,auto,border,contrast,info,resize,rotate,montage,sharpen,watermark,env}
64
+ ...
64
65
 
65
66
  A console program to manipulate photos.
66
67
 
@@ -83,7 +84,7 @@ positional arguments:
83
84
  watermark watermark an image
84
85
  env print environment information for bug reporting
85
86
 
86
- optional arguments:
87
+ options:
87
88
  -h, --help show this help message and exit
88
89
  -o, --overwrite overwrite existing image
89
90
  -op, --open open the image using default program (default: 'False')
@@ -103,6 +104,8 @@ optional arguments:
103
104
  fotolab animate -h
104
105
  ```
105
106
 
107
+ <!--help-animate !-->
108
+
106
109
  ```console
107
110
  usage: fotolab animate [-h] [-f FORMAT] [-d DURATION] [-l LOOP]
108
111
  IMAGE_FILENAMES [IMAGE_FILENAMES ...]
@@ -119,12 +122,16 @@ optional arguments:
119
122
  -l LOOP, --loop LOOP set the loop cycle (default: '0')
120
123
  ```
121
124
 
125
+ <!--help-animate !-->
126
+
122
127
  ### fotolab auto
123
128
 
124
129
  ```console
125
130
  fotolab auto -h
126
131
  ```
127
132
 
133
+ <!--help-auto !-->
134
+
128
135
  ```console
129
136
  usage: fotolab auto [-h] IMAGE_FILENAMES [IMAGE_FILENAMES ...]
130
137
 
@@ -135,12 +142,16 @@ optional arguments:
135
142
  -h, --help show this help message and exit
136
143
  ```
137
144
 
145
+ <!--help-auto !-->
146
+
138
147
  ### fotolab border
139
148
 
140
149
  ```console
141
150
  fotolab border -h
142
151
  ```
143
152
 
153
+ <!--help-border !-->
154
+
144
155
  ```console
145
156
  usage: fotolab border [-h] [-c COLOR] [-w WIDTH] [-wt WIDTH] [-wr WIDTH]
146
157
  [-wb WIDTH] [-wl WIDTH]
@@ -165,12 +176,16 @@ optional arguments:
165
176
  set the width of left border (default: '0')
166
177
  ```
167
178
 
179
+ <!--help-border !-->
180
+
168
181
  ### fotolab contrast
169
182
 
170
183
  ```console
171
184
  fotolab contrast -h
172
185
  ```
173
186
 
187
+ <!--help-contrast !-->
188
+
174
189
  ```console
175
190
  usage: fotolab contrast [-h] [-c CUTOFF] IMAGE_FILENAMES [IMAGE_FILENAMES ...]
176
191
 
@@ -184,12 +199,16 @@ optional arguments:
184
199
  discard from histogram (default: '1')
185
200
  ```
186
201
 
202
+ <!--help-contrast !-->
203
+
187
204
  ### fotolab info
188
205
 
189
206
  ```console
190
207
  fotolab info -h
191
208
  ```
192
209
 
210
+ <!--help-info !-->
211
+
193
212
  ```console
194
213
  usage: fotolab info [-h] IMAGE_FILENAME
195
214
 
@@ -200,12 +219,16 @@ optional arguments:
200
219
  -h, --help show this help message and exit
201
220
  ```
202
221
 
222
+ <!--help-info !-->
223
+
203
224
  ### fotolab rotate
204
225
 
205
226
  ```console
206
227
  fotolab rotate -h
207
228
  ```
208
229
 
230
+ <!--help-rotate !-->
231
+
209
232
  ```console
210
233
  usage: fotolab rotate [-h] IMAGE_FILENAMES [IMAGE_FILENAMES ...]
211
234
 
@@ -216,12 +239,16 @@ optional arguments:
216
239
  -h, --help show this help message and exit
217
240
  ```
218
241
 
242
+ <!--help-rotate !-->
243
+
219
244
  ### fotolab montage
220
245
 
221
246
  ```console
222
247
  fotolab montage -h
223
248
  ```
224
249
 
250
+ <!--help-montage !-->
251
+
225
252
  ```console
226
253
  usage: fotolab montage [-h] IMAGE_FILENAMES [IMAGE_FILENAMES ...]
227
254
 
@@ -232,12 +259,16 @@ optional arguments:
232
259
  -h, --help show this help message and exit
233
260
  ```
234
261
 
262
+ <!--help-montage !-->
263
+
235
264
  ### fotolab resize
236
265
 
237
266
  ```console
238
267
  fotolab resize -h
239
268
  ```
240
269
 
270
+ <!--help-resize !-->
271
+
241
272
  ```console
242
273
  usage: fotolab resize [-h] [-wh WIDTH | -ht HEIGHT]
243
274
  IMAGE_FILENAMES [IMAGE_FILENAMES ...]
@@ -253,12 +284,16 @@ optional arguments:
253
284
  set the height of the image (default: '277')
254
285
  ```
255
286
 
287
+ <!--help-resize !-->
288
+
256
289
  ### fotolab sharpen
257
290
 
258
291
  ```console
259
292
  fotolab sharpen -h
260
293
  ```
261
294
 
295
+ <!--help-sharpen !-->
296
+
262
297
  ```console
263
298
  usage: fotolab sharpen [-h] [-r RADIUS] [-p PERCENT] [-t THRESHOLD]
264
299
  IMAGE_FILENAMES [IMAGE_FILENAMES ...]
@@ -278,12 +313,16 @@ optional arguments:
278
313
  (default: '3')
279
314
  ```
280
315
 
316
+ <!--help-sharpen !-->
317
+
281
318
  ### fotolab watermark
282
319
 
283
320
  ```console
284
321
  fotolab watermark -h
285
322
  ```
286
323
 
324
+ <!--help-watermark !-->
325
+
287
326
  ```console
288
327
  usage: fotolab watermark [-h] [-t WATERMARK_TEXT]
289
328
  [-p {top-left,top-right,bottom-left,bottom-right}]
@@ -317,12 +356,16 @@ optional arguments:
317
356
  'black')
318
357
  ```
319
358
 
359
+ <!--help-watermark !-->
360
+
320
361
  ### fotolab env
321
362
 
322
363
  ```console
323
364
  fotolab env -h
324
365
  ```
325
366
 
367
+ <!--help-env !-->
368
+
326
369
  ```console
327
370
  usage: fotolab env [-h]
328
371
 
@@ -330,6 +373,8 @@ options:
330
373
  -h, --help show this help message and exit
331
374
  ```
332
375
 
376
+ <!--help-env !-->
377
+
333
378
  ## Copyright and License
334
379
 
335
380
  Copyright (C) 2024 Kian-Meng Ang
@@ -18,79 +18,90 @@
18
18
  "default": {
19
19
  "pillow": {
20
20
  "hashes": [
21
- "sha256:048ad577748b9fa4a99a0548c64f2cb8d672d5bf2e643a739ac8faff1164238c",
22
- "sha256:048eeade4c33fdf7e08da40ef402e748df113fd0b4584e32c4af74fe78baaeb2",
23
- "sha256:0ba26351b137ca4e0db0342d5d00d2e355eb29372c05afd544ebf47c0956ffeb",
24
- "sha256:0ea2a783a2bdf2a561808fe4a7a12e9aa3799b701ba305de596bc48b8bdfce9d",
25
- "sha256:1530e8f3a4b965eb6a7785cf17a426c779333eb62c9a7d1bbcf3ffd5bf77a4aa",
26
- "sha256:16563993329b79513f59142a6b02055e10514c1a8e86dca8b48a893e33cf91e3",
27
- "sha256:19aeb96d43902f0a783946a0a87dbdad5c84c936025b8419da0a0cd7724356b1",
28
- "sha256:1a1d1915db1a4fdb2754b9de292642a39a7fb28f1736699527bb649484fb966a",
29
- "sha256:1b87bd9d81d179bd8ab871603bd80d8645729939f90b71e62914e816a76fc6bd",
30
- "sha256:1dfc94946bc60ea375cc39cff0b8da6c7e5f8fcdc1d946beb8da5c216156ddd8",
31
- "sha256:2034f6759a722da3a3dbd91a81148cf884e91d1b747992ca288ab88c1de15999",
32
- "sha256:261ddb7ca91fcf71757979534fb4c128448b5b4c55cb6152d280312062f69599",
33
- "sha256:2ed854e716a89b1afcedea551cd85f2eb2a807613752ab997b9974aaa0d56936",
34
- "sha256:3102045a10945173d38336f6e71a8dc71bcaeed55c3123ad4af82c52807b9375",
35
- "sha256:339894035d0ede518b16073bdc2feef4c991ee991a29774b33e515f1d308e08d",
36
- "sha256:412444afb8c4c7a6cc11a47dade32982439925537e483be7c0ae0cf96c4f6a0b",
37
- "sha256:4203efca580f0dd6f882ca211f923168548f7ba334c189e9eab1178ab840bf60",
38
- "sha256:45ebc7b45406febf07fef35d856f0293a92e7417ae7933207e90bf9090b70572",
39
- "sha256:4b5ec25d8b17217d635f8935dbc1b9aa5907962fae29dff220f2659487891cd3",
40
- "sha256:4c8e73e99da7db1b4cad7f8d682cf6abad7844da39834c288fbfa394a47bbced",
41
- "sha256:4e6f7d1c414191c1199f8996d3f2282b9ebea0945693fb67392c75a3a320941f",
42
- "sha256:4eaa22f0d22b1a7e93ff0a596d57fdede2e550aecffb5a1ef1106aaece48e96b",
43
- "sha256:50b8eae8f7334ec826d6eeffaeeb00e36b5e24aa0b9df322c247539714c6df19",
44
- "sha256:50fd3f6b26e3441ae07b7c979309638b72abc1a25da31a81a7fbd9495713ef4f",
45
- "sha256:51243f1ed5161b9945011a7360e997729776f6e5d7005ba0c6879267d4c5139d",
46
- "sha256:5d512aafa1d32efa014fa041d38868fda85028e3f930a96f85d49c7d8ddc0383",
47
- "sha256:5f77cf66e96ae734717d341c145c5949c63180842a545c47a0ce7ae52ca83795",
48
- "sha256:6b02471b72526ab8a18c39cb7967b72d194ec53c1fd0a70b050565a0f366d355",
49
- "sha256:6fb1b30043271ec92dc65f6d9f0b7a830c210b8a96423074b15c7bc999975f57",
50
- "sha256:7161ec49ef0800947dc5570f86568a7bb36fa97dd09e9827dc02b718c5643f09",
51
- "sha256:72d622d262e463dfb7595202d229f5f3ab4b852289a1cd09650362db23b9eb0b",
52
- "sha256:74d28c17412d9caa1066f7a31df8403ec23d5268ba46cd0ad2c50fb82ae40462",
53
- "sha256:78618cdbccaa74d3f88d0ad6cb8ac3007f1a6fa5c6f19af64b55ca170bfa1edf",
54
- "sha256:793b4e24db2e8742ca6423d3fde8396db336698c55cd34b660663ee9e45ed37f",
55
- "sha256:798232c92e7665fe82ac085f9d8e8ca98826f8e27859d9a96b41d519ecd2e49a",
56
- "sha256:81d09caa7b27ef4e61cb7d8fbf1714f5aec1c6b6c5270ee53504981e6e9121ad",
57
- "sha256:8ab74c06ffdab957d7670c2a5a6e1a70181cd10b727cd788c4dd9005b6a8acd9",
58
- "sha256:8eb0908e954d093b02a543dc963984d6e99ad2b5e36503d8a0aaf040505f747d",
59
- "sha256:90b9e29824800e90c84e4022dd5cc16eb2d9605ee13f05d47641eb183cd73d45",
60
- "sha256:9797a6c8fe16f25749b371c02e2ade0efb51155e767a971c61734b1bf6293994",
61
- "sha256:9d2455fbf44c914840c793e89aa82d0e1763a14253a000743719ae5946814b2d",
62
- "sha256:9d3bea1c75f8c53ee4d505c3e67d8c158ad4df0d83170605b50b64025917f338",
63
- "sha256:9e2ec1e921fd07c7cda7962bad283acc2f2a9ccc1b971ee4b216b75fad6f0463",
64
- "sha256:9e91179a242bbc99be65e139e30690e081fe6cb91a8e77faf4c409653de39451",
65
- "sha256:a0eaa93d054751ee9964afa21c06247779b90440ca41d184aeb5d410f20ff591",
66
- "sha256:a2c405445c79c3f5a124573a051062300936b0281fee57637e706453e452746c",
67
- "sha256:aa7e402ce11f0885305bfb6afb3434b3cd8f53b563ac065452d9d5654c7b86fd",
68
- "sha256:aff76a55a8aa8364d25400a210a65ff59d0168e0b4285ba6bf2bd83cf675ba32",
69
- "sha256:b09b86b27a064c9624d0a6c54da01c1beaf5b6cadfa609cf63789b1d08a797b9",
70
- "sha256:b14f16f94cbc61215115b9b1236f9c18403c15dd3c52cf629072afa9d54c1cbf",
71
- "sha256:b50811d664d392f02f7761621303eba9d1b056fb1868c8cdf4231279645c25f5",
72
- "sha256:b7bc2176354defba3edc2b9a777744462da2f8e921fbaf61e52acb95bafa9828",
73
- "sha256:c78e1b00a87ce43bb37642c0812315b411e856a905d58d597750eb79802aaaa3",
74
- "sha256:c83341b89884e2b2e55886e8fbbf37c3fa5efd6c8907124aeb72f285ae5696e5",
75
- "sha256:ca2870d5d10d8726a27396d3ca4cf7976cec0f3cb706debe88e3a5bd4610f7d2",
76
- "sha256:ccce24b7ad89adb5a1e34a6ba96ac2530046763912806ad4c247356a8f33a67b",
77
- "sha256:cd5e14fbf22a87321b24c88669aad3a51ec052eb145315b3da3b7e3cc105b9a2",
78
- "sha256:ce49c67f4ea0609933d01c0731b34b8695a7a748d6c8d186f95e7d085d2fe475",
79
- "sha256:d33891be6df59d93df4d846640f0e46f1a807339f09e79a8040bc887bdcd7ed3",
80
- "sha256:d3b2348a78bc939b4fed6552abfd2e7988e0f81443ef3911a4b8498ca084f6eb",
81
- "sha256:d886f5d353333b4771d21267c7ecc75b710f1a73d72d03ca06df49b09015a9ef",
82
- "sha256:d93480005693d247f8346bc8ee28c72a2191bdf1f6b5db469c096c0c867ac015",
83
- "sha256:dc1a390a82755a8c26c9964d457d4c9cbec5405896cba94cf51f36ea0d855002",
84
- "sha256:dd78700f5788ae180b5ee8902c6aea5a5726bac7c364b202b4b3e3ba2d293170",
85
- "sha256:e46f38133e5a060d46bd630faa4d9fa0202377495df1f068a8299fd78c84de84",
86
- "sha256:e4b878386c4bf293578b48fc570b84ecfe477d3b77ba39a6e87150af77f40c57",
87
- "sha256:f0d0591a0aeaefdaf9a5e545e7485f89910c977087e7de2b6c388aec32011e9f",
88
- "sha256:fdcbb4068117dfd9ce0138d068ac512843c52295ed996ae6dd1faf537b6dbc27",
89
- "sha256:ff61bfd9253c3915e6d41c651d5f962da23eda633cf02262990094a18a55371a"
21
+ "sha256:02a2be69f9c9b8c1e97cf2713e789d4e398c751ecfd9967c18d0ce304efbf885",
22
+ "sha256:030abdbe43ee02e0de642aee345efa443740aa4d828bfe8e2eb11922ea6a21ea",
23
+ "sha256:06b2f7898047ae93fad74467ec3d28fe84f7831370e3c258afa533f81ef7f3df",
24
+ "sha256:0755ffd4a0c6f267cccbae2e9903d95477ca2f77c4fcf3a3a09570001856c8a5",
25
+ "sha256:0a9ec697746f268507404647e531e92889890a087e03681a3606d9b920fbee3c",
26
+ "sha256:0ae24a547e8b711ccaaf99c9ae3cd975470e1a30caa80a6aaee9a2f19c05701d",
27
+ "sha256:134ace6dc392116566980ee7436477d844520a26a4b1bd4053f6f47d096997fd",
28
+ "sha256:166c1cd4d24309b30d61f79f4a9114b7b2313d7450912277855ff5dfd7cd4a06",
29
+ "sha256:1b5dea9831a90e9d0721ec417a80d4cbd7022093ac38a568db2dd78363b00908",
30
+ "sha256:1d846aea995ad352d4bdcc847535bd56e0fd88d36829d2c90be880ef1ee4668a",
31
+ "sha256:1ef61f5dd14c300786318482456481463b9d6b91ebe5ef12f405afbba77ed0be",
32
+ "sha256:297e388da6e248c98bc4a02e018966af0c5f92dfacf5a5ca22fa01cb3179bca0",
33
+ "sha256:298478fe4f77a4408895605f3482b6cc6222c018b2ce565c2b6b9c354ac3229b",
34
+ "sha256:29dbdc4207642ea6aad70fbde1a9338753d33fb23ed6956e706936706f52dd80",
35
+ "sha256:2db98790afc70118bd0255c2eeb465e9767ecf1f3c25f9a1abb8ffc8cfd1fe0a",
36
+ "sha256:32cda9e3d601a52baccb2856b8ea1fc213c90b340c542dcef77140dfa3278a9e",
37
+ "sha256:37fb69d905be665f68f28a8bba3c6d3223c8efe1edf14cc4cfa06c241f8c81d9",
38
+ "sha256:416d3a5d0e8cfe4f27f574362435bc9bae57f679a7158e0096ad2beb427b8696",
39
+ "sha256:43efea75eb06b95d1631cb784aa40156177bf9dd5b4b03ff38979e048258bc6b",
40
+ "sha256:4b35b21b819ac1dbd1233317adeecd63495f6babf21b7b2512d244ff6c6ce309",
41
+ "sha256:4d9667937cfa347525b319ae34375c37b9ee6b525440f3ef48542fcf66f2731e",
42
+ "sha256:5161eef006d335e46895297f642341111945e2c1c899eb406882a6c61a4357ab",
43
+ "sha256:543f3dc61c18dafb755773efc89aae60d06b6596a63914107f75459cf984164d",
44
+ "sha256:551d3fd6e9dc15e4c1eb6fc4ba2b39c0c7933fa113b220057a34f4bb3268a060",
45
+ "sha256:59291fb29317122398786c2d44427bbd1a6d7ff54017075b22be9d21aa59bd8d",
46
+ "sha256:5b001114dd152cfd6b23befeb28d7aee43553e2402c9f159807bf55f33af8a8d",
47
+ "sha256:5b4815f2e65b30f5fbae9dfffa8636d992d49705723fe86a3661806e069352d4",
48
+ "sha256:5dc6761a6efc781e6a1544206f22c80c3af4c8cf461206d46a1e6006e4429ff3",
49
+ "sha256:5e84b6cc6a4a3d76c153a6b19270b3526a5a8ed6b09501d3af891daa2a9de7d6",
50
+ "sha256:6209bb41dc692ddfee4942517c19ee81b86c864b626dbfca272ec0f7cff5d9fb",
51
+ "sha256:673655af3eadf4df6b5457033f086e90299fdd7a47983a13827acf7459c15d94",
52
+ "sha256:6c762a5b0997f5659a5ef2266abc1d8851ad7749ad9a6a5506eb23d314e4f46b",
53
+ "sha256:7086cc1d5eebb91ad24ded9f58bec6c688e9f0ed7eb3dbbf1e4800280a896496",
54
+ "sha256:73664fe514b34c8f02452ffb73b7a92c6774e39a647087f83d67f010eb9a0cf0",
55
+ "sha256:76a911dfe51a36041f2e756b00f96ed84677cdeb75d25c767f296c1c1eda1319",
56
+ "sha256:780c072c2e11c9b2c7ca37f9a2ee8ba66f44367ac3e5c7832afcfe5104fd6d1b",
57
+ "sha256:7928ecbf1ece13956b95d9cbcfc77137652b02763ba384d9ab508099a2eca856",
58
+ "sha256:7970285ab628a3779aecc35823296a7869f889b8329c16ad5a71e4901a3dc4ef",
59
+ "sha256:7a8d4bade9952ea9a77d0c3e49cbd8b2890a399422258a77f357b9cc9be8d680",
60
+ "sha256:7c1ee6f42250df403c5f103cbd2768a28fe1a0ea1f0f03fe151c8741e1469c8b",
61
+ "sha256:7dfecdbad5c301d7b5bde160150b4db4c659cee2b69589705b6f8a0c509d9f42",
62
+ "sha256:812f7342b0eee081eaec84d91423d1b4650bb9828eb53d8511bcef8ce5aecf1e",
63
+ "sha256:866b6942a92f56300012f5fbac71f2d610312ee65e22f1aa2609e491284e5597",
64
+ "sha256:86dcb5a1eb778d8b25659d5e4341269e8590ad6b4e8b44d9f4b07f8d136c414a",
65
+ "sha256:87dd88ded2e6d74d31e1e0a99a726a6765cda32d00ba72dc37f0651f306daaa8",
66
+ "sha256:8bc1a764ed8c957a2e9cacf97c8b2b053b70307cf2996aafd70e91a082e70df3",
67
+ "sha256:8d4d5063501b6dd4024b8ac2f04962d661222d120381272deea52e3fc52d3736",
68
+ "sha256:8f0aef4ef59694b12cadee839e2ba6afeab89c0f39a3adc02ed51d109117b8da",
69
+ "sha256:930044bb7679ab003b14023138b50181899da3f25de50e9dbee23b61b4de2126",
70
+ "sha256:950be4d8ba92aca4b2bb0741285a46bfae3ca699ef913ec8416c1b78eadd64cd",
71
+ "sha256:961a7293b2457b405967af9c77dcaa43cc1a8cd50d23c532e62d48ab6cdd56f5",
72
+ "sha256:9b885f89040bb8c4a1573566bbb2f44f5c505ef6e74cec7ab9068c900047f04b",
73
+ "sha256:9f4727572e2918acaa9077c919cbbeb73bd2b3ebcfe033b72f858fc9fbef0026",
74
+ "sha256:a02364621fe369e06200d4a16558e056fe2805d3468350df3aef21e00d26214b",
75
+ "sha256:a985e028fc183bf12a77a8bbf36318db4238a3ded7fa9df1b9a133f1cb79f8fc",
76
+ "sha256:ac1452d2fbe4978c2eec89fb5a23b8387aba707ac72810d9490118817d9c0b46",
77
+ "sha256:b15e02e9bb4c21e39876698abf233c8c579127986f8207200bc8a8f6bb27acf2",
78
+ "sha256:b2724fdb354a868ddf9a880cb84d102da914e99119211ef7ecbdc613b8c96b3c",
79
+ "sha256:bbc527b519bd3aa9d7f429d152fea69f9ad37c95f0b02aebddff592688998abe",
80
+ "sha256:bcd5e41a859bf2e84fdc42f4edb7d9aba0a13d29a2abadccafad99de3feff984",
81
+ "sha256:bd2880a07482090a3bcb01f4265f1936a903d70bc740bfcb1fd4e8a2ffe5cf5a",
82
+ "sha256:bee197b30783295d2eb680b311af15a20a8b24024a19c3a26431ff83eb8d1f70",
83
+ "sha256:bf2342ac639c4cf38799a44950bbc2dfcb685f052b9e262f446482afaf4bffca",
84
+ "sha256:c76e5786951e72ed3686e122d14c5d7012f16c8303a674d18cdcd6d89557fc5b",
85
+ "sha256:cbed61494057c0f83b83eb3a310f0bf774b09513307c434d4366ed64f4128a91",
86
+ "sha256:cfdd747216947628af7b259d274771d84db2268ca062dd5faf373639d00113a3",
87
+ "sha256:d7480af14364494365e89d6fddc510a13e5a2c3584cb19ef65415ca57252fb84",
88
+ "sha256:dbc6ae66518ab3c5847659e9988c3b60dc94ffb48ef9168656e0019a93dbf8a1",
89
+ "sha256:dc3e2db6ba09ffd7d02ae9141cfa0ae23393ee7687248d46a7507b75d610f4f5",
90
+ "sha256:dfe91cb65544a1321e631e696759491ae04a2ea11d36715eca01ce07284738be",
91
+ "sha256:e4d49b85c4348ea0b31ea63bc75a9f3857869174e2bf17e7aba02945cd218e6f",
92
+ "sha256:e4db64794ccdf6cb83a59d73405f63adbe2a1887012e308828596100a0b2f6cc",
93
+ "sha256:e553cad5179a66ba15bb18b353a19020e73a7921296a7979c4a2b7f6a5cd57f9",
94
+ "sha256:e88d5e6ad0d026fba7bdab8c3f225a69f063f116462c49892b0149e21b6c0a0e",
95
+ "sha256:ecd85a8d3e79cd7158dec1c9e5808e821feea088e2f69a974db5edf84dc53141",
96
+ "sha256:f5b92f4d70791b4a67157321c4e8225d60b119c5cc9aee8ecf153aace4aad4ef",
97
+ "sha256:f5f0c3e969c8f12dd2bb7e0b15d5c468b51e5017e01e2e867335c81903046a22",
98
+ "sha256:f7baece4ce06bade126fb84b8af1c33439a76d8a6fd818970215e0560ca28c27",
99
+ "sha256:ff25afb18123cea58a591ea0244b92eb1e61a1fd497bf6d6384f09bc3262ec3e",
100
+ "sha256:ff337c552345e95702c5fde3158acb0625111017d0e5f24bf3acdb9cc16b90d1"
90
101
  ],
91
102
  "index": "pypi",
92
103
  "markers": "python_version >= '3.8'",
93
- "version": "==10.3.0"
104
+ "version": "==10.4.0"
94
105
  }
95
106
  },
96
107
  "develop": {
@@ -128,11 +139,11 @@
128
139
  },
129
140
  "certifi": {
130
141
  "hashes": [
131
- "sha256:3cd43f1c6fa7dedc5899d69d3ad0398fd018ad1a17fba83ddaf78aa46c747516",
132
- "sha256:ddc6c8ce995e6987e7faf5e3f1b02b302836a0e5d98ece18392cb1a36c72ad56"
142
+ "sha256:5a1e7645bc0ec61a09e26c36f6106dd4cf40c6db3a1fb6352b0244e7fb057c7b",
143
+ "sha256:c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90"
133
144
  ],
134
145
  "markers": "python_version >= '3.6'",
135
- "version": "==2024.6.2"
146
+ "version": "==2024.7.4"
136
147
  },
137
148
  "cfgv": {
138
149
  "hashes": [
@@ -251,61 +262,61 @@
251
262
  "toml"
252
263
  ],
253
264
  "hashes": [
254
- "sha256:018a12985185038a5b2bcafab04ab833a9a0f2c59995b3cec07e10074c78635f",
255
- "sha256:02ff6e898197cc1e9fa375581382b72498eb2e6d5fc0b53f03e496cfee3fac6d",
256
- "sha256:042183de01f8b6d531e10c197f7f0315a61e8d805ab29c5f7b51a01d62782747",
257
- "sha256:1014fbf665fef86cdfd6cb5b7371496ce35e4d2a00cda501cf9f5b9e6fced69f",
258
- "sha256:1137f46adb28e3813dec8c01fefadcb8c614f33576f672962e323b5128d9a68d",
259
- "sha256:16852febd96acd953b0d55fc842ce2dac1710f26729b31c80b940b9afcd9896f",
260
- "sha256:2174e7c23e0a454ffe12267a10732c273243b4f2d50d07544a91198f05c48f47",
261
- "sha256:2214ee920787d85db1b6a0bd9da5f8503ccc8fcd5814d90796c2f2493a2f4d2e",
262
- "sha256:3257fdd8e574805f27bb5342b77bc65578e98cbc004a92232106344053f319ba",
263
- "sha256:3684bc2ff328f935981847082ba4fdc950d58906a40eafa93510d1b54c08a66c",
264
- "sha256:3a6612c99081d8d6134005b1354191e103ec9705d7ba2754e848211ac8cacc6b",
265
- "sha256:3d7564cc09dd91b5a6001754a5b3c6ecc4aba6323baf33a12bd751036c998be4",
266
- "sha256:44da56a2589b684813f86d07597fdf8a9c6ce77f58976727329272f5a01f99f7",
267
- "sha256:5013ed890dc917cef2c9f765c4c6a8ae9df983cd60dbb635df8ed9f4ebc9f555",
268
- "sha256:54317c2b806354cbb2dc7ac27e2b93f97096912cc16b18289c5d4e44fc663233",
269
- "sha256:56b4eafa21c6c175b3ede004ca12c653a88b6f922494b023aeb1e836df953ace",
270
- "sha256:581ea96f92bf71a5ec0974001f900db495488434a6928a2ca7f01eee20c23805",
271
- "sha256:5cd64adedf3be66f8ccee418473c2916492d53cbafbfcff851cbec5a8454b136",
272
- "sha256:5df54843b88901fdc2f598ac06737f03d71168fd1175728054c8f5a2739ac3e4",
273
- "sha256:65e528e2e921ba8fd67d9055e6b9f9e34b21ebd6768ae1c1723f4ea6ace1234d",
274
- "sha256:6aae5cce399a0f065da65c7bb1e8abd5c7a3043da9dceb429ebe1b289bc07806",
275
- "sha256:6cfb5a4f556bb51aba274588200a46e4dd6b505fb1a5f8c5ae408222eb416f99",
276
- "sha256:7076b4b3a5f6d2b5d7f1185fde25b1e54eb66e647a1dfef0e2c2bfaf9b4c88c8",
277
- "sha256:73ca8fbc5bc622e54627314c1a6f1dfdd8db69788f3443e752c215f29fa87a0b",
278
- "sha256:79b356f3dd5b26f3ad23b35c75dbdaf1f9e2450b6bcefc6d0825ea0aa3f86ca5",
279
- "sha256:7a892be37ca35eb5019ec85402c3371b0f7cda5ab5056023a7f13da0961e60da",
280
- "sha256:8192794d120167e2a64721d88dbd688584675e86e15d0569599257566dec9bf0",
281
- "sha256:820bc841faa502e727a48311948e0461132a9c8baa42f6b2b84a29ced24cc078",
282
- "sha256:8f894208794b164e6bd4bba61fc98bf6b06be4d390cf2daacfa6eca0a6d2bb4f",
283
- "sha256:a04e990a2a41740b02d6182b498ee9796cf60eefe40cf859b016650147908029",
284
- "sha256:a44963520b069e12789d0faea4e9fdb1e410cdc4aab89d94f7f55cbb7fef0353",
285
- "sha256:a6bb74ed465d5fb204b2ec41d79bcd28afccf817de721e8a807d5141c3426638",
286
- "sha256:ab73b35e8d109bffbda9a3e91c64e29fe26e03e49addf5b43d85fc426dde11f9",
287
- "sha256:aea072a941b033813f5e4814541fc265a5c12ed9720daef11ca516aeacd3bd7f",
288
- "sha256:b1ccf5e728ccf83acd313c89f07c22d70d6c375a9c6f339233dcf792094bcbf7",
289
- "sha256:b385d49609f8e9efc885790a5a0e89f2e3ae042cdf12958b6034cc442de428d3",
290
- "sha256:b3d45ff86efb129c599a3b287ae2e44c1e281ae0f9a9bad0edc202179bcc3a2e",
291
- "sha256:b4a474f799456e0eb46d78ab07303286a84a3140e9700b9e154cfebc8f527016",
292
- "sha256:b95c3a8cb0463ba9f77383d0fa8c9194cf91f64445a63fc26fb2327e1e1eb088",
293
- "sha256:c5986ee7ea0795a4095ac4d113cbb3448601efca7f158ec7f7087a6c705304e4",
294
- "sha256:cdd31315fc20868c194130de9ee6bfd99755cc9565edff98ecc12585b90be882",
295
- "sha256:cef4649ec906ea7ea5e9e796e68b987f83fa9a718514fe147f538cfeda76d7a7",
296
- "sha256:d05c16cf4b4c2fc880cb12ba4c9b526e9e5d5bb1d81313d4d732a5b9fe2b9d53",
297
- "sha256:d2e344d6adc8ef81c5a233d3a57b3c7d5181f40e79e05e1c143da143ccb6377d",
298
- "sha256:d45d3cbd94159c468b9b8c5a556e3f6b81a8d1af2a92b77320e887c3e7a5d080",
299
- "sha256:db14f552ac38f10758ad14dd7b983dbab424e731588d300c7db25b6f89e335b5",
300
- "sha256:dbc5958cb471e5a5af41b0ddaea96a37e74ed289535e8deca404811f6cb0bc3d",
301
- "sha256:ddbd2f9713a79e8e7242d7c51f1929611e991d855f414ca9996c20e44a895f7c",
302
- "sha256:e16f3d6b491c48c5ae726308e6ab1e18ee830b4cdd6913f2d7f77354b33f91c8",
303
- "sha256:e2afe743289273209c992075a5a4913e8d007d569a406ffed0bd080ea02b0633",
304
- "sha256:e564c2cf45d2f44a9da56f4e3a26b2236504a496eb4cb0ca7221cd4cc7a9aca9",
305
- "sha256:ed550e7442f278af76d9d65af48069f1fb84c9f745ae249c1a183c1e9d1b025c"
265
+ "sha256:0086cd4fc71b7d485ac93ca4239c8f75732c2ae3ba83f6be1c9be59d9e2c6382",
266
+ "sha256:01c322ef2bbe15057bc4bf132b525b7e3f7206f071799eb8aa6ad1940bcf5fb1",
267
+ "sha256:03cafe82c1b32b770a29fd6de923625ccac3185a54a5e66606da26d105f37dac",
268
+ "sha256:044a0985a4f25b335882b0966625270a8d9db3d3409ddc49a4eb00b0ef5e8cee",
269
+ "sha256:07ed352205574aad067482e53dd606926afebcb5590653121063fbf4e2175166",
270
+ "sha256:0d1b923fc4a40c5832be4f35a5dab0e5ff89cddf83bb4174499e02ea089daf57",
271
+ "sha256:0e7b27d04131c46e6894f23a4ae186a6a2207209a05df5b6ad4caee6d54a222c",
272
+ "sha256:1fad32ee9b27350687035cb5fdf9145bc9cf0a094a9577d43e909948ebcfa27b",
273
+ "sha256:289cc803fa1dc901f84701ac10c9ee873619320f2f9aff38794db4a4a0268d51",
274
+ "sha256:3c59105f8d58ce500f348c5b56163a4113a440dad6daa2294b5052a10db866da",
275
+ "sha256:46c3d091059ad0b9c59d1034de74a7f36dcfa7f6d3bde782c49deb42438f2450",
276
+ "sha256:482855914928c8175735a2a59c8dc5806cf7d8f032e4820d52e845d1f731dca2",
277
+ "sha256:49c76cdfa13015c4560702574bad67f0e15ca5a2872c6a125f6327ead2b731dd",
278
+ "sha256:4b03741e70fb811d1a9a1d75355cf391f274ed85847f4b78e35459899f57af4d",
279
+ "sha256:4bea27c4269234e06f621f3fac3925f56ff34bc14521484b8f66a580aacc2e7d",
280
+ "sha256:4d5fae0a22dc86259dee66f2cc6c1d3e490c4a1214d7daa2a93d07491c5c04b6",
281
+ "sha256:543ef9179bc55edfd895154a51792b01c017c87af0ebaae092720152e19e42ca",
282
+ "sha256:54dece71673b3187c86226c3ca793c5f891f9fc3d8aa183f2e3653da18566169",
283
+ "sha256:6379688fb4cfa921ae349c76eb1a9ab26b65f32b03d46bb0eed841fd4cb6afb1",
284
+ "sha256:65fa405b837060db569a61ec368b74688f429b32fa47a8929a7a2f9b47183713",
285
+ "sha256:6616d1c9bf1e3faea78711ee42a8b972367d82ceae233ec0ac61cc7fec09fa6b",
286
+ "sha256:6fe885135c8a479d3e37a7aae61cbd3a0fb2deccb4dda3c25f92a49189f766d6",
287
+ "sha256:7221f9ac9dad9492cecab6f676b3eaf9185141539d5c9689d13fd6b0d7de840c",
288
+ "sha256:76d5f82213aa78098b9b964ea89de4617e70e0d43e97900c2778a50856dac605",
289
+ "sha256:7792f0ab20df8071d669d929c75c97fecfa6bcab82c10ee4adb91c7a54055463",
290
+ "sha256:831b476d79408ab6ccfadaaf199906c833f02fdb32c9ab907b1d4aa0713cfa3b",
291
+ "sha256:9146579352d7b5f6412735d0f203bbd8d00113a680b66565e205bc605ef81bc6",
292
+ "sha256:9cc44bf0315268e253bf563f3560e6c004efe38f76db03a1558274a6e04bf5d5",
293
+ "sha256:a73d18625f6a8a1cbb11eadc1d03929f9510f4131879288e3f7922097a429f63",
294
+ "sha256:a8659fd33ee9e6ca03950cfdcdf271d645cf681609153f218826dd9805ab585c",
295
+ "sha256:a94925102c89247530ae1dab7dc02c690942566f22e189cbd53579b0693c0783",
296
+ "sha256:ad4567d6c334c46046d1c4c20024de2a1c3abc626817ae21ae3da600f5779b44",
297
+ "sha256:b2e16f4cd2bc4d88ba30ca2d3bbf2f21f00f382cf4e1ce3b1ddc96c634bc48ca",
298
+ "sha256:bbdf9a72403110a3bdae77948b8011f644571311c2fb35ee15f0f10a8fc082e8",
299
+ "sha256:beb08e8508e53a568811016e59f3234d29c2583f6b6e28572f0954a6b4f7e03d",
300
+ "sha256:c4cbe651f3904e28f3a55d6f371203049034b4ddbce65a54527a3f189ca3b390",
301
+ "sha256:c7b525ab52ce18c57ae232ba6f7010297a87ced82a2383b1afd238849c1ff933",
302
+ "sha256:ca5d79cfdae420a1d52bf177de4bc2289c321d6c961ae321503b2ca59c17ae67",
303
+ "sha256:cdab02a0a941af190df8782aafc591ef3ad08824f97850b015c8c6a8b3877b0b",
304
+ "sha256:d17c6a415d68cfe1091d3296ba5749d3d8696e42c37fca5d4860c5bf7b729f03",
305
+ "sha256:d39bd10f0ae453554798b125d2f39884290c480f56e8a02ba7a6ed552005243b",
306
+ "sha256:d4b3cd1ca7cd73d229487fa5caca9e4bc1f0bca96526b922d61053ea751fe791",
307
+ "sha256:d50a252b23b9b4dfeefc1f663c568a221092cbaded20a05a11665d0dbec9b8fb",
308
+ "sha256:da8549d17489cd52f85a9829d0e1d91059359b3c54a26f28bec2c5d369524807",
309
+ "sha256:dcd070b5b585b50e6617e8972f3fbbee786afca71b1936ac06257f7e178f00f6",
310
+ "sha256:ddaaa91bfc4477d2871442bbf30a125e8fe6b05da8a0015507bfbf4718228ab2",
311
+ "sha256:df423f351b162a702c053d5dddc0fc0ef9a9e27ea3f449781ace5f906b664428",
312
+ "sha256:dff044f661f59dace805eedb4a7404c573b6ff0cdba4a524141bc63d7be5c7fd",
313
+ "sha256:e7e128f85c0b419907d1f38e616c4f1e9f1d1b37a7949f44df9a73d5da5cd53c",
314
+ "sha256:ed8d1d1821ba5fc88d4a4f45387b65de52382fa3ef1f0115a4f7a20cdfab0e94",
315
+ "sha256:f2501d60d7497fd55e391f423f965bbe9e650e9ffc3c627d5f0ac516026000b8",
316
+ "sha256:f7db0b6ae1f96ae41afe626095149ecd1b212b424626175a6633c2999eaad45b"
306
317
  ],
307
318
  "markers": "python_version >= '3.8'",
308
- "version": "==7.5.4"
319
+ "version": "==7.6.0"
309
320
  },
310
321
  "distlib": {
311
322
  "hashes": [
@@ -324,12 +335,12 @@
324
335
  },
325
336
  "exceptiongroup": {
326
337
  "hashes": [
327
- "sha256:5258b9ed329c5bbdd31a309f53cbfb0b155341807f6ff7606a1e801a891b29ad",
328
- "sha256:a4785e48b045528f5bfe627b6ad554ff32def154f42372786903b7abcfe1aa16"
338
+ "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b",
339
+ "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"
329
340
  ],
330
341
  "index": "pypi",
331
342
  "markers": "python_version >= '3.7'",
332
- "version": "==1.2.1"
343
+ "version": "==1.2.2"
333
344
  },
334
345
  "execnet": {
335
346
  "hashes": [
@@ -405,11 +416,11 @@
405
416
  },
406
417
  "identify": {
407
418
  "hashes": [
408
- "sha256:37d93f380f4de590500d9dba7db359d0d3da95ffe7f9de1753faa159e71e7dfa",
409
- "sha256:e5e00f54165f9047fbebeb4a560f9acfb8af4c88232be60a488e9b68d122745d"
419
+ "sha256:cb171c685bdc31bcc4c1734698736a7d5b6c8bf2e0c15117f4d469c8640ae5cf",
420
+ "sha256:e79ae4406387a9d300332b5fd366d8994f1525e8414984e1a59e058b2eda2dd0"
410
421
  ],
411
422
  "markers": "python_version >= '3.8'",
412
- "version": "==2.5.36"
423
+ "version": "==2.6.0"
413
424
  },
414
425
  "idna": {
415
426
  "hashes": [
@@ -429,12 +440,12 @@
429
440
  },
430
441
  "importlib-metadata": {
431
442
  "hashes": [
432
- "sha256:15584cf2b1bf449d98ff8a6ff1abef57bf20f3ac6454f431736cd3e660921b2f",
433
- "sha256:188bd24e4c346d3f0a933f275c2fec67050326a856b9a359881d7c2a697e8812"
443
+ "sha256:11901fa0c2f97919b288679932bb64febaeacf289d18ac84dd68cb2e74213369",
444
+ "sha256:72e8d4399996132204f9a16dcc751af254a48f8d1b20b9ff0f98d4a8f901e73d"
434
445
  ],
435
446
  "index": "pypi",
436
447
  "markers": "python_version >= '3.8'",
437
- "version": "==8.0.0"
448
+ "version": "==8.2.0"
438
449
  },
439
450
  "iniconfig": {
440
451
  "hashes": [
@@ -586,79 +597,90 @@
586
597
  },
587
598
  "pillow": {
588
599
  "hashes": [
589
- "sha256:048ad577748b9fa4a99a0548c64f2cb8d672d5bf2e643a739ac8faff1164238c",
590
- "sha256:048eeade4c33fdf7e08da40ef402e748df113fd0b4584e32c4af74fe78baaeb2",
591
- "sha256:0ba26351b137ca4e0db0342d5d00d2e355eb29372c05afd544ebf47c0956ffeb",
592
- "sha256:0ea2a783a2bdf2a561808fe4a7a12e9aa3799b701ba305de596bc48b8bdfce9d",
593
- "sha256:1530e8f3a4b965eb6a7785cf17a426c779333eb62c9a7d1bbcf3ffd5bf77a4aa",
594
- "sha256:16563993329b79513f59142a6b02055e10514c1a8e86dca8b48a893e33cf91e3",
595
- "sha256:19aeb96d43902f0a783946a0a87dbdad5c84c936025b8419da0a0cd7724356b1",
596
- "sha256:1a1d1915db1a4fdb2754b9de292642a39a7fb28f1736699527bb649484fb966a",
597
- "sha256:1b87bd9d81d179bd8ab871603bd80d8645729939f90b71e62914e816a76fc6bd",
598
- "sha256:1dfc94946bc60ea375cc39cff0b8da6c7e5f8fcdc1d946beb8da5c216156ddd8",
599
- "sha256:2034f6759a722da3a3dbd91a81148cf884e91d1b747992ca288ab88c1de15999",
600
- "sha256:261ddb7ca91fcf71757979534fb4c128448b5b4c55cb6152d280312062f69599",
601
- "sha256:2ed854e716a89b1afcedea551cd85f2eb2a807613752ab997b9974aaa0d56936",
602
- "sha256:3102045a10945173d38336f6e71a8dc71bcaeed55c3123ad4af82c52807b9375",
603
- "sha256:339894035d0ede518b16073bdc2feef4c991ee991a29774b33e515f1d308e08d",
604
- "sha256:412444afb8c4c7a6cc11a47dade32982439925537e483be7c0ae0cf96c4f6a0b",
605
- "sha256:4203efca580f0dd6f882ca211f923168548f7ba334c189e9eab1178ab840bf60",
606
- "sha256:45ebc7b45406febf07fef35d856f0293a92e7417ae7933207e90bf9090b70572",
607
- "sha256:4b5ec25d8b17217d635f8935dbc1b9aa5907962fae29dff220f2659487891cd3",
608
- "sha256:4c8e73e99da7db1b4cad7f8d682cf6abad7844da39834c288fbfa394a47bbced",
609
- "sha256:4e6f7d1c414191c1199f8996d3f2282b9ebea0945693fb67392c75a3a320941f",
610
- "sha256:4eaa22f0d22b1a7e93ff0a596d57fdede2e550aecffb5a1ef1106aaece48e96b",
611
- "sha256:50b8eae8f7334ec826d6eeffaeeb00e36b5e24aa0b9df322c247539714c6df19",
612
- "sha256:50fd3f6b26e3441ae07b7c979309638b72abc1a25da31a81a7fbd9495713ef4f",
613
- "sha256:51243f1ed5161b9945011a7360e997729776f6e5d7005ba0c6879267d4c5139d",
614
- "sha256:5d512aafa1d32efa014fa041d38868fda85028e3f930a96f85d49c7d8ddc0383",
615
- "sha256:5f77cf66e96ae734717d341c145c5949c63180842a545c47a0ce7ae52ca83795",
616
- "sha256:6b02471b72526ab8a18c39cb7967b72d194ec53c1fd0a70b050565a0f366d355",
617
- "sha256:6fb1b30043271ec92dc65f6d9f0b7a830c210b8a96423074b15c7bc999975f57",
618
- "sha256:7161ec49ef0800947dc5570f86568a7bb36fa97dd09e9827dc02b718c5643f09",
619
- "sha256:72d622d262e463dfb7595202d229f5f3ab4b852289a1cd09650362db23b9eb0b",
620
- "sha256:74d28c17412d9caa1066f7a31df8403ec23d5268ba46cd0ad2c50fb82ae40462",
621
- "sha256:78618cdbccaa74d3f88d0ad6cb8ac3007f1a6fa5c6f19af64b55ca170bfa1edf",
622
- "sha256:793b4e24db2e8742ca6423d3fde8396db336698c55cd34b660663ee9e45ed37f",
623
- "sha256:798232c92e7665fe82ac085f9d8e8ca98826f8e27859d9a96b41d519ecd2e49a",
624
- "sha256:81d09caa7b27ef4e61cb7d8fbf1714f5aec1c6b6c5270ee53504981e6e9121ad",
625
- "sha256:8ab74c06ffdab957d7670c2a5a6e1a70181cd10b727cd788c4dd9005b6a8acd9",
626
- "sha256:8eb0908e954d093b02a543dc963984d6e99ad2b5e36503d8a0aaf040505f747d",
627
- "sha256:90b9e29824800e90c84e4022dd5cc16eb2d9605ee13f05d47641eb183cd73d45",
628
- "sha256:9797a6c8fe16f25749b371c02e2ade0efb51155e767a971c61734b1bf6293994",
629
- "sha256:9d2455fbf44c914840c793e89aa82d0e1763a14253a000743719ae5946814b2d",
630
- "sha256:9d3bea1c75f8c53ee4d505c3e67d8c158ad4df0d83170605b50b64025917f338",
631
- "sha256:9e2ec1e921fd07c7cda7962bad283acc2f2a9ccc1b971ee4b216b75fad6f0463",
632
- "sha256:9e91179a242bbc99be65e139e30690e081fe6cb91a8e77faf4c409653de39451",
633
- "sha256:a0eaa93d054751ee9964afa21c06247779b90440ca41d184aeb5d410f20ff591",
634
- "sha256:a2c405445c79c3f5a124573a051062300936b0281fee57637e706453e452746c",
635
- "sha256:aa7e402ce11f0885305bfb6afb3434b3cd8f53b563ac065452d9d5654c7b86fd",
636
- "sha256:aff76a55a8aa8364d25400a210a65ff59d0168e0b4285ba6bf2bd83cf675ba32",
637
- "sha256:b09b86b27a064c9624d0a6c54da01c1beaf5b6cadfa609cf63789b1d08a797b9",
638
- "sha256:b14f16f94cbc61215115b9b1236f9c18403c15dd3c52cf629072afa9d54c1cbf",
639
- "sha256:b50811d664d392f02f7761621303eba9d1b056fb1868c8cdf4231279645c25f5",
640
- "sha256:b7bc2176354defba3edc2b9a777744462da2f8e921fbaf61e52acb95bafa9828",
641
- "sha256:c78e1b00a87ce43bb37642c0812315b411e856a905d58d597750eb79802aaaa3",
642
- "sha256:c83341b89884e2b2e55886e8fbbf37c3fa5efd6c8907124aeb72f285ae5696e5",
643
- "sha256:ca2870d5d10d8726a27396d3ca4cf7976cec0f3cb706debe88e3a5bd4610f7d2",
644
- "sha256:ccce24b7ad89adb5a1e34a6ba96ac2530046763912806ad4c247356a8f33a67b",
645
- "sha256:cd5e14fbf22a87321b24c88669aad3a51ec052eb145315b3da3b7e3cc105b9a2",
646
- "sha256:ce49c67f4ea0609933d01c0731b34b8695a7a748d6c8d186f95e7d085d2fe475",
647
- "sha256:d33891be6df59d93df4d846640f0e46f1a807339f09e79a8040bc887bdcd7ed3",
648
- "sha256:d3b2348a78bc939b4fed6552abfd2e7988e0f81443ef3911a4b8498ca084f6eb",
649
- "sha256:d886f5d353333b4771d21267c7ecc75b710f1a73d72d03ca06df49b09015a9ef",
650
- "sha256:d93480005693d247f8346bc8ee28c72a2191bdf1f6b5db469c096c0c867ac015",
651
- "sha256:dc1a390a82755a8c26c9964d457d4c9cbec5405896cba94cf51f36ea0d855002",
652
- "sha256:dd78700f5788ae180b5ee8902c6aea5a5726bac7c364b202b4b3e3ba2d293170",
653
- "sha256:e46f38133e5a060d46bd630faa4d9fa0202377495df1f068a8299fd78c84de84",
654
- "sha256:e4b878386c4bf293578b48fc570b84ecfe477d3b77ba39a6e87150af77f40c57",
655
- "sha256:f0d0591a0aeaefdaf9a5e545e7485f89910c977087e7de2b6c388aec32011e9f",
656
- "sha256:fdcbb4068117dfd9ce0138d068ac512843c52295ed996ae6dd1faf537b6dbc27",
657
- "sha256:ff61bfd9253c3915e6d41c651d5f962da23eda633cf02262990094a18a55371a"
600
+ "sha256:02a2be69f9c9b8c1e97cf2713e789d4e398c751ecfd9967c18d0ce304efbf885",
601
+ "sha256:030abdbe43ee02e0de642aee345efa443740aa4d828bfe8e2eb11922ea6a21ea",
602
+ "sha256:06b2f7898047ae93fad74467ec3d28fe84f7831370e3c258afa533f81ef7f3df",
603
+ "sha256:0755ffd4a0c6f267cccbae2e9903d95477ca2f77c4fcf3a3a09570001856c8a5",
604
+ "sha256:0a9ec697746f268507404647e531e92889890a087e03681a3606d9b920fbee3c",
605
+ "sha256:0ae24a547e8b711ccaaf99c9ae3cd975470e1a30caa80a6aaee9a2f19c05701d",
606
+ "sha256:134ace6dc392116566980ee7436477d844520a26a4b1bd4053f6f47d096997fd",
607
+ "sha256:166c1cd4d24309b30d61f79f4a9114b7b2313d7450912277855ff5dfd7cd4a06",
608
+ "sha256:1b5dea9831a90e9d0721ec417a80d4cbd7022093ac38a568db2dd78363b00908",
609
+ "sha256:1d846aea995ad352d4bdcc847535bd56e0fd88d36829d2c90be880ef1ee4668a",
610
+ "sha256:1ef61f5dd14c300786318482456481463b9d6b91ebe5ef12f405afbba77ed0be",
611
+ "sha256:297e388da6e248c98bc4a02e018966af0c5f92dfacf5a5ca22fa01cb3179bca0",
612
+ "sha256:298478fe4f77a4408895605f3482b6cc6222c018b2ce565c2b6b9c354ac3229b",
613
+ "sha256:29dbdc4207642ea6aad70fbde1a9338753d33fb23ed6956e706936706f52dd80",
614
+ "sha256:2db98790afc70118bd0255c2eeb465e9767ecf1f3c25f9a1abb8ffc8cfd1fe0a",
615
+ "sha256:32cda9e3d601a52baccb2856b8ea1fc213c90b340c542dcef77140dfa3278a9e",
616
+ "sha256:37fb69d905be665f68f28a8bba3c6d3223c8efe1edf14cc4cfa06c241f8c81d9",
617
+ "sha256:416d3a5d0e8cfe4f27f574362435bc9bae57f679a7158e0096ad2beb427b8696",
618
+ "sha256:43efea75eb06b95d1631cb784aa40156177bf9dd5b4b03ff38979e048258bc6b",
619
+ "sha256:4b35b21b819ac1dbd1233317adeecd63495f6babf21b7b2512d244ff6c6ce309",
620
+ "sha256:4d9667937cfa347525b319ae34375c37b9ee6b525440f3ef48542fcf66f2731e",
621
+ "sha256:5161eef006d335e46895297f642341111945e2c1c899eb406882a6c61a4357ab",
622
+ "sha256:543f3dc61c18dafb755773efc89aae60d06b6596a63914107f75459cf984164d",
623
+ "sha256:551d3fd6e9dc15e4c1eb6fc4ba2b39c0c7933fa113b220057a34f4bb3268a060",
624
+ "sha256:59291fb29317122398786c2d44427bbd1a6d7ff54017075b22be9d21aa59bd8d",
625
+ "sha256:5b001114dd152cfd6b23befeb28d7aee43553e2402c9f159807bf55f33af8a8d",
626
+ "sha256:5b4815f2e65b30f5fbae9dfffa8636d992d49705723fe86a3661806e069352d4",
627
+ "sha256:5dc6761a6efc781e6a1544206f22c80c3af4c8cf461206d46a1e6006e4429ff3",
628
+ "sha256:5e84b6cc6a4a3d76c153a6b19270b3526a5a8ed6b09501d3af891daa2a9de7d6",
629
+ "sha256:6209bb41dc692ddfee4942517c19ee81b86c864b626dbfca272ec0f7cff5d9fb",
630
+ "sha256:673655af3eadf4df6b5457033f086e90299fdd7a47983a13827acf7459c15d94",
631
+ "sha256:6c762a5b0997f5659a5ef2266abc1d8851ad7749ad9a6a5506eb23d314e4f46b",
632
+ "sha256:7086cc1d5eebb91ad24ded9f58bec6c688e9f0ed7eb3dbbf1e4800280a896496",
633
+ "sha256:73664fe514b34c8f02452ffb73b7a92c6774e39a647087f83d67f010eb9a0cf0",
634
+ "sha256:76a911dfe51a36041f2e756b00f96ed84677cdeb75d25c767f296c1c1eda1319",
635
+ "sha256:780c072c2e11c9b2c7ca37f9a2ee8ba66f44367ac3e5c7832afcfe5104fd6d1b",
636
+ "sha256:7928ecbf1ece13956b95d9cbcfc77137652b02763ba384d9ab508099a2eca856",
637
+ "sha256:7970285ab628a3779aecc35823296a7869f889b8329c16ad5a71e4901a3dc4ef",
638
+ "sha256:7a8d4bade9952ea9a77d0c3e49cbd8b2890a399422258a77f357b9cc9be8d680",
639
+ "sha256:7c1ee6f42250df403c5f103cbd2768a28fe1a0ea1f0f03fe151c8741e1469c8b",
640
+ "sha256:7dfecdbad5c301d7b5bde160150b4db4c659cee2b69589705b6f8a0c509d9f42",
641
+ "sha256:812f7342b0eee081eaec84d91423d1b4650bb9828eb53d8511bcef8ce5aecf1e",
642
+ "sha256:866b6942a92f56300012f5fbac71f2d610312ee65e22f1aa2609e491284e5597",
643
+ "sha256:86dcb5a1eb778d8b25659d5e4341269e8590ad6b4e8b44d9f4b07f8d136c414a",
644
+ "sha256:87dd88ded2e6d74d31e1e0a99a726a6765cda32d00ba72dc37f0651f306daaa8",
645
+ "sha256:8bc1a764ed8c957a2e9cacf97c8b2b053b70307cf2996aafd70e91a082e70df3",
646
+ "sha256:8d4d5063501b6dd4024b8ac2f04962d661222d120381272deea52e3fc52d3736",
647
+ "sha256:8f0aef4ef59694b12cadee839e2ba6afeab89c0f39a3adc02ed51d109117b8da",
648
+ "sha256:930044bb7679ab003b14023138b50181899da3f25de50e9dbee23b61b4de2126",
649
+ "sha256:950be4d8ba92aca4b2bb0741285a46bfae3ca699ef913ec8416c1b78eadd64cd",
650
+ "sha256:961a7293b2457b405967af9c77dcaa43cc1a8cd50d23c532e62d48ab6cdd56f5",
651
+ "sha256:9b885f89040bb8c4a1573566bbb2f44f5c505ef6e74cec7ab9068c900047f04b",
652
+ "sha256:9f4727572e2918acaa9077c919cbbeb73bd2b3ebcfe033b72f858fc9fbef0026",
653
+ "sha256:a02364621fe369e06200d4a16558e056fe2805d3468350df3aef21e00d26214b",
654
+ "sha256:a985e028fc183bf12a77a8bbf36318db4238a3ded7fa9df1b9a133f1cb79f8fc",
655
+ "sha256:ac1452d2fbe4978c2eec89fb5a23b8387aba707ac72810d9490118817d9c0b46",
656
+ "sha256:b15e02e9bb4c21e39876698abf233c8c579127986f8207200bc8a8f6bb27acf2",
657
+ "sha256:b2724fdb354a868ddf9a880cb84d102da914e99119211ef7ecbdc613b8c96b3c",
658
+ "sha256:bbc527b519bd3aa9d7f429d152fea69f9ad37c95f0b02aebddff592688998abe",
659
+ "sha256:bcd5e41a859bf2e84fdc42f4edb7d9aba0a13d29a2abadccafad99de3feff984",
660
+ "sha256:bd2880a07482090a3bcb01f4265f1936a903d70bc740bfcb1fd4e8a2ffe5cf5a",
661
+ "sha256:bee197b30783295d2eb680b311af15a20a8b24024a19c3a26431ff83eb8d1f70",
662
+ "sha256:bf2342ac639c4cf38799a44950bbc2dfcb685f052b9e262f446482afaf4bffca",
663
+ "sha256:c76e5786951e72ed3686e122d14c5d7012f16c8303a674d18cdcd6d89557fc5b",
664
+ "sha256:cbed61494057c0f83b83eb3a310f0bf774b09513307c434d4366ed64f4128a91",
665
+ "sha256:cfdd747216947628af7b259d274771d84db2268ca062dd5faf373639d00113a3",
666
+ "sha256:d7480af14364494365e89d6fddc510a13e5a2c3584cb19ef65415ca57252fb84",
667
+ "sha256:dbc6ae66518ab3c5847659e9988c3b60dc94ffb48ef9168656e0019a93dbf8a1",
668
+ "sha256:dc3e2db6ba09ffd7d02ae9141cfa0ae23393ee7687248d46a7507b75d610f4f5",
669
+ "sha256:dfe91cb65544a1321e631e696759491ae04a2ea11d36715eca01ce07284738be",
670
+ "sha256:e4d49b85c4348ea0b31ea63bc75a9f3857869174e2bf17e7aba02945cd218e6f",
671
+ "sha256:e4db64794ccdf6cb83a59d73405f63adbe2a1887012e308828596100a0b2f6cc",
672
+ "sha256:e553cad5179a66ba15bb18b353a19020e73a7921296a7979c4a2b7f6a5cd57f9",
673
+ "sha256:e88d5e6ad0d026fba7bdab8c3f225a69f063f116462c49892b0149e21b6c0a0e",
674
+ "sha256:ecd85a8d3e79cd7158dec1c9e5808e821feea088e2f69a974db5edf84dc53141",
675
+ "sha256:f5b92f4d70791b4a67157321c4e8225d60b119c5cc9aee8ecf153aace4aad4ef",
676
+ "sha256:f5f0c3e969c8f12dd2bb7e0b15d5c468b51e5017e01e2e867335c81903046a22",
677
+ "sha256:f7baece4ce06bade126fb84b8af1c33439a76d8a6fd818970215e0560ca28c27",
678
+ "sha256:ff25afb18123cea58a591ea0244b92eb1e61a1fd497bf6d6384f09bc3262ec3e",
679
+ "sha256:ff337c552345e95702c5fde3158acb0625111017d0e5f24bf3acdb9cc16b90d1"
658
680
  ],
659
681
  "index": "pypi",
660
682
  "markers": "python_version >= '3.8'",
661
- "version": "==10.3.0"
683
+ "version": "==10.4.0"
662
684
  },
663
685
  "platformdirs": {
664
686
  "hashes": [
@@ -719,12 +741,12 @@
719
741
  },
720
742
  "pytest": {
721
743
  "hashes": [
722
- "sha256:c434598117762e2bd304e526244f67bf66bbd7b5d6cf22138be51ff661980343",
723
- "sha256:de4bb8104e201939ccdc688b27a89a7be2079b22e2bd2b07f806b6ba71117977"
744
+ "sha256:4ba08f9ae7dcf84ded419494d229b48d0903ea6407b030eaec46df5e6a73bba5",
745
+ "sha256:c132345d12ce551242c87269de812483f5bcc87cdbb4722e48487ba194f9fdce"
724
746
  ],
725
747
  "index": "pypi",
726
748
  "markers": "python_version >= '3.8'",
727
- "version": "==8.2.2"
749
+ "version": "==8.3.2"
728
750
  },
729
751
  "pytest-cov": {
730
752
  "hashes": [
@@ -38,7 +38,8 @@ fotolab -h
38
38
 
39
39
  ```console
40
40
  usage: fotolab [-h] [-o] [-op] [-od OUTPUT_DIR] [-q] [-v] [-d] [-V]
41
- {animate,auto,border,contrast,info,resize,rotate,montage,sharpen,watermark,env} ...
41
+ {animate,auto,border,contrast,info,resize,rotate,montage,sharpen,watermark,env}
42
+ ...
42
43
 
43
44
  A console program to manipulate photos.
44
45
 
@@ -61,7 +62,7 @@ positional arguments:
61
62
  watermark watermark an image
62
63
  env print environment information for bug reporting
63
64
 
64
- optional arguments:
65
+ options:
65
66
  -h, --help show this help message and exit
66
67
  -o, --overwrite overwrite existing image
67
68
  -op, --open open the image using default program (default: 'False')
@@ -81,6 +82,8 @@ optional arguments:
81
82
  fotolab animate -h
82
83
  ```
83
84
 
85
+ <!--help-animate !-->
86
+
84
87
  ```console
85
88
  usage: fotolab animate [-h] [-f FORMAT] [-d DURATION] [-l LOOP]
86
89
  IMAGE_FILENAMES [IMAGE_FILENAMES ...]
@@ -97,12 +100,16 @@ optional arguments:
97
100
  -l LOOP, --loop LOOP set the loop cycle (default: '0')
98
101
  ```
99
102
 
103
+ <!--help-animate !-->
104
+
100
105
  ### fotolab auto
101
106
 
102
107
  ```console
103
108
  fotolab auto -h
104
109
  ```
105
110
 
111
+ <!--help-auto !-->
112
+
106
113
  ```console
107
114
  usage: fotolab auto [-h] IMAGE_FILENAMES [IMAGE_FILENAMES ...]
108
115
 
@@ -113,12 +120,16 @@ optional arguments:
113
120
  -h, --help show this help message and exit
114
121
  ```
115
122
 
123
+ <!--help-auto !-->
124
+
116
125
  ### fotolab border
117
126
 
118
127
  ```console
119
128
  fotolab border -h
120
129
  ```
121
130
 
131
+ <!--help-border !-->
132
+
122
133
  ```console
123
134
  usage: fotolab border [-h] [-c COLOR] [-w WIDTH] [-wt WIDTH] [-wr WIDTH]
124
135
  [-wb WIDTH] [-wl WIDTH]
@@ -143,12 +154,16 @@ optional arguments:
143
154
  set the width of left border (default: '0')
144
155
  ```
145
156
 
157
+ <!--help-border !-->
158
+
146
159
  ### fotolab contrast
147
160
 
148
161
  ```console
149
162
  fotolab contrast -h
150
163
  ```
151
164
 
165
+ <!--help-contrast !-->
166
+
152
167
  ```console
153
168
  usage: fotolab contrast [-h] [-c CUTOFF] IMAGE_FILENAMES [IMAGE_FILENAMES ...]
154
169
 
@@ -162,12 +177,16 @@ optional arguments:
162
177
  discard from histogram (default: '1')
163
178
  ```
164
179
 
180
+ <!--help-contrast !-->
181
+
165
182
  ### fotolab info
166
183
 
167
184
  ```console
168
185
  fotolab info -h
169
186
  ```
170
187
 
188
+ <!--help-info !-->
189
+
171
190
  ```console
172
191
  usage: fotolab info [-h] IMAGE_FILENAME
173
192
 
@@ -178,12 +197,16 @@ optional arguments:
178
197
  -h, --help show this help message and exit
179
198
  ```
180
199
 
200
+ <!--help-info !-->
201
+
181
202
  ### fotolab rotate
182
203
 
183
204
  ```console
184
205
  fotolab rotate -h
185
206
  ```
186
207
 
208
+ <!--help-rotate !-->
209
+
187
210
  ```console
188
211
  usage: fotolab rotate [-h] IMAGE_FILENAMES [IMAGE_FILENAMES ...]
189
212
 
@@ -194,12 +217,16 @@ optional arguments:
194
217
  -h, --help show this help message and exit
195
218
  ```
196
219
 
220
+ <!--help-rotate !-->
221
+
197
222
  ### fotolab montage
198
223
 
199
224
  ```console
200
225
  fotolab montage -h
201
226
  ```
202
227
 
228
+ <!--help-montage !-->
229
+
203
230
  ```console
204
231
  usage: fotolab montage [-h] IMAGE_FILENAMES [IMAGE_FILENAMES ...]
205
232
 
@@ -210,12 +237,16 @@ optional arguments:
210
237
  -h, --help show this help message and exit
211
238
  ```
212
239
 
240
+ <!--help-montage !-->
241
+
213
242
  ### fotolab resize
214
243
 
215
244
  ```console
216
245
  fotolab resize -h
217
246
  ```
218
247
 
248
+ <!--help-resize !-->
249
+
219
250
  ```console
220
251
  usage: fotolab resize [-h] [-wh WIDTH | -ht HEIGHT]
221
252
  IMAGE_FILENAMES [IMAGE_FILENAMES ...]
@@ -231,12 +262,16 @@ optional arguments:
231
262
  set the height of the image (default: '277')
232
263
  ```
233
264
 
265
+ <!--help-resize !-->
266
+
234
267
  ### fotolab sharpen
235
268
 
236
269
  ```console
237
270
  fotolab sharpen -h
238
271
  ```
239
272
 
273
+ <!--help-sharpen !-->
274
+
240
275
  ```console
241
276
  usage: fotolab sharpen [-h] [-r RADIUS] [-p PERCENT] [-t THRESHOLD]
242
277
  IMAGE_FILENAMES [IMAGE_FILENAMES ...]
@@ -256,12 +291,16 @@ optional arguments:
256
291
  (default: '3')
257
292
  ```
258
293
 
294
+ <!--help-sharpen !-->
295
+
259
296
  ### fotolab watermark
260
297
 
261
298
  ```console
262
299
  fotolab watermark -h
263
300
  ```
264
301
 
302
+ <!--help-watermark !-->
303
+
265
304
  ```console
266
305
  usage: fotolab watermark [-h] [-t WATERMARK_TEXT]
267
306
  [-p {top-left,top-right,bottom-left,bottom-right}]
@@ -295,12 +334,16 @@ optional arguments:
295
334
  'black')
296
335
  ```
297
336
 
337
+ <!--help-watermark !-->
338
+
298
339
  ### fotolab env
299
340
 
300
341
  ```console
301
342
  fotolab env -h
302
343
  ```
303
344
 
345
+ <!--help-env !-->
346
+
304
347
  ```console
305
348
  usage: fotolab env [-h]
306
349
 
@@ -308,6 +351,8 @@ options:
308
351
  -h, --help show this help message and exit
309
352
  ```
310
353
 
354
+ <!--help-env !-->
355
+
311
356
  ## Copyright and License
312
357
 
313
358
  Copyright (C) 2024 Kian-Meng Ang
@@ -21,7 +21,7 @@ import subprocess
21
21
  import sys
22
22
  from pathlib import Path
23
23
 
24
- __version__ = "0.16.7"
24
+ __version__ = "0.16.12"
25
25
 
26
26
  log = logging.getLogger(__name__)
27
27
 
@@ -14,39 +14,38 @@
14
14
  # along with this program. If not, see <https://www.gnu.org/licenses/>.
15
15
 
16
16
  """Nox configuration."""
17
- from io import StringIO
18
17
 
19
18
  import nox
20
19
 
21
- from fotolab.cli import build_parser
22
-
23
20
 
24
21
  @nox.session()
25
22
  def deps(session: nox.Session) -> None:
26
23
  """Update pre-commit hooks and deps."""
27
- session.install("pre-commit")
24
+ session.install("pre-commit", "pipenv")
28
25
  session.run("pre-commit", "autoupdate", *session.posargs)
29
- session.run("pipenv", "update", external=True)
26
+ session.run("pipenv", "update", env={"PIPENV_VERBOSITY": "-1"})
30
27
 
31
28
 
32
29
  @nox.session()
33
30
  def lint(session: nox.Session) -> None:
34
- """Runs pre-commit linter."""
31
+ """Run pre-commit linter."""
35
32
  session.install("pre-commit")
36
33
  session.run("pre-commit", "run", "--all-files", *session.posargs)
37
34
 
38
35
 
39
36
  @nox.session(python=["3.8", "3.9", "3.10", "3.11", "3.12"])
40
37
  def test(session: nox.Session) -> None:
41
- """Runs test."""
42
- session.run("pipenv", "install", "--dev", external=True)
43
- session.run("pipenv", "run", "pytest", "--numprocesses", "auto")
38
+ """Run test."""
39
+ _pipenv_install(session)
40
+ session.run(
41
+ "pipenv", "run", "pytest", "--numprocesses", "auto", *session.posargs
42
+ )
44
43
 
45
44
 
46
45
  @nox.session(python="3.12")
47
46
  def cov(session: nox.Session) -> None:
48
- """Runs test coverage."""
49
- session.run("pipenv", "install", "--dev", external=True)
47
+ """Run test coverage."""
48
+ _pipenv_install(session)
50
49
  session.run(
51
50
  "pipenv",
52
51
  "run",
@@ -59,26 +58,29 @@ def cov(session: nox.Session) -> None:
59
58
  )
60
59
 
61
60
 
62
- @nox.session(python="3.12", reuse_venv=True)
61
+ @nox.session(python="3.12")
63
62
  def doc(session: nox.Session) -> None:
64
63
  """Build doc with sphinx."""
65
- session.run("pipenv", "install", "--dev", external=True)
64
+ _pipenv_install(session)
66
65
  session.run("sphinx-build", "docs/source/", "docs/build/html")
67
66
 
68
67
 
69
- @nox.session(python="3.12", reuse_venv=True)
70
- def readme(_session: nox.Session) -> None:
68
+ @nox.session(python="3.12")
69
+ def readme(session: nox.Session) -> None:
71
70
  """Update console help menu to readme."""
71
+ _pipenv_install(session)
72
72
  with open("README.md", "r+", encoding="utf8") as f:
73
+ help_message = session.run("fotolab", "-h", silent=True)
74
+ help_codeblock = f"\n\n```console\n{help_message}```\n\n"
75
+
73
76
  content = f.read()
74
77
  marker = content.split("<!--help !-->")[1]
75
-
76
- buffer = StringIO()
77
- parser = build_parser()
78
- parser.print_help(file=buffer)
79
-
80
- help_message = f"\n\n```console\n{buffer.getvalue()}```\n\n"
81
- readme_md = content.replace(marker, help_message)
78
+ readme_md = content.replace(marker, help_codeblock)
82
79
 
83
80
  f.seek(0)
84
81
  f.write(readme_md)
82
+
83
+
84
+ def _pipenv_install(session: nox.Session) -> None:
85
+ session.install("pipenv")
86
+ session.run("pipenv", "install", "--dev", env={"PIPENV_VERBOSITY": "-1"})
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes