fotolab 0.16.8__tar.gz → 0.16.10__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.8 → fotolab-0.16.10}/CHANGELOG.md +15 -0
  2. {fotolab-0.16.8 → fotolab-0.16.10}/CONTRIBUTING.md +7 -7
  3. {fotolab-0.16.8 → fotolab-0.16.10}/PKG-INFO +46 -2
  4. {fotolab-0.16.8 → fotolab-0.16.10}/Pipfile.lock +99 -107
  5. {fotolab-0.16.8 → fotolab-0.16.10}/README.md +45 -1
  6. {fotolab-0.16.8 → fotolab-0.16.10}/fotolab/__init__.py +1 -1
  7. {fotolab-0.16.8 → fotolab-0.16.10}/noxfile.py +24 -16
  8. {fotolab-0.16.8 → fotolab-0.16.10}/.coveragerc +0 -0
  9. {fotolab-0.16.8 → fotolab-0.16.10}/.gitignore +0 -0
  10. {fotolab-0.16.8 → fotolab-0.16.10}/.pre-commit-config.yaml +0 -0
  11. {fotolab-0.16.8 → fotolab-0.16.10}/.python-version +0 -0
  12. {fotolab-0.16.8 → fotolab-0.16.10}/LICENSE.md +0 -0
  13. {fotolab-0.16.8 → fotolab-0.16.10}/Pipfile +0 -0
  14. {fotolab-0.16.8 → fotolab-0.16.10}/docs/Makefile +0 -0
  15. {fotolab-0.16.8 → fotolab-0.16.10}/docs/make.bat +0 -0
  16. {fotolab-0.16.8 → fotolab-0.16.10}/docs/source/CHANGELOG.md +0 -0
  17. {fotolab-0.16.8 → fotolab-0.16.10}/docs/source/CONTRIBUTING.md +0 -0
  18. {fotolab-0.16.8 → fotolab-0.16.10}/docs/source/LICENSE.md +0 -0
  19. {fotolab-0.16.8 → fotolab-0.16.10}/docs/source/README.md +0 -0
  20. {fotolab-0.16.8 → fotolab-0.16.10}/docs/source/_static/logo.jpg +0 -0
  21. {fotolab-0.16.8 → fotolab-0.16.10}/docs/source/conf.py +0 -0
  22. {fotolab-0.16.8 → fotolab-0.16.10}/docs/source/index.rst +0 -0
  23. {fotolab-0.16.8 → fotolab-0.16.10}/fotolab/__main__.py +0 -0
  24. {fotolab-0.16.8 → fotolab-0.16.10}/fotolab/animate.py +0 -0
  25. {fotolab-0.16.8 → fotolab-0.16.10}/fotolab/auto.py +0 -0
  26. {fotolab-0.16.8 → fotolab-0.16.10}/fotolab/border.py +0 -0
  27. {fotolab-0.16.8 → fotolab-0.16.10}/fotolab/cli.py +0 -0
  28. {fotolab-0.16.8 → fotolab-0.16.10}/fotolab/contrast.py +0 -0
  29. {fotolab-0.16.8 → fotolab-0.16.10}/fotolab/env.py +0 -0
  30. {fotolab-0.16.8 → fotolab-0.16.10}/fotolab/info.py +0 -0
  31. {fotolab-0.16.8 → fotolab-0.16.10}/fotolab/montage.py +0 -0
  32. {fotolab-0.16.8 → fotolab-0.16.10}/fotolab/resize.py +0 -0
  33. {fotolab-0.16.8 → fotolab-0.16.10}/fotolab/rotate.py +0 -0
  34. {fotolab-0.16.8 → fotolab-0.16.10}/fotolab/sharpen.py +0 -0
  35. {fotolab-0.16.8 → fotolab-0.16.10}/fotolab/watermark.py +0 -0
  36. {fotolab-0.16.8 → fotolab-0.16.10}/pyproject.toml +0 -0
  37. {fotolab-0.16.8 → fotolab-0.16.10}/tests/__init__.py +0 -0
  38. {fotolab-0.16.8 → fotolab-0.16.10}/tests/conftest.py +0 -0
  39. {fotolab-0.16.8 → fotolab-0.16.10}/tests/test_env.py +0 -0
  40. {fotolab-0.16.8 → fotolab-0.16.10}/tests/test_help_flag.py +0 -0
  41. {fotolab-0.16.8 → fotolab-0.16.10}/tests/test_quiet_flag.py +0 -0
