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.
Files changed (74) hide show
  1. {large_image-1.34.4.dev2/large_image.egg-info → large_image-1.35.0}/PKG-INFO +85 -80
  2. {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/conf.py +12 -0
  3. {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/tilesource/base.py +21 -0
  4. large_image-1.35.0/large_image/tilesource/eager_utils/__init__.py +5 -0
  5. large_image-1.35.0/large_image/tilesource/eager_utils/eager_fn.py +53 -0
  6. large_image-1.35.0/large_image/tilesource/eager_utils/eager_image_modifications.py +354 -0
  7. large_image-1.35.0/large_image/tilesource/eager_utils/eager_pytorch_threading_context.py +53 -0
  8. large_image-1.35.0/large_image/tilesource/eager_utils/eager_read_args.py +392 -0
  9. large_image-1.35.0/large_image/tilesource/eager_utils/eager_shared_array.py +313 -0
  10. large_image-1.35.0/large_image/tilesource/eager_utils/eager_wsi_operations.py +615 -0
  11. large_image-1.35.0/large_image/tilesource/eageriterator.py +1448 -0
  12. {large_image-1.34.4.dev2 → large_image-1.35.0/large_image.egg-info}/PKG-INFO +85 -80
  13. {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image.egg-info/SOURCES.txt +8 -0
  14. large_image-1.35.0/large_image.egg-info/requires.txt +166 -0
  15. {large_image-1.34.4.dev2 → large_image-1.35.0}/setup.py +4 -0
  16. large_image-1.34.4.dev2/large_image.egg-info/requires.txt +0 -159
  17. {large_image-1.34.4.dev2 → large_image-1.35.0}/LICENSE +0 -0
  18. {large_image-1.34.4.dev2 → large_image-1.35.0}/NOTICE +0 -0
  19. {large_image-1.34.4.dev2 → large_image-1.35.0}/README.rst +0 -0
  20. {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/annotations.rst +0 -0
  21. {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/api_index.rst +0 -0
  22. {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/caching.rst +0 -0
  23. {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/config_options.rst +0 -0
  24. {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/development.rst +0 -0
  25. {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/dicomweb_assetstore.rst +0 -0
  26. {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/format_examples_datastore.py +0 -0
  27. {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/formats.rst +0 -0
  28. {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/generate_format_table.py +0 -0
  29. {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/getting_started.rst +0 -0
  30. {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/girder_annotation_config_options.rst +0 -0
  31. {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/girder_caching.rst +0 -0
  32. {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/girder_config_options.rst +0 -0
  33. {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/girder_index.rst +0 -0
  34. {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/image_conversion.rst +0 -0
  35. {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/index.rst +0 -0
  36. {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/make_docs.sh +0 -0
  37. {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/multi_source_specification.rst +0 -0
  38. {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/notebooks/frame_viewer_example.ipynb +0 -0
  39. {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/notebooks/large_image_examples.ipynb +0 -0
  40. {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/notebooks/zarr_sink_example.ipynb +0 -0
  41. {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/notebooks.rst +0 -0
  42. {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/plottable.rst +0 -0
  43. {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/static/K.png +0 -0
  44. {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/static/custom.css +0 -0
  45. {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/tilesource_options.rst +0 -0
  46. {large_image-1.34.4.dev2 → large_image-1.35.0}/docs/upgrade.rst +0 -0
  47. {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/__init__.py +0 -0
  48. {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/cache_util/__init__.py +0 -0
  49. {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/cache_util/base.py +0 -0
  50. {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/cache_util/cache.py +0 -0
  51. {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/cache_util/cachefactory.py +0 -0
  52. {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/cache_util/memcache.py +0 -0
  53. {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/cache_util/rediscache.py +0 -0
  54. {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/config.py +0 -0
  55. {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/constants.py +0 -0
  56. {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/exceptions.py +0 -0
  57. {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/tilesource/__init__.py +0 -0
  58. {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/tilesource/geo.py +0 -0
  59. {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/tilesource/jupyter.py +0 -0
  60. {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/tilesource/resample.py +0 -0
  61. {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/tilesource/stylefuncs.py +0 -0
  62. {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/tilesource/tiledict.py +0 -0
  63. {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/tilesource/tileiterator.py +0 -0
  64. {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/tilesource/utilities.py +0 -0
  65. {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/widgets/CompositeLayers.vue +0 -0
  66. {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/widgets/DualInput.vue +0 -0
  67. {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/widgets/FrameSelector.vue +0 -0
  68. {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/widgets/HistogramEditor.vue +0 -0
  69. {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/widgets/colors.json +0 -0
  70. {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image/widgets/components.py +0 -0
  71. {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image.egg-info/dependency_links.txt +0 -0
  72. {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image.egg-info/not-zip-safe +0 -0
  73. {large_image-1.34.4.dev2 → large_image-1.35.0}/large_image.egg-info/top_level.txt +0 -0
  74. {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.34.4.dev2
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.34.4.dev2; extra == "converter"
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.34.4.dev2; extra == "bioformats"
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.34.4.dev2; extra == "deepzoom"
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.34.4.dev2; extra == "dicom"
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.34.4.dev2; extra == "dummy"
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.34.4.dev2; extra == "gdal"
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.34.4.dev2; extra == "mapnik"
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.34.4.dev2; extra == "multi"
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.34.4.dev2; extra == "nd2"
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.34.4.dev2; extra == "ometiff"
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.34.4.dev2; extra == "openjpeg"
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.34.4.dev2; extra == "openslide"
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.34.4.dev2; extra == "pil"
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.34.4.dev2; extra == "rasterio"
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.34.4.dev2; extra == "test"
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.34.4.dev2; extra == "tiff"
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.34.4.dev2; extra == "tifffile"
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.34.4.dev2; extra == "vips"
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.34.4.dev2; extra == "zarr"
81
+ Requires-Dist: large-image-source-zarr>=1.35.0; extra == "zarr"
80
82
  Provides-Extra: sources
81
- Requires-Dist: large-image-source-dummy>=1.34.4.dev2; extra == "sources"
82
- Requires-Dist: large-image-source-nd2>=1.34.4.dev2; extra == "sources"
83
- Requires-Dist: large-image-source-mapnik>=1.34.4.dev2; extra == "sources"
84
- Requires-Dist: large-image-source-tifffile>=1.34.4.dev2; extra == "sources"
85
- Requires-Dist: large-image-source-ometiff>=1.34.4.dev2; extra == "sources"
86
- Requires-Dist: large-image-source-dicom>=1.34.4.dev2; extra == "sources"
87
- Requires-Dist: large-image-source-gdal>=1.34.4.dev2; extra == "sources"
88
- Requires-Dist: large-image-source-tiff>=1.34.4.dev2; extra == "sources"
89
- Requires-Dist: large-image-source-vips>=1.34.4.dev2; extra == "sources"
90
- Requires-Dist: large-image-source-openslide>=1.34.4.dev2; extra == "sources"
91
- Requires-Dist: large-image-source-test>=1.34.4.dev2; extra == "sources"
92
- Requires-Dist: large-image-source-pil>=1.34.4.dev2; extra == "sources"
93
- Requires-Dist: large-image-source-deepzoom>=1.34.4.dev2; extra == "sources"
94
- Requires-Dist: large-image-source-bioformats>=1.34.4.dev2; extra == "sources"
95
- Requires-Dist: large-image-source-rasterio>=1.34.4.dev2; extra == "sources"
96
- Requires-Dist: large-image-source-openjpeg>=1.34.4.dev2; extra == "sources"
97
- Requires-Dist: large-image-source-multi>=1.34.4.dev2; extra == "sources"
98
- Requires-Dist: large-image-source-zarr>=1.34.4.dev2; extra == "sources"
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-converter>=1.34.4.dev2; extra == "all"
101
- Requires-Dist: ipyleaflet; extra == "all"
102
- Requires-Dist: aiohttp; extra == "all"
103
- Requires-Dist: large-image-source-tiff>=1.34.4.dev2; extra == "all"
104
- Requires-Dist: large-image-source-dicom>=1.34.4.dev2; extra == "all"
105
- Requires-Dist: pylibmc>=1.5.1; platform_system != "Windows" and extra == "all"
106
- Requires-Dist: large-image-source-tiff[all]>=1.34.4.dev2; extra == "all"
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: redis>=4.5.5; extra == "all"
109
- Requires-Dist: large-image-source-deepzoom>=1.34.4.dev2; extra == "all"
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: large-image-source-openslide>=1.34.4.dev2; extra == "all"
123
- Requires-Dist: large-image-source-test>=1.34.4.dev2; extra == "all"
124
- Requires-Dist: tol-colors>=2.0.0; extra == "all"
125
- Requires-Dist: large-image-source-multi[all]>=1.34.4.dev2; extra == "all"
126
- Requires-Dist: large-image-source-pil>=1.34.4.dev2; extra == "all"
127
- Requires-Dist: large-image-source-rasterio>=1.34.4.dev2; extra == "all"
128
- Requires-Dist: pyvips; extra == "all"
129
- Requires-Dist: large-image-source-pil[all]>=1.34.4.dev2; extra == "all"
130
- Requires-Dist: large-image-source-openjpeg>=1.34.4.dev2; extra == "all"
131
- Requires-Dist: large-image-source-multi>=1.34.4.dev2; extra == "all"
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-pil[common]>=1.34.4.dev2; extra == "common"
135
- Requires-Dist: large-image-source-zarr>=1.34.4.dev2; extra == "common"
136
- Requires-Dist: large-image-source-rasterio[all]>=1.34.4.dev2; extra == "common"
137
- Requires-Dist: large-image-source-tifffile>=1.34.4.dev2; extra == "common"
138
- Requires-Dist: large-image-source-dicom>=1.34.4.dev2; extra == "common"
139
- Requires-Dist: psutil>=4.2.0; extra == "common"
140
- Requires-Dist: large-image-source-openslide>=1.34.4.dev2; extra == "common"
141
- Requires-Dist: large-image-source-test>=1.34.4.dev2; extra == "common"
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-deepzoom>=1.34.4.dev2; extra == "common"
144
- Requires-Dist: large-image-source-nd2>=1.34.4.dev2; extra == "common"
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
- Requires-Dist: large-image-source-multi>=1.34.4.dev2; extra == "common"
147
- Requires-Dist: matplotlib; extra == "common"
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 = '&#128279'
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,5 @@
1
+ """Utilities used by the eager tile iterator."""
2
+
3
+ from . import eager_fn as eager_fn
4
+
5
+ __all__ = ['eager_fn']
@@ -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']