mmif-python 1.4.0__tar.gz → 1.5.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.
Files changed (96) hide show
  1. {mmif_python-1.4.0 → mmif_python-1.5.0}/CHANGELOG.md +62 -0
  2. {mmif_python-1.4.0/mmif_python.egg-info → mmif_python-1.5.0}/PKG-INFO +2 -2
  3. {mmif_python-1.4.0 → mmif_python-1.5.0}/build-tools/docs.py +12 -10
  4. {mmif_python-1.4.0 → mmif_python-1.5.0}/mmif/res/mmif.json +17 -0
  5. {mmif_python-1.4.0 → mmif_python-1.5.0}/mmif/utils/video_document_helper.py +448 -299
  6. {mmif_python-1.4.0 → mmif_python-1.5.0}/mmif/utils/workflow_helper.py +9 -1
  7. {mmif_python-1.4.0 → mmif_python-1.5.0/mmif_python.egg-info}/PKG-INFO +2 -2
  8. {mmif_python-1.4.0 → mmif_python-1.5.0}/pyproject.toml +1 -1
  9. {mmif_python-1.4.0 → mmif_python-1.5.0}/tests/test_utils.py +133 -27
  10. {mmif_python-1.4.0 → mmif_python-1.5.0}/.github/workflows/codecov.yml +0 -0
  11. {mmif_python-1.4.0 → mmif_python-1.5.0}/.github/workflows/issue-assign.yml +0 -0
  12. {mmif_python-1.4.0 → mmif_python-1.5.0}/.github/workflows/issue-close.yml +0 -0
  13. {mmif_python-1.4.0 → mmif_python-1.5.0}/.github/workflows/issue-infra-project.yml +0 -0
  14. {mmif_python-1.4.0 → mmif_python-1.5.0}/.github/workflows/publish.yml +0 -0
  15. {mmif_python-1.4.0 → mmif_python-1.5.0}/.gitignore +0 -0
  16. {mmif_python-1.4.0 → mmif_python-1.5.0}/CONTRIBUTING.md +0 -0
  17. {mmif_python-1.4.0 → mmif_python-1.5.0}/LICENSE +0 -0
  18. {mmif_python-1.4.0 → mmif_python-1.5.0}/README.md +0 -0
  19. {mmif_python-1.4.0 → mmif_python-1.5.0}/build-tools/build.py +0 -0
  20. {mmif_python-1.4.0 → mmif_python-1.5.0}/build-tools/clean.py +0 -0
  21. {mmif_python-1.4.0 → mmif_python-1.5.0}/build-tools/publish.py +0 -0
  22. {mmif_python-1.4.0 → mmif_python-1.5.0}/build-tools/test.py +0 -0
  23. {mmif_python-1.4.0 → mmif_python-1.5.0}/documentation/_mmif_example_builder/__init__.py +0 -0
  24. {mmif_python-1.4.0 → mmif_python-1.5.0}/documentation/_templates/versions.html +0 -0
  25. {mmif_python-1.4.0 → mmif_python-1.5.0}/documentation/cli.rst +0 -0
  26. {mmif_python-1.4.0 → mmif_python-1.5.0}/documentation/conf.py +0 -0
  27. {mmif_python-1.4.0 → mmif_python-1.5.0}/documentation/consumer-tutorial.rst +0 -0
  28. {mmif_python-1.4.0 → mmif_python-1.5.0}/documentation/index.rst +0 -0
  29. {mmif_python-1.4.0 → mmif_python-1.5.0}/documentation/introduction.rst +0 -0
  30. {mmif_python-1.4.0 → mmif_python-1.5.0}/documentation/plugins.rst +0 -0
  31. {mmif_python-1.4.0 → mmif_python-1.5.0}/documentation/summarizer.rst +0 -0
  32. {mmif_python-1.4.0 → mmif_python-1.5.0}/documentation/target-versions.csv +0 -0
  33. {mmif_python-1.4.0 → mmif_python-1.5.0}/documentation/target-versions.rst +0 -0
  34. {mmif_python-1.4.0 → mmif_python-1.5.0}/mmif/__init__.py +0 -0
  35. {mmif_python-1.4.0 → mmif_python-1.5.0}/mmif/res/__init__.py +0 -0
  36. {mmif_python-1.4.0 → mmif_python-1.5.0}/mmif/serialize/__init__.py +0 -0
  37. {mmif_python-1.4.0 → mmif_python-1.5.0}/mmif/serialize/annotation.py +0 -0
  38. {mmif_python-1.4.0 → mmif_python-1.5.0}/mmif/serialize/mmif.py +0 -0
  39. {mmif_python-1.4.0 → mmif_python-1.5.0}/mmif/serialize/model.py +0 -0
  40. {mmif_python-1.4.0 → mmif_python-1.5.0}/mmif/serialize/view.py +0 -0
  41. {mmif_python-1.4.0 → mmif_python-1.5.0}/mmif/utils/__init__.py +0 -0
  42. {mmif_python-1.4.0 → mmif_python-1.5.0}/mmif/utils/cli/__init__.py +0 -0
  43. {mmif_python-1.4.0 → mmif_python-1.5.0}/mmif/utils/cli/describe.py +0 -0
  44. {mmif_python-1.4.0 → mmif_python-1.5.0}/mmif/utils/cli/rewind.py +0 -0
  45. {mmif_python-1.4.0 → mmif_python-1.5.0}/mmif/utils/cli/source.py +0 -0
  46. {mmif_python-1.4.0 → mmif_python-1.5.0}/mmif/utils/cli/summarize.py +0 -0
  47. {mmif_python-1.4.0 → mmif_python-1.5.0}/mmif/utils/sequence_helper.py +0 -0
  48. {mmif_python-1.4.0 → mmif_python-1.5.0}/mmif/utils/summarizer/__init__.py +0 -0
  49. {mmif_python-1.4.0 → mmif_python-1.5.0}/mmif/utils/summarizer/config.py +0 -0
  50. {mmif_python-1.4.0 → mmif_python-1.5.0}/mmif/utils/summarizer/graph.py +0 -0
  51. {mmif_python-1.4.0 → mmif_python-1.5.0}/mmif/utils/summarizer/nodes.py +0 -0
  52. {mmif_python-1.4.0 → mmif_python-1.5.0}/mmif/utils/summarizer/summary.py +0 -0
  53. {mmif_python-1.4.0 → mmif_python-1.5.0}/mmif/utils/summarizer/utils.py +0 -0
  54. {mmif_python-1.4.0 → mmif_python-1.5.0}/mmif/utils/text_document_helper.py +0 -0
  55. {mmif_python-1.4.0 → mmif_python-1.5.0}/mmif/utils/timeunit_helper.py +0 -0
  56. {mmif_python-1.4.0 → mmif_python-1.5.0}/mmif/ver/__init__.py +0 -0
  57. {mmif_python-1.4.0 → mmif_python-1.5.0}/mmif/vocabulary/__init__.py +0 -0
  58. {mmif_python-1.4.0 → mmif_python-1.5.0}/mmif/vocabulary/annotation_types.py +0 -0
  59. {mmif_python-1.4.0 → mmif_python-1.5.0}/mmif/vocabulary/base_types.py +0 -0
  60. {mmif_python-1.4.0 → mmif_python-1.5.0}/mmif/vocabulary/document_types.py +0 -0
  61. {mmif_python-1.4.0 → mmif_python-1.5.0}/mmif_docloc_http/__init__.py +0 -0
  62. {mmif_python-1.4.0 → mmif_python-1.5.0}/mmif_python.egg-info/SOURCES.txt +0 -0
  63. {mmif_python-1.4.0 → mmif_python-1.5.0}/mmif_python.egg-info/dependency_links.txt +0 -0
  64. {mmif_python-1.4.0 → mmif_python-1.5.0}/mmif_python.egg-info/entry_points.txt +0 -0
  65. {mmif_python-1.4.0 → mmif_python-1.5.0}/mmif_python.egg-info/requires.txt +0 -0
  66. {mmif_python-1.4.0 → mmif_python-1.5.0}/mmif_python.egg-info/top_level.txt +0 -0
  67. {mmif_python-1.4.0 → mmif_python-1.5.0}/setup.cfg +0 -0
  68. {mmif_python-1.4.0 → mmif_python-1.5.0}/tests/black-2997fps.mp4 +0 -0
  69. {mmif_python-1.4.0 → mmif_python-1.5.0}/tests/mmif-examples/1.0.5-old-shortid.json +0 -0
  70. {mmif_python-1.4.0 → mmif_python-1.5.0}/tests/mmif-examples/README.md +0 -0
  71. {mmif_python-1.4.0 → mmif_python-1.5.0}/tests/mmif-examples/bars-tones-slates/raw.json +0 -0
  72. {mmif_python-1.4.0 → mmif_python-1.5.0}/tests/mmif-examples/east-tesseract-typing/raw.json +0 -0
  73. {mmif_python-1.4.0 → mmif_python-1.5.0}/tests/mmif-examples/everything/raw.json +0 -0
  74. {mmif_python-1.4.0 → mmif_python-1.5.0}/tests/mmif-examples/examples.json +0 -0
  75. {mmif_python-1.4.0 → mmif_python-1.5.0}/tests/mmif-examples/others/README.md +0 -0
  76. {mmif_python-1.4.0 → mmif_python-1.5.0}/tests/mmif-examples/others/image-box-ocr-timex.json +0 -0
  77. {mmif_python-1.4.0 → mmif_python-1.5.0}/tests/mmif-examples/others/image-box-ocr.json +0 -0
  78. {mmif_python-1.4.0 → mmif_python-1.5.0}/tests/mmif-examples/others/image-box.json +0 -0
  79. {mmif_python-1.4.0 → mmif_python-1.5.0}/tests/mmif-examples/others/image.json +0 -0
  80. {mmif_python-1.4.0 → mmif_python-1.5.0}/tests/mmif-examples/others/slate-detect.json +0 -0
  81. {mmif_python-1.4.0 → mmif_python-1.5.0}/tests/mmif-examples/others/slate-reco.json +0 -0
  82. {mmif_python-1.4.0 → mmif_python-1.5.0}/tests/mmif-examples/others/video-demux.json +0 -0
  83. {mmif_python-1.4.0 → mmif_python-1.5.0}/tests/mmif-examples/others/video-transcript-demux-fa.json +0 -0
  84. {mmif_python-1.4.0 → mmif_python-1.5.0}/tests/mmif-examples/others/video-transcript-demux-fa.short.json +0 -0
  85. {mmif_python-1.4.0 → mmif_python-1.5.0}/tests/mmif-examples/others/video-transcript-demux.json +0 -0
  86. {mmif_python-1.4.0 → mmif_python-1.5.0}/tests/mmif-examples/others/video-transcript-sentencesplit.json +0 -0
  87. {mmif_python-1.4.0 → mmif_python-1.5.0}/tests/mmif-examples/others/video-transcript.json +0 -0
  88. {mmif_python-1.4.0 → mmif_python-1.5.0}/tests/mmif-examples/others/video.json +0 -0
  89. {mmif_python-1.4.0 → mmif_python-1.5.0}/tests/mmif-examples/segmenter-kaldi-ner/raw.json +0 -0
  90. {mmif_python-1.4.0 → mmif_python-1.5.0}/tests/mmif-examples/swt-1.0.mmif +0 -0
  91. {mmif_python-1.4.0 → mmif_python-1.5.0}/tests/mmif_examples.py +0 -0
  92. {mmif_python-1.4.0 → mmif_python-1.5.0}/tests/test_serialize.py +0 -0
  93. {mmif_python-1.4.0 → mmif_python-1.5.0}/tests/test_specver.py +0 -0
  94. {mmif_python-1.4.0 → mmif_python-1.5.0}/tests/test_utils_cli.py +0 -0
  95. {mmif_python-1.4.0 → mmif_python-1.5.0}/tests/test_vocab.py +0 -0
  96. {mmif_python-1.4.0 → mmif_python-1.5.0}/tests/testsrc-2997fps-ptsoffset.mp4 +0 -0