@@ -7,6 +7,21 @@ and this project adheres to [0-based versioning](https://0ver.org/).
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## v0.16.10 (2024-07-21)
11
+
12
+ - Bump deps
13
+ - Fix first line of comment should be in imperative mood
14
+ - Install `pipenv` in venv managed by `nox`
15
+ - Update `nox` session in contributing doc
16
+ - Use `sphinx-build` in venv managed by `nox`
17
+
18
+ ## v0.16.9 (2024-07-14)
19
+
20
+ - Add marker to all subcommand in readme
21
+ - Bump deps
22
+ - Fix `pipenv` install warning in `nox`
23
+ - Refactor `readme` session in `nox`
24
+
10
25
  ## v0.16.8 (2024-07-07)
11
26
 
12
27
  - Bump deps, `pre-commit` hooks, and Python versions for `pyenv`
@@ -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.8
3
+ Version: 0.16.10
4
4
  Summary: A console program that manipulate images.
5
5
  Keywords: photography,photo
6
6
  Author-email: Kian-Meng Ang <kianmeng@cpan.org>
@@ -83,7 +83,7 @@ positional arguments:
83
83
  watermark watermark an image
84
84
  env print environment information for bug reporting
85
85
 
86
- optional arguments:
86
+ options:
87
87
  -h, --help show this help message and exit
88
88
  -o, --overwrite overwrite existing image
89
89
  -op, --open open the image using default program (default: 'False')
@@ -103,6 +103,8 @@ optional arguments:
103
103
  fotolab animate -h
104
104
  ```
105
105
 
106
+ <!--help-animate !-->
107
+
106
108
  ```console
107
109
  usage: fotolab animate [-h] [-f FORMAT] [-d DURATION] [-l LOOP]
108
110
  IMAGE_FILENAMES [IMAGE_FILENAMES ...]
@@ -119,12 +121,16 @@ optional arguments:
119
121
  -l LOOP, --loop LOOP set the loop cycle (default: '0')
120
122
  ```
121
123
 
124
+ <!--help-animate !-->
125
+
122
126
  ### fotolab auto
123
127
 
124
128
  ```console
125
129
  fotolab auto -h
126
130
  ```
127
131
 
132
+ <!--help-auto !-->
133
+
128
134
  ```console
129
135
  usage: fotolab auto [-h] IMAGE_FILENAMES [IMAGE_FILENAMES ...]
130
136
 
@@ -135,12 +141,16 @@ optional arguments:
135
141
  -h, --help show this help message and exit
136
142
  ```
137
143
 
144
+ <!--help-auto !-->
145
+
138
146
  ### fotolab border
139
147
 
140
148
  ```console
141
149
  fotolab border -h
142
150
  ```
143
151
 
152
+ <!--help-border !-->
153
+
144
154
  ```console
145
155
  usage: fotolab border [-h] [-c COLOR] [-w WIDTH] [-wt WIDTH] [-wr WIDTH]
146
156
  [-wb WIDTH] [-wl WIDTH]
@@ -165,12 +175,16 @@ optional arguments:
165
175
  set the width of left border (default: '0')
166
176
  ```
167
177
 
178
+ <!--help-border !-->
179
+
168
180
  ### fotolab contrast
169
181
 
170
182
  ```console
171
183
  fotolab contrast -h
172
184
  ```
173
185
 
186
+ <!--help-contrast !-->
187
+
174
188
  ```console
175
189
  usage: fotolab contrast [-h] [-c CUTOFF] IMAGE_FILENAMES [IMAGE_FILENAMES ...]
176
190
 
@@ -184,12 +198,16 @@ optional arguments:
184
198
  discard from histogram (default: '1')
185
199
  ```
186
200
 
201
+ <!--help-contrast !-->
202
+
187
203
  ### fotolab info
188
204
 
189
205
  ```console
190
206
  fotolab info -h
191
207
  ```
192
208
 
209
+ <!--help-info !-->
210
+
193
211
  ```console
194
212
  usage: fotolab info [-h] IMAGE_FILENAME
195
213
 
@@ -200,12 +218,16 @@ optional arguments:
200
218
  -h, --help show this help message and exit
201
219
  ```
202
220
 
221
+ <!--help-info !-->
222
+
203
223
  ### fotolab rotate
204
224
 
205
225
  ```console
206
226
  fotolab rotate -h
207
227
  ```
208
228
 
229
+ <!--help-rotate !-->
230
+
209
231
  ```console
210
232
  usage: fotolab rotate [-h] IMAGE_FILENAMES [IMAGE_FILENAMES ...]
211
233
 
@@ -216,12 +238,16 @@ optional arguments:
216
238
  -h, --help show this help message and exit
217
239
  ```
218
240
 
241
+ <!--help-rotate !-->
242
+
219
243
  ### fotolab montage
220
244
 
221
245
  ```console
222
246
  fotolab montage -h
223
247
  ```
224
248
 
249
+ <!--help-montage !-->
250
+
225
251
  ```console
226
252
  usage: fotolab montage [-h] IMAGE_FILENAMES [IMAGE_FILENAMES ...]
227
253
 
@@ -232,12 +258,16 @@ optional arguments:
232
258
  -h, --help show this help message and exit
233
259
  ```
234
260
 
261
+ <!--help-montage !-->
262
+
235
263
  ### fotolab resize
236
264
 
237
265
  ```console
238
266
  fotolab resize -h
239
267
  ```
240
268
 
269
+ <!--help-resize !-->
270
+
241
271
  ```console
242
272
  usage: fotolab resize [-h] [-wh WIDTH | -ht HEIGHT]
243
273
  IMAGE_FILENAMES [IMAGE_FILENAMES ...]
@@ -253,12 +283,16 @@ optional arguments:
253
283
  set the height of the image (default: '277')
254
284
  ```
255
285
 
286
+ <!--help-resize !-->
287
+
256
288
  ### fotolab sharpen
257
289
 
258
290
  ```console
259
291
  fotolab sharpen -h
260
292
  ```
261
293
 
294
+ <!--help-sharpen !-->
295
+
262
296
  ```console
263
297
  usage: fotolab sharpen [-h] [-r RADIUS] [-p PERCENT] [-t THRESHOLD]
264
298
  IMAGE_FILENAMES [IMAGE_FILENAMES ...]
@@ -278,12 +312,16 @@ optional arguments:
278
312
  (default: '3')
279
313
  ```
280
314
 
315
+ <!--help-sharpen !-->
316
+
281
317
  ### fotolab watermark
282
318
 
283
319
  ```console
284
320
  fotolab watermark -h
285
321
  ```
286
322
 
323
+ <!--help-watermark !-->
324
+
287
325
  ```console
288
326
  usage: fotolab watermark [-h] [-t WATERMARK_TEXT]
289
327
  [-p {top-left,top-right,bottom-left,bottom-right}]
@@ -317,12 +355,16 @@ optional arguments:
317
355
  'black')
