fotolab 0.21.0__tar.gz → 0.21.1__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.21.0 → fotolab-0.21.1}/CHANGELOG.md +7 -0
  2. {fotolab-0.21.0 → fotolab-0.21.1}/PKG-INFO +2 -1
  3. {fotolab-0.21.0 → fotolab-0.21.1}/Pipfile +1 -1
  4. {fotolab-0.21.0 → fotolab-0.21.1}/Pipfile.lock +79 -84
  5. {fotolab-0.21.0 → fotolab-0.21.1}/fotolab/__init__.py +1 -1
  6. {fotolab-0.21.0 → fotolab-0.21.1}/fotolab/info.py +11 -4
  7. {fotolab-0.21.0 → fotolab-0.21.1}/pyproject.toml +1 -0
  8. {fotolab-0.21.0 → fotolab-0.21.1}/.coveragerc +0 -0
  9. {fotolab-0.21.0 → fotolab-0.21.1}/.gitignore +0 -0
  10. {fotolab-0.21.0 → fotolab-0.21.1}/.pre-commit-config.yaml +0 -0
  11. {fotolab-0.21.0 → fotolab-0.21.1}/.python-version +0 -0
  12. {fotolab-0.21.0 → fotolab-0.21.1}/CONTRIBUTING.md +0 -0
  13. {fotolab-0.21.0 → fotolab-0.21.1}/LICENSE.md +0 -0
  14. {fotolab-0.21.0 → fotolab-0.21.1}/README.md +0 -0
  15. {fotolab-0.21.0 → fotolab-0.21.1}/docs/Makefile +0 -0
  16. {fotolab-0.21.0 → fotolab-0.21.1}/docs/make.bat +0 -0
  17. {fotolab-0.21.0 → fotolab-0.21.1}/docs/source/CHANGELOG.md +0 -0
  18. {fotolab-0.21.0 → fotolab-0.21.1}/docs/source/CONTRIBUTING.md +0 -0
  19. {fotolab-0.21.0 → fotolab-0.21.1}/docs/source/LICENSE.md +0 -0
  20. {fotolab-0.21.0 → fotolab-0.21.1}/docs/source/README.md +0 -0
  21. {fotolab-0.21.0 → fotolab-0.21.1}/docs/source/_static/logo.jpg +0 -0
  22. {fotolab-0.21.0 → fotolab-0.21.1}/docs/source/conf.py +0 -0
  23. {fotolab-0.21.0 → fotolab-0.21.1}/docs/source/index.rst +0 -0
  24. {fotolab-0.21.0 → fotolab-0.21.1}/fotolab/__main__.py +0 -0
  25. {fotolab-0.21.0 → fotolab-0.21.1}/fotolab/animate.py +0 -0
  26. {fotolab-0.21.0 → fotolab-0.21.1}/fotolab/auto.py +0 -0
  27. {fotolab-0.21.0 → fotolab-0.21.1}/fotolab/border.py +0 -0
  28. {fotolab-0.21.0 → fotolab-0.21.1}/fotolab/cli.py +0 -0
  29. {fotolab-0.21.0 → fotolab-0.21.1}/fotolab/contrast.py +0 -0
  30. {fotolab-0.21.0 → fotolab-0.21.1}/fotolab/env.py +0 -0
  31. {fotolab-0.21.0 → fotolab-0.21.1}/fotolab/montage.py +0 -0
  32. {fotolab-0.21.0 → fotolab-0.21.1}/fotolab/resize.py +0 -0
  33. {fotolab-0.21.0 → fotolab-0.21.1}/fotolab/rotate.py +0 -0
  34. {fotolab-0.21.0 → fotolab-0.21.1}/fotolab/sharpen.py +0 -0
  35. {fotolab-0.21.0 → fotolab-0.21.1}/fotolab/watermark.py +0 -0
  36. {fotolab-0.21.0 → fotolab-0.21.1}/noxfile.py +0 -0
  37. {fotolab-0.21.0 → fotolab-0.21.1}/tests/__init__.py +0 -0
  38. {fotolab-0.21.0 → fotolab-0.21.1}/tests/conftest.py +0 -0
  39. {fotolab-0.21.0 → fotolab-0.21.1}/tests/test_env.py +0 -0
  40. {fotolab-0.21.0 → fotolab-0.21.1}/tests/test_help_flag.py +0 -0
  41. {fotolab-0.21.0 → fotolab-0.21.1}/tests/test_quiet_flag.py +0 -0
