Glymur 0.14.2__tar.gz → 0.14.4__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 (181) hide show
  1. {glymur-0.14.2 → glymur-0.14.4}/.circleci/config.yml +4 -0
  2. {glymur-0.14.2 → glymur-0.14.4}/CHANGES.txt +9 -0
  3. {glymur-0.14.2 → glymur-0.14.4}/Glymur.egg-info/PKG-INFO +2 -1
  4. {glymur-0.14.2 → glymur-0.14.4}/Glymur.egg-info/SOURCES.txt +1 -0
  5. {glymur-0.14.2 → glymur-0.14.4}/PKG-INFO +2 -1
  6. {glymur-0.14.2 → glymur-0.14.4}/appveyor.yml +6 -0
  7. {glymur-0.14.2 → glymur-0.14.4}/ci/install.ps1 +2 -0
  8. {glymur-0.14.2 → glymur-0.14.4}/ci/travis-311-no-gdal.yaml +3 -3
  9. {glymur-0.14.2 → glymur-0.14.4}/ci/travis-311-no-opj.yaml +3 -3
  10. {glymur-0.14.2 → glymur-0.14.4}/ci/travis-311.yaml +3 -3
  11. {glymur-0.14.2 → glymur-0.14.4}/ci/travis-313.yaml +3 -3
  12. glymur-0.14.4/ci/travis-314.yaml +13 -0
  13. {glymur-0.14.2 → glymur-0.14.4}/docs/source/conf.py +1 -1
  14. {glymur-0.14.2 → glymur-0.14.4}/docs/source/introduction.rst +1 -1
  15. {glymur-0.14.2 → glymur-0.14.4}/docs/source/whatsnew/0.14.rst +15 -0
  16. {glymur-0.14.2 → glymur-0.14.4}/glymur/_core_converter.py +1 -1
  17. {glymur-0.14.2 → glymur-0.14.4}/glymur/jp2box.py +1 -1
  18. {glymur-0.14.2 → glymur-0.14.4}/glymur/jp2k.py +6 -6
  19. {glymur-0.14.2 → glymur-0.14.4}/glymur/jp2kr.py +6 -9
  20. {glymur-0.14.2 → glymur-0.14.4}/glymur/options.py +3 -4
  21. {glymur-0.14.2 → glymur-0.14.4}/glymur/version.py +2 -2
  22. {glymur-0.14.2 → glymur-0.14.4}/pyproject.toml +2 -1
  23. {glymur-0.14.2 → glymur-0.14.4}/tests/test_commandline_tiff2jp2.py +1 -1
  24. {glymur-0.14.2 → glymur-0.14.4}/tests/test_threading.py +13 -19
  25. {glymur-0.14.2 → glymur-0.14.4}/tests/test_tiff2jp2.py +1 -1
  26. {glymur-0.14.2 → glymur-0.14.4}/.gitignore +0 -0
  27. {glymur-0.14.2 → glymur-0.14.4}/.readthedocs.yaml +0 -0
  28. {glymur-0.14.2 → glymur-0.14.4}/.travis.yml +0 -0
  29. {glymur-0.14.2 → glymur-0.14.4}/Glymur.egg-info/dependency_links.txt +0 -0
  30. {glymur-0.14.2 → glymur-0.14.4}/Glymur.egg-info/entry_points.txt +0 -0
  31. {glymur-0.14.2 → glymur-0.14.4}/Glymur.egg-info/requires.txt +0 -0
  32. {glymur-0.14.2 → glymur-0.14.4}/Glymur.egg-info/top_level.txt +0 -0
  33. {glymur-0.14.2 → glymur-0.14.4}/LICENSE.txt +0 -0
  34. {glymur-0.14.2 → glymur-0.14.4}/MANIFEST.in +0 -0
  35. {glymur-0.14.2 → glymur-0.14.4}/README.md +0 -0
  36. {glymur-0.14.2 → glymur-0.14.4}/azure-pipelines.yml +0 -0
  37. {glymur-0.14.2 → glymur-0.14.4}/ci/doc.yml +0 -0
  38. {glymur-0.14.2 → glymur-0.14.4}/ci/run_script.sh +0 -0
  39. {glymur-0.14.2 → glymur-0.14.4}/ci/run_with_env.cmd +0 -0
  40. {glymur-0.14.2 → glymur-0.14.4}/ci/setup_env.sh +0 -0
  41. {glymur-0.14.2 → glymur-0.14.4}/ci/travis-312.yaml +0 -0
  42. {glymur-0.14.2 → glymur-0.14.4}/conftest.py +0 -0
  43. {glymur-0.14.2 → glymur-0.14.4}/docs/Makefile +0 -0
  44. {glymur-0.14.2 → glymur-0.14.4}/docs/make.bat +0 -0
  45. {glymur-0.14.2 → glymur-0.14.4}/docs/requirements.txt +0 -0
  46. {glymur-0.14.2 → glymur-0.14.4}/docs/source/api.rst +0 -0
  47. {glymur-0.14.2 → glymur-0.14.4}/docs/source/detailed_installation.rst +0 -0
  48. {glymur-0.14.2 → glymur-0.14.4}/docs/source/goodstuff_alpha.png +0 -0
  49. {glymur-0.14.2 → glymur-0.14.4}/docs/source/how_do_i.rst +0 -0
  50. {glymur-0.14.2 → glymur-0.14.4}/docs/source/index.rst +0 -0
  51. {glymur-0.14.2 → glymur-0.14.4}/docs/source/roadmap.rst +0 -0
  52. {glymur-0.14.2 → glymur-0.14.4}/docs/source/whatsnew/0.10.rst +0 -0
  53. {glymur-0.14.2 → glymur-0.14.4}/docs/source/whatsnew/0.11.rst +0 -0
  54. {glymur-0.14.2 → glymur-0.14.4}/docs/source/whatsnew/0.12.rst +0 -0
  55. {glymur-0.14.2 → glymur-0.14.4}/docs/source/whatsnew/0.13.rst +0 -0
  56. {glymur-0.14.2 → glymur-0.14.4}/docs/source/whatsnew/0.5.rst +0 -0
  57. {glymur-0.14.2 → glymur-0.14.4}/docs/source/whatsnew/0.6.rst +0 -0
  58. {glymur-0.14.2 → glymur-0.14.4}/docs/source/whatsnew/0.7.rst +0 -0
  59. {glymur-0.14.2 → glymur-0.14.4}/docs/source/whatsnew/0.8.rst +0 -0
  60. {glymur-0.14.2 → glymur-0.14.4}/docs/source/whatsnew/0.9.rst +0 -0
  61. {glymur-0.14.2 → glymur-0.14.4}/docs/source/whatsnew/index.rst +0 -0
  62. {glymur-0.14.2 → glymur-0.14.4}/glymur/__init__.py +0 -0
  63. {glymur-0.14.2 → glymur-0.14.4}/glymur/_iccprofile.py +0 -0
  64. {glymur-0.14.2 → glymur-0.14.4}/glymur/codestream.py +0 -0
  65. {glymur-0.14.2 → glymur-0.14.4}/glymur/command_line.py +0 -0
  66. {glymur-0.14.2 → glymur-0.14.4}/glymur/config.py +0 -0
  67. {glymur-0.14.2 → glymur-0.14.4}/glymur/core.py +0 -0
  68. {glymur-0.14.2 → glymur-0.14.4}/glymur/data/__init__.py +0 -0
  69. {glymur-0.14.2 → glymur-0.14.4}/glymur/data/goodstuff.j2k +0 -0
  70. {glymur-0.14.2 → glymur-0.14.4}/glymur/data/heliov.jpx +0 -0
  71. {glymur-0.14.2 → glymur-0.14.4}/glymur/data/nemo.jp2 +0 -0
  72. {glymur-0.14.2 → glymur-0.14.4}/glymur/jpeg.py +0 -0
  73. {glymur-0.14.2 → glymur-0.14.4}/glymur/lib/__init__.py +0 -0
  74. {glymur-0.14.2 → glymur-0.14.4}/glymur/lib/_tiff.py +0 -0
  75. {glymur-0.14.2 → glymur-0.14.4}/glymur/lib/openjp2.py +0 -0
  76. {glymur-0.14.2 → glymur-0.14.4}/glymur/lib/tiff.py +0 -0
  77. {glymur-0.14.2 → glymur-0.14.4}/glymur/tiff.py +0 -0
  78. {glymur-0.14.2 → glymur-0.14.4}/setup.cfg +0 -0
  79. {glymur-0.14.2 → glymur-0.14.4}/tests/__init__.py +0 -0
  80. {glymur-0.14.2 → glymur-0.14.4}/tests/data/__init__.py +0 -0
  81. {glymur-0.14.2 → glymur-0.14.4}/tests/data/conformance/__init__.py +0 -0
  82. {glymur-0.14.2 → glymur-0.14.4}/tests/data/conformance/file1_xml.txt +0 -0
  83. {glymur-0.14.2 → glymur-0.14.4}/tests/data/conformance/file1_xml_box.txt +0 -0
  84. {glymur-0.14.2 → glymur-0.14.4}/tests/data/conformance/p0_02.j2k +0 -0
  85. {glymur-0.14.2 → glymur-0.14.4}/tests/data/conformance/p0_03.j2k +0 -0
  86. {glymur-0.14.2 → glymur-0.14.4}/tests/data/conformance/p0_06.j2k +0 -0
  87. {glymur-0.14.2 → glymur-0.14.4}/tests/data/conformance/p1_06.j2k +0 -0
  88. {glymur-0.14.2 → glymur-0.14.4}/tests/data/conformance/p1_07.j2k +0 -0
  89. {glymur-0.14.2 → glymur-0.14.4}/tests/data/conformance/p1_07.txt +0 -0
  90. {glymur-0.14.2 → glymur-0.14.4}/tests/data/from-openjpeg/__init__.py +0 -0
  91. {glymur-0.14.2 → glymur-0.14.4}/tests/data/from-openjpeg/edf_c2_1178956.jp2 +0 -0
  92. {glymur-0.14.2 → glymur-0.14.4}/tests/data/from-openjpeg/issue142.j2k +0 -0
  93. {glymur-0.14.2 → glymur-0.14.4}/tests/data/from-openjpeg/issue392.jp2 +0 -0
  94. {glymur-0.14.2 → glymur-0.14.4}/tests/data/from-openjpeg/issue396.jp2 +0 -0
  95. {glymur-0.14.2 → glymur-0.14.4}/tests/data/from-openjpeg/issue438.jp2 +0 -0
  96. {glymur-0.14.2 → glymur-0.14.4}/tests/data/from-openjpeg/issue626.j2k +0 -0
  97. {glymur-0.14.2 → glymur-0.14.4}/tests/data/from-openjpeg/jph_siz.txt +0 -0
  98. {glymur-0.14.2 → glymur-0.14.4}/tests/data/from-openjpeg/oj-ht-byte.jph +0 -0
  99. {glymur-0.14.2 → glymur-0.14.4}/tests/data/from-openjpeg/text_GBR.jp2 +0 -0
  100. {glymur-0.14.2 → glymur-0.14.4}/tests/data/from-openjpeg/text_GBR_rreq.txt +0 -0
  101. {glymur-0.14.2 → glymur-0.14.4}/tests/data/geo/0220000800_uuid.dat +0 -0
  102. {glymur-0.14.2 → glymur-0.14.4}/tests/data/geo/__init__.py +0 -0
  103. {glymur-0.14.2 → glymur-0.14.4}/tests/data/geo/gml.xml +0 -0
  104. {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/appended_xml_box.txt +0 -0
  105. {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/countries.xml +0 -0
  106. {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/decompression_parameters_type.txt +0 -0
  107. {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/default_compression_parameters_type.txt +0 -0
  108. {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/default_progression_order_changes_type.txt +0 -0
  109. {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/encoding_declaration.xml +0 -0
  110. {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/goodstuff_codestream_header.txt +0 -0
  111. {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/goodstuff_with_full_header.txt +0 -0
  112. {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/issue186_progression_order.txt +0 -0
  113. {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/issue398.dat +0 -0
  114. {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/issue405.dat +0 -0
  115. {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/issue549.dat +0 -0
  116. {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/issue555.xmp +0 -0
  117. {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/issue982.j2k +0 -0
  118. {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/multiple_precinct_size.txt +0 -0
  119. {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/nemo.txt +0 -0
  120. {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/nemo_dump_no_codestream.txt +0 -0
  121. {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/nemo_dump_no_codestream_no_xml.txt +0 -0
  122. {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/nemo_dump_no_xml.txt +0 -0
  123. {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/nemo_dump_short.txt +0 -0
  124. {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/nemo_with_codestream_header.txt +0 -0
  125. {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/nemo_xmp_box.txt +0 -0
  126. {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/no_jp2c.jp2 +0 -0
  127. {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/sgray.icc +0 -0
  128. {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/simple_rdf.txt +0 -0
  129. {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/simple_rdf.uuid-box.txt +0 -0
  130. {glymur-0.14.2 → glymur-0.14.4}/tests/data/misc/uint16.j2k +0 -0
  131. {glymur-0.14.2 → glymur-0.14.4}/tests/data/skimage/__init__.py +0 -0
  132. {glymur-0.14.2 → glymur-0.14.4}/tests/data/skimage/astronaut8.tif +0 -0
  133. {glymur-0.14.2 → glymur-0.14.4}/tests/data/skimage/astronaut8_stripped.tif +0 -0
  134. {glymur-0.14.2 → glymur-0.14.4}/tests/data/skimage/astronaut_s_uint16.tif +0 -0
  135. {glymur-0.14.2 → glymur-0.14.4}/tests/data/skimage/astronaut_uint16.tif +0 -0
  136. {glymur-0.14.2 → glymur-0.14.4}/tests/data/skimage/astronaut_ycbcr_jpeg_tiled.tif +0 -0
  137. {glymur-0.14.2 → glymur-0.14.4}/tests/data/skimage/goodstuff_32s.tif +0 -0
  138. {glymur-0.14.2 → glymur-0.14.4}/tests/data/skimage/moon.tif +0 -0
  139. {glymur-0.14.2 → glymur-0.14.4}/tests/data/skimage/moon3_partial_last_strip.tif +0 -0
  140. {glymur-0.14.2 → glymur-0.14.4}/tests/data/skimage/moon3_stripped.tif +0 -0
  141. {glymur-0.14.2 → glymur-0.14.4}/tests/data/skimage/moon63.tif +0 -0
  142. {glymur-0.14.2 → glymur-0.14.4}/tests/data/skimage/moon_2x2.tif +0 -0
  143. {glymur-0.14.2 → glymur-0.14.4}/tests/data/skimage/moon_3x3.tif +0 -0
  144. {glymur-0.14.2 → glymur-0.14.4}/tests/data/skimage/stripped.tif +0 -0
  145. {glymur-0.14.2 → glymur-0.14.4}/tests/data/skimage/ycbcr_bg.tif +0 -0
  146. {glymur-0.14.2 → glymur-0.14.4}/tests/data/skimage/ycbcr_stripped.tif +0 -0
  147. {glymur-0.14.2 → glymur-0.14.4}/tests/data/tiff/__init__.py +0 -0
  148. {glymur-0.14.2 → glymur-0.14.4}/tests/data/tiff/albers27-8.tif +0 -0
  149. {glymur-0.14.2 → glymur-0.14.4}/tests/data/tiff/albers27.tif +0 -0
  150. {glymur-0.14.2 → glymur-0.14.4}/tests/data/tiff/basn6a08.tif +0 -0
  151. {glymur-0.14.2 → glymur-0.14.4}/tests/data/tiff/cmyk.tif +0 -0
  152. {glymur-0.14.2 → glymur-0.14.4}/tests/data/tiff/degenerate_geotiff.tif +0 -0
  153. {glymur-0.14.2 → glymur-0.14.4}/tests/data/tiff/flower-separated-planar-08.tif +0 -0
  154. {glymur-0.14.2 → glymur-0.14.4}/tests/data/tiff/ieeefp32.tif +0 -0
  155. {glymur-0.14.2 → glymur-0.14.4}/tests/data/tiff/issue572.tif +0 -0
  156. {glymur-0.14.2 → glymur-0.14.4}/tests/data/tiff/issue678.tif +0 -0
  157. {glymur-0.14.2 → glymur-0.14.4}/tests/data/tiff/uint32.tif +0 -0
  158. {glymur-0.14.2 → glymur-0.14.4}/tests/data/tiff/warning.tif +0 -0
  159. {glymur-0.14.2 → glymur-0.14.4}/tests/fixtures.py +0 -0
  160. {glymur-0.14.2 → glymur-0.14.4}/tests/test_callbacks.py +0 -0
  161. {glymur-0.14.2 → glymur-0.14.4}/tests/test_cinema.py +0 -0
  162. {glymur-0.14.2 → glymur-0.14.4}/tests/test_codestream.py +0 -0
  163. {glymur-0.14.2 → glymur-0.14.4}/tests/test_colour_specification_box.py +0 -0
  164. {glymur-0.14.2 → glymur-0.14.4}/tests/test_commandline_jp2dump.py +0 -0
  165. {glymur-0.14.2 → glymur-0.14.4}/tests/test_commandline_jpeg2jp2.py +0 -0
  166. {glymur-0.14.2 → glymur-0.14.4}/tests/test_config.py +0 -0
  167. {glymur-0.14.2 → glymur-0.14.4}/tests/test_geo.py +0 -0
  168. {glymur-0.14.2 → glymur-0.14.4}/tests/test_jp2box.py +0 -0
  169. {glymur-0.14.2 → glymur-0.14.4}/tests/test_jp2box_jpx.py +0 -0
  170. {glymur-0.14.2 → glymur-0.14.4}/tests/test_jp2box_uuid.py +0 -0
  171. {glymur-0.14.2 → glymur-0.14.4}/tests/test_jp2box_xml.py +0 -0
  172. {glymur-0.14.2 → glymur-0.14.4}/tests/test_jp2k.py +0 -0
  173. {glymur-0.14.2 → glymur-0.14.4}/tests/test_jp2k_writes.py +0 -0
  174. {glymur-0.14.2 → glymur-0.14.4}/tests/test_jp2kr.py +0 -0
  175. {glymur-0.14.2 → glymur-0.14.4}/tests/test_jpeg2jp2.py +0 -0
  176. {glymur-0.14.2 → glymur-0.14.4}/tests/test_libtiff.py +0 -0
  177. {glymur-0.14.2 → glymur-0.14.4}/tests/test_openjp2.py +0 -0
  178. {glymur-0.14.2 → glymur-0.14.4}/tests/test_printing.py +0 -0
  179. {glymur-0.14.2 → glymur-0.14.4}/tests/test_set_decoded_components.py +0 -0
  180. {glymur-0.14.2 → glymur-0.14.4}/tests/test_slicing.py +0 -0
  181. {glymur-0.14.2 → glymur-0.14.4}/tests/test_warnings.py +0 -0
@@ -11,6 +11,7 @@ workflows:
11
11
  - travis-311
12
12
  - travis-312
13
13
  - travis-313
14
+ - travis-314
14
15
 
15
16
  test-template: &test-template
16
17
  docker:
@@ -60,3 +61,6 @@ jobs:
60
61
 
61
62
  travis-313:
62
63
  <<: *test-template
64
+
65
+ travis-314:
66
+ <<: *test-template
@@ -1,3 +1,12 @@
1
+ Oct 08, 2025 - v0.14.4
2
+ Qualify on python 3.14
3
+ Add User-Agent header to powershell script for Appveyor
4
+ Remove remaining openjpeg<2.4 artifacts
5
+ Remove explicit testing of numpy 1.26
6
+
7
+ Jun 12, 2025 - v0.14.3
8
+ Fix DeprecationWarning upon import
9
+
1
10
  Jun 12, 2025 - v0.14.2
2
11
  Fix test suite for python 3.14 regular expressions
3
12
  Remove long-since-deprecated Jp2kr.read method
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Glymur
3
- Version: 0.14.2
3
+ Version: 0.14.4
4
4
  Summary: Read and write JPEG 2000 files
5
5
  Author-email: John Evans <jevans667cc@proton.me>
6
6
  License-Expression: MIT
@@ -12,6 +12,7 @@ Classifier: Programming Language :: Python
12
12
  Classifier: Programming Language :: Python :: 3.11
13
13
  Classifier: Programming Language :: Python :: 3.12
14
14
  Classifier: Programming Language :: Python :: 3.13
15
+ Classifier: Programming Language :: Python :: 3.14
15
16
  Classifier: Programming Language :: Python :: Implementation :: CPython
16
17
  Classifier: Intended Audience :: Science/Research
17
18
  Classifier: Operating System :: OS Independent
@@ -26,6 +26,7 @@ ci/travis-311-no-opj.yaml
26
26
  ci/travis-311.yaml
27
27
  ci/travis-312.yaml
28
28
  ci/travis-313.yaml
29
+ ci/travis-314.yaml
29
30
  docs/Makefile
30
31
  docs/make.bat
31
32
  docs/requirements.txt
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Glymur
3
- Version: 0.14.2
3
+ Version: 0.14.4
4
4
  Summary: Read and write JPEG 2000 files
5
5
  Author-email: John Evans <jevans667cc@proton.me>
6
6
  License-Expression: MIT
@@ -12,6 +12,7 @@ Classifier: Programming Language :: Python
12
12
  Classifier: Programming Language :: Python :: 3.11
13
13
  Classifier: Programming Language :: Python :: 3.12
14
14
  Classifier: Programming Language :: Python :: 3.13
15
+ Classifier: Programming Language :: Python :: 3.14
15
16
  Classifier: Programming Language :: Python :: Implementation :: CPython
16
17
  Classifier: Intended Audience :: Science/Research
17
18
  Classifier: Operating System :: OS Independent
@@ -30,6 +30,12 @@ environment:
30
30
  CONDA_PY: "313"
31
31
  USE_PATH_FOR_GDAL_PYTHON: "YES"
32
32
 
33
+ - CONDA_ROOT: "C:\\Miniconda3_64"
34
+ PYTHON_VERSION: "3.14"
35
+ PYTHON_ARCH: "64"
36
+ CONDA_PY: "314"
37
+ USE_PATH_FOR_GDAL_PYTHON: "YES"
38
+
33
39
  # We always use a 64-bit machine, but can build x86 distributions
34
40
  # with the PYTHON_ARCH variable (which is used by CMD_IN_ENV).
35
41
  platform:
@@ -7,6 +7,8 @@ $MINICONDA_URL = "http://repo.continuum.io/miniconda/"
7
7
 
8
8
  function DownloadMiniconda ($python_version, $platform_suffix) {
9
9
  $webclient = New-Object System.Net.WebClient
10
+ $webclient.Headers.Add("User-Agent", "Abraxis/1.0")
11
+
10
12
  $filename = "Miniconda3-latest-Windows-" + $platform_suffix + ".exe"
11
13
  $url = $MINICONDA_URL + $filename
12
14
 
@@ -3,11 +3,11 @@ channels:
3
3
  - conda-forge
4
4
  dependencies:
5
5
  - python=3.11.*
6
- - gdal>=3.7.0,<3.8.0
6
+ - gdal>=3.8.0,<3.9.0
7
7
  - pillow
8
- - libtiff>=4.5.0,<4.6.0
8
+ - libtiff>=4.6.0,<4.7.0
9
9
  - lxml>=5.0
10
- - numpy>=1.26,<2.0
10
+ - numpy>=2.0,<2.1
11
11
  - openjpeg>=2.5
12
12
  - pytest-xdist
13
13
  - scikit-image
@@ -3,11 +3,11 @@ channels:
3
3
  - conda-forge
4
4
  dependencies:
5
5
  - python=3.11.*
6
- - gdal>=3.7.0,<3.8.0
6
+ - gdal>=3.8.0,<3.9.0
7
7
  - pillow
8
- - libtiff>=4.5.0,<4.6.0
8
+ - libtiff>=4.6.0,<4.7.0
9
9
  - lxml>=5.0
10
- - numpy>=1.26,<2.0
10
+ - numpy>=2.0,<2.1
11
11
  - pip
12
12
  - pytest-xdist
13
13
  - scikit-image
@@ -3,11 +3,11 @@ channels:
3
3
  - conda-forge
4
4
  dependencies:
5
5
  - python=3.11.*
6
- - gdal>=3.7.0,<3.8.0
6
+ - gdal>=3.8.0,<3.9.0
7
7
  - pillow
8
- - libtiff>=4.5.0,<4.6.0
8
+ - libtiff>=4.6.0,<4.7.0
9
9
  - lxml>=5.0
10
- - numpy>=1.26,<2.0
10
+ - numpy>=2.0,<2.1
11
11
  - openjpeg>=2.5
12
12
  - pytest-xdist
13
13
  - scikit-image
@@ -6,8 +6,8 @@ dependencies:
6
6
  - gdal>=3.10.0,<3.11.0
7
7
  - pillow
8
8
  - libtiff>=4.7.0,<4.8.0
9
- - lxml>=5.3.0
10
- - numpy>=2.1
11
- - openjpeg>=2.5
9
+ - lxml>=5.3.0,<6.0.0
10
+ - numpy>=2.1,<2.3.3
11
+ - openjpeg>=2.5.3,<2.5.4
12
12
  - pytest-xdist
13
13
  - scikit-image
@@ -0,0 +1,13 @@
1
+ name: glymur
2
+ channels:
3
+ - conda-forge
4
+ dependencies:
5
+ - python>=3.14.0
6
+ - gdal>=3.11.0
7
+ - pillow
8
+ - libtiff>=4.7.1
9
+ - lxml>=6.0.2
10
+ - numpy>=2.3.3
11
+ - openjpeg>=2.5.4
12
+ - pytest-xdist
13
+ - scikit-image
@@ -81,7 +81,7 @@ copyright = '2013-2025, John Evans'
81
81
  # The short X.Y version.
82
82
  version = '0.14'
83
83
  # The full version, including alpha/beta/rc tags.
84
- release = '0.14.2'
84
+ release = '0.14.4'
85
85
 
86
86
  # The language for content autogenerated by Sphinx. Refer to documentation
87
87
  # for a list of supported languages.
@@ -13,7 +13,7 @@ Certain optional JP2 boxes can also be written, including XML boxes and
13
13
  XMP UUIDs. There is incomplete support for reading JPX metadata.
14
14
 
15
15
  The current version of glymur is supported on Python versions 3.11,
16
- 3.12, and 3.13. You should have at least version 2.4.0 of OpenJPEG.
16
+ 3.12, 3.13, and 3.14. You should have at least version 2.4.0 of OpenJPEG.
17
17
 
18
18
  For more information about OpenJPEG, please consult http://www.openjpeg.org.
19
19
 
@@ -2,6 +2,21 @@
2
2
  Changes in glymur 0.14
3
3
  ######################
4
4
 
5
+ *****************
6
+ Changes in 0.14.4
7
+ *****************
8
+
9
+ * Qualify on python 3.14
10
+ * Add User-Agent header to powershell script for Appveyor
11
+ * Remove remaining openjpeg<2.4 artifacts
12
+ * Remove explicit testing of numpy 1.x
13
+
14
+ *****************
15
+ Changes in 0.14.3
16
+ *****************
17
+
18
+ * Fix import warning
19
+
5
20
  *****************
6
21
  Changes in 0.14.2
7
22
  *****************
@@ -9,7 +9,7 @@ from uuid import UUID
9
9
 
10
10
  # local imports
11
11
  from . import jp2box
12
- from .lib.tiff import DATATYPE2FMT
12
+ from .lib._tiff import DATATYPE2FMT
13
13
  from .jp2k import Jp2k
14
14
  from glymur.core import RESTRICTED_ICC_PROFILE
15
15
 
@@ -51,7 +51,7 @@ from .core import (
51
51
  ANY_ICC_PROFILE,
52
52
  VENDOR_COLOR_METHOD,
53
53
  )
54
- from .lib.tiff import tiff_header, BadTiffTagDatatype
54
+ from .lib._tiff import tiff_header, BadTiffTagDatatype
55
55
  from . import get_option
56
56
  from ._iccprofile import _ICCProfile
57
57
 
@@ -526,10 +526,10 @@ class Jp2k(Jp2kr):
526
526
  This method can only be used to create JPEG 2000 images that can fit
527
527
  in memory.
528
528
  """
529
- if version.openjpeg_version < "2.3.0":
529
+ if version.openjpeg_version < "2.4.0":
530
530
  msg = (
531
- "You must have at least version 2.3.0 of OpenJPEG in order to "
532
- "write images."
531
+ "The minimum supported version of OpenJPEG is 2.4.0. "
532
+ f"Your version is {version.openjpeg_version}."
533
533
  )
534
534
  raise RuntimeError(msg)
535
535
 
@@ -1463,10 +1463,10 @@ class _TileWriter(object):
1463
1463
  """Write image data to a JP2/JPX/J2k file. Intended usage of the
1464
1464
  various parameters follows that of OpenJPEG's opj_compress utility.
1465
1465
  """
1466
- if version.openjpeg_version < "2.3.0":
1466
+ if version.openjpeg_version < "2.4.0":
1467
1467
  msg = (
1468
- "You must have at least version 2.3.0 of OpenJPEG "
1469
- "in order to write images."
1468
+ "The minimum supported version of OpenJPEG is 2.4.0. "
1469
+ f"Your version is {version.openjpeg_version}."
1470
1470
  )
1471
1471
  raise RuntimeError(msg)
1472
1472
 
@@ -12,7 +12,6 @@ from __future__ import annotations
12
12
  from contextlib import ExitStack
13
13
  import ctypes
14
14
  import pathlib
15
- import re
16
15
  import struct
17
16
  import sys
18
17
  import warnings
@@ -694,11 +693,10 @@ class Jp2kr(Jp2kBox):
694
693
  RuntimeError
695
694
  If the image has differing subsample factors.
696
695
  """
697
- if re.match("0|1|2.[012]", version.openjpeg_version):
696
+ if version.openjpeg_version < '2.4.0':
698
697
  msg = (
699
- f"You must have a version of OpenJPEG at least as high as "
700
- f"2.3.0 before you can read JPEG2000 images with glymur. "
701
- f"Your version is {version.openjpeg_version}"
698
+ "The minimum supported version of OpenJPEG is 2.4.0. "
699
+ f"Your version is {version.openjpeg_version}."
702
700
  )
703
701
  raise RuntimeError(msg)
704
702
 
@@ -878,11 +876,10 @@ class Jp2kr(Jp2kBox):
878
876
  >>> jp = glymur.Jp2k(jfile)
879
877
  >>> components_lst = jp.read_bands(rlevel=1)
880
878
  """
881
- if version.openjpeg_version < "2.3.0":
879
+ if version.openjpeg_version < "2.4.0":
882
880
  msg = (
883
- f"You must have at least version 2.3.0 of OpenJPEG installed "
884
- f"before using this method. Your version of OpenJPEG is "
885
- f"{version.openjpeg_version}."
881
+ "The minimum supported version of OpenJPEG is 2.4.0. "
882
+ f"Your version is {version.openjpeg_version}."
886
883
  )
887
884
  raise RuntimeError(msg)
888
885
 
@@ -71,11 +71,10 @@ def set_option(key, value):
71
71
  raise KeyError(f"{key} not valid.")
72
72
 
73
73
  if key == "lib.num_threads":
74
- if version.openjpeg_version < "2.2.0":
74
+ if version.openjpeg_version < "2.4.0":
75
75
  msg = (
76
- f"Thread support is not available on versions of OpenJPEG "
77
- f"prior to 2.2.0. Your version is "
78
- f"{version.openjpeg_version}."
76
+ "The minimum supported version of OpenJPEG is 2.4.0. "
77
+ f"Your version is {version.openjpeg_version}."
79
78
  )
80
79
  raise RuntimeError(msg)
81
80
  if not opj2.has_thread_support():
@@ -16,11 +16,11 @@ import numpy as np
16
16
 
17
17
  # Local imports ...
18
18
  from .lib import openjp2 as opj2
19
- from .lib import tiff
19
+ from .lib import _tiff as tiff
20
20
 
21
21
  # Do not change the format of this next line! Doing so risks breaking
22
22
  # setup.py
23
- version = "0.14.2"
23
+ version = "0.14.4"
24
24
 
25
25
  version_tuple = parse(version).release
26
26
 
@@ -5,6 +5,7 @@ classifiers = [
5
5
  'Programming Language :: Python :: 3.11',
6
6
  'Programming Language :: Python :: 3.12',
7
7
  'Programming Language :: Python :: 3.13',
8
+ 'Programming Language :: Python :: 3.14',
8
9
  'Programming Language :: Python :: Implementation :: CPython',
9
10
  'Intended Audience :: Science/Research',
10
11
  'Operating System :: OS Independent',
@@ -21,7 +22,7 @@ license = 'MIT'
21
22
  name = 'Glymur'
22
23
  readme = 'README.md'
23
24
  requires-python = '>=3.11'
24
- version = '0.14.2'
25
+ version = '0.14.4'
25
26
 
26
27
  [project.scripts]
27
28
  jp2dump = 'glymur.command_line:main'
@@ -428,7 +428,7 @@ class TestSuite(fixtures.TestCommon):
428
428
  """
429
429
  path = ir.files('tests.data.tiff').joinpath('basn6a08.tif')
430
430
  buffer = path.read_bytes()
431
- ifd = glymur.lib.tiff.tiff_header(buffer)
431
+ ifd = glymur.lib._tiff.tiff_header(buffer)
432
432
  icc_profile = bytes(ifd['ICCProfile'])
433
433
 
434
434
  sys.argv = [
@@ -107,18 +107,18 @@ class TestSuite(fixtures.TestCommon):
107
107
  SCENARIO: Attempt to encode with threading support. This feature is
108
108
  new as of openjpeg library version 2.4.0.
109
109
 
110
- EXPECTED RESULT: In library versions prior to 2.4.0, a warning is
111
- issued.
110
+ EXPECTED RESULT: OpenJPEG currently must be at least 2.4.0, so no
111
+ warning is issued.
112
112
  """
113
- with patch('glymur.jp2k.version.openjpeg_version', new='2.3.0'):
114
- glymur.set_option('lib.num_threads', 2)
115
-
116
- with warnings.catch_warnings(record=True) as w:
117
- Jp2k(
118
- self.temp_jp2_filename,
119
- data=np.zeros((128, 128), dtype=np.uint8)
120
- )
121
- self.assertEqual(len(w), 1)
113
+ glymur.set_option('lib.num_threads', 2)
114
+
115
+ with warnings.catch_warnings(record=True) as w:
116
+ Jp2k(
117
+ self.temp_jp2_filename,
118
+ data=np.zeros((128, 128), dtype=np.uint8)
119
+ )
120
+
121
+ self.assertEqual(len(w), 0)
122
122
 
123
123
  def test_tiff2jp2_num_threads(self):
124
124
  """
@@ -147,7 +147,7 @@ class TestSuite(fixtures.TestCommon):
147
147
  openjpeg library is not too old for writing, it's too old for threaded
148
148
  writing. In other words, it's version 2.3.0
149
149
 
150
- EXPECTED RESULT: There is a warning, but the image is created.
150
+ EXPECTED RESULT: RuntimeError
151
151
  """
152
152
  expected = skimage.data.astronaut()
153
153
 
@@ -162,12 +162,6 @@ class TestSuite(fixtures.TestCommon):
162
162
  )
163
163
 
164
164
  with patch('glymur.version.openjpeg_version', new='2.3.0'):
165
- with self.assertWarns(UserWarning):
165
+ with self.assertRaises(RuntimeError):
166
166
  for tw in j.get_tilewriters():
167
167
  tw[:] = expected
168
-
169
- expected = np.concatenate((expected, expected), axis=0)
170
- expected = np.concatenate((expected, expected), axis=1)
171
- actual = j[:]
172
-
173
- np.testing.assert_array_equal(actual, expected)
@@ -1290,7 +1290,7 @@ class TestSuite(fixtures.TestCommon):
1290
1290
  """
1291
1291
  path = ir.files('tests.data.tiff').joinpath('basn6a08.tif')
1292
1292
  buffer = path.read_bytes()
1293
- ifd = glymur.lib.tiff.tiff_header(buffer)
1293
+ ifd = glymur.lib._tiff.tiff_header(buffer)
1294
1294
  icc_profile = bytes(ifd['ICCProfile'])
1295
1295
 
1296
1296
  with Tiff2Jp2k(
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
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