318
356
  ```
319
357
 
358
+ <!--help-watermark !-->
359
+
320
360
  ### fotolab env
321
361
 
322
362
  ```console
323
363
  fotolab env -h
324
364
  ```
325
365
 
366
+ <!--help-env !-->
367
+
326
368
  ```console
327
369
  usage: fotolab env [-h]
328
370
 
@@ -330,6 +372,8 @@ options:
330
372
  -h, --help show this help message and exit
331
373
  ```
332
374
 
375
+ <!--help-env !-->
376
+
333
377
  ## Copyright and License
334
378
 
335
379
  Copyright (C) 2024 Kian-Meng Ang
@@ -107,11 +107,11 @@
107
107
  "develop": {
108
108
  "alabaster": {
109
109
  "hashes": [
110
- "sha256:1ee19aca801bbabb5ba3f5f258e4422dfa86f82f3e9cefb0859b283cdd7f62a3",
111
- "sha256:a27a4a084d5e690e16e01e03ad2b2e552c61a65469419b907243193de1a84ae2"
110
+ "sha256:75a8b99c28a5dad50dd7f8ccdd447a121ddb3892da9e53d1ca5cca3106d58d65",
111
+ "sha256:b46733c07dce03ae4e150330b975c75737fa60f0a7c591b6c8bf4928a28e2c92"
112
112
  ],
113
- "markers": "python_version >= '3.6'",
114
- "version": "==0.7.13"
113
+ "markers": "python_version >= '3.9'",
114
+ "version": "==0.7.16"
115
115
  },
116
116
  "argcomplete": {
117
117
  "hashes": [
@@ -262,61 +262,61 @@
262
262
  "toml"
263
263
  ],
264
264
  "hashes": [
265
- "sha256:018a12985185038a5b2bcafab04ab833a9a0f2c59995b3cec07e10074c78635f",
266
- "sha256:02ff6e898197cc1e9fa375581382b72498eb2e6d5fc0b53f03e496cfee3fac6d",
267
- "sha256:042183de01f8b6d531e10c197f7f0315a61e8d805ab29c5f7b51a01d62782747",
268
- "sha256:1014fbf665fef86cdfd6cb5b7371496ce35e4d2a00cda501cf9f5b9e6fced69f",
269
- "sha256:1137f46adb28e3813dec8c01fefadcb8c614f33576f672962e323b5128d9a68d",
270
- "sha256:16852febd96acd953b0d55fc842ce2dac1710f26729b31c80b940b9afcd9896f",
271
- "sha256:2174e7c23e0a454ffe12267a10732c273243b4f2d50d07544a91198f05c48f47",
272
- "sha256:2214ee920787d85db1b6a0bd9da5f8503ccc8fcd5814d90796c2f2493a2f4d2e",
273
- "sha256:3257fdd8e574805f27bb5342b77bc65578e98cbc004a92232106344053f319ba",
274
- "sha256:3684bc2ff328f935981847082ba4fdc950d58906a40eafa93510d1b54c08a66c",
275
- "sha256:3a6612c99081d8d6134005b1354191e103ec9705d7ba2754e848211ac8cacc6b",
276
- "sha256:3d7564cc09dd91b5a6001754a5b3c6ecc4aba6323baf33a12bd751036c998be4",
277
- "sha256:44da56a2589b684813f86d07597fdf8a9c6ce77f58976727329272f5a01f99f7",
278
- "sha256:5013ed890dc917cef2c9f765c4c6a8ae9df983cd60dbb635df8ed9f4ebc9f555",
279
- "sha256:54317c2b806354cbb2dc7ac27e2b93f97096912cc16b18289c5d4e44fc663233",
280
- "sha256:56b4eafa21c6c175b3ede004ca12c653a88b6f922494b023aeb1e836df953ace",
281
- "sha256:581ea96f92bf71a5ec0974001f900db495488434a6928a2ca7f01eee20c23805",
282
- "sha256:5cd64adedf3be66f8ccee418473c2916492d53cbafbfcff851cbec5a8454b136",
283
- "sha256:5df54843b88901fdc2f598ac06737f03d71168fd1175728054c8f5a2739ac3e4",
284
- "sha256:65e528e2e921ba8fd67d9055e6b9f9e34b21ebd6768ae1c1723f4ea6ace1234d",
285
- "sha256:6aae5cce399a0f065da65c7bb1e8abd5c7a3043da9dceb429ebe1b289bc07806",
286
- "sha256:6cfb5a4f556bb51aba274588200a46e4dd6b505fb1a5f8c5ae408222eb416f99",
287
- "sha256:7076b4b3a5f6d2b5d7f1185fde25b1e54eb66e647a1dfef0e2c2bfaf9b4c88c8",
288
- "sha256:73ca8fbc5bc622e54627314c1a6f1dfdd8db69788f3443e752c215f29fa87a0b",
289
- "sha256:79b356f3dd5b26f3ad23b35c75dbdaf1f9e2450b6bcefc6d0825ea0aa3f86ca5",
290
- "sha256:7a892be37ca35eb5019ec85402c3371b0f7cda5ab5056023a7f13da0961e60da",
291
- "sha256:8192794d120167e2a64721d88dbd688584675e86e15d0569599257566dec9bf0",
292
- "sha256:820bc841faa502e727a48311948e0461132a9c8baa42f6b2b84a29ced24cc078",
293
- "sha256:8f894208794b164e6bd4bba61fc98bf6b06be4d390cf2daacfa6eca0a6d2bb4f",
294
- "sha256:a04e990a2a41740b02d6182b498ee9796cf60eefe40cf859b016650147908029",
295
- "sha256:a44963520b069e12789d0faea4e9fdb1e410cdc4aab89d94f7f55cbb7fef0353",
296
- "sha256:a6bb74ed465d5fb204b2ec41d79bcd28afccf817de721e8a807d5141c3426638",
297
- "sha256:ab73b35e8d109bffbda9a3e91c64e29fe26e03e49addf5b43d85fc426dde11f9",
298
- "sha256:aea072a941b033813f5e4814541fc265a5c12ed9720daef11ca516aeacd3bd7f",
299
- "sha256:b1ccf5e728ccf83acd313c89f07c22d70d6c375a9c6f339233dcf792094bcbf7",
300
- "sha256:b385d49609f8e9efc885790a5a0e89f2e3ae042cdf12958b6034cc442de428d3",
301
- "sha256:b3d45ff86efb129c599a3b287ae2e44c1e281ae0f9a9bad0edc202179bcc3a2e",
302
- "sha256:b4a474f799456e0eb46d78ab07303286a84a3140e9700b9e154cfebc8f527016",
303
- "sha256:b95c3a8cb0463ba9f77383d0fa8c9194cf91f64445a63fc26fb2327e1e1eb088",
304
- "sha256:c5986ee7ea0795a4095ac4d113cbb3448601efca7f158ec7f7087a6c705304e4",
305
- "sha256:cdd31315fc20868c194130de9ee6bfd99755cc9565edff98ecc12585b90be882",
306
- "sha256:cef4649ec906ea7ea5e9e796e68b987f83fa9a718514fe147f538cfeda76d7a7",
307
- "sha256:d05c16cf4b4c2fc880cb12ba4c9b526e9e5d5bb1d81313d4d732a5b9fe2b9d53",
308
- "sha256:d2e344d6adc8ef81c5a233d3a57b3c7d5181f40e79e05e1c143da143ccb6377d",
309
- "sha256:d45d3cbd94159c468b9b8c5a556e3f6b81a8d1af2a92b77320e887c3e7a5d080",
310
- "sha256:db14f552ac38f10758ad14dd7b983dbab424e731588d300c7db25b6f89e335b5",
311
- "sha256:dbc5958cb471e5a5af41b0ddaea96a37e74ed289535e8deca404811f6cb0bc3d",
312
- "sha256:ddbd2f9713a79e8e7242d7c51f1929611e991d855f414ca9996c20e44a895f7c",
313
- "sha256:e16f3d6b491c48c5ae726308e6ab1e18ee830b4cdd6913f2d7f77354b33f91c8",
314
- "sha256:e2afe743289273209c992075a5a4913e8d007d569a406ffed0bd080ea02b0633",
315
- "sha256:e564c2cf45d2f44a9da56f4e3a26b2236504a496eb4cb0ca7221cd4cc7a9aca9",
316
- "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"
317
317
  ],
318
318
  "markers": "python_version >= '3.8'",
319
- "version": "==7.5.4"
319
+ "version": "==7.6.0"
320
320
  },
321
321
  "distlib": {
322
322
  "hashes": [
@@ -327,20 +327,20 @@
327
327
  },
328
328
  "docutils": {
329
329
  "hashes": [
330
- "sha256:96f387a2c5562db4476f09f13bbab2192e764cac08ebbf3a34a95d9b1e4a59d6",
331
- "sha256:f08a4e276c3a1583a86dce3e34aba3fe04d02bba2dd51ed16106244e8a923e3b"
330
+ "sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f",
331
+ "sha256:dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2"
332
332
  ],
333
- "markers": "python_version >= '3.7'",
334
- "version": "==0.20.1"
333
+ "markers": "python_version >= '3.9'",
334
+ "version": "==0.21.2"
335
335
  },
336
336
  "exceptiongroup": {
337
337
  "hashes": [
338
- "sha256:5258b9ed329c5bbdd31a309f53cbfb0b155341807f6ff7606a1e801a891b29ad",
339
- "sha256:a4785e48b045528f5bfe627b6ad554ff32def154f42372786903b7abcfe1aa16"
338
+ "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b",
339
+ "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"
340
340
  ],
341
341
  "index": "pypi",
342
342
  "markers": "python_version >= '3.7'",
343
- "version": "==1.2.1"
343
+ "version": "==1.2.2"
344
344
  },
345
345
  "execnet": {
346
346
  "hashes": [
@@ -416,11 +416,11 @@
416
416
  },
417
417
  "identify": {
418
418
  "hashes": [
419
- "sha256:37d93f380f4de590500d9dba7db359d0d3da95ffe7f9de1753faa159e71e7dfa",
420
- "sha256:e5e00f54165f9047fbebeb4a560f9acfb8af4c88232be60a488e9b68d122745d"
419
+ "sha256:cb171c685bdc31bcc4c1734698736a7d5b6c8bf2e0c15117f4d469c8640ae5cf",
420
+ "sha256:e79ae4406387a9d300332b5fd366d8994f1525e8414984e1a59e058b2eda2dd0"
421
421
  ],
422
422
  "markers": "python_version >= '3.8'",
423
- "version": "==2.5.36"
423
+ "version": "==2.6.0"
424
424
  },
425
425
  "idna": {
426
426
  "hashes": [
@@ -700,12 +700,12 @@
700
700
  },
701
701
  "pre-commit": {
702
702
  "hashes": [
703
- "sha256:5804465c675b659b0862f07907f96295d490822a450c4c40e747d0b1c6ebcb32",
704
- "sha256:841dc9aef25daba9a0238cd27984041fa0467b4199fc4852e27950664919f660"
703
+ "sha256:8ca3ad567bc78a4972a3f1a477e94a79d4597e8140a6e0b651c5e33899c3654a",
704
+ "sha256:fae36fd1d7ad7d6a5a1c0b0d5adb2ed1a3bda5a21bf6c3e5372073d7a11cd4c5"
705
705
  ],
706
706
  "index": "pypi",
707
- "markers": "python_version >= '3.8'",
708
- "version": "==3.5.0"
707
+ "markers": "python_version >= '3.9'",
708
+ "version": "==3.7.1"
709
709
  },
710
710
  "pycodestyle": {
711
711
  "hashes": [
@@ -775,14 +775,6 @@
775
775
  "markers": "python_version >= '3.8'",
776
776
  "version": "==3.6.1"
777
777
  },
778
- "pytz": {
779
- "hashes": [
780
- "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812",
781
- "sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319"
782
- ],
783
- "markers": "python_version < '3.9'",
784
- "version": "==2024.1"
785
- },
786
778
  "pyyaml": {
787
779
  "hashes": [
788
780
  "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5",
@@ -864,21 +856,21 @@
864
856
  },
865
857
  "sphinx": {
866
858
  "hashes": [
867
- "sha256:780f4d32f1d7d1126576e0e5ecc19dc32ab76cd24e950228dcf7b1f6d3d9e22f",
868
- "sha256:d170a81825b2fcacb6dfd5a0d7f578a053e45d3f2b153fecc948c37344eb4cbe"
859
+ "sha256:116918d455c493fff3178edea12b4fe1c1e4894680fd81e7b7431ea21d47ca52",
860
+ "sha256:915760d6188288a1e30c2cd0d9fa31b1b009bc6e6019cc0c32d16c77d20e86d9"
869
861
  ],
870
862
  "index": "pypi",
871
- "markers": "python_version >= '3.8'",
872
- "version": "==7.1.2"
863
+ "markers": "python_version >= '3.9'",
864
+ "version": "==7.4.6"
873
865
  },
874
866
  "sphinx-autodoc-typehints": {
875
867
  "hashes": [
876
- "sha256:60ed1e3b2c970acc0aa6e877be42d48029a9faec7378a17838716cacd8c10b12",
877
- "sha256:f73ae89b43a799e587e39266672c1075b2ef783aeb382d3ebed77c38a3fc0149"
868
+ "sha256:b7058e8c5831e5598afca1a78fda0695d3291388d954464a6e480c36198680c0",
869
+ "sha256:fde3d888949bd0a91207cf1e54afda58121dbb4bf1f183d0cc78a0826654c974"
878
870
  ],
879
871
  "index": "pypi",
880
- "markers": "python_version >= '3.8'",
881
- "version": "==2.0.1"
872
+ "markers": "python_version >= '3.9'",
873
+ "version": "==2.2.3"
882
874
  },
883
875
  "sphinx-copybutton": {
884
876
  "hashes": [
@@ -891,27 +883,27 @@
891
883
  },
892
884
  "sphinxcontrib-applehelp": {
893
885
  "hashes": [
894
- "sha256:29d341f67fb0f6f586b23ad80e072c8e6ad0b48417db2bde114a4c9746feb228",
895
- "sha256:828f867945bbe39817c210a1abfd1bc4895c8b73fcaade56d45357a348a07d7e"
886
+ "sha256:c40a4f96f3776c4393d933412053962fac2b84f4c99a7982ba42e09576a70619",
887
+ "sha256:cb61eb0ec1b61f349e5cc36b2028e9e7ca765be05e49641c97241274753067b4"
896
888
  ],
897
- "markers": "python_version >= '3.8'",
898
- "version": "==1.0.4"
889
+ "markers": "python_version >= '3.9'",
890
+ "version": "==1.0.8"
899
891
  },
900
892
  "sphinxcontrib-devhelp": {
901
893
  "hashes": [
902
- "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e",
903
- "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"
894
+ "sha256:6485d09629944511c893fa11355bda18b742b83a2b181f9a009f7e500595c90f",
895
+ "sha256:9893fd3f90506bc4b97bdb977ceb8fbd823989f4316b28c3841ec128544372d3"
904
896
  ],
905
- "markers": "python_version >= '3.5'",
906
- "version": "==1.0.2"
897
+ "markers": "python_version >= '3.9'",
898
+ "version": "==1.0.6"
907
899
  },
908
900
  "sphinxcontrib-htmlhelp": {
909
901
  "hashes": [
910
- "sha256:0cbdd302815330058422b98a113195c9249825d681e18f11e8b1f78a2f11efff",
911
- "sha256:c38cb46dccf316c79de6e5515e1770414b797162b23cd3d06e67020e1d2a6903"
902
+ "sha256:0dc87637d5de53dd5eec3a6a01753b1ccf99494bd756aafecd74b4fa9e729015",
903
+ "sha256:393f04f112b4d2f53d93448d4bce35842f62b307ccdc549ec1585e950bc35e04"
912
904
  ],
913
- "markers": "python_version >= '3.8'",
914
- "version": "==2.0.1"
905
+ "markers": "python_version >= '3.9'",
906
+ "version": "==2.0.5"
915
907
  },
916
908
  "sphinxcontrib-jsmath": {
917
909
  "hashes": [
@@ -923,19 +915,19 @@
923
915
  },
924
916
  "sphinxcontrib-qthelp": {
925
917
  "hashes": [
926
- "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72",
927
- "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"
918
+ "sha256:053dedc38823a80a7209a80860b16b722e9e0209e32fea98c90e4e6624588ed6",
919
+ "sha256:e2ae3b5c492d58fcbd73281fbd27e34b8393ec34a073c792642cd8e529288182"
928
920
  ],
929
- "markers": "python_version >= '3.5'",
930
- "version": "==1.0.3"
921
+ "markers": "python_version >= '3.9'",
922
+ "version": "==1.0.7"
931
923
  },
932
924
  "sphinxcontrib-serializinghtml": {
933
925
  "hashes": [
934
- "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd",
935
- "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"
926
+ "sha256:326369b8df80a7d2d8d7f99aa5ac577f51ea51556ed974e7716cfd4fca3f6cb7",
927
+ "sha256:93f3f5dc458b91b192fe10c397e324f262cf163d79f3282c158e8436a2c4511f"
936
928
  ],
937
- "markers": "python_version >= '3.5'",
938
- "version": "==1.1.5"
929
+ "markers": "python_version >= '3.9'",
930
+ "version": "==1.1.10"
939
931
  },
940
932
  "tomli": {
941
933
  "hashes": [
@@ -61,7 +61,7 @@ positional arguments:
61
61
  watermark watermark an image
62
62
  env print environment information for bug reporting
63
63
 
64
- optional arguments:
64
+ options:
65
65
  -h, --help show this help message and exit
66
66
  -o, --overwrite overwrite existing image
67
67
  -op, --open open the image using default program (default: 'False')
@@ -81,6 +81,8 @@ optional arguments:
81
81
  fotolab animate -h
82
82
  ```
