large-image 1.27.5.dev55__tar.gz → 1.27.5.dev59__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 (48) hide show
  1. {large-image-1.27.5.dev55/large_image.egg-info → large-image-1.27.5.dev59}/PKG-INFO +1 -1
  2. large-image-1.27.5.dev59/docs/formats.rst +21 -0
  3. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/docs/index.rst +1 -0
  4. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/docs/make_docs.sh +2 -0
  5. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/large_image/__init__.py +2 -1
  6. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/large_image/constants.py +5 -3
  7. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/large_image/tilesource/__init__.py +75 -4
  8. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59/large_image.egg-info}/PKG-INFO +1 -1
  9. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/large_image.egg-info/SOURCES.txt +1 -0
  10. large-image-1.27.5.dev59/large_image.egg-info/requires.txt +145 -0
  11. large-image-1.27.5.dev55/large_image.egg-info/requires.txt +0 -145
  12. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/LICENSE +0 -0
  13. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/NOTICE +0 -0
  14. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/README.rst +0 -0
  15. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/docs/annotations.rst +0 -0
  16. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/docs/caching.rst +0 -0
  17. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/docs/conf.py +0 -0
  18. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/docs/config_options.rst +0 -0
  19. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/docs/development.rst +0 -0
  20. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/docs/example_usage.rst +0 -0
  21. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/docs/girder_annotation_config_options.rst +0 -0
  22. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/docs/girder_config_options.rst +0 -0
  23. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/docs/image_conversion.rst +0 -0
  24. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/docs/large_image_examples.ipynb +0 -0
  25. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/docs/multi_source_specification.rst +0 -0
  26. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/docs/notebooks.rst +0 -0
  27. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/docs/static/custom.css +0 -0
  28. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/docs/tilesource_options.rst +0 -0
  29. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/docs/upgrade.rst +0 -0
  30. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/large_image/cache_util/__init__.py +0 -0
  31. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/large_image/cache_util/base.py +0 -0
  32. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/large_image/cache_util/cache.py +0 -0
  33. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/large_image/cache_util/cachefactory.py +0 -0
  34. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/large_image/cache_util/memcache.py +0 -0
  35. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/large_image/config.py +0 -0
  36. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/large_image/exceptions.py +0 -0
  37. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/large_image/tilesource/base.py +0 -0
  38. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/large_image/tilesource/geo.py +0 -0
  39. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/large_image/tilesource/jupyter.py +0 -0
  40. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/large_image/tilesource/stylefuncs.py +0 -0
  41. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/large_image/tilesource/tiledict.py +0 -0
  42. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/large_image/tilesource/tileiterator.py +0 -0
  43. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/large_image/tilesource/utilities.py +0 -0
  44. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/large_image.egg-info/dependency_links.txt +0 -0
  45. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/large_image.egg-info/not-zip-safe +0 -0
  46. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/large_image.egg-info/top_level.txt +0 -0
  47. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/setup.cfg +0 -0
  48. {large-image-1.27.5.dev55 → large-image-1.27.5.dev59}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: large-image
3
- Version: 1.27.5.dev55
3
+ Version: 1.27.5.dev59
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.
@@ -0,0 +1,21 @@
1
+ Image Formats
2
+ =============
3
+
4
+ Preferred Extensions and Mime Types
5
+ -----------------------------------
6
+
7
+ Images can generally be read regardless of their name. By default, when opening an image with ``large_image.open()``, each tile source reader is tried in turn until one source can open the file. Each source lists preferred file extensions and mime types with a priority level. If the file ends with one of these extensions or had one of these mimetypes, the order that the source readers are tried is adjusted based on the listed priority.
8
+
9
+ The file extensions and mime types that are listed by the core sources that can affect source processing order are listed below. See ``large_image.listSources()`` for details about priority of the different source and the ``large_image.constants.SourcePriority`` for the priority meaning.
10
+
11
+ Extensions
12
+ ~~~~~~~~~~
13
+
14
+ .. include:: ../build/docs-work/known_extensions.txt
15
+ :literal:
16
+
17
+ Mime Types
18
+ ~~~~~~~~~~
19
+
20
+ .. include:: ../build/docs-work/known_mimetypes.txt
21
+ :literal:
@@ -14,6 +14,7 @@
14
14
  example_usage
