large-image 1.34.4.dev2__tar.gz → 1.35.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {large_image-1.34.4.dev2/large_image.egg-info → large_image-1.35.0}/PKG-INFO +85 -80
- {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/conf.py +12 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/tilesource/base.py +21 -0
- large_image-1.35.0/large_image/tilesource/eager_utils/__init__.py +5 -0
- large_image-1.35.0/large_image/tilesource/eager_utils/eager_fn.py +53 -0
- large_image-1.35.0/large_image/tilesource/eager_utils/eager_image_modifications.py +354 -0
- large_image-1.35.0/large_image/tilesource/eager_utils/eager_pytorch_threading_context.py +53 -0
- large_image-1.35.0/large_image/tilesource/eager_utils/eager_read_args.py +392 -0
- large_image-1.35.0/large_image/tilesource/eager_utils/eager_shared_array.py +313 -0
- large_image-1.35.0/large_image/tilesource/eager_utils/eager_wsi_operations.py +615 -0
- large_image-1.35.0/large_image/tilesource/eageriterator.py +1448 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0/large_image.egg-info}/PKG-INFO +85 -80
- {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image.egg-info/SOURCES.txt +8 -0
- large_image-1.35.0/large_image.egg-info/requires.txt +166 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/setup.py +4 -0
- large_image-1.34.4.dev2/large_image.egg-info/requires.txt +0 -159
- {large_image-1.34.4.dev2 → large_image-1.35.0}/LICENSE +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/NOTICE +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/README.rst +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/annotations.rst +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/api_index.rst +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/caching.rst +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/config_options.rst +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/development.rst +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/dicomweb_assetstore.rst +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/format_examples_datastore.py +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/formats.rst +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/generate_format_table.py +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/getting_started.rst +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/girder_annotation_config_options.rst +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/girder_caching.rst +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/girder_config_options.rst +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/girder_index.rst +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/image_conversion.rst +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/index.rst +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/make_docs.sh +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/multi_source_specification.rst +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/notebooks/frame_viewer_example.ipynb +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/notebooks/large_image_examples.ipynb +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/notebooks/zarr_sink_example.ipynb +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/notebooks.rst +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/plottable.rst +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/static/K.png +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/static/custom.css +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/tilesource_options.rst +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/upgrade.rst +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/__init__.py +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/cache_util/__init__.py +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/cache_util/base.py +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/cache_util/cache.py +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/cache_util/cachefactory.py +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/cache_util/memcache.py +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/cache_util/rediscache.py +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/config.py +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/constants.py +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/exceptions.py +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/tilesource/__init__.py +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/tilesource/geo.py +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/tilesource/jupyter.py +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/tilesource/resample.py +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/tilesource/stylefuncs.py +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/tilesource/tiledict.py +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/tilesource/tileiterator.py +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/tilesource/utilities.py +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/widgets/CompositeLayers.vue +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/widgets/DualInput.vue +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/widgets/FrameSelector.vue +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/widgets/HistogramEditor.vue +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/widgets/colors.json +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/widgets/components.py +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image.egg-info/dependency_links.txt +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image.egg-info/not-zip-safe +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image.egg-info/top_level.txt +0 -0
- {large_image-1.34.4.dev2 → large_image-1.35.0}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: large-image
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.35.0
|
|
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.
|
|
@@ -28,7 +28,7 @@ Requires-Dist: pylibmc>=1.5.1; platform_system != "Windows" and extra == "memcac
|
|
|
28
28
|
Provides-Extra: redis
|
|
29
29
|
Requires-Dist: redis>=4.5.5; extra == "redis"
|
|
30
30
|
Provides-Extra: converter
|
|
31
|
-
Requires-Dist: large-image-converter>=1.
|
|
31
|
+
Requires-Dist: large-image-converter>=1.35.0; extra == "converter"
|
|
32
32
|
Provides-Extra: colormaps
|
|
33
33
|
Requires-Dist: matplotlib; extra == "colormaps"
|
|
34
34
|
Requires-Dist: tol-colors>=2.0.0; extra == "colormaps"
|
|
@@ -41,110 +41,115 @@ Requires-Dist: pyvips; extra == "tiledoutput"
|
|
|
41
41
|
Provides-Extra: performance
|
|
42
42
|
Requires-Dist: psutil>=4.2.0; extra == "performance"
|
|
43
43
|
Requires-Dist: simplejpeg; extra == "performance"
|
|
44
|
+
Provides-Extra: pykdtree
|
|
45
|
+
Requires-Dist: pykdtree; extra == "pykdtree"
|
|
44
46
|
Provides-Extra: bioformats
|
|
45
|
-
Requires-Dist: large-image-source-bioformats>=1.
|
|
47
|
+
Requires-Dist: large-image-source-bioformats>=1.35.0; extra == "bioformats"
|
|
46
48
|
Provides-Extra: deepzoom
|
|
47
|
-
Requires-Dist: large-image-source-deepzoom>=1.
|
|
49
|
+
Requires-Dist: large-image-source-deepzoom>=1.35.0; extra == "deepzoom"
|
|
48
50
|
Provides-Extra: dicom
|
|
49
|
-
Requires-Dist: large-image-source-dicom>=1.
|
|
51
|
+
Requires-Dist: large-image-source-dicom>=1.35.0; extra == "dicom"
|
|
50
52
|
Provides-Extra: dummy
|
|
51
|
-
Requires-Dist: large-image-source-dummy>=1.
|
|
53
|
+
Requires-Dist: large-image-source-dummy>=1.35.0; extra == "dummy"
|
|
52
54
|
Provides-Extra: gdal
|
|
53
|
-
Requires-Dist: large-image-source-gdal>=1.
|
|
55
|
+
Requires-Dist: large-image-source-gdal>=1.35.0; extra == "gdal"
|
|
54
56
|
Provides-Extra: mapnik
|
|
55
|
-
Requires-Dist: large-image-source-mapnik>=1.
|
|
57
|
+
Requires-Dist: large-image-source-mapnik>=1.35.0; extra == "mapnik"
|
|
56
58
|
Provides-Extra: multi
|
|
57
|
-
Requires-Dist: large-image-source-multi>=1.
|
|
59
|
+
Requires-Dist: large-image-source-multi>=1.35.0; extra == "multi"
|
|
58
60
|
Provides-Extra: nd2
|
|
59
|
-
Requires-Dist: large-image-source-nd2>=1.
|
|
61
|
+
Requires-Dist: large-image-source-nd2>=1.35.0; extra == "nd2"
|
|
60
62
|
Provides-Extra: ometiff
|
|
61
|
-
Requires-Dist: large-image-source-ometiff>=1.
|
|
63
|
+
Requires-Dist: large-image-source-ometiff>=1.35.0; extra == "ometiff"
|
|
62
64
|
Provides-Extra: openjpeg
|
|
63
|
-
Requires-Dist: large-image-source-openjpeg>=1.
|
|
65
|
+
Requires-Dist: large-image-source-openjpeg>=1.35.0; extra == "openjpeg"
|
|
64
66
|
Provides-Extra: openslide
|
|
65
|
-
Requires-Dist: large-image-source-openslide>=1.
|
|
67
|
+
Requires-Dist: large-image-source-openslide>=1.35.0; extra == "openslide"
|
|
66
68
|
Provides-Extra: pil
|
|
67
|
-
Requires-Dist: large-image-source-pil>=1.
|
|
69
|
+
Requires-Dist: large-image-source-pil>=1.35.0; extra == "pil"
|
|
68
70
|
Provides-Extra: rasterio
|
|
69
|
-
Requires-Dist: large-image-source-rasterio>=1.
|
|
71
|
+
Requires-Dist: large-image-source-rasterio>=1.35.0; extra == "rasterio"
|
|
70
72
|
Provides-Extra: test
|
|
71
|
-
Requires-Dist: large-image-source-test>=1.
|
|
73
|
+
Requires-Dist: large-image-source-test>=1.35.0; extra == "test"
|
|
72
74
|
Provides-Extra: tiff
|
|
73
|
-
Requires-Dist: large-image-source-tiff>=1.
|
|
75
|
+
Requires-Dist: large-image-source-tiff>=1.35.0; extra == "tiff"
|
|
74
76
|
Provides-Extra: tifffile
|
|
75
|
-
Requires-Dist: large-image-source-tifffile>=1.
|
|
77
|
+
Requires-Dist: large-image-source-tifffile>=1.35.0; extra == "tifffile"
|
|
76
78
|
Provides-Extra: vips
|
|
77
|
-
Requires-Dist: large-image-source-vips>=1.
|
|
79
|
+
Requires-Dist: large-image-source-vips>=1.35.0; extra == "vips"
|
|
78
80
|
Provides-Extra: zarr
|
|
79
|
-
Requires-Dist: large-image-source-zarr>=1.
|
|
81
|
+
Requires-Dist: large-image-source-zarr>=1.35.0; extra == "zarr"
|
|
80
82
|
Provides-Extra: sources
|
|
81
|
-
Requires-Dist: large-image-source-
|
|
82
|
-
Requires-Dist: large-image-source-
|
|
83
|
-
Requires-Dist: large-image-source-
|
|
84
|
-
Requires-Dist: large-image-source-
|
|
85
|
-
Requires-Dist: large-image-source-
|
|
86
|
-
Requires-Dist: large-image-source-
|
|
87
|
-
Requires-Dist: large-image-source-
|
|
88
|
-
Requires-Dist: large-image-source-
|
|
89
|
-
Requires-Dist: large-image-source-
|
|
90
|
-
Requires-Dist: large-image-source-
|
|
91
|
-
Requires-Dist: large-image-source-
|
|
92
|
-
Requires-Dist: large-image-source-
|
|
93
|
-
Requires-Dist: large-image-source-
|
|
94
|
-
Requires-Dist: large-image-source-
|
|
95
|
-
Requires-Dist: large-image-source-
|
|
96
|
-
Requires-Dist: large-image-source-
|
|
97
|
-
Requires-Dist: large-image-source-
|
|
98
|
-
Requires-Dist: large-image-source-
|
|
83
|
+
Requires-Dist: large-image-source-bioformats>=1.35.0; extra == "sources"
|
|
84
|
+
Requires-Dist: large-image-source-pil>=1.35.0; extra == "sources"
|
|
85
|
+
Requires-Dist: large-image-source-tiff>=1.35.0; extra == "sources"
|
|
86
|
+
Requires-Dist: large-image-source-multi>=1.35.0; extra == "sources"
|
|
87
|
+
Requires-Dist: large-image-source-test>=1.35.0; extra == "sources"
|
|
88
|
+
Requires-Dist: large-image-source-ometiff>=1.35.0; extra == "sources"
|
|
89
|
+
Requires-Dist: large-image-source-dicom>=1.35.0; extra == "sources"
|
|
90
|
+
Requires-Dist: large-image-source-tifffile>=1.35.0; extra == "sources"
|
|
91
|
+
Requires-Dist: large-image-source-zarr>=1.35.0; extra == "sources"
|
|
92
|
+
Requires-Dist: large-image-source-dummy>=1.35.0; extra == "sources"
|
|
93
|
+
Requires-Dist: large-image-source-nd2>=1.35.0; extra == "sources"
|
|
94
|
+
Requires-Dist: large-image-source-mapnik>=1.35.0; extra == "sources"
|
|
95
|
+
Requires-Dist: large-image-source-openjpeg>=1.35.0; extra == "sources"
|
|
96
|
+
Requires-Dist: large-image-source-openslide>=1.35.0; extra == "sources"
|
|
97
|
+
Requires-Dist: large-image-source-vips>=1.35.0; extra == "sources"
|
|
98
|
+
Requires-Dist: large-image-source-deepzoom>=1.35.0; extra == "sources"
|
|
99
|
+
Requires-Dist: large-image-source-gdal>=1.35.0; extra == "sources"
|
|
100
|
+
Requires-Dist: large-image-source-rasterio>=1.35.0; extra == "sources"
|
|
99
101
|
Provides-Extra: all
|
|
100
|
-
Requires-Dist: large-image-
|
|
101
|
-
Requires-Dist:
|
|
102
|
-
Requires-Dist:
|
|
103
|
-
Requires-Dist: large-image-source-
|
|
104
|
-
Requires-Dist: large-image-source-
|
|
105
|
-
Requires-Dist:
|
|
106
|
-
Requires-Dist: large-image-source-
|
|
102
|
+
Requires-Dist: large-image-source-bioformats>=1.35.0; extra == "all"
|
|
103
|
+
Requires-Dist: large-image-source-pil>=1.35.0; extra == "all"
|
|
104
|
+
Requires-Dist: large-image-source-tiff>=1.35.0; extra == "all"
|
|
105
|
+
Requires-Dist: large-image-source-pil[all]>=1.35.0; extra == "all"
|
|
106
|
+
Requires-Dist: large-image-source-tiff[all]>=1.35.0; extra == "all"
|
|
107
|
+
Requires-Dist: large-image-source-tifffile>=1.35.0; extra == "all"
|
|
108
|
+
Requires-Dist: large-image-source-zarr>=1.35.0; extra == "all"
|
|
109
|
+
Requires-Dist: large-image-source-dummy>=1.35.0; extra == "all"
|
|
110
|
+
Requires-Dist: pyvips; extra == "all"
|
|
111
|
+
Requires-Dist: large-image-source-mapnik>=1.35.0; extra == "all"
|
|
112
|
+
Requires-Dist: tol-colors>=2.0.0; extra == "all"
|
|
107
113
|
Requires-Dist: ipyvue; extra == "all"
|
|
108
|
-
Requires-Dist:
|
|
109
|
-
Requires-Dist: large-image-source-deepzoom>=1.
|
|
110
|
-
Requires-Dist: large-image-source-bioformats>=1.34.4.dev2; extra == "all"
|
|
111
|
-
Requires-Dist: simplejpeg; extra == "all"
|
|
112
|
-
Requires-Dist: large-image-source-zarr>=1.34.4.dev2; extra == "all"
|
|
113
|
-
Requires-Dist: large-image-source-dummy>=1.34.4.dev2; extra == "all"
|
|
114
|
-
Requires-Dist: large-image-source-nd2>=1.34.4.dev2; extra == "all"
|
|
115
|
-
Requires-Dist: large-image-source-rasterio[all]>=1.34.4.dev2; extra == "all"
|
|
116
|
-
Requires-Dist: large-image-source-mapnik>=1.34.4.dev2; extra == "all"
|
|
117
|
-
Requires-Dist: large-image-source-tifffile>=1.34.4.dev2; extra == "all"
|
|
118
|
-
Requires-Dist: large-image-source-ometiff>=1.34.4.dev2; extra == "all"
|
|
119
|
-
Requires-Dist: large-image-source-vips>=1.34.4.dev2; extra == "all"
|
|
120
|
-
Requires-Dist: large-image-source-gdal>=1.34.4.dev2; extra == "all"
|
|
114
|
+
Requires-Dist: large-image-source-dicom>=1.35.0; extra == "all"
|
|
115
|
+
Requires-Dist: large-image-source-deepzoom>=1.35.0; extra == "all"
|
|
121
116
|
Requires-Dist: psutil>=4.2.0; extra == "all"
|
|
122
|
-
Requires-Dist:
|
|
123
|
-
Requires-Dist:
|
|
124
|
-
Requires-Dist:
|
|
125
|
-
Requires-Dist:
|
|
126
|
-
Requires-Dist: large-image-source-
|
|
127
|
-
Requires-Dist:
|
|
128
|
-
Requires-Dist:
|
|
129
|
-
Requires-Dist:
|
|
130
|
-
Requires-Dist: large-image-source-
|
|
131
|
-
Requires-Dist: large-image-
|
|
117
|
+
Requires-Dist: pykdtree; extra == "all"
|
|
118
|
+
Requires-Dist: aiohttp; extra == "all"
|
|
119
|
+
Requires-Dist: large-image-source-ometiff>=1.35.0; extra == "all"
|
|
120
|
+
Requires-Dist: simplejpeg; extra == "all"
|
|
121
|
+
Requires-Dist: large-image-source-gdal>=1.35.0; extra == "all"
|
|
122
|
+
Requires-Dist: ipyleaflet; extra == "all"
|
|
123
|
+
Requires-Dist: large-image-source-rasterio[all]>=1.35.0; extra == "all"
|
|
124
|
+
Requires-Dist: redis>=4.5.5; extra == "all"
|
|
125
|
+
Requires-Dist: large-image-source-multi>=1.35.0; extra == "all"
|
|
126
|
+
Requires-Dist: large-image-converter>=1.35.0; extra == "all"
|
|
127
|
+
Requires-Dist: large-image-source-test>=1.35.0; extra == "all"
|
|
132
128
|
Requires-Dist: matplotlib; extra == "all"
|
|
129
|
+
Requires-Dist: large-image-source-nd2>=1.35.0; extra == "all"
|
|
130
|
+
Requires-Dist: pylibmc>=1.5.1; platform_system != "Windows" and extra == "all"
|
|
131
|
+
Requires-Dist: large-image-source-openslide>=1.35.0; extra == "all"
|
|
132
|
+
Requires-Dist: large-image-source-openjpeg>=1.35.0; extra == "all"
|
|
133
|
+
Requires-Dist: large-image-source-vips>=1.35.0; extra == "all"
|
|
134
|
+
Requires-Dist: large-image-source-multi[all]>=1.35.0; extra == "all"
|
|
135
|
+
Requires-Dist: large-image-source-rasterio>=1.35.0; extra == "all"
|
|
133
136
|
Provides-Extra: common
|
|
134
|
-
Requires-Dist: large-image-source-
|
|
135
|
-
Requires-Dist: large-image-source-
|
|
136
|
-
Requires-Dist: large-image-source-
|
|
137
|
-
Requires-Dist:
|
|
138
|
-
Requires-Dist: large-image-source-
|
|
139
|
-
Requires-Dist:
|
|
140
|
-
Requires-Dist: large-image-source-
|
|
141
|
-
Requires-Dist: large-image-source-
|
|
137
|
+
Requires-Dist: large-image-source-deepzoom>=1.35.0; extra == "common"
|
|
138
|
+
Requires-Dist: large-image-source-multi>=1.35.0; extra == "common"
|
|
139
|
+
Requires-Dist: large-image-source-test>=1.35.0; extra == "common"
|
|
140
|
+
Requires-Dist: matplotlib; extra == "common"
|
|
141
|
+
Requires-Dist: large-image-source-tifffile>=1.35.0; extra == "common"
|
|
142
|
+
Requires-Dist: large-image-source-zarr>=1.35.0; extra == "common"
|
|
143
|
+
Requires-Dist: large-image-source-nd2>=1.35.0; extra == "common"
|
|
144
|
+
Requires-Dist: large-image-source-openslide>=1.35.0; extra == "common"
|
|
142
145
|
Requires-Dist: tol-colors>=2.0.0; extra == "common"
|
|
143
|
-
Requires-Dist: large-image-source-
|
|
144
|
-
Requires-Dist: large-image-source-
|
|
146
|
+
Requires-Dist: large-image-source-pil[common]>=1.35.0; extra == "common"
|
|
147
|
+
Requires-Dist: large-image-source-dicom>=1.35.0; extra == "common"
|
|
148
|
+
Requires-Dist: psutil>=4.2.0; extra == "common"
|
|
149
|
+
Requires-Dist: large-image-source-rasterio[all]>=1.35.0; extra == "common"
|
|
145
150
|
Requires-Dist: simplejpeg; extra == "common"
|
|
146
|
-
|
|
147
|
-
Requires-Dist:
|
|
151
|
+
Provides-Extra: eager
|
|
152
|
+
Requires-Dist: pykdtree; extra == "eager"
|
|
148
153
|
Dynamic: author
|
|
149
154
|
Dynamic: author-email
|
|
150
155
|
Dynamic: classifier
|
|
@@ -16,6 +16,14 @@ import sys
|
|
|
16
16
|
docs_dir = os.path.dirname(__file__)
|
|
17
17
|
sys.path.insert(0, os.path.abspath(os.path.join(docs_dir, '..', '..')))
|
|
18
18
|
|
|
19
|
+
try:
|
|
20
|
+
import pypandoc
|
|
21
|
+
except ImportError:
|
|
22
|
+
pass
|
|
23
|
+
else:
|
|
24
|
+
pandoc_dir = os.path.dirname(pypandoc.get_pandoc_path())
|
|
25
|
+
os.environ['PATH'] = pandoc_dir + os.pathsep + os.environ.get('PATH', '')
|
|
26
|
+
|
|
19
27
|
# -- Project information -----------------------------------------------------
|
|
20
28
|
|
|
21
29
|
project = 'large_image'
|
|
@@ -76,6 +84,10 @@ html_permalinks_icon = '🔗'
|
|
|
76
84
|
|
|
77
85
|
autoclass_content = 'both'
|
|
78
86
|
|
|
87
|
+
autodoc_type_aliases = {
|
|
88
|
+
'TileSource': 'large_image.tilesource.base.TileSource',
|
|
89
|
+
}
|
|
90
|
+
|
|
79
91
|
mermaid_version = '10.6.0'
|
|
80
92
|
mermaid_init_js = 'mermaid.initialize({startOnLoad:true});'
|
|
81
93
|
mermaid_width = '50%'
|
|
@@ -28,6 +28,7 @@ from ..constants import (TILE_FORMAT_IMAGE, TILE_FORMAT_NUMPY, TILE_FORMAT_PIL,
|
|
|
28
28
|
TileInputUnits, TileOutputMimeTypes,
|
|
29
29
|
TileOutputPILFormat)
|
|
30
30
|
from . import utilities
|
|
31
|
+
from .eageriterator import EagerIterator
|
|
31
32
|
from .jupyter import IPyLeafletMixin
|
|
32
33
|
from .tiledict import LazyTileDict
|
|
33
34
|
from .tileiterator import TileIterator
|
|
@@ -2372,6 +2373,26 @@ class TileSource(IPyLeafletMixin):
|
|
|
2372
2373
|
level = max(0, min(mag['level'] or 0, level))
|
|
2373
2374
|
return level
|
|
2374
2375
|
|
|
2376
|
+
def eagerIterator(self, **kwargs) -> EagerIterator:
|
|
2377
|
+
"""Create an eager iterator for batched tile or region reads.
|
|
2378
|
+
|
|
2379
|
+
The eager iterator is intended for AI and machine-learning workflows that need
|
|
2380
|
+
prefetched numpy or torch batches from a Large Image tile source. It supports tile
|
|
2381
|
+
mode and explicit region mode, optional masking, scaling, padding, transforms,
|
|
2382
|
+
and dynamic transform-scale callbacks.
|
|
2383
|
+
|
|
2384
|
+
:param kwargs: EagerIterator options such as output_mode, tile_overlap, mask,
|
|
2385
|
+
region, scale, tile_size, region_size, source_scale, dtype, chunk_mult,
|
|
2386
|
+
edge, pad_mode, pad_fill_mode, nchw, batch, prefetch, workers, tiles,
|
|
2387
|
+
regions, transform, randomize_chunks, seed, area_threshold, threshold_mask,
|
|
2388
|
+
transform_save_mode, and transform_scale.
|
|
2389
|
+
:returns: An EagerIterator. Each iteration returns a dictionary with 'tile' as a
|
|
2390
|
+
SharedArray plus tile metadata including format, gx, gy, level_x, level_y,
|
|
2391
|
+
tile_position, width, height, level, magnification, mm_x, mm_y, gwidth, and
|
|
2392
|
+
gheight.
|
|
2393
|
+
"""
|
|
2394
|
+
return EagerIterator(self, **kwargs)
|
|
2395
|
+
|
|
2375
2396
|
def tileIterator(
|
|
2376
2397
|
self, format: str | tuple[str] = (TILE_FORMAT_NUMPY, ),
|
|
2377
2398
|
resample: bool = True, **kwargs) -> Iterator[LazyTileDict]:
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"""Share eager iterator callables with worker processes."""
|
|
2
|
+
|
|
3
|
+
from collections.abc import Callable
|
|
4
|
+
|
|
5
|
+
_eager_fns: dict[str, Callable | None] = {
|
|
6
|
+
'transform': None,
|
|
7
|
+
'transform_scale': None,
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def set_transform(fn: Callable) -> None:
|
|
12
|
+
"""Store the process-local eager transform callable.
|
|
13
|
+
|
|
14
|
+
:param fn: A callable function with either one or three arguments that takes
|
|
15
|
+
in a numpy array containing image data and returns a numpy array containing
|
|
16
|
+
the transformed image data. If the function has three arguments, the first
|
|
17
|
+
argument is the image data, the second argument is the x coordinate of the
|
|
18
|
+
tile, and the third argument is the y coordinate of the tile as tile number
|
|
19
|
+
(transform save mode: tile_x_y) or base pixel coordinates
|
|
20
|
+
(transform save mode: region_x_y).
|
|
21
|
+
:returns: None.
|
|
22
|
+
"""
|
|
23
|
+
_eager_fns['transform'] = fn
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def get_transform() -> Callable | None:
|
|
27
|
+
"""Return the process-local eager transform callable.
|
|
28
|
+
|
|
29
|
+
:returns: The callable set by set_transform, or None if unset.
|
|
30
|
+
"""
|
|
31
|
+
return _eager_fns['transform']
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def set_transform_scale(fn: Callable) -> None:
|
|
35
|
+
"""Store the process-local eager transform-scale callable.
|
|
36
|
+
|
|
37
|
+
:param fn: a callable function that takes in a numpy array of read_kwargs,
|
|
38
|
+
a slide_dimensions dictionary, and returns a tuple containing the read coordinates,
|
|
39
|
+
tile size, and target scale metadata in the following order: xlt, ytt,
|
|
40
|
+
xrt, ybt, mm_x, mm_y, tile_size, target_scale, conv_mm_x, conv_mm_y.
|
|
41
|
+
See default_region_coords_and_target_scale_from_read_args in
|
|
42
|
+
eager_read_args.py for more details.
|
|
43
|
+
:returns: None.
|
|
44
|
+
"""
|
|
45
|
+
_eager_fns['transform_scale'] = fn
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
def get_transform_scale() -> Callable | None:
|
|
49
|
+
"""Return the process-local eager transform-scale callable.
|
|
50
|
+
|
|
51
|
+
:returns: The callable set by set_transform_scale, or None if unset.
|
|
52
|
+
"""
|
|
53
|
+
return _eager_fns['transform_scale']
|