83
83
 
84
+ <!--help-animate !-->
85
+
84
86
  ```console
85
87
  usage: fotolab animate [-h] [-f FORMAT] [-d DURATION] [-l LOOP]
86
88
  IMAGE_FILENAMES [IMAGE_FILENAMES ...]
@@ -97,12 +99,16 @@ optional arguments:
97
99
  -l LOOP, --loop LOOP set the loop cycle (default: '0')
98
100
  ```
99
101
 
102
+ <!--help-animate !-->
103
+
100
104
  ### fotolab auto
101
105
 
102
106
  ```console
103
107
  fotolab auto -h
104
108
  ```
105
109
 
110
+ <!--help-auto !-->
111
+
106
112
  ```console
107
113
  usage: fotolab auto [-h] IMAGE_FILENAMES [IMAGE_FILENAMES ...]
108
114
 
@@ -113,12 +119,16 @@ optional arguments:
113
119
  -h, --help show this help message and exit
114
120
  ```
115
121
 
122
+ <!--help-auto !-->
123
+
116
124
  ### fotolab border
117
125
 
118
126
  ```console
119
127
  fotolab border -h
120
128
  ```
121
129
 
130
+ <!--help-border !-->
131
+
122
132
  ```console
123
133
  usage: fotolab border [-h] [-c COLOR] [-w WIDTH] [-wt WIDTH] [-wr WIDTH]
124
134
  [-wb WIDTH] [-wl WIDTH]
@@ -143,12 +153,16 @@ optional arguments:
143
153
  set the width of left border (default: '0')
144
154
  ```
