Glymur 0.14.0.post2__tar.gz → 0.14.1.post1__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 (185) hide show
  1. glymur-0.14.1.post1/.circleci/config.yml +60 -0
  2. glymur-0.14.1.post1/.gitignore +7 -0
  3. glymur-0.14.1.post1/.readthedocs.yaml +23 -0
  4. glymur-0.14.1.post1/.travis.yml +40 -0
  5. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/CHANGES.txt +8 -2
  6. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/Glymur.egg-info/PKG-INFO +15 -13
  7. glymur-0.14.1.post1/Glymur.egg-info/SOURCES.txt +177 -0
  8. glymur-0.14.1.post1/Glymur.egg-info/requires.txt +3 -0
  9. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/PKG-INFO +15 -13
  10. glymur-0.14.1.post1/appveyor.yml +87 -0
  11. glymur-0.14.1.post1/azure-pipelines.yml +30 -0
  12. glymur-0.14.1.post1/ci/doc.yml +10 -0
  13. glymur-0.14.1.post1/ci/install.ps1 +92 -0
  14. glymur-0.14.1.post1/ci/run_script.sh +18 -0
  15. glymur-0.14.1.post1/ci/run_with_env.cmd +95 -0
  16. glymur-0.14.1.post1/ci/setup_env.sh +80 -0
  17. glymur-0.14.1.post1/ci/travis-311-no-gdal.yaml +13 -0
  18. glymur-0.14.1.post1/ci/travis-311-no-opj.yaml +13 -0
  19. glymur-0.14.1.post1/ci/travis-311.yaml +13 -0
  20. glymur-0.14.1.post1/ci/travis-312.yaml +13 -0
  21. glymur-0.14.1.post1/ci/travis-313.yaml +13 -0
  22. glymur-0.14.1.post1/conftest.py +7 -0
  23. glymur-0.14.1.post1/docs/Makefile +153 -0
  24. glymur-0.14.1.post1/docs/make.bat +190 -0
  25. glymur-0.14.1.post1/docs/requirements.txt +5 -0
  26. glymur-0.14.1.post1/docs/source/api.rst +13 -0
  27. glymur-0.14.1.post1/docs/source/conf.py +276 -0
  28. glymur-0.14.1.post1/docs/source/detailed_installation.rst +55 -0
  29. glymur-0.14.1.post1/docs/source/goodstuff_alpha.png +0 -0
  30. glymur-0.14.1.post1/docs/source/how_do_i.rst +784 -0
  31. glymur-0.14.1.post1/docs/source/index.rst +29 -0
  32. glymur-0.14.1.post1/docs/source/introduction.rst +27 -0
  33. glymur-0.14.1.post1/docs/source/roadmap.rst +15 -0
  34. glymur-0.14.1.post1/docs/source/whatsnew/0.10.rst +28 -0
  35. glymur-0.14.1.post1/docs/source/whatsnew/0.11.rst +59 -0
  36. glymur-0.14.1.post1/docs/source/whatsnew/0.12.rst +74 -0
  37. glymur-0.14.1.post1/docs/source/whatsnew/0.13.rst +81 -0
  38. glymur-0.14.1.post1/docs/source/whatsnew/0.14.rst +26 -0
  39. glymur-0.14.1.post1/docs/source/whatsnew/0.5.rst +54 -0
  40. glymur-0.14.1.post1/docs/source/whatsnew/0.6.rst +20 -0
  41. glymur-0.14.1.post1/docs/source/whatsnew/0.7.rst +31 -0
  42. glymur-0.14.1.post1/docs/source/whatsnew/0.8.rst +131 -0
  43. glymur-0.14.1.post1/docs/source/whatsnew/0.9.rst +78 -0
  44. glymur-0.14.1.post1/docs/source/whatsnew/index.rst +20 -0
  45. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/glymur/_core_converter.py +3 -1
  46. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/glymur/codestream.py +1 -1
  47. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/glymur/jp2box.py +3 -1
  48. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/glymur/jp2k.py +89 -7
  49. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/glymur/jp2kr.py +110 -8
  50. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/glymur/jpeg.py +4 -2
  51. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/glymur/lib/tiff.py +4 -38
  52. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/glymur/version.py +1 -1
  53. glymur-0.14.1.post1/pyproject.toml +43 -0
  54. glymur-0.14.1.post1/setup.cfg +4 -0
  55. glymur-0.14.1.post1/tests/__init__.py +3 -0
  56. glymur-0.14.1.post1/tests/data/__init__.py +0 -0
  57. glymur-0.14.1.post1/tests/data/conformance/__init__.py +0 -0
  58. glymur-0.14.1.post1/tests/data/conformance/file1_xml.txt +6 -0
  59. glymur-0.14.1.post1/tests/data/conformance/file1_xml_box.txt +7 -0
  60. glymur-0.14.1.post1/tests/data/conformance/p0_02.j2k +0 -0
  61. glymur-0.14.1.post1/tests/data/conformance/p0_03.j2k +0 -0
  62. glymur-0.14.1.post1/tests/data/conformance/p0_06.j2k +0 -0
  63. glymur-0.14.1.post1/tests/data/conformance/p1_06.j2k +0 -0
  64. glymur-0.14.1.post1/tests/data/conformance/p1_07.j2k +0 -0
  65. glymur-0.14.1.post1/tests/data/conformance/p1_07.txt +15 -0
  66. glymur-0.14.1.post1/tests/data/from-openjpeg/__init__.py +0 -0
  67. glymur-0.14.1.post1/tests/data/from-openjpeg/edf_c2_1178956.jp2 +0 -0
  68. glymur-0.14.1.post1/tests/data/from-openjpeg/issue142.j2k +0 -0
  69. glymur-0.14.1.post1/tests/data/from-openjpeg/issue392.jp2 +0 -0
  70. glymur-0.14.1.post1/tests/data/from-openjpeg/issue396.jp2 +0 -0
  71. glymur-0.14.1.post1/tests/data/from-openjpeg/issue438.jp2 +0 -0
  72. glymur-0.14.1.post1/tests/data/from-openjpeg/issue626.j2k +0 -0
  73. glymur-0.14.1.post1/tests/data/from-openjpeg/jph_siz.txt +9 -0
  74. glymur-0.14.1.post1/tests/data/from-openjpeg/oj-ht-byte.jph +0 -0
  75. glymur-0.14.1.post1/tests/data/from-openjpeg/text_GBR.jp2 +0 -0
  76. glymur-0.14.1.post1/tests/data/from-openjpeg/text_GBR_rreq.txt +14 -0
  77. glymur-0.14.1.post1/tests/data/geo/0220000800_uuid.dat +0 -0
  78. glymur-0.14.1.post1/tests/data/geo/__init__.py +0 -0
  79. glymur-0.14.1.post1/tests/data/geo/gml.xml +41 -0
  80. glymur-0.14.1.post1/tests/data/misc/appended_xml_box.txt +53 -0
  81. glymur-0.14.1.post1/tests/data/misc/countries.xml +23 -0
  82. glymur-0.14.1.post1/tests/data/misc/decompression_parameters_type.txt +18 -0
  83. glymur-0.14.1.post1/tests/data/misc/default_compression_parameters_type.txt +61 -0
  84. glymur-0.14.1.post1/tests/data/misc/default_progression_order_changes_type.txt +37 -0
  85. glymur-0.14.1.post1/tests/data/misc/encoding_declaration.xml +42 -0
  86. glymur-0.14.1.post1/tests/data/misc/goodstuff_codestream_header.txt +35 -0
  87. glymur-0.14.1.post1/tests/data/misc/goodstuff_with_full_header.txt +79 -0
  88. glymur-0.14.1.post1/tests/data/misc/issue186_progression_order.txt +20 -0
  89. glymur-0.14.1.post1/tests/data/misc/issue398.dat +0 -0
  90. glymur-0.14.1.post1/tests/data/misc/issue405.dat +0 -0
  91. glymur-0.14.1.post1/tests/data/misc/issue549.dat +0 -0
  92. glymur-0.14.1.post1/tests/data/misc/issue555.xmp +255 -0
  93. glymur-0.14.1.post1/tests/data/misc/issue982.j2k +0 -0
  94. glymur-0.14.1.post1/tests/data/misc/multiple_precinct_size.txt +20 -0
  95. glymur-0.14.1.post1/tests/data/misc/nemo.txt +97 -0
  96. glymur-0.14.1.post1/tests/data/misc/nemo_dump_no_codestream.txt +17 -0
  97. glymur-0.14.1.post1/tests/data/misc/nemo_dump_no_codestream_no_xml.txt +19 -0
  98. glymur-0.14.1.post1/tests/data/misc/nemo_dump_no_xml.txt +52 -0
  99. glymur-0.14.1.post1/tests/data/misc/nemo_dump_short.txt +6 -0
  100. glymur-0.14.1.post1/tests/data/misc/nemo_with_codestream_header.txt +140 -0
  101. glymur-0.14.1.post1/tests/data/misc/nemo_xmp_box.txt +88 -0
  102. glymur-0.14.1.post1/tests/data/misc/no_jp2c.jp2 +0 -0
  103. glymur-0.14.1.post1/tests/data/misc/sgray.icc +0 -0
  104. glymur-0.14.1.post1/tests/data/misc/simple_rdf.txt +15 -0
  105. glymur-0.14.1.post1/tests/data/misc/simple_rdf.uuid-box.txt +14 -0
  106. glymur-0.14.1.post1/tests/data/misc/uint16.j2k +0 -0
  107. glymur-0.14.1.post1/tests/data/skimage/__init__.py +0 -0
  108. glymur-0.14.1.post1/tests/data/skimage/astronaut8.tif +0 -0
  109. glymur-0.14.1.post1/tests/data/skimage/astronaut8_stripped.tif +0 -0
  110. glymur-0.14.1.post1/tests/data/skimage/astronaut_s_uint16.tif +0 -0
  111. glymur-0.14.1.post1/tests/data/skimage/astronaut_uint16.tif +0 -0
  112. glymur-0.14.1.post1/tests/data/skimage/astronaut_ycbcr_jpeg_tiled.tif +0 -0
  113. glymur-0.14.1.post1/tests/data/skimage/goodstuff_32s.tif +0 -0
  114. glymur-0.14.1.post1/tests/data/skimage/moon.tif +0 -0
  115. glymur-0.14.1.post1/tests/data/skimage/moon3_partial_last_strip.tif +0 -0
  116. glymur-0.14.1.post1/tests/data/skimage/moon3_stripped.tif +0 -0
  117. glymur-0.14.1.post1/tests/data/skimage/moon63.tif +0 -0
  118. glymur-0.14.1.post1/tests/data/skimage/moon_2x2.tif +0 -0
  119. glymur-0.14.1.post1/tests/data/skimage/moon_3x3.tif +0 -0
  120. glymur-0.14.1.post1/tests/data/skimage/stripped.tif +0 -0
  121. glymur-0.14.1.post1/tests/data/skimage/ycbcr_bg.tif +0 -0
  122. glymur-0.14.1.post1/tests/data/skimage/ycbcr_stripped.tif +0 -0
  123. glymur-0.14.1.post1/tests/data/tiff/__init__.py +0 -0
  124. glymur-0.14.1.post1/tests/data/tiff/albers27-8.tif +0 -0
  125. glymur-0.14.1.post1/tests/data/tiff/albers27.tif +0 -0
  126. glymur-0.14.1.post1/tests/data/tiff/basn6a08.tif +0 -0
  127. glymur-0.14.1.post1/tests/data/tiff/cmyk.tif +0 -0
  128. glymur-0.14.1.post1/tests/data/tiff/degenerate_geotiff.tif +0 -0
  129. glymur-0.14.1.post1/tests/data/tiff/flower-separated-planar-08.tif +0 -0
  130. glymur-0.14.1.post1/tests/data/tiff/ieeefp32.tif +0 -0
  131. glymur-0.14.1.post1/tests/data/tiff/issue572.tif +0 -0
  132. glymur-0.14.1.post1/tests/data/tiff/issue678.tif +0 -0
  133. glymur-0.14.1.post1/tests/data/tiff/uint32.tif +0 -0
  134. glymur-0.14.1.post1/tests/data/tiff/warning.tif +0 -0
  135. glymur-0.14.1.post1/tests/fixtures.py +131 -0
  136. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/tests/test_callbacks.py +4 -1
  137. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/tests/test_codestream.py +12 -9
  138. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/tests/test_colour_specification_box.py +8 -6
  139. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/tests/test_commandline_jp2dump.py +13 -10
  140. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/tests/test_commandline_tiff2jp2.py +15 -15
  141. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/tests/test_config.py +3 -1
  142. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/tests/test_geo.py +7 -5
  143. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/tests/test_jp2box.py +7 -6
  144. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/tests/test_jp2box_jpx.py +9 -5
  145. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/tests/test_jp2box_uuid.py +24 -19
  146. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/tests/test_jp2box_xml.py +4 -2
  147. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/tests/test_jp2k.py +21 -10
  148. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/tests/test_jp2kr.py +21 -10
  149. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/tests/test_openjp2.py +3 -3
  150. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/tests/test_printing.py +41 -30
  151. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/tests/test_set_decoded_components.py +2 -2
  152. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/tests/test_threading.py +1 -1
  153. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/tests/test_tiff2jp2.py +11 -10
  154. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/tests/test_warnings.py +2 -2
  155. glymur-0.14.0.post2/Glymur.egg-info/SOURCES.txt +0 -60
  156. glymur-0.14.0.post2/Glymur.egg-info/not-zip-safe +0 -1
  157. glymur-0.14.0.post2/Glymur.egg-info/requires.txt +0 -9
  158. glymur-0.14.0.post2/a.txt +0 -91
  159. glymur-0.14.0.post2/pyproject.toml +0 -8
  160. glymur-0.14.0.post2/setup.cfg +0 -63
  161. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/Glymur.egg-info/dependency_links.txt +0 -0
  162. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/Glymur.egg-info/entry_points.txt +0 -0
  163. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/Glymur.egg-info/top_level.txt +0 -0
  164. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/LICENSE.txt +0 -0
  165. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/MANIFEST.in +0 -0
  166. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/README.md +0 -0
  167. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/glymur/__init__.py +0 -0
  168. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/glymur/_iccprofile.py +0 -0
  169. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/glymur/command_line.py +0 -0
  170. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/glymur/config.py +0 -0
  171. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/glymur/core.py +0 -0
  172. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/glymur/data/__init__.py +0 -0
  173. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/glymur/data/goodstuff.j2k +0 -0
  174. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/glymur/data/heliov.jpx +0 -0
  175. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/glymur/data/nemo.jp2 +0 -0
  176. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/glymur/lib/__init__.py +0 -0
  177. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/glymur/lib/openjp2.py +0 -0
  178. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/glymur/options.py +0 -0
  179. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/glymur/tiff.py +0 -0
  180. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/tests/test_cinema.py +0 -0
  181. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/tests/test_commandline_jpeg2jp2.py +0 -0
  182. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/tests/test_jp2k_writes.py +0 -0
  183. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/tests/test_jpeg2jp2.py +0 -0
  184. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/tests/test_libtiff.py +0 -0
  185. {glymur-0.14.0.post2 → glymur-0.14.1.post1}/tests/test_slicing.py +0 -0
