IPTCInfo3 2.3.1__tar.gz → 2.4.0__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.
- {iptcinfo3-2.3.1 → iptcinfo3-2.4.0}/.gitignore +3 -0
- {iptcinfo3-2.3.1 → iptcinfo3-2.4.0}/CHANGELOG.md +15 -0
- {iptcinfo3-2.3.1 → iptcinfo3-2.4.0}/PKG-INFO +3 -3
- {iptcinfo3-2.3.1 → iptcinfo3-2.4.0}/iptcinfo3.py +24 -1
- {iptcinfo3-2.3.1 → iptcinfo3-2.4.0}/pyproject.toml +3 -3
- {iptcinfo3-2.3.1 → iptcinfo3-2.4.0}/LICENSE +0 -0
- {iptcinfo3-2.3.1 → iptcinfo3-2.4.0}/README.rst +0 -0
|
@@ -1,3 +1,18 @@
|
|
|
1
|
+
## 2.4.0
|
|
2
|
+
|
|
3
|
+
### New Features
|
|
4
|
+
- Added 19 missing Application Record (record 2) fields per IPTC IIM 4.1: object type/attribute reference (3, 4), audio block (150–154), document IDs (184–188), PhotoMechanic prefs (221), classify state (225), similarity index (228), document notes/history (230, 231), EXIF camera info (232), catalog sets (255). These previously surfaced as `nonstandard_N`.
|
|
5
|
+
- Note: `custom1–custom20` (datasets 200–219) left unchanged for backward compatibility, even though 200–202 are Object Preview fields per spec.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 2.3.2
|
|
10
|
+
|
|
11
|
+
### New Features
|
|
12
|
+
- Added `'creator'` alias for `'by-line'` (dataset 80) per IPTC Core — `info['creator']` now works for reading and writing (idea from adityamulik's PR #34, corrected: raw dataset 1 does not exist in IIM)
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
1
16
|
## 2.3.1
|
|
2
17
|
|
|
3
18
|
### Compatibility
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: IPTCInfo3
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.4.0
|
|
4
4
|
Summary: Extract and modify IPTC metadata from JPEG images
|
|
5
5
|
Project-URL: Homepage, https://github.com/jamesacampbell/iptcinfo3
|
|
6
6
|
Project-URL: Repository, https://github.com/jamesacampbell/iptcinfo3
|
|
@@ -26,9 +26,9 @@ Classifier: Topic :: Multimedia :: Graphics
|
|
|
26
26
|
Classifier: Topic :: Utilities
|
|
27
27
|
Requires-Python: >=3.10
|
|
28
28
|
Provides-Extra: dev
|
|
29
|
-
Requires-Dist: pytest-cov>=
|
|
29
|
+
Requires-Dist: pytest-cov>=5.0; extra == 'dev'
|
|
30
30
|
Requires-Dist: pytest-watch>=4.2; extra == 'dev'
|
|
31
|
-
Requires-Dist: pytest>=
|
|
31
|
+
Requires-Dist: pytest>=8.0; extra == 'dev'
|
|
32
32
|
Description-Content-Type: text/x-rst
|
|
33
33
|
|
|
34
34
|
``IPTCINFO 3``
|
|
@@ -26,7 +26,7 @@ import tempfile
|
|
|
26
26
|
from struct import pack, unpack
|
|
27
27
|
import json
|
|
28
28
|
|
|
29
|
-
__version__ = '2.
|
|
29
|
+
__version__ = '2.4.0'
|
|
30
30
|
__author__ = 'Gulácsi, Tamás'
|
|
31
31
|
__updated_by__ = 'Campbell, James'
|
|
32
32
|
|
|
@@ -445,6 +445,8 @@ def collect_adobe_parts(data):
|
|
|
445
445
|
# are in %listdatasets below.
|
|
446
446
|
c_datasets = {
|
|
447
447
|
# 0: 'record version', # skip -- binary data
|
|
448
|
+
3: 'object type reference',
|
|
449
|
+
4: 'object attribute reference',
|
|
448
450
|
5: 'object name',
|
|
449
451
|
7: 'edit status',
|
|
450
452
|
8: 'editorial update',
|
|
@@ -492,6 +494,23 @@ c_datasets = {
|
|
|
492
494
|
130: 'image type',
|
|
493
495
|
131: 'image orientation',
|
|
494
496
|
135: 'language identifier',
|
|
497
|
+
150: 'audio type',
|
|
498
|
+
151: 'audio sampling rate',
|
|
499
|
+
152: 'audio sampling resolution',
|
|
500
|
+
153: 'audio duration',
|
|
501
|
+
154: 'audio outcue',
|
|
502
|
+
184: 'job id',
|
|
503
|
+
185: 'master document id',
|
|
504
|
+
186: 'short document id',
|
|
505
|
+
187: 'unique document id',
|
|
506
|
+
188: 'owner id',
|
|
507
|
+
221: 'prefs', # PhotoMechanic preferences
|
|
508
|
+
225: 'classify state',
|
|
509
|
+
228: 'similarity index',
|
|
510
|
+
230: 'document notes',
|
|
511
|
+
231: 'document history',
|
|
512
|
+
232: 'exif camera info',
|
|
513
|
+
255: 'catalog sets', # written by iView MediaPro
|
|
495
514
|
200: 'custom1', # These are NOT STANDARD, but are used by
|
|
496
515
|
201: 'custom2', # Fotostation. Use at your own risk. They're
|
|
497
516
|
202: 'custom3', # here in case you need to store some special
|
|
@@ -554,6 +573,10 @@ class IPTCData(dict):
|
|
|
554
573
|
# Alias for compatibility with gThumb/exiftool
|
|
555
574
|
elif isinstance(key, str) and key.lower() == 'destination':
|
|
556
575
|
return 103 # Maps to 'original transmission reference'
|
|
576
|
+
# Alias per IPTC Core: 'creator' is stored as 'by-line' (dataset 80).
|
|
577
|
+
# (Closes adityamulik's PR #34 idea; raw dataset 1 does not exist in IIM.)
|
|
578
|
+
elif isinstance(key, str) and key.lower() == 'creator':
|
|
579
|
+
return 80 # Maps to 'by-line'
|
|
557
580
|
elif key.startswith(cls.c_cust_pre) and key[len(cls.c_cust_pre):].isdigit():
|
|
558
581
|
# example: nonstandard_69 -> 69
|
|
559
582
|
return int(key[len(cls.c_cust_pre):])
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "IPTCInfo3"
|
|
7
|
-
version = "2.
|
|
7
|
+
version = "2.4.0"
|
|
8
8
|
description = "Extract and modify IPTC metadata from JPEG images"
|
|
9
9
|
readme = "README.rst"
|
|
10
10
|
license = { text = "Artistic-1.0 OR GPL-1.0-or-later" }
|
|
@@ -41,8 +41,8 @@ Issues = "https://github.com/jamesacampbell/iptcinfo3/issues"
|
|
|
41
41
|
|
|
42
42
|
[project.optional-dependencies]
|
|
43
43
|
dev = [
|
|
44
|
-
"pytest>=
|
|
45
|
-
"pytest-cov>=
|
|
44
|
+
"pytest>=8.0",
|
|
45
|
+
"pytest-cov>=5.0",
|
|
46
46
|
"pytest-watch>=4.2",
|
|
47
47
|
]
|
|
48
48
|
|
|
File without changes
|
|
File without changes
|