145
155
 
156
+ <!--help-border !-->
157
+
146
158
  ### fotolab contrast
147
159
 
148
160
  ```console
149
161
  fotolab contrast -h
150
162
  ```
151
163
 
164
+ <!--help-contrast !-->
165
+
152
166
  ```console
153
167
  usage: fotolab contrast [-h] [-c CUTOFF] IMAGE_FILENAMES [IMAGE_FILENAMES ...]
154
168
 
@@ -162,12 +176,16 @@ optional arguments:
162
176
  discard from histogram (default: '1')
163
177
  ```
164
178
 
179
+ <!--help-contrast !-->
180
+
165
181
  ### fotolab info
166
182
 
167
183
  ```console
168
184
  fotolab info -h
169
185
  ```
170
186
 
187
+ <!--help-info !-->
188
+
171
189
  ```console
172
190
  usage: fotolab info [-h] IMAGE_FILENAME
173
191
 
@@ -178,12 +196,16 @@ optional arguments:
178
196
  -h, --help show this help message and exit
179
197
  ```
180
198
 
199
+ <!--help-info !-->
200
+
181
201
  ### fotolab rotate
182
202
 
183
203
  ```console
184
204
  fotolab rotate -h
185
205
  ```
186
206
 
207
+ <!--help-rotate !-->
208
+
187
209
  ```console
188
210
  usage: fotolab rotate [-h] IMAGE_FILENAMES [IMAGE_FILENAMES ...]
189
211
 
@@ -194,12 +216,16 @@ optional arguments:
194
216
  -h, --help show this help message and exit
195
217
  ```
