large-image-source-vips 1.27.5.dev6__tar.gz → 1.28.3.dev14__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-vips-1.27.5.dev6 → large-image-source-vips-1.28.3.dev14}/PKG-INFO +7 -2
- {large-image-source-vips-1.27.5.dev6 → large-image-source-vips-1.28.3.dev14}/large_image_source_vips/__init__.py +19 -4
- {large-image-source-vips-1.27.5.dev6 → large-image-source-vips-1.28.3.dev14}/large_image_source_vips.egg-info/PKG-INFO +7 -2
- {large-image-source-vips-1.27.5.dev6 → large-image-source-vips-1.28.3.dev14}/large_image_source_vips.egg-info/requires.txt +1 -1
- {large-image-source-vips-1.27.5.dev6 → large-image-source-vips-1.28.3.dev14}/LICENSE +0 -0
- {large-image-source-vips-1.27.5.dev6 → large-image-source-vips-1.28.3.dev14}/README.rst +0 -0
- {large-image-source-vips-1.27.5.dev6 → large-image-source-vips-1.28.3.dev14}/large_image_source_vips/girder_source.py +0 -0
- {large-image-source-vips-1.27.5.dev6 → large-image-source-vips-1.28.3.dev14}/large_image_source_vips.egg-info/SOURCES.txt +0 -0
- {large-image-source-vips-1.27.5.dev6 → large-image-source-vips-1.28.3.dev14}/large_image_source_vips.egg-info/dependency_links.txt +0 -0
- {large-image-source-vips-1.27.5.dev6 → large-image-source-vips-1.28.3.dev14}/large_image_source_vips.egg-info/entry_points.txt +0 -0
- {large-image-source-vips-1.27.5.dev6 → large-image-source-vips-1.28.3.dev14}/large_image_source_vips.egg-info/top_level.txt +0 -0
- {large-image-source-vips-1.27.5.dev6 → large-image-source-vips-1.28.3.dev14}/pyproject.toml +0 -0
- {large-image-source-vips-1.27.5.dev6 → large-image-source-vips-1.28.3.dev14}/setup.cfg +0 -0
- {large-image-source-vips-1.27.5.dev6 → large-image-source-vips-1.28.3.dev14}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: large-image-source-vips
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.28.3.dev14
|
|
4
4
|
Summary: A libvips tilesource for large_image.
|
|
5
5
|
Home-page: https://github.com/girder/large_image
|
|
6
6
|
Author: Kitware, Inc.
|
|
@@ -16,8 +16,13 @@ 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.8
|
|
19
|
-
Provides-Extra: girder
|
|
20
19
|
License-File: LICENSE
|
|
20
|
+
Requires-Dist: large-image>=1.28.3.dev14
|
|
21
|
+
Requires-Dist: numpy
|
|
22
|
+
Requires-Dist: packaging
|
|
23
|
+
Requires-Dist: pyvips
|
|
24
|
+
Provides-Extra: girder
|
|
25
|
+
Requires-Dist: girder-large-image; extra == "girder"
|
|
21
26
|
|
|
22
27
|
A libvips tilesource for large_image.
|
|
23
28
|
|
|
@@ -16,7 +16,7 @@ from large_image.constants import (NEW_IMAGE_PATH_FLAG, TILE_FORMAT_NUMPY,
|
|
|
16
16
|
dtypeToGValue)
|
|
17
17
|
from large_image.exceptions import TileSourceError, TileSourceFileNotFoundError
|
|
18
18
|
from large_image.tilesource import FileTileSource
|
|
19
|
-
from large_image.tilesource.utilities import _imageToNumpy
|
|
19
|
+
from large_image.tilesource.utilities import _imageToNumpy, _newFromFileLock
|
|
20
20
|
|
|
21
21
|
logging.getLogger('pyvips').setLevel(logging.ERROR)
|
|
22
22
|
|
|
@@ -50,6 +50,7 @@ class VipsFileTileSource(FileTileSource, metaclass=LruCacheMetaclass):
|
|
|
50
50
|
mimeTypes = {
|
|
51
51
|
None: SourcePriority.FALLBACK,
|
|
52
52
|
}
|
|
53
|
+
newPriority = SourcePriority.MEDIUM
|
|
53
54
|
|
|
54
55
|
_tileSize = 256
|
|
55
56
|
|
|
@@ -61,6 +62,7 @@ class VipsFileTileSource(FileTileSource, metaclass=LruCacheMetaclass):
|
|
|
61
62
|
:param path: a filesystem path for the tile source.
|
|
62
63
|
"""
|
|
63
64
|
super().__init__(path, **kwargs)
|
|
65
|
+
self.addKnownExtensions()
|
|
64
66
|
|
|
65
67
|
if str(path).startswith(NEW_IMAGE_PATH_FLAG):
|
|
66
68
|
self._initNew(**kwargs)
|
|
@@ -70,7 +72,8 @@ class VipsFileTileSource(FileTileSource, metaclass=LruCacheMetaclass):
|
|
|
70
72
|
|
|
71
73
|
config._ignoreSourceNames('vips', self._largeImagePath)
|
|
72
74
|
try:
|
|
73
|
-
|
|
75
|
+
with _newFromFileLock:
|
|
76
|
+
self._image = pyvips.Image.new_from_file(self._largeImagePath)
|
|
74
77
|
except pyvips.error.Error:
|
|
75
78
|
if not os.path.isfile(self._largeImagePath):
|
|
76
79
|
raise TileSourceFileNotFoundError(self._largeImagePath) from None
|
|
@@ -85,7 +88,8 @@ class VipsFileTileSource(FileTileSource, metaclass=LruCacheMetaclass):
|
|
|
85
88
|
self._frames = [0]
|
|
86
89
|
for page in range(1, pages):
|
|
87
90
|
subInputPath = self._largeImagePath + '[page=%d]' % page
|
|
88
|
-
|
|
91
|
+
with _newFromFileLock:
|
|
92
|
+
subImage = pyvips.Image.new_from_file(subInputPath)
|
|
89
93
|
if subImage.width == self.sizeX and subImage.height == self.sizeY:
|
|
90
94
|
self._frames.append(page)
|
|
91
95
|
continue
|
|
@@ -185,7 +189,8 @@ class VipsFileTileSource(FileTileSource, metaclass=LruCacheMetaclass):
|
|
|
185
189
|
with self._frameLock:
|
|
186
190
|
if frame not in self._recentFrames:
|
|
187
191
|
subpath = self._largeImagePath + '[page=%d]' % self._frames[frame]
|
|
188
|
-
|
|
192
|
+
with _newFromFileLock:
|
|
193
|
+
img = pyvips.Image.new_from_file(subpath)
|
|
189
194
|
self._recentFrames[frame] = img
|
|
190
195
|
else:
|
|
191
196
|
img = self._recentFrames[frame]
|
|
@@ -610,6 +615,16 @@ class VipsFileTileSource(FileTileSource, metaclass=LruCacheMetaclass):
|
|
|
610
615
|
return {'x': min(0, self._output['minx'] or 0),
|
|
611
616
|
'y': min(0, self._output['miny'] or 0)}
|
|
612
617
|
|
|
618
|
+
@classmethod
|
|
619
|
+
def addKnownExtensions(cls):
|
|
620
|
+
if not hasattr(cls, '_addedExtensions'):
|
|
621
|
+
cls._addedExtensions = True
|
|
622
|
+
cls.extensions = cls.extensions.copy()
|
|
623
|
+
for dotext in pyvips.base.get_suffixes():
|
|
624
|
+
ext = dotext.lstrip('.')
|
|
625
|
+
if ext not in cls.extensions:
|
|
626
|
+
cls.extensions[ext] = SourcePriority.IMPLICIT
|
|
627
|
+
|
|
613
628
|
|
|
614
629
|
def open(*args, **kwargs):
|
|
615
630
|
"""Create an instance of the module class."""
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: large-image-source-vips
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.28.3.dev14
|
|
4
4
|
Summary: A libvips tilesource for large_image.
|
|
5
5
|
Home-page: https://github.com/girder/large_image
|
|
6
6
|
Author: Kitware, Inc.
|
|
@@ -16,8 +16,13 @@ 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.8
|
|
19
|
-
Provides-Extra: girder
|
|
20
19
|
License-File: LICENSE
|
|
20
|
+
Requires-Dist: large-image>=1.28.3.dev14
|
|
21
|
+
Requires-Dist: numpy
|
|
22
|
+
Requires-Dist: packaging
|
|
23
|
+
Requires-Dist: pyvips
|
|
24
|
+
Provides-Extra: girder
|
|
25
|
+
Requires-Dist: girder-large-image; extra == "girder"
|
|
21
26
|
|
|
22
27
|
A libvips tilesource for large_image.
|
|
23
28
|
|
|
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
|