large-image 1.30.7.dev18__tar.gz → 1.30.7.dev22__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 (59) hide show
  1. {large_image-1.30.7.dev18/large_image.egg-info → large_image-1.30.7.dev22}/PKG-INFO +75 -75
  2. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/docs/notebooks/large_image_examples.ipynb +5 -10
  3. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/large_image/tilesource/base.py +12 -12
  4. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/large_image/tilesource/jupyter.py +33 -23
  5. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/large_image/tilesource/stylefuncs.py +2 -2
  6. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/large_image/tilesource/tiledict.py +2 -2
  7. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/large_image/tilesource/utilities.py +26 -23
  8. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22/large_image.egg-info}/PKG-INFO +75 -75
  9. large_image-1.30.7.dev22/large_image.egg-info/requires.txt +151 -0
  10. large_image-1.30.7.dev18/large_image.egg-info/requires.txt +0 -151
  11. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/LICENSE +0 -0
  12. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/NOTICE +0 -0
  13. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/README.rst +0 -0
  14. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/docs/annotations.rst +0 -0
  15. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/docs/api_index.rst +0 -0
  16. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/docs/caching.rst +0 -0
  17. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/docs/conf.py +0 -0
  18. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/docs/config_options.rst +0 -0
  19. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/docs/development.rst +0 -0
  20. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/docs/dicomweb_assetstore.rst +0 -0
  21. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/docs/format_examples_datastore.py +0 -0
  22. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/docs/formats.rst +0 -0
  23. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/docs/generate_format_table.py +0 -0
  24. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/docs/getting_started.rst +0 -0
  25. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/docs/girder_annotation_config_options.rst +0 -0
  26. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/docs/girder_caching.rst +0 -0
  27. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/docs/girder_config_options.rst +0 -0
  28. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/docs/girder_index.rst +0 -0
  29. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/docs/image_conversion.rst +0 -0
  30. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/docs/index.rst +0 -0
  31. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/docs/make_docs.sh +0 -0
  32. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/docs/multi_source_specification.rst +0 -0
  33. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/docs/notebooks/zarr_sink_example.ipynb +0 -0
  34. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/docs/notebooks.rst +0 -0
  35. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/docs/plottable.rst +0 -0
  36. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/docs/static/K.png +0 -0
  37. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/docs/static/custom.css +0 -0
  38. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/docs/tilesource_options.rst +0 -0
  39. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/docs/upgrade.rst +0 -0
  40. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/large_image/__init__.py +0 -0
  41. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/large_image/cache_util/__init__.py +0 -0
  42. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/large_image/cache_util/base.py +0 -0
  43. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/large_image/cache_util/cache.py +0 -0
  44. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/large_image/cache_util/cachefactory.py +0 -0
  45. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/large_image/cache_util/memcache.py +0 -0
  46. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/large_image/cache_util/rediscache.py +0 -0
  47. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/large_image/config.py +0 -0
  48. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/large_image/constants.py +0 -0
  49. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/large_image/exceptions.py +0 -0
  50. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/large_image/tilesource/__init__.py +0 -0
  51. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/large_image/tilesource/geo.py +0 -0
  52. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/large_image/tilesource/resample.py +0 -0
  53. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/large_image/tilesource/tileiterator.py +0 -0
  54. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/large_image.egg-info/SOURCES.txt +0 -0
  55. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/large_image.egg-info/dependency_links.txt +0 -0
  56. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/large_image.egg-info/not-zip-safe +0 -0
  57. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/large_image.egg-info/top_level.txt +0 -0
  58. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/setup.cfg +0 -0
  59. {large_image-1.30.7.dev18 → large_image-1.30.7.dev22}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: large-image
3
- Version: 1.30.7.dev18
3
+ Version: 1.30.7.dev22
4
4
  Summary: Python modules to work with large, multiresolution images.
5
5
  Home-page: https://github.com/girder/large_image
6
6
  Author: Kitware, Inc.
@@ -30,7 +30,7 @@ Requires-Dist: pylibmc>=1.5.1; platform_system != "Windows" and extra == "memcac
30
30
  Provides-Extra: redis
31
31
  Requires-Dist: redis>=4.5.5; extra == "redis"
32
32
  Provides-Extra: converter
33
- Requires-Dist: large-image-converter>=1.30.7.dev18; extra == "converter"
33
+ Requires-Dist: large-image-converter>=1.30.7.dev22; extra == "converter"
34
34
  Provides-Extra: colormaps
35
35
  Requires-Dist: matplotlib; extra == "colormaps"
36
36
  Requires-Dist: tol_colors; extra == "colormaps"
@@ -40,105 +40,105 @@ Provides-Extra: performance
40
40
  Requires-Dist: psutil>=4.2.0; extra == "performance"
41
41
  Requires-Dist: simplejpeg; extra == "performance"
42
42
  Provides-Extra: bioformats
43
- Requires-Dist: large-image-source-bioformats>=1.30.7.dev18; extra == "bioformats"
43
+ Requires-Dist: large-image-source-bioformats>=1.30.7.dev22; extra == "bioformats"
44
44
  Provides-Extra: deepzoom
45
- Requires-Dist: large-image-source-deepzoom>=1.30.7.dev18; extra == "deepzoom"
45
+ Requires-Dist: large-image-source-deepzoom>=1.30.7.dev22; extra == "deepzoom"
46
46
  Provides-Extra: dicom
47
- Requires-Dist: large-image-source-dicom>=1.30.7.dev18; extra == "dicom"
47
+ Requires-Dist: large-image-source-dicom>=1.30.7.dev22; extra == "dicom"
48
48
  Provides-Extra: dummy
49
- Requires-Dist: large-image-source-dummy>=1.30.7.dev18; extra == "dummy"
49
+ Requires-Dist: large-image-source-dummy>=1.30.7.dev22; extra == "dummy"
50
50
  Provides-Extra: gdal
51
- Requires-Dist: large-image-source-gdal>=1.30.7.dev18; extra == "gdal"
51
+ Requires-Dist: large-image-source-gdal>=1.30.7.dev22; extra == "gdal"
52
52
  Provides-Extra: mapnik
53
- Requires-Dist: large-image-source-mapnik>=1.30.7.dev18; extra == "mapnik"
53
+ Requires-Dist: large-image-source-mapnik>=1.30.7.dev22; extra == "mapnik"
54
54
  Provides-Extra: multi
55
- Requires-Dist: large-image-source-multi>=1.30.7.dev18; extra == "multi"
55
+ Requires-Dist: large-image-source-multi>=1.30.7.dev22; extra == "multi"
56
56
  Provides-Extra: nd2
57
- Requires-Dist: large-image-source-nd2>=1.30.7.dev18; extra == "nd2"
57
+ Requires-Dist: large-image-source-nd2>=1.30.7.dev22; extra == "nd2"
58
58
  Provides-Extra: ometiff
59
- Requires-Dist: large-image-source-ometiff>=1.30.7.dev18; extra == "ometiff"
59
+ Requires-Dist: large-image-source-ometiff>=1.30.7.dev22; extra == "ometiff"
60
60
  Provides-Extra: openjpeg
61
- Requires-Dist: large-image-source-openjpeg>=1.30.7.dev18; extra == "openjpeg"
61
+ Requires-Dist: large-image-source-openjpeg>=1.30.7.dev22; extra == "openjpeg"
62
62
  Provides-Extra: openslide
63
- Requires-Dist: large-image-source-openslide>=1.30.7.dev18; extra == "openslide"
63
+ Requires-Dist: large-image-source-openslide>=1.30.7.dev22; extra == "openslide"
64
64
  Provides-Extra: pil
65
- Requires-Dist: large-image-source-pil>=1.30.7.dev18; extra == "pil"
65
+ Requires-Dist: large-image-source-pil>=1.30.7.dev22; extra == "pil"
66
66
  Provides-Extra: rasterio
67
- Requires-Dist: large-image-source-rasterio>=1.30.7.dev18; extra == "rasterio"
67
+ Requires-Dist: large-image-source-rasterio>=1.30.7.dev22; extra == "rasterio"
68
68
  Provides-Extra: test
69
- Requires-Dist: large-image-source-test>=1.30.7.dev18; extra == "test"
69
+ Requires-Dist: large-image-source-test>=1.30.7.dev22; extra == "test"
70
70
  Provides-Extra: tiff
71
- Requires-Dist: large-image-source-tiff>=1.30.7.dev18; extra == "tiff"
71
+ Requires-Dist: large-image-source-tiff>=1.30.7.dev22; extra == "tiff"
72
72
  Provides-Extra: tifffile
73
- Requires-Dist: large-image-source-tifffile>=1.30.7.dev18; extra == "tifffile"
73
+ Requires-Dist: large-image-source-tifffile>=1.30.7.dev22; extra == "tifffile"
74
74
  Provides-Extra: vips
75
- Requires-Dist: large-image-source-vips>=1.30.7.dev18; extra == "vips"
75
+ Requires-Dist: large-image-source-vips>=1.30.7.dev22; extra == "vips"
76
76
  Provides-Extra: zarr