196
218
 
219
+ <!--help-rotate !-->
220
+
197
221
  ### fotolab montage
198
222
 
199
223
  ```console
200
224
  fotolab montage -h
201
225
  ```
202
226
 
227
+ <!--help-montage !-->
228
+
203
229
  ```console
204
230
  usage: fotolab montage [-h] IMAGE_FILENAMES [IMAGE_FILENAMES ...]
205
231
 
@@ -210,12 +236,16 @@ optional arguments:
210
236
  -h, --help show this help message and exit
211
237
  ```
212
238
 
239
+ <!--help-montage !-->
240
+
213
241
  ### fotolab resize
214
242
 
215
243
  ```console
216
244
  fotolab resize -h
217
245
  ```
218
246
 
247
+ <!--help-resize !-->
248
+
219
249
  ```console
220
250
  usage: fotolab resize [-h] [-wh WIDTH | -ht HEIGHT]
221
251
  IMAGE_FILENAMES [IMAGE_FILENAMES ...]
@@ -231,12 +261,16 @@ optional arguments:
231
261
  set the height of the image (default: '277')
232
262
  ```
233
263
 
264
+ <!--help-resize !-->
265
+
234
266
  ### fotolab sharpen
235
267
 
236
268
  ```console
237
269
  fotolab sharpen -h
238
270
  ```
