large-image 1.27.5.dev6__tar.gz → 1.27.5.dev71__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.27.5.dev6/large_image.egg-info → large-image-1.27.5.dev71}/PKG-INFO +1 -1
- large-image-1.27.5.dev71/docs/formats.rst +21 -0
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/docs/index.rst +1 -0
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/docs/make_docs.sh +2 -0
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/large_image/__init__.py +2 -1
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/large_image/constants.py +5 -3
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/large_image/tilesource/__init__.py +82 -6
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/large_image/tilesource/base.py +5 -1
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/large_image/tilesource/utilities.py +6 -1
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71/large_image.egg-info}/PKG-INFO +1 -1
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/large_image.egg-info/SOURCES.txt +1 -0
- large-image-1.27.5.dev71/large_image.egg-info/requires.txt +145 -0
- large-image-1.27.5.dev6/large_image.egg-info/requires.txt +0 -145
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/LICENSE +0 -0
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/NOTICE +0 -0
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/README.rst +0 -0
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/docs/annotations.rst +0 -0
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/docs/caching.rst +0 -0
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/docs/conf.py +0 -0
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/docs/config_options.rst +0 -0
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/docs/development.rst +0 -0
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/docs/example_usage.rst +0 -0
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/docs/girder_annotation_config_options.rst +0 -0
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/docs/girder_config_options.rst +0 -0
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/docs/image_conversion.rst +0 -0
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/docs/large_image_examples.ipynb +0 -0
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/docs/multi_source_specification.rst +0 -0
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/docs/notebooks.rst +0 -0
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/docs/static/custom.css +0 -0
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/docs/tilesource_options.rst +0 -0
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/docs/upgrade.rst +0 -0
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/large_image/cache_util/__init__.py +0 -0
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/large_image/cache_util/base.py +0 -0
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/large_image/cache_util/cache.py +0 -0
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/large_image/cache_util/cachefactory.py +0 -0
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/large_image/cache_util/memcache.py +0 -0
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/large_image/config.py +0 -0
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/large_image/exceptions.py +0 -0
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/large_image/tilesource/geo.py +0 -0
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/large_image/tilesource/jupyter.py +0 -0
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/large_image/tilesource/stylefuncs.py +0 -0
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/large_image/tilesource/tiledict.py +0 -0
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/large_image/tilesource/tileiterator.py +0 -0
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/large_image.egg-info/dependency_links.txt +0 -0
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/large_image.egg-info/not-zip-safe +0 -0
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/large_image.egg-info/top_level.txt +0 -0
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/setup.cfg +0 -0
- {large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/setup.py +0 -0
|
@@ -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:
|
|
@@ -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,
|
|
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
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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
|
|
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
|
|
@@ -86,23 +87,26 @@ def getSortedSourceList(
|
|
|
86
87
|
properties = {
|
|
87
88
|
'_geospatial_source': isGeospatial(pathOrUri),
|
|
88
89
|
}
|
|
90
|
+
isNew = str(pathOrUri).startswith(NEW_IMAGE_PATH_FLAG)
|
|
89
91
|
sourceList = []
|
|
90
92
|
for sourceName in availableSources:
|
|
91
93
|
sourceExtensions = availableSources[sourceName].extensions
|
|
92
94
|
priority = sourceExtensions.get(None, SourcePriority.MANUAL)
|
|
93
95
|
fallback = True
|
|
96
|
+
if isNew and getattr(availableSources[sourceName], 'newPriority', None) is not None:
|
|
97
|
+
priority = min(priority, cast(SourcePriority, availableSources[sourceName].newPriority))
|
|
94
98
|
if (mimeType and getattr(availableSources[sourceName], 'mimeTypes', None) and
|
|
95
99
|
mimeType in availableSources[sourceName].mimeTypes):
|
|
96
|
-
fallback = False
|
|
97
100
|
priority = min(priority, availableSources[sourceName].mimeTypes[mimeType])
|
|
101
|
+
fallback = False
|
|
98
102
|
for regex in getattr(availableSources[sourceName], 'nameMatches', {}):
|
|
99
103
|
if re.match(regex, baseName):
|
|
100
|
-
fallback = False
|
|
101
104
|
priority = min(priority, availableSources[sourceName].nameMatches[regex])
|
|
105
|
+
fallback = False
|
|
102
106
|
for ext in extensions:
|
|
103
107
|
if ext in sourceExtensions:
|
|
104
|
-
fallback = False
|
|
105
108
|
priority = min(priority, sourceExtensions[ext])
|
|
109
|
+
fallback = False
|
|
106
110
|
if isLargeImageUri and sourceName == uriWithoutProtocol:
|
|
107
111
|
priority = SourcePriority.NAMED
|
|
108
112
|
if priority >= SourcePriority.MANUAL:
|
|
@@ -130,7 +134,8 @@ def getSourceNameFromDict(
|
|
|
130
134
|
there is no such source.
|
|
131
135
|
"""
|
|
132
136
|
sourceList = getSortedSourceList(availableSources, pathOrUri, mimeType, *args, **kwargs)
|
|
133
|
-
for
|
|
137
|
+
for entry in sorted(sourceList):
|
|
138
|
+
sourceName = entry[-1]
|
|
134
139
|
if availableSources[sourceName].canRead(pathOrUri, *args, **kwargs):
|
|
135
140
|
return sourceName
|
|
136
141
|
return None
|
|
@@ -217,7 +222,8 @@ def canReadList(
|
|
|
217
222
|
sourceList = getSortedSourceList(
|
|
218
223
|
AvailableTileSources, pathOrUri, mimeType, *args, **kwargs)
|
|
219
224
|
result = []
|
|
220
|
-
for
|
|
225
|
+
for entry in sorted(sourceList):
|
|
226
|
+
sourceName = entry[-1]
|
|
221
227
|
result.append((sourceName, AvailableTileSources[sourceName].canRead(
|
|
222
228
|
pathOrUri, *args, **kwargs)))
|
|
223
229
|
return result
|
|
@@ -232,6 +238,75 @@ def new(*args, **kwargs) -> TileSource:
|
|
|
232
238
|
return getTileSource(NEW_IMAGE_PATH_FLAG + str(uuid.uuid4()), *args, **kwargs)
|
|
233
239
|
|
|
234
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
|
+
|
|
235
310
|
__all__ = [
|
|
236
311
|
'TileSource', 'FileTileSource',
|
|
237
312
|
'exceptions', 'TileGeneralError', 'TileSourceError',
|
|
@@ -240,5 +315,6 @@ __all__ = [
|
|
|
240
315
|
'TileOutputMimeTypes', 'TILE_FORMAT_IMAGE', 'TILE_FORMAT_PIL', 'TILE_FORMAT_NUMPY',
|
|
241
316
|
'AvailableTileSources', 'getTileSource', 'getSourceNameFromDict', 'nearPowerOfTwo',
|
|
242
317
|
'canRead', 'open', 'new',
|
|
318
|
+
'listSources', 'listExtensions', 'listMimeTypes',
|
|
243
319
|
'etreeToDict', 'dictToEtree',
|
|
244
320
|
]
|
|
@@ -57,6 +57,10 @@ class TileSource(IPyLeafletMixin):
|
|
|
57
57
|
nameMatches: Dict[str, SourcePriority] = {
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
+
# If a source supports creating new tiled images, specify its basic
|
|
61
|
+
# priority based on expected feature set
|
|
62
|
+
newPriority: Optional[SourcePriority] = None
|
|
63
|
+
|
|
60
64
|
# When getting tiles for otherwise empty levels (missing powers of two), we
|
|
61
65
|
# composite the tile from higher resolution levels. This can use excessive
|
|
62
66
|
# memory if there are too many missing levels. For instance, if there are
|
|
@@ -1956,7 +1960,7 @@ class TileSource(IPyLeafletMixin):
|
|
|
1956
1960
|
image = None
|
|
1957
1961
|
tiledimage = None
|
|
1958
1962
|
if max_workers is not None and max_workers < 0:
|
|
1959
|
-
max_workers =
|
|
1963
|
+
max_workers = min(-max_workers, utilities.cpu_count(False))
|
|
1960
1964
|
with concurrent.futures.ThreadPoolExecutor(max_workers=max_workers) as pool:
|
|
1961
1965
|
futures = []
|
|
1962
1966
|
for idx, frame in enumerate(frameList):
|
|
@@ -815,7 +815,12 @@ def _addSubimageToImage(
|
|
|
815
815
|
dtype=subimage.dtype)
|
|
816
816
|
elif len(image.shape) != len(subimage.shape) or image.shape[-1] != subimage.shape[-1]:
|
|
817
817
|
image, subimage = _makeSameChannelDepth(image, subimage)
|
|
818
|
-
|
|
818
|
+
if subimage.shape[-1] in {2, 4}:
|
|
819
|
+
mask = (subimage[:, :, -1] > 0)[:, :, np.newaxis]
|
|
820
|
+
image[y:y + subimage.shape[0], x:x + subimage.shape[1]] = np.where(
|
|
821
|
+
mask, subimage, image[y:y + subimage.shape[0], x:x + subimage.shape[1]])
|
|
822
|
+
else:
|
|
823
|
+
image[y:y + subimage.shape[0], x:x + subimage.shape[1]] = subimage
|
|
819
824
|
return image
|
|
820
825
|
|
|
821
826
|
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
cachetools
|
|
2
|
+
palettable
|
|
3
|
+
Pillow
|
|
4
|
+
numpy
|
|
5
|
+
typing-extensions
|
|
6
|
+
|
|
7
|
+
[all]
|
|
8
|
+
large-image-source-mapnik>=1.27.5.dev71
|
|
9
|
+
psutil>=4.2.0
|
|
10
|
+
large-image-source-dicom>=1.27.5.dev71
|
|
11
|
+
large-image-source-zarr>=1.27.5.dev71
|
|
12
|
+
large-image-source-pil[all]>=1.27.5.dev71
|
|
13
|
+
large-image-source-tiff>=1.27.5.dev71
|
|
14
|
+
large-image-source-dummy>=1.27.5.dev71
|
|
15
|
+
large-image-source-rasterio>=1.27.5.dev71
|
|
16
|
+
large-image-converter>=1.27.5.dev71
|
|
17
|
+
large-image-source-pil>=1.27.5.dev71
|
|
18
|
+
matplotlib
|
|
19
|
+
large-image-source-bioformats>=1.27.5.dev71
|
|
20
|
+
large-image-source-openslide>=1.27.5.dev71
|
|
21
|
+
large-image-source-test>=1.27.5.dev71
|
|
22
|
+
large-image-source-nd2>=1.27.5.dev71
|
|
23
|
+
large-image-source-gdal>=1.27.5.dev71
|
|
24
|
+
large-image-source-multi[all]>=1.27.5.dev71
|
|
25
|
+
simplejpeg
|
|
26
|
+
large-image-source-openjpeg>=1.27.5.dev71
|
|
27
|
+
large-image-source-tifffile>=1.27.5.dev71
|
|
28
|
+
large-image-source-rasterio[all]>=1.27.5.dev71
|
|
29
|
+
large-image-source-multi>=1.27.5.dev71
|
|
30
|
+
pyvips
|
|
31
|
+
large-image-source-deepzoom>=1.27.5.dev71
|
|
32
|
+
large-image-source-ometiff>=1.27.5.dev71
|
|
33
|
+
large-image-source-vips>=1.27.5.dev71
|
|
34
|
+
|
|
35
|
+
[all:platform_system != "Windows"]
|
|
36
|
+
pylibmc>=1.5.1
|
|
37
|
+
|
|
38
|
+
[bioformats]
|
|
39
|
+
large-image-source-bioformats>=1.27.5.dev71
|
|
40
|
+
|
|
41
|
+
[colormaps]
|
|
42
|
+
matplotlib
|
|
43
|
+
|
|
44
|
+
[common]
|
|
45
|
+
large-image-source-nd2>=1.27.5.dev71
|
|
46
|
+
psutil>=4.2.0
|
|
47
|
+
large-image-source-dicom>=1.27.5.dev71
|
|
48
|
+
large-image-source-zarr>=1.27.5.dev71
|
|
49
|
+
simplejpeg
|
|
50
|
+
large-image-source-tifffile>=1.27.5.dev71
|
|
51
|
+
large-image-source-pil[all]>=1.27.5.dev71
|
|
52
|
+
large-image-source-rasterio[all]>=1.27.5.dev71
|
|
53
|
+
large-image-source-multi>=1.27.5.dev71
|
|
54
|
+
matplotlib
|
|
55
|
+
large-image-source-deepzoom>=1.27.5.dev71
|
|
56
|
+
large-image-source-test>=1.27.5.dev71
|
|
57
|
+
|
|
58
|
+
[common:platform_system != "Windows"]
|
|
59
|
+
pylibmc>=1.5.1
|
|
60
|
+
|
|
61
|
+
[converter]
|
|
62
|
+
large-image-converter>=1.27.5.dev71
|
|
63
|
+
|
|
64
|
+
[deepzoom]
|
|
65
|
+
large-image-source-deepzoom>=1.27.5.dev71
|
|
66
|
+
|
|
67
|
+
[dicom]
|
|
68
|
+
large-image-source-dicom>=1.27.5.dev71
|
|
69
|
+
|
|
70
|
+
[dummy]
|
|
71
|
+
large-image-source-dummy>=1.27.5.dev71
|
|
72
|
+
|
|
73
|
+
[gdal]
|
|
74
|
+
large-image-source-gdal>=1.27.5.dev71
|
|
75
|
+
|
|
76
|
+
[mapnik]
|
|
77
|
+
large-image-source-mapnik>=1.27.5.dev71
|
|
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.dev71
|
|
86
|
+
|
|
87
|
+
[nd2]
|
|
88
|
+
large-image-source-nd2>=1.27.5.dev71
|
|
89
|
+
|
|
90
|
+
[ometiff]
|
|
91
|
+
large-image-source-ometiff>=1.27.5.dev71
|
|
92
|
+
|
|
93
|
+
[openjpeg]
|
|
94
|
+
large-image-source-openjpeg>=1.27.5.dev71
|
|
95
|
+
|
|
96
|
+
[openslide]
|
|
97
|
+
large-image-source-openslide>=1.27.5.dev71
|
|
98
|
+
|
|
99
|
+
[performance]
|
|
100
|
+
psutil>=4.2.0
|
|
101
|
+
simplejpeg
|
|
102
|
+
|
|
103
|
+
[pil]
|
|
104
|
+
large-image-source-pil>=1.27.5.dev71
|
|
105
|
+
|
|
106
|
+
[rasterio]
|
|
107
|
+
large-image-source-rasterio>=1.27.5.dev71
|
|
108
|
+
|
|
109
|
+
[sources]
|
|
110
|
+
large-image-source-nd2>=1.27.5.dev71
|
|
111
|
+
large-image-source-mapnik>=1.27.5.dev71
|
|
112
|
+
large-image-source-gdal>=1.27.5.dev71
|
|
113
|
+
large-image-source-dicom>=1.27.5.dev71
|
|
114
|
+
large-image-source-zarr>=1.27.5.dev71
|
|
115
|
+
large-image-source-test>=1.27.5.dev71
|
|
116
|
+
large-image-source-openjpeg>=1.27.5.dev71
|
|
117
|
+
large-image-source-tiff>=1.27.5.dev71
|
|
118
|
+
large-image-source-dummy>=1.27.5.dev71
|
|
119
|
+
large-image-source-rasterio>=1.27.5.dev71
|
|
120
|
+
large-image-source-multi>=1.27.5.dev71
|
|
121
|
+
large-image-source-tifffile>=1.27.5.dev71
|
|
122
|
+
large-image-source-pil>=1.27.5.dev71
|
|
123
|
+
large-image-source-bioformats>=1.27.5.dev71
|
|
124
|
+
large-image-source-openslide>=1.27.5.dev71
|
|
125
|
+
large-image-source-deepzoom>=1.27.5.dev71
|
|
126
|
+
large-image-source-ometiff>=1.27.5.dev71
|
|
127
|
+
large-image-source-vips>=1.27.5.dev71
|
|
128
|
+
|
|
129
|
+
[test]
|
|
130
|
+
large-image-source-test>=1.27.5.dev71
|
|
131
|
+
|
|
132
|
+
[tiff]
|
|
133
|
+
large-image-source-tiff>=1.27.5.dev71
|
|
134
|
+
|
|
135
|
+
[tifffile]
|
|
136
|
+
large-image-source-tifffile>=1.27.5.dev71
|
|
137
|
+
|
|
138
|
+
[tiledoutput]
|
|
139
|
+
pyvips
|
|
140
|
+
|
|
141
|
+
[vips]
|
|
142
|
+
large-image-source-vips>=1.27.5.dev71
|
|
143
|
+
|
|
144
|
+
[zarr]
|
|
145
|
+
large-image-source-zarr>=1.27.5.dev71
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
cachetools
|
|
2
|
-
palettable
|
|
3
|
-
Pillow
|
|
4
|
-
numpy
|
|
5
|
-
typing-extensions
|
|
6
|
-
|
|
7
|
-
[all]
|
|
8
|
-
psutil>=4.2.0
|
|
9
|
-
large-image-source-openslide>=1.27.5.dev6
|
|
10
|
-
matplotlib
|
|
11
|
-
large-image-source-deepzoom>=1.27.5.dev6
|
|
12
|
-
large-image-source-vips>=1.27.5.dev6
|
|
13
|
-
large-image-source-pil[all]>=1.27.5.dev6
|
|
14
|
-
large-image-source-pil>=1.27.5.dev6
|
|
15
|
-
large-image-source-bioformats>=1.27.5.dev6
|
|
16
|
-
large-image-source-tifffile>=1.27.5.dev6
|
|
17
|
-
large-image-source-multi>=1.27.5.dev6
|
|
18
|
-
large-image-source-rasterio>=1.27.5.dev6
|
|
19
|
-
large-image-source-ometiff>=1.27.5.dev6
|
|
20
|
-
pyvips
|
|
21
|
-
large-image-source-test>=1.27.5.dev6
|
|
22
|
-
large-image-source-dummy>=1.27.5.dev6
|
|
23
|
-
large-image-source-zarr>=1.27.5.dev6
|
|
24
|
-
large-image-source-mapnik>=1.27.5.dev6
|
|
25
|
-
large-image-source-multi[all]>=1.27.5.dev6
|
|
26
|
-
large-image-source-openjpeg>=1.27.5.dev6
|
|
27
|
-
large-image-source-gdal>=1.27.5.dev6
|
|
28
|
-
large-image-source-nd2>=1.27.5.dev6
|
|
29
|
-
large-image-source-dicom>=1.27.5.dev6
|
|
30
|
-
large-image-converter>=1.27.5.dev6
|
|
31
|
-
large-image-source-rasterio[all]>=1.27.5.dev6
|
|
32
|
-
large-image-source-tiff>=1.27.5.dev6
|
|
33
|
-
simplejpeg
|
|
34
|
-
|
|
35
|
-
[all:platform_system != "Windows"]
|
|
36
|
-
pylibmc>=1.5.1
|
|
37
|
-
|
|
38
|
-
[bioformats]
|
|
39
|
-
large-image-source-bioformats>=1.27.5.dev6
|
|
40
|
-
|
|
41
|
-
[colormaps]
|
|
42
|
-
matplotlib
|
|
43
|
-
|
|
44
|
-
[common]
|
|
45
|
-
psutil>=4.2.0
|
|
46
|
-
matplotlib
|
|
47
|
-
large-image-source-test>=1.27.5.dev6
|
|
48
|
-
large-image-source-zarr>=1.27.5.dev6
|
|
49
|
-
large-image-source-deepzoom>=1.27.5.dev6
|
|
50
|
-
large-image-source-nd2>=1.27.5.dev6
|
|
51
|
-
large-image-source-pil[all]>=1.27.5.dev6
|
|
52
|
-
large-image-source-dicom>=1.27.5.dev6
|
|
53
|
-
large-image-source-tifffile>=1.27.5.dev6
|
|
54
|
-
large-image-source-multi>=1.27.5.dev6
|
|
55
|
-
large-image-source-rasterio[all]>=1.27.5.dev6
|
|
56
|
-
simplejpeg
|
|
57
|
-
|
|
58
|
-
[common:platform_system != "Windows"]
|
|
59
|
-
pylibmc>=1.5.1
|
|
60
|
-
|
|
61
|
-
[converter]
|
|
62
|
-
large-image-converter>=1.27.5.dev6
|
|
63
|
-
|
|
64
|
-
[deepzoom]
|
|
65
|
-
large-image-source-deepzoom>=1.27.5.dev6
|
|
66
|
-
|
|
67
|
-
[dicom]
|
|
68
|
-
large-image-source-dicom>=1.27.5.dev6
|
|
69
|
-
|
|
70
|
-
[dummy]
|
|
71
|
-
large-image-source-dummy>=1.27.5.dev6
|
|
72
|
-
|
|
73
|
-
[gdal]
|
|
74
|
-
large-image-source-gdal>=1.27.5.dev6
|
|
75
|
-
|
|
76
|
-
[mapnik]
|
|
77
|
-
large-image-source-mapnik>=1.27.5.dev6
|
|
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.dev6
|
|
86
|
-
|
|
87
|
-
[nd2]
|
|
88
|
-
large-image-source-nd2>=1.27.5.dev6
|
|
89
|
-
|
|
90
|
-
[ometiff]
|
|
91
|
-
large-image-source-ometiff>=1.27.5.dev6
|
|
92
|
-
|
|
93
|
-
[openjpeg]
|
|
94
|
-
large-image-source-openjpeg>=1.27.5.dev6
|
|
95
|
-
|
|
96
|
-
[openslide]
|
|
97
|
-
large-image-source-openslide>=1.27.5.dev6
|
|
98
|
-
|
|
99
|
-
[performance]
|
|
100
|
-
psutil>=4.2.0
|
|
101
|
-
simplejpeg
|
|
102
|
-
|
|
103
|
-
[pil]
|
|
104
|
-
large-image-source-pil>=1.27.5.dev6
|
|
105
|
-
|
|
106
|
-
[rasterio]
|
|
107
|
-
large-image-source-rasterio>=1.27.5.dev6
|
|
108
|
-
|
|
109
|
-
[sources]
|
|
110
|
-
large-image-source-ometiff>=1.27.5.dev6
|
|
111
|
-
large-image-source-openslide>=1.27.5.dev6
|
|
112
|
-
large-image-source-test>=1.27.5.dev6
|
|
113
|
-
large-image-source-deepzoom>=1.27.5.dev6
|
|
114
|
-
large-image-source-dummy>=1.27.5.dev6
|
|
115
|
-
large-image-source-mapnik>=1.27.5.dev6
|
|
116
|
-
large-image-source-vips>=1.27.5.dev6
|
|
117
|
-
large-image-source-zarr>=1.27.5.dev6
|
|
118
|
-
large-image-source-openjpeg>=1.27.5.dev6
|
|
119
|
-
large-image-source-gdal>=1.27.5.dev6
|
|
120
|
-
large-image-source-nd2>=1.27.5.dev6
|
|
121
|
-
large-image-source-pil>=1.27.5.dev6
|
|
122
|
-
large-image-source-bioformats>=1.27.5.dev6
|
|
123
|
-
large-image-source-dicom>=1.27.5.dev6
|
|
124
|
-
large-image-source-tifffile>=1.27.5.dev6
|
|
125
|
-
large-image-source-multi>=1.27.5.dev6
|
|
126
|
-
large-image-source-tiff>=1.27.5.dev6
|
|
127
|
-
large-image-source-rasterio>=1.27.5.dev6
|
|
128
|
-
|
|
129
|
-
[test]
|
|
130
|
-
large-image-source-test>=1.27.5.dev6
|
|
131
|
-
|
|
132
|
-
[tiff]
|
|
133
|
-
large-image-source-tiff>=1.27.5.dev6
|
|
134
|
-
|
|
135
|
-
[tifffile]
|
|
136
|
-
large-image-source-tifffile>=1.27.5.dev6
|
|
137
|
-
|
|
138
|
-
[tiledoutput]
|
|
139
|
-
pyvips
|
|
140
|
-
|
|
141
|
-
[vips]
|
|
142
|
-
large-image-source-vips>=1.27.5.dev6
|
|
143
|
-
|
|
144
|
-
[zarr]
|
|
145
|
-
large-image-source-zarr>=1.27.5.dev6
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/docs/girder_annotation_config_options.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{large-image-1.27.5.dev6 → large-image-1.27.5.dev71}/large_image.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|