77
- Requires-Dist: large-image-source-zarr>=1.30.7.dev18; extra == "zarr"
77
+ Requires-Dist: large-image-source-zarr>=1.30.7.dev22; extra == "zarr"
78
78
  Provides-Extra: sources
79
- Requires-Dist: large-image-source-zarr>=1.30.7.dev18; extra == "sources"
80
- Requires-Dist: large-image-source-deepzoom>=1.30.7.dev18; extra == "sources"
81
- Requires-Dist: large-image-source-mapnik>=1.30.7.dev18; extra == "sources"
82
- Requires-Dist: large-image-source-test>=1.30.7.dev18; extra == "sources"
83
- Requires-Dist: large-image-source-multi>=1.30.7.dev18; extra == "sources"
84
- Requires-Dist: large-image-source-gdal>=1.30.7.dev18; extra == "sources"
85
- Requires-Dist: large-image-source-nd2>=1.30.7.dev18; extra == "sources"
86
- Requires-Dist: large-image-source-openslide>=1.30.7.dev18; extra == "sources"
87
- Requires-Dist: large-image-source-tifffile>=1.30.7.dev18; extra == "sources"
88
- Requires-Dist: large-image-source-rasterio>=1.30.7.dev18; extra == "sources"
89
- Requires-Dist: large-image-source-tiff>=1.30.7.dev18; extra == "sources"
90
- Requires-Dist: large-image-source-dicom>=1.30.7.dev18; extra == "sources"
91
- Requires-Dist: large-image-source-ometiff>=1.30.7.dev18; extra == "sources"
92
- Requires-Dist: large-image-source-bioformats>=1.30.7.dev18; extra == "sources"
93
- Requires-Dist: large-image-source-openjpeg>=1.30.7.dev18; extra == "sources"
94
- Requires-Dist: large-image-source-dummy>=1.30.7.dev18; extra == "sources"
95
- Requires-Dist: large-image-source-pil>=1.30.7.dev18; extra == "sources"
96
- Requires-Dist: large-image-source-vips>=1.30.7.dev18; extra == "sources"
79
+ Requires-Dist: large-image-source-dicom>=1.30.7.dev22; extra == "sources"
80
+ Requires-Dist: large-image-source-pil>=1.30.7.dev22; extra == "sources"
81
+ Requires-Dist: large-image-source-test>=1.30.7.dev22; extra == "sources"
82
+ Requires-Dist: large-image-source-bioformats>=1.30.7.dev22; extra == "sources"
83
+ Requires-Dist: large-image-source-rasterio>=1.30.7.dev22; extra == "sources"
84
+ Requires-Dist: large-image-source-openjpeg>=1.30.7.dev22; extra == "sources"
85
+ Requires-Dist: large-image-source-deepzoom>=1.30.7.dev22; extra == "sources"
86
+ Requires-Dist: large-image-source-nd2>=1.30.7.dev22; extra == "sources"
87
+ Requires-Dist: large-image-source-mapnik>=1.30.7.dev22; extra == "sources"
88
+ Requires-Dist: large-image-source-tifffile>=1.30.7.dev22; extra == "sources"
89
+ Requires-Dist: large-image-source-vips>=1.30.7.dev22; extra == "sources"
90
+ Requires-Dist: large-image-source-openslide>=1.30.7.dev22; extra == "sources"
91
+ Requires-Dist: large-image-source-zarr>=1.30.7.dev22; extra == "sources"
92
+ Requires-Dist: large-image-source-gdal>=1.30.7.dev22; extra == "sources"
93
+ Requires-Dist: large-image-source-dummy>=1.30.7.dev22; extra == "sources"
94
+ Requires-Dist: large-image-source-tiff>=1.30.7.dev22; extra == "sources"
95
+ Requires-Dist: large-image-source-multi>=1.30.7.dev22; extra == "sources"
96
+ Requires-Dist: large-image-source-ometiff>=1.30.7.dev22; extra == "sources"
97
97
  Provides-Extra: all
98
- Requires-Dist: large-image-source-zarr>=1.30.7.dev18; extra == "all"
99
- Requires-Dist: large-image-source-pil[all]>=1.30.7.dev18; extra == "all"
100
- Requires-Dist: large-image-source-multi[all]>=1.30.7.dev18; extra == "all"
101
- Requires-Dist: pyvips; extra == "all"
102
- Requires-Dist: large-image-source-multi>=1.30.7.dev18; extra == "all"
103
- Requires-Dist: large-image-source-gdal>=1.30.7.dev18; extra == "all"
104
- Requires-Dist: large-image-source-tifffile>=1.30.7.dev18; extra == "all"
105
- Requires-Dist: large-image-source-rasterio>=1.30.7.dev18; extra == "all"
106
- Requires-Dist: large-image-source-tiff>=1.30.7.dev18; extra == "all"
107
- Requires-Dist: large-image-source-dicom>=1.30.7.dev18; extra == "all"
98
+ Requires-Dist: large-image-source-test>=1.30.7.dev22; extra == "all"
99
+ Requires-Dist: large-image-source-bioformats>=1.30.7.dev22; extra == "all"
100
+ Requires-Dist: large-image-source-openjpeg>=1.30.7.dev22; extra == "all"
101
+ Requires-Dist: large-image-source-tiff[all]>=1.30.7.dev22; extra == "all"
102
+ Requires-Dist: large-image-source-mapnik>=1.30.7.dev22; extra == "all"
103
+ Requires-Dist: large-image-source-tifffile>=1.30.7.dev22; extra == "all"
108
104
  Requires-Dist: redis>=4.5.5; extra == "all"
109
- Requires-Dist: large-image-source-bioformats>=1.30.7.dev18; extra == "all"
110
- Requires-Dist: large-image-source-dummy>=1.30.7.dev18; extra == "all"
111
- Requires-Dist: large-image-source-vips>=1.30.7.dev18; extra == "all"
112
- Requires-Dist: large-image-source-nd2>=1.30.7.dev18; extra == "all"
113
- Requires-Dist: large-image-source-rasterio[all]>=1.30.7.dev18; extra == "all"
114
- Requires-Dist: pylibmc>=1.5.1; platform_system != "Windows" and extra == "all"
115
- Requires-Dist: matplotlib; extra == "all"
116
- Requires-Dist: large-image-source-mapnik>=1.30.7.dev18; extra == "all"
117
- Requires-Dist: large-image-converter>=1.30.7.dev18; extra == "all"
118
- Requires-Dist: large-image-source-test>=1.30.7.dev18; extra == "all"
105
+ Requires-Dist: large-image-source-openslide>=1.30.7.dev22; extra == "all"
106
+ Requires-Dist: large-image-converter>=1.30.7.dev22; extra == "all"
107
+ Requires-Dist: large-image-source-dummy>=1.30.7.dev22; extra == "all"
108
+ Requires-Dist: large-image-source-tiff>=1.30.7.dev22; extra == "all"
109
+ Requires-Dist: large-image-source-pil>=1.30.7.dev22; extra == "all"
110
+ Requires-Dist: large-image-source-zarr>=1.30.7.dev22; extra == "all"
111
+ Requires-Dist: large-image-source-ometiff>=1.30.7.dev22; extra == "all"
112
+ Requires-Dist: large-image-source-vips>=1.30.7.dev22; extra == "all"
113
+ Requires-Dist: large-image-source-dicom>=1.30.7.dev22; extra == "all"
114
+ Requires-Dist: large-image-source-rasterio>=1.30.7.dev22; extra == "all"
119
115
  Requires-Dist: tol_colors; extra == "all"
116
+ Requires-Dist: large-image-source-deepzoom>=1.30.7.dev22; extra == "all"
117
+ Requires-Dist: pyvips; extra == "all"
118
+ Requires-Dist: matplotlib; extra == "all"
120
119
  Requires-Dist: psutil>=4.2.0; extra == "all"
121
- Requires-Dist: large-image-source-openslide>=1.30.7.dev18; extra == "all"
122
- Requires-Dist: large-image-source-tiff[all]>=1.30.7.dev18; extra == "all"
123
- Requires-Dist: large-image-source-deepzoom>=1.30.7.dev18; extra == "all"
124
- Requires-Dist: large-image-source-ometiff>=1.30.7.dev18; extra == "all"
125
- Requires-Dist: large-image-source-openjpeg>=1.30.7.dev18; extra == "all"
126
- Requires-Dist: large-image-source-pil>=1.30.7.dev18; extra == "all"
120
+ Requires-Dist: large-image-source-nd2>=1.30.7.dev22; extra == "all"
121
+ Requires-Dist: large-image-source-multi[all]>=1.30.7.dev22; extra == "all"
122
+ Requires-Dist: large-image-source-pil[all]>=1.30.7.dev22; extra == "all"
123
+ Requires-Dist: large-image-source-rasterio[all]>=1.30.7.dev22; extra == "all"
124
+ Requires-Dist: pylibmc>=1.5.1; platform_system != "Windows" and extra == "all"
125
+ Requires-Dist: large-image-source-gdal>=1.30.7.dev22; extra == "all"
126
+ Requires-Dist: large-image-source-multi>=1.30.7.dev22; extra == "all"
127
127
  Requires-Dist: simplejpeg; extra == "all"
