(
self,
patch_size: Sequence[int] | int,
overlap: Sequence[float] | float | Sequence[int] | int = 0.0,
offset: Sequence[int] | int = 0,
filter_fn: Callable | None = None,
pad_mode: str | None = "constant",
device: torch.device | str | None = None,
reader: str | BaseWSIReader | type[BaseWSIReader] | None = "OpenSlide",
**reader_kwargs: dict,
)
| 326 | """ |
| 327 | |
| 328 | def __init__( |
| 329 | self, |
| 330 | patch_size: Sequence[int] | int, |
| 331 | overlap: Sequence[float] | float | Sequence[int] | int = 0.0, |
| 332 | offset: Sequence[int] | int = 0, |
| 333 | filter_fn: Callable | None = None, |
| 334 | pad_mode: str | None = "constant", |
| 335 | device: torch.device | str | None = None, |
| 336 | reader: str | BaseWSIReader | type[BaseWSIReader] | None = "OpenSlide", |
| 337 | **reader_kwargs: dict, |
| 338 | ) -> None: |
| 339 | if pad_mode and pad_mode != "constant": |
| 340 | raise ValueError( |
| 341 | f"The underlying wsi readers only support for constant padding. pad_mod={pad_mode} is given." |
| 342 | ) |
| 343 | |
| 344 | super().__init__( |
| 345 | patch_size=patch_size, overlap=overlap, offset=offset, filter_fn=filter_fn, device=device, pad_mode=pad_mode |
| 346 | ) |
| 347 | # Set WSI reader |
| 348 | self._set_reader(reader, reader_kwargs) |
| 349 | if self.reader.backend.lower() not in ["openslide", "cucim"]: |
| 350 | warnings.warn( |
| 351 | f"WSIReader with {self.reader.backend.lower()} backend is not supported for efficiently loading patches. " |
| 352 | "This may cause an significant slow down and a large memory foot print. " |
| 353 | "Please use other backends such as 'OpenSlide' or 'cuCIM' instead." |
| 354 | ) |
| 355 | |
| 356 | def _set_reader(self, reader: str | BaseWSIReader | type[BaseWSIReader] | None, reader_kwargs: dict) -> None: |
| 357 | """ |
nothing calls this directly
no test coverage detected