239
271
 
272
+ <!--help-sharpen !-->
273
+
240
274
  ```console
241
275
  usage: fotolab sharpen [-h] [-r RADIUS] [-p PERCENT] [-t THRESHOLD]
242
276
  IMAGE_FILENAMES [IMAGE_FILENAMES ...]
@@ -256,12 +290,16 @@ optional arguments:
256
290
  (default: '3')
257
291
  ```
258
292
 
293
+ <!--help-sharpen !-->
294
+
259
295
  ### fotolab watermark
260
296
 
261
297
  ```console
262
298
  fotolab watermark -h
263
299
  ```
264
300
 
301
+ <!--help-watermark !-->
302
+
265
303
  ```console
266
304
  usage: fotolab watermark [-h] [-t WATERMARK_TEXT]
267
305
  [-p {top-left,top-right,bottom-left,bottom-right}]
@@ -295,12 +333,16 @@ optional arguments:
295
333
  'black')
296
334
  ```
297
335
 
336
+ <!--help-watermark !-->
337
+
298
338
  ### fotolab env
299
339
 
300
340
  ```console
301
341
  fotolab env -h
302
342
  ```
303
343
 
344
+ <!--help-env !-->
345
+
304
346
  ```console
305
347
  usage: fotolab env [-h]
306
348
 
@@ -308,6 +350,8 @@ options:
308
350
  -h, --help show this help message and exit
309
351
  ```
