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.
Files changed (56) hide show
  1. fotolab-0.31.2/.pre-commit-config.yaml +120 -0
  2. {fotolab-0.31.0 → fotolab-0.31.2}/CHANGELOG.md +18 -0
  3. {fotolab-0.31.0 → fotolab-0.31.2}/PKG-INFO +7 -2
  4. {fotolab-0.31.0 → fotolab-0.31.2}/Pipfile +2 -1
  5. {fotolab-0.31.0 → fotolab-0.31.2}/Pipfile.lock +251 -212
  6. {fotolab-0.31.0 → fotolab-0.31.2}/README.md +6 -1
  7. {fotolab-0.31.0 → fotolab-0.31.2}/fotolab/__init__.py +1 -1
  8. {fotolab-0.31.0 → fotolab-0.31.2}/fotolab/subcommands/__init__.py +1 -2
  9. {fotolab-0.31.0 → fotolab-0.31.2}/fotolab/subcommands/animate.py +10 -7
  10. {fotolab-0.31.0 → fotolab-0.31.2}/fotolab/subcommands/auto.py +1 -0
  11. {fotolab-0.31.0 → fotolab-0.31.2}/fotolab/subcommands/border.py +3 -9
  12. {fotolab-0.31.0 → fotolab-0.31.2}/fotolab/subcommands/contrast.py +3 -9
  13. {fotolab-0.31.0 → fotolab-0.31.2}/fotolab/subcommands/halftone.py +2 -6
  14. {fotolab-0.31.0 → fotolab-0.31.2}/fotolab/subcommands/info.py +17 -25
  15. {fotolab-0.31.0 → fotolab-0.31.2}/fotolab/subcommands/montage.py +1 -3
  16. {fotolab-0.31.0 → fotolab-0.31.2}/fotolab/subcommands/resize.py +1 -4
  17. {fotolab-0.31.0 → fotolab-0.31.2}/fotolab/subcommands/watermark.py +9 -21
  18. {fotolab-0.31.0 → fotolab-0.31.2}/noxfile.py +7 -20
  19. {fotolab-0.31.0 → fotolab-0.31.2}/tests/test_animate_subcommand.py +2 -1
  20. {fotolab-0.31.0 → fotolab-0.31.2}/tests/test_auto_subcommand.py +1 -0
  21. {fotolab-0.31.0 → fotolab-0.31.2}/tests/test_border_subcommand.py +2 -1
  22. {fotolab-0.31.0 → fotolab-0.31.2}/tests/test_contrast_subcommand.py +2 -1
  23. {fotolab-0.31.0 → fotolab-0.31.2}/tests/test_halftone_subcommand.py +2 -1
  24. {fotolab-0.31.0 → fotolab-0.31.2}/tests/test_info_subcommand.py +2 -1
  25. {fotolab-0.31.0 → fotolab-0.31.2}/tests/test_montage_subcommand.py +2 -1
  26. {fotolab-0.31.0 → fotolab-0.31.2}/tests/test_resize_subcommand.py +2 -1
  27. {fotolab-0.31.0 → fotolab-0.31.2}/tests/test_rotate_subcommand.py +2 -1
  28. {fotolab-0.31.0 → fotolab-0.31.2}/tests/test_sharpen_subcommand.py +2 -1
  29. {fotolab-0.31.0 → fotolab-0.31.2}/tests/test_watermark_subcommand.py +2 -1
  30. fotolab-0.31.0/.pre-commit-config.yaml +0 -113
  31. {fotolab-0.31.0 → fotolab-0.31.2}/.coveragerc +0 -0
  32. {fotolab-0.31.0 → fotolab-0.31.2}/.gitignore +0 -0
  33. {fotolab-0.31.0 → fotolab-0.31.2}/.python-version +0 -0
  34. {fotolab-0.31.0 → fotolab-0.31.2}/CONTRIBUTING.md +0 -0
  35. {fotolab-0.31.0 → fotolab-0.31.2}/LICENSE.md +0 -0
  36. {fotolab-0.31.0 → fotolab-0.31.2}/docs/Makefile +0 -0
  37. {fotolab-0.31.0 → fotolab-0.31.2}/docs/make.bat +0 -0
  38. {fotolab-0.31.0 → fotolab-0.31.2}/docs/source/CHANGELOG.md +0 -0
  39. {fotolab-0.31.0 → fotolab-0.31.2}/docs/source/CONTRIBUTING.md +0 -0
  40. {fotolab-0.31.0 → fotolab-0.31.2}/docs/source/LICENSE.md +0 -0
  41. {fotolab-0.31.0 → fotolab-0.31.2}/docs/source/README.md +0 -0
  42. {fotolab-0.31.0 → fotolab-0.31.2}/docs/source/_static/logo.jpg +0 -0
  43. {fotolab-0.31.0 → fotolab-0.31.2}/docs/source/conf.py +0 -0
  44. {fotolab-0.31.0 → fotolab-0.31.2}/docs/source/index.rst +0 -0
  45. {fotolab-0.31.0 → fotolab-0.31.2}/fotolab/__main__.py +0 -0
  46. {fotolab-0.31.0 → fotolab-0.31.2}/fotolab/cli.py +0 -0
  47. {fotolab-0.31.0 → fotolab-0.31.2}/fotolab/subcommands/env.py +0 -0
  48. {fotolab-0.31.0 → fotolab-0.31.2}/fotolab/subcommands/rotate.py +0 -0
  49. {fotolab-0.31.0 → fotolab-0.31.2}/fotolab/subcommands/sharpen.py +0 -0
  50. {fotolab-0.31.0 → fotolab-0.31.2}/generate +0 -0
  51. {fotolab-0.31.0 → fotolab-0.31.2}/pyproject.toml +0 -0
  52. {fotolab-0.31.0 → fotolab-0.31.2}/tests/__init__.py +0 -0
  53. {fotolab-0.31.0 → fotolab-0.31.2}/tests/conftest.py +0 -0
  54. {fotolab-0.31.0 → fotolab-0.31.2}/tests/test_env_subcommand.py +0 -0
  55. {fotolab-0.31.0 → fotolab-0.31.2}/tests/test_help_flag.py +0 -0
  56. {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.0
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] [--camera]
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"