@@ -0,0 +1,60 @@
1
+ # See https://stackoverflow.com/questions/58243255/circleci-testing-with-specific-miniconda-python-and-numpy-versions
2
+ #
3
+ version: 2.0
4
+
5
+ workflows:
6
+ version: 2
7
+ test:
8
+ jobs:
9
+ - travis-311-no-gdal
10
+ - travis-311-no-opj
11
+ - travis-311
12
+ - travis-312
13
+ - travis-313
14
+
15
+ test-template: &test-template
16
+ docker:
17
+ - image: cimg/base:2021.04
18
+ steps:
19
+ - checkout
20
+
21
+ - run:
22
+ name: install anaconda
23
+ command: |
24
+ cd $HOME
25
+ wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.sh
26
+ chmod +x ~/miniconda.sh && bash ~/miniconda.sh -b -p $HOME/miniconda
27
+ export PATH=$HOME/miniconda/bin:$PATH
28
+
29
+ - run:
30
+ name: Install environment
31
+ command: |
32
+ export PATH="$HOME/miniconda/bin:$PATH"
33
+ conda update --yes conda
34
+ echo $PYTHON_VERSION
35
+ conda env create -f ci/$CIRCLE_JOB.yaml
36
+ source activate glymur
37
+ python --version
38
+
39
+ - run:
40
+ name: Run tests
41
+ command: |
42
+ export PATH=$HOME/miniconda/bin:$PATH
43
+ source activate glymur
44
+ pytest -n 4 -x
45
+
46
+ jobs:
47
+ travis-311-no-gdal:
48
+ <<: *test-template
49
+
50
+ travis-311-no-opj:
51
+ <<: *test-template
52
+
53
+ travis-311:
54
+ <<: *test-template
55
+
56
+ travis-312:
57
+ <<: *test-template
58
+
59
+ travis-313:
60
+ <<: *test-template
@@ -0,0 +1,7 @@
1
+ *.pyc
2
+ *.swp
3
+ .coverage
4
+ docs/build
5
+ cover
6
+ Glymur.egg-info
7
+ dist
@@ -0,0 +1,23 @@
1
+ # .readthedocs.yaml
2
+ # Read the Docs configuration file
3
+ # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
4
+
5
+ # Required
6
+ version: 2
7
+ build:
8
+ os: ubuntu-22.04
9
+ tools:
10
+ python: "3.12"
11
+ # conda:
12
+ # environment: ci/doc.yml
13
+
14
+ # We recommend specifying your dependencies to enable reproducible builds:
15
+ # https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
16
+ python:
17
+ install:
18
+ - requirements: docs/requirements.txt
19
+
20
+ # Build documentation in the docs/ directory with Sphinx
21
+ sphinx:
22
+ configuration: docs/source/conf.py
23
+
@@ -0,0 +1,40 @@
1
+ language: python
2
+ matrix:
3
+ fast_finish: true
4
+ include:
5
+ - python: 3.9
6
+ env:
7
+ - JOB="3.9" ENV_FILE="ci/travis-39.yaml"
8
+ - python: 3.9
9
+ env:
10
+ - JOB="3.9 opj 2.4" ENV_FILE="ci/travis-39-opj2p4.yaml"
11
+ - python: 3.8
12
+ env:
13
+ - JOB="3.8" ENV_FILE="ci/travis-38.yaml"
14
+ - python: 3.7
15
+ env:
16
+ - JOB="3.7" ENV_FILE="ci/travis-37.yaml"
17
+ - python: 3.7
18
+ env:
19
+ - JOB="3.7" ENV_FILE="ci/travis-37-no-gdal.yaml"
20
+ - python: 3.7
21
+ env:
22
+ - JOB="3.7 No OPENJPEG" ENV_FILE="ci/travis-37-no-opj.yaml"
23
+ before_install:
24
+ - echo "before_install"
25
+ - sudo apt-get update
26
+ - df -h
27
+ - pwd
28
+ - uname -a
29
+ - git --version
30
+ - hash -r
31
+
32
+ install:
33
+ - echo "install"
34
+ - ci/setup_env.sh
35
+ - echo "install done"
36
+
37
+ script:
38
+ - echo "run script"
39
+ - ci/run_script.sh
40
+ - echo "script done"
@@ -1,5 +1,11 @@
1
- Mar 29, 2025 - v0.14.0post2
2
- Fix python_requires value
1
+ Apr 06, 2025 - v0.14.1post1
2
+ Fix pyproject.toml for pillow, not PIL
3
+
4
+ Apr 06, 2025 - v0.14.1
5
+ Fix doc builds for API
6
+ Add additional API examples for Jp2k, Jp2kr
7
+ Fix tilesize reporting
8
+ Refactor all of setup.cfg into pyproject.toml
3
9
 
