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.
- {fotolab-0.16.8 → fotolab-0.16.10}/CHANGELOG.md +15 -0
- {fotolab-0.16.8 → fotolab-0.16.10}/CONTRIBUTING.md +7 -7
- {fotolab-0.16.8 → fotolab-0.16.10}/PKG-INFO +46 -2
- {fotolab-0.16.8 → fotolab-0.16.10}/Pipfile.lock +99 -107
- {fotolab-0.16.8 → fotolab-0.16.10}/README.md +45 -1
- {fotolab-0.16.8 → fotolab-0.16.10}/fotolab/__init__.py +1 -1
- {fotolab-0.16.8 → fotolab-0.16.10}/noxfile.py +24 -16
- {fotolab-0.16.8 → fotolab-0.16.10}/.coveragerc +0 -0
- {fotolab-0.16.8 → fotolab-0.16.10}/.gitignore +0 -0
- {fotolab-0.16.8 → fotolab-0.16.10}/.pre-commit-config.yaml +0 -0
- {fotolab-0.16.8 → fotolab-0.16.10}/.python-version +0 -0
- {fotolab-0.16.8 → fotolab-0.16.10}/LICENSE.md +0 -0
- {fotolab-0.16.8 → fotolab-0.16.10}/Pipfile +0 -0
- {fotolab-0.16.8 → fotolab-0.16.10}/docs/Makefile +0 -0
- {fotolab-0.16.8 → fotolab-0.16.10}/docs/make.bat +0 -0
- {fotolab-0.16.8 → fotolab-0.16.10}/docs/source/CHANGELOG.md +0 -0
- {fotolab-0.16.8 → fotolab-0.16.10}/docs/source/CONTRIBUTING.md +0 -0
- {fotolab-0.16.8 → fotolab-0.16.10}/docs/source/LICENSE.md +0 -0
- {fotolab-0.16.8 → fotolab-0.16.10}/docs/source/README.md +0 -0
- {fotolab-0.16.8 → fotolab-0.16.10}/docs/source/_static/logo.jpg +0 -0
- {fotolab-0.16.8 → fotolab-0.16.10}/docs/source/conf.py +0 -0
- {fotolab-0.16.8 → fotolab-0.16.10}/docs/source/index.rst +0 -0
- {fotolab-0.16.8 → fotolab-0.16.10}/fotolab/__main__.py +0 -0
- {fotolab-0.16.8 → fotolab-0.16.10}/fotolab/animate.py +0 -0
- {fotolab-0.16.8 → fotolab-0.16.10}/fotolab/auto.py +0 -0
- {fotolab-0.16.8 → fotolab-0.16.10}/fotolab/border.py +0 -0
- {fotolab-0.16.8 → fotolab-0.16.10}/fotolab/cli.py +0 -0
- {fotolab-0.16.8 → fotolab-0.16.10}/fotolab/contrast.py +0 -0
- {fotolab-0.16.8 → fotolab-0.16.10}/fotolab/env.py +0 -0
- {fotolab-0.16.8 → fotolab-0.16.10}/fotolab/info.py +0 -0
- {fotolab-0.16.8 → fotolab-0.16.10}/fotolab/montage.py +0 -0
- {fotolab-0.16.8 → fotolab-0.16.10}/fotolab/resize.py +0 -0
- {fotolab-0.16.8 → fotolab-0.16.10}/fotolab/rotate.py +0 -0
- {fotolab-0.16.8 → fotolab-0.16.10}/fotolab/sharpen.py +0 -0
- {fotolab-0.16.8 → fotolab-0.16.10}/fotolab/watermark.py +0 -0
- {fotolab-0.16.8 → fotolab-0.16.10}/pyproject.toml +0 -0
- {fotolab-0.16.8 → fotolab-0.16.10}/tests/__init__.py +0 -0
- {fotolab-0.16.8 → fotolab-0.16.10}/tests/conftest.py +0 -0
- {fotolab-0.16.8 → fotolab-0.16.10}/tests/test_env.py +0 -0
- {fotolab-0.16.8 → fotolab-0.16.10}/tests/test_help_flag.py +0 -0
- {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 ->
|
54
|
-
* test-3.8 ->
|
55
|
-
* test-3.9 ->
|
56
|
-
* test-3.10 ->
|
57
|
-
* test-3.11 ->
|
58
|
-
* test-3.12 ->
|
59
|
-
* cov ->
|
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.
|
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
|
-
|
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:
|
111
|
-
"sha256:
|
110
|
+
"sha256:75a8b99c28a5dad50dd7f8ccdd447a121ddb3892da9e53d1ca5cca3106d58d65",
|
111
|
+
"sha256:b46733c07dce03ae4e150330b975c75737fa60f0a7c591b6c8bf4928a28e2c92"
|
112
112
|
],
|
113
|
-
"markers": "python_version >= '3.
|
114
|
-
"version": "==0.7.
|
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:
|
266
|
-
"sha256:
|
267
|
-
"sha256:
|
268
|
-
"sha256:
|
269
|
-
"sha256:
|
270
|
-
"sha256:
|
271
|
-
"sha256:
|
272
|
-
"sha256:
|
273
|
-
"sha256:
|
274
|
-
"sha256:
|
275
|
-
"sha256:
|
276
|
-
"sha256:
|
277
|
-
"sha256:
|
278
|
-
"sha256:
|
279
|
-
"sha256:
|
280
|
-
"sha256:
|
281
|
-
"sha256:
|
282
|
-
"sha256:
|
283
|
-
"sha256:
|
284
|
-
"sha256:
|
285
|
-
"sha256:
|
286
|
-
"sha256:
|
287
|
-
"sha256:
|
288
|
-
"sha256:
|
289
|
-
"sha256:
|
290
|
-
"sha256:
|
291
|
-
"sha256:
|
292
|
-
"sha256:
|
293
|
-
"sha256:
|
294
|
-
"sha256:
|
295
|
-
"sha256:
|
296
|
-
"sha256:
|
297
|
-
"sha256:
|
298
|
-
"sha256:
|
299
|
-
"sha256:
|
300
|
-
"sha256:
|
301
|
-
"sha256:
|
302
|
-
"sha256:
|
303
|
-
"sha256:
|
304
|
-
"sha256:
|
305
|
-
"sha256:
|
306
|
-
"sha256:
|
307
|
-
"sha256:
|
308
|
-
"sha256:
|
309
|
-
"sha256:
|
310
|
-
"sha256:
|
311
|
-
"sha256:
|
312
|
-
"sha256:
|
313
|
-
"sha256:
|
314
|
-
"sha256:
|
315
|
-
"sha256:
|
316
|
-
"sha256:
|
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.
|
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:
|
331
|
-
"sha256:
|
330
|
+
"sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f",
|
331
|
+
"sha256:dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2"
|
332
332
|
],
|
333
|
-
"markers": "python_version >= '3.
|
334
|
-
"version": "==0.
|
333
|
+
"markers": "python_version >= '3.9'",
|
334
|
+
"version": "==0.21.2"
|
335
335
|
},
|
336
336
|
"exceptiongroup": {
|
337
337
|
"hashes": [
|
338
|
-
"sha256:
|
339
|
-
"sha256:
|
338
|
+
"sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b",
|
339
|
+
"sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"
|
340
340
|
],
|
341
341
|
"index": "pypi",
|
342
342
|
"markers": "python_version >= '3.7'",
|
343
|
-
"version": "==1.2.
|
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:
|
420
|
-
"sha256:
|
419
|
+
"sha256:cb171c685bdc31bcc4c1734698736a7d5b6c8bf2e0c15117f4d469c8640ae5cf",
|
420
|
+
"sha256:e79ae4406387a9d300332b5fd366d8994f1525e8414984e1a59e058b2eda2dd0"
|
421
421
|
],
|
422
422
|
"markers": "python_version >= '3.8'",
|
423
|
-
"version": "==2.
|
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:
|
704
|
-
"sha256:
|
703
|
+
"sha256:8ca3ad567bc78a4972a3f1a477e94a79d4597e8140a6e0b651c5e33899c3654a",
|
704
|
+
"sha256:fae36fd1d7ad7d6a5a1c0b0d5adb2ed1a3bda5a21bf6c3e5372073d7a11cd4c5"
|
705
705
|
],
|
706
706
|
"index": "pypi",
|
707
|
-
"markers": "python_version >= '3.
|
708
|
-
"version": "==3.
|
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:
|
868
|
-
"sha256:
|
859
|
+
"sha256:116918d455c493fff3178edea12b4fe1c1e4894680fd81e7b7431ea21d47ca52",
|
860
|
+
"sha256:915760d6188288a1e30c2cd0d9fa31b1b009bc6e6019cc0c32d16c77d20e86d9"
|
869
861
|
],
|
870
862
|
"index": "pypi",
|
871
|
-
"markers": "python_version >= '3.
|
872
|
-
"version": "==7.
|
863
|
+
"markers": "python_version >= '3.9'",
|
864
|
+
"version": "==7.4.6"
|
873
865
|
},
|
874
866
|
"sphinx-autodoc-typehints": {
|
875
867
|
"hashes": [
|
876
|
-
"sha256:
|
877
|
-
"sha256:
|
868
|
+
"sha256:b7058e8c5831e5598afca1a78fda0695d3291388d954464a6e480c36198680c0",
|
869
|
+
"sha256:fde3d888949bd0a91207cf1e54afda58121dbb4bf1f183d0cc78a0826654c974"
|
878
870
|
],
|
879
871
|
"index": "pypi",
|
880
|
-
"markers": "python_version >= '3.
|
881
|
-
"version": "==2.
|
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:
|
895
|
-
"sha256:
|
886
|
+
"sha256:c40a4f96f3776c4393d933412053962fac2b84f4c99a7982ba42e09576a70619",
|
887
|
+
"sha256:cb61eb0ec1b61f349e5cc36b2028e9e7ca765be05e49641c97241274753067b4"
|
896
888
|
],
|
897
|
-
"markers": "python_version >= '3.
|
898
|
-
"version": "==1.0.
|
889
|
+
"markers": "python_version >= '3.9'",
|
890
|
+
"version": "==1.0.8"
|
899
891
|
},
|
900
892
|
"sphinxcontrib-devhelp": {
|
901
893
|
"hashes": [
|
902
|
-
"sha256:
|
903
|
-
"sha256:
|
894
|
+
"sha256:6485d09629944511c893fa11355bda18b742b83a2b181f9a009f7e500595c90f",
|
895
|
+
"sha256:9893fd3f90506bc4b97bdb977ceb8fbd823989f4316b28c3841ec128544372d3"
|
904
896
|
],
|
905
|
-
"markers": "python_version >= '3.
|
906
|
-
"version": "==1.0.
|
897
|
+
"markers": "python_version >= '3.9'",
|
898
|
+
"version": "==1.0.6"
|
907
899
|
},
|
908
900
|
"sphinxcontrib-htmlhelp": {
|
909
901
|
"hashes": [
|
910
|
-
"sha256:
|
911
|
-
"sha256:
|
902
|
+
"sha256:0dc87637d5de53dd5eec3a6a01753b1ccf99494bd756aafecd74b4fa9e729015",
|
903
|
+
"sha256:393f04f112b4d2f53d93448d4bce35842f62b307ccdc549ec1585e950bc35e04"
|
912
904
|
],
|
913
|
-
"markers": "python_version >= '3.
|
914
|
-
"version": "==2.0.
|
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:
|
927
|
-
"sha256:
|
918
|
+
"sha256:053dedc38823a80a7209a80860b16b722e9e0209e32fea98c90e4e6624588ed6",
|
919
|
+
"sha256:e2ae3b5c492d58fcbd73281fbd27e34b8393ec34a073c792642cd8e529288182"
|
928
920
|
],
|
929
|
-
"markers": "python_version >= '3.
|
930
|
-
"version": "==1.0.
|
921
|
+
"markers": "python_version >= '3.9'",
|
922
|
+
"version": "==1.0.7"
|
931
923
|
},
|
932
924
|
"sphinxcontrib-serializinghtml": {
|
933
925
|
"hashes": [
|
934
|
-
"sha256:
|
935
|
-
"sha256:
|
926
|
+
"sha256:326369b8df80a7d2d8d7f99aa5ac577f51ea51556ed974e7716cfd4fca3f6cb7",
|
927
|
+
"sha256:93f3f5dc458b91b192fe10c397e324f262cf163d79f3282c158e8436a2c4511f"
|
936
928
|
],
|
937
|
-
"markers": "python_version >= '3.
|
938
|
-
"version": "==1.1.
|
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
|
-
|
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
|
@@ -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
|
-
|
17
|
+
|
18
|
+
# flake8: noqa: E402
|
19
|
+
# pylint: disable=C0413
|
20
|
+
|
21
|
+
import sys
|
18
22
|
|
19
23
|
import nox
|
20
24
|
|
21
|
-
|
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"
|
35
|
+
session.run("pipenv", "update")
|
30
36
|
|
31
37
|
|
32
38
|
@nox.session()
|
33
39
|
def lint(session: nox.Session) -> None:
|
34
|
-
"""
|
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
|
-
"""
|
42
|
-
session.
|
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
|
-
"""
|
49
|
-
session.
|
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.
|
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(
|
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
|
-
|
77
|
-
|
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
|
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
|