128
128
  Provides-Extra: common
129
- Requires-Dist: large-image-source-zarr>=1.30.7.dev18; extra == "common"
130
- Requires-Dist: large-image-source-pil[all]>=1.30.7.dev18; extra == "common"
129
+ Requires-Dist: large-image-source-dicom>=1.30.7.dev22; extra == "common"
130
+ Requires-Dist: large-image-source-test>=1.30.7.dev22; extra == "common"
131
+ Requires-Dist: large-image-source-deepzoom>=1.30.7.dev22; extra == "common"
132
+ Requires-Dist: large-image-source-multi>=1.30.7.dev22; extra == "common"
133
+ Requires-Dist: psutil>=4.2.0; extra == "common"
131
134
  Requires-Dist: matplotlib; extra == "common"
132
- Requires-Dist: large-image-source-dicom>=1.30.7.dev18; extra == "common"
133
- Requires-Dist: large-image-source-test>=1.30.7.dev18; extra == "common"
135
+ Requires-Dist: large-image-source-nd2>=1.30.7.dev22; extra == "common"
136
+ Requires-Dist: large-image-source-tifffile>=1.30.7.dev22; extra == "common"
137
+ Requires-Dist: large-image-source-pil[all]>=1.30.7.dev22; extra == "common"
138
+ Requires-Dist: large-image-source-openslide>=1.30.7.dev22; extra == "common"
139
+ Requires-Dist: large-image-source-rasterio[all]>=1.30.7.dev22; extra == "common"
140
+ Requires-Dist: large-image-source-zarr>=1.30.7.dev22; extra == "common"
134
141
  Requires-Dist: tol_colors; extra == "common"
135
- Requires-Dist: large-image-source-multi>=1.30.7.dev18; extra == "common"
136
- Requires-Dist: large-image-source-rasterio[all]>=1.30.7.dev18; extra == "common"
137
- Requires-Dist: large-image-source-tifffile>=1.30.7.dev18; extra == "common"
138
- Requires-Dist: large-image-source-openslide>=1.30.7.dev18; extra == "common"
139
- Requires-Dist: psutil>=4.2.0; extra == "common"
140
- Requires-Dist: large-image-source-deepzoom>=1.30.7.dev18; extra == "common"
141
- Requires-Dist: large-image-source-nd2>=1.30.7.dev18; extra == "common"
142
142
  Requires-Dist: simplejpeg; extra == "common"
143
143
 
144
144
  Large Image
@@ -46,7 +46,7 @@
46
46
  "\n",
47
47
  "# For maximum capabilities in Jupyter, also install ipyleaflet so you can\n",
48
48
  "# view zoomable images in the notebook\n",
49
- "!pip install ipyleaflet\n",
49
+ "!pip install 'ipyleaflet>=0.19'\n",
50
50
  "\n",
51
51
  "# If you are accessing files on a Girder server, it is useful to install girder_client\n",
52
52
  "!pip install girder_client"
@@ -182,6 +182,10 @@
182
182
  "to an internal tile server that allows you to view the image in a zoomable viewer. There are more options\n",
183
183
  "depending on your Jupyter configuration and whether it is running locally or remotely. \n",
184
184
  "Some environments need different proxy options, like Google CoLab.\n",
185
+ "The system will attempt to determine the correct proxy values by default.\n",
186
+ "If you needed to, you could ask JupyterLab to locally proxy an internal tile server. As an example:\n",
187
+ "\n",
188
+ "`large_image.tilesource.jupyter.IPyLeafletMixin.JUPYTER_PROXY = True`\n",
185
189
  "\n",
186
190
  "If ipyleaflet isn't installed, inspecting a tile source will just show the thumbnail."
187
191
  ]
@@ -208,15 +212,6 @@
208
212
  }
209
213
  ],
210
214
  "source": [
211
- "# Ask JupyterLab to locally proxy an internal tile server\n",
212
- "import importlib.util\n",
213
- "\n",
214
- "if importlib.util.find_spec('google') and importlib.util.find_spec('google.colab'):\n",
215
- " # colab intercepts localhost\n",
216
- " large_image.tilesource.jupyter.IPyLeafletMixin.JUPYTER_PROXY = 'https://localhost'\n",
217
- "else:\n",
218
- " large_image.tilesource.jupyter.IPyLeafletMixin.JUPYTER_PROXY = True\n",
219
- "\n",
220
215
  "# Look at our tile source\n",
221
216
  "ts"
222
217
  ]
@@ -1006,7 +1006,7 @@ class TileSource(IPyLeafletMixin):
1006
1006
  elif sc.mainImage.dtype.kind == 'f':
1007
1007
  sc.dtype = 'float'
1008
1008
  sc.axis = sc.axis if sc.axis is not None else entry.get('axis')
1009
- sc.bandidx = 0 if image.shape[2] <= 2 else 1 # type: ignore[misc]
1009
+ sc.bandidx = 0 if image.shape[2] <= 2 else 1
1010
1010
  sc.band = None
1011
1011
  if ((entry.get('frame') is None and not entry.get('framedelta')) or
1012
1012
  entry.get('frame') == sc.mainFrame):
@@ -1021,29 +1021,29 @@ class TileSource(IPyLeafletMixin):
1021
1021
  :sc.mainImage.shape[1],
1022
1022
  :sc.mainImage.shape[2]]
1023
1023
  if (isinstance(entry.get('band'), int) and
1024
- entry['band'] >= 1 and entry['band'] <= image.shape[2]): # type: ignore[misc]
1024
+ entry['band'] >= 1 and entry['band'] <= image.shape[2]):
1025
1025
  sc.bandidx = entry['band'] - 1
1026
1026
  sc.composite = entry.get('composite', 'lighten')