4
10
  Mar 19, 2025 - v0.14.0
5
11
  Add description of raw IFD for geojp2 UUIDs
@@ -1,16 +1,18 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Glymur
3
- Version: 0.14.0.post2
4
- Home-page: https://github.com/quintusdias/glymur
5
- Author: 'John Evans'
6
- Author-email: "John Evans" <jevans667cc@proton.me>
7
- License: 'MIT'
3
+ Version: 0.14.1.post1
4
+ Summary: Read and write JPEG 2000 files
5
+ Author-email: John Evans <jevans667cc@proton.me>
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://glymur.readthedocs.io
8
+ Project-URL: Documentation, https://glymur.readthedocs.io
9
+ Project-URL: Repository, https://github.com/quintusdias/glymur
10
+ Keywords: JPEG2000,JPEG,2000,imagery
8
11
  Classifier: Programming Language :: Python
9
12
  Classifier: Programming Language :: Python :: 3.11
10
13
  Classifier: Programming Language :: Python :: 3.12
11
14
  Classifier: Programming Language :: Python :: 3.13
12
15
  Classifier: Programming Language :: Python :: Implementation :: CPython
13
- Classifier: License :: OSI Approved :: MIT License
14
16
  Classifier: Intended Audience :: Science/Research
15
17
  Classifier: Operating System :: OS Independent
