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.
Files changed (16) hide show
  1. {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
  2. {large-image-source-multi-1.28.1.dev14 → large-image-source-multi-1.28.2}/large_image_source_multi/__init__.py +12 -9
  3. {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
  4. large-image-source-multi-1.28.2/large_image_source_multi.egg-info/requires.txt +9 -0
  5. large-image-source-multi-1.28.1.dev14/large_image_source_multi.egg-info/requires.txt +0 -9
  6. {large-image-source-multi-1.28.1.dev14 → large-image-source-multi-1.28.2}/LICENSE +0 -0
  7. {large-image-source-multi-1.28.1.dev14 → large-image-source-multi-1.28.2}/README.rst +0 -0
  8. {large-image-source-multi-1.28.1.dev14 → large-image-source-multi-1.28.2}/docs/specification.rst +0 -0
  9. {large-image-source-multi-1.28.1.dev14 → large-image-source-multi-1.28.2}/large_image_source_multi/girder_source.py +0 -0
  10. {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
  11. {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
  12. {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
  13. {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
  14. {large-image-source-multi-1.28.1.dev14 → large-image-source-multi-1.28.2}/pyproject.toml +0 -0
  15. {large-image-source-multi-1.28.1.dev14 → large-image-source-multi-1.28.2}/setup.cfg +0 -0
  16. {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.1.dev14
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
- License-File: LICENSE
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(self.dtype)
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(self.dtype)
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(self.dtype)
954
- tileA = tile[:, :, -1].astype(float) / fullAlphaValue(self.dtype)
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(self.dtype)
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.1.dev14
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
- License-File: LICENSE
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
 
@@ -0,0 +1,9 @@
1
+ jsonschema
2
+ large-image>=1.28.2
3
+ pyyaml
4
+
5
+ [all]
6
+ scikit-image
7
+
8
+ [girder]
9
+ girder-large-image>=1.28.2
@@ -1,9 +0,0 @@
1
- jsonschema
2
- large-image>=1.28.1.dev14
3
- pyyaml
4
-
5
- [all]
6
- scikit-image
7
-
8
- [girder]
9
- girder-large-image>=1.28.1.dev14