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.
Files changed (14) hide show
  1. {large-image-source-vips-1.27.5.dev6 → large-image-source-vips-1.28.3.dev14}/PKG-INFO +7 -2
  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
  3. {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
  4. {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
  5. {large-image-source-vips-1.27.5.dev6 → large-image-source-vips-1.28.3.dev14}/LICENSE +0 -0
  6. {large-image-source-vips-1.27.5.dev6 → large-image-source-vips-1.28.3.dev14}/README.rst +0 -0
  7. {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
  8. {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
  9. {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
  10. {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
  11. {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
  12. {large-image-source-vips-1.27.5.dev6 → large-image-source-vips-1.28.3.dev14}/pyproject.toml +0 -0
  13. {large-image-source-vips-1.27.5.dev6 → large-image-source-vips-1.28.3.dev14}/setup.cfg +0 -0
  14. {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.27.5.dev6
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
- self._image = pyvips.Image.new_from_file(self._largeImagePath)
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
- subImage = pyvips.Image.new_from_file(subInputPath)
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
- img = pyvips.Image.new_from_file(subpath)
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.27.5.dev6
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
 
@@ -1,4 +1,4 @@
1
- large-image>=1.27.5.dev6
1
+ large-image>=1.28.3.dev14
2
2
  numpy
3
3
  packaging
4
4
  pyvips