16
18
  Classifier: Topic :: Scientific/Engineering
@@ -19,14 +21,14 @@ Description-Content-Type: text/markdown
19
21
  License-File: LICENSE.txt
20
22
  Requires-Dist: numpy
21
23
  Requires-Dist: lxml
22
- Requires-Dist: imageio
23
- Requires-Dist: packaging
24
- Provides-Extra: test
25
- Requires-Dist: pytest; extra == "test"
26
- Requires-Dist: pillow; extra == "test"
27
- Requires-Dist: scikit-image; extra == "test"
24
+ Requires-Dist: pillow
28
25
  Dynamic: license-file
29
26
 
27
+ glymur: a Python interface for JPEG 2000
28
+ =========================================
30
29
 
31
30
  **glymur** contains a Python interface to the OpenJPEG library which
32
- allows one to read and write JPEG 2000 files.
31
+ allows one to read and write JPEG 2000 files. **glymur** works on
32
+ Python 3.11, 3.12, and 3.13.
33
+
34
+ Please read the docs, https://glymur.readthedocs.org/en/latest/
@@ -0,0 +1,177 @@
1
+ .gitignore
2
+ .readthedocs.yaml
3
+ .travis.yml
4
+ CHANGES.txt
5
+ LICENSE.txt
6
+ MANIFEST.in
7
+ README.md
8
+ appveyor.yml
9
+ azure-pipelines.yml
10
+ conftest.py
11
+ pyproject.toml
12
+ .circleci/config.yml
13
+ Glymur.egg-info/PKG-INFO
14
+ Glymur.egg-info/SOURCES.txt
15
+ Glymur.egg-info/dependency_links.txt
16
+ Glymur.egg-info/entry_points.txt
17
+ Glymur.egg-info/requires.txt
18
+ Glymur.egg-info/top_level.txt
19
+ ci/doc.yml
20
+ ci/install.ps1
21
+ ci/run_script.sh
22
+ ci/run_with_env.cmd
23
+ ci/setup_env.sh
24
+ ci/travis-311-no-gdal.yaml
25
+ ci/travis-311-no-opj.yaml
26
+ ci/travis-311.yaml
27
+ ci/travis-312.yaml
28
+ ci/travis-313.yaml
29
+ docs/Makefile
30
+ docs/make.bat
31
+ docs/requirements.txt
32
+ docs/source/api.rst
33
+ docs/source/conf.py
34
+ docs/source/detailed_installation.rst
35
+ docs/source/goodstuff_alpha.png
36
+ docs/source/how_do_i.rst
37
+ docs/source/index.rst
38
+ docs/source/introduction.rst
39
+ docs/source/roadmap.rst
40
+ docs/source/whatsnew/0.10.rst
41
+ docs/source/whatsnew/0.11.rst
42
+ docs/source/whatsnew/0.12.rst
43
+ docs/source/whatsnew/0.13.rst
44
+ docs/source/whatsnew/0.14.rst
45
+ docs/source/whatsnew/0.5.rst
46
+ docs/source/whatsnew/0.6.rst
47
+ docs/source/whatsnew/0.7.rst
48
+ docs/source/whatsnew/0.8.rst
49
+ docs/source/whatsnew/0.9.rst
50
+ docs/source/whatsnew/index.rst
51
+ glymur/__init__.py
52
+ glymur/_core_converter.py
53
+ glymur/_iccprofile.py
54
+ glymur/codestream.py
55
+ glymur/command_line.py
56
+ glymur/config.py
57
+ glymur/core.py
58
+ glymur/jp2box.py
59
+ glymur/jp2k.py
60
+ glymur/jp2kr.py
61
+ glymur/jpeg.py
62
+ glymur/options.py
63
+ glymur/tiff.py
64
+ glymur/version.py
65
+ glymur/data/__init__.py
66
+ glymur/data/goodstuff.j2k
67
+ glymur/data/heliov.jpx
68
+ glymur/data/nemo.jp2
69
+ glymur/lib/__init__.py
70
+ glymur/lib/openjp2.py
71
+ glymur/lib/tiff.py
72
+ tests/__init__.py
73
+ tests/fixtures.py
74
+ tests/test_callbacks.py
75
+ tests/test_cinema.py
76
+ tests/test_codestream.py
77
+ tests/test_colour_specification_box.py
78
+ tests/test_commandline_jp2dump.py
79
+ tests/test_commandline_jpeg2jp2.py
80
+ tests/test_commandline_tiff2jp2.py
81
+ tests/test_config.py
82
+ tests/test_geo.py
83
+ tests/test_jp2box.py
84
+ tests/test_jp2box_jpx.py
85
+ tests/test_jp2box_uuid.py
86
+ tests/test_jp2box_xml.py
87
+ tests/test_jp2k.py
88
+ tests/test_jp2k_writes.py
89
+ tests/test_jp2kr.py
90
+ tests/test_jpeg2jp2.py
91
+ tests/test_libtiff.py
92
+ tests/test_openjp2.py
93
+ tests/test_printing.py
94
+ tests/test_set_decoded_components.py
95
+ tests/test_slicing.py
96
+ tests/test_threading.py
97
+ tests/test_tiff2jp2.py
98
+ tests/test_warnings.py
99
+ tests/data/__init__.py
100
+ tests/data/conformance/__init__.py
101
+ tests/data/conformance/file1_xml.txt
102
+ tests/data/conformance/file1_xml_box.txt
103
+ tests/data/conformance/p0_02.j2k
104
+ tests/data/conformance/p0_03.j2k
105
+ tests/data/conformance/p0_06.j2k
106
+ tests/data/conformance/p1_06.j2k
107
+ tests/data/conformance/p1_07.j2k
108
+ tests/data/conformance/p1_07.txt
109
+ tests/data/from-openjpeg/__init__.py
110
+ tests/data/from-openjpeg/edf_c2_1178956.jp2
111
+ tests/data/from-openjpeg/issue142.j2k
112
+ tests/data/from-openjpeg/issue392.jp2
113
+ tests/data/from-openjpeg/issue396.jp2
114
+ tests/data/from-openjpeg/issue438.jp2
115
+ tests/data/from-openjpeg/issue626.j2k
116
+ tests/data/from-openjpeg/jph_siz.txt
117
+ tests/data/from-openjpeg/oj-ht-byte.jph
118
+ tests/data/from-openjpeg/text_GBR.jp2
119
+ tests/data/from-openjpeg/text_GBR_rreq.txt
120
+ tests/data/geo/0220000800_uuid.dat
121
+ tests/data/geo/__init__.py
122
+ tests/data/geo/gml.xml
123
+ tests/data/misc/appended_xml_box.txt
124
+ tests/data/misc/countries.xml
125
+ tests/data/misc/decompression_parameters_type.txt
126
+ tests/data/misc/default_compression_parameters_type.txt
127
+ tests/data/misc/default_progression_order_changes_type.txt
128
+ tests/data/misc/encoding_declaration.xml
129
+ tests/data/misc/goodstuff_codestream_header.txt
130
+ tests/data/misc/goodstuff_with_full_header.txt
131
+ tests/data/misc/issue186_progression_order.txt
132
+ tests/data/misc/issue398.dat
133
+ tests/data/misc/issue405.dat
134
+ tests/data/misc/issue549.dat
135
+ tests/data/misc/issue555.xmp
136
+ tests/data/misc/issue982.j2k
137
+ tests/data/misc/multiple_precinct_size.txt
138
+ tests/data/misc/nemo.txt
139
+ tests/data/misc/nemo_dump_no_codestream.txt
140
+ tests/data/misc/nemo_dump_no_codestream_no_xml.txt
141
+ tests/data/misc/nemo_dump_no_xml.txt
142
+ tests/data/misc/nemo_dump_short.txt
143
+ tests/data/misc/nemo_with_codestream_header.txt
144
+ tests/data/misc/nemo_xmp_box.txt
145
+ tests/data/misc/no_jp2c.jp2
146
+ tests/data/misc/sgray.icc
147
+ tests/data/misc/simple_rdf.txt
148
+ tests/data/misc/simple_rdf.uuid-box.txt
149
+ tests/data/misc/uint16.j2k
150
+ tests/data/skimage/__init__.py
151
+ tests/data/skimage/astronaut8.tif
152
+ tests/data/skimage/astronaut8_stripped.tif
153
+ tests/data/skimage/astronaut_s_uint16.tif
154
+ tests/data/skimage/astronaut_uint16.tif
155
+ tests/data/skimage/astronaut_ycbcr_jpeg_tiled.tif
156
+ tests/data/skimage/goodstuff_32s.tif
157
+ tests/data/skimage/moon.tif
158
+ tests/data/skimage/moon3_partial_last_strip.tif
159
+ tests/data/skimage/moon3_stripped.tif
160
+ tests/data/skimage/moon63.tif
161
+ tests/data/skimage/moon_2x2.tif
162
+ tests/data/skimage/moon_3x3.tif
163
+ tests/data/skimage/stripped.tif
164
+ tests/data/skimage/ycbcr_bg.tif
165
+ tests/data/skimage/ycbcr_stripped.tif
166
+ tests/data/tiff/__init__.py
167
+ tests/data/tiff/albers27-8.tif
168
+ tests/data/tiff/albers27.tif
169
+ tests/data/tiff/basn6a08.tif
170
+ tests/data/tiff/cmyk.tif
171
+ tests/data/tiff/degenerate_geotiff.tif
172
+ tests/data/tiff/flower-separated-planar-08.tif
173
+ tests/data/tiff/ieeefp32.tif
174
+ tests/data/tiff/issue572.tif
175
+ tests/data/tiff/issue678.tif
176
+ tests/data/tiff/uint32.tif
177
+ tests/data/tiff/warning.tif
@@ -0,0 +1,3 @@
1
+ numpy
2
+ lxml
3
+ pillow
@@ -1,16 +1,18 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Glymur
3
- Version: 0.14.0.post2
4
- Home-page: https://github.com/quintusdias/glymur
5
- Author: 'John Evans'
6
- Author-email: "John Evans" <jevans667cc@proton.me>
7
- License: 'MIT'
3
+ Version: 0.14.1.post1
4
+ Summary: Read and write JPEG 2000 files
5
+ Author-email: John Evans <jevans667cc@proton.me>
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://glymur.readthedocs.io
8
+ Project-URL: Documentation, https://glymur.readthedocs.io
9
+ Project-URL: Repository, https://github.com/quintusdias/glymur
10
+ Keywords: JPEG2000,JPEG,2000,imagery
8
11
  Classifier: Programming Language :: Python
