large-image-source-multi 1.28.1.dev14__tar.gz → 1.28.2__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-source-multi-1.28.1.dev14/large_image_source_multi.egg-info → large-image-source-multi-1.28.2}/PKG-INFO +7 -2
- {large-image-source-multi-1.28.1.dev14 → large-image-source-multi-1.28.2}/large_image_source_multi/__init__.py +12 -9
- {large-image-source-multi-1.28.1.dev14 → large-image-source-multi-1.28.2/large_image_source_multi.egg-info}/PKG-INFO +7 -2
- large-image-source-multi-1.28.2/large_image_source_multi.egg-info/requires.txt +9 -0
- large-image-source-multi-1.28.1.dev14/large_image_source_multi.egg-info/requires.txt +0 -9
- {large-image-source-multi-1.28.1.dev14 → large-image-source-multi-1.28.2}/LICENSE +0 -0
- {large-image-source-multi-1.28.1.dev14 → large-image-source-multi-1.28.2}/README.rst +0 -0
- {large-image-source-multi-1.28.1.dev14 → large-image-source-multi-1.28.2}/docs/specification.rst +0 -0
- {large-image-source-multi-1.28.1.dev14 → large-image-source-multi-1.28.2}/large_image_source_multi/girder_source.py +0 -0
- {large-image-source-multi-1.28.1.dev14 → large-image-source-multi-1.28.2}/large_image_source_multi.egg-info/SOURCES.txt +0 -0
- {large-image-source-multi-1.28.1.dev14 → large-image-source-multi-1.28.2}/large_image_source_multi.egg-info/dependency_links.txt +0 -0
- {large-image-source-multi-1.28.1.dev14 → large-image-source-multi-1.28.2}/large_image_source_multi.egg-info/entry_points.txt +0 -0
- {large-image-source-multi-1.28.1.dev14 → large-image-source-multi-1.28.2}/large_image_source_multi.egg-info/top_level.txt +0 -0
- {large-image-source-multi-1.28.1.dev14 → large-image-source-multi-1.28.2}/pyproject.toml +0 -0
- {large-image-source-multi-1.28.1.dev14 → large-image-source-multi-1.28.2}/setup.cfg +0 -0
- {large-image-source-multi-1.28.1.dev14 → large-image-source-multi-1.28.2}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: large-image-source-multi
|
|
3
|
-
Version: 1.28.
|
|
3
|
+
Version: 1.28.2
|
|
4
4
|
Summary: A tilesource for large_image to composite other tile sources
|
|
5
5
|
Home-page: https://github.com/girder/large_image
|
|
6
6
|
Author: Kitware, Inc.
|
|
@@ -16,9 +16,14 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
16
16
|
Classifier: Programming Language :: Python :: 3.11
|
|
17
17
|
Classifier: Programming Language :: Python :: 3.12
|
|
18
18
|
Requires-Python: >=3.6
|
|
19
|
+
License-File: LICENSE
|
|
20
|
+
Requires-Dist: jsonschema
|
|
21
|
+
Requires-Dist: large-image>=1.28.2
|
|
22
|
+
Requires-Dist: pyyaml
|
|
19
23
|
Provides-Extra: all
|
|
24
|
+
Requires-Dist: scikit-image; extra == "all"
|
|
20
25
|
Provides-Extra: girder
|
|
21
|
-
|
|
26
|
+
Requires-Dist: girder-large-image>=1.28.2; extra == "girder"
|
|
22
27
|
|
|
23
28
|
A tilesource for large_image to composite other tile sources
|
|
24
29
|
|
|
@@ -828,7 +828,8 @@ class MultiFileTileSource(FileTileSource, metaclass=LruCacheMetaclass):
|
|
|
828
828
|
with self._lastOpenSourceLock:
|
|
829
829
|
if (hasattr(self, '_lastOpenSource') and
|
|
830
830
|
self._lastOpenSource['source'] == source and
|
|
831
|
-
self._lastOpenSource['params'] == params
|
|
831
|
+
(self._lastOpenSource['params'] == params or (
|
|
832
|
+
params == {} and self._lastOpenSource['params'] is None))):
|
|
832
833
|
return self._lastOpenSource['ts']
|
|
833
834
|
if not len(large_image.tilesource.AvailableTileSources):
|
|
834
835
|
large_image.tilesource.loadTileSources()
|
|
@@ -841,6 +842,7 @@ class MultiFileTileSource(FileTileSource, metaclass=LruCacheMetaclass):
|
|
|
841
842
|
if params is None:
|
|
842
843
|
params = source.get('params', {})
|
|
843
844
|
ts = openFunc(source['path'], **params)
|
|
845
|
+
source['sourceName'] = ts.name
|
|
844
846
|
with self._lastOpenSourceLock:
|
|
845
847
|
self._lastOpenSource = {
|
|
846
848
|
'source': source,
|
|
@@ -894,7 +896,7 @@ class MultiFileTileSource(FileTileSource, metaclass=LruCacheMetaclass):
|
|
|
894
896
|
"""
|
|
895
897
|
Return additional known metadata about the tile source. Data returned
|
|
896
898
|
from this method is not guaranteed to be in any particular format or
|
|
897
|
-
have specific values.
|
|
899
|
+
have specific values. Also, only the first 100 sources are used.
|
|
898
900
|
|
|
899
901
|
:returns: a dictionary of data or None.
|
|
900
902
|
"""
|
|
@@ -903,7 +905,7 @@ class MultiFileTileSource(FileTileSource, metaclass=LruCacheMetaclass):
|
|
|
903
905
|
'sources': copy.deepcopy(self._sources),
|
|
904
906
|
'sourceFiles': [],
|
|
905
907
|
}
|
|
906
|
-
for path in self._sourcePaths.values():
|
|
908
|
+
for path in list(self._sourcePaths.values())[:100]:
|
|
907
909
|
source = self._sources[min(path['sourcenum'])]
|
|
908
910
|
ts = self._openSource(source)
|
|
909
911
|
result['sourceFiles'].append({
|
|
@@ -937,28 +939,28 @@ class MultiFileTileSource(FileTileSource, metaclass=LruCacheMetaclass):
|
|
|
937
939
|
(tile.shape[0] + y - base.shape[0], base.shape[1], base.shape[2]),
|
|
938
940
|
dtype=base.dtype)
|
|
939
941
|
if base.shape[2] in {2, 4}:
|
|
940
|
-
vfill[:, :, -1] = fullAlphaValue(
|
|
942
|
+
vfill[:, :, -1] = fullAlphaValue(base.dtype)
|
|
941
943
|
base = np.vstack((base, vfill))
|
|
942
944
|
if base.shape[1] < tile.shape[1] + x:
|
|
943
945
|
hfill = np.zeros(
|
|
944
946
|
(base.shape[0], tile.shape[1] + x - base.shape[1], base.shape[2]),
|
|
945
947
|
dtype=base.dtype)
|
|
946
948
|
if base.shape[2] in {2, 4}:
|
|
947
|
-
hfill[:, :, -1] = fullAlphaValue(
|
|
949
|
+
hfill[:, :, -1] = fullAlphaValue(base.dtype)
|
|
948
950
|
base = np.hstack((base, hfill))
|
|
949
951
|
if base.flags.writeable is False:
|
|
950
952
|
base = base.copy()
|
|
951
953
|
if base.shape[2] in {2, 4}:
|
|
952
954
|
baseA = base[y:y + tile.shape[0], x:x + tile.shape[1], -1].astype(
|
|
953
|
-
float) / fullAlphaValue(
|
|
954
|
-
tileA = tile[:, :, -1].astype(float) / fullAlphaValue(
|
|
955
|
+
float) / fullAlphaValue(base.dtype)
|
|
956
|
+
tileA = tile[:, :, -1].astype(float) / fullAlphaValue(tile.dtype)
|
|
955
957
|
outA = tileA + baseA * (1 - tileA)
|
|
956
958
|
base[y:y + tile.shape[0], x:x + tile.shape[1], :-1] = (
|
|
957
959
|
np.where(tileA[..., np.newaxis], tile[:, :, :-1], 0) +
|
|
958
960
|
base[y:y + tile.shape[0], x:x + tile.shape[1], :-1] * baseA[..., np.newaxis] *
|
|
959
961
|
(1 - tileA[..., np.newaxis])
|
|
960
962
|
) / np.where(outA[..., np.newaxis], outA[..., np.newaxis], 1)
|
|
961
|
-
base[y:y + tile.shape[0], x:x + tile.shape[1], -1] = outA * fullAlphaValue(
|
|
963
|
+
base[y:y + tile.shape[0], x:x + tile.shape[1], -1] = outA * fullAlphaValue(base.dtype)
|
|
962
964
|
else:
|
|
963
965
|
base[y:y + tile.shape[0], x:x + tile.shape[1], :] = tile
|
|
964
966
|
return base
|
|
@@ -1098,12 +1100,12 @@ class MultiFileTileSource(FileTileSource, metaclass=LruCacheMetaclass):
|
|
|
1098
1100
|
:returns: a numpy array of the tile.
|
|
1099
1101
|
"""
|
|
1100
1102
|
source = self._sources[sourceEntry['sourcenum']]
|
|
1101
|
-
ts = self._openSource(source, sourceEntry['kwargs'])
|
|
1102
1103
|
# If tile is outside of bounding box, skip it
|
|
1103
1104
|
bbox = source['bbox']
|
|
1104
1105
|
if (corners[2][0] <= bbox['left'] or corners[0][0] >= bbox['right'] or
|
|
1105
1106
|
corners[2][1] <= bbox['top'] or corners[0][1] >= bbox['bottom']):
|
|
1106
1107
|
return tile
|
|
1108
|
+
ts = self._openSource(source, sourceEntry['kwargs'])
|
|
1107
1109
|
transform = bbox.get('transform')
|
|
1108
1110
|
x = y = 0
|
|
1109
1111
|
# If there is no transform or the diagonals are positive and there is
|
|
@@ -1155,6 +1157,7 @@ class MultiFileTileSource(FileTileSource, metaclass=LruCacheMetaclass):
|
|
|
1155
1157
|
ts, transform, corners, scale, sourceEntry.get('frame', 0),
|
|
1156
1158
|
source.get('position', {}).get('crop'))
|
|
1157
1159
|
if sourceTile is not None and all(dim > 0 for dim in sourceTile.shape):
|
|
1160
|
+
sourceTile = sourceTile.astype(ts.dtype)
|
|
1158
1161
|
tile = self._mergeTiles(tile, sourceTile, x, y)
|
|
1159
1162
|
return tile
|
|
1160
1163
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: large-image-source-multi
|
|
3
|
-
Version: 1.28.
|
|
3
|
+
Version: 1.28.2
|
|
4
4
|
Summary: A tilesource for large_image to composite other tile sources
|
|
5
5
|
Home-page: https://github.com/girder/large_image
|
|
6
6
|
Author: Kitware, Inc.
|
|
@@ -16,9 +16,14 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
16
16
|
Classifier: Programming Language :: Python :: 3.11
|
|
17
17
|
Classifier: Programming Language :: Python :: 3.12
|
|
18
18
|
Requires-Python: >=3.6
|
|
19
|
+
License-File: LICENSE
|
|
20
|
+
Requires-Dist: jsonschema
|
|
21
|
+
Requires-Dist: large-image>=1.28.2
|
|
22
|
+
Requires-Dist: pyyaml
|
|
19
23
|
Provides-Extra: all
|
|
24
|
+
Requires-Dist: scikit-image; extra == "all"
|
|
20
25
|
Provides-Extra: girder
|
|
21
|
-
|
|
26
|
+
Requires-Dist: girder-large-image>=1.28.2; extra == "girder"
|
|
22
27
|
|
|
23
28
|
A tilesource for large_image to composite other tile sources
|
|
24
29
|
|
|
File without changes
|
|
File without changes
|
{large-image-source-multi-1.28.1.dev14 → large-image-source-multi-1.28.2}/docs/specification.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
|