fotolab 0.31.0__tar.gz → 0.31.2__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.31.2/.pre-commit-config.yaml +120 -0
- {fotolab-0.31.0 → fotolab-0.31.2}/CHANGELOG.md +18 -0
- {fotolab-0.31.0 → fotolab-0.31.2}/PKG-INFO +7 -2
- {fotolab-0.31.0 → fotolab-0.31.2}/Pipfile +2 -1
- {fotolab-0.31.0 → fotolab-0.31.2}/Pipfile.lock +251 -212
- {fotolab-0.31.0 → fotolab-0.31.2}/README.md +6 -1
- {fotolab-0.31.0 → fotolab-0.31.2}/fotolab/__init__.py +1 -1
- {fotolab-0.31.0 → fotolab-0.31.2}/fotolab/subcommands/__init__.py +1 -2
- {fotolab-0.31.0 → fotolab-0.31.2}/fotolab/subcommands/animate.py +10 -7
- {fotolab-0.31.0 → fotolab-0.31.2}/fotolab/subcommands/auto.py +1 -0
- {fotolab-0.31.0 → fotolab-0.31.2}/fotolab/subcommands/border.py +3 -9
- {fotolab-0.31.0 → fotolab-0.31.2}/fotolab/subcommands/contrast.py +3 -9
- {fotolab-0.31.0 → fotolab-0.31.2}/fotolab/subcommands/halftone.py +2 -6
- {fotolab-0.31.0 → fotolab-0.31.2}/fotolab/subcommands/info.py +17 -25
- {fotolab-0.31.0 → fotolab-0.31.2}/fotolab/subcommands/montage.py +1 -3
- {fotolab-0.31.0 → fotolab-0.31.2}/fotolab/subcommands/resize.py +1 -4
- {fotolab-0.31.0 → fotolab-0.31.2}/fotolab/subcommands/watermark.py +9 -21
- {fotolab-0.31.0 → fotolab-0.31.2}/noxfile.py +7 -20
- {fotolab-0.31.0 → fotolab-0.31.2}/tests/test_animate_subcommand.py +2 -1
- {fotolab-0.31.0 → fotolab-0.31.2}/tests/test_auto_subcommand.py +1 -0
- {fotolab-0.31.0 → fotolab-0.31.2}/tests/test_border_subcommand.py +2 -1
- {fotolab-0.31.0 → fotolab-0.31.2}/tests/test_contrast_subcommand.py +2 -1
- {fotolab-0.31.0 → fotolab-0.31.2}/tests/test_halftone_subcommand.py +2 -1
- {fotolab-0.31.0 → fotolab-0.31.2}/tests/test_info_subcommand.py +2 -1
- {fotolab-0.31.0 → fotolab-0.31.2}/tests/test_montage_subcommand.py +2 -1
- {fotolab-0.31.0 → fotolab-0.31.2}/tests/test_resize_subcommand.py +2 -1
- {fotolab-0.31.0 → fotolab-0.31.2}/tests/test_rotate_subcommand.py +2 -1
- {fotolab-0.31.0 → fotolab-0.31.2}/tests/test_sharpen_subcommand.py +2 -1
- {fotolab-0.31.0 → fotolab-0.31.2}/tests/test_watermark_subcommand.py +2 -1
- fotolab-0.31.0/.pre-commit-config.yaml +0 -113
- {fotolab-0.31.0 → fotolab-0.31.2}/.coveragerc +0 -0
- {fotolab-0.31.0 → fotolab-0.31.2}/.gitignore +0 -0
- {fotolab-0.31.0 → fotolab-0.31.2}/.python-version +0 -0
- {fotolab-0.31.0 → fotolab-0.31.2}/CONTRIBUTING.md +0 -0
- {fotolab-0.31.0 → fotolab-0.31.2}/LICENSE.md +0 -0
- {fotolab-0.31.0 → fotolab-0.31.2}/docs/Makefile +0 -0
- {fotolab-0.31.0 → fotolab-0.31.2}/docs/make.bat +0 -0
- {fotolab-0.31.0 → fotolab-0.31.2}/docs/source/CHANGELOG.md +0 -0
- {fotolab-0.31.0 → fotolab-0.31.2}/docs/source/CONTRIBUTING.md +0 -0
- {fotolab-0.31.0 → fotolab-0.31.2}/docs/source/LICENSE.md +0 -0
- {fotolab-0.31.0 → fotolab-0.31.2}/docs/source/README.md +0 -0
- {fotolab-0.31.0 → fotolab-0.31.2}/docs/source/_static/logo.jpg +0 -0
- {fotolab-0.31.0 → fotolab-0.31.2}/docs/source/conf.py +0 -0
- {fotolab-0.31.0 → fotolab-0.31.2}/docs/source/index.rst +0 -0
- {fotolab-0.31.0 → fotolab-0.31.2}/fotolab/__main__.py +0 -0
- {fotolab-0.31.0 → fotolab-0.31.2}/fotolab/cli.py +0 -0
- {fotolab-0.31.0 → fotolab-0.31.2}/fotolab/subcommands/env.py +0 -0
- {fotolab-0.31.0 → fotolab-0.31.2}/fotolab/subcommands/rotate.py +0 -0
- {fotolab-0.31.0 → fotolab-0.31.2}/fotolab/subcommands/sharpen.py +0 -0
- {fotolab-0.31.0 → fotolab-0.31.2}/generate +0 -0
- {fotolab-0.31.0 → fotolab-0.31.2}/pyproject.toml +0 -0
- {fotolab-0.31.0 → fotolab-0.31.2}/tests/__init__.py +0 -0
- {fotolab-0.31.0 → fotolab-0.31.2}/tests/conftest.py +0 -0
- {fotolab-0.31.0 → fotolab-0.31.2}/tests/test_env_subcommand.py +0 -0
- {fotolab-0.31.0 → fotolab-0.31.2}/tests/test_help_flag.py +0 -0
- {fotolab-0.31.0 → fotolab-0.31.2}/tests/test_quiet_flag.py +0 -0
@@ -0,0 +1,120 @@
|
|
1
|
+
# See https://pre-commit.com for more information
|
2
|
+
# See https://pre-commit.com/hooks.html for more hooks
|
3
|
+
repos:
|
4
|
+
- repo: https://github.com/pre-commit/pre-commit-hooks
|
5
|
+
rev: v5.0.0
|
6
|
+
hooks:
|
7
|
+
- id: check-case-conflict
|
8
|
+
- id: check-merge-conflict
|
9
|
+
- id: check-toml
|
10
|
+
- id: check-yaml
|
11
|
+
- id: debug-statements
|
12
|
+
- id: detect-private-key
|
13
|
+
- id: end-of-file-fixer
|
14
|
+
- id: mixed-line-ending
|
15
|
+
- id: trailing-whitespace
|
16
|
+
|
17
|
+
- repo: https://github.com/abravalheri/validate-pyproject
|
18
|
+
rev: v0.24.1
|
19
|
+
hooks:
|
20
|
+
- id: validate-pyproject
|
21
|
+
name: validate-pyproject
|
22
|
+
|
23
|
+
- repo: https://github.com/codespell-project/codespell
|
24
|
+
rev: v2.4.1
|
25
|
+
hooks:
|
26
|
+
- id: codespell
|
27
|
+
args:
|
28
|
+
- --ignore-words-list=astroid
|
29
|
+
|
30
|
+
- repo: https://github.com/pre-commit/mirrors-prettier
|
31
|
+
rev: v4.0.0-alpha.8
|
32
|
+
hooks:
|
33
|
+
- id: prettier
|
34
|
+
exclude: (Pipfile.lock)
|
35
|
+
|
36
|
+
- repo: https://github.com/astral-sh/ruff-pre-commit
|
37
|
+
rev: v0.11.13
|
38
|
+
hooks:
|
39
|
+
- id: ruff-check
|
40
|
+
args: [--fix]
|
41
|
+
- id: ruff-format
|
42
|
+
|
43
|
+
# - repo: https://github.com/pycqa/isort
|
44
|
+
# rev: 6.0.1
|
45
|
+
# hooks:
|
46
|
+
# - id: isort
|
47
|
+
# additional_dependencies:
|
48
|
+
# - isort[pyproject]
|
49
|
+
# args:
|
50
|
+
# - --profile=black
|
51
|
+
# - --line-length=79
|
52
|
+
# - --py=312
|
53
|
+
|
54
|
+
# - repo: https://github.com/psf/black
|
55
|
+
# rev: 25.1.0
|
56
|
+
# hooks:
|
57
|
+
# - id: black
|
58
|
+
# language_version: python3.13
|
59
|
+
# args:
|
60
|
+
# - --line-length=79
|
61
|
+
# - --target-version=py38
|
62
|
+
# - --target-version=py39
|
63
|
+
# - --target-version=py310
|
64
|
+
# - --target-version=py311
|
65
|
+
# - --target-version=py312
|
66
|
+
|
67
|
+
# - repo: https://github.com/asottile/blacken-docs
|
68
|
+
# rev: 1.19.1
|
69
|
+
# hooks:
|
70
|
+
# - id: blacken-docs
|
71
|
+
# additional_dependencies:
|
72
|
+
# - black==22.8.0
|
73
|
+
|
74
|
+
# - repo: https://github.com/PyCQA/autoflake
|
75
|
+
# rev: v2.3.1
|
76
|
+
# hooks:
|
77
|
+
# - id: autoflake
|
78
|
+
# args:
|
79
|
+
# - --in-place
|
80
|
+
# - --remove-unused-variables
|
81
|
+
# - --remove-all-unused-imports
|
82
|
+
# language: python
|
83
|
+
# files: \.py$
|
84
|
+
# language_version: python3.13
|
85
|
+
|
86
|
+
# - repo: https://github.com/PyCQA/flake8
|
87
|
+
# rev: 7.2.0
|
88
|
+
# hooks:
|
89
|
+
# - id: flake8
|
90
|
+
# language_version: python3.13
|
91
|
+
# additional_dependencies:
|
92
|
+
# - flake8-docstrings
|
93
|
+
# - flake8-pytest-style
|
94
|
+
# args:
|
95
|
+
# - --docstring-convention=google
|
96
|
+
# - --show-source
|
97
|
+
# - --max-line-length=79
|
98
|
+
# - --exclude=docs/source/conf.py
|
99
|
+
# - --per-file-ignores=fotolab/*:D208 tests/*:D100,D103,D104,E501
|
100
|
+
|
101
|
+
# - repo: local
|
102
|
+
# hooks:
|
103
|
+
# - id: pylint
|
104
|
+
# name: pylint
|
105
|
+
# entry: pylint
|
106
|
+
# language: system
|
107
|
+
# types:
|
108
|
+
# - python
|
109
|
+
# exclude: docs/
|
110
|
+
# args:
|
111
|
+
# - fotolab
|
112
|
+
# - tests
|
113
|
+
# - --unsafe-load-any-extension=y
|
114
|
+
# - --disable=R0801,W0212
|
115
|
+
|
116
|
+
- repo: https://github.com/pre-commit/mirrors-mypy
|
117
|
+
rev: v1.16.0
|
118
|
+
hooks:
|
119
|
+
- id: mypy
|
120
|
+
exclude: docs/
|
@@ -7,6 +7,24 @@ and this project adheres to [0-based versioning](https://0ver.org/).
|
|
7
7
|
|
8
8
|
## [Unreleased]
|
9
9
|
|
10
|
+
## v0.31.2 (2025-06-08)
|
11
|
+
|
12
|
+
- Add `ruff` to dev deps
|
13
|
+
- Add `ruff` to `pre-commit` hook
|
14
|
+
- Bump `pre-commit` hook for mypy
|
15
|
+
- Code format
|
16
|
+
- Skip `pre-commit` manual installation
|
17
|
+
- Sort deps
|
18
|
+
|
19
|
+
## v0.31.1 (2025-06-01)
|
20
|
+
|
21
|
+
- Code format
|
22
|
+
- Fix incorrect function name due to refactoring
|
23
|
+
- Fix missing option in `auto` subcommand
|
24
|
+
- Refactor `info` subcommand and improve EXIF extraction
|
25
|
+
- Remove unused type
|
26
|
+
- Update help message in readme
|
27
|
+
|
10
28
|
## v0.31.0 (2025-05-25)
|
11
29
|
|
12
30
|
- Add basic tests for several CLI subcommands
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: fotolab
|
3
|
-
Version: 0.31.
|
3
|
+
Version: 0.31.2
|
4
4
|
Summary: A console program that manipulate images.
|
5
5
|
Keywords: photography,photo
|
6
6
|
Author-email: Kian-Meng Ang <kianmeng@cpan.org>
|
@@ -371,7 +371,8 @@ fotolab watermark -h
|
|
371
371
|
usage: fotolab watermark [-h] [-t WATERMARK_TEXT]
|
372
372
|
[-p {top-left,top-right,bottom-left,bottom-right}]
|
373
373
|
[-pd PADDING] [-fs FONT_SIZE] [-fc FONT_COLOR]
|
374
|
-
[-ow OUTLINE_WIDTH] [-oc OUTLINE_COLOR]
|
374
|
+
[-ow OUTLINE_WIDTH] [-oc OUTLINE_COLOR]
|
375
|
+
[-a ALPHA_VALUE] [--camera]
|
375
376
|
[-l | --lowercase | --no-lowercase] [-op]
|
376
377
|
[-od OUTPUT_DIR]
|
377
378
|
IMAGE_FILENAMES [IMAGE_FILENAMES ...]
|
@@ -400,6 +401,10 @@ options:
|
|
400
401
|
-oc, --outline-color OUTLINE_COLOR
|
401
402
|
set the outline color of the watermark text (default:
|
402
403
|
'black')
|
404
|
+
-a, --alpha ALPHA_VALUE
|
405
|
+
set the transparency of the watermark text (0-255,
|
406
|
+
where 0 is fully transparent and 255 is fully opaque;
|
407
|
+
default: '128')
|
403
408
|
--camera use camera metadata as watermark
|
404
409
|
-l, --lowercase, --no-lowercase
|
405
410
|
lowercase the watermark text
|
@@ -12,6 +12,7 @@ flake8-docstrings = "*"
|
|
12
12
|
flake8-print = "*"
|
13
13
|
flake8-pytest-style = "*"
|
14
14
|
flake8-simplify = "*"
|
15
|
+
flit = "*"
|
15
16
|
fotolab = {editable = true, path = "."}
|
16
17
|
importlib-metadata = "*"
|
17
18
|
myst-parser = "*"
|
@@ -21,12 +22,12 @@ pytest = "*"
|
|
21
22
|
pytest-cov = "*"
|
22
23
|
pytest-randomly = "*"
|
23
24
|
pytest-xdist = "*"
|
25
|
+
ruff = "*"
|
24
26
|
scripttest = "*"
|
25
27
|
sphinx = "*"
|
26
28
|
sphinx-autodoc-typehints = "*"
|
27
29
|
sphinx-copybutton = "*"
|
28
30
|
tomli = "*"
|
29
|
-
flit = "*"
|
30
31
|
|
31
32
|
[requires]
|
32
33
|
python_version = "3.9"
|