@@ -7,6 +7,13 @@ and this project adheres to [0-based versioning](https://0ver.org/).
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## v0.21.1 (2024-12-01)
11
+
12
+ - Add requires-python field to project
13
+ - Bump deps
14
+ - Check whether photo have metadata
15
+ - Update Pipfile to Python 3.9
16
+
10
17
  ## v0.21.0 (2024-11-24)
11
18
 
12
19
  - Add `--camera` flag to `info` subcommand
@@ -1,9 +1,10 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fotolab
3
- Version: 0.21.0
3
+ Version: 0.21.1
4
4
  Summary: A console program that manipulate images.
5
5
  Keywords: photography,photo
6
6
  Author-email: Kian-Meng Ang <kianmeng@cpan.org>
7
+ Requires-Python: >=3.9
7
8
  Description-Content-Type: text/markdown
8
9
  Classifier: Development Status :: 3 - Alpha
9
10
  Classifier: Environment :: Console
@@ -28,4 +28,4 @@ sphinx-copybutton = "*"
28
28
  tomli = "*"
29
29
 
30
30
  [requires]
31
- python_version = "3.8"
31
+ python_version = "3.9"
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "_meta": {
3
3
  "hash": {
4
- "sha256": "8d7307a0ff05c5de6ef45cc8bc2e1bf6c18b97ccf3a911c31ce0dd9a77feab08"
4
+ "sha256": "0a76818192d0f36d59673b525a42ef562d0678471a6ec325a562062019c84c4b"
5
5
  },
6
6
  "pipfile-spec": 6,
7
7
  "requires": {
8
- "python_version": "3.8"
8
+ "python_version": "3.9"
9
9
  },
10
10
  "sources": [
11
11
  {
@@ -18,90 +18,85 @@
18
18
  "default": {
19
19
  "pillow": {
20
20
  "hashes": [
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"
21
+ "sha256:00177a63030d612148e659b55ba99527803288cea7c75fb05766ab7981a8c1b7",
22
+ "sha256:006bcdd307cc47ba43e924099a038cbf9591062e6c50e570819743f5607404f5",
23
+ "sha256:084a07ef0821cfe4858fe86652fffac8e187b6ae677e9906e192aafcc1b69903",
24
+ "sha256:0ae08bd8ffc41aebf578c2af2f9d8749d91f448b3bfd41d7d9ff573d74f2a6b2",
25
+ "sha256:0e038b0745997c7dcaae350d35859c9715c71e92ffb7e0f4a8e8a16732150f38",
26
+ "sha256:1187739620f2b365de756ce086fdb3604573337cc28a0d3ac4a01ab6b2d2a6d2",
27
+ "sha256:16095692a253047fe3ec028e951fa4221a1f3ed3d80c397e83541a3037ff67c9",
28
+ "sha256:1a61b54f87ab5786b8479f81c4b11f4d61702830354520837f8cc791ebba0f5f",
29
+ "sha256:1c1d72714f429a521d8d2d018badc42414c3077eb187a59579f28e4270b4b0fc",
30
+ "sha256:1e2688958a840c822279fda0086fec1fdab2f95bf2b717b66871c4ad9859d7e8",
31
+ "sha256:20ec184af98a121fb2da42642dea8a29ec80fc3efbaefb86d8fdd2606619045d",
32
+ "sha256:21a0d3b115009ebb8ac3d2ebec5c2982cc693da935f4ab7bb5c8ebe2f47d36f2",
33
+ "sha256:224aaa38177597bb179f3ec87eeefcce8e4f85e608025e9cfac60de237ba6316",
34
+ "sha256:2679d2258b7f1192b378e2893a8a0a0ca472234d4c2c0e6bdd3380e8dfa21b6a",
35
+ "sha256:27a7860107500d813fcd203b4ea19b04babe79448268403172782754870dac25",
36
+ "sha256:290f2cc809f9da7d6d622550bbf4c1e57518212da51b6a30fe8e0a270a5b78bd",
37
+ "sha256:2e46773dc9f35a1dd28bd6981332fd7f27bec001a918a72a79b4133cf5291dba",
38
+ "sha256:3107c66e43bda25359d5ef446f59c497de2b5ed4c7fdba0894f8d6cf3822dafc",
39
+ "sha256:375b8dd15a1f5d2feafff536d47e22f69625c1aa92f12b339ec0b2ca40263273",
40
+ "sha256:45c566eb10b8967d71bf1ab8e4a525e5a93519e29ea071459ce517f6b903d7fa",
41
+ "sha256:499c3a1b0d6fc8213519e193796eb1a86a1be4b1877d678b30f83fd979811d1a",
42
+ "sha256:4ad70c4214f67d7466bea6a08061eba35c01b1b89eaa098040a35272a8efb22b",
43
+ "sha256:4b60c9520f7207aaf2e1d94de026682fc227806c6e1f55bba7606d1c94dd623a",
44
+ "sha256:5178952973e588b3f1360868847334e9e3bf49d19e169bbbdfaf8398002419ae",
45
+ "sha256:52a2d8323a465f84faaba5236567d212c3668f2ab53e1c74c15583cf507a0291",
46
+ "sha256:598b4e238f13276e0008299bd2482003f48158e2b11826862b1eb2ad7c768b97",
47
+ "sha256:5bd2d3bdb846d757055910f0a59792d33b555800813c3b39ada1829c372ccb06",
48
+ "sha256:5c39ed17edea3bc69c743a8dd3e9853b7509625c2462532e62baa0732163a904",
49
+ "sha256:5d203af30149ae339ad1b4f710d9844ed8796e97fda23ffbc4cc472968a47d0b",
50
+ "sha256:5ddbfd761ee00c12ee1be86c9c0683ecf5bb14c9772ddbd782085779a63dd55b",
51
+ "sha256:607bbe123c74e272e381a8d1957083a9463401f7bd01287f50521ecb05a313f8",
52
+ "sha256:61b887f9ddba63ddf62fd02a3ba7add935d053b6dd7d58998c630e6dbade8527",
53
+ "sha256:6619654954dc4936fcff82db8eb6401d3159ec6be81e33c6000dfd76ae189947",
54
+ "sha256:674629ff60030d144b7bca2b8330225a9b11c482ed408813924619c6f302fdbb",
55
+ "sha256:6ec0d5af64f2e3d64a165f490d96368bb5dea8b8f9ad04487f9ab60dc4bb6003",
56
+ "sha256:6f4dba50cfa56f910241eb7f883c20f1e7b1d8f7d91c750cd0b318bad443f4d5",
57
+ "sha256:70fbbdacd1d271b77b7721fe3cdd2d537bbbd75d29e6300c672ec6bb38d9672f",
58
+ "sha256:72bacbaf24ac003fea9bff9837d1eedb6088758d41e100c1552930151f677739",
59
+ "sha256:7326a1787e3c7b0429659e0a944725e1b03eeaa10edd945a86dead1913383944",
60
+ "sha256:73853108f56df97baf2bb8b522f3578221e56f646ba345a372c78326710d3830",
61
+ "sha256:73e3a0200cdda995c7e43dd47436c1548f87a30bb27fb871f352a22ab8dcf45f",
62
+ "sha256:75acbbeb05b86bc53cbe7b7e6fe00fbcf82ad7c684b3ad82e3d711da9ba287d3",
63
+ "sha256:8069c5179902dcdce0be9bfc8235347fdbac249d23bd90514b7a47a72d9fecf4",
64
+ "sha256:846e193e103b41e984ac921b335df59195356ce3f71dcfd155aa79c603873b84",
65
+ "sha256:8594f42df584e5b4bb9281799698403f7af489fba84c34d53d1c4bfb71b7c4e7",
66
+ "sha256:86510e3f5eca0ab87429dd77fafc04693195eec7fd6a137c389c3eeb4cfb77c6",
67
+ "sha256:8853a3bf12afddfdf15f57c4b02d7ded92c7a75a5d7331d19f4f9572a89c17e6",
68
+ "sha256:88a58d8ac0cc0e7f3a014509f0455248a76629ca9b604eca7dc5927cc593c5e9",
69
+ "sha256:8ba470552b48e5835f1d23ecb936bb7f71d206f9dfeee64245f30c3270b994de",
70
+ "sha256:8c676b587da5673d3c75bd67dd2a8cdfeb282ca38a30f37950511766b26858c4",
71
+ "sha256:8ec4a89295cd6cd4d1058a5e6aec6bf51e0eaaf9714774e1bfac7cfc9051db47",
72
+ "sha256:94f3e1780abb45062287b4614a5bc0874519c86a777d4a7ad34978e86428b8dd",
73
+ "sha256:9a0f748eaa434a41fccf8e1ee7a3eed68af1b690e75328fd7a60af123c193b50",
74
+ "sha256:a5629742881bcbc1f42e840af185fd4d83a5edeb96475a575f4da50d6ede337c",
75
+ "sha256:a65149d8ada1055029fcb665452b2814fe7d7082fcb0c5bed6db851cb69b2086",
76
+ "sha256:b3c5ac4bed7519088103d9450a1107f76308ecf91d6dabc8a33a2fcfb18d0fba",
77
+ "sha256:b4fd7bd29610a83a8c9b564d457cf5bd92b4e11e79a4ee4716a63c959699b306",
78
+ "sha256:bcd1fb5bb7b07f64c15618c89efcc2cfa3e95f0e3bcdbaf4642509de1942a699",
79
+ "sha256:c12b5ae868897c7338519c03049a806af85b9b8c237b7d675b8c5e089e4a618e",
80
+ "sha256:c26845094b1af3c91852745ae78e3ea47abf3dbcd1cf962f16b9a5fbe3ee8488",
81
+ "sha256:c6a660307ca9d4867caa8d9ca2c2658ab685de83792d1876274991adec7b93fa",
82
+ "sha256:c809a70e43c7977c4a42aefd62f0131823ebf7dd73556fa5d5950f5b354087e2",
83
+ "sha256:c8b2351c85d855293a299038e1f89db92a2f35e8d2f783489c6f0b2b5f3fe8a3",
84
+ "sha256:cb929ca942d0ec4fac404cbf520ee6cac37bf35be479b970c4ffadf2b6a1cad9",
85
+ "sha256:d2c0a187a92a1cb5ef2c8ed5412dd8d4334272617f532d4ad4de31e0495bd923",
86
+ "sha256:d69bfd8ec3219ae71bcde1f942b728903cad25fafe3100ba2258b973bd2bc1b2",
87
+ "sha256:daffdf51ee5db69a82dd127eabecce20729e21f7a3680cf7cbb23f0829189790",
88
+ "sha256:e58876c91f97b0952eb766123bfef372792ab3f4e3e1f1a2267834c2ab131734",
89
+ "sha256:eda2616eb2313cbb3eebbe51f19362eb434b18e3bb599466a1ffa76a033fb916",
90
+ "sha256:ee217c198f2e41f184f3869f3e485557296d505b5195c513b2bfe0062dc537f1",
91
+ "sha256:f02541ef64077f22bf4924f225c0fd1248c168f86e4b7abdedd87d6ebaceab0f",
92
+ "sha256:f1b82c27e89fffc6da125d5eb0ca6e68017faf5efc078128cfaa42cf5cb38798",
93
+ "sha256:fba162b8872d30fea8c52b258a542c5dfd7b235fb5cb352240c8d63b414013eb",
94
+ "sha256:fbbcb7b57dc9c794843e3d1258c0fbf0f48656d46ffe9e09b63bbd6e8cd5d0a2",
95
+ "sha256:fcb4621042ac4b7865c179bb972ed0da0218a076dc1820ffc48b1d74c1e37fe9"
101
96
  ],
102
97
  "index": "pypi",
103
- "markers": "python_version >= '3.8'",
104
- "version": "==10.4.0"
98
+ "markers": "python_version >= '3.9'",
99
+ "version": "==11.0.0"
105
100
  }
106
101
  },
107
102
  "develop": {
@@ -21,7 +21,7 @@ import subprocess
21
21
  import sys
22
22
  from pathlib import Path
23
23
 
24
- __version__ = "0.21.0"
24
+ __version__ = "0.21.1"
25
25
 
26
26
  log = logging.getLogger(__name__)
27
27
 
@@ -69,16 +69,23 @@ def run(args: argparse.Namespace) -> None:
69
69
  print(camera_metadata(args.image_filename))
70
70
  else:
71
71
  exif_tags = extract_exif_tags(args.image_filename)
72
- tag_name_width = max(map(len, exif_tags))
73
- for tag_name, tag_value in exif_tags.items():
74
- print(f"{tag_name:<{tag_name_width}}: {tag_value}")
72
+ if exif_tags:
73
+ tag_name_width = max(map(len, exif_tags))
74
+ for tag_name, tag_value in exif_tags.items():
75
+ print(f"{tag_name:<{tag_name_width}}: {tag_value}")
76
+ else:
77
+ print("No metadata found!")
75
78
 
76
79
 
77
80
  def extract_exif_tags(image_filename: str, sort: bool = False) -> dict:
78
81
  """Extract Exif metadata from image."""
79
82
  image = Image.open(image_filename)
80
83
  exif = image._getexif()
81
- info = {ExifTags.TAGS.get(tag_id): exif.get(tag_id) for tag_id in exif}
84
+ log.debug(exif)
85
+
86
+ info = {}
87
+ if exif:
88
+ info = {ExifTags.TAGS.get(tag_id): exif.get(tag_id) for tag_id in exif}
82
89
 
83
90
  filtered_info = {
84
91
  key: value for key, value in info.items() if key is not None
@@ -5,6 +5,7 @@ build-backend = "flit_core.buildapi"
5
5
  [project]
6
6
  name = "fotolab"
7
7
  authors = [{name = "Kian-Meng Ang", email = "kianmeng@cpan.org"}]
8
+ requires-python = ">=3.9"
8
9
  readme = "README.md"
9
10
  license = {file = "LICENSE.md"}
10
11
  classifiers = [
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