15
15
  config_options
16
16
  image_conversion
17
+ formats
17
18
  upgrade
18
19
  _build/large_image/modules
19
20
  _build/large_image_source_bioformats/modules
@@ -16,6 +16,8 @@ ln -s ../build/docs-work _build
16
16
  large_image_converter --help > _build/large_image_converter.txt
17
17
  python -c 'from girder_large_image_annotation.models import annotation;import json;print(json.dumps(annotation.AnnotationSchema.annotationSchema, indent=2))' > _build/annotation_schema.json
18
18
  python -c 'import large_image_source_multi, json;print(json.dumps(large_image_source_multi.MultiSourceSchema, indent=2))' > _build/multi_source_schema.json
19
+ python -c 'import large_image, yaml;print("\n".join(large_image.listExtensions()))' > _build/known_extensions.txt
20
+ python -c 'import large_image, yaml;print("\n".join(large_image.listMimeTypes()))' > _build/known_mimetypes.txt
19
21
 
20
22
  sphinx-apidoc -f -o _build/large_image ../large_image
21
23
  sphinx-apidoc -f -o _build/large_image_source_bioformats ../sources/bioformats/large_image_source_bioformats
@@ -18,7 +18,8 @@ from importlib.metadata import PackageNotFoundError
18
18
  from importlib.metadata import version as _importlib_version
19
19
 
20
20
  from . import tilesource # noqa
21
- from .tilesource import canRead, canReadList, getTileSource, new, open # noqa
21
+ from .tilesource import (canRead, canReadList, getTileSource, # noqa
22
+ listExtensions, listMimeTypes, listSources, new, open)
22
23
 
23
24
  try:
24
25
  __version__ = _importlib_version(__name__)
@@ -25,9 +25,11 @@ class SourcePriority(enum.IntEnum):
25
25
  MEDIUM = 4
26
26
  LOW = 5
27
27
  LOWER = 6
28
- FALLBACK_HIGH = 7
29
- FALLBACK = 8
30
- MANUAL = 9 # Will never be selected automatically
28
+ IMPLICIT_HIGH = 7
29
+ IMPLICIT = 8
30
+ FALLBACK_HIGH = 9
31
+ FALLBACK = 10
32
+ MANUAL = 11 # This and higher values will never be selected automatically
31
33
 
32
34
 
33
35
  TILE_FORMAT_IMAGE = 'image'
@@ -1,9 +1,10 @@
1
1
  import os
2
2
  import re
3
+ import sys
3
4
  import uuid
4
5
  from importlib.metadata import entry_points
5
6
  from pathlib import PosixPath
6
- from typing import Dict, List, Optional, Tuple, Type, Union, cast
7
+ from typing import Any, Dict, List, Optional, Tuple, Type, Union, cast
7
8
 
8
9
  from .. import config
9
10
  from ..constants import NEW_IMAGE_PATH_FLAG, SourcePriority