9
12
  Classifier: Programming Language :: Python :: 3.11
10
13
  Classifier: Programming Language :: Python :: 3.12
11
14
  Classifier: Programming Language :: Python :: 3.13
12
15
  Classifier: Programming Language :: Python :: Implementation :: CPython
13
- Classifier: License :: OSI Approved :: MIT License
14
16
  Classifier: Intended Audience :: Science/Research
15
17
  Classifier: Operating System :: OS Independent
16
18
  Classifier: Topic :: Scientific/Engineering
@@ -19,14 +21,14 @@ Description-Content-Type: text/markdown
19
21
  License-File: LICENSE.txt
20
22
  Requires-Dist: numpy
21
23
  Requires-Dist: lxml
22
- Requires-Dist: imageio
23
- Requires-Dist: packaging
24
- Provides-Extra: test
25
- Requires-Dist: pytest; extra == "test"
26
- Requires-Dist: pillow; extra == "test"
27
- Requires-Dist: scikit-image; extra == "test"
24
+ Requires-Dist: pillow
28
25
  Dynamic: license-file
29
26
 
27
+ glymur: a Python interface for JPEG 2000
28
+ =========================================
30
29
 
31
30
  **glymur** contains a Python interface to the OpenJPEG library which
32
- allows one to read and write JPEG 2000 files.
31
+ allows one to read and write JPEG 2000 files. **glymur** works on
32
+ Python 3.11, 3.12, and 3.13.
33
+
34
+ Please read the docs, https://glymur.readthedocs.org/en/latest/
@@ -0,0 +1,87 @@
1
+ matrix:
2
+ fast_finish: true # immediately finish build once one of the jobs fails.
3
+
4
+ environment:
5
+
6
+ global:
7
+ # SDK v7.0 MSVC Express 2008's SetEnv.cmd script will fail if the
8
+ # /E:ON and /V:ON options are not enabled in the batch script intepreter
9
+ # See: http://stackoverflow.com/a/13751649/163740
10
+ CMD_IN_ENV: "cmd /E:ON /V:ON /C .\\ci\\run_with_env.cmd"
11
+ clone_folder: C:\projects\glymur
12
+
13
+ matrix:
14
+
15
+ - CONDA_ROOT: "C:\\Miniconda3_64"
16
+ PYTHON_VERSION: "3.11"
17
+ PYTHON_ARCH: "64"
18
+ CONDA_PY: "311"
19
+ USE_PATH_FOR_GDAL_PYTHON: "YES"
20
+
21
+ - CONDA_ROOT: "C:\\Miniconda3_64"
22
+ PYTHON_VERSION: "3.12"
23
+ PYTHON_ARCH: "64"
24
+ CONDA_PY: "312"
25
+ USE_PATH_FOR_GDAL_PYTHON: "YES"
26
+
27
+ - CONDA_ROOT: "C:\\Miniconda3_64"
28
+ PYTHON_VERSION: "3.13"
29
+ PYTHON_ARCH: "64"
30
+ CONDA_PY: "313"
31
+ USE_PATH_FOR_GDAL_PYTHON: "YES"
32
+
33
+ # We always use a 64-bit machine, but can build x86 distributions
34
+ # with the PYTHON_ARCH variable (which is used by CMD_IN_ENV).
35
+ platform:
36
+ - x64
37
+
38
+ build: off
39
+
40
+ install:
41
+ # cancel older builds for the same PR
42
+ - ps: if ($env:APPVEYOR_PULL_REQUEST_NUMBER -and $env:APPVEYOR_BUILD_NUMBER -ne ((Invoke-RestMethod `
43
+ https://ci.appveyor.com/api/projects/$env:APPVEYOR_ACCOUNT_NAME/$env:APPVEYOR_PROJECT_SLUG/history?recordsNumber=50).builds | `
44
+ Where-Object pullRequestId -eq $env:APPVEYOR_PULL_REQUEST_NUMBER)[0].buildNumber) { `
45
+ throw "There are newer queued builds for this pull request, failing early." }
46
+
47
+ # this installs the appropriate Miniconda (Py2/Py3, 32/64 bit)
48
+ # updates conda & installs: conda-build jinja2 anaconda-client
49
+ - powershell .\ci\install.ps1
50
+ - SET PATH=%CONDA_ROOT%;%CONDA_ROOT%\Scripts;%PATH%
51
+ - echo "install"
52
+ - cd
53
+ - ls -ltr
54
+ - git tag --sort v:refname
55
+
56
+ # this can conflict with git
57
+ - cmd: rmdir C:\cygwin /s /q
58
+
59
+ # install our build environment
60
+ - cmd: conda config --set show_channel_urls true --set always_yes true --set changeps1 false
61
+ - cmd: conda update -q conda
62
+ - cmd: conda config --set ssl_verify false
63
+
64
+ # this is now the downloaded conda...
65
+ - cmd: conda info -a
66
+
67
+ # create our env
68
+ - SET REQ=ci\travis-%CONDA_PY%.yaml
69
+ - cmd: echo "installing requirements from %REQ%"
70
+ - cmd: conda env create --file=%REQ%
71
+ - cmd: conda list -n glymur
72
+ - cmd: activate glymur
73
+ - cmd: echo "installing requirements from %REQ% - done"
74
+
75
+ # build em using the local source checkout in the correct windows env
76
+ - cmd: '%CMD_IN_ENV% python -m pip install -e .'
77
+
78
+ test_script:
79
+ # tests
80
+ - cmd: conda activate glymur
81
+ - cmd: conda list
82
+ - cmd: cd c:\projects\glymur
83
+ - ls -ltr
84
+ - cmd: python -c "import sys; print(sys.executable)"
85
+ - cmd: c:\miniconda3_64\envs\glymur\Scripts\pytest -n 4 -x
86
+ - cmd: c:\miniconda3_64\envs\glymur\Scripts\pytest --doctest-glob='*.rst' docs/source/how_do_i.rst
87
+ - cmd: c:\miniconda3_64\envs\glymur\Scripts\pytest --doctest-modules glymur
@@ -0,0 +1,30 @@
1
+ # Python package
2
+ # Create and test a Python package on multiple Python versions.
3
+ # Add steps that analyze code, save the dist with the build record, publish to a PyPI-compatible index, and more:
4
+ # https://docs.microsoft.com/azure/devops/pipelines/languages/python
5
+
6
+ trigger:
7
+ - master
8
+
9
+ pool:
10
+ vmImage: ubuntu-latest
11
+ strategy:
12
+ matrix:
13
+ Python37:
14
+ python.version: '3.7'
15
+
16
+ steps:
17
+ - task: UsePythonVersion@0
18
+ inputs:
19
+ versionSpec: '$(python.version)'
20
+ displayName: 'Use Python $(python.version)'
21
+
22
+ - script: |
23
+ python -m pip install --upgrade pip
24
+ pip install -r requirements.txt
25
+ displayName: 'Install dependencies'
26
+
27
+ - script: |
28
+ pip install pytest pytest-azurepipelines
29
+ pytest
30
+ displayName: 'pytest'
@@ -0,0 +1,10 @@
1
+ name: glymur-docs
2
+ channels:
3
+ - conda-forge
4
+ dependencies:
5
+ - python=3.12
6
+ - lxml
7
+ - pillow
8
+ - numpydoc>=0.8
9
+ - sphinx_rtd_theme>=0.4.2
10
+
@@ -0,0 +1,92 @@
1
+ # Sample script to install Miniconda under Windows
2
+ # Authors: Olivier Grisel, Jonathan Helmus and Kyle Kastner, Robert McGibbon
3
+ # License: CC0 1.0 Universal: http://creativecommons.org/publicdomain/zero/1.0/
4
+
5
+ $MINICONDA_URL = "http://repo.continuum.io/miniconda/"
6
+
7
+
8
+ function DownloadMiniconda ($python_version, $platform_suffix) {
9
+ $webclient = New-Object System.Net.WebClient
10
+ $filename = "Miniconda3-latest-Windows-" + $platform_suffix + ".exe"
11
+ $url = $MINICONDA_URL + $filename
12
+
13
+ $basedir = $pwd.Path + "\"
14
+ $filepath = $basedir + $filename
15
+ if (Test-Path $filename) {
16
+ Write-Host "Reusing" $filepath
17
+ return $filepath
18
+ }
19
+
20
+ # Download and retry up to 3 times in case of network transient errors.
21
+ Write-Host "Downloading" $filename "from" $url
22
+ $retry_attempts = 2
23
+ for($i=0; $i -lt $retry_attempts; $i++){
24
+ try {
25
+ $webclient.DownloadFile($url, $filepath)
26
+ break
27
+ }
28
+ Catch [Exception]{
29
+ Start-Sleep 1
30
+ }
31
+ }
32
+ if (Test-Path $filepath) {
33
+ Write-Host "File saved at" $filepath
34
+ } else {
35
+ # Retry once to get the error message if any at the last try
36
+ $webclient.DownloadFile($url, $filepath)
37
+ }
38
+ return $filepath
39
+ }
40
+
41
+
42
+ function InstallMiniconda ($python_version, $architecture, $python_home) {
43
+ Write-Host "Installing Python" $python_version "for" $architecture "bit architecture to" $python_home
44
+ if (Test-Path $python_home) {
45
+ Write-Host $python_home "already exists, skipping."
46
+ return $false
47
+ }
48
+ if ($architecture -match "32") {
49
+ $platform_suffix = "x86"
50
+ } else {
51
+ $platform_suffix = "x86_64"
52
+ }
53
+
54
+ $filepath = DownloadMiniconda $python_version $platform_suffix
55
+ Write-Host "Installing" $filepath "to" $python_home
56
+ $install_log = $python_home + ".log"
57
+ $args = "/S /D=$python_home"
58
+ Write-Host $filepath $args
59
+ Start-Process -FilePath $filepath -ArgumentList $args -Wait -Passthru
60
+ if (Test-Path $python_home) {
61
+ Write-Host "Python $python_version ($architecture) installation complete"
62
+ } else {
63
+ Write-Host "Failed to install Python in $python_home"
64
+ Get-Content -Path $install_log
65
+ Exit 1
66
+ }
67
+ }
68
+
69
+
70
+ function InstallCondaPackages ($python_home, $spec) {
71
+ $conda_path = $python_home + "\Scripts\conda.exe"
72
+ $args = "install --yes " + $spec
73
+ Write-Host ("conda " + $args)
74
+ Start-Process -FilePath "$conda_path" -ArgumentList $args -Wait -Passthru
75
+ }
76
+
77
+ function UpdateConda ($python_home) {
78
+ $conda_path = $python_home + "\Scripts\conda.exe"
79
+ Write-Host "Updating conda..."
80
+ $args = "update --yes conda"
81
+ Write-Host $conda_path $args
82
+ Start-Process -FilePath "$conda_path" -ArgumentList $args -Wait -Passthru
83
+ }
84
+
85
+
86
+ function main () {
87
+ InstallMiniconda "3.5" $env:PYTHON_ARCH $env:CONDA_ROOT
88
+ UpdateConda $env:CONDA_ROOT
89
+ InstallCondaPackages $env:CONDA_ROOT "conda-build jinja2 anaconda-client"
90
+ }
91
+
92
+ main
@@ -0,0 +1,18 @@
1
+ #!/bin/bash -e
2
+
3
+
4
+ MINICONDA_DIR="$HOME/miniconda3"
5
+ echo "Set MINICONDA_DIR to ""$MINICONDA_DIR"
6
+
7
+ export PATH=$MINICONDA_DIR/bin:$PATH
8
+
9
+ source activate glymur
10
+
11
+ echo
12
+ echo "which conda"
13
+ which conda
14
+
15
+ echo "python -m unittest discover"
16
+ python -m unittest discover
17
+
18
+ python -c "import glymur; print(glymur.version.info)"