310
352
 
353
+ <!--help-env !-->
354
+
311
355
  ## Copyright and License
312
356
 
313
357
  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.8"
24
+ __version__ = "0.16.10"
25
25
 
26
26
  log = logging.getLogger(__name__)
27
27
 
@@ -14,39 +14,47 @@
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
17
+
18
+ # flake8: noqa: E402
19
+ # pylint: disable=C0413
20
+
21
+ import sys
18
22
 
19
23
  import nox
20
24
 
21
- from fotolab.cli import build_parser
25
+ sys.path.append(".")
26
+
27
+ from fotolab import cli
22
28
 
23
29
 
24
30
  @nox.session()
25
31
  def deps(session: nox.Session) -> None:
26
32
  """Update pre-commit hooks and deps."""
27
- session.install("pre-commit")
33
+ session.install("pre-commit", "pipenv")
28
34
  session.run("pre-commit", "autoupdate", *session.posargs)
29
- session.run("pipenv", "update", external=True)
35
+ session.run("pipenv", "update")
30
36
 
31
37
 
32
38
  @nox.session()
33
39
  def lint(session: nox.Session) -> None:
34
- """Runs pre-commit linter."""
40
+ """Run pre-commit linter."""
35
41
  session.install("pre-commit")
36
42
  session.run("pre-commit", "run", "--all-files", *session.posargs)
37
43
 
38
44
 
39
45
  @nox.session(python=["3.8", "3.9", "3.10", "3.11", "3.12"])
40
46
  def test(session: nox.Session) -> None:
41
- """Runs test."""
42
- session.run("pipenv", "install", "--dev", external=True)
47
+ """Run test."""
48
+ session.install("pipenv")
49
+ session.run("pipenv", "install", "--dev")
43
50
  session.run("pipenv", "run", "pytest", "--numprocesses", "auto")
44
51
 
45
52
 
46
53
  @nox.session(python="3.12")
47
54
  def cov(session: nox.Session) -> None:
48
- """Runs test coverage."""
49
- session.run("pipenv", "install", "--dev", external=True)
55
+ """Run test coverage."""
56
+ session.install("pipenv")
57
+ session.run("pipenv", "install", "--dev")
50
58
  session.run(
51
59
  "pipenv",
52
60
  "run",
@@ -62,22 +70,22 @@ def cov(session: nox.Session) -> None:
62
70
  @nox.session(python="3.12")
63
71
  def doc(session: nox.Session) -> None:
64
72
  """Build doc with sphinx."""
65
- session.run("pipenv", "install", "--dev", external=True)
73
+ session.install("pipenv")
74
+ session.run("pipenv", "install", "--dev")
66
75
  session.run("sphinx-build", "docs/source/", "docs/build/html")
67
76
 
68
77
 
69
78
  @nox.session(python="3.12")
70
- def readme(_session: nox.Session) -> None:
79
+ def readme(session: nox.Session) -> None:
71
80
  """Update console help menu to readme."""
81
+ session.install("pipenv")
82
+ session.run("pipenv", "install", "--dev")
72
83
  with open("README.md", "r+", encoding="utf8") as f:
73
84
  content = f.read()
74
85
  marker = content.split("<!--help !-->")[1]
75
86
 
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"
87
+ parser = cli.build_parser()
88
+ help_message = f"\n\n```console\n{parser.format_help()}```\n\n"
81
89
  readme_md = content.replace(marker, help_message)
82
90
 
83
91
  f.seek(0)
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
File without changes