1027
1027
  if (hasattr(self, '_bandnames') and entry.get('band') and
1028
1028
  str(entry['band']).lower() in self._bandnames and
1029
- image.shape[2] > self._bandnames[ # type: ignore[misc]
1029
+ image.shape[2] > self._bandnames[
1030
1030
  str(entry['band']).lower()]):
1031
1031
  sc.bandidx = self._bandnames[str(entry['band']).lower()]
1032
- if entry.get('band') == 'red' and image.shape[2] > 2: # type: ignore[misc]
1032
+ if entry.get('band') == 'red' and image.shape[2] > 2:
1033
1033
  sc.bandidx = 0
1034
- elif entry.get('band') == 'blue' and image.shape[2] > 2: # type: ignore[misc]
1034
+ elif entry.get('band') == 'blue' and image.shape[2] > 2:
1035
1035
  sc.bandidx = 2
1036
1036
  sc.band = image[:, :, 2]
1037
1037
  elif entry.get('band') == 'alpha':
1038
- sc.bandidx = (image.shape[2] - 1 if image.shape[2] in (2, 4) # type: ignore[misc]
1038
+ sc.bandidx = (image.shape[2] - 1 if image.shape[2] in (2, 4)
1039
1039
  else None)
1040
- sc.band = (image[:, :, -1] if image.shape[2] in (2, 4) else # type: ignore[misc]
1040
+ sc.band = (image[:, :, -1] if image.shape[2] in (2, 4) else
1041
1041
  np.full(image.shape[:2], 255, np.uint8))
1042
1042
  sc.composite = entry.get('composite', 'multiply')
1043
1043
  if sc.band is None:
1044
1044
  sc.band = image[
1045
- :, :, sc.bandidx # type: ignore[index]
1046
- if sc.bandidx is not None and sc.bandidx < image.shape[2] # type: ignore[misc]
1045
+ :, :, sc.bandidx
1046
+ if sc.bandidx is not None and sc.bandidx < image.shape[2]
1047
1047
  else 0]
1048
1048
  sc.band = self._applyStyleFunction(sc.band, sc, 'preband')
1049
1049
  sc.palette = getPaletteColors(entry.get(
@@ -1076,7 +1076,7 @@ class TileSource(IPyLeafletMixin):
1076
1076
  # divide.
1077
1077
  # See https://docs.gimp.org/en/gimp-concepts-layer-modes.html for
1078
1078
  # some details.
1079
- for channel in range(sc.output.shape[2]): # type: ignore[misc]
1079
+ for channel in range(sc.output.shape[2]):
1080
1080
  if np.all(sc.palette[:, channel] == sc.palette[0, channel]):
1081
1081
  if ((sc.palette[0, channel] == 0 and sc.composite != 'multiply') or
1082
1082
  (sc.palette[0, channel] == 255 and sc.composite == 'multiply')):
@@ -1117,7 +1117,7 @@ class TileSource(IPyLeafletMixin):
1117
1117
  sc.output = (sc.output * 65535 / 255).astype(np.uint16)
1118
1118
  elif sc.dtype == 'float':
1119
1119
  sc.output /= 255
1120
- if sc.axis is not None and 0 <= int(sc.axis) < sc.output.shape[2]: # type: ignore[misc]
1120
+ if sc.axis is not None and 0 <= int(sc.axis) < sc.output.shape[2]:
1121
1121
  sc.output = sc.output[:, :, sc.axis:sc.axis + 1]
1122
1122
  sc.output = self._applyStyleFunction(sc.output, sc, 'post')
1123
1123
  return sc.output
@@ -1145,7 +1145,7 @@ class TileSource(IPyLeafletMixin):
1145
1145
  tile = self._applyStyle(tile, getattr(self, 'style', None), x, y, z, frame)
1146
1146
  if tile.shape[0] != self.tileHeight or tile.shape[1] != self.tileWidth:
1147
1147
  extend = np.zeros(
1148
- (self.tileHeight, self.tileWidth, tile.shape[2]), # type: ignore[misc]
1148
+ (self.tileHeight, self.tileWidth, tile.shape[2]),
1149
1149
  dtype=tile.dtype)
1150
1150
  extend[:min(self.tileHeight, tile.shape[0]),
1151
1151
  :min(self.tileWidth, tile.shape[1])] = tile
@@ -30,33 +30,30 @@ ipyleafletPresent = importlib.util.find_spec('ipyleaflet') is not None
30
30
  class IPyLeafletMixin:
31
31
  """Mixin class to support interactive visualization in JupyterLab.
32
32
 
33
- This class implements ``_ipython_display_`` with ``ipyleaflet``
34
- to display an interactive image visualizer for the tile source
35
- in JupyterLab.
33
+ This class implements ``_ipython_display_`` with ``ipyleaflet`` to display
34
+ an interactive image visualizer for the tile source in JupyterLab.
36
35
 
37
- Install `ipyleaflet <https://github.com/jupyter-widgets/ipyleaflet>`_
38
- to interactively visualize tile sources in JupyterLab.
36
+ Install `ipyleaflet <https://github.com/jupyter-widgets/ipyleaflet>`_ to
37
+ interactively visualize tile sources in JupyterLab.
39
38
 
40
- For remote JupyterHub environments, you may need to configure
41
- the class variables ``JUPYTER_HOST`` or ``JUPYTER_PROXY``.
39
+ For remote JupyterHub environments, you may need to configure the class
40
+ variables ``JUPYTER_HOST`` or ``JUPYTER_PROXY``.
42
41
 
43
42
  If ``JUPYTER_PROXY`` is set, it overrides ``JUPYTER_HOST``.
44
43
 
45
- Use ``JUPYTER_HOST`` to set the host name of the machine such
46
- that the tile URL can be accessed at
47
- ``'http://{JUPYTER_HOST}:{port}'``.
48
-
49
- Use ``JUPYTER_PROXY`` to leverage ``jupyter-server-proxy`` to
50
- proxy the tile serving port through Jupyter's authenticated web
51
- interface. This is useful in Docker and cloud JupyterHub
52
- environments. You can set the environment variable
53
- ``LARGE_IMAGE_JUPYTER_PROXY`` to control the default value of
54
- ``JUPYTER_PROXY``. If ``JUPYTER_PROXY`` is set to ``True``, the
55
- default will be ``'/proxy/`` which will work for most Docker
56
- Jupyter configurations. If in a cloud JupyterHub environment,
57
- this will get a bit more nuanced as the
58
- ``JUPYTERHUB_SERVICE_PREFIX`` may need to prefix the
59
- ``'/proxy/'``.
44
+ Use ``JUPYTER_HOST`` to set the host name of the machine such that the tile
45
+ URL can be accessed at ``'http://{JUPYTER_HOST}:{port}'``.
46
+
47
+ Use ``JUPYTER_PROXY`` to leverage ``jupyter-server-proxy`` to proxy the
48
+ tile serving port through Jupyter's authenticated web interface. This is
49
+ useful in Docker and cloud JupyterHub environments. You can set the
50
+ environment variable ``LARGE_IMAGE_JUPYTER_PROXY`` to control the default
51
+ value of ``JUPYTER_PROXY``. If ``JUPYTER_PROXY`` is set to ``True``, the
52
+ default will be ``'/proxy/`` which will work for most Docker Jupyter
53
+ configurations. If in a cloud JupyterHub environment, this will get a bit
54
+ more nuanced as the ``JUPYTERHUB_SERVICE_PREFIX`` may need to prefix the
55
+ ``'/proxy/'``. If set to ``'auto'``, an automatic value will be chosen
56
+ through some effort to detect the environment.
60
57
 
61
58
  To programmatically set these values:
62
59
 
@@ -80,7 +77,7 @@ class IPyLeafletMixin:
80
77
  """
81
78
 
82
79
  JUPYTER_HOST = '127.0.0.1'
83
- JUPYTER_PROXY = os.environ.get('LARGE_IMAGE_JUPYTER_PROXY', False)
80
+ JUPYTER_PROXY: Union[str, bool] = os.environ.get('LARGE_IMAGE_JUPYTER_PROXY', 'auto')
84
81
 
85
82
  _jupyter_server_manager: Any
86
83
 
@@ -103,6 +100,10 @@ class IPyLeafletMixin:
103
100
 
104
101
  port = self._jupyter_server_manager.port
105
102
 
103
+ if self.JUPYTER_PROXY == 'auto':
104
+ self._autoJupyterProxy()
105
+ if self.JUPYTER_PROXY and str(self.JUPYTER_PROXY).lower() in {'true', 'false'}:
106
+ self.JUPYTER_PROXY = str(self.JUPYTER_PROXY).lower() == 'true'
106
107
  if self.JUPYTER_PROXY:
107
108
  if isinstance(self.JUPYTER_PROXY, str):
108
109
  base_url = f'{self.JUPYTER_PROXY.rstrip("/")}/{port}'
@@ -117,6 +118,15 @@ class IPyLeafletMixin:
117
118
  self.metadata, # type: ignore[attr-defined]
118
119
  f'{base_url}/{endpoint}')
119
120
 
121
+ def _autoJupyterProxy(self):
122
+ if importlib.util.find_spec('google') and importlib.util.find_spec('google.colab'):
123
+ # colab intercepts localhost
124
+ self.JUPYTER_PROXY = 'https://localhost'
125
+ elif importlib.util.find_spec('jupyter_server_proxy'):
126
+ self.JUPYTER_PROXY = True
127
+ else:
128
+ self.JUPYTER_PROXY = False
129
+
120
130
  # Only make _ipython_display_ available if ipyleaflet is installed
121
131
  if ipyleafletPresent:
122
132
 
@@ -93,9 +93,9 @@ def medianFilter(
93
93
  pimg: np.ndarray = image.astype(float)
94
94
  if len(pimg.shape) == 2:
95
95
  pimg = np.resize(pimg, (pimg.shape[0], pimg.shape[1], 1))
96
- pimg = pimg[:, :, :fimg.shape[2]] # type: ignore[index,misc]
96
+ pimg = pimg[:, :, :fimg.shape[2]]
97
97
  dimg = (pimg - fimg.astype(float) * mul) * weight
98
- pimg = pimg[:, :, :fimg.shape[2]] + dimg # type: ignore[index,misc]
98
+ pimg = pimg[:, :, :fimg.shape[2]] + dimg
99
99
  if clip:
100
100
  pimg = pimg.clip(0, clip)
101
101
  if len(image.shape) != 3:
@@ -156,7 +156,7 @@ class LazyTileDict(dict):
156
156
  elif tileData.shape[2] < retile.shape[2]:
157
157
  retile = retile[:, :, :tileData.shape[2]]
158
158
  retile[y0:y0 + th, x0:x0 + tw] = tileData[
159
- :th, :tw, :retile.shape[2]] # type: ignore[misc]
159
+ :th, :tw, :retile.shape[2]]
160
160
  return cast(np.ndarray, retile)
161
161
 
162
162
  def _resample(self, tileData: Union[ImageBytes, PIL.Image.Image, bytes, np.ndarray]) -> Tuple[
@@ -197,7 +197,7 @@ class LazyTileDict(dict):
197
197
  tileData = skimage.transform.resize(
198
198
  cast(np.ndarray, tileData),
199
199
  (self['width'], self['height'],
200
- cast(np.ndarray, tileData).shape[2]), # type: ignore[misc]
200
+ cast(np.ndarray, tileData).shape[2]),
201
201
  order=3 if self.resample is True else self.resample)
202
202
  return tileData, pilData
203
203
 
@@ -213,28 +213,30 @@ def _imageToPIL(
213
213
  mode = modesBySize[image.shape[2] - 1]
214
214
  if len(image.shape) == 3 and image.shape[2] == 1:
215
215
  image = np.resize(image, image.shape[:2])
216
- if image.dtype == np.uint32:
216
+ if cast(np.ndarray, image).dtype == np.uint32:
217
217
  image = np.floor_divide(image, 2 ** 24).astype(np.uint8)
218
- elif image.dtype == np.uint16:
218
+ elif cast(np.ndarray, image).dtype == np.uint16:
219
219
  image = np.floor_divide(image, 256).astype(np.uint8)
220
- elif image.dtype == np.int8:
221
- image = (image.astype(float) + 128).astype(np.uint8)
222
- elif image.dtype == np.int16:
223
- image = np.floor_divide(image.astype(float) + 2 ** 15, 256).astype(np.uint8)
224
- elif image.dtype == np.int32:
225
- image = np.floor_divide(image.astype(float) + 2 ** 31, 2 ** 24).astype(np.uint8)
220
+ elif cast(np.ndarray, image).dtype == np.int8:
221
+ image = (cast(np.ndarray, image).astype(float) + 128).astype(np.uint8)
222
+ elif cast(np.ndarray, image).dtype == np.int16:
223
+ image = np.floor_divide(
224
+ cast(np.ndarray, image).astype(float) + 2 ** 15, 256).astype(np.uint8)
225
+ elif cast(np.ndarray, image).dtype == np.int32:
226
+ image = np.floor_divide(
227
+ cast(np.ndarray, image).astype(float) + 2 ** 31, 2 ** 24).astype(np.uint8)
226
228
  # TODO: The scaling of float data needs to be identical across all
227
229
  # tiles of an image. This means that we need a reference to the parent
228
230
  # tile source or some other way of regulating it.
229
- # elif image.dtype.kind == 'f':
231
+ # elif cast(np.ndarray, image).dtype.kind == 'f':
230
232
  # if numpy.max(image) > 1:
231
233
  # maxl2 = math.ceil(math.log(numpy.max(image) + 1) / math.log(2))
232
234
  # image = image / ((2 ** maxl2) - 1)
233
235
  # image = (image * 255).astype(numpy.uint8)
234
- elif image.dtype != np.uint8:
236
+ elif cast(np.ndarray, image).dtype != np.uint8:
235
237
  image = np.clip(np.nan_to_num(np.where(
236
238
  image is None, np.nan, image), nan=0), 0, 255).astype(np.uint8)
237
- image = PIL.Image.fromarray(image, mode)
239
+ image = PIL.Image.fromarray(cast(np.ndarray, image), mode)
238
240
  elif not isinstance(image, PIL.Image.Image):
239
241
  image = PIL.Image.open(io.BytesIO(image))
240
242
  if setMode is not None and image.mode != setMode:
@@ -277,9 +279,10 @@ def _imageToNumpy(
277
279
  mode = modesBySize[(image.shape[2] - 1) if image.shape[2] <= 4 else 3]
278
280
  return image, mode
279
281
  mode = 'L'
280
- if len(image.shape) == 2:
281
- image = np.resize(image, (image.shape[0], image.shape[1], 1))
282
- return image, mode
282
+ if len(cast(np.ndarray, image).shape) == 2:
283
+ image = np.resize(cast(np.ndarray, image),
284
+ (cast(np.ndarray, image).shape[0], cast(np.ndarray, image).shape[1], 1))
285
+ return cast(np.ndarray, image), mode
283
286
 
284
287
 
285
288
  def _letterboxImage(image: PIL.Image.Image, width: int, height: int, fill: str) -> PIL.Image.Image:
@@ -811,7 +814,7 @@ def fullAlphaValue(arr: Union[np.ndarray, npt.DTypeLike]) -> int:
811
814
  if cast(np.dtype, dtype).kind == 'u':
812
815
  return np.iinfo(dtype).max
813
816
  if isinstance(arr, np.ndarray) and cast(np.dtype, dtype).kind == 'f':
814
- amax = np.amax(arr)
817
+ amax = cast(float, np.amax(arr))
815
818
  if amax > 1 and amax < 256:
816
819
  return 255
817
820
  if amax > 1 and amax < 65536:
@@ -844,24 +847,24 @@ def _makeSameChannelDepth(arr1: np.ndarray, arr2: np.ndarray) -> Tuple[np.ndarra
844
847
  # If any array is RGB, make sure all arrays are RGB.
845
848
  for key, arr in arrays.items():
846
849
  other = arrays['arr1' if key == 'arr2' else 'arr2']
847
- if arr.shape[2] < 3 and other.shape[2] >= 3: # type: ignore[misc]
850
+ if arr.shape[2] < 3 and other.shape[2] >= 3:
848
851
  newarr = np.ones(
849
- (arr.shape[0], arr.shape[1], arr.shape[2] + 2), # type: ignore[misc]
852
+ (arr.shape[0], arr.shape[1], arr.shape[2] + 2),
850
853
  dtype=arr.dtype)
851
854
  newarr[:, :, 0:1] = arr[:, :, 0:1]
852
855
  newarr[:, :, 1:2] = arr[:, :, 0:1]
853
856
  newarr[:, :, 2:3] = arr[:, :, 0:1]
854
- if arr.shape[2] == 2: # type: ignore[misc]
857
+ if arr.shape[2] == 2:
855
858
  newarr[:, :, 3:4] = arr[:, :, 1:2]
856
859
  arrays[key] = newarr
857
860
  # If only one array has an A channel, make sure all arrays have an A
858
861
  # channel
859
862
  for key, arr in arrays.items():
860
863
  other = arrays['arr1' if key == 'arr2' else 'arr2']
861
- if arr.shape[2] < other.shape[2]: # type: ignore[misc]
864
+ if arr.shape[2] < other.shape[2]:
862
865
  arrays[key] = np.pad(
863
866
  arr,
864
- ((0, 0), (0, 0), (0, other.shape[2] - arr.shape[2])), # type: ignore[misc]
867
+ ((0, 0), (0, 0), (0, other.shape[2] - arr.shape[2])),
865
868
  constant_values=fullAlphaValue(arr))
866
869
  return arrays['arr1'], arrays['arr2']
867
870
 
@@ -886,7 +889,7 @@ def _addSubimageToImage(
886
889
  if (x, y, width, height) == (0, 0, subimage.shape[1], subimage.shape[0]):
887
890
  return subimage
888
891
  image = np.zeros(
889
- (height, width, subimage.shape[2]), # type: ignore[misc]
892
+ (height, width, subimage.shape[2]),
890
893
  dtype=subimage.dtype)
891
894
  elif len(image.shape) != len(subimage.shape) or image.shape[-1] != subimage.shape[-1]:
892
895
  image, subimage = _makeSameChannelDepth(image, subimage)
@@ -944,7 +947,7 @@ def _addRegionTileToTiled(
944
947
  subimage = subimage.astype('d')
945
948
  vimgMem = pyvips.Image.new_from_memory(
946
949
  np.ascontiguousarray(subimage).data,
947
- subimage.shape[1], subimage.shape[0], subimage.shape[2], # type: ignore[misc]
950
+ subimage.shape[1], subimage.shape[0], subimage.shape[2],
948
951
  dtypeToGValue[subimage.dtype.char])
949
952
  vimg = pyvips.Image.new_temp_file('%s.v')
950
953
  vimgMem.write(vimg)
@@ -955,7 +958,7 @@ def _addRegionTileToTiled(
955
958
  'mm_x': tile.get('mm_x') if tile else None,
956
959
  'mm_y': tile.get('mm_y') if tile else None,
957
960
  'magnification': tile.get('magnification') if tile else None,
958
- 'channels': subimage.shape[2], # type: ignore[misc]
961
+ 'channels': subimage.shape[2],
959
962
  'strips': {},
960
963
  }
961
964
  if y not in image['strips']:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: large-image
3
- Version: 1.30.7.dev18
3
+ Version: 1.30.7.dev22
4
4
  Summary: Python modules to work with large, multiresolution images.
5
5
  Home-page: https://github.com/girder/large_image
6
6
  Author: Kitware, Inc.
@@ -30,7 +30,7 @@ Requires-Dist: pylibmc>=1.5.1; platform_system != "Windows" and extra == "memcac
30
30
  Provides-Extra: redis
31
31
  Requires-Dist: redis>=4.5.5; extra == "redis"
32
32
  Provides-Extra: converter
33
- Requires-Dist: large-image-converter>=1.30.7.dev18; extra == "converter"
33
+ Requires-Dist: large-image-converter>=1.30.7.dev22; extra == "converter"
34
34
  Provides-Extra: colormaps
35
35
  Requires-Dist: matplotlib; extra == "colormaps"
36
36
  Requires-Dist: tol_colors; extra == "colormaps"
@@ -40,105 +40,105 @@ Provides-Extra: performance
40
40
  Requires-Dist: psutil>=4.2.0; extra == "performance"
41
41
  Requires-Dist: simplejpeg; extra == "performance"
42
42
  Provides-Extra: bioformats
43
- Requires-Dist: large-image-source-bioformats>=1.30.7.dev18; extra == "bioformats"
43
+ Requires-Dist: large-image-source-bioformats>=1.30.7.dev22; extra == "bioformats"
44
44
  Provides-Extra: deepzoom
45
- Requires-Dist: large-image-source-deepzoom>=1.30.7.dev18; extra == "deepzoom"
45
+ Requires-Dist: large-image-source-deepzoom>=1.30.7.dev22; extra == "deepzoom"
46
46
  Provides-Extra: dicom
47
- Requires-Dist: large-image-source-dicom>=1.30.7.dev18; extra == "dicom"
47
+ Requires-Dist: large-image-source-dicom>=1.30.7.dev22; extra == "dicom"
48
48
  Provides-Extra: dummy
49
- Requires-Dist: large-image-source-dummy>=1.30.7.dev18; extra == "dummy"
49
+ Requires-Dist: large-image-source-dummy>=1.30.7.dev22; extra == "dummy"
50
50
  Provides-Extra: gdal
51
- Requires-Dist: large-image-source-gdal>=1.30.7.dev18; extra == "gdal"
51
+ Requires-Dist: large-image-source-gdal>=1.30.7.dev22; extra == "gdal"
52
52
  Provides-Extra: mapnik
53
- Requires-Dist: large-image-source-mapnik>=1.30.7.dev18; extra == "mapnik"
53
+ Requires-Dist: large-image-source-mapnik>=1.30.7.dev22; extra == "mapnik"
54
54
  Provides-Extra: multi
55
- Requires-Dist: large-image-source-multi>=1.30.7.dev18; extra == "multi"
55
+ Requires-Dist: large-image-source-multi>=1.30.7.dev22; extra == "multi"
56
56
  Provides-Extra: nd2
57
- Requires-Dist: large-image-source-nd2>=1.30.7.dev18; extra == "nd2"
57
+ Requires-Dist: large-image-source-nd2>=1.30.7.dev22; extra == "nd2"
58
58
  Provides-Extra: ometiff
59
- Requires-Dist: large-image-source-ometiff>=1.30.7.dev18; extra == "ometiff"
59
+ Requires-Dist: large-image-source-ometiff>=1.30.7.dev22; extra == "ometiff"
60
60
  Provides-Extra: openjpeg
61
- Requires-Dist: large-image-source-openjpeg>=1.30.7.dev18; extra == "openjpeg"
61
+ Requires-Dist: large-image-source-openjpeg>=1.30.7.dev22; extra == "openjpeg"
62
62
  Provides-Extra: openslide
63
- Requires-Dist: large-image-source-openslide>=1.30.7.dev18; extra == "openslide"
63
+ Requires-Dist: large-image-source-openslide>=1.30.7.dev22; extra == "openslide"
64
64
  Provides-Extra: pil
65
- Requires-Dist: large-image-source-pil>=1.30.7.dev18; extra == "pil"
65
+ Requires-Dist: large-image-source-pil>=1.30.7.dev22; extra == "pil"
66
66
  Provides-Extra: rasterio
67
- Requires-Dist: large-image-source-rasterio>=1.30.7.dev18; extra == "rasterio"
67
+ Requires-Dist: large-image-source-rasterio>=1.30.7.dev22; extra == "rasterio"
68
68
  Provides-Extra: test
69
- Requires-Dist: large-image-source-test>=1.30.7.dev18; extra == "test"
69
+ Requires-Dist: large-image-source-test>=1.30.7.dev22; extra == "test"
70
70
  Provides-Extra: tiff
71
- Requires-Dist: large-image-source-tiff>=1.30.7.dev18; extra == "tiff"
71
+ Requires-Dist: large-image-source-tiff>=1.30.7.dev22; extra == "tiff"
72
72
  Provides-Extra: tifffile
73
- Requires-Dist: large-image-source-tifffile>=1.30.7.dev18; extra == "tifffile"
73
+ Requires-Dist: large-image-source-tifffile>=1.30.7.dev22; extra == "tifffile"
74
74
  Provides-Extra: vips
75
- Requires-Dist: large-image-source-vips>=1.30.7.dev18; extra == "vips"
75
+ Requires-Dist: large-image-source-vips>=1.30.7.dev22; extra == "vips"
76
76
  Provides-Extra: zarr
77
- Requires-Dist: large-image-source-zarr>=1.30.7.dev18; extra == "zarr"
77
+ Requires-Dist: large-image-source-zarr>=1.30.7.dev22; extra == "zarr"
78
78
  Provides-Extra: sources
79
- Requires-Dist: large-image-source-zarr>=1.30.7.dev18; extra == "sources"
80
- Requires-Dist: large-image-source-deepzoom>=1.30.7.dev18; extra == "sources"
81
- Requires-Dist: large-image-source-mapnik>=1.30.7.dev18; extra == "sources"
82
- Requires-Dist: large-image-source-test>=1.30.7.dev18; extra == "sources"
83
- Requires-Dist: large-image-source-multi>=1.30.7.dev18; extra == "sources"
84
- Requires-Dist: large-image-source-gdal>=1.30.7.dev18; extra == "sources"
85
- Requires-Dist: large-image-source-nd2>=1.30.7.dev18; extra == "sources"
86
- Requires-Dist: large-image-source-openslide>=1.30.7.dev18; extra == "sources"
87
- Requires-Dist: large-image-source-tifffile>=1.30.7.dev18; extra == "sources"
88
- Requires-Dist: large-image-source-rasterio>=1.30.7.dev18; extra == "sources"
89
- Requires-Dist: large-image-source-tiff>=1.30.7.dev18; extra == "sources"
90
- Requires-Dist: large-image-source-dicom>=1.30.7.dev18; extra == "sources"
91
- Requires-Dist: large-image-source-ometiff>=1.30.7.dev18; extra == "sources"
92
- Requires-Dist: large-image-source-bioformats>=1.30.7.dev18; extra == "sources"
93
- Requires-Dist: large-image-source-openjpeg>=1.30.7.dev18; extra == "sources"
94
- Requires-Dist: large-image-source-dummy>=1.30.7.dev18; extra == "sources"
95
- Requires-Dist: large-image-source-pil>=1.30.7.dev18; extra == "sources"
96
- Requires-Dist: large-image-source-vips>=1.30.7.dev18; extra == "sources"
79
+ Requires-Dist: large-image-source-dicom>=1.30.7.dev22; extra == "sources"
80
+ Requires-Dist: large-image-source-pil>=1.30.7.dev22; extra == "sources"
81
+ Requires-Dist: large-image-source-test>=1.30.7.dev22; extra == "sources"
82
+ Requires-Dist: large-image-source-bioformats>=1.30.7.dev22; extra == "sources"
83
+ Requires-Dist: large-image-source-rasterio>=1.30.7.dev22; extra == "sources"
84
+ Requires-Dist: large-image-source-openjpeg>=1.30.7.dev22; extra == "sources"
85
+ Requires-Dist: large-image-source-deepzoom>=1.30.7.dev22; extra == "sources"
86
+ Requires-Dist: large-image-source-nd2>=1.30.7.dev22; extra == "sources"
87
+ Requires-Dist: large-image-source-mapnik>=1.30.7.dev22; extra == "sources"
88
+ Requires-Dist: large-image-source-tifffile>=1.30.7.dev22; extra == "sources"
89
+ Requires-Dist: large-image-source-vips>=1.30.7.dev22; extra == "sources"
90
+ Requires-Dist: large-image-source-openslide>=1.30.7.dev22; extra == "sources"
91
+ Requires-Dist: large-image-source-zarr>=1.30.7.dev22; extra == "sources"
92
+ Requires-Dist: large-image-source-gdal>=1.30.7.dev22; extra == "sources"
93
+ Requires-Dist: large-image-source-dummy>=1.30.7.dev22; extra == "sources"
94
+ Requires-Dist: large-image-source-tiff>=1.30.7.dev22; extra == "sources"
95
+ Requires-Dist: large-image-source-multi>=1.30.7.dev22; extra == "sources"
96
+ Requires-Dist: large-image-source-ometiff>=1.30.7.dev22; extra == "sources"
97
97
  Provides-Extra: all
98
- Requires-Dist: large-image-source-zarr>=1.30.7.dev18; extra == "all"
99
- Requires-Dist: large-image-source-pil[all]>=1.30.7.dev18; extra == "all"
100
- Requires-Dist: large-image-source-multi[all]>=1.30.7.dev18; extra == "all"
101
- Requires-Dist: pyvips; extra == "all"
102
- Requires-Dist: large-image-source-multi>=1.30.7.dev18; extra == "all"
103
- Requires-Dist: large-image-source-gdal>=1.30.7.dev18; extra == "all"
104
- Requires-Dist: large-image-source-tifffile>=1.30.7.dev18; extra == "all"
105
- Requires-Dist: large-image-source-rasterio>=1.30.7.dev18; extra == "all"
106
- Requires-Dist: large-image-source-tiff>=1.30.7.dev18; extra == "all"
107
- Requires-Dist: large-image-source-dicom>=1.30.7.dev18; extra == "all"
98
+ Requires-Dist: large-image-source-test>=1.30.7.dev22; extra == "all"
99
+ Requires-Dist: large-image-source-bioformats>=1.30.7.dev22; extra == "all"
100
+ Requires-Dist: large-image-source-openjpeg>=1.30.7.dev22; extra == "all"
101
+ Requires-Dist: large-image-source-tiff[all]>=1.30.7.dev22; extra == "all"
102
+ Requires-Dist: large-image-source-mapnik>=1.30.7.dev22; extra == "all"
103
+ Requires-Dist: large-image-source-tifffile>=1.30.7.dev22; extra == "all"
108
104
  Requires-Dist: redis>=4.5.5; extra == "all"
109
- Requires-Dist: large-image-source-bioformats>=1.30.7.dev18; extra == "all"
110
- Requires-Dist: large-image-source-dummy>=1.30.7.dev18; extra == "all"
111
- Requires-Dist: large-image-source-vips>=1.30.7.dev18; extra == "all"
112
- Requires-Dist: large-image-source-nd2>=1.30.7.dev18; extra == "all"
113
- Requires-Dist: large-image-source-rasterio[all]>=1.30.7.dev18; extra == "all"
114
- Requires-Dist: pylibmc>=1.5.1; platform_system != "Windows" and extra == "all"
115
- Requires-Dist: matplotlib; extra == "all"
116
- Requires-Dist: large-image-source-mapnik>=1.30.7.dev18; extra == "all"
117
- Requires-Dist: large-image-converter>=1.30.7.dev18; extra == "all"
118
- Requires-Dist: large-image-source-test>=1.30.7.dev18; extra == "all"
105
+ Requires-Dist: large-image-source-openslide>=1.30.7.dev22; extra == "all"
106
+ Requires-Dist: large-image-converter>=1.30.7.dev22; extra == "all"
107
+ Requires-Dist: large-image-source-dummy>=1.30.7.dev22; extra == "all"
108
+ Requires-Dist: large-image-source-tiff>=1.30.7.dev22; extra == "all"
109
+ Requires-Dist: large-image-source-pil>=1.30.7.dev22; extra == "all"
110
+ Requires-Dist: large-image-source-zarr>=1.30.7.dev22; extra == "all"
111
+ Requires-Dist: large-image-source-ometiff>=1.30.7.dev22; extra == "all"
112
+ Requires-Dist: large-image-source-vips>=1.30.7.dev22; extra == "all"
113
+ Requires-Dist: large-image-source-dicom>=1.30.7.dev22; extra == "all"
114
+ Requires-Dist: large-image-source-rasterio>=1.30.7.dev22; extra == "all"
119
115
  Requires-Dist: tol_colors; extra == "all"
116
+ Requires-Dist: large-image-source-deepzoom>=1.30.7.dev22; extra == "all"
117
+ Requires-Dist: pyvips; extra == "all"
118
+ Requires-Dist: matplotlib; extra == "all"
120
119
  Requires-Dist: psutil>=4.2.0; extra == "all"
121
- Requires-Dist: large-image-source-openslide>=1.30.7.dev18; extra == "all"
122
- Requires-Dist: large-image-source-tiff[all]>=1.30.7.dev18; extra == "all"
123
- Requires-Dist: large-image-source-deepzoom>=1.30.7.dev18; extra == "all"
124
- Requires-Dist: large-image-source-ometiff>=1.30.7.dev18; extra == "all"
125
- Requires-Dist: large-image-source-openjpeg>=1.30.7.dev18; extra == "all"
126
- Requires-Dist: large-image-source-pil>=1.30.7.dev18; extra == "all"
120
+ Requires-Dist: large-image-source-nd2>=1.30.7.dev22; extra == "all"
121
+ Requires-Dist: large-image-source-multi[all]>=1.30.7.dev22; extra == "all"
122
+ Requires-Dist: large-image-source-pil[all]>=1.30.7.dev22; extra == "all"
123
+ Requires-Dist: large-image-source-rasterio[all]>=1.30.7.dev22; extra == "all"
124
+ Requires-Dist: pylibmc>=1.5.1; platform_system != "Windows" and extra == "all"
125
+ Requires-Dist: large-image-source-gdal>=1.30.7.dev22; extra == "all"
126
+ Requires-Dist: large-image-source-multi>=1.30.7.dev22; extra == "all"
127
127
  Requires-Dist: simplejpeg; extra == "all"
128
128
  Provides-Extra: common
129
- Requires-Dist: large-image-source-zarr>=1.30.7.dev18; extra == "common"
130
- Requires-Dist: large-image-source-pil[all]>=1.30.7.dev18; extra == "common"
129
+ Requires-Dist: large-image-source-dicom>=1.30.7.dev22; extra == "common"
130
+ Requires-Dist: large-image-source-test>=1.30.7.dev22; extra == "common"
131
+ Requires-Dist: large-image-source-deepzoom>=1.30.7.dev22; extra == "common"
132
+ Requires-Dist: large-image-source-multi>=1.30.7.dev22; extra == "common"
133
+ Requires-Dist: psutil>=4.2.0; extra == "common"
131
134
  Requires-Dist: matplotlib; extra == "common"
132
- Requires-Dist: large-image-source-dicom>=1.30.7.dev18; extra == "common"
133
- Requires-Dist: large-image-source-test>=1.30.7.dev18; extra == "common"
135
+ Requires-Dist: large-image-source-nd2>=1.30.7.dev22; extra == "common"
136
+ Requires-Dist: large-image-source-tifffile>=1.30.7.dev22; extra == "common"
137
+ Requires-Dist: large-image-source-pil[all]>=1.30.7.dev22; extra == "common"
138
+ Requires-Dist: large-image-source-openslide>=1.30.7.dev22; extra == "common"
139
+ Requires-Dist: large-image-source-rasterio[all]>=1.30.7.dev22; extra == "common"
140
+ Requires-Dist: large-image-source-zarr>=1.30.7.dev22; extra == "common"
134
141
  Requires-Dist: tol_colors; extra == "common"
135
- Requires-Dist: large-image-source-multi>=1.30.7.dev18; extra == "common"
136
- Requires-Dist: large-image-source-rasterio[all]>=1.30.7.dev18; extra == "common"
137
- Requires-Dist: large-image-source-tifffile>=1.30.7.dev18; extra == "common"
138
- Requires-Dist: large-image-source-openslide>=1.30.7.dev18; extra == "common"
139
- Requires-Dist: psutil>=4.2.0; extra == "common"
140
- Requires-Dist: large-image-source-deepzoom>=1.30.7.dev18; extra == "common"
141
- Requires-Dist: large-image-source-nd2>=1.30.7.dev18; extra == "common"
142
142
  Requires-Dist: simplejpeg; extra == "common"
143
143
 
144
144
  Large Image
@@ -0,0 +1,151 @@
1
+ cachetools
2
+ palettable
3
+ Pillow
4
+ numpy
5
+ typing-extensions
6
+
7
+ [all]
8
+ large-image-source-test>=1.30.7.dev22
9
+ large-image-source-bioformats>=1.30.7.dev22
10
+ large-image-source-openjpeg>=1.30.7.dev22
11
+ large-image-source-tiff[all]>=1.30.7.dev22
12
+ large-image-source-mapnik>=1.30.7.dev22
13
+ large-image-source-tifffile>=1.30.7.dev22
14
+ redis>=4.5.5
15
+ large-image-source-openslide>=1.30.7.dev22
16
+ large-image-converter>=1.30.7.dev22
17
+ large-image-source-dummy>=1.30.7.dev22
18
+ large-image-source-tiff>=1.30.7.dev22
19
+ large-image-source-pil>=1.30.7.dev22
20
+ large-image-source-zarr>=1.30.7.dev22
21
+ large-image-source-ometiff>=1.30.7.dev22
22
+ large-image-source-vips>=1.30.7.dev22
23
+ large-image-source-dicom>=1.30.7.dev22
24
+ large-image-source-rasterio>=1.30.7.dev22
25
+ tol_colors
26
+ large-image-source-deepzoom>=1.30.7.dev22
27
+ pyvips
28
+ matplotlib
29
+ psutil>=4.2.0
30
+ large-image-source-nd2>=1.30.7.dev22
31
+ large-image-source-multi[all]>=1.30.7.dev22
32
+ large-image-source-pil[all]>=1.30.7.dev22
33
+ large-image-source-rasterio[all]>=1.30.7.dev22
34
+ large-image-source-gdal>=1.30.7.dev22
35
+ large-image-source-multi>=1.30.7.dev22
36
+ simplejpeg
37
+
38
+ [all:platform_system != "Windows"]
39
+ pylibmc>=1.5.1
40
+
41
+ [bioformats]
42
+ large-image-source-bioformats>=1.30.7.dev22
43
+
44
+ [colormaps]
45
+ matplotlib
46
+ tol_colors
47
+
48
+ [common]
49
+ large-image-source-dicom>=1.30.7.dev22
50
+ large-image-source-test>=1.30.7.dev22
51
+ large-image-source-deepzoom>=1.30.7.dev22
52
+ large-image-source-multi>=1.30.7.dev22
53
+ psutil>=4.2.0
54
+ matplotlib
55
+ large-image-source-nd2>=1.30.7.dev22
56
+ large-image-source-tifffile>=1.30.7.dev22
57
+ large-image-source-pil[all]>=1.30.7.dev22
58
+ large-image-source-openslide>=1.30.7.dev22
59
+ large-image-source-rasterio[all]>=1.30.7.dev22
60
+ large-image-source-zarr>=1.30.7.dev22
61
+ tol_colors
62
+ simplejpeg
63
+
64
+ [converter]
65
+ large-image-converter>=1.30.7.dev22
66
+
67
+ [deepzoom]
68
+ large-image-source-deepzoom>=1.30.7.dev22
69
+
70
+ [dicom]
71
+ large-image-source-dicom>=1.30.7.dev22
72
+
73
+ [dummy]
74
+ large-image-source-dummy>=1.30.7.dev22
75
+
76
+ [gdal]
77
+ large-image-source-gdal>=1.30.7.dev22
78
+
79
+ [mapnik]
80
+ large-image-source-mapnik>=1.30.7.dev22
81
+
82
+ [memcached]
83
+
84
+ [memcached:platform_system != "Windows"]
85
+ pylibmc>=1.5.1
86
+
87
+ [multi]
88
+ large-image-source-multi>=1.30.7.dev22
89
+
90
+ [nd2]
91
+ large-image-source-nd2>=1.30.7.dev22
92
+
93
+ [ometiff]
94
+ large-image-source-ometiff>=1.30.7.dev22
95
+
96
+ [openjpeg]
97
+ large-image-source-openjpeg>=1.30.7.dev22
98
+
99
+ [openslide]
100
+ large-image-source-openslide>=1.30.7.dev22
101
+
102
+ [performance]
103
+ psutil>=4.2.0
104
+ simplejpeg
105
+
106
+ [pil]
107
+ large-image-source-pil>=1.30.7.dev22
108
+
109
+ [rasterio]
110
+ large-image-source-rasterio>=1.30.7.dev22
111
+
112
+ [redis]
113
+ redis>=4.5.5
114
+
115
+ [sources]
116
+ large-image-source-dicom>=1.30.7.dev22
117
+ large-image-source-pil>=1.30.7.dev22
118
+ large-image-source-test>=1.30.7.dev22
119
+ large-image-source-bioformats>=1.30.7.dev22
120
+ large-image-source-rasterio>=1.30.7.dev22
121
+ large-image-source-openjpeg>=1.30.7.dev22
122
+ large-image-source-deepzoom>=1.30.7.dev22
123
+ large-image-source-nd2>=1.30.7.dev22
124
+ large-image-source-mapnik>=1.30.7.dev22
125
+ large-image-source-tifffile>=1.30.7.dev22
126
+ large-image-source-vips>=1.30.7.dev22
127
+ large-image-source-openslide>=1.30.7.dev22
128
+ large-image-source-zarr>=1.30.7.dev22
129
+ large-image-source-gdal>=1.30.7.dev22
130
+ large-image-source-dummy>=1.30.7.dev22
131
+ large-image-source-tiff>=1.30.7.dev22
132
+ large-image-source-multi>=1.30.7.dev22
133
+ large-image-source-ometiff>=1.30.7.dev22
134
+
135
+ [test]
136
+ large-image-source-test>=1.30.7.dev22
137
+
138
+ [tiff]
139
+ large-image-source-tiff>=1.30.7.dev22
140
+
141
+ [tifffile]
142
+ large-image-source-tifffile>=1.30.7.dev22
143
+
144
+ [tiledoutput]
145
+ pyvips
146
+
147
+ [vips]
148
+ large-image-source-vips>=1.30.7.dev22
149
+
150
+ [zarr]
151
+ large-image-source-zarr>=1.30.7.dev22
@@ -1,151 +0,0 @@
1
- cachetools
2
- palettable
3
- Pillow
4
- numpy
5
- typing-extensions
6
-
7
- [all]
8
- large-image-source-zarr>=1.30.7.dev18
9
- large-image-source-pil[all]>=1.30.7.dev18
10
- large-image-source-multi[all]>=1.30.7.dev18
11
- pyvips
12
- large-image-source-multi>=1.30.7.dev18
13
- large-image-source-gdal>=1.30.7.dev18
14
- large-image-source-tifffile>=1.30.7.dev18
15
- large-image-source-rasterio>=1.30.7.dev18
16
- large-image-source-tiff>=1.30.7.dev18
17
- large-image-source-dicom>=1.30.7.dev18
18
- redis>=4.5.5
19
- large-image-source-bioformats>=1.30.7.dev18
20
- large-image-source-dummy>=1.30.7.dev18
21
- large-image-source-vips>=1.30.7.dev18
22
- large-image-source-nd2>=1.30.7.dev18
23
- large-image-source-rasterio[all]>=1.30.7.dev18
24
- matplotlib
25
- large-image-source-mapnik>=1.30.7.dev18
26
- large-image-converter>=1.30.7.dev18
27
- large-image-source-test>=1.30.7.dev18
28
- tol_colors
29
- psutil>=4.2.0
30
- large-image-source-openslide>=1.30.7.dev18
31
- large-image-source-tiff[all]>=1.30.7.dev18
32
- large-image-source-deepzoom>=1.30.7.dev18
33
- large-image-source-ometiff>=1.30.7.dev18
34
- large-image-source-openjpeg>=1.30.7.dev18
35
- large-image-source-pil>=1.30.7.dev18
36
- simplejpeg
37
-
38
- [all:platform_system != "Windows"]
39
- pylibmc>=1.5.1
40
-
41
- [bioformats]
42
- large-image-source-bioformats>=1.30.7.dev18
43
-
44
- [colormaps]
45
- matplotlib
46
- tol_colors
47
-
48
- [common]
49
- large-image-source-zarr>=1.30.7.dev18
50
- large-image-source-pil[all]>=1.30.7.dev18
51
- matplotlib
52
- large-image-source-dicom>=1.30.7.dev18
53
- large-image-source-test>=1.30.7.dev18
54
- tol_colors
55
- large-image-source-multi>=1.30.7.dev18
56
- large-image-source-rasterio[all]>=1.30.7.dev18
57
- large-image-source-tifffile>=1.30.7.dev18
58
- large-image-source-openslide>=1.30.7.dev18
59
- psutil>=4.2.0
60
- large-image-source-deepzoom>=1.30.7.dev18
61
- large-image-source-nd2>=1.30.7.dev18
62
- simplejpeg
63
-
64
- [converter]
65
- large-image-converter>=1.30.7.dev18
66
-
67
- [deepzoom]
68
- large-image-source-deepzoom>=1.30.7.dev18
69
-
70
- [dicom]
71
- large-image-source-dicom>=1.30.7.dev18
72
-
73
- [dummy]
74
- large-image-source-dummy>=1.30.7.dev18
75
-
76
- [gdal]
77
- large-image-source-gdal>=1.30.7.dev18
78
-
79
- [mapnik]
80
- large-image-source-mapnik>=1.30.7.dev18
81
-
82
- [memcached]
83
-
84
- [memcached:platform_system != "Windows"]
85
- pylibmc>=1.5.1
86
-
87
- [multi]
88
- large-image-source-multi>=1.30.7.dev18
89
-
90
- [nd2]
91
- large-image-source-nd2>=1.30.7.dev18
92
-
93
- [ometiff]
94
- large-image-source-ometiff>=1.30.7.dev18
95
-
96
- [openjpeg]
97
- large-image-source-openjpeg>=1.30.7.dev18
98
-
99
- [openslide]
100
- large-image-source-openslide>=1.30.7.dev18
101
-
102
- [performance]
103
- psutil>=4.2.0
104
- simplejpeg
105
-
106
- [pil]
107
- large-image-source-pil>=1.30.7.dev18
108
-
109
- [rasterio]
110
- large-image-source-rasterio>=1.30.7.dev18
111
-
112
- [redis]
113
- redis>=4.5.5
114
-
115
- [sources]
116
- large-image-source-zarr>=1.30.7.dev18
117
- large-image-source-deepzoom>=1.30.7.dev18
118
- large-image-source-mapnik>=1.30.7.dev18
119
- large-image-source-test>=1.30.7.dev18
120
- large-image-source-multi>=1.30.7.dev18
121
- large-image-source-gdal>=1.30.7.dev18
122
- large-image-source-nd2>=1.30.7.dev18
123
- large-image-source-openslide>=1.30.7.dev18
124
- large-image-source-tifffile>=1.30.7.dev18
125
- large-image-source-rasterio>=1.30.7.dev18
126
- large-image-source-tiff>=1.30.7.dev18
127
- large-image-source-dicom>=1.30.7.dev18
128
- large-image-source-ometiff>=1.30.7.dev18
129
- large-image-source-bioformats>=1.30.7.dev18
130
- large-image-source-openjpeg>=1.30.7.dev18
131
- large-image-source-dummy>=1.30.7.dev18
132
- large-image-source-pil>=1.30.7.dev18
133
- large-image-source-vips>=1.30.7.dev18
134
-
135
- [test]
136
- large-image-source-test>=1.30.7.dev18
137
-
138
- [tiff]
139
- large-image-source-tiff>=1.30.7.dev18
140
-
141
- [tifffile]
142
- large-image-source-tifffile>=1.30.7.dev18
143
-
144
- [tiledoutput]
145
- pyvips
146
-
147
- [vips]
148
- large-image-source-vips>=1.30.7.dev18
149
-
150
- [zarr]
151
- large-image-source-zarr>=1.30.7.dev18