@@ -96,16 +97,16 @@ def getSortedSourceList(
96
97
  priority = min(priority, cast(SourcePriority, availableSources[sourceName].newPriority))
97
98
  if (mimeType and getattr(availableSources[sourceName], 'mimeTypes', None) and
98
99
  mimeType in availableSources[sourceName].mimeTypes):
99
- fallback = False
100
100
  priority = min(priority, availableSources[sourceName].mimeTypes[mimeType])
101
+ fallback = False
101
102
  for regex in getattr(availableSources[sourceName], 'nameMatches', {}):
102
103
  if re.match(regex, baseName):
103
- fallback = False
104
104
  priority = min(priority, availableSources[sourceName].nameMatches[regex])
105
+ fallback = False
105
106
  for ext in extensions:
106
107
  if ext in sourceExtensions:
107
- fallback = False
108
108
  priority = min(priority, sourceExtensions[ext])
109
+ fallback = False
109
110
  if isLargeImageUri and sourceName == uriWithoutProtocol:
110
111
  priority = SourcePriority.NAMED
111
112
  if priority >= SourcePriority.MANUAL:
@@ -237,6 +238,75 @@ def new(*args, **kwargs) -> TileSource:
237
238
  return getTileSource(NEW_IMAGE_PATH_FLAG + str(uuid.uuid4()), *args, **kwargs)
238
239
 
239
240
 
241
+ def listSources(
242
+ availableSources: Optional[Dict[str, Type[FileTileSource]]] = None,
243
+ ) -> Dict[str, Dict[str, Any]]:
244
+ """
245
+ Get a dictionary with all sources, all known extensions, and all known
246
+ mimetypes.
247
+
248
+ :param availableSources: an ordered dictionary of sources to try.
249
+ :returns: a dictionary with sources, extensions, and mimeTypes. The
250
+ extensions and mimeTypes list their matching sources in priority order.
251
+ The sources list their supported extensions and mimeTypes with their
252
+ priority.
253
+ """
254
+ if availableSources is None:
255
+ if not len(AvailableTileSources):
256
+ loadTileSources()
257
+ availableSources = AvailableTileSources
258
+ results: Dict[str, Dict[str, Any]] = {'sources': {}, 'extensions': {}, 'mimeTypes': {}}
259
+ for key, source in availableSources.items():
260
+ if hasattr(source, 'addKnownExtensions'):
261
+ source.addKnownExtensions()
262
+ results['sources'][key] = {
263
+ 'extensions': {
264
+ k or 'default': v for k, v in source.extensions.items()},
265
+ 'mimeTypes': {
266
+ k or 'default': v for k, v in source.mimeTypes.items()},
267
+ }
268
+ for k, v in source.extensions.items():
269
+ if k is not None:
270
+ results['extensions'].setdefault(k, [])
271
+ results['extensions'][k].append((v, key))
272
+ results['extensions'][k].sort()
273
+ for k, v in source.mimeTypes.items():
274
+ if k is not None:
275
+ results['mimeTypes'].setdefault(k, [])
276
+ results['mimeTypes'][k].append((v, key))
277
+ results['mimeTypes'][k].sort()
278
+ for cls in source.__mro__:
279
+ try:
280
+ if sys.modules[cls.__module__].__version__:
281
+ results['sources'][key]['version'] = sys.modules[cls.__module__].__version__
282
+ break
283
+ except Exception:
284
+ pass
285
+ return results
286
+
287
+
288
+ def listExtensions(
289
+ availableSources: Optional[Dict[str, Type[FileTileSource]]] = None) -> List[str]:
290
+ """
291
+ Get a list of all known extensions.
292
+
293
+ :param availableSources: an ordered dictionary of sources to try.
294
+ :returns: a list of extensions (without leading dots).
295
+ """
296
+ return sorted(listSources(availableSources)['extensions'].keys())
297
+
298
+
299
+ def listMimeTypes(
300
+ availableSources: Optional[Dict[str, Type[FileTileSource]]] = None) -> List[str]:
301
+ """
302
+ Get a list of all known mime types.
303
+
304
+ :param availableSources: an ordered dictionary of sources to try.
305
+ :returns: a list of mime types.
306
+ """
307
+ return sorted(listSources(availableSources)['mimeTypes'].keys())
308
+
309
+
240
310
  __all__ = [
241
311
  'TileSource', 'FileTileSource',
242
312
  'exceptions', 'TileGeneralError', 'TileSourceError',
@@ -245,5 +315,6 @@ __all__ = [
245
315
  'TileOutputMimeTypes', 'TILE_FORMAT_IMAGE', 'TILE_FORMAT_PIL', 'TILE_FORMAT_NUMPY',
246
316
  'AvailableTileSources', 'getTileSource', 'getSourceNameFromDict', 'nearPowerOfTwo',
247
317
  'canRead', 'open', 'new',
318
+ 'listSources', 'listExtensions', 'listMimeTypes',
248
319
  'etreeToDict', 'dictToEtree',
249
320
  ]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: large-image
3
- Version: 1.27.5.dev55
3
+ Version: 1.27.5.dev59
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.
@@ -8,6 +8,7 @@ docs/conf.py
8
8
  docs/config_options.rst
9
9
  docs/development.rst
10
10
  docs/example_usage.rst
11
+ docs/formats.rst
11
12
  docs/girder_annotation_config_options.rst
12
13
  docs/girder_config_options.rst
13
14
  docs/image_conversion.rst
@@ -0,0 +1,145 @@
1
+ cachetools
2
+ palettable
3
+ Pillow
4
+ numpy
5
+ typing-extensions
6
+
7
+ [all]
8
+ large-image-source-bioformats>=1.27.5.dev59
9
+ large-image-source-zarr>=1.27.5.dev59
10
+ large-image-source-tiff>=1.27.5.dev59
11
+ large-image-source-pil[all]>=1.27.5.dev59
12
+ large-image-source-rasterio>=1.27.5.dev59
13
+ large-image-source-multi[all]>=1.27.5.dev59
14
+ large-image-source-pil>=1.27.5.dev59
15
+ large-image-converter>=1.27.5.dev59
16
+ large-image-source-ometiff>=1.27.5.dev59
17
+ large-image-source-dummy>=1.27.5.dev59
18
+ large-image-source-gdal>=1.27.5.dev59
19
+ large-image-source-dicom>=1.27.5.dev59
20
+ large-image-source-openslide>=1.27.5.dev59
21
+ pyvips
22
+ large-image-source-mapnik>=1.27.5.dev59
23
+ large-image-source-test>=1.27.5.dev59
24
+ large-image-source-openjpeg>=1.27.5.dev59
25
+ large-image-source-vips>=1.27.5.dev59
26
+ large-image-source-multi>=1.27.5.dev59
27
+ large-image-source-deepzoom>=1.27.5.dev59
28
+ large-image-source-rasterio[all]>=1.27.5.dev59
29
+ large-image-source-nd2>=1.27.5.dev59
30
+ large-image-source-tifffile>=1.27.5.dev59
31
+ simplejpeg
32
+ matplotlib
33
+ psutil>=4.2.0
34
+
35
+ [all:platform_system != "Windows"]
36
+ pylibmc>=1.5.1
37
+
38
+ [bioformats]
39
+ large-image-source-bioformats>=1.27.5.dev59
40
+
41
+ [colormaps]
42
+ matplotlib
43
+
44
+ [common]
45
+ large-image-source-dicom>=1.27.5.dev59
46
+ large-image-source-zarr>=1.27.5.dev59
47
+ large-image-source-pil[all]>=1.27.5.dev59
48
+ large-image-source-test>=1.27.5.dev59
49
+ large-image-source-multi>=1.27.5.dev59
50
+ large-image-source-deepzoom>=1.27.5.dev59
51
+ large-image-source-rasterio[all]>=1.27.5.dev59
52
+ large-image-source-nd2>=1.27.5.dev59
53
+ large-image-source-tifffile>=1.27.5.dev59
54
+ simplejpeg
55
+ matplotlib
56
+ psutil>=4.2.0
57
+
58
+ [common:platform_system != "Windows"]
59
+ pylibmc>=1.5.1
60
+
61
+ [converter]
62
+ large-image-converter>=1.27.5.dev59
63
+
64
+ [deepzoom]
65
+ large-image-source-deepzoom>=1.27.5.dev59
66
+
67
+ [dicom]
68
+ large-image-source-dicom>=1.27.5.dev59
69
+
70
+ [dummy]
71
+ large-image-source-dummy>=1.27.5.dev59
72
+
73
+ [gdal]
74
+ large-image-source-gdal>=1.27.5.dev59
75
+
76
+ [mapnik]
77
+ large-image-source-mapnik>=1.27.5.dev59
78
+
79
+ [memcached]
80
+
81
+ [memcached:platform_system != "Windows"]
82
+ pylibmc>=1.5.1
83
+
84
+ [multi]
85
+ large-image-source-multi>=1.27.5.dev59
86
+
87
+ [nd2]
88
+ large-image-source-nd2>=1.27.5.dev59
89
+
90
+ [ometiff]
91
+ large-image-source-ometiff>=1.27.5.dev59
92
+
93
+ [openjpeg]
94
+ large-image-source-openjpeg>=1.27.5.dev59
95
+
96
+ [openslide]
97
+ large-image-source-openslide>=1.27.5.dev59
98
+
99
+ [performance]
100
+ psutil>=4.2.0
101
+ simplejpeg
102
+
103
+ [pil]
104
+ large-image-source-pil>=1.27.5.dev59
105
+
106
+ [rasterio]
107
+ large-image-source-rasterio>=1.27.5.dev59
108
+
109
+ [sources]
110
+ large-image-source-dicom>=1.27.5.dev59
111
+ large-image-source-bioformats>=1.27.5.dev59
112
+ large-image-source-zarr>=1.27.5.dev59
113
+ large-image-source-openslide>=1.27.5.dev59
114
+ large-image-source-tiff>=1.27.5.dev59
115
+ large-image-source-mapnik>=1.27.5.dev59
116
+ large-image-source-rasterio>=1.27.5.dev59
117
+ large-image-source-openjpeg>=1.27.5.dev59
118
+ large-image-source-test>=1.27.5.dev59
119
+ large-image-source-pil>=1.27.5.dev59
120
+ large-image-source-vips>=1.27.5.dev59
121
+ large-image-source-multi>=1.27.5.dev59
122
+ large-image-source-ometiff>=1.27.5.dev59
123
+ large-image-source-nd2>=1.27.5.dev59
124
+ large-image-source-tifffile>=1.27.5.dev59
125
+ large-image-source-deepzoom>=1.27.5.dev59
126
+ large-image-source-dummy>=1.27.5.dev59
127
+ large-image-source-gdal>=1.27.5.dev59
128
+
129
+ [test]
130
+ large-image-source-test>=1.27.5.dev59
131
+
132
+ [tiff]
133
+ large-image-source-tiff>=1.27.5.dev59
134
+
135
+ [tifffile]
136
+ large-image-source-tifffile>=1.27.5.dev59
137
+
138
+ [tiledoutput]
139
+ pyvips
140
+
141
+ [vips]
142
+ large-image-source-vips>=1.27.5.dev59
143
+
144
+ [zarr]
145
+ large-image-source-zarr>=1.27.5.dev59
@@ -1,145 +0,0 @@
1
- cachetools
2
- palettable
3
- Pillow
4
- numpy
5
- typing-extensions
6
-
7
- [all]
8
- large-image-source-deepzoom>=1.27.5.dev55
9
- large-image-source-dummy>=1.27.5.dev55
10
- large-image-source-nd2>=1.27.5.dev55
11
- large-image-source-tiff>=1.27.5.dev55
12
- large-image-source-vips>=1.27.5.dev55
13
- large-image-source-pil[all]>=1.27.5.dev55
14
- large-image-source-multi[all]>=1.27.5.dev55
15
- matplotlib
16
- large-image-source-openjpeg>=1.27.5.dev55
17
- large-image-source-openslide>=1.27.5.dev55
18
- large-image-source-multi>=1.27.5.dev55
19
- large-image-source-bioformats>=1.27.5.dev55
20
- large-image-source-ometiff>=1.27.5.dev55
21
- large-image-source-zarr>=1.27.5.dev55
22
- psutil>=4.2.0
23
- large-image-source-dicom>=1.27.5.dev55
24
- large-image-source-mapnik>=1.27.5.dev55
25
- pyvips
26
- large-image-source-test>=1.27.5.dev55
27
- large-image-source-pil>=1.27.5.dev55
28
- large-image-source-rasterio>=1.27.5.dev55
29
- large-image-source-rasterio[all]>=1.27.5.dev55
30
- large-image-source-tifffile>=1.27.5.dev55
31
- large-image-source-gdal>=1.27.5.dev55
32
- simplejpeg
33
- large-image-converter>=1.27.5.dev55
34
-
35
- [all:platform_system != "Windows"]
36
- pylibmc>=1.5.1
37
-
38
- [bioformats]
39
- large-image-source-bioformats>=1.27.5.dev55
40
-
41
- [colormaps]
42
- matplotlib
43
-
44
- [common]
45
- large-image-source-deepzoom>=1.27.5.dev55
46
- large-image-source-zarr>=1.27.5.dev55
47
- psutil>=4.2.0
48
- large-image-source-dicom>=1.27.5.dev55
49
- large-image-source-multi>=1.27.5.dev55
50
- large-image-source-rasterio[all]>=1.27.5.dev55
51
- large-image-source-test>=1.27.5.dev55
52
- large-image-source-nd2>=1.27.5.dev55
53
- large-image-source-pil[all]>=1.27.5.dev55
54
- matplotlib
55
- large-image-source-tifffile>=1.27.5.dev55
56
- simplejpeg
57
-
58
- [common:platform_system != "Windows"]
59
- pylibmc>=1.5.1
60
-
61
- [converter]
62
- large-image-converter>=1.27.5.dev55
63
-
64
- [deepzoom]
65
- large-image-source-deepzoom>=1.27.5.dev55
66
-
67
- [dicom]
68
- large-image-source-dicom>=1.27.5.dev55
69
-
70
- [dummy]
71
- large-image-source-dummy>=1.27.5.dev55
72
-
73
- [gdal]
74
- large-image-source-gdal>=1.27.5.dev55
75
-
76
- [mapnik]
77
- large-image-source-mapnik>=1.27.5.dev55
78
-
79
- [memcached]
80
-
81
- [memcached:platform_system != "Windows"]
82
- pylibmc>=1.5.1
83
-
84
- [multi]
85
- large-image-source-multi>=1.27.5.dev55
86
-
87
- [nd2]
88
- large-image-source-nd2>=1.27.5.dev55
89
-
90
- [ometiff]
91
- large-image-source-ometiff>=1.27.5.dev55
92
-
93
- [openjpeg]
94
- large-image-source-openjpeg>=1.27.5.dev55
95
-
96
- [openslide]
97
- large-image-source-openslide>=1.27.5.dev55
98
-
99
- [performance]
100
- psutil>=4.2.0
101
- simplejpeg
102
-
103
- [pil]
104
- large-image-source-pil>=1.27.5.dev55
105
-
106
- [rasterio]
107
- large-image-source-rasterio>=1.27.5.dev55
108
-
109
- [sources]
110
- large-image-source-deepzoom>=1.27.5.dev55
111
- large-image-source-mapnik>=1.27.5.dev55
112
- large-image-source-zarr>=1.27.5.dev55
113
- large-image-source-dicom>=1.27.5.dev55
114
- large-image-source-dummy>=1.27.5.dev55
115
- large-image-source-nd2>=1.27.5.dev55
116
- large-image-source-pil>=1.27.5.dev55
117
- large-image-source-rasterio>=1.27.5.dev55
118
- large-image-source-test>=1.27.5.dev55
119
- large-image-source-tiff>=1.27.5.dev55
120
- large-image-source-vips>=1.27.5.dev55
121
- large-image-source-tifffile>=1.27.5.dev55
122
- large-image-source-openjpeg>=1.27.5.dev55
123
- large-image-source-gdal>=1.27.5.dev55
124
- large-image-source-multi>=1.27.5.dev55
125
- large-image-source-bioformats>=1.27.5.dev55
126
- large-image-source-openslide>=1.27.5.dev55
127
- large-image-source-ometiff>=1.27.5.dev55
128
-
129
- [test]
130
- large-image-source-test>=1.27.5.dev55
131
-
132
- [tiff]
133
- large-image-source-tiff>=1.27.5.dev55
134
-
135
- [tifffile]
136
- large-image-source-tifffile>=1.27.5.dev55
137
-
138
- [tiledoutput]
139
- pyvips
140
-
141
- [vips]
142
- large-image-source-vips>=1.27.5.dev55
143
-
144
- [zarr]
145
- large-image-source-zarr>=1.27.5.dev55