@@ -1,4 +1,22 @@
1
1
 
2
+ ## releasing 1.4.0 (2026-04-22)
3
+ ### Overview
4
+ * This is minor level release that 1) replacing simple string enums in `mmif.vocabulary` with fully-fledged pydantic classes in `clams-vocabulary` package 2) deprecating framenum-based image extraction functions in VDH (frame numbers are no longer considered as proper timestamps)
5
+
6
+ ### Additions
7
+ * presentation timestamp-based image extraction functions added to VDH (https://github.com/clamsproject/mmif-python/pull/382 )
8
+ * `pyav` and `clams-vocabulary` as new dependencies
9
+
10
+ ### Changes
11
+ * opencv-based video operations are now based on pyav (ffmpeg backend)
12
+ * all framenum-based functions in VDH are now marked as deprecated, scheduled for removal at 2.0.0
13
+ * `mmif.vocabulary` package is now a thin wrapper around `clams-vocabulary` package (https://github.com/clamsproject/mmif-python/pull/381 )
14
+ * `AnnotationTypes` and `DocumentTypes` classes are no longer simple string enums, but pydantic-based validation-supported python classes
15
+
16
+ ### Removal
17
+ * `durationTimeUnit` is no longer written to video documents' `Annotation` property. This is non-API change hence not triggering major version bump. (based on https://github.com/clamsproject/mmif/pull/240/changes/a74dc46245c21dc7a279b3f271cf3e3a2a126f3a, all time notations without explicit unit specification are considered as milliseconds)
18
+
19
+
2
20
  ## releasing 1.3.1 (2026-03-11)
3
21
  ### Overview
4
22
 
@@ -8,6 +26,7 @@ Bug-fix release to address broken `as_PIL=True` option in `extract_frames_as_ima
8
26
 
9
27
  * Fix `PIL.Image` import failure in `_check_cv_dep` by switching from `importlib.__import__` to `importlib.import_module` (https://github.com/clamsproject/mmif-python/pull/377)
10
28
 
29
+
11
30
  ## releasing 1.3.0 (2026-03-10)
12
31
  ### Overview
13
32
  Minor release adding a new `summarize` CLI, pydantic-based workflow descriptors, and various fixes for video document helpers and timestamp handling.
@@ -26,6 +45,7 @@ Minor release adding a new `summarize` CLI, pydantic-based workflow descriptors,
26
45
  * Documentation build migrated to "build-once, stay-forever" model via documentation hub (https://github.com/clamsproject/mmif-python/pull/344)
27
46
 
28
47
 
48
+
29
49
  ## releasing 1.2.1 (2025-11-28)
30
50
  ### Overview
31
51
  Updated output formats of the experimental `mmif describe` command
@@ -38,6 +58,7 @@ Updated output formats of the experimental `mmif describe` command
38
58
  > [!NOTE]
39
59
  > `mmif describe` (and the underlying `mmif.utils.workflow_helper`) is still experimental and subject to change in future releases without notice. Backward compatibility is not guaranteed.
40
60
 
61
+
41
62
  ## releasing 1.2.0 (2025-11-20)
42
63
  ### Overview
43
64
  This version is minor release with addition of a new cli (`describe`), lots of in-line documentation updates, and deprecation of some "getter" methods
@@ -57,6 +78,7 @@ mmif.get(some_view_id)
57
78
  * many outdated documentation updates
58
79
 
59
80
 
81
+
60
82
  ## releasing 1.1.2 (2025-07-28)
61
83
  ### Overview
62
84
  Patch release with a hotfix of a bug.
@@ -64,6 +86,7 @@ Patch release with a hotfix of a bug.
64
86
  ### Changes
65
87
  * Fixed bug with handling "list of ID" props in 1.0.x MMIF.
66
88
 
89
+
67
90
  ## releasing 1.1.1 (2025-07-26)
68
91
  ### Overview
69
92
  Patch release to support installation on python 3.12 and newer (fixes https://github.com/clamsproject/mmif-python/issues/314).
@@ -72,6 +95,7 @@ Patch release to support installation on python 3.12 and newer (fixes https://gi
72
95
  - `setup.py` is now compatible with the latest setuptools (80) .
73
96
  - [Since python 3.12 no longer ship `setuptools` as a part of standard installation](https://docs.python.org/3/whatsnew/3.12.html#ensurepip), added setuptools as a `dev` dependency.
74
97
 
98
+
75
99
  ## releasing 1.1.0 (2025-07-23)
76
100
  ### Overview
77
101
  This is a minor version release, but it includes several significant changes and improvements across the codebase.
@@ -88,6 +112,7 @@ This is a minor version release, but it includes several significant changes and
88
112
  * Miscellaneous cleanup and improvements on documentation and unused code.
89
113
 
90
114
 
115
+
91
116
  ## releasing 1.0.19 (2024-07-29)
92
117
  ### Overview
93
118
  Patch to fix a critical bug.
@@ -95,6 +120,7 @@ Patch to fix a critical bug.
95
120
  ### Changes
96
121
  - bugfix when `Annotation` instance and "warnings" view both are involved, MMIF is not properly returned (#299)
97
122
 
123
+
98
124
  ## releasing 1.0.18 (2024-07-15)
99
125
  ### Overview
100
126
  Patch release with a bugfix.
@@ -104,6 +130,7 @@ Patch release with a bugfix.
104
130
  ### Changes
105
131
  - fixed bug when adding custom properties to a newly generated `TextDocument` object (https://github.com/clamsproject/mmif-python/issues/290)
106
132
 
133
+
107
134
  ## releasing 1.0.17 (2024-06-26)
108
135
  ### Overview
109
136
  This release adds caching mechanism for annotation alignments (via `Alignment` annotation, the alignment via `targets` property is not yet supported).
@@ -117,6 +144,7 @@ This release adds caching mechanism for annotation alignments (via `Alignment` a
117
144
  - `mmif.utils.text_document_helper.slice_text` received a major speed boost from the alignment caching.
118
145
 
119
146
 
147
+
120
148
  ## releasing 1.0.16 (2024-06-14)
121
149
  ### Overview
122
150
  This release includes an _experimental_ implementation for helpers to slice `text_value` from text documents.
@@ -125,6 +153,7 @@ This release includes an _experimental_ implementation for helpers to slice `tex
125
153
  * `mmif.utils.text_document_helper` module to address https://github.com/clamsproject/mmif-python/issues/280
126
154
 
127
155
 
156
+
128
157
  ## releasing 1.0.15 (2024-06-07)
129
158
  ### Overview
130
159
  Minor release to add/improve helper methods.
@@ -136,6 +165,7 @@ Minor release to add/improve helper methods.
136
165
  - `Mmif.__getitem__()` now works with short annotation IDs (https://github.com/clamsproject/mmif-python/issues/279)
137
166
 
138
167
 
168
+
139
169
  ## releasing 1.0.14 (2024-04-10)
140
170
  ### Overview
141
171
  This release contains small fixes and improvements.
@@ -151,6 +181,7 @@ This release contains small fixes and improvements.
151
181
  ### Changes
152
182
  - "empty" annotation property values are correctly retrievable
153
183
 
184
+
154
185
  ## releasing 1.0.13 (2024-04-02)
155
186
  ### Overview
156
187
  This version includes small, but helpful improvements.
@@ -161,6 +192,7 @@ This version includes small, but helpful improvements.
161
192
  * video frame sampling can now use fractional sampling rate (in terms of frame numbers)
162
193
 
163
194
 
195
+
164
196
  ## releasing 1.0.12 (2024-04-01)
165
197
  ### Overview
166
198
  Hot-fixing a wrong field name.
@@ -169,6 +201,7 @@ Hot-fixing a wrong field name.
169
201
  - `views[].metadata.app_configuration` is renamed to `appConfiguration`, correctly following the MMIF json schema.
170
202
 
171
203
 
204
+
172
205
  ## releasing 1.0.11 (2024-03-31)
173
206
  ### Overview
174
207
  This release includes changes from MMIF spec 1.0.3 and 1.0.4, and a new helper module to handle sequence annotations
@@ -186,6 +219,7 @@ This release includes changes from MMIF spec 1.0.3 and 1.0.4, and a new helper m
186
219
  - getting start or end anchor points on annotations objects only with `targets` are no longer require the targets list is already sorted
187
220
  - sphinx-based public API documentation for old versions is back
188
221
 
222
+
189
223
  ## releasing 1.0.10 (2024-03-01)
190
224
  ### Overview
191
225
  This version includes minor bug fixes and support for MMIF spec 1.0.2.
@@ -198,6 +232,7 @@ This version includes minor bug fixes and support for MMIF spec 1.0.2.
198
232
  * ISO-like time unit conversion now consistently returns only to third decimal place.
199
233
 
200
234
 
235
+
201
236
  ## releasing 1.0.9 (2024-02-10)
202
237
  ### Overview
203
238
  This is a feature-packed release.
@@ -213,6 +248,7 @@ This is a feature-packed release.
213
248
  * `Annotation` objects' `properties` attribute is no longer limited to primitives and list of primitives (https://github.com/clamsproject/mmif/issues/215)
214
249
  * Fixed annotation URI equivalence checker wasn't working in set-like collections (https://github.com/clamsproject/mmif-python/issues/257)
215
250
 
251
+
216
252
  ## releasing 1.0.8 (2023-07-24)
217
253
  ### Overview
218
254
  This release includes polishing and bug fixes around the `mmif.utils.video_document_helper` module.
@@ -224,6 +260,7 @@ This release includes polishing and bug fixes around the `mmif.utils.video_docum
224
260
  * `Annotation.get_property` now provide more intuitive access to "view-level" annotation properties found in `view.metadata.contains.some_at_type` dict
225
261
 
226
262
 
263
+
227
264
  ## releasing 1.0.7 (2023-07-20)
228
265
  ### Overview
229
266
  Minor updates in VideoDucment helper module
@@ -233,6 +270,7 @@ Minor updates in VideoDucment helper module
233
270
 
234
271
 
235
272
 
273
+
236
274
  ## releasing 1.0.6 (2023-07-19)
237
275
  ### Overview
238
276
  This release relaxes checks for optional CV dependencies in video utils module, so that users don't have install all of `[cv]` dependencies when they don't use them all.
@@ -241,6 +279,7 @@ This release relaxes checks for optional CV dependencies in video utils module,
241
279
  * when any of `[cv]` dependencies is not found during `mmif.utils.video_document_helper` module is being loaded, instead of raising and an error, a warning is issued.
242
280
 
243
281
 
282
+
244
283
  ## releasing 1.0.5 (2023-07-19)
245
284
  ### Overview
246
285
  This release contains a minor fix in video_document_helper module
@@ -249,11 +288,13 @@ This release contains a minor fix in video_document_helper module
249
288
  * fixed time unit normalization was missing some important string
250
289
 
251
290
 
291
+
252
292
  ## releasing 1.0.4 (2023-07-19)
253
293
  ### Overview
254
294
  This release fixes installation error in the previous version.
255
295
 
256
296
 
297
+
257
298
  ## releasing 1.0.3 (2023-07-19)
258
299
  ### Overview
259
300
  This release is primarily about adding `mmif.utils` package and `mmif.utils.video_document_helper` module. The module provides many helper functions to handle frame-based and time-based documents and annotations.
@@ -266,6 +307,7 @@ This release is primarily about adding `mmif.utils` package and `mmif.utils.vide
266
307
  * fixed bug in `Annotation.get_property` (#232)
267
308
 
268
309
 
310
+
269
311
  ## releasing 1.0.2 (2023-07-11)
270
312
  ### Overview
271
313
  This release includes support for plugins, and a "magic" helper for using `Annotation` annotations for documents in MMIF.
@@ -277,6 +319,7 @@ This release includes support for plugins, and a "magic" helper for using `Annot
277
319
 
278
320
 
279
321
 
322
+
280
323
  ## releasing 1.0.1 (2023-05-26)
281
324
  ### Overview
282
325
  `mmif-python` 1.0.0 included MMIF 0.5.0 instead of MMIF 1.0.0. This release fixes it
@@ -284,11 +327,13 @@ This release includes support for plugins, and a "magic" helper for using `Annot
284
327
  ### Changes
285
328
  * now based on MMIF specification 1.0.0
286
329
 
330
+
287
331
  ## releasing 1.0.0 (2023-05-25)
288
332
  ### Overview
289
333
  This release will be numbered as 1.0.0, but actually is re-numbering of 0.5.2, hence no technical changes are included in 1.0.0.
290
334
 
291
335
 
336
+
292
337
  ## releasing 0.5.2 (2023-05-19)
293
338
  ### Overview
294
339
  This release fixes an oversight bug in `__eq__` in `MmifObject`s. Also includes updates of the sphinx documentation.
@@ -298,6 +343,7 @@ This release fixes an oversight bug in `__eq__` in `MmifObject`s. Also includes
298
343
  * Updated sphinx documentation (#215 )
299
344
 
300
345
 
346
+
301
347
  ## releasing 0.5.1 (2023-05-02)
302
348
  ### Overview
303
349
  This release includes "fuzzy" matching of at_types and sanitized `serialize` of `Mmif` objects.
@@ -313,6 +359,7 @@ This release includes "fuzzy" matching of at_types and sanitized `serialize` of
313
359
  * fixed a small bug in `Mmif.get_alignments`
314
360
  * fixed `view.metadata` serialized into an invalid MMIF due to a *oneOf* condition in jsonschema
315
361
 
362
+
316
363
  ## releasing 0.5.0 (2023-04-30)
317
364
  ### Overview
318
365
  This release is a synchronization of `mmif-python` with the latest [MMIF 0.5.0 release](https://github.com/clamsproject/mmif/pull/199).
@@ -321,9 +368,11 @@ This release is a synchronization of `mmif-python` with the latest [MMIF 0.5.0 r
321
368
  * Enum-like subclasses for annotation `@type`s in the `mmif.vocabulary` package are updated to accommodate the new way of checking I/O compatibility (as `__eq__()` in the SDK).
322
369
 
323
370
 
371
+
324
372
  ## releasing 0.4.8 (2023-02-10)
325
373
  This is a small PR that doesn't include any code in the SDK, but the target MMIF version is bumped up to [0.4.2](https://github.com/clamsproject/mmif/blob/master/CHANGELOG.md#version-042---2023-02-09).
326
374
 
375
+
327
376
  ## releasing 0.4.7 (2023-02-09)
328
377
  This release includes
329
378
 
@@ -331,12 +380,14 @@ This release includes
331
380
  * made `properties` map to behave like a map (#194)
332
381
  * updated python dependencies (#196, #198)
333
382
 
383
+
334
384
  ## releasing 0.4.6 (2022-03-25)
335
385
  This release includes
336
386
 
337
387
  * fixes in the development & release pipelines. (#189 #187)
338
388
  * upgrade in the text retrieval from TextDocument (#185)
339
389
 
390
+
340
391
  ## releasing 0.4.5 (2021-07-11)
341
392
  This release contains minor bug fixes
342
393
 
@@ -344,23 +395,29 @@ This release contains minor bug fixes
344
395
  * fixed how `develop` version of vocab URIs were handled
345
396
  * colon (`:`) is now a class constant for gluing view_id and annotation_id
346
397
 
398
+
347
399
  ## releasing 0.4.4 (2021-06-19)
348
400
  This release contains small but breaking changes. See d5198cb2304ad488975644a87fba51906abc5299 for details.
349
401
 
350
402
 
403
+
351
404
  ## releasing 0.4.3 (2021-06-18)
352
405
  This release fixes minor bugs from the previous version.
353
406
 
354
407
 
408
+
355
409
  ## releasing 0.4.2 (2021-06-17)
356
410
  This release adds `new_textdocument` helper method to `View` class.
357
411
 
412
+
358
413
  ## releasing 0.4.1 (2021-06-14)
359
414
  The release contains a small bug fix in deserialization of `Mmif` object.
360
415
 
416
+
361
417
  ## releasing 0.4.0 (2021-06-10)
362
418
  New release to correspond to the MMIF specification 0.4.0.
363
419
 
420
+
364
421
  ## releasing 0.3.5 (2021-06-05)
365
422
  The release includes ...
366
423
 
@@ -370,19 +427,24 @@ The release includes ...
370
427
  * various bug fixes and clean-up
371
428
 
372
429
 
430
+
373
431
  ## releasing 0.3.4 (2021-05-24)
374
432
  This release includes major bug fixes (#131, #164) and a new documentation generation pipeline (#167).
375
433
 
434
+
376
435
  ## releasing 0.3.3 (2021-05-12)
377
436
  This release contains various bug fixes.
378
437
 
438
+
379
439
  ## releasing 0.3.2 (2021-05-12)
380
440
  A version to match changes in the specification 0.3.1.
381
441
 
442
+
382
443
  ## releasing 0.3.1 (2021-03-30)
383
444
  0.3.1 contains mostly small bugfixes.
384
445
 
385
446
 
447
+
386
448
  ## release candidate for 0.3.0 (2021-03-14)
387
449
  release note for mmif-python 0.3.0
388
450
 
@@ -1,11 +1,11 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mmif-python
3
- Version: 1.4.0
3
+ Version: 1.5.0
4
4
  Summary: Python implementation of MultiMedia Interchange Format specification. (https://mmif.clams.ai)
5
5
  License-Expression: Apache-2.0
6
6
  Project-URL: homepage, https://mmif.clams.ai
7
7
  Project-URL: source, https://github.com/clamsproject/mmif-python
8
- Project-URL: mmif-spec, https://mmif.clams.ai/1.1.1
8
+ Project-URL: mmif-spec, https://mmif.clams.ai/1.2.0
9
9
  Classifier: Development Status :: 5 - Production/Stable
10
10
  Classifier: Intended Audience :: Developers
11
11
  Classifier: Programming Language :: Python :: 3 :: Only
@@ -109,10 +109,6 @@ def build_versioned_docs(env: Venv, source_path: Path, version: str):
109
109
  print("\n--- Installing sphinx and furo theme ---")
110
110
  env.run_pip("install", "sphinx>=7.0,<8.0", "furo", "m2r2", cwd=source_path)
111
111
 
112
- # Write VERSION file (needed for setup.py and sphinx)
113
- version_file = source_path / "VERSION"
114
- version_file.write_text(version)
115
-
116
112
  # Inject linkcode_resolve function into conf.py for GitHub source links
117
113
  # because some old version of conf.py may not have it
118
114
  print("\n--- Injecting linkcode_resolve into conf.py ---")
@@ -148,10 +144,16 @@ def linkcode_resolve(domain, info):
148
144
  with open(conf_py, "a") as f:
149
145
  f.write(linkcode_snippet)
150
146
 
151
- # Install package in develop mode to generate code (ver, res, vocabulary)
152
- # Uses setup.py develop for compatibility with all versions
153
- print("\n--- Installing package in develop mode ---")
154
- env.run_python("setup.py", "develop", cwd=source_path)
147
+ # Install package in editable mode so sphinx-autodoc can import it.
148
+ # Pre-1.4.0 releases ship setup.py with build-time code generation that
149
+ # needs a VERSION file; 1.4.0+ releases are pyproject-only and version
150
+ # themselves from git tags via setuptools-scm.
151
+ print("\n--- Installing package in editable mode ---")
152
+ if (source_path / "setup.py").exists():
153
+ (source_path / "VERSION").write_text(version)
154
+ env.run_python("setup.py", "develop", cwd=source_path)
155
+ else:
156
+ env.run_pip("install", "-e", ".", cwd=source_path)
155
157
 
156
158
  # Build documentation with sphinx-build
157
159
  print("\n--- Building Sphinx documentation ---")
@@ -216,8 +218,8 @@ def build_docs_for_version(version: str, output_base_dir: Path, repo_path: Path
216
218
  print(f"\n--- Step 2: Creating and setting up virtual environment ---")
217
219
  env = Venv(venv_path)
218
220
  env.create()
219
- # Use setuptools<80 for compatibility with older setup.py files
220
- # that use the old import structure
221
+ # setuptools<80 pin keeps the legacy `python setup.py develop` path
222
+ # working for pre-1.4.0 tags; harmless for pyproject-only tags.
221
223
  env.run_pip("install", "--upgrade", "pip", "setuptools<80", "wheel")
222
224
 
223
225
  print(f"\n--- Step 3: Building documentation ---")
@@ -64,6 +64,14 @@
64
64
  "format": "uri",
65
65
  "minLength": 7
66
66
  },
67
+ "appTags": {
68
+ "type": "array",
69
+ "items": {
70
+ "type": "string",
71
+ "minLength": 1
72
+ },
73
+ "uniqueItems": true
74
+ },
67
75
  "contains": {
68
76
  "type": "object",
69
77
  "additionalProperties": false,
@@ -98,6 +106,15 @@
98
106
  },
99
107
  "appConfiguration": {
100
108
  "type": "object"
109
+ },
110
+ "appProfiling": {
111
+ "type": "object",
112
+ "properties": {
113
+ "runningTime": {
114
+ "type": "string",
115
+ "minLength": 1
116
+ }
117
+ }
101
118
  }
102
119
  },
103
120
  "oneOf": [