From b748e77890a3797686e19c151ebecaa42d87f4a1 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Thu, 16 Oct 2025 13:15:09 -0400 Subject: [PATCH 001/133] feat: add pipeline for converting single tiff file --- linc_convert/modalities/lsm/__init__.py | 4 +- linc_convert/modalities/lsm/single_volume.py | 93 ++++++++++++++++++++ pyproject.toml | 5 +- 3 files changed, 98 insertions(+), 4 deletions(-) create mode 100644 linc_convert/modalities/lsm/single_volume.py diff --git a/linc_convert/modalities/lsm/__init__.py b/linc_convert/modalities/lsm/__init__.py index 402fb20f..d370dd6a 100644 --- a/linc_convert/modalities/lsm/__init__.py +++ b/linc_convert/modalities/lsm/__init__.py @@ -3,8 +3,8 @@ try: import tifffile as _ # noqa: F401 - __all__ = ["cli", "mosaic", "multi_slice", "spool"] + __all__ = ["cli", "mosaic", "multi_slice", "spool", "single_volume"] - from . import cli, mosaic, multi_slice, spool + from . import cli, mosaic, multi_slice, spool, single_volume except ImportError: pass diff --git a/linc_convert/modalities/lsm/single_volume.py b/linc_convert/modalities/lsm/single_volume.py new file mode 100644 index 00000000..29736815 --- /dev/null +++ b/linc_convert/modalities/lsm/single_volume.py @@ -0,0 +1,93 @@ +""" +Matlab to OME-Zarr. + +Converts Matlab files generated by the MGH in-house OCT pipeline +into a OME-ZARR pyramid. +""" +import logging +import os + +import cyclopts +import dask.array as da +import dask_image.imread +import numpy as np + +from linc_convert.modalities.lsm.cli import lsm +from linc_convert.utils.io.zarr import from_config +from linc_convert.utils.nifti_header import build_nifti_header +from linc_convert.utils.unit import to_ome_unit +from linc_convert.utils.zarr_config import ( + GeneralConfig, + NiiConfig, + ZarrConfig, + autoconfig, +) + +logger = logging.getLogger(__name__) +single_volume = cyclopts.App(name="single_volume", help_format="markdown") +lsm.command(single_volume) + + +@single_volume.default +@autoconfig +def convert( + inp: str, + *, + general_config: GeneralConfig = None, + zarr_config: ZarrConfig = None, + nii_config: NiiConfig = None, +) -> None: + """ + Tiff to OME-Zarr. + + Convert tiff files + into a pyramidal OME-ZARR (or NIfTI-Zarr) hierarchy. + + Parameters + ---------- + inp + Path to the input tiff file + general_config + General configuration + zarr_config + Zarr related configuration + nii_config + NIfTI header related configuration + """ + + general_config.set_default_name(os.path.splitext(inp)[0]) + + inp_data = dask_image.imread.imread(inp) + + # Prepare Zarr group + zgroup = from_config(general_config.out, zarr_config) + + if not hasattr(inp_data, "dtype"): + raise Exception("Input is not a numpy array. This is unexpected.") + + inp_chunk = [min(x, general_config.max_load) for x in inp_data.shape] + + dataset = zgroup.create_array( + "0", shape=inp_data.shape, dtype=np.dtype(inp_data.dtype), + zarr_config=zarr_config) + + if dataset.shards: + inp_data = da.rechunk(inp_data, dataset.shards) + else: + inp_data = da.rechunk(inp_data, dataset.chunks) + + da.store(inp_data, dataset) + zgroup.generate_pyramid(mode="mean", no_pyramid_axis=zarr_config.no_pyramid_axis) + logger.info("Write OME-Zarr multiscale metadata") + zgroup.write_ome_metadata(axes=["z", "y", "x"], space_unit=to_ome_unit("um")) + + if nii_config.nii: + header = build_nifti_header( + zgroup=zgroup, + voxel_size_zyx=tuple(1, 1, 1), + unit="um", + nii_config=nii_config, + ) + zgroup.write_nifti_header(header) + + logger.info("Conversion complete.") diff --git a/pyproject.toml b/pyproject.toml index f4e02fea..22a80acb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -44,14 +44,15 @@ h5py = { version = "*", optional = true } scipy = { version = "*", optional = true } wkw = { version = "*", optional = true } tensorstore = { version = "*", optional = true } +dask-image = { version = "*", optional = true } [tool.poetry.extras] df = ["glymur"] -lsm = ["tifffile"] +lsm = ["tifffile", "dask-image"] psoct = ["h5py", "scipy"] wk = ["wkw"] ts = ["tensorstore"] -all = ["glymur", "tifffile", "h5py", "scipy", "wkw", "tensorstore"] +all = ["glymur", "tifffile", "h5py", "scipy", "wkw", "tensorstore", "dask-image"] [tool.poetry.group.dev] optional = true From 27f0d7232650815b8006ccc7a177030dd70a5369 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Thu, 16 Oct 2025 14:56:48 -0400 Subject: [PATCH 002/133] fix: hot fix for Emine --- linc_convert/utils/io/zarr/drivers/zarr_python.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/linc_convert/utils/io/zarr/drivers/zarr_python.py b/linc_convert/utils/io/zarr/drivers/zarr_python.py index 116d6c9e..526f5255 100644 --- a/linc_convert/utils/io/zarr/drivers/zarr_python.py +++ b/linc_convert/utils/io/zarr/drivers/zarr_python.py @@ -116,10 +116,7 @@ def from_config( cls, out: str | PathLike[str], zarr_config: ZarrConfig ) -> "ZarrPythonGroup": """Create a Zarr group from a configuration object.""" - if out.startswith("/") or out.startswith("\\"): - store = zarr.storage.LocalStore(out) - else: - store = zarr.storage.FsspecStore(out) + store = zarr.storage.LocalStore(out) return cls( zarr.group( store=store, From cbf5572b1826bf3c70bfb009098adb123680676b Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Thu, 4 Dec 2025 11:02:39 -0500 Subject: [PATCH 003/133] wip: oct stitching --- linc_convert/modalities/psoct/mosaic3d.py | 38 +++++ linc_convert/modalities/psoct/single_tile.py | 36 ++++ linc_convert/modalities/psoct/stitch.py | 166 +++++++++++++++++++ 3 files changed, 240 insertions(+) create mode 100644 linc_convert/modalities/psoct/mosaic3d.py create mode 100644 linc_convert/modalities/psoct/single_tile.py create mode 100644 linc_convert/modalities/psoct/stitch.py diff --git a/linc_convert/modalities/psoct/mosaic3d.py b/linc_convert/modalities/psoct/mosaic3d.py new file mode 100644 index 00000000..b3a88abd --- /dev/null +++ b/linc_convert/modalities/psoct/mosaic3d.py @@ -0,0 +1,38 @@ +# given a file with tileinfo, create a mosaic3d, the input needs to be either complex +# data or volume itself, support focus offset + + +@autoconfig +@mosaic3d.default +def mosaic3d( + tile_info_file: str, + *, + dbi_output: Annotated[str, Parameter(name=["--dBI", "-d"])], + o3d_output: Annotated[str, Parameter(name=["--O3D", "-o"])], + r3d_output: Annotated[str, Parameter(name=["--R3D", "-r"])], + zarr_config: ZarrConfig = None, + general_config: GeneralConfig = None, + nifti_config: NiftiConfig = None, +) -> None: + # load tile info + # load + pass + + +def mosaic3d_vol( + tile_info_file: str, + *, + tile_overlap: float | Literal["auto"] = "auto", + circular_mean: bool = False, + general_config: GeneralConfig = None, + nifti_config: NiftiConfig = None, + zarr_config: ZarrConfig = None, +) -> None: + # load tile info + # normalize tile_overlap, if auto, find the max overlap of all tiles, if float number, use as percentile of the tile size + + # load volume + # mosaic volume + # save mosaic volume + pass + diff --git a/linc_convert/modalities/psoct/single_tile.py b/linc_convert/modalities/psoct/single_tile.py new file mode 100644 index 00000000..d689504b --- /dev/null +++ b/linc_convert/modalities/psoct/single_tile.py @@ -0,0 +1,36 @@ +import dask.array as da + + +def process_complex3d( + complex3d: da.Array, offset: float = 100, flip_phi: bool = False + ) -> tuple[da.Array, da.Array, da.Array]: + offset = da.deg2rad(offset) + if complex3d.shape[0] % 4 != 0: + raise ValueError("First dimension size must be multiple of 4.") + raw_tile_width = complex3d.shape[0] // 4 + complex3d = complex3d.rechunk({0: raw_tile_width}) + comp = complex3d.reshape( + (4, raw_tile_width, complex3d.shape[1], complex3d.shape[2])) + j1r, j1i, j2r, j2i = comp[0], comp[1], comp[2], comp[3] + + j1 = j1r + 1j * j1i + j2 = j2r + 1j * j2i + mag1 = da.abs(j1) + mag2 = da.abs(j2) + + dBI3D = da.flip(10 * da.log10(mag1 ** 2 + mag2 ** 2), axis=2) + R3D = da.flip( + da.arctan(mag1 / mag2) / da.pi * 180, + axis=2 + ) + if flip_phi: + phi = da.angle(j2) - da.angle(j1) + else: + phi = da.angle(j1) - da.angle(j2) + phi += offset * 2 + # wrap into [-π, π] + phi = da.where(phi > da.pi, phi - 2 * da.pi, phi) + phi = da.where(phi < -da.pi, phi + 2 * da.pi, phi) + O3D = da.flip(phi / 2, axis=2) + O3D = da.rad2deg(O3D) + return dBI3D, R3D, O3D diff --git a/linc_convert/modalities/psoct/stitch.py b/linc_convert/modalities/psoct/stitch.py new file mode 100644 index 00000000..4180b058 --- /dev/null +++ b/linc_convert/modalities/psoct/stitch.py @@ -0,0 +1,166 @@ +from __future__ import annotations + +from collections import defaultdict +from dataclasses import dataclass +from typing import Dict, List, Optional, Sequence, Tuple, Union + +import dask.array as da +import numpy as np +from numpy.typing import ArrayLike + + +class TileInfo(dataclass): + x: int + y: int + image: da.Array + + +class MosaicInfo(dataclass): + tiles: List[TileInfo] + full_shape: Tuple[int, int, int] + blend_ramp: da.Array + chunk_size: Tuple[int, int] + circular_mean: bool + + +def _to_dask(arr: ArrayLike, chunks="auto") -> da.Array: + """Convert array-like to dask array.""" + if isinstance(arr, da.Array): + return arr + return da.from_array(np.asarray(arr), chunks=chunks) + + +def _normalize_overlap( + overlap: Union[int, Tuple[int, int]], +) -> Tuple[int, int]: + """Normalize overlap parameter to (row_overlap, col_overlap) tuple.""" + if isinstance(overlap, tuple): + if len(overlap) != 2: + raise ValueError("overlap tuple must be (row_overlap, col_overlap).") + row_overlap, col_overlap = overlap + else: + row_overlap = col_overlap = int(overlap) + + if row_overlap < 0 or col_overlap < 0: + raise ValueError("Overlap must be non-negative.") + return row_overlap, col_overlap + + +def _blending_ramp( + shape: tuple(int), + overlap: tuple(int), +) -> np.ndarray: + """ + Create a separable 2D blending ramp similar to build_slice(). + """ + wx = np.ones(shape[0], dtype=np.float32) + wy = np.ones(shape[1], dtype=np.float32) + if overlap[0] > 0: + wx[:overlap[0]] = np.linspace(0, 1, overlap[0], dtype=np.float32) + wx[-overlap[0]:] = np.linspace(1, 0, overlap[0], dtype=np.float32) + if overlap[1] > 0: + wy[:overlap[1]] = np.linspace(0, 1, overlap[1], dtype=np.float32) + wy[-overlap[1]:] = np.linspace(1, 0, overlap[1], dtype=np.float32) + return np.outer(wx, wy) + + +def _combine_block( + _, block_tiles, block_weights, circular_mean, *args, block_info=None, **kwargs + ): + chunk_id = tuple(block_info[None]['chunk-location'][:2]) + paints = block_tiles[chunk_id] + weights = block_weights[chunk_id] + shape = block_info[None]['chunk-shape'] + + if not paints: + return np.broadcast_to(np.zeros((), dtype=np.float32), shape) + + total_paint = da.sum(da.stack(paints, axis=0), axis=0) + total_weight = da.sum(da.stack(weights, axis=0), axis=0) + normalized = total_paint / np.broadcast_to(total_weight, total_paint.shape) + if not circular_mean: + return normalized + return da.rad2deg(da.arctan2(normalized[..., 1], normalized[..., 0])) / 2 + + +def stitch_tiles( + tile_infos, + full_shape, + blend_ramp, + chunk_size=None, + circular_mean=False, + **_ + ): + """ + Chunk‐aligned padding + per‐block summation (build_slice_chunked_padding). + """ + if not chunk_size: + chunk_size = tile_infos[0].image.shape[:2] + pw, ph = chunk_size + no_chunk_dim = full_shape[2:] + canvas = da.zeros(full_shape, + chunks=(pw, ph, *no_chunk_dim), + dtype=np.float32) + weight = da.zeros(full_shape[:2], + chunks=(pw, ph), + dtype=np.float32) + + # collect per‐chunk pieces + block_tiles = defaultdict(list) + block_weights = defaultdict(list) + + for tile_info in tile_infos: + x0, y0, t = tile_info.x, tile_info.y, tile_info.image + x0c = x0 // pw + y0c = y0 // ph + x1c = (x0 + pw - 1) // pw + y1c = (y0 + ph - 1) // ph + + # pad region covering those chunks + x_start = x0c * pw + y_start = y0c * ph + x_end = (x1c + 1) * pw + y_end = (y1c + 1) * ph + + if not circular_mean: + block_canvas = da.zeros((x_end - x_start, y_end - y_start, *no_chunk_dim), + chunks=(pw, ph, *no_chunk_dim), + dtype=np.float32) + else: + block_canvas = da.zeros( + (x_end - x_start, y_end - y_start, *no_chunk_dim, 2), + chunks=(pw, ph, *no_chunk_dim, 2), + dtype=np.float32) + + block_weight = da.zeros((x_end - x_start, y_end - y_start), + chunks=(pw, ph), + dtype=np.float32) + + # place tile into that big block + xs = slice(x0 - x_start, x0 - x_start + pw) + ys = slice(y0 - y_start, y0 - y_start + ph) + if not circular_mean: + block_canvas[xs, ys, ...] = t * blend_ramp + else: + rad = da.deg2rad(t) * 2 + block_canvas[xs, ys, ..., 0] = da.cos(rad) + block_canvas[xs, ys, ..., 1] = da.sin(rad) + + block_weight[xs, ys] = blend_ramp + + # chop into per‐chunk pieces + for cx in range(x0c, x1c + 1): + for cy in range(y0c, y1c + 1): + bid = (cx, cy) + sub_x = slice((cx - x0c) * pw, (cx - x0c + 1) * pw) + sub_y = slice((cy - y0c) * ph, (cy - y0c + 1) * ph) + block_tiles[bid].append(block_canvas[sub_x, sub_y, ...]) + block_weights[bid].append(block_weight[sub_x, sub_y]) + + canvas = da.map_blocks(_combine_block, canvas, block_tiles, block_weights, + circular_mean, + dtype=canvas.dtype, + chunks=(pw, ph, *no_chunk_dim)) + # crop canvas to get rid of excessive padded pixels + canvas = canvas[:full_shape[0], :full_shape[1], ...] + return canvas From 2b892a753b9655f28efdd2158ca1f94128bda8a2 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Thu, 4 Dec 2025 11:36:05 -0500 Subject: [PATCH 004/133] wip: oct stitching --- linc_convert/modalities/psoct/mosaic3d.py | 389 +++++++++++++++++++++- linc_convert/modalities/psoct/stitch.py | 10 +- 2 files changed, 388 insertions(+), 11 deletions(-) diff --git a/linc_convert/modalities/psoct/mosaic3d.py b/linc_convert/modalities/psoct/mosaic3d.py index b3a88abd..3334d507 100644 --- a/linc_convert/modalities/psoct/mosaic3d.py +++ b/linc_convert/modalities/psoct/mosaic3d.py @@ -1,22 +1,380 @@ -# given a file with tileinfo, create a mosaic3d, the input needs to be either complex -# data or volume itself, support focus offset +""" +This module includes components that are based on the +https://github.com/CarolineMagnain/OCTAnalysis repository (currently private). We +have permission from the owner to include the code here. +""" + +import logging +import os +import os.path as op +import warnings +from typing import Annotated, Literal + +import cyclopts +import dask.array as da +import nibabel as nib +import numpy as np +import yaml +from cyclopts import Parameter +from dask.diagnostics import ProgressBar + +from linc_convert.modalities.psoct.cli import psoct +from linc_convert.modalities.psoct.single_tile import process_complex3d +from linc_convert.modalities.psoct.stitch import TileInfo, stitch_tiles +from linc_convert.utils.io.matlab import as_arraywrapper +from linc_convert.utils.io.zarr import from_config +from linc_convert.utils.io.zarr.helpers import \ + _compute_zarr_layout as compute_zarr_layout +from linc_convert.utils.zarr_config import ( + GeneralConfig, + NiftiConfig, + ZarrConfig, + autoconfig, +) + +logger = logging.getLogger(__name__) + +mosaic3d = cyclopts.App(name="mosaic3d", help_format="markdown") +psoct.command(mosaic3d) + +# 3d data has pixdim incorrectly set and cause nibabel keep logging warning +nib.imageglobals.logger.setLevel(40) + + +def _load_tile_info_yaml(yaml_file: str) -> dict: + """Load tile information from YAML file.""" + with open(yaml_file, "r") as f: + return yaml.safe_load(f) + + +def _compute_blending_ramp( + tile_width: int, tile_height: int, x_coords: np.ndarray, y_coords: np.ndarray +) -> np.ndarray: + """ + Compute blending ramp for tile stitching. + + This computes overlap regions between tiles and creates a blending ramp. + """ + # Find minimum distances between tile centers to estimate overlap + if len(x_coords) == 0 or len(y_coords) == 0: + return np.ones((tile_height, tile_width), dtype=np.float32) + + # Estimate overlap from coordinate spacing + x_coords_flat = x_coords[~np.isnan(x_coords)] + y_coords_flat = y_coords[~np.isnan(y_coords)] + + if len(x_coords_flat) > 1: + x_spacing = np.min(np.diff(np.sort(np.unique(x_coords_flat)))) + x_overlap = max(0, tile_width - int(x_spacing)) if x_spacing < tile_width else 0 + else: + x_overlap = 0 + + if len(y_coords_flat) > 1: + y_spacing = np.min(np.diff(np.sort(np.unique(y_coords_flat)))) + y_overlap = max(0, + tile_height - int(y_spacing)) if y_spacing < tile_height else 0 + else: + y_overlap = 0 + + # Create blending ramp + wx = np.ones(tile_height, dtype=np.float32) + wy = np.ones(tile_width, dtype=np.float32) + + if x_overlap > 0: + wx[:x_overlap] = np.linspace(0, 1, x_overlap, dtype=np.float32) + wx[-x_overlap:] = np.linspace(1, 0, x_overlap, dtype=np.float32) + + if y_overlap > 0: + wy[:y_overlap] = np.linspace(0, 1, y_overlap, dtype=np.float32) + wy[-y_overlap:] = np.linspace(1, 0, y_overlap, dtype=np.float32) + + return np.outer(wx, wy) + + +def _load_complex_tile(file_path: str, key: str = None) -> da.Array: + """Load complex 3D data from a mat file.""" + wrapper = as_arraywrapper(file_path, key) + if not hasattr(wrapper, "dtype"): + raise ValueError(f"Could not load array from {file_path}") + data = wrapper[:] + return da.from_array(data, chunks="auto") + + +def _shift_focus( + tile: da.Array, focus_plane: np.ndarray, s_max: int +) -> da.Array: + """Shift tile depth based on focus plane.""" + + # This function will be applied per block using map_blocks + def shift_block(block, block_info=None): + if block_info is None: + return block + # Get the spatial coordinates for this block + # For simplicity, we'll shift the entire tile + # pad the sources at the END so indices up to Nz-1 are valid + pad_width = ((0, 0), (0, 0), (s_max, s_max)) + block_padded = np.pad( + block, pad_width, mode="constant", constant_values=np.nan + ) + # build indices for the expanded depth + z = np.arange(block.shape[-1] - s_max, dtype=np.int32)[None, None, :] + # Use a subset of focus_plane corresponding to this block + # For now, use the full focus_plane (assuming it matches tile spatial + # dimensions) + idx = z + focus_plane[..., None] + result = np.take_along_axis(block_padded, idx, axis=2) + return result + + # Apply shift using map_blocks + result_shape = (tile.shape[0], tile.shape[1], tile.shape[2] + s_max) + return tile.map_blocks(shift_block, dtype=tile.dtype, chunks=result_shape) -@autoconfig @mosaic3d.default +@autoconfig def mosaic3d( tile_info_file: str, *, dbi_output: Annotated[str, Parameter(name=["--dBI", "-d"])], o3d_output: Annotated[str, Parameter(name=["--O3D", "-o"])], r3d_output: Annotated[str, Parameter(name=["--R3D", "-r"])], + focus_plane: str = None, zarr_config: ZarrConfig = None, general_config: GeneralConfig = None, nifti_config: NiftiConfig = None, ) -> None: - # load tile info - # load - pass + """ + Create 3D mosaic from tile information in YAML file. + + Parameters + ---------- + tile_info_file : str + Path to YAML file containing tile information. + dbi_output : str + Output path for dBI volume. + o3d_output : str + Output path for O3D volume. + r3d_output : str + Output path for R3D volume. + focus_plane : str, optional + Path to focus plane NIfTI file for depth shifting. + zarr_config : ZarrConfig, optional + Zarr configuration. + general_config : GeneralConfig, optional + General configuration. + nifti_config : NiftiConfig, optional + NIfTI configuration. + """ + logger.info("Started mosaic3d") + + # Load tile information from YAML + tile_info = _load_tile_info_yaml(tile_info_file) + + # Extract configuration from YAML + tiles_config = tile_info.get("tiles", []) + if not tiles_config: + raise ValueError("No tiles found in YAML file") + + # Get metadata + metadata = tile_info.get("metadata", {}) + tile_width = metadata.get("tile_width") + tile_height = metadata.get("tile_height") + depth = metadata.get("depth") + scan_resolution = metadata.get("scan_resolution", [1.0, 1.0, 1.0]) + flip_z = metadata.get("flip_z", True) + clip_x = metadata.get("clip_x", 0) + clip_y = metadata.get("clip_y", 0) + raw_tile_width = metadata.get("raw_tile_width") + file_key = metadata.get("file_key") # Key for mat file array + + if tile_width is None or tile_height is None or depth is None: + raise ValueError( + "tile_width, tile_height, and depth must be specified in metadata") + + # Load focus plane if provided + focus_plane_data = None + if focus_plane is not None: + focus_plane_data = nib.load(focus_plane).get_fdata().astype(np.uint16) + min_focus = np.min(focus_plane_data) + max_focus = np.max(focus_plane_data) + depth_increase = max_focus - min_focus + focus_plane_data = focus_plane_data - min_focus + depth += depth_increase + + # Collect tile coordinates and file paths + x_coords_list = [] + y_coords_list = [] + tile_files = [] + + for tile in tiles_config: + x = tile.get("x") + y = tile.get("y") + file_path = tile.get("file_path") + if x is None or y is None or file_path is None: + logger.warning(f"Skipping incomplete tile: {tile}") + continue + x_coords_list.append(x) + y_coords_list.append(y) + tile_files.append(file_path) + + if not tile_files: + raise ValueError("No valid tiles found in YAML file") + + x_coords = np.array(x_coords_list) + y_coords = np.array(y_coords_list) + + # Compute full mosaic dimensions + full_width = int(np.nanmax(x_coords) + tile_width) + full_height = int(np.nanmax(y_coords) + tile_height) + + # Compute blending ramp + blend_ramp = _compute_blending_ramp(tile_width, tile_height, x_coords, y_coords) + + # Compute zarr layout + chunk, shard = compute_zarr_layout((depth, full_height, full_width), np.float32, + zarr_config) + + # Process each tile and collect results + dbi_tiles = [] + r3d_tiles = [] + o3d_tiles = [] + coords = [] + + logger.info(f"Loading and processing {len(tile_files)} tiles") + for i, (x0, y0, file_path) in enumerate(zip(x_coords, y_coords, tile_files)): + if not op.exists(file_path): + logger.warning(f"Tile file not found: {file_path}, skipping") + continue + + logger.info(f"Processing tile {i + 1}/{len(tile_files)}: {file_path}") + + # Load complex 3D data + try: + complex3d = _load_complex_tile(file_path, file_key) + except Exception as e: + logger.warning(f"Failed to load {file_path}: {e}, skipping") + continue + + # Validate shape + if raw_tile_width and complex3d.shape[0] > 4 * raw_tile_width: + warnings.warn( + f"Complex3D shape {complex3d.shape} is larger than expected " + f"{4 * raw_tile_width}. Trimming to 4*raw_tile_width." + ) + complex3d = complex3d[: 4 * raw_tile_width, :, :] + elif raw_tile_width and complex3d.shape[0] < 4 * raw_tile_width: + raise ValueError( + f"Complex3D shape {complex3d.shape} is smaller than expected " + f"{4 * raw_tile_width}. Check the input file." + ) + + # Process complex data to get dBI, R3D, O3D + dBI3D, R3D, O3D = process_complex3d(complex3d, offset=100, flip_phi=False) + + # Handle focus plane shifting + if focus_plane_data is not None: + s_max = int(np.max(focus_plane_data)) + dBI3D = _shift_focus(dBI3D, focus_plane_data, s_max) + R3D = _shift_focus(R3D, focus_plane_data, s_max) + O3D = _shift_focus(O3D, focus_plane_data, s_max) + + # Apply transformations + if flip_z: + dBI3D = da.flip(dBI3D, axis=2) + R3D = da.flip(R3D, axis=2) + O3D = da.flip(O3D, axis=2) + + # Clip and apply blending ramp + results = da.stack([dBI3D, R3D, O3D], axis=3) + results = results[clip_x:, clip_y:, :, :] * blend_ramp[:, :, None, None] + + dbi_tiles.append(results[:, :, :, 0]) + r3d_tiles.append(results[:, :, :, 1]) + o3d_tiles.append(results[:, :, :, 2]) + coords.append((int(x0), int(y0))) + + if not coords: + raise ValueError("No valid tiles were processed") + + # Stitch tiles for each modality + logger.info("Stitching tiles") + tile_size = (tile_width, tile_height) + + dBI_result = stitch_tiles( + [TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, dbi_tiles)], + full_shape=(full_width, full_height, depth), + blend_ramp=blend_ramp, + chunk_size=tile_size, + circular_mean=False, + ) + + R3D_result = stitch_tiles( + [TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, r3d_tiles)], + full_shape=(full_width, full_height, depth), + blend_ramp=blend_ramp, + chunk_size=tile_size, + circular_mean=False, + ) + + O3D_result = stitch_tiles( + [TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, o3d_tiles)], + full_shape=(full_width, full_height, depth), + blend_ramp=blend_ramp, + chunk_size=tile_size, + circular_mean=False, + ) + + # Transpose to (z, y, x) for output + dBI_result = dBI_result.transpose(2, 1, 0) + R3D_result = R3D_result.transpose(2, 1, 0) + O3D_result = O3D_result.transpose(2, 1, 0) + + # Prepare outputs + writers = [] + results = [] + zgroups = [] + + for out, res in zip([dbi_output, r3d_output, o3d_output], + [dBI_result, R3D_result, O3D_result]): + if shard: + res = da.rechunk(res, chunks=shard) + else: + res = da.rechunk(res, chunks=chunk) + + zarr_config.out = out + zgroup = from_config(zarr_config) + zgroups.append(zgroup) + + writer = zgroup.create_array("0", shape=res.shape, dtype=np.float32, + zarr_config=zarr_config) + writers.append(writer) + results.append(res) + + # Store results + task = da.store(results, writers, compute=False) + with ProgressBar(): + task.compute() + + scan_resolution = scan_resolution[:3][::-1] # Reverse to (z, y, x) + logger.info("Finished stitching, generating pyramid and metadata") + + for zgroup in zgroups: + zgroup.generate_pyramid() + zgroup.write_ome_metadata(["z", "y", "x"], space_scale=scan_resolution, + space_unit="millimeter") + + if not zarr_config.nii: + continue + + from niizarr import default_nifti_header + + nii_header = default_nifti_header( + zgroup["0"], zgroup._get_zarr_python_group().attrs["multiscales"] + ) + nii_header.set_xyzt_units("mm") + zgroup.write_nifti_header(nii_header) + + logger.info("Finished generating pyramid") def mosaic3d_vol( @@ -28,6 +386,24 @@ def mosaic3d_vol( nifti_config: NiftiConfig = None, zarr_config: ZarrConfig = None, ) -> None: + """ + Create 3D mosaic from pre-processed volume tiles. + + Parameters + ---------- + tile_info_file : str + Path to YAML file containing tile information. + tile_overlap : float | Literal["auto"] + Tile overlap in pixels. If "auto", compute from tile coordinates. + circular_mean : bool + Whether to use circular mean for blending. + general_config : GeneralConfig, optional + General configuration. + nifti_config : NiftiConfig, optional + NIfTI configuration. + zarr_config : ZarrConfig, optional + Zarr configuration. + """ # load tile info # normalize tile_overlap, if auto, find the max overlap of all tiles, if float number, use as percentile of the tile size @@ -35,4 +411,3 @@ def mosaic3d_vol( # mosaic volume # save mosaic volume pass - diff --git a/linc_convert/modalities/psoct/stitch.py b/linc_convert/modalities/psoct/stitch.py index 4180b058..f04afbad 100644 --- a/linc_convert/modalities/psoct/stitch.py +++ b/linc_convert/modalities/psoct/stitch.py @@ -9,13 +9,15 @@ from numpy.typing import ArrayLike -class TileInfo(dataclass): +@dataclass +class TileInfo: x: int y: int image: da.Array -class MosaicInfo(dataclass): +@dataclass +class MosaicInfo: tiles: List[TileInfo] full_shape: Tuple[int, int, int] blend_ramp: da.Array @@ -47,8 +49,8 @@ def _normalize_overlap( def _blending_ramp( - shape: tuple(int), - overlap: tuple(int), + shape: Tuple[int, int], + overlap: Tuple[int, int], ) -> np.ndarray: """ Create a separable 2D blending ramp similar to build_slice(). From e99222299ada4da801b2974dba2dc2e794129a48 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Thu, 4 Dec 2025 11:36:12 -0500 Subject: [PATCH 005/133] wip: oct stitching --- linc_convert/modalities/psoct/mosaic2d.py | 357 ++++++++++++++++++++++ 1 file changed, 357 insertions(+) create mode 100644 linc_convert/modalities/psoct/mosaic2d.py diff --git a/linc_convert/modalities/psoct/mosaic2d.py b/linc_convert/modalities/psoct/mosaic2d.py new file mode 100644 index 00000000..2c04f4c7 --- /dev/null +++ b/linc_convert/modalities/psoct/mosaic2d.py @@ -0,0 +1,357 @@ +""" +Create 2D mosaic from tile information in YAML file. +""" + +import logging +import os +import os.path as op +from typing import Annotated, Literal, Optional + +import cyclopts +import dask.array as da +import nibabel as nib +import numpy as np +import yaml +from cyclopts import Parameter +from dask.diagnostics import ProgressBar +from PIL import Image + +from linc_convert.modalities.psoct.cli import psoct +from linc_convert.modalities.psoct.stitch import TileInfo, stitch_tiles +from linc_convert.utils.io.matlab import as_arraywrapper +from linc_convert.utils.io.zarr import from_config +from linc_convert.utils.io.zarr.helpers import \ + _compute_zarr_layout as compute_zarr_layout +from linc_convert.utils.nifti_header import build_nifti_header +from linc_convert.utils.unit import to_ome_unit +from linc_convert.utils.zarr_config import ( + GeneralConfig, + NiftiConfig, + ZarrConfig, + autoconfig, +) + +logger = logging.getLogger(__name__) + +mosaic2d = cyclopts.App(name="mosaic2d", help_format="markdown") +psoct.command(mosaic2d) + + +def _load_tile_info_yaml(yaml_file: str) -> dict: + """Load tile information from YAML file.""" + with open(yaml_file, "r") as f: + return yaml.safe_load(f) + + +def _compute_blending_ramp_2d( + tile_width: int, tile_height: int, x_coords: np.ndarray, y_coords: np.ndarray +) -> np.ndarray: + """ + Compute blending ramp for 2D tile stitching. + + This computes overlap regions between tiles and creates a blending ramp. + """ + # Find minimum distances between tile centers to estimate overlap + if len(x_coords) == 0 or len(y_coords) == 0: + return np.ones((tile_height, tile_width), dtype=np.float32) + + # Estimate overlap from coordinate spacing + x_coords_flat = x_coords[~np.isnan(x_coords)] + y_coords_flat = y_coords[~np.isnan(y_coords)] + + if len(x_coords_flat) > 1: + x_spacing = np.min(np.diff(np.sort(np.unique(x_coords_flat)))) + x_overlap = max(0, tile_width - int(x_spacing)) if x_spacing < tile_width else 0 + else: + x_overlap = 0 + + if len(y_coords_flat) > 1: + y_spacing = np.min(np.diff(np.sort(np.unique(y_coords_flat)))) + y_overlap = max(0, + tile_height - int(y_spacing)) if y_spacing < tile_height else 0 + else: + y_overlap = 0 + + # Create blending ramp + wx = np.ones(tile_height, dtype=np.float32) + wy = np.ones(tile_width, dtype=np.float32) + + if x_overlap > 0: + wx[:x_overlap] = np.linspace(0, 1, x_overlap, dtype=np.float32) + wx[-x_overlap:] = np.linspace(1, 0, x_overlap, dtype=np.float32) + + if y_overlap > 0: + wy[:y_overlap] = np.linspace(0, 1, y_overlap, dtype=np.float32) + wy[-y_overlap:] = np.linspace(1, 0, y_overlap, dtype=np.float32) + + return np.outer(wx, wy) + + +def _load_image_tile(file_path: str, key: str = None) -> da.Array: + """Load 2D image from a file (NIfTI or mat).""" + if file_path.endswith(('.nii', '.nii.gz')): + img = nib.load(file_path) + data = img.get_fdata() + # If 3D, take middle slice or first slice + if data.ndim == 3: + data = data[:, :, data.shape[2] // 2] + elif data.ndim > 3: + # Take first 2D slice + data = data.reshape(data.shape[0], data.shape[1], -1)[:, :, 0] + return da.from_array(data, chunks="auto") + else: + # Assume mat file + wrapper = as_arraywrapper(file_path, key) + if not hasattr(wrapper, "dtype"): + raise ValueError(f"Could not load array from {file_path}") + data = wrapper[:] + # Handle 3D data - take middle slice + if data.ndim == 3: + data = data[:, :, data.shape[2] // 2] + elif data.ndim > 3: + data = data.reshape(data.shape[0], data.shape[1], -1)[:, :, 0] + return da.from_array(data, chunks="auto") + + +def _save_jpeg(image: np.ndarray, output_path: str, quality: int = 95): + """Save image as JPEG.""" + # Normalize to 0-255 range + img_min = np.nanmin(image) + img_max = np.nanmax(image) + if img_max > img_min: + normalized = ((image - img_min) / (img_max - img_min) * 255).astype(np.uint8) + else: + normalized = np.zeros_like(image, dtype=np.uint8) + + # Convert to PIL Image and save + pil_image = Image.fromarray(normalized) + pil_image.save(output_path, "JPEG", quality=quality) + + +def _save_tiff(image: np.ndarray, output_path: str): + """Save image as TIFF.""" + try: + import tifffile + + tifffile.imwrite(output_path, image.astype(np.float32)) + except ImportError: + # Fallback to PIL if tifffile not available + img_min = np.nanmin(image) + img_max = np.nanmax(image) + if img_max > img_min: + normalized = ((image - img_min) / (img_max - img_min) * 65535).astype( + np.uint16) + else: + normalized = np.zeros_like(image, dtype=np.uint16) + pil_image = Image.fromarray(normalized) + pil_image.save(output_path, "TIFF") + + +@mosaic2d.default +@autoconfig +def mosaic2d( + tile_info_file: str, + *, + jpeg_output: Annotated[Optional[str], Parameter(name=["--jpeg", "-j"])] = None, + tiff_output: Annotated[Optional[str], Parameter(name=["--tiff", "-t"])] = None, + tile_overlap: float | Literal["auto"] = "auto", + circular_mean: bool = False, + zarr_config: ZarrConfig = None, + general_config: GeneralConfig = None, + nifti_config: NiftiConfig = None, +) -> None: + """ + Create 2D mosaic from tile information in YAML file. + + Parameters + ---------- + tile_info_file : str + Path to YAML file containing tile information. + jpeg_output : str, optional + Path to save JPEG preview image. + tiff_output : str, optional + Path to save TIFF image. + tile_overlap : float | Literal["auto"] + Tile overlap in pixels. If "auto", compute from tile coordinates. + circular_mean : bool + Whether to use circular mean for blending. + zarr_config : ZarrConfig, optional + Zarr configuration. + general_config : GeneralConfig, optional + General configuration. + nifti_config : NiftiConfig, optional + NIfTI configuration. + """ + logger.info("Started mosaic2d") + + # Load tile information from YAML + tile_info = _load_tile_info_yaml(tile_info_file) + + # Extract configuration from YAML + tiles_config = tile_info.get("tiles", []) + if not tiles_config: + raise ValueError("No tiles found in YAML file") + + # Get metadata + metadata = tile_info.get("metadata", {}) + tile_width = metadata.get("tile_width") + tile_height = metadata.get("tile_height") + scan_resolution = metadata.get("scan_resolution", [1.0, 1.0]) + file_key = metadata.get("file_key") # Key for mat file array + + if tile_width is None or tile_height is None: + raise ValueError("tile_width and tile_height must be specified in metadata") + + # Collect tile coordinates and file paths + x_coords_list = [] + y_coords_list = [] + tile_files = [] + + for tile in tiles_config: + x = tile.get("x") + y = tile.get("y") + file_path = tile.get("file_path") + if x is None or y is None or file_path is None: + logger.warning(f"Skipping incomplete tile: {tile}") + continue + x_coords_list.append(x) + y_coords_list.append(y) + tile_files.append(file_path) + + if not tile_files: + raise ValueError("No valid tiles found in YAML file") + + x_coords = np.array(x_coords_list) + y_coords = np.array(y_coords_list) + + # Compute full mosaic dimensions + full_width = int(np.nanmax(x_coords) + tile_width) + full_height = int(np.nanmax(y_coords) + tile_height) + + # Compute blending ramp + blend_ramp = _compute_blending_ramp_2d(tile_width, tile_height, x_coords, y_coords) + + # Process each tile and collect results + tiles = [] + coords = [] + + logger.info(f"Loading and processing {len(tile_files)} tiles") + for i, (x0, y0, file_path) in enumerate(zip(x_coords, y_coords, tile_files)): + if not op.exists(file_path): + logger.warning(f"Tile file not found: {file_path}, skipping") + continue + + logger.info(f"Processing tile {i + 1}/{len(tile_files)}: {file_path}") + + # Load 2D image + try: + image = _load_image_tile(file_path, file_key) + except Exception as e: + logger.warning(f"Failed to load {file_path}: {e}, skipping") + continue + + # Ensure 2D + if image.ndim != 2: + if image.ndim == 3 and image.shape[2] == 1: + image = image[:, :, 0] + else: + logger.warning(f"Image {file_path} is not 2D, skipping") + continue + + # Apply blending ramp if tile matches expected size + if image.shape[0] == tile_height and image.shape[1] == tile_width: + image = image * blend_ramp + elif image.shape[0] >= tile_height and image.shape[1] >= tile_width: + # Crop to expected size + image = image[:tile_height, :tile_width] * blend_ramp + else: + logger.warning( + f"Tile {file_path} has unexpected size {image.shape}, " + f"expected ({tile_height}, {tile_width})" + ) + continue + + tiles.append(image) + coords.append((int(x0), int(y0))) + + if not coords: + raise ValueError("No valid tiles were processed") + + # Stitch tiles + logger.info("Stitching tiles") + tile_size = (tile_width, tile_height) + + # For 2D, stitch_tiles expects (width, height) format + # Pass as (width, height) - the function handles 2D by having no_chunk_dim be empty + result = stitch_tiles( + [TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, tiles)], + full_shape=(full_width, full_height), # (width, height) for 2D + blend_ramp=blend_ramp, + chunk_size=tile_size, + circular_mean=circular_mean, + ) + + # Compute the result + result = result.compute() + + # Set default output name if not provided + general_config.set_default_name(op.splitext(op.basename(tile_info_file))[0]) + + # Save to Zarr + out = general_config.out + logger.info(f"Saving to Zarr: {out}") + + # Result is (width, height), but Zarr expects (height, width) for 2D + # Transpose to get (height, width) + result_2d = result.T + + # Compute zarr layout for 2D + chunk, shard = compute_zarr_layout((full_height, full_width), np.float32, + zarr_config) + + zarr_config.out = out + zgroup = from_config(zarr_config) + + if shard: + result_dask = da.rechunk(da.from_array(result_2d, chunks=chunk), chunks=shard) + else: + result_dask = da.rechunk(da.from_array(result_2d, chunks=chunk), chunks=chunk) + + writer = zgroup.create_array("0", shape=result_2d.shape, dtype=np.float32, + zarr_config=zarr_config) + + task = da.store(result_dask, writer, compute=False) + with ProgressBar(): + task.compute() + + # Generate pyramid and metadata + logger.info("Generating pyramid and metadata") + zgroup.generate_pyramid() + + scan_resolution_2d = scan_resolution[:2] if len(scan_resolution) >= 2 else [1.0, + 1.0] + zgroup.write_ome_metadata(["y", "x"], space_scale=scan_resolution_2d, + space_unit="millimeter") + + if nifti_config and nifti_config.nii: + from niizarr import default_nifti_header + + nii_header = default_nifti_header( + zgroup["0"], zgroup._get_zarr_python_group().attrs["multiscales"] + ) + nii_header.set_xyzt_units("mm") + zgroup.write_nifti_header(nii_header) + + logger.info("Finished generating pyramid") + + # Save JPEG if requested + if jpeg_output: + logger.info(f"Saving JPEG preview: {jpeg_output}") + _save_jpeg(result_2d, jpeg_output) + + # Save TIFF if requested + if tiff_output: + logger.info(f"Saving TIFF: {tiff_output}") + _save_tiff(result_2d, tiff_output) + + logger.info("Finished mosaic2d") From 4afb6ea8c1a6ac67360de37bcfbaf288d4be9c68 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Thu, 4 Dec 2025 12:01:16 -0500 Subject: [PATCH 006/133] wip: oct stitching --- linc_convert/modalities/psoct/mosaic2d.py | 87 +++++-------------- linc_convert/modalities/psoct/mosaic3d.py | 100 ++++++++-------------- 2 files changed, 56 insertions(+), 131 deletions(-) diff --git a/linc_convert/modalities/psoct/mosaic2d.py b/linc_convert/modalities/psoct/mosaic2d.py index 2c04f4c7..b3bd4481 100644 --- a/linc_convert/modalities/psoct/mosaic2d.py +++ b/linc_convert/modalities/psoct/mosaic2d.py @@ -17,7 +17,7 @@ from PIL import Image from linc_convert.modalities.psoct.cli import psoct -from linc_convert.modalities.psoct.stitch import TileInfo, stitch_tiles +from linc_convert.modalities.psoct.stitch import MosaicInfo, TileInfo from linc_convert.utils.io.matlab import as_arraywrapper from linc_convert.utils.io.zarr import from_config from linc_convert.utils.io.zarr.helpers import \ @@ -43,50 +43,6 @@ def _load_tile_info_yaml(yaml_file: str) -> dict: return yaml.safe_load(f) -def _compute_blending_ramp_2d( - tile_width: int, tile_height: int, x_coords: np.ndarray, y_coords: np.ndarray -) -> np.ndarray: - """ - Compute blending ramp for 2D tile stitching. - - This computes overlap regions between tiles and creates a blending ramp. - """ - # Find minimum distances between tile centers to estimate overlap - if len(x_coords) == 0 or len(y_coords) == 0: - return np.ones((tile_height, tile_width), dtype=np.float32) - - # Estimate overlap from coordinate spacing - x_coords_flat = x_coords[~np.isnan(x_coords)] - y_coords_flat = y_coords[~np.isnan(y_coords)] - - if len(x_coords_flat) > 1: - x_spacing = np.min(np.diff(np.sort(np.unique(x_coords_flat)))) - x_overlap = max(0, tile_width - int(x_spacing)) if x_spacing < tile_width else 0 - else: - x_overlap = 0 - - if len(y_coords_flat) > 1: - y_spacing = np.min(np.diff(np.sort(np.unique(y_coords_flat)))) - y_overlap = max(0, - tile_height - int(y_spacing)) if y_spacing < tile_height else 0 - else: - y_overlap = 0 - - # Create blending ramp - wx = np.ones(tile_height, dtype=np.float32) - wy = np.ones(tile_width, dtype=np.float32) - - if x_overlap > 0: - wx[:x_overlap] = np.linspace(0, 1, x_overlap, dtype=np.float32) - wx[-x_overlap:] = np.linspace(1, 0, x_overlap, dtype=np.float32) - - if y_overlap > 0: - wy[:y_overlap] = np.linspace(0, 1, y_overlap, dtype=np.float32) - wy[-y_overlap:] = np.linspace(1, 0, y_overlap, dtype=np.float32) - - return np.outer(wx, wy) - - def _load_image_tile(file_path: str, key: str = None) -> da.Array: """Load 2D image from a file (NIfTI or mat).""" if file_path.endswith(('.nii', '.nii.gz')): @@ -224,13 +180,10 @@ def mosaic2d( x_coords = np.array(x_coords_list) y_coords = np.array(y_coords_list) - # Compute full mosaic dimensions + # Compute full mosaic dimensions (will be used by MosaicInfo) full_width = int(np.nanmax(x_coords) + tile_width) full_height = int(np.nanmax(y_coords) + tile_height) - # Compute blending ramp - blend_ramp = _compute_blending_ramp_2d(tile_width, tile_height, x_coords, y_coords) - # Process each tile and collect results tiles = [] coords = [] @@ -258,16 +211,15 @@ def mosaic2d( logger.warning(f"Image {file_path} is not 2D, skipping") continue - # Apply blending ramp if tile matches expected size - if image.shape[0] == tile_height and image.shape[1] == tile_width: - image = image * blend_ramp - elif image.shape[0] >= tile_height and image.shape[1] >= tile_width: - # Crop to expected size - image = image[:tile_height, :tile_width] * blend_ramp + # Validate and crop tile to expected size + if image.shape[0] >= tile_height and image.shape[1] >= tile_width: + # Crop to expected size if needed + if image.shape[0] != tile_height or image.shape[1] != tile_width: + image = image[:tile_height, :tile_width] else: logger.warning( f"Tile {file_path} has unexpected size {image.shape}, " - f"expected ({tile_height}, {tile_width})" + f"expected at least ({tile_height}, {tile_width})" ) continue @@ -277,20 +229,25 @@ def mosaic2d( if not coords: raise ValueError("No valid tiles were processed") - # Stitch tiles + # Stitch tiles using MosaicInfo logger.info("Stitching tiles") tile_size = (tile_width, tile_height) - - # For 2D, stitch_tiles expects (width, height) format - # Pass as (width, height) - the function handles 2D by having no_chunk_dim be empty - result = stitch_tiles( - [TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, tiles)], - full_shape=(full_width, full_height), # (width, height) for 2D - blend_ramp=blend_ramp, + + # Create MosaicInfo for 2D mosaic + mosaic = MosaicInfo.from_tiles_and_coords( + tiles=[TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, tiles)], + tile_width=tile_width, + tile_height=tile_height, + x_coords=x_coords, + y_coords=y_coords, + depth=None, # 2D mosaic chunk_size=tile_size, circular_mean=circular_mean, ) - + + # Stitch using lazy dask operations + result = mosaic.stitch() + # Compute the result result = result.compute() diff --git a/linc_convert/modalities/psoct/mosaic3d.py b/linc_convert/modalities/psoct/mosaic3d.py index 3334d507..bc10ec90 100644 --- a/linc_convert/modalities/psoct/mosaic3d.py +++ b/linc_convert/modalities/psoct/mosaic3d.py @@ -20,7 +20,7 @@ from linc_convert.modalities.psoct.cli import psoct from linc_convert.modalities.psoct.single_tile import process_complex3d -from linc_convert.modalities.psoct.stitch import TileInfo, stitch_tiles +from linc_convert.modalities.psoct.stitch import MosaicInfo, TileInfo from linc_convert.utils.io.matlab import as_arraywrapper from linc_convert.utils.io.zarr import from_config from linc_convert.utils.io.zarr.helpers import \ @@ -47,50 +47,6 @@ def _load_tile_info_yaml(yaml_file: str) -> dict: return yaml.safe_load(f) -def _compute_blending_ramp( - tile_width: int, tile_height: int, x_coords: np.ndarray, y_coords: np.ndarray -) -> np.ndarray: - """ - Compute blending ramp for tile stitching. - - This computes overlap regions between tiles and creates a blending ramp. - """ - # Find minimum distances between tile centers to estimate overlap - if len(x_coords) == 0 or len(y_coords) == 0: - return np.ones((tile_height, tile_width), dtype=np.float32) - - # Estimate overlap from coordinate spacing - x_coords_flat = x_coords[~np.isnan(x_coords)] - y_coords_flat = y_coords[~np.isnan(y_coords)] - - if len(x_coords_flat) > 1: - x_spacing = np.min(np.diff(np.sort(np.unique(x_coords_flat)))) - x_overlap = max(0, tile_width - int(x_spacing)) if x_spacing < tile_width else 0 - else: - x_overlap = 0 - - if len(y_coords_flat) > 1: - y_spacing = np.min(np.diff(np.sort(np.unique(y_coords_flat)))) - y_overlap = max(0, - tile_height - int(y_spacing)) if y_spacing < tile_height else 0 - else: - y_overlap = 0 - - # Create blending ramp - wx = np.ones(tile_height, dtype=np.float32) - wy = np.ones(tile_width, dtype=np.float32) - - if x_overlap > 0: - wx[:x_overlap] = np.linspace(0, 1, x_overlap, dtype=np.float32) - wx[-x_overlap:] = np.linspace(1, 0, x_overlap, dtype=np.float32) - - if y_overlap > 0: - wy[:y_overlap] = np.linspace(0, 1, y_overlap, dtype=np.float32) - wy[-y_overlap:] = np.linspace(1, 0, y_overlap, dtype=np.float32) - - return np.outer(wx, wy) - - def _load_complex_tile(file_path: str, key: str = None) -> da.Array: """Load complex 3D data from a mat file.""" wrapper = as_arraywrapper(file_path, key) @@ -227,9 +183,6 @@ def mosaic3d( full_width = int(np.nanmax(x_coords) + tile_width) full_height = int(np.nanmax(y_coords) + tile_height) - # Compute blending ramp - blend_ramp = _compute_blending_ramp(tile_width, tile_height, x_coords, y_coords) - # Compute zarr layout chunk, shard = compute_zarr_layout((depth, full_height, full_width), np.float32, zarr_config) @@ -284,9 +237,9 @@ def mosaic3d( R3D = da.flip(R3D, axis=2) O3D = da.flip(O3D, axis=2) - # Clip and apply blending ramp + # Clip tiles results = da.stack([dBI3D, R3D, O3D], axis=3) - results = results[clip_x:, clip_y:, :, :] * blend_ramp[:, :, None, None] + results = results[clip_x:, clip_y:, :, :] dbi_tiles.append(results[:, :, :, 0]) r3d_tiles.append(results[:, :, :, 1]) @@ -296,33 +249,48 @@ def mosaic3d( if not coords: raise ValueError("No valid tiles were processed") - # Stitch tiles for each modality + # Stitch tiles for each modality using MosaicInfo logger.info("Stitching tiles") tile_size = (tile_width, tile_height) - - dBI_result = stitch_tiles( - [TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, dbi_tiles)], - full_shape=(full_width, full_height, depth), - blend_ramp=blend_ramp, + + # Create MosaicInfo for each modality + dbi_mosaic = MosaicInfo.from_tiles_and_coords( + tiles=[TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, dbi_tiles)], + tile_width=tile_width, + tile_height=tile_height, + x_coords=x_coords, + y_coords=y_coords, + depth=depth, chunk_size=tile_size, circular_mean=False, ) - - R3D_result = stitch_tiles( - [TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, r3d_tiles)], - full_shape=(full_width, full_height, depth), - blend_ramp=blend_ramp, + + r3d_mosaic = MosaicInfo.from_tiles_and_coords( + tiles=[TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, r3d_tiles)], + tile_width=tile_width, + tile_height=tile_height, + x_coords=x_coords, + y_coords=y_coords, + depth=depth, chunk_size=tile_size, circular_mean=False, ) - - O3D_result = stitch_tiles( - [TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, o3d_tiles)], - full_shape=(full_width, full_height, depth), - blend_ramp=blend_ramp, + + o3d_mosaic = MosaicInfo.from_tiles_and_coords( + tiles=[TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, o3d_tiles)], + tile_width=tile_width, + tile_height=tile_height, + x_coords=x_coords, + y_coords=y_coords, + depth=depth, chunk_size=tile_size, circular_mean=False, ) + + # Stitch using lazy dask operations + dBI_result = dbi_mosaic.stitch() + R3D_result = r3d_mosaic.stitch() + O3D_result = o3d_mosaic.stitch() # Transpose to (z, y, x) for output dBI_result = dBI_result.transpose(2, 1, 0) From 28a4fec099061b08361e9b6249039015490919ba Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Thu, 4 Dec 2025 12:18:29 -0500 Subject: [PATCH 007/133] wip: psoct stitching --- linc_convert/modalities/psoct/mosaic2d.py | 140 +++++- linc_convert/modalities/psoct/mosaic3d.py | 6 + linc_convert/modalities/psoct/stitch.py | 493 ++++++++++++++++------ 3 files changed, 494 insertions(+), 145 deletions(-) diff --git a/linc_convert/modalities/psoct/mosaic2d.py b/linc_convert/modalities/psoct/mosaic2d.py index b3bd4481..bf0f7471 100644 --- a/linc_convert/modalities/psoct/mosaic2d.py +++ b/linc_convert/modalities/psoct/mosaic2d.py @@ -44,29 +44,116 @@ def _load_tile_info_yaml(yaml_file: str) -> dict: def _load_image_tile(file_path: str, key: str = None) -> da.Array: - """Load 2D image from a file (NIfTI or mat).""" + """ + Load 2D image from a file with lazy loading support. + + Supports: + - .mat files (MATLAB) + - Zarr archives (groups or arrays) + - NIfTI files (with mmap for lazy loading) + - Other formats via dask-image + """ + import os.path as op + + # Check for .mat files + if file_path.endswith('.mat'): + wrapper = as_arraywrapper(file_path, key) + if not hasattr(wrapper, "dtype"): + raise ValueError(f"Could not load array from {file_path}") + data = wrapper + # Handle 3D data - take middle slice + if data.ndim == 3: + data = data[:, :, data.shape[2] // 2] + elif data.ndim > 3: + data = data.reshape(data.shape[0], data.shape[1], -1)[:, :, 0] + return da.from_array(data, chunks="auto") + + # Check for zarr archives + # Check if path looks like zarr (directory with zarr metadata files) + is_zarr = False + if op.isdir(file_path): + # Check for zarr v3 (zarr.json) or v2 (.zgroup or .zarray) + if op.exists(op.join(file_path, 'zarr.json')) or \ + op.exists(op.join(file_path, '.zgroup')) or \ + op.exists(op.join(file_path, '.zarray')): + is_zarr = True + elif file_path.endswith('.zarr') or '.zarr' in file_path: + is_zarr = True + + if is_zarr: + try: + from linc_convert.utils.io.zarr import open_array, open_group + + # Try to open as zarr group first + try: + zarr_group = open_group(file_path, mode="r") + # It's a group, try to get array '0' + if '0' in zarr_group.keys(): + zarr_array_wrapper = zarr_group['0'] + # Get underlying zarr array for dask conversion + # ZarrPythonArray has _array attribute with the actual zarr.Array + if hasattr(zarr_array_wrapper, '_array'): + zarr_python_array = zarr_array_wrapper._array + elif hasattr(zarr_array_wrapper, '_zarr_array'): + zarr_python_array = zarr_array_wrapper._zarr_array + else: + # Fallback: try to use the wrapper directly + zarr_python_array = zarr_array_wrapper + data = da.from_array(zarr_python_array, chunks=zarr_python_array.chunks) + else: + raise ValueError(f"Zarr group at {file_path} does not contain array '0'") + except (ValueError, KeyError): + # Try as array + zarr_array_wrapper = open_array(file_path, mode="r") + if hasattr(zarr_array_wrapper, '_array'): + zarr_python_array = zarr_array_wrapper._array + elif hasattr(zarr_array_wrapper, '_zarr_array'): + zarr_python_array = zarr_array_wrapper._zarr_array + else: + zarr_python_array = zarr_array_wrapper + data = da.from_array(zarr_python_array, chunks=zarr_python_array.chunks) + + # Handle 3D data - take middle slice + if data.ndim == 3: + data = data[:, :, data.shape[2] // 2] + elif data.ndim > 3: + data = data.reshape(data.shape[0], data.shape[1], -1)[:, :, 0] + return data + except Exception as e: + logger.warning(f"Failed to load as zarr: {e}, trying other formats") + + # Check for NIfTI files if file_path.endswith(('.nii', '.nii.gz')): img = nib.load(file_path) - data = img.get_fdata() - # If 3D, take middle slice or first slice + # Use dataobj for lazy loading with mmap instead of get_fdata() + dataobj = img.dataobj + # Convert to dask array with lazy loading + data = da.from_array(dataobj, chunks="auto") + # Handle 3D data - take middle slice if data.ndim == 3: data = data[:, :, data.shape[2] // 2] elif data.ndim > 3: # Take first 2D slice data = data.reshape(data.shape[0], data.shape[1], -1)[:, :, 0] - return da.from_array(data, chunks="auto") - else: - # Assume mat file - wrapper = as_arraywrapper(file_path, key) - if not hasattr(wrapper, "dtype"): - raise ValueError(f"Could not load array from {file_path}") - data = wrapper[:] + return data + + # Try dask-image as fallback + try: + import dask_image.imread # noqa: F401 + data = dask_image.imread.imread(file_path) # Handle 3D data - take middle slice if data.ndim == 3: data = data[:, :, data.shape[2] // 2] elif data.ndim > 3: data = data.reshape(data.shape[0], data.shape[1], -1)[:, :, 0] - return da.from_array(data, chunks="auto") + return data + except ImportError: + raise ValueError( + f"Could not load {file_path}. " + "Supported formats: .mat, .zarr, .nii/.nii.gz, or formats supported by dask-image" + ) + except Exception as e: + raise ValueError(f"Failed to load {file_path} with dask-image: {e}") def _save_jpeg(image: np.ndarray, output_path: str, quality: int = 95): @@ -85,21 +172,26 @@ def _save_jpeg(image: np.ndarray, output_path: str, quality: int = 95): def _save_tiff(image: np.ndarray, output_path: str): - """Save image as TIFF.""" + """Save image as TIFF without normalization - data is saved as-is.""" try: import tifffile - - tifffile.imwrite(output_path, image.astype(np.float32)) + # Save data as-is without any normalization or scaling + # Preserve original dtype and values + tifffile.imwrite(output_path, image) except ImportError: # Fallback to PIL if tifffile not available - img_min = np.nanmin(image) - img_max = np.nanmax(image) - if img_max > img_min: - normalized = ((image - img_min) / (img_max - img_min) * 65535).astype( - np.uint16) + # PIL requires uint8 or uint16, so we need to convert + # But we don't normalize - just convert dtype preserving values as much as possible + if image.dtype in (np.float32, np.float64): + # For float, convert to uint16 without normalization + # This will clip values outside [0, 65535] range + image_uint16 = np.clip(image, 0, 65535).astype(np.uint16) + elif image.dtype == np.uint8: + image_uint16 = image else: - normalized = np.zeros_like(image, dtype=np.uint16) - pil_image = Image.fromarray(normalized) + # For other types, convert to uint16 + image_uint16 = np.clip(image, 0, 65535).astype(np.uint16) + pil_image = Image.fromarray(image_uint16) pil_image.save(output_path, "TIFF") @@ -154,6 +246,11 @@ def mosaic2d( tile_height = metadata.get("tile_height") scan_resolution = metadata.get("scan_resolution", [1.0, 1.0]) file_key = metadata.get("file_key") # Key for mat file array + + # Use tile_overlap from function parameter (defaults to "auto") + # If "auto" and metadata has tile_overlap, use that instead + if tile_overlap == "auto" and "tile_overlap" in metadata: + tile_overlap = metadata.get("tile_overlap", "auto") if tile_width is None or tile_height is None: raise ValueError("tile_width and tile_height must be specified in metadata") @@ -243,6 +340,7 @@ def mosaic2d( depth=None, # 2D mosaic chunk_size=tile_size, circular_mean=circular_mean, + tile_overlap=tile_overlap, ) # Stitch using lazy dask operations diff --git a/linc_convert/modalities/psoct/mosaic3d.py b/linc_convert/modalities/psoct/mosaic3d.py index bc10ec90..f0027c57 100644 --- a/linc_convert/modalities/psoct/mosaic3d.py +++ b/linc_convert/modalities/psoct/mosaic3d.py @@ -253,6 +253,9 @@ def mosaic3d( logger.info("Stitching tiles") tile_size = (tile_width, tile_height) + # Get tile_overlap from metadata (defaults to "auto") + tile_overlap = metadata.get("tile_overlap", "auto") + # Create MosaicInfo for each modality dbi_mosaic = MosaicInfo.from_tiles_and_coords( tiles=[TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, dbi_tiles)], @@ -263,6 +266,7 @@ def mosaic3d( depth=depth, chunk_size=tile_size, circular_mean=False, + tile_overlap=tile_overlap, ) r3d_mosaic = MosaicInfo.from_tiles_and_coords( @@ -274,6 +278,7 @@ def mosaic3d( depth=depth, chunk_size=tile_size, circular_mean=False, + tile_overlap=tile_overlap, ) o3d_mosaic = MosaicInfo.from_tiles_and_coords( @@ -285,6 +290,7 @@ def mosaic3d( depth=depth, chunk_size=tile_size, circular_mean=False, + tile_overlap=tile_overlap, ) # Stitch using lazy dask operations diff --git a/linc_convert/modalities/psoct/stitch.py b/linc_convert/modalities/psoct/stitch.py index f04afbad..7996c785 100644 --- a/linc_convert/modalities/psoct/stitch.py +++ b/linc_convert/modalities/psoct/stitch.py @@ -1,8 +1,8 @@ from __future__ import annotations from collections import defaultdict -from dataclasses import dataclass -from typing import Dict, List, Optional, Sequence, Tuple, Union +from dataclasses import dataclass, field +from typing import List, Literal, Optional, Tuple, Union import dask.array as da import numpy as np @@ -18,151 +18,396 @@ class TileInfo: @dataclass class MosaicInfo: + """Container for mosaic information with integrated blending and stitching.""" + tiles: List[TileInfo] - full_shape: Tuple[int, int, int] + full_shape: Tuple[int, ...] # Can be 2D (width, height) or 3D (width, height, depth) blend_ramp: da.Array chunk_size: Tuple[int, int] - circular_mean: bool - - -def _to_dask(arr: ArrayLike, chunks="auto") -> da.Array: - """Convert array-like to dask array.""" - if isinstance(arr, da.Array): - return arr - return da.from_array(np.asarray(arr), chunks=chunks) - - -def _normalize_overlap( - overlap: Union[int, Tuple[int, int]], -) -> Tuple[int, int]: - """Normalize overlap parameter to (row_overlap, col_overlap) tuple.""" - if isinstance(overlap, tuple): - if len(overlap) != 2: - raise ValueError("overlap tuple must be (row_overlap, col_overlap).") - row_overlap, col_overlap = overlap - else: - row_overlap = col_overlap = int(overlap) - - if row_overlap < 0 or col_overlap < 0: - raise ValueError("Overlap must be non-negative.") - return row_overlap, col_overlap - - -def _blending_ramp( - shape: Tuple[int, int], - overlap: Tuple[int, int], -) -> np.ndarray: - """ - Create a separable 2D blending ramp similar to build_slice(). - """ - wx = np.ones(shape[0], dtype=np.float32) - wy = np.ones(shape[1], dtype=np.float32) - if overlap[0] > 0: - wx[:overlap[0]] = np.linspace(0, 1, overlap[0], dtype=np.float32) - wx[-overlap[0]:] = np.linspace(1, 0, overlap[0], dtype=np.float32) - if overlap[1] > 0: - wy[:overlap[1]] = np.linspace(0, 1, overlap[1], dtype=np.float32) - wy[-overlap[1]:] = np.linspace(1, 0, overlap[1], dtype=np.float32) - return np.outer(wx, wy) + circular_mean: bool = False + + @classmethod + def from_tiles_and_coords( + cls, + tiles: List[TileInfo], + tile_width: int, + tile_height: int, + x_coords: np.ndarray, + y_coords: np.ndarray, + depth: Optional[int] = None, + chunk_size: Optional[Tuple[int, int]] = None, + circular_mean: bool = False, + tile_overlap: Union[float, int, Tuple[float, float], Tuple[int, int], Literal["auto"]] = "auto", + ) -> "MosaicInfo": + """ + Create MosaicInfo from tiles and coordinates. + + Parameters + ---------- + tiles : List[TileInfo] + List of tile information with coordinates and images. + tile_width : int + Width of each tile. + tile_height : int + Height of each tile. + x_coords : np.ndarray + X coordinates of tile centers. + y_coords : np.ndarray + Y coordinates of tile centers. + depth : Optional[int] + Depth dimension for 3D mosaics. If None, creates 2D mosaic. + chunk_size : Optional[Tuple[int, int]] + Chunk size for dask arrays. If None, uses tile dimensions. + circular_mean : bool + Whether to use circular mean for blending. + tile_overlap : Union[float, int, Tuple[float, float], Tuple[int, int], Literal["auto"]] + Overlap specification: + - float in (0, 1): percentile of tile size (e.g., 0.2 = 20% overlap on each side) + - int: number of pixels overlap on each side + - Tuple[float, float]: percentiles for (x, y) dimensions + - Tuple[int, int]: pixel counts for (x, y) dimensions + - "auto": compute maximum overlap from coordinates (default) + + Returns + ------- + MosaicInfo + Configured MosaicInfo instance. + """ + # Compute full mosaic dimensions + full_width = int(np.nanmax(x_coords) + tile_width) + full_height = int(np.nanmax(y_coords) + tile_height) + + if depth is not None: + full_shape = (full_width, full_height, depth) + else: + full_shape = (full_width, full_height) + + # Normalize tile_overlap to pixels + x_overlap, y_overlap = _normalize_tile_overlap( + tile_overlap, tile_width, tile_height, x_coords, y_coords + ) + + # Compute blending ramp with explicit overlap + blend_ramp = cls._compute_blending_ramp( + tile_width, tile_height, x_overlap, y_overlap + ) + + if chunk_size is None: + chunk_size = (tile_width, tile_height) + + return cls( + tiles=tiles, + full_shape=full_shape, + blend_ramp=blend_ramp, + chunk_size=chunk_size, + circular_mean=circular_mean, + ) + + @staticmethod + def _compute_blending_ramp( + tile_width: int, + tile_height: int, + x_overlap: int, + y_overlap: int, + ) -> da.Array: + """ + Compute blending ramp for tile stitching with explicit overlap values. + + Parameters + ---------- + tile_width : int + Width of each tile. + tile_height : int + Height of each tile. + x_overlap : int + Number of overlapping pixels in x dimension (on each side). + y_overlap : int + Number of overlapping pixels in y dimension (on each side). + + Returns + ------- + da.Array + Blending ramp as a dask array. + """ + # Create blending ramp + wx = np.ones(tile_height, dtype=np.float32) + wy = np.ones(tile_width, dtype=np.float32) + + if x_overlap > 0: + wx[:x_overlap] = np.linspace(0, 1, x_overlap, dtype=np.float32) + wx[-x_overlap:] = np.linspace(1, 0, x_overlap, dtype=np.float32) + + if y_overlap > 0: + wy[:y_overlap] = np.linspace(0, 1, y_overlap, dtype=np.float32) + wy[-y_overlap:] = np.linspace(1, 0, y_overlap, dtype=np.float32) + + ramp = np.outer(wx, wy) + return da.from_array(ramp, chunks="auto") + + def stitch(self) -> da.Array: + """ + Stitch tiles into a mosaic using lazy dask operations. + + Returns + ------- + da.Array + Stitched mosaic as a dask array. Shape is (width, height, ...) for 3D + or (width, height) for 2D. + """ + if not self.tiles: + raise ValueError("No tiles to stitch") + + pw, ph = self.chunk_size + no_chunk_dim = self.full_shape[2:] # Empty for 2D, (depth,) for 3D + + # Create canvas with appropriate shape + canvas = da.zeros( + self.full_shape, + chunks=(pw, ph, *no_chunk_dim), + dtype=np.float32 + ) + weight = da.zeros( + self.full_shape[:2], + chunks=(pw, ph), + dtype=np.float32 + ) + + # Collect per-chunk pieces + block_tiles = defaultdict(list) + block_weights = defaultdict(list) + + for tile_info in self.tiles: + x0, y0, t = tile_info.x, tile_info.y, tile_info.image + blend_ramp = self.blend_ramp + + # Determine which chunks this tile falls into + x0c = x0 // pw + y0c = y0 // ph + x1c = (x0 + pw - 1) // pw + y1c = (y0 + ph - 1) // ph + + # Pad region covering those chunks + x_start = x0c * pw + y_start = y0c * ph + x_end = (x1c + 1) * pw + y_end = (y1c + 1) * ph + + # Create block canvas with appropriate shape + if not self.circular_mean: + block_canvas = da.zeros( + (x_end - x_start, y_end - y_start, *no_chunk_dim), + chunks=(pw, ph, *no_chunk_dim), + dtype=np.float32 + ) + else: + block_canvas = da.zeros( + (x_end - x_start, y_end - y_start, *no_chunk_dim, 2), + chunks=(pw, ph, *no_chunk_dim, 2), + dtype=np.float32 + ) + + block_weight = da.zeros( + (x_end - x_start, y_end - y_start), + chunks=(pw, ph), + dtype=np.float32 + ) + + # Place tile into that big block + xs = slice(x0 - x_start, x0 - x_start + pw) + ys = slice(y0 - y_start, y0 - y_start + ph) + + # Apply blending ramp - handle both 2D and 3D + if not self.circular_mean: + # For 2D: t * blend_ramp + # For 3D: t * blend_ramp[..., None] + if len(no_chunk_dim) == 0: # 2D + weighted_tile = t * blend_ramp + else: # 3D + weighted_tile = t * blend_ramp[:, :, None] + block_canvas[xs, ys, ...] = weighted_tile + else: + # Circular mean: convert to sin/cos representation + rad = da.deg2rad(t) * 2 + block_canvas[xs, ys, ..., 0] = da.cos(rad) + block_canvas[xs, ys, ..., 1] = da.sin(rad) + + block_weight[xs, ys] = blend_ramp + + # Chop into per-chunk pieces + for cx in range(x0c, x1c + 1): + for cy in range(y0c, y1c + 1): + bid = (cx, cy) + sub_x = slice((cx - x0c) * pw, (cx - x0c + 1) * pw) + sub_y = slice((cy - y0c) * ph, (cy - y0c + 1) * ph) + block_tiles[bid].append(block_canvas[sub_x, sub_y, ...]) + block_weights[bid].append(block_weight[sub_x, sub_y]) + + # Combine blocks using map_blocks + canvas = da.map_blocks( + _combine_block, + canvas, + block_tiles, + block_weights, + self.circular_mean, + dtype=canvas.dtype, + chunks=(pw, ph, *no_chunk_dim) + ) + + # Crop canvas to get rid of excessive padded pixels + canvas = canvas[:self.full_shape[0], :self.full_shape[1], ...] + return canvas def _combine_block( _, block_tiles, block_weights, circular_mean, *args, block_info=None, **kwargs - ): +): + """Combine overlapping tile blocks with weighted averaging.""" chunk_id = tuple(block_info[None]['chunk-location'][:2]) paints = block_tiles[chunk_id] weights = block_weights[chunk_id] shape = block_info[None]['chunk-shape'] - + if not paints: return np.broadcast_to(np.zeros((), dtype=np.float32), shape) - + total_paint = da.sum(da.stack(paints, axis=0), axis=0) total_weight = da.sum(da.stack(weights, axis=0), axis=0) normalized = total_paint / np.broadcast_to(total_weight, total_paint.shape) + if not circular_mean: return normalized return da.rad2deg(da.arctan2(normalized[..., 1], normalized[..., 0])) / 2 +def _to_dask(arr: ArrayLike, chunks="auto") -> da.Array: + """Convert array-like to dask array.""" + if isinstance(arr, da.Array): + return arr + return da.from_array(np.asarray(arr), chunks=chunks) + + +def _normalize_tile_overlap( + tile_overlap: Union[float, int, Tuple[float, float], Tuple[int, int], Literal["auto"]], + tile_width: int, + tile_height: int, + x_coords: Optional[np.ndarray] = None, + y_coords: Optional[np.ndarray] = None, +) -> Tuple[int, int]: + """ + Normalize tile_overlap parameter to (x_overlap, y_overlap) in pixels. + + Parameters + ---------- + tile_overlap : Union[float, int, Tuple[float, float], Tuple[int, int], Literal["auto"]] + Overlap specification: + - float in (0, 1): percentile of tile size (e.g., 0.2 = 20% overlap on each side) + - int: number of pixels overlap on each side + - Tuple[float, float]: percentiles for (x, y) dimensions + - Tuple[int, int]: pixel counts for (x, y) dimensions + - "auto": compute maximum overlap from coordinates + tile_width : int + Width of each tile. + tile_height : int + Height of each tile. + x_coords : Optional[np.ndarray] + X coordinates for auto computation. + y_coords : Optional[np.ndarray] + Y coordinates for auto computation. + + Returns + ------- + Tuple[int, int] + (x_overlap, y_overlap) in pixels. + """ + if tile_overlap == "auto": + if x_coords is None or y_coords is None: + raise ValueError("x_coords and y_coords required for auto tile_overlap") + return _compute_auto_overlap(tile_width, tile_height, x_coords, y_coords) + + # Handle tuple case + if isinstance(tile_overlap, tuple): + if len(tile_overlap) != 2: + raise ValueError("tile_overlap tuple must have 2 elements (x_overlap, y_overlap)") + x_overlap_val, y_overlap_val = tile_overlap + else: + x_overlap_val = y_overlap_val = tile_overlap + + # Convert to pixels if float (percentile) + if isinstance(x_overlap_val, float): + if not (0 < x_overlap_val < 1): + raise ValueError(f"Float tile_overlap must be in range (0, 1), got {x_overlap_val}") + x_overlap = int(tile_width * x_overlap_val) + else: + x_overlap = int(x_overlap_val) + + if isinstance(y_overlap_val, float): + if not (0 < y_overlap_val < 1): + raise ValueError(f"Float tile_overlap must be in range (0, 1), got {y_overlap_val}") + y_overlap = int(tile_height * y_overlap_val) + else: + y_overlap = int(y_overlap_val) + + if x_overlap < 0 or y_overlap < 0: + raise ValueError("Overlap must be non-negative.") + + return x_overlap, y_overlap + + +def _compute_auto_overlap( + tile_width: int, tile_height: int, x_coords: np.ndarray, y_coords: np.ndarray +) -> Tuple[int, int]: + """ + Compute maximum overlap from tile coordinates. + + Returns the maximum number of overlapping pixels in each dimension. + """ + if len(x_coords) == 0 or len(y_coords) == 0: + return 0, 0 + + x_coords_flat = x_coords[~np.isnan(x_coords)] + y_coords_flat = y_coords[~np.isnan(y_coords)] + + x_overlap = 0 + y_overlap = 0 + + if len(x_coords_flat) > 1: + x_spacing = np.min(np.diff(np.sort(np.unique(x_coords_flat)))) + x_overlap = max(0, tile_width - int(x_spacing)) if x_spacing < tile_width else 0 + + if len(y_coords_flat) > 1: + y_spacing = np.min(np.diff(np.sort(np.unique(y_coords_flat)))) + y_overlap = max(0, tile_height - int(y_spacing)) if y_spacing < tile_height else 0 + + return x_overlap, y_overlap + + +# Backward compatibility: keep stitch_tiles as a function that uses MosaicInfo def stitch_tiles( - tile_infos, - full_shape, - blend_ramp, - chunk_size=None, - circular_mean=False, + tile_infos: List[TileInfo], + full_shape: Tuple[int, ...], + blend_ramp: Union[np.ndarray, da.Array], + chunk_size: Optional[Tuple[int, int]] = None, + circular_mean: bool = False, **_ - ): +) -> da.Array: """ - Chunk‐aligned padding + per‐block summation (build_slice_chunked_padding). + Stitch tiles into a mosaic (backward compatibility wrapper). + + This function is kept for backward compatibility. New code should use + MosaicInfo.stitch() directly. """ - if not chunk_size: + if not tile_infos: + raise ValueError("No tiles provided") + + if chunk_size is None: chunk_size = tile_infos[0].image.shape[:2] - pw, ph = chunk_size - no_chunk_dim = full_shape[2:] - canvas = da.zeros(full_shape, - chunks=(pw, ph, *no_chunk_dim), - dtype=np.float32) - weight = da.zeros(full_shape[:2], - chunks=(pw, ph), - dtype=np.float32) - - # collect per‐chunk pieces - block_tiles = defaultdict(list) - block_weights = defaultdict(list) - - for tile_info in tile_infos: - x0, y0, t = tile_info.x, tile_info.y, tile_info.image - x0c = x0 // pw - y0c = y0 // ph - x1c = (x0 + pw - 1) // pw - y1c = (y0 + ph - 1) // ph - - # pad region covering those chunks - x_start = x0c * pw - y_start = y0c * ph - x_end = (x1c + 1) * pw - y_end = (y1c + 1) * ph - - if not circular_mean: - block_canvas = da.zeros((x_end - x_start, y_end - y_start, *no_chunk_dim), - chunks=(pw, ph, *no_chunk_dim), - dtype=np.float32) - else: - block_canvas = da.zeros( - (x_end - x_start, y_end - y_start, *no_chunk_dim, 2), - chunks=(pw, ph, *no_chunk_dim, 2), - dtype=np.float32) - - block_weight = da.zeros((x_end - x_start, y_end - y_start), - chunks=(pw, ph), - dtype=np.float32) - - # place tile into that big block - xs = slice(x0 - x_start, x0 - x_start + pw) - ys = slice(y0 - y_start, y0 - y_start + ph) - if not circular_mean: - block_canvas[xs, ys, ...] = t * blend_ramp - else: - rad = da.deg2rad(t) * 2 - block_canvas[xs, ys, ..., 0] = da.cos(rad) - block_canvas[xs, ys, ..., 1] = da.sin(rad) - - block_weight[xs, ys] = blend_ramp - - # chop into per‐chunk pieces - for cx in range(x0c, x1c + 1): - for cy in range(y0c, y1c + 1): - bid = (cx, cy) - sub_x = slice((cx - x0c) * pw, (cx - x0c + 1) * pw) - sub_y = slice((cy - y0c) * ph, (cy - y0c + 1) * ph) - block_tiles[bid].append(block_canvas[sub_x, sub_y, ...]) - block_weights[bid].append(block_weight[sub_x, sub_y]) - - canvas = da.map_blocks(_combine_block, canvas, block_tiles, block_weights, - circular_mean, - dtype=canvas.dtype, - chunks=(pw, ph, *no_chunk_dim)) - # crop canvas to get rid of excessive padded pixels - canvas = canvas[:full_shape[0], :full_shape[1], ...] - return canvas + + mosaic_info = MosaicInfo( + tiles=tile_infos, + full_shape=full_shape, + blend_ramp=blend_ramp, + chunk_size=chunk_size, + circular_mean=circular_mean, + ) + + return mosaic_info.stitch() From 9e757c97a2e716bc71013f23faee568a73c18ab0 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Thu, 4 Dec 2025 14:54:09 -0500 Subject: [PATCH 008/133] refactor: simplify MosaicInfo creation by extracting dimensions and coordinates from tiles --- linc_convert/modalities/psoct/mosaic3d.py | 29 ++++++--------------- linc_convert/modalities/psoct/stitch.py | 31 +++++++++++++---------- 2 files changed, 25 insertions(+), 35 deletions(-) diff --git a/linc_convert/modalities/psoct/mosaic3d.py b/linc_convert/modalities/psoct/mosaic3d.py index f0027c57..f045e25a 100644 --- a/linc_convert/modalities/psoct/mosaic3d.py +++ b/linc_convert/modalities/psoct/mosaic3d.py @@ -52,7 +52,7 @@ def _load_complex_tile(file_path: str, key: str = None) -> da.Array: wrapper = as_arraywrapper(file_path, key) if not hasattr(wrapper, "dtype"): raise ValueError(f"Could not load array from {file_path}") - data = wrapper[:] + data = wrapper return da.from_array(data, chunks="auto") @@ -251,44 +251,31 @@ def mosaic3d( # Stitch tiles for each modality using MosaicInfo logger.info("Stitching tiles") - tile_size = (tile_width, tile_height) # Get tile_overlap from metadata (defaults to "auto") tile_overlap = metadata.get("tile_overlap", "auto") - # Create MosaicInfo for each modality - dbi_mosaic = MosaicInfo.from_tiles_and_coords( + # Create MosaicInfo for each modality - dimensions and coordinates extracted from tiles + dbi_mosaic = MosaicInfo.from_tiles( tiles=[TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, dbi_tiles)], - tile_width=tile_width, - tile_height=tile_height, - x_coords=x_coords, - y_coords=y_coords, depth=depth, - chunk_size=tile_size, + chunk_size=None, # Will use tile dimensions circular_mean=False, tile_overlap=tile_overlap, ) - r3d_mosaic = MosaicInfo.from_tiles_and_coords( + r3d_mosaic = MosaicInfo.from_tiles( tiles=[TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, r3d_tiles)], - tile_width=tile_width, - tile_height=tile_height, - x_coords=x_coords, - y_coords=y_coords, depth=depth, - chunk_size=tile_size, + chunk_size=None, # Will use tile dimensions circular_mean=False, tile_overlap=tile_overlap, ) - o3d_mosaic = MosaicInfo.from_tiles_and_coords( + o3d_mosaic = MosaicInfo.from_tiles( tiles=[TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, o3d_tiles)], - tile_width=tile_width, - tile_height=tile_height, - x_coords=x_coords, - y_coords=y_coords, depth=depth, - chunk_size=tile_size, + chunk_size=None, # Will use tile dimensions circular_mean=False, tile_overlap=tile_overlap, ) diff --git a/linc_convert/modalities/psoct/stitch.py b/linc_convert/modalities/psoct/stitch.py index 7996c785..f4eb3062 100644 --- a/linc_convert/modalities/psoct/stitch.py +++ b/linc_convert/modalities/psoct/stitch.py @@ -27,33 +27,21 @@ class MosaicInfo: circular_mean: bool = False @classmethod - def from_tiles_and_coords( + def from_tiles( cls, tiles: List[TileInfo], - tile_width: int, - tile_height: int, - x_coords: np.ndarray, - y_coords: np.ndarray, depth: Optional[int] = None, chunk_size: Optional[Tuple[int, int]] = None, circular_mean: bool = False, tile_overlap: Union[float, int, Tuple[float, float], Tuple[int, int], Literal["auto"]] = "auto", ) -> "MosaicInfo": """ - Create MosaicInfo from tiles and coordinates. + Create MosaicInfo from tiles, extracting dimensions and coordinates automatically. Parameters ---------- tiles : List[TileInfo] List of tile information with coordinates and images. - tile_width : int - Width of each tile. - tile_height : int - Height of each tile. - x_coords : np.ndarray - X coordinates of tile centers. - y_coords : np.ndarray - Y coordinates of tile centers. depth : Optional[int] Depth dimension for 3D mosaics. If None, creates 2D mosaic. chunk_size : Optional[Tuple[int, int]] @@ -73,6 +61,21 @@ def from_tiles_and_coords( MosaicInfo Configured MosaicInfo instance. """ + if not tiles: + raise ValueError("No tiles provided") + + # Extract tile dimensions from first tile + first_tile = tiles[0] + tile_height, tile_width = first_tile.image.shape[:2] + + # Extract depth from first tile if 3D + if depth is None and len(first_tile.image.shape) == 3: + depth = first_tile.image.shape[2] + + # Extract coordinates from tiles + x_coords = np.array([tile.x for tile in tiles]) + y_coords = np.array([tile.y for tile in tiles]) + # Compute full mosaic dimensions full_width = int(np.nanmax(x_coords) + tile_width) full_height = int(np.nanmax(y_coords) + tile_height) From 646f62c746fce67a7b0ac10ab4c13ec579436e9f Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Thu, 4 Dec 2025 14:54:18 -0500 Subject: [PATCH 009/133] feat: add mask loading and application to mosaic2d function, with cropping support --- linc_convert/modalities/psoct/mosaic2d.py | 166 ++++++++++++++-------- 1 file changed, 108 insertions(+), 58 deletions(-) diff --git a/linc_convert/modalities/psoct/mosaic2d.py b/linc_convert/modalities/psoct/mosaic2d.py index bf0f7471..f1e9053a 100644 --- a/linc_convert/modalities/psoct/mosaic2d.py +++ b/linc_convert/modalities/psoct/mosaic2d.py @@ -195,6 +195,30 @@ def _save_tiff(image: np.ndarray, output_path: str): pil_image.save(output_path, "TIFF") +def _load_mask(mask_path: str) -> np.ndarray: + """ + Load a binary mask from a file. + + Supports the same formats as _load_image_tile but expects a 2D binary mask. + """ + # Use the same loading function as tiles + mask = _load_image_tile(mask_path, key=None) + + # Ensure it's a 2D array + if mask.ndim != 2: + if mask.ndim == 3 and mask.shape[2] == 1: + mask = mask[:, :, 0] + else: + raise ValueError(f"Mask must be 2D, got shape {mask.shape}") + + # Convert to binary (0 or 1) + # Handle both boolean and numeric masks + mask = mask.compute() if isinstance(mask, da.Array) else mask + mask = (mask > 0).astype(np.float32) + + return mask + + @mosaic2d.default @autoconfig def mosaic2d( @@ -204,6 +228,9 @@ def mosaic2d( tiff_output: Annotated[Optional[str], Parameter(name=["--tiff", "-t"])] = None, tile_overlap: float | Literal["auto"] = "auto", circular_mean: bool = False, + cropx: int = 0, + cropy: int = 0, + mask: Annotated[Optional[str], Parameter(name=["--mask", "-m"])] = None, zarr_config: ZarrConfig = None, general_config: GeneralConfig = None, nifti_config: NiftiConfig = None, @@ -223,6 +250,12 @@ def mosaic2d( Tile overlap in pixels. If "auto", compute from tile coordinates. circular_mean : bool Whether to use circular mean for blending. + cropx : int + Number of pixels to crop from the left side of each tile. Coordinates will be shifted accordingly. + cropy : int + Number of pixels to crop from the top side of each tile. Coordinates will be shifted accordingly. + mask : str, optional + Path to binary mask file to apply to the result. Mask should be 2D and match the result dimensions. zarr_config : ZarrConfig, optional Zarr configuration. general_config : GeneralConfig, optional @@ -242,56 +275,41 @@ def mosaic2d( # Get metadata metadata = tile_info.get("metadata", {}) - tile_width = metadata.get("tile_width") - tile_height = metadata.get("tile_height") scan_resolution = metadata.get("scan_resolution", [1.0, 1.0]) file_key = metadata.get("file_key") # Key for mat file array + # Get crop values from metadata if not provided as parameters + if cropx == 0: + cropx = metadata.get("cropx", 0) + if cropy == 0: + cropy = metadata.get("cropy", 0) + + # Get mask from metadata if not provided as parameter + if mask is None: + mask = metadata.get("mask") + # Use tile_overlap from function parameter (defaults to "auto") # If "auto" and metadata has tile_overlap, use that instead if tile_overlap == "auto" and "tile_overlap" in metadata: tile_overlap = metadata.get("tile_overlap", "auto") - if tile_width is None or tile_height is None: - raise ValueError("tile_width and tile_height must be specified in metadata") - - # Collect tile coordinates and file paths - x_coords_list = [] - y_coords_list = [] - tile_files = [] + # Process each tile and collect TileInfo objects + tile_infos = [] - for tile in tiles_config: + logger.info(f"Loading and processing {len(tiles_config)} tiles") + for i, tile in enumerate(tiles_config): x = tile.get("x") y = tile.get("y") file_path = tile.get("file_path") if x is None or y is None or file_path is None: logger.warning(f"Skipping incomplete tile: {tile}") continue - x_coords_list.append(x) - y_coords_list.append(y) - tile_files.append(file_path) - if not tile_files: - raise ValueError("No valid tiles found in YAML file") - - x_coords = np.array(x_coords_list) - y_coords = np.array(y_coords_list) - - # Compute full mosaic dimensions (will be used by MosaicInfo) - full_width = int(np.nanmax(x_coords) + tile_width) - full_height = int(np.nanmax(y_coords) + tile_height) - - # Process each tile and collect results - tiles = [] - coords = [] - - logger.info(f"Loading and processing {len(tile_files)} tiles") - for i, (x0, y0, file_path) in enumerate(zip(x_coords, y_coords, tile_files)): if not op.exists(file_path): logger.warning(f"Tile file not found: {file_path}, skipping") continue - logger.info(f"Processing tile {i + 1}/{len(tile_files)}: {file_path}") + logger.info(f"Processing tile {i + 1}/{len(tiles_config)}: {file_path}") # Load 2D image try: @@ -300,45 +318,42 @@ def mosaic2d( logger.warning(f"Failed to load {file_path}: {e}, skipping") continue - # Ensure 2D - if image.ndim != 2: - if image.ndim == 3 and image.shape[2] == 1: - image = image[:, :, 0] + # Apply cropping if specified + if cropx > 0 or cropy > 0: + # Crop from left (cropx) and top (cropy) + # This removes pixels from the left and top edges + if image.ndim == 2: + image = image[cropy:, cropx:] + elif image.ndim == 3: + image = image[cropy:, cropx:, :] else: - logger.warning(f"Image {file_path} is not 2D, skipping") + logger.warning(f"Unexpected image dimensions {image.ndim} for {file_path}") continue - - # Validate and crop tile to expected size - if image.shape[0] >= tile_height and image.shape[1] >= tile_width: - # Crop to expected size if needed - if image.shape[0] != tile_height or image.shape[1] != tile_width: - image = image[:tile_height, :tile_width] + + # Shift coordinates to account for cropping + # After cropping cropx pixels from the left, the remaining content + # represents what was at position cropx in the original tile. + # To align this correctly in the mosaic, we shift coordinates by +cropx and +cropy + x = int(x) + cropx + y = int(y) + cropy else: - logger.warning( - f"Tile {file_path} has unexpected size {image.shape}, " - f"expected at least ({tile_height}, {tile_width})" - ) - continue + x = int(x) + y = int(y) - tiles.append(image) - coords.append((int(x0), int(y0))) + # Create TileInfo + tile_infos.append(TileInfo(x=x, y=y, image=image)) - if not coords: + if not tile_infos: raise ValueError("No valid tiles were processed") # Stitch tiles using MosaicInfo logger.info("Stitching tiles") - tile_size = (tile_width, tile_height) - # Create MosaicInfo for 2D mosaic - mosaic = MosaicInfo.from_tiles_and_coords( - tiles=[TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, tiles)], - tile_width=tile_width, - tile_height=tile_height, - x_coords=x_coords, - y_coords=y_coords, + # Create MosaicInfo for 2D mosaic - dimensions and coordinates extracted from tiles + mosaic = MosaicInfo.from_tiles( + tiles=tile_infos, depth=None, # 2D mosaic - chunk_size=tile_size, + chunk_size=None, # Will use tile dimensions circular_mean=circular_mean, tile_overlap=tile_overlap, ) @@ -360,6 +375,41 @@ def mosaic2d( # Transpose to get (height, width) result_2d = result.T + # Apply mask if provided + if mask: + logger.info(f"Loading and applying mask: {mask}") + try: + mask_array = _load_mask(mask) + # Check if mask dimensions match result + if mask_array.shape != result_2d.shape: + logger.warning( + f"Mask shape {mask_array.shape} does not match result shape {result_2d.shape}. " + "Attempting to resize mask." + ) + # Resize mask to match result if possible + try: + from scipy.ndimage import zoom + zoom_factors = (result_2d.shape[0] / mask_array.shape[0], + result_2d.shape[1] / mask_array.shape[1]) + mask_array = zoom(mask_array, zoom_factors, order=0) # order=0 for nearest neighbor + # Ensure binary after resize + mask_array = (mask_array > 0.5).astype(np.float32) + except ImportError: + raise ValueError( + "scipy is required for mask resizing. " + "Please ensure mask dimensions match result dimensions or install scipy." + ) + + # Apply mask (multiply: 0 where mask is 0, keep original value where mask is 1) + result_2d = result_2d * mask_array + logger.info("Mask applied successfully") + except Exception as e: + logger.error(f"Failed to load or apply mask: {e}") + raise + + # Get dimensions from result + full_height, full_width = result_2d.shape + # Compute zarr layout for 2D chunk, shard = compute_zarr_layout((full_height, full_width), np.float32, zarr_config) From ae1856fdd99a110554c2f146fadcc3b45ece8a6a Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Thu, 4 Dec 2025 16:01:15 -0500 Subject: [PATCH 010/133] refactor: streamline image loading and enhance mosaic2d function with NIfTI output support --- linc_convert/modalities/psoct/mosaic2d.py | 183 +++++++++++----------- linc_convert/modalities/psoct/stitch.py | 62 ++------ 2 files changed, 102 insertions(+), 143 deletions(-) diff --git a/linc_convert/modalities/psoct/mosaic2d.py b/linc_convert/modalities/psoct/mosaic2d.py index f1e9053a..f2aee72d 100644 --- a/linc_convert/modalities/psoct/mosaic2d.py +++ b/linc_convert/modalities/psoct/mosaic2d.py @@ -90,28 +90,13 @@ def _load_image_tile(file_path: str, key: str = None) -> da.Array: # It's a group, try to get array '0' if '0' in zarr_group.keys(): zarr_array_wrapper = zarr_group['0'] - # Get underlying zarr array for dask conversion - # ZarrPythonArray has _array attribute with the actual zarr.Array - if hasattr(zarr_array_wrapper, '_array'): - zarr_python_array = zarr_array_wrapper._array - elif hasattr(zarr_array_wrapper, '_zarr_array'): - zarr_python_array = zarr_array_wrapper._zarr_array - else: - # Fallback: try to use the wrapper directly - zarr_python_array = zarr_array_wrapper - data = da.from_array(zarr_python_array, chunks=zarr_python_array.chunks) + data = da.from_array(zarr_array_wrapper, chunks=zarr_array_wrapper.chunks) else: raise ValueError(f"Zarr group at {file_path} does not contain array '0'") except (ValueError, KeyError): # Try as array zarr_array_wrapper = open_array(file_path, mode="r") - if hasattr(zarr_array_wrapper, '_array'): - zarr_python_array = zarr_array_wrapper._array - elif hasattr(zarr_array_wrapper, '_zarr_array'): - zarr_python_array = zarr_array_wrapper._zarr_array - else: - zarr_python_array = zarr_array_wrapper - data = da.from_array(zarr_python_array, chunks=zarr_python_array.chunks) + data = da.from_array(zarr_array_wrapper, chunks=zarr_array_wrapper.chunks) # Handle 3D data - take middle slice if data.ndim == 3: @@ -226,10 +211,11 @@ def mosaic2d( *, jpeg_output: Annotated[Optional[str], Parameter(name=["--jpeg", "-j"])] = None, tiff_output: Annotated[Optional[str], Parameter(name=["--tiff", "-t"])] = None, - tile_overlap: float | Literal["auto"] = "auto", + nifti_output: Annotated[Optional[str], Parameter(name=["--nifti", "-n"])] = None, + tile_overlap: float = 0.2, circular_mean: bool = False, - cropx: int = 0, - cropy: int = 0, + clip_x: int = 0, + clip_y: int = 0, mask: Annotated[Optional[str], Parameter(name=["--mask", "-m"])] = None, zarr_config: ZarrConfig = None, general_config: GeneralConfig = None, @@ -250,10 +236,10 @@ def mosaic2d( Tile overlap in pixels. If "auto", compute from tile coordinates. circular_mean : bool Whether to use circular mean for blending. - cropx : int - Number of pixels to crop from the left side of each tile. Coordinates will be shifted accordingly. - cropy : int - Number of pixels to crop from the top side of each tile. Coordinates will be shifted accordingly. + clip_x : int + Number of pixels to clip from the left side of each tile. Coordinates will be shifted accordingly. + clip_y : int + Number of pixels to clip from the top side of each tile. Coordinates will be shifted accordingly. mask : str, optional Path to binary mask file to apply to the result. Mask should be 2D and match the result dimensions. zarr_config : ZarrConfig, optional @@ -277,12 +263,12 @@ def mosaic2d( metadata = tile_info.get("metadata", {}) scan_resolution = metadata.get("scan_resolution", [1.0, 1.0]) file_key = metadata.get("file_key") # Key for mat file array - - # Get crop values from metadata if not provided as parameters - if cropx == 0: - cropx = metadata.get("cropx", 0) - if cropy == 0: - cropy = metadata.get("cropy", 0) + base_dir = metadata.get("base_dir", ".") + # Get clip values from metadata if not provided as parameters + if clip_x == 0: + clip_x = metadata.get("clip_x", 0) + if clip_y == 0: + clip_y = metadata.get("clip_y", 0) # Get mask from metadata if not provided as parameter if mask is None: @@ -300,11 +286,12 @@ def mosaic2d( for i, tile in enumerate(tiles_config): x = tile.get("x") y = tile.get("y") - file_path = tile.get("file_path") + file_path = tile.get("filepath") if x is None or y is None or file_path is None: logger.warning(f"Skipping incomplete tile: {tile}") continue - + if base_dir: + file_path = op.join(base_dir, file_path) if not op.exists(file_path): logger.warning(f"Tile file not found: {file_path}, skipping") continue @@ -318,24 +305,24 @@ def mosaic2d( logger.warning(f"Failed to load {file_path}: {e}, skipping") continue - # Apply cropping if specified - if cropx > 0 or cropy > 0: - # Crop from left (cropx) and top (cropy) + # Apply clipping if specified + if clip_x > 0 or clip_y > 0: + # Clip from left (clip_x) and top (clip_y) # This removes pixels from the left and top edges if image.ndim == 2: - image = image[cropy:, cropx:] - elif image.ndim == 3: - image = image[cropy:, cropx:, :] + image = image[clip_x:, clip_y:] + elif image.ndim >= 3: + image = image[clip_x:, clip_y:, ...] else: logger.warning(f"Unexpected image dimensions {image.ndim} for {file_path}") continue - # Shift coordinates to account for cropping - # After cropping cropx pixels from the left, the remaining content - # represents what was at position cropx in the original tile. - # To align this correctly in the mosaic, we shift coordinates by +cropx and +cropy - x = int(x) + cropx - y = int(y) + cropy + # Shift coordinates to account for clipping + # After clipping clip_x pixels from the left, the remaining content + # represents what was at position clip_x in the original tile. + # To align this correctly in the mosaic, we shift coordinates by +clip_x and +clip_y + x = int(x) + clip_x + y = int(y) + clip_y else: x = int(x) y = int(y) @@ -364,12 +351,6 @@ def mosaic2d( # Compute the result result = result.compute() - # Set default output name if not provided - general_config.set_default_name(op.splitext(op.basename(tile_info_file))[0]) - - # Save to Zarr - out = general_config.out - logger.info(f"Saving to Zarr: {out}") # Result is (width, height), but Zarr expects (height, width) for 2D # Transpose to get (height, width) @@ -406,48 +387,13 @@ def mosaic2d( except Exception as e: logger.error(f"Failed to load or apply mask: {e}") raise - + + # Compute result if it's still a dask array + result_2d = result_2d.compute() if isinstance(result_2d, da.Array) else result_2d + # Get dimensions from result full_height, full_width = result_2d.shape - - # Compute zarr layout for 2D - chunk, shard = compute_zarr_layout((full_height, full_width), np.float32, - zarr_config) - - zarr_config.out = out - zgroup = from_config(zarr_config) - - if shard: - result_dask = da.rechunk(da.from_array(result_2d, chunks=chunk), chunks=shard) - else: - result_dask = da.rechunk(da.from_array(result_2d, chunks=chunk), chunks=chunk) - - writer = zgroup.create_array("0", shape=result_2d.shape, dtype=np.float32, - zarr_config=zarr_config) - - task = da.store(result_dask, writer, compute=False) - with ProgressBar(): - task.compute() - - # Generate pyramid and metadata - logger.info("Generating pyramid and metadata") - zgroup.generate_pyramid() - - scan_resolution_2d = scan_resolution[:2] if len(scan_resolution) >= 2 else [1.0, - 1.0] - zgroup.write_ome_metadata(["y", "x"], space_scale=scan_resolution_2d, - space_unit="millimeter") - - if nifti_config and nifti_config.nii: - from niizarr import default_nifti_header - - nii_header = default_nifti_header( - zgroup["0"], zgroup._get_zarr_python_group().attrs["multiscales"] - ) - nii_header.set_xyzt_units("mm") - zgroup.write_nifti_header(nii_header) - - logger.info("Finished generating pyramid") + scan_resolution_2d = scan_resolution[:2] if len(scan_resolution) >= 2 else [1.0, 1.0] # Save JPEG if requested if jpeg_output: @@ -459,4 +405,61 @@ def mosaic2d( logger.info(f"Saving TIFF: {tiff_output}") _save_tiff(result_2d, tiff_output) + # Save NIfTI file if requested + if nifti_output: + logger.info(f"Saving NIfTI file: {nifti_output}") + # Create affine matrix for 2D image + # NIfTI expects (x, y) but our data is (y, x), so we need to handle this + affine = np.eye(4) + affine[0, 0] = scan_resolution_2d[1] # x voxel size + affine[1, 1] = scan_resolution_2d[0] # y voxel size + affine[0, 3] = -scan_resolution_2d[1] * full_width / 2.0 # center x + affine[1, 3] = -scan_resolution_2d[0] * full_height / 2.0 # center y + + # Create NIfTI image (2D array needs to be expanded to 3D for NIfTI) + # Add a singleton z dimension + result_3d = result_2d[:, :] + nii_img = nib.Nifti1Image(result_3d, affine) + nii_img.header.set_xyzt_units(xyz="mm", t="sec") + nib.save(nii_img, nifti_output) + logger.info("NIfTI file saved successfully") + + # Save to Zarr if output is specified + if general_config.out: + logger.info(f"Saving to Zarr: {general_config.out}") + + # Compute zarr layout for 2D + chunk, shard = compute_zarr_layout(result_2d.shape, np.float32, + zarr_config) + + # Prepare Zarr group (similar to single_volume.py) + zgroup = from_config(general_config.out, zarr_config) + + # Create array and write data directly (like single_volume.py) + dataset = zgroup.create_array( + "0", shape=result_2d.shape, dtype=np.float32, zarr_config=zarr_config + ) + + # Write data directly using indexing (similar to single_volume.py) + dataset[...] = result_2d + + # Generate pyramid and metadata + logger.info("Generating pyramid and metadata") + zgroup.generate_pyramid() + zgroup.write_ome_metadata(["y", "x"], space_scale=scan_resolution_2d, + space_unit="millimeter") + + if nifti_config and nifti_config.nii: + header = build_nifti_header( + zgroup=zgroup, + voxel_size_zyx=(1.0, scan_resolution_2d[0], scan_resolution_2d[1]), + unit="millimeter", + nii_config=nifti_config, + ) + zgroup.write_nifti_header(header) + + logger.info("Finished generating pyramid") + else: + logger.info("Skipping Zarr output (no output path specified)") + logger.info("Finished mosaic2d") diff --git a/linc_convert/modalities/psoct/stitch.py b/linc_convert/modalities/psoct/stitch.py index f4eb3062..e3d71d11 100644 --- a/linc_convert/modalities/psoct/stitch.py +++ b/linc_convert/modalities/psoct/stitch.py @@ -66,7 +66,7 @@ def from_tiles( # Extract tile dimensions from first tile first_tile = tiles[0] - tile_height, tile_width = first_tile.image.shape[:2] + tile_width, tile_height = first_tile.image.shape[:2] # Extract depth from first tile if 3D if depth is None and len(first_tile.image.shape) == 3: @@ -87,7 +87,7 @@ def from_tiles( # Normalize tile_overlap to pixels x_overlap, y_overlap = _normalize_tile_overlap( - tile_overlap, tile_width, tile_height, x_coords, y_coords + tile_overlap, tile_width, tile_height ) # Compute blending ramp with explicit overlap @@ -133,9 +133,8 @@ def _compute_blending_ramp( Blending ramp as a dask array. """ # Create blending ramp - wx = np.ones(tile_height, dtype=np.float32) - wy = np.ones(tile_width, dtype=np.float32) - + wx = np.ones(tile_width, dtype=np.float32) + wy = np.ones(tile_height, dtype=np.float32) if x_overlap > 0: wx[:x_overlap] = np.linspace(0, 1, x_overlap, dtype=np.float32) wx[-x_overlap:] = np.linspace(1, 0, x_overlap, dtype=np.float32) @@ -145,7 +144,7 @@ def _compute_blending_ramp( wy[-y_overlap:] = np.linspace(1, 0, y_overlap, dtype=np.float32) ramp = np.outer(wx, wy) - return da.from_array(ramp, chunks="auto") + return ramp def stitch(self) -> da.Array: """ @@ -218,14 +217,13 @@ def stitch(self) -> da.Array: # Place tile into that big block xs = slice(x0 - x_start, x0 - x_start + pw) ys = slice(y0 - y_start, y0 - y_start + ph) - # Apply blending ramp - handle both 2D and 3D if not self.circular_mean: # For 2D: t * blend_ramp # For 3D: t * blend_ramp[..., None] if len(no_chunk_dim) == 0: # 2D weighted_tile = t * blend_ramp - else: # 3D + else: weighted_tile = t * blend_ramp[:, :, None] block_canvas[xs, ys, ...] = weighted_tile else: @@ -282,32 +280,22 @@ def _combine_block( return da.rad2deg(da.arctan2(normalized[..., 1], normalized[..., 0])) / 2 -def _to_dask(arr: ArrayLike, chunks="auto") -> da.Array: - """Convert array-like to dask array.""" - if isinstance(arr, da.Array): - return arr - return da.from_array(np.asarray(arr), chunks=chunks) - - def _normalize_tile_overlap( - tile_overlap: Union[float, int, Tuple[float, float], Tuple[int, int], Literal["auto"]], + tile_overlap: Union[float, int, Tuple[float, float], Tuple[int, int]], tile_width: int, - tile_height: int, - x_coords: Optional[np.ndarray] = None, - y_coords: Optional[np.ndarray] = None, + tile_height: int ) -> Tuple[int, int]: """ Normalize tile_overlap parameter to (x_overlap, y_overlap) in pixels. Parameters ---------- - tile_overlap : Union[float, int, Tuple[float, float], Tuple[int, int], Literal["auto"]] + tile_overlap : Union[float, int, Tuple[float, float], Tuple[int, int]] Overlap specification: - float in (0, 1): percentile of tile size (e.g., 0.2 = 20% overlap on each side) - int: number of pixels overlap on each side - Tuple[float, float]: percentiles for (x, y) dimensions - Tuple[int, int]: pixel counts for (x, y) dimensions - - "auto": compute maximum overlap from coordinates tile_width : int Width of each tile. tile_height : int @@ -322,10 +310,6 @@ def _normalize_tile_overlap( Tuple[int, int] (x_overlap, y_overlap) in pixels. """ - if tile_overlap == "auto": - if x_coords is None or y_coords is None: - raise ValueError("x_coords and y_coords required for auto tile_overlap") - return _compute_auto_overlap(tile_width, tile_height, x_coords, y_coords) # Handle tuple case if isinstance(tile_overlap, tuple): @@ -356,34 +340,6 @@ def _normalize_tile_overlap( return x_overlap, y_overlap -def _compute_auto_overlap( - tile_width: int, tile_height: int, x_coords: np.ndarray, y_coords: np.ndarray -) -> Tuple[int, int]: - """ - Compute maximum overlap from tile coordinates. - - Returns the maximum number of overlapping pixels in each dimension. - """ - if len(x_coords) == 0 or len(y_coords) == 0: - return 0, 0 - - x_coords_flat = x_coords[~np.isnan(x_coords)] - y_coords_flat = y_coords[~np.isnan(y_coords)] - - x_overlap = 0 - y_overlap = 0 - - if len(x_coords_flat) > 1: - x_spacing = np.min(np.diff(np.sort(np.unique(x_coords_flat)))) - x_overlap = max(0, tile_width - int(x_spacing)) if x_spacing < tile_width else 0 - - if len(y_coords_flat) > 1: - y_spacing = np.min(np.diff(np.sort(np.unique(y_coords_flat)))) - y_overlap = max(0, tile_height - int(y_spacing)) if y_spacing < tile_height else 0 - - return x_overlap, y_overlap - - # Backward compatibility: keep stitch_tiles as a function that uses MosaicInfo def stitch_tiles( tile_infos: List[TileInfo], From cc1c26bdd5ea1d4846d6ae97af3385a0d8062bf5 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Fri, 5 Dec 2025 11:17:27 -0500 Subject: [PATCH 011/133] enhance: integrate progress bar for tile processing and streamline result handling in mosaic2d function --- linc_convert/modalities/psoct/mosaic2d.py | 48 ++++++++--------------- 1 file changed, 16 insertions(+), 32 deletions(-) diff --git a/linc_convert/modalities/psoct/mosaic2d.py b/linc_convert/modalities/psoct/mosaic2d.py index f2aee72d..252abde2 100644 --- a/linc_convert/modalities/psoct/mosaic2d.py +++ b/linc_convert/modalities/psoct/mosaic2d.py @@ -15,6 +15,7 @@ from cyclopts import Parameter from dask.diagnostics import ProgressBar from PIL import Image +from tqdm import tqdm from linc_convert.modalities.psoct.cli import psoct from linc_convert.modalities.psoct.stitch import MosaicInfo, TileInfo @@ -283,7 +284,7 @@ def mosaic2d( tile_infos = [] logger.info(f"Loading and processing {len(tiles_config)} tiles") - for i, tile in enumerate(tiles_config): + for tile in tqdm(tiles_config, desc="Processing tiles"): x = tile.get("x") y = tile.get("y") file_path = tile.get("filepath") @@ -296,8 +297,6 @@ def mosaic2d( logger.warning(f"Tile file not found: {file_path}, skipping") continue - logger.info(f"Processing tile {i + 1}/{len(tiles_config)}: {file_path}") - # Load 2D image try: image = _load_image_tile(file_path, file_key) @@ -346,16 +345,9 @@ def mosaic2d( ) # Stitch using lazy dask operations - result = mosaic.stitch() - - # Compute the result - result = result.compute() - - - # Result is (width, height), but Zarr expects (height, width) for 2D - # Transpose to get (height, width) - result_2d = result.T + result_2d = mosaic.stitch() + # Apply mask if provided if mask: logger.info(f"Loading and applying mask: {mask}") @@ -389,33 +381,14 @@ def mosaic2d( raise # Compute result if it's still a dask array - result_2d = result_2d.compute() if isinstance(result_2d, da.Array) else result_2d + result_2d = np.array(result_2d.compute()) if isinstance(result_2d, da.Array) else result_2d - # Get dimensions from result - full_height, full_width = result_2d.shape scan_resolution_2d = scan_resolution[:2] if len(scan_resolution) >= 2 else [1.0, 1.0] - - # Save JPEG if requested - if jpeg_output: - logger.info(f"Saving JPEG preview: {jpeg_output}") - _save_jpeg(result_2d, jpeg_output) - - # Save TIFF if requested - if tiff_output: - logger.info(f"Saving TIFF: {tiff_output}") - _save_tiff(result_2d, tiff_output) - # Save NIfTI file if requested if nifti_output: logger.info(f"Saving NIfTI file: {nifti_output}") # Create affine matrix for 2D image - # NIfTI expects (x, y) but our data is (y, x), so we need to handle this affine = np.eye(4) - affine[0, 0] = scan_resolution_2d[1] # x voxel size - affine[1, 1] = scan_resolution_2d[0] # y voxel size - affine[0, 3] = -scan_resolution_2d[1] * full_width / 2.0 # center x - affine[1, 3] = -scan_resolution_2d[0] * full_height / 2.0 # center y - # Create NIfTI image (2D array needs to be expanded to 3D for NIfTI) # Add a singleton z dimension result_3d = result_2d[:, :] @@ -423,7 +396,18 @@ def mosaic2d( nii_img.header.set_xyzt_units(xyz="mm", t="sec") nib.save(nii_img, nifti_output) logger.info("NIfTI file saved successfully") + result_2d = result_2d.T + # Save JPEG if requested + if jpeg_output: + logger.info(f"Saving JPEG preview: {jpeg_output}") + _save_jpeg(result_2d, jpeg_output) + + # Save TIFF if requested + if tiff_output: + logger.info(f"Saving TIFF: {tiff_output}") + _save_tiff(result_2d, tiff_output) + # Save to Zarr if output is specified if general_config.out: logger.info(f"Saving to Zarr: {general_config.out}") From b10f06e85e43ff0c058c023fc251775b189833e7 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Fri, 5 Dec 2025 11:17:36 -0500 Subject: [PATCH 012/133] feat: add mosaic2d and mosaic3d to module --- linc_convert/modalities/psoct/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/linc_convert/modalities/psoct/__init__.py b/linc_convert/modalities/psoct/__init__.py index c842709e..89346c92 100644 --- a/linc_convert/modalities/psoct/__init__.py +++ b/linc_convert/modalities/psoct/__init__.py @@ -4,8 +4,8 @@ import h5py as _h5py # noqa: F401 import scipy as _scipy # noqa: F401 - __all__ = ["cli", "multi_slice", "single_volume"] + __all__ = ["cli", "multi_slice", "single_volume", "mosaic2d", "mosaic3d"] - from . import cli, multi_slice, single_volume + from . import cli, multi_slice, single_volume, mosaic2d, mosaic3d except ImportError: pass From ecc0d66a68bc3cf84331320d5cff397510bfb1ab Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Fri, 5 Dec 2025 11:18:11 -0500 Subject: [PATCH 013/133] feat: enhance mosaic3d function with unit handling and improved NIfTI header generation --- linc_convert/modalities/psoct/mosaic3d.py | 31 +++++++++++++---------- linc_convert/utils/io/zarr/helpers.py | 5 ++-- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/linc_convert/modalities/psoct/mosaic3d.py b/linc_convert/modalities/psoct/mosaic3d.py index f045e25a..25d3d727 100644 --- a/linc_convert/modalities/psoct/mosaic3d.py +++ b/linc_convert/modalities/psoct/mosaic3d.py @@ -25,6 +25,8 @@ from linc_convert.utils.io.zarr import from_config from linc_convert.utils.io.zarr.helpers import \ _compute_zarr_layout as compute_zarr_layout +from linc_convert.utils.nifti_header import build_nifti_header +from linc_convert.utils.unit import to_ome_unit from linc_convert.utils.zarr_config import ( GeneralConfig, NiftiConfig, @@ -137,6 +139,7 @@ def mosaic3d( tile_height = metadata.get("tile_height") depth = metadata.get("depth") scan_resolution = metadata.get("scan_resolution", [1.0, 1.0, 1.0]) + unit = metadata.get("unit", "millimeter") flip_z = metadata.get("flip_z", True) clip_x = metadata.get("clip_x", 0) clip_y = metadata.get("clip_y", 0) @@ -253,7 +256,7 @@ def mosaic3d( logger.info("Stitching tiles") # Get tile_overlap from metadata (defaults to "auto") - tile_overlap = metadata.get("tile_overlap", "auto") + tile_overlap = metadata.get("tile_overlap") # Create MosaicInfo for each modality - dimensions and coordinates extracted from tiles dbi_mosaic = MosaicInfo.from_tiles( @@ -276,7 +279,7 @@ def mosaic3d( tiles=[TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, o3d_tiles)], depth=depth, chunk_size=None, # Will use tile dimensions - circular_mean=False, + circular_mean=True, tile_overlap=tile_overlap, ) @@ -302,8 +305,7 @@ def mosaic3d( else: res = da.rechunk(res, chunks=chunk) - zarr_config.out = out - zgroup = from_config(zarr_config) + zgroup = from_config(out, zarr_config) zgroups.append(zgroup) writer = zgroup.create_array("0", shape=res.shape, dtype=np.float32, @@ -320,20 +322,21 @@ def mosaic3d( logger.info("Finished stitching, generating pyramid and metadata") for zgroup in zgroups: - zgroup.generate_pyramid() - zgroup.write_ome_metadata(["z", "y", "x"], space_scale=scan_resolution, - space_unit="millimeter") + zgroup.generate_pyramid(mode="mean", no_pyramid_axis=zarr_config.no_pyramid_axis) + logger.info("Write OME-Zarr multiscale metadata") + zgroup.write_ome_metadata(axes=["z", "y", "x"], space_scale=scan_resolution, + space_unit=to_ome_unit(unit)) - if not zarr_config.nii: + if not nifti_config.nii: continue - from niizarr import default_nifti_header - - nii_header = default_nifti_header( - zgroup["0"], zgroup._get_zarr_python_group().attrs["multiscales"] + header = build_nifti_header( + zgroup=zgroup, + voxel_size_zyx=tuple(scan_resolution), + unit=unit, + nii_config=nifti_config, ) - nii_header.set_xyzt_units("mm") - zgroup.write_nifti_header(nii_header) + zgroup.write_nifti_header(header) logger.info("Finished generating pyramid") diff --git a/linc_convert/utils/io/zarr/helpers.py b/linc_convert/utils/io/zarr/helpers.py index 42b8c831..b755c788 100644 --- a/linc_convert/utils/io/zarr/helpers.py +++ b/linc_convert/utils/io/zarr/helpers.py @@ -37,11 +37,12 @@ def _compute_zarr_layout( else: chunk_tc = (1 if zarr_config.chunk_time else shape[0],) shard_tc = (chunk_tc[0] if zarr_config.shard_time else shape[0],) - elif ndim == 3: + elif ndim == 3 or ndim == 2: chunk_tc = tuple() shard_tc = tuple() + else: - raise ValueError("Zarr layout only supports 3+ dimensions.") + raise ValueError("Zarr layout only supports 2+ dimensions.") chunk = zarr_config.chunk if len(chunk) > ndim: From 6491067906d1b068e10e8ccf70fd321eb2d3cb67 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Tue, 16 Dec 2025 10:13:27 -0500 Subject: [PATCH 014/133] feat: implement mosaic2d and mosaic3d modules for 2D and 3D mosaic creation from tile information --- .../psoct/{mosaic2d.py => mosaic.py} | 70 +++++++++++-------- .../psoct/{mosaic3d.py => mosaic_complex.py} | 61 ++++------------ 2 files changed, 57 insertions(+), 74 deletions(-) rename linc_convert/modalities/psoct/{mosaic2d.py => mosaic.py} (89%) rename linc_convert/modalities/psoct/{mosaic3d.py => mosaic_complex.py} (88%) diff --git a/linc_convert/modalities/psoct/mosaic2d.py b/linc_convert/modalities/psoct/mosaic.py similarity index 89% rename from linc_convert/modalities/psoct/mosaic2d.py rename to linc_convert/modalities/psoct/mosaic.py index 252abde2..71996442 100644 --- a/linc_convert/modalities/psoct/mosaic2d.py +++ b/linc_convert/modalities/psoct/mosaic.py @@ -5,9 +5,12 @@ import logging import os import os.path as op +from concurrent.futures import ThreadPoolExecutor +from concurrent.futures.process import ProcessPoolExecutor from typing import Annotated, Literal, Optional import cyclopts +import dask import dask.array as da import nibabel as nib import numpy as np @@ -54,7 +57,6 @@ def _load_image_tile(file_path: str, key: str = None) -> da.Array: - NIfTI files (with mmap for lazy loading) - Other formats via dask-image """ - import os.path as op # Check for .mat files if file_path.endswith('.mat'): @@ -62,11 +64,11 @@ def _load_image_tile(file_path: str, key: str = None) -> da.Array: if not hasattr(wrapper, "dtype"): raise ValueError(f"Could not load array from {file_path}") data = wrapper - # Handle 3D data - take middle slice - if data.ndim == 3: - data = data[:, :, data.shape[2] // 2] - elif data.ndim > 3: - data = data.reshape(data.shape[0], data.shape[1], -1)[:, :, 0] + # # Handle 3D data - take middle slice + # if data.ndim == 3: + # data = data[:, :, data.shape[2] // 2] + # elif data.ndim > 3: + # data = data.reshape(data.shape[0], data.shape[1], -1)[:, :, 0] return da.from_array(data, chunks="auto") # Check for zarr archives @@ -100,10 +102,10 @@ def _load_image_tile(file_path: str, key: str = None) -> da.Array: data = da.from_array(zarr_array_wrapper, chunks=zarr_array_wrapper.chunks) # Handle 3D data - take middle slice - if data.ndim == 3: - data = data[:, :, data.shape[2] // 2] - elif data.ndim > 3: - data = data.reshape(data.shape[0], data.shape[1], -1)[:, :, 0] + # if data.ndim == 3: + # data = data[:, :, data.shape[2] // 2] + # elif data.ndim > 3: + # data = data.reshape(data.shape[0], data.shape[1], -1)[:, :, 0] return data except Exception as e: logger.warning(f"Failed to load as zarr: {e}, trying other formats") @@ -114,13 +116,13 @@ def _load_image_tile(file_path: str, key: str = None) -> da.Array: # Use dataobj for lazy loading with mmap instead of get_fdata() dataobj = img.dataobj # Convert to dask array with lazy loading - data = da.from_array(dataobj, chunks="auto") + data = da.from_array(dataobj, chunks=img.shape) # Handle 3D data - take middle slice - if data.ndim == 3: - data = data[:, :, data.shape[2] // 2] - elif data.ndim > 3: - # Take first 2D slice - data = data.reshape(data.shape[0], data.shape[1], -1)[:, :, 0] + # if data.ndim == 3: + # data = data[:, :, data.shape[2] // 2] + # elif data.ndim > 3: + # # Take first 2D slice + # data = data.reshape(data.shape[0], data.shape[1], -1)[:, :, 0] return data # Try dask-image as fallback @@ -128,10 +130,10 @@ def _load_image_tile(file_path: str, key: str = None) -> da.Array: import dask_image.imread # noqa: F401 data = dask_image.imread.imread(file_path) # Handle 3D data - take middle slice - if data.ndim == 3: - data = data[:, :, data.shape[2] // 2] - elif data.ndim > 3: - data = data.reshape(data.shape[0], data.shape[1], -1)[:, :, 0] + # if data.ndim == 3: + # data = data[:, :, data.shape[2] // 2] + # elif data.ndim > 3: + # data = data.reshape(data.shape[0], data.shape[1], -1)[:, :, 0] return data except ImportError: raise ValueError( @@ -204,7 +206,6 @@ def _load_mask(mask_path: str) -> np.ndarray: return mask - @mosaic2d.default @autoconfig def mosaic2d( @@ -380,8 +381,9 @@ def mosaic2d( logger.error(f"Failed to load or apply mask: {e}") raise - # Compute result if it's still a dask array - result_2d = np.array(result_2d.compute()) if isinstance(result_2d, da.Array) else result_2d + if nifti_output or jpeg_output or tiff_output: + with ProgressBar(): + result_2d = np.array(result_2d) scan_resolution_2d = scan_resolution[:2] if len(scan_resolution) >= 2 else [1.0, 1.0] # Save NIfTI file if requested @@ -391,8 +393,8 @@ def mosaic2d( affine = np.eye(4) # Create NIfTI image (2D array needs to be expanded to 3D for NIfTI) # Add a singleton z dimension - result_3d = result_2d[:, :] - nii_img = nib.Nifti1Image(result_3d, affine) + # result_3d = result_2d[:, :] + nii_img = nib.Nifti1Image(result_2d, affine) nii_img.header.set_xyzt_units(xyz="mm", t="sec") nib.save(nii_img, nifti_output) logger.info("NIfTI file saved successfully") @@ -421,16 +423,28 @@ def mosaic2d( # Create array and write data directly (like single_volume.py) dataset = zgroup.create_array( - "0", shape=result_2d.shape, dtype=np.float32, zarr_config=zarr_config + "0", shape=result_2d.shape, dtype=np.float32, chunk=chunk, + shard=shard, + zarr_config=zarr_config ) # Write data directly using indexing (similar to single_volume.py) - dataset[...] = result_2d + if isinstance(result_2d, da.Array): + if shard: + result_2d = da.rechunk(result_2d, chunks=shard) + else: + result_2d = da.rechunk(result_2d, chunks=chunk) + with ProgressBar(): + da.store(result_2d, dataset, compute=True) + + else: + dataset[...] = result_2d + # Generate pyramid and metadata logger.info("Generating pyramid and metadata") zgroup.generate_pyramid() - zgroup.write_ome_metadata(["y", "x"], space_scale=scan_resolution_2d, + zgroup.write_ome_metadata(["z","y", "x"], space_scale=scan_resolution_2d, space_unit="millimeter") if nifti_config and nifti_config.nii: diff --git a/linc_convert/modalities/psoct/mosaic3d.py b/linc_convert/modalities/psoct/mosaic_complex.py similarity index 88% rename from linc_convert/modalities/psoct/mosaic3d.py rename to linc_convert/modalities/psoct/mosaic_complex.py index 25d3d727..50eee6bc 100644 --- a/linc_convert/modalities/psoct/mosaic3d.py +++ b/linc_convert/modalities/psoct/mosaic_complex.py @@ -50,12 +50,15 @@ def _load_tile_info_yaml(yaml_file: str) -> dict: def _load_complex_tile(file_path: str, key: str = None) -> da.Array: - """Load complex 3D data from a mat file.""" - wrapper = as_arraywrapper(file_path, key) - if not hasattr(wrapper, "dtype"): - raise ValueError(f"Could not load array from {file_path}") - data = wrapper - return da.from_array(data, chunks="auto") + """Load complex 3D data from a file.""" + if file_path.endswith('.mat'): + wrapper = as_arraywrapper(file_path, key) + if not hasattr(wrapper, "dtype"): + raise ValueError(f"Could not load array from {file_path}") + data = wrapper + elif file_path.endswith('.nii') or file_path.endswith('.nii.gz'): + data = nib.load(file_path).dataobj + return da.from_array(data, chunks=data.shape) def _shift_focus( @@ -135,6 +138,7 @@ def mosaic3d( # Get metadata metadata = tile_info.get("metadata", {}) + base_dir = metadata.get("base_dir") tile_width = metadata.get("tile_width") tile_height = metadata.get("tile_height") depth = metadata.get("depth") @@ -168,13 +172,13 @@ def mosaic3d( for tile in tiles_config: x = tile.get("x") y = tile.get("y") - file_path = tile.get("file_path") + file_path = tile.get("filepath") if x is None or y is None or file_path is None: logger.warning(f"Skipping incomplete tile: {tile}") continue x_coords_list.append(x) y_coords_list.append(y) - tile_files.append(file_path) + tile_files.append(op.join(base_dir,file_path)) if not tile_files: raise ValueError("No valid tiles found in YAML file") @@ -256,8 +260,8 @@ def mosaic3d( logger.info("Stitching tiles") # Get tile_overlap from metadata (defaults to "auto") - tile_overlap = metadata.get("tile_overlap") - + tile_overlap = metadata.get("tile_overlap", 0.2) + # Create MosaicInfo for each modality - dimensions and coordinates extracted from tiles dbi_mosaic = MosaicInfo.from_tiles( tiles=[TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, dbi_tiles)], @@ -316,7 +320,7 @@ def mosaic3d( # Store results task = da.store(results, writers, compute=False) with ProgressBar(): - task.compute() + da.compute(task) scan_resolution = scan_resolution[:3][::-1] # Reverse to (z, y, x) logger.info("Finished stitching, generating pyramid and metadata") @@ -340,38 +344,3 @@ def mosaic3d( logger.info("Finished generating pyramid") - -def mosaic3d_vol( - tile_info_file: str, - *, - tile_overlap: float | Literal["auto"] = "auto", - circular_mean: bool = False, - general_config: GeneralConfig = None, - nifti_config: NiftiConfig = None, - zarr_config: ZarrConfig = None, -) -> None: - """ - Create 3D mosaic from pre-processed volume tiles. - - Parameters - ---------- - tile_info_file : str - Path to YAML file containing tile information. - tile_overlap : float | Literal["auto"] - Tile overlap in pixels. If "auto", compute from tile coordinates. - circular_mean : bool - Whether to use circular mean for blending. - general_config : GeneralConfig, optional - General configuration. - nifti_config : NiftiConfig, optional - NIfTI configuration. - zarr_config : ZarrConfig, optional - Zarr configuration. - """ - # load tile info - # normalize tile_overlap, if auto, find the max overlap of all tiles, if float number, use as percentile of the tile size - - # load volume - # mosaic volume - # save mosaic volume - pass From c8f0aae76562335d5ecf27405ab6caa2d6f591c3 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Tue, 16 Dec 2025 10:13:54 -0500 Subject: [PATCH 015/133] refactor: update module exports to include renamed mosaic and mosaic_complex functions --- linc_convert/modalities/psoct/__init__.py | 4 +- linc_convert/modalities/psoct/mosaic.py | 119 ++++++++++-------- .../modalities/psoct/mosaic_complex.py | 26 ++-- 3 files changed, 81 insertions(+), 68 deletions(-) diff --git a/linc_convert/modalities/psoct/__init__.py b/linc_convert/modalities/psoct/__init__.py index 89346c92..e5f3731d 100644 --- a/linc_convert/modalities/psoct/__init__.py +++ b/linc_convert/modalities/psoct/__init__.py @@ -4,8 +4,8 @@ import h5py as _h5py # noqa: F401 import scipy as _scipy # noqa: F401 - __all__ = ["cli", "multi_slice", "single_volume", "mosaic2d", "mosaic3d"] + __all__ = ["cli", "multi_slice", "single_volume", "mosaic", "mosaic_complex"] - from . import cli, multi_slice, single_volume, mosaic2d, mosaic3d + from . import cli, multi_slice, single_volume, mosaic, mosaic_complex except ImportError: pass diff --git a/linc_convert/modalities/psoct/mosaic.py b/linc_convert/modalities/psoct/mosaic.py index 71996442..d82693f0 100644 --- a/linc_convert/modalities/psoct/mosaic.py +++ b/linc_convert/modalities/psoct/mosaic.py @@ -3,21 +3,17 @@ """ import logging -import os import os.path as op -from concurrent.futures import ThreadPoolExecutor -from concurrent.futures.process import ProcessPoolExecutor -from typing import Annotated, Literal, Optional +from typing import Annotated, Optional import cyclopts -import dask import dask.array as da import nibabel as nib import numpy as np import yaml +from PIL import Image from cyclopts import Parameter from dask.diagnostics import ProgressBar -from PIL import Image from tqdm import tqdm from linc_convert.modalities.psoct.cli import psoct @@ -27,7 +23,6 @@ from linc_convert.utils.io.zarr.helpers import \ _compute_zarr_layout as compute_zarr_layout from linc_convert.utils.nifti_header import build_nifti_header -from linc_convert.utils.unit import to_ome_unit from linc_convert.utils.zarr_config import ( GeneralConfig, NiftiConfig, @@ -37,8 +32,8 @@ logger = logging.getLogger(__name__) -mosaic2d = cyclopts.App(name="mosaic2d", help_format="markdown") -psoct.command(mosaic2d) +mosaic = cyclopts.App(name="mosaic", help_format="markdown") +psoct.command(mosaic) def _load_tile_info_yaml(yaml_file: str) -> dict: @@ -57,7 +52,7 @@ def _load_image_tile(file_path: str, key: str = None) -> da.Array: - NIfTI files (with mmap for lazy loading) - Other formats via dask-image """ - + # Check for .mat files if file_path.endswith('.mat'): wrapper = as_arraywrapper(file_path, key) @@ -70,37 +65,40 @@ def _load_image_tile(file_path: str, key: str = None) -> da.Array: # elif data.ndim > 3: # data = data.reshape(data.shape[0], data.shape[1], -1)[:, :, 0] return da.from_array(data, chunks="auto") - + # Check for zarr archives # Check if path looks like zarr (directory with zarr metadata files) is_zarr = False if op.isdir(file_path): # Check for zarr v3 (zarr.json) or v2 (.zgroup or .zarray) if op.exists(op.join(file_path, 'zarr.json')) or \ - op.exists(op.join(file_path, '.zgroup')) or \ - op.exists(op.join(file_path, '.zarray')): + op.exists(op.join(file_path, '.zgroup')) or \ + op.exists(op.join(file_path, '.zarray')): is_zarr = True elif file_path.endswith('.zarr') or '.zarr' in file_path: is_zarr = True - + if is_zarr: try: from linc_convert.utils.io.zarr import open_array, open_group - + # Try to open as zarr group first try: zarr_group = open_group(file_path, mode="r") # It's a group, try to get array '0' if '0' in zarr_group.keys(): zarr_array_wrapper = zarr_group['0'] - data = da.from_array(zarr_array_wrapper, chunks=zarr_array_wrapper.chunks) + data = da.from_array(zarr_array_wrapper, + chunks=zarr_array_wrapper.chunks) else: - raise ValueError(f"Zarr group at {file_path} does not contain array '0'") + raise ValueError( + f"Zarr group at {file_path} does not contain array '0'") except (ValueError, KeyError): # Try as array zarr_array_wrapper = open_array(file_path, mode="r") - data = da.from_array(zarr_array_wrapper, chunks=zarr_array_wrapper.chunks) - + data = da.from_array(zarr_array_wrapper, + chunks=zarr_array_wrapper.chunks) + # Handle 3D data - take middle slice # if data.ndim == 3: # data = data[:, :, data.shape[2] // 2] @@ -109,7 +107,7 @@ def _load_image_tile(file_path: str, key: str = None) -> da.Array: return data except Exception as e: logger.warning(f"Failed to load as zarr: {e}, trying other formats") - + # Check for NIfTI files if file_path.endswith(('.nii', '.nii.gz')): img = nib.load(file_path) @@ -124,10 +122,11 @@ def _load_image_tile(file_path: str, key: str = None) -> da.Array: # # Take first 2D slice # data = data.reshape(data.shape[0], data.shape[1], -1)[:, :, 0] return data - + # Try dask-image as fallback try: import dask_image.imread # noqa: F401 + data = dask_image.imread.imread(file_path) # Handle 3D data - take middle slice # if data.ndim == 3: @@ -138,7 +137,8 @@ def _load_image_tile(file_path: str, key: str = None) -> da.Array: except ImportError: raise ValueError( f"Could not load {file_path}. " - "Supported formats: .mat, .zarr, .nii/.nii.gz, or formats supported by dask-image" + "Supported formats: .mat, .zarr, .nii/.nii.gz, or formats supported by " + "dask-image" ) except Exception as e: raise ValueError(f"Failed to load {file_path} with dask-image: {e}") @@ -163,13 +163,15 @@ def _save_tiff(image: np.ndarray, output_path: str): """Save image as TIFF without normalization - data is saved as-is.""" try: import tifffile + # Save data as-is without any normalization or scaling # Preserve original dtype and values tifffile.imwrite(output_path, image) except ImportError: # Fallback to PIL if tifffile not available # PIL requires uint8 or uint16, so we need to convert - # But we don't normalize - just convert dtype preserving values as much as possible + # But we don't normalize - just convert dtype preserving values as much as + # possible if image.dtype in (np.float32, np.float64): # For float, convert to uint16 without normalization # This will clip values outside [0, 65535] range @@ -191,22 +193,23 @@ def _load_mask(mask_path: str) -> np.ndarray: """ # Use the same loading function as tiles mask = _load_image_tile(mask_path, key=None) - + # Ensure it's a 2D array if mask.ndim != 2: if mask.ndim == 3 and mask.shape[2] == 1: mask = mask[:, :, 0] else: raise ValueError(f"Mask must be 2D, got shape {mask.shape}") - + # Convert to binary (0 or 1) # Handle both boolean and numeric masks mask = mask.compute() if isinstance(mask, da.Array) else mask mask = (mask > 0).astype(np.float32) - + return mask -@mosaic2d.default + +@mosaic.default @autoconfig def mosaic2d( tile_info_file: str, @@ -239,11 +242,14 @@ def mosaic2d( circular_mean : bool Whether to use circular mean for blending. clip_x : int - Number of pixels to clip from the left side of each tile. Coordinates will be shifted accordingly. + Number of pixels to clip from the left side of each tile. Coordinates will be + shifted accordingly. clip_y : int - Number of pixels to clip from the top side of each tile. Coordinates will be shifted accordingly. + Number of pixels to clip from the top side of each tile. Coordinates will be + shifted accordingly. mask : str, optional - Path to binary mask file to apply to the result. Mask should be 2D and match the result dimensions. + Path to binary mask file to apply to the result. Mask should be 2D and match + the result dimensions. zarr_config : ZarrConfig, optional Zarr configuration. general_config : GeneralConfig, optional @@ -271,11 +277,11 @@ def mosaic2d( clip_x = metadata.get("clip_x", 0) if clip_y == 0: clip_y = metadata.get("clip_y", 0) - + # Get mask from metadata if not provided as parameter if mask is None: mask = metadata.get("mask") - + # Use tile_overlap from function parameter (defaults to "auto") # If "auto" and metadata has tile_overlap, use that instead if tile_overlap == "auto" and "tile_overlap" in metadata: @@ -314,13 +320,15 @@ def mosaic2d( elif image.ndim >= 3: image = image[clip_x:, clip_y:, ...] else: - logger.warning(f"Unexpected image dimensions {image.ndim} for {file_path}") + logger.warning( + f"Unexpected image dimensions {image.ndim} for {file_path}") continue - + # Shift coordinates to account for clipping # After clipping clip_x pixels from the left, the remaining content # represents what was at position clip_x in the original tile. - # To align this correctly in the mosaic, we shift coordinates by +clip_x and +clip_y + # To align this correctly in the mosaic, we shift coordinates by +clip_x + # and +clip_y x = int(x) + clip_x y = int(y) + clip_y else: @@ -335,7 +343,7 @@ def mosaic2d( # Stitch tiles using MosaicInfo logger.info("Stitching tiles") - + # Create MosaicInfo for 2D mosaic - dimensions and coordinates extracted from tiles mosaic = MosaicInfo.from_tiles( tiles=tile_infos, @@ -344,11 +352,10 @@ def mosaic2d( circular_mean=circular_mean, tile_overlap=tile_overlap, ) - + # Stitch using lazy dask operations result_2d = mosaic.stitch() - # Apply mask if provided if mask: logger.info(f"Loading and applying mask: {mask}") @@ -357,35 +364,41 @@ def mosaic2d( # Check if mask dimensions match result if mask_array.shape != result_2d.shape: logger.warning( - f"Mask shape {mask_array.shape} does not match result shape {result_2d.shape}. " + f"Mask shape {mask_array.shape} does not match result shape " + f"{result_2d.shape}. " "Attempting to resize mask." ) # Resize mask to match result if possible try: from scipy.ndimage import zoom + zoom_factors = (result_2d.shape[0] / mask_array.shape[0], - result_2d.shape[1] / mask_array.shape[1]) - mask_array = zoom(mask_array, zoom_factors, order=0) # order=0 for nearest neighbor + result_2d.shape[1] / mask_array.shape[1]) + mask_array = zoom(mask_array, zoom_factors, + order=0) # order=0 for nearest neighbor # Ensure binary after resize mask_array = (mask_array > 0.5).astype(np.float32) except ImportError: raise ValueError( "scipy is required for mask resizing. " - "Please ensure mask dimensions match result dimensions or install scipy." + "Please ensure mask dimensions match result dimensions or " + "install scipy." ) - - # Apply mask (multiply: 0 where mask is 0, keep original value where mask is 1) + + # Apply mask (multiply: 0 where mask is 0, keep original value where mask + # is 1) result_2d = result_2d * mask_array logger.info("Mask applied successfully") except Exception as e: logger.error(f"Failed to load or apply mask: {e}") raise - + if nifti_output or jpeg_output or tiff_output: with ProgressBar(): result_2d = np.array(result_2d) - - scan_resolution_2d = scan_resolution[:2] if len(scan_resolution) >= 2 else [1.0, 1.0] + + scan_resolution_2d = scan_resolution[:2] if len(scan_resolution) >= 2 else [1.0, + 1.0] # Save NIfTI file if requested if nifti_output: logger.info(f"Saving NIfTI file: {nifti_output}") @@ -409,11 +422,11 @@ def mosaic2d( if tiff_output: logger.info(f"Saving TIFF: {tiff_output}") _save_tiff(result_2d, tiff_output) - + # Save to Zarr if output is specified if general_config.out: logger.info(f"Saving to Zarr: {general_config.out}") - + # Compute zarr layout for 2D chunk, shard = compute_zarr_layout(result_2d.shape, np.float32, zarr_config) @@ -427,7 +440,7 @@ def mosaic2d( shard=shard, zarr_config=zarr_config ) - + # Write data directly using indexing (similar to single_volume.py) if isinstance(result_2d, da.Array): if shard: @@ -440,11 +453,11 @@ def mosaic2d( else: dataset[...] = result_2d - + # Generate pyramid and metadata logger.info("Generating pyramid and metadata") zgroup.generate_pyramid() - zgroup.write_ome_metadata(["z","y", "x"], space_scale=scan_resolution_2d, + zgroup.write_ome_metadata(["z", "y", "x"], space_scale=scan_resolution_2d, space_unit="millimeter") if nifti_config and nifti_config.nii: @@ -459,5 +472,5 @@ def mosaic2d( logger.info("Finished generating pyramid") else: logger.info("Skipping Zarr output (no output path specified)") - + logger.info("Finished mosaic2d") diff --git a/linc_convert/modalities/psoct/mosaic_complex.py b/linc_convert/modalities/psoct/mosaic_complex.py index 50eee6bc..3fc75727 100644 --- a/linc_convert/modalities/psoct/mosaic_complex.py +++ b/linc_convert/modalities/psoct/mosaic_complex.py @@ -5,10 +5,9 @@ """ import logging -import os import os.path as op import warnings -from typing import Annotated, Literal +from typing import Annotated import cyclopts import dask.array as da @@ -36,8 +35,8 @@ logger = logging.getLogger(__name__) -mosaic3d = cyclopts.App(name="mosaic3d", help_format="markdown") -psoct.command(mosaic3d) +mosaic_complex = cyclopts.App(name="mosaic_complex", help_format="markdown") +psoct.command(mosaic_complex) # 3d data has pixdim incorrectly set and cause nibabel keep logging warning nib.imageglobals.logger.setLevel(40) @@ -91,7 +90,7 @@ def shift_block(block, block_info=None): return tile.map_blocks(shift_block, dtype=tile.dtype, chunks=result_shape) -@mosaic3d.default +@mosaic_complex.default @autoconfig def mosaic3d( tile_info_file: str, @@ -178,7 +177,7 @@ def mosaic3d( continue x_coords_list.append(x) y_coords_list.append(y) - tile_files.append(op.join(base_dir,file_path)) + tile_files.append(op.join(base_dir, file_path)) if not tile_files: raise ValueError("No valid tiles found in YAML file") @@ -258,11 +257,12 @@ def mosaic3d( # Stitch tiles for each modality using MosaicInfo logger.info("Stitching tiles") - + # Get tile_overlap from metadata (defaults to "auto") tile_overlap = metadata.get("tile_overlap", 0.2) - # Create MosaicInfo for each modality - dimensions and coordinates extracted from tiles + # Create MosaicInfo for each modality - dimensions and coordinates extracted from + # tiles dbi_mosaic = MosaicInfo.from_tiles( tiles=[TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, dbi_tiles)], depth=depth, @@ -270,7 +270,7 @@ def mosaic3d( circular_mean=False, tile_overlap=tile_overlap, ) - + r3d_mosaic = MosaicInfo.from_tiles( tiles=[TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, r3d_tiles)], depth=depth, @@ -278,7 +278,7 @@ def mosaic3d( circular_mean=False, tile_overlap=tile_overlap, ) - + o3d_mosaic = MosaicInfo.from_tiles( tiles=[TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, o3d_tiles)], depth=depth, @@ -286,7 +286,7 @@ def mosaic3d( circular_mean=True, tile_overlap=tile_overlap, ) - + # Stitch using lazy dask operations dBI_result = dbi_mosaic.stitch() R3D_result = r3d_mosaic.stitch() @@ -326,7 +326,8 @@ def mosaic3d( logger.info("Finished stitching, generating pyramid and metadata") for zgroup in zgroups: - zgroup.generate_pyramid(mode="mean", no_pyramid_axis=zarr_config.no_pyramid_axis) + zgroup.generate_pyramid(mode="mean", + no_pyramid_axis=zarr_config.no_pyramid_axis) logger.info("Write OME-Zarr multiscale metadata") zgroup.write_ome_metadata(axes=["z", "y", "x"], space_scale=scan_resolution, space_unit=to_ome_unit(unit)) @@ -343,4 +344,3 @@ def mosaic3d( zgroup.write_nifti_header(header) logger.info("Finished generating pyramid") - From d290267e984552f4bb347e1070e8caaa352bc1b9 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Tue, 16 Dec 2025 14:33:50 -0500 Subject: [PATCH 016/133] Enhance SpoolSetInterpreter: Add raw_assembled_spool_shape attribute and rename spool_file to spool_data for clarity --- linc_convert/utils/io/spool.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/linc_convert/utils/io/spool.py b/linc_convert/utils/io/spool.py index 2cd1cb74..17f146df 100644 --- a/linc_convert/utils/io/spool.py +++ b/linc_convert/utils/io/spool.py @@ -66,7 +66,11 @@ def __init__( self.spool_shape[2], self.spool_shape[0] * len(self.spool_files), ) - + self.raw_assembled_spool_shape = ( + self.spool_shape[1], + self.spool_shape[2], + self.spool_shape[0] * len(self.spool_files), + ) def _load_info_file(self, info_file: str | PathLike[str]) -> None: loaded_info = loadmat(info_file) info = loaded_info.get("info", None) @@ -254,10 +258,10 @@ def assemble(self) -> np.ndarray: canvas = np.zeros( (axis_0_shape * len(self), *self.spool_shape[1:]), dtype=self.dtype ) - for idx, spool_file in enumerate(self): + for idx, spool_data in enumerate(self): start = idx * axis_0_shape stop = start + axis_0_shape - canvas[start:stop] = spool_file + canvas[start:stop] = spool_data return canvas # this is the modified version for lsm pipeline From 4a11c0c6d56246800a70ff00513320c8b23f694d Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Tue, 16 Dec 2025 14:34:24 -0500 Subject: [PATCH 017/133] feat: Add stripe module for converting stripe spool files to Zarr format --- linc_convert/modalities/lsm/__init__.py | 4 +- linc_convert/modalities/lsm/stripe.py | 105 ++++++++++++++++++++++++ 2 files changed, 107 insertions(+), 2 deletions(-) create mode 100644 linc_convert/modalities/lsm/stripe.py diff --git a/linc_convert/modalities/lsm/__init__.py b/linc_convert/modalities/lsm/__init__.py index 402fb20f..55bd86c1 100644 --- a/linc_convert/modalities/lsm/__init__.py +++ b/linc_convert/modalities/lsm/__init__.py @@ -3,8 +3,8 @@ try: import tifffile as _ # noqa: F401 - __all__ = ["cli", "mosaic", "multi_slice", "spool"] + __all__ = ["cli", "mosaic", "multi_slice", "spool", "stripe"] - from . import cli, mosaic, multi_slice, spool + from . import cli, mosaic, multi_slice, spool, stripe except ImportError: pass diff --git a/linc_convert/modalities/lsm/stripe.py b/linc_convert/modalities/lsm/stripe.py new file mode 100644 index 00000000..36185c07 --- /dev/null +++ b/linc_convert/modalities/lsm/stripe.py @@ -0,0 +1,105 @@ +""" +Convert spool .dat files set generated by the LSM pipeline into a zarr. + +Example input files can be found at +https://lincbrain.org/dandiset/000010/draft/files?location=sourcedata%2Frawdata +%2Fmicr%2Fsample18_run10__y10_z01_HR&page=1 +""" +import logging + +# stdlib +import os +import os.path as op +import re +import warnings +from collections import defaultdict, namedtuple +from glob import glob +import dask.array as da +# externals +import cyclopts +import numpy as np + +# internals +from linc_convert.modalities.lsm.cli import lsm +from linc_convert.utils.io.spool import SpoolSetInterpreter +from linc_convert.utils.io.zarr import from_config +from linc_convert.utils.nifti_header import build_nifti_header +from linc_convert.utils.zarr_config import ( + GeneralConfig, + NiftiConfig, + ZarrConfig, + autoconfig, +) + +logger = logging.getLogger(__name__) +stripe = cyclopts.App(name="stripe", help_format="markdown") +lsm.command(stripe) + + +@stripe.default +@autoconfig +def convert( + stripe_directory: str, + info_file:str, + *, + voxel_size: list[float] = (1, 1, 1), + general_config: GeneralConfig = None, + zarr_config: ZarrConfig = None, + nii_config: NiftiConfig = None, +) -> None: + """ + Convert a collection of spool files generated by the LSM pipeline into Zarr. + + Parameters + ---------- + inp + Path to the root directory, which contains a collection of + subfolders named `*_y{:02d}_z{:02d}*_HR`, each containing a + collection of files named `*spool.dat`. + TODO: add instrution for metadata file and info file + overlap + Number of pixels between slices that are overlapped + voxel_size + Voxel size along the X, Y and Z dimensions, in microns. + general_config + General configuration + zarr_config + Zarr related configuration + nii_config + NIfTI header related configuration + """ + + reader = SpoolSetInterpreter(stripe_directory, info_file) + + + # Set default output path if not provided + general_config.set_default_name(op.basename(info_file)) + + fullshape = reader.raw_assembled_spool_shape + + # Initialize Zarr group and array + omz = from_config(general_config.out, zarr_config) + array = omz.create_array("0", shape=fullshape, zarr_config=zarr_config, dtype=reader.dtype) + logger.info(general_config.out) + result = reader.assemble() + result = result.transpose(1,2,0) + array[:] = result[:] + print("Write level 0 with shape", fullshape) + + + voxel_size = list(map(float, reversed(voxel_size))) + # Generate Zarr pyramid and metadata + omz.generate_pyramid(levels=zarr_config.levels) + omz.write_ome_metadata(axes=["z", "y", "x"], space_scale=voxel_size) + + if nii_config.nii: + header = build_nifti_header( + zgroup=omz, + voxel_size_zyx=tuple(voxel_size), + unit="micrometer", + nii_config=nii_config, + ) + omz.write_nifti_header(header) + + logger.info("Conversion complete.") + From bb5d3129a49a2c67a15441163fa089e76d4e7372 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Tue, 16 Dec 2025 14:31:31 -0500 Subject: [PATCH 018/133] fix: center_affine call in NIfTI header processing --- linc_convert/utils/nifti_header.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linc_convert/utils/nifti_header.py b/linc_convert/utils/nifti_header.py index b2e40229..006fef62 100644 --- a/linc_convert/utils/nifti_header.py +++ b/linc_convert/utils/nifti_header.py @@ -147,7 +147,7 @@ def _recompute_affine_if_requested( aff = orientation_to_affine(orientation, *voxel_size_xyz) if center: - aff = center_affine(aff, *shape_xyz) + aff = center_affine(aff, shape_xyz) return aff From 807fc0a03152e2e60e29637dbaa0a263de62aa6d Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Tue, 16 Dec 2025 14:31:40 -0500 Subject: [PATCH 019/133] fix: specify shape and dtype parameters in create_array method --- linc_convert/utils/io/zarr/drivers/zarr_python.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linc_convert/utils/io/zarr/drivers/zarr_python.py b/linc_convert/utils/io/zarr/drivers/zarr_python.py index 526f5255..f280ac5f 100644 --- a/linc_convert/utils/io/zarr/drivers/zarr_python.py +++ b/linc_convert/utils/io/zarr/drivers/zarr_python.py @@ -191,7 +191,7 @@ def create_array( ) -> ZarrPythonArray: """Create a new array within this group.""" if zarr_config is None: - arr = self._zgroup.create_array(name, shape, dtype, **kwargs) + arr = self._zgroup.create_array(name, shape=shape, dtype=dtype, **kwargs) if data is not None: arr[:] = data return ZarrPythonArray(arr) From a7d9b9b97d88032cf016b03b9ba3e15e2e1f271c Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Tue, 16 Dec 2025 14:31:31 -0500 Subject: [PATCH 020/133] fix: center_affine call in NIfTI header processing --- linc_convert/utils/nifti_header.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linc_convert/utils/nifti_header.py b/linc_convert/utils/nifti_header.py index b2e40229..006fef62 100644 --- a/linc_convert/utils/nifti_header.py +++ b/linc_convert/utils/nifti_header.py @@ -147,7 +147,7 @@ def _recompute_affine_if_requested( aff = orientation_to_affine(orientation, *voxel_size_xyz) if center: - aff = center_affine(aff, *shape_xyz) + aff = center_affine(aff, shape_xyz) return aff From d16578f247dade6fb354de0d5487145099264984 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Tue, 16 Dec 2025 14:31:40 -0500 Subject: [PATCH 021/133] fix: specify shape and dtype parameters in create_array method --- linc_convert/utils/io/zarr/drivers/zarr_python.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linc_convert/utils/io/zarr/drivers/zarr_python.py b/linc_convert/utils/io/zarr/drivers/zarr_python.py index 116d6c9e..f07ca575 100644 --- a/linc_convert/utils/io/zarr/drivers/zarr_python.py +++ b/linc_convert/utils/io/zarr/drivers/zarr_python.py @@ -194,7 +194,7 @@ def create_array( ) -> ZarrPythonArray: """Create a new array within this group.""" if zarr_config is None: - arr = self._zgroup.create_array(name, shape, dtype, **kwargs) + arr = self._zgroup.create_array(name, shape=shape, dtype=dtype, **kwargs) if data is not None: arr[:] = data return ZarrPythonArray(arr) From 94bd1b1de05ecd34e460707a50fba69763e1497b Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Tue, 16 Dec 2025 16:50:44 -0500 Subject: [PATCH 022/133] refactor: rename mosaic3d function to mosaic_complex for clarity --- linc_convert/modalities/psoct/mosaic_complex.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linc_convert/modalities/psoct/mosaic_complex.py b/linc_convert/modalities/psoct/mosaic_complex.py index 3fc75727..6114b41b 100644 --- a/linc_convert/modalities/psoct/mosaic_complex.py +++ b/linc_convert/modalities/psoct/mosaic_complex.py @@ -92,7 +92,7 @@ def shift_block(block, block_info=None): @mosaic_complex.default @autoconfig -def mosaic3d( +def mosaic_complex( tile_info_file: str, *, dbi_output: Annotated[str, Parameter(name=["--dBI", "-d"])], From 58e5e0b8f09ca066ba51802eb038856b805b0f1d Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Fri, 5 Dec 2025 11:28:59 -0500 Subject: [PATCH 023/133] Add Docker support with Dockerfile, .dockerignore, and GitHub Actions workflow --- .dockerignore | 53 ++++++++++++++++++++++++ .github/workflows/docker-build.yml | 65 ++++++++++++++++++++++++++++++ Dockerfile | 47 +++++++++++++++++++++ 3 files changed, 165 insertions(+) create mode 100644 .dockerignore create mode 100644 .github/workflows/docker-build.yml create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..4c1144cc --- /dev/null +++ b/.dockerignore @@ -0,0 +1,53 @@ +# Git +.git +.gitignore +.github + +# Python +__pycache__ +*.py[cod] +*$py.class +*.so +.Python +*.egg-info +dist +build +.venv +venv +env +ENV + +# Testing +.pytest_cache +.coverage +htmlcov +.tox +.mypy_cache +.ruff_cache + +# Documentation +site +docs/requirements.txt + +# IDE +.vscode +.idea +*.swp +*.swo +*~ + +# OS +.DS_Store +Thumbs.db + +# Project specific +scripts/*.ipynb +scripts/*.nii +scripts/*.tiff +scripts/*.jpeg +scripts/*.yaml +tests/data + +# Poetry +poetry.lock.bak + diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml new file mode 100644 index 00000000..ed3707c7 --- /dev/null +++ b/.github/workflows/docker-build.yml @@ -0,0 +1,65 @@ +name: Build and Push Docker Image + +on: + push: + branches: + - main + - master + tags: + - 'v*' + pull_request: + branches: + - main + - master + workflow_dispatch: + +env: + REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository }} + +jobs: + build-and-push: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to Container Registry + if: github.event_name != 'pull_request' + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + tags: | + type=ref,event=branch + type=ref,event=pr + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} + type=semver,pattern={{major}} + type=sha,prefix={{branch}}- + type=raw,value=latest,enable={{is_default_branch}} + + - name: Build and push Docker image + uses: docker/build-push-action@v5 + with: + context: . + push: ${{ github.event_name != 'pull_request' }} + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + cache-from: type=gha + cache-to: type=gha,mode=max + diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..afb90caa --- /dev/null +++ b/Dockerfile @@ -0,0 +1,47 @@ +# Use Python 3.11 as base image +FROM python:3.11-slim + +# Set working directory +WORKDIR /app + +# Install system dependencies +RUN apt-get update && apt-get install -y \ + build-essential \ + curl \ + && rm -rf /var/lib/apt/lists/* + +# Install Poetry +ENV POETRY_VERSION=1.8.4 +ENV POETRY_HOME=/opt/poetry +ENV POETRY_VENV=/opt/poetry-venv +ENV POETRY_CACHE_DIR=/opt/poetry-cache + +RUN python3 -m venv $POETRY_VENV \ + && $POETRY_VENV/bin/pip install -U pip setuptools \ + && $POETRY_VENV/bin/pip install poetry==${POETRY_VERSION} \ + && ln -s ${POETRY_VENV}/bin/poetry /usr/local/bin/poetry \ + && chmod 755 /usr/local/bin/poetry + +# Configure Poetry: Don't create virtual environment, install dependencies to system +ENV POETRY_NO_INTERACTION=1 \ + POETRY_VENV_IN_PROJECT=1 \ + POETRY_CACHE_DIR=/opt/poetry-cache + +# Copy Poetry configuration files +COPY pyproject.toml poetry.lock ./ + +# Install dependencies +RUN poetry install --no-dev --no-root + +# Copy application code +COPY . . + +# Install the application +RUN poetry install --no-dev + +# Set the entrypoint +ENTRYPOINT ["linc-convert"] + +# Default command (can be overridden) +CMD ["--help"] + From 8c7c547f4b1c04ea11c610f1e02de3a692d0c7c6 Mon Sep 17 00:00:00 2001 From: "Kaidong (Calvin) Chai" Date: Tue, 16 Dec 2025 15:44:48 -0500 Subject: [PATCH 024/133] Refactor Dockerfile for Poetry installation and entrypoint Updated the Dockerfile to install all dependencies and set the entrypoint to use Poetry. --- Dockerfile | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/Dockerfile b/Dockerfile index afb90caa..85e345cd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,8 +7,7 @@ WORKDIR /app # Install system dependencies RUN apt-get update && apt-get install -y \ build-essential \ - curl \ - && rm -rf /var/lib/apt/lists/* + curl # Install Poetry ENV POETRY_VERSION=1.8.4 @@ -28,20 +27,19 @@ ENV POETRY_NO_INTERACTION=1 \ POETRY_CACHE_DIR=/opt/poetry-cache # Copy Poetry configuration files -COPY pyproject.toml poetry.lock ./ +COPY pyproject.toml ./ # Install dependencies -RUN poetry install --no-dev --no-root +RUN poetry install --no-dev --no-root --extras all # Copy application code COPY . . # Install the application -RUN poetry install --no-dev +RUN poetry install --no-dev --extras all # Set the entrypoint -ENTRYPOINT ["linc-convert"] +ENTRYPOINT ["poetry", "run", "linc-convert"] # Default command (can be overridden) CMD ["--help"] - From 0c376bab0438ee4c3536414bd9127f07cfc9c697 Mon Sep 17 00:00:00 2001 From: "Kaidong (Calvin) Chai" Date: Tue, 16 Dec 2025 15:48:23 -0500 Subject: [PATCH 025/133] add poetry lock file --- poetry.lock | 1116 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1116 insertions(+) create mode 100644 poetry.lock diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 00000000..91792d60 --- /dev/null +++ b/poetry.lock @@ -0,0 +1,1116 @@ +# This file is automatically @generated by Poetry 1.8.4 and should not be changed by hand. + +[[package]] +name = "asciitree" +version = "0.3.3" +description = "Draws ASCII trees." +optional = false +python-versions = "*" +files = [ + {file = "asciitree-0.3.3.tar.gz", hash = "sha256:4aa4b9b649f85e3fcb343363d97564aa1fb62e249677f2e18a96765145cc0f6e"}, +] + +[[package]] +name = "attrs" +version = "24.2.0" +description = "Classes Without Boilerplate" +optional = false +python-versions = ">=3.7" +files = [ + {file = "attrs-24.2.0-py3-none-any.whl", hash = "sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2"}, + {file = "attrs-24.2.0.tar.gz", hash = "sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346"}, +] + +[package.extras] +benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"] +tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] + +[[package]] +name = "cfgv" +version = "3.4.0" +description = "Validate configuration and produce human readable error messages." +optional = false +python-versions = ">=3.8" +files = [ + {file = "cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9"}, + {file = "cfgv-3.4.0.tar.gz", hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560"}, +] + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "coverage" +version = "7.6.4" +description = "Code coverage measurement for Python" +optional = false +python-versions = ">=3.9" +files = [ + {file = "coverage-7.6.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5f8ae553cba74085db385d489c7a792ad66f7f9ba2ee85bfa508aeb84cf0ba07"}, + {file = "coverage-7.6.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8165b796df0bd42e10527a3f493c592ba494f16ef3c8b531288e3d0d72c1f6f0"}, + {file = "coverage-7.6.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c7c8b95bf47db6d19096a5e052ffca0a05f335bc63cef281a6e8fe864d450a72"}, + {file = "coverage-7.6.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8ed9281d1b52628e81393f5eaee24a45cbd64965f41857559c2b7ff19385df51"}, + {file = "coverage-7.6.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0809082ee480bb8f7416507538243c8863ac74fd8a5d2485c46f0f7499f2b491"}, + {file = "coverage-7.6.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d541423cdd416b78626b55f123412fcf979d22a2c39fce251b350de38c15c15b"}, + {file = "coverage-7.6.4-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:58809e238a8a12a625c70450b48e8767cff9eb67c62e6154a642b21ddf79baea"}, + {file = "coverage-7.6.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c9b8e184898ed014884ca84c70562b4a82cbc63b044d366fedc68bc2b2f3394a"}, + {file = "coverage-7.6.4-cp310-cp310-win32.whl", hash = "sha256:6bd818b7ea14bc6e1f06e241e8234508b21edf1b242d49831831a9450e2f35fa"}, + {file = "coverage-7.6.4-cp310-cp310-win_amd64.whl", hash = "sha256:06babbb8f4e74b063dbaeb74ad68dfce9186c595a15f11f5d5683f748fa1d172"}, + {file = "coverage-7.6.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:73d2b73584446e66ee633eaad1a56aad577c077f46c35ca3283cd687b7715b0b"}, + {file = "coverage-7.6.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:51b44306032045b383a7a8a2c13878de375117946d68dcb54308111f39775a25"}, + {file = "coverage-7.6.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0b3fb02fe73bed561fa12d279a417b432e5b50fe03e8d663d61b3d5990f29546"}, + {file = "coverage-7.6.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed8fe9189d2beb6edc14d3ad19800626e1d9f2d975e436f84e19efb7fa19469b"}, + {file = "coverage-7.6.4-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b369ead6527d025a0fe7bd3864e46dbee3aa8f652d48df6174f8d0bac9e26e0e"}, + {file = "coverage-7.6.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ade3ca1e5f0ff46b678b66201f7ff477e8fa11fb537f3b55c3f0568fbfe6e718"}, + {file = "coverage-7.6.4-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:27fb4a050aaf18772db513091c9c13f6cb94ed40eacdef8dad8411d92d9992db"}, + {file = "coverage-7.6.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4f704f0998911abf728a7783799444fcbbe8261c4a6c166f667937ae6a8aa522"}, + {file = "coverage-7.6.4-cp311-cp311-win32.whl", hash = "sha256:29155cd511ee058e260db648b6182c419422a0d2e9a4fa44501898cf918866cf"}, + {file = "coverage-7.6.4-cp311-cp311-win_amd64.whl", hash = "sha256:8902dd6a30173d4ef09954bfcb24b5d7b5190cf14a43170e386979651e09ba19"}, + {file = "coverage-7.6.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:12394842a3a8affa3ba62b0d4ab7e9e210c5e366fbac3e8b2a68636fb19892c2"}, + {file = "coverage-7.6.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2b6b4c83d8e8ea79f27ab80778c19bc037759aea298da4b56621f4474ffeb117"}, + {file = "coverage-7.6.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d5b8007f81b88696d06f7df0cb9af0d3b835fe0c8dbf489bad70b45f0e45613"}, + {file = "coverage-7.6.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b57b768feb866f44eeed9f46975f3d6406380275c5ddfe22f531a2bf187eda27"}, + {file = "coverage-7.6.4-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5915fcdec0e54ee229926868e9b08586376cae1f5faa9bbaf8faf3561b393d52"}, + {file = "coverage-7.6.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0b58c672d14f16ed92a48db984612f5ce3836ae7d72cdd161001cc54512571f2"}, + {file = "coverage-7.6.4-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:2fdef0d83a2d08d69b1f2210a93c416d54e14d9eb398f6ab2f0a209433db19e1"}, + {file = "coverage-7.6.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8cf717ee42012be8c0cb205dbbf18ffa9003c4cbf4ad078db47b95e10748eec5"}, + {file = "coverage-7.6.4-cp312-cp312-win32.whl", hash = "sha256:7bb92c539a624cf86296dd0c68cd5cc286c9eef2d0c3b8b192b604ce9de20a17"}, + {file = "coverage-7.6.4-cp312-cp312-win_amd64.whl", hash = "sha256:1032e178b76a4e2b5b32e19d0fd0abbce4b58e77a1ca695820d10e491fa32b08"}, + {file = "coverage-7.6.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:023bf8ee3ec6d35af9c1c6ccc1d18fa69afa1cb29eaac57cb064dbb262a517f9"}, + {file = "coverage-7.6.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:b0ac3d42cb51c4b12df9c5f0dd2f13a4f24f01943627120ec4d293c9181219ba"}, + {file = "coverage-7.6.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8fe4984b431f8621ca53d9380901f62bfb54ff759a1348cd140490ada7b693c"}, + {file = "coverage-7.6.4-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5fbd612f8a091954a0c8dd4c0b571b973487277d26476f8480bfa4b2a65b5d06"}, + {file = "coverage-7.6.4-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dacbc52de979f2823a819571f2e3a350a7e36b8cb7484cdb1e289bceaf35305f"}, + {file = "coverage-7.6.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:dab4d16dfef34b185032580e2f2f89253d302facba093d5fa9dbe04f569c4f4b"}, + {file = "coverage-7.6.4-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:862264b12ebb65ad8d863d51f17758b1684560b66ab02770d4f0baf2ff75da21"}, + {file = "coverage-7.6.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5beb1ee382ad32afe424097de57134175fea3faf847b9af002cc7895be4e2a5a"}, + {file = "coverage-7.6.4-cp313-cp313-win32.whl", hash = "sha256:bf20494da9653f6410213424f5f8ad0ed885e01f7e8e59811f572bdb20b8972e"}, + {file = "coverage-7.6.4-cp313-cp313-win_amd64.whl", hash = "sha256:182e6cd5c040cec0a1c8d415a87b67ed01193ed9ad458ee427741c7d8513d963"}, + {file = "coverage-7.6.4-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:a181e99301a0ae128493a24cfe5cfb5b488c4e0bf2f8702091473d033494d04f"}, + {file = "coverage-7.6.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:df57bdbeffe694e7842092c5e2e0bc80fff7f43379d465f932ef36f027179806"}, + {file = "coverage-7.6.4-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bcd1069e710600e8e4cf27f65c90c7843fa8edfb4520fb0ccb88894cad08b11"}, + {file = "coverage-7.6.4-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:99b41d18e6b2a48ba949418db48159d7a2e81c5cc290fc934b7d2380515bd0e3"}, + {file = "coverage-7.6.4-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a6b1e54712ba3474f34b7ef7a41e65bd9037ad47916ccb1cc78769bae324c01a"}, + {file = "coverage-7.6.4-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:53d202fd109416ce011578f321460795abfe10bb901b883cafd9b3ef851bacfc"}, + {file = "coverage-7.6.4-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:c48167910a8f644671de9f2083a23630fbf7a1cb70ce939440cd3328e0919f70"}, + {file = "coverage-7.6.4-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:cc8ff50b50ce532de2fa7a7daae9dd12f0a699bfcd47f20945364e5c31799fef"}, + {file = "coverage-7.6.4-cp313-cp313t-win32.whl", hash = "sha256:b8d3a03d9bfcaf5b0141d07a88456bb6a4c3ce55c080712fec8418ef3610230e"}, + {file = "coverage-7.6.4-cp313-cp313t-win_amd64.whl", hash = "sha256:f3ddf056d3ebcf6ce47bdaf56142af51bb7fad09e4af310241e9db7a3a8022e1"}, + {file = "coverage-7.6.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9cb7fa111d21a6b55cbf633039f7bc2749e74932e3aa7cb7333f675a58a58bf3"}, + {file = "coverage-7.6.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:11a223a14e91a4693d2d0755c7a043db43d96a7450b4f356d506c2562c48642c"}, + {file = "coverage-7.6.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a413a096c4cbac202433c850ee43fa326d2e871b24554da8327b01632673a076"}, + {file = "coverage-7.6.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:00a1d69c112ff5149cabe60d2e2ee948752c975d95f1e1096742e6077affd376"}, + {file = "coverage-7.6.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f76846299ba5c54d12c91d776d9605ae33f8ae2b9d1d3c3703cf2db1a67f2c0"}, + {file = "coverage-7.6.4-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:fe439416eb6380de434886b00c859304338f8b19f6f54811984f3420a2e03858"}, + {file = "coverage-7.6.4-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:0294ca37f1ba500667b1aef631e48d875ced93ad5e06fa665a3295bdd1d95111"}, + {file = "coverage-7.6.4-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:6f01ba56b1c0e9d149f9ac85a2f999724895229eb36bd997b61e62999e9b0901"}, + {file = "coverage-7.6.4-cp39-cp39-win32.whl", hash = "sha256:bc66f0bf1d7730a17430a50163bb264ba9ded56739112368ba985ddaa9c3bd09"}, + {file = "coverage-7.6.4-cp39-cp39-win_amd64.whl", hash = "sha256:c481b47f6b5845064c65a7bc78bc0860e635a9b055af0df46fdf1c58cebf8e8f"}, + {file = "coverage-7.6.4-pp39.pp310-none-any.whl", hash = "sha256:3c65d37f3a9ebb703e710befdc489a38683a5b152242664b973a7b7b22348a4e"}, + {file = "coverage-7.6.4.tar.gz", hash = "sha256:29fc0f17b1d3fea332f8001d4558f8214af7f1d87a345f3a133c901d60347c73"}, +] + +[package.dependencies] +tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.11.0a6\" and extra == \"toml\""} + +[package.extras] +toml = ["tomli"] + +[[package]] +name = "cyclopts" +version = "2.9.9" +description = "" +optional = false +python-versions = ">=3.8" +files = [ + {file = "cyclopts-2.9.9-py3-none-any.whl", hash = "sha256:d0ce956c70f3070e5bc16824ecb5ebba155be45ef4aadbb78ac4753dd99367e3"}, + {file = "cyclopts-2.9.9.tar.gz", hash = "sha256:11d7bb59be253329ff49a1b9a634676c7ae708605d4975090783b99d081c1a0b"}, +] + +[package.dependencies] +attrs = ">=23.1.0" +docstring-parser = {version = ">=0.15", markers = "python_version < \"4.0\""} +rich = ">=13.6.0" +rich-rst = ">=1.3.1,<2.0.0" +typing-extensions = {version = ">=4.8.0", markers = "python_full_version >= \"3.8.0\" and python_full_version < \"4.0.0\""} + +[package.extras] +toml = ["tomli (>=2.0.0)"] +yaml = ["pyyaml (>=6.0.1)"] + +[[package]] +name = "distlib" +version = "0.3.9" +description = "Distribution utilities" +optional = false +python-versions = "*" +files = [ + {file = "distlib-0.3.9-py2.py3-none-any.whl", hash = "sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87"}, + {file = "distlib-0.3.9.tar.gz", hash = "sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403"}, +] + +[[package]] +name = "docstring-parser" +version = "0.16" +description = "Parse Python docstrings in reST, Google and Numpydoc format" +optional = false +python-versions = ">=3.6,<4.0" +files = [ + {file = "docstring_parser-0.16-py3-none-any.whl", hash = "sha256:bf0a1387354d3691d102edef7ec124f219ef639982d096e26e3b60aeffa90637"}, + {file = "docstring_parser-0.16.tar.gz", hash = "sha256:538beabd0af1e2db0146b6bd3caa526c35a34d61af9fd2887f3a8a27a739aa6e"}, +] + +[[package]] +name = "docutils" +version = "0.21.2" +description = "Docutils -- Python Documentation Utilities" +optional = false +python-versions = ">=3.9" +files = [ + {file = "docutils-0.21.2-py3-none-any.whl", hash = "sha256:dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2"}, + {file = "docutils-0.21.2.tar.gz", hash = "sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f"}, +] + +[[package]] +name = "exceptiongroup" +version = "1.2.2" +description = "Backport of PEP 654 (exception groups)" +optional = false +python-versions = ">=3.7" +files = [ + {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, + {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, +] + +[package.extras] +test = ["pytest (>=6)"] + +[[package]] +name = "fasteners" +version = "0.19" +description = "A python package that provides useful locks" +optional = false +python-versions = ">=3.6" +files = [ + {file = "fasteners-0.19-py3-none-any.whl", hash = "sha256:758819cb5d94cdedf4e836988b74de396ceacb8e2794d21f82d131fd9ee77237"}, + {file = "fasteners-0.19.tar.gz", hash = "sha256:b4f37c3ac52d8a445af3a66bce57b33b5e90b97c696b7b984f530cf8f0ded09c"}, +] + +[[package]] +name = "filelock" +version = "3.16.1" +description = "A platform independent file lock." +optional = false +python-versions = ">=3.8" +files = [ + {file = "filelock-3.16.1-py3-none-any.whl", hash = "sha256:2082e5703d51fbf98ea75855d9d5527e33d8ff23099bec374a134febee6946b0"}, + {file = "filelock-3.16.1.tar.gz", hash = "sha256:c249fbfcd5db47e5e2d6d62198e565475ee65e4831e2561c8e313fa7eb961435"}, +] + +[package.extras] +docs = ["furo (>=2024.8.6)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4.1)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.6.1)", "diff-cover (>=9.2)", "pytest (>=8.3.3)", "pytest-asyncio (>=0.24)", "pytest-cov (>=5)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.26.4)"] +typing = ["typing-extensions (>=4.12.2)"] + +[[package]] +name = "glymur" +version = "0.13.6" +description = "" +optional = false +python-versions = ">=3.8" +files = [ + {file = "Glymur-0.13.6-py3-none-any.whl", hash = "sha256:34347b1e0443b58c73ed3c7bc3c66cff1e5974a26e81c73d98792c438729165c"}, + {file = "Glymur-0.13.6.tar.gz", hash = "sha256:18f1f3536fd76cd7fa92de4629950bee55522bdf8a4e94706ac34226d615ac5c"}, +] + +[package.dependencies] +lxml = "*" +numpy = "*" +packaging = "*" + +[package.extras] +test = ["pillow", "pytest"] + +[[package]] +name = "identify" +version = "2.6.1" +description = "File identification library for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "identify-2.6.1-py2.py3-none-any.whl", hash = "sha256:53863bcac7caf8d2ed85bd20312ea5dcfc22226800f6d6881f232d861db5a8f0"}, + {file = "identify-2.6.1.tar.gz", hash = "sha256:91478c5fb7c3aac5ff7bf9b4344f803843dc586832d5f110d672b19aa1984c98"}, +] + +[package.extras] +license = ["ukkonen"] + +[[package]] +name = "importlib-resources" +version = "6.4.5" +description = "Read resources from Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "importlib_resources-6.4.5-py3-none-any.whl", hash = "sha256:ac29d5f956f01d5e4bb63102a5a19957f1b9175e45649977264a1416783bb717"}, + {file = "importlib_resources-6.4.5.tar.gz", hash = "sha256:980862a1d16c9e147a59603677fa2aa5fd82b87f223b6cb870695bcfce830065"}, +] + +[package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["jaraco.test (>=5.4)", "pytest (>=6,!=8.1.*)", "zipp (>=3.17)"] +type = ["pytest-mypy"] + +[[package]] +name = "iniconfig" +version = "2.0.0" +description = "brain-dead simple config-ini parsing" +optional = false +python-versions = ">=3.7" +files = [ + {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, + {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, +] + +[[package]] +name = "jinja2" +version = "3.1.4" +description = "A very fast and expressive template engine." +optional = false +python-versions = ">=3.7" +files = [ + {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, + {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, +] + +[package.dependencies] +MarkupSafe = ">=2.0" + +[package.extras] +i18n = ["Babel (>=2.7)"] + +[[package]] +name = "lxml" +version = "5.3.0" +description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API." +optional = false +python-versions = ">=3.6" +files = [ + {file = "lxml-5.3.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:dd36439be765e2dde7660212b5275641edbc813e7b24668831a5c8ac91180656"}, + {file = "lxml-5.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ae5fe5c4b525aa82b8076c1a59d642c17b6e8739ecf852522c6321852178119d"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:501d0d7e26b4d261fca8132854d845e4988097611ba2531408ec91cf3fd9d20a"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb66442c2546446944437df74379e9cf9e9db353e61301d1a0e26482f43f0dd8"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9e41506fec7a7f9405b14aa2d5c8abbb4dbbd09d88f9496958b6d00cb4d45330"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f7d4a670107d75dfe5ad080bed6c341d18c4442f9378c9f58e5851e86eb79965"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41ce1f1e2c7755abfc7e759dc34d7d05fd221723ff822947132dc934d122fe22"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:44264ecae91b30e5633013fb66f6ddd05c006d3e0e884f75ce0b4755b3e3847b"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_28_ppc64le.whl", hash = "sha256:3c174dc350d3ec52deb77f2faf05c439331d6ed5e702fc247ccb4e6b62d884b7"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_28_s390x.whl", hash = "sha256:2dfab5fa6a28a0b60a20638dc48e6343c02ea9933e3279ccb132f555a62323d8"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:b1c8c20847b9f34e98080da785bb2336ea982e7f913eed5809e5a3c872900f32"}, + {file = "lxml-5.3.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:2c86bf781b12ba417f64f3422cfc302523ac9cd1d8ae8c0f92a1c66e56ef2e86"}, + {file = "lxml-5.3.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:c162b216070f280fa7da844531169be0baf9ccb17263cf5a8bf876fcd3117fa5"}, + {file = "lxml-5.3.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:36aef61a1678cb778097b4a6eeae96a69875d51d1e8f4d4b491ab3cfb54b5a03"}, + {file = "lxml-5.3.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f65e5120863c2b266dbcc927b306c5b78e502c71edf3295dfcb9501ec96e5fc7"}, + {file = "lxml-5.3.0-cp310-cp310-win32.whl", hash = "sha256:ef0c1fe22171dd7c7c27147f2e9c3e86f8bdf473fed75f16b0c2e84a5030ce80"}, + {file = "lxml-5.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:052d99051e77a4f3e8482c65014cf6372e61b0a6f4fe9edb98503bb5364cfee3"}, + {file = "lxml-5.3.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:74bcb423462233bc5d6066e4e98b0264e7c1bed7541fff2f4e34fe6b21563c8b"}, + {file = "lxml-5.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a3d819eb6f9b8677f57f9664265d0a10dd6551d227afb4af2b9cd7bdc2ccbf18"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5b8f5db71b28b8c404956ddf79575ea77aa8b1538e8b2ef9ec877945b3f46442"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c3406b63232fc7e9b8783ab0b765d7c59e7c59ff96759d8ef9632fca27c7ee4"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2ecdd78ab768f844c7a1d4a03595038c166b609f6395e25af9b0f3f26ae1230f"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:168f2dfcfdedf611eb285efac1516c8454c8c99caf271dccda8943576b67552e"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa617107a410245b8660028a7483b68e7914304a6d4882b5ff3d2d3eb5948d8c"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:69959bd3167b993e6e710b99051265654133a98f20cec1d9b493b931942e9c16"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_28_ppc64le.whl", hash = "sha256:bd96517ef76c8654446fc3db9242d019a1bb5fe8b751ba414765d59f99210b79"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_28_s390x.whl", hash = "sha256:ab6dd83b970dc97c2d10bc71aa925b84788c7c05de30241b9e96f9b6d9ea3080"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:eec1bb8cdbba2925bedc887bc0609a80e599c75b12d87ae42ac23fd199445654"}, + {file = "lxml-5.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6a7095eeec6f89111d03dabfe5883a1fd54da319c94e0fb104ee8f23616b572d"}, + {file = "lxml-5.3.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:6f651ebd0b21ec65dfca93aa629610a0dbc13dbc13554f19b0113da2e61a4763"}, + {file = "lxml-5.3.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:f422a209d2455c56849442ae42f25dbaaba1c6c3f501d58761c619c7836642ec"}, + {file = "lxml-5.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:62f7fdb0d1ed2065451f086519865b4c90aa19aed51081979ecd05a21eb4d1be"}, + {file = "lxml-5.3.0-cp311-cp311-win32.whl", hash = "sha256:c6379f35350b655fd817cd0d6cbeef7f265f3ae5fedb1caae2eb442bbeae9ab9"}, + {file = "lxml-5.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:9c52100e2c2dbb0649b90467935c4b0de5528833c76a35ea1a2691ec9f1ee7a1"}, + {file = "lxml-5.3.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:e99f5507401436fdcc85036a2e7dc2e28d962550afe1cbfc07c40e454256a859"}, + {file = "lxml-5.3.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:384aacddf2e5813a36495233b64cb96b1949da72bef933918ba5c84e06af8f0e"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:874a216bf6afaf97c263b56371434e47e2c652d215788396f60477540298218f"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:65ab5685d56914b9a2a34d67dd5488b83213d680b0c5d10b47f81da5a16b0b0e"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aac0bbd3e8dd2d9c45ceb82249e8bdd3ac99131a32b4d35c8af3cc9db1657179"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b369d3db3c22ed14c75ccd5af429086f166a19627e84a8fdade3f8f31426e52a"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c24037349665434f375645fa9d1f5304800cec574d0310f618490c871fd902b3"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:62d172f358f33a26d6b41b28c170c63886742f5b6772a42b59b4f0fa10526cb1"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_28_ppc64le.whl", hash = "sha256:c1f794c02903c2824fccce5b20c339a1a14b114e83b306ff11b597c5f71a1c8d"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_28_s390x.whl", hash = "sha256:5d6a6972b93c426ace71e0be9a6f4b2cfae9b1baed2eed2006076a746692288c"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:3879cc6ce938ff4eb4900d901ed63555c778731a96365e53fadb36437a131a99"}, + {file = "lxml-5.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:74068c601baff6ff021c70f0935b0c7bc528baa8ea210c202e03757c68c5a4ff"}, + {file = "lxml-5.3.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:ecd4ad8453ac17bc7ba3868371bffb46f628161ad0eefbd0a855d2c8c32dd81a"}, + {file = "lxml-5.3.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:7e2f58095acc211eb9d8b5771bf04df9ff37d6b87618d1cbf85f92399c98dae8"}, + {file = "lxml-5.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e63601ad5cd8f860aa99d109889b5ac34de571c7ee902d6812d5d9ddcc77fa7d"}, + {file = "lxml-5.3.0-cp312-cp312-win32.whl", hash = "sha256:17e8d968d04a37c50ad9c456a286b525d78c4a1c15dd53aa46c1d8e06bf6fa30"}, + {file = "lxml-5.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:c1a69e58a6bb2de65902051d57fde951febad631a20a64572677a1052690482f"}, + {file = "lxml-5.3.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8c72e9563347c7395910de6a3100a4840a75a6f60e05af5e58566868d5eb2d6a"}, + {file = "lxml-5.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e92ce66cd919d18d14b3856906a61d3f6b6a8500e0794142338da644260595cd"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d04f064bebdfef9240478f7a779e8c5dc32b8b7b0b2fc6a62e39b928d428e51"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c2fb570d7823c2bbaf8b419ba6e5662137f8166e364a8b2b91051a1fb40ab8b"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0c120f43553ec759f8de1fee2f4794452b0946773299d44c36bfe18e83caf002"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:562e7494778a69086f0312ec9689f6b6ac1c6b65670ed7d0267e49f57ffa08c4"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:423b121f7e6fa514ba0c7918e56955a1d4470ed35faa03e3d9f0e3baa4c7e492"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:c00f323cc00576df6165cc9d21a4c21285fa6b9989c5c39830c3903dc4303ef3"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_28_ppc64le.whl", hash = "sha256:1fdc9fae8dd4c763e8a31e7630afef517eab9f5d5d31a278df087f307bf601f4"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_28_s390x.whl", hash = "sha256:658f2aa69d31e09699705949b5fc4719cbecbd4a97f9656a232e7d6c7be1a367"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:1473427aff3d66a3fa2199004c3e601e6c4500ab86696edffdbc84954c72d832"}, + {file = "lxml-5.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a87de7dd873bf9a792bf1e58b1c3887b9264036629a5bf2d2e6579fe8e73edff"}, + {file = "lxml-5.3.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:0d7b36afa46c97875303a94e8f3ad932bf78bace9e18e603f2085b652422edcd"}, + {file = "lxml-5.3.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:cf120cce539453ae086eacc0130a324e7026113510efa83ab42ef3fcfccac7fb"}, + {file = "lxml-5.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:df5c7333167b9674aa8ae1d4008fa4bc17a313cc490b2cca27838bbdcc6bb15b"}, + {file = "lxml-5.3.0-cp313-cp313-win32.whl", hash = "sha256:c802e1c2ed9f0c06a65bc4ed0189d000ada8049312cfeab6ca635e39c9608957"}, + {file = "lxml-5.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:406246b96d552e0503e17a1006fd27edac678b3fcc9f1be71a2f94b4ff61528d"}, + {file = "lxml-5.3.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:8f0de2d390af441fe8b2c12626d103540b5d850d585b18fcada58d972b74a74e"}, + {file = "lxml-5.3.0-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1afe0a8c353746e610bd9031a630a95bcfb1a720684c3f2b36c4710a0a96528f"}, + {file = "lxml-5.3.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56b9861a71575f5795bde89256e7467ece3d339c9b43141dbdd54544566b3b94"}, + {file = "lxml-5.3.0-cp36-cp36m-manylinux_2_28_x86_64.whl", hash = "sha256:9fb81d2824dff4f2e297a276297e9031f46d2682cafc484f49de182aa5e5df99"}, + {file = "lxml-5.3.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:2c226a06ecb8cdef28845ae976da407917542c5e6e75dcac7cc33eb04aaeb237"}, + {file = "lxml-5.3.0-cp36-cp36m-musllinux_1_2_x86_64.whl", hash = "sha256:7d3d1ca42870cdb6d0d29939630dbe48fa511c203724820fc0fd507b2fb46577"}, + {file = "lxml-5.3.0-cp36-cp36m-win32.whl", hash = "sha256:094cb601ba9f55296774c2d57ad68730daa0b13dc260e1f941b4d13678239e70"}, + {file = "lxml-5.3.0-cp36-cp36m-win_amd64.whl", hash = "sha256:eafa2c8658f4e560b098fe9fc54539f86528651f61849b22111a9b107d18910c"}, + {file = "lxml-5.3.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:cb83f8a875b3d9b458cada4f880fa498646874ba4011dc974e071a0a84a1b033"}, + {file = "lxml-5.3.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:25f1b69d41656b05885aa185f5fdf822cb01a586d1b32739633679699f220391"}, + {file = "lxml-5.3.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23e0553b8055600b3bf4a00b255ec5c92e1e4aebf8c2c09334f8368e8bd174d6"}, + {file = "lxml-5.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ada35dd21dc6c039259596b358caab6b13f4db4d4a7f8665764d616daf9cc1d"}, + {file = "lxml-5.3.0-cp37-cp37m-manylinux_2_28_aarch64.whl", hash = "sha256:81b4e48da4c69313192d8c8d4311e5d818b8be1afe68ee20f6385d0e96fc9512"}, + {file = "lxml-5.3.0-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:2bc9fd5ca4729af796f9f59cd8ff160fe06a474da40aca03fcc79655ddee1a8b"}, + {file = "lxml-5.3.0-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:07da23d7ee08577760f0a71d67a861019103e4812c87e2fab26b039054594cc5"}, + {file = "lxml-5.3.0-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:ea2e2f6f801696ad7de8aec061044d6c8c0dd4037608c7cab38a9a4d316bfb11"}, + {file = "lxml-5.3.0-cp37-cp37m-win32.whl", hash = "sha256:5c54afdcbb0182d06836cc3d1be921e540be3ebdf8b8a51ee3ef987537455f84"}, + {file = "lxml-5.3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:f2901429da1e645ce548bf9171784c0f74f0718c3f6150ce166be39e4dd66c3e"}, + {file = "lxml-5.3.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c56a1d43b2f9ee4786e4658c7903f05da35b923fb53c11025712562d5cc02753"}, + {file = "lxml-5.3.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ee8c39582d2652dcd516d1b879451500f8db3fe3607ce45d7c5957ab2596040"}, + {file = "lxml-5.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fdf3a3059611f7585a78ee10399a15566356116a4288380921a4b598d807a22"}, + {file = "lxml-5.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:146173654d79eb1fc97498b4280c1d3e1e5d58c398fa530905c9ea50ea849b22"}, + {file = "lxml-5.3.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:0a7056921edbdd7560746f4221dca89bb7a3fe457d3d74267995253f46343f15"}, + {file = "lxml-5.3.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:9e4b47ac0f5e749cfc618efdf4726269441014ae1d5583e047b452a32e221920"}, + {file = "lxml-5.3.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:f914c03e6a31deb632e2daa881fe198461f4d06e57ac3d0e05bbcab8eae01945"}, + {file = "lxml-5.3.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:213261f168c5e1d9b7535a67e68b1f59f92398dd17a56d934550837143f79c42"}, + {file = "lxml-5.3.0-cp38-cp38-win32.whl", hash = "sha256:218c1b2e17a710e363855594230f44060e2025b05c80d1f0661258142b2add2e"}, + {file = "lxml-5.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:315f9542011b2c4e1d280e4a20ddcca1761993dda3afc7a73b01235f8641e903"}, + {file = "lxml-5.3.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:1ffc23010330c2ab67fac02781df60998ca8fe759e8efde6f8b756a20599c5de"}, + {file = "lxml-5.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2b3778cb38212f52fac9fe913017deea2fdf4eb1a4f8e4cfc6b009a13a6d3fcc"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4b0c7a688944891086ba192e21c5229dea54382f4836a209ff8d0a660fac06be"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:747a3d3e98e24597981ca0be0fd922aebd471fa99d0043a3842d00cdcad7ad6a"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:86a6b24b19eaebc448dc56b87c4865527855145d851f9fc3891673ff97950540"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b11a5d918a6216e521c715b02749240fb07ae5a1fefd4b7bf12f833bc8b4fe70"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68b87753c784d6acb8a25b05cb526c3406913c9d988d51f80adecc2b0775d6aa"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:109fa6fede314cc50eed29e6e56c540075e63d922455346f11e4d7a036d2b8cf"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_28_ppc64le.whl", hash = "sha256:02ced472497b8362c8e902ade23e3300479f4f43e45f4105c85ef43b8db85229"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_28_s390x.whl", hash = "sha256:6b038cc86b285e4f9fea2ba5ee76e89f21ed1ea898e287dc277a25884f3a7dfe"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:7437237c6a66b7ca341e868cda48be24b8701862757426852c9b3186de1da8a2"}, + {file = "lxml-5.3.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:7f41026c1d64043a36fda21d64c5026762d53a77043e73e94b71f0521939cc71"}, + {file = "lxml-5.3.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:482c2f67761868f0108b1743098640fbb2a28a8e15bf3f47ada9fa59d9fe08c3"}, + {file = "lxml-5.3.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:1483fd3358963cc5c1c9b122c80606a3a79ee0875bcac0204149fa09d6ff2727"}, + {file = "lxml-5.3.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:2dec2d1130a9cda5b904696cec33b2cfb451304ba9081eeda7f90f724097300a"}, + {file = "lxml-5.3.0-cp39-cp39-win32.whl", hash = "sha256:a0eabd0a81625049c5df745209dc7fcef6e2aea7793e5f003ba363610aa0a3ff"}, + {file = "lxml-5.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:89e043f1d9d341c52bf2af6d02e6adde62e0a46e6755d5eb60dc6e4f0b8aeca2"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7b1cd427cb0d5f7393c31b7496419da594fe600e6fdc4b105a54f82405e6626c"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:51806cfe0279e06ed8500ce19479d757db42a30fd509940b1701be9c86a5ff9a"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ee70d08fd60c9565ba8190f41a46a54096afa0eeb8f76bd66f2c25d3b1b83005"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:8dc2c0395bea8254d8daebc76dcf8eb3a95ec2a46fa6fae5eaccee366bfe02ce"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:6ba0d3dcac281aad8a0e5b14c7ed6f9fa89c8612b47939fc94f80b16e2e9bc83"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:6e91cf736959057f7aac7adfc83481e03615a8e8dd5758aa1d95ea69e8931dba"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:94d6c3782907b5e40e21cadf94b13b0842ac421192f26b84c45f13f3c9d5dc27"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c300306673aa0f3ed5ed9372b21867690a17dba38c68c44b287437c362ce486b"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78d9b952e07aed35fe2e1a7ad26e929595412db48535921c5013edc8aa4a35ce"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:01220dca0d066d1349bd6a1726856a78f7929f3878f7e2ee83c296c69495309e"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:2d9b8d9177afaef80c53c0a9e30fa252ff3036fb1c6494d427c066a4ce6a282f"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:20094fc3f21ea0a8669dc4c61ed7fa8263bd37d97d93b90f28fc613371e7a875"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ace2c2326a319a0bb8a8b0e5b570c764962e95818de9f259ce814ee666603f19"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:92e67a0be1639c251d21e35fe74df6bcc40cba445c2cda7c4a967656733249e2"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd5350b55f9fecddc51385463a4f67a5da829bc741e38cf689f38ec9023f54ab"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:4c1fefd7e3d00921c44dc9ca80a775af49698bbfd92ea84498e56acffd4c5469"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:71a8dd38fbd2f2319136d4ae855a7078c69c9a38ae06e0c17c73fd70fc6caad8"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:97acf1e1fd66ab53dacd2c35b319d7e548380c2e9e8c54525c6e76d21b1ae3b1"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:68934b242c51eb02907c5b81d138cb977b2129a0a75a8f8b60b01cb8586c7b21"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b710bc2b8292966b23a6a0121f7a6c51d45d2347edcc75f016ac123b8054d3f2"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18feb4b93302091b1541221196a2155aa296c363fd233814fa11e181adebc52f"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:3eb44520c4724c2e1a57c0af33a379eee41792595023f367ba3952a2d96c2aab"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:609251a0ca4770e5a8768ff902aa02bf636339c5a93f9349b48eb1f606f7f3e9"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:516f491c834eb320d6c843156440fe7fc0d50b33e44387fcec5b02f0bc118a4c"}, + {file = "lxml-5.3.0.tar.gz", hash = "sha256:4e109ca30d1edec1ac60cdbe341905dc3b8f55b16855e03a54aaf59e51ec8c6f"}, +] + +[package.extras] +cssselect = ["cssselect (>=0.7)"] +html-clean = ["lxml-html-clean"] +html5 = ["html5lib"] +htmlsoup = ["BeautifulSoup4"] +source = ["Cython (>=3.0.11)"] + +[[package]] +name = "markdown-it-py" +version = "3.0.0" +description = "Python port of markdown-it. Markdown parsing, done right!" +optional = false +python-versions = ">=3.8" +files = [ + {file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"}, + {file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"}, +] + +[package.dependencies] +mdurl = ">=0.1,<1.0" + +[package.extras] +benchmarking = ["psutil", "pytest", "pytest-benchmark"] +code-style = ["pre-commit (>=3.0,<4.0)"] +compare = ["commonmark (>=0.9,<1.0)", "markdown (>=3.4,<4.0)", "mistletoe (>=1.0,<2.0)", "mistune (>=2.0,<3.0)", "panflute (>=2.3,<3.0)"] +linkify = ["linkify-it-py (>=1,<3)"] +plugins = ["mdit-py-plugins"] +profiling = ["gprof2dot"] +rtd = ["jupyter_sphinx", "mdit-py-plugins", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] + +[[package]] +name = "markupsafe" +version = "3.0.2" +description = "Safely add untrusted strings to HTML/XML markup." +optional = false +python-versions = ">=3.9" +files = [ + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a"}, + {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"}, +] + +[[package]] +name = "mdurl" +version = "0.1.2" +description = "Markdown URL utilities" +optional = false +python-versions = ">=3.7" +files = [ + {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, + {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, +] + +[[package]] +name = "mypy" +version = "1.13.0" +description = "Optional static typing for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "mypy-1.13.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6607e0f1dd1fb7f0aca14d936d13fd19eba5e17e1cd2a14f808fa5f8f6d8f60a"}, + {file = "mypy-1.13.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8a21be69bd26fa81b1f80a61ee7ab05b076c674d9b18fb56239d72e21d9f4c80"}, + {file = "mypy-1.13.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7b2353a44d2179846a096e25691d54d59904559f4232519d420d64da6828a3a7"}, + {file = "mypy-1.13.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0730d1c6a2739d4511dc4253f8274cdd140c55c32dfb0a4cf8b7a43f40abfa6f"}, + {file = "mypy-1.13.0-cp310-cp310-win_amd64.whl", hash = "sha256:c5fc54dbb712ff5e5a0fca797e6e0aa25726c7e72c6a5850cfd2adbc1eb0a372"}, + {file = "mypy-1.13.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:581665e6f3a8a9078f28d5502f4c334c0c8d802ef55ea0e7276a6e409bc0d82d"}, + {file = "mypy-1.13.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3ddb5b9bf82e05cc9a627e84707b528e5c7caaa1c55c69e175abb15a761cec2d"}, + {file = "mypy-1.13.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:20c7ee0bc0d5a9595c46f38beb04201f2620065a93755704e141fcac9f59db2b"}, + {file = "mypy-1.13.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3790ded76f0b34bc9c8ba4def8f919dd6a46db0f5a6610fb994fe8efdd447f73"}, + {file = "mypy-1.13.0-cp311-cp311-win_amd64.whl", hash = "sha256:51f869f4b6b538229c1d1bcc1dd7d119817206e2bc54e8e374b3dfa202defcca"}, + {file = "mypy-1.13.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:5c7051a3461ae84dfb5dd15eff5094640c61c5f22257c8b766794e6dd85e72d5"}, + {file = "mypy-1.13.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:39bb21c69a5d6342f4ce526e4584bc5c197fd20a60d14a8624d8743fffb9472e"}, + {file = "mypy-1.13.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:164f28cb9d6367439031f4c81e84d3ccaa1e19232d9d05d37cb0bd880d3f93c2"}, + {file = "mypy-1.13.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a4c1bfcdbce96ff5d96fc9b08e3831acb30dc44ab02671eca5953eadad07d6d0"}, + {file = "mypy-1.13.0-cp312-cp312-win_amd64.whl", hash = "sha256:a0affb3a79a256b4183ba09811e3577c5163ed06685e4d4b46429a271ba174d2"}, + {file = "mypy-1.13.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a7b44178c9760ce1a43f544e595d35ed61ac2c3de306599fa59b38a6048e1aa7"}, + {file = "mypy-1.13.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5d5092efb8516d08440e36626f0153b5006d4088c1d663d88bf79625af3d1d62"}, + {file = "mypy-1.13.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:de2904956dac40ced10931ac967ae63c5089bd498542194b436eb097a9f77bc8"}, + {file = "mypy-1.13.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:7bfd8836970d33c2105562650656b6846149374dc8ed77d98424b40b09340ba7"}, + {file = "mypy-1.13.0-cp313-cp313-win_amd64.whl", hash = "sha256:9f73dba9ec77acb86457a8fc04b5239822df0c14a082564737833d2963677dbc"}, + {file = "mypy-1.13.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:100fac22ce82925f676a734af0db922ecfea991e1d7ec0ceb1e115ebe501301a"}, + {file = "mypy-1.13.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7bcb0bb7f42a978bb323a7c88f1081d1b5dee77ca86f4100735a6f541299d8fb"}, + {file = "mypy-1.13.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bde31fc887c213e223bbfc34328070996061b0833b0a4cfec53745ed61f3519b"}, + {file = "mypy-1.13.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:07de989f89786f62b937851295ed62e51774722e5444a27cecca993fc3f9cd74"}, + {file = "mypy-1.13.0-cp38-cp38-win_amd64.whl", hash = "sha256:4bde84334fbe19bad704b3f5b78c4abd35ff1026f8ba72b29de70dda0916beb6"}, + {file = "mypy-1.13.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0246bcb1b5de7f08f2826451abd947bf656945209b140d16ed317f65a17dc7dc"}, + {file = "mypy-1.13.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7f5b7deae912cf8b77e990b9280f170381fdfbddf61b4ef80927edd813163732"}, + {file = "mypy-1.13.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7029881ec6ffb8bc233a4fa364736789582c738217b133f1b55967115288a2bc"}, + {file = "mypy-1.13.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:3e38b980e5681f28f033f3be86b099a247b13c491f14bb8b1e1e134d23bb599d"}, + {file = "mypy-1.13.0-cp39-cp39-win_amd64.whl", hash = "sha256:a6789be98a2017c912ae6ccb77ea553bbaf13d27605d2ca20a76dfbced631b24"}, + {file = "mypy-1.13.0-py3-none-any.whl", hash = "sha256:9c250883f9fd81d212e0952c92dbfcc96fc237f4b7c92f56ac81fd48460b3e5a"}, + {file = "mypy-1.13.0.tar.gz", hash = "sha256:0291a61b6fbf3e6673e3405cfcc0e7650bebc7939659fdca2702958038bd835e"}, +] + +[package.dependencies] +mypy-extensions = ">=1.0.0" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +typing-extensions = ">=4.6.0" + +[package.extras] +dmypy = ["psutil (>=4.0)"] +faster-cache = ["orjson"] +install-types = ["pip"] +mypyc = ["setuptools (>=50)"] +reports = ["lxml"] + +[[package]] +name = "mypy-extensions" +version = "1.0.0" +description = "Type system extensions for programs checked with the mypy type checker." +optional = false +python-versions = ">=3.5" +files = [ + {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, + {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, +] + +[[package]] +name = "nibabel" +version = "5.3.2" +description = "Access a multitude of neuroimaging data formats" +optional = false +python-versions = ">=3.9" +files = [ + {file = "nibabel-5.3.2-py3-none-any.whl", hash = "sha256:52970a5a8a53b1b55249cba4d9bcfaa8cc57e3e5af35a29d7352237e8680a6f8"}, + {file = "nibabel-5.3.2.tar.gz", hash = "sha256:0bdca6503b1c784b446c745a4542367de7756cfba0d72143b91f9ffb78be569b"}, +] + +[package.dependencies] +importlib-resources = {version = ">=5.12", markers = "python_version < \"3.12\""} +numpy = ">=1.22" +packaging = ">=20" +typing-extensions = {version = ">=4.6", markers = "python_version < \"3.13\""} + +[package.extras] +all = ["h5py", "pillow", "pydicom (>=2.3)", "pyzstd (>=0.14.3)", "scipy"] +dev = ["tox"] +dicom = ["pydicom (>=2.3)"] +dicomfs = ["pillow", "pydicom (>=2.3)"] +doc = ["matplotlib (>=3.5)", "numpydoc", "sphinx", "texext", "tomli"] +doctest = ["tox"] +minc2 = ["h5py"] +spm = ["scipy"] +style = ["tox"] +test = ["coverage (>=7.2)", "pytest", "pytest-cov", "pytest-doctestplus", "pytest-httpserver", "pytest-xdist"] +typing = ["tox"] +zstd = ["pyzstd (>=0.14.3)"] + +[[package]] +name = "nodeenv" +version = "1.9.1" +description = "Node.js virtual environment builder" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9"}, + {file = "nodeenv-1.9.1.tar.gz", hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f"}, +] + +[[package]] +name = "numcodecs" +version = "0.13.1" +description = "A Python package providing buffer compression and transformation codecs for use in data storage and communication applications." +optional = false +python-versions = ">=3.10" +files = [ + {file = "numcodecs-0.13.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:96add4f783c5ce57cc7e650b6cac79dd101daf887c479a00a29bc1487ced180b"}, + {file = "numcodecs-0.13.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:237b7171609e868a20fd313748494444458ccd696062f67e198f7f8f52000c15"}, + {file = "numcodecs-0.13.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:96e42f73c31b8c24259c5fac6adba0c3ebf95536e37749dc6c62ade2989dca28"}, + {file = "numcodecs-0.13.1-cp310-cp310-win_amd64.whl", hash = "sha256:eda7d7823c9282e65234731fd6bd3986b1f9e035755f7fed248d7d366bb291ab"}, + {file = "numcodecs-0.13.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2eda97dd2f90add98df6d295f2c6ae846043396e3d51a739ca5db6c03b5eb666"}, + {file = "numcodecs-0.13.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2a86f5367af9168e30f99727ff03b27d849c31ad4522060dde0bce2923b3a8bc"}, + {file = "numcodecs-0.13.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:233bc7f26abce24d57e44ea8ebeb5cd17084690b4e7409dd470fdb75528d615f"}, + {file = "numcodecs-0.13.1-cp311-cp311-win_amd64.whl", hash = "sha256:796b3e6740107e4fa624cc636248a1580138b3f1c579160f260f76ff13a4261b"}, + {file = "numcodecs-0.13.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:5195bea384a6428f8afcece793860b1ab0ae28143c853f0b2b20d55a8947c917"}, + {file = "numcodecs-0.13.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3501a848adaddce98a71a262fee15cd3618312692aa419da77acd18af4a6a3f6"}, + {file = "numcodecs-0.13.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da2230484e6102e5fa3cc1a5dd37ca1f92dfbd183d91662074d6f7574e3e8f53"}, + {file = "numcodecs-0.13.1-cp312-cp312-win_amd64.whl", hash = "sha256:e5db4824ebd5389ea30e54bc8aeccb82d514d28b6b68da6c536b8fa4596f4bca"}, + {file = "numcodecs-0.13.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7a60d75179fd6692e301ddfb3b266d51eb598606dcae7b9fc57f986e8d65cb43"}, + {file = "numcodecs-0.13.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3f593c7506b0ab248961a3b13cb148cc6e8355662ff124ac591822310bc55ecf"}, + {file = "numcodecs-0.13.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80d3071465f03522e776a31045ddf2cfee7f52df468b977ed3afdd7fe5869701"}, + {file = "numcodecs-0.13.1-cp313-cp313-win_amd64.whl", hash = "sha256:90d3065ae74c9342048ae0046006f99dcb1388b7288da5a19b3bddf9c30c3176"}, + {file = "numcodecs-0.13.1.tar.gz", hash = "sha256:a3cf37881df0898f3a9c0d4477df88133fe85185bffe57ba31bcc2fa207709bc"}, +] + +[package.dependencies] +numpy = ">=1.7" + +[package.extras] +docs = ["mock", "numpydoc", "pydata-sphinx-theme", "sphinx", "sphinx-issues"] +msgpack = ["msgpack"] +pcodec = ["pcodec (>=0.2.0)"] +test = ["coverage", "pytest", "pytest-cov"] +test-extras = ["importlib-metadata"] +zfpy = ["numpy (<2.0.0)", "zfpy (>=1.0.0)"] + +[[package]] +name = "numpy" +version = "2.1.3" +description = "Fundamental package for array computing in Python" +optional = false +python-versions = ">=3.10" +files = [ + {file = "numpy-2.1.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c894b4305373b9c5576d7a12b473702afdf48ce5369c074ba304cc5ad8730dff"}, + {file = "numpy-2.1.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b47fbb433d3260adcd51eb54f92a2ffbc90a4595f8970ee00e064c644ac788f5"}, + {file = "numpy-2.1.3-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:825656d0743699c529c5943554d223c021ff0494ff1442152ce887ef4f7561a1"}, + {file = "numpy-2.1.3-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:6a4825252fcc430a182ac4dee5a505053d262c807f8a924603d411f6718b88fd"}, + {file = "numpy-2.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e711e02f49e176a01d0349d82cb5f05ba4db7d5e7e0defd026328e5cfb3226d3"}, + {file = "numpy-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78574ac2d1a4a02421f25da9559850d59457bac82f2b8d7a44fe83a64f770098"}, + {file = "numpy-2.1.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c7662f0e3673fe4e832fe07b65c50342ea27d989f92c80355658c7f888fcc83c"}, + {file = "numpy-2.1.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:fa2d1337dc61c8dc417fbccf20f6d1e139896a30721b7f1e832b2bb6ef4eb6c4"}, + {file = "numpy-2.1.3-cp310-cp310-win32.whl", hash = "sha256:72dcc4a35a8515d83e76b58fdf8113a5c969ccd505c8a946759b24e3182d1f23"}, + {file = "numpy-2.1.3-cp310-cp310-win_amd64.whl", hash = "sha256:ecc76a9ba2911d8d37ac01de72834d8849e55473457558e12995f4cd53e778e0"}, + {file = "numpy-2.1.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4d1167c53b93f1f5d8a139a742b3c6f4d429b54e74e6b57d0eff40045187b15d"}, + {file = "numpy-2.1.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c80e4a09b3d95b4e1cac08643f1152fa71a0a821a2d4277334c88d54b2219a41"}, + {file = "numpy-2.1.3-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:576a1c1d25e9e02ed7fa5477f30a127fe56debd53b8d2c89d5578f9857d03ca9"}, + {file = "numpy-2.1.3-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:973faafebaae4c0aaa1a1ca1ce02434554d67e628b8d805e61f874b84e136b09"}, + {file = "numpy-2.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:762479be47a4863e261a840e8e01608d124ee1361e48b96916f38b119cfda04a"}, + {file = "numpy-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc6f24b3d1ecc1eebfbf5d6051faa49af40b03be1aaa781ebdadcbc090b4539b"}, + {file = "numpy-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:17ee83a1f4fef3c94d16dc1802b998668b5419362c8a4f4e8a491de1b41cc3ee"}, + {file = "numpy-2.1.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:15cb89f39fa6d0bdfb600ea24b250e5f1a3df23f901f51c8debaa6a5d122b2f0"}, + {file = "numpy-2.1.3-cp311-cp311-win32.whl", hash = "sha256:d9beb777a78c331580705326d2367488d5bc473b49a9bc3036c154832520aca9"}, + {file = "numpy-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:d89dd2b6da69c4fff5e39c28a382199ddedc3a5be5390115608345dec660b9e2"}, + {file = "numpy-2.1.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f55ba01150f52b1027829b50d70ef1dafd9821ea82905b63936668403c3b471e"}, + {file = "numpy-2.1.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:13138eadd4f4da03074851a698ffa7e405f41a0845a6b1ad135b81596e4e9958"}, + {file = "numpy-2.1.3-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:a6b46587b14b888e95e4a24d7b13ae91fa22386c199ee7b418f449032b2fa3b8"}, + {file = "numpy-2.1.3-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:0fa14563cc46422e99daef53d725d0c326e99e468a9320a240affffe87852564"}, + {file = "numpy-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8637dcd2caa676e475503d1f8fdb327bc495554e10838019651b76d17b98e512"}, + {file = "numpy-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2312b2aa89e1f43ecea6da6ea9a810d06aae08321609d8dc0d0eda6d946a541b"}, + {file = "numpy-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a38c19106902bb19351b83802531fea19dee18e5b37b36454f27f11ff956f7fc"}, + {file = "numpy-2.1.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:02135ade8b8a84011cbb67dc44e07c58f28575cf9ecf8ab304e51c05528c19f0"}, + {file = "numpy-2.1.3-cp312-cp312-win32.whl", hash = "sha256:e6988e90fcf617da2b5c78902fe8e668361b43b4fe26dbf2d7b0f8034d4cafb9"}, + {file = "numpy-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:0d30c543f02e84e92c4b1f415b7c6b5326cbe45ee7882b6b77db7195fb971e3a"}, + {file = "numpy-2.1.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:96fe52fcdb9345b7cd82ecd34547fca4321f7656d500eca497eb7ea5a926692f"}, + {file = "numpy-2.1.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f653490b33e9c3a4c1c01d41bc2aef08f9475af51146e4a7710c450cf9761598"}, + {file = "numpy-2.1.3-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:dc258a761a16daa791081d026f0ed4399b582712e6fc887a95af09df10c5ca57"}, + {file = "numpy-2.1.3-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:016d0f6f5e77b0f0d45d77387ffa4bb89816b57c835580c3ce8e099ef830befe"}, + {file = "numpy-2.1.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c181ba05ce8299c7aa3125c27b9c2167bca4a4445b7ce73d5febc411ca692e43"}, + {file = "numpy-2.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5641516794ca9e5f8a4d17bb45446998c6554704d888f86df9b200e66bdcce56"}, + {file = "numpy-2.1.3-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ea4dedd6e394a9c180b33c2c872b92f7ce0f8e7ad93e9585312b0c5a04777a4a"}, + {file = "numpy-2.1.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b0df3635b9c8ef48bd3be5f862cf71b0a4716fa0e702155c45067c6b711ddcef"}, + {file = "numpy-2.1.3-cp313-cp313-win32.whl", hash = "sha256:50ca6aba6e163363f132b5c101ba078b8cbd3fa92c7865fd7d4d62d9779ac29f"}, + {file = "numpy-2.1.3-cp313-cp313-win_amd64.whl", hash = "sha256:747641635d3d44bcb380d950679462fae44f54b131be347d5ec2bce47d3df9ed"}, + {file = "numpy-2.1.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:996bb9399059c5b82f76b53ff8bb686069c05acc94656bb259b1d63d04a9506f"}, + {file = "numpy-2.1.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:45966d859916ad02b779706bb43b954281db43e185015df6eb3323120188f9e4"}, + {file = "numpy-2.1.3-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:baed7e8d7481bfe0874b566850cb0b85243e982388b7b23348c6db2ee2b2ae8e"}, + {file = "numpy-2.1.3-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:a9f7f672a3388133335589cfca93ed468509cb7b93ba3105fce780d04a6576a0"}, + {file = "numpy-2.1.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7aac50327da5d208db2eec22eb11e491e3fe13d22653dce51b0f4109101b408"}, + {file = "numpy-2.1.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4394bc0dbd074b7f9b52024832d16e019decebf86caf909d94f6b3f77a8ee3b6"}, + {file = "numpy-2.1.3-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:50d18c4358a0a8a53f12a8ba9d772ab2d460321e6a93d6064fc22443d189853f"}, + {file = "numpy-2.1.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:14e253bd43fc6b37af4921b10f6add6925878a42a0c5fe83daee390bca80bc17"}, + {file = "numpy-2.1.3-cp313-cp313t-win32.whl", hash = "sha256:08788d27a5fd867a663f6fc753fd7c3ad7e92747efc73c53bca2f19f8bc06f48"}, + {file = "numpy-2.1.3-cp313-cp313t-win_amd64.whl", hash = "sha256:2564fbdf2b99b3f815f2107c1bbc93e2de8ee655a69c261363a1172a79a257d4"}, + {file = "numpy-2.1.3-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:4f2015dfe437dfebbfce7c85c7b53d81ba49e71ba7eadbf1df40c915af75979f"}, + {file = "numpy-2.1.3-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:3522b0dfe983a575e6a9ab3a4a4dfe156c3e428468ff08ce582b9bb6bd1d71d4"}, + {file = "numpy-2.1.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c006b607a865b07cd981ccb218a04fc86b600411d83d6fc261357f1c0966755d"}, + {file = "numpy-2.1.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:e14e26956e6f1696070788252dcdff11b4aca4c3e8bd166e0df1bb8f315a67cb"}, + {file = "numpy-2.1.3.tar.gz", hash = "sha256:aa08e04e08aaf974d4458def539dece0d28146d866a39da5639596f4921fd761"}, +] + +[[package]] +name = "packaging" +version = "24.1" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"}, + {file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"}, +] + +[[package]] +name = "pdoc" +version = "14.7.0" +description = "API Documentation for Python Projects" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pdoc-14.7.0-py3-none-any.whl", hash = "sha256:72377a907efc6b2c5b3c56b717ef34f11d93621dced3b663f3aede0b844c0ad2"}, + {file = "pdoc-14.7.0.tar.gz", hash = "sha256:2d28af9c0acc39180744ad0543e4bbc3223ecba0d1302db315ec521c51f71f93"}, +] + +[package.dependencies] +Jinja2 = ">=2.11.0" +MarkupSafe = "*" +pygments = ">=2.12.0" + +[package.extras] +dev = ["hypothesis", "mypy", "pdoc-pyo3-sample-library (==1.0.11)", "pygments (>=2.14.0)", "pytest", "pytest-cov", "pytest-timeout", "ruff", "tox", "types-pygments"] + +[[package]] +name = "platformdirs" +version = "4.3.6" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." +optional = false +python-versions = ">=3.8" +files = [ + {file = "platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"}, + {file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"}, +] + +[package.extras] +docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.2)", "pytest-cov (>=5)", "pytest-mock (>=3.14)"] +type = ["mypy (>=1.11.2)"] + +[[package]] +name = "pluggy" +version = "1.5.0" +description = "plugin and hook calling mechanisms for python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, + {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, +] + +[package.extras] +dev = ["pre-commit", "tox"] +testing = ["pytest", "pytest-benchmark"] + +[[package]] +name = "pre-commit" +version = "3.8.0" +description = "A framework for managing and maintaining multi-language pre-commit hooks." +optional = false +python-versions = ">=3.9" +files = [ + {file = "pre_commit-3.8.0-py2.py3-none-any.whl", hash = "sha256:9a90a53bf82fdd8778d58085faf8d83df56e40dfe18f45b19446e26bf1b3a63f"}, + {file = "pre_commit-3.8.0.tar.gz", hash = "sha256:8bb6494d4a20423842e198980c9ecf9f96607a07ea29549e180eef9ae80fe7af"}, +] + +[package.dependencies] +cfgv = ">=2.0.0" +identify = ">=1.0.0" +nodeenv = ">=0.11.1" +pyyaml = ">=5.1" +virtualenv = ">=20.10.0" + +[[package]] +name = "pygments" +version = "2.18.0" +description = "Pygments is a syntax highlighting package written in Python." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"}, + {file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"}, +] + +[package.extras] +windows-terminal = ["colorama (>=0.4.6)"] + +[[package]] +name = "pytest" +version = "8.3.3" +description = "pytest: simple powerful testing with Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pytest-8.3.3-py3-none-any.whl", hash = "sha256:a6853c7375b2663155079443d2e45de913a911a11d669df02a50814944db57b2"}, + {file = "pytest-8.3.3.tar.gz", hash = "sha256:70b98107bd648308a7952b06e6ca9a50bc660be218d53c257cc1fc94fda10181"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "sys_platform == \"win32\""} +exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} +iniconfig = "*" +packaging = "*" +pluggy = ">=1.5,<2" +tomli = {version = ">=1", markers = "python_version < \"3.11\""} + +[package.extras] +dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] + +[[package]] +name = "pytest-cov" +version = "5.0.0" +description = "Pytest plugin for measuring coverage." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pytest-cov-5.0.0.tar.gz", hash = "sha256:5837b58e9f6ebd335b0f8060eecce69b662415b16dc503883a02f45dfeb14857"}, + {file = "pytest_cov-5.0.0-py3-none-any.whl", hash = "sha256:4f0764a1219df53214206bf1feea4633c3b558a2925c8b59f144f682861ce652"}, +] + +[package.dependencies] +coverage = {version = ">=5.2.1", extras = ["toml"]} +pytest = ">=4.6" + +[package.extras] +testing = ["fields", "hunter", "process-tests", "pytest-xdist", "virtualenv"] + +[[package]] +name = "pyyaml" +version = "6.0.2" +description = "YAML parser and emitter for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, + {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, + {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, + {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, + {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, + {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, + {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, + {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, + {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, + {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, + {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, + {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, + {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, + {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, + {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, + {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, + {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, +] + +[[package]] +name = "rich" +version = "13.9.4" +description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" +optional = false +python-versions = ">=3.8.0" +files = [ + {file = "rich-13.9.4-py3-none-any.whl", hash = "sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90"}, + {file = "rich-13.9.4.tar.gz", hash = "sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098"}, +] + +[package.dependencies] +markdown-it-py = ">=2.2.0" +pygments = ">=2.13.0,<3.0.0" +typing-extensions = {version = ">=4.0.0,<5.0", markers = "python_version < \"3.11\""} + +[package.extras] +jupyter = ["ipywidgets (>=7.5.1,<9)"] + +[[package]] +name = "rich-rst" +version = "1.3.1" +description = "A beautiful reStructuredText renderer for rich" +optional = false +python-versions = ">=3.6" +files = [ + {file = "rich_rst-1.3.1-py3-none-any.whl", hash = "sha256:498a74e3896507ab04492d326e794c3ef76e7cda078703aa592d1853d91098c1"}, + {file = "rich_rst-1.3.1.tar.gz", hash = "sha256:fad46e3ba42785ea8c1785e2ceaa56e0ffa32dbe5410dec432f37e4107c4f383"}, +] + +[package.dependencies] +docutils = "*" +rich = ">=12.0.0" + +[[package]] +name = "ruff" +version = "0.3.7" +description = "An extremely fast Python linter and code formatter, written in Rust." +optional = false +python-versions = ">=3.7" +files = [ + {file = "ruff-0.3.7-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:0e8377cccb2f07abd25e84fc5b2cbe48eeb0fea9f1719cad7caedb061d70e5ce"}, + {file = "ruff-0.3.7-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:15a4d1cc1e64e556fa0d67bfd388fed416b7f3b26d5d1c3e7d192c897e39ba4b"}, + {file = "ruff-0.3.7-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d28bdf3d7dc71dd46929fafeec98ba89b7c3550c3f0978e36389b5631b793663"}, + {file = "ruff-0.3.7-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:379b67d4f49774ba679593b232dcd90d9e10f04d96e3c8ce4a28037ae473f7bb"}, + {file = "ruff-0.3.7-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c060aea8ad5ef21cdfbbe05475ab5104ce7827b639a78dd55383a6e9895b7c51"}, + {file = "ruff-0.3.7-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:ebf8f615dde968272d70502c083ebf963b6781aacd3079081e03b32adfe4d58a"}, + {file = "ruff-0.3.7-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d48098bd8f5c38897b03604f5428901b65e3c97d40b3952e38637b5404b739a2"}, + {file = "ruff-0.3.7-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:da8a4fda219bf9024692b1bc68c9cff4b80507879ada8769dc7e985755d662ea"}, + {file = "ruff-0.3.7-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c44e0149f1d8b48c4d5c33d88c677a4aa22fd09b1683d6a7ff55b816b5d074f"}, + {file = "ruff-0.3.7-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:3050ec0af72b709a62ecc2aca941b9cd479a7bf2b36cc4562f0033d688e44fa1"}, + {file = "ruff-0.3.7-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:a29cc38e4c1ab00da18a3f6777f8b50099d73326981bb7d182e54a9a21bb4ff7"}, + {file = "ruff-0.3.7-py3-none-musllinux_1_2_i686.whl", hash = "sha256:5b15cc59c19edca917f51b1956637db47e200b0fc5e6e1878233d3a938384b0b"}, + {file = "ruff-0.3.7-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:e491045781b1e38b72c91247cf4634f040f8d0cb3e6d3d64d38dcf43616650b4"}, + {file = "ruff-0.3.7-py3-none-win32.whl", hash = "sha256:bc931de87593d64fad3a22e201e55ad76271f1d5bfc44e1a1887edd0903c7d9f"}, + {file = "ruff-0.3.7-py3-none-win_amd64.whl", hash = "sha256:5ef0e501e1e39f35e03c2acb1d1238c595b8bb36cf7a170e7c1df1b73da00e74"}, + {file = "ruff-0.3.7-py3-none-win_arm64.whl", hash = "sha256:789e144f6dc7019d1f92a812891c645274ed08af6037d11fc65fcbc183b7d59f"}, + {file = "ruff-0.3.7.tar.gz", hash = "sha256:d5c1aebee5162c2226784800ae031f660c350e7a3402c4d1f8ea4e97e232e3ba"}, +] + +[[package]] +name = "tifffile" +version = "2024.9.20" +description = "Read and write TIFF files" +optional = false +python-versions = ">=3.10" +files = [ + {file = "tifffile-2024.9.20-py3-none-any.whl", hash = "sha256:c54dc85bc1065d972cb8a6ffb3181389d597876aa80177933459733e4ed243dd"}, + {file = "tifffile-2024.9.20.tar.gz", hash = "sha256:3fbf3be2f995a7051a8ae05a4be70c96fc0789f22ed6f1c4104c973cf68a640b"}, +] + +[package.dependencies] +numpy = "*" + +[package.extras] +all = ["defusedxml", "fsspec", "imagecodecs (>=2023.8.12)", "lxml", "matplotlib", "zarr"] +codecs = ["imagecodecs (>=2023.8.12)"] +plot = ["matplotlib"] +test = ["cmapfile", "czifile", "dask", "defusedxml", "fsspec", "imagecodecs", "lfdfiles", "lxml", "ndtiff", "oiffile", "psdtags", "pytest", "roifile", "xarray", "zarr"] +xml = ["defusedxml", "lxml"] +zarr = ["fsspec", "zarr"] + +[[package]] +name = "tomli" +version = "2.0.2" +description = "A lil' TOML parser" +optional = false +python-versions = ">=3.8" +files = [ + {file = "tomli-2.0.2-py3-none-any.whl", hash = "sha256:2ebe24485c53d303f690b0ec092806a085f07af5a5aa1464f3931eec36caaa38"}, + {file = "tomli-2.0.2.tar.gz", hash = "sha256:d46d457a85337051c36524bc5349dd91b1877838e2979ac5ced3e710ed8a60ed"}, +] + +[[package]] +name = "typing-extensions" +version = "4.12.2" +description = "Backported and Experimental Type Hints for Python 3.8+" +optional = false +python-versions = ">=3.8" +files = [ + {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, + {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, +] + +[[package]] +name = "virtualenv" +version = "20.27.1" +description = "Virtual Python Environment builder" +optional = false +python-versions = ">=3.8" +files = [ + {file = "virtualenv-20.27.1-py3-none-any.whl", hash = "sha256:f11f1b8a29525562925f745563bfd48b189450f61fb34c4f9cc79dd5aa32a1f4"}, + {file = "virtualenv-20.27.1.tar.gz", hash = "sha256:142c6be10212543b32c6c45d3d3893dff89112cc588b7d0879ae5a1ec03a47ba"}, +] + +[package.dependencies] +distlib = ">=0.3.7,<1" +filelock = ">=3.12.2,<4" +platformdirs = ">=3.9.1,<5" + +[package.extras] +docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2,!=7.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] +test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8)", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10)"] + +[[package]] +name = "zarr" +version = "2.18.3" +description = "An implementation of chunked, compressed, N-dimensional arrays for Python" +optional = false +python-versions = ">=3.10" +files = [ + {file = "zarr-2.18.3-py3-none-any.whl", hash = "sha256:b1f7dfd2496f436745cdd4c7bcf8d3b4bc1dceef5fdd0d589c87130d842496dd"}, + {file = "zarr-2.18.3.tar.gz", hash = "sha256:2580d8cb6dd84621771a10d31c4d777dca8a27706a1a89b29f42d2d37e2df5ce"}, +] + +[package.dependencies] +asciitree = "*" +fasteners = {version = "*", markers = "sys_platform != \"emscripten\""} +numcodecs = ">=0.10.0" +numpy = ">=1.24" + +[package.extras] +docs = ["numcodecs[msgpack]", "numpydoc", "pydata-sphinx-theme", "sphinx", "sphinx-automodapi", "sphinx-copybutton", "sphinx-design", "sphinx-issues"] +jupyter = ["ipytree (>=0.2.2)", "ipywidgets (>=8.0.0)", "notebook"] + +[metadata] +lock-version = "2.0" +python-versions = "^3.10" +content-hash = "9f7fa53f9f282a99c6b1ecea8342c1e63113a62c321359aec8fcdd20e3d69eb2" From 33de0322f456df9f456f872adbb9c2442ce6f1f4 Mon Sep 17 00:00:00 2001 From: "Kaidong (Calvin) Chai" Date: Tue, 16 Dec 2025 16:23:51 -0500 Subject: [PATCH 026/133] Implement multi-stage Docker build with Poetry Refactor Dockerfile to use multi-stage builds for better dependency management and security practices. --- Dockerfile | 75 +++++++++++++++++++++++++++++++++--------------------- 1 file changed, 46 insertions(+), 29 deletions(-) diff --git a/Dockerfile b/Dockerfile index 85e345cd..4dd248a9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,45 +1,62 @@ -# Use Python 3.11 as base image -FROM python:3.11-slim +# ---------------------------------------------------------------------------- +# STAGE 1: Builder +# Used to install Poetry, compile dependencies, and create the virtual environment. +# ---------------------------------------------------------------------------- +FROM python:3.11-slim as builder # Set working directory WORKDIR /app -# Install system dependencies +# Install build dependencies (GCC, etc.) +# We need these to compile packages, but we don't want them in the final image. RUN apt-get update && apt-get install -y \ build-essential \ - curl + && rm -rf /var/lib/apt/lists/* # Install Poetry -ENV POETRY_VERSION=1.8.4 -ENV POETRY_HOME=/opt/poetry -ENV POETRY_VENV=/opt/poetry-venv -ENV POETRY_CACHE_DIR=/opt/poetry-cache - -RUN python3 -m venv $POETRY_VENV \ - && $POETRY_VENV/bin/pip install -U pip setuptools \ - && $POETRY_VENV/bin/pip install poetry==${POETRY_VERSION} \ - && ln -s ${POETRY_VENV}/bin/poetry /usr/local/bin/poetry \ - && chmod 755 /usr/local/bin/poetry - -# Configure Poetry: Don't create virtual environment, install dependencies to system -ENV POETRY_NO_INTERACTION=1 \ - POETRY_VENV_IN_PROJECT=1 \ - POETRY_CACHE_DIR=/opt/poetry-cache +RUN pip install poetry==1.8.4 -# Copy Poetry configuration files -COPY pyproject.toml ./ +# Configure Poetry to create the venv inside the project folder +# This makes it easy to copy the whole folder to the next stage +ENV POETRY_NO_INTERACTION=1 \ + POETRY_VIRTUALENVS_IN_PROJECT=1 \ + POETRY_VIRTUALENVS_CREATE=1 \ + POETRY_CACHE_DIR=/tmp/poetry_cache -# Install dependencies -RUN poetry install --no-dev --no-root --extras all +# Copy dependency definition files first (for caching) +COPY pyproject.toml poetry.lock ./ +RUN poetry lock +# Install dependencies (only the libraries) +RUN poetry install --no-root --no-dev --extras all && rm -rf $POETRY_CACHE_DIR -# Copy application code +# Copy the rest of the application code COPY . . +RUN poetry lock +# Install the application itself +#RUN poetry install --no-dev --extras all +RUN poetry build -f wheel +RUN ./.venv/bin/pip install dist/*.whl +# ---------------------------------------------------------------------------- +# STAGE 2: Runtime +# A fresh, empty image that only contains the Python runtime and our copied venv. +# ---------------------------------------------------------------------------- +FROM python:3.11-slim as runtime -# Install the application -RUN poetry install --no-dev --extras all +WORKDIR /app -# Set the entrypoint -ENTRYPOINT ["poetry", "run", "linc-convert"] +# Create a non-root user for security (Best Practice) +RUN useradd -m -r appuser && chown appuser /app +USER appuser -# Default command (can be overridden) +# Copy the virtual environment from the builder stage +# We assume the path structure is identical (/app/.venv) +COPY --from=builder --chown=appuser:appuser /app/.venv /app/.venv + +# Update PATH environment variable +# This allows us to type 'linc-convert' instead of '/app/.venv/bin/linc-convert' +ENV PATH="/app/.venv/bin:$PATH" + +# Set the entrypoint +ENTRYPOINT ["linc-convert"] +# Default command CMD ["--help"] From 79e209cca246ba8f6a7837cc2a8715f00c0b2f37 Mon Sep 17 00:00:00 2001 From: "Kaidong (Calvin) Chai" Date: Tue, 16 Dec 2025 16:36:08 -0500 Subject: [PATCH 027/133] Add source label to Dockerfile --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 4dd248a9..d8323f19 100644 --- a/Dockerfile +++ b/Dockerfile @@ -55,7 +55,7 @@ COPY --from=builder --chown=appuser:appuser /app/.venv /app/.venv # Update PATH environment variable # This allows us to type 'linc-convert' instead of '/app/.venv/bin/linc-convert' ENV PATH="/app/.venv/bin:$PATH" - +LABEL org.opencontainers.image.source https://github.com/lincbrain/linc-convert # Set the entrypoint ENTRYPOINT ["linc-convert"] # Default command From c7b670d6961e103fcef3de71e635445eda755ec8 Mon Sep 17 00:00:00 2001 From: "Kaidong (Calvin) Chai" Date: Tue, 16 Dec 2025 16:41:41 -0500 Subject: [PATCH 028/133] Update Dockerfile syntax for build stages --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index d8323f19..0e0f51fc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ # STAGE 1: Builder # Used to install Poetry, compile dependencies, and create the virtual environment. # ---------------------------------------------------------------------------- -FROM python:3.11-slim as builder +FROM python:3.11-slim AS builder # Set working directory WORKDIR /app @@ -40,7 +40,7 @@ RUN ./.venv/bin/pip install dist/*.whl # STAGE 2: Runtime # A fresh, empty image that only contains the Python runtime and our copied venv. # ---------------------------------------------------------------------------- -FROM python:3.11-slim as runtime +FROM python:3.11-slim AS runtime WORKDIR /app From d835d1de280ebeebc42de159a7d93aa6ae33a33a Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Tue, 16 Dec 2025 17:02:18 -0500 Subject: [PATCH 029/133] fix: line error when apply git --- linc_convert/modalities/lsm/__init__.py | 1 - 1 file changed, 1 deletion(-) diff --git a/linc_convert/modalities/lsm/__init__.py b/linc_convert/modalities/lsm/__init__.py index 9c380184..7b405b7f 100644 --- a/linc_convert/modalities/lsm/__init__.py +++ b/linc_convert/modalities/lsm/__init__.py @@ -4,7 +4,6 @@ import tifffile as _ # noqa: F401 __all__ = ["cli", "mosaic", "multi_slice", "spool", "single_volume", "stripe"] - __all__ = ["cli", "mosaic", "multi_slice", "spool"] from . import cli, mosaic, multi_slice, spool, single_volume, stripe except ImportError: From 21278a46717af20f291e6e33a0d8f041573ef81f Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Wed, 17 Dec 2025 10:37:53 -0500 Subject: [PATCH 030/133] fix: spell error --- linc_convert/modalities/lsm/__init__.py | 4 ++-- .../modalities/lsm/{stripe.py => strip.py} | 23 +++++-------------- 2 files changed, 8 insertions(+), 19 deletions(-) rename linc_convert/modalities/lsm/{stripe.py => strip.py} (87%) diff --git a/linc_convert/modalities/lsm/__init__.py b/linc_convert/modalities/lsm/__init__.py index 7b405b7f..fa43325b 100644 --- a/linc_convert/modalities/lsm/__init__.py +++ b/linc_convert/modalities/lsm/__init__.py @@ -3,8 +3,8 @@ try: import tifffile as _ # noqa: F401 - __all__ = ["cli", "mosaic", "multi_slice", "spool", "single_volume", "stripe"] + __all__ = ["cli", "mosaic", "multi_slice", "spool", "single_volume", "strip"] - from . import cli, mosaic, multi_slice, spool, single_volume, stripe + from . import cli, mosaic, multi_slice, spool, single_volume, strip except ImportError: pass diff --git a/linc_convert/modalities/lsm/stripe.py b/linc_convert/modalities/lsm/strip.py similarity index 87% rename from linc_convert/modalities/lsm/stripe.py rename to linc_convert/modalities/lsm/strip.py index 36185c07..be811280 100644 --- a/linc_convert/modalities/lsm/stripe.py +++ b/linc_convert/modalities/lsm/strip.py @@ -6,18 +6,11 @@ %2Fmicr%2Fsample18_run10__y10_z01_HR&page=1 """ import logging - # stdlib -import os import os.path as op -import re -import warnings -from collections import defaultdict, namedtuple -from glob import glob -import dask.array as da + # externals import cyclopts -import numpy as np # internals from linc_convert.modalities.lsm.cli import lsm @@ -40,7 +33,7 @@ @autoconfig def convert( stripe_directory: str, - info_file:str, + info_file: str, *, voxel_size: list[float] = (1, 1, 1), general_config: GeneralConfig = None, @@ -53,12 +46,10 @@ def convert( Parameters ---------- inp - Path to the root directory, which contains a collection of + Path to the stripe directory, which contains a collection of subfolders named `*_y{:02d}_z{:02d}*_HR`, each containing a collection of files named `*spool.dat`. TODO: add instrution for metadata file and info file - overlap - Number of pixels between slices that are overlapped voxel_size Voxel size along the X, Y and Z dimensions, in microns. general_config @@ -71,7 +62,6 @@ def convert( reader = SpoolSetInterpreter(stripe_directory, info_file) - # Set default output path if not provided general_config.set_default_name(op.basename(info_file)) @@ -79,14 +69,14 @@ def convert( # Initialize Zarr group and array omz = from_config(general_config.out, zarr_config) - array = omz.create_array("0", shape=fullshape, zarr_config=zarr_config, dtype=reader.dtype) + array = omz.create_array("0", shape=fullshape, zarr_config=zarr_config, + dtype=reader.dtype) logger.info(general_config.out) result = reader.assemble() - result = result.transpose(1,2,0) + result = result.transpose(1, 2, 0) array[:] = result[:] print("Write level 0 with shape", fullshape) - voxel_size = list(map(float, reversed(voxel_size))) # Generate Zarr pyramid and metadata omz.generate_pyramid(levels=zarr_config.levels) @@ -102,4 +92,3 @@ def convert( omz.write_nifti_header(header) logger.info("Conversion complete.") - From ca0fc5dda2e3136a052b183d73f071fbc27c26fd Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Wed, 17 Dec 2025 10:48:49 -0500 Subject: [PATCH 031/133] refactor: update parameter names and improve documentation in lsm strip conversion --- linc_convert/modalities/lsm/strip.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/linc_convert/modalities/lsm/strip.py b/linc_convert/modalities/lsm/strip.py index be811280..edaf48d4 100644 --- a/linc_convert/modalities/lsm/strip.py +++ b/linc_convert/modalities/lsm/strip.py @@ -1,5 +1,5 @@ """ -Convert spool .dat files set generated by the LSM pipeline into a zarr. +Convert spool .dat files set in one strip generated by the LSM pipeline into a zarr. Example input files can be found at https://lincbrain.org/dandiset/000010/draft/files?location=sourcedata%2Frawdata @@ -32,7 +32,7 @@ @stripe.default @autoconfig def convert( - stripe_directory: str, + inp: str, info_file: str, *, voxel_size: list[float] = (1, 1, 1), @@ -46,10 +46,11 @@ def convert( Parameters ---------- inp - Path to the stripe directory, which contains a collection of - subfolders named `*_y{:02d}_z{:02d}*_HR`, each containing a + Path to the stripe directory, which contains a collection of files named `*spool.dat`. - TODO: add instrution for metadata file and info file + info_file + Path to the info file (.mat), which contains the information + about the scan and the spool files. voxel_size Voxel size along the X, Y and Z dimensions, in microns. general_config @@ -60,7 +61,7 @@ def convert( NIfTI header related configuration """ - reader = SpoolSetInterpreter(stripe_directory, info_file) + reader = SpoolSetInterpreter(inp, info_file) # Set default output path if not provided general_config.set_default_name(op.basename(info_file)) From 1612cc7e5decc6d0274e01009fe9e46306db62e5 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Wed, 17 Dec 2025 10:48:54 -0500 Subject: [PATCH 032/133] refactor: optimize array concatenation in SpoolSetInterpreter --- linc_convert/utils/io/spool.py | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/linc_convert/utils/io/spool.py b/linc_convert/utils/io/spool.py index 17f146df..298b8b61 100644 --- a/linc_convert/utils/io/spool.py +++ b/linc_convert/utils/io/spool.py @@ -254,15 +254,10 @@ def assemble(self) -> np.ndarray: A NumPy array of shape (frames_total, rows, columns), where frames_total = images_per_file * number_of_files. """ - axis_0_shape = self.spool_shape[0] - canvas = np.zeros( - (axis_0_shape * len(self), *self.spool_shape[1:]), dtype=self.dtype - ) - for idx, spool_data in enumerate(self): - start = idx * axis_0_shape - stop = start + axis_0_shape - canvas[start:stop] = spool_data - return canvas + chunks = list(self) + if not chunks: + return np.zeros((0, *self.spool_shape[1:]), dtype=self.dtype) + return np.concatenate(chunks, axis=0).astype(self.dtype, copy=False) # this is the modified version for lsm pipeline def assemble_cropped(self) -> np.ndarray: From b5321180fff5c09dd95c3de2f324ba4922e48003 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Fri, 5 Dec 2025 11:28:59 -0500 Subject: [PATCH 033/133] Add Docker support with Dockerfile, .dockerignore, and GitHub Actions workflow --- .dockerignore | 53 ++++++++++++++++++++++++ .github/workflows/docker-build.yml | 65 ++++++++++++++++++++++++++++++ Dockerfile | 47 +++++++++++++++++++++ 3 files changed, 165 insertions(+) create mode 100644 .dockerignore create mode 100644 .github/workflows/docker-build.yml create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..4c1144cc --- /dev/null +++ b/.dockerignore @@ -0,0 +1,53 @@ +# Git +.git +.gitignore +.github + +# Python +__pycache__ +*.py[cod] +*$py.class +*.so +.Python +*.egg-info +dist +build +.venv +venv +env +ENV + +# Testing +.pytest_cache +.coverage +htmlcov +.tox +.mypy_cache +.ruff_cache + +# Documentation +site +docs/requirements.txt + +# IDE +.vscode +.idea +*.swp +*.swo +*~ + +# OS +.DS_Store +Thumbs.db + +# Project specific +scripts/*.ipynb +scripts/*.nii +scripts/*.tiff +scripts/*.jpeg +scripts/*.yaml +tests/data + +# Poetry +poetry.lock.bak + diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml new file mode 100644 index 00000000..ed3707c7 --- /dev/null +++ b/.github/workflows/docker-build.yml @@ -0,0 +1,65 @@ +name: Build and Push Docker Image + +on: + push: + branches: + - main + - master + tags: + - 'v*' + pull_request: + branches: + - main + - master + workflow_dispatch: + +env: + REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository }} + +jobs: + build-and-push: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to Container Registry + if: github.event_name != 'pull_request' + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + tags: | + type=ref,event=branch + type=ref,event=pr + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} + type=semver,pattern={{major}} + type=sha,prefix={{branch}}- + type=raw,value=latest,enable={{is_default_branch}} + + - name: Build and push Docker image + uses: docker/build-push-action@v5 + with: + context: . + push: ${{ github.event_name != 'pull_request' }} + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + cache-from: type=gha + cache-to: type=gha,mode=max + diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..afb90caa --- /dev/null +++ b/Dockerfile @@ -0,0 +1,47 @@ +# Use Python 3.11 as base image +FROM python:3.11-slim + +# Set working directory +WORKDIR /app + +# Install system dependencies +RUN apt-get update && apt-get install -y \ + build-essential \ + curl \ + && rm -rf /var/lib/apt/lists/* + +# Install Poetry +ENV POETRY_VERSION=1.8.4 +ENV POETRY_HOME=/opt/poetry +ENV POETRY_VENV=/opt/poetry-venv +ENV POETRY_CACHE_DIR=/opt/poetry-cache + +RUN python3 -m venv $POETRY_VENV \ + && $POETRY_VENV/bin/pip install -U pip setuptools \ + && $POETRY_VENV/bin/pip install poetry==${POETRY_VERSION} \ + && ln -s ${POETRY_VENV}/bin/poetry /usr/local/bin/poetry \ + && chmod 755 /usr/local/bin/poetry + +# Configure Poetry: Don't create virtual environment, install dependencies to system +ENV POETRY_NO_INTERACTION=1 \ + POETRY_VENV_IN_PROJECT=1 \ + POETRY_CACHE_DIR=/opt/poetry-cache + +# Copy Poetry configuration files +COPY pyproject.toml poetry.lock ./ + +# Install dependencies +RUN poetry install --no-dev --no-root + +# Copy application code +COPY . . + +# Install the application +RUN poetry install --no-dev + +# Set the entrypoint +ENTRYPOINT ["linc-convert"] + +# Default command (can be overridden) +CMD ["--help"] + From 1a2ca9f3d1c495b7aded88b3d5fcb952b4f43f01 Mon Sep 17 00:00:00 2001 From: "Kaidong (Calvin) Chai" Date: Tue, 16 Dec 2025 15:44:48 -0500 Subject: [PATCH 034/133] Refactor Dockerfile for Poetry installation and entrypoint Updated the Dockerfile to install all dependencies and set the entrypoint to use Poetry. --- Dockerfile | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/Dockerfile b/Dockerfile index afb90caa..85e345cd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,8 +7,7 @@ WORKDIR /app # Install system dependencies RUN apt-get update && apt-get install -y \ build-essential \ - curl \ - && rm -rf /var/lib/apt/lists/* + curl # Install Poetry ENV POETRY_VERSION=1.8.4 @@ -28,20 +27,19 @@ ENV POETRY_NO_INTERACTION=1 \ POETRY_CACHE_DIR=/opt/poetry-cache # Copy Poetry configuration files -COPY pyproject.toml poetry.lock ./ +COPY pyproject.toml ./ # Install dependencies -RUN poetry install --no-dev --no-root +RUN poetry install --no-dev --no-root --extras all # Copy application code COPY . . # Install the application -RUN poetry install --no-dev +RUN poetry install --no-dev --extras all # Set the entrypoint -ENTRYPOINT ["linc-convert"] +ENTRYPOINT ["poetry", "run", "linc-convert"] # Default command (can be overridden) CMD ["--help"] - From bc178267dd31277bdce3e8d8727232fe45a98b2a Mon Sep 17 00:00:00 2001 From: "Kaidong (Calvin) Chai" Date: Tue, 16 Dec 2025 15:48:23 -0500 Subject: [PATCH 035/133] add poetry lock file --- poetry.lock | 1116 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1116 insertions(+) create mode 100644 poetry.lock diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 00000000..91792d60 --- /dev/null +++ b/poetry.lock @@ -0,0 +1,1116 @@ +# This file is automatically @generated by Poetry 1.8.4 and should not be changed by hand. + +[[package]] +name = "asciitree" +version = "0.3.3" +description = "Draws ASCII trees." +optional = false +python-versions = "*" +files = [ + {file = "asciitree-0.3.3.tar.gz", hash = "sha256:4aa4b9b649f85e3fcb343363d97564aa1fb62e249677f2e18a96765145cc0f6e"}, +] + +[[package]] +name = "attrs" +version = "24.2.0" +description = "Classes Without Boilerplate" +optional = false +python-versions = ">=3.7" +files = [ + {file = "attrs-24.2.0-py3-none-any.whl", hash = "sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2"}, + {file = "attrs-24.2.0.tar.gz", hash = "sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346"}, +] + +[package.extras] +benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"] +tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] + +[[package]] +name = "cfgv" +version = "3.4.0" +description = "Validate configuration and produce human readable error messages." +optional = false +python-versions = ">=3.8" +files = [ + {file = "cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9"}, + {file = "cfgv-3.4.0.tar.gz", hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560"}, +] + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "coverage" +version = "7.6.4" +description = "Code coverage measurement for Python" +optional = false +python-versions = ">=3.9" +files = [ + {file = "coverage-7.6.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5f8ae553cba74085db385d489c7a792ad66f7f9ba2ee85bfa508aeb84cf0ba07"}, + {file = "coverage-7.6.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8165b796df0bd42e10527a3f493c592ba494f16ef3c8b531288e3d0d72c1f6f0"}, + {file = "coverage-7.6.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c7c8b95bf47db6d19096a5e052ffca0a05f335bc63cef281a6e8fe864d450a72"}, + {file = "coverage-7.6.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8ed9281d1b52628e81393f5eaee24a45cbd64965f41857559c2b7ff19385df51"}, + {file = "coverage-7.6.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0809082ee480bb8f7416507538243c8863ac74fd8a5d2485c46f0f7499f2b491"}, + {file = "coverage-7.6.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d541423cdd416b78626b55f123412fcf979d22a2c39fce251b350de38c15c15b"}, + {file = "coverage-7.6.4-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:58809e238a8a12a625c70450b48e8767cff9eb67c62e6154a642b21ddf79baea"}, + {file = "coverage-7.6.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c9b8e184898ed014884ca84c70562b4a82cbc63b044d366fedc68bc2b2f3394a"}, + {file = "coverage-7.6.4-cp310-cp310-win32.whl", hash = "sha256:6bd818b7ea14bc6e1f06e241e8234508b21edf1b242d49831831a9450e2f35fa"}, + {file = "coverage-7.6.4-cp310-cp310-win_amd64.whl", hash = "sha256:06babbb8f4e74b063dbaeb74ad68dfce9186c595a15f11f5d5683f748fa1d172"}, + {file = "coverage-7.6.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:73d2b73584446e66ee633eaad1a56aad577c077f46c35ca3283cd687b7715b0b"}, + {file = "coverage-7.6.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:51b44306032045b383a7a8a2c13878de375117946d68dcb54308111f39775a25"}, + {file = "coverage-7.6.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0b3fb02fe73bed561fa12d279a417b432e5b50fe03e8d663d61b3d5990f29546"}, + {file = "coverage-7.6.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed8fe9189d2beb6edc14d3ad19800626e1d9f2d975e436f84e19efb7fa19469b"}, + {file = "coverage-7.6.4-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b369ead6527d025a0fe7bd3864e46dbee3aa8f652d48df6174f8d0bac9e26e0e"}, + {file = "coverage-7.6.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ade3ca1e5f0ff46b678b66201f7ff477e8fa11fb537f3b55c3f0568fbfe6e718"}, + {file = "coverage-7.6.4-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:27fb4a050aaf18772db513091c9c13f6cb94ed40eacdef8dad8411d92d9992db"}, + {file = "coverage-7.6.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4f704f0998911abf728a7783799444fcbbe8261c4a6c166f667937ae6a8aa522"}, + {file = "coverage-7.6.4-cp311-cp311-win32.whl", hash = "sha256:29155cd511ee058e260db648b6182c419422a0d2e9a4fa44501898cf918866cf"}, + {file = "coverage-7.6.4-cp311-cp311-win_amd64.whl", hash = "sha256:8902dd6a30173d4ef09954bfcb24b5d7b5190cf14a43170e386979651e09ba19"}, + {file = "coverage-7.6.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:12394842a3a8affa3ba62b0d4ab7e9e210c5e366fbac3e8b2a68636fb19892c2"}, + {file = "coverage-7.6.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2b6b4c83d8e8ea79f27ab80778c19bc037759aea298da4b56621f4474ffeb117"}, + {file = "coverage-7.6.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d5b8007f81b88696d06f7df0cb9af0d3b835fe0c8dbf489bad70b45f0e45613"}, + {file = "coverage-7.6.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b57b768feb866f44eeed9f46975f3d6406380275c5ddfe22f531a2bf187eda27"}, + {file = "coverage-7.6.4-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5915fcdec0e54ee229926868e9b08586376cae1f5faa9bbaf8faf3561b393d52"}, + {file = "coverage-7.6.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0b58c672d14f16ed92a48db984612f5ce3836ae7d72cdd161001cc54512571f2"}, + {file = "coverage-7.6.4-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:2fdef0d83a2d08d69b1f2210a93c416d54e14d9eb398f6ab2f0a209433db19e1"}, + {file = "coverage-7.6.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8cf717ee42012be8c0cb205dbbf18ffa9003c4cbf4ad078db47b95e10748eec5"}, + {file = "coverage-7.6.4-cp312-cp312-win32.whl", hash = "sha256:7bb92c539a624cf86296dd0c68cd5cc286c9eef2d0c3b8b192b604ce9de20a17"}, + {file = "coverage-7.6.4-cp312-cp312-win_amd64.whl", hash = "sha256:1032e178b76a4e2b5b32e19d0fd0abbce4b58e77a1ca695820d10e491fa32b08"}, + {file = "coverage-7.6.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:023bf8ee3ec6d35af9c1c6ccc1d18fa69afa1cb29eaac57cb064dbb262a517f9"}, + {file = "coverage-7.6.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:b0ac3d42cb51c4b12df9c5f0dd2f13a4f24f01943627120ec4d293c9181219ba"}, + {file = "coverage-7.6.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8fe4984b431f8621ca53d9380901f62bfb54ff759a1348cd140490ada7b693c"}, + {file = "coverage-7.6.4-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5fbd612f8a091954a0c8dd4c0b571b973487277d26476f8480bfa4b2a65b5d06"}, + {file = "coverage-7.6.4-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dacbc52de979f2823a819571f2e3a350a7e36b8cb7484cdb1e289bceaf35305f"}, + {file = "coverage-7.6.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:dab4d16dfef34b185032580e2f2f89253d302facba093d5fa9dbe04f569c4f4b"}, + {file = "coverage-7.6.4-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:862264b12ebb65ad8d863d51f17758b1684560b66ab02770d4f0baf2ff75da21"}, + {file = "coverage-7.6.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5beb1ee382ad32afe424097de57134175fea3faf847b9af002cc7895be4e2a5a"}, + {file = "coverage-7.6.4-cp313-cp313-win32.whl", hash = "sha256:bf20494da9653f6410213424f5f8ad0ed885e01f7e8e59811f572bdb20b8972e"}, + {file = "coverage-7.6.4-cp313-cp313-win_amd64.whl", hash = "sha256:182e6cd5c040cec0a1c8d415a87b67ed01193ed9ad458ee427741c7d8513d963"}, + {file = "coverage-7.6.4-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:a181e99301a0ae128493a24cfe5cfb5b488c4e0bf2f8702091473d033494d04f"}, + {file = "coverage-7.6.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:df57bdbeffe694e7842092c5e2e0bc80fff7f43379d465f932ef36f027179806"}, + {file = "coverage-7.6.4-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bcd1069e710600e8e4cf27f65c90c7843fa8edfb4520fb0ccb88894cad08b11"}, + {file = "coverage-7.6.4-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:99b41d18e6b2a48ba949418db48159d7a2e81c5cc290fc934b7d2380515bd0e3"}, + {file = "coverage-7.6.4-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a6b1e54712ba3474f34b7ef7a41e65bd9037ad47916ccb1cc78769bae324c01a"}, + {file = "coverage-7.6.4-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:53d202fd109416ce011578f321460795abfe10bb901b883cafd9b3ef851bacfc"}, + {file = "coverage-7.6.4-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:c48167910a8f644671de9f2083a23630fbf7a1cb70ce939440cd3328e0919f70"}, + {file = "coverage-7.6.4-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:cc8ff50b50ce532de2fa7a7daae9dd12f0a699bfcd47f20945364e5c31799fef"}, + {file = "coverage-7.6.4-cp313-cp313t-win32.whl", hash = "sha256:b8d3a03d9bfcaf5b0141d07a88456bb6a4c3ce55c080712fec8418ef3610230e"}, + {file = "coverage-7.6.4-cp313-cp313t-win_amd64.whl", hash = "sha256:f3ddf056d3ebcf6ce47bdaf56142af51bb7fad09e4af310241e9db7a3a8022e1"}, + {file = "coverage-7.6.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9cb7fa111d21a6b55cbf633039f7bc2749e74932e3aa7cb7333f675a58a58bf3"}, + {file = "coverage-7.6.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:11a223a14e91a4693d2d0755c7a043db43d96a7450b4f356d506c2562c48642c"}, + {file = "coverage-7.6.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a413a096c4cbac202433c850ee43fa326d2e871b24554da8327b01632673a076"}, + {file = "coverage-7.6.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:00a1d69c112ff5149cabe60d2e2ee948752c975d95f1e1096742e6077affd376"}, + {file = "coverage-7.6.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f76846299ba5c54d12c91d776d9605ae33f8ae2b9d1d3c3703cf2db1a67f2c0"}, + {file = "coverage-7.6.4-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:fe439416eb6380de434886b00c859304338f8b19f6f54811984f3420a2e03858"}, + {file = "coverage-7.6.4-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:0294ca37f1ba500667b1aef631e48d875ced93ad5e06fa665a3295bdd1d95111"}, + {file = "coverage-7.6.4-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:6f01ba56b1c0e9d149f9ac85a2f999724895229eb36bd997b61e62999e9b0901"}, + {file = "coverage-7.6.4-cp39-cp39-win32.whl", hash = "sha256:bc66f0bf1d7730a17430a50163bb264ba9ded56739112368ba985ddaa9c3bd09"}, + {file = "coverage-7.6.4-cp39-cp39-win_amd64.whl", hash = "sha256:c481b47f6b5845064c65a7bc78bc0860e635a9b055af0df46fdf1c58cebf8e8f"}, + {file = "coverage-7.6.4-pp39.pp310-none-any.whl", hash = "sha256:3c65d37f3a9ebb703e710befdc489a38683a5b152242664b973a7b7b22348a4e"}, + {file = "coverage-7.6.4.tar.gz", hash = "sha256:29fc0f17b1d3fea332f8001d4558f8214af7f1d87a345f3a133c901d60347c73"}, +] + +[package.dependencies] +tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.11.0a6\" and extra == \"toml\""} + +[package.extras] +toml = ["tomli"] + +[[package]] +name = "cyclopts" +version = "2.9.9" +description = "" +optional = false +python-versions = ">=3.8" +files = [ + {file = "cyclopts-2.9.9-py3-none-any.whl", hash = "sha256:d0ce956c70f3070e5bc16824ecb5ebba155be45ef4aadbb78ac4753dd99367e3"}, + {file = "cyclopts-2.9.9.tar.gz", hash = "sha256:11d7bb59be253329ff49a1b9a634676c7ae708605d4975090783b99d081c1a0b"}, +] + +[package.dependencies] +attrs = ">=23.1.0" +docstring-parser = {version = ">=0.15", markers = "python_version < \"4.0\""} +rich = ">=13.6.0" +rich-rst = ">=1.3.1,<2.0.0" +typing-extensions = {version = ">=4.8.0", markers = "python_full_version >= \"3.8.0\" and python_full_version < \"4.0.0\""} + +[package.extras] +toml = ["tomli (>=2.0.0)"] +yaml = ["pyyaml (>=6.0.1)"] + +[[package]] +name = "distlib" +version = "0.3.9" +description = "Distribution utilities" +optional = false +python-versions = "*" +files = [ + {file = "distlib-0.3.9-py2.py3-none-any.whl", hash = "sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87"}, + {file = "distlib-0.3.9.tar.gz", hash = "sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403"}, +] + +[[package]] +name = "docstring-parser" +version = "0.16" +description = "Parse Python docstrings in reST, Google and Numpydoc format" +optional = false +python-versions = ">=3.6,<4.0" +files = [ + {file = "docstring_parser-0.16-py3-none-any.whl", hash = "sha256:bf0a1387354d3691d102edef7ec124f219ef639982d096e26e3b60aeffa90637"}, + {file = "docstring_parser-0.16.tar.gz", hash = "sha256:538beabd0af1e2db0146b6bd3caa526c35a34d61af9fd2887f3a8a27a739aa6e"}, +] + +[[package]] +name = "docutils" +version = "0.21.2" +description = "Docutils -- Python Documentation Utilities" +optional = false +python-versions = ">=3.9" +files = [ + {file = "docutils-0.21.2-py3-none-any.whl", hash = "sha256:dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2"}, + {file = "docutils-0.21.2.tar.gz", hash = "sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f"}, +] + +[[package]] +name = "exceptiongroup" +version = "1.2.2" +description = "Backport of PEP 654 (exception groups)" +optional = false +python-versions = ">=3.7" +files = [ + {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, + {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, +] + +[package.extras] +test = ["pytest (>=6)"] + +[[package]] +name = "fasteners" +version = "0.19" +description = "A python package that provides useful locks" +optional = false +python-versions = ">=3.6" +files = [ + {file = "fasteners-0.19-py3-none-any.whl", hash = "sha256:758819cb5d94cdedf4e836988b74de396ceacb8e2794d21f82d131fd9ee77237"}, + {file = "fasteners-0.19.tar.gz", hash = "sha256:b4f37c3ac52d8a445af3a66bce57b33b5e90b97c696b7b984f530cf8f0ded09c"}, +] + +[[package]] +name = "filelock" +version = "3.16.1" +description = "A platform independent file lock." +optional = false +python-versions = ">=3.8" +files = [ + {file = "filelock-3.16.1-py3-none-any.whl", hash = "sha256:2082e5703d51fbf98ea75855d9d5527e33d8ff23099bec374a134febee6946b0"}, + {file = "filelock-3.16.1.tar.gz", hash = "sha256:c249fbfcd5db47e5e2d6d62198e565475ee65e4831e2561c8e313fa7eb961435"}, +] + +[package.extras] +docs = ["furo (>=2024.8.6)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4.1)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.6.1)", "diff-cover (>=9.2)", "pytest (>=8.3.3)", "pytest-asyncio (>=0.24)", "pytest-cov (>=5)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.26.4)"] +typing = ["typing-extensions (>=4.12.2)"] + +[[package]] +name = "glymur" +version = "0.13.6" +description = "" +optional = false +python-versions = ">=3.8" +files = [ + {file = "Glymur-0.13.6-py3-none-any.whl", hash = "sha256:34347b1e0443b58c73ed3c7bc3c66cff1e5974a26e81c73d98792c438729165c"}, + {file = "Glymur-0.13.6.tar.gz", hash = "sha256:18f1f3536fd76cd7fa92de4629950bee55522bdf8a4e94706ac34226d615ac5c"}, +] + +[package.dependencies] +lxml = "*" +numpy = "*" +packaging = "*" + +[package.extras] +test = ["pillow", "pytest"] + +[[package]] +name = "identify" +version = "2.6.1" +description = "File identification library for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "identify-2.6.1-py2.py3-none-any.whl", hash = "sha256:53863bcac7caf8d2ed85bd20312ea5dcfc22226800f6d6881f232d861db5a8f0"}, + {file = "identify-2.6.1.tar.gz", hash = "sha256:91478c5fb7c3aac5ff7bf9b4344f803843dc586832d5f110d672b19aa1984c98"}, +] + +[package.extras] +license = ["ukkonen"] + +[[package]] +name = "importlib-resources" +version = "6.4.5" +description = "Read resources from Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "importlib_resources-6.4.5-py3-none-any.whl", hash = "sha256:ac29d5f956f01d5e4bb63102a5a19957f1b9175e45649977264a1416783bb717"}, + {file = "importlib_resources-6.4.5.tar.gz", hash = "sha256:980862a1d16c9e147a59603677fa2aa5fd82b87f223b6cb870695bcfce830065"}, +] + +[package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["jaraco.test (>=5.4)", "pytest (>=6,!=8.1.*)", "zipp (>=3.17)"] +type = ["pytest-mypy"] + +[[package]] +name = "iniconfig" +version = "2.0.0" +description = "brain-dead simple config-ini parsing" +optional = false +python-versions = ">=3.7" +files = [ + {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, + {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, +] + +[[package]] +name = "jinja2" +version = "3.1.4" +description = "A very fast and expressive template engine." +optional = false +python-versions = ">=3.7" +files = [ + {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, + {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, +] + +[package.dependencies] +MarkupSafe = ">=2.0" + +[package.extras] +i18n = ["Babel (>=2.7)"] + +[[package]] +name = "lxml" +version = "5.3.0" +description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API." +optional = false +python-versions = ">=3.6" +files = [ + {file = "lxml-5.3.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:dd36439be765e2dde7660212b5275641edbc813e7b24668831a5c8ac91180656"}, + {file = "lxml-5.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ae5fe5c4b525aa82b8076c1a59d642c17b6e8739ecf852522c6321852178119d"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:501d0d7e26b4d261fca8132854d845e4988097611ba2531408ec91cf3fd9d20a"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb66442c2546446944437df74379e9cf9e9db353e61301d1a0e26482f43f0dd8"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9e41506fec7a7f9405b14aa2d5c8abbb4dbbd09d88f9496958b6d00cb4d45330"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f7d4a670107d75dfe5ad080bed6c341d18c4442f9378c9f58e5851e86eb79965"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41ce1f1e2c7755abfc7e759dc34d7d05fd221723ff822947132dc934d122fe22"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:44264ecae91b30e5633013fb66f6ddd05c006d3e0e884f75ce0b4755b3e3847b"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_28_ppc64le.whl", hash = "sha256:3c174dc350d3ec52deb77f2faf05c439331d6ed5e702fc247ccb4e6b62d884b7"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_28_s390x.whl", hash = "sha256:2dfab5fa6a28a0b60a20638dc48e6343c02ea9933e3279ccb132f555a62323d8"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:b1c8c20847b9f34e98080da785bb2336ea982e7f913eed5809e5a3c872900f32"}, + {file = "lxml-5.3.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:2c86bf781b12ba417f64f3422cfc302523ac9cd1d8ae8c0f92a1c66e56ef2e86"}, + {file = "lxml-5.3.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:c162b216070f280fa7da844531169be0baf9ccb17263cf5a8bf876fcd3117fa5"}, + {file = "lxml-5.3.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:36aef61a1678cb778097b4a6eeae96a69875d51d1e8f4d4b491ab3cfb54b5a03"}, + {file = "lxml-5.3.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f65e5120863c2b266dbcc927b306c5b78e502c71edf3295dfcb9501ec96e5fc7"}, + {file = "lxml-5.3.0-cp310-cp310-win32.whl", hash = "sha256:ef0c1fe22171dd7c7c27147f2e9c3e86f8bdf473fed75f16b0c2e84a5030ce80"}, + {file = "lxml-5.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:052d99051e77a4f3e8482c65014cf6372e61b0a6f4fe9edb98503bb5364cfee3"}, + {file = "lxml-5.3.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:74bcb423462233bc5d6066e4e98b0264e7c1bed7541fff2f4e34fe6b21563c8b"}, + {file = "lxml-5.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a3d819eb6f9b8677f57f9664265d0a10dd6551d227afb4af2b9cd7bdc2ccbf18"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5b8f5db71b28b8c404956ddf79575ea77aa8b1538e8b2ef9ec877945b3f46442"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c3406b63232fc7e9b8783ab0b765d7c59e7c59ff96759d8ef9632fca27c7ee4"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2ecdd78ab768f844c7a1d4a03595038c166b609f6395e25af9b0f3f26ae1230f"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:168f2dfcfdedf611eb285efac1516c8454c8c99caf271dccda8943576b67552e"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa617107a410245b8660028a7483b68e7914304a6d4882b5ff3d2d3eb5948d8c"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:69959bd3167b993e6e710b99051265654133a98f20cec1d9b493b931942e9c16"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_28_ppc64le.whl", hash = "sha256:bd96517ef76c8654446fc3db9242d019a1bb5fe8b751ba414765d59f99210b79"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_28_s390x.whl", hash = "sha256:ab6dd83b970dc97c2d10bc71aa925b84788c7c05de30241b9e96f9b6d9ea3080"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:eec1bb8cdbba2925bedc887bc0609a80e599c75b12d87ae42ac23fd199445654"}, + {file = "lxml-5.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6a7095eeec6f89111d03dabfe5883a1fd54da319c94e0fb104ee8f23616b572d"}, + {file = "lxml-5.3.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:6f651ebd0b21ec65dfca93aa629610a0dbc13dbc13554f19b0113da2e61a4763"}, + {file = "lxml-5.3.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:f422a209d2455c56849442ae42f25dbaaba1c6c3f501d58761c619c7836642ec"}, + {file = "lxml-5.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:62f7fdb0d1ed2065451f086519865b4c90aa19aed51081979ecd05a21eb4d1be"}, + {file = "lxml-5.3.0-cp311-cp311-win32.whl", hash = "sha256:c6379f35350b655fd817cd0d6cbeef7f265f3ae5fedb1caae2eb442bbeae9ab9"}, + {file = "lxml-5.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:9c52100e2c2dbb0649b90467935c4b0de5528833c76a35ea1a2691ec9f1ee7a1"}, + {file = "lxml-5.3.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:e99f5507401436fdcc85036a2e7dc2e28d962550afe1cbfc07c40e454256a859"}, + {file = "lxml-5.3.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:384aacddf2e5813a36495233b64cb96b1949da72bef933918ba5c84e06af8f0e"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:874a216bf6afaf97c263b56371434e47e2c652d215788396f60477540298218f"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:65ab5685d56914b9a2a34d67dd5488b83213d680b0c5d10b47f81da5a16b0b0e"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aac0bbd3e8dd2d9c45ceb82249e8bdd3ac99131a32b4d35c8af3cc9db1657179"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b369d3db3c22ed14c75ccd5af429086f166a19627e84a8fdade3f8f31426e52a"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c24037349665434f375645fa9d1f5304800cec574d0310f618490c871fd902b3"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:62d172f358f33a26d6b41b28c170c63886742f5b6772a42b59b4f0fa10526cb1"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_28_ppc64le.whl", hash = "sha256:c1f794c02903c2824fccce5b20c339a1a14b114e83b306ff11b597c5f71a1c8d"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_28_s390x.whl", hash = "sha256:5d6a6972b93c426ace71e0be9a6f4b2cfae9b1baed2eed2006076a746692288c"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:3879cc6ce938ff4eb4900d901ed63555c778731a96365e53fadb36437a131a99"}, + {file = "lxml-5.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:74068c601baff6ff021c70f0935b0c7bc528baa8ea210c202e03757c68c5a4ff"}, + {file = "lxml-5.3.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:ecd4ad8453ac17bc7ba3868371bffb46f628161ad0eefbd0a855d2c8c32dd81a"}, + {file = "lxml-5.3.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:7e2f58095acc211eb9d8b5771bf04df9ff37d6b87618d1cbf85f92399c98dae8"}, + {file = "lxml-5.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e63601ad5cd8f860aa99d109889b5ac34de571c7ee902d6812d5d9ddcc77fa7d"}, + {file = "lxml-5.3.0-cp312-cp312-win32.whl", hash = "sha256:17e8d968d04a37c50ad9c456a286b525d78c4a1c15dd53aa46c1d8e06bf6fa30"}, + {file = "lxml-5.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:c1a69e58a6bb2de65902051d57fde951febad631a20a64572677a1052690482f"}, + {file = "lxml-5.3.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8c72e9563347c7395910de6a3100a4840a75a6f60e05af5e58566868d5eb2d6a"}, + {file = "lxml-5.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e92ce66cd919d18d14b3856906a61d3f6b6a8500e0794142338da644260595cd"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d04f064bebdfef9240478f7a779e8c5dc32b8b7b0b2fc6a62e39b928d428e51"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c2fb570d7823c2bbaf8b419ba6e5662137f8166e364a8b2b91051a1fb40ab8b"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0c120f43553ec759f8de1fee2f4794452b0946773299d44c36bfe18e83caf002"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:562e7494778a69086f0312ec9689f6b6ac1c6b65670ed7d0267e49f57ffa08c4"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:423b121f7e6fa514ba0c7918e56955a1d4470ed35faa03e3d9f0e3baa4c7e492"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:c00f323cc00576df6165cc9d21a4c21285fa6b9989c5c39830c3903dc4303ef3"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_28_ppc64le.whl", hash = "sha256:1fdc9fae8dd4c763e8a31e7630afef517eab9f5d5d31a278df087f307bf601f4"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_28_s390x.whl", hash = "sha256:658f2aa69d31e09699705949b5fc4719cbecbd4a97f9656a232e7d6c7be1a367"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:1473427aff3d66a3fa2199004c3e601e6c4500ab86696edffdbc84954c72d832"}, + {file = "lxml-5.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a87de7dd873bf9a792bf1e58b1c3887b9264036629a5bf2d2e6579fe8e73edff"}, + {file = "lxml-5.3.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:0d7b36afa46c97875303a94e8f3ad932bf78bace9e18e603f2085b652422edcd"}, + {file = "lxml-5.3.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:cf120cce539453ae086eacc0130a324e7026113510efa83ab42ef3fcfccac7fb"}, + {file = "lxml-5.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:df5c7333167b9674aa8ae1d4008fa4bc17a313cc490b2cca27838bbdcc6bb15b"}, + {file = "lxml-5.3.0-cp313-cp313-win32.whl", hash = "sha256:c802e1c2ed9f0c06a65bc4ed0189d000ada8049312cfeab6ca635e39c9608957"}, + {file = "lxml-5.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:406246b96d552e0503e17a1006fd27edac678b3fcc9f1be71a2f94b4ff61528d"}, + {file = "lxml-5.3.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:8f0de2d390af441fe8b2c12626d103540b5d850d585b18fcada58d972b74a74e"}, + {file = "lxml-5.3.0-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1afe0a8c353746e610bd9031a630a95bcfb1a720684c3f2b36c4710a0a96528f"}, + {file = "lxml-5.3.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56b9861a71575f5795bde89256e7467ece3d339c9b43141dbdd54544566b3b94"}, + {file = "lxml-5.3.0-cp36-cp36m-manylinux_2_28_x86_64.whl", hash = "sha256:9fb81d2824dff4f2e297a276297e9031f46d2682cafc484f49de182aa5e5df99"}, + {file = "lxml-5.3.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:2c226a06ecb8cdef28845ae976da407917542c5e6e75dcac7cc33eb04aaeb237"}, + {file = "lxml-5.3.0-cp36-cp36m-musllinux_1_2_x86_64.whl", hash = "sha256:7d3d1ca42870cdb6d0d29939630dbe48fa511c203724820fc0fd507b2fb46577"}, + {file = "lxml-5.3.0-cp36-cp36m-win32.whl", hash = "sha256:094cb601ba9f55296774c2d57ad68730daa0b13dc260e1f941b4d13678239e70"}, + {file = "lxml-5.3.0-cp36-cp36m-win_amd64.whl", hash = "sha256:eafa2c8658f4e560b098fe9fc54539f86528651f61849b22111a9b107d18910c"}, + {file = "lxml-5.3.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:cb83f8a875b3d9b458cada4f880fa498646874ba4011dc974e071a0a84a1b033"}, + {file = "lxml-5.3.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:25f1b69d41656b05885aa185f5fdf822cb01a586d1b32739633679699f220391"}, + {file = "lxml-5.3.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23e0553b8055600b3bf4a00b255ec5c92e1e4aebf8c2c09334f8368e8bd174d6"}, + {file = "lxml-5.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ada35dd21dc6c039259596b358caab6b13f4db4d4a7f8665764d616daf9cc1d"}, + {file = "lxml-5.3.0-cp37-cp37m-manylinux_2_28_aarch64.whl", hash = "sha256:81b4e48da4c69313192d8c8d4311e5d818b8be1afe68ee20f6385d0e96fc9512"}, + {file = "lxml-5.3.0-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:2bc9fd5ca4729af796f9f59cd8ff160fe06a474da40aca03fcc79655ddee1a8b"}, + {file = "lxml-5.3.0-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:07da23d7ee08577760f0a71d67a861019103e4812c87e2fab26b039054594cc5"}, + {file = "lxml-5.3.0-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:ea2e2f6f801696ad7de8aec061044d6c8c0dd4037608c7cab38a9a4d316bfb11"}, + {file = "lxml-5.3.0-cp37-cp37m-win32.whl", hash = "sha256:5c54afdcbb0182d06836cc3d1be921e540be3ebdf8b8a51ee3ef987537455f84"}, + {file = "lxml-5.3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:f2901429da1e645ce548bf9171784c0f74f0718c3f6150ce166be39e4dd66c3e"}, + {file = "lxml-5.3.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c56a1d43b2f9ee4786e4658c7903f05da35b923fb53c11025712562d5cc02753"}, + {file = "lxml-5.3.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ee8c39582d2652dcd516d1b879451500f8db3fe3607ce45d7c5957ab2596040"}, + {file = "lxml-5.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fdf3a3059611f7585a78ee10399a15566356116a4288380921a4b598d807a22"}, + {file = "lxml-5.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:146173654d79eb1fc97498b4280c1d3e1e5d58c398fa530905c9ea50ea849b22"}, + {file = "lxml-5.3.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:0a7056921edbdd7560746f4221dca89bb7a3fe457d3d74267995253f46343f15"}, + {file = "lxml-5.3.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:9e4b47ac0f5e749cfc618efdf4726269441014ae1d5583e047b452a32e221920"}, + {file = "lxml-5.3.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:f914c03e6a31deb632e2daa881fe198461f4d06e57ac3d0e05bbcab8eae01945"}, + {file = "lxml-5.3.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:213261f168c5e1d9b7535a67e68b1f59f92398dd17a56d934550837143f79c42"}, + {file = "lxml-5.3.0-cp38-cp38-win32.whl", hash = "sha256:218c1b2e17a710e363855594230f44060e2025b05c80d1f0661258142b2add2e"}, + {file = "lxml-5.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:315f9542011b2c4e1d280e4a20ddcca1761993dda3afc7a73b01235f8641e903"}, + {file = "lxml-5.3.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:1ffc23010330c2ab67fac02781df60998ca8fe759e8efde6f8b756a20599c5de"}, + {file = "lxml-5.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2b3778cb38212f52fac9fe913017deea2fdf4eb1a4f8e4cfc6b009a13a6d3fcc"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4b0c7a688944891086ba192e21c5229dea54382f4836a209ff8d0a660fac06be"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:747a3d3e98e24597981ca0be0fd922aebd471fa99d0043a3842d00cdcad7ad6a"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:86a6b24b19eaebc448dc56b87c4865527855145d851f9fc3891673ff97950540"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b11a5d918a6216e521c715b02749240fb07ae5a1fefd4b7bf12f833bc8b4fe70"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68b87753c784d6acb8a25b05cb526c3406913c9d988d51f80adecc2b0775d6aa"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:109fa6fede314cc50eed29e6e56c540075e63d922455346f11e4d7a036d2b8cf"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_28_ppc64le.whl", hash = "sha256:02ced472497b8362c8e902ade23e3300479f4f43e45f4105c85ef43b8db85229"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_28_s390x.whl", hash = "sha256:6b038cc86b285e4f9fea2ba5ee76e89f21ed1ea898e287dc277a25884f3a7dfe"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:7437237c6a66b7ca341e868cda48be24b8701862757426852c9b3186de1da8a2"}, + {file = "lxml-5.3.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:7f41026c1d64043a36fda21d64c5026762d53a77043e73e94b71f0521939cc71"}, + {file = "lxml-5.3.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:482c2f67761868f0108b1743098640fbb2a28a8e15bf3f47ada9fa59d9fe08c3"}, + {file = "lxml-5.3.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:1483fd3358963cc5c1c9b122c80606a3a79ee0875bcac0204149fa09d6ff2727"}, + {file = "lxml-5.3.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:2dec2d1130a9cda5b904696cec33b2cfb451304ba9081eeda7f90f724097300a"}, + {file = "lxml-5.3.0-cp39-cp39-win32.whl", hash = "sha256:a0eabd0a81625049c5df745209dc7fcef6e2aea7793e5f003ba363610aa0a3ff"}, + {file = "lxml-5.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:89e043f1d9d341c52bf2af6d02e6adde62e0a46e6755d5eb60dc6e4f0b8aeca2"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7b1cd427cb0d5f7393c31b7496419da594fe600e6fdc4b105a54f82405e6626c"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:51806cfe0279e06ed8500ce19479d757db42a30fd509940b1701be9c86a5ff9a"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ee70d08fd60c9565ba8190f41a46a54096afa0eeb8f76bd66f2c25d3b1b83005"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:8dc2c0395bea8254d8daebc76dcf8eb3a95ec2a46fa6fae5eaccee366bfe02ce"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:6ba0d3dcac281aad8a0e5b14c7ed6f9fa89c8612b47939fc94f80b16e2e9bc83"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:6e91cf736959057f7aac7adfc83481e03615a8e8dd5758aa1d95ea69e8931dba"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:94d6c3782907b5e40e21cadf94b13b0842ac421192f26b84c45f13f3c9d5dc27"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c300306673aa0f3ed5ed9372b21867690a17dba38c68c44b287437c362ce486b"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78d9b952e07aed35fe2e1a7ad26e929595412db48535921c5013edc8aa4a35ce"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:01220dca0d066d1349bd6a1726856a78f7929f3878f7e2ee83c296c69495309e"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:2d9b8d9177afaef80c53c0a9e30fa252ff3036fb1c6494d427c066a4ce6a282f"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:20094fc3f21ea0a8669dc4c61ed7fa8263bd37d97d93b90f28fc613371e7a875"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ace2c2326a319a0bb8a8b0e5b570c764962e95818de9f259ce814ee666603f19"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:92e67a0be1639c251d21e35fe74df6bcc40cba445c2cda7c4a967656733249e2"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd5350b55f9fecddc51385463a4f67a5da829bc741e38cf689f38ec9023f54ab"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:4c1fefd7e3d00921c44dc9ca80a775af49698bbfd92ea84498e56acffd4c5469"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:71a8dd38fbd2f2319136d4ae855a7078c69c9a38ae06e0c17c73fd70fc6caad8"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:97acf1e1fd66ab53dacd2c35b319d7e548380c2e9e8c54525c6e76d21b1ae3b1"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:68934b242c51eb02907c5b81d138cb977b2129a0a75a8f8b60b01cb8586c7b21"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b710bc2b8292966b23a6a0121f7a6c51d45d2347edcc75f016ac123b8054d3f2"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18feb4b93302091b1541221196a2155aa296c363fd233814fa11e181adebc52f"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:3eb44520c4724c2e1a57c0af33a379eee41792595023f367ba3952a2d96c2aab"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:609251a0ca4770e5a8768ff902aa02bf636339c5a93f9349b48eb1f606f7f3e9"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:516f491c834eb320d6c843156440fe7fc0d50b33e44387fcec5b02f0bc118a4c"}, + {file = "lxml-5.3.0.tar.gz", hash = "sha256:4e109ca30d1edec1ac60cdbe341905dc3b8f55b16855e03a54aaf59e51ec8c6f"}, +] + +[package.extras] +cssselect = ["cssselect (>=0.7)"] +html-clean = ["lxml-html-clean"] +html5 = ["html5lib"] +htmlsoup = ["BeautifulSoup4"] +source = ["Cython (>=3.0.11)"] + +[[package]] +name = "markdown-it-py" +version = "3.0.0" +description = "Python port of markdown-it. Markdown parsing, done right!" +optional = false +python-versions = ">=3.8" +files = [ + {file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"}, + {file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"}, +] + +[package.dependencies] +mdurl = ">=0.1,<1.0" + +[package.extras] +benchmarking = ["psutil", "pytest", "pytest-benchmark"] +code-style = ["pre-commit (>=3.0,<4.0)"] +compare = ["commonmark (>=0.9,<1.0)", "markdown (>=3.4,<4.0)", "mistletoe (>=1.0,<2.0)", "mistune (>=2.0,<3.0)", "panflute (>=2.3,<3.0)"] +linkify = ["linkify-it-py (>=1,<3)"] +plugins = ["mdit-py-plugins"] +profiling = ["gprof2dot"] +rtd = ["jupyter_sphinx", "mdit-py-plugins", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] + +[[package]] +name = "markupsafe" +version = "3.0.2" +description = "Safely add untrusted strings to HTML/XML markup." +optional = false +python-versions = ">=3.9" +files = [ + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a"}, + {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"}, +] + +[[package]] +name = "mdurl" +version = "0.1.2" +description = "Markdown URL utilities" +optional = false +python-versions = ">=3.7" +files = [ + {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, + {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, +] + +[[package]] +name = "mypy" +version = "1.13.0" +description = "Optional static typing for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "mypy-1.13.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6607e0f1dd1fb7f0aca14d936d13fd19eba5e17e1cd2a14f808fa5f8f6d8f60a"}, + {file = "mypy-1.13.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8a21be69bd26fa81b1f80a61ee7ab05b076c674d9b18fb56239d72e21d9f4c80"}, + {file = "mypy-1.13.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7b2353a44d2179846a096e25691d54d59904559f4232519d420d64da6828a3a7"}, + {file = "mypy-1.13.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0730d1c6a2739d4511dc4253f8274cdd140c55c32dfb0a4cf8b7a43f40abfa6f"}, + {file = "mypy-1.13.0-cp310-cp310-win_amd64.whl", hash = "sha256:c5fc54dbb712ff5e5a0fca797e6e0aa25726c7e72c6a5850cfd2adbc1eb0a372"}, + {file = "mypy-1.13.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:581665e6f3a8a9078f28d5502f4c334c0c8d802ef55ea0e7276a6e409bc0d82d"}, + {file = "mypy-1.13.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3ddb5b9bf82e05cc9a627e84707b528e5c7caaa1c55c69e175abb15a761cec2d"}, + {file = "mypy-1.13.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:20c7ee0bc0d5a9595c46f38beb04201f2620065a93755704e141fcac9f59db2b"}, + {file = "mypy-1.13.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3790ded76f0b34bc9c8ba4def8f919dd6a46db0f5a6610fb994fe8efdd447f73"}, + {file = "mypy-1.13.0-cp311-cp311-win_amd64.whl", hash = "sha256:51f869f4b6b538229c1d1bcc1dd7d119817206e2bc54e8e374b3dfa202defcca"}, + {file = "mypy-1.13.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:5c7051a3461ae84dfb5dd15eff5094640c61c5f22257c8b766794e6dd85e72d5"}, + {file = "mypy-1.13.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:39bb21c69a5d6342f4ce526e4584bc5c197fd20a60d14a8624d8743fffb9472e"}, + {file = "mypy-1.13.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:164f28cb9d6367439031f4c81e84d3ccaa1e19232d9d05d37cb0bd880d3f93c2"}, + {file = "mypy-1.13.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a4c1bfcdbce96ff5d96fc9b08e3831acb30dc44ab02671eca5953eadad07d6d0"}, + {file = "mypy-1.13.0-cp312-cp312-win_amd64.whl", hash = "sha256:a0affb3a79a256b4183ba09811e3577c5163ed06685e4d4b46429a271ba174d2"}, + {file = "mypy-1.13.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a7b44178c9760ce1a43f544e595d35ed61ac2c3de306599fa59b38a6048e1aa7"}, + {file = "mypy-1.13.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5d5092efb8516d08440e36626f0153b5006d4088c1d663d88bf79625af3d1d62"}, + {file = "mypy-1.13.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:de2904956dac40ced10931ac967ae63c5089bd498542194b436eb097a9f77bc8"}, + {file = "mypy-1.13.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:7bfd8836970d33c2105562650656b6846149374dc8ed77d98424b40b09340ba7"}, + {file = "mypy-1.13.0-cp313-cp313-win_amd64.whl", hash = "sha256:9f73dba9ec77acb86457a8fc04b5239822df0c14a082564737833d2963677dbc"}, + {file = "mypy-1.13.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:100fac22ce82925f676a734af0db922ecfea991e1d7ec0ceb1e115ebe501301a"}, + {file = "mypy-1.13.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7bcb0bb7f42a978bb323a7c88f1081d1b5dee77ca86f4100735a6f541299d8fb"}, + {file = "mypy-1.13.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bde31fc887c213e223bbfc34328070996061b0833b0a4cfec53745ed61f3519b"}, + {file = "mypy-1.13.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:07de989f89786f62b937851295ed62e51774722e5444a27cecca993fc3f9cd74"}, + {file = "mypy-1.13.0-cp38-cp38-win_amd64.whl", hash = "sha256:4bde84334fbe19bad704b3f5b78c4abd35ff1026f8ba72b29de70dda0916beb6"}, + {file = "mypy-1.13.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0246bcb1b5de7f08f2826451abd947bf656945209b140d16ed317f65a17dc7dc"}, + {file = "mypy-1.13.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7f5b7deae912cf8b77e990b9280f170381fdfbddf61b4ef80927edd813163732"}, + {file = "mypy-1.13.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7029881ec6ffb8bc233a4fa364736789582c738217b133f1b55967115288a2bc"}, + {file = "mypy-1.13.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:3e38b980e5681f28f033f3be86b099a247b13c491f14bb8b1e1e134d23bb599d"}, + {file = "mypy-1.13.0-cp39-cp39-win_amd64.whl", hash = "sha256:a6789be98a2017c912ae6ccb77ea553bbaf13d27605d2ca20a76dfbced631b24"}, + {file = "mypy-1.13.0-py3-none-any.whl", hash = "sha256:9c250883f9fd81d212e0952c92dbfcc96fc237f4b7c92f56ac81fd48460b3e5a"}, + {file = "mypy-1.13.0.tar.gz", hash = "sha256:0291a61b6fbf3e6673e3405cfcc0e7650bebc7939659fdca2702958038bd835e"}, +] + +[package.dependencies] +mypy-extensions = ">=1.0.0" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +typing-extensions = ">=4.6.0" + +[package.extras] +dmypy = ["psutil (>=4.0)"] +faster-cache = ["orjson"] +install-types = ["pip"] +mypyc = ["setuptools (>=50)"] +reports = ["lxml"] + +[[package]] +name = "mypy-extensions" +version = "1.0.0" +description = "Type system extensions for programs checked with the mypy type checker." +optional = false +python-versions = ">=3.5" +files = [ + {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, + {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, +] + +[[package]] +name = "nibabel" +version = "5.3.2" +description = "Access a multitude of neuroimaging data formats" +optional = false +python-versions = ">=3.9" +files = [ + {file = "nibabel-5.3.2-py3-none-any.whl", hash = "sha256:52970a5a8a53b1b55249cba4d9bcfaa8cc57e3e5af35a29d7352237e8680a6f8"}, + {file = "nibabel-5.3.2.tar.gz", hash = "sha256:0bdca6503b1c784b446c745a4542367de7756cfba0d72143b91f9ffb78be569b"}, +] + +[package.dependencies] +importlib-resources = {version = ">=5.12", markers = "python_version < \"3.12\""} +numpy = ">=1.22" +packaging = ">=20" +typing-extensions = {version = ">=4.6", markers = "python_version < \"3.13\""} + +[package.extras] +all = ["h5py", "pillow", "pydicom (>=2.3)", "pyzstd (>=0.14.3)", "scipy"] +dev = ["tox"] +dicom = ["pydicom (>=2.3)"] +dicomfs = ["pillow", "pydicom (>=2.3)"] +doc = ["matplotlib (>=3.5)", "numpydoc", "sphinx", "texext", "tomli"] +doctest = ["tox"] +minc2 = ["h5py"] +spm = ["scipy"] +style = ["tox"] +test = ["coverage (>=7.2)", "pytest", "pytest-cov", "pytest-doctestplus", "pytest-httpserver", "pytest-xdist"] +typing = ["tox"] +zstd = ["pyzstd (>=0.14.3)"] + +[[package]] +name = "nodeenv" +version = "1.9.1" +description = "Node.js virtual environment builder" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9"}, + {file = "nodeenv-1.9.1.tar.gz", hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f"}, +] + +[[package]] +name = "numcodecs" +version = "0.13.1" +description = "A Python package providing buffer compression and transformation codecs for use in data storage and communication applications." +optional = false +python-versions = ">=3.10" +files = [ + {file = "numcodecs-0.13.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:96add4f783c5ce57cc7e650b6cac79dd101daf887c479a00a29bc1487ced180b"}, + {file = "numcodecs-0.13.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:237b7171609e868a20fd313748494444458ccd696062f67e198f7f8f52000c15"}, + {file = "numcodecs-0.13.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:96e42f73c31b8c24259c5fac6adba0c3ebf95536e37749dc6c62ade2989dca28"}, + {file = "numcodecs-0.13.1-cp310-cp310-win_amd64.whl", hash = "sha256:eda7d7823c9282e65234731fd6bd3986b1f9e035755f7fed248d7d366bb291ab"}, + {file = "numcodecs-0.13.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2eda97dd2f90add98df6d295f2c6ae846043396e3d51a739ca5db6c03b5eb666"}, + {file = "numcodecs-0.13.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2a86f5367af9168e30f99727ff03b27d849c31ad4522060dde0bce2923b3a8bc"}, + {file = "numcodecs-0.13.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:233bc7f26abce24d57e44ea8ebeb5cd17084690b4e7409dd470fdb75528d615f"}, + {file = "numcodecs-0.13.1-cp311-cp311-win_amd64.whl", hash = "sha256:796b3e6740107e4fa624cc636248a1580138b3f1c579160f260f76ff13a4261b"}, + {file = "numcodecs-0.13.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:5195bea384a6428f8afcece793860b1ab0ae28143c853f0b2b20d55a8947c917"}, + {file = "numcodecs-0.13.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3501a848adaddce98a71a262fee15cd3618312692aa419da77acd18af4a6a3f6"}, + {file = "numcodecs-0.13.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da2230484e6102e5fa3cc1a5dd37ca1f92dfbd183d91662074d6f7574e3e8f53"}, + {file = "numcodecs-0.13.1-cp312-cp312-win_amd64.whl", hash = "sha256:e5db4824ebd5389ea30e54bc8aeccb82d514d28b6b68da6c536b8fa4596f4bca"}, + {file = "numcodecs-0.13.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7a60d75179fd6692e301ddfb3b266d51eb598606dcae7b9fc57f986e8d65cb43"}, + {file = "numcodecs-0.13.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3f593c7506b0ab248961a3b13cb148cc6e8355662ff124ac591822310bc55ecf"}, + {file = "numcodecs-0.13.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80d3071465f03522e776a31045ddf2cfee7f52df468b977ed3afdd7fe5869701"}, + {file = "numcodecs-0.13.1-cp313-cp313-win_amd64.whl", hash = "sha256:90d3065ae74c9342048ae0046006f99dcb1388b7288da5a19b3bddf9c30c3176"}, + {file = "numcodecs-0.13.1.tar.gz", hash = "sha256:a3cf37881df0898f3a9c0d4477df88133fe85185bffe57ba31bcc2fa207709bc"}, +] + +[package.dependencies] +numpy = ">=1.7" + +[package.extras] +docs = ["mock", "numpydoc", "pydata-sphinx-theme", "sphinx", "sphinx-issues"] +msgpack = ["msgpack"] +pcodec = ["pcodec (>=0.2.0)"] +test = ["coverage", "pytest", "pytest-cov"] +test-extras = ["importlib-metadata"] +zfpy = ["numpy (<2.0.0)", "zfpy (>=1.0.0)"] + +[[package]] +name = "numpy" +version = "2.1.3" +description = "Fundamental package for array computing in Python" +optional = false +python-versions = ">=3.10" +files = [ + {file = "numpy-2.1.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c894b4305373b9c5576d7a12b473702afdf48ce5369c074ba304cc5ad8730dff"}, + {file = "numpy-2.1.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b47fbb433d3260adcd51eb54f92a2ffbc90a4595f8970ee00e064c644ac788f5"}, + {file = "numpy-2.1.3-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:825656d0743699c529c5943554d223c021ff0494ff1442152ce887ef4f7561a1"}, + {file = "numpy-2.1.3-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:6a4825252fcc430a182ac4dee5a505053d262c807f8a924603d411f6718b88fd"}, + {file = "numpy-2.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e711e02f49e176a01d0349d82cb5f05ba4db7d5e7e0defd026328e5cfb3226d3"}, + {file = "numpy-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78574ac2d1a4a02421f25da9559850d59457bac82f2b8d7a44fe83a64f770098"}, + {file = "numpy-2.1.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c7662f0e3673fe4e832fe07b65c50342ea27d989f92c80355658c7f888fcc83c"}, + {file = "numpy-2.1.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:fa2d1337dc61c8dc417fbccf20f6d1e139896a30721b7f1e832b2bb6ef4eb6c4"}, + {file = "numpy-2.1.3-cp310-cp310-win32.whl", hash = "sha256:72dcc4a35a8515d83e76b58fdf8113a5c969ccd505c8a946759b24e3182d1f23"}, + {file = "numpy-2.1.3-cp310-cp310-win_amd64.whl", hash = "sha256:ecc76a9ba2911d8d37ac01de72834d8849e55473457558e12995f4cd53e778e0"}, + {file = "numpy-2.1.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4d1167c53b93f1f5d8a139a742b3c6f4d429b54e74e6b57d0eff40045187b15d"}, + {file = "numpy-2.1.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c80e4a09b3d95b4e1cac08643f1152fa71a0a821a2d4277334c88d54b2219a41"}, + {file = "numpy-2.1.3-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:576a1c1d25e9e02ed7fa5477f30a127fe56debd53b8d2c89d5578f9857d03ca9"}, + {file = "numpy-2.1.3-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:973faafebaae4c0aaa1a1ca1ce02434554d67e628b8d805e61f874b84e136b09"}, + {file = "numpy-2.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:762479be47a4863e261a840e8e01608d124ee1361e48b96916f38b119cfda04a"}, + {file = "numpy-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc6f24b3d1ecc1eebfbf5d6051faa49af40b03be1aaa781ebdadcbc090b4539b"}, + {file = "numpy-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:17ee83a1f4fef3c94d16dc1802b998668b5419362c8a4f4e8a491de1b41cc3ee"}, + {file = "numpy-2.1.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:15cb89f39fa6d0bdfb600ea24b250e5f1a3df23f901f51c8debaa6a5d122b2f0"}, + {file = "numpy-2.1.3-cp311-cp311-win32.whl", hash = "sha256:d9beb777a78c331580705326d2367488d5bc473b49a9bc3036c154832520aca9"}, + {file = "numpy-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:d89dd2b6da69c4fff5e39c28a382199ddedc3a5be5390115608345dec660b9e2"}, + {file = "numpy-2.1.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f55ba01150f52b1027829b50d70ef1dafd9821ea82905b63936668403c3b471e"}, + {file = "numpy-2.1.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:13138eadd4f4da03074851a698ffa7e405f41a0845a6b1ad135b81596e4e9958"}, + {file = "numpy-2.1.3-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:a6b46587b14b888e95e4a24d7b13ae91fa22386c199ee7b418f449032b2fa3b8"}, + {file = "numpy-2.1.3-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:0fa14563cc46422e99daef53d725d0c326e99e468a9320a240affffe87852564"}, + {file = "numpy-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8637dcd2caa676e475503d1f8fdb327bc495554e10838019651b76d17b98e512"}, + {file = "numpy-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2312b2aa89e1f43ecea6da6ea9a810d06aae08321609d8dc0d0eda6d946a541b"}, + {file = "numpy-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a38c19106902bb19351b83802531fea19dee18e5b37b36454f27f11ff956f7fc"}, + {file = "numpy-2.1.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:02135ade8b8a84011cbb67dc44e07c58f28575cf9ecf8ab304e51c05528c19f0"}, + {file = "numpy-2.1.3-cp312-cp312-win32.whl", hash = "sha256:e6988e90fcf617da2b5c78902fe8e668361b43b4fe26dbf2d7b0f8034d4cafb9"}, + {file = "numpy-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:0d30c543f02e84e92c4b1f415b7c6b5326cbe45ee7882b6b77db7195fb971e3a"}, + {file = "numpy-2.1.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:96fe52fcdb9345b7cd82ecd34547fca4321f7656d500eca497eb7ea5a926692f"}, + {file = "numpy-2.1.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f653490b33e9c3a4c1c01d41bc2aef08f9475af51146e4a7710c450cf9761598"}, + {file = "numpy-2.1.3-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:dc258a761a16daa791081d026f0ed4399b582712e6fc887a95af09df10c5ca57"}, + {file = "numpy-2.1.3-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:016d0f6f5e77b0f0d45d77387ffa4bb89816b57c835580c3ce8e099ef830befe"}, + {file = "numpy-2.1.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c181ba05ce8299c7aa3125c27b9c2167bca4a4445b7ce73d5febc411ca692e43"}, + {file = "numpy-2.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5641516794ca9e5f8a4d17bb45446998c6554704d888f86df9b200e66bdcce56"}, + {file = "numpy-2.1.3-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ea4dedd6e394a9c180b33c2c872b92f7ce0f8e7ad93e9585312b0c5a04777a4a"}, + {file = "numpy-2.1.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b0df3635b9c8ef48bd3be5f862cf71b0a4716fa0e702155c45067c6b711ddcef"}, + {file = "numpy-2.1.3-cp313-cp313-win32.whl", hash = "sha256:50ca6aba6e163363f132b5c101ba078b8cbd3fa92c7865fd7d4d62d9779ac29f"}, + {file = "numpy-2.1.3-cp313-cp313-win_amd64.whl", hash = "sha256:747641635d3d44bcb380d950679462fae44f54b131be347d5ec2bce47d3df9ed"}, + {file = "numpy-2.1.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:996bb9399059c5b82f76b53ff8bb686069c05acc94656bb259b1d63d04a9506f"}, + {file = "numpy-2.1.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:45966d859916ad02b779706bb43b954281db43e185015df6eb3323120188f9e4"}, + {file = "numpy-2.1.3-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:baed7e8d7481bfe0874b566850cb0b85243e982388b7b23348c6db2ee2b2ae8e"}, + {file = "numpy-2.1.3-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:a9f7f672a3388133335589cfca93ed468509cb7b93ba3105fce780d04a6576a0"}, + {file = "numpy-2.1.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7aac50327da5d208db2eec22eb11e491e3fe13d22653dce51b0f4109101b408"}, + {file = "numpy-2.1.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4394bc0dbd074b7f9b52024832d16e019decebf86caf909d94f6b3f77a8ee3b6"}, + {file = "numpy-2.1.3-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:50d18c4358a0a8a53f12a8ba9d772ab2d460321e6a93d6064fc22443d189853f"}, + {file = "numpy-2.1.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:14e253bd43fc6b37af4921b10f6add6925878a42a0c5fe83daee390bca80bc17"}, + {file = "numpy-2.1.3-cp313-cp313t-win32.whl", hash = "sha256:08788d27a5fd867a663f6fc753fd7c3ad7e92747efc73c53bca2f19f8bc06f48"}, + {file = "numpy-2.1.3-cp313-cp313t-win_amd64.whl", hash = "sha256:2564fbdf2b99b3f815f2107c1bbc93e2de8ee655a69c261363a1172a79a257d4"}, + {file = "numpy-2.1.3-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:4f2015dfe437dfebbfce7c85c7b53d81ba49e71ba7eadbf1df40c915af75979f"}, + {file = "numpy-2.1.3-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:3522b0dfe983a575e6a9ab3a4a4dfe156c3e428468ff08ce582b9bb6bd1d71d4"}, + {file = "numpy-2.1.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c006b607a865b07cd981ccb218a04fc86b600411d83d6fc261357f1c0966755d"}, + {file = "numpy-2.1.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:e14e26956e6f1696070788252dcdff11b4aca4c3e8bd166e0df1bb8f315a67cb"}, + {file = "numpy-2.1.3.tar.gz", hash = "sha256:aa08e04e08aaf974d4458def539dece0d28146d866a39da5639596f4921fd761"}, +] + +[[package]] +name = "packaging" +version = "24.1" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"}, + {file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"}, +] + +[[package]] +name = "pdoc" +version = "14.7.0" +description = "API Documentation for Python Projects" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pdoc-14.7.0-py3-none-any.whl", hash = "sha256:72377a907efc6b2c5b3c56b717ef34f11d93621dced3b663f3aede0b844c0ad2"}, + {file = "pdoc-14.7.0.tar.gz", hash = "sha256:2d28af9c0acc39180744ad0543e4bbc3223ecba0d1302db315ec521c51f71f93"}, +] + +[package.dependencies] +Jinja2 = ">=2.11.0" +MarkupSafe = "*" +pygments = ">=2.12.0" + +[package.extras] +dev = ["hypothesis", "mypy", "pdoc-pyo3-sample-library (==1.0.11)", "pygments (>=2.14.0)", "pytest", "pytest-cov", "pytest-timeout", "ruff", "tox", "types-pygments"] + +[[package]] +name = "platformdirs" +version = "4.3.6" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." +optional = false +python-versions = ">=3.8" +files = [ + {file = "platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"}, + {file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"}, +] + +[package.extras] +docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.2)", "pytest-cov (>=5)", "pytest-mock (>=3.14)"] +type = ["mypy (>=1.11.2)"] + +[[package]] +name = "pluggy" +version = "1.5.0" +description = "plugin and hook calling mechanisms for python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, + {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, +] + +[package.extras] +dev = ["pre-commit", "tox"] +testing = ["pytest", "pytest-benchmark"] + +[[package]] +name = "pre-commit" +version = "3.8.0" +description = "A framework for managing and maintaining multi-language pre-commit hooks." +optional = false +python-versions = ">=3.9" +files = [ + {file = "pre_commit-3.8.0-py2.py3-none-any.whl", hash = "sha256:9a90a53bf82fdd8778d58085faf8d83df56e40dfe18f45b19446e26bf1b3a63f"}, + {file = "pre_commit-3.8.0.tar.gz", hash = "sha256:8bb6494d4a20423842e198980c9ecf9f96607a07ea29549e180eef9ae80fe7af"}, +] + +[package.dependencies] +cfgv = ">=2.0.0" +identify = ">=1.0.0" +nodeenv = ">=0.11.1" +pyyaml = ">=5.1" +virtualenv = ">=20.10.0" + +[[package]] +name = "pygments" +version = "2.18.0" +description = "Pygments is a syntax highlighting package written in Python." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"}, + {file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"}, +] + +[package.extras] +windows-terminal = ["colorama (>=0.4.6)"] + +[[package]] +name = "pytest" +version = "8.3.3" +description = "pytest: simple powerful testing with Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pytest-8.3.3-py3-none-any.whl", hash = "sha256:a6853c7375b2663155079443d2e45de913a911a11d669df02a50814944db57b2"}, + {file = "pytest-8.3.3.tar.gz", hash = "sha256:70b98107bd648308a7952b06e6ca9a50bc660be218d53c257cc1fc94fda10181"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "sys_platform == \"win32\""} +exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} +iniconfig = "*" +packaging = "*" +pluggy = ">=1.5,<2" +tomli = {version = ">=1", markers = "python_version < \"3.11\""} + +[package.extras] +dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] + +[[package]] +name = "pytest-cov" +version = "5.0.0" +description = "Pytest plugin for measuring coverage." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pytest-cov-5.0.0.tar.gz", hash = "sha256:5837b58e9f6ebd335b0f8060eecce69b662415b16dc503883a02f45dfeb14857"}, + {file = "pytest_cov-5.0.0-py3-none-any.whl", hash = "sha256:4f0764a1219df53214206bf1feea4633c3b558a2925c8b59f144f682861ce652"}, +] + +[package.dependencies] +coverage = {version = ">=5.2.1", extras = ["toml"]} +pytest = ">=4.6" + +[package.extras] +testing = ["fields", "hunter", "process-tests", "pytest-xdist", "virtualenv"] + +[[package]] +name = "pyyaml" +version = "6.0.2" +description = "YAML parser and emitter for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, + {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, + {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, + {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, + {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, + {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, + {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, + {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, + {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, + {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, + {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, + {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, + {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, + {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, + {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, + {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, + {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, +] + +[[package]] +name = "rich" +version = "13.9.4" +description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" +optional = false +python-versions = ">=3.8.0" +files = [ + {file = "rich-13.9.4-py3-none-any.whl", hash = "sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90"}, + {file = "rich-13.9.4.tar.gz", hash = "sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098"}, +] + +[package.dependencies] +markdown-it-py = ">=2.2.0" +pygments = ">=2.13.0,<3.0.0" +typing-extensions = {version = ">=4.0.0,<5.0", markers = "python_version < \"3.11\""} + +[package.extras] +jupyter = ["ipywidgets (>=7.5.1,<9)"] + +[[package]] +name = "rich-rst" +version = "1.3.1" +description = "A beautiful reStructuredText renderer for rich" +optional = false +python-versions = ">=3.6" +files = [ + {file = "rich_rst-1.3.1-py3-none-any.whl", hash = "sha256:498a74e3896507ab04492d326e794c3ef76e7cda078703aa592d1853d91098c1"}, + {file = "rich_rst-1.3.1.tar.gz", hash = "sha256:fad46e3ba42785ea8c1785e2ceaa56e0ffa32dbe5410dec432f37e4107c4f383"}, +] + +[package.dependencies] +docutils = "*" +rich = ">=12.0.0" + +[[package]] +name = "ruff" +version = "0.3.7" +description = "An extremely fast Python linter and code formatter, written in Rust." +optional = false +python-versions = ">=3.7" +files = [ + {file = "ruff-0.3.7-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:0e8377cccb2f07abd25e84fc5b2cbe48eeb0fea9f1719cad7caedb061d70e5ce"}, + {file = "ruff-0.3.7-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:15a4d1cc1e64e556fa0d67bfd388fed416b7f3b26d5d1c3e7d192c897e39ba4b"}, + {file = "ruff-0.3.7-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d28bdf3d7dc71dd46929fafeec98ba89b7c3550c3f0978e36389b5631b793663"}, + {file = "ruff-0.3.7-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:379b67d4f49774ba679593b232dcd90d9e10f04d96e3c8ce4a28037ae473f7bb"}, + {file = "ruff-0.3.7-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c060aea8ad5ef21cdfbbe05475ab5104ce7827b639a78dd55383a6e9895b7c51"}, + {file = "ruff-0.3.7-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:ebf8f615dde968272d70502c083ebf963b6781aacd3079081e03b32adfe4d58a"}, + {file = "ruff-0.3.7-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d48098bd8f5c38897b03604f5428901b65e3c97d40b3952e38637b5404b739a2"}, + {file = "ruff-0.3.7-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:da8a4fda219bf9024692b1bc68c9cff4b80507879ada8769dc7e985755d662ea"}, + {file = "ruff-0.3.7-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c44e0149f1d8b48c4d5c33d88c677a4aa22fd09b1683d6a7ff55b816b5d074f"}, + {file = "ruff-0.3.7-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:3050ec0af72b709a62ecc2aca941b9cd479a7bf2b36cc4562f0033d688e44fa1"}, + {file = "ruff-0.3.7-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:a29cc38e4c1ab00da18a3f6777f8b50099d73326981bb7d182e54a9a21bb4ff7"}, + {file = "ruff-0.3.7-py3-none-musllinux_1_2_i686.whl", hash = "sha256:5b15cc59c19edca917f51b1956637db47e200b0fc5e6e1878233d3a938384b0b"}, + {file = "ruff-0.3.7-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:e491045781b1e38b72c91247cf4634f040f8d0cb3e6d3d64d38dcf43616650b4"}, + {file = "ruff-0.3.7-py3-none-win32.whl", hash = "sha256:bc931de87593d64fad3a22e201e55ad76271f1d5bfc44e1a1887edd0903c7d9f"}, + {file = "ruff-0.3.7-py3-none-win_amd64.whl", hash = "sha256:5ef0e501e1e39f35e03c2acb1d1238c595b8bb36cf7a170e7c1df1b73da00e74"}, + {file = "ruff-0.3.7-py3-none-win_arm64.whl", hash = "sha256:789e144f6dc7019d1f92a812891c645274ed08af6037d11fc65fcbc183b7d59f"}, + {file = "ruff-0.3.7.tar.gz", hash = "sha256:d5c1aebee5162c2226784800ae031f660c350e7a3402c4d1f8ea4e97e232e3ba"}, +] + +[[package]] +name = "tifffile" +version = "2024.9.20" +description = "Read and write TIFF files" +optional = false +python-versions = ">=3.10" +files = [ + {file = "tifffile-2024.9.20-py3-none-any.whl", hash = "sha256:c54dc85bc1065d972cb8a6ffb3181389d597876aa80177933459733e4ed243dd"}, + {file = "tifffile-2024.9.20.tar.gz", hash = "sha256:3fbf3be2f995a7051a8ae05a4be70c96fc0789f22ed6f1c4104c973cf68a640b"}, +] + +[package.dependencies] +numpy = "*" + +[package.extras] +all = ["defusedxml", "fsspec", "imagecodecs (>=2023.8.12)", "lxml", "matplotlib", "zarr"] +codecs = ["imagecodecs (>=2023.8.12)"] +plot = ["matplotlib"] +test = ["cmapfile", "czifile", "dask", "defusedxml", "fsspec", "imagecodecs", "lfdfiles", "lxml", "ndtiff", "oiffile", "psdtags", "pytest", "roifile", "xarray", "zarr"] +xml = ["defusedxml", "lxml"] +zarr = ["fsspec", "zarr"] + +[[package]] +name = "tomli" +version = "2.0.2" +description = "A lil' TOML parser" +optional = false +python-versions = ">=3.8" +files = [ + {file = "tomli-2.0.2-py3-none-any.whl", hash = "sha256:2ebe24485c53d303f690b0ec092806a085f07af5a5aa1464f3931eec36caaa38"}, + {file = "tomli-2.0.2.tar.gz", hash = "sha256:d46d457a85337051c36524bc5349dd91b1877838e2979ac5ced3e710ed8a60ed"}, +] + +[[package]] +name = "typing-extensions" +version = "4.12.2" +description = "Backported and Experimental Type Hints for Python 3.8+" +optional = false +python-versions = ">=3.8" +files = [ + {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, + {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, +] + +[[package]] +name = "virtualenv" +version = "20.27.1" +description = "Virtual Python Environment builder" +optional = false +python-versions = ">=3.8" +files = [ + {file = "virtualenv-20.27.1-py3-none-any.whl", hash = "sha256:f11f1b8a29525562925f745563bfd48b189450f61fb34c4f9cc79dd5aa32a1f4"}, + {file = "virtualenv-20.27.1.tar.gz", hash = "sha256:142c6be10212543b32c6c45d3d3893dff89112cc588b7d0879ae5a1ec03a47ba"}, +] + +[package.dependencies] +distlib = ">=0.3.7,<1" +filelock = ">=3.12.2,<4" +platformdirs = ">=3.9.1,<5" + +[package.extras] +docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2,!=7.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] +test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8)", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10)"] + +[[package]] +name = "zarr" +version = "2.18.3" +description = "An implementation of chunked, compressed, N-dimensional arrays for Python" +optional = false +python-versions = ">=3.10" +files = [ + {file = "zarr-2.18.3-py3-none-any.whl", hash = "sha256:b1f7dfd2496f436745cdd4c7bcf8d3b4bc1dceef5fdd0d589c87130d842496dd"}, + {file = "zarr-2.18.3.tar.gz", hash = "sha256:2580d8cb6dd84621771a10d31c4d777dca8a27706a1a89b29f42d2d37e2df5ce"}, +] + +[package.dependencies] +asciitree = "*" +fasteners = {version = "*", markers = "sys_platform != \"emscripten\""} +numcodecs = ">=0.10.0" +numpy = ">=1.24" + +[package.extras] +docs = ["numcodecs[msgpack]", "numpydoc", "pydata-sphinx-theme", "sphinx", "sphinx-automodapi", "sphinx-copybutton", "sphinx-design", "sphinx-issues"] +jupyter = ["ipytree (>=0.2.2)", "ipywidgets (>=8.0.0)", "notebook"] + +[metadata] +lock-version = "2.0" +python-versions = "^3.10" +content-hash = "9f7fa53f9f282a99c6b1ecea8342c1e63113a62c321359aec8fcdd20e3d69eb2" From 8ca5ddc821228f900273602a106c01f7c136fd55 Mon Sep 17 00:00:00 2001 From: "Kaidong (Calvin) Chai" Date: Tue, 16 Dec 2025 16:23:51 -0500 Subject: [PATCH 036/133] Implement multi-stage Docker build with Poetry Refactor Dockerfile to use multi-stage builds for better dependency management and security practices. --- Dockerfile | 75 +++++++++++++++++++++++++++++++++--------------------- 1 file changed, 46 insertions(+), 29 deletions(-) diff --git a/Dockerfile b/Dockerfile index 85e345cd..4dd248a9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,45 +1,62 @@ -# Use Python 3.11 as base image -FROM python:3.11-slim +# ---------------------------------------------------------------------------- +# STAGE 1: Builder +# Used to install Poetry, compile dependencies, and create the virtual environment. +# ---------------------------------------------------------------------------- +FROM python:3.11-slim as builder # Set working directory WORKDIR /app -# Install system dependencies +# Install build dependencies (GCC, etc.) +# We need these to compile packages, but we don't want them in the final image. RUN apt-get update && apt-get install -y \ build-essential \ - curl + && rm -rf /var/lib/apt/lists/* # Install Poetry -ENV POETRY_VERSION=1.8.4 -ENV POETRY_HOME=/opt/poetry -ENV POETRY_VENV=/opt/poetry-venv -ENV POETRY_CACHE_DIR=/opt/poetry-cache - -RUN python3 -m venv $POETRY_VENV \ - && $POETRY_VENV/bin/pip install -U pip setuptools \ - && $POETRY_VENV/bin/pip install poetry==${POETRY_VERSION} \ - && ln -s ${POETRY_VENV}/bin/poetry /usr/local/bin/poetry \ - && chmod 755 /usr/local/bin/poetry - -# Configure Poetry: Don't create virtual environment, install dependencies to system -ENV POETRY_NO_INTERACTION=1 \ - POETRY_VENV_IN_PROJECT=1 \ - POETRY_CACHE_DIR=/opt/poetry-cache +RUN pip install poetry==1.8.4 -# Copy Poetry configuration files -COPY pyproject.toml ./ +# Configure Poetry to create the venv inside the project folder +# This makes it easy to copy the whole folder to the next stage +ENV POETRY_NO_INTERACTION=1 \ + POETRY_VIRTUALENVS_IN_PROJECT=1 \ + POETRY_VIRTUALENVS_CREATE=1 \ + POETRY_CACHE_DIR=/tmp/poetry_cache -# Install dependencies -RUN poetry install --no-dev --no-root --extras all +# Copy dependency definition files first (for caching) +COPY pyproject.toml poetry.lock ./ +RUN poetry lock +# Install dependencies (only the libraries) +RUN poetry install --no-root --no-dev --extras all && rm -rf $POETRY_CACHE_DIR -# Copy application code +# Copy the rest of the application code COPY . . +RUN poetry lock +# Install the application itself +#RUN poetry install --no-dev --extras all +RUN poetry build -f wheel +RUN ./.venv/bin/pip install dist/*.whl +# ---------------------------------------------------------------------------- +# STAGE 2: Runtime +# A fresh, empty image that only contains the Python runtime and our copied venv. +# ---------------------------------------------------------------------------- +FROM python:3.11-slim as runtime -# Install the application -RUN poetry install --no-dev --extras all +WORKDIR /app -# Set the entrypoint -ENTRYPOINT ["poetry", "run", "linc-convert"] +# Create a non-root user for security (Best Practice) +RUN useradd -m -r appuser && chown appuser /app +USER appuser -# Default command (can be overridden) +# Copy the virtual environment from the builder stage +# We assume the path structure is identical (/app/.venv) +COPY --from=builder --chown=appuser:appuser /app/.venv /app/.venv + +# Update PATH environment variable +# This allows us to type 'linc-convert' instead of '/app/.venv/bin/linc-convert' +ENV PATH="/app/.venv/bin:$PATH" + +# Set the entrypoint +ENTRYPOINT ["linc-convert"] +# Default command CMD ["--help"] From 31025339f4c13de6da914d7004d02fa7f1aa4735 Mon Sep 17 00:00:00 2001 From: "Kaidong (Calvin) Chai" Date: Tue, 16 Dec 2025 16:36:08 -0500 Subject: [PATCH 037/133] Add source label to Dockerfile --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 4dd248a9..d8323f19 100644 --- a/Dockerfile +++ b/Dockerfile @@ -55,7 +55,7 @@ COPY --from=builder --chown=appuser:appuser /app/.venv /app/.venv # Update PATH environment variable # This allows us to type 'linc-convert' instead of '/app/.venv/bin/linc-convert' ENV PATH="/app/.venv/bin:$PATH" - +LABEL org.opencontainers.image.source https://github.com/lincbrain/linc-convert # Set the entrypoint ENTRYPOINT ["linc-convert"] # Default command From a543252afabe36223aa7e768585f9caad0263175 Mon Sep 17 00:00:00 2001 From: "Kaidong (Calvin) Chai" Date: Tue, 16 Dec 2025 16:41:41 -0500 Subject: [PATCH 038/133] Update Dockerfile syntax for build stages --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index d8323f19..0e0f51fc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ # STAGE 1: Builder # Used to install Poetry, compile dependencies, and create the virtual environment. # ---------------------------------------------------------------------------- -FROM python:3.11-slim as builder +FROM python:3.11-slim AS builder # Set working directory WORKDIR /app @@ -40,7 +40,7 @@ RUN ./.venv/bin/pip install dist/*.whl # STAGE 2: Runtime # A fresh, empty image that only contains the Python runtime and our copied venv. # ---------------------------------------------------------------------------- -FROM python:3.11-slim as runtime +FROM python:3.11-slim AS runtime WORKDIR /app From f2d72b1fc687060859f42a53eca3dfedb4aca8e9 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Fri, 19 Dec 2025 11:22:13 -0500 Subject: [PATCH 039/133] refactor: enhance focus plane handling and normalize weight calculation in mosaic processing - Adjusted focus plane handling in _shift_focus to support 2D input. - Updated weight normalization in _combine_block to correctly handle 3D data dimensions. --- .../modalities/psoct/mosaic_complex.py | 23 +++++++++++-------- linc_convert/modalities/psoct/stitch.py | 6 ++++- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/linc_convert/modalities/psoct/mosaic_complex.py b/linc_convert/modalities/psoct/mosaic_complex.py index 6114b41b..88833537 100644 --- a/linc_convert/modalities/psoct/mosaic_complex.py +++ b/linc_convert/modalities/psoct/mosaic_complex.py @@ -64,9 +64,11 @@ def _shift_focus( tile: da.Array, focus_plane: np.ndarray, s_max: int ) -> da.Array: """Shift tile depth based on focus plane.""" - + if len(focus_plane.shape) == 2: + focus_plane = focus_plane[..., None] # This function will be applied per block using map_blocks def shift_block(block, block_info=None): + nonlocal focus_plane if block_info is None: return block # Get the spatial coordinates for this block @@ -77,11 +79,12 @@ def shift_block(block, block_info=None): block, pad_width, mode="constant", constant_values=np.nan ) # build indices for the expanded depth - z = np.arange(block.shape[-1] - s_max, dtype=np.int32)[None, None, :] + z = np.arange(block.shape[-1] + s_max, dtype=np.int32)[None, None, :] # Use a subset of focus_plane corresponding to this block # For now, use the full focus_plane (assuming it matches tile spatial # dimensions) - idx = z + focus_plane[..., None] + + idx = z + focus_plane result = np.take_along_axis(block_padded, idx, axis=2) return result @@ -143,7 +146,7 @@ def mosaic_complex( depth = metadata.get("depth") scan_resolution = metadata.get("scan_resolution", [1.0, 1.0, 1.0]) unit = metadata.get("unit", "millimeter") - flip_z = metadata.get("flip_z", True) + flip_z = metadata.get("flip_z", False) clip_x = metadata.get("clip_x", 0) clip_y = metadata.get("clip_y", 0) raw_tile_width = metadata.get("raw_tile_width") @@ -230,18 +233,18 @@ def mosaic_complex( # Process complex data to get dBI, R3D, O3D dBI3D, R3D, O3D = process_complex3d(complex3d, offset=100, flip_phi=False) - # Handle focus plane shifting - if focus_plane_data is not None: - s_max = int(np.max(focus_plane_data)) - dBI3D = _shift_focus(dBI3D, focus_plane_data, s_max) - R3D = _shift_focus(R3D, focus_plane_data, s_max) - O3D = _shift_focus(O3D, focus_plane_data, s_max) # Apply transformations if flip_z: dBI3D = da.flip(dBI3D, axis=2) R3D = da.flip(R3D, axis=2) O3D = da.flip(O3D, axis=2) + # Handle focus plane shifting + if focus_plane_data is not None: + s_max = int(np.max(focus_plane_data)) + dBI3D = _shift_focus(dBI3D, focus_plane_data, s_max) + R3D = _shift_focus(R3D, focus_plane_data, s_max) + O3D = _shift_focus(O3D, focus_plane_data, s_max) # Clip tiles results = da.stack([dBI3D, R3D, O3D], axis=3) diff --git a/linc_convert/modalities/psoct/stitch.py b/linc_convert/modalities/psoct/stitch.py index e3d71d11..8b6bbdca 100644 --- a/linc_convert/modalities/psoct/stitch.py +++ b/linc_convert/modalities/psoct/stitch.py @@ -273,7 +273,11 @@ def _combine_block( total_paint = da.sum(da.stack(paints, axis=0), axis=0) total_weight = da.sum(da.stack(weights, axis=0), axis=0) - normalized = total_paint / np.broadcast_to(total_weight, total_paint.shape) + # For 3D data, total_weight should be broadcasted + if len(total_paint.shape) > 2: + expand_dim = len(total_paint.shape) - len(total_weight.shape) + total_weight = total_weight.reshape(total_weight.shape + (1,)*expand_dim) + normalized = total_paint / total_weight if not circular_mean: return normalized From a9547b02c4e53658efcb7ee883f7079724e784a7 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Mon, 22 Dec 2025 16:38:53 -0500 Subject: [PATCH 040/133] feat: add focus plane support in mosaic2d function - Introduced parameters for focus plane handling, including normalization and cropping options. - Enhanced image processing to apply focus plane adjustments during mosaic creation. --- linc_convert/modalities/psoct/mosaic.py | 43 +++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/linc_convert/modalities/psoct/mosaic.py b/linc_convert/modalities/psoct/mosaic.py index d82693f0..57aee7a8 100644 --- a/linc_convert/modalities/psoct/mosaic.py +++ b/linc_convert/modalities/psoct/mosaic.py @@ -222,6 +222,11 @@ def mosaic2d( clip_x: int = 0, clip_y: int = 0, mask: Annotated[Optional[str], Parameter(name=["--mask", "-m"])] = None, + focus_plane: Annotated[ + Optional[str], Parameter(name=["--focus-plane", "-f"])] = None, + normalize_focus_plane: bool = False, + crop_focus_plane_depth: int = 500, + crop_focus_plane_offset: int = 30, zarr_config: ZarrConfig = None, general_config: GeneralConfig = None, nifti_config: NiftiConfig = None, @@ -250,6 +255,14 @@ def mosaic2d( mask : str, optional Path to binary mask file to apply to the result. Mask should be 2D and match the result dimensions. + focus_plane : str, optional + Path to focus plane NIfTI file for depth shifting. + normalize_focus_plane : bool + Whether to normalize the focus plane by the minimum value. + crop_focus_plane_depth : int + Number of pixels to crop below the focus plane. + crop_focus_plane_offset : int + Offset of the focus plane to crop below the minimum value. zarr_config : ZarrConfig, optional Zarr configuration. general_config : GeneralConfig, optional @@ -341,13 +354,39 @@ def mosaic2d( if not tile_infos: raise ValueError("No valid tiles were processed") + if focus_plane: + focus_plane = nib.load(focus_plane).get_fdata().astype(np.uint16) + focus_plane = focus_plane.squeeze() + if normalize_focus_plane: + focus_plane = focus_plane - focus_plane.min() + focus_plane = focus_plane + crop_focus_plane_offset + + def apply_focus_plane(image): + nonlocal focus_plane + z = np.arange(crop_focus_plane_depth, dtype=np.int32)[None, None, :] + idx = z + focus_plane[..., None] + idx = idx[..., None] + result = np.take_along_axis(image, idx, axis=2) + return result + + all_images = da.stack([tile.image for tile in tile_infos], axis=-1) + print(crop_focus_plane_depth) + result_shape = ( + all_images.shape[0], all_images.shape[1], crop_focus_plane_depth, + all_images.shape[3]) + all_images = all_images.map_blocks(apply_focus_plane, dtype=all_images.dtype, + chunks=( + all_images.chunks[0], all_images.chunks[1], + crop_focus_plane_depth, 1)) + for i, tile in enumerate(tile_infos): + tile.image = all_images[..., i] + # Create MosaicInfo for 2D mosaic - dimensions and coordinates extracted from tiles # Stitch tiles using MosaicInfo logger.info("Stitching tiles") - # Create MosaicInfo for 2D mosaic - dimensions and coordinates extracted from tiles mosaic = MosaicInfo.from_tiles( tiles=tile_infos, - depth=None, # 2D mosaic + depth=crop_focus_plane_depth if focus_plane is not None else None, # 2D mosaic chunk_size=None, # Will use tile dimensions circular_mean=circular_mean, tile_overlap=tile_overlap, From 481067301fab5c65027a9f1aad5778f7da3fd022 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Mon, 22 Dec 2025 16:48:36 -0500 Subject: [PATCH 041/133] feat: add voxel size parameter to mosaic2d function - Introduced a new optional parameter `voxel_size_xyz` to specify voxel dimensions in x, y, and z directions. - Updated metadata handling to default to voxel size if not provided. - Refactored result variable naming for clarity and consistency throughout the function. - Adjusted NIfTI and Zarr output handling to utilize the new voxel size parameter. --- linc_convert/modalities/psoct/mosaic.py | 80 +++++++++++-------------- 1 file changed, 35 insertions(+), 45 deletions(-) diff --git a/linc_convert/modalities/psoct/mosaic.py b/linc_convert/modalities/psoct/mosaic.py index 57aee7a8..7a534e56 100644 --- a/linc_convert/modalities/psoct/mosaic.py +++ b/linc_convert/modalities/psoct/mosaic.py @@ -227,6 +227,8 @@ def mosaic2d( normalize_focus_plane: bool = False, crop_focus_plane_depth: int = 500, crop_focus_plane_offset: int = 30, + voxel_size_xyz: Annotated[ + Optional[list[float]], Parameter(name=["--voxel-size", "-s"])] = None, zarr_config: ZarrConfig = None, general_config: GeneralConfig = None, nifti_config: NiftiConfig = None, @@ -263,6 +265,8 @@ def mosaic2d( Number of pixels to crop below the focus plane. crop_focus_plane_offset : int Offset of the focus plane to crop below the minimum value. + voxel_size_xyz : list[float], optional + Voxel size in x, y, z directions, in millimeters. zarr_config : ZarrConfig, optional Zarr configuration. general_config : GeneralConfig, optional @@ -282,7 +286,8 @@ def mosaic2d( # Get metadata metadata = tile_info.get("metadata", {}) - scan_resolution = metadata.get("scan_resolution", [1.0, 1.0]) + if voxel_size_xyz is None: + voxel_size_xyz = metadata.get("scan_resolution", [10, 10, 2.5]) file_key = metadata.get("file_key") # Key for mat file array base_dir = metadata.get("base_dir", ".") # Get clip values from metadata if not provided as parameters @@ -323,7 +328,6 @@ def mosaic2d( except Exception as e: logger.warning(f"Failed to load {file_path}: {e}, skipping") continue - # Apply clipping if specified if clip_x > 0 or clip_y > 0: # Clip from left (clip_x) and top (clip_y) @@ -372,12 +376,13 @@ def apply_focus_plane(image): all_images = da.stack([tile.image for tile in tile_infos], axis=-1) print(crop_focus_plane_depth) result_shape = ( - all_images.shape[0], all_images.shape[1], crop_focus_plane_depth, - all_images.shape[3]) + all_images.shape[0], all_images.shape[1], crop_focus_plane_depth, + all_images.shape[3]) all_images = all_images.map_blocks(apply_focus_plane, dtype=all_images.dtype, chunks=( - all_images.chunks[0], all_images.chunks[1], - crop_focus_plane_depth, 1)) + all_images.chunks[0], + all_images.chunks[1], + crop_focus_plane_depth, 1)) for i, tile in enumerate(tile_infos): tile.image = all_images[..., i] # Create MosaicInfo for 2D mosaic - dimensions and coordinates extracted from tiles @@ -393,7 +398,7 @@ def apply_focus_plane(image): ) # Stitch using lazy dask operations - result_2d = mosaic.stitch() + result = mosaic.stitch() # Apply mask if provided if mask: @@ -401,32 +406,16 @@ def apply_focus_plane(image): try: mask_array = _load_mask(mask) # Check if mask dimensions match result - if mask_array.shape != result_2d.shape: - logger.warning( + if mask_array.shape != result.shape: + logger.error( f"Mask shape {mask_array.shape} does not match result shape " - f"{result_2d.shape}. " + f"{result.shape}. " "Attempting to resize mask." ) - # Resize mask to match result if possible - try: - from scipy.ndimage import zoom - - zoom_factors = (result_2d.shape[0] / mask_array.shape[0], - result_2d.shape[1] / mask_array.shape[1]) - mask_array = zoom(mask_array, zoom_factors, - order=0) # order=0 for nearest neighbor - # Ensure binary after resize - mask_array = (mask_array > 0.5).astype(np.float32) - except ImportError: - raise ValueError( - "scipy is required for mask resizing. " - "Please ensure mask dimensions match result dimensions or " - "install scipy." - ) # Apply mask (multiply: 0 where mask is 0, keep original value where mask # is 1) - result_2d = result_2d * mask_array + result = result * mask_array logger.info("Mask applied successfully") except Exception as e: logger.error(f"Failed to load or apply mask: {e}") @@ -434,10 +423,9 @@ def apply_focus_plane(image): if nifti_output or jpeg_output or tiff_output: with ProgressBar(): - result_2d = np.array(result_2d) + result = np.array(result) - scan_resolution_2d = scan_resolution[:2] if len(scan_resolution) >= 2 else [1.0, - 1.0] + voxel_size_2d = voxel_size_xyz[:2] if len(voxel_size_xyz) >= 2 else [0.1, 0.1] # Save NIfTI file if requested if nifti_output: logger.info(f"Saving NIfTI file: {nifti_output}") @@ -446,28 +434,29 @@ def apply_focus_plane(image): # Create NIfTI image (2D array needs to be expanded to 3D for NIfTI) # Add a singleton z dimension # result_3d = result_2d[:, :] - nii_img = nib.Nifti1Image(result_2d, affine) + nii_img = nib.Nifti1Image(result, affine) nii_img.header.set_xyzt_units(xyz="mm", t="sec") + nii_img.header.set_zooms(voxel_size_2d) nib.save(nii_img, nifti_output) logger.info("NIfTI file saved successfully") - result_2d = result_2d.T + result = result.T # Save JPEG if requested if jpeg_output: logger.info(f"Saving JPEG preview: {jpeg_output}") - _save_jpeg(result_2d, jpeg_output) + _save_jpeg(result, jpeg_output) # Save TIFF if requested if tiff_output: logger.info(f"Saving TIFF: {tiff_output}") - _save_tiff(result_2d, tiff_output) + _save_tiff(result, tiff_output) # Save to Zarr if output is specified if general_config.out: logger.info(f"Saving to Zarr: {general_config.out}") # Compute zarr layout for 2D - chunk, shard = compute_zarr_layout(result_2d.shape, np.float32, + chunk, shard = compute_zarr_layout(result.shape, np.float32, zarr_config) # Prepare Zarr group (similar to single_volume.py) @@ -475,40 +464,41 @@ def apply_focus_plane(image): # Create array and write data directly (like single_volume.py) dataset = zgroup.create_array( - "0", shape=result_2d.shape, dtype=np.float32, chunk=chunk, + "0", shape=result.shape, dtype=np.float32, chunk=chunk, shard=shard, zarr_config=zarr_config ) - # Write data directly using indexing (similar to single_volume.py) - if isinstance(result_2d, da.Array): + if isinstance(result, da.Array): if shard: - result_2d = da.rechunk(result_2d, chunks=shard) + result = da.rechunk(result, chunks=shard) else: - result_2d = da.rechunk(result_2d, chunks=chunk) + result = da.rechunk(result, chunks=chunk) with ProgressBar(): - da.store(result_2d, dataset, compute=True) + da.store(result, dataset, compute=True) else: - dataset[...] = result_2d + dataset[...] = result # Generate pyramid and metadata logger.info("Generating pyramid and metadata") zgroup.generate_pyramid() - zgroup.write_ome_metadata(["z", "y", "x"], space_scale=scan_resolution_2d, + logger.info("Finished generating pyramid") + logger.info("Writing OME-Zarr metadata") + zgroup.write_ome_metadata(["z", "y", "x"], space_scale=voxel_size_xyz[::-1], space_unit="millimeter") if nifti_config and nifti_config.nii: header = build_nifti_header( zgroup=zgroup, - voxel_size_zyx=(1.0, scan_resolution_2d[0], scan_resolution_2d[1]), + voxel_size_zyx=voxel_size_xyz[::-1], unit="millimeter", nii_config=nifti_config, ) zgroup.write_nifti_header(header) - logger.info("Finished generating pyramid") + else: logger.info("Skipping Zarr output (no output path specified)") From 9098230d526c3f1a38d4135ad18a9d155ecffa79 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Tue, 23 Dec 2025 12:41:29 -0500 Subject: [PATCH 042/133] fix: update window function to use nan-aware statistics in ZarrGroup --- linc_convert/utils/io/zarr/abc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linc_convert/utils/io/zarr/abc.py b/linc_convert/utils/io/zarr/abc.py index aa0ed6e3..28f5a86b 100644 --- a/linc_convert/utils/io/zarr/abc.py +++ b/linc_convert/utils/io/zarr/abc.py @@ -214,7 +214,7 @@ def generate_pyramid( if isinstance(mode, Callable): window = mode else: - window_func = {"median": da.median, "mean": da.mean} + window_func = {"median": da.nanmedian, "mean": da.nanmean} if mode not in window_func: raise ValueError(f"Unsupported mode: {mode}") window = window_func[mode] From 78eddf17ae188ee9629b0e6a2e2a2306f24c0ca6 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Tue, 23 Dec 2025 12:39:19 -0500 Subject: [PATCH 043/133] feat: enhance mask handling in mosaic processing - Updated _load_mask function to include an optional parameter for lazy loading, allowing for optimized memory usage. - Introduced _apply_mask function to efficiently apply masks using Dask operations, improving performance during mosaic creation. - Modified the stitch method to accept an optional mask parameter, enabling mask application during the stitching process. - Enhanced logging to provide clearer feedback on mask application success and errors. --- linc_convert/modalities/psoct/mosaic.py | 112 +++++++++++++++++++++--- linc_convert/modalities/psoct/stitch.py | 9 +- 2 files changed, 106 insertions(+), 15 deletions(-) diff --git a/linc_convert/modalities/psoct/mosaic.py b/linc_convert/modalities/psoct/mosaic.py index 7a534e56..191689be 100644 --- a/linc_convert/modalities/psoct/mosaic.py +++ b/linc_convert/modalities/psoct/mosaic.py @@ -4,7 +4,7 @@ import logging import os.path as op -from typing import Annotated, Optional +from typing import Annotated, Optional, Union import cyclopts import dask.array as da @@ -185,11 +185,23 @@ def _save_tiff(image: np.ndarray, output_path: str): pil_image.save(output_path, "TIFF") -def _load_mask(mask_path: str) -> np.ndarray: +def _load_mask(mask_path: str, keep_lazy: bool = False) -> Union[da.Array, np.ndarray]: """ Load a binary mask from a file. Supports the same formats as _load_image_tile but expects a 2D binary mask. + + Parameters + ---------- + mask_path : str + Path to mask file. + keep_lazy : bool + If True, keep mask as lazy dask array. If False, compute and return numpy array. + + Returns + ------- + Union[da.Array, np.ndarray] + Binary mask (0 or 1) as dask array or numpy array. """ # Use the same loading function as tiles mask = _load_image_tile(mask_path, key=None) @@ -203,12 +215,85 @@ def _load_mask(mask_path: str) -> np.ndarray: # Convert to binary (0 or 1) # Handle both boolean and numeric masks - mask = mask.compute() if isinstance(mask, da.Array) else mask - mask = (mask > 0).astype(np.float32) + if keep_lazy: + # Keep as lazy dask array for optimization + mask = (mask > 0).astype(np.float32) + else: + # Compute for immediate use + mask = mask.compute() if isinstance(mask, da.Array) else mask + mask = (mask > 0).astype(np.float32) return mask +def _apply_mask(result: da.Array, mask: da.Array) -> da.Array: + """ + Apply mask to result using optimized Dask operations. + + This function structures the computation so that Dask can optimize by + checking mask values first. The key optimization is: + 1. Align mask and result chunks so blocks correspond + 2. Use map_blocks with a function that can see both mask and result + 3. Structure the computation graph so mask information is available + + While Dask's lazy evaluation means result blocks are still in the graph, + the aligned chunks and structured computation allow the scheduler to + optimize execution. In practice, the scheduler can prioritize computing + mask blocks first and use that information to optimize result computation. + + Parameters + ---------- + result : da.Array + The result array to mask. + mask : da.Array + Binary mask (0 or 1) with matching shape. + + Returns + ------- + da.Array + Masked result array. + """ + # Handle different dimensionalities - broadcast mask if needed + if result.ndim > mask.ndim: + # Result has extra dimensions (e.g., 3D result with 2D mask) + # Broadcast mask to match result shape + for _ in range(result.ndim - mask.ndim): + mask = mask[..., np.newaxis] + + # Ensure mask chunks align with result chunks for efficient computation + # This is critical: aligned chunks allow Dask to see block-level relationships + # and the scheduler can use mask block information to optimize result computation + if mask.chunks != result.chunks: + mask = mask.rechunk(result.chunks) + + # Use map_blocks with aligned chunks + # The function receives both result and mask blocks, allowing it to + # apply the mask efficiently. With aligned chunks, Dask's scheduler + # can see the relationship and optimize block-level computation. + def _mask_block(result_block, mask_block, *args, block_info=None, **kwargs): + """ + Apply mask to a block. + + With aligned chunks, this function receives corresponding blocks + of result and mask. The multiplication naturally zeros out where + mask is 0, and Dask can optimize the computation graph accordingly. + """ + if mask_block.sum() == 0: + return np.zeros_like(result_block) + return result_block * mask_block + + # Apply mask using map_blocks with aligned chunks + # This structure allows Dask to optimize block-level computation + # The scheduler can use mask information to optimize result computation + return da.map_blocks( + _mask_block, + result, + mask, + dtype=result.dtype, + chunks=result.chunks, + ) + + @mosaic.default @autoconfig def mosaic2d( @@ -404,19 +489,22 @@ def apply_focus_plane(image): if mask: logger.info(f"Loading and applying mask: {mask}") try: - mask_array = _load_mask(mask) - # Check if mask dimensions match result - if mask_array.shape != result.shape: + # Load mask as lazy dask array for optimization + mask_array = _load_mask(mask, keep_lazy=True) + + # Check if mask dimensions match result (accounting for broadcasting) + mask_2d_shape = mask_array.shape[:2] if mask_array.ndim >= 2 else mask_array.shape + result_2d_shape = result.shape[:2] if result.ndim >= 2 else result.shape + if mask_2d_shape != result_2d_shape: logger.error( f"Mask shape {mask_array.shape} does not match result shape " f"{result.shape}. " - "Attempting to resize mask." ) - # Apply mask (multiply: 0 where mask is 0, keep original value where mask - # is 1) - result = result * mask_array - logger.info("Mask applied successfully") + # Apply mask using optimized function that allows Dask to skip computation + # where mask is 0 + result = _apply_mask(result, mask_array) + logger.info("Mask applied successfully (optimized for Dask)") except Exception as e: logger.error(f"Failed to load or apply mask: {e}") raise diff --git a/linc_convert/modalities/psoct/stitch.py b/linc_convert/modalities/psoct/stitch.py index 8b6bbdca..b2f00b80 100644 --- a/linc_convert/modalities/psoct/stitch.py +++ b/linc_convert/modalities/psoct/stitch.py @@ -146,7 +146,7 @@ def _compute_blending_ramp( ramp = np.outer(wx, wy) return ramp - def stitch(self) -> da.Array: + def stitch(self, mask: Optional[da.Array] = None) -> da.Array: """ Stitch tiles into a mosaic using lazy dask operations. @@ -249,6 +249,7 @@ def stitch(self) -> da.Array: canvas, block_tiles, block_weights, + mask, self.circular_mean, dtype=canvas.dtype, chunks=(pw, ph, *no_chunk_dim) @@ -260,7 +261,7 @@ def stitch(self) -> da.Array: def _combine_block( - _, block_tiles, block_weights, circular_mean, *args, block_info=None, **kwargs + _, block_tiles, block_weights, mask, circular_mean, *args, block_info=None, **kwargs ): """Combine overlapping tile blocks with weighted averaging.""" chunk_id = tuple(block_info[None]['chunk-location'][:2]) @@ -270,7 +271,9 @@ def _combine_block( if not paints: return np.broadcast_to(np.zeros((), dtype=np.float32), shape) - + if mask is not None: + # check if mask is zero for this chunk + total_paint = da.sum(da.stack(paints, axis=0), axis=0) total_weight = da.sum(da.stack(weights, axis=0), axis=0) # For 3D data, total_weight should be broadcasted From b4de82eeb9c97bb7a09ad995bc8b6fc5a32e12f5 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Tue, 23 Dec 2025 16:09:03 -0500 Subject: [PATCH 044/133] refactor: streamline image loading and mask handling in mosaic processing - Simplified the _load_image_tile function by removing commented-out code and unnecessary checks for Zarr archives. - Enhanced the _load_mask function to directly return a boolean mask, improving clarity and efficiency. - Updated the stitch method to remove the mask parameter, reflecting changes in mask handling during stitching. - Adjusted the _combine_block function to remove mask-related logic, optimizing the block combination process. --- linc_convert/modalities/psoct/mosaic.py | 115 +++++------------------- linc_convert/modalities/psoct/stitch.py | 8 +- 2 files changed, 26 insertions(+), 97 deletions(-) diff --git a/linc_convert/modalities/psoct/mosaic.py b/linc_convert/modalities/psoct/mosaic.py index 191689be..c848c604 100644 --- a/linc_convert/modalities/psoct/mosaic.py +++ b/linc_convert/modalities/psoct/mosaic.py @@ -29,6 +29,7 @@ ZarrConfig, autoconfig, ) +from linc_convert.utils.io.zarr import open_array, open_group logger = logging.getLogger(__name__) @@ -59,68 +60,31 @@ def _load_image_tile(file_path: str, key: str = None) -> da.Array: if not hasattr(wrapper, "dtype"): raise ValueError(f"Could not load array from {file_path}") data = wrapper - # # Handle 3D data - take middle slice - # if data.ndim == 3: - # data = data[:, :, data.shape[2] // 2] - # elif data.ndim > 3: - # data = data.reshape(data.shape[0], data.shape[1], -1)[:, :, 0] return da.from_array(data, chunks="auto") - # Check for zarr archives - # Check if path looks like zarr (directory with zarr metadata files) - is_zarr = False - if op.isdir(file_path): - # Check for zarr v3 (zarr.json) or v2 (.zgroup or .zarray) - if op.exists(op.join(file_path, 'zarr.json')) or \ - op.exists(op.join(file_path, '.zgroup')) or \ - op.exists(op.join(file_path, '.zarray')): - is_zarr = True - elif file_path.endswith('.zarr') or '.zarr' in file_path: - is_zarr = True - - if is_zarr: + if file_path.endswith('.zarr'): + # Try to open as zarr group first try: - from linc_convert.utils.io.zarr import open_array, open_group - - # Try to open as zarr group first - try: - zarr_group = open_group(file_path, mode="r") - # It's a group, try to get array '0' - if '0' in zarr_group.keys(): - zarr_array_wrapper = zarr_group['0'] - data = da.from_array(zarr_array_wrapper, - chunks=zarr_array_wrapper.chunks) - else: - raise ValueError( - f"Zarr group at {file_path} does not contain array '0'") - except (ValueError, KeyError): - # Try as array - zarr_array_wrapper = open_array(file_path, mode="r") + zarr_group = open_group(file_path, mode="r") + # It's a group, try to get array '0' + if '0' in zarr_group.keys(): + zarr_array_wrapper = zarr_group['0'] data = da.from_array(zarr_array_wrapper, - chunks=zarr_array_wrapper.chunks) - - # Handle 3D data - take middle slice - # if data.ndim == 3: - # data = data[:, :, data.shape[2] // 2] - # elif data.ndim > 3: - # data = data.reshape(data.shape[0], data.shape[1], -1)[:, :, 0] - return data - except Exception as e: - logger.warning(f"Failed to load as zarr: {e}, trying other formats") + chunks=zarr_array_wrapper.chunks) + else: + raise ValueError( + f"Zarr group at {file_path} does not contain array '0'") + except (ValueError, KeyError): + # Try as array + zarr_array_wrapper = open_array(file_path, mode="r") + data = da.from_array(zarr_array_wrapper, + chunks=zarr_array_wrapper.chunks) + return data # Check for NIfTI files if file_path.endswith(('.nii', '.nii.gz')): img = nib.load(file_path) - # Use dataobj for lazy loading with mmap instead of get_fdata() - dataobj = img.dataobj - # Convert to dask array with lazy loading - data = da.from_array(dataobj, chunks=img.shape) - # Handle 3D data - take middle slice - # if data.ndim == 3: - # data = data[:, :, data.shape[2] // 2] - # elif data.ndim > 3: - # # Take first 2D slice - # data = data.reshape(data.shape[0], data.shape[1], -1)[:, :, 0] + data = da.from_array(img.dataobj, chunks=img.shape) return data # Try dask-image as fallback @@ -128,11 +92,6 @@ def _load_image_tile(file_path: str, key: str = None) -> da.Array: import dask_image.imread # noqa: F401 data = dask_image.imread.imread(file_path) - # Handle 3D data - take middle slice - # if data.ndim == 3: - # data = data[:, :, data.shape[2] // 2] - # elif data.ndim > 3: - # data = data.reshape(data.shape[0], data.shape[1], -1)[:, :, 0] return data except ImportError: raise ValueError( @@ -168,24 +127,10 @@ def _save_tiff(image: np.ndarray, output_path: str): # Preserve original dtype and values tifffile.imwrite(output_path, image) except ImportError: - # Fallback to PIL if tifffile not available - # PIL requires uint8 or uint16, so we need to convert - # But we don't normalize - just convert dtype preserving values as much as - # possible - if image.dtype in (np.float32, np.float64): - # For float, convert to uint16 without normalization - # This will clip values outside [0, 65535] range - image_uint16 = np.clip(image, 0, 65535).astype(np.uint16) - elif image.dtype == np.uint8: - image_uint16 = image - else: - # For other types, convert to uint16 - image_uint16 = np.clip(image, 0, 65535).astype(np.uint16) - pil_image = Image.fromarray(image_uint16) - pil_image.save(output_path, "TIFF") + raise ValueError("tifffile is not installed") -def _load_mask(mask_path: str, keep_lazy: bool = False) -> Union[da.Array, np.ndarray]: +def _load_mask(mask_path: str) -> Union[da.Array, np.ndarray]: """ Load a binary mask from a file. @@ -213,17 +158,7 @@ def _load_mask(mask_path: str, keep_lazy: bool = False) -> Union[da.Array, np.nd else: raise ValueError(f"Mask must be 2D, got shape {mask.shape}") - # Convert to binary (0 or 1) - # Handle both boolean and numeric masks - if keep_lazy: - # Keep as lazy dask array for optimization - mask = (mask > 0).astype(np.float32) - else: - # Compute for immediate use - mask = mask.compute() if isinstance(mask, da.Array) else mask - mask = (mask > 0).astype(np.float32) - - return mask + return (mask > 0).astype(bool) def _apply_mask(result: da.Array, mask: da.Array) -> da.Array: @@ -264,7 +199,7 @@ def _apply_mask(result: da.Array, mask: da.Array) -> da.Array: # This is critical: aligned chunks allow Dask to see block-level relationships # and the scheduler can use mask block information to optimize result computation if mask.chunks != result.chunks: - mask = mask.rechunk(result.chunks) + mask = mask.rechunk(result.chunks[:2] + mask.chunks[2:]) # Use map_blocks with aligned chunks # The function receives both result and mask blocks, allowing it to @@ -490,7 +425,7 @@ def apply_focus_plane(image): logger.info(f"Loading and applying mask: {mask}") try: # Load mask as lazy dask array for optimization - mask_array = _load_mask(mask, keep_lazy=True) + mask_array = _load_mask(mask) # Check if mask dimensions match result (accounting for broadcasting) mask_2d_shape = mask_array.shape[:2] if mask_array.ndim >= 2 else mask_array.shape @@ -500,11 +435,9 @@ def apply_focus_plane(image): f"Mask shape {mask_array.shape} does not match result shape " f"{result.shape}. " ) - - # Apply mask using optimized function that allows Dask to skip computation - # where mask is 0 result = _apply_mask(result, mask_array) logger.info("Mask applied successfully (optimized for Dask)") + except Exception as e: logger.error(f"Failed to load or apply mask: {e}") raise diff --git a/linc_convert/modalities/psoct/stitch.py b/linc_convert/modalities/psoct/stitch.py index b2f00b80..5cf9cbfd 100644 --- a/linc_convert/modalities/psoct/stitch.py +++ b/linc_convert/modalities/psoct/stitch.py @@ -146,7 +146,7 @@ def _compute_blending_ramp( ramp = np.outer(wx, wy) return ramp - def stitch(self, mask: Optional[da.Array] = None) -> da.Array: + def stitch(self) -> da.Array: """ Stitch tiles into a mosaic using lazy dask operations. @@ -249,7 +249,6 @@ def stitch(self, mask: Optional[da.Array] = None) -> da.Array: canvas, block_tiles, block_weights, - mask, self.circular_mean, dtype=canvas.dtype, chunks=(pw, ph, *no_chunk_dim) @@ -261,7 +260,7 @@ def stitch(self, mask: Optional[da.Array] = None) -> da.Array: def _combine_block( - _, block_tiles, block_weights, mask, circular_mean, *args, block_info=None, **kwargs + _, block_tiles, block_weights, circular_mean, *args, block_info=None, **kwargs ): """Combine overlapping tile blocks with weighted averaging.""" chunk_id = tuple(block_info[None]['chunk-location'][:2]) @@ -271,9 +270,6 @@ def _combine_block( if not paints: return np.broadcast_to(np.zeros((), dtype=np.float32), shape) - if mask is not None: - # check if mask is zero for this chunk - total_paint = da.sum(da.stack(paints, axis=0), axis=0) total_weight = da.sum(da.stack(weights, axis=0), axis=0) # For 3D data, total_weight should be broadcasted From 87d20febbdd33d6605b7a8abea5969c7468dace9 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Tue, 16 Dec 2025 14:33:50 -0500 Subject: [PATCH 045/133] Enhance SpoolSetInterpreter: Add raw_assembled_spool_shape attribute and rename spool_file to spool_data for clarity --- linc_convert/utils/io/spool.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/linc_convert/utils/io/spool.py b/linc_convert/utils/io/spool.py index 2cd1cb74..17f146df 100644 --- a/linc_convert/utils/io/spool.py +++ b/linc_convert/utils/io/spool.py @@ -66,7 +66,11 @@ def __init__( self.spool_shape[2], self.spool_shape[0] * len(self.spool_files), ) - + self.raw_assembled_spool_shape = ( + self.spool_shape[1], + self.spool_shape[2], + self.spool_shape[0] * len(self.spool_files), + ) def _load_info_file(self, info_file: str | PathLike[str]) -> None: loaded_info = loadmat(info_file) info = loaded_info.get("info", None) @@ -254,10 +258,10 @@ def assemble(self) -> np.ndarray: canvas = np.zeros( (axis_0_shape * len(self), *self.spool_shape[1:]), dtype=self.dtype ) - for idx, spool_file in enumerate(self): + for idx, spool_data in enumerate(self): start = idx * axis_0_shape stop = start + axis_0_shape - canvas[start:stop] = spool_file + canvas[start:stop] = spool_data return canvas # this is the modified version for lsm pipeline From fe95b2f330e9c022065cf23bdcd99270ab8ac5b5 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Tue, 16 Dec 2025 14:34:24 -0500 Subject: [PATCH 046/133] feat: Add stripe module for converting stripe spool files to Zarr format --- linc_convert/modalities/lsm/__init__.py | 4 +- linc_convert/modalities/lsm/stripe.py | 105 ++++++++++++++++++++++++ 2 files changed, 107 insertions(+), 2 deletions(-) create mode 100644 linc_convert/modalities/lsm/stripe.py diff --git a/linc_convert/modalities/lsm/__init__.py b/linc_convert/modalities/lsm/__init__.py index 402fb20f..55bd86c1 100644 --- a/linc_convert/modalities/lsm/__init__.py +++ b/linc_convert/modalities/lsm/__init__.py @@ -3,8 +3,8 @@ try: import tifffile as _ # noqa: F401 - __all__ = ["cli", "mosaic", "multi_slice", "spool"] + __all__ = ["cli", "mosaic", "multi_slice", "spool", "stripe"] - from . import cli, mosaic, multi_slice, spool + from . import cli, mosaic, multi_slice, spool, stripe except ImportError: pass diff --git a/linc_convert/modalities/lsm/stripe.py b/linc_convert/modalities/lsm/stripe.py new file mode 100644 index 00000000..36185c07 --- /dev/null +++ b/linc_convert/modalities/lsm/stripe.py @@ -0,0 +1,105 @@ +""" +Convert spool .dat files set generated by the LSM pipeline into a zarr. + +Example input files can be found at +https://lincbrain.org/dandiset/000010/draft/files?location=sourcedata%2Frawdata +%2Fmicr%2Fsample18_run10__y10_z01_HR&page=1 +""" +import logging + +# stdlib +import os +import os.path as op +import re +import warnings +from collections import defaultdict, namedtuple +from glob import glob +import dask.array as da +# externals +import cyclopts +import numpy as np + +# internals +from linc_convert.modalities.lsm.cli import lsm +from linc_convert.utils.io.spool import SpoolSetInterpreter +from linc_convert.utils.io.zarr import from_config +from linc_convert.utils.nifti_header import build_nifti_header +from linc_convert.utils.zarr_config import ( + GeneralConfig, + NiftiConfig, + ZarrConfig, + autoconfig, +) + +logger = logging.getLogger(__name__) +stripe = cyclopts.App(name="stripe", help_format="markdown") +lsm.command(stripe) + + +@stripe.default +@autoconfig +def convert( + stripe_directory: str, + info_file:str, + *, + voxel_size: list[float] = (1, 1, 1), + general_config: GeneralConfig = None, + zarr_config: ZarrConfig = None, + nii_config: NiftiConfig = None, +) -> None: + """ + Convert a collection of spool files generated by the LSM pipeline into Zarr. + + Parameters + ---------- + inp + Path to the root directory, which contains a collection of + subfolders named `*_y{:02d}_z{:02d}*_HR`, each containing a + collection of files named `*spool.dat`. + TODO: add instrution for metadata file and info file + overlap + Number of pixels between slices that are overlapped + voxel_size + Voxel size along the X, Y and Z dimensions, in microns. + general_config + General configuration + zarr_config + Zarr related configuration + nii_config + NIfTI header related configuration + """ + + reader = SpoolSetInterpreter(stripe_directory, info_file) + + + # Set default output path if not provided + general_config.set_default_name(op.basename(info_file)) + + fullshape = reader.raw_assembled_spool_shape + + # Initialize Zarr group and array + omz = from_config(general_config.out, zarr_config) + array = omz.create_array("0", shape=fullshape, zarr_config=zarr_config, dtype=reader.dtype) + logger.info(general_config.out) + result = reader.assemble() + result = result.transpose(1,2,0) + array[:] = result[:] + print("Write level 0 with shape", fullshape) + + + voxel_size = list(map(float, reversed(voxel_size))) + # Generate Zarr pyramid and metadata + omz.generate_pyramid(levels=zarr_config.levels) + omz.write_ome_metadata(axes=["z", "y", "x"], space_scale=voxel_size) + + if nii_config.nii: + header = build_nifti_header( + zgroup=omz, + voxel_size_zyx=tuple(voxel_size), + unit="micrometer", + nii_config=nii_config, + ) + omz.write_nifti_header(header) + + logger.info("Conversion complete.") + From 33cf064c77ec6e80d56ce2cb27c33bade9471b6e Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Thu, 16 Oct 2025 13:15:09 -0400 Subject: [PATCH 047/133] feat: add pipeline for converting single tiff file --- linc_convert/modalities/lsm/__init__.py | 4 +- linc_convert/modalities/lsm/single_volume.py | 93 ++++++++++++++++++++ pyproject.toml | 5 +- 3 files changed, 98 insertions(+), 4 deletions(-) create mode 100644 linc_convert/modalities/lsm/single_volume.py diff --git a/linc_convert/modalities/lsm/__init__.py b/linc_convert/modalities/lsm/__init__.py index 55bd86c1..fa43325b 100644 --- a/linc_convert/modalities/lsm/__init__.py +++ b/linc_convert/modalities/lsm/__init__.py @@ -3,8 +3,8 @@ try: import tifffile as _ # noqa: F401 - __all__ = ["cli", "mosaic", "multi_slice", "spool", "stripe"] + __all__ = ["cli", "mosaic", "multi_slice", "spool", "single_volume", "strip"] - from . import cli, mosaic, multi_slice, spool, stripe + from . import cli, mosaic, multi_slice, spool, single_volume, strip except ImportError: pass diff --git a/linc_convert/modalities/lsm/single_volume.py b/linc_convert/modalities/lsm/single_volume.py new file mode 100644 index 00000000..29736815 --- /dev/null +++ b/linc_convert/modalities/lsm/single_volume.py @@ -0,0 +1,93 @@ +""" +Matlab to OME-Zarr. + +Converts Matlab files generated by the MGH in-house OCT pipeline +into a OME-ZARR pyramid. +""" +import logging +import os + +import cyclopts +import dask.array as da +import dask_image.imread +import numpy as np + +from linc_convert.modalities.lsm.cli import lsm +from linc_convert.utils.io.zarr import from_config +from linc_convert.utils.nifti_header import build_nifti_header +from linc_convert.utils.unit import to_ome_unit +from linc_convert.utils.zarr_config import ( + GeneralConfig, + NiiConfig, + ZarrConfig, + autoconfig, +) + +logger = logging.getLogger(__name__) +single_volume = cyclopts.App(name="single_volume", help_format="markdown") +lsm.command(single_volume) + + +@single_volume.default +@autoconfig +def convert( + inp: str, + *, + general_config: GeneralConfig = None, + zarr_config: ZarrConfig = None, + nii_config: NiiConfig = None, +) -> None: + """ + Tiff to OME-Zarr. + + Convert tiff files + into a pyramidal OME-ZARR (or NIfTI-Zarr) hierarchy. + + Parameters + ---------- + inp + Path to the input tiff file + general_config + General configuration + zarr_config + Zarr related configuration + nii_config + NIfTI header related configuration + """ + + general_config.set_default_name(os.path.splitext(inp)[0]) + + inp_data = dask_image.imread.imread(inp) + + # Prepare Zarr group + zgroup = from_config(general_config.out, zarr_config) + + if not hasattr(inp_data, "dtype"): + raise Exception("Input is not a numpy array. This is unexpected.") + + inp_chunk = [min(x, general_config.max_load) for x in inp_data.shape] + + dataset = zgroup.create_array( + "0", shape=inp_data.shape, dtype=np.dtype(inp_data.dtype), + zarr_config=zarr_config) + + if dataset.shards: + inp_data = da.rechunk(inp_data, dataset.shards) + else: + inp_data = da.rechunk(inp_data, dataset.chunks) + + da.store(inp_data, dataset) + zgroup.generate_pyramid(mode="mean", no_pyramid_axis=zarr_config.no_pyramid_axis) + logger.info("Write OME-Zarr multiscale metadata") + zgroup.write_ome_metadata(axes=["z", "y", "x"], space_unit=to_ome_unit("um")) + + if nii_config.nii: + header = build_nifti_header( + zgroup=zgroup, + voxel_size_zyx=tuple(1, 1, 1), + unit="um", + nii_config=nii_config, + ) + zgroup.write_nifti_header(header) + + logger.info("Conversion complete.") diff --git a/pyproject.toml b/pyproject.toml index f4e02fea..22a80acb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -44,14 +44,15 @@ h5py = { version = "*", optional = true } scipy = { version = "*", optional = true } wkw = { version = "*", optional = true } tensorstore = { version = "*", optional = true } +dask-image = { version = "*", optional = true } [tool.poetry.extras] df = ["glymur"] -lsm = ["tifffile"] +lsm = ["tifffile", "dask-image"] psoct = ["h5py", "scipy"] wk = ["wkw"] ts = ["tensorstore"] -all = ["glymur", "tifffile", "h5py", "scipy", "wkw", "tensorstore"] +all = ["glymur", "tifffile", "h5py", "scipy", "wkw", "tensorstore", "dask-image"] [tool.poetry.group.dev] optional = true From 197e34119b8fb9b384f126edba735022152d9ee5 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Thu, 16 Oct 2025 14:56:48 -0400 Subject: [PATCH 048/133] fix: hot fix for Emine --- linc_convert/utils/io/zarr/drivers/zarr_python.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/linc_convert/utils/io/zarr/drivers/zarr_python.py b/linc_convert/utils/io/zarr/drivers/zarr_python.py index f07ca575..f280ac5f 100644 --- a/linc_convert/utils/io/zarr/drivers/zarr_python.py +++ b/linc_convert/utils/io/zarr/drivers/zarr_python.py @@ -116,10 +116,7 @@ def from_config( cls, out: str | PathLike[str], zarr_config: ZarrConfig ) -> "ZarrPythonGroup": """Create a Zarr group from a configuration object.""" - if out.startswith("/") or out.startswith("\\"): - store = zarr.storage.LocalStore(out) - else: - store = zarr.storage.FsspecStore(out) + store = zarr.storage.LocalStore(out) return cls( zarr.group( store=store, From 1bdd5f2d5d75e2ecc55ae0add453ba3a0d172066 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Fri, 5 Dec 2025 11:28:59 -0500 Subject: [PATCH 049/133] Add Docker support with Dockerfile, .dockerignore, and GitHub Actions workflow --- .dockerignore | 53 ++++++++++++++++++++++++ .github/workflows/docker-build.yml | 65 ++++++++++++++++++++++++++++++ Dockerfile | 47 +++++++++++++++++++++ 3 files changed, 165 insertions(+) create mode 100644 .dockerignore create mode 100644 .github/workflows/docker-build.yml create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..4c1144cc --- /dev/null +++ b/.dockerignore @@ -0,0 +1,53 @@ +# Git +.git +.gitignore +.github + +# Python +__pycache__ +*.py[cod] +*$py.class +*.so +.Python +*.egg-info +dist +build +.venv +venv +env +ENV + +# Testing +.pytest_cache +.coverage +htmlcov +.tox +.mypy_cache +.ruff_cache + +# Documentation +site +docs/requirements.txt + +# IDE +.vscode +.idea +*.swp +*.swo +*~ + +# OS +.DS_Store +Thumbs.db + +# Project specific +scripts/*.ipynb +scripts/*.nii +scripts/*.tiff +scripts/*.jpeg +scripts/*.yaml +tests/data + +# Poetry +poetry.lock.bak + diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml new file mode 100644 index 00000000..ed3707c7 --- /dev/null +++ b/.github/workflows/docker-build.yml @@ -0,0 +1,65 @@ +name: Build and Push Docker Image + +on: + push: + branches: + - main + - master + tags: + - 'v*' + pull_request: + branches: + - main + - master + workflow_dispatch: + +env: + REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository }} + +jobs: + build-and-push: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to Container Registry + if: github.event_name != 'pull_request' + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + tags: | + type=ref,event=branch + type=ref,event=pr + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} + type=semver,pattern={{major}} + type=sha,prefix={{branch}}- + type=raw,value=latest,enable={{is_default_branch}} + + - name: Build and push Docker image + uses: docker/build-push-action@v5 + with: + context: . + push: ${{ github.event_name != 'pull_request' }} + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + cache-from: type=gha + cache-to: type=gha,mode=max + diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..afb90caa --- /dev/null +++ b/Dockerfile @@ -0,0 +1,47 @@ +# Use Python 3.11 as base image +FROM python:3.11-slim + +# Set working directory +WORKDIR /app + +# Install system dependencies +RUN apt-get update && apt-get install -y \ + build-essential \ + curl \ + && rm -rf /var/lib/apt/lists/* + +# Install Poetry +ENV POETRY_VERSION=1.8.4 +ENV POETRY_HOME=/opt/poetry +ENV POETRY_VENV=/opt/poetry-venv +ENV POETRY_CACHE_DIR=/opt/poetry-cache + +RUN python3 -m venv $POETRY_VENV \ + && $POETRY_VENV/bin/pip install -U pip setuptools \ + && $POETRY_VENV/bin/pip install poetry==${POETRY_VERSION} \ + && ln -s ${POETRY_VENV}/bin/poetry /usr/local/bin/poetry \ + && chmod 755 /usr/local/bin/poetry + +# Configure Poetry: Don't create virtual environment, install dependencies to system +ENV POETRY_NO_INTERACTION=1 \ + POETRY_VENV_IN_PROJECT=1 \ + POETRY_CACHE_DIR=/opt/poetry-cache + +# Copy Poetry configuration files +COPY pyproject.toml poetry.lock ./ + +# Install dependencies +RUN poetry install --no-dev --no-root + +# Copy application code +COPY . . + +# Install the application +RUN poetry install --no-dev + +# Set the entrypoint +ENTRYPOINT ["linc-convert"] + +# Default command (can be overridden) +CMD ["--help"] + From 73a96653302989e4788e4076a78973622996c4dc Mon Sep 17 00:00:00 2001 From: "Kaidong (Calvin) Chai" Date: Tue, 16 Dec 2025 15:44:48 -0500 Subject: [PATCH 050/133] Refactor Dockerfile for Poetry installation and entrypoint Updated the Dockerfile to install all dependencies and set the entrypoint to use Poetry. --- Dockerfile | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/Dockerfile b/Dockerfile index afb90caa..85e345cd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,8 +7,7 @@ WORKDIR /app # Install system dependencies RUN apt-get update && apt-get install -y \ build-essential \ - curl \ - && rm -rf /var/lib/apt/lists/* + curl # Install Poetry ENV POETRY_VERSION=1.8.4 @@ -28,20 +27,19 @@ ENV POETRY_NO_INTERACTION=1 \ POETRY_CACHE_DIR=/opt/poetry-cache # Copy Poetry configuration files -COPY pyproject.toml poetry.lock ./ +COPY pyproject.toml ./ # Install dependencies -RUN poetry install --no-dev --no-root +RUN poetry install --no-dev --no-root --extras all # Copy application code COPY . . # Install the application -RUN poetry install --no-dev +RUN poetry install --no-dev --extras all # Set the entrypoint -ENTRYPOINT ["linc-convert"] +ENTRYPOINT ["poetry", "run", "linc-convert"] # Default command (can be overridden) CMD ["--help"] - From 805525aacbb5eaeb565161cbcb09a1472534c091 Mon Sep 17 00:00:00 2001 From: "Kaidong (Calvin) Chai" Date: Tue, 16 Dec 2025 15:48:23 -0500 Subject: [PATCH 051/133] add poetry lock file --- poetry.lock | 1116 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1116 insertions(+) create mode 100644 poetry.lock diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 00000000..91792d60 --- /dev/null +++ b/poetry.lock @@ -0,0 +1,1116 @@ +# This file is automatically @generated by Poetry 1.8.4 and should not be changed by hand. + +[[package]] +name = "asciitree" +version = "0.3.3" +description = "Draws ASCII trees." +optional = false +python-versions = "*" +files = [ + {file = "asciitree-0.3.3.tar.gz", hash = "sha256:4aa4b9b649f85e3fcb343363d97564aa1fb62e249677f2e18a96765145cc0f6e"}, +] + +[[package]] +name = "attrs" +version = "24.2.0" +description = "Classes Without Boilerplate" +optional = false +python-versions = ">=3.7" +files = [ + {file = "attrs-24.2.0-py3-none-any.whl", hash = "sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2"}, + {file = "attrs-24.2.0.tar.gz", hash = "sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346"}, +] + +[package.extras] +benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"] +tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] + +[[package]] +name = "cfgv" +version = "3.4.0" +description = "Validate configuration and produce human readable error messages." +optional = false +python-versions = ">=3.8" +files = [ + {file = "cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9"}, + {file = "cfgv-3.4.0.tar.gz", hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560"}, +] + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "coverage" +version = "7.6.4" +description = "Code coverage measurement for Python" +optional = false +python-versions = ">=3.9" +files = [ + {file = "coverage-7.6.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5f8ae553cba74085db385d489c7a792ad66f7f9ba2ee85bfa508aeb84cf0ba07"}, + {file = "coverage-7.6.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8165b796df0bd42e10527a3f493c592ba494f16ef3c8b531288e3d0d72c1f6f0"}, + {file = "coverage-7.6.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c7c8b95bf47db6d19096a5e052ffca0a05f335bc63cef281a6e8fe864d450a72"}, + {file = "coverage-7.6.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8ed9281d1b52628e81393f5eaee24a45cbd64965f41857559c2b7ff19385df51"}, + {file = "coverage-7.6.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0809082ee480bb8f7416507538243c8863ac74fd8a5d2485c46f0f7499f2b491"}, + {file = "coverage-7.6.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d541423cdd416b78626b55f123412fcf979d22a2c39fce251b350de38c15c15b"}, + {file = "coverage-7.6.4-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:58809e238a8a12a625c70450b48e8767cff9eb67c62e6154a642b21ddf79baea"}, + {file = "coverage-7.6.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c9b8e184898ed014884ca84c70562b4a82cbc63b044d366fedc68bc2b2f3394a"}, + {file = "coverage-7.6.4-cp310-cp310-win32.whl", hash = "sha256:6bd818b7ea14bc6e1f06e241e8234508b21edf1b242d49831831a9450e2f35fa"}, + {file = "coverage-7.6.4-cp310-cp310-win_amd64.whl", hash = "sha256:06babbb8f4e74b063dbaeb74ad68dfce9186c595a15f11f5d5683f748fa1d172"}, + {file = "coverage-7.6.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:73d2b73584446e66ee633eaad1a56aad577c077f46c35ca3283cd687b7715b0b"}, + {file = "coverage-7.6.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:51b44306032045b383a7a8a2c13878de375117946d68dcb54308111f39775a25"}, + {file = "coverage-7.6.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0b3fb02fe73bed561fa12d279a417b432e5b50fe03e8d663d61b3d5990f29546"}, + {file = "coverage-7.6.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed8fe9189d2beb6edc14d3ad19800626e1d9f2d975e436f84e19efb7fa19469b"}, + {file = "coverage-7.6.4-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b369ead6527d025a0fe7bd3864e46dbee3aa8f652d48df6174f8d0bac9e26e0e"}, + {file = "coverage-7.6.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ade3ca1e5f0ff46b678b66201f7ff477e8fa11fb537f3b55c3f0568fbfe6e718"}, + {file = "coverage-7.6.4-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:27fb4a050aaf18772db513091c9c13f6cb94ed40eacdef8dad8411d92d9992db"}, + {file = "coverage-7.6.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4f704f0998911abf728a7783799444fcbbe8261c4a6c166f667937ae6a8aa522"}, + {file = "coverage-7.6.4-cp311-cp311-win32.whl", hash = "sha256:29155cd511ee058e260db648b6182c419422a0d2e9a4fa44501898cf918866cf"}, + {file = "coverage-7.6.4-cp311-cp311-win_amd64.whl", hash = "sha256:8902dd6a30173d4ef09954bfcb24b5d7b5190cf14a43170e386979651e09ba19"}, + {file = "coverage-7.6.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:12394842a3a8affa3ba62b0d4ab7e9e210c5e366fbac3e8b2a68636fb19892c2"}, + {file = "coverage-7.6.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2b6b4c83d8e8ea79f27ab80778c19bc037759aea298da4b56621f4474ffeb117"}, + {file = "coverage-7.6.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d5b8007f81b88696d06f7df0cb9af0d3b835fe0c8dbf489bad70b45f0e45613"}, + {file = "coverage-7.6.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b57b768feb866f44eeed9f46975f3d6406380275c5ddfe22f531a2bf187eda27"}, + {file = "coverage-7.6.4-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5915fcdec0e54ee229926868e9b08586376cae1f5faa9bbaf8faf3561b393d52"}, + {file = "coverage-7.6.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0b58c672d14f16ed92a48db984612f5ce3836ae7d72cdd161001cc54512571f2"}, + {file = "coverage-7.6.4-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:2fdef0d83a2d08d69b1f2210a93c416d54e14d9eb398f6ab2f0a209433db19e1"}, + {file = "coverage-7.6.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8cf717ee42012be8c0cb205dbbf18ffa9003c4cbf4ad078db47b95e10748eec5"}, + {file = "coverage-7.6.4-cp312-cp312-win32.whl", hash = "sha256:7bb92c539a624cf86296dd0c68cd5cc286c9eef2d0c3b8b192b604ce9de20a17"}, + {file = "coverage-7.6.4-cp312-cp312-win_amd64.whl", hash = "sha256:1032e178b76a4e2b5b32e19d0fd0abbce4b58e77a1ca695820d10e491fa32b08"}, + {file = "coverage-7.6.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:023bf8ee3ec6d35af9c1c6ccc1d18fa69afa1cb29eaac57cb064dbb262a517f9"}, + {file = "coverage-7.6.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:b0ac3d42cb51c4b12df9c5f0dd2f13a4f24f01943627120ec4d293c9181219ba"}, + {file = "coverage-7.6.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8fe4984b431f8621ca53d9380901f62bfb54ff759a1348cd140490ada7b693c"}, + {file = "coverage-7.6.4-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5fbd612f8a091954a0c8dd4c0b571b973487277d26476f8480bfa4b2a65b5d06"}, + {file = "coverage-7.6.4-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dacbc52de979f2823a819571f2e3a350a7e36b8cb7484cdb1e289bceaf35305f"}, + {file = "coverage-7.6.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:dab4d16dfef34b185032580e2f2f89253d302facba093d5fa9dbe04f569c4f4b"}, + {file = "coverage-7.6.4-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:862264b12ebb65ad8d863d51f17758b1684560b66ab02770d4f0baf2ff75da21"}, + {file = "coverage-7.6.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5beb1ee382ad32afe424097de57134175fea3faf847b9af002cc7895be4e2a5a"}, + {file = "coverage-7.6.4-cp313-cp313-win32.whl", hash = "sha256:bf20494da9653f6410213424f5f8ad0ed885e01f7e8e59811f572bdb20b8972e"}, + {file = "coverage-7.6.4-cp313-cp313-win_amd64.whl", hash = "sha256:182e6cd5c040cec0a1c8d415a87b67ed01193ed9ad458ee427741c7d8513d963"}, + {file = "coverage-7.6.4-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:a181e99301a0ae128493a24cfe5cfb5b488c4e0bf2f8702091473d033494d04f"}, + {file = "coverage-7.6.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:df57bdbeffe694e7842092c5e2e0bc80fff7f43379d465f932ef36f027179806"}, + {file = "coverage-7.6.4-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bcd1069e710600e8e4cf27f65c90c7843fa8edfb4520fb0ccb88894cad08b11"}, + {file = "coverage-7.6.4-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:99b41d18e6b2a48ba949418db48159d7a2e81c5cc290fc934b7d2380515bd0e3"}, + {file = "coverage-7.6.4-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a6b1e54712ba3474f34b7ef7a41e65bd9037ad47916ccb1cc78769bae324c01a"}, + {file = "coverage-7.6.4-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:53d202fd109416ce011578f321460795abfe10bb901b883cafd9b3ef851bacfc"}, + {file = "coverage-7.6.4-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:c48167910a8f644671de9f2083a23630fbf7a1cb70ce939440cd3328e0919f70"}, + {file = "coverage-7.6.4-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:cc8ff50b50ce532de2fa7a7daae9dd12f0a699bfcd47f20945364e5c31799fef"}, + {file = "coverage-7.6.4-cp313-cp313t-win32.whl", hash = "sha256:b8d3a03d9bfcaf5b0141d07a88456bb6a4c3ce55c080712fec8418ef3610230e"}, + {file = "coverage-7.6.4-cp313-cp313t-win_amd64.whl", hash = "sha256:f3ddf056d3ebcf6ce47bdaf56142af51bb7fad09e4af310241e9db7a3a8022e1"}, + {file = "coverage-7.6.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9cb7fa111d21a6b55cbf633039f7bc2749e74932e3aa7cb7333f675a58a58bf3"}, + {file = "coverage-7.6.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:11a223a14e91a4693d2d0755c7a043db43d96a7450b4f356d506c2562c48642c"}, + {file = "coverage-7.6.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a413a096c4cbac202433c850ee43fa326d2e871b24554da8327b01632673a076"}, + {file = "coverage-7.6.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:00a1d69c112ff5149cabe60d2e2ee948752c975d95f1e1096742e6077affd376"}, + {file = "coverage-7.6.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f76846299ba5c54d12c91d776d9605ae33f8ae2b9d1d3c3703cf2db1a67f2c0"}, + {file = "coverage-7.6.4-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:fe439416eb6380de434886b00c859304338f8b19f6f54811984f3420a2e03858"}, + {file = "coverage-7.6.4-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:0294ca37f1ba500667b1aef631e48d875ced93ad5e06fa665a3295bdd1d95111"}, + {file = "coverage-7.6.4-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:6f01ba56b1c0e9d149f9ac85a2f999724895229eb36bd997b61e62999e9b0901"}, + {file = "coverage-7.6.4-cp39-cp39-win32.whl", hash = "sha256:bc66f0bf1d7730a17430a50163bb264ba9ded56739112368ba985ddaa9c3bd09"}, + {file = "coverage-7.6.4-cp39-cp39-win_amd64.whl", hash = "sha256:c481b47f6b5845064c65a7bc78bc0860e635a9b055af0df46fdf1c58cebf8e8f"}, + {file = "coverage-7.6.4-pp39.pp310-none-any.whl", hash = "sha256:3c65d37f3a9ebb703e710befdc489a38683a5b152242664b973a7b7b22348a4e"}, + {file = "coverage-7.6.4.tar.gz", hash = "sha256:29fc0f17b1d3fea332f8001d4558f8214af7f1d87a345f3a133c901d60347c73"}, +] + +[package.dependencies] +tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.11.0a6\" and extra == \"toml\""} + +[package.extras] +toml = ["tomli"] + +[[package]] +name = "cyclopts" +version = "2.9.9" +description = "" +optional = false +python-versions = ">=3.8" +files = [ + {file = "cyclopts-2.9.9-py3-none-any.whl", hash = "sha256:d0ce956c70f3070e5bc16824ecb5ebba155be45ef4aadbb78ac4753dd99367e3"}, + {file = "cyclopts-2.9.9.tar.gz", hash = "sha256:11d7bb59be253329ff49a1b9a634676c7ae708605d4975090783b99d081c1a0b"}, +] + +[package.dependencies] +attrs = ">=23.1.0" +docstring-parser = {version = ">=0.15", markers = "python_version < \"4.0\""} +rich = ">=13.6.0" +rich-rst = ">=1.3.1,<2.0.0" +typing-extensions = {version = ">=4.8.0", markers = "python_full_version >= \"3.8.0\" and python_full_version < \"4.0.0\""} + +[package.extras] +toml = ["tomli (>=2.0.0)"] +yaml = ["pyyaml (>=6.0.1)"] + +[[package]] +name = "distlib" +version = "0.3.9" +description = "Distribution utilities" +optional = false +python-versions = "*" +files = [ + {file = "distlib-0.3.9-py2.py3-none-any.whl", hash = "sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87"}, + {file = "distlib-0.3.9.tar.gz", hash = "sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403"}, +] + +[[package]] +name = "docstring-parser" +version = "0.16" +description = "Parse Python docstrings in reST, Google and Numpydoc format" +optional = false +python-versions = ">=3.6,<4.0" +files = [ + {file = "docstring_parser-0.16-py3-none-any.whl", hash = "sha256:bf0a1387354d3691d102edef7ec124f219ef639982d096e26e3b60aeffa90637"}, + {file = "docstring_parser-0.16.tar.gz", hash = "sha256:538beabd0af1e2db0146b6bd3caa526c35a34d61af9fd2887f3a8a27a739aa6e"}, +] + +[[package]] +name = "docutils" +version = "0.21.2" +description = "Docutils -- Python Documentation Utilities" +optional = false +python-versions = ">=3.9" +files = [ + {file = "docutils-0.21.2-py3-none-any.whl", hash = "sha256:dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2"}, + {file = "docutils-0.21.2.tar.gz", hash = "sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f"}, +] + +[[package]] +name = "exceptiongroup" +version = "1.2.2" +description = "Backport of PEP 654 (exception groups)" +optional = false +python-versions = ">=3.7" +files = [ + {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, + {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, +] + +[package.extras] +test = ["pytest (>=6)"] + +[[package]] +name = "fasteners" +version = "0.19" +description = "A python package that provides useful locks" +optional = false +python-versions = ">=3.6" +files = [ + {file = "fasteners-0.19-py3-none-any.whl", hash = "sha256:758819cb5d94cdedf4e836988b74de396ceacb8e2794d21f82d131fd9ee77237"}, + {file = "fasteners-0.19.tar.gz", hash = "sha256:b4f37c3ac52d8a445af3a66bce57b33b5e90b97c696b7b984f530cf8f0ded09c"}, +] + +[[package]] +name = "filelock" +version = "3.16.1" +description = "A platform independent file lock." +optional = false +python-versions = ">=3.8" +files = [ + {file = "filelock-3.16.1-py3-none-any.whl", hash = "sha256:2082e5703d51fbf98ea75855d9d5527e33d8ff23099bec374a134febee6946b0"}, + {file = "filelock-3.16.1.tar.gz", hash = "sha256:c249fbfcd5db47e5e2d6d62198e565475ee65e4831e2561c8e313fa7eb961435"}, +] + +[package.extras] +docs = ["furo (>=2024.8.6)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4.1)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.6.1)", "diff-cover (>=9.2)", "pytest (>=8.3.3)", "pytest-asyncio (>=0.24)", "pytest-cov (>=5)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.26.4)"] +typing = ["typing-extensions (>=4.12.2)"] + +[[package]] +name = "glymur" +version = "0.13.6" +description = "" +optional = false +python-versions = ">=3.8" +files = [ + {file = "Glymur-0.13.6-py3-none-any.whl", hash = "sha256:34347b1e0443b58c73ed3c7bc3c66cff1e5974a26e81c73d98792c438729165c"}, + {file = "Glymur-0.13.6.tar.gz", hash = "sha256:18f1f3536fd76cd7fa92de4629950bee55522bdf8a4e94706ac34226d615ac5c"}, +] + +[package.dependencies] +lxml = "*" +numpy = "*" +packaging = "*" + +[package.extras] +test = ["pillow", "pytest"] + +[[package]] +name = "identify" +version = "2.6.1" +description = "File identification library for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "identify-2.6.1-py2.py3-none-any.whl", hash = "sha256:53863bcac7caf8d2ed85bd20312ea5dcfc22226800f6d6881f232d861db5a8f0"}, + {file = "identify-2.6.1.tar.gz", hash = "sha256:91478c5fb7c3aac5ff7bf9b4344f803843dc586832d5f110d672b19aa1984c98"}, +] + +[package.extras] +license = ["ukkonen"] + +[[package]] +name = "importlib-resources" +version = "6.4.5" +description = "Read resources from Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "importlib_resources-6.4.5-py3-none-any.whl", hash = "sha256:ac29d5f956f01d5e4bb63102a5a19957f1b9175e45649977264a1416783bb717"}, + {file = "importlib_resources-6.4.5.tar.gz", hash = "sha256:980862a1d16c9e147a59603677fa2aa5fd82b87f223b6cb870695bcfce830065"}, +] + +[package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["jaraco.test (>=5.4)", "pytest (>=6,!=8.1.*)", "zipp (>=3.17)"] +type = ["pytest-mypy"] + +[[package]] +name = "iniconfig" +version = "2.0.0" +description = "brain-dead simple config-ini parsing" +optional = false +python-versions = ">=3.7" +files = [ + {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, + {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, +] + +[[package]] +name = "jinja2" +version = "3.1.4" +description = "A very fast and expressive template engine." +optional = false +python-versions = ">=3.7" +files = [ + {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, + {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, +] + +[package.dependencies] +MarkupSafe = ">=2.0" + +[package.extras] +i18n = ["Babel (>=2.7)"] + +[[package]] +name = "lxml" +version = "5.3.0" +description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API." +optional = false +python-versions = ">=3.6" +files = [ + {file = "lxml-5.3.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:dd36439be765e2dde7660212b5275641edbc813e7b24668831a5c8ac91180656"}, + {file = "lxml-5.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ae5fe5c4b525aa82b8076c1a59d642c17b6e8739ecf852522c6321852178119d"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:501d0d7e26b4d261fca8132854d845e4988097611ba2531408ec91cf3fd9d20a"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb66442c2546446944437df74379e9cf9e9db353e61301d1a0e26482f43f0dd8"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9e41506fec7a7f9405b14aa2d5c8abbb4dbbd09d88f9496958b6d00cb4d45330"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f7d4a670107d75dfe5ad080bed6c341d18c4442f9378c9f58e5851e86eb79965"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41ce1f1e2c7755abfc7e759dc34d7d05fd221723ff822947132dc934d122fe22"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:44264ecae91b30e5633013fb66f6ddd05c006d3e0e884f75ce0b4755b3e3847b"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_28_ppc64le.whl", hash = "sha256:3c174dc350d3ec52deb77f2faf05c439331d6ed5e702fc247ccb4e6b62d884b7"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_28_s390x.whl", hash = "sha256:2dfab5fa6a28a0b60a20638dc48e6343c02ea9933e3279ccb132f555a62323d8"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:b1c8c20847b9f34e98080da785bb2336ea982e7f913eed5809e5a3c872900f32"}, + {file = "lxml-5.3.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:2c86bf781b12ba417f64f3422cfc302523ac9cd1d8ae8c0f92a1c66e56ef2e86"}, + {file = "lxml-5.3.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:c162b216070f280fa7da844531169be0baf9ccb17263cf5a8bf876fcd3117fa5"}, + {file = "lxml-5.3.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:36aef61a1678cb778097b4a6eeae96a69875d51d1e8f4d4b491ab3cfb54b5a03"}, + {file = "lxml-5.3.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f65e5120863c2b266dbcc927b306c5b78e502c71edf3295dfcb9501ec96e5fc7"}, + {file = "lxml-5.3.0-cp310-cp310-win32.whl", hash = "sha256:ef0c1fe22171dd7c7c27147f2e9c3e86f8bdf473fed75f16b0c2e84a5030ce80"}, + {file = "lxml-5.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:052d99051e77a4f3e8482c65014cf6372e61b0a6f4fe9edb98503bb5364cfee3"}, + {file = "lxml-5.3.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:74bcb423462233bc5d6066e4e98b0264e7c1bed7541fff2f4e34fe6b21563c8b"}, + {file = "lxml-5.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a3d819eb6f9b8677f57f9664265d0a10dd6551d227afb4af2b9cd7bdc2ccbf18"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5b8f5db71b28b8c404956ddf79575ea77aa8b1538e8b2ef9ec877945b3f46442"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c3406b63232fc7e9b8783ab0b765d7c59e7c59ff96759d8ef9632fca27c7ee4"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2ecdd78ab768f844c7a1d4a03595038c166b609f6395e25af9b0f3f26ae1230f"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:168f2dfcfdedf611eb285efac1516c8454c8c99caf271dccda8943576b67552e"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa617107a410245b8660028a7483b68e7914304a6d4882b5ff3d2d3eb5948d8c"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:69959bd3167b993e6e710b99051265654133a98f20cec1d9b493b931942e9c16"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_28_ppc64le.whl", hash = "sha256:bd96517ef76c8654446fc3db9242d019a1bb5fe8b751ba414765d59f99210b79"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_28_s390x.whl", hash = "sha256:ab6dd83b970dc97c2d10bc71aa925b84788c7c05de30241b9e96f9b6d9ea3080"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:eec1bb8cdbba2925bedc887bc0609a80e599c75b12d87ae42ac23fd199445654"}, + {file = "lxml-5.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6a7095eeec6f89111d03dabfe5883a1fd54da319c94e0fb104ee8f23616b572d"}, + {file = "lxml-5.3.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:6f651ebd0b21ec65dfca93aa629610a0dbc13dbc13554f19b0113da2e61a4763"}, + {file = "lxml-5.3.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:f422a209d2455c56849442ae42f25dbaaba1c6c3f501d58761c619c7836642ec"}, + {file = "lxml-5.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:62f7fdb0d1ed2065451f086519865b4c90aa19aed51081979ecd05a21eb4d1be"}, + {file = "lxml-5.3.0-cp311-cp311-win32.whl", hash = "sha256:c6379f35350b655fd817cd0d6cbeef7f265f3ae5fedb1caae2eb442bbeae9ab9"}, + {file = "lxml-5.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:9c52100e2c2dbb0649b90467935c4b0de5528833c76a35ea1a2691ec9f1ee7a1"}, + {file = "lxml-5.3.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:e99f5507401436fdcc85036a2e7dc2e28d962550afe1cbfc07c40e454256a859"}, + {file = "lxml-5.3.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:384aacddf2e5813a36495233b64cb96b1949da72bef933918ba5c84e06af8f0e"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:874a216bf6afaf97c263b56371434e47e2c652d215788396f60477540298218f"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:65ab5685d56914b9a2a34d67dd5488b83213d680b0c5d10b47f81da5a16b0b0e"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aac0bbd3e8dd2d9c45ceb82249e8bdd3ac99131a32b4d35c8af3cc9db1657179"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b369d3db3c22ed14c75ccd5af429086f166a19627e84a8fdade3f8f31426e52a"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c24037349665434f375645fa9d1f5304800cec574d0310f618490c871fd902b3"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:62d172f358f33a26d6b41b28c170c63886742f5b6772a42b59b4f0fa10526cb1"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_28_ppc64le.whl", hash = "sha256:c1f794c02903c2824fccce5b20c339a1a14b114e83b306ff11b597c5f71a1c8d"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_28_s390x.whl", hash = "sha256:5d6a6972b93c426ace71e0be9a6f4b2cfae9b1baed2eed2006076a746692288c"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:3879cc6ce938ff4eb4900d901ed63555c778731a96365e53fadb36437a131a99"}, + {file = "lxml-5.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:74068c601baff6ff021c70f0935b0c7bc528baa8ea210c202e03757c68c5a4ff"}, + {file = "lxml-5.3.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:ecd4ad8453ac17bc7ba3868371bffb46f628161ad0eefbd0a855d2c8c32dd81a"}, + {file = "lxml-5.3.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:7e2f58095acc211eb9d8b5771bf04df9ff37d6b87618d1cbf85f92399c98dae8"}, + {file = "lxml-5.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e63601ad5cd8f860aa99d109889b5ac34de571c7ee902d6812d5d9ddcc77fa7d"}, + {file = "lxml-5.3.0-cp312-cp312-win32.whl", hash = "sha256:17e8d968d04a37c50ad9c456a286b525d78c4a1c15dd53aa46c1d8e06bf6fa30"}, + {file = "lxml-5.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:c1a69e58a6bb2de65902051d57fde951febad631a20a64572677a1052690482f"}, + {file = "lxml-5.3.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8c72e9563347c7395910de6a3100a4840a75a6f60e05af5e58566868d5eb2d6a"}, + {file = "lxml-5.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e92ce66cd919d18d14b3856906a61d3f6b6a8500e0794142338da644260595cd"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d04f064bebdfef9240478f7a779e8c5dc32b8b7b0b2fc6a62e39b928d428e51"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c2fb570d7823c2bbaf8b419ba6e5662137f8166e364a8b2b91051a1fb40ab8b"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0c120f43553ec759f8de1fee2f4794452b0946773299d44c36bfe18e83caf002"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:562e7494778a69086f0312ec9689f6b6ac1c6b65670ed7d0267e49f57ffa08c4"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:423b121f7e6fa514ba0c7918e56955a1d4470ed35faa03e3d9f0e3baa4c7e492"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:c00f323cc00576df6165cc9d21a4c21285fa6b9989c5c39830c3903dc4303ef3"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_28_ppc64le.whl", hash = "sha256:1fdc9fae8dd4c763e8a31e7630afef517eab9f5d5d31a278df087f307bf601f4"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_28_s390x.whl", hash = "sha256:658f2aa69d31e09699705949b5fc4719cbecbd4a97f9656a232e7d6c7be1a367"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:1473427aff3d66a3fa2199004c3e601e6c4500ab86696edffdbc84954c72d832"}, + {file = "lxml-5.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a87de7dd873bf9a792bf1e58b1c3887b9264036629a5bf2d2e6579fe8e73edff"}, + {file = "lxml-5.3.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:0d7b36afa46c97875303a94e8f3ad932bf78bace9e18e603f2085b652422edcd"}, + {file = "lxml-5.3.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:cf120cce539453ae086eacc0130a324e7026113510efa83ab42ef3fcfccac7fb"}, + {file = "lxml-5.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:df5c7333167b9674aa8ae1d4008fa4bc17a313cc490b2cca27838bbdcc6bb15b"}, + {file = "lxml-5.3.0-cp313-cp313-win32.whl", hash = "sha256:c802e1c2ed9f0c06a65bc4ed0189d000ada8049312cfeab6ca635e39c9608957"}, + {file = "lxml-5.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:406246b96d552e0503e17a1006fd27edac678b3fcc9f1be71a2f94b4ff61528d"}, + {file = "lxml-5.3.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:8f0de2d390af441fe8b2c12626d103540b5d850d585b18fcada58d972b74a74e"}, + {file = "lxml-5.3.0-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1afe0a8c353746e610bd9031a630a95bcfb1a720684c3f2b36c4710a0a96528f"}, + {file = "lxml-5.3.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56b9861a71575f5795bde89256e7467ece3d339c9b43141dbdd54544566b3b94"}, + {file = "lxml-5.3.0-cp36-cp36m-manylinux_2_28_x86_64.whl", hash = "sha256:9fb81d2824dff4f2e297a276297e9031f46d2682cafc484f49de182aa5e5df99"}, + {file = "lxml-5.3.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:2c226a06ecb8cdef28845ae976da407917542c5e6e75dcac7cc33eb04aaeb237"}, + {file = "lxml-5.3.0-cp36-cp36m-musllinux_1_2_x86_64.whl", hash = "sha256:7d3d1ca42870cdb6d0d29939630dbe48fa511c203724820fc0fd507b2fb46577"}, + {file = "lxml-5.3.0-cp36-cp36m-win32.whl", hash = "sha256:094cb601ba9f55296774c2d57ad68730daa0b13dc260e1f941b4d13678239e70"}, + {file = "lxml-5.3.0-cp36-cp36m-win_amd64.whl", hash = "sha256:eafa2c8658f4e560b098fe9fc54539f86528651f61849b22111a9b107d18910c"}, + {file = "lxml-5.3.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:cb83f8a875b3d9b458cada4f880fa498646874ba4011dc974e071a0a84a1b033"}, + {file = "lxml-5.3.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:25f1b69d41656b05885aa185f5fdf822cb01a586d1b32739633679699f220391"}, + {file = "lxml-5.3.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23e0553b8055600b3bf4a00b255ec5c92e1e4aebf8c2c09334f8368e8bd174d6"}, + {file = "lxml-5.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ada35dd21dc6c039259596b358caab6b13f4db4d4a7f8665764d616daf9cc1d"}, + {file = "lxml-5.3.0-cp37-cp37m-manylinux_2_28_aarch64.whl", hash = "sha256:81b4e48da4c69313192d8c8d4311e5d818b8be1afe68ee20f6385d0e96fc9512"}, + {file = "lxml-5.3.0-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:2bc9fd5ca4729af796f9f59cd8ff160fe06a474da40aca03fcc79655ddee1a8b"}, + {file = "lxml-5.3.0-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:07da23d7ee08577760f0a71d67a861019103e4812c87e2fab26b039054594cc5"}, + {file = "lxml-5.3.0-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:ea2e2f6f801696ad7de8aec061044d6c8c0dd4037608c7cab38a9a4d316bfb11"}, + {file = "lxml-5.3.0-cp37-cp37m-win32.whl", hash = "sha256:5c54afdcbb0182d06836cc3d1be921e540be3ebdf8b8a51ee3ef987537455f84"}, + {file = "lxml-5.3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:f2901429da1e645ce548bf9171784c0f74f0718c3f6150ce166be39e4dd66c3e"}, + {file = "lxml-5.3.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c56a1d43b2f9ee4786e4658c7903f05da35b923fb53c11025712562d5cc02753"}, + {file = "lxml-5.3.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ee8c39582d2652dcd516d1b879451500f8db3fe3607ce45d7c5957ab2596040"}, + {file = "lxml-5.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fdf3a3059611f7585a78ee10399a15566356116a4288380921a4b598d807a22"}, + {file = "lxml-5.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:146173654d79eb1fc97498b4280c1d3e1e5d58c398fa530905c9ea50ea849b22"}, + {file = "lxml-5.3.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:0a7056921edbdd7560746f4221dca89bb7a3fe457d3d74267995253f46343f15"}, + {file = "lxml-5.3.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:9e4b47ac0f5e749cfc618efdf4726269441014ae1d5583e047b452a32e221920"}, + {file = "lxml-5.3.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:f914c03e6a31deb632e2daa881fe198461f4d06e57ac3d0e05bbcab8eae01945"}, + {file = "lxml-5.3.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:213261f168c5e1d9b7535a67e68b1f59f92398dd17a56d934550837143f79c42"}, + {file = "lxml-5.3.0-cp38-cp38-win32.whl", hash = "sha256:218c1b2e17a710e363855594230f44060e2025b05c80d1f0661258142b2add2e"}, + {file = "lxml-5.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:315f9542011b2c4e1d280e4a20ddcca1761993dda3afc7a73b01235f8641e903"}, + {file = "lxml-5.3.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:1ffc23010330c2ab67fac02781df60998ca8fe759e8efde6f8b756a20599c5de"}, + {file = "lxml-5.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2b3778cb38212f52fac9fe913017deea2fdf4eb1a4f8e4cfc6b009a13a6d3fcc"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4b0c7a688944891086ba192e21c5229dea54382f4836a209ff8d0a660fac06be"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:747a3d3e98e24597981ca0be0fd922aebd471fa99d0043a3842d00cdcad7ad6a"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:86a6b24b19eaebc448dc56b87c4865527855145d851f9fc3891673ff97950540"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b11a5d918a6216e521c715b02749240fb07ae5a1fefd4b7bf12f833bc8b4fe70"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68b87753c784d6acb8a25b05cb526c3406913c9d988d51f80adecc2b0775d6aa"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:109fa6fede314cc50eed29e6e56c540075e63d922455346f11e4d7a036d2b8cf"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_28_ppc64le.whl", hash = "sha256:02ced472497b8362c8e902ade23e3300479f4f43e45f4105c85ef43b8db85229"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_28_s390x.whl", hash = "sha256:6b038cc86b285e4f9fea2ba5ee76e89f21ed1ea898e287dc277a25884f3a7dfe"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:7437237c6a66b7ca341e868cda48be24b8701862757426852c9b3186de1da8a2"}, + {file = "lxml-5.3.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:7f41026c1d64043a36fda21d64c5026762d53a77043e73e94b71f0521939cc71"}, + {file = "lxml-5.3.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:482c2f67761868f0108b1743098640fbb2a28a8e15bf3f47ada9fa59d9fe08c3"}, + {file = "lxml-5.3.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:1483fd3358963cc5c1c9b122c80606a3a79ee0875bcac0204149fa09d6ff2727"}, + {file = "lxml-5.3.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:2dec2d1130a9cda5b904696cec33b2cfb451304ba9081eeda7f90f724097300a"}, + {file = "lxml-5.3.0-cp39-cp39-win32.whl", hash = "sha256:a0eabd0a81625049c5df745209dc7fcef6e2aea7793e5f003ba363610aa0a3ff"}, + {file = "lxml-5.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:89e043f1d9d341c52bf2af6d02e6adde62e0a46e6755d5eb60dc6e4f0b8aeca2"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7b1cd427cb0d5f7393c31b7496419da594fe600e6fdc4b105a54f82405e6626c"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:51806cfe0279e06ed8500ce19479d757db42a30fd509940b1701be9c86a5ff9a"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ee70d08fd60c9565ba8190f41a46a54096afa0eeb8f76bd66f2c25d3b1b83005"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:8dc2c0395bea8254d8daebc76dcf8eb3a95ec2a46fa6fae5eaccee366bfe02ce"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:6ba0d3dcac281aad8a0e5b14c7ed6f9fa89c8612b47939fc94f80b16e2e9bc83"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:6e91cf736959057f7aac7adfc83481e03615a8e8dd5758aa1d95ea69e8931dba"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:94d6c3782907b5e40e21cadf94b13b0842ac421192f26b84c45f13f3c9d5dc27"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c300306673aa0f3ed5ed9372b21867690a17dba38c68c44b287437c362ce486b"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78d9b952e07aed35fe2e1a7ad26e929595412db48535921c5013edc8aa4a35ce"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:01220dca0d066d1349bd6a1726856a78f7929f3878f7e2ee83c296c69495309e"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:2d9b8d9177afaef80c53c0a9e30fa252ff3036fb1c6494d427c066a4ce6a282f"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:20094fc3f21ea0a8669dc4c61ed7fa8263bd37d97d93b90f28fc613371e7a875"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ace2c2326a319a0bb8a8b0e5b570c764962e95818de9f259ce814ee666603f19"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:92e67a0be1639c251d21e35fe74df6bcc40cba445c2cda7c4a967656733249e2"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd5350b55f9fecddc51385463a4f67a5da829bc741e38cf689f38ec9023f54ab"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:4c1fefd7e3d00921c44dc9ca80a775af49698bbfd92ea84498e56acffd4c5469"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:71a8dd38fbd2f2319136d4ae855a7078c69c9a38ae06e0c17c73fd70fc6caad8"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:97acf1e1fd66ab53dacd2c35b319d7e548380c2e9e8c54525c6e76d21b1ae3b1"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:68934b242c51eb02907c5b81d138cb977b2129a0a75a8f8b60b01cb8586c7b21"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b710bc2b8292966b23a6a0121f7a6c51d45d2347edcc75f016ac123b8054d3f2"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18feb4b93302091b1541221196a2155aa296c363fd233814fa11e181adebc52f"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:3eb44520c4724c2e1a57c0af33a379eee41792595023f367ba3952a2d96c2aab"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:609251a0ca4770e5a8768ff902aa02bf636339c5a93f9349b48eb1f606f7f3e9"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:516f491c834eb320d6c843156440fe7fc0d50b33e44387fcec5b02f0bc118a4c"}, + {file = "lxml-5.3.0.tar.gz", hash = "sha256:4e109ca30d1edec1ac60cdbe341905dc3b8f55b16855e03a54aaf59e51ec8c6f"}, +] + +[package.extras] +cssselect = ["cssselect (>=0.7)"] +html-clean = ["lxml-html-clean"] +html5 = ["html5lib"] +htmlsoup = ["BeautifulSoup4"] +source = ["Cython (>=3.0.11)"] + +[[package]] +name = "markdown-it-py" +version = "3.0.0" +description = "Python port of markdown-it. Markdown parsing, done right!" +optional = false +python-versions = ">=3.8" +files = [ + {file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"}, + {file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"}, +] + +[package.dependencies] +mdurl = ">=0.1,<1.0" + +[package.extras] +benchmarking = ["psutil", "pytest", "pytest-benchmark"] +code-style = ["pre-commit (>=3.0,<4.0)"] +compare = ["commonmark (>=0.9,<1.0)", "markdown (>=3.4,<4.0)", "mistletoe (>=1.0,<2.0)", "mistune (>=2.0,<3.0)", "panflute (>=2.3,<3.0)"] +linkify = ["linkify-it-py (>=1,<3)"] +plugins = ["mdit-py-plugins"] +profiling = ["gprof2dot"] +rtd = ["jupyter_sphinx", "mdit-py-plugins", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] + +[[package]] +name = "markupsafe" +version = "3.0.2" +description = "Safely add untrusted strings to HTML/XML markup." +optional = false +python-versions = ">=3.9" +files = [ + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a"}, + {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"}, +] + +[[package]] +name = "mdurl" +version = "0.1.2" +description = "Markdown URL utilities" +optional = false +python-versions = ">=3.7" +files = [ + {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, + {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, +] + +[[package]] +name = "mypy" +version = "1.13.0" +description = "Optional static typing for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "mypy-1.13.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6607e0f1dd1fb7f0aca14d936d13fd19eba5e17e1cd2a14f808fa5f8f6d8f60a"}, + {file = "mypy-1.13.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8a21be69bd26fa81b1f80a61ee7ab05b076c674d9b18fb56239d72e21d9f4c80"}, + {file = "mypy-1.13.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7b2353a44d2179846a096e25691d54d59904559f4232519d420d64da6828a3a7"}, + {file = "mypy-1.13.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0730d1c6a2739d4511dc4253f8274cdd140c55c32dfb0a4cf8b7a43f40abfa6f"}, + {file = "mypy-1.13.0-cp310-cp310-win_amd64.whl", hash = "sha256:c5fc54dbb712ff5e5a0fca797e6e0aa25726c7e72c6a5850cfd2adbc1eb0a372"}, + {file = "mypy-1.13.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:581665e6f3a8a9078f28d5502f4c334c0c8d802ef55ea0e7276a6e409bc0d82d"}, + {file = "mypy-1.13.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3ddb5b9bf82e05cc9a627e84707b528e5c7caaa1c55c69e175abb15a761cec2d"}, + {file = "mypy-1.13.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:20c7ee0bc0d5a9595c46f38beb04201f2620065a93755704e141fcac9f59db2b"}, + {file = "mypy-1.13.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3790ded76f0b34bc9c8ba4def8f919dd6a46db0f5a6610fb994fe8efdd447f73"}, + {file = "mypy-1.13.0-cp311-cp311-win_amd64.whl", hash = "sha256:51f869f4b6b538229c1d1bcc1dd7d119817206e2bc54e8e374b3dfa202defcca"}, + {file = "mypy-1.13.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:5c7051a3461ae84dfb5dd15eff5094640c61c5f22257c8b766794e6dd85e72d5"}, + {file = "mypy-1.13.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:39bb21c69a5d6342f4ce526e4584bc5c197fd20a60d14a8624d8743fffb9472e"}, + {file = "mypy-1.13.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:164f28cb9d6367439031f4c81e84d3ccaa1e19232d9d05d37cb0bd880d3f93c2"}, + {file = "mypy-1.13.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a4c1bfcdbce96ff5d96fc9b08e3831acb30dc44ab02671eca5953eadad07d6d0"}, + {file = "mypy-1.13.0-cp312-cp312-win_amd64.whl", hash = "sha256:a0affb3a79a256b4183ba09811e3577c5163ed06685e4d4b46429a271ba174d2"}, + {file = "mypy-1.13.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a7b44178c9760ce1a43f544e595d35ed61ac2c3de306599fa59b38a6048e1aa7"}, + {file = "mypy-1.13.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5d5092efb8516d08440e36626f0153b5006d4088c1d663d88bf79625af3d1d62"}, + {file = "mypy-1.13.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:de2904956dac40ced10931ac967ae63c5089bd498542194b436eb097a9f77bc8"}, + {file = "mypy-1.13.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:7bfd8836970d33c2105562650656b6846149374dc8ed77d98424b40b09340ba7"}, + {file = "mypy-1.13.0-cp313-cp313-win_amd64.whl", hash = "sha256:9f73dba9ec77acb86457a8fc04b5239822df0c14a082564737833d2963677dbc"}, + {file = "mypy-1.13.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:100fac22ce82925f676a734af0db922ecfea991e1d7ec0ceb1e115ebe501301a"}, + {file = "mypy-1.13.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7bcb0bb7f42a978bb323a7c88f1081d1b5dee77ca86f4100735a6f541299d8fb"}, + {file = "mypy-1.13.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bde31fc887c213e223bbfc34328070996061b0833b0a4cfec53745ed61f3519b"}, + {file = "mypy-1.13.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:07de989f89786f62b937851295ed62e51774722e5444a27cecca993fc3f9cd74"}, + {file = "mypy-1.13.0-cp38-cp38-win_amd64.whl", hash = "sha256:4bde84334fbe19bad704b3f5b78c4abd35ff1026f8ba72b29de70dda0916beb6"}, + {file = "mypy-1.13.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0246bcb1b5de7f08f2826451abd947bf656945209b140d16ed317f65a17dc7dc"}, + {file = "mypy-1.13.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7f5b7deae912cf8b77e990b9280f170381fdfbddf61b4ef80927edd813163732"}, + {file = "mypy-1.13.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7029881ec6ffb8bc233a4fa364736789582c738217b133f1b55967115288a2bc"}, + {file = "mypy-1.13.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:3e38b980e5681f28f033f3be86b099a247b13c491f14bb8b1e1e134d23bb599d"}, + {file = "mypy-1.13.0-cp39-cp39-win_amd64.whl", hash = "sha256:a6789be98a2017c912ae6ccb77ea553bbaf13d27605d2ca20a76dfbced631b24"}, + {file = "mypy-1.13.0-py3-none-any.whl", hash = "sha256:9c250883f9fd81d212e0952c92dbfcc96fc237f4b7c92f56ac81fd48460b3e5a"}, + {file = "mypy-1.13.0.tar.gz", hash = "sha256:0291a61b6fbf3e6673e3405cfcc0e7650bebc7939659fdca2702958038bd835e"}, +] + +[package.dependencies] +mypy-extensions = ">=1.0.0" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +typing-extensions = ">=4.6.0" + +[package.extras] +dmypy = ["psutil (>=4.0)"] +faster-cache = ["orjson"] +install-types = ["pip"] +mypyc = ["setuptools (>=50)"] +reports = ["lxml"] + +[[package]] +name = "mypy-extensions" +version = "1.0.0" +description = "Type system extensions for programs checked with the mypy type checker." +optional = false +python-versions = ">=3.5" +files = [ + {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, + {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, +] + +[[package]] +name = "nibabel" +version = "5.3.2" +description = "Access a multitude of neuroimaging data formats" +optional = false +python-versions = ">=3.9" +files = [ + {file = "nibabel-5.3.2-py3-none-any.whl", hash = "sha256:52970a5a8a53b1b55249cba4d9bcfaa8cc57e3e5af35a29d7352237e8680a6f8"}, + {file = "nibabel-5.3.2.tar.gz", hash = "sha256:0bdca6503b1c784b446c745a4542367de7756cfba0d72143b91f9ffb78be569b"}, +] + +[package.dependencies] +importlib-resources = {version = ">=5.12", markers = "python_version < \"3.12\""} +numpy = ">=1.22" +packaging = ">=20" +typing-extensions = {version = ">=4.6", markers = "python_version < \"3.13\""} + +[package.extras] +all = ["h5py", "pillow", "pydicom (>=2.3)", "pyzstd (>=0.14.3)", "scipy"] +dev = ["tox"] +dicom = ["pydicom (>=2.3)"] +dicomfs = ["pillow", "pydicom (>=2.3)"] +doc = ["matplotlib (>=3.5)", "numpydoc", "sphinx", "texext", "tomli"] +doctest = ["tox"] +minc2 = ["h5py"] +spm = ["scipy"] +style = ["tox"] +test = ["coverage (>=7.2)", "pytest", "pytest-cov", "pytest-doctestplus", "pytest-httpserver", "pytest-xdist"] +typing = ["tox"] +zstd = ["pyzstd (>=0.14.3)"] + +[[package]] +name = "nodeenv" +version = "1.9.1" +description = "Node.js virtual environment builder" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9"}, + {file = "nodeenv-1.9.1.tar.gz", hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f"}, +] + +[[package]] +name = "numcodecs" +version = "0.13.1" +description = "A Python package providing buffer compression and transformation codecs for use in data storage and communication applications." +optional = false +python-versions = ">=3.10" +files = [ + {file = "numcodecs-0.13.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:96add4f783c5ce57cc7e650b6cac79dd101daf887c479a00a29bc1487ced180b"}, + {file = "numcodecs-0.13.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:237b7171609e868a20fd313748494444458ccd696062f67e198f7f8f52000c15"}, + {file = "numcodecs-0.13.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:96e42f73c31b8c24259c5fac6adba0c3ebf95536e37749dc6c62ade2989dca28"}, + {file = "numcodecs-0.13.1-cp310-cp310-win_amd64.whl", hash = "sha256:eda7d7823c9282e65234731fd6bd3986b1f9e035755f7fed248d7d366bb291ab"}, + {file = "numcodecs-0.13.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2eda97dd2f90add98df6d295f2c6ae846043396e3d51a739ca5db6c03b5eb666"}, + {file = "numcodecs-0.13.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2a86f5367af9168e30f99727ff03b27d849c31ad4522060dde0bce2923b3a8bc"}, + {file = "numcodecs-0.13.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:233bc7f26abce24d57e44ea8ebeb5cd17084690b4e7409dd470fdb75528d615f"}, + {file = "numcodecs-0.13.1-cp311-cp311-win_amd64.whl", hash = "sha256:796b3e6740107e4fa624cc636248a1580138b3f1c579160f260f76ff13a4261b"}, + {file = "numcodecs-0.13.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:5195bea384a6428f8afcece793860b1ab0ae28143c853f0b2b20d55a8947c917"}, + {file = "numcodecs-0.13.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3501a848adaddce98a71a262fee15cd3618312692aa419da77acd18af4a6a3f6"}, + {file = "numcodecs-0.13.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da2230484e6102e5fa3cc1a5dd37ca1f92dfbd183d91662074d6f7574e3e8f53"}, + {file = "numcodecs-0.13.1-cp312-cp312-win_amd64.whl", hash = "sha256:e5db4824ebd5389ea30e54bc8aeccb82d514d28b6b68da6c536b8fa4596f4bca"}, + {file = "numcodecs-0.13.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7a60d75179fd6692e301ddfb3b266d51eb598606dcae7b9fc57f986e8d65cb43"}, + {file = "numcodecs-0.13.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3f593c7506b0ab248961a3b13cb148cc6e8355662ff124ac591822310bc55ecf"}, + {file = "numcodecs-0.13.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80d3071465f03522e776a31045ddf2cfee7f52df468b977ed3afdd7fe5869701"}, + {file = "numcodecs-0.13.1-cp313-cp313-win_amd64.whl", hash = "sha256:90d3065ae74c9342048ae0046006f99dcb1388b7288da5a19b3bddf9c30c3176"}, + {file = "numcodecs-0.13.1.tar.gz", hash = "sha256:a3cf37881df0898f3a9c0d4477df88133fe85185bffe57ba31bcc2fa207709bc"}, +] + +[package.dependencies] +numpy = ">=1.7" + +[package.extras] +docs = ["mock", "numpydoc", "pydata-sphinx-theme", "sphinx", "sphinx-issues"] +msgpack = ["msgpack"] +pcodec = ["pcodec (>=0.2.0)"] +test = ["coverage", "pytest", "pytest-cov"] +test-extras = ["importlib-metadata"] +zfpy = ["numpy (<2.0.0)", "zfpy (>=1.0.0)"] + +[[package]] +name = "numpy" +version = "2.1.3" +description = "Fundamental package for array computing in Python" +optional = false +python-versions = ">=3.10" +files = [ + {file = "numpy-2.1.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c894b4305373b9c5576d7a12b473702afdf48ce5369c074ba304cc5ad8730dff"}, + {file = "numpy-2.1.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b47fbb433d3260adcd51eb54f92a2ffbc90a4595f8970ee00e064c644ac788f5"}, + {file = "numpy-2.1.3-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:825656d0743699c529c5943554d223c021ff0494ff1442152ce887ef4f7561a1"}, + {file = "numpy-2.1.3-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:6a4825252fcc430a182ac4dee5a505053d262c807f8a924603d411f6718b88fd"}, + {file = "numpy-2.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e711e02f49e176a01d0349d82cb5f05ba4db7d5e7e0defd026328e5cfb3226d3"}, + {file = "numpy-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78574ac2d1a4a02421f25da9559850d59457bac82f2b8d7a44fe83a64f770098"}, + {file = "numpy-2.1.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c7662f0e3673fe4e832fe07b65c50342ea27d989f92c80355658c7f888fcc83c"}, + {file = "numpy-2.1.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:fa2d1337dc61c8dc417fbccf20f6d1e139896a30721b7f1e832b2bb6ef4eb6c4"}, + {file = "numpy-2.1.3-cp310-cp310-win32.whl", hash = "sha256:72dcc4a35a8515d83e76b58fdf8113a5c969ccd505c8a946759b24e3182d1f23"}, + {file = "numpy-2.1.3-cp310-cp310-win_amd64.whl", hash = "sha256:ecc76a9ba2911d8d37ac01de72834d8849e55473457558e12995f4cd53e778e0"}, + {file = "numpy-2.1.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4d1167c53b93f1f5d8a139a742b3c6f4d429b54e74e6b57d0eff40045187b15d"}, + {file = "numpy-2.1.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c80e4a09b3d95b4e1cac08643f1152fa71a0a821a2d4277334c88d54b2219a41"}, + {file = "numpy-2.1.3-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:576a1c1d25e9e02ed7fa5477f30a127fe56debd53b8d2c89d5578f9857d03ca9"}, + {file = "numpy-2.1.3-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:973faafebaae4c0aaa1a1ca1ce02434554d67e628b8d805e61f874b84e136b09"}, + {file = "numpy-2.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:762479be47a4863e261a840e8e01608d124ee1361e48b96916f38b119cfda04a"}, + {file = "numpy-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc6f24b3d1ecc1eebfbf5d6051faa49af40b03be1aaa781ebdadcbc090b4539b"}, + {file = "numpy-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:17ee83a1f4fef3c94d16dc1802b998668b5419362c8a4f4e8a491de1b41cc3ee"}, + {file = "numpy-2.1.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:15cb89f39fa6d0bdfb600ea24b250e5f1a3df23f901f51c8debaa6a5d122b2f0"}, + {file = "numpy-2.1.3-cp311-cp311-win32.whl", hash = "sha256:d9beb777a78c331580705326d2367488d5bc473b49a9bc3036c154832520aca9"}, + {file = "numpy-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:d89dd2b6da69c4fff5e39c28a382199ddedc3a5be5390115608345dec660b9e2"}, + {file = "numpy-2.1.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f55ba01150f52b1027829b50d70ef1dafd9821ea82905b63936668403c3b471e"}, + {file = "numpy-2.1.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:13138eadd4f4da03074851a698ffa7e405f41a0845a6b1ad135b81596e4e9958"}, + {file = "numpy-2.1.3-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:a6b46587b14b888e95e4a24d7b13ae91fa22386c199ee7b418f449032b2fa3b8"}, + {file = "numpy-2.1.3-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:0fa14563cc46422e99daef53d725d0c326e99e468a9320a240affffe87852564"}, + {file = "numpy-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8637dcd2caa676e475503d1f8fdb327bc495554e10838019651b76d17b98e512"}, + {file = "numpy-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2312b2aa89e1f43ecea6da6ea9a810d06aae08321609d8dc0d0eda6d946a541b"}, + {file = "numpy-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a38c19106902bb19351b83802531fea19dee18e5b37b36454f27f11ff956f7fc"}, + {file = "numpy-2.1.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:02135ade8b8a84011cbb67dc44e07c58f28575cf9ecf8ab304e51c05528c19f0"}, + {file = "numpy-2.1.3-cp312-cp312-win32.whl", hash = "sha256:e6988e90fcf617da2b5c78902fe8e668361b43b4fe26dbf2d7b0f8034d4cafb9"}, + {file = "numpy-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:0d30c543f02e84e92c4b1f415b7c6b5326cbe45ee7882b6b77db7195fb971e3a"}, + {file = "numpy-2.1.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:96fe52fcdb9345b7cd82ecd34547fca4321f7656d500eca497eb7ea5a926692f"}, + {file = "numpy-2.1.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f653490b33e9c3a4c1c01d41bc2aef08f9475af51146e4a7710c450cf9761598"}, + {file = "numpy-2.1.3-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:dc258a761a16daa791081d026f0ed4399b582712e6fc887a95af09df10c5ca57"}, + {file = "numpy-2.1.3-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:016d0f6f5e77b0f0d45d77387ffa4bb89816b57c835580c3ce8e099ef830befe"}, + {file = "numpy-2.1.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c181ba05ce8299c7aa3125c27b9c2167bca4a4445b7ce73d5febc411ca692e43"}, + {file = "numpy-2.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5641516794ca9e5f8a4d17bb45446998c6554704d888f86df9b200e66bdcce56"}, + {file = "numpy-2.1.3-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ea4dedd6e394a9c180b33c2c872b92f7ce0f8e7ad93e9585312b0c5a04777a4a"}, + {file = "numpy-2.1.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b0df3635b9c8ef48bd3be5f862cf71b0a4716fa0e702155c45067c6b711ddcef"}, + {file = "numpy-2.1.3-cp313-cp313-win32.whl", hash = "sha256:50ca6aba6e163363f132b5c101ba078b8cbd3fa92c7865fd7d4d62d9779ac29f"}, + {file = "numpy-2.1.3-cp313-cp313-win_amd64.whl", hash = "sha256:747641635d3d44bcb380d950679462fae44f54b131be347d5ec2bce47d3df9ed"}, + {file = "numpy-2.1.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:996bb9399059c5b82f76b53ff8bb686069c05acc94656bb259b1d63d04a9506f"}, + {file = "numpy-2.1.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:45966d859916ad02b779706bb43b954281db43e185015df6eb3323120188f9e4"}, + {file = "numpy-2.1.3-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:baed7e8d7481bfe0874b566850cb0b85243e982388b7b23348c6db2ee2b2ae8e"}, + {file = "numpy-2.1.3-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:a9f7f672a3388133335589cfca93ed468509cb7b93ba3105fce780d04a6576a0"}, + {file = "numpy-2.1.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7aac50327da5d208db2eec22eb11e491e3fe13d22653dce51b0f4109101b408"}, + {file = "numpy-2.1.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4394bc0dbd074b7f9b52024832d16e019decebf86caf909d94f6b3f77a8ee3b6"}, + {file = "numpy-2.1.3-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:50d18c4358a0a8a53f12a8ba9d772ab2d460321e6a93d6064fc22443d189853f"}, + {file = "numpy-2.1.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:14e253bd43fc6b37af4921b10f6add6925878a42a0c5fe83daee390bca80bc17"}, + {file = "numpy-2.1.3-cp313-cp313t-win32.whl", hash = "sha256:08788d27a5fd867a663f6fc753fd7c3ad7e92747efc73c53bca2f19f8bc06f48"}, + {file = "numpy-2.1.3-cp313-cp313t-win_amd64.whl", hash = "sha256:2564fbdf2b99b3f815f2107c1bbc93e2de8ee655a69c261363a1172a79a257d4"}, + {file = "numpy-2.1.3-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:4f2015dfe437dfebbfce7c85c7b53d81ba49e71ba7eadbf1df40c915af75979f"}, + {file = "numpy-2.1.3-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:3522b0dfe983a575e6a9ab3a4a4dfe156c3e428468ff08ce582b9bb6bd1d71d4"}, + {file = "numpy-2.1.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c006b607a865b07cd981ccb218a04fc86b600411d83d6fc261357f1c0966755d"}, + {file = "numpy-2.1.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:e14e26956e6f1696070788252dcdff11b4aca4c3e8bd166e0df1bb8f315a67cb"}, + {file = "numpy-2.1.3.tar.gz", hash = "sha256:aa08e04e08aaf974d4458def539dece0d28146d866a39da5639596f4921fd761"}, +] + +[[package]] +name = "packaging" +version = "24.1" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"}, + {file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"}, +] + +[[package]] +name = "pdoc" +version = "14.7.0" +description = "API Documentation for Python Projects" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pdoc-14.7.0-py3-none-any.whl", hash = "sha256:72377a907efc6b2c5b3c56b717ef34f11d93621dced3b663f3aede0b844c0ad2"}, + {file = "pdoc-14.7.0.tar.gz", hash = "sha256:2d28af9c0acc39180744ad0543e4bbc3223ecba0d1302db315ec521c51f71f93"}, +] + +[package.dependencies] +Jinja2 = ">=2.11.0" +MarkupSafe = "*" +pygments = ">=2.12.0" + +[package.extras] +dev = ["hypothesis", "mypy", "pdoc-pyo3-sample-library (==1.0.11)", "pygments (>=2.14.0)", "pytest", "pytest-cov", "pytest-timeout", "ruff", "tox", "types-pygments"] + +[[package]] +name = "platformdirs" +version = "4.3.6" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." +optional = false +python-versions = ">=3.8" +files = [ + {file = "platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"}, + {file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"}, +] + +[package.extras] +docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.2)", "pytest-cov (>=5)", "pytest-mock (>=3.14)"] +type = ["mypy (>=1.11.2)"] + +[[package]] +name = "pluggy" +version = "1.5.0" +description = "plugin and hook calling mechanisms for python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, + {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, +] + +[package.extras] +dev = ["pre-commit", "tox"] +testing = ["pytest", "pytest-benchmark"] + +[[package]] +name = "pre-commit" +version = "3.8.0" +description = "A framework for managing and maintaining multi-language pre-commit hooks." +optional = false +python-versions = ">=3.9" +files = [ + {file = "pre_commit-3.8.0-py2.py3-none-any.whl", hash = "sha256:9a90a53bf82fdd8778d58085faf8d83df56e40dfe18f45b19446e26bf1b3a63f"}, + {file = "pre_commit-3.8.0.tar.gz", hash = "sha256:8bb6494d4a20423842e198980c9ecf9f96607a07ea29549e180eef9ae80fe7af"}, +] + +[package.dependencies] +cfgv = ">=2.0.0" +identify = ">=1.0.0" +nodeenv = ">=0.11.1" +pyyaml = ">=5.1" +virtualenv = ">=20.10.0" + +[[package]] +name = "pygments" +version = "2.18.0" +description = "Pygments is a syntax highlighting package written in Python." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"}, + {file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"}, +] + +[package.extras] +windows-terminal = ["colorama (>=0.4.6)"] + +[[package]] +name = "pytest" +version = "8.3.3" +description = "pytest: simple powerful testing with Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pytest-8.3.3-py3-none-any.whl", hash = "sha256:a6853c7375b2663155079443d2e45de913a911a11d669df02a50814944db57b2"}, + {file = "pytest-8.3.3.tar.gz", hash = "sha256:70b98107bd648308a7952b06e6ca9a50bc660be218d53c257cc1fc94fda10181"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "sys_platform == \"win32\""} +exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} +iniconfig = "*" +packaging = "*" +pluggy = ">=1.5,<2" +tomli = {version = ">=1", markers = "python_version < \"3.11\""} + +[package.extras] +dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] + +[[package]] +name = "pytest-cov" +version = "5.0.0" +description = "Pytest plugin for measuring coverage." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pytest-cov-5.0.0.tar.gz", hash = "sha256:5837b58e9f6ebd335b0f8060eecce69b662415b16dc503883a02f45dfeb14857"}, + {file = "pytest_cov-5.0.0-py3-none-any.whl", hash = "sha256:4f0764a1219df53214206bf1feea4633c3b558a2925c8b59f144f682861ce652"}, +] + +[package.dependencies] +coverage = {version = ">=5.2.1", extras = ["toml"]} +pytest = ">=4.6" + +[package.extras] +testing = ["fields", "hunter", "process-tests", "pytest-xdist", "virtualenv"] + +[[package]] +name = "pyyaml" +version = "6.0.2" +description = "YAML parser and emitter for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, + {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, + {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, + {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, + {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, + {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, + {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, + {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, + {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, + {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, + {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, + {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, + {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, + {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, + {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, + {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, + {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, +] + +[[package]] +name = "rich" +version = "13.9.4" +description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" +optional = false +python-versions = ">=3.8.0" +files = [ + {file = "rich-13.9.4-py3-none-any.whl", hash = "sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90"}, + {file = "rich-13.9.4.tar.gz", hash = "sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098"}, +] + +[package.dependencies] +markdown-it-py = ">=2.2.0" +pygments = ">=2.13.0,<3.0.0" +typing-extensions = {version = ">=4.0.0,<5.0", markers = "python_version < \"3.11\""} + +[package.extras] +jupyter = ["ipywidgets (>=7.5.1,<9)"] + +[[package]] +name = "rich-rst" +version = "1.3.1" +description = "A beautiful reStructuredText renderer for rich" +optional = false +python-versions = ">=3.6" +files = [ + {file = "rich_rst-1.3.1-py3-none-any.whl", hash = "sha256:498a74e3896507ab04492d326e794c3ef76e7cda078703aa592d1853d91098c1"}, + {file = "rich_rst-1.3.1.tar.gz", hash = "sha256:fad46e3ba42785ea8c1785e2ceaa56e0ffa32dbe5410dec432f37e4107c4f383"}, +] + +[package.dependencies] +docutils = "*" +rich = ">=12.0.0" + +[[package]] +name = "ruff" +version = "0.3.7" +description = "An extremely fast Python linter and code formatter, written in Rust." +optional = false +python-versions = ">=3.7" +files = [ + {file = "ruff-0.3.7-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:0e8377cccb2f07abd25e84fc5b2cbe48eeb0fea9f1719cad7caedb061d70e5ce"}, + {file = "ruff-0.3.7-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:15a4d1cc1e64e556fa0d67bfd388fed416b7f3b26d5d1c3e7d192c897e39ba4b"}, + {file = "ruff-0.3.7-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d28bdf3d7dc71dd46929fafeec98ba89b7c3550c3f0978e36389b5631b793663"}, + {file = "ruff-0.3.7-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:379b67d4f49774ba679593b232dcd90d9e10f04d96e3c8ce4a28037ae473f7bb"}, + {file = "ruff-0.3.7-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c060aea8ad5ef21cdfbbe05475ab5104ce7827b639a78dd55383a6e9895b7c51"}, + {file = "ruff-0.3.7-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:ebf8f615dde968272d70502c083ebf963b6781aacd3079081e03b32adfe4d58a"}, + {file = "ruff-0.3.7-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d48098bd8f5c38897b03604f5428901b65e3c97d40b3952e38637b5404b739a2"}, + {file = "ruff-0.3.7-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:da8a4fda219bf9024692b1bc68c9cff4b80507879ada8769dc7e985755d662ea"}, + {file = "ruff-0.3.7-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c44e0149f1d8b48c4d5c33d88c677a4aa22fd09b1683d6a7ff55b816b5d074f"}, + {file = "ruff-0.3.7-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:3050ec0af72b709a62ecc2aca941b9cd479a7bf2b36cc4562f0033d688e44fa1"}, + {file = "ruff-0.3.7-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:a29cc38e4c1ab00da18a3f6777f8b50099d73326981bb7d182e54a9a21bb4ff7"}, + {file = "ruff-0.3.7-py3-none-musllinux_1_2_i686.whl", hash = "sha256:5b15cc59c19edca917f51b1956637db47e200b0fc5e6e1878233d3a938384b0b"}, + {file = "ruff-0.3.7-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:e491045781b1e38b72c91247cf4634f040f8d0cb3e6d3d64d38dcf43616650b4"}, + {file = "ruff-0.3.7-py3-none-win32.whl", hash = "sha256:bc931de87593d64fad3a22e201e55ad76271f1d5bfc44e1a1887edd0903c7d9f"}, + {file = "ruff-0.3.7-py3-none-win_amd64.whl", hash = "sha256:5ef0e501e1e39f35e03c2acb1d1238c595b8bb36cf7a170e7c1df1b73da00e74"}, + {file = "ruff-0.3.7-py3-none-win_arm64.whl", hash = "sha256:789e144f6dc7019d1f92a812891c645274ed08af6037d11fc65fcbc183b7d59f"}, + {file = "ruff-0.3.7.tar.gz", hash = "sha256:d5c1aebee5162c2226784800ae031f660c350e7a3402c4d1f8ea4e97e232e3ba"}, +] + +[[package]] +name = "tifffile" +version = "2024.9.20" +description = "Read and write TIFF files" +optional = false +python-versions = ">=3.10" +files = [ + {file = "tifffile-2024.9.20-py3-none-any.whl", hash = "sha256:c54dc85bc1065d972cb8a6ffb3181389d597876aa80177933459733e4ed243dd"}, + {file = "tifffile-2024.9.20.tar.gz", hash = "sha256:3fbf3be2f995a7051a8ae05a4be70c96fc0789f22ed6f1c4104c973cf68a640b"}, +] + +[package.dependencies] +numpy = "*" + +[package.extras] +all = ["defusedxml", "fsspec", "imagecodecs (>=2023.8.12)", "lxml", "matplotlib", "zarr"] +codecs = ["imagecodecs (>=2023.8.12)"] +plot = ["matplotlib"] +test = ["cmapfile", "czifile", "dask", "defusedxml", "fsspec", "imagecodecs", "lfdfiles", "lxml", "ndtiff", "oiffile", "psdtags", "pytest", "roifile", "xarray", "zarr"] +xml = ["defusedxml", "lxml"] +zarr = ["fsspec", "zarr"] + +[[package]] +name = "tomli" +version = "2.0.2" +description = "A lil' TOML parser" +optional = false +python-versions = ">=3.8" +files = [ + {file = "tomli-2.0.2-py3-none-any.whl", hash = "sha256:2ebe24485c53d303f690b0ec092806a085f07af5a5aa1464f3931eec36caaa38"}, + {file = "tomli-2.0.2.tar.gz", hash = "sha256:d46d457a85337051c36524bc5349dd91b1877838e2979ac5ced3e710ed8a60ed"}, +] + +[[package]] +name = "typing-extensions" +version = "4.12.2" +description = "Backported and Experimental Type Hints for Python 3.8+" +optional = false +python-versions = ">=3.8" +files = [ + {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, + {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, +] + +[[package]] +name = "virtualenv" +version = "20.27.1" +description = "Virtual Python Environment builder" +optional = false +python-versions = ">=3.8" +files = [ + {file = "virtualenv-20.27.1-py3-none-any.whl", hash = "sha256:f11f1b8a29525562925f745563bfd48b189450f61fb34c4f9cc79dd5aa32a1f4"}, + {file = "virtualenv-20.27.1.tar.gz", hash = "sha256:142c6be10212543b32c6c45d3d3893dff89112cc588b7d0879ae5a1ec03a47ba"}, +] + +[package.dependencies] +distlib = ">=0.3.7,<1" +filelock = ">=3.12.2,<4" +platformdirs = ">=3.9.1,<5" + +[package.extras] +docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2,!=7.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] +test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8)", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10)"] + +[[package]] +name = "zarr" +version = "2.18.3" +description = "An implementation of chunked, compressed, N-dimensional arrays for Python" +optional = false +python-versions = ">=3.10" +files = [ + {file = "zarr-2.18.3-py3-none-any.whl", hash = "sha256:b1f7dfd2496f436745cdd4c7bcf8d3b4bc1dceef5fdd0d589c87130d842496dd"}, + {file = "zarr-2.18.3.tar.gz", hash = "sha256:2580d8cb6dd84621771a10d31c4d777dca8a27706a1a89b29f42d2d37e2df5ce"}, +] + +[package.dependencies] +asciitree = "*" +fasteners = {version = "*", markers = "sys_platform != \"emscripten\""} +numcodecs = ">=0.10.0" +numpy = ">=1.24" + +[package.extras] +docs = ["numcodecs[msgpack]", "numpydoc", "pydata-sphinx-theme", "sphinx", "sphinx-automodapi", "sphinx-copybutton", "sphinx-design", "sphinx-issues"] +jupyter = ["ipytree (>=0.2.2)", "ipywidgets (>=8.0.0)", "notebook"] + +[metadata] +lock-version = "2.0" +python-versions = "^3.10" +content-hash = "9f7fa53f9f282a99c6b1ecea8342c1e63113a62c321359aec8fcdd20e3d69eb2" From 2ef172363410ae9ffa692040971eb0192b4fc376 Mon Sep 17 00:00:00 2001 From: "Kaidong (Calvin) Chai" Date: Tue, 16 Dec 2025 16:23:51 -0500 Subject: [PATCH 052/133] Implement multi-stage Docker build with Poetry Refactor Dockerfile to use multi-stage builds for better dependency management and security practices. --- Dockerfile | 75 +++++++++++++++++++++++++++++++++--------------------- 1 file changed, 46 insertions(+), 29 deletions(-) diff --git a/Dockerfile b/Dockerfile index 85e345cd..4dd248a9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,45 +1,62 @@ -# Use Python 3.11 as base image -FROM python:3.11-slim +# ---------------------------------------------------------------------------- +# STAGE 1: Builder +# Used to install Poetry, compile dependencies, and create the virtual environment. +# ---------------------------------------------------------------------------- +FROM python:3.11-slim as builder # Set working directory WORKDIR /app -# Install system dependencies +# Install build dependencies (GCC, etc.) +# We need these to compile packages, but we don't want them in the final image. RUN apt-get update && apt-get install -y \ build-essential \ - curl + && rm -rf /var/lib/apt/lists/* # Install Poetry -ENV POETRY_VERSION=1.8.4 -ENV POETRY_HOME=/opt/poetry -ENV POETRY_VENV=/opt/poetry-venv -ENV POETRY_CACHE_DIR=/opt/poetry-cache - -RUN python3 -m venv $POETRY_VENV \ - && $POETRY_VENV/bin/pip install -U pip setuptools \ - && $POETRY_VENV/bin/pip install poetry==${POETRY_VERSION} \ - && ln -s ${POETRY_VENV}/bin/poetry /usr/local/bin/poetry \ - && chmod 755 /usr/local/bin/poetry - -# Configure Poetry: Don't create virtual environment, install dependencies to system -ENV POETRY_NO_INTERACTION=1 \ - POETRY_VENV_IN_PROJECT=1 \ - POETRY_CACHE_DIR=/opt/poetry-cache +RUN pip install poetry==1.8.4 -# Copy Poetry configuration files -COPY pyproject.toml ./ +# Configure Poetry to create the venv inside the project folder +# This makes it easy to copy the whole folder to the next stage +ENV POETRY_NO_INTERACTION=1 \ + POETRY_VIRTUALENVS_IN_PROJECT=1 \ + POETRY_VIRTUALENVS_CREATE=1 \ + POETRY_CACHE_DIR=/tmp/poetry_cache -# Install dependencies -RUN poetry install --no-dev --no-root --extras all +# Copy dependency definition files first (for caching) +COPY pyproject.toml poetry.lock ./ +RUN poetry lock +# Install dependencies (only the libraries) +RUN poetry install --no-root --no-dev --extras all && rm -rf $POETRY_CACHE_DIR -# Copy application code +# Copy the rest of the application code COPY . . +RUN poetry lock +# Install the application itself +#RUN poetry install --no-dev --extras all +RUN poetry build -f wheel +RUN ./.venv/bin/pip install dist/*.whl +# ---------------------------------------------------------------------------- +# STAGE 2: Runtime +# A fresh, empty image that only contains the Python runtime and our copied venv. +# ---------------------------------------------------------------------------- +FROM python:3.11-slim as runtime -# Install the application -RUN poetry install --no-dev --extras all +WORKDIR /app -# Set the entrypoint -ENTRYPOINT ["poetry", "run", "linc-convert"] +# Create a non-root user for security (Best Practice) +RUN useradd -m -r appuser && chown appuser /app +USER appuser -# Default command (can be overridden) +# Copy the virtual environment from the builder stage +# We assume the path structure is identical (/app/.venv) +COPY --from=builder --chown=appuser:appuser /app/.venv /app/.venv + +# Update PATH environment variable +# This allows us to type 'linc-convert' instead of '/app/.venv/bin/linc-convert' +ENV PATH="/app/.venv/bin:$PATH" + +# Set the entrypoint +ENTRYPOINT ["linc-convert"] +# Default command CMD ["--help"] From 2939118dd195a3dfefb0cfc8acc5e3e258dbcfdc Mon Sep 17 00:00:00 2001 From: "Kaidong (Calvin) Chai" Date: Tue, 16 Dec 2025 16:36:08 -0500 Subject: [PATCH 053/133] Add source label to Dockerfile --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 4dd248a9..d8323f19 100644 --- a/Dockerfile +++ b/Dockerfile @@ -55,7 +55,7 @@ COPY --from=builder --chown=appuser:appuser /app/.venv /app/.venv # Update PATH environment variable # This allows us to type 'linc-convert' instead of '/app/.venv/bin/linc-convert' ENV PATH="/app/.venv/bin:$PATH" - +LABEL org.opencontainers.image.source https://github.com/lincbrain/linc-convert # Set the entrypoint ENTRYPOINT ["linc-convert"] # Default command From 979388697979066ec08e4f699948320b5f6ff9aa Mon Sep 17 00:00:00 2001 From: "Kaidong (Calvin) Chai" Date: Tue, 16 Dec 2025 16:41:41 -0500 Subject: [PATCH 054/133] Update Dockerfile syntax for build stages --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index d8323f19..0e0f51fc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ # STAGE 1: Builder # Used to install Poetry, compile dependencies, and create the virtual environment. # ---------------------------------------------------------------------------- -FROM python:3.11-slim as builder +FROM python:3.11-slim AS builder # Set working directory WORKDIR /app @@ -40,7 +40,7 @@ RUN ./.venv/bin/pip install dist/*.whl # STAGE 2: Runtime # A fresh, empty image that only contains the Python runtime and our copied venv. # ---------------------------------------------------------------------------- -FROM python:3.11-slim as runtime +FROM python:3.11-slim AS runtime WORKDIR /app From 1e0573d6f226724a74b65e1c30541715bed7cb97 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Tue, 16 Dec 2025 17:02:18 -0500 Subject: [PATCH 055/133] fix: line error when apply git --- linc_convert/modalities/lsm/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/linc_convert/modalities/lsm/__init__.py b/linc_convert/modalities/lsm/__init__.py index fa43325b..7b405b7f 100644 --- a/linc_convert/modalities/lsm/__init__.py +++ b/linc_convert/modalities/lsm/__init__.py @@ -3,8 +3,8 @@ try: import tifffile as _ # noqa: F401 - __all__ = ["cli", "mosaic", "multi_slice", "spool", "single_volume", "strip"] + __all__ = ["cli", "mosaic", "multi_slice", "spool", "single_volume", "stripe"] - from . import cli, mosaic, multi_slice, spool, single_volume, strip + from . import cli, mosaic, multi_slice, spool, single_volume, stripe except ImportError: pass From 264fd042f513fb806f6c7f3feef003729cc65725 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Wed, 17 Dec 2025 10:37:53 -0500 Subject: [PATCH 056/133] fix: spell error --- linc_convert/modalities/lsm/__init__.py | 4 ++-- .../modalities/lsm/{stripe.py => strip.py} | 23 +++++-------------- 2 files changed, 8 insertions(+), 19 deletions(-) rename linc_convert/modalities/lsm/{stripe.py => strip.py} (87%) diff --git a/linc_convert/modalities/lsm/__init__.py b/linc_convert/modalities/lsm/__init__.py index 7b405b7f..fa43325b 100644 --- a/linc_convert/modalities/lsm/__init__.py +++ b/linc_convert/modalities/lsm/__init__.py @@ -3,8 +3,8 @@ try: import tifffile as _ # noqa: F401 - __all__ = ["cli", "mosaic", "multi_slice", "spool", "single_volume", "stripe"] + __all__ = ["cli", "mosaic", "multi_slice", "spool", "single_volume", "strip"] - from . import cli, mosaic, multi_slice, spool, single_volume, stripe + from . import cli, mosaic, multi_slice, spool, single_volume, strip except ImportError: pass diff --git a/linc_convert/modalities/lsm/stripe.py b/linc_convert/modalities/lsm/strip.py similarity index 87% rename from linc_convert/modalities/lsm/stripe.py rename to linc_convert/modalities/lsm/strip.py index 36185c07..be811280 100644 --- a/linc_convert/modalities/lsm/stripe.py +++ b/linc_convert/modalities/lsm/strip.py @@ -6,18 +6,11 @@ %2Fmicr%2Fsample18_run10__y10_z01_HR&page=1 """ import logging - # stdlib -import os import os.path as op -import re -import warnings -from collections import defaultdict, namedtuple -from glob import glob -import dask.array as da + # externals import cyclopts -import numpy as np # internals from linc_convert.modalities.lsm.cli import lsm @@ -40,7 +33,7 @@ @autoconfig def convert( stripe_directory: str, - info_file:str, + info_file: str, *, voxel_size: list[float] = (1, 1, 1), general_config: GeneralConfig = None, @@ -53,12 +46,10 @@ def convert( Parameters ---------- inp - Path to the root directory, which contains a collection of + Path to the stripe directory, which contains a collection of subfolders named `*_y{:02d}_z{:02d}*_HR`, each containing a collection of files named `*spool.dat`. TODO: add instrution for metadata file and info file - overlap - Number of pixels between slices that are overlapped voxel_size Voxel size along the X, Y and Z dimensions, in microns. general_config @@ -71,7 +62,6 @@ def convert( reader = SpoolSetInterpreter(stripe_directory, info_file) - # Set default output path if not provided general_config.set_default_name(op.basename(info_file)) @@ -79,14 +69,14 @@ def convert( # Initialize Zarr group and array omz = from_config(general_config.out, zarr_config) - array = omz.create_array("0", shape=fullshape, zarr_config=zarr_config, dtype=reader.dtype) + array = omz.create_array("0", shape=fullshape, zarr_config=zarr_config, + dtype=reader.dtype) logger.info(general_config.out) result = reader.assemble() - result = result.transpose(1,2,0) + result = result.transpose(1, 2, 0) array[:] = result[:] print("Write level 0 with shape", fullshape) - voxel_size = list(map(float, reversed(voxel_size))) # Generate Zarr pyramid and metadata omz.generate_pyramid(levels=zarr_config.levels) @@ -102,4 +92,3 @@ def convert( omz.write_nifti_header(header) logger.info("Conversion complete.") - From 55c5cf1d1bf5add9bb4f9ddea1b46457c99a72cd Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Wed, 17 Dec 2025 10:48:49 -0500 Subject: [PATCH 057/133] refactor: update parameter names and improve documentation in lsm strip conversion --- linc_convert/modalities/lsm/strip.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/linc_convert/modalities/lsm/strip.py b/linc_convert/modalities/lsm/strip.py index be811280..edaf48d4 100644 --- a/linc_convert/modalities/lsm/strip.py +++ b/linc_convert/modalities/lsm/strip.py @@ -1,5 +1,5 @@ """ -Convert spool .dat files set generated by the LSM pipeline into a zarr. +Convert spool .dat files set in one strip generated by the LSM pipeline into a zarr. Example input files can be found at https://lincbrain.org/dandiset/000010/draft/files?location=sourcedata%2Frawdata @@ -32,7 +32,7 @@ @stripe.default @autoconfig def convert( - stripe_directory: str, + inp: str, info_file: str, *, voxel_size: list[float] = (1, 1, 1), @@ -46,10 +46,11 @@ def convert( Parameters ---------- inp - Path to the stripe directory, which contains a collection of - subfolders named `*_y{:02d}_z{:02d}*_HR`, each containing a + Path to the stripe directory, which contains a collection of files named `*spool.dat`. - TODO: add instrution for metadata file and info file + info_file + Path to the info file (.mat), which contains the information + about the scan and the spool files. voxel_size Voxel size along the X, Y and Z dimensions, in microns. general_config @@ -60,7 +61,7 @@ def convert( NIfTI header related configuration """ - reader = SpoolSetInterpreter(stripe_directory, info_file) + reader = SpoolSetInterpreter(inp, info_file) # Set default output path if not provided general_config.set_default_name(op.basename(info_file)) From fbf5d71908d4bb19ecfd48b6b53dd0379f969096 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Wed, 17 Dec 2025 10:48:54 -0500 Subject: [PATCH 058/133] refactor: optimize array concatenation in SpoolSetInterpreter --- linc_convert/utils/io/spool.py | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/linc_convert/utils/io/spool.py b/linc_convert/utils/io/spool.py index 17f146df..298b8b61 100644 --- a/linc_convert/utils/io/spool.py +++ b/linc_convert/utils/io/spool.py @@ -254,15 +254,10 @@ def assemble(self) -> np.ndarray: A NumPy array of shape (frames_total, rows, columns), where frames_total = images_per_file * number_of_files. """ - axis_0_shape = self.spool_shape[0] - canvas = np.zeros( - (axis_0_shape * len(self), *self.spool_shape[1:]), dtype=self.dtype - ) - for idx, spool_data in enumerate(self): - start = idx * axis_0_shape - stop = start + axis_0_shape - canvas[start:stop] = spool_data - return canvas + chunks = list(self) + if not chunks: + return np.zeros((0, *self.spool_shape[1:]), dtype=self.dtype) + return np.concatenate(chunks, axis=0).astype(self.dtype, copy=False) # this is the modified version for lsm pipeline def assemble_cropped(self) -> np.ndarray: From 0c0e49ef03615bd47dfbb3cbda28dc37d7c66806 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Tue, 23 Dec 2025 16:16:22 -0500 Subject: [PATCH 059/133] fix: typo --- linc_convert/modalities/lsm/single_volume.py | 4 ++-- linc_convert/modalities/lsm/strip.py | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/linc_convert/modalities/lsm/single_volume.py b/linc_convert/modalities/lsm/single_volume.py index 29736815..aefb6667 100644 --- a/linc_convert/modalities/lsm/single_volume.py +++ b/linc_convert/modalities/lsm/single_volume.py @@ -18,7 +18,7 @@ from linc_convert.utils.unit import to_ome_unit from linc_convert.utils.zarr_config import ( GeneralConfig, - NiiConfig, + NiftiConfig, ZarrConfig, autoconfig, ) @@ -35,7 +35,7 @@ def convert( *, general_config: GeneralConfig = None, zarr_config: ZarrConfig = None, - nii_config: NiiConfig = None, + nii_config: NiftiConfig = None, ) -> None: """ Tiff to OME-Zarr. diff --git a/linc_convert/modalities/lsm/strip.py b/linc_convert/modalities/lsm/strip.py index edaf48d4..75c2e368 100644 --- a/linc_convert/modalities/lsm/strip.py +++ b/linc_convert/modalities/lsm/strip.py @@ -25,11 +25,11 @@ ) logger = logging.getLogger(__name__) -stripe = cyclopts.App(name="stripe", help_format="markdown") -lsm.command(stripe) +strip = cyclopts.App(name="strip", help_format="markdown") +lsm.command(strip) -@stripe.default +@strip.default @autoconfig def convert( inp: str, From 178cf9d9b0196ae76f5440a2513eca15268e99c5 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Tue, 23 Dec 2025 16:33:53 -0500 Subject: [PATCH 060/133] fix: correct syntax for Dockerfile source label --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 0e0f51fc..15387200 100644 --- a/Dockerfile +++ b/Dockerfile @@ -55,7 +55,7 @@ COPY --from=builder --chown=appuser:appuser /app/.venv /app/.venv # Update PATH environment variable # This allows us to type 'linc-convert' instead of '/app/.venv/bin/linc-convert' ENV PATH="/app/.venv/bin:$PATH" -LABEL org.opencontainers.image.source https://github.com/lincbrain/linc-convert +LABEL org.opencontainers.image.source=https://github.com/lincbrain/linc-convert # Set the entrypoint ENTRYPOINT ["linc-convert"] # Default command From d6b1d8c4ab2a5a99789cf4079ef3a0a4a10e5022 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Thu, 4 Dec 2025 11:02:39 -0500 Subject: [PATCH 061/133] wip: oct stitching --- linc_convert/modalities/psoct/mosaic3d.py | 38 +++++ linc_convert/modalities/psoct/single_tile.py | 36 ++++ linc_convert/modalities/psoct/stitch.py | 166 +++++++++++++++++++ 3 files changed, 240 insertions(+) create mode 100644 linc_convert/modalities/psoct/mosaic3d.py create mode 100644 linc_convert/modalities/psoct/single_tile.py create mode 100644 linc_convert/modalities/psoct/stitch.py diff --git a/linc_convert/modalities/psoct/mosaic3d.py b/linc_convert/modalities/psoct/mosaic3d.py new file mode 100644 index 00000000..b3a88abd --- /dev/null +++ b/linc_convert/modalities/psoct/mosaic3d.py @@ -0,0 +1,38 @@ +# given a file with tileinfo, create a mosaic3d, the input needs to be either complex +# data or volume itself, support focus offset + + +@autoconfig +@mosaic3d.default +def mosaic3d( + tile_info_file: str, + *, + dbi_output: Annotated[str, Parameter(name=["--dBI", "-d"])], + o3d_output: Annotated[str, Parameter(name=["--O3D", "-o"])], + r3d_output: Annotated[str, Parameter(name=["--R3D", "-r"])], + zarr_config: ZarrConfig = None, + general_config: GeneralConfig = None, + nifti_config: NiftiConfig = None, +) -> None: + # load tile info + # load + pass + + +def mosaic3d_vol( + tile_info_file: str, + *, + tile_overlap: float | Literal["auto"] = "auto", + circular_mean: bool = False, + general_config: GeneralConfig = None, + nifti_config: NiftiConfig = None, + zarr_config: ZarrConfig = None, +) -> None: + # load tile info + # normalize tile_overlap, if auto, find the max overlap of all tiles, if float number, use as percentile of the tile size + + # load volume + # mosaic volume + # save mosaic volume + pass + diff --git a/linc_convert/modalities/psoct/single_tile.py b/linc_convert/modalities/psoct/single_tile.py new file mode 100644 index 00000000..d689504b --- /dev/null +++ b/linc_convert/modalities/psoct/single_tile.py @@ -0,0 +1,36 @@ +import dask.array as da + + +def process_complex3d( + complex3d: da.Array, offset: float = 100, flip_phi: bool = False + ) -> tuple[da.Array, da.Array, da.Array]: + offset = da.deg2rad(offset) + if complex3d.shape[0] % 4 != 0: + raise ValueError("First dimension size must be multiple of 4.") + raw_tile_width = complex3d.shape[0] // 4 + complex3d = complex3d.rechunk({0: raw_tile_width}) + comp = complex3d.reshape( + (4, raw_tile_width, complex3d.shape[1], complex3d.shape[2])) + j1r, j1i, j2r, j2i = comp[0], comp[1], comp[2], comp[3] + + j1 = j1r + 1j * j1i + j2 = j2r + 1j * j2i + mag1 = da.abs(j1) + mag2 = da.abs(j2) + + dBI3D = da.flip(10 * da.log10(mag1 ** 2 + mag2 ** 2), axis=2) + R3D = da.flip( + da.arctan(mag1 / mag2) / da.pi * 180, + axis=2 + ) + if flip_phi: + phi = da.angle(j2) - da.angle(j1) + else: + phi = da.angle(j1) - da.angle(j2) + phi += offset * 2 + # wrap into [-π, π] + phi = da.where(phi > da.pi, phi - 2 * da.pi, phi) + phi = da.where(phi < -da.pi, phi + 2 * da.pi, phi) + O3D = da.flip(phi / 2, axis=2) + O3D = da.rad2deg(O3D) + return dBI3D, R3D, O3D diff --git a/linc_convert/modalities/psoct/stitch.py b/linc_convert/modalities/psoct/stitch.py new file mode 100644 index 00000000..4180b058 --- /dev/null +++ b/linc_convert/modalities/psoct/stitch.py @@ -0,0 +1,166 @@ +from __future__ import annotations + +from collections import defaultdict +from dataclasses import dataclass +from typing import Dict, List, Optional, Sequence, Tuple, Union + +import dask.array as da +import numpy as np +from numpy.typing import ArrayLike + + +class TileInfo(dataclass): + x: int + y: int + image: da.Array + + +class MosaicInfo(dataclass): + tiles: List[TileInfo] + full_shape: Tuple[int, int, int] + blend_ramp: da.Array + chunk_size: Tuple[int, int] + circular_mean: bool + + +def _to_dask(arr: ArrayLike, chunks="auto") -> da.Array: + """Convert array-like to dask array.""" + if isinstance(arr, da.Array): + return arr + return da.from_array(np.asarray(arr), chunks=chunks) + + +def _normalize_overlap( + overlap: Union[int, Tuple[int, int]], +) -> Tuple[int, int]: + """Normalize overlap parameter to (row_overlap, col_overlap) tuple.""" + if isinstance(overlap, tuple): + if len(overlap) != 2: + raise ValueError("overlap tuple must be (row_overlap, col_overlap).") + row_overlap, col_overlap = overlap + else: + row_overlap = col_overlap = int(overlap) + + if row_overlap < 0 or col_overlap < 0: + raise ValueError("Overlap must be non-negative.") + return row_overlap, col_overlap + + +def _blending_ramp( + shape: tuple(int), + overlap: tuple(int), +) -> np.ndarray: + """ + Create a separable 2D blending ramp similar to build_slice(). + """ + wx = np.ones(shape[0], dtype=np.float32) + wy = np.ones(shape[1], dtype=np.float32) + if overlap[0] > 0: + wx[:overlap[0]] = np.linspace(0, 1, overlap[0], dtype=np.float32) + wx[-overlap[0]:] = np.linspace(1, 0, overlap[0], dtype=np.float32) + if overlap[1] > 0: + wy[:overlap[1]] = np.linspace(0, 1, overlap[1], dtype=np.float32) + wy[-overlap[1]:] = np.linspace(1, 0, overlap[1], dtype=np.float32) + return np.outer(wx, wy) + + +def _combine_block( + _, block_tiles, block_weights, circular_mean, *args, block_info=None, **kwargs + ): + chunk_id = tuple(block_info[None]['chunk-location'][:2]) + paints = block_tiles[chunk_id] + weights = block_weights[chunk_id] + shape = block_info[None]['chunk-shape'] + + if not paints: + return np.broadcast_to(np.zeros((), dtype=np.float32), shape) + + total_paint = da.sum(da.stack(paints, axis=0), axis=0) + total_weight = da.sum(da.stack(weights, axis=0), axis=0) + normalized = total_paint / np.broadcast_to(total_weight, total_paint.shape) + if not circular_mean: + return normalized + return da.rad2deg(da.arctan2(normalized[..., 1], normalized[..., 0])) / 2 + + +def stitch_tiles( + tile_infos, + full_shape, + blend_ramp, + chunk_size=None, + circular_mean=False, + **_ + ): + """ + Chunk‐aligned padding + per‐block summation (build_slice_chunked_padding). + """ + if not chunk_size: + chunk_size = tile_infos[0].image.shape[:2] + pw, ph = chunk_size + no_chunk_dim = full_shape[2:] + canvas = da.zeros(full_shape, + chunks=(pw, ph, *no_chunk_dim), + dtype=np.float32) + weight = da.zeros(full_shape[:2], + chunks=(pw, ph), + dtype=np.float32) + + # collect per‐chunk pieces + block_tiles = defaultdict(list) + block_weights = defaultdict(list) + + for tile_info in tile_infos: + x0, y0, t = tile_info.x, tile_info.y, tile_info.image + x0c = x0 // pw + y0c = y0 // ph + x1c = (x0 + pw - 1) // pw + y1c = (y0 + ph - 1) // ph + + # pad region covering those chunks + x_start = x0c * pw + y_start = y0c * ph + x_end = (x1c + 1) * pw + y_end = (y1c + 1) * ph + + if not circular_mean: + block_canvas = da.zeros((x_end - x_start, y_end - y_start, *no_chunk_dim), + chunks=(pw, ph, *no_chunk_dim), + dtype=np.float32) + else: + block_canvas = da.zeros( + (x_end - x_start, y_end - y_start, *no_chunk_dim, 2), + chunks=(pw, ph, *no_chunk_dim, 2), + dtype=np.float32) + + block_weight = da.zeros((x_end - x_start, y_end - y_start), + chunks=(pw, ph), + dtype=np.float32) + + # place tile into that big block + xs = slice(x0 - x_start, x0 - x_start + pw) + ys = slice(y0 - y_start, y0 - y_start + ph) + if not circular_mean: + block_canvas[xs, ys, ...] = t * blend_ramp + else: + rad = da.deg2rad(t) * 2 + block_canvas[xs, ys, ..., 0] = da.cos(rad) + block_canvas[xs, ys, ..., 1] = da.sin(rad) + + block_weight[xs, ys] = blend_ramp + + # chop into per‐chunk pieces + for cx in range(x0c, x1c + 1): + for cy in range(y0c, y1c + 1): + bid = (cx, cy) + sub_x = slice((cx - x0c) * pw, (cx - x0c + 1) * pw) + sub_y = slice((cy - y0c) * ph, (cy - y0c + 1) * ph) + block_tiles[bid].append(block_canvas[sub_x, sub_y, ...]) + block_weights[bid].append(block_weight[sub_x, sub_y]) + + canvas = da.map_blocks(_combine_block, canvas, block_tiles, block_weights, + circular_mean, + dtype=canvas.dtype, + chunks=(pw, ph, *no_chunk_dim)) + # crop canvas to get rid of excessive padded pixels + canvas = canvas[:full_shape[0], :full_shape[1], ...] + return canvas From 28cb9c0846dec8aa6db7b0ba63ab31b21073f1e7 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Thu, 4 Dec 2025 11:36:05 -0500 Subject: [PATCH 062/133] wip: oct stitching --- linc_convert/modalities/psoct/mosaic3d.py | 389 +++++++++++++++++++++- linc_convert/modalities/psoct/stitch.py | 10 +- 2 files changed, 388 insertions(+), 11 deletions(-) diff --git a/linc_convert/modalities/psoct/mosaic3d.py b/linc_convert/modalities/psoct/mosaic3d.py index b3a88abd..3334d507 100644 --- a/linc_convert/modalities/psoct/mosaic3d.py +++ b/linc_convert/modalities/psoct/mosaic3d.py @@ -1,22 +1,380 @@ -# given a file with tileinfo, create a mosaic3d, the input needs to be either complex -# data or volume itself, support focus offset +""" +This module includes components that are based on the +https://github.com/CarolineMagnain/OCTAnalysis repository (currently private). We +have permission from the owner to include the code here. +""" + +import logging +import os +import os.path as op +import warnings +from typing import Annotated, Literal + +import cyclopts +import dask.array as da +import nibabel as nib +import numpy as np +import yaml +from cyclopts import Parameter +from dask.diagnostics import ProgressBar + +from linc_convert.modalities.psoct.cli import psoct +from linc_convert.modalities.psoct.single_tile import process_complex3d +from linc_convert.modalities.psoct.stitch import TileInfo, stitch_tiles +from linc_convert.utils.io.matlab import as_arraywrapper +from linc_convert.utils.io.zarr import from_config +from linc_convert.utils.io.zarr.helpers import \ + _compute_zarr_layout as compute_zarr_layout +from linc_convert.utils.zarr_config import ( + GeneralConfig, + NiftiConfig, + ZarrConfig, + autoconfig, +) + +logger = logging.getLogger(__name__) + +mosaic3d = cyclopts.App(name="mosaic3d", help_format="markdown") +psoct.command(mosaic3d) + +# 3d data has pixdim incorrectly set and cause nibabel keep logging warning +nib.imageglobals.logger.setLevel(40) + + +def _load_tile_info_yaml(yaml_file: str) -> dict: + """Load tile information from YAML file.""" + with open(yaml_file, "r") as f: + return yaml.safe_load(f) + + +def _compute_blending_ramp( + tile_width: int, tile_height: int, x_coords: np.ndarray, y_coords: np.ndarray +) -> np.ndarray: + """ + Compute blending ramp for tile stitching. + + This computes overlap regions between tiles and creates a blending ramp. + """ + # Find minimum distances between tile centers to estimate overlap + if len(x_coords) == 0 or len(y_coords) == 0: + return np.ones((tile_height, tile_width), dtype=np.float32) + + # Estimate overlap from coordinate spacing + x_coords_flat = x_coords[~np.isnan(x_coords)] + y_coords_flat = y_coords[~np.isnan(y_coords)] + + if len(x_coords_flat) > 1: + x_spacing = np.min(np.diff(np.sort(np.unique(x_coords_flat)))) + x_overlap = max(0, tile_width - int(x_spacing)) if x_spacing < tile_width else 0 + else: + x_overlap = 0 + + if len(y_coords_flat) > 1: + y_spacing = np.min(np.diff(np.sort(np.unique(y_coords_flat)))) + y_overlap = max(0, + tile_height - int(y_spacing)) if y_spacing < tile_height else 0 + else: + y_overlap = 0 + + # Create blending ramp + wx = np.ones(tile_height, dtype=np.float32) + wy = np.ones(tile_width, dtype=np.float32) + + if x_overlap > 0: + wx[:x_overlap] = np.linspace(0, 1, x_overlap, dtype=np.float32) + wx[-x_overlap:] = np.linspace(1, 0, x_overlap, dtype=np.float32) + + if y_overlap > 0: + wy[:y_overlap] = np.linspace(0, 1, y_overlap, dtype=np.float32) + wy[-y_overlap:] = np.linspace(1, 0, y_overlap, dtype=np.float32) + + return np.outer(wx, wy) + + +def _load_complex_tile(file_path: str, key: str = None) -> da.Array: + """Load complex 3D data from a mat file.""" + wrapper = as_arraywrapper(file_path, key) + if not hasattr(wrapper, "dtype"): + raise ValueError(f"Could not load array from {file_path}") + data = wrapper[:] + return da.from_array(data, chunks="auto") + + +def _shift_focus( + tile: da.Array, focus_plane: np.ndarray, s_max: int +) -> da.Array: + """Shift tile depth based on focus plane.""" + + # This function will be applied per block using map_blocks + def shift_block(block, block_info=None): + if block_info is None: + return block + # Get the spatial coordinates for this block + # For simplicity, we'll shift the entire tile + # pad the sources at the END so indices up to Nz-1 are valid + pad_width = ((0, 0), (0, 0), (s_max, s_max)) + block_padded = np.pad( + block, pad_width, mode="constant", constant_values=np.nan + ) + # build indices for the expanded depth + z = np.arange(block.shape[-1] - s_max, dtype=np.int32)[None, None, :] + # Use a subset of focus_plane corresponding to this block + # For now, use the full focus_plane (assuming it matches tile spatial + # dimensions) + idx = z + focus_plane[..., None] + result = np.take_along_axis(block_padded, idx, axis=2) + return result + + # Apply shift using map_blocks + result_shape = (tile.shape[0], tile.shape[1], tile.shape[2] + s_max) + return tile.map_blocks(shift_block, dtype=tile.dtype, chunks=result_shape) -@autoconfig @mosaic3d.default +@autoconfig def mosaic3d( tile_info_file: str, *, dbi_output: Annotated[str, Parameter(name=["--dBI", "-d"])], o3d_output: Annotated[str, Parameter(name=["--O3D", "-o"])], r3d_output: Annotated[str, Parameter(name=["--R3D", "-r"])], + focus_plane: str = None, zarr_config: ZarrConfig = None, general_config: GeneralConfig = None, nifti_config: NiftiConfig = None, ) -> None: - # load tile info - # load - pass + """ + Create 3D mosaic from tile information in YAML file. + + Parameters + ---------- + tile_info_file : str + Path to YAML file containing tile information. + dbi_output : str + Output path for dBI volume. + o3d_output : str + Output path for O3D volume. + r3d_output : str + Output path for R3D volume. + focus_plane : str, optional + Path to focus plane NIfTI file for depth shifting. + zarr_config : ZarrConfig, optional + Zarr configuration. + general_config : GeneralConfig, optional + General configuration. + nifti_config : NiftiConfig, optional + NIfTI configuration. + """ + logger.info("Started mosaic3d") + + # Load tile information from YAML + tile_info = _load_tile_info_yaml(tile_info_file) + + # Extract configuration from YAML + tiles_config = tile_info.get("tiles", []) + if not tiles_config: + raise ValueError("No tiles found in YAML file") + + # Get metadata + metadata = tile_info.get("metadata", {}) + tile_width = metadata.get("tile_width") + tile_height = metadata.get("tile_height") + depth = metadata.get("depth") + scan_resolution = metadata.get("scan_resolution", [1.0, 1.0, 1.0]) + flip_z = metadata.get("flip_z", True) + clip_x = metadata.get("clip_x", 0) + clip_y = metadata.get("clip_y", 0) + raw_tile_width = metadata.get("raw_tile_width") + file_key = metadata.get("file_key") # Key for mat file array + + if tile_width is None or tile_height is None or depth is None: + raise ValueError( + "tile_width, tile_height, and depth must be specified in metadata") + + # Load focus plane if provided + focus_plane_data = None + if focus_plane is not None: + focus_plane_data = nib.load(focus_plane).get_fdata().astype(np.uint16) + min_focus = np.min(focus_plane_data) + max_focus = np.max(focus_plane_data) + depth_increase = max_focus - min_focus + focus_plane_data = focus_plane_data - min_focus + depth += depth_increase + + # Collect tile coordinates and file paths + x_coords_list = [] + y_coords_list = [] + tile_files = [] + + for tile in tiles_config: + x = tile.get("x") + y = tile.get("y") + file_path = tile.get("file_path") + if x is None or y is None or file_path is None: + logger.warning(f"Skipping incomplete tile: {tile}") + continue + x_coords_list.append(x) + y_coords_list.append(y) + tile_files.append(file_path) + + if not tile_files: + raise ValueError("No valid tiles found in YAML file") + + x_coords = np.array(x_coords_list) + y_coords = np.array(y_coords_list) + + # Compute full mosaic dimensions + full_width = int(np.nanmax(x_coords) + tile_width) + full_height = int(np.nanmax(y_coords) + tile_height) + + # Compute blending ramp + blend_ramp = _compute_blending_ramp(tile_width, tile_height, x_coords, y_coords) + + # Compute zarr layout + chunk, shard = compute_zarr_layout((depth, full_height, full_width), np.float32, + zarr_config) + + # Process each tile and collect results + dbi_tiles = [] + r3d_tiles = [] + o3d_tiles = [] + coords = [] + + logger.info(f"Loading and processing {len(tile_files)} tiles") + for i, (x0, y0, file_path) in enumerate(zip(x_coords, y_coords, tile_files)): + if not op.exists(file_path): + logger.warning(f"Tile file not found: {file_path}, skipping") + continue + + logger.info(f"Processing tile {i + 1}/{len(tile_files)}: {file_path}") + + # Load complex 3D data + try: + complex3d = _load_complex_tile(file_path, file_key) + except Exception as e: + logger.warning(f"Failed to load {file_path}: {e}, skipping") + continue + + # Validate shape + if raw_tile_width and complex3d.shape[0] > 4 * raw_tile_width: + warnings.warn( + f"Complex3D shape {complex3d.shape} is larger than expected " + f"{4 * raw_tile_width}. Trimming to 4*raw_tile_width." + ) + complex3d = complex3d[: 4 * raw_tile_width, :, :] + elif raw_tile_width and complex3d.shape[0] < 4 * raw_tile_width: + raise ValueError( + f"Complex3D shape {complex3d.shape} is smaller than expected " + f"{4 * raw_tile_width}. Check the input file." + ) + + # Process complex data to get dBI, R3D, O3D + dBI3D, R3D, O3D = process_complex3d(complex3d, offset=100, flip_phi=False) + + # Handle focus plane shifting + if focus_plane_data is not None: + s_max = int(np.max(focus_plane_data)) + dBI3D = _shift_focus(dBI3D, focus_plane_data, s_max) + R3D = _shift_focus(R3D, focus_plane_data, s_max) + O3D = _shift_focus(O3D, focus_plane_data, s_max) + + # Apply transformations + if flip_z: + dBI3D = da.flip(dBI3D, axis=2) + R3D = da.flip(R3D, axis=2) + O3D = da.flip(O3D, axis=2) + + # Clip and apply blending ramp + results = da.stack([dBI3D, R3D, O3D], axis=3) + results = results[clip_x:, clip_y:, :, :] * blend_ramp[:, :, None, None] + + dbi_tiles.append(results[:, :, :, 0]) + r3d_tiles.append(results[:, :, :, 1]) + o3d_tiles.append(results[:, :, :, 2]) + coords.append((int(x0), int(y0))) + + if not coords: + raise ValueError("No valid tiles were processed") + + # Stitch tiles for each modality + logger.info("Stitching tiles") + tile_size = (tile_width, tile_height) + + dBI_result = stitch_tiles( + [TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, dbi_tiles)], + full_shape=(full_width, full_height, depth), + blend_ramp=blend_ramp, + chunk_size=tile_size, + circular_mean=False, + ) + + R3D_result = stitch_tiles( + [TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, r3d_tiles)], + full_shape=(full_width, full_height, depth), + blend_ramp=blend_ramp, + chunk_size=tile_size, + circular_mean=False, + ) + + O3D_result = stitch_tiles( + [TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, o3d_tiles)], + full_shape=(full_width, full_height, depth), + blend_ramp=blend_ramp, + chunk_size=tile_size, + circular_mean=False, + ) + + # Transpose to (z, y, x) for output + dBI_result = dBI_result.transpose(2, 1, 0) + R3D_result = R3D_result.transpose(2, 1, 0) + O3D_result = O3D_result.transpose(2, 1, 0) + + # Prepare outputs + writers = [] + results = [] + zgroups = [] + + for out, res in zip([dbi_output, r3d_output, o3d_output], + [dBI_result, R3D_result, O3D_result]): + if shard: + res = da.rechunk(res, chunks=shard) + else: + res = da.rechunk(res, chunks=chunk) + + zarr_config.out = out + zgroup = from_config(zarr_config) + zgroups.append(zgroup) + + writer = zgroup.create_array("0", shape=res.shape, dtype=np.float32, + zarr_config=zarr_config) + writers.append(writer) + results.append(res) + + # Store results + task = da.store(results, writers, compute=False) + with ProgressBar(): + task.compute() + + scan_resolution = scan_resolution[:3][::-1] # Reverse to (z, y, x) + logger.info("Finished stitching, generating pyramid and metadata") + + for zgroup in zgroups: + zgroup.generate_pyramid() + zgroup.write_ome_metadata(["z", "y", "x"], space_scale=scan_resolution, + space_unit="millimeter") + + if not zarr_config.nii: + continue + + from niizarr import default_nifti_header + + nii_header = default_nifti_header( + zgroup["0"], zgroup._get_zarr_python_group().attrs["multiscales"] + ) + nii_header.set_xyzt_units("mm") + zgroup.write_nifti_header(nii_header) + + logger.info("Finished generating pyramid") def mosaic3d_vol( @@ -28,6 +386,24 @@ def mosaic3d_vol( nifti_config: NiftiConfig = None, zarr_config: ZarrConfig = None, ) -> None: + """ + Create 3D mosaic from pre-processed volume tiles. + + Parameters + ---------- + tile_info_file : str + Path to YAML file containing tile information. + tile_overlap : float | Literal["auto"] + Tile overlap in pixels. If "auto", compute from tile coordinates. + circular_mean : bool + Whether to use circular mean for blending. + general_config : GeneralConfig, optional + General configuration. + nifti_config : NiftiConfig, optional + NIfTI configuration. + zarr_config : ZarrConfig, optional + Zarr configuration. + """ # load tile info # normalize tile_overlap, if auto, find the max overlap of all tiles, if float number, use as percentile of the tile size @@ -35,4 +411,3 @@ def mosaic3d_vol( # mosaic volume # save mosaic volume pass - diff --git a/linc_convert/modalities/psoct/stitch.py b/linc_convert/modalities/psoct/stitch.py index 4180b058..f04afbad 100644 --- a/linc_convert/modalities/psoct/stitch.py +++ b/linc_convert/modalities/psoct/stitch.py @@ -9,13 +9,15 @@ from numpy.typing import ArrayLike -class TileInfo(dataclass): +@dataclass +class TileInfo: x: int y: int image: da.Array -class MosaicInfo(dataclass): +@dataclass +class MosaicInfo: tiles: List[TileInfo] full_shape: Tuple[int, int, int] blend_ramp: da.Array @@ -47,8 +49,8 @@ def _normalize_overlap( def _blending_ramp( - shape: tuple(int), - overlap: tuple(int), + shape: Tuple[int, int], + overlap: Tuple[int, int], ) -> np.ndarray: """ Create a separable 2D blending ramp similar to build_slice(). From 2b42e99aa53b0fc3f83799205fe05f89e67b6c98 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Thu, 4 Dec 2025 11:36:12 -0500 Subject: [PATCH 063/133] wip: oct stitching --- linc_convert/modalities/psoct/mosaic2d.py | 357 ++++++++++++++++++++++ 1 file changed, 357 insertions(+) create mode 100644 linc_convert/modalities/psoct/mosaic2d.py diff --git a/linc_convert/modalities/psoct/mosaic2d.py b/linc_convert/modalities/psoct/mosaic2d.py new file mode 100644 index 00000000..2c04f4c7 --- /dev/null +++ b/linc_convert/modalities/psoct/mosaic2d.py @@ -0,0 +1,357 @@ +""" +Create 2D mosaic from tile information in YAML file. +""" + +import logging +import os +import os.path as op +from typing import Annotated, Literal, Optional + +import cyclopts +import dask.array as da +import nibabel as nib +import numpy as np +import yaml +from cyclopts import Parameter +from dask.diagnostics import ProgressBar +from PIL import Image + +from linc_convert.modalities.psoct.cli import psoct +from linc_convert.modalities.psoct.stitch import TileInfo, stitch_tiles +from linc_convert.utils.io.matlab import as_arraywrapper +from linc_convert.utils.io.zarr import from_config +from linc_convert.utils.io.zarr.helpers import \ + _compute_zarr_layout as compute_zarr_layout +from linc_convert.utils.nifti_header import build_nifti_header +from linc_convert.utils.unit import to_ome_unit +from linc_convert.utils.zarr_config import ( + GeneralConfig, + NiftiConfig, + ZarrConfig, + autoconfig, +) + +logger = logging.getLogger(__name__) + +mosaic2d = cyclopts.App(name="mosaic2d", help_format="markdown") +psoct.command(mosaic2d) + + +def _load_tile_info_yaml(yaml_file: str) -> dict: + """Load tile information from YAML file.""" + with open(yaml_file, "r") as f: + return yaml.safe_load(f) + + +def _compute_blending_ramp_2d( + tile_width: int, tile_height: int, x_coords: np.ndarray, y_coords: np.ndarray +) -> np.ndarray: + """ + Compute blending ramp for 2D tile stitching. + + This computes overlap regions between tiles and creates a blending ramp. + """ + # Find minimum distances between tile centers to estimate overlap + if len(x_coords) == 0 or len(y_coords) == 0: + return np.ones((tile_height, tile_width), dtype=np.float32) + + # Estimate overlap from coordinate spacing + x_coords_flat = x_coords[~np.isnan(x_coords)] + y_coords_flat = y_coords[~np.isnan(y_coords)] + + if len(x_coords_flat) > 1: + x_spacing = np.min(np.diff(np.sort(np.unique(x_coords_flat)))) + x_overlap = max(0, tile_width - int(x_spacing)) if x_spacing < tile_width else 0 + else: + x_overlap = 0 + + if len(y_coords_flat) > 1: + y_spacing = np.min(np.diff(np.sort(np.unique(y_coords_flat)))) + y_overlap = max(0, + tile_height - int(y_spacing)) if y_spacing < tile_height else 0 + else: + y_overlap = 0 + + # Create blending ramp + wx = np.ones(tile_height, dtype=np.float32) + wy = np.ones(tile_width, dtype=np.float32) + + if x_overlap > 0: + wx[:x_overlap] = np.linspace(0, 1, x_overlap, dtype=np.float32) + wx[-x_overlap:] = np.linspace(1, 0, x_overlap, dtype=np.float32) + + if y_overlap > 0: + wy[:y_overlap] = np.linspace(0, 1, y_overlap, dtype=np.float32) + wy[-y_overlap:] = np.linspace(1, 0, y_overlap, dtype=np.float32) + + return np.outer(wx, wy) + + +def _load_image_tile(file_path: str, key: str = None) -> da.Array: + """Load 2D image from a file (NIfTI or mat).""" + if file_path.endswith(('.nii', '.nii.gz')): + img = nib.load(file_path) + data = img.get_fdata() + # If 3D, take middle slice or first slice + if data.ndim == 3: + data = data[:, :, data.shape[2] // 2] + elif data.ndim > 3: + # Take first 2D slice + data = data.reshape(data.shape[0], data.shape[1], -1)[:, :, 0] + return da.from_array(data, chunks="auto") + else: + # Assume mat file + wrapper = as_arraywrapper(file_path, key) + if not hasattr(wrapper, "dtype"): + raise ValueError(f"Could not load array from {file_path}") + data = wrapper[:] + # Handle 3D data - take middle slice + if data.ndim == 3: + data = data[:, :, data.shape[2] // 2] + elif data.ndim > 3: + data = data.reshape(data.shape[0], data.shape[1], -1)[:, :, 0] + return da.from_array(data, chunks="auto") + + +def _save_jpeg(image: np.ndarray, output_path: str, quality: int = 95): + """Save image as JPEG.""" + # Normalize to 0-255 range + img_min = np.nanmin(image) + img_max = np.nanmax(image) + if img_max > img_min: + normalized = ((image - img_min) / (img_max - img_min) * 255).astype(np.uint8) + else: + normalized = np.zeros_like(image, dtype=np.uint8) + + # Convert to PIL Image and save + pil_image = Image.fromarray(normalized) + pil_image.save(output_path, "JPEG", quality=quality) + + +def _save_tiff(image: np.ndarray, output_path: str): + """Save image as TIFF.""" + try: + import tifffile + + tifffile.imwrite(output_path, image.astype(np.float32)) + except ImportError: + # Fallback to PIL if tifffile not available + img_min = np.nanmin(image) + img_max = np.nanmax(image) + if img_max > img_min: + normalized = ((image - img_min) / (img_max - img_min) * 65535).astype( + np.uint16) + else: + normalized = np.zeros_like(image, dtype=np.uint16) + pil_image = Image.fromarray(normalized) + pil_image.save(output_path, "TIFF") + + +@mosaic2d.default +@autoconfig +def mosaic2d( + tile_info_file: str, + *, + jpeg_output: Annotated[Optional[str], Parameter(name=["--jpeg", "-j"])] = None, + tiff_output: Annotated[Optional[str], Parameter(name=["--tiff", "-t"])] = None, + tile_overlap: float | Literal["auto"] = "auto", + circular_mean: bool = False, + zarr_config: ZarrConfig = None, + general_config: GeneralConfig = None, + nifti_config: NiftiConfig = None, +) -> None: + """ + Create 2D mosaic from tile information in YAML file. + + Parameters + ---------- + tile_info_file : str + Path to YAML file containing tile information. + jpeg_output : str, optional + Path to save JPEG preview image. + tiff_output : str, optional + Path to save TIFF image. + tile_overlap : float | Literal["auto"] + Tile overlap in pixels. If "auto", compute from tile coordinates. + circular_mean : bool + Whether to use circular mean for blending. + zarr_config : ZarrConfig, optional + Zarr configuration. + general_config : GeneralConfig, optional + General configuration. + nifti_config : NiftiConfig, optional + NIfTI configuration. + """ + logger.info("Started mosaic2d") + + # Load tile information from YAML + tile_info = _load_tile_info_yaml(tile_info_file) + + # Extract configuration from YAML + tiles_config = tile_info.get("tiles", []) + if not tiles_config: + raise ValueError("No tiles found in YAML file") + + # Get metadata + metadata = tile_info.get("metadata", {}) + tile_width = metadata.get("tile_width") + tile_height = metadata.get("tile_height") + scan_resolution = metadata.get("scan_resolution", [1.0, 1.0]) + file_key = metadata.get("file_key") # Key for mat file array + + if tile_width is None or tile_height is None: + raise ValueError("tile_width and tile_height must be specified in metadata") + + # Collect tile coordinates and file paths + x_coords_list = [] + y_coords_list = [] + tile_files = [] + + for tile in tiles_config: + x = tile.get("x") + y = tile.get("y") + file_path = tile.get("file_path") + if x is None or y is None or file_path is None: + logger.warning(f"Skipping incomplete tile: {tile}") + continue + x_coords_list.append(x) + y_coords_list.append(y) + tile_files.append(file_path) + + if not tile_files: + raise ValueError("No valid tiles found in YAML file") + + x_coords = np.array(x_coords_list) + y_coords = np.array(y_coords_list) + + # Compute full mosaic dimensions + full_width = int(np.nanmax(x_coords) + tile_width) + full_height = int(np.nanmax(y_coords) + tile_height) + + # Compute blending ramp + blend_ramp = _compute_blending_ramp_2d(tile_width, tile_height, x_coords, y_coords) + + # Process each tile and collect results + tiles = [] + coords = [] + + logger.info(f"Loading and processing {len(tile_files)} tiles") + for i, (x0, y0, file_path) in enumerate(zip(x_coords, y_coords, tile_files)): + if not op.exists(file_path): + logger.warning(f"Tile file not found: {file_path}, skipping") + continue + + logger.info(f"Processing tile {i + 1}/{len(tile_files)}: {file_path}") + + # Load 2D image + try: + image = _load_image_tile(file_path, file_key) + except Exception as e: + logger.warning(f"Failed to load {file_path}: {e}, skipping") + continue + + # Ensure 2D + if image.ndim != 2: + if image.ndim == 3 and image.shape[2] == 1: + image = image[:, :, 0] + else: + logger.warning(f"Image {file_path} is not 2D, skipping") + continue + + # Apply blending ramp if tile matches expected size + if image.shape[0] == tile_height and image.shape[1] == tile_width: + image = image * blend_ramp + elif image.shape[0] >= tile_height and image.shape[1] >= tile_width: + # Crop to expected size + image = image[:tile_height, :tile_width] * blend_ramp + else: + logger.warning( + f"Tile {file_path} has unexpected size {image.shape}, " + f"expected ({tile_height}, {tile_width})" + ) + continue + + tiles.append(image) + coords.append((int(x0), int(y0))) + + if not coords: + raise ValueError("No valid tiles were processed") + + # Stitch tiles + logger.info("Stitching tiles") + tile_size = (tile_width, tile_height) + + # For 2D, stitch_tiles expects (width, height) format + # Pass as (width, height) - the function handles 2D by having no_chunk_dim be empty + result = stitch_tiles( + [TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, tiles)], + full_shape=(full_width, full_height), # (width, height) for 2D + blend_ramp=blend_ramp, + chunk_size=tile_size, + circular_mean=circular_mean, + ) + + # Compute the result + result = result.compute() + + # Set default output name if not provided + general_config.set_default_name(op.splitext(op.basename(tile_info_file))[0]) + + # Save to Zarr + out = general_config.out + logger.info(f"Saving to Zarr: {out}") + + # Result is (width, height), but Zarr expects (height, width) for 2D + # Transpose to get (height, width) + result_2d = result.T + + # Compute zarr layout for 2D + chunk, shard = compute_zarr_layout((full_height, full_width), np.float32, + zarr_config) + + zarr_config.out = out + zgroup = from_config(zarr_config) + + if shard: + result_dask = da.rechunk(da.from_array(result_2d, chunks=chunk), chunks=shard) + else: + result_dask = da.rechunk(da.from_array(result_2d, chunks=chunk), chunks=chunk) + + writer = zgroup.create_array("0", shape=result_2d.shape, dtype=np.float32, + zarr_config=zarr_config) + + task = da.store(result_dask, writer, compute=False) + with ProgressBar(): + task.compute() + + # Generate pyramid and metadata + logger.info("Generating pyramid and metadata") + zgroup.generate_pyramid() + + scan_resolution_2d = scan_resolution[:2] if len(scan_resolution) >= 2 else [1.0, + 1.0] + zgroup.write_ome_metadata(["y", "x"], space_scale=scan_resolution_2d, + space_unit="millimeter") + + if nifti_config and nifti_config.nii: + from niizarr import default_nifti_header + + nii_header = default_nifti_header( + zgroup["0"], zgroup._get_zarr_python_group().attrs["multiscales"] + ) + nii_header.set_xyzt_units("mm") + zgroup.write_nifti_header(nii_header) + + logger.info("Finished generating pyramid") + + # Save JPEG if requested + if jpeg_output: + logger.info(f"Saving JPEG preview: {jpeg_output}") + _save_jpeg(result_2d, jpeg_output) + + # Save TIFF if requested + if tiff_output: + logger.info(f"Saving TIFF: {tiff_output}") + _save_tiff(result_2d, tiff_output) + + logger.info("Finished mosaic2d") From 65e22991b07b57e411506f284fb86d1f8553d164 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Thu, 4 Dec 2025 12:01:16 -0500 Subject: [PATCH 064/133] wip: oct stitching --- linc_convert/modalities/psoct/mosaic2d.py | 87 +++++-------------- linc_convert/modalities/psoct/mosaic3d.py | 100 ++++++++-------------- 2 files changed, 56 insertions(+), 131 deletions(-) diff --git a/linc_convert/modalities/psoct/mosaic2d.py b/linc_convert/modalities/psoct/mosaic2d.py index 2c04f4c7..b3bd4481 100644 --- a/linc_convert/modalities/psoct/mosaic2d.py +++ b/linc_convert/modalities/psoct/mosaic2d.py @@ -17,7 +17,7 @@ from PIL import Image from linc_convert.modalities.psoct.cli import psoct -from linc_convert.modalities.psoct.stitch import TileInfo, stitch_tiles +from linc_convert.modalities.psoct.stitch import MosaicInfo, TileInfo from linc_convert.utils.io.matlab import as_arraywrapper from linc_convert.utils.io.zarr import from_config from linc_convert.utils.io.zarr.helpers import \ @@ -43,50 +43,6 @@ def _load_tile_info_yaml(yaml_file: str) -> dict: return yaml.safe_load(f) -def _compute_blending_ramp_2d( - tile_width: int, tile_height: int, x_coords: np.ndarray, y_coords: np.ndarray -) -> np.ndarray: - """ - Compute blending ramp for 2D tile stitching. - - This computes overlap regions between tiles and creates a blending ramp. - """ - # Find minimum distances between tile centers to estimate overlap - if len(x_coords) == 0 or len(y_coords) == 0: - return np.ones((tile_height, tile_width), dtype=np.float32) - - # Estimate overlap from coordinate spacing - x_coords_flat = x_coords[~np.isnan(x_coords)] - y_coords_flat = y_coords[~np.isnan(y_coords)] - - if len(x_coords_flat) > 1: - x_spacing = np.min(np.diff(np.sort(np.unique(x_coords_flat)))) - x_overlap = max(0, tile_width - int(x_spacing)) if x_spacing < tile_width else 0 - else: - x_overlap = 0 - - if len(y_coords_flat) > 1: - y_spacing = np.min(np.diff(np.sort(np.unique(y_coords_flat)))) - y_overlap = max(0, - tile_height - int(y_spacing)) if y_spacing < tile_height else 0 - else: - y_overlap = 0 - - # Create blending ramp - wx = np.ones(tile_height, dtype=np.float32) - wy = np.ones(tile_width, dtype=np.float32) - - if x_overlap > 0: - wx[:x_overlap] = np.linspace(0, 1, x_overlap, dtype=np.float32) - wx[-x_overlap:] = np.linspace(1, 0, x_overlap, dtype=np.float32) - - if y_overlap > 0: - wy[:y_overlap] = np.linspace(0, 1, y_overlap, dtype=np.float32) - wy[-y_overlap:] = np.linspace(1, 0, y_overlap, dtype=np.float32) - - return np.outer(wx, wy) - - def _load_image_tile(file_path: str, key: str = None) -> da.Array: """Load 2D image from a file (NIfTI or mat).""" if file_path.endswith(('.nii', '.nii.gz')): @@ -224,13 +180,10 @@ def mosaic2d( x_coords = np.array(x_coords_list) y_coords = np.array(y_coords_list) - # Compute full mosaic dimensions + # Compute full mosaic dimensions (will be used by MosaicInfo) full_width = int(np.nanmax(x_coords) + tile_width) full_height = int(np.nanmax(y_coords) + tile_height) - # Compute blending ramp - blend_ramp = _compute_blending_ramp_2d(tile_width, tile_height, x_coords, y_coords) - # Process each tile and collect results tiles = [] coords = [] @@ -258,16 +211,15 @@ def mosaic2d( logger.warning(f"Image {file_path} is not 2D, skipping") continue - # Apply blending ramp if tile matches expected size - if image.shape[0] == tile_height and image.shape[1] == tile_width: - image = image * blend_ramp - elif image.shape[0] >= tile_height and image.shape[1] >= tile_width: - # Crop to expected size - image = image[:tile_height, :tile_width] * blend_ramp + # Validate and crop tile to expected size + if image.shape[0] >= tile_height and image.shape[1] >= tile_width: + # Crop to expected size if needed + if image.shape[0] != tile_height or image.shape[1] != tile_width: + image = image[:tile_height, :tile_width] else: logger.warning( f"Tile {file_path} has unexpected size {image.shape}, " - f"expected ({tile_height}, {tile_width})" + f"expected at least ({tile_height}, {tile_width})" ) continue @@ -277,20 +229,25 @@ def mosaic2d( if not coords: raise ValueError("No valid tiles were processed") - # Stitch tiles + # Stitch tiles using MosaicInfo logger.info("Stitching tiles") tile_size = (tile_width, tile_height) - - # For 2D, stitch_tiles expects (width, height) format - # Pass as (width, height) - the function handles 2D by having no_chunk_dim be empty - result = stitch_tiles( - [TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, tiles)], - full_shape=(full_width, full_height), # (width, height) for 2D - blend_ramp=blend_ramp, + + # Create MosaicInfo for 2D mosaic + mosaic = MosaicInfo.from_tiles_and_coords( + tiles=[TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, tiles)], + tile_width=tile_width, + tile_height=tile_height, + x_coords=x_coords, + y_coords=y_coords, + depth=None, # 2D mosaic chunk_size=tile_size, circular_mean=circular_mean, ) - + + # Stitch using lazy dask operations + result = mosaic.stitch() + # Compute the result result = result.compute() diff --git a/linc_convert/modalities/psoct/mosaic3d.py b/linc_convert/modalities/psoct/mosaic3d.py index 3334d507..bc10ec90 100644 --- a/linc_convert/modalities/psoct/mosaic3d.py +++ b/linc_convert/modalities/psoct/mosaic3d.py @@ -20,7 +20,7 @@ from linc_convert.modalities.psoct.cli import psoct from linc_convert.modalities.psoct.single_tile import process_complex3d -from linc_convert.modalities.psoct.stitch import TileInfo, stitch_tiles +from linc_convert.modalities.psoct.stitch import MosaicInfo, TileInfo from linc_convert.utils.io.matlab import as_arraywrapper from linc_convert.utils.io.zarr import from_config from linc_convert.utils.io.zarr.helpers import \ @@ -47,50 +47,6 @@ def _load_tile_info_yaml(yaml_file: str) -> dict: return yaml.safe_load(f) -def _compute_blending_ramp( - tile_width: int, tile_height: int, x_coords: np.ndarray, y_coords: np.ndarray -) -> np.ndarray: - """ - Compute blending ramp for tile stitching. - - This computes overlap regions between tiles and creates a blending ramp. - """ - # Find minimum distances between tile centers to estimate overlap - if len(x_coords) == 0 or len(y_coords) == 0: - return np.ones((tile_height, tile_width), dtype=np.float32) - - # Estimate overlap from coordinate spacing - x_coords_flat = x_coords[~np.isnan(x_coords)] - y_coords_flat = y_coords[~np.isnan(y_coords)] - - if len(x_coords_flat) > 1: - x_spacing = np.min(np.diff(np.sort(np.unique(x_coords_flat)))) - x_overlap = max(0, tile_width - int(x_spacing)) if x_spacing < tile_width else 0 - else: - x_overlap = 0 - - if len(y_coords_flat) > 1: - y_spacing = np.min(np.diff(np.sort(np.unique(y_coords_flat)))) - y_overlap = max(0, - tile_height - int(y_spacing)) if y_spacing < tile_height else 0 - else: - y_overlap = 0 - - # Create blending ramp - wx = np.ones(tile_height, dtype=np.float32) - wy = np.ones(tile_width, dtype=np.float32) - - if x_overlap > 0: - wx[:x_overlap] = np.linspace(0, 1, x_overlap, dtype=np.float32) - wx[-x_overlap:] = np.linspace(1, 0, x_overlap, dtype=np.float32) - - if y_overlap > 0: - wy[:y_overlap] = np.linspace(0, 1, y_overlap, dtype=np.float32) - wy[-y_overlap:] = np.linspace(1, 0, y_overlap, dtype=np.float32) - - return np.outer(wx, wy) - - def _load_complex_tile(file_path: str, key: str = None) -> da.Array: """Load complex 3D data from a mat file.""" wrapper = as_arraywrapper(file_path, key) @@ -227,9 +183,6 @@ def mosaic3d( full_width = int(np.nanmax(x_coords) + tile_width) full_height = int(np.nanmax(y_coords) + tile_height) - # Compute blending ramp - blend_ramp = _compute_blending_ramp(tile_width, tile_height, x_coords, y_coords) - # Compute zarr layout chunk, shard = compute_zarr_layout((depth, full_height, full_width), np.float32, zarr_config) @@ -284,9 +237,9 @@ def mosaic3d( R3D = da.flip(R3D, axis=2) O3D = da.flip(O3D, axis=2) - # Clip and apply blending ramp + # Clip tiles results = da.stack([dBI3D, R3D, O3D], axis=3) - results = results[clip_x:, clip_y:, :, :] * blend_ramp[:, :, None, None] + results = results[clip_x:, clip_y:, :, :] dbi_tiles.append(results[:, :, :, 0]) r3d_tiles.append(results[:, :, :, 1]) @@ -296,33 +249,48 @@ def mosaic3d( if not coords: raise ValueError("No valid tiles were processed") - # Stitch tiles for each modality + # Stitch tiles for each modality using MosaicInfo logger.info("Stitching tiles") tile_size = (tile_width, tile_height) - - dBI_result = stitch_tiles( - [TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, dbi_tiles)], - full_shape=(full_width, full_height, depth), - blend_ramp=blend_ramp, + + # Create MosaicInfo for each modality + dbi_mosaic = MosaicInfo.from_tiles_and_coords( + tiles=[TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, dbi_tiles)], + tile_width=tile_width, + tile_height=tile_height, + x_coords=x_coords, + y_coords=y_coords, + depth=depth, chunk_size=tile_size, circular_mean=False, ) - - R3D_result = stitch_tiles( - [TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, r3d_tiles)], - full_shape=(full_width, full_height, depth), - blend_ramp=blend_ramp, + + r3d_mosaic = MosaicInfo.from_tiles_and_coords( + tiles=[TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, r3d_tiles)], + tile_width=tile_width, + tile_height=tile_height, + x_coords=x_coords, + y_coords=y_coords, + depth=depth, chunk_size=tile_size, circular_mean=False, ) - - O3D_result = stitch_tiles( - [TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, o3d_tiles)], - full_shape=(full_width, full_height, depth), - blend_ramp=blend_ramp, + + o3d_mosaic = MosaicInfo.from_tiles_and_coords( + tiles=[TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, o3d_tiles)], + tile_width=tile_width, + tile_height=tile_height, + x_coords=x_coords, + y_coords=y_coords, + depth=depth, chunk_size=tile_size, circular_mean=False, ) + + # Stitch using lazy dask operations + dBI_result = dbi_mosaic.stitch() + R3D_result = r3d_mosaic.stitch() + O3D_result = o3d_mosaic.stitch() # Transpose to (z, y, x) for output dBI_result = dBI_result.transpose(2, 1, 0) From c222a1dc2e931cb52522ebc7703ec8564e2886d6 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Thu, 4 Dec 2025 12:18:29 -0500 Subject: [PATCH 065/133] wip: psoct stitching --- linc_convert/modalities/psoct/mosaic2d.py | 140 +++++- linc_convert/modalities/psoct/mosaic3d.py | 6 + linc_convert/modalities/psoct/stitch.py | 493 ++++++++++++++++------ 3 files changed, 494 insertions(+), 145 deletions(-) diff --git a/linc_convert/modalities/psoct/mosaic2d.py b/linc_convert/modalities/psoct/mosaic2d.py index b3bd4481..bf0f7471 100644 --- a/linc_convert/modalities/psoct/mosaic2d.py +++ b/linc_convert/modalities/psoct/mosaic2d.py @@ -44,29 +44,116 @@ def _load_tile_info_yaml(yaml_file: str) -> dict: def _load_image_tile(file_path: str, key: str = None) -> da.Array: - """Load 2D image from a file (NIfTI or mat).""" + """ + Load 2D image from a file with lazy loading support. + + Supports: + - .mat files (MATLAB) + - Zarr archives (groups or arrays) + - NIfTI files (with mmap for lazy loading) + - Other formats via dask-image + """ + import os.path as op + + # Check for .mat files + if file_path.endswith('.mat'): + wrapper = as_arraywrapper(file_path, key) + if not hasattr(wrapper, "dtype"): + raise ValueError(f"Could not load array from {file_path}") + data = wrapper + # Handle 3D data - take middle slice + if data.ndim == 3: + data = data[:, :, data.shape[2] // 2] + elif data.ndim > 3: + data = data.reshape(data.shape[0], data.shape[1], -1)[:, :, 0] + return da.from_array(data, chunks="auto") + + # Check for zarr archives + # Check if path looks like zarr (directory with zarr metadata files) + is_zarr = False + if op.isdir(file_path): + # Check for zarr v3 (zarr.json) or v2 (.zgroup or .zarray) + if op.exists(op.join(file_path, 'zarr.json')) or \ + op.exists(op.join(file_path, '.zgroup')) or \ + op.exists(op.join(file_path, '.zarray')): + is_zarr = True + elif file_path.endswith('.zarr') or '.zarr' in file_path: + is_zarr = True + + if is_zarr: + try: + from linc_convert.utils.io.zarr import open_array, open_group + + # Try to open as zarr group first + try: + zarr_group = open_group(file_path, mode="r") + # It's a group, try to get array '0' + if '0' in zarr_group.keys(): + zarr_array_wrapper = zarr_group['0'] + # Get underlying zarr array for dask conversion + # ZarrPythonArray has _array attribute with the actual zarr.Array + if hasattr(zarr_array_wrapper, '_array'): + zarr_python_array = zarr_array_wrapper._array + elif hasattr(zarr_array_wrapper, '_zarr_array'): + zarr_python_array = zarr_array_wrapper._zarr_array + else: + # Fallback: try to use the wrapper directly + zarr_python_array = zarr_array_wrapper + data = da.from_array(zarr_python_array, chunks=zarr_python_array.chunks) + else: + raise ValueError(f"Zarr group at {file_path} does not contain array '0'") + except (ValueError, KeyError): + # Try as array + zarr_array_wrapper = open_array(file_path, mode="r") + if hasattr(zarr_array_wrapper, '_array'): + zarr_python_array = zarr_array_wrapper._array + elif hasattr(zarr_array_wrapper, '_zarr_array'): + zarr_python_array = zarr_array_wrapper._zarr_array + else: + zarr_python_array = zarr_array_wrapper + data = da.from_array(zarr_python_array, chunks=zarr_python_array.chunks) + + # Handle 3D data - take middle slice + if data.ndim == 3: + data = data[:, :, data.shape[2] // 2] + elif data.ndim > 3: + data = data.reshape(data.shape[0], data.shape[1], -1)[:, :, 0] + return data + except Exception as e: + logger.warning(f"Failed to load as zarr: {e}, trying other formats") + + # Check for NIfTI files if file_path.endswith(('.nii', '.nii.gz')): img = nib.load(file_path) - data = img.get_fdata() - # If 3D, take middle slice or first slice + # Use dataobj for lazy loading with mmap instead of get_fdata() + dataobj = img.dataobj + # Convert to dask array with lazy loading + data = da.from_array(dataobj, chunks="auto") + # Handle 3D data - take middle slice if data.ndim == 3: data = data[:, :, data.shape[2] // 2] elif data.ndim > 3: # Take first 2D slice data = data.reshape(data.shape[0], data.shape[1], -1)[:, :, 0] - return da.from_array(data, chunks="auto") - else: - # Assume mat file - wrapper = as_arraywrapper(file_path, key) - if not hasattr(wrapper, "dtype"): - raise ValueError(f"Could not load array from {file_path}") - data = wrapper[:] + return data + + # Try dask-image as fallback + try: + import dask_image.imread # noqa: F401 + data = dask_image.imread.imread(file_path) # Handle 3D data - take middle slice if data.ndim == 3: data = data[:, :, data.shape[2] // 2] elif data.ndim > 3: data = data.reshape(data.shape[0], data.shape[1], -1)[:, :, 0] - return da.from_array(data, chunks="auto") + return data + except ImportError: + raise ValueError( + f"Could not load {file_path}. " + "Supported formats: .mat, .zarr, .nii/.nii.gz, or formats supported by dask-image" + ) + except Exception as e: + raise ValueError(f"Failed to load {file_path} with dask-image: {e}") def _save_jpeg(image: np.ndarray, output_path: str, quality: int = 95): @@ -85,21 +172,26 @@ def _save_jpeg(image: np.ndarray, output_path: str, quality: int = 95): def _save_tiff(image: np.ndarray, output_path: str): - """Save image as TIFF.""" + """Save image as TIFF without normalization - data is saved as-is.""" try: import tifffile - - tifffile.imwrite(output_path, image.astype(np.float32)) + # Save data as-is without any normalization or scaling + # Preserve original dtype and values + tifffile.imwrite(output_path, image) except ImportError: # Fallback to PIL if tifffile not available - img_min = np.nanmin(image) - img_max = np.nanmax(image) - if img_max > img_min: - normalized = ((image - img_min) / (img_max - img_min) * 65535).astype( - np.uint16) + # PIL requires uint8 or uint16, so we need to convert + # But we don't normalize - just convert dtype preserving values as much as possible + if image.dtype in (np.float32, np.float64): + # For float, convert to uint16 without normalization + # This will clip values outside [0, 65535] range + image_uint16 = np.clip(image, 0, 65535).astype(np.uint16) + elif image.dtype == np.uint8: + image_uint16 = image else: - normalized = np.zeros_like(image, dtype=np.uint16) - pil_image = Image.fromarray(normalized) + # For other types, convert to uint16 + image_uint16 = np.clip(image, 0, 65535).astype(np.uint16) + pil_image = Image.fromarray(image_uint16) pil_image.save(output_path, "TIFF") @@ -154,6 +246,11 @@ def mosaic2d( tile_height = metadata.get("tile_height") scan_resolution = metadata.get("scan_resolution", [1.0, 1.0]) file_key = metadata.get("file_key") # Key for mat file array + + # Use tile_overlap from function parameter (defaults to "auto") + # If "auto" and metadata has tile_overlap, use that instead + if tile_overlap == "auto" and "tile_overlap" in metadata: + tile_overlap = metadata.get("tile_overlap", "auto") if tile_width is None or tile_height is None: raise ValueError("tile_width and tile_height must be specified in metadata") @@ -243,6 +340,7 @@ def mosaic2d( depth=None, # 2D mosaic chunk_size=tile_size, circular_mean=circular_mean, + tile_overlap=tile_overlap, ) # Stitch using lazy dask operations diff --git a/linc_convert/modalities/psoct/mosaic3d.py b/linc_convert/modalities/psoct/mosaic3d.py index bc10ec90..f0027c57 100644 --- a/linc_convert/modalities/psoct/mosaic3d.py +++ b/linc_convert/modalities/psoct/mosaic3d.py @@ -253,6 +253,9 @@ def mosaic3d( logger.info("Stitching tiles") tile_size = (tile_width, tile_height) + # Get tile_overlap from metadata (defaults to "auto") + tile_overlap = metadata.get("tile_overlap", "auto") + # Create MosaicInfo for each modality dbi_mosaic = MosaicInfo.from_tiles_and_coords( tiles=[TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, dbi_tiles)], @@ -263,6 +266,7 @@ def mosaic3d( depth=depth, chunk_size=tile_size, circular_mean=False, + tile_overlap=tile_overlap, ) r3d_mosaic = MosaicInfo.from_tiles_and_coords( @@ -274,6 +278,7 @@ def mosaic3d( depth=depth, chunk_size=tile_size, circular_mean=False, + tile_overlap=tile_overlap, ) o3d_mosaic = MosaicInfo.from_tiles_and_coords( @@ -285,6 +290,7 @@ def mosaic3d( depth=depth, chunk_size=tile_size, circular_mean=False, + tile_overlap=tile_overlap, ) # Stitch using lazy dask operations diff --git a/linc_convert/modalities/psoct/stitch.py b/linc_convert/modalities/psoct/stitch.py index f04afbad..7996c785 100644 --- a/linc_convert/modalities/psoct/stitch.py +++ b/linc_convert/modalities/psoct/stitch.py @@ -1,8 +1,8 @@ from __future__ import annotations from collections import defaultdict -from dataclasses import dataclass -from typing import Dict, List, Optional, Sequence, Tuple, Union +from dataclasses import dataclass, field +from typing import List, Literal, Optional, Tuple, Union import dask.array as da import numpy as np @@ -18,151 +18,396 @@ class TileInfo: @dataclass class MosaicInfo: + """Container for mosaic information with integrated blending and stitching.""" + tiles: List[TileInfo] - full_shape: Tuple[int, int, int] + full_shape: Tuple[int, ...] # Can be 2D (width, height) or 3D (width, height, depth) blend_ramp: da.Array chunk_size: Tuple[int, int] - circular_mean: bool - - -def _to_dask(arr: ArrayLike, chunks="auto") -> da.Array: - """Convert array-like to dask array.""" - if isinstance(arr, da.Array): - return arr - return da.from_array(np.asarray(arr), chunks=chunks) - - -def _normalize_overlap( - overlap: Union[int, Tuple[int, int]], -) -> Tuple[int, int]: - """Normalize overlap parameter to (row_overlap, col_overlap) tuple.""" - if isinstance(overlap, tuple): - if len(overlap) != 2: - raise ValueError("overlap tuple must be (row_overlap, col_overlap).") - row_overlap, col_overlap = overlap - else: - row_overlap = col_overlap = int(overlap) - - if row_overlap < 0 or col_overlap < 0: - raise ValueError("Overlap must be non-negative.") - return row_overlap, col_overlap - - -def _blending_ramp( - shape: Tuple[int, int], - overlap: Tuple[int, int], -) -> np.ndarray: - """ - Create a separable 2D blending ramp similar to build_slice(). - """ - wx = np.ones(shape[0], dtype=np.float32) - wy = np.ones(shape[1], dtype=np.float32) - if overlap[0] > 0: - wx[:overlap[0]] = np.linspace(0, 1, overlap[0], dtype=np.float32) - wx[-overlap[0]:] = np.linspace(1, 0, overlap[0], dtype=np.float32) - if overlap[1] > 0: - wy[:overlap[1]] = np.linspace(0, 1, overlap[1], dtype=np.float32) - wy[-overlap[1]:] = np.linspace(1, 0, overlap[1], dtype=np.float32) - return np.outer(wx, wy) + circular_mean: bool = False + + @classmethod + def from_tiles_and_coords( + cls, + tiles: List[TileInfo], + tile_width: int, + tile_height: int, + x_coords: np.ndarray, + y_coords: np.ndarray, + depth: Optional[int] = None, + chunk_size: Optional[Tuple[int, int]] = None, + circular_mean: bool = False, + tile_overlap: Union[float, int, Tuple[float, float], Tuple[int, int], Literal["auto"]] = "auto", + ) -> "MosaicInfo": + """ + Create MosaicInfo from tiles and coordinates. + + Parameters + ---------- + tiles : List[TileInfo] + List of tile information with coordinates and images. + tile_width : int + Width of each tile. + tile_height : int + Height of each tile. + x_coords : np.ndarray + X coordinates of tile centers. + y_coords : np.ndarray + Y coordinates of tile centers. + depth : Optional[int] + Depth dimension for 3D mosaics. If None, creates 2D mosaic. + chunk_size : Optional[Tuple[int, int]] + Chunk size for dask arrays. If None, uses tile dimensions. + circular_mean : bool + Whether to use circular mean for blending. + tile_overlap : Union[float, int, Tuple[float, float], Tuple[int, int], Literal["auto"]] + Overlap specification: + - float in (0, 1): percentile of tile size (e.g., 0.2 = 20% overlap on each side) + - int: number of pixels overlap on each side + - Tuple[float, float]: percentiles for (x, y) dimensions + - Tuple[int, int]: pixel counts for (x, y) dimensions + - "auto": compute maximum overlap from coordinates (default) + + Returns + ------- + MosaicInfo + Configured MosaicInfo instance. + """ + # Compute full mosaic dimensions + full_width = int(np.nanmax(x_coords) + tile_width) + full_height = int(np.nanmax(y_coords) + tile_height) + + if depth is not None: + full_shape = (full_width, full_height, depth) + else: + full_shape = (full_width, full_height) + + # Normalize tile_overlap to pixels + x_overlap, y_overlap = _normalize_tile_overlap( + tile_overlap, tile_width, tile_height, x_coords, y_coords + ) + + # Compute blending ramp with explicit overlap + blend_ramp = cls._compute_blending_ramp( + tile_width, tile_height, x_overlap, y_overlap + ) + + if chunk_size is None: + chunk_size = (tile_width, tile_height) + + return cls( + tiles=tiles, + full_shape=full_shape, + blend_ramp=blend_ramp, + chunk_size=chunk_size, + circular_mean=circular_mean, + ) + + @staticmethod + def _compute_blending_ramp( + tile_width: int, + tile_height: int, + x_overlap: int, + y_overlap: int, + ) -> da.Array: + """ + Compute blending ramp for tile stitching with explicit overlap values. + + Parameters + ---------- + tile_width : int + Width of each tile. + tile_height : int + Height of each tile. + x_overlap : int + Number of overlapping pixels in x dimension (on each side). + y_overlap : int + Number of overlapping pixels in y dimension (on each side). + + Returns + ------- + da.Array + Blending ramp as a dask array. + """ + # Create blending ramp + wx = np.ones(tile_height, dtype=np.float32) + wy = np.ones(tile_width, dtype=np.float32) + + if x_overlap > 0: + wx[:x_overlap] = np.linspace(0, 1, x_overlap, dtype=np.float32) + wx[-x_overlap:] = np.linspace(1, 0, x_overlap, dtype=np.float32) + + if y_overlap > 0: + wy[:y_overlap] = np.linspace(0, 1, y_overlap, dtype=np.float32) + wy[-y_overlap:] = np.linspace(1, 0, y_overlap, dtype=np.float32) + + ramp = np.outer(wx, wy) + return da.from_array(ramp, chunks="auto") + + def stitch(self) -> da.Array: + """ + Stitch tiles into a mosaic using lazy dask operations. + + Returns + ------- + da.Array + Stitched mosaic as a dask array. Shape is (width, height, ...) for 3D + or (width, height) for 2D. + """ + if not self.tiles: + raise ValueError("No tiles to stitch") + + pw, ph = self.chunk_size + no_chunk_dim = self.full_shape[2:] # Empty for 2D, (depth,) for 3D + + # Create canvas with appropriate shape + canvas = da.zeros( + self.full_shape, + chunks=(pw, ph, *no_chunk_dim), + dtype=np.float32 + ) + weight = da.zeros( + self.full_shape[:2], + chunks=(pw, ph), + dtype=np.float32 + ) + + # Collect per-chunk pieces + block_tiles = defaultdict(list) + block_weights = defaultdict(list) + + for tile_info in self.tiles: + x0, y0, t = tile_info.x, tile_info.y, tile_info.image + blend_ramp = self.blend_ramp + + # Determine which chunks this tile falls into + x0c = x0 // pw + y0c = y0 // ph + x1c = (x0 + pw - 1) // pw + y1c = (y0 + ph - 1) // ph + + # Pad region covering those chunks + x_start = x0c * pw + y_start = y0c * ph + x_end = (x1c + 1) * pw + y_end = (y1c + 1) * ph + + # Create block canvas with appropriate shape + if not self.circular_mean: + block_canvas = da.zeros( + (x_end - x_start, y_end - y_start, *no_chunk_dim), + chunks=(pw, ph, *no_chunk_dim), + dtype=np.float32 + ) + else: + block_canvas = da.zeros( + (x_end - x_start, y_end - y_start, *no_chunk_dim, 2), + chunks=(pw, ph, *no_chunk_dim, 2), + dtype=np.float32 + ) + + block_weight = da.zeros( + (x_end - x_start, y_end - y_start), + chunks=(pw, ph), + dtype=np.float32 + ) + + # Place tile into that big block + xs = slice(x0 - x_start, x0 - x_start + pw) + ys = slice(y0 - y_start, y0 - y_start + ph) + + # Apply blending ramp - handle both 2D and 3D + if not self.circular_mean: + # For 2D: t * blend_ramp + # For 3D: t * blend_ramp[..., None] + if len(no_chunk_dim) == 0: # 2D + weighted_tile = t * blend_ramp + else: # 3D + weighted_tile = t * blend_ramp[:, :, None] + block_canvas[xs, ys, ...] = weighted_tile + else: + # Circular mean: convert to sin/cos representation + rad = da.deg2rad(t) * 2 + block_canvas[xs, ys, ..., 0] = da.cos(rad) + block_canvas[xs, ys, ..., 1] = da.sin(rad) + + block_weight[xs, ys] = blend_ramp + + # Chop into per-chunk pieces + for cx in range(x0c, x1c + 1): + for cy in range(y0c, y1c + 1): + bid = (cx, cy) + sub_x = slice((cx - x0c) * pw, (cx - x0c + 1) * pw) + sub_y = slice((cy - y0c) * ph, (cy - y0c + 1) * ph) + block_tiles[bid].append(block_canvas[sub_x, sub_y, ...]) + block_weights[bid].append(block_weight[sub_x, sub_y]) + + # Combine blocks using map_blocks + canvas = da.map_blocks( + _combine_block, + canvas, + block_tiles, + block_weights, + self.circular_mean, + dtype=canvas.dtype, + chunks=(pw, ph, *no_chunk_dim) + ) + + # Crop canvas to get rid of excessive padded pixels + canvas = canvas[:self.full_shape[0], :self.full_shape[1], ...] + return canvas def _combine_block( _, block_tiles, block_weights, circular_mean, *args, block_info=None, **kwargs - ): +): + """Combine overlapping tile blocks with weighted averaging.""" chunk_id = tuple(block_info[None]['chunk-location'][:2]) paints = block_tiles[chunk_id] weights = block_weights[chunk_id] shape = block_info[None]['chunk-shape'] - + if not paints: return np.broadcast_to(np.zeros((), dtype=np.float32), shape) - + total_paint = da.sum(da.stack(paints, axis=0), axis=0) total_weight = da.sum(da.stack(weights, axis=0), axis=0) normalized = total_paint / np.broadcast_to(total_weight, total_paint.shape) + if not circular_mean: return normalized return da.rad2deg(da.arctan2(normalized[..., 1], normalized[..., 0])) / 2 +def _to_dask(arr: ArrayLike, chunks="auto") -> da.Array: + """Convert array-like to dask array.""" + if isinstance(arr, da.Array): + return arr + return da.from_array(np.asarray(arr), chunks=chunks) + + +def _normalize_tile_overlap( + tile_overlap: Union[float, int, Tuple[float, float], Tuple[int, int], Literal["auto"]], + tile_width: int, + tile_height: int, + x_coords: Optional[np.ndarray] = None, + y_coords: Optional[np.ndarray] = None, +) -> Tuple[int, int]: + """ + Normalize tile_overlap parameter to (x_overlap, y_overlap) in pixels. + + Parameters + ---------- + tile_overlap : Union[float, int, Tuple[float, float], Tuple[int, int], Literal["auto"]] + Overlap specification: + - float in (0, 1): percentile of tile size (e.g., 0.2 = 20% overlap on each side) + - int: number of pixels overlap on each side + - Tuple[float, float]: percentiles for (x, y) dimensions + - Tuple[int, int]: pixel counts for (x, y) dimensions + - "auto": compute maximum overlap from coordinates + tile_width : int + Width of each tile. + tile_height : int + Height of each tile. + x_coords : Optional[np.ndarray] + X coordinates for auto computation. + y_coords : Optional[np.ndarray] + Y coordinates for auto computation. + + Returns + ------- + Tuple[int, int] + (x_overlap, y_overlap) in pixels. + """ + if tile_overlap == "auto": + if x_coords is None or y_coords is None: + raise ValueError("x_coords and y_coords required for auto tile_overlap") + return _compute_auto_overlap(tile_width, tile_height, x_coords, y_coords) + + # Handle tuple case + if isinstance(tile_overlap, tuple): + if len(tile_overlap) != 2: + raise ValueError("tile_overlap tuple must have 2 elements (x_overlap, y_overlap)") + x_overlap_val, y_overlap_val = tile_overlap + else: + x_overlap_val = y_overlap_val = tile_overlap + + # Convert to pixels if float (percentile) + if isinstance(x_overlap_val, float): + if not (0 < x_overlap_val < 1): + raise ValueError(f"Float tile_overlap must be in range (0, 1), got {x_overlap_val}") + x_overlap = int(tile_width * x_overlap_val) + else: + x_overlap = int(x_overlap_val) + + if isinstance(y_overlap_val, float): + if not (0 < y_overlap_val < 1): + raise ValueError(f"Float tile_overlap must be in range (0, 1), got {y_overlap_val}") + y_overlap = int(tile_height * y_overlap_val) + else: + y_overlap = int(y_overlap_val) + + if x_overlap < 0 or y_overlap < 0: + raise ValueError("Overlap must be non-negative.") + + return x_overlap, y_overlap + + +def _compute_auto_overlap( + tile_width: int, tile_height: int, x_coords: np.ndarray, y_coords: np.ndarray +) -> Tuple[int, int]: + """ + Compute maximum overlap from tile coordinates. + + Returns the maximum number of overlapping pixels in each dimension. + """ + if len(x_coords) == 0 or len(y_coords) == 0: + return 0, 0 + + x_coords_flat = x_coords[~np.isnan(x_coords)] + y_coords_flat = y_coords[~np.isnan(y_coords)] + + x_overlap = 0 + y_overlap = 0 + + if len(x_coords_flat) > 1: + x_spacing = np.min(np.diff(np.sort(np.unique(x_coords_flat)))) + x_overlap = max(0, tile_width - int(x_spacing)) if x_spacing < tile_width else 0 + + if len(y_coords_flat) > 1: + y_spacing = np.min(np.diff(np.sort(np.unique(y_coords_flat)))) + y_overlap = max(0, tile_height - int(y_spacing)) if y_spacing < tile_height else 0 + + return x_overlap, y_overlap + + +# Backward compatibility: keep stitch_tiles as a function that uses MosaicInfo def stitch_tiles( - tile_infos, - full_shape, - blend_ramp, - chunk_size=None, - circular_mean=False, + tile_infos: List[TileInfo], + full_shape: Tuple[int, ...], + blend_ramp: Union[np.ndarray, da.Array], + chunk_size: Optional[Tuple[int, int]] = None, + circular_mean: bool = False, **_ - ): +) -> da.Array: """ - Chunk‐aligned padding + per‐block summation (build_slice_chunked_padding). + Stitch tiles into a mosaic (backward compatibility wrapper). + + This function is kept for backward compatibility. New code should use + MosaicInfo.stitch() directly. """ - if not chunk_size: + if not tile_infos: + raise ValueError("No tiles provided") + + if chunk_size is None: chunk_size = tile_infos[0].image.shape[:2] - pw, ph = chunk_size - no_chunk_dim = full_shape[2:] - canvas = da.zeros(full_shape, - chunks=(pw, ph, *no_chunk_dim), - dtype=np.float32) - weight = da.zeros(full_shape[:2], - chunks=(pw, ph), - dtype=np.float32) - - # collect per‐chunk pieces - block_tiles = defaultdict(list) - block_weights = defaultdict(list) - - for tile_info in tile_infos: - x0, y0, t = tile_info.x, tile_info.y, tile_info.image - x0c = x0 // pw - y0c = y0 // ph - x1c = (x0 + pw - 1) // pw - y1c = (y0 + ph - 1) // ph - - # pad region covering those chunks - x_start = x0c * pw - y_start = y0c * ph - x_end = (x1c + 1) * pw - y_end = (y1c + 1) * ph - - if not circular_mean: - block_canvas = da.zeros((x_end - x_start, y_end - y_start, *no_chunk_dim), - chunks=(pw, ph, *no_chunk_dim), - dtype=np.float32) - else: - block_canvas = da.zeros( - (x_end - x_start, y_end - y_start, *no_chunk_dim, 2), - chunks=(pw, ph, *no_chunk_dim, 2), - dtype=np.float32) - - block_weight = da.zeros((x_end - x_start, y_end - y_start), - chunks=(pw, ph), - dtype=np.float32) - - # place tile into that big block - xs = slice(x0 - x_start, x0 - x_start + pw) - ys = slice(y0 - y_start, y0 - y_start + ph) - if not circular_mean: - block_canvas[xs, ys, ...] = t * blend_ramp - else: - rad = da.deg2rad(t) * 2 - block_canvas[xs, ys, ..., 0] = da.cos(rad) - block_canvas[xs, ys, ..., 1] = da.sin(rad) - - block_weight[xs, ys] = blend_ramp - - # chop into per‐chunk pieces - for cx in range(x0c, x1c + 1): - for cy in range(y0c, y1c + 1): - bid = (cx, cy) - sub_x = slice((cx - x0c) * pw, (cx - x0c + 1) * pw) - sub_y = slice((cy - y0c) * ph, (cy - y0c + 1) * ph) - block_tiles[bid].append(block_canvas[sub_x, sub_y, ...]) - block_weights[bid].append(block_weight[sub_x, sub_y]) - - canvas = da.map_blocks(_combine_block, canvas, block_tiles, block_weights, - circular_mean, - dtype=canvas.dtype, - chunks=(pw, ph, *no_chunk_dim)) - # crop canvas to get rid of excessive padded pixels - canvas = canvas[:full_shape[0], :full_shape[1], ...] - return canvas + + mosaic_info = MosaicInfo( + tiles=tile_infos, + full_shape=full_shape, + blend_ramp=blend_ramp, + chunk_size=chunk_size, + circular_mean=circular_mean, + ) + + return mosaic_info.stitch() From f435d6d5b57ad36cb4c2bdc47970d30b42ba008b Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Thu, 4 Dec 2025 14:54:09 -0500 Subject: [PATCH 066/133] refactor: simplify MosaicInfo creation by extracting dimensions and coordinates from tiles --- linc_convert/modalities/psoct/mosaic3d.py | 29 ++++++--------------- linc_convert/modalities/psoct/stitch.py | 31 +++++++++++++---------- 2 files changed, 25 insertions(+), 35 deletions(-) diff --git a/linc_convert/modalities/psoct/mosaic3d.py b/linc_convert/modalities/psoct/mosaic3d.py index f0027c57..f045e25a 100644 --- a/linc_convert/modalities/psoct/mosaic3d.py +++ b/linc_convert/modalities/psoct/mosaic3d.py @@ -52,7 +52,7 @@ def _load_complex_tile(file_path: str, key: str = None) -> da.Array: wrapper = as_arraywrapper(file_path, key) if not hasattr(wrapper, "dtype"): raise ValueError(f"Could not load array from {file_path}") - data = wrapper[:] + data = wrapper return da.from_array(data, chunks="auto") @@ -251,44 +251,31 @@ def mosaic3d( # Stitch tiles for each modality using MosaicInfo logger.info("Stitching tiles") - tile_size = (tile_width, tile_height) # Get tile_overlap from metadata (defaults to "auto") tile_overlap = metadata.get("tile_overlap", "auto") - # Create MosaicInfo for each modality - dbi_mosaic = MosaicInfo.from_tiles_and_coords( + # Create MosaicInfo for each modality - dimensions and coordinates extracted from tiles + dbi_mosaic = MosaicInfo.from_tiles( tiles=[TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, dbi_tiles)], - tile_width=tile_width, - tile_height=tile_height, - x_coords=x_coords, - y_coords=y_coords, depth=depth, - chunk_size=tile_size, + chunk_size=None, # Will use tile dimensions circular_mean=False, tile_overlap=tile_overlap, ) - r3d_mosaic = MosaicInfo.from_tiles_and_coords( + r3d_mosaic = MosaicInfo.from_tiles( tiles=[TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, r3d_tiles)], - tile_width=tile_width, - tile_height=tile_height, - x_coords=x_coords, - y_coords=y_coords, depth=depth, - chunk_size=tile_size, + chunk_size=None, # Will use tile dimensions circular_mean=False, tile_overlap=tile_overlap, ) - o3d_mosaic = MosaicInfo.from_tiles_and_coords( + o3d_mosaic = MosaicInfo.from_tiles( tiles=[TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, o3d_tiles)], - tile_width=tile_width, - tile_height=tile_height, - x_coords=x_coords, - y_coords=y_coords, depth=depth, - chunk_size=tile_size, + chunk_size=None, # Will use tile dimensions circular_mean=False, tile_overlap=tile_overlap, ) diff --git a/linc_convert/modalities/psoct/stitch.py b/linc_convert/modalities/psoct/stitch.py index 7996c785..f4eb3062 100644 --- a/linc_convert/modalities/psoct/stitch.py +++ b/linc_convert/modalities/psoct/stitch.py @@ -27,33 +27,21 @@ class MosaicInfo: circular_mean: bool = False @classmethod - def from_tiles_and_coords( + def from_tiles( cls, tiles: List[TileInfo], - tile_width: int, - tile_height: int, - x_coords: np.ndarray, - y_coords: np.ndarray, depth: Optional[int] = None, chunk_size: Optional[Tuple[int, int]] = None, circular_mean: bool = False, tile_overlap: Union[float, int, Tuple[float, float], Tuple[int, int], Literal["auto"]] = "auto", ) -> "MosaicInfo": """ - Create MosaicInfo from tiles and coordinates. + Create MosaicInfo from tiles, extracting dimensions and coordinates automatically. Parameters ---------- tiles : List[TileInfo] List of tile information with coordinates and images. - tile_width : int - Width of each tile. - tile_height : int - Height of each tile. - x_coords : np.ndarray - X coordinates of tile centers. - y_coords : np.ndarray - Y coordinates of tile centers. depth : Optional[int] Depth dimension for 3D mosaics. If None, creates 2D mosaic. chunk_size : Optional[Tuple[int, int]] @@ -73,6 +61,21 @@ def from_tiles_and_coords( MosaicInfo Configured MosaicInfo instance. """ + if not tiles: + raise ValueError("No tiles provided") + + # Extract tile dimensions from first tile + first_tile = tiles[0] + tile_height, tile_width = first_tile.image.shape[:2] + + # Extract depth from first tile if 3D + if depth is None and len(first_tile.image.shape) == 3: + depth = first_tile.image.shape[2] + + # Extract coordinates from tiles + x_coords = np.array([tile.x for tile in tiles]) + y_coords = np.array([tile.y for tile in tiles]) + # Compute full mosaic dimensions full_width = int(np.nanmax(x_coords) + tile_width) full_height = int(np.nanmax(y_coords) + tile_height) From d90c7058995ccc49a0f135c856f6bc50deebc3cb Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Thu, 4 Dec 2025 14:54:18 -0500 Subject: [PATCH 067/133] feat: add mask loading and application to mosaic2d function, with cropping support --- linc_convert/modalities/psoct/mosaic2d.py | 166 ++++++++++++++-------- 1 file changed, 108 insertions(+), 58 deletions(-) diff --git a/linc_convert/modalities/psoct/mosaic2d.py b/linc_convert/modalities/psoct/mosaic2d.py index bf0f7471..f1e9053a 100644 --- a/linc_convert/modalities/psoct/mosaic2d.py +++ b/linc_convert/modalities/psoct/mosaic2d.py @@ -195,6 +195,30 @@ def _save_tiff(image: np.ndarray, output_path: str): pil_image.save(output_path, "TIFF") +def _load_mask(mask_path: str) -> np.ndarray: + """ + Load a binary mask from a file. + + Supports the same formats as _load_image_tile but expects a 2D binary mask. + """ + # Use the same loading function as tiles + mask = _load_image_tile(mask_path, key=None) + + # Ensure it's a 2D array + if mask.ndim != 2: + if mask.ndim == 3 and mask.shape[2] == 1: + mask = mask[:, :, 0] + else: + raise ValueError(f"Mask must be 2D, got shape {mask.shape}") + + # Convert to binary (0 or 1) + # Handle both boolean and numeric masks + mask = mask.compute() if isinstance(mask, da.Array) else mask + mask = (mask > 0).astype(np.float32) + + return mask + + @mosaic2d.default @autoconfig def mosaic2d( @@ -204,6 +228,9 @@ def mosaic2d( tiff_output: Annotated[Optional[str], Parameter(name=["--tiff", "-t"])] = None, tile_overlap: float | Literal["auto"] = "auto", circular_mean: bool = False, + cropx: int = 0, + cropy: int = 0, + mask: Annotated[Optional[str], Parameter(name=["--mask", "-m"])] = None, zarr_config: ZarrConfig = None, general_config: GeneralConfig = None, nifti_config: NiftiConfig = None, @@ -223,6 +250,12 @@ def mosaic2d( Tile overlap in pixels. If "auto", compute from tile coordinates. circular_mean : bool Whether to use circular mean for blending. + cropx : int + Number of pixels to crop from the left side of each tile. Coordinates will be shifted accordingly. + cropy : int + Number of pixels to crop from the top side of each tile. Coordinates will be shifted accordingly. + mask : str, optional + Path to binary mask file to apply to the result. Mask should be 2D and match the result dimensions. zarr_config : ZarrConfig, optional Zarr configuration. general_config : GeneralConfig, optional @@ -242,56 +275,41 @@ def mosaic2d( # Get metadata metadata = tile_info.get("metadata", {}) - tile_width = metadata.get("tile_width") - tile_height = metadata.get("tile_height") scan_resolution = metadata.get("scan_resolution", [1.0, 1.0]) file_key = metadata.get("file_key") # Key for mat file array + # Get crop values from metadata if not provided as parameters + if cropx == 0: + cropx = metadata.get("cropx", 0) + if cropy == 0: + cropy = metadata.get("cropy", 0) + + # Get mask from metadata if not provided as parameter + if mask is None: + mask = metadata.get("mask") + # Use tile_overlap from function parameter (defaults to "auto") # If "auto" and metadata has tile_overlap, use that instead if tile_overlap == "auto" and "tile_overlap" in metadata: tile_overlap = metadata.get("tile_overlap", "auto") - if tile_width is None or tile_height is None: - raise ValueError("tile_width and tile_height must be specified in metadata") - - # Collect tile coordinates and file paths - x_coords_list = [] - y_coords_list = [] - tile_files = [] + # Process each tile and collect TileInfo objects + tile_infos = [] - for tile in tiles_config: + logger.info(f"Loading and processing {len(tiles_config)} tiles") + for i, tile in enumerate(tiles_config): x = tile.get("x") y = tile.get("y") file_path = tile.get("file_path") if x is None or y is None or file_path is None: logger.warning(f"Skipping incomplete tile: {tile}") continue - x_coords_list.append(x) - y_coords_list.append(y) - tile_files.append(file_path) - if not tile_files: - raise ValueError("No valid tiles found in YAML file") - - x_coords = np.array(x_coords_list) - y_coords = np.array(y_coords_list) - - # Compute full mosaic dimensions (will be used by MosaicInfo) - full_width = int(np.nanmax(x_coords) + tile_width) - full_height = int(np.nanmax(y_coords) + tile_height) - - # Process each tile and collect results - tiles = [] - coords = [] - - logger.info(f"Loading and processing {len(tile_files)} tiles") - for i, (x0, y0, file_path) in enumerate(zip(x_coords, y_coords, tile_files)): if not op.exists(file_path): logger.warning(f"Tile file not found: {file_path}, skipping") continue - logger.info(f"Processing tile {i + 1}/{len(tile_files)}: {file_path}") + logger.info(f"Processing tile {i + 1}/{len(tiles_config)}: {file_path}") # Load 2D image try: @@ -300,45 +318,42 @@ def mosaic2d( logger.warning(f"Failed to load {file_path}: {e}, skipping") continue - # Ensure 2D - if image.ndim != 2: - if image.ndim == 3 and image.shape[2] == 1: - image = image[:, :, 0] + # Apply cropping if specified + if cropx > 0 or cropy > 0: + # Crop from left (cropx) and top (cropy) + # This removes pixels from the left and top edges + if image.ndim == 2: + image = image[cropy:, cropx:] + elif image.ndim == 3: + image = image[cropy:, cropx:, :] else: - logger.warning(f"Image {file_path} is not 2D, skipping") + logger.warning(f"Unexpected image dimensions {image.ndim} for {file_path}") continue - - # Validate and crop tile to expected size - if image.shape[0] >= tile_height and image.shape[1] >= tile_width: - # Crop to expected size if needed - if image.shape[0] != tile_height or image.shape[1] != tile_width: - image = image[:tile_height, :tile_width] + + # Shift coordinates to account for cropping + # After cropping cropx pixels from the left, the remaining content + # represents what was at position cropx in the original tile. + # To align this correctly in the mosaic, we shift coordinates by +cropx and +cropy + x = int(x) + cropx + y = int(y) + cropy else: - logger.warning( - f"Tile {file_path} has unexpected size {image.shape}, " - f"expected at least ({tile_height}, {tile_width})" - ) - continue + x = int(x) + y = int(y) - tiles.append(image) - coords.append((int(x0), int(y0))) + # Create TileInfo + tile_infos.append(TileInfo(x=x, y=y, image=image)) - if not coords: + if not tile_infos: raise ValueError("No valid tiles were processed") # Stitch tiles using MosaicInfo logger.info("Stitching tiles") - tile_size = (tile_width, tile_height) - # Create MosaicInfo for 2D mosaic - mosaic = MosaicInfo.from_tiles_and_coords( - tiles=[TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, tiles)], - tile_width=tile_width, - tile_height=tile_height, - x_coords=x_coords, - y_coords=y_coords, + # Create MosaicInfo for 2D mosaic - dimensions and coordinates extracted from tiles + mosaic = MosaicInfo.from_tiles( + tiles=tile_infos, depth=None, # 2D mosaic - chunk_size=tile_size, + chunk_size=None, # Will use tile dimensions circular_mean=circular_mean, tile_overlap=tile_overlap, ) @@ -360,6 +375,41 @@ def mosaic2d( # Transpose to get (height, width) result_2d = result.T + # Apply mask if provided + if mask: + logger.info(f"Loading and applying mask: {mask}") + try: + mask_array = _load_mask(mask) + # Check if mask dimensions match result + if mask_array.shape != result_2d.shape: + logger.warning( + f"Mask shape {mask_array.shape} does not match result shape {result_2d.shape}. " + "Attempting to resize mask." + ) + # Resize mask to match result if possible + try: + from scipy.ndimage import zoom + zoom_factors = (result_2d.shape[0] / mask_array.shape[0], + result_2d.shape[1] / mask_array.shape[1]) + mask_array = zoom(mask_array, zoom_factors, order=0) # order=0 for nearest neighbor + # Ensure binary after resize + mask_array = (mask_array > 0.5).astype(np.float32) + except ImportError: + raise ValueError( + "scipy is required for mask resizing. " + "Please ensure mask dimensions match result dimensions or install scipy." + ) + + # Apply mask (multiply: 0 where mask is 0, keep original value where mask is 1) + result_2d = result_2d * mask_array + logger.info("Mask applied successfully") + except Exception as e: + logger.error(f"Failed to load or apply mask: {e}") + raise + + # Get dimensions from result + full_height, full_width = result_2d.shape + # Compute zarr layout for 2D chunk, shard = compute_zarr_layout((full_height, full_width), np.float32, zarr_config) From d6d920c5e151443740e340841835cbd10394703a Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Thu, 4 Dec 2025 16:01:15 -0500 Subject: [PATCH 068/133] refactor: streamline image loading and enhance mosaic2d function with NIfTI output support --- linc_convert/modalities/psoct/mosaic2d.py | 183 +++++++++++----------- linc_convert/modalities/psoct/stitch.py | 62 ++------ 2 files changed, 102 insertions(+), 143 deletions(-) diff --git a/linc_convert/modalities/psoct/mosaic2d.py b/linc_convert/modalities/psoct/mosaic2d.py index f1e9053a..f2aee72d 100644 --- a/linc_convert/modalities/psoct/mosaic2d.py +++ b/linc_convert/modalities/psoct/mosaic2d.py @@ -90,28 +90,13 @@ def _load_image_tile(file_path: str, key: str = None) -> da.Array: # It's a group, try to get array '0' if '0' in zarr_group.keys(): zarr_array_wrapper = zarr_group['0'] - # Get underlying zarr array for dask conversion - # ZarrPythonArray has _array attribute with the actual zarr.Array - if hasattr(zarr_array_wrapper, '_array'): - zarr_python_array = zarr_array_wrapper._array - elif hasattr(zarr_array_wrapper, '_zarr_array'): - zarr_python_array = zarr_array_wrapper._zarr_array - else: - # Fallback: try to use the wrapper directly - zarr_python_array = zarr_array_wrapper - data = da.from_array(zarr_python_array, chunks=zarr_python_array.chunks) + data = da.from_array(zarr_array_wrapper, chunks=zarr_array_wrapper.chunks) else: raise ValueError(f"Zarr group at {file_path} does not contain array '0'") except (ValueError, KeyError): # Try as array zarr_array_wrapper = open_array(file_path, mode="r") - if hasattr(zarr_array_wrapper, '_array'): - zarr_python_array = zarr_array_wrapper._array - elif hasattr(zarr_array_wrapper, '_zarr_array'): - zarr_python_array = zarr_array_wrapper._zarr_array - else: - zarr_python_array = zarr_array_wrapper - data = da.from_array(zarr_python_array, chunks=zarr_python_array.chunks) + data = da.from_array(zarr_array_wrapper, chunks=zarr_array_wrapper.chunks) # Handle 3D data - take middle slice if data.ndim == 3: @@ -226,10 +211,11 @@ def mosaic2d( *, jpeg_output: Annotated[Optional[str], Parameter(name=["--jpeg", "-j"])] = None, tiff_output: Annotated[Optional[str], Parameter(name=["--tiff", "-t"])] = None, - tile_overlap: float | Literal["auto"] = "auto", + nifti_output: Annotated[Optional[str], Parameter(name=["--nifti", "-n"])] = None, + tile_overlap: float = 0.2, circular_mean: bool = False, - cropx: int = 0, - cropy: int = 0, + clip_x: int = 0, + clip_y: int = 0, mask: Annotated[Optional[str], Parameter(name=["--mask", "-m"])] = None, zarr_config: ZarrConfig = None, general_config: GeneralConfig = None, @@ -250,10 +236,10 @@ def mosaic2d( Tile overlap in pixels. If "auto", compute from tile coordinates. circular_mean : bool Whether to use circular mean for blending. - cropx : int - Number of pixels to crop from the left side of each tile. Coordinates will be shifted accordingly. - cropy : int - Number of pixels to crop from the top side of each tile. Coordinates will be shifted accordingly. + clip_x : int + Number of pixels to clip from the left side of each tile. Coordinates will be shifted accordingly. + clip_y : int + Number of pixels to clip from the top side of each tile. Coordinates will be shifted accordingly. mask : str, optional Path to binary mask file to apply to the result. Mask should be 2D and match the result dimensions. zarr_config : ZarrConfig, optional @@ -277,12 +263,12 @@ def mosaic2d( metadata = tile_info.get("metadata", {}) scan_resolution = metadata.get("scan_resolution", [1.0, 1.0]) file_key = metadata.get("file_key") # Key for mat file array - - # Get crop values from metadata if not provided as parameters - if cropx == 0: - cropx = metadata.get("cropx", 0) - if cropy == 0: - cropy = metadata.get("cropy", 0) + base_dir = metadata.get("base_dir", ".") + # Get clip values from metadata if not provided as parameters + if clip_x == 0: + clip_x = metadata.get("clip_x", 0) + if clip_y == 0: + clip_y = metadata.get("clip_y", 0) # Get mask from metadata if not provided as parameter if mask is None: @@ -300,11 +286,12 @@ def mosaic2d( for i, tile in enumerate(tiles_config): x = tile.get("x") y = tile.get("y") - file_path = tile.get("file_path") + file_path = tile.get("filepath") if x is None or y is None or file_path is None: logger.warning(f"Skipping incomplete tile: {tile}") continue - + if base_dir: + file_path = op.join(base_dir, file_path) if not op.exists(file_path): logger.warning(f"Tile file not found: {file_path}, skipping") continue @@ -318,24 +305,24 @@ def mosaic2d( logger.warning(f"Failed to load {file_path}: {e}, skipping") continue - # Apply cropping if specified - if cropx > 0 or cropy > 0: - # Crop from left (cropx) and top (cropy) + # Apply clipping if specified + if clip_x > 0 or clip_y > 0: + # Clip from left (clip_x) and top (clip_y) # This removes pixels from the left and top edges if image.ndim == 2: - image = image[cropy:, cropx:] - elif image.ndim == 3: - image = image[cropy:, cropx:, :] + image = image[clip_x:, clip_y:] + elif image.ndim >= 3: + image = image[clip_x:, clip_y:, ...] else: logger.warning(f"Unexpected image dimensions {image.ndim} for {file_path}") continue - # Shift coordinates to account for cropping - # After cropping cropx pixels from the left, the remaining content - # represents what was at position cropx in the original tile. - # To align this correctly in the mosaic, we shift coordinates by +cropx and +cropy - x = int(x) + cropx - y = int(y) + cropy + # Shift coordinates to account for clipping + # After clipping clip_x pixels from the left, the remaining content + # represents what was at position clip_x in the original tile. + # To align this correctly in the mosaic, we shift coordinates by +clip_x and +clip_y + x = int(x) + clip_x + y = int(y) + clip_y else: x = int(x) y = int(y) @@ -364,12 +351,6 @@ def mosaic2d( # Compute the result result = result.compute() - # Set default output name if not provided - general_config.set_default_name(op.splitext(op.basename(tile_info_file))[0]) - - # Save to Zarr - out = general_config.out - logger.info(f"Saving to Zarr: {out}") # Result is (width, height), but Zarr expects (height, width) for 2D # Transpose to get (height, width) @@ -406,48 +387,13 @@ def mosaic2d( except Exception as e: logger.error(f"Failed to load or apply mask: {e}") raise - + + # Compute result if it's still a dask array + result_2d = result_2d.compute() if isinstance(result_2d, da.Array) else result_2d + # Get dimensions from result full_height, full_width = result_2d.shape - - # Compute zarr layout for 2D - chunk, shard = compute_zarr_layout((full_height, full_width), np.float32, - zarr_config) - - zarr_config.out = out - zgroup = from_config(zarr_config) - - if shard: - result_dask = da.rechunk(da.from_array(result_2d, chunks=chunk), chunks=shard) - else: - result_dask = da.rechunk(da.from_array(result_2d, chunks=chunk), chunks=chunk) - - writer = zgroup.create_array("0", shape=result_2d.shape, dtype=np.float32, - zarr_config=zarr_config) - - task = da.store(result_dask, writer, compute=False) - with ProgressBar(): - task.compute() - - # Generate pyramid and metadata - logger.info("Generating pyramid and metadata") - zgroup.generate_pyramid() - - scan_resolution_2d = scan_resolution[:2] if len(scan_resolution) >= 2 else [1.0, - 1.0] - zgroup.write_ome_metadata(["y", "x"], space_scale=scan_resolution_2d, - space_unit="millimeter") - - if nifti_config and nifti_config.nii: - from niizarr import default_nifti_header - - nii_header = default_nifti_header( - zgroup["0"], zgroup._get_zarr_python_group().attrs["multiscales"] - ) - nii_header.set_xyzt_units("mm") - zgroup.write_nifti_header(nii_header) - - logger.info("Finished generating pyramid") + scan_resolution_2d = scan_resolution[:2] if len(scan_resolution) >= 2 else [1.0, 1.0] # Save JPEG if requested if jpeg_output: @@ -459,4 +405,61 @@ def mosaic2d( logger.info(f"Saving TIFF: {tiff_output}") _save_tiff(result_2d, tiff_output) + # Save NIfTI file if requested + if nifti_output: + logger.info(f"Saving NIfTI file: {nifti_output}") + # Create affine matrix for 2D image + # NIfTI expects (x, y) but our data is (y, x), so we need to handle this + affine = np.eye(4) + affine[0, 0] = scan_resolution_2d[1] # x voxel size + affine[1, 1] = scan_resolution_2d[0] # y voxel size + affine[0, 3] = -scan_resolution_2d[1] * full_width / 2.0 # center x + affine[1, 3] = -scan_resolution_2d[0] * full_height / 2.0 # center y + + # Create NIfTI image (2D array needs to be expanded to 3D for NIfTI) + # Add a singleton z dimension + result_3d = result_2d[:, :] + nii_img = nib.Nifti1Image(result_3d, affine) + nii_img.header.set_xyzt_units(xyz="mm", t="sec") + nib.save(nii_img, nifti_output) + logger.info("NIfTI file saved successfully") + + # Save to Zarr if output is specified + if general_config.out: + logger.info(f"Saving to Zarr: {general_config.out}") + + # Compute zarr layout for 2D + chunk, shard = compute_zarr_layout(result_2d.shape, np.float32, + zarr_config) + + # Prepare Zarr group (similar to single_volume.py) + zgroup = from_config(general_config.out, zarr_config) + + # Create array and write data directly (like single_volume.py) + dataset = zgroup.create_array( + "0", shape=result_2d.shape, dtype=np.float32, zarr_config=zarr_config + ) + + # Write data directly using indexing (similar to single_volume.py) + dataset[...] = result_2d + + # Generate pyramid and metadata + logger.info("Generating pyramid and metadata") + zgroup.generate_pyramid() + zgroup.write_ome_metadata(["y", "x"], space_scale=scan_resolution_2d, + space_unit="millimeter") + + if nifti_config and nifti_config.nii: + header = build_nifti_header( + zgroup=zgroup, + voxel_size_zyx=(1.0, scan_resolution_2d[0], scan_resolution_2d[1]), + unit="millimeter", + nii_config=nifti_config, + ) + zgroup.write_nifti_header(header) + + logger.info("Finished generating pyramid") + else: + logger.info("Skipping Zarr output (no output path specified)") + logger.info("Finished mosaic2d") diff --git a/linc_convert/modalities/psoct/stitch.py b/linc_convert/modalities/psoct/stitch.py index f4eb3062..e3d71d11 100644 --- a/linc_convert/modalities/psoct/stitch.py +++ b/linc_convert/modalities/psoct/stitch.py @@ -66,7 +66,7 @@ def from_tiles( # Extract tile dimensions from first tile first_tile = tiles[0] - tile_height, tile_width = first_tile.image.shape[:2] + tile_width, tile_height = first_tile.image.shape[:2] # Extract depth from first tile if 3D if depth is None and len(first_tile.image.shape) == 3: @@ -87,7 +87,7 @@ def from_tiles( # Normalize tile_overlap to pixels x_overlap, y_overlap = _normalize_tile_overlap( - tile_overlap, tile_width, tile_height, x_coords, y_coords + tile_overlap, tile_width, tile_height ) # Compute blending ramp with explicit overlap @@ -133,9 +133,8 @@ def _compute_blending_ramp( Blending ramp as a dask array. """ # Create blending ramp - wx = np.ones(tile_height, dtype=np.float32) - wy = np.ones(tile_width, dtype=np.float32) - + wx = np.ones(tile_width, dtype=np.float32) + wy = np.ones(tile_height, dtype=np.float32) if x_overlap > 0: wx[:x_overlap] = np.linspace(0, 1, x_overlap, dtype=np.float32) wx[-x_overlap:] = np.linspace(1, 0, x_overlap, dtype=np.float32) @@ -145,7 +144,7 @@ def _compute_blending_ramp( wy[-y_overlap:] = np.linspace(1, 0, y_overlap, dtype=np.float32) ramp = np.outer(wx, wy) - return da.from_array(ramp, chunks="auto") + return ramp def stitch(self) -> da.Array: """ @@ -218,14 +217,13 @@ def stitch(self) -> da.Array: # Place tile into that big block xs = slice(x0 - x_start, x0 - x_start + pw) ys = slice(y0 - y_start, y0 - y_start + ph) - # Apply blending ramp - handle both 2D and 3D if not self.circular_mean: # For 2D: t * blend_ramp # For 3D: t * blend_ramp[..., None] if len(no_chunk_dim) == 0: # 2D weighted_tile = t * blend_ramp - else: # 3D + else: weighted_tile = t * blend_ramp[:, :, None] block_canvas[xs, ys, ...] = weighted_tile else: @@ -282,32 +280,22 @@ def _combine_block( return da.rad2deg(da.arctan2(normalized[..., 1], normalized[..., 0])) / 2 -def _to_dask(arr: ArrayLike, chunks="auto") -> da.Array: - """Convert array-like to dask array.""" - if isinstance(arr, da.Array): - return arr - return da.from_array(np.asarray(arr), chunks=chunks) - - def _normalize_tile_overlap( - tile_overlap: Union[float, int, Tuple[float, float], Tuple[int, int], Literal["auto"]], + tile_overlap: Union[float, int, Tuple[float, float], Tuple[int, int]], tile_width: int, - tile_height: int, - x_coords: Optional[np.ndarray] = None, - y_coords: Optional[np.ndarray] = None, + tile_height: int ) -> Tuple[int, int]: """ Normalize tile_overlap parameter to (x_overlap, y_overlap) in pixels. Parameters ---------- - tile_overlap : Union[float, int, Tuple[float, float], Tuple[int, int], Literal["auto"]] + tile_overlap : Union[float, int, Tuple[float, float], Tuple[int, int]] Overlap specification: - float in (0, 1): percentile of tile size (e.g., 0.2 = 20% overlap on each side) - int: number of pixels overlap on each side - Tuple[float, float]: percentiles for (x, y) dimensions - Tuple[int, int]: pixel counts for (x, y) dimensions - - "auto": compute maximum overlap from coordinates tile_width : int Width of each tile. tile_height : int @@ -322,10 +310,6 @@ def _normalize_tile_overlap( Tuple[int, int] (x_overlap, y_overlap) in pixels. """ - if tile_overlap == "auto": - if x_coords is None or y_coords is None: - raise ValueError("x_coords and y_coords required for auto tile_overlap") - return _compute_auto_overlap(tile_width, tile_height, x_coords, y_coords) # Handle tuple case if isinstance(tile_overlap, tuple): @@ -356,34 +340,6 @@ def _normalize_tile_overlap( return x_overlap, y_overlap -def _compute_auto_overlap( - tile_width: int, tile_height: int, x_coords: np.ndarray, y_coords: np.ndarray -) -> Tuple[int, int]: - """ - Compute maximum overlap from tile coordinates. - - Returns the maximum number of overlapping pixels in each dimension. - """ - if len(x_coords) == 0 or len(y_coords) == 0: - return 0, 0 - - x_coords_flat = x_coords[~np.isnan(x_coords)] - y_coords_flat = y_coords[~np.isnan(y_coords)] - - x_overlap = 0 - y_overlap = 0 - - if len(x_coords_flat) > 1: - x_spacing = np.min(np.diff(np.sort(np.unique(x_coords_flat)))) - x_overlap = max(0, tile_width - int(x_spacing)) if x_spacing < tile_width else 0 - - if len(y_coords_flat) > 1: - y_spacing = np.min(np.diff(np.sort(np.unique(y_coords_flat)))) - y_overlap = max(0, tile_height - int(y_spacing)) if y_spacing < tile_height else 0 - - return x_overlap, y_overlap - - # Backward compatibility: keep stitch_tiles as a function that uses MosaicInfo def stitch_tiles( tile_infos: List[TileInfo], From 08c8c02433925a30f2751ad7ca8e8dade33a6a60 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Fri, 5 Dec 2025 11:17:27 -0500 Subject: [PATCH 069/133] enhance: integrate progress bar for tile processing and streamline result handling in mosaic2d function --- linc_convert/modalities/psoct/mosaic2d.py | 48 ++++++++--------------- 1 file changed, 16 insertions(+), 32 deletions(-) diff --git a/linc_convert/modalities/psoct/mosaic2d.py b/linc_convert/modalities/psoct/mosaic2d.py index f2aee72d..252abde2 100644 --- a/linc_convert/modalities/psoct/mosaic2d.py +++ b/linc_convert/modalities/psoct/mosaic2d.py @@ -15,6 +15,7 @@ from cyclopts import Parameter from dask.diagnostics import ProgressBar from PIL import Image +from tqdm import tqdm from linc_convert.modalities.psoct.cli import psoct from linc_convert.modalities.psoct.stitch import MosaicInfo, TileInfo @@ -283,7 +284,7 @@ def mosaic2d( tile_infos = [] logger.info(f"Loading and processing {len(tiles_config)} tiles") - for i, tile in enumerate(tiles_config): + for tile in tqdm(tiles_config, desc="Processing tiles"): x = tile.get("x") y = tile.get("y") file_path = tile.get("filepath") @@ -296,8 +297,6 @@ def mosaic2d( logger.warning(f"Tile file not found: {file_path}, skipping") continue - logger.info(f"Processing tile {i + 1}/{len(tiles_config)}: {file_path}") - # Load 2D image try: image = _load_image_tile(file_path, file_key) @@ -346,16 +345,9 @@ def mosaic2d( ) # Stitch using lazy dask operations - result = mosaic.stitch() - - # Compute the result - result = result.compute() - - - # Result is (width, height), but Zarr expects (height, width) for 2D - # Transpose to get (height, width) - result_2d = result.T + result_2d = mosaic.stitch() + # Apply mask if provided if mask: logger.info(f"Loading and applying mask: {mask}") @@ -389,33 +381,14 @@ def mosaic2d( raise # Compute result if it's still a dask array - result_2d = result_2d.compute() if isinstance(result_2d, da.Array) else result_2d + result_2d = np.array(result_2d.compute()) if isinstance(result_2d, da.Array) else result_2d - # Get dimensions from result - full_height, full_width = result_2d.shape scan_resolution_2d = scan_resolution[:2] if len(scan_resolution) >= 2 else [1.0, 1.0] - - # Save JPEG if requested - if jpeg_output: - logger.info(f"Saving JPEG preview: {jpeg_output}") - _save_jpeg(result_2d, jpeg_output) - - # Save TIFF if requested - if tiff_output: - logger.info(f"Saving TIFF: {tiff_output}") - _save_tiff(result_2d, tiff_output) - # Save NIfTI file if requested if nifti_output: logger.info(f"Saving NIfTI file: {nifti_output}") # Create affine matrix for 2D image - # NIfTI expects (x, y) but our data is (y, x), so we need to handle this affine = np.eye(4) - affine[0, 0] = scan_resolution_2d[1] # x voxel size - affine[1, 1] = scan_resolution_2d[0] # y voxel size - affine[0, 3] = -scan_resolution_2d[1] * full_width / 2.0 # center x - affine[1, 3] = -scan_resolution_2d[0] * full_height / 2.0 # center y - # Create NIfTI image (2D array needs to be expanded to 3D for NIfTI) # Add a singleton z dimension result_3d = result_2d[:, :] @@ -423,7 +396,18 @@ def mosaic2d( nii_img.header.set_xyzt_units(xyz="mm", t="sec") nib.save(nii_img, nifti_output) logger.info("NIfTI file saved successfully") + result_2d = result_2d.T + # Save JPEG if requested + if jpeg_output: + logger.info(f"Saving JPEG preview: {jpeg_output}") + _save_jpeg(result_2d, jpeg_output) + + # Save TIFF if requested + if tiff_output: + logger.info(f"Saving TIFF: {tiff_output}") + _save_tiff(result_2d, tiff_output) + # Save to Zarr if output is specified if general_config.out: logger.info(f"Saving to Zarr: {general_config.out}") From f53b6aaa194fd450bf00fd5889383b59cea2ecfe Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Fri, 5 Dec 2025 11:17:36 -0500 Subject: [PATCH 070/133] feat: add mosaic2d and mosaic3d to module --- linc_convert/modalities/psoct/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/linc_convert/modalities/psoct/__init__.py b/linc_convert/modalities/psoct/__init__.py index c842709e..89346c92 100644 --- a/linc_convert/modalities/psoct/__init__.py +++ b/linc_convert/modalities/psoct/__init__.py @@ -4,8 +4,8 @@ import h5py as _h5py # noqa: F401 import scipy as _scipy # noqa: F401 - __all__ = ["cli", "multi_slice", "single_volume"] + __all__ = ["cli", "multi_slice", "single_volume", "mosaic2d", "mosaic3d"] - from . import cli, multi_slice, single_volume + from . import cli, multi_slice, single_volume, mosaic2d, mosaic3d except ImportError: pass From ada14dcfdb62bc268d7a529b3da6aa4596baad00 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Fri, 5 Dec 2025 11:18:11 -0500 Subject: [PATCH 071/133] feat: enhance mosaic3d function with unit handling and improved NIfTI header generation --- linc_convert/modalities/psoct/mosaic3d.py | 31 +++++++++++++---------- linc_convert/utils/io/zarr/helpers.py | 5 ++-- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/linc_convert/modalities/psoct/mosaic3d.py b/linc_convert/modalities/psoct/mosaic3d.py index f045e25a..25d3d727 100644 --- a/linc_convert/modalities/psoct/mosaic3d.py +++ b/linc_convert/modalities/psoct/mosaic3d.py @@ -25,6 +25,8 @@ from linc_convert.utils.io.zarr import from_config from linc_convert.utils.io.zarr.helpers import \ _compute_zarr_layout as compute_zarr_layout +from linc_convert.utils.nifti_header import build_nifti_header +from linc_convert.utils.unit import to_ome_unit from linc_convert.utils.zarr_config import ( GeneralConfig, NiftiConfig, @@ -137,6 +139,7 @@ def mosaic3d( tile_height = metadata.get("tile_height") depth = metadata.get("depth") scan_resolution = metadata.get("scan_resolution", [1.0, 1.0, 1.0]) + unit = metadata.get("unit", "millimeter") flip_z = metadata.get("flip_z", True) clip_x = metadata.get("clip_x", 0) clip_y = metadata.get("clip_y", 0) @@ -253,7 +256,7 @@ def mosaic3d( logger.info("Stitching tiles") # Get tile_overlap from metadata (defaults to "auto") - tile_overlap = metadata.get("tile_overlap", "auto") + tile_overlap = metadata.get("tile_overlap") # Create MosaicInfo for each modality - dimensions and coordinates extracted from tiles dbi_mosaic = MosaicInfo.from_tiles( @@ -276,7 +279,7 @@ def mosaic3d( tiles=[TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, o3d_tiles)], depth=depth, chunk_size=None, # Will use tile dimensions - circular_mean=False, + circular_mean=True, tile_overlap=tile_overlap, ) @@ -302,8 +305,7 @@ def mosaic3d( else: res = da.rechunk(res, chunks=chunk) - zarr_config.out = out - zgroup = from_config(zarr_config) + zgroup = from_config(out, zarr_config) zgroups.append(zgroup) writer = zgroup.create_array("0", shape=res.shape, dtype=np.float32, @@ -320,20 +322,21 @@ def mosaic3d( logger.info("Finished stitching, generating pyramid and metadata") for zgroup in zgroups: - zgroup.generate_pyramid() - zgroup.write_ome_metadata(["z", "y", "x"], space_scale=scan_resolution, - space_unit="millimeter") + zgroup.generate_pyramid(mode="mean", no_pyramid_axis=zarr_config.no_pyramid_axis) + logger.info("Write OME-Zarr multiscale metadata") + zgroup.write_ome_metadata(axes=["z", "y", "x"], space_scale=scan_resolution, + space_unit=to_ome_unit(unit)) - if not zarr_config.nii: + if not nifti_config.nii: continue - from niizarr import default_nifti_header - - nii_header = default_nifti_header( - zgroup["0"], zgroup._get_zarr_python_group().attrs["multiscales"] + header = build_nifti_header( + zgroup=zgroup, + voxel_size_zyx=tuple(scan_resolution), + unit=unit, + nii_config=nifti_config, ) - nii_header.set_xyzt_units("mm") - zgroup.write_nifti_header(nii_header) + zgroup.write_nifti_header(header) logger.info("Finished generating pyramid") diff --git a/linc_convert/utils/io/zarr/helpers.py b/linc_convert/utils/io/zarr/helpers.py index 42b8c831..b755c788 100644 --- a/linc_convert/utils/io/zarr/helpers.py +++ b/linc_convert/utils/io/zarr/helpers.py @@ -37,11 +37,12 @@ def _compute_zarr_layout( else: chunk_tc = (1 if zarr_config.chunk_time else shape[0],) shard_tc = (chunk_tc[0] if zarr_config.shard_time else shape[0],) - elif ndim == 3: + elif ndim == 3 or ndim == 2: chunk_tc = tuple() shard_tc = tuple() + else: - raise ValueError("Zarr layout only supports 3+ dimensions.") + raise ValueError("Zarr layout only supports 2+ dimensions.") chunk = zarr_config.chunk if len(chunk) > ndim: From cc57a44ecb108a1d56a3e108c90df5aaffa50079 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Tue, 16 Dec 2025 10:13:27 -0500 Subject: [PATCH 072/133] feat: implement mosaic2d and mosaic3d modules for 2D and 3D mosaic creation from tile information --- .../psoct/{mosaic2d.py => mosaic.py} | 70 +++++++++++-------- .../psoct/{mosaic3d.py => mosaic_complex.py} | 61 ++++------------ 2 files changed, 57 insertions(+), 74 deletions(-) rename linc_convert/modalities/psoct/{mosaic2d.py => mosaic.py} (89%) rename linc_convert/modalities/psoct/{mosaic3d.py => mosaic_complex.py} (88%) diff --git a/linc_convert/modalities/psoct/mosaic2d.py b/linc_convert/modalities/psoct/mosaic.py similarity index 89% rename from linc_convert/modalities/psoct/mosaic2d.py rename to linc_convert/modalities/psoct/mosaic.py index 252abde2..71996442 100644 --- a/linc_convert/modalities/psoct/mosaic2d.py +++ b/linc_convert/modalities/psoct/mosaic.py @@ -5,9 +5,12 @@ import logging import os import os.path as op +from concurrent.futures import ThreadPoolExecutor +from concurrent.futures.process import ProcessPoolExecutor from typing import Annotated, Literal, Optional import cyclopts +import dask import dask.array as da import nibabel as nib import numpy as np @@ -54,7 +57,6 @@ def _load_image_tile(file_path: str, key: str = None) -> da.Array: - NIfTI files (with mmap for lazy loading) - Other formats via dask-image """ - import os.path as op # Check for .mat files if file_path.endswith('.mat'): @@ -62,11 +64,11 @@ def _load_image_tile(file_path: str, key: str = None) -> da.Array: if not hasattr(wrapper, "dtype"): raise ValueError(f"Could not load array from {file_path}") data = wrapper - # Handle 3D data - take middle slice - if data.ndim == 3: - data = data[:, :, data.shape[2] // 2] - elif data.ndim > 3: - data = data.reshape(data.shape[0], data.shape[1], -1)[:, :, 0] + # # Handle 3D data - take middle slice + # if data.ndim == 3: + # data = data[:, :, data.shape[2] // 2] + # elif data.ndim > 3: + # data = data.reshape(data.shape[0], data.shape[1], -1)[:, :, 0] return da.from_array(data, chunks="auto") # Check for zarr archives @@ -100,10 +102,10 @@ def _load_image_tile(file_path: str, key: str = None) -> da.Array: data = da.from_array(zarr_array_wrapper, chunks=zarr_array_wrapper.chunks) # Handle 3D data - take middle slice - if data.ndim == 3: - data = data[:, :, data.shape[2] // 2] - elif data.ndim > 3: - data = data.reshape(data.shape[0], data.shape[1], -1)[:, :, 0] + # if data.ndim == 3: + # data = data[:, :, data.shape[2] // 2] + # elif data.ndim > 3: + # data = data.reshape(data.shape[0], data.shape[1], -1)[:, :, 0] return data except Exception as e: logger.warning(f"Failed to load as zarr: {e}, trying other formats") @@ -114,13 +116,13 @@ def _load_image_tile(file_path: str, key: str = None) -> da.Array: # Use dataobj for lazy loading with mmap instead of get_fdata() dataobj = img.dataobj # Convert to dask array with lazy loading - data = da.from_array(dataobj, chunks="auto") + data = da.from_array(dataobj, chunks=img.shape) # Handle 3D data - take middle slice - if data.ndim == 3: - data = data[:, :, data.shape[2] // 2] - elif data.ndim > 3: - # Take first 2D slice - data = data.reshape(data.shape[0], data.shape[1], -1)[:, :, 0] + # if data.ndim == 3: + # data = data[:, :, data.shape[2] // 2] + # elif data.ndim > 3: + # # Take first 2D slice + # data = data.reshape(data.shape[0], data.shape[1], -1)[:, :, 0] return data # Try dask-image as fallback @@ -128,10 +130,10 @@ def _load_image_tile(file_path: str, key: str = None) -> da.Array: import dask_image.imread # noqa: F401 data = dask_image.imread.imread(file_path) # Handle 3D data - take middle slice - if data.ndim == 3: - data = data[:, :, data.shape[2] // 2] - elif data.ndim > 3: - data = data.reshape(data.shape[0], data.shape[1], -1)[:, :, 0] + # if data.ndim == 3: + # data = data[:, :, data.shape[2] // 2] + # elif data.ndim > 3: + # data = data.reshape(data.shape[0], data.shape[1], -1)[:, :, 0] return data except ImportError: raise ValueError( @@ -204,7 +206,6 @@ def _load_mask(mask_path: str) -> np.ndarray: return mask - @mosaic2d.default @autoconfig def mosaic2d( @@ -380,8 +381,9 @@ def mosaic2d( logger.error(f"Failed to load or apply mask: {e}") raise - # Compute result if it's still a dask array - result_2d = np.array(result_2d.compute()) if isinstance(result_2d, da.Array) else result_2d + if nifti_output or jpeg_output or tiff_output: + with ProgressBar(): + result_2d = np.array(result_2d) scan_resolution_2d = scan_resolution[:2] if len(scan_resolution) >= 2 else [1.0, 1.0] # Save NIfTI file if requested @@ -391,8 +393,8 @@ def mosaic2d( affine = np.eye(4) # Create NIfTI image (2D array needs to be expanded to 3D for NIfTI) # Add a singleton z dimension - result_3d = result_2d[:, :] - nii_img = nib.Nifti1Image(result_3d, affine) + # result_3d = result_2d[:, :] + nii_img = nib.Nifti1Image(result_2d, affine) nii_img.header.set_xyzt_units(xyz="mm", t="sec") nib.save(nii_img, nifti_output) logger.info("NIfTI file saved successfully") @@ -421,16 +423,28 @@ def mosaic2d( # Create array and write data directly (like single_volume.py) dataset = zgroup.create_array( - "0", shape=result_2d.shape, dtype=np.float32, zarr_config=zarr_config + "0", shape=result_2d.shape, dtype=np.float32, chunk=chunk, + shard=shard, + zarr_config=zarr_config ) # Write data directly using indexing (similar to single_volume.py) - dataset[...] = result_2d + if isinstance(result_2d, da.Array): + if shard: + result_2d = da.rechunk(result_2d, chunks=shard) + else: + result_2d = da.rechunk(result_2d, chunks=chunk) + with ProgressBar(): + da.store(result_2d, dataset, compute=True) + + else: + dataset[...] = result_2d + # Generate pyramid and metadata logger.info("Generating pyramid and metadata") zgroup.generate_pyramid() - zgroup.write_ome_metadata(["y", "x"], space_scale=scan_resolution_2d, + zgroup.write_ome_metadata(["z","y", "x"], space_scale=scan_resolution_2d, space_unit="millimeter") if nifti_config and nifti_config.nii: diff --git a/linc_convert/modalities/psoct/mosaic3d.py b/linc_convert/modalities/psoct/mosaic_complex.py similarity index 88% rename from linc_convert/modalities/psoct/mosaic3d.py rename to linc_convert/modalities/psoct/mosaic_complex.py index 25d3d727..50eee6bc 100644 --- a/linc_convert/modalities/psoct/mosaic3d.py +++ b/linc_convert/modalities/psoct/mosaic_complex.py @@ -50,12 +50,15 @@ def _load_tile_info_yaml(yaml_file: str) -> dict: def _load_complex_tile(file_path: str, key: str = None) -> da.Array: - """Load complex 3D data from a mat file.""" - wrapper = as_arraywrapper(file_path, key) - if not hasattr(wrapper, "dtype"): - raise ValueError(f"Could not load array from {file_path}") - data = wrapper - return da.from_array(data, chunks="auto") + """Load complex 3D data from a file.""" + if file_path.endswith('.mat'): + wrapper = as_arraywrapper(file_path, key) + if not hasattr(wrapper, "dtype"): + raise ValueError(f"Could not load array from {file_path}") + data = wrapper + elif file_path.endswith('.nii') or file_path.endswith('.nii.gz'): + data = nib.load(file_path).dataobj + return da.from_array(data, chunks=data.shape) def _shift_focus( @@ -135,6 +138,7 @@ def mosaic3d( # Get metadata metadata = tile_info.get("metadata", {}) + base_dir = metadata.get("base_dir") tile_width = metadata.get("tile_width") tile_height = metadata.get("tile_height") depth = metadata.get("depth") @@ -168,13 +172,13 @@ def mosaic3d( for tile in tiles_config: x = tile.get("x") y = tile.get("y") - file_path = tile.get("file_path") + file_path = tile.get("filepath") if x is None or y is None or file_path is None: logger.warning(f"Skipping incomplete tile: {tile}") continue x_coords_list.append(x) y_coords_list.append(y) - tile_files.append(file_path) + tile_files.append(op.join(base_dir,file_path)) if not tile_files: raise ValueError("No valid tiles found in YAML file") @@ -256,8 +260,8 @@ def mosaic3d( logger.info("Stitching tiles") # Get tile_overlap from metadata (defaults to "auto") - tile_overlap = metadata.get("tile_overlap") - + tile_overlap = metadata.get("tile_overlap", 0.2) + # Create MosaicInfo for each modality - dimensions and coordinates extracted from tiles dbi_mosaic = MosaicInfo.from_tiles( tiles=[TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, dbi_tiles)], @@ -316,7 +320,7 @@ def mosaic3d( # Store results task = da.store(results, writers, compute=False) with ProgressBar(): - task.compute() + da.compute(task) scan_resolution = scan_resolution[:3][::-1] # Reverse to (z, y, x) logger.info("Finished stitching, generating pyramid and metadata") @@ -340,38 +344,3 @@ def mosaic3d( logger.info("Finished generating pyramid") - -def mosaic3d_vol( - tile_info_file: str, - *, - tile_overlap: float | Literal["auto"] = "auto", - circular_mean: bool = False, - general_config: GeneralConfig = None, - nifti_config: NiftiConfig = None, - zarr_config: ZarrConfig = None, -) -> None: - """ - Create 3D mosaic from pre-processed volume tiles. - - Parameters - ---------- - tile_info_file : str - Path to YAML file containing tile information. - tile_overlap : float | Literal["auto"] - Tile overlap in pixels. If "auto", compute from tile coordinates. - circular_mean : bool - Whether to use circular mean for blending. - general_config : GeneralConfig, optional - General configuration. - nifti_config : NiftiConfig, optional - NIfTI configuration. - zarr_config : ZarrConfig, optional - Zarr configuration. - """ - # load tile info - # normalize tile_overlap, if auto, find the max overlap of all tiles, if float number, use as percentile of the tile size - - # load volume - # mosaic volume - # save mosaic volume - pass From 2db1c6a67dd449bff125935e413425da21210051 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Tue, 16 Dec 2025 10:13:54 -0500 Subject: [PATCH 073/133] refactor: update module exports to include renamed mosaic and mosaic_complex functions --- linc_convert/modalities/psoct/__init__.py | 4 +- linc_convert/modalities/psoct/mosaic.py | 119 ++++++++++-------- .../modalities/psoct/mosaic_complex.py | 26 ++-- 3 files changed, 81 insertions(+), 68 deletions(-) diff --git a/linc_convert/modalities/psoct/__init__.py b/linc_convert/modalities/psoct/__init__.py index 89346c92..e5f3731d 100644 --- a/linc_convert/modalities/psoct/__init__.py +++ b/linc_convert/modalities/psoct/__init__.py @@ -4,8 +4,8 @@ import h5py as _h5py # noqa: F401 import scipy as _scipy # noqa: F401 - __all__ = ["cli", "multi_slice", "single_volume", "mosaic2d", "mosaic3d"] + __all__ = ["cli", "multi_slice", "single_volume", "mosaic", "mosaic_complex"] - from . import cli, multi_slice, single_volume, mosaic2d, mosaic3d + from . import cli, multi_slice, single_volume, mosaic, mosaic_complex except ImportError: pass diff --git a/linc_convert/modalities/psoct/mosaic.py b/linc_convert/modalities/psoct/mosaic.py index 71996442..d82693f0 100644 --- a/linc_convert/modalities/psoct/mosaic.py +++ b/linc_convert/modalities/psoct/mosaic.py @@ -3,21 +3,17 @@ """ import logging -import os import os.path as op -from concurrent.futures import ThreadPoolExecutor -from concurrent.futures.process import ProcessPoolExecutor -from typing import Annotated, Literal, Optional +from typing import Annotated, Optional import cyclopts -import dask import dask.array as da import nibabel as nib import numpy as np import yaml +from PIL import Image from cyclopts import Parameter from dask.diagnostics import ProgressBar -from PIL import Image from tqdm import tqdm from linc_convert.modalities.psoct.cli import psoct @@ -27,7 +23,6 @@ from linc_convert.utils.io.zarr.helpers import \ _compute_zarr_layout as compute_zarr_layout from linc_convert.utils.nifti_header import build_nifti_header -from linc_convert.utils.unit import to_ome_unit from linc_convert.utils.zarr_config import ( GeneralConfig, NiftiConfig, @@ -37,8 +32,8 @@ logger = logging.getLogger(__name__) -mosaic2d = cyclopts.App(name="mosaic2d", help_format="markdown") -psoct.command(mosaic2d) +mosaic = cyclopts.App(name="mosaic", help_format="markdown") +psoct.command(mosaic) def _load_tile_info_yaml(yaml_file: str) -> dict: @@ -57,7 +52,7 @@ def _load_image_tile(file_path: str, key: str = None) -> da.Array: - NIfTI files (with mmap for lazy loading) - Other formats via dask-image """ - + # Check for .mat files if file_path.endswith('.mat'): wrapper = as_arraywrapper(file_path, key) @@ -70,37 +65,40 @@ def _load_image_tile(file_path: str, key: str = None) -> da.Array: # elif data.ndim > 3: # data = data.reshape(data.shape[0], data.shape[1], -1)[:, :, 0] return da.from_array(data, chunks="auto") - + # Check for zarr archives # Check if path looks like zarr (directory with zarr metadata files) is_zarr = False if op.isdir(file_path): # Check for zarr v3 (zarr.json) or v2 (.zgroup or .zarray) if op.exists(op.join(file_path, 'zarr.json')) or \ - op.exists(op.join(file_path, '.zgroup')) or \ - op.exists(op.join(file_path, '.zarray')): + op.exists(op.join(file_path, '.zgroup')) or \ + op.exists(op.join(file_path, '.zarray')): is_zarr = True elif file_path.endswith('.zarr') or '.zarr' in file_path: is_zarr = True - + if is_zarr: try: from linc_convert.utils.io.zarr import open_array, open_group - + # Try to open as zarr group first try: zarr_group = open_group(file_path, mode="r") # It's a group, try to get array '0' if '0' in zarr_group.keys(): zarr_array_wrapper = zarr_group['0'] - data = da.from_array(zarr_array_wrapper, chunks=zarr_array_wrapper.chunks) + data = da.from_array(zarr_array_wrapper, + chunks=zarr_array_wrapper.chunks) else: - raise ValueError(f"Zarr group at {file_path} does not contain array '0'") + raise ValueError( + f"Zarr group at {file_path} does not contain array '0'") except (ValueError, KeyError): # Try as array zarr_array_wrapper = open_array(file_path, mode="r") - data = da.from_array(zarr_array_wrapper, chunks=zarr_array_wrapper.chunks) - + data = da.from_array(zarr_array_wrapper, + chunks=zarr_array_wrapper.chunks) + # Handle 3D data - take middle slice # if data.ndim == 3: # data = data[:, :, data.shape[2] // 2] @@ -109,7 +107,7 @@ def _load_image_tile(file_path: str, key: str = None) -> da.Array: return data except Exception as e: logger.warning(f"Failed to load as zarr: {e}, trying other formats") - + # Check for NIfTI files if file_path.endswith(('.nii', '.nii.gz')): img = nib.load(file_path) @@ -124,10 +122,11 @@ def _load_image_tile(file_path: str, key: str = None) -> da.Array: # # Take first 2D slice # data = data.reshape(data.shape[0], data.shape[1], -1)[:, :, 0] return data - + # Try dask-image as fallback try: import dask_image.imread # noqa: F401 + data = dask_image.imread.imread(file_path) # Handle 3D data - take middle slice # if data.ndim == 3: @@ -138,7 +137,8 @@ def _load_image_tile(file_path: str, key: str = None) -> da.Array: except ImportError: raise ValueError( f"Could not load {file_path}. " - "Supported formats: .mat, .zarr, .nii/.nii.gz, or formats supported by dask-image" + "Supported formats: .mat, .zarr, .nii/.nii.gz, or formats supported by " + "dask-image" ) except Exception as e: raise ValueError(f"Failed to load {file_path} with dask-image: {e}") @@ -163,13 +163,15 @@ def _save_tiff(image: np.ndarray, output_path: str): """Save image as TIFF without normalization - data is saved as-is.""" try: import tifffile + # Save data as-is without any normalization or scaling # Preserve original dtype and values tifffile.imwrite(output_path, image) except ImportError: # Fallback to PIL if tifffile not available # PIL requires uint8 or uint16, so we need to convert - # But we don't normalize - just convert dtype preserving values as much as possible + # But we don't normalize - just convert dtype preserving values as much as + # possible if image.dtype in (np.float32, np.float64): # For float, convert to uint16 without normalization # This will clip values outside [0, 65535] range @@ -191,22 +193,23 @@ def _load_mask(mask_path: str) -> np.ndarray: """ # Use the same loading function as tiles mask = _load_image_tile(mask_path, key=None) - + # Ensure it's a 2D array if mask.ndim != 2: if mask.ndim == 3 and mask.shape[2] == 1: mask = mask[:, :, 0] else: raise ValueError(f"Mask must be 2D, got shape {mask.shape}") - + # Convert to binary (0 or 1) # Handle both boolean and numeric masks mask = mask.compute() if isinstance(mask, da.Array) else mask mask = (mask > 0).astype(np.float32) - + return mask -@mosaic2d.default + +@mosaic.default @autoconfig def mosaic2d( tile_info_file: str, @@ -239,11 +242,14 @@ def mosaic2d( circular_mean : bool Whether to use circular mean for blending. clip_x : int - Number of pixels to clip from the left side of each tile. Coordinates will be shifted accordingly. + Number of pixels to clip from the left side of each tile. Coordinates will be + shifted accordingly. clip_y : int - Number of pixels to clip from the top side of each tile. Coordinates will be shifted accordingly. + Number of pixels to clip from the top side of each tile. Coordinates will be + shifted accordingly. mask : str, optional - Path to binary mask file to apply to the result. Mask should be 2D and match the result dimensions. + Path to binary mask file to apply to the result. Mask should be 2D and match + the result dimensions. zarr_config : ZarrConfig, optional Zarr configuration. general_config : GeneralConfig, optional @@ -271,11 +277,11 @@ def mosaic2d( clip_x = metadata.get("clip_x", 0) if clip_y == 0: clip_y = metadata.get("clip_y", 0) - + # Get mask from metadata if not provided as parameter if mask is None: mask = metadata.get("mask") - + # Use tile_overlap from function parameter (defaults to "auto") # If "auto" and metadata has tile_overlap, use that instead if tile_overlap == "auto" and "tile_overlap" in metadata: @@ -314,13 +320,15 @@ def mosaic2d( elif image.ndim >= 3: image = image[clip_x:, clip_y:, ...] else: - logger.warning(f"Unexpected image dimensions {image.ndim} for {file_path}") + logger.warning( + f"Unexpected image dimensions {image.ndim} for {file_path}") continue - + # Shift coordinates to account for clipping # After clipping clip_x pixels from the left, the remaining content # represents what was at position clip_x in the original tile. - # To align this correctly in the mosaic, we shift coordinates by +clip_x and +clip_y + # To align this correctly in the mosaic, we shift coordinates by +clip_x + # and +clip_y x = int(x) + clip_x y = int(y) + clip_y else: @@ -335,7 +343,7 @@ def mosaic2d( # Stitch tiles using MosaicInfo logger.info("Stitching tiles") - + # Create MosaicInfo for 2D mosaic - dimensions and coordinates extracted from tiles mosaic = MosaicInfo.from_tiles( tiles=tile_infos, @@ -344,11 +352,10 @@ def mosaic2d( circular_mean=circular_mean, tile_overlap=tile_overlap, ) - + # Stitch using lazy dask operations result_2d = mosaic.stitch() - # Apply mask if provided if mask: logger.info(f"Loading and applying mask: {mask}") @@ -357,35 +364,41 @@ def mosaic2d( # Check if mask dimensions match result if mask_array.shape != result_2d.shape: logger.warning( - f"Mask shape {mask_array.shape} does not match result shape {result_2d.shape}. " + f"Mask shape {mask_array.shape} does not match result shape " + f"{result_2d.shape}. " "Attempting to resize mask." ) # Resize mask to match result if possible try: from scipy.ndimage import zoom + zoom_factors = (result_2d.shape[0] / mask_array.shape[0], - result_2d.shape[1] / mask_array.shape[1]) - mask_array = zoom(mask_array, zoom_factors, order=0) # order=0 for nearest neighbor + result_2d.shape[1] / mask_array.shape[1]) + mask_array = zoom(mask_array, zoom_factors, + order=0) # order=0 for nearest neighbor # Ensure binary after resize mask_array = (mask_array > 0.5).astype(np.float32) except ImportError: raise ValueError( "scipy is required for mask resizing. " - "Please ensure mask dimensions match result dimensions or install scipy." + "Please ensure mask dimensions match result dimensions or " + "install scipy." ) - - # Apply mask (multiply: 0 where mask is 0, keep original value where mask is 1) + + # Apply mask (multiply: 0 where mask is 0, keep original value where mask + # is 1) result_2d = result_2d * mask_array logger.info("Mask applied successfully") except Exception as e: logger.error(f"Failed to load or apply mask: {e}") raise - + if nifti_output or jpeg_output or tiff_output: with ProgressBar(): result_2d = np.array(result_2d) - - scan_resolution_2d = scan_resolution[:2] if len(scan_resolution) >= 2 else [1.0, 1.0] + + scan_resolution_2d = scan_resolution[:2] if len(scan_resolution) >= 2 else [1.0, + 1.0] # Save NIfTI file if requested if nifti_output: logger.info(f"Saving NIfTI file: {nifti_output}") @@ -409,11 +422,11 @@ def mosaic2d( if tiff_output: logger.info(f"Saving TIFF: {tiff_output}") _save_tiff(result_2d, tiff_output) - + # Save to Zarr if output is specified if general_config.out: logger.info(f"Saving to Zarr: {general_config.out}") - + # Compute zarr layout for 2D chunk, shard = compute_zarr_layout(result_2d.shape, np.float32, zarr_config) @@ -427,7 +440,7 @@ def mosaic2d( shard=shard, zarr_config=zarr_config ) - + # Write data directly using indexing (similar to single_volume.py) if isinstance(result_2d, da.Array): if shard: @@ -440,11 +453,11 @@ def mosaic2d( else: dataset[...] = result_2d - + # Generate pyramid and metadata logger.info("Generating pyramid and metadata") zgroup.generate_pyramid() - zgroup.write_ome_metadata(["z","y", "x"], space_scale=scan_resolution_2d, + zgroup.write_ome_metadata(["z", "y", "x"], space_scale=scan_resolution_2d, space_unit="millimeter") if nifti_config and nifti_config.nii: @@ -459,5 +472,5 @@ def mosaic2d( logger.info("Finished generating pyramid") else: logger.info("Skipping Zarr output (no output path specified)") - + logger.info("Finished mosaic2d") diff --git a/linc_convert/modalities/psoct/mosaic_complex.py b/linc_convert/modalities/psoct/mosaic_complex.py index 50eee6bc..3fc75727 100644 --- a/linc_convert/modalities/psoct/mosaic_complex.py +++ b/linc_convert/modalities/psoct/mosaic_complex.py @@ -5,10 +5,9 @@ """ import logging -import os import os.path as op import warnings -from typing import Annotated, Literal +from typing import Annotated import cyclopts import dask.array as da @@ -36,8 +35,8 @@ logger = logging.getLogger(__name__) -mosaic3d = cyclopts.App(name="mosaic3d", help_format="markdown") -psoct.command(mosaic3d) +mosaic_complex = cyclopts.App(name="mosaic_complex", help_format="markdown") +psoct.command(mosaic_complex) # 3d data has pixdim incorrectly set and cause nibabel keep logging warning nib.imageglobals.logger.setLevel(40) @@ -91,7 +90,7 @@ def shift_block(block, block_info=None): return tile.map_blocks(shift_block, dtype=tile.dtype, chunks=result_shape) -@mosaic3d.default +@mosaic_complex.default @autoconfig def mosaic3d( tile_info_file: str, @@ -178,7 +177,7 @@ def mosaic3d( continue x_coords_list.append(x) y_coords_list.append(y) - tile_files.append(op.join(base_dir,file_path)) + tile_files.append(op.join(base_dir, file_path)) if not tile_files: raise ValueError("No valid tiles found in YAML file") @@ -258,11 +257,12 @@ def mosaic3d( # Stitch tiles for each modality using MosaicInfo logger.info("Stitching tiles") - + # Get tile_overlap from metadata (defaults to "auto") tile_overlap = metadata.get("tile_overlap", 0.2) - # Create MosaicInfo for each modality - dimensions and coordinates extracted from tiles + # Create MosaicInfo for each modality - dimensions and coordinates extracted from + # tiles dbi_mosaic = MosaicInfo.from_tiles( tiles=[TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, dbi_tiles)], depth=depth, @@ -270,7 +270,7 @@ def mosaic3d( circular_mean=False, tile_overlap=tile_overlap, ) - + r3d_mosaic = MosaicInfo.from_tiles( tiles=[TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, r3d_tiles)], depth=depth, @@ -278,7 +278,7 @@ def mosaic3d( circular_mean=False, tile_overlap=tile_overlap, ) - + o3d_mosaic = MosaicInfo.from_tiles( tiles=[TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, o3d_tiles)], depth=depth, @@ -286,7 +286,7 @@ def mosaic3d( circular_mean=True, tile_overlap=tile_overlap, ) - + # Stitch using lazy dask operations dBI_result = dbi_mosaic.stitch() R3D_result = r3d_mosaic.stitch() @@ -326,7 +326,8 @@ def mosaic3d( logger.info("Finished stitching, generating pyramid and metadata") for zgroup in zgroups: - zgroup.generate_pyramid(mode="mean", no_pyramid_axis=zarr_config.no_pyramid_axis) + zgroup.generate_pyramid(mode="mean", + no_pyramid_axis=zarr_config.no_pyramid_axis) logger.info("Write OME-Zarr multiscale metadata") zgroup.write_ome_metadata(axes=["z", "y", "x"], space_scale=scan_resolution, space_unit=to_ome_unit(unit)) @@ -343,4 +344,3 @@ def mosaic3d( zgroup.write_nifti_header(header) logger.info("Finished generating pyramid") - From b1249174e0bec155df14616c25d274c8fdffd8d5 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Tue, 16 Dec 2025 16:50:44 -0500 Subject: [PATCH 074/133] refactor: rename mosaic3d function to mosaic_complex for clarity --- linc_convert/modalities/psoct/mosaic_complex.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linc_convert/modalities/psoct/mosaic_complex.py b/linc_convert/modalities/psoct/mosaic_complex.py index 3fc75727..6114b41b 100644 --- a/linc_convert/modalities/psoct/mosaic_complex.py +++ b/linc_convert/modalities/psoct/mosaic_complex.py @@ -92,7 +92,7 @@ def shift_block(block, block_info=None): @mosaic_complex.default @autoconfig -def mosaic3d( +def mosaic_complex( tile_info_file: str, *, dbi_output: Annotated[str, Parameter(name=["--dBI", "-d"])], From d9eb8819cf50a6d6c226485f388103bbde7ff84b Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Fri, 5 Dec 2025 11:28:59 -0500 Subject: [PATCH 075/133] Add Docker support with Dockerfile, .dockerignore, and GitHub Actions workflow --- .dockerignore | 53 ++++++++++++++++++++++++ .github/workflows/docker-build.yml | 65 ++++++++++++++++++++++++++++++ Dockerfile | 47 +++++++++++++++++++++ 3 files changed, 165 insertions(+) create mode 100644 .dockerignore create mode 100644 .github/workflows/docker-build.yml create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..4c1144cc --- /dev/null +++ b/.dockerignore @@ -0,0 +1,53 @@ +# Git +.git +.gitignore +.github + +# Python +__pycache__ +*.py[cod] +*$py.class +*.so +.Python +*.egg-info +dist +build +.venv +venv +env +ENV + +# Testing +.pytest_cache +.coverage +htmlcov +.tox +.mypy_cache +.ruff_cache + +# Documentation +site +docs/requirements.txt + +# IDE +.vscode +.idea +*.swp +*.swo +*~ + +# OS +.DS_Store +Thumbs.db + +# Project specific +scripts/*.ipynb +scripts/*.nii +scripts/*.tiff +scripts/*.jpeg +scripts/*.yaml +tests/data + +# Poetry +poetry.lock.bak + diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml new file mode 100644 index 00000000..ed3707c7 --- /dev/null +++ b/.github/workflows/docker-build.yml @@ -0,0 +1,65 @@ +name: Build and Push Docker Image + +on: + push: + branches: + - main + - master + tags: + - 'v*' + pull_request: + branches: + - main + - master + workflow_dispatch: + +env: + REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository }} + +jobs: + build-and-push: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to Container Registry + if: github.event_name != 'pull_request' + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + tags: | + type=ref,event=branch + type=ref,event=pr + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} + type=semver,pattern={{major}} + type=sha,prefix={{branch}}- + type=raw,value=latest,enable={{is_default_branch}} + + - name: Build and push Docker image + uses: docker/build-push-action@v5 + with: + context: . + push: ${{ github.event_name != 'pull_request' }} + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + cache-from: type=gha + cache-to: type=gha,mode=max + diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..afb90caa --- /dev/null +++ b/Dockerfile @@ -0,0 +1,47 @@ +# Use Python 3.11 as base image +FROM python:3.11-slim + +# Set working directory +WORKDIR /app + +# Install system dependencies +RUN apt-get update && apt-get install -y \ + build-essential \ + curl \ + && rm -rf /var/lib/apt/lists/* + +# Install Poetry +ENV POETRY_VERSION=1.8.4 +ENV POETRY_HOME=/opt/poetry +ENV POETRY_VENV=/opt/poetry-venv +ENV POETRY_CACHE_DIR=/opt/poetry-cache + +RUN python3 -m venv $POETRY_VENV \ + && $POETRY_VENV/bin/pip install -U pip setuptools \ + && $POETRY_VENV/bin/pip install poetry==${POETRY_VERSION} \ + && ln -s ${POETRY_VENV}/bin/poetry /usr/local/bin/poetry \ + && chmod 755 /usr/local/bin/poetry + +# Configure Poetry: Don't create virtual environment, install dependencies to system +ENV POETRY_NO_INTERACTION=1 \ + POETRY_VENV_IN_PROJECT=1 \ + POETRY_CACHE_DIR=/opt/poetry-cache + +# Copy Poetry configuration files +COPY pyproject.toml poetry.lock ./ + +# Install dependencies +RUN poetry install --no-dev --no-root + +# Copy application code +COPY . . + +# Install the application +RUN poetry install --no-dev + +# Set the entrypoint +ENTRYPOINT ["linc-convert"] + +# Default command (can be overridden) +CMD ["--help"] + From 09bcff5025265f6adb28ee0180506dc3b245c8b6 Mon Sep 17 00:00:00 2001 From: "Kaidong (Calvin) Chai" Date: Tue, 16 Dec 2025 15:44:48 -0500 Subject: [PATCH 076/133] Refactor Dockerfile for Poetry installation and entrypoint Updated the Dockerfile to install all dependencies and set the entrypoint to use Poetry. --- Dockerfile | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/Dockerfile b/Dockerfile index afb90caa..85e345cd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,8 +7,7 @@ WORKDIR /app # Install system dependencies RUN apt-get update && apt-get install -y \ build-essential \ - curl \ - && rm -rf /var/lib/apt/lists/* + curl # Install Poetry ENV POETRY_VERSION=1.8.4 @@ -28,20 +27,19 @@ ENV POETRY_NO_INTERACTION=1 \ POETRY_CACHE_DIR=/opt/poetry-cache # Copy Poetry configuration files -COPY pyproject.toml poetry.lock ./ +COPY pyproject.toml ./ # Install dependencies -RUN poetry install --no-dev --no-root +RUN poetry install --no-dev --no-root --extras all # Copy application code COPY . . # Install the application -RUN poetry install --no-dev +RUN poetry install --no-dev --extras all # Set the entrypoint -ENTRYPOINT ["linc-convert"] +ENTRYPOINT ["poetry", "run", "linc-convert"] # Default command (can be overridden) CMD ["--help"] - From 791317d8d9b8bfc2c77ef6689ea4bdc89da43d18 Mon Sep 17 00:00:00 2001 From: "Kaidong (Calvin) Chai" Date: Tue, 16 Dec 2025 15:48:23 -0500 Subject: [PATCH 077/133] add poetry lock file --- poetry.lock | 1116 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1116 insertions(+) create mode 100644 poetry.lock diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 00000000..91792d60 --- /dev/null +++ b/poetry.lock @@ -0,0 +1,1116 @@ +# This file is automatically @generated by Poetry 1.8.4 and should not be changed by hand. + +[[package]] +name = "asciitree" +version = "0.3.3" +description = "Draws ASCII trees." +optional = false +python-versions = "*" +files = [ + {file = "asciitree-0.3.3.tar.gz", hash = "sha256:4aa4b9b649f85e3fcb343363d97564aa1fb62e249677f2e18a96765145cc0f6e"}, +] + +[[package]] +name = "attrs" +version = "24.2.0" +description = "Classes Without Boilerplate" +optional = false +python-versions = ">=3.7" +files = [ + {file = "attrs-24.2.0-py3-none-any.whl", hash = "sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2"}, + {file = "attrs-24.2.0.tar.gz", hash = "sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346"}, +] + +[package.extras] +benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"] +tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] + +[[package]] +name = "cfgv" +version = "3.4.0" +description = "Validate configuration and produce human readable error messages." +optional = false +python-versions = ">=3.8" +files = [ + {file = "cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9"}, + {file = "cfgv-3.4.0.tar.gz", hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560"}, +] + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "coverage" +version = "7.6.4" +description = "Code coverage measurement for Python" +optional = false +python-versions = ">=3.9" +files = [ + {file = "coverage-7.6.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5f8ae553cba74085db385d489c7a792ad66f7f9ba2ee85bfa508aeb84cf0ba07"}, + {file = "coverage-7.6.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8165b796df0bd42e10527a3f493c592ba494f16ef3c8b531288e3d0d72c1f6f0"}, + {file = "coverage-7.6.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c7c8b95bf47db6d19096a5e052ffca0a05f335bc63cef281a6e8fe864d450a72"}, + {file = "coverage-7.6.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8ed9281d1b52628e81393f5eaee24a45cbd64965f41857559c2b7ff19385df51"}, + {file = "coverage-7.6.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0809082ee480bb8f7416507538243c8863ac74fd8a5d2485c46f0f7499f2b491"}, + {file = "coverage-7.6.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d541423cdd416b78626b55f123412fcf979d22a2c39fce251b350de38c15c15b"}, + {file = "coverage-7.6.4-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:58809e238a8a12a625c70450b48e8767cff9eb67c62e6154a642b21ddf79baea"}, + {file = "coverage-7.6.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c9b8e184898ed014884ca84c70562b4a82cbc63b044d366fedc68bc2b2f3394a"}, + {file = "coverage-7.6.4-cp310-cp310-win32.whl", hash = "sha256:6bd818b7ea14bc6e1f06e241e8234508b21edf1b242d49831831a9450e2f35fa"}, + {file = "coverage-7.6.4-cp310-cp310-win_amd64.whl", hash = "sha256:06babbb8f4e74b063dbaeb74ad68dfce9186c595a15f11f5d5683f748fa1d172"}, + {file = "coverage-7.6.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:73d2b73584446e66ee633eaad1a56aad577c077f46c35ca3283cd687b7715b0b"}, + {file = "coverage-7.6.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:51b44306032045b383a7a8a2c13878de375117946d68dcb54308111f39775a25"}, + {file = "coverage-7.6.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0b3fb02fe73bed561fa12d279a417b432e5b50fe03e8d663d61b3d5990f29546"}, + {file = "coverage-7.6.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed8fe9189d2beb6edc14d3ad19800626e1d9f2d975e436f84e19efb7fa19469b"}, + {file = "coverage-7.6.4-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b369ead6527d025a0fe7bd3864e46dbee3aa8f652d48df6174f8d0bac9e26e0e"}, + {file = "coverage-7.6.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ade3ca1e5f0ff46b678b66201f7ff477e8fa11fb537f3b55c3f0568fbfe6e718"}, + {file = "coverage-7.6.4-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:27fb4a050aaf18772db513091c9c13f6cb94ed40eacdef8dad8411d92d9992db"}, + {file = "coverage-7.6.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4f704f0998911abf728a7783799444fcbbe8261c4a6c166f667937ae6a8aa522"}, + {file = "coverage-7.6.4-cp311-cp311-win32.whl", hash = "sha256:29155cd511ee058e260db648b6182c419422a0d2e9a4fa44501898cf918866cf"}, + {file = "coverage-7.6.4-cp311-cp311-win_amd64.whl", hash = "sha256:8902dd6a30173d4ef09954bfcb24b5d7b5190cf14a43170e386979651e09ba19"}, + {file = "coverage-7.6.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:12394842a3a8affa3ba62b0d4ab7e9e210c5e366fbac3e8b2a68636fb19892c2"}, + {file = "coverage-7.6.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2b6b4c83d8e8ea79f27ab80778c19bc037759aea298da4b56621f4474ffeb117"}, + {file = "coverage-7.6.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d5b8007f81b88696d06f7df0cb9af0d3b835fe0c8dbf489bad70b45f0e45613"}, + {file = "coverage-7.6.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b57b768feb866f44eeed9f46975f3d6406380275c5ddfe22f531a2bf187eda27"}, + {file = "coverage-7.6.4-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5915fcdec0e54ee229926868e9b08586376cae1f5faa9bbaf8faf3561b393d52"}, + {file = "coverage-7.6.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0b58c672d14f16ed92a48db984612f5ce3836ae7d72cdd161001cc54512571f2"}, + {file = "coverage-7.6.4-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:2fdef0d83a2d08d69b1f2210a93c416d54e14d9eb398f6ab2f0a209433db19e1"}, + {file = "coverage-7.6.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8cf717ee42012be8c0cb205dbbf18ffa9003c4cbf4ad078db47b95e10748eec5"}, + {file = "coverage-7.6.4-cp312-cp312-win32.whl", hash = "sha256:7bb92c539a624cf86296dd0c68cd5cc286c9eef2d0c3b8b192b604ce9de20a17"}, + {file = "coverage-7.6.4-cp312-cp312-win_amd64.whl", hash = "sha256:1032e178b76a4e2b5b32e19d0fd0abbce4b58e77a1ca695820d10e491fa32b08"}, + {file = "coverage-7.6.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:023bf8ee3ec6d35af9c1c6ccc1d18fa69afa1cb29eaac57cb064dbb262a517f9"}, + {file = "coverage-7.6.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:b0ac3d42cb51c4b12df9c5f0dd2f13a4f24f01943627120ec4d293c9181219ba"}, + {file = "coverage-7.6.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8fe4984b431f8621ca53d9380901f62bfb54ff759a1348cd140490ada7b693c"}, + {file = "coverage-7.6.4-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5fbd612f8a091954a0c8dd4c0b571b973487277d26476f8480bfa4b2a65b5d06"}, + {file = "coverage-7.6.4-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dacbc52de979f2823a819571f2e3a350a7e36b8cb7484cdb1e289bceaf35305f"}, + {file = "coverage-7.6.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:dab4d16dfef34b185032580e2f2f89253d302facba093d5fa9dbe04f569c4f4b"}, + {file = "coverage-7.6.4-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:862264b12ebb65ad8d863d51f17758b1684560b66ab02770d4f0baf2ff75da21"}, + {file = "coverage-7.6.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5beb1ee382ad32afe424097de57134175fea3faf847b9af002cc7895be4e2a5a"}, + {file = "coverage-7.6.4-cp313-cp313-win32.whl", hash = "sha256:bf20494da9653f6410213424f5f8ad0ed885e01f7e8e59811f572bdb20b8972e"}, + {file = "coverage-7.6.4-cp313-cp313-win_amd64.whl", hash = "sha256:182e6cd5c040cec0a1c8d415a87b67ed01193ed9ad458ee427741c7d8513d963"}, + {file = "coverage-7.6.4-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:a181e99301a0ae128493a24cfe5cfb5b488c4e0bf2f8702091473d033494d04f"}, + {file = "coverage-7.6.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:df57bdbeffe694e7842092c5e2e0bc80fff7f43379d465f932ef36f027179806"}, + {file = "coverage-7.6.4-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bcd1069e710600e8e4cf27f65c90c7843fa8edfb4520fb0ccb88894cad08b11"}, + {file = "coverage-7.6.4-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:99b41d18e6b2a48ba949418db48159d7a2e81c5cc290fc934b7d2380515bd0e3"}, + {file = "coverage-7.6.4-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a6b1e54712ba3474f34b7ef7a41e65bd9037ad47916ccb1cc78769bae324c01a"}, + {file = "coverage-7.6.4-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:53d202fd109416ce011578f321460795abfe10bb901b883cafd9b3ef851bacfc"}, + {file = "coverage-7.6.4-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:c48167910a8f644671de9f2083a23630fbf7a1cb70ce939440cd3328e0919f70"}, + {file = "coverage-7.6.4-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:cc8ff50b50ce532de2fa7a7daae9dd12f0a699bfcd47f20945364e5c31799fef"}, + {file = "coverage-7.6.4-cp313-cp313t-win32.whl", hash = "sha256:b8d3a03d9bfcaf5b0141d07a88456bb6a4c3ce55c080712fec8418ef3610230e"}, + {file = "coverage-7.6.4-cp313-cp313t-win_amd64.whl", hash = "sha256:f3ddf056d3ebcf6ce47bdaf56142af51bb7fad09e4af310241e9db7a3a8022e1"}, + {file = "coverage-7.6.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9cb7fa111d21a6b55cbf633039f7bc2749e74932e3aa7cb7333f675a58a58bf3"}, + {file = "coverage-7.6.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:11a223a14e91a4693d2d0755c7a043db43d96a7450b4f356d506c2562c48642c"}, + {file = "coverage-7.6.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a413a096c4cbac202433c850ee43fa326d2e871b24554da8327b01632673a076"}, + {file = "coverage-7.6.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:00a1d69c112ff5149cabe60d2e2ee948752c975d95f1e1096742e6077affd376"}, + {file = "coverage-7.6.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f76846299ba5c54d12c91d776d9605ae33f8ae2b9d1d3c3703cf2db1a67f2c0"}, + {file = "coverage-7.6.4-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:fe439416eb6380de434886b00c859304338f8b19f6f54811984f3420a2e03858"}, + {file = "coverage-7.6.4-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:0294ca37f1ba500667b1aef631e48d875ced93ad5e06fa665a3295bdd1d95111"}, + {file = "coverage-7.6.4-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:6f01ba56b1c0e9d149f9ac85a2f999724895229eb36bd997b61e62999e9b0901"}, + {file = "coverage-7.6.4-cp39-cp39-win32.whl", hash = "sha256:bc66f0bf1d7730a17430a50163bb264ba9ded56739112368ba985ddaa9c3bd09"}, + {file = "coverage-7.6.4-cp39-cp39-win_amd64.whl", hash = "sha256:c481b47f6b5845064c65a7bc78bc0860e635a9b055af0df46fdf1c58cebf8e8f"}, + {file = "coverage-7.6.4-pp39.pp310-none-any.whl", hash = "sha256:3c65d37f3a9ebb703e710befdc489a38683a5b152242664b973a7b7b22348a4e"}, + {file = "coverage-7.6.4.tar.gz", hash = "sha256:29fc0f17b1d3fea332f8001d4558f8214af7f1d87a345f3a133c901d60347c73"}, +] + +[package.dependencies] +tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.11.0a6\" and extra == \"toml\""} + +[package.extras] +toml = ["tomli"] + +[[package]] +name = "cyclopts" +version = "2.9.9" +description = "" +optional = false +python-versions = ">=3.8" +files = [ + {file = "cyclopts-2.9.9-py3-none-any.whl", hash = "sha256:d0ce956c70f3070e5bc16824ecb5ebba155be45ef4aadbb78ac4753dd99367e3"}, + {file = "cyclopts-2.9.9.tar.gz", hash = "sha256:11d7bb59be253329ff49a1b9a634676c7ae708605d4975090783b99d081c1a0b"}, +] + +[package.dependencies] +attrs = ">=23.1.0" +docstring-parser = {version = ">=0.15", markers = "python_version < \"4.0\""} +rich = ">=13.6.0" +rich-rst = ">=1.3.1,<2.0.0" +typing-extensions = {version = ">=4.8.0", markers = "python_full_version >= \"3.8.0\" and python_full_version < \"4.0.0\""} + +[package.extras] +toml = ["tomli (>=2.0.0)"] +yaml = ["pyyaml (>=6.0.1)"] + +[[package]] +name = "distlib" +version = "0.3.9" +description = "Distribution utilities" +optional = false +python-versions = "*" +files = [ + {file = "distlib-0.3.9-py2.py3-none-any.whl", hash = "sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87"}, + {file = "distlib-0.3.9.tar.gz", hash = "sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403"}, +] + +[[package]] +name = "docstring-parser" +version = "0.16" +description = "Parse Python docstrings in reST, Google and Numpydoc format" +optional = false +python-versions = ">=3.6,<4.0" +files = [ + {file = "docstring_parser-0.16-py3-none-any.whl", hash = "sha256:bf0a1387354d3691d102edef7ec124f219ef639982d096e26e3b60aeffa90637"}, + {file = "docstring_parser-0.16.tar.gz", hash = "sha256:538beabd0af1e2db0146b6bd3caa526c35a34d61af9fd2887f3a8a27a739aa6e"}, +] + +[[package]] +name = "docutils" +version = "0.21.2" +description = "Docutils -- Python Documentation Utilities" +optional = false +python-versions = ">=3.9" +files = [ + {file = "docutils-0.21.2-py3-none-any.whl", hash = "sha256:dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2"}, + {file = "docutils-0.21.2.tar.gz", hash = "sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f"}, +] + +[[package]] +name = "exceptiongroup" +version = "1.2.2" +description = "Backport of PEP 654 (exception groups)" +optional = false +python-versions = ">=3.7" +files = [ + {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, + {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, +] + +[package.extras] +test = ["pytest (>=6)"] + +[[package]] +name = "fasteners" +version = "0.19" +description = "A python package that provides useful locks" +optional = false +python-versions = ">=3.6" +files = [ + {file = "fasteners-0.19-py3-none-any.whl", hash = "sha256:758819cb5d94cdedf4e836988b74de396ceacb8e2794d21f82d131fd9ee77237"}, + {file = "fasteners-0.19.tar.gz", hash = "sha256:b4f37c3ac52d8a445af3a66bce57b33b5e90b97c696b7b984f530cf8f0ded09c"}, +] + +[[package]] +name = "filelock" +version = "3.16.1" +description = "A platform independent file lock." +optional = false +python-versions = ">=3.8" +files = [ + {file = "filelock-3.16.1-py3-none-any.whl", hash = "sha256:2082e5703d51fbf98ea75855d9d5527e33d8ff23099bec374a134febee6946b0"}, + {file = "filelock-3.16.1.tar.gz", hash = "sha256:c249fbfcd5db47e5e2d6d62198e565475ee65e4831e2561c8e313fa7eb961435"}, +] + +[package.extras] +docs = ["furo (>=2024.8.6)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4.1)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.6.1)", "diff-cover (>=9.2)", "pytest (>=8.3.3)", "pytest-asyncio (>=0.24)", "pytest-cov (>=5)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.26.4)"] +typing = ["typing-extensions (>=4.12.2)"] + +[[package]] +name = "glymur" +version = "0.13.6" +description = "" +optional = false +python-versions = ">=3.8" +files = [ + {file = "Glymur-0.13.6-py3-none-any.whl", hash = "sha256:34347b1e0443b58c73ed3c7bc3c66cff1e5974a26e81c73d98792c438729165c"}, + {file = "Glymur-0.13.6.tar.gz", hash = "sha256:18f1f3536fd76cd7fa92de4629950bee55522bdf8a4e94706ac34226d615ac5c"}, +] + +[package.dependencies] +lxml = "*" +numpy = "*" +packaging = "*" + +[package.extras] +test = ["pillow", "pytest"] + +[[package]] +name = "identify" +version = "2.6.1" +description = "File identification library for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "identify-2.6.1-py2.py3-none-any.whl", hash = "sha256:53863bcac7caf8d2ed85bd20312ea5dcfc22226800f6d6881f232d861db5a8f0"}, + {file = "identify-2.6.1.tar.gz", hash = "sha256:91478c5fb7c3aac5ff7bf9b4344f803843dc586832d5f110d672b19aa1984c98"}, +] + +[package.extras] +license = ["ukkonen"] + +[[package]] +name = "importlib-resources" +version = "6.4.5" +description = "Read resources from Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "importlib_resources-6.4.5-py3-none-any.whl", hash = "sha256:ac29d5f956f01d5e4bb63102a5a19957f1b9175e45649977264a1416783bb717"}, + {file = "importlib_resources-6.4.5.tar.gz", hash = "sha256:980862a1d16c9e147a59603677fa2aa5fd82b87f223b6cb870695bcfce830065"}, +] + +[package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["jaraco.test (>=5.4)", "pytest (>=6,!=8.1.*)", "zipp (>=3.17)"] +type = ["pytest-mypy"] + +[[package]] +name = "iniconfig" +version = "2.0.0" +description = "brain-dead simple config-ini parsing" +optional = false +python-versions = ">=3.7" +files = [ + {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, + {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, +] + +[[package]] +name = "jinja2" +version = "3.1.4" +description = "A very fast and expressive template engine." +optional = false +python-versions = ">=3.7" +files = [ + {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, + {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, +] + +[package.dependencies] +MarkupSafe = ">=2.0" + +[package.extras] +i18n = ["Babel (>=2.7)"] + +[[package]] +name = "lxml" +version = "5.3.0" +description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API." +optional = false +python-versions = ">=3.6" +files = [ + {file = "lxml-5.3.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:dd36439be765e2dde7660212b5275641edbc813e7b24668831a5c8ac91180656"}, + {file = "lxml-5.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ae5fe5c4b525aa82b8076c1a59d642c17b6e8739ecf852522c6321852178119d"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:501d0d7e26b4d261fca8132854d845e4988097611ba2531408ec91cf3fd9d20a"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb66442c2546446944437df74379e9cf9e9db353e61301d1a0e26482f43f0dd8"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9e41506fec7a7f9405b14aa2d5c8abbb4dbbd09d88f9496958b6d00cb4d45330"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f7d4a670107d75dfe5ad080bed6c341d18c4442f9378c9f58e5851e86eb79965"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41ce1f1e2c7755abfc7e759dc34d7d05fd221723ff822947132dc934d122fe22"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:44264ecae91b30e5633013fb66f6ddd05c006d3e0e884f75ce0b4755b3e3847b"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_28_ppc64le.whl", hash = "sha256:3c174dc350d3ec52deb77f2faf05c439331d6ed5e702fc247ccb4e6b62d884b7"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_28_s390x.whl", hash = "sha256:2dfab5fa6a28a0b60a20638dc48e6343c02ea9933e3279ccb132f555a62323d8"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:b1c8c20847b9f34e98080da785bb2336ea982e7f913eed5809e5a3c872900f32"}, + {file = "lxml-5.3.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:2c86bf781b12ba417f64f3422cfc302523ac9cd1d8ae8c0f92a1c66e56ef2e86"}, + {file = "lxml-5.3.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:c162b216070f280fa7da844531169be0baf9ccb17263cf5a8bf876fcd3117fa5"}, + {file = "lxml-5.3.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:36aef61a1678cb778097b4a6eeae96a69875d51d1e8f4d4b491ab3cfb54b5a03"}, + {file = "lxml-5.3.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f65e5120863c2b266dbcc927b306c5b78e502c71edf3295dfcb9501ec96e5fc7"}, + {file = "lxml-5.3.0-cp310-cp310-win32.whl", hash = "sha256:ef0c1fe22171dd7c7c27147f2e9c3e86f8bdf473fed75f16b0c2e84a5030ce80"}, + {file = "lxml-5.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:052d99051e77a4f3e8482c65014cf6372e61b0a6f4fe9edb98503bb5364cfee3"}, + {file = "lxml-5.3.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:74bcb423462233bc5d6066e4e98b0264e7c1bed7541fff2f4e34fe6b21563c8b"}, + {file = "lxml-5.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a3d819eb6f9b8677f57f9664265d0a10dd6551d227afb4af2b9cd7bdc2ccbf18"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5b8f5db71b28b8c404956ddf79575ea77aa8b1538e8b2ef9ec877945b3f46442"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c3406b63232fc7e9b8783ab0b765d7c59e7c59ff96759d8ef9632fca27c7ee4"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2ecdd78ab768f844c7a1d4a03595038c166b609f6395e25af9b0f3f26ae1230f"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:168f2dfcfdedf611eb285efac1516c8454c8c99caf271dccda8943576b67552e"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa617107a410245b8660028a7483b68e7914304a6d4882b5ff3d2d3eb5948d8c"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:69959bd3167b993e6e710b99051265654133a98f20cec1d9b493b931942e9c16"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_28_ppc64le.whl", hash = "sha256:bd96517ef76c8654446fc3db9242d019a1bb5fe8b751ba414765d59f99210b79"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_28_s390x.whl", hash = "sha256:ab6dd83b970dc97c2d10bc71aa925b84788c7c05de30241b9e96f9b6d9ea3080"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:eec1bb8cdbba2925bedc887bc0609a80e599c75b12d87ae42ac23fd199445654"}, + {file = "lxml-5.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6a7095eeec6f89111d03dabfe5883a1fd54da319c94e0fb104ee8f23616b572d"}, + {file = "lxml-5.3.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:6f651ebd0b21ec65dfca93aa629610a0dbc13dbc13554f19b0113da2e61a4763"}, + {file = "lxml-5.3.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:f422a209d2455c56849442ae42f25dbaaba1c6c3f501d58761c619c7836642ec"}, + {file = "lxml-5.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:62f7fdb0d1ed2065451f086519865b4c90aa19aed51081979ecd05a21eb4d1be"}, + {file = "lxml-5.3.0-cp311-cp311-win32.whl", hash = "sha256:c6379f35350b655fd817cd0d6cbeef7f265f3ae5fedb1caae2eb442bbeae9ab9"}, + {file = "lxml-5.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:9c52100e2c2dbb0649b90467935c4b0de5528833c76a35ea1a2691ec9f1ee7a1"}, + {file = "lxml-5.3.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:e99f5507401436fdcc85036a2e7dc2e28d962550afe1cbfc07c40e454256a859"}, + {file = "lxml-5.3.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:384aacddf2e5813a36495233b64cb96b1949da72bef933918ba5c84e06af8f0e"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:874a216bf6afaf97c263b56371434e47e2c652d215788396f60477540298218f"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:65ab5685d56914b9a2a34d67dd5488b83213d680b0c5d10b47f81da5a16b0b0e"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aac0bbd3e8dd2d9c45ceb82249e8bdd3ac99131a32b4d35c8af3cc9db1657179"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b369d3db3c22ed14c75ccd5af429086f166a19627e84a8fdade3f8f31426e52a"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c24037349665434f375645fa9d1f5304800cec574d0310f618490c871fd902b3"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:62d172f358f33a26d6b41b28c170c63886742f5b6772a42b59b4f0fa10526cb1"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_28_ppc64le.whl", hash = "sha256:c1f794c02903c2824fccce5b20c339a1a14b114e83b306ff11b597c5f71a1c8d"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_28_s390x.whl", hash = "sha256:5d6a6972b93c426ace71e0be9a6f4b2cfae9b1baed2eed2006076a746692288c"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:3879cc6ce938ff4eb4900d901ed63555c778731a96365e53fadb36437a131a99"}, + {file = "lxml-5.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:74068c601baff6ff021c70f0935b0c7bc528baa8ea210c202e03757c68c5a4ff"}, + {file = "lxml-5.3.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:ecd4ad8453ac17bc7ba3868371bffb46f628161ad0eefbd0a855d2c8c32dd81a"}, + {file = "lxml-5.3.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:7e2f58095acc211eb9d8b5771bf04df9ff37d6b87618d1cbf85f92399c98dae8"}, + {file = "lxml-5.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e63601ad5cd8f860aa99d109889b5ac34de571c7ee902d6812d5d9ddcc77fa7d"}, + {file = "lxml-5.3.0-cp312-cp312-win32.whl", hash = "sha256:17e8d968d04a37c50ad9c456a286b525d78c4a1c15dd53aa46c1d8e06bf6fa30"}, + {file = "lxml-5.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:c1a69e58a6bb2de65902051d57fde951febad631a20a64572677a1052690482f"}, + {file = "lxml-5.3.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8c72e9563347c7395910de6a3100a4840a75a6f60e05af5e58566868d5eb2d6a"}, + {file = "lxml-5.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e92ce66cd919d18d14b3856906a61d3f6b6a8500e0794142338da644260595cd"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d04f064bebdfef9240478f7a779e8c5dc32b8b7b0b2fc6a62e39b928d428e51"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c2fb570d7823c2bbaf8b419ba6e5662137f8166e364a8b2b91051a1fb40ab8b"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0c120f43553ec759f8de1fee2f4794452b0946773299d44c36bfe18e83caf002"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:562e7494778a69086f0312ec9689f6b6ac1c6b65670ed7d0267e49f57ffa08c4"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:423b121f7e6fa514ba0c7918e56955a1d4470ed35faa03e3d9f0e3baa4c7e492"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:c00f323cc00576df6165cc9d21a4c21285fa6b9989c5c39830c3903dc4303ef3"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_28_ppc64le.whl", hash = "sha256:1fdc9fae8dd4c763e8a31e7630afef517eab9f5d5d31a278df087f307bf601f4"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_28_s390x.whl", hash = "sha256:658f2aa69d31e09699705949b5fc4719cbecbd4a97f9656a232e7d6c7be1a367"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:1473427aff3d66a3fa2199004c3e601e6c4500ab86696edffdbc84954c72d832"}, + {file = "lxml-5.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a87de7dd873bf9a792bf1e58b1c3887b9264036629a5bf2d2e6579fe8e73edff"}, + {file = "lxml-5.3.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:0d7b36afa46c97875303a94e8f3ad932bf78bace9e18e603f2085b652422edcd"}, + {file = "lxml-5.3.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:cf120cce539453ae086eacc0130a324e7026113510efa83ab42ef3fcfccac7fb"}, + {file = "lxml-5.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:df5c7333167b9674aa8ae1d4008fa4bc17a313cc490b2cca27838bbdcc6bb15b"}, + {file = "lxml-5.3.0-cp313-cp313-win32.whl", hash = "sha256:c802e1c2ed9f0c06a65bc4ed0189d000ada8049312cfeab6ca635e39c9608957"}, + {file = "lxml-5.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:406246b96d552e0503e17a1006fd27edac678b3fcc9f1be71a2f94b4ff61528d"}, + {file = "lxml-5.3.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:8f0de2d390af441fe8b2c12626d103540b5d850d585b18fcada58d972b74a74e"}, + {file = "lxml-5.3.0-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1afe0a8c353746e610bd9031a630a95bcfb1a720684c3f2b36c4710a0a96528f"}, + {file = "lxml-5.3.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56b9861a71575f5795bde89256e7467ece3d339c9b43141dbdd54544566b3b94"}, + {file = "lxml-5.3.0-cp36-cp36m-manylinux_2_28_x86_64.whl", hash = "sha256:9fb81d2824dff4f2e297a276297e9031f46d2682cafc484f49de182aa5e5df99"}, + {file = "lxml-5.3.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:2c226a06ecb8cdef28845ae976da407917542c5e6e75dcac7cc33eb04aaeb237"}, + {file = "lxml-5.3.0-cp36-cp36m-musllinux_1_2_x86_64.whl", hash = "sha256:7d3d1ca42870cdb6d0d29939630dbe48fa511c203724820fc0fd507b2fb46577"}, + {file = "lxml-5.3.0-cp36-cp36m-win32.whl", hash = "sha256:094cb601ba9f55296774c2d57ad68730daa0b13dc260e1f941b4d13678239e70"}, + {file = "lxml-5.3.0-cp36-cp36m-win_amd64.whl", hash = "sha256:eafa2c8658f4e560b098fe9fc54539f86528651f61849b22111a9b107d18910c"}, + {file = "lxml-5.3.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:cb83f8a875b3d9b458cada4f880fa498646874ba4011dc974e071a0a84a1b033"}, + {file = "lxml-5.3.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:25f1b69d41656b05885aa185f5fdf822cb01a586d1b32739633679699f220391"}, + {file = "lxml-5.3.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23e0553b8055600b3bf4a00b255ec5c92e1e4aebf8c2c09334f8368e8bd174d6"}, + {file = "lxml-5.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ada35dd21dc6c039259596b358caab6b13f4db4d4a7f8665764d616daf9cc1d"}, + {file = "lxml-5.3.0-cp37-cp37m-manylinux_2_28_aarch64.whl", hash = "sha256:81b4e48da4c69313192d8c8d4311e5d818b8be1afe68ee20f6385d0e96fc9512"}, + {file = "lxml-5.3.0-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:2bc9fd5ca4729af796f9f59cd8ff160fe06a474da40aca03fcc79655ddee1a8b"}, + {file = "lxml-5.3.0-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:07da23d7ee08577760f0a71d67a861019103e4812c87e2fab26b039054594cc5"}, + {file = "lxml-5.3.0-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:ea2e2f6f801696ad7de8aec061044d6c8c0dd4037608c7cab38a9a4d316bfb11"}, + {file = "lxml-5.3.0-cp37-cp37m-win32.whl", hash = "sha256:5c54afdcbb0182d06836cc3d1be921e540be3ebdf8b8a51ee3ef987537455f84"}, + {file = "lxml-5.3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:f2901429da1e645ce548bf9171784c0f74f0718c3f6150ce166be39e4dd66c3e"}, + {file = "lxml-5.3.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c56a1d43b2f9ee4786e4658c7903f05da35b923fb53c11025712562d5cc02753"}, + {file = "lxml-5.3.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ee8c39582d2652dcd516d1b879451500f8db3fe3607ce45d7c5957ab2596040"}, + {file = "lxml-5.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fdf3a3059611f7585a78ee10399a15566356116a4288380921a4b598d807a22"}, + {file = "lxml-5.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:146173654d79eb1fc97498b4280c1d3e1e5d58c398fa530905c9ea50ea849b22"}, + {file = "lxml-5.3.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:0a7056921edbdd7560746f4221dca89bb7a3fe457d3d74267995253f46343f15"}, + {file = "lxml-5.3.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:9e4b47ac0f5e749cfc618efdf4726269441014ae1d5583e047b452a32e221920"}, + {file = "lxml-5.3.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:f914c03e6a31deb632e2daa881fe198461f4d06e57ac3d0e05bbcab8eae01945"}, + {file = "lxml-5.3.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:213261f168c5e1d9b7535a67e68b1f59f92398dd17a56d934550837143f79c42"}, + {file = "lxml-5.3.0-cp38-cp38-win32.whl", hash = "sha256:218c1b2e17a710e363855594230f44060e2025b05c80d1f0661258142b2add2e"}, + {file = "lxml-5.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:315f9542011b2c4e1d280e4a20ddcca1761993dda3afc7a73b01235f8641e903"}, + {file = "lxml-5.3.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:1ffc23010330c2ab67fac02781df60998ca8fe759e8efde6f8b756a20599c5de"}, + {file = "lxml-5.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2b3778cb38212f52fac9fe913017deea2fdf4eb1a4f8e4cfc6b009a13a6d3fcc"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4b0c7a688944891086ba192e21c5229dea54382f4836a209ff8d0a660fac06be"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:747a3d3e98e24597981ca0be0fd922aebd471fa99d0043a3842d00cdcad7ad6a"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:86a6b24b19eaebc448dc56b87c4865527855145d851f9fc3891673ff97950540"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b11a5d918a6216e521c715b02749240fb07ae5a1fefd4b7bf12f833bc8b4fe70"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68b87753c784d6acb8a25b05cb526c3406913c9d988d51f80adecc2b0775d6aa"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:109fa6fede314cc50eed29e6e56c540075e63d922455346f11e4d7a036d2b8cf"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_28_ppc64le.whl", hash = "sha256:02ced472497b8362c8e902ade23e3300479f4f43e45f4105c85ef43b8db85229"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_28_s390x.whl", hash = "sha256:6b038cc86b285e4f9fea2ba5ee76e89f21ed1ea898e287dc277a25884f3a7dfe"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:7437237c6a66b7ca341e868cda48be24b8701862757426852c9b3186de1da8a2"}, + {file = "lxml-5.3.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:7f41026c1d64043a36fda21d64c5026762d53a77043e73e94b71f0521939cc71"}, + {file = "lxml-5.3.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:482c2f67761868f0108b1743098640fbb2a28a8e15bf3f47ada9fa59d9fe08c3"}, + {file = "lxml-5.3.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:1483fd3358963cc5c1c9b122c80606a3a79ee0875bcac0204149fa09d6ff2727"}, + {file = "lxml-5.3.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:2dec2d1130a9cda5b904696cec33b2cfb451304ba9081eeda7f90f724097300a"}, + {file = "lxml-5.3.0-cp39-cp39-win32.whl", hash = "sha256:a0eabd0a81625049c5df745209dc7fcef6e2aea7793e5f003ba363610aa0a3ff"}, + {file = "lxml-5.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:89e043f1d9d341c52bf2af6d02e6adde62e0a46e6755d5eb60dc6e4f0b8aeca2"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7b1cd427cb0d5f7393c31b7496419da594fe600e6fdc4b105a54f82405e6626c"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:51806cfe0279e06ed8500ce19479d757db42a30fd509940b1701be9c86a5ff9a"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ee70d08fd60c9565ba8190f41a46a54096afa0eeb8f76bd66f2c25d3b1b83005"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:8dc2c0395bea8254d8daebc76dcf8eb3a95ec2a46fa6fae5eaccee366bfe02ce"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:6ba0d3dcac281aad8a0e5b14c7ed6f9fa89c8612b47939fc94f80b16e2e9bc83"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:6e91cf736959057f7aac7adfc83481e03615a8e8dd5758aa1d95ea69e8931dba"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:94d6c3782907b5e40e21cadf94b13b0842ac421192f26b84c45f13f3c9d5dc27"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c300306673aa0f3ed5ed9372b21867690a17dba38c68c44b287437c362ce486b"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78d9b952e07aed35fe2e1a7ad26e929595412db48535921c5013edc8aa4a35ce"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:01220dca0d066d1349bd6a1726856a78f7929f3878f7e2ee83c296c69495309e"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:2d9b8d9177afaef80c53c0a9e30fa252ff3036fb1c6494d427c066a4ce6a282f"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:20094fc3f21ea0a8669dc4c61ed7fa8263bd37d97d93b90f28fc613371e7a875"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ace2c2326a319a0bb8a8b0e5b570c764962e95818de9f259ce814ee666603f19"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:92e67a0be1639c251d21e35fe74df6bcc40cba445c2cda7c4a967656733249e2"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd5350b55f9fecddc51385463a4f67a5da829bc741e38cf689f38ec9023f54ab"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:4c1fefd7e3d00921c44dc9ca80a775af49698bbfd92ea84498e56acffd4c5469"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:71a8dd38fbd2f2319136d4ae855a7078c69c9a38ae06e0c17c73fd70fc6caad8"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:97acf1e1fd66ab53dacd2c35b319d7e548380c2e9e8c54525c6e76d21b1ae3b1"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:68934b242c51eb02907c5b81d138cb977b2129a0a75a8f8b60b01cb8586c7b21"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b710bc2b8292966b23a6a0121f7a6c51d45d2347edcc75f016ac123b8054d3f2"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18feb4b93302091b1541221196a2155aa296c363fd233814fa11e181adebc52f"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:3eb44520c4724c2e1a57c0af33a379eee41792595023f367ba3952a2d96c2aab"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:609251a0ca4770e5a8768ff902aa02bf636339c5a93f9349b48eb1f606f7f3e9"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:516f491c834eb320d6c843156440fe7fc0d50b33e44387fcec5b02f0bc118a4c"}, + {file = "lxml-5.3.0.tar.gz", hash = "sha256:4e109ca30d1edec1ac60cdbe341905dc3b8f55b16855e03a54aaf59e51ec8c6f"}, +] + +[package.extras] +cssselect = ["cssselect (>=0.7)"] +html-clean = ["lxml-html-clean"] +html5 = ["html5lib"] +htmlsoup = ["BeautifulSoup4"] +source = ["Cython (>=3.0.11)"] + +[[package]] +name = "markdown-it-py" +version = "3.0.0" +description = "Python port of markdown-it. Markdown parsing, done right!" +optional = false +python-versions = ">=3.8" +files = [ + {file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"}, + {file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"}, +] + +[package.dependencies] +mdurl = ">=0.1,<1.0" + +[package.extras] +benchmarking = ["psutil", "pytest", "pytest-benchmark"] +code-style = ["pre-commit (>=3.0,<4.0)"] +compare = ["commonmark (>=0.9,<1.0)", "markdown (>=3.4,<4.0)", "mistletoe (>=1.0,<2.0)", "mistune (>=2.0,<3.0)", "panflute (>=2.3,<3.0)"] +linkify = ["linkify-it-py (>=1,<3)"] +plugins = ["mdit-py-plugins"] +profiling = ["gprof2dot"] +rtd = ["jupyter_sphinx", "mdit-py-plugins", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] + +[[package]] +name = "markupsafe" +version = "3.0.2" +description = "Safely add untrusted strings to HTML/XML markup." +optional = false +python-versions = ">=3.9" +files = [ + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a"}, + {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"}, +] + +[[package]] +name = "mdurl" +version = "0.1.2" +description = "Markdown URL utilities" +optional = false +python-versions = ">=3.7" +files = [ + {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, + {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, +] + +[[package]] +name = "mypy" +version = "1.13.0" +description = "Optional static typing for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "mypy-1.13.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6607e0f1dd1fb7f0aca14d936d13fd19eba5e17e1cd2a14f808fa5f8f6d8f60a"}, + {file = "mypy-1.13.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8a21be69bd26fa81b1f80a61ee7ab05b076c674d9b18fb56239d72e21d9f4c80"}, + {file = "mypy-1.13.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7b2353a44d2179846a096e25691d54d59904559f4232519d420d64da6828a3a7"}, + {file = "mypy-1.13.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0730d1c6a2739d4511dc4253f8274cdd140c55c32dfb0a4cf8b7a43f40abfa6f"}, + {file = "mypy-1.13.0-cp310-cp310-win_amd64.whl", hash = "sha256:c5fc54dbb712ff5e5a0fca797e6e0aa25726c7e72c6a5850cfd2adbc1eb0a372"}, + {file = "mypy-1.13.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:581665e6f3a8a9078f28d5502f4c334c0c8d802ef55ea0e7276a6e409bc0d82d"}, + {file = "mypy-1.13.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3ddb5b9bf82e05cc9a627e84707b528e5c7caaa1c55c69e175abb15a761cec2d"}, + {file = "mypy-1.13.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:20c7ee0bc0d5a9595c46f38beb04201f2620065a93755704e141fcac9f59db2b"}, + {file = "mypy-1.13.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3790ded76f0b34bc9c8ba4def8f919dd6a46db0f5a6610fb994fe8efdd447f73"}, + {file = "mypy-1.13.0-cp311-cp311-win_amd64.whl", hash = "sha256:51f869f4b6b538229c1d1bcc1dd7d119817206e2bc54e8e374b3dfa202defcca"}, + {file = "mypy-1.13.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:5c7051a3461ae84dfb5dd15eff5094640c61c5f22257c8b766794e6dd85e72d5"}, + {file = "mypy-1.13.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:39bb21c69a5d6342f4ce526e4584bc5c197fd20a60d14a8624d8743fffb9472e"}, + {file = "mypy-1.13.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:164f28cb9d6367439031f4c81e84d3ccaa1e19232d9d05d37cb0bd880d3f93c2"}, + {file = "mypy-1.13.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a4c1bfcdbce96ff5d96fc9b08e3831acb30dc44ab02671eca5953eadad07d6d0"}, + {file = "mypy-1.13.0-cp312-cp312-win_amd64.whl", hash = "sha256:a0affb3a79a256b4183ba09811e3577c5163ed06685e4d4b46429a271ba174d2"}, + {file = "mypy-1.13.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a7b44178c9760ce1a43f544e595d35ed61ac2c3de306599fa59b38a6048e1aa7"}, + {file = "mypy-1.13.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5d5092efb8516d08440e36626f0153b5006d4088c1d663d88bf79625af3d1d62"}, + {file = "mypy-1.13.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:de2904956dac40ced10931ac967ae63c5089bd498542194b436eb097a9f77bc8"}, + {file = "mypy-1.13.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:7bfd8836970d33c2105562650656b6846149374dc8ed77d98424b40b09340ba7"}, + {file = "mypy-1.13.0-cp313-cp313-win_amd64.whl", hash = "sha256:9f73dba9ec77acb86457a8fc04b5239822df0c14a082564737833d2963677dbc"}, + {file = "mypy-1.13.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:100fac22ce82925f676a734af0db922ecfea991e1d7ec0ceb1e115ebe501301a"}, + {file = "mypy-1.13.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7bcb0bb7f42a978bb323a7c88f1081d1b5dee77ca86f4100735a6f541299d8fb"}, + {file = "mypy-1.13.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bde31fc887c213e223bbfc34328070996061b0833b0a4cfec53745ed61f3519b"}, + {file = "mypy-1.13.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:07de989f89786f62b937851295ed62e51774722e5444a27cecca993fc3f9cd74"}, + {file = "mypy-1.13.0-cp38-cp38-win_amd64.whl", hash = "sha256:4bde84334fbe19bad704b3f5b78c4abd35ff1026f8ba72b29de70dda0916beb6"}, + {file = "mypy-1.13.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0246bcb1b5de7f08f2826451abd947bf656945209b140d16ed317f65a17dc7dc"}, + {file = "mypy-1.13.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7f5b7deae912cf8b77e990b9280f170381fdfbddf61b4ef80927edd813163732"}, + {file = "mypy-1.13.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7029881ec6ffb8bc233a4fa364736789582c738217b133f1b55967115288a2bc"}, + {file = "mypy-1.13.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:3e38b980e5681f28f033f3be86b099a247b13c491f14bb8b1e1e134d23bb599d"}, + {file = "mypy-1.13.0-cp39-cp39-win_amd64.whl", hash = "sha256:a6789be98a2017c912ae6ccb77ea553bbaf13d27605d2ca20a76dfbced631b24"}, + {file = "mypy-1.13.0-py3-none-any.whl", hash = "sha256:9c250883f9fd81d212e0952c92dbfcc96fc237f4b7c92f56ac81fd48460b3e5a"}, + {file = "mypy-1.13.0.tar.gz", hash = "sha256:0291a61b6fbf3e6673e3405cfcc0e7650bebc7939659fdca2702958038bd835e"}, +] + +[package.dependencies] +mypy-extensions = ">=1.0.0" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +typing-extensions = ">=4.6.0" + +[package.extras] +dmypy = ["psutil (>=4.0)"] +faster-cache = ["orjson"] +install-types = ["pip"] +mypyc = ["setuptools (>=50)"] +reports = ["lxml"] + +[[package]] +name = "mypy-extensions" +version = "1.0.0" +description = "Type system extensions for programs checked with the mypy type checker." +optional = false +python-versions = ">=3.5" +files = [ + {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, + {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, +] + +[[package]] +name = "nibabel" +version = "5.3.2" +description = "Access a multitude of neuroimaging data formats" +optional = false +python-versions = ">=3.9" +files = [ + {file = "nibabel-5.3.2-py3-none-any.whl", hash = "sha256:52970a5a8a53b1b55249cba4d9bcfaa8cc57e3e5af35a29d7352237e8680a6f8"}, + {file = "nibabel-5.3.2.tar.gz", hash = "sha256:0bdca6503b1c784b446c745a4542367de7756cfba0d72143b91f9ffb78be569b"}, +] + +[package.dependencies] +importlib-resources = {version = ">=5.12", markers = "python_version < \"3.12\""} +numpy = ">=1.22" +packaging = ">=20" +typing-extensions = {version = ">=4.6", markers = "python_version < \"3.13\""} + +[package.extras] +all = ["h5py", "pillow", "pydicom (>=2.3)", "pyzstd (>=0.14.3)", "scipy"] +dev = ["tox"] +dicom = ["pydicom (>=2.3)"] +dicomfs = ["pillow", "pydicom (>=2.3)"] +doc = ["matplotlib (>=3.5)", "numpydoc", "sphinx", "texext", "tomli"] +doctest = ["tox"] +minc2 = ["h5py"] +spm = ["scipy"] +style = ["tox"] +test = ["coverage (>=7.2)", "pytest", "pytest-cov", "pytest-doctestplus", "pytest-httpserver", "pytest-xdist"] +typing = ["tox"] +zstd = ["pyzstd (>=0.14.3)"] + +[[package]] +name = "nodeenv" +version = "1.9.1" +description = "Node.js virtual environment builder" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9"}, + {file = "nodeenv-1.9.1.tar.gz", hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f"}, +] + +[[package]] +name = "numcodecs" +version = "0.13.1" +description = "A Python package providing buffer compression and transformation codecs for use in data storage and communication applications." +optional = false +python-versions = ">=3.10" +files = [ + {file = "numcodecs-0.13.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:96add4f783c5ce57cc7e650b6cac79dd101daf887c479a00a29bc1487ced180b"}, + {file = "numcodecs-0.13.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:237b7171609e868a20fd313748494444458ccd696062f67e198f7f8f52000c15"}, + {file = "numcodecs-0.13.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:96e42f73c31b8c24259c5fac6adba0c3ebf95536e37749dc6c62ade2989dca28"}, + {file = "numcodecs-0.13.1-cp310-cp310-win_amd64.whl", hash = "sha256:eda7d7823c9282e65234731fd6bd3986b1f9e035755f7fed248d7d366bb291ab"}, + {file = "numcodecs-0.13.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2eda97dd2f90add98df6d295f2c6ae846043396e3d51a739ca5db6c03b5eb666"}, + {file = "numcodecs-0.13.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2a86f5367af9168e30f99727ff03b27d849c31ad4522060dde0bce2923b3a8bc"}, + {file = "numcodecs-0.13.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:233bc7f26abce24d57e44ea8ebeb5cd17084690b4e7409dd470fdb75528d615f"}, + {file = "numcodecs-0.13.1-cp311-cp311-win_amd64.whl", hash = "sha256:796b3e6740107e4fa624cc636248a1580138b3f1c579160f260f76ff13a4261b"}, + {file = "numcodecs-0.13.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:5195bea384a6428f8afcece793860b1ab0ae28143c853f0b2b20d55a8947c917"}, + {file = "numcodecs-0.13.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3501a848adaddce98a71a262fee15cd3618312692aa419da77acd18af4a6a3f6"}, + {file = "numcodecs-0.13.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da2230484e6102e5fa3cc1a5dd37ca1f92dfbd183d91662074d6f7574e3e8f53"}, + {file = "numcodecs-0.13.1-cp312-cp312-win_amd64.whl", hash = "sha256:e5db4824ebd5389ea30e54bc8aeccb82d514d28b6b68da6c536b8fa4596f4bca"}, + {file = "numcodecs-0.13.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7a60d75179fd6692e301ddfb3b266d51eb598606dcae7b9fc57f986e8d65cb43"}, + {file = "numcodecs-0.13.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3f593c7506b0ab248961a3b13cb148cc6e8355662ff124ac591822310bc55ecf"}, + {file = "numcodecs-0.13.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80d3071465f03522e776a31045ddf2cfee7f52df468b977ed3afdd7fe5869701"}, + {file = "numcodecs-0.13.1-cp313-cp313-win_amd64.whl", hash = "sha256:90d3065ae74c9342048ae0046006f99dcb1388b7288da5a19b3bddf9c30c3176"}, + {file = "numcodecs-0.13.1.tar.gz", hash = "sha256:a3cf37881df0898f3a9c0d4477df88133fe85185bffe57ba31bcc2fa207709bc"}, +] + +[package.dependencies] +numpy = ">=1.7" + +[package.extras] +docs = ["mock", "numpydoc", "pydata-sphinx-theme", "sphinx", "sphinx-issues"] +msgpack = ["msgpack"] +pcodec = ["pcodec (>=0.2.0)"] +test = ["coverage", "pytest", "pytest-cov"] +test-extras = ["importlib-metadata"] +zfpy = ["numpy (<2.0.0)", "zfpy (>=1.0.0)"] + +[[package]] +name = "numpy" +version = "2.1.3" +description = "Fundamental package for array computing in Python" +optional = false +python-versions = ">=3.10" +files = [ + {file = "numpy-2.1.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c894b4305373b9c5576d7a12b473702afdf48ce5369c074ba304cc5ad8730dff"}, + {file = "numpy-2.1.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b47fbb433d3260adcd51eb54f92a2ffbc90a4595f8970ee00e064c644ac788f5"}, + {file = "numpy-2.1.3-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:825656d0743699c529c5943554d223c021ff0494ff1442152ce887ef4f7561a1"}, + {file = "numpy-2.1.3-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:6a4825252fcc430a182ac4dee5a505053d262c807f8a924603d411f6718b88fd"}, + {file = "numpy-2.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e711e02f49e176a01d0349d82cb5f05ba4db7d5e7e0defd026328e5cfb3226d3"}, + {file = "numpy-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78574ac2d1a4a02421f25da9559850d59457bac82f2b8d7a44fe83a64f770098"}, + {file = "numpy-2.1.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c7662f0e3673fe4e832fe07b65c50342ea27d989f92c80355658c7f888fcc83c"}, + {file = "numpy-2.1.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:fa2d1337dc61c8dc417fbccf20f6d1e139896a30721b7f1e832b2bb6ef4eb6c4"}, + {file = "numpy-2.1.3-cp310-cp310-win32.whl", hash = "sha256:72dcc4a35a8515d83e76b58fdf8113a5c969ccd505c8a946759b24e3182d1f23"}, + {file = "numpy-2.1.3-cp310-cp310-win_amd64.whl", hash = "sha256:ecc76a9ba2911d8d37ac01de72834d8849e55473457558e12995f4cd53e778e0"}, + {file = "numpy-2.1.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4d1167c53b93f1f5d8a139a742b3c6f4d429b54e74e6b57d0eff40045187b15d"}, + {file = "numpy-2.1.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c80e4a09b3d95b4e1cac08643f1152fa71a0a821a2d4277334c88d54b2219a41"}, + {file = "numpy-2.1.3-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:576a1c1d25e9e02ed7fa5477f30a127fe56debd53b8d2c89d5578f9857d03ca9"}, + {file = "numpy-2.1.3-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:973faafebaae4c0aaa1a1ca1ce02434554d67e628b8d805e61f874b84e136b09"}, + {file = "numpy-2.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:762479be47a4863e261a840e8e01608d124ee1361e48b96916f38b119cfda04a"}, + {file = "numpy-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc6f24b3d1ecc1eebfbf5d6051faa49af40b03be1aaa781ebdadcbc090b4539b"}, + {file = "numpy-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:17ee83a1f4fef3c94d16dc1802b998668b5419362c8a4f4e8a491de1b41cc3ee"}, + {file = "numpy-2.1.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:15cb89f39fa6d0bdfb600ea24b250e5f1a3df23f901f51c8debaa6a5d122b2f0"}, + {file = "numpy-2.1.3-cp311-cp311-win32.whl", hash = "sha256:d9beb777a78c331580705326d2367488d5bc473b49a9bc3036c154832520aca9"}, + {file = "numpy-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:d89dd2b6da69c4fff5e39c28a382199ddedc3a5be5390115608345dec660b9e2"}, + {file = "numpy-2.1.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f55ba01150f52b1027829b50d70ef1dafd9821ea82905b63936668403c3b471e"}, + {file = "numpy-2.1.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:13138eadd4f4da03074851a698ffa7e405f41a0845a6b1ad135b81596e4e9958"}, + {file = "numpy-2.1.3-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:a6b46587b14b888e95e4a24d7b13ae91fa22386c199ee7b418f449032b2fa3b8"}, + {file = "numpy-2.1.3-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:0fa14563cc46422e99daef53d725d0c326e99e468a9320a240affffe87852564"}, + {file = "numpy-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8637dcd2caa676e475503d1f8fdb327bc495554e10838019651b76d17b98e512"}, + {file = "numpy-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2312b2aa89e1f43ecea6da6ea9a810d06aae08321609d8dc0d0eda6d946a541b"}, + {file = "numpy-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a38c19106902bb19351b83802531fea19dee18e5b37b36454f27f11ff956f7fc"}, + {file = "numpy-2.1.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:02135ade8b8a84011cbb67dc44e07c58f28575cf9ecf8ab304e51c05528c19f0"}, + {file = "numpy-2.1.3-cp312-cp312-win32.whl", hash = "sha256:e6988e90fcf617da2b5c78902fe8e668361b43b4fe26dbf2d7b0f8034d4cafb9"}, + {file = "numpy-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:0d30c543f02e84e92c4b1f415b7c6b5326cbe45ee7882b6b77db7195fb971e3a"}, + {file = "numpy-2.1.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:96fe52fcdb9345b7cd82ecd34547fca4321f7656d500eca497eb7ea5a926692f"}, + {file = "numpy-2.1.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f653490b33e9c3a4c1c01d41bc2aef08f9475af51146e4a7710c450cf9761598"}, + {file = "numpy-2.1.3-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:dc258a761a16daa791081d026f0ed4399b582712e6fc887a95af09df10c5ca57"}, + {file = "numpy-2.1.3-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:016d0f6f5e77b0f0d45d77387ffa4bb89816b57c835580c3ce8e099ef830befe"}, + {file = "numpy-2.1.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c181ba05ce8299c7aa3125c27b9c2167bca4a4445b7ce73d5febc411ca692e43"}, + {file = "numpy-2.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5641516794ca9e5f8a4d17bb45446998c6554704d888f86df9b200e66bdcce56"}, + {file = "numpy-2.1.3-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ea4dedd6e394a9c180b33c2c872b92f7ce0f8e7ad93e9585312b0c5a04777a4a"}, + {file = "numpy-2.1.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b0df3635b9c8ef48bd3be5f862cf71b0a4716fa0e702155c45067c6b711ddcef"}, + {file = "numpy-2.1.3-cp313-cp313-win32.whl", hash = "sha256:50ca6aba6e163363f132b5c101ba078b8cbd3fa92c7865fd7d4d62d9779ac29f"}, + {file = "numpy-2.1.3-cp313-cp313-win_amd64.whl", hash = "sha256:747641635d3d44bcb380d950679462fae44f54b131be347d5ec2bce47d3df9ed"}, + {file = "numpy-2.1.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:996bb9399059c5b82f76b53ff8bb686069c05acc94656bb259b1d63d04a9506f"}, + {file = "numpy-2.1.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:45966d859916ad02b779706bb43b954281db43e185015df6eb3323120188f9e4"}, + {file = "numpy-2.1.3-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:baed7e8d7481bfe0874b566850cb0b85243e982388b7b23348c6db2ee2b2ae8e"}, + {file = "numpy-2.1.3-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:a9f7f672a3388133335589cfca93ed468509cb7b93ba3105fce780d04a6576a0"}, + {file = "numpy-2.1.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7aac50327da5d208db2eec22eb11e491e3fe13d22653dce51b0f4109101b408"}, + {file = "numpy-2.1.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4394bc0dbd074b7f9b52024832d16e019decebf86caf909d94f6b3f77a8ee3b6"}, + {file = "numpy-2.1.3-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:50d18c4358a0a8a53f12a8ba9d772ab2d460321e6a93d6064fc22443d189853f"}, + {file = "numpy-2.1.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:14e253bd43fc6b37af4921b10f6add6925878a42a0c5fe83daee390bca80bc17"}, + {file = "numpy-2.1.3-cp313-cp313t-win32.whl", hash = "sha256:08788d27a5fd867a663f6fc753fd7c3ad7e92747efc73c53bca2f19f8bc06f48"}, + {file = "numpy-2.1.3-cp313-cp313t-win_amd64.whl", hash = "sha256:2564fbdf2b99b3f815f2107c1bbc93e2de8ee655a69c261363a1172a79a257d4"}, + {file = "numpy-2.1.3-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:4f2015dfe437dfebbfce7c85c7b53d81ba49e71ba7eadbf1df40c915af75979f"}, + {file = "numpy-2.1.3-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:3522b0dfe983a575e6a9ab3a4a4dfe156c3e428468ff08ce582b9bb6bd1d71d4"}, + {file = "numpy-2.1.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c006b607a865b07cd981ccb218a04fc86b600411d83d6fc261357f1c0966755d"}, + {file = "numpy-2.1.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:e14e26956e6f1696070788252dcdff11b4aca4c3e8bd166e0df1bb8f315a67cb"}, + {file = "numpy-2.1.3.tar.gz", hash = "sha256:aa08e04e08aaf974d4458def539dece0d28146d866a39da5639596f4921fd761"}, +] + +[[package]] +name = "packaging" +version = "24.1" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"}, + {file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"}, +] + +[[package]] +name = "pdoc" +version = "14.7.0" +description = "API Documentation for Python Projects" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pdoc-14.7.0-py3-none-any.whl", hash = "sha256:72377a907efc6b2c5b3c56b717ef34f11d93621dced3b663f3aede0b844c0ad2"}, + {file = "pdoc-14.7.0.tar.gz", hash = "sha256:2d28af9c0acc39180744ad0543e4bbc3223ecba0d1302db315ec521c51f71f93"}, +] + +[package.dependencies] +Jinja2 = ">=2.11.0" +MarkupSafe = "*" +pygments = ">=2.12.0" + +[package.extras] +dev = ["hypothesis", "mypy", "pdoc-pyo3-sample-library (==1.0.11)", "pygments (>=2.14.0)", "pytest", "pytest-cov", "pytest-timeout", "ruff", "tox", "types-pygments"] + +[[package]] +name = "platformdirs" +version = "4.3.6" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." +optional = false +python-versions = ">=3.8" +files = [ + {file = "platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"}, + {file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"}, +] + +[package.extras] +docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.2)", "pytest-cov (>=5)", "pytest-mock (>=3.14)"] +type = ["mypy (>=1.11.2)"] + +[[package]] +name = "pluggy" +version = "1.5.0" +description = "plugin and hook calling mechanisms for python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, + {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, +] + +[package.extras] +dev = ["pre-commit", "tox"] +testing = ["pytest", "pytest-benchmark"] + +[[package]] +name = "pre-commit" +version = "3.8.0" +description = "A framework for managing and maintaining multi-language pre-commit hooks." +optional = false +python-versions = ">=3.9" +files = [ + {file = "pre_commit-3.8.0-py2.py3-none-any.whl", hash = "sha256:9a90a53bf82fdd8778d58085faf8d83df56e40dfe18f45b19446e26bf1b3a63f"}, + {file = "pre_commit-3.8.0.tar.gz", hash = "sha256:8bb6494d4a20423842e198980c9ecf9f96607a07ea29549e180eef9ae80fe7af"}, +] + +[package.dependencies] +cfgv = ">=2.0.0" +identify = ">=1.0.0" +nodeenv = ">=0.11.1" +pyyaml = ">=5.1" +virtualenv = ">=20.10.0" + +[[package]] +name = "pygments" +version = "2.18.0" +description = "Pygments is a syntax highlighting package written in Python." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"}, + {file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"}, +] + +[package.extras] +windows-terminal = ["colorama (>=0.4.6)"] + +[[package]] +name = "pytest" +version = "8.3.3" +description = "pytest: simple powerful testing with Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pytest-8.3.3-py3-none-any.whl", hash = "sha256:a6853c7375b2663155079443d2e45de913a911a11d669df02a50814944db57b2"}, + {file = "pytest-8.3.3.tar.gz", hash = "sha256:70b98107bd648308a7952b06e6ca9a50bc660be218d53c257cc1fc94fda10181"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "sys_platform == \"win32\""} +exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} +iniconfig = "*" +packaging = "*" +pluggy = ">=1.5,<2" +tomli = {version = ">=1", markers = "python_version < \"3.11\""} + +[package.extras] +dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] + +[[package]] +name = "pytest-cov" +version = "5.0.0" +description = "Pytest plugin for measuring coverage." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pytest-cov-5.0.0.tar.gz", hash = "sha256:5837b58e9f6ebd335b0f8060eecce69b662415b16dc503883a02f45dfeb14857"}, + {file = "pytest_cov-5.0.0-py3-none-any.whl", hash = "sha256:4f0764a1219df53214206bf1feea4633c3b558a2925c8b59f144f682861ce652"}, +] + +[package.dependencies] +coverage = {version = ">=5.2.1", extras = ["toml"]} +pytest = ">=4.6" + +[package.extras] +testing = ["fields", "hunter", "process-tests", "pytest-xdist", "virtualenv"] + +[[package]] +name = "pyyaml" +version = "6.0.2" +description = "YAML parser and emitter for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, + {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, + {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, + {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, + {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, + {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, + {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, + {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, + {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, + {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, + {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, + {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, + {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, + {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, + {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, + {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, + {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, +] + +[[package]] +name = "rich" +version = "13.9.4" +description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" +optional = false +python-versions = ">=3.8.0" +files = [ + {file = "rich-13.9.4-py3-none-any.whl", hash = "sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90"}, + {file = "rich-13.9.4.tar.gz", hash = "sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098"}, +] + +[package.dependencies] +markdown-it-py = ">=2.2.0" +pygments = ">=2.13.0,<3.0.0" +typing-extensions = {version = ">=4.0.0,<5.0", markers = "python_version < \"3.11\""} + +[package.extras] +jupyter = ["ipywidgets (>=7.5.1,<9)"] + +[[package]] +name = "rich-rst" +version = "1.3.1" +description = "A beautiful reStructuredText renderer for rich" +optional = false +python-versions = ">=3.6" +files = [ + {file = "rich_rst-1.3.1-py3-none-any.whl", hash = "sha256:498a74e3896507ab04492d326e794c3ef76e7cda078703aa592d1853d91098c1"}, + {file = "rich_rst-1.3.1.tar.gz", hash = "sha256:fad46e3ba42785ea8c1785e2ceaa56e0ffa32dbe5410dec432f37e4107c4f383"}, +] + +[package.dependencies] +docutils = "*" +rich = ">=12.0.0" + +[[package]] +name = "ruff" +version = "0.3.7" +description = "An extremely fast Python linter and code formatter, written in Rust." +optional = false +python-versions = ">=3.7" +files = [ + {file = "ruff-0.3.7-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:0e8377cccb2f07abd25e84fc5b2cbe48eeb0fea9f1719cad7caedb061d70e5ce"}, + {file = "ruff-0.3.7-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:15a4d1cc1e64e556fa0d67bfd388fed416b7f3b26d5d1c3e7d192c897e39ba4b"}, + {file = "ruff-0.3.7-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d28bdf3d7dc71dd46929fafeec98ba89b7c3550c3f0978e36389b5631b793663"}, + {file = "ruff-0.3.7-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:379b67d4f49774ba679593b232dcd90d9e10f04d96e3c8ce4a28037ae473f7bb"}, + {file = "ruff-0.3.7-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c060aea8ad5ef21cdfbbe05475ab5104ce7827b639a78dd55383a6e9895b7c51"}, + {file = "ruff-0.3.7-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:ebf8f615dde968272d70502c083ebf963b6781aacd3079081e03b32adfe4d58a"}, + {file = "ruff-0.3.7-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d48098bd8f5c38897b03604f5428901b65e3c97d40b3952e38637b5404b739a2"}, + {file = "ruff-0.3.7-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:da8a4fda219bf9024692b1bc68c9cff4b80507879ada8769dc7e985755d662ea"}, + {file = "ruff-0.3.7-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c44e0149f1d8b48c4d5c33d88c677a4aa22fd09b1683d6a7ff55b816b5d074f"}, + {file = "ruff-0.3.7-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:3050ec0af72b709a62ecc2aca941b9cd479a7bf2b36cc4562f0033d688e44fa1"}, + {file = "ruff-0.3.7-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:a29cc38e4c1ab00da18a3f6777f8b50099d73326981bb7d182e54a9a21bb4ff7"}, + {file = "ruff-0.3.7-py3-none-musllinux_1_2_i686.whl", hash = "sha256:5b15cc59c19edca917f51b1956637db47e200b0fc5e6e1878233d3a938384b0b"}, + {file = "ruff-0.3.7-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:e491045781b1e38b72c91247cf4634f040f8d0cb3e6d3d64d38dcf43616650b4"}, + {file = "ruff-0.3.7-py3-none-win32.whl", hash = "sha256:bc931de87593d64fad3a22e201e55ad76271f1d5bfc44e1a1887edd0903c7d9f"}, + {file = "ruff-0.3.7-py3-none-win_amd64.whl", hash = "sha256:5ef0e501e1e39f35e03c2acb1d1238c595b8bb36cf7a170e7c1df1b73da00e74"}, + {file = "ruff-0.3.7-py3-none-win_arm64.whl", hash = "sha256:789e144f6dc7019d1f92a812891c645274ed08af6037d11fc65fcbc183b7d59f"}, + {file = "ruff-0.3.7.tar.gz", hash = "sha256:d5c1aebee5162c2226784800ae031f660c350e7a3402c4d1f8ea4e97e232e3ba"}, +] + +[[package]] +name = "tifffile" +version = "2024.9.20" +description = "Read and write TIFF files" +optional = false +python-versions = ">=3.10" +files = [ + {file = "tifffile-2024.9.20-py3-none-any.whl", hash = "sha256:c54dc85bc1065d972cb8a6ffb3181389d597876aa80177933459733e4ed243dd"}, + {file = "tifffile-2024.9.20.tar.gz", hash = "sha256:3fbf3be2f995a7051a8ae05a4be70c96fc0789f22ed6f1c4104c973cf68a640b"}, +] + +[package.dependencies] +numpy = "*" + +[package.extras] +all = ["defusedxml", "fsspec", "imagecodecs (>=2023.8.12)", "lxml", "matplotlib", "zarr"] +codecs = ["imagecodecs (>=2023.8.12)"] +plot = ["matplotlib"] +test = ["cmapfile", "czifile", "dask", "defusedxml", "fsspec", "imagecodecs", "lfdfiles", "lxml", "ndtiff", "oiffile", "psdtags", "pytest", "roifile", "xarray", "zarr"] +xml = ["defusedxml", "lxml"] +zarr = ["fsspec", "zarr"] + +[[package]] +name = "tomli" +version = "2.0.2" +description = "A lil' TOML parser" +optional = false +python-versions = ">=3.8" +files = [ + {file = "tomli-2.0.2-py3-none-any.whl", hash = "sha256:2ebe24485c53d303f690b0ec092806a085f07af5a5aa1464f3931eec36caaa38"}, + {file = "tomli-2.0.2.tar.gz", hash = "sha256:d46d457a85337051c36524bc5349dd91b1877838e2979ac5ced3e710ed8a60ed"}, +] + +[[package]] +name = "typing-extensions" +version = "4.12.2" +description = "Backported and Experimental Type Hints for Python 3.8+" +optional = false +python-versions = ">=3.8" +files = [ + {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, + {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, +] + +[[package]] +name = "virtualenv" +version = "20.27.1" +description = "Virtual Python Environment builder" +optional = false +python-versions = ">=3.8" +files = [ + {file = "virtualenv-20.27.1-py3-none-any.whl", hash = "sha256:f11f1b8a29525562925f745563bfd48b189450f61fb34c4f9cc79dd5aa32a1f4"}, + {file = "virtualenv-20.27.1.tar.gz", hash = "sha256:142c6be10212543b32c6c45d3d3893dff89112cc588b7d0879ae5a1ec03a47ba"}, +] + +[package.dependencies] +distlib = ">=0.3.7,<1" +filelock = ">=3.12.2,<4" +platformdirs = ">=3.9.1,<5" + +[package.extras] +docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2,!=7.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] +test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8)", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10)"] + +[[package]] +name = "zarr" +version = "2.18.3" +description = "An implementation of chunked, compressed, N-dimensional arrays for Python" +optional = false +python-versions = ">=3.10" +files = [ + {file = "zarr-2.18.3-py3-none-any.whl", hash = "sha256:b1f7dfd2496f436745cdd4c7bcf8d3b4bc1dceef5fdd0d589c87130d842496dd"}, + {file = "zarr-2.18.3.tar.gz", hash = "sha256:2580d8cb6dd84621771a10d31c4d777dca8a27706a1a89b29f42d2d37e2df5ce"}, +] + +[package.dependencies] +asciitree = "*" +fasteners = {version = "*", markers = "sys_platform != \"emscripten\""} +numcodecs = ">=0.10.0" +numpy = ">=1.24" + +[package.extras] +docs = ["numcodecs[msgpack]", "numpydoc", "pydata-sphinx-theme", "sphinx", "sphinx-automodapi", "sphinx-copybutton", "sphinx-design", "sphinx-issues"] +jupyter = ["ipytree (>=0.2.2)", "ipywidgets (>=8.0.0)", "notebook"] + +[metadata] +lock-version = "2.0" +python-versions = "^3.10" +content-hash = "9f7fa53f9f282a99c6b1ecea8342c1e63113a62c321359aec8fcdd20e3d69eb2" From 63b7137240b6577a3e3e8ba6c8353f2c5ba8119b Mon Sep 17 00:00:00 2001 From: "Kaidong (Calvin) Chai" Date: Tue, 16 Dec 2025 16:23:51 -0500 Subject: [PATCH 078/133] Implement multi-stage Docker build with Poetry Refactor Dockerfile to use multi-stage builds for better dependency management and security practices. --- Dockerfile | 75 +++++++++++++++++++++++++++++++++--------------------- 1 file changed, 46 insertions(+), 29 deletions(-) diff --git a/Dockerfile b/Dockerfile index 85e345cd..4dd248a9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,45 +1,62 @@ -# Use Python 3.11 as base image -FROM python:3.11-slim +# ---------------------------------------------------------------------------- +# STAGE 1: Builder +# Used to install Poetry, compile dependencies, and create the virtual environment. +# ---------------------------------------------------------------------------- +FROM python:3.11-slim as builder # Set working directory WORKDIR /app -# Install system dependencies +# Install build dependencies (GCC, etc.) +# We need these to compile packages, but we don't want them in the final image. RUN apt-get update && apt-get install -y \ build-essential \ - curl + && rm -rf /var/lib/apt/lists/* # Install Poetry -ENV POETRY_VERSION=1.8.4 -ENV POETRY_HOME=/opt/poetry -ENV POETRY_VENV=/opt/poetry-venv -ENV POETRY_CACHE_DIR=/opt/poetry-cache - -RUN python3 -m venv $POETRY_VENV \ - && $POETRY_VENV/bin/pip install -U pip setuptools \ - && $POETRY_VENV/bin/pip install poetry==${POETRY_VERSION} \ - && ln -s ${POETRY_VENV}/bin/poetry /usr/local/bin/poetry \ - && chmod 755 /usr/local/bin/poetry - -# Configure Poetry: Don't create virtual environment, install dependencies to system -ENV POETRY_NO_INTERACTION=1 \ - POETRY_VENV_IN_PROJECT=1 \ - POETRY_CACHE_DIR=/opt/poetry-cache +RUN pip install poetry==1.8.4 -# Copy Poetry configuration files -COPY pyproject.toml ./ +# Configure Poetry to create the venv inside the project folder +# This makes it easy to copy the whole folder to the next stage +ENV POETRY_NO_INTERACTION=1 \ + POETRY_VIRTUALENVS_IN_PROJECT=1 \ + POETRY_VIRTUALENVS_CREATE=1 \ + POETRY_CACHE_DIR=/tmp/poetry_cache -# Install dependencies -RUN poetry install --no-dev --no-root --extras all +# Copy dependency definition files first (for caching) +COPY pyproject.toml poetry.lock ./ +RUN poetry lock +# Install dependencies (only the libraries) +RUN poetry install --no-root --no-dev --extras all && rm -rf $POETRY_CACHE_DIR -# Copy application code +# Copy the rest of the application code COPY . . +RUN poetry lock +# Install the application itself +#RUN poetry install --no-dev --extras all +RUN poetry build -f wheel +RUN ./.venv/bin/pip install dist/*.whl +# ---------------------------------------------------------------------------- +# STAGE 2: Runtime +# A fresh, empty image that only contains the Python runtime and our copied venv. +# ---------------------------------------------------------------------------- +FROM python:3.11-slim as runtime -# Install the application -RUN poetry install --no-dev --extras all +WORKDIR /app -# Set the entrypoint -ENTRYPOINT ["poetry", "run", "linc-convert"] +# Create a non-root user for security (Best Practice) +RUN useradd -m -r appuser && chown appuser /app +USER appuser -# Default command (can be overridden) +# Copy the virtual environment from the builder stage +# We assume the path structure is identical (/app/.venv) +COPY --from=builder --chown=appuser:appuser /app/.venv /app/.venv + +# Update PATH environment variable +# This allows us to type 'linc-convert' instead of '/app/.venv/bin/linc-convert' +ENV PATH="/app/.venv/bin:$PATH" + +# Set the entrypoint +ENTRYPOINT ["linc-convert"] +# Default command CMD ["--help"] From 184ce0a7434b77355fa676ff4d5b97b713096656 Mon Sep 17 00:00:00 2001 From: "Kaidong (Calvin) Chai" Date: Tue, 16 Dec 2025 16:36:08 -0500 Subject: [PATCH 079/133] Add source label to Dockerfile --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 4dd248a9..d8323f19 100644 --- a/Dockerfile +++ b/Dockerfile @@ -55,7 +55,7 @@ COPY --from=builder --chown=appuser:appuser /app/.venv /app/.venv # Update PATH environment variable # This allows us to type 'linc-convert' instead of '/app/.venv/bin/linc-convert' ENV PATH="/app/.venv/bin:$PATH" - +LABEL org.opencontainers.image.source https://github.com/lincbrain/linc-convert # Set the entrypoint ENTRYPOINT ["linc-convert"] # Default command From c8dc167c3f1420a3be610258b1a89f2792fd7cba Mon Sep 17 00:00:00 2001 From: "Kaidong (Calvin) Chai" Date: Tue, 16 Dec 2025 16:41:41 -0500 Subject: [PATCH 080/133] Update Dockerfile syntax for build stages --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index d8323f19..0e0f51fc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ # STAGE 1: Builder # Used to install Poetry, compile dependencies, and create the virtual environment. # ---------------------------------------------------------------------------- -FROM python:3.11-slim as builder +FROM python:3.11-slim AS builder # Set working directory WORKDIR /app @@ -40,7 +40,7 @@ RUN ./.venv/bin/pip install dist/*.whl # STAGE 2: Runtime # A fresh, empty image that only contains the Python runtime and our copied venv. # ---------------------------------------------------------------------------- -FROM python:3.11-slim as runtime +FROM python:3.11-slim AS runtime WORKDIR /app From 8a978c6519ac4c9198ff1d4c57db0e6468f909d0 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Fri, 19 Dec 2025 11:22:13 -0500 Subject: [PATCH 081/133] refactor: enhance focus plane handling and normalize weight calculation in mosaic processing - Adjusted focus plane handling in _shift_focus to support 2D input. - Updated weight normalization in _combine_block to correctly handle 3D data dimensions. --- .../modalities/psoct/mosaic_complex.py | 23 +++++++++++-------- linc_convert/modalities/psoct/stitch.py | 6 ++++- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/linc_convert/modalities/psoct/mosaic_complex.py b/linc_convert/modalities/psoct/mosaic_complex.py index 6114b41b..88833537 100644 --- a/linc_convert/modalities/psoct/mosaic_complex.py +++ b/linc_convert/modalities/psoct/mosaic_complex.py @@ -64,9 +64,11 @@ def _shift_focus( tile: da.Array, focus_plane: np.ndarray, s_max: int ) -> da.Array: """Shift tile depth based on focus plane.""" - + if len(focus_plane.shape) == 2: + focus_plane = focus_plane[..., None] # This function will be applied per block using map_blocks def shift_block(block, block_info=None): + nonlocal focus_plane if block_info is None: return block # Get the spatial coordinates for this block @@ -77,11 +79,12 @@ def shift_block(block, block_info=None): block, pad_width, mode="constant", constant_values=np.nan ) # build indices for the expanded depth - z = np.arange(block.shape[-1] - s_max, dtype=np.int32)[None, None, :] + z = np.arange(block.shape[-1] + s_max, dtype=np.int32)[None, None, :] # Use a subset of focus_plane corresponding to this block # For now, use the full focus_plane (assuming it matches tile spatial # dimensions) - idx = z + focus_plane[..., None] + + idx = z + focus_plane result = np.take_along_axis(block_padded, idx, axis=2) return result @@ -143,7 +146,7 @@ def mosaic_complex( depth = metadata.get("depth") scan_resolution = metadata.get("scan_resolution", [1.0, 1.0, 1.0]) unit = metadata.get("unit", "millimeter") - flip_z = metadata.get("flip_z", True) + flip_z = metadata.get("flip_z", False) clip_x = metadata.get("clip_x", 0) clip_y = metadata.get("clip_y", 0) raw_tile_width = metadata.get("raw_tile_width") @@ -230,18 +233,18 @@ def mosaic_complex( # Process complex data to get dBI, R3D, O3D dBI3D, R3D, O3D = process_complex3d(complex3d, offset=100, flip_phi=False) - # Handle focus plane shifting - if focus_plane_data is not None: - s_max = int(np.max(focus_plane_data)) - dBI3D = _shift_focus(dBI3D, focus_plane_data, s_max) - R3D = _shift_focus(R3D, focus_plane_data, s_max) - O3D = _shift_focus(O3D, focus_plane_data, s_max) # Apply transformations if flip_z: dBI3D = da.flip(dBI3D, axis=2) R3D = da.flip(R3D, axis=2) O3D = da.flip(O3D, axis=2) + # Handle focus plane shifting + if focus_plane_data is not None: + s_max = int(np.max(focus_plane_data)) + dBI3D = _shift_focus(dBI3D, focus_plane_data, s_max) + R3D = _shift_focus(R3D, focus_plane_data, s_max) + O3D = _shift_focus(O3D, focus_plane_data, s_max) # Clip tiles results = da.stack([dBI3D, R3D, O3D], axis=3) diff --git a/linc_convert/modalities/psoct/stitch.py b/linc_convert/modalities/psoct/stitch.py index e3d71d11..8b6bbdca 100644 --- a/linc_convert/modalities/psoct/stitch.py +++ b/linc_convert/modalities/psoct/stitch.py @@ -273,7 +273,11 @@ def _combine_block( total_paint = da.sum(da.stack(paints, axis=0), axis=0) total_weight = da.sum(da.stack(weights, axis=0), axis=0) - normalized = total_paint / np.broadcast_to(total_weight, total_paint.shape) + # For 3D data, total_weight should be broadcasted + if len(total_paint.shape) > 2: + expand_dim = len(total_paint.shape) - len(total_weight.shape) + total_weight = total_weight.reshape(total_weight.shape + (1,)*expand_dim) + normalized = total_paint / total_weight if not circular_mean: return normalized From b57146dd228d863e24b3fbca676e76d71c6ea1a4 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Mon, 22 Dec 2025 16:38:53 -0500 Subject: [PATCH 082/133] feat: add focus plane support in mosaic2d function - Introduced parameters for focus plane handling, including normalization and cropping options. - Enhanced image processing to apply focus plane adjustments during mosaic creation. --- linc_convert/modalities/psoct/mosaic.py | 43 +++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/linc_convert/modalities/psoct/mosaic.py b/linc_convert/modalities/psoct/mosaic.py index d82693f0..57aee7a8 100644 --- a/linc_convert/modalities/psoct/mosaic.py +++ b/linc_convert/modalities/psoct/mosaic.py @@ -222,6 +222,11 @@ def mosaic2d( clip_x: int = 0, clip_y: int = 0, mask: Annotated[Optional[str], Parameter(name=["--mask", "-m"])] = None, + focus_plane: Annotated[ + Optional[str], Parameter(name=["--focus-plane", "-f"])] = None, + normalize_focus_plane: bool = False, + crop_focus_plane_depth: int = 500, + crop_focus_plane_offset: int = 30, zarr_config: ZarrConfig = None, general_config: GeneralConfig = None, nifti_config: NiftiConfig = None, @@ -250,6 +255,14 @@ def mosaic2d( mask : str, optional Path to binary mask file to apply to the result. Mask should be 2D and match the result dimensions. + focus_plane : str, optional + Path to focus plane NIfTI file for depth shifting. + normalize_focus_plane : bool + Whether to normalize the focus plane by the minimum value. + crop_focus_plane_depth : int + Number of pixels to crop below the focus plane. + crop_focus_plane_offset : int + Offset of the focus plane to crop below the minimum value. zarr_config : ZarrConfig, optional Zarr configuration. general_config : GeneralConfig, optional @@ -341,13 +354,39 @@ def mosaic2d( if not tile_infos: raise ValueError("No valid tiles were processed") + if focus_plane: + focus_plane = nib.load(focus_plane).get_fdata().astype(np.uint16) + focus_plane = focus_plane.squeeze() + if normalize_focus_plane: + focus_plane = focus_plane - focus_plane.min() + focus_plane = focus_plane + crop_focus_plane_offset + + def apply_focus_plane(image): + nonlocal focus_plane + z = np.arange(crop_focus_plane_depth, dtype=np.int32)[None, None, :] + idx = z + focus_plane[..., None] + idx = idx[..., None] + result = np.take_along_axis(image, idx, axis=2) + return result + + all_images = da.stack([tile.image for tile in tile_infos], axis=-1) + print(crop_focus_plane_depth) + result_shape = ( + all_images.shape[0], all_images.shape[1], crop_focus_plane_depth, + all_images.shape[3]) + all_images = all_images.map_blocks(apply_focus_plane, dtype=all_images.dtype, + chunks=( + all_images.chunks[0], all_images.chunks[1], + crop_focus_plane_depth, 1)) + for i, tile in enumerate(tile_infos): + tile.image = all_images[..., i] + # Create MosaicInfo for 2D mosaic - dimensions and coordinates extracted from tiles # Stitch tiles using MosaicInfo logger.info("Stitching tiles") - # Create MosaicInfo for 2D mosaic - dimensions and coordinates extracted from tiles mosaic = MosaicInfo.from_tiles( tiles=tile_infos, - depth=None, # 2D mosaic + depth=crop_focus_plane_depth if focus_plane is not None else None, # 2D mosaic chunk_size=None, # Will use tile dimensions circular_mean=circular_mean, tile_overlap=tile_overlap, From b5c284fb4a18c5f7cb30e341272b8ca9c9ce5c83 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Mon, 22 Dec 2025 16:48:36 -0500 Subject: [PATCH 083/133] feat: add voxel size parameter to mosaic2d function - Introduced a new optional parameter `voxel_size_xyz` to specify voxel dimensions in x, y, and z directions. - Updated metadata handling to default to voxel size if not provided. - Refactored result variable naming for clarity and consistency throughout the function. - Adjusted NIfTI and Zarr output handling to utilize the new voxel size parameter. --- linc_convert/modalities/psoct/mosaic.py | 80 +++++++++++-------------- 1 file changed, 35 insertions(+), 45 deletions(-) diff --git a/linc_convert/modalities/psoct/mosaic.py b/linc_convert/modalities/psoct/mosaic.py index 57aee7a8..7a534e56 100644 --- a/linc_convert/modalities/psoct/mosaic.py +++ b/linc_convert/modalities/psoct/mosaic.py @@ -227,6 +227,8 @@ def mosaic2d( normalize_focus_plane: bool = False, crop_focus_plane_depth: int = 500, crop_focus_plane_offset: int = 30, + voxel_size_xyz: Annotated[ + Optional[list[float]], Parameter(name=["--voxel-size", "-s"])] = None, zarr_config: ZarrConfig = None, general_config: GeneralConfig = None, nifti_config: NiftiConfig = None, @@ -263,6 +265,8 @@ def mosaic2d( Number of pixels to crop below the focus plane. crop_focus_plane_offset : int Offset of the focus plane to crop below the minimum value. + voxel_size_xyz : list[float], optional + Voxel size in x, y, z directions, in millimeters. zarr_config : ZarrConfig, optional Zarr configuration. general_config : GeneralConfig, optional @@ -282,7 +286,8 @@ def mosaic2d( # Get metadata metadata = tile_info.get("metadata", {}) - scan_resolution = metadata.get("scan_resolution", [1.0, 1.0]) + if voxel_size_xyz is None: + voxel_size_xyz = metadata.get("scan_resolution", [10, 10, 2.5]) file_key = metadata.get("file_key") # Key for mat file array base_dir = metadata.get("base_dir", ".") # Get clip values from metadata if not provided as parameters @@ -323,7 +328,6 @@ def mosaic2d( except Exception as e: logger.warning(f"Failed to load {file_path}: {e}, skipping") continue - # Apply clipping if specified if clip_x > 0 or clip_y > 0: # Clip from left (clip_x) and top (clip_y) @@ -372,12 +376,13 @@ def apply_focus_plane(image): all_images = da.stack([tile.image for tile in tile_infos], axis=-1) print(crop_focus_plane_depth) result_shape = ( - all_images.shape[0], all_images.shape[1], crop_focus_plane_depth, - all_images.shape[3]) + all_images.shape[0], all_images.shape[1], crop_focus_plane_depth, + all_images.shape[3]) all_images = all_images.map_blocks(apply_focus_plane, dtype=all_images.dtype, chunks=( - all_images.chunks[0], all_images.chunks[1], - crop_focus_plane_depth, 1)) + all_images.chunks[0], + all_images.chunks[1], + crop_focus_plane_depth, 1)) for i, tile in enumerate(tile_infos): tile.image = all_images[..., i] # Create MosaicInfo for 2D mosaic - dimensions and coordinates extracted from tiles @@ -393,7 +398,7 @@ def apply_focus_plane(image): ) # Stitch using lazy dask operations - result_2d = mosaic.stitch() + result = mosaic.stitch() # Apply mask if provided if mask: @@ -401,32 +406,16 @@ def apply_focus_plane(image): try: mask_array = _load_mask(mask) # Check if mask dimensions match result - if mask_array.shape != result_2d.shape: - logger.warning( + if mask_array.shape != result.shape: + logger.error( f"Mask shape {mask_array.shape} does not match result shape " - f"{result_2d.shape}. " + f"{result.shape}. " "Attempting to resize mask." ) - # Resize mask to match result if possible - try: - from scipy.ndimage import zoom - - zoom_factors = (result_2d.shape[0] / mask_array.shape[0], - result_2d.shape[1] / mask_array.shape[1]) - mask_array = zoom(mask_array, zoom_factors, - order=0) # order=0 for nearest neighbor - # Ensure binary after resize - mask_array = (mask_array > 0.5).astype(np.float32) - except ImportError: - raise ValueError( - "scipy is required for mask resizing. " - "Please ensure mask dimensions match result dimensions or " - "install scipy." - ) # Apply mask (multiply: 0 where mask is 0, keep original value where mask # is 1) - result_2d = result_2d * mask_array + result = result * mask_array logger.info("Mask applied successfully") except Exception as e: logger.error(f"Failed to load or apply mask: {e}") @@ -434,10 +423,9 @@ def apply_focus_plane(image): if nifti_output or jpeg_output or tiff_output: with ProgressBar(): - result_2d = np.array(result_2d) + result = np.array(result) - scan_resolution_2d = scan_resolution[:2] if len(scan_resolution) >= 2 else [1.0, - 1.0] + voxel_size_2d = voxel_size_xyz[:2] if len(voxel_size_xyz) >= 2 else [0.1, 0.1] # Save NIfTI file if requested if nifti_output: logger.info(f"Saving NIfTI file: {nifti_output}") @@ -446,28 +434,29 @@ def apply_focus_plane(image): # Create NIfTI image (2D array needs to be expanded to 3D for NIfTI) # Add a singleton z dimension # result_3d = result_2d[:, :] - nii_img = nib.Nifti1Image(result_2d, affine) + nii_img = nib.Nifti1Image(result, affine) nii_img.header.set_xyzt_units(xyz="mm", t="sec") + nii_img.header.set_zooms(voxel_size_2d) nib.save(nii_img, nifti_output) logger.info("NIfTI file saved successfully") - result_2d = result_2d.T + result = result.T # Save JPEG if requested if jpeg_output: logger.info(f"Saving JPEG preview: {jpeg_output}") - _save_jpeg(result_2d, jpeg_output) + _save_jpeg(result, jpeg_output) # Save TIFF if requested if tiff_output: logger.info(f"Saving TIFF: {tiff_output}") - _save_tiff(result_2d, tiff_output) + _save_tiff(result, tiff_output) # Save to Zarr if output is specified if general_config.out: logger.info(f"Saving to Zarr: {general_config.out}") # Compute zarr layout for 2D - chunk, shard = compute_zarr_layout(result_2d.shape, np.float32, + chunk, shard = compute_zarr_layout(result.shape, np.float32, zarr_config) # Prepare Zarr group (similar to single_volume.py) @@ -475,40 +464,41 @@ def apply_focus_plane(image): # Create array and write data directly (like single_volume.py) dataset = zgroup.create_array( - "0", shape=result_2d.shape, dtype=np.float32, chunk=chunk, + "0", shape=result.shape, dtype=np.float32, chunk=chunk, shard=shard, zarr_config=zarr_config ) - # Write data directly using indexing (similar to single_volume.py) - if isinstance(result_2d, da.Array): + if isinstance(result, da.Array): if shard: - result_2d = da.rechunk(result_2d, chunks=shard) + result = da.rechunk(result, chunks=shard) else: - result_2d = da.rechunk(result_2d, chunks=chunk) + result = da.rechunk(result, chunks=chunk) with ProgressBar(): - da.store(result_2d, dataset, compute=True) + da.store(result, dataset, compute=True) else: - dataset[...] = result_2d + dataset[...] = result # Generate pyramid and metadata logger.info("Generating pyramid and metadata") zgroup.generate_pyramid() - zgroup.write_ome_metadata(["z", "y", "x"], space_scale=scan_resolution_2d, + logger.info("Finished generating pyramid") + logger.info("Writing OME-Zarr metadata") + zgroup.write_ome_metadata(["z", "y", "x"], space_scale=voxel_size_xyz[::-1], space_unit="millimeter") if nifti_config and nifti_config.nii: header = build_nifti_header( zgroup=zgroup, - voxel_size_zyx=(1.0, scan_resolution_2d[0], scan_resolution_2d[1]), + voxel_size_zyx=voxel_size_xyz[::-1], unit="millimeter", nii_config=nifti_config, ) zgroup.write_nifti_header(header) - logger.info("Finished generating pyramid") + else: logger.info("Skipping Zarr output (no output path specified)") From 1c4ea535be828231ddde6662d9fd3b7effc0b9bf Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Tue, 23 Dec 2025 12:39:19 -0500 Subject: [PATCH 084/133] feat: enhance mask handling in mosaic processing - Updated _load_mask function to include an optional parameter for lazy loading, allowing for optimized memory usage. - Introduced _apply_mask function to efficiently apply masks using Dask operations, improving performance during mosaic creation. - Modified the stitch method to accept an optional mask parameter, enabling mask application during the stitching process. - Enhanced logging to provide clearer feedback on mask application success and errors. --- linc_convert/modalities/psoct/mosaic.py | 112 +++++++++++++++++++++--- linc_convert/modalities/psoct/stitch.py | 9 +- 2 files changed, 106 insertions(+), 15 deletions(-) diff --git a/linc_convert/modalities/psoct/mosaic.py b/linc_convert/modalities/psoct/mosaic.py index 7a534e56..191689be 100644 --- a/linc_convert/modalities/psoct/mosaic.py +++ b/linc_convert/modalities/psoct/mosaic.py @@ -4,7 +4,7 @@ import logging import os.path as op -from typing import Annotated, Optional +from typing import Annotated, Optional, Union import cyclopts import dask.array as da @@ -185,11 +185,23 @@ def _save_tiff(image: np.ndarray, output_path: str): pil_image.save(output_path, "TIFF") -def _load_mask(mask_path: str) -> np.ndarray: +def _load_mask(mask_path: str, keep_lazy: bool = False) -> Union[da.Array, np.ndarray]: """ Load a binary mask from a file. Supports the same formats as _load_image_tile but expects a 2D binary mask. + + Parameters + ---------- + mask_path : str + Path to mask file. + keep_lazy : bool + If True, keep mask as lazy dask array. If False, compute and return numpy array. + + Returns + ------- + Union[da.Array, np.ndarray] + Binary mask (0 or 1) as dask array or numpy array. """ # Use the same loading function as tiles mask = _load_image_tile(mask_path, key=None) @@ -203,12 +215,85 @@ def _load_mask(mask_path: str) -> np.ndarray: # Convert to binary (0 or 1) # Handle both boolean and numeric masks - mask = mask.compute() if isinstance(mask, da.Array) else mask - mask = (mask > 0).astype(np.float32) + if keep_lazy: + # Keep as lazy dask array for optimization + mask = (mask > 0).astype(np.float32) + else: + # Compute for immediate use + mask = mask.compute() if isinstance(mask, da.Array) else mask + mask = (mask > 0).astype(np.float32) return mask +def _apply_mask(result: da.Array, mask: da.Array) -> da.Array: + """ + Apply mask to result using optimized Dask operations. + + This function structures the computation so that Dask can optimize by + checking mask values first. The key optimization is: + 1. Align mask and result chunks so blocks correspond + 2. Use map_blocks with a function that can see both mask and result + 3. Structure the computation graph so mask information is available + + While Dask's lazy evaluation means result blocks are still in the graph, + the aligned chunks and structured computation allow the scheduler to + optimize execution. In practice, the scheduler can prioritize computing + mask blocks first and use that information to optimize result computation. + + Parameters + ---------- + result : da.Array + The result array to mask. + mask : da.Array + Binary mask (0 or 1) with matching shape. + + Returns + ------- + da.Array + Masked result array. + """ + # Handle different dimensionalities - broadcast mask if needed + if result.ndim > mask.ndim: + # Result has extra dimensions (e.g., 3D result with 2D mask) + # Broadcast mask to match result shape + for _ in range(result.ndim - mask.ndim): + mask = mask[..., np.newaxis] + + # Ensure mask chunks align with result chunks for efficient computation + # This is critical: aligned chunks allow Dask to see block-level relationships + # and the scheduler can use mask block information to optimize result computation + if mask.chunks != result.chunks: + mask = mask.rechunk(result.chunks) + + # Use map_blocks with aligned chunks + # The function receives both result and mask blocks, allowing it to + # apply the mask efficiently. With aligned chunks, Dask's scheduler + # can see the relationship and optimize block-level computation. + def _mask_block(result_block, mask_block, *args, block_info=None, **kwargs): + """ + Apply mask to a block. + + With aligned chunks, this function receives corresponding blocks + of result and mask. The multiplication naturally zeros out where + mask is 0, and Dask can optimize the computation graph accordingly. + """ + if mask_block.sum() == 0: + return np.zeros_like(result_block) + return result_block * mask_block + + # Apply mask using map_blocks with aligned chunks + # This structure allows Dask to optimize block-level computation + # The scheduler can use mask information to optimize result computation + return da.map_blocks( + _mask_block, + result, + mask, + dtype=result.dtype, + chunks=result.chunks, + ) + + @mosaic.default @autoconfig def mosaic2d( @@ -404,19 +489,22 @@ def apply_focus_plane(image): if mask: logger.info(f"Loading and applying mask: {mask}") try: - mask_array = _load_mask(mask) - # Check if mask dimensions match result - if mask_array.shape != result.shape: + # Load mask as lazy dask array for optimization + mask_array = _load_mask(mask, keep_lazy=True) + + # Check if mask dimensions match result (accounting for broadcasting) + mask_2d_shape = mask_array.shape[:2] if mask_array.ndim >= 2 else mask_array.shape + result_2d_shape = result.shape[:2] if result.ndim >= 2 else result.shape + if mask_2d_shape != result_2d_shape: logger.error( f"Mask shape {mask_array.shape} does not match result shape " f"{result.shape}. " - "Attempting to resize mask." ) - # Apply mask (multiply: 0 where mask is 0, keep original value where mask - # is 1) - result = result * mask_array - logger.info("Mask applied successfully") + # Apply mask using optimized function that allows Dask to skip computation + # where mask is 0 + result = _apply_mask(result, mask_array) + logger.info("Mask applied successfully (optimized for Dask)") except Exception as e: logger.error(f"Failed to load or apply mask: {e}") raise diff --git a/linc_convert/modalities/psoct/stitch.py b/linc_convert/modalities/psoct/stitch.py index 8b6bbdca..b2f00b80 100644 --- a/linc_convert/modalities/psoct/stitch.py +++ b/linc_convert/modalities/psoct/stitch.py @@ -146,7 +146,7 @@ def _compute_blending_ramp( ramp = np.outer(wx, wy) return ramp - def stitch(self) -> da.Array: + def stitch(self, mask: Optional[da.Array] = None) -> da.Array: """ Stitch tiles into a mosaic using lazy dask operations. @@ -249,6 +249,7 @@ def stitch(self) -> da.Array: canvas, block_tiles, block_weights, + mask, self.circular_mean, dtype=canvas.dtype, chunks=(pw, ph, *no_chunk_dim) @@ -260,7 +261,7 @@ def stitch(self) -> da.Array: def _combine_block( - _, block_tiles, block_weights, circular_mean, *args, block_info=None, **kwargs + _, block_tiles, block_weights, mask, circular_mean, *args, block_info=None, **kwargs ): """Combine overlapping tile blocks with weighted averaging.""" chunk_id = tuple(block_info[None]['chunk-location'][:2]) @@ -270,7 +271,9 @@ def _combine_block( if not paints: return np.broadcast_to(np.zeros((), dtype=np.float32), shape) - + if mask is not None: + # check if mask is zero for this chunk + total_paint = da.sum(da.stack(paints, axis=0), axis=0) total_weight = da.sum(da.stack(weights, axis=0), axis=0) # For 3D data, total_weight should be broadcasted From b602b872fe45248447cb992e6f62f1ce93b00b5e Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Tue, 23 Dec 2025 16:09:03 -0500 Subject: [PATCH 085/133] refactor: streamline image loading and mask handling in mosaic processing - Simplified the _load_image_tile function by removing commented-out code and unnecessary checks for Zarr archives. - Enhanced the _load_mask function to directly return a boolean mask, improving clarity and efficiency. - Updated the stitch method to remove the mask parameter, reflecting changes in mask handling during stitching. - Adjusted the _combine_block function to remove mask-related logic, optimizing the block combination process. --- linc_convert/modalities/psoct/mosaic.py | 115 +++++------------------- linc_convert/modalities/psoct/stitch.py | 8 +- 2 files changed, 26 insertions(+), 97 deletions(-) diff --git a/linc_convert/modalities/psoct/mosaic.py b/linc_convert/modalities/psoct/mosaic.py index 191689be..c848c604 100644 --- a/linc_convert/modalities/psoct/mosaic.py +++ b/linc_convert/modalities/psoct/mosaic.py @@ -29,6 +29,7 @@ ZarrConfig, autoconfig, ) +from linc_convert.utils.io.zarr import open_array, open_group logger = logging.getLogger(__name__) @@ -59,68 +60,31 @@ def _load_image_tile(file_path: str, key: str = None) -> da.Array: if not hasattr(wrapper, "dtype"): raise ValueError(f"Could not load array from {file_path}") data = wrapper - # # Handle 3D data - take middle slice - # if data.ndim == 3: - # data = data[:, :, data.shape[2] // 2] - # elif data.ndim > 3: - # data = data.reshape(data.shape[0], data.shape[1], -1)[:, :, 0] return da.from_array(data, chunks="auto") - # Check for zarr archives - # Check if path looks like zarr (directory with zarr metadata files) - is_zarr = False - if op.isdir(file_path): - # Check for zarr v3 (zarr.json) or v2 (.zgroup or .zarray) - if op.exists(op.join(file_path, 'zarr.json')) or \ - op.exists(op.join(file_path, '.zgroup')) or \ - op.exists(op.join(file_path, '.zarray')): - is_zarr = True - elif file_path.endswith('.zarr') or '.zarr' in file_path: - is_zarr = True - - if is_zarr: + if file_path.endswith('.zarr'): + # Try to open as zarr group first try: - from linc_convert.utils.io.zarr import open_array, open_group - - # Try to open as zarr group first - try: - zarr_group = open_group(file_path, mode="r") - # It's a group, try to get array '0' - if '0' in zarr_group.keys(): - zarr_array_wrapper = zarr_group['0'] - data = da.from_array(zarr_array_wrapper, - chunks=zarr_array_wrapper.chunks) - else: - raise ValueError( - f"Zarr group at {file_path} does not contain array '0'") - except (ValueError, KeyError): - # Try as array - zarr_array_wrapper = open_array(file_path, mode="r") + zarr_group = open_group(file_path, mode="r") + # It's a group, try to get array '0' + if '0' in zarr_group.keys(): + zarr_array_wrapper = zarr_group['0'] data = da.from_array(zarr_array_wrapper, - chunks=zarr_array_wrapper.chunks) - - # Handle 3D data - take middle slice - # if data.ndim == 3: - # data = data[:, :, data.shape[2] // 2] - # elif data.ndim > 3: - # data = data.reshape(data.shape[0], data.shape[1], -1)[:, :, 0] - return data - except Exception as e: - logger.warning(f"Failed to load as zarr: {e}, trying other formats") + chunks=zarr_array_wrapper.chunks) + else: + raise ValueError( + f"Zarr group at {file_path} does not contain array '0'") + except (ValueError, KeyError): + # Try as array + zarr_array_wrapper = open_array(file_path, mode="r") + data = da.from_array(zarr_array_wrapper, + chunks=zarr_array_wrapper.chunks) + return data # Check for NIfTI files if file_path.endswith(('.nii', '.nii.gz')): img = nib.load(file_path) - # Use dataobj for lazy loading with mmap instead of get_fdata() - dataobj = img.dataobj - # Convert to dask array with lazy loading - data = da.from_array(dataobj, chunks=img.shape) - # Handle 3D data - take middle slice - # if data.ndim == 3: - # data = data[:, :, data.shape[2] // 2] - # elif data.ndim > 3: - # # Take first 2D slice - # data = data.reshape(data.shape[0], data.shape[1], -1)[:, :, 0] + data = da.from_array(img.dataobj, chunks=img.shape) return data # Try dask-image as fallback @@ -128,11 +92,6 @@ def _load_image_tile(file_path: str, key: str = None) -> da.Array: import dask_image.imread # noqa: F401 data = dask_image.imread.imread(file_path) - # Handle 3D data - take middle slice - # if data.ndim == 3: - # data = data[:, :, data.shape[2] // 2] - # elif data.ndim > 3: - # data = data.reshape(data.shape[0], data.shape[1], -1)[:, :, 0] return data except ImportError: raise ValueError( @@ -168,24 +127,10 @@ def _save_tiff(image: np.ndarray, output_path: str): # Preserve original dtype and values tifffile.imwrite(output_path, image) except ImportError: - # Fallback to PIL if tifffile not available - # PIL requires uint8 or uint16, so we need to convert - # But we don't normalize - just convert dtype preserving values as much as - # possible - if image.dtype in (np.float32, np.float64): - # For float, convert to uint16 without normalization - # This will clip values outside [0, 65535] range - image_uint16 = np.clip(image, 0, 65535).astype(np.uint16) - elif image.dtype == np.uint8: - image_uint16 = image - else: - # For other types, convert to uint16 - image_uint16 = np.clip(image, 0, 65535).astype(np.uint16) - pil_image = Image.fromarray(image_uint16) - pil_image.save(output_path, "TIFF") + raise ValueError("tifffile is not installed") -def _load_mask(mask_path: str, keep_lazy: bool = False) -> Union[da.Array, np.ndarray]: +def _load_mask(mask_path: str) -> Union[da.Array, np.ndarray]: """ Load a binary mask from a file. @@ -213,17 +158,7 @@ def _load_mask(mask_path: str, keep_lazy: bool = False) -> Union[da.Array, np.nd else: raise ValueError(f"Mask must be 2D, got shape {mask.shape}") - # Convert to binary (0 or 1) - # Handle both boolean and numeric masks - if keep_lazy: - # Keep as lazy dask array for optimization - mask = (mask > 0).astype(np.float32) - else: - # Compute for immediate use - mask = mask.compute() if isinstance(mask, da.Array) else mask - mask = (mask > 0).astype(np.float32) - - return mask + return (mask > 0).astype(bool) def _apply_mask(result: da.Array, mask: da.Array) -> da.Array: @@ -264,7 +199,7 @@ def _apply_mask(result: da.Array, mask: da.Array) -> da.Array: # This is critical: aligned chunks allow Dask to see block-level relationships # and the scheduler can use mask block information to optimize result computation if mask.chunks != result.chunks: - mask = mask.rechunk(result.chunks) + mask = mask.rechunk(result.chunks[:2] + mask.chunks[2:]) # Use map_blocks with aligned chunks # The function receives both result and mask blocks, allowing it to @@ -490,7 +425,7 @@ def apply_focus_plane(image): logger.info(f"Loading and applying mask: {mask}") try: # Load mask as lazy dask array for optimization - mask_array = _load_mask(mask, keep_lazy=True) + mask_array = _load_mask(mask) # Check if mask dimensions match result (accounting for broadcasting) mask_2d_shape = mask_array.shape[:2] if mask_array.ndim >= 2 else mask_array.shape @@ -500,11 +435,9 @@ def apply_focus_plane(image): f"Mask shape {mask_array.shape} does not match result shape " f"{result.shape}. " ) - - # Apply mask using optimized function that allows Dask to skip computation - # where mask is 0 result = _apply_mask(result, mask_array) logger.info("Mask applied successfully (optimized for Dask)") + except Exception as e: logger.error(f"Failed to load or apply mask: {e}") raise diff --git a/linc_convert/modalities/psoct/stitch.py b/linc_convert/modalities/psoct/stitch.py index b2f00b80..5cf9cbfd 100644 --- a/linc_convert/modalities/psoct/stitch.py +++ b/linc_convert/modalities/psoct/stitch.py @@ -146,7 +146,7 @@ def _compute_blending_ramp( ramp = np.outer(wx, wy) return ramp - def stitch(self, mask: Optional[da.Array] = None) -> da.Array: + def stitch(self) -> da.Array: """ Stitch tiles into a mosaic using lazy dask operations. @@ -249,7 +249,6 @@ def stitch(self, mask: Optional[da.Array] = None) -> da.Array: canvas, block_tiles, block_weights, - mask, self.circular_mean, dtype=canvas.dtype, chunks=(pw, ph, *no_chunk_dim) @@ -261,7 +260,7 @@ def stitch(self, mask: Optional[da.Array] = None) -> da.Array: def _combine_block( - _, block_tiles, block_weights, mask, circular_mean, *args, block_info=None, **kwargs + _, block_tiles, block_weights, circular_mean, *args, block_info=None, **kwargs ): """Combine overlapping tile blocks with weighted averaging.""" chunk_id = tuple(block_info[None]['chunk-location'][:2]) @@ -271,9 +270,6 @@ def _combine_block( if not paints: return np.broadcast_to(np.zeros((), dtype=np.float32), shape) - if mask is not None: - # check if mask is zero for this chunk - total_paint = da.sum(da.stack(paints, axis=0), axis=0) total_weight = da.sum(da.stack(weights, axis=0), axis=0) # For 3D data, total_weight should be broadcasted From bdcf6da841ba8759c1f60f5c53419f8e7b9372d2 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Wed, 24 Dec 2025 13:28:29 -0500 Subject: [PATCH 086/133] fix: add ndim property to H5ArrayWrapper and MatArrayWrapper classes --- linc_convert/utils/io/matlab_array_wrapper.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/linc_convert/utils/io/matlab_array_wrapper.py b/linc_convert/utils/io/matlab_array_wrapper.py index 91728414..9e323ffa 100644 --- a/linc_convert/utils/io/matlab_array_wrapper.py +++ b/linc_convert/utils/io/matlab_array_wrapper.py @@ -71,6 +71,10 @@ def __getitem__(self, index: object) -> np.ndarray: """Get item by index.""" return self.array[index] + @property + def ndim(self) -> int: + """Get dimension of the array.""" + return self.array.ndim class MatArraywrapper(ArrayWrapper): """Wrapper for arrays stored in old-style MATLAB .mat files.""" @@ -117,3 +121,8 @@ def __getitem__(self, index: object) -> np.ndarray: if self.array is None: self.load() return self.array[index] + + @property + def ndim(self) -> int: + """Get dimension of the array.""" + return self.array.ndim \ No newline at end of file From 6bce3f5b6f70d08fcd6c34a8bc964cd652e383d8 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Fri, 26 Dec 2025 16:57:36 -0500 Subject: [PATCH 087/133] fix: add clipping functionality to focus plane in mosaic2d function - Implemented clipping options for the focus plane, allowing for selective cropping based on specified x and y offsets. - Enhanced focus plane processing to improve image handling during mosaic creation. --- linc_convert/modalities/psoct/mosaic.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/linc_convert/modalities/psoct/mosaic.py b/linc_convert/modalities/psoct/mosaic.py index c848c604..bd8c5112 100644 --- a/linc_convert/modalities/psoct/mosaic.py +++ b/linc_convert/modalities/psoct/mosaic.py @@ -384,7 +384,10 @@ def mosaic2d( if normalize_focus_plane: focus_plane = focus_plane - focus_plane.min() focus_plane = focus_plane + crop_focus_plane_offset - + if clip_x > 0: + focus_plane = focus_plane[clip_x:, :] + if clip_y > 0: + focus_plane = focus_plane[:, clip_y:] def apply_focus_plane(image): nonlocal focus_plane z = np.arange(crop_focus_plane_depth, dtype=np.int32)[None, None, :] From 8e523d674e70e3752ee44f446b6ff679374d2623 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Fri, 26 Dec 2025 17:38:44 -0500 Subject: [PATCH 088/133] update --- linc_convert/modalities/psoct/mosaic.py | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/linc_convert/modalities/psoct/mosaic.py b/linc_convert/modalities/psoct/mosaic.py index bd8c5112..26c0df4f 100644 --- a/linc_convert/modalities/psoct/mosaic.py +++ b/linc_convert/modalities/psoct/mosaic.py @@ -384,20 +384,17 @@ def mosaic2d( if normalize_focus_plane: focus_plane = focus_plane - focus_plane.min() focus_plane = focus_plane + crop_focus_plane_offset - if clip_x > 0: - focus_plane = focus_plane[clip_x:, :] - if clip_y > 0: - focus_plane = focus_plane[:, clip_y:] + if clip_x or clip_y: + focus_plane= focus_plane[clip_x:,clip_y:] + z = np.arange(crop_focus_plane_depth, dtype=np.int32)[None, None, :] + idx = z + focus_plane[..., None] + idx = idx[..., None] def apply_focus_plane(image): - nonlocal focus_plane - z = np.arange(crop_focus_plane_depth, dtype=np.int32)[None, None, :] - idx = z + focus_plane[..., None] - idx = idx[..., None] + nonlocal idx result = np.take_along_axis(image, idx, axis=2) return result all_images = da.stack([tile.image for tile in tile_infos], axis=-1) - print(crop_focus_plane_depth) result_shape = ( all_images.shape[0], all_images.shape[1], crop_focus_plane_depth, all_images.shape[3]) From cb11c089350dfc143ed222bf00d663152cf1852f Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Thu, 22 Jan 2026 13:51:08 -0500 Subject: [PATCH 089/133] feat: improve tile stitching process and normalize coordinates - Added a `normalize_tile_coordinates` method to adjust tile positions based on minimum x and y values, enhancing the stitching process. - Updated the stitching logic to correctly handle tile sizes, ensuring accurate placement and blending of tiles. - Integrated tqdm for progress tracking during tile processing, improving user experience during long operations. --- linc_convert/modalities/psoct/stitch.py | 26 +++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/linc_convert/modalities/psoct/stitch.py b/linc_convert/modalities/psoct/stitch.py index 5cf9cbfd..d432daee 100644 --- a/linc_convert/modalities/psoct/stitch.py +++ b/linc_convert/modalities/psoct/stitch.py @@ -7,6 +7,7 @@ import dask.array as da import numpy as np from numpy.typing import ArrayLike +from tqdm import tqdm @dataclass @@ -158,8 +159,8 @@ def stitch(self) -> da.Array: """ if not self.tiles: raise ValueError("No tiles to stitch") - - pw, ph = self.chunk_size + self.normalize_tile_coordinates() + pw, ph = self.chunk_size [:2] no_chunk_dim = self.full_shape[2:] # Empty for 2D, (depth,) for 3D # Create canvas with appropriate shape @@ -178,15 +179,16 @@ def stitch(self) -> da.Array: block_tiles = defaultdict(list) block_weights = defaultdict(list) - for tile_info in self.tiles: + for tile_info in tqdm(self.tiles): x0, y0, t = tile_info.x, tile_info.y, tile_info.image + tile_size_x, tile_size_y = t.shape[:2] blend_ramp = self.blend_ramp # Determine which chunks this tile falls into x0c = x0 // pw y0c = y0 // ph - x1c = (x0 + pw - 1) // pw - y1c = (y0 + ph - 1) // ph + x1c = (x0 + tile_size_x - 1) // pw + y1c = (y0 + tile_size_y - 1) // ph # Pad region covering those chunks x_start = x0c * pw @@ -215,8 +217,8 @@ def stitch(self) -> da.Array: ) # Place tile into that big block - xs = slice(x0 - x_start, x0 - x_start + pw) - ys = slice(y0 - y_start, y0 - y_start + ph) + xs = slice(x0 - x_start, x0 - x_start + tile_size_x) + ys = slice(y0 - y_start, y0 - y_start + tile_size_y) # Apply blending ramp - handle both 2D and 3D if not self.circular_mean: # For 2D: t * blend_ramp @@ -257,7 +259,15 @@ def stitch(self) -> da.Array: # Crop canvas to get rid of excessive padded pixels canvas = canvas[:self.full_shape[0], :self.full_shape[1], ...] return canvas - + + def normalize_tile_coordinates(self): + min_x = np.min([tile.x for tile in self.tiles]) + min_y = np.min([tile.y for tile in self.tiles]) + for tile in self.tiles: + tile.x -= min_x + tile.y -= min_y + self.full_shape = (self.full_shape[0] - min_x, self.full_shape[1] - min_y, *self.full_shape[2:]) + return def _combine_block( _, block_tiles, block_weights, circular_mean, *args, block_info=None, **kwargs From 88d743cc1004c3b1a6b567f3eea3b803df44ff55 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Thu, 22 Jan 2026 13:51:31 -0500 Subject: [PATCH 090/133] feat: add tile configuration generator for PSOCT mosaics - Introduced a new script `generate_tile_config.py` to generate YAML configuration files for PSOCT mosaic tiles. - Supports multiple grid and collection stitching patterns including row-by-row, column-by-column, and snake patterns. - Includes functionality for customizable tile sizes, overlap percentages, and naming formats. - Validates input parameters and generates detailed output, enhancing the tile generation process. --- scripts/generate_tile_config.py | 505 ++++++++++++++++++++++++++++++++ 1 file changed, 505 insertions(+) create mode 100644 scripts/generate_tile_config.py diff --git a/scripts/generate_tile_config.py b/scripts/generate_tile_config.py new file mode 100644 index 00000000..64d307b8 --- /dev/null +++ b/scripts/generate_tile_config.py @@ -0,0 +1,505 @@ +#!/usr/bin/env python3 +""" +Generate tile configuration YAML file for PSOCT mosaic tiles. + +Supports multiple grid/collection stitching patterns: +- Grid: row-by-row (Right & Down, Left & Down, Right & Up, Left & Up) +- Grid: column-by-column (Down & Right, Down & Left, Up & Right, Up & Left) +- Grid: snake by rows (Right & Down, Left & Down, Right & Up, Left & Up) +- Grid: snake by columns (Down & Right, Down & Left, Up & Right, Up & Left) +""" + +import yaml +from typing import List, Tuple, Optional + + +def _calculate_spacing(tile_size: int, overlap: float) -> float: + """ + Calculate tile spacing accounting for overlap. + + Args: + tile_size: Size of tile in pixels + overlap: Overlap percentage (0.0-1.0) + + Returns: + Spacing between tile centers + """ + return tile_size * (1.0 - overlap) + + +def _generate_row_by_row( + num_columns: int, + num_rows: int, + tile_size_x: int, + tile_size_y: int, + overlap_x: float, + overlap_y: float, + order: str, + naming_format: str +) -> List[dict]: + """ + Generate tiles in row-by-row pattern. + + Args: + num_columns: Number of columns + num_rows: Number of rows + tile_size_x: Tile size in x direction + tile_size_y: Tile size in y direction + overlap_x: Overlap percentage in x direction + overlap_y: Overlap percentage in y direction + order: Order direction (right-down, left-down, right-up, left-up) + naming_format: Format string for tile filenames + + Returns: + List of tile dictionaries + """ + tiles = [] + tile_number = 1 + + spacing_x = _calculate_spacing(tile_size_x, overlap_x) + spacing_y = _calculate_spacing(tile_size_y, overlap_y) + + # Determine row and column iteration order based on order parameter + if order == "right-down": + row_range = range(num_rows) # Top to bottom + col_range = range(num_columns) # Left to right + elif order == "left-down": + row_range = range(num_rows) # Top to bottom + col_range = range(num_columns - 1, -1, -1) # Right to left + elif order == "right-up": + row_range = range(num_rows - 1, -1, -1) # Bottom to top + col_range = range(num_columns) # Left to right + elif order == "left-up": + row_range = range(num_rows - 1, -1, -1) # Bottom to top + col_range = range(num_columns - 1, -1, -1) # Right to left + else: + raise ValueError(f"Invalid order for row-by-row: {order}") + + for row_idx in row_range: + y = row_idx * spacing_y + for col_idx in col_range: + x = col_idx * spacing_x + + try: + filepath = naming_format.format(tile_number=tile_number) + except (KeyError, ValueError): + filepath = naming_format.replace("{tile_number}", str(tile_number)) + + tiles.append({ + "filepath": filepath, + "tile_number": tile_number, + "x": float(x), + "y": float(y) + }) + tile_number += 1 + + return tiles + + +def _generate_column_by_column( + num_columns: int, + num_rows: int, + tile_size_x: int, + tile_size_y: int, + overlap_x: float, + overlap_y: float, + order: str, + naming_format: str +) -> List[dict]: + """ + Generate tiles in column-by-column pattern. + + Args: + num_columns: Number of columns + num_rows: Number of rows + tile_size_x: Tile size in x direction + tile_size_y: Tile size in y direction + overlap_x: Overlap percentage in x direction + overlap_y: Overlap percentage in y direction + order: Order direction (down-right, down-left, up-right, up-left) + naming_format: Format string for tile filenames + + Returns: + List of tile dictionaries + """ + tiles = [] + tile_number = 1 + + spacing_x = _calculate_spacing(tile_size_x, overlap_x) + spacing_y = _calculate_spacing(tile_size_y, overlap_y) + + # Determine row and column iteration order based on order parameter + if order == "down-right": + col_range = range(num_columns) # Left to right + row_range = range(num_rows) # Top to bottom + elif order == "down-left": + col_range = range(num_columns - 1, -1, -1) # Right to left + row_range = range(num_rows) # Top to bottom + elif order == "up-right": + col_range = range(num_columns) # Left to right + row_range = range(num_rows - 1, -1, -1) # Bottom to top + elif order == "up-left": + col_range = range(num_columns - 1, -1, -1) # Right to left + row_range = range(num_rows - 1, -1, -1) # Bottom to top + else: + raise ValueError(f"Invalid order for column-by-column: {order}") + + for col_idx in col_range: + x = col_idx * spacing_x + for row_idx in row_range: + y = row_idx * spacing_y + + try: + filepath = naming_format.format(tile_number=tile_number) + except (KeyError, ValueError): + filepath = naming_format.replace("{tile_number}", str(tile_number)) + + tiles.append({ + "filepath": filepath, + "tile_number": tile_number, + "x": float(x), + "y": float(y) + }) + tile_number += 1 + + return tiles + + +def _generate_snake_by_rows( + num_columns: int, + num_rows: int, + tile_size_x: int, + tile_size_y: int, + overlap_x: float, + overlap_y: float, + order: str, + naming_format: str +) -> List[dict]: + """ + Generate tiles in snake-by-rows pattern. + + Args: + num_columns: Number of columns + num_rows: Number of rows + tile_size_x: Tile size in x direction + tile_size_y: Tile size in y direction + overlap_x: Overlap percentage in x direction + overlap_y: Overlap percentage in y direction + order: Order direction (right-down, left-down, right-up, left-up) + naming_format: Format string for tile filenames + + Returns: + List of tile dictionaries + """ + tiles = [] + tile_number = 1 + + spacing_x = _calculate_spacing(tile_size_x, overlap_x) + spacing_y = _calculate_spacing(tile_size_y, overlap_y) + + # Determine row iteration order based on order parameter + if order == "right-down": + row_range = range(num_rows) # Top to bottom + start_left = True + elif order == "left-down": + row_range = range(num_rows) # Top to bottom + start_left = False + elif order == "right-up": + row_range = range(num_rows - 1, -1, -1) # Bottom to top + start_left = True + elif order == "left-up": + row_range = range(num_rows - 1, -1, -1) # Bottom to top + start_left = False + else: + raise ValueError(f"Invalid order for snake-by-rows: {order}") + + for row_idx in row_range: + y = row_idx * spacing_y + # Alternate direction for each row + if (row_idx % 2 == 0) == start_left: + col_range = range(num_columns) # Left to right + else: + col_range = range(num_columns - 1, -1, -1) # Right to left + + for col_idx in col_range: + x = col_idx * spacing_x + + try: + filepath = naming_format.format(tile_number=tile_number) + except (KeyError, ValueError): + filepath = naming_format.replace("{tile_number}", str(tile_number)) + + tiles.append({ + "filepath": filepath, + "tile_number": tile_number, + "x": float(x), + "y": float(y) + }) + tile_number += 1 + + return tiles + + +def _generate_snake_by_columns( + num_columns: int, + num_rows: int, + tile_size_x: int, + tile_size_y: int, + overlap_x: float, + overlap_y: float, + order: str, + naming_format: str +) -> List[dict]: + """ + Generate tiles in snake-by-columns pattern. + + Args: + num_columns: Number of columns + num_rows: Number of rows + tile_size_x: Tile size in x direction + tile_size_y: Tile size in y direction + overlap_x: Overlap percentage in x direction + overlap_y: Overlap percentage in y direction + order: Order direction (down-right, down-left, up-right, up-left) + naming_format: Format string for tile filenames + + Returns: + List of tile dictionaries + """ + tiles = [] + tile_number = 1 + + spacing_x = _calculate_spacing(tile_size_x, overlap_x) + spacing_y = _calculate_spacing(tile_size_y, overlap_y) + + # Determine column iteration order and starting direction based on order parameter + if order == "down-right": + col_range = range(num_columns) # Left to right + start_bottom = True # Even columns start from bottom + elif order == "down-left": + col_range = range(num_columns - 1, -1, -1) # Right to left + start_bottom = True # Even columns start from bottom + elif order == "up-right": + col_range = range(num_columns) # Left to right + start_bottom = False # Even columns start from top + elif order == "up-left": + col_range = range(num_columns - 1, -1, -1) # Right to left + start_bottom = False # Even columns start from top + else: + raise ValueError(f"Invalid order for snake-by-columns: {order}") + + for col_idx in col_range: + x = col_idx * spacing_x + # Alternate direction for each column + # Original behavior: even columns go bottom-to-top, odd columns go top-to-bottom + if (col_idx % 2 == 0) == start_bottom: + row_range = range(num_rows - 1, -1, -1) # Bottom to top + else: + row_range = range(num_rows) # Top to bottom + + for row_idx in row_range: + y = row_idx * spacing_y + + try: + filepath = naming_format.format(tile_number=tile_number) + except (KeyError, ValueError): + filepath = naming_format.replace("{tile_number}", str(tile_number)) + + tiles.append({ + "filepath": filepath, + "tile_number": tile_number, + "x": float(x), + "y": float(y) + }) + tile_number += 1 + + return tiles + + +def generate_tile_config( + num_columns: int = 20, + num_rows: int = 28, + tile_size_x: int = 280, + tile_size_y: int = 280, + base_dir: str = "/autofs/space/zircon_007/users/psoct-pipeline/sub-I80", + naming_format: str = "mosaic_001_tile_{tile_number:04d}_mip.nii", + output_file: str = "tile_config.yaml", + grid_type: str = "snake-by-columns", + order: str = "down-right", + overlap_percentage: float = 0.0 +): + """ + Generate tile configuration YAML file. + + Args: + num_columns: Number of columns (default: 20) + num_rows: Number of rows (default: 28) + tile_size_x: Size of each tile in x direction (pixels, default: 280) + tile_size_y: Size of each tile in y direction (pixels, default: 280) + base_dir: Base directory path for the tiles + naming_format: Format string for tile filenames. Use {tile_number} or {tile_number:04d} + for tile number substitution (default: "mosaic_001_tile_{tile_number:04d}_mip.nii") + output_file: Output YAML file path + grid_type: Grid type - one of: "row-by-row", "column-by-column", "snake-by-rows", + "snake-by-columns" (default: "snake-by-columns") + order: Order direction. For row-by-row and snake-by-rows: "right-down", "left-down", + "right-up", "left-up". For column-by-column and snake-by-columns: "down-right", + "down-left", "up-right", "up-left" (default: "down-right") + overlap_percentage: Overlap percentage (0.0-1.0) that affects tile spacing + (default: 0.0, i.e., no overlap) + """ + # Validate grid_type + valid_grid_types = ["row-by-row", "column-by-column", "snake-by-rows", "snake-by-columns"] + if grid_type not in valid_grid_types: + raise ValueError(f"Invalid grid_type: {grid_type}. Must be one of {valid_grid_types}") + + # Validate order based on grid_type + if grid_type in ["row-by-row", "snake-by-rows"]: + valid_orders = ["right-down", "left-down", "right-up", "left-up"] + if order not in valid_orders: + raise ValueError(f"Invalid order for {grid_type}: {order}. Must be one of {valid_orders}") + else: # column-by-column or snake-by-columns + valid_orders = ["down-right", "down-left", "up-right", "up-left"] + if order not in valid_orders: + raise ValueError(f"Invalid order for {grid_type}: {order}. Must be one of {valid_orders}") + + # Validate overlap_percentage + if not 0.0 <= overlap_percentage <= 1.0: + raise ValueError(f"overlap_percentage must be between 0.0 and 1.0, got {overlap_percentage}") + + # Generate tiles based on grid type + if grid_type == "row-by-row": + tiles = _generate_row_by_row( + num_columns, num_rows, tile_size_x, tile_size_y, + overlap_percentage, overlap_percentage, order, naming_format + ) + elif grid_type == "column-by-column": + tiles = _generate_column_by_column( + num_columns, num_rows, tile_size_x, tile_size_y, + overlap_percentage, overlap_percentage, order, naming_format + ) + elif grid_type == "snake-by-rows": + tiles = _generate_snake_by_rows( + num_columns, num_rows, tile_size_x, tile_size_y, + overlap_percentage, overlap_percentage, order, naming_format + ) + else: # snake-by-columns + tiles = _generate_snake_by_columns( + num_columns, num_rows, tile_size_x, tile_size_y, + overlap_percentage, overlap_percentage, order, naming_format + ) + + # Build metadata + metadata = { + "base_dir": base_dir, + "scan_resolution": [0.01, 0.01] + } + + # Add overlap to metadata if specified + if overlap_percentage > 0.0: + metadata["tile_overlap"] = overlap_percentage + + config = { + "metadata": metadata, + "tiles": tiles + } + + # Write to YAML file + with open(output_file, 'w') as f: + yaml.dump(config, f, default_flow_style=False, indent=2, allow_unicode=True) + + print(f"Generated tile configuration with {len(tiles)} tiles") + print(f"Grid type: {grid_type}, Order: {order}") + if overlap_percentage > 0.0: + print(f"Overlap: {overlap_percentage * 100:.1f}%") + print(f"Configuration written to: {output_file}") + print(f"\nFirst few tiles:") + for tile in tiles[:5]: + print(f" Tile {tile['tile_number']}: x={tile['x']}, y={tile['y']}, file={tile['filepath']}") + print(f"\nLast few tiles:") + for tile in tiles[-5:]: + print(f" Tile {tile['tile_number']}: x={tile['x']}, y={tile['y']}, file={tile['filepath']}") + + +if __name__ == "__main__": + import argparse + + parser = argparse.ArgumentParser( + description="Generate tile configuration YAML file for Grid/Collection Stitching", + formatter_class=argparse.RawDescriptionHelpFormatter, + epilog=""" +Grid Types: + row-by-row - Images arranged in a grid, one line after the other + column-by-column - Images arranged in a grid, one column after the other + snake-by-rows - Images arranged in a grid, snaking across rows + snake-by-columns - Images arranged in a grid, snaking down columns (default) + +Order Directions: + For row-by-row and snake-by-rows: + right-down - Start top-left, go right (default for row-by-row) + left-down - Start top-right, go left + right-up - Start bottom-left, go right + left-up - Start bottom-right, go left + + For column-by-column and snake-by-columns: + down-right - Start top-left, go down (default for snake-by-columns) + down-left - Start top-right, go down + up-right - Start bottom-left, go up + up-left - Start bottom-right, go up + """ + ) + parser.add_argument("--columns", type=int, default=20, help="Number of columns (default: 20)") + parser.add_argument("--rows", type=int, default=28, help="Number of rows (default: 28)") + parser.add_argument("--tile-size-x", type=int, default=280, + help="Tile size in x direction (pixels, default: 280)") + parser.add_argument("--tile-size-y", type=int, default=280, + help="Tile size in y direction (pixels, default: 280)") + parser.add_argument("--tile-size", type=int, default=None, + help="Tile size in both x and y directions (pixels, overrides --tile-size-x and --tile-size-y)") + parser.add_argument("--base-dir", type=str, + default="/autofs/space/zircon_007/users/psoct-pipeline/sub-I80", + help="Base directory path") + parser.add_argument("--naming-format", type=str, + default="mosaic_001_tile_{tile_number:04d}_mip.nii", + help="Format string for tile filenames. Use {tile_number} or {tile_number:04d} " + "for tile number substitution (default: mosaic_001_tile_{tile_number:04d}_mip.nii)") + parser.add_argument("--output", type=str, default="tile_config.yaml", + help="Output YAML file path (default: tile_config.yaml)") + parser.add_argument("--grid-type", type=str, default="snake-by-columns", + choices=["row-by-row", "column-by-column", "snake-by-rows", "snake-by-columns"], + help="Grid type (default: snake-by-columns)") + parser.add_argument("--order", type=str, default=None, + help="Order direction. Defaults to 'right-down' for row-by-row/snake-by-rows, " + "'down-right' for column-by-column/snake-by-columns") + parser.add_argument("--overlap-percentage", type=float, default=0.0, + help="Overlap percentage (0.0-1.0) that affects tile spacing (default: 0.0)") + + args = parser.parse_args() + + # Handle --tile-size as a convenience option that sets both x and y + tile_size_x = args.tile_size if args.tile_size is not None else args.tile_size_x + tile_size_y = args.tile_size if args.tile_size is not None else args.tile_size_y + + # Set default order based on grid_type if not specified + if args.order is None: + if args.grid_type in ["row-by-row", "snake-by-rows"]: + args.order = "right-down" + else: # column-by-column or snake-by-columns + args.order = "down-right" + + # Validate overlap_percentage + if not 0.0 <= args.overlap_percentage <= 1.0: + parser.error("--overlap-percentage must be between 0.0 and 1.0") + + generate_tile_config( + num_columns=args.columns, + num_rows=args.rows, + tile_size_x=tile_size_x, + tile_size_y=tile_size_y, + base_dir=args.base_dir, + naming_format=args.naming_format, + output_file=args.output, + grid_type=args.grid_type, + order=args.order, + overlap_percentage=args.overlap_percentage + ) From 4c72768e45cf0d96de8da3ec4749028be4a7e346 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Tue, 27 Jan 2026 10:22:19 -0500 Subject: [PATCH 091/133] fix: add logging and remove print statement in spool file loading - Introduced a logger for better tracking and debugging within the spool file loading process. - Commented out the print statement used for reading spool files to reduce console output during execution. --- linc_convert/utils/io/spool.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/linc_convert/utils/io/spool.py b/linc_convert/utils/io/spool.py index 298b8b61..adc42574 100644 --- a/linc_convert/utils/io/spool.py +++ b/linc_convert/utils/io/spool.py @@ -24,7 +24,7 @@ from linc_convert.utils.math import ceildiv - +logger = logging.getLogger(__name__) class SpoolSetInterpreter: """ Interpreter for a set of spool files produced by a Zyla camera. @@ -167,7 +167,7 @@ def _extract_config_values(self) -> None: def _load_spool_file(self, spool_file_name: str | PathLike[str]) -> np.ndarray: """Load a single spool file into a NumPy array.""" file = self._make_filename_from_spool_set(spool_file_name) - print(f"Reading file {spool_file_name}") + logger.debug(f"Reading file {spool_file_name}") with open(file, "rb") as f: array = np.frombuffer(f.read(), dtype=self.dtype) return np.reshape(array, self.spool_shape) From eee7d0503ecfbbad42d2b9d2bb661b902ceb9030 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Tue, 27 Jan 2026 10:30:44 -0500 Subject: [PATCH 092/133] refactor: move the stitching utility --- linc_convert/{modalities/psoct => utils}/stitch.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename linc_convert/{modalities/psoct => utils}/stitch.py (100%) diff --git a/linc_convert/modalities/psoct/stitch.py b/linc_convert/utils/stitch.py similarity index 100% rename from linc_convert/modalities/psoct/stitch.py rename to linc_convert/utils/stitch.py From abe099fad0342bbfde8ac7149fde962cf3f64790 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Tue, 27 Jan 2026 10:33:22 -0500 Subject: [PATCH 093/133] fix: added missing import --- linc_convert/utils/io/spool.py | 1 + linc_convert/utils/stitch.py | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/linc_convert/utils/io/spool.py b/linc_convert/utils/io/spool.py index adc42574..1ba0a2f7 100644 --- a/linc_convert/utils/io/spool.py +++ b/linc_convert/utils/io/spool.py @@ -13,6 +13,7 @@ # stdlib import configparser import io +import logging import os import warnings from glob import glob diff --git a/linc_convert/utils/stitch.py b/linc_convert/utils/stitch.py index d432daee..0c22668d 100644 --- a/linc_convert/utils/stitch.py +++ b/linc_convert/utils/stitch.py @@ -6,7 +6,6 @@ import dask.array as da import numpy as np -from numpy.typing import ArrayLike from tqdm import tqdm From c628f3ba9c1e9248f4f9c54707e343c75d047c6a Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Tue, 27 Jan 2026 10:35:31 -0500 Subject: [PATCH 094/133] refactor: merge matlab io utils into one file --- linc_convert/modalities/psoct/mosaic.py | 4 +-- .../modalities/psoct/mosaic_complex.py | 4 +-- linc_convert/modalities/psoct/multi_slice.py | 2 +- .../modalities/psoct/single_volume.py | 2 +- linc_convert/utils/io/matlab.py | 32 ------------------- linc_convert/utils/io/matlab_array_wrapper.py | 27 ++++++++++++++-- 6 files changed, 30 insertions(+), 41 deletions(-) delete mode 100644 linc_convert/utils/io/matlab.py diff --git a/linc_convert/modalities/psoct/mosaic.py b/linc_convert/modalities/psoct/mosaic.py index 26c0df4f..f8ad4f3e 100644 --- a/linc_convert/modalities/psoct/mosaic.py +++ b/linc_convert/modalities/psoct/mosaic.py @@ -17,8 +17,8 @@ from tqdm import tqdm from linc_convert.modalities.psoct.cli import psoct -from linc_convert.modalities.psoct.stitch import MosaicInfo, TileInfo -from linc_convert.utils.io.matlab import as_arraywrapper +from linc_convert.utils.stitch import MosaicInfo, TileInfo +from linc_convert.utils.io.matlab_array_wrapper import as_arraywrapper from linc_convert.utils.io.zarr import from_config from linc_convert.utils.io.zarr.helpers import \ _compute_zarr_layout as compute_zarr_layout diff --git a/linc_convert/modalities/psoct/mosaic_complex.py b/linc_convert/modalities/psoct/mosaic_complex.py index 88833537..e8d0eacc 100644 --- a/linc_convert/modalities/psoct/mosaic_complex.py +++ b/linc_convert/modalities/psoct/mosaic_complex.py @@ -19,8 +19,8 @@ from linc_convert.modalities.psoct.cli import psoct from linc_convert.modalities.psoct.single_tile import process_complex3d -from linc_convert.modalities.psoct.stitch import MosaicInfo, TileInfo -from linc_convert.utils.io.matlab import as_arraywrapper +from linc_convert.utils.stitch import MosaicInfo, TileInfo +from linc_convert.utils.io.matlab_array_wrapper import as_arraywrapper from linc_convert.utils.io.zarr import from_config from linc_convert.utils.io.zarr.helpers import \ _compute_zarr_layout as compute_zarr_layout diff --git a/linc_convert/modalities/psoct/multi_slice.py b/linc_convert/modalities/psoct/multi_slice.py index 46c7e03d..afc43e2c 100644 --- a/linc_convert/modalities/psoct/multi_slice.py +++ b/linc_convert/modalities/psoct/multi_slice.py @@ -16,7 +16,7 @@ from linc_convert.modalities.psoct._utils import make_json from linc_convert.modalities.psoct.cli import psoct -from linc_convert.utils.io.matlab import as_arraywrapper +from linc_convert.utils.io.matlab_array_wrapper import as_arraywrapper from linc_convert.utils.io.zarr import from_config from linc_convert.utils.math import ceildiv from linc_convert.utils.nifti_header import build_nifti_header diff --git a/linc_convert/modalities/psoct/single_volume.py b/linc_convert/modalities/psoct/single_volume.py index 227fdee9..d186c56f 100644 --- a/linc_convert/modalities/psoct/single_volume.py +++ b/linc_convert/modalities/psoct/single_volume.py @@ -16,7 +16,7 @@ from linc_convert.modalities.psoct._utils import make_json from linc_convert.modalities.psoct.cli import psoct from linc_convert.utils.chunk_processing import chunk_slice_generator -from linc_convert.utils.io.matlab import as_arraywrapper +from linc_convert.utils.io.matlab_array_wrapper import as_arraywrapper from linc_convert.utils.io.zarr import from_config from linc_convert.utils.nifti_header import build_nifti_header from linc_convert.utils.unit import to_ome_unit diff --git a/linc_convert/utils/io/matlab.py b/linc_convert/utils/io/matlab.py deleted file mode 100644 index f8317f66..00000000 --- a/linc_convert/utils/io/matlab.py +++ /dev/null @@ -1,32 +0,0 @@ -"""Utilities for reading MATLAB .mat files and wrapping arrays.""" -import os -from typing import Optional, Union - -import h5py - -from linc_convert.utils.io.matlab_array_wrapper import ( - ArrayWrapper, - H5ArrayWrapper, - MatArraywrapper, -) - - -def make_wrapper(fname: str, key: Optional[str] = None) -> ArrayWrapper: - """Create an ArrayWrapper for a MATLAB .mat file.""" - try: - # "New" .mat file - f = h5py.File(fname, "r") - return H5ArrayWrapper(f, key) - except Exception: - # "Old" .mat file - return MatArraywrapper(fname, key) - - -def as_arraywrapper( - inp: Union[str, os.PathLike, ArrayWrapper], - key: Optional[str] = None, -) -> ArrayWrapper: - """Convert input to an ArrayWrapper if it is not already one.""" - if isinstance(inp, ArrayWrapper): - return inp - return make_wrapper(str(inp), key) diff --git a/linc_convert/utils/io/matlab_array_wrapper.py b/linc_convert/utils/io/matlab_array_wrapper.py index 9e323ffa..30c7d8a6 100644 --- a/linc_convert/utils/io/matlab_array_wrapper.py +++ b/linc_convert/utils/io/matlab_array_wrapper.py @@ -1,7 +1,7 @@ """Utilities for reading HDF5 and MATLAB .mat files, and wrapping arrays.""" - +import os from _warnings import warn -from typing import Mapping, Optional +from typing import Mapping, Optional, Union import h5py import numpy as np @@ -125,4 +125,25 @@ def __getitem__(self, index: object) -> np.ndarray: @property def ndim(self) -> int: """Get dimension of the array.""" - return self.array.ndim \ No newline at end of file + return self.array.ndim + + +def make_wrapper(fname: str, key: Optional[str] = None) -> ArrayWrapper: + """Create an ArrayWrapper for a MATLAB .mat file.""" + try: + # "New" .mat file + f = h5py.File(fname, "r") + return H5ArrayWrapper(f, key) + except Exception: + # "Old" .mat file + return MatArraywrapper(fname, key) + + +def as_arraywrapper( + inp: Union[str, os.PathLike, ArrayWrapper], + key: Optional[str] = None, +) -> ArrayWrapper: + """Convert input to an ArrayWrapper if it is not already one.""" + if isinstance(inp, ArrayWrapper): + return inp + return make_wrapper(str(inp), key) From f36b318584f3683218b7ec6d1cba342b41a52b96 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Tue, 27 Jan 2026 13:04:19 -0500 Subject: [PATCH 095/133] fix: correct voxel size format in NIfTI header construction --- linc_convert/modalities/lsm/single_volume.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linc_convert/modalities/lsm/single_volume.py b/linc_convert/modalities/lsm/single_volume.py index aefb6667..8f4d2c9a 100644 --- a/linc_convert/modalities/lsm/single_volume.py +++ b/linc_convert/modalities/lsm/single_volume.py @@ -84,7 +84,7 @@ def convert( if nii_config.nii: header = build_nifti_header( zgroup=zgroup, - voxel_size_zyx=tuple(1, 1, 1), + voxel_size_zyx=[1, 1, 1], unit="um", nii_config=nii_config, ) From 62bc9c96552188717b609a2d2daf18861c8b8567 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Tue, 27 Jan 2026 13:05:13 -0500 Subject: [PATCH 096/133] chore: make info_file to be optional in strip converter --- linc_convert/modalities/lsm/strip.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/linc_convert/modalities/lsm/strip.py b/linc_convert/modalities/lsm/strip.py index 75c2e368..5224ab6a 100644 --- a/linc_convert/modalities/lsm/strip.py +++ b/linc_convert/modalities/lsm/strip.py @@ -5,9 +5,10 @@ https://lincbrain.org/dandiset/000010/draft/files?location=sourcedata%2Frawdata %2Fmicr%2Fsample18_run10__y10_z01_HR&page=1 """ -import logging # stdlib +import logging import os.path as op +from typing import Optional # externals import cyclopts @@ -33,7 +34,7 @@ @autoconfig def convert( inp: str, - info_file: str, + info_file: Optional[str] = None, *, voxel_size: list[float] = (1, 1, 1), general_config: GeneralConfig = None, @@ -64,7 +65,7 @@ def convert( reader = SpoolSetInterpreter(inp, info_file) # Set default output path if not provided - general_config.set_default_name(op.basename(info_file)) + general_config.set_default_name(op.basename(inp)) fullshape = reader.raw_assembled_spool_shape From c5e44c224ce71d026859ecdab60b86bc08a74812 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Tue, 27 Jan 2026 13:05:42 -0500 Subject: [PATCH 097/133] tests: add regression test for lsm pipelines --- .../data/lsm_single_volume_zarr2.nii.zarr.zip | Bin 0 -> 911340 bytes .../data/lsm_single_volume_zarr3.nii.zarr.zip | Bin 0 -> 685712 bytes tests/data/lsm_strip_zarr2.nii.zarr.zip | Bin 0 -> 11110 bytes tests/data/lsm_strip_zarr3.nii.zarr.zip | Bin 0 -> 11110 bytes tests/test_lsm_single_volume.py | 77 ++++++++++++++++++ tests/test_lsm_strip.py | 52 ++++++++++++ 6 files changed, 129 insertions(+) create mode 100644 tests/data/lsm_single_volume_zarr2.nii.zarr.zip create mode 100644 tests/data/lsm_single_volume_zarr3.nii.zarr.zip create mode 100644 tests/data/lsm_strip_zarr2.nii.zarr.zip create mode 100644 tests/data/lsm_strip_zarr3.nii.zarr.zip create mode 100644 tests/test_lsm_single_volume.py create mode 100644 tests/test_lsm_strip.py diff --git a/tests/data/lsm_single_volume_zarr2.nii.zarr.zip b/tests/data/lsm_single_volume_zarr2.nii.zarr.zip new file mode 100644 index 0000000000000000000000000000000000000000..b6903eb617ab679c5d2c569a87e1650d920a7ba1 GIT binary patch literal 911340 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

T6BnYY4I43xQ--$#hkEFE#tVeeH$ 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

R0&ah{66Zlh5sbJ{h#E7l#v@_;)7O#^ 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

hBr}D*QEH>BhaZ_w>lk*e2An3sGy5 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 N5*%D!P9%(hI$vy%p5n8R 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 z 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 Lub&&*I*0xToh^HQ literal 0 HcmV?d00001 diff --git a/tests/data/lsm_single_volume_zarr3.nii.zarr.zip b/tests/data/lsm_single_volume_zarr3.nii.zarr.zip new file mode 100644 index 0000000000000000000000000000000000000000..801d5c16b4df9ba4c62b95cc0d718ff1e66d350b GIT binary patch literal 685712 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

jMw$krJ&+z4HiTh#zXQ)p&HablfE8M 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

$x>j~+Ts6wd{lX1T?) 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�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%0AKc*ykVh`J#(K{)5*jgZo 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

bs}`T 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%0DsCwbNn=DaQ@Vfjji|%^z|n5@pP7AVWf>wiUkO@3 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%0ArwSh#H`te}At<06XIK0_H zqXa}f?XIt~p794<04{>1!L`k(*NxgQX zRq_K4noOAXk7Ncj+}2J2Ye1C06uDIe1))TNB!Uf+i)7qFpp&DeKoo^6*8_sy4ebk9 zj@HYdSJOgnq$J=NR$ks%9e-)AO8z_$Rmcef-AOUSL}5(2>h!dN)X_{_K{}#EuozY{ z8uW&&2-bp?sE0VKL2rkhqg}!=&;^_l$`Fr9`8ngJ7*mWNzOHF~l37ntL81fS1EUHf z=SV(9hOf*`gA`f+kTY3P&x9>hoS6f>GoRtqiQ|jdsyB z>iG{C8=MN$2Uf}QrY&rM2d4)(2n(#spYNxS&lBvqQEI&D62u!m_52U9-M>nXSLZ$bQe zT}vpc{9Qs>Va#BN74W zqd|XsMpQvEe$5p#u~RzX_Hen~x^iVON4#*9jHs6I|JQ1TQLlwS$IJ(O_KJPpDYbkU zRuqUmTuNd}Vkt%u>;az(owsW1w=Aj$vPD@WbI{V@C)@`{1h5rG3FVgiCS5t%5S7H( zN8$>SU%({bqnF;KD|iQ25?eAO%wSCb=hw#SIH3y4fo}&#;^Gm*QL-Ttz-p^#VsXNi z6HM!6F`ssh7KTm$gQlMG(Uv*k3Wfn67!4rq{18e$R1>ru_{S1;Q=1S<8(J4@H&G7n z@P!UVZc&yn4bYkBa{C-M;|t zrpK)knw~bmV(u|%Osbhi-?CbVqCZv%Qw8gRQ5fQ#bHX;l+Q0|ZrcBg2ZCyFBXid;& zFhvt}*~-g0ufdxUDv1rjJYp%v1n|eoI!S7- z1*;lW{cMOM8RFsE`2=v;^{yY2I#d8Fi&hWUeg%4nkGS~2i2o8UI?e!`TU=arIKUP5PJwtvPOzO1k+{;+Y3FErU$u2(b<=IL z|LobvE&KZR*?&D|`HO8iH*sEmKIhLjeQ(a$^Y!i8KHIwdq+fQ&Ezs+tS=8-`nWR$G z4%PCZP*f!g{RpdT)5XmD7gvF%kM*&>S9Lf=UE7mwe+93cR!$SpPMfjkrvLeye0{Px zA=jI<^Y2^QCWn`B%S3#3qu-6*P7RufuyUinXGbWyQ`)2)j3v9c$P(uzZPHEJX#S|cm`9< zCtMq1kW2)neltvF$e>SJ->6SOhX4RDPrPasEumXBt^U=rIPVI+&_iq*JU!K@`%&bLWv)mazlV#$nXI2h zOUOw{EXmeZZPivU9G!5N@E0(5WAV(p(2aNv!9lW%RhQYyWMnqV*r3Vlw9Z!ku}qji?B3K~mh*yUl;+m<`+T%(hs2C{?UUndI0PA-=gSqAIjV2;X{=9x2ppsaTjA{bd zm^Aa)w&nYzj_4Zi`J^m>)!bO8Ns2`kg#@rKU?ofs!Xe{kt_+l$9f_Jr+(y%Fv8bc7)pfa| z=#>5tx46bB-vcl6%)v+;e&P~^63S;u>x#>|!!H^%efUPaShRS=_;aPFNihj!2GfC$ zZ8_XUODIP#f|b!bDDjupTG#mppee+@kt&i`kbN2v{a7Eq6(sgqv^v&9xA94MI>02m zgAxr>g)u$t$hwI|uG{L-;87r+a3^R{)5H$|O3GT4FmwqeKLM=4o5}y$FuLVeXZn~F z!-{+!u?+%Pz1H)Ni(HwSfQBO^t{QJRYB>p-A~?^7p)cqNbS!Ai74>VQQ&br}dS$Tg zZ{TCfo-0?d4D7?_Vx18JfIg{7+4(I>3HSh_UNcXGP&#c6S{Pbm(#AShCQ`P8bI>N) zLQWft|Jk}OE*X8m=SGU39IQhXaQ1M^zdAQGMcr>iWx=X|lLG1A13ut0xq=*R@0>75 z?w~}%)8J*MX3{Ngbr>YxNUh+ASMMyT>6GvDNL)Rnb<274NSc|rjUDc=ag=)apFi>Q z&cn1R#v|H>h=CS`J;X8T6XGjaF=xLDf{xkZr_khR}N>SMPfJ6e=8>u9_gqc4iyc+ex=jH#%Y?Y#pUL#&TEjgH} zYta*5nb)?OeYEAB%Wd0ou#@C}y61ViuXD#XdgJWB{`F#^CmTieT4V2v7zT9Fe5;^x z#x;s&W&ip%fc5jKmU}F(72+>3@;ps=lUeWlxw+ol>~K_eOE?FunYl8b?A&3O-Dw}uE4YoFyBsV< zeZXg22fiAw`mNxPk4J2^IUxm-0UAaA@nsyZ7|ouw=_@!UwILSCzp}Qhf|Z^m;2y{T z)(I&7ky}&Lmsp5f&?8yn9fBViao`n3leqFgo*!awXaPX~)Vc>;6mr_ZJ#qJz^NJQU z3D1X$26f;QfM=%eMpWPN%sV+~SFLL~VQ%2lP2xtcU>)ENF0w1!O8F{`6>$D6S`2hT zeAG-@b5HgI-iqMNVEyp*6)ST11g$&bN&?s!p{Q@HPU{jHB!?lM^(}jBrxd}--+|A9 zK3@m8f<#a|QjGdVVHbrai`o!XuoTF+*5S_&_=s1CYiozpI#EZU)5C?MfKMo7K|%~PZIo@6;(LMehJf*SFf zaYbQ>gI+xvK%~KW#8!|zkoi0R;nods1m}#q>08#1wI}{7``V06$8F1M&Uee7 zbNuI%9>ohZ8RKRYGPYqnTvYCq@7k(HwECpmn?sKzAHnp3_9Tr6#@RFzPE|C)m> z5`O$FuJrKypjQS~VdTIe&=}|pcI77JE4Vd)h@)g8>J;^R4xEHn;l*99>!!DsbVrDKoF-KT4Q!|+kd^W@yue+gIb7Rucn=l2*N@6NlBRTrd zM9ilarTTHuR~`Qv?-3QO5Fb~qbu21`QVFxe-dNr$g`=b-hQ#G!6~W@yoHs{nYDE)K z6dIsuaQ$Kb-*lEd`WB@TRgE_@yA)%Mx`X#nYwI=wfKnh1!AM*+-U~g%yPJJSXQl^) z0Uh{&s2sF5#1cx%W?azwZPFIi3Ic%kEtk+E8i^}|^?;AI>MQ|IPfIuk+5_1`{5SsB z29bNXIw;ksr=7tXjwq0_{|>1$?qbbgH9%7!^^Q*tHUTB!4Z$l&2z0!2l<|}gACDL& zjc^MztsvWW>U#Z zxccqj5a=!n^JtU4Y%v2-kLVNb=tEKOC>k`;pe|NYMuF7xs-HjSV*4!HK36_()ARYC z-hT4bn*7cAN^`p>){4D@ELjxYQUwFTfS>ZEJ}DNJ(>fGLM5&-qbnlx9Ct~vH63Ckol z3~|i~Ib1VsH0OQUF{#(8FrsL;N$~?w2qKSop~#&_R~T(|7zQlh^r0$}i{z}MDkzr- zs|Aff2LqjCA8G9sw@4`XvDA;nzc`1ZXwXE;Qj9dH*(#9Hph5Bu8C~mMTPA8vlgy6M z6Bh@Lf%c(Fl79g4h!%o@e%3aokTMtR5UeC7qsK@Wz#6<~M^O}JFfCa9_?GY)Ap@NZ z=C|UyB6+|MpP7r~4oXN|CtNXi+qjKDR2yQ4E%MH{d^7F}F5%}}&{;Q4JM-EA))kx) z?q{HbVYSlQ`kxeNvS7snrT3`xGfKupV~qiVfdBvi0D};~fG_|g91)7-A!Dh26aYsb zexP5avp5HlG6nzu0000000000Am{_bzX71igUmd};e1W>SCTmZBzNQ@zjpv+PoKw& z+(b7qrLoi2N7?qNy`QLZd{sr$zjw`J|LyQs0y+a=!G0p|1BBl@(+>>2&7p^jGUAUMcmQx+ z13B>!HQWf&VsMTJiC(R|n;4_+ZG$#dIqmJzZva&dipL0dN`ssA~W; zJ$93eUfS9L+*2TC=WN*PpAL2a{Ph|+isPSSJ%9c|k*`+(!!SmxAjPpokFUta0f4tI zth21ut4odn-|Ix0D=r@Y08qRMzL%6i#<@FuJ<`ht9P^0U0BFJhsCi2JeTUK|&yBMO z1-FXS2fz^V@V6%5@;gKllJZ$;Cyl@^b^gbG6L+_&V2#(|&(pgE-LR^qk8frwz1eM`y|CxjuQu@AX0sf>FRzUY7^nvxY2r$kWu5hgyzflNrxXo>e2@w2 z^h4uvpm~ci{Jt8)!)LR45G_9dj+>8__>QL>;{>4YOdLqJTU=*>ghVB}qvL9G9+ewD z0FoI1C|T}h);!<8qkRC-5~T&S$KtvVNEQ$+0ciMrMzbT@ldh}>z+7L_uyX|MeV8s` zq)qH>uB=UBO*!XvIe@v@EzX4+rH7xhzMTK>X+1vqyKq^5*34UeGE)V0=K;WTM(Nyh_l)`M_X5YK!*iKknIZLN2}LjpgXdUd7Rd z1GNeMP%N|&q|}TL`*%p)y*Y8>*j!=&Xm+sqi3>0`e4o;uSm^|5_@0JOL#Wg=CA%x! z4ZJbaBh;&+@0aXkbbNbZK3vNk-@TB;&&vFHwzl!Fluthpc7*F1ssG^pA;>TLqy8sQ zem9!e7YsYDz#3lK0!IK?2S7cJc!Z$A_G*s@zYme}T^XXs8VKyN94!3Q9Q=ZNuqqvX zC;)KNh1avWu<)_Swv9HG&2z?eI@c_$zV$s_0)sk{nS=y8Hw-BrwMo*_)xy~;ACK< zxF4arM_vpl2E(~>C$mD5r$c;0d%@%x9o1w%^T6UzM%vE_wugl7?JRiHzZJs^@Yz%z zQ1iSswtV&HTmL{VO(*lXOvZCqWNvSM=$B#N58v#TsT=Cq>?c8bl1_sKv*--TCnQ#8{PX; zuNoRY4cg-9y9ta835l z?)D*6Ia%)k<<2IZ0GR1C74#V&GXHeWDjMx28U&MnV}(pCik&d&?zmT%eo_tCHC ztq+h$za2jRFa#?HKf+x8?Wz~fai8c0VIXF}ssW3})|d4n89SbtoJ|uxJpj^NE7t?U zE@LCk1N#%R;XV?j0DzrI;ab>BW7m`1UvLw`QbgV>xGCD`o}FHq=!jUB;8y7e0Q4QTkQJ+ z0sjBt68$uIWUV-QC#(;!T*EKyby#%TV~_LU@32R`Io=Z(>FU=@jZSV4{Jv%nj_CP~ zjB7=l7c^YYqQ6ivgkcgZT`zl`JIu&8-sKiWuIU3P!vnlxXhtU=eD{C!^apJ%$56f# zgyK&)9aZ2z|L{j}=(2$I_(6_7|DAZCw*TBXN1O}2YQ;i}>i41j*kEqt?G5Ya{^!3` zxAt4(Pp#uQ67b)T9ZYQGFOTCrJMeEL_YkeTcX2R-N&g5y4~%pxRJVFq{16mll7(Nq zZRfNKzk0XV7utz^g z559cKT3Pw;8quc?^Kdx+s2x7)9PnW{z!!>_Uvw1yikknh!M`;)`J!$8z`266)cRY! zY^1|OCl>`l#^N-{SgwFRq_y?La0rm+bZ|xHg@ASy0_}JvZ zuuqDehhf35&8Q`*&votv$_8%L9(QhnGhznP*2&#wjRx}hex`_Hm;sV@UR5J3V2uBO z4glT94P3723yHxGN>Y&t9OsdfS?m5CG9uH395V@E8$0?mY+E<#3H->3J$g5e1%Cd9hI=9}#e?ra#w@x;>t5Rr zeoOy8V<;Sy*F7@Vq)oAZ76`&g^(ED+H*)676r`1=0geML^Db;!TG6*=-9cX-i$54V zkyS44IC$K5QUiy6GK%EQ%Jsg-`xgQ}#Kmk=>#cUxmRAV_{cHw+%o6JvwR8=={O_mH zw{)R6dwrEJGqQ|@@e`<=ut5?ZoIJfQ!4*yiQ&<_mYz&tKhmC9N;&vnfA9|= zVKcLQ0+#jw>uLu)Vu2GNmG*+~wZ$UV(7y)c!47~!`v6Qtl^f&a(*Aa=e9#K8295er zJKSN>v03U_A9z`1?rsF;2EtsD0MG>X83Qs4GhfULJE|?y@)x=q7dKbvJ4R2~nO{?1 zcNbWoOPM70L#0{X0g#;qW7L~$yaKxNRB2!N+Ka$`0IUjtp=lG^)r7tQP7x%h~uhF#o%35n6@@fabpX zj0;K_`-T6U8h4An);wIH}CoSw?(X2Y^K42pT50=@@fP&oA_B z)NNS=uG4xY%?yCfb%8?Xd@py$6PhZTOJ~%>p!=uoo3LBr^Z}so1r&?oRkV$a|LY83 z$rE~OcK02&2KEAwvj^jo<^XVc{VE z9{&2JFgr1bD1I$6NiLhvU*oPQyETxZ0GJAZ@523^P?->t=D|R|ldl0_HZsci7fzyG z_?TnEbc$_bg-QVB|GmZphQSjUnfExd+|9_i3`> zKWULe{bc;w{olW=djl3?5YVuYHz;5mn#=%TJPrl?*|Ni3;$P_(XLoG;X7oQQ1XPXn z1TO;gao;dk7Y%|%H!SXxE5u=sbC}J8M4AwH{sAjKRkG4@ghMa8z=t1~DH~{xH|qmO z^6-fs0r*9}?{IcRSb6(DvlGD0uFVUaIzX-qsi8x6_(D!T9eaS>e+SUp&|P|c^!CO} zy%)R#PS<3@{Mf@S0($84GGupsWMd)j1Me4pKIhd>AJFlgx@&Dkgw6k%RNg?M}z&}V_8S%jS`%tr;c@X<=#ZmZxn|sv8PX1M>Z+!Is!@5nz z2mbD{yjmx3KOZ;^Dp_d=z6qW+n~pN|w$irtJ4)mPrKlgfW2PKJjtzk zL8|Bt&52B-=bIN^^5Vw}J4^{bGR+w)&>0rdYTe;~6LpnHM1 zvg@Q3^>^;P5dpFzrLiZ*04R&Rfy3Rmb0vZryNKYW&QU}CywT4?pCh|J0HBX9`Q&I& z6t}@=sDMxi-CGkantuA7-7 z=ahR7!7V_z6x!&2X8(uFeb4xTE7JU2fdZ*e-#ii0bBYmM# z-vlD$7DlNJ4?rF@_ZKvs1SlV?ebM*pE^+{fr=F182?V_ltd*OtrFQ&-S333VnhoS% z->Ks_mb;l6J?GDfTu_^E7JAF3fdItf_6PFM`*E=WK%-7J$kqRO$3R`+rAysHBzuOD zI@E8YaWe*jyrqK!oD)1j=AiLD46*rpiRH~ijY$STo4jWNOeq3E)T|5&Ki80 zZ;2e6V=Ntz*pc5E&CDDyw&gIl!-2B{f88VYF%an!dUuV5vdo2k^iJp-xZ0_Ds_%>O zn12aqB0mm-w}4#a5&z2^wLL>iviL31Ejg3c=nu?20%a4A5bQ~S zlSS@2pi4jC3EYKltuPqqmjgfU=24mv?lUx?x&wdUtJ9gR^ZSO-6m(b)_|L-r1bk>8 z=!89DWm=_wyVOzjO9)bY1K>4wt2OU?&YJcC;J)5W`re6HGy48Qq%Qz>@BftP+VHFa z@M{3vklq1+%98tZz@H8P1-}$kIM04RtCfYbKhJm97^ z4tMCX_qm0>&k*UR)4r7fFa^N0Uu4JT{ttkR%Y8i?9%ulB_k5c&zasztCkH^ftMzaS zeRuS^^8iry0l@!6nri^0hJ>TvgrlEH9|2ha;Fp0k0QNrYwEmvt>N02L!U3Sq=h)rr z2Y@~Rs0)C`L?|}!06_f2006QYbtkE)2Z4uF-v+9ppl<-Eyc2X|0B8+>)d4`B1Ni_5 zJ4QS?aPyn`6@myAvCSr5KS_bEi5gFb1HgU&d@_BG4giKV&x%5`D!u|1Onn#IPvf-p zKhv-Rz}ekZce@R|VYlX`ZbeURLEFWq%N)yYwS{j`ycY4tBhfZ~(gA?li?eCWf2B#g z=NH&XIK%V!`qh)2ulkisU!*|F3qS_ixX@jUlhgzs)X|s%O@*tMPEZOKYdZ zA5sDUy?n}hQD$@yKcF~AVgLYa`-eViAR51H!^xVlP z;r4lOHvl3Lr4jA?gitab5|!~Nu?6qD@32$uA7 zWO7CNX&1=;Y3h5hA`hhP);-RBR^~mXU;lrOy!{`sP>{RD`XYQ;*sy&d?*+f_*ujrh za_8{^i68$lf*c#JLnvl3n@9V;(=35NdK(13(LB+UE4uoK`ddDJFR9b{grB7fzvJ+^ z`e@nab!xEa6^EHO&J4kK>eD9({KyrnLwva#PkBXf*>}ppGyt?{A8swQrWAhi93R|m zN^TFR8C@d_Csf%BP(W=w>CSmvo#Ain7!(K9{xSsz)J{eKaLo(5vj=+T0*XDrAlfXb z=jvXgl?<`@yj3C!Lqt8rFbL0=?=`qqIapdy!`vuxW)SmB()u7@7hF?{tW9JeuQjPM zPJ<+R0f;)3lQhU{IQZyWu$NwXCR8sU{PjjmgMYT2VwBr*4`6;7)V}xTL)rAfD~QRz zL8pSCLJz16BSGcx?a!QA7CNZ2n*t&%JNf0Y6rqyzGO!`;c%Q zn&%;SO@0giQ+&O#b+!CP7ow%Y?{=s7iho%`sG8YK%{cTWu7kqlQ(MS4m zV2Fov`Tlb>OiQ`Pjso0?U~UxBeLF7*dt)2`@W)I+;jP_|{x5vKi^e-!Y)7*g)3O{r z!`Tyjg~c11s;Sc_cEts?7Yd7in(p>Hkv*_@U&XhmmHA-577uhk44{2c?@D5P@W%oj zuGMlOFU1PyhcLpBy7H%gV6IZne&8>BxN{%sKX>DVa!$44N$7ya)g}5YP9Ot6Dg4X^ ze+&w~+i&%oUM3@)?CyTiUO%Yl2b^6Xvrmw?k%U>GEnmKSvypvx^_b6dpQ}7U^1YBB z2tKx$d83mZb;;vt8;OmcEN&$%6$7M)iY}t1t2Z-2fe;(A**Za=$1!~5%sksyH_|__ zTLve7<0iTnJWCgRd7WY$A;jD4{cn9dlr^I(;?V-Yfuw)%TyW<#lMc>U^!B*XwMxUm zl3&8h3}}5|+${L+#m!+6cX4sCf1z@7r-s{&E!m2f+(5o|9~RExd z;?KUBD{DWe`1?ap%m=L>#C%66A2Im{vjznfKl(Uw_Wxg|O583Vko;bfKakcJnDqm3 zV|5Aun~BZ@69@WS;xK=~b`8W4pJ0#&%zJZ5>R!2jAiB^`^eK1HmD@aTK$+XRKXCB3 zauHwT`osGtXuN**$wcdw{RgP$jm#X0Xr8nRe*1(PYsSKW!jzQR9s=}Hbb15b7j_u` z+d@nsGd1HoTv{r@w#z2QEDofs;iKfX6uvm``(h#uTzZ&K6f#}niWGqymm4Saru zXw}%oCVxfE|Eg?Y%dA|3^e-2{Yi_^?M_D=eUsDGrOxoKPc<*pd`PW8@cKs3aFJIOqp@`f-AMbtp ze-Hcj#SfuJKUDR3Kp;SkM}~V|S#C@)MWL~J5~xq`2KQI38b}v;zgHrc`9p6XP&ckf zLznl%x{V-jP3_&-=y38DK5VXAjFnLVA!P0yK&b>-#^$60Fe7ZE)2YEa>H3p&Vd{1 z>fgw}oX4$*w5Ycd+dS|iTI}RV^gpVa?Z(hZ!aet(cpVM={EJ}k_0NWM|32`^2^`fb zGTDiqKM$^Xu*mdZTwVsBGU34hFnidInN2ts=)L@ZmrhHvA_M=$4lW<25mOw2ih<^_ z;Fbn}WC}pWFgq5A0g$FCk-{0*>x9D!3*G?0+yNhs0Px?~_|VD60YLrV+YEqO83rH9 z-6^@Y2h{-pV#fOz^Q?GMsvn?vl`U@o%QgUr_5egy&(G73A+P$McA}#VfJRlgbfMKd zEnsTjTWIm*j@Ndx@d3d8J?RxxEJw^h{22x0(%&P(F5&na8wNl&iD3Ov#dcLb0GZNx zFnGT`INNTuF&qa#hBo~EhoALz3!fMF6U_+Nv&P9_yzUwm13;uq!2H3VUAzrh{Mh)B zDy@c$T`b0Gp(~aAU;r42^lTk#=u~U0iyzk>=c&kiTt4UHDS3DJgVotEKOBt%!0SKk z66+&-JB56Qwm9Oaa!@b=VF2uVSr^&Rw*ctB^R)qBwpI^-Gz~<107Q<$!JKspxWhNd z9t6_oHo^diD!tUs09f-mv<0BBRGb3<;{ce_gC?i|MDZrN6Mnl8pa!08&9vgK9PrnPr+m{YN(bUpJ-6 zXj@(7q`SDZ$UC|K?#{d$0KUnedPxZL$I737!JX6XgOyDpJ#W-Ag6vTOK)T9L1pv7D zJ-Jtq`9C!PI*kvfdx1GWiobHfeF5OP<`RFeEszF45MFwFU1oORau0`J9s_uA{(SNphw z*(#1T_y$p$0 ze_AK^z6CWOYt#+oxS|VZd=Zv&e1mEEkH`QQR!uFj-8T8O-#<454+T8XQ9J{QM8*uh zX{JZCnuD)2XQ!H{AYN0xR~S;{VstAzI$Ib5nEkZdPYyVI`M!jqTQKy^hVkd+{M+$m z`9CWY3Eu^4OfnD79QwzqIbYh{cz6YfWesx0;(v7(ZnMTdxnI7MM;`D}z5pwjtK8`U2 zNt%XcaJGhyH*g9!X@0zGkjWFL!QB=arI&wgsj|+IO7cWel0S(NDEzoek~&JdFXErf zzMnc&KJtrJUM2Ni0-NrtO!YA}OPU>-yR;9dhs(VVNO43yWsm<@ti&=Y?P~n#;GRe< zD<39<3&cmkC&afCl#vA|4`_)lk+b@l6Pzk+bW#>Ey{fCn(4YRT%g=ckk3tBT)V=oY ztm6FnJ;Se!f&+{4I2!|o^K92WgPo70yH*X4@>(=9A+4db1Z}J5ZicZ-{5xZJvR6CJ zLd#ZGi*ctmBRuRPcC~9(%Y6G3?z*z1pT3BQTY>G$ z>kXgiNwb3Jd9@H^|fN;&^3T%hsdE3|WQC)HQK!kCc6Z zGPcYm{~$c68~J9DtyYuW0NNKi|CQ5a1+kU*@#;!iqa!6rFQE%{FAd?n);7jC>6#Et zw`x(Z{>CNp6+$gWFPaF0E6kEm9Wj#+$Np9`s=3+z)z#Y_bq@BSs!tsk-!qD3Mk7ip$o{z+YJ~Xh@3LOHTB@bGe@hZnH6wF>@~z3iIIm2S z+jH9T$Sv~yP40N(Np|b(6A}I?`mfP%d%Shh_leH&q|`H(ci$Oj`PEPwUP;jNM-dg2 zfW7jxUxW-?1T(oiIp@*lVIkY8qtz_eW2Bx1X|n z1H*4R`G2$9BazVgRE~2DbU&cVe5}lo^O$da>E~4gY4S#d4fV6aV`N#dYAa~@(%WK# zw09G?5skTm9$h!k0k@>&b4VJAywClfstpj8p?@^2LXHGv?BmjAZ=vTzvV=Mj6>U8pUrzr6h9x8Kxw6Nu0np2BK!5} z?veV}oMvLP;*^%->u%4+Rz-^4v-+e;OY+^`yHs{CRSDXv;P07?ocF!(lMlv&T|MQ^ z(mOfu>LfkGVCbCw;Bds@xFEqRY2!YKY<5t$!ZFnY%74f!<v_SG4smsS zCAT5q-MNc0(J$*Lnvz;DU~m22<@hZ!sKc+eZ4>(B&hR$Mm3nA9BdW*Bqr^cf75?tj z0Z1*dyX0;>)df<5p@F+f{zm$>G&O}Mc+M<#ypSpkS>i4#ISr>$Xt`7-vO z11^mCF!q@kFtFJ6lnMClN-QJU$(rHL`4c950g4uWKY~v3&p?5`(*eV=#ls+(rhf$j zmfF-SOaJcr3ey(=6R$Q}xMM0IOoBK|Cchza$lPqq>#f*@5WobLe7}>>w{WyDIs3Lw zAwW6O@xj)ZARivHA&d!#-suXvfyY(33q=(LB8<^bLxTT!yjXa0Je2)T+mCr1%sjWH zXjc1-Oe&gmC)xrG0sIJ&SGZ%`(%uo>D}sLdCl-K=MfF@6HvPa0{P7cNOT`wv`R)@0 z2@k+~#SfrBulD)7{4+sqznXfq(^`RUTgro#PYj=_N9<;-n>)9;34uSP{I7+MPOWTY zKBcSUuVd_^a7TMD=>XN*ASPhs_m~_+YF5Py6x8)=^$JA(Oq1o&hIu@{k^mPWun+u4 zKaXLOz;3)ThQWN3sejkXjw zxwgyZ)V{uDZvT5bA_;7JNG@GFkXMLq6B$Yz5rKh*3iF?sts=&oHC_X5y2!V5KErHe z_d56E0x<1E95bk5?RQ;M)Wr^OsAM&)D;KKKjk8v5d zQ7}1RIwMoD$D*a_KuU+Dr1FTZB5yl*{4E2U!$nZK!sNh1Ks5$np1}yYvhYZFoWIUV ziV*~zaeR3HBnB>N-La_q+2LURGH@PxwDMmUD-_!lUjZ*X&DlE?&I(c6t&WD=5VG`T z%27Tz=AsD1oV}itZK&Ggw6pz8;6`@`oPdE3yc?eg0^<`==1ZD9t{#eNSF!a{n#FAb z2$;vJBihvwc=-h$pr{kf6D~VrB9}M5*pG&_d+)LM3l2%=`~f!D&kn%y4K{U zZWCxlAdEkL?yGyF*E$ z0t+TMYg4aHZy^H&7&(2nZBxvex!cjE$psVMz5eITRTVu|2Rgmo50FQoyad%ThJ}W!9a`+YK9-`L zl^_X$${*DvaUvG1EgtWyl;wGeC|{<*65p0#}LK6EZ5f-gSMOc2_J>zR`c8v~n~LoOof!cf#j?k@it;2xaL&TL(sX*oqo=i9 zK0S#Q8ZHG}+_#EYW?|F(jM5+|1_i09aWr}|EY2C-#t zeP>c{HZK|Y)BfX81S>{DM#W~|v$8nhH}_JkPs`zSm4qWKU1>w<&hlg+rH`H0zi;v7bD^~2jA^EXf5sJ58W*|7QkC_KjSfTM8{ zM2_xM#;f8@*ooQHzRmI>4`jMw@;?t6=ok)I^0r_)?I<&mb2#<03e`DeZ%Vi&tW|uL z0c8q)75C|$1M|~a*Xn(=pcBWHGhZxQW;6M#jXSIfg~*4qw6^mlFS8h7BZFeH;mbvD z5PXH!XRXAO)f}|E?fx(}mnN&lk2_4X%2@X)`W}l#1J}4pOoj|%sl?VO;_lzL++m0D z9<{&Y$#4U0f$!%#!I?#22feN78ufi|YC6$kLw+m5B_;~aGmisDH6Zi0(Pfp4fo|F7 zuixFB#M~78hY9swV(yp1JBlxm^yK-q<>t4@t>Gy>5XI3BoMj}m@}jN*ep^K&$uqs2 z!IhE>dcVju{{0#{Oi^4gXqC1j5AXv;c(qJbX(*#20UQ zGQ&?oxN7n)@um8%=k8S5Q$9AAPBsgQM@&)zUMpi%$~Mq~TrIQSJq76Z6Y`grAe?%A zOsP#sk>k?us~b?x9Utm`!@q<+r5lHiDZq-tgAxBJ0p1G?^Ee17&?D;5l=`zk)+kq9 za5ECRBjqA;#DSAUd(VQ<%E0g=fgZb5QXfy4i#0(;v4%-&+Y}6{N{Vzc5S9SmEi?Sb zCk5~(Ga@nEwb2O);7bB@Ye~1(d=d^0Nc+&0{1^&MNHQOy14#D1S8_iDe6ehA@B1}$ z23%N=-^(FEn&wsW`=-qKKBSl1`^$9%c*JHHBu~IXC~@q@RhT7SASEF*gG~v~MxFC6 zsA>Y9+f0Q^8(l!Vfu%5nGg z688<_y@CRDQXy6POw<0)`_n|$>R|ix?j!Ejmn7e1 zY?ijb{95j$U}XC3+zZ6%aJ)31>-Lx5)ofFY<7KV|bAo2^V7f(Zd}K2}3<4xrzApt! zNuQ1rA~j+jcj9}xt1N0?coB1F^vUtjn~&(;;wsCuhBxpF)9b-NWL(c9-ou$6PuHuS zhc^>+pS3!7=0g-Oz%ho(SE26Y**J`)YWdgv#gfFvKg2q1Ei~z0p5Av`m0!5pC9{Hg z3wJ*|s$wOizjt;aec-J@Ck8``{OxScRQjVJX>^&QlXmOmW;#>9bq&HNle(+2I=DCA zD|F+Bg(Ofd70iwULf$BYEtG$`X@l5N9|7{lNLuCk8t~b-z$h6*!ARqUNrZM;V}X>->0=Mi=T7qlNr8{W?-eA=?uB{mn|yrU%d4G>hF*awa0F=o zy7r-&%Yng(-eP5QI?1unr(-tn??Ua^d6Y{gStS1!U2WeY;y|W6z##?Nh^siFi0dsD zc&1FYPr(4~+xaO%(5@KPq%hrB@b32V-`2SRTR^109U(BdcsLa5^v1_dPliJpr=C(p z8=7%vTQ0rJPhDmh@RTAH7psl{tAM^f~4UlmG?=0mr3yF zEQbe44P5gZh3F7@yM@d&zvJ^zygImGVUTSF0M6HX=_pJSR3g!UseXrU zmoq)nCLAo}bju{+d$^5^t-+6*l`1ck*41nIpSwe>%9p>QY+Z-ytD)q%<2K4B=!H;H z*3VXdrk+Q_*?BqX>LM|H&H6>=dGZPSkWwC*5~>*#a=ls6S~>d;^S!);-fxuJ+#Fm~ zV?R=2r&4Vk?U2v@>sa_|*o%jg{1XH48xP2uwrT2S{ZjxEZ%+@Nwk-MJGTvvuxNd@eyzW!smLwFmMd)9%EFnJ+vPKlZ zQMq?^XL|2WsuK9$nLNj8pXLl(^k#tErtbz{Z@(Bs*J?fCMiYiH(l33pOedUu-xz6W z!=lXNHsy`^z@?)H#=Be9z#p#{xbb-pzC?!_NPB+~(5X}sA1We(4UqOWt>`j^ld9t` z?c+X*DBfs3r4kJKamKqK-sm<9b!tlLGBaP^;&uQU&K`ba(IcgfB!4lsWW@XZ$O`gxMF)Tay#Ke?K=2Di@m zNm=h-LUxVzHLt`6&%4Yq$DZinKD1vY3Ri8fjy*`8)@nM>Vts>RxL6{#m!*Z#-j>vw zEJDN&^Gl)(R!7I>=Gw)UhsZBKsd}zJGAw;nv@0Yl?tFek+8rv7%*Ye^XSCSUH*_sq zFhP7THhx1R>JuV-YK}nDl#l(;f>{dO;=av7I9EJQuXbh$ zluMpU?grybPLTxA{TMRA$f?{)E|-=|L0-nI_+_#MBJJa}CmfDvbf549r1wmgn&kAX zqqxCMEnR5Rcg&eZ>;n75+$sOmuPlErOm}~{&4X~|#3+A&$qJT?+|!O^C*EGVB})Bx zrgXolf1X;vStgT9FTW^~vgg8(X9{IkMlJP7=B_#PhWd!MOhMV!XpnT_6e5DZQ47M6 zU0v9z@Fk1;75SmA@S02eL#XGX(yXD(0SU!if)8 z^wk|mM;JmRe}jx-$Vpp-;#0gTXH^H=YjWS3UX!)brQk3-{zmSl+2p@0!xX@MV3n zPe8vbvq;d=V!Q_yjISQ5kw4Y_t_;nrlg_s^um(AS-`u~Gyn4rey8iadpwOHjme;dt z)ra{kTiKF5+qtp^FdS8D9H(V_{3a6i&)6r0UBbD7W3hFL$IwdA+Pg>7+(67dj!MX! z5GV-8dqo8Unq0dX&Xo{G&r27V72uM_{A&ZHvWwMyO&X;v9P;(%N09NUQZ|_wRPuQPd4^m(LL76xiezubaa{e9tnSvV0D~0imV?Gt+%G`(rch zpp8&d`E28DNs#0$Th5MjgaH_w)Po4HsX&LVx^LCi@{|pFvA|4SxMz)Vl@a> zhZixt{$~I_<ljL} zpM=arNG9-cH0_srAqV zm3aar;qCAPFT81v?V4cyG6n@^4SxIeTx7`GLsBU&Hn`e4FfEfk{C(p&g|kZ$W=zQe zXm@_K_+A_Q-&dAOdqBe(JS*@~i;v&MSxX5~dYK0yCtijADxQQ=nzWz7mS--p&1(@v zMkYYbx_?ATw4o?)V9Byp3vcS5VQZi&9m@_9ygj@j1nRjkfCI|_FUMA}DZTd9q2SrN zexC6tBaRgL)l+DB<@b5!5*AnY#Aq-@b~cRn)ljCd;Vk6=p6Hjnb-Op8q+cH3sSf@! zFb$_AGLzV5*nrY$;CRX%9^?m0$YKl3S4XDA>F|9pFk{OZ2rxW87yi?sLQuvUGs$8H z=5!7Hev&}Uls9c@GIHp>5|5jt*ti(Oyv^GUo_YCoD;dsn9Xxkgv8Lw{HpwWqHMfjdn?5u}371Zhh=;TrLlTGe9DCq{~Ii z2Uu~mTz{d&H{1cI7kjz)r4-agRCgdp0E zf0kq8z7pW-ceo+OJu^e|tw{96`T_S|@z`BxX2TaW)`RFrHm8~CP6kxo`FC~k@P_0| z;44n{KOht|;I)r8xC{MJEu&9+d38s-k+z1J1@n-TU&&Q@3@yl$@M%``MpI>Ntv&L% zIwyk-dDy>sGpsXcbQJ1IMQ}>8JN=PZ5{h)54BnilTZD%!d`rEu!hu`^ZkG3W?hf?c zYSaqbDrhS<98ML>WNEjxi+dk=GG_{q_dCG0?H*uivItND&O)6%SHF*aFaz8>Ho;qS z=^@6E`9qoLW9#>2;^#m-1Xa98X&mCxM+-zZ615Tk$a!OP+7qF??qQsg3ZCM7wNvrW z^+S1%wLJb-=*}e=1DTRdM3_`7n_W1^!AeDYDdihnFg1s*;q%Jv9~sPue2;^f^>58sN=UXY0rzk&)K>+VkxciwOj^ zR;eY^N;UeZ{B0@yE}!(~Wwze|Ub6&rcfOD4;`hipDDyNh&`GDJ4kofSE`Wlf6jr=| z!dfrGgwdrO9)0;qeE2C(&kTP zg(CESe3}*PxWEtAv=6-T`}Q%HIXZlU?fcHVN-6=g+*dz>_M5&XWnS{{yEqc0TDsJ( zaoUJC3}C)f3qEkV{P8O~xNd8xk)^@>hJRs;OE^7vDqBU$f%NW!1i=z7&1|u8`mB;U zf8k@j1CdwZo@R~S*q2@g_aZyi-Xr$eq&3l-IiRJ) zJv8x*_TGm%C*~55CbgEIVXV7{-Xor}*Y64arJIk5&!CMzs9e;ZHMG=UM{`C?WzLSL zG`O`wM8B$zm`mPcM7^-tR8PqI=3y6U3tC9j`-`_PA+rI{nQ^(d)^I!Ko5rv+M{(g#a~Gn z*Jn>H;+u>+tXt~5Ij0_F%Eb^13ZGd}`AJN?U<3++jIxo)1nkThq>g)`vm{+&Q&eevY_s}WrarzPL}0k22mCb6+;x6b z>)V$l(udT=e9FRs)h2Mu6Y@nSC|`_O6<#slMeV8Z28@di-{e3=bYYb+RD zqC&^bhcFA?(zf2V!quEojw2}G&p&&8D*C?9qaW?Q4YLAj`oEi~WkTE@^s7H>fzARiob#p45JI2@iuzd`x8${XK1vb}~xE z0wZIRynLq!P|48F7lZymTDM>hx_&NUXR^M0$=f*5s^N6@Zsz2B&(N$)Kqt44rRR{X zuZLQ4cTWSa_`l!aX0u2GeZ_I6)m3!Y>r1-6;|w1@K)}YncZQ!zejRX_68%tnv8dIH zpCA^N0Y%m~QV0M-Q>KN3FJ3q}1KBrSUOuKjh*8Vn>pms|(}5bl$Yk^sLhbR{q#n&Dudw zCR{rSs!p&Ns+B^znmU9yhVfm7L}>W6TY97xr!WbrJ$yFQrc>UjvaCm8(+a#(v?5;R z@Hx-gm2!o*rEmS?#NWebbX+1ML#|z!NFE@gZcY0Ndm0Es?K3D`R$~R{^9d8B#DEh5 z-^l^HyKi&KKF4y{A+MN-Pk6XzQHd2vk2=w~xM~3L# zS`lC-8WUarWOi(gKAQmp@xCA2^*~E>z{jXFE7WV?6F|4GsR(YT2m0cTXrH)|0l6Z& z)JD#z+x$d2Mr=v$(jf?t2V*wyai!nCXgS|@QJV?!FM_0`JkMh}oT|V`m!Mpx=i$-s zL8We?d8GezL@#f~srNk?kqd{Dx03o{>w;mTL=rhI*MWD{W17AR=TEnfQ}hr1l=Z;D znWX{|t|{`q4aU>l(r5KEHy=e9x0EAA3t{DL%{D+POcHuD?>c8y6mYjE**0nso!j+~ za_C|IfHB(U)EcjcP{}vRX`2r}J#y8yro3zWL50r+h#a0+B|nH(;1Imv=7Ot*KK*h^ zgM<6#kNhr1+)RiESITv_k@tffOkvYCf6Fk4Y%#hi72C{H6sHHt9>7z4!50G%##SJTxyZr3!h8^>xP(9}M&d1{YZ2HH2 zJP_og*@`lKm9((ynrGJzMl_w7@F%_v>HdUYUJ?e2hRx z_cv?_)?hDU?08T<%rYS9^YLifZf3m_XUtj1lAw`VR`NRAf)*VtL94#c%7~ag4 z4f}(oW_Z8lf5yOexzzZ((Yd0Ihck2mSmI9@RP6ZH{hdJRJmI#`@{YF@_w9o62w)DpW3GsG{z+1F zbD!b912R(%={qU07H9jkYSC3EvCb5&5GW$}xRqc^*o}SN+Po9eu-6&rP*`XNG?ngu z)z6V>DohOWXq?^yjuyRerrv6&jwMD&@fBlF(??ow4VR7i-zH8n<=+~Oui8KsSR+wQ zWOf3FD?xOl23Osnj2x2JMO2gZ%grV11Xdl}l7%-&zm8)j=8NV#geTX7gU#9w2;Q4T zW+ME>d$dEc7wHTQCJQeBw_hnr&u-bK5AlCoVB(F?v8xrk4mkTUn~eNEA6Tr|LM{3~ zT)QtA+a-TZ7s9xZadw#uEp5^BEgoZTqchjK93inh?Y{qlh~8)O znWv`3+;L8E0>=%aLsQT?N2{e4)@~dU;cjLF{H~6HuBzT6qtsj0Cb3no@tqE$_ZX9o~iel7F=99P4S3oCR}F zC+W--=Z%nkqdVYpp~z8MkhNoO+gz03zn?K(b=gvtmfQ88jFfPVf-;Nm9}%)KUMGwe zvIAtz=GS?kj3I;Ze>~&{gzT}^J*uC4L+a5t8&48u19FCNLt>c>L;K66fz?CeH}nyw z$-PiOQf2`5DlshI=*Zi9b>EKGe-CQYB-yrCA)K^be zXBr%MTR-zfo80IEpTs$@o;S2%Qz84;^M9wS3`c1K%5#_AoyOB=|5>o`PUgO!F)8wm z+pHuZBpO@bav&3YlhTUQwf$PL&S@=SVErLn<||R;$B1P<4Crw1%_INEpB*jVVT6uf z2LxFC6s%!zDvYMYZQ=Q~&Uq8|3s8}+8ZDs;oL?Q4rHDis5+{k4Hm$$-w?(IFK0f(D zYrNDHK>lPTHCV8>11AkRi}#2(s~JI`xdjTH#y{{_-U@ZW`1K{H)$~5hM!AsmUSg** z{~1k0vQyn|Mh`Hrfl>LUf4uYIml|dl#tO#XmIZ}}lJe5RuKWH)j-(x2S zXbOjB5_UIIS0^Ci0yHH{xVg3qJXe8h8RR;KhttHFq%|i0fCXR$-L9f9j~!MuUUa4u z$_f=(FYv|sR9a-wlaF}WW+pdW7ryxh<082S~hz-Ow^^9Bw)`M^tf54>W@{BZE# zmy~Ecf#xNcnYzA=?_BfiwMLwO#6&pgsEHFe&aELi0x!!X&0gV+JQW-BpZx;Jlyq^` zt&#!bBX9e0NKG0-q{CM|CI-tl+6=oXgxPWs>xEs7r-K0SB-9!R{ObOl1}KRcP0skO z+f($*+FRk|-LI;$jwyR0py4MqJ@2E3q6+noJ_7gEz5)g?$1(RkdpvQnryd`cU%%p= zqvopKsduqDxV^Igke```ry!`L+sBm>TLA=8PoDrvoVJN^d^em~Y*%7dm0SuXDAw>d zQi$9~_X(~+!-bkQP~`jb@#tvIEF}jUd3X0N{TX2UZ^b8safIMG z5#6(h@F-tW*uc|c9y+hb{CBUTB8esH>D^vEAk=Rq{z zOkONw~L%{v7ZVog8GuVUBp!;zL$(ZjjJ^a9ZeSaR;a_wRk6 z%CPM<3oCw8f%~`M0bOAqy*F=d-NAskdKx3a{_)WA7wq+}kBdh$b?q52eL4F`X!E<9 z`1*FX0HzQ~m%UHogw zYyDi{>s@BUx_i@2^N3HQng^O2lt%#?Cr_nsUpU1hfA97Tx-ey=WcJLR%VIU7d11wW z?k|qFhW6j0sVqJHSV;kV@#81Nw@CrjMTmCCqs=9BJVB<%i!M+G<+kXHi3iko)m-^b z6Hgj9gn?h5XFcmT={46G6?g1^L7@$ouIWv<%$W+VnFit%Ox02TGt(oBTE@u|bgOVt zxcoDZ0lw5r`_-;1O5?3s$cN@X`?b=gt+^|Y{(UpLB*jo|rnQ>q3vjRrVdFLrXG!R| ziz;X{PD)$zxV{~Kx6mN=HWC?zmKiZFY)X|d2|}9?tdv)!O+_5t2^ka2zClWfw{{`L zw*?zqV!W$OOE_a!VA}o7tkBNNm9qn+7iZXbxu5*HtwCodV3x7mkOfXof1n*3@lsgqFOrGajM0oupE$>gDunMAgR|DH&(DqMah+!cxwj5O2%TOu-h=^K- zK|7i1Nl~zW*Uari3%h^H0trn{-FGalC*ey}Q+mFkf_;PZT^y64E>}_8Yr_%)YB{u~ zXMRp+6SqZD$q$I}D_g%T#D<06?y@ZiRq=y;aE3;^hDliY*$&fc{8GoSHOrGmO{nG| z-(70Di{c-{3J!h=*tQf_W2N;LzNemK$V)Fha7j#i`i_%XWLIy56$f%GA~TE zf=DQ#K7%|)Izb-#w?iM>2mgxu3&hP!Z9T&Ec_cUWU)iejyfZo=$r99M-+Md;OrI`i zIe$up26ryZV!6oL(987K)CX3_(lJezbMyV1z;h4&wc8#PUGeqOtYn=^X4K9>4yY4?m} zQ8^p$3Fytf+W0;CQI86etD#5r^kclh34ET(7v!Qz6>rdcFM#5 zcCMyj1|-ck{&rB=YnssBT~LL8vtpMXd;h>l-XnfWhVtQzO2F{E?6!E_XHpe$966xO zn(>EAX-87>5J2~1?F)jhyV14EiQH$n^A-2zB>U$l;$@TZAF|-9cQ~ocYh$(xv3@$$ zZ9?BSjW(xm5|8_s?6LN@K{==Li?pVE0jk_#p~V`Al_$UBMt^=mJ>h!%8m52<{AKt0 zAm6ZhU4}R2ii`GTzkK17$fSl6Scqg~1N6~0N!UcptN=h0iU3%r8jj=zFLY&Zi0kqQ zaDtNIB&MVqt^G9S-zb7~Ngl>J7Tg|nm!Ozf^oO^RQ6)iZaOf6a6g zZqcsZ2i~$;>oMOgp(@6!b#Hl}WEY@b7Ip>3NjR@juleIEz|~;;>-Uek@AB<_raSUcvY)nyayZO$=gSoOG0oH? z7S>JO>=hqq*Xa&k*Ct+=CMZ!@OcLs{e9B{@f9cZNL{`ATMyk`Gv7=3)gKNW`?W*+ zJvOD55=e9AeSZ!fqeOWMuUpBqE#7fRM)veL^1}w3+QQCb6<&*K*`>?u9)-uL8X>Rp z-r~QqshV?!Z3g0ci;-e{U8~+#Q?Ea0uqpXiPT)kfPS2xF?vu813uNl=@G+g&XGrRv zZ%rMjkPH^?sApH^jw2NgrAPI6ovF%?A{B^nub)kGn!LU}IbjzoXV9VEMkpZ#U`hZl zwxqFwhKOzOAlEXIh$eoxO1|U$aBoSKRE3JHDNQh0(05!>du>Ou{AE#V<`UPv_q2 zTBbXlU>$k6qi)~*4L8hCfmh};sl$8zAPqzpgWh64y*-&F>e7OJVcQFH|2J=J@BDNh z|IMw`{Bz?j`yXGb2B;@f7faX2w46WHqBBsw8wMA?(EajKTniiG*yQ|ndixh7cQLhY zeoXH(N&>cKSO{udX$pyr{dO2PdUgW-&?!@9!@>&E*}+}oRaSnxoq?XNlWRo>0u)W#q{Jeu456Egnulcx{sr!e(;FP zM9Utn!(O6B#tu{7xCR zTeQE8Y1Y0DefD27Ibk*^UVPVbwO_h~&|?45oJH?iY-{Inn8_0Xd;YL9>b;{>|1#TQ ze1Dz$%f3%Xm<3)y)4+L0CS+g!_5B5{Ey(-2B6CfZ_xl#bpC;{nQTBO>>&jm42bSWs z)nfRCg>Bt?{tgE9ZIF!XozF(~ZC?7^&-nt0e?QFgl=8!NN#>Yo6fH1u(m4B0)(Aa3 zF41^V{m<}ff4AlULn9i_@XtL0tLw~-$o)iQ1?ItlF?6%dd^|Q?*M4U9 zF@o5p#cTmf)eOg>gWDHr23Su~J3abTDMGQ($-~_2OP?LbB{~#A9xe2bt8kx_9j9H> z^}j#Tk|lO5eDwAvVzjgLJmVdNH|jI)r7zhXjG_d!mD3V$xL<8cig&XlnJv9W1&BiV zQl%$pkrz6|tVjL%KEc-*+{EQqeuU4IH%Jb?tpwe7$F5MnWAP0n7@r8tZ0B6iSB5L* z--TzLeHPZ%d37l2E_ZgHDSM2YuMbs0ru=aAFu{&QGu|VL+5&m#%D#Vo?c0!h;j_xN7RB(!7=vlXL#C^ZJq8mCpX#}1Yx@Ljr}c$UxkDlHi=ZP+I`B-63~ z#D%|{tWCk4WbDznb+#zqo`1N`#f8!~#m-_K6W8)v^9M@Q`t03}diwmiai8`E|0>PF zFk~1jLfh@1e^0)`GO<~j6F*J`Yn#b8d$wz4U5mR42BN3>eco;A>TXlVF`d<@PY3U6 zLW?SN=821;`Vn9_k#Ov(|q%oxlhlBmi{HOQ)}{{R$Y>7^5Vd*G&lDB8OPS8dL`44 zv5biG?oi!|N}RFoAx?{^kYlThjdBNfgvr1*-{FjJ277K!Ka6q}sK_nRopX2JQ)8f_ zyn#NrvyS)vVJ~|6L7g@<-VA>7%_BgG`8pe>4#z3=B`0su&&fyDMu*FwLt78*nV4Je zxK7O6mN_B!#~@$ni7icDaJ|g9XWVGjVQK!1=7H}5n zHrF}Eq!%Vt&-g@h+46-!-Ib`BBpyzGnI@BO$zwz_J=im?A3C`N3*$#!^|6M;%o_71c^>c$DTBnPJO9lS; z8~2B&y;20SuCeD`EJI#+tbhO2i5L9Uqv5yhRXR-+a91&UW&_|xRJD{S!ybir$UL8U zP6-i)JcV$~wz1FfwUuBeVKf9=@}Cn`31nK>EVl$jTusw;d-lM-s92vLH>GTrJv+&s z0+#N{8VWzSgeCWb50XT35@q5OwyvMwMIP2Xz0q=VGZ?Jbt(^8$*(NftpZEE>4Ym3u zUS2)nNEy$*pCrUB|MIfluBT5Xu|cf-TvUbEX>qA}>{MltOIZBpr#M#wd#^3g!;Ah8 zaHk?=xnD1Ym0Y?O3c2Ubl&f~0u!e@6CNwB&vkN0W+*RC;uM>%Kg@&=#38a<3mm8d9 z_-FpYGc8-J5U;HNZoGv3tY54=DzseCrb~43bMeG%A${Y>&r_$1i@;|dvca8^YiJ?) zCl5uR4jtCeFC_m=yq0t4rS212&9T=WJgi|C4ss=uW{voUYDpk4lnS31bXR=xV(?JN zSNZcsRCQg0uHc>p+e7h{_u9JRuOe@@$})xH$iH)$WC>%H&`Dx^vGF~x}08Fg=kGZFtLi7}Y*ex3$-1o4w^Xl38^HG_0gb;`1m*FV4`)>B; zaS1G+R9(=B|1EVfm%GJQ+RtEEy@+ntzz{DuU#eiJa-{*u*7oGnIco=a?4GVetls0F z%*U2f6CY=%?Q$u(9NS|XPP|O;@=ZQH945CVnTQ@I%m-X3OQ|?-uT1COW9lLl49OZ_ zJpvQA3y)pW3I`Qxk4MpzQE|qG{fc|LG56f2mjUU1YEv$xGlX1IOc%$L!zx!G9lh*0jo~eaI?)rS#=Lq0$cc zogN}4Z*mWle7^?RPP!AxKL**|e|@j7?eSKadL;=}WViqC+8{*>t(E^yznAHkwnS3+ zaK(yMyWfJ#`k9iL9SBYoEn6O2lDo++cnr8ub5R$QC^JgkzwY}V09`<$zc6~#S+I9E z50^?_Eju)V{{fU?8lqKQW3%8XR0>=I+|R|S? zq>7+IKvFf4*M1u_nYD$C1dJ?6A3@bx*S0pk`{#q&w`r_;W}y-EpKHuCLK=}qta(+q zBuEKxCy?K2pXM@0j$fWGr+UJb*9d_#pv`b)m}a^QO#;>c4o?vH%lfi@xwY3ujfGY0 z;>eUlH4-+IkMcF-e8-TYOIcXsn9zTEARmH9w;9eb;>ZM z&w`^Ul{D~i370q({r%;;o5zv3q&=5UGDs!bpnqWcTp&(WuP7U{68Qm81&&p$;*$1h zudz1Rrr#y~KDDo7a&bd1j9viGaAj5&yoKyU>j97j4Wl`=KsTuNazd@W=` zR{LkTGhJqNp;wqDNC-$5JQ&&DPFxF@ICA4$c3(f~TW!={8%tgfOcXK(`bX+V>c-23 zZXuiL5$FpYMz+B;^xKbZno~*bd;R%AUuvI*e){>((D=ag00_q_2&?M!VT>~COhJ@}o?J4uB`kct3zrl()?!Wdh~R+tyC3TQvqsK2aS>!fXM zx6YR{2e zYddNG`nUFdjLRMly&#oK2qSZ#qiP?RM)+dSbQ-bdt$A0N8Jrl<0#HZ2zpOB>#pR7_ zT^qG;<69elKS+B|2>Q_I;)X^7+!tHOYJ(Jvai+i6HSdeff|tl-dBKCxeI#nA);GQJ z4aQ}XQ@Pg0weQnTw(@du!4?Tv5cWq3b=JHzVhmOKGyOzMM2r-RF-7}R?X|7-?Zm10 zxz+~L#y`LOR{L)`5(NcPg9C|}9=wUQj z^1%CR>=|zQG@{JfLWZJLzJ?D1ABiCS>AN4}$doMFAQk8_uw+&i%mJn!Llr~yV!P02 z&fp}HK39KP#RowTKKP_3z5erK+GE$sEA+aAFKYz42MS0=oiN518_g(65$Flz%i2ex zXp8np9QBbHIs+;qCc`9Tb!0zBYW-s@7FJ76mh*FY=%6_PkoK|K-yM?*h=EnXc;jVc zW@JVqnjk~834pY%@r~z)ao$nqP_8h6WDZ;iNCmVL$QbkM%7@25`F0!ZN2J4tw$W|1NRn2>T1Gv9QT~R#n zsQb(MvTi5RyY1$gXs~4g$^-krCt47YDsULxwZ4CEj_5+*4}esSfdwNwY2$C+#!*lP z?3#Co-XJBzq{2mkn*kk9B%@0R1HdLd1pZpr8_dJ*%R1%_Qbo=UQZw8PP6+7G3uA$u z*YMGZMrJ;+jhP8@0SvaZp38EBUBC*$vLK96hAD+gmZB~4&bx%6cLA(}g)y2Q0WJjI z#n+EZUMe(J;3`}C;4Rsar(eT&K@X}ngHl?i7#u<7rF~gG#Q)jkl36)VP?27K# zb&^t9vCLe;&^xZYR&)yMr7~)NSTFUm!pK-=Dqu>^f08m;oi@#p4}nAAFftc+<@MV1 zkA17~1h&8y_%Y_o8X8-+%F4qZw*9nqPqLTtFbYONp`hFp_9WG&o4(CY|14kc4_IYqGHx)w>Ea6od#M%OvOy1{xt6$DH{C?1Y2N?BNFs4w`9dce4|46fgbtXsj><27)b+XOk zB_|42S%EDBHU+NC$^!>sd!Tf%s_y*eX)HW)-jXwajCsM+PXac>wK2p0X&Zg5brqL9 z+atXMDGRQH4Z;dp)x0K^%b&(NUu|(-6#Osig%09;u~$?OmPR#@}F zd-jSBjU$ml)~~|V17&2^1C;}$5yBWZzVUD4pGYDBJFG1y|u>!8?E#dIZ(Q zpEnP?JhK(O0PesvM6W2B6-7ycbi)~*zI5~W=31T*Y(=1L%#Q3LXArgribl-fq(G*S zVPr3>>*KPDqAZS_K#GVB(fd_RibYUg*0Hlt5|x)yfvpg&4pu~L!ztPSS@5G$PZu!bUSgme;i3Nrex4V;QDEVMrJ^A0qx7$ zxr|lqYw>qn6%eG7B>;jk4$(1GHE;SQtpev-B&v~EK-)rwW(!abCD?jdM<3T4j3Zv~ zNWgsH7h7gMKgJyO4K{w7b{Pc~8YPrO#5PC)$uBkun1{{;vUBQ*=aRDlY-1LL%>kMq zMf+iDe$5eCPSM_QzSuyr4%P(O0Cu_mDMx0M3Ihv8X@rOQkyHr-Az5uo{V?i9N7^)O%h&BV-M;$-tT@5wSAk|DC@sVPi z*7}#Zc}2UppNj(b#w&d^W1tbxpNoWj3?*r-4>%G#fHPbc)WN2&!j-|Pq*2H( ztM)PUH_I7%FLV_y7FbKsR1R&ix}k z0d_yJ>ZMBLAnXixrf)dEEZY4^olIpFdOLuq6Ge#x>;cdOvWMQso966(+D;nlvC2X> zcDdhUjfGv>e~&vEE^#^b?(ZFIzil6rj2n%AJGJk&>HafqIf<$>x%{`XW7@Ahol@v&!jGF08Hs*dS2(IqdpGdre|69s2*MYGIY+{YbLmp6`r@=_|Rl~>Dt zU;?RHHp`ikJ)9o}g@Q|7rpKPWS@D0^{3lHPIC~_!3GIN)gmA2Rv|ztl@*v`qS-nl8EeSn!f2q11Wi`uFcWy5F|$cjj+*O@Dtn zo?oUMk!xvP{<-(3jomYI$KF%&IKoVq&?RJ}>74i5Qso?R z)5}jeiHak6p2>2l6}f0@j>y^DiRFA*Ki33O#U-9MD{k2%QGqNXRw8$Pv#KnYhh4%0 zQXDHF8Aw*O?y31CwE}@#&>lJ%=pyG3*U7P~q^3f&D@+y?vhsmdd~82wo9K*UIeU02 zX(q@ND(Z^%1d;(Qg}NixnCY7r>D;`t7AFtG5m^u`~g3QrfX_H*F6&;ZyR%2D@h70?G(^@{;Uaf4~SZ}f^X zG9v+FKx^$kOI|A)^bnA8fJSCB9nIwz(1H)6wceR2)CjZyJH`yX+RodvK?kHV>yMNS z(}|V?ophtmH@yyE0IH}t*B(C##<6mtM|@hexeQBt$vI{mD;iP}!vj>&>X zQNpnriK5MsJSBgw3HFLAkrl{btK-rM)V`Kv!#9=-^l#+3CwLsc6#*hmDatQ5$q9-<*|(bgSTQB)h><2AN{?s21MeB;`CcFD_2h2ECUGE-UU%raYfsem7lbIws87Ho+zwI}3=B&s(w zvOa8n@LyJ!Foi|IC9jm9R|n(OD4|Xud5EsDJ=n#O*hQi; z(FmbBR1j7N`}=$B>ip*_pcN5oA;YoykqW~4z&%bW?>y)?Z{_u6(pNCbFagOv zunrb=dR^NsTYzn3_G0VJLs1s|N2&wUiI&(FkanmB@>SEo3TOWQl?Gxb!itw=kMRIn#@rrsttUL9}aaL zN$P<~LMcSMBYWte*maU0m^^f5xD|{eQR}S@<_SYD0d5N!j4_5vX8m&L-L!`GXd#|vEv7B_1?fhf3T ze>o+i;61`-7IXkA_z_eH+$CIjdH4f*W+bYueS3A1!dOD-Wp#1;>D2xMrciKevU=6| zW$%30absti%T(`9_P)D0dH38y36!aU2^V@YoFiK)g>>GO0-p0uh=^?^v+ha z%G#(3MiyhPR@Lp>>2t-HDwbKAzV?yfmqRbh>7_nw`R7Rr1?Nrgu2BDiLy?k{6e;QM_D6SjcXzXUx%avM&p$Ko%rocxzUQ1zhy}R_uprarzi5>8!{$6B zXyi{K_WeBs&U_$BjMdRCg5(g2pg`VcbA8<@;bEQzfB$sX`G}7b$%_R~1x+#)b#AtD zI$pvbrGGx&-hD5gJTnlUDN-KM?>gJlI1c(sE_~6E#{Ir zeAVBa@l*|(kL?lPui*#cPu3}%7+v9+Wk`YGzujL!$x>fge_Z>Q(zbF-YFidUmBPb9 zFDCZCtO<5j4!OA8{k@xZSx||Ozf;#v&MDRQ927{NJLr-iv&yfaNN=K_h@5898@Xe= zFte$tjBL{N3ozKQJ+SiO8Zk@C=Jk&MbmX1v`=sMGH6fQC`|GMnw&Td9K#vMM9YQkM+%*Kl4A7R z8&~+n$Ax9jq8LOAV|}LM-+?Ycg&sOlA;NHKzR4X&SzIPe=dcv;xWK0NM03>+%e83` zFGkOhuAaomr}xCxgr-<@Qb7)1x+FRJlq)$c$_qVwjBpgO_i-5m$GTV5a-ge>tpxB0 zUcsZW0jn7ks0Kmwd4#!}@R5a7 zLg4rOw){_Wo=#4i^tBg5h5RsEeak-9(rkwc)TN$dvkU81EBR}H7eV`M1+>DyHe^!; z4M=MLghZQ|lMRoCadF>^#QaDOBHVfh&W7twR$JqYF&un%e4i;e<9@6SPuXxIdb7v- zGPDBnw>zmBHwJKHtp93Wp2E`!QHMroH)Az@{DW?`7Jd|LBPhkN(D%p)*~b~2M>_aB zcXb41__L5#h%G5vh{I{?vp*z8zXnYov=byQd+e#HTQ1A?sy&aEOd9$gyw+4(IL1`3 zRK}LPt%epNQ(ehyp8ho>pL*2ccY=LktBovAc1?q#cidjbzXfgH>KPhr44KR%ThL08 z9>gDHODxyD)1)cu`{Xu5>?r%8_ucv7RxT~^)<$SvLDk>ErBvLt@yQVJmi2uC`OhDn ze)PjiO(S0xSC#X=ye@IuW?Si6+EpGJgn1f&Ayx#tVp4&dJU7i2Sf*dMvUF5R?J9(S z8Q%@TT0)Ai7I=6pKTn2erpI#LMew?P{?TX_Yt6HaXMiCl1*S3Y{zFBJlJ(lZcfUO&Q^St6gx$#icVEDsc>^2UiQ&^2Al}S$2H= zVADTr?P(I+dgUrDF6MU+v{P6aP~=)RwHauRn%mDtNA#;ycE_C4_awf5+%2rP`i$r- z`cfoe)NQ8jFn{{}&augZbsroX6-THU{3fUm!?~lUN+SMka8LL5?r)E(;E@~c7VPDy z5aYo3BE!)7;WK*a{HO9QX-*XBG?fd%g>sbCG*!blYRPm4uo^pskI{>ghj^?@)rEeC|_`^cYo{wJlwc($5xq)@Qh-KL|wpTNRmhKGGOOAGi z!h+D0{6O-gO9ksRLJN{Z&#^m>{KkmObbttOd0S*drU(9kj91&G%}wR-7g;^?d;e3+ zdGP0-169ayr!wSmo}k3I|3sDL?c*6mCRUzB|e$y8b%as34h+kf%%WXhzj0&10@ z3`6XCbBhPxWM17f5K;yA<4Y$m#m-eBUUeqd;~*nBF!F;qwQNvd{eGyV)V0nJ%{8e(0Dlkl3&(cH&8OsOUY?@?XGj!>C53f3?9{D!)Wj?^Z_} zj;Au@25k;GON-AVgG%c`Q83`AFTm)&e=G;FnDuL6?i(CL_g$25c>?tNR32YWxNR4N zrkcB_J_55ZvBw?5xkpTrv;P6DW33#MNL?0^2D65jwJ4}7s&>&cOS!S<)J zHT4i?75C*t)BFOxexP)QX72HN7;rbcK%)Ain|(m5Cr_l#%=~ZT{81(OU@a6#WNpEv z^aTL#LBA6qV=2-2r=aljBr3_ly^DjcNGbuZEcUGi1*v%{3czv$LJiOqn3hJ0>lbF- zyD0aR>fnvNtQJQ@{SYHB`jURoUd2F_QI4;d?A$lgaa)jjI`U(!2I01Sv|v7=Pe+o+ zOM%$%t`qN{%{M+WL$pKSK~v5TAGK^epVs*ODQ);vVMCAjN4j2KvCx)IPC^^h4fj0n=`|!Yj0yt9}xv7{oKP) z43wxuB^jsZyi?kD{i`Gqu4xta{O3ilueomsaP21sWU@4(92j+EKG%% zF;Dtp3`eM9dN3GpNqYfU>>Pg|{sYoV;jrSlnZxqL+Ln|svVApk@JW~HewpTTX{7Nt z*8|B_(cQNz&?M9CbfE%Rii#R>_=X_HLH{*}Pe^@3Dl;L~FLqL3m+&%r4P!mnuAq{+ z*twLdxoIVfXt$aFVv)2hxRy7Tb-Y1q33l*B0^#K;p*E0e^l%V{PVjKGvpF-w6?w>L z!#TBLoC?qi$w17Q+@_n~94K=Uew}{aWa0i9?;K=A0GtW^e%dB~;Q$+2h5e3jW0H;h zN)KF|zQ4BhJ-%BANcFnb2O$%=TD=AOD1p{O>%V+IPRO66Zd<94EHZeSq9I3!>i;re zFc!m04SSBWzOVsH0!u$*(Y^n?VVT)lg^p*5W1rq?=BU1auH#l0<#GES2dEBM|BRkS z*(Af)LC|am=sRrw}WqUubmyhuK(pQ(30;*@O1RLE;c_=(j`7v!xHwPy2t*)`*{M| z?C0M?02qdTKgC9$OD|pQGd}_)DaLwDQNF212nFHHUB3Zjx*$23lfLzT)~}_S4QWdf z!-Bkc)watf&hAgVX2z1k@u%?An_D*+J&AGHJj1jf5yU!-zJu~@sO*wGqNyXZmhZ`4Z#}OUx87#UFAI)|SY;T{ z%nf~z1h(r(HxqFi(RO!jKP6j@M6#i`BdGg?wPC6-9NyQZH+DN0<2y$yVhS zmzinSJ-H%i;irwIFLDgb}v(}6O!RtONK3p;aiRF;v)rsy5tb*S%Lf!nXkF^1**XjP zim~^(!I@hSg3r3iZZXjg+mafTgl$@r0O5M zBpt+mP|Vtqf3GAJ?iFOMbS5sGqdujepPjVYqZ>sPzT-W7{V!8a@<`^O%+z*x(P`eU z@qSCtQngNdjeE+0@f78wCcbpj)t9v%N9Y~;h3NN(3w^QANUQs7Y|#(Kt_64B41IZj z7+f#US*U!^J7IZcUP!`WXq~;@ir#DLOf8jqx7)lh3BST~oLAx<*U~5$ltd>@I50}l zG0i|R0t^jD^E}WCvgdQpc|tm}Is2C5)m28L`+Vj)rfIep&k9l>Dgx{*)dtDI7afPB zG*jo~(lhj$?uvQ!ckzMZjXhQ+Z{Ku#t^0+e1w8y0bsC`cV2}&Y2X{<;xacT|y!U|J ziBq877;mlw-FQZRI=qtb1lJUG>vv#w*<;u3hTCKng6o>nqoj}vRztDlY?zhzFndsj z$NXX6g3k)={ca577Yv2PP5#ddbI+lN&QiMApmUBX0^+$}`Cig%q*Tkp9D>{y0WgMn zOxATI>IzXc!gP4ZOLs02T3Ti+Cb!)6?AL0;3CHn;!1+9}4l9@a)GM?3>SZr|(d*ZD zS9Q{UYm)5IZ{`H-(JOGGq;WTO&NmF^`MmqOZ%i_LOyVMG7IZ8lY66-ms1fqEFO;4;Vn6VR)U72Vdd}7K?pD)ECRwVwu!amkF=_Hzro28sY}t-z-fLqE zYvO{zFb}MUdQ7XBbw^?1k(Ol+eRy86AI{Us#Ko?woDDH6nF;*4e^>gS%_It*D^YBq16(9R8&7Asej^y@q+iy=8^2dH$kALteYEO}X666CRv1CP~%mfcMtwdZ>81)#MYo|*cf zWl|amKula@lmB5J{S0kJIQ#6E8~Wq#};$Dw7@({Z| z=USE0JlDV%~l&~!S)S%v2{Lf;`lV;rRPejy!gdsePqd2^n4fQk)G$4|> z#jCWGX#r3}=(Fp?hLxy+H0pE?Gdv&EvA{7nBaII(4wUj_1cC%ufc%H62GNN(6Cvpc z)_#@m4kU)*KVy}=wj;~;;;aem*?~h0dLO^;)F{#CG4+Q zvl71>2vGsgB2aoykZ~Uhyb*&RaV}o;K`CjSl)xE6`!}AAMxTLoZc(Q3Z~aSgHvv+s z6+*`i{iIbGJ+}%Cv8Q-!7Cr5fSvKn10()3s>y^4c6C zE3mf39t>An%$o`V?@I4~tl}JY!_B#hY+rX{N4unbg6Y+db z`G4y&hSVooTw@gWiI}(ELj9@9Y$2=*!7I2#p@?kc5FK#bqpNFVmSA&leeOnz@i+nj zqmke5&YVnnaK^W`M}^XfTRhq^Ee>|x4lCoq0QUh~v5!&$zss zmBU~{C*-blwbU7tSbpr7cycfJ5=&W!Uv4mwTB(Gcwfa`K+K~Dpl2F5zw8fu6kQ@@cNhV1>Q@8Bi}xch7J3@2Id6 z;br3d=cfM1qO&GMuSa49VY4+o?jpW9qs2qw-*tSRZgdOo5#7?BEyo}+sE)bv^OpPx zEv}0Y20q_8!en2)Feoeui5xIy5m7Xg-oJzn7k$W1Ad{`#E|+n?9yu}o+$jI3sG+c~ zry2T;^@M2oK(GT^OB7T-!|mZ$0+w}Yv)b+tX;D4%piVJ{!ePyHMFb<%U0T-$++Y=S zkMh}Cay8CP=Ez`F+eLJ9SrnJINk956ENb6@Rb}kFV<*;Sk&<7ItH!!@A?OC87bR+wf`_Q%f8EE?38D{|L?b@bCfhb~52<)dS8&jvF70Xh%)47)_ zBmW{Y>a-q;4Hj)|j+UH*KQU~@27PS6HmgSunOi?Udi!yu=H11Tsk=%EKo4KYX)hIAr?~?=YoX8kvw7Ic~(%T%1$xt0@6#Tg9&EYOS{yb6A zt4@ohlA+6VjUZZWapE_+ykR;v&;I4M>|`17Zzr%acE#4@53TR)hA)AR+;vg9PQ+x$ zF0}YbOGHfr3M1PtO{;l$pvLX0ZFTWXY4T*dsT%)FcwIcoA|+fKpyEIi9TMyQ6FY6Q z_U?hzc0)BHQzfp?g;2~>=;idi#^cXaKUzLkr8GsV5cYng#P8H`6T0O#5%Jxn;*X)F zfHf8`NomB_4~2af+5)x00PQpVF;!SoA9V{VI{V^&B|m^q(Siv2GIGF&`*<{*#m=_!sng7R z6O$4dF#VB7K)D;a50mF>*BAa>saf(DBl34LCO`HUfhb9lb>hN+7fu+M%>q$xf4F^H z^i5gD55`aL{`pqheFz_zYPgUPlJEez**YIM4-j{8(hc{cZj`-+`OvPtH6fqaS|7+~ z4_k!L-wuNJngFWhOR?trj9>S}?FRpKh>02qSjgt;Q3f}Zs+x()CtdziI^7)j_qNib z?dalzAfCiOTO{>}rM>$0yQ^u%#v=SJV*qhOBf^?w0ji#yam8J|en z4HvnZ|Ec$VT?1{Rq8K-;@;j2bs^LoJF2Wj8DXS~nf)dF)Cs#nCHU=9`;JLUmB)@g= z0OJ}K2r}1i!_aH@UC3o;IYOn<| zh}ZMyH7g#jFw_`_C{H$JXapt))$}2_$)%jOUU1r<+RW$L~ z%YV{#?pp*H$j%?UgzG2YN#*XSKgxr<(421jD;SanyX$hVT%;c|>Ch3sIEnt~CetlD z`{#DkAoq=j<0607F5&;>-3LOuz24gA;)GpdV<>b_ysqvpv>Cm*?{yJ*nFYcVeI;TN zljPNz!@7EDzdY$DsX{L3xx7d0?pB1i@f|Pqe_mGhC_De543vR6( z;W_u}`)_=epS}&H+p1xH)%PVrKi#()ccYEn6>{B$m?2G;`2@Mg*qA(vw2!ynM(Koq z8~h$LZGpC?4RkcxVyfgWWREAjZ8p=6>Q)z)CI+71g`peX(X>)aX5$$m+=@#+5xRT1 z`f0JFv2NE}&6{wQ&P2Sb3Gz<-(pT5NKFN2wm&wD7uXt5k>V_dv3UwZ&Q%jQD$LXK1bjbekiH1&`%}>K|Gy!ZWL6 ze(-Ix`H=$#XZp#cn@+5yJ|K&$YuBw*PUs!Vut|EXp7 z$8g74$2*k9*@=1HwR6t}P?;pLMgUk=1k_l?4uu##A5dq?D9Q!dJcy6cW3-yO^%1*c zEQ=I+h}XQ(wUIjiTwpcGTkUvb2h@{!NYH%))0+ZnIVl{aH<3bL$8O{f*S}}MT6}lc z*4url7Q$Lez-@NzXvC~kznv&JI7F;hGF|@Kidk{$t6q=;NC} zHWj=Guoo*VE*-C}{Isbf-gLM6ao*VHe#Y?b;|m8$^}@7uCvHeHWmRg7h;j;uJUy^o z_W@_&codsl(!8v4>enrPPG_1HqgLF@2;-FWhGxf^0_Gs1cBFlr%p)5b@65^@zBtvUi%+IronH}E1I)Ci0emyB{mQj+Wec= zM%ubl_xGvfu4^0f6|IQE-l>$2`|zvO`H52xbh>oq;*1f^>|j(-^vFy*q&a3r9YQGn zQuMoI(EXM_K#1_Wg3>Zg0?yyd=#El8elYYmhgxB$Y zhz0-ES$2RG&&0EKyxw$b{S-=XUr_fgT!pnqAev*Z+(x$TgC${13OO7hBiu<3TU$P} z$<_2sa+8i;@h&AmmAVG26|afI&-!>;eFR`1#zLCuA44E1Pi9F)N_+Egr9<2h)#J&t zQc0dq0R5S-187N)W73Ze4j9GJ5@vB(AA}eq2q$lRXP>4)<8N2RZU_IC*EtV{%cfz< z*E?xAOPnwBc8q)tCQ8QpcQkYQTn9Pnrb>LSh`?V*EcfoEml=z&Udg}j6dl1|sZDx} zBN74|UH$bug+7sKNN9p^ranZPg08%e_dei4ae&tCaBt8M z*_G6~lU)i?th!CgIrZ>&=P=oSxYEn!K`>mJdo8gtCBAE%t;Lzf?M3LbI}kRMahZ7C zgc0=!QY}KfjTm|0&UxR7cNjSFM^Ee-(gt{@sq&_4FUW z=OVh2AuCY<)*TM%gax2q_T>MAb@KVS1;H8hnb&I+47UMhI?oZSVLjOw`5kA?L z_g;=hM3IYm4@?sta@;!1cbC7dXd9JW>7f{QGHNIBy}Ii*7O$_hDl^xt`;zNAOTaO+ zs3gIOZh*F}JYSw#Gxz54y8Ge0dy;jav@b_aYS5VA8H$2CwAK9Zp_Wj#PdS$##eS0; zkmF*8GyC7EZ;n2?`0$@gjZ+sqWo@V>Dcep`6fG4(zZp;m6T0{jp-^%YViHkff*ao& z&5$Q9;i@EI|Ik#4hPUyw8c3EJJbVHYRh=D@6?r%7jhpbun2F4nF`anehXXq&bAu?q zacRSy*!7IP+3!z4tW|TU;Q+~v7uL}&u*H<+rIuz@75$PCSgWv|g%czG*}C>|E^+%O zK3_Z*wL0Z1qG8GKauh^k8hujK$6l>p17Fs&yhdBqG<Ds$jnB&RC+^=a6~|i~eEf zD3sr}xrQfp{Dv6|gZlamcVxJ8(6Zi95v4Lys%9of`G+_QZh!_iqfGmjVee@Z)lf#P zgpU;HK=q;1hfPy@GjJ*8Oe;y6)iAXA`V_JQBSNK+-NL{9C*5+|(Tx}8#govs3%8-mR(T#A{4ER_f zS8byMrvD_GZ?7~``oP`1Q&JHN=Chqd9sT5-%$GW3fB>A?z=+YU+IuC_Ab@cnkPg6$ zVLyjj-BfLzdnRajwB{dlz15Sz%gLO7^Z%JZeA~&W`JeSft`1)EzK)3-Y|66Z2E%sc zO3P5{@rNP!-Vc~66{M7IFOW+kkR7U|2hxP;wj<{IMtUHlBJ8DuLNU(ylkeM=tsmEe zV0+6XAvbPjPp3VN*vsY|yqK&HBMZVTyU9Ka9R#ZLtMpHw(}o`1R|!i068S zFz=!}cJ%B3y@J)4AR3iBWQ7m+YA5llMBRZ)2rzh+r*-^|#?Q~)nuKG$(0U4*%Gd(ksyZTV8+`b*=>WHm^s_eS>pEfgm9jP8apiX7NjR)?TuXu> zq{M7>29zW2O086zW{&s3&q%ll1&k4p(Wa2G5K;&TA^d-uaYsf92Q zYQ2V4gbko-c@mXVSFNuF7Qhl0bsd6$W)p`CFL1bp9AQNGn&p!~0ZlNx6>6D{Pqc7< z6!=G<@d31q5fnyjpvhX}Bd;((X3vhpu zxY~5KnjoLaG%`O+ixP%+JRBn~u@B&j-oKJ!O=4 zKTK%-)}22fzu~oEU@-+S9aIV+HT-2nH3Ni25N)xy+V{^ju4RZ*W?mUt80B4*hB>5% z%v;Jz-ul_uSG}_rD>+up+Pc?gx%apKH*Jmmt}`=HjHm36z{kmo2_NArV?{~fio1SP zffDd?HFDj{^^Rxl4TDa^wbiHKdFMuW&#SLW<(1RPP5)qBn{cepG_B)0XTC;rt^&rd z!M_+TA6gOTE9`*LVih53=JwFvGp5p;UeDwGF2~~j)ax79v97Gn0(xWN5(ODe?sGRK zCz$gcA8dU0y~b$WI~FcyCB*a9ujxk^tziy&JolufHI{-mx!*Qjd&3yAeOrq~M=<52 z>}-Qd-diycl(f;Day(B(uu7s`t;@IvgCv(uOVLkr(4fLv-wc%03WG=HWO+LUXqUv*b92=37jjKec*js0*|#( zlW(-6zO(cZ7HZB}CD{vt9GcYpltLW1xAu`72SRZm&I1N?>y!c@8#i7&Sd6ngyDnDj zk%9|f%BDpPgX#jg*h2qc>~g9=`MOn6MRq|@ zicB>DXgMKsyr;6|#bn{rxO8Iz2}$Gu(=reij)5G_aueGMqT3C?h*P=;IhAsz;jHhO z%;KfFXVHmQc#1zLYzUEt1Qio;P4sfD{J?gMr2g#_5H2$m(i^mdX3z4f50GpVSMtfJ zWYTdL3d#7&(t42d$TE56yv8tsfoi8t!V;q}6Y=3i(}m890)DyTq@J>yrIK1}`-K z(zWR$Q}Ph)8VIl2>^oW_==SiRTs-W4n!(qyoj4UTZz8{d-RY zmv#nEc!JYM1niFC684LJXloib~yaH+>@xUrt;MCX7 zVbLgU40c-EhX$=}Ie?KDfFB-9JY=*p85(}Jyh4N5ghPmP9uVmx{)gCe7uB{6wLPwR zKBIvc2DYM|LTwxrXhS*Cf3b`JIZ$^^Tlo^Wp;ejPrN5gS(6!*&B>1NYOA4zH9i91# zU=mQVvhG$fmD}m=X~O)!me=aCv!CxblU9iS@T=>H`}M@Yi@hGrDwZBtY&9MRwls6~gS<4Be?PaJzB& z8sPeY;)DQJ5z$RweyYEA-T1Oa_6j&fS)rvS0RYl>9b-kCm#lCi-1S&nH@Q>#F8txKta=d!gj2nLXuq4@Y-(&^>ZR<<&?l?!K+_-{B1~6Nyf_6ezIfFDk;r0+}z>t z2CvcfLjo%oIB+wSP40`6)g*XFKcu_2ht4kPGf(z*81r4afPvX8mYb*8A3`BV>_v|} zs)d0($D%!#G4JNzTQyG)5*GQ<$7Cd%L|si25#*X6ksffpn_%J9#ZjDCj;u#P2r5F=5*aMSIxR5 z*QEgIG>7ZgKBdX!}ZN=e1(oNZY#}V+9Q1GSf<$S*^Z=- z8tx-e3h(-HqhuKeDfF}UJ80|sCzAcNR$d)z{&xd$+sQ3I3*;xtU;zHi25YL%XK@ zS&0p4XBq5Fq;puuC>8AgCXN^kD}J&8Fr1 z_AAqgq72<6f%+l8e(rEdBgT8Zm;A7UAJ1^+ZO2|JyuVwOVop-VF&<+X2Jkq{iQ0m8 zl$D-F@W<*oa!8(E%0%qSH=KRG7nK(Zy96hRJ%z3cC}aB{87}s=IU{dcxXgxT4u}h= zE5rr}7k4xb7i8|*bdla$hd-lOeN8s_L0D)w0(}N3;BxH1|CZYHv|{ zf6)ZJ#4BF;`Y~yhF@DSM@Q=moUWK*&$5t(5 z$(g>}+==?0McA$35mHa!ntHhk{58Kr+Ew_F-*hJ)T|3K$_`=suzihfTBcHJN`;cZR ziJ{@2-_4pt%>?e=WVqwVH!fm9)P9E@ETV)Qe=igBokd5XrG0xJePU0xwcWCu_sTCY z<#K!-vPF&;8xE-Nq;r>d44dRTG2ri8*6wL#_rFQ!U#;F_zGWGiy248* zFF>%oZoRtnERvzqxNM&=#CDa(z?c%az@>`k~Qx3Gn0txxIz4pVj?`0$v5DxI5zv`oQgS zmlPKWlK2mgS+0GJq|nOmNo}n+P8Y7&>#+sC!7YfUNpV^az@G?3-?L|`WR+IA(%w=P z?f#q%)TO_qxQ3z(uO6};*ms4uZ=;%``HsUbGHTeaYhto-p<0MwuGhf4gU<<|HYf<3 zyLTqP+z^d}4{-q9KKMY>rK4j^ucgJzdOY(m5yz@f>^vyr9-P+Ua3m!G{2WTaOYqg2 z>O6XnlRW31Cv-xU6@cA}i{R;6U?fi2yFwt&KKNq;> ze}cJhc9YM^5P@VygQ zLp@w>a(vCx*z~B}g#y}=zZvs=HQ%{QK+7J$cf;l_g6|>{co<86nKIW}CO#1rI1632 zOnZ}R{#(ip$en?m4hXO@g7SM!D7s(C&w%KIggR#;e%LVQeXa%pf1WE!1k8@vZ#~Zf zEn@IiGt~-PVvu)?f4EM&iIKA2-;jW4%P(1P3EYLNcaMHz*D5pV!C=% zwUQ4(8O3}H*pye_rdjcKKQNg~jmFynEHYToftk!JdDtMOP+rSq*p>&Y%vkrzgCh{7 zde%+|*b)M7dWm@ewQq9x{HL%qSwo!*GJEgEqVI^qLKLF8@kzZ8#@-DNu*o1-9=xNk zk%L=rQy*SqKic)_H#WTLWavu>=?o>Y@J74sfy(r&(99qW?xeGFZrqT7sYAi3&&(2A z)aZH8&6+;pI2P(C^crlO`{3w>d$u(YB0I2q$1SVgaDL{JdzK&X0?77N50*_Sy$Y3k z34x=keGXnOy$yVTpFr%Xb6RaAflYCs_{eM zLm)r9eqL(Xp=l6&z#uq7v)F@mMM=0=yw#O@*bp&LF5wae7Opg_c231w4RwQL(WPWB z;v6BHQ)q!n(Y~XMg)3pLNd2bBOyivN31#R_Pr~-1#&_u0&nqttu@to73wr*eqv;*- z484?x1d?zlAR%0*uT^WjB}uZlap~Koa!*8fI_^aSBsPhs-)&%A&yy8urlJ2! zb`59tJ*%EB?#&r&v3JKMP-ad{e=>!A<9s#`lX=?cd;MJ5W&Y(RX3|E|xBb_qZx3FI z5xI{R=caqz1C9RZUk@hr!dsW~*LLS$<`4C%Z~7(<4juJuZq3qimI}FVO#2VfcZHN~ zlBCOCVckyrg0(u=ys3*9A+k`wfjcMYCS(YHx9f5gC(a0&jsIct$exTV7e80Sla@u+H1oppmlMV4;O+AY^guZ3 z5oGIz90!`3uce9ZtQ1)!BtMfKqnc#AXSUAZvvm(!7a|h?9y%g~aemQ$I?==S{$WLG zz;L-|WNSU6;(|t~xsT}0gZWoYTWYsHI+9y&o6Em(ZXPh6zOK)G$KxTAe*xM!Mr9JL zbe(SJ!HYF4-^bG+(dFHmJuGILf!z5;iRCOs3LrH5?Rt`qf@U++$XU$J($d*qREt*h8=p}q=SO@NZNR(FQZ z`|Wk_Tpmv3q9-+I4cTQ?_ePXd_>UlWVGSqAGAw8FGPdZs#)2Fn+NhG5zduAZZBFG+ z4ScJbJ>bCpceNq4_vsQCZCL4~%{L!jmr_cueAo6bsD}~|bFDweK;s#IGPPDIJ+H## z&qmUkZh{h?b5G%X)pL1xyO;Zv@R>EACWe&QQK*5Qp{5{nvsdCj-+_j>AMbV^L{C!j zuzl5RKmwJ7deGmqP$PlhT4h6O3pUI76rsx!`9V5oOn!E=&d#n{w-K*}=0@L-%-<{k z;?#oeY{BwS>Q}(>@#2*n-PhMXIA5VJHauYPweOF2in8P)1P>8@f zWaP5H6a5g@^#0EE3$@V>N?}E7gnvyMHSuK8XZljyYj;@benOsm4mZvPP+UV{Uyw*R z8|Lx-^!jaz*uJlNBVcoAtMRl6Ke@3Dplyuw`vf_*cMWShX$G-#$Y|07Xn&uY^}&It`^LDPW!PF*s5sX^SuJ*hVCVM=Md9^M&BTtqGDoaU0jnQ$^I?30gK(+t*W?m z&I&cjQ*Yp%(Ov(jN>4s1pg8lRHI~!CpHOXAeH`us*$aG^q$mb)4Dqq+yn}zSW=K#n z61E|D)R1<0bB6ce5XdIE%`C9>XE>n_Zk(<#uK&5yV4$1w>D}P~X)U!iHcvq1o!zo8 zDXP6c=Iry(#g(gjccmX1zxKe^i;vO#@j5rru8Gj&>-%KHuIYRSPwG; zrJL(=bALK#9+bl?x` z&39!k|2kDv$xZv21%LxviWEIVK561Z0MnfsYL)5BtL#;<{W(uX&vN1=$%D-$|J_8d zA1}4M0D@rsdsjvpwQ8^tt}!>@tM&|`VSb&b6?HTwVjUq(8j$r+bF@78&yZ}^6BmdAg2;cuf^^C zw(w{m1Qo&@!2Hv2QN^clHn1u;D%FYIFlUj8{H0pD*^`q0MDc-~^|5grd_dvrp-1GU@56@2e=mWixiFZ_xwc#In%I&kXRE%V)X~^N>tzc3jpcT*j3lVsFZmRaI^Zp8IxYNCGWFLUEfZtB zPDS71#?y$4GC?tSYnQN{kNv6|S!wmTWRll^SpUWhezQ!dn**JGj`3P+qI&7KeAOQE z4jV8YxYBJC;JF+an>W|QPZy7qKwKN~=>~bhJ7@i0?-2sIUfWB=&n;Oz_WlQ3K%~Fb z@0_7_kG%P@_cL=J(2Xbo40nTrLCBhSQFJ#BR{zHF|D4u9R~ll?uML3?6I1_C-wW|< zs{;`Ce`zeGeeubll+ca8jt7=Bn>Rkd7K`pgnQ2sjZ<*D?=lyQtd|Jn!zRON&UuE$n z7Sxrz*Xh7Gw63-P;KRJUD^`A<8xW#k{Nn>40`vm({h2m?xI)*3EtsX4YHhpmr`t36 z%k$Ft-*iW9{~EGmxixgeL(-yDG1Fpj#q{47W7f!`>G`EUHXh6 z-tc7F`k~T@W4Q~eI z$BBEN7iRg<$0OdGP+)2?T#WZsKwqdBI>D@3%@?J(#FzVNY!H@Wg$d ze`r=LXGCv+`UikS>xOxGsaOEsF70opaca{pne|A2*JLvnG*GTr8o;)P{R*IITx3U_ z)qcP)n)B*=!Yns-pj>l}ij%zm!_am!|J?mx4{O3ZxL(hJ5;CPW|5zvX!c+TDKI^^b zc-rrrCogya_dV9$9n1j8-J|r-spv|u*^Vitm68q5Z|*wpY@r4BLeXHd&&NJVB`PE`5%dVTxr?Xp&7~a{y4fdSodzN=0EJ={gGc z%S`UfvI3wKt!KiYt3#?p1KGH$LziV`PK{Y>ptZXG)Kp=16IqPuaZ@ z(+{vsoxwadmi>=`yn|w(5piH8y}ni&4g6?7+Ib=-dCKKZbD~lY}VHpVd)YUr3}0wc&NCJK2N^f!=GKo zku8js{o%m(gWZ0T>~){2XZxW%7eH|CFaN8a@R~hjFtAat{q7l5GrlMJc{!PHJ2#`s zJ-&~0<|R@&G*_>wAiKC30k|Gm194xe&MOOnAeGlmxZ7d>-3SUSyfEeZ3ID;b?18;l z(FOpeki57EqUU@yVBimckXO3EbpdLga4Z3{4z!d@BitX_>uM5xy}Rg6aX4wapj zVP*(A{sEH+{LJSE53ykR8b#QA+0g9fuI=r$E&=FknEb_6kiLqw$3`x-Z&ImxnvDj4 za>2$gV3e}Fr`}O}2AA*tHt1hg-A3-2hV}OI?_Spu?EQkbA3gDx;k)+$Vu$HMC9ADf zWR?dIY!~#Ndwp>C&n`t#?}O4bZLxHKJlD=GJ{Pf zwAZ$~+?@mEiTzpmx?9;~n`$5tkvvf7cIZ4Tlh|#*rS^X(Ad|87%*(m*&yHEgra#5L zjpGXRTela7sSpUxWs5M{4=c(o+t644(dh+E|2TaqX?nb<(3XJQfg=I)z_uMEpx2Pl zvIDp9(`&>f;5#TNe=R*R+ZEBgfIM+sQx7ip(j*9YH})T_|M?2&mD*@(j=-UD;2HJb z2gH~d7l$mTgOG*NRp=fgbplUm(`#k(IK@o5?FjhCdf|Z}?iLwP*kKLg{HVSbJz$l| ze=`41{FDjU&vdtH2H0GF(8JdK0X|nCozlL@smX*M^jZtOoglE1iTScjg#iFSH2{qA zer@xOUbOQ9mBb#ISmCwYTC8!xTpa&f{T{L9xGuh<^580GZl;!-7OwnT-pBz9*1304 zXU@LOCsv%i_L*luUeySG;nNt`R!>GnMM-CcJr?Z}C(+xmo*94Aru%PloEH@1S7*Oy zzs10(^J}B_YvVzNMmlGbS4E_>Iww)D9yZ9x+}ZDrzQl7_)biZ|sP)1F6$29Az3_-i zhV8~0ZGve%^b?#eyeHKpub;I@zvie{JiEw)%AFc|z{_#y%lRIr_<+I;KJ*)NH`y#b zEXS`qw%$VTIa$OVjDNMioaYqaS908k0(E_T!{wOt1y}sP0fJ}IL9W##$Z6klXZ#Kx zduMse!6UZ=|9SB6PViGNQ^RBOiwmq&=h5fb?yK^H<9d2OEC}5$vn#y|9wT}nyH~yd zXx}v=+G`6h8CU76GMV97kUbn3<$iB@rz*c;UJS6F5khcP)c2B=Sbvgr>}1?D#!9vI+l7?kRox?1k^hueh+oAPw%CB$u9(dx8lP@(E3}NB*Hj^%@fb4P zbtsotc(R9`e=Bo#iW$@qLk3?J() zOxM1qJM!G@RCWuF=5Bt;50g`EAsVkUx`Os@p*~ejhrOG?PCo>^C!Fm>50PAV{3BBQ z-!1Ku!EeAku5)|laNggsyAo+GH`@fu*Ut`d)%Q+?z7^;Qr-uz)EwwK`lypzr;D@Z`#B7<*IAHX9^~CmML{E%jwb7)z_v|Q%#-_f%ahJ%n-_( z3D5fwxIgQ4-Je>x_`9Q=i%FW_GRxEbVO+RI($VJjN~Iq@^`C(~R=)=slbK@}hy0_r z3@#~}TWbVC@8QdsakSo#=hoUWW4bpR{xhN7#eqoX4?L+#={>xSLc9OUvC^+Z*fW?$ z!*1|*sqv?ablO(h;|ULKLh8HAjTP?CG)>KUYHVVC^rokH3dkl-$Uefic`fhKfb{5( z8jM)M((*3hJNKECJtWSnNKaM{s2B8$(yWEsBnCc|V=!k+joUp=f4gp`6#nA0)CQ`jT%dRhwF>)#m2s(i`gLKl?4tlV&z#iB|vA>V$4!dVwdW~vVJ+cvNPmld`{lC3I_5ExlUYyPCJC)@yqw2dae1$EC>fP}! z$*tJCwtsOoIX{$@|3IPYcDVN=@{OT`^HwYK1Kee?ZdV+wN*lA{@GpLUut`=G;DR~n zP37veKoAA44oC!~&eArPUu=Wq3@|(^*uo;=Unj+$OVMK z98l2q-TK$;KL;1O)l#z!P+5js(KkC6>-R37`g9R7#aSYj!~E>W1A0&8LH4wRG%nh= zHn4leQvCCeL+bB^@}zKk{r}f7oYkvwfk9%VFME$!W4V8B?cApe}4_gnbaVj}lMw0-E8f0b!x;#z!qmu?)8`SS$1US!l$Y2dm9`C!6@7zD&&QOS8G=6VifXn}+|HvxUzZdj;Ap6&*&!IOT zeh=dJiG>X1+V@q~Up6XqJ)rg3`@zGxOBcdEuWt7L-X6mDPs4=IAt9`}pb3#p#PYPf zwJp+rUGoaTVAXTQ(R_nG`{boL#3t6dcyCfizWUS++} zynyFBPyHW!-G|o)N!@dr6IzkEOY>b`vqXFkO9e0Yz`SUb{u`Gj*Hu~=n z_n-mHJ+6{9u}?p5IK~tFA0LFo07h?sxI3!*qWwVhBPAOVwav@-pw#sS0{{>JP)h>@ z6aWAK2mmfuJ6y-yn8D3s0019k000R9001yAV=pi-GA}Wln^jO;ZSdv?cLs;x1PxAb z1|I^1KyVo(5ZooW4DJMi1qluzKyU_k4GK?H(vH{MTn z0{;sy3kpuwy5`4^2MA|1beZttbQ`iN3kuAWSTz@Z=Fpi(c{L*brDkrJjkyLeEP05kiA}WNER(E6oZy z;h1SPwmtuX5Z3l0p@7N1x(=M{V7rGH_iKvUf!~k$(Jw9L&@DwpE-bxB$P}&z9{H2E zO&})6=cG>t>cID%C-?2ZqXrnF6K2o`NfYirMj)BI7?z@bgFr(5N@Gfo`X^HKZzPAB7}50$-1EQncyol9w+O5HgMY>p>@M zKo0`u2G$~o+D?S~>+HR~DMtSFUa+qgSPS;|wY3(LtY5w#y<0tkd0qdjl%Uq&Un=E& z0UQik{x`a4xG8)Qx&~>CYzNj>Aagd%koVS*NQ>x!I-a-z^V%V;3PJ)Vyt?{pg^#+m zvjueqmLC_FI{xc;+v1v3{WAE%*xDhw^4R9csxcSR;9tdbLdYqp!SY)g7V|e>9vzRE zTfs7V$m}{qKJ;}r1_>*%Y=7_lxV$mddMHjj4nYh6JvhJCtOKMf>!Yl}!htGFRBLNy zb_5=pKDG4`D_!TGT0(xaii+G}I=LQQ8aw_cq82epv<$sQ!Vt*J9PjJUP;CM8Ytn;T+l!AzoR!5m^E`9**jYSg2YE(OL ztSUzsB-CHWJwiAJYC8dgK=o}41qB5;Idp9F8nVV_G;z@p3dFL+ao7}OrNQ!OF|h^; z-1HnAmW&~EfNp@gEjNFN0@H|eHwLi~eQ?I4YgvsE{2N>?xB+HGURN_< z&ZX(q=w(?3jfR_e6^f~fsp9*td8c{%4{^7_8nUF?fVG1E-1yJwqLS29$+#3Fgsiv< zXxLw{VyzaGI691G5*a8$uzeXHz-M)4|>FkAcjx35aM11h#1Eq3QnAgrS!K~s2I1izv67?rwL}Jvn z`E1nhM#*q)$G%OJ0W{nw911*0VsY(44hI1~0nk#Q&c{ZoegcdLn&Un!Fpn}g0din7 z#`xtg;1%|uQ1N$jMBv0@#kNG+CIW1+7MP0)1^87vUF^4@~}R zyTGFX^YU0abEs`8n1^CSk7-1scBszVRw?Zz-ukA=0$oCXz8 zl+44@eyY?)G}K@~Fkq87-_<~tx0FIz%7&aQm=wSS5W>{J(Z}ULAKU8>>tn=DeqzY% zLdjn?JiZ1UgWZol*fm&?@ zLQ8QMlitxkPdhXe2{^&^N@#LG^F-&@5DZ$Qr|(?VzoaAVzIrFV*S4no%Jqf_XI|*O zW*LdvV@~Z#?dnB6;GwJBgU^~>K8NO`PoH6TkkmDx%});Q4CABe@2*LKbclW~Gs2iJALjKJgAL}!^?%JOMR8?FGkJcdJu}i! zUmqv>&h0TS()SXtl=(-V2CoaIiMe&lTCA{ogT?gv+{4e*+H-!+U_}I08Pf4_a){If z{jWre%;(pE0a#L(zrXN);U7GrN%c4rjZan*bo1L%qsl0sY;JTZKXG2aN!B}u=Y&dO z+e+N%%@~hf>_D7Wu#fcPWiz8h3%xnVSvJkrfe($nsfN7!3vrvAS$!3-31*gD%He$% zdLc@rdaL;4P496y!ReAb;ajuY5zO=a&b{4zmF6(s;HAE6QE(TkDs-lWe}C-FcRlGi zVb~M&NLgQ1Z2f4U5V85v1iWrAS9xoy=>{gEJ2B@RDK;7qaJN8p$~FhhHij(nL}9j< z-*w%;gsvWBD%y>?u$4;~RXQG$VU`{(b(JkuLN!Mh+*gIivw7$Dz(|su1FUMi5PCgx z>GouMF0EWh*yzjAzLXuL5yt!LteUfNdyxl9juevU?T`>@Hr|7&0YuJ{L}^-#z$h#j zqh)NlW8KvKX8jl?_UWgp0}dR+x$7z8j^!&pD5h{pqj z3ugWdE2Xpeu^`8Yk-CQ0aICax9zFIJG$4W6LN^!V%ji;iVhWRY6n3g-@flPv zo0_cv|E~B+3$HDnD1gut(vU0J*k`fQf*r<92pZR2AFH2$o_{Mf3gx{*Nt zRn66~b7;fIis#PpuwB&QAw|>gD_j04cS`IgKc;W~T8Z7SvE@O>-oeh_aHRvgGA?nC zVJHD&UKXDeis+j+#95tUbQ%{)n# z!0>k)+NHwJih!8pZ^o0_PUISe_FM(dgMj=c4iDl1+|+Nh2P|4rFwlj{XOW zyNTM%`L$KAU$g5D8(W))E-wua4^ECeq9IEKLu&?#Y78E|Q-5V(f*&tJex=7^^tsB; z(hpSzr5Dniowu)={xYtB_l-FnYy54)(yll%g%>#t;$jX*tSWQ zWVvrjv?L7yf_@*66VQI`5Z~gwxSc6dR9Mznm^)ZqA>f{-c$6jA{&=0VQcxb~XMARG zYPt$^oLV$8&QX)&3izIgm1=*z${34bVZ(uKP!$>XWbpGBru~BWPRmG4(J1{+E97h1 zwts?!6)JZy%;|l4qN)M3cVI#kwVZlK((D)!6z7gE!Xhj~+WmNH5~xPKM`fh+mQKSB z=y>RVbVs|rQ92Wcld)|PyZ-AB#s<(C;evzi+1Z2JMdNGv3+X*1gub-+_rr66OOu1ykC@N0F`gH&w}PFaw|3MK^tj2nOB55+v{K z9q$rjE|$qmoQ$vfCttFv#hHajf&u61QFI}Y)`vbEP1QMQt+{)ocFx6wdU1#ACh}F@ z-dt1y#PuU#-6?V+5a>B#Pz4m(3d(AipMm~2{I@y zC3nw{?p!79AjqSW+vTwX<;}|96Wq#;J`)RUwAu^36RlXB*t#`X*YdH+P&dOx5<|>% z8qk_yjXLL!*+|yItm}&UVX1&gu3}(xCN7OLcqPlcm7052i zF*Jvk^t8$`iL9Q%kXezBe?f#q`pa+7ZBmYSSKe#Pt~?(vJ254)i(8o&dpNyqaXasT zBtKd%QL$Q<=@K|w$f>ig=_|s@VUGzsd#)XVMj&5Uc@t0XhlG6W8KSR5tIr>?kJnW% z@YWN#zh;s+FZkn}-Ec{dv~O1<8dD4_k`}vun?Ce;(TsIOuD%NDelXbRy8K-eed*zkBn?)3ce9mnFt3PIV6!~^le zKG|m=GQ4RgdS;^?V2!ncg=wv8bh!{wc~F?%Az#iKUO z%f>`bkCVf|?|2?rUg?keg4qdg*$-=8TQ)jMZ{G^_V!;MnGi!w~QXo%sG!Sc({urN2AxWDU4qJ@<1uMbaWg*kGpQ!hI({a~{ z*S~6DWNUR3C?L2lTr1eT0Gft%)R5zsP{tE))8S1;A230nb)4Z?dOlK7qY5;>z#Ha zJ;}sSF@nB+Tu5w>JQF*LdAw5cy$^2J^45-YU6>>;ZCVthS%h>N-=%%RfHQpflu3CX zG-8c89Lre2oWv(pOp>+}T`yx} z%P8>6723i!Cfjz_CkUj|pEUY&=W}VwXB6}g3$!47nCGLg8B!Bw@k?ppN1E#X`B&nn zQFLhMNl2OG)$bt!Su2i%L5=AViJu0UDda;?^U{JX1`97Rk{^aiWc+zPpS_=uc*U9r ziZ$#FkSCvTb$PZA24Sl-*aopaKeyzf)X|-Ce77Pfyqrt<)Q(b z@+z<2Xe$9f_pN6xhxR)oAqy!Pn!Z%fXec&DdzYKB14bQX&>L6(;gxqUd#)*3LsDM{ z@P3Okq`Y3Qg8#}M&g>d3gKk;bFHq$-G+(#J=0%vf61u8+##%`gAJ4MA%JRCj6ES91 zJR((2=d;sDtPP^*&@t=uv`a;OpP(yOMKgVeZiOcA%TsWyVRKb4zsX=F%dOf@iKHt{ zc_(bmi)&>5$$&;PPdfuW|IR;W(<#a*`>*NTYh8^xCdWx}mL<8Jb%uh=96Ey;8#XL%_(jr&gs zTr#4J&fodZpD##PloxQy&`Z+Nx!wx+O^Us)O5$!9!5s5@dR`NK49cayuZ6gR{}hRt z_|VYx-N|5x;j2}!BZZhCw0irF`VtHoC|LmtJ7KrutzUmln}@(anGqXrKfWvH{?H4U zO2Vgpv7cX4<4Zg2yC!dxc2r88=}yaH0d^m9f{f=_Gsb$Q0RI-Fi?)7{{d?Jf^&Pi0 z2;sL)w8Y=I5E~<9puYTeHozq#x%jcy-7xKoFq(ZNQ<4&+OgelvvSEktCTVFX3KHJ1DCWCGK0sPdXcf1)%orf%52{A^pHv%T&>+`4-3TmpB1| zxpz06Ad@-VGR&wD&#%_!U2zsqSkJjT(LgEVpY|dg&3WD~mp*syySNdHo;$_y3cr53 z(ROv&EgbxsU=XQkpDlPNb^E^kv)ud5N5N?Fs2+udYn<*C5tf55KC#1Y&I+PIM~D^v zJGa>{3Q|UG#GW@wMiD%3H0$hdcu;pWYJZE~reV;(Gk=Wa`sr7u;xs@WLVGObT$0%} zl40`qBGUOdh=if@E~Zos^{@TQNScJQum|(MAOBRAJhN7F-3y#-F{yX- zG_*VxU-Psu@bRMQmu{sKkl}zq=#E5rbnH~ALf1C5=Q}Y0&kM|4^WTj>-6Zi&dH6h| z@P4kwoor30?Imvukg?>iLo|V5hSXm<8<1a57H42kx6z4tDJ zG42(YfTcHZJq{JAf^yZTkVSMX?CiP$3RDM^6*IT`rq<=Wj%#!PNtHVhMBK1zy z40t*{jb>Qm|Iw<9M-Pj z-UrnRhCjX4lT+TMihaC*$M7ao7B2lP-geN+C)7Hhx-^^iHSmq6bF0m;pQx|lhV_*F zu$0N%OWbeFFF5to1@J=7Ud`nWcfh{QpO@r{+3C`R?W_mnY}hFhS8;Qq=xQu-Au0r2 z)@PyWx4B+@UT1Vm0>79E^nRo9ziLF&!)$fJnDSN8#oi7tB&p7snOV-a5&Pw5+4R+` z7wXZK`gO9*>DnenOBsIL-n(+)!y36jz#7(qa{^d@-<$m#Plv<|V+g$Hj$=D60bEfz z&2RsC;XWD*mpMC}m#+3!V|^T$tcUtV9^hh8!xkPA~K zMf0wv*VMFNdb4}PJiFie&yRNboAdFh6)zrTwWZZQMG2iYL6`LBRs@uHz7D0FVN{>T zoAF0u&nvHL9)+kUf%p`Zdw2j>MJ`6Fi4)%z6>ru?CU1U7Z#wik2sYucPrT+YT z*3QP)9_QKm{BKGI$~INeZ@yAYj+oj#$F)NygRcmXlt|kXWLx$~vZGYII1Th`947(A zmB^v!5ICK=$HRty`n4;gHW-rxx2GeIT0bBCH``K!lK~?&pK6&=?YG%B?#U1I=Zjq;uV+JbT0JQJAexyQc_EoDwDw&GO zs`+&bmPV=ki8%d@5$^uzKkR0=^(@SSAu;1>veFp@)r_IC6@6TzR=<1M;*~b8`=VSM zKEZ93aI#%x9`mVtf(d5rGgq=HeR)KC$5HANDMI^2l<%Hv4Gd9qK(EzoHhX>k0@vEh z@6OsUIV50?5&pu9nK{*ebpZ7=@d;=d&0pG2X?is6-^ zE|;$EMDe4n@qe-Q^zNCgv^E)gPt=6rHjnFtmQ8`tHgT5*OTv1&X7FQ)2^~UMbpBLT zn=~k5Q!29VqYqX@qgsHhtH0brR;A#lU$J4%WoAog}NG#?>i`yW@Q@k;P;BLQa#lKU~AL2XJM0iqW zS&!2nA_{JzZq#FB_>n*%htI!E7@A}ddh^17pWlCFONd@#MIF*KKmWQO;>XU0M4h;t zl<~%gEbVl3jFSJU5!88{>ZxZm#`JhIs4_t@7gYA-ln@aw`dee>%Aokc=rY!Dz>kcz zjDFUdr=a9d_Hl4&)|7%y>_^Oawu=avUu#llwiwcjj>eql7w9OJOlB51FnqmyN)E4u z{UYkgR^>g4rUT9K7CXFgD%?-e!}2Tm54_*!pN-15f1Ji_0de;4E<%2I(Q@o@^6jRq1-w)%B&JigsJ3EHY=1Lt;Y;u3T zkY$OPm>&H}mK{9*RD>CBH81{kj+aQLdzaJAM({veTI<6bhQgdSkao}65Sdw}Ypq&= zJ48&=uZ+y#`g)!8fMCRVm7;-D;BA0n5i;fVYmJU@+7l@+VY&Bjv93!on(%7h6ePcO znJ^3d8qbqd8smv1!^pIjJKw*6&(DmKO56|yQ4OJx^Tfj{(*1@es|h>kyy4(rlQfwA zzMDjvcjxsc|D0a1bho!+)$kvsSdnY5*2I_qRF=s-3IVJ2?S({i+6T4~`caV^BAVDB z*Dniv4sv;m7#1QDrLOpB?pc0!}F*tvcK~oxMP-0LkOiG_xB`=P|E=5FhlRR8~X%igEbrRSeYsGsC&59p{{kq zqpHy+k3sY;#$ISajeenL_DLSZ(@9>*dJdvzmz# zh9O$_VIxeF=raf+V_%@vv42gkFpI$koxp+{V30d{jI0g3H$Enjt)0Gh<9ta)aw#df z+D1SJK64;Q;crbNH4AT_wM+>Xm-8!ZmDWbxjRmjgV07Pc-V6}1G~*KV`yFgFcp3h8WcFO!b-tpDheHhwHEAG#G7=gQJy!PZ&T0n(?Rrp-- zHxm5`=UJxSliDgDgC0rOED4I+c0!e@UqK6tmnv8AZXN1Xpr`7zsfq>~a792I{}x-t zI#LHeYA~*P)p?sgNhH${pZ}# zM#=9l@13~3y;Wcf_xv7+-Sq7Eq{{ZUIxdax?b;CiXPKLWWX#HlKNIZyUx^h^PDj{@ z6sj+`bDSRXFO>#+3>?f3VC)hZyo-4;vIT{mww>)y~nQ*!6*F0)l>2uZ1 z_X9Z8Ey*Ry*M(Z(h+5``W?{>+Br*Gj_BJX+vXGCH7dTGZ)r(sr!}A?=I?dnc>#_9y z^XK|Xo{TxAnz8wQqt`Wcr-B07&D&MGRg@M-^(#}Je;-`6Uwk!OH~ecG7xt}*d5Xef z)47`kcMR~kO-hBEc(Jssgr=a}y-&ZLuFxH@+DZM=DQD#pm!jad^XzRl{_@M`3RCNJ zwmsU30a6v53|`Z7+K0eKbo9wH(4P~w9ahew>T%Lo#wA^@7(MxPW9nu+$a&cF&75Pg!psrjOIPu^hw5 z{7`@Wikg%yX*FJ?Cd{ycA864gvVO;35D#ES?m6sJrLYjkPq#Ru$@87u6HZBqTqvYzwX~bCA(n~aB`cvsc^h1=?L z8kB%+=!lT1C;wVdtOt(e7vcWUU4#)Xnke}Brn8{#oAVp4>{kXvF9;f|2hARmG&3HI zwk~A88Y^#{xtk7ved+cbBFmCXukiMQx~P|YY{C@H7&C4YvX5oIDa7?K>2=SxJ6D5? zaRP`%n>YKU1@yl~Mhi}z^Wz_Ert>_pt&J{frF>gBd$mvgU~=hP?b`?RTh{d-q9&2i z;`c9&h6?fl16V4Arbl{6!?j7eN0@L>UogF}x`3tC(3b}r$uKVD#WUUh1ZOY1lac@V z%02L?>```GH)=EfRgHE zh9-Raq1{P$ivXcHQ&+^}LwL;lhJ18L4|Vbx6vmUy4YXHWepzU>C{>reJs!Lr6`|Os zJLu-~^8aK7toR-0ic%U|9`^CY?kfV*vafZ+?l-o;QICRy+C^34-@{E=cY_=X?!Qy7 zJi4pn7=2yOd*wsC1p~Tx+=Q5iu7V-K4d0(XiXS0I&+-DP@Wp`Z-0r2BF1&4`MJyMV z*|l4sUz3bdPznX3eO@KAVZK@$>^4$*MI(asfZbb*eU1Brs$g6+gRlGuCSBy0 z)D(feAsU2hXdq+Mc+I#aC33U*SAsF>*VmO9Oi+<}8`wxxWm2U_ba9A%IbY5{d@vvk z(iJnMYZv0(t#3EV5BDu>HqGymtk+)mM6IH*8eBVj{Wm01>Y<`Z{}R;QFGr{1FnXS- zDP!CgaV4eiUKLR+g``m&Ec7UG!L}qZp1s+Lp|sL|%|?Zkt_EKpbI9!1v10GmiFg8% zM;g&nPHG!1xvTwJf8+NxY=yQhS&1)xPNRo94JbGQ#tVRc7TdEQ^b5IGrZ-ooAaeJ7 z9UhtA+ctmNzIfZd23;4nF=d#Sy(=A+`r*>ebCBR~aml*OD8eII!ql@H?+J-jMW9!5 zB(;ynx^fO)R|3&oX;6i`>y?zc z%R=V_N}cp}ka*GgM-SOmrjyPq`gjl4!LQq80-3~l3598(I|H@0rK0;C4~k^t4hQUSo9zC`Thin_ll+{Tn@a)M;aSsALf6<@0=nSi&!_fYU)w4ZMN1cox(%ZFd?Kz}_DY$YCi}@Cvc$&x(d2T2s zRufsLPlpaBG5ZFh4J|5tWNd4?-*_2jUc5&xbH>EYB|F45SJm6Fs^w&h&i zCP%=})O2@0w}-O1GSxr8Fkjb-naL*p?kf|D=D11B>kFRPX~U7_SqNgp+4TkHyji_2 z_<-_C4Xfue*gsMm#P?QUD((4XaE$pt5u?6qWqa3m67|?}YN|o+CE=>n)#etnXM+11 z-Z0n^axLr=cJ=h^H%(E{xpqdRRa#oRv28X!2St8Tsky>L#6z%BV``9;h^*?##y${q z_7Zg^R&66`xJBE4@v;!PEdz`2bX6a0E2jTUAJgyzeNA&Oczo(ROR{~@LqFbqtNT-l zmomK?)(93% zB3{n3VxaAKCuYtbf`ubK9=tp^SK!L(qA^t^_BDZ+H_ZQF$GuzVAml60TZQz=Qe&6K z*KcT>$s`^-5MiXz62+t zdSG1wSI{ZTSX-kAPPE}AqGmYqlfqh7Z1_lt=>F?GM66CmvACh^S`?&{u<_jzS`$}0 zt*fLaD%3!>#d^w_;@-L)J*Nw)7fNb1jl!-8`99@iuuE(+H}_ku+@UIH{Yz*(sL(OE zhFJ0gQosWFuq*&KLuR;i#Sc2|c-!YXDZT9j$yj^0(kR?Pn;i99L~U1b>tnZHgdLU7 zTuRnft-hFiK*b>QEF0-aiZOEJ-v2`LcmF-;zF2dOj#0IT(kAjeP|H4+GAZ>8akBNj z=InQFJCAmsWKOje+6slg$Z@6-gNMY|)Ac3nEeuUQE8!AQ#lpz6^eC z@v4q%O`8d&Xs@22Pm%Q1nex*iGY&FhrHn4F|~uTdYzSiOTfn}dG6lmHn!hC0Gs3z!9pMD z%xsgDCZATt^J*dZ{>*L>=M2rCR9G1BmYSW&@&>hDj&FsiL?n)Q?DMETKfU_&Zt$W7 zq)pZ(zlRD3j|z*MEz0Vj8O5x1V>sw6W{s&mj~_rVT8RWhbFYS;#sWWA0T!9ydbS~| zpB)_av1R7+&Lkf;Y79B~(6x+D85mEc*+u;ac@A*a?dr7o;CDt#Z$v15^E&gB#%1H^ zzQlZ(t0d$gpq(*-;-do6-=8+tj`<8CY!w*3(5y%t}K=3+WXS4GmyZ7Jh!qj z`)3IYzP;oT83D5)HMCqtbGW71J_EpUDne^D`p_>4{SY)DwS6bIhr z(2p!<%Dn;sepN5AR)KTrtKP~nT>F8bP&t*cZ*9ucW4B8-tT}}{G)4oy%F5rbpA@L5 z?p*78Abx?uzkbsowF-6hPIW0KII#XiJnRR9uUmN$a|!-Ss~%{!J(fehAg3vuZ%TgW zpNVQ~U+)UO*G?4uzo!iB-83Bz!FS5oGau_R{WWB0u0RaBAOgbv}s7s6HK zBaT|Cofn!O?9cn|GVga(kFKv;s*J3uQh2|i@4(wrDq)oNGzMh5!eay4*CyNR_it-F zu|9a@yu%2oD10w-SK_9CWVt~}CK^bWYxR2=k4Tp4OZypo~$XPI;E=HL|N>MQPg{_{l9?3vY%PluT%{y~wwXvlbj>zN$k z`)j0G-Q!B^SL3%qCiLCBwpa8WYH%YRr0RCb%@udatbd@_zDu`{Yol?F*TeT?b<8tMqbTMW*ESjzgC8 z#wei2*@Sn7{jg~)u_!}6<$N0Wuvx?P_2 zI9~7qbN2u!Fl}orU@o7sg>(>WwmVWhf2iDlP4F$_g){BdKtqr2a1e@*psIp7aB01c z=(9TExq9p>(^?rgJNa((5x05yht8A5pByqTUqvDJElte({7=<50rmWQ9UdZ>pBrE3 ztC1pFJ$5l=l{G9Ypy^J{pkmwBAJ3{f$vw@QUcfOS1(}PC%dRP@AKTI<1iBz+N{qIl zH&!&C$pkclaA#lOQ%e6(aS!=u9M&+DQ4D2LXjgR}Z~v*v903#9HtDcqd(VLG;5^Oj z$p4B29>j@4pe_FAQnTNeCjKQk*n!meh3Y{N?I`!2v*oX|@9yC905_cdK6P!tn?;Y* z2ByTO*d^luni9<^e$m8P;63ryCxk&Yy&N^!i#~ELRLYB{sEQB?3*8)Fu&rQJKDYjv z_$!5tOuAeKskOwerVHVxHkWlF2h-Tno z-J4Lp_s!PG;x=6Zm+t(gfUFE@F>^ZVKsB5z$C`qRpbKXY*U;jFZvCIhk=yAk^Tj7* zTx#UbcVju&%;UuUK2K6Gl?MqG(cHg?< z)jQ`?#+4bmFx4&Kp6-n|^qVyTe4|}0@Cc#KmSBF|)_J1MZYZ@p{RaJ>9s;oZcS-HH zrIMyK@Yfk;SH1WsIC!Ay>-DAPM?gzrL6+9nnHZ0^j$b#fs(K_GXb!;6EpJ|s%1)MfX8Y4vGai{m)<6!|Gj$W!ro*SX$v>`Im+<^A6q-6(Xk65Xz72V;44Ku;%ezC z(5-W4ftBD8z1B&myD*5BzSh{vFwohKGdEDxN&bi@iA}`SqSFu>_}Zm@M67^TN*BP8 zQEcQWpm#lv(g_;Deb1Uj%+`BbN`P~hmyQ`XHKXCWE0Wc1cjvkx{3EjK1WWY_EvNzu zy?uRozO(Of5iP1IY4^*m;NxrBz1b=Wu3k1;A2P2443C?Amj+kpifZ&=_k>!Zc|(6U z&tBVB$J?M=m7|Dr?VW%X)Cmujj87ZFe+El599u&4h~s_&2iV2}`PN6Dq&Y|0j+yZ| z@1@sS@I+b?M$TVgOgmNZMG;si5ww&@`Ayg1DW1&uNzT$RSms}j)6DaD`V01zi*gL2 zp#Lopxc<^+qYdi%B26BXTcKPF3{^$#_tI^~aQ7 z-#AeMbSrEMc>L83s#&CLIY$$9W2X8djzRt=J~yJX0`_CVoMq8##?4Y z*(1kR)?lki!*A7C^#j#X)suv=R5LN!C<)%1975qAw!*-yR06q$+(J#Z&Q#^0lqc6 z2u_(=xek8Um=+TfFbaHctCT8!s(|FChb-cbEQAthsn1`sAGjW^8gX==OF#IM;)~Or zFZPBFjfL`RNHkyj?p{M>VVLs+LnyQ1Ctt3!0ou_*Gl)!?DJ_)xi|V?~K~E4i?egGz z;_z)tY08X?%olALXrIH2#T-g6z-8MLhK4CYQFBisVDR@6+Dp$QH2ZqV>7C7Ttv^=p zj_;v;a8b`#(T!E$TYtJBy^)jt!`i(Z zsuf_%;Nu4a5;XO1a|b`N{Zn`Q6Jm`Xrn{Uqe!uF1y@DogfkC}`;h+u_H2?rR5e4w@ zEKY>F!2Lf^IR$H!*ql_d{|{7-0)-#N6$SjiS+>*F0{H&{rfOs9!%XaV zu7iyj0%~i!_mo(^Q1I`3r$z%rCk)Z~FDub|P8tRVbAw>qUJOf+G`b~kuRMn}h}Rw% zjPRytTgJx%^#_(3%su(q+CUJ}6aQ)i-xG03w`EzqAdIwNSdz+vdq)<5SH0&XVgK=X zt^qb3Clz%=y?PK`@Brb_0O9O-S_HRa?Se{bP9+`0p26HZJ%@vkl#mp>ip<%D)4v`$ zc0974I0hp|>%a)<`V)dLn33N@2kO8vs8fL6&5+Or7{Qlld=d;d6v*{=)ZQ>a=&7ww zP0YD0$_8-~Q<)j5l{G|=mb>i)%-xoCH5s+Qly~({;P_Gp47>{YC(IiLMzl}-s{%<; zhp)Q`Exn&i;6_Xm)zugb9N$apaJMnPE5tvtswKgIcs2e$=1zN)7K!B`x_laJJ9%mr zMZ#JpoA$|fZKM$b1C9J&&>cd$zplc;Hu~`)N2*VtzYZa(13EmI{NN7}ap3c+Hb+8N z(e5SdDdQ?Ry`rxQ3J4nvxQ!yX!T;vDT0jShadWnrrm5M#xLe>r6E=Eb^BI(Pm69!3vl#AQ?$23U4Au z4B#cjsyD^oUI3-4t*WguIwJr*9^(-H5w#Z_`cjS<5E}gk4b6c;J}pwIuTKsmDrT;8 zo*N`21oUmPnREUR_>8uSid;B`b>&%gO(5D~YfBllZk`>YqDkL{{tAu zds4Ajz?5bM@v>cAgfc8G7QhDx2?&l52>!ER)W4|91`6CPv4B_ug_?X>3^HnEo&J~R zXR>lkXgCM}0Mkd_A_Rv87jlil8=Zd!=nuz4rQqh5L&uBx3;!rz$ind-CMd+u80S4_ zJ?4i(V9;m)U+gfj{1_!E1gw?#)3MNDzZMl~zjg=)f%@yf{<@3DgrvIU{^FXk|Jf_B zwEZ5;@E=7Q8D=Fl0Y*5_SwjfE_$#Ji-tRI^TzmjONegY&aks&&|GE4MS&(%lnRRsx zw~ktX3yv(cNu402>$Bivu75P*;3LOYQ6v$%+>H{JjgGYjRvkdysO$eQ(8&)KcN&Xn zQHc>wK9c!9vK#z8=1h2XLKJPJ#UTY7A>4`-ClyiGzR`~p->jr`5JZQMC>SU#nm{st zIUz9s8YWdSf5Dloz&sHFNj@e;ad0pOaohv}J}EUmKUt}4XfGQ%aU3c~v{^wd$G=52 zhpcwMY$gZ^YI9E>kEJbP;QP@uq`%FJgn}Hn6zqN%x_6%#Wt|0=0*?LDE|og_A9vOn zhKh;`K>d$9(~#xonAexG!6XBa0hj|Ed;^) zI;+`Zi^7hZgUGSqE|i>V9MTFtJen9sjfNV=9$_+Q2@R0!@u>cB4V)T#XuiU($s8sb z4()O;bxdPD?Ir<~;sEIs`ig(@3B1bp9c#z&VkkP97*Dz%=d!~fp});o)gn%WEmUrW z!$(*=YOWdkUJ`_V>e;F9u*dKYr_ye^^l3~I!@}+4WbA7W6K^_#ok8L^dTF9`e*&8+ ze0g03;%*v4?uu2MFCK!R5|@YYtC(eP|KNtNWfXuZw3zdCA)U6E+y$0x(y{OoTE&xT z%m>aa;!9U@e(n3DvL;7)+h$T5^q`y}1`X2y&k_aQVe#LXLtcu`bpWORMv!wPb&2mrdRJ&a- zV=bGt7J1j~Et^4b(7ixq6H^Zto!PnD))r#eJ6SOqMCmjc!os3RuSD59h~vF)J3s`V zuS=KINaJ03%2B;()F1eVp2PcE9B8W3TsWM@?~B9i~(V4-X6nx z`R0C7rm*kW_E9`D*~KZ3j`6jjRWBTS(6)KyMtRQOGNaq*e?*E#~0 zF&FD@0bX=q;Mb8o9kFJP)ayyIUD@IvJR|2s1RRF}UTUpf)#OxXYr~OrC1p%M0Pp>} zc}~y?)is5_Bvg2xBGwI_20AAs@b0;rxG+b?G{eXVHPUsg=-w$yyiRD1-zwttB_nm8 z`8oXDLGj?s??djqcGpFF7&<(gr*756s2r#0O%S3=ICloM&OB%cZWcP17R#cq{#@@x zNt~?BqQ2=J8oucFtsv}WWtLG0c|b`~q^4d*bL%JCyN%@ttWzY5()7i}$*d2bR}z6! zl-*?Qv?Kh2VYzp4Qma<}F75gfsq4QT-8`N`sDL~)40PP};SlLqW&{+_c4gb}6gx8P zMv!$qf7++p1?FIr8{yBX)%<+`1bsYM^B(nl(fBL?9JKm7yIJC!VivIeqe(oxX@NrB^2gKj$ z-oD9uef}+*AIt3>QX-MWr_aQ{=xJi*r?tJe>U%p(adM*54^I*TAqh-@@5ji7h!c;3 zRaenEr#ek@ZWcmqi;@BArX+*z-fflL+xeqO&vn7$)gRiam6vvFiEhaT^~AWYQ#Yk} zvx?Z79~#=2KSsAyWo%8|F=KW@hQ9jy`I+r(WPQrYCwDm|Ii^q8zMu(Sxh54y3JhKZ z{I38aBi-DaId*6z@?Th^C60&(b^-Q8%~lR{7Q+08^fYhB6`Tkpp#((>ODU5-d_bYw z+~2%|BL6eGR-=V%96;PsjcSY}7u%P>z9P_Yr9fey z_&=EFDw}>T9t^two0dsvUU_|6{`vClZAvL~Zys31W*=8ZVRC`CqEp5O(L<~&3Z&*E z@Vxh_cPu9xkPq|31%Hx#V%}jDJ@Y}}zt_#1(Kw44^KHqj5m2JKrV})&T?Z^|QF|0c zRUen%0CVO&rtyoynt+nJRP6%C<~bS243EDgW>!D*>tzR+p*Q%1aNP0tZ|?@W4F`gC zh%Vnz_is?b(+@szxBMTK4DNg`VGm3NLw5kN2jTXOrGQ3sj~lTWR{)={0s~&D?bE5} zcg5TrJUz)bouLQ#SRB;ZCz#;SP5djg=rgGm68PIlvfsFeUAaQ$1DeYo6FQXr-1|o| zqJQYK#mt*M2DZ0FaNxsK+kNPFPAgNfS3Cgrmumt$G`$wrcdLQoAA$6NT{D{+5aQR^ zUlar=Rui@zIjUn*3a9&d!D+;zGLX5>DKttSV@|Hd))WY76~s$S5}usv0>hDky$%Bn zz&fSBeh#v4pxT4+Sbx0NtZ4=?2Jk3p2P!W9Hn9h?K6ySB&GczPr+GxPZ#22s{EE%} zEkqFI)3?sDoS$eodSG|2^TlDBM#|-WEU9wR?vX zaP&wa&R>Ya9{XabOdSq(pg$s3kHYQI2kY=&4v=w5-{|W`L1OXmcryc_I>GM*yC7(Ip0i3n;O9Io1SCXfTfCZ6-FEYoN6q@peVaI&s4(*wWmZO!wP(Lo4SaE9mE z1TD%5q)5wWy3d<)KW`-c6-B4A9AU+|23as>@Ji|-c`N-oP!Bc&G9U~sys3^}Ot1cf z9P&r$;|Eung*e~gyw8?8>Ludz8^xC?`Kg^)vdxMddy z#y}1@kQqof3Wf4kcI9@H=Ud z!>wmq?b^-y+~^2&$p(c?Lnkxb_3A@V1~(~h)gk*-d`hXo>*YZ5uW$_K@1KAMP6~oY zYX2I1nGeTwwD0UVnar*Ar0vWWIY^` zEwC&GjWb%4<}!KTyn z+Gh6SKIv1FinDquXnkM+K*t2S;WLH*y^J-HQ5LRrDBQ@MSo;k8CTcot{RH40NL|G@ z4g1lQaSGi(N=oa}FSlh*e&-hl-3(ye3iT#j zA*yj_r=wp$ldQezWCiTCIl>ai9z*o6&A?kj)jO}Ze{?AjnUcwVrPfZaph$tOf zuUT}STB2F21%~aoRvLc`xEL*<5aOUfKS8)#5s4+Yp9SuP!A)V}^)h2xo#(ZO^8yPo z<)E85m%tQcu>^PJBPwWlu+nus~`( z9`G(?1EQY1oaK9g2;tG*qwDXDO?2=mA6oYh0I^IX)cizU~KMU zd~23IxUQm~j5{FN^}1mt&OPwU4gi1RzFm_Wh|Yg?j0)Z_oK<3A$LyikVel6Yj!Uee4Kr^$AFH+re65Tn z5xrRDxy-gslSW+VCawK#ywcX=IPh;)19D^Se7-4pL^g zf7iEvxIMVU4AjBWEa1l0wAkJ?pe#!i5kCK zf?pUQVB@Ka`IM@wD8WDNiNI_!BPQ(MGMB^7pm4JMLI0(ZwL-)YV2v_hA^g#j}{dLJKo@Jw+=GoNI0ks!Y8QeR zapY&?ZLznl=DSu_vqI3-`*t(&?gMW5C)>8Vf_708*9*okw7U+dKx~yF9j@rV40wvB zLdvQ!{tNy*u^{qXx_Awh3yQyG)>C6Zdi|<{{PXVzWFs9<#1GRdz1&KQt%LoM_hhD3rPuw8kJX4{5d8buxnNoY#mkCd2M(FoyQ|HhpkYVfiv!IWMgcOtYY&GhtoDX{9z^gtqy$Z$>wxljFt_|pCwdIc_jiJ zO^9>!L(V+r7SoK=M#wB|`{y>NpRQ3v)bkQVlK5>XW?fR3{O#3wN%1^?Z%OIt3+KdfJxuCi!$H|%_7v*8 z(>;>6Dvy}-&0dxmP1@K>Mv3e@VTOUr40d?G;y8|7)!dePVfzJ-e69`@<(MPQK z?SrHNZ}jl!{$YVBQCj9us{RKB`LG{BDk-BRL2vwjZT=#aIrpJHV+TpkXRp2O70y6i zFdm=rU`f*P%UnKwH5n|s{F6Z4DGpyx9Tk4LktdG34#FG9%4!kjR|fpk!$+qLMAe)d zuBCuJC{;bRu-}FgajcpHn@iXhW|VTmcPZ<`;&~0??6M^)1hjR9LE1GQm;ZF^!N?qpn=}T#O)a83R;?sj_3uIO2E2-L&}#@D@r0Zx zP`HX+-S0c+p9G#HR&zam zY%iG??b7}t$Z|3<++jGa-J6CB{IHG5kKBJoucNF#peR(dim>p_K$aB2yYe|jGeHJKy{L4D!V{A;T1j~ zjBZJw->g~Snv@3Dnr%1voWZM$Km1u=b-Y!z6Q$H(05F23GX46WtXjSIYDF zp#?2W+wDAtgt{Di>t(JMLsSXfE9`KhLkqF_K>NRKq_$?p*G@B4ik;MfpYM~f()6Z* zo41eTjWn;yB?yD`lHNveN3#cJirRS?Cv|PXos_;UJwZOZX0H=}D5D;pR@!b2Kh?2O z=_~Dem^9d|RHvT>5vu%K#+y%y2F~%0Ccc^!049pCvw^PP>?*h~>c#GQ&ng8n<_UzF z)3@9qI7fU8n1i+(r5~I`kkeaC_yEA~Cw|PQ6V;Ym^}zD(N>nu=$e0@AK40HOycY%2i-*cD{{nm3LyWS{nuBqpn?bh%s{3A>{^Hq8UMBHbaNc#* zJ(~W?iE+mYvhBRVP7FF#lH3jh!2K`p+;^<-bzU2J20$=M#bBEuQ4x-9+#GfF&wh}- z6R$z?raYJj8Qb86Hkj{jZdfLv{hmlMG}eree;d>-|9wkVoLLyFyqFgni6i0ytW*D( z+3{P0^fEkZ+85{JT7n!P?V+&=eD zj{y6k^?qJIW;SmY5O%Dm%699uEUWr+oZN-eDvsJ8?6fD*zZQWN>KZnI6 z#b04sxC{2;s~ZZ#f*(RTQqI8b$C0e_4XIVn`=nj%_5iT+8f?m=>>q|#V(@*d+ojAw z1ZO?4zow_XFa>HK@AW!YP{R%;;MUcD_`xvo@zm{yl~LQc!?H+Yp&!y-Cn`16nqC^Z zSc9%4)`!^iBy=gCLlUsxCr`RcS{T#FU1o8{bXHIN?!bRGhb3s9Ie{AuI|JkMtx^BYxQdcIbT z#j6(2YYeSjvtLgYI@c9b*=9Xzw%do0X8G=l`_a;@rf21Fx7{ z_%E<+tEgmnX~rG9cwB|Zp2Gs#ibzy>@6Ur%)#iYtgIN-52OV~)c`-AiJ9{b>2E#*D zs~Zy~kqW<(dUhXI`}kH@E5`1fP=7uZU4X$(EwtDADd_HE$NjGhUo+pS32eQEAH&=E zB02Q=AI@28V**X#cRC=q&pv);bBmzJh?7Q|%=y zv(s0>C+)u_?mU`n!q)1IvnU664i*{QF!k^p27e#md6|3Ni6?u_g|v>vu6hYiLWCdb zHu1G?+WC@bjxQ|gXWq*F>Hf3-M_IAM2BMen0Pd!F{U#B^L| zooa-2RV?hAfg?;CZr#`hlqv-$;fyBl=VfMKxC?pTJ>Tl;oRSS>BMRmU#CD&`o&L;V z$tg>^#8eaN?D-ZPoh9WL-n)C#!zX5NU-yU&gEJaff7ajiqENC9db@62Rp8QX!RIqR$bVfkQCP&0JIPA=s*?uA_(5#l(*r2kZVFfh(Fw1sL+`KS0+CK%= zvoE#)t?%-qK^;K&Jp-@}Kd_*eKL%y`E1%64s*u}YG$d`beRXM$ujsdA9Ez=e$gu0R zuMILsD5lk@O~SmOLlw^p`*cL25<=hkdmRuM|%KvK=_A4C`kq2FmeY*q~eh~N5luHT_J-+(1D#k*e#ynd(Odg zQ29$97nlHE^j=dilHEnzkE&hq3wf6o_7=u`WY+%skR6%hKF=t}!ZAwr@Vz)E4gnV4#He7wIW;szEi(lh!)jGS+Fo6+{Bi_C_Von8uLw?n;K&=AO`T8gM%mymLUA52-erhFIF6!EX10ww8RFpYsXcBULlUVGeU zo)v(0sWL_Y-ybG^ka+U-cqvVSqF6W`9Yb0|({>=K>1_H7^=VrTAGozZL5rLNT|k2~ zz_{FNlV)jUk(~K;LVVcGYvZ%OKB;tNUVzrNv&QxobzeLi6iF)cUMthukTY^Pcy zEVqB<-*IO3-e2g~r}c8kjC@&+sL*yu;TWo#nNDCQQ4MDukQP=M~c*N zRO^G@kZaWKO03Mz3_%K~wBH)nvst?@_w+jC9+az5g%%h~loh|A4t)r=d1{Ca0Ei+T z0KvV7&JiXkUrfcULOt3Wa4~fVzY%*IZisega*He63r&KJNy0Mp+x+c$d0U!62PhYs z5GLTi@}+P%_UMwMi0bd8S2y{1qV~QLM0kS$aN0Rqlu75L?pgBf<4pp>Btp+fk!5-T zZtR)aqVXjf&*%6*$ThX~eg8k5crHfVo?_ zrqdp!IsW98Vx^|n15kkr2eL$gTaUXmU>)il-Tk2lHDv3`EZ;8GzbLunMx{&=9BX~x z11MF<{cHJv0l)1I#bKWiXzY#8#2zW7uoXScJ;;Rn1ah|K?T7#uAoXm0#rV_v z<;fA03XWUOl1N&V#NX5;U0Vb?nJsNC6X;q+v0`I%?8qQ8c?TDs@>Vwn<+a4O^U9k=Be$lQy;2V~!sgX$`|jOLcsUsA_prqA+S z`&ove-4xeu$MXwgL*96_sg6{z4~`3Iv29cB_v>X;+2PcDJ?ln21GI54RQ3<}^x%~* zkjYSoG z`OWRbf4e?l$71XBEr7a7;$b-LdTHZ-bTkZr2R^FF<*d}Kd%ql=L_wSv_u8hy7g=pJ zKs}ctyrXKG5WuSkKGNvFtaE)Ip?RkAuK<~mjQqw|W_6i$MN~KQwnyatIt;Z7+u3@n z4YH?40e&p3ljb(A)=g6|V5`qPz}fg9?K(G^nossYgN~?U=E0WVyQ8AUf^M+a=$PW& z@HDx-!1r7 z8%{_^bC=u@Xp&5z!QhE>;NpE&k3||d2RGquKIR) zhskT^Rk%8{^sYl8J?z@Q6J+3>!W$$WmH53Of>)4H{Qkc80sH&=?lKFy!^+XpNv{6; zSO+}mZd|&>QKj0wK}|qX-SNG7`#LrV7oqZLqWj>wT}DTLlVB|xl80F>o{Ey5I_^A> z{@_b?u=zEQPQ&a;IC$lIdMwk_qZ-F@nw=ahB&NTBX5V?%`ML@APl<0c?cvM?f@u;Yl5{8#5eo3m?*#IwyQX$eacp6K&=%q}~%jB4O8VD08%pZ4-!iY11NzK|3Yxso$dp zysA~YYVs9j#9)dc)g^Upb`{hD(Ze%oPuy#BXMZsk)CRCwSaZ&A0YlJ-(aVXz(%oMd zp6FA|2AF^4o?;E)I`EEQcVI?-4*aFI;+OX$8LKi6@Y|_P9x%LJr@}BqC(DqUZ7k== zKC%Z=F=K(ZD$wp0U`yLG-2W>3YZ3!A4>a+M!l26B7#1>LQdbW{6kQ>H55R`JiO-WK z>hQTzUrCBhBQ9jrEdQHqtu5T$e4W4+-2TESfqxcavFMt#{k0$c?8N;%7~TQSE!4f% zZgN6@EgNB-B;2tI(%Gr}gz+|Vw|yA6My5$IInQCr*wf$n$@fWqM`Ar&h~`*q%ri(9 zbc#JBu>h2Q&ap{^>m@=7cRzdvN~ZLXH!)(M@6W`)y>V@#EMnv=23C{2g0bh28&Nsk zy%fwv1iU*W$yK5KQ|NULI^2%*5g zV8AD?4d~nY8J|w0#zh~JISld4h5-Rc{tFH)>74Tgzv-1en)OoZY!LV#tYrLZi;|9( z(Yo`brg;qAd4cp_b}TDjT7Wy!|6+E?U8bn=g8eAt`&&?9V3->9n8#C1Xu`{YqBVy?=KV!u~)lMelHUd8l zHxG`P#sv>VzC+{a6OkEi_dmy4WY;NPkIeH+dXqjwYy%>rV?E_lp=>}lo z>)+#`5t9~}*%vI0jrgHx* zT+UN#99=mzqkN|menK4*45CH-zx&%xiq$je<=SY2YpQ$%To>_A5fN73?Y=5Oi3R%q4_5k~n(ywvqG5deTX|7_S|w#moB8|#nzDK&uN1@>9j z4ek1L2(6`)hoxO@;yt1itg_6e3cykWNUj&5V>zm8F!wn*WWoyOC#P*`H*>?rJUj`< zEKw#yN7u^}p5ZX{4vA}cI_rPHEDw|)pk5?HB+!fGl zq_ThGCx~SpUKd>?_gMan=>wG6MHl#&18EVl!9S{RCxU_>sy6C3$K|a}KIF#t;m}}F zDR0yM7xBVZC6D|Kj{KKH)?DvnRUcT?kvfB=p)J=Vzc1;0XZVYmUVmMo|Fh#t@DyPA z8^lIK-2j!rS;~R>*7U9Ox~(wX{SnWXte=nBh-v}&E))-9uIGU+d(D**gs2PkvrrGL z-ZL|qx*No2g}R{5zI~egV)BH_d1XmL@>*qqJ?+0*k-@8vKfx&I;seYQHsC6N>bQhR1P~Ttf&Krn7Vw z&!6MkoL*S&^J_?~>>xoWR{#8&FS*}BRm@HkL(h&7*!1wknFpGOhu%ZQk!FeV{uWrc zgtcX)b2n@57pMko8_meT{6&g~^nn^l9Wqt_@4(JO6?g3)O6>8rd#esVJL;D>x*c%- z=JT8rhhr%ARs+Ft64vfLr}5~3Rc90XuWZNG@Q+u$_<*I$qNk^x_QX6*Zg$y%wD1!C zxri3rc@4yA%$ z5!#)>mWc-)TX;V3QSn>M?Dr;{V-ES<=evq*93wJt))!WfvYH_FNIsbkeqapN$V#yL z4+8)Y08mQ<1QY-O00;msS36w)9oy{{(*OWK(*OVo0000mFJmt-FETGM0BAs$zXAb~ z0RR990000406^0K02lxO0Q+a2Bp!)OB8Xd5RRtwTqM z7GrksL>WTPa)$c!whEaIgrmKY?#Ll|Q7B1lGno7td?VfO!sPYd)w_HI5*M}mO?4Y08nMwj+_r{EUr`eVw<35@DCgzn)n>_C#_riT<*CX z_-4FVTq-0L5=`Eavm=L8MVafKQhoB`kjX>l$cf=Zu~$m*Q(8VO43>p5y_|E;&fw9W z%9NH0X$I@iaXG;UX`T|vxlUp&5MeS*Rw0R>|8fO(gIxLLm-mqq#7=3AmS%_lU{{^J z>hljnCJ%oGx0qgHqir$KuqB++1mLi;SM@&BF86E%T8qg>zr3MD8{SCqs=F zbD9m4#jmld0Oa}sIoiK=v4s-FhRHWl6No|V#nj^=bAsuCZKagqDXo=qgo=nKb*!H$+uZG>e_P;>ojSs=2wQd%;6`v@Zmr_bs4e_s2~Z@*z0tEE!H!lkuyy>(($)keevX}!^J{IZ0dzbija0`9t0VdS1lq}oQleo;Tjmu2R3pDo zD)F71CaCZGZwle$&D5V#>0*L^esvmsxVPtkO zqLfa~Qwfu8oL0a*S1&-T`oBl(uKUI6iCpKp4w>+KTO;9wfjh3KZu6Jc+x$6BXn2MKoTa-79Cb9{H zQc7u&eqhz# zTVQiK!f0DvOaM-0g*)83tw$(QeX&tWEG``TRFb^5S72|eZbQgB6uItM59tZ=C6*FR zpzkB35k?Pos;-~Ia9b!zH3k=-#TCA1Ba9-9J|BJ$%c15pr!UsPN`aormD1(Bk@EOV zWKm3k9U*PN>wiweesQ-$CIjNhDgH|N63ekuW>S@K3YiJ)Xf9aQkAkmh&s709S{Bzz z8DpkI9NU4f+YwSuhs*;$PwU0{p!nNs7)}=>Ol~oaR)*`)vC$qd#J?6aEdag1z33* zC~Mume1ZL9!{it<#)Qc^c7SLyvW4>U2x$YedUdQ{#~14cyC^oornFvS~@!AXe`Xl3Y|51Aaa2{eOg_6)A+ zWgdbvgTWVN2ss&OeDu@Lk7l6C`tY@GkDM43-$u`1m@LD0|`}cp~=l?F|ddS=`nxJYr&2~9Q z@-aAaUOs?M@yXx1Es8y`xt!v=oI7&NRE!yd z962w3uv1x|hSjScXur$3emTjjg`UAJCKXajYX89x4?3LMdcE*p>C@gHJx}(KXu8=9=4%R#`r?znpL}rpEZ4iu^=^0j z;)}U{afaMNi$CMV!gDdo@cm}$d><$@(`REFOn3!yxSve zja87;{x5^rFER3Yd?Yqe-slH3C7P+5k%;_YCqy$yzV^WO5;IdWd;tNp2x<~rO((z1 z`%mT9VsMfftU$UM{lFPHwbF9E+nmO5nm`g%QHGE`wr*SxK(^5!tXI~)7;7OK5i28K zD23JgK6kqUX@osFi>P$yNKi$w0#cq*SowckpJ2-GauTscR4lFq_T>+DD$gwK+eG;T zx>A;zh>b9Efc0nNgkuZQUSc4&D271RO7c^?b-MzIRAWpVZKLgbO3`xAFR_~L!vfJ< z&Jg4TQ~K$qZ5Mkk3F-V9XuUgd^ySM1ep@SZgXAy9;#A!IV@k!MVW(^ zk!`et{^^EYexVd&u9Q7gD<#RRdO3&8i}A>5qszQ6F5xXE9J{86ATv;wISq?rlj;Fq z_8LJug2m->l23wKw>izin_yC4Gq54p?GliTT+>ZZ7C_NLsUmebSzINcZM9X8y!c`j z(n^VA4>8^RtfS^Bt&@}d z3AD?#|1J)hB_J1LhRQ&nrYx?T5s1ZNaiQ3v*!J1W)B5ybB&WN5QXvhXqmeWh|5~Lm zC2p%ya~;F!Vq5_`l_{}>rciFHjndtIu~BT45{}Knt9-xMD_|(4n-S_iBiFfy6b35> zA8n4E?3H?-yM1xDML7g%fjGfrQT^J*qD-R#Fagn1e%3@W2EBNd|6bPk&95OOjU*Y)-x$ds0i-jO3jJCznn0aob-yS=SOP6;Xy zEl5g5>LnmDh*egaHIf&Oy?;jz1RqhhDNhL|T26D?vkz>ivc`&Lga2SudDR(+(-KaX zgV;HCOi&j}dS{?4KiapIjnmDjhl+^Zk)y3=L7K;AX9m*1ZgaW<$wao%H_{7oVoVSw z%ILPDm;{x49XdmB_OtNne>PDDKc#gus!44;&!cj8_R4o&i<0;$9YlV`Am6NB@`vD@53 zI^zYCQ{t(-P}*Jqn8x{qk_F;QIpbx5g2@}kZ2+BzW#@+`sFY}XqPjkWdfN%8d%#q=r8h+dGXgeL9)0|N+HN?6=9U78K~P7$_ccTR!VDx?Y5We zcrn*|1EC2Dr8MJJV+Fyd+uO6m43wSKV@hsdA9kmzVGs6Zr{<4D41vJ2S>`s*rH(@F$qI&m@+H-B#LbWgR`T{)G~XO~c0E zHC8S31I@+2w9^YE6)6pC0+HWBZ%@gB)jxFI- z$N!Kh43_veqZP2q|C6_n8G=+HwU}1G46vC9hA6gYv-3f{LnZ@aO6yd99{V7^SQKj@ zJe8w;iP<=j*gj3awA&*m1RoZc_%Y^K@ zX?714`3#65lK`CTMQV-f-9j0G27{$Sayf0BfM_sT1MBhuME&V*U%p{XfvS*RVlbJ8 zy-?a-fECL6Odyw2Me5nAS-yQj{AA8N{l- znCn=SL2MQm5RHiCw3fNPVMHmVv_8KtzEEP})mWv(7yElo4K+iqXXHLy%jWxgOs^?`6SQq|$tZBY!wRv`h= zRG$ya_3UJk9~o|@glIMzLjH~GT)+5hmBJr5^|vy=*cVD%Z@~4%B=*I&aiZWu`fa=2 z?QYvRfq$`RFD9`tSmA$}>n=tNiUiQw*M6}mQz#eMFjz6BixIWSQQ zcesx=3Eg^8Vm3Lv-jt2dzQo&B(>3;b^l&PD#Ky0 zD3qTj#SB?SmfW6T%ZvuXXyFQ!nM=%F%GDbVbEk?UUz#Rj7Nz$x*0 zA^#r5jxouwr$A-+&8UI!;&kWjweL@mL@dn)VGef9--o371E+{;v>I3;?8)ux_QfmZ z4;&(vh9!A%S|e#YLYbgkj0I@gSDy2u-M%<{8=YgvO!=?_h@Mh9f|qMep+vEF*>WI$P=Uq^b(uFF?b0mzqMM&;5EI*>LsQ^nn3fc0jf_?t2tfbyODCx zArk(J@8h2XQti(#;Q*wK2Mb#Vofwkjm@KcJb5V%5{S{rw5$qCA6ZtbAA*d52Yp zObg{oiQ$xR`WSP=D1uzSJY;t8P)ZxWn8dcwFcQ>@vF9rBxtu9+f8D+qf)9`H7X#pca$(qb=dAeCkj6w%S~`(ILpsnqMxm^j-mTIU~?S7ACPQ zJeqwosva!tw!XX+vNY{teDO-j<4b|Uto4*!=dX4V#)Q(OF%C%v5GaF$A@BnFs@&W;bh@i zC|AHDj6{Ap*JDf@ryi;bKnAh;Kr{v?3@meyR0?#0Df0=YA2=xIbSdQV0ntjKmWJKt z`sEnT7h4QPu3tQZf8gxM$$z3E*KKr*sir@$g-il)GFTeE7&2*g5!H<}1bI0rq8oVm zlw{BA?D*$V(YWfToe}r;?_lF?(nkY9A22n9EZG3^9(i&l435bTZ z(Pf@sXP}+81@_H|0Wm`A;9?%%hG`eam_u;7_AnvZ3K#)4d!-@sflUB9K(tU#FbzPg zvC3e#wP#Cws;`JjMkcWb;A|W+Z=^j`IJO1i*LpPkto?`UT=!f$bad#jxIUmGCjdVCVd3ou zqFpF$|6o)%%)SUp=hE`E#YVfu0mCks!8&tMLEgWV39mwT3iPmAeBDk5(y@Ig-V z{9NDpa?bS`Y$B(XUv8lcUxstgb5#K5*x6Q9qoNoDpB58LM!6^!f;53>SORR-Xm(~N zzntsc7XM~s;}lk&ofmhT>nr7r^wT&>iDutOFD5yFStu`Zgbj1W^q{{Ldezg zl=f>WEg4xwS|8*(iFGle*ecSR?kQm~SS+p>oPrMu1>?E~mW-@IYN1JND_}Ny1#E(8 zTan@A8%7i81;~ zy;y;*l_b|Ycqy%wa(m5%k|GEbSEJyZc77sbH0ak{*YA+y^ia*T<>-42-_ zcKhP5MZw4Ar1_9p!o&A$1L2ID1IarmlF^?AS5$FW1r>F;kws*i~ENKRWQVX$hf%#=%NdvcEU399L4>cLL# z_QhEB0nsV|(Jy@QW+X%lKrZvXSQNuxO&@|&M76hWi@!_wDtxVn>QSpnY~#gTpI~Y+ zF(6`CYQNrX8=cZxV1J&=0+D9R$RpIJpG}6N*x&20+a(|g>d3i4`vd5Jp=NQ}wAHPN95p-ffhU0=t3vunhD$WWLxoPIX@_;gou=9XTw#?*X8y z8r2u4v}U|e)f;(>iG!|}!(iFy2EvfZVO*!#IQGL>)w?_;?)qYQu^2Kvq$s7T(TltN z5<|a>LuQ7&GUG+68pl>4!Crq{e~G=szKgYp?2#%Y9-j`K5mp4zkA{WGKI|rTJ7jk7 zX1s>ru<*PTUmRl=QGJ(J7S}H(d3`Oe8(>2jUSpMQw=e!$;a`w50P*9Y7k{rJReb`` z$?^x>y6XEKcAJKMu=9bufl!EqlK`*{iu*}y4RYPzt4MR~T#)0#GO$}HUT&dmp=+!z z$kCz0b*_iZnmz!Ld=Dvv9FMK(s?X)rz$hP1X=~4XSvU3`L#o4O^0!vhfEEumC{V@e~E#x@jse|!SZ1<{U5)PIw)nRFvpG#9c@bqHW~G-3DPMD0If_dj+=kp;y9XlbIpCXkR010U>mw^c|qTZpzlJO4EvBt>HToIJLApZ6M$F?Hx5pyObBYzpJ5@BB0p zdZE-p1JR18#Lti~hLE#Yg~2%aMDmyB-<&p)ZJhR7Ac`b7azgN_>1CFnk{5>{XRr`W z^^xyoDA*Rh)@=|rgIi2FwID3URDDBm46vRStCBs3AZfPh+mT~a8~rXGIY-z6w4L|X z#ZR{yD;p;mEE3yoyXlL+)(lo)JLnGszirh*i^w7KfE;V}2h;>LLS3AKpKh1Wi4z0h*Hrl&x^hlQIcR^mfxm!sGuUS)+KUzADg2~vknjvZ3HoD{jv zbr#o%@{951Tm$RHZZVP1<5MAxP@MkFDU>cX9mGx_hs=%QFE(qF{9+&)Y==xvv%!nG z1K)?_7hi4ymAS-MIlmZ))eHc93O{>gC@#t(vWxNi0<_9s<23B#JUK}$*IAx2L!~OD44L$_G7#uuY%y&Z zf0r3ZyEsF3IbF^Up7z<95@D_E#r2C@=&_ZZT<7}bAdjuA52T5n%S1|iiQVR&)d%Eg z7q65#cC_sWXrSy%c*!u{pLgJf3Splf}#BXhy#1gSHUiR_DCeZ70u9ta5k~{_aBcxKOWb}x( zSY(O8000006tfV3Kp+SXmI~%_S&^Ox6o5${VjwaN)e$nR!Nh@r0Rey@008|D#lHcd z&jC3P3i0Khb(i|Lae4nT`eXYEIZ%Tl&&6FPWyr|FB@U}a1MzV8K(}S?Etw3#9RNFU z0F4Cft6Lh0>LN*lKYpahi^nww!j%$RVWdM5D8y@h@Kw(*i~T*Xx!)Z4=Q5Mw+fa8G zZ=p4ud=7-=P06Wp6jcM5PD}EuS(DQ}AIT*dhW>A2v5D<07FqJ~>Fd%`t)-_joz$}Ted+b9RdCd`ig2yj`n1g+^ASWB-0>JH2VhV2c*TvkacYgMO zN2Hc1pwK?YmbWNH3W4iz{1Mn(3nwi+f;G;r$z23kIa$xojr;lhRt_0~;y>(p5N|2Y;@mbh$bG2qn(d5#0p&I^0ZWwmf!FpvxQU0{~5fVO7vveP!rz3gJW1PdxSlS$!bv6A}^@SE9Z0mn+-H zWoS_U@$13Y#Sbu$&OOKDlmrwWY&g(&NX9Mz3o_;e#SY*B0W_};qAZ0D_Jespe_Cd; z2@VDCB$)M~yCx#qO1EDa=|Q>hfGAH}V`Y$b4V;G#rs;~oGLZs@fiYhP1yg`^g`f3B zg#;da3>a}-vX3`QbjP-V=I`Ztmqq?%9&jAwoc~wXp@aoMxn$)p3~Rp>H<~H_NL&si z>9IpZ{2}dmul_cd2fI5^9tXxxg<0w13vo=`R|#u3W`iNFO(Ay)7G>|Hvu|8j?h67O z7_*R#Z_{JIOBRuGPzVnzIe_1t>jv#R)rHPM(3q&B^X)g-(1Jk)M8#prKFU%7v>%Qc zc)jNOdj_$zCx|{E8Se!j)r#FdTTV@x?~v6v)8l4;usgSxP30G-APjzJs0ZzDmDMe^EyZ0RBhK z7+fX>Cod4JuSg7pH3K$Hjs1UqcgFEWWuX<0v~Sz`@iy4mX0iu6iqJ;oUK+1PP$OqcmDj3Z^0T7?e*awjHn=13KgMi=X3)g7$Eii zqs_GelTTnq7K0DmqX6YqBxO=FxRV51bzoKS(hlvwAWQQn4}Sgs1gg?%?6ZEfKmADm z9mfV9I>!A!%J-HGfd{IC$Oe82$WjB{*$l*@YEa|l;UETc-8oHbc8JJeKXz~RkvCS3 zH}GNLNn*dW20a3?K`Aa+IuDkf;PJ1*jPK|DwUV1RVuZ)%4I~DddVhL8P;6hsxa2<= zF7xEVI=l8D-f_&P!5pIaW2Q3VXZoD{pVcn`l7k+y+u6RuybmYA{|fhD%?&(H2ZBJH zIq@XZrK7*SV=)-|J4pA%n!zCJlOZ(20}lN@bgc3Sd(J_DENjSkf)*h|2;_h5p5vg+sc1J1X$cbFW7Y3$olo( zP8Wv4832V3p%P%sJEwom`U`mmvUc#w{iR?V$4w-z38V8e_MOSx%=q6{B;lLoUa_#Q^_2 zbYJl2R|4WcVu2ShxCXmJfC)rSyp26;@l)f4z+8M+9}fZjAAX?Tgj_Zh;&n*|aIoXtXD9`fcp#;c`5^(Z zz6h@1wfs%3!!QSAu$T1prDL93IL3h@`{phndo_s0lfg`-Ylq!%4 z^-nenc=}Ts=(ztg>HMJz4DiZd5JSXQ2w>+m~^<3O6i<7Hp(y*s?`y8i7zgNqCG`&Z&u zG$8*}d%zO7yWM~H0id`)Ir{(I+>_9Y1>dujXb1%KduWiT`W$fz(2&Br8~uCgChhy2 zK##I{9=-piYx@>lnzVAkLwyitBb1t>Fd&#+;3zXfAXjA+)ECgK^RT}{Z5)<_a7=JG zHh<`1YIabs_$9&i{wF_T&pCj9A;VtaapZw^IfNt9s}mIT4_G z-T@GSfiwteKya5)8xIBstuznJSr7Nz>t#1C;G0PDX` z@9p>d;bi^2o&MV}Z(I$0hV|{*hxl2k-Nk#y$&I=y1RnRdK9<-3p43SxzG-Pu19Q(n zWS_}G@8IBfgU~4?<*kI`#2oyZ0=(6n(5Vl9o}Vp>S)(SwW1ZwtbPh%?Js6gZJ3JU! z`v5pyM0renFS4J0H0tp4P=gl)D&N`!B0Zzah7UV*Bj zFTbCo!a#RA_!r>dChFbAC&Jw}hiUU~7k@dGK?1f+W=FHHfJ3 z0q!Q6>Cf=~%mtxuBwri?mjEF);sN2>%-ksY{(-%|?r&G!AhcjhKg0bnoVjkoCBUu*D7^DQ=#*+0|97|&;hy5hk~H4wxl;BV>RBc5&_8p4fXuyjsT zb`uNAptl}YAE{%2r6y2EeJFJ|x+t&k?KG-hW)=SZF3Z3_B(lyxEb~7GsvzW{@m~m* z2f71d3PuM21`oU%(3jXz&$=F;|J$z=)OT`3zYG@wd83OEF7En884jS;fqx_xa}*C& zw}4&*Fu}eogK?dOQg56|7kE3Di}}F;px6$j5J^0EP}qEdnD+Bo0WhpEfd3>%H?tE5 zyFHk*wv*Zu*^Qff4TdC76V@Js8`}t7zCIApXMI?K5!G~ps2|K2VEA1 z-0F*$LK1qR5`Kg^7GC`Igv}ZUKz~PQm5u=b&g*?}m2Wf$FakG$3dn46;iZ~bG<*IN zUHJbQxUEA7c;A4&iPHRfID#UJ1} z1X>})0PTUYHMoCp?}JP?Xe;O=;ASZ7rqdbk;+i}2tpkogbz0Lemf!`Zx2Lkt7+YHR)D%#WF+2mu4^nm31 z5Hd(Y2M4_m-vMv*42loX);&VKr4pBbe{RN4J4nfJe1OVL0`>my0h$sJ5ChD@L4mjX zaNys75HE}f&9geNr?3~`F*6`#yZv4<`Q5gK`(M|897TYc=rtg8@GB0=VgDf9eobH*|IXr*slOq0;KD7aHfWYA`6op5>#g_A&II}bk&j8LZFlZn!9q^xf zKm5QCH*um5=H(BBJg&DhRrCRBWm6^~ce?*+29g{Q1`W3Vl7av!F>*9l02~OyzzhS1 zE6fZEG6bc0RMe#XtYw?7CH<=4016MDw30d;0Fev_V z9q!B^r}#JH#rp2E{y+6$@wnTZ7c>Acjh2|m#l4yWs0Sj*1`Me=z>|m0y5Hm*_erFIgV6kyz_a%<0@Py7>;h&xBiuKLG0Pbj&H8h=tf| zyZ*cbws`{**N0f>Jxh#k{+@*e4)0D53Tlb}kpYGm<=fHwlJQde!!6JNaFvVQPyG1f zIg#DSIso?eo*x9a-Q(H@Z`_c{+gH9*#sI)48Yr$`z_thgi8&Z4xtJ5?iwg?tULDi7 zLABr4;)rLsvE-gL97}SDS@5kQxy-db4=^DCs0B` z^A`5*ox&#_EK~e{khw3#mny{j_ctZ`-kii3q;dzaKq=CNNp%ov!MpWE4>HL=0LT2h zsqossE=G?>_C7>kODBO&HBqh)nhl+Y(&a6>MBa*`L;|96)xSd_a7wssZbl z2z`!QU?^h`SPR$=Wz#w4d;5`luMna1Ge&5~u z0u|7pd%6INzO1w$v70Z+faC>Uhl1TWKp3I-XK?7-!&@Ylm`%YO#LVTdvOxdl5-%Tb z5zm3|#PKW!uhk05m~^E6>IRQZU>7Ba9M~D9J2AR%qhM_HnKJjTf!@$Ubvis~V-^B* zfFBy*-+3q2H}FiDGuwGc6hL)%AzMAY4+ktT)r&`B-wT*$H@ye)caT1}brN^G^YPXT zuCOJL_2!XH=EO#s{u(&mo#+Qo)2|~Ak_EP`(c*_AOBkz%LLYDxa%2ZVOCXbU@ViG) zrx4g6;`gG+@&m9r5AuvSn=nu>lEDoXkA+J+6e2tL9XaDqss-}c7tAn7Ianu%bc3hi z`Z0YVC?2FnMRP(?zeSsWkfH+?w1DJ53>gNh2C6DzBE^#n!uIDQd{Af_!aWr6KBFY} z6V^;K@SZ@C6(n%%BdPb-4+W72Mlbvf39DIPxbW=nqah*hF|xx-CEEYw8@V932jV+1 zKZxzcVr!mk5_cgpkH+yOM&to*FwlMlSLlr5#tdpyWforWKQ9G$h6le|h=GoTz3?Zn z$6VBo(JKzkxt`-2o9m00*h^24KtWIt$PsivcA?K!QJn{L^_L@ep!b6=?yGx>G=b>E z)ZC#+flUhxb#xP5G!+nN!gyBTF{muzpWdIrd5OgD9Y~0T1zg~R1cdRhf6=HvxG;qX z2Y{Y`@O8&JvZiZZeS*LR=IXtmNa!8B(*&^eA7D8!a;GELH+~{*^pHoj4ud z+kozaV?BUd_d>GF0J2+1QGsd9V6)=A$RRhs*7{&c_Fz=uh!4xV6A9D-Od+Qb(!Xwd zKt6PXlN%cKuAmb;G-Y4ErT{R`f&Mi#DJV36YT;$iO-3-dy|K9U8F_2h(SNvvK&hsn z+JD6g0p&sY!!>dv)!cx|EZF%y5O{Jh8!;N`HaH)IQ1?grw)7u9|I>yK&1Q$of(wOk zVss0Y*3x6t`GjQbXHCF&qRf=HKzjqWs6=>R-Sl5v;dmVn z7HRHu~Zpy{_*pQPOiO&IKS0w_u@2YRVa^}ZZAsGC&!&*t};Zv*h@ zN$}E=yGoFO^DC?x{M3bt%uV#-e_i}{4R?kKbnt^fKKgbSmb}*t0P83I^|Qvo@fuKJ ze?q9x^nAZgoINUo3Oj!_bhL0Nz%IW+@Ig}Gmg*=%1&N8!U+Ic9xX0`{P%G^-)K0Ou z$b&fh>(zjyurHUtBY5y+hr`;(<9i-83Pr60?HT!4c0uTaKKLH=_fH;p>%U3$ncf_@ z8drnA0-~R+^2&u-=YVb1V4r(&!-`*O2SMLwi+j@==v;pnYv9gB(x72yok!&dsSMy| zuooW0?2GI+*bXW`P^W*g!S4s;z@2aG4J7wMAFd~qIOPISb&%iKasyHKa6sWiTC6mCL!Y-dr?NGc8yV+dN0ac#YZKrJ&48?5Rs(@6@HPHH4g4W`Ct8bl|Em~)`^i8x zueW_@UJ*iIPSv}W0dWw({o+WTF$3S(g7-v1w}IySUl_F06a*v@=?T3&sNH@&ur88& zFy%lnYrsplpm|P#!50)B{|>PD*sZY8e751g{vU7-xg`&ZdGpyNf0GQp0QQ|X0?iaK zod35oAW!mwbPqs~vQ?{(na|_~kwHO$)k=If37Gr(*5Z;}BIn*kiOqL0L)f@Qo5=(==Na4(!p zc%s7{h6*sI0Wuwc+&>ZruBryev-5H`_U6?4($vZQ7K~e^EdqMH6R3a`f5w4=R?uc- zpz6av=ufj{0PyoEFTp$q051>VEC~0UO}@4EH@ZYRu8?K{!!&^dZWzJ^#-QWllmd}& zfOmsH$szNv?k|KQBN61gZ0`@w?}S)jy=p8q&W>kLr?0k04@gJ5q2{(v(L2sI;T69Luo z9e@l1=1(0&zE@f-HQhh_UoZ_g)=E64$AWeLDf~qcWp5%2oqtrZg}+ha+9B>yS&SJQ_&7P)f#nZ) z&Vm7;POK&5K{%9$#Iw)~z(9eWUzi#n&`13Tzyl!lZnAQJP9Bu>0mupoi!ZLPc-`l~P`iZX zxuHP0PPRU#i!cZOB(Oc84lUq#NVCi!5RpVs94Mm!ZeM`M0h+=GPgsHqYD?#t(a)U~~ne z@!uA&AlOP#PO$NNd*o^0y$3g7|6jgYg|#h!me$$s1A8H`IRg~zaeM`1u3(TlCmI1X zeVrH1BhXL(d-Y(1FT4-;uc#o>Qll|~dD#v-u+0Cp>A(dc1gxOYcn1Q##{j4+gWW%&?^;ZVUtA-Qo&YBJ%X`xVy>NRI zgfamA77N~=CErzO2m30QMd&+54^bCKRSF`lu;4yPKA;Q&1_N+0EP3vD4@+!+W`Kd8 z&ZE5c*m(I_f`K0Rh;+0MuH#R-Sn58=To}q5G=@>@EduWTkjx(h=b&>MNU48IH=uwy z5NzZOc#uGi-`{6=E(#7_Hld(;A_ch~?*M=Wfb~-~PzwfQnE_N94S?o=hIwUg07Q#N zPE2NSBp2e&Kpj7}@74ha^nh;gD&9&ty^q*#d>b-;Fns z14P#A0SNP88#GaQB0P?6aQ}&XLAPo%a3}{dI|=tR|KG01Gmb4Ru5}LZ zQ4DDHV_0K#fjYkdMzRBjYiA6a|F`AGDj)j1kO!bK01KZEy<<@89|O(@IPWp127NOS zpq~$LF-#m?=8?7cR2=Xaxu?T3%u8zvIcdPTfyOrQy&VU0z z4Em6pf2!1A$P^Jvfw?vhwvIC?-_Mu74wzr4ccF3(tz;mu`y-jJZi7KG_kh%c*#}GW zzKpLMIXDfF(;zTDaZ2RO3vc=!?6yG+zzF9Y+=tHjC4;k1Vh=pVhl#V%>vM%fJuDzS z@DyN=2C;zYooSrom*?NC9aJ0yl>TX;K);1fLv`fetF1sGPp=IHY<(lFkAx>>1Apt_ z5*QlwZ+7Ul0hz~hPISGaQX)zR_+x&`qvChg6-F8RCn+@mfWJa7_gZry_!@cS1JLqo zIiuG%c>~6TNY(_sv~^cj0dp2W#rMv>0iBvbu1N6;ZB^! zo)iI6Qy50=Gl2;h;eWvhJ>I?o4`dGDdJ^1Up9hOA3q1ZQX&}*@LQZ!H>c1`4AMExg z@t^4rm3?I40|N!^@5lHT)lWwX*ZA*~fk2zDN(GcQU|<1581VE@7#)l&1R>yi@ut-W zacAM^FbL7YG2Mh+3)-*6b{Qoz8!;y!Tmm)_ss+5q7?fOG@E=7N*lw}%;M zj$-G1e|-B!yl2q*R)s)VZEgm~^E4mwoddbEX*39AbtQ2LOaX9Rb3hAr6xiqmzTZFg z-?*U)*h);DcRUo18^`Y)cjle!?W9n`+1s5_Mv|xq*)w}@?i?XIBgr_WsLYa;ac8fr z3Pqf~_d4tD_xZf6?o}GoLIq!x?y@D|JU;EKk82?1j z@t>+)<&NX)0TX7_85Ni=KbSOow>Ijdj zf!cLG2xSWRK8{Cye|Xp5o16~Q(ds5Rs*Xogxl%a%Ax&F zU;$*&*$nt4f=?Yl>{47(daxb!Mgr52#dLy_{ zJm$y4w&KgGjT;yF4F*@Ak1Mik&mT@>dg=1|YCG<{uI9tBsX@a5HGsB*1x(y!*|TkuLyOGZT4F2jg()rCY7 z&*&}DDti$66}I4<`r4P+Hb)X`s$m9Wg72zf+~V;{Yqu1!?(gbbTg+-4aOBMe#$hqD zF8shxg(%Jt(~f!O91a&AiyEFDE;x`8;oh9NPSy>(bSE}%vsK}kKMk~Wz?IAUp=hGv z1s&$!ouxAv$$A7?pX$ZvWM|?6+m~V;M#BMZTWSmyM($D*Q z^4Ak@1PE}cca!TOMP>^CD8j`nd2+`rg)deSLf>K)XNpp`iHxz6MH-l?^0yj*ToLU( zFzZbEx1A~oP;(oecG^eX7;h3t+)1kOUSKnfBm8#T0Bh=-wR3|sPj~JcLw*MNMM)9* z3)llB1asXGcwmg?e&#iV$~@vZ-)87y#)y}_ib!3wV6SvInCZ-x_`+?s zWClS(C?aCf z$BMQmlT)DRLn$Q57hZkv`+mM)GvwxG=;69C5%+YBd~xS^E-&YVr28=~3vzF#(U0~yC`4x4J4~V!3mIcrhun_6L`_Kj5I3dMOzQC z^PUvM_Yin1e5n=IA~vIP*eI6Ou!87;83X82)HTHEJcXJD%BmjVYd_$@)> z7nmzbK1qb#=m2Eh22^&ZB^zRr1qdLoJu1zgXc`iWi`ur+Qb$9dzl1m>s==QLvpav*nep;L!ku`$64i;zL7C$?A=K%=jI@dh;&h24T`Kv7% z^Wk&zi8oQTlw#wt?>!Ool&?&Kc_#R=f-U>2p+!5J?it_`gQEKt(g52k6~H{Ml;K-l7-we%1JoA1_p^A3o4SEww3ab;yyl zn0hltnORn@su;4W>sYzR=G8!{Bb_rQKZOeTFe;Wk_R8?L?9s=|sX~7R`S5dsgqE~}xGb*iY zP#oYoV@WmTB^KjN0jjxn?(pkETI@@hYZ(^@I#iVOy>Kc%c!qK;w&zV6Es*cEfGMOM zqT$I(rI`GsQj5Wih67wYbe`vn`w3s(@aBRsmQV{i`%qZHo0v$g4%c}LH_mZ7eddH4 zavTU_A|Bv;mU<-gt^Iy2CR*A6)I;$5^IomlAhNAy{ zjrShD3wN6tPFEW5+6(-BB~!hp=trW6L1O4G`^2*@g~NS>xYn5T8UDllbX4j(&%4;w zAk;GwrI6-w5;?1~xufNrCnB45N;!sey*a>^w)yhu_@ud>tsqLzAeA&Bes<5)aNwnH z1?~dob=5yUV&9p^}Dlf0NZIZv9;v0$AT{oD7-9yPx!qEpLv=b zL|^=)kDot+y}X%YVPRv>b5x0BgHMJQ_-fPxY_CJLC0O#oAIya=4OMpblU*ZBc;tg^ zy}aZzIZ$3x6cMugo;a%1m9D~#cRB(}!r$t%!@KiFUpBuWc7}aTH;6|%Qw|{Q>BlK1 zoa19Bs($Q)JAGAP4=8%sbxk2fvx0&`S+R35Z^DC&ur~0Nz9X`BD{Dx|@F@@?*&x#E z2ef%SbG4_odd)8R*w~W3?Lx8t>JZH_huTmpAE48eQP5!>TbU3vzXXAOJN6*j{((i& z`Jc>ymp6zP5xc^$s~c_^&3to`zlaPrtAdFm@1o}64x)$dtJ6{6@=+zmehBsSzmmP; zL{YW{oQwXiocObN9%Xc^+3(MImT-OEOZ<`sk!ORg(;f>3Uv$aVe_+TMdfrJhlVwi3 zd6AUG(0YTL#QXWe`0ok3+{BSG35~Jj91#mpBAo;Flx_bi9+O=J^srI?IG)|3>$oX1 z|2zEMu3>rlo$NRo|6)a;RjkzJEz)q*Y`8h;?9dzE;4vHWJMO%7X+w+Z8)Pw&!9(Q^ zQ)a2GqAadL+%)Px{kw*(YcLRYFR&VkSeh%8-Kd*%nO0=5%m&irux!-rtMX%xY2 zGRKK7mRoWfXLnPw!~$Irmh3x9SoLJVavk0I0jZ|`qSSDclg1PtE$e2EyUS4o1@Hn1 z)dce33J@m-_?2RiZ*G3;G3irRhA?yUV901cgsMBtn0ddwdIa*TR6syQ#~<+}#u$2N zC&Uuo(A?zu{Py3ut9+=nOxv71$hNg-LvCFE)n+k#+A}h_V+B>c4Eqg24>L6!7ot>l zB@;TH=%RW+v!4kRgMg`aRiU?{AHs{v$?*aJjQ_|Ry*2!(>`J!Jc2AX0jj=yjUPe%>LrLO{4g3ZMtb`lPms}U$I8_x616n`3fg{)2AJ4Q! z>1j7>>=mdb8*AC3(qONz=BsiS9}-GI9-DHx7Plz){L*~-yg8usC|asBahg-78)U2e z>}HXx>)T4e(sed(0iCssV3=c%yWLO=_BK2YiZi773U%MtUV3NCd70QY7FpK|D?LJ` zN64P@cLsZ%oOq}kE-UnQ0?*C>KGfD+0s!B_RdLX0ft9G{7^vu1WGFXhGY{md`WqO> z;Sg5bsxdTtdsOh^9v=AUqqpNGd}T=>D1qsrSk0j_U@!jXA`yq{#wrWuYA@3*MWfDH z>y4DMc+z8GdQgQi9Ekkx4|OjP5I85QGmD2XsyxB0QA1w-!rYNbn0<khJ-vw({O^I7!n=TX4>qOK)`7;0wl!taVu?Qey9#%R7mirEBg!g; zPZ98}mbs6&1Z-Uk(_A1-se3+T-uC?-ucpYs=nu4KOaEe2F$X|&CjF76ty>J@%lb;) z-ZlsOsxgM|(#%xJQ`aj5q%r|wPX74fqg&@1T9R}ip~k(4tKx8`jxOs(;1+Ft!YxC}QbRA>mB)Rxf13HB9WltTc-gtaoH;@ zhBaeE^v*B$zizP%|29(K42EZcv-*hD0mOZ4RVI(_Ssq3J;o{*_StTIO z<`1Y)08ZH{;YwgN<|e)EpG}g5^3+-YGd>s|X+@Rp;ZvzhrSZQp0O$;U&K`4Mduh}E z6q%!0p8&TeroK1*R-goQq)eQ`&*8_IMp5q9M|MNrYMsz;*6u#cJmwb5uz~aCt^e$} zn~6Yl5@4N|-dUJ7!l-&rUGWy@getjqHrB+wGcX>ods61_ge;F{#a5m<*;NzzAS`*W z3Uw_ ztR-=ov%=rU9{ymk?GJ33pz%cNE03AnEG3k`w#0R9~OQ3*o-m$nBQ z=1c-1MRamf)t;0NIAToTLLF#99G`>35p%58`}BxRa1p;5vf2HS)G z+zDik7NUv2#?D>MEP@*W5710A&{8e?;Rm9|cJ7+XF($|2rXeL#!0T8ua-hJ_j-KDy z2!58x{(R|Bm1nhzs$!91rH;x&JEWOvlqyz-YACHuL!eu)uFm`!cIa(>Maj6~1E|+( z)BNqOYduQba}bns+m!`(YtgM{x=t(7@=YW?JdZSlyh+9sRuAuWJeD0fq`PSs@naaP zM0{jdmQI=oGTtuP^KzoBP__J_rt#Y>#62%y$EHw*BYBiAMtnPrqyJWg$1>au1t1`l z$CQOF&~HC5Fy+>!VYG!eVB}jF&wbm1{qTuzlBdEFFu$UH^)#^eWX4n$@;B`BlbrRUsxg!!i?mkS(|i9W5f+>9(CpmVc~?BT zqvJ+x&T1l+BpBl0&tO;EXZ&)Xe$W7Uw&`C4A!qI#Q7ek`Ol!^``OYTr*hB|=()6M}Rw*R09 zBGs4sQFD_;h#piQ3$V^4Rm22rZ0UL%ElbM}z}Q5H((quniV&n7)_o`-02`?RLhcIW z3Me!ieK9NQi2{-8shMshGaCVP-;F@YQaRM*8E*zclJkT5_f z2B89}WnX!$Iu3=^&*CEVpyN-G_P^9Z4^S1WZEx^GkX8sVr`xm;jm@8B8v=a5O7cbw zk3z**`!}$iDF`rKlGduSwi5`f$7E(BOQp4fa(F<_=v{Bk9kfK>dwK(-~7V z^bA6gCtZhVA~O_Dl?zBAk!(0I6Zm53D&dc(<%h)1TWx+ zi|jaFbeu}b&QK`$`ZOl{Zmmh}%Hxa&BBRIAAPD+~n)+(NV|~5(&e|1VCaV$OHn;e( z4WQQpC0xr7NRE3$wt>VtzA(+@D$qNjnEzb0N?dUR5rgJdeS$6eIJaPoN71!ac2A4K zO8D&re~F%)z*Cw)3^u-#2XWf08Eyc!_;_uO%5QAbR_oCM_o_$n`kI_2t)Q7xJA9a} z&mo6hcE^X@gi0?>RlbJ2SO4rKWA@wq=t#7@F0~;al3d4V2oO|qZ-#NWTJ_L6VAoJL zLB;E3?|%BBz$vl3Unxu7jqRdh>r!geKgKMeFR%_23kY-!17Gcuz&pU za@_H(FW#FcnU@G#hafq&|48{gapk$@ek?1ixO%0rjL9k@>xe1Fk%ga(OSsuwZ1TnS z7`8ponxF=PtJ8dgT}*$5)JDJS5>|%qhM_~RYF!@`mu5CLw zeohQo>YR@;p?l!id2^EW&g0AFiI`-ctmMl#6w!k&0`t*ceeVp-aVz-vQJg=A>f5TP zvM!g5##OFA{cb>GI;x>%+~=Xrald3;=(BUr(dC@{f0uAe2P8UGdw*uL-f5VAA;7C9jf zf6sjC>&uar6a<|%sLu}HiJgcQlB&`bYKPiNNa>!(Z^CVX%7Li4gC3{QpQFV6jcWQk zM`V}pXBuj&bs%mKKih{&v|&-P^tMX|_+!$jKm5JVd$&mT{`aL7Fk17u2XUp6#_cpK zudemQ{1kyd;Z67KyoGgV;0LC0IN%)uaG;824<+x>VL7m%J4CB&}yEwBQcq{1z|wI2UjD zAI{a=AT75KdncSv{vHH6l0z?wWJ#a3=JEgV&$~Z;iJbLePB>|p`+Zg6-6r?q*qH+Q z)W)uAUtWx++u;2N@!0Ox>#agOjPH3j3*i!kfs}!xE`C~hE@BYC6!fIn*S0tb*6JGh zHJo_|W|hM@*s5#uv@6zg#j+p&04uP8rd!+4?Y4ttpSBIOfq(6pi;h6hjgYyOVneab zXBsjfJoKfDU?(_Vdq^aK6*6Y&sb}TP$QCw~y-OTd?3CSJH8l@$mC! zmVta+#rMs*l{m~LdeJ-)UNfgq4<6fTtX+8tpCL)4_IKiIbyt#K4%RqLJjAL66YzL+ z8!mUs>`LT?dU2;wk+3$+D~lB0BWzQlb_YIudPZg5AFCIm zX4FzvfptfQ`<#m)?dYBsp?>P?^^ zJ6q|^3+-BJHN=9}kRbK)SB;H16CI~T?{5`U*o)g~e-xSNIukZ#aZvLJk}pB#(mOZ= zzM}O324k3+yXgc-hXh{~i8-ArX2zOr&4u%=8_NnX&w$Q7$Lez~s)(+D1V|ISy8X=i zZ72=`q@qI(4Se^RYpOyLxggvcQDE-yA5Yq27?xh)HSCeHHK3VsB_d`ega5KEK#arR z8C0N;A4;env=rc2KB0l~8qW(}#h^Rs0(I#L;G#jmE*Sr4d{a_U%BnfF;r#eGCHF}G z9r)W*(EB?tSydP1L5i1m`KCpieT$6od~sWhdh|)Muv;X-b`+*Or5Ar4B>lKdK9g4G zi7k=r4ltDXwOiWj(jSrUlYPOdMY+1n!)&yM0^M)1-4_{^Y%3ZGpYH7*cEBu z8Qpr879Dqt#S@Ukgdp;vRk4v&QiN9N)>) z*ddwk&0G&x9t?S*ND2Y?fI8gvaGE&D$$qnBur=fJ7XZ#*g&ZQ)5fkl->L*JVE0(Zv z=8Ru&Ypvx-QWe6eMnxgCu#{jl;k+=M@V9oDp`|_aUb_Yj-06(B814M!%cUUq;?z^T z*b0C+KFSq*CH)2;rK(BI&f#2#^;{T~qP4*w(!O-!Ev>kWt4rFq z`BN0B=9&>3vBN#_K6>Wv(?zDqkbJ$H6yKErFR0$nHhp25d$wUXH38Cj|E$!KP4wf6 z7OI1o7cG_hmn2AcyU`D~k3D#WMb3!ov?Ex|Kol*E=W)y|svw+Y@qQ>~#!#yA;KMs1 zS9YI$DiHDex#Br;76wN;uFV7sFHEI`++3v6l&4vNoKs{7#O&a8NaJ%6!3c<8^tH}z zH-UydTHl{nC%U?^KVEp8aTKRLqZ)|`KGEp?4?%$Oy=x1Y@85^q_*UseerT4ujJPDN z_LU4WbwK=s#+FX?dFjmk5K_n8ZA5wfbjYCD|$hJmK=r@kL4Dx}2&Bn6zDH4!}t1!xU zEy&Kw2nFs(<7mv9OvP(U0+nog$e+;a({w0v<9^v%s#LxJylHrb0*CREvG(Sligjh8HFti zbY7&Hx^B`wSO@XSA%_x9Z7oC}yJ(sYoyMeJo?0qaXCR5sm_O#UJE)&|1M;ye`$11+ zd&2;RY8p`x5k%4FEl4unA`XTo)=yxz*eAc&&A}nh(Xa^%Hj~^%PT;lw8 zi?CEvHmAB5d=1Yd{v|p|Z=*9SY;%}uqVhLXII49FX$Mg_7?;;>)Grf!E#*OY_+#K3 z&@!y@VLKwgM*Sj9z?Q%m#p?t2jQ@*Lf{1JcD{T(7{m_&`rB5XS&)-9v-@K)U*FQW3 zEK*!X@dWO%^`#^|W9}fqYUJva;(H4~$H2JY4vx0@Embf7As4xPV|q8*6DXFZio#D0 zloH^GIQpO~K{^!@Qu$q~h+`@cm}<&V*c_%-NlUB5L z`|r+&&B6)PRbMI5jsRP*DMxzHl_CDJOm$oo$$V%GP9;ZsKb_HBYt?H7ezGVJ2h6WQ zz;P@UYA{s9F23m$Zi|=zV}76$FZ8RctRRn+tkvrhJARwo<03tiKOf!LMPZY>WIe?D<>~1psSM6P~Qh z2gvPtBY}rGGJOG8o4dGPUKzDj%ulPv2l&%_3%*l>98ER59{J)fHjlcSj|3Gy94q3g z627=p5|#t;5J;xx!khP^EwIACVI))Ri-#e%7TJrv=#~rJ0^$ufgihKLef9(mFno=6 z2wWQwA7QeIsFL@f1SpNY*^(Eg^cbfnQcUxd^6B>1-(2?%Z_VHa$bB)*q%~q?7(P{Q z&?ziG7~f@Jx{T$LILl;=BBM`fFa$J2jy6^L!i=R2^-6mjcIJ+P;ts4t5o?))$3<9z zvF?|eGo9+!d|n;gUNS>nc}T$hPy0UYWdo<~2OIg9T*`ta#zFBRy}=dP&AV3i5%Ee(bLqEFne z9J?gj%il1jt)UsNEZKjWp`7#liSk7f?cxnOVPj{_>9*GsD?7^`?P`BvlImXmnmiHV zE{nljgO@WMzW~Hg{UhKWd3^T5U*)2rb(U;-m~Bmc=4^CDF+d>QlGF}aY_8;?qb)3qZ}yWang~5S=!))dbBSRRfX$pIo15hGRu(A1uO_CB>Td6`bTYQ>-t>)^mw+~{8U!;K z)=4Su@P|_tmS_YFwT)oclH@H)9>j8R`oki-18isy?04O;N90L@*DcT=sx(OK6UR1d zNgvqv9?flL$)U{ z`l;^=P+tkrZbl|v=h-@9C5E9uD@E=wF6dRyOgV1!YrdZeJT@vzwMI^VwQkJ;#8`hT z(dN>Z12(SPXC53R+`QUJJAQ9PwuEp`5`>#c%;ps;i~AvB$AZ2)Z`(G}dFA}g3m@W< zK*-WU%so*%d1hI5<5H@ZyQn>=jO82Xi8ZSjla&rNImN{rN%|U^* zy{v z!P|6mgB=f);M{;yd;;0rNn=Lc0o3+<>*L2?!B23iHU$2%twJmf*D-Dds!!(T1$2kG zpiX0=81o@&pO7_d6GuLk#_!S3B^hd$98Pm#c|lLa#yn zcDvgBs#^+bE&i$5?yre!0tbIaPKM?2cE>Mkzisj)&t=u`+^7>xdgS|-gDIEE1;V7}aPnuzsH~d2& zr!J?Sh|Ydz5lD$Q#VVQ=TKhb#Ky3MA8_bJ2T2YNwjB1qBF-g_n56ahVPmO?hejR`` zEC{_tv+WKiKlzoH%iDhjgK1FFM9@XlP@eF*Y&@xo_Oie7PjiYHf?&`rm})feLj9BJ zJ*P0D|I%+oOCqctJ3&&5c8`W*kUe`QpoK~!$&_KASfcba& z34ZZbo|k-2ZtaZ%^Sbj^u7BK7(AE@;Gm+wF{x!SO-m!~5y&ijPk$6tj!w2C%kb2Kh zt{zTrx4Ex`Y$DGvKQNc*m<3!bxK?`$AGN+~Q{=|%6G{B*((K#S7#wY@&zK5`Qv-$I zC(+%&trUK-A_aaZfJxqE-3)t1L(@-y%t^)DlwRLl^mu(La zx3U6YbF5JHJ$b&cjGY(fv;o0WKop)*3(86$0lJRFzaZ`()gN5jh| zHjQp{Z^qi8pTkp9w|1%jleEo{W5fv5bm=FtHA%pVHOLdB~^z$Y_r&MY2|%|xF= zxsLg3fm?w-^%Pv-&MY2%rBE$I*?19PZ^HwB8Z`?X38K?4KEYAZOm9SwkftR%LABu{ z1v)CCrnxWX!$OWft}@JFaGU9$1HTNVJ*ywM??6MZxI2J531o?X&ffIvuMqiTs~|uZ zc_C?g(YXE1?9tf<+hEE*mX8Z;bw;-;;pO^xNp5}@4b4Z#J9fE9tE$q>FHz8B%mg@2 z#k&$+lkTZK9s^}ept@|<3P#R9o~PJItVp^Q1rwLKNhSHgDeT`Sa;5jk7LK9v@LVAI zq2`n8^~3BG!d2^*wK?yk4)m$=2ImAIm%Hb0ABg^tmjb4Erk-kX;26D8gUo}LLeA1)^0n!lQk?1%s9`KKp5f;qN2!{@|TJyKpgu7vh4%owcpt4Bg|~4?jhdd}Jte zMxgM(!-T?zjVaOdzBqqyjya={ybh~ z##b5BNZuv#<@<9EUiKFLqiR#UbniGyY8KgGD!uJ!7ypb(?xxR_vR)LS$+rzRMZRyy zPn~1{q(jn{72q)pzhF7i43%5a`Mnd7B9~Q4kt#ethD@`JF1>;c57~OS|A{&WdbX@NMzu=wyKHW9GeU$+`y;tPFvG*T1eR5U8~eCOys#BLn_I&=%-w8*T#20YhriwHwy$tNwLJJ-SQ(ptVBcnec zmG17gN8^_EK1jgULbMVr5(-h4bNFI)Zko%$$CA$pe<+7zGxP#Op`>-xcK{39ooWCDUS43V`#-35;w0c7XnwznR1C8=N?g2o8`z7$OErlUYd6$e<$}V(LHl9di zp+7ikD+^#g2MfLHHeprQIjcj%u!wt&34wqqyA3|2i5QEr`NBuJwSWs>*56m32=H03 zhWIimB2ttPx1hH}J2&W4#+}?fh^cN~?Qd_? z<*KGMRnzPP4I{69QM<98e6oFV@tG0DIaXkMN-eg%$o*t9oJ2c#f`w*}%$lVm!@De> z?6p;gfHO|8vV@A6;36~fFbEX1>HEj>BkR{gd6ve|64*7PX3^!hqu=)vH6(HT*4%Qm z=pfn-%D(l|IXxY0=*IhH0>>A_*A~&$ind`N`sJ>8Q0~Q@3V*s=`{(!-mruI}_|olB zsx+y%21xkF$tH>QvUQ?x1YgOu$JgQT(0%0*|8~G{({EO5&FU|}W9PsD2Bj5Y^x;4+VVPv|< z-S3L)D!CwaM#G^ZeIyUVm3zX5g!3Hu&Pfu)!Xg-Vypy~`m+*O*5g~kmJHM0t*)Dgf zZixZet2*=aOYhrgB|pLdD64aB2vPZji5BH~@vH`~kKW?4z@X*K(J~7qiQI8$$dbt;MXCCEW)=L>fLD;-N zbbW-E^Vz8Wen~_EQpUgRW3U2n{ponT0BV0RoH-A}l3Po|2KsgI605fU7&XQj%e2e6 z?EF%{pmAAdhI>p1eV`eI@9Dhk&amQQy?&_to{ZNJokm;MkD4j$sVLU0ZRLZdb59|^ zty+H!A8h@p+CE|pdje$)qG<7iR^Ba2FD=DWr9f*Z6ovj<5jMT&uCoHfTAU^uRoKp= z^e=$=?v?>BHQf>}Ik}-p@Dme>3aet8AR@DI!vR>|UI&`Y8!F)LP;Y(_B=`|a&C6uC zkt4-NyKzmbWKnrqMvH%W?Z@O&Kb>hpOKZT;Uye)13aTNO1*O;JSi)`VC~Z-(CA$eq zZoq8TMPvR~`4v)o7g`RHL6sWLLPHi{ZUBX!6E`|7f~CwV;@{3LV8$3#45nruo6n1f z{)y*7ZHpSE$e!xTA2Qcqx-!-^!j3^V>V6MSkf)r-P^#m?iT~NJ)y5jQGMj_Xb;}(_Dj(P4Nm6lm`sr{Fy@TM6oj~=M(LlTYe zL=&?B=o~VS+?V>y8%brxN<~ki1XIyaucX!8^Vf@|+JZFQ)=jvQvD0kpFD7&&K9H9=!XLlFZ7=&j9!9LPaV7F0 zA`VUm5*xxY=gQF?bAQ9(h?C&Pij zko}uN@AG9v`5rNHJ%0(DFdg%Oz2;xM!0Q`XtC~nQVtckgerl56k()}}R}m~F`fkFa z*HdkK8s$6L2<(DApV;O#gtkJcRGBJ2`R*ts$$`$}QvWDdCXsC~vp!q&C_CDV)#S?D z;uFs_p{`Sp<=TJ*A*W*4t+>3*@j9h)ET1EZ2 z>i#jd8>Hju){lls++x~)qM2UU3o7*~zheUh-Lz?76j#+$b;kYUo)lqb;_TCpqT$*8 z8(nvDW#q+ZN&bVka~7krrHt7ajYtIO{nhH-`_|%3&N?yF%E&>Kgjb7k4pCHU&n2t- zZe|Yg?c_1{;DU+GLQqdz8$d1lnrPn>tuJ$84|n|D0Qgf%TCBfSY4ldKL|2-G+EqZziVr7@Wr%v^L&vD6%5Zi+o@cQIm{OkeZ8Jf2@JE5qcoy55w| zp6qjPUi?|Y?4jhHhCXf(sGSZgNvMc@sC6}ZIZHFYksZjN;@AQS)O&Uw&ZxtdsULdt z{`FI7Rls~~mL)6mH?#gWm^NLUiZzcUPbDWAv(RkwZ7OIgjLbX4X~0@WlCu(7>ig_` z*shM_FZGeJUHX&5A9yn;<4rqn6-ng!ApIx)A_UdPF9#34BOffNQ9T>A7+v76y4zjj z*GKdZ*D{!k^#@vfxLv8A?`vZliwT>%u@d5-koxR)@NPq(R#T0NfKX3Zaf8>iVy)g# zZp+(8_Ht{fS^COj67{pkJVV^USGX9UUn^ZXe%?ua{nGcg*9RXz#JbN?(22FMTvFrP z)6bJLN$qao)9geh!y*f*pFt7ima@6#+bS{cCLi*pB6QcgT?nFMyh&36uV|ynd^ft= zPeDZw43wSBoj-LCfo3CzBeNs+f0}8NdFs7peT@qqJX@2y0b_D@vh{b5&1ZD7bS*2| zR2qWo@l@t|3dhF>-IU4_%4~N7JpLfDGVjhmYYrEsQCKR`4|G*E5jBwl)@Tma2}H_) zT6m(K>29n|C~(BF*1y0T;w1k(Kd8?TCg_%U_nVrSp4T~@B%RDRtH)&q3r!lmXWWRx z!t5N+OY5da$(d4r3ox5e#>iezFH@yCGNuDXD3=c+y}7|9#&~_2m6nzC^ zJ5v;ot4tb9WAg2&GhtF1XKM%dZ6f#UDG}SVvjP_qiYiz9Ho;r} z&6y-vX}hkGLv+LL7P$#Z-D|3;T>9gtKQ%v|%M@dX`lWZN^UP#kvQD8*>{pgQ)jf|T zPHWk}=HsRvsov8)mh{?&G_G~;)hGT#+a+_q+l9)>Y31_?YvbHhFI}6~+KunMTaT!7 z+V3jspNkD~8?lEsBaG)V^W|>P{|=9{|BnU!VsoFpM;?rwoOu`L*G@6hDpdA_dpNEH zr~ZnDG_>_9heUR+>+Rg5ZnK!^oAvYgbB1%6bFD-z{$kA`x_96c!o$VK9RAC(4uQZ) zxU)_CI5C3#)=_E}om}TNg$997;R$rQk7BU-t}8)tU)W|y0j}>6hF$;hvCVD7(fqzN zUs*EM;F@;L0zLTah^UT8B%+$-Uy4KC-&{Z-*l{Leea zJMTjcf*umCq$l%!b-#0Q_bG4~W#!Em@o@r~C)O^)qT>>I+SQE+dp?a$&XDBXCDZRX5`AJ=DBcSq>q{naKvDyF`3L`W+4 zJdH#?ma6Slhxbe^zWMl@)4r*yl0#3xn0@N`iSdzfcDh2XPa00vxVOSRP6m6c!C>=_ zOKhd_U*Gd7UoQx%d2g-^&*?@Tz>^ySeJyt*^>^y8)GVeR)P+^rCqb{J$2)=V{NMTS z@1tY#0VElTnRER)Lb;;KMWE|qCR{qJE*>#f#v!BZ!+9C^D&2gLw;%`l=>wOHcow^> z%yvj46Iu$CQRU0o#Wg8yd&@b6pOseohU4?We7_I*^PfBME04XRje<%AjJaQ3&?<{< zcBIN~U#({0>tg%rTi$T_-6_1st-(N#d+494fQC%AuEF!)sQ&O1$-cZS@v}QF zR7^nrii?0W?)q+Yix0=o>mB7cuJnAOhDj?Ukd9H3EG2iN=EQk)kF=se)vXKpjgQ#; z;cS9kjwY$bQ>?gy^=|c!*X{0Ww?3rsy&A-ChxB&-`!3PqtdseCgm;6G-nS(nqnR%9 z{_Y*=;@m@j@tzj{&vyliEgNjaI=t6JtGKUoOjEgOHAO;NCTMI^`1fSx>+5IweO_^fZv--hbt%0&YLo+a&KG#NypR`mX_>KxHee3?s<|DAI9{P!G526pGv1Hg3GCq8SUkB z;U}%74}Wr0WWGw0MBk^c(sIN9Fcy>lS+~F^qgZRb%JTAsguQlgw+Gv^1UH8ap>2j_ z5$3)pF=-)V z2-xo@-evcNNoQ<^xHSlnd}c?jVSeeB66pwLxBu~U-tTOAoxk82*Ykc}_x;mr zoKK5A%1E)6Ibh9>`4!3j!?njY=~K_9rVEgUNUsX+W3vRz-7(b=k!Il__i#t&X+w#s zclqjeSGBRtk#&;+#TvEi*%RW+Rc@akwq4(bbF1`ySqcQTxo(MjbccIh@!)zcJT&O` zF8|eb=^4YHwJm77mO=Mh`SbYYJBL=i=p-w3oq@}IN}|nj8XjL8LMl#XEm1^i#XY|$ zk*itr#gRgz*`Ae8OoUb91Z}Y^Uaa2Ijrq~#?v-~n6M#ox-z!;MjfA%=dH+$X&mCEY zS$hipo$HB-x^(6(8J`+w-!1hfKkhS)J&);H*PnMD@qaU|EXhA?cq=KISjIzhSLTc5&SU_S*z<>q z?jb{cR*VJ5IF38Nt@QWDW%#oE>uCm;Fwwdq z4IF<4(}vS+Z@^01U!vFXABwQE3oN15-iBVi&1LTRfALQLi8e&wz#epbi!>3y)WJIO zSX9;b*IdkEvt+|Q;+}ll+%t!pxP_WUiDU;7rm&eC_oO+GD5L12F%$WTE;cHQt3_;p zzlcvuEJf>bpiI;A!hftCA5y5i9c`FGXR4TmT9y$`vzm*E*}FSd5(6y|_~Ag}lGGa3 zRLMygqI40q+a*T-p|>un^hrN&D2LSVY}cHbSQtQNR%=+YKEKxRR^yi`!5y6*mGZdK z?*YSvZ?$vM<4mdY2Vtg2DbEyq7tp)^l+1+uCo@fp9GjNU&U}NfFFtBu{$Z>ccV98a z8SN4I?A?W`Z_PiLzZ}@|@%LqA+q(wixN8|QAPnC@GF$HleB%DT66mqI*XZR(gFguq zx>|(n_2)Xc`p-%{O-paxzBY(CYJG0bxfjs12#fj@S;si8lquMoP0yh<-`;vlgzg9} z!1CzDyT0L$4WNcy4{vNOXKW$;dhRx_c8sge|=7ZJAD>2oPn<@=aH@?*7 zX6g$5Lc9i*UehQ)NULhD6RxE9WvJd~{7pyv%i+8dIQ!8jYh$?&?IfkQ%-mgc@5VQg zFTOOr);=YM$-+%i33qO(W`!WUS>N+N^8F@qfhlPV_SBVYQvFuT zl&XAP@nwQZ_hESYduAE&cf^IDmw?8HE&p!v?=Jyv(C!P5QnP<~2GEs%bwB*`nI?@U zED(Ix=Op7c&?sm6+2lIr-_r_O7>&h9KLu;ljL@D5Rg9a3pai*lbxG{cp+1Mdo9F&3 zlHHrw&GoGe^AuK&l|U`q`SzX$<#hd*RnTQ!kXHpFzKG)LE8I)hlEEKG$)zG z3+bV4%gU0Z0Iso=_X9p-j8trc`@R3}*{AYy{sDeE3h8yIkjWMZOW{gsaU1eqN=2t* zx8^S{o=wu;W&UR?G&ebA5Wib2BNqIA(LVVjF&ZD}o>O)q^e^wo|7CO7K%%{zII#|{ zb^-1};#Vfc!zk1yR$49sw-#@!K$X_Jb`m{e1 zlCiQfS^T(AHdAFijn3wwLMG;BV5RJw*6^!7hac+Fz8r{|+9M&Q09)C+&fvjck>PUN zB3r<30WGz4JPt#ATIxYo$G(LAhz4DVbFbh^oQv{h2UcBP-oznwKhKtR} zgA}*w@4hzo6tn+ns3IHxf2G>5?5$bXn8X=#dJnRV+HbpwnOR<&o$I>@DnQkD z7{wYX7MXqJ-txoI*<4n^SlmBuNmEY#V~PgRcB#b{ zs99A}!MltjtyK81bEJJwCHsveEt|!JeDybn_dE5nKK(Ob#)mXZO}A~n#lOb1^+AK9Dv&r$7ng@o2ENq=t5?bg@b-@&0tDJi)0I$^L!`we)HeWwEwsFw0Xy=^a>%e%6r8e z$ATZULJW&2aGm!LV!&#?y+1)ShB^9BvyWvrF5G`FcNJ$8fh7OgocbGjjdDuHKaFNR zTghP$_tdkiWxYi=!_;s6FmvBs_3j8r&G*%{Q|g_?D(K0Fyo()QA-+=}tMQpGM9=pE zZ?BS`lP16;#l{2FoVjYC-%!-{Wb;F?@6FE6no#{rF*6P`@zv)}2W(a}S}bm7JHKAe ziu@u3jk((K=3ajrXNy^N0@=-Uo?MPlYmz>B207!f}_g`?ank**k=BS2TC+(Q7v)f$P&f!yOn)s07rm&HariwS&n!aVh zA5$*s#?kvJ#TV1lFZ7Qt?tbWdxtu<=tbPx%b+fcH71$QEfcyFjCF~Zwl3LVuXNb;(ZN+Xb09GK_#w(t4Cryx-i$0K} zMfxcDhC~TX%6?oHsHi=U&Uvta{Zx|h$oPG}n(lLsuJv2cSmp&|MbaaS=2^uDAyIK2 ziqfqasyD3y)XVC{eaZIfgHHko-o8L$#~ei?Zljj6bn;;B&kFA^&2laMoBZ(8 zxf$oM>)!>B;yc6n(( zYnaiwyD{QmJ3S%a$Xj%Hj?c|N@ptFK%x?b8?p_RPo(Z%Y-#PlfBFEZSdBlaChGkI% z;*$l}c4P(uZkS03DK%Uh=C1Kz4Uhq8DyP0M6A%xmeE zR{%m?I?gm7ydx@0er>t*sPG?>&Rs6F+4&bXqLT5)Ism(na{fnrbvz2$hkZgyganL% zqGE&WzZDc`F$xbta_;$@)W~iu-Y?~Bd}ZY8%p3qt`uCp&n>;R8{})rjFF>Yxg@%=2 zA9j$*yVkfBVCQ2$aDQO8&Ifcf5N-Mi98RJ8eS+dvxftNl`eoy zPY-oqS`fKqgXvTJHgW*l^%$Lo6+yAR1o@mEOa4P|-j$VRmTj)&f9iAFo7WDkp{6-E zSS!roA&WMP0X>cr82K&W;S_y&?HLzsdc>~)-%E`j4+>rsoMmB@@_nLbBDct0kyUo7 zB@@ZY+w(OvX;A_{=x}Pn7g3e2QA`C2H9pmIGlr|ra<4tEJgMnHemsQxGOr8VClNYq`1H)`cpoq7Js|YgfJIe@whJLVAbFG+FyECZd_ES|E2~v&%Jg7UV={emj?A2 zSDfc~T8@XW&mSehrabw!ZWmtHtA={DpwmNDKvRf%j)Rx0{1D=ym34Y<{k{6bq7zkga3k z`9~~un&m4keAkxKwVDEJ%;Xh5yC~}XLka4J${(!FGe)n?x%JI^dvoTYj?^z-X`f(d zH9sEe`u4WOeQ-O-M!ItS+1>V(uj}Aa3fK{ByH&90{qVI<7XMn-edVP|2=BxGgWg{O zIn!Yp{=OHRrdlzjV)`>pLe13=5?n-Y$R^Vvdm3qcYM?%#fNk}vE@Y{q%YqDEe}w;! zyh=(-bbZX+e*vqO06{)EX7N#>Kkx|ZGTt43-Hhk@%U`)(1@|6h+q&_tjQSsL-HN1_ zUEX7SMOOj?yj99pUmB|Y$HEekbE|lv2XW zvFKsYc1!h){le*EF;2s4y_2OEcarM$mj(16Dcs&#A&)x0DG7>D&!*9EJu@6R z+&&9p1gRPoK9%Ph&X_XRXAGbL{#0+1b^aS8hn_PeW+Ums*21JS1-Kco8SsphOZ za?k$|7fh2sg#mVu$jic)hPSP3nG_kJ9UHq}-#vh3x6}YhK(@b6-=XFEJD3tW0xH$z zF~8*^k6YzfF&Neps@8VEy#RY9z4bEh zDu%BzRmTfipR5u5J-v15G~@Ay!})hE+rqFSRf@Oc5b6y&;N`D&6}&Pqt~K2D%ZuiQ7bqhV?fh-_3U8cF@ zJOa1G`q`ZQX@>Oo&$>g=qwZUjwHtc=OPQJkH21^IPp2U>8CJd z&-S5#4Fo`&v_(bz(#=9Sl$1e|>1(8k7HbECD#J!KFz^Oz;(p10sFbVLdw{UrPL`GC zc8dCI+H9;GTuMW%kqLj4dRbo?@)(I;D`Hu#{DpPW-s~^Qb@qLg5L?G??!RtgZsh%{ zTRwFV@-Pbj^0l+PqM08An*jX~49D&!9qb^AggDb_#HG(2<<7+X4-`q<{U6W5_@p-8 z^7K%gq(ZCLoX>$aSb-htn^4vpKz|trLOfwk{)>t7N4<9hOktE&>S)Bk?(xQg$BIiR zWN-shUEOf|vzhRG1Npk!*3lB+gOluoo3XctTS=R((pU0gGohPz2R_YuY7=*iD>S9b z5`Ht|gCvpINlcXfw*EeEP5GWIulG!>Fa!NkLq){*I{|g@e1WhR!-vAqzH)}YD5Uum zQ9PmYh*d^?{{Y?`ztmN-u&Q*ehGNCdEae8iZInSde$2Mj2;Tc)|L64hEI#?L>-J0V zBK+jzu2UK#|A6{8_$uV&?)6JHVav`dD`2hP9h4X?YFQp9AT?utmpBd%bwW5ty9&|! zKvHv_9Gk{a1x!yK?n(<>bQm8lM>fE|A$it6=4?BQ9Tw&LK$=?|ujUKIa$1hW9}U-Q zgK1T8&UB@ZaE*=%g$kqMnLW)5karuM5V0(twl4bQpi3UL#TdNobUihOpf6}EOxL@T z1rzXB)l$C%aR+>ub1_ox0Lb-`dBI$f@-^U-P(+1+>xt;e`-4Xd`m)Rrl5dWa=}ANbS#dW32J!e4(LGw8J5uOk+6~bE>r-z{^{~bfk;km2%H) zH|Xm+wpUFVUuVp{rI5(uDSb9U0Z`6FhD#)6{oPnHP98vGR|pczJZk_k+9h`n!<7(C z)t-{4YBWYz-Ff4(Xw!1I9OmK?*7zYY+yjvq;W2JmCT-oiCDKViQ1qMSL*UGAC1RyN z^;{-*n6TnZcg#Q5@PT?{G^~#6AAbH!w|ev^VFI>qby(B!@&);7*y>+FSFOndet`5( zl5Y5aPf;CULp?VZTGTAr@&u3~7i>@pxPIah9&^vjim5vuhR%VDFcd6k-RSh7#*c!2 zYF2Gh-eJ-}W@3R1*nOqb;jo~fvxOyzia!MSSO)Q5qUsi$^M-UXc}{&MI|Q6qI!055 z9?={}jY>9fu;6%OOYiIXeF+Y4Br89qz!#Jo>SMr}D=!xI?s0TFEW08SA*3Ej&&9+~ zopfr=_7_iDffB&=YhoT9VV8k%hq^d=p>?prVfPa{(`fOxl;z7LKCD+mB$I;i3Ma17 zUM}YHee~8h-6_*3WQifHLP)7{v&hx54}?d&fPwER zg`>o*W7rjnMg@jn9S@4YHziTm8Z|WWZ9i7^>xF2U`D~bS4?bU!8%9=r%J|+{mJ58M zs17yQJ!CjDf!V6qLmGMfdo~2}_+G7U3Pa|eDj3EeM$te}6=oDwJAKmf$k82n#@%W+G5uf{8S=&kE z53+;;;)oR)Y3Qb+cU@xLk94u3aI#1Z;#TjLl5x~7IpzKYxOhcEjDp*q3Qy%7o-R~_ zxSMy4-?QohG(DwkJG%5UM8$Xb)j!i!cF@_Ns1NP}N;@ZL1dsJ5{?nVoVB$4M{knCZ z=twBnB8$h3@Sa0zbGJJa?*pKI3x*oTc86?|rMIn2x{XD5ZaH_EJbY?46Jy}Kt_Nk8 zvcVR6qKm(@;>e4`1zZ_{fUN8Pc=(P4|Dm z4a|GaVSLAfm~w@HpPPPD;C{|0f1RsqJRMFYFF?;I+XyNQ3Sh*3VWX(^6=&Sqc-8!^OmkYDINOdBs7pIU~;{sg^Y z{PTj5e4*yx`sod|?sr-tW&{=e6=QgA|Mz0)ae!HQ zE)y{JLN#608!&YBzcfD)*+smW7h;gnPG{W(Yh`Vwbc^9}lMl%qte%>LF)9f^jTFYQ z_x^qh+&{Bkf~Rij@EG(J9l2QHfw-*Zq=5VzJWz(rdPLlggfisPXLFe&{m<+X*;i1Q^_HZIN2uD0Rm4QhmBh z5dw;E--k6M;GK&Y78AM*5;RwM5A5=At5o>RWm<3c1PSf{CR7bK`oSCL>YiF1?r*Jq zQrL<@=KVTyE6ejH0zA`9_Qn$6roU6NK|}ksKY<7LPAZ@$O;*>m*U56a^o~APUlSs; z_Ak<|Lul>SLp}A*DS?hg=U0^g*B_OsvG@~!aogd#U=%#T&B1etPU=U;*3ugoVchjg zH0y$L8wlMQKR4GCQ)`SsZKcu75lw+H?Fi1D&OsphvVho^l&_fOf_*QVx9rdXbdeyt zJQh~LE>@OSrvKm-i$dsbx zYfMx5N+q|cJ@2^*hoc%M7SqAkR=xeL{;T#vleM!1?AhMyoH1{wUNsMGiNzeyh9~H* z-X)6F3^}v`omoXOzjA`TueT}qcmcp>$f2`quT$+V)kKVHa6`Xl0 zsMk!m)041Yb@CgUGS@P}Q2gsm$GJ7)T(mig*9}|_iK0r?_B{4xZ2&+Hbq1#Jgf;!2 z67~tb@xsFB4VLM*nJ0Iuh|zIHjHR9PqJ8N=t2UF*tKR@KchdJ+CICjn;xw8vS-B3| zR<4`-B~n|cSje^~{iPY_=|@Ep=M&#>HW1kR&boFqjv?-$knnv`wv@7DjP(Fv;f7K5 z=9o+6o&c-R$@avIo+J3e#;m=J^wVT#p&djRhKlh6_C93OeR4%xwMdI?VcR-N0-<4G zZ1Ett)5V~C0pcJTqmQ8C+43@)KZa@*TlGKX zW{(B_iKL`B7GoYy`yKPEXHo4YL7jic4|J?YkC5-ri=-x5bikMx7q+1@r{R|ds47Ae z+!jK)@Vi%$D8!cA-m_L~lF?~1<>pBgzW4j?!hWQ8ktNF&4i`A)Cv{{GL~?nwmnVDd z|LSWieTtrbKw?*IEYJ;PI=Qk)q=UT+7&W0x{Y1yZ??C=`&e}FySO}=QHw5xL$(RIH z4pF+QA-`1D$ly(EFct-EThixLd(JEQbMV(i*w+q0GB$VWRJ(>MNa66>aSHlrx{huc z*4x-3jzP}n01Bl9ot#IF(ap*N6Qo2@&yh8h}{>6MpPEyTQADi z)oNh2Na%!vHG<2;e7}(Ab329jCjh*K`w(!dU&X$CwgN z_5i31=_+gL%WdE!`l}Racp+FQ_kzF?ilK?fXw85Z_MLrAy^83Dd~<;u>o;*KEOPXq z{4XTE=J_wJf6+(eop7WErSLR-?4`u#GY_Hm%V9#HndQ1l%G)P=qt_m2J@cIEQ( z;!7a168rM!_t>hN@@VLTq91wLP?F_aOUb>WuhCG=h24$c!KD-ceM`{uTknc{tRk7^ zK`2#_O*8E7dcZa2DT)p=lQzX7ooOIRFB1sizVM+&>SrBvb+h;Z#By$Iyw;`kYm7|| zr~^8VuJY0T*xtwnL*`wUYcHJ*&m+fZ<-Q95+P)JKJ5wA^eCS={gX=9emDlSZ4@=Vi zdil*_TNeyT{su^;BOfCv;NS5HXsghK4^-!-20UW=%1A6Gep=V@$%aJCX?1#e=cIb^z1!7Oa%Z-Qygk zkAK}Ow64Uo@UM0*hVqB0k?Qucyy&f9Zf*MUOq;{S(3s|{@cP-uH1V7&H4T;kCcPYG zb;Wv0XaC%jWy?#t7d2T19mfSmGnd~RvNL4I5kAwI#%l#;7NBt5Pm|)wbVuOZ>>4`+ z#|sQJIQK?&d9+YnUXwPv!^g;Lf9P=RsLv7s4Id81feUsIeer`gQ35?wpi~giRV<{w zHlJ1$?&<$Op5J@Ne=6N;8>^Sriby#TFS>mP#b(&PbMg`}V}$^n!j zFfDy*IKRz&sWAWS*iOOjjCm<~%Cn*LcCaR^pL->(rw$y~)5$Fv@)&os!GaJzEd}Tf zEp>K_g&Rqj+r9W?i{^;VOIQnU)o12w9{($NJDH%rc zxzMcBCnINfowN(xdt_--8C$wVLTJ7;C5F-dyk*93RNTRNISimT2zr^t&47ImiDJnq z=c+rh8jT^T29B3}U|ebR%XVc@YW~lq*QBE_*8LRe58vd=2{vG3N%?fF-vGT+4HSZi zs50aD=m~5zg;g>Dp5n>RoBSP zW*$2Acu8kC9m66hnc@27Q%Y-Rz%ABiNi>ToobRW{3(S)8ggG|)8aYHGabeJ~kyzO% zlU;ZEC$@rI_n%XLo)S&D+`fxu$w$F9W8_9XzW!&ZT-#6XBkpyHAC<9-;SdUtzz2GW z_EDeeDgu!H;+3V~z&<9KJW#Cp0{Ou0ufJ57ODm1FP>~1sO<~wUDr)ry;h?mG!TMEt z0!H_y;|8X}>`pAr_D$r#xx#PaW6m-a04o7or%4fk-Nj0C(5B!EfpiUV$%IHt!1fA= z26BHpIO10VOZI(zpVh{aVNe`I29;XlFgBZ&wdf4_;p7|8#H(voG*pbv<_s5Fd)B$Shvs6haPk ziLXlhQE8sLB6lbMbNFBSuI`6i*%wnE4UieI!H`o=C6_m`zrw*ZD50S-PtodD!U%)a zbaX4VdtL8UZ|ODv()>EBDi9sK-`8$t+})H@;=jh)w(_T33Np;zrJx+NnY>GYf2A|= zDy|A}0apm>BVq!VQK3JVoYe1pX9A4t)xk0y5y7MJY*a~Vz&GEQ^HI1hl`;Ixd-)yy z$E!P6?9inRcLtOw4+rpkL%=SOGv$lOfH5-wa^@PS*v69^k<<%)%oCO?+Wr_n<^cX$Ldh23Lk=Kx7wdfW5>JG} zDD}fjIv~iho>-wzRcUMpm*2}+Ab3=cYmG%av4F1Fpnv$uM%%=2@~ya(&}KrNc-Lp2 zre;s_8vX9s`}q^hGv4}S!fi+T6{cKz^C<~+JwAEMc?1Qz7)H?Opb*-o@IZ{3Up;7a z9wU^=tHN=DWqL;3M!}743>F!5tL2U}7TImq5^; zHEU;xAm}PDwh40Ykj{sH4qL`@@I$Yg$PZHY@AUO%7Hc1k`oXcOPNs3yMqmA83$hY@ zG$QIciIQ*J6S?Tj-jNwiOwf9}#?qvBDNZKYz=LP@p7dO$)SbhEzEIjxs-$QuI;Sp&^(GB-D=#lw(oW99=SJI3JB(YX$u!zY?OiBW~;_xDZP^tMj&= z2An##0|zX?ZnAvQ1KJXit>GI^J_s01opa^4eShM}d*Ut|I>6Gs9>Vw242tI145;P6XrojX(z_EHG|H{BvsPz8<0vHyx-edZ>0pVMMOXD|;8MGF6E_)YW}21h51--xS`^A`n?g=;p$`x) z6i_kCbk*jCd%K~YY48k7Wpw)6klh9&#W zBC{^3SO`@8?Oxb_-J%C*KIJTO@qhrJAWyCpPiWCkz5}%~qnUeVRv>U0#!zkZZ|ov2 zL;aK{KoQ@o&ss1Z2y%G&E+a?lCM{6na zNDO#M0A>ckR9gaR=9T3>efwj5!Hw&B!xOfPD!)7MO%J(9Gs#3FKom-aMi|!G5?+;^ z<9iaLh zqxUggo&X*&`izI36K83Qthzxp{m6gPy{J#Vd^=9L8!gDFc?dA;PD?cC_$n;=JGwlL z{|!|N3Gh7r+cw0yb0p(2D~+yh=C%Ui@LV678(gToCO}xelTi9UU46+wH z%(Z$8e*x|hebV^0Y}CS~Y3Qr{ zw6QR>>fL>2+p;+s-{1ZLA)b2;4Piyw_qsm~3DGL?xne-Yta0*n2gcBGI-yODw|b+D zdYkZpxRf94xRR66$cs)0@0IN4VtKcuMfYZ95S$a$Z zUzXw}*gRz3aCD0i}; zKZl-t&Co0VtUHI)VSIxw-iMncy01PoS(+qtUJf4&+N$Gu$4>-{q{>N1dsk*ggI*8x z!<+MH!ZtADl`=1!Yu5e?6!ytb@&RU=3oxJKdxxx>uno^H)Pe!#S84&(Vxx){&|Yjl%&wAL@!j9Ji(!;K0#QvC!IpucN9GNu6g(C9C}Ibrk@WYX6N9eL!B@uNo4`RN64b#CG6!>oB5*IBpqtDm>LlZ< z+gsNR@~jnT-_l)I^<26<9rl6dGVGU&gl|^nazqSV$}ZDothLXiUkCA{A-debbjhG~ zJdil2FBg6ur<(n$AOQ2V`?hxG4XmCCB7=vmm(74Te;VkL4Z=IoNwi<>yj{HSnIPkf zun*=AQ+a9XM6oe!JoK@Z2@d^xWmL#({!ujDL+VxlI-u3>6B6q9D)!0pE%M;H{ER)k0j|s0e7!(d7*MUYs7>$5BYPBW08U$PJrIn73nJu zz@P1JCb7TrULBT>wMnaQuiogO00X(?i)XqOR zE!iRgNJ3Jw(rQtBfRz-8_@qa}2$TN9?B2DHJ0xHN2|bF%>f3^0XxOjNN_zVBcs=V68S)mWHG21)qcM`w_eY0A4q~D`(7{2DIVTk1$wyT zAg6Iu7TV;I1o{8CO>4u0>mz+32F613nA_pi)Gld(hA^BkSa*})ym@U0qY3t9`rwCf z1TFdj%zs_h1+GxcgI(rnpN&BtLimy~nFKI)HSa^G3*GZKY7=DVCjjdicN!4-DRF4V zVdiH5`V$9^s&`wNr^~2^omPDTP^`WmL3TLp)L-c`;TG9RD0wWCgfyp$7S&H;^^=cr ziTWFmui?&XKhpHfpsaHUKymX;+5;wdfMw12RmC;h==B%Q0sdz_F+{_Vd=md{75gxw z1mouz%VooI0=oiE`N%ZE{`^}9r~;xd#JoHVayD{ap3oehtGS7@vZ%+$CPx&(5{;Y& zK^a~UddfGZn|!0EcZR=|Yt4v>`~m1)yq1yvZ1PJrj}7%)7eutxj;#M-fWEr-1rqps zYAN;1ZwcH0%%bBM`mkVg733j+e0Y>jR^~|!VLi8a-`S{lyz^j3ge&C%X=+>0r`I`& zW8sAxT7|J&jLiIlHg&0!K4G=9eh7O8_J2)#UVjf;wAiJGLi4Lflx6m{8vXW5*?{Si zUtGX;6Vhd#r(l|5V=lr}GDAZ`wQ<^%AAM6$^KwiKGmolE82ue8g9C&~I*#$AEQ~`B zylc4_#xKw!QNqyY)YTYp3>zc)<%2&XT-Kd2Lerma`0e7i z5AleLv6N>%V3-p69D#!*%qJEUN_M0$$iq@~o_FI*fJE-PfSdR`(WNJFBT#GA$yYM) z4x68Zn?&@M2-(Mdi{U?tNuhxWt4}7-(&TEMJKkjZ0)hVMG75wT@eE&BDj`W^ni#&+ z0t2b6E(+z#CD#Fv@o>wlkI!uu@zGa0*Z_I`CbSn0!SXXAc@i{sRP98;i<5_F6bnaD z_cD;e`=U}O(UDwU2XN7^(|r>8;&%QH|M~ah1-WPZ{A`xz^K80pm&U1gTyq$5-uv5& zsTZHs2QIQ=tB?Dy#dQK#4@+;;5~Zun`!-8k=;!Ctj3%Gbb!he&@qpwP8iGr!4FF{aOS5ONE zcamS<(u2=BtMJH`4iEyFX3XA#H>1!@z(1e~YI`HozK!f2)55I)b?iK>ho2lm!(KCG z#&+wRT7H%MlLAU*jlM!U*eQ{Ta$)o|Q>ny{$5mVnfUXTDi^kyEUD`V{7%WSj^m%wr ze(k-i-yMs)%k4r|wKn#Aw9+I;jj(6@#R0i)M7gNkbzG`A2q6k{)PbxRI~qH0aS$yi z^uc{XI_yGUVjE<&zvC|06}zClR?-hI4Q+~sMF8?OBwm1QA)_IVoo4rFX)aD5Dt?Jc zB^xrH%U=wa^r(B9Gy>Eklr5Fs4xh`Uvp79ufqUEtdw@vH0V_t6Id zEjm)?X>Y=^7$(R#Z?}MT-0lqOwfkr}=$3?&9Ec|VfphSlKPyL37~4w!YkgfFS$gxF zV8%Jj?AfT%tH<}voEDq$>t~_GW=IOlEBbQlyyNEkHQH@0ndk*R+Eb6_ ze(WPw5iahcupV4uxR)ivi zXSqWE!sm^I=T1I~uX zwMIo3DGXmxkOQ4?d+q}zcz#DWVXYaXU@?Dq0qxxDwjTGV8j8eoK1DG>Fh{>sPd3iH z2qM-+jPKjw8}hpvSIu}Fh!|F$1%FP^(yTHF;E1`b`@i~2Ya9Ta@Z+jNh>0@hUmu$?4UdYS}*Vzy=bVTDtXS!i5tp56^C3`sU zgyurWIh7iC|Md6Ar+{H(C#H^z$P!3!GGS)z-JKG0Ts^N35c}^@Da`2_VxO7b zK?(pmGwJw(-Jq)oR_^A0{OFE!XK5XqH%-u6NF0i0Fvi82eok4PY#A!Nu)Gw?v$|8O zoasyBcwyOSvCRY2ERQI)e8S4|OawMPu7=A_fHwE{o&JFvDOt@vBKa9T?Hq^EL)O9S zCu{TSfZ%e}6OfeuoP8q1Dl}oQ5Xjed_oeXgm-lCRYZwU+XJ$|Ua&DM_W1#v-Pg9WB zAYGx4-U1yuR?6Y?U#Gcle*j(Q*phsPe>Wq92T?T5Pza6V+cls>m!ch|=8(;AAbQ63 zy_RU>jt%$#QW-GsNBpUhNmT?2Q{@qltFTouuGLCB->er4b55E3k-U((S_5ui*%7Fw zLtbtxky)2;_r}%kP`tvcGvHyT%Eyck*c}hz$gfcy)UftYj+W7$YKMA*?u5P_pVNbd zT0Je7OlpQb9hZlz4R(q^^3agNEP`8A6CsRuR5@72$F#8 zkWt8Fus9|5LGY#RytHcS61$hm8fI2!k&UBWXds3FZm8QCfao&G(?j4)ax8^l^2_Yl ze#`B)V_sFi0`O8N*@GhLKur(_uNVLtE#ePtEazCi?I<0blAg!FPPOUMFQeoRq34|0 zV@+rMj>7&CHB1aVu+-OM{TwXT2Hv`e=q&0RI>7}!LxX0&_oE_U<6=KA%Do^~^Di^R zxrK8`)}5`ax9m5DVCGXy{rjbSDw82X;rPN%6KI)sb7#0bf{i|}r5GCf8LUT3=eueR z;j0PAX|2_&9eyYrhTG+DAI!pG3b@_OJMJlVr}Z=UBsES} zO6-=&HROVBH`P)BFQBdmnQ|Opc(3`^_vy`OA~P2EbhP#A+YHc#eZ<4}G`X~Y73sGK zeID6H`miBA4tiVLN=H%%AoEH@I`iMsj2qbOeA)q6Y9MJseSs((zy~pXoAmWcVeF0-ube<08snq%YWYM0=@-Z<4^P8@7ataDC zWUS5@I{~PcC1p}3O0SlLL+ug?YA(K4W^kQ1My8;;e@Y$YdA|H*or|}?mWa{Z8-_{7 zsRZxD6x_gdNT^Av65;ZNm!>5WStIJtSwq6DSKE45fZn);DOv8x3AfFp^jm6Y9 zU!$qCN@~do12ib9##MU?6PBstCf`Yj%!$>1$4)8>8d>15TT8rE)~+9qFkQQI0(eeO9WUa&A;3SR$)^}`%9Y-WwNTR^{7Xx#Wziar| z0hdPgR?Q7zm=yVkl=Y!wcdz_+?nNhHy3Rfd-UrfO(Y4hDLnitOlk)ma?mPcBbHjh>TT;ds*Eow!2`Sss zXnn4#9V`<$<*F+Bu0V`cv051885=mSD?+3c|49h&qpDihx+uv4NXoUMQLIvy`mRMx zwm&V|5tuun%IA|@4Yh6cl1U9WL?)v{{wP1#Kq5OZ8@^+q9mhJ?1SO6I9#jGUh5~Fc z{TP0LO|jVo;DZI_1>z6-)#jVFIi~wvpv7BgYKaB+%p@~DIva}4wO>??0GvLfDSyx-~EJGk66sAb0sA@1lw5ubJ>{FnSWy zW-R*x6?bnjh&lDNnx(RkYDj%d0NhD55cAFCKM8>w*kIS{Hykpzmy5xB4cyGnXw2mi zV6WLa^frb@oCnaM$x)2h=VC4;ekQiSMMC@9Ox&RxdP#V!L$eomAnEm+slY?!Dd zTUOO|XKl#!ejo(NI{UpOcLgsgF(h;2nR?Y;%{mZ!;2>~k{w6@;wj^tn{0a}PW&|K{ z=O&XTYhovDg;3%LF7$>@8ExD*CopT2Nrck{oB!*#t=6%@eTYR zfDB5nzeUe?$Sq&8J^MOy<2sKDf}6areBNyuNdN)_6V%idbf`(9duGnLE$Im43Z4Um zFJfU$49#An3i>a!u*8_54cM`>DC0AO;O#E>z7Kv73_(G}wpHf4ZW_>}KAOXM{F2 zQYxmM?@+;|F}e#na6*QFsbN40@UgiKdo}6OO+e94Vkfk%APIJnbB9p3Ll6?%hyllQ zU+Ba+HMSYs(lDytc|_CzQqg%ww^($b`b!J=I9w+z*py}*GFCFF_Okk1_@bf9?hQ`or#C3lQy3JiiC=bUpGX+ZH}| zcMzD~c*E^K76MgnY=IEAC%0kSgWZ1@|IKs*ZVxTdFv*|Zd=JWkEjR$k;6M8n2L9|< zCL((n1crKH|MREE13*ZN@;QP0bnP9(RrgQ)?|cK*NB+R^3cb*`>fUt-a2+U)-jOiw zloQQd?)?qU0cL>ygrtBLISqz<{)LFnfqy^r417evU?5a>b=@~ygFpW_e0HI^iQX6R z0D}Pkd*BxQnE{|$HviFPgu0G5?f&;RaH33LzYc4GeQAq_9`f<##y8-{o3R@N4y6{q zAzPGKf0@LKyfcEcQCmqw^*IP+3qb7jE!H9{_i$xbVY~J}dsO(fl!dzkm-Z`Pz9E z#ort=C#?TG34AYbX%LWkS9MAxa&MI8+R6vG79KSCj>jEPU?hu&gah-B1_0$DrT-U} zLAM400)GP*McvTZ{smzm-{4n;uLkr$#pDcp*r3~gf!&q{aeeY8Z>YS1HeOuDHDhAZ3z`BU2_B z_P;L;0C!$<06AArLTW9c%}6*4ugWv4nFyr=Agi$6|CxXQN-@m_qvMD7KV*$I_!1A@ z#o%x^6Y-7J7M@5q?Ek;7rFA`j)MbQ&)aSt8^EGNl3LoHMZ&fb-h1`(Qku_}LD&Gsd z*Z;!NvyCDqg})$tCj%ZvUe?!8s;>d&r=l9df>sZlke3T*83E9!Fp9o$wl44;08B*k z2gF&46B*@Dc~In&057g+66yPxCE*PUhZbSlYRBQkUO2k>v}mmiW>=~Tc~eV(aPeIY zLY>9YxPlxaaDn&+$ivzrIsicaA1TcRIDmbjOcoO1kXl6#fWP1h%0mt6BOG+xA1JJ# z=Kn2kFn|MhNJ=7Di9Pg101MwiKDwXMdO8rkup8JUmGvD2bSC=Ypr$OmN2MqZzJnFo z7o>6ka9=^Uffvf^vHm?%(Ch&b!vjx(bi%^JN)`ZEng1u0|CTun^qBn~?jhmZEfJ9< z)-9--5KTt%1)ea3-tTxVD3nUd7Wfr(fb`(b=zvd5~Iz$kGTWKwbpJQ}}>OJM*A4i8XU zGp7_*#7j%F+gnWy{Inq9;zVA^D|ofMTkr>oL9z``KnEt8=begp0C*2b4t5F&SZKom zhR;2FQx-6&X)b;^R-^CSgV@(m)uHz1t$=g~M8eLoID5rKIS2P`6hfK_WC<5jD6ilD z5Ism(K(-iALIK{S>hu23!Tr~P&>!k>&X%*if6&zjA_V#mN_ZTkj^_c<)jL6QmE60F#G%*+=+4DdN{mp}&GsMrTE zTTt3ieRC6v9{glxY!l&&eSo*)90WF`z<~x#xUY9gn1gEiU+eQu9eJ1J^up3k&AfC9^ zmISm6j{g5uLj>5bIET=`zj#h%Am3f`7fP7DByQ%8J+1@7)X8=EgD6S+FNVMEncyQ~?LK>k zK^$^>HmuN-x7Okfc5*$1_!f9>pqoGJfv*+sc`b!2);;?J-am-!qdxH8E5frZzbfcs#6dMnKN7jX zBOaMVeCbdR&Cvtz+$i_~?B{R?d2eBqSKvT|s{SDgBqdH*cUg!w_?!Tg6YB#yUGux* zx3GU5`yu*3@Alw+_bt&(@;VAgvtUN9ulhryj(`K>`K2HhcruM>zFz z*g@?HFS5WW|GfcVS?JRnlTY&brK=RW!t31uDKH&p;MWCj-pr9jpYm}U`;wu--X4}w zO`CHeDg!1&Lv$RHz{xG>H9p<|hz$z6k}xCTT1=vd$1FHvP5h4wR=ttV#*G6z3;!N) zZA0M!D}&I+7#2aKFA2+n6(F#7%LT3eh2p}~LjvEKa_5i&uLkEAEZ^UNHo)uu*;ia0 zv>dRJnZw6~1~r3ttE?jL<8(xicHm{Xkbwsm7T;QgHfSZ=Dg(F#PZm<%ljY6`?Rp~8 z4~{h$0O~=PaCHextOG`dF77Scf5V?(+OUIxUyl(#gGx-8S3tl(JaDE{W;DP+hMpnh z)j#@UUE2K;Byc>KN|VU+K-32 zQ9DmqyT0OKxG@TJUz!N#|KBcy?L8gNV*nUZKifVVNk+=cxQ_pc zA8Ro+sMUDr)EgTvcMMHKN z081Tx*aLE20iBabqyet9j(?b(T;Nv6R5(sV%}DOv*+A@@8(Z@AKzC^K9dmO>9N%C9 z|9+#V$3tV(ftkJNIl`#)tw4WRXEL=tEU0Vc zU^YA?K0dP;)5V32#F@Zt60+4iB7;^-o;?854zUx1bq8*3jy}&dGO(lz((+}m%ONW|5@Tvx3m1coY zfQtpq6PXIx#^)_U2O9=>@8e6JhajHiMrfd5eCPvAI6fGkD---g@P)>@GS5E;y^-Sp zCidTY(Dpercqh6GL-|O~{lpOinE?0DRq)L=>g$2w!CW{9yj<>du%JCAj{n{<8}!XZ z_jfS9-p`{4^T z3t;bbfDMT}pyj;xLJ=KFg>C*iI2L4qz6B`=p2kQfGE4#-M_&jv_-0a>0J zan84pw*R5~;e5HIG9R#ZZ_>WZhqxRt4HmdG9SdIJEvW9oH3#>cw*JUO!@#Edvk#inu&VBN;RE-H^2)Ezd7$L$RPh1cz-m2^7oyyM z-5pV`i!zBS9>o8&-F|mqbp8wU4Sg`U4T2d7jja#bpm!%Vw>{oq<;0%VBr}FDs5Zww zHT}_73%~I%dsFrSxkn*)1lrH8@kVAkWEFLs_m=Lk zo56EFPwuV18vZ&0@u1k?wI>II53*~EYLaMwN8fny7YsNi<9+&a1$>C;KL^8+H$#&P z<1armoHymMszSlmv@wN)-|Lw35BB57#PI$4`O{bj@xY%gx?zxLT`ym!5lH=;o4ftj zz~KFdqmAi5)B^TAw7&f9J2PK^-ZuLE?ONeBvjIWJThzgaKlrWv4SYxCd^q%vF9+4H zE-U4q9)R(jV;FEZ5ETYI8VrvL|7HaPM!>NH(meoINw+sF7Pm>=pLczLW4~rrfWIXN zEg!@-&w=#io2i3d)*xm}(tjcxP@N&PUhXGC;ZAVoe7M2e{-(YjSl-#5=#Q4tL2uyF z4S1cy|7Se_h#BL#ePfg@m((D-hl+m@A+D%6t=~NuER(y$e*iL#26=>_^3#A|iyhj; z8W1as%)Rwr4FK~8&pVhlm}Y#l%)b1(=MNZmZ|d7asW>h=;AS0Q9%#A4&P!WFbI*eB8i#JKlvo4_E#2asNd z_E$ocKdmp5!=u;3fycakkf$l*whS=%zrl$b^gs#x2Oyd&8JM+$gu#tH#ec8@1~4K~ z-7a@u)CQ!ly)1(h0}U7@a_wdY0Q@i2BSa#y4=xS)U<(j97{GH}JLsVb9U;OGwtxO0 zh9N%@)Z-h`{vrLl>~(N{fDX+*A24PieZV;|dHi-kapi$>nTFqhz_K|7x(}}|`ml%F{scdj%7L+)WeAy@3%kDf!77>2QCCFRJy!;c}vgh?fv%_kkOC#fBI&B z;NSO3C@eFS*&2y?cG6Pxw7?z20VLe*1QPl-pn*K(8ms+V4W{W-No2D`4IS4@6{Kh0 zTcZRvkOTe&4@bOxVS^CNxc`C!^HtVYKiCG?p67B;OztE5xWl$;Mye6nm_4D;aCg|W z%bv2kjXws8{n-Bv5;(USYrZv6jjL*Y1gP~CI<%|Y5;#h@)ug?NLQ zJ(vJBV4(>>`LwqJEPExAehpe9qh6uaX+M0Pf%S|X^uQp0FW6r7sq68HxXl2V6X?Kq zA;169JJW`^6g%p+AnN@Xz0*g(orjzZm__a7%b={AG{1#+`7b;__8-fD)`61- zZr>&4E3mRwPOt!$qtDpxpaTF908mQ<1QY-O00;msS36vPxP8xXe*gexe*gdp0000m zFJmt-FETGP00uz$zXAb~0RR99000040A_yx02lxO01rn10P{uw04TLD{h$B<1OVJN z0?PA9At#U}NjmeuVTn=awB)CvzFz-oi0?eG>rgBF5plp+dqyfDg=8Z#1swty0s{gC z3<^{#NgCbP063u71Rx43p(+fU%_>o9?8Uw|a=chPX*GEC*gZp9kga#h-E*;PrD?p{ zHO6=6v4~o(lw!JTP*bKl^f>Ie^%&k$IjXVMtX5QBLVMc?e~y?e8>5e0P^n1CP@DLsdiRUimN8Mp@`C9`-S3PC7ML@9$g z=1>MfsJ0xk7%@->f`FJ}C<8$_2Kdt-L6+p>wltC0?;3QULoa#x2 zY9XX1Me;Oym{Kqa2+HcM4w#zIjwZ%bVSGAG8&E150%G9E8N*5tn3_DcK>_!M)O7rH zas-W#Q!(yc4{dlwn8hm2?fWo~lK6_mH{}v^J@-zYeDt8tuQsL)58Bs5#}v=~wIy@$ zmBz(={#fbmAFj6*snzhTPk#4aOIg&T$o&h+>>45n$L_oVuQyumHb=_2#&gFjM?CZ0 z{qAbNcz1W!`|E!Dd;%s2rX+%ZCMYC%9xLlvrpLky&2L7pafNX5WnYElf| z=wS-rkytbgd=&fv@PI%aP}TUlM^cj}P$?-$kW`bqKn#?TMF4ym2tpnJ1ZCu*tHye0 zMjbMJ1yv`9f7q_qBkzJ&`+LwehwyS=Wli2e0m@cz@4eXsQ}H$>*&PI-4o;KDG$~l*+@GC9tdGTV|6}obKKrlE zwrjt4nYmXjyUncTBY-F%3JQ*cQ4j=WFbGkQsaXdEh=Su7W=a(ULXRvW2#JRvIAx^4 z_|#O10fOLEQBDxdQ3cFqkuuIntQMw-b!d{HqzYM#302Drq8ylg8VeAmFh$d}D-i@I zPY>E@e2*|7z$6X|lp@vwFu(+8@(+;iKah75fFK-ITwWy$|D{9_&P`FOP%sJ>O^!mr zLlu&uBqe*GlxYe9WgJyJ5-FgIRv1jfxY%&eX>uZyKF)cOCP+06&Eb@a4Tz9qig&L# z4E8u67ag@G*>b`uUG6*1)kZEyZcVsxmU}h zjO$f$-MM!~+udis*Katfq?W9Lkx6hAkgO)G!rUpP3`H)4AVQ9kg(JZp<{VVW!qHTu z2%Qs}@+e*V6is;|3KIGh_{Am&vWWq|2dcpY9qQrRvsg4W#SoqT$GN6dOsE>4f92ey z^sjfE5mP)nv*~@aW8?LFspYN|v);V;3b9DP~n%53hJ`9?B88_J~m?j=4 zrGiJ&s>VP1&8XPW7_aA_ZTZ9hY2JIM+kACIyZ&uuxY=q6tN2~le6??Uu{X2cU8CEo z#zXsmFxJR-^$jOtcdr{P|L(7QcZcZi`3^hxcFm|lrUOYN2qn!aM;a31ArloTl9JP6 zu!(411#=2wU6(4?*bP9n@^B6AMbdVbRJk;+>JN*okGjL|NVBs@XD zKKY7cI5uX>p%EFL#Qv32yk319{uKQyKVs9^EWV!IL)#P+eKdIA?%nsIT^X8gcmHk9 zkSh=EiP;Lj`aYzt{L3DDid22~%Gk~7azFcey?wU1?jirrig;HW-`$l`F~$_d;Hjok z2TV0Be|G?jtSU&?*tDdorisu((=3>`FO-=BU*Xbtb_5HsayLT@A>-snP zon{|*HLDdt=yMNW%JnWWx9{4=ZA0tX42P=QGQH}$ier9%?(NP~M;)&2SI*46J{wf$ zCj14QYN%vX8evla01yCU5#V4z7$hYTM}ji!8595-3`076I%F~>Oh=L&2AxyL%nS@5 z008J88NUIbr;9)_1I~x5FV09mJ@kTet)>V-xlA`ygB^KDt_iPvd zTFQfX{RQ~VhGbq2mNGsJfW7pC{rz`|snq|2lM|!?Ag({82Bs|=ACfP?@U+)#U~2VW zj{(Bc(=?8jbpY)8bua>~9Z#RCrfou~nBa+bQi~lTyYFGVFE#K_YRSy~Z+8#C1jLss z$;(t(iz)LrIDXra;z#hdcx8Ka$=? zw`=#i#8Df|zhP4dxDTpYNMyJHP`hJDzmJF)c$0sCvcUUS02yopMcaKU@u{>N0Qo!k z5njfs-FJP)@r*xLE;UiqE_?{-601{VoFC^0t-TL+S3>yG0^XDZ5S9&?gpTY^s}Y?4 z6%d16;WGg;7(;5qW2(PSq=&-SX2W5Y-iUXkwzg5OAT6bq%v^}{D9*|UM)_y>@ zlc}+Re{2WIgXFwPwg=aOS90AscYTtJB++Mk2J{`Br0erzj+@i>-_8SugU z24s-m#3Y8uH&3>2P8qi1TCEtcLhe(0Bv{`#o`R2W0SLeRV$5ZR1||G4%iouR)+^Aj z%60G=Pu6az{wfk%??%?x<(ewnF5?5jLwyDUf3ExEEI^ptYK0qWga2D7^or~X08`&b0S6ABI`&nzD zBg??HQucUr$FmXV4cDzzCBDKjI4Jb**136L)p`=!Qju5L3oh>4C0j_IH^KEP)@+Nu zl>2!(aMew1CGSTZ;HbAfqy~F8jHZHTYw7`4gzRv5Bxy8vXAVN&_^`@ zLV23SCu-_Yk4&0zBVPRLVzsmV0HW;DoQlsdxJI4*&b>R8xjvwLiyDaRI;B&x6Tq4{ zwk&YJQe(XcU#bJDtlTy*>aN40D%N9&(*^33HPK};oSYIebI2*+yMXqT7f$^ikLx3& z+iMjzzlpJ`Okwqhef_aI2a|8FCnnOv8XoYee@^LERsVc)1&<~@>K@Jy!2BY;Z1=Z1 z_W$GFx%PTg4Ng1#V1}0O`{-4OaVfn3;MHuORA49q4hzunAK=f`jU1D+WjXBPRUBOw}4Vi5xU8NA(GV%xEFl7reh`y`xUg^0I0wiPVCC z){@ZI=ZP%;!V7FLbik>fJ(PPalN_Ho8f^zrX9kAnqc!c;@3W<%|0txBW@yGec`$a> zLJb3<0m_5T^|Y#w%_Tn>!rRlgX!DFbGEVT+ek2WmNB#ow$dbip;y7n=k88xMk}Z?( z;2$saG!nvpOglW=(*nFivTv({K+^^b&>5g*_!7p`6J|A@TVIR`jR@1+0dNU8uq)e5 zr$KLf*d#o^_P#`xBs=1p*>GvT^_y9q3;pc#fP|*@?^g}ga49&Z|i?g&R0d*S@8*z;Iq?{ zk_?4fX5V4~!6F}{^5ig4ZNTaQBCpa4QRWMMM_u6H9(;hTx(7f&93pJb{O#DT;o5Ka zQw1y1MHi}rC#zt&sozfj`M?(ZzN15x?lj#H&}Hy6!=_GFO&NJv*;L(a#Rt zcyN4W{U7tjm;*nh0aU20tmN%YFMJBN%*f>l3m$?A9RSM@zuN{Mw)|eUEk1HwR>>P@ z9lJfL{JX9L`oXYVIW{tfgP{#cm;PadI`rUyjw~)R$aOFPQ0tC_7n0im10j=%_V{$* zxmgznAE?ZM)#(G^$3eYxrrR*{yuaifmMD0>`WxG|8|DOpXZ>(>v$#SJ>Wf9eFu}tI zS1WucZs#D79MKCg^Z?MJM(;o63kXI4fO;3O!q%=sfn&=%%2*FrT0)n8vbaSS{yr3l zjU`sZLNHm&^6W$DLFxz&_V0Gqvd6UQS$b#!S1kzr4gYW77$<-4z<@7w6W=TLu!>3w z-LfL?f`5F#O^nxj2T$Y$ySd$}*3VhnC?ERWKr_5!k-~kEMh|jJ?f{5c{pwhlcqzZL zits|{&83uombnfiSpDf~$c$hhfY-~mPYK=9L4AqoM`P{^?D!YHGjN@_Iwd6iy{CXL zG9KK!_S=Jw;)#~>O&dG2ZP0Y~SxwG5g8p4UHMqXVx5CDM3epEceOUgaz5j@7TL?BZ z+2uYFJoYw=I%CJVFaMl`bB!x6DD{KAO2loyHO>B(PjQO917iAJGNkUk@CWhD8sn?| zelg(Z?o1O#z97c@H@3^p6@MV6t^AKcU^7UxgP-=oK-zghmw&YI_gb_H`+7KaNL<=l zH=z;t`P>otpjWqpuoD7y81~i) zLDfB;x;XywH2$Rz&zf+aVg)`vfbTnCI` z`(sT1Wl|4K_Q}-`+&)eV2YXA*3_Hqx;vQGdC={}n)+CI<_bU5aK(qVg`$ z5KcieB0d;dfIol=MB7@v+XlS)wIE-97i8*@?FYau^nEZejZ+0;;6uj6@NSqG`UApu`h-Mjp-X|b zD*AW{pZFngtgA>7xtP7+V?cF!46p+o_&P(-gP$%J9@nSqVD?Q1Qs#l&GA;;dhE)ea zov-zg!vZW2(i}>c%S+`kgIMxzo{d7CE;HP`boi&0E zP!rg^;c~=DV!NA1u%CRRVIa;8qdO$wKt(^-q9xlsSFPbbYlL}e(*)zU{uOh7tqdMv z1ZeW-2vN5jM;0$83MT~;2QJvUr{&b&iIXLU*DVz$UI7s4q8!mLi?XlxPVd&ggW4z# z21Db4%18TvZh5@WaAE+U_fyneF0TZXngQCA;wE}uoU%`QA`_nN#|Oeuzu4;6tXW=+ zY3IR9*Q@@wj{f$B=C3V<0Uv0f;Hz721Zfcu=-MZPFkB;7iDK&Ype9Lmt4kIaf_Bi> zJ;wkb)hD=}Bk>&WSAK0(1GXtiubvtA5F7LVrhb4m901}!fvHapFn8P~(tj^y*9OF# zE?O540h;5)An+jcLX6!nwm{5;zghQtZn87NQvt}~S91iiU6&3V5I_%n!smnXIhOBi zJWRtE&(48nAJot&wARP7r{a)CGr6}pwB$#V|70^}}6A)0Pk2-W@+tPRcy!6k(!DM z{(Hp+J?0^BVQY)U6b@y$KtTnH~STaQPmQ-R>nb9 z3?Y)xxoIqFXv$JcgMO30x7YTn5*v)<=TNu*e$eKjw=VouU<%IS97ykl>4Hr2S=6U; zkCg)UuaWqwF+=bZ{!WmJvLfcR;W(RzL!U(P$It^RCt(->D81Ky58?NMsS{N0gSm}; zHSBXY+H6vg0jikD(-+;iBrxpOT5DPFGc0yV|rAq(xUe$irEY z*Dy706R#FL9E0!pK60&L3KOzp`>X+f#dPXCt{DFB{2-&BfmJW&)L=fgn+3O0??+n6 zk8}N)X?&suU*4Ie3b<{?E{`f?Uw_X8#h9Cvcje6_bxt*7E-zrGB>O96c;B zSbz4_UmH|@6xzq;4`w_F{2>S~fk=;XXC=YXH0FlPe=yM)w*z zt(JOk&p;-Fhd-0*mjw)uOBw_!GDW)^?ly=+%mJ19;e23w+rop-J00KyO#|WDo=7y= z& zZ`;sS!n#dbl%MJV=yX7VxPi3pI!Jf!e893gQRN1D4;M`;XCWtM;Ph9tG3^UJ5+w$e zQ&GaF;WZw*t8LTS1sqaB^Mh;)<#T`B)iaQ9&`P~13~@8mBuWAbXt4kg`Wt$twkI$T ze)N>2Xm%0A6^YmyW2@9CaPIzmfZ7X*1E?m4@)Wsz722T&(5t#DuU(CaM8W{JX3IqE z*=V99(upb2&swQ*fk^Yn*{LSK3ca7qr(^5`O6?&l*Dqz|9nFEw0w{r^CrAYgOrHGf z#{g~vz#L-R{Hr7$gqPc`4SF%BH=0_Xa5`OMuto{)h*WsAt`htK;-(C97Y+?{zks|3 zEm)7WajA@;BL@m^04^7l zeJ9Ot+4+^*URYT&lOBJtOJG)ZVU>V;7vvrQG{|kR_j=nP9;*iK)nRk$xc)0=O#FJS zj?d3|H$xrgFYw{sL^Z%@1bQnBEw=?ePcP~D`~%heK(PoWzfw0$Ky5nUKxCBxX#etN zQY#qY&H*rr9MPbOVquIVu;U(K1_r=p9fRxk?Z&@mS}4tTe1$EG;0cs?JcoF$2ikM& z54%5)``X}k&i5P#Sr;sZ4PaS(Ign|JTn>efo0$J$vSXYd@6n*Q$#{=^4rA}q z?*Q^Y_bCkT)7P5}bbe??XXya?21Wt^tU>^jKTmf0L}OQDjbn{DaTAx+{pq$At0ANn>f|?so(9!Es;2E%fu{&PqnN zoKq{#Yu3YDw4z?#K?ML73T84FPsEmgzB|BywKM?IdvP$cmzXVDsuu5H1zZtV z2LcAI0iZjC=>fY2B3`Vwu7T_%LFVthHazfk7g%Ipd0b;&0{CwF_vuJMpv-jxp#Ei` z31RP^kjYKB5#}W}Uvu?+<_5t3`oRCc$yMpLJFHiWi9$Yul}9)e$R2SOP3D-1aucBF zGiLYK_pn_HjZ6R0N1DD+s?4}nJrib~4lt;f3l98atGzdYgIet1TU)E~X4`{A4a&~| z356m9-QC^C%mTkovE>A@g%4FB>0j4jKEA+j8f*{@UR<-PkOKz=fNSJ@`^3_v;!&eB z@CF~VQA~qFYh&`vYr(*Vu*zF4!xaYqfK@THoCxH-H3vSyla`21eIPhK)^&n^1|I;3kbV2c&;{9CN@x5004J!oJ1QyxrE{y6ca=jQ z{s0kg;EL2*mMRwzR(TeQ1{SPja&}G&8(UOhm{hXzU9N$=d$fTc#L{KL0)qeE9$Yb^ zcYL)^KQ8emyxBL4+9`q3UM(G5b=4&nrexbHs@}4F(D3$IuUJlj+ zM|NePZY}>ObdRRaAH_*9IzBegS851`eWHI#%h4D#f5rtpm_>wO4gfDRY`_l|!s5xh z3vYcps66;4Wkb8KMena=V$l7$p6L<1f{`u^zw{tWh^WdgY+&W!U)5aiT%7#v$mbV{ zCukToBO-%eA{_Uvcx`LE4d>&?1s#8fmVqhhcb`Ks@cvlgreE#`(WHI@qi-F^)0@H<_s`L>Vco9s&mEaw*WV8 z+MwAd-Ubo+aHzMBvQbC`@}U5@Htj5zA2i7Pf6va%Z+40B_4XL$e#`J4IGmsZR6MX< zNvWamOGYOA6B4yVTjTtc_P1!9}FXe<1Uxg!N;bohhL02;*-(~*=9_L@e!j$;~8;9!1m z!6&>6T_yk=puL@;%NJb=AO6>rHgi^_vcR%19OVW;sl38ao5zCjJA>*?#lhK5L2{GQ z9EzpvYJw>E2)y8}|8UkNDJ8@d6z3!Fb?|+En(giE{*nX9fW20LA2fL9Fe_VA>dV>wP@3F#rBk;9gB1;LsIa z!ht9D?UKJwLVSE<=>=N0AyZS|#^x!{#oqZYzyjyKP+(%+hQlUJ)vmtRKYHL2Ro{>_ z`{%OpaKHIq^DVM9iv`myy0>im8k<8tiI(`3<@Tt0K)F8e9stGp^-I$n$NhB;X_Ws1 z%FD*EBjWL>U|2Vn=b(P;T;b;K?&_A*@3E4PWl0WSF^xSDl>|lv_W@A1Pka2qDo^4m z_bKd)#x@;iNm1K-QiF@WoPW^!LzAx`XJ2p7k8LCde9N_=Sv_GmQERMg@H0W?0Kh-^ z)p*+~Z4amioPe{gzbfpNZ9L&YSr`ir0Ms=sDF8_gc|VtJPiU{VU5(fhY8yD*h1xik z!5<5db%JOor}lSU_ig5Bm_WbI{y~+2z3PSHz`s6pRY%XNJYi1%2T+>e-x!P+a`J!0 zNcEVx$NxdnhD^|e305RB01lXx8o;0g9Hv73e$0Dxq5wrKP7_m^;roM8CpHw ziZ*Cs&^3A_^u53CD>>yFD>4Ug)-*>4JpZswE$c)sOdDSP`W~+T`6v9wy}FdR*9oqU zoWrWlUa$`vv=&|evj{4g@~!`LH+?c?Hb>{r4hvMfM`j`x5~%IwASgSDP{<2S{8Fdt zk8&}n0lR1YEFh$OV2GLreU-4eKXl$|?;=jARreGAoRj=zuTAb!1kN~W5QvqIZDb$C z_m6#p$Tw(|CcxEWTXp3H$i^cT-QL3gkzOjvt z;;xf}P~#G3AYA_;XQ0)?NTlR~9F1E``uIbwII|Gx6YF_*{P8sx2oV=ONAzMI8t5EAKCnA_tFphznm^a2hVLT{k6?d zyv%V6NEZL44WmwpH2`|>_NN$pL{4A~fI%bLdF&mjef0mI6njr#Pd4dV!s1q+_MX{9 zv?PDq8*<4~6Ig~Qs`Uqa-&Zm2*hp6jIOY(@(dWT~Hh4xAYg#Vg`=ctdw%&nQb=%G& zQBzD1G0&k6`CH$?XHW%zuHdLefMl2527$N8dl=e#0|ewjC_NdG4JH!VxJ#D~7e)#2 z_6foT_BNqqjQs`Y%stz{4214gMtPx%Khkjsh{17wnNN^Y=C2y>X0@I+3q^q;aIcZ9 z2QnovDnO|Yj!KQV9v z4$uNQTzfoLy$t-}R{%5}83})pXHNCxhAd-UMb`-PJ!FeC^w4zcni$~PAd;ZGbXU?k zbYw#gdsQa!6vai)#gAfxjpX1 zgA3&JAoR!nkl?N+b|=|sO+#;*T?>krBmgp+S zA`N6*k$GI-p`{#&f1XG@)R{CQ${sT(rn0Ek!f#F7588Xk1kNzQRt*Daep;4m0vIeU zA#mL4H3%->Zxg5&$yDr}w#;*~K~B2ra}A6N^xRzG?so^FO=dm|g#+N8tDV<+y)2(!sb+NKD2X%2symJaDX93 zHz}Nm)>?69r=SJngLt3&#Vg)3-jY9IVgoO zXzyZw5?iMIb5dJ^Hx178S%YE#e4E+?6#Tg#z!;R-2WDNWO!t&Ib>ewW z2zn#k=R)(sK~l8!9N>%t94?_#-wp+4`nc>5H~p4#-Ef4SLI>WlG!ueiNkbe3K&=`8 zc4~OwClW@H8*cZVe}8`Ke#`w$na3AwyM$Z8PYtzcERR-+LMx2LIE`|lj|mGohE1FB z*UlY}9RPZ%Kd`(v>a!GlSfJemIlM0L_$S_d?GI2NXU@fC-=SzBfGOc@;9m3ttANZ| z8Vt%m%CW|6cHp-Kz}_S(u)`x_ezUz?u7jlR9_dJAic;@^ zxO1VoLuSx|e}eY3-);0^RK9;?zEvA!)nv8+syK+e7kmR5?e9i1Co12A@|XIrP?Ld5 z0iZ1(JCO5?0_)!X0fjH@MqU^CPg|dsKVw|RDG%@fb?eDh#UERn;O0;MVLG{4JFXeh zC&0rinX{yW%~G{jK$cAiMA^Kx2Xh-30Y)hf(f|MzKGFZZ@jbM{`2#ryum<@1M-RwH z|J2b-^zS+SGJ&j(%)SfZ#`E~BiQx&_Nf~kHO0v*_Eo~}1J^f7o;dA~JeE(XoQD;GA z`<|#s5NPQG|Bw0avy%g$MrKL#J6*DvKanzI>_L)b90e08vQV~59ss)AgFKTJUj@1q z8l8@B#xaoK=NkaEE<`H5a;nu|p=5q!km;D$&XKh$ZkpS0aV8DmDaI3;vhku__C- zV>z|At;Pyi*4qMIDTXJ8N=Dh0ei4M`V`*a!I6q?WR}h9$o3fd|gx*vfAniH?vB6`( zwI$uNw{^7sYX7^^mW^|NsBCQO@%+KtcCMEGfv=_`ww_KnTt1onJUfNOAGg-czUSNO zfnh``Z2l@;hZ7y%$c96XVQTK36mb}wzDD8H=@Fi)3#lp{FeXn5)_Im*POxxJy z0d|8B55W32_XW|5u+mKK`>h z!zyF&DK~6WWnbFFem7XMMZx=>RLac@$Fhr{2bTIwSs8i!`%bwL9lfq4t9aR8=aeY? zggiOmYXL3jz96tcSLGV6g!NX_^jxzlqWuB#e!a27-B3mNCkNfPv^VRTd%?X1W=e!Q z@WI2$ov^n!xKXpY^zoxKd09N1p8U%v&s}K&3=;51#$87T%>)s)KBq^EEhm%mO5p(e zz;wm{W0}%s4U3bJiV5h)xSaljph5qW&dn;6ud-{M(`??VQcu?aVee?*c8SC&ss4in zBL^a|J`9XqpBvcuz(vJ_2uU82fgq*7ByB+NWq7AT72QkqL@z9(hwRA~h%KslBCA>0 zq~f|rR%i!20=Xuq&-k6)>~N9!YARja?H9MF$v`r3DcTIA;&E8zaQ_MA5qAK{_AK<+ z`=F;De@%i6dd%={Z$?Y9(6&FHRSYvOs0)P|IBrP<|3j5 z_Xn!U0ojnmvD>x)5c26)3e|0-cs`60G$opdcs(ys1*~WqIci(PaFCDGU^ip)+GLmN6XTMy-fNTe&I%6HK+B`3wO{4716MuwN+cK7$6L^Yk;dx9JWeiX2TfD*Iq(t!KfvP!*g06Q!Q=1DABccwb>cB|9jlWIU;NLb z4n8{{_M>lCBBpEqYdatu^g1v=3vte3s~x@|z|iC5W<78aj_2Y!i-Db={PhFvG=z#w zf@#e`_iO?R`tDf;4t59-Z2o=pBc(;pPJM|oi1)Uhk+a1zO3 ztMj}xFtmqh2IfJvOXYlnLEX-0D>uY)0Qe6c>;*RxLMvmJ|O*| zbCa)Of%`fDSO=i`$@hBO2oU-YsthH*oaX`51%g@v4f;MBy|sG&{`hX@ zjs{+Z06~KZQLJ^}A?Jxx@#qN@yHANvoDT{napnr5fA~7;3A2;F-O%v}{!;ykZJ3%* zrL$-T&IScSYp6)NcH(5APUzgL5ojul*_;;Y4E~;-Qm@?a({T=LeTElC$r@C%Jl0FTQu^Z>p-FO&?DnJ zn8N29uDGa6AvYp2LlMsTT<+nrY=ACutT+(f4kd24JQ9PwiZlo>+Pq9lE?cBRuchM! z3ISJvu%Y{0&DS5`ql3EA!}o{DMehm>_=P~2D^An=9#7Gu5ynBk8}uVp4PL7F_XLk7 zVBfewq4MDe!WpxsMPowT!H{>{2)R{$Vh^2>ysaz-o*5!S^P94J=pAqyR9@0vC1H;Z z1Q*!bR2wlocD`kbVKdXt;PYVL&QYCGhJ`q?#-v4nm`9f zcbU4N3J(JT(?pu=Q$cu4)DjOq7pt)drs43X)A(;l62s4~|lr$jdAntwt+x~CVQpD~FtsgSw zXmF$Ub+JJ>1oA8I+J^pLghK`smOl+Mav_)~lxd%^0#wo7i&Xnm4_V3EPts_+r!uvk zAPaz9xy*#K?(2{2j-g<~ZrKgK7C_`Zzg}z6m`8l9PEC~s2c!X17Mp7jalqP8@(aEA zivJI`=R|ByRyy)mKIs+EHO>HlH9UT85kGVW0nb|hfPCPSCZ34lU9;!Pu&EY_9R?>V zH2^GlE8bogg>Z#F9M?$^P&;dYj>x$$9Ccg%K-khB%+ss(V8~6dg14U~E-?b0r z&q?d1;#p*fXk!2jt4F$4rT$Q70#P3PD_?n4!Jj*LL4P>_;<-)k4{}P}K#9*~v(MMz z?jKX5DthMeOu=^>1dGk%*ow;5iVy!NQ5f{1P`K4A<>TaZf(!uQ>Cr()ec>C7bA->- z)+WyXd_}pku^jnJsA#-_-{4325AvNhQv7>t{{0O;gRKX?$9IOicTEKifPDj20R29j zI;9;GhW}_1f@dF|`_f}J)C1C2R;C;PsEe+dp#S2&D^IBly{T{BdtAR<9)P!oi81zq~QIPUqz)q zX&XRQH~{F?=;rcg8}MsmJiC<9fsWDe6aWn!%Wunw%qbB=_ov(A+VKGF=H1xUJH(^b zEJ?~2e+j2mL*RmcSI_+c$LJ(?kWlKK9zY9l^1BsD(tQIi1ArW7r1LTQir6o%pR%aDVt+KELvBe(gXhi-Aq1$2g8Tj0i%8wuV|v| z0>j>JmSKH;{r_4I$iMzkwtma}5q#yyZ-1V?@Mr++6Nr~g;I95RL`S-p%;Yj$*ytEc zg|h(YxAxz!1MrDzZJ}^g1XeGXXZ(442;{;4FZp5+Ky1Kk$*{PB(I2c^Ie5aFmxjxNY|CiM{RKw*P!;ady05tXvv zUP+)Hr|*yjd%N2I3!pC*fhEa>6;6lhLIf8IMVMP-p$g19jx6F;sj_DhEedSkQ;ufSD4HF_u~6qg|478 zW+t=yD;AgKH@XW@Uo>?MKJB{?@c)1{rbF`v=lgiJh~Qu z+ye;YIskVBd_((}qZbV5-Qor{rw%jvEFH>0zfkSXr2^jt(M}SrZ^?JT#J-92Jr%ou z5X=jJaf^c339`S|K(L6H8gS~h%GRLB1_Yxm>I45;I5t`3$GCUTZ1PH&J0DVBF<5n? z7(C7E66-eC!RzdE)CFXLIPoXqC0uXX06ApBAdKz!AqA!4j~BLh<*Vx+Uix3SlE`b< zpe||K-9^qyA(=49`{_O0C-cAh30R}PkAWv%mjq;ys4jT@mw_AF{4hmZfO#$S(L6>f zv0(U!LY2O}%0k2-+z?NqWlJzq4=OqB{XiWjV`yuEQRHhmyfSQ_>F%R28$B62o57Wn zUSNuLyc-Le$m6yfDA~wVm|hN#4J_s|RbX~O+&yuC@>j(%MUExS;S3p{p=>bt^wWus zHL%7GxfhN9STub9Sr#lmC+Mtp5hyb5DC0d@y?H>>`SOD{NJzGzp#Z>F__tc6w`=Q1 zrDhYsP(V%L)hvvJ!UMF_>JZX(tc7}pU;5$;^a&RBPs)$2i)9v!eq@*by$=j$#Z?K{X#2XNf}{ft{ld^-6FacIOy}?~mf0_> zwk@^w1efNXZ$b81OS6PgeuS`dpGy>h6@GoQ_ zRl`0WG-=7@+p;);GRUU}$S`_IgnD?up+pBa#Q)rY*zm@TqcVgYx*pS7$b zacJtzcsy9O1yfoEZn`huTE&QR8e9mdF5L-!bP?eFc7QA+wzE%|w z0$zPH=jG_bfS)&FfHxGb4%0_|SErA`_C6p;#ZacR3WSpbhX~U^H{rxVs3`_G#v1_d zb!nK#xZN*J@Y4Xu{|}vleSjr0P!{Mve=XX;zjR=CB`lNQlx5Pr5PFsR0Fw8nl&JiN zklr_NJMjHN#r`yNy7R=LChop)%XrM^)Pw~pUq3bf`3|yHEdtc0D>S)xrulxy$_L#jCf4u4weHuwIVg=>SjWbl|Ec$D&Zl%D zQvrZEuI1io1CO->pnafdL>^EZlJnt0r@?bhI$^Q&0}JCmX#N*G%S;3FfB4p)Fw=F8 z+L4%=$;`=vLkC7xx*+9&Rumx>gMZ4!?hQ!$>>HKDCLuh%y)xcm$M zE&$$Xq4dTFfT)mX*pKF(9FAfxc%s6v{z-a5gs@5EWBLOCaSs2%%V*#|^MGFlzmt47 zv-d%9i!3xqat&ZPBZfvyd7#|oiC5_H1>p@TyK625?C|2pBijQ3>3@{}fEN&u?f|ku z`#hKW4n?Wm`-j}d^w4VM@qx_uSEhr2IH5rn>u#^bI?ga7+i zo&ZZpX*v)O_|NyC7rD3Cn@9_>@!d!L*Xay|^=Y(#^O$n`*{}81SoI{}9sIcb2Vs7S zJrf@(sIq!PguYP*NMKIVi!f~|M~!QK#RZT=g$L(chWN* zdzyp%rWPE?e!w?~2ngheoq5ZnvHakE>gqc{9AI75whl%%B0mM*y1^cL&^bZHZwyek zc@e3AF4l1NSXq=|kUOso$Or{y1NpB`XpV)YJnI?-TD_(;B8Ueumrg*Gn zqNU#e*!g=-!YbG+c#)4uX)(RvO9L?md-RqiZvMozY7g)c zF%adydXK6E?Q|VRP*)+L*eqr32@g?)l~B-+HpsHSWgt!o|1VLfpMJXBdvtav825Sc z=mVyY>a20KJRXP>XMrGE`tFwvpa5;rwm*D@y~iuU_yeGxFcwTVqP`4^@&_f5(b0Hb z6o{+y4?>+r|*PyO>lGK*eSH4wOJ z^N>=zLTBwiT{Q)4PbJdm=y**R&J7L(mfvL;@%d6~!5>48iQ9XqlG2Wv0m>pLfzo;& zBJ|{>aVEcRt5=pbc1%r%--GXy(-Y@dN;erSHnRY;VfTKg4I=cX#Ce|l@bBS!*x2E? ztnc^D+b9&Wg|qYYX~FxPVthhn7fS?NLXZ3e@Se&KfO1#dQNZ8E(}!-=&YJfN19?Lt zc>k^Y(=lJLu*pbsyqD1BLT_RD3m|iq7@m|#0boC$z~wAG99b?pJQuxc5qjy#ekdV9 z=QEk=9pSK`Y9-o5LNpl35l%jyG}S+@etp=0zrRTX1th%ir_FA__ybKM{9Qr&CnYmS z`wCIdHQ&$FNy(8=$}2GEz{dx4>E-?#$7Q7{{n@CQ5BC6Io&Wx-#6u5fJ15l$b(^0u zq%$DfvQ-;j6)xsO(d4+yY*TwK5oO<@1cMx%sDS!EAFS}@jv}~PQM6Mw(tc~dWeJ5x z1qR0Ukwk;;|KZDvWd)xatmfEPFOS$T1vKmvCyboAPhiQ&-*0uE&s{D%-e%yyovQsQ zChM1PF1x|k5BLN(Kr{jM1NeRWTdo0aD$d{muA=Zi)_jZu_(MY3_uZ;U7@#%`p?27K zj@88F%f;LC?_l71mL23*voy2G28Lq#FDO6*jq$ecCB)v;{R^)Tf%3H$5sREK=_<%D zp{)+ieFI_K_QG1C=JwS)xd5oc-31PS z{z5P37YNwWR9RiP7jH_Zv9|>J`X_;W^nPEDBhm@u18W!I;5gk9yyd%Ip`0X zu5sys_d;feO26&@CUlWa$UI-q6espy3k(;7vrI}-lckNUB3$T8Z>wp6t^>C)cj7n^Z$)ce!tfa-68r z+P}X6?{`TufJ{)8#f)pTVKYW!IAou-YVi-_B(d4YVDhfxdF*mNdzmzYRKL>SHV42t zV6V>m*l9UnI&fX^8EAAHvz}Gay)orXr;*SA7FiNQE|BGWmX+=ngx5tw<__m=`hW>K zDh&OPqL4v5!mfZO)-eZw^HhhqCYcNRBjY6KLCGK749@KP7^PaGb(o(uX6Tfro%C{p zAPy8Gv1%-!+^PZb{|8m~Is81Rd{38zWgK4CMUeU{3$VsHAn(NbXZ#g5zW?tAw)gWI z49+tzV)0yRNuLfBX)o{3kQ`>tyi6G<}hTt z$3dSp{$bkxgEP0%Ol6{a0;P6uc1P(! ziTI2}KWXQ{=po$wFgXA3&_oGG^zwEUpqL!?4lREk9&U@X{2>igj6jnLM;RWv?PFh% z98J*AT-Ds5-$CvlUR*c-r^5>3L;7f6u6np1dHRbS`xL&+1=XvUV+W3;EU@?ChU1>2 zP2(YB06EfhS2pRZho`U)*THKQqjiIpcMV_rG&^`^rfC|0mef_!iRRz#-L#e>{OvpEls!dMd`H zDhDuOj8z8@HZJ@nMn}IvVrDD85!!g@`b@8{(c8!>%1DjP`k54aZ@{Ohw!i?lQK(RRo8!^1^X^?`GV4SDxL zX+idcTHfP4>PGg!P4ImU%KwpN=kI6(L33aK&mjFr%1LDKytXzQc@Nn0DpRAK=l@FW zhuHt;jsqa9ie*_B0&7((=|=B_7~J-up1G1ytt> zFRph!RH8OyR-m2UGfR_AX#Q;ilxv^lW3o6fwko+l55laKIG6a>)}`NNwGcu*{n12x z9SBVT00d>0fq4TLdo6bNzOHzBHZ!F@yvJkyQ}@;-Q8L5 zud~)~p9KUE1A;)nsVD<6AcYEe6tDz95D=tF30z=)9qLd9)MAK~mJ-BN6rnV; zCNQ9inqyQ^g-a}!LBNGhi8)?g1Hb|TkP}}e2r*EHbhKot2?(g7P@y99XgZ8_fgm`l z$FT^+Kov-Ongvh=lu7U?^8g^I!m%bWpo-Q*E7al0BnoO2Sl5uL7QwG((PO*btq25r zTaAQ>vA3EY!?^la%E8{UDBY!{+!O6}?Nj`X;Qi$6*Qth!(KJ&Jx!+sNakb>=t}j{* zVo<${H8rKUXSE^}p(V}DpB}~P-)c3jY1-yUwNQ<6r@sTAii$2}AO=lMR8nWn{kyIu zVo(SCX({^FEH#QyhaRVCiVRzN6soq=^pqZZ)S<>fHN|s(mMx|VMQHX&Hub2{gh-mI zsG{1_yS7bgYD&ue@p{f?(P%He&c@z;UuM2)+5g(yv)c7~*T1g=cKuTZ0RegUd#7SQ zDtJ~rb-05V_)g(o?#KPmwd-H2sF&}u?aprNYPI{pkbD(IfyktxiYnysg6c8Sl$HPr z8RUGRsZ@)K6o3>=@j?a&{6{Nr{F;K%eS-sT(Q4v8)J&N%)V!$+Cm*F5p0%E|hDp(1E(qe1^0|)|Qa5xK8 zl-_)gLZ=wm-%uKn;@$&%VPH6M1jcG#{U+)-X zB=RikVJ;rOii!LD(P}Le-Ti~DMy-ZNtUrGDUPCE++@F9-kzG5)pb9O0j5s&+n^Av(sJ8YBdh}+`|)cy*tVc zE%seI-8QtI&2Xr?pQ`w)uB$NS_vha3G?nUbbw6@e?)ABxIv3&ZKZJ-uk0M1N6bKeQ z5`o}Rkb`8?L0PD%5CN)?s+iIspo>-%OvS_ob4-!*lyoxYHF_A;#FC7N4R{Pwig&L_ z1)C1X#!p+2?X{n_-KU2fo$kxmwI!dtk-I+oe6@RK`oHcE&xhoGtKprq#^BSn`yTbA z+(kG9DMAx+18;rvKok%Kr*Mr3-PN2$=W2M>L#+1KRoI{G>_cKMyk4=X3OutJclVjJ zbFY@E3fC*-x^wS}w!6=MuisDwL{JGNi%>|c5d_J|D#9wt8A8g?b6mzT@Yqp@N|FUd zIIyW0a|ncV%%CWL(zPMU5mA89rob;6dKkwh2K=Veg2%bjpNj_IGw6(QoQ zwfOua<^`pHy>vE8@$Af{_f6A`jo0&$J3`F*^5TtaA4$WahG6H+%ozd#2-0E!11+*g zOF4ubAuK8-5g~abz9#ucWa7cWBD)8@RWRikv02R;$2FmmQcg=6K}HwodHf!Dj!8?p z4Gk8Z3YNPSUb00fO-u$Mf;ZBt#sB%uhuE+fujij_`Q+a;@4eA&zB-~^|F$yRY&C>c z{H|-h+Bd$~n_2I!&uvxXq5VG?>*Krng*5E$^@3&a@2c?Ey}QG6_k79Dy?jDOdiZ;o?;BvYHpBm zLgcN&Nfa1h6r)|^KzL$+J@OUCU~DuT8jqnl>>n}3>(#g6P0>aPIW~<=;_KNxv`aD3 z$Ab6m-hD6Hm7(Z%_uu8vIIcXjA7&%`>idkk@-KU=sZsUat712+$^Go>_4e5>n(LnN z|E!32b@AO@2$51sK?)X_Dk612)Fb5pDLqbc+Cc~@$13n(JWWC8`Y=URIOiwiPH6}! z22rLWydI<+H4MSx)T9pw)tFK=p%9*uY?>O?BQ!^Brk@EK+Oh$bn5a}#8evlaKtKRv z5#V4r7$PfCM}oB52NVDr4@Ee7Hexa)3`Zh8OFE|zni&{C007WG0R4YNp8=5QEQr_N z0NreexF{S0&H?aO{UG!H`@}ThFRJc=X#jYuKez)c=*C~lSH|$PfNbER`h~`T_>ylr z1%NpK{`yrA0T7Dk(5ohL5`rs{h$Xe6AwIna^nU3AU$rL4@V_^CkSB1lT&cf~aCh{v zWkn921<0T1BrxIzK>2`JUrjrPz1>zb)r9vc(T&g&hIl*Iz)J~RT4G9pnC7+X%y(xgp_%xop|C_nwgACFqv`?cA8F4<$8Yyo;=qo* z)z}pRXAe?cSc8HAa8<`(uaAHhct(E!X@T`uNEwI@6zV=m@&CsM!2aNSc$re$eaADN zXPkNE3WG}*qLrcJa4N|@mW3bLSyaH~_Rb>l(iN`%2JwAN)rU5lyY?@!0zCyWJ!x$j; zT;pm5D7cRRz2|9e!MICs){Rh{cn6nUI z^JK>6lEWsk)gplcD*Vbv=xd5riOx z>Kj{QjeMfzS1Y5%qvpB;*y93&%v+mc!mX-0gx5UD-DS30u266!*OJQct{s{Srgo!j*mUzl_xB+uN z$?emWf`tHy>;L)t4E{#W*SrN{x3D%)$ZA{jd)NkQCHi?whCXrtsPt)eIZ<63&4-+&0czRRmsE6N?H!2rhxWKD7wtjg7CrEA*KtqjlK_v2*uOxXl^QF=v(gO6 zY2{Y^sE-x!t4NPgFcyTeiU~lL`h=K};6YYFh>I<3-Uk*nd>k#pzb!yvi%yIzW`YcV z)ZhP^ITm_rOk(OD_UxekdfJ(3C8C*sDfeMTKY}Io z-c1AG{*MXEG`F4&q=+1r%i;NiicDvL2o|V!ymc-u$QPmRH7xRgh|FR6s z+hIV_hdiwGw3Diy6g-cDNJ9n2A%E>z9v#~iuFH1sRVXlBbYFEY z$qJs^z}x4)3i*QHxAg{$aXD94fUJY#E2{s! zH>R@>d>bn$5pP@Ag^w;RlUAPN^zf(k0GRyn(>3_7bfJ;LQ@-{0B17W-VX=<`q~ZA|GD=v z4;Oejs6{)2ZPq+@UN#Q*1rJew^Zr`{IuZFSv&$$KcWFUEwJ6Xhc=^H43g67t4}zQ{ zPT|@O0L9km$tQmS86E&+@7i(LYWh&&73H9Q5_!jLZnLWAbFPw}ht4vP48Kt%YQOfwgS?VE09aPPsuU)tl-I7}tqXUugdX%zy+jbAu|Nf`{Oj&$OirA`2>AY9CwLcGaz?WDqd~ua z%F0%i#=>1TXqJ73L}xug|GrLbslG*9!N9*ki3g%QOu(ca_J~tj2uz#o^L^qxa%|Qx zW8b+;f3SpWj~6azwF7b`;?3V`!v4nhvK@O9#l<{iD7CxbAe7-^*3v&feP2xZ+>!YKm|1kcC z`Qh(!sDT07M5Z0Qj}x50z0!jc+kfdQT;}IM#7*UGF0uiy1W<$Z=5UdO5}tdR8KVED z-cw04sS^Zsgl@nS$@mc2N8Mf`M{m#^Ql)J9u#>XaN{CzePWejB+0P)T+W~Nbd3zCu zG7aTIt?^9 zCU;)zxpTLJ4HIRGoS;|q9j{T(Fd2#jDBXw5i$B?&rGZ}`%X2C|*n<2YL;usHck1j< z*f*iZ3xYRzBQYo6r+sO6KWU=S<=)mZkAwfcTvh>w?o;;`?2LSS4g1r$&oq7L!Bw~q zw(j`bY>1Zrq>tUDx9_OE;2R8GYt-8!+OEj9#PieFV2^}xxG_~8&@90>1)Z?I4mZE_-(qdHW#Ii`8#id+}PyY+21*r2++B*w-)|3y zwji|jS#Qc4r-heB)ksNv^?>3~Ek4agZhmkUWiu6eKI)FYYg~a_UeD>`!a+r2(!oX4b#ZUd}J}b&GZ4sos-U5H$ z(I+ni|9YY@SjYwgAXvQ_q&1%GxKAWuNQfjZifPt^kt8**F5W5x0;sK+Cj)@1Phg#f z<2l?P{o0KNY#nT?P4oAX?y6J0D5sJijxCi98*TK~1)) zOaKn+@lgYy_bkVER4~y8J`iYrv-7eb?2j}mR^0Npi*ki;@L2~a=!e&GzUu|B0`$)X zq#Cz027CQqe}(5^&g-w@0dV~&9yIuUx9?93&Emb=7B~1xAz$U+$ZL7Si8pe zy;f~5ub*PWbJ#CnbtO%PPk0W1{Q<9_1^_tf27mLf_r=_7>He5vR2&+wAH3j`Rcxta z*8`WZwpg3OQ3fq1*=n?1q-|2C&i)jsgBXvHg9d?HQif3Y#Atto_V@y$(IQ@Q(r$Zx-*suwSbSy3FTIpAP$t3j|?` z#B`$`g17iP11rjFKBryBnIatjB*Gth9$-6nX8=g;z5Jetzn4XwpmHDld+eiWpBbx@ zMm|u6Vqm7=TT*lzXJ7zWkC=0SNp#)|UgIL>2d~1h$E;C@*##b`RziSt-WDO!j|w2Rq|~tX`}hgK=+X7CfaM2);5t;`^A2 z@#7VIwljMcaEy#)9aVcD^>}9ClBGAOAaVcv0H|%bDbt#FlzCt@K?^H${gc7}&cD(h z(+ZvM_dvF{*8{e5T>ZJrAC?Y204E0suA#ggo1WrEo$ry?+1u0!f95V&uKNq3h=s_e3K0lCBqQ)+*{mgjHrm6LI7gY<_P9yMQ&H zXy4odD_7__KdIs0CJO+QW~}4;0~50YPAZ-Nf-=$5w;{ecQAWabz*z^Xs80C{?Cr~ zYklRBJbgUAa8?EZ+nw)W{!8?c8U1g!&y6Y(+70n(%nO zuJ)K(7V!Cms18^!G+%v4*WSP=gI@hbQNzt#Gf|>E;7tUe(Esprw_R70!OwL`N`Duj zU6E+2u~U`32blOT9Ux`l9uC(-c+^|Z*On!4fu4>`hY5ZNaV1}#MJ_EK)QfdpjHgheF3W{?7d*X-9VoM z*OFh5#DZ{jyKX_Z%)t!=?xs(jZj8Cn!yVlf?ABGre*pa{!|Oui)NcEW+(DP^>NbnY zZcFr96p%K&_k1w{G;#MQ_LHWg$b`@>JRJ~6**E|Ht`m7(i)QNvEX*{V*)3WY6{wum z{D16C%%?R`r_q`heVk|l?SNnDzc8M~v{^{vzV$#O4zABT(32g_CLb7v0`Pa-{PsUT z)!GFsi%#Wx2PkX9(^iNVSb9NL0l*eT51L-VjiE8*_+LGLP9x1j=Zq*>ub^Y9ITB{} z2#f+f-zlX97|lTcg#cxI;9}?#y=s53PZ^jNVfM4{stPEw1AvWe5dg+7lTWJnBlJ7~ zD3RM5bX%qq69yLBBY(vJ(5z#iz7^eAp_vlA`I@hm%6guFS{``oEp1`>Kad>sJ`PD? zo~^w>@0@)(8dw(w8#c0KbUC=`6zMxe88@T$$4(po3O>+g$hHvL&jI*f6}=6iq<%k2 znfwyJpwJZjRT{PJF-=^vN2v2SOPFwy$+k}+k3r~uf9L^$t1I}o(kI}9_1)NYEnI)T zQ?iFBHN;MyVka*nGX`Ri2LQMC{OSkDdRtv*e5><0XAJh~9YMKt=0dAmY?J};C;+K3 zFXiE-x<2jr%5;3ryaX|UVzWGg$N&(1E?@mQ$>W<%u2^UjGB?27t+PG0fD3w@{FhW{6E zd(gJNM;riqNVAMLiZ+ZycgXH_vzGx}jz_S9cp{;2tR4XTwPc!y|2yn_V7pMIf7w$F z8ac`VP^VX5am7#aqlT*HWcQzVPDWSgSA68&DMt{K*`o0b?hh6A#kSDfUv35&-E!Vw zaX_=4V9~}p?<{hGcV+15-gM4@OI-fpPtEVipkW}NJV+?m+y6HA0N79DKeKk5Vi|j= zm6JB`-(Q%bD;JWd~hfUN!I+gZ0c<({gIrv8-UiJ6YD<6Os20*tLZ!^2c(4s5W?G7wZ8BuKD zQK~%v(!=);SoT1o1MdwP2(BkMf4=ol1E1{z!|W^lH)cGi++}5-r57BkmNo#AFC&zY z^xc3=;soR2Gx41%h}pMb0Q}cS#{XZddhYwTZnmr_G#o5p7SBLi#BF0T51)caz@jg^ zx*z`GTrF;a`~x@A4nis0;I$5(uzV(fwmvE7{*Rklb^@bRirpkMmw^Aa&iWi*;OKND1``7JBs(ff2gnIgr}C`zr`*>@5CaMTjRT!} zYkZ+4_i=i%Ald_g>`_`L|3CWx&+||2Fre>ly%pgnG&e2l}iHfuRrM|FH~->FS5LVh1LSkm>;tKf~(o!y%-dDt_T9 zZ^O+yN&#))_GR3UYu5}0f3B+@5x-E9L*ADj71}ASlnDlgD*ip2db-7_Y1a{277UIX zK=!{$uK^k=eggvQBVm1H8Q1Xi4Vy)C09?hJ_SQy;UYCx2zgr8`4mKb%nJ0ZDfkD+@ z$jgv(@sakad-)X}5it1q-tqY2ajJMU9E|5WRQ^gWM^oDG;s@uz=d=J|`u&aTYaU$t zi}Nq;qd`Jm6d+e7qVTshl+g(Jz?cpFK_KtsZF>oO4n~Vq{r`a@Zxrv?lEIT+--H};f+I%ERo3*Vm$EsT z2p=eA53DQ6Bmbgt*{EGTEk8}9zniNA)&?;S%<2_ynO^58<)!gMzB0^UDr_>- zopNg4yH5*d&68CNmuq7EY3@1wXfMbw5XW(X&XjIK?LH0B)vgKy$^n<=oTCA(U^dX4 z=ZnXiX_y-3x-Dv43<3EA{(Vk!x^}&1-lu+;he*)_HA=4$Wz97y27tW(pU4!(zDv^M z{K~)}JhjgIz6WeTQOQaolw3jPsK=BM7840JsJy_@!=cNBn75xLdU2dxc5$Po>>s^-XrQf|197 zq1&a&C%~ll3j}^Cn{C9_lnGSxwB90M9%(iJR0;*_SU*f2>)1-QTlD%p51g**qbCj7 zTq(HOFD2=jMgC;5NV-M+Et9=Q@{r4;;XGw~dk`PAuD{tH0OYU#bM6Pq+$*dhQsn>1 zyfkKiL`09UE^9Fi-1e!gtx|=T-`%9!;C|0cK8Q<_|H`azS3pa-JMzFI`~1eAlk&to z<%YtZYHVW1NgTD0dp-Ewm+*r+9h%PiA^Tnj-H?Ym;6JYwoz)Z$CrblL4<7mVBO;$$ zaN1TSk9;+$&)^GZ9mFcAR(AD-4Zgsu8UXql=3W3Y4cLA*VowlU?=Kv3B`6!1+~3>S ze}lgckavR1PA=$gTlY=osgh8$&Ywa41Dnz>ba87AJ?iL4l^35=|G?dR{1;1l3i0IN!2hwN4Kdh+(OJ!{i`xF#k37G_vBqDT(+Rvg6nNuMYxVAfzcB(O>bWHcP?a_w zGilJOpyMVIx_E!nSFmzjDuM@0>y2Iq82=`lT8oL?ENw(1`ueUX|9|mD(7K(tMLM{$ zId@mxj*%5^%zE(86Bm-u9<{13q`SSJ1K=09tg0AzN{Jg- z5&Dbhli>~6$iVuKA}}oDL4Q8TnIkXZG!|IL-TP=Z z_{0C8-X!`Dq@LrwRqI+E5raBHjW-5>M6b(wN8dr2#Xav&q>#)MdY_$t?*bYC1yTILIO^#=AHT@6?=i;Y`VdouL=C2 z}(F?fiQB_?V_JL@5+wZcM zcqYI-hfs(5pOC>vr~;@LEN&4%y~}ulR4yVOQ1QLv;O`(bPR4zMVMR8KrHkK%yaOJ6 zLY4xTO$eFi{?a--%+@Fa_xySl_D3fi0zV`~TrK5}Ge0Oa4rx6E!P?O509WzchAtX{Zi>q#j zq-|*bNRa6{h413w;z!IN|5L!%+?QTb&>!gK&_c7qu2H;i2<7%-vEXb?ZB96xCs=X& z1XvI}2}551kf-nsF-U7JKchb*qKL@>Jnb~F_pJ!~Ue1evNzRf4Ww`Lr^K?o%A7`5_ zuL3$f0{@{8B=|^^@RMwVrg@u&&O(x^h8`^b3l#Y_(6}_+W#uN=vDxr2)gh@zfmONh zB?Ro(MxMoV>ryuO&xVO-de%go+94UDRD#&r`K^ie2dxbmA2Xb5Ywm!GpRTfafq`5n z1f^RQ27TsTHgW%gQpK`qNIxg%#Hn||u7TJAotlf>edR$IlWUto#{dZJMRuENv0p0< z2`Bf`rTEj+8g33T znI;5@w5_!qqJ`qlgV^&cc)km$c#3!vH=q^xPWOvG!vGTXxLt62qp)@G_bLBte61?d znrmONKZY!m{hT03erOHG`tjhz02rqt3JYGWUttWwPWwQutQ+_AZ0Zp2`CFcVFtpHm z0WV&027o1CzZdk~USw6;{xFvR_+QP|Hzrwq;QfGM<@LbYxC2iO^fyg_`eo9qDWOHL zV=DK*zq@rcb+if{G#>{{MM9r%hiqm}2*_;ucC(srq%?&GxT|RN z{J^Usj9MEm?>p`O+{%9E{!QSIF16j$zyl3Ky&eRVD3rpO>8Hu3(3N5WRoFWdT?V`p z%L4#j>d)mpa($cyp9j*L;Dp!xmi5tnT^^t=zMREvuR|Y&KvTkTKuq*=R3Wz0GZ=V2 zezr!2{0FWV0G!+*+CY+hs(RXB8$M6iX$gWUDYIem^UeQn^|IL>@C@r>08pQQd3uq) znI4WoqTn}ITsALG_7BP0_-53G=8@;f_ZAK~^!9;%ZCwu<+#eJH_VzRDp{ty`{$rn4 zm;8?Gz)}0Y)ux;i>|5^Fskw~&7x}|?^`{Tfat;8Xx$3<`dxBH|XdTZCntg-+#;bFH zfvcazHu_MYZ|&xB{xy%FTd4H*LI;atP7wnjYFO%nlI92hcjEXAv-diZ!&26J0C%n# z?+}ai{?E!j-Mfgs);FZT$#26Z&5)Bp0&qOtrsu>ouy7wBQg=f0$W5_V6( zCwM{Xqxt79Jst5so>@u!)wpCTQP4Az?|mX=R7oWgvJfU~F#zJWBa?}6?FE5V4RQ#+ zh$Gd(3mgDME{aroVKL`f;aq-7km;Od&xvm~sLu6iJW52mM#2Ih>-)SOL*+#t#QHOr z1g>JFv)6)i$DfiIxVrcsiXVJGo!1GJ96YT8o;3Rt^yrW80@lhr131JQ+6&?XcBb4d zb14KH91A9_dBg^k#Dhd!sZEiIq7}SfEQtFGha#sPA>UE~T&RN`IQUCizX#NCkTsea z$BQMg5(U2${tkweI+u`lmSMohuI?QyX-O2vuyhe9RPl zTXY5BudRhCQp`Gd9;+&fi-4LRswFbuh=?JqP#j9C%7p#}zUe36IC2OW2S){$%G(dl z1im`82epdJMxp+|Y{*`K{v2%kRfEaE?@vdBPIq^RYX*Cs6ASv!zA@#V?2Bw*K$Kky z!3jI^6!20n->G_!Q!syE&6>SZ4|Hd1@tGohfMLn%XgLi`{j&Uw7Yh)8Xn{JFS?fa> zJt&}ON>RhRc!LEOcdpe}L>`pN+n)azfa>fGvZ%Gr`8@47djI@}oop zz{^5_n2#Ly4G56n#^H++e}RVX)`;@wLCosN_tHSQ|?Gd^YtQC9QK>PC90Ojzyn<XtmgYiE5W?knmD6Dyb1$_jbezSlxCgLuc79&b_Sd~v%HJbaOWM>BwOJ8h(4 zaWc1<-1OM@fj`eR)P<;=T~qVbfw^1SfXzy*k2}D+JvQL3EIvwDKeYw!9nkAb#k_6U z;E^A>$R31y^0qJ#DD!VM3rMDn>{@8^{Ww@oEXz1Kd!z;1L}XfoxeGQlu13kC$Od(F zO3f9+TQpt0Bfr%Iq_~GHZqUhyH8rGY9gyPV2`ZOqPK6@_V3;>i^;j5j3<|0C#S|e4{x4Xw(C64RQM)mT42$E9N|)UBpQOe}Pz<0CWS; zPV)o+{hvtm`6e2Q)K_DIi~lXJg2fzZO>AGl&q9DYFx>k}&iHT9`6i5cQs^Q3^1$U( z0m#PtFT^Gd0HM)Q_D%J-13f=2T#BN}rs&~aUjJasN2g=`Ee?FT5I}N#JtO-gj2v~O zjmy4S`AtWO-Rj^v437z~l@nTh=S&AcGGRq>i)h#8`3k#m)dXs&(l!%OP6^nX&@v$w zJp3<3fnfM?tt4~?pf;ijh+S#R4~T{Si>2g%I#iQ=zFm0qJK|a5kwg=)HSCyg@ujb%8fpp+W=UQJ= zAmlLkzQ=o5sbln4Zh#;odmHSP;~2szp@9nvi*;}=d3dHlYKa4&xu9xfYhEYdZzc!f zZP3lv%$at#<$)*neo6O4r=m2r%-vfRmwCDq@4^alUC%=KywS0%{KIm$|c-NLEo!xr# z;6SwF|3N(*e4!xuU%(an*Pg5OAebOe|l*#1D}=!6Q@RV{0A4*r*Ak}xn3 z$Gm}eK@E?ue+lz|w#x;5$Dq*8FC<3+UcmehX!b@rAkcLVNN@{$-5Kp2OFX3e)5~HV zh;Nkp(!^8ur*62O%gIEYNe5i%50pc@U5@7fc7Z_CKo|7>9(6>$zJJ>7`#jqMj}tkC@Xb%U1i3C8k4*>0CtFKwdh+cs#GT4 zwV*(*2D=mj@PiDZC_?>6u?QBy(i8r6LrydSi!K{Cn+s6N^x)fYXGwKu71!LayuR6080z&g|u0(fFcaiD{mz9VnC@ zRb`WZ>ahe z1>#@d(XIo(4>^5bAzmu}8n;7#LRbT18~>pPLHvb*y49CK#)Q@nm;1_zzwxm8E0^

(n8)3d6eQ}-1Z`3X1=%T;gNYZtNxJ$4rQy@L2Ux+L8N2}0 zrt!tiLG~r-ANd@c=dOL?`fxp%DTUO_li;7bls^av=rdGFsQiTzt9*LBKX<2-^H3>= z(6BYSUE3(n691MZk*^8-MDam%-%p;eS_}YHT_nvm4J^;J1;alCZlDku56LIm!67pl zF6=FII&na^BEjx4VPM1l0kj$GDJs&{^?HnPfcwN48Zc@w{3ie7*qceIx_WZeGZXq6 zTv>D-GT2N3{>rDb@%fj75QKz{y;Mgd22%$;+J}<>3P0(2-39d(Sr+goW)QmLP2DD# z0!yphR*|o-!A2G-C{jdP!vk6g2=^|oKfGwHkrw-nNv~>4Rp4x-cc8tE^NZ{F7WEIc z&uMi|t~;vx3Lph!e?ZLF18SEB@53kPvNZXC>Kr((TXD4rZH!Oxf!3BPe2$d@FFWWl zYoWcf3h_d|{R08M@Z82Jh5>e-YiOTV2f#ntxw7!{jt)pO51y@1YpWi)xBt2j zZwzSrgVigMk2M=)%L3r2=gXWKba9afnu>%n*(Em6EFr`gm!65RxV{6Msd@hVfmH;)dI2vAm zetlPh>>02=3D$&_lVgQ?KZD?>{*CxA=ao)m#n$@RFpX7pY>`Wmi z;r9oaRE`1cZtQmoSWj$di4ItzZwuwS6)E*?{NHdpDD#2x33_K$l8X#W%ixJz(RUE+L-?LxR8>i_l+&^U<2g{-Xz=42e8e{DN0LOexl z`zE*si|fFv`rm(k4;%%&RT&Sy1=h+Rit^g)<#z;tIN@rCOPfIAp z2%z1>M&Z>tw1woFfME@|5x)xPl9?xaO}w8bw`De_83#~ z2hskIvcKg9G^}oMQ-ljeUZy+|^K$>{Y%Gs{c0l$Y)obeaxuf56tbF^X_XrcVa|!bB z-r)J=cG2~=*}EOYDJszu{h7Ya62WTN2W)`}hr|V@KzpGBnhl^tC3+o9KimeXM}`lu z-;-}4f<&|(_xU=g3yT9#4w+AVBMTH=1OL9|e)g`?pY0*r`!n+nxx6<~vwZQMiu{!nk%P8?lq*nzYD!!akh zzOyf&HCh)G`=F-I^dSMYm`84=QUL2hdAKB{QbWBaq_=cUZCzG zf6{ISjz#2D4M-=(AiWKou{%a0_Z;NVtpJL%%|B1$R6O5< zGNPjb?M`+!H5Lc|;RVCOq>}~1{EZFfHm(2vjrCSulYt3-0EU&Z9TxS0wp|5|r1tkV z4o>RB07k+-_itnU%v0B$Rt5WDlm3FY6Zz#BzpstHyppW%-_~}5e^U1mT=hX;v{uxS zLe8F*`{e0|8;1K8^H_BB=KAQGM;U;DY zwwxI_i1kF~wBCxNEe`37Hvh?8ze}(z_@`%&`V6oZE}JAu@jg(`9?%`WPOQBW!ULen za@eYPtMntgJxS|Ue+?qUf;oW7eiM@zI7;COp)P=0hZ(8P)IC-nq!7S~&Yivhu@LR& zwlLwv$}#{?5Pe)XXvD)pPH`0ze;8Lse+qb_+Dkg0R)>Orsf3F^Fz2896$E z?cK#xer+*3um98J!fp!WZ||lnDaMk2|1LAHH!i*cCISNh5CBk10|XQR000O8E>}BT zf#U-PP__U7RJH&B2><{9FfU^-FfTGMG5}~mm%jo5kpTbz2mk;81OQaF000;O000eT z008l1001bpFa4kZ00aQcCIk9NR(M&!gp$+&C>RQ;PBBqP6cU959D2u`Zbwb$q=wX4 zx{OUm#ES(2o^o41?h!-J%ZQJDIwr{Mr7Hga=G4+nT5ga?8#I?rni{lJB_JfXTgWi* z?zjr{LdZ@5eg}sKSqDHiO^SmX+_t~AVgs9}#rm2v$cEt-cpS*f!F@9yKm6Uj32uQ= zkZqD)_$F6#)|@?XB`^Uc+iyN?6Z1k1+zD*fnjfBsH5MV__sg3PdR;DFZ@#0SUJGb zVAiLsZq$7@>qgHy(HO@4OZE=ExsILKagf<@3mDuEu!Pi1QV$KXO@tom<+kTl=m%sz z3nZ#<#RD`CRFYat>4g~Lq^Isdq7WIXzq?Tc84T6_A34VlN>l+Qpk%x4`_FC$(!Zaz zg0sN8$@#d5;2&9~6mPEkL*BrK;XbY%DkI`BAuwCP-8^>x`YX6Uh+0ZT>JHiq5yjZR z9?@*K9o)8i_-Qv|aq75`Xr2}fhoLf^BG6XUw+J#TYA_|hKz7+GTQPkGSFuHW1eCyy zKlDCB>hceK1`o1t)ED9iYP;>=);RX#k0?9k{60hKfl)}UNZmoxLC)ad{=#SdsS{I3 zEBb|KgzV1{IYAGiT&C^oV9yk=^2hoc5{sht#THk*#5F(K6L-Rn{Fkz?~ z*c!~6^J9GT2ucJK!98#~NU;`R;+KC&&yx~EZU%?pDU!vhfNBMYaVL6b%Gm?gQi`#` z{b`V%P+1?-bNs+ik@!5=F2DI>(N`%?=p8yl_ENqOPv{564XB&J?bXu+XF>MCIFK}S z*%DHlfyszDep=j0;167-yt$6NA7Fp5{jHJpE+!0BiyH-A2ogom8B(@8z@ka*zsUjF zB`^ZB6@B^5wSFx0vx3X1C{c^s1LMuzM#&a1i>-&^yikk=n3se56siw$DJ0tu&@N^V z9U=>|d*EoB(kRgH!L5J_$kuV)m||=IbR!zLZLj|tWb;xNY9DL^>V=q7 zZAdV@2QEd*n0c%a`GACB{9yQRRGt=1st3-+WU;vzftz~WQ}V$cU|Z3HZ3m5~B_rw} z$FH%9u}9FSU%QzJDuPZS`OrBvrthHT_(_p9Rv~D0q9x!ADJzCQ1LJ|(K~q)RpMp#i zob3(lAX~=;!(Gf1`sUvtn~6EW^}$*r&I`zXDShY}JiKWz!3}OsK_;bLUI8Wb5Lt~? z1RC6QgI4q>)bCfcSaDvYb}f=j{LPwE0pm)~r~um3dGaayWSZ68$^ zBOjNL8Vr9aTS})7e?{L+@!vWz#@-)fzmzU!iiDxMyc;|5&ycA?{a_=Sj2TbMhQwl% zF^fQhyZidFZa)hp@^J;(F6Q_+Og792v<7qh^EGH?0b9|BR#gUKD>!h!*Zl`FE#MDE zK*@$_1DV(F)FXD|+93AU&ehSi$fg*~OGG3vVm9%Wdy4XeDxGNR4PV zOdlGCt11l*!AXN@JGj3JHA9L6S!1=ICgozfm^w%rTEu7jfB5z5P!+jo=$twO^Pzoc z9VAL5;v3PdXvN3>d7+;Q_4@)$I80@$=5#S@tR%oU+x}5ns_@E?BCT|gFWee`ti6(L)}4Bk}F#>VoYbf4^2Ziuvc(l_niu4qtNUL1!_A7QpU{3H3N(3DH0{Jz{5Y6+y4FO zV}I&Yp$f7=sC~bJLoxESfNUVUrDVe#LGh1Dd9&@`kALfUr*a^soR^n69hZ-*=KPU= zWL3RUzxu3B^|x-+jXq|A!;k~F1Q_RaMAjN%I1Gp2v;k%N%{Si+?y=(?2Z_4bZ~7NB zxI>&mYD#iDG^XFE5S&I;{7&5rv;x^c=5LU$Eh~QDK(>;ckBcVtBg1eVr0GOjt?0|W zubl`oLqDOPzjYr$e~*7~n3B|x=+-DB!tj>T3?6|V(JsIFEB+HC3YloBQ~h=zrjRt4 zDOf%9f-$GE{zo34#YW--_t&vgfkYs)Q~hXCF^o4ua0;?77|WIoDWC3dRSMPtdPUz1 zZrg1K_sus4G!`N);1fEh-sJQbV0sp%wYd4vIeskg3@~p7_j`Lh(F1HBmy1ei`-qZL zP8=p68{9X09mpXvn$*o!JSp*y4)TJrrL@54@~@$Zi6NIl!rxMo0P~ycpG@k7TFQxk zcF>mWAKCVszp};*Df~NV7@S3F3KssknU*ZzmQn^OB-+KugALps9@QH)gVd6JlY1%0 z$2!JdvX^WdW{8~NS`kZ9Gf6rwaI-#)AQS5gntf2^f+M3$t+(;6akF>mIbsL7Qhj5vahX#cGDK&t{wGdRwx1m-~A3~t-KXFcsk6Htt%6MnEK zs4HR~Z2zYmKQVm#r@p_ahlwjHxh$^o_kri*z* z7UEpN-F!3FAW;Q$2aSXK3;#raf-6G`hlxKv{S9P0DOsN)S!@`89}Ahh^YRi{2Z_U^ zVkfX~<~8L^k(b|$yEmyHtY-&JrR4Z_qAR>g;QcVXrNnOr_ldGE)LcvmP9xfX{~<7Y zDR(IAE1>uX+_qo-)ow@7Lu4yrA!s$KEp9Za8mm&r>wolLh&TU7|HNzMX|Fp+vTOyHnB9O>PH`hUPcZ zZc|dii>GBG#D4>=OzH#|iEoGYr@Gsr9}^UXmWs{Ok`c#`vAqy!f~qYSBOVtcRyV6q zXK<|NfzgWg{-1_SC;Wm=ktcKq@}$Htx|mk1UwPMAobTa3QF0F){+q>`Glv9} zY`1;vW}Rq724XX?9kdRl?U&y^)`<{m4~(s`2ku5q!LnUTc;%4PFjO~psv)wMlEvnQ z9j~nux@_5g`amL;lEn$b^^d9*L3%~I7#)%A53(;Gzpg|y<n_b9g!8OH-o!|9hZPpNGj#&jl6p33~UBQLx13x$3FI-DuPVK zE>dHa+ z+K_mlAULhyYzLV)KQI!(7@RdHO^U^)fJ&tlLnO#{qCto?Ck7`HP3oFcMtmW9u-$xf z4gDqZh@R$S2y zY#n6HNkI>9AViuJ68%#0o5k?M?jh7Nq)zDlJ#ea;B57!`^8YAVp?a|CAje0ESe!Rw z+>JmQWe<^+E!KA+RZ7mm4Q`CP2d#WuHC8KPmxH^067csgWd!=e$E;ATKS9l@J+uc7 zhl#}Jp{{6fgS-BTk``pAFH&==sfYG8j}H-a#RH`e#S zjc>yw@pT|?26y+LN@;-6tHwxP!JsS)89I zJ|N{V$mVI)oGwNrz612-m)EZzXf>g-*jStnur{D<*R&*Z8F>wn&A?9R1GGx{o_9gp zPFnFm6{$Q>HC6!VIFR|~uTyy`1ynPz9x9|ZgMXa_oN|I2f|HP1*}BQa^zly*Ztr6z zsQM#lPR*$_smpD@ymsOSl!_hGSF{&)+<}PmQdRMC+dGgc66d9Zd?B9x=9@k5!TuoX zfzxsEK+WJU#IPGt()RFYU@zqh5!^S2CZ>c}h7`CX(4^ka17*WZ!TP{gG{5;fYJ!{K zqQJv>-KZt7hpJM78&jYkY(-n(>9}-U0O)R}qfj+5>zhtGE>g#I8|DM!&0eUQR1Id3 zt%FptZMXgAuoFQmN{U=oWO0T#H=y3@I3+D$8)n&}NsXX4+wQ4M>IFT1549n^l;fAc z3aB)gmwVss?!l(2Md}V343z|UMDzYc8({XpjSub=(o1RNMS}I?pS~xpUdsJ7XH0)7 zchE?DwriA}LduXjK>x@wU91F@z};z-J;44xfh{BER3Li?&2%cjbThbbrVe1?t>z?x zd*FO%7H7A;Pa%Ep0IN0fv|8N29e(TqNdim+7dgELo9*A@4{zQ%zy>z}x|~|1!cdV` zDkZqV9sUVJ&h`o@&dbP)CdK+0`~$!IX8q%TC|Se@LR2YlK0UQ!1X@VV$crWg!*|eb zW|`m~7)gD>D5MtuZ6MxEKb9dC`xAv$%6XHEy{dxy=I<7&;gdS{-1Zm)v7CBy_`88k z1e+urCN7FS4gEm`Zrd4%;k<5gGG?Te?Yn;XLu4C>D`E<$S|gAx;A9{Xs22cyUBsO>i<{-3%nQ`ftfcx>-Bd!hch_1KW2hUV7HWLQZ-iG_V>Pi?K+Sx zZb0^pdh_|QQ7v^MZXVwo8`v$S@o(--%mefc?qY%)+~3#R5g8GD^UdJ?6Uy$PJ}!>K zZboSjwhxU&r(l7bbC1b`ho!}bZL|9`cC>s3c3z}bEJ5g1ATpT~HARR%r|E0{A z-+c2&KcuCc3d0>>@tExuh6CA`f3HVSAvN2a39YJ+mJM<=JL*kuEhGY9Ee6uCvlhXj^#+%X4~I8DPw;`215lxw0&E^DKdjplG+B;XYXHOGr%zX?tavR0L)zQU`hS&G=cM75-^) zi|Mw5+xFf4k1s(#4-~InD#UrCu83vZYc;@hG4i2pxBceJLtBPakvanlku4=7ubld) z@J}ESrIDKBZkwQtyn1d{DRJ#aRseubBd*;UF4 zXltaQ9bm2Cyz>F+^ff1n5!~SZy4i#}zK;thhsX-m$HfEnLR3I?qJ3QBvp8?2Cy?kt zj>NaWYz5gTw1>)Zr!uMdQMLt{?H+259}8^%uRc|UNbfO>KQd1X+_qCrpQn|>QN7s< zyHWjMC=su}O>nhU0`s(X=mTTEIj72)i6>>*vfYZ^qjU^oO9|(df^|6yWDEUxFM26& zo`Kz{p6Wr)h6(OiHw)De89_EdC4zZcH`B)~azafxcc_fn&F`JMnTc?J3YP7nZWQ{d zpknVIBKwgo@J2M-Z@&3tK~@3Xfa3J)>(?@7I!F=U%{S-zvDi?en{_9ax(+0`Z}vRc zT+A01wI~56sf`~l**dNkx0`L(tOvR8f$Wx&?O#8LWJC;36eG7CSCWhvdm7q<;juUJ z3bJvSJiJZJ4y22j!;sP};O{w*<703t$%WgbR;V>rOEw0l4HNUw4<#wk3@Hs}iyIQX zWZ!K2&E8iQXa%8Gr0O7V79-F@WJ|V?T8iuoAKlAV!o6!unj1F^UbV(e8LwPrN|yQ5+4Wh=1N099_r~`Ow);g61X)= z#xVN0bX+X9okI>}7&1kWeJf%`>W|FvSCGgAwL?=ha6dkQRw%uKh%cui(c^P)<1u7< zFsd>3k(LsR4cvJQkuW@_n+W;M{6|XGmWXeNY*f9Eos)uQ8KpAzB; z0?L8(-s}EBj;EF5$Hj=>eDmetrcXg43e?54A>j}w>t|pf#1$O4S>XQqbu*rpj?0F5 zLVK`%BmLTXA=aEFF#gQHVjQL$72GuJf%9?QsAAq6>2!0gC>=wt)PbAz zv2Fxfg{lMC4rQ@Lpl|;A^yvs%c_{{BHl!Wu;k;zT8mk2MiXMOLM%~7F5y3oAD8`$| z2~|G~cYt*>i7%%T!6?Q9^vySa{i~0En^c}}zIi|3xl$6v*h7)%n^j8H05kZ_|9O9^ zt()neLZo+INK(7GK7`r;{G(4t`bhK()02#dM7Ks(53+TTw)5Jlj>x#}mxKFnH-p;~ z@p0Q}1iI#g;W0M2Z}!d;or1MP#acVj0CNMXt|Yt|h{g05B5Cy>9{cy_*y6TwhJG%$ zU8UTB!jC^jX_M*z{;ate#URv{?40@)Q?mYh6(w6Z zy^@?sy7}h%p$W=6N3tPdJIRvLO+m#NfnvjR?$! z$OgcZ*f4YI062@(ahVA5v;G$T4sr6d3ZO-N;NAn^Nc7F!NC8!n8h%#yLG}Q+NxIo~ zaMPq@SxGLZ@<82e``;+ENGlk=fq2141mCCfFWVzVLLScWTG9Cg648bM!);I1%KMJo416WkG* zj_uv3Z0R6JIDn0B%EVi;We)nF8Q^u^TWlPn&*OX>K_Cn-o;V|87yLaxOsg&J*(RRLq^Tf*2 zQYlxoN-1(6S>5bLEmAWKM~QB>{X^;C{*jZ^B*5OSo9Vd5zZr?PVZIP;zlBH>9E92c zJLU9HkH~Jm9G{dETq$SGDS&Nzh)iG$smb!qmxteq((2>91h9K3O2luzIgH(Wv+XQu zQg`SE;?1o8NGT)+VlF1QafO!#u(EY?%mNN?Lu447Ieu&pagrK?Q^#fdsggQ_6dywc zR6%wIDHXc_lkMX^K*w|-wucvtM`SXhi0|f`&oSk^QIphe)*tJ(cU~}>Bq6m5Xa*^q z*9dxZs3OrP^oVA=2eNg11M!7ns5+2Ozi#$76V!zo1gDzQBrVzFgB#o)NYmFr_E06c zm-6Xt25*f$voe!HVfaWI29pzZst#z*0`J#&kZGI@Sl-r@#46B0d?>hGe_# zH{U$&%fp)w9c05$d8oFt==nj!Vyii8tT0N>kYaI$H`{H;m68}n+iedYgL?x?0xVYB z#qaAGL1z034upuq1jAe0#15p2{Uh5j^@+}q8Y1hVtk2yjL`Kjl(#MrkYfcy{{Gmul z&369L(u3VYTS{NIPjm!ba|YQr*Y_TS^obRVRMvwVpFlR0Ji&#)>_=9T<7t7L*UiC= zyT>r{aPD=g6W+j{ft4*HIK;`nP(*iVYvd}W3BriObd$Ro-1SFVnov_n;P!Ey-lPJc z6H?#R+cwCkU}M&cMRgo$3RBVIceFa0W(!ck^ScsO|2^ z?q+azyQM^G83bTY?fYcIq`>1~`-zrRO51J!KHICdV$JEDuy;amvi)XO z0(*QJ5yi-gv1`uLf8ZX`#7dLeLF*aZHTEFq01IV*;5bY)Dcfz|8B#}NKCbaAxVd`& zt>~ON{*1g%p8!88P0S&e(j5Dy7 z(ux?r8Qe4PQ?P8Wr;rIk4Z}EoDOS$ET61V~^Vge+iDI(1XQVur>CJYirYN0Z~QjG-%1_dDK{{^$Z0ifo_!UtRm>EKz4X|sYs07k37 zlJk@<4Q$^C#M`@vf#jl~zxqn~W`N6?8;bOiYgZCQ>K)GM60)PF!wDg@%v1I)zcL=&? zVIKHb3!E5ihVtE_MO};flxgacs6NOX^Nd6Ao*<5v;$nr_$4t7481fr(gXSq9+Pz{r zVE*o){RPLN_n@AqwNdDYy#|7=eQ>Xn57ZnWR=~Zg53myeuKNSDd5UIE{C&Jy4wK>& z@pc_2!7KDG-E(0a*jjD=Kj2=k^aD54*J<*}C5}%BBicS^m>LsNY9JRYA9O;b&-0M- z1zxXP61kh`GQXy@PvAx<&qmvC`p@*14075K$Tiz9mit&C?@H#c;vh5*@3PCm$q-1{p2O;_8~9*;-+t?q@)mVlXZS4)%$)4{1-YjU*Y9BVPWV0gzaDZ`$fPd zup(SU)s2rY0ndF0*s6fvlRRKgV)=go)37D=V8I$OcFXdp?qD3NVW2__h@t5F2f9{$ zC=Kct@xb(&=*?Wy`Jx5|B#)`t3^b$qWA#7b7W7|-9r|CWvRX8U=%t9DeJ>u zNRw60v_*2L+y$fXm+mw zN3pMEe~T#uhewj|fb8ra0Z*UB{oqg^U?&(0Iw}Fe<-v-R6mDQELTAvaDH^h2e6u1C z{wm=xrDXuXOD&tS$r+$8Yr)rX%QguT9X2Q=2O4Goh`~4pgI3|k zRf;1uj$p6VwZrCZlDp{e$^WEYJJ^@P9VI{^{5`AyMgoA(kavA28t|75`kX){Kn7Ys zF$k~*K>X)~Q`)OSiVlyCNd6Bv=NgmTL4*#1%r{aBCD^$Yq7qgTH^}dFU=nsCSJj+n z28_M{pTHH{b^sKC90o-14cLZc*(w0@8pnn6x{6usYoM$LfcAjn#eyTZ|!KYySJFvlKXX2eQXvz<`ud?KTeB%5-S?M9w-laR_kd-5D4g&t*&jwld z=Yr(KBG$4S%zui@0p_(2=s|i1$PPw7{C-fY0ncOsVpz`~ncom- zfD9c#2N`7p0Dhpa0Y0ygolPcb>i2{M@ruKOnYRO@2fhcu)HC4e!!$W?pjiC}jQ#a@ zaeU5!dH*}u_5C;W%B+LSL-kkDEFj;7<1Qdn4pJv_0X0yk zZs?=zwMHi%B9R2P5D!Ro5=6GV)&m98op3D$<#~Zcp~g0_#DhZ zzI~7rIB1c4U^uhPK@j2~865vTo9Jcq)jyQBVwKeSU#2oeIkY(lw1fY`6(R=lKQxnd z;Pt9#^1`Ta<-jB0K^M~?{11__3JDKL1%p&7WL>ap0XiQe?{~KbBkCn#8t%(|26KKD zxE$1pf`A@&r^--Fth>JXuqR5hFo?~^xzK2P2%fk{4lKo4=%^g@Ui%yj^tPcMgAywA z6M*2i*8#E51po_*AN8m_7w5bko{l7Fqn?rl-1I+PI3!OYRNn`U1^}d>bk6)8y+>`; zHeih-p`u1TAbbb^dAOb$F!6@16tac!YCgOgfp-o2KWX- z@B=O%bBuj2NgS|%^EK=|064NdS(s5i8iebhp)LTttbeG$;Ug$JBH09yxrR zM$Sl8x6XG;0`m#MU$3q>qywz#)gI6lO2hBlj)Q-n2dJ$2$a9*ywGCGMMn_#Wp_&00H!_a`2pg`yNukO^WVHL(im|`Ed^RhKMy{k zK2ZeRdd>J7zkAev7Yz0E7s>|OTwp;Bx@}_Sfd(;fAm{hsuFg8~Jzqn&N1Xjo**uf_ z`+t>f8?gkCcWMu7gA*WV;Eo*VJ$F{!?&DQKN345p-$vmypd&2ZRi^t5@TEg{wr)f9 z5jPLlf_{N|AGWOaM}ZjeI0sA2`rPmDKKq0G%HYSni-%y(m<9m0pU;^$0JUo}P;R@H z@jc%v>F4{@-ete(1o(;M4OjOlj1J`C#?YeypDf z*GR%(Fi{XlSAAkw0{-Km#|(VE!@X5;)}(uh@oK+)d;q;;klB zyM4AMw6tGE41nu^|7oam162~RpoNs5={cd2!Lxj+-`$Hm2+OAV9|nV}Pd?7A!ZoRI zl^Y0~J`@Hlhi2sk&EXBpxByTnbY?uv;vL92u=cYW83@{k z`!*=L0|``N(x!n*|Fhcbimtcd^YEK@?X2&vgEw>lX+Ol)4>i-#iZ_gfXvY^mlE7QP zupI!nm*@)zNCwM=8#@mQnsOEG9GYP`=HGUO4nPYx-0Q>c+(p8L!G8*cH^Axh`1%1q z39?}U@3`iJ8XF&od~onBc_4rec=;=mqL*)AFG#G6&9*Stad7S6e_3!FlMYV=>>bPi z7zPTALaztX<8XrxcRaoOKj0Ai1`H-$3O#`Xr%=~OEYm%WN>eq{j)Q4_OanU*OofW$ z86blp^#?tez*lkV2VPevp$JZNl<0cqw!R;r4apb_ReyPG=Fe#UNcJR6vwFG{<;Ftb% zgMa$4?^L@Uq?h9Jrtfdn-5d;+fHL0yM%RJBxnPWpjdYV(N{ol66MDHcdZN)i^3Ycy z(8+fWipxO(<-&k|Fu)4x_S;kn@U)Nr!JD!3Igw7#)BNDfaTA;gx2{x`Ce`UnhFIS|KLss-2e~=@FjzxHxTMH zI#(q97s8lVImR-$|uExX9eAlM92hlwO* z6zC0$0oza{dv2h-F{r(_nWS?0%0c(4sI>T3~0)G(06vvPIw6uU?AaXvHl}e!Vuw(u>YmcBz;L1X=KFdO zPOQU#oeX020C)$Dz+mZNBug(V_72GwkvxiUt9y^g*y7s8tl~#7AO_bODd- zdN7>0!NA5bPOJbq1dAwi!-ZW_JK6n2^!}ePBqN5K<@nz0VKg ztD+nKGDZik4j%jr%LZXiNc~ESNiKX}vu?fy7-YslYM<9WcT3z3sn;_Y_mn(>Lm<#* zk#mZmh~9@T4HR^3<3R#)VO{2VcYrv!IQYgrC;kn_yX7OGzL70Y7uSuw%iB0Q=Ce}UoTQNzO#VQ;De&^tL8SGy z>^(v~N7sQLrY4~XN=C6VgS~Z@fnYw%pos5|yr**aOZLZZcLJBZO*mEl`<;RJzx#{3 zNj{S8muCAInO}kD5A6O(bI$h{cL{81x6kSi{!f4ZSbQKa?Gi5{@V9@vp+D}V>1sX^gXPnsbTow>Nh|r@4wHNIPf23Uc>f> zDWNa(_b7t>R|q%%DwzIH7j({{n!5pD=w2#aAJGoByx&>*#3~n(T_fEi22-}>kLW$h z?VDHnLVtasnG6v@{2=#E1KK=5f;Q|aKc@WTLiZQ*S9`(tKRSE=BFzK$ik}d7Zhgho z2iOO3)zOyOiz+zO`rhA&cTzuZv$^QQezkR)SO@g}!pPUDHt5Ch2JLWv!oT&pT>5H1 za^`_no7_h>076T9uI+~&K=~SVfqtZ-r7ZS#pQyUTa^RN|3yAg=4+(4cr;5j%Bd_M+ zwr)XeFs3jnXP`w77~y{EztLOZUSMdcxYa(W@{d@dX>tI#gg4Fyd>{nYH zFnZt**TJ^iqYZwv$iyiF-`+*c-m|0Plj{h8itB5I~4OP@#=0 zWifORLXOH^Hb4CR2*DfB^Ra00IMpF%vMN z!n2bfmgeg|zp~<13@qRyBq{~pY@ieljD!NlP{^}_Jq>J{V!h=K)PbvuZl7+7HrTg7 zMs&C@7mm5dc^)h>fN05Q#|cp&iaOd>$LteU?m+;)!>w%4tb}9%5hq~#Bjh94L$Es! zI-x9sMl;+2Y1V*2WB{6kvH>Iv4F3l;n@_jjs=?BT4)SmVuLp@cfdL`>ASt>)%I*WH z0;k;u;MXFYp#f7dAD*+q27^Lmptu`p`v+UqCuhCi+g_RWE8eh z31XoN9t;Ct3B(otOljzdM~rFwNJwnNWHcB;y+AD>Y<>VR@Lz>Ksrf6t1lRC$zz#GJ z9{g$Bp|{k)j{y#zaFQ4pE-pZ;V_JMR|HpuRcz#iJ0My`sWP=-C=&`T*V*~n*226j? zFu-d1!4`*tbodT{bYWN@)RquT-ytt*+C(mH@CLM4?->Yt4zM|RCp;($A4|H-I9RbP zX`?>)MGBb{4)!uAv1|w34)D(g1LQzZr4lP#{bJ@|ey_MAO-N>m5C3E}pq4+d-vF(J zpx~Hkpe!a4psT1%%;O>v8uKrt0l>3`U^LhU)cliAHahos-ZFn6#!}l0^lFLMprIj} z_!u3|BPIc2$$aqhh}_bF|6uJ80V#>LIQV~aVMQGr9dy~jue>}zToGNps>toY^+TZ; z^r!+N+aQ<=(jBzSxmE7hI5Xlywe@0;AvLmq>vbZi%%JZr3aBVxmlor*z`nP%chUj7 z=iv0sXCNB^T7T#>{oqCDp-^V1{8*5H83+Q5ZA3uZ-+p2kN74&4}zjq133S`GxoK0A;`$! z7f-~1PPhe>ABo+!(gvRC9e%&fZs6e$*6^P)ET*r<;l{p9&*sW3(r3JQ^jo}^LB;@w zM-ItCGaEEM^c>Y4F~4tDqE&G*@Hc^f<6jAY|BMQ-J*}K_LCk*$_^a|_#n_c!nH*5OQOTKhvX@FVUcZGZCm zgzK8yJX#Bx)lbu2UvA;gcl4FtuZ;VXc8~0M2-fxPj30uweVwW~?%s4a4$dS2cC@4hZmoz->ekBL5MF6^icgX&#iDE%@rbfsQWoodol1xq$HZ zZ`J-?v;CapdQfN<6ZRZ@9&F&h>>GqUTRkr^Hb)&0xIXN!F7N=#S}DrK7BIWFzsLDX zxMw#FfV$SI0h$6Cxbu0|$wGoJUk(!3{_Go&PY3sWyFZA$Bb&;-pY|T~hjk2xs`1&b z!v_LuWIvIWXCBH!pP!9-A_>3h3Zo)dr9)5llr_j*=KMdFg>XH3T@b~&sY=c zjIP7tK-w!A36d;U4&PSrQ7I-=yvBn7trFkpX%xyfN;1#9cyR<)s zKWT&SgPWN2$$Q8^{3^@MU4BoTc@+4taHs!|#^DwttYLo=xFl1ciy!o}vQV+QLzc?R zyY`})fU$FWxEl=A1E2Xw(FA=?vyTyblj0W{yB&gTDIjgd(^-Irw7@{HwmX z1BD<50j?MLSOZ{G*z$+`0m2L%nr6vP7+)LtLovy?XJ8Kp|6&Br0tZn#ApOuDk`|AUbSucf5nZE?)P(oc0G{a;zjj9SRs3Zl~7efXj)za)4t1F?m z6e#;ZeL~}Rh)TkmB|gp|acJDI*@f8S9_(OX#5pnbf(SNXCShs~Gm+u*ZA>)>0~UPf zfNg^T@i@CIFxU-Kou_9sH&F2jRt=w5dIP{M@C07i;y_Xr_EFG_9U&*~?6qF%U%)E7 zTI<2C0_cI~*B}U=2DdEKsXyna3Lx<%x~ec zgET9k$}$cvihSUCirWPHw%JvIM+_q4pegYnsSGSH%N)q4Bd(?IF%J^(^|Qbap`iN# z63KiIIpkT9&l+m{)xD4Gi>X+8K&Aw(bWlku5b+W@VE)m*J$4KckwR6rL?U9N53r|j z`3u|SKw$=bSpf+Z8icQ1%jjR!Jpj*Ku35JMD+`Y{NrSk90pLQ#3kpXzd?wgV6zj|C zp)>zOJum^fQ1}^`j2IBs!rUj?B7-j0Y~n!l25!XzD~~!zy@3D+05^ERYoL;^y(f%V zJq2Uu&0#RjczD5!G#mRD3kzp~5C(z&LVNbYJyTg$A0)tlr0MNKYag^BvhT!6DFy$& z1}PKcdOh%hN^FW~Oqn)m@ZT*9deL@3w?vdKSCfVHX7W|GR?CrnO0s;UldOUz7*q2Ec} zHSgYt^ay`2I)GbJVBW|i-T}b3_>V*8zMip`Pppb)D1sdHkUvcLfFd2pX5ilrcvd2z zRg(A1;F8M1K(H-b4KvjP`;`TNj}CH#20y@A^sK?m0!o1W@C~@aaPXW4=<<5Ni-iC% zh+oZswl@Mh2RC&9$lx%0%h&)gC(hF$&?WHC8(?vj9`sy(E`=C;>9ltdmYEFf%>g(B z%6=T*!DAJ9l!cF7!IH0Z6}s5~QU&bYPjcASU<8Q-99;mi*pT!fp0-1Q)-hG)s2K}3 zM~lgu3g?iRgWHET_zOYd2;URC~VD#YS zVDa0NDXwEUhe8LBW z@E@d|Yo=OYkrfs*4ZA+Td>|3e^A6@fweK5X3cc!nHUPENW#gqcuYr9RZNZ5BA9+8D z`}zd}h&<%;Z|z>`{13kqMu^K8a7gVVgkSYSc`P{!0K#`}q-IWdXg-G^^q z4rGOnf2S~g0yoFb=x!if9&SmHl)+=IpIpxK@+H|%dfAgt^w>bcJo&oA5I z;C?A@K<=Y80gLjc6~K_FIu=H3oc`}~p1cFc`S6^@AguLY;z~rggcC~SY7y<=JM7;a_6wmeQEh;L`&GyUItMadC z6p0Bi@WJ|*ln15b!jAQk(FM|GUNb^u35XPKqe%3@p_5W<5^V*$1DOV4N^9TwaDYe|JQ3l#=$htt^QE|;KCokQHLJXzk2^xEx;5Ejy`tK zvU8+wtnJL5^zX1SneUhUJNy1^6nNW**dVA&eh%DtY($u^{*N9&qKHjT*_DCB`38Vn z2G%pZ@-+i|&#nMVK(xOl;hP(9WB-sg*Z?J{xC7o8c(_9$4-A(a$GdpW_Fn_&b>I`* zV`=^G0T3M!c?vtFLf!%!=CIO{W_4md5w7DNO!M>)P#XyN^}uP}pyOomflf&~J}{Zr z)ItC$Sa%;M91e<%|4p+5zDexQ9C%5Mb_ku}pR6F@3LM$ST7#fA;H!W&GV?ux84PR} z@O~=}{NYi~0Oe_@=3&!|XivaU<-A7aC5|t_v(dvT4d^dnZ&*RgKp+PY4LA>h1wPnp zppavgQ8N@Hmx%H81xiRk2kRjJ9wb;Wy@zP-%P_VekN48& z0JqQJ3iN><8d!&ef%-6|BIFF$&cL2>{|rMm|NKSZQEXBZGE3F#c^mQX@!hE74GK|qj@md=^&e;@3%Pv4Vwt>1d? z=eq8r=O^@7mfwv4RRv}go~}0%RubEY^DFO8QxzwS5;Pdr3Rp#OydrA~jtL3#H3pc- zUk5KqDDi(lS^YxbEhvR^SUz#=ji zlunzse07uK_5gJ``6i>23aU>Ij@ka=*~_)?BQjD`PCM!aaZ>xGaL9v`WCdq<(Fdo; zadg49$VJ+>kYjjYG6#g@&4SGmanv+-R<1Q4nbg<0g;+=)u$XIDf{ z*3>&1F#zsqtT5CCzsl)&3BOUvBKp+UxO0f&zEKqt)QAHRMyHX0a-{*J-{+^g8bN0C zZ2%5Za#3mY^iysLS`!KI-5RxHxWusjCXr2CV;el+1dzN5msO)LovP z7ep_@cIvd1dxh2|!4QwVnS2Opc@9TDw9_3l!^2(W9VJbh$Pn2kUnt>7`yNJf?)5dAe@TgE_28_R!?q&$!P6DGP;gD2JU;Roon735jTcz zWX7)U%Y3`mNG%3)%lgqMWQeqWay!&U8nC8ps&GX`)~GfYI0ROZ5AU!%s1&PLZT`7+8M(^vWcq$>2%c^88kANR2Qk9s( z*JeEHJ7^8Gc&Yz8-k{~?t{K)6{{ohv7+AXWqfa#5HLVxCvp;>7qk2tnPO;)BkFWLy z8(5CNfL%iDZ51l9XI4q#~PzT3EW8UQBl6lIZCBNevNYBGI@x z6}f=(>H>#q;|9gJ^?;i$f=@su2g1btBNUY9IFp!?f$)(&gCznrZfw5#mu?_J)}S8# zbeV}`owsPjVqf_8A(IJy)Z+Eay&A!lWjV4VbKc_CTIsTTMVFMHZag#N;|pM3WJKxF z;-8!JLyGC`*@LM=63w20w!SynkdMA_CeiL!LtP*D{@X90N1sT;YuDVg#4f$7*^W0q zuhA^EL;jwowf(nzIxs;&t6(%AucyD6|X%~1~(Dc@CX29o69#hz^=U$iPB%1-M{2F@t5c^ zDmv_B5V$2Nrh}j>gwc?<{ge5@EIJt5=+LP~>+5L$21^jFXiDC4`16o=8S(bB<`<#s z&xi#2`inyk#D4cap8ZiyX@t?k!N-yj388DS)zu-i7hbCP<=J58_j`-55(~UX@plGy z{T0VSNx`yX?^)=PR^ek^mt@@zIjgR%S%M; zZNCB?9~;0|5`gYrXu*ew4L9Y;@f>Fmox=D0>zEO=`K!So_veHg;m_UN0|38~6XLO!ANokQQI!*RNN${967QT!od5)$El2s39$%JSo7@NiVtJFs zb|4>2B+aoX4R?0@*nSt%Nh0P9P>@*(gwlMuhhBCL*cZ>s;Mv9mjg0~CpWtH3NDd0a#_29zi>IOGL&(kCc z!z&CL=3t!m$t6&S>i`ZZU3i#sVf&$H+VJy_$exeFsuWwG0wh+QkHI{+nZYl*;4g+Akj?LAOjf22%%t68rfz<~ zNfG&@^qrZ+Ym)`%Y1E%eS-_e-+Et~S+>^QfM0Qw8fYHsIa-V6sH;X>Cg_a$x+$VK4 z3m!Lp`*;uhCH}Ru$osm$hnryXE4&O5g)1U*QbUrO80$M#d*N`#M>P!$am@Qicn`}G z;aYekpUv29LhZgmXqAT35Y>7a{E#M%yE2Z)L^C35*asQSV)?(#A^#!tzr`n9D*1t4 z(7Tb25w0~tmBCIiSuO;4!dkmJk=GuFUc7j=*M*p^DbO+dx4u42PG>6RpwP?YfUkE4 zLL)=gUqY+wdu8UwF%=McGW`F|WkJe;y(v^nU6sFZ$J)FrY_cPuv2W}a-i2a=04=21 zaioPZdx>fyt<(5$rxy$Ub@H&aboMV2#4hHgz*UWF!czVL50jf^?OX9-Ag2-1UM1lr_* zL7pg=rGCN(`NEhj06ieiEJURs!6w8h+vnK zz{t6UQw2?RTVD~8fdozDm3?(Pj%SloKJ-*6x&c@JK(MhxB5N=I`?$8t3QolN(|Vf{ zf+mFT%1=SRrb*dPJx%iO0jMgU{?4K;<&eXUwSNo3f%urY2h(UUnbqXaA`(DRAB^+7 zptzjbW*5-T!3bJ@FOQ3w_wI=FU#%76#Ku$r8?kQit;8h?e+?w;=6&}}XeTGR=*C%`6!1X>%~DU-+zo$Wu{*(-8(5ew z6PHvV3&z#E=)Fg7e(u5MsI(X)Ombuz*JS3?)?NZB|FVss`2&J^92t>V160O?@y9kq z6ErJ$>B*o~A`qHhb`9}?3{2!PjN`B|VBB*;{#cF_T|9cqRZGClY@76sE_zQ#3(gnruMw3GH^Lz9~pRQygfBWQB3d5;sI9owL2J|8p zHmgEOPW=gVKn{4F)>d%>pExrs;ABgiMwL;`#(J!oAzt{T?p%28+-2;3?W!H|~nx!vFf2F!_G=U7A;7v;W z9e}mMMMd-(UI8%W;ePBnrUePby{a8v-%Qv~)+R~gqR3#gUm|Pt-Kc+NfgSW8n%H(T zW&gd{X-PpzqUf@AMFF04lz)O2JJqI&_5LGhhaZ^SR^hh_l#H%;bf%%gupS*$;kD>t z)bt(24yulC>Dk4TMMQjp^W;qmY8#kfMrNn6#~{Ki|0BLO)W++2ju<)vTU3aIY^wa- zjrIYmcBXy^X-(#BVC5udo4iFE8o{%^n+>nk>Ue=V`GC@lm3R?-M%aPi6PEf9LO|?h z0Z*J|n| z`Za~o9P>quzXBD5mS9_b=k1O(lw5`dd4WCAoBo-HW&wC%zazSjEw^@wHhbK#u)09+$qEE@9N|s&cXuhRR>84H?8N z=9mtf#h+FXJAr>Vl1vm!M2HIB&b7zAB`ahE4~AWRnY2bh!1NhM`zQmpqY^+Lr;0N) zNX!cG^*87x0Ui!+3ldrm^9PAyt0c*oWJ^E;C1IY~vaF8{##Nj5QC*ah^^AYuUO!)~ zW%nk9@%!VIE9_LyQB*}twe#RVd3#8(ogtVcA*Kejz&8@#g&Wb4n|=jlK0nxf)3w3I zzf39ZX`je4vaLw|k|P%3L5d3g1VCi*Ts?B|(X=8^^hfPqHczNdHsO}G;=Mlph;cRl z@sTQK_k^&T35=zam{E?Ha(JX%+D)g5CAkL%8uaNl1Jg{<;JGZ&J#mkS?y2zY7C}3T zf_bGEM;={!UuY?!m51khnt5;foK~=ZGnzK`ksK|Uxn82fVHrnor<<-S=6H-N2K2;?kH`a(nw94RV;ecKr1{eIAJh+Tl)an#ID7<+sm5><-)V|D2OqXRJ zTuUePPtw2nG^*sAU~|5O;8n+a*D-~`d4xl_C`e~mu~*mKP=FV)XvTRW-T2kS5E^!h zi&(fk4luZo;XX;OD89pHSGl-<2SJ6$qioj8#Jz6G!F|D>*p3~3K0f63m@r1aQQ0n> zRl-<**lWR!Ea3hHZF-~f4$Y~^vrTGq`5qo1IP1G4pna+)S&?>_J8mCx-*Xy z^9`SB{`wB*yjNA04Gh2QS_Z$-A1~nY1uW;3uMbW?!*&jz*rFBEar&2s+pG!UA!Asz ziNZ3ncVwT&y&tbOtnEpT2$?&Fvc1N|l7#%}^$+=2&?8Q?`QC#~U@!tXMgV_*(OZS3 zIFNadF#jH*M7GzWHj5h|cmN1L0n&ByWp%9D=L086sQk(^ojuqVw4-w2keiuJt)LI=q(bWdqb$@*L>Q7FUu?+l+umF143e~%_ zo14s^_YO~f-WgWLD}JKx!Td1yP)&aA;^qG!` zM{_dNlivW*pOH|Y--od3-?M?@3S;&RK3+yX=u@yb3N9*ym18>s4<8 zaQF!}g>t z@U9>!dbV49^10YgWi5VO3@D#ockAsbN6!$mF@Y|* zMSZRB?)&$_`Ul}iEp`b1ms%bhfv_TvDFIV8+XE!o0O}!Cu4UFnBuYoDoz}ZtkN0hZ zL~#mPBRS&}vE3eDTa@fyxpCKoF@3_rPy?0a!moqha`0`w1H#~RL8pn1$>@3{D%%k6 zBR9ta91Yr>MeCdqwo$MkIn7!fFz%l7PtyM`O_CjbTsiRJlOf!Vi*A1Xl*rHMo8IUO zfkEp*L>-isetQWNQqVdNprgN1A&QL`PSvM1$=MS8CLq-3R{gs0bE{Md@Cc)AU$NPj z#^+wykr~vdo)Z+M^x}=rOfUb{bgK|KdyL;Q{Mc!#O{FImsl1KPp6K<}s(s;?_z*iS zd2Em9AiFW*{li|Cc?#`mUX$Wo*O^h%(dz#(~f*W5*KUk^vj2i}Ice zatjeV#LUmdleR+g7)@9W{z5h|L<+2eZQ+cY=2Gmpe_@Jg128kb{;`KGhp{=4Uq!)@ zN|SVi+`yxL-om1u;Po!9QW^rBW+3MnP1G^**9xst5)X3vNC@(-aqJjBovz5}&Y7H? z_2-on{pVYv^yteVdPejoi?MKLh@hY;S-}N~nxF(g@+uIP>Av5k^!pFqUUOu8cv#8z zRfv+SiMddX%W=eGGP>vb)Xr{p4rs!#;}>gv^nZIWAPq^fY6^48*DNk7%Abbz1WMO} zg=xvQ0)!Q`F|7~D*V#}m4^t<~;jG3u{v+^50qTi9m2=8bNOKWn-3MrkR8T#I_LI5l z=%E-%G)U|WcG-^wUjK$gh^?wLCLd{o*D+4SfQb4<8v_7c>u7$-Ct_(6u!4n+F4>yf zM~ZvkVst(6+9jl8;T?{1QlpCWU-&rd!hreo6qUpTWqtHYV(B;@q0jOa%P9=$^Af+! zzs>bhSO7bLJ3h~h*S_q!Uodt$UxGT6yOiER$}QUvNmv@OV)@u(jg1z*)<3@;+A~S= zm>ZCA7L+E~w+wV~rZLAFDk+;6vh?&4^!*(uajIJOY1>u%TQzXJCo<+i7CYO%|~hF6IS;TvS+GziW)JF0f4s9_0ilxMV9V5

    KTOm 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 O06nj(Ao8^n0Qeu(<76-Z literal 0 HcmV?d00001 diff --git a/tests/test_lsm_single_volume.py b/tests/test_lsm_single_volume.py new file mode 100644 index 00000000..c39d0df6 --- /dev/null +++ b/tests/test_lsm_single_volume.py @@ -0,0 +1,77 @@ +import shutil +from pathlib import Path + +import numpy as np +import pytest +import skimage +import tifffile +import zarr.storage +from utils.compare_file import assert_zarr_equal + +from linc_convert.modalities.lsm import single_volume + + +@pytest.fixture +def single_volume_tiff(tmp_path): + """Create a temporary multi-page TIFF file containing a small volume.""" + path = tmp_path / "single_volume.tif" + slice2d = skimage.data.brain().astype(np.uint16) + volume = np.stack([slice2d] * 4, axis=0) + tifffile.imwrite(str(path), volume) + return path + + +@pytest.mark.parametrize( + "zarr_version, expected_zarr", + [ + (2, "data/lsm_single_volume_zarr2.nii.zarr.zip"), + (3, "data/lsm_single_volume_zarr3.nii.zarr.zip"), + ], +) +def test_lsm_single_volume( + tmp_path, single_volume_tiff, zarr_version, expected_zarr, driver +): + output = tmp_path / "single_volume.nii.zarr" + + single_volume.convert( + str(single_volume_tiff), + out=str(output), + zarr_version=zarr_version, + overwrite=True, + chunk=(64,), + driver=driver, + ) + + assert_zarr_equal( + str(output), + zarr.storage.ZipStore(expected_zarr, mode="r"), + ) + + +@pytest.mark.golden +@pytest.mark.parametrize( + "zarr_version, expected_zarr", + [ + (2, "data/lsm_single_volume_zarr2.nii.zarr.zip"), + (3, "data/lsm_single_volume_zarr3.nii.zarr.zip"), + ], +) +def test_lsm_single_volume_regen_golden( + tmp_path, single_volume_tiff, zarr_version, expected_zarr +): + """ + Rebuild lsm single-volume golden archives. Only run with --regenerate-golden. + """ + output = tmp_path / "single_volume.nii.zarr" + single_volume.convert( + str(single_volume_tiff), + out=str(output), + zarr_version=zarr_version, + overwrite=True, + chunk=(64,), + driver="zarr-python", + ) + base = Path(expected_zarr).with_suffix("") + shutil.make_archive(str(base), "zip", str(output)) + + diff --git a/tests/test_lsm_strip.py b/tests/test_lsm_strip.py new file mode 100644 index 00000000..1129f3f4 --- /dev/null +++ b/tests/test_lsm_strip.py @@ -0,0 +1,52 @@ +import shutil +from pathlib import Path + +import pytest +import zarr.storage +from utils.compare_file import assert_zarr_equal + +from linc_convert.modalities.lsm import strip +from test_lsm_spool import spool_dat + + +def _get_first_strip_dir(root): + """Return the first spool strip directory inside the synthetic root.""" + for p in sorted(root.iterdir()): + if p.is_dir() and p.name.endswith("_HR"): + return p + raise RuntimeError(f"No strip directory found under {root}") + + +def test_lsm_strip_convert(tmp_path, spool_dat, zarr_version): + strip_dir = _get_first_strip_dir(spool_dat) + + output = tmp_path / "strip.nii.zarr" + strip.convert( + inp=str(strip_dir), + info_file=None, + out=str(output), + ) + + expected_zarr = f"data/lsm_strip_zarr{zarr_version}.nii.zarr.zip" + assert_zarr_equal( + str(output), + zarr.storage.ZipStore(expected_zarr, mode="r"), + ) + + +@pytest.mark.golden +def test_lsm_strip_regen_golden(tmp_path, spool_dat, zarr_version): + strip_dir = _get_first_strip_dir(spool_dat) + + output = tmp_path / "strip_output.nii.zarr" + strip.convert( + inp=str(strip_dir), + info_file=None, + out=str(output), + ) + + expected_zarr = f"data/lsm_strip_zarr{zarr_version}.nii.zarr.zip" + base = Path(expected_zarr).with_suffix("") + shutil.make_archive(str(base), "zip", str(output)) + + From 497e0b4e3ea34fb43b3f34acb818aacc62151adf Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Tue, 27 Jan 2026 13:12:17 -0500 Subject: [PATCH 098/133] style: cleanup --- linc_convert/modalities/lsm/mosaic.py | 1 + linc_convert/modalities/lsm/multi_slice.py | 3 +- linc_convert/modalities/lsm/single_volume.py | 11 +- linc_convert/modalities/lsm/spool.py | 2 +- linc_convert/modalities/lsm/strip.py | 9 +- linc_convert/modalities/psoct/__init__.py | 2 +- linc_convert/modalities/psoct/mosaic.py | 124 ++++++++++-------- .../modalities/psoct/mosaic_complex.py | 53 ++++---- linc_convert/modalities/psoct/single_tile.py | 10 +- .../modalities/psoct/single_volume.py | 3 +- 10 files changed, 120 insertions(+), 98 deletions(-) diff --git a/linc_convert/modalities/lsm/mosaic.py b/linc_convert/modalities/lsm/mosaic.py index 9af053e8..f6989448 100644 --- a/linc_convert/modalities/lsm/mosaic.py +++ b/linc_convert/modalities/lsm/mosaic.py @@ -4,6 +4,7 @@ Example input files can be found at https://lincbrain.org/dandiset/000004/0.240319.1924/files?location=derivatives%2F """ + import logging # stdlib diff --git a/linc_convert/modalities/lsm/multi_slice.py b/linc_convert/modalities/lsm/multi_slice.py index 9e4f958b..592584cd 100644 --- a/linc_convert/modalities/lsm/multi_slice.py +++ b/linc_convert/modalities/lsm/multi_slice.py @@ -4,6 +4,7 @@ Example input files can be found at https://lincbrain.org/dandiset/000010/draft/files?location=sourcedata%2Fderivatives """ + import logging # stdlib @@ -45,7 +46,7 @@ def convert( ) -> None: """ Convert a collection of tiff files generated by the LSM pipeline into a Zarr. - + Parameters ---------- inp diff --git a/linc_convert/modalities/lsm/single_volume.py b/linc_convert/modalities/lsm/single_volume.py index 8f4d2c9a..82d632e5 100644 --- a/linc_convert/modalities/lsm/single_volume.py +++ b/linc_convert/modalities/lsm/single_volume.py @@ -4,6 +4,7 @@ Converts Matlab files generated by the MGH in-house OCT pipeline into a OME-ZARR pyramid. """ + import logging import os @@ -54,7 +55,6 @@ def convert( nii_config NIfTI header related configuration """ - general_config.set_default_name(os.path.splitext(inp)[0]) inp_data = dask_image.imread.imread(inp) @@ -65,11 +65,12 @@ def convert( if not hasattr(inp_data, "dtype"): raise Exception("Input is not a numpy array. This is unexpected.") - inp_chunk = [min(x, general_config.max_load) for x in inp_data.shape] - dataset = zgroup.create_array( - "0", shape=inp_data.shape, dtype=np.dtype(inp_data.dtype), - zarr_config=zarr_config) + "0", + shape=inp_data.shape, + dtype=np.dtype(inp_data.dtype), + zarr_config=zarr_config, + ) if dataset.shards: inp_data = da.rechunk(inp_data, dataset.shards) diff --git a/linc_convert/modalities/lsm/spool.py b/linc_convert/modalities/lsm/spool.py index 86d98016..97697aed 100644 --- a/linc_convert/modalities/lsm/spool.py +++ b/linc_convert/modalities/lsm/spool.py @@ -5,6 +5,7 @@ https://lincbrain.org/dandiset/000010/draft/files?location=sourcedata%2Frawdata %2Fmicr%2Fsample18_run10__y10_z01_HR&page=1 """ + import logging # stdlib @@ -233,4 +234,3 @@ def convert( omz.write_nifti_header(header) logger.info("Conversion complete.") - diff --git a/linc_convert/modalities/lsm/strip.py b/linc_convert/modalities/lsm/strip.py index 5224ab6a..6acd141b 100644 --- a/linc_convert/modalities/lsm/strip.py +++ b/linc_convert/modalities/lsm/strip.py @@ -5,6 +5,7 @@ https://lincbrain.org/dandiset/000010/draft/files?location=sourcedata%2Frawdata %2Fmicr%2Fsample18_run10__y10_z01_HR&page=1 """ + # stdlib import logging import os.path as op @@ -50,7 +51,7 @@ def convert( Path to the stripe directory, which contains a collection of files named `*spool.dat`. info_file - Path to the info file (.mat), which contains the information + Path to the info file (.mat), which contains the information about the scan and the spool files. voxel_size Voxel size along the X, Y and Z dimensions, in microns. @@ -61,7 +62,6 @@ def convert( nii_config NIfTI header related configuration """ - reader = SpoolSetInterpreter(inp, info_file) # Set default output path if not provided @@ -71,8 +71,9 @@ def convert( # Initialize Zarr group and array omz = from_config(general_config.out, zarr_config) - array = omz.create_array("0", shape=fullshape, zarr_config=zarr_config, - dtype=reader.dtype) + array = omz.create_array( + "0", shape=fullshape, zarr_config=zarr_config, dtype=reader.dtype + ) logger.info(general_config.out) result = reader.assemble() result = result.transpose(1, 2, 0) diff --git a/linc_convert/modalities/psoct/__init__.py b/linc_convert/modalities/psoct/__init__.py index e5f3731d..5f42c9e3 100644 --- a/linc_convert/modalities/psoct/__init__.py +++ b/linc_convert/modalities/psoct/__init__.py @@ -6,6 +6,6 @@ __all__ = ["cli", "multi_slice", "single_volume", "mosaic", "mosaic_complex"] - from . import cli, multi_slice, single_volume, mosaic, mosaic_complex + from . import cli, mosaic, mosaic_complex, multi_slice, single_volume except ImportError: pass diff --git a/linc_convert/modalities/psoct/mosaic.py b/linc_convert/modalities/psoct/mosaic.py index f8ad4f3e..98e1f4ac 100644 --- a/linc_convert/modalities/psoct/mosaic.py +++ b/linc_convert/modalities/psoct/mosaic.py @@ -1,6 +1,4 @@ -""" -Create 2D mosaic from tile information in YAML file. -""" +"""Create 2D mosaic from tile information in YAML file.""" import logging import os.path as op @@ -11,25 +9,25 @@ import nibabel as nib import numpy as np import yaml -from PIL import Image from cyclopts import Parameter from dask.diagnostics import ProgressBar +from PIL import Image from tqdm import tqdm from linc_convert.modalities.psoct.cli import psoct -from linc_convert.utils.stitch import MosaicInfo, TileInfo from linc_convert.utils.io.matlab_array_wrapper import as_arraywrapper -from linc_convert.utils.io.zarr import from_config -from linc_convert.utils.io.zarr.helpers import \ - _compute_zarr_layout as compute_zarr_layout +from linc_convert.utils.io.zarr import from_config, open_array, open_group +from linc_convert.utils.io.zarr.helpers import ( + _compute_zarr_layout as compute_zarr_layout, +) from linc_convert.utils.nifti_header import build_nifti_header +from linc_convert.utils.stitch import MosaicInfo, TileInfo from linc_convert.utils.zarr_config import ( GeneralConfig, NiftiConfig, ZarrConfig, autoconfig, ) -from linc_convert.utils.io.zarr import open_array, open_group logger = logging.getLogger(__name__) @@ -46,43 +44,43 @@ def _load_tile_info_yaml(yaml_file: str) -> dict: def _load_image_tile(file_path: str, key: str = None) -> da.Array: """ Load 2D image from a file with lazy loading support. - + Supports: - .mat files (MATLAB) - Zarr archives (groups or arrays) - NIfTI files (with mmap for lazy loading) - Other formats via dask-image """ - # Check for .mat files - if file_path.endswith('.mat'): + if file_path.endswith(".mat"): wrapper = as_arraywrapper(file_path, key) if not hasattr(wrapper, "dtype"): raise ValueError(f"Could not load array from {file_path}") data = wrapper return da.from_array(data, chunks="auto") - if file_path.endswith('.zarr'): + if file_path.endswith(".zarr"): # Try to open as zarr group first try: zarr_group = open_group(file_path, mode="r") # It's a group, try to get array '0' - if '0' in zarr_group.keys(): - zarr_array_wrapper = zarr_group['0'] - data = da.from_array(zarr_array_wrapper, - chunks=zarr_array_wrapper.chunks) + if "0" in zarr_group.keys(): + zarr_array_wrapper = zarr_group["0"] + data = da.from_array( + zarr_array_wrapper, chunks=zarr_array_wrapper.chunks + ) else: raise ValueError( - f"Zarr group at {file_path} does not contain array '0'") + f"Zarr group at {file_path} does not contain array '0'" + ) except (ValueError, KeyError): # Try as array zarr_array_wrapper = open_array(file_path, mode="r") - data = da.from_array(zarr_array_wrapper, - chunks=zarr_array_wrapper.chunks) + data = da.from_array(zarr_array_wrapper, chunks=zarr_array_wrapper.chunks) return data # Check for NIfTI files - if file_path.endswith(('.nii', '.nii.gz')): + if file_path.endswith((".nii", ".nii.gz")): img = nib.load(file_path) data = da.from_array(img.dataobj, chunks=img.shape) return data @@ -103,7 +101,7 @@ def _load_image_tile(file_path: str, key: str = None) -> da.Array: raise ValueError(f"Failed to load {file_path} with dask-image: {e}") -def _save_jpeg(image: np.ndarray, output_path: str, quality: int = 95): +def _save_jpeg(image: np.ndarray, output_path: str, quality: int = 95) -> None: """Save image as JPEG.""" # Normalize to 0-255 range img_min = np.nanmin(image) @@ -118,7 +116,7 @@ def _save_jpeg(image: np.ndarray, output_path: str, quality: int = 95): pil_image.save(output_path, "JPEG", quality=quality) -def _save_tiff(image: np.ndarray, output_path: str): +def _save_tiff(image: np.ndarray, output_path: str) -> None: """Save image as TIFF without normalization - data is saved as-is.""" try: import tifffile @@ -133,16 +131,16 @@ def _save_tiff(image: np.ndarray, output_path: str): def _load_mask(mask_path: str) -> Union[da.Array, np.ndarray]: """ Load a binary mask from a file. - + Supports the same formats as _load_image_tile but expects a 2D binary mask. - + Parameters ---------- mask_path : str Path to mask file. keep_lazy : bool If True, keep mask as lazy dask array. If False, compute and return numpy array. - + Returns ------- Union[da.Array, np.ndarray] @@ -164,25 +162,25 @@ def _load_mask(mask_path: str) -> Union[da.Array, np.ndarray]: def _apply_mask(result: da.Array, mask: da.Array) -> da.Array: """ Apply mask to result using optimized Dask operations. - + This function structures the computation so that Dask can optimize by checking mask values first. The key optimization is: 1. Align mask and result chunks so blocks correspond 2. Use map_blocks with a function that can see both mask and result 3. Structure the computation graph so mask information is available - + While Dask's lazy evaluation means result blocks are still in the graph, the aligned chunks and structured computation allow the scheduler to optimize execution. In practice, the scheduler can prioritize computing mask blocks first and use that information to optimize result computation. - + Parameters ---------- result : da.Array The result array to mask. mask : da.Array Binary mask (0 or 1) with matching shape. - + Returns ------- da.Array @@ -194,13 +192,13 @@ def _apply_mask(result: da.Array, mask: da.Array) -> da.Array: # Broadcast mask to match result shape for _ in range(result.ndim - mask.ndim): mask = mask[..., np.newaxis] - + # Ensure mask chunks align with result chunks for efficient computation # This is critical: aligned chunks allow Dask to see block-level relationships # and the scheduler can use mask block information to optimize result computation if mask.chunks != result.chunks: mask = mask.rechunk(result.chunks[:2] + mask.chunks[2:]) - + # Use map_blocks with aligned chunks # The function receives both result and mask blocks, allowing it to # apply the mask efficiently. With aligned chunks, Dask's scheduler @@ -208,7 +206,7 @@ def _apply_mask(result: da.Array, mask: da.Array) -> da.Array: def _mask_block(result_block, mask_block, *args, block_info=None, **kwargs): """ Apply mask to a block. - + With aligned chunks, this function receives corresponding blocks of result and mask. The multiplication naturally zeros out where mask is 0, and Dask can optimize the computation graph accordingly. @@ -216,7 +214,7 @@ def _mask_block(result_block, mask_block, *args, block_info=None, **kwargs): if mask_block.sum() == 0: return np.zeros_like(result_block) return result_block * mask_block - + # Apply mask using map_blocks with aligned chunks # This structure allows Dask to optimize block-level computation # The scheduler can use mask information to optimize result computation @@ -243,12 +241,14 @@ def mosaic2d( clip_y: int = 0, mask: Annotated[Optional[str], Parameter(name=["--mask", "-m"])] = None, focus_plane: Annotated[ - Optional[str], Parameter(name=["--focus-plane", "-f"])] = None, + Optional[str], Parameter(name=["--focus-plane", "-f"]) + ] = None, normalize_focus_plane: bool = False, crop_focus_plane_depth: int = 500, crop_focus_plane_offset: int = 30, voxel_size_xyz: Annotated[ - Optional[list[float]], Parameter(name=["--voxel-size", "-s"])] = None, + Optional[list[float]], Parameter(name=["--voxel-size", "-s"]) + ] = None, zarr_config: ZarrConfig = None, general_config: GeneralConfig = None, nifti_config: NiftiConfig = None, @@ -358,7 +358,8 @@ def mosaic2d( image = image[clip_x:, clip_y:, ...] else: logger.warning( - f"Unexpected image dimensions {image.ndim} for {file_path}") + f"Unexpected image dimensions {image.ndim} for {file_path}" + ) continue # Shift coordinates to account for clipping @@ -385,24 +386,33 @@ def mosaic2d( focus_plane = focus_plane - focus_plane.min() focus_plane = focus_plane + crop_focus_plane_offset if clip_x or clip_y: - focus_plane= focus_plane[clip_x:,clip_y:] + focus_plane = focus_plane[clip_x:, clip_y:] z = np.arange(crop_focus_plane_depth, dtype=np.int32)[None, None, :] idx = z + focus_plane[..., None] idx = idx[..., None] + def apply_focus_plane(image): nonlocal idx result = np.take_along_axis(image, idx, axis=2) return result all_images = da.stack([tile.image for tile in tile_infos], axis=-1) - result_shape = ( - all_images.shape[0], all_images.shape[1], crop_focus_plane_depth, - all_images.shape[3]) - all_images = all_images.map_blocks(apply_focus_plane, dtype=all_images.dtype, - chunks=( - all_images.chunks[0], - all_images.chunks[1], - crop_focus_plane_depth, 1)) + ( + all_images.shape[0], + all_images.shape[1], + crop_focus_plane_depth, + all_images.shape[3], + ) + all_images = all_images.map_blocks( + apply_focus_plane, + dtype=all_images.dtype, + chunks=( + all_images.chunks[0], + all_images.chunks[1], + crop_focus_plane_depth, + 1, + ), + ) for i, tile in enumerate(tile_infos): tile.image = all_images[..., i] # Create MosaicInfo for 2D mosaic - dimensions and coordinates extracted from tiles @@ -426,9 +436,11 @@ def apply_focus_plane(image): try: # Load mask as lazy dask array for optimization mask_array = _load_mask(mask) - + # Check if mask dimensions match result (accounting for broadcasting) - mask_2d_shape = mask_array.shape[:2] if mask_array.ndim >= 2 else mask_array.shape + mask_2d_shape = ( + mask_array.shape[:2] if mask_array.ndim >= 2 else mask_array.shape + ) result_2d_shape = result.shape[:2] if result.ndim >= 2 else result.shape if mask_2d_shape != result_2d_shape: logger.error( @@ -477,17 +489,19 @@ def apply_focus_plane(image): logger.info(f"Saving to Zarr: {general_config.out}") # Compute zarr layout for 2D - chunk, shard = compute_zarr_layout(result.shape, np.float32, - zarr_config) + chunk, shard = compute_zarr_layout(result.shape, np.float32, zarr_config) # Prepare Zarr group (similar to single_volume.py) zgroup = from_config(general_config.out, zarr_config) # Create array and write data directly (like single_volume.py) dataset = zgroup.create_array( - "0", shape=result.shape, dtype=np.float32, chunk=chunk, + "0", + shape=result.shape, + dtype=np.float32, + chunk=chunk, shard=shard, - zarr_config=zarr_config + zarr_config=zarr_config, ) # Write data directly using indexing (similar to single_volume.py) if isinstance(result, da.Array): @@ -507,8 +521,9 @@ def apply_focus_plane(image): zgroup.generate_pyramid() logger.info("Finished generating pyramid") logger.info("Writing OME-Zarr metadata") - zgroup.write_ome_metadata(["z", "y", "x"], space_scale=voxel_size_xyz[::-1], - space_unit="millimeter") + zgroup.write_ome_metadata( + ["z", "y", "x"], space_scale=voxel_size_xyz[::-1], space_unit="millimeter" + ) if nifti_config and nifti_config.nii: header = build_nifti_header( @@ -519,7 +534,6 @@ def apply_focus_plane(image): ) zgroup.write_nifti_header(header) - else: logger.info("Skipping Zarr output (no output path specified)") diff --git a/linc_convert/modalities/psoct/mosaic_complex.py b/linc_convert/modalities/psoct/mosaic_complex.py index e8d0eacc..51313313 100644 --- a/linc_convert/modalities/psoct/mosaic_complex.py +++ b/linc_convert/modalities/psoct/mosaic_complex.py @@ -19,12 +19,13 @@ from linc_convert.modalities.psoct.cli import psoct from linc_convert.modalities.psoct.single_tile import process_complex3d -from linc_convert.utils.stitch import MosaicInfo, TileInfo from linc_convert.utils.io.matlab_array_wrapper import as_arraywrapper from linc_convert.utils.io.zarr import from_config -from linc_convert.utils.io.zarr.helpers import \ - _compute_zarr_layout as compute_zarr_layout +from linc_convert.utils.io.zarr.helpers import ( + _compute_zarr_layout as compute_zarr_layout, +) from linc_convert.utils.nifti_header import build_nifti_header +from linc_convert.utils.stitch import MosaicInfo, TileInfo from linc_convert.utils.unit import to_ome_unit from linc_convert.utils.zarr_config import ( GeneralConfig, @@ -50,22 +51,21 @@ def _load_tile_info_yaml(yaml_file: str) -> dict: def _load_complex_tile(file_path: str, key: str = None) -> da.Array: """Load complex 3D data from a file.""" - if file_path.endswith('.mat'): + if file_path.endswith(".mat"): wrapper = as_arraywrapper(file_path, key) if not hasattr(wrapper, "dtype"): raise ValueError(f"Could not load array from {file_path}") data = wrapper - elif file_path.endswith('.nii') or file_path.endswith('.nii.gz'): + elif file_path.endswith(".nii") or file_path.endswith(".nii.gz"): data = nib.load(file_path).dataobj return da.from_array(data, chunks=data.shape) -def _shift_focus( - tile: da.Array, focus_plane: np.ndarray, s_max: int -) -> da.Array: +def _shift_focus(tile: da.Array, focus_plane: np.ndarray, s_max: int) -> da.Array: """Shift tile depth based on focus plane.""" if len(focus_plane.shape) == 2: focus_plane = focus_plane[..., None] + # This function will be applied per block using map_blocks def shift_block(block, block_info=None): nonlocal focus_plane @@ -75,15 +75,13 @@ def shift_block(block, block_info=None): # For simplicity, we'll shift the entire tile # pad the sources at the END so indices up to Nz-1 are valid pad_width = ((0, 0), (0, 0), (s_max, s_max)) - block_padded = np.pad( - block, pad_width, mode="constant", constant_values=np.nan - ) + block_padded = np.pad(block, pad_width, mode="constant", constant_values=np.nan) # build indices for the expanded depth z = np.arange(block.shape[-1] + s_max, dtype=np.int32)[None, None, :] # Use a subset of focus_plane corresponding to this block # For now, use the full focus_plane (assuming it matches tile spatial # dimensions) - + idx = z + focus_plane result = np.take_along_axis(block_padded, idx, axis=2) return result @@ -154,7 +152,8 @@ def mosaic_complex( if tile_width is None or tile_height is None or depth is None: raise ValueError( - "tile_width, tile_height, and depth must be specified in metadata") + "tile_width, tile_height, and depth must be specified in metadata" + ) # Load focus plane if provided focus_plane_data = None @@ -193,8 +192,9 @@ def mosaic_complex( full_height = int(np.nanmax(y_coords) + tile_height) # Compute zarr layout - chunk, shard = compute_zarr_layout((depth, full_height, full_width), np.float32, - zarr_config) + chunk, shard = compute_zarr_layout( + (depth, full_height, full_width), np.float32, zarr_config + ) # Process each tile and collect results dbi_tiles = [] @@ -233,7 +233,6 @@ def mosaic_complex( # Process complex data to get dBI, R3D, O3D dBI3D, R3D, O3D = process_complex3d(complex3d, offset=100, flip_phi=False) - # Apply transformations if flip_z: dBI3D = da.flip(dBI3D, axis=2) @@ -305,8 +304,9 @@ def mosaic_complex( results = [] zgroups = [] - for out, res in zip([dbi_output, r3d_output, o3d_output], - [dBI_result, R3D_result, O3D_result]): + for out, res in zip( + [dbi_output, r3d_output, o3d_output], [dBI_result, R3D_result, O3D_result] + ): if shard: res = da.rechunk(res, chunks=shard) else: @@ -315,8 +315,9 @@ def mosaic_complex( zgroup = from_config(out, zarr_config) zgroups.append(zgroup) - writer = zgroup.create_array("0", shape=res.shape, dtype=np.float32, - zarr_config=zarr_config) + writer = zgroup.create_array( + "0", shape=res.shape, dtype=np.float32, zarr_config=zarr_config + ) writers.append(writer) results.append(res) @@ -329,11 +330,15 @@ def mosaic_complex( logger.info("Finished stitching, generating pyramid and metadata") for zgroup in zgroups: - zgroup.generate_pyramid(mode="mean", - no_pyramid_axis=zarr_config.no_pyramid_axis) + zgroup.generate_pyramid( + mode="mean", no_pyramid_axis=zarr_config.no_pyramid_axis + ) logger.info("Write OME-Zarr multiscale metadata") - zgroup.write_ome_metadata(axes=["z", "y", "x"], space_scale=scan_resolution, - space_unit=to_ome_unit(unit)) + zgroup.write_ome_metadata( + axes=["z", "y", "x"], + space_scale=scan_resolution, + space_unit=to_ome_unit(unit), + ) if not nifti_config.nii: continue diff --git a/linc_convert/modalities/psoct/single_tile.py b/linc_convert/modalities/psoct/single_tile.py index d689504b..45063b7f 100644 --- a/linc_convert/modalities/psoct/single_tile.py +++ b/linc_convert/modalities/psoct/single_tile.py @@ -3,14 +3,15 @@ def process_complex3d( complex3d: da.Array, offset: float = 100, flip_phi: bool = False - ) -> tuple[da.Array, da.Array, da.Array]: +) -> tuple[da.Array, da.Array, da.Array]: offset = da.deg2rad(offset) if complex3d.shape[0] % 4 != 0: raise ValueError("First dimension size must be multiple of 4.") raw_tile_width = complex3d.shape[0] // 4 complex3d = complex3d.rechunk({0: raw_tile_width}) comp = complex3d.reshape( - (4, raw_tile_width, complex3d.shape[1], complex3d.shape[2])) + (4, raw_tile_width, complex3d.shape[1], complex3d.shape[2]) + ) j1r, j1i, j2r, j2i = comp[0], comp[1], comp[2], comp[3] j1 = j1r + 1j * j1i @@ -19,10 +20,7 @@ def process_complex3d( mag2 = da.abs(j2) dBI3D = da.flip(10 * da.log10(mag1 ** 2 + mag2 ** 2), axis=2) - R3D = da.flip( - da.arctan(mag1 / mag2) / da.pi * 180, - axis=2 - ) + R3D = da.flip(da.arctan(mag1 / mag2) / da.pi * 180, axis=2) if flip_phi: phi = da.angle(j2) - da.angle(j1) else: diff --git a/linc_convert/modalities/psoct/single_volume.py b/linc_convert/modalities/psoct/single_volume.py index d186c56f..51f0b4a1 100644 --- a/linc_convert/modalities/psoct/single_volume.py +++ b/linc_convert/modalities/psoct/single_volume.py @@ -94,7 +94,8 @@ def convert( inp_chunk = [min(x, general_config.max_load) for x in inp.shape] dataset = zgroup.create_array( - "0", shape=inp.shape, dtype=np.dtype(inp.dtype), zarr_config=zarr_config) + "0", shape=inp.shape, dtype=np.dtype(inp.dtype), zarr_config=zarr_config + ) for idx, slc in chunk_slice_generator(inp.shape, inp_chunk): logger.info( From f56c989833cb50a108d051ebc34c20f386e1a1ea Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Tue, 27 Jan 2026 13:18:36 -0500 Subject: [PATCH 099/133] refactor: move complex2processed function --- linc_convert/modalities/psoct/_utils.py | 34 ++++++++++++++++++++ linc_convert/modalities/psoct/single_tile.py | 34 -------------------- 2 files changed, 34 insertions(+), 34 deletions(-) delete mode 100644 linc_convert/modalities/psoct/single_tile.py diff --git a/linc_convert/modalities/psoct/_utils.py b/linc_convert/modalities/psoct/_utils.py index e6a7ba95..e6d65672 100644 --- a/linc_convert/modalities/psoct/_utils.py +++ b/linc_convert/modalities/psoct/_utils.py @@ -3,6 +3,7 @@ from typing import Any, Generator import numpy as np +from dask import array as da from numpy.typing import ArrayLike from scipy import io as sio @@ -201,3 +202,36 @@ def atleast_2d_trailing(arr: ArrayLike) -> np.ndarray: def load_mat(mat_path: str | PathLike[str], varname: str) -> np.ndarray: data = sio.loadmat(mat_path, squeeze_me=True) return data[varname] + + +def process_complex3d( + complex3d: da.Array, offset: float = 100, flip_phi: bool = False +) -> tuple[da.Array, da.Array, da.Array]: + offset = da.deg2rad(offset) + if complex3d.shape[0] % 4 != 0: + raise ValueError("First dimension size must be multiple of 4.") + raw_tile_width = complex3d.shape[0] // 4 + complex3d = complex3d.rechunk({0: raw_tile_width}) + comp = complex3d.reshape( + (4, raw_tile_width, complex3d.shape[1], complex3d.shape[2]) + ) + j1r, j1i, j2r, j2i = comp[0], comp[1], comp[2], comp[3] + + j1 = j1r + 1j * j1i + j2 = j2r + 1j * j2i + mag1 = da.abs(j1) + mag2 = da.abs(j2) + + dBI3D = da.flip(10 * da.log10(mag1 ** 2 + mag2 ** 2), axis=2) + R3D = da.flip(da.arctan(mag1 / mag2) / da.pi * 180, axis=2) + if flip_phi: + phi = da.angle(j2) - da.angle(j1) + else: + phi = da.angle(j1) - da.angle(j2) + phi += offset * 2 + # wrap into [-π, π] + phi = da.where(phi > da.pi, phi - 2 * da.pi, phi) + phi = da.where(phi < -da.pi, phi + 2 * da.pi, phi) + O3D = da.flip(phi / 2, axis=2) + O3D = da.rad2deg(O3D) + return dBI3D, R3D, O3D diff --git a/linc_convert/modalities/psoct/single_tile.py b/linc_convert/modalities/psoct/single_tile.py deleted file mode 100644 index 45063b7f..00000000 --- a/linc_convert/modalities/psoct/single_tile.py +++ /dev/null @@ -1,34 +0,0 @@ -import dask.array as da - - -def process_complex3d( - complex3d: da.Array, offset: float = 100, flip_phi: bool = False -) -> tuple[da.Array, da.Array, da.Array]: - offset = da.deg2rad(offset) - if complex3d.shape[0] % 4 != 0: - raise ValueError("First dimension size must be multiple of 4.") - raw_tile_width = complex3d.shape[0] // 4 - complex3d = complex3d.rechunk({0: raw_tile_width}) - comp = complex3d.reshape( - (4, raw_tile_width, complex3d.shape[1], complex3d.shape[2]) - ) - j1r, j1i, j2r, j2i = comp[0], comp[1], comp[2], comp[3] - - j1 = j1r + 1j * j1i - j2 = j2r + 1j * j2i - mag1 = da.abs(j1) - mag2 = da.abs(j2) - - dBI3D = da.flip(10 * da.log10(mag1 ** 2 + mag2 ** 2), axis=2) - R3D = da.flip(da.arctan(mag1 / mag2) / da.pi * 180, axis=2) - if flip_phi: - phi = da.angle(j2) - da.angle(j1) - else: - phi = da.angle(j1) - da.angle(j2) - phi += offset * 2 - # wrap into [-π, π] - phi = da.where(phi > da.pi, phi - 2 * da.pi, phi) - phi = da.where(phi < -da.pi, phi + 2 * da.pi, phi) - O3D = da.flip(phi / 2, axis=2) - O3D = da.rad2deg(O3D) - return dBI3D, R3D, O3D From f54006e6d66babd9bc3b96f2898edf3dddbac8ef Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Tue, 27 Jan 2026 13:21:12 -0500 Subject: [PATCH 100/133] docs: add type annotation for psoct pipelines --- linc_convert/modalities/psoct/mosaic.py | 14 ++++++++++---- linc_convert/modalities/psoct/mosaic_complex.py | 10 +++++++--- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/linc_convert/modalities/psoct/mosaic.py b/linc_convert/modalities/psoct/mosaic.py index 98e1f4ac..a2eac695 100644 --- a/linc_convert/modalities/psoct/mosaic.py +++ b/linc_convert/modalities/psoct/mosaic.py @@ -1,8 +1,8 @@ -"""Create 2D mosaic from tile information in YAML file.""" +"""Create 2D/3D mosaic from tile information in YAML file.""" import logging import os.path as op -from typing import Annotated, Optional, Union +from typing import Annotated, Any, Dict, List, Optional, Union import cyclopts import dask.array as da @@ -203,7 +203,13 @@ def _apply_mask(result: da.Array, mask: da.Array) -> da.Array: # The function receives both result and mask blocks, allowing it to # apply the mask efficiently. With aligned chunks, Dask's scheduler # can see the relationship and optimize block-level computation. - def _mask_block(result_block, mask_block, *args, block_info=None, **kwargs): + def _mask_block( + result_block: da.Array, + mask_block: da.Array, + *args: List[Any], + block_info: Optional[dict] = None, + **kwargs: Dict[str, Any], + ) -> da.Array: """ Apply mask to a block. @@ -391,7 +397,7 @@ def mosaic2d( idx = z + focus_plane[..., None] idx = idx[..., None] - def apply_focus_plane(image): + def apply_focus_plane(image: da.Array) -> da.Array: nonlocal idx result = np.take_along_axis(image, idx, axis=2) return result diff --git a/linc_convert/modalities/psoct/mosaic_complex.py b/linc_convert/modalities/psoct/mosaic_complex.py index 51313313..7bf412cb 100644 --- a/linc_convert/modalities/psoct/mosaic_complex.py +++ b/linc_convert/modalities/psoct/mosaic_complex.py @@ -1,4 +1,8 @@ """ +Create 3D mosaic from tile information in YAML file. + +Each tile has dimension (4 * raw_tile_width, tile_height, tile_width). + This module includes components that are based on the https://github.com/CarolineMagnain/OCTAnalysis repository (currently private). We have permission from the owner to include the code here. @@ -7,7 +11,7 @@ import logging import os.path as op import warnings -from typing import Annotated +from typing import Annotated, Optional import cyclopts import dask.array as da @@ -17,8 +21,8 @@ from cyclopts import Parameter from dask.diagnostics import ProgressBar +from linc_convert.modalities.psoct._utils import process_complex3d from linc_convert.modalities.psoct.cli import psoct -from linc_convert.modalities.psoct.single_tile import process_complex3d from linc_convert.utils.io.matlab_array_wrapper import as_arraywrapper from linc_convert.utils.io.zarr import from_config from linc_convert.utils.io.zarr.helpers import ( @@ -67,7 +71,7 @@ def _shift_focus(tile: da.Array, focus_plane: np.ndarray, s_max: int) -> da.Arra focus_plane = focus_plane[..., None] # This function will be applied per block using map_blocks - def shift_block(block, block_info=None): + def shift_block(block: da.Array, block_info: Optional[dict] = None) -> da.Array: nonlocal focus_plane if block_info is None: return block From 960bfd6606c937e0676f99b28d003d5e761ae698 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Tue, 27 Jan 2026 14:24:18 -0500 Subject: [PATCH 101/133] tests: add regression test for psoct pipelines --- ...soct_mosaic_complex_dbi_zarr2.nii.zarr.zip | Bin 0 -> 6742 bytes ...soct_mosaic_complex_dbi_zarr3.nii.zarr.zip | Bin 0 -> 6128 bytes ...soct_mosaic_complex_o3d_zarr2.nii.zarr.zip | Bin 0 -> 6968 bytes ...soct_mosaic_complex_o3d_zarr3.nii.zarr.zip | Bin 0 -> 6090 bytes ...soct_mosaic_complex_r3d_zarr2.nii.zarr.zip | Bin 0 -> 9528 bytes ...soct_mosaic_complex_r3d_zarr3.nii.zarr.zip | Bin 0 -> 6885 bytes tests/data/psoct_mosaic_zarr2.nii.zarr.zip | Bin 0 -> 765701 bytes tests/data/psoct_mosaic_zarr3.nii.zarr.zip | Bin 0 -> 560846 bytes tests/test_psoct_mosaic.py | 205 +++++++++++ tests/test_psoct_mosaic_complex.py | 141 ++++++++ tests/test_utils_stitch.py | 335 ++++++++++++++++++ 11 files changed, 681 insertions(+) create mode 100644 tests/data/psoct_mosaic_complex_dbi_zarr2.nii.zarr.zip create mode 100644 tests/data/psoct_mosaic_complex_dbi_zarr3.nii.zarr.zip create mode 100644 tests/data/psoct_mosaic_complex_o3d_zarr2.nii.zarr.zip create mode 100644 tests/data/psoct_mosaic_complex_o3d_zarr3.nii.zarr.zip create mode 100644 tests/data/psoct_mosaic_complex_r3d_zarr2.nii.zarr.zip create mode 100644 tests/data/psoct_mosaic_complex_r3d_zarr3.nii.zarr.zip create mode 100644 tests/data/psoct_mosaic_zarr2.nii.zarr.zip create mode 100644 tests/data/psoct_mosaic_zarr3.nii.zarr.zip create mode 100644 tests/test_psoct_mosaic.py create mode 100644 tests/test_psoct_mosaic_complex.py create mode 100644 tests/test_utils_stitch.py diff --git a/tests/data/psoct_mosaic_complex_dbi_zarr2.nii.zarr.zip b/tests/data/psoct_mosaic_complex_dbi_zarr2.nii.zarr.zip new file mode 100644 index 0000000000000000000000000000000000000000..84f150ba7293bb8d5daf719818d4acc520277e50 GIT binary patch literal 6742 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 literal 0 HcmV?d00001 diff --git a/tests/data/psoct_mosaic_complex_o3d_zarr2.nii.zarr.zip b/tests/data/psoct_mosaic_complex_o3d_zarr2.nii.zarr.zip new file mode 100644 index 0000000000000000000000000000000000000000..81a0052f3762f3d3fe822cc3a43b62c8e60c772f GIT binary patch literal 6968 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 y`u#tT%Wr5P*Yl!Ao<O9p)L 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 literal 0 HcmV?d00001 diff --git a/tests/data/psoct_mosaic_complex_r3d_zarr2.nii.zarr.zip b/tests/data/psoct_mosaic_complex_r3d_zarr2.nii.zarr.zip new file mode 100644 index 0000000000000000000000000000000000000000..1057b75463f511d133eeef186343bcd721518fdd GIT binary patch literal 9528 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 Rjsidd_&=W@`*{ig_&@6O9=`wp literal 0 HcmV?d00001 diff --git a/tests/data/psoct_mosaic_complex_r3d_zarr3.nii.zarr.zip b/tests/data/psoct_mosaic_complex_r3d_zarr3.nii.zarr.zip new file mode 100644 index 0000000000000000000000000000000000000000..0fce0e603353d3a8d03cb93ba3ec3c4ba9f32ef9 GIT binary patch literal 6885 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

    LXgDY-Zcy}9N5TNk0-|?rD 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

    ?_o{>)&9YrP(~+ZntCVyly3 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≀0a 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 z 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%0D`iR;w< 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

      y~NtT|G6~_#1jjMUx8;vivMCpN;5nb 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

      fuY3BVw1@wdw9^9OCA_D7~?cu2`OKLK;ye5pQN? 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%0DG}Bf$pA1eA}r3ON33KY+CEZn?4F39 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 literal 0 HcmV?d00001 diff --git a/tests/data/psoct_mosaic_zarr3.nii.zarr.zip b/tests/data/psoct_mosaic_zarr3.nii.zarr.zip new file mode 100644 index 0000000000000000000000000000000000000000..6855d1e16ad80e82fb131176fc0a07755ea2d57d GIT binary patch literal 560846 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�DTs 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Πqo_o*2Ry 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

      7RD#^N*vU)vIR!7#;Kg^5>>N|hSe-s`4 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

      wP2AV`_F^BF~?Xl#~q; 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

      Qp$@_$Bcw(8j*t8Ha{EmBMh;mYIx{=Er4 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 NPe3wzI(7nLlwGPCgi^;ts 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%0D}D}q6vNZ@nKIb@=afIUhf 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 literal 0 HcmV?d00001 diff --git a/tests/test_psoct_mosaic.py b/tests/test_psoct_mosaic.py new file mode 100644 index 00000000..28dc5857 --- /dev/null +++ b/tests/test_psoct_mosaic.py @@ -0,0 +1,205 @@ +import shutil +from pathlib import Path + +import nibabel as nib +import numpy as np +import pytest +import skimage +import yaml +import zarr.storage +from scipy.io import savemat +from utils.compare_file import assert_zarr_equal + +from linc_convert.modalities.psoct import mosaic + + +@pytest.fixture +def mosaic_tiles(tmp_path): + """ + Create 3D tiles for mosaic testing using skimage brain data. + """ + base_dir = tmp_path / "tiles" + base_dir.mkdir() + + # Get brain data and transpose to (height, width, depth) + brain_volume = skimage.data.brain().T.astype(np.float32) + brain_h, brain_w, brain_d = brain_volume.shape + + # Split into 4 tiles in a 2x2 grid + # Each tile will be approximately half the size in height and width + tile_height = brain_h // 2 + tile_width = brain_w // 2 + + tiles = [] + for y_idx in range(2): + for x_idx in range(2): + x = x_idx * tile_width + y = y_idx * tile_height + + # Extract a region from the brain volume for this tile + h_start = y_idx * tile_height + h_end = min((y_idx + 1) * tile_height, brain_h) + w_start = x_idx * tile_width + w_end = min((x_idx + 1) * tile_width, brain_w) + + # Extract 3D tile (height, width, depth) + tile_data = brain_volume[h_start:h_end, w_start:w_end, :].copy() + + # Save as .mat file + tile_path = base_dir / f"tile_y{y_idx}_x{x_idx}.mat" + savemat(str(tile_path), {"image": tile_data}) + + tiles.append({ + "x": x, + "y": y, + "filepath": f"tile_y{y_idx}_x{x_idx}.mat" + }) + + # Create YAML file + yaml_path = tmp_path / "tile_info.yaml" + tile_info = { + "metadata": { + "base_dir": str(base_dir), + "scan_resolution": [1.0, 1.0, 1.0], + "unit": "millimeter", + "tile_overlap": 0.2, + "clip_x": 0, + "clip_y": 0, + "file_key": "image" + }, + "tiles": tiles + } + + with open(yaml_path, "w") as f: + yaml.dump(tile_info, f) + + return yaml_path + + +@pytest.fixture +def mosaic_mask(tmp_path): + """Create a simple binary mask for testing.""" + # Get brain data dimensions to match mosaic size + brain_volume = skimage.data.brain().T + brain_h, brain_w = brain_volume.shape[:2] + + # Create a 2D mask that matches the mosaic dimensions + mask_data = np.ones((brain_h, brain_w), dtype=np.float32) + # Create a circular mask + center = (brain_h // 2, brain_w // 2) + radius = min(brain_h, brain_w) // 3 + y, x = np.ogrid[:brain_h, :brain_w] + mask = (x - center[1]) ** 2 + (y - center[0]) ** 2 <= radius ** 2 + mask_data = mask.astype(np.float32) + + # Save as NIfTI + mask_path = tmp_path / "mask.nii" + mask_img = nib.Nifti1Image(mask_data, np.eye(4)) + nib.save(mask_img, mask_path) + + return mask_path + + +@pytest.fixture +def mosaic_focus_plane(tmp_path): + """Create a simple focus plane for testing.""" + # Get brain data dimensions to match mosaic size + brain_volume = skimage.data.brain().T + brain_h, brain_w = brain_volume.shape[:2] + brain_h //= 2 + brain_w //= 2 + # Create a 2D focus plane + focus_data = np.zeros((brain_h, brain_w), dtype=np.uint16) + # Create a gradient + for i in range(brain_h): + for j in range(brain_w): + focus_data[i, j] = (i + j) % 5 + + # Save as NIfTI + focus_path = tmp_path / "focus_plane.nii" + focus_img = nib.Nifti1Image(focus_data, np.eye(4)) + nib.save(focus_img, focus_path) + + return focus_path + + +def test_psoct_mosaic_convert(tmp_path, mosaic_tiles, zarr_version, driver): + """Test psoct.mosaic conversion with Zarr output.""" + output = tmp_path / "mosaic.nii.zarr" + + mosaic.mosaic2d( + tile_info_file=str(mosaic_tiles), + out=str(output), + zarr_version=zarr_version, + overwrite=True, + driver=driver, + tile_overlap=0.2, + ) + + expected_zarr = f"data/psoct_mosaic_zarr{zarr_version}.nii.zarr.zip" + assert_zarr_equal( + str(output), + zarr.storage.ZipStore(expected_zarr, mode="r"), + ) + + +def test_psoct_mosaic_with_mask( + tmp_path, mosaic_tiles, mosaic_mask, zarr_version, driver + ): + """Test psoct.mosaic with mask applied.""" + output = tmp_path / "mosaic_masked.nii.zarr" + + mosaic.mosaic2d( + tile_info_file=str(mosaic_tiles), + mask=str(mosaic_mask), + out=str(output), + zarr_version=zarr_version, + overwrite=True, + driver=driver, + tile_overlap=0.2, + ) + + # Verify output exists and has correct shape + assert output.exists() + + +def test_psoct_mosaic_with_focus_plane( + tmp_path, mosaic_tiles, mosaic_focus_plane, zarr_version, driver + ): + """Test psoct.mosaic with focus plane cropping.""" + output = tmp_path / "mosaic_focus.nii.zarr" + + mosaic.mosaic2d( + tile_info_file=str(mosaic_tiles), + focus_plane=str(mosaic_focus_plane), + normalize_focus_plane=False, + crop_focus_plane_depth=4, + crop_focus_plane_offset=0, + out=str(output), + zarr_version=zarr_version, + overwrite=True, + driver=driver, + tile_overlap=0.2, + ) + + # Verify output exists + assert output.exists() + + +@pytest.mark.golden +def test_psoct_mosaic_regen_golden(tmp_path, mosaic_tiles, zarr_version): + """Regenerate golden archive for psoct.mosaic.""" + output = tmp_path / "mosaic_output.nii.zarr" + + mosaic.mosaic2d( + tile_info_file=str(mosaic_tiles), + out=str(output), + zarr_version=zarr_version, + overwrite=True, + driver="zarr-python", + tile_overlap=0.2, + ) + + expected_zarr = f"data/psoct_mosaic_zarr{zarr_version}.nii.zarr.zip" + base = Path(expected_zarr).with_suffix("") + shutil.make_archive(str(base), "zip", str(output)) diff --git a/tests/test_psoct_mosaic_complex.py b/tests/test_psoct_mosaic_complex.py new file mode 100644 index 00000000..778466c5 --- /dev/null +++ b/tests/test_psoct_mosaic_complex.py @@ -0,0 +1,141 @@ +import shutil +from pathlib import Path + +import numpy as np +import pytest +import yaml +import zarr.storage +from scipy.io import savemat +from utils.compare_file import assert_zarr_equal + +from linc_convert.modalities.psoct import mosaic_complex + + +@pytest.fixture +def mosaic_complex_tiles(tmp_path): + """ + Create synthetic complex 3D tiles for mosaic_complex testing. + + Each tile has shape (4 * raw_tile_width, tile_height, tile_width) where + the first dimension is split into 4 parts: j1r, j1i, j2r, j2i. + """ + base_dir = tmp_path / "tiles" + base_dir.mkdir() + + # Use small dimensions for fast tests + raw_tile_width = 16 + tile_height = 32 + tile_width = 32 + depth = 20 + + # Create 4 tiles in a 2x2 grid + tiles = [] + for y_idx in range(2): + for x_idx in range(2): + x = x_idx * tile_width + y = y_idx * tile_height + + # Create synthetic complex data + # Shape: (4 * raw_tile_width, tile_height, tile_width) + # Split into: j1r, j1i, j2r, j2i + tile_data = np.zeros((4 * raw_tile_width, tile_height, depth), + dtype=np.float32) + + # Fill with synthetic data that varies by position + for i in range(4 * raw_tile_width): + for j in range(tile_height): + for k in range(depth): + # Create some variation based on position + val = (i + j + k) % 100 + 1.0 + tile_data[i, j, k] = val + + # Save as .mat file + tile_path = base_dir / f"tile_y{y_idx}_x{x_idx}.mat" + savemat(str(tile_path), {"complex3d": tile_data}) + + tiles.append({ + "x": x, + "y": y, + "filepath": f"tile_y{y_idx}_x{x_idx}.mat" + }) + + # Create YAML file + yaml_path = tmp_path / "tile_info.yaml" + tile_info = { + "metadata": { + "base_dir": str(base_dir), + "tile_width": tile_width, + "tile_height": tile_height, + "depth": depth, + "raw_tile_width": raw_tile_width, + "scan_resolution": [1.0, 1.0, 1.0], + "unit": "millimeter", + "tile_overlap": 0.2, + "flip_z": False, + "clip_x": 0, + "clip_y": 0, + "file_key": "complex3d" + }, + "tiles": tiles + } + + with open(yaml_path, "w") as f: + yaml.dump(tile_info, f) + + return yaml_path + + +def test_psoct_mosaic_complex_convert( + tmp_path, mosaic_complex_tiles, zarr_version, driver + ): + """Test psoct.mosaic_complex conversion.""" + dbi_output = tmp_path / "dbi.nii.zarr" + o3d_output = tmp_path / "o3d.nii.zarr" + r3d_output = tmp_path / "r3d.nii.zarr" + + mosaic_complex.mosaic_complex( + tile_info_file=str(mosaic_complex_tiles), + dbi_output=str(dbi_output), + o3d_output=str(o3d_output), + r3d_output=str(r3d_output), + zarr_version=zarr_version, + overwrite=True, + driver=driver, + ) + + # Compare dBI output as primary regression target + expected_zarr = f"data/psoct_mosaic_complex_dbi_zarr{zarr_version}.nii.zarr.zip" + assert_zarr_equal( + str(dbi_output), + zarr.storage.ZipStore(expected_zarr, mode="r"), + ) + + +@pytest.mark.golden +def test_psoct_mosaic_complex_regen_golden( + tmp_path, mosaic_complex_tiles, zarr_version + ): + """Regenerate golden archives for psoct.mosaic_complex.""" + dbi_output = tmp_path / "dbi_output.nii.zarr" + o3d_output = tmp_path / "o3d_output.nii.zarr" + r3d_output = tmp_path / "r3d_output.nii.zarr" + + mosaic_complex.mosaic_complex( + tile_info_file=str(mosaic_complex_tiles), + dbi_output=str(dbi_output), + o3d_output=str(o3d_output), + r3d_output=str(r3d_output), + zarr_version=zarr_version, + overwrite=True, + driver="zarr-python", + ) + + # Regenerate all three golden archives + for output, name in [ + (dbi_output, "psoct_mosaic_complex_dbi"), + (o3d_output, "psoct_mosaic_complex_o3d"), + (r3d_output, "psoct_mosaic_complex_r3d"), + ]: + expected_zarr = f"data/{name}_zarr{zarr_version}.nii.zarr.zip" + base = Path(expected_zarr).with_suffix("") + shutil.make_archive(str(base), "zip", str(output)) diff --git a/tests/test_utils_stitch.py b/tests/test_utils_stitch.py new file mode 100644 index 00000000..db292d0b --- /dev/null +++ b/tests/test_utils_stitch.py @@ -0,0 +1,335 @@ +""" +Unit tests for linc_convert.utils.stitch module. +""" +import dask.array as da +import numpy as np +import pytest + +from linc_convert.utils.stitch import ( + MosaicInfo, + TileInfo, + _normalize_tile_overlap, + stitch_tiles, +) + + +class TestNormalizeTileOverlap: + """Test _normalize_tile_overlap function.""" + + def test_single_float(self): + """Test single float input (percentile).""" + tile_width, tile_height = 100, 200 + overlap = 0.2 + x_overlap, y_overlap = _normalize_tile_overlap(overlap, tile_width, tile_height) + assert x_overlap == 20 # 20% of 100 + assert y_overlap == 40 # 20% of 200 + + def test_single_int(self): + """Test single int input (pixels).""" + tile_width, tile_height = 100, 200 + overlap = 10 + x_overlap, y_overlap = _normalize_tile_overlap(overlap, tile_width, tile_height) + assert x_overlap == 10 + assert y_overlap == 10 + + def test_tuple_float(self): + """Test tuple of floats (percentiles).""" + tile_width, tile_height = 100, 200 + overlap = (0.1, 0.2) + x_overlap, y_overlap = _normalize_tile_overlap(overlap, tile_width, tile_height) + assert x_overlap == 10 # 10% of 100 + assert y_overlap == 40 # 20% of 200 + + def test_tuple_int(self): + """Test tuple of ints (pixels).""" + tile_width, tile_height = 100, 200 + overlap = (5, 10) + x_overlap, y_overlap = _normalize_tile_overlap(overlap, tile_width, tile_height) + assert x_overlap == 5 + assert y_overlap == 10 + + def test_invalid_float_range(self): + """Test invalid float range raises ValueError.""" + tile_width, tile_height = 100, 200 + with pytest.raises(ValueError, match="Float tile_overlap must be in range"): + _normalize_tile_overlap(1.5, tile_width, tile_height) + with pytest.raises(ValueError, match="Float tile_overlap must be in range"): + _normalize_tile_overlap(0.0, tile_width, tile_height) + with pytest.raises(ValueError, match="Float tile_overlap must be in range"): + _normalize_tile_overlap(-0.1, tile_width, tile_height) + + def test_invalid_tuple_length(self): + """Test invalid tuple length raises ValueError.""" + tile_width, tile_height = 100, 200 + with pytest.raises(ValueError, match="tile_overlap tuple must have 2 elements"): + _normalize_tile_overlap((1, 2, 3), tile_width, tile_height) + + def test_negative_overlap(self): + """Test negative overlap raises ValueError.""" + tile_width, tile_height = 100, 200 + with pytest.raises(ValueError, match="Overlap must be non-negative"): + _normalize_tile_overlap(-5, tile_width, tile_height) + with pytest.raises(ValueError, match="Overlap must be non-negative"): + _normalize_tile_overlap((-5, 10), tile_width, tile_height) + + +class TestMosaicInfo: + """Test MosaicInfo class.""" + + def test_from_tiles_2d(self): + """Test creating 2D MosaicInfo from tiles.""" + # Create two small tiles + tile1 = TileInfo( + x=0, y=0, + image=da.ones((10, 10), chunks=(5, 5), dtype=np.float32) + ) + tile2 = TileInfo( + x=5, y=5, + image=da.ones((10, 10), chunks=(5, 5), dtype=np.float32) * 2 + ) + + mosaic = MosaicInfo.from_tiles( + tiles=[tile1, tile2], + depth=None, # 2D mosaic + tile_overlap=0.2, + ) + + # Check full_shape: max x + tile_width, max y + tile_height + assert mosaic.full_shape == (15, 15) # (15, 15) for 2D + assert mosaic.chunk_size == (10, 10) + assert mosaic.circular_mean is False + + def test_from_tiles_3d(self): + """Test creating 3D MosaicInfo from tiles.""" + # Create two small 3D tiles + tile1 = TileInfo( + x=0, y=0, + image=da.ones((10, 10, 5), chunks=(5, 5, 5), dtype=np.float32) + ) + tile2 = TileInfo( + x=5, y=5, + image=da.ones((10, 10, 5), chunks=(5, 5, 5), dtype=np.float32) * 2 + ) + + mosaic = MosaicInfo.from_tiles( + tiles=[tile1, tile2], + depth=5, + tile_overlap=0.2, + ) + + # Check full_shape: (width, height, depth) + assert mosaic.full_shape == (15, 15, 5) + assert mosaic.chunk_size == (10, 10) + + def test_normalize_tile_coordinates(self): + """Test normalize_tile_coordinates method.""" + # Create tiles with non-zero minimum coordinates + tile1 = TileInfo( + x=10, y=20, + image=da.ones((10, 10), chunks=(5, 5), dtype=np.float32) + ) + tile2 = TileInfo( + x=15, y=25, + image=da.ones((10, 10), chunks=(5, 5), dtype=np.float32) + ) + + mosaic = MosaicInfo.from_tiles( + tiles=[tile1, tile2], + depth=None, + tile_overlap=0.2, + ) + + # Before normalization + assert tile1.x == 10 + assert tile1.y == 20 + assert tile2.x == 15 + assert tile2.y == 25 + assert mosaic.full_shape == (25, 35) # max(15+10, 10+10), max(25+10, 20+10) + + # Normalize + mosaic.normalize_tile_coordinates() + + # After normalization + assert tile1.x == 0 + assert tile1.y == 0 + assert tile2.x == 5 + assert tile2.y == 5 + # full_shape should be adjusted + assert mosaic.full_shape == (15, 15) # (25-10, 35-20) + + def test_stitch_2d_simple(self): + """Test stitching 2D tiles with simple overlap.""" + # Create two overlapping tiles + tile1 = TileInfo( + x=0, y=0, + image=da.ones((10, 10), chunks=(5, 5), dtype=np.float32) * 10 + ) + tile2 = TileInfo( + x=5, y=5, # 5 pixel overlap in both dimensions + image=da.ones((10, 10), chunks=(5, 5), dtype=np.float32) * 20 + ) + + mosaic = MosaicInfo.from_tiles( + tiles=[tile1, tile2], + depth=None, + tile_overlap=5, # 5 pixels overlap + ) + + result = mosaic.stitch() + result_computed = result.compute() + + # Check shape + assert result_computed.shape == (15, 15) + + # Check non-overlapping regions + # Top-left corner should be from tile1 + print(np.array(result_computed[0:5, 0:5])) + assert np.allclose(result_computed[0:5, 0:5], 10.0) + # Bottom-right corner should be from tile2 + assert np.allclose(result_computed[10:15, 10:15], 20.0) + + # Overlapping region should be blended (weighted average) + # The overlap region should have values between 10 and 20 + overlap_region = result_computed[5:10, 5:10] + assert np.all(overlap_region >= 10.0) + assert np.all(overlap_region <= 20.0) + + def test_stitch_2d_no_overlap(self): + """Test stitching 2D tiles with no overlap.""" + tile1 = TileInfo( + x=0, y=0, + image=da.ones((10, 10), chunks=(5, 5), dtype=np.float32) * 10 + ) + tile2 = TileInfo( + x=10, y=10, # No overlap + image=da.ones((10, 10), chunks=(5, 5), dtype=np.float32) * 20 + ) + + mosaic = MosaicInfo.from_tiles( + tiles=[tile1, tile2], + depth=None, + tile_overlap=0, + ) + + result = mosaic.stitch() + result_computed = result.compute() + + # Check shape + assert result_computed.shape == (20, 20) + + # Check non-overlapping regions + assert np.allclose(result_computed[0:10, 0:10], 10.0) + assert np.allclose(result_computed[10:20, 10:20], 20.0) + + def test_stitch_3d(self): + """Test stitching 3D tiles.""" + tile1 = TileInfo( + x=0, y=0, + image=da.ones((10, 10, 5), chunks=(5, 5, 5), dtype=np.float32) * 10 + ) + tile2 = TileInfo( + x=5, y=5, + image=da.ones((10, 10, 5), chunks=(5, 5, 5), dtype=np.float32) * 20 + ) + + mosaic = MosaicInfo.from_tiles( + tiles=[tile1, tile2], + depth=5, + tile_overlap=5, + ) + + result = mosaic.stitch() + result_computed = result.compute() + + # Check shape: (width, height, depth) + assert result_computed.shape == (15, 15, 5) + + # Check that depth dimension is preserved + assert result_computed.shape[2] == 5 + + def test_stitch_circular_mean(self): + """Test stitching with circular_mean=True.""" + # Create tiles with angle values (in degrees) + # Use simple angles for easy verification + tile1 = TileInfo( + x=0, y=0, + image=da.full((10, 10), chunks=(5, 5), dtype=np.float32, fill_value=0.0) + # 0 degrees + ) + tile2 = TileInfo( + x=5, y=5, + image=da.full((10, 10), chunks=(5, 5), dtype=np.float32, fill_value=180.0) + # 180 degrees + ) + + mosaic = MosaicInfo.from_tiles( + tiles=[tile1, tile2], + depth=None, + tile_overlap=5, + circular_mean=True, + ) + + result = mosaic.stitch() + result_computed = result.compute() + + # Check shape + assert result_computed.shape == (15, 15) + + # In the overlap region, circular mean of 0° and 180° should be around 90° or + # 270° + # (depending on implementation, but should be consistent) + overlap_region = result_computed[5:10, 5:10] + # The circular mean should produce a value that makes sense + # For 0° and 180°, the mean could be 90° or 270° (both are valid) + # We just check it's not NaN and is in a reasonable range + assert not np.any(np.isnan(overlap_region)) + assert np.all(overlap_region >= 0) and np.all(overlap_region < 360) + + +class TestStitchTiles: + """Test backward compatibility stitch_tiles function.""" + + def test_stitch_tiles_backward_compat(self): + """Test that stitch_tiles produces same result as MosaicInfo.stitch().""" + tile1 = TileInfo( + x=0, y=0, + image=da.ones((10, 10), chunks=(5, 5), dtype=np.float32) * 10 + ) + tile2 = TileInfo( + x=5, y=5, + image=da.ones((10, 10), chunks=(5, 5), dtype=np.float32) * 20 + ) + + # Create MosaicInfo and stitch + mosaic = MosaicInfo.from_tiles( + tiles=[tile1, tile2], + depth=None, + tile_overlap=5, + ) + result1 = mosaic.stitch() + + # Use stitch_tiles function + result2 = stitch_tiles( + tile_infos=[tile1, tile2], + full_shape=mosaic.full_shape, + blend_ramp=mosaic.blend_ramp, + chunk_size=mosaic.chunk_size, + circular_mean=False, + ) + + # Results should be the same + np.testing.assert_array_almost_equal( + result1.compute(), + result2.compute(), + decimal=5 + ) + + def test_stitch_tiles_empty(self): + """Test stitch_tiles with empty tile list raises ValueError.""" + with pytest.raises(ValueError, match="No tiles provided"): + stitch_tiles( + tile_infos=[], + full_shape=(10, 10), + blend_ramp=da.ones((10, 10), dtype=np.float32), + chunk_size=(5, 5), + ) From b1008f590010edba5da40a8d7b41648e6014e237 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Tue, 27 Jan 2026 14:24:41 -0500 Subject: [PATCH 102/133] fix: make the edge of blending ramp non-zero --- linc_convert/utils/stitch.py | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/linc_convert/utils/stitch.py b/linc_convert/utils/stitch.py index 0c22668d..3c62b974 100644 --- a/linc_convert/utils/stitch.py +++ b/linc_convert/utils/stitch.py @@ -131,17 +131,39 @@ def _compute_blending_ramp( ------- da.Array Blending ramp as a dask array. + + Examples + -------- + Example with tile_size=3 and overlap=1: + + For the left edge (x_overlap=1): + - Create ramp of size (overlap+2) = 3: [0.0, 0.5, 1.0] + - Remove first and last: [0.5] + - Result: edge weight = 0.5 (non-zero) + + Visual diagram for tile_size=3, overlap=1: + + Position: 0 1 2 + Weight: 0.5 1.0 0.5 + ↑ ↑ + edge edge + (non-zero) (non-zero) + + The full tile weights would be: + [0.5, 1.0, 0.5] (left edge, center, right edge) """ # Create blending ramp wx = np.ones(tile_width, dtype=np.float32) wy = np.ones(tile_height, dtype=np.float32) if x_overlap > 0: - wx[:x_overlap] = np.linspace(0, 1, x_overlap, dtype=np.float32) - wx[-x_overlap:] = np.linspace(1, 0, x_overlap, dtype=np.float32) + ramp_full = np.linspace(0, 1, x_overlap + 2, dtype=np.float32)[1:-1] + wx[:x_overlap] = ramp_full + wx[-x_overlap:] = ramp_full[::-1] if y_overlap > 0: - wy[:y_overlap] = np.linspace(0, 1, y_overlap, dtype=np.float32) - wy[-y_overlap:] = np.linspace(1, 0, y_overlap, dtype=np.float32) + ramp_full = np.linspace(0, 1, y_overlap + 2, dtype=np.float32)[1:-1] + wy[:y_overlap] = ramp_full + wy[-y_overlap:] = ramp_full[::-1] ramp = np.outer(wx, wy) return ramp From 395f2c33fefac173718d5c9390cf68c5d79514d0 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Tue, 27 Jan 2026 14:27:25 -0500 Subject: [PATCH 103/133] style: clean up --- tests/test_lsm_mosaic.py | 8 ++-- tests/test_lsm_strip.py | 3 -- tests/test_psoct_mosaic.py | 14 +++---- tests/test_psoct_mosaic_complex.py | 21 +++++----- tests/test_utils_stitch.py | 65 ++++++++++++++---------------- 5 files changed, 48 insertions(+), 63 deletions(-) diff --git a/tests/test_lsm_mosaic.py b/tests/test_lsm_mosaic.py index a39b4c8a..83bcd83c 100644 --- a/tests/test_lsm_mosaic.py +++ b/tests/test_lsm_mosaic.py @@ -36,7 +36,7 @@ def test_lsm_mosaic(tmp_path, mosaic_tiff, zarr_version, driver): expected_zarr = f"data/lsm_mosaic_zarr{zarr_version}.nii.zarr.zip" output = tmp_path / "mosaic.nii.zarr" mosaic.convert( - str(mosaic_tiff), out=str(output), zarr_version=zarr_version, driver=driver + str(mosaic_tiff), out=str(output), zarr_version=zarr_version, driver=driver ) assert_zarr_equal(str(output), zarr.storage.ZipStore(expected_zarr, mode="r")) @@ -46,9 +46,9 @@ def test_lsm_mosaic_regen_golden(tmp_path, mosaic_tiff, zarr_version): expected_zarr = f"data/lsm_mosaic_zarr{zarr_version}.nii.zarr.zip" output = tmp_path / "mosaic.nii.zarr" mosaic.convert( - str(mosaic_tiff), - out=str(output), - zarr_version=zarr_version, + str(mosaic_tiff), + out=str(output), + zarr_version=zarr_version, ) base = Path(expected_zarr).with_suffix("") shutil.make_archive(str(base), "zip", str(output)) diff --git a/tests/test_lsm_strip.py b/tests/test_lsm_strip.py index 1129f3f4..6c2ead56 100644 --- a/tests/test_lsm_strip.py +++ b/tests/test_lsm_strip.py @@ -6,7 +6,6 @@ from utils.compare_file import assert_zarr_equal from linc_convert.modalities.lsm import strip -from test_lsm_spool import spool_dat def _get_first_strip_dir(root): @@ -48,5 +47,3 @@ def test_lsm_strip_regen_golden(tmp_path, spool_dat, zarr_version): expected_zarr = f"data/lsm_strip_zarr{zarr_version}.nii.zarr.zip" base = Path(expected_zarr).with_suffix("") shutil.make_archive(str(base), "zip", str(output)) - - diff --git a/tests/test_psoct_mosaic.py b/tests/test_psoct_mosaic.py index 28dc5857..74ac46d3 100644 --- a/tests/test_psoct_mosaic.py +++ b/tests/test_psoct_mosaic.py @@ -49,11 +49,7 @@ def mosaic_tiles(tmp_path): tile_path = base_dir / f"tile_y{y_idx}_x{x_idx}.mat" savemat(str(tile_path), {"image": tile_data}) - tiles.append({ - "x": x, - "y": y, - "filepath": f"tile_y{y_idx}_x{x_idx}.mat" - }) + tiles.append({"x": x, "y": y, "filepath": f"tile_y{y_idx}_x{x_idx}.mat"}) # Create YAML file yaml_path = tmp_path / "tile_info.yaml" @@ -65,9 +61,9 @@ def mosaic_tiles(tmp_path): "tile_overlap": 0.2, "clip_x": 0, "clip_y": 0, - "file_key": "image" + "file_key": "image", }, - "tiles": tiles + "tiles": tiles, } with open(yaml_path, "w") as f: @@ -145,7 +141,7 @@ def test_psoct_mosaic_convert(tmp_path, mosaic_tiles, zarr_version, driver): def test_psoct_mosaic_with_mask( tmp_path, mosaic_tiles, mosaic_mask, zarr_version, driver - ): +): """Test psoct.mosaic with mask applied.""" output = tmp_path / "mosaic_masked.nii.zarr" @@ -165,7 +161,7 @@ def test_psoct_mosaic_with_mask( def test_psoct_mosaic_with_focus_plane( tmp_path, mosaic_tiles, mosaic_focus_plane, zarr_version, driver - ): +): """Test psoct.mosaic with focus plane cropping.""" output = tmp_path / "mosaic_focus.nii.zarr" diff --git a/tests/test_psoct_mosaic_complex.py b/tests/test_psoct_mosaic_complex.py index 778466c5..083f4f42 100644 --- a/tests/test_psoct_mosaic_complex.py +++ b/tests/test_psoct_mosaic_complex.py @@ -15,7 +15,7 @@ def mosaic_complex_tiles(tmp_path): """ Create synthetic complex 3D tiles for mosaic_complex testing. - + Each tile has shape (4 * raw_tile_width, tile_height, tile_width) where the first dimension is split into 4 parts: j1r, j1i, j2r, j2i. """ @@ -38,8 +38,9 @@ def mosaic_complex_tiles(tmp_path): # Create synthetic complex data # Shape: (4 * raw_tile_width, tile_height, tile_width) # Split into: j1r, j1i, j2r, j2i - tile_data = np.zeros((4 * raw_tile_width, tile_height, depth), - dtype=np.float32) + tile_data = np.zeros( + (4 * raw_tile_width, tile_height, depth), dtype=np.float32 + ) # Fill with synthetic data that varies by position for i in range(4 * raw_tile_width): @@ -53,11 +54,7 @@ def mosaic_complex_tiles(tmp_path): tile_path = base_dir / f"tile_y{y_idx}_x{x_idx}.mat" savemat(str(tile_path), {"complex3d": tile_data}) - tiles.append({ - "x": x, - "y": y, - "filepath": f"tile_y{y_idx}_x{x_idx}.mat" - }) + tiles.append({"x": x, "y": y, "filepath": f"tile_y{y_idx}_x{x_idx}.mat"}) # Create YAML file yaml_path = tmp_path / "tile_info.yaml" @@ -74,9 +71,9 @@ def mosaic_complex_tiles(tmp_path): "flip_z": False, "clip_x": 0, "clip_y": 0, - "file_key": "complex3d" + "file_key": "complex3d", }, - "tiles": tiles + "tiles": tiles, } with open(yaml_path, "w") as f: @@ -87,7 +84,7 @@ def mosaic_complex_tiles(tmp_path): def test_psoct_mosaic_complex_convert( tmp_path, mosaic_complex_tiles, zarr_version, driver - ): +): """Test psoct.mosaic_complex conversion.""" dbi_output = tmp_path / "dbi.nii.zarr" o3d_output = tmp_path / "o3d.nii.zarr" @@ -114,7 +111,7 @@ def test_psoct_mosaic_complex_convert( @pytest.mark.golden def test_psoct_mosaic_complex_regen_golden( tmp_path, mosaic_complex_tiles, zarr_version - ): +): """Regenerate golden archives for psoct.mosaic_complex.""" dbi_output = tmp_path / "dbi_output.nii.zarr" o3d_output = tmp_path / "o3d_output.nii.zarr" diff --git a/tests/test_utils_stitch.py b/tests/test_utils_stitch.py index db292d0b..d5f47fa5 100644 --- a/tests/test_utils_stitch.py +++ b/tests/test_utils_stitch.py @@ -1,6 +1,7 @@ """ Unit tests for linc_convert.utils.stitch module. """ + import dask.array as da import numpy as np import pytest @@ -80,12 +81,10 @@ def test_from_tiles_2d(self): """Test creating 2D MosaicInfo from tiles.""" # Create two small tiles tile1 = TileInfo( - x=0, y=0, - image=da.ones((10, 10), chunks=(5, 5), dtype=np.float32) + x=0, y=0, image=da.ones((10, 10), chunks=(5, 5), dtype=np.float32) ) tile2 = TileInfo( - x=5, y=5, - image=da.ones((10, 10), chunks=(5, 5), dtype=np.float32) * 2 + x=5, y=5, image=da.ones((10, 10), chunks=(5, 5), dtype=np.float32) * 2 ) mosaic = MosaicInfo.from_tiles( @@ -103,12 +102,10 @@ def test_from_tiles_3d(self): """Test creating 3D MosaicInfo from tiles.""" # Create two small 3D tiles tile1 = TileInfo( - x=0, y=0, - image=da.ones((10, 10, 5), chunks=(5, 5, 5), dtype=np.float32) + x=0, y=0, image=da.ones((10, 10, 5), chunks=(5, 5, 5), dtype=np.float32) ) tile2 = TileInfo( - x=5, y=5, - image=da.ones((10, 10, 5), chunks=(5, 5, 5), dtype=np.float32) * 2 + x=5, y=5, image=da.ones((10, 10, 5), chunks=(5, 5, 5), dtype=np.float32) * 2 ) mosaic = MosaicInfo.from_tiles( @@ -125,12 +122,10 @@ def test_normalize_tile_coordinates(self): """Test normalize_tile_coordinates method.""" # Create tiles with non-zero minimum coordinates tile1 = TileInfo( - x=10, y=20, - image=da.ones((10, 10), chunks=(5, 5), dtype=np.float32) + x=10, y=20, image=da.ones((10, 10), chunks=(5, 5), dtype=np.float32) ) tile2 = TileInfo( - x=15, y=25, - image=da.ones((10, 10), chunks=(5, 5), dtype=np.float32) + x=15, y=25, image=da.ones((10, 10), chunks=(5, 5), dtype=np.float32) ) mosaic = MosaicInfo.from_tiles( @@ -161,12 +156,12 @@ def test_stitch_2d_simple(self): """Test stitching 2D tiles with simple overlap.""" # Create two overlapping tiles tile1 = TileInfo( - x=0, y=0, - image=da.ones((10, 10), chunks=(5, 5), dtype=np.float32) * 10 + x=0, y=0, image=da.ones((10, 10), chunks=(5, 5), dtype=np.float32) * 10 ) tile2 = TileInfo( - x=5, y=5, # 5 pixel overlap in both dimensions - image=da.ones((10, 10), chunks=(5, 5), dtype=np.float32) * 20 + x=5, + y=5, # 5 pixel overlap in both dimensions + image=da.ones((10, 10), chunks=(5, 5), dtype=np.float32) * 20, ) mosaic = MosaicInfo.from_tiles( @@ -197,12 +192,12 @@ def test_stitch_2d_simple(self): def test_stitch_2d_no_overlap(self): """Test stitching 2D tiles with no overlap.""" tile1 = TileInfo( - x=0, y=0, - image=da.ones((10, 10), chunks=(5, 5), dtype=np.float32) * 10 + x=0, y=0, image=da.ones((10, 10), chunks=(5, 5), dtype=np.float32) * 10 ) tile2 = TileInfo( - x=10, y=10, # No overlap - image=da.ones((10, 10), chunks=(5, 5), dtype=np.float32) * 20 + x=10, + y=10, # No overlap + image=da.ones((10, 10), chunks=(5, 5), dtype=np.float32) * 20, ) mosaic = MosaicInfo.from_tiles( @@ -224,12 +219,14 @@ def test_stitch_2d_no_overlap(self): def test_stitch_3d(self): """Test stitching 3D tiles.""" tile1 = TileInfo( - x=0, y=0, - image=da.ones((10, 10, 5), chunks=(5, 5, 5), dtype=np.float32) * 10 + x=0, + y=0, + image=da.ones((10, 10, 5), chunks=(5, 5, 5), dtype=np.float32) * 10, ) tile2 = TileInfo( - x=5, y=5, - image=da.ones((10, 10, 5), chunks=(5, 5, 5), dtype=np.float32) * 20 + x=5, + y=5, + image=da.ones((10, 10, 5), chunks=(5, 5, 5), dtype=np.float32) * 20, ) mosaic = MosaicInfo.from_tiles( @@ -252,13 +249,15 @@ def test_stitch_circular_mean(self): # Create tiles with angle values (in degrees) # Use simple angles for easy verification tile1 = TileInfo( - x=0, y=0, - image=da.full((10, 10), chunks=(5, 5), dtype=np.float32, fill_value=0.0) + x=0, + y=0, + image=da.full((10, 10), chunks=(5, 5), dtype=np.float32, fill_value=0.0), # 0 degrees ) tile2 = TileInfo( - x=5, y=5, - image=da.full((10, 10), chunks=(5, 5), dtype=np.float32, fill_value=180.0) + x=5, + y=5, + image=da.full((10, 10), chunks=(5, 5), dtype=np.float32, fill_value=180.0), # 180 degrees ) @@ -292,12 +291,10 @@ class TestStitchTiles: def test_stitch_tiles_backward_compat(self): """Test that stitch_tiles produces same result as MosaicInfo.stitch().""" tile1 = TileInfo( - x=0, y=0, - image=da.ones((10, 10), chunks=(5, 5), dtype=np.float32) * 10 + x=0, y=0, image=da.ones((10, 10), chunks=(5, 5), dtype=np.float32) * 10 ) tile2 = TileInfo( - x=5, y=5, - image=da.ones((10, 10), chunks=(5, 5), dtype=np.float32) * 20 + x=5, y=5, image=da.ones((10, 10), chunks=(5, 5), dtype=np.float32) * 20 ) # Create MosaicInfo and stitch @@ -319,9 +316,7 @@ def test_stitch_tiles_backward_compat(self): # Results should be the same np.testing.assert_array_almost_equal( - result1.compute(), - result2.compute(), - decimal=5 + result1.compute(), result2.compute(), decimal=5 ) def test_stitch_tiles_empty(self): From 5827f7fc48c8350c616ece40013cfd059bd2dd4f Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Tue, 27 Jan 2026 15:10:45 -0500 Subject: [PATCH 104/133] refactor: make the tile config generation to be a pipeline in psoct modalities --- linc_convert/modalities/psoct/__init__.py | 4 +- .../modalities/psoct/generate_tile_config.py | 589 ++++++++++++++++++ scripts/generate_tile_config.py | 505 --------------- 3 files changed, 591 insertions(+), 507 deletions(-) create mode 100644 linc_convert/modalities/psoct/generate_tile_config.py delete mode 100644 scripts/generate_tile_config.py diff --git a/linc_convert/modalities/psoct/__init__.py b/linc_convert/modalities/psoct/__init__.py index 5f42c9e3..5df67673 100644 --- a/linc_convert/modalities/psoct/__init__.py +++ b/linc_convert/modalities/psoct/__init__.py @@ -4,8 +4,8 @@ import h5py as _h5py # noqa: F401 import scipy as _scipy # noqa: F401 - __all__ = ["cli", "multi_slice", "single_volume", "mosaic", "mosaic_complex"] + __all__ = ["cli", "multi_slice", "single_volume", "mosaic", "mosaic_complex", "generate_tile_config"] - from . import cli, mosaic, mosaic_complex, multi_slice, single_volume + from . import cli, mosaic, mosaic_complex, multi_slice, single_volume, generate_tile_config except ImportError: pass diff --git a/linc_convert/modalities/psoct/generate_tile_config.py b/linc_convert/modalities/psoct/generate_tile_config.py new file mode 100644 index 00000000..4b25e763 --- /dev/null +++ b/linc_convert/modalities/psoct/generate_tile_config.py @@ -0,0 +1,589 @@ +""" +Generate tile configuration YAML file for PSOCT mosaic tiles. + +Grid Layout Example (3 columns × 2 rows): + ┌─────────┬─────────┬─────────┐ + │ Tile 1 │ Tile 2 │ Tile 3 │ ← Row 0 (top row) + │ (0,0) │ (200,0) │ (400,0) │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + ├─────────┼─────────┼─────────┤ + │ Tile 4 │ Tile 5 │ Tile 6 │ ← Row 1 (bottom row) + │ (0,300) │(200,300)│(400,300)│ + │ │ │ │ + │ │ │ │ + │ │ │ │ + └─────────┴─────────┴─────────┘ + Col 0 Col 1 Col 2 + +Terminology: +- **Columns**: Number of tiles horizontally (x-direction). In the example above, there are 3 columns. +- **Rows**: Number of tiles vertically (y-direction). In the example above, there are 2 rows. +- **Tile Size**: Dimensions of each individual tile in pixels. + - `tile_size_x`: Width of each tile (horizontal dimension) + - `tile_size_y`: Height of each tile (vertical dimension) + - For the mosaic above, tile_size_x=200, tile_size_y=300, num_columns=3, num_rows=2. + +Grid Patterns (tile numbering for 3×2 grid): + +Row-by-row: + right-down: left-down: right-up: left-up: + ┌───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┐ + │ 1 │ 2 │ 3 │ │ 3 │ 2 │ 1 │ │ 4 │ 5 │ 6 │ │ 6 │ 5 │ 4 │ + ├───┼───┼───┤ ├───┼───┼───┤ ├───┼───┼───┤ ├───┼───┼───┤ + │ 4 │ 5 │ 6 │ │ 6 │ 5 │ 4 │ │ 1 │ 2 │ 3 │ │ 3 │ 2 │ 1 │ + └───┴───┴───┘ └───┴───┴───┘ └───┴───┴───┘ └───┴───┴───┘ + +Column-by-column: + down-right: down-left: up-right: up-left: + ┌───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┐ + │ 1 │ 3 │ 5 │ │ 5 │ 3 │ 1 │ │ 2 │ 4 │ 6 │ │ 6 │ 4 │ 2 │ + ├───┼───┼───┤ ├───┼───┼───┤ ├───┼───┼───┤ ├───┼───┼───┤ + │ 2 │ 4 │ 6 │ │ 6 │ 4 │ 2 │ │ 1 │ 3 │ 5 │ │ 5 │ 3 │ 1 │ + └───┴───┴───┘ └───┴───┴───┘ └───┴───┴───┘ └───┴───┴───┘ + +Snake-by-rows: + right-down: left-down: right-up: left-up: + ┌───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┐ + │ 1 │ 2 │ 3 │ │ 3 │ 2 │ 1 │ │ 6 │ 5 │ 4 │ │ 4 │ 5 │ 6 │ + ├───┼───┼───┤ ├───┼───┼───┤ ├───┼───┼───┤ ├───┼───┼───┤ + │ 6 │ 5 │ 4 │ │ 4 │ 5 │ 6 │ │ 1 │ 2 │ 3 │ │ 3 │ 2 │ 1 │ + └───┴───┴───┘ └───┴───┴───┘ └───┴───┴───┘ └───┴───┴───┘ + +Snake-by-columns: + down-right: down-left: up-right: up-left: + ┌───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┐ + │ 1 │ 4 │ 5 │ │ 5 │ 4 │ 1 │ │ 2 │ 3 │ 6 │ │ 6 │ 3 │ 2 │ + ├───┼───┼───┤ ├───┼───┼───┤ ├───┼───┼───┤ ├───┼───┼───┤ + │ 2 │ 3 │ 6 │ │ 6 │ 3 │ 2 │ │ 1 │ 4 │ 5 │ │ 5 │ 4 │ 1 │ + └───┴───┴───┘ └───┴───┴───┘ └───┴───┴───┘ └───┴───┴───┘ +""" + +from typing import Annotated, List, Optional + +import cyclopts +import yaml +from cyclopts import Parameter + +from linc_convert.modalities.psoct.cli import psoct + +generate_tile_config_cmd = cyclopts.App(name="generate_tile_config", help_format="markdown") +psoct.command(generate_tile_config_cmd) + + +def _calculate_spacing(tile_size: int, overlap: float) -> float: + """ + Calculate tile spacing accounting for overlap. + + Parameters + ---------- + tile_size : int + Size of tile in pixels + overlap : float + Overlap percentage (0.0-1.0) + + Returns + ------- + float + Spacing between tile centers + """ + return tile_size * (1.0 - overlap) + + +def _format_filepath(naming_format: str, tile_number: int) -> str: + """ + Format filepath using naming format and tile number. + + Parameters + ---------- + naming_format : str + Format string for tile filenames + tile_number : int + Tile number + + Returns + ------- + str + Formatted filepath + """ + try: + return naming_format.format(tile_number=tile_number) + except (KeyError, ValueError): + return naming_format.replace("{tile_number}", str(tile_number)) + + +def _create_tile_entry(tile_number: int, x: float, y: float, naming_format: str) -> dict: + """ + Create a tile dictionary entry. + + Parameters + ---------- + tile_number : int + Tile number + x : float + X coordinate + y : float + Y coordinate + naming_format : str + Format string for tile filenames + + Returns + ------- + dict + Tile dictionary entry + """ + return { + "filepath": _format_filepath(naming_format, tile_number), + "tile_number": tile_number, + "x": float(x), + "y": float(y) + } + + +def _generate_row_by_row( + num_columns: int, + num_rows: int, + tile_size_x: int, + tile_size_y: int, + overlap_x: float, + overlap_y: float, + order: str, + naming_format: str +) -> List[dict]: + """ + Generate tiles in row-by-row pattern. + + Parameters + ---------- + num_columns : int + Number of columns + num_rows : int + Number of rows + tile_size_x : int + Tile size in x direction + tile_size_y : int + Tile size in y direction + overlap_x : float + Overlap percentage in x direction + overlap_y : float + Overlap percentage in y direction + order : str + Order direction (right-down, left-down, right-up, left-up) + naming_format : str + Format string for tile filenames + + Returns + ------- + List[dict] + List of tile dictionaries + """ + tiles = [] + tile_number = 1 + + spacing_x = _calculate_spacing(tile_size_x, overlap_x) + spacing_y = _calculate_spacing(tile_size_y, overlap_y) + + # Determine row and column iteration order based on order parameter + if order == "right-down": + row_range = range(num_rows) # Top to bottom + col_range = range(num_columns) # Left to right + elif order == "left-down": + row_range = range(num_rows) # Top to bottom + col_range = range(num_columns - 1, -1, -1) # Right to left + elif order == "right-up": + row_range = range(num_rows - 1, -1, -1) # Bottom to top + col_range = range(num_columns) # Left to right + elif order == "left-up": + row_range = range(num_rows - 1, -1, -1) # Bottom to top + col_range = range(num_columns - 1, -1, -1) # Right to left + else: + raise ValueError(f"Invalid order for row-by-row: {order}") + + for row_idx in row_range: + y = row_idx * spacing_y + for col_idx in col_range: + x = col_idx * spacing_x + tiles.append(_create_tile_entry(tile_number, x, y, naming_format)) + tile_number += 1 + + return tiles + + +def _generate_column_by_column( + num_columns: int, + num_rows: int, + tile_size_x: int, + tile_size_y: int, + overlap_x: float, + overlap_y: float, + order: str, + naming_format: str +) -> List[dict]: + """ + Generate tiles in column-by-column pattern. + + Parameters + ---------- + num_columns : int + Number of columns + num_rows : int + Number of rows + tile_size_x : int + Tile size in x direction + tile_size_y : int + Tile size in y direction + overlap_x : float + Overlap percentage in x direction + overlap_y : float + Overlap percentage in y direction + order : str + Order direction (down-right, down-left, up-right, up-left) + naming_format : str + Format string for tile filenames + + Returns + ------- + List[dict] + List of tile dictionaries + """ + tiles = [] + tile_number = 1 + + spacing_x = _calculate_spacing(tile_size_x, overlap_x) + spacing_y = _calculate_spacing(tile_size_y, overlap_y) + + # Determine row and column iteration order based on order parameter + if order == "down-right": + col_range = range(num_columns) # Left to right + row_range = range(num_rows) # Top to bottom + elif order == "down-left": + col_range = range(num_columns - 1, -1, -1) # Right to left + row_range = range(num_rows) # Top to bottom + elif order == "up-right": + col_range = range(num_columns) # Left to right + row_range = range(num_rows - 1, -1, -1) # Bottom to top + elif order == "up-left": + col_range = range(num_columns - 1, -1, -1) # Right to left + row_range = range(num_rows - 1, -1, -1) # Bottom to top + else: + raise ValueError(f"Invalid order for column-by-column: {order}") + + for col_idx in col_range: + x = col_idx * spacing_x + for row_idx in row_range: + y = row_idx * spacing_y + tiles.append(_create_tile_entry(tile_number, x, y, naming_format)) + tile_number += 1 + + return tiles + + +def _generate_snake_by_rows( + num_columns: int, + num_rows: int, + tile_size_x: int, + tile_size_y: int, + overlap_x: float, + overlap_y: float, + order: str, + naming_format: str +) -> List[dict]: + """ + Generate tiles in snake-by-rows pattern. + + Parameters + ---------- + num_columns : int + Number of columns + num_rows : int + Number of rows + tile_size_x : int + Tile size in x direction + tile_size_y : int + Tile size in y direction + overlap_x : float + Overlap percentage in x direction + overlap_y : float + Overlap percentage in y direction + order : str + Order direction (right-down, left-down, right-up, left-up) + naming_format : str + Format string for tile filenames + + Returns + ------- + List[dict] + List of tile dictionaries + """ + tiles = [] + tile_number = 1 + + spacing_x = _calculate_spacing(tile_size_x, overlap_x) + spacing_y = _calculate_spacing(tile_size_y, overlap_y) + + # Determine row iteration order and starting direction based on order parameter + if order == "right-down": + row_range = range(num_rows) # Top to bottom + first_row_goes_left = True # First row (top) goes left-to-right + elif order == "left-down": + row_range = range(num_rows) # Top to bottom + first_row_goes_left = False # First row (top) goes right-to-left + elif order == "right-up": + row_range = range(num_rows - 1, -1, -1) # Bottom to top + first_row_goes_left = True # First row (bottom) goes left-to-right + elif order == "left-up": + row_range = range(num_rows - 1, -1, -1) # Bottom to top + first_row_goes_left = False # First row (bottom) goes right-to-left + else: + raise ValueError(f"Invalid order for snake-by-rows: {order}") + + for row_position, row_idx in enumerate(row_range): + y = row_idx * spacing_y + # Alternate direction for each row based on position in sequence + if (row_position % 2 == 0) == first_row_goes_left: + col_range = range(num_columns) # Left to right + else: + col_range = range(num_columns - 1, -1, -1) # Right to left + + for col_idx in col_range: + x = col_idx * spacing_x + tiles.append(_create_tile_entry(tile_number, x, y, naming_format)) + tile_number += 1 + + return tiles + + +def _generate_snake_by_columns( + num_columns: int, + num_rows: int, + tile_size_x: int, + tile_size_y: int, + overlap_x: float, + overlap_y: float, + order: str, + naming_format: str +) -> List[dict]: + """ + Generate tiles in snake-by-columns pattern. + + Parameters + ---------- + num_columns : int + Number of columns + num_rows : int + Number of rows + tile_size_x : int + Tile size in x direction + tile_size_y : int + Tile size in y direction + overlap_x : float + Overlap percentage in x direction + overlap_y : float + Overlap percentage in y direction + order : str + Order direction (down-right, down-left, up-right, up-left) + naming_format : str + Format string for tile filenames + + Returns + ------- + List[dict] + List of tile dictionaries + """ + tiles = [] + tile_number = 1 + + spacing_x = _calculate_spacing(tile_size_x, overlap_x) + spacing_y = _calculate_spacing(tile_size_y, overlap_y) + + # Determine column iteration order and starting direction based on order parameter + if order == "down-right": + col_range = range(num_columns) # Left to right + first_col_goes_down = True # First column (left) goes top-to-bottom + elif order == "down-left": + col_range = range(num_columns - 1, -1, -1) # Right to left + first_col_goes_down = True # First column (right) goes top-to-bottom + elif order == "up-right": + col_range = range(num_columns) # Left to right + first_col_goes_down = False # First column (left) goes bottom-to-top + elif order == "up-left": + col_range = range(num_columns - 1, -1, -1) # Right to left + first_col_goes_down = False # First column (right) goes bottom-to-top + else: + raise ValueError(f"Invalid order for snake-by-columns: {order}") + + for col_position, col_idx in enumerate(col_range): + x = col_idx * spacing_x + # Alternate direction for each column based on position in sequence + if (col_position % 2 == 0) == first_col_goes_down: + row_range = range(num_rows) # Top to bottom + else: + row_range = range(num_rows - 1, -1, -1) # Bottom to top + + for row_idx in row_range: + y = row_idx * spacing_y + tiles.append(_create_tile_entry(tile_number, x, y, naming_format)) + tile_number += 1 + + return tiles + + +@generate_tile_config_cmd.default +def generate_tile_config( + columns: Annotated[int, Parameter(name=["--columns"])] = 20, + rows: Annotated[int, Parameter(name=["--rows"])] = 28, + tile_size_x: Annotated[int, Parameter(name=["--tile-size-x"])] = 200, + tile_size_y: Annotated[int, Parameter(name=["--tile-size-y"])] = 300, + tile_size: Annotated[Optional[int], Parameter(name=["--tile-size"])] = None, + base_dir: Annotated[str, Parameter(name=["--base-dir"])] = "./", + naming_format: Annotated[str, Parameter(name=["--naming-format"])] = "mosaic_001_tile_{tile_number:04d}_aip.nii", + out: Annotated[str, Parameter(name=["--output", "-o"])] = "tile_config.yaml", + grid_type: Annotated[str, Parameter(name=["--grid-type"])] = "snake-by-columns", + order: Annotated[Optional[str], Parameter(name=["--order"])] = None, + overlap_percentage: Annotated[float, Parameter(name=["--overlap-percentage"])] = 0.0, +) -> None: + """ + Generate tile configuration YAML file for Grid/Collection Stitching. + + This command generates a YAML configuration file that specifies the layout + and positioning of tiles in a mosaic grid. It supports multiple grid patterns + and ordering schemes. + + Parameters + ---------- + columns : int + Number of columns (default: 20) + rows : int + Number of rows (default: 28) + tile_size_x : int + Tile size in x direction (pixels, default: 200) + tile_size_y : int + Tile size in y direction (pixels, default: 300) + tile_size : int, optional + Tile size in both x and y directions (pixels). If specified, overrides + both --tile-size-x and --tile-size-y + base_dir : str + Base directory path for the tiles (default: ./) + naming_format : str + Format string for tile filenames. Use {tile_number} or {tile_number:04d} + for tile number substitution (default: mosaic_001_tile_{tile_number:04d}_aip.nii) + out : str + Output YAML file path (default: tile_config.yaml) + grid_type : str + Grid type. Must be one of: "row-by-row", "column-by-column", "snake-by-rows", + "snake-by-columns" (default: snake-by-columns) + + Grid Types: + - row-by-row: Images arranged in a grid, one line after the other + - column-by-column: Images arranged in a grid, one column after the other + - snake-by-rows: Images arranged in a grid, snaking across rows + - snake-by-columns: Images arranged in a grid, snaking down columns + order : str, optional + Order direction. If not specified, defaults to "right-down" for row-by-row/snake-by-rows, + or "down-right" for column-by-column/snake-by-columns. + + For row-by-row and snake-by-rows: + - right-down: Start top-left, go right + - left-down: Start top-right, go left + - right-up: Start bottom-left, go right + - left-up: Start bottom-right, go left + + For column-by-column and snake-by-columns: + - down-right: Start top-left, go down + - down-left: Start top-right, go down + - up-right: Start bottom-left, go up + - up-left: Start bottom-right, go up + overlap_percentage : float + Overlap percentage (0.0-1.0) that affects tile spacing (default: 0.0) + + Examples + -------- + Generate a 20x28 grid with default settings: + ```bash + linc-convert psoct generate_tile_config + ``` + + Generate a 10x10 grid with snake-by-rows pattern: + ```bash + linc-convert psoct generate_tile_config --columns 10 --rows 10 --grid-type snake-by-rows + ``` + + Generate with custom tile size and overlap: + ```bash + linc-convert psoct generate_tile_config --tile-size 512 --overlap-percentage 0.1 + ``` + """ + # Handle --tile-size as a convenience option that sets both x and y + if tile_size is not None: + tile_size_x = tile_size + tile_size_y = tile_size + + # Set default order based on grid_type if not specified + if order is None: + if grid_type in ["row-by-row", "snake-by-rows"]: + order = "right-down" + else: # column-by-column or snake-by-columns + order = "down-right" + + # Validate grid_type and order + valid_grid_types = ["row-by-row", "column-by-column", "snake-by-rows", "snake-by-columns"] + if grid_type not in valid_grid_types: + raise ValueError(f"Invalid grid_type: {grid_type}. Must be one of {valid_grid_types}") + + row_based = grid_type in ["row-by-row", "snake-by-rows"] + valid_orders = ( + ["right-down", "left-down", "right-up", "left-up"] if row_based + else ["down-right", "down-left", "up-right", "up-left"] + ) + if order not in valid_orders: + raise ValueError(f"Invalid order for {grid_type}: {order}. Must be one of {valid_orders}") + + # Validate overlap_percentage + if not 0.0 <= overlap_percentage <= 1.0: + raise ValueError(f"overlap_percentage must be between 0.0 and 1.0, got {overlap_percentage}") + + # Generate tiles based on grid type + overlap = overlap_percentage + generator_map = { + "row-by-row": _generate_row_by_row, + "column-by-column": _generate_column_by_column, + "snake-by-rows": _generate_snake_by_rows, + "snake-by-columns": _generate_snake_by_columns, + } + tiles = generator_map[grid_type]( + columns, rows, tile_size_x, tile_size_y, + overlap, overlap, order, naming_format + ) + + # Build metadata + metadata = { + "base_dir": base_dir, + "scan_resolution": [0.01, 0.01] + } + + # Add overlap to metadata if specified + if overlap_percentage > 0.0: + metadata["tile_overlap"] = overlap_percentage + + config = { + "metadata": metadata, + "tiles": tiles + } + + # Write to YAML file + with open(out, 'w') as f: + yaml.dump(config, f, default_flow_style=False, indent=2, allow_unicode=True) + + print(f"Generated tile configuration with {len(tiles)} tiles") + print(f"Grid type: {grid_type}, Order: {order}") + if overlap_percentage > 0.0: + print(f"Overlap: {overlap_percentage * 100:.1f}%") + print(f"Configuration written to: {out}") + print(f"\nFirst few tiles:") + for tile in tiles[:5]: + print(f" Tile {tile['tile_number']}: x={tile['x']}, y={tile['y']}, file={tile['filepath']}") + print(f"\nLast few tiles:") + for tile in tiles[-5:]: + print(f" Tile {tile['tile_number']}: x={tile['x']}, y={tile['y']}, file={tile['filepath']}") + diff --git a/scripts/generate_tile_config.py b/scripts/generate_tile_config.py deleted file mode 100644 index 64d307b8..00000000 --- a/scripts/generate_tile_config.py +++ /dev/null @@ -1,505 +0,0 @@ -#!/usr/bin/env python3 -""" -Generate tile configuration YAML file for PSOCT mosaic tiles. - -Supports multiple grid/collection stitching patterns: -- Grid: row-by-row (Right & Down, Left & Down, Right & Up, Left & Up) -- Grid: column-by-column (Down & Right, Down & Left, Up & Right, Up & Left) -- Grid: snake by rows (Right & Down, Left & Down, Right & Up, Left & Up) -- Grid: snake by columns (Down & Right, Down & Left, Up & Right, Up & Left) -""" - -import yaml -from typing import List, Tuple, Optional - - -def _calculate_spacing(tile_size: int, overlap: float) -> float: - """ - Calculate tile spacing accounting for overlap. - - Args: - tile_size: Size of tile in pixels - overlap: Overlap percentage (0.0-1.0) - - Returns: - Spacing between tile centers - """ - return tile_size * (1.0 - overlap) - - -def _generate_row_by_row( - num_columns: int, - num_rows: int, - tile_size_x: int, - tile_size_y: int, - overlap_x: float, - overlap_y: float, - order: str, - naming_format: str -) -> List[dict]: - """ - Generate tiles in row-by-row pattern. - - Args: - num_columns: Number of columns - num_rows: Number of rows - tile_size_x: Tile size in x direction - tile_size_y: Tile size in y direction - overlap_x: Overlap percentage in x direction - overlap_y: Overlap percentage in y direction - order: Order direction (right-down, left-down, right-up, left-up) - naming_format: Format string for tile filenames - - Returns: - List of tile dictionaries - """ - tiles = [] - tile_number = 1 - - spacing_x = _calculate_spacing(tile_size_x, overlap_x) - spacing_y = _calculate_spacing(tile_size_y, overlap_y) - - # Determine row and column iteration order based on order parameter - if order == "right-down": - row_range = range(num_rows) # Top to bottom - col_range = range(num_columns) # Left to right - elif order == "left-down": - row_range = range(num_rows) # Top to bottom - col_range = range(num_columns - 1, -1, -1) # Right to left - elif order == "right-up": - row_range = range(num_rows - 1, -1, -1) # Bottom to top - col_range = range(num_columns) # Left to right - elif order == "left-up": - row_range = range(num_rows - 1, -1, -1) # Bottom to top - col_range = range(num_columns - 1, -1, -1) # Right to left - else: - raise ValueError(f"Invalid order for row-by-row: {order}") - - for row_idx in row_range: - y = row_idx * spacing_y - for col_idx in col_range: - x = col_idx * spacing_x - - try: - filepath = naming_format.format(tile_number=tile_number) - except (KeyError, ValueError): - filepath = naming_format.replace("{tile_number}", str(tile_number)) - - tiles.append({ - "filepath": filepath, - "tile_number": tile_number, - "x": float(x), - "y": float(y) - }) - tile_number += 1 - - return tiles - - -def _generate_column_by_column( - num_columns: int, - num_rows: int, - tile_size_x: int, - tile_size_y: int, - overlap_x: float, - overlap_y: float, - order: str, - naming_format: str -) -> List[dict]: - """ - Generate tiles in column-by-column pattern. - - Args: - num_columns: Number of columns - num_rows: Number of rows - tile_size_x: Tile size in x direction - tile_size_y: Tile size in y direction - overlap_x: Overlap percentage in x direction - overlap_y: Overlap percentage in y direction - order: Order direction (down-right, down-left, up-right, up-left) - naming_format: Format string for tile filenames - - Returns: - List of tile dictionaries - """ - tiles = [] - tile_number = 1 - - spacing_x = _calculate_spacing(tile_size_x, overlap_x) - spacing_y = _calculate_spacing(tile_size_y, overlap_y) - - # Determine row and column iteration order based on order parameter - if order == "down-right": - col_range = range(num_columns) # Left to right - row_range = range(num_rows) # Top to bottom - elif order == "down-left": - col_range = range(num_columns - 1, -1, -1) # Right to left - row_range = range(num_rows) # Top to bottom - elif order == "up-right": - col_range = range(num_columns) # Left to right - row_range = range(num_rows - 1, -1, -1) # Bottom to top - elif order == "up-left": - col_range = range(num_columns - 1, -1, -1) # Right to left - row_range = range(num_rows - 1, -1, -1) # Bottom to top - else: - raise ValueError(f"Invalid order for column-by-column: {order}") - - for col_idx in col_range: - x = col_idx * spacing_x - for row_idx in row_range: - y = row_idx * spacing_y - - try: - filepath = naming_format.format(tile_number=tile_number) - except (KeyError, ValueError): - filepath = naming_format.replace("{tile_number}", str(tile_number)) - - tiles.append({ - "filepath": filepath, - "tile_number": tile_number, - "x": float(x), - "y": float(y) - }) - tile_number += 1 - - return tiles - - -def _generate_snake_by_rows( - num_columns: int, - num_rows: int, - tile_size_x: int, - tile_size_y: int, - overlap_x: float, - overlap_y: float, - order: str, - naming_format: str -) -> List[dict]: - """ - Generate tiles in snake-by-rows pattern. - - Args: - num_columns: Number of columns - num_rows: Number of rows - tile_size_x: Tile size in x direction - tile_size_y: Tile size in y direction - overlap_x: Overlap percentage in x direction - overlap_y: Overlap percentage in y direction - order: Order direction (right-down, left-down, right-up, left-up) - naming_format: Format string for tile filenames - - Returns: - List of tile dictionaries - """ - tiles = [] - tile_number = 1 - - spacing_x = _calculate_spacing(tile_size_x, overlap_x) - spacing_y = _calculate_spacing(tile_size_y, overlap_y) - - # Determine row iteration order based on order parameter - if order == "right-down": - row_range = range(num_rows) # Top to bottom - start_left = True - elif order == "left-down": - row_range = range(num_rows) # Top to bottom - start_left = False - elif order == "right-up": - row_range = range(num_rows - 1, -1, -1) # Bottom to top - start_left = True - elif order == "left-up": - row_range = range(num_rows - 1, -1, -1) # Bottom to top - start_left = False - else: - raise ValueError(f"Invalid order for snake-by-rows: {order}") - - for row_idx in row_range: - y = row_idx * spacing_y - # Alternate direction for each row - if (row_idx % 2 == 0) == start_left: - col_range = range(num_columns) # Left to right - else: - col_range = range(num_columns - 1, -1, -1) # Right to left - - for col_idx in col_range: - x = col_idx * spacing_x - - try: - filepath = naming_format.format(tile_number=tile_number) - except (KeyError, ValueError): - filepath = naming_format.replace("{tile_number}", str(tile_number)) - - tiles.append({ - "filepath": filepath, - "tile_number": tile_number, - "x": float(x), - "y": float(y) - }) - tile_number += 1 - - return tiles - - -def _generate_snake_by_columns( - num_columns: int, - num_rows: int, - tile_size_x: int, - tile_size_y: int, - overlap_x: float, - overlap_y: float, - order: str, - naming_format: str -) -> List[dict]: - """ - Generate tiles in snake-by-columns pattern. - - Args: - num_columns: Number of columns - num_rows: Number of rows - tile_size_x: Tile size in x direction - tile_size_y: Tile size in y direction - overlap_x: Overlap percentage in x direction - overlap_y: Overlap percentage in y direction - order: Order direction (down-right, down-left, up-right, up-left) - naming_format: Format string for tile filenames - - Returns: - List of tile dictionaries - """ - tiles = [] - tile_number = 1 - - spacing_x = _calculate_spacing(tile_size_x, overlap_x) - spacing_y = _calculate_spacing(tile_size_y, overlap_y) - - # Determine column iteration order and starting direction based on order parameter - if order == "down-right": - col_range = range(num_columns) # Left to right - start_bottom = True # Even columns start from bottom - elif order == "down-left": - col_range = range(num_columns - 1, -1, -1) # Right to left - start_bottom = True # Even columns start from bottom - elif order == "up-right": - col_range = range(num_columns) # Left to right - start_bottom = False # Even columns start from top - elif order == "up-left": - col_range = range(num_columns - 1, -1, -1) # Right to left - start_bottom = False # Even columns start from top - else: - raise ValueError(f"Invalid order for snake-by-columns: {order}") - - for col_idx in col_range: - x = col_idx * spacing_x - # Alternate direction for each column - # Original behavior: even columns go bottom-to-top, odd columns go top-to-bottom - if (col_idx % 2 == 0) == start_bottom: - row_range = range(num_rows - 1, -1, -1) # Bottom to top - else: - row_range = range(num_rows) # Top to bottom - - for row_idx in row_range: - y = row_idx * spacing_y - - try: - filepath = naming_format.format(tile_number=tile_number) - except (KeyError, ValueError): - filepath = naming_format.replace("{tile_number}", str(tile_number)) - - tiles.append({ - "filepath": filepath, - "tile_number": tile_number, - "x": float(x), - "y": float(y) - }) - tile_number += 1 - - return tiles - - -def generate_tile_config( - num_columns: int = 20, - num_rows: int = 28, - tile_size_x: int = 280, - tile_size_y: int = 280, - base_dir: str = "/autofs/space/zircon_007/users/psoct-pipeline/sub-I80", - naming_format: str = "mosaic_001_tile_{tile_number:04d}_mip.nii", - output_file: str = "tile_config.yaml", - grid_type: str = "snake-by-columns", - order: str = "down-right", - overlap_percentage: float = 0.0 -): - """ - Generate tile configuration YAML file. - - Args: - num_columns: Number of columns (default: 20) - num_rows: Number of rows (default: 28) - tile_size_x: Size of each tile in x direction (pixels, default: 280) - tile_size_y: Size of each tile in y direction (pixels, default: 280) - base_dir: Base directory path for the tiles - naming_format: Format string for tile filenames. Use {tile_number} or {tile_number:04d} - for tile number substitution (default: "mosaic_001_tile_{tile_number:04d}_mip.nii") - output_file: Output YAML file path - grid_type: Grid type - one of: "row-by-row", "column-by-column", "snake-by-rows", - "snake-by-columns" (default: "snake-by-columns") - order: Order direction. For row-by-row and snake-by-rows: "right-down", "left-down", - "right-up", "left-up". For column-by-column and snake-by-columns: "down-right", - "down-left", "up-right", "up-left" (default: "down-right") - overlap_percentage: Overlap percentage (0.0-1.0) that affects tile spacing - (default: 0.0, i.e., no overlap) - """ - # Validate grid_type - valid_grid_types = ["row-by-row", "column-by-column", "snake-by-rows", "snake-by-columns"] - if grid_type not in valid_grid_types: - raise ValueError(f"Invalid grid_type: {grid_type}. Must be one of {valid_grid_types}") - - # Validate order based on grid_type - if grid_type in ["row-by-row", "snake-by-rows"]: - valid_orders = ["right-down", "left-down", "right-up", "left-up"] - if order not in valid_orders: - raise ValueError(f"Invalid order for {grid_type}: {order}. Must be one of {valid_orders}") - else: # column-by-column or snake-by-columns - valid_orders = ["down-right", "down-left", "up-right", "up-left"] - if order not in valid_orders: - raise ValueError(f"Invalid order for {grid_type}: {order}. Must be one of {valid_orders}") - - # Validate overlap_percentage - if not 0.0 <= overlap_percentage <= 1.0: - raise ValueError(f"overlap_percentage must be between 0.0 and 1.0, got {overlap_percentage}") - - # Generate tiles based on grid type - if grid_type == "row-by-row": - tiles = _generate_row_by_row( - num_columns, num_rows, tile_size_x, tile_size_y, - overlap_percentage, overlap_percentage, order, naming_format - ) - elif grid_type == "column-by-column": - tiles = _generate_column_by_column( - num_columns, num_rows, tile_size_x, tile_size_y, - overlap_percentage, overlap_percentage, order, naming_format - ) - elif grid_type == "snake-by-rows": - tiles = _generate_snake_by_rows( - num_columns, num_rows, tile_size_x, tile_size_y, - overlap_percentage, overlap_percentage, order, naming_format - ) - else: # snake-by-columns - tiles = _generate_snake_by_columns( - num_columns, num_rows, tile_size_x, tile_size_y, - overlap_percentage, overlap_percentage, order, naming_format - ) - - # Build metadata - metadata = { - "base_dir": base_dir, - "scan_resolution": [0.01, 0.01] - } - - # Add overlap to metadata if specified - if overlap_percentage > 0.0: - metadata["tile_overlap"] = overlap_percentage - - config = { - "metadata": metadata, - "tiles": tiles - } - - # Write to YAML file - with open(output_file, 'w') as f: - yaml.dump(config, f, default_flow_style=False, indent=2, allow_unicode=True) - - print(f"Generated tile configuration with {len(tiles)} tiles") - print(f"Grid type: {grid_type}, Order: {order}") - if overlap_percentage > 0.0: - print(f"Overlap: {overlap_percentage * 100:.1f}%") - print(f"Configuration written to: {output_file}") - print(f"\nFirst few tiles:") - for tile in tiles[:5]: - print(f" Tile {tile['tile_number']}: x={tile['x']}, y={tile['y']}, file={tile['filepath']}") - print(f"\nLast few tiles:") - for tile in tiles[-5:]: - print(f" Tile {tile['tile_number']}: x={tile['x']}, y={tile['y']}, file={tile['filepath']}") - - -if __name__ == "__main__": - import argparse - - parser = argparse.ArgumentParser( - description="Generate tile configuration YAML file for Grid/Collection Stitching", - formatter_class=argparse.RawDescriptionHelpFormatter, - epilog=""" -Grid Types: - row-by-row - Images arranged in a grid, one line after the other - column-by-column - Images arranged in a grid, one column after the other - snake-by-rows - Images arranged in a grid, snaking across rows - snake-by-columns - Images arranged in a grid, snaking down columns (default) - -Order Directions: - For row-by-row and snake-by-rows: - right-down - Start top-left, go right (default for row-by-row) - left-down - Start top-right, go left - right-up - Start bottom-left, go right - left-up - Start bottom-right, go left - - For column-by-column and snake-by-columns: - down-right - Start top-left, go down (default for snake-by-columns) - down-left - Start top-right, go down - up-right - Start bottom-left, go up - up-left - Start bottom-right, go up - """ - ) - parser.add_argument("--columns", type=int, default=20, help="Number of columns (default: 20)") - parser.add_argument("--rows", type=int, default=28, help="Number of rows (default: 28)") - parser.add_argument("--tile-size-x", type=int, default=280, - help="Tile size in x direction (pixels, default: 280)") - parser.add_argument("--tile-size-y", type=int, default=280, - help="Tile size in y direction (pixels, default: 280)") - parser.add_argument("--tile-size", type=int, default=None, - help="Tile size in both x and y directions (pixels, overrides --tile-size-x and --tile-size-y)") - parser.add_argument("--base-dir", type=str, - default="/autofs/space/zircon_007/users/psoct-pipeline/sub-I80", - help="Base directory path") - parser.add_argument("--naming-format", type=str, - default="mosaic_001_tile_{tile_number:04d}_mip.nii", - help="Format string for tile filenames. Use {tile_number} or {tile_number:04d} " - "for tile number substitution (default: mosaic_001_tile_{tile_number:04d}_mip.nii)") - parser.add_argument("--output", type=str, default="tile_config.yaml", - help="Output YAML file path (default: tile_config.yaml)") - parser.add_argument("--grid-type", type=str, default="snake-by-columns", - choices=["row-by-row", "column-by-column", "snake-by-rows", "snake-by-columns"], - help="Grid type (default: snake-by-columns)") - parser.add_argument("--order", type=str, default=None, - help="Order direction. Defaults to 'right-down' for row-by-row/snake-by-rows, " - "'down-right' for column-by-column/snake-by-columns") - parser.add_argument("--overlap-percentage", type=float, default=0.0, - help="Overlap percentage (0.0-1.0) that affects tile spacing (default: 0.0)") - - args = parser.parse_args() - - # Handle --tile-size as a convenience option that sets both x and y - tile_size_x = args.tile_size if args.tile_size is not None else args.tile_size_x - tile_size_y = args.tile_size if args.tile_size is not None else args.tile_size_y - - # Set default order based on grid_type if not specified - if args.order is None: - if args.grid_type in ["row-by-row", "snake-by-rows"]: - args.order = "right-down" - else: # column-by-column or snake-by-columns - args.order = "down-right" - - # Validate overlap_percentage - if not 0.0 <= args.overlap_percentage <= 1.0: - parser.error("--overlap-percentage must be between 0.0 and 1.0") - - generate_tile_config( - num_columns=args.columns, - num_rows=args.rows, - tile_size_x=tile_size_x, - tile_size_y=tile_size_y, - base_dir=args.base_dir, - naming_format=args.naming_format, - output_file=args.output, - grid_type=args.grid_type, - order=args.order, - overlap_percentage=args.overlap_percentage - ) From 08c878830ff4a8f29f1d03e7c9580bd27879942b Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Tue, 27 Jan 2026 15:36:30 -0500 Subject: [PATCH 105/133] chore: update test markers and options in pyproject.toml; remove working-directory from CI tests --- .github/workflows/ci.yml | 1 - pyproject.toml | 5 +++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a1222a63..ee30ac2b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -37,4 +37,3 @@ jobs: run: poetry install --with dev --extras all - name: Run the automated tests run: poetry run pytest -v - working-directory: ./tests diff --git a/pyproject.toml b/pyproject.toml index 22a80acb..43a2d9cf 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -75,6 +75,11 @@ pythonpath = [ testpaths = [ "tests" ] +markers = [ + "heavy: marks tests as slow or data-intensive", + "golden: regenerate golden Zarr archives" +] +addopts = "-m 'not heavy and not golden'" [tool.mypy] ignore_missing_imports = true From 18ae7cc72229ecfc04da2fa23b4ba3e17e644801 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Tue, 27 Jan 2026 16:43:56 -0500 Subject: [PATCH 106/133] refactor: move lsm data fixture to be shared between files --- tests/conftest.py | 110 +++++++++++++++++++++++++++++++++++++++ tests/test_lsm_spool.py | 111 +--------------------------------------- 2 files changed, 111 insertions(+), 110 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index a116eaeb..0f2b63d5 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,7 +1,10 @@ +import os import subprocess from pathlib import Path +import numpy as np import pytest +import skimage DOWNLOAD_CMD = [ "dandi", @@ -36,3 +39,110 @@ def driver(request): @pytest.fixture(scope="module", params=[2, 3]) def zarr_version(request): return request.param + + +@pytest.fixture +def spool_dat(tmp_path): + brain = skimage.data.brain() + brain = brain.reshape(10, 4, 64, 256) + for z in range(1, 11): + for y in range(1, 4): + out_path = tmp_path / f"test_run{y:02d}_y{y:02d}_z{z:02d}_HR" + image = brain[z - y, y - 1][None, ...] + + write_zyla_spool_set(image, out_path, images_per_file=128) + + return tmp_path + + +def write_zyla_spool_set( + image: np.ndarray, + spool_set_path: str, + *, + pixel_encoding: str = "Mono16", + images_per_file: int = None, +): + """ + Given `image` of shape (numDepths, numColumns, numFrames), + create a Zyla‑compatible spool directory at `spool_set_path` + such that SpoolSetInterpreter(...).assemble_cropped() == image. + + Parameters + ---------- + image : np.ndarray + 3D array with shape (numDepths, numColumns, numFrames). Must be dtype uint16 if + pixel_encoding='Mono16' (or uint8 if 'Mono8'). + spool_set_path : str + Path to the directory to create. Will be mkdir'd if necessary. + pixel_encoding : {'Mono16','Mono8'} + Selects dtype and controls AOIStride = numColumns * itemsize. + images_per_file : int, optional + How many frames to pack into each spool file. Defaults to all frames in one + file. + """ + numDepths, numColumns, numFrames = image.shape + if images_per_file is None: + images_per_file = numFrames + if pixel_encoding == "Mono16": + dtype = np.uint16 + elif pixel_encoding == "Mono8": + dtype = np.uint8 + else: + raise ValueError("pixel_encoding must be 'Mono16' or 'Mono8'") + if image.dtype != dtype: + raise ValueError(f"Expected image.dtype={dtype}, got {image.dtype}") + + # compute padded rows: odd heights get +1, even get +2 + if numDepths % 2: + numRows = numDepths + 1 + else: + numRows = numDepths + 2 + + # stride in bytes + stride = numColumns * dtype().nbytes + # how many bytes per frame + frame_bytes = numRows * numColumns * dtype().nbytes + + # make directory + os.makedirs(spool_set_path, exist_ok=True) + + # marker for format detection + open(os.path.join(spool_set_path, "Spooled files.sifx"), "wb").close() + + # write acquisitionmetadata.ini + ini = f""" +[data] +AOIHeight = {numDepths} +AOIWidth = {numColumns} +AOIStride = {stride} +PixelEncoding = {pixel_encoding} +ImageSizeBytes = {frame_bytes} + +[multiimage] +ImagesPerFile = {images_per_file} +""" + with open( + os.path.join(spool_set_path, "acquisitionmetadata.ini"), "w", encoding="utf-8" + ) as f: + f.write(ini) + + # split into as many spool files as needed + n_files = (numFrames + images_per_file - 1) // images_per_file + for file_idx in range(n_files): + start_f = file_idx * images_per_file + end_f = min(start_f + images_per_file, numFrames) + this_count = end_f - start_f + + # prepare buffer: shape (this_count, numRows, numColumns) + buf = np.zeros((this_count, numRows, numColumns), dtype=dtype) + # fill the real depths into row 0..numDepths-1 + # image has shape (numDepths, numColumns, numFrames) + # buf[f, d, c] = image[d, c, f] + for f in range(this_count): + buf[f, :numDepths, :] = image[:, :, start_f + f] + + # name = reversed zero‑padded index + "spool.dat" + rev = str(file_idx).zfill(10)[::-1] + fn = f"{rev}spool.dat" + with open(os.path.join(spool_set_path, fn), "wb") as f: + f.write(buf.tobytes()) diff --git a/tests/test_lsm_spool.py b/tests/test_lsm_spool.py index 875fcd88..47a773b7 100644 --- a/tests/test_lsm_spool.py +++ b/tests/test_lsm_spool.py @@ -1,123 +1,14 @@ -import os import shutil from pathlib import Path -import numpy as np import pytest -import skimage import zarr + from utils.compare_file import assert_zarr_equal from linc_convert.modalities.lsm import spool -@pytest.fixture -def spool_dat(tmp_path): - brain = skimage.data.brain() - brain = brain.reshape(10, 4, 64, 256) - for z in range(1, 11): - for y in range(1, 4): - out_path = tmp_path / f"test_run{y:02d}_y{y:02d}_z{z:02d}_HR" - image = brain[z - y, y - 1][None, ...] - - write_zyla_spool_set(image, out_path, images_per_file=128) - - return tmp_path - - -def write_zyla_spool_set( - image: np.ndarray, - spool_set_path: str, - *, - pixel_encoding: str = "Mono16", - images_per_file: int = None, -): - """ - Given `image` of shape (numDepths, numColumns, numFrames), - create a Zyla‑compatible spool directory at `spool_set_path` - such that SpoolSetInterpreter(...).assemble_cropped() == image. - - Parameters - ---------- - image : np.ndarray - 3D array with shape (numDepths, numColumns, numFrames). Must be dtype uint16 if - pixel_encoding='Mono16' (or uint8 if 'Mono8'). - spool_set_path : str - Path to the directory to create. Will be mkdir'd if necessary. - pixel_encoding : {'Mono16','Mono8'} - Selects dtype and controls AOIStride = numColumns * itemsize. - images_per_file : int, optional - How many frames to pack into each spool file. Defaults to all frames in one - file. - """ - numDepths, numColumns, numFrames = image.shape - if images_per_file is None: - images_per_file = numFrames - if pixel_encoding == "Mono16": - dtype = np.uint16 - elif pixel_encoding == "Mono8": - dtype = np.uint8 - else: - raise ValueError("pixel_encoding must be 'Mono16' or 'Mono8'") - if image.dtype != dtype: - raise ValueError(f"Expected image.dtype={dtype}, got {image.dtype}") - - # compute padded rows: odd heights get +1, even get +2 - if numDepths % 2: - numRows = numDepths + 1 - else: - numRows = numDepths + 2 - - # stride in bytes - stride = numColumns * dtype().nbytes - # how many bytes per frame - frame_bytes = numRows * numColumns * dtype().nbytes - - # make directory - os.makedirs(spool_set_path, exist_ok=True) - - # marker for format detection - open(os.path.join(spool_set_path, "Spooled files.sifx"), "wb").close() - - # write acquisitionmetadata.ini - ini = f""" -[data] -AOIHeight = {numDepths} -AOIWidth = {numColumns} -AOIStride = {stride} -PixelEncoding = {pixel_encoding} -ImageSizeBytes = {frame_bytes} - -[multiimage] -ImagesPerFile = {images_per_file} -""" - with open( - os.path.join(spool_set_path, "acquisitionmetadata.ini"), "w", encoding="utf-8" - ) as f: - f.write(ini) - - # split into as many spool files as needed - n_files = (numFrames + images_per_file - 1) // images_per_file - for file_idx in range(n_files): - start_f = file_idx * images_per_file - end_f = min(start_f + images_per_file, numFrames) - this_count = end_f - start_f - - # prepare buffer: shape (this_count, numRows, numColumns) - buf = np.zeros((this_count, numRows, numColumns), dtype=dtype) - # fill the real depths into row 0..numDepths-1 - # image has shape (numDepths, numColumns, numFrames) - # buf[f, d, c] = image[d, c, f] - for f in range(this_count): - buf[f, :numDepths, :] = image[:, :, start_f + f] - - # name = reversed zero‑padded index + "spool.dat" - rev = str(file_idx).zfill(10)[::-1] - fn = f"{rev}spool.dat" - with open(os.path.join(spool_set_path, fn), "wb") as f: - f.write(buf.tobytes()) - - def test_lsm_spool_convert(tmp_path, spool_dat, zarr_version): expected_zarr = f"data/lsm_spool_zarr{zarr_version}.nii.zarr.zip" output = tmp_path / "spool.nii.zarr" From 3460dfa52b2016f381c3b324cbe57e3748269ceb Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Tue, 27 Jan 2026 16:45:16 -0500 Subject: [PATCH 107/133] chore: update dependencies in poetry.lock and pyproject.toml; add scikit-image and pooch --- .github/workflows/ci.yml | 1 + poetry.lock | 1793 ++++++++++++++++++++++++++++++++++---- pyproject.toml | 2 + 3 files changed, 1640 insertions(+), 156 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ee30ac2b..4049340b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -37,3 +37,4 @@ jobs: run: poetry install --with dev --extras all - name: Run the automated tests run: poetry run pytest -v + working-directory: tests diff --git a/poetry.lock b/poetry.lock index 91792d60..53ef7cae 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,14 +1,4 @@ -# This file is automatically @generated by Poetry 1.8.4 and should not be changed by hand. - -[[package]] -name = "asciitree" -version = "0.3.3" -description = "Draws ASCII trees." -optional = false -python-versions = "*" -files = [ - {file = "asciitree-0.3.3.tar.gz", hash = "sha256:4aa4b9b649f85e3fcb343363d97564aa1fb62e249677f2e18a96765145cc0f6e"}, -] +# This file is automatically @generated by Poetry 2.3.1 and should not be changed by hand. [[package]] name = "attrs" @@ -16,18 +6,129 @@ version = "24.2.0" description = "Classes Without Boilerplate" optional = false python-versions = ">=3.7" +groups = ["main"] files = [ {file = "attrs-24.2.0-py3-none-any.whl", hash = "sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2"}, {file = "attrs-24.2.0.tar.gz", hash = "sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346"}, ] [package.extras] -benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +benchmark = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\"", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\"", "pytest-xdist[psutil]"] +cov = ["cloudpickle ; platform_python_implementation == \"CPython\"", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\"", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\"", "pytest-xdist[psutil]"] +dev = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\"", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\"", "pytest-xdist[psutil]"] docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"] -tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] +tests = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\"", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\"", "pytest-xdist[psutil]"] +tests-mypy = ["mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\"", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\""] + +[[package]] +name = "certifi" +version = "2026.1.4" +description = "Python package for providing Mozilla's CA Bundle." +optional = false +python-versions = ">=3.7" +groups = ["dev"] +files = [ + {file = "certifi-2026.1.4-py3-none-any.whl", hash = "sha256:9943707519e4add1115f44c2bc244f782c0249876bf51b6599fee1ffbedd685c"}, + {file = "certifi-2026.1.4.tar.gz", hash = "sha256:ac726dd470482006e014ad384921ed6438c457018f4b3d204aea4281258b2120"}, +] + +[[package]] +name = "cffi" +version = "2.0.0" +description = "Foreign Function Interface for Python calling C code." +optional = true +python-versions = ">=3.9" +groups = ["main"] +markers = "extra == \"wk\" or extra == \"all\"" +files = [ + {file = "cffi-2.0.0-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:0cf2d91ecc3fcc0625c2c530fe004f82c110405f101548512cce44322fa8ac44"}, + {file = "cffi-2.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f73b96c41e3b2adedc34a7356e64c8eb96e03a3782b535e043a986276ce12a49"}, + {file = "cffi-2.0.0-cp310-cp310-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:53f77cbe57044e88bbd5ed26ac1d0514d2acf0591dd6bb02a3ae37f76811b80c"}, + {file = "cffi-2.0.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:3e837e369566884707ddaf85fc1744b47575005c0a229de3327f8f9a20f4efeb"}, + {file = "cffi-2.0.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:5eda85d6d1879e692d546a078b44251cdd08dd1cfb98dfb77b670c97cee49ea0"}, + {file = "cffi-2.0.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:9332088d75dc3241c702d852d4671613136d90fa6881da7d770a483fd05248b4"}, + {file = "cffi-2.0.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fc7de24befaeae77ba923797c7c87834c73648a05a4bde34b3b7e5588973a453"}, + {file = "cffi-2.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:cf364028c016c03078a23b503f02058f1814320a56ad535686f90565636a9495"}, + {file = "cffi-2.0.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e11e82b744887154b182fd3e7e8512418446501191994dbf9c9fc1f32cc8efd5"}, + {file = "cffi-2.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8ea985900c5c95ce9db1745f7933eeef5d314f0565b27625d9a10ec9881e1bfb"}, + {file = "cffi-2.0.0-cp310-cp310-win32.whl", hash = "sha256:1f72fb8906754ac8a2cc3f9f5aaa298070652a0ffae577e0ea9bd480dc3c931a"}, + {file = "cffi-2.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:b18a3ed7d5b3bd8d9ef7a8cb226502c6bf8308df1525e1cc676c3680e7176739"}, + {file = "cffi-2.0.0-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:b4c854ef3adc177950a8dfc81a86f5115d2abd545751a304c5bcf2c2c7283cfe"}, + {file = "cffi-2.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2de9a304e27f7596cd03d16f1b7c72219bd944e99cc52b84d0145aefb07cbd3c"}, + {file = "cffi-2.0.0-cp311-cp311-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:baf5215e0ab74c16e2dd324e8ec067ef59e41125d3eade2b863d294fd5035c92"}, + {file = "cffi-2.0.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:730cacb21e1bdff3ce90babf007d0a0917cc3e6492f336c2f0134101e0944f93"}, + {file = "cffi-2.0.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:6824f87845e3396029f3820c206e459ccc91760e8fa24422f8b0c3d1731cbec5"}, + {file = "cffi-2.0.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:9de40a7b0323d889cf8d23d1ef214f565ab154443c42737dfe52ff82cf857664"}, + {file = "cffi-2.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8941aaadaf67246224cee8c3803777eed332a19d909b47e29c9842ef1e79ac26"}, + {file = "cffi-2.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:a05d0c237b3349096d3981b727493e22147f934b20f6f125a3eba8f994bec4a9"}, + {file = "cffi-2.0.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:94698a9c5f91f9d138526b48fe26a199609544591f859c870d477351dc7b2414"}, + {file = "cffi-2.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:5fed36fccc0612a53f1d4d9a816b50a36702c28a2aa880cb8a122b3466638743"}, + {file = "cffi-2.0.0-cp311-cp311-win32.whl", hash = "sha256:c649e3a33450ec82378822b3dad03cc228b8f5963c0c12fc3b1e0ab940f768a5"}, + {file = "cffi-2.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:66f011380d0e49ed280c789fbd08ff0d40968ee7b665575489afa95c98196ab5"}, + {file = "cffi-2.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:c6638687455baf640e37344fe26d37c404db8b80d037c3d29f58fe8d1c3b194d"}, + {file = "cffi-2.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6d02d6655b0e54f54c4ef0b94eb6be0607b70853c45ce98bd278dc7de718be5d"}, + {file = "cffi-2.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8eca2a813c1cb7ad4fb74d368c2ffbbb4789d377ee5bb8df98373c2cc0dee76c"}, + {file = "cffi-2.0.0-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:21d1152871b019407d8ac3985f6775c079416c282e431a4da6afe7aefd2bccbe"}, + {file = "cffi-2.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b21e08af67b8a103c71a250401c78d5e0893beff75e28c53c98f4de42f774062"}, + {file = "cffi-2.0.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:1e3a615586f05fc4065a8b22b8152f0c1b00cdbc60596d187c2a74f9e3036e4e"}, + {file = "cffi-2.0.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:81afed14892743bbe14dacb9e36d9e0e504cd204e0b165062c488942b9718037"}, + {file = "cffi-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3e17ed538242334bf70832644a32a7aae3d83b57567f9fd60a26257e992b79ba"}, + {file = "cffi-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3925dd22fa2b7699ed2617149842d2e6adde22b262fcbfada50e3d195e4b3a94"}, + {file = "cffi-2.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2c8f814d84194c9ea681642fd164267891702542f028a15fc97d4674b6206187"}, + {file = "cffi-2.0.0-cp312-cp312-win32.whl", hash = "sha256:da902562c3e9c550df360bfa53c035b2f241fed6d9aef119048073680ace4a18"}, + {file = "cffi-2.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:da68248800ad6320861f129cd9c1bf96ca849a2771a59e0344e88681905916f5"}, + {file = "cffi-2.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:4671d9dd5ec934cb9a73e7ee9676f9362aba54f7f34910956b84d727b0d73fb6"}, + {file = "cffi-2.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:00bdf7acc5f795150faa6957054fbbca2439db2f775ce831222b66f192f03beb"}, + {file = "cffi-2.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:45d5e886156860dc35862657e1494b9bae8dfa63bf56796f2fb56e1679fc0bca"}, + {file = "cffi-2.0.0-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:07b271772c100085dd28b74fa0cd81c8fb1a3ba18b21e03d7c27f3436a10606b"}, + {file = "cffi-2.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d48a880098c96020b02d5a1f7d9251308510ce8858940e6fa99ece33f610838b"}, + {file = "cffi-2.0.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f93fd8e5c8c0a4aa1f424d6173f14a892044054871c771f8566e4008eaa359d2"}, + {file = "cffi-2.0.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:dd4f05f54a52fb558f1ba9f528228066954fee3ebe629fc1660d874d040ae5a3"}, + {file = "cffi-2.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c8d3b5532fc71b7a77c09192b4a5a200ea992702734a2e9279a37f2478236f26"}, + {file = "cffi-2.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d9b29c1f0ae438d5ee9acb31cadee00a58c46cc9c0b2f9038c6b0b3470877a8c"}, + {file = "cffi-2.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6d50360be4546678fc1b79ffe7a66265e28667840010348dd69a314145807a1b"}, + {file = "cffi-2.0.0-cp313-cp313-win32.whl", hash = "sha256:74a03b9698e198d47562765773b4a8309919089150a0bb17d829ad7b44b60d27"}, + {file = "cffi-2.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:19f705ada2530c1167abacb171925dd886168931e0a7b78f5bffcae5c6b5be75"}, + {file = "cffi-2.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:256f80b80ca3853f90c21b23ee78cd008713787b1b1e93eae9f3d6a7134abd91"}, + {file = "cffi-2.0.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fc33c5141b55ed366cfaad382df24fe7dcbc686de5be719b207bb248e3053dc5"}, + {file = "cffi-2.0.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c654de545946e0db659b3400168c9ad31b5d29593291482c43e3564effbcee13"}, + {file = "cffi-2.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:24b6f81f1983e6df8db3adc38562c83f7d4a0c36162885ec7f7b77c7dcbec97b"}, + {file = "cffi-2.0.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:12873ca6cb9b0f0d3a0da705d6086fe911591737a59f28b7936bdfed27c0d47c"}, + {file = "cffi-2.0.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:d9b97165e8aed9272a6bb17c01e3cc5871a594a446ebedc996e2397a1c1ea8ef"}, + {file = "cffi-2.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:afb8db5439b81cf9c9d0c80404b60c3cc9c3add93e114dcae767f1477cb53775"}, + {file = "cffi-2.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:737fe7d37e1a1bffe70bd5754ea763a62a066dc5913ca57e957824b72a85e205"}, + {file = "cffi-2.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:38100abb9d1b1435bc4cc340bb4489635dc2f0da7456590877030c9b3d40b0c1"}, + {file = "cffi-2.0.0-cp314-cp314-win32.whl", hash = "sha256:087067fa8953339c723661eda6b54bc98c5625757ea62e95eb4898ad5e776e9f"}, + {file = "cffi-2.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:203a48d1fb583fc7d78a4c6655692963b860a417c0528492a6bc21f1aaefab25"}, + {file = "cffi-2.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:dbd5c7a25a7cb98f5ca55d258b103a2054f859a46ae11aaf23134f9cc0d356ad"}, + {file = "cffi-2.0.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:9a67fc9e8eb39039280526379fb3a70023d77caec1852002b4da7e8b270c4dd9"}, + {file = "cffi-2.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7a66c7204d8869299919db4d5069a82f1561581af12b11b3c9f48c584eb8743d"}, + {file = "cffi-2.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7cc09976e8b56f8cebd752f7113ad07752461f48a58cbba644139015ac24954c"}, + {file = "cffi-2.0.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:92b68146a71df78564e4ef48af17551a5ddd142e5190cdf2c5624d0c3ff5b2e8"}, + {file = "cffi-2.0.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:b1e74d11748e7e98e2f426ab176d4ed720a64412b6a15054378afdb71e0f37dc"}, + {file = "cffi-2.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:28a3a209b96630bca57cce802da70c266eb08c6e97e5afd61a75611ee6c64592"}, + {file = "cffi-2.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:7553fb2090d71822f02c629afe6042c299edf91ba1bf94951165613553984512"}, + {file = "cffi-2.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:6c6c373cfc5c83a975506110d17457138c8c63016b563cc9ed6e056a82f13ce4"}, + {file = "cffi-2.0.0-cp314-cp314t-win32.whl", hash = "sha256:1fc9ea04857caf665289b7a75923f2c6ed559b8298a1b8c49e59f7dd95c8481e"}, + {file = "cffi-2.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:d68b6cef7827e8641e8ef16f4494edda8b36104d79773a334beaa1e3521430f6"}, + {file = "cffi-2.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0a1527a803f0a659de1af2e1fd700213caba79377e27e4693648c2923da066f9"}, + {file = "cffi-2.0.0-cp39-cp39-macosx_10_13_x86_64.whl", hash = "sha256:fe562eb1a64e67dd297ccc4f5addea2501664954f2692b69a76449ec7913ecbf"}, + {file = "cffi-2.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:de8dad4425a6ca6e4e5e297b27b5c824ecc7581910bf9aee86cb6835e6812aa7"}, + {file = "cffi-2.0.0-cp39-cp39-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:4647afc2f90d1ddd33441e5b0e85b16b12ddec4fca55f0d9671fef036ecca27c"}, + {file = "cffi-2.0.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:3f4d46d8b35698056ec29bca21546e1551a205058ae1a181d871e278b0b28165"}, + {file = "cffi-2.0.0-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:e6e73b9e02893c764e7e8d5bb5ce277f1a009cd5243f8228f75f842bf937c534"}, + {file = "cffi-2.0.0-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:cb527a79772e5ef98fb1d700678fe031e353e765d1ca2d409c92263c6d43e09f"}, + {file = "cffi-2.0.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:61d028e90346df14fedc3d1e5441df818d095f3b87d286825dfcbd6459b7ef63"}, + {file = "cffi-2.0.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0f6084a0ea23d05d20c3edcda20c3d006f9b6f3fefeac38f59262e10cef47ee2"}, + {file = "cffi-2.0.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1cd13c99ce269b3ed80b417dcd591415d3372bcac067009b6e0f59c7d4015e65"}, + {file = "cffi-2.0.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:89472c9762729b5ae1ad974b777416bfda4ac5642423fa93bd57a09204712322"}, + {file = "cffi-2.0.0-cp39-cp39-win32.whl", hash = "sha256:2081580ebb843f759b9f617314a24ed5738c51d2aee65d31e02f6f7a2b97707a"}, + {file = "cffi-2.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:b882b3df248017dba09d6b16defe9b5c407fe32fc7c65a9c69798e6175601be9"}, + {file = "cffi-2.0.0.tar.gz", hash = "sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529"}, +] + +[package.dependencies] +pycparser = {version = "*", markers = "implementation_name != \"PyPy\""} [[package]] name = "cfgv" @@ -35,21 +136,174 @@ version = "3.4.0" description = "Validate configuration and produce human readable error messages." optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9"}, {file = "cfgv-3.4.0.tar.gz", hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560"}, ] +[[package]] +name = "charset-normalizer" +version = "3.4.4" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +optional = false +python-versions = ">=3.7" +groups = ["dev"] +files = [ + {file = "charset_normalizer-3.4.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e824f1492727fa856dd6eda4f7cee25f8518a12f3c4a56a74e8095695089cf6d"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4bd5d4137d500351a30687c2d3971758aac9a19208fc110ccb9d7188fbe709e8"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:027f6de494925c0ab2a55eab46ae5129951638a49a34d87f4c3eda90f696b4ad"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f820802628d2694cb7e56db99213f930856014862f3fd943d290ea8438d07ca8"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:798d75d81754988d2565bff1b97ba5a44411867c0cf32b77a7e8f8d84796b10d"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d1bb833febdff5c8927f922386db610b49db6e0d4f4ee29601d71e7c2694313"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:9cd98cdc06614a2f768d2b7286d66805f94c48cde050acdbbb7db2600ab3197e"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:077fbb858e903c73f6c9db43374fd213b0b6a778106bc7032446a8e8b5b38b93"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:244bfb999c71b35de57821b8ea746b24e863398194a4014e4c76adc2bbdfeff0"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:64b55f9dce520635f018f907ff1b0df1fdc31f2795a922fb49dd14fbcdf48c84"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:faa3a41b2b66b6e50f84ae4a68c64fcd0c44355741c6374813a800cd6695db9e"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:6515f3182dbe4ea06ced2d9e8666d97b46ef4c75e326b79bb624110f122551db"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cc00f04ed596e9dc0da42ed17ac5e596c6ccba999ba6bd92b0e0aef2f170f2d6"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-win32.whl", hash = "sha256:f34be2938726fc13801220747472850852fe6b1ea75869a048d6f896838c896f"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-win_amd64.whl", hash = "sha256:a61900df84c667873b292c3de315a786dd8dac506704dea57bc957bd31e22c7d"}, + {file = "charset_normalizer-3.4.4-cp310-cp310-win_arm64.whl", hash = "sha256:cead0978fc57397645f12578bfd2d5ea9138ea0fac82b2f63f7f7c6877986a69"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6e1fcf0720908f200cd21aa4e6750a48ff6ce4afe7ff5a79a90d5ed8a08296f8"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5f819d5fe9234f9f82d75bdfa9aef3a3d72c4d24a6e57aeaebba32a704553aa0"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a59cb51917aa591b1c4e6a43c132f0cdc3c76dbad6155df4e28ee626cc77a0a3"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8ef3c867360f88ac904fd3f5e1f902f13307af9052646963ee08ff4f131adafc"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d9e45d7faa48ee908174d8fe84854479ef838fc6a705c9315372eacbc2f02897"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:840c25fb618a231545cbab0564a799f101b63b9901f2569faecd6b222ac72381"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ca5862d5b3928c4940729dacc329aa9102900382fea192fc5e52eb69d6093815"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d9c7f57c3d666a53421049053eaacdd14bbd0a528e2186fcb2e672effd053bb0"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:277e970e750505ed74c832b4bf75dac7476262ee2a013f5574dd49075879e161"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:31fd66405eaf47bb62e8cd575dc621c56c668f27d46a61d975a249930dd5e2a4"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:0d3d8f15c07f86e9ff82319b3d9ef6f4bf907608f53fe9d92b28ea9ae3d1fd89"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:9f7fcd74d410a36883701fafa2482a6af2ff5ba96b9a620e9e0721e28ead5569"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ebf3e58c7ec8a8bed6d66a75d7fb37b55e5015b03ceae72a8e7c74495551e224"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-win32.whl", hash = "sha256:eecbc200c7fd5ddb9a7f16c7decb07b566c29fa2161a16cf67b8d068bd21690a"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:5ae497466c7901d54b639cf42d5b8c1b6a4fead55215500d2f486d34db48d016"}, + {file = "charset_normalizer-3.4.4-cp311-cp311-win_arm64.whl", hash = "sha256:65e2befcd84bc6f37095f5961e68a6f077bf44946771354a28ad434c2cce0ae1"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0a98e6759f854bd25a58a73fa88833fba3b7c491169f86ce1180c948ab3fd394"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b5b290ccc2a263e8d185130284f8501e3e36c5e02750fc6b6bdeb2e9e96f1e25"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74bb723680f9f7a6234dcf67aea57e708ec1fbdf5699fb91dfd6f511b0a320ef"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f1e34719c6ed0b92f418c7c780480b26b5d9c50349e9a9af7d76bf757530350d"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2437418e20515acec67d86e12bf70056a33abdacb5cb1655042f6538d6b085a8"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:11d694519d7f29d6cd09f6ac70028dba10f92f6cdd059096db198c283794ac86"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ac1c4a689edcc530fc9d9aa11f5774b9e2f33f9a0c6a57864e90908f5208d30a"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:21d142cc6c0ec30d2efee5068ca36c128a30b0f2c53c1c07bd78cb6bc1d3be5f"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:5dbe56a36425d26d6cfb40ce79c314a2e4dd6211d51d6d2191c00bed34f354cc"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5bfbb1b9acf3334612667b61bd3002196fe2a1eb4dd74d247e0f2a4d50ec9bbf"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:d055ec1e26e441f6187acf818b73564e6e6282709e9bcb5b63f5b23068356a15"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:af2d8c67d8e573d6de5bc30cdb27e9b95e49115cd9baad5ddbd1a6207aaa82a9"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:780236ac706e66881f3b7f2f32dfe90507a09e67d1d454c762cf642e6e1586e0"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-win32.whl", hash = "sha256:5833d2c39d8896e4e19b689ffc198f08ea58116bee26dea51e362ecc7cd3ed26"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:a79cfe37875f822425b89a82333404539ae63dbdddf97f84dcbc3d339aae9525"}, + {file = "charset_normalizer-3.4.4-cp312-cp312-win_arm64.whl", hash = "sha256:376bec83a63b8021bb5c8ea75e21c4ccb86e7e45ca4eb81146091b56599b80c3"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e1f185f86a6f3403aa2420e815904c67b2f9ebc443f045edd0de921108345794"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b39f987ae8ccdf0d2642338faf2abb1862340facc796048b604ef14919e55ed"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3162d5d8ce1bb98dd51af660f2121c55d0fa541b46dff7bb9b9f86ea1d87de72"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:81d5eb2a312700f4ecaa977a8235b634ce853200e828fbadf3a9c50bab278328"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5bd2293095d766545ec1a8f612559f6b40abc0eb18bb2f5d1171872d34036ede"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a8a8b89589086a25749f471e6a900d3f662d1d3b6e2e59dcecf787b1cc3a1894"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc7637e2f80d8530ee4a78e878bce464f70087ce73cf7c1caf142416923b98f1"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f8bf04158c6b607d747e93949aa60618b61312fe647a6369f88ce2ff16043490"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:554af85e960429cf30784dd47447d5125aaa3b99a6f0683589dbd27e2f45da44"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:74018750915ee7ad843a774364e13a3db91682f26142baddf775342c3f5b1133"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c0463276121fdee9c49b98908b3a89c39be45d86d1dbaa22957e38f6321d4ce3"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:362d61fd13843997c1c446760ef36f240cf81d3ebf74ac62652aebaf7838561e"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9a26f18905b8dd5d685d6d07b0cdf98a79f3c7a918906af7cc143ea2e164c8bc"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-win32.whl", hash = "sha256:9b35f4c90079ff2e2edc5b26c0c77925e5d2d255c42c74fdb70fb49b172726ac"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-win_amd64.whl", hash = "sha256:b435cba5f4f750aa6c0a0d92c541fb79f69a387c91e61f1795227e4ed9cece14"}, + {file = "charset_normalizer-3.4.4-cp313-cp313-win_arm64.whl", hash = "sha256:542d2cee80be6f80247095cc36c418f7bddd14f4a6de45af91dfad36d817bba2"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:da3326d9e65ef63a817ecbcc0df6e94463713b754fe293eaa03da99befb9a5bd"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8af65f14dc14a79b924524b1e7fffe304517b2bff5a58bf64f30b98bbc5079eb"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74664978bb272435107de04e36db5a9735e78232b85b77d45cfb38f758efd33e"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:752944c7ffbfdd10c074dc58ec2d5a8a4cd9493b314d367c14d24c17684ddd14"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d1f13550535ad8cff21b8d757a3257963e951d96e20ec82ab44bc64aeb62a191"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ecaae4149d99b1c9e7b88bb03e3221956f68fd6d50be2ef061b2381b61d20838"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:cb6254dc36b47a990e59e1068afacdcd02958bdcce30bb50cc1700a8b9d624a6"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c8ae8a0f02f57a6e61203a31428fa1d677cbe50c93622b4149d5c0f319c1d19e"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:47cc91b2f4dd2833fddaedd2893006b0106129d4b94fdb6af1f4ce5a9965577c"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:82004af6c302b5d3ab2cfc4cc5f29db16123b1a8417f2e25f9066f91d4411090"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:2b7d8f6c26245217bd2ad053761201e9f9680f8ce52f0fcd8d0755aeae5b2152"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:799a7a5e4fb2d5898c60b640fd4981d6a25f1c11790935a44ce38c54e985f828"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:99ae2cffebb06e6c22bdc25801d7b30f503cc87dbd283479e7b606f70aff57ec"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-win32.whl", hash = "sha256:f9d332f8c2a2fcbffe1378594431458ddbef721c1769d78e2cbc06280d8155f9"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-win_amd64.whl", hash = "sha256:8a6562c3700cce886c5be75ade4a5db4214fda19fede41d9792d100288d8f94c"}, + {file = "charset_normalizer-3.4.4-cp314-cp314-win_arm64.whl", hash = "sha256:de00632ca48df9daf77a2c65a484531649261ec9f25489917f09e455cb09ddb2"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ce8a0633f41a967713a59c4139d29110c07e826d131a316b50ce11b1d79b4f84"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eaabd426fe94daf8fd157c32e571c85cb12e66692f15516a83a03264b08d06c3"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c4ef880e27901b6cc782f1b95f82da9313c0eb95c3af699103088fa0ac3ce9ac"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2aaba3b0819274cc41757a1da876f810a3e4d7b6eb25699253a4effef9e8e4af"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:778d2e08eda00f4256d7f672ca9fef386071c9202f5e4607920b86d7803387f2"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f155a433c2ec037d4e8df17d18922c3a0d9b3232a396690f17175d2946f0218d"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a8bf8d0f749c5757af2142fe7903a9df1d2e8aa3841559b2bad34b08d0e2bcf3"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:194f08cbb32dc406d6e1aea671a68be0823673db2832b38405deba2fb0d88f63"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-musllinux_1_2_armv7l.whl", hash = "sha256:6aee717dcfead04c6eb1ce3bd29ac1e22663cdea57f943c87d1eab9a025438d7"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:cd4b7ca9984e5e7985c12bc60a6f173f3c958eae74f3ef6624bb6b26e2abbae4"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-musllinux_1_2_riscv64.whl", hash = "sha256:b7cf1017d601aa35e6bb650b6ad28652c9cd78ee6caff19f3c28d03e1c80acbf"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:e912091979546adf63357d7e2ccff9b44f026c075aeaf25a52d0e95ad2281074"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:5cb4d72eea50c8868f5288b7f7f33ed276118325c1dfd3957089f6b519e1382a"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-win32.whl", hash = "sha256:837c2ce8c5a65a2035be9b3569c684358dfbf109fd3b6969630a87535495ceaa"}, + {file = "charset_normalizer-3.4.4-cp38-cp38-win_amd64.whl", hash = "sha256:44c2a8734b333e0578090c4cd6b16f275e07aa6614ca8715e6c038e865e70576"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:a9768c477b9d7bd54bc0c86dbaebdec6f03306675526c9927c0e8a04e8f94af9"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1bee1e43c28aa63cb16e5c14e582580546b08e535299b8b6158a7c9c768a1f3d"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:fd44c878ea55ba351104cb93cc85e74916eb8fa440ca7903e57575e97394f608"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:0f04b14ffe5fdc8c4933862d8306109a2c51e0704acfa35d51598eb45a1e89fc"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:cd09d08005f958f370f539f186d10aec3377d55b9eeb0d796025d4886119d76e"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4fe7859a4e3e8457458e2ff592f15ccb02f3da787fcd31e0183879c3ad4692a1"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:fa09f53c465e532f4d3db095e0c55b615f010ad81803d383195b6b5ca6cbf5f3"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:7fa17817dc5625de8a027cb8b26d9fefa3ea28c8253929b8d6649e705d2835b6"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:5947809c8a2417be3267efc979c47d76a079758166f7d43ef5ae8e9f92751f88"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:4902828217069c3c5c71094537a8e623f5d097858ac6ca8252f7b4d10b7560f1"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-musllinux_1_2_riscv64.whl", hash = "sha256:7c308f7e26e4363d79df40ca5b2be1c6ba9f02bdbccfed5abddb7859a6ce72cf"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:2c9d3c380143a1fedbff95a312aa798578371eb29da42106a29019368a475318"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:cb01158d8b88ee68f15949894ccc6712278243d95f344770fa7593fa2d94410c"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-win32.whl", hash = "sha256:2677acec1a2f8ef614c6888b5b4ae4060cc184174a938ed4e8ef690e15d3e505"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-win_amd64.whl", hash = "sha256:f8e160feb2aed042cd657a72acc0b481212ed28b1b9a95c0cee1621b524e1966"}, + {file = "charset_normalizer-3.4.4-cp39-cp39-win_arm64.whl", hash = "sha256:b5d84d37db046c5ca74ee7bb47dd6cbc13f80665fdde3e8040bdd3fb015ecb50"}, + {file = "charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f"}, + {file = "charset_normalizer-3.4.4.tar.gz", hash = "sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a"}, +] + +[[package]] +name = "click" +version = "8.3.1" +description = "Composable command line interface toolkit" +optional = false +python-versions = ">=3.10" +groups = ["main"] +files = [ + {file = "click-8.3.1-py3-none-any.whl", hash = "sha256:981153a64e25f12d547d3426c367a4857371575ee7ad18df2a6183ab0545b2a6"}, + {file = "click-8.3.1.tar.gz", hash = "sha256:12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[[package]] +name = "cloudpickle" +version = "3.1.2" +description = "Pickler class to extend the standard pickle.Pickler functionality" +optional = false +python-versions = ">=3.8" +groups = ["main"] +files = [ + {file = "cloudpickle-3.1.2-py3-none-any.whl", hash = "sha256:9acb47f6afd73f60dc1df93bb801b472f05ff42fa6c84167d25cb206be1fbf4a"}, + {file = "cloudpickle-3.1.2.tar.gz", hash = "sha256:7fda9eb655c9c230dab534f1983763de5835249750e85fbcef43aaa30a9a2414"}, +] + [[package]] name = "colorama" version = "0.4.6" description = "Cross-platform colored terminal text." optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +groups = ["main", "dev"] files = [ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, ] +markers = {main = "platform_system == \"Windows\"", dev = "sys_platform == \"win32\""} [[package]] name = "coverage" @@ -57,6 +311,7 @@ version = "7.6.4" description = "Code coverage measurement for Python" optional = false python-versions = ">=3.9" +groups = ["dev"] files = [ {file = "coverage-7.6.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5f8ae553cba74085db385d489c7a792ad66f7f9ba2ee85bfa508aeb84cf0ba07"}, {file = "coverage-7.6.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8165b796df0bd42e10527a3f493c592ba494f16ef3c8b531288e3d0d72c1f6f0"}, @@ -122,21 +377,19 @@ files = [ {file = "coverage-7.6.4.tar.gz", hash = "sha256:29fc0f17b1d3fea332f8001d4558f8214af7f1d87a345f3a133c901d60347c73"}, ] -[package.dependencies] -tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.11.0a6\" and extra == \"toml\""} - [package.extras] -toml = ["tomli"] +toml = ["tomli ; python_full_version <= \"3.11.0a6\""] [[package]] name = "cyclopts" -version = "2.9.9" -description = "" +version = "3.24.0" +description = "Intuitive, easy CLIs based on type hints." optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" +groups = ["main"] files = [ - {file = "cyclopts-2.9.9-py3-none-any.whl", hash = "sha256:d0ce956c70f3070e5bc16824ecb5ebba155be45ef4aadbb78ac4753dd99367e3"}, - {file = "cyclopts-2.9.9.tar.gz", hash = "sha256:11d7bb59be253329ff49a1b9a634676c7ae708605d4975090783b99d081c1a0b"}, + {file = "cyclopts-3.24.0-py3-none-any.whl", hash = "sha256:809d04cde9108617106091140c3964ee6fceb33cecdd537f7ffa360bde13ed71"}, + {file = "cyclopts-3.24.0.tar.gz", hash = "sha256:de6964a041dfb3c57bf043b41e68c43548227a17de1bad246e3a0bfc5c4b7417"}, ] [package.dependencies] @@ -144,18 +397,77 @@ attrs = ">=23.1.0" docstring-parser = {version = ">=0.15", markers = "python_version < \"4.0\""} rich = ">=13.6.0" rich-rst = ">=1.3.1,<2.0.0" -typing-extensions = {version = ">=4.8.0", markers = "python_full_version >= \"3.8.0\" and python_full_version < \"4.0.0\""} [package.extras] -toml = ["tomli (>=2.0.0)"] +toml = ["tomli (>=2.0.0) ; python_version < \"3.11\""] +trio = ["trio (>=0.10.0)"] yaml = ["pyyaml (>=6.0.1)"] +[[package]] +name = "dask" +version = "2026.1.1" +description = "Parallel PyData with Task Scheduling" +optional = false +python-versions = ">=3.10" +groups = ["main"] +files = [ + {file = "dask-2026.1.1-py3-none-any.whl", hash = "sha256:146b0ef2918eb581e06139183a88801b4a8c52d7c37758a91f8c3b75c54b0e15"}, + {file = "dask-2026.1.1.tar.gz", hash = "sha256:12b1dbb0d6e92f287feb4076871600b2fba3a843d35ff214776ada5e9e7a1529"}, +] + +[package.dependencies] +click = ">=8.1" +cloudpickle = ">=3.0.0" +fsspec = ">=2021.9.0" +importlib_metadata = {version = ">=4.13.0", markers = "python_version < \"3.12\""} +numpy = {version = ">=1.24", optional = true, markers = "extra == \"array\""} +packaging = ">=20.0" +pandas = {version = ">=2.0", optional = true, markers = "extra == \"dataframe\""} +partd = ">=1.4.0" +pyarrow = {version = ">=14.0.1", optional = true, markers = "extra == \"dataframe\""} +pyyaml = ">=5.3.1" +toolz = ">=0.12.0" + +[package.extras] +array = ["numpy (>=1.24)"] +complete = ["dask[array,dataframe,diagnostics,distributed]", "lz4 (>=4.3.2)", "pyarrow (>=14.0.1)"] +dataframe = ["dask[array]", "pandas (>=2.0)", "pyarrow (>=14.0.1)"] +diagnostics = ["bokeh (>=3.1.0)", "jinja2 (>=2.10.3)"] +distributed = ["distributed (>=2026.1.1,<2026.1.2)"] +test = ["pandas[test]", "pre-commit", "pytest", "pytest-cov", "pytest-mock", "pytest-rerunfailures", "pytest-timeout", "pytest-xdist"] + +[[package]] +name = "dask-image" +version = "2025.11.0" +description = "Distributed image processing" +optional = true +python-versions = ">=3.9" +groups = ["main"] +markers = "extra == \"lsm\" or extra == \"all\"" +files = [ + {file = "dask_image-2025.11.0-py3-none-any.whl", hash = "sha256:4834ece8d7133f8cd7d4e672f7f5a598c9057e687b20f14f3121360e3e1690b4"}, + {file = "dask_image-2025.11.0.tar.gz", hash = "sha256:45cf1a9c3a8a1c143c75d43f1494e4fe0827564d3ec6efb93618fb04603ba0b3"}, +] + +[package.dependencies] +dask = {version = ">=2024.4.1", extras = ["array", "dataframe"]} +numpy = ">=1.18" +pandas = ">=2.0.0" +pims = ">=0.4.1" +scipy = ">=1.7.0" +tifffile = ">=2018.10.18" + +[package.extras] +gpu = ["cupy (>=9.0.0)"] +test = ["Flake8-pyproject", "build (>=1.2.1)", "coverage (>=7.2.1)", "flake8 (>=6.0.0)", "pytest (>=7.2.2)", "pytest-cov (>=4.0.0)", "pytest-flake8 (>=1.1.1)", "pytest-timeout (>=2.3.1)", "twine (>=3.1.1)"] + [[package]] name = "distlib" version = "0.3.9" description = "Distribution utilities" optional = false python-versions = "*" +groups = ["dev"] files = [ {file = "distlib-0.3.9-py2.py3-none-any.whl", hash = "sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87"}, {file = "distlib-0.3.9.tar.gz", hash = "sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403"}, @@ -167,6 +479,7 @@ version = "0.16" description = "Parse Python docstrings in reST, Google and Numpydoc format" optional = false python-versions = ">=3.6,<4.0" +groups = ["main"] files = [ {file = "docstring_parser-0.16-py3-none-any.whl", hash = "sha256:bf0a1387354d3691d102edef7ec124f219ef639982d096e26e3b60aeffa90637"}, {file = "docstring_parser-0.16.tar.gz", hash = "sha256:538beabd0af1e2db0146b6bd3caa526c35a34d61af9fd2887f3a8a27a739aa6e"}, @@ -178,35 +491,30 @@ version = "0.21.2" description = "Docutils -- Python Documentation Utilities" optional = false python-versions = ">=3.9" +groups = ["main"] files = [ {file = "docutils-0.21.2-py3-none-any.whl", hash = "sha256:dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2"}, {file = "docutils-0.21.2.tar.gz", hash = "sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f"}, ] [[package]] -name = "exceptiongroup" -version = "1.2.2" -description = "Backport of PEP 654 (exception groups)" +name = "donfig" +version = "0.8.1.post1" +description = "Python package for configuring a python package" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" +groups = ["main"] files = [ - {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, - {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, + {file = "donfig-0.8.1.post1-py3-none-any.whl", hash = "sha256:2a3175ce74a06109ff9307d90a230f81215cbac9a751f4d1c6194644b8204f9d"}, + {file = "donfig-0.8.1.post1.tar.gz", hash = "sha256:3bef3413a4c1c601b585e8d297256d0c1470ea012afa6e8461dc28bfb7c23f52"}, ] -[package.extras] -test = ["pytest (>=6)"] +[package.dependencies] +pyyaml = "*" -[[package]] -name = "fasteners" -version = "0.19" -description = "A python package that provides useful locks" -optional = false -python-versions = ">=3.6" -files = [ - {file = "fasteners-0.19-py3-none-any.whl", hash = "sha256:758819cb5d94cdedf4e836988b74de396ceacb8e2794d21f82d131fd9ee77237"}, - {file = "fasteners-0.19.tar.gz", hash = "sha256:b4f37c3ac52d8a445af3a66bce57b33b5e90b97c696b7b984f530cf8f0ded09c"}, -] +[package.extras] +docs = ["cloudpickle", "numpydoc", "pytest", "sphinx (>=4.0.0)"] +test = ["cloudpickle", "pytest"] [[package]] name = "filelock" @@ -214,6 +522,7 @@ version = "3.16.1" description = "A platform independent file lock." optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "filelock-3.16.1-py3-none-any.whl", hash = "sha256:2082e5703d51fbf98ea75855d9d5527e33d8ff23099bec374a134febee6946b0"}, {file = "filelock-3.16.1.tar.gz", hash = "sha256:c249fbfcd5db47e5e2d6d62198e565475ee65e4831e2561c8e313fa7eb961435"}, @@ -222,14 +531,56 @@ files = [ [package.extras] docs = ["furo (>=2024.8.6)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4.1)"] testing = ["covdefaults (>=2.3)", "coverage (>=7.6.1)", "diff-cover (>=9.2)", "pytest (>=8.3.3)", "pytest-asyncio (>=0.24)", "pytest-cov (>=5)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.26.4)"] -typing = ["typing-extensions (>=4.12.2)"] +typing = ["typing-extensions (>=4.12.2) ; python_version < \"3.11\""] + +[[package]] +name = "fsspec" +version = "2026.1.0" +description = "File-system specification" +optional = false +python-versions = ">=3.10" +groups = ["main"] +files = [ + {file = "fsspec-2026.1.0-py3-none-any.whl", hash = "sha256:cb76aa913c2285a3b49bdd5fc55b1d7c708d7208126b60f2eb8194fe1b4cbdcc"}, + {file = "fsspec-2026.1.0.tar.gz", hash = "sha256:e987cb0496a0d81bba3a9d1cee62922fb395e7d4c3b575e57f547953334fe07b"}, +] + +[package.extras] +abfs = ["adlfs"] +adl = ["adlfs"] +arrow = ["pyarrow (>=1)"] +dask = ["dask", "distributed"] +dev = ["pre-commit", "ruff (>=0.5)"] +doc = ["numpydoc", "sphinx", "sphinx-design", "sphinx-rtd-theme", "yarl"] +dropbox = ["dropbox", "dropboxdrivefs", "requests"] +full = ["adlfs", "aiohttp (!=4.0.0a0,!=4.0.0a1)", "dask", "distributed", "dropbox", "dropboxdrivefs", "fusepy", "gcsfs (>2024.2.0)", "libarchive-c", "ocifs", "panel", "paramiko", "pyarrow (>=1)", "pygit2", "requests", "s3fs (>2024.2.0)", "smbprotocol", "tqdm"] +fuse = ["fusepy"] +gcs = ["gcsfs"] +git = ["pygit2"] +github = ["requests"] +gs = ["gcsfs"] +gui = ["panel"] +hdfs = ["pyarrow (>=1)"] +http = ["aiohttp (!=4.0.0a0,!=4.0.0a1)"] +libarchive = ["libarchive-c"] +oci = ["ocifs"] +s3 = ["s3fs"] +sftp = ["paramiko"] +smb = ["smbprotocol"] +ssh = ["paramiko"] +test = ["aiohttp (!=4.0.0a0,!=4.0.0a1)", "numpy", "pytest", "pytest-asyncio (!=0.22.0)", "pytest-benchmark", "pytest-cov", "pytest-mock", "pytest-recording", "pytest-rerunfailures", "requests"] +test-downstream = ["aiobotocore (>=2.5.4,<3.0.0)", "dask[dataframe,test]", "moto[server] (>4,<5)", "pytest-timeout", "xarray"] +test-full = ["adlfs", "aiohttp (!=4.0.0a0,!=4.0.0a1)", "backports-zstd ; python_version < \"3.14\"", "cloudpickle", "dask", "distributed", "dropbox", "dropboxdrivefs", "fastparquet", "fusepy", "gcsfs", "jinja2", "kerchunk", "libarchive-c", "lz4", "notebook", "numpy", "ocifs", "pandas", "panel", "paramiko", "pyarrow", "pyarrow (>=1)", "pyftpdlib", "pygit2", "pytest", "pytest-asyncio (!=0.22.0)", "pytest-benchmark", "pytest-cov", "pytest-mock", "pytest-recording", "pytest-rerunfailures", "python-snappy", "requests", "smbprotocol", "tqdm", "urllib3", "zarr"] +tqdm = ["tqdm"] [[package]] name = "glymur" version = "0.13.6" description = "" -optional = false +optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"df\" or extra == \"all\"" files = [ {file = "Glymur-0.13.6-py3-none-any.whl", hash = "sha256:34347b1e0443b58c73ed3c7bc3c66cff1e5974a26e81c73d98792c438729165c"}, {file = "Glymur-0.13.6.tar.gz", hash = "sha256:18f1f3536fd76cd7fa92de4629950bee55522bdf8a4e94706ac34226d615ac5c"}, @@ -243,12 +594,110 @@ packaging = "*" [package.extras] test = ["pillow", "pytest"] +[[package]] +name = "google-crc32c" +version = "1.8.0" +description = "A python wrapper of the C library 'Google CRC32C'" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "google_crc32c-1.8.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:0470b8c3d73b5f4e3300165498e4cf25221c7eb37f1159e221d1825b6df8a7ff"}, + {file = "google_crc32c-1.8.0-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:119fcd90c57c89f30040b47c211acee231b25a45d225e3225294386f5d258288"}, + {file = "google_crc32c-1.8.0-cp310-cp310-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:6f35aaffc8ccd81ba3162443fabb920e65b1f20ab1952a31b13173a67811467d"}, + {file = "google_crc32c-1.8.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:864abafe7d6e2c4c66395c1eb0fe12dc891879769b52a3d56499612ca93b6092"}, + {file = "google_crc32c-1.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:db3fe8eaf0612fc8b20fa21a5f25bd785bc3cd5be69f8f3412b0ac2ffd49e733"}, + {file = "google_crc32c-1.8.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:014a7e68d623e9a4222d663931febc3033c5c7c9730785727de2a81f87d5bab8"}, + {file = "google_crc32c-1.8.0-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:86cfc00fe45a0ac7359e5214a1704e51a99e757d0272554874f419f79838c5f7"}, + {file = "google_crc32c-1.8.0-cp311-cp311-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:19b40d637a54cb71e0829179f6cb41835f0fbd9e8eb60552152a8b52c36cbe15"}, + {file = "google_crc32c-1.8.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:17446feb05abddc187e5441a45971b8394ea4c1b6efd88ab0af393fd9e0a156a"}, + {file = "google_crc32c-1.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:71734788a88f551fbd6a97be9668a0020698e07b2bf5b3aa26a36c10cdfb27b2"}, + {file = "google_crc32c-1.8.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:4b8286b659c1335172e39563ab0a768b8015e88e08329fa5321f774275fc3113"}, + {file = "google_crc32c-1.8.0-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:2a3dc3318507de089c5384cc74d54318401410f82aa65b2d9cdde9d297aca7cb"}, + {file = "google_crc32c-1.8.0-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:14f87e04d613dfa218d6135e81b78272c3b904e2a7053b841481b38a7d901411"}, + {file = "google_crc32c-1.8.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cb5c869c2923d56cb0c8e6bcdd73c009c36ae39b652dbe46a05eb4ef0ad01454"}, + {file = "google_crc32c-1.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:3cc0c8912038065eafa603b238abf252e204accab2a704c63b9e14837a854962"}, + {file = "google_crc32c-1.8.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:3ebb04528e83b2634857f43f9bb8ef5b2bbe7f10f140daeb01b58f972d04736b"}, + {file = "google_crc32c-1.8.0-cp313-cp313-macosx_12_0_x86_64.whl", hash = "sha256:450dc98429d3e33ed2926fc99ee81001928d63460f8538f21a5d6060912a8e27"}, + {file = "google_crc32c-1.8.0-cp313-cp313-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:3b9776774b24ba76831609ffbabce8cdf6fa2bd5e9df37b594221c7e333a81fa"}, + {file = "google_crc32c-1.8.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:89c17d53d75562edfff86679244830599ee0a48efc216200691de8b02ab6b2b8"}, + {file = "google_crc32c-1.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:57a50a9035b75643996fbf224d6661e386c7162d1dfdab9bc4ca790947d1007f"}, + {file = "google_crc32c-1.8.0-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:e6584b12cb06796d285d09e33f63309a09368b9d806a551d8036a4207ea43697"}, + {file = "google_crc32c-1.8.0-cp314-cp314-macosx_12_0_x86_64.whl", hash = "sha256:f4b51844ef67d6cf2e9425983274da75f18b1597bb2c998e1c0a0e8d46f8f651"}, + {file = "google_crc32c-1.8.0-cp314-cp314-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b0d1a7afc6e8e4635564ba8aa5c0548e3173e41b6384d7711a9123165f582de2"}, + {file = "google_crc32c-1.8.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8b3f68782f3cbd1bce027e48768293072813469af6a61a86f6bb4977a4380f21"}, + {file = "google_crc32c-1.8.0-cp314-cp314-win_amd64.whl", hash = "sha256:d511b3153e7011a27ab6ee6bb3a5404a55b994dc1a7322c0b87b29606d9790e2"}, + {file = "google_crc32c-1.8.0-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:ba6aba18daf4d36ad4412feede6221414692f44d17e5428bdd81ad3fc1eee5dc"}, + {file = "google_crc32c-1.8.0-cp39-cp39-macosx_12_0_x86_64.whl", hash = "sha256:87b0072c4ecc9505cfa16ee734b00cd7721d20a0f595be4d40d3d21b41f65ae2"}, + {file = "google_crc32c-1.8.0-cp39-cp39-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:3d488e98b18809f5e322978d4506373599c0c13e6c5ad13e53bb44758e18d215"}, + {file = "google_crc32c-1.8.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:01f126a5cfddc378290de52095e2c7052be2ba7656a9f0caf4bcd1bfb1833f8a"}, + {file = "google_crc32c-1.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:61f58b28e0b21fcb249a8247ad0db2e64114e201e2e9b4200af020f3b6242c9f"}, + {file = "google_crc32c-1.8.0-pp311-pypy311_pp73-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:87fa445064e7db928226b2e6f0d5304ab4cd0339e664a4e9a25029f384d9bb93"}, + {file = "google_crc32c-1.8.0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f639065ea2042d5c034bf258a9f085eaa7af0cd250667c0635a3118e8f92c69c"}, + {file = "google_crc32c-1.8.0.tar.gz", hash = "sha256:a428e25fb7691024de47fecfbff7ff957214da51eddded0da0ae0e0f03a2cf79"}, +] + +[[package]] +name = "h5py" +version = "3.15.1" +description = "Read and write HDF5 files from Python" +optional = true +python-versions = ">=3.10" +groups = ["main"] +markers = "extra == \"psoct\" or extra == \"all\"" +files = [ + {file = "h5py-3.15.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:67e59f6c2f19a32973a40f43d9a088ae324fe228c8366e25ebc57ceebf093a6b"}, + {file = "h5py-3.15.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0e2f471688402c3404fa4e13466e373e622fd4b74b47b56cfdff7cc688209422"}, + {file = "h5py-3.15.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4c45802bcb711e128a6839cb6c01e9ac648dc55df045c9542a675c771f15c8d5"}, + {file = "h5py-3.15.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:64ce3f6470adb87c06e3a8dd1b90e973699f1759ad79bfa70c230939bff356c9"}, + {file = "h5py-3.15.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:4411c1867b9899a25e983fff56d820a66f52ac326bbe10c7cdf7d832c9dcd883"}, + {file = "h5py-3.15.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:2cbc4104d3d4aca9d6db8c0c694555e255805bfeacf9eb1349bda871e26cacbe"}, + {file = "h5py-3.15.1-cp310-cp310-win_amd64.whl", hash = "sha256:01f55111ca516f5568ae7a7fc8247dfce607de331b4467ee8a9a6ed14e5422c7"}, + {file = "h5py-3.15.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5aaa330bcbf2830150c50897ea5dcbed30b5b6d56897289846ac5b9e529ec243"}, + {file = "h5py-3.15.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c970fb80001fffabb0109eaf95116c8e7c0d3ca2de854e0901e8a04c1f098509"}, + {file = "h5py-3.15.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:80e5bb5b9508d5d9da09f81fd00abbb3f85da8143e56b1585d59bc8ceb1dba8b"}, + {file = "h5py-3.15.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5b849ba619a066196169763c33f9f0f02e381156d61c03e000bb0100f9950faf"}, + {file = "h5py-3.15.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e7f6c841efd4e6e5b7e82222eaf90819927b6d256ab0f3aca29675601f654f3c"}, + {file = "h5py-3.15.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ca8a3a22458956ee7b40d8e39c9a9dc01f82933e4c030c964f8b875592f4d831"}, + {file = "h5py-3.15.1-cp311-cp311-win_amd64.whl", hash = "sha256:550e51131376889656feec4aff2170efc054a7fe79eb1da3bb92e1625d1ac878"}, + {file = "h5py-3.15.1-cp311-cp311-win_arm64.whl", hash = "sha256:b39239947cb36a819147fc19e86b618dcb0953d1cd969f5ed71fc0de60392427"}, + {file = "h5py-3.15.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:316dd0f119734f324ca7ed10b5627a2de4ea42cc4dfbcedbee026aaa361c238c"}, + {file = "h5py-3.15.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b51469890e58e85d5242e43aab29f5e9c7e526b951caab354f3ded4ac88e7b76"}, + {file = "h5py-3.15.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8a33bfd5dfcea037196f7778534b1ff7e36a7f40a89e648c8f2967292eb6898e"}, + {file = "h5py-3.15.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:25c8843fec43b2cc368aa15afa1cdf83fc5e17b1c4e10cd3771ef6c39b72e5ce"}, + {file = "h5py-3.15.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a308fd8681a864c04423c0324527237a0484e2611e3441f8089fd00ed56a8171"}, + {file = "h5py-3.15.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f4a016df3f4a8a14d573b496e4d1964deb380e26031fc85fb40e417e9131888a"}, + {file = "h5py-3.15.1-cp312-cp312-win_amd64.whl", hash = "sha256:59b25cf02411bf12e14f803fef0b80886444c7fe21a5ad17c6a28d3f08098a1e"}, + {file = "h5py-3.15.1-cp312-cp312-win_arm64.whl", hash = "sha256:61d5a58a9851e01ee61c932bbbb1c98fe20aba0a5674776600fb9a361c0aa652"}, + {file = "h5py-3.15.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c8440fd8bee9500c235ecb7aa1917a0389a2adb80c209fa1cc485bd70e0d94a5"}, + {file = "h5py-3.15.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ab2219dbc6fcdb6932f76b548e2b16f34a1f52b7666e998157a4dfc02e2c4123"}, + {file = "h5py-3.15.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d8cb02c3a96255149ed3ac811eeea25b655d959c6dd5ce702c9a95ff11859eb5"}, + {file = "h5py-3.15.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:121b2b7a4c1915d63737483b7bff14ef253020f617c2fb2811f67a4bed9ac5e8"}, + {file = "h5py-3.15.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:59b0d63b318bf3cc06687def2b45afd75926bbc006f7b8cd2b1a231299fc8599"}, + {file = "h5py-3.15.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e02fe77a03f652500d8bff288cbf3675f742fc0411f5a628fa37116507dc7cc0"}, + {file = "h5py-3.15.1-cp313-cp313-win_amd64.whl", hash = "sha256:dea78b092fd80a083563ed79a3171258d4a4d307492e7cf8b2313d464c82ba52"}, + {file = "h5py-3.15.1-cp313-cp313-win_arm64.whl", hash = "sha256:c256254a8a81e2bddc0d376e23e2a6d2dc8a1e8a2261835ed8c1281a0744cd97"}, + {file = "h5py-3.15.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:5f4fb0567eb8517c3ecd6b3c02c4f4e9da220c8932604960fd04e24ee1254763"}, + {file = "h5py-3.15.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:954e480433e82d3872503104f9b285d369048c3a788b2b1a00e53d1c47c98dd2"}, + {file = "h5py-3.15.1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fd125c131889ebbef0849f4a0e29cf363b48aba42f228d08b4079913b576bb3a"}, + {file = "h5py-3.15.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:28a20e1a4082a479b3d7db2169f3a5034af010b90842e75ebbf2e9e49eb4183e"}, + {file = "h5py-3.15.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:fa8df5267f545b4946df8ca0d93d23382191018e4cda2deda4c2cedf9a010e13"}, + {file = "h5py-3.15.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:99d374a21f7321a4c6ab327c4ab23bd925ad69821aeb53a1e75dd809d19f67fa"}, + {file = "h5py-3.15.1-cp314-cp314-win_amd64.whl", hash = "sha256:9c73d1d7cdb97d5b17ae385153472ce118bed607e43be11e9a9deefaa54e0734"}, + {file = "h5py-3.15.1-cp314-cp314-win_arm64.whl", hash = "sha256:a6d8c5a05a76aca9a494b4c53ce8a9c29023b7f64f625c6ce1841e92a362ccdf"}, + {file = "h5py-3.15.1.tar.gz", hash = "sha256:c86e3ed45c4473564de55aa83b6fc9e5ead86578773dfbd93047380042e26b69"}, +] + +[package.dependencies] +numpy = ">=1.21.2" + [[package]] name = "identify" version = "2.6.1" description = "File identification library for Python" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "identify-2.6.1-py2.py3-none-any.whl", hash = "sha256:53863bcac7caf8d2ed85bd20312ea5dcfc22226800f6d6881f232d861db5a8f0"}, {file = "identify-2.6.1.tar.gz", hash = "sha256:91478c5fb7c3aac5ff7bf9b4344f803843dc586832d5f110d672b19aa1984c98"}, @@ -257,19 +706,95 @@ files = [ [package.extras] license = ["ukkonen"] +[[package]] +name = "idna" +version = "3.11" +description = "Internationalized Domain Names in Applications (IDNA)" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +files = [ + {file = "idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea"}, + {file = "idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902"}, +] + +[package.extras] +all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] + +[[package]] +name = "imageio" +version = "2.37.2" +description = "Read and write images and video across all major formats. Supports scientific and volumetric data." +optional = false +python-versions = ">=3.9" +groups = ["main", "dev"] +files = [ + {file = "imageio-2.37.2-py3-none-any.whl", hash = "sha256:ad9adfb20335d718c03de457358ed69f141021a333c40a53e57273d8a5bd0b9b"}, + {file = "imageio-2.37.2.tar.gz", hash = "sha256:0212ef2727ac9caa5ca4b2c75ae89454312f440a756fcfc8ef1993e718f50f8a"}, +] + +[package.dependencies] +numpy = "*" +pillow = ">=8.3.2" + +[package.extras] +all-plugins = ["astropy", "av", "fsspec[http]", "imageio-ffmpeg", "numpy (>2)", "pillow-heif", "psutil", "rawpy", "tifffile"] +all-plugins-pypy = ["fsspec[http]", "imageio-ffmpeg", "pillow-heif", "psutil", "tifffile"] +dev = ["black", "flake8", "fsspec[github]", "pytest", "pytest-cov"] +docs = ["numpydoc", "pydata-sphinx-theme", "sphinx (<6)"] +ffmpeg = ["imageio-ffmpeg", "psutil"] +fits = ["astropy"] +freeimage = ["fsspec[http]"] +full = ["astropy", "av", "black", "flake8", "fsspec[github,http]", "imageio-ffmpeg", "numpy (>2)", "numpydoc", "pillow-heif", "psutil", "pydata-sphinx-theme", "pytest", "pytest-cov", "rawpy", "sphinx (<6)", "tifffile"] +gdal = ["gdal"] +itk = ["itk"] +linting = ["black", "flake8"] +pillow-heif = ["pillow-heif"] +pyav = ["av"] +rawpy = ["numpy (>2)", "rawpy"] +test = ["fsspec[github]", "pytest", "pytest-cov"] +tifffile = ["tifffile"] + +[[package]] +name = "importlib-metadata" +version = "8.7.1" +description = "Read metadata from Python packages" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version == \"3.11\"" +files = [ + {file = "importlib_metadata-8.7.1-py3-none-any.whl", hash = "sha256:5a1f80bf1daa489495071efbb095d75a634cf28a8bc299581244063b53176151"}, + {file = "importlib_metadata-8.7.1.tar.gz", hash = "sha256:49fef1ae6440c182052f407c8d34a68f72efc36db9ca90dc0113398f2fdde8bb"}, +] + +[package.dependencies] +zipp = ">=3.20" + +[package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +enabler = ["pytest-enabler (>=3.4)"] +perf = ["ipython"] +test = ["flufl.flake8", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-perf (>=0.9.2)"] +type = ["mypy (<1.19) ; platform_python_implementation == \"PyPy\"", "pytest-mypy (>=1.0.1)"] + [[package]] name = "importlib-resources" version = "6.4.5" description = "Read resources from Python packages" optional = false python-versions = ">=3.8" +groups = ["main"] +markers = "python_version == \"3.11\"" files = [ {file = "importlib_resources-6.4.5-py3-none-any.whl", hash = "sha256:ac29d5f956f01d5e4bb63102a5a19957f1b9175e45649977264a1416783bb717"}, {file = "importlib_resources-6.4.5.tar.gz", hash = "sha256:980862a1d16c9e147a59603677fa2aa5fd82b87f223b6cb870695bcfce830065"}, ] [package.extras] -check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""] cover = ["pytest-cov"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] enabler = ["pytest-enabler (>=2.2)"] @@ -282,6 +807,7 @@ version = "2.0.0" description = "brain-dead simple config-ini parsing" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, @@ -293,6 +819,7 @@ version = "3.1.4" description = "A very fast and expressive template engine." optional = false python-versions = ">=3.7" +groups = ["docs"] files = [ {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, @@ -304,12 +831,46 @@ MarkupSafe = ">=2.0" [package.extras] i18n = ["Babel (>=2.7)"] +[[package]] +name = "lazy-loader" +version = "0.4" +description = "Makes it easy to load subpackages and functions on demand." +optional = false +python-versions = ">=3.7" +groups = ["main", "dev"] +files = [ + {file = "lazy_loader-0.4-py3-none-any.whl", hash = "sha256:342aa8e14d543a154047afb4ba8ef17f5563baad3fc610d7b15b213b0f119efc"}, + {file = "lazy_loader-0.4.tar.gz", hash = "sha256:47c75182589b91a4e1a85a136c074285a5ad4d9f39c63e0d7fb76391c4574cd1"}, +] + +[package.dependencies] +packaging = "*" + +[package.extras] +dev = ["changelist (==0.5)"] +lint = ["pre-commit (==3.7.0)"] +test = ["pytest (>=7.4)", "pytest-cov (>=4.1)"] + +[[package]] +name = "locket" +version = "1.0.0" +description = "File-based locks for Python on Linux and Windows" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +groups = ["main"] +files = [ + {file = "locket-1.0.0-py2.py3-none-any.whl", hash = "sha256:b6c819a722f7b6bd955b80781788e4a66a55628b858d347536b7e81325a3a5e3"}, + {file = "locket-1.0.0.tar.gz", hash = "sha256:5c0d4c052a8bbbf750e056a8e65ccd309086f4f0f18a2eac306a8dfa4112a632"}, +] + [[package]] name = "lxml" version = "5.3.0" description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API." -optional = false +optional = true python-versions = ">=3.6" +groups = ["main"] +markers = "extra == \"df\" or extra == \"all\"" files = [ {file = "lxml-5.3.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:dd36439be765e2dde7660212b5275641edbc813e7b24668831a5c8ac91180656"}, {file = "lxml-5.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ae5fe5c4b525aa82b8076c1a59d642c17b6e8739ecf852522c6321852178119d"}, @@ -464,6 +1025,7 @@ version = "3.0.0" description = "Python port of markdown-it. Markdown parsing, done right!" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"}, {file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"}, @@ -488,6 +1050,7 @@ version = "3.0.2" description = "Safely add untrusted strings to HTML/XML markup." optional = false python-versions = ">=3.9" +groups = ["docs"] files = [ {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, @@ -558,17 +1121,79 @@ version = "0.1.2" description = "Markdown URL utilities" optional = false python-versions = ">=3.7" +groups = ["main"] files = [ {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, ] +[[package]] +name = "ml-dtypes" +version = "0.5.4" +description = "ml_dtypes is a stand-alone implementation of several NumPy dtype extensions used in machine learning." +optional = true +python-versions = ">=3.9" +groups = ["main"] +markers = "extra == \"ts\" or extra == \"all\"" +files = [ + {file = "ml_dtypes-0.5.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b95e97e470fe60ed493fd9ae3911d8da4ebac16bd21f87ffa2b7c588bf22ea2c"}, + {file = "ml_dtypes-0.5.4-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b4b801ebe0b477be666696bda493a9be8356f1f0057a57f1e35cd26928823e5a"}, + {file = "ml_dtypes-0.5.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:388d399a2152dd79a3f0456a952284a99ee5c93d3e2f8dfe25977511e0515270"}, + {file = "ml_dtypes-0.5.4-cp310-cp310-win_amd64.whl", hash = "sha256:4ff7f3e7ca2972e7de850e7b8fcbb355304271e2933dd90814c1cb847414d6e2"}, + {file = "ml_dtypes-0.5.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6c7ecb74c4bd71db68a6bea1edf8da8c34f3d9fe218f038814fd1d310ac76c90"}, + {file = "ml_dtypes-0.5.4-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bc11d7e8c44a65115d05e2ab9989d1e045125d7be8e05a071a48bc76eb6d6040"}, + {file = "ml_dtypes-0.5.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:19b9a53598f21e453ea2fbda8aa783c20faff8e1eeb0d7ab899309a0053f1483"}, + {file = "ml_dtypes-0.5.4-cp311-cp311-win_amd64.whl", hash = "sha256:7c23c54a00ae43edf48d44066a7ec31e05fdc2eee0be2b8b50dd1903a1db94bb"}, + {file = "ml_dtypes-0.5.4-cp311-cp311-win_arm64.whl", hash = "sha256:557a31a390b7e9439056644cb80ed0735a6e3e3bb09d67fd5687e4b04238d1de"}, + {file = "ml_dtypes-0.5.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a174837a64f5b16cab6f368171a1a03a27936b31699d167684073ff1c4237dac"}, + {file = "ml_dtypes-0.5.4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a7f7c643e8b1320fd958bf098aa7ecf70623a42ec5154e3be3be673f4c34d900"}, + {file = "ml_dtypes-0.5.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9ad459e99793fa6e13bd5b7e6792c8f9190b4e5a1b45c63aba14a4d0a7f1d5ff"}, + {file = "ml_dtypes-0.5.4-cp312-cp312-win_amd64.whl", hash = "sha256:c1a953995cccb9e25a4ae19e34316671e4e2edaebe4cf538229b1fc7109087b7"}, + {file = "ml_dtypes-0.5.4-cp312-cp312-win_arm64.whl", hash = "sha256:9bad06436568442575beb2d03389aa7456c690a5b05892c471215bfd8cf39460"}, + {file = "ml_dtypes-0.5.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8c760d85a2f82e2bed75867079188c9d18dae2ee77c25a54d60e9cc79be1bc48"}, + {file = "ml_dtypes-0.5.4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ce756d3a10d0c4067172804c9cc276ba9cc0ff47af9078ad439b075d1abdc29b"}, + {file = "ml_dtypes-0.5.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:533ce891ba774eabf607172254f2e7260ba5f57bdd64030c9a4fcfbd99815d0d"}, + {file = "ml_dtypes-0.5.4-cp313-cp313-win_amd64.whl", hash = "sha256:f21c9219ef48ca5ee78402d5cc831bd58ea27ce89beda894428bc67a52da5328"}, + {file = "ml_dtypes-0.5.4-cp313-cp313-win_arm64.whl", hash = "sha256:35f29491a3e478407f7047b8a4834e4640a77d2737e0b294d049746507af5175"}, + {file = "ml_dtypes-0.5.4-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:304ad47faa395415b9ccbcc06a0350800bc50eda70f0e45326796e27c62f18b6"}, + {file = "ml_dtypes-0.5.4-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6a0df4223b514d799b8a1629c65ddc351b3efa833ccf7f8ea0cf654a61d1e35d"}, + {file = "ml_dtypes-0.5.4-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:531eff30e4d368cb6255bc2328d070e35836aa4f282a0fb5f3a0cd7260257298"}, + {file = "ml_dtypes-0.5.4-cp313-cp313t-win_amd64.whl", hash = "sha256:cb73dccfc991691c444acc8c0012bee8f2470da826a92e3a20bb333b1a7894e6"}, + {file = "ml_dtypes-0.5.4-cp313-cp313t-win_arm64.whl", hash = "sha256:3bbbe120b915090d9dd1375e4684dd17a20a2491ef25d640a908281da85e73f1"}, + {file = "ml_dtypes-0.5.4-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:2b857d3af6ac0d39db1de7c706e69c7f9791627209c3d6dedbfca8c7e5faec22"}, + {file = "ml_dtypes-0.5.4-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:805cef3a38f4eafae3a5bf9ebdcdb741d0bcfd9e1bd90eb54abd24f928cd2465"}, + {file = "ml_dtypes-0.5.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:14a4fd3228af936461db66faccef6e4f41c1d82fcc30e9f8d58a08916b1d811f"}, + {file = "ml_dtypes-0.5.4-cp314-cp314-win_amd64.whl", hash = "sha256:8c6a2dcebd6f3903e05d51960a8058d6e131fe69f952a5397e5dbabc841b6d56"}, + {file = "ml_dtypes-0.5.4-cp314-cp314-win_arm64.whl", hash = "sha256:5a0f68ca8fd8d16583dfa7793973feb86f2fbb56ce3966daf9c9f748f52a2049"}, + {file = "ml_dtypes-0.5.4-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:bfc534409c5d4b0bf945af29e5d0ab075eae9eecbb549ff8a29280db822f34f9"}, + {file = "ml_dtypes-0.5.4-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2314892cdc3fcf05e373d76d72aaa15fda9fb98625effa73c1d646f331fcecb7"}, + {file = "ml_dtypes-0.5.4-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0d2ffd05a2575b1519dc928c0b93c06339eb67173ff53acb00724502cda231cf"}, + {file = "ml_dtypes-0.5.4-cp314-cp314t-win_amd64.whl", hash = "sha256:4381fe2f2452a2d7589689693d3162e876b3ddb0a832cde7a414f8e1adf7eab1"}, + {file = "ml_dtypes-0.5.4-cp314-cp314t-win_arm64.whl", hash = "sha256:11942cbf2cf92157db91e5022633c0d9474d4dfd813a909383bd23ce828a4b7d"}, + {file = "ml_dtypes-0.5.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:d81fdb088defa30eb37bf390bb7dde35d3a83ec112ac8e33d75ab28cc29dd8b0"}, + {file = "ml_dtypes-0.5.4-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:88c982aac7cb1cbe8cbb4e7f253072b1df872701fcaf48d84ffbb433b6568f24"}, + {file = "ml_dtypes-0.5.4-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a9b61c19040397970d18d7737375cffd83b1f36a11dd4ad19f83a016f736c3ef"}, + {file = "ml_dtypes-0.5.4-cp39-cp39-win_amd64.whl", hash = "sha256:3d277bf3637f2a62176f4575512e9ff9ef51d00e39626d9fe4a161992f355af2"}, + {file = "ml_dtypes-0.5.4.tar.gz", hash = "sha256:8ab06a50fb9bf9666dd0fe5dfb4676fa2b0ac0f31ecff72a6c3af8e22c063453"}, +] + +[package.dependencies] +numpy = [ + {version = ">=2.1.0", markers = "python_version >= \"3.13\""}, + {version = ">=1.26.0", markers = "python_version == \"3.12\""}, + {version = ">=1.23.3", markers = "python_version == \"3.11\""}, +] + +[package.extras] +dev = ["absl-py", "pyink", "pylint (>=2.6.0)", "pytest", "pytest-xdist"] + [[package]] name = "mypy" version = "1.13.0" description = "Optional static typing for Python" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "mypy-1.13.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6607e0f1dd1fb7f0aca14d936d13fd19eba5e17e1cd2a14f808fa5f8f6d8f60a"}, {file = "mypy-1.13.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8a21be69bd26fa81b1f80a61ee7ab05b076c674d9b18fb56239d72e21d9f4c80"}, @@ -606,7 +1231,6 @@ files = [ [package.dependencies] mypy-extensions = ">=1.0.0" -tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} typing-extensions = ">=4.6.0" [package.extras] @@ -622,17 +1246,67 @@ version = "1.0.0" description = "Type system extensions for programs checked with the mypy type checker." optional = false python-versions = ">=3.5" +groups = ["dev"] files = [ {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, ] +[[package]] +name = "networkx" +version = "3.6" +description = "Python package for creating and manipulating graphs and networks" +optional = false +python-versions = ">=3.11" +groups = ["main", "dev"] +markers = "python_version >= \"3.14\"" +files = [ + {file = "networkx-3.6-py3-none-any.whl", hash = "sha256:cdb395b105806062473d3be36458d8f1459a4e4b98e236a66c3a48996e07684f"}, + {file = "networkx-3.6.tar.gz", hash = "sha256:285276002ad1f7f7da0f7b42f004bcba70d381e936559166363707fdad3d72ad"}, +] + +[package.extras] +benchmarking = ["asv", "virtualenv"] +default = ["matplotlib (>=3.8)", "numpy (>=1.25)", "pandas (>=2.0)", "scipy (>=1.11.2)"] +developer = ["mypy (>=1.15)", "pre-commit (>=4.1)"] +doc = ["intersphinx-registry", "myst-nb (>=1.1)", "numpydoc (>=1.8.0)", "pillow (>=10)", "pydata-sphinx-theme (>=0.16)", "sphinx (>=8.0)", "sphinx-gallery (>=0.18)", "texext (>=0.6.7)"] +example = ["cairocffi (>=1.7)", "contextily (>=1.6)", "igraph (>=0.11)", "iplotx (>=0.9.0)", "momepy (>=0.7.2)", "osmnx (>=2.0.0)", "scikit-learn (>=1.5)", "seaborn (>=0.13)"] +extra = ["lxml (>=4.6)", "pydot (>=3.0.1)", "pygraphviz (>=1.14)", "sympy (>=1.10)"] +release = ["build (>=0.10)", "changelist (==0.5)", "twine (>=4.0)", "wheel (>=0.40)"] +test = ["pytest (>=7.2)", "pytest-cov (>=4.0)", "pytest-xdist (>=3.0)"] +test-extras = ["pytest-mpl", "pytest-randomly"] + +[[package]] +name = "networkx" +version = "3.6.1" +description = "Python package for creating and manipulating graphs and networks" +optional = false +python-versions = "!=3.14.1,>=3.11" +groups = ["main", "dev"] +markers = "python_version < \"3.14\"" +files = [ + {file = "networkx-3.6.1-py3-none-any.whl", hash = "sha256:d47fbf302e7d9cbbb9e2555a0d267983d2aa476bac30e90dfbe5669bd57f3762"}, + {file = "networkx-3.6.1.tar.gz", hash = "sha256:26b7c357accc0c8cde558ad486283728b65b6a95d85ee1cd66bafab4c8168509"}, +] + +[package.extras] +benchmarking = ["asv", "virtualenv"] +default = ["matplotlib (>=3.8)", "numpy (>=1.25)", "pandas (>=2.0)", "scipy (>=1.11.2)"] +developer = ["mypy (>=1.15)", "pre-commit (>=4.1)"] +doc = ["intersphinx-registry", "myst-nb (>=1.1)", "numpydoc (>=1.8.0)", "pillow (>=10)", "pydata-sphinx-theme (>=0.16)", "sphinx (>=8.0)", "sphinx-gallery (>=0.18)", "texext (>=0.6.7)"] +example = ["cairocffi (>=1.7)", "contextily (>=1.6)", "igraph (>=0.11)", "iplotx (>=0.9.0)", "momepy (>=0.7.2)", "osmnx (>=2.0.0)", "scikit-learn (>=1.5)", "seaborn (>=0.13)"] +extra = ["lxml (>=4.6)", "pydot (>=3.0.1)", "pygraphviz (>=1.14)", "sympy (>=1.10)"] +release = ["build (>=0.10)", "changelist (==0.5)", "twine (>=4.0)", "wheel (>=0.40)"] +test = ["pytest (>=7.2)", "pytest-cov (>=4.0)", "pytest-xdist (>=3.0)"] +test-extras = ["pytest-mpl", "pytest-randomly"] + [[package]] name = "nibabel" version = "5.3.2" description = "Access a multitude of neuroimaging data formats" optional = false python-versions = ">=3.9" +groups = ["main"] files = [ {file = "nibabel-5.3.2-py3-none-any.whl", hash = "sha256:52970a5a8a53b1b55249cba4d9bcfaa8cc57e3e5af35a29d7352237e8680a6f8"}, {file = "nibabel-5.3.2.tar.gz", hash = "sha256:0bdca6503b1c784b446c745a4542367de7756cfba0d72143b91f9ffb78be569b"}, @@ -649,7 +1323,7 @@ all = ["h5py", "pillow", "pydicom (>=2.3)", "pyzstd (>=0.14.3)", "scipy"] dev = ["tox"] dicom = ["pydicom (>=2.3)"] dicomfs = ["pillow", "pydicom (>=2.3)"] -doc = ["matplotlib (>=3.5)", "numpydoc", "sphinx", "texext", "tomli"] +doc = ["matplotlib (>=3.5)", "numpydoc", "sphinx", "texext", "tomli ; python_version < \"3.11\""] doctest = ["tox"] minc2 = ["h5py"] spm = ["scipy"] @@ -658,12 +1332,39 @@ test = ["coverage (>=7.2)", "pytest", "pytest-cov", "pytest-doctestplus", "pytes typing = ["tox"] zstd = ["pyzstd (>=0.14.3)"] +[[package]] +name = "nifti-zarr" +version = "1.0.0rc5" +description = "Nifti-Zarr conversion tools in Python" +optional = false +python-versions = ">=3.8" +groups = ["main"] +files = [ + {file = "nifti_zarr-1.0.0rc5-py3-none-any.whl", hash = "sha256:2b5ebea77bb647123dd520d8e2a6d0337f4f5b0cb445ed07f6fb41febfc74856"}, + {file = "nifti_zarr-1.0.0rc5.tar.gz", hash = "sha256:203cb6035f08d421e0f566ede1fcbbb14d1aabc3bcdc738e666f6bc647f3a0f3"}, +] + +[package.dependencies] +dask = {version = ">=2020", extras = ["array"]} +nibabel = ">=3" +numcodecs = ">=0.10.0" +numpy = ">=1.18" +packaging = ">=19.0" +scikit-image = ">=0.19.2" +zarr = ">=2" + +[package.extras] +http = ["fsspec[http]", "nibabel (>=5)"] +s3 = ["fsspec[s3]", "nibabel (>=5)"] +test = ["jsondiff", "jsonschema", "pooch", "pytest"] + [[package]] name = "nodeenv" version = "1.9.1" description = "Node.js virtual environment builder" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +groups = ["dev"] files = [ {file = "nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9"}, {file = "nodeenv-1.9.1.tar.gz", hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f"}, @@ -671,103 +1372,129 @@ files = [ [[package]] name = "numcodecs" -version = "0.13.1" +version = "0.16.5" description = "A Python package providing buffer compression and transformation codecs for use in data storage and communication applications." optional = false -python-versions = ">=3.10" +python-versions = ">=3.11" +groups = ["main"] files = [ - {file = "numcodecs-0.13.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:96add4f783c5ce57cc7e650b6cac79dd101daf887c479a00a29bc1487ced180b"}, - {file = "numcodecs-0.13.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:237b7171609e868a20fd313748494444458ccd696062f67e198f7f8f52000c15"}, - {file = "numcodecs-0.13.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:96e42f73c31b8c24259c5fac6adba0c3ebf95536e37749dc6c62ade2989dca28"}, - {file = "numcodecs-0.13.1-cp310-cp310-win_amd64.whl", hash = "sha256:eda7d7823c9282e65234731fd6bd3986b1f9e035755f7fed248d7d366bb291ab"}, - {file = "numcodecs-0.13.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2eda97dd2f90add98df6d295f2c6ae846043396e3d51a739ca5db6c03b5eb666"}, - {file = "numcodecs-0.13.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2a86f5367af9168e30f99727ff03b27d849c31ad4522060dde0bce2923b3a8bc"}, - {file = "numcodecs-0.13.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:233bc7f26abce24d57e44ea8ebeb5cd17084690b4e7409dd470fdb75528d615f"}, - {file = "numcodecs-0.13.1-cp311-cp311-win_amd64.whl", hash = "sha256:796b3e6740107e4fa624cc636248a1580138b3f1c579160f260f76ff13a4261b"}, - {file = "numcodecs-0.13.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:5195bea384a6428f8afcece793860b1ab0ae28143c853f0b2b20d55a8947c917"}, - {file = "numcodecs-0.13.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3501a848adaddce98a71a262fee15cd3618312692aa419da77acd18af4a6a3f6"}, - {file = "numcodecs-0.13.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da2230484e6102e5fa3cc1a5dd37ca1f92dfbd183d91662074d6f7574e3e8f53"}, - {file = "numcodecs-0.13.1-cp312-cp312-win_amd64.whl", hash = "sha256:e5db4824ebd5389ea30e54bc8aeccb82d514d28b6b68da6c536b8fa4596f4bca"}, - {file = "numcodecs-0.13.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7a60d75179fd6692e301ddfb3b266d51eb598606dcae7b9fc57f986e8d65cb43"}, - {file = "numcodecs-0.13.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3f593c7506b0ab248961a3b13cb148cc6e8355662ff124ac591822310bc55ecf"}, - {file = "numcodecs-0.13.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80d3071465f03522e776a31045ddf2cfee7f52df468b977ed3afdd7fe5869701"}, - {file = "numcodecs-0.13.1-cp313-cp313-win_amd64.whl", hash = "sha256:90d3065ae74c9342048ae0046006f99dcb1388b7288da5a19b3bddf9c30c3176"}, - {file = "numcodecs-0.13.1.tar.gz", hash = "sha256:a3cf37881df0898f3a9c0d4477df88133fe85185bffe57ba31bcc2fa207709bc"}, + {file = "numcodecs-0.16.5-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:78382dcea50622f2ef1e6e7a71dbe7f861d8fe376b27b7c297c26907304fef1e"}, + {file = "numcodecs-0.16.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e2d04a19cb57a3c519b4127ac377cca6471aee1990d7c18f5b1e3a4fe1306689"}, + {file = "numcodecs-0.16.5-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c043af648eb280cd61785c99c22ff5c3c3460f906eb51a8511327c4f5111b283"}, + {file = "numcodecs-0.16.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c398919ef2eb0e56b8e97456f622640bfd3deed06de3acc976989cbcb22628a3"}, + {file = "numcodecs-0.16.5-cp311-cp311-win_amd64.whl", hash = "sha256:3820860ed302d4d84a1c66e70981ff959d5eb712555be4e7d8ced49888594773"}, + {file = "numcodecs-0.16.5-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:24e675dc8d1550cd976a99479b87d872cb142632c75cc402fea04c08c4898523"}, + {file = "numcodecs-0.16.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:94ddfa4341d1a3ab99989d13b01b5134abb687d3dab2ead54b450aefe4ad5bd6"}, + {file = "numcodecs-0.16.5-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b554ab9ecf69de7ca2b6b5e8bc696bd9747559cb4dd5127bd08d7a28bec59c3a"}, + {file = "numcodecs-0.16.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ad1a379a45bd3491deab8ae6548313946744f868c21d5340116977ea3be5b1d6"}, + {file = "numcodecs-0.16.5-cp312-cp312-win_amd64.whl", hash = "sha256:845a9857886ffe4a3172ba1c537ae5bcc01e65068c31cf1fce1a844bd1da050f"}, + {file = "numcodecs-0.16.5-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:25be3a516ab677dad890760d357cfe081a371d9c0a2e9a204562318ac5969de3"}, + {file = "numcodecs-0.16.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0107e839ef75b854e969cb577e140b1aadb9847893937636582d23a2a4c6ce50"}, + {file = "numcodecs-0.16.5-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:015a7c859ecc2a06e2a548f64008c0ec3aaecabc26456c2c62f4278d8fc20597"}, + {file = "numcodecs-0.16.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:84230b4b9dad2392f2a84242bd6e3e659ac137b5a1ce3571d6965fca673e0903"}, + {file = "numcodecs-0.16.5-cp313-cp313-win_amd64.whl", hash = "sha256:5088145502ad1ebf677ec47d00eb6f0fd600658217db3e0c070c321c85d6cf3d"}, + {file = "numcodecs-0.16.5-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:b05647b8b769e6bc8016e9fd4843c823ce5c9f2337c089fb5c9c4da05e5275de"}, + {file = "numcodecs-0.16.5-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:3832bd1b5af8bb3e413076b7d93318c8e7d7b68935006b9fa36ca057d1725a8f"}, + {file = "numcodecs-0.16.5-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:49f7b7d24f103187f53135bed28bb9f0ed6b2e14c604664726487bb6d7c882e1"}, + {file = "numcodecs-0.16.5-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:aec9736d81b70f337d89c4070ee3ffeff113f386fd789492fa152d26a15043e4"}, + {file = "numcodecs-0.16.5-cp314-cp314-win_amd64.whl", hash = "sha256:b16a14303800e9fb88abc39463ab4706c037647ac17e49e297faa5f7d7dbbf1d"}, + {file = "numcodecs-0.16.5.tar.gz", hash = "sha256:0d0fb60852f84c0bd9543cc4d2ab9eefd37fc8efcc410acd4777e62a1d300318"}, ] [package.dependencies] -numpy = ">=1.7" +numpy = ">=1.24" +typing_extensions = "*" [package.extras] -docs = ["mock", "numpydoc", "pydata-sphinx-theme", "sphinx", "sphinx-issues"] +crc32c = ["crc32c (>=2.7)"] +docs = ["numpydoc", "pydata-sphinx-theme", "sphinx", "sphinx-issues"] +google-crc32c = ["google-crc32c (>=1.5)"] msgpack = ["msgpack"] -pcodec = ["pcodec (>=0.2.0)"] -test = ["coverage", "pytest", "pytest-cov"] -test-extras = ["importlib-metadata"] -zfpy = ["numpy (<2.0.0)", "zfpy (>=1.0.0)"] +pcodec = ["pcodec (>=0.3,<0.4)"] +test = ["coverage", "pytest", "pytest-cov", "pyzstd"] +test-extras = ["crc32c", "importlib_metadata"] +zfpy = ["zfpy (>=1.0.0)"] [[package]] name = "numpy" -version = "2.1.3" +version = "2.4.1" description = "Fundamental package for array computing in Python" optional = false -python-versions = ">=3.10" +python-versions = ">=3.11" +groups = ["main", "dev"] files = [ - {file = "numpy-2.1.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c894b4305373b9c5576d7a12b473702afdf48ce5369c074ba304cc5ad8730dff"}, - {file = "numpy-2.1.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b47fbb433d3260adcd51eb54f92a2ffbc90a4595f8970ee00e064c644ac788f5"}, - {file = "numpy-2.1.3-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:825656d0743699c529c5943554d223c021ff0494ff1442152ce887ef4f7561a1"}, - {file = "numpy-2.1.3-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:6a4825252fcc430a182ac4dee5a505053d262c807f8a924603d411f6718b88fd"}, - {file = "numpy-2.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e711e02f49e176a01d0349d82cb5f05ba4db7d5e7e0defd026328e5cfb3226d3"}, - {file = "numpy-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78574ac2d1a4a02421f25da9559850d59457bac82f2b8d7a44fe83a64f770098"}, - {file = "numpy-2.1.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c7662f0e3673fe4e832fe07b65c50342ea27d989f92c80355658c7f888fcc83c"}, - {file = "numpy-2.1.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:fa2d1337dc61c8dc417fbccf20f6d1e139896a30721b7f1e832b2bb6ef4eb6c4"}, - {file = "numpy-2.1.3-cp310-cp310-win32.whl", hash = "sha256:72dcc4a35a8515d83e76b58fdf8113a5c969ccd505c8a946759b24e3182d1f23"}, - {file = "numpy-2.1.3-cp310-cp310-win_amd64.whl", hash = "sha256:ecc76a9ba2911d8d37ac01de72834d8849e55473457558e12995f4cd53e778e0"}, - {file = "numpy-2.1.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4d1167c53b93f1f5d8a139a742b3c6f4d429b54e74e6b57d0eff40045187b15d"}, - {file = "numpy-2.1.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c80e4a09b3d95b4e1cac08643f1152fa71a0a821a2d4277334c88d54b2219a41"}, - {file = "numpy-2.1.3-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:576a1c1d25e9e02ed7fa5477f30a127fe56debd53b8d2c89d5578f9857d03ca9"}, - {file = "numpy-2.1.3-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:973faafebaae4c0aaa1a1ca1ce02434554d67e628b8d805e61f874b84e136b09"}, - {file = "numpy-2.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:762479be47a4863e261a840e8e01608d124ee1361e48b96916f38b119cfda04a"}, - {file = "numpy-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc6f24b3d1ecc1eebfbf5d6051faa49af40b03be1aaa781ebdadcbc090b4539b"}, - {file = "numpy-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:17ee83a1f4fef3c94d16dc1802b998668b5419362c8a4f4e8a491de1b41cc3ee"}, - {file = "numpy-2.1.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:15cb89f39fa6d0bdfb600ea24b250e5f1a3df23f901f51c8debaa6a5d122b2f0"}, - {file = "numpy-2.1.3-cp311-cp311-win32.whl", hash = "sha256:d9beb777a78c331580705326d2367488d5bc473b49a9bc3036c154832520aca9"}, - {file = "numpy-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:d89dd2b6da69c4fff5e39c28a382199ddedc3a5be5390115608345dec660b9e2"}, - {file = "numpy-2.1.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f55ba01150f52b1027829b50d70ef1dafd9821ea82905b63936668403c3b471e"}, - {file = "numpy-2.1.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:13138eadd4f4da03074851a698ffa7e405f41a0845a6b1ad135b81596e4e9958"}, - {file = "numpy-2.1.3-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:a6b46587b14b888e95e4a24d7b13ae91fa22386c199ee7b418f449032b2fa3b8"}, - {file = "numpy-2.1.3-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:0fa14563cc46422e99daef53d725d0c326e99e468a9320a240affffe87852564"}, - {file = "numpy-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8637dcd2caa676e475503d1f8fdb327bc495554e10838019651b76d17b98e512"}, - {file = "numpy-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2312b2aa89e1f43ecea6da6ea9a810d06aae08321609d8dc0d0eda6d946a541b"}, - {file = "numpy-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a38c19106902bb19351b83802531fea19dee18e5b37b36454f27f11ff956f7fc"}, - {file = "numpy-2.1.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:02135ade8b8a84011cbb67dc44e07c58f28575cf9ecf8ab304e51c05528c19f0"}, - {file = "numpy-2.1.3-cp312-cp312-win32.whl", hash = "sha256:e6988e90fcf617da2b5c78902fe8e668361b43b4fe26dbf2d7b0f8034d4cafb9"}, - {file = "numpy-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:0d30c543f02e84e92c4b1f415b7c6b5326cbe45ee7882b6b77db7195fb971e3a"}, - {file = "numpy-2.1.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:96fe52fcdb9345b7cd82ecd34547fca4321f7656d500eca497eb7ea5a926692f"}, - {file = "numpy-2.1.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f653490b33e9c3a4c1c01d41bc2aef08f9475af51146e4a7710c450cf9761598"}, - {file = "numpy-2.1.3-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:dc258a761a16daa791081d026f0ed4399b582712e6fc887a95af09df10c5ca57"}, - {file = "numpy-2.1.3-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:016d0f6f5e77b0f0d45d77387ffa4bb89816b57c835580c3ce8e099ef830befe"}, - {file = "numpy-2.1.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c181ba05ce8299c7aa3125c27b9c2167bca4a4445b7ce73d5febc411ca692e43"}, - {file = "numpy-2.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5641516794ca9e5f8a4d17bb45446998c6554704d888f86df9b200e66bdcce56"}, - {file = "numpy-2.1.3-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ea4dedd6e394a9c180b33c2c872b92f7ce0f8e7ad93e9585312b0c5a04777a4a"}, - {file = "numpy-2.1.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b0df3635b9c8ef48bd3be5f862cf71b0a4716fa0e702155c45067c6b711ddcef"}, - {file = "numpy-2.1.3-cp313-cp313-win32.whl", hash = "sha256:50ca6aba6e163363f132b5c101ba078b8cbd3fa92c7865fd7d4d62d9779ac29f"}, - {file = "numpy-2.1.3-cp313-cp313-win_amd64.whl", hash = "sha256:747641635d3d44bcb380d950679462fae44f54b131be347d5ec2bce47d3df9ed"}, - {file = "numpy-2.1.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:996bb9399059c5b82f76b53ff8bb686069c05acc94656bb259b1d63d04a9506f"}, - {file = "numpy-2.1.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:45966d859916ad02b779706bb43b954281db43e185015df6eb3323120188f9e4"}, - {file = "numpy-2.1.3-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:baed7e8d7481bfe0874b566850cb0b85243e982388b7b23348c6db2ee2b2ae8e"}, - {file = "numpy-2.1.3-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:a9f7f672a3388133335589cfca93ed468509cb7b93ba3105fce780d04a6576a0"}, - {file = "numpy-2.1.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7aac50327da5d208db2eec22eb11e491e3fe13d22653dce51b0f4109101b408"}, - {file = "numpy-2.1.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4394bc0dbd074b7f9b52024832d16e019decebf86caf909d94f6b3f77a8ee3b6"}, - {file = "numpy-2.1.3-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:50d18c4358a0a8a53f12a8ba9d772ab2d460321e6a93d6064fc22443d189853f"}, - {file = "numpy-2.1.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:14e253bd43fc6b37af4921b10f6add6925878a42a0c5fe83daee390bca80bc17"}, - {file = "numpy-2.1.3-cp313-cp313t-win32.whl", hash = "sha256:08788d27a5fd867a663f6fc753fd7c3ad7e92747efc73c53bca2f19f8bc06f48"}, - {file = "numpy-2.1.3-cp313-cp313t-win_amd64.whl", hash = "sha256:2564fbdf2b99b3f815f2107c1bbc93e2de8ee655a69c261363a1172a79a257d4"}, - {file = "numpy-2.1.3-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:4f2015dfe437dfebbfce7c85c7b53d81ba49e71ba7eadbf1df40c915af75979f"}, - {file = "numpy-2.1.3-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:3522b0dfe983a575e6a9ab3a4a4dfe156c3e428468ff08ce582b9bb6bd1d71d4"}, - {file = "numpy-2.1.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c006b607a865b07cd981ccb218a04fc86b600411d83d6fc261357f1c0966755d"}, - {file = "numpy-2.1.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:e14e26956e6f1696070788252dcdff11b4aca4c3e8bd166e0df1bb8f315a67cb"}, - {file = "numpy-2.1.3.tar.gz", hash = "sha256:aa08e04e08aaf974d4458def539dece0d28146d866a39da5639596f4921fd761"}, + {file = "numpy-2.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0cce2a669e3c8ba02ee563c7835f92c153cf02edff1ae05e1823f1dde21b16a5"}, + {file = "numpy-2.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:899d2c18024984814ac7e83f8f49d8e8180e2fbe1b2e252f2e7f1d06bea92425"}, + {file = "numpy-2.4.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:09aa8a87e45b55a1c2c205d42e2808849ece5c484b2aab11fecabec3841cafba"}, + {file = "numpy-2.4.1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:edee228f76ee2dab4579fad6f51f6a305de09d444280109e0f75df247ff21501"}, + {file = "numpy-2.4.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a92f227dbcdc9e4c3e193add1a189a9909947d4f8504c576f4a732fd0b54240a"}, + {file = "numpy-2.4.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:538bf4ec353709c765ff75ae616c34d3c3dca1a68312727e8f2676ea644f8509"}, + {file = "numpy-2.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ac08c63cb7779b85e9d5318e6c3518b424bc1f364ac4cb2c6136f12e5ff2dccc"}, + {file = "numpy-2.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4f9c360ecef085e5841c539a9a12b883dff005fbd7ce46722f5e9cef52634d82"}, + {file = "numpy-2.4.1-cp311-cp311-win32.whl", hash = "sha256:0f118ce6b972080ba0758c6087c3617b5ba243d806268623dc34216d69099ba0"}, + {file = "numpy-2.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:18e14c4d09d55eef39a6ab5b08406e84bc6869c1e34eef45564804f90b7e0574"}, + {file = "numpy-2.4.1-cp311-cp311-win_arm64.whl", hash = "sha256:6461de5113088b399d655d45c3897fa188766415d0f568f175ab071c8873bd73"}, + {file = "numpy-2.4.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d3703409aac693fa82c0aee023a1ae06a6e9d065dba10f5e8e80f642f1e9d0a2"}, + {file = "numpy-2.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7211b95ca365519d3596a1d8688a95874cc94219d417504d9ecb2df99fa7bfa8"}, + {file = "numpy-2.4.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:5adf01965456a664fc727ed69cc71848f28d063217c63e1a0e200a118d5eec9a"}, + {file = "numpy-2.4.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:26f0bcd9c79a00e339565b303badc74d3ea2bd6d52191eeca5f95936cad107d0"}, + {file = "numpy-2.4.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0093e85df2960d7e4049664b26afc58b03236e967fb942354deef3208857a04c"}, + {file = "numpy-2.4.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7ad270f438cbdd402c364980317fb6b117d9ec5e226fff5b4148dd9aa9fc6e02"}, + {file = "numpy-2.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:297c72b1b98100c2e8f873d5d35fb551fce7040ade83d67dd51d38c8d42a2162"}, + {file = "numpy-2.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:cf6470d91d34bf669f61d515499859fa7a4c2f7c36434afb70e82df7217933f9"}, + {file = "numpy-2.4.1-cp312-cp312-win32.whl", hash = "sha256:b6bcf39112e956594b3331316d90c90c90fb961e39696bda97b89462f5f3943f"}, + {file = "numpy-2.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:e1a27bb1b2dee45a2a53f5ca6ff2d1a7f135287883a1689e930d44d1ff296c87"}, + {file = "numpy-2.4.1-cp312-cp312-win_arm64.whl", hash = "sha256:0e6e8f9d9ecf95399982019c01223dc130542960a12edfa8edd1122dfa66a8a8"}, + {file = "numpy-2.4.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d797454e37570cfd61143b73b8debd623c3c0952959adb817dd310a483d58a1b"}, + {file = "numpy-2.4.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82c55962006156aeef1629b953fd359064aa47e4d82cfc8e67f0918f7da3344f"}, + {file = "numpy-2.4.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:71abbea030f2cfc3092a0ff9f8c8fdefdc5e0bf7d9d9c99663538bb0ecdac0b9"}, + {file = "numpy-2.4.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:5b55aa56165b17aaf15520beb9cbd33c9039810e0d9643dd4379e44294c7303e"}, + {file = "numpy-2.4.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c0faba4a331195bfa96f93dd9dfaa10b2c7aa8cda3a02b7fd635e588fe821bf5"}, + {file = "numpy-2.4.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d3e3087f53e2b4428766b54932644d148613c5a595150533ae7f00dab2f319a8"}, + {file = "numpy-2.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:49e792ec351315e16da54b543db06ca8a86985ab682602d90c60ef4ff4db2a9c"}, + {file = "numpy-2.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:79e9e06c4c2379db47f3f6fc7a8652e7498251789bf8ff5bd43bf478ef314ca2"}, + {file = "numpy-2.4.1-cp313-cp313-win32.whl", hash = "sha256:3d1a100e48cb266090a031397863ff8a30050ceefd798f686ff92c67a486753d"}, + {file = "numpy-2.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:92a0e65272fd60bfa0d9278e0484c2f52fe03b97aedc02b357f33fe752c52ffb"}, + {file = "numpy-2.4.1-cp313-cp313-win_arm64.whl", hash = "sha256:20d4649c773f66cc2fc36f663e091f57c3b7655f936a4c681b4250855d1da8f5"}, + {file = "numpy-2.4.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:f93bc6892fe7b0663e5ffa83b61aab510aacffd58c16e012bb9352d489d90cb7"}, + {file = "numpy-2.4.1-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:178de8f87948163d98a4c9ab5bee4ce6519ca918926ec8df195af582de28544d"}, + {file = "numpy-2.4.1-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:98b35775e03ab7f868908b524fc0a84d38932d8daf7b7e1c3c3a1b6c7a2c9f15"}, + {file = "numpy-2.4.1-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:941c2a93313d030f219f3a71fd3d91a728b82979a5e8034eb2e60d394a2b83f9"}, + {file = "numpy-2.4.1-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:529050522e983e00a6c1c6b67411083630de8b57f65e853d7b03d9281b8694d2"}, + {file = "numpy-2.4.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:2302dc0224c1cbc49bb94f7064f3f923a971bfae45c33870dcbff63a2a550505"}, + {file = "numpy-2.4.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:9171a42fcad32dcf3fa86f0a4faa5e9f8facefdb276f54b8b390d90447cff4e2"}, + {file = "numpy-2.4.1-cp313-cp313t-win32.whl", hash = "sha256:382ad67d99ef49024f11d1ce5dcb5ad8432446e4246a4b014418ba3a1175a1f4"}, + {file = "numpy-2.4.1-cp313-cp313t-win_amd64.whl", hash = "sha256:62fea415f83ad8fdb6c20840578e5fbaf5ddd65e0ec6c3c47eda0f69da172510"}, + {file = "numpy-2.4.1-cp313-cp313t-win_arm64.whl", hash = "sha256:a7870e8c5fc11aef57d6fea4b4085e537a3a60ad2cdd14322ed531fdca68d261"}, + {file = "numpy-2.4.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:3869ea1ee1a1edc16c29bbe3a2f2a4e515cc3a44d43903ad41e0cacdbaf733dc"}, + {file = "numpy-2.4.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:e867df947d427cdd7a60e3e271729090b0f0df80f5f10ab7dd436f40811699c3"}, + {file = "numpy-2.4.1-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:e3bd2cb07841166420d2fa7146c96ce00cb3410664cbc1a6be028e456c4ee220"}, + {file = "numpy-2.4.1-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:f0a90aba7d521e6954670550e561a4cb925713bd944445dbe9e729b71f6cabee"}, + {file = "numpy-2.4.1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5d558123217a83b2d1ba316b986e9248a1ed1971ad495963d555ccd75dcb1556"}, + {file = "numpy-2.4.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2f44de05659b67d20499cbc96d49f2650769afcb398b79b324bb6e297bfe3844"}, + {file = "numpy-2.4.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:69e7419c9012c4aaf695109564e3387f1259f001b4326dfa55907b098af082d3"}, + {file = "numpy-2.4.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2ffd257026eb1b34352e749d7cc1678b5eeec3e329ad8c9965a797e08ccba205"}, + {file = "numpy-2.4.1-cp314-cp314-win32.whl", hash = "sha256:727c6c3275ddefa0dc078524a85e064c057b4f4e71ca5ca29a19163c607be745"}, + {file = "numpy-2.4.1-cp314-cp314-win_amd64.whl", hash = "sha256:7d5d7999df434a038d75a748275cd6c0094b0ecdb0837342b332a82defc4dc4d"}, + {file = "numpy-2.4.1-cp314-cp314-win_arm64.whl", hash = "sha256:ce9ce141a505053b3c7bce3216071f3bf5c182b8b28930f14cd24d43932cd2df"}, + {file = "numpy-2.4.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:4e53170557d37ae404bf8d542ca5b7c629d6efa1117dac6a83e394142ea0a43f"}, + {file = "numpy-2.4.1-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:a73044b752f5d34d4232f25f18160a1cc418ea4507f5f11e299d8ac36875f8a0"}, + {file = "numpy-2.4.1-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:fb1461c99de4d040666ca0444057b06541e5642f800b71c56e6ea92d6a853a0c"}, + {file = "numpy-2.4.1-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:423797bdab2eeefbe608d7c1ec7b2b4fd3c58d51460f1ee26c7500a1d9c9ee93"}, + {file = "numpy-2.4.1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:52b5f61bdb323b566b528899cc7db2ba5d1015bda7ea811a8bcf3c89c331fa42"}, + {file = "numpy-2.4.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:42d7dd5fa36d16d52a84f821eb96031836fd405ee6955dd732f2023724d0aa01"}, + {file = "numpy-2.4.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:e7b6b5e28bbd47b7532698e5db2fe1db693d84b58c254e4389d99a27bb9b8f6b"}, + {file = "numpy-2.4.1-cp314-cp314t-win32.whl", hash = "sha256:5de60946f14ebe15e713a6f22850c2372fa72f4ff9a432ab44aa90edcadaa65a"}, + {file = "numpy-2.4.1-cp314-cp314t-win_amd64.whl", hash = "sha256:8f085da926c0d491ffff3096f91078cc97ea67e7e6b65e490bc8dcda65663be2"}, + {file = "numpy-2.4.1-cp314-cp314t-win_arm64.whl", hash = "sha256:6436cffb4f2bf26c974344439439c95e152c9a527013f26b3577be6c2ca64295"}, + {file = "numpy-2.4.1-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:8ad35f20be147a204e28b6a0575fbf3540c5e5f802634d4258d55b1ff5facce1"}, + {file = "numpy-2.4.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:8097529164c0f3e32bb89412a0905d9100bf434d9692d9fc275e18dcf53c9344"}, + {file = "numpy-2.4.1-pp311-pypy311_pp73-macosx_14_0_arm64.whl", hash = "sha256:ea66d2b41ca4a1630aae5507ee0a71647d3124d1741980138aa8f28f44dac36e"}, + {file = "numpy-2.4.1-pp311-pypy311_pp73-macosx_14_0_x86_64.whl", hash = "sha256:d3f8f0df9f4b8be57b3bf74a1d087fec68f927a2fab68231fdb442bf2c12e426"}, + {file = "numpy-2.4.1-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2023ef86243690c2791fd6353e5b4848eedaa88ca8a2d129f462049f6d484696"}, + {file = "numpy-2.4.1-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8361ea4220d763e54cff2fbe7d8c93526b744f7cd9ddab47afeff7e14e8503be"}, + {file = "numpy-2.4.1-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:4f1b68ff47680c2925f8063402a693ede215f0257f02596b1318ecdfb1d79e33"}, + {file = "numpy-2.4.1.tar.gz", hash = "sha256:a1ceafc5042451a858231588a104093474c6a5c57dcc724841f5c888d237d690"}, ] [[package]] @@ -776,17 +1503,143 @@ version = "24.1" description = "Core utilities for Python packages" optional = false python-versions = ">=3.8" +groups = ["main", "dev"] files = [ {file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"}, {file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"}, ] +[[package]] +name = "pandas" +version = "3.0.0" +description = "Powerful data structures for data analysis, time series, and statistics" +optional = true +python-versions = ">=3.11" +groups = ["main"] +markers = "extra == \"lsm\" or extra == \"all\"" +files = [ + {file = "pandas-3.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d64ce01eb9cdca96a15266aa679ae50212ec52757c79204dbc7701a222401850"}, + {file = "pandas-3.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:613e13426069793aa1ec53bdcc3b86e8d32071daea138bbcf4fa959c9cdaa2e2"}, + {file = "pandas-3.0.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0192fee1f1a8e743b464a6607858ee4b071deb0b118eb143d71c2a1d170996d5"}, + {file = "pandas-3.0.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f0b853319dec8d5e0c8b875374c078ef17f2269986a78168d9bd57e49bf650ae"}, + {file = "pandas-3.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:707a9a877a876c326ae2cb640fbdc4ef63b0a7b9e2ef55c6df9942dcee8e2af9"}, + {file = "pandas-3.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:afd0aa3d0b5cda6e0b8ffc10dbcca3b09ef3cbcd3fe2b27364f85fdc04e1989d"}, + {file = "pandas-3.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:113b4cca2614ff7e5b9fee9b6f066618fe73c5a83e99d721ffc41217b2bf57dd"}, + {file = "pandas-3.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:c14837eba8e99a8da1527c0280bba29b0eb842f64aa94982c5e21227966e164b"}, + {file = "pandas-3.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:9803b31f5039b3c3b10cc858c5e40054adb4b29b4d81cb2fd789f4121c8efbcd"}, + {file = "pandas-3.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:14c2a4099cd38a1d18ff108168ea417909b2dea3bd1ebff2ccf28ddb6a74d740"}, + {file = "pandas-3.0.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d257699b9a9960e6125686098d5714ac59d05222bef7a5e6af7a7fd87c650801"}, + {file = "pandas-3.0.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:69780c98f286076dcafca38d8b8eee1676adf220199c0a39f0ecbf976b68151a"}, + {file = "pandas-3.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4a66384f017240f3858a4c8a7cf21b0591c3ac885cddb7758a589f0f71e87ebb"}, + {file = "pandas-3.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:be8c515c9bc33989d97b89db66ea0cececb0f6e3c2a87fcc8b69443a6923e95f"}, + {file = "pandas-3.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:a453aad8c4f4e9f166436994a33884442ea62aa8b27d007311e87521b97246e1"}, + {file = "pandas-3.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:da768007b5a33057f6d9053563d6b74dd6d029c337d93c6d0d22a763a5c2ecc0"}, + {file = "pandas-3.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b78d646249b9a2bc191040988c7bb524c92fa8534fb0898a0741d7e6f2ffafa6"}, + {file = "pandas-3.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bc9cba7b355cb4162442a88ce495e01cb605f17ac1e27d6596ac963504e0305f"}, + {file = "pandas-3.0.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3c9a1a149aed3b6c9bf246033ff91e1b02d529546c5d6fb6b74a28fea0cf4c70"}, + {file = "pandas-3.0.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:95683af6175d884ee89471842acfca29172a85031fccdabc35e50c0984470a0e"}, + {file = "pandas-3.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1fbbb5a7288719e36b76b4f18d46ede46e7f916b6c8d9915b756b0a6c3f792b3"}, + {file = "pandas-3.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8e8b9808590fa364416b49b2a35c1f4cf2785a6c156935879e57f826df22038e"}, + {file = "pandas-3.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:98212a38a709feb90ae658cb6227ea3657c22ba8157d4b8f913cd4c950de5e7e"}, + {file = "pandas-3.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:177d9df10b3f43b70307a149d7ec49a1229a653f907aa60a48f1877d0e6be3be"}, + {file = "pandas-3.0.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:2713810ad3806767b89ad3b7b69ba153e1c6ff6d9c20f9c2140379b2a98b6c98"}, + {file = "pandas-3.0.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:15d59f885ee5011daf8335dff47dcb8a912a27b4ad7826dc6cbe809fd145d327"}, + {file = "pandas-3.0.0-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:24e6547fb64d2c92665dd2adbfa4e85fa4fd70a9c070e7cfb03b629a0bbab5eb"}, + {file = "pandas-3.0.0-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:48ee04b90e2505c693d3f8e8f524dab8cb8aaf7ddcab52c92afa535e717c4812"}, + {file = "pandas-3.0.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:66f72fb172959af42a459e27a8d8d2c7e311ff4c1f7db6deb3b643dbc382ae08"}, + {file = "pandas-3.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4a4a400ca18230976724a5066f20878af785f36c6756e498e94c2a5e5d57779c"}, + {file = "pandas-3.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:940eebffe55528074341a5a36515f3e4c5e25e958ebbc764c9502cfc35ba3faa"}, + {file = "pandas-3.0.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:597c08fb9fef0edf1e4fa2f9828dd27f3d78f9b8c9b4a748d435ffc55732310b"}, + {file = "pandas-3.0.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:447b2d68ac5edcbf94655fe909113a6dba6ef09ad7f9f60c80477825b6c489fe"}, + {file = "pandas-3.0.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:debb95c77ff3ed3ba0d9aa20c3a2f19165cc7956362f9873fce1ba0a53819d70"}, + {file = "pandas-3.0.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fedabf175e7cd82b69b74c30adbaa616de301291a5231138d7242596fc296a8d"}, + {file = "pandas-3.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:412d1a89aab46889f3033a386912efcdfa0f1131c5705ff5b668dda88305e986"}, + {file = "pandas-3.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:e979d22316f9350c516479dd3a92252be2937a9531ed3a26ec324198a99cdd49"}, + {file = "pandas-3.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:083b11415b9970b6e7888800c43c82e81a06cd6b06755d84804444f0007d6bb7"}, + {file = "pandas-3.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:5db1e62cb99e739fa78a28047e861b256d17f88463c76b8dafc7c1338086dca8"}, + {file = "pandas-3.0.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:697b8f7d346c68274b1b93a170a70974cdc7d7354429894d5927c1effdcccd73"}, + {file = "pandas-3.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:8cb3120f0d9467ed95e77f67a75e030b67545bcfa08964e349252d674171def2"}, + {file = "pandas-3.0.0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:33fd3e6baa72899746b820c31e4b9688c8e1b7864d7aec2de7ab5035c285277a"}, + {file = "pandas-3.0.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a8942e333dc67ceda1095227ad0febb05a3b36535e520154085db632c40ad084"}, + {file = "pandas-3.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:783ac35c4d0fe0effdb0d67161859078618b1b6587a1af15928137525217a721"}, + {file = "pandas-3.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:125eb901e233f155b268bbef9abd9afb5819db74f0e677e89a61b246228c71ac"}, + {file = "pandas-3.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:b86d113b6c109df3ce0ad5abbc259fe86a1bd4adfd4a31a89da42f84f65509bb"}, + {file = "pandas-3.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:1c39eab3ad38f2d7a249095f0a3d8f8c22cc0f847e98ccf5bbe732b272e2d9fa"}, + {file = "pandas-3.0.0.tar.gz", hash = "sha256:0facf7e87d38f721f0af46fe70d97373a37701b1c09f7ed7aeeb292ade5c050f"}, +] + +[package.dependencies] +numpy = [ + {version = ">=1.26.0", markers = "python_version < \"3.14\""}, + {version = ">=2.3.3", markers = "python_version >= \"3.14\""}, +] +python-dateutil = ">=2.8.2" +tzdata = {version = "*", markers = "sys_platform == \"win32\" or sys_platform == \"emscripten\""} + +[package.extras] +all = ["PyQt5 (>=5.15.9)", "SQLAlchemy (>=2.0.36)", "adbc-driver-postgresql (>=1.2.0)", "adbc-driver-sqlite (>=1.2.0)", "beautifulsoup4 (>=4.12.3)", "bottleneck (>=1.4.2)", "fastparquet (>=2024.11.0)", "fsspec (>=2024.10.0)", "gcsfs (>=2024.10.0)", "html5lib (>=1.1)", "hypothesis (>=6.116.0)", "jinja2 (>=3.1.5)", "lxml (>=5.3.0)", "matplotlib (>=3.9.3)", "numba (>=0.60.0)", "numexpr (>=2.10.2)", "odfpy (>=1.4.1)", "openpyxl (>=3.1.5)", "psycopg2 (>=2.9.10)", "pyarrow (>=13.0.0)", "pyiceberg (>=0.8.1)", "pymysql (>=1.1.1)", "pyreadstat (>=1.2.8)", "pytest (>=8.3.4)", "pytest-xdist (>=3.6.1)", "python-calamine (>=0.3.0)", "pytz (>=2024.2)", "pyxlsb (>=1.0.10)", "qtpy (>=2.4.2)", "s3fs (>=2024.10.0)", "scipy (>=1.14.1)", "tables (>=3.10.1)", "tabulate (>=0.9.0)", "xarray (>=2024.10.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.2.0)", "zstandard (>=0.23.0)"] +aws = ["s3fs (>=2024.10.0)"] +clipboard = ["PyQt5 (>=5.15.9)", "qtpy (>=2.4.2)"] +compression = ["zstandard (>=0.23.0)"] +computation = ["scipy (>=1.14.1)", "xarray (>=2024.10.0)"] +excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.1.5)", "python-calamine (>=0.3.0)", "pyxlsb (>=1.0.10)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.2.0)"] +feather = ["pyarrow (>=13.0.0)"] +fss = ["fsspec (>=2024.10.0)"] +gcp = ["gcsfs (>=2024.10.0)"] +hdf5 = ["tables (>=3.10.1)"] +html = ["beautifulsoup4 (>=4.12.3)", "html5lib (>=1.1)", "lxml (>=5.3.0)"] +iceberg = ["pyiceberg (>=0.8.1)"] +mysql = ["SQLAlchemy (>=2.0.36)", "pymysql (>=1.1.1)"] +output-formatting = ["jinja2 (>=3.1.5)", "tabulate (>=0.9.0)"] +parquet = ["pyarrow (>=13.0.0)"] +performance = ["bottleneck (>=1.4.2)", "numba (>=0.60.0)", "numexpr (>=2.10.2)"] +plot = ["matplotlib (>=3.9.3)"] +postgresql = ["SQLAlchemy (>=2.0.36)", "adbc-driver-postgresql (>=1.2.0)", "psycopg2 (>=2.9.10)"] +pyarrow = ["pyarrow (>=13.0.0)"] +spss = ["pyreadstat (>=1.2.8)"] +sql-other = ["SQLAlchemy (>=2.0.36)", "adbc-driver-postgresql (>=1.2.0)", "adbc-driver-sqlite (>=1.2.0)"] +test = ["hypothesis (>=6.116.0)", "pytest (>=8.3.4)", "pytest-xdist (>=3.6.1)"] +timezone = ["pytz (>=2024.2)"] +xml = ["lxml (>=5.3.0)"] + +[[package]] +name = "partd" +version = "1.4.2" +description = "Appendable key-value storage" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "partd-1.4.2-py3-none-any.whl", hash = "sha256:978e4ac767ec4ba5b86c6eaa52e5a2a3bc748a2ca839e8cc798f1cc6ce6efb0f"}, + {file = "partd-1.4.2.tar.gz", hash = "sha256:d022c33afbdc8405c226621b015e8067888173d85f7f5ecebb3cafed9a20f02c"}, +] + +[package.dependencies] +locket = "*" +toolz = "*" + +[package.extras] +complete = ["blosc", "numpy (>=1.20.0)", "pandas (>=1.3)", "pyzmq"] + +[[package]] +name = "pathlib-abc" +version = "0.5.2" +description = "Backport of pathlib ABCs" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "pathlib_abc-0.5.2-py3-none-any.whl", hash = "sha256:4c9d94cf1b23af417ce7c0417b43333b06a106c01000b286c99de230d95eefbb"}, + {file = "pathlib_abc-0.5.2.tar.gz", hash = "sha256:fcd56f147234645e2c59c7ae22808b34c364bb231f685ddd9f96885aed78a94c"}, +] + [[package]] name = "pdoc" version = "14.7.0" description = "API Documentation for Python Projects" optional = false python-versions = ">=3.8" +groups = ["docs"] files = [ {file = "pdoc-14.7.0-py3-none-any.whl", hash = "sha256:72377a907efc6b2c5b3c56b717ef34f11d93621dced3b663f3aede0b844c0ad2"}, {file = "pdoc-14.7.0.tar.gz", hash = "sha256:2d28af9c0acc39180744ad0543e4bbc3223ecba0d1302db315ec521c51f71f93"}, @@ -800,12 +1653,141 @@ pygments = ">=2.12.0" [package.extras] dev = ["hypothesis", "mypy", "pdoc-pyo3-sample-library (==1.0.11)", "pygments (>=2.14.0)", "pytest", "pytest-cov", "pytest-timeout", "ruff", "tox", "types-pygments"] +[[package]] +name = "pillow" +version = "12.1.0" +description = "Python Imaging Library (fork)" +optional = false +python-versions = ">=3.10" +groups = ["main", "dev"] +files = [ + {file = "pillow-12.1.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:fb125d860738a09d363a88daa0f59c4533529a90e564785e20fe875b200b6dbd"}, + {file = "pillow-12.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cad302dc10fac357d3467a74a9561c90609768a6f73a1923b0fd851b6486f8b0"}, + {file = "pillow-12.1.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:a40905599d8079e09f25027423aed94f2823adaf2868940de991e53a449e14a8"}, + {file = "pillow-12.1.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:92a7fe4225365c5e3a8e598982269c6d6698d3e783b3b1ae979e7819f9cd55c1"}, + {file = "pillow-12.1.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f10c98f49227ed8383d28174ee95155a675c4ed7f85e2e573b04414f7e371bda"}, + {file = "pillow-12.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8637e29d13f478bc4f153d8daa9ffb16455f0a6cb287da1b432fdad2bfbd66c7"}, + {file = "pillow-12.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:21e686a21078b0f9cb8c8a961d99e6a4ddb88e0fc5ea6e130172ddddc2e5221a"}, + {file = "pillow-12.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:2415373395a831f53933c23ce051021e79c8cd7979822d8cc478547a3f4da8ef"}, + {file = "pillow-12.1.0-cp310-cp310-win32.whl", hash = "sha256:e75d3dba8fc1ddfec0cd752108f93b83b4f8d6ab40e524a95d35f016b9683b09"}, + {file = "pillow-12.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:64efdf00c09e31efd754448a383ea241f55a994fd079866b92d2bbff598aad91"}, + {file = "pillow-12.1.0-cp310-cp310-win_arm64.whl", hash = "sha256:f188028b5af6b8fb2e9a76ac0f841a575bd1bd396e46ef0840d9b88a48fdbcea"}, + {file = "pillow-12.1.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:a83e0850cb8f5ac975291ebfc4170ba481f41a28065277f7f735c202cd8e0af3"}, + {file = "pillow-12.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b6e53e82ec2db0717eabb276aa56cf4e500c9a7cec2c2e189b55c24f65a3e8c0"}, + {file = "pillow-12.1.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:40a8e3b9e8773876d6e30daed22f016509e3987bab61b3b7fe309d7019a87451"}, + {file = "pillow-12.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:800429ac32c9b72909c671aaf17ecd13110f823ddb7db4dfef412a5587c2c24e"}, + {file = "pillow-12.1.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0b022eaaf709541b391ee069f0022ee5b36c709df71986e3f7be312e46f42c84"}, + {file = "pillow-12.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1f345e7bc9d7f368887c712aa5054558bad44d2a301ddf9248599f4161abc7c0"}, + {file = "pillow-12.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d70347c8a5b7ccd803ec0c85c8709f036e6348f1e6a5bf048ecd9c64d3550b8b"}, + {file = "pillow-12.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1fcc52d86ce7a34fd17cb04e87cfdb164648a3662a6f20565910a99653d66c18"}, + {file = "pillow-12.1.0-cp311-cp311-win32.whl", hash = "sha256:3ffaa2f0659e2f740473bcf03c702c39a8d4b2b7ffc629052028764324842c64"}, + {file = "pillow-12.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:806f3987ffe10e867bab0ddad45df1148a2b98221798457fa097ad85d6e8bc75"}, + {file = "pillow-12.1.0-cp311-cp311-win_arm64.whl", hash = "sha256:9f5fefaca968e700ad1a4a9de98bf0869a94e397fe3524c4c9450c1445252304"}, + {file = "pillow-12.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a332ac4ccb84b6dde65dbace8431f3af08874bf9770719d32a635c4ef411b18b"}, + {file = "pillow-12.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:907bfa8a9cb790748a9aa4513e37c88c59660da3bcfffbd24a7d9e6abf224551"}, + {file = "pillow-12.1.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:efdc140e7b63b8f739d09a99033aa430accce485ff78e6d311973a67b6bf3208"}, + {file = "pillow-12.1.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:bef9768cab184e7ae6e559c032e95ba8d07b3023c289f79a2bd36e8bf85605a5"}, + {file = "pillow-12.1.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:742aea052cf5ab5034a53c3846165bc3ce88d7c38e954120db0ab867ca242661"}, + {file = "pillow-12.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a6dfc2af5b082b635af6e08e0d1f9f1c4e04d17d4e2ca0ef96131e85eda6eb17"}, + {file = "pillow-12.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:609e89d9f90b581c8d16358c9087df76024cf058fa693dd3e1e1620823f39670"}, + {file = "pillow-12.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:43b4899cfd091a9693a1278c4982f3e50f7fb7cff5153b05174b4afc9593b616"}, + {file = "pillow-12.1.0-cp312-cp312-win32.whl", hash = "sha256:aa0c9cc0b82b14766a99fbe6084409972266e82f459821cd26997a488a7261a7"}, + {file = "pillow-12.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:d70534cea9e7966169ad29a903b99fc507e932069a881d0965a1a84bb57f6c6d"}, + {file = "pillow-12.1.0-cp312-cp312-win_arm64.whl", hash = "sha256:65b80c1ee7e14a87d6a068dd3b0aea268ffcabfe0498d38661b00c5b4b22e74c"}, + {file = "pillow-12.1.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:7b5dd7cbae20285cdb597b10eb5a2c13aa9de6cde9bb64a3c1317427b1db1ae1"}, + {file = "pillow-12.1.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:29a4cef9cb672363926f0470afc516dbf7305a14d8c54f7abbb5c199cd8f8179"}, + {file = "pillow-12.1.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:681088909d7e8fa9e31b9799aaa59ba5234c58e5e4f1951b4c4d1082a2e980e0"}, + {file = "pillow-12.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:983976c2ab753166dc66d36af6e8ec15bb511e4a25856e2227e5f7e00a160587"}, + {file = "pillow-12.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:db44d5c160a90df2d24a24760bbd37607d53da0b34fb546c4c232af7192298ac"}, + {file = "pillow-12.1.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:6b7a9d1db5dad90e2991645874f708e87d9a3c370c243c2d7684d28f7e133e6b"}, + {file = "pillow-12.1.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:6258f3260986990ba2fa8a874f8b6e808cf5abb51a94015ca3dc3c68aa4f30ea"}, + {file = "pillow-12.1.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e115c15e3bc727b1ca3e641a909f77f8ca72a64fff150f666fcc85e57701c26c"}, + {file = "pillow-12.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6741e6f3074a35e47c77b23a4e4f2d90db3ed905cb1c5e6e0d49bff2045632bc"}, + {file = "pillow-12.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:935b9d1aed48fcfb3f838caac506f38e29621b44ccc4f8a64d575cb1b2a88644"}, + {file = "pillow-12.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5fee4c04aad8932da9f8f710af2c1a15a83582cfb884152a9caa79d4efcdbf9c"}, + {file = "pillow-12.1.0-cp313-cp313-win32.whl", hash = "sha256:a786bf667724d84aa29b5db1c61b7bfdde380202aaca12c3461afd6b71743171"}, + {file = "pillow-12.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:461f9dfdafa394c59cd6d818bdfdbab4028b83b02caadaff0ffd433faf4c9a7a"}, + {file = "pillow-12.1.0-cp313-cp313-win_arm64.whl", hash = "sha256:9212d6b86917a2300669511ed094a9406888362e085f2431a7da985a6b124f45"}, + {file = "pillow-12.1.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:00162e9ca6d22b7c3ee8e61faa3c3253cd19b6a37f126cad04f2f88b306f557d"}, + {file = "pillow-12.1.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:7d6daa89a00b58c37cb1747ec9fb7ac3bc5ffd5949f5888657dfddde6d1312e0"}, + {file = "pillow-12.1.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e2479c7f02f9d505682dc47df8c0ea1fc5e264c4d1629a5d63fe3e2334b89554"}, + {file = "pillow-12.1.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f188d580bd870cda1e15183790d1cc2fa78f666e76077d103edf048eed9c356e"}, + {file = "pillow-12.1.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0fde7ec5538ab5095cc02df38ee99b0443ff0e1c847a045554cf5f9af1f4aa82"}, + {file = "pillow-12.1.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0ed07dca4a8464bada6139ab38f5382f83e5f111698caf3191cb8dbf27d908b4"}, + {file = "pillow-12.1.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:f45bd71d1fa5e5749587613037b172e0b3b23159d1c00ef2fc920da6f470e6f0"}, + {file = "pillow-12.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:277518bf4fe74aa91489e1b20577473b19ee70fb97c374aa50830b279f25841b"}, + {file = "pillow-12.1.0-cp313-cp313t-win32.whl", hash = "sha256:7315f9137087c4e0ee73a761b163fc9aa3b19f5f606a7fc08d83fd3e4379af65"}, + {file = "pillow-12.1.0-cp313-cp313t-win_amd64.whl", hash = "sha256:0ddedfaa8b5f0b4ffbc2fa87b556dc59f6bb4ecb14a53b33f9189713ae8053c0"}, + {file = "pillow-12.1.0-cp313-cp313t-win_arm64.whl", hash = "sha256:80941e6d573197a0c28f394753de529bb436b1ca990ed6e765cf42426abc39f8"}, + {file = "pillow-12.1.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:5cb7bc1966d031aec37ddb9dcf15c2da5b2e9f7cc3ca7c54473a20a927e1eb91"}, + {file = "pillow-12.1.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:97e9993d5ed946aba26baf9c1e8cf18adbab584b99f452ee72f7ee8acb882796"}, + {file = "pillow-12.1.0-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:414b9a78e14ffeb98128863314e62c3f24b8a86081066625700b7985b3f529bd"}, + {file = "pillow-12.1.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:e6bdb408f7c9dd2a5ff2b14a3b0bb6d4deb29fb9961e6eb3ae2031ae9a5cec13"}, + {file = "pillow-12.1.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:3413c2ae377550f5487991d444428f1a8ae92784aac79caa8b1e3b89b175f77e"}, + {file = "pillow-12.1.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e5dcbe95016e88437ecf33544ba5db21ef1b8dd6e1b434a2cb2a3d605299e643"}, + {file = "pillow-12.1.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d0a7735df32ccbcc98b98a1ac785cc4b19b580be1bdf0aeb5c03223220ea09d5"}, + {file = "pillow-12.1.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0c27407a2d1b96774cbc4a7594129cc027339fd800cd081e44497722ea1179de"}, + {file = "pillow-12.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:15c794d74303828eaa957ff8070846d0efe8c630901a1c753fdc63850e19ecd9"}, + {file = "pillow-12.1.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c990547452ee2800d8506c4150280757f88532f3de2a58e3022e9b179107862a"}, + {file = "pillow-12.1.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:b63e13dd27da389ed9475b3d28510f0f954bca0041e8e551b2a4eb1eab56a39a"}, + {file = "pillow-12.1.0-cp314-cp314-win32.whl", hash = "sha256:1a949604f73eb07a8adab38c4fe50791f9919344398bdc8ac6b307f755fc7030"}, + {file = "pillow-12.1.0-cp314-cp314-win_amd64.whl", hash = "sha256:4f9f6a650743f0ddee5593ac9e954ba1bdbc5e150bc066586d4f26127853ab94"}, + {file = "pillow-12.1.0-cp314-cp314-win_arm64.whl", hash = "sha256:808b99604f7873c800c4840f55ff389936ef1948e4e87645eaf3fccbc8477ac4"}, + {file = "pillow-12.1.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:bc11908616c8a283cf7d664f77411a5ed2a02009b0097ff8abbba5e79128ccf2"}, + {file = "pillow-12.1.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:896866d2d436563fa2a43a9d72f417874f16b5545955c54a64941e87c1376c61"}, + {file = "pillow-12.1.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8e178e3e99d3c0ea8fc64b88447f7cac8ccf058af422a6cedc690d0eadd98c51"}, + {file = "pillow-12.1.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:079af2fb0c599c2ec144ba2c02766d1b55498e373b3ac64687e43849fbbef5bc"}, + {file = "pillow-12.1.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bdec5e43377761c5dbca620efb69a77f6855c5a379e32ac5b158f54c84212b14"}, + {file = "pillow-12.1.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:565c986f4b45c020f5421a4cea13ef294dde9509a8577f29b2fc5edc7587fff8"}, + {file = "pillow-12.1.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:43aca0a55ce1eefc0aefa6253661cb54571857b1a7b2964bd8a1e3ef4b729924"}, + {file = "pillow-12.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:0deedf2ea233722476b3a81e8cdfbad786f7adbed5d848469fa59fe52396e4ef"}, + {file = "pillow-12.1.0-cp314-cp314t-win32.whl", hash = "sha256:b17fbdbe01c196e7e159aacb889e091f28e61020a8abeac07b68079b6e626988"}, + {file = "pillow-12.1.0-cp314-cp314t-win_amd64.whl", hash = "sha256:27b9baecb428899db6c0de572d6d305cfaf38ca1596b5c0542a5182e3e74e8c6"}, + {file = "pillow-12.1.0-cp314-cp314t-win_arm64.whl", hash = "sha256:f61333d817698bdcdd0f9d7793e365ac3d2a21c1f1eb02b32ad6aefb8d8ea831"}, + {file = "pillow-12.1.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:ca94b6aac0d7af2a10ba08c0f888b3d5114439b6b3ef39968378723622fed377"}, + {file = "pillow-12.1.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:351889afef0f485b84078ea40fe33727a0492b9af3904661b0abbafee0355b72"}, + {file = "pillow-12.1.0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:bb0984b30e973f7e2884362b7d23d0a348c7143ee559f38ef3eaab640144204c"}, + {file = "pillow-12.1.0-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:84cabc7095dd535ca934d57e9ce2a72ffd216e435a84acb06b2277b1de2689bd"}, + {file = "pillow-12.1.0-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:53d8b764726d3af1a138dd353116f774e3862ec7e3794e0c8781e30db0f35dfc"}, + {file = "pillow-12.1.0-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5da841d81b1a05ef940a8567da92decaa15bc4d7dedb540a8c219ad83d91808a"}, + {file = "pillow-12.1.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:75af0b4c229ac519b155028fa1be632d812a519abba9b46b20e50c6caa184f19"}, + {file = "pillow-12.1.0.tar.gz", hash = "sha256:5c5ae0a06e9ea030ab786b0251b32c7e4ce10e58d983c0d5c56029455180b5b9"}, +] + +[package.extras] +docs = ["furo", "olefile", "sphinx (>=8.2)", "sphinx-autobuild", "sphinx-copybutton", "sphinx-inline-tabs", "sphinxext-opengraph"] +fpx = ["olefile"] +mic = ["olefile"] +test-arrow = ["arro3-compute", "arro3-core", "nanoarrow", "pyarrow"] +tests = ["check-manifest", "coverage (>=7.4.2)", "defusedxml", "markdown2", "olefile", "packaging", "pyroma (>=5)", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "trove-classifiers (>=2024.10.12)"] +xmp = ["defusedxml"] + +[[package]] +name = "pims" +version = "0.7" +description = "Python Image Sequence" +optional = true +python-versions = ">=3.7" +groups = ["main"] +markers = "extra == \"lsm\" or extra == \"all\"" +files = [ + {file = "pims-0.7.tar.gz", hash = "sha256:55907a4c301256086d2aa4e34a5361b9109f24e375c2071e1117b9491e82946b"}, +] + +[package.dependencies] +imageio = "*" +numpy = ">=1.19" +packaging = "*" +slicerator = ">=0.9.8" +tifffile = "*" + [[package]] name = "platformdirs" version = "4.3.6" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"}, {file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"}, @@ -822,6 +1804,7 @@ version = "1.5.0" description = "plugin and hook calling mechanisms for python" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, @@ -831,12 +1814,35 @@ files = [ dev = ["pre-commit", "tox"] testing = ["pytest", "pytest-benchmark"] +[[package]] +name = "pooch" +version = "1.8.2" +description = "A friend to fetch your data files" +optional = false +python-versions = ">=3.7" +groups = ["dev"] +files = [ + {file = "pooch-1.8.2-py3-none-any.whl", hash = "sha256:3529a57096f7198778a5ceefd5ac3ef0e4d06a6ddaf9fc2d609b806f25302c47"}, + {file = "pooch-1.8.2.tar.gz", hash = "sha256:76561f0de68a01da4df6af38e9955c4c9d1a5c90da73f7e40276a5728ec83d10"}, +] + +[package.dependencies] +packaging = ">=20.0" +platformdirs = ">=2.5.0" +requests = ">=2.19.0" + +[package.extras] +progress = ["tqdm (>=4.41.0,<5.0.0)"] +sftp = ["paramiko (>=2.7.0)"] +xxhash = ["xxhash (>=1.4.3)"] + [[package]] name = "pre-commit" version = "3.8.0" description = "A framework for managing and maintaining multi-language pre-commit hooks." optional = false python-versions = ">=3.9" +groups = ["dev"] files = [ {file = "pre_commit-3.8.0-py2.py3-none-any.whl", hash = "sha256:9a90a53bf82fdd8778d58085faf8d83df56e40dfe18f45b19446e26bf1b3a63f"}, {file = "pre_commit-3.8.0.tar.gz", hash = "sha256:8bb6494d4a20423842e198980c9ecf9f96607a07ea29549e180eef9ae80fe7af"}, @@ -849,12 +1855,87 @@ nodeenv = ">=0.11.1" pyyaml = ">=5.1" virtualenv = ">=20.10.0" +[[package]] +name = "pyarrow" +version = "23.0.0" +description = "Python library for Apache Arrow" +optional = true +python-versions = ">=3.10" +groups = ["main"] +markers = "extra == \"lsm\" or extra == \"all\"" +files = [ + {file = "pyarrow-23.0.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:cbdc2bf5947aa4d462adcf8453cf04aee2f7932653cb67a27acd96e5e8528a67"}, + {file = "pyarrow-23.0.0-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:4d38c836930ce15cd31dce20114b21ba082da231c884bdc0a7b53e1477fe7f07"}, + {file = "pyarrow-23.0.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:4222ff8f76919ecf6c716175a0e5fddb5599faeed4c56d9ea41a2c42be4998b2"}, + {file = "pyarrow-23.0.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:87f06159cbe38125852657716889296c83c37b4d09a5e58f3d10245fd1f69795"}, + {file = "pyarrow-23.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:1675c374570d8b91ea6d4edd4608fa55951acd44e0c31bd146e091b4005de24f"}, + {file = "pyarrow-23.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:247374428fde4f668f138b04031a7e7077ba5fa0b5b1722fdf89a017bf0b7ee0"}, + {file = "pyarrow-23.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:de53b1bd3b88a2ee93c9af412c903e57e738c083be4f6392288294513cd8b2c1"}, + {file = "pyarrow-23.0.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:5574d541923efcbfdf1294a2746ae3b8c2498a2dc6cd477882f6f4e7b1ac08d3"}, + {file = "pyarrow-23.0.0-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:2ef0075c2488932e9d3c2eb3482f9459c4be629aa673b725d5e3cf18f777f8e4"}, + {file = "pyarrow-23.0.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:65666fc269669af1ef1c14478c52222a2aa5c907f28b68fb50a203c777e4f60c"}, + {file = "pyarrow-23.0.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:4d85cb6177198f3812db4788e394b757223f60d9a9f5ad6634b3e32be1525803"}, + {file = "pyarrow-23.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1a9ff6fa4141c24a03a1a434c63c8fa97ce70f8f36bccabc18ebba905ddf0f17"}, + {file = "pyarrow-23.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:84839d060a54ae734eb60a756aeacb62885244aaa282f3c968f5972ecc7b1ecc"}, + {file = "pyarrow-23.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:a149a647dbfe928ce8830a713612aa0b16e22c64feac9d1761529778e4d4eaa5"}, + {file = "pyarrow-23.0.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:5961a9f646c232697c24f54d3419e69b4261ba8a8b66b0ac54a1851faffcbab8"}, + {file = "pyarrow-23.0.0-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:632b3e7c3d232f41d64e1a4a043fb82d44f8a349f339a1188c6a0dd9d2d47d8a"}, + {file = "pyarrow-23.0.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:76242c846db1411f1d6c2cc3823be6b86b40567ee24493344f8226ba34a81333"}, + {file = "pyarrow-23.0.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:b73519f8b52ae28127000986bf228fda781e81d3095cd2d3ece76eb5cf760e1b"}, + {file = "pyarrow-23.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:068701f6823449b1b6469120f399a1239766b117d211c5d2519d4ed5861f75de"}, + {file = "pyarrow-23.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1801ba947015d10e23bca9dd6ef5d0e9064a81569a89b6e9a63b59224fd060df"}, + {file = "pyarrow-23.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:52265266201ec25b6839bf6bd4ea918ca6d50f31d13e1cf200b4261cd11dc25c"}, + {file = "pyarrow-23.0.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:ad96a597547af7827342ffb3c503c8316e5043bb09b47a84885ce39394c96e00"}, + {file = "pyarrow-23.0.0-cp313-cp313-macosx_12_0_x86_64.whl", hash = "sha256:b9edf990df77c2901e79608f08c13fbde60202334a4fcadb15c1f57bf7afee43"}, + {file = "pyarrow-23.0.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:36d1b5bc6ddcaff0083ceec7e2561ed61a51f49cce8be079ee8ed406acb6fdef"}, + {file = "pyarrow-23.0.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:4292b889cd224f403304ddda8b63a36e60f92911f89927ec8d98021845ea21be"}, + {file = "pyarrow-23.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:dfd9e133e60eaa847fd80530a1b89a052f09f695d0b9c34c235ea6b2e0924cf7"}, + {file = "pyarrow-23.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:832141cc09fac6aab1cd3719951d23301396968de87080c57c9a7634e0ecd068"}, + {file = "pyarrow-23.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:7a7d067c9a88faca655c71bcc30ee2782038d59c802d57950826a07f60d83c4c"}, + {file = "pyarrow-23.0.0-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:ce9486e0535a843cf85d990e2ec5820a47918235183a5c7b8b97ed7e92c2d47d"}, + {file = "pyarrow-23.0.0-cp313-cp313t-macosx_12_0_x86_64.whl", hash = "sha256:075c29aeaa685fd1182992a9ed2499c66f084ee54eea47da3eb76e125e06064c"}, + {file = "pyarrow-23.0.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:799965a5379589510d888be3094c2296efd186a17ca1cef5b77703d4d5121f53"}, + {file = "pyarrow-23.0.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:ef7cac8fe6fccd8b9e7617bfac785b0371a7fe26af59463074e4882747145d40"}, + {file = "pyarrow-23.0.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:15a414f710dc927132dd67c361f78c194447479555af57317066ee5116b90e9e"}, + {file = "pyarrow-23.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:3e0d2e6915eca7d786be6a77bf227fbc06d825a75b5b5fe9bcbef121dec32685"}, + {file = "pyarrow-23.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:4b317ea6e800b5704e5e5929acb6e2dc13e9276b708ea97a39eb8b345aa2658b"}, + {file = "pyarrow-23.0.0-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:20b187ed9550d233a872074159f765f52f9d92973191cd4b93f293a19efbe377"}, + {file = "pyarrow-23.0.0-cp314-cp314-macosx_12_0_x86_64.whl", hash = "sha256:18ec84e839b493c3886b9b5e06861962ab4adfaeb79b81c76afbd8d84c7d5fda"}, + {file = "pyarrow-23.0.0-cp314-cp314-manylinux_2_28_aarch64.whl", hash = "sha256:e438dd3f33894e34fd02b26bd12a32d30d006f5852315f611aa4add6c7fab4bc"}, + {file = "pyarrow-23.0.0-cp314-cp314-manylinux_2_28_x86_64.whl", hash = "sha256:a244279f240c81f135631be91146d7fa0e9e840e1dfed2aba8483eba25cd98e6"}, + {file = "pyarrow-23.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c4692e83e42438dba512a570c6eaa42be2f8b6c0f492aea27dec54bdc495103a"}, + {file = "pyarrow-23.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:ae7f30f898dfe44ea69654a35c93e8da4cef6606dc4c72394068fd95f8e9f54a"}, + {file = "pyarrow-23.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:5b86bb649e4112fb0614294b7d0a175c7513738876b89655605ebb87c804f861"}, + {file = "pyarrow-23.0.0-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:ebc017d765d71d80a3f8584ca0566b53e40464586585ac64176115baa0ada7d3"}, + {file = "pyarrow-23.0.0-cp314-cp314t-macosx_12_0_x86_64.whl", hash = "sha256:0800cc58a6d17d159df823f87ad66cefebf105b982493d4bad03ee7fab84b993"}, + {file = "pyarrow-23.0.0-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:3a7c68c722da9bb5b0f8c10e3eae71d9825a4b429b40b32709df5d1fa55beb3d"}, + {file = "pyarrow-23.0.0-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:bd5556c24622df90551063ea41f559b714aa63ca953db884cfb958559087a14e"}, + {file = "pyarrow-23.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:54810f6e6afc4ffee7c2e0051b61722fbea9a4961b46192dcfae8ea12fa09059"}, + {file = "pyarrow-23.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:14de7d48052cf4b0ed174533eafa3cfe0711b8076ad70bede32cf59f744f0d7c"}, + {file = "pyarrow-23.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:427deac1f535830a744a4f04a6ac183a64fcac4341b3f618e693c41b7b98d2b0"}, + {file = "pyarrow-23.0.0.tar.gz", hash = "sha256:180e3150e7edfcd182d3d9afba72f7cf19839a497cc76555a8dce998a8f67615"}, +] + +[[package]] +name = "pycparser" +version = "3.0" +description = "C parser in Python" +optional = true +python-versions = ">=3.10" +groups = ["main"] +markers = "implementation_name != \"PyPy\" and (extra == \"wk\" or extra == \"all\")" +files = [ + {file = "pycparser-3.0-py3-none-any.whl", hash = "sha256:b727414169a36b7d524c1c3e31839a521725078d7b2ff038656844266160a992"}, + {file = "pycparser-3.0.tar.gz", hash = "sha256:600f49d217304a5902ac3c37e1281c9fe94e4d0489de643a9504c5cdfdfc6b29"}, +] + [[package]] name = "pygments" version = "2.18.0" description = "Pygments is a syntax highlighting package written in Python." optional = false python-versions = ">=3.8" +groups = ["main", "docs"] files = [ {file = "pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"}, {file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"}, @@ -869,6 +1950,7 @@ version = "8.3.3" description = "pytest: simple powerful testing with Python" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "pytest-8.3.3-py3-none-any.whl", hash = "sha256:a6853c7375b2663155079443d2e45de913a911a11d669df02a50814944db57b2"}, {file = "pytest-8.3.3.tar.gz", hash = "sha256:70b98107bd648308a7952b06e6ca9a50bc660be218d53c257cc1fc94fda10181"}, @@ -876,11 +1958,9 @@ files = [ [package.dependencies] colorama = {version = "*", markers = "sys_platform == \"win32\""} -exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} iniconfig = "*" packaging = "*" pluggy = ">=1.5,<2" -tomli = {version = ">=1", markers = "python_version < \"3.11\""} [package.extras] dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] @@ -891,6 +1971,7 @@ version = "5.0.0" description = "Pytest plugin for measuring coverage." optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "pytest-cov-5.0.0.tar.gz", hash = "sha256:5837b58e9f6ebd335b0f8060eecce69b662415b16dc503883a02f45dfeb14857"}, {file = "pytest_cov-5.0.0-py3-none-any.whl", hash = "sha256:4f0764a1219df53214206bf1feea4633c3b558a2925c8b59f144f682861ce652"}, @@ -903,12 +1984,29 @@ pytest = ">=4.6" [package.extras] testing = ["fields", "hunter", "process-tests", "pytest-xdist", "virtualenv"] +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +description = "Extensions to the standard Python datetime module" +optional = true +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +groups = ["main"] +markers = "extra == \"lsm\" or extra == \"all\"" +files = [ + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, +] + +[package.dependencies] +six = ">=1.5" + [[package]] name = "pyyaml" version = "6.0.2" description = "YAML parser and emitter for Python" optional = false python-versions = ">=3.8" +groups = ["main", "dev"] files = [ {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, @@ -965,12 +2063,35 @@ files = [ {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, ] +[[package]] +name = "requests" +version = "2.32.5" +description = "Python HTTP for Humans." +optional = false +python-versions = ">=3.9" +groups = ["dev"] +files = [ + {file = "requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6"}, + {file = "requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf"}, +] + +[package.dependencies] +certifi = ">=2017.4.17" +charset_normalizer = ">=2,<4" +idna = ">=2.5,<4" +urllib3 = ">=1.21.1,<3" + +[package.extras] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] + [[package]] name = "rich" version = "13.9.4" description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" optional = false python-versions = ">=3.8.0" +groups = ["main"] files = [ {file = "rich-13.9.4-py3-none-any.whl", hash = "sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90"}, {file = "rich-13.9.4.tar.gz", hash = "sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098"}, @@ -979,7 +2100,6 @@ files = [ [package.dependencies] markdown-it-py = ">=2.2.0" pygments = ">=2.13.0,<3.0.0" -typing-extensions = {version = ">=4.0.0,<5.0", markers = "python_version < \"3.11\""} [package.extras] jupyter = ["ipywidgets (>=7.5.1,<9)"] @@ -990,6 +2110,7 @@ version = "1.3.1" description = "A beautiful reStructuredText renderer for rich" optional = false python-versions = ">=3.6" +groups = ["main"] files = [ {file = "rich_rst-1.3.1-py3-none-any.whl", hash = "sha256:498a74e3896507ab04492d326e794c3ef76e7cda078703aa592d1853d91098c1"}, {file = "rich_rst-1.3.1.tar.gz", hash = "sha256:fad46e3ba42785ea8c1785e2ceaa56e0ffa32dbe5410dec432f37e4107c4f383"}, @@ -1005,6 +2126,7 @@ version = "0.3.7" description = "An extremely fast Python linter and code formatter, written in Rust." optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "ruff-0.3.7-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:0e8377cccb2f07abd25e84fc5b2cbe48eeb0fea9f1719cad7caedb061d70e5ce"}, {file = "ruff-0.3.7-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:15a4d1cc1e64e556fa0d67bfd388fed416b7f3b26d5d1c3e7d192c897e39ba4b"}, @@ -1025,12 +2147,237 @@ files = [ {file = "ruff-0.3.7.tar.gz", hash = "sha256:d5c1aebee5162c2226784800ae031f660c350e7a3402c4d1f8ea4e97e232e3ba"}, ] +[[package]] +name = "scikit-image" +version = "0.26.0" +description = "Image processing in Python" +optional = false +python-versions = ">=3.11" +groups = ["main", "dev"] +files = [ + {file = "scikit_image-0.26.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b1ede33a0fb3731457eaf53af6361e73dd510f449dac437ab54573b26788baf0"}, + {file = "scikit_image-0.26.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7af7aa331c6846bd03fa28b164c18d0c3fd419dbb888fb05e958ac4257a78fdd"}, + {file = "scikit_image-0.26.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9ea6207d9e9d21c3f464efe733121c0504e494dbdc7728649ff3e23c3c5a4953"}, + {file = "scikit_image-0.26.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:74aa5518ccea28121f57a95374581d3b979839adc25bb03f289b1bc9b99c58af"}, + {file = "scikit_image-0.26.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d5c244656de905e195a904e36dbc18585e06ecf67d90f0482cbde63d7f9ad59d"}, + {file = "scikit_image-0.26.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:21a818ee6ca2f2131b9e04d8eb7637b5c18773ebe7b399ad23dcc5afaa226d2d"}, + {file = "scikit_image-0.26.0-cp311-cp311-win_amd64.whl", hash = "sha256:9490360c8d3f9a7e85c8de87daf7c0c66507960cf4947bb9610d1751928721c7"}, + {file = "scikit_image-0.26.0-cp311-cp311-win_arm64.whl", hash = "sha256:0baa0108d2d027f34d748e84e592b78acc23e965a5de0e4bb03cf371de5c0581"}, + {file = "scikit_image-0.26.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d454b93a6fa770ac5ae2d33570f8e7a321bb80d29511ce4b6b78058ebe176e8c"}, + {file = "scikit_image-0.26.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3409e89d66eff5734cd2b672d1c48d2759360057e714e1d92a11df82c87cba37"}, + {file = "scikit_image-0.26.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4c717490cec9e276afb0438dd165b7c3072d6c416709cc0f9f5a4c1070d23a44"}, + {file = "scikit_image-0.26.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7df650e79031634ac90b11e64a9eedaf5a5e06fcd09bcd03a34be01745744466"}, + {file = "scikit_image-0.26.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:cefd85033e66d4ea35b525bb0937d7f42d4cdcfed2d1888e1570d5ce450d3932"}, + {file = "scikit_image-0.26.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3f5bf622d7c0435884e1e141ebbe4b2804e16b2dd23ae4c6183e2ea99233be70"}, + {file = "scikit_image-0.26.0-cp312-cp312-win_amd64.whl", hash = "sha256:abed017474593cd3056ae0fe948d07d0747b27a085e92df5474f4955dd65aec0"}, + {file = "scikit_image-0.26.0-cp312-cp312-win_arm64.whl", hash = "sha256:4d57e39ef67a95d26860c8caf9b14b8fb130f83b34c6656a77f191fa6d1d04d8"}, + {file = "scikit_image-0.26.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a2e852eccf41d2d322b8e60144e124802873a92b8d43a6f96331aa42888491c7"}, + {file = "scikit_image-0.26.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:98329aab3bc87db352b9887f64ce8cdb8e75f7c2daa19927f2e121b797b678d5"}, + {file = "scikit_image-0.26.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:915bb3ba66455cf8adac00dc8fdf18a4cd29656aec7ddd38cb4dda90289a6f21"}, + {file = "scikit_image-0.26.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b36ab5e778bf50af5ff386c3ac508027dc3aaeccf2161bdf96bde6848f44d21b"}, + {file = "scikit_image-0.26.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:09bad6a5d5949c7896c8347424c4cca899f1d11668030e5548813ab9c2865dcb"}, + {file = "scikit_image-0.26.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:aeb14db1ed09ad4bee4ceb9e635547a8d5f3549be67fc6c768c7f923e027e6cd"}, + {file = "scikit_image-0.26.0-cp313-cp313-win_amd64.whl", hash = "sha256:ac529eb9dbd5954f9aaa2e3fe9a3fd9661bfe24e134c688587d811a0233127f1"}, + {file = "scikit_image-0.26.0-cp313-cp313-win_arm64.whl", hash = "sha256:a2d211bc355f59725efdcae699b93b30348a19416cc9e017f7b2fb599faf7219"}, + {file = "scikit_image-0.26.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:9eefb4adad066da408a7601c4c24b07af3b472d90e08c3e7483d4e9e829d8c49"}, + {file = "scikit_image-0.26.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:6caec76e16c970c528d15d1c757363334d5cb3069f9cea93d2bead31820511f3"}, + {file = "scikit_image-0.26.0-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a07200fe09b9d99fcdab959859fe0f7db8df6333d6204344425d476850ce3604"}, + {file = "scikit_image-0.26.0-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:92242351bccf391fc5df2d1529d15470019496d2498d615beb68da85fe7fdf37"}, + {file = "scikit_image-0.26.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:52c496f75a7e45844d951557f13c08c81487c6a1da2e3c9c8a39fcde958e02cc"}, + {file = "scikit_image-0.26.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:20ef4a155e2e78b8ab973998e04d8a361d49d719e65412405f4dadd9155a61d9"}, + {file = "scikit_image-0.26.0-cp313-cp313t-win_amd64.whl", hash = "sha256:c9087cf7d0e7f33ab5c46d2068d86d785e70b05400a891f73a13400f1e1faf6a"}, + {file = "scikit_image-0.26.0-cp313-cp313t-win_arm64.whl", hash = "sha256:27d58bc8b2acd351f972c6508c1b557cfed80299826080a4d803dd29c51b707e"}, + {file = "scikit_image-0.26.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:63af3d3a26125f796f01052052f86806da5b5e54c6abef152edb752683075a9c"}, + {file = "scikit_image-0.26.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ce00600cd70d4562ed59f80523e18cdcc1fae0e10676498a01f73c255774aefd"}, + {file = "scikit_image-0.26.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6381edf972b32e4f54085449afde64365a57316637496c1325a736987083e2ab"}, + {file = "scikit_image-0.26.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c6624a76c6085218248154cc7e1500e6b488edcd9499004dd0d35040607d7505"}, + {file = "scikit_image-0.26.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:f775f0e420faac9c2aa6757135f4eb468fb7b70e0b67fa77a5e79be3c30ee331"}, + {file = "scikit_image-0.26.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:ede4d6d255cc5da9faeb2f9ba7fedbc990abbc652db429f40a16b22e770bb578"}, + {file = "scikit_image-0.26.0-cp314-cp314-win_amd64.whl", hash = "sha256:0660b83968c15293fd9135e8d860053ee19500d52bf55ca4fb09de595a1af650"}, + {file = "scikit_image-0.26.0-cp314-cp314-win_arm64.whl", hash = "sha256:b8d14d3181c21c11170477a42542c1addc7072a90b986675a71266ad17abc37f"}, + {file = "scikit_image-0.26.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:cde0bbd57e6795eba83cb10f71a677f7239271121dc950bc060482834a668ad1"}, + {file = "scikit_image-0.26.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:163e9afb5b879562b9aeda0dd45208a35316f26cc7a3aed54fd601604e5cf46f"}, + {file = "scikit_image-0.26.0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:724f79fd9b6cb6f4a37864fe09f81f9f5d5b9646b6868109e1b100d1a7019e59"}, + {file = "scikit_image-0.26.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3268f13310e6857508bd87202620df996199a016a1d281b309441d227c822394"}, + {file = "scikit_image-0.26.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:fac96a1f9b06cd771cbbb3cd96c5332f36d4efd839b1d8b053f79e5887acde62"}, + {file = "scikit_image-0.26.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:2c1e7bd342f43e7a97e571b3f03ba4c1293ea1a35c3f13f41efdc8a81c1dc8f2"}, + {file = "scikit_image-0.26.0-cp314-cp314t-win_amd64.whl", hash = "sha256:b702c3bb115e1dcf4abf5297429b5c90f2189655888cbed14921f3d26f81d3a4"}, + {file = "scikit_image-0.26.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0608aa4a9ec39e0843de10d60edb2785a30c1c47819b67866dd223ebd149acaf"}, + {file = "scikit_image-0.26.0.tar.gz", hash = "sha256:f5f970ab04efad85c24714321fcc91613fcb64ef2a892a13167df2f3e59199fa"}, +] + +[package.dependencies] +imageio = ">=2.33,<2.35.0 || >2.35.0" +lazy-loader = ">=0.4" +networkx = ">=3.0" +numpy = ">=1.24" +packaging = ">=21" +pillow = ">=10.1" +scipy = ">=1.11.4" +tifffile = ">=2022.8.12" + +[package.extras] +asv = ["asv ; sys_platform != \"emscripten\""] +build = ["Cython (>=3.0.8,!=3.2.0b1)", "build (>=1.2.1)", "meson-python (>=0.16)", "ninja (>=1.11.1.1)", "numpy (>=2.0)", "pythran (>=0.16)", "spin (==0.13)"] +data = ["pooch (>=1.6.0)"] +developer = ["docstub (==0.3.0.post0)", "ipython", "pre-commit", "scikit-image[asv]"] +docs = ["PyWavelets (>=1.6)", "dask[array] (>=2023.2.0)", "intersphinx-registry (>=0.2411.14)", "ipykernel", "ipywidgets", "kaleido (==0.2.1)", "matplotlib (>=3.7)", "myst-parser", "numpydoc (>=1.7)", "pandas (>=2.0)", "plotly (>=5.20)", "pooch (>=1.6)", "pydata-sphinx-theme (>=0.16)", "pytest-doctestplus (>=1.6.0)", "scikit-learn (>=1.2)", "seaborn (>=0.11)", "sphinx (>=8.0)", "sphinx-copybutton", "sphinx-gallery[parallel] (>=0.18)", "sphinx_design (>=0.5)", "tifffile (>=2022.8.12)"] +optional = ["SimpleITK ; sys_platform != \"emscripten\"", "pyamg (>=5.2) ; sys_platform != \"emscripten\" and python_version < \"3.14\"", "scikit-image[optional-free-threaded]", "scikit-learn (>=1.2)"] +optional-free-threaded = ["PyWavelets (>=1.6)", "astropy (>=6.0)", "dask[array] (>=2023.2.0)", "matplotlib (>=3.7)", "pooch (>=1.6.0) ; sys_platform != \"emscripten\""] +test = ["numpydoc (>=1.7)", "pooch (>=1.6.0) ; sys_platform != \"emscripten\"", "pytest (>=8.3)", "pytest-cov (>=2.11.0)", "pytest-doctestplus (>=1.6.0)", "pytest-faulthandler", "pytest-localserver", "pytest-pretty"] + +[[package]] +name = "scipy" +version = "1.17.0" +description = "Fundamental algorithms for scientific computing in Python" +optional = false +python-versions = ">=3.11" +groups = ["main", "dev"] +files = [ + {file = "scipy-1.17.0-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:2abd71643797bd8a106dff97894ff7869eeeb0af0f7a5ce02e4227c6a2e9d6fd"}, + {file = "scipy-1.17.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:ef28d815f4d2686503e5f4f00edc387ae58dfd7a2f42e348bb53359538f01558"}, + {file = "scipy-1.17.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:272a9f16d6bb4667e8b50d25d71eddcc2158a214df1b566319298de0939d2ab7"}, + {file = "scipy-1.17.0-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:7204fddcbec2fe6598f1c5fdf027e9f259106d05202a959a9f1aecf036adc9f6"}, + {file = "scipy-1.17.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fc02c37a5639ee67d8fb646ffded6d793c06c5622d36b35cfa8fe5ececb8f042"}, + {file = "scipy-1.17.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dac97a27520d66c12a34fd90a4fe65f43766c18c0d6e1c0a80f114d2260080e4"}, + {file = "scipy-1.17.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ebb7446a39b3ae0fe8f416a9a3fdc6fba3f11c634f680f16a239c5187bc487c0"}, + {file = "scipy-1.17.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:474da16199f6af66601a01546144922ce402cb17362e07d82f5a6cf8f963e449"}, + {file = "scipy-1.17.0-cp311-cp311-win_amd64.whl", hash = "sha256:255c0da161bd7b32a6c898e7891509e8a9289f0b1c6c7d96142ee0d2b114c2ea"}, + {file = "scipy-1.17.0-cp311-cp311-win_arm64.whl", hash = "sha256:85b0ac3ad17fa3be50abd7e69d583d98792d7edc08367e01445a1e2076005379"}, + {file = "scipy-1.17.0-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:0d5018a57c24cb1dd828bcf51d7b10e65986d549f52ef5adb6b4d1ded3e32a57"}, + {file = "scipy-1.17.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:88c22af9e5d5a4f9e027e26772cc7b5922fab8bcc839edb3ae33de404feebd9e"}, + {file = "scipy-1.17.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:f3cd947f20fe17013d401b64e857c6b2da83cae567adbb75b9dcba865abc66d8"}, + {file = "scipy-1.17.0-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:e8c0b331c2c1f531eb51f1b4fc9ba709521a712cce58f1aa627bc007421a5306"}, + {file = "scipy-1.17.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5194c445d0a1c7a6c1a4a4681b6b7c71baad98ff66d96b949097e7513c9d6742"}, + {file = "scipy-1.17.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9eeb9b5f5997f75507814ed9d298ab23f62cf79f5a3ef90031b1ee2506abdb5b"}, + {file = "scipy-1.17.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:40052543f7bbe921df4408f46003d6f01c6af109b9e2c8a66dd1cf6cf57f7d5d"}, + {file = "scipy-1.17.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0cf46c8013fec9d3694dc572f0b54100c28405d55d3e2cb15e2895b25057996e"}, + {file = "scipy-1.17.0-cp312-cp312-win_amd64.whl", hash = "sha256:0937a0b0d8d593a198cededd4c439a0ea216a3f36653901ea1f3e4be949056f8"}, + {file = "scipy-1.17.0-cp312-cp312-win_arm64.whl", hash = "sha256:f603d8a5518c7426414d1d8f82e253e454471de682ce5e39c29adb0df1efb86b"}, + {file = "scipy-1.17.0-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:65ec32f3d32dfc48c72df4291345dae4f048749bc8d5203ee0a3f347f96c5ce6"}, + {file = "scipy-1.17.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:1f9586a58039d7229ce77b52f8472c972448cded5736eaf102d5658bbac4c269"}, + {file = "scipy-1.17.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:9fad7d3578c877d606b1150135c2639e9de9cecd3705caa37b66862977cc3e72"}, + {file = "scipy-1.17.0-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:423ca1f6584fc03936972b5f7c06961670dbba9f234e71676a7c7ccf938a0d61"}, + {file = "scipy-1.17.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fe508b5690e9eaaa9467fc047f833af58f1152ae51a0d0aed67aa5801f4dd7d6"}, + {file = "scipy-1.17.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6680f2dfd4f6182e7d6db161344537da644d1cf85cf293f015c60a17ecf08752"}, + {file = "scipy-1.17.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:eec3842ec9ac9de5917899b277428886042a93db0b227ebbe3a333b64ec7643d"}, + {file = "scipy-1.17.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d7425fcafbc09a03731e1bc05581f5fad988e48c6a861f441b7ab729a49a55ea"}, + {file = "scipy-1.17.0-cp313-cp313-win_amd64.whl", hash = "sha256:87b411e42b425b84777718cc41516b8a7e0795abfa8e8e1d573bf0ef014f0812"}, + {file = "scipy-1.17.0-cp313-cp313-win_arm64.whl", hash = "sha256:357ca001c6e37601066092e7c89cca2f1ce74e2a520ca78d063a6d2201101df2"}, + {file = "scipy-1.17.0-cp313-cp313t-macosx_10_14_x86_64.whl", hash = "sha256:ec0827aa4d36cb79ff1b81de898e948a51ac0b9b1c43e4a372c0508c38c0f9a3"}, + {file = "scipy-1.17.0-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:819fc26862b4b3c73a60d486dbb919202f3d6d98c87cf20c223511429f2d1a97"}, + {file = "scipy-1.17.0-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:363ad4ae2853d88ebcde3ae6ec46ccca903ea9835ee8ba543f12f575e7b07e4e"}, + {file = "scipy-1.17.0-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:979c3a0ff8e5ba254d45d59ebd38cde48fce4f10b5125c680c7a4bfe177aab07"}, + {file = "scipy-1.17.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:130d12926ae34399d157de777472bf82e9061c60cc081372b3118edacafe1d00"}, + {file = "scipy-1.17.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6e886000eb4919eae3a44f035e63f0fd8b651234117e8f6f29bad1cd26e7bc45"}, + {file = "scipy-1.17.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:13c4096ac6bc31d706018f06a49abe0485f96499deb82066b94d19b02f664209"}, + {file = "scipy-1.17.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:cacbaddd91fcffde703934897c5cd2c7cb0371fac195d383f4e1f1c5d3f3bd04"}, + {file = "scipy-1.17.0-cp313-cp313t-win_amd64.whl", hash = "sha256:edce1a1cf66298cccdc48a1bdf8fb10a3bf58e8b58d6c3883dd1530e103f87c0"}, + {file = "scipy-1.17.0-cp313-cp313t-win_arm64.whl", hash = "sha256:30509da9dbec1c2ed8f168b8d8aa853bc6723fede1dbc23c7d43a56f5ab72a67"}, + {file = "scipy-1.17.0-cp314-cp314-macosx_10_14_x86_64.whl", hash = "sha256:c17514d11b78be8f7e6331b983a65a7f5ca1fd037b95e27b280921fe5606286a"}, + {file = "scipy-1.17.0-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:4e00562e519c09da34c31685f6acc3aa384d4d50604db0f245c14e1b4488bfa2"}, + {file = "scipy-1.17.0-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:f7df7941d71314e60a481e02d5ebcb3f0185b8d799c70d03d8258f6c80f3d467"}, + {file = "scipy-1.17.0-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:aabf057c632798832f071a8dde013c2e26284043934f53b00489f1773b33527e"}, + {file = "scipy-1.17.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a38c3337e00be6fd8a95b4ed66b5d988bac4ec888fd922c2ea9fe5fb1603dd67"}, + {file = "scipy-1.17.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:00fb5f8ec8398ad90215008d8b6009c9db9fa924fd4c7d6be307c6f945f9cd73"}, + {file = "scipy-1.17.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:f2a4942b0f5f7c23c7cd641a0ca1955e2ae83dedcff537e3a0259096635e186b"}, + {file = "scipy-1.17.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:dbf133ced83889583156566d2bdf7a07ff89228fe0c0cb727f777de92092ec6b"}, + {file = "scipy-1.17.0-cp314-cp314-win_amd64.whl", hash = "sha256:3625c631a7acd7cfd929e4e31d2582cf00f42fcf06011f59281271746d77e061"}, + {file = "scipy-1.17.0-cp314-cp314-win_arm64.whl", hash = "sha256:9244608d27eafe02b20558523ba57f15c689357c85bdcfe920b1828750aa26eb"}, + {file = "scipy-1.17.0-cp314-cp314t-macosx_10_14_x86_64.whl", hash = "sha256:2b531f57e09c946f56ad0b4a3b2abee778789097871fc541e267d2eca081cff1"}, + {file = "scipy-1.17.0-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:13e861634a2c480bd237deb69333ac79ea1941b94568d4b0efa5db5e263d4fd1"}, + {file = "scipy-1.17.0-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:eb2651271135154aa24f6481cbae5cc8af1f0dd46e6533fb7b56aa9727b6a232"}, + {file = "scipy-1.17.0-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:c5e8647f60679790c2f5c76be17e2e9247dc6b98ad0d3b065861e082c56e078d"}, + {file = "scipy-1.17.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5fb10d17e649e1446410895639f3385fd2bf4c3c7dfc9bea937bddcbc3d7b9ba"}, + {file = "scipy-1.17.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8547e7c57f932e7354a2319fab613981cde910631979f74c9b542bb167a8b9db"}, + {file = "scipy-1.17.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:33af70d040e8af9d5e7a38b5ed3b772adddd281e3062ff23fec49e49681c38cf"}, + {file = "scipy-1.17.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:f9eb55bb97d00f8b7ab95cb64f873eb0bf54d9446264d9f3609130381233483f"}, + {file = "scipy-1.17.0-cp314-cp314t-win_amd64.whl", hash = "sha256:1ff269abf702f6c7e67a4b7aad981d42871a11b9dd83c58d2d2ea624efbd1088"}, + {file = "scipy-1.17.0-cp314-cp314t-win_arm64.whl", hash = "sha256:031121914e295d9791319a1875444d55079885bbae5bdc9c5e0f2ee5f09d34ff"}, + {file = "scipy-1.17.0.tar.gz", hash = "sha256:2591060c8e648d8b96439e111ac41fd8342fdeff1876be2e19dea3fe8930454e"}, +] + +[package.dependencies] +numpy = ">=1.26.4,<2.7" + +[package.extras] +dev = ["click (<8.3.0)", "cython-lint (>=0.12.2)", "mypy (==1.10.0)", "pycodestyle", "ruff (>=0.12.0)", "spin", "types-psutil", "typing_extensions"] +doc = ["intersphinx_registry", "jupyterlite-pyodide-kernel", "jupyterlite-sphinx (>=0.19.1)", "jupytext", "linkify-it-py", "matplotlib (>=3.5)", "myst-nb (>=1.2.0)", "numpydoc", "pooch", "pydata-sphinx-theme (>=0.15.2)", "sphinx (>=5.0.0,<8.2.0)", "sphinx-copybutton", "sphinx-design (>=0.4.0)", "tabulate"] +test = ["Cython", "array-api-strict (>=2.3.1)", "asv", "gmpy2", "hypothesis (>=6.30)", "meson", "mpmath", "ninja ; sys_platform != \"emscripten\"", "pooch", "pytest (>=8.0.0)", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] + +[[package]] +name = "six" +version = "1.17.0" +description = "Python 2 and 3 compatibility utilities" +optional = true +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +groups = ["main"] +markers = "extra == \"lsm\" or extra == \"all\"" +files = [ + {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"}, + {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, +] + +[[package]] +name = "slicerator" +version = "1.1.0" +description = "A lazy-loading, fancy-sliceable iterable." +optional = true +python-versions = "*" +groups = ["main"] +markers = "extra == \"lsm\" or extra == \"all\"" +files = [ + {file = "slicerator-1.1.0-py3-none-any.whl", hash = "sha256:167668d48c6d3a5ba0bd3d54b2688e81ee267dc20aef299e547d711e6f3c441a"}, + {file = "slicerator-1.1.0.tar.gz", hash = "sha256:44010a7f5cd87680c07213b5cabe81d1fb71252962943e5373ee7d14605d6046"}, +] + +[[package]] +name = "tensorstore" +version = "0.1.80" +description = "Read and write large, multi-dimensional arrays" +optional = true +python-versions = ">=3.11" +groups = ["main"] +markers = "extra == \"ts\" or extra == \"all\"" +files = [ + {file = "tensorstore-0.1.80-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:246641a8780ee5e04e88bc95c8e31faac6471bab1180d1f5cdc9804b29a77c04"}, + {file = "tensorstore-0.1.80-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7451b30f99d9f31a2b9d70e6ef61815713dc782c58c6d817f91781341e4dac05"}, + {file = "tensorstore-0.1.80-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1113a6982fc0fa8dda8fcc0495715e647ac3360909a86ff13f2e04564f82d54a"}, + {file = "tensorstore-0.1.80-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b193a7a1c4f455a61e60ed2dd67271a3daab0910ddb4bd9db51390d1b36d9996"}, + {file = "tensorstore-0.1.80-cp311-cp311-win_amd64.whl", hash = "sha256:9c088e8c9f67c266ef4dae3703bd617f7c0cb0fd98e99c4500692e38a4328140"}, + {file = "tensorstore-0.1.80-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:f65dfaf9e737a41389e29a5a2ea52ca5d14c8d6f48b402c723d800cd16d322b0"}, + {file = "tensorstore-0.1.80-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f8b51d7e685bbb63f6becd7d2ac8634d5ab67ec7e53038e597182e2db2c7aa90"}, + {file = "tensorstore-0.1.80-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:acb8d52fadcefafef4ef8ecca3fc99b1d0e3c5c5a888766484c3e39f050be7f5"}, + {file = "tensorstore-0.1.80-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bc28a58c580253a526a4b6d239d18181ef96f1e285a502dbb03ff15eeec07a5b"}, + {file = "tensorstore-0.1.80-cp312-cp312-win_amd64.whl", hash = "sha256:1b2b2ed0051dfab7e25295b14e6620520729e6e2ddf505f98c8d3917569614bf"}, + {file = "tensorstore-0.1.80-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:46136fe42ee6dd835d957db37073058aea0b78fdfbe2975941640131b7740824"}, + {file = "tensorstore-0.1.80-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a92505189731fcb03f1c69a84ea4460abb24204bfac1f339448a0621e7def77c"}, + {file = "tensorstore-0.1.80-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:de63843706fdfe9565a45567238c5b1e55a0b28bbde6524200b31d29043a9a16"}, + {file = "tensorstore-0.1.80-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6c8dbbdd31cbb28eccfb23dbbd4218fe67bfc32e9cb452875a485b81031c949d"}, + {file = "tensorstore-0.1.80-cp313-cp313-win_amd64.whl", hash = "sha256:c0529afab3800749dd245843d3bf0d061a109a8edb77fb345f476e8bccda51b8"}, + {file = "tensorstore-0.1.80-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:04c29d979eb8b8ee48f873dc13d2701bfd49425500ffc5b848e4ec55b2548281"}, + {file = "tensorstore-0.1.80-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:189d924eaec394c9331e284a9c513ed583e336472a925823b5151cb26f41d091"}, + {file = "tensorstore-0.1.80-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:07e4a84bacf70b78305831897068a9b5ad30326e63bbeb92c4bf7e565fcf5e9e"}, + {file = "tensorstore-0.1.80-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d2b353b0bd53fedd77fc5a12a1c1a91cacc3cf59e3dd785529c5a54b31d1c7b1"}, + {file = "tensorstore-0.1.80-cp314-cp314-win_amd64.whl", hash = "sha256:53fd121ccd332bc4cc397f7af45889360c668b43dc3ff6bc3264df0f9886c11a"}, + {file = "tensorstore-0.1.80-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:4baee67fce95f29f593fbab4866119347115eaace887732aa92cfcbb9e6b0748"}, + {file = "tensorstore-0.1.80-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:8cd11027b5a8b66db8d344085a31a1666c78621dac27039c4d571bc4974804a1"}, + {file = "tensorstore-0.1.80-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b7c5dd434bba4ee08fe46bbbdb25c60dd3d47ccb4b8561a9751cf1526da52b8"}, + {file = "tensorstore-0.1.80-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e93df6d34ff5f0f6be245f4d29b99a7c1eef8ad91b50686adf57a5eeea99cb74"}, + {file = "tensorstore-0.1.80.tar.gz", hash = "sha256:4158fe76b96f62d12a37d7868150d836e089b5280b2bdd363c43c5d651f10e26"}, +] + +[package.dependencies] +ml_dtypes = ">=0.5.0" +numpy = ">=1.22.0" + [[package]] name = "tifffile" version = "2024.9.20" description = "Read and write TIFF files" optional = false python-versions = ">=3.10" +groups = ["main", "dev"] files = [ {file = "tifffile-2024.9.20-py3-none-any.whl", hash = "sha256:c54dc85bc1065d972cb8a6ffb3181389d597876aa80177933459733e4ed243dd"}, {file = "tifffile-2024.9.20.tar.gz", hash = "sha256:3fbf3be2f995a7051a8ae05a4be70c96fc0789f22ed6f1c4104c973cf68a640b"}, @@ -1048,33 +2395,111 @@ xml = ["defusedxml", "lxml"] zarr = ["fsspec", "zarr"] [[package]] -name = "tomli" -version = "2.0.2" -description = "A lil' TOML parser" +name = "toolz" +version = "1.1.0" +description = "List processing tools and functional utilities" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "toolz-1.1.0-py3-none-any.whl", hash = "sha256:15ccc861ac51c53696de0a5d6d4607f99c210739caf987b5d2054f3efed429d8"}, + {file = "toolz-1.1.0.tar.gz", hash = "sha256:27a5c770d068c110d9ed9323f24f1543e83b2f300a687b7891c1a6d56b697b5b"}, +] + +[[package]] +name = "tqdm" +version = "4.67.1" +description = "Fast, Extensible Progress Meter" +optional = false +python-versions = ">=3.7" +groups = ["main"] files = [ - {file = "tomli-2.0.2-py3-none-any.whl", hash = "sha256:2ebe24485c53d303f690b0ec092806a085f07af5a5aa1464f3931eec36caaa38"}, - {file = "tomli-2.0.2.tar.gz", hash = "sha256:d46d457a85337051c36524bc5349dd91b1877838e2979ac5ced3e710ed8a60ed"}, + {file = "tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2"}, + {file = "tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2"}, ] +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[package.extras] +dev = ["nbval", "pytest (>=6)", "pytest-asyncio (>=0.24)", "pytest-cov", "pytest-timeout"] +discord = ["requests"] +notebook = ["ipywidgets (>=6)"] +slack = ["slack-sdk"] +telegram = ["requests"] + [[package]] name = "typing-extensions" version = "4.12.2" description = "Backported and Experimental Type Hints for Python 3.8+" optional = false python-versions = ">=3.8" +groups = ["main", "dev"] files = [ {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, ] +[[package]] +name = "tzdata" +version = "2025.3" +description = "Provider of IANA time zone data" +optional = true +python-versions = ">=2" +groups = ["main"] +markers = "(sys_platform == \"win32\" or sys_platform == \"emscripten\") and (extra == \"lsm\" or extra == \"all\")" +files = [ + {file = "tzdata-2025.3-py2.py3-none-any.whl", hash = "sha256:06a47e5700f3081aab02b2e513160914ff0694bce9947d6b76ebd6bf57cfc5d1"}, + {file = "tzdata-2025.3.tar.gz", hash = "sha256:de39c2ca5dc7b0344f2eba86f49d614019d29f060fc4ebc8a417896a620b56a7"}, +] + +[[package]] +name = "universal-pathlib" +version = "0.3.8" +description = "pathlib api extended to use fsspec backends" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "universal_pathlib-0.3.8-py3-none-any.whl", hash = "sha256:dac4fd9a3df918d85bb6da678e794b5dfa9ecdb5ff74675b497553dbe50134b8"}, + {file = "universal_pathlib-0.3.8.tar.gz", hash = "sha256:ead2b65bca3df6e11c3b7cb36fc9846340bc3c2db4ef57131550260422b0a3e8"}, +] + +[package.dependencies] +fsspec = ">=2024.5.0" +pathlib-abc = ">=0.5.1,<0.6.0" + +[package.extras] +dev = ["adlfs (>=2024)", "cheroot", "fsspec[adl,gcs,github,http,s3,smb,ssh] (>=2024.5.0)", "gcsfs (>=2024.5.0)", "huggingface_hub", "moto[s3,server]", "pyftpdlib", "s3fs (>=2024.5.0)", "typing_extensions ; python_version < \"3.11\"", "webdav4[fsspec]", "wsgidav"] +dev-third-party = ["pydantic", "pydantic-settings"] +tests = ["mypy (>=1.10.0)", "packaging", "pydantic (>=2)", "pylint (>=2.17.4)", "pytest (>=8)", "pytest-cov (>=4.1.0)", "pytest-mock (>=3.12.0)", "pytest-mypy-plugins (>=3.1.2)", "pytest-sugar (>=0.9.7)"] +typechecking = ["mypy (>=1.10.0)", "pytest-mypy-plugins (>=3.1.2)"] + +[[package]] +name = "urllib3" +version = "2.6.3" +description = "HTTP library with thread-safe connection pooling, file post, and more." +optional = false +python-versions = ">=3.9" +groups = ["dev"] +files = [ + {file = "urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4"}, + {file = "urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed"}, +] + +[package.extras] +brotli = ["brotli (>=1.2.0) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=1.2.0.0) ; platform_python_implementation != \"CPython\""] +h2 = ["h2 (>=4,<5)"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["backports-zstd (>=1.0.0) ; python_version < \"3.14\""] + [[package]] name = "virtualenv" version = "20.27.1" description = "Virtual Python Environment builder" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "virtualenv-20.27.1-py3-none-any.whl", hash = "sha256:f11f1b8a29525562925f745563bfd48b189450f61fb34c4f9cc79dd5aa32a1f4"}, {file = "virtualenv-20.27.1.tar.gz", hash = "sha256:142c6be10212543b32c6c45d3d3893dff89112cc588b7d0879ae5a1ec03a47ba"}, @@ -1087,30 +2512,86 @@ platformdirs = ">=3.9.1,<5" [package.extras] docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2,!=7.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] -test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8)", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10)"] +test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8) ; platform_python_implementation == \"PyPy\" or platform_python_implementation == \"CPython\" and sys_platform == \"win32\" and python_version >= \"3.13\"", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10) ; platform_python_implementation == \"CPython\""] + +[[package]] +name = "wkw" +version = "1.1.24" +description = "" +optional = true +python-versions = "*" +groups = ["main"] +markers = "extra == \"wk\" or extra == \"all\"" +files = [ + {file = "wkw-1.1.24-py3-none-macosx_10_9_universal2.whl", hash = "sha256:4967cc8d2564b1a3539fe755943b7c11ef69a4bd0ab3d67ac56a83513221e3ab"}, + {file = "wkw-1.1.24-py3-none-manylinux2014_x86_64.whl", hash = "sha256:aba4e708f055e21d67a4d983298b2c33c696742c255c40d4f15b08138de14ed7"}, + {file = "wkw-1.1.24-py3-none-win_amd64.whl", hash = "sha256:553d2f977cf6753a716a40fd5ddde1b7ea937d9f96a688ffbf44a9e4ba74d837"}, + {file = "wkw-1.1.24.tar.gz", hash = "sha256:d9ababce58b834d0cc4c4f7cfc8243cd26487a6ef3ab776736c34f393ff81d35"}, +] + +[package.dependencies] +cffi = "*" +numpy = ">=1.15" [[package]] name = "zarr" -version = "2.18.3" +version = "3.1.5" description = "An implementation of chunked, compressed, N-dimensional arrays for Python" optional = false -python-versions = ">=3.10" +python-versions = ">=3.11" +groups = ["main"] files = [ - {file = "zarr-2.18.3-py3-none-any.whl", hash = "sha256:b1f7dfd2496f436745cdd4c7bcf8d3b4bc1dceef5fdd0d589c87130d842496dd"}, - {file = "zarr-2.18.3.tar.gz", hash = "sha256:2580d8cb6dd84621771a10d31c4d777dca8a27706a1a89b29f42d2d37e2df5ce"}, + {file = "zarr-3.1.5-py3-none-any.whl", hash = "sha256:29cd905afb6235b94c09decda4258c888fcb79bb6c862ef7c0b8fe009b5c8563"}, + {file = "zarr-3.1.5.tar.gz", hash = "sha256:fbe0c79675a40c996de7ca08e80a1c0a20537bd4a9f43418b6d101395c0bba2b"}, ] [package.dependencies] -asciitree = "*" -fasteners = {version = "*", markers = "sys_platform != \"emscripten\""} -numcodecs = ">=0.10.0" -numpy = ">=1.24" +donfig = ">=0.8" +google-crc32c = ">=1.5" +numcodecs = ">=0.14" +numpy = ">=1.26" +packaging = ">=22.0" +typing-extensions = ">=4.9" + +[package.extras] +cli = ["typer"] +docs = ["astroid (<4)", "griffe-inherited-docstrings", "markdown-exec[ansi]", "mike (>=2.1.3)", "mkdocs (>=1.6.1)", "mkdocs-material[imaging] (>=9.6.14)", "mkdocs-redirects (>=1.2.0)", "mkdocstrings (>=0.29.1)", "mkdocstrings-python (>=1.16.10)", "numcodecs[msgpack]", "pytest", "rich", "ruff", "s3fs (>=2023.10.0)", "towncrier"] +gpu = ["cupy-cuda12x"] +optional = ["rich", "universal-pathlib"] +remote = ["fsspec (>=2023.10.0)", "obstore (>=0.5.1)"] +remote-tests = ["botocore", "fsspec (>=2023.10.0)", "moto[s3,server]", "obstore (>=0.5.1)", "requests", "s3fs (>=2023.10.0)"] +test = ["coverage (>=7.10)", "hypothesis", "mypy", "numpydoc", "packaging", "pytest (<8.4)", "pytest-accept", "pytest-asyncio", "pytest-cov", "pytest-xdist", "rich", "tomlkit", "uv"] + +[[package]] +name = "zipp" +version = "3.23.0" +description = "Backport of pathlib-compatible object wrapper for zip files" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version == \"3.11\"" +files = [ + {file = "zipp-3.23.0-py3-none-any.whl", hash = "sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e"}, + {file = "zipp-3.23.0.tar.gz", hash = "sha256:a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166"}, +] [package.extras] -docs = ["numcodecs[msgpack]", "numpydoc", "pydata-sphinx-theme", "sphinx", "sphinx-automodapi", "sphinx-copybutton", "sphinx-design", "sphinx-issues"] -jupyter = ["ipytree (>=0.2.2)", "ipywidgets (>=8.0.0)", "notebook"] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more_itertools", "pytest (>=6,!=8.1.*)", "pytest-ignore-flaky"] +type = ["pytest-mypy"] + +[extras] +all = ["dask-image", "glymur", "h5py", "scipy", "tensorstore", "tifffile", "wkw"] +df = ["glymur"] +lsm = ["dask-image", "tifffile"] +psoct = ["h5py", "scipy"] +ts = ["tensorstore"] +wk = ["wkw"] [metadata] -lock-version = "2.0" -python-versions = "^3.10" -content-hash = "9f7fa53f9f282a99c6b1ecea8342c1e63113a62c321359aec8fcdd20e3d69eb2" +lock-version = "2.1" +python-versions = "^3.11" +content-hash = "055e482a24d50e703d0cfd745f2e7e0e86363b7b42ad1e6cb181e8eb43f223f7" diff --git a/pyproject.toml b/pyproject.toml index 43a2d9cf..35f94479 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -62,6 +62,8 @@ mypy = "^1.9.0" pre-commit = "^3.7.0" pytest-cov = "^5.0.0" ruff = "^0.3.4" +scikit-image = "*" +pooch = "*" [tool.poetry.group.docs] optional = true From 302498ad01a224a96951e0a6997a8b9a23c83d96 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Tue, 27 Jan 2026 16:47:10 -0500 Subject: [PATCH 108/133] refactor: clean up whitespace and improve formatting in stitch.py --- linc_convert/utils/stitch.py | 109 +++++++++++++++++++---------------- 1 file changed, 58 insertions(+), 51 deletions(-) diff --git a/linc_convert/utils/stitch.py b/linc_convert/utils/stitch.py index 3c62b974..6bcb3b5c 100644 --- a/linc_convert/utils/stitch.py +++ b/linc_convert/utils/stitch.py @@ -1,7 +1,7 @@ from __future__ import annotations from collections import defaultdict -from dataclasses import dataclass, field +from dataclasses import dataclass from typing import List, Literal, Optional, Tuple, Union import dask.array as da @@ -19,13 +19,14 @@ class TileInfo: @dataclass class MosaicInfo: """Container for mosaic information with integrated blending and stitching.""" - + tiles: List[TileInfo] - full_shape: Tuple[int, ...] # Can be 2D (width, height) or 3D (width, height, depth) + full_shape: Tuple[ + int, ...] # Can be 2D (width, height) or 3D (width, height, depth) blend_ramp: da.Array chunk_size: Tuple[int, int] circular_mean: bool = False - + @classmethod def from_tiles( cls, @@ -33,10 +34,12 @@ def from_tiles( depth: Optional[int] = None, chunk_size: Optional[Tuple[int, int]] = None, circular_mean: bool = False, - tile_overlap: Union[float, int, Tuple[float, float], Tuple[int, int], Literal["auto"]] = "auto", + tile_overlap: Union[ + float, int, Tuple[float, float], Tuple[int, int], Literal["auto"]] = "auto", ) -> "MosaicInfo": """ - Create MosaicInfo from tiles, extracting dimensions and coordinates automatically. + Create MosaicInfo from tiles, extracting dimensions and coordinates + automatically. Parameters ---------- @@ -63,41 +66,41 @@ def from_tiles( """ if not tiles: raise ValueError("No tiles provided") - + # Extract tile dimensions from first tile first_tile = tiles[0] tile_width, tile_height = first_tile.image.shape[:2] - + # Extract depth from first tile if 3D if depth is None and len(first_tile.image.shape) == 3: depth = first_tile.image.shape[2] - + # Extract coordinates from tiles x_coords = np.array([tile.x for tile in tiles]) y_coords = np.array([tile.y for tile in tiles]) - + # Compute full mosaic dimensions full_width = int(np.nanmax(x_coords) + tile_width) full_height = int(np.nanmax(y_coords) + tile_height) - + if depth is not None: full_shape = (full_width, full_height, depth) else: full_shape = (full_width, full_height) - + # Normalize tile_overlap to pixels x_overlap, y_overlap = _normalize_tile_overlap( tile_overlap, tile_width, tile_height ) - + # Compute blending ramp with explicit overlap blend_ramp = cls._compute_blending_ramp( tile_width, tile_height, x_overlap, y_overlap ) - + if chunk_size is None: chunk_size = (tile_width, tile_height) - + return cls( tiles=tiles, full_shape=full_shape, @@ -105,7 +108,7 @@ def from_tiles( chunk_size=chunk_size, circular_mean=circular_mean, ) - + @staticmethod def _compute_blending_ramp( tile_width: int, @@ -159,15 +162,15 @@ def _compute_blending_ramp( ramp_full = np.linspace(0, 1, x_overlap + 2, dtype=np.float32)[1:-1] wx[:x_overlap] = ramp_full wx[-x_overlap:] = ramp_full[::-1] - + if y_overlap > 0: ramp_full = np.linspace(0, 1, y_overlap + 2, dtype=np.float32)[1:-1] wy[:y_overlap] = ramp_full wy[-y_overlap:] = ramp_full[::-1] - + ramp = np.outer(wx, wy) return ramp - + def stitch(self) -> da.Array: """ Stitch tiles into a mosaic using lazy dask operations. @@ -181,42 +184,42 @@ def stitch(self) -> da.Array: if not self.tiles: raise ValueError("No tiles to stitch") self.normalize_tile_coordinates() - pw, ph = self.chunk_size [:2] + pw, ph = self.chunk_size[:2] no_chunk_dim = self.full_shape[2:] # Empty for 2D, (depth,) for 3D - + # Create canvas with appropriate shape canvas = da.zeros( self.full_shape, chunks=(pw, ph, *no_chunk_dim), dtype=np.float32 ) - weight = da.zeros( + da.zeros( self.full_shape[:2], chunks=(pw, ph), dtype=np.float32 ) - + # Collect per-chunk pieces block_tiles = defaultdict(list) block_weights = defaultdict(list) - + for tile_info in tqdm(self.tiles): x0, y0, t = tile_info.x, tile_info.y, tile_info.image tile_size_x, tile_size_y = t.shape[:2] blend_ramp = self.blend_ramp - + # Determine which chunks this tile falls into x0c = x0 // pw y0c = y0 // ph x1c = (x0 + tile_size_x - 1) // pw y1c = (y0 + tile_size_y - 1) // ph - + # Pad region covering those chunks x_start = x0c * pw y_start = y0c * ph x_end = (x1c + 1) * pw y_end = (y1c + 1) * ph - + # Create block canvas with appropriate shape if not self.circular_mean: block_canvas = da.zeros( @@ -230,13 +233,13 @@ def stitch(self) -> da.Array: chunks=(pw, ph, *no_chunk_dim, 2), dtype=np.float32 ) - + block_weight = da.zeros( (x_end - x_start, y_end - y_start), chunks=(pw, ph), dtype=np.float32 ) - + # Place tile into that big block xs = slice(x0 - x_start, x0 - x_start + tile_size_x) ys = slice(y0 - y_start, y0 - y_start + tile_size_y) @@ -254,9 +257,9 @@ def stitch(self) -> da.Array: rad = da.deg2rad(t) * 2 block_canvas[xs, ys, ..., 0] = da.cos(rad) block_canvas[xs, ys, ..., 1] = da.sin(rad) - + block_weight[xs, ys] = blend_ramp - + # Chop into per-chunk pieces for cx in range(x0c, x1c + 1): for cy in range(y0c, y1c + 1): @@ -265,7 +268,7 @@ def stitch(self) -> da.Array: sub_y = slice((cy - y0c) * ph, (cy - y0c + 1) * ph) block_tiles[bid].append(block_canvas[sub_x, sub_y, ...]) block_weights[bid].append(block_weight[sub_x, sub_y]) - + # Combine blocks using map_blocks canvas = da.map_blocks( _combine_block, @@ -276,19 +279,21 @@ def stitch(self) -> da.Array: dtype=canvas.dtype, chunks=(pw, ph, *no_chunk_dim) ) - + # Crop canvas to get rid of excessive padded pixels canvas = canvas[:self.full_shape[0], :self.full_shape[1], ...] return canvas - - def normalize_tile_coordinates(self): + + def normalize_tile_coordinates(self) -> None: min_x = np.min([tile.x for tile in self.tiles]) min_y = np.min([tile.y for tile in self.tiles]) for tile in self.tiles: tile.x -= min_x tile.y -= min_y - self.full_shape = (self.full_shape[0] - min_x, self.full_shape[1] - min_y, *self.full_shape[2:]) - return + self.full_shape = ( + self.full_shape[0] - min_x, self.full_shape[1] - min_y, *self.full_shape[2:]) + return + def _combine_block( _, block_tiles, block_weights, circular_mean, *args, block_info=None, **kwargs @@ -298,7 +303,7 @@ def _combine_block( paints = block_tiles[chunk_id] weights = block_weights[chunk_id] shape = block_info[None]['chunk-shape'] - + if not paints: return np.broadcast_to(np.zeros((), dtype=np.float32), shape) total_paint = da.sum(da.stack(paints, axis=0), axis=0) @@ -306,9 +311,9 @@ def _combine_block( # For 3D data, total_weight should be broadcasted if len(total_paint.shape) > 2: expand_dim = len(total_paint.shape) - len(total_weight.shape) - total_weight = total_weight.reshape(total_weight.shape + (1,)*expand_dim) + total_weight = total_weight.reshape(total_weight.shape + (1,) * expand_dim) normalized = total_paint / total_weight - + if not circular_mean: return normalized return da.rad2deg(da.arctan2(normalized[..., 1], normalized[..., 0])) / 2 @@ -344,33 +349,35 @@ def _normalize_tile_overlap( Tuple[int, int] (x_overlap, y_overlap) in pixels. """ - # Handle tuple case if isinstance(tile_overlap, tuple): if len(tile_overlap) != 2: - raise ValueError("tile_overlap tuple must have 2 elements (x_overlap, y_overlap)") + raise ValueError( + "tile_overlap tuple must have 2 elements (x_overlap, y_overlap)") x_overlap_val, y_overlap_val = tile_overlap else: x_overlap_val = y_overlap_val = tile_overlap - + # Convert to pixels if float (percentile) if isinstance(x_overlap_val, float): if not (0 < x_overlap_val < 1): - raise ValueError(f"Float tile_overlap must be in range (0, 1), got {x_overlap_val}") + raise ValueError( + f"Float tile_overlap must be in range (0, 1), got {x_overlap_val}") x_overlap = int(tile_width * x_overlap_val) else: x_overlap = int(x_overlap_val) - + if isinstance(y_overlap_val, float): if not (0 < y_overlap_val < 1): - raise ValueError(f"Float tile_overlap must be in range (0, 1), got {y_overlap_val}") + raise ValueError( + f"Float tile_overlap must be in range (0, 1), got {y_overlap_val}") y_overlap = int(tile_height * y_overlap_val) else: y_overlap = int(y_overlap_val) - + if x_overlap < 0 or y_overlap < 0: raise ValueError("Overlap must be non-negative.") - + return x_overlap, y_overlap @@ -391,10 +398,10 @@ def stitch_tiles( """ if not tile_infos: raise ValueError("No tiles provided") - + if chunk_size is None: chunk_size = tile_infos[0].image.shape[:2] - + mosaic_info = MosaicInfo( tiles=tile_infos, full_shape=full_shape, @@ -402,5 +409,5 @@ def stitch_tiles( chunk_size=chunk_size, circular_mean=circular_mean, ) - + return mosaic_info.stitch() From 3fe6603f4364c3f0ad4be0b5f58431d293e67944 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Tue, 27 Jan 2026 16:48:12 -0500 Subject: [PATCH 109/133] style: improve code formatting and whitespace consistency in psoct module --- linc_convert/modalities/psoct/__init__.py | 18 +++- linc_convert/modalities/psoct/_utils.py | 2 +- .../modalities/psoct/generate_tile_config.py | 82 +++++++++++-------- 3 files changed, 67 insertions(+), 35 deletions(-) diff --git a/linc_convert/modalities/psoct/__init__.py b/linc_convert/modalities/psoct/__init__.py index 5df67673..0a90b7ef 100644 --- a/linc_convert/modalities/psoct/__init__.py +++ b/linc_convert/modalities/psoct/__init__.py @@ -4,8 +4,22 @@ import h5py as _h5py # noqa: F401 import scipy as _scipy # noqa: F401 - __all__ = ["cli", "multi_slice", "single_volume", "mosaic", "mosaic_complex", "generate_tile_config"] + __all__ = [ + "cli", + "multi_slice", + "single_volume", + "mosaic", + "mosaic_complex", + "generate_tile_config", + ] - from . import cli, mosaic, mosaic_complex, multi_slice, single_volume, generate_tile_config + from . import ( + cli, + generate_tile_config, + mosaic, + mosaic_complex, + multi_slice, + single_volume, + ) except ImportError: pass diff --git a/linc_convert/modalities/psoct/_utils.py b/linc_convert/modalities/psoct/_utils.py index e6d65672..a41fa87b 100644 --- a/linc_convert/modalities/psoct/_utils.py +++ b/linc_convert/modalities/psoct/_utils.py @@ -222,7 +222,7 @@ def process_complex3d( mag1 = da.abs(j1) mag2 = da.abs(j2) - dBI3D = da.flip(10 * da.log10(mag1 ** 2 + mag2 ** 2), axis=2) + dBI3D = da.flip(10 * da.log10(mag1**2 + mag2**2), axis=2) R3D = da.flip(da.arctan(mag1 / mag2) / da.pi * 180, axis=2) if flip_phi: phi = da.angle(j2) - da.angle(j1) diff --git a/linc_convert/modalities/psoct/generate_tile_config.py b/linc_convert/modalities/psoct/generate_tile_config.py index 4b25e763..a01a413d 100644 --- a/linc_convert/modalities/psoct/generate_tile_config.py +++ b/linc_convert/modalities/psoct/generate_tile_config.py @@ -18,8 +18,10 @@ Col 0 Col 1 Col 2 Terminology: -- **Columns**: Number of tiles horizontally (x-direction). In the example above, there are 3 columns. -- **Rows**: Number of tiles vertically (y-direction). In the example above, there are 2 rows. +- **Columns**: Number of tiles horizontally (x-direction). In the example above, +there are 3 columns. +- **Rows**: Number of tiles vertically (y-direction). In the example above, there are +2 rows. - **Tile Size**: Dimensions of each individual tile in pixels. - `tile_size_x`: Width of each tile (horizontal dimension) - `tile_size_y`: Height of each tile (vertical dimension) @@ -68,7 +70,9 @@ from linc_convert.modalities.psoct.cli import psoct -generate_tile_config_cmd = cyclopts.App(name="generate_tile_config", help_format="markdown") +generate_tile_config_cmd = cyclopts.App( + name="generate_tile_config", help_format="markdown" +) psoct.command(generate_tile_config_cmd) @@ -113,7 +117,9 @@ def _format_filepath(naming_format: str, tile_number: int) -> str: return naming_format.replace("{tile_number}", str(tile_number)) -def _create_tile_entry(tile_number: int, x: float, y: float, naming_format: str) -> dict: +def _create_tile_entry( + tile_number: int, x: float, y: float, naming_format: str +) -> dict: """ Create a tile dictionary entry. @@ -137,7 +143,7 @@ def _create_tile_entry(tile_number: int, x: float, y: float, naming_format: str) "filepath": _format_filepath(naming_format, tile_number), "tile_number": tile_number, "x": float(x), - "y": float(y) + "y": float(y), } @@ -149,7 +155,7 @@ def _generate_row_by_row( overlap_x: float, overlap_y: float, order: str, - naming_format: str + naming_format: str, ) -> List[dict]: """ Generate tiles in row-by-row pattern. @@ -218,7 +224,7 @@ def _generate_column_by_column( overlap_x: float, overlap_y: float, order: str, - naming_format: str + naming_format: str, ) -> List[dict]: """ Generate tiles in column-by-column pattern. @@ -287,7 +293,7 @@ def _generate_snake_by_rows( overlap_x: float, overlap_y: float, order: str, - naming_format: str + naming_format: str, ) -> List[dict]: """ Generate tiles in snake-by-rows pattern. @@ -362,7 +368,7 @@ def _generate_snake_by_columns( overlap_x: float, overlap_y: float, order: str, - naming_format: str + naming_format: str, ) -> List[dict]: """ Generate tiles in snake-by-columns pattern. @@ -437,11 +443,15 @@ def generate_tile_config( tile_size_y: Annotated[int, Parameter(name=["--tile-size-y"])] = 300, tile_size: Annotated[Optional[int], Parameter(name=["--tile-size"])] = None, base_dir: Annotated[str, Parameter(name=["--base-dir"])] = "./", - naming_format: Annotated[str, Parameter(name=["--naming-format"])] = "mosaic_001_tile_{tile_number:04d}_aip.nii", + naming_format: Annotated[ + str, Parameter(name=["--naming-format"]) + ] = "mosaic_001_tile_{tile_number:04d}_aip.nii", out: Annotated[str, Parameter(name=["--output", "-o"])] = "tile_config.yaml", grid_type: Annotated[str, Parameter(name=["--grid-type"])] = "snake-by-columns", order: Annotated[Optional[str], Parameter(name=["--order"])] = None, - overlap_percentage: Annotated[float, Parameter(name=["--overlap-percentage"])] = 0.0, + overlap_percentage: Annotated[ + float, Parameter(name=["--overlap-percentage"]) + ] = 0.0, ) -> None: """ Generate tile configuration YAML file for Grid/Collection Stitching. @@ -527,21 +537,33 @@ def generate_tile_config( order = "down-right" # Validate grid_type and order - valid_grid_types = ["row-by-row", "column-by-column", "snake-by-rows", "snake-by-columns"] + valid_grid_types = [ + "row-by-row", + "column-by-column", + "snake-by-rows", + "snake-by-columns", + ] if grid_type not in valid_grid_types: - raise ValueError(f"Invalid grid_type: {grid_type}. Must be one of {valid_grid_types}") + raise ValueError( + f"Invalid grid_type: {grid_type}. Must be one of {valid_grid_types}" + ) row_based = grid_type in ["row-by-row", "snake-by-rows"] valid_orders = ( - ["right-down", "left-down", "right-up", "left-up"] if row_based + ["right-down", "left-down", "right-up", "left-up"] + if row_based else ["down-right", "down-left", "up-right", "up-left"] ) if order not in valid_orders: - raise ValueError(f"Invalid order for {grid_type}: {order}. Must be one of {valid_orders}") + raise ValueError( + f"Invalid order for {grid_type}: {order}. Must be one of {valid_orders}" + ) # Validate overlap_percentage if not 0.0 <= overlap_percentage <= 1.0: - raise ValueError(f"overlap_percentage must be between 0.0 and 1.0, got {overlap_percentage}") + raise ValueError( + f"overlap_percentage must be between 0.0 and 1.0, got {overlap_percentage}" + ) # Generate tiles based on grid type overlap = overlap_percentage @@ -552,27 +574,20 @@ def generate_tile_config( "snake-by-columns": _generate_snake_by_columns, } tiles = generator_map[grid_type]( - columns, rows, tile_size_x, tile_size_y, - overlap, overlap, order, naming_format + columns, rows, tile_size_x, tile_size_y, overlap, overlap, order, naming_format ) # Build metadata - metadata = { - "base_dir": base_dir, - "scan_resolution": [0.01, 0.01] - } + metadata = {"base_dir": base_dir, "scan_resolution": [0.01, 0.01]} # Add overlap to metadata if specified if overlap_percentage > 0.0: metadata["tile_overlap"] = overlap_percentage - config = { - "metadata": metadata, - "tiles": tiles - } + config = {"metadata": metadata, "tiles": tiles} # Write to YAML file - with open(out, 'w') as f: + with open(out, "w") as f: yaml.dump(config, f, default_flow_style=False, indent=2, allow_unicode=True) print(f"Generated tile configuration with {len(tiles)} tiles") @@ -580,10 +595,13 @@ def generate_tile_config( if overlap_percentage > 0.0: print(f"Overlap: {overlap_percentage * 100:.1f}%") print(f"Configuration written to: {out}") - print(f"\nFirst few tiles:") + print("\nFirst few tiles:") for tile in tiles[:5]: - print(f" Tile {tile['tile_number']}: x={tile['x']}, y={tile['y']}, file={tile['filepath']}") - print(f"\nLast few tiles:") + print( + f"Tile {tile['tile_number']}: x={tile['x']}, y={tile['y']}, file={tile['filepath']}" + ) + print("\nLast few tiles:") for tile in tiles[-5:]: - print(f" Tile {tile['tile_number']}: x={tile['x']}, y={tile['y']}, file={tile['filepath']}") - + print( + f"Tile {tile['tile_number']}: x={tile['x']}, y={tile['y']}, file={tile['filepath']}" + ) From 2220e49ac20fcf82a595e3e2d395683ebf57a5de Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Wed, 28 Jan 2026 11:20:16 -0500 Subject: [PATCH 110/133] fix: set XYZT units for Nifti1Image header in wk_annotation test --- tests/data/wkw_zarr2.nii.zarr.zip | Bin 182933 -> 182941 bytes tests/data/wkw_zarr3.nii.zarr.zip | Bin 182933 -> 182941 bytes tests/test_wk.py | 3 ++- 3 files changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/data/wkw_zarr2.nii.zarr.zip b/tests/data/wkw_zarr2.nii.zarr.zip index a367350f6b82796e71638ade522df79b2892f901..a91c1a714a46df78ecfd5bb877f9330843212095 100644 GIT binary patch delta 1355 zcmbO_m3!_~ZoU9-W)=|!5GakZiJ8bJ!%_yK^<-GeLA0MtJ&2ykdfPdck%8eP2Ll5q zP;FIWQITF&aem&}sor_b1_Ev0=P*^ux;k9;J%2G)bfM;swW`U=#wIF);9SVU-xeRwu_~u?a`sS>kavC$>ynwOSNV)Ea~TR`K%Pm zx`O>suX(R!Ub=*#`nJLy63aHWsozz*ELvRQ^queJ-Bx4O#~1X?>(Bn;+J5%mC*k_J ziF;z|L^ho}dn@#IiSMnnf3X~ow`Nwq7dLGAA8|X!_tv{VN^Ku^ZSnmJr2Myhop*D4 z*K?l3b21zc+ALowfA^Ae%H)UVIo$mggw(xs3NJ{HSa^HloR_aVr|sN#I$_6(EumZH zNV6+?&x(((3f;8U^GZDfFm|}1(F2N>$*&mY!11%0hbfd1%$l6atN>wjGAltC>zP%+ zk+=CebKH3rP_$0AyetQ1Y>vJh&Il3Oc0~cgxOGJd%$Rgl1xiaycDTv|u_xfF#d|Po zd(RQZn_IxU067?D2vpwi1e26ZGh7~v z3Pqp^j4P+x9A}bL203)ryz}9f=NTBb0WmjHuxx3(2r_26{z)b=h<`!OH#WY^z+iyp zd{CUN`+UyJ2W{ZKoAyPm=LOaW+w_Er<1A_|?qdM0MMV|p8grU(Sa1t1PZPT@Z6eP;Qv6@`T z1WrT9%E1Yu8mLab6)cN2R>6uu!NPcF`uUSgq7XB|;lNN0G1CB?G7%9C)&dF#RyB}{ m=?=%4MCCz((iv+Huz4{sEC*s#Px(zRJjEo(R(li}I}89(N~&%E delta 1306 zcmbO`m3!(`ZoU9-W)=|!5NK(2i=N0Q!_o?(^`Nw$Onn=Wzt^jtGnA2mVKoN>11C^z zRbo+*URH5_-r1@5^O_Yzj=ittdQ^IO#p}FpGP|RtikIam2O3nw)wm^*`M>vHx|2i@N`VtTjp{5N9P>Tz%}o*QgRumHtMrY%D>3-W67q}CT&B%ZM!Qz zuP#`z@|fA-`sCyYUvIWKG7|bn8&mdHy-mE(f2lXPuWA08%*8yp%&etH`;1LgBP(v` zq+9;;p7!sbj{W`WY*TNC3{AZ?8O%QtV@iZYolZF{@=Kr<9qMjAGNlRyY~401yZ*6s?NWOK3i;dcuuC{VVmVE zE1(c+=$5b=vdV$TJ-g}fu z2cmE!U-l(h?yXl$(*?YF%#7pkeodo?9@+4Dv+IutVZf8!W2WKFo1gJKG4gIPSbw@ zDP>T~Tf^xiuw@Ga!yO<-4eh!kj0^_T8;&!HAtKE1u+8E10X}DgM;A*Tpo)GP%tpcO?N!SBneK2)8kG71>B}ro??;9SVU-xeRwu_~u?a`sS>kavC$>ynwOSNV)Ea~TR`K%Pm zx`O>suX(R!Ub=*#`nJLy63aHWsozz*ELvRQ^queJ-Bx4O#~1X?>(Bn;+J5%mC*k_J ziF;z|L^ho}dn@#IiSMnnf3X~ow`Nwq7dLGAA8|X!_tv{VN^Ku^ZSnmJr2Myhop*D4 z*K?l3b21zc+ALowfA^Ae%H)UVIo$mggw(xs3NJ{HSa^HloR_aVr|sN#I$_6(EumZH zNV6+?&x(((3f;8U^GZDfFm|}1(F2N>$*&mY!11%0hbfd1%$l6atN>wjGAltC>zP%+ zk+=CebKH3rP_$0AyetQ1Y>vJh&Il3Oc0~cgxOGJd%$Rgl1xiaycDTv|u_xfF#d|Po zd(RQZn_IxU067?D2vpwi1e26ZGh7~v z3Pqp^j4P+x9A}bL203)ryz}9f=NTBb0WmjHuxx3(2r_26{z)b=h<`!OH#WY^z+iyp zd{CUN`+UyJ2W{ZKoAyPm=LOaW+w_Er<1A_|?qdM0MMV|p8grU(Sa1t1PZPT@Z6eP;Qv6@`T z1WrT9%E1Yu8mLab6)cN2R>6uu!NPcF`uUSgq7XB|;lNN0G1CB?G7%9C)&dF#RyB}{ m=?=%4MCCz((iv+Huz4{sEC*s#Px(zRJjEo(R(li}I}89@sj3bD delta 1306 zcmbO`m3!(`ZoU9-W)=|!5NK|7i=N0Q!_oqx^`Nw$Og)Id*Q=g0l#zj9H3tI&Cs1uw zVo{M^R&jpb*{S#QniWKjy|3kZRC;;E>%4C=yQ8Iwm*pr28dSvOO5d+_xXvrM#dEXk z-i!CypYzK%7Q1-xbWGY?=5hN+=N!?%HSe@iav7&K>a$JCzsU1r$)?mMZ9~6pyDL7g zE?BYhnAzd_ThC!>Jx^TU{CD{-Gk*4=<(;h24&ih!x4ZeNv%ZSvo&NVpxW0aF;+~i~k)Y>gH?H0; z@x7P!FO=i)*2>>6%ne)q-?*LQd+*&JwYHDD_W1qFz z?_P3F5&oOr)9tU2TKCc^^g}|#!drr(!PkX#KhIKn(e1Tz&uT5>hVDtvu1~wS^u;U- zseKHHSZPrO20u7{pact$Hq=knhbiG;07cMd5vEW^aMVrCWmbSNCNe8Q7~7duz>LlJ znd8p0fZ}Y>%mC()9wHJ-zoRlMck3 zy>QlBAd43z?M+uZ#-s&N7I>0LD)0_4K|(@;kx7IZl!zf=@p9f<1p}bm7bXSe9u?D~(Mw9;lw3e}YI^S_7afmzePcTWzEre?@ z&_~t;an1C^<3LR(r`G@}h;KoTm(aes|ZsJk-`A#o%=v9GdfNG1*DWg z(X)orM_|hq28KI8j2hZ?M;I9lrZ*gC5<^6qadagUgAtm)LB=>qe4DKYjGoUJkybl> z9?)|TBft@Kr3zvMss})ZOa}+U54b!Q6`){Xl$-8&ib)b;WZWsBfZO!SQ%rJfrAL9b GGXMaMb+p3( diff --git a/tests/test_wk.py b/tests/test_wk.py index 9cc15521..a315a5e4 100644 --- a/tests/test_wk.py +++ b/tests/test_wk.py @@ -1,6 +1,7 @@ import shutil from pathlib import Path +from nibabel.nifti1 import Nifti1Header import niizarr import numpy as np import pytest @@ -21,7 +22,7 @@ def wk_annotation(tmp_path): Nifti1Image(image, np.eye(4)), Nifti1Image(annotation, np.eye(4)), ) - + image.header.set_xyzt_units('mm') niizarr.nii2zarr(image, tmp_path / "image.nii.zarr", chunk=64) niizarr.nii2zarr(annotation, tmp_path / "annotation.nii.zarr", chunk=64) wkw_dir = tmp_path / "wkw" From db1033fa8a47878df3a46baf97bbb2154537983a Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Wed, 28 Jan 2026 11:51:34 -0500 Subject: [PATCH 111/133] refactor: update path handling in TensorStore configuration functions and add open methods for ZarrPythonArray and ZarrPythonGroup --- .../utils/io/zarr/drivers/tensorstore.py | 8 ++++---- .../utils/io/zarr/drivers/zarr_python.py | 20 +++++++++++++++++++ 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/linc_convert/utils/io/zarr/drivers/tensorstore.py b/linc_convert/utils/io/zarr/drivers/tensorstore.py index a9b58b55..33f31069 100644 --- a/linc_convert/utils/io/zarr/drivers/tensorstore.py +++ b/linc_convert/utils/io/zarr/drivers/tensorstore.py @@ -439,7 +439,7 @@ def make_kvstore(path: str | os.PathLike) -> dict: raise ValueError("Unsupported protocol:", path.protocol) -def default_read_config(path: os.PathLike | str) -> dict: +def default_read_config(path: str | PathLike[str]) -> dict: """ Generate a TensorStore configuration to read an existing Zarr. @@ -450,7 +450,7 @@ def default_read_config(path: os.PathLike | str) -> dict: """ path = UPath(path) if not path.protocol: - path = "file://" / path + path = UPath("file://" + str(path)) if (path / "zarr.json").exists(): zarr_version = 3 elif (path / ".zarray").exists(): @@ -498,7 +498,7 @@ def _detect_metadata(path: PathLike) -> Optional[Tuple[str, int]]: def default_write_config( - path: os.PathLike | str, + path: str | PathLike[str], shape: list[int], dtype: np.dtype | str, chunk: list[int] = [32], @@ -530,7 +530,7 @@ def default_write_config( """ path = UPath(path) if not path.protocol: - path = "file://" / path + path = UPath("file://" + str(path)) # Format compressor if version == 3 and compressor == "zlib": diff --git a/linc_convert/utils/io/zarr/drivers/zarr_python.py b/linc_convert/utils/io/zarr/drivers/zarr_python.py index f280ac5f..b0764f62 100644 --- a/linc_convert/utils/io/zarr/drivers/zarr_python.py +++ b/linc_convert/utils/io/zarr/drivers/zarr_python.py @@ -93,6 +93,15 @@ def __getattr__(self, name: str) -> Any: # noqa: ANN401 raise AttributeError( f"'{self.__class__.__name__}' object has no attribute '{name}'" ) + + @classmethod + def open(cls, *args, **kwargs) -> "ZarrPythonArray": + """Open a Zarr array.""" + return cls(zarr.open_array(*args, **kwargs)) + @classmethod + def open_array(cls, *args, **kwargs) -> "ZarrPythonArray": + """Open a Zarr array.""" + return cls(zarr.open_array(*args, **kwargs)) class ZarrPythonGroup(ZarrGroup): @@ -266,6 +275,17 @@ def create_array_from_base( arr[:] = data return ZarrPythonArray(arr) + @classmethod + def open(cls, *args, **kwargs) -> "ZarrPythonGroup": + """Open a Zarr group.""" + return cls(zarr.open_group(*args, **kwargs)) + + @classmethod + def open_group(cls, *args, **kwargs) -> "ZarrPythonGroup": + """Open a Zarr group.""" + return cls(zarr.open_group(*args, **kwargs)) + + def _make_compressor( name: str | None, zarr_version: Literal[2, 3], **prm: dict From 7a9f80eb1f77cce7e14d9e5ae71a98d6c643cf77 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Wed, 28 Jan 2026 11:51:53 -0500 Subject: [PATCH 112/133] test: add unit tests for linc_convert.utils.stitch module, covering tile overlap normalization and stitching functionality --- tests/test_stitch.py | 333 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 333 insertions(+) create mode 100644 tests/test_stitch.py diff --git a/tests/test_stitch.py b/tests/test_stitch.py new file mode 100644 index 00000000..0fa09620 --- /dev/null +++ b/tests/test_stitch.py @@ -0,0 +1,333 @@ +""" +Unit tests for linc_convert.utils.stitch module. +""" +import pytest +import dask.array as da +import numpy as np + +from linc_convert.utils.stitch import ( + MosaicInfo, + TileInfo, + _normalize_tile_overlap, + stitch_tiles, +) + + +class TestNormalizeTileOverlap: + """Test _normalize_tile_overlap function.""" + + def test_single_float(self): + """Test single float input (percentile).""" + tile_width, tile_height = 100, 200 + overlap = 0.2 + x_overlap, y_overlap = _normalize_tile_overlap(overlap, tile_width, tile_height) + assert x_overlap == 20 # 20% of 100 + assert y_overlap == 40 # 20% of 200 + + def test_single_int(self): + """Test single int input (pixels).""" + tile_width, tile_height = 100, 200 + overlap = 10 + x_overlap, y_overlap = _normalize_tile_overlap(overlap, tile_width, tile_height) + assert x_overlap == 10 + assert y_overlap == 10 + + def test_tuple_float(self): + """Test tuple of floats (percentiles).""" + tile_width, tile_height = 100, 200 + overlap = (0.1, 0.2) + x_overlap, y_overlap = _normalize_tile_overlap(overlap, tile_width, tile_height) + assert x_overlap == 10 # 10% of 100 + assert y_overlap == 40 # 20% of 200 + + def test_tuple_int(self): + """Test tuple of ints (pixels).""" + tile_width, tile_height = 100, 200 + overlap = (5, 10) + x_overlap, y_overlap = _normalize_tile_overlap(overlap, tile_width, tile_height) + assert x_overlap == 5 + assert y_overlap == 10 + + def test_invalid_float_range(self): + """Test invalid float range raises ValueError.""" + tile_width, tile_height = 100, 200 + with pytest.raises(ValueError, match="Float tile_overlap must be in range"): + _normalize_tile_overlap(1.5, tile_width, tile_height) + with pytest.raises(ValueError, match="Float tile_overlap must be in range"): + _normalize_tile_overlap(0.0, tile_width, tile_height) + with pytest.raises(ValueError, match="Float tile_overlap must be in range"): + _normalize_tile_overlap(-0.1, tile_width, tile_height) + + def test_invalid_tuple_length(self): + """Test invalid tuple length raises ValueError.""" + tile_width, tile_height = 100, 200 + with pytest.raises(ValueError, match="tile_overlap tuple must have 2 elements"): + _normalize_tile_overlap((1, 2, 3), tile_width, tile_height) + + def test_negative_overlap(self): + """Test negative overlap raises ValueError.""" + tile_width, tile_height = 100, 200 + with pytest.raises(ValueError, match="Overlap must be non-negative"): + _normalize_tile_overlap(-5, tile_width, tile_height) + with pytest.raises(ValueError, match="Overlap must be non-negative"): + _normalize_tile_overlap((-5, 10), tile_width, tile_height) + + +class TestMosaicInfo: + """Test MosaicInfo class.""" + + def test_from_tiles_2d(self): + """Test creating 2D MosaicInfo from tiles.""" + # Create two small tiles + tile1 = TileInfo( + x=0, y=0, + image=da.ones((10, 10), chunks=(5, 5), dtype=np.float32) + ) + tile2 = TileInfo( + x=5, y=5, + image=da.ones((10, 10), chunks=(5, 5), dtype=np.float32) * 2 + ) + + mosaic = MosaicInfo.from_tiles( + tiles=[tile1, tile2], + depth=None, # 2D mosaic + tile_overlap=0.2, + ) + + # Check full_shape: max x + tile_width, max y + tile_height + assert mosaic.full_shape == (15, 15) # (15, 15) for 2D + assert mosaic.chunk_size == (10, 10) + assert mosaic.circular_mean is False + + def test_from_tiles_3d(self): + """Test creating 3D MosaicInfo from tiles.""" + # Create two small 3D tiles + tile1 = TileInfo( + x=0, y=0, + image=da.ones((10, 10, 5), chunks=(5, 5, 5), dtype=np.float32) + ) + tile2 = TileInfo( + x=5, y=5, + image=da.ones((10, 10, 5), chunks=(5, 5, 5), dtype=np.float32) * 2 + ) + + mosaic = MosaicInfo.from_tiles( + tiles=[tile1, tile2], + depth=5, + tile_overlap=0.2, + ) + + # Check full_shape: (width, height, depth) + assert mosaic.full_shape == (15, 15, 5) + assert mosaic.chunk_size == (10, 10) + + def test_normalize_tile_coordinates(self): + """Test normalize_tile_coordinates method.""" + # Create tiles with non-zero minimum coordinates + tile1 = TileInfo( + x=10, y=20, + image=da.ones((10, 10), chunks=(5, 5), dtype=np.float32) + ) + tile2 = TileInfo( + x=15, y=25, + image=da.ones((10, 10), chunks=(5, 5), dtype=np.float32) + ) + + mosaic = MosaicInfo.from_tiles( + tiles=[tile1, tile2], + depth=None, + tile_overlap=0.2, + ) + + # Before normalization + assert tile1.x == 10 + assert tile1.y == 20 + assert tile2.x == 15 + assert tile2.y == 25 + assert mosaic.full_shape == (25, 35) # max(15+10, 10+10), max(25+10, 20+10) + + # Normalize + mosaic.normalize_tile_coordinates() + + # After normalization + assert tile1.x == 0 + assert tile1.y == 0 + assert tile2.x == 5 + assert tile2.y == 5 + # full_shape should be adjusted + assert mosaic.full_shape == (15, 15) # (25-10, 35-20) + + def test_stitch_2d_simple(self): + """Test stitching 2D tiles with simple overlap.""" + # Create two overlapping tiles + tile1 = TileInfo( + x=0, y=0, + image=da.ones((10, 10), chunks=(5, 5), dtype=np.float32) * 10 + ) + tile2 = TileInfo( + x=5, y=5, # 5 pixel overlap in both dimensions + image=da.ones((10, 10), chunks=(5, 5), dtype=np.float32) * 20 + ) + + mosaic = MosaicInfo.from_tiles( + tiles=[tile1, tile2], + depth=None, + tile_overlap=5, # 5 pixels overlap + ) + + result = mosaic.stitch() + result_computed = result.compute() + + # Check shape + assert result_computed.shape == (15, 15) + + # Check non-overlapping regions + # Top-left corner should be from tile1 + print(np.array(result_computed[0:5, 0:5])) + assert np.allclose(result_computed[0:5, 0:5], 10.0) + # Bottom-right corner should be from tile2 + assert np.allclose(result_computed[10:15, 10:15], 20.0) + + # Overlapping region should be blended (weighted average) + # The overlap region should have values between 10 and 20 + overlap_region = result_computed[5:10, 5:10] + assert np.all(overlap_region >= 10.0) + assert np.all(overlap_region <= 20.0) + + def test_stitch_2d_no_overlap(self): + """Test stitching 2D tiles with no overlap.""" + tile1 = TileInfo( + x=0, y=0, + image=da.ones((10, 10), chunks=(5, 5), dtype=np.float32) * 10 + ) + tile2 = TileInfo( + x=10, y=10, # No overlap + image=da.ones((10, 10), chunks=(5, 5), dtype=np.float32) * 20 + ) + + mosaic = MosaicInfo.from_tiles( + tiles=[tile1, tile2], + depth=None, + tile_overlap=0, + ) + + result = mosaic.stitch() + result_computed = result.compute() + + # Check shape + assert result_computed.shape == (20, 20) + + # Check non-overlapping regions + assert np.allclose(result_computed[0:10, 0:10], 10.0) + assert np.allclose(result_computed[10:20, 10:20], 20.0) + + def test_stitch_3d(self): + """Test stitching 3D tiles.""" + tile1 = TileInfo( + x=0, y=0, + image=da.ones((10, 10, 5), chunks=(5, 5, 5), dtype=np.float32) * 10 + ) + tile2 = TileInfo( + x=5, y=5, + image=da.ones((10, 10, 5), chunks=(5, 5, 5), dtype=np.float32) * 20 + ) + + mosaic = MosaicInfo.from_tiles( + tiles=[tile1, tile2], + depth=5, + tile_overlap=5, + ) + + result = mosaic.stitch() + result_computed = result.compute() + + # Check shape: (width, height, depth) + assert result_computed.shape == (15, 15, 5) + + # Check that depth dimension is preserved + assert result_computed.shape[2] == 5 + + def test_stitch_circular_mean(self): + """Test stitching with circular_mean=True.""" + # Create tiles with angle values (in degrees) + # Use simple angles for easy verification + tile1 = TileInfo( + x=0, y=0, + image=da.full((10, 10), chunks=(5, 5), dtype=np.float32, fill_value=0.0) # 0 degrees + ) + tile2 = TileInfo( + x=5, y=5, + image=da.full((10, 10), chunks=(5, 5), dtype=np.float32, fill_value=180.0) # 180 degrees + ) + + mosaic = MosaicInfo.from_tiles( + tiles=[tile1, tile2], + depth=None, + tile_overlap=5, + circular_mean=True, + ) + + result = mosaic.stitch() + result_computed = result.compute() + + # Check shape + assert result_computed.shape == (15, 15) + + # In the overlap region, circular mean of 0° and 180° should be around 90° or 270° + # (depending on implementation, but should be consistent) + overlap_region = result_computed[5:10, 5:10] + # The circular mean should produce a value that makes sense + # For 0° and 180°, the mean could be 90° or 270° (both are valid) + # We just check it's not NaN and is in a reasonable range + assert not np.any(np.isnan(overlap_region)) + assert np.all(overlap_region >= 0) and np.all(overlap_region < 360) + + +class TestStitchTiles: + """Test backward compatibility stitch_tiles function.""" + + def test_stitch_tiles_backward_compat(self): + """Test that stitch_tiles produces same result as MosaicInfo.stitch().""" + tile1 = TileInfo( + x=0, y=0, + image=da.ones((10, 10), chunks=(5, 5), dtype=np.float32) * 10 + ) + tile2 = TileInfo( + x=5, y=5, + image=da.ones((10, 10), chunks=(5, 5), dtype=np.float32) * 20 + ) + + # Create MosaicInfo and stitch + mosaic = MosaicInfo.from_tiles( + tiles=[tile1, tile2], + depth=None, + tile_overlap=5, + ) + result1 = mosaic.stitch() + + # Use stitch_tiles function + result2 = stitch_tiles( + tile_infos=[tile1, tile2], + full_shape=mosaic.full_shape, + blend_ramp=mosaic.blend_ramp, + chunk_size=mosaic.chunk_size, + circular_mean=False, + ) + + # Results should be the same + np.testing.assert_array_almost_equal( + result1.compute(), + result2.compute(), + decimal=5 + ) + + def test_stitch_tiles_empty(self): + """Test stitch_tiles with empty tile list raises ValueError.""" + with pytest.raises(ValueError, match="No tiles provided"): + stitch_tiles( + tile_infos=[], + full_shape=(10, 10), + blend_ramp=da.ones((10, 10), dtype=np.float32), + chunk_size=(5, 5), + ) + From 021259f0ebdd39bc00d778c9b855b4b3151eaa57 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Wed, 28 Jan 2026 14:42:40 -0500 Subject: [PATCH 113/133] fix: update array comparison in assert_zarr_equal to use assert_allclose for better precision --- tests/utils/compare_file.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/utils/compare_file.py b/tests/utils/compare_file.py index 89e1e334..2f2abf70 100644 --- a/tests/utils/compare_file.py +++ b/tests/utils/compare_file.py @@ -149,7 +149,7 @@ def assert_zarr_equal( f" ‣ {dict(obj2.attrs)}" ) try: - np.testing.assert_array_equal(obj1[:], obj2[:]) + np.testing.assert_allclose(obj1[:], obj2[:], rtol=1e-6, atol=1e-8) except AssertionError as e: diffs.append(f"Array '{key}' differs:\n ‣ {e}") elif isinstance(obj1, zarr.Group): From 484350f7e3a627040920e89a61994b8cd06786f1 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Wed, 4 Feb 2026 14:08:59 -0500 Subject: [PATCH 114/133] style: fix ruff error --- linc_convert/modalities/lsm/__init__.py | 20 ++++++- linc_convert/modalities/psoct/_utils.py | 2 +- .../modalities/psoct/generate_tile_config.py | 15 +++-- .../utils/io/zarr/drivers/zarr_python.py | 8 +-- linc_convert/utils/stitch.py | 60 +++++++++++++------ 5 files changed, 75 insertions(+), 30 deletions(-) diff --git a/linc_convert/modalities/lsm/__init__.py b/linc_convert/modalities/lsm/__init__.py index fa43325b..690f9ba1 100644 --- a/linc_convert/modalities/lsm/__init__.py +++ b/linc_convert/modalities/lsm/__init__.py @@ -3,8 +3,24 @@ try: import tifffile as _ # noqa: F401 - __all__ = ["cli", "mosaic", "multi_slice", "spool", "single_volume", "strip"] + __all__ = [ + "cli", + "mosaic", + "multi_slice", + "spool", + "single_volume", + "strip", + "stitch_strips" + ] - from . import cli, mosaic, multi_slice, spool, single_volume, strip + from . import ( + cli, + mosaic, + multi_slice, + single_volume, + spool, + stitch_strips, + strip, + ) except ImportError: pass diff --git a/linc_convert/modalities/psoct/_utils.py b/linc_convert/modalities/psoct/_utils.py index a41fa87b..e6d65672 100644 --- a/linc_convert/modalities/psoct/_utils.py +++ b/linc_convert/modalities/psoct/_utils.py @@ -222,7 +222,7 @@ def process_complex3d( mag1 = da.abs(j1) mag2 = da.abs(j2) - dBI3D = da.flip(10 * da.log10(mag1**2 + mag2**2), axis=2) + dBI3D = da.flip(10 * da.log10(mag1 ** 2 + mag2 ** 2), axis=2) R3D = da.flip(da.arctan(mag1 / mag2) / da.pi * 180, axis=2) if flip_phi: phi = da.angle(j2) - da.angle(j1) diff --git a/linc_convert/modalities/psoct/generate_tile_config.py b/linc_convert/modalities/psoct/generate_tile_config.py index a01a413d..6f67f272 100644 --- a/linc_convert/modalities/psoct/generate_tile_config.py +++ b/linc_convert/modalities/psoct/generate_tile_config.py @@ -477,7 +477,8 @@ def generate_tile_config( Base directory path for the tiles (default: ./) naming_format : str Format string for tile filenames. Use {tile_number} or {tile_number:04d} - for tile number substitution (default: mosaic_001_tile_{tile_number:04d}_aip.nii) + for tile number substitution (default: mosaic_001_tile_{ + tile_number:04d}_aip.nii) out : str Output YAML file path (default: tile_config.yaml) grid_type : str @@ -490,7 +491,8 @@ def generate_tile_config( - snake-by-rows: Images arranged in a grid, snaking across rows - snake-by-columns: Images arranged in a grid, snaking down columns order : str, optional - Order direction. If not specified, defaults to "right-down" for row-by-row/snake-by-rows, + Order direction. If not specified, defaults to "right-down" for + row-by-row/snake-by-rows, or "down-right" for column-by-column/snake-by-columns. For row-by-row and snake-by-rows: @@ -516,7 +518,8 @@ def generate_tile_config( Generate a 10x10 grid with snake-by-rows pattern: ```bash - linc-convert psoct generate_tile_config --columns 10 --rows 10 --grid-type snake-by-rows + linc-convert psoct generate_tile_config --columns 10 --rows 10 --grid-type + snake-by-rows ``` Generate with custom tile size and overlap: @@ -598,10 +601,12 @@ def generate_tile_config( print("\nFirst few tiles:") for tile in tiles[:5]: print( - f"Tile {tile['tile_number']}: x={tile['x']}, y={tile['y']}, file={tile['filepath']}" + f"Tile {tile['tile_number']}: x={tile['x']}, y={tile['y']}, file=" + f"{tile['filepath']}" ) print("\nLast few tiles:") for tile in tiles[-5:]: print( - f"Tile {tile['tile_number']}: x={tile['x']}, y={tile['y']}, file={tile['filepath']}" + f"Tile {tile['tile_number']}: x={tile['x']}, y={tile['y']}, file=" + f"{tile['filepath']}" ) diff --git a/linc_convert/utils/io/zarr/drivers/zarr_python.py b/linc_convert/utils/io/zarr/drivers/zarr_python.py index b0764f62..0a49ee0a 100644 --- a/linc_convert/utils/io/zarr/drivers/zarr_python.py +++ b/linc_convert/utils/io/zarr/drivers/zarr_python.py @@ -95,11 +95,11 @@ def __getattr__(self, name: str) -> Any: # noqa: ANN401 ) @classmethod - def open(cls, *args, **kwargs) -> "ZarrPythonArray": + def open(cls, *args: Any, **kwargs: Any) -> "ZarrPythonArray": # noqa: ANN401 """Open a Zarr array.""" return cls(zarr.open_array(*args, **kwargs)) @classmethod - def open_array(cls, *args, **kwargs) -> "ZarrPythonArray": + def open_array(cls, *args: Any, **kwargs: Any) -> "ZarrPythonArray": # noqa: ANN401 """Open a Zarr array.""" return cls(zarr.open_array(*args, **kwargs)) @@ -276,12 +276,12 @@ def create_array_from_base( return ZarrPythonArray(arr) @classmethod - def open(cls, *args, **kwargs) -> "ZarrPythonGroup": + def open(cls, *args: Any, **kwargs: Any) -> "ZarrPythonGroup": # noqa: ANN401 """Open a Zarr group.""" return cls(zarr.open_group(*args, **kwargs)) @classmethod - def open_group(cls, *args, **kwargs) -> "ZarrPythonGroup": + def open_group(cls, *args: Any, **kwargs: Any) -> "ZarrPythonGroup": # noqa: ANN401 """Open a Zarr group.""" return cls(zarr.open_group(*args, **kwargs)) diff --git a/linc_convert/utils/stitch.py b/linc_convert/utils/stitch.py index 6bcb3b5c..98ddf3a4 100644 --- a/linc_convert/utils/stitch.py +++ b/linc_convert/utils/stitch.py @@ -1,8 +1,10 @@ +"""Tile stitching utilities for creating mosaics from overlapping image tiles.""" + from __future__ import annotations from collections import defaultdict from dataclasses import dataclass -from typing import List, Literal, Optional, Tuple, Union +from typing import Any, Dict, List, Literal, Optional, Tuple, Union import dask.array as da import numpy as np @@ -11,6 +13,18 @@ @dataclass class TileInfo: + """Information about a single tile in a mosaic. + + Attributes + ---------- + x : int + X coordinate of the tile's top-left corner. + y : int + Y coordinate of the tile's top-left corner. + image : da.Array + The tile image data as a dask array. + """ + x: int y: int image: da.Array @@ -37,10 +51,8 @@ def from_tiles( tile_overlap: Union[ float, int, Tuple[float, float], Tuple[int, int], Literal["auto"]] = "auto", ) -> "MosaicInfo": - """ - Create MosaicInfo from tiles, extracting dimensions and coordinates - automatically. - + """Create MosaicInfo from tiles, extracting dimensions and coordinates. + Parameters ---------- tiles : List[TileInfo] @@ -51,9 +63,11 @@ def from_tiles( Chunk size for dask arrays. If None, uses tile dimensions. circular_mean : bool Whether to use circular mean for blending. - tile_overlap : Union[float, int, Tuple[float, float], Tuple[int, int], Literal["auto"]] + tile_overlap : Union[float, int, Tuple[float, float], Tuple[int, int], + Literal["auto"]] Overlap specification: - - float in (0, 1): percentile of tile size (e.g., 0.2 = 20% overlap on each side) + - float in (0, 1): percentile of tile size (e.g., 0.2 = 20% overlap on + each side) - int: number of pixels overlap on each side - Tuple[float, float]: percentiles for (x, y) dimensions - Tuple[int, int]: pixel counts for (x, y) dimensions @@ -193,11 +207,6 @@ def stitch(self) -> da.Array: chunks=(pw, ph, *no_chunk_dim), dtype=np.float32 ) - da.zeros( - self.full_shape[:2], - chunks=(pw, ph), - dtype=np.float32 - ) # Collect per-chunk pieces block_tiles = defaultdict(list) @@ -285,20 +294,34 @@ def stitch(self) -> da.Array: return canvas def normalize_tile_coordinates(self) -> None: + """Normalize tile coordinates to start from (0, 0). + + Adjusts all tile coordinates so that the minimum x and y coordinates + become 0, and updates the full_shape accordingly. + """ min_x = np.min([tile.x for tile in self.tiles]) min_y = np.min([tile.y for tile in self.tiles]) for tile in self.tiles: tile.x -= min_x tile.y -= min_y self.full_shape = ( - self.full_shape[0] - min_x, self.full_shape[1] - min_y, *self.full_shape[2:]) + self.full_shape[0] - min_x, self.full_shape[1] - min_y, + *self.full_shape[2:]) return def _combine_block( - _, block_tiles, block_weights, circular_mean, *args, block_info=None, **kwargs -): + _: da.Array, + block_tiles: Dict[Tuple[int, int], List[da.Array]], + block_weights: Dict[Tuple[int, int], List[da.Array]], + circular_mean: bool, + *args: Any, # noqa: ANN401 + block_info: Optional[Dict[str, Any]] = None, + **kwargs: Any, # noqa: ANN401 +) -> Union[da.Array, np.ndarray]: """Combine overlapping tile blocks with weighted averaging.""" + if block_info is None: + raise ValueError("block_info is required") chunk_id = tuple(block_info[None]['chunk-location'][:2]) paints = block_tiles[chunk_id] weights = block_weights[chunk_id] @@ -308,7 +331,7 @@ def _combine_block( return np.broadcast_to(np.zeros((), dtype=np.float32), shape) total_paint = da.sum(da.stack(paints, axis=0), axis=0) total_weight = da.sum(da.stack(weights, axis=0), axis=0) - # For 3D data, total_weight should be broadcasted + # For 3D data, total_weight should be broadcasted if len(total_paint.shape) > 2: expand_dim = len(total_paint.shape) - len(total_weight.shape) total_weight = total_weight.reshape(total_weight.shape + (1,) * expand_dim) @@ -331,7 +354,8 @@ def _normalize_tile_overlap( ---------- tile_overlap : Union[float, int, Tuple[float, float], Tuple[int, int]] Overlap specification: - - float in (0, 1): percentile of tile size (e.g., 0.2 = 20% overlap on each side) + - float in (0, 1): percentile of tile size (e.g., 0.2 = 20% overlap on each + side) - int: number of pixels overlap on each side - Tuple[float, float]: percentiles for (x, y) dimensions - Tuple[int, int]: pixel counts for (x, y) dimensions @@ -388,7 +412,7 @@ def stitch_tiles( blend_ramp: Union[np.ndarray, da.Array], chunk_size: Optional[Tuple[int, int]] = None, circular_mean: bool = False, - **_ + **_: Any, # noqa: ANN401 ) -> da.Array: """ Stitch tiles into a mosaic (backward compatibility wrapper). From 39c372c51795862caabae3b1c3a0a75a22c3a415 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Mon, 23 Feb 2026 15:06:04 -0500 Subject: [PATCH 115/133] feat: convert assembly methods in SpoolSetInterpreter to return Dask arrays for improved performance --- linc_convert/modalities/lsm/strip.py | 4 ++-- linc_convert/utils/io/spool.py | 33 ++++++++++++++++++---------- 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/linc_convert/modalities/lsm/strip.py b/linc_convert/modalities/lsm/strip.py index 6acd141b..0b7861ee 100644 --- a/linc_convert/modalities/lsm/strip.py +++ b/linc_convert/modalities/lsm/strip.py @@ -13,6 +13,7 @@ # externals import cyclopts +import dask.array as da # internals from linc_convert.modalities.lsm.cli import lsm @@ -77,9 +78,8 @@ def convert( logger.info(general_config.out) result = reader.assemble() result = result.transpose(1, 2, 0) - array[:] = result[:] print("Write level 0 with shape", fullshape) - + da.store(result, array, compute=True) voxel_size = list(map(float, reversed(voxel_size))) # Generate Zarr pyramid and metadata omz.generate_pyramid(levels=zarr_config.levels) diff --git a/linc_convert/utils/io/spool.py b/linc_convert/utils/io/spool.py index 1ba0a2f7..b2b2a80a 100644 --- a/linc_convert/utils/io/spool.py +++ b/linc_convert/utils/io/spool.py @@ -20,7 +20,9 @@ from os import PathLike from typing import Iterator +import dask.array as da import numpy as np +from dask import delayed from scipy.io import loadmat from linc_convert.utils.math import ceildiv @@ -246,28 +248,37 @@ def _get_spool_names_in_order(self) -> Iterator[str]: else: warnings.warn(f"{tmp} not located in spool directory") - def assemble(self) -> np.ndarray: + def assemble(self) -> da.Array: """ - Assemble all spool files into a single 3D volume. + Assemble all spool files into a single 3D volume (lazy Dask array). Returns ------- - A NumPy array of shape (frames_total, rows, columns), + A Dask array of shape (frames_total, rows, columns), where frames_total = images_per_file * number_of_files. """ - chunks = list(self) - if not chunks: - return np.zeros((0, *self.spool_shape[1:]), dtype=self.dtype) - return np.concatenate(chunks, axis=0).astype(self.dtype, copy=False) + if not self.spool_files: + empty = np.zeros((0, *self.spool_shape[1:]), dtype=self.dtype) + return da.from_array(empty) + delayed_chunks = [ + da.from_delayed( + delayed(self._load_spool_file)(name), + shape=self.spool_shape, + dtype=self.dtype, + ) + for name in self.spool_files + ] + return da.concatenate(delayed_chunks, axis=0) # this is the modified version for lsm pipeline - def assemble_cropped(self) -> np.ndarray: + def assemble_cropped(self) -> da.Array: """ - Assemble and transpose the volume, then crop to original depth. + Assemble and transpose the volume, then crop to original depth (lazy Dask array). Returns ------- - A NumPy array transposed to (height, width, frames) + A Dask array transposed to (height, width, frames) and cropped to self.numDepths along the first axis. """ - return self.assemble().transpose(1, 2, 0)[: self.numDepths, :, :] + volume = self.assemble() + return volume.transpose(1, 2, 0)[: self.numDepths, :, :] From 7edc9f010e8b4f9a617da6b35f2d6e25586988bb Mon Sep 17 00:00:00 2001 From: "Kaidong (Calvin) Chai" Date: Mon, 23 Feb 2026 16:46:40 -0500 Subject: [PATCH 116/133] Implement conditional rechunking for result array Add conditional rechunking based on array shards or chunks. --- linc_convert/modalities/lsm/strip.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/linc_convert/modalities/lsm/strip.py b/linc_convert/modalities/lsm/strip.py index 0b7861ee..e015ca38 100644 --- a/linc_convert/modalities/lsm/strip.py +++ b/linc_convert/modalities/lsm/strip.py @@ -78,6 +78,11 @@ def convert( logger.info(general_config.out) result = reader.assemble() result = result.transpose(1, 2, 0) + if array.shards: + result = da.rechunk(result, array.shards) + else: + result = da.rechunk(result, array.chunks) + print("Write level 0 with shape", fullshape) da.store(result, array, compute=True) voxel_size = list(map(float, reversed(voxel_size))) From dc8f3243df01d09493a13e53305adede08784695 Mon Sep 17 00:00:00 2001 From: Kaidong Chai Date: Wed, 4 Mar 2026 11:18:20 -0500 Subject: [PATCH 117/133] feat: add functionality to save maximum intensity projection images in strip.py --- linc_convert/modalities/lsm/strip.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/linc_convert/modalities/lsm/strip.py b/linc_convert/modalities/lsm/strip.py index e015ca38..4fe18409 100644 --- a/linc_convert/modalities/lsm/strip.py +++ b/linc_convert/modalities/lsm/strip.py @@ -14,7 +14,8 @@ # externals import cyclopts import dask.array as da - +import numpy as np +from PIL import Image # internals from linc_convert.modalities.lsm.cli import lsm from linc_convert.utils.io.spool import SpoolSetInterpreter @@ -31,12 +32,20 @@ strip = cyclopts.App(name="strip", help_format="markdown") lsm.command(strip) +def _save_mip_image(result: da.Array, mip_image_output: str) -> None: + """Save the maximum intensity projection of the result as an image.""" + mip = da.nanmax(result, axis=0) + mip = mip.compute() + mip = mip.astype(np.uint16) + Image.fromarray(mip).save(mip_image_output) + @strip.default @autoconfig def convert( inp: str, info_file: Optional[str] = None, + mip_image_output: Optional[str] = None, *, voxel_size: list[float] = (1, 1, 1), general_config: GeneralConfig = None, @@ -85,6 +94,8 @@ def convert( print("Write level 0 with shape", fullshape) da.store(result, array, compute=True) + if mip_image_output: + _save_mip_image(result, mip_image_output) voxel_size = list(map(float, reversed(voxel_size))) # Generate Zarr pyramid and metadata omz.generate_pyramid(levels=zarr_config.levels) From 4be1be6f92e063115dbaecf26dd00b47c8401bde Mon Sep 17 00:00:00 2001 From: James Jay Scherick Date: Tue, 21 Apr 2026 09:28:58 -0400 Subject: [PATCH 118/133] made minor changes --- linc_convert/modalities/lsm/strip.py | 6 ++- linc_convert/modalities/psoct/mosaic.py | 26 +++++++---- .../modalities/psoct/mosaic_complex.py | 22 ++++++---- linc_convert/utils/io/spool.py | 11 +++-- linc_convert/utils/stitch.py | 43 +++++++++---------- 5 files changed, 63 insertions(+), 45 deletions(-) diff --git a/linc_convert/modalities/lsm/strip.py b/linc_convert/modalities/lsm/strip.py index 4fe18409..b238991b 100644 --- a/linc_convert/modalities/lsm/strip.py +++ b/linc_convert/modalities/lsm/strip.py @@ -16,6 +16,7 @@ import dask.array as da import numpy as np from PIL import Image + # internals from linc_convert.modalities.lsm.cli import lsm from linc_convert.utils.io.spool import SpoolSetInterpreter @@ -32,6 +33,7 @@ strip = cyclopts.App(name="strip", help_format="markdown") lsm.command(strip) + def _save_mip_image(result: da.Array, mip_image_output: str) -> None: """Save the maximum intensity projection of the result as an image.""" mip = da.nanmax(result, axis=0) @@ -74,8 +76,8 @@ def convert( """ reader = SpoolSetInterpreter(inp, info_file) - # Set default output path if not provided - general_config.set_default_name(op.basename(inp)) + # Set default output path + general_config.set_default_name(op.basename(inp), False) fullshape = reader.raw_assembled_spool_shape diff --git a/linc_convert/modalities/psoct/mosaic.py b/linc_convert/modalities/psoct/mosaic.py index a2eac695..0ea63932 100644 --- a/linc_convert/modalities/psoct/mosaic.py +++ b/linc_convert/modalities/psoct/mosaic.py @@ -76,7 +76,8 @@ def _load_image_tile(file_path: str, key: str = None) -> da.Array: except (ValueError, KeyError): # Try as array zarr_array_wrapper = open_array(file_path, mode="r") - data = da.from_array(zarr_array_wrapper, chunks=zarr_array_wrapper.chunks) + data = da.from_array(zarr_array_wrapper, + chunks=zarr_array_wrapper.chunks) return data # Check for NIfTI files @@ -107,7 +108,8 @@ def _save_jpeg(image: np.ndarray, output_path: str, quality: int = 95) -> None: img_min = np.nanmin(image) img_max = np.nanmax(image) if img_max > img_min: - normalized = ((image - img_min) / (img_max - img_min) * 255).astype(np.uint8) + normalized = ((image - img_min) / (img_max - img_min) + * 255).astype(np.uint8) else: normalized = np.zeros_like(image, dtype=np.uint8) @@ -238,9 +240,12 @@ def _mask_block( def mosaic2d( tile_info_file: str, *, - jpeg_output: Annotated[Optional[str], Parameter(name=["--jpeg", "-j"])] = None, - tiff_output: Annotated[Optional[str], Parameter(name=["--tiff", "-t"])] = None, - nifti_output: Annotated[Optional[str], Parameter(name=["--nifti", "-n"])] = None, + jpeg_output: Annotated[Optional[str], + Parameter(name=["--jpeg", "-j"])] = None, + tiff_output: Annotated[Optional[str], + Parameter(name=["--tiff", "-t"])] = None, + nifti_output: Annotated[Optional[str], + Parameter(name=["--nifti", "-n"])] = None, tile_overlap: float = 0.2, circular_mean: bool = False, clip_x: int = 0, @@ -270,8 +275,8 @@ def mosaic2d( Path to save JPEG preview image. tiff_output : str, optional Path to save TIFF image. - tile_overlap : float | Literal["auto"] - Tile overlap in pixels. If "auto", compute from tile coordinates. + tile_overlap : float + Tile overlap as precentage circular_mean : bool Whether to use circular mean for blending. clip_x : int @@ -453,6 +458,7 @@ def apply_focus_plane(image: da.Array) -> da.Array: f"Mask shape {mask_array.shape} does not match result shape " f"{result.shape}. " ) + raise result = _apply_mask(result, mask_array) logger.info("Mask applied successfully (optimized for Dask)") @@ -464,7 +470,8 @@ def apply_focus_plane(image: da.Array) -> da.Array: with ProgressBar(): result = np.array(result) - voxel_size_2d = voxel_size_xyz[:2] if len(voxel_size_xyz) >= 2 else [0.1, 0.1] + voxel_size_2d = voxel_size_xyz[:2] if len( + voxel_size_xyz) >= 2 else [0.1, 0.1] # Save NIfTI file if requested if nifti_output: logger.info(f"Saving NIfTI file: {nifti_output}") @@ -495,7 +502,8 @@ def apply_focus_plane(image: da.Array) -> da.Array: logger.info(f"Saving to Zarr: {general_config.out}") # Compute zarr layout for 2D - chunk, shard = compute_zarr_layout(result.shape, np.float32, zarr_config) + chunk, shard = compute_zarr_layout( + result.shape, np.float32, zarr_config) # Prepare Zarr group (similar to single_volume.py) zgroup = from_config(general_config.out, zarr_config) diff --git a/linc_convert/modalities/psoct/mosaic_complex.py b/linc_convert/modalities/psoct/mosaic_complex.py index 7bf412cb..a7501304 100644 --- a/linc_convert/modalities/psoct/mosaic_complex.py +++ b/linc_convert/modalities/psoct/mosaic_complex.py @@ -78,8 +78,9 @@ def shift_block(block: da.Array, block_info: Optional[dict] = None) -> da.Array: # Get the spatial coordinates for this block # For simplicity, we'll shift the entire tile # pad the sources at the END so indices up to Nz-1 are valid - pad_width = ((0, 0), (0, 0), (s_max, s_max)) - block_padded = np.pad(block, pad_width, mode="constant", constant_values=np.nan) + pad_width = ((0, 0), (0, 0), (0, s_max)) + block_padded = np.pad( + block, pad_width, mode="constant", constant_values=np.nan) # build indices for the expanded depth z = np.arange(block.shape[-1] + s_max, dtype=np.int32)[None, None, :] # Use a subset of focus_plane corresponding to this block @@ -235,7 +236,8 @@ def mosaic_complex( ) # Process complex data to get dBI, R3D, O3D - dBI3D, R3D, O3D = process_complex3d(complex3d, offset=100, flip_phi=False) + dBI3D, R3D, O3D = process_complex3d( + complex3d, offset=100, flip_phi=False) # Apply transformations if flip_z: @@ -264,13 +266,14 @@ def mosaic_complex( # Stitch tiles for each modality using MosaicInfo logger.info("Stitching tiles") - # Get tile_overlap from metadata (defaults to "auto") + # Get tile_overlap from metadata (defaults to 0.2) tile_overlap = metadata.get("tile_overlap", 0.2) # Create MosaicInfo for each modality - dimensions and coordinates extracted from # tiles dbi_mosaic = MosaicInfo.from_tiles( - tiles=[TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, dbi_tiles)], + tiles=[TileInfo(x=c[0], y=c[1], image=t) + for c, t in zip(coords, dbi_tiles)], depth=depth, chunk_size=None, # Will use tile dimensions circular_mean=False, @@ -278,7 +281,8 @@ def mosaic_complex( ) r3d_mosaic = MosaicInfo.from_tiles( - tiles=[TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, r3d_tiles)], + tiles=[TileInfo(x=c[0], y=c[1], image=t) + for c, t in zip(coords, r3d_tiles)], depth=depth, chunk_size=None, # Will use tile dimensions circular_mean=False, @@ -286,7 +290,8 @@ def mosaic_complex( ) o3d_mosaic = MosaicInfo.from_tiles( - tiles=[TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, o3d_tiles)], + tiles=[TileInfo(x=c[0], y=c[1], image=t) + for c, t in zip(coords, o3d_tiles)], depth=depth, chunk_size=None, # Will use tile dimensions circular_mean=True, @@ -309,7 +314,8 @@ def mosaic_complex( zgroups = [] for out, res in zip( - [dbi_output, r3d_output, o3d_output], [dBI_result, R3D_result, O3D_result] + [dbi_output, r3d_output, o3d_output], [ + dBI_result, R3D_result, O3D_result] ): if shard: res = da.rechunk(res, chunks=shard) diff --git a/linc_convert/utils/io/spool.py b/linc_convert/utils/io/spool.py index b2b2a80a..8df53b20 100644 --- a/linc_convert/utils/io/spool.py +++ b/linc_convert/utils/io/spool.py @@ -28,6 +28,8 @@ from linc_convert.utils.math import ceildiv logger = logging.getLogger(__name__) + + class SpoolSetInterpreter: """ Interpreter for a set of spool files produced by a Zyla camera. @@ -49,7 +51,8 @@ def __init__( self.type = "dir" self.parent = spool_set_path self.file_list = glob(os.path.join(spool_set_path, "*")) - self.spool_set = tuple([os.path.split(x)[-1] for x in self.file_list]) + self.spool_set = tuple([os.path.split(x)[-1] + for x in self.file_list]) else: assert False, "The input data structure is not a ZIP file or Directory" @@ -74,6 +77,7 @@ def __init__( self.spool_shape[2], self.spool_shape[0] * len(self.spool_files), ) + def _load_info_file(self, info_file: str | PathLike[str]) -> None: loaded_info = loadmat(info_file) info = loaded_info.get("info", None) @@ -91,7 +95,8 @@ def _load_info_file(self, info_file: str | PathLike[str]) -> None: return None num_frames_per_spool = int(self.config["multiimage"]["ImagesPerFile"]) num_frames_to_load = num_total_frames - num_bg_frames - num_spool_files_to_load = ceildiv(num_frames_to_load, num_frames_per_spool) + num_spool_files_to_load = ceildiv( + num_frames_to_load, num_frames_per_spool) self.spool_files = self.spool_files[:num_spool_files_to_load] def _make_filename_from_spool_set( @@ -273,7 +278,7 @@ def assemble(self) -> da.Array: # this is the modified version for lsm pipeline def assemble_cropped(self) -> da.Array: """ - Assemble and transpose the volume, then crop to original depth (lazy Dask array). + Assemble and transpose the volume, crop to original depth (lazy Dask array). Returns ------- diff --git a/linc_convert/utils/stitch.py b/linc_convert/utils/stitch.py index 98ddf3a4..20abe394 100644 --- a/linc_convert/utils/stitch.py +++ b/linc_convert/utils/stitch.py @@ -49,7 +49,7 @@ def from_tiles( chunk_size: Optional[Tuple[int, int]] = None, circular_mean: bool = False, tile_overlap: Union[ - float, int, Tuple[float, float], Tuple[int, int], Literal["auto"]] = "auto", + float, int, Tuple[float, float], Tuple[int, int]] = 0.2, ) -> "MosaicInfo": """Create MosaicInfo from tiles, extracting dimensions and coordinates. @@ -63,16 +63,14 @@ def from_tiles( Chunk size for dask arrays. If None, uses tile dimensions. circular_mean : bool Whether to use circular mean for blending. - tile_overlap : Union[float, int, Tuple[float, float], Tuple[int, int], - Literal["auto"]] + tile_overlap : Union[float, int, Tuple[float, float], Tuple[int, int] Overlap specification: - float in (0, 1): percentile of tile size (e.g., 0.2 = 20% overlap on each side) - int: number of pixels overlap on each side - Tuple[float, float]: percentiles for (x, y) dimensions - Tuple[int, int]: pixel counts for (x, y) dimensions - - "auto": compute maximum overlap from coordinates (default) - + Returns ------- MosaicInfo @@ -132,7 +130,7 @@ def _compute_blending_ramp( ) -> da.Array: """ Compute blending ramp for tile stitching with explicit overlap values. - + Parameters ---------- tile_width : int @@ -143,29 +141,29 @@ def _compute_blending_ramp( Number of overlapping pixels in x dimension (on each side). y_overlap : int Number of overlapping pixels in y dimension (on each side). - + Returns ------- da.Array Blending ramp as a dask array. - + Examples -------- Example with tile_size=3 and overlap=1: - + For the left edge (x_overlap=1): - Create ramp of size (overlap+2) = 3: [0.0, 0.5, 1.0] - Remove first and last: [0.5] - Result: edge weight = 0.5 (non-zero) - + Visual diagram for tile_size=3, overlap=1: - + Position: 0 1 2 Weight: 0.5 1.0 0.5 ↑ ↑ edge edge (non-zero) (non-zero) - + The full tile weights would be: [0.5, 1.0, 0.5] (left edge, center, right edge) """ @@ -173,12 +171,14 @@ def _compute_blending_ramp( wx = np.ones(tile_width, dtype=np.float32) wy = np.ones(tile_height, dtype=np.float32) if x_overlap > 0: - ramp_full = np.linspace(0, 1, x_overlap + 2, dtype=np.float32)[1:-1] + ramp_full = np.linspace( + 0, 1, x_overlap + 2, dtype=np.float32)[1:-1] wx[:x_overlap] = ramp_full wx[-x_overlap:] = ramp_full[::-1] if y_overlap > 0: - ramp_full = np.linspace(0, 1, y_overlap + 2, dtype=np.float32)[1:-1] + ramp_full = np.linspace( + 0, 1, y_overlap + 2, dtype=np.float32)[1:-1] wy[:y_overlap] = ramp_full wy[-y_overlap:] = ramp_full[::-1] @@ -188,7 +188,7 @@ def _compute_blending_ramp( def stitch(self) -> da.Array: """ Stitch tiles into a mosaic using lazy dask operations. - + Returns ------- da.Array @@ -334,7 +334,8 @@ def _combine_block( # For 3D data, total_weight should be broadcasted if len(total_paint.shape) > 2: expand_dim = len(total_paint.shape) - len(total_weight.shape) - total_weight = total_weight.reshape(total_weight.shape + (1,) * expand_dim) + total_weight = total_weight.reshape( + total_weight.shape + (1,) * expand_dim) normalized = total_paint / total_weight if not circular_mean: @@ -349,7 +350,7 @@ def _normalize_tile_overlap( ) -> Tuple[int, int]: """ Normalize tile_overlap parameter to (x_overlap, y_overlap) in pixels. - + Parameters ---------- tile_overlap : Union[float, int, Tuple[float, float], Tuple[int, int]] @@ -363,11 +364,7 @@ def _normalize_tile_overlap( Width of each tile. tile_height : int Height of each tile. - x_coords : Optional[np.ndarray] - X coordinates for auto computation. - y_coords : Optional[np.ndarray] - Y coordinates for auto computation. - + Returns ------- Tuple[int, int] @@ -416,7 +413,7 @@ def stitch_tiles( ) -> da.Array: """ Stitch tiles into a mosaic (backward compatibility wrapper). - + This function is kept for backward compatibility. New code should use MosaicInfo.stitch() directly. """ From 8f77033a434b57cc4534628e13823bb65b870e74 Mon Sep 17 00:00:00 2001 From: James Jay Scherick Date: Tue, 21 Apr 2026 09:30:00 -0400 Subject: [PATCH 119/133] removed unused import --- linc_convert/utils/stitch.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linc_convert/utils/stitch.py b/linc_convert/utils/stitch.py index 20abe394..b4a76fc5 100644 --- a/linc_convert/utils/stitch.py +++ b/linc_convert/utils/stitch.py @@ -4,7 +4,7 @@ from collections import defaultdict from dataclasses import dataclass -from typing import Any, Dict, List, Literal, Optional, Tuple, Union +from typing import Any, Dict, List, Optional, Tuple, Union import dask.array as da import numpy as np From 7205e458b825e93ae6563b504cf9e6f95c15276a Mon Sep 17 00:00:00 2001 From: James Jay Scherick Date: Tue, 21 Apr 2026 09:56:50 -0400 Subject: [PATCH 120/133] docker workflow bug fix --- .github/workflows/docker-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index ed3707c7..51ca768a 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -50,7 +50,7 @@ jobs: type=semver,pattern={{version}} type=semver,pattern={{major}}.{{minor}} type=semver,pattern={{major}} - type=sha,prefix={{branch}}- + type=sha,prefix=sha-{{branch}}- type=raw,value=latest,enable={{is_default_branch}} - name: Build and push Docker image From 7052050f3af7a87b8d0f54f7be64ef7672e3b149 Mon Sep 17 00:00:00 2001 From: James Jay Scherick Date: Tue, 21 Apr 2026 14:41:16 -0400 Subject: [PATCH 121/133] reverted today's commits --- .github/workflows/docker-build.yml | 2 +- linc_convert/modalities/lsm/strip.py | 6 +-- linc_convert/modalities/psoct/mosaic.py | 26 ++++------- .../modalities/psoct/mosaic_complex.py | 22 ++++----- linc_convert/utils/io/spool.py | 11 ++--- linc_convert/utils/stitch.py | 45 ++++++++++--------- 6 files changed, 47 insertions(+), 65 deletions(-) diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index 51ca768a..ed3707c7 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -50,7 +50,7 @@ jobs: type=semver,pattern={{version}} type=semver,pattern={{major}}.{{minor}} type=semver,pattern={{major}} - type=sha,prefix=sha-{{branch}}- + type=sha,prefix={{branch}}- type=raw,value=latest,enable={{is_default_branch}} - name: Build and push Docker image diff --git a/linc_convert/modalities/lsm/strip.py b/linc_convert/modalities/lsm/strip.py index b238991b..4fe18409 100644 --- a/linc_convert/modalities/lsm/strip.py +++ b/linc_convert/modalities/lsm/strip.py @@ -16,7 +16,6 @@ import dask.array as da import numpy as np from PIL import Image - # internals from linc_convert.modalities.lsm.cli import lsm from linc_convert.utils.io.spool import SpoolSetInterpreter @@ -33,7 +32,6 @@ strip = cyclopts.App(name="strip", help_format="markdown") lsm.command(strip) - def _save_mip_image(result: da.Array, mip_image_output: str) -> None: """Save the maximum intensity projection of the result as an image.""" mip = da.nanmax(result, axis=0) @@ -76,8 +74,8 @@ def convert( """ reader = SpoolSetInterpreter(inp, info_file) - # Set default output path - general_config.set_default_name(op.basename(inp), False) + # Set default output path if not provided + general_config.set_default_name(op.basename(inp)) fullshape = reader.raw_assembled_spool_shape diff --git a/linc_convert/modalities/psoct/mosaic.py b/linc_convert/modalities/psoct/mosaic.py index 0ea63932..a2eac695 100644 --- a/linc_convert/modalities/psoct/mosaic.py +++ b/linc_convert/modalities/psoct/mosaic.py @@ -76,8 +76,7 @@ def _load_image_tile(file_path: str, key: str = None) -> da.Array: except (ValueError, KeyError): # Try as array zarr_array_wrapper = open_array(file_path, mode="r") - data = da.from_array(zarr_array_wrapper, - chunks=zarr_array_wrapper.chunks) + data = da.from_array(zarr_array_wrapper, chunks=zarr_array_wrapper.chunks) return data # Check for NIfTI files @@ -108,8 +107,7 @@ def _save_jpeg(image: np.ndarray, output_path: str, quality: int = 95) -> None: img_min = np.nanmin(image) img_max = np.nanmax(image) if img_max > img_min: - normalized = ((image - img_min) / (img_max - img_min) - * 255).astype(np.uint8) + normalized = ((image - img_min) / (img_max - img_min) * 255).astype(np.uint8) else: normalized = np.zeros_like(image, dtype=np.uint8) @@ -240,12 +238,9 @@ def _mask_block( def mosaic2d( tile_info_file: str, *, - jpeg_output: Annotated[Optional[str], - Parameter(name=["--jpeg", "-j"])] = None, - tiff_output: Annotated[Optional[str], - Parameter(name=["--tiff", "-t"])] = None, - nifti_output: Annotated[Optional[str], - Parameter(name=["--nifti", "-n"])] = None, + jpeg_output: Annotated[Optional[str], Parameter(name=["--jpeg", "-j"])] = None, + tiff_output: Annotated[Optional[str], Parameter(name=["--tiff", "-t"])] = None, + nifti_output: Annotated[Optional[str], Parameter(name=["--nifti", "-n"])] = None, tile_overlap: float = 0.2, circular_mean: bool = False, clip_x: int = 0, @@ -275,8 +270,8 @@ def mosaic2d( Path to save JPEG preview image. tiff_output : str, optional Path to save TIFF image. - tile_overlap : float - Tile overlap as precentage + tile_overlap : float | Literal["auto"] + Tile overlap in pixels. If "auto", compute from tile coordinates. circular_mean : bool Whether to use circular mean for blending. clip_x : int @@ -458,7 +453,6 @@ def apply_focus_plane(image: da.Array) -> da.Array: f"Mask shape {mask_array.shape} does not match result shape " f"{result.shape}. " ) - raise result = _apply_mask(result, mask_array) logger.info("Mask applied successfully (optimized for Dask)") @@ -470,8 +464,7 @@ def apply_focus_plane(image: da.Array) -> da.Array: with ProgressBar(): result = np.array(result) - voxel_size_2d = voxel_size_xyz[:2] if len( - voxel_size_xyz) >= 2 else [0.1, 0.1] + voxel_size_2d = voxel_size_xyz[:2] if len(voxel_size_xyz) >= 2 else [0.1, 0.1] # Save NIfTI file if requested if nifti_output: logger.info(f"Saving NIfTI file: {nifti_output}") @@ -502,8 +495,7 @@ def apply_focus_plane(image: da.Array) -> da.Array: logger.info(f"Saving to Zarr: {general_config.out}") # Compute zarr layout for 2D - chunk, shard = compute_zarr_layout( - result.shape, np.float32, zarr_config) + chunk, shard = compute_zarr_layout(result.shape, np.float32, zarr_config) # Prepare Zarr group (similar to single_volume.py) zgroup = from_config(general_config.out, zarr_config) diff --git a/linc_convert/modalities/psoct/mosaic_complex.py b/linc_convert/modalities/psoct/mosaic_complex.py index a7501304..7bf412cb 100644 --- a/linc_convert/modalities/psoct/mosaic_complex.py +++ b/linc_convert/modalities/psoct/mosaic_complex.py @@ -78,9 +78,8 @@ def shift_block(block: da.Array, block_info: Optional[dict] = None) -> da.Array: # Get the spatial coordinates for this block # For simplicity, we'll shift the entire tile # pad the sources at the END so indices up to Nz-1 are valid - pad_width = ((0, 0), (0, 0), (0, s_max)) - block_padded = np.pad( - block, pad_width, mode="constant", constant_values=np.nan) + pad_width = ((0, 0), (0, 0), (s_max, s_max)) + block_padded = np.pad(block, pad_width, mode="constant", constant_values=np.nan) # build indices for the expanded depth z = np.arange(block.shape[-1] + s_max, dtype=np.int32)[None, None, :] # Use a subset of focus_plane corresponding to this block @@ -236,8 +235,7 @@ def mosaic_complex( ) # Process complex data to get dBI, R3D, O3D - dBI3D, R3D, O3D = process_complex3d( - complex3d, offset=100, flip_phi=False) + dBI3D, R3D, O3D = process_complex3d(complex3d, offset=100, flip_phi=False) # Apply transformations if flip_z: @@ -266,14 +264,13 @@ def mosaic_complex( # Stitch tiles for each modality using MosaicInfo logger.info("Stitching tiles") - # Get tile_overlap from metadata (defaults to 0.2) + # Get tile_overlap from metadata (defaults to "auto") tile_overlap = metadata.get("tile_overlap", 0.2) # Create MosaicInfo for each modality - dimensions and coordinates extracted from # tiles dbi_mosaic = MosaicInfo.from_tiles( - tiles=[TileInfo(x=c[0], y=c[1], image=t) - for c, t in zip(coords, dbi_tiles)], + tiles=[TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, dbi_tiles)], depth=depth, chunk_size=None, # Will use tile dimensions circular_mean=False, @@ -281,8 +278,7 @@ def mosaic_complex( ) r3d_mosaic = MosaicInfo.from_tiles( - tiles=[TileInfo(x=c[0], y=c[1], image=t) - for c, t in zip(coords, r3d_tiles)], + tiles=[TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, r3d_tiles)], depth=depth, chunk_size=None, # Will use tile dimensions circular_mean=False, @@ -290,8 +286,7 @@ def mosaic_complex( ) o3d_mosaic = MosaicInfo.from_tiles( - tiles=[TileInfo(x=c[0], y=c[1], image=t) - for c, t in zip(coords, o3d_tiles)], + tiles=[TileInfo(x=c[0], y=c[1], image=t) for c, t in zip(coords, o3d_tiles)], depth=depth, chunk_size=None, # Will use tile dimensions circular_mean=True, @@ -314,8 +309,7 @@ def mosaic_complex( zgroups = [] for out, res in zip( - [dbi_output, r3d_output, o3d_output], [ - dBI_result, R3D_result, O3D_result] + [dbi_output, r3d_output, o3d_output], [dBI_result, R3D_result, O3D_result] ): if shard: res = da.rechunk(res, chunks=shard) diff --git a/linc_convert/utils/io/spool.py b/linc_convert/utils/io/spool.py index 8df53b20..b2b2a80a 100644 --- a/linc_convert/utils/io/spool.py +++ b/linc_convert/utils/io/spool.py @@ -28,8 +28,6 @@ from linc_convert.utils.math import ceildiv logger = logging.getLogger(__name__) - - class SpoolSetInterpreter: """ Interpreter for a set of spool files produced by a Zyla camera. @@ -51,8 +49,7 @@ def __init__( self.type = "dir" self.parent = spool_set_path self.file_list = glob(os.path.join(spool_set_path, "*")) - self.spool_set = tuple([os.path.split(x)[-1] - for x in self.file_list]) + self.spool_set = tuple([os.path.split(x)[-1] for x in self.file_list]) else: assert False, "The input data structure is not a ZIP file or Directory" @@ -77,7 +74,6 @@ def __init__( self.spool_shape[2], self.spool_shape[0] * len(self.spool_files), ) - def _load_info_file(self, info_file: str | PathLike[str]) -> None: loaded_info = loadmat(info_file) info = loaded_info.get("info", None) @@ -95,8 +91,7 @@ def _load_info_file(self, info_file: str | PathLike[str]) -> None: return None num_frames_per_spool = int(self.config["multiimage"]["ImagesPerFile"]) num_frames_to_load = num_total_frames - num_bg_frames - num_spool_files_to_load = ceildiv( - num_frames_to_load, num_frames_per_spool) + num_spool_files_to_load = ceildiv(num_frames_to_load, num_frames_per_spool) self.spool_files = self.spool_files[:num_spool_files_to_load] def _make_filename_from_spool_set( @@ -278,7 +273,7 @@ def assemble(self) -> da.Array: # this is the modified version for lsm pipeline def assemble_cropped(self) -> da.Array: """ - Assemble and transpose the volume, crop to original depth (lazy Dask array). + Assemble and transpose the volume, then crop to original depth (lazy Dask array). Returns ------- diff --git a/linc_convert/utils/stitch.py b/linc_convert/utils/stitch.py index b4a76fc5..98ddf3a4 100644 --- a/linc_convert/utils/stitch.py +++ b/linc_convert/utils/stitch.py @@ -4,7 +4,7 @@ from collections import defaultdict from dataclasses import dataclass -from typing import Any, Dict, List, Optional, Tuple, Union +from typing import Any, Dict, List, Literal, Optional, Tuple, Union import dask.array as da import numpy as np @@ -49,7 +49,7 @@ def from_tiles( chunk_size: Optional[Tuple[int, int]] = None, circular_mean: bool = False, tile_overlap: Union[ - float, int, Tuple[float, float], Tuple[int, int]] = 0.2, + float, int, Tuple[float, float], Tuple[int, int], Literal["auto"]] = "auto", ) -> "MosaicInfo": """Create MosaicInfo from tiles, extracting dimensions and coordinates. @@ -63,14 +63,16 @@ def from_tiles( Chunk size for dask arrays. If None, uses tile dimensions. circular_mean : bool Whether to use circular mean for blending. - tile_overlap : Union[float, int, Tuple[float, float], Tuple[int, int] + tile_overlap : Union[float, int, Tuple[float, float], Tuple[int, int], + Literal["auto"]] Overlap specification: - float in (0, 1): percentile of tile size (e.g., 0.2 = 20% overlap on each side) - int: number of pixels overlap on each side - Tuple[float, float]: percentiles for (x, y) dimensions - Tuple[int, int]: pixel counts for (x, y) dimensions - + - "auto": compute maximum overlap from coordinates (default) + Returns ------- MosaicInfo @@ -130,7 +132,7 @@ def _compute_blending_ramp( ) -> da.Array: """ Compute blending ramp for tile stitching with explicit overlap values. - + Parameters ---------- tile_width : int @@ -141,29 +143,29 @@ def _compute_blending_ramp( Number of overlapping pixels in x dimension (on each side). y_overlap : int Number of overlapping pixels in y dimension (on each side). - + Returns ------- da.Array Blending ramp as a dask array. - + Examples -------- Example with tile_size=3 and overlap=1: - + For the left edge (x_overlap=1): - Create ramp of size (overlap+2) = 3: [0.0, 0.5, 1.0] - Remove first and last: [0.5] - Result: edge weight = 0.5 (non-zero) - + Visual diagram for tile_size=3, overlap=1: - + Position: 0 1 2 Weight: 0.5 1.0 0.5 ↑ ↑ edge edge (non-zero) (non-zero) - + The full tile weights would be: [0.5, 1.0, 0.5] (left edge, center, right edge) """ @@ -171,14 +173,12 @@ def _compute_blending_ramp( wx = np.ones(tile_width, dtype=np.float32) wy = np.ones(tile_height, dtype=np.float32) if x_overlap > 0: - ramp_full = np.linspace( - 0, 1, x_overlap + 2, dtype=np.float32)[1:-1] + ramp_full = np.linspace(0, 1, x_overlap + 2, dtype=np.float32)[1:-1] wx[:x_overlap] = ramp_full wx[-x_overlap:] = ramp_full[::-1] if y_overlap > 0: - ramp_full = np.linspace( - 0, 1, y_overlap + 2, dtype=np.float32)[1:-1] + ramp_full = np.linspace(0, 1, y_overlap + 2, dtype=np.float32)[1:-1] wy[:y_overlap] = ramp_full wy[-y_overlap:] = ramp_full[::-1] @@ -188,7 +188,7 @@ def _compute_blending_ramp( def stitch(self) -> da.Array: """ Stitch tiles into a mosaic using lazy dask operations. - + Returns ------- da.Array @@ -334,8 +334,7 @@ def _combine_block( # For 3D data, total_weight should be broadcasted if len(total_paint.shape) > 2: expand_dim = len(total_paint.shape) - len(total_weight.shape) - total_weight = total_weight.reshape( - total_weight.shape + (1,) * expand_dim) + total_weight = total_weight.reshape(total_weight.shape + (1,) * expand_dim) normalized = total_paint / total_weight if not circular_mean: @@ -350,7 +349,7 @@ def _normalize_tile_overlap( ) -> Tuple[int, int]: """ Normalize tile_overlap parameter to (x_overlap, y_overlap) in pixels. - + Parameters ---------- tile_overlap : Union[float, int, Tuple[float, float], Tuple[int, int]] @@ -364,7 +363,11 @@ def _normalize_tile_overlap( Width of each tile. tile_height : int Height of each tile. - + x_coords : Optional[np.ndarray] + X coordinates for auto computation. + y_coords : Optional[np.ndarray] + Y coordinates for auto computation. + Returns ------- Tuple[int, int] @@ -413,7 +416,7 @@ def stitch_tiles( ) -> da.Array: """ Stitch tiles into a mosaic (backward compatibility wrapper). - + This function is kept for backward compatibility. New code should use MosaicInfo.stitch() directly. """ From c388aecf605087856277d02addbaf14daed312f2 Mon Sep 17 00:00:00 2001 From: Kabilar Gunalan Date: Tue, 30 Jun 2026 13:33:38 -0500 Subject: [PATCH 122/133] Apply suggestion from @kabilar --- linc_convert/modalities/lsm/strip.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linc_convert/modalities/lsm/strip.py b/linc_convert/modalities/lsm/strip.py index 4fe18409..bceb7d9a 100644 --- a/linc_convert/modalities/lsm/strip.py +++ b/linc_convert/modalities/lsm/strip.py @@ -58,7 +58,7 @@ def convert( Parameters ---------- inp - Path to the stripe directory, which contains a + Path to the strip directory, which contains a collection of files named `*spool.dat`. info_file Path to the info file (.mat), which contains the information From c2e03708eb8e91216e8dfe798dab4a8036674267 Mon Sep 17 00:00:00 2001 From: Kabilar Gunalan Date: Tue, 30 Jun 2026 13:39:45 -0500 Subject: [PATCH 123/133] Apply suggestion from @kabilar --- linc_convert/modalities/lsm/single_volume.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/linc_convert/modalities/lsm/single_volume.py b/linc_convert/modalities/lsm/single_volume.py index 82d632e5..fa1633ba 100644 --- a/linc_convert/modalities/lsm/single_volume.py +++ b/linc_convert/modalities/lsm/single_volume.py @@ -1,8 +1,5 @@ """ -Matlab to OME-Zarr. - -Converts Matlab files generated by the MGH in-house OCT pipeline -into a OME-ZARR pyramid. +Converts TIFF to OME-Zarr or NIfTI-Zarr """ import logging From c5d7ab327f9c7d0b1d91712f17f2007bc58bdf1c Mon Sep 17 00:00:00 2001 From: Kabilar Gunalan Date: Tue, 30 Jun 2026 14:03:50 -0500 Subject: [PATCH 124/133] Apply suggestion from @kabilar --- linc_convert/modalities/lsm/single_volume.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/linc_convert/modalities/lsm/single_volume.py b/linc_convert/modalities/lsm/single_volume.py index fa1633ba..67abadfc 100644 --- a/linc_convert/modalities/lsm/single_volume.py +++ b/linc_convert/modalities/lsm/single_volume.py @@ -1,6 +1,4 @@ -""" -Converts TIFF to OME-Zarr or NIfTI-Zarr -""" +""" Converts TIFF to OME-Zarr or NIfTI-Zarr. """ import logging import os From 3df6573d2432d7e3f46622dc1148cb0b9ba0b559 Mon Sep 17 00:00:00 2001 From: Kabilar Gunalan Date: Tue, 30 Jun 2026 14:05:26 -0500 Subject: [PATCH 125/133] Apply suggestion from @kabilar --- linc_convert/utils/io/spool.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/linc_convert/utils/io/spool.py b/linc_convert/utils/io/spool.py index b2b2a80a..c69cbf7b 100644 --- a/linc_convert/utils/io/spool.py +++ b/linc_convert/utils/io/spool.py @@ -273,7 +273,8 @@ def assemble(self) -> da.Array: # this is the modified version for lsm pipeline def assemble_cropped(self) -> da.Array: """ - Assemble and transpose the volume, then crop to original depth (lazy Dask array). + Assemble and transpose the volume, then crop to original depth + with a lazy Dask array. Returns ------- From 7de1fd280473fdca2f25512028fcaddd07793b4f Mon Sep 17 00:00:00 2001 From: Kabilar Gunalan Date: Tue, 30 Jun 2026 14:09:06 -0500 Subject: [PATCH 126/133] Apply suggestion from @kabilar --- linc_convert/modalities/lsm/single_volume.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linc_convert/modalities/lsm/single_volume.py b/linc_convert/modalities/lsm/single_volume.py index 67abadfc..c89124df 100644 --- a/linc_convert/modalities/lsm/single_volume.py +++ b/linc_convert/modalities/lsm/single_volume.py @@ -1,4 +1,4 @@ -""" Converts TIFF to OME-Zarr or NIfTI-Zarr. """ +"""Converts TIFF to OME-Zarr or NIfTI-Zarr.""" import logging import os From 6017245dbd196cefd39c95d6d54a353e1c7cdebb Mon Sep 17 00:00:00 2001 From: Kabilar Gunalan Date: Tue, 30 Jun 2026 14:18:25 -0500 Subject: [PATCH 127/133] Apply suggestion from @kabilar --- .github/workflows/docker-build.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index ed3707c7..bf3e22c7 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -50,7 +50,8 @@ jobs: type=semver,pattern={{version}} type=semver,pattern={{major}}.{{minor}} type=semver,pattern={{major}} - type=sha,prefix={{branch}}- + type=sha,prefix={{branch}}-,enable=${{ github.event_name != 'pull_request' }} + type=sha,enable=${{ github.event_name == 'pull_request' }} type=raw,value=latest,enable={{is_default_branch}} - name: Build and push Docker image From 8bd371aa124d49feef745011fecdf8eea30180ad Mon Sep 17 00:00:00 2001 From: Kabilar Gunalan Date: Tue, 30 Jun 2026 14:25:22 -0500 Subject: [PATCH 128/133] Apply suggestion from @kabilar --- linc_convert/utils/io/spool.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/linc_convert/utils/io/spool.py b/linc_convert/utils/io/spool.py index c69cbf7b..5f3c3ef0 100644 --- a/linc_convert/utils/io/spool.py +++ b/linc_convert/utils/io/spool.py @@ -273,8 +273,7 @@ def assemble(self) -> da.Array: # this is the modified version for lsm pipeline def assemble_cropped(self) -> da.Array: """ - Assemble and transpose the volume, then crop to original depth - with a lazy Dask array. + Assemble and transpose the volume, then crop to original depth. Returns ------- From e8b02dd949c6aacb5042c63ababda0f8cf57e63e Mon Sep 17 00:00:00 2001 From: Kabilar Gunalan Date: Tue, 30 Jun 2026 14:28:06 -0500 Subject: [PATCH 129/133] Apply suggestion from @kabilar --- linc_convert/modalities/lsm/strip.py | 1 + 1 file changed, 1 insertion(+) diff --git a/linc_convert/modalities/lsm/strip.py b/linc_convert/modalities/lsm/strip.py index bceb7d9a..5fc411b5 100644 --- a/linc_convert/modalities/lsm/strip.py +++ b/linc_convert/modalities/lsm/strip.py @@ -16,6 +16,7 @@ import dask.array as da import numpy as np from PIL import Image + # internals from linc_convert.modalities.lsm.cli import lsm from linc_convert.utils.io.spool import SpoolSetInterpreter From e686add1bb6bb9d9312c2a1a769a91d37c74d6a1 Mon Sep 17 00:00:00 2001 From: Kabilar Gunalan Date: Tue, 30 Jun 2026 14:44:17 -0500 Subject: [PATCH 130/133] Apply suggestion from @kabilar --- linc_convert/modalities/lsm/single_volume.py | 1 + 1 file changed, 1 insertion(+) diff --git a/linc_convert/modalities/lsm/single_volume.py b/linc_convert/modalities/lsm/single_volume.py index c89124df..214e502a 100644 --- a/linc_convert/modalities/lsm/single_volume.py +++ b/linc_convert/modalities/lsm/single_volume.py @@ -29,6 +29,7 @@ def convert( inp: str, *, + voxel_size: list[float] = (1, 1, 1), general_config: GeneralConfig = None, zarr_config: ZarrConfig = None, nii_config: NiftiConfig = None, From 4514c38b43189d17c80859c90ec7fc2201c5659b Mon Sep 17 00:00:00 2001 From: Kabilar Gunalan Date: Tue, 30 Jun 2026 14:44:54 -0500 Subject: [PATCH 131/133] Apply suggestion from @kabilar --- linc_convert/modalities/lsm/single_volume.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/linc_convert/modalities/lsm/single_volume.py b/linc_convert/modalities/lsm/single_volume.py index 214e502a..0e92fa88 100644 --- a/linc_convert/modalities/lsm/single_volume.py +++ b/linc_convert/modalities/lsm/single_volume.py @@ -44,6 +44,8 @@ def convert( ---------- inp Path to the input tiff file + voxel_size + Voxel size along the X, Y and Z dimensions, in microns. general_config General configuration zarr_config From 7af0cd2e65bf7f57ce1564dd605f96b7f56ed01a Mon Sep 17 00:00:00 2001 From: Kabilar Gunalan Date: Tue, 30 Jun 2026 14:47:02 -0500 Subject: [PATCH 132/133] Apply suggestion from @kabilar --- linc_convert/modalities/lsm/single_volume.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/linc_convert/modalities/lsm/single_volume.py b/linc_convert/modalities/lsm/single_volume.py index 0e92fa88..cef01963 100644 --- a/linc_convert/modalities/lsm/single_volume.py +++ b/linc_convert/modalities/lsm/single_volume.py @@ -83,8 +83,8 @@ def convert( if nii_config.nii: header = build_nifti_header( zgroup=zgroup, - voxel_size_zyx=[1, 1, 1], - unit="um", + voxel_size_zyx=tuple(voxel_size), + unit="micrometer", nii_config=nii_config, ) zgroup.write_nifti_header(header) From d624d22d783c7cf27b57d7a88e1231adcf13f3e3 Mon Sep 17 00:00:00 2001 From: Kabilar Gunalan Date: Tue, 30 Jun 2026 14:47:50 -0500 Subject: [PATCH 133/133] Apply suggestion from @kabilar --- linc_convert/modalities/lsm/single_volume.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/linc_convert/modalities/lsm/single_volume.py b/linc_convert/modalities/lsm/single_volume.py index cef01963..9bab9e50 100644 --- a/linc_convert/modalities/lsm/single_volume.py +++ b/linc_convert/modalities/lsm/single_volume.py @@ -76,6 +76,8 @@ def convert( inp_data = da.rechunk(inp_data, dataset.chunks) da.store(inp_data, dataset) + voxel_size = list(map(float, reversed(voxel_size))) + # Generate Zarr pyramid and metadata zgroup.generate_pyramid(mode="mean", no_pyramid_axis=zarr_config.no_pyramid_axis) logger.info("Write OME-Zarr multiscale metadata") zgroup.write_ome_metadata(axes=["z", "y", "x"], space_unit=to_ome_unit("um"))

      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