diff --git a/.gitignore b/.gitignore index 505a3b1..f823df8 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,6 @@ wheels/ # Virtual environments .venv + +# Presentations +presentation/ diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 7d69219..e921346 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -24,3 +24,8 @@ repos: - id: ruff-check args: [--fix] - id: ruff-format + + - repo: https://github.com/numpy/numpydoc + rev: v1.11.0 + hooks: + - id: numpydoc-validation diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..a1e9827 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,94 @@ +# AGENTS.md + +Guidance for AI coding agents and human contributors working on `mxalign`. + +## Project + +`mxalign` aligns meteorological `xarray` datasets in space and time. Datasets carry +**traits** (`mlwp_space_trait`, `mlwp_time_trait`, `mlwp_uncertainty_trait` in `ds.attrs`). +The traits are defined by [mlwp-data-specs](https://github.com/mlwp-tools/mlwp-data-specs) and +attached by [mlwp-data-loaders](https://github.com/mlwp-tools/mlwp-data-loaders). Loading and +validating datasets happens in those packages. `mxalign` only reads the traits to decide how to +align. + +Package layout (`src/mxalign/`): + +| Package | Contents | +|---|---| +| `accessor/` | The `ds.mx` accessor (`MxAccessor`): trait predicates (`is_grid`, `is_forecast`, ...) and thin wrappers around alignment operations | +| `alignment/` | Time and space alignment (pairwise ops and the multi-dataset `align_time` / `align_space`), NaN broadcasting, and `interpolations/` (interpolator registry, xarray and Delaunay interpolators) | +| `pipeline/` | The YAML-driven pipeline: `cli` (the `mxalign` command), `runner`, `verification`, `transformations/`, and `config` (pydantic schema for the YAML config) with its `dates` / `save` helpers | +| `utils/` | Helpers shared by `accessor` and `alignment` (`projections`, `traits`) | + +Public functions are re-exported from `mxalign/__init__.py`. Keep those re-exports working when +moving code. + +## Development tools + +- Python >= 3.12, managed with [uv](https://docs.astral.sh/uv/). +- Set up the environment: `uv sync --all-extras` +- Run the tests: `uv run pytest tests -v` +- Run the linters: `uvx pre-commit run --all-files`. This runs ruff check (with `--fix`), ruff + format, codespell, numpydoc-validation and the standard pre-commit hooks. CI runs the same hooks + (`.github/workflows/linting.yaml`), plus the tests (`.github/workflows/tests.yaml`). +- Add a dependency with `uv add ` (or `uv add --optional `), and commit + both `pyproject.toml` and `uv.lock`. + +## Coding conventions + +- **Type annotations** on every argument (including `*args` / `**kwargs`) and every return value, + in `src/` and in `tests/`. Use modern syntax (`X | None`, `list[str]`) and concrete types + (`xr.Dataset`, `np.ndarray`, ...) rather than `Any`. Enforced by ruff's `ANN` rules. +- **Numpy-style docstrings** on every module, class, function and method, in `src/` and in + `tests/`. Each one has a one-line imperative summary ending in a period, then `Parameters`, + `Returns` (or `Yields`), and `Raises` where applicable. Class docstrings document the + `__init__` parameters, so `__init__` itself needs no docstring (it is excluded from + numpydoc's checks). pydantic models in `pipeline/config.py` document their fields under + `Attributes`. Enforced by ruff's `D` rules (numpy convention) and by `numpydoc lint`. + `Examples`, `See Also` and an extended summary are optional. Run `ruff` through pre-commit, which + pins the version: newer ruff releases enable more rules by default. + + ```python + def align_grid_point( + ds1: xr.Dataset, ds2: xr.Dataset, method: str = "xarray", **kwargs: object + ) -> xr.Dataset: + """Interpolate grid dataset ``ds1`` to the point locations of ``ds2``. + + Parameters + ---------- + ds1 : xr.Dataset + Gridded source dataset. + ds2 : xr.Dataset + Point dataset whose locations are the interpolation targets. + method : str, default "xarray" + Name of a registered interpolator. + **kwargs : object + Passed to the interpolator's constructor. + + Returns + ------- + xr.Dataset + ``ds1`` interpolated to the points of ``ds2``. + """ + ``` +- **Formatting** with `ruff format`. Don't hand-format against it. +- **Never mutate inputs**: alignment operations and accessor methods return new datasets (see + `MxAccessor`, which reads traits from `ds.attrs` on every call and never modifies `ds`). +- **Registries**: new interpolators and transformations are registered with + `register_interpolator` / `register_transformation` and imported in their package + `__init__.py`, so they register on `import mxalign`. +- **Config**: new pipeline config keys go into the pydantic models in + `pipeline/config.py`. Sections reject unknown keys unless they pass kwargs through to a function. + +## Tests + +- pytest, under `tests/`. Shared fixtures (`ds_fcst`, `ds_obs`, ...) are in `tests/conftest.py`. +- Test functions are annotated (`-> None`, fixture arguments typed) and have numpy-style docstrings + that state the behaviour being checked, the same as package code. +- Add or update tests together with any behaviour change. + +## Changes and decisions + +- Add an entry to `CHANGELOG.md` under `[Unreleased]` (Keep a Changelog format) with your GitHub + handle. Mark breaking changes with **Breaking:**. +- Record design decisions as ADRs in `doc/adr/` using `doc/adr/template.md`. diff --git a/CHANGELOG.md b/CHANGELOG.md index be3df9f..895c682 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,11 +8,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] ### Changed +- All functions, methods and classes (package and tests) have type annotations and numpy-style docstrings, enforced in pre-commit/CI by ruff `ANN`/`D` rules and `numpydoc-validation`. `AGENTS.md` documents the coding conventions and development tools. @leifdenby +- **Breaking:** the pipeline config is validated against an explicit pydantic schema (`mxalign.pipeline.config.PipelineConfig`, loaded with `load_config`) instead of being read as a free-form dict. Unknown sections or keys, and missing required keys, raise a `ValidationError` when the `Runner` is created; `Runner.config` is now the validated model. Per-dataset `dates` entries override individual fields of the top-level `dates`. @leifdenby +- **Breaking:** file path patterns (`datasets..files` with a `dates:` section, and `alignment.save.path`) now use Python `str.format` syntax instead of earthkit-data patterns: `{reference_time:%Y%m%d%H}` instead of `{reference_time:strftime(%Y%m%d%H)}`, `{year:02d}` instead of `{year:int(%02d)}`. `{lead_time}` (integer hours) and `{valid_time}` are now supported in `files` patterns. `earthkit-data` is no longer a dependency. @michielv +- **Breaking:** temporal alignment always runs in the pipeline; `alignment.time` is optional and only accepts `lead_time` (`reference` | `intersection` | `union`, forecast reference only). Unknown keys such as `return_as` or `method` now raise an error. `align_time` takes `reference` and an explicit `lead_time` instead of `**kwargs`. @michielv - Remove dataset loading and dataset validation and outsource it to [mlwp-data-loaders](https://github.com/mlwp-tools/mlwp-data-loaders) and [mlwp-data-specs](https://github.com/mlwp-tools/mlwp-data-specs) @michielv - Store dataset properties as netCDF-safe individual attributes while keeping read compatibility with legacy `attrs["properties"]` dict/JSON data. [\#21](https://github.com/mlwp-tools/mxalign/pull/21) @observingClouds - Added CI test workflow with first unit tests. [\#21](https://github.com/mlwp-tools/mxalign/pull/21) @observingClouds - Added optional `ifs` dependency group with `cfgrib`, `eccodes`, and `eccodeslib`. [\#21](https://github.com/mlwp-tools/mxalign/pull/21) @observingClouds - Added CI action for package build and upload to pypi.org on releases. [\#28](https://github.com/mlwp-tools/mxalign/pull/28) @leifdenby +- `transform()` and `interpolate()` return the same container type they are given: a one-item list now stays a list instead of being unwrapped to a bare dataset, and a dict with a single dataset no longer raises `KeyError`. @michielv +- Delaunay interpolation weights are shared across datasets on the same grid, so aligning several models to the same points triangulates the grid once. When a multi-chunk `grid_index` is merged into a single chunk, the leading dimensions are re-chunked automatically so blocks stay near dask's `array.chunk-size`. @michielv + +### Fixed +- `ds.mx.add_xy(crs=...)` and `ds.mx.unstack(crs=...)` no longer replace the dataset held by the cached `ds.mx` accessor, so later `ds.mx` calls work on `ds` itself instead of a copy with the CRS attached. @michielv +- Interpolated point datasets no longer inherit the source grid's `crs` and `grid_mapping` attributes, so they can be saved with `to_netcdf`. @michielv +- Saving aligned datasets with `alignment.save.datasets: merge` no longer fails with `UnboundLocalError`; the merged output fills `{name}` in the path with `merged`. @michielv +- A pipeline config without a `transformations:` section no longer crashes. @michielv +- `ds.mx.stack()` now stacks regular grids with `latitude`/`longitude` dimensions (it looked for `lat`/`lon`). @michielv +- Delaunay interpolation could silently reuse the weights of a different grid with the same shape and corner coordinates, giving wrong values; weights are now cached by a hash of the full source and target coordinates. @michielv ## [0.1.0](https://github.com/mlwp-tools/mxalign/releases/tag/v0.1.0) diff --git a/README.md b/README.md index 9f762c1..d359155 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ ds_fcst_aligned = mx.align_space(ds_fcst, reference=ds_obs, method="interpolatio # Align datasets temporally datasets = {"obs": ds_obs, "fcst": ds_fcst_aligned} -aligned_datasets = mx.align_time(datasets, method="intersection") +aligned_datasets = mx.align_time(datasets, reference="obs") ``` For a more comprehensive interactive example, check out the [introductory notebook](./examples/introduction.ipynb). @@ -43,7 +43,7 @@ For a more comprehensive interactive example, check out the [introductory notebo ### Configuration Contents -The configuration file is divided into several main sections: +The configuration file is divided into several main sections. It is validated on load against the schema in `mxalign.pipeline.config` (`PipelineConfig`): unknown sections or keys, and missing required ones such as `alignment.reference`, raise an error up front. Keys that are passed through to a function, such as loader, transformation, metric and save options, are accepted as-is. ```yaml datasets: @@ -61,8 +61,9 @@ transformations: alignment: # Define reference dataset and alignment methods (space, time, NaN broadcasting) reference: obs_data - time: - method: intersection + # Time alignment always runs; options only apply to a forecast reference + # time: + # lead_time: union # reference (default) | intersection | union verification: # Specify the reference dataset and the metrics to calculate @@ -92,7 +93,7 @@ mxalign slurm path/to/config.yaml --account your_account --queue your_queue --co You can also execute the entire configuration-driven pipeline directly from Python using the `Runner` class. ```python -from mxalign.runner import Runner +from mxalign.pipeline.runner import Runner # Initialize the runner with a YAML config file or a dictionary runner = Runner("path/to/config.yaml") diff --git a/examples/advanced.ipynb b/examples/advanced.ipynb index 2c15b56..b234aa2 100644 --- a/examples/advanced.ipynb +++ b/examples/advanced.ipynb @@ -384,7 +384,7 @@ "metadata": {}, "outputs": [], "source": [ - "from mxalign.runner import Runner\n", + "from mxalign.pipeline.runner import Runner\n", "\n", "runner = Runner(\"./config.yaml\")" ] @@ -455,7 +455,7 @@ } ], "source": [ - "runner.config()" + "runner.config" ] }, { diff --git a/examples/config.yaml b/examples/config.yaml index 2a73fc6..a5642db 100644 --- a/examples/config.yaml +++ b/examples/config.yaml @@ -7,17 +7,17 @@ dates: datasets: la-1024-ea-00: - loader: anemoi-inference - files: /scratch/project_465000527/vandenbl/sg-la-comparison/inference-out/la-1024-01-ea-00/{reference_time:strftime(%Y%m%d%H)}.nc + loader: mlwp_data_loaders.loaders.anemoi.anemoi_inference + files: /scratch/project_465000527/vandenbl/sg-la-comparison/inference-out/la-1024-01-ea-00/{reference_time:%Y%m%d%H}.nc #grid_mapping: CERRA variables: ["2t","10u","10v","msl"] cerra: - loader: anemoi-datasets + loader: mlwp_data_loaders.loaders.anemoi.anemoi_datasets files: /scratch/project_465002133/datasets/cerra-rr-an-oper-0001-mars-5p5km-1984-2020-3h-v2-rmi.zarr #grid_mapping: CERRA variables: ["2t_2", "10u_10", "10v_10", "msl_0"] # synop: - # loader: mxalign + # loader: ./myloader.py # files: /scratch/project_465002133/datasets/observations/cerra_synops_2020.nc # variables: ["2t","10si","msl"] transformations: @@ -42,15 +42,16 @@ transformations: alignment: broadcast_nans: False reference: cerra - time: - return_as: forecast + # Time alignment always runs; options only apply to a forecast reference + # time: + # lead_time: union # reference (default) | intersection | union space: interpolation: method: delaunay # save: # method: to_netcdf # datasets: all - # path: "{name}_{year:int(%02d)}.nc" + # path: "{name}_{year:02d}.nc" verification: reference: cerra diff --git a/examples/introduction.ipynb b/examples/introduction.ipynb index 3c4805e..399907b 100644 --- a/examples/introduction.ipynb +++ b/examples/introduction.ipynb @@ -9,11 +9,18 @@ "\n", "**An xarray based package for alignment of meteorological data**\n", "\n", - "When loading a `xr.Dataset` with the `mxalign` package it attaches Properties along 3 axes:\n", + "`mxalign` operates on `xr.Datasets` that conform to the contract defined in [`mlwp-data-specs`](https://github.com/mlwp-tools/mlwp-data-specs).\n", "\n", - "- **space**: _grid_, _point_\n", - "- **time**: _forecast_, _observation_, _climatology_\n", - "- **uncertainty**: _deterministic_, _ensemble_, _quantile_" + "Different types of datasets can be loaded (and validated) with specific loaders from [`mlwp-data-loaders`](https://github.com/mlwp-tools/mlwp-data-specs)\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "65383ad5", + "metadata": {}, + "source": [ + "Opening a dataset directly with `xarray` returns a an `xr.Dataset` exposing the internal structure of the data." ] }, { @@ -567,25 +574,16 @@ " filter: drop-shadow(1px 1px 5px var(--xr-font-color2));\n", " stroke-width: 0.8px;\n", "}\n", - "
<xarray.Dataset> Size: 9GB\n",
-       "Dimensions:         (values: 1142761, time: 25)\n",
+       "
<xarray.Dataset> Size: 475MB\n",
+       "Dimensions:    (values: 1142761, time: 25)\n",
        "Coordinates:\n",
-       "  * time            (time) datetime64[ns] 200B 2020-02-01 ... 2020-02-07\n",
+       "  * time       (time) datetime64[ns] 200B 2020-02-01 ... 2020-02-07\n",
        "Dimensions without coordinates: values\n",
-       "Data variables: (12/81)\n",
-       "    latitude        (values) float32 5MB ...\n",
-       "    longitude       (values) float32 5MB ...\n",
-       "    10u             (time, values) float32 114MB ...\n",
-       "    10v             (time, values) float32 114MB ...\n",
-       "    2d              (time, values) float32 114MB ...\n",
-       "    2t              (time, values) float32 114MB ...\n",
-       "    ...              ...\n",
-       "    z_500           (time, values) float32 114MB ...\n",
-       "    z_700           (time, values) float32 114MB ...\n",
-       "    z_850           (time, values) float32 114MB ...\n",
-       "    z_925           (time, values) float32 114MB ...\n",
-       "    z               (time, values) float32 114MB ...\n",
-       "    tp              (time, values) float32 114MB ...
    • latitude
      (values)
      float64
      dask.array<chunksize=(1142761,), meta=np.ndarray>
      units :
      degrees_north
      long_name :
      latitude
      \n", + " \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      Array Chunk
      Bytes 8.72 MiB 8.72 MiB
      Shape (1142761,) (1142761,)
      Dask graph 1 chunks in 2 graph layers
      Data type float64 numpy.ndarray
      \n", + "
      \n", + " \n", + "\n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + "\n", + " \n", + " 1142761\n", + " 1\n", + "\n", + "
    • longitude
      (values)
      float64
      dask.array<chunksize=(1142761,), meta=np.ndarray>
      units :
      degrees_east
      long_name :
      longitude
      \n", + " \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      Array Chunk
      Bytes 8.72 MiB 8.72 MiB
      Shape (1142761,) (1142761,)
      Dask graph 1 chunks in 2 graph layers
      Data type float64 numpy.ndarray
      \n", + "
      \n", + " \n", + "\n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + "\n", + " \n", + " 1142761\n", + " 1\n", + "\n", + "
    • 10u
      (time, values)
      float64
      dask.array<chunksize=(13, 571381), meta=np.ndarray>
      fill_value :
      nan
      \n", + " \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      Array Chunk
      Bytes 217.96 MiB 56.67 MiB
      Shape (25, 1142761) (13, 571381)
      Dask graph 4 chunks in 2 graph layers
      Data type float64 numpy.ndarray
      \n", + "
      \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + "\n", + " \n", + " 1142761\n", + " 25\n", + "\n", + "
    • 2t
      (time, values)
      float64
      dask.array<chunksize=(13, 571381), meta=np.ndarray>
      fill_value :
      nan
      \n", + " \n", + " \n", + " \n", + " \n", + "
      \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
      Array Chunk
      Bytes 217.96 MiB 56.67 MiB
      Shape (25, 1142761) (13, 571381)
      Dask graph 4 chunks in 2 graph layers
      Data type float64 numpy.ndarray
      \n", + "
      \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + "\n", + " \n", + " 1142761\n", + " 25\n", + "\n", + "
  • " ], "text/plain": [ - " Size: 9GB\n", - "Dimensions: (values: 1142761, time: 25)\n", + " Size: 475MB\n", + "Dimensions: (values: 1142761, time: 25)\n", "Coordinates:\n", - " * time (time) datetime64[ns] 200B 2020-02-01 ... 2020-02-07\n", + " * time (time) datetime64[ns] 200B 2020-02-01 ... 2020-02-07\n", "Dimensions without coordinates: values\n", - "Data variables: (12/81)\n", - " latitude (values) float32 5MB ...\n", - " longitude (values) float32 5MB ...\n", - " 10u (time, values) float32 114MB ...\n", - " 10v (time, values) float32 114MB ...\n", - " 2d (time, values) float32 114MB ...\n", - " 2t (time, values) float32 114MB ...\n", - " ... ...\n", - " z_500 (time, values) float32 114MB ...\n", - " z_700 (time, values) float32 114MB ...\n", - " z_850 (time, values) float32 114MB ...\n", - " z_925 (time, values) float32 114MB ...\n", - " z (time, values) float32 114MB ...\n", - " tp (time, values) float32 114MB ..." + "Data variables:\n", + " latitude (values) float64 9MB dask.array\n", + " longitude (values) float64 9MB dask.array\n", + " 10u (time, values) float64 229MB dask.array\n", + " 2t (time, values) float64 229MB dask.array" ] }, "execution_count": 1, @@ -629,23 +842,74 @@ "source": [ "import xarray as xr\n", "import numpy as np\n", - "import os\n", "\n", - "# netCDF file produced by anemoi-inference\n", - "dir_fcst = \"/scratch/project_465000527/vandenbl/sg-la-comparison/inference-out/la-1024-01-ea-00\"\n", - "fname_fcst = \"2020020100.nc\"\n", + "\n", + "ENDPOINT_URL = \"https://object-store.os-api.cci2.ecmwf.int\"\n", + "STORAGE_OPTS = {\"endpoint_url\": ENDPOINT_URL, \"anon\": True}\n", + "\n", + "# netCDF file produced by anemoi-inference stored in an s3-bucket\n", + "DS_PATH = \"s3://mlwp-sample-datasets/anemoi-inference/unknown-revision/anemoi-inference-lam_2020020100.nc\"\n", "\n", "# Using xarray to open the netCDF-file\n", - "ds_fcst1 = xr.open_dataset(os.path.join(dir_fcst, fname_fcst))\n", + "ds_fcst1 = xr.open_dataset(\n", + " DS_PATH, engine=\"h5netcdf\", storage_options=STORAGE_OPTS, chunks=\"auto\"\n", + ")\n", "ds_fcst1" ] }, + { + "cell_type": "markdown", + "id": "d94c63cb", + "metadata": {}, + "source": [ + "As seen above, the returned dataset may need some additional processing before it can be used in a verification pipeline (e.g. the `latitude` and `longitude` are registered as data variables)" + ] + }, + { + "cell_type": "markdown", + "id": "3ada1ac6", + "metadata": {}, + "source": [ + "When loading a dataset with the `mlwp-data-loaders` package it returns an `xr.Dataset` and attaches Traits along 3 axes:\n", + "\n", + "- **space**: _grid_, _point_\n", + "- **time**: _forecast_, _observation_, _climatology_\n", + "- **uncertainty**: _deterministic_, _ensemble_, _quantile_" + ] + }, + { + "cell_type": "markdown", + "id": "c9815f90", + "metadata": {}, + "source": [ + "Depending on the traits, pre-defined dimensions, coordinates and metadata are enforced." + ] + }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "id": "f718a1d8", "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[32m2026-07-08 07:41:01.467\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_dim_variants with {'axis': 'time', 'variants': [{'lead_time', 'reference_time'}]}\u001b[0m\n", + "\u001b[32m2026-07-08 07:41:01.468\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_required_coords with {'axis': 'time', 'required_coords': {'lead_time', 'reference_time'}}\u001b[0m\n", + "\u001b[32m2026-07-08 07:41:01.469\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_time_coordinate_metadata with {'trait': }\u001b[0m\n", + "\u001b[32m2026-07-08 07:41:01.469\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_coordinate_attrs with {'section': 'Time Coordinate', 'requirement': \"Metadata for coordinate 'reference_time'\", 'coord': 'reference_time', 'required_attrs': {'standard_name': {'forecast_reference_time', 'time'}}}\u001b[0m\n", + "\u001b[32m2026-07-08 07:41:01.469\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_coordinate_attrs with {'section': 'Time Coordinate', 'requirement': \"Metadata for coordinate 'lead_time'\", 'coord': 'lead_time', 'required_attrs': {'standard_name': {'forecast_period'}, 'units': {'h', 'seconds', 's', 'hours'}}}\u001b[0m\n", + "\u001b[32m2026-07-08 07:41:01.470\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_dim_variants with {'axis': 'space', 'variants': [{'yc', 'xc'}, {'grid_index'}, {'latitude', 'longitude'}]}\u001b[0m\n", + "\u001b[32m2026-07-08 07:41:01.470\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_required_coords with {'axis': 'space', 'required_coords': {'latitude', 'longitude'}}\u001b[0m\n", + "\u001b[32m2026-07-08 07:41:01.471\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_space_coordinate_metadata with {'trait': }\u001b[0m\n", + "\u001b[32m2026-07-08 07:41:01.471\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_coordinate_attrs with {'section': 'Spatial Coordinate', 'requirement': \"Metadata for coordinate 'longitude'\", 'coord': 'longitude', 'required_attrs': {'standard_name': {'longitude'}, 'units': {'degrees_east'}}}\u001b[0m\n", + "\u001b[32m2026-07-08 07:41:01.471\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_coordinate_attrs with {'section': 'Spatial Coordinate', 'requirement': \"Metadata for coordinate 'latitude'\", 'coord': 'latitude', 'required_attrs': {'standard_name': {'latitude'}, 'units': {'degrees_north'}}}\u001b[0m\n", + "\u001b[32m2026-07-08 07:41:01.472\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_dim_variants with {'axis': 'uncertainty', 'variants': []}\u001b[0m\n", + "\u001b[32m2026-07-08 07:41:01.472\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_required_coords with {'axis': 'uncertainty', 'required_coords': set()}\u001b[0m\n", + "\u001b[32m2026-07-08 07:41:01.472\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_uncertainty_coordinate_metadata with {'trait': }\u001b[0m\n" + ] + }, { "data": { "text/html": [ @@ -1191,38 +1455,21 @@ " filter: drop-shadow(1px 1px 5px var(--xr-font-color2));\n", " stroke-width: 0.8px;\n", "}\n", - "
    <xarray.Dataset> Size: 9GB\n",
    +       "
    <xarray.Dataset> Size: 475MB\n",
            "Dimensions:         (grid_index: 1142761, reference_time: 1, lead_time: 25)\n",
            "Coordinates:\n",
    -       "    latitude        (grid_index) float32 5MB 20.29 20.31 20.32 ... 63.81 63.77\n",
    -       "    longitude       (grid_index) float32 5MB -17.49 -17.44 -17.4 ... 74.04 74.11\n",
    +       "    latitude        (grid_index) float64 9MB dask.array<chunksize=(1142761,), meta=np.ndarray>\n",
    +       "    longitude       (grid_index) float64 9MB dask.array<chunksize=(1142761,), meta=np.ndarray>\n",
            "  * reference_time  (reference_time) datetime64[ns] 8B 2020-02-01\n",
            "  * lead_time       (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 da...\n",
            "Dimensions without coordinates: grid_index\n",
    -       "Data variables: (12/79)\n",
    -       "    10u             (reference_time, lead_time, grid_index) float32 114MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    10v             (reference_time, lead_time, grid_index) float32 114MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    2d              (reference_time, lead_time, grid_index) float32 114MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    2t              (reference_time, lead_time, grid_index) float32 114MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    cos_julian_day  (reference_time, lead_time, grid_index) float32 114MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    cos_latitude    (reference_time, lead_time, grid_index) float32 114MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    ...              ...\n",
    -       "    z_500           (reference_time, lead_time, grid_index) float32 114MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    z_700           (reference_time, lead_time, grid_index) float32 114MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    z_850           (reference_time, lead_time, grid_index) float32 114MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    z_925           (reference_time, lead_time, grid_index) float32 114MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    z               (reference_time, lead_time, grid_index) float32 114MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    tp              (reference_time, lead_time, grid_index) float32 114MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    +       "Data variables:\n",
    +       "    10u             (reference_time, lead_time, grid_index) float64 229MB dask.array<chunksize=(1, 13, 571381), meta=np.ndarray>\n",
    +       "    2t              (reference_time, lead_time, grid_index) float64 229MB dask.array<chunksize=(1, 13, 571381), meta=np.ndarray>\n",
            "Attributes:\n",
    -       "    properties:  {'space': 'grid', 'time': 'forecast', 'uncertainty': 'determ...
    " + ], + "text/plain": [ + " Size: 475MB\n", + "Dimensions: (grid_index: 1142761, reference_time: 1, lead_time: 25)\n", + "Coordinates:\n", + " latitude (grid_index) float64 9MB dask.array\n", + " longitude (grid_index) float64 9MB dask.array\n", + " * reference_time (reference_time) datetime64[ns] 8B 2020-02-01\n", + " * lead_time (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 da...\n", + "Dimensions without coordinates: grid_index\n", + "Data variables:\n", + " 10u (reference_time, lead_time, grid_index) float64 229MB dask.array\n", + " 2t (reference_time, lead_time, grid_index) float64 229MB dask.array\n", + "Attributes:\n", + " mlwp_time_trait: forecast\n", + " mlwp_space_trait: grid\n", + " mlwp_uncertainty_trait: deterministic" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Using mxalign to open the netCDF-file\n", + "from mlwp_data_loaders import load_and_validate_dataset\n", + "\n", + "LOADER = \"mlwp_data_loaders.loaders.anemoi.anemoi_inference\"\n", + "\n", + "ds_fcst2, report = load_and_validate_dataset(\n", + " DS_PATH, loader=LOADER, storage_options=STORAGE_OPTS, return_validation_report=True\n", + ")\n", + "ds_fcst2" + ] + }, + { + "cell_type": "markdown", + "id": "31d7e305", + "metadata": {}, + "source": [ + "`mlwp-data-loaders` can (`return_validation_report = True`) provide additional information in the form of a validation report" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "e848eef1", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
                                                     Validation Report                                                 \n",
    +       "┏━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n",
    +       "┃ Section            ┃ Requirement               ┃ Status ┃ Detail                    ┃ Check Function            ┃\n",
    +       "┡━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n",
    +       "│ Time Coordinate    │ Allowed dimension         │   ✅   │ Dataset dims satisfy      │ traits._common.check_dim… │\n",
    +       "│                    │ variants                  │        │ variant ['lead_time',     │                           │\n",
    +       "│                    │                           │        │ 'reference_time']         │                           │\n",
    +       "│ Time Coordinate    │ Required coordinates are  │   ✅   │ All required coordinates  │ traits._common.check_req… │\n",
    +       "│                    │ present                   │        │ present: ['lead_time',    │                           │\n",
    +       "│                    │                           │        │ 'reference_time']         │                           │\n",
    +       "│ Time Coordinate    │ Metadata for coordinate   │   ✅   │ reference_time: metadata  │ metadata.coords.check_ti… │\n",
    +       "│                    │ 'reference_time'          │        │ is compliant              │                           │\n",
    +       "│ Time Coordinate    │ Metadata for coordinate   │   ✅   │ lead_time: metadata is    │ metadata.coords.check_ti… │\n",
    +       "│                    │ 'lead_time'               │        │ compliant                 │                           │\n",
    +       "│ Spatial Coordinate │ Allowed dimension         │   ✅   │ Dataset dims satisfy      │ traits._common.check_dim… │\n",
    +       "│                    │ variants                  │        │ variant ['grid_index']    │                           │\n",
    +       "│ Spatial Coordinate │ Required coordinates are  │   ✅   │ All required coordinates  │ traits._common.check_req… │\n",
    +       "│                    │ present                   │        │ present: ['latitude',     │                           │\n",
    +       "│                    │                           │        │ 'longitude']              │                           │\n",
    +       "│ Spatial Coordinate │ Metadata for coordinate   │   ✅   │ longitude: metadata is    │ metadata.coords.check_sp… │\n",
    +       "│                    │ 'longitude'               │        │ compliant                 │                           │\n",
    +       "│ Spatial Coordinate │ Metadata for coordinate   │   ✅   │ latitude: metadata is     │ metadata.coords.check_sp… │\n",
    +       "│                    │ 'latitude'                │        │ compliant                 │                           │\n",
    +       "│ Uncertainty        │ Allowed dimension         │   ✅   │ No dimension restrictions │ traits._common.check_dim… │\n",
    +       "│                    │ variants                  │        │                           │                           │\n",
    +       "│ Uncertainty        │ Required coordinates are  │   ✅   │ No required coordinates   │ traits._common.check_req… │\n",
    +       "│                    │ present                   │        │                           │                           │\n",
    +       "│ Uncertainty        │ Deterministic mode        │   ✅   │ No uncertainty coordinate │ metadata.coords.check_un… │\n",
    +       "│                    │ metadata                  │        │ required                  │                           │\n",
    +       "└────────────────────┴───────────────────────────┴────────┴───────────────────────────┴───────────────────────────┘\n",
    +       "
    \n" + ], + "text/plain": [ + "\u001b[3m Validation Report \u001b[0m\n", + "┏━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mSection \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mRequirement \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mStatus\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mDetail \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mCheck Function \u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n", + "│\u001b[1m \u001b[0m\u001b[1mTime Coordinate \u001b[0m\u001b[1m \u001b[0m│\u001b[2m \u001b[0m\u001b[2mAllowed dimension \u001b[0m\u001b[2m \u001b[0m│ ✅ │\u001b[3m \u001b[0m\u001b[3mDataset dims satisfy \u001b[0m\u001b[3m \u001b[0m│\u001b[1m \u001b[0m\u001b[1mtraits._common.check_dim…\u001b[0m\u001b[1m \u001b[0m│\n", + "│\u001b[1m \u001b[0m│\u001b[2m \u001b[0m\u001b[2mvariants \u001b[0m\u001b[2m \u001b[0m│ │\u001b[3m \u001b[0m\u001b[3mvariant ['lead_time', \u001b[0m\u001b[3m \u001b[0m│\u001b[1m \u001b[0m│\n", + "│\u001b[1m \u001b[0m│\u001b[2m \u001b[0m│ │\u001b[3m \u001b[0m\u001b[3m'reference_time'] \u001b[0m\u001b[3m \u001b[0m│\u001b[1m \u001b[0m│\n", + "│\u001b[1m \u001b[0m\u001b[1mTime Coordinate \u001b[0m\u001b[1m \u001b[0m│\u001b[2m \u001b[0m\u001b[2mRequired coordinates are \u001b[0m\u001b[2m \u001b[0m│ ✅ │\u001b[3m \u001b[0m\u001b[3mAll required coordinates \u001b[0m\u001b[3m \u001b[0m│\u001b[1m \u001b[0m\u001b[1mtraits._common.check_req…\u001b[0m\u001b[1m \u001b[0m│\n", + "│\u001b[1m \u001b[0m│\u001b[2m \u001b[0m\u001b[2mpresent \u001b[0m\u001b[2m \u001b[0m│ │\u001b[3m \u001b[0m\u001b[3mpresent: ['lead_time', \u001b[0m\u001b[3m \u001b[0m│\u001b[1m \u001b[0m│\n", + "│\u001b[1m \u001b[0m│\u001b[2m \u001b[0m│ │\u001b[3m \u001b[0m\u001b[3m'reference_time'] \u001b[0m\u001b[3m \u001b[0m│\u001b[1m \u001b[0m│\n", + "│\u001b[1m \u001b[0m\u001b[1mTime Coordinate \u001b[0m\u001b[1m \u001b[0m│\u001b[2m \u001b[0m\u001b[2mMetadata for coordinate \u001b[0m\u001b[2m \u001b[0m│ ✅ │\u001b[3m \u001b[0m\u001b[3mreference_time: metadata \u001b[0m\u001b[3m \u001b[0m│\u001b[1m \u001b[0m\u001b[1mmetadata.coords.check_ti…\u001b[0m\u001b[1m \u001b[0m│\n", + "│\u001b[1m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m'reference_time' \u001b[0m\u001b[2m \u001b[0m│ │\u001b[3m \u001b[0m\u001b[3mis compliant \u001b[0m\u001b[3m \u001b[0m│\u001b[1m \u001b[0m│\n", + "│\u001b[1m \u001b[0m\u001b[1mTime Coordinate \u001b[0m\u001b[1m \u001b[0m│\u001b[2m \u001b[0m\u001b[2mMetadata for coordinate \u001b[0m\u001b[2m \u001b[0m│ ✅ │\u001b[3m \u001b[0m\u001b[3mlead_time: metadata is \u001b[0m\u001b[3m \u001b[0m│\u001b[1m \u001b[0m\u001b[1mmetadata.coords.check_ti…\u001b[0m\u001b[1m \u001b[0m│\n", + "│\u001b[1m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m'lead_time' \u001b[0m\u001b[2m \u001b[0m│ │\u001b[3m \u001b[0m\u001b[3mcompliant \u001b[0m\u001b[3m \u001b[0m│\u001b[1m \u001b[0m│\n", + "│\u001b[1m \u001b[0m\u001b[1mSpatial Coordinate\u001b[0m\u001b[1m \u001b[0m│\u001b[2m \u001b[0m\u001b[2mAllowed dimension \u001b[0m\u001b[2m \u001b[0m│ ✅ │\u001b[3m \u001b[0m\u001b[3mDataset dims satisfy \u001b[0m\u001b[3m \u001b[0m│\u001b[1m \u001b[0m\u001b[1mtraits._common.check_dim…\u001b[0m\u001b[1m \u001b[0m│\n", + "│\u001b[1m \u001b[0m│\u001b[2m \u001b[0m\u001b[2mvariants \u001b[0m\u001b[2m \u001b[0m│ │\u001b[3m \u001b[0m\u001b[3mvariant ['grid_index'] \u001b[0m\u001b[3m \u001b[0m│\u001b[1m \u001b[0m│\n", + "│\u001b[1m \u001b[0m\u001b[1mSpatial Coordinate\u001b[0m\u001b[1m \u001b[0m│\u001b[2m \u001b[0m\u001b[2mRequired coordinates are \u001b[0m\u001b[2m \u001b[0m│ ✅ │\u001b[3m \u001b[0m\u001b[3mAll required coordinates \u001b[0m\u001b[3m \u001b[0m│\u001b[1m \u001b[0m\u001b[1mtraits._common.check_req…\u001b[0m\u001b[1m \u001b[0m│\n", + "│\u001b[1m \u001b[0m│\u001b[2m \u001b[0m\u001b[2mpresent \u001b[0m\u001b[2m \u001b[0m│ │\u001b[3m \u001b[0m\u001b[3mpresent: ['latitude', \u001b[0m\u001b[3m \u001b[0m│\u001b[1m \u001b[0m│\n", + "│\u001b[1m \u001b[0m│\u001b[2m \u001b[0m│ │\u001b[3m \u001b[0m\u001b[3m'longitude'] \u001b[0m\u001b[3m \u001b[0m│\u001b[1m \u001b[0m│\n", + "│\u001b[1m \u001b[0m\u001b[1mSpatial Coordinate\u001b[0m\u001b[1m \u001b[0m│\u001b[2m \u001b[0m\u001b[2mMetadata for coordinate \u001b[0m\u001b[2m \u001b[0m│ ✅ │\u001b[3m \u001b[0m\u001b[3mlongitude: metadata is \u001b[0m\u001b[3m \u001b[0m│\u001b[1m \u001b[0m\u001b[1mmetadata.coords.check_sp…\u001b[0m\u001b[1m \u001b[0m│\n", + "│\u001b[1m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m'longitude' \u001b[0m\u001b[2m \u001b[0m│ │\u001b[3m \u001b[0m\u001b[3mcompliant \u001b[0m\u001b[3m \u001b[0m│\u001b[1m \u001b[0m│\n", + "│\u001b[1m \u001b[0m\u001b[1mSpatial Coordinate\u001b[0m\u001b[1m \u001b[0m│\u001b[2m \u001b[0m\u001b[2mMetadata for coordinate \u001b[0m\u001b[2m \u001b[0m│ ✅ │\u001b[3m \u001b[0m\u001b[3mlatitude: metadata is \u001b[0m\u001b[3m \u001b[0m│\u001b[1m \u001b[0m\u001b[1mmetadata.coords.check_sp…\u001b[0m\u001b[1m \u001b[0m│\n", + "│\u001b[1m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m'latitude' \u001b[0m\u001b[2m \u001b[0m│ │\u001b[3m \u001b[0m\u001b[3mcompliant \u001b[0m\u001b[3m \u001b[0m│\u001b[1m \u001b[0m│\n", + "│\u001b[1m \u001b[0m\u001b[1mUncertainty \u001b[0m\u001b[1m \u001b[0m│\u001b[2m \u001b[0m\u001b[2mAllowed dimension \u001b[0m\u001b[2m \u001b[0m│ ✅ │\u001b[3m \u001b[0m\u001b[3mNo dimension restrictions\u001b[0m\u001b[3m \u001b[0m│\u001b[1m \u001b[0m\u001b[1mtraits._common.check_dim…\u001b[0m\u001b[1m \u001b[0m│\n", + "│\u001b[1m \u001b[0m│\u001b[2m \u001b[0m\u001b[2mvariants \u001b[0m\u001b[2m \u001b[0m│ │\u001b[3m \u001b[0m│\u001b[1m \u001b[0m│\n", + "│\u001b[1m \u001b[0m\u001b[1mUncertainty \u001b[0m\u001b[1m \u001b[0m│\u001b[2m \u001b[0m\u001b[2mRequired coordinates are \u001b[0m\u001b[2m \u001b[0m│ ✅ │\u001b[3m \u001b[0m\u001b[3mNo required coordinates \u001b[0m\u001b[3m \u001b[0m│\u001b[1m \u001b[0m\u001b[1mtraits._common.check_req…\u001b[0m\u001b[1m \u001b[0m│\n", + "│\u001b[1m \u001b[0m│\u001b[2m \u001b[0m\u001b[2mpresent \u001b[0m\u001b[2m \u001b[0m│ │\u001b[3m \u001b[0m│\u001b[1m \u001b[0m│\n", + "│\u001b[1m \u001b[0m\u001b[1mUncertainty \u001b[0m\u001b[1m \u001b[0m│\u001b[2m \u001b[0m\u001b[2mDeterministic mode \u001b[0m\u001b[2m \u001b[0m│ ✅ │\u001b[3m \u001b[0m\u001b[3mNo uncertainty coordinate\u001b[0m\u001b[3m \u001b[0m│\u001b[1m \u001b[0m\u001b[1mmetadata.coords.check_un…\u001b[0m\u001b[1m \u001b[0m│\n", + "│\u001b[1m \u001b[0m│\u001b[2m \u001b[0m\u001b[2mmetadata \u001b[0m\u001b[2m \u001b[0m│ │\u001b[3m \u001b[0m\u001b[3mrequired \u001b[0m\u001b[3m \u001b[0m│\u001b[1m \u001b[0m│\n", + "└────────────────────┴───────────────────────────┴────────┴───────────────────────────┴───────────────────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
    Summary: 0 fail(s), 0 warning(s), 11 pass(es).\n",
    +       "
    \n" + ], + "text/plain": [ + "Summary: \u001b[1;36m0\u001b[0m \u001b[1;35mfail\u001b[0m\u001b[1m(\u001b[0ms\u001b[1m)\u001b[0m, \u001b[1;36m0\u001b[0m \u001b[1;35mwarning\u001b[0m\u001b[1m(\u001b[0ms\u001b[1m)\u001b[0m, \u001b[1;36m11\u001b[0m \u001b[1;35mpass\u001b[0m\u001b[1m(\u001b[0mes\u001b[1m)\u001b[0m.\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "report.console_print()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "6f4f1472", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'mlwp_time_trait': 'forecast',\n", + " 'mlwp_space_trait': 'grid',\n", + " 'mlwp_uncertainty_trait': 'deterministic'}" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# The type of datasets is uniquely defined by its Traits (stored as attributes)\n", + "ds_fcst2.attrs" + ] + }, + { + "cell_type": "markdown", + "id": "fd2fb88c", + "metadata": {}, + "source": [ + "## Traits\n", + "Every trait comes with a _contract_: a required set of dimensions, dimension names and coordinates\n", + "\n", + "### Space\n", + "**GRID**\n", + "- required dimensions: `(grid_index)` or `(lat, lon)` or `(yc, xc)`\n", + "- required coordinates: `(lat, lon)`\n", + "\n", + "**OBSERVATION**\n", + "- required dimensions: `(point_index)`\n", + "- required dimensions: `(lat, lon)`\n", + "\n", + "### Time\n", + "**FORECAST**\n", + "- required dimensions: `(reference_time, lead_time)`\n", + "- required coordinates: `(reference_time, lead_time)`\n", + "\n", + "**OBSERVATION**\n", + "- required dimensions: `(valid_time)`\n", + "- required coordinates: `(valid_time)`\n", + "\n", + "**CLIMATOLOGY**\n", + "TBD\n", + "\n", + "### Uncertainty\n", + "**DETERMINISTIC**\n", + "- required dimensions: `null`\n", + "- required coordinates: `null`\n", + "\n", + "**ENSEMBLE**\n", + "- required dimensions: `(member)`\n", + "- required coordinates: `(member)`\n", + "\n", + "**QUANTILE**\n", + "- required dimensions: `(quantile)`\n", + "- required coordinates: `(quantile)`\n", + "\n", + "When a dataset is loaded with `mxalign` the above specification get validated." + ] + }, + { + "cell_type": "markdown", + "id": "25971749", + "metadata": {}, + "source": [ + "## Accessors\n", + "With datesets defined along the three Trait-axes, alignment methods can be inferred from the datasets themselves.\n", + "\n", + "For this the `mxalign` package adds an `mx` accessor to `xr.Datasets`" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "79297314", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[32m2026-07-08 07:46:53.798\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_dim_variants with {'axis': 'time', 'variants': [{'lead_time', 'reference_time'}]}\u001b[0m\n", + "\u001b[32m2026-07-08 07:46:53.799\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_required_coords with {'axis': 'time', 'required_coords': {'lead_time', 'reference_time'}}\u001b[0m\n", + "\u001b[32m2026-07-08 07:46:53.799\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_time_coordinate_metadata with {'trait': }\u001b[0m\n", + "\u001b[32m2026-07-08 07:46:53.800\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_coordinate_attrs with {'section': 'Time Coordinate', 'requirement': \"Metadata for coordinate 'reference_time'\", 'coord': 'reference_time', 'required_attrs': {'standard_name': {'forecast_reference_time', 'time'}}}\u001b[0m\n", + "\u001b[32m2026-07-08 07:46:53.800\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_coordinate_attrs with {'section': 'Time Coordinate', 'requirement': \"Metadata for coordinate 'lead_time'\", 'coord': 'lead_time', 'required_attrs': {'standard_name': {'forecast_period'}, 'units': {'h', 'seconds', 's', 'hours'}}}\u001b[0m\n", + "\u001b[32m2026-07-08 07:46:53.801\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_dim_variants with {'axis': 'space', 'variants': [{'yc', 'xc'}, {'grid_index'}, {'latitude', 'longitude'}]}\u001b[0m\n", + "\u001b[32m2026-07-08 07:46:53.801\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_required_coords with {'axis': 'space', 'required_coords': {'latitude', 'longitude'}}\u001b[0m\n", + "\u001b[32m2026-07-08 07:46:53.801\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_space_coordinate_metadata with {'trait': }\u001b[0m\n", + "\u001b[32m2026-07-08 07:46:53.802\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_coordinate_attrs with {'section': 'Spatial Coordinate', 'requirement': \"Metadata for coordinate 'longitude'\", 'coord': 'longitude', 'required_attrs': {'standard_name': {'longitude'}, 'units': {'degrees_east'}}}\u001b[0m\n", + "\u001b[32m2026-07-08 07:46:53.802\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_coordinate_attrs with {'section': 'Spatial Coordinate', 'requirement': \"Metadata for coordinate 'latitude'\", 'coord': 'latitude', 'required_attrs': {'standard_name': {'latitude'}, 'units': {'degrees_north'}}}\u001b[0m\n", + "\u001b[32m2026-07-08 07:46:53.803\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_dim_variants with {'axis': 'uncertainty', 'variants': []}\u001b[0m\n", + "\u001b[32m2026-07-08 07:46:53.803\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_required_coords with {'axis': 'uncertainty', 'required_coords': set()}\u001b[0m\n", + "\u001b[32m2026-07-08 07:46:53.804\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_uncertainty_coordinate_metadata with {'trait': }\u001b[0m\n" + ] + }, + { + "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    <xarray.Dataset> Size: 932MB\n",
    +       "Dimensions:         (reference_time: 2, lead_time: 25, grid_index: 1142761)\n",
    +       "Coordinates:\n",
    +       "  * reference_time  (reference_time) datetime64[ns] 16B 2020-02-01 2020-02-02\n",
    +       "  * lead_time       (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 da...\n",
    +       "    latitude        (grid_index) float64 9MB 20.29 20.31 20.32 ... 63.81 63.77\n",
    +       "    longitude       (grid_index) float64 9MB -17.49 -17.44 -17.4 ... 74.04 74.11\n",
    +       "Dimensions without coordinates: grid_index\n",
    +       "Data variables:\n",
    +       "    10u             (reference_time, lead_time, grid_index) float64 457MB dask.array<chunksize=(1, 13, 571381), meta=np.ndarray>\n",
    +       "    2t              (reference_time, lead_time, grid_index) float64 457MB dask.array<chunksize=(1, 13, 571381), meta=np.ndarray>\n",
    +       "Attributes:\n",
    +       "    mlwp_time_trait:         forecast\n",
    +       "    mlwp_space_trait:        grid\n",
    +       "    mlwp_uncertainty_trait:  deterministic
    " - ], - "text/plain": [ - " Size: 9GB\n", - "Dimensions: (grid_index: 1142761, reference_time: 1, lead_time: 25)\n", - "Coordinates:\n", - " latitude (grid_index) float32 5MB 20.29 20.31 20.32 ... 63.81 63.77\n", - " longitude (grid_index) float32 5MB -17.49 -17.44 -17.4 ... 74.04 74.11\n", - " * reference_time (reference_time) datetime64[ns] 8B 2020-02-01\n", - " * lead_time (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 da...\n", - "Dimensions without coordinates: grid_index\n", - "Data variables: (12/79)\n", - " 10u (reference_time, lead_time, grid_index) float32 114MB dask.array\n", - " 10v (reference_time, lead_time, grid_index) float32 114MB dask.array\n", - " 2d (reference_time, lead_time, grid_index) float32 114MB dask.array\n", - " 2t (reference_time, lead_time, grid_index) float32 114MB dask.array\n", - " cos_julian_day (reference_time, lead_time, grid_index) float32 114MB dask.array\n", - " cos_latitude (reference_time, lead_time, grid_index) float32 114MB dask.array\n", - " ... ...\n", - " z_500 (reference_time, lead_time, grid_index) float32 114MB dask.array\n", - " z_700 (reference_time, lead_time, grid_index) float32 114MB dask.array\n", - " z_850 (reference_time, lead_time, grid_index) float32 114MB dask.array\n", - " z_925 (reference_time, lead_time, grid_index) float32 114MB dask.array\n", - " z (reference_time, lead_time, grid_index) float32 114MB dask.array\n", - " tp (reference_time, lead_time, grid_index) float32 114MB dask.array\n", - "Attributes:\n", - " properties: {'space': 'grid', 'time': 'forecast', 'uncertainty': 'determ..." - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Using mxalign to open the netCDF-file\n", - "import mxalign as mx\n", - "\n", - "ds_fcst2 = mx.load(\n", - " \"anemoi-inference\", os.path.join(dir_fcst, fname_fcst), engine=\"netcdf4\"\n", - ")\n", - "ds_fcst2" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "6f4f1472", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'space': 'grid', 'time': 'forecast', 'uncertainty': 'deterministic'}" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# The type of datasets is uniquely defined by its properties\n", - "ds_fcst2.attrs[\"properties\"]" - ] - }, - { - "cell_type": "markdown", - "id": "fd2fb88c", - "metadata": {}, - "source": [ - "## Properties\n", - "Every property comes with a _contract_: a required set of dimensions, dimension names and coordinates\n", - "\n", - "### Space\n", - "**GRID**\n", - "- required dimensions: `(grid_index)` or `(lat, lon)` or `(yc, xc)`\n", - "- required coordinates: `(lat, lon)`\n", - "\n", - "**OBSERVATION**\n", - "- required dimensions: `(point_index)`\n", - "- required dimensions: `(lat, lon)`\n", - "\n", - "### Time\n", - "**FORECAST**\n", - "- required dimensions: `(reference_time, lead_time)`\n", - "- required coordinates: `(reference_time, lead_time)`\n", - "\n", - "**OBSERVATION**\n", - "- required dimensions: `(valid_time)`\n", - "- required coordinates: `(valid_time)`\n", - "\n", - "**CLIMATOLOGY**\n", - "TBD\n", - "\n", - "### Uncertainty\n", - "**DETERMINISTIC**\n", - "- required dimensions: `null`\n", - "- required coordinates: `null`\n", - "\n", - "**ENSEMBLE**\n", - "- required dimensions: `(member)`\n", - "- required coordinates: `(member)`\n", - "\n", - "**QUANTILE**\n", - "- required dimensions: `(quantile)`\n", - "- required coordinates: `(quantile)`\n", - "\n", - "When a dataset is loaded with `mxalign` the above specification get validated." - ] - }, - { - "cell_type": "markdown", - "id": "25971749", - "metadata": {}, - "source": [ - "## Accessors\n", - "With datesets defined along the three Property-axes, alignment methods can be inferred from the datasets themselves.\n", - "\n", - "For this the `mxalign` package adds a `time` and `space` accessor to `xr.Datasets`" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "79297314", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
    \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
    <xarray.Dataset> Size: 27GB\n",
    -       "Dimensions:         (reference_time: 3, lead_time: 25, grid_index: 1142761)\n",
    -       "Coordinates:\n",
    -       "  * reference_time  (reference_time) datetime64[ns] 24B 2020-02-01 ... 2020-0...\n",
    -       "  * lead_time       (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 da...\n",
    -       "    latitude        (grid_index) float32 5MB 20.29 20.31 20.32 ... 63.81 63.77\n",
    -       "    longitude       (grid_index) float32 5MB -17.49 -17.44 -17.4 ... 74.04 74.11\n",
    -       "Dimensions without coordinates: grid_index\n",
    -       "Data variables: (12/79)\n",
    -       "    10u             (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    10v             (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    2d              (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    2t              (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    cos_julian_day  (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    cos_latitude    (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    ...              ...\n",
    -       "    z_500           (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    z_700           (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    z_850           (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    z_925           (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    z               (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    tp              (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "Attributes:\n",
    -       "    properties:  {'space': 'grid', 'time': 'forecast', 'uncertainty': 'determ...
    " - ], - "text/plain": [ - " Size: 27GB\n", - "Dimensions: (reference_time: 3, lead_time: 25, grid_index: 1142761)\n", - "Coordinates:\n", - " * reference_time (reference_time) datetime64[ns] 24B 2020-02-01 ... 2020-0...\n", - " * lead_time (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 da...\n", - " latitude (grid_index) float32 5MB 20.29 20.31 20.32 ... 63.81 63.77\n", - " longitude (grid_index) float32 5MB -17.49 -17.44 -17.4 ... 74.04 74.11\n", - "Dimensions without coordinates: grid_index\n", - "Data variables: (12/79)\n", - " 10u (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " 10v (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " 2d (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " 2t (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " cos_julian_day (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " cos_latitude (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " ... ...\n", - " z_500 (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " z_700 (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " z_850 (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " z_925 (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " z (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " tp (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - "Attributes:\n", - " properties: {'space': 'grid', 'time': 'forecast', 'uncertainty': 'determ..." - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# anemoi-inference forecasts\n", - "fname_fcst = [\"2020020100.nc\", \"2020020200.nc\", \"2020020300.nc\"]\n", - "ds_fcst = mx.load(\n", - " \"anemoi-inference\",\n", - " [os.path.join(dir_fcst, fname) for fname in fname_fcst],\n", - " engine=\"netcdf4\",\n", - ")\n", - "ds_fcst" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "3f9a50e4", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Dataset is a forecast\n" - ] - }, - { - "data": { - "text/html": [ - "
    \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
    <xarray.Dataset> Size: 27GB\n",
    -       "Dimensions:         (reference_time: 3, lead_time: 25, grid_index: 1142761)\n",
    -       "Coordinates:\n",
    -       "  * reference_time  (reference_time) datetime64[ns] 24B 2020-02-01 ... 2020-0...\n",
    -       "  * lead_time       (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 da...\n",
    -       "    valid_time      (reference_time, lead_time) datetime64[ns] 600B 2020-02-0...\n",
    -       "    latitude        (grid_index) float32 5MB 20.29 20.31 20.32 ... 63.81 63.77\n",
    -       "    longitude       (grid_index) float32 5MB -17.49 -17.44 -17.4 ... 74.04 74.11\n",
    -       "Dimensions without coordinates: grid_index\n",
    -       "Data variables: (12/79)\n",
    -       "    10u             (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    10v             (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    2d              (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    2t              (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    cos_julian_day  (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    cos_latitude    (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    ...              ...\n",
    -       "    z_500           (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    z_700           (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    z_850           (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    z_925           (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    z               (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    tp              (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "Attributes:\n",
    -       "    properties:  {'space': 'grid', 'time': 'forecast', 'uncertainty': 'determ...
    " - ], - "text/plain": [ - " Size: 27GB\n", - "Dimensions: (reference_time: 3, lead_time: 25, grid_index: 1142761)\n", - "Coordinates:\n", - " * reference_time (reference_time) datetime64[ns] 24B 2020-02-01 ... 2020-0...\n", - " * lead_time (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 da...\n", - " valid_time (reference_time, lead_time) datetime64[ns] 600B 2020-02-0...\n", - " latitude (grid_index) float32 5MB 20.29 20.31 20.32 ... 63.81 63.77\n", - " longitude (grid_index) float32 5MB -17.49 -17.44 -17.4 ... 74.04 74.11\n", - "Dimensions without coordinates: grid_index\n", - "Data variables: (12/79)\n", - " 10u (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " 10v (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " 2d (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " 2t (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " cos_julian_day (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " cos_latitude (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " ... ...\n", - " z_500 (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " z_700 (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " z_850 (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " z_925 (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " z (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " tp (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - "Attributes:\n", - " properties: {'space': 'grid', 'time': 'forecast', 'uncertainty': 'determ..." - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# TIME accessor\n", - "if ds_fcst.time.is_forecast():\n", - " print(\"Dataset is a forecast\")\n", - "if ds_fcst.time.is_observation():\n", - " print(\"Dataset is an observation\")\n", - "\n", - "# Add an auxiliary valid time coordinate\n", - "ds_fcst = ds_fcst.time.add_valid_time()\n", - "ds_fcst" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "1effcc4a", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
    \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
    <xarray.Dataset> Size: 27GB\n",
    -       "Dimensions:         (reference_time: 3, lead_time: 25, grid_index: 1142761)\n",
    -       "Coordinates:\n",
    -       "  * reference_time  (reference_time) datetime64[ns] 24B 2020-02-01 ... 2020-0...\n",
    -       "  * lead_time       (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 da...\n",
    -       "    valid_time      (reference_time, lead_time) datetime64[ns] 600B 2020-02-0...\n",
    -       "    latitude        (grid_index) float32 5MB 20.29 20.31 20.32 ... 63.81 63.77\n",
    -       "    longitude       (grid_index) float32 5MB -17.49 -17.44 -17.4 ... 74.04 74.11\n",
    -       "Dimensions without coordinates: grid_index\n",
    -       "Data variables: (12/79)\n",
    -       "    10u             (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    10v             (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    2d              (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    2t              (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    cos_julian_day  (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    cos_latitude    (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    ...              ...\n",
    -       "    z_500           (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    z_700           (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    z_850           (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    z_925           (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    z               (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    tp              (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "Attributes:\n",
    -       "    properties:  {'space': 'grid', 'time': 'forecast', 'uncertainty': 'determ...\n",
    -       "    crs:         +proj=lcc +ellps=WGS84 +a=6371229.0 +b=6371229.0 +lon_0=8.0 ...
    " - ], - "text/plain": [ - " Size: 27GB\n", - "Dimensions: (reference_time: 3, lead_time: 25, grid_index: 1142761)\n", - "Coordinates:\n", - " * reference_time (reference_time) datetime64[ns] 24B 2020-02-01 ... 2020-0...\n", - " * lead_time (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 da...\n", - " valid_time (reference_time, lead_time) datetime64[ns] 600B 2020-02-0...\n", - " latitude (grid_index) float32 5MB 20.29 20.31 20.32 ... 63.81 63.77\n", - " longitude (grid_index) float32 5MB -17.49 -17.44 -17.4 ... 74.04 74.11\n", - "Dimensions without coordinates: grid_index\n", - "Data variables: (12/79)\n", - " 10u (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " 10v (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " 2d (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " 2t (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " cos_julian_day (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " cos_latitude (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " ... ...\n", - " z_500 (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " z_700 (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " z_850 (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " z_925 (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " z (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " tp (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - "Attributes:\n", - " properties: {'space': 'grid', 'time': 'forecast', 'uncertainty': 'determ...\n", - " crs: +proj=lcc +ellps=WGS84 +a=6371229.0 +b=6371229.0 +lon_0=8.0 ..." - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# SPACE accessor\n", - "import cartopy.crs as ccrs\n", - "\n", - "# Define a Coordinate Reference System (CRS)\n", - "globe_cerra = ccrs.Globe(semimajor_axis=6371229.0, semiminor_axis=6371229.0)\n", - "crs_cerra = ccrs.LambertConformal(\n", - " central_longitude=8.0,\n", - " central_latitude=50.0,\n", - " standard_parallels=[50.0, 50.0],\n", - " globe=globe_cerra,\n", - ")\n", - "\n", - "# Add it to the dataset (this will enable other functionality)\n", - "ds_fcst = ds_fcst.space.add_crs(crs_cerra)\n", - "ds_fcst" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "77d7ff0e", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
    \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
    <xarray.Dataset> Size: 27GB\n",
    -       "Dimensions:         (reference_time: 3, lead_time: 25, grid_index: 1142761)\n",
    -       "Coordinates:\n",
    -       "  * reference_time  (reference_time) datetime64[ns] 24B 2020-02-01 ... 2020-0...\n",
    -       "  * lead_time       (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 da...\n",
    -       "    valid_time      (reference_time, lead_time) datetime64[ns] 600B 2020-02-0...\n",
    -       "    latitude        (grid_index) float32 5MB 20.29 20.31 20.32 ... 63.81 63.77\n",
    -       "    longitude       (grid_index) float32 5MB -17.49 -17.44 -17.4 ... 74.04 74.11\n",
    -       "    xc              (grid_index) float64 9MB -2.937e+06 -2.931e+06 ... 2.937e+06\n",
    -       "    yc              (grid_index) float64 9MB -2.937e+06 -2.937e+06 ... 2.937e+06\n",
    -       "Dimensions without coordinates: grid_index\n",
    -       "Data variables: (12/79)\n",
    -       "    10u             (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    10v             (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    2d              (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    2t              (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    cos_julian_day  (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    cos_latitude    (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    ...              ...\n",
    -       "    z_500           (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    z_700           (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    z_850           (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    z_925           (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    z               (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    tp              (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "Attributes:\n",
    -       "    properties:  {'space': 'grid', 'time': 'forecast', 'uncertainty': 'determ...\n",
    -       "    crs:         +proj=lcc +ellps=WGS84 +a=6371229.0 +b=6371229.0 +lon_0=8.0 ...
    " - ], - "text/plain": [ - " Size: 27GB\n", - "Dimensions: (reference_time: 3, lead_time: 25, grid_index: 1142761)\n", - "Coordinates:\n", - " * reference_time (reference_time) datetime64[ns] 24B 2020-02-01 ... 2020-0...\n", - " * lead_time (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 da...\n", - " valid_time (reference_time, lead_time) datetime64[ns] 600B 2020-02-0...\n", - " latitude (grid_index) float32 5MB 20.29 20.31 20.32 ... 63.81 63.77\n", - " longitude (grid_index) float32 5MB -17.49 -17.44 -17.4 ... 74.04 74.11\n", - " xc (grid_index) float64 9MB -2.937e+06 -2.931e+06 ... 2.937e+06\n", - " yc (grid_index) float64 9MB -2.937e+06 -2.937e+06 ... 2.937e+06\n", - "Dimensions without coordinates: grid_index\n", - "Data variables: (12/79)\n", - " 10u (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " 10v (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " 2d (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " 2t (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " cos_julian_day (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " cos_latitude (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " ... ...\n", - " z_500 (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " z_700 (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " z_850 (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " z_925 (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " z (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " tp (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - "Attributes:\n", - " properties: {'space': 'grid', 'time': 'forecast', 'uncertainty': 'determ...\n", - " crs: +proj=lcc +ellps=WGS84 +a=6371229.0 +b=6371229.0 +lon_0=8.0 ..." - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Add native x and y coordinates (in this case Lambert Conformal)\n", - "ds_fcst = ds_fcst.space.add_xy()\n", - "ds_fcst" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "47988bd3", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
    \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
    <xarray.Dataset> Size: 27GB\n",
    -       "Dimensions:         (reference_time: 3, lead_time: 25, grid_index: 1142761)\n",
    -       "Coordinates:\n",
    -       "  * reference_time  (reference_time) datetime64[ns] 24B 2020-02-01 ... 2020-0...\n",
    -       "  * lead_time       (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 da...\n",
    -       "    valid_time      (reference_time, lead_time) datetime64[ns] 600B 2020-02-0...\n",
    -       "    latitude        (grid_index) float32 5MB 20.29 20.31 20.32 ... 63.81 63.77\n",
    -       "    longitude       (grid_index) float32 5MB -17.49 -17.44 -17.4 ... 74.04 74.11\n",
    -       "    xc              (grid_index) float64 9MB -2.937e+06 -2.931e+06 ... 2.937e+06\n",
    -       "    yc              (grid_index) float64 9MB -2.937e+06 -2.937e+06 ... 2.937e+06\n",
    -       "Dimensions without coordinates: grid_index\n",
    -       "Data variables: (12/79)\n",
    -       "    10u             (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    10v             (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    2d              (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    2t              (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    cos_julian_day  (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    cos_latitude    (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    ...              ...\n",
    -       "    z_500           (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    z_700           (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    z_850           (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    z_925           (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    z               (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    tp              (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "Attributes:\n",
    -       "    properties:    {'space': 'grid', 'time': 'forecast', 'uncertainty': 'dete...\n",
    -       "    crs:           +proj=lcc +ellps=WGS84 +a=6371229.0 +b=6371229.0 +lon_0=8....\n",
    -       "    grid_mapping:  {'lon_ll': -17.4859, 'lat_ll': 20.2923, 'lon_ur': 74.1051,...
    " - ], - "text/plain": [ - " Size: 27GB\n", - "Dimensions: (reference_time: 3, lead_time: 25, grid_index: 1142761)\n", - "Coordinates:\n", - " * reference_time (reference_time) datetime64[ns] 24B 2020-02-01 ... 2020-0...\n", - " * lead_time (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 da...\n", - " valid_time (reference_time, lead_time) datetime64[ns] 600B 2020-02-0...\n", - " latitude (grid_index) float32 5MB 20.29 20.31 20.32 ... 63.81 63.77\n", - " longitude (grid_index) float32 5MB -17.49 -17.44 -17.4 ... 74.04 74.11\n", - " xc (grid_index) float64 9MB -2.937e+06 -2.931e+06 ... 2.937e+06\n", - " yc (grid_index) float64 9MB -2.937e+06 -2.937e+06 ... 2.937e+06\n", - "Dimensions without coordinates: grid_index\n", - "Data variables: (12/79)\n", - " 10u (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " 10v (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " 2d (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " 2t (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " cos_julian_day (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " cos_latitude (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " ... ...\n", - " z_500 (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " z_700 (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " z_850 (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " z_925 (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " z (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " tp (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - "Attributes:\n", - " properties: {'space': 'grid', 'time': 'forecast', 'uncertainty': 'dete...\n", - " crs: +proj=lcc +ellps=WGS84 +a=6371229.0 +b=6371229.0 +lon_0=8....\n", - " grid_mapping: {'lon_ll': -17.4859, 'lat_ll': 20.2923, 'lon_ur': 74.1051,..." - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Adding a grid-mapping will enable unstacking of the grid\n", - "ds_fcst = ds_fcst.space.add_grid_mapping(\"cerra\")\n", - "ds_fcst" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "1d3ce9a0", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
    \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
    <xarray.Dataset> Size: 27GB\n",
    -       "Dimensions:         (yc: 1069, xc: 1069, reference_time: 3, lead_time: 25)\n",
    -       "Coordinates:\n",
    -       "  * yc              (yc) float64 9kB -2.937e+06 -2.931e+06 ... 2.937e+06\n",
    -       "  * xc              (xc) float64 9kB -2.937e+06 -2.931e+06 ... 2.937e+06\n",
    -       "    latitude        (yc, xc) float32 5MB 20.29 20.31 20.32 ... 63.84 63.81 63.77\n",
    -       "    longitude       (yc, xc) float32 5MB -17.49 -17.44 -17.4 ... 74.04 74.11\n",
    -       "  * reference_time  (reference_time) datetime64[ns] 24B 2020-02-01 ... 2020-0...\n",
    -       "  * lead_time       (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 da...\n",
    -       "    valid_time      (reference_time, lead_time) datetime64[ns] 600B 2020-02-0...\n",
    -       "Data variables: (12/79)\n",
    -       "    10u             (reference_time, lead_time, yc, xc) float32 343MB dask.array<chunksize=(1, 25, 1069, 1069), meta=np.ndarray>\n",
    -       "    10v             (reference_time, lead_time, yc, xc) float32 343MB dask.array<chunksize=(1, 25, 1069, 1069), meta=np.ndarray>\n",
    -       "    2d              (reference_time, lead_time, yc, xc) float32 343MB dask.array<chunksize=(1, 25, 1069, 1069), meta=np.ndarray>\n",
    -       "    2t              (reference_time, lead_time, yc, xc) float32 343MB dask.array<chunksize=(1, 25, 1069, 1069), meta=np.ndarray>\n",
    -       "    cos_julian_day  (reference_time, lead_time, yc, xc) float32 343MB dask.array<chunksize=(1, 25, 1069, 1069), meta=np.ndarray>\n",
    -       "    cos_latitude    (reference_time, lead_time, yc, xc) float32 343MB dask.array<chunksize=(1, 25, 1069, 1069), meta=np.ndarray>\n",
    -       "    ...              ...\n",
    -       "    z_500           (reference_time, lead_time, yc, xc) float32 343MB dask.array<chunksize=(1, 25, 1069, 1069), meta=np.ndarray>\n",
    -       "    z_700           (reference_time, lead_time, yc, xc) float32 343MB dask.array<chunksize=(1, 25, 1069, 1069), meta=np.ndarray>\n",
    -       "    z_850           (reference_time, lead_time, yc, xc) float32 343MB dask.array<chunksize=(1, 25, 1069, 1069), meta=np.ndarray>\n",
    -       "    z_925           (reference_time, lead_time, yc, xc) float32 343MB dask.array<chunksize=(1, 25, 1069, 1069), meta=np.ndarray>\n",
    -       "    z               (reference_time, lead_time, yc, xc) float32 343MB dask.array<chunksize=(1, 25, 1069, 1069), meta=np.ndarray>\n",
    -       "    tp              (reference_time, lead_time, yc, xc) float32 343MB dask.array<chunksize=(1, 25, 1069, 1069), meta=np.ndarray>\n",
    -       "Attributes:\n",
    -       "    properties:    {'space': 'grid', 'time': 'forecast', 'uncertainty': 'dete...\n",
    -       "    crs:           +proj=lcc +ellps=WGS84 +a=6371229.0 +b=6371229.0 +lon_0=8....\n",
    -       "    grid_mapping:  {'nx': 1069, 'ny': 1069, 'lon_ll': -17.4859, 'lat_ll': 20....
    " - ], - "text/plain": [ - " Size: 27GB\n", - "Dimensions: (yc: 1069, xc: 1069, reference_time: 3, lead_time: 25)\n", - "Coordinates:\n", - " * yc (yc) float64 9kB -2.937e+06 -2.931e+06 ... 2.937e+06\n", - " * xc (xc) float64 9kB -2.937e+06 -2.931e+06 ... 2.937e+06\n", - " latitude (yc, xc) float32 5MB 20.29 20.31 20.32 ... 63.84 63.81 63.77\n", - " longitude (yc, xc) float32 5MB -17.49 -17.44 -17.4 ... 74.04 74.11\n", - " * reference_time (reference_time) datetime64[ns] 24B 2020-02-01 ... 2020-0...\n", - " * lead_time (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 da...\n", - " valid_time (reference_time, lead_time) datetime64[ns] 600B 2020-02-0...\n", - "Data variables: (12/79)\n", - " 10u (reference_time, lead_time, yc, xc) float32 343MB dask.array\n", - " 10v (reference_time, lead_time, yc, xc) float32 343MB dask.array\n", - " 2d (reference_time, lead_time, yc, xc) float32 343MB dask.array\n", - " 2t (reference_time, lead_time, yc, xc) float32 343MB dask.array\n", - " cos_julian_day (reference_time, lead_time, yc, xc) float32 343MB dask.array\n", - " cos_latitude (reference_time, lead_time, yc, xc) float32 343MB dask.array\n", - " ... ...\n", - " z_500 (reference_time, lead_time, yc, xc) float32 343MB dask.array\n", - " z_700 (reference_time, lead_time, yc, xc) float32 343MB dask.array\n", - " z_850 (reference_time, lead_time, yc, xc) float32 343MB dask.array\n", - " z_925 (reference_time, lead_time, yc, xc) float32 343MB dask.array\n", - " z (reference_time, lead_time, yc, xc) float32 343MB dask.array\n", - " tp (reference_time, lead_time, yc, xc) float32 343MB dask.array\n", - "Attributes:\n", - " properties: {'space': 'grid', 'time': 'forecast', 'uncertainty': 'dete...\n", - " crs: +proj=lcc +ellps=WGS84 +a=6371229.0 +b=6371229.0 +lon_0=8....\n", - " grid_mapping: {'nx': 1069, 'ny': 1069, 'lon_ll': -17.4859, 'lat_ll': 20...." - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Unstack\n", - "ds_fcst = ds_fcst.space.unstack()\n", - "ds_fcst" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "id": "18ff3d66", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAIvCAYAAACBRloiAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzsnXecHVXd/99nyu3bs5tN7wRSCBBa6NICBGwI0gQUHkBQREWxI4qFnw0bKBZAioWiIlVK6L2EmpCQQnrdZOstU87vjzMzd+beu7sJEHjgmc++7mvvnTvlzNw5Zz7n821CSimJESNGjBgxYsR4n0J7rxsQI0aMGDFixIjxdhCTmRgxYsSIESPG+xoxmYkRI0aMGDFivK8Rk5kYMWLEiBEjxvsaMZmJESNGjBgxYryvEZOZGDFixIgRI8b7GjGZiREjRowYMWK8rxGTmRgxYsSIESPG+xrGe92AGDFixIgR44OGQqFAqVR6V46VSCRIpVLvyrH+tyImMzFixIgRI8Y7iEKhQHu6gU7eHTLT3t7O0qVL/08TmpjMxIgRI0aMGO8gSqUSnZT4KfuQ3s6P2Tw2F659nFKpFJOZGDFixIgRI8Y7i6xmkhbb9zGrSQHudj3E+wKxA3CMGDFixIgR432NWJmJESNGjBgxtgM0HTSxnY8hiZUZYmUmRowYMWLEiPE+R6zMxIgRI0aMGNsBQhNoYvtKM0JuZ+nnfYJYmYkRI0aMGDFivK8RKzMxYsSIESPGdoCug76dhRNdbt/9v18QKzMxYsSIESNGjPc1YjITI0aMGDFixHhfIzYzxYgRI0aMGNsB2rvgAKzFDsBArMzEiBEjRowYMd7niJWZGDFixIgRYztA096lpHkxYmUmRowYMWLEiPH+RqzMxIgRI0aMGNsBmh77zLxbiJWZGDFixIgRI8b7GrEyEyNGjBgxYmwHaEL5zWzXY8RFJoFYmYkRI0aMGDFivM8RKzMxYsSIESPGdoCmC7TtHM60vX1y3i+IlZkYMWLEiBEjxvsasTITI0aMGDFibAfomnpt12Ns392/bxArMzFixIgRI0aM9zViZSZGjBgxYsTYDtC0d8FnhthnBmJlJkaMGDFixIjxPkdMZmLEiBEjRoztAKGDtp1fYhudZq688kp23nln6uvrqa+vZ9asWdx1113B94VCgfPOO4+WlhZyuRzHHnss69ati+xj+fLlzJkzh0wmQ1tbG1/5ylewbfuduGRvGTGZiREjRowYMf6PYOTIkfz4xz/mueee49lnn+Xggw/mIx/5CK+++ioAX/ziF/nPf/7DTTfdxEMPPcTq1av5+Mc/HmzvOA5z5syhVCrx+OOPc+2113LNNdfwne985706JQCElDKuuRkjRowYMWK8Q+jq6qKhoYF/jj6UrGZu12P1uhYfW34fnZ2d1NfXv6V9NDc385Of/IRPfOITtLa2cuONN/KJT3wCgAULFrDTTjvxxBNPsPfee3PXXXdx9NFHs3r1aoYOHQrA7373Oy666CI2bNhAIpF4x85tWxArMzFixIgRI8b/QTiOw9/+9jd6e3uZNWsWzz33HJZlceihhwbr7LjjjowePZonnngCgCeeeILp06cHRAZg9uzZdHV1BerOe4E4milGjBgxYsTYDtC0d6E2k/e/q6srsjyZTJJMJmtu8/LLLzNr1iwKhQK5XI5//vOfTJkyhXnz5pFIJGhsbIysP3ToUNauXQvA2rVrI0TG/97/7r3Ce6LMXHfddey4446Ypll10WLUhhCC7373u+91M2L8H8fpp5/O2LFj35NjH3TQQRx00EHvyL4efPBBhBA8+OCD78j+/q8gHof+92LUqFE0NDQErx/96Ef9rjt58mTmzZvHU089xWc/+1lOO+00XnvttXexte883nUys2DBAk4//XQmTJjAH/7wB6666qp3uwn/a3HnnXf+nxwo7r//fj7zmc+www47kMlkGD9+PGeeeSZr1qypuf7jjz/OfvvtRyaTob29nfPPP5+enp7IOs888wyf+9znmDp1KtlsltGjR3P88cezcOHCmvucP38+RxxxBLlcjubmZj71qU+xYcOGrT6HYrHIRRddxPDhw0mn0+y1117ce++9kXX6+vr47W9/y+GHH86wYcOoq6tj11135corr8RxnHf0WAD//e9/OeOMM5g2bRq6rr9nJOS9xBVXXME111zzXjfjXYXrulxzzTV8+MMfZtSoUWSzWaZNm8all15KoVB4r5sXYzthxYoVdHZ2Bq+vf/3r/a6bSCSYOHEiM2fO5Ec/+hEzZszgl7/8Je3t7ZRKJbZs2RJZf926dbS3twPQ3t5eFd3kf/bXeS/wrpuZHnzwQVzX5Ze//CUTJ058tw//vxp33nknv/3tb2sSmnw+j2F8MK2C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f/xj7rjjDi699FKam5v5/e9/z8EHH8xll13GDTfcwIUXXsgee+zBAQccAPC2293X10dfX9+g7dN1naampq0+Hx89PT309PQwZMiQYNnLL7+MbdvsvvvukXUTiQS77LILL7zwwoD7lFKybt26CKFYtWoV69evr9onwJ577smdd945aFtfeOEFdthhhyqJd8899wSUaWzUqFH9bu9HAITPdXsda3tga/vdNddcQy6X40tf+hK5XI4HHniA73znO3R1dfGTn/wk2N+f/vQnzj77bPbZZx8uuOAClixZwoc//GGam5u36dwuv/xyPv/5z5PL5fjmN78JUBWFUYnNmzdz9NFHc8IJJ3Dcccdx5ZVXcsIJJ3DDDTdwwQUXcM4553DSSScFOTlWrFhBXV0doPwG9t57b4QQfO5zn6O1tZW77rqLM844g66uLi644IIBj93Z2YllWYOeVyqVIpfLbd1FCGFb7rMzzzyT66+/npNOOol99tmHBx54gDlz5lSt98wzz/D4449zwgknMHLkSJYtW8aVV17JQQcdxGuvvRb4wO27777ccMMNfPGLX4xsf8MNN1BXV8dHPvIRAM455xxuvvlmPve5zzFlyhQ2bdrEo48+yvz589ltt922+ZxjVONPf/rTgN+nUil++9vfBpPrWhgzZsxWjY3vKrZFxrn44oslIE888cTI8mXLlkld1+UPfvCDyPKXX35ZGoYRWe7vI2xm6u7ulo2NjfJ//ud/ItuvXbtWNjQ0RJafdtppEpBf+9rXIus+8sgjEpA33HBDZPndd99dtXzMmDESkA8//HCwbP369TKZTMovf/nLwbLvfOc7EpC33npr1bVwXVdKKeV1110nNU2TjzzySOT73/3udxKoKff2h4HMTFTIu/51POuss4Jltm3LkSNHSiGE/PGPfxws37x5s0yn0/K0004Llr3ddvvHH+z1Vk0S3//+9yUg77///mDZTTfdVPW7+TjuuONke3v7gPu87rrrJCD/9Kc/BcueeeYZCci//OUvVet/5StfkYAsFAoD7nfq1Kny4IMPrlr+6quvSkD+7ne/63fbYrEop0yZIseNGyctyxrwOG/nWNvLzLQt/a6vr69qf2effbbMZDLBNS6VSrKtrU3usssuETPhVVddJYF3zMw0d+5cCci5c+cGyw488EAJyBtvvDFYtmDBAglITdPkk08+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kq4BHHHEEbS2tnLDDTew11570dfXF5ihwhg2bBjnnnsu5557LuvXr2e33XbjBz/4wfuSzGiaQNO2c54ZGecMgncoA/DHP/5xdF3nkksuqVI2pJQR80YtzJ49m/r6en74wx/W9Obfmkysxx9/PI7jBBJmGLZt1+xcg+HYY4/lxRdf5J///GfVd/55Hn/88axatYo//OEPVevk83l6e3u3+njZbBbgLbV1W/F2233qqady7733Dvrqb8YeRm9vL0cddRSrVq3izjvv7Ndc2dDQwKGHHsr1119Pd3d3sPy6666jp6eH4447LljmOA6f/OQneeKJJ7jpppuChE+1cOyxx3L77bdHwprvv/9+Fi5cGOwzlUpx6KGHRl5+lNYnPvEJHMeJmBeKxSJXX301e+21V0TlevjhhznhhBM44IADuOGGG6oUxnfyWO8Gtrbf+cpGeHwolUpcccUVkW123313Wltb+d3vfhdRKa655pq31C+y2ey70p90XefYY4/llltuqTkB2pox7Gc/+9lW9amvfvWrg+5r/vz5zJkzh7Fjx3L77bdv0wTPJw2/+tWvIssvv/zyqnV1Xa8a83/961/XDLc3DIMTTzyRf/zjH1xzzTVMnz49olY5jhMxTYGa4A4fPjxiWt24cSMLFiyIRFP29fWxYMGCiK8SKLP18uXLBznjGB8EvGPKzKWXXsrXv/51li1bxkc/+lHq6upYunQp//znPznrrLO48MIL+92+vr6eK6+8kk996lPstttunHDCCbS2trJ8+XLuuOMO9t13X37zm98M2IYDDzyQs88+mx/96EfMmzePww8/HNM0WbRoETfddBO//OUvg5LmW4uvfOUr3HzzzRx33HF85jOfYebMmXR0dHDbbbfxu9/9jhkzZvCpT32Kf/zjH5xzzjnMnTuXfffdF8dxWLBgAf/4xz+45557aob91oJvMz///POZPXs2uq5HnBHfSbzddr+TPjMnn3wyTz/9NJ/5zGeYP39+JA9GLpfjox/9aPD5Bz/4Afvssw8HHnggZ511FitXruRnP/sZhx9+OEcccUSw3pe//GVuu+02jjnmGDo6Orj++usjxww7HX7jG9/gpptu4kMf+hBf+MIX6Onp4Sc/+QnTp0/n05/+9KDt32uvvTjuuOP4+te/zvr165k4cSLXXnsty5Yti4RBvvnmm3z4wx9GCMEn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", - "text/plain": [ - "
    " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Now we can plot the data on the native grid\n", - "import matplotlib.pyplot as plt\n", - "\n", - "_ = (\n", - " ds_fcst[\"2t\"]\n", - " .isel(reference_time=0, lead_time=10)\n", - " .plot(\n", - " x=\"xc\",\n", - " y=\"yc\",\n", - " figsize=(7, 7),\n", - " subplot_kws={\"projection\": ds_fcst.attrs[\"crs\"]},\n", - " cmap=\"Spectral_r\",\n", - " )\n", - ")\n", - "_ = plt.gca().coastlines()\n", - "_ = plt.gca().gridlines()" - ] - }, - { - "cell_type": "markdown", - "id": "a9feaf7c", - "metadata": {}, - "source": [ - "## Loading\n", - "All loading of datasets is done through the central `mxalign.load` function" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "90e29952", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "['mxalign', 'anemoi-datasets', 'anemoi-inference']" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# check available loaders\n", - "mx.available_loaders()" - ] - }, - { - "cell_type": "markdown", - "id": "b210cb47", - "metadata": {}, - "source": [ - "Since you know your dataset best you can bring your own loader. \n", - "The final result of your loader should be an `xarray.Dataset` with a property on each of the 3 axes and the correct dimensions and coordinates. \n", - "To register your loader use the `@register_loader` decorator" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "c880e07f", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
    \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
    <xarray.Dataset> Size: 2GB\n",
    -       "Dimensions:          (valid_time: 20201, point_index: 1706)\n",
    -       "Coordinates:\n",
    -       "  * valid_time       (valid_time) datetime64[ns] 162kB 2020-01-01 ... 2021-01-12\n",
    -       "    code             (point_index) int64 14kB 1203 1205 1209 ... 26966 26976\n",
    -       "    station_name     (point_index) <U20 136kB 'Krakenes' ... 'Krasnaja Gora'\n",
    -       "    station_country  (point_index) <U20 136kB 'Norway' ... 'U.S.S.R.(Europe)'\n",
    -       "    latitude         (point_index) float64 14kB 62.03 62.33 62.18 ... 52.9 53.02\n",
    -       "    longitude        (point_index) float64 14kB 4.983 5.267 6.067 ... 30.03 31.6\n",
    -       "    altitude         (point_index) float64 14kB nan 38.0 74.0 ... nan nan nan\n",
    -       "Dimensions without coordinates: point_index\n",
    -       "Data variables:\n",
    -       "    10wdir           (valid_time, point_index) float64 276MB dask.array<chunksize=(14097, 1190), meta=np.ndarray>\n",
    -       "    10si             (valid_time, point_index) float64 276MB dask.array<chunksize=(14097, 1190), meta=np.ndarray>\n",
    -       "    2t               (valid_time, point_index) float64 276MB dask.array<chunksize=(14097, 1190), meta=np.ndarray>\n",
    -       "    2d               (valid_time, point_index) float64 276MB dask.array<chunksize=(14097, 1190), meta=np.ndarray>\n",
    -       "    msl              (valid_time, point_index) float64 276MB dask.array<chunksize=(14097, 1190), meta=np.ndarray>\n",
    -       "    2r               (valid_time, point_index) float64 276MB dask.array<chunksize=(14097, 1190), meta=np.ndarray>\n",
    -       "    2t_max           (valid_time, point_index) float64 276MB dask.array<chunksize=(14097, 1190), meta=np.ndarray>\n",
    -       "    2t_min           (valid_time, point_index) float64 276MB dask.array<chunksize=(14097, 1190), meta=np.ndarray>\n",
    -       "Attributes:\n",
    -       "    properties:  {'space': 'point', 'time': 'observation', 'uncertainty': 'de...
    " - ], - "text/plain": [ - " Size: 2GB\n", - "Dimensions: (valid_time: 20201, point_index: 1706)\n", - "Coordinates:\n", - " * valid_time (valid_time) datetime64[ns] 162kB 2020-01-01 ... 2021-01-12\n", - " code (point_index) int64 14kB 1203 1205 1209 ... 26966 26976\n", - " station_name (point_index) \n", - " 10si (valid_time, point_index) float64 276MB dask.array\n", - " 2t (valid_time, point_index) float64 276MB dask.array\n", - " 2d (valid_time, point_index) float64 276MB dask.array\n", - " msl (valid_time, point_index) float64 276MB dask.array\n", - " 2r (valid_time, point_index) float64 276MB dask.array\n", - " 2t_max (valid_time, point_index) float64 276MB dask.array\n", - " 2t_min (valid_time, point_index) float64 276MB dask.array\n", - "Attributes:\n", - " properties: {'space': 'point', 'time': 'observation', 'uncertainty': 'de..." - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "ds_obs = mx.load(\n", - " \"mxalign\",\n", - " files=\"/scratch/project_465002133/datasets/observations/cerra_synops_2020.nc\",\n", - ")\n", - "ds_obs" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "73c1c20a", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Transforming anemoi-datasets xr.DataArray with 80 variables to xr.Dataset, this might take some time. Consider selecting the relevant variables during loading\n" - ] - }, - { - "data": { - "text/html": [ - "
    \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
    <xarray.Dataset> Size: 39TB\n",
    -       "Dimensions:     (valid_time: 106167, grid_index: 1142761)\n",
    -       "Coordinates:\n",
    -       "  * valid_time  (valid_time) datetime64[ns] 849kB 1984-09-01T03:00:00 ... 202...\n",
    -       "    longitude   (grid_index) float32 5MB -17.49 -17.44 -17.4 ... 74.04 74.11\n",
    -       "    latitude    (grid_index) float32 5MB 20.29 20.31 20.32 ... 63.84 63.81 63.77\n",
    -       "Dimensions without coordinates: grid_index\n",
    -       "Data variables: (12/80)\n",
    -       "    10u_10      (valid_time, grid_index) float32 485GB dask.array<chunksize=(1, 1142761), meta=np.ndarray>\n",
    -       "    10v_10      (valid_time, grid_index) float32 485GB dask.array<chunksize=(1, 1142761), meta=np.ndarray>\n",
    -       "    2d_2        (valid_time, grid_index) float32 485GB dask.array<chunksize=(1, 1142761), meta=np.ndarray>\n",
    -       "    2t_2        (valid_time, grid_index) float32 485GB dask.array<chunksize=(1, 1142761), meta=np.ndarray>\n",
    -       "    al          (valid_time, grid_index) float32 485GB dask.array<chunksize=(1, 1142761), meta=np.ndarray>\n",
    -       "    lsm         (valid_time, grid_index) float32 485GB dask.array<chunksize=(1, 1142761), meta=np.ndarray>\n",
    -       "    ...          ...\n",
    -       "    z_50        (valid_time, grid_index) float32 485GB dask.array<chunksize=(1, 1142761), meta=np.ndarray>\n",
    -       "    z_500       (valid_time, grid_index) float32 485GB dask.array<chunksize=(1, 1142761), meta=np.ndarray>\n",
    -       "    z_600       (valid_time, grid_index) float32 485GB dask.array<chunksize=(1, 1142761), meta=np.ndarray>\n",
    -       "    z_700       (valid_time, grid_index) float32 485GB dask.array<chunksize=(1, 1142761), meta=np.ndarray>\n",
    -       "    z_850       (valid_time, grid_index) float32 485GB dask.array<chunksize=(1, 1142761), meta=np.ndarray>\n",
    -       "    z_925       (valid_time, grid_index) float32 485GB dask.array<chunksize=(1, 1142761), meta=np.ndarray>\n",
    -       "Attributes:\n",
    -       "    properties:  {'space': 'grid', 'time': 'observation', 'uncertainty': 'det...
    " - ], - "text/plain": [ - " Size: 39TB\n", - "Dimensions: (valid_time: 106167, grid_index: 1142761)\n", - "Coordinates:\n", - " * valid_time (valid_time) datetime64[ns] 849kB 1984-09-01T03:00:00 ... 202...\n", - " longitude (grid_index) float32 5MB -17.49 -17.44 -17.4 ... 74.04 74.11\n", - " latitude (grid_index) float32 5MB 20.29 20.31 20.32 ... 63.84 63.81 63.77\n", - "Dimensions without coordinates: grid_index\n", - "Data variables: (12/80)\n", - " 10u_10 (valid_time, grid_index) float32 485GB dask.array\n", - " 10v_10 (valid_time, grid_index) float32 485GB dask.array\n", - " 2d_2 (valid_time, grid_index) float32 485GB dask.array\n", - " 2t_2 (valid_time, grid_index) float32 485GB dask.array\n", - " al (valid_time, grid_index) float32 485GB dask.array\n", - " lsm (valid_time, grid_index) float32 485GB dask.array\n", - " ... ...\n", - " z_50 (valid_time, grid_index) float32 485GB dask.array\n", - " z_500 (valid_time, grid_index) float32 485GB dask.array\n", - " z_600 (valid_time, grid_index) float32 485GB dask.array\n", - " z_700 (valid_time, grid_index) float32 485GB dask.array\n", - " z_850 (valid_time, grid_index) float32 485GB dask.array\n", - " z_925 (valid_time, grid_index) float32 485GB dask.array\n", - "Attributes:\n", - " properties: {'space': 'grid', 'time': 'observation', 'uncertainty': 'det..." - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# anemoi-datasets (not ideal for general purpose work due to the chunking, but xarray+dask can make it work)\n", - "ds_cerra = mx.load(\n", - " \"anemoi-datasets\",\n", - " files=\"/scratch/project_465002133/datasets/cerra-rr-an-oper-0001-mars-5p5km-1984-2020-3h-v2-rmi.zarr\",\n", - ")\n", - "ds_cerra" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "fb31b7b6", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
    \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
    <xarray.Dataset> Size: 971GB\n",
    -       "Dimensions:     (valid_time: 106167, grid_index: 1142761)\n",
    -       "Coordinates:\n",
    -       "  * valid_time  (valid_time) datetime64[ns] 849kB 1984-09-01T03:00:00 ... 202...\n",
    -       "    longitude   (grid_index) float32 5MB -17.49 -17.44 -17.4 ... 74.04 74.11\n",
    -       "    latitude    (grid_index) float32 5MB 20.29 20.31 20.32 ... 63.84 63.81 63.77\n",
    -       "Dimensions without coordinates: grid_index\n",
    -       "Data variables:\n",
    -       "    2t_2        (valid_time, grid_index) float32 485GB dask.array<chunksize=(1, 1142761), meta=np.ndarray>\n",
    -       "    tp          (valid_time, grid_index) float32 485GB dask.array<chunksize=(1, 1142761), meta=np.ndarray>\n",
    -       "Attributes:\n",
    -       "    properties:  {'space': 'grid', 'time': 'observation', 'uncertainty': 'det...
    " - ], - "text/plain": [ - " Size: 971GB\n", - "Dimensions: (valid_time: 106167, grid_index: 1142761)\n", - "Coordinates:\n", - " * valid_time (valid_time) datetime64[ns] 849kB 1984-09-01T03:00:00 ... 202...\n", - " longitude (grid_index) float32 5MB -17.49 -17.44 -17.4 ... 74.04 74.11\n", - " latitude (grid_index) float32 5MB 20.29 20.31 20.32 ... 63.84 63.81 63.77\n", - "Dimensions without coordinates: grid_index\n", - "Data variables:\n", - " 2t_2 (valid_time, grid_index) float32 485GB dask.array\n", - " tp (valid_time, grid_index) float32 485GB dask.array\n", - "Attributes:\n", - " properties: {'space': 'grid', 'time': 'observation', 'uncertainty': 'det..." - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Select some variables duringing loading\n", - "ds_cerra = mx.load(\n", - " \"anemoi-datasets\",\n", - " files=\"/scratch/project_465002133/datasets/cerra-rr-an-oper-0001-mars-5p5km-1984-2020-3h-v2-rmi.zarr\",\n", - " variables=[\"2t_2\", \"tp\"],\n", - ")\n", - "ds_cerra" - ] - }, - { - "cell_type": "markdown", - "id": "34462b8a", - "metadata": {}, - "source": [ - "## Alignment\n", - "Alignment is space and time can now be automatically inferred from the dataset themselves" - ] - }, - { - "cell_type": "markdown", - "id": "50954bb3", - "metadata": {}, - "source": [ - "### Space" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "id": "9ad7c741", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
    \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
    <xarray.Dataset> Size: 40MB\n",
    -       "Dimensions:         (reference_time: 3, lead_time: 25, point_index: 1706)\n",
    -       "Coordinates:\n",
    -       "  * reference_time  (reference_time) datetime64[ns] 24B 2020-02-01 ... 2020-0...\n",
    -       "  * lead_time       (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 da...\n",
    -       "    valid_time      (reference_time, lead_time) datetime64[ns] 600B 2020-02-0...\n",
    -       "    latitude        (point_index) float64 14kB 62.03 62.33 62.18 ... 52.9 53.02\n",
    -       "    longitude       (point_index) float64 14kB 4.983 5.267 6.067 ... 30.03 31.6\n",
    -       "    xc              (point_index) float64 14kB -1.612e+05 ... 1.555e+06\n",
    -       "    yc              (point_index) float64 14kB 1.352e+06 1.386e+06 ... 5.83e+05\n",
    -       "Dimensions without coordinates: point_index\n",
    -       "Data variables: (12/79)\n",
    -       "    10u             (reference_time, lead_time, point_index) float32 512kB dask.array<chunksize=(1, 25, 1706), meta=np.ndarray>\n",
    -       "    10v             (reference_time, lead_time, point_index) float32 512kB dask.array<chunksize=(1, 25, 1706), meta=np.ndarray>\n",
    -       "    2d              (reference_time, lead_time, point_index) float32 512kB dask.array<chunksize=(1, 25, 1706), meta=np.ndarray>\n",
    -       "    2t              (reference_time, lead_time, point_index) float32 512kB dask.array<chunksize=(1, 25, 1706), meta=np.ndarray>\n",
    -       "    cos_julian_day  (reference_time, lead_time, point_index) float32 512kB dask.array<chunksize=(1, 25, 1706), meta=np.ndarray>\n",
    -       "    cos_latitude    (reference_time, lead_time, point_index) float32 512kB dask.array<chunksize=(1, 25, 1706), meta=np.ndarray>\n",
    -       "    ...              ...\n",
    -       "    z_500           (reference_time, lead_time, point_index) float32 512kB dask.array<chunksize=(1, 25, 1706), meta=np.ndarray>\n",
    -       "    z_700           (reference_time, lead_time, point_index) float32 512kB dask.array<chunksize=(1, 25, 1706), meta=np.ndarray>\n",
    -       "    z_850           (reference_time, lead_time, point_index) float32 512kB dask.array<chunksize=(1, 25, 1706), meta=np.ndarray>\n",
    -       "    z_925           (reference_time, lead_time, point_index) float32 512kB dask.array<chunksize=(1, 25, 1706), meta=np.ndarray>\n",
    -       "    z               (reference_time, lead_time, point_index) float32 512kB dask.array<chunksize=(1, 25, 1706), meta=np.ndarray>\n",
    -       "    tp              (reference_time, lead_time, point_index) float32 512kB dask.array<chunksize=(1, 25, 1706), meta=np.ndarray>\n",
    -       "Attributes:\n",
    -       "    properties:    {'space': 'point', 'time': 'forecast', 'uncertainty': 'det...\n",
    -       "    crs:           +proj=lcc +ellps=WGS84 +a=6371229.0 +b=6371229.0 +lon_0=8....\n",
    -       "    grid_mapping:  {'nx': 1069, 'ny': 1069, 'lon_ll': -17.4859, 'lat_ll': 20....
    " - ], - "text/plain": [ - " Size: 40MB\n", - "Dimensions: (reference_time: 3, lead_time: 25, point_index: 1706)\n", - "Coordinates:\n", - " * reference_time (reference_time) datetime64[ns] 24B 2020-02-01 ... 2020-0...\n", - " * lead_time (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 da...\n", - " valid_time (reference_time, lead_time) datetime64[ns] 600B 2020-02-0...\n", - " latitude (point_index) float64 14kB 62.03 62.33 62.18 ... 52.9 53.02\n", - " longitude (point_index) float64 14kB 4.983 5.267 6.067 ... 30.03 31.6\n", - " xc (point_index) float64 14kB -1.612e+05 ... 1.555e+06\n", - " yc (point_index) float64 14kB 1.352e+06 1.386e+06 ... 5.83e+05\n", - "Dimensions without coordinates: point_index\n", - "Data variables: (12/79)\n", - " 10u (reference_time, lead_time, point_index) float32 512kB dask.array\n", - " 10v (reference_time, lead_time, point_index) float32 512kB dask.array\n", - " 2d (reference_time, lead_time, point_index) float32 512kB dask.array\n", - " 2t (reference_time, lead_time, point_index) float32 512kB dask.array\n", - " cos_julian_day (reference_time, lead_time, point_index) float32 512kB dask.array\n", - " cos_latitude (reference_time, lead_time, point_index) float32 512kB dask.array\n", - " ... ...\n", - " z_500 (reference_time, lead_time, point_index) float32 512kB dask.array\n", - " z_700 (reference_time, lead_time, point_index) float32 512kB dask.array\n", - " z_850 (reference_time, lead_time, point_index) float32 512kB dask.array\n", - " z_925 (reference_time, lead_time, point_index) float32 512kB dask.array\n", - " z (reference_time, lead_time, point_index) float32 512kB dask.array\n", - " tp (reference_time, lead_time, point_index) float32 512kB dask.array\n", - "Attributes:\n", - " properties: {'space': 'point', 'time': 'forecast', 'uncertainty': 'det...\n", - " crs: +proj=lcc +ellps=WGS84 +a=6371229.0 +b=6371229.0 +lon_0=8....\n", - " grid_mapping: {'nx': 1069, 'ny': 1069, 'lon_ll': -17.4859, 'lat_ll': 20...." - ] - }, - "execution_count": 25, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Align a Grid with Point observations in space:\n", - "# --> This means interpolation\n", - "ds_fcst_aligned, ds_obs_aligned = ds_fcst.space.align_with(ds_obs)\n", - "# This is quick because the interpolation itself is not yet executed, but rather lazely evaluated\n", - "ds_fcst_aligned" - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "id": "4f1c75b4", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 34, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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tqyXaYIlC70GjIyMZM5mIYQQjUpzvoXedNIthRBCNDvKSm0th5HpbwCXLHQhhBBCD0kPXAghhN6SWuhCCCGEPqplEht6/AxcbqELIYQQekh64EIIIfSWZKELIYQQekiy0IUQQgihV6QHLoQQQm9JJTYhhBBCDyk1GpQaTa3211dyC10IIYTQQ9IDF0IIobckC10IIYTQQ5KFLoQQQughhVarS2R7pOUhS6kuWrSIP/3pT5ibm2NtbY23tzepqal3bBcfH8/AgQMxNTXFwsKCfv36UVJSons9NzeXd955BwsLC1q1asWECRMoKip6qLZIABdCCCFq6NixY/j6+nLq1Cni4uKoqKhgyJAhFBcX67aJj4/Hy8uLIUOGkJiYyOnTp/Hz80Op/G/Ifeeddzh//jxxcXHs2bOH48eP8/777z9UWxRarR5XchdCCNEsFRQUYGlpyfAR6zE0NHnk41RU/M7/ffO/5OfnY2Fh8dD7X79+HWtra44dO0a/fv0A6NWrF4MHD+bTTz+96z4XLlzg+eef5/Tp03Tv3h2A/fv388orr5CVlUW7du1qdG7pgQshhNBbt5LYarNA1QXB7UtZWVmNzp+fnw+AlZUVADk5OSQkJGBtbY27uzs2NjZ4eHhw4sQJ3T7x8fG0atVKF7wBPD09USqVJCQk1Py913hLIYQQoolq3749lpaWumXRokUP3Eej0RAQEECfPn144YUXAEhLSwNgzpw5+Pj4sH//ftzc3Bg0aBA///wzAFevXsXa2rrasQwMDLCysuLq1as1brNkoQshhNBbykotSmXts9AzMzOr3UJXqVQP3NfX15dz585V611r/lMYZuLEiYwfPx6Arl27cujQITZu3FijC4OakgAuhBBCf2lqWQ71P4XYLCwsHuoZuJ+fny757KmnntKtt7OzA+D555+vtr2TkxMZGRkA2NrakpOTU+11tVpNbm4utra2NW6D3EIXQgghakir1eLn58fOnTs5fPgwjo6O1V53cHCgXbt2dwwt++mnn7C3twegd+/e3Lx5k6SkJN3rhw8fRqPR0LNnzxq3RXrgQggh9FZl+e+oa9EDr1SXPHij2/j6+rJ161Z27dqFubm57pm1paUlxsbGKBQKpk+fzieffIKLiwuurq5ERkZy8eJFduzYAVT1xr28vPDx8WHt2rVUVFTg5+fHW2+9VeMMdJBhZEIIIfRQaWkpjo6OD5X0dS+2trakp6djZGT0wG0VCsVd10dERDBu3DjdzyEhIaxevZrc3FxcXFwIDQ2lb9++utdzc3Px8/MjJiYGpVLJiBEjWLlyJWZmZjVutwRwIYQQeqm0tJTy8vJaH6dly5Y1Ct6NjQRwIYQQQg9JEpsQQgihhySACyGEEHpIArgQQgihhySACyGEEHpIArgQQgihhySACyGEEHpIArgQQgihhySACyGEEHpIArgQQgihhySACyGEEHro/wGT7y3EaWSHkgAAAABJRU5ErkJggg==", - "text/plain": [ - "
    " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "t2m_fcst = ds_fcst_aligned.isel(reference_time=0, lead_time=10)[\"2t\"].compute()\n", - "ax = plt.subplot(1, 1, 1, projection=ds_fcst_aligned.attrs[\"crs\"])\n", - "im = ax.scatter(\n", - " x=t2m_fcst[\"xc\"], y=t2m_fcst[\"yc\"], c=t2m_fcst.values, cmap=\"Spectral_r\", s=2\n", - ")\n", - "ax.coastlines()\n", - "plt.colorbar(im)" - ] - }, - { - "cell_type": "markdown", - "id": "de39ca6e", - "metadata": {}, - "source": [ - "If you want to interpolate more than 1 dataset with a target dataset you can use the main `mxalign.interpolate` function. " - ] - }, - { - "cell_type": "code", - "execution_count": 50, - "id": "a9599868", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "['xarray', 'delaunay']" - ] - }, - "execution_count": 50, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "mx.available_interpolations()" - ] - }, - { - "cell_type": "code", - "execution_count": 35, - "id": "5b304c8e", - "metadata": {}, - "outputs": [ - { - "ename": "NotImplementedError", - "evalue": "Delaunay interpolation currently only supports stacked grids", - "output_type": "error", - "traceback": [ - "\u001b[31m---------------------------------------------------------------------------\u001b[39m", - "\u001b[31mNotImplementedError\u001b[39m Traceback (most recent call last)", - "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[35]\u001b[39m\u001b[32m, line 2\u001b[39m\n\u001b[32m 1\u001b[39m \u001b[38;5;66;03m# The default interpolation is xarray-based, now lets try the Delaunay interpolation\u001b[39;00m\n\u001b[32m----> \u001b[39m\u001b[32m2\u001b[39m ds_fcst_aligned2 = \u001b[43mmx\u001b[49m\u001b[43m.\u001b[49m\u001b[43minterpolate\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 3\u001b[39m \u001b[43m \u001b[49m\u001b[43msource_datasets\u001b[49m\u001b[43m=\u001b[49m\u001b[43mds_fcst\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 4\u001b[39m \u001b[43m \u001b[49m\u001b[43mtarget_dataset\u001b[49m\u001b[43m=\u001b[49m\u001b[43mds_obs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 5\u001b[39m \u001b[43m \u001b[49m\u001b[43mmethod\u001b[49m\u001b[43m=\u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mdelaunay\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\n\u001b[32m 6\u001b[39m \u001b[43m)\u001b[49m\n\u001b[32m 8\u001b[39m \u001b[38;5;66;03m# This is equivalent with\u001b[39;00m\n\u001b[32m 9\u001b[39m \u001b[38;5;66;03m# ds_fcst_aligned2, _ = ds_fcst.space.align_with(ds_obs, method=\"delaunay\")\u001b[39;00m\n", - "\u001b[36mFile \u001b[39m\u001b[32m/pfs/lustrep4/users/vanginde/mxalign_dev/src/mxalign/interpolations/interpolate.py:24\u001b[39m, in \u001b[36minterpolate\u001b[39m\u001b[34m(source_datasets, target_dataset, method, **kwargs)\u001b[39m\n\u001b[32m 21\u001b[39m interpolated_datasets = []\n\u001b[32m 22\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m ds \u001b[38;5;129;01min\u001b[39;00m datasets:\n\u001b[32m 23\u001b[39m interpolated_datasets.append(\n\u001b[32m---> \u001b[39m\u001b[32m24\u001b[39m \u001b[43minterpolator\u001b[49m\u001b[43m.\u001b[49m\u001b[43minterpolate\u001b[49m\u001b[43m(\u001b[49m\u001b[43mds\u001b[49m\u001b[43m.\u001b[49m\u001b[43mcopy\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 25\u001b[39m )\n\u001b[32m 26\u001b[39m interpolated_datasets = interpolated_datasets[\u001b[32m0\u001b[39m] \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(interpolated_datasets) == \u001b[32m1\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m interpolated_datasets\n\u001b[32m 27\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m (interpolated_datasets)\n", - "\u001b[36mFile \u001b[39m\u001b[32m/pfs/lustrep4/users/vanginde/mxalign_dev/src/mxalign/interpolations/base.py:26\u001b[39m, in \u001b[36mBaseInterpolator.interpolate\u001b[39m\u001b[34m(self, source_dataset)\u001b[39m\n\u001b[32m 22\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34minterpolate\u001b[39m(\n\u001b[32m 23\u001b[39m \u001b[38;5;28mself\u001b[39m,\n\u001b[32m 24\u001b[39m source_dataset: xr.Dataset | xr.DataArray\n\u001b[32m 25\u001b[39m ) -> xr.Dataset | xr.DataArray:\n\u001b[32m---> \u001b[39m\u001b[32m26\u001b[39m ds_out = \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_interpolate\u001b[49m\u001b[43m(\u001b[49m\u001b[43msource_dataset\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 27\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m update_space_property(ds_out, \u001b[38;5;28mself\u001b[39m.target_space)\n", - "\u001b[36mFile \u001b[39m\u001b[32m/pfs/lustrep4/users/vanginde/mxalign_dev/src/mxalign/interpolations/delaunay.py:40\u001b[39m, in \u001b[36mDelaunayInterpolator._interpolate\u001b[39m\u001b[34m(self, source_dataset)\u001b[39m\n\u001b[32m 38\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34m_interpolate\u001b[39m(\u001b[38;5;28mself\u001b[39m, source_dataset):\n\u001b[32m 39\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[33m\"\u001b[39m\u001b[33mgrid_index\u001b[39m\u001b[33m\"\u001b[39m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m source_dataset.dims:\n\u001b[32m---> \u001b[39m\u001b[32m40\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mNotImplementedError\u001b[39;00m(\u001b[33m\"\u001b[39m\u001b[33mDelaunay interpolation currently only supports stacked grids\u001b[39m\u001b[33m\"\u001b[39m)\n\u001b[32m 42\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[33m\"\u001b[39m\u001b[33mlatitude\u001b[39m\u001b[33m\"\u001b[39m \u001b[38;5;129;01min\u001b[39;00m source_dataset.dims:\n\u001b[32m 43\u001b[39m lon_grid, lat_grid = np.meshgrid(\n\u001b[32m 44\u001b[39m source_dataset[\u001b[33m\"\u001b[39m\u001b[33mlongitude\u001b[39m\u001b[33m\"\u001b[39m].values, \n\u001b[32m 45\u001b[39m source_dataset[\u001b[33m\"\u001b[39m\u001b[33mlatitude\u001b[39m\u001b[33m\"\u001b[39m].values\n\u001b[32m 46\u001b[39m )\n", - "\u001b[31mNotImplementedError\u001b[39m: Delaunay interpolation currently only supports stacked grids" - ] - } - ], - "source": [ - "# The default interpolation is xarray-based, now lets try the Delaunay interpolation\n", - "ds_fcst_aligned2 = mx.interpolate(\n", - " source_datasets=ds_fcst, target_dataset=ds_obs, method=\"delaunay\"\n", - ")\n", - "\n", - "# This is equivalent with\n", - "# ds_fcst_aligned2, _ = ds_fcst.space.align_with(ds_obs, method=\"delaunay\")" - ] - }, - { - "cell_type": "code", - "execution_count": 36, - "id": "b532541c", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
    \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
    <xarray.Dataset> Size: 27GB\n",
    -       "Dimensions:         (reference_time: 3, lead_time: 25, grid_index: 1142761)\n",
    -       "Coordinates:\n",
    -       "  * reference_time  (reference_time) datetime64[ns] 24B 2020-02-01 ... 2020-0...\n",
    -       "  * lead_time       (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 da...\n",
    -       "    valid_time      (reference_time, lead_time) datetime64[ns] 600B 2020-02-0...\n",
    -       "    latitude        (grid_index) float32 5MB 20.29 20.31 20.32 ... 63.81 63.77\n",
    -       "    longitude       (grid_index) float32 5MB -17.49 -17.44 -17.4 ... 74.04 74.11\n",
    -       "    yc              (grid_index) float64 9MB -2.937e+06 -2.937e+06 ... 2.937e+06\n",
    -       "    xc              (grid_index) float64 9MB -2.937e+06 -2.931e+06 ... 2.937e+06\n",
    -       "Dimensions without coordinates: grid_index\n",
    -       "Data variables: (12/79)\n",
    -       "    10u             (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    10v             (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    2d              (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    2t              (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    cos_julian_day  (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    cos_latitude    (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    ...              ...\n",
    -       "    z_500           (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    z_700           (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    z_850           (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    z_925           (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    z               (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "    tp              (reference_time, lead_time, grid_index) float32 343MB dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>\n",
    -       "Attributes:\n",
    -       "    properties:    {'space': 'grid', 'time': 'forecast', 'uncertainty': 'dete...\n",
    -       "    crs:           +proj=lcc +ellps=WGS84 +a=6371229.0 +b=6371229.0 +lon_0=8....\n",
    -       "    grid_mapping:  {'nx': 1069, 'ny': 1069, 'lon_ll': -17.4859, 'lat_ll': 20....
    " + ], + "text/plain": [ + " Size: 932MB\n", + "Dimensions: (reference_time: 2, lead_time: 25, grid_index: 1142761)\n", + "Coordinates:\n", + " * reference_time (reference_time) datetime64[ns] 16B 2020-02-01 2020-02-02\n", + " * lead_time (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 da...\n", + " latitude (grid_index) float64 9MB 20.29 20.31 20.32 ... 63.81 63.77\n", + " longitude (grid_index) float64 9MB -17.49 -17.44 -17.4 ... 74.04 74.11\n", + "Dimensions without coordinates: grid_index\n", + "Data variables:\n", + " 10u (reference_time, lead_time, grid_index) float64 457MB dask.array\n", + " 2t (reference_time, lead_time, grid_index) float64 457MB dask.array\n", + "Attributes:\n", + " mlwp_time_trait: forecast\n", + " mlwp_space_trait: grid\n", + " mlwp_uncertainty_trait: deterministic" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import mxalign as mx\n", + "\n", + "# anemoi-inference forecasts\n", + "DS_PATH = [\n", + " \"s3://mlwp-sample-datasets/anemoi-inference/unknown-revision/\"\n", + " \"anemoi-inference-lam_2020020100.nc\",\n", + " \"s3://mlwp-sample-datasets/anemoi-inference/unknown-revision/\"\n", + " \"anemoi-inference-lam_2020020200.nc\",\n", + "]\n", + "\n", + "ds_fcst = load_and_validate_dataset(\n", + " DS_PATH, loader=LOADER, storage_options=STORAGE_OPTS\n", + ")\n", + "\n", + "ds_fcst" + ] + }, + { + "cell_type": "markdown", + "id": "1f296c84", + "metadata": {}, + "source": [ + "**Temporal accessor functions**" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "3f9a50e4", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Dataset is a forecast\n" + ] + }, + { + "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", "\n", - " \n", - " \n", - "
  • z_250
    (reference_time, lead_time, grid_index)
    float32
    dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>
    fill_value :
    nan
    \n", - " \n", - " \n", - " \n", - " \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
    Array Chunk
    Bytes 326.95 MiB 108.98 MiB
    Shape (3, 25, 1142761) (1, 25, 1142761)
    Dask graph 3 chunks in 12 graph layers
    Data type float32 numpy.ndarray
    \n", - "
    \n", - " \n", - "\n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", + "\n", - "
  • z_300
    (reference_time, lead_time, grid_index)
    float32
    dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>
    fill_value :
    nan
    \n", - " \n", - " \n", - " \n", - " \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
    Array Chunk
    Bytes 326.95 MiB 108.98 MiB
    Shape (3, 25, 1142761) (1, 25, 1142761)
    Dask graph 3 chunks in 12 graph layers
    Data type float32 numpy.ndarray
    \n", - "
    \n", - " \n", + ".xr-text-repr-fallback {\n", + " /* fallback to plain text repr when CSS is not injected (untrusted notebook) */\n", + " display: none;\n", + "}\n", "\n", - " \n", - " \n", - " \n", + ".xr-header {\n", + " padding-top: 6px;\n", + " padding-bottom: 6px;\n", + "}\n", "\n", - " \n", - " \n", - " \n", - " \n", - " \n", + ".xr-header {\n", + " border-bottom: solid 1px var(--xr-border-color);\n", + " margin-bottom: 4px;\n", + "}\n", "\n", - " \n", - " \n", + ".xr-header > div,\n", + ".xr-header > ul {\n", + " display: inline;\n", + " margin-top: 0;\n", + " margin-bottom: 0;\n", + "}\n", "\n", - " \n", - " \n", - " \n", - " \n", - " \n", + ".xr-obj-type,\n", + ".xr-obj-name {\n", + " margin-left: 2px;\n", + " margin-right: 10px;\n", + "}\n", "\n", - " \n", - " \n", - " \n", + ".xr-obj-type,\n", + ".xr-group-box-contents > label {\n", + " color: var(--xr-font-color2);\n", + " display: block;\n", + "}\n", "\n", - " \n", - " \n", + ".xr-sections {\n", + " padding-left: 0 !important;\n", + " display: grid;\n", + " grid-template-columns: 150px auto auto 1fr 0 20px 0 20px;\n", + " margin-block-start: 0;\n", + " margin-block-end: 0;\n", + "}\n", "\n", - " \n", - " \n", - " \n", + ".xr-section-item {\n", + " display: contents;\n", + "}\n", "\n", - " \n", - " \n", - " \n", + ".xr-section-item > input,\n", + ".xr-group-box-contents > input,\n", + ".xr-array-wrap > input {\n", + " display: block;\n", + " opacity: 0;\n", + " height: 0;\n", + " margin: 0;\n", + "}\n", "\n", - " \n", - " \n", + ".xr-section-item > input + label,\n", + ".xr-var-item > input + label {\n", + " color: var(--xr-disabled-color);\n", + "}\n", "\n", - " \n", - " 1142761\n", - " 25\n", - " 3\n", - "\n", - "
  • z_400
    (reference_time, lead_time, grid_index)
    float32
    dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>
    fill_value :
    nan
    \n", - " \n", - " \n", - " \n", - " \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
    Array Chunk
    Bytes 326.95 MiB 108.98 MiB
    Shape (3, 25, 1142761) (1, 25, 1142761)
    Dask graph 3 chunks in 12 graph layers
    Data type float32 numpy.ndarray
    \n", - "
    \n", - " \n", + ".xr-section-item > input:enabled + label,\n", + ".xr-var-item > input:enabled + label,\n", + ".xr-array-wrap > input:enabled + label,\n", + ".xr-group-box-contents > input:enabled + label {\n", + " cursor: pointer;\n", + " color: var(--xr-font-color2);\n", + "}\n", "\n", - " \n", - " \n", - " \n", + ".xr-section-item > input:focus-visible + label,\n", + ".xr-var-item > input:focus-visible + label,\n", + ".xr-array-wrap > input:focus-visible + label,\n", + ".xr-group-box-contents > input:focus-visible + label {\n", + " outline: auto;\n", + "}\n", "\n", - " \n", - " \n", - " \n", - " \n", - " \n", + ".xr-section-item > input:enabled + label:hover,\n", + ".xr-var-item > input:enabled + label:hover,\n", + ".xr-array-wrap > input:enabled + label:hover,\n", + ".xr-group-box-contents > input:enabled + label:hover {\n", + " color: var(--xr-font-color0);\n", + "}\n", "\n", - " \n", - " \n", + ".xr-section-summary {\n", + " grid-column: 1;\n", + " color: var(--xr-font-color2);\n", + " font-weight: 500;\n", + " white-space: nowrap;\n", + "}\n", "\n", - " \n", - " \n", - " \n", - " \n", - " \n", + ".xr-section-summary > em {\n", + " font-weight: normal;\n", + "}\n", "\n", - " \n", - " \n", - " \n", + ".xr-span-grid {\n", + " grid-column-end: -1;\n", + "}\n", "\n", - " \n", - " \n", + ".xr-section-summary > span {\n", + " display: inline-block;\n", + " padding-left: 0.3em;\n", + "}\n", "\n", - " \n", - " \n", - " \n", + ".xr-group-box-contents > input:checked + label > span {\n", + " display: inline-block;\n", + " padding-left: 0.6em;\n", + "}\n", "\n", - " \n", - " \n", - " \n", + ".xr-section-summary-in:disabled + label {\n", + " color: var(--xr-font-color2);\n", + "}\n", "\n", - " \n", - " \n", + ".xr-section-summary-in + label:before {\n", + " display: inline-block;\n", + " content: \"►\";\n", + " font-size: 11px;\n", + " width: 15px;\n", + " text-align: center;\n", + "}\n", "\n", - " \n", - " 1142761\n", - " 25\n", - " 3\n", - "\n", - "
  • z_50
    (reference_time, lead_time, grid_index)
    float32
    dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>
    fill_value :
    nan
    \n", - " \n", - " \n", - " \n", - " \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
    Array Chunk
    Bytes 326.95 MiB 108.98 MiB
    Shape (3, 25, 1142761) (1, 25, 1142761)
    Dask graph 3 chunks in 12 graph layers
    Data type float32 numpy.ndarray
    \n", - "
    \n", - " \n", + ".xr-section-summary-in:disabled + label:before {\n", + " color: var(--xr-disabled-color);\n", + "}\n", "\n", - " \n", - " \n", - " \n", + ".xr-section-summary-in:checked + label:before {\n", + " content: \"▼\";\n", + "}\n", "\n", - " \n", - " \n", - " \n", - " \n", - " \n", + ".xr-section-summary-in:checked + label > span {\n", + " display: none;\n", + "}\n", "\n", - " \n", - " \n", + ".xr-section-summary,\n", + ".xr-section-inline-details,\n", + ".xr-group-box-contents > label {\n", + " padding-top: 4px;\n", + "}\n", "\n", - " \n", - " \n", - " \n", - " \n", - " \n", + ".xr-section-inline-details {\n", + " grid-column: 2 / -1;\n", + "}\n", "\n", - " \n", - " \n", - " \n", + ".xr-section-details {\n", + " grid-column: 1 / -1;\n", + " margin-top: 4px;\n", + " margin-bottom: 5px;\n", + "}\n", "\n", - " \n", - " \n", + ".xr-section-summary-in ~ .xr-section-details {\n", + " display: none;\n", + "}\n", "\n", - " \n", - " \n", - " \n", + ".xr-section-summary-in:checked ~ .xr-section-details {\n", + " display: contents;\n", + "}\n", "\n", - " \n", - " \n", - " \n", + ".xr-children {\n", + " display: inline-grid;\n", + " grid-template-columns: 100%;\n", + " grid-column: 1 / -1;\n", + " padding-top: 4px;\n", + "}\n", "\n", - " \n", - " \n", + ".xr-group-box {\n", + " display: inline-grid;\n", + " grid-template-columns: 0px 30px auto;\n", + "}\n", "\n", - " \n", - " 1142761\n", - " 25\n", - " 3\n", - "\n", - "
  • z_500
    (reference_time, lead_time, grid_index)
    float32
    dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>
    fill_value :
    nan
    \n", - " \n", - " \n", - " \n", - " \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
    Array Chunk
    Bytes 326.95 MiB 108.98 MiB
    Shape (3, 25, 1142761) (1, 25, 1142761)
    Dask graph 3 chunks in 12 graph layers
    Data type float32 numpy.ndarray
    \n", - "
    \n", - " \n", + ".xr-group-box-vline {\n", + " grid-column-start: 1;\n", + " border-right: 0.2em solid;\n", + " border-color: var(--xr-border-color);\n", + " width: 0px;\n", + "}\n", "\n", - " \n", - " \n", - " \n", + ".xr-group-box-hline {\n", + " grid-column-start: 2;\n", + " grid-row-start: 1;\n", + " height: 1em;\n", + " width: 26px;\n", + " border-bottom: 0.2em solid;\n", + " border-color: var(--xr-border-color);\n", + "}\n", "\n", - " \n", - " \n", - " \n", - " \n", - " \n", + ".xr-group-box-contents {\n", + " grid-column-start: 3;\n", + " padding-bottom: 4px;\n", + "}\n", "\n", - " \n", - " \n", + ".xr-group-box-contents > label::before {\n", + " content: \"📂\";\n", + " padding-right: 0.3em;\n", + "}\n", "\n", - " \n", - " \n", - " \n", - " \n", - " \n", + ".xr-group-box-contents > input:checked + label::before {\n", + " content: \"📁\";\n", + "}\n", "\n", - " \n", - " \n", - " \n", + ".xr-group-box-contents > input:checked + label {\n", + " padding-bottom: 0px;\n", + "}\n", "\n", - " \n", - " \n", + ".xr-group-box-contents > input:checked ~ .xr-sections {\n", + " display: none;\n", + "}\n", "\n", - " \n", - " \n", - " \n", + ".xr-group-box-contents > input + label > span {\n", + " display: none;\n", + "}\n", "\n", - " \n", - " \n", - " \n", + ".xr-group-box-ellipsis {\n", + " font-size: 1.4em;\n", + " font-weight: 900;\n", + " color: var(--xr-font-color2);\n", + " letter-spacing: 0.15em;\n", + " cursor: default;\n", + "}\n", "\n", - " \n", - " \n", + ".xr-array-wrap {\n", + " grid-column: 1 / -1;\n", + " display: grid;\n", + " grid-template-columns: 20px auto;\n", + "}\n", "\n", - " \n", - " 1142761\n", - " 25\n", - " 3\n", - "\n", - "
  • z_700
    (reference_time, lead_time, grid_index)
    float32
    dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>
    fill_value :
    nan
    \n", - " \n", - " \n", - " \n", - " \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
    Array Chunk
    Bytes 326.95 MiB 108.98 MiB
    Shape (3, 25, 1142761) (1, 25, 1142761)
    Dask graph 3 chunks in 12 graph layers
    Data type float32 numpy.ndarray
    \n", - "
    \n", - " \n", + ".xr-array-wrap > label {\n", + " grid-column: 1;\n", + " vertical-align: top;\n", + "}\n", "\n", - " \n", - " \n", - " \n", + ".xr-preview {\n", + " color: var(--xr-font-color3);\n", + "}\n", "\n", - " \n", - " \n", - " \n", - " \n", - " \n", + ".xr-array-preview,\n", + ".xr-array-data {\n", + " padding: 0 5px !important;\n", + " grid-column: 2;\n", + "}\n", "\n", - " \n", - " \n", + ".xr-array-data,\n", + ".xr-array-in:checked ~ .xr-array-preview {\n", + " display: none;\n", + "}\n", "\n", - " \n", - " \n", - " \n", - " \n", - " \n", + ".xr-array-in:checked ~ .xr-array-data,\n", + ".xr-array-preview {\n", + " display: inline-block;\n", + "}\n", "\n", - " \n", - " \n", - " \n", + ".xr-dim-list {\n", + " display: inline-block !important;\n", + " list-style: none;\n", + " padding: 0 !important;\n", + " margin: 0;\n", + "}\n", "\n", - " \n", - " \n", + ".xr-dim-list li {\n", + " display: inline-block;\n", + " padding: 0;\n", + " margin: 0;\n", + "}\n", "\n", - " \n", - " \n", - " \n", + ".xr-dim-list:before {\n", + " content: \"(\";\n", + "}\n", "\n", - " \n", - " \n", - " \n", + ".xr-dim-list:after {\n", + " content: \")\";\n", + "}\n", "\n", - " \n", - " \n", + ".xr-dim-list li:not(:last-child):after {\n", + " content: \",\";\n", + " padding-right: 5px;\n", + "}\n", + "\n", + ".xr-has-index {\n", + " font-weight: bold;\n", + "}\n", + "\n", + ".xr-var-list,\n", + ".xr-var-item {\n", + " display: contents;\n", + "}\n", + "\n", + ".xr-var-item > div,\n", + ".xr-var-item label,\n", + ".xr-var-item > .xr-var-name span {\n", + " background-color: var(--xr-background-color-row-even);\n", + " border-color: var(--xr-background-color-row-odd);\n", + " margin-bottom: 0;\n", + " padding-top: 2px;\n", + "}\n", + "\n", + ".xr-var-item > .xr-var-name:hover span {\n", + " padding-right: 5px;\n", + "}\n", "\n", - " \n", - " 1142761\n", - " 25\n", - " 3\n", - "\n", - "
  • z_850
    (reference_time, lead_time, grid_index)
    float32
    dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>
    fill_value :
    nan
    \n", - " \n", - " \n", - " \n", - " \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
    Array Chunk
    Bytes 326.95 MiB 108.98 MiB
    Shape (3, 25, 1142761) (1, 25, 1142761)
    Dask graph 3 chunks in 12 graph layers
    Data type float32 numpy.ndarray
    \n", - "
    \n", - " \n", + ".xr-var-list > li:nth-child(odd) > div,\n", + ".xr-var-list > li:nth-child(odd) > label,\n", + ".xr-var-list > li:nth-child(odd) > .xr-var-name span {\n", + " background-color: var(--xr-background-color-row-odd);\n", + " border-color: var(--xr-background-color-row-even);\n", + "}\n", "\n", - " \n", - " \n", - " \n", + ".xr-var-name {\n", + " grid-column: 1;\n", + "}\n", "\n", - " \n", - " \n", - " \n", - " \n", - " \n", + ".xr-var-dims {\n", + " grid-column: 2;\n", + "}\n", "\n", - " \n", - " \n", + ".xr-var-dtype {\n", + " grid-column: 3;\n", + " text-align: right;\n", + " color: var(--xr-font-color2);\n", + "}\n", "\n", - " \n", - " \n", - " \n", - " \n", - " \n", + ".xr-var-preview {\n", + " grid-column: 4;\n", + "}\n", "\n", - " \n", - " \n", - " \n", + ".xr-index-preview {\n", + " grid-column: 2 / 5;\n", + " color: var(--xr-font-color2);\n", + "}\n", "\n", - " \n", - " \n", + ".xr-var-name,\n", + ".xr-var-dims,\n", + ".xr-var-dtype,\n", + ".xr-preview,\n", + ".xr-attrs dt {\n", + " white-space: nowrap;\n", + " overflow: hidden;\n", + " text-overflow: ellipsis;\n", + " padding-right: 10px;\n", + "}\n", "\n", - " \n", - " \n", - " \n", + ".xr-var-name:hover,\n", + ".xr-var-dims:hover,\n", + ".xr-var-dtype:hover,\n", + ".xr-attrs dt:hover {\n", + " overflow: visible;\n", + " width: auto;\n", + " z-index: 1;\n", + "}\n", "\n", - " \n", - " \n", - " \n", + ".xr-var-attrs,\n", + ".xr-var-data,\n", + ".xr-index-data {\n", + " display: none;\n", + " border-top: 2px dotted var(--xr-background-color);\n", + " padding-bottom: 20px !important;\n", + " padding-top: 10px !important;\n", + "}\n", "\n", - " \n", - " \n", + ".xr-var-attrs-in + label,\n", + ".xr-var-data-in + label,\n", + ".xr-index-data-in + label {\n", + " padding: 0 1px;\n", + "}\n", "\n", - " \n", - " 1142761\n", - " 25\n", - " 3\n", - "\n", - "
  • z_925
    (reference_time, lead_time, grid_index)
    float32
    dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>
    fill_value :
    nan
    \n", - " \n", - " \n", - " \n", - " \n", - "
    \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
    Array Chunk
    Bytes 326.95 MiB 108.98 MiB
    Shape (3, 25, 1142761) (1, 25, 1142761)
    Dask graph 3 chunks in 12 graph layers
    Data type float32 numpy.ndarray
    \n", - "
    \n", - " \n", + ".xr-var-attrs-in:checked ~ .xr-var-attrs,\n", + ".xr-var-data-in:checked ~ .xr-var-data,\n", + ".xr-index-data-in:checked ~ .xr-index-data {\n", + " display: block;\n", + "}\n", "\n", - " \n", - " \n", - " \n", + ".xr-var-data > table {\n", + " float: right;\n", + "}\n", "\n", - " \n", - " \n", - " \n", - " \n", - " \n", + ".xr-var-data > pre,\n", + ".xr-index-data > pre,\n", + ".xr-var-data > table > tbody > tr {\n", + " background-color: transparent !important;\n", + "}\n", "\n", - " \n", - " \n", + ".xr-var-name span,\n", + ".xr-var-data,\n", + ".xr-index-name div,\n", + ".xr-index-data,\n", + ".xr-attrs {\n", + " padding-left: 25px !important;\n", + "}\n", "\n", - " \n", - " \n", - " \n", - " \n", - " \n", + ".xr-attrs,\n", + ".xr-var-attrs,\n", + ".xr-var-data,\n", + ".xr-index-data {\n", + " grid-column: 1 / -1;\n", + "}\n", "\n", - " \n", - " \n", - " \n", + "dl.xr-attrs {\n", + " padding: 0;\n", + " margin: 0;\n", + " display: grid;\n", + " grid-template-columns: 125px auto;\n", + "}\n", "\n", - " \n", - " \n", + ".xr-attrs dt,\n", + ".xr-attrs dd {\n", + " padding: 0;\n", + " margin: 0;\n", + " float: left;\n", + " padding-right: 10px;\n", + " width: auto;\n", + "}\n", "\n", - " \n", - " \n", - " \n", + ".xr-attrs dt {\n", + " font-weight: normal;\n", + " grid-column: 1;\n", + "}\n", "\n", - " \n", - " \n", - " \n", + ".xr-attrs dt:hover span {\n", + " display: inline-block;\n", + " background: var(--xr-background-color);\n", + " padding-right: 10px;\n", + "}\n", "\n", - " \n", - " \n", + ".xr-attrs dd {\n", + " grid-column: 2;\n", + " white-space: pre-wrap;\n", + " word-break: break-all;\n", + "}\n", "\n", - " \n", - " 1142761\n", - " 25\n", - " 3\n", - "\n", - "
  • z
    (reference_time, lead_time, grid_index)
    float32
    dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>
    fill_value :
    nan
    \n", + ".xr-icon-database,\n", + ".xr-icon-file-text2,\n", + ".xr-no-icon {\n", + " display: inline-block;\n", + " vertical-align: middle;\n", + " width: 1em;\n", + " height: 1.5em !important;\n", + " stroke-width: 0;\n", + " stroke: currentColor;\n", + " fill: currentColor;\n", + "}\n", + "\n", + ".xr-var-attrs-in:checked + label > .xr-icon-file-text2,\n", + ".xr-var-data-in:checked + label > .xr-icon-database,\n", + ".xr-index-data-in:checked + label > .xr-icon-database {\n", + " color: var(--xr-font-color0);\n", + " filter: drop-shadow(1px 1px 5px var(--xr-font-color2));\n", + " stroke-width: 0.8px;\n", + "}\n", + "
    <xarray.Dataset> Size: 932MB\n",
    +       "Dimensions:         (reference_time: 2, lead_time: 25, grid_index: 1142761)\n",
    +       "Coordinates:\n",
    +       "  * reference_time  (reference_time) datetime64[ns] 16B 2020-02-01 2020-02-02\n",
    +       "  * lead_time       (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 da...\n",
    +       "    valid_time      (reference_time, lead_time) datetime64[ns] 400B 2020-02-0...\n",
    +       "    latitude        (grid_index) float64 9MB 20.29 20.31 20.32 ... 63.81 63.77\n",
    +       "    longitude       (grid_index) float64 9MB -17.49 -17.44 -17.4 ... 74.04 74.11\n",
    +       "Dimensions without coordinates: grid_index\n",
    +       "Data variables:\n",
    +       "    10u             (reference_time, lead_time, grid_index) float64 457MB dask.array<chunksize=(1, 13, 571381), meta=np.ndarray>\n",
    +       "    2t              (reference_time, lead_time, grid_index) float64 457MB dask.array<chunksize=(1, 13, 571381), meta=np.ndarray>\n",
    +       "Attributes:\n",
    +       "    mlwp_time_trait:         forecast\n",
    +       "    mlwp_space_trait:        grid\n",
    +       "    mlwp_uncertainty_trait:  deterministic
    \n", " \n", " \n", " \n", - "
    \n", " \n", @@ -74090,22 +3401,22 @@ " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", "
    Bytes 326.95 MiB 108.98 MiB 435.93 MiB 56.67 MiB
    Shape (3, 25, 1142761) (1, 25, 1142761) (2, 25, 1142761) (1, 13, 571381)
    Dask graph 3 chunks in 12 graph layers 8 chunks in 7 graph layers
    Data type float32 numpy.ndarray float64 numpy.ndarray
    \n", @@ -74115,12 +3426,12 @@ "\n", " \n", " \n", + " \n", " \n", "\n", " \n", " \n", - " \n", - " \n", + " \n", " \n", "\n", " \n", @@ -74128,12 +3439,12 @@ "\n", " \n", " \n", - " \n", - " \n", + " \n", " \n", "\n", " \n", " \n", + " \n", " \n", "\n", " \n", @@ -74141,10 +3452,12 @@ "\n", " \n", " \n", + " \n", " \n", "\n", " \n", " \n", + " \n", " \n", "\n", " \n", @@ -74153,11 +3466,11 @@ " \n", " 1142761\n", " 25\n", - " 3\n", + " 2\n", "\n", "
  • tp
    (reference_time, lead_time, grid_index)
    float32
    dask.array<chunksize=(1, 25, 1142761), meta=np.ndarray>
    fill_value :
    nan
    \n", + "
  • 2t
    (reference_time, lead_time, grid_index)
    float64
    dask.array<chunksize=(1, 13, 571381), meta=np.ndarray>
    fill_value :
    nan
    \n", " \n", " \n", " \n", - "
    \n", " \n", @@ -74172,22 +3485,22 @@ " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", "
    Bytes 326.95 MiB 108.98 MiB 435.93 MiB 56.67 MiB
    Shape (3, 25, 1142761) (1, 25, 1142761) (2, 25, 1142761) (1, 13, 571381)
    Dask graph 3 chunks in 12 graph layers 8 chunks in 7 graph layers
    Data type float32 numpy.ndarray float64 numpy.ndarray
    \n", @@ -74197,12 +3510,12 @@ "\n", " \n", " \n", + " \n", " \n", "\n", " \n", " \n", - " \n", - " \n", + " \n", " \n", "\n", " \n", @@ -74210,12 +3523,12 @@ "\n", " \n", " \n", - " \n", - " \n", + " \n", " \n", "\n", " \n", " \n", + " \n", " \n", "\n", " \n", @@ -74223,10 +3536,12 @@ "\n", " \n", " \n", + " \n", " \n", "\n", " \n", " \n", + " \n", " \n", "\n", " \n", @@ -74235,160 +3550,60 @@ " \n", " 1142761\n", " 25\n", - " 3\n", + " 2\n", "\n", "
  • properties :
    {'space': 'grid', 'time': 'forecast', 'uncertainty': 'deterministic'}
    crs :
    +proj=lcc +ellps=WGS84 +a=6371229.0 +b=6371229.0 +lon_0=8.0 +lat_0=50.0 +x_0=0.0 +y_0=0.0 +lat_1=50.0 +lat_2=50.0 +no_defs +type=crs
    grid_mapping :
    {'nx': 1069, 'ny': 1069, 'lon_ll': -17.4859, 'lat_ll': 20.2923, 'dx': 5500.0, 'dy': 5500.0}
  • " + "
  • mlwp_time_trait :
    forecast
    mlwp_space_trait :
    grid
    mlwp_uncertainty_trait :
    deterministic
  • " ], "text/plain": [ - " Size: 27GB\n", - "Dimensions: (reference_time: 3, lead_time: 25, grid_index: 1142761)\n", + " Size: 932MB\n", + "Dimensions: (reference_time: 2, lead_time: 25, grid_index: 1142761)\n", "Coordinates:\n", - " * reference_time (reference_time) datetime64[ns] 24B 2020-02-01 ... 2020-0...\n", + " * reference_time (reference_time) datetime64[ns] 16B 2020-02-01 2020-02-02\n", " * lead_time (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 da...\n", - " valid_time (reference_time, lead_time) datetime64[ns] 600B 2020-02-0...\n", - " latitude (grid_index) float32 5MB 20.29 20.31 20.32 ... 63.81 63.77\n", - " longitude (grid_index) float32 5MB -17.49 -17.44 -17.4 ... 74.04 74.11\n", - " yc (grid_index) float64 9MB -2.937e+06 -2.937e+06 ... 2.937e+06\n", - " xc (grid_index) float64 9MB -2.937e+06 -2.931e+06 ... 2.937e+06\n", + " valid_time (reference_time, lead_time) datetime64[ns] 400B 2020-02-0...\n", + " latitude (grid_index) float64 9MB 20.29 20.31 20.32 ... 63.81 63.77\n", + " longitude (grid_index) float64 9MB -17.49 -17.44 -17.4 ... 74.04 74.11\n", "Dimensions without coordinates: grid_index\n", - "Data variables: (12/79)\n", - " 10u (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " 10v (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " 2d (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " 2t (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " cos_julian_day (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " cos_latitude (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " ... ...\n", - " z_500 (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " z_700 (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " z_850 (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " z_925 (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " z (reference_time, lead_time, grid_index) float32 343MB dask.array\n", - " tp (reference_time, lead_time, grid_index) float32 343MB dask.array\n", + "Data variables:\n", + " 10u (reference_time, lead_time, grid_index) float64 457MB dask.array\n", + " 2t (reference_time, lead_time, grid_index) float64 457MB dask.array\n", "Attributes:\n", - " properties: {'space': 'grid', 'time': 'forecast', 'uncertainty': 'dete...\n", - " crs: +proj=lcc +ellps=WGS84 +a=6371229.0 +b=6371229.0 +lon_0=8....\n", - " grid_mapping: {'nx': 1069, 'ny': 1069, 'lon_ll': -17.4859, 'lat_ll': 20...." + " mlwp_time_trait: forecast\n", + " mlwp_space_trait: grid\n", + " mlwp_uncertainty_trait: deterministic" ] }, - "execution_count": 36, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "# Delaunay interpolation currently only works with stacked datasets.\n", - "ds_fcst = ds_fcst.space.stack()\n", + "# TIME\n", + "if ds_fcst.mx.is_forecast():\n", + " print(\"Dataset is a forecast\")\n", + "if ds_fcst.mx.is_observation():\n", + " print(\"Dataset is an observation\")\n", + "\n", + "# Add an auxiliary valid time coordinate\n", + "ds_fcst = ds_fcst.mx.add_valid_time()\n", "ds_fcst" ] }, { - "cell_type": "code", - "execution_count": 37, - "id": "abde9b4c", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Calculating interpolation-weight matrix\n", - "Done\n" - ] - } - ], - "source": [ - "# Now try the deleanay interpolation\n", - "ds_fcst_aligned2 = mx.interpolate(\n", - " source_datasets=ds_fcst, target_dataset=ds_obs, method=\"delaunay\"\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "id": "103c8038", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "CPU times: user 17.8 s, sys: 1min 39s, total: 1min 57s\n", - "Wall time: 8min 27s\n" - ] - } - ], - "source": [ - "# Compare the interpolation methods performance\n", - "%%time\n", - "result1 = ds_fcst_aligned.compute()" - ] - }, - { - "cell_type": "code", - "execution_count": 39, - "id": "bddb7474", + "cell_type": "markdown", + "id": "7df8a0d3", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Warning, interpolating NaNs for variable cos_julian_dayWarning, interpolating NaNs for variable cos_julian_day\n", - "\n", - "Warning, interpolating NaNs for variable cos_julian_day\n", - "Warning, interpolating NaNs for variable sin_latitude\n", - "Warning, interpolating NaNs for variable sin_latitude\n", - "Warning, interpolating NaNs for variable sin_latitude\n", - "Warning, interpolating NaNs for variable lsm\n", - "Warning, interpolating NaNs for variable lsm\n", - "Warning, interpolating NaNs for variable lsm\n", - "Warning, interpolating NaNs for variable cos_local_time\n", - "Warning, interpolating NaNs for variable cos_local_time\n", - "Warning, interpolating NaNs for variable cos_local_time\n", - "Warning, interpolating NaNs for variable sin_longitude\n", - "Warning, interpolating NaNs for variable sin_longitude\n", - "Warning, interpolating NaNs for variable sin_longitude\n", - "Warning, interpolating NaNs for variable cos_longitude\n", - "Warning, interpolating NaNs for variable cos_longitude\n", - "Warning, interpolating NaNs for variable cos_longitude\n", - "Warning, interpolating NaNs for variable z\n", - "Warning, interpolating NaNs for variable z\n", - "Warning, interpolating NaNs for variable z\n", - "Warning, interpolating NaNs for variable sin_local_time\n", - "Warning, interpolating NaNs for variable sin_local_time\n", - "Warning, interpolating NaNs for variable sin_local_time\n", - "Warning, interpolating NaNs for variable tp\n", - "Warning, interpolating NaNs for variable tp\n", - "Warning, interpolating NaNs for variable tp\n", - "Warning, interpolating NaNs for variable sin_julian_day\n", - "Warning, interpolating NaNs for variable sin_julian_day\n", - "Warning, interpolating NaNs for variable sin_julian_day\n", - "Warning, interpolating NaNs for variable cos_latitude\n", - "Warning, interpolating NaNs for variable cos_latitude\n", - "Warning, interpolating NaNs for variable cos_latitude\n", - "Warning, interpolating NaNs for variable insolation\n", - "Warning, interpolating NaNs for variable insolation\n", - "Warning, interpolating NaNs for variable insolation\n", - "CPU times: user 33.5 s, sys: 2min 4s, total: 2min 37s\n", - "Wall time: 1min 29s\n" - ] - } - ], "source": [ - "# For the Delaunay interpolation, one should add the ~30s\n", - "# used for the calculation of the interpolation matrix done above\n", - "%%time\n", - "result2 = ds_fcst_aligned2.compute()" + "**Spatial accessor functions**" ] }, { "cell_type": "code", - "execution_count": 41, - "id": "c9c75b67", + "execution_count": 8, + "id": "1effcc4a", "metadata": {}, "outputs": [ { @@ -74936,81 +4151,272 @@ " filter: drop-shadow(1px 1px 5px var(--xr-font-color2));\n", " stroke-width: 0.8px;\n", "}\n", - "
    <xarray.DataArray '2t' ()> Size: 8B\n",
    -       "array(0.02950728)\n",
    +       "
    <xarray.Dataset> Size: 932MB\n",
    +       "Dimensions:         (reference_time: 2, lead_time: 25, grid_index: 1142761)\n",
    +       "Coordinates:\n",
    +       "  * reference_time  (reference_time) datetime64[ns] 16B 2020-02-01 2020-02-02\n",
    +       "  * lead_time       (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 da...\n",
    +       "    valid_time      (reference_time, lead_time) datetime64[ns] 400B 2020-02-0...\n",
    +       "    latitude        (grid_index) float64 9MB 20.29 20.31 20.32 ... 63.81 63.77\n",
    +       "    longitude       (grid_index) float64 9MB -17.49 -17.44 -17.4 ... 74.04 74.11\n",
    +       "Dimensions without coordinates: grid_index\n",
    +       "Data variables:\n",
    +       "    10u             (reference_time, lead_time, grid_index) float64 457MB dask.array<chunksize=(1, 13, 571381), meta=np.ndarray>\n",
    +       "    2t              (reference_time, lead_time, grid_index) float64 457MB dask.array<chunksize=(1, 13, 571381), meta=np.ndarray>\n",
            "Attributes:\n",
    -       "    fill_value:  nan
    " + " mlwp_time_trait: forecast\n", + " mlwp_space_trait: grid\n", + " mlwp_uncertainty_trait: deterministic\n", + " crs: +proj=lcc +ellps=WGS84 +a=6371229.0 +b=6371229.0...
    " ], "text/plain": [ - " Size: 8B\n", - "array(0.02950728)\n", + " Size: 932MB\n", + "Dimensions: (reference_time: 2, lead_time: 25, grid_index: 1142761)\n", + "Coordinates:\n", + " * reference_time (reference_time) datetime64[ns] 16B 2020-02-01 2020-02-02\n", + " * lead_time (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 da...\n", + " valid_time (reference_time, lead_time) datetime64[ns] 400B 2020-02-0...\n", + " latitude (grid_index) float64 9MB 20.29 20.31 20.32 ... 63.81 63.77\n", + " longitude (grid_index) float64 9MB -17.49 -17.44 -17.4 ... 74.04 74.11\n", + "Dimensions without coordinates: grid_index\n", + "Data variables:\n", + " 10u (reference_time, lead_time, grid_index) float64 457MB dask.array\n", + " 2t (reference_time, lead_time, grid_index) float64 457MB dask.array\n", "Attributes:\n", - " fill_value: nan" - ] - }, - "execution_count": 41, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Difference in interpolation methods\n", - "t2m_difference = (result2 - result1)[\"2t\"]\n", - "np.abs(t2m_difference).mean()" - ] - }, - { - "cell_type": "code", - "execution_count": 43, - "id": "9831d63a", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" + " mlwp_time_trait: forecast\n", + " mlwp_space_trait: grid\n", + " mlwp_uncertainty_trait: deterministic\n", + " crs: +proj=lcc +ellps=WGS84 +a=6371229.0 +b=6371229.0..." ] }, - "execution_count": 43, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
    " - ] - }, - "metadata": {}, - "output_type": "display_data" } ], "source": [ - "ax = plt.subplot(1, 1, 1, projection=ds_fcst_aligned.attrs[\"crs\"])\n", - "im = ax.scatter(\n", - " x=t2m_difference[\"xc\"],\n", - " y=t2m_difference[\"yc\"],\n", - " c=t2m_difference.isel(reference_time=0, lead_time=10).values,\n", - " cmap=\"RdBu_r\",\n", - " s=2,\n", + "# SPACE accessor\n", + "import cartopy.crs as ccrs\n", + "\n", + "# Define a Coordinate Reference System (CRS)\n", + "globe_cerra = ccrs.Globe(semimajor_axis=6371229.0, semiminor_axis=6371229.0)\n", + "crs_cerra = ccrs.LambertConformal(\n", + " central_longitude=8.0,\n", + " central_latitude=50.0,\n", + " standard_parallels=[50.0, 50.0],\n", + " globe=globe_cerra,\n", ")\n", - "ax.coastlines()\n", - "plt.colorbar(im)" - ] - }, - { - "cell_type": "markdown", - "id": "b0d0d89f", - "metadata": {}, - "source": [ - "### Time" + "\n", + "# Add it to the dataset (this will enable other functionality)\n", + "ds_fcst = ds_fcst.mx.add_crs(crs_cerra)\n", + "ds_fcst" ] }, { "cell_type": "code", - "execution_count": 44, - "id": "2780b5b4", + "execution_count": 9, + "id": "77d7ff0e", "metadata": {}, "outputs": [ { @@ -75394,723 +4800,226 @@ "\n", ".xr-var-list,\n", ".xr-var-item {\n", - " display: contents;\n", - "}\n", - "\n", - ".xr-var-item > div,\n", - ".xr-var-item label,\n", - ".xr-var-item > .xr-var-name span {\n", - " background-color: var(--xr-background-color-row-even);\n", - " border-color: var(--xr-background-color-row-odd);\n", - " margin-bottom: 0;\n", - " padding-top: 2px;\n", - "}\n", - "\n", - ".xr-var-item > .xr-var-name:hover span {\n", - " padding-right: 5px;\n", - "}\n", - "\n", - ".xr-var-list > li:nth-child(odd) > div,\n", - ".xr-var-list > li:nth-child(odd) > label,\n", - ".xr-var-list > li:nth-child(odd) > .xr-var-name span {\n", - " background-color: var(--xr-background-color-row-odd);\n", - " border-color: var(--xr-background-color-row-even);\n", - "}\n", - "\n", - ".xr-var-name {\n", - " grid-column: 1;\n", - "}\n", - "\n", - ".xr-var-dims {\n", - " grid-column: 2;\n", - "}\n", - "\n", - ".xr-var-dtype {\n", - " grid-column: 3;\n", - " text-align: right;\n", - " color: var(--xr-font-color2);\n", - "}\n", - "\n", - ".xr-var-preview {\n", - " grid-column: 4;\n", - "}\n", - "\n", - ".xr-index-preview {\n", - " grid-column: 2 / 5;\n", - " color: var(--xr-font-color2);\n", - "}\n", - "\n", - ".xr-var-name,\n", - ".xr-var-dims,\n", - ".xr-var-dtype,\n", - ".xr-preview,\n", - ".xr-attrs dt {\n", - " white-space: nowrap;\n", - " overflow: hidden;\n", - " text-overflow: ellipsis;\n", - " padding-right: 10px;\n", - "}\n", - "\n", - ".xr-var-name:hover,\n", - ".xr-var-dims:hover,\n", - ".xr-var-dtype:hover,\n", - ".xr-attrs dt:hover {\n", - " overflow: visible;\n", - " width: auto;\n", - " z-index: 1;\n", - "}\n", - "\n", - ".xr-var-attrs,\n", - ".xr-var-data,\n", - ".xr-index-data {\n", - " display: none;\n", - " border-top: 2px dotted var(--xr-background-color);\n", - " padding-bottom: 20px !important;\n", - " padding-top: 10px !important;\n", - "}\n", - "\n", - ".xr-var-attrs-in + label,\n", - ".xr-var-data-in + label,\n", - ".xr-index-data-in + label {\n", - " padding: 0 1px;\n", - "}\n", - "\n", - ".xr-var-attrs-in:checked ~ .xr-var-attrs,\n", - ".xr-var-data-in:checked ~ .xr-var-data,\n", - ".xr-index-data-in:checked ~ .xr-index-data {\n", - " display: block;\n", - "}\n", - "\n", - ".xr-var-data > table {\n", - " float: right;\n", - "}\n", - "\n", - ".xr-var-data > pre,\n", - ".xr-index-data > pre,\n", - ".xr-var-data > table > tbody > tr {\n", - " background-color: transparent !important;\n", - "}\n", - "\n", - ".xr-var-name span,\n", - ".xr-var-data,\n", - ".xr-index-name div,\n", - ".xr-index-data,\n", - ".xr-attrs {\n", - " padding-left: 25px !important;\n", - "}\n", - "\n", - ".xr-attrs,\n", - ".xr-var-attrs,\n", - ".xr-var-data,\n", - ".xr-index-data {\n", - " grid-column: 1 / -1;\n", - "}\n", - "\n", - "dl.xr-attrs {\n", - " padding: 0;\n", - " margin: 0;\n", - " display: grid;\n", - " grid-template-columns: 125px auto;\n", - "}\n", - "\n", - ".xr-attrs dt,\n", - ".xr-attrs dd {\n", - " padding: 0;\n", - " margin: 0;\n", - " float: left;\n", - " padding-right: 10px;\n", - " width: auto;\n", - "}\n", - "\n", - ".xr-attrs dt {\n", - " font-weight: normal;\n", - " grid-column: 1;\n", - "}\n", - "\n", - ".xr-attrs dt:hover span {\n", - " display: inline-block;\n", - " background: var(--xr-background-color);\n", - " padding-right: 10px;\n", - "}\n", - "\n", - ".xr-attrs dd {\n", - " grid-column: 2;\n", - " white-space: pre-wrap;\n", - " word-break: break-all;\n", - "}\n", - "\n", - ".xr-icon-database,\n", - ".xr-icon-file-text2,\n", - ".xr-no-icon {\n", - " display: inline-block;\n", - " vertical-align: middle;\n", - " width: 1em;\n", - " height: 1.5em !important;\n", - " stroke-width: 0;\n", - " stroke: currentColor;\n", - " fill: currentColor;\n", - "}\n", - "\n", - ".xr-var-attrs-in:checked + label > .xr-icon-file-text2,\n", - ".xr-var-data-in:checked + label > .xr-icon-database,\n", - ".xr-index-data-in:checked + label > .xr-icon-database {\n", - " color: var(--xr-font-color0);\n", - " filter: drop-shadow(1px 1px 5px var(--xr-font-color2));\n", - " stroke-width: 0.8px;\n", - "}\n", - "
    <xarray.Dataset> Size: 9MB\n",
    -       "Dimensions:          (reference_time: 3, lead_time: 25, point_index: 1706)\n",
    -       "Coordinates:\n",
    -       "  * reference_time   (reference_time) datetime64[ns] 24B 2020-02-01 ... 2020-...\n",
    -       "  * lead_time        (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 d...\n",
    -       "    valid_time       (reference_time, lead_time) datetime64[ns] 600B 2020-02-...\n",
    -       "    code             (point_index) int64 14kB 1203 1205 1209 ... 26966 26976\n",
    -       "    station_name     (point_index) <U20 136kB 'Krakenes' ... 'Krasnaja Gora'\n",
    -       "    station_country  (point_index) <U20 136kB 'Norway' ... 'U.S.S.R.(Europe)'\n",
    -       "    latitude         (point_index) float64 14kB 62.03 62.33 62.18 ... 52.9 53.02\n",
    -       "    longitude        (point_index) float64 14kB 4.983 5.267 6.067 ... 30.03 31.6\n",
    -       "    altitude         (point_index) float64 14kB nan 38.0 74.0 ... nan nan nan\n",
    -       "Dimensions without coordinates: point_index\n",
    -       "Data variables:\n",
    -       "    10wdir           (reference_time, lead_time, point_index) float64 1MB dask.array<chunksize=(3, 25, 1190), meta=np.ndarray>\n",
    -       "    10si             (reference_time, lead_time, point_index) float64 1MB dask.array<chunksize=(3, 25, 1190), meta=np.ndarray>\n",
    -       "    2t               (reference_time, lead_time, point_index) float64 1MB dask.array<chunksize=(3, 25, 1190), meta=np.ndarray>\n",
    -       "    2d               (reference_time, lead_time, point_index) float64 1MB dask.array<chunksize=(3, 25, 1190), meta=np.ndarray>\n",
    -       "    msl              (reference_time, lead_time, point_index) float64 1MB dask.array<chunksize=(3, 25, 1190), meta=np.ndarray>\n",
    -       "    2r               (reference_time, lead_time, point_index) float64 1MB dask.array<chunksize=(3, 25, 1190), meta=np.ndarray>\n",
    -       "    2t_max           (reference_time, lead_time, point_index) float64 1MB dask.array<chunksize=(3, 25, 1190), meta=np.ndarray>\n",
    -       "    2t_min           (reference_time, lead_time, point_index) float64 1MB dask.array<chunksize=(3, 25, 1190), meta=np.ndarray>\n",
    -       "Attributes:\n",
    -       "    properties:  {'space': 'point', 'time': 'forecast', 'uncertainty': 'deter...
    " + "
  • mlwp_time_trait :
    forecast
    mlwp_space_trait :
    grid
    mlwp_uncertainty_trait :
    deterministic
    crs :
    +proj=lcc +ellps=WGS84 +a=6371229.0 +b=6371229.0 +lon_0=8.0 +lat_0=50.0 +x_0=0.0 +y_0=0.0 +lat_1=50.0 +lat_2=50.0 +no_defs +type=crs
  • " ], "text/plain": [ - " Size: 9MB\n", - "Dimensions: (reference_time: 3, lead_time: 25, point_index: 1706)\n", + " Size: 951MB\n", + "Dimensions: (reference_time: 2, lead_time: 25, grid_index: 1142761)\n", "Coordinates:\n", - " * reference_time (reference_time) datetime64[ns] 24B 2020-02-01 ... 2020-...\n", - " * lead_time (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 d...\n", - " valid_time (reference_time, lead_time) datetime64[ns] 600B 2020-02-...\n", - " code (point_index) int64 14kB 1203 1205 1209 ... 26966 26976\n", - " station_name (point_index) \n", - " 10si (reference_time, lead_time, point_index) float64 1MB dask.array\n", - " 2t (reference_time, lead_time, point_index) float64 1MB dask.array\n", - " 2d (reference_time, lead_time, point_index) float64 1MB dask.array\n", - " msl (reference_time, lead_time, point_index) float64 1MB dask.array\n", - " 2r (reference_time, lead_time, point_index) float64 1MB dask.array\n", - " 2t_max (reference_time, lead_time, point_index) float64 1MB dask.array\n", - " 2t_min (reference_time, lead_time, point_index) float64 1MB dask.array\n", + " 10u (reference_time, lead_time, grid_index) float64 457MB dask.array\n", + " 2t (reference_time, lead_time, grid_index) float64 457MB dask.array\n", "Attributes:\n", - " properties: {'space': 'point', 'time': 'forecast', 'uncertainty': 'deter..." - ] - }, - "execution_count": 44, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Now align in time\n", - "# align the observations with the forecasts (so we can average over the lead times)\n", - "ds_obs_aligned, ds_fcst_aligned = ds_obs.time.align_with(ds_fcst_aligned)\n", - "ds_obs_aligned" - ] - }, - { - "cell_type": "markdown", - "id": "879eb5c1", - "metadata": {}, - "source": [ - "## Transformations\n", - "Often, the variables themselves need some transformations before different datasets can be compared. \n", - "When working interactively, this is easiest by interacting directly on the xr.Datasets.\n", - "\n", - "But this can also be done using the `mxalign.transform` function." - ] - }, - { - "cell_type": "code", - "execution_count": 77, - "id": "e4220a99", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "['rename', 'kelvin_to_celcius', 'uv_to_speed', 'external']" + " mlwp_time_trait: forecast\n", + " mlwp_space_trait: grid\n", + " mlwp_uncertainty_trait: deterministic\n", + " crs: +proj=lcc +ellps=WGS84 +a=6371229.0 +b=6371229.0..." ] }, - "execution_count": 77, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "mx.available_transformations()" + "# Add native x and y coordinates (in this case Lambert Conformal)\n", + "ds_fcst = ds_fcst.mx.add_xy()\n", + "ds_fcst" ] }, { "cell_type": "code", - "execution_count": 45, - "id": "a0a2dac0", + "execution_count": 10, + "id": "47988bd3", "metadata": {}, "outputs": [ { @@ -76830,274 +5708,128 @@ "\n", ".xr-var-name span,\n", ".xr-var-data,\n", - ".xr-index-name div,\n", - ".xr-index-data,\n", - ".xr-attrs {\n", - " padding-left: 25px !important;\n", - "}\n", - "\n", - ".xr-attrs,\n", - ".xr-var-attrs,\n", - ".xr-var-data,\n", - ".xr-index-data {\n", - " grid-column: 1 / -1;\n", - "}\n", - "\n", - "dl.xr-attrs {\n", - " padding: 0;\n", - " margin: 0;\n", - " display: grid;\n", - " grid-template-columns: 125px auto;\n", - "}\n", - "\n", - ".xr-attrs dt,\n", - ".xr-attrs dd {\n", - " padding: 0;\n", - " margin: 0;\n", - " float: left;\n", - " padding-right: 10px;\n", - " width: auto;\n", - "}\n", - "\n", - ".xr-attrs dt {\n", - " font-weight: normal;\n", - " grid-column: 1;\n", - "}\n", - "\n", - ".xr-attrs dt:hover span {\n", - " display: inline-block;\n", - " background: var(--xr-background-color);\n", - " padding-right: 10px;\n", - "}\n", - "\n", - ".xr-attrs dd {\n", - " grid-column: 2;\n", - " white-space: pre-wrap;\n", - " word-break: break-all;\n", - "}\n", - "\n", - ".xr-icon-database,\n", - ".xr-icon-file-text2,\n", - ".xr-no-icon {\n", - " display: inline-block;\n", - " vertical-align: middle;\n", - " width: 1em;\n", - " height: 1.5em !important;\n", - " stroke-width: 0;\n", - " stroke: currentColor;\n", - " fill: currentColor;\n", - "}\n", - "\n", - ".xr-var-attrs-in:checked + label > .xr-icon-file-text2,\n", - ".xr-var-data-in:checked + label > .xr-icon-database,\n", - ".xr-index-data-in:checked + label > .xr-icon-database {\n", - " color: var(--xr-font-color0);\n", - " filter: drop-shadow(1px 1px 5px var(--xr-font-color2));\n", - " stroke-width: 0.8px;\n", - "}\n", - "
    <xarray.Dataset> Size: 42MB\n",
    -       "Dimensions:          (reference_time: 3, lead_time: 25, point_index: 1706)\n",
    -       "Coordinates:\n",
    -       "  * reference_time   (reference_time) datetime64[ns] 24B 2020-02-01 ... 2020-...\n",
    -       "  * lead_time        (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 d...\n",
    -       "    code             (point_index) int64 14kB 1203 1205 1209 ... 26966 26976\n",
    -       "    station_name     (point_index) <U20 136kB 'Krakenes' ... 'Krasnaja Gora'\n",
    -       "    station_country  (point_index) <U20 136kB 'Norway' ... 'U.S.S.R.(Europe)'\n",
    -       "    latitude         (point_index) float64 14kB 62.03 62.33 62.18 ... 52.9 53.02\n",
    -       "    longitude        (point_index) float64 14kB 4.983 5.267 6.067 ... 30.03 31.6\n",
    -       "    altitude         (point_index) float64 14kB nan 38.0 74.0 ... nan nan nan\n",
    -       "Dimensions without coordinates: point_index\n",
    -       "Data variables: (12/80)\n",
    -       "    10u              (reference_time, lead_time, point_index) float32 512kB dask.array<chunksize=(1, 25, 1706), meta=np.ndarray>\n",
    -       "    10v              (reference_time, lead_time, point_index) float32 512kB dask.array<chunksize=(1, 25, 1706), meta=np.ndarray>\n",
    -       "    2d               (reference_time, lead_time, point_index) float32 512kB dask.array<chunksize=(1, 25, 1706), meta=np.ndarray>\n",
    -       "    2t               (reference_time, lead_time, point_index) float32 512kB dask.array<chunksize=(1, 25, 1706), meta=np.ndarray>\n",
    -       "    cos_julian_day   (reference_time, lead_time, point_index) float32 512kB dask.array<chunksize=(1, 25, 1706), meta=np.ndarray>\n",
    -       "    cos_latitude     (reference_time, lead_time, point_index) float32 512kB dask.array<chunksize=(1, 25, 1706), meta=np.ndarray>\n",
    -       "    ...               ...\n",
    -       "    z_700            (reference_time, lead_time, point_index) float32 512kB dask.array<chunksize=(1, 25, 1706), meta=np.ndarray>\n",
    -       "    z_850            (reference_time, lead_time, point_index) float32 512kB dask.array<chunksize=(1, 25, 1706), meta=np.ndarray>\n",
    -       "    z_925            (reference_time, lead_time, point_index) float32 512kB dask.array<chunksize=(1, 25, 1706), meta=np.ndarray>\n",
    -       "    z                (reference_time, lead_time, point_index) float32 512kB dask.array<chunksize=(1, 25, 1706), meta=np.ndarray>\n",
    -       "    tp               (reference_time, lead_time, point_index) float32 512kB dask.array<chunksize=(1, 25, 1706), meta=np.ndarray>\n",
    -       "    10si             (reference_time, lead_time, point_index) float64 1MB 6.2...\n",
    -       "Attributes:\n",
    -       "    properties:  {'space': 'point', 'time': 'forecast', 'uncertainty': 'deter...
    " + ], + "text/plain": [ + " Size: 951MB\n", + "Dimensions: (reference_time: 2, lead_time: 25, grid_index: 1142761)\n", + "Coordinates:\n", + " * reference_time (reference_time) datetime64[ns] 16B 2020-02-01 2020-02-02\n", + " * lead_time (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 da...\n", + " valid_time (reference_time, lead_time) datetime64[ns] 400B 2020-02-0...\n", + " latitude (grid_index) float64 9MB 20.29 20.31 20.32 ... 63.81 63.77\n", + " longitude (grid_index) float64 9MB -17.49 -17.44 -17.4 ... 74.04 74.11\n", + " xc (grid_index) float64 9MB -2.938e+06 -2.931e+06 ... 2.937e+06\n", + " yc (grid_index) float64 9MB -2.937e+06 -2.937e+06 ... 2.937e+06\n", + "Dimensions without coordinates: grid_index\n", + "Data variables:\n", + " 10u (reference_time, lead_time, grid_index) float64 457MB dask.array\n", + " 2t (reference_time, lead_time, grid_index) float64 457MB dask.array\n", + "Attributes:\n", + " mlwp_time_trait: forecast\n", + " mlwp_space_trait: grid\n", + " mlwp_uncertainty_trait: deterministic\n", + " crs: +proj=lcc +ellps=WGS84 +a=6371229.0 +b=6371229.0...\n", + " grid_mapping: {'lon_ll': -17.4859, 'lat_ll': 20.2923, 'lon_ur'..." + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Adding a grid-mapping will enable unstacking of the grid\n", + "# Note that the cerra grid is predefined in the mxalign package\n", + "ds_fcst = ds_fcst.mx.add_grid_mapping(\"cerra\")\n", + "ds_fcst" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "1d3ce9a0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    <xarray.Dataset> Size: 933MB\n",
    +       "Dimensions:         (yc: 1069, xc: 1069, reference_time: 2, lead_time: 25)\n",
    +       "Coordinates:\n",
    +       "  * yc              (yc) float64 9kB -2.937e+06 -2.931e+06 ... 2.937e+06\n",
    +       "  * xc              (xc) float64 9kB -2.937e+06 -2.931e+06 ... 2.937e+06\n",
    +       "    latitude        (yc, xc) float64 9MB 20.29 20.31 20.32 ... 63.84 63.81 63.77\n",
    +       "    longitude       (yc, xc) float64 9MB -17.49 -17.44 -17.4 ... 74.04 74.11\n",
    +       "  * reference_time  (reference_time) datetime64[ns] 16B 2020-02-01 2020-02-02\n",
    +       "  * lead_time       (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 da...\n",
    +       "    valid_time      (reference_time, lead_time) datetime64[ns] 400B 2020-02-0...\n",
    +       "Data variables:\n",
    +       "    10u             (reference_time, lead_time, yc, xc) float64 457MB dask.array<chunksize=(1, 13, 534, 1069), meta=np.ndarray>\n",
    +       "    2t              (reference_time, lead_time, yc, xc) float64 457MB dask.array<chunksize=(1, 13, 534, 1069), meta=np.ndarray>\n",
    +       "Attributes:\n",
    +       "    mlwp_time_trait:         forecast\n",
    +       "    mlwp_space_trait:        grid\n",
    +       "    mlwp_uncertainty_trait:  deterministic\n",
    +       "    crs:                     +proj=lcc +ellps=WGS84 +a=6371229.0 +b=6371229.0...\n",
    +       "    grid_mapping:            {'nx': 1069, 'ny': 1069, 'lon_ll': -17.4859, 'la...
    " + ], + "text/plain": [ + " Size: 933MB\n", + "Dimensions: (yc: 1069, xc: 1069, reference_time: 2, lead_time: 25)\n", + "Coordinates:\n", + " * yc (yc) float64 9kB -2.937e+06 -2.931e+06 ... 2.937e+06\n", + " * xc (xc) float64 9kB -2.937e+06 -2.931e+06 ... 2.937e+06\n", + " latitude (yc, xc) float64 9MB 20.29 20.31 20.32 ... 63.84 63.81 63.77\n", + " longitude (yc, xc) float64 9MB -17.49 -17.44 -17.4 ... 74.04 74.11\n", + " * reference_time (reference_time) datetime64[ns] 16B 2020-02-01 2020-02-02\n", + " * lead_time (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 da...\n", + " valid_time (reference_time, lead_time) datetime64[ns] 400B 2020-02-0...\n", + "Data variables:\n", + " 10u (reference_time, lead_time, yc, xc) float64 457MB dask.array\n", + " 2t (reference_time, lead_time, yc, xc) float64 457MB dask.array\n", + "Attributes:\n", + " mlwp_time_trait: forecast\n", + " mlwp_space_trait: grid\n", + " mlwp_uncertainty_trait: deterministic\n", + " crs: +proj=lcc +ellps=WGS84 +a=6371229.0 +b=6371229.0...\n", + " grid_mapping: {'nx': 1069, 'ny': 1069, 'lon_ll': -17.4859, 'la..." + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Unstack\n", + "ds_fcst = ds_fcst.mx.unstack()\n", + "ds_fcst" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "a9899929", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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tWtXe95t27Zx/PHHk5WVxQMPPEBJSQmPPfYYK1eu5Pvvv8fj8VS5DePGjeODDz7g+uuvp127drz++usMGzaMefPmceyxxwLw66+/cs0113DSSSdx4403kpmZyddff83VV1/Nt99+yxtvvFGt/VWddQFMnTqV9957j6OOOoomTZpUq+2/Gs899xwNGzZk3LhxMdOPP/54ysvLq/Xb1jXKysq4+OKL6dOnD1deeSWNGjVi6dKl3H333cyZM4e5c+fKoFHJX47ffXcsLS0lLS2t2vPn5+cDHFL30oH2oS7i8/n+6C7UGE888QTHHnssqho1FJ588skMGDCAZ599lvvvv9+e/n//93/Uq1ePb775hszMTABatWrFZZddxsyZMxkyZAgAN954I1OnTo25WZ177rl069aNhx56iLffftue/sADD1BaWsry5ctp0aIFAMcccwyDBw/m9ddf5/LLL6+0/99//z3vvvsujz76KDfddBMAY8aMoWvXrtxyyy0sWbIEgNzcXFauXEmXLl3sZa+44gouueQSJk+ezJ133lmlwK/uuqztevnll3G73Zx66qmsWrWq0rb/Tqiq+pc9pzweD4sXL6Zfv372tMsuu4xWrVrZgmbQoEF/YA//PiiaglLDMS013X5d4YDcTP/6179QFIWff/6Z888/n3r16sU8Cb799tv07NmTlJQU6tevz3nnncfWrVvt762TCSAnJ6eC//XLL7/kuOOOIy0tjYyMDIYPH87q1atj+jBu3DjS09PZuHEjw4YNIyMjgwsuuAAwzatPPfUUXbp0wefzcdhhh3HFFVewf//+mDZatWrFqaeeyqJFizjmmGPw+XwcfvjhvPnmmxW2uaCggBtuuIFWrVrh9Xpp1qwZY8aMYc+ePfY8gUCAu+++m7Zt2+L1emnevDm33HILgUCg2vt23Lhx/Oc//wEi6XyRl0X8vrJ+i19++YULL7yQrKwscnJyuPPOOxFCsHXrVs444wwyMzPJzc3l8ccfr7DOQ9HvQ8Hxxx8fI2SsafXr12fNmjX2tKKiImbNmsWFF15oCxkwb+bp6em8//779rR+/fpVeOpu164dXbp0iWkT4MMPP+TUU0+1hQzAoEGDaN++fUybyfjggw/QNC1G9Ph8PsaPH8/SpUvtc6Bhw4YxQsbirLPOAqjQr9+zLoAmTZrgdrurbPP3Ut3z7pNP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E088EYB58+YlNPkeKi699FL7f03T6NWrF9u2bWP8+PH29Ozs7Arb9nv7PWbMmBgXYzJSUlIOaHsAFixYwD333MOoUaPs/oAZBA3g9XorLOPz+ezvE7F27VomTJhA3759GTt2bLXbtOZJ9L2zjaqWT8bEiRP5+eef+fzzz6sV4P171lUTHMh55zwWiouLCQQCHHfccbz44ousXbuW7t2788MPP5Cfn8+9994b4yYcN24cN998c41vT3p6Ouedd579uUOHDmRnZ9O0aVN69+5tT7f+t84pIQQffvgho0aNQggRsy+GDh3Ku+++y48//kj//v2Trvvxxx+vliXzYIK5H3jgAWbPns1zzz1XZbziF198AcC1114bM/36669n6tSpMdOcv2koFKKoqIi2bduSnZ3Njz/+yEUXXQTAqFGjuO6665gyZQr33XcfAF9//TV79uzhwgsvtNvIzs7mu+++Y8eOHX+NoPXayDY6wPa/+uqrmM+vv/46jRo1Yvny5Rx//PGA6f57/vnnbYvvHXfcwZNPPsny5cvp0aMHa9as4auvvmLZsmW2VfuZZ55h2LBhPPbYY3/Ib3dQYqZ169Yxn9evX48Qgnbt2iWcvyq//fr16wFiblxO4k3qLpeLZs2aVWijsLCQRo0aJWzDCjy2cMZHWNSrVy/mYrJx40bbhVVZ39esWUNOTk611nuoid+OrKwsfD5fBVNyVlYWe/futT//3n4ffvjhHH744QfZ6+SsXbuWs846i65du/LKK6/EfGddOBPF9Pj9/qTCKS8vj+HDh5OVlWXHnFS3TWseXdcrpGrXr18fj8dDSkpKlcsn4tFHH+Xll1/mvvvuY9iwYfb0mlhXTXEg593q1au54447mDt3LkVFRTHzFRYWAmYMBlDhWuJ2u2vkeIunWbNmFTJ9srKyaN68eYVpgH292L17NwUFBbz00ktJy01UdU717NnzYLtdKe+99x533HEH48ePr/AQmIjffvsNVVVp06ZNzPQOHTpUmLe8vJwHH3yQyZMns337doQQ9nfWbwqmSDnttNOYOnWqLWamTJlC06ZNY677jzzyCGPHjqV58+b07NmTYcOGMWbMmFr57es68eeU1+ut9CHMwvqd6tevb0/r168f7733HsOHDyc7O5v3338fv99vx5wtXbqU7OzsGPf8oEGDUFWV7777LqEBoKY5KDETf8E0DANFUfjyyy9jbhQW6enplbZnGAZgxoo403DtTsY9sXq93goBo4Zh0KhRo4R+WaDCTTtRP4GYk7E6GIZBt27deOKJJxJ+H38RPNQk2o7qbNvv7bcV01Kd/iUTTPFs3bqVIUOGkJWVxRdffEFGRkbM940bNwZIWH9m586dCZ8GCgsLOeWUUygoKGDhwoUV5qmqzfr16+P1etm8eXMFET9v3jwGDhxI48aN2b59e8LlIfGT9Ouvv86tt97KlVdeyR133FFhPxzKddUk1T3vCgoKGDBgAJmZmdx77720adMGn8/Hjz/+yK233mpfA/5okp07VZ1TVv8vvPDCGMufkyOOOKLSde/bt49gMFhlH1NSUmwxVRWzZs1izJgxDB8+nBdeeKFayxwI11xzDZMnT+b666+nb9++ZGVloSgK5513XoXfdMyYMUybNo0lS5bQrVs3Pv30U66++uqYa/moUaM47rjjmD59OjNnzuTRRx/l4Ycf5qOPPuKUU0455P2vcQ4ipuWg1kHFa/bdd99dZd0ywzC4/vrr6d+/f0y5ivfff59zzz2XBg0a4HK5SE1NZfr06Xa2ZV5eXoUHGJfLRf369e3YrNrmkBQuadOmDUIIWrduTfv27Q9qeYBGjRoddMpgmzZtmD17Nv379z9kT6dt2rSpMp21TZs2/PTTT5x00km/u3ZDbdZ++L39fuyxx7jnnnuqnK9ly5YVArgTsXfvXoYMGUIgEGDOnDm2yHDStWtXXC4XP/zwA6NGjbKnB4NBVqxYETMNTGvFaaedxi+//MLs2bPp3LlzhTabNm1KTk4OP/zwQ4Xvvv/+e4488kjAdJnGF6br3r07AEceeSTz5s2jqKgoxor43Xff2d87+eSTT7j00ks5++yz7Qw2J4dyXTVNdc+7b775hr179/LRRx/ZpmyATZs2xczXsmVLwLT4OJ/YQ6EQmzZtsvdDdamtc8rK+tF1/aCvYWeffTbz58+vcr6xY8dWqxCg9YTcq1cv3n///WrXqWrZsiWGYbBx48YYa0x8kCiY2XVjx46NyZb0+/120oeTk08+mZycHKZMmULv3r0pKyuz3VBOGjduzNVXX83VV19Nfn4+Rx11FP/+97/rppipRbZu3RpzTaiOVWbChAmsWrWKRYsWxUy/8847KSgoYPbs2TRs2JCPP/6YUaNGsXDhQrp163bI+34oOCSS8eyzz0bTNO65554Klg0hRIx7IxFDhw4lMzOTBx54oELWEVCtSqyjRo1C13XbhOkkHA4nPLmqYsSIEfz0009Mnz69wnfWdo4aNYrt27fz8ssvV5invLyc0tLSaq/PqpVzMH09UH5vv8eMGcOsWbOqfCV7YndSWlrKsGHD2L59O1988UVSd2VWVhaDBg3i7bffjskieeuttygpKWHkyJH2NF3XOffcc1m6dCnTpk2jb9++Sdc/YsQIZsyYEZMtM2fOHH755Re7TZ/Px6BBg2Je9erVA+Ccc85B1/UY90IgEGDy5Mn07t075olpwYIFnHfeeRx//PFMmTKlgoXxUK6rNqjueWdZNpzXh2AwyHPPPRezTK9evcjJyeGFF16IsVK8/vrrB3VepKWl1cr5pGkaI0aM4MMPP0z4AFSda9jjjz9erXPqlltuqbKtNWvWMHz4cFq1asWMGTMO6AHPEg1PP/10zPREGVmaplW45j/zzDMJ0+1dLhejR4/m/fff5/XXX6dbt24x1ipd12NcU2A+4DZp0iTGtbpnzx7Wrl1rZ0uBmV25du3amFglMN3WW7ZsqWKLa5BazGbKzMyMeVUlZiZOnMiMGTOYN29eTNjGxo0befbZZ3nttdc46aST6N69O3fffTe9evWyH75yc3MruE3D4TD79u1L6F2pDQ6ZZeb+++/n9ttvZ/PmzZx55plkZGSwadMmpk+fzuWXX24X+EpEZmYmzz//PBdddBFHHXUU5513Hjk5OWzZsoXPP/+c/v378+yzz1bahwEDBnDFFVfw4IMPsmLFCoYMGYLb7Wb9+vVMmzaNSZMmcc455xzQdt1888188MEHjBw5kksuuYSePXuyb98+Pv30U1544QW6d+/ORRddxPvvv8+VV17JvHnz6N+/P7qus3btWt5//32+/vrrhGm/ibB85tdeey1Dhw5F07SYYMRDye/t96GMmbngggv4/vvvueSSS1izZk1MGmZ6ejpnnnmm/fnf//43/fr1Y8CAAVx++eVs27aNxx9/nCFDhnDyySfb8/3jH//g008/5bTTTmPfvn0xRfKAmKDD//u//2PatGmccMIJXHfddZSUlPDoo4/SrVs3Lr744ir737t3b0aOHMntt99Ofn4+bdu25Y033mDz5s28+uqr9ny//fYbp59+OoqicM455zBt2rSYdo444ogqXRHVXRfA//73Pz799FPALEVQWFhoFyDs3r07p512mj2vNdRBdaxoTqp73vXr14969eoxduxYrr32WhRF4a233qpwI3S73dx///1cccUVnHjiiZx77rls2rSJyZMnH9Tx1rNnT55//nnuv/9+2rZtS6NGjZLG5v1eHnroIebNm0fv3r257LLL6Ny5M/v27ePHH39k9uzZ7Nu3r8q+HgqKi4sZOnQo+/fv5+abb+bzzz+P+b5NmzaVivsjjzyS0aNH89xzz1FYWEi/fv2YM2cOGzZsqDDvqaeeyltvvUVWVhadO3dm6dKlzJ49mwYNGiRse8yYMTz99NPMmzePhx9+uEK/mzVrxjnnnEP37t1JT09n9uzZLFu2LMby8+yzz3LPPffYrlcwragnnHBCBddKp06dGDBggByDy4EQgmuuuYbp06fzzTffVHBpWyIx/kFL0zTbddi3b18KCgpYvny5fdzOnTsXwzBiAuVrlQNJfUqUVu3kww8/FMcee6xIS0sTaWlpomPHjmLChAli3bp11Wpj3rx5YujQoSIrK0v4fD7Rpk0bMW7cOPHDDz/Y84wdO1akpaUl7eNLL70kevbsKVJSUkRGRobo1q2buOWWW8SOHTvseVq2bCmGDx9eYdkBAwZUSOPcu3evmDhxomjatKnweDyiWbNmYuzYsTHpl8FgUDz88MOiS5cuwuv1inr16omePXuKe+65p9rpckKYqdXXXHONyMnJEYqixKRpkyQ1O34/Jts/AwYMEF26dImZdqj6/XuxUuUTvRKlEy9cuFD069dP+Hw+kZOTIyZMmCCKiopi5qkqzTWeVatWiSFDhojU1FSRnZ0tLrjgApGXl1ftbSgvLxc33XSTyM3NFV6vVxx99NHiq6++ipnHSgdO9nL+vr93XUIIMXny5Gqn9zZs2FD06dOnynXHp2ZbVOe8W7x4sejTp49ISUkRTZo0Ebfccoud4uxMkRZCiOeee060bt1aeL1e0atXL7FgwYKE52dV5OXlieHDh4uMjIyY1O5kqdnx54gQya8XQIU04l27dokJEyaI5s2bC7fbLXJzc8VJJ50kXnrppQPq9+9h06ZNvzu1u7y8XFx77bWiQYMGIi0tTZx22mli69atFY7T/fv3i4svvlg0bNhQpKeni6FDh4q1a9eKli1bJl1Ply5dhKqqYtu2bTHTA4GAuPnmm0X37t1FRkaGSEtLE927dxfPPfdczHzWtc/521m/Z/w55PzNaxM7NXvaxUL//Ioafe2fdvEBpWZfddVVIisrS3zzzTdi586d9stKsw8Gg6Jt27biuOOOE999953YsGGDeOyxx4SiKOLzzz+32zn55JNFjx49xHfffScWLVok2rVr94emZitCHGDEq0Qi+Uvx888/06VLF2bMmJGwMJpEcijp0aMH9evXZ86cOX90V2qMoqIisrKy2P/BJWSm1ez4X0WlQeqd8xqFhYUVMn8TkSyObPLkyfYYZuvXr+e2225j0aJFlJSU2IVXnTFO+/btY+LEiXz22WeoqsqIESN4+umnq0z4qSn+miMXSiSSajNv3jz69u0rhYykxvnhhx9YsWLF324k8z8T1bFftGvXrkLF33jq169foe7QH4m0zNQChYWFVRYz+6OCpiSSusju3bsTBplaeDyemLoZkj+WVatWsXz5ch5//HH27NnDr7/++pcd6BMclpmPLq0dy8zZr1TbMvNXRVpmaoHrrruON954o9J5pKaUSKrP0UcfbRfYS4QM+vxz8cEHH3DvvffSoUMH3nnnnb+0kJH8MUjLTC3w888/s2PHjkrnOdjaFBLJ35HFixdXau2sV69ejVXUlUiqwrbMfHx57VhmznxJWmb+6A78HejcuXPCgm0SieTgqGyMI4lE8vdDihmJRCKRSGqCP+FAk39Vqi1m/H5/tcYNkUgkEonkz4jH45HxOn9RqiVm/H4/LVq0qFZJbolEIpFI/ozk5uayadOm2hM0qlILA01KywxUU8wEg0F2795Nly5dOO200xg3blzCgQD/KoRCIWbOnGmXZv87MWvWLMaPH08gEOC1116jfv369OnTp1YHwTwQft73Jpoi0IWCpkRj2U3rbuLPznNfU0TMZwUVRVFQIsOWhcMKPy6oR68BhbhcoBCZWVEj84OiqPZ0azlrf9mfre+d89ptxM8T7VD8vM7pimNoNUVRzPquAMJI/J6MuLZjPisqobBg5swShgxJp7KxCmOPkeOTzldX+StdF9555x2uvPJKzjrrLC666CKOPvroKoNHS0tLmTdvHoqicPPNN7N9+3YaNGjAKaecwrBhwzjqqKPIzc39014rioqKaN68OcFgUFpn/oIcUMxMp06deO6553jjjTf44osvan2E3toiFAqRmppKZmZmnb9oHSgjRoyg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", + "text/plain": [ + "
    " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# ds_fcst_stacked = ds_fcst.mx.stack()\n", + "import matplotlib.pyplot as plt\n", + "\n", + "_ = (\n", + " ds_fcst[\"2t\"]\n", + " .isel(reference_time=0, lead_time=10)\n", + " .plot(\n", + " x=\"longitude\",\n", + " y=\"latitude\",\n", + " figsize=(7, 7),\n", + " subplot_kws={\"projection\": ccrs.PlateCarree()},\n", + " cmap=\"Spectral_r\",\n", + " )\n", + ")\n", + "_ = plt.gca().coastlines()\n", + "_ = plt.gca().gridlines()" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "18ff3d66", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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6CguuOACPPjgg/jTn/4E3/cnPIaTTz4ZP//5z3HWWWdhu+22w2WXXYbDDz8cy5Ytwxvf+EYAwJNPPokPf/jDOOigg/Dxj38c1WoVv/vd7/ChD30If/zjH/GTn/ykq/PVzb4A4Morr8TPfvYz7L777thss8262vYrjQsvvBCzZ8/GySefnJq+//77o1ardfXbzjTGx8fxvve9D/vssw9OP/10zJ07F3fddRfOPfdc3HzzzbjlllsoaJR4xfGie8exsTFUKpWul1+5ciUAbFT30mTbMBMpFosvdROmjG9+85t44xvfCM4TQ+Fhhx2GAw44AN///vfxpS99yUz/9Kc/jYGBAdx6662oVqsAgK222gof+MAHcMMNN2Dx4sUAgI9//OO48sorU53Vcccdh1133RXnn38+fvrTn5rpX/nKVzA2Nob77rsPW2yxBQDgDW94Aw455BBcdtll+OAHP9ix/X/605/wX//1X/j617+OT3ziEwCAE088Ebvssgs++clP4s477wQAzJs3Dw8++CB23nlns+5pp52GU045BZdeeik++9nPTijwu92XPq4f/vCH8DwPb33rW/HQQw913ParCc75K/ae8n0ff/jDH7DvvvuaaR/4wAew1VZbGUFz8MEHv4QtfPXAHAY2xTEtU739mcKk3Eyf+9znwBjDI488gne/+90YGBhIvQn+9Kc/xR577IFSqYTBwUEcf/zxePbZZ818fTMBwJw5c1r8r7/5zW/wpje9CZVKBb29vViyZAkefvjhVBtOPvlk9PT04IknnsDhhx+O3t5evOc97wGgzKvf/va3sfPOO6NYLGKTTTbBaaedhnXr1qW2sdVWW+Gtb30rfv/73+MNb3gDisUittlmG/zHf/xHyzGvX78eH/vYx7DVVluhUChg/vz5OPHEE7F69WqzTKPRwLnnnottt90WhUIBCxYswCc/+Uk0Go2uz+3JJ5+MH/zgBwDidL74vyZ7rvRv8Ze//AXvfe970dfXhzlz5uCzn/0spJR49tln8ba3vQ3VahXz5s3DN77xjZZ9box2bwz233//lJDR0wYHB/Hoo4+aacPDw7jxxhvx3ve+1wgZQHXmPT09uOqqq8y0fffdt+Wte7vttsPOO++c2iYAXHPNNXjrW99qhAwAHHzwwXjNa16T2mY7fv7zn8NxnJToKRaLOPXUU3HXXXeZe2D27NkpIaN5xzveAQAt7Xox+wKAzTbbDJ7nTbjNF0u3990vf/lLLFmyBJttthkKhQIWLlyIL37xi7kutksuuQQLFy5EqVTCG97wBtxxxx2TbtdWW22Fhx9+GLfddpu5n3TMTV7MzIEHHohddtkFf/7zn3HAAQegXC5j2223xc9//nMAwG233Ya9994bpVIJ22+/PW666aaWfT7//PM45ZRTsMkmm6BQKGDnnXfGj3/840m3/cXg+35KyGgmc501Gg187GMfw5w5c9Db24sjjzwSzz33XMtyf//73/GhD30I22+/PUqlEmbNmoVjjjkGTz/9tFnmySefBGMM3/rWt1rWv/POO8EYw3/+538CAEZGRnDWWWeZ5+3cuXNxyCGH4P777+/28IlXKRsUM3PMMcdgfHwcX/nKV/CBD3wAAPDlL38ZJ554Irbbbjt885vfxFlnnYWbb74Z+++/P9avXw8A+Pa3v21uqIsuugiXX3453vnOdwJQQcFLlixBT08PvvrVr+Kzn/0sHnnkEbzxjW9M3RgAEIYhDj30UMydOxcXXHABjjrqKADqLffss8/Gfvvth+985zt43/vehyuuuAKHHnoogiBIbeNvf/sbjj76aBxyyCH4xje+gYGBAZx88skp8TQ6Ooo3velN+N73vofFixfjO9/5Dk4//XQ89thj5sYWQuDII4/EBRdcgCOOOALf+9738Pa3vx3f+ta3cNxxx3V9Tk877TQccsgh5lzo/xNx3HHHQQiB888/H3vvvTe+9KUv4dvf/jYOOeQQbL755vjqV7+KbbfdFp/4xCdw++23m/VebLvHx8exevXqCf9nO7RuGR0dxejoKGbPnm2mPfjggwjDEHvuuWdqWd/38brXvQ7/+7//23GbUkqsWLEitc3nn38eK1eubNkmoKwzE20TAP73f/8Xr3nNa1ICS68PKNdYJ5YvXw4AqXZN1b6mgm7vu8suuww9PT34+Mc/ju985zvYY4898K//+q/453/+59T2fvSjH+G0007DvHnz8LWvfQ377bcfjjzyyJRQ64Zvf/vbmD9/PnbYYQdzP/3Lv/xLx3XWrVuHt771rdh7773xta99DYVCAccffzx+9rOf4fjjj8fhhx+O888/H2NjYzj66KMxMjJi1l2xYgX22Wcf3HTTTTjzzDONK/3UU0/Ft7/97QnbOzQ01NU9lY0P65bJXGfvf//78e1vfxuLFy/G+eefD8/zsGTJkpbl7rnnHtx55504/vjj8d3vfhenn346br75Zhx44IEYHx8HAGyzzTbYb7/9cMUVV7Ssf8UVV6C3txdve9vbAACnn346LrroIhx11FG48MIL8YlPfAKlUqkrAfayhPPp+T8JzjvvPOy1117o7e3F3Llz8fa3vx2PP/54apnly5fjhBNOwLx581CpVLD77rvjmmuuSS2zdu1avOc970G1WkV/fz9OPfXUDb42NwpyEpx77rkSgHzXu96Vmv70009Lx3Hkl7/85dT0Bx98ULqum5qut7Fq1SozbWRkRPb398sPfOADqfWXL18u+/r6UtNPOukkCUD+8z//c2rZO+64QwKQV1xxRWr6b3/725bpW265pQQgb7/9djNt5cqVslAoyP/3//6fmfav//qvEoD8xS9+0XIuhBBSSikvv/xyyTmXd9xxR2r+xRdfLAHIP/zhDy3rtmPp0qWy3U8CQJ577rnmuz6PH/zgB820MAzl/PnzJWNMnn/++Wb6unXrZKlUkieddJKZ9mLbrfc/0f8tt9yy6+O3+eIXvygByJtvvtlMu/rqq1t+N80xxxwj582b13Gbl19+uQQgf/SjH5lp99xzjwQg/+M//qNl+bPPPlsCkPV6veN2d955Z/nmN7+5ZfrDDz8sAciLL7647bqNRkPutNNOcuutt5ZBEHTcz4vZ15IlSzb4t7A56aSTUtuZzH03Pj7esr3TTjtNlstlc46bzaacO3eufN3rXicbjYZZ7pJLLpEA5AEHHDCp9u6888656yxbtkwCkMuWLTPTDjjgAAlAXnnllWbaY489JgFIzrn84x//aKb/7ne/kwDkpZdeaqadeuqpctNNN5WrV69O7ev444+XfX19ucdvo/c/0X/7Pp4MBx98sKxWq3LdunUdl3vggQckAPmhD30oNf3d7353y3Mo75juuuuulnvq3/7t3yQA+eijj5ppzWZTzp49O3U8fX19cunSpZM7sJchQ0NDEoBcd8V7ZXTtKVP6f90V75UA5NDQUFdtO/TQQ+Wll14qH3roIfnAAw/Iww8/XG6xxRZydHTULHPIIYfIvfbaS959993yiSeekF/84hcl51zef//9ZpnDDjtM7rbbbvKPf/yjvOOOO+S2227bog2mkw2KmTn99NNT33/xi19ACIFjjz025X6ZN28etttuOyxbtgyf/vSn227vxhtvxPr16/Gud70rtb7jONh7772xbNmylnXOOOOM1Perr74afX19OOSQQ1Lb2GOPPdDT04Nly5bh3e9+t5m+00474U1vepP5PmfOHGy//fZ48sknzbRrrrkGu+22m7Em2WgX0NVXX40dd9wRO+ywQ2q/b37zmwEAy5YtyzX5bize//73m8+O42DPPffEc889h1NPPdVM7+/vbzm2F9vuE088MeVibEepVJrU8QDA7bffjs9//vM49thjTXsAFQQNAIVCoWWdYrFo5ufx2GOPYenSpVi0aBFOOumkrrepl8mbb29jovXbceaZZ+KRRx7Br3/9664CvF/MvqaCydx39rUwMjKCRqOBN73pTfi3f/s3PPbYY9htt91w7733YuXKlfjCF76QchOefPLJOPvss6f8eHp6enD88ceb79tvvz36+/ux+eabY++99zbT9Wd9T0kpcc011+DYY4+FlDJ1Lg499FD813/9F+6//37st99+bff9jW98oytL5oYEc3/lK1/BTTfdhAsvvHDCeMXrr78eAPCRj3wkNf2ss87ClVdemZpm/6ZBEGB4eBjbbrst+vv7cf/99+OEE04AABx77LH46Ec/iiuuuAJf/OIXAQC/+93vsHr1arz3ve812+jv78fdd9+Nf/zjH6+MoPXpyDaa5PZ/+9vfpr5fdtllmDt3Lu677z7sv//+AJT776KLLjIW38985jP41re+hfvuuw+vf/3r8eijj+K3v/0t7rnnHmPV/t73vofDDz8cF1xwwUvy222QmNl6661T3//6179CSontttsud/mJ/PZ//etfASDVcdlkTequ62L+/Pkt2xgaGsLcuXNzt6EDjzV2fIRmYGAg9TB54oknjAurU9sfffRRzJkzp6v9bmyyx9HX14disdhiSu7r68OaNWvM9xfb7m222QbbbLPNBra6PY899hje8Y53YJdddsG///u/p+bpB2deTE+9Xm8rnJYvX44lS5agr6/PxJx0u029TBRFLanag4OD8H0fpVJpwvXz+PrXv44f/vCH+OIXv4jDDz/cTJ+KfU0Vk7nvHn74YXzmM5/BLbfcguHh4dRyQ0NDAFQMBoCWZ4nneVNyvWWZP39+S6ZPX18fFixY0DINgHlerFq1CuvXr8cll1zSttzERPfUHnvssaHN7sjPfvYzfOYzn8Gpp57a8hKYx9///ndwzrFw4cLU9O23375l2VqthvPOOw+XXnopnn/+eUgpzTz9mwJKpBxxxBG48sorjZi54oorsPnmm6ee+1/72tdw0kknYcGCBdhjjz1w+OGH48QTT5yW336mk72nCoVCx5cwjf6dBgcHzbR9990XP/vZz7BkyRL09/fjqquuQr1eNzFnd911F/r7+1Pu+YMPPhicc9x99925BoCpZoPETPaBKYQAYwy/+c1vUh2Fpqenp+P2hBAAVKyInYZrGpl5Yy0UCi0Bo0IIzJ07N9cvC6Cl085rJ4DUzdgNQgjsuuuu+OY3v5k7P/sQ3NjkHUc3x/Zi261jWrppXzvBlOXZZ5/F4sWL0dfXh+uvvx69vb2p+ZtuuikA5NafeeGFF3LfBoaGhvCWt7wF69evxx133NGyzETbHBwcRKFQwNNPP90i4pctW4YDDzwQm266KZ5//vnc9YH8N+nLLrsM55xzDk4//XR85jOfaTkPG3NfU0m399369etxwAEHoFqt4gtf+AIWLlyIYrGI+++/H+ecc455BrzUtLt3JrqndPvf+973pix/Nq997Ws77nvt2rVoNpsTtrFUKhkxNRE33ngjTjzxRCxZsgQXX3xxV+tMhg9/+MO49NJLcdZZZ2HRokXo6+sDYwzHH398y2964okn4uqrr8add96JXXfdFb/61a/woQ99KPUsP/bYY/GmN70J1157LW644QZ8/etfx1e/+lX84he/wFve8paN3v4pZwNiWjZoH2h9Zp977rkT1i0TQuCss87CfvvtlypXcdVVV+G4447DrFmz4LouyuUyrr32WpNtuXz58pYXGNd1MTg4aGKzppuNUrhk4cKFkFJi6623xmte85oNWh8A5s6du8EpgwsXLsRNN92E/fbbb6O9nS5cuHDCdNaFCxfi//7v/3DQQQe96NoN01n74cW2+4ILLsDnP//5CZfbcsstWwK481izZg0WL16MRqOBm2++2YgMm1122QWu6+Lee+/Fsccea6Y3m0088MADqWmAslYcccQR+Mtf/oKbbroJO+20U8s2N998c8yZMwf33ntvy7w//elPeN3rXgdAuUyzhel22203AMDrXvc6LFu2DMPDwykr4t13323m2/zyl7/E+9//frzzne80GWw2G3NfU023992tt96KNWvW4Be/+IUxZQPAU089lVpuyy23BKAsPvYbexAEeOqpp8x56Jbpuqd01k8URRv8DHvnO9+J2267bcLlTjrppK4KAeo35D333BNXXXVV13WqttxySwgh8MQTT6SsMdkgUUBl15100kmpbMl6vW6SPmwOO+wwzJkzB1dccQX23ntvjI+PGzeUzaabbooPfehD+NCHPoSVK1di9913x5e//OWZKWamkWeffTb1TOjGKrN06VI89NBD+P3vf5+a/tnPfhbr16/HTTfdhNmzZ+O///u/ceyxx+KOO+7ArrvuutHbvjHYKJLxne98JxzHwec///kWy4aUMuXeyOPQQw9FtVrFV77ylZasIwBdVWI99thjEUWRMWHahGGYe3NNxFFHHYX/+7//w7XXXtsyTx/nsccei+effx4//OEPW5ap1WoYGxvren+6Vs6GtHWyvNh2n3jiibjxxhsn/N/ujd1mbGwMhx9+OJ5//nlcf/31bd2VfX19OPjgg/HTn/40lUVy+eWXY3R0FMccc4yZFkURjjvuONx11124+uqrsWjRorb7P+qoo3DdddelsmVuvvlm/OUvfzHbLBaLOPjgg1P/BwYGAABHH300oihKuRcajQYuvfRS7L333qk3pttvvx3HH3889t9/f1xxxRUtFsaNua/poNv7Tls27OdDs9nEhRdemFpnzz33xJw5c3DxxRenrBSXXXbZBt0XlUplWu4nx3Fw1FFH4Zprrsl9AermGfaNb3yjq3vqk5/85ITbevTRR7FkyRJstdVWuO666yb1gqdFw3e/+93U9LyMLMdxWp753/ve93LT7V3Xxbve9S5cddVVuOyyy7DrrrumrFVRFKVcU4B6wd1ss81SrtXVq1fjscceM9lSgMqufOyxx1KxSoByWz/zzDMTHPEUMo3ZTNVqNfV/IjFz5pln4rrrrsOyZctSYRtPPPEEvv/97+PHP/4xDjroIOy2224499xzseeee5qXr3nz5rW4TcMwxNq1a3O9K9PBRrPMfOlLX8KnPvUpPP3003j729+O3t5ePPXUU7j22mvxwQ9+0BT4yqNareKiiy7CCSecgN133x3HH3885syZg2eeeQa//vWvsd9+++H73/9+xzYccMABOO2003DeeefhgQcewOLFi+F5Hv7617/i6quvxne+8x0cffTRkzqus88+Gz//+c9xzDHH4JRTTsEee+yBtWvX4le/+hUuvvhi7LbbbjjhhBNw1VVX4fTTT8eyZcuw3377IYoiPPbYY7jqqqvwu9/9LjftNw/tM//IRz6CQw89FI7jpIIRNyYvtt0bM2bmPe95D/70pz/hlFNOwaOPPppKw+zp6cHb3/528/3LX/4y9t13XxxwwAH44Ac/iOeeew7f+MY3sHjxYhx22GFmuf/3//4ffvWrX+GII47A2rVrU0XyAKSCDj/96U/j6quvxj/90z/hox/9KEZHR/H1r38du+66K973vvdN2P69994bxxxzDD71qU9h5cqV2HbbbfGTn/wETz/9NH70ox+Z5f7+97/jyCOPBGMMRx99NK6++urUdl772tdO6Irodl8A8Oc//xm/+tWvAKhSBENDQ6YA4W677YYjjjjCLKuHOujGimbT7X237777YmBgACeddBI+8pGPgDGGyy+/vKUj9DwPX/rSl3DaaafhzW9+M4477jg89dRTuPTSSzfoettjjz1w0UUX4Utf+hK23XZbzJ07t21s3ovl/PPPx7Jly7D33nvjAx/4AHbaaSesXbsW999/P2666SasXbt2wrZuDEZGRnDooYdi3bp1OPvss/HrX/86NX/hwoUdxf3rXvc6vOtd78KFF16IoaEh7Lvvvrj55pvxt7/9rWXZt771rbj88svR19eHnXbaCXfddRduuukmzJo1K3fbJ554Ir773e9i2bJl+OpXv9rS7vnz5+Poo4/Gbrvthp6eHtx000245557Upaf73//+/j85z9vXK+AsqL+0z/9U4trZccdd8QBBxxAY3BZSCnx4Q9/GNdeey1uvfXWFpe2FonZFy3HcYzrcNGiRVi/fj3uu+8+c93ecsstEEKkAuWnlcmkPuWlVdtcc8018o1vfKOsVCqyUqnIHXbYQS5dulQ+/vjjXW1j2bJl8tBDD5V9fX2yWCzKhQsXypNPPlnee++9ZpmTTjpJViqVtm285JJL5B577CFLpZLs7e2Vu+66q/zkJz8p//GPf5hlttxyS7lkyZKWdQ844ICWNM41a9bIM888U26++ebS9305f/58edJJJ6XSL5vNpvzqV78qd955Z1koFOTAwIDcY4895Oc///mu0+WkVKnVH/7wh+WcOXMkYyyVpo02qdnZ89ju/BxwwAFy5513Tk3bWO1+sehU+bz/eenEd9xxh9x3331lsViUc+bMkUuXLpXDw8OpZSZKc83y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", + "text/plain": [ + "
    " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Now we can plot the data on the native grid\n", + "import matplotlib.pyplot as plt\n", + "\n", + "_ = (\n", + " ds_fcst[\"2t\"]\n", + " .isel(reference_time=0, lead_time=10)\n", + " .plot(\n", + " x=\"longitude\",\n", + " y=\"latitude\",\n", + " figsize=(7, 7),\n", + " subplot_kws={\"projection\": ds_fcst.attrs[\"crs\"]},\n", + " cmap=\"Spectral_r\",\n", + " )\n", + ")\n", + "_ = plt.gca().coastlines()\n", + "_ = plt.gca().gridlines()" + ] + }, + { + "cell_type": "markdown", + "id": "a9feaf7c", + "metadata": {}, + "source": [ + "## Loading\n", + "All loading of datasets is done through the central `load_and_validate_dataset` function" + ] + }, + { + "cell_type": "markdown", + "id": "b210cb47", + "metadata": {}, + "source": [ + "Often, you will need to load a specific dataset not conforming to the `mlwp-data-specs` contract. \n", + "Since you know your dataset best, the `load_and_validate_dataset` function is compatible with your own loader.\n", + "\n", + "You define your own loader by implementing the `load_dataset()` function\n", + "\n", + "The final result of your loader should be an `xarray.Dataset` with a Trait on each of the 3 axes and the correct dimensions and coordinates.\n", + "\n", + "For more information see [`mlwp-data-specs`](https://github.com/mlwp-tools/mlwp-data-specs)\n", + "\n", + "You can use your own loader by pointing to the `.py` file " + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "8191bb97", + "metadata": {}, + "outputs": [], + "source": [ + "DS_SYNOP = \"s3://mxalign/mlwp-sample-datasets/custom/synop_20200201-20200207.nc\"" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "26a7cbb2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    <xarray.Dataset> Size: 5MB\n",
    +       "Dimensions:       (code: 1879, valid_time: 145)\n",
    +       "Coordinates:\n",
    +       "  * code          (code) int64 15kB 215734 215735 215736 ... 1020486 1595975\n",
    +       "    wigos_id      (code) <U15 113kB '0-20000-0-13611' ... '0-20000-0-16204'\n",
    +       "    wmo_code      (code) float64 15kB 1.361e+04 1.362e+04 ... 3.023e+03 1.62e+04\n",
    +       "    station_name  (code) <U40 301kB 'DURRES' 'GJIROKASTRA' ... 'RADICOFANI'\n",
    +       "    country_code  (code) <U2 15kB 'AL' 'AL' 'AL' 'AL' ... 'GB' 'GB' 'GB' 'IT'\n",
    +       "    latitude      (code) float64 15kB 41.3 40.08 40.6 42.03 ... 57.12 57.33 42.9\n",
    +       "    longitude     (code) float64 15kB 19.45 20.15 20.77 ... -3.633 -7.367 11.77\n",
    +       "    altitude      (code) float64 15kB 15.0 193.0 889.0 ... 1.245e+03 10.0 816.0\n",
    +       "    city_name     (code) <U40 301kB 'DURRES' 'GJIROKASTRA' ... 'RADICOFANI'\n",
    +       "  * valid_time    (valid_time) datetime64[ns] 1kB 2020-02-01 ... 2020-02-07\n",
    +       "Data variables:\n",
    +       "    10si          (code, valid_time) float64 2MB 2.0 nan nan 2.0 ... nan nan nan\n",
    +       "    2t            (code, valid_time) float64 2MB 10.0 nan nan ... nan nan nan
    " + ], + "text/plain": [ + " Size: 5MB\n", + "Dimensions: (code: 1879, valid_time: 145)\n", + "Coordinates:\n", + " * code (code) int64 15kB 215734 215735 215736 ... 1020486 1595975\n", + " wigos_id (code) }\u001b[0m\n", + "\u001b[32m2026-07-08 08:14:50.255\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_coordinate_attrs with {'section': 'Time Coordinate', 'requirement': \"Metadata for coordinate 'valid_time'\", 'coord': 'valid_time', 'required_attrs': {'standard_name': {'time'}}}\u001b[0m\n", + "\u001b[32m2026-07-08 08:14:50.256\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_dim_variants with {'axis': 'space', 'variants': [{'point_index'}]}\u001b[0m\n", + "\u001b[32m2026-07-08 08:14:50.256\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_required_coords with {'axis': 'space', 'required_coords': {'latitude', 'longitude'}}\u001b[0m\n", + "\u001b[32m2026-07-08 08:14:50.256\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_space_coordinate_metadata with {'trait': }\u001b[0m\n", + "\u001b[32m2026-07-08 08:14:50.257\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_coordinate_attrs with {'section': 'Spatial Coordinate', 'requirement': \"Metadata for coordinate 'longitude'\", 'coord': 'longitude', 'required_attrs': {'standard_name': {'longitude'}, 'units': {'degrees_east'}}}\u001b[0m\n", + "\u001b[32m2026-07-08 08:14:50.257\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_coordinate_attrs with {'section': 'Spatial Coordinate', 'requirement': \"Metadata for coordinate 'latitude'\", 'coord': 'latitude', 'required_attrs': {'standard_name': {'latitude'}, 'units': {'degrees_north'}}}\u001b[0m\n", + "\u001b[32m2026-07-08 08:14:50.258\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_dim_variants with {'axis': 'uncertainty', 'variants': []}\u001b[0m\n", + "\u001b[32m2026-07-08 08:14:50.258\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_required_coords with {'axis': 'uncertainty', 'required_coords': set()}\u001b[0m\n", + "\u001b[32m2026-07-08 08:14:50.258\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_uncertainty_coordinate_metadata with {'trait': }\u001b[0m\n" + ] + }, + { + "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    <xarray.Dataset> Size: 5MB\n",
    +       "Dimensions:       (point_index: 1879, valid_time: 145)\n",
    +       "Coordinates:\n",
    +       "  * code          (point_index) int64 15kB 215734 215735 ... 1020486 1595975\n",
    +       "    wigos_id      (point_index) <U15 113kB dask.array<chunksize=(1879,), meta=np.ndarray>\n",
    +       "    wmo_code      (point_index) float64 15kB dask.array<chunksize=(1879,), meta=np.ndarray>\n",
    +       "    station_name  (point_index) <U40 301kB dask.array<chunksize=(1879,), meta=np.ndarray>\n",
    +       "    country_code  (point_index) <U2 15kB dask.array<chunksize=(1879,), meta=np.ndarray>\n",
    +       "    latitude      (point_index) float64 15kB dask.array<chunksize=(1879,), meta=np.ndarray>\n",
    +       "    longitude     (point_index) float64 15kB dask.array<chunksize=(1879,), meta=np.ndarray>\n",
    +       "    altitude      (point_index) float64 15kB dask.array<chunksize=(1879,), meta=np.ndarray>\n",
    +       "    city_name     (point_index) <U40 301kB dask.array<chunksize=(1879,), meta=np.ndarray>\n",
    +       "  * valid_time    (valid_time) datetime64[ns] 1kB 2020-02-01 ... 2020-02-07\n",
    +       "Dimensions without coordinates: point_index\n",
    +       "Data variables:\n",
    +       "    10si          (point_index, valid_time) float64 2MB dask.array<chunksize=(1879, 145), meta=np.ndarray>\n",
    +       "    2t            (point_index, valid_time) float64 2MB dask.array<chunksize=(1879, 145), meta=np.ndarray>\n",
    +       "Attributes:\n",
    +       "    mlwp_time_trait:         observation\n",
    +       "    mlwp_space_trait:        point\n",
    +       "    mlwp_uncertainty_trait:  deterministic
    " + ], + "text/plain": [ + " Size: 5MB\n", + "Dimensions: (point_index: 1879, valid_time: 145)\n", + "Coordinates:\n", + " * code (point_index) int64 15kB 215734 215735 ... 1020486 1595975\n", + " wigos_id (point_index) \n", + " wmo_code (point_index) float64 15kB dask.array\n", + " station_name (point_index) \n", + " country_code (point_index) \n", + " latitude (point_index) float64 15kB dask.array\n", + " longitude (point_index) float64 15kB dask.array\n", + " altitude (point_index) float64 15kB dask.array\n", + " city_name (point_index) \n", + " * valid_time (valid_time) datetime64[ns] 1kB 2020-02-01 ... 2020-02-07\n", + "Dimensions without coordinates: point_index\n", + "Data variables:\n", + " 10si (point_index, valid_time) float64 2MB dask.array\n", + " 2t (point_index, valid_time) float64 2MB dask.array\n", + "Attributes:\n", + " mlwp_time_trait: observation\n", + " mlwp_space_trait: point\n", + " mlwp_uncertainty_trait: deterministic" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ds_synop = load_and_validate_dataset(DS_SYNOP, loader=\"myloader.py\")\n", + "ds_synop" + ] + }, + { + "cell_type": "markdown", + "id": "34462b8a", + "metadata": {}, + "source": [ + "## Alignment\n", + "Alignment is space and time can now be automatically inferred from the dataset themselves" + ] + }, + { + "cell_type": "markdown", + "id": "50954bb3", + "metadata": {}, + "source": [ + "### Space" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "9ad7c741", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[32m2026-07-08 08:15:44.694\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_dim_variants with {'axis': 'space', 'variants': [{'point_index'}]}\u001b[0m\n", + "\u001b[32m2026-07-08 08:15:44.695\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_required_coords with {'axis': 'space', 'required_coords': {'latitude', 'longitude'}}\u001b[0m\n", + "\u001b[32m2026-07-08 08:15:44.696\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_space_coordinate_metadata with {'trait': }\u001b[0m\n", + "\u001b[32m2026-07-08 08:15:44.696\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_coordinate_attrs with {'section': 'Spatial Coordinate', 'requirement': \"Metadata for coordinate 'longitude'\", 'coord': 'longitude', 'required_attrs': {'standard_name': {'longitude'}, 'units': {'degrees_east'}}}\u001b[0m\n", + "\u001b[32m2026-07-08 08:15:44.696\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_coordinate_attrs with {'section': 'Spatial Coordinate', 'requirement': \"Metadata for coordinate 'latitude'\", 'coord': 'latitude', 'required_attrs': {'standard_name': {'latitude'}, 'units': {'degrees_north'}}}\u001b[0m\n" + ] + }, + { + "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    <xarray.Dataset> Size: 2MB\n",
    +       "Dimensions:         (reference_time: 2, lead_time: 25, point_index: 1879)\n",
    +       "Coordinates:\n",
    +       "  * reference_time  (reference_time) datetime64[ns] 16B 2020-02-01 2020-02-02\n",
    +       "  * lead_time       (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 da...\n",
    +       "    valid_time      (reference_time, lead_time) datetime64[ns] 400B 2020-02-0...\n",
    +       "    latitude        (point_index) float64 15kB 41.3 40.08 40.6 ... 57.33 42.9\n",
    +       "    longitude       (point_index) float64 15kB 19.45 20.15 ... -7.367 11.77\n",
    +       "    xc              (point_index) float64 15kB 9.633e+05 1.044e+06 ... 3.091e+05\n",
    +       "    yc              (point_index) float64 15kB -8.971e+05 ... -7.841e+05\n",
    +       "Dimensions without coordinates: point_index\n",
    +       "Data variables:\n",
    +       "    10u             (reference_time, lead_time, point_index) float64 752kB dask.array<chunksize=(1, 5, 1879), meta=np.ndarray>\n",
    +       "    2t              (reference_time, lead_time, point_index) float64 752kB dask.array<chunksize=(1, 5, 1879), meta=np.ndarray>\n",
    +       "Attributes:\n",
    +       "    mlwp_time_trait:         forecast\n",
    +       "    mlwp_space_trait:        point\n",
    +       "    mlwp_uncertainty_trait:  deterministic\n",
    +       "    crs:                     +proj=lcc +ellps=WGS84 +a=6371229.0 +b=6371229.0...\n",
    +       "    grid_mapping:            {'nx': 1069, 'ny': 1069, 'lon_ll': -17.4859, 'la...
    " + ], + "text/plain": [ + " Size: 2MB\n", + "Dimensions: (reference_time: 2, lead_time: 25, point_index: 1879)\n", + "Coordinates:\n", + " * reference_time (reference_time) datetime64[ns] 16B 2020-02-01 2020-02-02\n", + " * lead_time (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 da...\n", + " valid_time (reference_time, lead_time) datetime64[ns] 400B 2020-02-0...\n", + " latitude (point_index) float64 15kB 41.3 40.08 40.6 ... 57.33 42.9\n", + " longitude (point_index) float64 15kB 19.45 20.15 ... -7.367 11.77\n", + " xc (point_index) float64 15kB 9.633e+05 1.044e+06 ... 3.091e+05\n", + " yc (point_index) float64 15kB -8.971e+05 ... -7.841e+05\n", + "Dimensions without coordinates: point_index\n", + "Data variables:\n", + " 10u (reference_time, lead_time, point_index) float64 752kB dask.array\n", + " 2t (reference_time, lead_time, point_index) float64 752kB dask.array\n", + "Attributes:\n", + " mlwp_time_trait: forecast\n", + " mlwp_space_trait: point\n", + " mlwp_uncertainty_trait: deterministic\n", + " crs: +proj=lcc +ellps=WGS84 +a=6371229.0 +b=6371229.0...\n", + " grid_mapping: {'nx': 1069, 'ny': 1069, 'lon_ll': -17.4859, 'la..." + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Align a Grid with Point observations in space:\n", + "ds_fcst_aligned = ds_fcst.mx.align_space_with(ds_synop)\n", + "# This is quick because the interpolation itself is not yet executed, but rather lazely evaluated\n", + "ds_fcst_aligned" + ] + }, + { + "cell_type": "markdown", + "id": "e0c34060", + "metadata": {}, + "source": [ + "As you can see, the `ds_fcst` dataset was transformed from `grid` to `point` along the *space_trait*. " + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "4f1c75b4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
    " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "t2m_fcst = ds_fcst_aligned.isel(reference_time=0, lead_time=10)[\"2t\"].compute()\n", + "\n", + "ax = plt.subplot(1, 1, 1, projection=ds_fcst_aligned.attrs[\"crs\"])\n", + "im = ax.scatter(\n", + " x=t2m_fcst[\"xc\"], y=t2m_fcst[\"yc\"], c=t2m_fcst.values, cmap=\"Spectral_r\", s=2\n", + ")\n", + "ax.coastlines()\n", + "\n", + "plt.colorbar(im)" + ] + }, + { + "cell_type": "markdown", + "id": "de39ca6e", + "metadata": {}, + "source": [ + "If you want to interpolate more than 1 dataset to a target dataset you can use the main `mxalign.interpolate` function. " + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "a9599868", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['xarray', 'delaunay']" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "mx.available_interpolations()" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "2f2e485f", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[32m2026-07-08 08:18:40.654\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_dim_variants with {'axis': 'space', 'variants': [{'point_index'}]}\u001b[0m\n", + "\u001b[32m2026-07-08 08:18:40.655\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_required_coords with {'axis': 'space', 'required_coords': {'latitude', 'longitude'}}\u001b[0m\n", + "\u001b[32m2026-07-08 08:18:40.655\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_space_coordinate_metadata with {'trait': }\u001b[0m\n", + "\u001b[32m2026-07-08 08:18:40.656\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_coordinate_attrs with {'section': 'Spatial Coordinate', 'requirement': \"Metadata for coordinate 'longitude'\", 'coord': 'longitude', 'required_attrs': {'standard_name': {'longitude'}, 'units': {'degrees_east'}}}\u001b[0m\n", + "\u001b[32m2026-07-08 08:18:40.656\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_coordinate_attrs with {'section': 'Spatial Coordinate', 'requirement': \"Metadata for coordinate 'latitude'\", 'coord': 'latitude', 'required_attrs': {'standard_name': {'latitude'}, 'units': {'degrees_north'}}}\u001b[0m\n" + ] + }, + { + "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    <xarray.Dataset> Size: 2MB\n",
    +       "Dimensions:         (reference_time: 2, lead_time: 25, point_index: 1879)\n",
    +       "Coordinates:\n",
    +       "  * reference_time  (reference_time) datetime64[ns] 16B 2020-02-01 2020-02-02\n",
    +       "  * lead_time       (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 da...\n",
    +       "    valid_time      (reference_time, lead_time) datetime64[ns] 400B 2020-02-0...\n",
    +       "    latitude        (point_index) float64 15kB 41.3 40.08 40.6 ... 57.33 42.9\n",
    +       "    longitude       (point_index) float64 15kB 19.45 20.15 ... -7.367 11.77\n",
    +       "    xc              (point_index) float64 15kB 9.633e+05 1.044e+06 ... 3.091e+05\n",
    +       "    yc              (point_index) float64 15kB -8.971e+05 ... -7.841e+05\n",
    +       "Dimensions without coordinates: point_index\n",
    +       "Data variables:\n",
    +       "    10u             (reference_time, lead_time, point_index) float64 752kB dask.array<chunksize=(1, 5, 1879), meta=np.ndarray>\n",
    +       "    2t              (reference_time, lead_time, point_index) float64 752kB dask.array<chunksize=(1, 5, 1879), meta=np.ndarray>\n",
    +       "Attributes:\n",
    +       "    mlwp_time_trait:         forecast\n",
    +       "    mlwp_space_trait:        point\n",
    +       "    mlwp_uncertainty_trait:  deterministic\n",
    +       "    crs:                     +proj=lcc +ellps=WGS84 +a=6371229.0 +b=6371229.0...\n",
    +       "    grid_mapping:            {'nx': 1069, 'ny': 1069, 'lon_ll': -17.4859, 'la...
    " + ], + "text/plain": [ + " Size: 2MB\n", + "Dimensions: (reference_time: 2, lead_time: 25, point_index: 1879)\n", + "Coordinates:\n", + " * reference_time (reference_time) datetime64[ns] 16B 2020-02-01 2020-02-02\n", + " * lead_time (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 da...\n", + " valid_time (reference_time, lead_time) datetime64[ns] 400B 2020-02-0...\n", + " latitude (point_index) float64 15kB 41.3 40.08 40.6 ... 57.33 42.9\n", + " longitude (point_index) float64 15kB 19.45 20.15 ... -7.367 11.77\n", + " xc (point_index) float64 15kB 9.633e+05 1.044e+06 ... 3.091e+05\n", + " yc (point_index) float64 15kB -8.971e+05 ... -7.841e+05\n", + "Dimensions without coordinates: point_index\n", + "Data variables:\n", + " 10u (reference_time, lead_time, point_index) float64 752kB dask.array\n", + " 2t (reference_time, lead_time, point_index) float64 752kB dask.array\n", + "Attributes:\n", + " mlwp_time_trait: forecast\n", + " mlwp_space_trait: point\n", + " mlwp_uncertainty_trait: deterministic\n", + " crs: +proj=lcc +ellps=WGS84 +a=6371229.0 +b=6371229.0...\n", + " grid_mapping: {'nx': 1069, 'ny': 1069, 'lon_ll': -17.4859, 'la..." + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "mx.interpolate(\n", + " source_datasets=[\n", + " ds_fcst,\n", + " ],\n", + " target_dataset=ds_synop,\n", + " method=\"xarray\",\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "79560e90", + "metadata": {}, + "source": [ + "> Below code will fail on `NotImplementedError`, this is for illustration purposes" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "5b304c8e", + "metadata": {}, + "outputs": [ + { + "ename": "NotImplementedError", + "evalue": "Delaunay interpolation currently only supports stacked grids", + "output_type": "error", + "traceback": [ + "\u001b[31m---------------------------------------------------------------------------\u001b[39m", + "\u001b[31mNotImplementedError\u001b[39m Traceback (most recent call last)", + "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[24]\u001b[39m\u001b[32m, line 2\u001b[39m\n\u001b[32m 1\u001b[39m \u001b[38;5;66;03m# The default interpolation is xarray-based, now lets try the Delaunay interpolation\u001b[39;00m\n\u001b[32m----> \u001b[39m\u001b[32m2\u001b[39m ds_fcst_aligned2 = \u001b[43mds_fcst\u001b[49m\u001b[43m.\u001b[49m\u001b[43mmx\u001b[49m\u001b[43m.\u001b[49m\u001b[43malign_space_with\u001b[49m\u001b[43m(\u001b[49m\u001b[43mds_synop\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmethod\u001b[49m\u001b[43m=\u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mdelaunay\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\n", + "\u001b[36mFile \u001b[39m\u001b[32m/etc/ecmwf/nfs/dh1_perm_b/cu0k/mxalign/src/mxalign/accessors/mx.py:265\u001b[39m, in \u001b[36mMxAccessor.align_space_with\u001b[39m\u001b[34m(self, ds2, **kwargs)\u001b[39m\n\u001b[32m 263\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m _space.align_grid_grid(\u001b[38;5;28mself\u001b[39m._ds, ds2, **kwargs)\n\u001b[32m 264\u001b[39m \u001b[38;5;28;01melif\u001b[39;00m ds2.mx.is_point():\n\u001b[32m--> \u001b[39m\u001b[32m265\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_space\u001b[49m\u001b[43m.\u001b[49m\u001b[43malign_grid_point\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_ds\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mds2\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 266\u001b[39m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28mself\u001b[39m.is_point():\n\u001b[32m 267\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m ds2.mx.is_point():\n", + "\u001b[36mFile \u001b[39m\u001b[32m/etc/ecmwf/nfs/dh1_perm_b/cu0k/mxalign/src/mxalign/accessors/space.py:35\u001b[39m, in \u001b[36malign_grid_point\u001b[39m\u001b[34m(ds1, ds2, method, **kwargs)\u001b[39m\n\u001b[32m 32\u001b[39m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01m.\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01minterpolations\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01mregistry\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m get_interpolation\n\u001b[32m 34\u001b[39m interp_cls = get_interpolation(method)\n\u001b[32m---> \u001b[39m\u001b[32m35\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43minterp_cls\u001b[49m\u001b[43m(\u001b[49m\u001b[43mds2\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\u001b[43m.\u001b[49m\u001b[43minterpolate\u001b[49m\u001b[43m(\u001b[49m\u001b[43mds1\u001b[49m\u001b[43m.\u001b[49m\u001b[43mcopy\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n", + "\u001b[36mFile \u001b[39m\u001b[32m/etc/ecmwf/nfs/dh1_perm_b/cu0k/mxalign/src/mxalign/interpolations/base.py:27\u001b[39m, in \u001b[36mBaseInterpolator.interpolate\u001b[39m\u001b[34m(self, source_dataset)\u001b[39m\n\u001b[32m 23\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34minterpolate\u001b[39m(\n\u001b[32m 24\u001b[39m \u001b[38;5;28mself\u001b[39m, source_dataset: xr.Dataset | xr.DataArray\n\u001b[32m 25\u001b[39m ) -> xr.Dataset | xr.DataArray:\n\u001b[32m 26\u001b[39m \u001b[38;5;250m \u001b[39m\u001b[33;03m\"\"\"Run interpolation and set the output space trait to ``target_space``.\"\"\"\u001b[39;00m\n\u001b[32m---> \u001b[39m\u001b[32m27\u001b[39m ds_out = \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_interpolate\u001b[49m\u001b[43m(\u001b[49m\u001b[43msource_dataset\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 28\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m update_space_trait(ds_out, \u001b[38;5;28mself\u001b[39m.target_space)\n", + "\u001b[36mFile \u001b[39m\u001b[32m/etc/ecmwf/nfs/dh1_perm_b/cu0k/mxalign/src/mxalign/interpolations/delaunay.py:51\u001b[39m, in \u001b[36mDelaunayInterpolator._interpolate\u001b[39m\u001b[34m(self, source_dataset)\u001b[39m\n\u001b[32m 49\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34m_interpolate\u001b[39m(\u001b[38;5;28mself\u001b[39m, source_dataset: xr.Dataset) -> xr.Dataset:\n\u001b[32m 50\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[33m\"\u001b[39m\u001b[33mgrid_index\u001b[39m\u001b[33m\"\u001b[39m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m source_dataset.dims:\n\u001b[32m---> \u001b[39m\u001b[32m51\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mNotImplementedError\u001b[39;00m(\n\u001b[32m 52\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mDelaunay interpolation currently only supports stacked grids\u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 53\u001b[39m )\n\u001b[32m 55\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[33m\"\u001b[39m\u001b[33mlatitude\u001b[39m\u001b[33m\"\u001b[39m \u001b[38;5;129;01min\u001b[39;00m source_dataset.dims:\n\u001b[32m 56\u001b[39m lon_grid, lat_grid = np.meshgrid(\n\u001b[32m 57\u001b[39m source_dataset[\u001b[33m\"\u001b[39m\u001b[33mlongitude\u001b[39m\u001b[33m\"\u001b[39m].values, source_dataset[\u001b[33m\"\u001b[39m\u001b[33mlatitude\u001b[39m\u001b[33m\"\u001b[39m].values\n\u001b[32m 58\u001b[39m )\n", + "\u001b[31mNotImplementedError\u001b[39m: Delaunay interpolation currently only supports stacked grids" + ] + } + ], + "source": [ + "# The default interpolation is xarray-based, now lets try the Delaunay interpolation\n", + "ds_fcst_aligned2 = ds_fcst.mx.align_space_with(ds_synop, method=\"delaunay\")" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "b532541c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    <xarray.Dataset> Size: 951MB\n",
    +       "Dimensions:         (reference_time: 2, lead_time: 25, grid_index: 1142761)\n",
    +       "Coordinates:\n",
    +       "  * reference_time  (reference_time) datetime64[ns] 16B 2020-02-01 2020-02-02\n",
    +       "  * lead_time       (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 da...\n",
    +       "    valid_time      (reference_time, lead_time) datetime64[ns] 400B 2020-02-0...\n",
    +       "    latitude        (grid_index) float64 9MB 20.29 20.31 20.32 ... 63.81 63.77\n",
    +       "    longitude       (grid_index) float64 9MB -17.49 -17.44 -17.4 ... 74.04 74.11\n",
    +       "    yc              (grid_index) float64 9MB -2.937e+06 -2.937e+06 ... 2.937e+06\n",
    +       "    xc              (grid_index) float64 9MB -2.937e+06 -2.931e+06 ... 2.937e+06\n",
    +       "Dimensions without coordinates: grid_index\n",
    +       "Data variables:\n",
    +       "    10u             (reference_time, lead_time, grid_index) float64 457MB dask.array<chunksize=(1, 13, 570846), meta=np.ndarray>\n",
    +       "    2t              (reference_time, lead_time, grid_index) float64 457MB dask.array<chunksize=(1, 13, 570846), meta=np.ndarray>\n",
    +       "Attributes:\n",
    +       "    mlwp_time_trait:         forecast\n",
    +       "    mlwp_space_trait:        grid\n",
    +       "    mlwp_uncertainty_trait:  deterministic\n",
    +       "    crs:                     +proj=lcc +ellps=WGS84 +a=6371229.0 +b=6371229.0...\n",
    +       "    grid_mapping:            {'nx': 1069, 'ny': 1069, 'lon_ll': -17.4859, 'la...
    " + ], + "text/plain": [ + " Size: 951MB\n", + "Dimensions: (reference_time: 2, lead_time: 25, grid_index: 1142761)\n", + "Coordinates:\n", + " * reference_time (reference_time) datetime64[ns] 16B 2020-02-01 2020-02-02\n", + " * lead_time (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 da...\n", + " valid_time (reference_time, lead_time) datetime64[ns] 400B 2020-02-0...\n", + " latitude (grid_index) float64 9MB 20.29 20.31 20.32 ... 63.81 63.77\n", + " longitude (grid_index) float64 9MB -17.49 -17.44 -17.4 ... 74.04 74.11\n", + " yc (grid_index) float64 9MB -2.937e+06 -2.937e+06 ... 2.937e+06\n", + " xc (grid_index) float64 9MB -2.937e+06 -2.931e+06 ... 2.937e+06\n", + "Dimensions without coordinates: grid_index\n", + "Data variables:\n", + " 10u (reference_time, lead_time, grid_index) float64 457MB dask.array\n", + " 2t (reference_time, lead_time, grid_index) float64 457MB dask.array\n", + "Attributes:\n", + " mlwp_time_trait: forecast\n", + " mlwp_space_trait: grid\n", + " mlwp_uncertainty_trait: deterministic\n", + " crs: +proj=lcc +ellps=WGS84 +a=6371229.0 +b=6371229.0...\n", + " grid_mapping: {'nx': 1069, 'ny': 1069, 'lon_ll': -17.4859, 'la..." + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Delaunay interpolation currently only works with stacked datasets.\n", + "ds_fcst = ds_fcst.mx.stack()\n", + "ds_fcst" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "abde9b4c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Calculating interpolation-weight matrix\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Delaunay interpolation: rechunking grid_index from 3 chunks to 1 (required for the sparse weight matmul).\n", + "Delaunay interpolation: rechunking grid_index from 3 chunks to 1 (required for the sparse weight matmul).\n", + "\u001b[32m2026-07-08 08:20:05.430\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_dim_variants with {'axis': 'space', 'variants': [{'point_index'}]}\u001b[0m\n", + "\u001b[32m2026-07-08 08:20:05.430\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_required_coords with {'axis': 'space', 'required_coords': {'latitude', 'longitude'}}\u001b[0m\n", + "\u001b[32m2026-07-08 08:20:05.431\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_space_coordinate_metadata with {'trait': }\u001b[0m\n", + "\u001b[32m2026-07-08 08:20:05.431\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_coordinate_attrs with {'section': 'Spatial Coordinate', 'requirement': \"Metadata for coordinate 'longitude'\", 'coord': 'longitude', 'required_attrs': {'standard_name': {'longitude'}, 'units': {'degrees_east'}}}\u001b[0m\n", + "\u001b[32m2026-07-08 08:20:05.431\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mmlwp_data_specs.specs.reporting\u001b[0m:\u001b[36mwrapper\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mApplying check_coordinate_attrs with {'section': 'Spatial Coordinate', 'requirement': \"Metadata for coordinate 'latitude'\", 'coord': 'latitude', 'required_attrs': {'standard_name': {'latitude'}, 'units': {'degrees_north'}}}\u001b[0m\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Done\n" + ] + } + ], + "source": [ + "# Now try the deleanay interpolation again\n", + "ds_fcst_aligned2 = ds_fcst.mx.align_space_with(ds_synop, method=\"delaunay\")" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "c4a38360", + "metadata": {}, + "outputs": [], + "source": [ + "result1 = ds_fcst_aligned.compute()\n", + "result2 = ds_fcst_aligned2.compute()" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "c9c75b67", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    <xarray.DataArray '2t' ()> Size: 8B\n",
    +       "array(0.03928614)\n",
    +       "Attributes:\n",
    +       "    fill_value:  nan
    " ], "text/plain": [ - " Size: 42MB\n", - "Dimensions: (reference_time: 3, lead_time: 25, point_index: 1706)\n", - "Coordinates:\n", - " * reference_time (reference_time) datetime64[ns] 24B 2020-02-01 ... 2020-...\n", - " * lead_time (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 d...\n", - " code (point_index) int64 14kB 1203 1205 1209 ... 26966 26976\n", - " station_name (point_index) \n", - " 10v (reference_time, lead_time, point_index) float32 512kB dask.array\n", - " 2d (reference_time, lead_time, point_index) float32 512kB dask.array\n", - " 2t (reference_time, lead_time, point_index) float32 512kB dask.array\n", - " cos_julian_day (reference_time, lead_time, point_index) float32 512kB dask.array\n", - " cos_latitude (reference_time, lead_time, point_index) float32 512kB dask.array\n", - " ... ...\n", - " z_700 (reference_time, lead_time, point_index) float32 512kB dask.array\n", - " z_850 (reference_time, lead_time, point_index) float32 512kB dask.array\n", - " z_925 (reference_time, lead_time, point_index) float32 512kB dask.array\n", - " z (reference_time, lead_time, point_index) float32 512kB dask.array\n", - " tp (reference_time, lead_time, point_index) float32 512kB dask.array\n", - " 10si (reference_time, lead_time, point_index) float64 1MB 6.2...\n", + " Size: 8B\n", + "array(0.03928614)\n", "Attributes:\n", - " properties: {'space': 'point', 'time': 'forecast', 'uncertainty': 'deter..." + " fill_value: nan" ] }, - "execution_count": 45, + "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "ds_fcst_transformed = mx.transform(\n", - " \"kelvin_to_celcius\", ds_fcst_aligned2, variables=[\"2t\", \"2d\"]\n", - ")\n", - "\n", - "ds_fcst_transformed = mx.transform(\n", - " \"external\",\n", - " ds_fcst_transformed,\n", - " \"earthkit.meteo.wind.speed\",\n", - " inputs={\"u\": \"10u\", \"v\": \"10v\"},\n", - " output=\"10si\",\n", + "# Difference in interpolation methods\n", + "t2m_difference = (result2 - result1)[\"2t\"]\n", + "np.abs(t2m_difference).mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "9831d63a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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BCBq1KghvF5vkuPWrVsnANGkSRN736uvvioAcfDgwVs55FThVtiM0D1mlK4sFpWrdt3bjNKV72j7djnSvHE/e/asKFiwoChQoIDYvXu3mDZtmvjnn39SdUwfffSR/YWWNWtWMWLECFG1alUBiLFjx4qBAweKqKgokTVr1ogvw3bt2omdO3dGXOvs2bMCEMOGDYvYb5qmGDlypPB4POLee+8Vy5cvv2nzOXbs2B35txHOqVOnxPbt21N7GHc0CQkJInv27AIQRYsWFYDo0KGD8Hq9In369AIQefPmFR6PRwCib9++Qghh/33HxsZGXG/IkCECECNGjLD3TZo0ScyfP18kJCTc0rldimEYYs6cOcLhcIj3338/4r25c+eKqKgoUaFCBfHvv//a+/fv3y9cLpf47LPPbvVwbzm30rjPLFdFLK5Y/bq3meWq3LH27Uqk+VK4efPmcfDgQXr06EGxYsVo2bJlqtdSV6hQAYDKlSuTL18+evfuDcCrr77Ko48+yjvvvMO2bdt44YUX7HMaNmxIhgwZmDhxItu3b7dbo65duxaAH3/8EbDaTTZu3BhVVXnuuefo1q0bmzZtok6dOjdtPrly5brjw1nZsmWjZMmSqT2MO5L4+Hj+97//kStXLk6dOgXAv//+C0DhwoVZv3693SmtXbt29pJYKL/j3nvvBaxkzyFDhtCtWzdq1KhB3759+d///kevXr0AKyu9TZs2NG7cmLx581KrVi02bNhwS+caQlVVHn74YZ577jk++OADLly4AFj//x555BEefPBBVq5cGdF5slChQtSuXZsFCxakypjTKlZJW0pq3dNmQl2aX3P//PPPefHFF9m+fXuqfXlPnz4dp9Npl/t4vV4KFChAhw4dGDp0qJ0wlxxfffWVbfwvpV27dsydO9fO1M2YMSMXLlwgS5YsNG7cmK5duyZZD5RIbjQvvvhiRD5IOH/99Rc+n48HH3wQgD///BOXy8W5c+d46KGHAMuojxgxArfbzdtvv22f27ZtWx577DGKFi1KTEwMhw4dSlIb/vTTT/P1118nue/333/PwYMHyZQpE9WqVaNatWo3pcvanj17uPfee5kxYwYtWrRg8uTJtGnThmPHjtl5M+GMGTOGbt268c8//6S6k3EzuZVr7rMqViW9dv254XGGTvONa+9I+3Yl0rxxL1KkCLly5WLVqlWpNoYCBQpw+PBhJk6cSOvWrdm3bx9FixZNNhnnUkzTZObMmbRs2RKAYsWKsWfPHgBq1qxJ8eLF6datGxs2bODixYsUL16chg0b2g1ZJJKbzfbt26lcubKdER+iVatWTJkyhZUrV3LfffcBVtLcpVKsIeLi4vjhhx/Yt28fn3zyCaZpJjkmd+7cHDt2LGJfrly56N27N1u3bmXnzp2YpsmWLVtInz69VS0TH4/T6aRWrVo0btyYxo0bU6lSJdQUZFiHEEJQtGhRmjVrxhdffMFbb73F6NGjk4wxhM/nI2PGjLz99tu88cYbKb7/7cqtNO5zqlRLsXFvum7NHWnfrkSaL4WrUaMG8+bN48KFC1cs4bqZ/N///R+dO3embdu2dO3alfz58wOJrU+vRCj89/jjj5MhQwa+/vprTNPE5/NFfEneTuVCkruL4sWL06tXLz777DN7n6IojB49GkVRbPGiq5VRpk+f3m7/u2nTJubPnw9A6dKlWbhwIf/++y9FixZl3759PPHEE5w6dYpAIMDx48cZNGgQJUqUoH79+vj9fp577jl69uyJYRhs2bKFP//8k4ULF/LBBx/w5ptvkjNnTnr16sVLL72Uoi90RVFo0KABS5cuBeDUqVMYhsFPP/1EdHQ0devWjWgY83//938EAgFq1Khx3feURKIoKewKZ8qw/B35ZPPFF1/w/PPPs2PHDkqUKJEqYzhx4oQdolMUhQ4dOtCoUSOpzCa549i7dy9FihTh7NmzbNu2jaNHj9KtWzd7Tb1JkybMmzeP/Pnz202ZLl68yP/+9z86d+5MvXr1ruk+8fHxLFiwgPLly0esW4cwDANVVfnjjz/sEsajR4+SO3fuK17X7/ezatUqpkyZwtdff0369Olp06YNBQoUoEGDBlSoUIGffvqJpk2bXvVaIUaNGkWfPn24cOECe/bs4ZFHHmH//v2AVav/22+/ER0dzQcffMDgwYP58MMPef3116/p2ncqt9Jzn1u1OukdKfDcdZ2H166+I+3blUiTxl0IQcDvxzAM7ilalGPHjuH1elNNwMY0TerVq8e6dev4559/rsljl0huJxYvXkz//v1ZvXo1zZo1Y+PGjcTExNC6dWsmT57MPffcYysShpqh7N69m2JBZcibSUgJLmTwr5WYmBgGDRrE999/n+z7o0ePpkePHle95saNG6lUqRIzZsygUaNGuN1uLly4wJYtW2jdujUJCQmYpsn58+d5/vnnGTZsWJqXwL6Vxn1+jZopNu6N/151x9i3ayVNZssL08Q0Tab8+qu99tWwYcObes/4+Hh+/vlnLn1WMk2TsWPHsnz5cqZPny4Nu+SO5Ouvv2b16tUAzJ49m6NHjwLgCH6p7t27l7Fjx1KgQAFWrFhBz549r9nzTSkrV67k1KlT/3kNPV++fHz33XccO3aMixcvsnjxYp599lkKFSpEvnz56NmzJ8WKFaN27doMHz78stepUKECZcqU4ZFHHiFjxoz079+fDBkyULt2bTZu3Ejnzp3p3LkzCxcuvCsM+60mRU1jgltaJM167j6vl+eee46x48YB0KJFC2bMmHHD7hEXF8e5c+fssp53332XQYMG8ddff1GrVi127dpFhw4d2LZtG/Hx8dSpU4fly5ffsPtLJLeSUFIoQNWqVdmyZQs+ny/imLx58xITE5Maw7spLFu2jIkTJ7J69WrWrVvHihUrqFWrVrLHHj16lAULFrBnzx7ee+89xowZQ5cuXW7tgG8jbqXnvqB2rRR77o3+WnnH2LdrJU167oqi4HK77fpYgBUrViT5MkoJQ4cOJX/+/EyYMAHA1kwfOXIkU6dOpXz58qxZs4bcuXMzbtw45s6de8PuLZHcSrZt22YbdrC0FUL/l1q3bs2mTZv4+eef+eijj1JriDeFBx54gBEjRrBq1SqqVatG27ZtOX78eLLH5smTh86dO/Puu+/Stm1bXn/99ctmzEtuLLfac1+2bBktWrQgb968KIrC9OnTr3rOkiVLqFy5Mm63m2LFijF27Njrm+x/IM1my6uqSrXq1Tl27BirV6/m0UcfpVChQjRs2JD8+fPTvHlzdF3HNE3q16//n69frlw5ADp27GiXoQH88MMP/PDDD9SqVYupU6festCkRHIzEEJQtmzZy77/xBNPUL58ecqXL38LR3Vr0TSNSZMmUa5cOSpVqsS0adOumO3++eefc++99/Ldd9/x5ptv3sKR3p2omoqqXb+fqv5HLbe4uDgqVKhAt27daNWq1VWP37dvH82aNaNnz578+OOPLFq0iB49epAnT56bqkOSJsPyybFu3Tpq166N3++P2J8uXTo70/e/IIQgd+7cdpmPx+OhWbNmduZtzZo15dqa5I7m2LFj/P7773Tq1Mne17RpU+bMmWP/7HQ68fl8d8Xf+qJFi2jYsCGtWrXi119/BawGUBs3bqRp06Z2EyiAWrVqUaJEiVviod2O3Mqw/KJ6dVIclm+w5E8OHToUMVa3233VJGxFUZg2bZqtQ5Icr7/+OrNnz2br1q32vnbt2nHu3LkkTbluJGkyLJ8cVapUsVWywpk6dep1XW/Lli12idumTZs4evQoU6ZMoU2bNtSqVeuu+LKTpF2WLFlCnjx5Igw7WKVd4Xz11Vd3zd96gwYN+OCDD5g/f74t2PPNN9/QqVMnhgwZEnFsjhw57Ad/yU0mpSH5YFi+QIECZM6c2d4++OCDGzK8lStXJknobty4MStXrrwh178caTYsnxw9e/Zk8+bNnDp1inHjf6Btm9bXpVK1dOlSmjVrRoUKFZg/f36yMpMSyZ2KECLZB2GAli1bEhsby9ChQ2ncuDE9evS4xaNLXapWrUpcXBwxMTEULVqUgQMHomkaFStWpHv37ixevJiSJUuiaRqrV68mNjb2jo123imoioKaAhEbNfhwmpznfiNIToo4V65cxMbGkpCQECFydCO5q4z7o48+yrjx49m0cSMtHnnkujwO74E9fNTnGQpkzsDS+XPJLA27JI3w888/kydPHvuLKEuWLNx7772sWbOG9OnTkzFjRjJnzsxnn33Gm2++eVkZ2bTMoUOHUBTFzqX58ssvGTZsGGA1H3ryySf58ssv7eNfe+01Ro0alRpDvWsINYC57vNN69xMmTKlqQexuyYsD9b6yLPPPMO+fftY+sfi/2Tcz549S506dahT70Hmb9tNrVxZMDelnl69RHIj2bBhA+3bt+exxx6zo1nnzp1jzZo1AIwfP56jR49SpEgRwDJkjhSsc96pbN26lXvuuYf06dMDlkzuAw88wMqVK9m3bx9ffPEF77//PmXKlLEfhiR3N7lz505SZXH8+HEyZcp007x2uMs8d0gUs2nevDlVqlQhe/bsjBw50v7SuhyHDh1ixYoVAJTJkZU+NcrgyJr9po9XIrkVvPXWWwCUKlXK1kkP0adPH1q0aJEaw7rt2Lp1K2XKlLF/Pn78OPfeey81a9a09/Xv35/+/funxvDuSlRNQU2BEI16k7Xla9WqFZGECvD7779fVjPhRnHXGffwHunr1q0DSLb7VDgLFy6kTZs25M+fnx/HjaWC5kfLmJn0lW7uL0ciudls27aN+vXr28lfFSpUoFSpUrz88svs3LmTOXPm8Pnnn9+QDmp3OidPnmTp0qW88847AJw/f55169bx1FNPpfLI7m5SqjL3XxvHXLx40e7MCVap28aNG4mOjqZgwYL079+fmJgYxo8fD1i5Xl9++SWvvfYa3bp1Y/HixUyaNInZs2df95ivhbvmf6wQAn9CHCv+/JNixYoxe/Zsfv/9dxISErjnnnuYPXu2XasewjRN3n33XRo1akT16tXZsmULD9RvQOa6D5Ohcu27Jkv4Wjh79iwjRoxg7ty56Lqe2sORXAOnTp2ibNmyEVndo0aN4oEHHuDJJ58kISGBEiVKSMMeZPDgwaiqaicRvv322zgcDh577LFUHpnkVrJ27VoqVapEpUqVAHj55ZepVKkSgwYNAiy1woMHD9rHFylSxLY3FSpU4NNPP+Xbb7+9qTXucBd57qYeQJgm7Z9sx8C33qZGjRqcPHmSffv2ER8fT/PmzcmRIwdHjhzB4XBgGAZdu3ZlwoQJvPXWWwwYMABN01J7GrcdcXFxzJgxg4kTJ/Lbb78B0KxZM2bNmpXKI5NcjYEDB172vXr16tm/W4klTjVixAi++OILoqOj+eyzzxg2bBiffvqpLUEtSR1uVELdtVKvXr0kPUTCSU7boF69emzYsOG/Di1F3DXGXQl6H0+2bcuAQW+RPbu1Xp45c2a7CcbJkycZPnw45cuX5/PPP2fu3Ln8/PPPtG3bNtXGfTszc+ZMHnnkkST7Z8+ezf79+ylcuPCtH5Tkmtm7d+9l34uLi6NTp0783//9H7lz505S3367EQgEmDdvHn/99RcJCQncd999tG7d+oZc+7fffuOZZ56hS5cu9O7dG7Bkpjt06MBLL710Q+4huX5UjRSuud/AwdxG3DXxNlVz4PSkI2+BAlStWtXeP2TIEKKiopg5cyYAr7zyCg899BCbN29mypQp0rAng67rfP/998ka9nz58pE+fXrefffdVBiZ5L/www8/0K9fP6KjowEiFNbAypD/+++/kyQD3Y588MEHPPLII3z44Yd8/vnndOnShQMHDtgS0z6fD9M0iY+PT9brEkJw+vRpDh8+jGmaCCH4559/6NOnDy1btqRp06aMHDkSRVG4cOEC+/fvp06dOnJpTnLbctd47gCqpgEaXbp0sdWBPv/8c7p27WqXKrz++uu0adOGSpUqyf+4ybBq1SpefPFF/v77b3vf8OHDef755wGoUaMGpUqV4quvvmL06NF3ZbnU7U7IkG3YsIEPP/zQ3n/69Gncbjc+n4+6devicDh4/fXXb3q75BtBnz598Hg8zJ49m2XLlhEfH0/hwoVtIZLwplElSpSgffv2FC5cmJiYGA4cOMC8efM4cOAAYNU7q6rKuXPnyJQpE0OHDuWFF16wvw+GDx+Ooig0adLk1k9UkgRFVVBSIGKTknNvZ+4abflwzp07R9asWe2fX3jhBb7//nuaNm3Kzz//LI36ZTBNkxw5cnDmzJmI/b/99htffvklv//+O9OnTyddunQ0atSIb7/9lu7duwOWQZGfa+pjGAa1atWy69fDqV27Nn/99RcAq1evvu1D8clx8uRJnn32WaZNmwZY3RpfeeUVXC4X7777Lvnz56d27drMmjWLixcvEh0dTb58+bjvvvto0KABHo+HLVu2IISgatWq3HfffXZNO0B8fDy5cuWiS5cufPHFF6k1zdueW6kt/3fbxmRwOa/7Ohf9AWpMnJ9m7FuIuyYsH06WLFnYsmULHTp0ACzvvWTJkgz97DNpgK6AqqoMHTrU/jn0Rfnnn38ybtw4Tp8+zaOPPmoLM4TWdLt160a2bNnYuHEjYHlRR44cueXjv9sxTZPWrVvbhj1LlixUrVqVadOm0bx5c9uwA4wZMya1hpkicuTIwdSpU5kxYwZFixbF7/ezatUqmjRpgtfrZf/+/fz888+cO3eO+Ph4Tp8+zebNmxk5ciRPPPEEzZs3p3///rzxxhs0atQowrADdrJtjhw5UmmGEsm1cVcad4CyZcvyww8/YBgGp06dYvny5eSS7VmvSqdOnfjqq694+OGHKV26NDExMQwZMoRq1apx4cIFfvjhB+6//34URaFdu3Zs3ryZMWPGcPbsWYYNG0b58uXJli0b+fPn5+uvv2bt2rVJ7tGnTx+KFClCu3btIsKpkpSxYMEC26N94IEH2LNnD2vWrOHkyZN2dUMoBH+nP+S2aNGClStX0rJlS/744w9q1apF165dGTduHF6vF03TrksdzOVy0a1bN/7v//6PX3755SaMXPJfudX93O8U7sqwvOTGsnnzZipUqABAjx49+Pbbb6latSqPPvooq1evZunSpZQrV44VK1aQKVMm+vfvz/Dhw+0qhZ49ezJw4ECmTZtGp06dyJQpE+XLl2fz5s3MnDmT5s2bp+b00gxly5Zl27ZtvPLKKwwZMgRFURBCkCdPHo4fP84999zDqlWrmDp1KtWqVaNy5cqpPeQUs2HDBmrXrk2dOnW4cOECq1evpmzZsvzyyy+ULl36uq7p8/no0aMHEyZMoEuXLnzwwQe21rzE4laG5dd0bJrisHy1H+akOfsmjbvkmjl06BCrVq3i4YcfJn369CiKQkxMDE8//TRz584FIGPGjFy4cCHivDfeeIN06dIxYMAAevfuzZdffknbtm2ZNGmSncAVFRVFQkICefLk4ejRo8yfP58nn3ySzp07U61aNZYuXUqvXr0oX758akw9TTB48GD+/PNP5s+fbwvTCCEiRGpM07zjvfYrsXnzZp588kmOHTvGpk2byJ8//3VdRwjB119/zZtvvknWrFlZuXKlXV4rubXGfW3n5ik27lXHzUpz9k2mMkuumaeeeorly5cD4HQ6yZQpEy6Xy/bA27VrR/fu3XnooYcA+Oijj9ixYwcDBw7ENE2yZs1q1x7XrVuXSZMm0aNHD0aMGEGFChVo0aIFixcv5oUXXuChhx6iaNGiEWv8x44dY/r06bd20mmIkH58OJcacqfTic/nS7OCTeXLl7eW4HLlYubMmTz33HPXdR1FUXj22WfZunUrX375JZ9++ukN6/8tkdwIpHGXXDPha5SBQAAhBKdOnbL3/fLLL3bDjGnTptGyZcuI83v16mW/DiUkde/enXfeeYesWbOiKApvvPGGfcysWbMoX748x48f58MPP6RPnz43Y1p3NVu2bAGwl0EMw0jTnjtAdHQ0BQoUYN++fcm+b5omr776Kn///Tf58+ePeGAN/2yOHj3KyJEjadWqFV27dr0lY5ckRdVU1BQo1KXk3NsZadwl18yYMWOYP38+sbGxvP/++1y8eJGXX36ZunXrMn36dDp27Ej58uXx+Xy4XK4rXuvxxx/n6NGjV1yrzJkzJwMHDqRPnz7s2LEjSeayJOWEeo9v3rwZsIRs7gYt+WzZskU8mPp8Ps6cOUOePHnYunUrQ4cOpUaNGuzatYvGjRtTvnx5YmJiyJIlC4qikC5dOjRNwzAMXn75ZYoXL56Ks7nLSaH8LNK4S+528ubNa3sonTp14vHHH+ejjz6idevWjB492j7uaoYdrLK6a0lCeuyxx3j++efvCoNzq9m+fTtff/11xL7Bgwen0mhuHbqus3nzZtKlS4cQgkAgQPbs2bl48SI7d+60j+vbty+tWrVi4cKFjB49moIFC5I3b14yZ87MhQsX2L59O506daJ69eqpOBuJJHmkcZdcF1mzZqVixYr88ccfPP7447z44ou8+OKLN/w+X3zxBaZpMmHCBL744gvSpUt3w+9xN2IYBo8++ihgGbEuXbpQpEiR6yoPu9NwOBx89NFHvPTSS7z22msMHjzY7gg5d+5cO4ekXLlyKIrCQw89ZIflJbcfiprCxjFp1HFIm7OS3BIaNWoEwIEDB/juu+9uyj1eeeUVAPx+P1OnTr0p97gbefnll9m9ezdLlizh448/pnTp0neFYQ/x4osvMnToUD755BPmzJnD4cOH6dOnDw888ADt27cnXbp0NGzYkIULF9rnmGYa7TByh6Ooaoq3tEjanJXkphIXFwfAhAkT7H3vv//+TblXtmzZKFOmDAAdO3aMyJ6XXB/x8fEMHz4cgB07dqTyaFKPF154gUceeYQXXniBDBky8MUXX1CpUiXKly/PunXrKFGiBI0aNaJPnz48+OCDpE+fXmbES+4YpHGX/CdGjhxJhgwZGD9+PKdPn7b3nzt37qbcT1EUtm7dysmTJwHs7n2S66dFixYAPPHEE/bruxFFUXjrrbc4cuRIRAMdgJIlSzJv3jw++OADfvjhB06cOEGTJk0YOHAgf/75ZyqNWJIcVj93LQVb2jSDaXNWkpvGsGHDAOjcuTMLFizg5ZdfRtd1OnbseFPvO27cOMBSwJNcP4cOHWLx4sW89957TJ48mbx586bKOIQQLFmyhDp16tjaCalB5cqVqVOnDvPnz+fMmTNs3ryZGTNmkJCQgKZpvP7665w7d45t27YxceJEqlWrJksybzOUYLZ8Sra0SNqcleSmEa7g9Morr/C///2P1atXYxjGTb1vqMXsfffdd1Pvk9b5559/AKhfvz47duyIaN17s1i7di2tWrWiX79+fPbZZ5QrV46oqCgefPBBVqxYwbPPPsvs2bNv+t/Q5fj444/Zt28fuXLlokKFCjz66KMUKFCAESNGAIm17adPn+bYsWN3VW6C5M5Fys9K/hN+v58FCxYwZswYZs6cSSAQAGDo0KE3JVseYP369dSvX5/z589z8uRJKfN5nRw4cIAjR45Qu3btiP26rt9URbqaNWtGPEQ0btyYUqVK0aBBAzZs2MCwYcM4c+YMlSpV4s8//0yViogjR44wffp0VFXl/vvvZ9iwYXz77bc89NBDuFwuEhIS2Lt3LxcvXmTVqlUULVr0lo/xTuJWys9ufak9Gd1XL7+9HBd8fsoO/SnN2TdZCif5T7hcLpo3b07z5s05efIks2fPpmvXrnzwwQfkypWLdu3a3TCFswMHDrBjxw6+++47zp8/z7fffisN+3Xi9XopXLgwefLkidg/YcKEm2rYfT4ff//9N2XLlmXKlCns2LGDRx55xP4bad68OQMGDGDGjBm0bNmSVatWUb9+/Zs2nsuRN2/eCAXFb775hgoVKjB79mw0TbP/7nr27CkN+21GSkPraTUsL4275LrJkSMHXbp0IV26dLRt25b27dtTuXJlSpQokeJrG4ZBtWrVOHnyJIqi8OOPP9K+ffsbMOq7k8WLFwPYNdy///471apVI3PmzDf1viFRnKioKEqUKJHs34aiKDRp0gSHw8GuXbtSxbgnR58+feT6+h2ANO7JkzZnJbmlPPH445Qra5Wr5cqV67qvc+7cOY4fP87JkycZNmwYJ0+e5KmnnmLbtm3SsKeQ+++/336tqiolS5a86YZ9xYoVdgJmeL34pSQkJLB161by5s3LxIkTb+qYJJK7BWncJSlGjzvHyGGf4HK5KFas6BW/yC9l06ZNdOvWjUKFCpE1a1Zy585N7ty5efXVV+nQoQPjxo2jVKlSN3H0aZ+9e/dy6NAhnnzySRwOB8ePH7/uVqf/hTp16pCQkMCsWbOuuJb59NNPU7VqVeLi4liyZAm6rt/0sUnSDoqSQhEbJW2aQRmWl6QYIQRVK1fkn3Ur6fXSa7Ro0YKvv/6aDh062Gurs2bNYsSIEXg8HrJly4bL5SI2NpaffvqJwoUL88QTT1ClShVUVeXEiRO0adPmmrTnJVenWbNm7Nixg3Tp0vH888/fsryFRo0asWDBgquuUWfLlg3A1k3QdR2HQ341Sa4NGZZPHvk/SJJitKiMGAkXyV+oCNN+m8EzzzxDp06dGD58OHnz5mX9+vUcPnyY3LlzU7lyZbZs2UJcXByKovDZZ5/Ru3dvnE5nak8jzdK0aVMyZszI+vXrI1rq3my6dOnCggUL8Hg8VzyufPnyALz22mvUq1fvqsdLJJKrI427JMU4XG4cLrf984QJE+jRoweDBw9m8eLFXLx4kUaNGjFhwgS7j7vk1vHpp5/SuXNn/H4/c+fOZfjw4SxcuPCml/0MHTqUunXrUrhw4Sse99dff1GwYEE++uijmzqe5AhVAqf1HvZpGem5J4807pKbQr169ahXr15qD0MSZP/+/WzatMlWEnS73Vc5I2V4vV7Wrl1L9+7dr3icEIJVq1alStc1wzDwB3UaXE7nTS0JlNw8VE1FTYGBTsm5tzNpc1YSicTml19+YdmyZfbP33zzzU037h6Phz59+jBhwgROnDhx2ePmzZvHP//8Q5s2ba7rPkIIDF2/ro5t4Yp4qaWOJ5HcLKTnLpGkQbZt20avXr3Inz8/P/30E0899RRlypShWLFitG7d+paM4a233mL8+PH07Nnzsu16J02aROHCha/bc/f7vIigYXd5olCD7TuFEFcNtWuahhE8V5Ve+x2LoiopatuqqGlzSUYad4kkDfLcc89FNGR57733rrr2faPJli0b9913H6tWrUr2/VOnTvHzzz/Tr1+/JIZYCGEb6CsZaRHmsQvTxFQUErw+TCFwO524nJf/itM0DbeqghD2Q4HkzkOuuSdP2pyVRHKXM2jQIJ5++mn75/j4+Fs+ht9//505c+bw9ttvJ/v+8OHD8fl8yQoU+QMBfH4/Xp+PK7W/UFQNAQisEjq/348ZPD60nn4lVEWRhl2SJpGeu0SSBilTpgxz585FURSmTZtG6dKlb/kYRowYQdWqVSMeMkKG+sSJE3z11Vc8+uijFCtWLOI8IUTEGrppmpdNdjMEoFjvmUKAmfggoGmJIXqQGfFpFem5J4807hJJGuPo0aM0atSICxcusGfPHu65555UGcemTZt44oknbKMqhMDn92OaJu3atcPhcPDll19GrJMLLG9aU1UM00S5xLMOhevBktHVNBXDSHwQUBRwOxzWe6qKEML25jVVxeW6/u5hktuTkEJdSs5Pi0jjLpGkMV5//XWOHz/OsmXLUs2w79ixg/3791OuXDl7X8gjHzZ0KEuWLGHWrFm2DG54WZrT4cDlciXrceu6jh7MbFewDLzbZQkgGbqOoig4HA77HMM07TC9YZrXlGgnubNQNC1FCZFKGk2mlMZdIklD/PHHH/zwww+MGjXKVn67WQghEKaRRJ/71KlTPPDAAxQvXpwWLVrY+xVF4eTJk7z55pvUq1ePhx9+2H7PCAvDG4Zhy88ahoEwTbSgN26YJgSNtQiep6oqDocDTdOs6IDPB0KgqGqE8qE06pK7ibQZj5BI7kLi4+N57LHHaNCgAd27d2fLli1ER0fz0EMPXXMduCkEFxJ8xMZ70cPC3XoggM+bgKEnJqnp3jgCcbH4L5xHmAZCCP7++2+qVasGWJ3g0kVF4U1IwDAMFEWhfNCTDw/HA2jhr4OelGma6IGA5dX7fHjj45L9wgoEdNvLN8OMv2mamKaJx+3G5XTidrkiDHxA1/F6vQSuIfFOcvsSWnNPyZYWSZuzkkjuMoQQDP3sU86fP8+IESPQNI1atWpx9uxZFi5ceFWRFsMw8CYkEJfgJaAb6IZJvM8PhIysH2GaBPz+REMaCL6vqHh9fl595WVq1qxJxgwZWLFiBXly57aP1YMGtFatWgAULVoUn9eLz+vFDIbLQ5jJZceH7mnokX0IhMBaqbcIN94KoBsGPn8A85JwvBACXdetLHvDuC4RHMntgTTuyZM2ZyWRpHEMw+D777+nSJEizJs3ly1rVjBg4CC6d+5I8eLFOXDgAHFxcYBlSK/WmCdkfJUww6oGjeHlotmq041QVITDzcKFi/hs6DAA/u/dwRS9pwiKqnL48GHSpU+PJyqK4sWLM3/+fOrVq4eCZcRDRjbcoIcnzDmC4XhIXH/XNA2n04mCggA0LXGNXVVVe8BCgG6YiQb+CgZchuwlaQ255i6R3EGYpok/EOCLL77gtb59ARg4cCD3Fi4EwNTfZtJ2wQIaNWlinzNp0iQMw0BV1csaMUVREEKgKRDlcgAKHpcj+J6K0+3BNPQIQ+rwpANdZ/XKv3jxxecB2LR+HSVKFEdRNRQgffr0trHevXs377z7Lr179yZkZkXw3g6HA2GaCKyEutCYHMGHEtN0IkwDNXj/0Bq73+9HGDp6APtYt9tt3zPe67vsfN0uF4Zpol3hc5Hc/oT6sqfk/LSINO4SyR2Eruvs3r2b06dPoygKWbNmZe3adaxduw6As+fORRj2U+dicTs0An4/iqLgcruTNWQOpxNd160ktLBe6rphYBgmToeGM6zzn2ma+Px+9uzZQ9269QAY+/23lC5TBs1prW37vF6yZs3Klq1befTRR9n77788/vgTeDxR1kUUBYem2dntTocDIxgiD+i6VRKnqRi6tV6vhWXBh8YQUqjTdR3TMCxPPmj4FUXB43ah6waqqiBME0OYaJo1P1VVpYBNGkDWuSePNO4SyR3EsWPH7KQ0sDzjQoUKUbBgIV5+9RXq3n+//d5jrR5PFH8RAmEECJgGTk9UEm8lENCtTHTDtGvEDdPEG1x313WddFEe27iGQuq9e/UCYNkfi6herRpq0ACH16PnzZ2bCxcu0KVLV0oUv5eArtslaY6w4/0+rzVUxQqtm4Bh6BAKpyvgcCQuL6iXPKQYpgGKiqnrBHQdLZgt73BrBPw+AgHdOtAl0BxXXqaQSO50pHGXSO4gckZnodnDTVi9dh0nT54kS5YsrPzrLwQQMAUzZ8+hQMGCFClSBFNYSTWaApgGSsALRgDd8OHMGB1xXVNcoggX1FwPcWmKm6HrrFmzxtavv+/+ByLEREIhdT0QYPacOZw8cYL+b/S3Pepw3fjE5DYlmTuFcclbiqridLmsbHf7ASDR4BumCYEALpcrcb1dCAzDRJPffGkGRVVS5rmn0cYxaTMeIZEkw52eER17/jzPPfsMJ08c5+TJkzSoX58/ly0BI4BiBFAVQa3765KnQGGEaeBWFVyalYCmaQpKIB7MACTEIszI7PnwdW5VUTCD9eNOhwNVVfBcUkb2448/Uq9uXQA6depkrYVfEg1wOBx4oqIIBAIoikKe3LntcL4/WOIGlga8bhgQXDt1aJqVNOdw4HS6UFUNVXOgalrSzPqw0jdQuPRrOhRhcDotZTpFGIiAF93vTfL5hhT0fD7fHf+3cjcRWnNPyZYWSZuzkkjC8Hq93HvvvWiaRnR0NH2DiWi3O0IIfN4EEuIu8tprfSlQsCBTfptF0SKFAVi0eDELFiywj3dqGl5dEDAFF3UFYQRQVQWny4XmdKNAUuOnB/BdOIfpjcPjsrqohZq2GIaB2+UknceDw5Go4mUYBg8++KD988ivvrriPOrVq4cQgjFjx9rqcmCt53sTEiIMqeZw4nS5cDmdaJqGqqq4PB4cTid+nw+/z2d5+ULg9/kwdCvULhQFJbh+73I6IyRv/YEAavBhwZ5DsIwvnFBJnBk8RyK5k5HGXZKmuXjxIlFRUezZsweAs2fP8sknn6TyqK4Nw9AxTZNZc+YwZMgnVKlWg0UrVjHgzQEMGvAmAK3bPmmF3BUFRY2U0VSEafcsv+DT8boygysdWuZc9rG6Lx6EiWkaGH5fpFJc0Ev2h7xZw8AwDPbt38+ixYsBaNyo0WWbuoTIkzcfLVq04OWXXmL37t2Jb4Q8biFsKVlNVdF13a6B9wVFZvQwYxsaR/hDQSi8HwjWrjvCDHnoOCVsn6olXXOPqJGX2fN3DIqqpXhLi8iVJ0maxuPxUKJECXbu3GnvizlyJBVHdG0YpomuGxyOOUK3bt0B+GPR79SomJhMt3TiN+zduw9HzBYCeUrhNVU8GqA6iNIELqcb3RR4Az4MEwzNDaqH9IqC6UtAcXlQVA3DMNE1NwGhEN5WxaFpmIaBGfS2A4EAqsNB31dfZfr06WTKlImhw4bhvEozFkWBr0aOpED+/Kxds4bSpUrZnjdY0QR3MItf1/UIQw7Y3nmIS7PmFVW1luNDgjm6HuGlhx4+VFXDlT5jcL0/qV+jqSo4HNbDQRrVG0+TqJq1peT8NIj03CVpGofDwcaNG3ns8ccB+HTo5+TKmSuVR3V1An4/s2bNonjx4ly8eDHJ+1999iG1qlenY0ur7M2veQDQVIX0Lo10UVEomsNaOw8LxjtMP3rsKfQLpzHiY3F40oPTYyeiGYYl1+pxuy2jeIkH69A0SpQoAcDo0aMoUrjQVb1cR1B0BiAhIcE24qE+7GowyQ6ISOJLDpfbbde4O10uKwwfDOMrJDan8fkDuJxOW3o2hKKoqKqW7JhD2fvOSx4eJLc5qpryLQ2SNmclkYTh8XioHtQ7j794we7zfbty+PBhXnzxRVq3bm3v+/CjIXw5bChZM2Xkxy8+4plWTSBrHpRcxVALlosoEXNoKr6AzoUEH7op0FRwOVTSu504SQxlCz0QIRRjnavZWexghcqdTieaw2HXyL/xRn8A5s2dd1VjDNYDVnTWrJQrV453332X2NhYK/yvKFbJW6hrm2Ggh3npmqbhcDrtELuqWqF3w7B07EPvh9rCqqqKSiivQKAH9ewlkruR2/tbTiK5AezcuZP+/frRunVrnn66R2oP57IIIThw4AC1atVi3Lhx9v706dPT9uEGdMh4hn2fPc+j9+ZEAKauI9JHY7oyoAa8uEUAj/BjeOO56PWjGyZ+w8oUT+9x43Y50aIygOoAVUONyojf68Xw+3Aq4FIVhKFH6NCHxGOcl3i/AHXr1k0SIr8cDoeDX3+dytmzZ/nggw+TNIoRQhDwJya5qcEyN0cwW18JJGD6vQR8PgJ+v31seOa8CF+DD/4sruHhI5zw+nzJnYGiaSne0iLSuEvSPCHP748//iBXrtszJG/44vnz9zkULlyYw4cP89eypRw7fJAzx49y/txZ8oiLEKxF18+cIJA+O4rDiaHrBHxeFARqqFI8kEB4UXhIXlUIgdAcOLPmQs2cE1NVMUMlccK0Ddula94Q6gpnJbgdCeYs5M+fH4fzyuvtIYSAfPnzU61aNT788AMA3C4XbpcLp8ORpPTMFAJDtxIKdV1HqBoo4brx1sOAz+u1M+61UDlfcCNsXf9aMAwDr8+HV5bC3VmE1txTsqVBpHGXpHmKFi1KhQoVIsLctxuG9yKLliwFoGvnTmTJlg1H+kxEuTSMi2dR89+Lki6jJdlapjaqJwOKw2kZPQiadazMeSC9auJ2OsgU5UZVFQzDJC7BS3yClwSfnzivn3ifjmGXiId534piZ8qHCIXLhRD8G6w82LVrV4S3fSWsCLzChQtW/oCmaQR0HZ/fb0nNXrruKQSBQMAqdzMFwuEmvJDPEZSqtccXCKBpGi63m7379lGlalXef//9/+SFhy8J6FfpoieRjBgxgsKFC+PxeKhRowarV6++7LFjx461l7tCm8fjuanjk9nykruCjRs3pvYQrsiZcxcZ/MEQAMaMG8+YcePJkiULWTJn4sjRYyxfOI9Kjz2P4fehBEVeNFXBUDV007Qe04MCNBgmmicdnrBwY2R9eVj42uHAqWmJAjGmSUA38Pn8tja7VWan2mHvHyZMAODQoUPXbDytRi1OXnjhebp06cKZM2fIkDGjNR5dxxE0zKF7JNdjXXV7IpLjQseERhAfF8fEiRN5e/BgDh06xD///EO//v0vOyYhhNUKlqDOvKZhBg28lkaTrNIkqprCbPn//rueOHEiL7/8MqNGjaJGjRoMGzaMxo0bs3PnTnLmzJnsOZkyZYqo2rnZ+SDSuEskqYwZ8LH7338B6NChA6qqMn78eM6dO8e5c+cAUB1OHG4PSlDzXb94BuGLRXG6cWUvbGnHKwrs3wDx5xBRmRH3VLbXxx2aSkha3enQ8OuWh+92OO0EQ03TMBUFoVsPAkIIDNNEAZxOpy0Z6/V6qVWzJm+//fZVW8mGo+s6+fPnB+Do0aPcGzTuoS85RVEwhLDq3oPLCGqwTj9EaAwA348Zw4EDB6hWrRqjR4/m33//Zd++fTz88MMULlyY5cuX07RpU95++22OHz/Ojz/+SO3atXnhhRfsSEEomc/tcuEIiuaEjL3kziA1usJ99tlnPP3003Tt2hWAUaNGMXv2bL7//nv69euX/H0Uhdy5c1/3OP8r0rhLJKmIEAI97jzFihQkffp0HD16lFlzZvPux5/y9/pN5I7OTNVCOXClS28ZNc2BX/dDumhMzYkr/rTVKMU0wZ+AK/6cdeGE85gJFxBYIUDVk4H0UR7LYKoqHldif/RwrMxzBdO0jKjfb3nHmqbiDtazlypVigULFqA5LEnY/zLXAwcPApAzZ07cQc33kN58IBDACJbIoSi43W5recCwHkSMoHiNqijs3buX3r17B8emUaRIEYQQTPzlF1o9bjXMGTNmDF9++aWtple+fHlmzpzJ5MmTGTV6NGXLlrXHZpqmlbwXNlaZaX93ERsbG/Gz2+3G7XYnOc7v97Nu3Tr6h0WFVFWlYcOGrFy58rLXv3jxIoUKFcI0TSpXrsz7779PmTJlbtwELkE+nkokN5FQU5SQZOrlyJolCw7NwaJFi/h+1EhyRam0rFudWjk1HIc2Ye78iwNb1/P7woWhC2NqLnCnxwg1fXG6MV3pADCdURhx5zG9FzESLmAkXABA93vxx8chzMQyMSEEfq8Xb3wcesCP2+UiyuOOKBkMTzCrWLEi8fHxdmLdteJwOOxwd0ha1hGebS9EsPZdQQjw+nzogYD1JSWE3Rzm888/p3Tp0vZ1BwwYwOo1a/jnn3947LHH7Gt269aNNWvW8Oqrr6IoCrt27QJg/fr1fP/ddxFjU4MZ+36/H6/PZ/WJl1nzdwZKCpPpFOsBtUCBAmTOnNnePvjgg2Rvd+rUKQzDSJKcmytXLo4dO5bsOSVKlOD777/nt99+Y8KECZimSe3atTl8+PCN/SzCkJ67RHIT0XU9Uf9ciCRhbEVRcGTIwskjhzkfG8u9xYrRqGEDwNJ9P3r8FGu3H+HBGpUpXKYKABfjEzAJXuvEUZQLZyB3CVBUfHnLgt+LcHpwec+iCAGmgYiPxdCciODau+7z4Upn/fcXpmlnzRu6jiPYj91KWrMS6xyaw9ZbL1++PAC7d++mUKFC1/Q5hLLb69x3HwDz58+nQ4cOtgENldxF5AOQmPWuYBn+8ePG8frrrwPwdI8evPvuu2TKnNk+J1wKVwhBfHw8q1atIn/+/LzyyitkzJiR87GxPPzww7iDzXCEEFYv+OAaPCQ2nJHe+x3ADVKoO3ToEJkyZbJ3J+e1Xy+1atWiVq1a9s+1a9emVKlSjB49mnffffeG3Sccadwlkv+IEMIKFV/DWl+E93cZT1B1uPh58lRUVaVYkULMnz+PRUuW49cNZs+ZA0DdB+vbx69euYLa1asCAtOdCT245q4p4HQ5COgKqtDBkwkCCSgYVqmbLx60YOlaWJtLu+WlECjCwB8Xi8MdheZ04XFbx+t6Yv174SJFSJcuHatXr6ZevXp2WP1aPodz586RPn16OnbsyCeffMLIUaOoUKFCYhTh0vMABUszvu9rrzF69NcAjBr9NZ06drDWx4P3DyXFARw8eJARI0bw8ccfAzB06FBeeOEF+7q23nxoOeCS0rdwIR/J3UGmTJkijPvlyJ49O5qmcfz48Yj9x48fv+Y1dafTSaVKleyeFzcDGZaXSP4DQgh2/bOVXLlzM3zYZxHCKcnhcFitUFVVjVCCu5QRo0ZjmiZzf19En5dfY9qMmbZhB1j6x2L7dZbo7Agg1i/wZcqFKcBEwW8IdBMUl8cukVPCGqSoqorD7UFzuXG6o+z9iqLi8kRFeL2hlqiXM3IPPFCXmTNn4g/o+P1+TNO01ssv8wATMr7nY2OJi4sDYNOmTdSuVYsC+fNTvVo14uLiQqJ1EZV5i/9YQslSpfn6628YPPgdYi9cpGPHjrjdblxuN06n01LRCxv/gw8+aBv2P/74I8Kw67qB1+fH6/MnWS7RNM2uv5fG/c7gVrd8dblcVKlShUWLFtn7TNNk0aJFEd75lTAMgy1btpAnT57/dO//gjTuEsk14vP5eO+99yhZtjynTp/mcMyRJH3RL0VVVdsIXc5Y6LrOqNGjAciVIztd27dh+oTv+HX8NwwZMoQ5C6wvkYrVanDi3EVKlijB8QTBljM6++MiO5lZHqkCitVMJV5x43dlxPRkRk2fBc3htMPuIQxDRw/4I77kLu2UFdJzt9TkrHX3VatWUa1aVbp3787qVasI+H34fd4Ilbf169fb64pCmNSsXp1+/foxcuRI+9pnzpxh69at5MienbFjx6IGHyiOHjvGwIEDada8OXny5GHFihW82rcvUR43UR63LTmb3OcaHR0NYH3h1qwZURNvmOGvTZxhErZW//rkrym5TUkFEZuXX36Zb775hnHjxrF9+3aee+454uLi7Oz5Tp06RSTcvfPOOyxYsIC9e/eyfv16OnTowIEDB+jR4+YpZsqwvERyjfTs2ZOxY8cCkDNnDv7v3XdQtJT9FzJNk4Cu28k5478ZSZniRckenQVF1TAdHnBFMXvmTEqULEE6TeByu7hwzlJeOxmvk9HpI1s6FwLQQhF2RSEBJ0JRMBQNoSlouo6hB9AcDltZTghBIKjiZgJOj5WQpwbnZeg6CIEa7JMOEFB0+vzvf1y4eIGRX33FP9u2sXr1amb+Np1ChQrhDV7vxPHjVKli5Qk8++yzDP3sU1RVYfDbbzFx4iQKFSpEIBCISMzr9dxzjB0zlpw5c7Bo0SKcTiet27Thrbfepug9RXC5XKjBtrBnz54loOucP3cORVEoUaIEMTExbN26lYwZM5IrZ05q16plq+6FHgYcmgPDsMR3QuVvnhu4viq5xaRCnXvbtm05efIkgwYN4tixY1SsWJF58+bZ/48PHjwYUU559uxZnn76aY4dO0bWrFmpUqUKf/31V0Ri6I1GEdeQEhobG0vmzJk5f/78Na1JSCRpDZ/PR968eTlz5gyQuIabUg/P6mDmJy4ujrx58tjCLBO/H8mjjz2O5YWDcFid2wIoBHRBgiHYcyYBlwqVohUUQHNHobo8mIaJbpjEBSwP1apnV9FEosfq8kShqipCCHwJ8Un264YVukYIHBhomgOnxwrl67pOQNfRVJW9e/dy/Phx2rVrx/Hjx3ln8GBe6dsXgBrVq7NlyxYAsmbNyty5cylVsgQet4dGTZqwdOlS2rVrR9377+e53r0pWLAgB4OlcgULFqRjhw707vM/MmfJggJ4PFb0Y8iQIfTr1y+JRGyePHk4evQoYIXX33zjjQjvye3xRFQIgOzbfrO4FTYjdI8Ts74mU/p013+duHhyNn8mzdk36blLJNfAzJkzbcMO8GjLljfEMKiqisvp5ERcHE6n0zbu3uJ1ME2TP1eu4vU3B5E+Q0bGjx9P9ly5MVHwOBTK5IgiSvhRg53eDJ+XBFMjvceNSxPopoFhCpyqpTTn9ybY9w0XjnG6PZZHrzlsb8MfphBnoqIGy+2EsJLbwAppFy5cmEKFC7Nm7VpeeP55Bg4aRPmKFXnooYci1LhKlChBzZo1ee+99+jfvz+TJ0/m7NmzFMifHwVBy5aPomgOOyHp71V/kyWLlQVvlc0pTJkyhSlTpjBp0iQApk6danWHczg4c/o027dvp0KFClSqXJkC+fPbkQZVVZMk/SX3uzNN09LVVxQ7VC+EwNCDtf4Op3wYuA1JafOXtNo4Rhp3ieQaaNKkCdlz5ODUyZMA5M2b94ZdW9M0Bg0cSHx8PBUrVuSVb6YR7YIseQriD9duVx0Ywkp0F1iJcALNbigTQCVgmMT7/LidDqLcbnTDsMu6HE4Xuh5AuySEqaoqARQMXcelKJYxVVRMDFAUFEwcrjAd7LBgX0iWNlt0NO+//z47tm/n0UceYf78+Rw7dpzFf/yBqiqULFmSyZMn89RTTxHQdTJkzBiUnxVgCrJkyYJAYdPmLeTJk5uM6dOjqiqmEMybP5/Bg99m3bp1VK9enb59+9KtWzdKlCiBPxCwetYrCi6XC1+wPt3pcNgNg5LDNE1Mw0ANhuUBAmG17UawBl8PBGzjLgQ4XdfWKEdyC0lpT/Y0qkYojbtEcg1kyJCBl158kTfffJPnnuuVxECm+PpBKdZDhw+zf/NqRkz4NsKwX4zZg5Ylu2VsFQVdgND9OBSBcKbDb0Ig2AVGNwx0w7C6xKkqVm9z0+7lbhg6qqmhBdfVdcPANK1z/QGdKE2z2sMaVtje4fBYmvVYa/Ah31XTNIygepyiqtxTpDBrVv9N/YYPMWDAAJYsXcbDDz8MWL3YBw4YgKIo+MLm5dAcKA5QgwmAJUoURwsaVn8gwLw5c3ms5aOUKlWKcePG0bZNG9zBhhumadqheTPY510NPZxomh0FcVzSltYS7QlGMQLgjkpnva8o9oNL2NGEnfiff68SSWohjbtEco2EPMFBbw3C4bixxr1jx078OmUKx48fZ2D3thHvlS1VElfGaIyw9eL0UVGYhgPTFFz0JUrEWhrylsENqcGZVrF4BAqKHWIPT7uJ0HnXLa9f1w08HjeqokRknYeveQvTxAyOzeHQ2Lv3ICHDqCpqRGmZy+m0OrApCo5LwuXh5WzfffstvXr1AmDO7Nnkzp3bihQExWUuDZEHAgEUsDzyoGceIlw86HJpRi6XyxpXSClPCBxOJyL44HOlUkZJKnKDRGzSGmkzHiGR3EAMw8DnTeCF55/n1KlT5L7BPeGFEFQsX45ixYpF7G/ZsiUxhw6yYvkydM1FXMDEZ1ha7D5vArquYxLpkUa5nKgKaGrk+rJDJLYzdbrcKKqKz+9H1w0Mw8ShWWVgmmoZ8HC1NsCu5w8ZX0FQxS34WmBl2w8bPpy//lrJl19+aQnMWCcneYBwOp04L/Gow9m4cSO9evWicePGbNy0ifwFCliZ/6aJz+fD5/Xi9/lwOZ1hKnYRH2ryrwmp4TmthwunM+KBRlVVDMNADwSshwVFxeXx4HS7bYMvub1QVC3FW1pEGneJ5BJ2794d8SUe8PsQpokwDbKESZ3eKIQQJCQk8Pfff0fs37hhAyePHMbtcnL0go/dZ31sP+0jNsFvecqGgSJM20N3OaxQdGjkCxbM5+KFWBSR+AgQat/q9fnsULy1X0UIS4gm4PdjGgaOoCFXg0YPCJbROUMn2WozQghGjhzJgAEDEUJYqnNhc7k0sz25z2DXrl107dqVP/74g4zBZYo2bdtSvHjxJJ3hQpu9LBA2P6fTiTNYMpeceJCiKDhdLjxR6eySQPval0QjQmP3+nx273mJ5E5AGneJJIwlS5ZQvHhxKlSowJtvvsnJkycjvcubkC2tKArHT5ywQsJh7D9wgAxRLjD8xIa1N78YSDRAqqqSMZ2HjFFuVGHi100cisKB/fto9dhjfPzxx2iqiqI5UTUNZ7DT2qX3F4gIA2wKgdPpwON22SVoQgh8Xi96IGB9JkHdeoCPP/qIV155xR5TdHR0hJTslVqo+v1+Zs2eTf369Rk7diz169fnt99+A2DSpEkkJCTYXrUSXFMPJ7RcoigKLrcbLRgRcF1FPAgSG/uE5q6FRRNCDwXhn1d4qF9ym6CoiUl117MpadMMps1ZSSTXwaRJk2zFqC1btvD+++8TExODy+VGczhxutxJDMuNQAgRIUP5YP369H31FWpVr8aLr7+JAuQINnlxKJDZ4yDUVkUQLOEKPhioimXkFgelMUMSmZah86Cqmu3pJzrewWS0oPFUFAVFmPgS4vD7vPY6e4TUrhC4nA67RC46OpocOXIAULp0adweDw6HA6fTicvtvqxxF0Jw5OhRHmnRgpiYGLsKYeLEiRQoUID58+ZZYjZBER13UGrW4XBAMEwfUpkTpoHfm3BVSeDwe4ceVvw+n72W7/Z48EQlyvFqYWN3OBxWxCAQwDSkF387IMPyySONu0QSpH///vz7778AvPF6Xw4ePEjFihVRVBWny4V2hdKq6yWkEOdyaGTNmpU33niDt995lyGffMrK1Ws4dvwEpsNNNo+Dctk9lM7mwa0lCrAL08Tr81t9zwn1gxGsXr0agDKlS4Mw8XsTrIcAvw/d78XlcOB2uewseLAy3t0eD26PBz0QQKgOBEpizbuiIBTF7reuag5UhxMFQddu3ahXtx4A8fHxeIKa75rDcUWvHSB37tz8/vvv1KhRw1ari42N5dChQ4C1zi9ME9/5k3jPHsdIuGi1aA2eb5gmgYDf/jyNZIyuYRj4fb4k0ZFLfxfJEVKw87jdOBwOAr4EdL+XgDdBGnjJbYs07pI0i2madg/vq3Hq1Cn27t1r/3zo8GHy57txtexXQgiTo8eOcfbsWSZNmkTdOlZb1Ny5c/PHkqWgBr1FLIU6XSh2jphqRxIUhGmgIVCBfEEPeOq0aWzbuhVhmhi6HyPgRxgGui/B0lJ3Om2RF0dYVOKKwh4hAw843R6OnzjJ/fffz9RpU6lWvTp9+vS5qkFPvJSCy+mkSpUqEf2xd+zYYX8GXbt04Y9Fi6he50HyFSvN9m1bkgjSKGGhVYFiJwtan6/VbjYkUhPeES4U0lcvydoPbwObeI9gfkEy6/KSVCQkP3vdW9o0g2lzVpK7mkAgwLhx4yhXrhwlSpRg6dKl9nvff/89BQoU4NFHH2XEiBH8+eef/P3336xfvx5IzAbv/9rrt2wtLrxhy549e3jggQcA+Pa779GcLkwBBokV16YQOFwu4g04F++zQotC8Mf8Obzyysv4/X6m//YbDz74IFFRHqrWqElUhowsW/Zn2E0tQ6WqVpmaK0yRze+NR5gGanBsIaU3e509tGFpaFepUoV9+/YxfepUli1ZwosvvnjNcxdCsHXzRqKjo5kxYwbt2rUjJiaG4sWLA/Dee+8RFRVFw8aN2bLtH86eO8fWHbut8LnLhUPTcDmdOJxONKcLp9uNP6AT0A28fn+S/IJLcTideKKicIWV6gkh8Pt8+P1+fF5vEo/e4XJbegOqhuqQ5XGpTkrW21MqgHMbI+vcJWmKCRMm0LFjx4h9UZ5EdbV33nmH06dPM2PGDGbMmJHkfMMwGDx4MKXKV7jpY4VQEpiHQoUKsWzxQr4dO57x48cD0LxZU95+512eff4lax7B/62aquIN6OiGZbji/QHSayY/TZzMT5Om8OVIq8Pc8M+HUaJkKQoXLgzAxk2bqFe3LqZpWKVgwfnqhmF77iHPXgEwAijCxDAcCKfTeojA0paPi4vjzz//pEePHjidTtavXUPOnDmtkrSgkTSD6+FaMGs9OYRhkCfMY+/WrRuPPPII//77L4sWLaJ+/fq0adOG9evXc/r0KR5//AkUp9s2wGAJ6wR9cRxh4XrrBpaQj8vlsvMKriWqEG7QhWlGRDI0h9P+/CSpj5SfTZ60+cgiuWu51LA3ffhhKlasyIULF2jTpg0HDhxg4KBBbN+xg7nz5rFx0yY2btzIrl276dW7NwDPPtvzlo5ZCa5fV61R017zD5ErT+LSgCEgnduJ26HiCG/PiuC3GbP4adIUAIoWvYchH33A/ffVJkfOXHTp0pWCBQvy0ksvoQU9XJRQ05oAhmHi91vhaiUYchdCIEzDSogHq+7b72f69OlkzJSJ3Hny0KhRIzweD6tWriRn0ECHMsyFEMHQuG5LwiY7d1UlY8aMZM2aBYBGjRpx9uxZhg8fTv369QFLXKZG9eoUK3YvAFmyZo0Q0wnHFCYetwtVVdBUxb6vqmnXnDcRyswPvf6v/b4lktsB6blL0jTff/ctquZgyq8/M3nyZCpWrEjVKlUoVKgQhQoVsj3WL7/8kgk//ECLFi3IfBNq2a+GZVA0jh07xvPPP0/Dhx7C5/XR/JFHOJdgJYu5nQ47IUyYBh6HZYg106B7j+4AHNq/nxzZoy2j5HCim4Jy5crx008/Bpug6AT8lsfLJR6LEALV4UTollFXDR8oCqYQmIqKJgT58uUjOjrabqLzxBNPULBQoYh5JIcI8+gj5q2quNNlYOOGjRQKRhhWr15NdHQ0hq6j67p1nqraiX12/b2qWrryqmrX7DscDqsffPD6AV1P0jTGLn8TwupTn4zxdrndEQ8koQcf2TjmNkQq1CWLfCSVpAliY2PZtGmT/XNUVBTjxo0ja/YcHDx8mI8//hiAhQsX0qBBA/uL+uiRIzRu3JgXXniBNm3a8P33Y3C7U685SPHixflj8WLuv682LZo3A0Mns0slewYPUc6whDdh4tSsbm2du3QhLi6e70Z+Qc5cOXGly4ArXQacLqtHef4C+fH7/cTExCSWtQHhy9GW/VSDnruViW9qblBUzGDugYlCtWrViDl8mDZt2gDQoWMnqzUskYY9lKymQBLjeimKqto68B6Ph3Tp0+P1+fAHAlZim2nicDgoUaIEOXLkYMqUKWiaZtexaw6rHj/K404alk8G0zSDevpmZGOeS8cV/BsJBAL4/P6g8I9MoLvtSFEyXQofDG5jpHGX3PHExMSQM2dOKlasSPr06YmOjmbRokWUKVOGBK+XRg81ZMf27QCM/+EHDNPE7XKxbOlSSpYsybZt21iwYAHffPMN2bNnSzXvzOl00u/119mxcyd169bj2LFjALYCmxlMcrOlVoXJO++8w2+//cYv47+nw5PtcLo9EeNXFYUiRYoAMGPGDDs7PFGsVdg/hc7TNNVOmHO4o4KZ6MEogdOJ2+OhUaNGgCVAk1zI3YoSGKxYsYKBAwZcVba1QMGCTJs6lalTp/LEE0/QvVu3JJK1GTNkoEuXLkybNg0jaJx9fj/+QAB/IICu6xiGgRFW7nYlidvQZ5scIQU8uETERhp3yR2CNO6SO57MmTNZyVxAu3btKF68OLVr16Zq1apMGD+ef/fs4adffmHGzFm0bduOQMAK937xxRd4vV5+/vln6j7wQIRRSA1UTaN27VosX7qUI0ePUPu++/js00/Yvm0rpmmg+/12FjuKyo8/jOeTIUN4d/DbtG73FM5M0UkMmcvlIm9QIOftt9+2wuBR6XDZrUsVW5vdXp82DTShowkDwzRsrXpXWAg7OjoagKgoD5qmJrnvnj3/8sAD99OwYUM+/vhjzp07d8W5+3w+Nm3eTMuWLZkzezY///wzPXr04NyZ0zi0xCS4Ro2bcOLECVas+MsudbOGL9ANA38gEClVe7UP/TJ93b0+H95gXXx461j1kqUMwzDQL2m+I7m1KKqa4i0tkjZnJblrEEJwcP9+Dh06RLu2bckWHc2qVavs90eOHAlA+qgoGjRoQJYsWQC4cPEis2bNAmDo0KE82b49Y8aMYfHixZw6deqWzyOE5nBSuUoVVv71FxXLleXNgYOoXK06v/++kAQdEgzYtedfOnTqzNPPPkenjh145eWXUZ2uiFrvEIqikDNnTr4aMYIzZ87g9XrtkLnb5UJTLO81vIFKojCLQIQlrhmmYXvKu3fvBiAhPh53WI9zIQTrNmygQoXyrFmzBoABAwfaDwPJYeg6ffr04f333+d///sfcXFxfPvtt8yZM4dKVaqybu0ae0xly5YFYPuOHZdfAw8r1UtOUfBqhjj84UA3DJwOhy1iEy76YxgGAb/fTjaUpBJKCkPyigzLSyS3JUuCdeznz5/ngbp1I97btWsX0dHRVK5UCbc7WBftcrJu7Vr7mPXr17N//36efuYZGjRoQI4cOciZMyclS5a0ld5uFaGmJsXuLc60Cd/ZrUqbNWtGs6ZNaN60CVWqVGbBggV89NHHfPPNNzg9UVe8pjBNKleujBCCzp07J+qoayquoOpaqHObYZiJ9f2KgpZMm1PTNG3Bn3vuuSfiPZ8/wBv9+5M3Xz5y5sxFlSpVGDRw4OXHJgTnzp3j119/pX+/fnz80Ue4XC6eat+eDevWkStXLrp2f9oO/7/37ju4XC7q1auLw6HhdrnwuN12nX54P/aQAp8l4JPoXWuaZiXdKQrOZLLnwxPsIrLmL3mQiCiXk5675DZDZstL7mh8Ph97/rUMzf0PPECzZs0YN24cnTt3BixBmwsXLpA1OhpNVdFc1pd1w4YN+WfbNgzDoOg9RVBUjWPHj5OQkMDWrVvZvn07P/30E6+//jp//PFHqsxNjcrIP6uXM2HyVDbt3Gu3Iv3gww956qkOZM6cyWrfmoz3GuqYFsomr1ChAl27dGHM2LEMfnsw99xzD5pDCxo+K5nNNE38hgChABpRbrddTSCEsBPcwEr8czgcOF2uiEz4devWsmD+fL4bM5avR48iW9asGLpuq+Alx8qVK4mLi+Oxxx4DRUEPJtflyZuXr0ePotZ9dXigbj2K3nMPv0ycyNDPPuOewoVt0R0jOEeX04kvWPsOJDa7Ce5TdN1uJON2uy//uauq9f5lMvxDaJpmq9jJXu+piKKkTHAqjVZASOMuuaPZtWsXS5Ys4fHHH+ellyyxl/Tp05MuXTri4+OBSJnREKZhUKhwYfyGwFA0MkR5bLGX4iVKYBgGGzZs4M8//yS1cKTPzD3lq/Fq8Qr4dAOhKGiqSga3M5iFnnStO4RuGPTo0YMsmTPzYdAbfvHFFxkzdiyTJk/itddeQwRM1LC+77b3GSwl8/kDuFxW6VnIyzVM044E6LrO4sWLefDBB23jGjLMFcqX4+CBA/y9ahUnTpwgX758yY7T6q1u/W4yZc5si8yEuq9VrV6DmTNn8tVXX7Fm7Vo+/vhjnn32WXu83jBjrqmq/UXtCCbShSfA/RfvWr2knW3A77f+ji7p/+66wkOC5BahpLCzWxrtCieNu+SOpnz58kycOJFChQrZSWJjx47F6/VSpkwZtm3bRt++fXE6nZaYCuByOjFNk/iAwAT8poHD5yeUNe43TMaPG8v06dMZM2ZMKs7O8iIzpPOQ/ipeZDjfffcdX3/zDav//pvyFSylPcMwKFasGDVq1GDEiBH07dvXrq0HQAgcLjeaKRIbxQB+fwBHVKLnHqJYsWIALF68mNf69mXipEmUKlnSDtNPnzaNhIQE2rdvT+48eZIkooUwDYPTp08D2N60w+EgtOqvKAqNGzemYcOGVnle0OgnJ0aTXCJdSJDGNM2rluRdjkCYHj3BfvGS2wehqIgUGOiUnHs7kzZnJbmruPfee3FoGrqus27dOgYNGkSfPn3Ytm0bAIMGDeJiXBwJfh2vXycuwYfmcERkUvt1K7xqCoEwTb784gseefRRO7yf2lyrUZo+fTo9evQgU8aMADxYr56twa6qKv379ePkyZMMHjwYVdPQHA5cbg8uT1Swzj3yeuGefTgzZ81CURRmzpjBtm3b2L9/P4qikCdPHooXL857771HxowZeffddyN02y/F5/MxbNgwKlWsSPZs2YCgnKxhYAaXIUIZ8IZhBAv3wB80uFqYoE144xstbK3c5XbjiYqylxAMw7iswl1ypM2grSStI4275I4nJEYyfdo0qlatStOmTRk+fDgA48ePx+12U7VKlcTjhUBVVTJ6nGgKuFRwKEFTbxpMn/wLO7Zv53//e/6OUiTz+/288sorPPzwwyxYsIAmTZqwe/duWrZsSY6cOTlx8iR169UD4Mcff0TTNAK6TiAs2Szc+w0lpQF2WD70b+5cuRBC2F33atWsaX1WikKV4GfdqXPnJAl3l3Lk6FHWrVvHq337XnZN/rLzDSRK5rqCfd7trHZVtRX5wkPzuq4T8PutLPerlD6Gat0dwda1msORZHlHchsQCsunZEuDpM1ZSe4qQoapcuXKDBgwwJZGBejUqZP9norV7zxdUIHO6dBI7wCPZu13OBwcPXyQNwYMonnTh3nw/vtu+Vz+K4FAgNWrVzN+/Hh69uzJ/v37eefddwkEAhw7doyEhARmzpzJmTNnyJIlC26PhxkzZxITE8PCRYvsOu1Qslx4prjT5YzwdIUQOIMGLpSfECJU6maaJvcGO7o99dRTVx1/pkyZgKD0bcgL1zSrb7yioAa7vmmqiiMZ4xoywCFDHZ7V7vf5CAQC+MOU5S5t12oYBl6fL4n+vWma+LxefF4vpmHgDD483EkPe3cNofyIlGxpEGncJXc8oSSsfPnyUa9evSQqYgULFmTs2LFkypCOTOnT4XQkhnKdLjeaw4nL7UEBnurUBUVV+PyzT1Buc1nK1atXkz17dmrUqEHnzp0ZM2YMQz75hDJlyrB5yxY2btxI7969+ffffzl58iSZMmXC5XTSuFEjqlWrxqCBA22DZpom/kCAgK6jKODQ1GBSXZgCXEgkxjDYvWePPY7atWvbrx2aRr9+/YhPSKD4vfdedQ4ZM2Qgc+bM7N271w6VX1pnrmkaLpcLp8OB0+GwjH1wmSFEcmVqyZWqhR4OQol8gTCJ2/BQffjr5Dx8qyudF298nJ1EKJHcTkjjLrnjCa2ruj0eO2nK6XRSqlQpAEaNGhWhkBbqWOb1+dANg+V//kmv3r2pX78+a9etZ8L48RQuWhz1Ng7BxsfH06ZNmwgPumbNmjz33HMAzJ0zB6fTSdOmTbnnnnvIli2bXevtdDr54IMPWL16NR99+KF9/qWSq5frha4bBmvXrrUNaig6AtYDU5THQ1Twd3E1VFXl3nvvZdeuXejB6EC4UEzoHrquk+D14vf77cx8h6ahqSpOhyPZe6mKAsKEYFKdCGrKh3Tp1UvUySJke8P2J3dt0zTs5D494LdL4iSpgOznnixpc1aSu5Z69epx5swZypYty4kTJwBo2rQpefLksevVQ54awHfff0+DBg0YPWoUy5cv54cffqDug/VvqGEPhbb1sDrxlPLjjz9y4MABunTpYu/TNA2P243T4UAIQZYsWYiKsgRuDMMgEAhYamqBAA0aNGDgwIG88847zA4mx4ULuiiKEpGgFiqHcwRru7//7jt7LiVLlrzueThdLkqVLs2mTZvszyncsJqmJa4TCHrPhmlaXeqC6nChxLtQTbs//iK+i+fRfV5M0zK+qoLdAMYMLjGEpIZdTmdENAASvXyny2WJ/CSTHX+pGqDf78fv80kDnwqEsuVTsqVF0uasJHclGzdupEyZMmTNmpUNGzbYJVYhXn31VVuPfOvWrWzevJnHHnuMWrVq2cfcjDVV0zTtBK4bJVO6ZcsWAF5++WV7X2jd2wjqoZ8/fz6xC9wlIWohBG/060e1qlVp3bo1W7dssR8OXE6npe6mqnaCmqZp9nr7zp07Iz7b4sE19utBURTqP/ggW7Zs4fjx41Zt+lWU3xSIOCb0oGYG/AhDByEwA2Gf8xXsbahUTg8+/AghrHX64BbqbR96yAihqioujweH00Uon/7SpQCJJDWRxl2SZrjvvvv4559/Lvv++vXr2b5jB6YQ9O7Vi5o1apA3Tx5WrlwJQP78+WnatOkNH9fNkCn97bff7Nf58+fnwIEDjBs3zjYwVatUIRAIEBUVRfbs2dmwYYPVJCO4ZGGFlIUd1t+5/R97fHowCU0EM9Gt9WUfAb8fn8/HunXrIh6CcubIkaK51Atm8K8Lhvo1NVGcJxSiD0UkQg8d4TXrmsOBbhgRWc+KmpgJHQq9O10uNE1D0zSMYI5BqH4/1AY2FBkIYRoGXp8fr8+Pz+cnEOw8B6CqVilh6Pq2Yp5sJHNrkdnyyXL7LipKJFcg5A2HtNiBCOnR+g0asHjRIgCqVKnCunXr6N69B9myZQMhmDJ5MoUuyfg+fPgwTZo0YezYsdx7Dclg10q4TOmNEkA5ffo0ffr04cSJE7R67LEIA6uoKg888AAzfvuNTZs3M2DAAH7//XeqV69uH2OYJn8sXsTkKVMAaN6kkdV5LpBomHTDIC42lm+//Ya9e/dx4cIFli9fzoEDByhXtiytW7fG4/Gk2JDlyZuXPHnyMHPWLFo88oilEx9s/mJ7zVjr7kpwvV1RFNweT7CDmx8wUBUFV1R6hGliokAoQc8wUINr7U6XyzbmGElr3RWspLtAIGB79SIY7TGFwAxYCYdOEpcqXG63/VAViswohnFFiVvJDUQq1CWLNO6SO4b4+HgOHTrE/v37OXjwIAMGDODBevUYP348LrebDVu28vagQdxX535eefF5+7zY2FicTidvvPkm0dFZMQ2DnDmyk3DxAufPnmbuvPmULl+BM6fP0LtPH6pVq8b27dvJE2yVmlJutEypYRjExcVRqVIlunbtis/rtd8TQuByuThx4gTde/Tg/PnzANxXuzZGwIeqOVFUlQP/7mL8Dz8AwUYqDgcKiuWFBsPccXFxFCtalNNnzlC6VCk0TaNJk8b8888/vPPOO9SsXt3ytP9jffqlKIpC/vz5GTd2LP369Us2yz4QzEgXphkhXhPhZQuBojlQHZZhD894Dz8n4t5Y6+66YT0cqMGoQXhJYMgjD0eYJgSvFyq/C28ZLC6TjCiR3CqkcZfcEezdu5eaNWty8uTJiP0TJ03i7MnjfPjhh/gCOj+O/ZZvx4yPOKZo0aLs3r2bWTNn8swzz2CawS9hRSE6R046d+uOYZjoAT/Lly6hfMVKvPHGG6kuPXs5vEFj7g96iSF5VSXMOC1cuJATJ05QqVIlXn7pJWpVrYTuTcAUCaxcu57HW7XiXJjhd7qjEATL0BTLyLdr147TZ85QpnQp1q38ExweRKKwK+5gsl5K8xScDgd7gqV1I7/6io8+/BCHw2GJDYXNKWRgw++nqSqqqmCawhbZgWC0xOGwDW64YXc6HLbqXEiD3hHsKBeuGx/C43bZ6oWhsrjkxGxUTUMxDIRpykYytxLpuSdL2pyVJM3Rs2dPdF1nypQplC9fPuK9BX8spXKNWtSqcz9VqlbHm5AAQJcuXXjmmWfIlDkziqJQrXp1FFWJKH9CdSBIFD6Jjo7m7bfeYuzYscyYOfO2XDtVNY0SJUqwes0aDNPE6XLZm6Io+P1+Ro8eTe7cudmwYQM5cmQHYMJPv5ApWw4aNGjAufPnmfyT5bkvW76cmbPn2KVoApg1cybz589nzqyZrP1rOYqq4XQnJo+FGqjciARERVE4e/YsAP8GjXwoAhG6jztY5x6SsvV7vfgS4jFNE4/bTbooDw6HFpH45nQ6cXs8uD2eJDXx4aI0hmHi9frw+vwEAklr2kMPTY5gwqHHnXwnvlC3OU9UlFSyu4VYgkcpyZaXIjYSyS1n9+7dVKtWjd9//53nn3+eVq1aUa1aNQDatmlNxgwZGPbheyxZ9DvTJv/CPzt24o+/QMyRI3z33Xe0b9+eyZMmMeitt6hapQoupyVY43S5EYqVJe3z+y1vVXOAqvH0s89y33338cXw4Vai1m2Gqih4oiwteFVR7OQwn9+PaZp06NCB5cuXU6BAAQC+HzOWX6ZM5bPPP7c9z+bNm1OpuiU+U6FCBXr36mW9F1zrPhM0tuUqVsKTORuuDJlRNQfuqCjcUeluqGd6/Phx+/WatWuBpI1hQp39NFUNSspaDyK6PzHPIqDrtn5BKIP+Wh5ADDNMsOY6f9+maaJfInUruUXIhLpkkY+XktuCkMelqpFtTMeOHcvatWtxOp1kzJSJ+Lg4vvziC74YPhyH02nXP4fOqVC+HFu27yRvnjxs2LCBevXqUatWLQYOGBARmlXC2oMS6n0e9PiEaVKxYkX++OOPG/5lnVxo+b+iahrHjx0jd+7cGLoeITZz4cIFpk2bBljRDpfLRdasWenSrTsAHTp2ZMIPP/D4E0/w3XffAhATE8OpU6eIv3iRDBkyoKoqzZq3IFOmTHw+/Avee+9dXMHw9c0oFQxlyzdq1IgFCxbYojOXQwlrZhM+nkvX2K90DUgsXdNUFR3rXIem4Q8mZjqdzsgoT9h5IVW60EOOL6zE8XKevURyK0mbjyySOwrTNFm0cCF9+vThzeBa96lTpwAYOHAgNWrUIBAI8Oorr3Do8GEgKEpiGJjBqHkoet7+qQ5MnDSZ3bt388677wLQ45memIKIRiJnzpzh+LFjCCFQEInJUEKgCEG2bNk4efJkhJBLSjEMw9Yr/y9dycIJ6agHAgGWLV3KgYMHI5YOevTogRCCzJkz0717d1asWMFff/1FunTp6NixI19//TV79+2jYIECfPDBB2TMkIGSRYsAsGfPHiZOmsSjLVvSpvUTxMbGkjlTJkzDIC4+/rrHfDkmTpxIx44d2bFjBwDLli0DEnMJksOSwNVB1VA1a0nFH4xYhD+8Xa7FbIiQSqHPb5W3edwuojxuEFbCnmma9oNjkjEEJXhDuvzJXVtyC5Ha8skiPXdJqmOaJu2efJIzZ86QNWtWzp07hxCC+++/H7/fz99//03WrFl54803KVyoMJYqiZXRbJqWgVcVa9/48eMRQjBz5kyKBDuSde/amblzZrHv33+pX78+e/791/ZuARYt/N0SsgkmpQHky5uXkydPout6irPB7XmGa5en8LrfjxnD0z16ULFiRebNnUuNmjURpsmcOXPQNI3s2bPzw4QJjPn+e6ZNm8ZTTz3FihUriPJ4KFSwIPHx8QBUrVyJJx57lD//XkOtoEZ87dq1yZkzJ526dKHncz1p3KgRy5cv5+eff6Zdu3Yp+xCC/PPPP7Rr144iRYrw6KOPUq5cOWJiYmjfvr3dTCY57Kx5gpnyQbW6UPQiJEV7Nc85XHAmIpoSPC+UXOjz+XC6XBGSuJdcyO4ymJKe8ZIUIBPqkkUad0mq06ZNG7uT24QJEyhbtiy1a9e2y94AYo4csdTLTMuIA0QFE6JCsqUA5cqVY9u2bbzyyiv8u3cvQz/9FE3TWL5smSXAsn49hQoVsu9dtlw58uXPH7yiCVgGN3TMvn37UiSvGo6qafY4r9ewK4qCy+WiSePGbNy0iVIlSzJz5kyqVq0KWFKwe/bsoVatWjRs2JCKFSowbdo0Yi9cZO/evbRq9TgdO3awDdDZ2At0e6YnT7Rrz45du8iTJ29Ejf/58+dZvnw5AE8++STVqlWjaNGilx1fqAHL8ePHWbhwIVu3bqVs2bK0ad2aqKgoO8wderiYNGmSPfZrIWREwforuNRHNoL17EZQkvZyofnQEkNIyz6kFa9pGgqgB5eJQhnyrrAcg/B8A1XTIiIN4Rn7EklqIo27JNWpU6eO7UkvX76cJk2asG/fPgzTZNvWrcTGxhLl8VhhbX9kBy7TDOnEWwlX3bt355dffgHgniJFOHfuHJkyZbKzyPf++y8rV66kW/fu/DB5GvXqNySzZmAaOoowcTgVhOqgbLlyAGzbtu2GGXdN01CDoi8hoyPCyq+u+TqqCqrCsaNHOX/+PPsPHABg165drF+/nipVqjBhwgQMw6By5coAzJs7h4ceeogVK/5kzpzZlC1blpw5c5I5c2ZiL1wkR67c5MydtK7f43bz9NNP8/3335MuXTpLBCgZQmIzs2bP5puvv2bu3LkR3nHXrl2ZPfM3Gjd5GM3hZM2aNSiKctV+7+EYhgGmiRpMrlNVFT2oBhfy3FVNIxAI2D+Ha8aHE8rAByuKoofKCk0Nl9uD6fdjhDz6ZM4NCSfd6KUKyX8npfrwUlteIrlJvPzyy3Zm94cffkh8fLxdllW6TBnq1q0LEJQOTfyTDa21hjgSE2Nrrb/44osAZM6cmTFjxlC7dm2OHj1KkSJFmDtvHuUqVKRe/YZkcqloLhdoLoTDgykELrebvHnzUqhQIUaNHs2REycJ6DfmS9xWPQtKuvq83utqOBJ/8QKVK1cORjNMFFVl3vz5AKxbtw6AGTNm0LdvX8AKZ2sOBwMGDLAlZE+cOMHSpUv55NNPIyIg4Z+p0+Xiiy++4PixYxw8eJAsWbIkGYtpGJw6cZxWrR6j5aOPcujQIT4dOpS9Bw5G6BKsWbMWIxBg//79vPXWWzzxxBO2Hn44l9NoDwR7rouwTHin04nL5cLtclmlc5qWRNjmciQmCIbJA5uJXfHCDkzMdbjkb05VVVsuV3rtqYSSwo5w0rhLJDce0zTp3Lkzhw4dAuDXX3+1EqVEYpJceMKLqiiJOTBBJbF//vmH9OmiKFy4MNu2beOFF15gyJAhCCH49uuv6d69OytXrmTjxo1omsY9RYpwcP8+Aj4vztD/gOAtFIfbDsd++tlQVv71FzWqVGbp8j9v6LzDO9Nd2pTkWli0OLHD3YkTxzGF4Nlnn6V9+/b2MXFxcfZrp9PJvLlzef755+0a7CxZsjB8+HBeffVVAE6eOMGIL7/k6JEj9thUVcXtdpMte/ZkDbsQggEDBlCydBn++GMJP//0E8v/Wkn3Hk+TLVs2MmXJwqefDAFgz7//0qp1G0qXLk369OkZ+tlnSa9nmnbS4aV90sMN56VG9FIjGzrmWhIiNYfTrtJwBD3yS+9lBrv6GcFudOHvuVwuPG63rG2X3F6Ia+D8+fMCEOfPn7+WwyWSa+bgwYMCy3USrVu3FoZhiLj4BHsLBAIRx5umKbw+n/B6vcIwDGGapqhdu7Z9jWXLltnHxp47a+8vU7q0OHXqlDBNU2zfvkMoiiJee+11sWrVKnHx4kURH58gfH6/0HXdvvfF+ASxadt2Ua16dZEzZ05x8sSJGzZv0zRFQny8SIiPF96EBGGa5n86/5dffhGAUFXVGtupUyI+Pl5s3rRJZM2aVWTMmFF8+eUI0aBBAwGIsmXL2p8FIEqWLCk2btoUcd+2bdsKQJQrV07s2LHjmsbx7bffCkD07tVLbNm0UQQCfuH1+UVsXLy4EBcvDMMUhmGIt99+W5QsWVLUrl1bvPfeeyLm8GGREB+fZN6BQEAkxMeL+OAW/r5pGMIf/B3dKAK6Lrxeb5K/M8MwhM/nE/5AQJimKfTguEK/L8mVuRU2I3SPk/t3Cd+Zo9e9ndy/K03aN2ncJanKmbOJBrhw4cLWF6lhCJ/PLwKXfIkbhiG88XEiIS5OGGHvNWvWTNSrVy/JtS/GnhdtWj8hKlWsIP7Zssnen+D1ia5du9n3nT17tv1eIMy4x8UniLi4eLFr926RMWNG0bPns//JCJumKXx+v/D7/cmeZ5qm0HX9Pxt2IYTQdV307dtX1KhRQzidTvH6669bxicuTvy+YL4AxBdfDBdxF2LFju3bxORffhb3319HlCxZUrRq1Ups3rJFxCckiO3bt4t+/fqJkSNHiujoaJEte3YBiNdff10YhpHsmBN8fnEu9oL49ddfRXR0tHjyySeFoesRvxPDNCPmFdB1EZ+QIBISEkR80EiGjLv9ORiGMAxDxMfHi7j4eBEXnyDi4//7g0+SMRuG8Pt8InDJ78E0TRGfkGBvyc03/Fi/3y98wYdKyZW5pcb9wB7hO3v8ureTB/akSfsmjbskVQnoujh0+LCoWbOmAET16tVF3759xZkzZ5Ic6/d5RULcRZEQd1H4gt6TaZri6aefFlWqVElyvGmaIuBLEP6EeGGGfSH7AwFx+sxZcd999wlArFu3LuKccOPu8/pEQtxF8fFHHwlA/PzTT9f85e7z+23D4ff7/+tHc1UCgYCYOWuWcDgcoly5crbB7Nypk/3gcv/9dcSPEyaIdFFRAhBvvPGG8Pp8Ij4hQRyOiRGFChUSGTNmjPDqAZEjR04Rn5A0crLv4CHR740BIleuXJaXX7682H/gwH8ywIZhiEDQIxZCCG9CQqKxNwyh65HRm5QaU6/Xa19fD5tPEuOewocISSLSuKc+cs1dkqpoqkru3Ln5Y8kSmjZtyurVqxkyZAgDBw5Mcmy4WpiqqRiGgdfnI3OWLMTExCRZt7bWUD04PVER5zo0jbNnz7BixQoeeeQRKlasGJHgpqlKsNuZitPlxOFy0/O55wD4csSImy4xGj6WS7OxQ3MOia/06d0bXdd5+OGH7WPeHjyYHyf8QJvWrTl/PpanOnQgPiGBihUr0rlzZ1RFYfs//9CieXPOnz/PmjVr2Ld3r72m7nK5UDWVf/fswdStJLZ9+/bRq1cvSt5bjOHDPqNp8xasWr2aVatWkStXriTjF5dJigNrfTzUsOXS46ya8cSubOG93VPwgSa+DNsdypjXNA2X03n5WnbJ7Y2Un00WmQEiSVVCSU9bt2xhzpw5lC5dmmbNmtGnTx/A6uEd0HW0oEFwuj2AQFFU4r0+NFVh544dFCpUCFMItGv4gjaFsDurlS1Xzs6GDmVIC9PE7XbbWe0BXbdagqoqzZo1u6qsaQinw2EbrmtNtjIMA38gYBskPRCIKOXyh0RcgiV0fV97jf/16cOePXtsw5UrVy4ee/wJHmv1OEIIxo4ZwwsvvkiDBg3Ilj07Dz74oCVoExVlif0ULoyiqmzbupWezz3H+vXriYmJoVy5crzb7yWOnz7HyO/H20JCnbt2J2t0NOncTgiW9emBAMI00ZwODN2wu9S5riLFGtKM13U9oqudO9iJLblzhRD2Z+R0Oq/6+3C6XOiBAIqqJimLU1UV1zX+PiW3J6HGMSk5Py0ijbsk1Tl69CgvvfQSAJOnTKFY0aI4nU7bsIJVmqSRKP4igt3LTCE4cuQIpUqVSuJ5JSQk0Lp1axRF4dNPP6V48eJWlrqu8+uUyQC0bdMmUgwleI2AruN2uTh9+jSFCxe2M8+nTZtG//79r2lehq4jgmIq18qlcqaXnntp69Pu3boyfdo0W7ktNH5NVe2HlfXr16PrOt988w1Tp07l1KlTTPzlF2rfdx/ZsmXDBDxOJzlz5WLSxIkIIUiXPj0AAz8cCkDTh5swafIUFDXROIa8akPXMXTr/qbf0hwA7LI15SoZ6w6nE+0yZWTJacSHN2gJ/Z6uhKqquNzuKx4juYORCnXJIo27JFV57bXXGDLEKpXKnj07de67D7fbzeYtW8ieLVukMSPMawPcTgcB3SBLliwkJCREGAchBP/++y+zZ88GYNasWXTo2JFcufNwcP8+Jk+2jHvOHDnwBb14VdMSQ+7Be7rd7oiSsjVr1rBu3XqqVKl81bmFDLUI1o8n572HG2oIKrAZhl3m53Q6MUwTXTfQNBW3y4U32NjEMAz6vvoqCxcuBCBdunTMmj2b+vXrWw9DqrV00a9/f7LnyEF8QgLr161j1KhR1K9f335wCo1BC9aIq4pCkyZNmDdvnj3OmCNHiYpKZ987dJ4l2Zo4H8WahGXUlUva616G0OdjisSe7KZp2s1YHJqGM0wVLqJM7apXl0juTqRxl6Qapmnahh2wm8UAzJ41iy5duuB2uTCCIXFVVfEHArYB1lSV9FEezp07Z4vghJMnTx7SpUtnS53+/vvvmIZBbGysfUyz5s1Z8adVw26VzlvmImRMMmbMiBCC06dPkz271Rf94sWLGIYZIaiTHOFSqcmFjk0h8AWNpcPhiNBFD4mvmKZJgs/PwYMHWbpkCXEXL6CqKhUqVADgq6++IkOGDFy8eBGA5s2asf/AAXLmyIFhmAgU8ubLz6C33o7oj5Fo2K05e31+hLDGamBFKKZOncqypUsY/fU3uN1uQOBwaBi6gebQ7DmpqobD6UIIE82RKAl8rV3kDMO0msEE5+txuyPyGnTDiDDudvQGbmhjH8kdSkqbv8iwvERyY9i1axfPPvssu3fvBiBHjhzMmzeP2NhYVFUlV+7ctn55aE02RMR/Q0Vh6tSprFu3zl6jh2DnNMNg5cqVtkzpjFmzuf/++1EVhYCu8/2333Ds+HGaNG5sn2cGHyLCQ7hGcL09c6ZM7Ni5kxrVqzPl1ynUqXPfVefpdLmu6MGGN5LRdR2VxJDz9u3/oGoO6tSpQ6vHH2f27NmcOX2a9OnTEwgEIvTMd+3eTdasWfjl51/o2rUrhQsVYteuXeTPnx9N1TBMM+n3V6JCUERSW+g4RVFo1aoVrR5/nCGfDsXv9+P1+YnyuCN01kPHasF181DeQ3Kh9ICuowZFXyKiLOEKccGX4edfasAv/ZuQ3OXIsHyypM1ZSW5rPh82jCVLlhATEwNA3759qVy5MvXq1eOBBx6gRPHil/XIHA6HtWkaDk2jf//+NG/enM6dO9vHGIbBjh07aNGiBbGxsZimyZRJk3CpCg5FEOV00Kt3b9555x3uv//+CENhmiZen5/4BC/+QMCOFAR0nYIFC/JU+/bMnDHjmjzSUJexQCCAz+cjweuNaCOqKAqYBnt27aRC+fI4nE48UVHkzZePKlWr8cTjj+N2u1nyxx9cvHCBPXv2cOrkSY4fOxZxn9jz5xEC2rZrR/fuVt/20IOTEImGPWQwFUAxdWsLM6z2nELqecE1c03TiIqKst66zFx9fj+6YRAIi6yEE5q3GZa4GMIRlBVWVQWXy2mP1eN243a5Irx2ieR2YcSIERQuXBiPx0ONGjVYvXr1FY+fPHkyJUuWxOPxUK5cOebMmXNTxyeNu+SWYhoGxYsldhXr3LmzLX96LYSy6xVhMnvmTHbt2kXv3r2TGNssWbLQpk0b3nrrLQAuXIgFYYAwUYRhPzwYphlZHhUWSo9IbgtKkJ48dZJTp05hBPx2x7DLlcaFStoM07TD7KFGJwBCD/DtN19TvkJF2xgDxMbGEp01K2AtLRw6dAi/348/GML3eDz06tXLPj5f/vz2669GjsQ0TZo0bozH44mYm0PTiPJ40BRhGXhAxVrndjocOJ1JvWEF0LSgrKvTcU3lYsk9AISfF3othEDXrb7oLqcTj9ttl8BBog6/RHIlQo1jUrL9VyZOnMjLL7/MW2+9xfr166lQoQKNGzfmxIkTyR7/119/8eSTT9K9e3c2bNhAy5YtadmyJVu3bk3p9C+LIi5XjBpGbGwsmTNn5vz581fstSyRXI24CxfIEPwbeqr9k+zbf4CvvvrKXkMOhYgvXa89cuQIAIsXL0ZF4FAV2j7VkSaNGzNr9uyIEqdQlr0IJmiVLFmSUqVKMemnCYkDcbhsg6uqqh1qFkLg9Vkh70vtWP9+/fj888/Jnz8/2bJlo1ixYlSuXJk2bdtS9J57kjxgCCHweb1JMvE9wbD/7h3/UKJ0WQA6duzAlCm/8nq/fjzzzDNkzZjBKvFBoX///gwfPpzfFyzggQcesD8fh9NprdkrSlBzX7GrDEL77HB4cI6KoqAHAuh+r2XcnS4URUULRi90Xbc86zBxf03T7C5ooXlZ00mcr2GaVrlZcAzJfRZGsKNbyGAHdJ1AcK3d4dCShPsvxTRNa+lES1zvF0JY0YLg/uTuLbn13AqbEbrH8WPHUnSP2NhYcuXO/Z/GWqNGDapVq8aXX34JWH+bBQoU4H//+x/9+vVLcnzbtm2Ji4tj1qxZ9r6aNWtSsWJFRo0add1jvxLysVhyS4lKn57HW7UC4Meffuavv/6KyMrWAwH27t3Ld999R9zFi/z999/06tWLfPnykS9fPjp27MhTHTvR9qmOAPTp3StJ7bKiKLicTtwuFz6fj927d1sGzmmt9aoOp23MgEgvXgjcLicup8MWOAkRE2M9YBw+fJiCBQty8OBB3nvvPcqVLWu3rL10HE6XK7FG3+HAE6z7Dvj9vP/hRwDUrFGdH36YQP/+/Xmtb1+yZs2K4nSBaiXXffThhyTEx1OnTh27yYxpmlYtOaAEw+cOhyPYFtdvLwMYwQQ1d3CdWwiBoeugqCgOJ4Zhous6fr/fNsyXetDhBAIBvD4f3ks62WnBBjOXrqeHfxaOMKMMiR3YwGrda+9PpjtdKAqi63pkFz0h7NwFM9hJUCK5HmJjYyM2X1hlSDh+v59169bRsGFDe5+qqjRs2JCVK1cme87KlSsjjgdo3LjxZY+/EcisFMktRVVV2rZrx69Tp9r7zp87Z3ujuq7zySefMHr0aPr378+pU6dQFIUBAwZQtWpV/vzzT0qXKsXuXTvJGh3NQ40aJ7mHKQR+n5+YI0d48403cDgcvPvue5gouNNlsA2jy5nYDSwQCKAHjUTIyzWDRgYs4/L1t99SpmxZsmfPRrdu3dBUlXPnz9Pr/9k787ipxvePv++zzcyztFO0L0RFKqlQlkJlX7OvCV+Rfd/Xny1EpUKWZEt2pZQSQqSIipAi7apnmZmz3b8/7nPOM/Ms7ULm83o9PM/MnDPnnJnOdV/X9bk+n4suok+fPkybNo3OnTtnHYuyqa3IH5DA4t8U52D2N9/y6KOPcn7fvsrdLHi97/tqJE7XIbw+nhdl1JUFUbecol14rtE+PS9ixauRuyDYlguKRiY7PSDLaZqWtf/y431S+niuG4jFVH5rycz6DcNQixXAymgJuAGJEcr82KsM2pXoAOTw34ISsdn8zz3ctvzEza233sptt91W4fUrV67E87wKyox169Zl3rx5lb7H0qVLK3390nL8ma2JXHDPYZvj6KOP5oYbbuCee+4B4I033mDZsmUsX7GCjz76KBpV22OPPTj55JM57bTTyA9EVY4++ugq9yulZPr06UyZOpXXxoxh5syZFBYWMnToE7TarSXS88oU4AKEY1cqawdQTHvX84lb2bPV1QsLuO7aa5T4ugRfQrVq1Rg16gV2260lL7/8coXgXhVcx+GTTz6hT58+PPDgg9SuXRsIgnE5ZTZfSmTGwkMzjGjm3zBNpO9HpWq9XAAOjz3jKpU9rmkITVdZfxDMfc/D9Tw1Yx+U4tOpVBRcNU3Lamdkwk6lo4WDiAm0couazGsfsyxFmotXFJfJzNjDhUnIyPc9L0vwRghBLB7Hc1204HU5/LeQZQ+9mdsDLF68OKssH/uXCx/lgnsO2xyWZXHTTTdhGQaaJnhv/Hi+/fZbqlWvzvnnn0+nTp048MADqVGzpiLPbeQN+/LLL+fRRx8lHo9z6KGH0v+SSzj00EPZoXZtfM8FKXEcm8yBOsd1cd3sYBgGeSgTzgllTi3LwnYchMguJdeuXTuap8/el8r+RZiBozLT6Z99RjqdZsCAAVFgl5QF4qxMVWaXrA3DyCqLh4HS9bxokRIx5DN63F7QawfQTUsFdikxglK6Y6dVyR6BHwjJmJaVdSxaRk+9sr56Zb9nXusQoXZBZTAMI1oEhNcsbBlQSV/e8zxFfnTdQBc/N/uew6ajWrVqG9Vzr1OnDrqus2zZsqzHly1bRr169Srdpl69epv0+q2BXHDP4W9BIpHglltvxUmnuPaaazBi8S1iRksp+Wz6p8TjcVYvX8bq4lLy8gvIT8TRkPhB/A6DdQjfK8sSBagytfQxgywRqZjlvudBMDMfsywc18UPdvrb4sXMnj2bCy+8sMJxZYruWKhg5TgOH0+bRrVq1dhjjz3Kn0jwf1WS13RDZePBPgzTjPru0Tn4Pm7QO8/cTRh7XddV6nOeW3YNfB8vOHfPdZUSXrS9BITqewfqfZnXuarPyYxZuLaD0Cpm7aAyfS+jApF5DpkLBV3XSWTIDIcTBkYVErVe5qIhqGLk8N+BL2VUTdrc7TcFlmXRoUMHJk2axDHHHKP24ftMmjQpS28jE126dGHSpElcdtll0WMTJ06kS5cum3vYG0SOUJfD3wahaViJPKxE3haPPEnps2+XLjiOQ+8jj6LBzjvRskVzXn/zTdA0dMNE1w1MK6YkTlFBzjQNZX7iu2i+gyEkBXkJYpaZ7UIX/O77vgp6rpoRF8Drr48lHo9z6qmnVnJcFbNZO53mueefp2fPnqrkTDiWFsygywyinOfhOo5aVMTjCCGwHScqRQohcDyfpO1UeO/weF3HUSx4NFw0fMpEdUKPV9fzKh1hK5+Baxl8ANd1ygVoJQBkxeLZbQXfV4S9oAISEhUd2yadSmUT5MrBCzQGXM/LEu7JRCY5sjJ+Qw7bNyr4FW/Gz6biiiuuYMSIETz77LPMnTuXiy66iJKSEs455xwAzjzzzCwPigEDBjB+/Hgeeugh5s2bx2233caXX35Z5WJgayAX3HPYLiCExu233coF5/dVDPMHHmLFiuWcfOIJ9DzsMGzHwQyc3oxAr/2SSy9l3LhxxCwjEnPxXCfKLnVdz5Rsw3FdZbUalIzXrV3LPffczf33388RRxxBQUFB1jFJKREZuvigmLY33nwzixcv5sqrrqpgQUqgZicRWcpZvq/IanY6Db5PeEvyfYkdtBU8P+yFC6xgJj18X9fzcX0fKTQ8oeN5fvR+BCV4TdfLsl7pq58Amq5jWRaGYSB9HzuVxLVt7FQyyq7tdJp0Ol3BptaxbfyA7yAoy9rDikZoMFMpMhdHwWvDRUGYsRuGQSweJxbfsupPDv9O+HLLfzYVffr04cEHH+SWW25hr732YtasWYwfPz4izS1atIg//vgjev2+++7L6NGjGT58OG3btmXMmDG88cYbtGnTZmtdhgrIzbnnsN1AlqWzuJ7PQw89yPXXXYdhGPTo0YPXxo5l7vff8+yzz/LYY48BcMUVV3Lv3Xfhe07kDicIyGaGiRcEThEwcsP3mDNnDsOGDeOpp56iQ4cOTJgwgVq1amUdj+d5OEG2Gf4ju+eee7jrrrt48KGHuCjwiA8DcGbBWdP1KEhGxyVElmwsQqiALSH0YotbRrSdoevReJgvtCCgq60NoRYvXujcFuxV1/XI4Q1Ubz7cnxX09j3Pw0mXletjibys7Fs3jCxVuUxCnhlk7VJKbNuOgnpYSShv4RrOsYe8B4LtoveOx3Mkun8gtuWc+6IlWz7n3mjnTZtz/zcgF9xz2G4Reoq/++67HHnkkTRu3Jhff/01ev6ww3ry2tjX0FEB20cERetge83IDriGgee6DBkyJFLVq1WrFosWLYrY/OXf306n8QEkfPfdHPbZZx+uueZabrn1VkVKC0r74aIihG4YWWNvBHPiYbYa+qSXJlPRtppWcSxMCI2UU9aTNjWBkBIhiDT07SrmeTVNg4w+uRCCeCwWZM9pfM/DMC1VCXHdqKJhBRWSzOvgBX7tmUz3ULDIc92sXvz67FnDaxoiF9z/mdiWwf3X3//Y4uDeuP5O2118y9Wwctgusfj3Jey22+7k5eVx7rnnYhhGpGUPMHzECMa+/jqaYtgBSvFN0/WKPbkgWxfA008/HWlCX3jBBSxcuLDSwA4ZBidS8sTQIeyzzz4AtG+3F5omska0ywd2I8h+dV1HN4xIY92KxTADdrsQAgMf3XfQRMU1uq5pkdtaCM13sCyDeCIROe1VVcoOFeHKzxoJIbBiceJ5+dEInb6e0rgWjNXphoHjOJHGfigvm2XhuoFAHU4sGIYRLXBczyOZSpG27ZyIzX8Qf0dZ/t+AXHDPYbvDc889xyHdu7N02VJuueVWLuh3Pp07d8J1XQzD4PHHH+ess84iHgt6yELDD+fDNROpqx8QQVBXYX7Ot9/Sv39/Jk+eTCwWo8/JJ7Ny1apsDfoMuK6L67oMHTKYG2++OXr83MDcJVwwVEAoLxv0uc2ApQ9qPj7sOUsp0QQq+89YgJiGji49pOfiybASIaOqhOcErQIpsW0HXyoWfqbEbAiR8aNXEXjDnnuoFJfZTy//utA0JlNjXzcMDNNUhkDBYiFsaWT25V3HxrFtRMCbiGRsg4pBqFeQw8bj119/5YEHHsjyNshh+0CuLJ/DdoVkMskOO+xA4yZN+L/7H+Cgbt0wgiXs2nXr0HSD/IJCIMisNREwxUXUr8/KqP0McpgQjHltLAMGDGD16tXRwy+9/DInnXhito2p75FKpvjiiy848OCDKxznggUL2HnnnSsN7mGgC/vSfjB+Zpkm6YzRNNOy0DSBk05H2UfoNCeljy90EBqur8rfcREEX8BK5OF5Mmv23DSMKPCLjIw+s2Su6Tq+7ysp2YB85zhO1C7QM7gCmcEaQt3+dNb7hdtUYNeXK717roMbBHFN17Fi8ej5ymb+c1g/Vq9eza233srw4cOxbZs6derw9ddf0yDDhGhLsC3L8r/89geFW/AeRevW0bRBriyfQw7/WCxdupRevXph2zavjx1L756HkZeXAKHY59WqVSc/g9EupVREriAwKNJaWS/YNNToXAjTtDjttNNYunQp0z/9mGuvvRYA1y7LhB3HJZVK8tbY1+h6QDcOPPjgSpWuatepU+k5ZAZVO52KZnBD29nyK3FlmGKEJ4T0XMqG+tV+DE1QmBcHTSf0g/PcUIe9bI+eaxM2I4RQQT0U4BFCza67gUmLHZTAy2fpmb+XZ80LIVR7IdDZdx0nqkRkoZJ8I+uhck+H+7RygX2jIKWkdu3aPP7449i2TePGjVm5ciXffffd331om4VcWb5y5ERsctguMHXqVI499lhM0+Std96leYsW6MHIleN5jBo1ipkzZ/LrwoW079CByy+/gtq1a7F61Sp8KYnH49SsUQNN03jhxRc5/PAj8HyV2WpCR0OxtjXPY9HixVx37XVMnfYxu7XclYM77cWyZcuY8eWX/PjDj4wZ8yrTp09n3y5deHPMK/Q4+EBczWLevHlouk7devWIBSXwCveVYC7dtKxAW14DIZCSQElPIJFYhoGbChTxhIYQGlJ6UWDXzTjlK9SaruPKkMCnDFc0wA8oedE+yJhvlxLhptXEnJ5X7lAlxUlVSbB05UJnBH11yJ4/z9S4NwKt+hDli4ciMNrxAjOc0AFPSh8kGOXaBxG3IYcNorS0NLJBBrjgggsYNmwYt9xyC4ceeujfeGQ5bG3kyvI5/GshpWTtuiKef/45rrn6avbYc08ee+xxdMPATqfZbbeW1KhenVtuvZW777qL1q1b06RJE6ZMmYJhGHTt2jXLgjETu7ZsGZWBW+yyC4f37k06nWbMmDF88cUXADw15FFOPvoIrrv7AYYMG4HneZimSfv27bn+2ms4tPtBoIcWpCKamc9kxksIywWZZ4Zpmviej+e5CFRAs52yTDhm6rgZ42joBtJJq/3qBlYiH9t2oh60pqkxPiXcY+I62QI0umkG6n0+mlD68Z5jg2ujBQFfaDrE8vHcYGxQM5Cuso510CkMqiLlLWF93ydt29Fj4cLGCbJ/IyAObgyi/n5QWcll6huH5cuXc8cdd/Dss89SXFzMAw88wM4778yZZ57JiSeeyOjRo7fq1MG2LMsvWLRki8vyLRrtvN3Ft9xyN4d/DZTMqjI10XWda6+9lgceeACAVq1aYRgGXTp3ioJLp06dGD58OMOeeIJLLrmERx99FCEEM778iquuupJFixYDSve5QcOGfDljBgD77bcfLXbZhZo1ayIlfD1zJldccQVCCHr36sWQIUNo06YN+3bpzPAnnuDxocO4+847OP7EPtTbaSfVSw4FYIQIfg/G7USZMhwEQb6S9bVr2whNRwgNfBcvVYqhmwjDQtM1JVCj60jPQzNMfKEhjRgyWDqk0umsskB4TcJ5eV3XVfYcluZ9HyfwcdeEj6kLxLqlIH2kEce3Eiqz911EaA7j2dEYn0mQ8fs+0vcQulHhvTN/D+1wPd9fb4AOS/9ha8ALvgOgpH1D4x+oaGSTg4Lv++y///6sWLGCK6+8ktNOO42GDRuSSCQAeP755//V44R+8LMl22+PyAX3HP4VkFJG2Z/necSEYODAgdHz33//PXvttRfDhg2jeYsWzJ49mwcfeIC2bduSl5fHlVdeGd3A9tijDePGKQ956Xvk5eWRth2GDxvGgp8WcPPNN1MnMHPxPB9NE6xZswbp+9SqXTvaj5NOMXnqVDp37swVl11GLL+sn+9mCNiEmXkQ1jLPCkkGgS8ryIuyoBjo3UvPwYjF8R0bDzBjCUW6cxwlBiPC0nrZbDzhLLkMGO9aWf8c1yVcAUQCQFKJ4jjJEvRwgeLZ+Hp19HgCEcjvqsMS+F6ZyI7jOPipkuA5DTOvMBp30zRNGdEEZfbw85RS4qD65q7nIX0/ErLJfE2Y8ZcPQZlCQSERMYdsPPzww/z4449MmTKFAw44gNLSUo444ggAGjVqlLtm2ylyn2oO/1pMmzaNRb/8zO133sWee+7BqBdGRyzzA7p145ijj2bo0KEcd9xxNG7cONouFmaMGY5pMcuMjF9Ms0xoxTBUubi8+hwAms6vvy6iZcuWyHL+5Z7rRoFI0/QqRrRUWPT8QAWW8pl8VvEeoSs2ux8oyHlSYvugi+z5cN9XkTxsAvgZewnL2iG7XYYSt74LMuMdjZhaeCDxzTykZuI6rhKNCa6Z0HQ8O6UU7gwLx3EIi+vS90mm0ghNELcsYoG7nBs4uJU3jgnJe1CWkYdZO5TjAFDmEpdpGhOa++RQhnvvvZcbbriBk08+ma5duzJhwgROOukkHMdh6NChUZD/N6OcDMNmbb89IvcvIYd/BYQQWKapAkPgXd6lSxc6d+rECSeeiNDL+q9h2blp06bcf//9le7LKNfjFUJgWRXtRNd7TJrGr4sWcVjPnlkmM1CWzWa8gfq/jP6DCPvwUgaMXRkFeIFAF0oxD03HEzqOLzGkV6agJ8v+r4Xa+L5E00SgM1/JHL3MdlELj9P3PDTpIYPxOakbuNV2QqTWgmGhOaVgqvEz3Si7TlpckewcR1nFRgsCoSumfzBuZ5mmGpkLFjmmodzuvEBFsKqycJjlh4sBx05Hl1Hq2ddczwX2CKlUiqeeeoobbriBa665hvvuuw+AefPmsXbtWnbffXeWLFnC6tWrt9r429+FLWW8b69s+VyTKod/DXRdJxaLRfPRoAKsbv49I1B/LFnC8mXLMAwjYoOHCDXUw1lvPVBi0zMzdKQqjwvVQw+Do09gHOO5+I6Nb6eVXasQuFLZwGqGqaRcCYJz1g0uO1DqAjQRuM5lPBUNwkW8gMCRLiDQoesYhbXAsJBWHlJopJKpiOkupQrcqXQazw/82Q0LacRAz14oyagtUfa3K6HU8SmxPXypAr6h6xHhznOdaLTPKDcLD4qQ57kOSB8rZuUc4QKk02kOOugg+vfvT15eXpbNaP/+/bnuuuv48ccfufvuu2nbti1t2rThl19++fsOeAsRVni25Gd7RC645/CfRCioEkqheuU80te3XTqV4ovPP+eYY45h5/r1I6tXLzBpcRzlLGeYZqSkZlkW8VgsS9QFKSlOOdiuh+P5mEFwEgTBWMtk15f10Y1YHM0w8TwPXVNCPJZpqN91nZhZpokvAMs0VQsieFAPWOZhcA8Db2gw4wsDhBpHM6w4wrCiI/BF0Fv3fVLpdKQ0V35m3tA1LNPAMgwcxyWZyib4aZoWudkBuMHYm2maURAPXeQEqswfyt4KTUerkKX/ewlhWxOjR4/mwAMP5KuvvmL69OmsWbOGnXbaKXpe0zTuvfde0uk0n3zyCQDfffcdEyZM+LsOOYe/CLk6Vg7/GYSCKwLwpSSdTnPNNddQWFiIYVp07tyZY446stJti4uLGTlyJO+//z7fffcdCxcupFGjRrw2ZkxU1tQ0LUvfXEqJHqi6hRBBjzvMuDXUjHhYfi7MS5Qdr++TDrXdNQNDU0S4taVpNAFmxtLc8zwQGiW2i+56mIKgGlA2B+4Geu5hpcGNPOAl0ohnZdaxQP0u3F6iSG3Sl8pMpgp5WZHxu++qakP4WLSNlNgl6zABT8TUAiQw5fE8FzQNXVf6+pmqdKAWAT4gpGoPeJ5bQeHuv4rHH3+cSy65hIMOOogxY8bQuXPnKl9r2zZdunQBYOTIkZx11lnb6jC3OnJs+cqRC+45/GfguS5vvPEGTz75JGNff51Zs2YxfNiw6Hld10mn01nlXdd1ee6557jyyispKiri4IMPpnfv3hzSowcHH3wwhdWq4QdBTdO0MjlXGbidkc3iFkKVzwPZGOJmBrGsfOVACIQVxw8zXClJOyrLB9AMgZ7hBBeaxHi+JGbqCCSapvgJXiqJFirXZWTHZQhm4ANGetjbNgPDGimdQKZXaddHLCaptPelpgd7UZUCx05nMJ00EHoZD0EIhPQxvTTxggSaqchzdjqtnnds/FQRugCrWh2EYWVl8+pSqGqDZcWyFk//VaxcuZKbbrqJfv36MSzjO10VSkpKot9POumkf/XiSFWdtmz77RG54J7Dfwa+7/Psc88x8+uvEUDLXXcF4InhT1JSUsyVl1/G8uXLozKm53msWbOGyy67jP33248nhg2jUaNGWWprqo8uotJ0SBxT/DgZvW8mZMb/TcNQsrJSoge67VJKPM/H9RRJDcqKzpnub54EnYBJLgRe8JSGRPiZZjYGMkMj3/d9dMPAMg1sR82th/m1a9tZ/AXXdZUbnWViUWbq4gbTAJoIzk8qJT0tHLPLOFMdH09qELQNZKqIlCdJikIsW1Izsz0vJXrpGgQ+rjAoLSmlWvUyRbpwpA4p8d00jgNmXgGa9u8L8CUlJXiet8XCKS+++CL/+9//kFJy1113bdQ2ZtAeeuaZZ8jLy9vAq3P4NyLXc8/hPwPdMHjl5Zf5bPp09unUiZNPPpl9OnbkvXfeotdhh6LrOjvvvDNdu3ZlwIABTJ06lYW//EJRURHjxo/n+eefj0hkTuD4BuC4LiXJFKUple3GYjGsDInU8sz8TAghMHWBJj1814601n2vjLSWmZkYmkZ+zKQgblIQtzB0XZm1+BJDU6X6/FhZtPSl6lVrhqn2I7RopaAJ9b5hZ7+yDMjzfUpTadK2E7HaZcZiRQZld+G7aNKPgoZhxTKIg8H+pXpPq6AGpVoCKTTSrk/aVWQ8XRcI10bgI4WG0HQcqeE6aTzXVbK8hoFlmpGADpB1PP8mXHPNNVSvXp3x48dv0X5OPfVU1qxZw3777ccOO+ywUdtMmTIFgK5du27Re/8T4Eu5xT/bI3LBPYftBjKDsR4S2+wM21Bd14knEiz+7TfmzJmj9OiPO463336bnXfeme+//56nnnqKOrVr8/rrr9O9e3c6Bh7sAJ07d85ixbsBgS4sh4dz3KAyzMjfPKvnLkjEYgEr3ETXtSqNV4TaAE+CA1FwTFiq/+4GbmxeULYPR/xM04xo8eF4mG6akZGMk04r85fSoqxo7gY/aBpWLIZumBED33Fd0raD43qKpR8GdUDoOrpuICXY6TTpdJqU7eCigaYFJfuwf6908I2M6oCuaaqysGY5emotPgI7rzZuogaWaeJ7agQu7TiUptI46ZTiLggBml5mnPMvQ79+/QDo1asXf/7552bt4+mnn45+3yfju7ohhGX5mTNnbtb7/pMgt8LP9ohccM/hXws/QxQllU6zbPlyvv76az755BPWrlvHxA8+4LLLLuOqq67ip59+AlQA3G+//Vj6xx/MmzuXevXqIaUyjtl1110555xzeHH0C8z7/jsmvj+eUaOeZ9nSpaSSSQ4++OCsknU0g51BGiv/fNjLlFKSsh2SaRsExGNWNNJnGIF3fGCQEkITQtm1Rg8oH/O0beM4Ll7QCtDwMfGxdI24pYRdJAKEhud6ZQsewEMoApIfZOy+C56bFYBdz8cP5uVDSCBpO5Sk0ni+rxYtmkB6LtLzysbwpJKyBVUlEIZFLJ7AtExiloUezKbXKoiRMHUKYorlL32f6Ew1PVqIaJpARMz+UCsgXAAJDNPa6v1iKSVOsgS7tCiqoPwVaNu2bSSffMUVVwCwePFiPvvss43ex9ChQ6Pfw31sDJo3bw7Am2++udHb5PDvwr9zyZvDfx4yYLsDfPTRR1x5xRWVWlbWr18f27YZOnQos2fPZtddd8UwDHasW5e69eox9vXXqV27dmTLqgRwDMCla9duWPEy33AhRFZmLaOSXhAIpVT2r+V8zAEc14vIdr70yc/Yr6brxDP6nqGzmue6gWubgq5rwTFkKtiV5R3Sc0kHMrTRYyi/c9Mw8YNxNhkS3DRNJe66ia4buL5ipvu+TyqQdNXw0RDYGe/lOC5+MINepqEnI916FXwDhb+AlxAuZEIp2bTjBlUQSKbTKsuoVg89uQY9no8fMPJNQ1UiZNon4BHio6GjzvOvyNo9p6wt4qaTWHmFW/09AK699lq+/fZbQPW+bdtm9OjRQIYi3wZwyCGH8OWXXzJ16tQqe/fpdJpVq1YxatQorr32Wg488ECmTZtG69atufnmm7fOyfyNyInYVI6cK1wO/0pkOo21b9eOefPmcc+997LPPvtgWRY//vADjRs3pnOXLqRKimm7Vzt22qkeXfbdl+LiEhKJBOvWrmXtunV8+OGHrFq1KqtPXt7ZLITnediOE/1t6LoixPkSLUMGNhaPZ23ruC6pYPRM1zTy4hU93kG1FlzHwQ803jP/deqGjmVZuK46BoGaJ/fcsuORYbkaVZbzpOLlK1a7io4eAl3TMQw9UJYDpCRmmbi+j5Mxf66COwjDImmrEG8JomUCgKYbeFKNy4WWd1rQ249ZZZm1bdv4gT+8i0Y6eO+4oUXrEcMwArEdlbFny+r6eJ4fLXIq+3wqvabBIkxbjxJeJjzXiex0ReCwl7mvjX3fquD7Ph9++CE9evSo9PkRI0bQt29fAObPn8+CBQvIy8vj999/5/TTT8967Zo1a+jYsSO+7zN58uQsmWXf97n00ksZNmxYlsUuQI8ePXjzzTf/MjLdtnSFm7ngNwoKN/89iovW0b5Fg+0uvuXK8jn8KxEakgAUBFajN1x/Pd999x177703Z599NgcffDCJeJyC/DzuvOM2vvxqJqNHv8isr79myJAhjHrhBd5++22Ki4t55JFHKuy/sht4aIICBDr24PqQ9iHpySCYVoSuaZi6hqEJYmbV2aZj23ieG4m2qECm4nVIzDMMHR2lJOe5DniOKq0jIzlbAsnWMIPW8MtaB0ik9MsCOyDwcew0MmOhED2naZiGTlyDWLh2kB5IH4lqHUSLCCFABiQnX0bv4bpu1hhbzNCwDB1T17LG+XzXxbHT2OmU0oovd+1NUwnwrE+yNhO+lCxfl2Tp2iSrS9IblRFruoERS6Bbccx4WfAL2z+pdLrCBMTG4rfffqNHjx5VBvapU6fSt29fFi1axNVXX02bNm044ogjOPjggznjjDMYO3Zs1utr1KjBxIkTkVLSvn173nrrLQAmT57MLrvswuDBg7npppuyttlzzz1p3bo177zzznarzpZDLrjn8C9F6BKWiMe57/4HosfXrl0bCLBo0QJAN0xO6dOHDz+YyM8//8T06dP58MMPmThxIu+++y4jR47knHPOqfAevudiJ0tx7XRWxhYL1OaUNroX6LgreL4qo5e/ZWYq4Hmep/gCgS95JjJFWjVNYMVilRLzyt+TpW6A0KPnpFSEv1hM9bllmOmi5uuV+YpaMGhaGWcAlFd8JAUbiyN0k6Rtg26oY/DLlONUJzwY+ZNBcV6UHaAvFQExcyEB4NppDOli4iGkRA+y/MwTk3LLWfCO6+MGn0/K8TZqHloIgW5aivGfsYBwMxYblRsBbRjXX389U6ZMYfz48XieR2Fhdsn/yCOP5KijjmK33XZj5MiRDBgwgE8//ZQBAwYAUFRUVGGfTZo0YcaMGXTt2pWjjz6aXr16cfTRR1OvXj2ef/55brnlFho2bAhAtWrVKCgoYNy4cfTp04dzzz2XcePGsc8++3DEEUfw5Zdflp1jQBj9p8NHbvHP9ohczz2HfzWklJx15hkA7LTTTlx00UUVbkiGpZjfBxzcPSLBde3aNcr+qsoAnXRKidH4ntKwDwxTQglaBaUX75a7P7iBWUrGgZb9ChFfANclHlNBxHGcrGOP3NeC4/N9H8/3VRUgFsN17DJxl9DdLQyqwRuF2TJCQ0o/clQL5/CFgJhpkU5mZvEi2i5t+1E1wkeSF7MQ0lc99+DV4X8FEuH7ZUI1QsfxfNKuOldDBNK65TTBfM8NzGYEhmXipNMZ3Ictg2moyoDnS6yM8v/mQNO06LpsrpdBMpmke/fuHHbYYYBiuE+aNCl6vk6dOqTTaS655BJuuukmCgsLGTduHM8//zwHHXQQZ5xxRqX7rR1MeDz//PMMHjyYwsJCDjroINatW8f+++/P4sWLeeyxx+jfv3+0zbPPPstFF13EM888Q40aNVi2bBkdO3akY8eOrF27lgULFlCvXj2OPfZYjj/+eLp27fqPtIct377anO23R/zzPqkcctgECCG49957OeOMMzj22GNZvnw5BQUFWQ5xQJZrmxACP7AYVXrlsSjoh4SvcNRLZmwTIrNcLJAUJGLYjoPn+aBVsWAIjGG0QMjFLkfMk4GiXVlpu0xYJnxN2rYVaQ8UP0BTzmtWPIG07agKIESZOY3n+cQsU3m+i2wCHijVvvKBSv2d0XcXIelIkkyniVkWhmGVcQOC3F1DItHww56/lFlkJYmy1nUD9bvsZ9Q5GrqBnrf1bkuaEOxYLYHr+Zi6VuVCLnz/0rRyrsuLWRjlXOdMw1DCRWx+cF+8eDEtW7aM/v7ggw+ibLx8Fg8we/ZsjjnmGLp27corr7yy3vcVQnDmmWfSpUsXdtttNx544AFs26Zz586MHTuWY489Nuv1Z511FscffzxLliyJ2PMvvfQS77//PjVr1qRly5b88MMPjB07lsGDB1OnTh1OOeUUrr32WurXr79Z5/9XIEeoqxw5Ql0O2wXOO++8aOa3efPmXHvNNZxyyinE4/EKzPXszFtJrGqaRirIpjVNU/7jvo9r2whNw8gg2/mehx2Q+XRdxwyeU8pyXvR4GEgc16MkELgxdZ28uKXMajxPbR9kQ5nHpGmakoLNyNrDbD+cfw//4WpCeZuHOuxC04IZfBXoE/E4rmPjhM+LigFCrSeC+X20aIEQFd9lOIjmg9DQhZK59TMWICoj13AiwR3FRwhhaJCfSOC6TqBrLzFMC99zgs8hXsE6d1si5biUpILPVRPUyE9sYItNQ3FxMbVq1WLgwIFZGXRVsG2b9u3bo+s6X3zxRTTRsSFcddVVDBo0iFWrVvHnn3/SoEGDLXJNlFLy5ZdfMmbMGJ588klKSko45phjOPPMMznkkEMi4aJMbEtC3ec/LN5iQl2nXRtud/Etl7nnsF1g8ODBHH300QA8/dRT9LvgAm6/4w4GDBjA5ZdfnlVODHvxISkq83coE5JxPE/lr76PHmT0Ukps244CqyclWhCkQ1OW8sjcd+hfbpkmlLspWrGY8lUP/OozoRTc9LKqQbAmlwg8JG7aRtc0YpZyiyM43ugYJGp+vIq1fLbKm1KTi7YWIiuEE1QakDIYq1PPewhESKxDBfbMs4iHiyBfRpUM3/ex4v8M+VOR9XvZosYtLUI6aTQrjrEFY3GjRo3C8zyOPLJyc6LyeOSRR/juu++47777+OOPP2jSpElUWaoMUkpefvllHnroIe655x4KCwsrrQZsKoQQUbn+xhtvZPjw4TzzzDMcfvjhxGIxWrduTefOnTn00ENJJBJ8++232zRI5srylSOXueew3SGVTDJ16lTuuvtuPv74Yzp37swhhxzC7bffniUqk1mCD8veoca7ZZokM7N708QItN8jg5OMm2zYN68MvpSUJNP40icRs7A2o28ZOto5QcUgFLxxHDeL3BWPWQgps8b1EokEqVSqLNMne47atCw814kWDk4Q2HSIxGTKDsTH0DTSrsufNuQZGjFdgJtCLF+IV7d55OWuo7Two/HAWEz1rV03qiIYlWgC/F2QUpJ2XDxfErcMdE3D91zcotXRa8xqtRGboWNfWlpKhw4daNWqFa+99tpGHUutWrVYs2ZN9Njuu+/OL7/8Qs+ePXn++eejKRGAVatWceyxxzJt2jSqV6/Ojz/+uNFStJsDKSVff/0106ZNY/bs2Xz00UeRUFReXh6lpWqUcFtk7p/OX7TFmfu+LRttd/Etl7nnsN3BNE0OOOAADjjgAF54YRR9z+/HZ599xpQpU3j11VepW7duhb54mE37nocPao48CPpQZp/qlRvPWh/CICaEoCBRefB3XSXmYuh6xIZXC48MP3epHNN8X6pKQiCcY+ke5XvoYVVCc12k70X71HQ9iwwW/m6YZmBYI/ED5xnDTaGn1uIZCWS8WjC6LiMynmFZFLsSS/PJMzU1tjd9DKSK8Wo3As0IsnkPIVEs/ow2QihfK9n83vXGQkpJMq34CImYhb6BnnXM0JQ4TzRHr5WNFwqt4mJnI7BgwQJOP/10Fi1axKhRozZqGyEEDz/8MJ999hkXX3wxs2fP5v3336dnz54MHz6cm2++mYcffjg6xyOOOIIFCxbw3nvv0b179yzNhr8CQgjat29P+/bto8cWLlyI67o0a9aMhQsXRn38HP4e5DL3HLZL2CVFkRPawt+WcP4FFzJt2jSGjxjB6aefHo3LhZBSYqeSAY9bkdp0XY9myyWqdO1kiIGYhoEvZTBOVvGmn0omo98zbV9DhFWAELF4HCmhOJVCSrAMnUTMwvM8HNtGSrKDu12EVrhDJOajC4llmWi6iZdO4qUCW0/DAt2MMnwBmLF4tBBQVQsnclsTThIjtVZdx/w6SM1QVDmhWgNxyySdSmEXrcY0DDwjDzH5KcWir9UAr+2haKaFTlh9D65lENS3JVK2kyUeVJgXr/K10vdxilapa6AbGAU11SLE8/A9G82wNjlrf/bZZzn77LOpXr06kyZNokOHDlt0PgCXXHIJ77//Pj/88AMAs2bNol27drzzzjscfvjhW7z/rYFt2XP/ZN6WZ+777bb9Ze65OfcctlOUrVlbtGjOmWeeCUC/888nL5GgY8eOpFOpLKOZyta5WiCDatt2VmAHovJ9Vdln5uMbm6GGRDgA2/VUqyAMygI0z0b4DrpdrBTqDJ14zEIP1OGckiIVjFw7ugpK/91FRKQ49YyU6rwW/1nC8pI0+EqYRrNLg1cIpNCC+XVBke2xJmmTTNuIopXE/DS6XYLnpPiz+f5QUBOtWi2sRAJLLxs7U+IzlXnI//XIrs6s/7XSc8u4DBma8kLX0a3EZpXjFy5cCMCYMWO2SmAHaNSoEUuXLo3+fuqppygsLKxSGGd7R84VrnLkyvI5bJcw4nm46RSapqMZFueccw6e53HhhRcCyg1r5MiRnH322ZFUrNBUiRlNqFnyINPOJMRFQVpKUum0el0Vgcu0LCW3mqFqlwktMILxfT/KajPHr0Tw3j4gfBcpdHxdCb14loluKoa/zMjIpW5iJ0tUqRxI+QJX6CSEJK3E3/F8ie7brE3arLMlBTEDkOipPxG+RAoNz0xQKhIkbTA1meUjL30PPFuZzugmhmkQa7QbqSat0ATorocuys5BX4/l7V8Ny9CR0lSqeBvo7QvDROgm0nPQrMRWWYxcfPHFvPTSS9x+++0VjIc2F8lkkqKiIh555BFWrlzJ4MGDefDBBzeaTZ/DfwO54J7DdglNN7DyyghHuq5z/vnn8+STT7Jw4UJGv/ACe+yxR/S8mnfPNokJkTmXHo2tBaVwz/cxqmAwCyEiy9XykIFCHRAtDsLqQWEihh+w8stOSAuKETJKQT1Plv0dzL15nkTzbDQBaamxwlUBLen6xC1dvVzTKE57/LBa7b+ZpSvddV+CriOkxAcczQBf4vqS6ppHSrMwhMQoWo5RqkhmTqIWGDFCvruj1kbRMYU9/b8LQgji1sYR9oQQmIU118tILw/lcaAoiJZlZTnpgRKlue222zj55JOZN38+u7VsucUB/swzz+TLL7/k6quvxjRNrr766kjB7r8IzycyFdrc7bdHbLPgvmjRIh566CGaNWv2n/4i5vD3wHWVaE0qnaZLly4ceOCB+L6fNY9e1Q1d13XiGaI45cv3nudFwV4IDSvQjl+f+p3rullypoZhRHP2ocStZZq4rovyQFdjY5pU6nPlYgiehFJHuaxZrkdcz24FOFKQoKxZETM0GtWIUWDq1EoEZLu0GpX78o8kc1am6dTcpGmBJI6L9CHfMDFWL0Q4yWg/pWmbWMZ1EUikFFm99n8bNiVjtx1XLcpQn6lpGtjpFNL3Fc/CtGjVqhWg7oG77rLLFgf3Jk2a8NZbb2HbSqGwsjnz/xK2tLS+vZblt1nPfeTIkQwaNIj33ntvW71lDjkA4PtqNMzzfWrXrs3vv/8eBSPXdSs4ZlWGzECtyud6VHLO0hz3lGBNSSpN2q5owhIivJ1IqURu0mk76rWHLmZJ2yXtSWyvzJNdE2Bo5RYNUmL7SlSmZnIp1ezVmMk/kYClqW2q+8XkFf2unOsASxfYniTp+pG7nB8rZHGRx0NfrGLCz8UM+mghcdS1UWp3DqVWdVw9jifBlYKvimL8ukbJ9AopMVHueDrrHw/cGqiKJ7GhbfyM67mlyMzUhaaUDyMxoEBOuGGjRoAyjdma0wGWZf3nA3sOVWObBfe+fftyySWXMGjQoG31ljnkoJARX2644UZmzpzJ+Pffjx7zqgjuvu/jum6FACKlVMQ3skfjpMweTHPWMzZnlmOOK0tS9buu63ieH3nFl88sXIRaCAiBKyHpSkxDR0eiy+A9NR3Nd6gVE9Q1HfLttSQL6qmBNt/lt3XKDKdmXI/K/FLTSerK3lSipr5SfqBLJ6EUk3S8JutqNGV1QSPYsTmdGtVkTamD5rsI6SHwA+Lexpe2NwdSSlKpNMlUOmumP/N5N53ESZZkyQV7rott29jpdKVjjb5r46WKswh164NpGFimgRXoIIQKe/Pnz6fezvW58sor+W3x4vCg/vLRv/8ifKlcCTf3Z3vN3HOjcDn8J+B5Hq7no2tqPtfzPF595RWaNWtW5ZhaWaldEM8gK8mATBfCCohz4U3CDvzQTV0x2auC2o8dLR7i8ZhahwQ3ndJUGjNcLgQlbh+NlcUpEvYajEQBvhHDl1AQt4iZBvbSn1Swjqt/p7YUSOmBmY+HQLXpJYXFS9CLlyPzarC2RnN+WFmCJqBpjRhTFqxiztJijmu7M3FTI09XxLTMGfF8HELuX8pxI/U5CCxi44lKZW43BZ7v47oehq5VKO+HnvYh8hLZI26ek8ZNlgTHo2MVVAeUYU+YWeuGkZX5Ss/DWbssPAnMGnWzFiiO65K2HTQhiMdjkfZBefi+z5DBg7nk0ksB1R5p3LgxU6dOjdzZtndsy1G4Cd/8Qv4WKPGVFBVx6J5Nt7v4lltG5vCfgK7rxCwVxF966SVs22a//fdn6BNPsG7dOqDMr9txnKyybfn1byh4o+s6lmVFjPmYZRGzLAoScfLjMWIbIHKpRYOFZRrEYxaaEPh2CmfdSvyi1WXe6YGXjC4kJNdQLbmMAq8YzDgaqkxvGkHw0y08q5CAaocQghItn7Sv9NIFYEgXraAWWp3G6HVbsLRYKe55EtakPHrvviPXHdycxjXzyDd1CuMmpq7h+2qUztJElKG6PsRNC03XEbqOGc/DSuSrdoPjbJLoTyaklCRTaRzXjURofN9XXvdSZpXDKxWmqSJlyVzElV8wSJlxrLKica8d2NYqu96qz0vTNHbNMIe54447+P777/8zgX1bIyTUbcnP9ogcWz6H/xxatWrF9E8/5YILL+SKK65g7rx5PDF0aDTH7npeNL/u+37EkM+ErutVksXKE+k818XzXHTDqGBjWl6P3k8HwjfSByeFkB7oMaRu4K1bie455LnFuGtXYXz/GbL6jsjWB5ZlkQW18EqL0DS1Tzv4J+5KsKQkrnmYuo6eqBYdY/W4z9qUOvd8S1NZum6Q0AQiCHKGJvB9ScwQ6ELg+AZrUi4SaFAzPwqwIY8h0gTwPGKBWM6moHxs9j0f11ZywJqmY8XjJOKxoJ1RMYPWTAvdV/1vPVZmAKPrOlo8Hl37TAjdRIvl4Ttp9Hh+hcqDrgncQMVPL89oLIdEQr3nrbfeyo033rjhE84hh62MXHDP4T8H3/cpzIvzyEMPMuvrr5UDXCXZeWw9Ep5SShXAgnGv8gEm3J+UEiewOPU9DxFXjm2+LwML0XIGMVYML+UCEuEqPXjhufiJGkpkBpCxfOSvH6H5HpSuwWiwKxTsoo7bSvDe/NWsKi2lS6PqNKyuxtkMTZCfiGdlub7vYzsOdRIa1eOFaEKQZ2VzAQxdRJlNImaQCCcBPEkBGnmBBjsohbd0KmDSaxoh2SFtO8EEgWLRry/QhzwHIQSWYeB6HoahQ4YHvB9cByHUQiMTbjqF76TQzBhGFYY04fl5novnOGi60rcXQmDk16jy2GKWheH5iEAHYX0IpVf/DuGe/xpybPnKkQvuOfz3IH2+nTOHjp33Vbrvgf97zLLwfF9ps2/g5u0GfvAA0nGyFgLKUjapCFTlsnvP96Pyrud75CeybUX1eD6aGcNzbPzSNQD4rsvXZ1xIYsfa7H7dRZgGYMYgrZTk9PyyPuF3y4r4cZXK/qf+soZT26ostVZ+XFUiStchnRRafk0cv4xtHtM1LNPMMtQByI/HsF0PPfChD5HQIWGV4ylIH09KShwwNJ+4GQZ4GZjtSDyCMb8q5v8dx4lutqZhkGfFo2vqCRcpfQyz8kWX9H284Jp46SSaYVW4/tFrpcQJeBO+b1fqxFceqsqy4dE+KSUTxr0LwBmnnrLB1+ewZQiJcVuy/faIXHDP4T8Hoem0at0GUDfi0tLSKJjpwYhbeUjfx00nkVJixtfv8+0Hlqvh76YVi8ryMmvvAtfz0MqVrYVuoAkNOx3HsEv44a5HKZr1LUVIauyxOw32rI6WXw1pmBh7HoRWo260bbVY2T/pAkvHk8r0RgiBny7B//N3ALxUMaJWWQ84nKNP27ZalAASiWGYG1R2C6FpOsUOJEwNXQhsV2IZ4flKNKmMb1zHrRDcw/G0yvi9fiCbq5smjuviQ7QACV8vhKigL7s1suawzSCpOOEQPl/+vaTn4jqKjGkIf5NEcXLIYWshF9xz+M9BCEFeQSGnn346o0aNYsGCBVmWr5oQWJaV3Td30viuYmc7qSRmIj/wMyerJy+lxPHLApSm66rXHrxGSqnc53wfiXIsA0gErHrXdZUWu2EQM3RkaQpn7dpg56DnqUArdB2RX4heu0HWuTWrnc+Je+7M6lKb3XYswNAgbgYubH4GCcz3MA0jaifoup417y9lOKtt46ZL0TUDPZ5Yb3YrhEDXBKYIyu866LqyTVVzgh6W2nnWdqExTnCKys424DQ4legQeJ6HoeuR45uUyrwnHrMw86vjuzaaYUakv6qO1YrF8TxXSRRX8dpMsSEpZVaFJpNbkGlEJDSdnocegqZpvDtuAhf2b1lxx9shpJS8+OKL/PjjjxQXF2+z9/VRo5pbsv32iFxwz+E/i8suu4xRo0bx3nvvsWLFCgqDMRi/XGlaIdOARKtSGSyZdoL5dkHcNCq8RgiBqWu4vgoaQoIUqg8fjmh5noeuaWixBJ4QtL7hf/z2zhSsOrWo1/tgWLcCkSpGr9ccYVQ8hl13KKjwGICIFyLya6qyfOEOEZlPSokd8AekLKst/Pjjj0yc+AFrVixl3W8/ccdFp1Ow5wFo1ergOTae66AbFnpwjp7nEcswjBFC4LsOhmkhUHPn6gJ7Wdc3M1sPRwFDkqEXjruVy3xDvkC4qTLcUW0QTV9/ZSWElmGzuzkoL15UFtw16jdpzh5t2jDzm2//E1n7smXLOOeccxg3bhw777zzNlUm9HyJtwXRfUu2/ScjF9xz+M/iu+++i37v27cvr7z6ahR0yt+QdSsWto/V71WgjJyjHNAzA5gf9PPtVDIKojoCD4nupvHTpUgjhjTjSODXdS5GrC47N61Piyv2wvlzmTJrqb4jeqPWaGYM31fEPi3oBwshSNlqfEzXNQozfOSFEOg16lU45lQ6Hd3gdE2N+X333RxOOOFEflywIHrdyj/X8MwjDREFtXADkqBrp9AM5Qfv2DamprIoIVCqdYDrOsTicbBFZKcqhIj4B5nktHB8D8BOpYKRNABN6QlIia5pWYFVPau4CVpG6dz3PFzXVZMNVfT4N4RwkVG+QgPKcyDM3MsvEoSmU1BYSDLD9nd7xYcffkifPn3QNI333nuPXr16RTPoOfx9+EfNuRcXFzNy5EiWLFnydx9KDv8BvPTSSxGr+e23347m1GPlSvIQkKmsOEbgg14V4pZizutamcZ8KHpjO45ycVM7hKB8nbBMZKoIIT00pxRT15i3ooRvlq5j5h8l/LzOVxl/9TpoiQL0glpoplpglKbT2K5LynGwHQfX81SpGnA9n7TjKknUiL1fsa8d/rnmz9X07tWLPdu2pUOHvUmmUsya9TX33ngN0SEX1sJ30kjXRnpKXtV3XeUdH5TfdU2R5kQw0KZpmtLczyvETBRgBiz2kmSatONSmrYRuo4MF0LRcZW53VmWIvt5jkM6ncb31TVRUrcempfGTZVErRMpJXY6he+5OHa6gm6BEqSxI4/7EJ7rRrKx4edumiZWJc5/hmEQsyzisVil7Pndd9+db7/9tsrvyrbGww8/zN57783LL7+c9fjcuXP55ZdfNnl/UkpeeuklevbsSdu2bfnmm2/o1avX1jrcTTqOLbF73VQJ438L/lHBfebMmZx77rnUr1+fRYsWccMNN/Dkk0/+3YeVw3YI27b58MMPueiii6LHwsy6quCtyFUOrmNXeUMwdI3CvDgFiTIFs/KvNaxYVPqWCFxfZs1167pB0inLTJOBYIrQDYz8GuhBcCx/Y3Jcj1TaxtAzWgi+i51OkU6W4iRLsUuKsEuLs7YzTWX5uk/HjkyZMoXvv/uOa6+9lp9++om2bffi+0V/YJomg0c8Q7p6fR55eCB7duzMVTfcgisFTrJE+cX7DoJgNFDXseIJTCuGGVQ6hBBK7KaS6yLTpZGzXVjeDrNhESwO3KBEL1AER8s0icfj6BmtBFmlZnzZe4Xjdr7vZznveZ6H4zi4gUTtxqCq74uUkkaNGvHtt99u9L7+KixdupQ77riDK664gq+++or/+7//49dff8W2bQYMGECrVq3YddddeT+QZC4tLWXQoEHce++9TJs2jXXr1vHll1/y8MMPc+qpp3LFFVdw9NFH06hRI0455RSOOeYY3nnnHXbccce/5fw8ueU/2yP+UWX5Tp06ccABB/DRRx/RsWNHli9fDkCXLl1o3br133x0OWxP+Pbbb0mlUuy777506dKF6dOnM3bsWE488cQqt3EdBztkTnsesQ2w5jONTXRNi8bsdF1HT+RFEra+72MW1gYnjWbFEZrGbjsWknR9dAEtaiu9d8/zAyc7NapXPqRIVOATqDE10zDK+tyA7wX9a+njey560K83DYOVK1bwxx9/cMaZZ3LXnXfSKDA7AejVqxfPP/88S0tsGtQUPPjIY6xZu5bBgwczdepHjHn9dRruUBNdKA/7MChrmhbMu5NxDIHCnG6QF4+RspUuvVayCoQOZgyzpmodmFasAvch8z4sAltZPRbHSyVB09CDMTkhBLpp4QUz8xsjhZu1CKti8Ray5wVKvraywL569WqOPvpoPv74Y5o2bbrNzV2klMydO5dJkybx1ltvMXnyZHRd58orr6RXr1706dOHJk2aRN/FBx54gA8++IDjjz+egQMHMnr0aKZNm0a1atW44YYbov3GYjHatWvH559/TvPmzTn11FM55JBD6N69+3+CV/Bvwz8quMdiMV566SV22mmnKLADtGnThlQqxQ8//MAtt9xC79696du3b+4LlcNmQUrJJ9M/A6B169a8PnYshxx6KDVr1sx6je24SBS7XQt6xOEt3/UhRugypmxZy/ddHTsdmJYIYokEJlSatQJqJtss6+UXxgy6Na0d/Z2pde+4kIirXnpePKaEXgK2u+MqYlfcCjzidQPPCwKcbgSGKAJNyz7W/Px8CgoKSJaWZgV2gEMOOQSA18e+Tud9u7B02bLouTlzvuXss8/mtbffo26+idAN3HUrwbXRCmohzBje2uVIO4mIF+IFynmaYWHGE5iGjp8qwUON3knNwLXTeChFvFCiV7HbY5HJj6brAaFOvSaWXxiNxvnpUhBa4HdfFpBDYxdd1zGDkmzm7L6u62qKwferDMiObZeV+MupCwIsLUpx5yPDmf7ZZwx/8mn269Jpm9ynpJS88847vPzyy0yePJk//lDVlq5duzJs2DCOP/746Pv9888/M3HiRJYuXcq+++5Lu3bt+N///se5557LBRdcAMCzzz7LGWecwWuvvYZt27Ro0YI999yTeDy+vsP4W5ATsakc/0jjmBkzZrDPPvsAcOihhzJhwgS+//573njjjWgl+eKLL3LyySf/5ceSw/aH1SVpmjfciTV//smoF1/i+KOPAtTN3QxGndKOE4nNGLpGIhYjnUriuw6+UDrqefE4TiqpRr0AM54XBXgpJelkafSephWrQOqSUkYs6/KjWLbrk3Y9CmIB+cwrC+5IScwyosy7/D6BqPeslXuN9L2ozJ0pWCOEYOjQoVx88cUMHTo0usmH6NevH88++ywNGzVi3dq1rFixIpLntWIxZv6ynOZ18rHcUry1wcJcN9Cr74j359JoP35eTcU10HSsvILomP3kOlzPB6EhAV8vW+hYpqnIhr6HHotjWPGsxQ6UjaK5RauRKTWG5RXUgXL1jVgstt4RuQ0h03jGMJSyXSY++nkVZ/c+gJo77MiLY9+qcnJha0JKyXXXXcf9999Pu3btOOSQQzj44IPZf//9yc/P36R9rVixgpKSEpo0abJFx7QtjWNGTZ9PXsHmG8eUFhdxepeWOeOYbYGOHTvi+z4//fQT48ePx3Vddt99d0499VR23XVXAH7//fe/+Shz2Fh4nseHH37ITTfdRP/+/bnppps2i8CztVCSdljz558AmLGEYnALsV5GtfR9lY0iMaQbzTv7GbPjmXPkYX85+KvSkatwFK18YC+xXT79dRUzflvDDytUoNI0AdID6SOkW2VvWQiBZ6dx00ncdBLPsaPgrY7JiAK77TikbTua72/bti1SSoYNG1Zhvw8NHEijxo35acECTj/jjODc1THY6TSObVNSmsKTGfwBoSF0kyjA6kYQvMvK5+Ex63nVERm6+yLz/74bXVsvnYq2Ka/f7zhOllWr4dkVPtMtzdLMwHOgKgZ+zYSJbadp0LQF1RN/fTm+qKiIs846i/vvv5+BAwcyc+ZM7rvvPg477LBNDuwAO+ywwxYH9m2NLSHTbWnWvyGsXr2a0047jWrVqlGjRg3OO++8DWoAHHjggVn/ZoUQXHjhhZv83v+osnwmhBA0a9YMKHNvaty4MV999RUzZsygW7duf+fh5bAR8H0fx3Ho3asXkz/8kB122IFYLMZvv/3GY489xowZM6LF2raEni7CtCyuuel2enU/gFgiUaF0ahmGartKiWWZFXqwIVnOMGO4dgqhaVGWHI696YapZrzDUrzv4UuicnBV5do/k04kyrGiJE1LVMk5Zpqqhy5EpVl7CCkzmOFVLALCY8z8/brrrgOokLUDFOTnM27ceGbNns2Rh/fm4YEDs56/st8ZvPnyC/i+jlZYB81z0PJVwDZq10c6KUQsD8dVSnS252NpHtIuBd9HTxRgxPPw7LRqcZgWMrjO0vcJl03hAkAIobT2g8/F831VEYgVorm26r8nCqLXe66rPqMt9FPXNA0rVvUoZOt6hey1ZxuW//Q9dQuqft3WwIwZM+jTpw8rVqzg+eef5/TTT/9L3y+HTcdpp53GH3/8wcSJE3Ech3POOYd+/foxevTo9W53/vnnc8cdd0R/5+VV7pOwPvxjg3tVKCgo4KCDDvq7DyOHKjBt2jRGjBjBu+++S5cuXVi5ciWff/45ffv2Zfjw4QghWLFiBV26dOGQQw7hiCOOoHbt2uy111506tQJI78awjCpETcwNW2LSqhVYeaMz3Bsm+MOPYBErOLYGwR2rJmWrUJgxPPwXQfdKBuLEpoGupklsuI4TjRiFY5QOcliNXetWSAEtnDIi1ccq5NSUu2HaZgFLXHMPOpXz3A0M61oAZG5nev5rE0qcl6NvBi6FSsrHVcyk+/7PunQjz4jOzB0ne4HH8T55/et9Hq0aN6MFs2b4SfXMeuDN3j7g6lIzeSWe+5n8oTxdD/0MN58bQx1dqyLnl824ywMMxLb8fwyD3avZC14gTKd72EW1kKrxOxF6DpmfiF+Ool0ncAYJh4J3mQJ3AiBWSdbtc80ldXvxvS+Pc/D830M3ciyld1YaEKwS9MmTHjvXWzbxlqP+dCWYPLEiRx5zDG0ad2KiRMnRiOd/0VsKeP9r2LLz507l/HjxzNjxgz23ntvAB577DF69+7Ngw8+yM4771zltnl5edSrV1GTYlPwrwvuOfxzMXnyZLp3706DBg0466yzmDVrFvXr1+fuu+/mfxdfHN1cd9hhB8aPH8+NN97ItGnTWL58OcsCkpZhGNTZYUdMQ+fOO27n+ONPoKBw8/tpleGjj6dTr1492rbvkFUezoTn+YrNLojmmHXDrJAxOwGpK+yfG4aRVebzpdJUl56ndOUjQl3lxyaLV2P8/BXtxNf4mklBz3PLnpMS304hPRctlkALstK1pWmcIJgXpx2qJ2JRP7vScwvY3iG7PmZZ+J7LXnvuwZjXX8dNlmLlV33NhZWg9e4tad2yBcQLiVWvzbXXXssXM75kp0ZN+Pnnn2natCm+L/H8QG0vWKQZhqFG2jwHUbwCmShbBLjplDKGCSYGovP2fbxkMdJOgvRxnSRaQS21D5RVq/Sl+ls3KtVy35jA7vt+JAfsuB558Vil22Up6mUy+aXPyj9+Z8SIEXTu3PkvY8mXlpZybt++tG+3F2+NeZlqtf+eEbR/CrYWoW7dunVZj8diMWLrqdJsCNOnT6dGjRpRYAfo0aMHmqbx+eefc+yxx1a57QsvvMCoUaOoV68eRx55JDfffPMmZ++54J7DVsPgwYNp3bo133zzjVJis9N4gV+oFdiqOsF8cdOmTbPENH7++WdmfD2bH376mZLVK5g9ezZnn3Mu/7u4P6eccgo333wzjRs3rvCem2PKMXHiRLp3745uWmXGIIHkaRiEnGDkDQmO46JZZlAyFmgZpfZM8xLfl5SkbUxNw3aUwYmlaRGBTPgeQvpIoVVZlheJQojloaVL0UwTES/rm0rXUWIxKMKcVa0W386Zw9XXXMecb7+hY6dOnHnmWfQ8pHvkJ14ZNF3H8zwERMchpaTr/vvx8KDHmP3NN3Tssl+V2wvdRK/XAlwHVxj88ssvVKtWjXXr1tFq990xNC0S7gFwgHhczfb7ErSi5RhFajHnW3m4VgFpXyeeTiEEOL6ftThxk0VIJw0IEFowypepk++X2eF6Lo7j4nhqZDBmblzGDtn9+Kp4xlJKUraN6/lomiAvVrYAcIv/ZMjjj1FSUsKrL72w1Vny0vdw1q7gvH7/Y+myZbzz+qvkJRL4dhLfSWHEC/6SStd/BQ0bNsz6+9Zbb+W2227b7P0tXbq0wuy/YRjUqlWLpUuXVrEVnHrqqTRu3Jidd96Zb775hmuvvZb58+czduzYTXr/XHDPYatht912Y+LEiUyfPp3OnTrhR/PAJnoQUEKbVNtxSGSQzJo1a0bTpk0pTabQUJnwD/Pn8fa77/HYY4/x9NNPc9hhh9G3b1969epFIpFgyfIVFBUXkZdfjfo71t6gxzaoUtmsWbO48YYb8FwXX8povMqRMlqpa5ogbPTqmoabKo0Y6DoS3YwpDXjDQAtG5Nal1PMpKXGC2GB7aeoUJjDzCpC+HwmoSN+jNJkmHrdUX1nKYIxNJ3HYeXgrFqPv2KhS7fgQP/74IwcdeCDVqtfg6GOPY9y773Dca2No3rw5Tz31FF277INvp9BieVljdrquI2IxRSSMrpmgxyGHUq9uXW694y5eeeVl8vOrDhZCM8Ay0DyPJ554Inr8l4ULSaVTQXAMawMqKJakHVKOB/EdKHTSWG4pdqIWS0p8CnSfuBks1qgiCxMquBuJGqAbOMmAPKcbKsAH2yWDKQfX9zF0tZCSvlcmT6uVTTRE2gCBqqCh63i+j1XFoiBU/gO1mPN9iR6IBknP5aNP1Yjlxf0v5blRL2xWr7Qq+KXruPb6m3j5tTcY/fRwdt+jLb6t1AIBPFGKkfjr2fn/NISfw5ZsD7B48eIstnxVWft1113Hfffdt959zp07d7OPp1+/ftHve+yxBzvttBPdu3fnp59+2qT2S26Zl8NWw4ABAyL2bmUs8sybZVV9blNXil+aptFmz7bcfPPN/Pzzz4wYMYI1a9ZwwgknUFBQQCwWo0G9uuzeogWNd9qRjh07lrm7hf3kcpDSZ9Tzz1G9enV69OihSuoZhLPMIzI0DUsXxAwdw9ArCJzY6TSu4+DYygtcZMyNZ1LY3HI2pp7nEcY9KX3StgpEpSmbpO1QkrLxrARGo92zsnZQvWs9nocwLFYnHXr16k2dOnX47LPPeOCBB5g3bx6fffYZO++8MwceeCBnnH464997l9SqpVkkO1DEsEy1OF3XMWNxhg4ZwgeTJtGrd28++mjqBqU5dV3nm2++if5OJpN06tyZF0ePBt9HINF1HU2IKCgCeHWaojXeC19XbZEiF9Y6sCzpI43sqoORKESzEmhWAhmvjiPU9dZieUjNVPPwVgwjFsfMK8hqwUsZaBaUrMNNlWCXrIvaKOuSaVYVJVlbmo4qQPGYRX4iXkFHPvoMKCNTCkFWX97Iq85Lzz7FiCGDGPf+BA477LD1ZmibioGPDeaRYU/xyN23csKxR6Gb5cb6/qO6H/4WqtOF64Jq1apl/VQV3K+88krmzp273p9mzZpRr169LL0WUE6Cq1ev3qR+eqdOnQBYkOHzsDH4R865bypC2dAc/l588MEHkeDJjC++oE3rVgCYsRh6yFr2PGX+EdzwyyPsXQshKnWWmjt3LtOnT6e0tJT8/Hwc1yWVTHLfffexdOlSatasyZ9//skhhxzC9ddfT7eu++OnSyn1BAsX/85h3Q+k56GHMmSoyjYjBrVUsqlhsEuXFkeNcTORpzJu20YIMGNx7HTZjLVpWei6TjLtkHY9YqZO0nFxXJ+CuEWeZZBOJaP9hWKpjlSEu7hlsq40GfXhE5YZ6dJXhuJkmvP79uXtt97gk88+p21wnUP4vs+Qxx/n4YcH8vPCX9m7XVvenziJWrWVKI7veYrhL7QsrXwpJa5j89FHH3F+vwv45ZdfOPnkkxk6dCjVq1dfb5n5p59+4v3336dRo0YMHjyY8ePHc0C3brzw6mvoVpy4oYR1ilMOmiaonqd4DJ7rUFSaZGVK8kexQ538GLvXrbzfn0ynowVCzDQQwXcFslnsjudRmrJVINYEeZaBU1LWT7UKquN6PmuSZeS+mvlxDH3j7iGZJkBVXZPp06dz3HHHkUgk+PbbbzdrLC3z/ZLJFDVqVOeifn0Z+H93o+VVQ2hq0emlSxEItFjFqY+/C9tyzn3Y1O9JbMGce7K4iAsOaLXVj3Xu3Lm0atWKL7/8kg4dOgAwYcIEevbsyW+//bZeQl0mPvnkE/bff39mz57NnnvuudHv/68P7q+++iqnnHIKI0eO5Ixg/jaHvwelpaUcfvjhTJkyhZlfzmD3Vq2Ixdd/w8k06NhUhF7fuq7juS5PPvUUEydMoMPeHXnrzTeYOXMmhx50AHVq1+TLWd/w40+/ULdePd5//SVatlUiSYapeulIHyMWRwsIWXZp2SyqbsWzPMWtWEwFe8dR3uuVGM2E8Fb+hu95eIV1ys7Zd/FQgSEvL1+x6V2PpG2jCY38ePb+bFcZv3w/51umT5/O86NG8dn06Tzy+FDOPvtsqudXrhrmlhYxbeoUDj++Dzddfx3XXHMNuhXDSZVGFQvdimFkkAqllHiug+d5vPLqGPr370+tWrW44867OO64Y8nfiDKz7/u88vLLnHLqqbRt155ff/mFGjVrcsIJx9OlYwd6HtSVRPXaoBvYxWvVRkJgFdRY7/egNJUum0IwDExDj3zgzQw/9dA8J0R+PIaXTuI7NpqplACdVJISX8NHoAlBrYL1GwJtDr766iv23ntvxo8fz2GHHbZZ+5BSsvLPtTw5Yjg3XHct06ZNY//999+qx/lXYFsG96FTvtvi4H7Rga3/kmPt1asXy5Yt44knnohG4fbee+9oFO7333+ne/fuPPfcc+yzzz789NNPjB49mt69e1O7dm2++eYbLr/8cho0aMDUqVM36b3/1cFdSsmQIUPp3/9iAM444wwuu+wy2rdv/zcf2X8X/fv3Z/Dgwbw7bhwHdetKPJFH2nFAKmevzGzdyzDuiGXcnH3PDVjQm0YJcV0POzQXEYIXR7/Ay6OepbikhN12aUH7TvvS9dDD2XWHfGI16yKEUFKnThAIhMCMxRGaju+5eLaN0DV0M4adUeq3MvTTq4KUEnfJj8x6cSif/7yE4258iFo1a6oer/QQQfaum1al42oA/p/LKFmxhLe//ZW7brmJud9/h67rHHjggZx7fj96HX4khYnYejNOKSWHdO9OIhFnzEujMRP5uK6DDDJelblrUTVFCKHMcYLP5ZdfF3HhhRfx0UdT2W+//Zg6depGeXX7nkf/Sy7hsy9m0KxFC157+aXouT1b7864l59jx132wE2VRO0Qq7DmegOs7/ukbCcaU1yfwU9pKk3K9YmZOgXx7OvruS5uWlVKPCCRX1BpFWlTob7P6vhilonrurRu3Zp4PM4HH3ywUcYqyWSSkSNHMnnyZIQQ+FLy4eQP+fPP1Rx73PGMfmEUpm+DbqBZ/5xMvTy2ZXB//MM5Wxzc+x/U5i851tWrV9O/f3/efvttNE3j+OOPZ9CgQRQUKG7EwoULadq0KR9++CEHHnggixcv5vTTT2fOnDmUlJTQsGFDjj32WG666aZNPrZ/fXD/c81aTjrpRCZ98EH0+DfffMMee+zxNx7ZfxMlJSXRl/bjTz+lXbt26FqZ57Wha8Qz+lh2huWmrutYpolnp/CSKmvWE4Xr9U6vDLatZsx1XVP7K/4Tv2QtnmGRsmpg6IL8RFmW5rkObjrwDQ+4AboVxyg3bx16g2uaFhmG+L4f+YtHHuK+j+vYeJ7PSy+/zEUXXUQ6naZ969246sZbOOLwwzHwWbFyJTvUqYPmprBq7hgZm/gBe1/TNJwPRjJixiIuv/Vu9uvajUsvv4Leh3TfJJKWlJJrrryCF195hQXfz8HKL0RoulKu0zQQWpT9CiGIxeOkk8kyu1Vdx/EkH06ezNFHHcmgQYPo37//Rr932nb5v/vu4/Zbb856LhaLcettt3HpJZdgSBfDim/yZ70+LCtK8mepGpVrXCufuFm2IJFS4qZT+OGYnq4jjKqrL+uDH5AkNV0nlUpHjHvLVK2VOXPm0KNHDyzL4sILL6Rdu3bsvvvu1A0C/azZs5k/fz6//vorv/76K++88w6rVq2ia9euxIIK0e6t23DGmWfRYpddEdIlz1YtBqOwNlps/eZFfxdywf3vx7+aLS+EoFphIW+//TYjn36ap59+GsuyaNq06d99aP9JvPDCCwC8+PLL7Nl2L0zDKMdizb55aoFTGpSRlHynrJwqXRs24YYvpcQNMlLXVWYqekFN9eP7mFJW6JNquoERS+DbqYgE6Ls2kBftMzSGyVQm8zyfZJDNG7pOPKZK2046zY8//sCAy69g8uTJ9OnTh5PbN+WWZ17n1FNPzTre3j0P4/aLz6TDwYdDnpr3DgOEbdvcNvItHnv5bc4862z+b+Aj1KpWQMzYcNacCSEEh/XqzYMPP8Kol1+l7/mKiRtWC7yMdkPkYGcYuMHnYBompino3asXZ599NnfddRfnnXfeekftQqRstchp1Wq3Cs+l02luuP56br7pJmZ/8w2tW7WqZA+bj+K0Oi8Z/O5JScJUPA8hBGY8gZdO4iWL8AEtlrfJTHO1eAm+r65LJB5AGbetTZs2TJ8+neuvv5577rmHkhI1yhgGvhB169alcePG9OnThwEDBtC4cWN838cwDGzXI2m7QdUnc64+YxwwA24wlaLrepYxzvaKrcWW397wr87cc/hnoVOnTnzxxRdM+/hjOnfurEaQpAwMWGSk1paJUAI1Ksk7Nm5pkJnkV69gfLI+SClJpsrK5/GYKvV7nhdlp5nmMFnH4XkB6UpixPPQLdXHdjJG4Mx4PlrAorYdN6sFkJ9Qr3/pxRc5+5xz2GmnnXh44EB69uxJLFCi++abb3jqqaf45eefmDPra375bQk1qhUwevSLHHzQgaRdX5VbheDRRx7h5ptu5O5Lz+PKSy/GaLLnFpFG+/Tpw8yZM/nhhx/KCa9I5XQmJaZhRHrpvu+rybMMq9QFCxbQsmVLhg8fznnnnbfB9ywuLbObTadStGy5K6tWrqz0tdddew1XXXYJ1WvURI8l2BiL1vXhz1KbZUUpdCEodTySrk+BpdO6XrWyufTSInxbHaMwLMyCGpXuS0pJqa0c9/JiJlawwKrMvMZxPTQhMIyKOgae5zF/3jzmzJnD8BEjmDRpEj169ODV0aMoqF5dTRSUrEMC0spTM/0ojkdJ2sH3JQkDRHId6AZGQXYbw3W9yKdeKQ8qAaa/o3S/LTP3hyd9S2I9oksbQrKkiMu777HdxbdccM9hq2GnnXZi6dKlpFKpLVJ22hiSnRITcXA9n3jgXQ5BWTwQaAkZ915AvAv3GavCtjKczc4MLHZJUVSi1q0YRhD0fV+STKsRqphlIoTGnJ8W0m3vdhzc/WCeHfk0BYXVqmRUS9/jj5/ncfARxzF//g/s0Wp32h3YE+nazPx0Kt/NmcO5557LU089tUnXLeW4uK5H3DIxM7L89957j8MPP5wffviBXXbZJWu7cDxP16tmf4c45JBDcF2XDz/8cIPHYwfOeqE17auvvMLV11zDbi1bcsihh3L11VdHr9V1ncKCAq4c0J/LLr6QvMIaSpo2US3KrKryT68Kni9J2i5zlhWp7QXsuVN1YkGJXnouTslaNSmxnoWk7XqsLS1bNNYpTETCP6HUsGEYVY7PAbz99tuMHTuWdevW4TgOc+bM4ZdffkHXdfpf/D8EksFDh9GieTPeee1l6jdohDTVdy1WiUxxxXP1SafSiGAQUwaCP4kqVPb+amzL4P7QB99scXC/ssee21182y7mx8K51Rz+XixdulSxxzcguxmWM1PpDG/sDJR3/KoMrueTdlw836ckZUefv6ZpGJqmArrjYKfTWeS38v7bFd83+5+EHgsWAkJDN8oyfk1TASs/oUaokqUlPDHwATRd456Bg1QGuh5zGKHp7NyiNXPnzuPjDydiWhZvvzyKl599iga7tObZZ59j+PDh670GlV2Tz7+YQdf9uvDu+Pez/k2EffoHH3wQx1FZYKgYmEzbpGw7srhdH0477TSmTp3Kr7/+usHXWqZJfiIeybgef8IJzJ83jzfffJNL+vdn7ty5DBw4kBNPPJFpH4zn1D4nctvd/8ee++zHmaf2Yd7nU/CX/YwbLM4yJxagbCRNSqmCW7CYKE2mKE2msNNpTFzyTI0d8gza7JiH7zlKvMj3EbqBVa02VvU6660QZeszZD9uWRaJeMW5eN9X8sVvvPEm//vf/zjqqKOYOXMmJSUluI7N3h3a8/KLoznt9NN5dNBjPDLocRzHYe68+cQsExmMaFobm3mHC1MCUR4kPutfIOewfeNf3XMH1TMcN24cruvSq3fvLcoYc9gytGnThv3333+D5WOlVKeCetp2SMQ3/TOr6oYL2dKhMuizh9n6pt7sdMNEy69W6XbhY04qiYnHj/Pn0a1rN+rusMNG718Iwb7dDuazCW/zS4lgpWvSZIdq7Fx904hSYdVhwvjxzJ41i1deHM3Rh/fCtm2GDRvO1VdfRYtddmH48OHsXL8+V111terHZpxXZQut8jjhhBO44ooruPfee7OU6dYH13VBSvTA/1wGrni77bYbu+22G5dffjm+a9OhfTvOO/M0br/7Xl544z3e/mAq915/Oedcdj3KyjYF6RKMvGogBKl0GSHT88usZk1NLQ4lEs+XNKlmZPWebdtGIDGli0gXIwprI8zKqzkApq5RLWHheD7xjZSzTdsORx15JB98MJEGDRpw0003cccddygipufhOTZTP5rGlClTADjyqKO5+qqr2LeT0iEXhrVJbRhN0zAMA891otZ/bD1aCdsTPCnxtiC525Jt/8n413/6nudx8803M2v2bEaPHs0pp5zydx/SfxK+71NUVERhYWGWqFDlJfaqA3Nl+wUq3OgMXSM/HsP1vApSoZquo3lqNtwwK7qobSo2ZluBIkmtWrM2EqnZ6P1rGuYODdl1B9gcA1zfdXCKVjPqxZe59+47ASgpUryFqVOncumllwDK+/t/F/fntltvZdmyZTzwwIPEYxauJ1RpOlDiW9/5FhQUcOutt3LZZZexT8e9Oevsc9Y7Gue5bkTak1JWaZeqGRZmYS3adenK62/vz/efTOTehx/n4hvvYto3PzJ08GMkdJBI5QpnJaLAju8iqfwYfCnx0fAkGIIowwXlSqeXrESW/InesE2V5wAqUMY2wQdm1apVfPDBRP7vvvu46sors66RpuusWLmOQ4LZ9zGvv0GPHofgSfgz5WMZinmfFzMo2Mg3DasIvq7j+R6WbvxnhL2UQVGOUFce//rgrus6Q4YM4cknn6RLly5/9+H8ZxGWTEPtdMuylNFF0Z8gfTXWFozt6LqGiRGZtQBRiVgGxC5N03A9D9tWpDVD1yrYZ5qGntVXDiGEWK/ndiZ8X5mQaLq+2TdDIxanxPVpsXtrxj/6CN/9vJgD9myxWfvaVPhS8sGE97mo/yX8/MtCWjRvxoKffmbN6pV4ySIOOOAABj78KEuXL6d9hw4cfeQR7NKiOZdffjnNmjbhiiuuJD8RV2YrwU9IRKwKF114ITO/+oq+5/dj2bLlXHf99VXPnG/CuQghQOgIoE23XrzQrRdHvfwyZ511FjHT4KZrrqBhg/qR1K+miUh0xxAOrmahSxczlq/kfX2HUN/eC9oQaipDoCExUoFqnbfhdkR5eK6L47poQlQqYvTcs89gmiZ9+vRB0zSWLFlCIpGgZs2arFq1ivHjx0evfemVV+ne41DcYLFSajvYPqRcj7iho2vK016sRxEvhKbrG9RgyOG/ge2CULclKmc5bB04tk2nTp1o164dTwwbhmmaeKlSvFSg9CY0rOp1qt4+o6eqaRoxyyIdjFKF2BhykO+5uOkUmqajx9ZPRJJSkk6lor83hrhUFZKOx5c/LKZbm6ZcctV1DHrg3s3az6aipLSU3XdryU477sjN111Fjx7dGTJ0GFfecAvFK5eQX3sndZ6OhybUgshzbMyAS9DnpJO4+ppraNWqdVlZ21w/OcxzXdKpJLffcQf3P/Agp59+OoMGDaKwWnU0TWQJwihJ22CBVsm0xMZg6NChXHrppbiuS/fuBzN+/PtqRMxRSnprSpLUEMpwyDPzySusHvXhdU0jnU7jug4a4GvqvAQQT66CdAlUr4c04+iGmaXV7rgejuthp1Ncf921LF68mPz8fHbccUdWrlxJzLI448wzOfDAA9F1nZ9++olvv/2WoqIizjnnHPr3788jjzzCZZddxqOPPgpA6zZt+G7OHACaNG3KwYf15pwL/kfTxo0xg7d2fYkbfBg7V0/gBbbCsGXf0W2JbUmou3vc18S3gFCXKinixl7t/rHxbXPxr8/cIRfU/wn4c+Vy5s6bR5+TToxcvTIdzbQqfNPXB0PXs4L7xsANpFU9z0XoepV+7ZVhc+xjQyRMnd/mzADg1x823xFqU/HMyJEsXvwbt912O917HYVmGOzUoAEAs39fQ5da9QJFt+x/6lddcTkfTpnC17Nm0alTJ1599VUO69lLPRkQ1aBycqNuGMQSedxzz73s2XYv/ve//zFp0mRuvP1Ojjr2WHauVR1d0ygpKWHevHk4jkP79u03+9pedNFFHHHEEbzwwgtcf/31zJ8/n9atW6v9SYmxZimrajYA32VHJ4nvF5IqXosvwTdixHWBiY+f0S7RdQ29dgOk72MnS8Cx8RwHK5ADXrV6NZdfcQWa0Phh/ny+/nombdu2ZfXq1Xz33XfUrFmTP/74g2efe47evXuzbNkyvvrqq6zjnjZtGiNGjODJJ5+MHmvUpCk3XH89bdu2pWHTFqwsVaN0Sm/fUkY3SJKOR55lKEfCTA6J7yNymXkWvC0sy2/Jtv9kbBfBPYe/H5MmTyaVSnHMkUdEY0K+0DAKagE+Ql9/7zAkPIVleQhV65Q5iLHRY1AbGBlybFzHVuI1VkxpyweKcJunUKY83AGK1ylRkquuunKT97O5KC5WlZHCwkIS+fkUpR3WJeoCsHDZn+zTRmKUD86mxT13362mTDSdY449lgsuuIDJkyfTvHlzxSZ3XaT0VYujEn+AsId82mmn0a1bN/r2u5D+/c7j1huupVmzZqxYvpyFCxdGrz/66KN44403N/s8GzZsSEFBAZqmkZA2zp9L0Qpro+s61Vb/hFuyDM0wMRq3wS9dh5lW42+29NFi1fF9D4kefTs0kc0JUSj7fcClA3j9jdcxdJ1kMsno0aM54YQTyl4pJalUiqOOOorvv/8+61wBTNNk1apV9OvXj7y8PE45/Qxuuu0OdthhR2oXJqLqhq5rOJ6kMG6iZzjMJayMhbGmBboDIufXnsNGI/dNyWGLUVRUxB1338s+HTvSfJddEZpOMpXGth3SjovQN1yOFUJgaBqa9CLdc1Cja7FYbKP0zEE5uOmmhRFLVBhvklLi2mmVmbrK7tUwDGLxeNQ3VWN6DskqxvTKo9R2sF0P2/XYY692gCJTbSscdNBBAEz/7DMcR7HSf50zE13XabHTDhiVBINQoc1K5BGLxXj4scdJ5OWxzz77MGLECEBprstA23xD16Fhw4a8OnYsU6Z/wSmnn0mb1q054YQTePKJIbwz5kWqFRYyf968LTpP6bnMnvEZrXdvScPaBZAqwl+7HMuyMPc4GL3pXmiN2pC2bfxkESFtTpNKqc3KK4hGE4UQaIEev9A0NEN9P3//YynXXnsthx9+OC+8MIpzzj47mkv/448/omO54IIL0DSNt99+mwnjxzNx4sSsEctbbrmFr776il9++YVFixaxYsUKnn3mGRrX35ka+fGstkV+zKRGnpUV2CGwqXUcbNvGsCxi8fjGj8VlIDQ48rzK1ey2B3h+Wfa+eT9/9xn8Nchl7jlsMYYMGcJPP/3ErFmzMGLxrGAQ3mQ3dEuSUmInlc2qRxozUVCBGLQx3Aqh6RV04bNfICLr1cr243gedkgOlD75VQjeRLtDkQnHvPwSt9x4PbvssgvdunVb7zZbEzVq1gTg8cce444772JNymPEkEH0Of1M2uy6cTLMDes3YNr0L7j9phsYMGAAibw8TjvtNCQCTYBw0rirV4Buoteom+VdL30Pb+1yEp7Lvnu1plunBwPzGRevdB1nntsXwzB4atiQLTpPaafYtXlTRr0yhrXriqherbDMQtcwEa4DdhIx+wOkaSGa7gXxAvR4QfQ5W5ZZwU5YBGZBAM8+P4oHHniA3XffnUcffZQjjjiCcePGsWrVqsiMSkrJzz//DMCM6Z+w6o/FuIEfAEDr1q257bbbovds2LBhdA6mvvEtolBCFkA6DrFKVBU3eM2kzDI8ErHYdsmgz5XlK8f290nnsE2RTCZ5+OGHOeuss9h9992BQBkuuImkXJ/l61IbN26SWSItx/P0PI90KkU6ldqsLMT3PZASK56HbsUw43lbXOK0bZvRzz9Llw7t6H/RBRx00EFMnz6dWrVqbdF+NwVNmzQlLy8Px3FYtnQphq6xauVK9mi7F4a2cVleXsykft06DB4yhLPOOpsL+vXjmZEjg1lxge26SM+BdAkyuS5rWz9ZhEyXgmtD8aoyQx7PQxox/lyzhoKCfOb/9CtFRUWbfZ7CjLHvPh1JpdL8smQFWAn0Gsp8RdMNfASyaDXCcyBVgj/vU/y8mllmNEIIDMNQqoWex7vvvssvCxdGfgQnn3wyAGvWrKFNmzY0bNiQH3/8kdWrV7PffvtF+5gwYQI/zJ/HkyOf5X+XXcWrY16L3mPMa2W/l4dnp7FL1gWOdH9DQNlO57lzqBy54J7DFuGNN95g2bJlDLjsMpKpNGnbVhKvMYuVSY/VKY9i22VdylnvfoQQGLFEUCa1ELqO7/vYjlOWxUgJUuKmSjfpGD07jVNajF1ahPQ9DLNqy1ZT17FMJXqSqCRb8nzJiuI0b7//AbvssgsXXHABHTq05+uvv2bMmDHUrl17k45tS2GaBs8++ywAd91+C4vmfIWUkuaNGkQa6BtCuBiLWSaDBg/m7HP7cvHFF3P3/93PunXrQDeRZlANKcedyLTlzfxdCeRoPPLoY7TcbXfO69uXevXqcepppzHsmRf4fuHvOJtQDxWGScPd9wTgj6I0Mq8mTjqlRFuEIJ5fiKjTCBKKNa3V3w2rinaO67qccsopHHHEETw2aBBOwOYPF6d//PEH3bt3x7Is5s+fn5XtSt9n5YoVTP5wCmsC45cjDz8CgM6dO9OiefNogZOpnCmlr4K67+PZaeQGWh2GrkcLEWsDio9VXjMhMIMJBV3Xt9t+/ZaV5Lcs6/8nI1eWz2GzIaVk8uRJ6LpO/fqKoe15fsQ6N3SBHSTZhr7hLFI3rSx2e9pWsrKe5xFtLgSkipHxOEI3qyzVq/ln5aQVGr8AuE4aawNSo7HgZup7HumSovDg+HHBAj6d+S3fzJnD048/QrsOHRg3bhyttrKj2aaie/fu5Ofn8+5745k9+1vq1a3LMUcducn7EUJQmJfgvocHEc/L5+7bb+Wh++7l9ttvZ9+922EYJo13KcAwkuwQqPCJWD56jbpIz0VLFEbOfKEq4O6tWjFhwgQWLVrEqFGjeOa553lx9Gg0TaNDx304/7xzOfvsszcoWQyQyMsHoHjdOmQwm+6mk+iGGZEDadcL4XtoVkzZ2ppWpJQUfkdmzZrFq6++CsATTzxBLB6nVs2aFdjuAK1atYq+YwsWLOCMM87gs88+A+C3336jXt0dmf3Nt3DDTTz00ENR792x7WjhYcUTEAnDbtzYrhCiwjiilyrGSxYjDKuCaUxV0DPMgLZX5ERsKsf2/ann8Jfivbff4sknn+LuO++IZH8zbzh1CxOsS9kYmka+telftczSpabpsG4FSBnoZguk60Z66DHLQtfLMhMv8F9XB6UjZKCS5tjI+MaNvP34wzxeeuklPv98BtM++SRiplerXp0evY/k0cFDaFp325Xgq0LNmjWZOOF9Lr/sMj6f8SVXXj5gowmI5SGEYIfCOEMGPczVl1/KQw89xLXXXpv1mlgsxuhRz3N4r8OUD3u8zCq1JJmKPM3z42U93kaNGnHDDTdw0YAr+f7Hn/h0yiSmfPA+/fr1Y+jQoQwbNowOHTqA74HQKq2sfP311wDs3XHviMcRZqN+2KoRGmhqKgIUW14KvUyG2LJo3LgxALfeeiuLFi1i6JAhWfarIV588cWsRcfiRYuiwA7KKEnTNPbYYw8KCgqYOnUqTZs2ZciQIQwePJgDDujGiy+8gO956IaBmVeA7zpohrHJWbSUEi9wS5ROCumkEVZcOdalbeUYFzMrWLz+FzRAPLmFPffttF2xXYjY5LDtsWLFCvbcYw/atG7NW2NfxUwUgK6jZ4yUOa4ydjENI+rBbwrCAB3qZkvPxS0txtcMfE2PLDFBjRRlko5cx8lygsMOSvlCYBXUqPRm5/sebrIEJHw64yuOO/54PM+jQ/t2dO/enW4HHEjTFrvgWgUYmka96vFK2ejbCiE5LByVWvDDfDp12ZdGDRsyfMQIOnXqtMXv4fs+r7/+OtWrV6datWosWLCAF18czYcfTuGrz6fTuGkzDNOKssPiZJkoUCJmVRpskrYDQVl69uxZ9D3vPL7//nt23303+hx/HOefdw71GjSJ7HVDjB8/nl69evHOW2/Ro0cPDCNo4QihWjgBeUwTRJk9mo6f8T2Jx2KsXLmSHXfckbFjx3LsscfiOE4F9UOA+fPns+uuZYLAtm1z9lln8eJLL3H5ZZcx8OGHo+dq167N6tWrI/nlkpIS9ttvXz6YMAErntgkIpvv+ziui4CorA5gr10eqemZ1XdE6AZpxyUVqDhqQlCYV0YAlb5POrgmumFsVHVka2FbithcNeYLYnkFG96gCqRLi3nwhH22u/i2fTZhcvhL4bouffv2xXYcRjwxGF030E2VNURe2Z5HynZwXI9k2t7AHiuHruvEYrHoBudL8HUDIdSIUyZBSNeyg4ge9Cs1TcO0LIxEAboVx8yr3AQGiHqh0z75mIMOPphYLMbPPy1g4sSJ3HDjTXTt2pUGO9WjSe0CGtTM+1sD+5o1azAMg7FjxwIwZ84cOnbqzJo1a1jyxx/sv//+fDXz6y16j9CvvPfhh7N/167ss88+nHrqqYx6fhS1atVk324H8sEHk1i5cqUSV8loaeiaVumCTgiBmfH4Xnu1Y9asWbz77rvs2aYN9w98hMOOOJp58yoKAXXtuj8AJ/bpg5R+FNiBqA0Qi8cxY3F000QzDMxyhDpQlY66devy0EMPsXr1akzTZPr06RGz/cknn+Sbb77JCuwAlmUx+sUXkVJmBXaA9u3bYxgGpaWlDLj0UgAO7NoVQyt733DMsjSVwnWrJoU6gWudF9gXhzAL66Dn18CotkPEb8gcq9PKESi9jL5+qO+/NSClZMCAAfTo0YPp06dvtf1uLnI998qRC+45bBJ+/fVXunXrxrvvvsvIkSNp3GJXzPzC9Zf9tmLZS2T8X5llmMRjFkY58pgINL+tYPxHM0ykbrG+f8dC00mn03w45SNAEaxq19lByZL+w8qa7733HgCzZ89m3LhxHHHEETRr1ozflyzh86+/xXVdzj///KhEvjko764XQmgaRx99DKtXr+bIo4+mQcOGPPX00zz77LP4nkthXiKyea0Umsbv69Lcdu8DnHraaUyZMoXevXvzwqhRfDx5IqXJJB067sPjjz9ebjP1GSeTSf5cswYAb8VCvF+/wVv9ezTDLoTAsOKYsQSarhOPxbAsi1igZWAYBmNefZV58+bRpUsXli1bRufOnVm0aBFSSs477zz22GOPjb5OU6dOZcaMGWr8z/O459572a3lrjww8GG+mP4pfjqpjjXIyH1fkrLtTWbMC01Dj+Vl6TeYhk5ezCJumeTFsqsPmdWCrak3//TTTzNo0CCmT59Onz59KljxbmvkgnvlyAX3HDYJjz32GJ9//jnvv/8+Rx11FEJUruymaxpWUI6PxzZ9Rrc8PM/DRwmrACA0YkHZt3zJ089gKYdI2zaO60bs+8qgmxbX33Ibd//ffey2225ceeW2U5rbVKxYsQKAu+66i969e9OkSRPeeust6tatS0FhIYf27MWPP/7AypUrN/s9tMBTHMgq6X733Xc8/vjjnHb66fTr1w/P8+jXrx9nn332Rrkyrk06PP/M0zxw5y1M//RTDjvsMC666CKuveFGXnztDd548y3OOussLrnkEp555plou0QiwbvvvkteXh5Nmjbj9FNOZsH33wISilaWleLLIZwGiNpF6TR7d2jPR1OnsHr1avr3779RgkVV4emnn67Qs583/wds2+a4k0/jy5kzgUDzIeyBr2d/VlAFMwyjQlujMpiGTixwRlQVMzuL1GgF1a9MbO4o3g8//MBFF13E6aefzp133snvv/8ecVFy+GchR6jLYaOxevVqhg8fzgUXXED37t038GqJhq80vDNHiaTETaeQSEwrvlHEIs/zSId9Rc3EtIwqFxWu50WjTZZpRsSy7BH6ym9sr732GkOGPsGQIUO46KKLNnhcfxeknWL5T98D8NQTg9ml1R7sv//+0fUoiFs88vhg9mi5C2Nfe40LL7xws95HCFGpeEqXLl1YtWo1ZizGZ599huf7nHH66SxZsoRTTz2VL774gn322afK/WrSY9gjD3DkCSdz9/0P8tSjDzBx4kRc12Xp0qV8/vnnvDduHCtXruSee+7h7LPPjrbt3bs3Cxcu5LnnnmPQoEEcNeNzvnj7RQqqVQdNx7OT+KkkwrTQ4/mVfke8YBHQrGlTHhs0iFNOPZUOHTrw0ksv0bJly02+TpdddhlFRUW8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K6qv/ZUwCmthFtaicMcGnHHmmey0006MGDYcNxDdOeqoo7j22mvZe++9eeGFFypd+Bi6Tn4iTmI9Nqe77NqS3377jXvvvZeHHnqINWvWcMABB/DQQw+xZMkSxo8fz5w5c6o8zsWLF2OaJmPGjIkeSyZT/PTzz/Ts2ZO6desSj8dp3LABbVuq7P6eu++udF9XX301TZs0AciyhwX4ce53jH9jDO+98RpLly7F831+XV3M4jWlLPyzZL0LvzxLp0ZejBp5MQriauwzLxHHsv6a8cxJkybx22+/ccYZZ2zwtZZl4TgOTYLzzuGfhVxwz2GjUVBQwO23307nzp0BePXVV/n+e8Xadl1XeX9n2F+GyMwuNifT8DyfZCpNKpXeorltKBMS+emnn3h44EBuv/122u299ybfKF977TVatWrFu+++x+NDhkbkqZYtWzJhwgTuv/9+3n7jdfbac0+VKf0FN2ItaHc8+tjjFTLAlUE2v2Odmkh380SENhdCCEVm01R22K/fBTz33LPMnTuX4pTDI0OG88igx6hXrx6nn34655577mZXNurXr891113H+eefz5w5c7jkkku46qqrqF+/Pr169aJbt27YduXnH4vFOOSQQyo8BpCfn89NN93Eww8/jKZpXHLJJes9jkQiwU477QRA1/325a7bb6NXz8MYMGAAxcXFPPLwQM4++2z+97//4aRtnODzcjw/+j28dlYsjqbrGJaFrhskLPVTuaqiH6kxVnYNpe8j7Y1zoVu6dCkXXHABe++9N126dNng60Fd//KLmW2N3Jx75cj13HPYZHzzzTe0bduWm266idtuuw1d13FcNwrqhq5njfJIKZG+h9C0KklO60MqnY6Cl2FsvktWeCylqTRTPvyQIw7vzfdz57J70LvdWJSUlFBQoHp8Bx7cnREjn2PHWtV5cvgwrrzySkaPHs0pp5yijGeK17J02VIaN9slS3xka2DFuhJ2rF5AIpFg1Zq1JKyy/X866X3269GTmZPeYq+DDt+s6741IKVkzdp17N2hPQ0bNeKFse8AisW9U408HnvsMQYMGMBvv/223lL9xsJ1XQ4++GCmTZsGQLNmzfjxxx83yE5PpVK8+eabjBgxgkmTJgEqM83Pz+fPP/8EYNmyZey4445V7qOkpIQXX3yR4447LrL9XbVqFY8Oeox0Os0Xn3/G3O+/Z+HChaxI+5TaHvmWQf3qic3KwqWUJJNJlvz+G5988glfz5rNt99+S2lpKW3atGGvtnvSolacWoV5tG2/N+bOu1b6PlJKJkyYwGWXXca6deuYPn06jRo12qhjOP7445k+fTrPPvts1kJpW/bcT3/qoy3uuY86r9t2F99ymXsOmwTPdXlx9Gji8TiXX345uq5MOfBcNGQkvpEJIQSabmx2gMm8IWkb2IfqWaZJJZO4TkWbWSEEiZhFixbNAVj066+bfDx5eXmcc845AEyZPIn7770b13F45JFH6NGjByeddJI6Vl0nUb0WTXdttdUDO4AI2h8HHNQdQ9PwPS9aSK34cw0ANRvt+rcFdlDXu0b1atx5111MnTKFxYuyr/dhhx0GwNy5FeVmNwcLFy6MArtlWTz//PNVBvaFCxfy0ksvkU6nicfj9OnThwkTJjBjxgzOOeccbNuOAjtA3bp1ady4MePGjas0E87Pz6dv377UrFmTkpTN2pIkXbt25c47buf++/6PKVOmsGz5ckzLokH1PFrUKYwCu++5OMkSPDu90efq+T5PPfUku+zakrPPOZe33nqLmjVrsssuu/DFF19w2eVX0PO0fuxz1Ons2e0wvvj882hb3/dxHIdp06bRpUsXevbsSTweZ9KkSRUCu+u6VVY/Bg4cyK677sqRRx7JokWLNvrYtyZymXvlyAX3HDYJqWQpjz3+OGeffRbVg1Wu7zr4ThpcW7lVbeUStGWaWKZJzDKznN8qg/T9qOdfValS0zRaNG9OPB7fqKCSOSEAKmA99dRTrF1XxLHHHc+IJ4ZQu1ZNli1bxuDBg/8SdnxlmDNLWZTefNONSLsUp2QtdvEaPMdhVTCiVKNw8zOarQUhBIcHM9MfTRxPzNCoVRDLYmuHGvlbinDOHGDPPfekX79+jB07lmHDhuF5HhMnTqRdu3YceuihdOvWjVNOOYW6dety3HHHce+99zJo0CCaNW/Bg48+ztyFi3nlzbez9r9o0SLOP/98NE3j1ltvrfQYlvyxlCMP703L5k1p1nwXatSoSbPmLTioew8AvvzyS3zPxUsW4aZKkVLilBbhO2ncVEmWRfH6oGsa06Z9wo477sjCX35mwYIFjBkzhueee47Zs2dTtG4tP0wbxwejh1G9Rk26duvGzTffzNdff82sr7+OrkE6neaDDz7gq6++iiYQQsyZMwfTNCtMY4Ro3Lgxb7/9NtWqVePOO+/cqOPOYdsgN+eewyZB13Usy6Je3bqIyKjir135Kj3wjQuYWf399SwydF1n//33Z+TIkfTr14+8vLwKr/l29iyuuPwyPvhwKpdeeimPPvpo1r6rFRYw9rUxfPbZZ4wZM4YzzjijgtnIX4mwQlKjejWk6/D7kiXM/HoW9Ro2ZvHvf1CtWiEFNf5+S1qA6tWr0/vwI7j7rjs4uHt3dmnejLPPOJ+XX34ZUKIvWwNt2rQhPz+feDzOwIED6datW8SGHzBgQOSSFqJ79+54nsfXX38dKczNmv0N8+bPAwSPPTGC5i1a0LZde5o2ashXX33FkiVLADURsd9++3HAAQdEvXopJQ3ql5Ezn37uOWpVK8BxfZA+bVq3onPnznTcuwOPPPgAHdq3w3cd0uk0JcUl1KpVc6PPVQhBly6deeutN6lbb6cKFYp4Io8W+x1KC9fho+PO4s477+TBBx/krrvuAqCwsJCXXnyR448/HqOSVte8efMijf31OQwWFhZy2GGHrZe8+FfCk36WSc7mbL89Ihfcc9gkpGyHkpIS6tTZIVKK0wwLPciYDSu+gT38tVCEpBjS99EyXOoqw3333cf+++9P69atGT9+fAXp0bNPP4WZc9S41eqVFcfNQnTu3DkiGW5L1KlTB4CZM2fSvNFR3Hjr7bz0Shnze9+u3fB06x/zj/yOu+5mrz1aM+OLzxnxxFDeeustnnzySfbff//Nkn2tDE8//TQlJSWUlJQwZswY7r33Xl5//XW++OKLKLA/9NBDLFiwgLfeeovJkydXqO48+8zI6PeD9uuE57qsWL6C7+d+z/x58+jYsSMDBgxg5MiRUVvhlVdeoXfv3opd37gxNWrU5KWXX6F29UI0ITBi6t/K1KlTOa9vXya8/z633H4nF13Ql7FvvsPowDt+3Z+rkEJTJXrPZV1pmurVa2CaRlbwlgF5tX79+qTTadasWUO9evUqXA8hNDBjxFA+BDfccANff/01ruvSpHFj6jdoUKGNBqoCEqoM9uzZc4NyzN26dWP06NH8/PPPNGvWbCM+qa0HfwtL6+XJqNsLcmX5HDYJ7733HrZtc8yxx0aPCSEwYgmsRP5WdZ/aXGiahm5Urd0dol27dtx8881R7zUTUkp2a6osQPdt14YnHr7/LzvezcUbb7wBwMUXX8wfK1fz40+/0KxZM54Z/Qpnn38Bt971f1utnxh6jG9uhjRjxgz27aSCRYP69Zky5UPOPPNMzjvvvK0W2AFuvPHG6PeffvqJ6667jrfeUqX1WrVqcc8993DFFVcwZMgQfvvtN9LpNN988w3nnXde1vfl1ltuYfLrL3DaSSeQSqVYt24tRx5xBN27d2fNmjUMHz6crl27Aophf9JJJ/HEE0+g6zoLFy5k1qyvablrCxzHIRWMiN5791189snHTHj/fQAmffghJ5x8Gm+9rY7PdV326tCRxo0acVKfk+m07/40bNiQKVOnYmfwR6SUlKTSfDfvB94OlOKSyeRGXZ+8vLyo2tC4SZMosEspcRwX13V47733aPf/7d13VNPnGsDxbxISloqKClpQQcBRB1bEheO6ZxGruEVtxT1x3VZUVNzWUWodWFfrrLZ1L5SC24pUrXUDbmpRlqyM3/0DyZWKCrLx/ZyTcwj5jTcKPHnX89Stqy8Is2XLlndet2/fvpQvX55Bgwble5U4IZUI7kKW7NmzB3t7+xxZ2fxvao2G5BR1tip0vUtKSjIxsTFs2LgRJycnvvzyS7p06cKYlzW408hkMvxXfQfA6UtXCThzMdfa9L5cXV2xs7MjKSkJGxsbLl68yLJly3D/zI15i76m3id1MVZm/8NW6vbBFP3Cqvf5//H398fU1JTIyEi6dO5ElSpVePjwYbbb9m8D+vfTf71//34SExPx9vZGqVRy7tx5pk6dmu54pVJJrVq18Pf3R6vV4uXllbpmQibDqnpdVn2znAP797FmzRpq1KgBwJdffcWLhASCg4Nx69qVVSv9mDBuLJUqVkz3nrQvFzgCJMRG8+U0b3r06o1ZiRKoVCqGDB9B1erV9UFUkiSKFStG7969eB4djZmZGQYGBgwa6EFcXDw6SSIuKYX4JDUBAQG0cGnCD5s2YWFhQdmyZd/r30uSJFKSErly8y6bt++kZ68+dOrUSZ/QadOmTZQq9e6pAhMTE7Zu3cqpU6deK9Wb28SCuowVlBE7oRA4fvw427dv5/vvv8/xa6eWqkztnai1WooZ/394P7PpZN9Fm5JEQuR9eg705MjxQNq2bcvRo0dp3bp1hscbV6jCsmXLOHbsGPWcnLJ179xQvXp1bt26RVhYGBcuXKBSpUr6uVFjVe79ar/PnnQLCwt0Oh3lypXj0aNHXL16VT/sm5PWrV3LrBnejB0/kb+uX+d0UCBr167B1NQUleG/agtIEnGJKWh0Ou7dvc2CeXNxdHTEwsICHx8ffH19uXnzJh06dgKgT58+/Pjjj/yweTN+367k8JGjVDAvRWjI7xQ3NaGHuzuNGzfm1KlT/P3335iYmKB42TM2MTVl6cL5eE39kpjYWADWfrfytfYv/nopzZu6oE1JQtLpCH/wiJo1a9K6VUvadehI6dKluH37Dt/7r6VZ8+Z8vXQ5Dna2+q2ZWRXz9yMcatXVZzmsYm/PihUr6NO7Nw5VqzJixAicnJyoXr36O69Vq1YtzMzMuHnz5nu15X1pdCDLVlW4HGxMASKCu5ApcXFx+jKvFy9eJCUlBXd3d/0n/H8HXp1Oh0ajQS6TpRsilyQJrUbzcnuc4pXvv3LyK090Oh0JSalzpYYq5Tvzcv+bRq1Gp9OiMDBASkli7pLlHAsMYu9PW+ng5p5h4YxXjR07lrFjx2bpnnnNxsYGGxubXLt+WglSjUaTrsb7u2i1WrZv386GDRu4desWjo6OxMXF0bx5cyB1zUNOMzA0oqKNHUEnT/L8+XNat+9I544d+S04mI4d2uPn50eLFi2A1PTDyZrUjIn7Dx5i27Ztr03PpGUahNStbgsWLmT16tWMGT2KZcuWk/jgJv2H/L/qXnh4uD7vvYuLC7/99tvLIjUqGjZuoh/1OH32LHPnziM6OoaTQYHYV62Oc5OmfDFkCCdOBGJdIXX+3N7enuPHjzN//nx+3LyJ6OholEolM2fP4b9TJmPwjnUlb6PWaomXG/H06VNatmyJ37crKfeRFSYGcn799Vc0Gg3x8fEEBQVlKrh///33JCQk4OXl9V7tEXKWSGIjZMr9+/dxcHAgKSkJW1tbwsLCkMvlNG/xH+YuXIT1RxU4fGA/ISEhmJiYYGlhgVanw9rKiu49eui3h6W8kp5WqVTqezaSJJGsVqPTSaiUBvoqYMkpatQv5/DkchkmRplfsKdRq9Go/78/9+rVq9Rv0JBB/XqzevVqlCbFc+Tf5kMQl6wmPllDCSMlpm8ZFbh//z5HjhwhJiaGhQsXEhkZCYChoRFHAk4QHBjArFmz+PPPP7Gzs8u19oZcvEi3z7oREXGP9f5rsKhgxVdffcWlS5dYtWoVQ4cOTVdx7cnjhzSoWyfdz7i/vz8VKqRPSxwREUGDhg2pYmvLhQsXOH/oZ76YMJWSZmZcvx3G8BEjmDZtGgCbN2+mVatWTJgwAS8vL2rVqsWJwECaNm2GsZERMhmkaHWE3bnDqHHjCTh0AIDjwaf4j0vj197Ti8Sk1CyQOgkTI0OUmdxB8iZ+q9YwdZIXL+Lj2bpzF64d2yOR+kHe3t6eGjVqMGPGDNq3b5+pDxDdunXj+fPnnDhxIk+T2HRccQylsel7X0ed+IIDY1oXufgmeu5CplhbW6dbtPPo0SN2//wzy5Ytx+XlQimtVku1atVQq9Xcu3dPn/hC3b27/rxXP0tqtVp9710mk2Gker3Yh0Ih52VRLBRvqeOeEV1aHntJAk0S69asplSpUqzy/x6lYf6u6i8soqKi2L5jB/Vbd2L+9K+4ef1PBvXvx7BhwzAxMdGP0ERHR3P48GHGjh1LdHQ0KpWKqlWr4lTfmUOHDlL+o48Ii7jH/PnzGTBgQK4GdoBP6tXj+l/XSU5MoETJUsjkcv2q71GjRtG5c2cqlC9PCWMVWp3Ex/Z27Nq1i44dO7JixYo3pputVKkSTx4/Zv/+/bi7u5OkMOTs4V9xHTCUh48e4ezszOjRo6lYsSL9+vXDwcGBW7du8fTpU44dO0b7l6vr0xgaKAi9FELAoQM0btaC00GB1K6e8QJDEyNDNFodCnnG1dyyYsGCBUydOpUOnbswdORoWrg0wUCpRKFQ4OvrS2JiIrt27crS2pqcLo6UWVqdhFzUc3+NWFAnvJcKFSowfPhwjgedxGe2L3PnL+DBgwdcu3aNW7duERUVxZQpUwBYunSp/jxlWgCXdOg0Kfryr29ioFBgYmSIsaEhqnfUcn/t3LS9uzoNV0Iu4r9xM14jh6JUGb79RAFJknj46BHNmzdn5IgRNK9Tnd3bfkAhV+Dl5UW1atX4/PPPKVOmDIaGhlhYWDBgwAAaNWpEVFQUSUlJHDhwgOMBx/jU7TMe3ItgYN+eyOVyRowYkSfvwcjYGLPS5vrcBzKZjKpVq6LT6UiMjyflRSwkxWNkIEcul9GhQwdGjRrFlClTCAsLe+N1e/fuTefOndm6dSsNm7fGwMKWLm6fYW5ujoGBAStWrGDixInotFqWLF5My5YtXxvuf9WxY6n1408HBaJQKPSpa/9NJpOhNMi4mltWpS0s9PdfR6vmTTFRGfDg/n3c3d2ZO3cu06dPz/Ki2fr16xMSEpLttgk5Q/TchfemkMuxsijDpIleGCjk6YbuihUrxvz581EoFEyePJkrV64wdepUatSogUIuQ/dyFYv0jpXXGo0arVqDwkCBTJG5Mp5pgoNPcubMGcqYl2brjz+g0Wj4tFOHrL/RD5BWq8XPz4/w8HBGjxnDb78F8cXI0Qzo25cb16+xYK4vJ06cwNPTk+rVq2NgYEDz5s2xsrLSX2P27NmYmpqydtV3vPh6CXIkypcvn2cZ/DLy+PFjypYtS8kSprj36cf9Bw/YvesnKtumjiTMnz+f3bt34+3tzQ8//PDa+Wq1Wh+oX52PHzZsGC9evKBly5aEhIRQt25dNFotbdq0oU2bNm/dItq2bVvWrVsHwK+//pprpZBf5efnx6hRo1g4fy4NGzQkODiIlStXYmZmxqZNmzJVFe7foqOj9bkX8pLouWdMBHchW1IXWL359Tlz5jB37lw2b95McHAw169dQ6lUImm1SEgolG8O2JIkoXk5tK9R65ArDDLVa7lx4wajR4/m6NGjFCtWTL/VCCBFYZQnfzwLO0mSOHz4MB06dGDRokUYqlRIksSTmEQ+snHgm7UbsTAzRiGXk6LRkpSiQfXKHLBWq+Po0aP069cP89KlMM9C5rXcNGDAAL799lv+07aDPqNa3Xr1OXz4MP/973/5/fffcXR0ZO/evRmer1Qq2bdvH7a2tq8tMkvLQ3/v3j3q1q2L4mW+f+CtP7f/+c9/qFevHu3ataNTp0458TbfacSIETx5Eomv7xyWS8v0q+2HDBlC79693+uaL168wMzMLCebmSkiiU3GRHAXclXafLokSZwM+g3pZapIlUnWF8BkJiSHhobSunVrSpcuze7du+natSsajYZnz55RvHjxDNPMCq8zMDDgowoVOH/+PLdu3qRYsWJYWVnrS+5KvOwxySRiElJ3MyRrtCjkMrRaDQ8fPiIsLIyPX6YvLShq1qzJjz/+iNvLJEzLli1jw4YN+i2EpUqVIigoCICDBw/SocPrIz1vCsA+Pj589tlnODo6AqTuEnkZ1P8d3JOSkrCzs2PGjBkMGTKE33//PUfeX2bJZDKmeXszdtw4EhMSKFPGnKTERIyNjd97ZCU/59yzsxWuqPbcxZy7kOs6viwaon65Mu7/OenTkzQp6B7fRBd5J7VErEyGysgIhYESlaFRhrXgU6ug6VK32Gm1eHh4YGVlxblz53Bzc9Nv47KwsBCBPQtkMhkrVqxAoVBQq1YtbGxscHauz/crl6PVqDFRGaDMoIiPROpq7hs3bqRm+ateIx9a/3Zdu3bl3LlzDBo0CA8PD1atWqV/7d69e3Tu3BmAUaNGZem6CoWCunXrpq9i+Iatg3fv3uXhw4dvLMiSFwxVSsqYl8ba2gpjY2NKlS6NkfH7lZ+F1G2rYlSs4BA9dyHXjRw5kv3795OQmIBSZfjG+UfNo5ss/eZbFn+/DZWhEeZly2Fubs7HH39MmzZtcHJyIjY2lipVqqQO7UsSCU8iMJDUKIyLsf6nfVy+fJmzZ89mKquW8HY2NjZcvnyZY8eOkZKSwg8//MCsmTM4fPAAM2bMoHXr1shkMsxMDElMUaMyUGAgl6MBfcGRAX37cufO7QL3R9/Z2RlnZ2cA6tSpo/++iYkJRi+3W/bq1SvX7v/w4SP910+jnlHWvGAU+MmOu3fvpltzkVdSP+C/f+87v0YccpsI7kKu++STTwA4c/YcNT6uqf9+VFQU3t7eBAYGEhsbi6mhkpt3wxno1h5rW3uiErU8ffqUQ4cOpUtpaWxsTNOmTUlMSCD45ElKmpWgaUNnDh3/DQ8Pj7dWsPpQ3L17l23bthEdHc2gQYOwt7fPsEDIuxQrVoyuXbsC4O7uTlBQEKNHj6Zt27Y0adIktcynXEFZC0sqVayIkdIAw5dVA8eMGcOKFSs4fvy4PgFSQWRkZIRGo+HFixfI5XKMjY0BOHz4ML6+vrlyz4ZNmui/jotPKBLBXavV6j8Y5SWdTsrWvLmYcxeE92RhYUHnzp3x8vKiRo3UkpdxcXF0aN+eO3fv4u7ujrm5OQ/v32PVwlk0b9IIWbnKyOT///EMDQ0lLCyMkiVLcvHiRXbv3o0kSXyzYDbnfg/hh50/069fP9auXZuP7zR/6XQ6Nm3axNq1azl9+jRGRkYkJSWxaNEiTE1NWbFiBYMHD87WPZo1a0ZoaChHjx5l/PjxtGzZEkgdkh41ZiwL5s/DUKVCoZDj6enJihUrOH36dIEO7pDa/rQEJr6+vqhUKtq2bZtj10+bPlKnJINMhqFSyfmQP4iPj6O8pUWO3Sc/pa2tEQoGkaFOyBNhYWH06NGDO3fuMGvWLMaPH49Wq+XUyZM0fqUXk1WSTocuJYnIqOdUyIViNnkpLi6O+fPn8+TJE7755htMTExISkpi2LBhlC5dGjc3N1xcXDIc4k5ISKB///7s3r2bDh060K9fP7p06aL/fbWwsKBhw4b6SnIXLlxg2LBhtGzZkkWLFr1Xe7VaLb///jspWh2HDx9m7uxZeHt7M3PmTAC6d+/OH3/8wfnz59+4d7sw0qhTiI1+TsnSZdJNMUmShOZlamVJkjh69Chly5alTs2PWbpsGVO//IqwO3ewtLRAYaBEbmCAJEko5PICN23xPlxcXKhcuTI//PBDnmaoazJ3PwZG75+hTpP0glNfdipy8U303IU8YWNjQ0BAAB4eHvoKbOPGjct2QRaZXI7CyIQKH+X9Yrl//vmHffv2odFoMDExQalUsmfPHg4ePIihoSHFihWjePHi+oednR1jxoyhcuXK6a4jSRJ37txhwoQJHDx4EI1Gw6+//kqXLl3QaDT6/dZLly7l008/Zd26dVy5coUbN27wzz//EBERwf79+4mJieHXX3/l008/1V/78ePHFCtWjEmTJrF9+3b+/PNPtm7dyvLly4mPj+fKlSv4+PjoFxuq1WquXLmCra2tvm7AmygUCho0aIAkSTR0dkYu6Zg1axZr167FwsKC0NBQXLt2xeg9dkYUNFqtlgYNGlCqVCliop9z4feLbNm8kc6ubvj5+REUFERYWBjVqlfn8eMnPHxwX18h7j8tWnAiMBCAe/fvYWlpgUwue2ddg8LG3Nw83d7/vCLpsjnnLoblBeH9XblyBU9Pz3R7zgMCAlCmZZErQJ48ecKVK1deW/0bGxtLdHQ0JUqU4M6dO8ydOzfd+4HUDzHDhw/HwMCAuLg44uPjiYuLIy4ujh9//JHVq1ezefNmunXrxoULF/j66685ceIEkZGRlC5dmq1bt1KjRg02b97Mnj17UKvVuLm5sXTpUn7//XcGDx6sL+8pl8spU6YMFhYW9OzZkyFDhujLkqaxtEwtQDJnzhxWrVpFzZo1kcvlDBs2jMOHD/P48WOio6P1wX337t306tWLL774ItNTHGmZ03x8fHBxceHgwYP8888/WFlb49rV7b3/HwqSESNGcPFi+rK/ffp7YGExmZiYGNq0aUOTJk24+uc1KlauTK06jhgqDVj5rZ8+sAMYGhm/dVFpYaZWqzE0FNkfCwoR3IVcJ0kSXl5eXL58mS+++IL27duzePFi6tSpkyOpNHNCVFQU27dvZ8WKFdy4ceOdxysUCkaOHMm0adMwNzcnKSmJhIQESpcu/cb3FB8fz+eff0737t1xcHDgxo0b2Nvb88UXX1C/fn1atWqlTyYyb9485s2bl+78SpUq4ezszLFjx6hTpw6Ojo6Z/vczNzenZcuWHD9+nPXr12NhYcHKlSvZs2dPuuIorq6uzJw5U185LStkMhlt27albdu2qXXC1RokJFQGBe8DXFb9/fffAISEhBD9LIojR44wf+EidDody5cvp3lTFypVqkSiDl4kpnBw3142r1+nP79SpUr06tWL+vXrF5if+ZxmbGzMixcv8vy+YkFdxsScey6StGqkxDhkSiNkhh/uHutffvkFNze3dEPGzZo1w8jIiCNHjuRr2wIDA1mwYAFHjx5Fp9PRo0cPunfvzieffKIfVUj7FSlRogQlSpQgNjYWjUaj70FnhU6nY+XKlYSGhtK+fXvc3NzyLB1rWi6A+Ph42rRpg4GBAadPny4S8725zd/fnyFDhqBUKlGr1RkeM2L4cOJfvGDf/v08i4rCxcWFgQMH4urqmi9pWfPa0KFDuXDhAiEhIXk6595g5t5sz7mfm9mlyMU30XPPId9++y0hISEsWLCAMmXKpP4h/ec+aFP/ECjKVkam/PCGrBITExk/fjzt27enS5cu+u8PHz6cPn36cPz4cf2K67z06gI0R0dH/Pz8cHV1pXz58u88Nzt76OVyeZaTo+QUmUzG33//jYuLC//88w/79+8XgT2TBg4cSGJiIjKZjMaNG2NsbIyZmRnFixcnLOwubm7dWPndd1SvXp2hnp70798/UzXQixIbGxt27NiR380oUHx9fdm/fz+hoaGoVKpMrUmQJIkZM2awdu1aoqOjadKkCd999x329vZZurcI7jlkzJgx6HQ6vv/+e3x8fPjqq69Aq9G/Lmk1H2RwX7RoEQ8fPuTw4cPpAknPnj1ZvXo1ffr04cKFC1hbW+dqO+Li4ti7dy+JiYl0796dr776igMHDrB161Z69uz5wQS5KVOmkJSUxOXLl19b2Jcd4eHhDBgwgOXLl+FYxzHDbIKFmYGBwRvLwNaqVZvz584RExODbZUqedyygqNy5cpER0cTHR2dp1MPkiRlawtebm7fS0lJoUePHjRq1EhfHOhdFi5cyIoVK9i4cSM2NjZ4e3vTrl07rl27lqU8AkXrNzAfeXt767+eMWMGUc+eIS9pAQolMhOzD3JYPiIignnz5jF+/HgcHBzSvSaXy9mxYweGhoa0atWKkydPZuqabxoSzYgkSfq62+XKlaNv374MGTKEkiVL8u2337Jw4UJ69er1wQR2gJs3b9KmTZscDewAZ8+eJTg4mE8+qcfXixaie+WDbVEnk8kwL1Pmgw7s8P/Fm0+fPs3T+6bNuWfnkVt8fHwYP368PmPju0iSxLJly5g2bRqurq7Url2bTZs28ejRI/021swSwT2HeHt7s3rNWpydnenUqTOmpqbITcwwsLBFUdLygwogaSZOnEipUqWYNm1ahq+XK1eOY8eOUapUKZo2bUrt2rVxd3enYcOG1K1bl6ZNmzJp0iRu3bpFeHg4rq6uqFSq11aoZ+TKlSvUr1+fzp07c+vWLXx8fAgPD+fevXusX7+e4ODgN/bEirKPP/6Y06dPo31ZrSyn9OrVi7GjU6cbZs7xRZOSnKPXFwq+tDUqGk3efrBL2wqXnQekzuG/+khOzvuf4bCwMJ48eULr1q313zMzM6NBgwacOXMmS9cSwT2HKBQKBnp4EPjbb/y06yeM8yENY0GyZ88efvrpJxYuXEjx4sXfeJy9vT2nT59m37591KxZk6ioKGrUqIGzszNKpZLly5fj4OCAjY0Ne/bsAeCPP/544/XUajU7d+6kSZMmJCcnExgYyKVLl5g8eTKVKlXCysqKgQMH4uLikuPvuTAYMWIEt2/fZty4cfoSpTll/rx5bN28kYBDBzBQfXhTUB+6tOFtnU6Xzy15P9bW1piZmekf/96tkheePHkCpCadepWFhYX+tcwSc+45SKVSAoV/20923bx5k/79++Pq6krfvn3febxCoaBTp04ZltKMiYnh7NmzaDQanJyccHBwwMXFhZ49e1KxYkWaNWtGs2bNkMvlHDhwAG9vb27evEm7du3YuXPnWz9YfIicnJxYsmQJU6ZM4eeff2bLli00a9bsjcfrdDpS1GpkyFCplG8dgTIyLUbPPv3gZZlf4cMSEREBQMWKFfM2DW02k9jw8tz79++nWy3/pj37U6dOZcGCBW+95F9//UW1atXev005QAR3IUfFxcXRtWtXypcvz6ZNm7L9R97MzIx27drpn+/Zs4dff/2VkJAQTp06xaJFi5C/TN+p1Wpp1aoV27Zto27dutl9K0XWhAkTcHd3p02bNnh6enL9+vU3Hpui1ryck5RQazSo3pF0qKgtpBMy79atW1hYWFC8eHFiY2Pz7L46SUKWjQ8Tun9tdX0XLy8vBg4c+NZjbG1t36staesWIiMj0+3ciYyMxNHRMUvXEsFdyDGSJDFo0CAePHjA+fPnc2XPaPPmzWnevLn+fnfu3CE4OJiUlBRat25NlQ98UVNmWVlZ4eXlxdChQ4mJicHMzCzD4179bCZ648LbnDp1KssBqDAqW7bse+W4yAwbGxssLS0JCAjQ/1vGxsZy7tw5hg8fnqVrieAu5AhJkvD29mbXrl38/PPPeTIkJZPJsLOzw87OLtfvVRTVq1cPnS616Iu7u3uGx6iUSjQyLcjAoAimTBVyxo0bNwgICGDNmjV5fu+CXM/93r17PHv2jHv37qHVagkNDQXAzs5On42yWrVqzJs3Dzc3N2QyGePGjWPOnDnY29vrt8JVqFBBX3o5s0RwF7Lt0qVLLFy4kG3btrFgwYIs/xAK+cPW1hZjY2OCgoLeGNxlMhlKpfgzIbyZJElMmzaNcuXK0a9fv7y/fwEuHDN9+nQ2btyof542XXjixAl9iucbN24QExOjP2by5Mm8ePECT09PoqOjcXFx4dChQ1na4w4iuAvvITk5mYsXL7J371727NnDtWvXsLa2ZsOGDXh4eOR384RM8vX1RS6XM3Xq1PxuilBI6XQ6pkyZwk8//cTWrVuzHICKug0bNrBhw4a3HvPvkQOZTMasWbOYNWtWtu4tgrvwVpIkcfHiRc6fP8/FixcJCQnh6tWraDQaypQpQ+fOnZk3bx4dO3bEwED8OBUWUVFRrFq1ijFjxlCmTBni4uLEzgIh03Q6HUFBQcyaNYsTJ06wbNkyevXqlU9tAVm2CsfkYGMKEPHXWMiQJEls2LCBhQsXcv36dZRKJTVr1qRevXp4enpSr1496tWrl2dFT4Sc5eXlhVwup2nTphgbG1OpUiXCw8Pzu1lCPrp16xb9+vWjZcuWTJ8+HWNj43SvS5KEv78/58+f59ixY4SHh2NnZ8fRo0fTJV3JawU5/Wx+EsFdeE1SUhKDBw9m69atdOvWDT8/P1xcXESt5iJiw4YNbNy4EX9/fx49egSk1gAQPhzx8fHMmDGDyMhIrK2tMTY2ZsmSJcTGxnL+/Hnmz59PzZo1mTBhAr169eL69euMGTNGnya6VatWbNmyhYYNG4pdFAWUCO5COrdv36Zfv35cvnyZnTt30r179/xukpBDdDodCxYsYNq0aXh6ejJ48GAgteKZGIH5MEiSxMyZM/XzubVq1eLUqVP8/fff1KlTJ12K06tXrzJ48GDGjBlDYmIiVatW5cCBA1StWpXKlSsXmLr0ki71kZ3ziyIR3AUgtXrR4sWLmT17NpaWlvz222/Ur18/v5sl5JCEhAR69erF3r17mTZtGjNnztT3uERg/zCEhIRQr149/XMTExMuXLigH5GLiopi2LBh3Lx5k8uXLwOpSaP++OMPzMzM8PT0LJCjdzqdlM05dzEsLxRRz549o0WLFly7do3x48czc+ZMTE1N87tZQg4aO3YsAQEB7Nu3L8M0v0LRFhERQcOGDfXPPTw8WL58ebpgbW5uzs6dOwE4efIkxYoVw9HRkS5duuR5e7OiIG+Fy08iuAvs3LmTK1eucO7cOZydnfO7OUIu2LZtG5MmTRKBPROSkpK4ceMG5ubmWFlZ5Xdzsi06Ohpvb28UCgW3b9+mTJkymJi8vQT1h1pYqSgRwV1g06ZNtG/fXgT2Isza2pqrV6/qnz969IgjR47QtGlTkbIX2LJlC4sXLwbgzz//JCUlBYDq1atTu3ZtLC0tqVWrFs2bNy9UGREvXLhAx44d+eeff5g4cSIVK1bM7yblONFzz1jBWBEh5Jvjx49z+vRpPv/88/xuipCLxo0bx+7duzl06BAAX331FYMGDcLOzo7Vq1fnc+vyT3x8POvXr6d///6Ym5tTt25dFi9ezMmTJ9m1axeNGjXi6dOnHDx4EE9PT6pWrapfMV7QPX/+nO7du2NjY8PNmzeL7I4InSRl+1EUiZ77B+zYsWN0796d5s2b061bt/xujpCLBg4cyN69e+ncuTPt2rXj7Nmz+tfSeqkfktu3b+Ph4cGZM2eQJInevXuzefPm1xYXvvp7ERsbS/369Vm9enWBH7bW6XQMGjSIuLg4goODi2SPXXg7EdxzkFarRatRo1AYoCjg2dpWrVrFqFGjaN26Ndu3by8w21qE3KFSqdi9ezd+fn7s27ePZ8+e6V+bP39+gV0JnRt++eUXPDw8sLCwwN/fnwYNGvDxxx+/87wSJUrg5OTEjh07cHBwQKPR8PTpU6Kjo7Gzs2PQoEFotVquXLnCkSNH+O2330hOTqZNmzYsXrxYXyjkXSRJQq1Wk5SUhFwuz/R5aXQ6HePHj9eXRy7qgV0My2esYEegQkSSJNTJSQDotFpkcnmBDZgrV65k5MiRjBkzhiVLloi0sR8IpVLJ+PHjGT9+PGvWrMHf358aNWqwceNGtm/fzoABA/K7iblu4cKFTJkyhc8++4zvv/8+y2WJ58+fD8CCBQswMzOjbNmylCxZkgMHDjB79mz9cRUrVqRz586oVCrWrl1LVFQUO3bsQCaTIUkShw8fZvXq1cTExKBWq1Gr1cTHxxMZGUlUVJQ+a5pMJqN58+a4ubnx7Nkzbt++TceOHXny5AlXr17lzz//RKFQYGtri6OjI7Vr12bVqlX88ssvfPfddzm60v3cuXOMGjWKVatWpdtSl98KclW4/CSTMvHOYmNjMTMzIyYmJldqdBcFkiSRnJigf64yMi6Qwf3atWvUq1ePwYMH8+233+Z3c4R8JkkSSqUSrVaLh4cH//3vf6latWp+NytXLFmyhIkTJ+Lt7Y2Pj0+OZlaLi4vj2LFjmJiY6BfgpV1/165ddO/enZkzZ+Li4oKPjw/BwcE4OTlhZ2eHSqVCqVRiYmKCpaUl5ubmGBsbY2RkxPPnz9m9ezcBAQEUL14cS0tLrl+/jrGxMR9//LF+xOH27duEhISQmJhI2bJlWb16NW5ubjn2/gA8PT1Zu3YtlpaW/PHHH5QrV+6Nx+ZFzEi7RxXPH1Go3r76/220KQncWdO3yMU3Edxz0P+H5RUoDJT53ZwMdejQgfDwcEJCQl7LHS18mAICAmjTpg0KhQKNRoOjoyNt27Zl8uTJmJub53fzckRwcDAtWrRg8uTJzJs3L8/v7+Pjw8yZMwFwdHTE19eXDh06ZPoDRkpKCgqFArlczpMnTyhXrtxr6wOSkpK4f/8+FStWzJUpluHDh7N161YUCgWdOnVi06ZNbzw2L4O77Rc/IM9GcNelJHDXv1+Ri29iPDYHKRSKAp3tKyYmhoCAAJYsWSICu6DXqlUrdDodycnJ7Nixg8DAQFauXMmqVauYNGkSI0eOpFSpUgCEh4ezadMmfvnlF54/f46rqyutW7dGqVRiY2ODvb19gcs1npiYSP/+/WncuDFz5szJlzZMnz6dNm3aYGBggJOTU5ZH9VQqlf7r8uXLZ3iMkZER9vb22Wrn28TFxVGhQgU8PT0ZP348Tk5OjB49Ot//v0XhmIyJnvsHZMeOHfTs2ZPw8HAqVaqU380RCrCnT58yd+5cVq5cSUpKCsWLF8fExITIyEhMTU3p2rUrJUuWZPfu3Tx+/Fh/XunSpenQoQMLFy6kQoUK+fgO/m/NmjUMHz6c69ev52rwK+pOnjxJmzZtMDZOnXKMiopiwoQJ+Pr6vlbHPS977jafb852zz1sXf8iF99EcH/F8ePHOXr0KOXLl2fMmDH53ZwcN2TIEM6cOZMumYkgvM2DBw8IDAwkMjKSFy9eYGtri5ubmz49sSRJPHr0CI1Gw40bNzh9+jSrV68mJSWFwYMHY2dnR6VKlahYsSKVK1d+Z2a03ODm5kZ0dDQnTpzI83sXNQ8ePGDSpEns3LmTPn36sG3bNqytrVm/fj3NmjXTH5eXwb3yoE3ZDu7h6wcUufgmhuVfMXr0aK5duwZA586dsbW1zecW5Ry1Ws3Ro0fp2LFjfjdFKESsrKzo16/fG1+XyWR89NFHAFSqVIm2bdsyevRovvzyS3bs2MHDhw/RarVA6rDx+vXr6dWrV560PU1kZCTVqlXL03sWVVZWVmzatInQ0FCSk5O5fPkyQ4cOpW3btgQFBeVLlkudTgJROOY1BW85dz6ytrYGwNjYmJIlS+ZvY3LY3r17iYiIEJnohFxnbm7O6tWriYiIICkpiYiICIKCgnB1dWXw4MHcuXMnT9tTqlQp7t+/n6f3LMqUSiV9+/Zl//79JCcnc+TIERwdHXF3d+fFixd53h5Jp832oygSwf0VZcqUAWDq1KmULl06n1uTs9J6V0FBQfncEuFDYmBgQMWKFWnatCnr1q3D0NCQLVu25Gkb0nqVcXFxeXrfomz48OFUqVIFJycnNm7cyKZNm4iIiMDPzy+/mya8JIL7K+bPn8+5c+eYPn16fjclxzVo0AB3d3c2bNiQ300RPlCmpqbY29vz119/5el9P/vsM2QyWb5sgSuqzM3NuXDhAl988QXDhg3j1KlTTJgwgalTp9K7d29u376dZ20RPfeMieD+Cisrq0zNGT179oynT5/mQYtyVq1atYiIiMjvZggfsK5du/Lzzz/z5MmTPLunlZUV3t7ezJs3j8OHD+fZfYs6lUqFn58fHh4eDB48mPPnzzN79myOHz+epxnsJJ0um8Fdl2dtzUsiuGdAkiT8/PyYMWMGGo2GJk2aYGpqSu/evenatSvm5uaUK1cuR1I7arVa9u/fT0JCwrsPzgZJkti6dSutW7fO1fsIwtsMHz4cQ0NDZsyYkaf3/fLLL2nUqBHLly/P0/sWdQqFgvXr1xMQEMC9e/dYunQpc+bMYc2aNfndtA/eB71aPjw8HH9/f168eEG7du1o3749kLrHd/To0QCUK1eOsLAwEhISePjwIcHBwfrzs7OP98CBAyxevFi/PWfx4sV4eXll49283dq1a7l27ZpIOSvkq1KlSjFv3jxGjBiBg4MDEyZMyJMkKDKZjCZNmrB79+5cv9eHqGXLlly6dImhQ4fi6emZpzuNJK0WSfv+Q+vZObcg+6CDe0BAAL6+vgDcuXNHH9yNjIwwNzfn2bNnWFhYYGdnh5OTE9988w3Ozs4UK1aMgIAAKleu/F73jYyMpFOnTum+l9N5oF+1bds2Ro4cybBhw2jRokWu3UcQMmPYsGHcv3+fiRMnsmXLFj799FMaN26Mqakpcrmc6OhoYmNjsbKywsHBAXNz8xz5AHDp0iUcHBxy4B0IGSldujQ7d+7k/PnzLF26lLt37+bJfSUpe/PmklQ0g3uWktjcv3+/SG3yT05OpmvXrkRHR7Nr1650PfHnz5+j0Wj0RRgmT56MUqnEwsKCEydOvLVowtucPXuWRYsWcezYMQDs7e0ZPnx4rmxR02g0zJw5k2+++YaePXuycuVKUQFOKDACAgJYv349QUFBxMTEvPG4kiVL4uDggLOzM40aNaJhw4b6nS2ZdevWLZydnfn6668ZNGhQdpsuvENsbCzW1tZ5ksSmfI9vkCvfP522Tp3I452ji1wSm0wF96SkJGxsbPJ0EYwgCIJQeFlaWhIWFvZaatqckhbcLT9blu3g/mTXuCIX3DPVjTMyMiIsLIyUlJTcbo8gCIJQBKhUqlwL7K/K7na2oroVLtNjtEZGRnnyHyUIgiAIQvaICVhBEASh0BI994yJ4C4IgiAUWmlJbLJzflEkgrsgCIJQaOl0WshGcNcV0Z67yFAnCIIgCEWM6LkLgiAIhZaYc8+YCO6CIAhCoSWCe8bEsLwgCIIgFDGi5y4IgiAUXlotkjwbvW9ROEYQBEEQChZJyt5q+aJaOEYMywuCIAhCESN67oIgCEKhJel02eu5iyQ2giAIglCwSNlMYiNWywuCIAiCUCiInrsgCIJQaKUOy7//0LoYlhcEQRCEAkYMy2dMBHdBEASh0BLBPWNizl0QBEEQihjRcxcEQRAKLZ1Oi0z03F8jgrsgCIJQaElaHciyEdy1RXNBnRiWFwRBEIQiRvTcBUEQhEJL5JbPmAjugiAIQqEl6bTZG5YvonPuYlheEARBEHKBr68vjRs3xsTEhJIlS2bqnIEDByKTydI92rdvn+V7i567IAiCUGgV5J57SkoKPXr0oFGjRqxbty7T57Vv357169frnxsaGmb53iK4C4IgCIVWQQ7uPj4+AGzYsCFL5xkaGmJpaZmte4vgLgiCIBReWjVSNs8HiI2NTfdtQ0PD9+ox54TAwEDKlStHqVKlaNmyJXPmzMHc3DxL1xDBXRAEQSh0VCoVlpaWPLm2I9vXKlasGNbW1um+N2PGDGbOnJnta2dV+/bt6datGzY2Nty5c4cvv/ySDh06cObMGRQKRaavI4K7IAiCUOgYGRkRFhZGSkpKtq8lSRIymSzd997Ua586dSoLFix46/X++usvqlWr9l5t6dWrl/7rWrVqUbt2bapUqUJgYCCtWrXK9HVEcBcEQRAKJSMjI4yMjPL0nl5eXgwcOPCtx9ja2ubY/WxtbSlTpgy3b98WwV0QBEEQckPZsmUpW7Zsnt3vwYMHREVFUb58+SydJ/a5C4IgCEIuuHfvHqGhody7dw+tVktoaCihoaHEx8frj6lWrRo///wzAPHx8UyaNImzZ88SHh5OQEAArq6u2NnZ0a5duyzdW/TcBUEQBCEXTJ8+nY0bN+qf161bF4ATJ07QokULAG7cuEFMTAwACoWCy5cvs3HjRqKjo6lQoQJt27Zl9uzZWV65L5MkKVu7CARBEARBKFjEsLwgCIIgFDEiuAuCIAhCESOCuyAIgiAUMSK4C4IgCEIRI4K7IAiCIBQxIrgLgiAIQhEjgrsgCIIgFDEiuAuCIAhCESOCuyAIgiAUMSK4C4IgCEIRI4K7IAiCIBQx/wMAC/OzK+3kuwAAAABJRU5ErkJggg==", + "text/plain": [ + "
    " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ax = plt.subplot(1, 1, 1, projection=ds_fcst_aligned.attrs[\"crs\"])\n", + "im = ax.scatter(\n", + " x=t2m_difference[\"xc\"],\n", + " y=t2m_difference[\"yc\"],\n", + " c=t2m_difference.isel(reference_time=0, lead_time=10).values,\n", + " cmap=\"RdBu_r\",\n", + " s=2,\n", + " vmax=1.5,\n", + " vmin=-1.5,\n", ")\n", - "\n", - "ds_fcst_transformed" + "ax.coastlines()\n", + "plt.colorbar(im)" ] }, { "cell_type": "markdown", - "id": "620b8591", + "id": "b0d0d89f", "metadata": {}, "source": [ - "With both observations and forecats completely aligned (space, time, and units). We can calculate some scores" + "### Time" ] }, { "cell_type": "code", - "execution_count": 46, - "id": "bbb4764f", + "execution_count": 30, + "id": "2780b5b4", "metadata": {}, "outputs": [ { @@ -84064,37 +12808,43 @@ " filter: drop-shadow(1px 1px 5px var(--xr-font-color2));\n", " stroke-width: 0.8px;\n", "}\n", - "
    <xarray.Dataset> Size: 4MB\n",
    -       "Dimensions:          (point_index: 1706, reference_time: 3, lead_time: 25)\n",
    +       "
    <xarray.Dataset> Size: 2MB\n",
    +       "Dimensions:         (point_index: 1879, reference_time: 2, lead_time: 25)\n",
            "Coordinates:\n",
    -       "    code             (point_index) int64 14kB 1203 1205 1209 ... 26966 26976\n",
    -       "    station_name     (point_index) <U20 136kB 'Krakenes' ... 'Krasnaja Gora'\n",
    -       "    station_country  (point_index) <U20 136kB 'Norway' ... 'U.S.S.R.(Europe)'\n",
    -       "    latitude         (point_index) float64 14kB 62.03 62.33 62.18 ... 52.9 53.02\n",
    -       "    longitude        (point_index) float64 14kB 4.983 5.267 6.067 ... 30.03 31.6\n",
    -       "    altitude         (point_index) float64 14kB nan 38.0 74.0 ... nan nan nan\n",
    -       "  * reference_time   (reference_time) datetime64[ns] 24B 2020-02-01 ... 2020-...\n",
    -       "  * lead_time        (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 d...\n",
    -       "    valid_time       (reference_time, lead_time) datetime64[ns] 600B 2020-02-...\n",
    +       "  * code            (point_index) int64 15kB 215734 215735 ... 1020486 1595975\n",
    +       "    wigos_id        (point_index) <U15 113kB '0-20000-0-13611' ... '0-20000-0...\n",
    +       "    wmo_code        (point_index) float64 15kB 1.361e+04 1.362e+04 ... 1.62e+04\n",
    +       "    station_name    (point_index) <U40 301kB 'DURRES' ... 'RADICOFANI'\n",
    +       "    country_code    (point_index) <U2 15kB 'AL' 'AL' 'AL' ... 'GB' 'GB' 'IT'\n",
    +       "    latitude        (point_index) float64 15kB 41.3 40.08 40.6 ... 57.33 42.9\n",
    +       "    longitude       (point_index) float64 15kB 19.45 20.15 ... -7.367 11.77\n",
    +       "    altitude        (point_index) float64 15kB 15.0 193.0 889.0 ... 10.0 816.0\n",
    +       "    city_name       (point_index) <U40 301kB 'DURRES' ... 'RADICOFANI'\n",
    +       "  * reference_time  (reference_time) datetime64[ns] 16B 2020-02-01 2020-02-02\n",
    +       "  * lead_time       (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 da...\n",
    +       "    valid_time      (reference_time, lead_time) datetime64[ns] 400B 2020-02-0...\n",
            "Dimensions without coordinates: point_index\n",
            "Data variables:\n",
    -       "    10si             (reference_time, lead_time, point_index) float64 1MB dask.array<chunksize=(3, 25, 1190), meta=np.ndarray>\n",
    -       "    2t               (reference_time, lead_time, point_index) float64 1MB dask.array<chunksize=(1, 25, 1190), meta=np.ndarray>\n",
    -       "    2d               (reference_time, lead_time, point_index) float64 1MB dask.array<chunksize=(1, 25, 1190), meta=np.ndarray>\n",
    -       "    msl              (reference_time, lead_time, point_index) float64 1MB dask.array<chunksize=(1, 25, 1190), meta=np.ndarray>\n",
    +       "    10si            (point_index, reference_time, lead_time) float64 752kB 2....\n",
    +       "    2t              (point_index, reference_time, lead_time) float64 752kB 10...\n",
            "Attributes:\n",
    -       "    properties:  {'space': 'point', 'time': 'forecast', 'uncertainty': 'deter...
  • mlwp_time_trait :
    forecast
    mlwp_space_trait :
    point
    mlwp_uncertainty_trait :
    deterministic
  • " ], "text/plain": [ - " Size: 4MB\n", - "Dimensions: (point_index: 1706, reference_time: 3, lead_time: 25)\n", + " Size: 2MB\n", + "Dimensions: (point_index: 1879, reference_time: 2, lead_time: 25)\n", "Coordinates:\n", - " code (point_index) int64 14kB 1203 1205 1209 ... 26966 26976\n", - " station_name (point_index) \n", - " 2t (reference_time, lead_time, point_index) float64 1MB dask.array\n", - " 2d (reference_time, lead_time, point_index) float64 1MB dask.array\n", - " msl (reference_time, lead_time, point_index) float64 1MB dask.array\n", + " 10si (point_index, reference_time, lead_time) float64 752kB 2....\n", + " 2t (point_index, reference_time, lead_time) float64 752kB 10...\n", "Attributes:\n", - " properties: {'space': 'point', 'time': 'forecast', 'uncertainty': 'deter..." - ] - }, - "execution_count": 46, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Calculate MSE by hand\n", - "mse = (ds_obs_aligned - ds_fcst_transformed) ** 2\n", - "mse" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "id": "8e04520c", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[]" + " mlwp_time_trait: forecast\n", + " mlwp_space_trait: point\n", + " mlwp_uncertainty_trait: deterministic" ] }, - "execution_count": 31, + "execution_count": 30, "metadata": {}, "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAGxCAYAAACeKZf2AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAbMNJREFUeJzt3Xd4W/W9P/D3kWTLW47teNuxnT0dk0VIAmkJI4VAOiilQFhdv4YWCpdLc3tZ7W0DbSmlF0oXkMKFMgoEEiAQRvYezl5OnNjxnpI8tM/vD+kc24mdeOjonCO9X8/j5yHW+h6RWB9/v58hiKIogoiIiChMGNReABEREVEwMbghIiKisMLghoiIiMIKgxsiIiIKKwxuiIiIKKwwuCEiIqKwwuCGiIiIwgqDGyIiIgorJrUXEGo+nw/V1dVITEyEIAhqL4eIiIj6QRRF2O12ZGdnw2C48N5MxAU31dXVyMvLU3sZRERENAiVlZXIzc294H0iLrhJTEwE4H9zkpKSVF4NERER9YfNZkNeXp78OX4hERfcSEdRSUlJDG6IiIh0pj8pJUwoJiIiorDC4IaIiIjCCoMbIiIiCisMboiIiCisMLghIiKisMLghoiIiMIKgxsiIiIKKwxuiIiIKKwwuCEiIqKwwuCGiIiIwgqDGyIiIgorDG6IiIgorDC4ISKiIXF7fShvbFd7GUQyBjdERDQky949gK/8fh22nmxSeylEABjcEBHRENRYO/He3ioAQGllq7qLIQpgcENERIP2r+0V8PpEAECdzaHyaoj8GNwQEdGguDw+vL6jUv4zgxvSCgY3REQ0KGsO1aKxzSn/mcENaQWDGyIiGpRXtpwGAFwxZjgAoM7mvMC9iUKHwQ0REQ3Y4Wobdp1pgckg4P4FowEA9XYHfIH8GyI1MbghIqIBe3XbaQDANZMyMSnHAgBwe0U0d7hUXBWRH4MbIiIaEGunGyv3VgMAllw6AlFGA9ISogEw74a0gcENERENyL93n0Wn24txmYmYWZgCAMhIigHA4Ia0gcENERH1m88n4v+2nQEA3D57BARBANA9uGFSMamPwQ0REfXbxrJGlDe2I9FswuKpOfL3peCm1sqdG1IfgxsiIuq3V7eeBgB8c1ou4s0m+fsZSWYA/oopIrUxuCEion6pbO7A50frAfiPpLrL5M4NaQiDGyIi6pfXtldAFIG5o9IwcnhCj9uYc0NawuCGiIguyuH24s2dFQDO37UBWC1F2sLghoiILurD/TVo6XAjJzkWV45LP+92Keemqd0Fl8cX6uUR9aBqcLN8+XLMmDEDiYmJSE9Px+LFi3Hs2LELPubQoUP45je/iYKCAgiCgD/+8Y+hWSwRUQR7JVD+/d1Z+TAZz//oSImPRpTRXxbOpGJSm6rBzfr167F06VJs27YNa9euhdvtxtVXX4329vY+H9PR0YGioiI8+eSTyMzMDOFqiYgi077KVuyrbEW00YDvzMjr9T6CICA9kXk3pA2mi99FOWvWrOnx5xUrViA9PR27d+/G5Zdf3utjZsyYgRkzZgAAfv7znyu+RiKiSPfKVv+uzXVTspCaYO7zfpmWGFS1djLvhlSnqZwbq9UKAEhJSVF5JUREBADN7S6s2u+fI9VbInF3Ut4NgxtSm6o7N935fD7cf//9mDNnDiZNmhS053U6nXA6u7ZIbTZb0J6biCjcvbWrEi6PD5NyklCSl3zB+8pdihnckMo0s3OzdOlSHDx4EG+88UZQn3f58uWwWCzyV15e7+fFRETUk7fbHKkllxbIc6T6IgU39cy5IZVpIri59957sXr1anz55ZfIzc0N6nMvW7YMVqtV/qqsrAzq8xMRhat1x+pxtqUTyXFRuGFq9kXvzy7FpBWqHkuJooif/OQneO+997Bu3ToUFhYG/TXMZjPM5r4T4IiIqHdSIvG3p+chJsp40funSzk3LAUnlaka3CxduhSvv/463n//fSQmJqK2thYAYLFYEBsbCwBYsmQJcnJysHz5cgCAy+XC4cOH5f+uqqpCaWkpEhISMGrUKHUuhIgozJQ3tmP98QYIAnDbrAsnEkuknZs67tyQylQ9lnrhhRdgtVoxf/58ZGVlyV9vvvmmfJ+KigrU1NTIf66urkZJSQlKSkpQU1OD3//+9ygpKcH3vvc9NS6BiCgsSbk288cMR35qXL8eI+XctLu8aHN6FFsb0cWofix1MevWrevx54KCgn49joiIBqfT5cXbu/z5iUtmF/T7cfFmExLNJtidHtRaHRiVnnDxB0UYj9eH3WdacMmIYYjqpdMzBQffWSIi6uH90irYHB7kp8ThijHDB/RYKe+mnuXgvXph3Unc/LdteDWQz0TKYHBDREQyURTlROLbLs2HwXDh8u9zZVrY6+ZCPj7ozy09WG1VeSXhjcENERHJ9lS04HCNDWaTAd+ePvC+YBmcL9WnxjYnDtf4G8myi7OyGNwQEZHsn1v8uzY3Ts1Gclz0gB+fYZGCG354n2tzWaP83+wFpCwGN0REBABosDvx8UF/depAEom7y0jkfKm+bDrRFdxwZ0tZDG6IiAgA8MaOCri9IkrykzEpxzKo52DOTe9EUcSmbjs3bU4P7A63iisKbwxuiIgIHq8Pr++oAAAsucj07wtJ53ypXp1saEeN1YFokwFx0f5uz9zdUg6DGyIiwmdH6lBjdSA1Phpfm5w16OeRuxTbHPD52JNMsulEAwBgRsEw5CT7O/DXWhkAKoXBDRERyeXfN8/Ig9l08TlSfRmeaIYgAB6fiOYOV7CWp3vSkdTcUcN5dBcCDG6IiCJcWb0dW042wSAAt146+CMpAIgyGpAa708qZkWQn9vrw9aTTQCAeaPT5DEVPJZSDoMbIqIIJ+3aLBifIR+ZDEWG1KWY08EBAHsrWtHu8iIlPhoTspLkozsGf8phcENEFMHanB68u6cKwODLv8/V9eHNnBKgK9/mspGpMBgEuRdQDYMbxTC4ISKKYO/tOYs2pwdFw+MxZ1RqUJ4znccuPWwM5NvMG50GoGfSNSmDwQ0RUYTqPkfq9ktHQBAGNkeqL/zw7mLtdGNfZSsAYO5o/xDSLCYUK47BDRFRhNp2qhkn6tsQF23EN6flBu15pZwbBjfA1pNN8IlA0fB4OZ9JSihubHPC7fWpubywxeCGiChCvbrtNABgcUkOkmKigva8GfLOBHNuNpX5823mjUqTv5caH40oowBR9I+8oOBjcENEFIFqrQ58cqgOwNA6EvdGmgxez50beZ6UdCQFAAaDgPREHk0picENEVEEenfvWXh9ImYWpmBcZlJQn1tqUtfU7oLT4w3qc+tJZXMHTjd1wGgQcGlRSo/bpKM7loMrg8ENEVEEknYUFk0Z/KiFvgyLi0K00f/xEsnHLlJX4pK8ZCSec+wndylmcKMIBjdERBHG4fZi15kWAMBl3XJBgkUQBKQzqbjbkdT573Fmkj+5OJLfHyUxuCEiijB7zrTA5fEhI8mMorR4RV6ja8RAZO7ceH2ivHMzr7fgxhI4lmJwowgGN0REEWbzSf+H7pyRaUHrbXOuSB8xcLDKCmunG4lmE4pzk8+7PSPC3x+lMbghIoowm8v8QxxnjwxOR+LeyMdSETpfStq1uXRkKkzG8z9q2ehQWQxuiIgiiM3hxv6zrQCUybeRyB/eEbozsTEwT+ryXo6kgK6E4hqrA6IohmxdkYLBDRFRL1bvr8aTHx+F1xdeHzw7TjXDJwIFqXFBmQDel0jOuelwebA7kLDdvb9Nd9L74/T4YO10h2xtkcKk9gKIiLTmte1n8Iv3DgLwJ4POUXCHI9S2nPQfSSm5awN0D24ib+dme3kz3F4ROcmxKEiN6/U+MVFGDIuLQkuHG7U2B5LjokO8yvDGnRsiom7e2lkpBzYAcKTGpuJqgm9Lt2RiJUXyfCmpBHze6AsnbDOpWDkMboiIAt7bexYPv7sfAJAdyIk4UmNXc0lB1djmxNFa//Wc2zE32KQP7naXF3ZHZB27XKi/TXdS3k0kBoBKY3BDRARg1b5qPPjWPogicNul+Xh00QQAwLG68Nm52Ro4khqflYTUBLOirxVvNiHR7M98iKS8m3qbA8fq7BCEi++OdZXLR877EyoMbogo4q05WIP73yyFTwS+MyMPv7xhEsZn+ectnahrg8frU3mFwSEdSV2mYAl4dxkRuDMhlYBPyrZgWPyF82jkYylbp+LrijQMbogoon12uA73vr4XXp+Ib1ySg998fTIMBgF5w+IQF22E0+PD6aYOtZcZFFIy8ZxRIQpuIjDvZmM/j6QAzpdSEoMbogjh84l47P2D+K/3DrCvRsCXx+rx49f2wOMTcUNxNn73rWIYDP4EUINBwOiMRADAsVr9592cbenAmcCE6hkFyubbSLp2JiLjw1sUu41c6Ec1mhzcRNCxXagwuCGKEK9sPY1/bj2D17dXhM1OxFBsOtGIH766Gy6vDwsnZeIP3y6G0dCzsmV8phTc6D/vRtq1Kc61nDehWilScFMfIR/ex+rsaLA7ERNlwLSCYRe9P7sUK0fV4Gb58uWYMWMGEhMTkZ6ejsWLF+PYsWMXfdzbb7+NcePGISYmBpMnT8ZHH30UgtUS6dephjY8ueao/OfjdfrfiRiKrSeb8L1XdsLl8eGqCRn40y0lvbbIHxsIbo6Ewc7NlsCOQih79kTafCmpSmpmYSrMJuNF7y+9P83tLjg9XkXXFmlUDW7Wr1+PpUuXYtu2bVi7di3cbjeuvvpqtLe39/mYLVu24JZbbsE999yDvXv3YvHixVi8eDEOHjzY52OIIpnXJ+LBt/fB4e5Kij0eBh/Wg7XzdDPu+edOONw+fGXscDz33RJE9RLYAF3Bjd6PpURRlHdulJwnda6MCJsvJeXb9DVy4VzJcVGINvn/7kXK7laoqBrcrFmzBnfeeScmTpyI4uJirFixAhUVFdi9e3efj3n22Wdx7bXX4qGHHsL48ePxq1/9Cpdccgmee+65EK6cSD/+tuEU9la0ItFswu2XjgAAHK9vU3lV6thb0YK7Xt6JDpcX80an4YXbpl3wN+xxmf6KqYrmDrQ7PaFaZtCdbGhDvd0Js8mAS/IvflwSLBkRNF/K6fFie7k/gOxPMjEACIIg797URMB7FEqayrmxWq0AgJSUvpPdtm7digULFvT43jXXXIOtW7cqujYiPTpWa8cza48DAB5dNAHzx/rn3JyIwGOpA2etWPLSDrQ5PZhdlIq/3T4dMVEXPjpIiY9GeqJ/90HPR3nSFPDpBcMues3BJOfc2J3whdmMrnPtPtMCh9uH4YlmjA0kovdHV1Ixg5tg0kxw4/P5cP/992POnDmYNGlSn/erra1FRkZGj+9lZGSgtra21/s7nU7YbLYeX0SRwO314YG3SuHy+rBgfDq+NS0XYwI/dE81tIdN75b+OFxtw20vbofd4cGMgmF48c7piI3u34e8dDR1VMdHU139bUI7I2t4ohmCAHh8IpraXSF97VCTuxKPuvDIhXNF+vR0pWgmuFm6dCkOHjyIN954I6jPu3z5clgsFvkrLy8vqM9PpFXPfVGGQ9U2JMdF4TffmAxBEJCTHIvYKCNc3vDp3XIxx2rtuO3F7bB2ulGSn4yX75qJuOj+zwwep/O8G69PlDsTh6p5nyTKaEBqfGT0upFKwOcOMGGbOzfK0ERwc++992L16tX48ssvkZube8H7ZmZmoq6ursf36urqkJmZ2ev9ly1bBqvVKn9VVlYGbd1EWnXgrBXPfVkGAPifxZOQnuj/Aerv3ZIAIDKOpsrq23DrP7ahud2FKbkWrLhrJhLM/Q9sgK68m6M6LQc/XG2DzeFBotmEyTmWkL9+piX8g5uWdhcOVPnTKvqbbyOJtF5AoaJqcCOKIu6991689957+OKLL1BYWHjRx8yePRuff/55j++tXbsWs2fP7vX+ZrMZSUlJPb6IwpnD7cUDb5XC6xNx3ZQsXD8lu8fto9MDOxFhHtyUN7bju3/fhsY2FyZkJeGVu2fCEjvw/i7dj6X02Pxwc+BIalZRaq/l7krLSJR6uYRvNdDmk40QRWBMRoIcrPQXj6WUoWpws3TpUvzf//0fXn/9dSQmJqK2tha1tbXo7Oyas7FkyRIsW7ZM/vN9992HNWvW4Omnn8bRo0fx+OOPY9euXbj33nvVuAQizXlm7XGcqG9DWoIZv7rx/Py1sZnSzk34VkxVNHXgu3/fhnq7E2MzEvF/35uF5LgLz/npy6j0BBgNAlo73Ki36+8DeotKR1KSjAg4dunKtxk+4MdKO1uslgouVYObF154AVarFfPnz0dWVpb89eabb8r3qaioQE1Njfznyy67DK+//jr+9re/obi4GP/+97+xcuXKCyYhE0WKXaeb8beNpwAAy78xGSm9DO6TRgroufrnQs62dOCWv29DjdWBUekJeO37s3p9H/orJsqIwrR4APpLKnZ5fNhZ3gwgtM37upN2burDNLgRRVHubzNvgEdSAJBpiQUA1NsdYV9RFkoDO3wOsv5s8a5bt+68791000246aabFFgRkX51uDx48O19EEXgW9NycdWEjF7vJ1VMlTe2w+XxyU3EwkGt1YHv/n07qlo7UZgWj9e/NwtpCeYhP+/YzESU1bfhaI0NV4wZ+G/natlb0YJOtxdpCdEYE8i1CjVpZyJcd25ON3WgqrUTUUYBs4oGPrMrPVBR5vaKaO5wBeXvK2kkoZiIhu7Jj4/iTFMHsi0xeHTRhD7vl22JQYLZBI9PxOmmvruB69FvPjqCiuYO5KfE4fXvz0L6APMf+jJOpwM0u7oSD6w8OZjSk8I752bTiQYAwLQRwwZUhSfpXlEWKWMqQoHBDVEY2FzWiFe2ngEA/PZbxUi6wGBEQRAwKt3/W3w4HU11uDxYe9hfSfnsd6YiK7DdHwx67XXT1d9GnXwbIPyHQ3YdSQ1+Ry8SKspCjcENkc7ZHG7857/3AwBuv3REv0pRpSOKcJox9eXRBnS6vcgdFoupeclBfe7xWf4qy7L6Nrh10vyww+XB3opWAMCcEDfv6y4jjIdDerw+uYfQQPvbdJfJcvCgY3BDpHP/s/owqlo7MSI1Dj9fOK5fjxkjJxWHT8XUhweqAQDXTckK+hFMTnIs4qMDzQ8b9XGUt6O8GR6fiNxhschPjVNtHcPiohBtDM/hkPvOWmF3emCJjcKkIfQQyoiw6emhwOCGSMc+P1KHt3adhSAAv7+pGPH9bFAnBzf14bFz0+Hy4Iuj9QCA6ydnX+TeA2cwCBijs6MptboSn0sQBKQHpoPXh9l0cKkEfM6oVBgNgw+osywMboKNwQ2RTrW0u/Dzdw8AAL4/rwgzCvpfqSEFN2eaOsLiqOCLo/VwuH3IT4nDpBxlGnXqrVOx1LxPrRLw7uRjF2t47dxsKvMnEw+mv0137FIcfAxuiHTq0Q8OocHuxKj0BDxw1ZgBPTYjyYzEGBO8PhGnGvRxzHIhH+7398JS4khKoqcZU60dLhyq9gdhs4vU3bkBuj68wylh1u5wyzlNg+lv0500Xyqc3h+1Mbgh0qHV+6uxal81jAYBT99UjJio/k24lgiC0C3vRvsf1hfS7uw6krpucpZir6Oniqltp5ogisDo9ISglcMPRTgGN9tO+XOaRqTGIS9laDlNmcy5CToGN0Q6U2934JGVBwEAS+ePRPEgK4PkiimdBzefH62H0+NDQWocJmYrNztO2rk529IJu8Ot2OsEw+YybeTbSDKSwq/UWepvM5QqKYk0osLm8KDD5Rny8xGDGyJdEUUR//XuQbR0uDEhKwn3fnX0oJ8rXCqmPtyvXJVUd8lx0fJv2FoPCOX+NhrItwG6jl3CKadkY9ngRy6cK9FsQly0f/eVuzfBweCGSEfe2VOFz47UIcoo4A83Fw9pdIIU3JzQ+Af1hbQ5PfjymP836OsUqJI6lx6OpmqtDpxsaIdBAC4t1MbOTbo8Xyo8EoqrWztxKvAezw5CDyFBEMIyAFQTgxsinahu7cQTqw4BAH521Ri5emewRgeOpc40d8Dh1mfF1OdH6uDy+FCYFo/xWYmKv964LO0nFW895d9RmJRjgSWu707VodT9g7s/MwW1TioBL85LhiU2OO9xuHdyDjUGN0Q6IIoiHn5nP+wOD0ryk/GDeUVDfs7hCWYkx0VBFP2dd/VIrpKarOyRlETKuzlao93gpivfRhtHUkBXzk2Hy4s2p/5zSuQjqSAe+4VrubxaGNwQ6cBr2yuw8UQjYqIMePqmYpiMQ/+nKwgCxqQHjqZ02MzP7nBj3fHAkdQU5aqkuhub0dXrRos7EKIoaqZ5X3dx0SYkxvgbTOp9Z8LnE7E5ENzMHcI8qXNlsBw8qBjcEGncmaZ2/OajIwCAh68dh6LhCUF7bulo6lit/nZuPj9SD5fHh6Lh8fKOitJGpsfDaBBgc3g0mRtxpqkDVa2diDIKA2rqGAoZYTId/HCNDc3tLsRHG1GSnxy052U5eHAxuCHSuF+tPoIOlxeXFqXgjtkFQX1uKUFWj0nFqwNHUteH6EgKAMwmI0YOjwegzaMpqStxSf4wxEYPrPeR0sLlw3tTYNfm0qJURAVhB1Ui5SXVaDBo1iMGN0Qa1u70YEPg6OWJGybBMIT5Nb0Zna7PGVM2h1t+X66bonyVVHdj5TEM2nvPtgSOpNScAt4Xab5Unc7nS0nJxHODUALenZxQrPPgTysY3BBp2LZTTXB5fchLiZWb7gWT9JyVzZ26ah722eE6uLw+jEpPUOR9uZCuMQzamjHl83XLtxmlnXwbSTh8eDvcXuw43QwgOP1tupN2bhranPD6tJfPpTcMbog0bH1gd+KKMcMVOXpJTTAjNT4agL4qpkJdJdXdOI32ujlWZ0dzuwtx0UYU5yarvZzzhEPOzY7yZrg8PmQmxWBkEHPfACAtwQyjQYDXJ6KxTb/vkVYwuCHSKFEUsS7QoG7+mHTFXme0PIZBH8GNtdONjYGjgVBVSXUn5SmdbGiD2+sL+ev3RargmVmYMqTmjkoJh8nXm8q6jqSCHVQbDQKGJ/iP7vSel6QF2vsXQEQAgNNNHaho7kCUUcBsBct6x+psgKZ0JDU6PUHushxKOcmxSDSb4PZqa6K6FkvAu5N63dTrOLiRgupgH0lJMsKgS7HPJ+JIjU31xqAMbog0at0x/6TrGQUpiDebFHud0ToLbj48EDiSUmHXBvD3B+oaw6CNvBuP14ft5f5cEC017+tOyimptzvh02FOSYPdiSM1/v/fcxSa2ZUVBhVlVa2dWPjsRpT8cq2quUMMbog0Ssq3mT82eI3CetM1Y0r7x1LWDjc2npBmSakT3ADamzG176wVbU4PkuOiMCFLucnoQ5GWYIYgAB6fiKZ2l9rLGTBpGOmErCSkBY6Pgi0c5ktJDUFHpMbBGOTqzoFgcEOkQQ63F9tO+Y8ZrlAw3wboqpiqau3UfGv8Tw/Xwu0VMTYjUd5xUkNXxZQ2gputgQ/e2UWpQW8XECxRRoMcFOixC6/SR1JAt6RrHe/cSIUJI9NDW8V4LgY3RBq0vbwZDrcPWZYYxUudk+OiMTzR/6Gj9WZ+ah9JSaReN1oJbrrmSWkz30Yi5d3oLbgRRVGx/jbdZVoCCcU6e3+6k4Kb0QxuiOhc648pWwJ+LimA0vLRVGuHS/6A+ZqKR1JA17FUVWsnrJ1uVdficHuxu6IFAHCZQrkgwZKp04qpkw1tqLU5EG0yKDrWIhwqyk4EgptRDG6I6FzrjvuTia8Yo2y+jUTKuzmm4Z2bTw/XweMTMS4zUfUfnJbYKGQH8iPUTsTefaZF7r1SlBav6louJl2nvW6kZO3pI4YhJkq5sRbdR1RocTDrxYii2G3nRr1jY4DBDZHmVDZ34FRDO4wGAXMU3ALvbowOKqa6N+7TAq0kFUuJrpeNTA15Q8OB0muX4n2VrQCAS/KHKfo6UkJxh8sLu8bz33rTYHfC7vDAIAAFaXGqroXBDZHGSFVS0/KHISkmKiSvqfVjqZZ2l9yk7msq59tIxgWqko7WqFsOLufbaPxICuiWc6Oz+VL7Kq0AgOK8ZEVfJy7ahKQYf9sHvQWAQNeR1IjUeJhN6g5uZXBDpDFSV+IrFC4B725UYAu51uZQPYekN58eroXHJ2J8VlLQ294PlhYqpmwON/afbQWg/WRioFtOiY4+uNucHnmwbHGuRfHX03M5eJlG8m0ABjdEmuLy+ORjhlDl2wD+HBLpyKBMgxPCVweOpK7XyK4N0HUsdazWrlp+xI5TzfCJQGFaPLKTY1VZw0BIwU29XT85NwerrBBFINsSI+cMKUmPAaCEwQ0R9WrXmWZ0uLxISzCHvBmbVmdMNbe7sCUwWkDtKqnuitISEGUUYHd6UNXaqcoaNkv9bXSwawN05dw0t7vg9Kjbnr+/pHwbpY+kJHJekg53bqQGfqM0sLvK4IZIQ7qXgIe6GZs0Y0orvVsknxyqhdcnYmJ2Ego1VA0UbTLIR2RqvWfSPKk5Gh25cK7kuCh5qGe9Tiqm9gWO/UIW3ASOpWp0uXPjn7U2WuHeXP3B4IZIQ6Rk4lDm20jkMQwaO5aSq6Q0dCQlUbNiqrHNKb+uXnZuBEHQXSM/OZk4NzkkrycFN3p5fyStHS40tvkDVi3kxaka3GzYsAGLFi1CdnY2BEHAypUrL/qY559/HuPHj0dsbCzGjh2LV155RfmFEoVAjbUTR2vtMAjAPBUqX7R4LNXU5sTWwBgKrZSAdzcu0KlYjeBG2rUZn5WElPjokL/+YGUk6qfXTb3dgarWTggCMDkEycSAfhsdSvk22ZYYRQf99peqwU17ezuKi4vx/PPP9+v+L7zwApYtW4bHH38chw4dwhNPPIGlS5di1apVCq+USHkbArs2xXnJGKbCh5U0q6nB7kRrhzYGG35yqA5en4hJOUkYkaqdIylJV8VU6MvBpcTzOTrZtZFk6KgaaH9g12Z0egISQvSB3ZVQrP3grzs5mVjFmW/dqRpeLVy4EAsXLuz3/V999VX88Ic/xM033wwAKCoqws6dO/HUU09h0aJFSi2TKCTkI6kQVkl1l2A2ISc5FlWtnThe14aZhcq1me+vDw9UAwCum5yt8kp6Jx1LnWpoh9PjDWlvDynJ+rJROgtuAjs39ToIbuR8mxAdSQFdx1JN7U64vT5EGfWRPSKPXdDAkRSgs5wbp9OJmJiepXixsbHYsWMH3O7ee3M4nU7YbLYeX0Ra4/H65KnDagU3QPejKfXzbhrbnPLRixaPpAAgyxKDxBgTPD4RJwPJlKFwtqUDZ5o6YDQImFmor+BGT8MhS0NcKQUAKXHRiDIKEEV9lcxrqQwc0Flwc8011+Af//gHdu/eDVEUsWvXLvzjH/+A2+1GY2Njr49Zvnw5LBaL/JWXlxfiVRNd3N7KVtgdHgyLi8KUEP6WeK6xGhrDsOZgLXwiMCXXgvxUdVu590UQBIyXJoTXhe4Xpy2BrsTFuZaQHZcES4ZOSp1FUZTLwKeGMLgxGASkJ0pHU+q0GBgMeaaUBiqlAJ0FN4888ggWLlyISy+9FFFRUbjxxhtxxx13AAAMht4vZdmyZbBarfJXZWVlKJdM1C/rjvkHZc4bPRzGEJeAdzdaQ8GN1mZJ9UWNiik530YHIxfOlaGT4Zmnmzpgc3gQbTLI/49DJcuir7yb9m69nngsNQixsbF46aWX0NHRgdOnT6OiogIFBQVITEzE8OG9b+WbzWYkJSX1+CLSGinfZr4KJeDdaWXGVIPdie3l2mvc15uxIR7DIIoiNkv5Njrpb9Nd950bLU++lnZtJmUnhTzvRU9J14A/5wwAUuOjVSmG6I2ughtJVFQUcnNzYTQa8cYbb+D666/vc+eGSOsa7E4crPIfacwbrW5wI52XN7W70NSm3m+Naw75j6SK85KRl6LNIynJ+KzAzk1NaIKbkw1taLA7YTYZUJKfHJLXDCapz43WJ1+rkW8j0VuX4rKGQGdijeTbACpXS7W1taGsrEz+c3l5OUpLS5GSkoL8/HwsW7YMVVVVci+b48ePY8eOHZg1axZaWlrwhz/8AQcPHsQ///lPtS6BaMikEvBJOUkYnmhWdS1x0SbkpcSistlfMTU7QZ31fLjfXyV1vcZ3bYCu5oe1NgesHW5Y4pSd5C5NAZ9RkIKYKHUnLw9GXLQJiTEm2B0e1NscCNXk+4GSKqVCmW8jydTZfClpp1dLwY2q2x27du1CSUkJSkpKAAAPPPAASkpK8OijjwIAampqUFFRId/f6/Xi6aefRnFxMa666io4HA5s2bIFBQUFaiyfKCjkI6kx6SqvxG9MurqdiuvtDmwvbwYALJycqcoaBiIxJgo5gaGVR0PQ72aLzuZJ9SZT471cXB4fDlX7/1+GsgxcordjKa1VSgEq79zMnz//gmeuK1as6PHn8ePHY+/evQqviih0vD4RG06oN3KhN2MyE/H50XrV5iWtOVgLUfT/xpw7TNtHUpLxWYmoavV3mJ5VpFzQ4fWJXfOkdJhMLMlIisGJ+jbNHrscq7XD5fHBEhuFESpU6nUlFGvz/TlXWUOgUipdGw38AJ3m3BCFi/1nW9Ha4UZijAklKmx/90btpOLVgSqp6zU4S6ovoaqY2ne2FTaHB4lmEyZl67c4IkPjIwZKuw3LFITQVy92H8Gg5aRrwL/LdaapA4C2dm4Y3BCpSDqSmjc6DSaNdCKVfvs6Xm8P+Q/WOpsDO09LR1J6Cm4CvW4UPpZ6desZAMCV49M18/dlMKSkYq12KZb724RontS50gPvj8vjQ2tH7w1qteJ0Uzu8PhGJZpP8/1UL9PuvgygMrDum7siF3oxKT4BBAFo73GgIccXUxwdqIIrAJfnJch6LHozrVg7u8ykTENZYO7Fqnz/R+p65RYq8RqhkajynZJ+KlVIAYDYZ5WGoWn2PJFK+zcj0BFV2ufrC4IZIJS3tLrki4wqNJBMDQEyUEfmB8utQH019dKAWAHDdFG3OkupLYVo8oo0GtLu8cjOzYFux+TQ8PhGzi1JDNqFaKekangxud7jlHBI1u4Vr/ehOosVKKYDBDZFqNpY1QhT9v/VLv8lqxRgVOhXXWh3YecZ/JPU1HVRJdRdlNGBk4Ie7Enk3docbr2/3V45+//LCoD9/qEl/37WYUHygygpRBHKSY1VtzZAZOOKp03hScVcyMYMbIkLXyAUtHUlJ1AhuPj7oP5KaPmIYsiz6OZKSSEdTR2uCn3fz5s5K2J0ejEpP0EzLgKGQc27sTsWO8QZrX6UVgDr9bbrLDPwbqNF4cHOiTnsN/AAGN0Sq8PlEbDgemAKukRLw7rqmg4fuWEqaJaX1cQt9kYObIAeEbq8PL28+DQD43txCGFScPRYswxPMEAR/aXtju7aOprrybdQ9+tNDl2KvT8SpRv/oBQY3RITDNTY0tjkRH23E9BEpai/nPN13bkJRMVVj7cSuMy0A9BvcKDVj6qMDNahq7URaQjQWl+QE9bnVYjIakJYgVUxpLLiRysBVzLcBgEyL//3Rcs7N2ZYOuDw+mE0GzfWkYnBDpAKpBPyyUWmINmnvn2HR8HgYDQLsDk9Ikj6lROIZBcM0l3/UX+MC5eDlje1wuL1BeU5RFPH3jacAAHfMLtDluIW+aHHEQJ3NgRqrAwYBmJSj7s5Nhgbfn3NJycRFwxNg1NiOovZ+qhJFgPUaLAHvzmwyyp1ZQ5F3I82Suk6nuzaAP48kOS4KXp8ol8cO1bZTzThYZUNMlAG3XToiKM+pFVLeTZ1dOx/e0pHUmIxExJtVbeCv6aRriZRMrLUjKYDBDVHIWTvd2F3hP4LRanADAGNDlFRc3dqJPRWtEAR9Ne47lyAI8nsWrKMpadfmpml5GBboexIupJ0JLVUDaeVICuja2WrpcAdtJzDYpCBea5VSAIMbopDbUtYIr0/EyOHxyEvR1jl1d6NDFNy8t7cKgH/KtfSBp1dyM78gvGdl9XZ8cbQeggDcM1f/5d/nkoMbDeXcSJVSajXv684SG4WYKP9HtFZ3b05ocGCmhMENUYh1dSXWdknvmBBUTLm9PnmkwLen5yn2OqEijWE4EoRy8H9sLAcAXD0hAwVp8UN+Pq3J1FiTOp9P7Nq5UblSCvDvBGoxL0kiiiJOMrghIsD/A0FKJtZiCXh3UsVUWX2bYhVTaw7WotbmQFpCNBYV6/dISjIuKzjHUg12J97d49/R+v48fY9a6Is0P0kruxLlTe2wOzyIiTLIf/fVpuUuxXU2J9qcHhgNAgpStRd8M7ghCqHjdW2otTkQE2XArELtlYB3V5AaD5NBQJvTg2qFfnN8abN/d+K2S0fAbNJ/JZD0oVhvd6K53TXo53l162m4vD6U5Cdj2ohhwVqepmgtYVZKJp6UbUGURoaSau096u5EvT+AH5Eap8mKT+2tiCiMSV2JLy1K1XxZb7TJgMLAcYgSeTd7Klqwt6IV0UYDbp0VHpVACWYT8lL8nWWPDnJCeKfLi1e3+Y/qfjCvSFPDCIMpI7ErYdbpUT9hVu1hmb3pOpbSTl6SREomHjVce0dSAIMbopCSjqTma7hKqrsxgQTZEwoEN1LX3RumZqs6wyfYpH43gz2a+vees2jpcCM/JQ5XT9TXjK2BSI6Lkn/j10Ijv9Kz2kkmlmRouEuxlEwsdTPXGgY3RCHS7vRg52n/YMgrxmo7mVgyJl3KIQluUnGNtRMfHfCPW7hrTkFQn1tt44bQqdjrE/FioPz7nrmFmmuMFkyCIHT1ulH5w9vp8eJItX+nbaoGysAlWYFjqRqrMpPmh6JMw8nEAIMbopDZcrIJbq+I/JQ4FKRqtwS8O6liSjpfD5ZXtp6B1yfi0qIUTMxWvzIlmKQxDEcGEdysPVyH000dsMRG4abpucFemuZopWLqaI0dLq8Pw+Ki5GNFLciwaK9cXiJXSg3XRvL1uRjcEIXI+uP+fJv5Y4frJo9C6nVzoq4taNObO11e/GtHBQDgrjnh179FOpY6UWcf8Hv2j8CuzW2X5iMuWt0OuaGQrpFeN10l4Mma+rfZfXimlqanN7e70BRImB+Zrr1KKYDBDVFIiKLYrb+NPvJtAKAgNQ7RRgM63V5UtQZna/y9vVVo7XAjLyUWC8ZnBOU5taQgUD3S4fKisqWj34/bU9GCXWdaEG004I7ZBcotUEO0Mvm6tKIVgDY6E3c3PNE/Pd3jE+VgQgukI6mc5FjNBuEMbohC4FRjO862dCLaaMDskalqL6ffTEYDioYHr2JKFEW5/PvOy8Izp8RkNMjt6I/U9P89k3ZtbpyaLe9ohDut5NyUBnZupmoomRgAorpNT1f7PequTOPJxACDG6KQkAZlzixM0exvOn0ZI49hGHpS8cYTjSirb0OC2YRvh3FOyUArps40tWPNQf9k9O9fHp5N+3qjhcnX1k43TjW0AwCm5Gov/0uLXYqlHDytloEDDG6IQmLdcf0dSUm6xjAMfedG2rW5aXouEmOihvx8WtU1Y6p/vW5e2lQOn+j/+6GV7rihIAU39Xb1cm4OBErA81JikZqgvZYEUiO/Gg3u3Gi1UgpgcEOkOIfbi+2nmgD4k4n1JlgDNMvq27DuWAMEAbjzsoIgrEy7pIqpo/04lmrtcOGtXWcBAD+IoF0boOeuhFIjPi5GS5PAe5OpwenpJ3ksRURbTzXB6fEh2xKj6d90+tJ9xpR3CBUbK7b4d20WjM/ACA3OogkmaefmdFM7HO4Ld999bXsFOt1eTMhKwmU6yscKBmnnptPthd3pUWUNpYHOxFrLt5FIOzdql8tLuo9j0WoZOMDghkhxUr7NFToqAe8uPyUOZpMBTo8Plc39r/7pztrhxju7/YMgw61pX2+GJ5qREh8Nn+gvo++L0+PFii2nAQDfv7xQl38/hiI22oikGH8Omho7E6IoysGNljoTd6e1LsXSrk1aghmWOO0eLTO4IVLYBjnfRh9dic9lNAgYOXxoeTdv7PTvTozLTMTsovDfnRAEAWMzpGZ+fefdvF9ajQa7E5lJMbh+SnaolqcpGSr2uqm1OdBgd8JoEDAxOynkr98fWksoliulNL4LzeCGSEEVTR041dgOk0HAnFH6/VCXckikeTID4fH68M/A7sTdcyNnd2LsRcYwiKIol3/fNadAM5OoQ03NYxdpWOaYjETNVjFq7VjqhA6SiQEGN0SKkroSTxsxTNfVQVLi4GDmJX1yqA7VVgdS46NxQ3Hk7E6Mz7pwcLP+eAOO1/nL4m+ZlR/KpWlKeqJ6xy6llf5Kqal52isBl0jBjd3hQbtKeUnd6aFSCmBwQ6QoaQr4FTqskupOGqA5mGMpqfz71ktHICbKGNR1adnYQK+bo30EN38P7NrcPCMPSToOfIcq06Jekzpp50arlVIAkGA2IcHs31XSwu5NWaDHDY+liCKU0+PFlpP+EnA99rfpTqqYOtXQDo/X1+/H7atsxe4zLYgyCrjt0sjanRiTkQBBABrbnGhs65lPcqjais1lTTAahIhIsL4QtRJmvT4RB6r8OzdaTSaWyJ2cVc67cbi9qAgUFXDnhihC7Trdgg6XF8MTzZiQpc1kxf7KHRaL2CgjXF4fzgygYurlwK7NouJs+fghUsRFmzAixT/9/dyjqX9s9L8v103OQu4wfUyIV4rcpTjECcWnGtrQ5vQgNsqo+V0IreTdnG5qh08EEmNMGJ6ovYaH3aka3GzYsAGLFi1CdnY2BEHAypUrL/qY1157DcXFxYiLi0NWVhbuvvtuNDU1Kb9YogFad8yfb3PFGH2WgHdnMAjyb2on+nk0VWdzYPX+GgDA3WE4/bs/5GZ+3YKbGmsnVu2rBgB8f15kNe3rjdylOMQf3FIJ+OQcC0waT+buCgDVDW6ktgaj0xM0/zNN1f+j7e3tKC4uxvPPP9+v+2/evBlLlizBPffcg0OHDuHtt9/Gjh078P3vf1/hlRINnJRvo8euxL0Z6IypV7eegccnYmZBCiblaDdhU0ly3k1NVzn4is2n4fGJuLQoBZM1OMso1DK7jWAYSpPIgZI7E2s4mViSZdFGl2K9JBMDgKq1bwsXLsTChQv7ff+tW7eioKAAP/3pTwEAhYWF+OEPf4innnpKqSUSDUp1ayeO17XBIABzR6WpvZygkGZMHevHzo3D7cVr288AAO6eW6DksjSta8aU/z2zO9x4fXsFAO7aSNISomEQ/DkwTe3OkB1f7qvUR74N0BUA1qgd3DToJ7jR9l7cOWbPno3Kykp89NFHEEURdXV1+Pe//42vfe1rai+NqAdp12ZqXjKS46JVXk1wSDs3/TmWWrm3Ci0dbuQOi8VVEzKVXppmScHN8To7vD4Rb+6shN3pwcjh8fjKWH02dQw2k9GAtAQpYTY0eTcOtxdHArtpWq6UkmilS3GZfCyl3bELEl0FN3PmzMFrr72Gm2++GdHR0cjMzITFYrngsZbT6YTNZuvxRaQ0vXcl7o3U66a8sR3uC1RMiaIol3/feVkBjAZtn80raURqPGKiDHC4fTjV0IaXN58G4N+1MUTw+3KuUH94H66xweMTkRofjdxhsSF5zaHQQkKxx+tDeWM7AO7cBN3hw4dx33334dFHH8Xu3buxZs0anD59Gj/60Y/6fMzy5cthsVjkr7y8vBCumCKR1yfKJeDzxoTHkRQA5CTHIj7aCLdXxOnAD7nebC5rwvG6NsRHG/HtGZH9781oEOTfcp/57DiqWjuRlhCNxSU5Kq9MW0KdMLuv2zwprSfGAl3HUg1254BaMQRTZUsnXF4fYqIMyEnWfkCoq+Bm+fLlmDNnDh566CFMmTIF11xzDf785z/jpZdeQk1NTa+PWbZsGaxWq/xVWVkZ4lVTpDlQZYW1043EGBOmhFEirSAIGN2PpGKp/Ptb03IjujmdRDqa+uhALQBgyeyCiGpm2B9SH5dQVUzpoXlfd6kJZhgNAnwi0NjmUmUN0nH0yOEJuth11FVw09HRAYOh55KNRv8PCVHsPcvebDYjKSmpxxeRkjad8B9JzS5K1XyJ6UBJScV9dSoub2zH50f9JfB3Rmj597mkcnAAiIky4LZLR6i4Gm3KDPXOzVkpmVgfv3wYDQIyAn1l1Dqa0lMyMaBycNPW1obS0lKUlpYCAMrLy1FaWoqKCn81wbJly7BkyRL5/osWLcK7776LF154AadOncLmzZvx05/+FDNnzkR2duTMrCFt21TWCACYNzp8jqQkXeXgvQc3KwK7NleOS0dhWnzI1qVl4zK7fqH61rRcpMSHR4J5MIVyMnhrh0vOHdHLzg0AZEh5N9ZOVV5fL9PAJaqWgu/atQtf+cpX5D8/8MADAIA77rgDK1asQE1NjRzoAMCdd94Ju92O5557Dg8++CCSk5Px1a9+laXgpBkdLg92n2kBAMwdHR79bbobfYHgxtrpxtu7zwLwT/8mv/FZiYEjBRH3zGX5d2+kD+5QJBTvD+zajEiNwzAdBZry7pZK5eB66nEDqBzczJ8/v8/jJABYsWLFed/7yU9+gp/85CcKropo8LaXN8PtFZGTHIuC1PBrqy8dS51u6oDT44XZ1JU78tbOSnS4vBibkYjLRqaqtUTNSU0w4/nvXgKTQeBuVh/k2UkhCG70lm8jUWtMBeBP+2BwQxTBNp3oOpLSQxXGQGUmxSDRbILd6UF5Y7t85OLx+rBiy2kA/qZ94XjtQ3HtpMjt9dMf0q5ES4cbDrdX0YTrrs7EyYq9hhIyQ7i7da5qqwMdLi9MBgEjUvURoIdXtiORyqTgZm4Y5tsA/oqpMZnnV0ytPVyHqtZOpMRH48apLHOmgbHERiHa5P84arArtzMhiiJKA52Jp+okmVii5rGUtGtTkBaPKJ0USehjlUQ6UG9z4FidHYIAzBkZnsEN0HU01b1TsdSc7rsz81nmTAMmCEJIKqaqrQ40tjlhNAiYmK2z4EbFnRv5SGq4Po6kgEEGN0VFRb1O4m5tbUVRERPmKDJJVVKTsi26SlQcKKkp3bHApOsDZ63YcboZJoOA22ezzJkGJxR5N1K+zbjMRN0F4d3nS10oV1UJZfX+f+tSl3I9GFRwc/r0aXi93vO+73Q6UVVVNeRFEelRuB9JSeQZU4Hf5qSmfddPyZKTHokGKiMExy7dOxPrjbRz0+n2wubwhPS19ZZMDAwwofiDDz6Q//uTTz6BxdK1ref1evH555+joKAgaIsj0gtRFLv624TJFPC+SMdSZ5raUdncgVX7qwGw/JuGRgpu6hXMuSkNBDdTdVYpBQAxUUZYYqNg7XSjzuaAJTY03b9FUZR/kRmpo2OpAQU3ixcvBuA/H73jjjt63BYVFYWCggI8/fTTQVsckV4cr2tDvd2JmCgDphUMU3s5ihqeaJZ/yD6x6hDcXhHTRwzDFB1+YJB2KJ0w6/WJOFAldSZOVuQ1lJaZFANrpxu1Voe8g6q0pnYXWjvcEIQwDm58Pv/ArsLCQuzcuRNpaeH9GypRf20MjFyYWZjao/dLOBIEAWMzErHjdDM+O+IftcBdGxqqdIVzbsrq29Dh8iIu2qir45XuMi0xOFZnD+kIBulIKndYLGKj9fOzbVA5N+Xl5QxsiLqRjqTmjoqM5nXdEwtzkmNx9YQMFVdD4SAzSdlqICnfZnKOBUYdDH7sjfwehbAcXI+VUsAggpvOzk5s2rQJhw8fPu82h8OBV155JSgLI+oPm8ON21/cjl+tPv/vY6g4PV5sP9UMAJg7KvxGLvSm+5b4ktkjwm5AKIVe9/lSSlQDlQaa903V6ZEU0DWmokaFnZvRIToGC5YB/UQ6fvw4xo8fj8svvxyTJ0/GFVdcgZqaGvl2q9WKu+66K+iLJOrL4+8fwsYTjXhxUzkqmztUWcPeilZ0ur1IS4jGuEx9/QAYLOk6Y6OM+M6MfJVXQ+FACm6UqgbSc6WUhDs3/Teg4Obhhx/GpEmTUF9fj2PHjiExMRFz5szpMdySKFQ+PlCDd/d2tR74YF+1KuuQSsDnjEqDQafb3QM1szAFD1w1Bv97SwkscaGp2qDwFhttRFKMPw20Psg7Ew63F0cDfZl0HdxY/HlJocy5ORHocTNSZ3lKAwputmzZguXLlyMtLQ2jRo3CqlWrcM0112DevHk4deqUUmskOk+9zYH/eu8AgK5dhJV7q0Le3AoANsr5NpGThyYIAn565WgsYK4NBZHUyyXYH96Hqq3w+kSkJZiRbdFvL6YMhfOSzmVzuFEXGNSptyTsAQU3nZ2dMJm6CqwEQcALL7yARYsW4YorrsDx48eDvkCic4miiIff2Y+WDjcmZCXhte/NQrTRgBP1bThcYwvpWqwdbhwInOXPGx0Z+TZESumedxNM3edJ6Xmoa5YlFgDQ2OaCy+NT/PVOBo6k0gPtH/RkQMHNuHHjsGvXrvO+/9xzz+HGG2/EDTfcELSFEfXlXzsq8eWxBkQbDXjm5qlITTDjq+PSAQAflIb2aGrLyUb4RP9vNZk6/o2QSAuU2pmQ82103otpWFzXgNF6u/K7Nyd02JlYMqDg5utf/zr+9a9/9Xrbc889h1tuuUWVYwGKHGea2vE/H/orox66ZizGBo6kFpdkA/Dn3fh8ofs7GIlHUkRKUWq+1L7A7qqe820A/2mJ9B6FYjq4tHMzOtyDm2XLluGjjz7q8/Y///nPcqM/omDz+kQ88NY+dLi8mFWYgnu6NY6bPzYdiTEm1Fgd2F7eHLI1ScnE88J8nhRRKCjRpbil3YUzTf5Kyim5+poE3ptQTE+X6HGmlITNKUg3/rrhJHafaUGC2YSnv13cozIpJsqIr03KAgC8Xxqa4a0VTR2oaO6AySBgVlFkNO8jUlK6dCwVxPlS0q5NYVo8kuOig/a8agnFgFFJ17GU/lpcMLghXThUbcUza/0J648tmoDcYXHn3efGwNHURwdq4PScP7U+2DaW+UcuXJI/DAnmAU0yIaJeKNHHZV8gmbg4DHZtAOU7OUscbi8qW/w7Xty5IVKAw+3FA2/ug9sr4uoJGfjWtNxe7zerMBUZSWbYHB58ebRB8XVJR1JzeSRFFBTSrkRDmxPeIOXOhUu+jaSrXF656ekAcKqhHaIIWGKjkJagvx0vBjekeX9YexzH6uxIS4jG8m9M7rOU02gQcEOxlFis7NGU1ydiy8kmAAxuiIIlLSEaBsH/7+uvG07ieJ19SEUqoiiGRWfi7qTgRukuxVLzvtHpCbosn2dwQ5q27VQT/r7R3yDyyW9MQWqC+YL3v3FqDgDgsyP1sDnciq3rQJUV1k43EmNMmJITHtvdRGozGQ0YGWjz/9s1x3D1Mxtw6fLP8eBb+7BybxUaBpiLc7alE03tLpgMAiZkJSmx5JCTjqVqbJ2Kvs5JHScTAwATBUiz7A43HnxrH0QRuHl6Xr+64U7MTsKo9ASU1bdhzcFafHt6niJr2xwoAZ9dlMqhkURB9Oo9s7BqXzU2nGjAjvJm1NmceGfPWbyz5ywAYHxWEuaNTsO80WmYUZCCmChjn88lHUmNz0q64P305NwBo0rtqpQ1MLghUsQvVx1GVWsn8lJi8ciiCf16jCAIWDw1G7//9DjeL61SLLjZeMKf08MScKLgyrTE4PuXF+H7lxfB4fZi1+kWbCxrwKYTjThUbcORGv/X3zacQrTJgJkFKZg3Og1zR6dhfGZSjyrKriOp8NldlYIbl8eHlg43UuKVyYc5UcfghijoPj1Ui7d3n4UgAE/fNHVA1Ug3Ts3B7z89ji0nm1Bnc8g/DIKlw+XB7jMtAIC5HLlApJiYKCPmBgIXLAQa25zYXNaIjScaselEI2ptDmwqa8SmskbgY3/OzpxRaZg3ejjmjU7rVimVrO6FBFG0yYDU+Gg0tbtQa3UoEty4vT6cbmoHwOCGKGga25xY9q5/KOYPLi/CzMKUAT0+LyUOl+QnY09FK1btq8b35hUFdX3by5vh9orISY5FQer5JelEpIy0BDNunJqDG6fmQBRFlNW3+QOdskZsO9WExjYX3i+txvvnjGGZGibJxJJMSwya2l2oszkwITv4uURnmjrg9oqIjTIiOzDPSm8Y3JCmiKKIn79zAE3tLozLTMQDV40Z1PMsLsnBnopWvF8a/OCme1diPVYREIUDQRAwOiMRozMScffcQrg8PuypaMHGE/4jrP1VVoiiPyAqGq7P3Ye+ZCbF4FC1TbEuxd07E3c/5tMTBjekKW/vOovPjtQhyijgD9+eCrNpcEmA103OwhOrDuNAlRUnG9rkCoxgYH8bIu2JNhlwaVEqLi1KxUPX+Mcu7DzdjKLhCTDq9AO6LxmBcvAahcrBT+o8mRhgKThpSGVzB55YdQgA8MBVY4e03ZqaYMblgeDj/b3B63lTb3PgWJ0dggDMGcnghkirhsVH4+qJmbr+gO6LEp2cuztR5+9xo+f3jsENaYLXJ+LBt/ah3eXFjIJh+MHlQz9KWlzi73mzsrQ6aNPqNwVKwCdlWzBMoSoFIqILUXp4pt7LwAEGN6QR/9h4CjtONyM+2oinb5oalG3kqyZkIDbKiIrmDuwNlIQOFY+kiEht0rGUEvOlfD4RJ+v1XSkFMLghDThSY8PTn/qHYj5y/QTkB6kCKS7ahKsn+hv/fXBO9cRgiKIo79zMG8XghojUkWVRbuemqrUTnW4voowCRqTotxqUwQ2pyunx4mdvlsLl9WHB+HTcPCO4TfcWB8YxrN5fDY/XN6TnOl7Xhnq7EzFRBkwrGBaM5RERDZjUu6u1ww2H2xvU55aOpArT4nXdfV3VlW/YsAGLFi1CdnY2BEHAypUrL3j/O++8E4IgnPc1ceLE0CyYgu6ZtSdwtNaOlPhoLP/GlKCXVs8dnYaU+Gg0trnkXZfBkroSzyxMHXQVFxHRUCXFmBAbGCdRG+SkYr3PlJKoGty0t7ejuLgYzz//fL/u/+yzz6Kmpkb+qqysREpKCm666SaFV0pK2Hm6GX/dcBIA8JuvT8bwxAsPxRyMKKMB10/JAoDzGnsNlBQczR2VOuR1ERENliAI8nTwYB9NyWMXdN4bSNU+NwsXLsTChQv7fX+LxQKLpWtGyMqVK9HS0oK77rpLieWRgtqcHjzwVilEEfjmJbm4dlKmYq9149QcvLL1DD45VIsOlwdx0QP/a+/y+LD9VDMAYO4ojlwgInVlJJlR3tge9KRiuVIqIzGozxtq+j1QA/Diiy9iwYIFGDFihNpLoQH69YdHUNnciZzkWDx2Q/+GYg7WJfnJyEuJRYfLi8+O1A/qOfZUtKDT7UVaQjTGZer7Hz0R6V9WYCxCMI+lpJEWgP53bnQb3FRXV+Pjjz/G9773vQvez+l0wmaz9fgidbU5PXh7VyUA4HffmoKkmChFX08QBNxY7E8sHmxDP6kEfM6oNN22Iyei8JGhQK+bhjYnrJ1uGASgaHh80J5XDboNbv75z38iOTkZixcvvuD9li9fLh9nWSwW5OUFtxqHBm7n6WZ4fCJyh8XishCVVC8uyQYArD/egOZ214Afv1HOt2EJOBGpLzPJn6MYzJ0badcmLyUOMVH6LprQZXAjiiJeeukl3H777YiOvnCX2GXLlsFqtcpflZWVIVol9WXrySYAwGUjQ5eYOyo9EROzk+DxifjwQM2AHmvtcOPA2VYAwLzRzLchIvUpkVAcLkdSgE6Dm/Xr16OsrAz33HPPRe9rNpuRlJTU44vUteWkfxfkshDPZpJ63gz0aGrLyUb4RH9ppPQDhYhITRkKzJeSg5sMBjdD0tbWhtLSUpSWlgIAysvLUVpaioqKCgD+XZclS5ac97gXX3wRs2bNwqRJk0K5XAqC1g4XDlX7855CuXMDAIuKsyEIwK4zLahs7uj343gkRURaI/2iVW93wucLzuw87twEya5du1BSUoKSkhIAwAMPPICSkhI8+uijAICamho50JFYrVa88847/dq1Ie3ZdqoZYmAXJD0ptLsgmZYYzC7yB1Qf7Ot/zxspmXge50kRkUYMTzDDIAAen4jGdmdQnvNEmDTwA1TuczN//vwLTmtesWLFed+zWCzo6Oj/b92kLVvlIyl1GuHdODUbW0424f3SKvx4/siLdkSuaOpARXMHTAYBs4rYvI+ItMFkNGB4ohl1NidONbQjPXFovyxaO91osPuDpHAIbnSZc0P6tUWFZOLurp2UhWijAcfr2nCkxn7R+28s849cuCR/GBLMqv4uQETUg9Tr5jt/24avPr0Oy97dj/f2nkVVa+eAn0s6kspMikGiwu05QoE/rSlk6u0OnKhvgyAAswrVCW4ssVH46rh0rDlUi/dLqzAh+8IJ5tKR1FweSRGRxtz7lVH4/afHcKzOjlMN7TjV0I5/7fBXBOckx2JWYQpmBr4K0+IvuFNdVu//ZS8cdm0ABjcUQlIJ+ISsJAyLv3AJv5IWl2RjzaFafLCvGg9fO67PpnxenyjvNDG4ISKtWTAhAwsmZKC1w4Vdp1uw43Qztpc342CVFVWtnXh3bxXeDVSHDk80Y2ZhihzwjElP7PGzryyM8m0ABjcUQlvK1D2Skswfm47EGBNqrA5sL2/G7D7Wc7DKCmunG4kxJkzJsfR6HyIitSXHRcuBDgC0Oz3YU9GCHeX+YKe0shUNdic+3F+DD/f7+3xZYqMwo6Ar2DlWx+CGaFC2nFKnv825YqKM+NqkLLy5qxIf7KvqM7iRpoDPLkqFycj0NCLSh3izCfNGD5ebjjrcXuw/a8WO8iZsL2/G7jMtsHa68dmROnx2pK7HYxncEA1AZXMHKps7YTIImFGYovZycOPUbLy5qxIf7q/B4zdMhNl0fqvxjSf8ycQsASciPYuJMsq5N/cCcHt9OFxtk3d2dp5u9u9Sm00YnxUejW4Z3FBISPk2xXnJmqg6mlWUiowkfxnlumMNuGZiZo/bO1we7D7TAgCYy5ELRBRGoowGFOclozgvGd+/vAg+n4gT9W1IiDHBEqv/SimApeAUIltU7m9zLqNBwA3F/mGa75eeP45he3kz3F4ROcmxKEiNC/XyiIhCxmAQMDYzETnJsWovJWgY3JDiRLGr6qiv/BY13BiYNfXZkXrYHO4et3XvSnyxRn9ERKQtDG5IcScb2lFvdyLaZMAl+cPUXo5sYnYSRqUnwOXx4ZODtT1uY38bIiL9YnBDipNGLkwfMQwxUecn7qpFEAQsniodTXXNmqq3OXCszg5BAOaoXNlFREQDx+CGFKf2yIULuaHYfzS15WQj6m0OAF0l4JOyLao2GyQiosFhcEOK8vlEbD0l5dtobxckPzUOl+Qnwyd2TQrnkRQRkb4xuCFFHa6xobXDjfhoI6bkarPL7+IS/+7N+6XVEEVR3rmZN4rBDRGRHjG4IUVJ/W1mFqYgSqNdfq+bnAWjQcCBKivWHKxFvd2JmCgDphVoJ/mZiIj6T5ufNhQ2uvrbaHcXJDXBjMsDR1CPrzoEAJhZmNpr12IiItI+BjekGLfXhx3lzQCAy0ZpL5m4O+loqs7mBADM1fh6iYiobwxuSDH7z1rR7vIiOS4K4zO1Pa9kwfgMxHYrU587iiMXiIj0isENKUbqbzO7KBUGg7a7/MabTbh6YgYAIC0hGuMyE1VeERERDRaDG1KMlvvb9GbJ7AJEGQV8c1qu5oMxIiLqm/rjmSksOdxe7ApM1dZif5veTBsxDPsfuwZmE2N+IiI9Y3BDithT0QKXx4f0RDNGDo9Xezn9FhvNCikiIr3jr6ikiK3djqQ4VZuIiEKJwQ0pYnOZ9vvbEBFReGJwQ0HX5vRg31krAGC2TpKJiYgofDC4oaDbWd4Mr09EXkos8lLi1F4OERFFGAY3FHTSyIU5PJIiIiIVMLihoJP62/BIioiI1MDghoKqpd2FwzU2AAxuiIhIHQxuKKi2lzdBFIHR6QlIT4xRezlERBSBGNxQUOlt5AIREYUfBjcUVF35NkwmJiIidTC4oaCptzlQVt8GQQAuLUpRezlERBShGNxQ0Gw95d+1mZidhOS4aJVXQ0REkUrV4GbDhg1YtGgRsrOzIQgCVq5cedHHOJ1O/OIXv8CIESNgNptRUFCAl156SfnF0kVx5AIREWmBqlPB29vbUVxcjLvvvhvf+MY3+vWYb3/726irq8OLL76IUaNGoaamBj6fT+GVUn8wmZiIiLRA1eBm4cKFWLhwYb/vv2bNGqxfvx6nTp1CSoo/p6OgoECh1dFAVDZ34GxLJ0wGATMKmG9DRETq0VXOzQcffIDp06fjt7/9LXJycjBmzBj8x3/8Bzo7O/t8jNPphM1m6/FFwSeNXJial4x4s6oxMxERRThdfQqdOnUKmzZtQkxMDN577z00Njbixz/+MZqamvDyyy/3+pjly5fjiSeeCPFKIw+PpIiISCt0tXPj8/kgCAJee+01zJw5E1/72tfwhz/8Af/85z/73L1ZtmwZrFar/FVZWRniVYc/URTZ34aIiDRDVzs3WVlZyMnJgcVikb83fvx4iKKIs2fPYvTo0ec9xmw2w2w2h3KZEedkQxsa7E6YTQaU5CervRwiIopwutq5mTNnDqqrq9HW1iZ/7/jx4zAYDMjNzVVxZZFN2rWZXjAMMVFGlVdDRESRTtXgpq2tDaWlpSgtLQUAlJeXo7S0FBUVFQD8R0pLliyR7//d734XqampuOuuu3D48GFs2LABDz30EO6++27ExsaqcQmKqG7txNynvsAfPj2m9lL6ZUuZlG/DIykiIlKfqsHNrl27UFJSgpKSEgDAAw88gJKSEjz66KMAgJqaGjnQAYCEhASsXbsWra2tmD59Om699VYsWrQIf/rTn1RZv1I+OVSLsy2d+PvGcnS4PGov54J8PlHuTDybycRERKQBqubczJ8/H6Io9nn7ihUrzvveuHHjsHbtWgVXpb59la0AgE63F58fqcei4mx1F3QBh2tssHa6kWA2YUqO5eIPICIiUpiucm4ixb6zVvm/V+2rVnElFyf1t5lVmAKTkX+diIhIffw00pjWDhfKG9vlP6873gCbw63iii6sqwScR1JERKQNDG40Rtq1KUiNw6j0BLg8Pqw9VKfyqnrn9vqwo7wZAJOJiYhIOxjcaIyUbzM1LxnXT8kCAKzar82jqf1nW9Hh8mJYXBTGZSaqvRwiIiIADG40RwpuivOScf0UfyLxphONaGl3qbiq3kkl4LNHpsJgEFReDRERkR+DGw0RRRH7zrYC8Ac3o9ITMD4rCR6fiDWHatVdXC84coGIiLSIwY2GnG3pRGObC1FGAROykgAAi4r9R1OrNXY05XB7sbuiBQCHZRIRkbYwuNEQaddmfFaSPMbg+sn+o6mtJ5vQYHeqtbTz7DnTApfHh4wkM4rS4tVeDhERkYzBjYbI+Ta5yfL38lPjUJyXDJ8IfHywRp2F9UI6krpsZBoEgfk2RESkHQxuNGRfpb8MvDgvucf3F0lVUxpq6Cc17+ORFBERaQ2DG43weH04UOUPbqbm9RxjcF0guNl5ugU11s6Qr+1cbU6P3I+HzfuIiEhrGNxoxPG6NnS6vUg0m1CUltDjtixLLGYWpAAAPtyv/tHUjvImeH0iRqTGIXdYnNrLISIi6oHBjUZIycRT8iy99oy5vlhq6Kd+cCP1t+GRFBERaRGDG43oLZm4u4WTsmAQ/PeraOoI3cJ6wf42RESkZQxuNKK0W2fi3gxPNMv5LWqOY2hpd+FwjQ0AMLuIOzdERKQ9DG40oMPlwfE6OwD/TKm+LAqMY1it4tHUtlP+XZsxGQkYnmhWbR1ERER9YXCjAQerbPCJQJYlBhlJMX3e79pJmTAZBBypsaGsvi2EK+zSvb8NERGRFjG40YDSSv8Yg77ybSTJcdGYN9ofVKg1jkHqb8MScCIi0ioGNxrQV/O+3kiTwlftq4Yoikou6zx1NgdONrTDIACXFjK4ISIibWJwowFdycSWC98RwFUTMxBtMuBkQzuO1toVXllPWwNHUpNyLLDERYX0tYmIiPqLwY3KGuxOVLV2QhCAyTkXD26SYqIwf8xwAKEfx7DheAMAHkkREZG2MbhR2f5A877R6QlIjOnfbsii4q6qqVAdTZ2os+ODQDC1YHxGSF6TiIhoMBjcqKz0Is37enPl+HTERhlR0dyB/YEZT0oSRRGPrzoEj0/EVRMyMCMwCoKIiEiLGNyo7GLN+3oTF23ClePTAYSmamrNwVpsLmtCtMmAR66boPjrERERDQWDGxWJoiiPXbhQ877edD+a8vmUO5rqdHnxPx8eAQD86PIi5KdyUCYREWkbgxsVnW7qgM3hgdlkwNjMxAE99ooxw5FoNqHG6sDuihaFVgi8sP4kqlo7kW2Jwf+bP0qx1yEiIgoWBjcqknZtJuVYEGUc2P+KmCgjrproT+xdrVDVVGVzB/6y/iQA4BfXTUBstFGR1yEiIgomBjcqGkwycXfSrKkPD9TCq8DR1P98eBgujw+zi1LxtcmZQX9+IiIiJTC4UdFAmvf1Zs6oNCTHRaGxzYntgYGWwbLxRAM+OVQHo0HAEzdOhCAIQX1+IiIipTC4UYnL48PhahuAgScTS6JNBlw70b+jsiqIVVMujw+Pf3AIALBk9giMyRhYPhAREZGaGNyo5GitDS6vD8PiopCfMvgKJKlq6uODtXB7fUFZ2z+3nMbJhnakxkfj/gVjgvKcREREocLgRiX7uvW3GcqRz6VFqUhLMKO1w41NZY1DXle9zYFnPz8BAHj42nGwxHKGFBER6QuDG5XsHWIyscRoEORk39X7aoa4KuDJNUfR5vSgOC8Z35qWO+TnIyIiCjVVg5sNGzZg0aJFyM7OhiAIWLly5QXvv27dOgiCcN5XbW1taBYcRINt3tcb6Wjq00O1cLi9g36e3Wea8e6eKgDAEzdMhMHAJGIiItIfVYOb9vZ2FBcX4/nnnx/Q444dO4aamhr5Kz09XaEVKsPmcONkQzsAYEru4CqlupuWPwyZSTGwOz3y5O6B8vpEPP7BYQDATdNygxJ0ERERqcGk5osvXLgQCxcuHPDj0tPTkZycHPwFhciBwLDLvJRYpCaYh/x8BoOA66dk4R+byrFqfw2unjjwnjRv7arEgSorEs0m/Oe144a8JiIiIrXoMudm6tSpyMrKwlVXXYXNmzervZwBK5WPpIYF7TmvDxxNfXa4Dh0uz4Aea+1w43efHAMA3H/VGAxPHHrARUREpBZdBTdZWVn4y1/+gnfeeQfvvPMO8vLyMH/+fOzZs6fPxzidTthsth5fapMrpYJwJCUpzrUgLyUWnW4vvjhaP6DH/mHtMTS3uzA6PQFLZo8I2pqIiIjUoKvgZuzYsfjhD3+IadOm4bLLLsNLL72Eyy67DM8880yfj1m+fDksFov8lZeXF8IVn08UxW47N8lBe15BEHB9YBzDqgHMmjpSY8Or284A8CcRD3TGFRERkdbo/pNs5syZKCsr6/P2ZcuWwWq1yl+VlZUhXN35am0O1NudMBoETMwO3s4N0DVr6stjDbA73Be9vyiKeOyDQ/CJwNcmZ+KyUWlBXQ8REZEadB/clJaWIisrq8/bzWYzkpKSenypSTqSGpuRGPQp2+OzEjFyeDxcHh/WHq676P1X7a/BjvJmxEQZ8IvrJgR1LURERGpRtVqqra2tx65LeXk5SktLkZKSgvz8fCxbtgxVVVV45ZVXAAB//OMfUVhYiIkTJ8LhcOAf//gHvvjiC3z66adqXcKAlVb6K6WKFSi1lo6mnv38BFbvr8E3Lum7CV+Hy4PffHgEAPDj+aOQkxwb9PUQERGpQdXgZteuXfjKV74i//mBBx4AANxxxx1YsWIFampqUFFRId/ucrnw4IMPoqqqCnFxcZgyZQo+++yzHs+hddLOTYlCfWQWFWfh2c9PYMPxBrR2uJAcF93r/Z7/sgy1NgfyUmLxg8uLFFkLERGRGgRRFEW1FxFKNpsNFosFVqs15EdUXp+IKY9/gnaXF5/cfznGZiozbfvaP27A0Vo7nvrmZNw8I/+82083tuPqZzbA5fXhr7dPwzWD6ItDREQUSgP5/NZ9zo2enGxoQ7vLi7hoI0alJyj2OtI4hlV9zJr61erDcHl9mDc6DVdPyFBsHURERGpgcBNCUgn45BwLjArObZKqpracbERjm7PHbV8ercfnR+thMgh4bNHEIU0kJyIi0iIGNyEUzGGZF5KfGofiXAt8IvDxga7dG6fHiydWHQIA3D23UNHdIyIiIrUwuAmhfWdbASgf3ADoaui3vyu4eXFTOU43dWB4ohk/+eooxddARESkBgY3IeJwe3G0xg5AmTLwc103xd/7Z+fpZtRYO1FrdeC5L/xl98sWjkNiTJTiayAiIlKDqqXgkeRQtRUen4jhiWZkWWIUf73s5FjMKBiGnadb8OH+GhyosqLD5cW0EcPw9ZIcxV+fiIhILQxuQkRu3pebHLIk3uunZGPn6Rb8feMp1NmcEAT//CgmERMRUTjjsVSIdCUTB3ee1IUsnJwJgwDU2fwVU9+ZkY9JOaF7fSIiIjUwuAmRrmTiYSF7zfTEGFxalAoAsMRG4aFrxobstYmIiNTC4CYEWtpdONPUAQCYnBvanZMfXF6ElPho/PLGiUiJ730UAxERUThhzk0IlAZ2bYqGx8MSG9oqpflj07HnkatC+ppERERq4s5NCMj5NrnJqq6DiIgoEjC4CQEpuAlFfxsiIqJIx+BGYaIoYt9Zfxl4KDoTExERRToGNwo729KJ5nYXoo0GjMtKVHs5REREYY/BjcL2Bo6kxmcnwWwyqrsYIiKiCMDgRmFdycRsnkdERBQKDG4UxmRiIiKi0GJwoyC314eD1UwmJiIiCiUGNwo6XmeHw+1DUowJBanxai+HiIgoIjC4UVBptyMpg4GTuImIiEKBwY2C5HwbdiYmIiIKGQY3CtpX6c+3YTIxERFR6DC4UUib04Pj9XYAQHEey8CJiIhChcGNQg5WWSGKQE5yLNITY9ReDhERUcRgcKOQrmRi7toQERGFEoMbhTCZmIiISB0MbhTCzsRERETqYHCjgHqbA9VWBwwCMDmHx1JEREShxOBGAfvO+kvAx2QkIt5sUnk1REREkYXBjQKYb0NERKQeBjcKKGW+DRERkWoY3ASZzydi39lWACwDJyIiUoOqwc2GDRuwaNEiZGdnQxAErFy5st+P3bx5M0wmE6ZOnarY+gajvKkddocHMVEGjM1IVHs5REREEUfV4Ka9vR3FxcV4/vnnB/S41tZWLFmyBFdeeaVCKxs8Kd9mco4FJiM3xoiIiEJN1VKehQsXYuHChQN+3I9+9CN897vfhdFoHNBuTygwmZiIiEhduttaePnll3Hq1Ck89thjai+lV0wmJiIiUpeumrCcOHECP//5z7Fx40aYTP1butPphNPplP9ss9mUWh6cHi8O1/iffyqDGyIiIlXoZufG6/Xiu9/9Lp544gmMGTOm349bvnw5LBaL/JWXl6fYGo/U2OH2ikiJj0busFjFXoeIiIj6ppvgxm63Y9euXbj33nthMplgMpnwy1/+Evv27YPJZMIXX3zR6+OWLVsGq9Uqf1VWViq2RinfZmpeMgRBUOx1iIiIqG+6OZZKSkrCgQMHenzvz3/+M7744gv8+9//RmFhYa+PM5vNMJvNoVgik4mJiIg0QNXgpq2tDWVlZfKfy8vLUVpaipSUFOTn52PZsmWoqqrCK6+8AoPBgEmTJvV4fHp6OmJiYs77vlq6konZvI+IiEgtqgY3u3btwle+8hX5zw888AAA4I477sCKFStQU1ODiooKtZY3INYON041tgPgzg0REZGaBFEURbUXEUo2mw0WiwVWqxVJSUlBe97Tje14+J39sDs8+Oi+eUF7XiIiIhrY57ducm60riAtHm/+cDYiLFYkIiLSHN1US+kFq6SIiIjUxeCGiIiIwgqDGyIiIgorDG6IiIgorDC4ISIiorDC4IaIiIjCCoMbIiIiCisMboiIiCisMLghIiKisMLghoiIiMIKgxsiIiIKKwxuiIiIKKwwuCEiIqKwwuCGiIiIwopJ7QWEmiiKAACbzabySoiIiKi/pM9t6XP8QiIuuLHb7QCAvLw8lVdCREREA2W322GxWC54H0HsTwgURnw+H6qrq5GYmAhBEIL63DabDXl5eaisrERSUlJQn1vrIvXaI/W6gci99ki9boDXHonXrqXrFkURdrsd2dnZMBgunFUTcTs3BoMBubm5ir5GUlKS6n8J1BKp1x6p1w1E7rVH6nUDvPZIvHatXPfFdmwkTCgmIiKisMLghoiIiMIKg5sgMpvNeOyxx2A2m9VeSshF6rVH6nUDkXvtkXrdAK89Eq9dr9cdcQnFREREFN64c0NERERhhcENERERhRUGN0RERBRWGNwEyfPPP4+CggLExMRg1qxZ2LFjh9pLCrrly5djxowZSExMRHp6OhYvXoxjx471uI/D4cDSpUuRmpqKhIQEfPOb30RdXZ1KK1bGk08+CUEQcP/998vfC+frrqqqwm233YbU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e02Mi4sT/+///k++z5NPPikmJyeL77//vrh//37xxhtvFAsLC8XOzk4VVz50d9xxh5iTkyOuXr1aLC8vF999910xLS1N/M///E/5PuFw7Xa7Xdy7d6+4d+9eEYD4hz/8Qdy7d69cEdSfa7z22mvFkpIScfv27eKmTZvE0aNHi7fccotal9RvF7p2l8sl3nDDDWJubq5YWlra42ee0+mUnyMcr70351ZLiaK2r53BTZD87//+r5ifny9GR0eLM2fOFLdt26b2koIOQK9fL7/8snyfzs5O8cc//rE4bNgwMS4uTvz6178u1tTUqLdohZwb3ITzda9atUqcNGmSaDabxXHjxol/+9vfetzu8/nERx55RMzIyBDNZrN45ZVXiseOHVNptcFjs9nE++67T8zPzxdjYmLEoqIi8Re/+EWPD7ZwuPYvv/yy13/Xd9xxhyiK/bvGpqYm8ZZbbhETEhLEpKQk8a677hLtdrsKVzMwF7r28vLyPn/mffnll/JzhOO196a34EbL186p4ERERBRWmHNDREREYYXBDREREYUVBjdEREQUVhjcEBERUVhhcENERERhhcENERERhRUGN0RERBRWGNwQERFRWGFwQ0QDMn/+fNx///2afo0VK1YgOTk5aOsZjMcffxxTp05VdQ1EkYrBDRHpWkFBAf74xz/2+N7NN9+M48ePq7MgIlKdSe0FEBEFW2xsLGJjY9VeBhGphDs3RDRoTqcT//Ef/4GcnBzEx8dj1qxZWLdunXx7U1MTbrnlFuTk5CAuLg6TJ0/Gv/71rx7P0d7ejiVLliAhIQFZWVl4+umn+/368+fPx5kzZ/Czn/0MgiBAEAQA5x9LSUdEL730EvLz85GQkIAf//jH8Hq9+O1vf4vMzEykp6fj17/+dY/nb21txfe+9z0MHz4cSUlJ+OpXv4p9+/YN6D169dVXUVBQAIvFgu985zuw2+0DejwRDRyDGyIatHvvvRdbt27FG2+8gf379+Omm27CtddeixMnTgAAHA4Hpk2bhg8//BAHDx7ED37wA9x+++3YsWOH/BwPPfQQ1q9fj/fffx+ffvop1q1bhz179vTr9d99913k5ubil7/8JWpqalBTU9PnfU+ePImPP/4Ya9aswb/+9S+8+OKLuO6663D27FmsX78eTz31FP77v/8b27dvlx9z0003ob6+Hh9//DF2796NSy65BFdeeSWam5v7tb6TJ09i5cqVWL16NVavXo3169fjySef7NdjiWgI1B5LTkT6csUVV4j33XefeObMGdFoNIpVVVU9br/yyivFZcuW9fn46667TnzwwQdFURRFu90uRkdHi2+99ZZ8e1NTkxgbGyved999/VrPiBEjxGeeeabH915++WXRYrHIf37sscfEuLg40Wazyd+75pprxIKCAtHr9crfGzt2rLh8+XJRFEVx48aNYlJSkuhwOHo898iRI8W//vWvF11Xb6/50EMPibNmzerXdRHR4DHnhogG5cCBA/B6vRgzZkyP7zudTqSmpgIAvF4vfvOb3+Ctt95CVVUVXC4XnE4n4uLiAPh3NlwuF2bNmiU/PiUlBWPHjg36egsKCpCYmCj/OSMjA0ajEQaDocf36uvrAQD79u1DW1ubfC2Szs5OnDx5clCvmZWVJT8/ESmHwQ0RDUpbWxuMRiN2794No9HY47aEhAQAwO9+9zs8++yz+OMf/4jJkycjPj4e999/P1wuV8jXGxUV1ePPgiD0+j2fzwfAf31ZWVk9cogk/S0zv9DzE5FyGNwQ0aCUlJTA6/Wivr4e8+bN6/U+mzdvxo033ojbbrsNAODz+XD8+HFMmDABADBy5EhERUVh+/btyM/PBwC0tLTg+PHjuOKKK/q1jujoaHi93iBcUU+XXHIJamtrYTKZUFBQEPTnJyLlMKGYiAZlzJgxuPXWW7FkyRK8++67KC8vx44dO7B8+XJ8+OGHAIDRo0dj7dq12LJlC44cOYIf/vCHqKurk58jISEB99xzDx566CF88cUXOHjwIO68884eR0UXU1BQgA0bNqCqqgqNjY1Bu74FCxZg9uzZWLx4MT799FOcPn0aW7ZswS9+8Qvs2rUraK9DRMHH4IaIBu3ll1/GkiVL8OCDD2Ls2LFYvHgxdu7cKe/C/Pd//zcuueQSXHPNNZg/fz4yMzOxePHiHs/xu9/9DvPmzcOiRYuwYMECzJ07F9OmTev3Gn75y1/i9OnTGDlyJIYPHx60axMEAR999BEuv/xy3HXXXRgzZgy+853v4MyZM8jIyAja6xBR8AmiKIpqL4KIiIgoWLhzQ0RERGGFwQ0RadbGjRuRkJDQ55eaJk6c2Oe6XnvtNVXXRhTpeCxFRJrV2dmJqqqqPm8fNWpUCFfT05kzZ+B2u3u9LSMjo0d/GyIKLQY3REREFFZ4LEVERERhhcENERERhRUGN0RERBRWGNwQERFRWGFwQ0RERGGFwQ0RERGFFQY3REREFFYY3BAREVFY+f+Je5XG1C1HsQAAAABJRU5ErkJggg==", - "text/plain": [ - "
    " - ] - }, - "metadata": {}, - "output_type": "display_data" } ], "source": [ - "rmse = np.sqrt(mse.mean([\"reference_time\", \"point_index\"]))\n", - "rmse[\"2t\"].assign_coords(\n", - " lead_time_h=rmse.lead_time.astype(\"timedelta64[h]\") / 3600\n", - ").plot(x=\"lead_time_h\")" + "# Now align in time\n", + "# align the observations with the forecasts (so we can average over the lead times)\n", + "ds_obs_aligned = ds_synop.mx.align_time_with(ds_fcst_aligned)\n", + "ds_obs_aligned.load()" ] }, { - "cell_type": "code", - "execution_count": 34, - "id": "dc73b2a5", + "cell_type": "markdown", + "id": "879eb5c1", "metadata": {}, - "outputs": [ - { - "ename": "ValueError", - "evalue": "dimension reference_time on 0th function argument to apply_ufunc with dask='parallelized' consists of multiple chunks, but is also a core dimension. To fix, either rechunk into a single array chunk along this dimension, i.e., ``.chunk(dict(reference_time=-1))``, or pass ``allow_rechunk=True`` in ``dask_gufunc_kwargs`` but beware that this may significantly increase memory usage.", - "output_type": "error", - "traceback": [ - "\u001b[31m---------------------------------------------------------------------------\u001b[39m", - "\u001b[31mValueError\u001b[39m Traceback (most recent call last)", - "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[34]\u001b[39m\u001b[32m, line 4\u001b[39m\n\u001b[32m 2\u001b[39m \u001b[38;5;28;01mimport\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mxskillscore\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mas\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mxs\u001b[39;00m\n\u001b[32m 3\u001b[39m \u001b[38;5;28mvars\u001b[39m = [\u001b[33m\"\u001b[39m\u001b[33m2t\u001b[39m\u001b[33m\"\u001b[39m,\u001b[33m\"\u001b[39m\u001b[33m10si\u001b[39m\u001b[33m\"\u001b[39m,\u001b[33m\"\u001b[39m\u001b[33mmsl\u001b[39m\u001b[33m\"\u001b[39m,\u001b[33m\"\u001b[39m\u001b[33m2d\u001b[39m\u001b[33m\"\u001b[39m]\n\u001b[32m----> \u001b[39m\u001b[32m4\u001b[39m \u001b[43mxs\u001b[49m\u001b[43m.\u001b[49m\u001b[43mrmse\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m=\u001b[49m\u001b[43mds_fcst_transformed\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;28;43mvars\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mb\u001b[49m\u001b[43m=\u001b[49m\u001b[43mds_obs_aligned\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;28;43mvars\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdim\u001b[49m\u001b[43m=\u001b[49m\u001b[43m[\u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mreference_time\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mpoint_index\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/mxalign_dev/.venv/lib/python3.12/site-packages/xskillscore/core/deterministic.py:972\u001b[39m, in \u001b[36mrmse\u001b[39m\u001b[34m(a, b, dim, weights, skipna, keep_attrs)\u001b[39m\n\u001b[32m 969\u001b[39m weights = _preprocess_weights(a, dim, dim, weights)\n\u001b[32m 970\u001b[39m input_core_dims = _determine_input_core_dims(dim, weights)\n\u001b[32m--> \u001b[39m\u001b[32m972\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mxr\u001b[49m\u001b[43m.\u001b[49m\u001b[43mapply_ufunc\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 973\u001b[39m \u001b[43m \u001b[49m\u001b[43m_rmse\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 974\u001b[39m \u001b[43m \u001b[49m\u001b[43ma\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 975\u001b[39m \u001b[43m \u001b[49m\u001b[43mb\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 976\u001b[39m \u001b[43m \u001b[49m\u001b[43mweights\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 977\u001b[39m \u001b[43m \u001b[49m\u001b[43minput_core_dims\u001b[49m\u001b[43m=\u001b[49m\u001b[43minput_core_dims\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 978\u001b[39m \u001b[43m \u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m=\u001b[49m\u001b[43m{\u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43maxis\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43maxis\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mskipna\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mskipna\u001b[49m\u001b[43m}\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 979\u001b[39m \u001b[43m \u001b[49m\u001b[43mdask\u001b[49m\u001b[43m=\u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mparallelized\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[32m 980\u001b[39m \u001b[43m \u001b[49m\u001b[43moutput_dtypes\u001b[49m\u001b[43m=\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;28;43mfloat\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 981\u001b[39m \u001b[43m \u001b[49m\u001b[43mkeep_attrs\u001b[49m\u001b[43m=\u001b[49m\u001b[43mkeep_attrs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 982\u001b[39m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/mxalign_dev/.venv/lib/python3.12/site-packages/xarray/computation/apply_ufunc.py:1256\u001b[39m, in \u001b[36mapply_ufunc\u001b[39m\u001b[34m(func, input_core_dims, output_core_dims, exclude_dims, vectorize, join, dataset_join, dataset_fill_value, keep_attrs, kwargs, dask, output_dtypes, output_sizes, meta, dask_gufunc_kwargs, on_missing_core_dim, *args)\u001b[39m\n\u001b[32m 1254\u001b[39m \u001b[38;5;66;03m# feed datasets apply_variable_ufunc through apply_dataset_vfunc\u001b[39;00m\n\u001b[32m 1255\u001b[39m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28many\u001b[39m(is_dict_like(a) \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m args):\n\u001b[32m-> \u001b[39m\u001b[32m1256\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mapply_dataset_vfunc\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 1257\u001b[39m \u001b[43m \u001b[49m\u001b[43mvariables_vfunc\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1258\u001b[39m \u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1259\u001b[39m \u001b[43m \u001b[49m\u001b[43msignature\u001b[49m\u001b[43m=\u001b[49m\u001b[43msignature\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1260\u001b[39m \u001b[43m \u001b[49m\u001b[43mjoin\u001b[49m\u001b[43m=\u001b[49m\u001b[43mjoin\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1261\u001b[39m \u001b[43m \u001b[49m\u001b[43mexclude_dims\u001b[49m\u001b[43m=\u001b[49m\u001b[43mexclude_dims\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1262\u001b[39m \u001b[43m \u001b[49m\u001b[43mdataset_join\u001b[49m\u001b[43m=\u001b[49m\u001b[43mdataset_join\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1263\u001b[39m \u001b[43m \u001b[49m\u001b[43mfill_value\u001b[49m\u001b[43m=\u001b[49m\u001b[43mdataset_fill_value\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1264\u001b[39m \u001b[43m \u001b[49m\u001b[43mkeep_attrs\u001b[49m\u001b[43m=\u001b[49m\u001b[43mkeep_attrs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1265\u001b[39m \u001b[43m \u001b[49m\u001b[43mon_missing_core_dim\u001b[49m\u001b[43m=\u001b[49m\u001b[43mon_missing_core_dim\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1266\u001b[39m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 1267\u001b[39m \u001b[38;5;66;03m# feed DataArray apply_variable_ufunc through apply_dataarray_vfunc\u001b[39;00m\n\u001b[32m 1268\u001b[39m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28many\u001b[39m(\u001b[38;5;28misinstance\u001b[39m(a, DataArray) \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m args):\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/mxalign_dev/.venv/lib/python3.12/site-packages/xarray/computation/apply_ufunc.py:527\u001b[39m, in \u001b[36mapply_dataset_vfunc\u001b[39m\u001b[34m(func, signature, join, dataset_join, fill_value, exclude_dims, keep_attrs, on_missing_core_dim, *args)\u001b[39m\n\u001b[32m 522\u001b[39m list_of_coords, list_of_indexes = build_output_coords_and_indexes(\n\u001b[32m 523\u001b[39m args, signature, exclude_dims, combine_attrs=keep_attrs\n\u001b[32m 524\u001b[39m )\n\u001b[32m 525\u001b[39m args = \u001b[38;5;28mtuple\u001b[39m(\u001b[38;5;28mgetattr\u001b[39m(arg, \u001b[33m\"\u001b[39m\u001b[33mdata_vars\u001b[39m\u001b[33m\"\u001b[39m, arg) \u001b[38;5;28;01mfor\u001b[39;00m arg \u001b[38;5;129;01min\u001b[39;00m args)\n\u001b[32m--> \u001b[39m\u001b[32m527\u001b[39m result_vars = \u001b[43mapply_dict_of_variables_vfunc\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 528\u001b[39m \u001b[43m \u001b[49m\u001b[43mfunc\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 529\u001b[39m \u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 530\u001b[39m \u001b[43m \u001b[49m\u001b[43msignature\u001b[49m\u001b[43m=\u001b[49m\u001b[43msignature\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 531\u001b[39m \u001b[43m \u001b[49m\u001b[43mjoin\u001b[49m\u001b[43m=\u001b[49m\u001b[43mdataset_join\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 532\u001b[39m \u001b[43m \u001b[49m\u001b[43mfill_value\u001b[49m\u001b[43m=\u001b[49m\u001b[43mfill_value\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 533\u001b[39m \u001b[43m \u001b[49m\u001b[43mon_missing_core_dim\u001b[49m\u001b[43m=\u001b[49m\u001b[43mon_missing_core_dim\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 534\u001b[39m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 536\u001b[39m out: Dataset | \u001b[38;5;28mtuple\u001b[39m[Dataset, ...]\n\u001b[32m 537\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m signature.num_outputs > \u001b[32m1\u001b[39m:\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/mxalign_dev/.venv/lib/python3.12/site-packages/xarray/computation/apply_ufunc.py:452\u001b[39m, in \u001b[36mapply_dict_of_variables_vfunc\u001b[39m\u001b[34m(func, signature, join, fill_value, on_missing_core_dim, *args)\u001b[39m\n\u001b[32m 450\u001b[39m core_dim_present = _check_core_dims(signature, variable_args, name)\n\u001b[32m 451\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m core_dim_present \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mTrue\u001b[39;00m:\n\u001b[32m--> \u001b[39m\u001b[32m452\u001b[39m result_vars[name] = \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[43m*\u001b[49m\u001b[43mvariable_args\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 453\u001b[39m \u001b[38;5;28;01melif\u001b[39;00m on_missing_core_dim == \u001b[33m\"\u001b[39m\u001b[33mraise\u001b[39m\u001b[33m\"\u001b[39m:\n\u001b[32m 454\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(core_dim_present)\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/mxalign_dev/.venv/lib/python3.12/site-packages/xarray/computation/apply_ufunc.py:767\u001b[39m, in \u001b[36mapply_variable_ufunc\u001b[39m\u001b[34m(func, signature, exclude_dims, dask, output_dtypes, vectorize, keep_attrs, dask_gufunc_kwargs, *args)\u001b[39m\n\u001b[32m 765\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m axis, dim \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28menumerate\u001b[39m(core_dims, start=-\u001b[38;5;28mlen\u001b[39m(core_dims)):\n\u001b[32m 766\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(data.chunks[axis]) != \u001b[32m1\u001b[39m:\n\u001b[32m--> \u001b[39m\u001b[32m767\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\n\u001b[32m 768\u001b[39m \u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33mdimension \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mdim\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m on \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mn\u001b[38;5;132;01m}\u001b[39;00m\u001b[33mth function argument to \u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 769\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mapply_ufunc with dask=\u001b[39m\u001b[33m'\u001b[39m\u001b[33mparallelized\u001b[39m\u001b[33m'\u001b[39m\u001b[33m consists of \u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 770\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mmultiple chunks, but is also a core dimension. To \u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 771\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mfix, either rechunk into a single array chunk along \u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 772\u001b[39m \u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33mthis dimension, i.e., ``.chunk(dict(\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mdim\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m=-1))``, or \u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 773\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mpass ``allow_rechunk=True`` in ``dask_gufunc_kwargs`` \u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 774\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mbut beware that this may significantly increase memory usage.\u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 775\u001b[39m )\n\u001b[32m 776\u001b[39m dask_gufunc_kwargs[\u001b[33m\"\u001b[39m\u001b[33mallow_rechunk\u001b[39m\u001b[33m\"\u001b[39m] = \u001b[38;5;28;01mTrue\u001b[39;00m\n\u001b[32m 778\u001b[39m output_sizes = dask_gufunc_kwargs.pop(\u001b[33m\"\u001b[39m\u001b[33moutput_sizes\u001b[39m\u001b[33m\"\u001b[39m, {})\n", - "\u001b[31mValueError\u001b[39m: dimension reference_time on 0th function argument to apply_ufunc with dask='parallelized' consists of multiple chunks, but is also a core dimension. To fix, either rechunk into a single array chunk along this dimension, i.e., ``.chunk(dict(reference_time=-1))``, or pass ``allow_rechunk=True`` in ``dask_gufunc_kwargs`` but beware that this may significantly increase memory usage." - ] - } - ], "source": [ - "# Or use some specialized packages\n", - "import xskillscore as xs\n", + "## Transformations\n", + "Often, the variables themselves need some transformations before different datasets can be compared. \n", + "When working interactively, this is easiest by interacting directly on the xr.Datasets.\n", "\n", - "vars = [\"2t\", \"10si\", \"msl\", \"2d\"]\n", - "xs.rmse(\n", - " a=ds_fcst_transformed[vars],\n", - " b=ds_obs_aligned[vars],\n", - " dim=[\"reference_time\", \"point_index\"],\n", - ")" + "But this can also be done using the `mxalign.transform` function." ] }, { "cell_type": "code", - "execution_count": 40, - "id": "46631623", + "execution_count": 26, + "id": "e4220a99", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[]" + "['rename', 'kelvin_to_celcius', 'uv_to_speed', 'external']" ] }, - "execution_count": 40, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" - }, - { - "data": { - "image/png": "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HNBuTygwmZiIiEhduttaePnll3Hq1Ck89thjai+lV0wmJiIiUpeumrCcOHECP//5z7Fx40aYTP1butPphNPplP9ss9mUWh6cHi8O1/iffyqDGyIiIlXoZufG6/Xiu9/9Lp544gmMGTOm349bvnw5LBaL/JWXl6fYGo/U2OH2ikiJj0busFjFXoeIiIj6ppvgxm63Y9euXbj33nthMplgMpnwy1/+Evv27YPJZMIXX3zR6+OWLVsGq9Uqf1VWViq2RinfZmpeMgRBUOx1iIiIqG+6OZZKSkrCgQMHenzvz3/+M7744gv8+9//RmFhYa+PM5vNMJvNoVgik4mJiIg0QNXgpq2tDWVlZfKfy8vLUVpaipSUFOTn52PZsmWoqqrCK6+8AoPBgEmTJvV4fHp6OmJiYs77vlq6konZvI+IiEgtqgY3u3btwle+8hX5zw888AAA4I477sCKFStQU1ODiooKtZY3INYON041tgPgzg0REZGaBFEURbUXEUo2mw0WiwVWqxVJSUlBe97Tje14+J39sDs8+Oi+eUF7XiIiIhrY57ducm60riAtHm/+cDYiLFYkIiLSHN1US+kFq6SIiIjUxeCGiIiIwgqDGyIiIgorDG6IiIgorDC4ISIiorDC4IaIiIjCCoMbIiIiCisMboiIiCisMLghIiKisMLghoiIiMIKgxsiIiIKKwxuiIiIKKwwuCEiIqKwwuCGiIiIwopJ7QWEmiiKAACbzabySoiIiKi/pM9t6XP8QiIuuLHb7QCAvLw8lVdCREREA2W322GxWC54H0HsTwgURnw+H6qrq5GYmAhBEIL63DabDXl5eaisrERSUlJQn1vrIvXaI/W6gci99ki9boDXHonXrqXrFkURdrsd2dnZMBgunFUTcTs3BoMBubm5ir5GUlKS6n8J1BKp1x6p1w1E7rVH6nUDvPZIvHatXPfFdmwkTCgmIiKisMLghoiIiMIKg5sgMpvNeOyxx2A2m9VeSshF6rVH6nUDkXvtkXrdAK89Eq9dr9cdcQnFREREFN64c0NERERhhcENERERhRUGN0RERBRWGNwEyfPPP4+CggLExMRg1qxZ2LFjh9pLCrrly5djxowZSExMRHp6OhYvXoxjx471uI/D4cDSpUuRmpqKhIQEfPOb30RdXZ1KK1bGk08+CUEQcP/998vfC+frrqqqwm233YbU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e02Mi4sT/+///k++z5NPPikmJyeL77//vrh//37xxhtvFAsLC8XOzk4VVz50d9xxh5iTkyOuXr1aLC8vF999910xLS1N/M///E/5PuFw7Xa7Xdy7d6+4d+9eEYD4hz/8Qdy7d69cEdSfa7z22mvFkpIScfv27eKmTZvE0aNHi7fccotal9RvF7p2l8sl3nDDDWJubq5YWlra42ee0+mUnyMcr70351ZLiaK2r53BTZD87//+r5ifny9GR0eLM2fOFLdt26b2koIOQK9fL7/8snyfzs5O8cc//rE4bNgwMS4uTvz6178u1tTUqLdohZwb3ITzda9atUqcNGmSaDabxXHjxol/+9vfetzu8/nERx55RMzIyBDNZrN45ZVXiseOHVNptcFjs9nE++67T8zPzxdjYmLEoqIi8Re/+EWPD7ZwuPYvv/yy13/Xd9xxhyiK/bvGpqYm8ZZbbhETEhLEpKQk8a677hLtdrsKVzMwF7r28vLyPn/mffnll/JzhOO196a34EbL186p4ERERBRWmHNDREREYYXBDREREYUVBjdEREQUVhjcEBERUVhhcENERERhhcENERERhRUGN0RERBRWGNwQERFRWGFwQ0QDMn/+fNx///2afo0VK1YgOTk5aOsZjMcffxxTp05VdQ1EkYrBDRHpWkFBAf74xz/2+N7NN9+M48ePq7MgIlKdSe0FEBEFW2xsLGJjY9VeBhGphDs3RDRoTqcT//Ef/4GcnBzEx8dj1qxZWLdunXx7U1MTbrnlFuTk5CAuLg6TJ0/Gv/71rx7P0d7ejiVLliAhIQFZWVl4+umn+/368+fPx5kzZ/Czn/0MgiBAEAQA5x9LSUdEL730EvLz85GQkIAf//jH8Hq9+O1vf4vMzEykp6fj17/+dY/nb21txfe+9z0MHz4cSUlJ+OpXv4p9+/YN6D169dVXUVBQAIvFgu985zuw2+0DejwRDRyDGyIatHvvvRdbt27FG2+8gf379+Omm27CtddeixMnTgAAHA4Hpk2bhg8//BAHDx7ED37wA9x+++3YsWOH/BwPPfQQ1q9fj/fffx+ffvop1q1bhz179vTr9d99913k5ubil7/8JWpqalBTU9PnfU+ePImPP/4Ya9aswb/+9S+8+OKLuO6663D27FmsX78eTz31FP77v/8b27dvlx9z0003ob6+Hh9//DF2796NSy65BFdeeSWam5v7tb6TJ09i5cqVWL16NVavXo3169fjySef7NdjiWgI1B5LTkT6csUVV4j33XefeObMGdFoNIpVVVU9br/yyivFZcuW9fn46667TnzwwQdFURRFu90uRkdHi2+99ZZ8e1NTkxgbGyved999/VrPiBEjxGeeeabH915++WXRYrHIf37sscfEuLg40Wazyd+75pprxIKCAtHr9crfGzt2rLh8+XJRFEVx48aNYlJSkuhwOHo898iRI8W//vWvF11Xb6/50EMPibNmzerXdRHR4DHnhogG5cCBA/B6vRgzZkyP7zudTqSmpgIAvF4vfvOb3+Ctt95CVVUVXC4XnE4n4uLiAPh3NlwuF2bNmiU/PiUlBWPHjg36egsKCpCYmCj/OSMjA0ajEQaDocf36uvrAQD79u1DW1ubfC2Szs5OnDx5clCvmZWVJT8/ESmHwQ0RDUpbWxuMRiN2794No9HY47aEhAQAwO9+9zs8++yz+OMf/4jJkycjPj4e999/P1wuV8jXGxUV1ePPgiD0+j2fzwfAf31ZWVk9cogk/S0zv9DzE5FyGNwQ0aCUlJTA6/Wivr4e8+bN6/U+mzdvxo033ojbbrsNAODz+XD8+HFMmDABADBy5EhERUVh+/btyM/PBwC0tLTg+PHjuOKKK/q1jujoaHi93iBcUU+XXHIJamtrYTKZUFBQEPTnJyLlMKGYiAZlzJgxuPXWW7FkyRK8++67KC8vx44dO7B8+XJ8+OGHAIDRo0dj7dq12LJlC44cOYIf/vCHqKurk58jISEB99xzDx566CF88cUXOHjwIO68884eR0UXU1BQgA0bNqCqqgqNjY1Bu74FCxZg9uzZWLx4MT799FOcPn0aW7ZswS9+8Qvs2rUraK9DRMHH4IaIBu3ll1/GkiVL8OCDD2Ls2LFYvHgxdu7cKe/C/Pd//zcuueQSXHPNNZg/fz4yMzOxePHiHs/xu9/9DvPmzcOiRYuwYMECzJ07F9OmTev3Gn75y1/i9OnTGDlyJIYPHx60axMEAR999BEuv/xy3HXXXRgzZgy+853v4MyZM8jIyAja6xBR8AmiKIpqL4KIiIgoWLhzQ0RERGGFwQ0RadbGjRuRkJDQ55eaJk6c2Oe6XnvtNVXXRhTpeCxFRJrV2dmJqqqqPm8fNWpUCFfT05kzZ+B2u3u9LSMjo0d/GyIKLQY3REREFFZ4LEVERERhhcENERERhRUGN0RERBRWGNwQERFRWGFwQ0RERGGFwQ0RERGFFQY3REREFFYY3BAREVFY+f+Je5XG1C1HsQAAAABJRU5ErkJggg==", - "text/plain": [ - "
    " - ] - }, - "metadata": {}, - "output_type": "display_data" } ], "source": [ - "# xskillscore cannot handle chunked dimensions over which it should average\n", - "new_chunks = {\n", - " \"reference_time\": -1,\n", - " \"point_index\": -1,\n", - "}\n", - "\n", - "rmse2 = xs.rmse(\n", - " a=ds_fcst_transformed[vars].chunk(new_chunks),\n", - " b=ds_obs_aligned[vars].chunk(new_chunks),\n", - " dim=[\"reference_time\", \"point_index\"],\n", - " skipna=True,\n", - ")\n", - "rmse2[\"2t\"].assign_coords(\n", - " lead_time_h=rmse2.lead_time.astype(\"timedelta64[h]\") / 3600\n", - ").plot(x=\"lead_time_h\")" - ] - }, - { - "cell_type": "markdown", - "id": "65efc802", - "metadata": {}, - "source": [ - "## NaN broadcasting (WIP)" + "mx.available_transformations()" ] }, { "cell_type": "code", - "execution_count": 82, - "id": "9ef02d3e", + "execution_count": 27, + "id": "a0a2dac0", "metadata": {}, "outputs": [ { @@ -85173,89 +13529,158 @@ " filter: drop-shadow(1px 1px 5px var(--xr-font-color2));\n", " stroke-width: 0.8px;\n", "}\n", - "
    <xarray.Dataset> Size: 664B\n",
    -       "Dimensions:         (reference_time: 1, lead_time: 5, point_index: 11)\n",
    +       "
    <xarray.Dataset> Size: 2MB\n",
    +       "Dimensions:         (reference_time: 2, lead_time: 25, point_index: 1879)\n",
            "Coordinates:\n",
    -       "  * reference_time  (reference_time) datetime64[s] 8B 2026-03-11\n",
    -       "  * lead_time       (lead_time) timedelta64[s] 40B 00:00:00 ... 1 days 00:00:00\n",
    -       "    latitude        (point_index) float64 88B 10.0 11.0 12.0 ... 18.0 19.0 20.0\n",
    -       "    longitude       (point_index) float64 88B -5.0 -4.0 -3.0 ... 3.0 4.0 5.0\n",
    +       "  * reference_time  (reference_time) datetime64[ns] 16B 2020-02-01 2020-02-02\n",
    +       "  * lead_time       (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 da...\n",
    +       "  * code            (point_index) int64 15kB 215734 215735 ... 1020486 1595975\n",
    +       "    wigos_id        (point_index) <U15 113kB '0-20000-0-13611' ... '0-20000-0...\n",
    +       "    wmo_code        (point_index) float64 15kB 1.361e+04 1.362e+04 ... 1.62e+04\n",
    +       "    station_name    (point_index) <U40 301kB 'DURRES' ... 'RADICOFANI'\n",
    +       "    country_code    (point_index) <U2 15kB 'AL' 'AL' 'AL' ... 'GB' 'GB' 'IT'\n",
    +       "    latitude        (point_index) float64 15kB 41.3 40.08 40.6 ... 57.33 42.9\n",
    +       "    longitude       (point_index) float64 15kB 19.45 20.15 ... -7.367 11.77\n",
    +       "    altitude        (point_index) float64 15kB 15.0 193.0 889.0 ... 10.0 816.0\n",
    +       "    city_name       (point_index) <U40 301kB 'DURRES' ... 'RADICOFANI'\n",
            "Dimensions without coordinates: point_index\n",
            "Data variables:\n",
    -       "    2t              (reference_time, lead_time, point_index) float64 440B 0.4...\n",
    +       "    10u             (reference_time, lead_time, point_index) float64 752kB -1...\n",
    +       "    2t              (reference_time, lead_time, point_index) float64 752kB 11...\n",
            "Attributes:\n",
    -       "    properties:  {'space': 'point', 'time': 'forecast', 'uncertainty': 'deter...
    " + " mlwp_time_trait: forecast\n", + " mlwp_space_trait: point\n", + " mlwp_uncertainty_trait: deterministic\n", + " crs: +proj=lcc +ellps=WGS84 +a=6371229.0 +b=6371229.0...\n", + " grid_mapping: {'nx': 1069, 'ny': 1069, 'lon_ll': -17.4859, 'la...
    " ], "text/plain": [ - " Size: 664B\n", - "Dimensions: (reference_time: 1, lead_time: 5, point_index: 11)\n", + " Size: 2MB\n", + "Dimensions: (reference_time: 2, lead_time: 25, point_index: 1879)\n", "Coordinates:\n", - " * reference_time (reference_time) datetime64[s] 8B 2026-03-11\n", - " * lead_time (lead_time) timedelta64[s] 40B 00:00:00 ... 1 days 00:00:00\n", - " latitude (point_index) float64 88B 10.0 11.0 12.0 ... 18.0 19.0 20.0\n", - " longitude (point_index) float64 88B -5.0 -4.0 -3.0 ... 3.0 4.0 5.0\n", + " * reference_time (reference_time) datetime64[ns] 16B 2020-02-01 2020-02-02\n", + " * lead_time (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 da...\n", + " * code (point_index) int64 15kB 215734 215735 ... 1020486 1595975\n", + " wigos_id (point_index)
    <xarray.DataArray '2t' (reference_time: 1, lead_time: 9, point_index: 11)> Size: 792B\n",
    -       "array([[[0.36009718, 0.61481844, 0.07451639, 0.68209557, 0.00764717,\n",
    -       "         0.68699033, 0.8157584 , 0.41262241, 0.71209524, 0.27391146,\n",
    -       "         0.47358815],\n",
    -       "        [0.33847277, 0.91027469, 0.54652365, 0.1239559 , 0.55766931,\n",
    -       "         0.12322165, 0.29286627, 0.2836601 , 0.61227258, 0.21382436,\n",
    -       "         0.54545907],\n",
    -       "        [0.49240564, 0.9643462 , 0.77102191, 0.58625407, 0.22910377,\n",
    -       "         0.25509983, 0.04011024, 0.11756888, 0.13329478, 0.71083446,\n",
    -       "         0.74495861],\n",
    -       "        [0.68631757, 0.77742683, 0.57081896, 0.45122382, 0.90587131,\n",
    -       "         0.46529941, 0.41973246, 0.24311589, 0.99487292, 0.83585969,\n",
    -       "         0.96677381],\n",
    -       "        [0.66777803, 0.80961184, 0.75366375, 0.44580025, 0.3498393 ,\n",
    -       "         0.90852314, 0.33079615, 0.6264394 , 0.71362775, 0.93237199,\n",
    -       "         0.30746479],\n",
    -       "        [0.07381012, 0.81266341, 0.2608707 , 0.39154352, 0.23556133,\n",
    -       "         0.42929489, 0.25459131, 0.2257462 , 0.62767369, 0.50077758,\n",
    -       "         0.24274581],\n",
    -       "        [0.96703569, 0.20360401, 0.61972757, 0.10063529, 0.8038005 ,\n",
    -       "         0.00693506, 0.42461886, 0.57613561, 0.54059625, 0.11472533,\n",
    -       "         0.83982231],\n",
    -       "        [0.99861878, 0.37482103, 0.2917735 , 0.02409738, 0.10514202,\n",
    -       "         0.91632701, 0.57798214, 0.04898568, 0.4194744 , 0.0876103 ,\n",
    -       "         0.75311078],\n",
    -       "        [0.26306444, 0.08110742, 0.99355761, 0.95617763, 0.93662043,\n",
    -       "         0.80722049, 0.50132633, 0.11496122, 0.900554  , 0.02533425,\n",
    -       "         0.89919583]]])\n",
    +       "
    <xarray.Dataset> Size: 2MB\n",
    +       "Dimensions:         (point_index: 1879, reference_time: 2, lead_time: 25)\n",
            "Coordinates:\n",
    -       "  * reference_time  (reference_time) datetime64[s] 8B 2026-03-11\n",
    -       "  * lead_time       (lead_time) timedelta64[s] 72B 00:00:00 ... 1 days 00:00:00\n",
    -       "    latitude        (point_index) float64 88B 10.0 11.0 12.0 ... 18.0 19.0 20.0\n",
    -       "    longitude       (point_index) float64 88B -5.0 -4.0 -3.0 ... 3.0 4.0 5.0\n",
    -       "Dimensions without coordinates: point_index
    " + " * code (point_index) int64 15kB 215734 215735 ... 1020486 1595975\n", + " wigos_id (point_index) <U15 113kB '0-20000-0-13611' ... '0-20000-0...\n", + " wmo_code (point_index) float64 15kB 1.361e+04 1.362e+04 ... 1.62e+04\n", + " station_name (point_index) <U40 301kB 'DURRES' ... 'RADICOFANI'\n", + " country_code (point_index) <U2 15kB 'AL' 'AL' 'AL' ... 'GB' 'GB' 'IT'\n", + " latitude (point_index) float64 15kB 41.3 40.08 40.6 ... 57.33 42.9\n", + " longitude (point_index) float64 15kB 19.45 20.15 ... -7.367 11.77\n", + " altitude (point_index) float64 15kB 15.0 193.0 889.0 ... 10.0 816.0\n", + " city_name (point_index) <U40 301kB 'DURRES' ... 'RADICOFANI'\n", + " * reference_time (reference_time) datetime64[ns] 16B 2020-02-01 2020-02-02\n", + " * lead_time (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 da...\n", + " valid_time (reference_time, lead_time) datetime64[ns] 400B 2020-02-0...\n", + "Dimensions without coordinates: point_index\n", + "Data variables:\n", + " 2t (point_index, reference_time, lead_time) float64 752kB 1....\n", + "Attributes:\n", + " mlwp_time_trait: forecast\n", + " mlwp_space_trait: point\n", + " mlwp_uncertainty_trait: deterministic\n", + " crs: +proj=lcc +ellps=WGS84 +a=6371229.0 +b=6371229.0...\n", + " grid_mapping: {'nx': 1069, 'ny': 1069, 'lon_ll': -17.4859, 'la...
    " ], "text/plain": [ - " Size: 792B\n", - "array([[[0.36009718, 0.61481844, 0.07451639, 0.68209557, 0.00764717,\n", - " 0.68699033, 0.8157584 , 0.41262241, 0.71209524, 0.27391146,\n", - " 0.47358815],\n", - " [0.33847277, 0.91027469, 0.54652365, 0.1239559 , 0.55766931,\n", - " 0.12322165, 0.29286627, 0.2836601 , 0.61227258, 0.21382436,\n", - " 0.54545907],\n", - " [0.49240564, 0.9643462 , 0.77102191, 0.58625407, 0.22910377,\n", - " 0.25509983, 0.04011024, 0.11756888, 0.13329478, 0.71083446,\n", - " 0.74495861],\n", - " [0.68631757, 0.77742683, 0.57081896, 0.45122382, 0.90587131,\n", - " 0.46529941, 0.41973246, 0.24311589, 0.99487292, 0.83585969,\n", - " 0.96677381],\n", - " [0.66777803, 0.80961184, 0.75366375, 0.44580025, 0.3498393 ,\n", - " 0.90852314, 0.33079615, 0.6264394 , 0.71362775, 0.93237199,\n", - " 0.30746479],\n", - " [0.07381012, 0.81266341, 0.2608707 , 0.39154352, 0.23556133,\n", - " 0.42929489, 0.25459131, 0.2257462 , 0.62767369, 0.50077758,\n", - " 0.24274581],\n", - " [0.96703569, 0.20360401, 0.61972757, 0.10063529, 0.8038005 ,\n", - " 0.00693506, 0.42461886, 0.57613561, 0.54059625, 0.11472533,\n", - " 0.83982231],\n", - " [0.99861878, 0.37482103, 0.2917735 , 0.02409738, 0.10514202,\n", - " 0.91632701, 0.57798214, 0.04898568, 0.4194744 , 0.0876103 ,\n", - " 0.75311078],\n", - " [0.26306444, 0.08110742, 0.99355761, 0.95617763, 0.93662043,\n", - " 0.80722049, 0.50132633, 0.11496122, 0.900554 , 0.02533425,\n", - " 0.89919583]]])\n", + " Size: 2MB\n", + "Dimensions: (point_index: 1879, reference_time: 2, lead_time: 25)\n", "Coordinates:\n", - " * reference_time (reference_time) datetime64[s] 8B 2026-03-11\n", - " * lead_time (lead_time) timedelta64[s] 72B 00:00:00 ... 1 days 00:00:00\n", - " latitude (point_index) float64 88B 10.0 11.0 12.0 ... 18.0 19.0 20.0\n", - " longitude (point_index) float64 88B -5.0 -4.0 -3.0 ... 3.0 4.0 5.0\n", - "Dimensions without coordinates: point_index" + " * code (point_index) int64 15kB 215734 215735 ... 1020486 1595975\n", + " wigos_id (point_index) ]" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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xowZYvny5a7PbTabSExMFKtWrVIwKs+rqakRAMT27duFEEI0NjYKvV4v3n33XddjTpw4IQCI3NxcpcJ0m+bmZpGVlSU2bdok5s2bJx555BEhhH9f9+OPPy6uuOKKi95vt9tFfHy8+P3vf++6rbGxURgMBvHvf//bGyF6zA033CDuueeeHrd985vfFEuWLBFC+Oe1AxDr1q1zfd6fazx+/LgAIPbt2+d6zMcffywkSRLl5eVei32ozr/23uzdu1cAEMXFxUII/7/2srIykZSUJI4ePSrS0tLEH//4R9d9ar92rtwMUWdnJ/bv348FCxa4btNoNFiwYAFyc3MVjMzzmpqaAABRUVEAgP3798NisfT4WmRnZyM1NdUvvhbLly/HDTfc0OP6AP++7g8//BDTpk3DLbfcgtjYWEyePBl/+9vfXPcXFhaiqqqqx7WHh4dj5syZPn/tl19+OTZv3oxTp04BAA4dOoSdO3di0aJFAPz72mX9ucbc3FxERERg2rRprscsWLAAGo0Ge/bs8XrMntTU1ARJkhAREQHAv6/dbrfjzjvvxGOPPYbx48dfcL/ar33YzZZyt7q6OthsNsTFxfW4PS4uDidPnlQoKs+z2+1YsWIF5syZg5ycHABAVVUVAgICXP/xZXFxcaiqqlIgSvd5++23ceDAAezbt++C+/z5ugsKCvDaa6/h0Ucfxc9//nPs27cPDz/8MAICArB06VLX9fX279/Xr/1nP/sZTCYTsrOzodVqYbPZ8Nvf/hZLliwBAL++dll/rrGqqgqxsbE97tfpdIiKivKbrwPgqKt7/PHHcdttt7lmLPnztT/77LPQ6XR4+OGHe71f7dfO5IYGZfny5Th69Ch27typdCgeV1paikceeQSbNm2C0WhUOhyvstvtmDZtGn73u98BACZPnoyjR4/iz3/+M5YuXapwdJ71n//8B2vXrsVbb72F8ePH4+DBg1ixYgUSExP9/tqpJ4vFgu985zsQQuC1115TOhyP279/P1588UUcOHAAkiQpHc6gcFtqiGJiYqDVai84GVNdXY34+HiFovKsBx98EBs2bMDWrVt7TFiPj49HZ2cnGhsbezze178W+/fvR01NDaZMmQKdTgedToft27fjpZdegk6nQ1xcnF9eNwAkJCRg3LhxPW4bO3YsSkpKAMB1ff747/+xxx7Dz372M9x6662Y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", + "text/plain": [ + "
    " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Calculate RMSE by averaging over all dimension except lead time\n", + "rmse = np.sqrt(mse.mean([\"reference_time\", \"point_index\"], skipna=True))\n", "\n", - "fcst_2[\"2t\"]" + "# Plot\n", + "rmse[\"2t\"].assign_coords(\n", + " lead_time_h=rmse.lead_time.astype(\"timedelta64[h]\") / 3600\n", + ").plot(x=\"lead_time_h\")" ] }, { "cell_type": "code", - "execution_count": 101, - "id": "d9412da2", + "execution_count": 30, + "id": "dc73b2a5", "metadata": {}, "outputs": [ { @@ -86503,89 +14949,105 @@ " filter: drop-shadow(1px 1px 5px var(--xr-font-color2));\n", " stroke-width: 0.8px;\n", "}\n", - "
    <xarray.Dataset> Size: 1kB\n",
    -       "Dimensions:         (lead_time: 9, reference_time: 1, point_index: 11)\n",
    +       "
    <xarray.Dataset> Size: 400B\n",
    +       "Dimensions:    (lead_time: 25)\n",
            "Coordinates:\n",
    -       "  * lead_time       (lead_time) timedelta64[s] 72B 00:00:00 ... 1 days 00:00:00\n",
    -       "    valid_time      (reference_time, lead_time) datetime64[s] 72B 2026-03-11 ...\n",
    -       "  * reference_time  (reference_time) datetime64[s] 8B 2026-03-11\n",
    -       "    latitude        (point_index) float64 88B 10.0 11.0 12.0 ... 18.0 19.0 20.0\n",
    -       "    longitude       (point_index) float64 88B -5.0 -4.0 -3.0 ... 3.0 4.0 5.0\n",
    -       "Dimensions without coordinates: point_index\n",
    +       "  * lead_time  (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 days 00...\n",
            "Data variables:\n",
    -       "    2t              (reference_time, lead_time, point_index) float64 792B 0.4...\n",
    -       "Attributes:\n",
    -       "    properties:  {'space': 'point', 'time': 'forecast', 'uncertainty': 'deter...
    " + " 2t (lead_time) float64 200B 1.259 1.429 1.624 ... 1.662 1.538 1.799
    " ], "text/plain": [ - " Size: 1kB\n", - "Dimensions: (lead_time: 9, reference_time: 1, point_index: 11)\n", + " Size: 400B\n", + "Dimensions: (lead_time: 25)\n", "Coordinates:\n", - " * lead_time (lead_time) timedelta64[s] 72B 00:00:00 ... 1 days 00:00:00\n", - " valid_time (reference_time, lead_time) datetime64[s] 72B 2026-03-11 ...\n", - " * reference_time (reference_time) datetime64[s] 8B 2026-03-11\n", - " latitude (point_index) float64 88B 10.0 11.0 12.0 ... 18.0 19.0 20.0\n", - " longitude (point_index) float64 88B -5.0 -4.0 -3.0 ... 3.0 4.0 5.0\n", - "Dimensions without coordinates: point_index\n", + " * lead_time (lead_time) timedelta64[ns] 200B 0 days 00:00:00 ... 6 days 00...\n", "Data variables:\n", - " 2t (reference_time, lead_time, point_index) float64 792B 0.4...\n", - "Attributes:\n", - " properties: {'space': 'point', 'time': 'forecast', 'uncertainty': 'deter..." + " 2t (lead_time) float64 200B 1.259 1.429 1.624 ... 1.662 1.538 1.799" ] }, - "execution_count": 101, + "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "fcst_1_aligned, fcst_2_aligned = fcst_1.time.align_with(fcst_2)\n", - "fcst_1_aligned" + "# Or use some specialized packages\n", + "import xskillscore as xs\n", + "\n", + "vars = [\"2t\"] # , \"10si\", \"msl\", \"2d\"]\n", + "rmse_2 = xs.rmse(\n", + " a=ds_fcst_transformed[vars].chunk({\"reference_time\": -1}),\n", + " b=ds_obs_aligned[vars],\n", + " dim=[\"reference_time\", \"point_index\"],\n", + " skipna=True,\n", + ")\n", + "rmse_2.compute()" ] }, { "cell_type": "code", - "execution_count": 93, + "execution_count": null, "id": "282019b0", "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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OnQof/zxB2lpafqnT58+XH/99fp+MF43wKBBg8qU+2/dupVWrVoB0Lp1a5o0aeJ07dnZ2Sxfvjzgrz0vL4+QEOe3yNDQUOx2OxDc1+6gMtc4YMAAMjMzWb16tX7Or7/+it1up3///l632Z04hM22bdv45ZdfqF+/vtPjwXrtf//731m/fr3Te15SUhKTJk3ip59+AgLg2n2d0RwMfPbZZ0ZkZKQxY8YMY9OmTcZtt91m1KlTxzh48KCvTXMrY8eONRITE40FCxYYGRkZ+icvL08/54477jBatmxp/Prrr8aqVauMAQMGGAMGDPCh1Z6hdLWUYQTvda9YscIICwsznnrqKWPbtm3Gxx9/bMTExBgfffSRfs4zzzxj1KlTx/j222+N9evXG5dddpnRunVrIz8/34eW15zRo0cbzZo1M2bNmmXs2rXL+Prrr40GDRoY//d//6efEwzXnpOTY6xdu9ZYu3atARgvvfSSsXbtWl0RVJlrHDFihNGzZ09j+fLlxuLFi4327dsb1157ra8uqdJUdO2FhYXGpZdeajRv3txIS0tzes8rKCjQrxGM114ertVShuHf1y7ixk289tprRsuWLY2IiAijX79+xrJly3xtktsByv2ZPn26fk5+fr5x5513GnXr1jViYmKMK664wsjIyPCd0R7CVdwE83V///33RteuXY3IyEgjJSXFePvtt50et9vtxpQpU4zGjRsbkZGRxtChQ40tW7b4yFr3kZ2dbUycONFo2bKlERUVZbRp08b45z//6fTBFgzXPn/+/HL/rkePHm0YRuWu8dixY8a1115rxMXFGQkJCcZNN91k5OTk+OBqqkZF175r167TvufNnz9fv0YwXnt5lCdu/PnaZSq4IAiCIAhBheTcCIIgCIIQVIi4EQRBEAQhqBBxIwiCIAhCUCHiRhAEQRCEoELEjSAIgiAIQYWIG0EQBEEQggoRN4IgCIIgBBUibgRBEARBCCpE3AiCn2EYBrfddhv16tXDZrORlpbma5OCggULFmCz2coMOK0qycnJvPzyy6d9fMyYMdhsNmw2G9988w0A6enpfvt/6bDNZrPRo0cPX5sjCG5BxI0g+Blz5sxhxowZzJo1i4yMDLp27eprk6rNmYSANxk4cCAZGRkkJiZ6/FwjRowgIyODkSNHevxcNaVFixZkZGRw3333+doUQXAbYb42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", + "text/plain": [ + "
    " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mThe Kernel crashed while executing code in the current cell or a previous cell. \n", + "\u001b[1;31mPlease review the code in the cell(s) to identify a possible cause of the failure. \n", + "\u001b[1;31mClick here for more info. \n", + "\u001b[1;31mView Jupyter log for further details." + ] + } + ], + "source": [ + "# Plot both scores\n", + "rmse[\"2t\"].assign_coords(\n", + " lead_time_h=rmse.lead_time.astype(\"timedelta64[h]\") / 3600\n", + ").plot(x=\"lead_time_h\", c=\"black\", lw=5)\n", + "\n", + "ax = plt.gca()\n", + "rmse_2[\"2t\"].assign_coords(\n", + " lead_time_h=rmse.lead_time.astype(\"timedelta64[h]\") / 3600\n", + ").plot(x=\"lead_time_h\", ax=ax, c=\"green\")" + ] } ], "metadata": { "kernelspec": { - "display_name": "mxalign (3.12.12)", + "display_name": "mxalign (3.12.11)", "language": "python", "name": "python3" }, @@ -86599,7 +15061,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.12" + "version": "3.12.11" } }, "nbformat": 4, diff --git a/examples/myloader.py b/examples/myloader.py new file mode 100644 index 0000000..7989263 --- /dev/null +++ b/examples/myloader.py @@ -0,0 +1,36 @@ +"""Example custom loader for SYNOP observations, used by the example pipeline config.""" + +import xarray as xr + + +def load_dataset(file: str) -> xr.Dataset: + """Load a SYNOP observation netCDF file and attach the mlwp traits. + + Parameters + ---------- + file : str + Path to the netCDF file with a ``code`` station dimension. + + Returns + ------- + xr.Dataset + Observation point dataset with a ``point_index`` dimension, mlwp + traits in its attributes, and CF attributes on its coordinates. + """ + ds = xr.open_mfdataset([file], engine="h5netcdf") + + ds = ds.rename_dims(code="point_index") + + ds.attrs["mlwp_time_trait"] = "observation" + ds.attrs["mlwp_space_trait"] = "point" + ds.attrs["mlwp_uncertainty_trait"] = "deterministic" + + ds.coords["valid_time"].attrs["standard_name"] = "time" + ds.coords["latitude"].attrs.update( + {"standard_name": "latitude", "units": "degrees_north"} + ) + ds.coords["longitude"].attrs.update( + {"standard_name": "longitude", "units": "degrees_east"} + ) + + return ds diff --git a/pyproject.toml b/pyproject.toml index e890216..13be0c4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,9 +10,9 @@ requires-python = ">=3.12" dependencies = [ "cartopy>=0.25.0", "dask>=2026.1.2", - "earthkit-data>=0.19.0", "h5netcdf>=1.8.1", - "h5py>=3.15.1", + "h5py<3.15", + "mlwp-data-loaders", "netcdf4>=1.7.4", "pyyaml>=6.0.3", "scipy>=1.17.0", @@ -22,10 +22,12 @@ dependencies = [ "distributed>=2026.1.2", "mlwp-data-specs", "mlwp-data-loaders", + "pandas>=2.2", + "pydantic>=2", ] [project.scripts] -mxalign = "mxalign.cli:main" +mxalign = "mxalign.pipeline.cli:main" [project.optional-dependencies] earthkit = [ @@ -47,6 +49,31 @@ jobqueue = [ requires = ["hatchling"] build-backend = "hatchling.build" +[tool.pytest.ini_options] +testpaths = ["tests"] + +[tool.ruff.lint] +# ANN: type annotations on all arguments and return values; D: docstrings +extend-select = ["ANN", "D"] + +[tool.ruff.lint.pydocstyle] +convention = "numpy" + +[tool.ruff.lint.per-file-ignores] +# Orphaned loader that imports removed modules; pending removal or port to mlwp-data-loaders +"src/mxalign/loaders/ifs_forecast.py" = ["ANN", "D"] + +[tool.numpydoc_validation] +checks = [ + "all", # report on all checks, except the below + "EX01", # no "Examples" section required + "SA01", # no "See Also" section required + "ES01", # no "Extended Summary" section required +] +# __init__ parameters are documented in the class docstring (numpydoc convention) +exclude = ['\.__init__$'] +exclude_files = ['src/mxalign/loaders/ifs_forecast\.py'] + [dependency-groups] dev = [ "ipykernel>=7.2.0", diff --git a/src/mxalign/__init__.py b/src/mxalign/__init__.py index 61576c3..89ac61e 100644 --- a/src/mxalign/__init__.py +++ b/src/mxalign/__init__.py @@ -1,25 +1,29 @@ -from .transformations.transform import transform -from .transformations.registry import available_transformations, register_transformation -from .interpolations.interpolate import interpolate -from .interpolations.registry import available_interpolations, register_interpolator -from .align.time import align_time -from .align.space import align_space +"""Align and verify weather forecast and observation datasets with xarray.""" -from . import accessors -from . import transformations -from . import interpolations +from . import accessor, alignment, pipeline +from .alignment.interpolations.interpolate import interpolate +from .alignment.interpolations.registry import ( + available_interpolations, + register_interpolator, +) +from .alignment.space import align_space +from .alignment.time import align_time +from .pipeline.transformations.registry import ( + available_transformations, + register_transformation, +) +from .pipeline.transformations.transform import transform __all__ = [ - "transform", + "accessor", + "align_space", + "align_time", + "alignment", + "available_interpolations", "available_transformations", - "register_transformation", "interpolate", - "available_interpolations", + "pipeline", "register_interpolator", - "align_time", - "align_space", - "accessors", - "loaders", - "transformations", - "interpolations", + "register_transformation", + "transform", ] diff --git a/src/mxalign/accessor/__init__.py b/src/mxalign/accessor/__init__.py new file mode 100644 index 0000000..48c51a9 --- /dev/null +++ b/src/mxalign/accessor/__init__.py @@ -0,0 +1,5 @@ +"""Dataset accessors provided by mxalign (registers ``ds.mx`` on import).""" + +from . import mx + +__all__ = ["mx"] diff --git a/src/mxalign/accessor/mx.py b/src/mxalign/accessor/mx.py new file mode 100644 index 0000000..aa40dd2 --- /dev/null +++ b/src/mxalign/accessor/mx.py @@ -0,0 +1,578 @@ +"""The ``ds.mx`` xarray Dataset accessor for space/time predicates and alignment.""" + +import numpy as np +import pandas as pd +import xarray as xr +import cartopy.crs as ccrs + +from mlwp_data_specs.api import SPACE_TRAIT_ATTR, TIME_TRAIT_ATTR +from mlwp_data_specs.specs.traits.spatial_coordinate import Space +from mlwp_data_specs.specs.traits.time_coordinate import Time + +from ..utils.projections import create_cartopy_crs, BUILTIN +from ..alignment import time as _time +from ..alignment import space as _space + + +@xr.register_dataset_accessor("mx") +class MxAccessor: + """``ds.mx`` accessor — space/time predicates and alignment operations. + + Reads ``mlwp_space_trait`` and ``mlwp_time_trait`` from ``ds.attrs`` on + every use (xarray caches the accessor per object, so reading them once + would go stale when attrs change). Raises ``KeyError`` when a trait is + needed but missing. Never modifies ``ds``; operations return new datasets. + + Parameters + ---------- + ds : xr.Dataset + The dataset the accessor is attached to. + """ + + def __init__(self, ds: xr.Dataset) -> None: + self._ds = ds + + def _trait(self, attr: str) -> str: + """Return the value of the trait attribute ``attr`` from ``ds.attrs``. + + Parameters + ---------- + attr : str + Name of the trait attribute to read. + + Returns + ------- + str + The trait value stored in ``ds.attrs[attr]``. + + Raises + ------ + KeyError + If the dataset has no ``attr`` attribute. + """ + try: + return self._ds.attrs[attr] + except KeyError: + raise KeyError( + f"Dataset has no '{attr}' attribute; load it with mlwp-data-loaders " + "or set it with mxalign.utils.traits." + ) from None + + @property + def _space(self) -> Space: + """The space trait of the dataset. + + Returns + ------- + Space + The space trait read from ``ds.attrs``. + + Raises + ------ + KeyError + If the dataset has no space trait attribute. + """ + return Space(self._trait(SPACE_TRAIT_ATTR)) + + @property + def _time(self) -> Time: + """The time trait of the dataset. + + Returns + ------- + Time + The time trait read from ``ds.attrs``. + + Raises + ------ + KeyError + If the dataset has no time trait attribute. + """ + return Time(self._trait(TIME_TRAIT_ATTR)) + + # --- Space predicates --- + + def is_grid(self) -> bool: + """Return whether the dataset has the GRID space trait. + + Returns + ------- + bool + ``True`` if the space trait is ``Space.GRID``. + + Raises + ------ + KeyError + If the dataset has no space trait attribute. + """ + return self._space == Space.GRID + + def is_point(self) -> bool: + """Return whether the dataset has the POINT space trait. + + Returns + ------- + bool + ``True`` if the space trait is ``Space.POINT``. + + Raises + ------ + KeyError + If the dataset has no space trait attribute. + """ + return self._space == Space.POINT + + # --- Time predicates --- + + def is_forecast(self) -> bool: + """Return whether the dataset has the FORECAST time trait. + + Returns + ------- + bool + ``True`` if the time trait is ``Time.FORECAST``. + + Raises + ------ + KeyError + If the dataset has no time trait attribute. + """ + return self._time == Time.FORECAST + + def is_observation(self) -> bool: + """Return whether the dataset has the OBSERVATION time trait. + + Returns + ------- + bool + ``True`` if the time trait is ``Time.OBSERVATION``. + + Raises + ------ + KeyError + If the dataset has no time trait attribute. + """ + return self._time == Time.OBSERVATION + + # --- Space operations --- + + def add_crs(self, crs: str | dict | ccrs.Projection) -> xr.Dataset: + """Attach a Cartopy CRS to ``ds.attrs["crs"]``. + + Parameters + ---------- + crs : str or dict or ccrs.Projection + Name of a builtin projection (key into + :data:`mxalign.utils.projections.BUILTIN`, case-insensitive), a + config dict with ``projection``, ``kws_projection`` and optionally + ``kws_globe`` keys (see + :func:`mxalign.utils.projections.create_cartopy_crs`), or a Cartopy + CRS object. + + Returns + ------- + xr.Dataset + A copy of the dataset with ``attrs["crs"]`` set. + + Raises + ------ + ValueError + If the dataset is a point dataset, or ``crs`` is a name that is + not a builtin projection. + KeyError + If the dataset has no space trait attribute, or a config dict + lacks the ``projection`` or ``kws_projection`` key. + """ + if self.is_point(): + raise ValueError("Cannot add CRS to a point dataset") + if isinstance(crs, str): + try: + crs = BUILTIN[crs.lower()] + except KeyError: + raise ValueError(f"crs: {crs} not found in supported projections") + if isinstance(crs, dict): + crs = create_cartopy_crs( + projection=crs["projection"], + kws_projection=crs["kws_projection"], + kws_globe=crs.get("kws_globe", None), + ) + return self._ds.assign_attrs({"crs": crs}) + + def add_grid_mapping(self, grid_mapping: str | dict) -> xr.Dataset: + """Attach a grid-mapping dict to ``ds.attrs["grid_mapping"]``. + + Parameters + ---------- + grid_mapping : str or dict + Name of a builtin projection (key into + :data:`mxalign.utils.projections.BUILTIN`, case-insensitive) whose + ``kws_grid`` is used, or a grid-mapping dict (``nx``, ``ny``, + ``lon_ll``, ``lat_ll``, ``dx``, ``dy``, ...). + + Returns + ------- + xr.Dataset + A copy of the dataset with ``attrs["grid_mapping"]`` set. + + Raises + ------ + ValueError + If the dataset is a point dataset, or ``grid_mapping`` is a name + that is not a builtin mapping. + KeyError + If the dataset has no space trait attribute. + """ + if self.is_point(): + raise ValueError("Cannot add grid mapping to a point dataset") + if isinstance(grid_mapping, str): + try: + grid_mapping = BUILTIN[grid_mapping.lower()]["kws_grid"] + except KeyError: + raise ValueError( + f"grid mapping: {grid_mapping} not found in supported mappings" + ) + return self._ds.assign_attrs({"grid_mapping": grid_mapping}) + + def add_xy(self, crs: str | dict | ccrs.Projection | None = None) -> xr.Dataset: + """Project ``longitude``/``latitude`` to ``xc``/``yc`` coordinates. + + Parameters + ---------- + crs : str or dict or ccrs.Projection, optional + CRS to attach first (see :meth:`add_crs`). If ``None``, the CRS + already stored in ``ds.attrs["crs"]`` is used. + + Returns + ------- + xr.Dataset + The dataset with ``xc``/``yc`` coordinates along ``grid_index`` + (grid) or ``point_index`` (point). Returned unchanged if it already + has ``xc`` and ``yc`` coordinates. + + Raises + ------ + ValueError + If no CRS is given or stored, if ``longitude``/``latitude`` are + dimensions of the dataset, or if the dataset is neither grid nor + point. + KeyError + If the dataset has no space trait attribute. + """ + ds = self.add_crs(crs) if crs is not None else self._ds + + crs_obj = ds.attrs.get("crs", None) + if crs_obj is None: + raise ValueError("No CRS provided and no CRS found in dataset attributes") + + if {"longitude", "latitude"}.issubset(ds.dims): + raise ValueError( + "Cannot add x/y coordinates to a GRID dataset that has longitude/latitude dimensions" + ) + elif {"xc", "yc"}.issubset(ds.coords): + return ds + else: + xyz = crs_obj.transform_points( + x=ds["longitude"].values, + y=ds["latitude"].values, + src_crs=ccrs.PlateCarree(), + ) + + if self.is_grid(): + return ds.assign_coords( + xc=("grid_index", xyz[:, 0]), yc=("grid_index", xyz[:, 1]) + ) + elif self.is_point(): + return ds.assign_coords( + xc=("point_index", xyz[:, 0]), yc=("point_index", xyz[:, 1]) + ) + else: + raise ValueError("Dataset does not have expected spatial properties") + + def is_stacked(self) -> bool: + """Return whether the spatial dims are already collapsed into ``grid_index``. + + Returns + ------- + bool + ``False`` if the dataset has ``xc``/``yc`` or + ``longitude``/``latitude`` dimensions, ``True`` if it has a + ``grid_index`` dimension. + + Raises + ------ + ValueError + If the dataset has none of these dimensions. + """ + if {"xc", "yc"}.issubset(self._ds.dims) or {"longitude", "latitude"}.issubset( + self._ds.dims + ): + return False + elif "grid_index" in self._ds.dims: + return True + else: + raise ValueError("Dataset does not have expected dimensions for GRID") + + def stack(self) -> xr.Dataset: + """Collapse 2-D spatial dims into a flat ``grid_index`` dimension. + + Returns + ------- + xr.Dataset + The dataset with ``yc``/``xc`` (or ``latitude``/``longitude``) + stacked into ``grid_index``; returned unchanged if already stacked. + + Raises + ------ + ValueError + If the dataset is a point dataset or has no stackable dimensions. + KeyError + If the dataset has no space trait attribute. + """ + if self.is_point(): + raise ValueError("POINT datasets cannot be stacked") + if self.is_stacked(): + return self._ds + else: + if {"xc", "yc"}.issubset(self._ds.dims): + dims_to_stack = ["yc", "xc"] + elif {"latitude", "longitude"}.issubset(self._ds.dims): + dims_to_stack = ["latitude", "longitude"] + else: + raise ValueError("Could not find correct dimensions to stack") + return self._ds.stack({"grid_index": dims_to_stack}).reset_index("grid_index") + + def unstack( + self, crs: str | dict | ccrs.Projection | None = None, **kwargs: float | None + ) -> xr.Dataset: + """Restore a flat ``grid_index`` dim to 2-D ``xc``/``yc`` dimensions. + + Grid parameters are taken from ``**kwargs`` where given, and otherwise + from ``ds.attrs["grid_mapping"]``. + + Parameters + ---------- + crs : str or dict or ccrs.Projection, optional + CRS to attach first (see :meth:`add_crs`). If not given, the CRS + already stored in ``ds.attrs["crs"]`` is used. + **kwargs : float or None + Grid parameters ``nx``, ``ny``, ``lon_ll``, ``lat_ll``, ``dx`` and + ``dy``, overriding the values in ``ds.attrs["grid_mapping"]``. + + Returns + ------- + xr.Dataset + The unstacked dataset, with ``attrs["grid_mapping"]`` set to the + grid parameters used; returned unchanged if not stacked. + + Raises + ------ + ValueError + If the dataset is a point dataset, a grid parameter is ``None``, or + ``nx * ny`` does not match the size of ``grid_index``. + KeyError + If a grid parameter is neither given nor found in + ``ds.attrs["grid_mapping"]``, or the dataset has no space trait + or ``crs`` attribute. + """ + if self.is_point(): + raise ValueError("POINT datasets cannot be unstacked") + if not self.is_stacked(): + return self._ds + else: + ds = self.add_crs(crs) if crs else self._ds + kws_mindex: dict[str, int | float] = {} + for key in ["nx", "ny", "lon_ll", "lat_ll", "dx", "dy"]: + value = kwargs.get(key) + if value is None: + try: + value = ds.attrs["grid_mapping"][key] + except KeyError: + raise KeyError( + f"Did not find a value for {key} in dataset attributes, please provide it as an argument" + ) + if value is None: + raise ValueError(f"Value for {key} cannot be None") + if key in ("nx", "ny"): + kws_mindex[key] = int(value) + else: + kws_mindex[key] = float(value) + + mindex = _create_multiindex(ds, **kws_mindex) + mcoords = xr.Coordinates.from_pandas_multiindex(mindex, "grid_index") + ds_mindex = ds.assign_coords(mcoords) + ds_mindex.attrs["grid_mapping"] = kws_mindex + return ds_mindex.unstack() + + # --- Time operations --- + + def add_valid_time(self) -> xr.Dataset: + """Add a ``valid_time`` coordinate (``reference_time + lead_time``) to forecasts. + + Returns + ------- + xr.Dataset + The dataset with a 2-D ``valid_time`` coordinate if it is a + forecast; otherwise the dataset unchanged. + + Raises + ------ + KeyError + If the dataset has no time trait attribute. + """ + if self.is_forecast(): + return _time._add_valid_time(self._ds) + return self._ds + + # --- Alignment --- + + def align_time_with( + self, + ds2: xr.Dataset, + lead_time: str | list[str | np.timedelta64] | np.timedelta64 | None = None, + ) -> xr.Dataset: + """Align this dataset's time axis to match ds2. + + Always uses "reference" semantics: self is reindexed to ds2's time + coordinates, with NaN-fill for times not present in self. ds2 is never + modified. For symmetric inner-join behaviour across multiple datasets use + the module-level ``align_time`` function instead. + + Parameters + ---------- + ds2 : xr.Dataset + The reference dataset to align to. + lead_time : str or np.timedelta64 or list, optional + For Forecast→Observation: "shortest" (default) | "longest" | specific value or list. + For Forecast→Forecast: "reference" (default) | "intersection" | "union". + Ignored for observation→* cases. + + Returns + ------- + xr.Dataset + This dataset aligned to the time coordinates of ``ds2``. + + Raises + ------ + ValueError + If the time traits cannot be matched, or ``lead_time`` is invalid + for the forecast case. + KeyError + If either dataset has no time trait attribute. + """ + if self.is_forecast() and ds2.mx.is_observation(): + return _time.align_forecast_to_observation( + self._ds, ds2, lead_time="shortest" if lead_time is None else lead_time + ) + elif self.is_observation() and ds2.mx.is_forecast(): + return _time.align_observation_to_forecast(self._ds, ds2) + elif self.is_observation() and ds2.mx.is_observation(): + return _time.align_observation_to_observation(self._ds, ds2) + elif self.is_forecast() and ds2.mx.is_forecast(): + return _time.align_forecast_to_forecast( + self._ds, ds2, lead_time="reference" if lead_time is None else lead_time + ) + else: + raise ValueError("Cannot align datasets with unknown time properties") + + def align_space_with(self, ds2: xr.Dataset, **kwargs: object) -> xr.Dataset: + """Align this dataset's spatial grid to match ds2. + + Always uses "reference" semantics: self is interpolated or reindexed to + ds2's spatial coordinates. ds2 is never modified. + + Parameters + ---------- + ds2 : xr.Dataset + The reference dataset to align to. + **kwargs : object + Passed through to the pairwise alignment function. For grid→point + alignment this includes ``method``, the interpolator name (one of + "xarray" or "delaunay", default "xarray"), with the remaining + keywords passed to the interpolator. Ignored for grid→grid. + + Returns + ------- + xr.Dataset + This dataset aligned to the spatial coordinates of ``ds2``. + + Raises + ------ + NotImplementedError + For point→point and point→grid alignment, and for grid→grid + alignment of grids that differ (regridding). + ValueError + If the space traits are not compatible. + KeyError + If either dataset has no space trait attribute. + """ + if self.is_grid(): + if ds2.mx.is_grid(): + return _space.align_grid_grid(self._ds, ds2, **kwargs) + elif ds2.mx.is_point(): + return _space.align_grid_point(self._ds, ds2, **kwargs) + elif self.is_point(): + if ds2.mx.is_point(): + raise NotImplementedError("Point-to-point alignment not implemented") + elif ds2.mx.is_grid(): + raise NotImplementedError("Point-to-grid alignment not implemented") + raise ValueError("Datasets do not have compatible spatial properties") + + +def _create_multiindex( + ds: xr.Dataset, + nx: int, + ny: int, + lon_ll: float, + lat_ll: float, + dx: float, + dy: float, + **kwargs: float, +) -> pd.MultiIndex: + """Build the ``(yc, xc)`` MultiIndex for ``ds.grid_index`` from grid parameters. + + Parameters + ---------- + ds : xr.Dataset + Stacked dataset with a ``grid_index`` dimension and a Cartopy CRS in + ``ds.attrs["crs"]``. + nx : int + Number of grid points in the x direction. + ny : int + Number of grid points in the y direction. + lon_ll : float + Longitude of the lower-left grid point. + lat_ll : float + Latitude of the lower-left grid point. + dx : float + Grid spacing in the x direction, in CRS units. + dy : float + Grid spacing in the y direction, in CRS units. + **kwargs : float + Ignored; allows passing a full grid-mapping dict. + + Returns + ------- + pd.MultiIndex + Product index of ``yc`` and ``xc`` projected coordinates. + + Raises + ------ + ValueError + If ``nx * ny`` does not match the size of ``grid_index``. + KeyError + If the dataset has no ``crs`` attribute. + """ + from pandas import MultiIndex + + if ds.sizes["grid_index"] != nx * ny: + raise ValueError( + f"Size of grid_index ({ds.sizes['grid_index']}) does not match nx*ny ({nx * ny})" + ) + + crs = ds.attrs["crs"] + x_ll, y_ll = crs.transform_point(x=lon_ll, y=lat_ll, src_crs=ccrs.PlateCarree()) + + xc = x_ll + np.arange(nx) * dx + yc = y_ll + np.arange(ny) * dy + + return MultiIndex.from_product([yc, xc], names=["yc", "xc"]) diff --git a/src/mxalign/accessors/__init__.py b/src/mxalign/accessors/__init__.py deleted file mode 100644 index a0833a3..0000000 --- a/src/mxalign/accessors/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -from . import space -from . import time - -__all__ = [ - "space", - "time", -] diff --git a/src/mxalign/accessors/space.py b/src/mxalign/accessors/space.py deleted file mode 100644 index 49ecac3..0000000 --- a/src/mxalign/accessors/space.py +++ /dev/null @@ -1,204 +0,0 @@ -import xarray as xr -import cartopy.crs as ccrs -import numpy as np - -from mlwp_data_specs.api import SPACE_TRAIT_ATTR -from mlwp_data_specs.specs.traits.spatial_coordinate import Space -from ..utils.projections import create_cartopy_crs, BUILTIN - -# Tolerance in degrees that the coordinates of two grids can differ while still being interpreted as the same grid. -# 0.0001 degrees ~ 10m at 45 deg latitude -COORD_TOLERANCE = 0.0001 - - -@xr.register_dataset_accessor("space") -class SpaceAccessor: - def __init__(self, ds): - self._space = ds.attrs[SPACE_TRAIT_ATTR] - self._ds = ds - - def is_grid(self): - return self._space == Space.GRID - - def is_point(self): - return self._space == Space.POINT - - def add_crs(self, crs): - if self.is_point(): - raise ValueError("Cannot add CRS to a point dataset") - if isinstance(crs, str): - try: - crs = BUILTIN[crs.lower()] - except KeyError: - raise ValueError("crs: {crs} not found in supported projections") - if isinstance(crs, dict): - crs = create_cartopy_crs( - projection=crs["projection"], - kws_projection=crs["kws_projection"], - kws_globe=crs.get("kws_globe", None), - ) - return self._ds.assign_attrs({"crs": crs}) - - def add_grid_mapping(self, grid_mapping: str | dict): - if self.is_point(): - raise ValueError("Cannot add grid mapping to a point dataset") - if isinstance(grid_mapping, str): - try: - grid_mapping = BUILTIN[grid_mapping.lower()]["kws_grid"] - except KeyError: - raise ValueError( - "grid mapping: {grid_mapping} not found in supported mappings" - ) - return self._ds.assign_attrs({"grid_mapping": grid_mapping}) - - def add_xy(self, crs=None): - if crs is not None: - self._ds = self.add_crs(crs) - - crs = self._ds.attrs.get("crs", None) - - if crs is None: - raise ValueError("No CRS provided and no CRS found in dataset attributes") - - if {"longitude", "latitude"}.issubset(self._ds.dims): - raise ValueError( - "Cannot add x/y coordinates to a GRID dataset that has longitude/latitude dimensions" - ) - elif {"xc", "yc"}.issubset(self._ds.coords): - return self._ds - else: - xyz = crs.transform_points( - x=self._ds["longitude"].values, - y=self._ds["latitude"].values, - src_crs=ccrs.PlateCarree(), - ) - - if self.is_grid(): - ds_out = self._ds.assign_coords( - xc=("grid_index", xyz[:, 0]), yc=("grid_index", xyz[:, 1]) - ) - elif self.is_point(): - ds_out = self._ds.assign_coords( - xc=("point_index", xyz[:, 0]), yc=("point_index", xyz[:, 1]) - ) - else: - raise ValueError("Dataset does not have expected spatial properties") - - return ds_out - - def is_stacked(self): - if {"xc", "yc"}.issubset(self._ds.dims) or {"longitude", "latitude"}.issubset( - self._ds.dims - ): - return False - elif "grid_index" in self._ds.dims: - return True - else: - raise ValueError("Dataset does not have expected dimensions for GRID") - - def stack(self): - if self.is_point(): - raise ValueError("POINT datasets cannot be stacked") - if self.is_stacked(): - return self._ds - else: - if {"xc", "yc"}.issubset(self._ds.dims): - dims_to_stack = ["yc", "xc"] - elif {"lat", "lon"}.issubset(self._ds.dims): - dims_to_stack = ["lat", "lon"] - else: - raise ValueError("Could not find correct dimensions to stack") - return self._ds.stack({"grid_index": dims_to_stack}).reset_index("grid_index") - - def unstack(self, crs=None, **kwargs): - if self.is_point(): - raise ValueError("POINT datasets cannot be unstacked") - if not self.is_stacked(): - return self._ds - else: - if crs: - self.add_crs(crs) - kws_mindex = dict.fromkeys(["nx", "ny", "lon_ll", "lat_ll", "dx", "dy"]) - for key in kws_mindex.keys(): - value = kwargs.get(key, None) - if value is None: - try: - value = self._ds.attrs["grid_mapping"][key] - except KeyError: - raise KeyError( - f"Did not find a value for {key} in the dataset attributes, please provide it as an argument" - ) - kws_mindex[key] = value - - mindex = self._create_multiindex(**kws_mindex) - mcoords = xr.Coordinates.from_pandas_multiindex(mindex, "grid_index") - ds_mindex = self._ds.assign_coords(mcoords) - ds_mindex.attrs["grid_mapping"] = kws_mindex - return ds_mindex.unstack() - - def _create_multiindex(self, nx, ny, lon_ll, lat_ll, dx, dy, **kwargs): - from pandas import MultiIndex - - if self._ds.sizes["grid_index"] != nx * ny: - raise ValueError( - f"Size of grid_index ({self._ds.sizes['grid_index']}) does not match product of nx and ny ({nx * ny})" - ) - - crs = self._ds.attrs["crs"] - x_ll, y_ll = crs.transform_point(x=lon_ll, y=lat_ll, src_crs=ccrs.PlateCarree()) - - xc = x_ll + np.arange(nx) * dx - yc = y_ll + np.arange(ny) * dy - - mindex = MultiIndex.from_product([yc, xc], names=["yc", "xc"]) - - return mindex - - def align_with(self, ds, **kwargs): - if self.is_grid(): - if ds.space.is_grid(): - return _align_grid_grid(self._ds, ds, **kwargs) - elif ds.space.is_point(): - return _align_grid_point(self._ds, ds, **kwargs) - elif self.is_point(): - if ds.space.is_point(): - return _align_point_point(self._ds, ds, **kwargs) - elif ds.space.is_grid(): - return _align_point_grid(self._ds, ds, **kwargs) - else: - raise ValueError("Datasets do not have compatible spatial properties") - - -def _align_grid_grid(ds1, ds2, **kwargs): - if np.array_equal( - ds1["longitude"].values, ds2["longitude"].values - ) and np.array_equal(ds1["latitude"].values, ds2["latitude"].values): - return ds1, ds2 - elif np.allclose( - ds1["longitude"].values, ds2["longitude"].values, atol=COORD_TOLERANCE - ) and np.allclose( - ds1["latitude"].values, ds2["latitude"].values, atol=COORD_TOLERANCE - ): - print( - f"Some lat-lon coordinates differ. But the difference is smaller than {COORD_TOLERANCE} degrees, considering both grids as equal" - ) - return ds1, ds2 - else: - raise NotImplementedError("Regridding not implemented") - - -def _align_grid_point(ds1, ds2, **kwargs): - from ..interpolations.interpolate import interpolate - - method = kwargs.pop("method", "xarray") - ds1 = interpolate(ds1, ds2, method, **kwargs) - - return ds1, ds2 - - -def _align_point_point(ds1, ds2, **kwargs): - raise NotImplementedError("Point selection not implemented") - - -def _align_point_grid(ds1, ds2, **kwargs): - raise NotImplementedError("Gridding of Point datanot implemented") diff --git a/src/mxalign/accessors/time.py b/src/mxalign/accessors/time.py deleted file mode 100644 index fb60504..0000000 --- a/src/mxalign/accessors/time.py +++ /dev/null @@ -1,181 +0,0 @@ -import xarray as xr -import numpy as np - -from mlwp_data_specs.api import TIME_TRAIT_ATTR -from mlwp_data_specs.specs.traits.time_coordinate import Time -from ..utils.traits import update_time_trait - - -@xr.register_dataset_accessor("time") -class TimeAccessor: - def __init__(self, ds): - self._time = ds.attrs[TIME_TRAIT_ATTR] - self._ds = ds - - def is_forecast(self): - return self._time == Time.FORECAST - - def is_observation(self): - return self._time == Time.OBSERVATION - - def add_valid_time(self): - if self.is_forecast(): - valid_time = ( - self._ds["reference_time"].values[:, np.newaxis] - + self._ds["lead_time"].values - ) - ds_out = self._ds.assign_coords( - {"valid_time": (["reference_time", "lead_time"], valid_time)} - ) - else: - ds_out = self._ds - return ds_out - - def align_with(self, ds, **kwargs): - if self.is_forecast(): - if ds.time.is_forecast(): - return _align_forecast_forecast(self._ds, ds, **kwargs) - elif ds.time.is_observation(): - return _align_forecast_observation(self._ds, ds, **kwargs) - elif self.is_observation(): - if ds.time.is_observation(): - return _align_observation_observation(self._ds, ds, **kwargs) - elif ds.time.is_forecast(): - return _align_observation_forecast(self._ds, ds, **kwargs) - else: - raise ValueError("Datasets do not have compatible temporal properties") - - -def _align_forecast_forecast(ds1, ds2, only_common=False): - # Align the reference times - common_reference_times = ds1.indexes["reference_time"].intersection( - ds2.indexes["reference_time"] - ) - ds1_aligned = ds1.sel(reference_time=common_reference_times) - ds2_aligned = ds2.sel(reference_time=common_reference_times) - - # Align the lead times - if only_common: - common_lead_times = ds1_aligned.indexes["lead_time"].intersection( - ds2_aligned.indexes["lead_time"] - ) - ds1_aligned = ds1_aligned.sel(lead_time=common_lead_times) - ds2_aligned = ds2_aligned.sel(lead_time=common_lead_times) - else: - non_aligning_dims = (set(ds1.dims) | set(ds2.dims)) - set(["lead_time"]) - ds1_aligned, ds2_aligned = xr.align( - ds1_aligned, ds2_aligned, join="outer", exclude=non_aligning_dims - ) - ds1_aligned = ds1_aligned.time.add_valid_time() - ds2_aligned = ds2_aligned.time.add_valid_time() - return ds1_aligned, ds2_aligned - - -def _align_forecast_observation( - ds_forecast, ds_observation, only_common=False, lead_time="start-min" -): - ds_forecast = ds_forecast.time.add_valid_time() - - # Check if reference_times are continuous - reference_time_diff = ds_forecast.reference_time.diff("reference_time").values - if not (reference_time_diff[0] == reference_time_diff).all(): - raise NotImplementedError( - "Aligning a forecast with non-continuous reference times with an observation is not implemented." - ) - if lead_time == "start-min": - min_diff = reference_time_diff[0] - ds_forecast_reduced = ds_forecast.where( - ds_forecast.lead_time < min_diff, drop=True - ) - elif lead_time == "start-max": - max_diff = ds_forecast.lead_time.max().values - reference_times = np.arange( - ds_forecast.reference_time.min().values, - ds_forecast.reference_time.max().values, - max_diff, - dtype="datetime64[ns]", - ) - ds_forecast_reduced = ds_forecast.sel(reference_time=reference_times) - else: - raise ValueError( - "Invalid value for lead_time. Expected 'start-min' or 'start-max'." - ) - - ds_forecast_stacked = ( - ds_forecast_reduced.stack(time=["reference_time", "lead_time"]) - .reset_index("time") - .swap_dims({"time": "valid_time"}) - .transpose("valid_time", ...) - ) - if only_common: - ds_forecast_aligned, ds_observation_aligned = xr.align( - ds_forecast_stacked, - ds_observation, - join="inner", - exclude=set(ds_forecast_stacked.coords) - | set(ds_observation.coords) - set(["valid_time"]), - ) - else: - ds_forecast_aligned, ds_observation_aligned = xr.align( - ds_forecast_stacked, - ds_observation, - join="outer", - exclude=set(ds_forecast_stacked.coords) - | set(ds_observation.coords) - set(["valid_time"]), - ) - ds_forecast_aligned = update_time_trait(ds_forecast_aligned, Time.OBSERVATION) - return ds_forecast_aligned, ds_observation_aligned - - -def _align_observation_observation(ds1, ds2, only_common=False): - exclude = (set(ds1.dims) | set(ds2.dims)) - set(["valid_time"]) - if only_common: - ds1_aligned, ds2_aligned = xr.align(ds1, ds2, join="inner", exclude=exclude) - else: - ds1_aligned, ds2_aligned = xr.align(ds1, ds2, join="outer", exclude=exclude) - return ds1_aligned, ds2_aligned - - -def _align_observation_forecast(ds_observation, ds_forecast, only_common=False): - ds_forecast_cut = ds_forecast.time.add_valid_time() - if ( - ds_forecast_cut.reference_time.min().values - < ds_observation.valid_time.min().values - ): - ds_forecast_cut = ds_forecast_cut.sel( - reference_time=slice(ds_observation.valid_time.min().values, None) - ) - if ds_forecast_cut.valid_time.max().values > ds_observation.valid_time.max().values: - # The forecast time-step/lead times might not always align with the maximum observation time - valid_diff = ( - ds_forecast_cut["valid_time"] - (ds_observation["valid_time"].max()) - ).isel(lead_time=-1) - last_valid_index = ( - np.abs(valid_diff.where(valid_diff <= 0, drop=True)).argmin().values - ) - max_reference_time = ds_forecast_cut.isel(reference_time=last_valid_index)[ - "reference_time" - ].values - - # max_reference_time = ds_observation.valid_time.max().values - (ds_forecast_cut.lead_time.max().values - shift) - ds_forecast_cut = ds_forecast_cut.sel( - reference_time=slice(None, max_reference_time) - ) - - ds_observation_aligned = ds_observation.sel(valid_time=ds_forecast_cut.valid_time) - ds_observation_aligned = ds_observation_aligned.transpose( - "reference_time", "lead_time", ... - ) - ds_observation_aligned = update_time_trait(ds_observation_aligned, Time.FORECAST) - if only_common: - return ds_observation_aligned, ds_forecast_cut - else: - ds_observation_aligned, ds_forecast_aligned = xr.align( - ds_observation_aligned, - ds_forecast.time.add_valid_time(), - join="outer", - exclude=(set(ds_observation_aligned.coords) | set(ds_forecast_cut.coords)) - - set(["reference_time", "lead_time"]), - ) - ds_observation_aligned["valid_time"] = ds_forecast_aligned["valid_time"] - return ds_observation_aligned, ds_forecast_aligned diff --git a/src/mxalign/align/__init__.py b/src/mxalign/align/__init__.py deleted file mode 100644 index ed4fec2..0000000 --- a/src/mxalign/align/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -from . import time -from . import space - -__all__ = [ - "time", - "space", -] diff --git a/src/mxalign/align/space.py b/src/mxalign/align/space.py deleted file mode 100644 index b18586a..0000000 --- a/src/mxalign/align/space.py +++ /dev/null @@ -1,21 +0,0 @@ -import xarray as xr - - -def align_space(datasets, reference, **kwargs): - if isinstance(datasets, (xr.Dataset, xr.DataArray)): - datasets = [datasets] - if isinstance(datasets, dict): - keys = datasets.keys() - datasets = datasets.items() - else: - keys = None - - datasets = [ds.space.align_with(reference, **kwargs)[0] for ds in datasets] - - if keys is None: - if len(datasets) == 1: - return datasets[0] - else: - return datasets - else: - return {key: value for (key, value) in zip(keys, datasets)} diff --git a/src/mxalign/align/time.py b/src/mxalign/align/time.py deleted file mode 100644 index 4653e17..0000000 --- a/src/mxalign/align/time.py +++ /dev/null @@ -1,62 +0,0 @@ -import xarray as xr - - -def align_time( - datasets: list[xr.Dataset] | dict[str, xr.Dataset], return_as: str = "forecast" -): - if isinstance(datasets, (xr.Dataset, xr.DataArray)): - datasets = [datasets] - if isinstance(datasets, dict): - keys = datasets.keys() - datasets = datasets.values() - else: - keys = None - - if return_as != "forecast": - NotImplementedError( - "Currently only temporal alignment return forecast structure is supported." - ) - - # Get the first forecast to start building the valid times - valid_times_fcst = None - valid_times_obs = None - first_fcst = True - first_obs = True - for ds in datasets: - if ds.time.is_forecast(): - if first_fcst: - valid_times_fcst = ds.time.add_valid_time()["valid_time"].to_dataset( - name="valid_times" - ) - valid_times_fcst = valid_times_fcst.assign_attrs(ds.attrs) - first_fcst = False - else: - _ds = ds.time.add_valid_time()["valid_time"].to_dataset( - name="valid_times" - ) - _ds = _ds.assign_attrs(ds.attrs) - _, valid_times_fcst = _ds.time.align_with(valid_times_fcst) - elif ds.time.is_observation(): - if first_obs: - valid_times_obs = ds["valid_time"].to_dataset(name="valid_times") - valid_times_obs = valid_times_obs.assign_attrs(ds.attrs) - first_obs = False - else: - _ds = ds["valid_time"].to_dataset(name="valid_times") - _ds = _ds.assign_attrs(ds.attrs) - _, valid_times_obs = _ds.time.align_with(valid_times_obs) - - if (valid_times_obs is None) and (valid_times_fcst is None): - raise ValueError("No observations or forecasts found") - elif valid_times_fcst is None: - valid_times = valid_times_obs - elif valid_times_obs is None: - valid_times = valid_times_fcst - else: - _, valid_times = valid_times_obs.time.align_with(valid_times_fcst) - - datasets = [ds.time.align_with(valid_times)[0] for ds in datasets] - if keys is None: - return datasets - else: - return {key: value for (key, value) in zip(keys, datasets)} diff --git a/src/mxalign/alignment/__init__.py b/src/mxalign/alignment/__init__.py new file mode 100644 index 0000000..b161cd4 --- /dev/null +++ b/src/mxalign/alignment/__init__.py @@ -0,0 +1,11 @@ +"""Temporal and spatial alignment of datasets, including interpolation methods.""" + +from . import time +from . import space +from . import interpolations + +__all__ = [ + "time", + "space", + "interpolations", +] diff --git a/src/mxalign/interpolations/__init__.py b/src/mxalign/alignment/interpolations/__init__.py similarity index 63% rename from src/mxalign/interpolations/__init__.py rename to src/mxalign/alignment/interpolations/__init__.py index 19e7e44..fe902f3 100644 --- a/src/mxalign/interpolations/__init__.py +++ b/src/mxalign/alignment/interpolations/__init__.py @@ -1,3 +1,5 @@ +"""Interpolators from grid to point datasets, registered by name.""" + from . import base from . import xarray from . import delaunay diff --git a/src/mxalign/alignment/interpolations/base.py b/src/mxalign/alignment/interpolations/base.py new file mode 100644 index 0000000..b233b92 --- /dev/null +++ b/src/mxalign/alignment/interpolations/base.py @@ -0,0 +1,76 @@ +"""Base class shared by all interpolators.""" + +import xarray as xr +from mlwp_data_specs.specs.traits.spatial_coordinate import Space +from ...utils.traits import update_space_trait + +# Attributes set by ds.mx.add_crs / add_grid_mapping that describe a source grid +GRID_ONLY_ATTRS = ("crs", "grid_mapping") + + +class BaseInterpolator: + """Base class for all interpolators. + + Subclasses must set ``name``, ``source_space``, and ``target_space``, and + implement ``_interpolate``. Subclasses must also copy ``source_dataset.attrs`` + to the output so time/uncertainty traits are preserved. + + Parameters + ---------- + target_dataset : xr.Dataset + Dataset whose spatial locations the source is interpolated to. + **options : object + Interpolator-specific options, stored as ``self.options``. + """ + + name: str = "base" + source_space: Space | None = None + target_space: Space | None = None + + def __init__(self, target_dataset: xr.Dataset, **options: object) -> None: + self.target_dataset = target_dataset + self.options = options + # TODO: Check the properties + + def interpolate( + self, source_dataset: xr.Dataset | xr.DataArray + ) -> xr.Dataset | xr.DataArray: + """Run interpolation and set the output space trait to ``target_space``. + + For point targets, the grid-only attributes ``crs`` and + ``grid_mapping`` are dropped from the output. + + Parameters + ---------- + source_dataset : xr.Dataset or xr.DataArray + Data to interpolate to the target locations. + + Returns + ------- + xr.Dataset or xr.DataArray + The interpolated data with the space trait set to ``target_space``. + """ + ds_out = self._interpolate(source_dataset) + if self.target_space == Space.POINT: + # Grid-only attrs don't apply to points (and a cartopy CRS can't be saved) + ds_out.attrs = { + k: v for k, v in ds_out.attrs.items() if k not in GRID_ONLY_ATTRS + } + return update_space_trait(ds_out, self.target_space) + + def _interpolate( + self, source_dataset: xr.Dataset | xr.DataArray + ) -> xr.Dataset | xr.DataArray: + """Perform the interpolation; subclasses must override this. + + Parameters + ---------- + source_dataset : xr.Dataset or xr.DataArray + Data to interpolate to the target locations. + + Returns + ------- + xr.Dataset or xr.DataArray + The interpolated data. + """ + pass diff --git a/src/mxalign/interpolations/delaunay.py b/src/mxalign/alignment/interpolations/delaunay.py similarity index 52% rename from src/mxalign/interpolations/delaunay.py rename to src/mxalign/alignment/interpolations/delaunay.py index d44a912..efa48c2 100644 --- a/src/mxalign/interpolations/delaunay.py +++ b/src/mxalign/alignment/interpolations/delaunay.py @@ -1,3 +1,7 @@ +"""Grid-to-point linear interpolator based on a Delaunay triangulation.""" + +import hashlib +import logging from functools import partial import numpy as np @@ -11,42 +15,73 @@ from .registry import register_interpolator from mlwp_data_specs.specs.traits.spatial_coordinate import Space -from mlwp_data_specs.api import ( - TIME_TRAIT_ATTR, - SPACE_TRAIT_ATTR, - UNCERTAINTY_TRAIT_ATTR, -) + +logger = logging.getLogger(__name__) + +# Weight matrices keyed by a hash of the full source and target coordinates. +# Module-level so they are shared across interpolator instances (the Runner +# builds one per dataset); bounded so long sessions don't accumulate them. +_WEIGHTS_CACHE: dict[tuple[str, str], csr_matrix] = {} +_WEIGHTS_CACHE_SIZE = 8 @register_interpolator class DelaunayInterpolator(BaseInterpolator): + """Linear grid-to-point interpolation via Delaunay triangulation. + + The source grid points are triangulated in (latitude, longitude) and each + target point gets barycentric weights from its enclosing triangle. The + sparse weight matrix is cached per source/target coordinate pair. Target + points outside the convex hull of the source grid get NaN. + + Parameters + ---------- + target_dataset : xr.Dataset + Point dataset with ``longitude`` and ``latitude`` coordinates. + **options : object + Interpolator options; only ``method="linear"`` (the default) is + supported. + + Raises + ------ + ValueError + If ``method`` is anything other than ``"linear"``. + """ + name = "delaunay" source_space = Space.GRID target_space = Space.POINT - def __init__(self, target_dataset, **options): + def __init__(self, target_dataset: xr.Dataset, **options: object) -> None: super().__init__(target_dataset, **options) method = self.options.get("method", "linear") - self._W_cache = {} # keyed by source grid hash if method != "linear": raise ValueError( f"Method: {method}. Delaunay interpolation only supports linear interpolation" ) - def _get_weights(self, source_points, target_points): - key = ( - source_points.shape, - source_points[0, 0], - source_points[-1, 1], - ) # cheap fingerprint - if key not in self._W_cache: - triangulation = Delaunay(source_points) - self._W_cache[key] = _build_weight_matrix( - triangulation, source_points, target_points - ) - return self._W_cache[key] + def _interpolate(self, source_dataset: xr.Dataset) -> xr.Dataset: + """Interpolate a stacked grid dataset to the target points. + + Variables whose last dimension is not ``grid_index`` are skipped. - def _interpolate(self, source_dataset): + Parameters + ---------- + source_dataset : xr.Dataset + Grid dataset with a ``grid_index`` dimension and ``latitude``/ + ``longitude`` coordinates. + + Returns + ------- + xr.Dataset + The interpolated variables along ``point_index``, with the target + ``latitude``/``longitude`` coordinates and the source attributes. + + Raises + ------ + NotImplementedError + If the source dataset has no ``grid_index`` dimension. + """ if "grid_index" not in source_dataset.dims: raise NotImplementedError( "Delaunay interpolation currently only supports stacked grids" @@ -70,7 +105,7 @@ def _interpolate(self, source_dataset): ) # Compute triangulation and sparse weight matrix ONCE, shared across all variables - W = self._get_weights(source_points, target_points) + W = _get_weights(source_points, target_points) arrays_out = {} for var in source_dataset.data_vars: @@ -87,14 +122,49 @@ def _interpolate(self, source_dataset): latitude=self.target_dataset["latitude"], longitude=self.target_dataset["longitude"], ) + ds_out.attrs.update(source_dataset.attrs) + return ds_out + + +def _fingerprint(points: np.ndarray) -> str: + """Hash a full coordinate array (~20 ms for a 1M-point grid). + + Parameters + ---------- + points : np.ndarray + Coordinate array to hash. - ds_out.attrs.update( - { - k: source_dataset.attrs[k] - for k in [TIME_TRAIT_ATTR, SPACE_TRAIT_ATTR, UNCERTAINTY_TRAIT_ATTR] - } + Returns + ------- + str + Hex digest of the array contents. + """ + return hashlib.blake2b(np.ascontiguousarray(points), digest_size=16).hexdigest() + + +def _get_weights(source_points: np.ndarray, target_points: np.ndarray) -> csr_matrix: + """Return the cached weight matrix for these points, building it on a miss. + + Parameters + ---------- + source_points : np.ndarray + Source coordinates, shape ``(n_source, 2)`` as (latitude, longitude). + target_points : np.ndarray + Target coordinates, shape ``(n_target, 2)`` as (latitude, longitude). + + Returns + ------- + csr_matrix + Sparse ``(n_target, n_source)`` barycentric weight matrix. + """ + key = (_fingerprint(source_points), _fingerprint(target_points)) + if key not in _WEIGHTS_CACHE: + if len(_WEIGHTS_CACHE) >= _WEIGHTS_CACHE_SIZE: + _WEIGHTS_CACHE.pop(next(iter(_WEIGHTS_CACHE))) # drop the oldest entry + _WEIGHTS_CACHE[key] = _build_weight_matrix( + Delaunay(source_points), source_points, target_points ) - return ds_out + return _WEIGHTS_CACHE[key] def _build_weight_matrix( @@ -102,14 +172,25 @@ def _build_weight_matrix( source_points: np.ndarray, target_points: np.ndarray, ) -> csr_matrix: + """Build a sparse ``(n_target, n_source)`` barycentric weight matrix. + + Target points outside the convex hull of the source points get NaN + weights. + + Parameters + ---------- + triangulation : Delaunay + Delaunay triangulation of ``source_points``. + source_points : np.ndarray + Source coordinates, shape ``(n_source, ndim)``. + target_points : np.ndarray + Target coordinates, shape ``(n_target, ndim)``. + + Returns + ------- + csr_matrix + Sparse ``(n_target, n_source)`` weight matrix. """ - Precompute a sparse (n_target, n_source) weight matrix from the triangulation. - - Applying W to a (n_source,) value vector gives (n_target,) interpolated values - via a simple sparse matrix multiply. Target points outside the convex hull - receive NaN weights. - """ - print("Calculating interpolation-weight matrix") n_target = len(target_points) @@ -157,18 +238,46 @@ def _build_weight_matrix( def interpolate_da( da: xr.DataArray, W: csr_matrix, target_points: np.ndarray ) -> xr.DataArray: + """Apply weight matrix ``W`` to ``da`` over its ``grid_index`` dimension. + + The computation is lazy (``map_blocks``); dask-backed inputs whose + ``grid_index`` is split over several chunks are rechunked to one chunk. + + Parameters + ---------- + da : xr.DataArray + Source data whose last dimension is ``grid_index``. + W : csr_matrix + Sparse ``(n_target, n_source)`` weight matrix. + target_points : np.ndarray + Target coordinates, shape ``(n_target, 2)``. + + Returns + ------- + xr.DataArray + Interpolated data with ``grid_index`` replaced by ``point_index``. + """ n_target = len(target_points) leading_dims = da.dims[:-1] - # Validate that grid_index is not chunked + # Delaunay needs the full source axis per block (every target point pulls + # from every source point via the sparse weight matrix). If grid_index is + # split across multiple chunks, rechunk to a single chunk before the matmul, + # and let dask re-chunk the leading dims ("auto") so blocks stay near + # ``array.chunk-size`` instead of growing by the number of grid chunks. + # ``unify_chunks`` then reconciles any leftover mismatch between the data + # array and its coords (e.g. when ``chunks="auto"`` produced different + # chunkings for reference_time on data vs. coord). if isinstance(da.data, dda.Array): grid_chunks = dict(zip(da.dims, da.chunks)).get("grid_index") if grid_chunks is not None and len(grid_chunks) > 1: - raise ValueError( - f"grid_index must not be chunked for Delaunay interpolation " - f"(found {len(grid_chunks)} chunks). Rechunk with da.chunk({{'grid_index': -1}}) " - f"or enforce this on the loading side." + logger.warning( + "Delaunay interpolation: rechunking grid_index from %d chunks to 1 " + "(required for the sparse weight matmul).", + len(grid_chunks), ) + da = da.chunk({"grid_index": -1, **{d: "auto" for d in leading_dims}}) + da = da.unify_chunks() # Build the template # Get chunking info for leading dims @@ -208,6 +317,25 @@ def interpolate_block( W: csr_matrix, target_points: np.ndarray, ) -> xr.DataArray: + """Apply the sparse weight matrix to a single block. + + Used by ``map_blocks`` inside ``interpolate_da``. + + Parameters + ---------- + block : xr.DataArray + Block of source data whose last dimension is ``grid_index``. + W : csr_matrix + Sparse ``(n_target, n_source)`` weight matrix. + target_points : np.ndarray + Target coordinates, shape ``(n_target, 2)``. + + Returns + ------- + xr.DataArray + Interpolated block with the last dimension replaced by + ``point_index``. + """ data = block.values # shape = (.., npoints) original_shape = data.shape[:-1] data_flat = data.reshape( diff --git a/src/mxalign/alignment/interpolations/interpolate.py b/src/mxalign/alignment/interpolations/interpolate.py new file mode 100644 index 0000000..ee01453 --- /dev/null +++ b/src/mxalign/alignment/interpolations/interpolate.py @@ -0,0 +1,48 @@ +"""Convenience function to interpolate datasets with a named interpolator.""" + +import xarray as xr + +from .registry import get_interpolation + + +def interpolate( + source_datasets: xr.Dataset | list[xr.Dataset] | dict[str, xr.Dataset], + target_dataset: xr.Dataset, + method: str, + **kwargs: object, +) -> xr.Dataset | list[xr.Dataset] | dict[str, xr.Dataset]: + """Interpolate one or more source datasets to ``target_dataset``. + + Parameters + ---------- + source_datasets : xr.Dataset or list of xr.Dataset or dict of str to xr.Dataset + Dataset(s) to interpolate. Each is copied before interpolation. + target_dataset : xr.Dataset + Dataset whose spatial locations the sources are interpolated to. + method : str + Name of a registered interpolator, e.g. ``"xarray"`` or ``"delaunay"``. + **kwargs : object + Options passed to the interpolator constructor. + + Returns + ------- + xr.Dataset or list of xr.Dataset or dict of str to xr.Dataset + The interpolated dataset(s), in the same container type as + ``source_datasets``. + + Raises + ------ + ValueError + If ``method`` is not a registered interpolator. + """ + interp_cls = get_interpolation(method) + interpolator = interp_cls(target_dataset, **kwargs) + + if isinstance(source_datasets, dict): + return { + key: interpolator.interpolate(ds.copy()) + for key, ds in source_datasets.items() + } + if isinstance(source_datasets, list): + return [interpolator.interpolate(ds.copy()) for ds in source_datasets] + return interpolator.interpolate(source_datasets.copy()) diff --git a/src/mxalign/alignment/interpolations/registry.py b/src/mxalign/alignment/interpolations/registry.py new file mode 100644 index 0000000..213c321 --- /dev/null +++ b/src/mxalign/alignment/interpolations/registry.py @@ -0,0 +1,59 @@ +"""Registry mapping interpolator names to interpolator classes.""" + +from .base import BaseInterpolator + +_INTERPOLATORS: dict[str, type[BaseInterpolator]] = {} + + +def register_interpolator(cls: type[BaseInterpolator]) -> type[BaseInterpolator]: + """Register an interpolator class under ``cls.name``. + + Intended for use as a class decorator. + + Parameters + ---------- + cls : type of BaseInterpolator + Interpolator class to register; must define a ``name`` attribute. + + Returns + ------- + type of BaseInterpolator + The class, unchanged. + """ + _INTERPOLATORS[cls.name] = cls + return cls + + +def available_interpolations() -> list[str]: + """Return the names of all registered interpolators. + + Returns + ------- + list of str + Names of the registered interpolators. + """ + return list(_INTERPOLATORS.keys()) + + +def get_interpolation(name: str) -> type[BaseInterpolator]: + """Return the interpolator class registered under ``name``. + + Parameters + ---------- + name : str + Name of a registered interpolator, e.g. ``"xarray"`` or ``"delaunay"``. + + Returns + ------- + type of BaseInterpolator + The registered interpolator class. + + Raises + ------ + ValueError + If ``name`` is not registered. + """ + try: + return _INTERPOLATORS[name] + except KeyError: + raise ValueError(f"Unknown interpolation: {name}") diff --git a/src/mxalign/alignment/interpolations/xarray.py b/src/mxalign/alignment/interpolations/xarray.py new file mode 100644 index 0000000..76cd9b7 --- /dev/null +++ b/src/mxalign/alignment/interpolations/xarray.py @@ -0,0 +1,127 @@ +"""Grid-to-point interpolator based on ``xarray.Dataset.interp``.""" + +from .base import BaseInterpolator +from .registry import register_interpolator +from mlwp_data_specs.specs.traits.spatial_coordinate import Space + +import xarray as xr + + +@register_interpolator +class XarrayInterpolator(BaseInterpolator): + """Interpolate a grid dataset to points with ``xarray.Dataset.interp``. + + Lat/lon-dimension grids are interpolated directly in longitude/latitude; + projected grids are interpolated in ``xc``/``yc`` after projecting the + target points with the source CRS (stacked grids are unstacked first). + + Takes the constructor arguments of :class:`BaseInterpolator`: a point + ``target_dataset`` with ``longitude`` and ``latitude`` coordinates, and + ``**options`` that are passed to ``xarray.Dataset.interp`` (e.g. + ``method``). + """ + + name = "xarray" + source_space = Space.GRID + target_space = Space.POINT + + def _interpolate(self, source_dataset: xr.Dataset) -> xr.Dataset: + """Interpolate a grid dataset to the target points. + + Parameters + ---------- + source_dataset : xr.Dataset + Grid dataset with ``longitude``/``latitude`` dimensions, ``xc``/``yc`` + dimensions, or a stacked ``grid_index`` dimension. + + Returns + ------- + xr.Dataset + The source interpolated to the target points. + + Raises + ------ + ValueError + If a stacked source cannot be unstacked, or has unexpected + dimensions. + KeyError + If a projected source has no ``crs`` attribute. + """ + if "latitude" in source_dataset.dims and "longitude" in source_dataset.dims: + ds_out = self._interpolate_from_latlon(source_dataset) + + else: + if source_dataset.mx.is_stacked(): + try: + source_dataset = source_dataset.mx.unstack() + except ValueError: + raise ValueError( + "Cannot unstack dataset, dataset must be unstacked to use xarray interpolation" + ) + ds_out = self._interpolate_from_xcyc(source_dataset) + return ds_out + + def _interpolate_from_xcyc(self, source_dataset: xr.Dataset) -> xr.Dataset: + """Interpolate a projected (xc/yc) source to target lon/lat points. + + Parameters + ---------- + source_dataset : xr.Dataset + Grid dataset with ``xc``/``yc`` dimensions and a Cartopy CRS in + ``attrs["crs"]``. + + Returns + ------- + xr.Dataset + The source interpolated along a ``point_index`` dimension, with + the target ``longitude``/``latitude`` coordinates. + + Raises + ------ + KeyError + If the source dataset has no ``crs`` attribute. + """ + import cartopy.crs as ccrs + + try: + crs = source_dataset.attrs["crs"] + except KeyError: + raise KeyError("Source dataset does not have a crs-attribute") + + xyz = crs.transform_points( + x=self.target_dataset["longitude"].values, + y=self.target_dataset["latitude"].values, + src_crs=ccrs.PlateCarree(), + ) + + x = xr.DataArray(xyz[:, 0], dims="point_index") + y = xr.DataArray(xyz[:, 1], dims="point_index") + + ds_out = source_dataset.interp(xc=x, yc=y, **self.options) + # Assign the target DataArrays (not .values) so the point_index index and + # any other point coords (e.g. station IDs) are carried over + ds_out = ds_out.assign_coords( + longitude=self.target_dataset["longitude"], + latitude=self.target_dataset["latitude"], + ) + return ds_out + + def _interpolate_from_latlon(self, source_dataset: xr.Dataset) -> xr.Dataset: + """Interpolate a lat/lon-dim source directly to target lon/lat points. + + Parameters + ---------- + source_dataset : xr.Dataset + Grid dataset with ``longitude`` and ``latitude`` dimensions. + + Returns + ------- + xr.Dataset + The source interpolated to the target points. + """ + longitude = self.target_dataset["longitude"] + latitude = self.target_dataset["latitude"] + ds_out = source_dataset.interp( + longitude=longitude, latitude=latitude, **self.options + ) + return ds_out diff --git a/src/mxalign/align/nans.py b/src/mxalign/alignment/nans.py similarity index 58% rename from src/mxalign/align/nans.py rename to src/mxalign/alignment/nans.py index e39f48b..090d7c8 100644 --- a/src/mxalign/align/nans.py +++ b/src/mxalign/alignment/nans.py @@ -1,40 +1,27 @@ +"""Propagation of NaN masks across a collection of datasets.""" + import xarray as xr import itertools -def broadcast_nans(datasets: dict | list) -> None: - """ - Broadcasts NaN values across a list of xarray Datasets by ensuring that if a value is NaN - in one dataset at a specific coordinate, it becomes NaN in all datasets at that coordinate. +def broadcast_nans( + datasets: xr.Dataset | list[xr.Dataset] | dict[str, xr.Dataset], +) -> xr.Dataset | list[xr.Dataset] | dict[str, xr.Dataset]: + """Propagate NaN masks so a NaN at a coordinate in any dataset is NaN in all. + + Operates pairwise over deep copies; only shared coordinates and variables are considered. Parameters ---------- - datasets : list[xr.Dataset] | dict[str, xr.Dataset] - A list of xarray Datasets to process. The datasets should share some common - coordinates and variables. + datasets : xr.Dataset or list of xr.Dataset or dict of str to xr.Dataset + Datasets to propagate NaNs across. A single dataset is returned as is. Returns ------- - list[xr.Dataset] | dict[str, xr.Dataset] - - - Notes - ----- - - The function operates on pairs of datasets, comparing each dataset with every other dataset - in the list. - - Only coordinate values that exist in both datasets of a pair are considered. - - Only variables that exist in both datasets of a pair are processed. - - The NaN broadcasting is performed at the intersection of coordinates between each pair - of datasets. - - Examples - -------- - >>> ds1 = xr.Dataset(...) - >>> ds2 = xr.Dataset(...) - >>> ds3 = xr.Dataset(...) - >>> broadcast_nans([ds1, ds2, ds3]) + xr.Dataset or list of xr.Dataset or dict of str to xr.Dataset + Deep copies of the input datasets with NaN masks propagated, in the + same container type as ``datasets``. """ - if isinstance(datasets, xr.Dataset): return datasets elif isinstance(datasets, dict): diff --git a/src/mxalign/alignment/space.py b/src/mxalign/alignment/space.py new file mode 100644 index 0000000..5fdf53c --- /dev/null +++ b/src/mxalign/alignment/space.py @@ -0,0 +1,132 @@ +"""Spatial alignment of datasets to a reference dataset.""" + +import numpy as np +import xarray as xr + +# Tolerance in degrees that the coordinates of two grids can differ while still +# being interpreted as the same grid. 0.0001 degrees ~ 10m at 45 deg latitude. +COORD_TOLERANCE = 0.0001 + + +def align_space( + datasets: xr.Dataset | list[xr.Dataset] | dict[str, xr.Dataset], + reference: str | xr.Dataset, + **kwargs: object, +) -> xr.Dataset | list[xr.Dataset] | dict[str, xr.Dataset]: + """Align all datasets spatially to a reference dataset. + + Each non-reference dataset is aligned via ``ds.mx.align_space_with(ref_ds)``. + Extra kwargs are forwarded to ``align_space_with`` (e.g. ``method``). + + Parameters + ---------- + datasets : xr.Dataset or list of xr.Dataset or dict of str to xr.Dataset + Single dataset, list, or dict of datasets to align. + reference : str or xr.Dataset + Key into *datasets* dict, or a dataset to align to. + **kwargs : object + Forwarded to ``ds.mx.align_space_with``. + + Returns + ------- + xr.Dataset or list of xr.Dataset or dict of str to xr.Dataset + The aligned datasets: a dict with the same keys if ``datasets`` is a + dict, otherwise a single dataset if there is only one, else a list. + The reference dataset itself is returned unchanged. + """ + if isinstance(datasets, dict): + keys = list(datasets.keys()) + ds_list = list(datasets.values()) + ref_ds = datasets[reference] if isinstance(reference, str) else reference + else: + ds_list = ( + [datasets] + if isinstance(datasets, (xr.Dataset, xr.DataArray)) + else list(datasets) + ) + keys = None + ref_ds = reference + + aligned = [ + ds if ds is ref_ds else ds.mx.align_space_with(ref_ds, **kwargs) + for ds in ds_list + ] + + if keys is not None: + return dict(zip(keys, aligned)) + return aligned[0] if len(aligned) == 1 else aligned + + +# --- Pairwise alignment (used by ``ds.mx.align_space_with``) --- + + +def align_grid_grid(ds1: xr.Dataset, ds2: xr.Dataset, **kwargs: object) -> xr.Dataset: + """Return ``ds1`` unchanged if its grid matches ``ds2``'s within ``COORD_TOLERANCE``. + + Parameters + ---------- + ds1 : xr.Dataset + Grid dataset to align. + ds2 : xr.Dataset + Reference grid dataset. + **kwargs : object + Ignored. + + Returns + ------- + xr.Dataset + ``ds1``, unchanged. + + Raises + ------ + NotImplementedError + If the ``longitude``/``latitude`` coordinates of the two grids differ + by more than ``COORD_TOLERANCE`` (regridding is not implemented). + """ + if np.array_equal( + ds1["longitude"].values, ds2["longitude"].values + ) and np.array_equal(ds1["latitude"].values, ds2["latitude"].values): + return ds1 + elif np.allclose( + ds1["longitude"].values, ds2["longitude"].values, atol=COORD_TOLERANCE + ) and np.allclose( + ds1["latitude"].values, ds2["latitude"].values, atol=COORD_TOLERANCE + ): + print( + f"Some lat-lon coordinates differ but within {COORD_TOLERANCE}°, treating as equal" + ) + return ds1 + else: + raise NotImplementedError("Regridding not implemented") + + +def align_grid_point( + ds1: xr.Dataset, ds2: xr.Dataset, method: str = "xarray", **kwargs: object +) -> xr.Dataset: + """Interpolate grid ``ds1`` to the point locations of ``ds2``. + + Parameters + ---------- + ds1 : xr.Dataset + Source grid dataset. + ds2 : xr.Dataset + Target point dataset. + method : str, default "xarray" + Name of a registered interpolator, e.g. ``"xarray"`` or ``"delaunay"``. + **kwargs : object + Options passed to the interpolator constructor. + + Returns + ------- + xr.Dataset + ``ds1`` interpolated to the points of ``ds2``. + + Raises + ------ + ValueError + If ``method`` is not a registered interpolator. + """ + from .interpolations.registry import get_interpolation + + interp_cls = get_interpolation(method) + return interp_cls(ds2, **kwargs).interpolate(ds1.copy()) diff --git a/src/mxalign/alignment/time.py b/src/mxalign/alignment/time.py new file mode 100644 index 0000000..16076f8 --- /dev/null +++ b/src/mxalign/alignment/time.py @@ -0,0 +1,446 @@ +"""Temporal alignment of forecast and observation datasets.""" + +import logging + +import numpy as np +import pandas as pd +import xarray as xr + +from mlwp_data_specs.api import TIME_TRAIT_ATTR +from mlwp_data_specs.specs.traits.time_coordinate import Time + +logger = logging.getLogger(__name__) + + +def align_time( + datasets: xr.Dataset | list[xr.Dataset] | dict[str, xr.Dataset], + reference: str | xr.Dataset, + lead_time: str | None = None, +) -> xr.Dataset | list[xr.Dataset] | dict[str, xr.Dataset]: + """Align all datasets temporally to a reference dataset. + + Two regimes: + + * **Global** — when the reference is an observation and the inputs contain + one or more forecasts. Computes a single common ``(reference_time, + lead_time)`` grid across all forecasts and aligns every dataset onto it: + + 1. ``R*`` = intersection of ``reference_time`` across all forecasts. + 2. ``L*`` = union of ``lead_time`` across all forecasts. + 3. ``R*`` is pruned to ref_times ``r`` for which **every** ``l ∈ L*`` + yields a ``valid_time`` inside the reference observation's range + ``[ref.valid_time.min(), ref.valid_time.max()]``. ``L*`` is never + pruned — keeping a long lead_time only costs an extra column in the + output (NaN where the reference doesn't reach) and avoids dropping + lead_times from forecasts that did fit. Raises if no ref_time + survives. + 4. Each forecast → ``reindex(reference_time=R*, lead_time=L*)``, + NaN-padding lead_times the forecast doesn't have, and a refreshed + ``valid_time`` coordinate. + 5. Each observation → subset to ``V* = R* + L*`` then broadcast onto + ``(R*, L*)``. Output carries the forecast time trait. + + * **Pairwise** — for every other case (reference is a forecast, or all + datasets are observations), each non-reference dataset is aligned via + ``ds.mx.align_time_with(ref_ds, lead_time=lead_time)``. The reference is + fixed. + + Parameters + ---------- + datasets : xr.Dataset or list of xr.Dataset or dict of str to xr.Dataset + Single dataset, list, or dict of datasets to align. + reference : str or xr.Dataset + Key into *datasets* dict, or an xr.Dataset to align to. + lead_time : str, optional + Only allowed when the reference is a forecast: how the lead times of + the other forecasts are matched to the reference's — ``"reference"`` + (default), ``"intersection"`` or ``"union"``. + + Returns + ------- + xr.Dataset or list of xr.Dataset or dict of str to xr.Dataset + The aligned datasets: a dict with the same keys if ``datasets`` is a + dict, otherwise a single dataset if there is only one, else a list. + + Raises + ------ + ValueError + If ``lead_time`` is given but the reference is not a forecast, if no + ``reference_time`` survives global alignment, or if a pairwise + alignment fails (e.g. an unknown ``lead_time`` option). + KeyError + If ``reference`` is not a key of ``datasets``, or a dataset has no + time trait attribute. + """ + if isinstance(datasets, dict): + keys = list(datasets.keys()) + ds_list = list(datasets.values()) + ref_ds = datasets[reference] if isinstance(reference, str) else reference + else: + ds_list = [datasets] if isinstance(datasets, xr.Dataset) else list(datasets) + keys = None + ref_ds = reference + + if lead_time is not None and not ref_ds.mx.is_forecast(): + raise ValueError( + f"lead_time={lead_time!r} is only supported when the reference is a forecast." + ) + + forecasts = [ds for ds in ds_list if ds.mx.is_forecast()] + use_global = ref_ds.mx.is_observation() and len(forecasts) > 0 + + if use_global: + aligned = _align_time_global(ds_list, forecasts, ref_ds) + else: + aligned = [ + ds if ds is ref_ds else ds.mx.align_time_with(ref_ds, lead_time=lead_time) + for ds in ds_list + ] + + if keys is not None: + return dict(zip(keys, aligned)) + return aligned[0] if len(aligned) == 1 else aligned + + +def _align_time_global( + ds_list: list[xr.Dataset], + forecasts: list[xr.Dataset], + ref_ds: xr.Dataset, +) -> list[xr.Dataset]: + """Align all datasets onto a common ``(reference_time, lead_time)`` grid. + + See the "Global" regime in :func:`align_time` for the algorithm. + + Parameters + ---------- + ds_list : list of xr.Dataset + All datasets to align, forecasts and observations. + forecasts : list of xr.Dataset + The forecast datasets among ``ds_list``. + ref_ds : xr.Dataset + Reference observation dataset bounding the valid times. + + Returns + ------- + list of xr.Dataset + The aligned datasets, in the order of ``ds_list``; all carry the + forecast time trait. + + Raises + ------ + ValueError + If no ``reference_time`` keeps all lead times within the reference + observation's ``valid_time`` range. + """ + # R* = intersection of reference_time, L* = union of lead_time. + # Pull the aligned *coord* (= the merged index) rather than the array's + # data — outer-aligning a coord-DataArray NaN-fills the data where the + # index extends, but the coord itself carries the correct union. + + r_star = xr.align(*[f.reference_time for f in forecasts], join="inner")[ + 0 + ].reference_time + l_star = xr.align(*[f.lead_time for f in forecasts], join="outer")[0].lead_time + + n_r = r_star.size + r_star = _constrain_to_reference(r_star, l_star, ref_ds.valid_time) + if r_star.size < n_r: + logger.warning( + "Global time alignment: pruned %d reference_time(s) (%d → %d) " + "whose (r + l) falls outside the reference observation's range.", + n_r - r_star.size, + n_r, + r_star.size, + ) + + # xarray broadcasts r_star (reference_time) + l_star (lead_time) → 2D + valid_time_2d = r_star + l_star + # Coordinate-only template of the common grid, used to reshape observations + grid = xr.Dataset(coords={"reference_time": r_star, "lead_time": l_star}) + + aligned = [] + for ds in ds_list: + if ds.mx.is_forecast(): + out = ds.reindex(reference_time=r_star, lead_time=l_star) + out = out.assign_coords(valid_time=valid_time_2d) + else: + out = align_observation_to_forecast(ds, grid) + aligned.append(out) + return aligned + + +def _constrain_to_reference( + r_star: xr.DataArray, + l_star: xr.DataArray, + ref_vt: xr.DataArray, +) -> xr.DataArray: + """Drop ref_times whose ``(r + l)`` falls outside the reference range. + + A ref_time ``r`` is kept only when every ``l ∈ L*`` yields a valid_time + in ``[ref_vt.min(), ref_vt.max()]``. ``L*`` is never pruned. + + Parameters + ---------- + r_star : xr.DataArray + Candidate reference times ``R*`` along ``reference_time``. + l_star : xr.DataArray + Lead times ``L*`` along ``lead_time``. + ref_vt : xr.DataArray + Valid times of the reference observation. + + Returns + ------- + xr.DataArray + The subset of ``r_star`` whose valid times all fall within range. + + Raises + ------ + ValueError + If no reference time satisfies the constraint. + """ + vt = r_star + l_star + in_range = (vt >= ref_vt.min()) & (vt <= ref_vt.max()) + rows_ok = in_range.all(dim="lead_time") + if not bool(rows_ok.any()): + raise ValueError( + "Global time alignment: no reference_time keeps all lead_times " + "within the reference observation's valid_time range." + ) + return r_star.where(rows_ok, drop=True) + + +# --- Pairwise alignment (used by ``ds.mx.align_time_with``) --- + + +def _add_valid_time(ds_fcst: xr.Dataset) -> xr.Dataset: + """Add a 2-D ``valid_time`` coordinate (``reference_time + lead_time``) to a forecast. + + Parameters + ---------- + ds_fcst : xr.Dataset + Forecast dataset with ``reference_time`` and ``lead_time`` coordinates. + + Returns + ------- + xr.Dataset + ``ds_fcst`` with a ``valid_time`` coordinate on + ``(reference_time, lead_time)``. + """ + valid_time = ( + ds_fcst["reference_time"].values[:, np.newaxis] + ds_fcst["lead_time"].values + ) + return ds_fcst.assign_coords( + {"valid_time": (["reference_time", "lead_time"], valid_time)} + ) + + +def align_forecast_to_observation( + ds_fcst: xr.Dataset, + ds_obs: xr.Dataset, + lead_time: str | list[str | np.timedelta64] | np.timedelta64 = "shortest", +) -> xr.Dataset: + """Turn a forecast into an observation-like dataset on ``ds_obs.valid_time``. + + ``ds_fcst`` is stacked to valid time, deduplicated according to the + ``lead_time`` strategy, and reindexed to ``ds_obs.valid_time``. + + Parameters + ---------- + ds_fcst : xr.Dataset + Forecast dataset with ``reference_time`` and ``lead_time``. + ds_obs : xr.Dataset + Observation dataset with a ``valid_time`` coordinate. + lead_time : str or np.timedelta64 or list, default "shortest" + ``"shortest"`` or ``"longest"`` keeps, per valid time, the entry with + the shortest/longest lead time. Otherwise one or more lead times + (timedelta-like or strings such as ``"6h"``) to keep. Ties for the + same valid time are resolved by keeping the first entry. + + Returns + ------- + xr.Dataset + Dataset with a ``valid_time`` dimension matching ``ds_obs`` (NaN where + the forecast has no data) and the observation time trait. + + Raises + ------ + ValueError + If ``lead_time`` is not a valid option, lacks a unit, or contains lead + times not present in the forecast. + """ + ds_with_vt = _add_valid_time(ds_fcst) + ds_stacked = ds_with_vt.stack(time=["reference_time", "lead_time"]).reset_index( + "time" + ) + + vt_vals = ds_stacked.valid_time.values + lt_vals = ds_stacked.lead_time.values + + if isinstance(lead_time, str) and lead_time in ("shortest", "longest"): + df = pd.DataFrame({"vt": vt_vals, "lt": lt_vals}) + agg = "min" if lead_time == "shortest" else "max" + is_candidate = (df.groupby("vt")["lt"].transform(agg) == df["lt"]).values + else: + requested = _parse_lead_times(lead_time) + missing = np.setdiff1d(requested, lt_vals) + if missing.size: + raise ValueError( + f"lead_time(s) {pd.to_timedelta(missing).tolist()} not in forecast " + f"lead times {pd.to_timedelta(np.unique(lt_vals)).tolist()}" + ) + is_candidate = np.isin(lt_vals, requested) + + # Among candidate entries keep the first per valid_time (handles ties: the + # same valid_time reached via several reference_times) + candidate_positions = np.where(is_candidate)[0] + _, first_in_group = np.unique(vt_vals[candidate_positions], return_index=True) + positions = candidate_positions[first_in_group] + + ds_1d = ds_stacked.isel(time=positions) + ds_1d = ds_1d.swap_dims({"time": "valid_time"}) + ds_1d = ds_1d.drop_vars( + [v for v in ["reference_time", "lead_time", "time"] if v in ds_1d.coords] + ) + ds_1d = ds_1d.transpose("valid_time", ...) + + ds_1d = ds_1d.reindex(valid_time=ds_obs.valid_time) + ds_1d.attrs[TIME_TRAIT_ATTR] = Time.OBSERVATION.value + return ds_1d + + +def _parse_lead_times( + lead_time: str | list[str | np.timedelta64] | np.timedelta64, +) -> np.ndarray: + """Convert one or more lead times to a ``timedelta64[ns]`` array. + + Parameters + ---------- + lead_time : str or np.timedelta64 or list + One or more lead times, as timedelta-like values or strings such as + ``"6h"``. + + Returns + ------- + np.ndarray + 1-D array of lead times with dtype ``timedelta64[ns]``. + + Raises + ------ + ValueError + If a lead time is a bare number without unit, or cannot be parsed. + """ + values = np.atleast_1d(np.asarray(lead_time, dtype=object)) + # np.timedelta64 subclasses np.number, so exclude it explicitly + if any( + isinstance(v, (int, float, np.number)) and not isinstance(v, np.timedelta64) + for v in values + ): + raise ValueError( + f"lead_time {lead_time!r} needs a unit, e.g. '6h' or np.timedelta64(6, 'h')." + ) + try: + return pd.to_timedelta(values).to_numpy().astype("timedelta64[ns]") + except ValueError: + raise ValueError( + f"Unknown lead_time option for F→O alignment: {lead_time!r}. Use " + "'shortest', 'longest', or one or more lead times such as '6h'." + ) from None + + +def align_observation_to_forecast( + ds_obs: xr.Dataset, ds_fcst: xr.Dataset +) -> xr.Dataset: + """Broadcast 1-D observations onto the ``(reference_time, lead_time)`` forecast grid. + + Observations are selected at the forecast valid times + (``reference_time + lead_time``), NaN-filled where missing. + + Parameters + ---------- + ds_obs : xr.Dataset + Observation dataset with a ``valid_time`` dimension. + ds_fcst : xr.Dataset + Forecast dataset (or coordinate template) with ``reference_time`` and + ``lead_time``. + + Returns + ------- + xr.Dataset + Observations on ``(reference_time, lead_time)``, with the forecast + time trait. + """ + ds_fcst_with_vt = _add_valid_time(ds_fcst) + valid_time_2d = ds_fcst_with_vt["valid_time"] # shape (reference_time, lead_time) + + # Reindex obs onto all unique fcst valid_times (NaN-fills fcst valid_times not in obs) + fcst_vt_flat = np.unique(valid_time_2d.values.ravel()) + obs_reindexed = ds_obs.reindex(valid_time=fcst_vt_flat) + + # sel with a 2D DataArray indexer broadcasts 1D obs → (reference_time, lead_time) + ds_out = obs_reindexed.sel(valid_time=valid_time_2d) + + ds_out.attrs[TIME_TRAIT_ATTR] = Time.FORECAST.value + return ds_out + + +def align_observation_to_observation(ds1: xr.Dataset, ds2: xr.Dataset) -> xr.Dataset: + """Reindex ``ds1`` to ``ds2.valid_time`` with NaN-fill for missing times. + + Parameters + ---------- + ds1 : xr.Dataset + Observation dataset to align. + ds2 : xr.Dataset + Reference observation dataset. + + Returns + ------- + xr.Dataset + ``ds1`` reindexed to the valid times of ``ds2``. + """ + return ds1.reindex(valid_time=ds2.valid_time) + + +def align_forecast_to_forecast( + ds1: xr.Dataset, ds2: xr.Dataset, lead_time: str = "reference" +) -> xr.Dataset: + """Reindex ``ds1`` to ``ds2.reference_time`` and align lead times by a strategy. + + Parameters + ---------- + ds1 : xr.Dataset + Forecast dataset to align. + ds2 : xr.Dataset + Reference forecast dataset. + lead_time : str, default "reference" + ``"reference"`` reindexes to the lead times of ``ds2``, + ``"intersection"`` keeps only lead times shared by both, and + ``"union"`` reindexes to the lead times of either. + + Returns + ------- + xr.Dataset + ``ds1`` aligned to ``ds2`` with a refreshed ``valid_time`` coordinate. + + Raises + ------ + ValueError + If ``lead_time`` is not one of the supported options. + """ + ds_out = ds1.reindex(reference_time=ds2.reference_time) + + if lead_time == "reference": + ds_out = ds_out.reindex(lead_time=ds2.lead_time) + elif lead_time == "intersection": + common_lt = np.intersect1d(ds_out.lead_time.values, ds2.lead_time.values) + ds_out = ds_out.sel(lead_time=common_lt) + elif lead_time == "union": + all_lt = np.union1d(ds_out.lead_time.values, ds2.lead_time.values) + ds_out = ds_out.reindex(lead_time=all_lt) + else: + raise ValueError(f"Unknown lead_time option for F→F alignment: {lead_time!r}") + + # Refresh valid_time + if "valid_time" in ds_out.coords: + ds_out = ds_out.drop_vars("valid_time") + return _add_valid_time(ds_out) diff --git a/src/mxalign/interpolations/base.py b/src/mxalign/interpolations/base.py deleted file mode 100644 index 5134a44..0000000 --- a/src/mxalign/interpolations/base.py +++ /dev/null @@ -1,29 +0,0 @@ -import xarray as xr -from mlwp_data_specs.specs.traits.spatial_coordinate import Space -from ..utils.traits import update_space_trait - - -class BaseInterpolator: - """Base class for all interpolators.""" - - name: str = "base" - source_space: Space | None = None - target_space: Space | None = None - - def __init__(self, target_dataset, **options): - self.target_dataset = target_dataset - self.options = options - # TODO: Check the properties - - # def supports(self, src: Properties, tgt: Properties): - - def interpolate( - self, source_dataset: xr.Dataset | xr.DataArray - ) -> xr.Dataset | xr.DataArray: - ds_out = self._interpolate(source_dataset) - return update_space_trait(ds_out, self.target_space) - - def _interpolate( - self, source_dataset: xr.Dataset | xr.DataArray - ) -> xr.Dataset | xr.DataArray: - pass diff --git a/src/mxalign/interpolations/interpolate.py b/src/mxalign/interpolations/interpolate.py deleted file mode 100644 index bf2efab..0000000 --- a/src/mxalign/interpolations/interpolate.py +++ /dev/null @@ -1,29 +0,0 @@ -from .registry import get_interpolation - - -def interpolate(source_datasets, target_dataset, method, **kwargs): - interp_cls = get_interpolation(method) - interpolator = interp_cls(target_dataset, **kwargs) - - if isinstance(source_datasets, dict): - keys = list(source_datasets.keys()) - datasets = list(source_datasets.values()) - else: - if not isinstance(source_datasets, list): - datasets = [source_datasets] - keys = None - - if keys: - interpolated_datasets = dict() - for key, ds in zip(keys, datasets): - interpolated_datasets[key] = interpolator.interpolate(ds.copy()) - else: - interpolated_datasets = [] - for ds in datasets: - interpolated_datasets.append(interpolator.interpolate(ds.copy())) - interpolated_datasets = ( - interpolated_datasets[0] - if len(interpolated_datasets) == 1 - else interpolated_datasets - ) - return interpolated_datasets diff --git a/src/mxalign/interpolations/registry.py b/src/mxalign/interpolations/registry.py deleted file mode 100644 index 0d02a3a..0000000 --- a/src/mxalign/interpolations/registry.py +++ /dev/null @@ -1,17 +0,0 @@ -_INTERPOLATORS = {} - - -def register_interpolator(cls): - _INTERPOLATORS[cls.name] = cls - return cls - - -def available_interpolations(): - return list(_INTERPOLATORS.keys()) - - -def get_interpolation(name): - try: - return _INTERPOLATORS[name] - except KeyError: - raise ValueError(f"Unknown interpolation: {name}") diff --git a/src/mxalign/interpolations/xarray.py b/src/mxalign/interpolations/xarray.py deleted file mode 100644 index 8fd220d..0000000 --- a/src/mxalign/interpolations/xarray.py +++ /dev/null @@ -1,63 +0,0 @@ -from .base import BaseInterpolator -from .registry import register_interpolator -from mlwp_data_specs.specs.traits.spatial_coordinate import Space - -import xarray as xr - - -@register_interpolator -class XarrayInterpolator(BaseInterpolator): - name = "xarray" - source_space = Space.GRID - target_space = Space.POINT - - def _interpolate(self, source_dataset): - - if "latitude" in source_dataset.dims and "longitude" in source_dataset.dims: - ds_out = self._interpolate_from_latlon(source_dataset) - - else: - if source_dataset.space.is_stacked(): - try: - source_dataset = source_dataset.space.unstack() - except ValueError: - raise ValueError( - "Cannot unstack dataset, dataset must be unstacked to use xarray interpolation" - ) - ds_out = self._interpolate_from_xcyc(source_dataset) - return ds_out - - def _interpolate_from_xcyc(self, source_dataset): - import cartopy.crs as ccrs - - try: - crs = source_dataset.attrs["crs"] - except KeyError: - raise KeyError("Source dataset does not have a crs-attribute") - - xyz = crs.transform_points( - x=self.target_dataset["longitude"].values, - y=self.target_dataset["latitude"].values, - src_crs=ccrs.PlateCarree(), - ) - - x = xr.DataArray(xyz[:, 0], dims="point_index") - - y = xr.DataArray(xyz[:, 1], dims="point_index") - - ds_out = source_dataset.interp(xc=x, yc=y, **self.options) - # ).assing_coords( - # longitude=self.target_dataset["longitude"], - # latitude=self.target_dataset["latitude"] - # ) - - return ds_out - - def _interpolate_from_latlon(self, source_dataset): - longitude = self.target_dataset["longitude"] - latitude = self.target_dataset["latitude"] - ds_out = source_dataset.interp( - longitude=longitude, latitude=latitude, **self.options - ) - - return ds_out diff --git a/src/mxalign/loaders/__init__.py b/src/mxalign/loaders/__init__.py deleted file mode 100644 index 329bfa3..0000000 --- a/src/mxalign/loaders/__init__.py +++ /dev/null @@ -1,13 +0,0 @@ -from . import anemoi_datasets -from . import anemoi_inference -from . import harp_obstable -from . import ifs_forecast -from . import base - -__all__ = [ - "anemoi_datasets", - "anemoi_inference", - "ifs_forecast", - "harp_obstable", - "base", -] diff --git a/src/mxalign/pipeline/__init__.py b/src/mxalign/pipeline/__init__.py new file mode 100644 index 0000000..492ff6a --- /dev/null +++ b/src/mxalign/pipeline/__init__.py @@ -0,0 +1,7 @@ +"""Config-driven pipeline: loading, transforming, aligning and verifying datasets.""" + +from . import transformations + +__all__ = [ + "transformations", +] diff --git a/src/mxalign/cli.py b/src/mxalign/pipeline/cli.py similarity index 79% rename from src/mxalign/cli.py rename to src/mxalign/pipeline/cli.py index 73dafe3..6d2dfd4 100644 --- a/src/mxalign/cli.py +++ b/src/mxalign/pipeline/cli.py @@ -1,6 +1,8 @@ +"""Command-line interface for running the pipeline on a local or SLURM dask cluster.""" + import argparse -import sys import logging +import sys # Define log format LOG_FORMAT = "%(asctime)s - %(levelname)s - %(message)s" @@ -8,10 +10,24 @@ LOG = logging.getLogger(__name__) -def run_local(args): +def run_local(args: argparse.Namespace) -> None: + """Run the pipeline on a local dask cluster. + + Parameters + ---------- + args : argparse.Namespace + Parsed arguments with ``CONFIG``, ``n_workers`` and + ``threads_per_worker``. + + Raises + ------ + SystemExit + With exit code 1 if the pipeline fails; the cluster is closed first. + """ # Only import the necessary modules if function is called # to avoid unnecessary slow imports at the top level from dask.distributed import Client, LocalCluster + from .runner import Runner cluster = LocalCluster( @@ -31,11 +47,25 @@ def run_local(args): sys.exit(1) -def run_slurm(args): +def run_slurm(args: argparse.Namespace) -> None: + """Run the pipeline on a dask cluster of SLURM jobs. + + Parameters + ---------- + args : argparse.Namespace + Parsed arguments with ``CONFIG``, ``queue``, ``account``, ``cores``, + ``memory`` and ``interface``. + + Raises + ------ + SystemExit + With exit code 1 if the pipeline fails; the cluster is closed first. + """ # Only import the necessary modules if function is called # to avoid unnecessary slow imports at the top level from dask.distributed import Client from dask_jobqueue import SLURMCluster + from .runner import Runner cluster = SLURMCluster( @@ -69,8 +99,15 @@ def run_slurm(args): sys.exit(1) -def main(): +def main() -> None: + """Parse the command line and run the selected subcommand. + Raises + ------ + SystemExit + If the arguments are invalid, the command is unknown, or the + pipeline fails. + """ parser = argparse.ArgumentParser(description="mxalign CLI") subparsers = parser.add_subparsers( dest="command", required=True, help="Available commands" diff --git a/src/mxalign/pipeline/config.py b/src/mxalign/pipeline/config.py new file mode 100644 index 0000000..720471c --- /dev/null +++ b/src/mxalign/pipeline/config.py @@ -0,0 +1,301 @@ +"""Schema for the pipeline YAML config. + +Sections and keys not listed here are rejected, except where a model allows +extra keys (``extra="allow"``); those are passed on as keyword arguments to +the function the section configures (loader, transformation, metric, save). +""" + +from datetime import datetime +from typing import Literal + +import yaml +from pydantic import BaseModel, ConfigDict, model_validator + +from .dates import Dates + + +class _Strict(BaseModel): + """Base model that rejects unknown keys.""" + + model_config = ConfigDict(extra="forbid") + + +class _PassThrough(BaseModel): + """Model whose unknown keys are kept in ``model_extra`` as function kwargs.""" + + model_config = ConfigDict(extra="allow") + + @property + def kwargs(self) -> dict: + """Return the extra (unknown) keys of the model as a keyword-argument dict. + + Returns + ------- + dict + A copy of ``model_extra``; empty if there are no extra keys. + """ + return dict(self.model_extra or {}) + + +class DatesConfig(_Strict): + """Date range used to expand date placeholders in ``files`` patterns. + + The placeholders are ``{reference_time}``, ``{lead_time}`` and + ``{valid_time}``. Every field is optional so a dataset can override part + of the top-level ``dates`` section; after merging, all five must be set. + + Attributes + ---------- + start : datetime or str or None + First reference time of the range. + end : datetime or str or None + Last reference time of the range. + period : str or None + Step between successive reference times (e.g. ``"1D"``). + range : str or None + Forecast horizon; lead times run from 0 to ``range`` inclusive. + step : str or None + Increment between lead times (e.g. ``"1h"``). + """ + + start: datetime | str | None = None + end: datetime | str | None = None + period: str | None = None + range: str | None = None + step: str | None = None + + +class DatasetConfig(_PassThrough): + """One entry of ``datasets``; extra keys go to ``load_and_validate_dataset``. + + Attributes + ---------- + loader : str + Name of the ``mlwp_data_loaders`` loader used to open the files. + files : str or list of str + File path(s) or path pattern(s); patterns are expanded over ``dates``. + variables : str or list of str or None + Variable(s) to keep after loading; all variables if None. + grid_mapping : str or dict or None + Grid mapping (CRS) to attach to the dataset; none if None. + dates : DatesConfig or None + Dataset-specific date range, merged over the top-level ``dates``. + """ + + loader: str + files: str | list[str] + variables: str | list[str] | None = None + grid_mapping: str | dict | None = None + dates: DatesConfig | None = None + + +class TransformationConfig(_PassThrough): + """One entry of ``transformations``; extra keys go to the transformation. + + Entries are keyed by transformation name. + + Attributes + ---------- + datasets : list of str or None + Names of the datasets to transform; all datasets if None. + """ + + datasets: list[str] | None = None + + +class TimeAlignmentConfig(_Strict): + """Options for the time alignment step. + + Attributes + ---------- + lead_time : str or list of str or None + How lead times of the other forecasts are matched to the reference + forecast (``"reference"``, ``"intersection"`` or ``"union"``); passed + on to :func:`mxalign.align_time`. + """ + + lead_time: str | list[str] | None = None + + +class SpaceAlignmentConfig(_Strict): + """Interpolator/regridder kwargs, chosen by the kind of space alignment needed. + + Attributes + ---------- + interpolation : dict or None + Keyword arguments used when a grid is interpolated to points. + regrid : dict or None + Keyword arguments used when a grid is regridded to another grid. + """ + + interpolation: dict | None = None + regrid: dict | None = None + + +class SaveConfig(_PassThrough): + """Output for ``ds.(path, **kwargs)``; extra keys go to the save method. + + Attributes + ---------- + method : str + Name of the dataset method used to save (e.g. ``"to_netcdf"``). + path : str + Output path, possibly containing placeholders. + """ + + method: str + path: str + + +class AlignmentSaveConfig(SaveConfig): + """Output settings for the aligned datasets. + + Attributes + ---------- + method : str + Name of the dataset method used to save (e.g. ``"to_netcdf"``). + path : str + Output path pattern; may contain ``{name}``, ``{year}``, ``{month}`` + and ``{day}`` placeholders. + datasets : {"all", "merge"} + Save each dataset separately (``"all"``) or concatenated along a new + ``model`` dimension (``"merge"``). + """ + + datasets: Literal["all", "merge"] = "all" + + +class AlignmentConfig(_Strict): + """The ``alignment`` section of the pipeline config. + + Attributes + ---------- + reference : str + Name of the dataset that the others are aligned to. + broadcast_nans : bool + Whether to broadcast NaNs across all datasets after alignment. + time : TimeAlignmentConfig or None + Options for time alignment (always performed). + space : SpaceAlignmentConfig or None + Options for space alignment; skipped if None. + save : AlignmentSaveConfig or None + Where to save the aligned datasets; not saved if None. + """ + + reference: str + broadcast_nans: bool = True + time: TimeAlignmentConfig | None = None + space: SpaceAlignmentConfig | None = None + save: AlignmentSaveConfig | None = None + + +class MetricConfig(_PassThrough): + """One entry of ``verification.metrics``; extra keys go to the metric function. + + Attributes + ---------- + function : str + Dotted import path of the metric function. + inputs : dict of {str : {"forecast", "reference"}} + Mapping of function argument names to the dataset role passed to them. + """ + + function: str + inputs: dict[str, Literal["forecast", "reference"]] + + +class VerificationConfig(_Strict): + """The ``verification`` section of the pipeline config. + + Attributes + ---------- + reference : str + Name of the dataset used as reference for the metrics. + metrics : dict of {str : MetricConfig} or None + Metrics to compute, keyed by metric name. + save : SaveConfig or None + Where to save the computed metrics; not saved if None. + """ + + reference: str + metrics: dict[str, MetricConfig] | None = None + save: SaveConfig | None = None + + +class PipelineConfig(_Strict): + """Top-level pipeline config. + + Attributes + ---------- + dates : DatesConfig or None + Default date range used to expand dataset ``files`` patterns. + datasets : dict of {str : DatasetConfig} + Datasets to load, keyed by name. + transformations : dict of {str : TransformationConfig} or None + Transformations to apply, keyed by transformation name. + alignment : AlignmentConfig + Alignment settings. + verification : VerificationConfig or None + Verification settings; verification is skipped if None. + """ + + dates: DatesConfig | None = None + datasets: dict[str, DatasetConfig] + transformations: dict[str, TransformationConfig] | None = None + alignment: AlignmentConfig + verification: VerificationConfig | None = None + + @model_validator(mode="after") + def _expand_files(self) -> "PipelineConfig": + """Expand each dataset's ``files`` pattern(s) over its (merged) ``dates``. + + Returns + ------- + PipelineConfig + The config itself, with ``files`` of each dataset that has dates + replaced by the expanded list of paths. + + Raises + ------ + ValueError + If the merged ``dates`` of a dataset are non-empty but incomplete. + """ + top = self.dates.model_dump(exclude_none=True) if self.dates else {} + for name, ds in self.datasets.items(): + own = ds.dates.model_dump(exclude_none=True) if ds.dates else {} + dates = {**top, **own} + if not dates: + continue + missing = set(DatesConfig.model_fields) - dates.keys() + if missing: + raise ValueError( + f"datasets.{name}: dates is missing {', '.join(sorted(missing))}" + ) + patterns = [ds.files] if isinstance(ds.files, str) else ds.files + dates = Dates(**dates) + ds.files = [path for p in patterns for path in dates.substitute(p)] + return self + + +def load_config(config: str | dict) -> PipelineConfig: + """Validate a pipeline config given as a YAML file path or a dict. + + Parameters + ---------- + config : str or dict + Path to a YAML config file, or the already-parsed config. + + Returns + ------- + PipelineConfig + The validated config. + + Raises + ------ + pydantic.ValidationError + If the config does not match the schema. + """ + if isinstance(config, str): + with open(config, "r") as f: + config = yaml.safe_load(f) + return PipelineConfig.model_validate(config) diff --git a/src/mxalign/pipeline/dates.py b/src/mxalign/pipeline/dates.py new file mode 100644 index 0000000..499bb29 --- /dev/null +++ b/src/mxalign/pipeline/dates.py @@ -0,0 +1,104 @@ +"""Expansion of date-templated file path patterns over reference and lead times.""" + +import itertools +import re +import string +from datetime import datetime + +import numpy as np +import pandas as pd + +HOUR = pd.Timedelta("1h") + + +class Dates: + """Enumerate reference and lead times over a regular date range. + + Parameters + ---------- + start : str or datetime or np.datetime64 + First reference time of the range. + end : str or datetime or np.datetime64 + Last reference time of the range. + period : str or np.timedelta64 + Step between successive reference times (e.g. ``"1D"``). + range : str or np.timedelta64 + Forecast horizon — lead times run from 0 to ``range`` inclusive. + step : str or np.timedelta64 + Increment between lead times (e.g. ``"1h"``). + """ + + def __init__( + self, + start: str | datetime | np.datetime64, + end: str | datetime | np.datetime64, + period: str | np.timedelta64, + range: str | np.timedelta64, + step: str | np.timedelta64, + ) -> None: + self.reference_times = pd.date_range(start, end, freq=pd.Timedelta(period)) + self.lead_times = pd.timedelta_range( + pd.Timedelta(0), pd.Timedelta(range), freq=pd.Timedelta(step) + ) + + def substitute(self, path: str) -> list[str]: + """Expand ``path`` over all (reference_time, lead_time) pairs. + + Parameters + ---------- + path : str + Path pattern in :meth:`str.format` syntax with the fields + ``reference_time`` and ``valid_time`` (datetimes, e.g. + ``{reference_time:%Y%m%d%H}``) and ``lead_time`` (integer hours, + e.g. ``{lead_time:03d}``). + + Returns + ------- + list of str + Sorted unique expanded paths. + + Raises + ------ + ValueError + If ``path`` uses ``{lead_time}`` and a lead time is not a whole + number of hours. + """ + fields = _field_names(path) + if "lead_time" in fields and (self.lead_times % HOUR != pd.Timedelta(0)).any(): + raise ValueError( + "{lead_time} is formatted in whole hours, so step must be a multiple of 1h." + ) + # Only loop over lead times when the path depends on them + lead_times = ( + self.lead_times + if fields & {"lead_time", "valid_time"} + else self.lead_times[:1] + ) + paths = { + path.format( + reference_time=ref, lead_time=lead // HOUR, valid_time=ref + lead + ) + for ref, lead in itertools.product(self.reference_times, lead_times) + } + return sorted(paths) + + +def _field_names(path: str) -> set[str]: + """Return the top-level replacement field names used in a format pattern. + + Parameters + ---------- + path : str + Pattern in :meth:`str.format` syntax. + + Returns + ------- + set of str + Field names, with attribute access and indexing stripped (e.g. + ``{a.b}`` and ``{a[0]}`` both give ``"a"``). + """ + return { + re.split(r"[.\[]", name)[0] + for _, name, _, _ in string.Formatter().parse(path) + if name + } diff --git a/src/mxalign/pipeline/runner.py b/src/mxalign/pipeline/runner.py new file mode 100644 index 0000000..c7bae49 --- /dev/null +++ b/src/mxalign/pipeline/runner.py @@ -0,0 +1,235 @@ +"""Runner that executes the config-driven load, transform, align and verify pipeline.""" + +import os + +import xarray as xr +from mlwp_data_loaders import load_and_validate_dataset + +from ..alignment.nans import broadcast_nans +from ..alignment.time import align_time +from .config import ( + PipelineConfig, + SpaceAlignmentConfig, + TimeAlignmentConfig, + load_config, +) +from .save import save_dataset, save_metrics +from .transformations.transform import transform +from .verification import Metric + + +class Runner: + """Run the verification pipeline described by a pipeline config. + + Parameters + ---------- + config : str or dict + Path to a YAML config file, or the already-parsed config; validated + with :func:`load_config`. + """ + + def __init__(self, config: str | dict) -> None: + self.config: PipelineConfig = load_config(config) + self.datasets = {} + + def run(self) -> None: + """Load, transform, align and verify the datasets.""" + # 1. Load the datasets + self.load_datasets() + + # 2. Transform the datasets + self.transform_datasets() + self.align() + self.verify() + + def load_datasets(self) -> None: + """Load every configured dataset into ``self.datasets``. + + Missing files are skipped with a message. Optionally selects the + configured variables and attaches the configured grid mapping. + """ + for name, config_ds in self.config.datasets.items(): + variables = config_ds.variables + grid_mapping = config_ds.grid_mapping + + raw_files = config_ds.files + if isinstance(raw_files, str): + raw_files = [raw_files] + files = [] + for file in raw_files: + if os.path.exists(file): + files.append(file) + else: + print(f"File: {file} is missing, skipping.") + dataset_path = files[0] if len(files) == 1 else files + + ds = load_and_validate_dataset( + dataset_path, + loader=config_ds.loader, + **config_ds.kwargs, + ) + + if variables is not None: + ds = ds[[variables] if isinstance(variables, str) else list(variables)] + if grid_mapping is not None: + ds = ds.mx.add_crs(grid_mapping) + ds = ds.mx.add_grid_mapping(grid_mapping) + + self.datasets[name] = ds + + def transform_datasets(self) -> None: + """Apply the configured transformations to the loaded datasets. + + Each transformation is applied to the datasets it lists, or to all + datasets if it lists none. + """ + if self.config.transformations is None: + return + for transformation, config_trans in self.config.transformations.items(): + # if no datasets specified, apply to all datasets + names_ds = config_trans.datasets + if names_ds is None: + names_ds = self.datasets.keys() + for name in names_ds: + ds = self.datasets[name] + self.datasets[name] = transform( + name=transformation, datasets=ds, **config_trans.kwargs + ) + + def align(self) -> None: + """Align the datasets in time and space to the reference dataset. + + Afterwards NaNs are optionally broadcast across datasets and the + aligned datasets are optionally saved, as configured. + """ + config = self.config.alignment + reference = config.reference + + # align in time (always; the time section only holds options) + self.align_time(config.time, reference_name=reference) + + # align in space + if config.space is not None: + self.align_space(reference=reference, config=config.space) + else: + print("Skipping spatial alignment") + + # broadcast NaNs + if config.broadcast_nans: + self.datasets = broadcast_nans(self.datasets) + + # Save aligned datasets + if config.save is not None: + save = config.save + kwargs = {"path": save.path, **save.kwargs} + if save.datasets == "all": + for name, ds in self.datasets.items(): + save_dataset(save.method, name, ds, **kwargs) + elif save.datasets == "merge": + ds = xr.concat( + self.datasets.values(), + dim=xr.Variable("model", list(self.datasets.keys())), + ) + save_dataset(save.method, "merged", ds, **kwargs) + + def verify(self) -> None: + """Compute the configured metrics against the reference dataset. + + The metrics are computed for every non-reference dataset on the + variables common to all datasets, stored in ``self.metrics`` with + ``model`` and ``metric`` dimensions, and optionally saved. + """ + config = self.config.verification + if config is None: + return + reference = self.datasets[config.reference] + + common_vars = set(reference.data_vars) + for ds in self.datasets.values(): + common_vars.intersection_update(set(ds.data_vars)) + common_vars = list(common_vars) + + if config.metrics: + metrics = {} + for metric_name, config_metric in config.metrics.items(): + metric = Metric( + name=metric_name, + func_path=config_metric.function, + ds_ref=reference[common_vars], + inputs=config_metric.inputs, + **config_metric.kwargs, + ) + models = {} + for ds_name, ds in self.datasets.items(): + if ds_name != config.reference: + models[ds_name] = metric.compute(ds[common_vars]) + models = xr.concat( + models.values(), dim=xr.Variable("model", list(models.keys())) + ) + metrics[metric.name] = models + metrics = xr.concat( + metrics.values(), dim=xr.Variable("metric", list(metrics.keys())) + ) + self.metrics = metrics.transpose("model", "metric", ...).compute() + + if config.save is not None: + save = config.save + save_metrics(save.method, self.metrics, path=save.path, **save.kwargs) + + def align_time( + self, config: TimeAlignmentConfig | None, reference_name: str | None = None + ) -> None: + """Align ``self.datasets`` in time to the reference dataset. + + Parameters + ---------- + config : TimeAlignmentConfig or None + Time alignment options; defaults are used if None. + reference_name : str or None + Name of the reference dataset. + """ + lead_time = config.lead_time if config is not None else None + self.datasets = align_time( + self.datasets, reference=reference_name, lead_time=lead_time + ) + + def align_space(self, reference: str, config: SpaceAlignmentConfig) -> None: + """Align every non-reference dataset in space to the reference dataset. + + Parameters + ---------- + reference : str + Name of the reference dataset. + config : SpaceAlignmentConfig + Interpolator/regridder options, picked by the kind of alignment + each dataset needs (see :func:`get_spatial_alignment`). + """ + ds_ref = self.datasets[reference] + for name, ds in self.datasets.items(): + if name != reference: + kind = get_spatial_alignment(ds, ds_ref) + options = getattr(config, kind, None) or {} + self.datasets[name] = ds.mx.align_space_with(ds_ref, **options) + + +def get_spatial_alignment(ds: xr.Dataset, reference: xr.Dataset) -> str: + """Return the kind of spatial alignment needed to align ``ds`` to ``reference``. + + Parameters + ---------- + ds : xr.Dataset + Dataset to align. + reference : xr.Dataset + Reference dataset. + + Returns + ------- + str + ``"interpolation"`` for grid to points, ``"regrid"`` for grid to + grid, and ``"null"`` otherwise. + """ + if reference.mx.is_point() and ds.mx.is_grid(): + return "interpolation" + if reference.mx.is_grid() and ds.mx.is_grid(): + return "regrid" + return "null" diff --git a/src/mxalign/pipeline/save.py b/src/mxalign/pipeline/save.py new file mode 100644 index 0000000..7cbdfc1 --- /dev/null +++ b/src/mxalign/pipeline/save.py @@ -0,0 +1,111 @@ +"""Helpers for saving aligned datasets and computed metrics to disk.""" + +import xarray as xr + + +class DatasetPath: + """Resolve a path pattern to a concrete file path using a dataset's dates. + + The dominant year/month/day (by count) in ``reference_time`` (forecast) or + ``valid_time`` (observation) is used to fill ``{year}``, ``{month}``, ``{day}`` + placeholders via :meth:`substitute`. + + Parameters + ---------- + name : str + Dataset name, used to fill the ``{name}`` placeholder. + ds : xr.Dataset + Forecast or observation dataset whose dates determine the + ``{year}``, ``{month}`` and ``{day}`` placeholders. + """ + + def __init__(self, name: str, ds: xr.Dataset) -> None: + self.name = name + if ds.mx.is_forecast(): + years = ds["reference_time"].groupby(ds["reference_time"].dt.year).count() + self.year = int(years.isel(year=years.argmax())["year"].values) + ds_month = ds.sel(reference_time=ds.reference_time.dt.year == self.year) + months = ( + ds_month["reference_time"] + .groupby(ds_month["reference_time"].dt.month) + .count() + ) + self.month = int(months.isel(month=months.argmax())["month"].values) + ds_day = ds_month.sel( + reference_time=ds_month.reference_time.dt.month == self.month + ) + days = ( + ds_day["reference_time"] + .groupby(ds_day["reference_time"].dt.day) + .count() + ) + self.day = int(days.isel(day=days.argmax())["day"].values) + elif ds.mx.is_observation(): + years = ds["valid_time"].groupby(ds["valid_time"].dt.year).count() + self.year = int(years.isel(year=years.argmax())["year"].values) + ds_month = ds.sel(valid_time=ds.valid_time.dt.year == self.year) + months = ( + ds_month["valid_time"].groupby(ds_month["valid_time"].dt.month).count() + ) + self.month = int(months.isel(month=months.argmax())["month"].values) + ds_day = ds_month.sel(valid_time=ds_month.valid_time.dt.month == self.month) + days = ds_day["valid_time"].groupby(ds_day["valid_time"].dt.day).count() + self.day = int(days.isel(day=days.argmax())["day"].values) + + def substitute(self, path: str) -> str: + """Fill the ``{name}``, ``{year}``, ``{month}`` and ``{day}`` fields of ``path``. + + Parameters + ---------- + path : str + Path pattern in :meth:`str.format` syntax. + + Returns + ------- + str + The path with the placeholders filled in. + """ + return path.format( + name=self.name, year=self.year, month=self.month, day=self.day + ) + + +def save_dataset(method: str, name: str, ds: xr.Dataset, **kwargs: object) -> None: + """Save ``ds`` to a path derived from its dominant date using ``ds.``. + + Parameters + ---------- + method : str + Name of the dataset method used to save (e.g. ``"to_netcdf"``). + name : str + Dataset name, used to fill the ``{name}`` placeholder of the path. + ds : xr.Dataset + Dataset to save. + **kwargs + Must contain ``path``, a pattern filled via :class:`DatasetPath`; the + remaining keyword arguments are passed on to ``ds.``. + """ + save_fn = getattr(ds, method) + dataset = DatasetPath(name, ds) + path = dataset.substitute(kwargs.pop("path")) + print(f"Saving to {path}") + save_fn(path, **kwargs) + + +def save_metrics(method: str, ds: xr.Dataset, **kwargs: object) -> None: + """Save ``ds`` to a fixed path using ``ds.``. + + Parameters + ---------- + method : str + Name of the dataset method used to save (e.g. ``"to_netcdf"``). + ds : xr.Dataset + Dataset (of metrics) to save. + **kwargs + Must contain ``path``, the output path; the remaining keyword + arguments are passed on to ``ds.``. + """ + save_fn = getattr(ds, method) + path = kwargs.pop("path") + print(f"Saving to {path}") + save_fn(path, **kwargs) diff --git a/src/mxalign/pipeline/transformations/__init__.py b/src/mxalign/pipeline/transformations/__init__.py new file mode 100644 index 0000000..ac68a83 --- /dev/null +++ b/src/mxalign/pipeline/transformations/__init__.py @@ -0,0 +1,8 @@ +"""Dataset transformations and the registry they are registered in.""" + +from . import base, external + +__all__ = [ + "base", + "external", +] diff --git a/src/mxalign/pipeline/transformations/base.py b/src/mxalign/pipeline/transformations/base.py new file mode 100644 index 0000000..dd6bc69 --- /dev/null +++ b/src/mxalign/pipeline/transformations/base.py @@ -0,0 +1,88 @@ +"""Built-in transformations: renaming, unit conversion and wind speed.""" + +import xarray as xr + +from .registry import register_transformation + + +@register_transformation("rename") +def transform_rename(ds: xr.Dataset, rename_dict: dict[str, list[str]]) -> xr.Dataset: + """Rename variables in ``ds`` according to a mapping of new to old names. + + Parameters + ---------- + ds : xr.Dataset + Dataset whose variables are renamed. + rename_dict : dict of str to list of str + Mapping of new names to lists of old names; any variable in ``ds`` + whose name is in a list is renamed to the corresponding key. + + Returns + ------- + xr.Dataset + Dataset with the variables renamed. + """ + new_dict = {} + for new_name, old_names in rename_dict.items(): + for name in ds.keys(): + if name in old_names: + new_dict[name] = new_name + return ds.rename(new_dict) + + +@register_transformation("kelvin_to_celcius") +def transform_kelvin_to_celcius( + ds: xr.Dataset, + variables: str | list[str], + inverse: bool = False, +) -> xr.Dataset: + """Convert ``variables`` between Kelvin and Celsius. + + Parameters + ---------- + ds : xr.Dataset + Dataset holding the variables; modified in place. + variables : str or list of str + Name(s) of the variables to convert. + inverse : bool, default False + Convert from Celsius to Kelvin instead of Kelvin to Celsius. + + Returns + ------- + xr.Dataset + ``ds`` with the variables converted. + """ + T_C2K = 273.15 + if isinstance(variables, str): + variables = [variables] + t = T_C2K if inverse else -T_C2K + for var in variables: + ds[var] = ds[var] + t + return ds + + +@register_transformation("uv_to_speed") +def transform(ds: xr.Dataset, u: str, v: str, speed: str) -> xr.Dataset: + """Compute wind speed from ``u`` and ``v`` components and store it as ``speed``. + + Parameters + ---------- + ds : xr.Dataset + Dataset holding the wind components; modified in place. + u : str + Name of the eastward wind component variable. + v : str + Name of the northward wind component variable. + speed : str + Name of the wind speed variable to write. + + Returns + ------- + xr.Dataset + ``ds`` with the ``speed`` variable added. + """ + import numpy as np + + result = np.sqrt(ds[u] ** 2 + ds[v] ** 2) + ds[speed] = result + return ds diff --git a/src/mxalign/pipeline/transformations/external.py b/src/mxalign/pipeline/transformations/external.py new file mode 100644 index 0000000..9af1e0d --- /dev/null +++ b/src/mxalign/pipeline/transformations/external.py @@ -0,0 +1,89 @@ +"""Transformation that calls an external function given by its import path.""" + +from collections.abc import Callable + +import xarray as xr + +from .registry import register_transformation + + +@register_transformation("external") +def transform( + ds: xr.Dataset, + func_path: str, + inputs: dict[str, str], + output: str, + **kwargs: object, +) -> xr.Dataset: + """Call an external function and store its result as ``output`` in ``ds``. + + Parameters + ---------- + ds : xr.Dataset + Dataset providing the input variables; modified in place. + func_path : str + Dotted path to the function, e.g. ``"mypackage.module.func"``. + inputs : dict of str to str + Mapping of function argument names to variable names in ``ds``. + output : str + Name of the new variable written back into ``ds``; the function's + result must have the shape of ``ds.dims``. + **kwargs + Additional keyword arguments passed on to the function. + + Returns + ------- + xr.Dataset + ``ds`` with the ``output`` variable added. + + Raises + ------ + ImportError + If the module in ``func_path`` cannot be imported. + AttributeError + If the module has no attribute with the function name. + """ + func = _resolve_function(func_path) + input_kwargs = {arg_name: ds[var_name] for arg_name, var_name in inputs.items()} + result = func(**{**input_kwargs, **kwargs}) + ds[output] = (ds.dims, result) + return ds + + +def _resolve_function(func_path: str) -> Callable: + """Import and return the callable at ``func_path`` (e.g. ``"pkg.module.func"``). + + Parameters + ---------- + func_path : str + Dotted path of the form ``"."``. + + Returns + ------- + Callable + The resolved function. + + Raises + ------ + ImportError + If the module cannot be imported. + AttributeError + If the module has no attribute with the function name. + """ + import importlib + + module_path, func_name = func_path.rsplit(".", 1) + try: + module = importlib.import_module(module_path) + except ImportError as e: + raise ImportError( + f"Could not import module '{module_path}' required for transform '{func_path}'. " + f"Make sure it is installed. Original error: {e}" + ) + try: + return getattr(module, func_name) + except AttributeError: + raise AttributeError( + f"Module '{module_path}' has no function '{func_name}'. " + f"Check the function name in your config." + ) diff --git a/src/mxalign/pipeline/transformations/registry.py b/src/mxalign/pipeline/transformations/registry.py new file mode 100644 index 0000000..7df58c6 --- /dev/null +++ b/src/mxalign/pipeline/transformations/registry.py @@ -0,0 +1,74 @@ +"""Registry mapping transformation names to transformation functions.""" + +from collections.abc import Callable + +_TRANSFORMATION_REGISTRY: dict[str, Callable] = {} + + +def register_transformation(name: str) -> Callable: + """Return a decorator that registers a transformation function under ``name``. + + Parameters + ---------- + name : str + Name under which the decorated function is registered; an existing + registration with the same name is replaced. + + Returns + ------- + Callable + Decorator that registers the function and returns it unchanged. + """ + + def decorator(func: Callable) -> Callable: + """Register ``func`` under ``name``. + + Parameters + ---------- + func : Callable + Transformation function taking a dataset as first argument. + + Returns + ------- + Callable + ``func`` itself, unchanged. + """ + _TRANSFORMATION_REGISTRY[name] = func + return func + + return decorator + + +def available_transformations() -> list[str]: + """Return the names of all registered transformations. + + Returns + ------- + list of str + Registered transformation names, in registration order. + """ + return list(_TRANSFORMATION_REGISTRY.keys()) + + +def get_transformation(name: str) -> Callable: + """Return the transformation function registered under ``name``. + + Parameters + ---------- + name : str + Name of the registered transformation. + + Returns + ------- + Callable + The registered transformation function. + + Raises + ------ + ValueError + If ``name`` is not registered. + """ + try: + return _TRANSFORMATION_REGISTRY[name] + except KeyError: + raise ValueError(f"Unknown transformation: {name}") diff --git a/src/mxalign/pipeline/transformations/transform.py b/src/mxalign/pipeline/transformations/transform.py new file mode 100644 index 0000000..78743c0 --- /dev/null +++ b/src/mxalign/pipeline/transformations/transform.py @@ -0,0 +1,47 @@ +"""Entry point for applying a registered transformation to datasets.""" + +import xarray as xr + +from .registry import get_transformation + + +def transform( + name: str, + datasets: xr.Dataset | list[xr.Dataset] | dict[str, xr.Dataset], + *args: object, + **kwargs: object, +) -> xr.Dataset | list[xr.Dataset] | dict[str, xr.Dataset]: + """Apply the named transformation to one or more datasets. + + Each dataset is copied before being passed to the transformation, so the + inputs are not modified. + + Parameters + ---------- + name : str + Name of a registered transformation (see + :func:`available_transformations`). + datasets : xr.Dataset or list of xr.Dataset or dict of str to xr.Dataset + Dataset(s) to transform. + *args + Positional arguments passed on to the transformation. + **kwargs + Keyword arguments passed on to the transformation. + + Returns + ------- + xr.Dataset or list of xr.Dataset or dict of str to xr.Dataset + The transformed dataset(s), in the same container type as + ``datasets``. + + Raises + ------ + ValueError + If ``name`` is not a registered transformation. + """ + func = get_transformation(name) + if isinstance(datasets, dict): + return {key: func(ds.copy(), *args, **kwargs) for key, ds in datasets.items()} + if isinstance(datasets, list): + return [func(ds.copy(), *args, **kwargs) for ds in datasets] + return func(datasets.copy(), *args, **kwargs) diff --git a/src/mxalign/pipeline/verification.py b/src/mxalign/pipeline/verification.py new file mode 100644 index 0000000..0fa0234 --- /dev/null +++ b/src/mxalign/pipeline/verification.py @@ -0,0 +1,161 @@ +"""Metric computation for the verification step of the pipeline.""" + +from functools import partial + +import xarray as xr + +from .transformations.external import _resolve_function + + +class Metric: + """A verification metric with the reference dataset bound in. + + Parameters + ---------- + name : str + Name of the metric. + func_path : str + Dotted import path of the metric function. + ds_ref : xr.Dataset + Reference dataset passed to the arguments marked ``"reference"``. + inputs : dict of str to str + Mapping of function argument names to the dataset role passed to + them: ``"reference"`` for ``ds_ref``; any other value marks the + argument that receives the dataset given to :meth:`compute`. + **kwargs + Additional keyword arguments passed on to the metric function. + ``dim`` is also used to rechunk the datasets for ``xskillscore`` + functions. + + Raises + ------ + ValueError + If more than one argument in ``inputs`` is not ``"reference"``. + ImportError + If the module in ``func_path`` cannot be imported. + AttributeError + If the module has no attribute with the function name. + IndexError + If no argument in ``inputs`` is a non-reference (forecast) argument. + """ + + def __init__( + self, + name: str, + func_path: str, + ds_ref: xr.Dataset, + inputs: dict[str, str], + **kwargs: object, + ) -> None: + self.name = name + func = _resolve_function(func_path) + self._is_xskillscore = func.__module__.startswith("xskillscore") + self._dim = kwargs.get("dim", None) + + kwarg_ref = {} + kwarg_ds = [] + for input_arg, ds_type in inputs.items(): + if ds_type == "reference": + kwarg_ref[input_arg] = ( + self._rechunk(ds_ref) if self._is_xskillscore else ds_ref + ) + else: + kwarg_ds.append(input_arg) + if len(kwarg_ds) > 1: + raise ValueError( + f"More than one predictor-input argument defined for function {func_path}" + ) + partial_kwargs = {**kwarg_ref, **kwargs} + self._func = partial(func, **partial_kwargs) + self._kwarg_ds = kwarg_ds[0] + + def compute(self, ds: xr.Dataset) -> xr.Dataset: + """Compute the metric of ``ds`` against the reference dataset. + + Parameters + ---------- + ds : xr.Dataset + Dataset (e.g. a forecast) to verify. + + Returns + ------- + xr.Dataset + The result of the metric function. + """ + if self._is_xskillscore: + ds = self._rechunk(ds) + kwarg_ds = {self._kwarg_ds: ds} + return self._func(**kwarg_ds) + + def _rechunk(self, ds: xr.Dataset) -> xr.Dataset: + """Rechunk ``ds`` to one chunk along ``dim`` and size-1 chunks elsewhere. + + Parameters + ---------- + ds : xr.Dataset + Dataset to rechunk. + + Returns + ------- + xr.Dataset + The rechunked dataset, or ``ds`` unchanged if no ``dim`` was given. + """ + if self._dim is None: + return ds + dim = [self._dim] if isinstance(self._dim, str) else self._dim + dim_other = [d for d in ds.dims if d not in dim] + chunks = {d: -1 for d in dim} + for d in dim_other: + chunks[d] = 1 + return ds.chunk(chunks) + + +def verify( + fcst: xr.Dataset, + obs: xr.Dataset, + func_path: str, + inputs: dict[str, str], + **kwargs: object, +) -> xr.Dataset: + """Compute a metric function of a forecast against an observation. + + Parameters + ---------- + fcst : xr.Dataset + Forecast dataset. + obs : xr.Dataset + Observation dataset. + func_path : str + Dotted import path of the metric function. + inputs : dict of str to str + Mapping of function argument names to ``"forecast"`` or + ``"observation"``, selecting which dataset each argument receives. + **kwargs + Additional keyword arguments passed on to the metric function. + + Returns + ------- + xr.Dataset + The result of the metric function. + + Raises + ------ + KeyError + If a value in ``inputs`` is neither ``"forecast"`` nor + ``"observation"``. + ImportError + If the module in ``func_path`` cannot be imported. + AttributeError + If the module has no attribute with the function name. + """ + func = _resolve_function(func_path=func_path) + datasets = { + "forecast": fcst, + "observation": obs, + } + input_kwargs = {arg_name: datasets[ds_type] for arg_name, ds_type in inputs.items()} + + all_kwargs = {**input_kwargs, **kwargs} + + result = func(**all_kwargs) + return result diff --git a/src/mxalign/runner.py b/src/mxalign/runner.py deleted file mode 100644 index aff4398..0000000 --- a/src/mxalign/runner.py +++ /dev/null @@ -1,167 +0,0 @@ -import os -import xarray as xr - -from .utils.config import Config -from .loaders.loader import load -from .transformations.transform import transform -from .align.time import align_time -from .align.space import align_space -from .align.nans import broadcast_nans -from .utils.save import save_dataset, save_metrics -from .verification import Metric - - -class Runner: - def __init__(self, config: str | dict): - self.config = Config(config) - self.datasets = {} - - def run(self): - # 1. Load the datasets - self.load_datasets() - - # 2. Transform the datasets - self.transform_datasets() - self.align() - self.verify() - - def load_datasets(self): - config = self.config["datasets"] - if config is None: - return ValueError("No datasets section in the config.") - for name, config_ds in config.items(): - config_ds = config_ds.copy() - # Check if all the files exist - loader = config_ds.pop("loader") - variables = config_ds.pop("variables", None) - grid_mapping = config_ds.pop("grid_mapping", None) - files = [] - # Check if all the files exist - for file in config_ds.pop("files"): - if os.path.exists(file): - files.append(file) - else: - print(f"File: {file} is missing, skipping.") - self.datasets[name] = load( - name=loader, - files=files, - variables=variables, - grid_mapping=grid_mapping, - **config_ds, - ) - - def transform_datasets(self): - config = self.config["transformations"] - if config is None: - pass - for transformation, config_trans in config.items(): - config_trans = config_trans.copy() - # if no datasets specified, apply to all datasets - names_ds = config_trans.pop("datasets", self.datasets.keys()) - for name in names_ds: - ds = self.datasets[name] - self.datasets[name] = transform( - name=transformation, datasets=ds, **config_trans - ) - - def align(self): - config = self.config["alignment"] - reference = config.pop("reference") - brdcst_nans = config.pop("broadcast_nans", True) - config_align_time = config.get("time", None) - config_align_space = config.get("space", None) - config_align_save = config.get("save", None) - - # align in time - if config_align_time: - self.align_time(config_align_time) - else: - print("Skipping temporal alignment") - - # align in space - if config_align_space: - self.align_space(reference=reference, config=config_align_space) - else: - print("Skipping spatial alignment") - - # broadcast NaNs - if brdcst_nans: - self.datasets = broadcast_nans(self.datasets) - - # Save aligned datasets - if config_align_save: - config = config_align_save.copy() - method = config.pop("method") - datasets = config.pop("datasets", "all") - if datasets == "all": - for name, ds in self.datasets.items(): - save_dataset(method, name, ds, **config) - elif datasets == "merge": - ds = xr.concat( - self.datasets.values(), - dim=xr.Variable("model", list(self.datasets.keys())), - ) - save_dataset(method, name, ds, **config) - else: - raise ValueError("Unknown option for dataset saving.") - - def verify(self): - config = self.config["verification"] - reference = self.datasets[config["reference"]] - config_metrics = config.get("metrics", None) - config_save_metrics = config.get("save", None) - - common_vars = set(reference.data_vars) - for ds in self.datasets.values(): - common_vars.intersection_update(set(ds.data_vars)) - common_vars = list(common_vars) - - if config_metrics: - metrics = {} - for metric_name, config_metric in config["metrics"].items(): - config_metric = config_metric.copy() - func_path = config_metric.pop("function") - inputs = config_metric.pop("inputs") - - metric = Metric( - name=metric_name, - func_path=func_path, - ds_ref=reference[common_vars], - inputs=inputs, - **config_metric, - ) - models = {} - for ds_name, ds in self.datasets.items(): - if ds_name != config["reference"]: - models[ds_name] = metric.compute(ds[common_vars]) - models = xr.concat( - models.values(), dim=xr.Variable("model", list(models.keys())) - ) - metrics[metric.name] = models - metrics = xr.concat( - metrics.values(), dim=xr.Variable("metric", list(metrics.keys())) - ) - self.metrics = metrics.transpose("model", "metric", ...).compute() - - if config_save_metrics: - config = config_save_metrics.copy() - method = config.pop("method") - save_metrics(method, self.metrics, **config) - - def align_time(self, config): - self.datasets = align_time(self.datasets, **config) - - def align_space(self, reference, config): - ds_ref = self.datasets[reference] - for name, ds in self.datasets.items(): - if name != reference: - options = config.get(get_spatial_alignment(ds, ds_ref), {}) - self.datasets[name] = align_space(ds, ds_ref, **options) - - -def get_spatial_alignment(ds, reference): - if reference.space.is_point() and ds.space.is_grid(): - return "interpolation" - if reference.space.is_grid() and ds.space.is_grid(): - return "regrid" - return "null" diff --git a/src/mxalign/transformations/__init__.py b/src/mxalign/transformations/__init__.py deleted file mode 100644 index c337718..0000000 --- a/src/mxalign/transformations/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -from . import base -from . import external - -__all__ = [ - "base", - "external", -] diff --git a/src/mxalign/transformations/base.py b/src/mxalign/transformations/base.py deleted file mode 100644 index 0638353..0000000 --- a/src/mxalign/transformations/base.py +++ /dev/null @@ -1,38 +0,0 @@ -from .registry import register_transformation - - -@register_transformation("rename") -def transform_rename(ds, rename_dict): - new_dict = {} - for new_name, old_names in rename_dict.items(): - for name in ds.keys(): - if name in old_names: - new_dict[name] = new_name - else: - pass - return ds.rename(new_dict) - - -@register_transformation("kelvin_to_celcius") -def transform_kelvin_to_celcius(ds, variables, inverse=False): - T_C2K = 273.15 - if isinstance(variables, str): - variables = [variables] - if inverse: - t = T_C2K - else: - t = -T_C2K - - for var in variables: - ds[var] = ds[var] + t - - return ds - - -@register_transformation("uv_to_speed") -def transform(ds, u, v, speed): - import numpy as np - - result = np.sqrt(ds[u] ** 2 + ds[v] ** 2) - ds[speed] = result - return ds diff --git a/src/mxalign/transformations/external.py b/src/mxalign/transformations/external.py deleted file mode 100644 index aa97e69..0000000 --- a/src/mxalign/transformations/external.py +++ /dev/null @@ -1,34 +0,0 @@ -from .registry import register_transformation - - -@register_transformation("external") -def transform(ds, func_path, inputs, output, **kwargs): - func = _resolve_function(func_path) - - input_kwargs = {arg_name: ds[var_name] for arg_name, var_name in inputs.items()} - - all_kwargs = {**input_kwargs, **kwargs} - result = func(**all_kwargs) - # print(result) - ds[output] = (ds.dims, result) - return ds - - -def _resolve_function(func_path): - import importlib - - module_path, func_name = func_path.rsplit(".", 1) - try: - module = importlib.import_module(module_path) - except ImportError as e: - raise ImportError( - f"Could not import module '{module_path}' required for transform '{func_path}'. " - f"Make sure it is installed. Original error: {e}" - ) - try: - return getattr(module, func_name) - except AttributeError: - raise AttributeError( - f"Module '{module_path}' has no function '{func_name}'. " - f"Check the function name in your config." - ) diff --git a/src/mxalign/transformations/registry.py b/src/mxalign/transformations/registry.py deleted file mode 100644 index be6378d..0000000 --- a/src/mxalign/transformations/registry.py +++ /dev/null @@ -1,20 +0,0 @@ -_TRANSFORMATION_REGISTRY = {} - - -def register_transformation(name): - def decorator(func): - _TRANSFORMATION_REGISTRY[name] = func - return func - - return decorator - - -def available_transformations(): - return list(_TRANSFORMATION_REGISTRY.keys()) - - -def get_transformation(name): - try: - return _TRANSFORMATION_REGISTRY[name] - except KeyError: - raise ValueError(f"Unknown transformation: {name}") diff --git a/src/mxalign/transformations/transform.py b/src/mxalign/transformations/transform.py deleted file mode 100644 index 8bfa7a9..0000000 --- a/src/mxalign/transformations/transform.py +++ /dev/null @@ -1,28 +0,0 @@ -from .registry import get_transformation - - -def transform(name, datasets, *args, **kwargs): - transform = get_transformation(name) - if isinstance(datasets, dict): - keys = list(datasets.keys()) - datasets = list(datasets.values()) - else: - if not isinstance(datasets, list): - datasets = [datasets] - keys = None - - if keys: - transformed_datasets = dict() - for key, ds in zip(keys, datasets): - transformed_datasets[key] = transform(ds.copy(), *args, **kwargs) - else: - transformed_datasets = [] - for ds in datasets: - transformed_datasets.append(transform(ds.copy(), *args, **kwargs)) - - transformed_datasets = ( - transformed_datasets[0] - if len(transformed_datasets) == 1 - else transformed_datasets - ) - return transformed_datasets diff --git a/src/mxalign/utils/config.py b/src/mxalign/utils/config.py deleted file mode 100644 index 5deb451..0000000 --- a/src/mxalign/utils/config.py +++ /dev/null @@ -1,55 +0,0 @@ -import yaml - -from .dates import Dates - - -def load_yaml(fn: str) -> dict: - with open(fn, "r") as f: - return yaml.safe_load(f) - - -class Config: - def __init__(self, config: str | dict): - self.config = load_yaml(config) if isinstance(config, str) else config - if not isinstance(self.config, dict): - raise TypeError("config should be a dictionary.") - self.dates = self.config.pop("dates", None) - self._init_datasets() - print("Config initialized") - - def __getitem__(self, key): - config = self.config.get(key, None) - if config: - return config.copy() - else: - return config - - def __call__(self): - return self.config - - def _init_datasets(self): - for key, loader in self.config["datasets"].items(): - dates_loader = loader.pop("dates", None) - if self.dates: - if dates_loader: - keys_all = list(set(self.dates.keys()).union(dates_loader.keys())) - dates = { - key: ( - dates_loader[key] - if key in dates_loader.keys() - else self.dates[key] - ) - for key in keys_all - } - else: - dates = self.dates.copy() - else: - if dates_loader: - dates = dates_loader.copy() - else: - dates = None - - if dates: - dates = Dates(**dates) - loader["files"] = dates.substitute(loader["files"]) - self.config["datasets"][key] = loader diff --git a/src/mxalign/utils/dates.py b/src/mxalign/utils/dates.py deleted file mode 100644 index 2ad5761..0000000 --- a/src/mxalign/utils/dates.py +++ /dev/null @@ -1,76 +0,0 @@ -import numpy as np -from earthkit.data.utils.patterns import Pattern - - -class Dates: - def __init__( - self, - start: str | np.datetime64, - end: str | np.datetime64, - period: str | np.timedelta64, - range: str | np.timedelta64, - step: str | np.timedelta64, - ): - self._start = ( - np.datetime64(start) if not isinstance(start, np.datetime64) else start - ) - self._end = np.datetime64(end) if not isinstance(end, np.datetime64) else end - self._period = to_timedelta64(period) if isinstance(period, str) else period - self._range = to_timedelta64(range) if isinstance(range, str) else range - self._step = to_timedelta64(step) if isinstance(step, str) else step - valid_times = set() - lead_times = set() - reference_times = set() - date = self._start - while date <= self._end: - # print(date) - reference_times.add(date) - delta = np.timedelta64(0, "s") - while delta <= self._range: - valid_times.add(date + delta) - lead_times.add(delta) - delta += self._step - date += self._period - self.valid_times = list(valid_times) - self.reference_times = list(reference_times) - # FIXME: can we simplify this? earthkit.data.utils.patterns.Pattern does not accept np.int64 - self.lead_times = sorted([int(t.astype(int)) for t in lead_times]) - - def substitute(self, path: str): - pattern = Pattern(path) - paths = pattern.substitute( - dict(reference_time=self.reference_times), - # dict(lead_time=self.lead_times), - # dict(valid_time=self.valid_times), - allow_extra=True, - ) - return sorted(paths) - - -def to_timedelta64(freq: str) -> np.timedelta64: - """ - Convert a frequency string to a numpy timedelta64 object. - The frequency string should be in the format of a number followed by a time unit, - e.g. '1D', '2H', '3M', etc. - The time unit can be one of the following: - - 'Y' for years - - 'M' for months - - 'W' for weeks - - 'D' for days - - 'h' for hours - - 'm' for minutes - - 's' for seconds - - 'ms' for milliseconds - Parameters - ---------- - freq : str - The frequency string to convert. - - Returns - ------- - np.timedelta64 - The converted numpy timedelta64 object. - """ - value = freq[:-1] - unit = freq[-1] - return np.timedelta64(value, unit) diff --git a/src/mxalign/utils/projections.py b/src/mxalign/utils/projections.py index 2d3cb57..6aa589d 100644 --- a/src/mxalign/utils/projections.py +++ b/src/mxalign/utils/projections.py @@ -1,50 +1,49 @@ -import cartopy.crs as ccrs +"""Cartopy projection helpers and builtin grid definitions (CERRA, UWCW).""" +import cartopy.crs as ccrs -def create_cartopy_crs(projection, kws_projection, kws_globe=None) -> ccrs.Projection: - """Create a Cartopy coordinate reference system (CRS) based on the specified projection. - This function creates a Cartopy projection object using the provided projection name - and associated keyword arguments. +def create_cartopy_crs( + projection: str, + kws_projection: dict, + kws_globe: dict | None = None, +) -> ccrs.Projection: + """Build a Cartopy CRS from a projection name and keyword dicts. Parameters ---------- projection : str - Name of the projection to create. Must be one of the supported projections - defined in PROJECTIONS. - projection_kws : dict[str, str] - Dictionary of keyword arguments to pass to the projection constructor. - globe_kws: dict[str, str], optional - Optional globe parameters which will be used to create a ccrs.Globe object. + Key into :data:`PROJECTIONS` (e.g. ``"lcc"``, ``"latlon"``). + kws_projection : dict + Keyword arguments forwarded to the projection constructor. + kws_globe : dict, optional + Keyword arguments forwarded to :class:`cartopy.crs.Globe`. Returns ------- ccrs.Projection - The created Cartopy projection object. + The constructed Cartopy CRS. + Raises ------ - AssertionError - If the specified projection is not supported (not in PROJECTIONS). - - Examples - -------- - >>> projection_kws = {'central_longitude': 0,} - >>> globe_kws = {'ellipse': 'WGS84'}} - >>> crs = create_cartopy_crs('latlon', projection_kws, globe_kws) + ValueError + If ``projection`` is not a key in :data:`PROJECTIONS`. """ - - # - Get the cartopy projection (crs) + # - Get the cartopy projection class try: - projection = PROJECTIONS[projection] + proj_cls = PROJECTIONS[projection] except KeyError: raise ValueError(f"Unsupported projection: {projection}") - kws_projection.copy() - # - Move globe keywords to different dictionary + # copy projection kws to avoid mutating caller's dict + kws_projection = kws_projection.copy() + + # - Build globe if keywords provided + globe = None if kws_globe: globe = ccrs.Globe(**kws_globe) - crs = projection(globe=globe, **kws_projection) + crs = proj_cls(globe=globe, **kws_projection) return crs diff --git a/src/mxalign/utils/save.py b/src/mxalign/utils/save.py deleted file mode 100644 index 1698282..0000000 --- a/src/mxalign/utils/save.py +++ /dev/null @@ -1,62 +0,0 @@ -from earthkit.data.utils.patterns import Pattern - - -class DatasetPath: - def __init__(self, name, ds): - self.name = name - if ds.time.is_forecast(): - years = ds["reference_time"].groupby(ds["reference_time"].dt.year).count() - self.year = int(years.isel(year=years.argmax())["year"].values) - ds_month = ds.sel(reference_time=ds.reference_time.dt.year == self.year) - months = ( - ds_month["reference_time"] - .groupby(ds_month["reference_time"].dt.month) - .count() - ) - self.month = int(months.isel(month=months.argmax())["month"].values) - ds_day = ds_month.sel( - reference_time=ds_month.reference_time.dt.month == self.month - ) - days = ( - ds_day["reference_time"] - .groupby(ds_day["reference_time"].dt.day) - .count() - ) - self.day = int(days.isel(day=days.argmax())["day"].values) - elif ds.time.is_observation(): - years = ds["valid_time"].groupby(ds["valid_time"].dt.year).count() - self.year = int(years.isel(year=years.argmax())["year"].values) - ds_month = ds.sel(valid_time=ds.valid_time.dt.year == self.year) - months = ( - ds_month["valid_time"].groupby(ds_month["valid_time"].dt.month).count() - ) - self.month = int(months.isel(month=months.argmax())["month"].values) - ds_day = ds_month.sel(valid_time=ds_month.valid_time.dt.month == self.month) - days = ds_day["valid_time"].groupby(ds_day["valid_time"].dt.day).count() - self.day = int(days.isel(day=days.argmax())["day"].values) - - def substitute(self, path: str): - pattern = Pattern(path) - path = pattern.substitute( - dict(name=self.name), - dict(year=self.year), - dict(month=self.month), - dict(day=self.day), - allow_extra=True, - ) - return path - - -def save_dataset(method, name, ds, **kwargs): - save_fn = getattr(ds, method) - dataset = DatasetPath(name, ds) - path = dataset.substitute(kwargs.pop("path")) - print(f"Saving to {path}") - save_fn(path, **kwargs) - - -def save_metrics(method, ds, **kwargs): - save_fn = getattr(ds, method) - path = kwargs.pop("path") - print(f"Saving to {path}") - save_fn(path, **kwargs) diff --git a/src/mxalign/utils/traits.py b/src/mxalign/utils/traits.py index cb6b1f9..f7b727a 100644 --- a/src/mxalign/utils/traits.py +++ b/src/mxalign/utils/traits.py @@ -1,3 +1,7 @@ +"""Helpers to validate and set the mlwp space, time and uncertainty traits on datasets.""" + +import xarray as xr + from mlwp_data_specs.api import ( TIME_TRAIT_ATTR, SPACE_TRAIT_ATTR, @@ -14,24 +18,76 @@ validate_dataset as validate_time_dataset, ) +from mlwp_data_specs.specs.traits.uncertainty import Uncertainty from mlwp_data_specs.specs.traits.uncertainty import ( validate_dataset as validate_uncertainty_dataset, ) -def update_space_trait(ds, new_trait: Space): +def update_space_trait(ds: xr.Dataset, new_trait: Space) -> xr.Dataset: + """Validate and set the space trait attribute on ``ds`` in-place. + + The validation report is not inspected, so a failed validation does not + raise. + + Parameters + ---------- + ds : xr.Dataset + Dataset to update. + new_trait : Space + Space trait to validate against and set. + + Returns + ------- + xr.Dataset + The same dataset object, with the space trait attribute set. + """ validate_space_dataset(ds, trait=new_trait) ds.attrs[SPACE_TRAIT_ATTR] = new_trait.value return ds -def update_time_trait(ds, new_trait: Time): +def update_time_trait(ds: xr.Dataset, new_trait: Time) -> xr.Dataset: + """Validate and set the time trait attribute on ``ds`` in-place. + + The validation report is not inspected, so a failed validation does not + raise. + + Parameters + ---------- + ds : xr.Dataset + Dataset to update. + new_trait : Time + Time trait to validate against and set. + + Returns + ------- + xr.Dataset + The same dataset object, with the time trait attribute set. + """ validate_time_dataset(ds, trait=new_trait) ds.attrs[TIME_TRAIT_ATTR] = new_trait.value return ds -def update_uncertainty_trait(ds, new_trait: Time): +def update_uncertainty_trait(ds: xr.Dataset, new_trait: Uncertainty) -> xr.Dataset: + """Validate and set the uncertainty trait attribute on ``ds`` in-place. + + The validation report is not inspected, so a failed validation does not + raise. + + Parameters + ---------- + ds : xr.Dataset + Dataset to update. + new_trait : Uncertainty + Uncertainty trait to validate against and set. + + Returns + ------- + xr.Dataset + The same dataset object, with the uncertainty trait attribute set. + """ validate_uncertainty_dataset(ds, trait=new_trait) ds.attrs[UNCERTAINTY_TRAIT_ATTR] = new_trait.value return ds diff --git a/src/mxalign/verification.py b/src/mxalign/verification.py deleted file mode 100644 index 88ad172..0000000 --- a/src/mxalign/verification.py +++ /dev/null @@ -1,57 +0,0 @@ -from .transformations.external import _resolve_function -from functools import partial - - -class Metric: - def __init__(self, name, func_path, ds_ref, inputs, **kwargs): - self.name = name - func = _resolve_function(func_path) - self._is_xskillscore = func.__module__.startswith("xskillscore") - self._dim = kwargs.get("dim", None) - - kwarg_ref = {} - kwarg_ds = [] - for input_arg, ds_type in inputs.items(): - if ds_type == "reference": - kwarg_ref[input_arg] = ( - self._rechunk(ds_ref) if self._is_xskillscore else ds_ref - ) - else: - kwarg_ds.append(input_arg) - if len(kwarg_ds) > 1: - raise ValueError( - f"More than one predictor-input argument defined for function {func_path}" - ) - partial_kwargs = {**kwarg_ref, **kwargs} - self._func = partial(func, **partial_kwargs) - self._kwarg_ds = kwarg_ds[0] - - def compute(self, ds): - if self._is_xskillscore: - ds = self._rechunk(ds) - kwarg_ds = {self._kwarg_ds: ds} - return self._func(**kwarg_ds) - - def _rechunk(self, ds): - if self._dim is None: - return ds - dim = [self._dim] if isinstance(self._dim, str) else self._dim - dim_other = [d for d in ds.dims if d not in dim] - chunks = {d: -1 for d in dim} - for d in dim_other: - chunks[d] = 1 - return ds.chunk(chunks) - - -def verify(fcst, obs, func_path, inputs, **kwargs): - func = _resolve_function(func_path=func_path) - datasets = { - "forecast": fcst, - "observation": obs, - } - input_kwargs = {arg_name: datasets[ds_type] for arg_name, ds_type in inputs.items()} - - all_kwargs = {**input_kwargs, **kwargs} - - result = func(**all_kwargs) - return result diff --git a/tests/conftest.py b/tests/conftest.py new file mode 100644 index 0000000..d62ac11 --- /dev/null +++ b/tests/conftest.py @@ -0,0 +1,80 @@ +"""Shared fixtures and time coordinates for the ``mxalign`` test suite.""" + +import numpy as np +import pytest +import xarray as xr + +import mxalign # registers ds.mx accessor # noqa: F401 + +# --------------------------------------------------------------------------- +# Shared time coordinates +# --------------------------------------------------------------------------- + +T0 = np.datetime64("2020-01-01T00:00", "ns") +H6 = np.timedelta64(6, "h") + +REFERENCE_TIMES = np.array([T0, T0 + H6, T0 + 2 * H6]) +LEAD_TIMES = np.array([np.timedelta64(h, "h") for h in [0, 6, 12, 18]]) + +# Forecast value convention: values[i, j] = float(i * 10 + j) +# Row 0 (ref=T0): 0, 1, 2, 3 +# Row 1 (ref=T0+6h): 10, 11, 12, 13 +# Row 2 (ref=T0+12h): 20, 21, 22, 23 +FORECAST_VALUES = np.array([[float(i * 10 + j) for j in range(4)] for i in range(3)]) + +# Observation covers T0-6h … T0+24h (7 steps) +OBS_TIMES = np.array([T0 + i * H6 for i in range(-1, 5)]) # T0-6h … T0+24h +OBS_VALUES = np.arange(len(OBS_TIMES), dtype=float) * 10.0 # 0, 10, 20, 30, 40, 50 + + +def _props(time: str) -> dict: + """Build the ``mlwp_*`` trait attributes for a deterministic point dataset. + + Parameters + ---------- + time : str + Value of the ``mlwp_time_trait`` attribute, e.g. ``"forecast"``. + + Returns + ------- + dict + Trait attributes to attach to a dataset's ``attrs``. + """ + return { + "mlwp_time_trait": time, + "mlwp_space_trait": "point", + "mlwp_uncertainty_trait": "deterministic", + } + + +@pytest.fixture +def ds_fcst() -> xr.Dataset: + """Provide a point forecast with 3 reference times and 4 lead times. + + Returns + ------- + xr.Dataset + Forecast with ``temp[i, j] = i * 10 + j`` over ``reference_time`` and + ``lead_time``. + """ + return xr.Dataset( + {"temp": (["reference_time", "lead_time"], FORECAST_VALUES)}, + coords={"reference_time": REFERENCE_TIMES, "lead_time": LEAD_TIMES}, + attrs=_props("forecast"), + ) + + +@pytest.fixture +def ds_obs() -> xr.Dataset: + """Provide a point observation with 6 valid times from T0-6h to T0+24h. + + Returns + ------- + xr.Dataset + Observation with ``temp`` values 0, 10, ..., 50 along ``valid_time``. + """ + return xr.Dataset( + {"temp": ("valid_time", OBS_VALUES)}, + coords={"valid_time": OBS_TIMES}, + attrs=_props("observation"), + ) diff --git a/tests/test_accessor.py b/tests/test_accessor.py new file mode 100644 index 0000000..777c8da --- /dev/null +++ b/tests/test_accessor.py @@ -0,0 +1,109 @@ +"""Tests for ``ds.mx`` accessor state: trait reading and non-mutation.""" + +import cartopy.crs as ccrs +import numpy as np +import pytest +import xarray as xr + +import mxalign # registers ds.mx accessor # noqa: F401 + + +@pytest.fixture +def ds_grid() -> xr.Dataset: + """Provide a 2×2 grid stacked to ``grid_index``, with lon/lat in 0..1. + + Returns + ------- + xr.Dataset + Stacked grid forecast with ``temp`` values 0..3. + """ + return xr.Dataset( + {"temp": ("grid_index", np.arange(4.0))}, + coords={ + "longitude": ("grid_index", [0.0, 1.0, 0.0, 1.0]), + "latitude": ("grid_index", [0.0, 0.0, 1.0, 1.0]), + }, + attrs={"mlwp_space_trait": "grid", "mlwp_time_trait": "forecast"}, + ) + + +class TestTraits: + """Group tests of reading traits through the accessor.""" + + def test_predicates_follow_attr_changes(self, ds_grid: xr.Dataset) -> None: + """Check that trait predicates reflect changes to the dataset attrs. + + Parameters + ---------- + ds_grid : xr.Dataset + Stacked grid forecast fixture. + """ + assert ds_grid.mx.is_forecast() + ds_grid.attrs["mlwp_time_trait"] = "observation" + assert ds_grid.mx.is_observation() + assert not ds_grid.mx.is_forecast() + + def test_missing_trait_raises_on_use_not_on_access(self) -> None: + """Check that a missing trait raises only when a predicate needs it.""" + ds = xr.Dataset({"temp": ("grid_index", np.arange(4.0))}) + assert ds.mx.is_stacked() # needs no traits + with pytest.raises(KeyError, match="mlwp_space_trait"): + ds.mx.is_grid() + + +class TestNoMutation: + """Group tests that accessor methods do not mutate the source dataset.""" + + def test_add_xy_with_crs_leaves_dataset_untouched( + self, ds_grid: xr.Dataset + ) -> None: + """Check that ``add_xy`` with an explicit CRS leaves the input unchanged. + + Parameters + ---------- + ds_grid : xr.Dataset + Stacked grid forecast fixture. + """ + out = ds_grid.mx.add_xy(crs=ccrs.PlateCarree()) + + np.testing.assert_allclose(out["xc"].values, ds_grid["longitude"].values) + assert "crs" not in ds_grid.attrs + # The accessor still sees the original dataset, which has no CRS + with pytest.raises(ValueError, match="No CRS"): + ds_grid.mx.add_xy() + + def test_unstack_with_crs_leaves_dataset_untouched( + self, ds_grid: xr.Dataset + ) -> None: + """Check that ``unstack`` with an explicit CRS leaves the input unchanged. + + Parameters + ---------- + ds_grid : xr.Dataset + Stacked grid forecast fixture. + """ + out = ds_grid.mx.unstack( + crs=ccrs.PlateCarree(), nx=2, ny=2, lon_ll=0, lat_ll=0, dx=1, dy=1 + ) + + assert out["temp"].dims == ("yc", "xc") + assert "crs" not in ds_grid.attrs + assert ds_grid.mx.stack() is ds_grid + + +class TestStack: + """Group tests of stacking grids to ``grid_index``.""" + + def test_stack_regular_latlon_grid(self) -> None: + """Check that a regular lat/lon grid stacks to a 1D ``grid_index``.""" + ds = xr.Dataset( + {"temp": (["latitude", "longitude"], np.zeros((2, 3)))}, + coords={"latitude": [0.0, 1.0], "longitude": [0.0, 1.0, 2.0]}, + attrs={"mlwp_space_trait": "grid", "mlwp_time_trait": "forecast"}, + ) + + out = ds.mx.stack() + + assert out["temp"].dims == ("grid_index",) + assert out.sizes["grid_index"] == 6 + assert out["latitude"].dims == out["longitude"].dims == ("grid_index",) diff --git a/tests/test_align_space.py b/tests/test_align_space.py new file mode 100644 index 0000000..39e6932 --- /dev/null +++ b/tests/test_align_space.py @@ -0,0 +1,288 @@ +"""Tests for ds.mx.align_space_with() covering all spatial alignment cases. + +Fixtures: + + ds_grid — 3×3 lat/lon grid, temp[i, j] = lat[i] + lon[j] + lat: 0°, 1°, 2° lon: 0°, 1°, 2° + + ds_point — 3 observation points: + point 0: (lat=0.0, lon=0.0) — exact grid node → expected temp=0.0 + point 1: (lat=0.5, lon=0.5) — interior → expected temp=1.0 + point 2: (lat=1.0, lon=1.0) — exact grid node → expected temp=2.0 + +Pure interpolation logic (values, coords) is tested in test_interpolations.py. +These tests focus on trait propagation and accessor dispatch. +""" + +import numpy as np +import pytest +import xarray as xr + +import mxalign # registers ds.mx accessor # noqa: F401 + +# --------------------------------------------------------------------------- +# Helpers / fixtures +# --------------------------------------------------------------------------- + + +def _props(space: str, time: str = "forecast") -> dict: + """Build the ``mlwp_*`` trait attributes for a deterministic dataset. + + Parameters + ---------- + space : str + Value of the ``mlwp_space_trait`` attribute, e.g. ``"grid"``. + time : str, default "forecast" + Value of the ``mlwp_time_trait`` attribute. + + Returns + ------- + dict + Trait attributes to attach to a dataset's ``attrs``. + """ + return { + "mlwp_space_trait": space, + "mlwp_time_trait": time, + "mlwp_uncertainty_trait": "deterministic", + } + + +@pytest.fixture +def ds_grid() -> xr.Dataset: + """Provide a 3×3 lat/lon grid forecast with ``temp[i, j] = lat[i] + lon[j]``. + + Returns + ------- + xr.Dataset + Grid forecast on latitudes and longitudes 0, 1, 2. + """ + lats = np.array([0.0, 1.0, 2.0]) + lons = np.array([0.0, 1.0, 2.0]) + temp = lats[:, np.newaxis] + lons[np.newaxis, :] + return xr.Dataset( + {"temp": (["latitude", "longitude"], temp)}, + coords={"latitude": lats, "longitude": lons}, + attrs=_props("grid"), + ) + + +@pytest.fixture +def ds_point() -> xr.Dataset: + """Provide 3 observation points, two on grid nodes and one interior. + + Returns + ------- + xr.Dataset + Point observation along ``point_index``. + """ + return xr.Dataset( + {"temp": ("point_index", np.array([0.0, 1.0, 2.0]))}, + coords={ + "latitude": ("point_index", np.array([0.0, 0.5, 1.0])), + "longitude": ("point_index", np.array([0.0, 0.5, 1.0])), + }, + attrs=_props("point", "observation"), + ) + + +# --------------------------------------------------------------------------- +# Case 1: Grid → Grid +# --------------------------------------------------------------------------- + + +class TestGridToGrid: + """Group tests of aligning a grid dataset to another grid.""" + + def test_identical_grids_return_self(self, ds_grid: xr.Dataset) -> None: + """Check that aligning a grid to itself returns the same object. + + Parameters + ---------- + ds_grid : xr.Dataset + Lat/lon grid forecast fixture. + """ + result = ds_grid.mx.align_space_with(ds_grid) + + assert result is ds_grid + + def test_within_tolerance_treated_as_equal(self, ds_grid: xr.Dataset) -> None: + """Check that grids differing within tolerance are treated as equal. + + Parameters + ---------- + ds_grid : xr.Dataset + Lat/lon grid forecast fixture. + """ + ds_grid2 = ds_grid.assign_coords( + latitude=ds_grid.latitude + 1e-5, + longitude=ds_grid.longitude + 1e-5, + ).assign_attrs(_props("grid")) + result = ds_grid.mx.align_space_with(ds_grid2) + + assert result is ds_grid + + def test_different_grids_raise(self, ds_grid: xr.Dataset) -> None: + """Check that aligning to a different grid raises ``NotImplementedError``. + + Parameters + ---------- + ds_grid : xr.Dataset + Lat/lon grid forecast fixture. + """ + ds_grid2 = ds_grid.assign_coords( + latitude=ds_grid.latitude + 10.0, + ).assign_attrs(_props("grid")) + + with pytest.raises(NotImplementedError): + ds_grid.mx.align_space_with(ds_grid2) + + def test_result_stays_grid(self, ds_grid: xr.Dataset) -> None: + """Check that grid-to-grid alignment keeps the grid space trait. + + Parameters + ---------- + ds_grid : xr.Dataset + Lat/lon grid forecast fixture. + """ + result = ds_grid.mx.align_space_with(ds_grid) + + assert result.mx.is_grid() + assert not result.mx.is_point() + + +# --------------------------------------------------------------------------- +# Case 2: Grid → Point (xarray interpolator) +# --------------------------------------------------------------------------- + + +class TestGridToPoint: + """Group tests of interpolating a grid dataset to point locations.""" + + def test_result_has_point_trait( + self, ds_grid: xr.Dataset, ds_point: xr.Dataset + ) -> None: + """Check that grid-to-point alignment sets the point space trait. + + Parameters + ---------- + ds_grid : xr.Dataset + Lat/lon grid forecast fixture. + ds_point : xr.Dataset + Point observation fixture. + """ + result = ds_grid.mx.align_space_with(ds_point, method="xarray") + + assert result.mx.is_point() + assert not result.mx.is_grid() + + def test_result_has_point_index_dim( + self, ds_grid: xr.Dataset, ds_point: xr.Dataset + ) -> None: + """Check that grid-to-point alignment produces a ``point_index`` dim. + + Parameters + ---------- + ds_grid : xr.Dataset + Lat/lon grid forecast fixture. + ds_point : xr.Dataset + Point observation fixture. + """ + result = ds_grid.mx.align_space_with(ds_point, method="xarray") + + assert "point_index" in result.dims + + def test_result_has_target_latlon_coords( + self, ds_grid: xr.Dataset, ds_point: xr.Dataset + ) -> None: + """Check that grid-to-point alignment copies the target lat/lon coords. + + Parameters + ---------- + ds_grid : xr.Dataset + Lat/lon grid forecast fixture. + ds_point : xr.Dataset + Point observation fixture. + """ + result = ds_grid.mx.align_space_with(ds_point, method="xarray") + + np.testing.assert_array_equal( + result["latitude"].values, ds_point["latitude"].values + ) + np.testing.assert_array_equal( + result["longitude"].values, ds_point["longitude"].values + ) + + def test_interpolated_values_xarray( + self, ds_grid: xr.Dataset, ds_point: xr.Dataset + ) -> None: + """Check that the xarray method interpolates the expected point values. + + Parameters + ---------- + ds_grid : xr.Dataset + Lat/lon grid forecast fixture. + ds_point : xr.Dataset + Point observation fixture. + """ + result = ds_grid.mx.align_space_with(ds_point, method="xarray") + + assert result["temp"].isel(point_index=0).item() == pytest.approx(0.0) + assert result["temp"].isel(point_index=1).item() == pytest.approx(1.0) + assert result["temp"].isel(point_index=2).item() == pytest.approx(2.0) + + def test_interpolated_values_delaunay( + self, ds_grid: xr.Dataset, ds_point: xr.Dataset + ) -> None: + """Check that the Delaunay method interpolates the expected point values. + + Parameters + ---------- + ds_grid : xr.Dataset + Lat/lon grid forecast fixture. + ds_point : xr.Dataset + Point observation fixture. + """ + ds_stacked = ds_grid.stack(grid_index=["latitude", "longitude"]).reset_index( + "grid_index" + ) + ds_stacked.attrs.update(_props("grid")) + result = ds_stacked.mx.align_space_with(ds_point, method="delaunay") + + assert result["temp"].isel(point_index=0).item() == pytest.approx(0.0) + assert result["temp"].isel(point_index=1).item() == pytest.approx(1.0) + assert result["temp"].isel(point_index=2).item() == pytest.approx(2.0) + + +# --------------------------------------------------------------------------- +# Case 3: Point → * (not implemented) +# --------------------------------------------------------------------------- + + +class TestPointAlignmentNotImplemented: + """Group tests that aligning from point datasets is not implemented.""" + + def test_point_to_grid_raises( + self, ds_point: xr.Dataset, ds_grid: xr.Dataset + ) -> None: + """Check that aligning a point dataset to a grid raises. + + Parameters + ---------- + ds_point : xr.Dataset + Point observation fixture. + ds_grid : xr.Dataset + Lat/lon grid forecast fixture. + """ + with pytest.raises(NotImplementedError): + ds_point.mx.align_space_with(ds_grid) + + def test_point_to_point_raises(self, ds_point: xr.Dataset) -> None: + """Check that aligning a point dataset to points raises. + + Parameters + ---------- + ds_point : xr.Dataset + Point observation fixture. + """ + with pytest.raises(NotImplementedError): + ds_point.mx.align_space_with(ds_point) diff --git a/tests/test_align_time.py b/tests/test_align_time.py new file mode 100644 index 0000000..5d82b57 --- /dev/null +++ b/tests/test_align_time.py @@ -0,0 +1,698 @@ +"""Tests for ds.mx.align_time_with() covering all four alignment cases. + +Fixtures (defined in conftest.py): + + ds_fcst — 3 reference_times × 4 lead_times, values[i,j] = float(i*10 + j) + ref: T0, T0+6h, T0+12h + lead: 0h, 6h, 12h, 18h + + ds_obs — 6 valid_times from T0-6h to T0+24h (step 6h) + values: 0, 10, 20, 30, 40, 50 (each 10 apart for easy reading) + +Valid-time coverage from ds_fcst: + T0 → only (ref=T0, lead=0h) = 0 + T0+6h → (T0,6h)=1 or (T0+6h,0h)=10 + T0+12h → (T0,12h)=2 or (T0+6h,6h)=11 or (T0+12h,0h)=20 + T0+18h → (T0,18h)=3 or (T0+6h,12h)=12 or (T0+12h,6h)=21 + T0+24h → (T0+6h,18h)=13 or (T0+12h,12h)=22 + T0+30h → only (T0+12h,18h)=23 [not in obs] +""" + +import numpy as np +import pytest +import xarray as xr +from numpy.typing import ArrayLike + +T0 = np.datetime64("2020-01-01T00:00", "ns") +H6 = np.timedelta64(6, "h") + + +# --------------------------------------------------------------------------- +# Helpers +# --------------------------------------------------------------------------- + + +def _props(time: str) -> dict: + """Build the ``mlwp_*`` trait attributes for a deterministic point dataset. + + Parameters + ---------- + time : str + Value of the ``mlwp_time_trait`` attribute, e.g. ``"forecast"``. + + Returns + ------- + dict + Trait attributes to attach to a dataset's ``attrs``. + """ + return { + "mlwp_time_trait": time, + "mlwp_space_trait": "point", + "mlwp_uncertainty_trait": "deterministic", + } + + +def obs(valid_times: ArrayLike, values: ArrayLike) -> xr.Dataset: + """Build a point observation dataset. + + Parameters + ---------- + valid_times : ArrayLike + Values of the ``valid_time`` coordinate. + values : ArrayLike + Values of ``temp`` along ``valid_time``. + + Returns + ------- + xr.Dataset + Observation dataset with a ``temp`` variable. + """ + return xr.Dataset( + {"temp": ("valid_time", np.asarray(values, dtype=float))}, + coords={"valid_time": np.asarray(valid_times)}, + attrs=_props("observation"), + ) + + +def fcst( + reference_times: ArrayLike, lead_times: ArrayLike, values: ArrayLike +) -> xr.Dataset: + """Build a point forecast dataset. + + Parameters + ---------- + reference_times : ArrayLike + Values of the ``reference_time`` coordinate. + lead_times : ArrayLike + Values of the ``lead_time`` coordinate. + values : ArrayLike + Values of ``temp`` with shape ``(reference_time, lead_time)``. + + Returns + ------- + xr.Dataset + Forecast dataset with a ``temp`` variable. + """ + return xr.Dataset( + {"temp": (["reference_time", "lead_time"], np.asarray(values, dtype=float))}, + coords={ + "reference_time": np.asarray(reference_times), + "lead_time": np.asarray(lead_times), + }, + attrs=_props("forecast"), + ) + + +# --------------------------------------------------------------------------- +# Case 1: Forecast → Observation +# --------------------------------------------------------------------------- + + +class TestForecastToObservation: + """Group tests of aligning a forecast to observation valid times.""" + + def test_shortest_lead_time(self, ds_fcst: xr.Dataset, ds_obs: xr.Dataset) -> None: + """Check that ``lead_time="shortest"`` picks the shortest lead per valid time. + + Parameters + ---------- + ds_fcst : xr.Dataset + Point forecast fixture. + ds_obs : xr.Dataset + Point observation fixture. + """ + result = ds_fcst.mx.align_time_with(ds_obs, lead_time="shortest") + + assert result.mx.is_observation() + assert list(result.valid_time.values) == list(ds_obs.valid_time.values) + + # T0-6h has no forecast coverage → NaN + assert np.isnan(result["temp"].sel(valid_time=T0 - H6).item()) + + # For each covered time, shortest lead_time wins + assert result["temp"].sel(valid_time=T0).item() == 0.0 # only (T0, 0h) + assert ( + result["temp"].sel(valid_time=T0 + H6).item() == 10.0 + ) # (T0+6h, 0h) beats (T0, 6h) + assert ( + result["temp"].sel(valid_time=T0 + 2 * H6).item() == 20.0 + ) # (T0+12h, 0h) is shortest + assert ( + result["temp"].sel(valid_time=T0 + 3 * H6).item() == 21.0 + ) # (T0+12h, 6h) is shortest + assert ( + result["temp"].sel(valid_time=T0 + 4 * H6).item() == 22.0 + ) # (T0+12h, 12h) is shortest + + def test_longest_lead_time(self, ds_fcst: xr.Dataset, ds_obs: xr.Dataset) -> None: + """Check that ``lead_time="longest"`` picks the longest lead per valid time. + + Parameters + ---------- + ds_fcst : xr.Dataset + Point forecast fixture. + ds_obs : xr.Dataset + Point observation fixture. + """ + result = ds_fcst.mx.align_time_with(ds_obs, lead_time="longest") + + assert result.mx.is_observation() + assert np.isnan(result["temp"].sel(valid_time=T0 - H6).item()) + + assert result["temp"].sel(valid_time=T0).item() == 0.0 # only one entry + assert ( + result["temp"].sel(valid_time=T0 + H6).item() == 1.0 + ) # (T0, 6h) beats (T0+6h, 0h) + assert ( + result["temp"].sel(valid_time=T0 + 2 * H6).item() == 2.0 + ) # (T0, 12h) is longest + assert ( + result["temp"].sel(valid_time=T0 + 3 * H6).item() == 3.0 + ) # (T0, 18h) is longest + assert ( + result["temp"].sel(valid_time=T0 + 4 * H6).item() == 13.0 + ) # (T0+6h, 18h) beats (T0+12h, 12h) + + def test_specific_lead_time(self, ds_fcst: xr.Dataset, ds_obs: xr.Dataset) -> None: + """Check that a specific ``lead_time`` only fills times it produces. + + Parameters + ---------- + ds_fcst : xr.Dataset + Point forecast fixture. + ds_obs : xr.Dataset + Point observation fixture. + """ + lt = np.timedelta64(6, "h") + result = ds_fcst.mx.align_time_with(ds_obs, lead_time=lt) + + assert result.mx.is_observation() + # Only T0+6h, T0+12h, T0+18h are produced by lead_time=6h + assert np.isnan(result["temp"].sel(valid_time=T0 - H6).item()) + assert np.isnan(result["temp"].sel(valid_time=T0).item()) + assert result["temp"].sel(valid_time=T0 + H6).item() == 1.0 # (T0, 6h) + assert result["temp"].sel(valid_time=T0 + 2 * H6).item() == 11.0 # (T0+6h, 6h) + assert result["temp"].sel(valid_time=T0 + 3 * H6).item() == 21.0 # (T0+12h, 6h) + assert np.isnan(result["temp"].sel(valid_time=T0 + 4 * H6).item()) + + def test_lead_time_as_string(self, ds_fcst: xr.Dataset, ds_obs: xr.Dataset) -> None: + """Check that a string ``lead_time`` matches the equivalent timedelta. + + Parameters + ---------- + ds_fcst : xr.Dataset + Point forecast fixture. + ds_obs : xr.Dataset + Point observation fixture. + """ + expected = ds_fcst.mx.align_time_with(ds_obs, lead_time=np.timedelta64(6, "h")) + result = ds_fcst.mx.align_time_with(ds_obs, lead_time="6h") + xr.testing.assert_identical(result, expected) + + @pytest.mark.parametrize( + "lead_time", + [["6h", "12h"], np.array([6, 12], dtype="timedelta64[h]")], + ids=["list", "ndarray"], + ) + def test_multiple_lead_times( + self, + ds_fcst: xr.Dataset, + ds_obs: xr.Dataset, + lead_time: list[str] | np.ndarray, + ) -> None: + """Check that several lead times are combined, earliest reference first. + + Parameters + ---------- + ds_fcst : xr.Dataset + Point forecast fixture. + ds_obs : xr.Dataset + Point observation fixture. + lead_time : list[str] | np.ndarray + Lead times to select, as strings or a timedelta array. + """ + result = ds_fcst.mx.align_time_with(ds_obs, lead_time=lead_time) + + assert np.isnan(result["temp"].sel(valid_time=T0).item()) # only 0h reaches T0 + assert result["temp"].sel(valid_time=T0 + H6).item() == 1.0 # (T0, 6h) + # (T0, 12h) and (T0+6h, 6h) both match → earliest reference_time wins + assert result["temp"].sel(valid_time=T0 + 2 * H6).item() == 2.0 + + @pytest.mark.parametrize( + "lead_time, match", + [ + ("shortst", "Unknown lead_time"), + ("union", "Unknown lead_time"), + (6, "needs a unit"), + ("7h", "not in forecast lead times"), + (["6h", "24h"], "not in forecast lead times"), + ], + ) + def test_invalid_lead_time_raises( + self, + ds_fcst: xr.Dataset, + ds_obs: xr.Dataset, + lead_time: str | int | list[str], + match: str, + ) -> None: + """Check that an invalid ``lead_time`` raises ``ValueError``. + + Parameters + ---------- + ds_fcst : xr.Dataset + Point forecast fixture. + ds_obs : xr.Dataset + Point observation fixture. + lead_time : str | int | list[str] + Invalid lead time option. + match : str + Pattern expected in the error message. + """ + with pytest.raises(ValueError, match=match): + ds_fcst.mx.align_time_with(ds_obs, lead_time=lead_time) + + def test_nan_filled_for_times_not_in_forecast( + self, ds_fcst: xr.Dataset, ds_obs: xr.Dataset + ) -> None: + """Check that valid times the forecast never reaches are NaN. + + Parameters + ---------- + ds_fcst : xr.Dataset + Point forecast fixture. + ds_obs : xr.Dataset + Point observation fixture. + """ + result = ds_fcst.mx.align_time_with(ds_obs, lead_time="shortest") + # T0-6h is in obs but never produced by any (ref_time, lead_time) pair + assert np.isnan(result["temp"].sel(valid_time=T0 - H6).item()) + + def test_result_has_observation_property( + self, ds_fcst: xr.Dataset, ds_obs: xr.Dataset + ) -> None: + """Check that the result carries the observation time trait. + + Parameters + ---------- + ds_fcst : xr.Dataset + Point forecast fixture. + ds_obs : xr.Dataset + Point observation fixture. + """ + result = ds_fcst.mx.align_time_with(ds_obs, lead_time="shortest") + assert result.mx.is_observation() + assert not result.mx.is_forecast() + + +# --------------------------------------------------------------------------- +# Case 2: Observation → Forecast +# --------------------------------------------------------------------------- + + +class TestObservationToForecast: + """Group tests of reshaping an observation onto a forecast grid.""" + + def test_values_placed_at_correct_positions( + self, ds_obs: xr.Dataset, ds_fcst: xr.Dataset + ) -> None: + """Check that observations land at the matching (reference, lead) cells. + + Parameters + ---------- + ds_obs : xr.Dataset + Point observation fixture. + ds_fcst : xr.Dataset + Point forecast fixture. + """ + result = ds_obs.mx.align_time_with(ds_fcst) + + assert result.mx.is_forecast() + assert set(result.dims) == {"reference_time", "lead_time"} + + # obs values: T0→10, T0+6h→20, T0+12h→30, T0+18h→40, T0+24h→50 + assert ( + result["temp"] + .sel(reference_time=T0, lead_time=np.timedelta64(0, "h")) + .item() + == 10.0 + ) + assert ( + result["temp"] + .sel(reference_time=T0, lead_time=np.timedelta64(6, "h")) + .item() + == 20.0 + ) + assert ( + result["temp"] + .sel(reference_time=T0 + H6, lead_time=np.timedelta64(6, "h")) + .item() + == 30.0 + ) + assert ( + result["temp"] + .sel(reference_time=T0 + H6, lead_time=np.timedelta64(18, "h")) + .item() + == 50.0 + ) + + def test_nan_where_obs_missing( + self, ds_obs: xr.Dataset, ds_fcst: xr.Dataset + ) -> None: + """Check that cells whose valid time has no observation are NaN. + + Parameters + ---------- + ds_obs : xr.Dataset + Point observation fixture. + ds_fcst : xr.Dataset + Point forecast fixture. + """ + result = ds_obs.mx.align_time_with(ds_fcst) + + # T0+30h is not in obs; it appears at (T0+12h, lead=18h) + assert np.isnan( + result["temp"] + .sel( + reference_time=T0 + 2 * H6, + lead_time=np.timedelta64(18, "h"), + ) + .item() + ) + + def test_obs_value_repeated_for_shared_valid_times( + self, ds_obs: xr.Dataset, ds_fcst: xr.Dataset + ) -> None: + """Check that one observation fills every cell sharing its valid time. + + Parameters + ---------- + ds_obs : xr.Dataset + Point observation fixture. + ds_fcst : xr.Dataset + Point forecast fixture. + """ + result = ds_obs.mx.align_time_with(ds_fcst) + + # T0+12h appears at (T0,12h), (T0+6h,6h), (T0+12h,0h) — all should equal 30.0 + assert ( + result["temp"] + .sel(reference_time=T0, lead_time=np.timedelta64(12, "h")) + .item() + == 30.0 + ) + assert ( + result["temp"] + .sel(reference_time=T0 + H6, lead_time=np.timedelta64(6, "h")) + .item() + == 30.0 + ) + assert ( + result["temp"] + .sel(reference_time=T0 + 2 * H6, lead_time=np.timedelta64(0, "h")) + .item() + == 30.0 + ) + + def test_result_has_forecast_property( + self, ds_obs: xr.Dataset, ds_fcst: xr.Dataset + ) -> None: + """Check that the result carries the forecast time trait. + + Parameters + ---------- + ds_obs : xr.Dataset + Point observation fixture. + ds_fcst : xr.Dataset + Point forecast fixture. + """ + result = ds_obs.mx.align_time_with(ds_fcst) + assert result.mx.is_forecast() + assert not result.mx.is_observation() + + +# --------------------------------------------------------------------------- +# Case 3: Observation → Observation +# --------------------------------------------------------------------------- + + +class TestObservationToObservation: + """Group tests of aligning an observation to another observation.""" + + @pytest.fixture + def ds_obs1(self) -> xr.Dataset: + """Provide an observation at T0 .. T0+18h with values 0..3. + + Returns + ------- + xr.Dataset + Source observation dataset. + """ + times = np.array([T0, T0 + H6, T0 + 2 * H6, T0 + 3 * H6]) + return obs(times, [0.0, 1.0, 2.0, 3.0]) + + @pytest.fixture + def ds_obs2(self) -> xr.Dataset: + """Provide an observation at T0+6h .. T0+24h with values 10..40. + + Returns + ------- + xr.Dataset + Target observation dataset. + """ + times = np.array([T0 + H6, T0 + 2 * H6, T0 + 3 * H6, T0 + 4 * H6]) + return obs(times, [10.0, 20.0, 30.0, 40.0]) + + def test_reindexes_to_ds2_valid_times( + self, ds_obs1: xr.Dataset, ds_obs2: xr.Dataset + ) -> None: + """Check that the result is reindexed onto the target valid times. + + Parameters + ---------- + ds_obs1 : xr.Dataset + Source observation fixture. + ds_obs2 : xr.Dataset + Target observation fixture. + """ + result = ds_obs1.mx.align_time_with(ds_obs2) + + assert list(result.valid_time.values) == list(ds_obs2.valid_time.values) + # T0+24h is in ds2 but not ds1 → NaN + assert np.isnan(result["temp"].sel(valid_time=T0 + 4 * H6).item()) + # Overlapping times retain ds1 values + assert result["temp"].sel(valid_time=T0 + H6).item() == 1.0 + assert result["temp"].sel(valid_time=T0 + 2 * H6).item() == 2.0 + assert result["temp"].sel(valid_time=T0 + 3 * H6).item() == 3.0 + + def test_ds1_only_times_are_dropped( + self, ds_obs1: xr.Dataset, ds_obs2: xr.Dataset + ) -> None: + """Check that valid times only in the source are dropped. + + Parameters + ---------- + ds_obs1 : xr.Dataset + Source observation fixture. + ds_obs2 : xr.Dataset + Target observation fixture. + """ + result = ds_obs1.mx.align_time_with(ds_obs2) + assert T0 not in result.valid_time.values # only in ds1 + + def test_result_stays_observation( + self, ds_obs1: xr.Dataset, ds_obs2: xr.Dataset + ) -> None: + """Check that observation-to-observation alignment keeps the trait. + + Parameters + ---------- + ds_obs1 : xr.Dataset + Source observation fixture. + ds_obs2 : xr.Dataset + Target observation fixture. + """ + result = ds_obs1.mx.align_time_with(ds_obs2) + assert result.mx.is_observation() + + +# --------------------------------------------------------------------------- +# Case 4: Forecast → Forecast +# --------------------------------------------------------------------------- + + +class TestForecastToForecast: + """Group tests of aligning a forecast to another forecast.""" + + @pytest.fixture + def ds_fcst2(self) -> xr.Dataset: + """Provide a zero-valued forecast at T0+6h .. T0+18h with 6h and 12h leads. + + Returns + ------- + xr.Dataset + Target forecast dataset. + """ + ref = np.array([T0 + H6, T0 + 2 * H6, T0 + 3 * H6]) + lead = np.array([np.timedelta64(6, "h"), np.timedelta64(12, "h")]) + values = np.zeros((3, 2)) + return fcst(ref, lead, values) + + def test_reindexes_to_ds2_reference_times( + self, ds_fcst: xr.Dataset, ds_fcst2: xr.Dataset + ) -> None: + """Check that the result is reindexed onto the target reference times. + + Parameters + ---------- + ds_fcst : xr.Dataset + Source point forecast fixture. + ds_fcst2 : xr.Dataset + Target forecast fixture. + """ + result = ds_fcst.mx.align_time_with(ds_fcst2, lead_time="reference") + + np.testing.assert_array_equal( + result.reference_time.values, ds_fcst2.reference_time.values + ) + + def test_lead_time_reference_drops_ds1_only_leads( + self, ds_fcst: xr.Dataset, ds_fcst2: xr.Dataset + ) -> None: + """Check that ``lead_time="reference"`` drops leads only in the source. + + Parameters + ---------- + ds_fcst : xr.Dataset + Source point forecast fixture. + ds_fcst2 : xr.Dataset + Target forecast fixture. + """ + result = ds_fcst.mx.align_time_with(ds_fcst2, lead_time="reference") + + np.testing.assert_array_equal( + result.lead_time.values, ds_fcst2.lead_time.values + ) + assert np.timedelta64(0, "h") not in result.lead_time.values + assert np.timedelta64(18, "h") not in result.lead_time.values + + def test_nan_for_ref_times_not_in_ds1( + self, ds_fcst: xr.Dataset, ds_fcst2: xr.Dataset + ) -> None: + """Check that reference times missing from the source are all NaN. + + Parameters + ---------- + ds_fcst : xr.Dataset + Source point forecast fixture. + ds_fcst2 : xr.Dataset + Target forecast fixture. + """ + result = ds_fcst.mx.align_time_with(ds_fcst2, lead_time="reference") + + # T0+18h is in ds_fcst2 but not ds_fcst → all NaN + assert np.isnan(result["temp"].sel(reference_time=T0 + 3 * H6).values).all() + + def test_values_preserved_for_common_ref_times( + self, ds_fcst: xr.Dataset, ds_fcst2: xr.Dataset + ) -> None: + """Check that source values are kept at shared (reference, lead) cells. + + Parameters + ---------- + ds_fcst : xr.Dataset + Source point forecast fixture. + ds_fcst2 : xr.Dataset + Target forecast fixture. + """ + result = ds_fcst.mx.align_time_with(ds_fcst2, lead_time="reference") + + assert ( + result["temp"] + .sel(reference_time=T0 + H6, lead_time=np.timedelta64(6, "h")) + .item() + == 11.0 + ) + assert ( + result["temp"] + .sel(reference_time=T0 + H6, lead_time=np.timedelta64(12, "h")) + .item() + == 12.0 + ) + assert ( + result["temp"] + .sel(reference_time=T0 + 2 * H6, lead_time=np.timedelta64(6, "h")) + .item() + == 21.0 + ) + assert ( + result["temp"] + .sel(reference_time=T0 + 2 * H6, lead_time=np.timedelta64(12, "h")) + .item() + == 22.0 + ) + + def test_lead_time_intersection_keeps_common_leads( + self, ds_fcst: xr.Dataset, ds_fcst2: xr.Dataset + ) -> None: + """Check that ``lead_time="intersection"`` keeps only shared leads. + + Parameters + ---------- + ds_fcst : xr.Dataset + Source point forecast fixture. + ds_fcst2 : xr.Dataset + Target forecast fixture. + """ + result = ds_fcst.mx.align_time_with(ds_fcst2, lead_time="intersection") + + expected_lead = np.array([np.timedelta64(6, "h"), np.timedelta64(12, "h")]) + np.testing.assert_array_equal(result.lead_time.values, expected_lead) + assert np.timedelta64(0, "h") not in result.lead_time.values + assert np.timedelta64(18, "h") not in result.lead_time.values + + def test_lead_time_union_keeps_all_leads( + self, ds_fcst: xr.Dataset, ds_fcst2: xr.Dataset + ) -> None: + """Check that ``lead_time="union"`` keeps the leads of both forecasts. + + Parameters + ---------- + ds_fcst : xr.Dataset + Source point forecast fixture. + ds_fcst2 : xr.Dataset + Target forecast fixture. + """ + result = ds_fcst.mx.align_time_with(ds_fcst2, lead_time="union") + + expected_lead = np.array([np.timedelta64(h, "h") for h in [0, 6, 12, 18]]) + np.testing.assert_array_equal(result.lead_time.values, expected_lead) + + def test_result_has_valid_time_coord( + self, ds_fcst: xr.Dataset, ds_fcst2: xr.Dataset + ) -> None: + """Check that the aligned forecast has a ``valid_time`` coordinate. + + Parameters + ---------- + ds_fcst : xr.Dataset + Source point forecast fixture. + ds_fcst2 : xr.Dataset + Target forecast fixture. + """ + result = ds_fcst.mx.align_time_with(ds_fcst2, lead_time="reference") + assert "valid_time" in result.coords + + def test_result_stays_forecast( + self, ds_fcst: xr.Dataset, ds_fcst2: xr.Dataset + ) -> None: + """Check that forecast-to-forecast alignment keeps the forecast trait. + + Parameters + ---------- + ds_fcst : xr.Dataset + Source point forecast fixture. + ds_fcst2 : xr.Dataset + Target forecast fixture. + """ + result = ds_fcst.mx.align_time_with(ds_fcst2, lead_time="reference") + assert result.mx.is_forecast() diff --git a/tests/test_align_time_global.py b/tests/test_align_time_global.py new file mode 100644 index 0000000..9b28e4f --- /dev/null +++ b/tests/test_align_time_global.py @@ -0,0 +1,403 @@ +"""Tests for module-level ``align_time`` — multi-dataset global alignment. + +The pairwise ``ds.mx.align_time_with`` cases are covered by +``test_align_time.py``. This file exercises the *global* regime triggered +when the reference is an observation and one or more forecasts are present: + + 1. R* = intersection of reference_time across forecasts + 2. L* = union of lead_time across forecasts (never pruned) + 3. R* is pruned to ref_times r where every (r + l ∈ L*) lies inside + [ref.valid_time.min(), ref.valid_time.max()] + 4. Forecasts reindex(reference_time=R*, lead_time=L*); refresh valid_time + 5. Observations reshape onto (R*, L*); trait flips to forecast +""" + +import logging + +import numpy as np +import pandas as pd +import pytest +import xarray as xr +from numpy.typing import ArrayLike + +from mxalign.alignment.time import align_time + +T0 = np.datetime64("2020-01-01T00:00", "ns") +H6 = np.timedelta64(6, "h") + + +def _props(time: str) -> dict: + """Build the ``mlwp_*`` trait attributes for a deterministic point dataset. + + Parameters + ---------- + time : str + Value of the ``mlwp_time_trait`` attribute, e.g. ``"forecast"``. + + Returns + ------- + dict + Trait attributes to attach to a dataset's ``attrs``. + """ + return { + "mlwp_time_trait": time, + "mlwp_space_trait": "point", + "mlwp_uncertainty_trait": "deterministic", + } + + +def fcst(reference_times: ArrayLike, lead_times: ArrayLike) -> xr.Dataset: + """Build a point forecast with ``temp`` counting up from 0 in row-major order. + + Parameters + ---------- + reference_times : ArrayLike + Reference times, parseable by ``pd.to_datetime``. + lead_times : ArrayLike + Lead times, parseable by ``pd.to_timedelta``. + + Returns + ------- + xr.Dataset + Forecast dataset over ``reference_time`` and ``lead_time``. + """ + rt = pd.to_datetime(np.asarray(reference_times)) + lt = pd.to_timedelta(np.asarray(lead_times)) + values = np.arange(len(rt) * len(lt), dtype=float).reshape(len(rt), len(lt)) + return xr.Dataset( + {"temp": (["reference_time", "lead_time"], values)}, + coords={"reference_time": rt, "lead_time": lt}, + attrs=_props("forecast"), + ) + + +def obs(valid_times: ArrayLike, offset: float = 0.0) -> xr.Dataset: + """Build a point observation with ``temp`` counting up from ``offset``. + + Parameters + ---------- + valid_times : ArrayLike + Valid times, parseable by ``pd.to_datetime``. + offset : float, default 0.0 + Value of the first observation. + + Returns + ------- + xr.Dataset + Observation dataset along ``valid_time``. + """ + vt = pd.to_datetime(np.asarray(valid_times)) + return xr.Dataset( + {"temp": (["valid_time"], np.arange(len(vt), dtype=float) + offset)}, + coords={"valid_time": vt}, + attrs=_props("observation"), + ) + + +# --------------------------------------------------------------------------- +# Global regime: 2 forecasts + 1 observation +# --------------------------------------------------------------------------- + + +class TestGlobalForecastsObservation: + """Group tests of the global regime with two forecasts and an observation.""" + + @pytest.fixture + def datasets(self) -> dict[str, xr.Dataset]: + """Provide two partly overlapping forecasts and a reference observation. + + Returns + ------- + dict[str, xr.Dataset] + Datasets ``f1``, ``f2`` and the observation ``ref``. + """ + f1 = fcst( + ["2020-01-01", "2020-01-02", "2020-01-03"], + ["0h", "6h", "12h"], + ) + f2 = fcst( + ["2020-01-02", "2020-01-03", "2020-01-04"], + ["6h", "12h", "18h"], + ) + ref = obs(pd.date_range("2020-01-01", "2020-01-05", freq="3h"), offset=100.0) + return {"f1": f1, "f2": f2, "ref": ref} + + def test_r_star_is_intersection_of_forecast_ref_times( + self, datasets: dict[str, xr.Dataset] + ) -> None: + """Check that R* is the intersection of the forecasts' reference times. + + Parameters + ---------- + datasets : dict[str, xr.Dataset] + Two forecasts and a reference observation. + """ + out = align_time(datasets, reference="ref") + np.testing.assert_array_equal( + out["f1"].reference_time.values.astype("datetime64[D]"), + np.array(["2020-01-02", "2020-01-03"], dtype="datetime64[D]"), + ) + assert out["f2"].sizes["reference_time"] == 2 + + def test_l_star_is_union_of_forecast_lead_times( + self, datasets: dict[str, xr.Dataset] + ) -> None: + """Check that L* is the union of the forecasts' lead times. + + Parameters + ---------- + datasets : dict[str, xr.Dataset] + Two forecasts and a reference observation. + """ + out = align_time(datasets, reference="ref") + expected = np.array([0, 6, 12, 18], dtype="int64") + np.testing.assert_array_equal( + out["f1"].lead_time.values.astype("timedelta64[h]").astype("int64"), + expected, + ) + + def test_all_outputs_share_grid(self, datasets: dict[str, xr.Dataset]) -> None: + """Check that all aligned datasets end up with the same shape. + + Parameters + ---------- + datasets : dict[str, xr.Dataset] + Two forecasts and a reference observation. + """ + out = align_time(datasets, reference="ref") + shapes = {k: out[k].temp.shape for k in out} + assert len(set(shapes.values())) == 1, f"shapes differ: {shapes}" + + def test_reference_observation_becomes_forecast_shaped( + self, datasets: dict[str, xr.Dataset] + ) -> None: + """Check that the reference observation is reshaped to forecast dims. + + Parameters + ---------- + datasets : dict[str, xr.Dataset] + Two forecasts and a reference observation. + """ + out = align_time(datasets, reference="ref") + assert out["ref"].mx.is_forecast() + assert out["ref"].temp.dims == ("reference_time", "lead_time") + assert out["ref"].valid_time.dims == ("reference_time", "lead_time") + + def test_forecast_nan_filled_for_missing_lead_times( + self, datasets: dict[str, xr.Dataset] + ) -> None: + """Check that forecasts are NaN at lead times they do not have. + + Parameters + ---------- + datasets : dict[str, xr.Dataset] + Two forecasts and a reference observation. + """ + out = align_time(datasets, reference="ref") + # f1 has no 18h lead → its 18h column is all-NaN across R* + assert np.isnan(out["f1"].temp.sel(lead_time="18h").values).all() + # f2 has no 0h lead → its 0h column is all-NaN + assert np.isnan(out["f2"].temp.sel(lead_time="0h").values).all() + # f1's 0h column has real data + assert not np.isnan(out["f1"].temp.sel(lead_time="0h").values).any() + + +# --------------------------------------------------------------------------- +# Overlapping runs: several (reference_time, lead_time) share a valid_time +# --------------------------------------------------------------------------- + + +class TestOverlappingValidTimes: + """Group tests of forecast runs whose valid times overlap.""" + + def test_observation_broadcast_when_runs_overlap(self) -> None: + """Check that one observation fills every cell sharing its valid time.""" + # Runs 6h apart with leads up to 12h → each valid_time is hit up to 3 times + f1 = fcst( + ["2020-01-01 00:00", "2020-01-01 06:00", "2020-01-01 12:00"], + ["0h", "6h", "12h"], + ) + ref = obs(pd.date_range("2020-01-01", "2020-01-02", freq="6h")) + + out = align_time({"f1": f1, "ref": ref}, reference="ref") + + # obs values are 0..4 at 00, 06, 12, 18, 24 UTC; cell (r, l) holds obs at r + l + np.testing.assert_array_equal( + out["ref"].temp.values, + [[0.0, 1.0, 2.0], [1.0, 2.0, 3.0], [2.0, 3.0, 4.0]], + ) + + +# --------------------------------------------------------------------------- +# R* pruning by valid_time range +# --------------------------------------------------------------------------- + + +class TestReferenceTimePruning: + """Group tests of pruning R* to the reference valid-time window.""" + + def test_prunes_ref_times_before_reference_window( + self, caplog: pytest.LogCaptureFixture + ) -> None: + """Check that reference times before the reference window are pruned. + + Parameters + ---------- + caplog : pytest.LogCaptureFixture + Captures the pruning warning. + """ + f1 = fcst(["2020-01-01", "2020-01-02", "2020-01-03"], ["0h", "6h", "12h"]) + f2 = fcst(["2020-01-01", "2020-01-02", "2020-01-03"], ["0h", "6h", "12h"]) + ref = obs(pd.date_range("2020-01-03", "2020-01-05", freq="3h")) + + with caplog.at_level(logging.WARNING, logger="mxalign.alignment.time"): + out = align_time({"f1": f1, "f2": f2, "ref": ref}, reference="ref") + + np.testing.assert_array_equal( + out["f1"].reference_time.values.astype("datetime64[D]"), + np.array(["2020-01-03"], dtype="datetime64[D]"), + ) + # The reference observation must end up gap-free after pruning + assert not np.isnan(out["ref"].temp.values).any() + assert any("pruned" in r.message for r in caplog.records) + + def test_keeps_long_lead_time_when_reference_covers_it(self) -> None: + """Check that L* keeps a long lead time that only one forecast has. + + Forecast F2 has a long lead_time; F1 doesn't. L* must keep it. + """ + f1 = fcst(["2020-01-02", "2020-01-03"], ["0h", "6h", "12h"]) + f2 = fcst(["2020-01-02", "2020-01-03"], ["0h", "6h", "12h", "240h"]) + ref = obs(pd.date_range("2020-01-01", "2020-01-31", freq="3h")) + + out = align_time({"f1": f1, "f2": f2, "ref": ref}, reference="ref") + + leads = out["f1"].lead_time.values.astype("timedelta64[h]").astype("int64") + assert 240 in leads, "L* must keep F2's long lead_time" + # F1 doesn't have 240h → that column is NaN, but F1's own short leads survive + assert np.isnan(out["f1"].temp.sel(lead_time="240h").values).all() + assert not np.isnan(out["f1"].temp.sel(lead_time="0h").values).any() + + def test_raises_when_no_ref_time_fits_all_lead_times(self) -> None: + """Check that an empty R* after pruning raises ``ValueError``. + + Long lead_time + short reference → R* empties → ValueError. + """ + f1 = fcst(["2020-01-02", "2020-01-03"], ["0h"]) + f2 = fcst(["2020-01-02", "2020-01-03"], ["0h", "240h"]) + ref = obs(pd.date_range("2020-01-01", "2020-01-04", freq="3h")) + + with pytest.raises(ValueError, match="no reference_time"): + align_time({"f1": f1, "f2": f2, "ref": ref}, reference="ref") + + +# --------------------------------------------------------------------------- +# Multiple observations +# --------------------------------------------------------------------------- + + +class TestMultipleObservations: + """Group tests of global alignment with several observations.""" + + def test_both_observations_reshape_to_forecast_grid(self) -> None: + """Check that every observation is reshaped onto the forecast grid.""" + f1 = fcst(["2020-01-02", "2020-01-03"], ["0h", "6h", "12h"]) + f2 = fcst(["2020-01-02", "2020-01-03"], ["6h", "12h", "18h"]) + o1 = obs(pd.date_range("2020-01-01", "2020-01-05", freq="3h"), offset=100.0) + o2 = obs( + pd.date_range("2020-01-02 06", "2020-01-03 18", freq="6h"), offset=200.0 + ) + + out = align_time({"f1": f1, "f2": f2, "o1": o1, "o2": o2}, reference="o1") + + assert out["o1"].mx.is_forecast() + assert out["o2"].mx.is_forecast() + assert out["o1"].temp.shape == out["o2"].temp.shape == out["f1"].temp.shape + # Reference observation has full coverage; o2 has partial coverage → some NaNs + assert not np.isnan(out["o1"].temp.values).any() + assert np.isnan(out["o2"].temp.values).any() + + +# --------------------------------------------------------------------------- +# Pairwise fallback +# --------------------------------------------------------------------------- + + +class TestPairwiseFallback: + """Group tests of falling back to pairwise alignment.""" + + def test_forecast_reference_uses_pairwise(self) -> None: + """Check that a forecast reference triggers pairwise alignment. + + When the reference is a forecast, no global pruning happens — + each non-ref dataset is aligned pairwise to the reference. + """ + f1 = fcst(["2020-01-01", "2020-01-02", "2020-01-03"], ["0h", "6h", "12h"]) + f_ref = fcst(["2020-01-02", "2020-01-03"], ["6h", "12h"]) + + out = align_time({"f1": f1, "ref": f_ref}, reference="ref") + + # f1 reindexed onto f_ref's axes; ref untouched + np.testing.assert_array_equal( + out["f1"].reference_time.values, f_ref.reference_time.values + ) + np.testing.assert_array_equal( + out["f1"].lead_time.values, f_ref.lead_time.values + ) + assert out["ref"] is f_ref + + def test_all_observations_uses_pairwise(self) -> None: + """Check that observations without forecasts are aligned pairwise. + + Reference is obs and no forecasts → pairwise reindex. + """ + o1 = obs(pd.date_range("2020-01-01", "2020-01-05", freq="6h")) + o2 = obs(pd.date_range("2020-01-02", "2020-01-04", freq="6h")) + + out = align_time({"o1": o1, "o2": o2}, reference="o2") + + np.testing.assert_array_equal(out["o1"].valid_time.values, o2.valid_time.values) + assert out["o1"].mx.is_observation() + + +# --------------------------------------------------------------------------- +# lead_time option +# --------------------------------------------------------------------------- + + +class TestLeadTimeOption: + """Group tests of the ``lead_time`` option of ``align_time``.""" + + def test_forecast_reference_forwards_lead_time(self) -> None: + """Check that ``lead_time`` is forwarded to pairwise forecast alignment.""" + f1 = fcst(["2020-01-02", "2020-01-03"], ["0h", "6h"]) + f_ref = fcst(["2020-01-02", "2020-01-03"], ["6h", "12h"]) + + out = align_time({"f1": f1, "ref": f_ref}, reference="ref", lead_time="union") + + leads = out["f1"].lead_time.values.astype("timedelta64[h]").astype("int64") + np.testing.assert_array_equal(leads, [0, 6, 12]) + + def test_forecast_reference_rejects_unknown_lead_time(self) -> None: + """Check that an invalid forecast-to-forecast ``lead_time`` raises.""" + f1 = fcst(["2020-01-02"], ["0h"]) + f_ref = fcst(["2020-01-02"], ["0h"]) + + with pytest.raises(ValueError, match="Unknown lead_time"): + align_time({"f1": f1, "ref": f_ref}, reference="ref", lead_time="shortest") + + @pytest.mark.parametrize("with_forecast", [True, False]) + def test_observation_reference_rejects_lead_time(self, with_forecast: bool) -> None: + """Check that ``lead_time`` is rejected when the reference is an observation. + + Parameters + ---------- + with_forecast : bool + Whether to include a forecast alongside the reference observation. + """ + datasets = {"ref": obs(pd.date_range("2020-01-01", "2020-01-05", freq="6h"))} + if with_forecast: + datasets["f1"] = fcst(["2020-01-02"], ["0h", "6h"]) + + with pytest.raises(ValueError, match="only supported when the reference"): + align_time(datasets, reference="ref", lead_time="union") diff --git a/tests/test_config.py b/tests/test_config.py new file mode 100644 index 0000000..3c02354 --- /dev/null +++ b/tests/test_config.py @@ -0,0 +1,102 @@ +"""Tests for loading and validating pipeline configuration.""" + +from pathlib import Path + +import pytest +from pydantic import ValidationError + +from mxalign.pipeline.config import load_config + +EXAMPLE_CONFIG = Path(__file__).parent.parent / "examples" / "config.yaml" + +DATES = { + "start": "2020-01-01", + "end": "2020-01-02", + "period": "1D", + "range": "12h", + "step": "12h", +} + + +def _config(**sections: dict) -> dict: + """Build a minimal valid config dict, extended with extra sections. + + Parameters + ---------- + **sections : dict + Extra top-level sections to add to (or override in) the config. + + Returns + ------- + dict + Config dict with a single ``fc`` dataset used as alignment reference. + """ + return { + "datasets": {"fc": {"loader": "x", "files": "/d/fc.nc"}}, + "alignment": {"reference": "fc"}, + **sections, + } + + +def test_example_config_validates() -> None: + """Check that the example config in ``examples/`` loads and validates.""" + config = load_config(str(EXAMPLE_CONFIG)) + assert config.alignment.reference == "cerra" + assert config.alignment.space.interpolation == {"method": "delaunay"} + assert config.verification.metrics["rmse"].kwargs == { + "dim": ["reference_time", "grid_index"], + "skipna": True, + } + # files patterns are expanded over the dates section + assert len(config.datasets["la-1024-ea-00"].files) > 1 + + +def test_unknown_top_level_key_is_rejected() -> None: + """Check that an unknown top-level config key raises a validation error.""" + with pytest.raises(ValidationError, match="not_a_section"): + load_config(_config(not_a_section={"reference": "fc"})) + + +def test_missing_alignment_reference_is_rejected() -> None: + """Check that a config without ``alignment.reference`` is rejected.""" + config = _config() + config["alignment"] = {"broadcast_nans": False} + with pytest.raises(ValidationError, match="alignment.reference"): + load_config(config) + + +def test_unknown_save_datasets_option_is_rejected() -> None: + """Check that an unknown ``alignment.save.datasets`` option is rejected.""" + save = {"method": "to_netcdf", "path": "out.nc", "datasets": "some"} + with pytest.raises(ValidationError, match="alignment.save.datasets"): + load_config(_config(alignment={"reference": "fc", "save": save})) + + +def test_extra_dataset_keys_are_passed_to_loader() -> None: + """Check that unknown dataset keys are collected as loader kwargs.""" + config = _config() + config["datasets"]["fc"]["chunks"] = {"time": 1} + assert load_config(config).datasets["fc"].kwargs == {"chunks": {"time": 1}} + + +def test_dataset_dates_override_top_level_dates() -> None: + """Check that per-dataset dates override the top-level dates section.""" + config = _config(dates=DATES) + config["datasets"]["fc"] = { + "loader": "x", + "files": "/d/{reference_time:%Y%m%d}.nc", + "dates": {"end": "2020-01-03"}, + } + assert load_config(config).datasets["fc"].files == [ + "/d/20200101.nc", + "/d/20200102.nc", + "/d/20200103.nc", + ] + + +def test_incomplete_dates_are_rejected() -> None: + """Check that a dates section missing required fields is rejected.""" + config = _config() + config["datasets"]["fc"]["dates"] = {"start": "2020-01-01"} + with pytest.raises(ValidationError, match="dates is missing end, period"): + load_config(config) diff --git a/tests/test_dates.py b/tests/test_dates.py new file mode 100644 index 0000000..a5e6e24 --- /dev/null +++ b/tests/test_dates.py @@ -0,0 +1,88 @@ +"""Tests for date-based file path substitution.""" + +import datetime + +import pytest +import xarray as xr + +from mxalign.pipeline.config import load_config +from mxalign.pipeline.dates import Dates +from mxalign.pipeline.save import DatasetPath + +# 3 reference times (daily) × 3 lead times (0, 12, 24h) +DATES = { + "start": "2020-01-01", + "end": "2020-01-03", + "period": "1D", + "range": "24h", + "step": "12h", +} + + +def test_substitute_reference_time() -> None: + """Check that ``reference_time`` placeholders expand to one path per run.""" + paths = Dates(**DATES).substitute("/d/{reference_time:%Y%m%d%H}.nc") + assert paths == ["/d/2020010100.nc", "/d/2020010200.nc", "/d/2020010300.nc"] + + +def test_substitute_reference_and_lead_time() -> None: + """Check that reference and lead time placeholders expand as a product.""" + paths = Dates(**DATES).substitute("/d/{reference_time:%Y%m%d}_+{lead_time:03d}.nc") + assert len(paths) == 9 + assert paths[:3] == [ + "/d/20200101_+000.nc", + "/d/20200101_+012.nc", + "/d/20200101_+024.nc", + ] + + +def test_substitute_valid_time_is_deduplicated_and_sorted() -> None: + """Check that ``valid_time`` placeholders give sorted, unique paths.""" + paths = Dates(**DATES).substitute("/d/{valid_time:%Y%m%d%H}.nc") + # 2020-01-01T00 … 2020-01-04T00 every 12h; overlaps between references collapse + assert len(paths) == 7 + assert paths[0] == "/d/2020010100.nc" + assert paths[-1] == "/d/2020010400.nc" + + +def test_substitute_without_fields_returns_single_path() -> None: + """Check that a pattern without placeholders yields a single path.""" + assert Dates(**DATES).substitute("/d/store.zarr") == ["/d/store.zarr"] + + +def test_substitute_lead_time_requires_whole_hours() -> None: + """Check that a sub-hourly step raises when substituting ``lead_time``.""" + dates = Dates(**{**DATES, "step": "30min"}) + with pytest.raises(ValueError, match="whole hours"): + dates.substitute("/d/{lead_time}.nc") + + +def test_config_expands_files_from_dates_section() -> None: + """Check that config loading expands file patterns over the dates section.""" + # YAML parses unquoted timestamps to datetime objects + config = load_config( + { + "dates": {**DATES, "start": datetime.datetime(2020, 1, 1)}, + "datasets": { + "fc": {"loader": "x", "files": "/d/{reference_time:%Y%m%d}.nc"} + }, + "alignment": {"reference": "fc"}, + } + ) + assert config.datasets["fc"].files == [ + "/d/20200101.nc", + "/d/20200102.nc", + "/d/20200103.nc", + ] + + +def test_dataset_path_substitute(ds_fcst: xr.Dataset) -> None: + """Check that ``DatasetPath`` fills name and date fields from the dataset. + + Parameters + ---------- + ds_fcst : xr.Dataset + Point forecast fixture. + """ + path = DatasetPath("model", ds_fcst).substitute("{name}_{year}{month:02d}.nc") + assert path == "model_202001.nc" diff --git a/tests/test_interpolations.py b/tests/test_interpolations.py new file mode 100644 index 0000000..c198953 --- /dev/null +++ b/tests/test_interpolations.py @@ -0,0 +1,499 @@ +"""Tests for XarrayInterpolator and DelaunayInterpolator core logic. + +Both interpolators take a stacked or lat/lon-dim source GRID dataset and +produce a POINT dataset aligned to target point locations. + +Fixtures use temp = lat + lon, a linear function, so both bilinear (xarray) +and linear barycentric (Delaunay) interpolation reproduce it exactly. + +Trait / accessor-level tests live in test_align_space.py. +""" + +from pathlib import Path + +import cartopy.crs as ccrs +import dask +import numpy as np +import pytest +import xarray as xr +from numpy.typing import ArrayLike + +from mxalign.alignment.interpolations import delaunay +from mxalign.alignment.interpolations.delaunay import DelaunayInterpolator +from mxalign.alignment.interpolations.interpolate import interpolate +from mxalign.alignment.interpolations.xarray import XarrayInterpolator + +# --------------------------------------------------------------------------- +# Fixtures +# --------------------------------------------------------------------------- + + +def _latlon_grid(lats: ArrayLike, lons: ArrayLike) -> xr.Dataset: + """Build a regular lat/lon grid with ``temp[i, j] = lat[i] + lon[j]``. + + Parameters + ---------- + lats : ArrayLike + Latitudes of the grid. + lons : ArrayLike + Longitudes of the grid. + + Returns + ------- + xr.Dataset + Grid dataset with ``latitude`` and ``longitude`` dims. + """ + lats, lons = np.asarray(lats), np.asarray(lons) + temp = lats[:, np.newaxis] + lons[np.newaxis, :] + return xr.Dataset( + {"temp": (["latitude", "longitude"], temp)}, + coords={"latitude": lats, "longitude": lons}, + ) + + +def _stacked_grid(lats: ArrayLike, lons: ArrayLike) -> xr.Dataset: + """Build a regular lat/lon grid stacked to a ``grid_index`` dim. + + Parameters + ---------- + lats : ArrayLike + Latitudes of the grid. + lons : ArrayLike + Longitudes of the grid. + + Returns + ------- + xr.Dataset + Grid dataset with ``temp = lat + lon`` along ``grid_index``. + """ + return ( + _latlon_grid(lats, lons) + .stack(grid_index=["latitude", "longitude"]) + .reset_index("grid_index") + ) + + +@pytest.fixture +def grid_latlon() -> xr.Dataset: + """Provide a 3×3 regular lat/lon grid with ``temp[i, j] = lat[i] + lon[j]``. + + Returns + ------- + xr.Dataset + Grid dataset on latitudes and longitudes 0, 1, 2. + """ + return _latlon_grid([0.0, 1.0, 2.0], [0.0, 1.0, 2.0]) + + +@pytest.fixture +def grid_stacked(grid_latlon: xr.Dataset) -> xr.Dataset: + """Provide ``grid_latlon`` stacked to ``grid_index``. + + Stacking is required by ``DelaunayInterpolator``. + + Parameters + ---------- + grid_latlon : xr.Dataset + Regular lat/lon grid fixture. + + Returns + ------- + xr.Dataset + Grid dataset along ``grid_index``. + """ + return grid_latlon.stack(grid_index=["latitude", "longitude"]).reset_index( + "grid_index" + ) + + +@pytest.fixture +def target_points() -> xr.Dataset: + """Provide 3 target points: two at grid nodes, one at an interior location. + + Returns + ------- + xr.Dataset + Coordinate-only dataset with lat/lon along ``point_index``. + """ + return xr.Dataset( + coords={ + "latitude": ("point_index", np.array([0.0, 0.5, 1.0])), + "longitude": ("point_index", np.array([0.0, 0.5, 1.0])), + }, + ) + + +# --------------------------------------------------------------------------- +# XarrayInterpolator +# --------------------------------------------------------------------------- + + +class TestXarrayInterpolator: + """Group tests of ``XarrayInterpolator``.""" + + def test_values_at_grid_nodes( + self, grid_latlon: xr.Dataset, target_points: xr.Dataset + ) -> None: + """Check that values at grid nodes are reproduced exactly. + + Parameters + ---------- + grid_latlon : xr.Dataset + Regular lat/lon grid fixture. + target_points : xr.Dataset + Target point locations fixture. + """ + result = XarrayInterpolator(target_points)._interpolate(grid_latlon) + + # lat=0, lon=0 → 0+0=0; lat=1, lon=1 → 1+1=2 + assert result["temp"].isel(point_index=0).item() == pytest.approx(0.0) + assert result["temp"].isel(point_index=2).item() == pytest.approx(2.0) + + def test_value_at_interior_point( + self, grid_latlon: xr.Dataset, target_points: xr.Dataset + ) -> None: + """Check that an interior point is interpolated bilinearly. + + Parameters + ---------- + grid_latlon : xr.Dataset + Regular lat/lon grid fixture. + target_points : xr.Dataset + Target point locations fixture. + """ + result = XarrayInterpolator(target_points)._interpolate(grid_latlon) + + # lat=0.5, lon=0.5 → 0.5+0.5=1.0 (exact for bilinear on linear function) + assert result["temp"].isel(point_index=1).item() == pytest.approx(1.0) + + def test_output_has_point_index_dim( + self, grid_latlon: xr.Dataset, target_points: xr.Dataset + ) -> None: + """Check that the output has a ``point_index`` dim. + + Parameters + ---------- + grid_latlon : xr.Dataset + Regular lat/lon grid fixture. + target_points : xr.Dataset + Target point locations fixture. + """ + result = XarrayInterpolator(target_points)._interpolate(grid_latlon) + + assert "point_index" in result.dims + + def test_output_has_latlon_coords_from_target( + self, grid_latlon: xr.Dataset, target_points: xr.Dataset + ) -> None: + """Check that the output carries the target lat/lon coords. + + Parameters + ---------- + grid_latlon : xr.Dataset + Regular lat/lon grid fixture. + target_points : xr.Dataset + Target point locations fixture. + """ + result = XarrayInterpolator(target_points)._interpolate(grid_latlon) + + np.testing.assert_array_equal( + result["latitude"].values, target_points["latitude"].values + ) + np.testing.assert_array_equal( + result["longitude"].values, target_points["longitude"].values + ) + + def test_outside_domain_is_nan(self, grid_latlon: xr.Dataset) -> None: + """Check that a point outside the grid domain is NaN. + + Parameters + ---------- + grid_latlon : xr.Dataset + Regular lat/lon grid fixture. + """ + far_point = xr.Dataset( + coords={ + "latitude": ("point_index", np.array([10.0])), + "longitude": ("point_index", np.array([10.0])), + }, + ) + result = XarrayInterpolator(far_point)._interpolate(grid_latlon) + + assert np.isnan(result["temp"].isel(point_index=0).item()) + + def test_projected_source_keeps_target_point_coords( + self, target_points: xr.Dataset + ) -> None: + """Check that a projected source keeps the target's point coordinates. + + Parameters + ---------- + target_points : xr.Dataset + Target point locations fixture. + """ + # xc/yc source with an identity projection, so xc == lon and yc == lat + xc = yc = np.array([0.0, 1.0, 2.0]) + source = xr.Dataset( + {"temp": (["yc", "xc"], yc[:, np.newaxis] + xc[np.newaxis, :])}, + coords={"xc": xc, "yc": yc}, + attrs={ + "crs": ccrs.PlateCarree(), + "mlwp_space_trait": "grid", + "mlwp_time_trait": "forecast", + }, + ) + target = target_points.assign_coords( + point_index=[101, 102, 103], station=("point_index", ["a", "b", "c"]) + ) + + result = XarrayInterpolator(target)._interpolate(source) + + np.testing.assert_array_equal(result["point_index"].values, [101, 102, 103]) + np.testing.assert_array_equal(result["station"].values, ["a", "b", "c"]) + np.testing.assert_allclose(result["temp"].values, [0.0, 1.0, 2.0]) + + +# --------------------------------------------------------------------------- +# DelaunayInterpolator +# --------------------------------------------------------------------------- + + +class TestDelaunayInterpolator: + """Group tests of ``DelaunayInterpolator``.""" + + def test_values_at_grid_nodes( + self, grid_stacked: xr.Dataset, target_points: xr.Dataset + ) -> None: + """Check that values at grid nodes are reproduced exactly. + + Parameters + ---------- + grid_stacked : xr.Dataset + Stacked grid fixture. + target_points : xr.Dataset + Target point locations fixture. + """ + result = DelaunayInterpolator(target_points)._interpolate(grid_stacked) + + assert result["temp"].isel(point_index=0).item() == pytest.approx(0.0) + assert result["temp"].isel(point_index=2).item() == pytest.approx(2.0) + + def test_value_at_interior_point( + self, grid_stacked: xr.Dataset, target_points: xr.Dataset + ) -> None: + """Check that an interior point is interpolated barycentrically. + + Parameters + ---------- + grid_stacked : xr.Dataset + Stacked grid fixture. + target_points : xr.Dataset + Target point locations fixture. + """ + result = DelaunayInterpolator(target_points)._interpolate(grid_stacked) + + # Barycentric interpolation is exact for any linear function + assert result["temp"].isel(point_index=1).item() == pytest.approx(1.0) + + def test_output_has_point_index_dim( + self, grid_stacked: xr.Dataset, target_points: xr.Dataset + ) -> None: + """Check that the output has a ``point_index`` dim. + + Parameters + ---------- + grid_stacked : xr.Dataset + Stacked grid fixture. + target_points : xr.Dataset + Target point locations fixture. + """ + result = DelaunayInterpolator(target_points)._interpolate(grid_stacked) + + assert "point_index" in result.dims + + def test_output_has_latlon_coords_from_target( + self, grid_stacked: xr.Dataset, target_points: xr.Dataset + ) -> None: + """Check that the output carries the target lat/lon coords. + + Parameters + ---------- + grid_stacked : xr.Dataset + Stacked grid fixture. + target_points : xr.Dataset + Target point locations fixture. + """ + result = DelaunayInterpolator(target_points)._interpolate(grid_stacked) + + np.testing.assert_array_equal( + result["latitude"].values, target_points["latitude"].values + ) + np.testing.assert_array_equal( + result["longitude"].values, target_points["longitude"].values + ) + + def test_weights_shared_across_instances( + self, + grid_stacked: xr.Dataset, + target_points: xr.Dataset, + monkeypatch: pytest.MonkeyPatch, + ) -> None: + """Check that interpolation weights are cached across interpolator instances. + + Parameters + ---------- + grid_stacked : xr.Dataset + Stacked grid fixture. + target_points : xr.Dataset + Target point locations fixture. + monkeypatch : pytest.MonkeyPatch + Used to reset the weights cache and count weight builds. + """ + monkeypatch.setattr(delaunay, "_WEIGHTS_CACHE", {}) + calls = [] + build = delaunay._build_weight_matrix + monkeypatch.setattr( + delaunay, + "_build_weight_matrix", + lambda *args: calls.append(1) or build(*args), + ) + + # The Runner builds one interpolator per dataset + DelaunayInterpolator(target_points)._interpolate(grid_stacked) + DelaunayInterpolator(target_points)._interpolate(grid_stacked.copy()) + + assert len(calls) == 1 + + def test_cache_distinguishes_grids_with_same_extent( + self, + grid_stacked: xr.Dataset, + target_points: xr.Dataset, + monkeypatch: pytest.MonkeyPatch, + ) -> None: + """Check that the weights cache tells apart grids with the same extent. + + Parameters + ---------- + grid_stacked : xr.Dataset + Stacked grid fixture. + target_points : xr.Dataset + Target point locations fixture. + monkeypatch : pytest.MonkeyPatch + Used to reset the weights cache. + """ + monkeypatch.setattr(delaunay, "_WEIGHTS_CACHE", {}) + # Same shape, first latitude and last longitude, different interior + other = _stacked_grid(lats=[0.0, 1.0, 2.0], lons=[0.0, 1.5, 2.0]) + + DelaunayInterpolator(target_points)._interpolate(grid_stacked) + result = DelaunayInterpolator(target_points)._interpolate(other) + + assert result["temp"].isel(point_index=1).item() == pytest.approx(1.0) + + def test_rechunk_keeps_block_size_bounded(self, target_points: xr.Dataset) -> None: + """Check that rechunking ``grid_index`` keeps blocks within the chunk budget. + + Parameters + ---------- + target_points : xr.Dataset + Target point locations fixture. + """ + grid = _stacked_grid(lats=np.linspace(0, 2, 20), lons=np.linspace(0, 2, 50)) + n_steps, n_source = 64, grid.sizes["grid_index"] + source = ( + grid.expand_dims(step=n_steps) + .copy() + .chunk({"step": n_steps, "grid_index": 100}) + ) + + with dask.config.set({"array.chunk-size": "64KiB"}): + result = DelaunayInterpolator(target_points)._interpolate(source) + + # Merging grid_index into one chunk must not grow blocks past the budget + rows_per_block = max(result["temp"].chunks[0]) + assert rows_per_block * n_source * 8 <= 64 * 1024 + np.testing.assert_allclose(result["temp"].isel(step=0).values, [0.0, 1.0, 2.0]) + + def test_outside_convex_hull_is_nan(self, grid_stacked: xr.Dataset) -> None: + """Check that a point outside the convex hull is NaN. + + Parameters + ---------- + grid_stacked : xr.Dataset + Stacked grid fixture. + """ + far_point = xr.Dataset( + coords={ + "latitude": ("point_index", np.array([10.0])), + "longitude": ("point_index", np.array([10.0])), + }, + ) + result = DelaunayInterpolator(far_point)._interpolate(grid_stacked) + + assert np.isnan(result["temp"].isel(point_index=0).item()) + + +# --------------------------------------------------------------------------- +# Shared interpolator behaviour +# --------------------------------------------------------------------------- + +GRID_ATTRS = { + "crs": ccrs.PlateCarree(), + "grid_mapping": {"nx": 3, "ny": 3}, + "mlwp_space_trait": "grid", + "mlwp_time_trait": "forecast", + "mlwp_uncertainty_trait": "deterministic", +} + + +@pytest.mark.parametrize( + "interpolator, source", + [(XarrayInterpolator, "grid_latlon"), (DelaunayInterpolator, "grid_stacked")], +) +def test_point_output_drops_grid_attrs( + interpolator: type[XarrayInterpolator] | type[DelaunayInterpolator], + source: str, + target_points: xr.Dataset, + tmp_path: Path, + request: pytest.FixtureRequest, +) -> None: + """Check that point output drops grid-only attrs and can be saved to netCDF. + + Parameters + ---------- + interpolator : type[XarrayInterpolator] | type[DelaunayInterpolator] + Interpolator class under test. + source : str + Name of the source grid fixture. + target_points : xr.Dataset + Target point locations fixture. + tmp_path : Path + Temporary directory to write the output to. + request : pytest.FixtureRequest + Used to look up the source grid fixture by name. + """ + source = request.getfixturevalue(source).assign_attrs(GRID_ATTRS) + + result = interpolator(target_points).interpolate(source) + + assert "crs" not in result.attrs and "grid_mapping" not in result.attrs + assert result.attrs["mlwp_time_trait"] == "forecast" + result.to_netcdf(tmp_path / "points.nc") # a cartopy CRS attr would fail here + + +def test_interpolate_returns_same_container_type( + grid_latlon: xr.Dataset, target_points: xr.Dataset +) -> None: + """Check that ``interpolate`` returns the same container type it is given. + + Parameters + ---------- + grid_latlon : xr.Dataset + Regular lat/lon grid fixture. + target_points : xr.Dataset + Target point locations fixture. + """ + out = interpolate( + {"a": grid_latlon.assign_attrs(GRID_ATTRS)}, target_points, "xarray" + ) + assert list(out) == ["a"] diff --git a/tests/test_runner.py b/tests/test_runner.py new file mode 100644 index 0000000..9bba149 --- /dev/null +++ b/tests/test_runner.py @@ -0,0 +1,102 @@ +"""Tests for the pipeline ``Runner``.""" + +from pathlib import Path + +import pytest +import xarray as xr +from pydantic import ValidationError + +from mxalign.pipeline.runner import Runner + + +def _runner(datasets: dict, alignment: dict) -> Runner: + """Build a ``Runner`` with pre-loaded datasets and an alignment section. + + Parameters + ---------- + datasets : dict + Datasets by name, assigned directly instead of being loaded. + alignment : dict + The ``alignment`` section of the config. + + Returns + ------- + Runner + Runner ready to transform or align the given datasets. + """ + runner = Runner({"datasets": {}, "alignment": alignment}) + runner.datasets = datasets + return runner + + +def test_align_runs_time_alignment_without_time_section( + ds_fcst: xr.Dataset, ds_obs: xr.Dataset +) -> None: + """Check that ``align`` runs time alignment when no time section is given. + + Parameters + ---------- + ds_fcst : xr.Dataset + Point forecast fixture. + ds_obs : xr.Dataset + Point observation fixture. + """ + runner = _runner( + {"fcst": ds_fcst, "obs": ds_obs}, + {"reference": "obs", "broadcast_nans": False}, + ) + runner.align() + # Global time alignment reshapes the observation reference onto the forecast grid + assert runner.datasets["obs"].mx.is_forecast() + + +def test_align_time_rejects_unknown_options() -> None: + """Check that unknown ``alignment.time`` options are rejected.""" + with pytest.raises(ValidationError, match="alignment.time.return_as"): + Runner( + { + "datasets": {}, + "alignment": {"reference": "obs", "time": {"return_as": "forecast"}}, + } + ) + + +def test_transform_datasets_without_transformations_section( + ds_obs: xr.Dataset, +) -> None: + """Check that datasets pass through unchanged without a transformations section. + + Parameters + ---------- + ds_obs : xr.Dataset + Point observation fixture. + """ + runner = _runner({"obs": ds_obs}, {"reference": "obs"}) + runner.transform_datasets() + assert runner.datasets["obs"] is ds_obs + + +def test_align_saves_merged_datasets(ds_obs: xr.Dataset, tmp_path: Path) -> None: + """Check that ``align`` saves a single merged file with ``datasets: merge``. + + Parameters + ---------- + ds_obs : xr.Dataset + Point observation fixture. + tmp_path : Path + Temporary directory to save the output in. + """ + runner = _runner( + {"a": ds_obs, "b": ds_obs.copy()}, + { + "reference": "a", + "broadcast_nans": False, + "save": { + "method": "to_netcdf", + "datasets": "merge", + "path": str(tmp_path / "{name}.nc"), + }, + }, + ) + runner.align() + assert (tmp_path / "merged.nc").exists() diff --git a/tests/test_transformations.py b/tests/test_transformations.py index 5a3a9c2..6021b58 100644 --- a/tests/test_transformations.py +++ b/tests/test_transformations.py @@ -1,29 +1,66 @@ +"""Tests for the transformation registry and ``transform``.""" + +from collections.abc import Callable + import pytest import xarray as xr -from mxalign.transformations.registry import ( +from mxalign.pipeline.transformations.registry import ( available_transformations, register_transformation, ) -from mxalign.transformations.transform import transform +from mxalign.pipeline.transformations.transform import transform @register_transformation("_test_double") -def _double(ds): +def _double(ds: xr.Dataset) -> xr.Dataset: + """Double every value in the dataset. + + Parameters + ---------- + ds : xr.Dataset + Dataset to transform. + + Returns + ------- + xr.Dataset + Dataset with all values multiplied by 2. + """ return ds * 2 -def test_registered_transformation_is_available(): +def test_registered_transformation_is_available() -> None: + """Check that a registered transformation is listed as available.""" assert "_test_double" in available_transformations() -def test_transform_applies_function_without_mutating_input(): +def test_transform_applies_function_without_mutating_input() -> None: + """Check that ``transform`` applies the function and leaves the input as is.""" ds = xr.Dataset({"t2m": ("x", [1.0, 2.0, 3.0])}) out = transform("_test_double", ds) assert out["t2m"].values.tolist() == [2.0, 4.0, 6.0] assert ds["t2m"].values.tolist() == [1.0, 2.0, 3.0] -def test_unknown_transformation_raises(): +def test_unknown_transformation_raises() -> None: + """Check that an unknown transformation name raises ``ValueError``.""" with pytest.raises(ValueError, match="Unknown transformation"): transform("does_not_exist", xr.Dataset()) + + +@pytest.mark.parametrize( + "container", [lambda ds: {"a": ds}, lambda ds: [ds]], ids=["dict", "list"] +) +def test_transform_returns_same_container_type( + container: Callable[[xr.Dataset], dict[str, xr.Dataset] | list[xr.Dataset]], +) -> None: + """Check that ``transform`` returns the same container type it is given. + + Parameters + ---------- + container : Callable[[xr.Dataset], dict[str, xr.Dataset] | list[xr.Dataset]] + Function wrapping a dataset in a dict or a list. + """ + datasets = container(xr.Dataset({"t2m": ("x", [1.0])})) + out = transform("_test_double", datasets) + assert type(out) is type(datasets) diff --git a/uv.lock b/uv.lock index d9c3b7c..1e99d4f 100644 --- a/uv.lock +++ b/uv.lock @@ -1,20 +1,21 @@ version = 1 -revision = 1 +revision = 3 requires-python = ">=3.12" resolution-markers = [ - "python_full_version >= '3.14' and platform_machine == 'ARM64' and sys_platform == 'win32'", - "python_full_version < '3.14' and platform_machine == 'ARM64' and sys_platform == 'win32'", - "python_full_version >= '3.14' and platform_machine != 'ARM64' and sys_platform == 'win32'", + "python_full_version >= '3.14' and sys_platform == 'win32'", "python_full_version >= '3.14' and sys_platform == 'emscripten'", "python_full_version >= '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'", - "python_full_version < '3.14' and platform_machine != 'ARM64' and sys_platform == 'win32'", - "python_full_version < '3.14' and sys_platform == 'emscripten'", - "python_full_version < '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform == 'win32'", + "python_full_version == '3.13.*' and sys_platform == 'emscripten'", + "python_full_version == '3.13.*' and sys_platform != 'emscripten' and sys_platform != 'win32'", + "python_full_version < '3.13' and sys_platform == 'win32'", + "python_full_version < '3.13' and sys_platform == 'emscripten'", + "python_full_version < '3.13' and sys_platform != 'emscripten' and sys_platform != 'win32'", ] [[package]] name = "aiobotocore" -version = "3.7.0" +version = "3.10.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "aiohttp" }, @@ -25,23 +26,23 @@ dependencies = [ { name = "python-dateutil" }, { name = "wrapt" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e7/75/42cce839c2ec263ff74b10b650fe36b066fbb124cbee6f247eac0983e1ab/aiobotocore-3.7.0.tar.gz", hash = "sha256:c64d871ed5491a6571948dd48eabd185b46c6c23b64e3afd0c059fc7593ada30", size = 127054 } +sdist = { url = "https://files.pythonhosted.org/packages/16/40/659f2ac3915d329e3e8e5bf674d35ce1774f3117c6f60339d5e05e505c36/aiobotocore-3.10.0.tar.gz", hash = "sha256:35480ef11c51e23087273b85d97f80da2f356a46ce5f3fb88e24483cd343ffdb", size = 530781, upload-time = "2026-10-23T10:44:50.843Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/90/5f/85535dfb3cfd6442d66d1df1694062c5d6df02f895329e7e120b2a3d2b8b/aiobotocore-3.7.0-py3-none-any.whl", hash = "sha256:680bde7c64679a821a9312641b759d9497f790ba8b2e88c6959e6273ee765b8e", size = 89539 }, + { url = "https://files.pythonhosted.org/packages/7f/bc/3bb8965204ba51bbf4d021bc89d1357cd2179a17ef71b5fc429e21b511a2/aiobotocore-3.10.0-py3-none-any.whl", hash = "sha256:de0ccbcb82b6b0009f1b6667f48442e9d0432f9b8bfe6172fa51777cbea89d03", size = 102759, upload-time = "2026-10-23T10:44:49.109Z" }, ] [[package]] name = "aiohappyeyeballs" -version = "2.6.2" +version = "2.7.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/33/c6/61a2d7b7572279226bb2e7f61d7a19ca7c90da0329c93fa0d560cbf288d8/aiohappyeyeballs-2.6.2.tar.gz", hash = "sha256:e202810ee718bd01fc6ef49e8ea53d023d5cb6b581076d7925aa499fa55dbe64", size = 22591 } +sdist = { url = "https://files.pythonhosted.org/packages/ce/f4/eec0465c2f67b2664688d0240b3212d5196fd89e741df67ddb81f8d35658/aiohappyeyeballs-2.7.1.tar.gz", hash = "sha256:065665c041c42a5938ed220bdcd7230f22527fbec085e1853d2402c8a3615d9d", size = 24757, upload-time = "2026-07-01T17:11:55.501Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5f/fc/a7bf5b6e4e617b45f90f2d9d2a68519c249c81dd4fc2658c7a2a61c4f4b7/aiohappyeyeballs-2.6.2-py3-none-any.whl", hash = "sha256:4708045e2d7a6c6bdf8aafa8ed39649eaf926a4543b54560659129e3365953c4", size = 15062 }, + { url = "https://files.pythonhosted.org/packages/71/43/1947f06babed6b3f1d7f38b0c767f52df66bfb2bc10b468c4a7de9eceff2/aiohappyeyeballs-2.7.1-py3-none-any.whl", hash = "sha256:9243213661e29250eb41368e5daa826fc017156c3b8a11440826b2e3ed376472", size = 15038, upload-time = "2026-07-01T17:11:54.055Z" }, ] [[package]] name = "aiohttp" -version = "3.14.1" +version = "3.14.5" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "aiohappyeyeballs" }, @@ -53,99 +54,141 @@ dependencies = [ { name = "typing-extensions", marker = "python_full_version < '3.13'" }, { name = "yarl" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/82/78/8ea7308cac6934de8c74a14f3d5f65d1c89287426688be79538d0e5c013d/aiohttp-3.14.1.tar.gz", hash = "sha256:307f2cff90a764d329e77040603fa032db89c5c24fdad50c4c15334cba744035", size = 7955794 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1d/21/151624b51cd92553d95424daf4bf19f19ce9be9002d19253e7e7ce67197b/aiohttp-3.14.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d35143e27778b4bb0fb189562d7f275bff79c62ab8e98459717c0ea617ff2480", size = 757402 }, - { url = "https://files.pythonhosted.org/packages/c2/82/280619e0bd7bf2454987e19282616e84762255dd9c8468f62382e8c191f1/aiohttp-3.14.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:bcfb80a2cc36fba2534e5e5b5264dc7ae6fcd9bf15256da3e53d2f499e6fa29d", size = 512310 }, - { url = "https://files.pythonhosted.org/packages/55/b2/2aac325583aaa1353045f96dffa586d8a34e8322e14a7ba49cffeb103ab4/aiohttp-3.14.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:27fd7c91e51729b4f7e1577865fa6d34c9adccbc39aabe9000285b48af9f0ec2", size = 512448 }, - { url = "https://files.pythonhosted.org/packages/8a/72/a60607cb849faa8af8a356c9329ea2eb6f395d49e82cc82ccba1fd8deb8f/aiohttp-3.14.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:64c567bf9eaf664280116a8688f63016e6b32db2505908e2bdaca1b6438142f2", size = 1766854 }, - { url = "https://files.pythonhosted.org/packages/b5/d3/d9fe1c9ec7557ab4d0d82bebaa728c6418f0b93295ec2f4ab015f7710cc7/aiohttp-3.14.1-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:f5e6ff2bdbb8f4cd3fbe41f99e25bbcd58e3bf9f13d3dd31a11e7917251cc77a", size = 1740884 }, - { url = "https://files.pythonhosted.org/packages/c1/dc/f2cecfaf9337ba3e63f181500814ff502aa3d00d9c7ec93a9d23d10a27b2/aiohttp-3.14.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2f73e01dc37122325caf079982621262f96d74823c179038a82fddfc50359264", size = 1810034 }, - { url = "https://files.pythonhosted.org/packages/66/d7/2ff65c5e65c0d7476daf7e15c032e0805e36811185b9623e3238ad6c763e/aiohttp-3.14.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:bb2c0c80d431c0d03f2c7dbf125150fedd4f0de17366a7ca33f7ccb822391842", size = 1904054 }, - { url = "https://files.pythonhosted.org/packages/20/9c/d445818389df371f56d141d881153ba23183c4735a03f7356ffb43f7757d/aiohttp-3.14.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3e6fc1a85fa7194a1a7d19f44e8609180f4a8eb5fa4c7ed8b4355f080fad235c", size = 1790278 }, - { url = "https://files.pythonhosted.org/packages/4d/aa/bf04cb4d865fc6101c2229a294ad744973b72e513fdc5a6b791e6983d72a/aiohttp-3.14.1-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:686b6c0d3911ec387b444ddf5dc62fb7f7c0a7d5186a7861626496a5ab4aff95", size = 1591795 }, - { url = "https://files.pythonhosted.org/packages/dc/b4/4dac0038960427ba832f6609dfb4ea5437d7fd80c72001b9e48f834f428b/aiohttp-3.14.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c6fa4dc7ad6f8109c70bb1499e589f76b0b792baf39f9b017eb92c8a81d0a199", size = 1728397 }, - { url = "https://files.pythonhosted.org/packages/2b/f9/7cd4e8ad7aa3b75f17d56bb5498dd604a93d4e6eece822ba0568c413fff0/aiohttp-3.14.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:87a5eea1b2a5e21e1ebdbb33ad4165359189327e63fc4e4894693e7f821ac817", size = 1766504 }, - { url = "https://files.pythonhosted.org/packages/f9/df/fc01d9fcad0f73fed3f3d361f1f94f975947b50dff82919f6dc2bf4316cc/aiohttp-3.14.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:1c1421eb01d4fd608d88cc8290211d177a58532b55ad94076fb349c5bf467f0a", size = 1777806 }, - { url = "https://files.pythonhosted.org/packages/41/09/47e2d090bddcc8fb4ccb4c314aadc32d7c5d9bb55f50f6ad1c92fc15d501/aiohttp-3.14.1-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:34b257ec41345c1e8f2df68fa908a7952f5de932723871eb633ecbbff396c9a4", size = 1580707 }, - { url = "https://files.pythonhosted.org/packages/3d/36/f1a4ce904ae0b6930cfe9afc96d0896f7ec1a620c400405d63783bb95a9c/aiohttp-3.14.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:de538791a80e5d862addbc183f70f0158ac9b9bb872bb147f1fd2a683691e087", size = 1798121 }, - { url = "https://files.pythonhosted.org/packages/70/0a/e0075ce9ca0279ee1d4f0c0b85f54fea02ebc83c3007651a72bece658fec/aiohttp-3.14.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6f71173be42d3241d428f760122febb748de0623f44308a6f120d0dd9ec572e3", size = 1767580 }, - { url = "https://files.pythonhosted.org/packages/3e/61/a0c0a8f327a9c52095cdd8e312391b00d3ed64ab6c72bb5c33d8ec251cf7/aiohttp-3.14.1-cp312-cp312-win32.whl", hash = "sha256:ec8dc383ee57ea3e883477dcca3f11b65d58199f1080acaf4cd6ad9a99698be4", size = 452771 }, - { url = "https://files.pythonhosted.org/packages/df/d9/ea367c75f16ac9c6cdc8febb25e8318fa21a2b1bc8d6514d4b2d890bface/aiohttp-3.14.1-cp312-cp312-win_amd64.whl", hash = "sha256:2aa92c87868cd13674989f9ee83e5f9f7ea4237589b728048e1f0c8f6caa3271", size = 479873 }, - { url = "https://files.pythonhosted.org/packages/03/64/8d96784a7851156db8a4c6c3f6f91042fdf39fb15a4cc38c8b3c14833c45/aiohttp-3.14.1-cp312-cp312-win_arm64.whl", hash = "sha256:2c840c90759922cb5e6dda94596e079a30fb5a5ba548e7e0dc00574703940847", size = 448073 }, - { url = "https://files.pythonhosted.org/packages/bc/97/bd137012dd97e1649162b099135a80e1fd59aaa807b2430fc448d1029aff/aiohttp-3.14.1-cp313-cp313-android_21_arm64_v8a.whl", hash = "sha256:b3a03285a7f9c7b016324574a6d92a1c895da6b978cb8f1deee3ac72bc6da178", size = 506882 }, - { url = "https://files.pythonhosted.org/packages/ef/79/e5cc690e9d922a66887ceeaca53a8ffd5a7b0be3816142b7abc433742d89/aiohttp-3.14.1-cp313-cp313-android_21_x86_64.whl", hash = "sha256:2a73f487ab8ef5abbb24b7aa9b73e98eaba9e9e031804ff2416f02eca315ccaf", size = 515270 }, - { url = "https://files.pythonhosted.org/packages/fe/22/a73ccbf9dbd6e26dda0b24d5fd5db7da92ee3383a79f47677ffb834c5c5b/aiohttp-3.14.1-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:915fbb7b41b115192259f8c9ae58f3ddc444d2b5579917270211858e606a4afd", size = 485841 }, - { url = "https://files.pythonhosted.org/packages/3b/b9/57ed8eaf596321c2ad747bd480fb1700dbd7177c60dfc9e4c187f629662e/aiohttp-3.14.1-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:7fb4bdf95b0561a79f259f9d28fbc109728c5ee7f27aff6391f0ca703a329abe", size = 492088 }, - { url = "https://files.pythonhosted.org/packages/78/c0/5ebe5270a7c140d7c6f79dcb018640225f14d406c149e4eec04a7d82fe71/aiohttp-3.14.1-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:1b9748363260121d2927704f5d4fc498150669ca3ae93625986ee89c8f80dcd4", size = 501564 }, - { url = "https://files.pythonhosted.org/packages/75/7f/8cdaa24fc7983865e0915153b96a9ac5bcdd3548d64c5a27d17cecccad2d/aiohttp-3.14.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:86a6dab78b0e43e2897a3bbe15745aa60dc5423ca437b7b0b164c069bf91b876", size = 751998 }, - { url = "https://files.pythonhosted.org/packages/b2/f4/c4227aacfacc5cb0cc2d119b65301d177912a6842cd64e120c47af76064f/aiohttp-3.14.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4dfd6e47d3c44c2279907607f73a4240b88c69eb8b90da7e2441a8045dfd21da", size = 510918 }, - { url = "https://files.pythonhosted.org/packages/ab/01/a2d5f96cd4e74424864d30bc0a7e44d0a12dacdcfa91b5b2d1bd3dca6bf3/aiohttp-3.14.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:317acd9f8602858dc7d59679812c376c7f0b97bcbbf16e0d6237f54141d8a8a6", size = 508657 }, - { url = "https://files.pythonhosted.org/packages/e8/ed/3c0fb5c500fdd8e7ebc10d1889c04384fffa1a9163eac1356088ca9da1b1/aiohttp-3.14.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bd869c427324e5cb15195793de951295710db28be7d818247f3097b4ab5d4b96", size = 1757907 }, - { url = "https://files.pythonhosted.org/packages/0b/ab/d4c924d9bd5be3050c226612413ce68cb54c70d2c31b661bfc8d9a5b6a70/aiohttp-3.14.1-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:93b032b5ec3255473c143627d21a69ac74ae12f7f33974cb587c564d11b1066f", size = 1737565 }, - { url = "https://files.pythonhosted.org/packages/19/2a/37326821ff779084020cdc33224d20b19f42f4183a500ff92022a739eda7/aiohttp-3.14.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f234b4deb12f3ad59127e037bc57c40c21e45b45282df7d3a55a0f409f595296", size = 1799018 }, - { url = "https://files.pythonhosted.org/packages/b3/4f/6e947ba73e4ce09070761c05ed3a8ceb7c21f5e46798671d8b2aac0e4626/aiohttp-3.14.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:9af6779bfb46abf124068327abcdf9ce95c9ef8287a3e8da76ccf2d0f16c28fa", size = 1894416 }, - { url = "https://files.pythonhosted.org/packages/9d/6e/dbf1d0625dc711fb2851f4f3c3055c39ed58bae92082d8c627dbe6013736/aiohttp-3.14.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:faccab372e66bc76d5731525e7f1143c922271725b9d38c9f97edcc66266b451", size = 1783881 }, - { url = "https://files.pythonhosted.org/packages/44/c2/5e25098a67268ed369483ae7d1a58bd0a13d03aab860d2a0e4a6eb25b046/aiohttp-3.14.1-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f380468b09d2a81633ee863b0ec5648d364bd17bb8ecfb8c2f387f7ac1faf42c", size = 1587572 }, - { url = "https://files.pythonhosted.org/packages/2a/bd/cf9cee17e140f942a3de73e658a543aa8fbf35a5fc67a9d2538d52d77f0b/aiohttp-3.14.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:97e704dcd26271f5bda3fa07c3ce0fb76d6d3f8659f4baa1a24442cc9ba177ca", size = 1722137 }, - { url = "https://files.pythonhosted.org/packages/89/6d/5684f8c59045c96f81a18cefbc1fbbd79d25b88f1c622f2a5c5c08fcb632/aiohttp-3.14.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:269b76ac5394092b95bc4a098f4fc6c191c083c3bd12775d1e30e663132f6a09", size = 1755953 }, - { url = "https://files.pythonhosted.org/packages/a8/40/35caf3170f8359760740a7d9aa0fff2e344bef98e1d1186f5a0f6dec17e6/aiohttp-3.14.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:5c0b3e614340c889d575451696374c9d17affd54cd607ca0babed8f8c37b9397", size = 1766479 }, - { url = "https://files.pythonhosted.org/packages/6d/a1/b0c61e7a137f0d81de49a82023a6df73c3c16d6fefb0f8e4a93d21639002/aiohttp-3.14.1-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:5663ee9257cfa1add7253a7da3035a02f31b6600ec48261585e1800a81533080", size = 1580077 }, - { url = "https://files.pythonhosted.org/packages/0b/41/194ea4623693009fcefebef7aef63c141754f153e9cd0d39d3b9e36c175c/aiohttp-3.14.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:603a2c834142172ffddc054067f5ec0ca65d57a0aa98a71bc81952573208e345", size = 1791688 }, - { url = "https://files.pythonhosted.org/packages/ba/45/4de841f005cfe1fd63e2a2fe011262c515e2a62aa6994b15947e7d717ac9/aiohttp-3.14.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:cb21957bb8aca671c1765e32f58164cf0c50e6bf41c0bbbd16da20732ecaf588", size = 1761094 }, - { url = "https://files.pythonhosted.org/packages/e4/ae/dbce10533d3896d544d5053939ed75b7dc31a1b0973d959b1b5ae21028d6/aiohttp-3.14.1-cp313-cp313-win32.whl", hash = "sha256:e509a55f681e6158c20f70f102f9cf61fb20fbc382272bc6d94b7343f2582780", size = 452662 }, - { url = "https://files.pythonhosted.org/packages/7b/d9/0bf1a19362c32f06229da5e7ddfcec91f93474d6307f7a2d3135e9c674dc/aiohttp-3.14.1-cp313-cp313-win_amd64.whl", hash = "sha256:1ac8531b638959718e18c2207fbfe297819875da46a740b29dfa29beba64355a", size = 479748 }, - { url = "https://files.pythonhosted.org/packages/22/0a/62e7232dc9484fbec112ceb32efb6a624cc7994ec6e2b019286f17c4e8f2/aiohttp-3.14.1-cp313-cp313-win_arm64.whl", hash = "sha256:250d14af67f6b6a1a4a811049b1afa69d61d617fca6bf33149b3ab1a6dbcf7b8", size = 447723 }, - { url = "https://files.pythonhosted.org/packages/c4/a1/5fafa04e1ca91ddb47608699d60649c1c6db3cf41c99e78fc4056f9513db/aiohttp-3.14.1-cp314-cp314-android_24_arm64_v8a.whl", hash = "sha256:7c106c26852ca1c2047c6b80384f17100b4e439af276f21ef3d4e2f450ae7e15", size = 508531 }, - { url = "https://files.pythonhosted.org/packages/fa/2e/bfa02f699d87ffc86d5959270b28f1cb410add3ccaced8ed2e0b8a5238fc/aiohttp-3.14.1-cp314-cp314-android_24_x86_64.whl", hash = "sha256:20205f7f5ade7aaec9f4b500549bbc071b046453aed72f9c06dcab87896a83e8", size = 514718 }, - { url = "https://files.pythonhosted.org/packages/85/a5/9594ad6289eebbc97d167c44213d557807f90e59115caad24de21ad2c3b1/aiohttp-3.14.1-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:62a759436b29e677181a9e76bab8b8f689a29cb9c535f45f7c48c9c830d3f8c3", size = 487918 }, - { url = "https://files.pythonhosted.org/packages/b4/61/16a32c36c3c49edec122a3dc811f2057df2f94d3b14aa107c8017d981618/aiohttp-3.14.1-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:2964cbf553df4d7a57348da44d961d871895fc1ee4e8c322b2a95612c7b17fba", size = 494014 }, - { url = "https://files.pythonhosted.org/packages/9b/89/3ebcf96ed99c05bec9c434aaac6963fd3cbab4a786ae739908a144d9ce44/aiohttp-3.14.1-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:237651caadc3a59badd39319c54642b5299e9cc98a3a194310e55d5bb9f5e397", size = 502398 }, - { url = "https://files.pythonhosted.org/packages/fd/3d/b74870a0c2d40c355928cd5b96c7a11fa821b8a40fc41365e64479b151fb/aiohttp-3.14.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:896e12dfdbbab9d8f7e16d2b28c6769a60126fa92095d1ebf9473d02593a2448", size = 758018 }, - { url = "https://files.pythonhosted.org/packages/d3/66/f42f5c984d99e49c6cff5f26f590750f2e2f7ef1fcfb99966ab5be1b632e/aiohttp-3.14.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:d03f281ed22579314ba00821ce20115a7c0ac430660b4cc05704a3f818b3e004", size = 512462 }, - { url = "https://files.pythonhosted.org/packages/e9/a7/248e1aebe0c7810b0271e021a0f2a5eb6e78a051885b3c9df49f42a5802d/aiohttp-3.14.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:07eabb979d236335fed927e137a928c9adfb7df3b9ec7aa31726f133a62be983", size = 512824 }, - { url = "https://files.pythonhosted.org/packages/26/97/2aa0e5ba0727dc3bd5aaebb7ccbc510f7dfb7fb961ec87497cd496635ab1/aiohttp-3.14.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4fe1f1087cbadb280b5e1bb054a4f00d1423c74d6626c5e48400d871d34ecefe", size = 1749898 }, - { url = "https://files.pythonhosted.org/packages/00/8d/e97f6c96c891d457c8479d92a514ba194d0412f981d72c70341ee18488ed/aiohttp-3.14.1-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:367a9314fdc79dab0fac96e216cb41dd73c85bdca85306ce8999118ba7e0f333", size = 1710114 }, - { url = "https://files.pythonhosted.org/packages/6f/e6/aa8d7e863048c8fceb5cd6ce74017311cec3ead07847387e12265fb4444e/aiohttp-3.14.1-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a24f677ebe83749039e7bdf862ff0bbb16818ae4193d4ef96505e269375bcce0", size = 1802541 }, - { url = "https://files.pythonhosted.org/packages/83/a8/72193137de57fda4ebfae4563182d082c8856e3b6e9871d0b46f028fb369/aiohttp-3.14.1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c83afe0ba876be7e943d2e0ba645809ad441575d2840c895c21ee5de93b9377a", size = 1875776 }, - { url = "https://files.pythonhosted.org/packages/a0/18/938441025db6769a3464596b2410af3afde0b21eb2f204c6f766f68af4bd/aiohttp-3.14.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:634e385930fb6d2d479cf3aa66515955863b77a5e3c2b5894ca259a25b308602", size = 1760329 }, - { url = "https://files.pythonhosted.org/packages/60/29/bf2496b4065e76e09fe48015aaffe5ce161d8f089b06ac6982070f653076/aiohttp-3.14.1-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:eeea07c4397bbc57719c4eed8f9c284874d4f175f9b6d57f7a1546b976d455ca", size = 1587293 }, - { url = "https://files.pythonhosted.org/packages/49/a2/2136674d52123b1354bd05dd5753c318db47dc0c927cc70b27bab3755456/aiohttp-3.14.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:335c0cc3e3545ce98dcb9cfcb836f40c3411f43fa03dab757597d80c89af8a35", size = 1714756 }, - { url = "https://files.pythonhosted.org/packages/a7/b9/e5fd2e6f915503081c0f9b1e8540947037929c70c191da2e4d54b31a21a1/aiohttp-3.14.1-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:ae6be797afdef264e8a84864a85b196ca06045586481b3df8a967322fd2fa844", size = 1721052 }, - { url = "https://files.pythonhosted.org/packages/63/5a/2833e324a2263e104e31e2e91bc5bbee81bc499afd32203faee048a883f0/aiohttp-3.14.1-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:8560b4d712474335d08907db7973f71912d3a9a8f1dee992ec06b5d2fe359496", size = 1766888 }, - { url = "https://files.pythonhosted.org/packages/57/fa/dea6511870913162f3b2e8c42a7614eb203a4540b8c2da43e0bfb0548f3c/aiohttp-3.14.1-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:2b7edd08e0a5deb1e8564a2fcd8f4561014a3f05252334671bbf55ddd47db0e5", size = 1581679 }, - { url = "https://files.pythonhosted.org/packages/14/bd/3cf0d55e71784b33534e9710a67d382d900598b4787fbce6cc7317f8c42a/aiohttp-3.14.1-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:b6ff7fcee63287ae57b5df3e4f5957ce032122802509246dec1a5bcc55904c95", size = 1782021 }, - { url = "https://files.pythonhosted.org/packages/c1/af/14bb5843eccbe234f4dfb78ab73e549d99727247e62ae5d62cbd22eaf5b0/aiohttp-3.14.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6ffbb2f4ec1ceaff7e07d43922954da26b223d188bf30658e561b98e23089444", size = 1742574 }, - { url = "https://files.pythonhosted.org/packages/f2/1e/fbeb7af9210a67ac0f9c9bec0f8f4568497924e33137a3d5b48e1cf85f3f/aiohttp-3.14.1-cp314-cp314-win32.whl", hash = "sha256:a9875b46d910cff3ea2f5962f9d266b465459fe634e22556ab9bd6fc1192eea0", size = 457773 }, - { url = "https://files.pythonhosted.org/packages/f0/2b/13e8d741a9ec5db7d900c060554cf8352ab85e44e2a4469ebb9d377bda17/aiohttp-3.14.1-cp314-cp314-win_amd64.whl", hash = "sha256:af8b4b81a960eeaf1234971ac3cd0ba5901f3cd42eae42a46b4d089a8b492719", size = 485001 }, - { url = "https://files.pythonhosted.org/packages/df/30/491acfa2c4d6c3ff59c49a14fc1b50be3241e25bbb0c84c09e2da4d11395/aiohttp-3.14.1-cp314-cp314-win_arm64.whl", hash = "sha256:cf4491381b1b57425c315a56a439251b1bdac07b2275f19a8c44bc57744532ec", size = 453809 }, - { url = "https://files.pythonhosted.org/packages/34/e3/19dbe1a1f4cc6230eb9e314de7fe68053b0992f9302b27d12141a0b5db53/aiohttp-3.14.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:819c054312f1af92947e6a55883d1b66feefab11531a7fc45e0fb9b63880b5c2", size = 793320 }, - { url = "https://files.pythonhosted.org/packages/7f/20/1b7182219ba1b108430d6e4dc53d25ae02dcfcf5a045b33af4e8c5167527/aiohttp-3.14.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:10ee9c1753a8f706345b22496c79fbddb5be0599e0823f3738b1534058e25340", size = 529077 }, - { url = "https://files.pythonhosted.org/packages/b9/c8/14ce60ec31a2e5f5274bb17d383a6f7a3aabca31ac04eee05585bbadab16/aiohttp-3.14.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1601cc37baf5750ccacae618ec2daf020769581695550e3b654a911f859c563d", size = 532476 }, - { url = "https://files.pythonhosted.org/packages/7e/02/9ac85e081e53da2e061b02fa7758fe0a12d17b8ce2d1f5e6c7cb76730328/aiohttp-3.14.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4d6e0ac9da31c9c04c84e1c0182ad8d6df35965a85cae29cd71d089621b3ae94", size = 1922347 }, - { url = "https://files.pythonhosted.org/packages/c0/3e/d3ba07a0ab38b5389e10bec4362d21e10a4f667cba2d79ba30837b3a5059/aiohttp-3.14.1-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:9e8f2d660c350b3d0e259c7a7e3d9b7fc8b41210cbcc3d4a7076ff0a5e5c2fdc", size = 1786465 }, - { url = "https://files.pythonhosted.org/packages/0b/cb/e2ee978a00cfb2df829704a69528b18154eba5939f45bc1efa8f33aee4c5/aiohttp-3.14.1-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:4691802dda97be727f79d86818acaad7eb8e9252626a1d6b519fedbb92d5e251", size = 1909423 }, - { url = "https://files.pythonhosted.org/packages/73/5d/1430334858b1022b58ae50399a918f0bd6fe8fa7fa183598d657ff61e040/aiohttp-3.14.1-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c389c482a7e9b9dc3ee2701ac46c4125297a3818875b9c305ddb603c04828fd1", size = 2001906 }, - { url = "https://files.pythonhosted.org/packages/66/4e/560c7472d3d198a23aa5c8b19a5115bf6a9b77b7d3e4bb363da320430ad2/aiohttp-3.14.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fc0cacab7ba4e56f0f81c82a98c09bed2f39c940107b03a34b168bdf7597edd3", size = 1877095 }, - { url = "https://files.pythonhosted.org/packages/0d/f1/4745806578d447db4a784a8591e2dae3afdfc2bcb96f8f81271b13df6543/aiohttp-3.14.1-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:979ed4717f59b8bb12e3963378fa285d93d367e15bcd66c721311826d3c44a6c", size = 1676222 }, - { url = "https://files.pythonhosted.org/packages/6a/c9/48255813cca749a229ef0ab476004ec623728ad79a9c0840616f6c076325/aiohttp-3.14.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:38e1e7daaea81df51c952e18483f323d878499a1e2bfe564790e0f9701d6f203", size = 1842922 }, - { url = "https://files.pythonhosted.org/packages/3d/c0/bbd054e2bee909f529523a5af3891052606af5143c09f5f183ec3b234676/aiohttp-3.14.1-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:4132e72c608fe9fecb8f409113567605915b83e9bdd3ea56538d2f9cd35002f1", size = 1825035 }, - { url = "https://files.pythonhosted.org/packages/a8/ae/90395d4376deceb74e09ec26b6adf7d2015a6f8802d6d84446af860fef04/aiohttp-3.14.1-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:eefd9cc9b6d4a2db5f00a26bc3e4f9acf71926a6ec557cd56c9c6f27c290b665", size = 1849512 }, - { url = "https://files.pythonhosted.org/packages/93/bd/fb25f3049957553d4ce0ba6ae480aa2f592a6985497fca590837d16c1be0/aiohttp-3.14.1-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:b165790117eea512d7f3fb22f1f6dad3d55a7189571993eb015591c1401276d1", size = 1668571 }, - { url = "https://files.pythonhosted.org/packages/3f/22/7f73303d64dd567ff3addca90b556690ed1233a47b8f55d242fb90af3681/aiohttp-3.14.1-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:ed09c7eb1c391271c2ed0314a51903e72a3acb653d5ccfc264cdf3ef11f8269d", size = 1881159 }, - { url = "https://files.pythonhosted.org/packages/44/be/0474c5a8b5640e1e4aa1923430a91f4151be82e511373fe764189b89aef5/aiohttp-3.14.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:99abd37084b82f5830c635fddd0b4993b9742a66eb746dacf433c8590e8f9e3c", size = 1841409 }, - { url = "https://files.pythonhosted.org/packages/7b/3c/bb4a7cba26956cb3da4553cc2056cf67be5b5ff6e6d8fa4fbdff73bfb7ae/aiohttp-3.14.1-cp314-cp314t-win32.whl", hash = "sha256:47ddf841cdecc810749921d25606dee45857d12d2ad5ddb7b5bd7eab12e4b365", size = 494166 }, - { url = "https://files.pythonhosted.org/packages/8a/84/ec80c2c1f66a952555a9f86df6b33af65108a6febfa0471b69013a12f807/aiohttp-3.14.1-cp314-cp314t-win_amd64.whl", hash = "sha256:5e78b522b7a6e27e0b25d19b247b75039ac4c94f99823e3c9e53ae1603a9f7e9", size = 530255 }, - { url = "https://files.pythonhosted.org/packages/2a/71/6e22be134a4061ada85a92951b842f2657f17d926b727f3f94c56ae963d6/aiohttp-3.14.1-cp314-cp314t-win_arm64.whl", hash = "sha256:90d53f1609c29ccc2193945ef732428382a28f78d0456ae4d3daf0d48b74f0f6", size = 469640 }, +sdist = { url = "https://files.pythonhosted.org/packages/6c/4c/bdccd81e9ee225b69c60e7766c9a5b05364f118f4d383713b89a682d772d/aiohttp-3.14.5.tar.gz", hash = "sha256:5558a7f5a05af9ecf744af91e5baefc436f93c9333e656c27ec253f9a6bbe178", size = 8078052, upload-time = "2026-10-11T01:05:12.408Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d5/94/6ba86efddcb616c811b40e6a0dfdd862738f647e4e3860a961075d5e9ed8/aiohttp-3.14.5-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:df37b620684e19b5e25724412518ccafc3b1a49cdac706fdbd2f983fad943450", size = 817499, upload-time = "2026-10-11T01:00:18.901Z" }, + { url = "https://files.pythonhosted.org/packages/5e/e1/7bca6d84dabd228aa8eb4b7f9feac2586aaa9be5505d7d65bf287a615c43/aiohttp-3.14.5-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ef60869969180ec2464f1349aff07138ae35ca2200f0946cb3552e49e8f301a8", size = 549467, upload-time = "2026-10-11T01:00:20.854Z" }, + { url = "https://files.pythonhosted.org/packages/64/91/11b89f45ca486252dd67dd5f3231fec04bf5518da39a95cb3997619f17fb/aiohttp-3.14.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d079c0a0135c36e7beb6f1c88087c8f108dc5891cdd0b5eafa778421bda70ed2", size = 548067, upload-time = "2026-10-11T01:00:22.659Z" }, + { url = "https://files.pythonhosted.org/packages/22/ff/c6615806c14aab34f82b9424ccde8ce6e417315fd57ce1c5b4d4747888e1/aiohttp-3.14.5-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:abfda5cb094a829f7bc25216a32f7db2e85cc65bd59910f8e7b40b3d9b224764", size = 1896245, upload-time = "2026-10-11T01:00:24.638Z" }, + { url = "https://files.pythonhosted.org/packages/39/b2/25a8c971ae6a92c8394d77e42422d7f38989e05cf41a5ceb92d73d67ab7e/aiohttp-3.14.5-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:9cc882cf8619109583c906b4d4a85d6a111a98afa34b7a450d1e08118d016820", size = 1872180, upload-time = "2026-10-11T01:00:26.838Z" }, + { url = "https://files.pythonhosted.org/packages/2f/d5/99f93ea36cc5205e47c1e5a803e087f2ad21b5430b5db2e942cb6e988a37/aiohttp-3.14.5-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:7457580535e019e1247ea35d6a02bf081ad30c26d0cbc210c93f6c3ab67a0835", size = 1937261, upload-time = "2026-10-11T01:00:28.74Z" }, + { url = "https://files.pythonhosted.org/packages/40/a6/9ac9c9e6695040bd73d2584a1b59a9388f6433c76d5294a7bf591e21ffe5/aiohttp-3.14.5-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c5ed596aedb9c42afd3fe0aae3117725378ac73d2cc5ddc735056fbdb96c5d02", size = 2064994, upload-time = "2026-10-11T01:00:30.623Z" }, + { url = "https://files.pythonhosted.org/packages/da/e4/aa172eb534b7f02f1f8ff1c3213347eaf3cf218db91a727c6863c22f1035/aiohttp-3.14.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:20f085697d7e911f1f73c43ed03fafbed1e7121797e2eb5428efa80398060584", size = 1919630, upload-time = "2026-10-11T01:00:32.548Z" }, + { url = "https://files.pythonhosted.org/packages/06/7d/4eedafc5bababa8932636c141e346806966eade12c0b7e5946d43bf8218b/aiohttp-3.14.5-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:74b0a9c8270f9b0a11410e124ff8d4f18bfc1f1837440ec84da5ae7b50927b5d", size = 1710016, upload-time = "2026-10-11T01:00:34.471Z" }, + { url = "https://files.pythonhosted.org/packages/b2/94/eee018537ba19da0ceb2ac79cab83faed4ac49568e08376e2799043f2538/aiohttp-3.14.5-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:19e2ba471507c34f8252402ab50f5ab512398b9ea8c8f1cb26beb3f75793ba30", size = 1858112, upload-time = "2026-10-11T01:00:36.581Z" }, + { url = "https://files.pythonhosted.org/packages/68/76/354653a306547238f3427283905972d796ba7c292ba9977abec9f2b6f260/aiohttp-3.14.5-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:d418ce2af40c6bb685b3f663e9e8de27cb0a22431d8e88a167348d7f01878073", size = 1896371, upload-time = "2026-10-11T01:00:38.478Z" }, + { url = "https://files.pythonhosted.org/packages/f2/ec/63e8c7136b570e356345ad3174e3820fdc973ea10712cb6c649bf875755a/aiohttp-3.14.5-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:70cb4008ac2ed1e0ca9e824deb4b53d3aa0d939109698ebf1e723a84337bd794", size = 1905836, upload-time = "2026-10-11T01:00:40.527Z" }, + { url = "https://files.pythonhosted.org/packages/57/d8/11365bda144b127928cd42533d0eff78a55613c9e28f81941bd6630ea887/aiohttp-3.14.5-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:a23fe35d776bc03cb495938b9594450d047e3bc08c5255315a82323e9cb7d2dd", size = 1696534, upload-time = "2026-10-11T01:00:42.686Z" }, + { url = "https://files.pythonhosted.org/packages/2f/3d/82df0461b18e00b2998f205c03e0d3010222478c43640aceb8e03dcd7e8f/aiohttp-3.14.5-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:3e0eb43bed3c6801a6cee315195377789e90b2a72c2277a475b578535312488d", size = 1933970, upload-time = "2026-10-11T01:00:44.71Z" }, + { url = "https://files.pythonhosted.org/packages/03/ad/6ddfe0aacd931c17b53533336d97e9d11a98b96d6ae815a9da0b19f82ccf/aiohttp-3.14.5-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3be7dd397d64ca3e1869626fa9318aaebb54b7bf93bc72d7a205448d83e4f748", size = 1899501, upload-time = "2026-10-11T01:00:46.629Z" }, + { url = "https://files.pythonhosted.org/packages/9e/8e/189bdd9ae4793059bb09f6dc880f211a6c6c7859cebcbf33912dbfab7dd7/aiohttp-3.14.5-cp312-cp312-win32.whl", hash = "sha256:eb324e2009fb54db30a071dad7caf6998ee2879c4704007efb244514dad1fec1", size = 480370, upload-time = "2026-10-11T01:00:48.468Z" }, + { url = "https://files.pythonhosted.org/packages/ae/ce/1f08114679d49655b30a6e0a29858375c94b82c1de1a0bd0a20c2fee8b02/aiohttp-3.14.5-cp312-cp312-win_amd64.whl", hash = "sha256:2cc38a4f2b516bef1714e690df87a0e043faf1a7693c82d860091684453d5111", size = 506141, upload-time = "2026-10-11T01:00:50.272Z" }, + { url = "https://files.pythonhosted.org/packages/79/d4/c7b4f60b16a1b7e43249fa9031ae05e7e8c341ba4b7d1866f914dafeaa0e/aiohttp-3.14.5-cp312-cp312-win_arm64.whl", hash = "sha256:a63afd1f757de949028387e65a7127b61ad0f775432dbb0e62816ae619fe69ac", size = 488108, upload-time = "2026-10-11T01:00:52.321Z" }, + { url = "https://files.pythonhosted.org/packages/d3/e1/2841e020ebb7aefae5513586193e011e06313d9a6bdbd296622afbbce204/aiohttp-3.14.5-cp313-cp313-android_24_arm64_v8a.whl", hash = "sha256:9ad7e6aa38c20da1be697874349c4c273c8a03b7887169665081706398d0439a", size = 538932, upload-time = "2026-10-11T01:00:54.3Z" }, + { url = "https://files.pythonhosted.org/packages/f7/a6/7fb8ea8fe96bcc7b7c7a36d10f021d99d01a8dc8a4b3f0ddacecfad9a80e/aiohttp-3.14.5-cp313-cp313-android_24_x86_64.whl", hash = "sha256:f59c7673465908cbe506117176156c127f29f917677afceada34957179221d91", size = 553329, upload-time = "2026-10-11T01:00:56.442Z" }, + { url = "https://files.pythonhosted.org/packages/de/64/d056e3c27647dc25af1a592cf356245382ea7c808171b9dac7677afedfc8/aiohttp-3.14.5-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:1b5416552740edf07234cc9437d0706f2acb67b93c198670b1a68e1b2b587dec", size = 521367, upload-time = "2026-10-11T01:00:58.345Z" }, + { url = "https://files.pythonhosted.org/packages/3e/e4/95226147e11d4db916fd1d495dcf85af8e3816e38333e42718241196e848/aiohttp-3.14.5-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:43351bdb5e4c3cb7d1772368e988534e869a74db7778079a83782c11c69535c7", size = 528322, upload-time = "2026-10-11T01:01:00.211Z" }, + { url = "https://files.pythonhosted.org/packages/17/cd/1d3c9192cafdb51cad62b2d3ded96cff9cc8af51893210aadd448a325389/aiohttp-3.14.5-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:c8c4478bef6d57fcfda15dae461ea3c9f06aa7b257c58df3f2300174ccbb185a", size = 539874, upload-time = "2026-10-11T01:01:02.06Z" }, + { url = "https://files.pythonhosted.org/packages/f6/0c/dfa33aecc7d4d1dc75e05248f5eac5a0edf4d09e7b44d93ab62529b0c1db/aiohttp-3.14.5-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:c2c30484dd1417ef98b51021ffa2cc0d7f3c78918adaaaab7e70817335ab3e02", size = 813836, upload-time = "2026-10-11T01:01:04.01Z" }, + { url = "https://files.pythonhosted.org/packages/33/17/4a63738052d20567d55529d6daa1b9480d906fd52930fbcf6d3fbed618f0/aiohttp-3.14.5-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:dab9ac5a67c8d1f070c00fa8fccb7cbd1b8dcc1a8d6b42f37540df9b3d4cc603", size = 548070, upload-time = "2026-10-11T01:01:06.035Z" }, + { url = "https://files.pythonhosted.org/packages/15/e5/b57e58695a757fd4c02497c033fced96a69c631b13866c43d336530c9670/aiohttp-3.14.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e1cc2bfaee8c214f06080a7c7d5772419b8a1108e8e5349236189811823fb02a", size = 545786, upload-time = "2026-10-11T01:01:07.817Z" }, + { url = "https://files.pythonhosted.org/packages/9a/68/8c2c67a3aedf46e00f3c42f04fbc6983de80d4ed5786151e33681ba45883/aiohttp-3.14.5-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:74efb69332b85675b1eabd760a8cfc2e2cf42c60607c66f88014c1bdfb40942d", size = 1886492, upload-time = "2026-10-11T01:01:09.834Z" }, + { url = "https://files.pythonhosted.org/packages/ab/4b/74aab5e8d28c62e8f795b4fe8f38cf5586fd264a9a27bd2141ef6490333d/aiohttp-3.14.5-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:42b5e616946dbaf505e2bff18c9af2cd4ef9e7ef300ee58a6e951a5b7cf147ae", size = 1870057, upload-time = "2026-10-11T01:01:12.045Z" }, + { url = "https://files.pythonhosted.org/packages/a8/f7/eafc3b1988302b1815d9fd4a21071be5c360d616c0a430d02fd92dc97688/aiohttp-3.14.5-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f9033b43f511f27547c557dcaba0177649e10a3725336ccd2cce0fdc1dc4850d", size = 1925119, upload-time = "2026-10-11T01:01:14.09Z" }, + { url = "https://files.pythonhosted.org/packages/a1/04/78d8f294f74dd570f3898ff20402349fce524176045df98ba727d6846a68/aiohttp-3.14.5-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:15a310d3c71398e3d7bfc93a1a73fbe664315cd9e9016b8efc1cff85eeab7155", size = 2053137, upload-time = "2026-10-11T01:01:16.344Z" }, + { url = "https://files.pythonhosted.org/packages/32/51/395d225ef36f5a50d8e548dcd3141bfdbcd31fb6eed859022c573d2c4d66/aiohttp-3.14.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1ffa3a523a36d8628f98c06492ae16a31a23d14c0b4ec721757b477319f656d6", size = 1911038, upload-time = "2026-10-11T01:01:18.653Z" }, + { url = "https://files.pythonhosted.org/packages/ff/a4/2aec1aa06d82e8a244843b5dae31d78061e5e76744270a86dd0ee051c889/aiohttp-3.14.5-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:5fb6a6e919bfb703227bc1ce6579281b84b1a2ba57deb9794dfdbec7dcd1e40c", size = 1702205, upload-time = "2026-10-11T01:01:20.904Z" }, + { url = "https://files.pythonhosted.org/packages/16/27/6051bfde7b6f418f70edd60d655fa426abb3355fa0981764739d87ecf160/aiohttp-3.14.5-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:43e1b7994a8b038125f722bff07492ef501110722c2727c408995d9fb864c421", size = 1848588, upload-time = "2026-10-11T01:01:22.918Z" }, + { url = "https://files.pythonhosted.org/packages/9e/44/55efc06fc26c4e6e1c095f231b4c222bf2d86d64a8eebbc24b2bb5958ea8/aiohttp-3.14.5-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:5f3e96071686755d9cd3600c3880183eb94b012178e92746d68101800f0ed8a3", size = 1887540, upload-time = "2026-10-11T01:01:25.278Z" }, + { url = "https://files.pythonhosted.org/packages/48/dc/1502bfdc2a65760d386ac6a00090b0addaa8a3c9c60b3f8127fad3a9afb2/aiohttp-3.14.5-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:cd88b01f3d37b7a2a34f91d98f14720206f1ea3d540843fab2d649dd5fb91fec", size = 1895030, upload-time = "2026-10-11T01:01:27.316Z" }, + { url = "https://files.pythonhosted.org/packages/93/7e/44174bb6288264418c9eec07a5e35180969c0d5a796c7af544db3cb8a33a/aiohttp-3.14.5-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:f2ed8b64dc0c651c0f5a9c926777719770021251b8f336d97c4b80b660836ce1", size = 1693244, upload-time = "2026-10-11T01:01:29.39Z" }, + { url = "https://files.pythonhosted.org/packages/47/dd/b507d64e50db23888582fff08eda13998b12f9dea70c072edaac19218380/aiohttp-3.14.5-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:a9918e58faf62ba2c7147927d06057aec78f42475aff5048047ec47e7265a600", size = 1926308, upload-time = "2026-10-11T01:01:31.634Z" }, + { url = "https://files.pythonhosted.org/packages/98/4b/5b51b4f63e3f2793151f4aea49c48fe1e00baeb7cec9c7a206de499f8de0/aiohttp-3.14.5-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:42f320d4a5b00b9af0bddcfec5407dc6f2d9816f006b2f79ebbaa31f16895df3", size = 1888406, upload-time = "2026-10-11T01:01:33.715Z" }, + { url = "https://files.pythonhosted.org/packages/ff/13/d5e818a5eaba9f822016727299f41c0e1075799f82a6433ec508a93ab867/aiohttp-3.14.5-cp313-cp313-win32.whl", hash = "sha256:3ae800a20947e2c2e53088047d021e6bf7d51560cc49f6a0737a1f79d2e3a13c", size = 479970, upload-time = "2026-10-11T01:01:35.677Z" }, + { url = "https://files.pythonhosted.org/packages/8d/d0/8eca2c65aa467320990d78fb2005f38ed3588944280c39ff9deb6423fef1/aiohttp-3.14.5-cp313-cp313-win_amd64.whl", hash = "sha256:d05e94cdfe0d15d0206f970722d2554780ce562787b21b218b275447f8751319", size = 505985, upload-time = "2026-10-11T01:01:37.574Z" }, + { url = "https://files.pythonhosted.org/packages/7a/f8/4cdd65305d2fca14b886bea9ed2abb1fe726287872524e56e3d26692b47d/aiohttp-3.14.5-cp313-cp313-win_arm64.whl", hash = "sha256:f001b571ead90ca1770f1e616db255351a1703317f20374c361ef22f12c06d09", size = 487629, upload-time = "2026-10-11T01:01:39.477Z" }, + { url = "https://files.pythonhosted.org/packages/43/be/3184a1d34a8be665569eadb7e9e764b4629e4f3413e241cb2e4d6fecf3b3/aiohttp-3.14.5-cp314-cp314-android_24_arm64_v8a.whl", hash = "sha256:939042d5cda21d41a6f512e7cc8b8e33a2aebff863352251da495fbd91b673b5", size = 540673, upload-time = "2026-10-11T01:01:41.354Z" }, + { url = "https://files.pythonhosted.org/packages/60/2a/d35f3ba4cf157b072e3b674bf9983047ca5ea5173c995d32d877e1191d36/aiohttp-3.14.5-cp314-cp314-android_24_x86_64.whl", hash = "sha256:6da32b5ff3fd78d244e37300463434c7145162bfd2b6e9e915ab164da37f7343", size = 554087, upload-time = "2026-10-11T01:01:43.719Z" }, + { url = "https://files.pythonhosted.org/packages/fc/d2/61a33880ca4eaca95a9c60ca3f6beed15555af1028652dfaac601627787b/aiohttp-3.14.5-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:1b438b73c38111818d0c9d6a5c2bfed8584c8e503a49ef085d70e874ec846738", size = 522613, upload-time = "2026-10-11T01:01:46.154Z" }, + { url = "https://files.pythonhosted.org/packages/31/1d/de579b299d2225dc2c6fd99d579d91f16c02a913fb5af9a3cf2fe9bd88ba/aiohttp-3.14.5-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:755933b107ea7a6a9ac916f635a70595a5b1a32fac10a8ff0b9f2ab88555550c", size = 529682, upload-time = "2026-10-11T01:01:48.477Z" }, + { url = "https://files.pythonhosted.org/packages/f4/4a/ddb923564e15e053b6e060b0036e1694dcadcb13aa476c5a87dcad20e336/aiohttp-3.14.5-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:b3cc509327c7b27f6f4727a8830f4004f6df7766e179f2f4b8e54e65c0bec5d3", size = 540120, upload-time = "2026-10-11T01:01:50.474Z" }, + { url = "https://files.pythonhosted.org/packages/3d/36/a640fbecaa53727a5900b892bdbe17b5f3e8cc88903e22864fe41b654def/aiohttp-3.14.5-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:7bd8ac754ebd6733a3e2a0dd1674c4d8ab086196803fd8dcd776f07b4e2607d9", size = 818795, upload-time = "2026-10-11T01:01:52.665Z" }, + { url = "https://files.pythonhosted.org/packages/ef/b6/d52ca608859e271b5fa7944074802dc45f60e52c318a4ddc34edbf73586e/aiohttp-3.14.5-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:e724a7b6091f0b1ac064f9d1b15ff9ec52e6033a86cdae649e5f086e32a3c0db", size = 549667, upload-time = "2026-10-11T01:01:54.65Z" }, + { url = "https://files.pythonhosted.org/packages/ce/b5/05b8ac39a76ff4bca89f42a4c2471560c71f894ff6e4bc16158c951874e3/aiohttp-3.14.5-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c32e26310cc10e547f53cd13d39a369034f69dcb7d749d5cb0e5f67bc196b6ba", size = 548922, upload-time = "2026-10-11T01:01:56.547Z" }, + { url = "https://files.pythonhosted.org/packages/19/b0/5aa186d56ce2334dabe29b70bd99dc8ae926ee44184c0de64a53d415a4f3/aiohttp-3.14.5-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1eb8167961ec4dfcc8cb9dd50bd0ee72519f7ef496be95203e49e27b01618382", size = 1882422, upload-time = "2026-10-11T01:01:59.258Z" }, + { url = "https://files.pythonhosted.org/packages/db/f7/7d5c91bb9620db300c8ddb05337a9014301acb626223faff3abcb8ea47d7/aiohttp-3.14.5-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c1d60eafd9c7e8e74abd03a5b00df44e7febfe6d9b89b559c0a6551eef0699d4", size = 1843621, upload-time = "2026-10-11T01:02:01.417Z" }, + { url = "https://files.pythonhosted.org/packages/30/0a/b208953b96d8f24b75f6da704f508e6c5cf3022f52b60c61933df082e89c/aiohttp-3.14.5-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:137351bf20bbed9a65e839f4a4452ac377389bdb2f2857d2acffef38f5e9f2d1", size = 1927915, upload-time = "2026-10-11T01:02:03.697Z" }, + { url = "https://files.pythonhosted.org/packages/f6/79/90ebcccb55e2d1e11a1fed581d83bb966e38fb35fb4b2577fdc980f8707a/aiohttp-3.14.5-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:fba47bc2c3d7303c3d027c6cf4d07626c37b1314ac81f5820c31032e0ca1f677", size = 2036339, upload-time = "2026-10-11T01:02:06.046Z" }, + { url = "https://files.pythonhosted.org/packages/a6/66/55a8904b3a129fafdf94f9cc0a2e4ca09a3c914650be52355db7ad0bbdb6/aiohttp-3.14.5-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:94684b879ac1d71e4238850c99b62dc1b28d9086b156a2555f082010b85a865c", size = 1888041, upload-time = "2026-10-11T01:02:08.384Z" }, + { url = "https://files.pythonhosted.org/packages/0b/b8/96b25da7329a52e42c812b1e8b076386039ec4fc312afa043d173d8147fc/aiohttp-3.14.5-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:56572c42e3ecd636de8d2c3dd54cf5fc939cb5c32eb56297f176a0d366fac622", size = 1703849, upload-time = "2026-10-11T01:02:10.903Z" }, + { url = "https://files.pythonhosted.org/packages/1b/43/fbf976e3ae4c038d6f5c84945ab2150298c2d71201674d4e53d158063e75/aiohttp-3.14.5-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:a95529a92a446db351675f4aab518feaf5e99842f63f5dd17160c2b74f382db3", size = 1849703, upload-time = "2026-10-11T01:02:13.15Z" }, + { url = "https://files.pythonhosted.org/packages/8b/7d/218e912f4c1d89bde7ac551409be57ad2f6121638e56942d395a7cb1fa58/aiohttp-3.14.5-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:3edbece0379b8b4aaa67619b8aa2399bb66fce372cd5911098a434ea77220aa0", size = 1852695, upload-time = "2026-10-11T01:02:15.295Z" }, + { url = "https://files.pythonhosted.org/packages/5a/42/252a1b9287e3b6e393a1c3bd1776f36af30f5f25f071bbf2b0cb7eba9116/aiohttp-3.14.5-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:56d9828f204331a5ca8850fcfe2bcce95a149f1f223f60cc7216e5524978e480", size = 1893493, upload-time = "2026-10-11T01:02:17.93Z" }, + { url = "https://files.pythonhosted.org/packages/78/97/71cae83d5100556fad1521684f7cd1e3e578432644f850245ed3bd969310/aiohttp-3.14.5-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:20064a177a070d789ee64a50b01a9161d3468e989baacfc6c714aa685c4b332f", size = 1693468, upload-time = "2026-10-11T01:02:20.666Z" }, + { url = "https://files.pythonhosted.org/packages/1f/69/73d88e97a8b5f0ca7a946d0011c0de99fb188b1687c7948ecd0553dc5bf0/aiohttp-3.14.5-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:81c2b3dfd56c62bee6108e4852d5970b4cf9086390b6983f52b666e878c1f115", size = 1915398, upload-time = "2026-10-11T01:02:23.011Z" }, + { url = "https://files.pythonhosted.org/packages/05/f0/881644bcb15d4b258daea9b720a0af9dc4330496cc8d6ade9090cdd0cffc/aiohttp-3.14.5-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:09ec102b4b8c9a920275733bbc11fdbb615efe6f9231a06007c0218d336fb77a", size = 1871470, upload-time = "2026-10-11T01:02:25.278Z" }, + { url = "https://files.pythonhosted.org/packages/7f/de/19d9ebbcce5aedaa3242d8a99ff8816a60bdb7629fb0084bf4a45bfd1f62/aiohttp-3.14.5-cp314-cp314-win32.whl", hash = "sha256:9c428eb2bd8817588d16a0ab898aa4eb5d141f896aa2b394cc79a4cf61d9a8e2", size = 485517, upload-time = "2026-10-11T01:02:27.579Z" }, + { url = "https://files.pythonhosted.org/packages/a9/74/8cdaf0e58c2588371670d5a9a8215bbb971d36940b6e5d051967dd05c07d/aiohttp-3.14.5-cp314-cp314-win_amd64.whl", hash = "sha256:6f967dde489ca6a8c02d093ab245d2cbf50ccb5c36adf0188b17b0ca39d24b67", size = 511755, upload-time = "2026-10-11T01:02:29.685Z" }, + { url = "https://files.pythonhosted.org/packages/1a/6b/e0100e25502430a531c7cf1482a378d0b65bf728ab60c01ee270e56bc469/aiohttp-3.14.5-cp314-cp314-win_arm64.whl", hash = "sha256:1d2d981b53dd09a319e3570ef8cc3bbc3ef86f5a7abef0f6b2bff3867db3a9e7", size = 495151, upload-time = "2026-10-11T01:02:32.163Z" }, + { url = "https://files.pythonhosted.org/packages/9d/c2/ca2ead7b655688c53c03aeeb6e96e6851c9ff08d6be7b13802f53a6ae8fd/aiohttp-3.14.5-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:9ce66feae6ac65327379460380549bf1b8df8e17c4e25df2a2bcf168272e3bed", size = 855396, upload-time = "2026-10-11T01:02:34.443Z" }, + { url = "https://files.pythonhosted.org/packages/a7/70/22206fea409255a240c926ce11de48de354ae2bb90ca44f709c05497585d/aiohttp-3.14.5-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:27c2322e03f66101acb09869ce1cf1efc04994ee95e1735b69827bf8c8b9d781", size = 567734, upload-time = "2026-10-11T01:02:36.644Z" }, + { url = "https://files.pythonhosted.org/packages/ce/e5/79a36c118308b56f8667d67e05d2fb6dc638ab45985704cdb199631bedaa/aiohttp-3.14.5-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ff75a7537413a86e7cafe98e0e1d6e3dc4b15c6349896e7d5c6b881bfdb6d550", size = 567379, upload-time = "2026-10-11T01:02:38.757Z" }, + { url = "https://files.pythonhosted.org/packages/63/a3/2ebec7dece3b1f02c30d2e484647f6f7b13952b1bb40a4cb285b849e8432/aiohttp-3.14.5-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9c061aa954daaf57d2a4b8374f9fca621ef0e1b603584431c220c22458c59b6d", size = 2050686, upload-time = "2026-10-11T01:02:41.169Z" }, + { url = "https://files.pythonhosted.org/packages/3a/d2/7e4d093db2f4450482652e7ef19a9e19919028f5135aa52bc4078c3beb80/aiohttp-3.14.5-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:1612fa5857b37bf32e5c1eaeefb96e3b01e9c70679eec81f0934e8a600080863", size = 1915077, upload-time = "2026-10-11T01:02:43.563Z" }, + { url = "https://files.pythonhosted.org/packages/a6/88/bd40d09958442a0a1df67da81de496361d6e2afc04f9db2950d835da750b/aiohttp-3.14.5-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:adbeee7d6fd4cf5fe0aece2fb3edc4243615d3180430ba8149d01a90670cac99", size = 2027204, upload-time = "2026-10-11T01:02:46.185Z" }, + { url = "https://files.pythonhosted.org/packages/63/eb/3a601c1f8d3103c1a60ea981f20924855da9f575d2007fc38f8898b792fb/aiohttp-3.14.5-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b2966998927d7bed9db12c0a4647b0c7b179755878fc9c357fe1ffd3e3b0c1a5", size = 2149520, upload-time = "2026-10-11T01:02:48.812Z" }, + { url = "https://files.pythonhosted.org/packages/22/d0/4e41bfe1b1ce1cb6f6d2e59fa7a88ef5cf92c402b2d07e9018778ba9edbc/aiohttp-3.14.5-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8e317e0fb6b16212c881d2205a7d87414c29acd69320b3aa6dce9d9c7b86fe4f", size = 2002039, upload-time = "2026-10-11T01:02:51.293Z" }, + { url = "https://files.pythonhosted.org/packages/6f/5e/72067019545c502b881b031153c437752ecef48d7d213bc0218ccebb4bfb/aiohttp-3.14.5-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:50343c1757b4b6f6708eeaf24534b32f19dfb99fb1b762c00420867a62fc81e0", size = 1786164, upload-time = "2026-10-11T01:02:53.533Z" }, + { url = "https://files.pythonhosted.org/packages/d9/fe/7741efd6119bfb7a00827fe6f7b84b4409de58d888ae21adc5a9a6824992/aiohttp-3.14.5-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:083673c7a94c3ea035caaa5ca04288bdb44887abfe1f5ba23294e6a4b03efd2d", size = 1970689, upload-time = "2026-10-11T01:02:55.888Z" }, + { url = "https://files.pythonhosted.org/packages/43/e7/342a13bf67f34d269bf2f7e870ecd72b99c832cc6f0a271a9210c0ebfb84/aiohttp-3.14.5-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:2528cb4c6b92008c76ac9ac6298624069bb2db91ff4929905512d1d84485f658", size = 1951967, upload-time = "2026-10-11T01:02:58.467Z" }, + { url = "https://files.pythonhosted.org/packages/e7/d4/fdb3b27340617e5e64df18a70fa89097778652ea5c7c7e2f79def76999c3/aiohttp-3.14.5-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:b1b8ece1e71132d2afba4dbc0c3d62c766e25165990b25db1196c04969eb3d84", size = 1968511, upload-time = "2026-10-11T01:03:00.883Z" }, + { url = "https://files.pythonhosted.org/packages/83/b2/e8f88298de78d1a951f36f9f966d38ec6ed1d4721303ba02064a545e8aa6/aiohttp-3.14.5-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:fce9523df31cea6284f3e2c479876750d7687cf671d7b25d32b19effc0e86441", size = 1778497, upload-time = "2026-10-11T01:03:03.206Z" }, + { url = "https://files.pythonhosted.org/packages/22/68/9ccdb93d664345c546be7f34480b921774d8c0d98f47e70d7e03b115d475/aiohttp-3.14.5-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:09e0eb18c7e0c8777e2f9149de63799195b9b3ca1b5c81ba6f32f2c6b8628210", size = 1999676, upload-time = "2026-10-11T01:03:05.829Z" }, + { url = "https://files.pythonhosted.org/packages/57/4a/a33cfa6dcb00e94194ae4fe710432ca4ed111e016356b4ba4d2f4c3a124c/aiohttp-3.14.5-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:6774814fd5c338e72ee0da5cbb9432816df450e69c019f72b5d29bdec2a1792d", size = 1963437, upload-time = "2026-10-11T01:03:08.196Z" }, + { url = "https://files.pythonhosted.org/packages/f4/20/eacbecfea3b5c3dcbfc9b023e3a5460f43e5dda16d06a2877ebe7184c3f3/aiohttp-3.14.5-cp314-cp314t-win32.whl", hash = "sha256:33f706574e32c6e694f352a856e05caf18f7f2c871b3e87b41c55ea452b409ab", size = 503973, upload-time = "2026-10-11T01:03:10.481Z" }, + { url = "https://files.pythonhosted.org/packages/ff/78/18eec294f6c8c5dc845dcf6d730a0147d8d0f17e86138a7bdb85e43a30fa/aiohttp-3.14.5-cp314-cp314t-win_amd64.whl", hash = "sha256:5ba14a839fbe87cf7c12a6b5661c05f324a296eb8363141edb3944ba63d4c9d3", size = 531190, upload-time = "2026-10-11T01:03:12.716Z" }, + { url = "https://files.pythonhosted.org/packages/9d/39/e53f8169acc85271ebd12b5b32ad7f1541b35639ccbe0f49034c64785d10/aiohttp-3.14.5-cp314-cp314t-win_arm64.whl", hash = "sha256:1061b364556e8172e8d46b0b183adeeb73e8c42d30ebc745591e1bd89acad52e", size = 510360, upload-time = "2026-10-11T01:03:15.08Z" }, + { url = "https://files.pythonhosted.org/packages/f3/1c/06d89f58b2db3ee92dd377217659d587e06f973e57bf0a97a0d8a4586c0c/aiohttp-3.14.5-cp315-cp315-android_24_arm64_v8a.whl", hash = "sha256:788ecaa9c10533b786ce5ba70c4f2df78ad41819fd00a6c99d92b66f9a32e1da", size = 540674, upload-time = "2026-10-11T01:03:17.483Z" }, + { url = "https://files.pythonhosted.org/packages/18/39/5e822e038f496f0540ada91e27099d48f9e7f919b6c6deb4cf6db36cc706/aiohttp-3.14.5-cp315-cp315-android_24_x86_64.whl", hash = "sha256:5c76f1802bab718a68ac3cce447160605c734551f95c67ae90fa1132b215cb29", size = 554183, upload-time = "2026-10-11T01:03:19.71Z" }, + { url = "https://files.pythonhosted.org/packages/9b/ff/0cf2619d902b5b160762422a7e5e02091295766a7fe4fcf5b9a655e386c1/aiohttp-3.14.5-cp315-cp315-ios_13_0_arm64_iphoneos.whl", hash = "sha256:a6d02b4c38de03d9c7617813433e6a0fb6b522797974177d69d9dad431900833", size = 523160, upload-time = "2026-10-11T01:03:22.193Z" }, + { url = "https://files.pythonhosted.org/packages/86/99/3553abfc53a40849dbaacc3f54c730ec58410809ffa2d05885ae56108f2d/aiohttp-3.14.5-cp315-cp315-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:20726f9782d5c2744c1c66255842d1d163bb3edcf768b8de25216bf47f7b6ccf", size = 530311, upload-time = "2026-10-11T01:03:24.435Z" }, + { url = "https://files.pythonhosted.org/packages/fe/a4/5d25f73754bc1e8f983ba704e86d641aea290c967f195f2aeebdaed2bd84/aiohttp-3.14.5-cp315-cp315-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:248d779ad720b49d4fb355720e60c9e5f444f95887bc16974fea48fc56c41789", size = 540274, upload-time = "2026-10-11T01:03:26.698Z" }, + { url = "https://files.pythonhosted.org/packages/29/a4/07eda5db2e3ee017d9590f36c12a94ec6f1f50516e8df78672373dfc7185/aiohttp-3.14.5-cp315-cp315-macosx_10_15_universal2.whl", hash = "sha256:0a8ea271867e360ac985ae607f4a23ad9a38414b9aca1d49ec98839ae660e49f", size = 819239, upload-time = "2026-10-11T01:03:29.481Z" }, + { url = "https://files.pythonhosted.org/packages/cb/aa/a8723dd987a696dd48d4cf2f0088e589ce77caebff0b96f2a78c20424380/aiohttp-3.14.5-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:823c910f046f23f4c713b8d99a2242dc65f591cb45ee86418fa11762a3c2963c", size = 549832, upload-time = "2026-10-11T01:03:32.02Z" }, + { url = "https://files.pythonhosted.org/packages/29/5c/969a1b72692055fd2a419590c41847ec9144fefb97b75ff1cde5b6372891/aiohttp-3.14.5-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:9b42db919715e91eb76acf3bc492a9a7ccd8bd9adc6745c1412b689735269f14", size = 549234, upload-time = "2026-10-11T01:03:34.469Z" }, + { url = "https://files.pythonhosted.org/packages/38/05/8e3e07fd8a0d33d06955ff4e54a1cb92f4bce347ff55e441dc3e25a7b5e5/aiohttp-3.14.5-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d3112585250b199296c26ca6e0131640b6a8d01bab8b232d2eb3763ed469de11", size = 1891314, upload-time = "2026-10-11T01:03:36.899Z" }, + { url = "https://files.pythonhosted.org/packages/b6/b3/05a79ce2e25f024e93de30c94f39dc6aa6e2bc1e9c531a5c4b18dc61b7a4/aiohttp-3.14.5-cp315-cp315-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c147451b4a58e7050f7f7394e6c467867c84161560001f9ad4fb2d1446743946", size = 1884372, upload-time = "2026-10-11T01:03:39.334Z" }, + { url = "https://files.pythonhosted.org/packages/94/52/0fd8af0717db109eea258191b326b5cb5847fb88928bfa6c862fd78b9ad3/aiohttp-3.14.5-cp315-cp315-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:bf163cc701f3d4ac43ba7d97771bf5fd955220ef5500ef3ee847bc0ecfbf4ec1", size = 1930957, upload-time = "2026-10-11T01:03:42.172Z" }, + { url = "https://files.pythonhosted.org/packages/4e/b3/fa78733da88812bf9fb193913fb0ce1548f8b6912047633fdf88a758ff8c/aiohttp-3.14.5-cp315-cp315-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f8d40ce41991e9d56fab4f5dc4a51fe59bc3b5c77c27f4b148963064d00232e8", size = 2038886, upload-time = "2026-10-11T01:03:44.646Z" }, + { url = "https://files.pythonhosted.org/packages/cf/f5/2fcc5e30053a938286f17d0edf3f0850b8061b984256fa7c26850b9c8809/aiohttp-3.14.5-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:276a4fc00b1d9ae492b802763a789c5b86328b989c5ea169f2faa447d6a11c7c", size = 1894470, upload-time = "2026-10-11T01:03:47.304Z" }, + { url = "https://files.pythonhosted.org/packages/62/2a/f87feb42abe8e6a7c03814dbcb711540849a1e90aa392055f3183c643610/aiohttp-3.14.5-cp315-cp315-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:50983e3be33d8c0942ab88cec3905b10602f64c469b20153c48c5d4e558dd016", size = 1716273, upload-time = "2026-10-11T01:03:50.121Z" }, + { url = "https://files.pythonhosted.org/packages/81/b2/adf1f960dd977722ed1347d33da512a1624807114f57a3b91f5cc828e081/aiohttp-3.14.5-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:16c8abd5bca220a47efe667d26f8460124c81810787e79ee87b242677563d9dd", size = 1857513, upload-time = "2026-10-11T01:03:52.959Z" }, + { url = "https://files.pythonhosted.org/packages/d7/fd/ef8d910e641de4160026a513ace5888b7f92826bbc3fd90ced05d55a828e/aiohttp-3.14.5-cp315-cp315-musllinux_1_2_armv7l.whl", hash = "sha256:0790ec66fa4013e83c53b9025a45d454723da1a2fce28b3208c9b32d08af162f", size = 1887704, upload-time = "2026-10-11T01:03:55.641Z" }, + { url = "https://files.pythonhosted.org/packages/7e/db/6c9142f941cba8d35be8e1fae6ea2bd390e754fc14076b8147aee1a4592f/aiohttp-3.14.5-cp315-cp315-musllinux_1_2_ppc64le.whl", hash = "sha256:cb11a971a3aea10f9b8373be628f1df932964fc6c6b174516d318a48c3ac4412", size = 1895684, upload-time = "2026-10-11T01:03:58.18Z" }, + { url = "https://files.pythonhosted.org/packages/e6/7c/6a6bd9a72e576d376c668333b00c51c6147aba4fb863ed6c94996d497eca/aiohttp-3.14.5-cp315-cp315-musllinux_1_2_riscv64.whl", hash = "sha256:932ce7e694bbc29b2bf6f64f2343c27d148d4997c771d01bdade4639b6749ff4", size = 1706299, upload-time = "2026-10-11T01:04:00.8Z" }, + { url = "https://files.pythonhosted.org/packages/69/ec/d2cc494242f8c4d3d1cd70baf591742818a74386dc3b84af3195c5c4fced/aiohttp-3.14.5-cp315-cp315-musllinux_1_2_s390x.whl", hash = "sha256:a7d470cf7b206e6359fc77b1b860632fde400d5a2ed59cd0181b93a686bc81ee", size = 1916645, upload-time = "2026-10-11T01:04:03.892Z" }, + { url = "https://files.pythonhosted.org/packages/a3/6e/e852c53647e815db09a1b6b5ab634f54bd736412397e11940feef4d2c89a/aiohttp-3.14.5-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:6e1d8637cf73eebc92eba2e11d4cfff98a3b562f2505bd75bba766d908926e8d", size = 1875408, upload-time = "2026-10-11T01:04:06.922Z" }, + { url = "https://files.pythonhosted.org/packages/fe/f6/72ab6ef20c332399be593bac543d2c24a6d241e39d3540ce9f95a63e4bd2/aiohttp-3.14.5-cp315-cp315-win32.whl", hash = "sha256:fbdc5ec49f9ca3cd24955cf3520b10a4d4c901ba2572094c84274e9e7eb30534", size = 485590, upload-time = "2026-10-11T01:04:09.626Z" }, + { url = "https://files.pythonhosted.org/packages/06/eb/e9de75b8c6d2170c42c08ff303abf857ea8a6d9d9b6e99b5aba40f15e962/aiohttp-3.14.5-cp315-cp315-win_amd64.whl", hash = "sha256:a9d3983bd6ab7aa1cfd573544ae98df9b6cb6912a5185a198263e024a636861d", size = 511740, upload-time = "2026-10-11T01:04:12.277Z" }, + { url = "https://files.pythonhosted.org/packages/fc/25/455f3c2785eb0d50748cffd0abd07500815f419a9495b14610b7622d8d2d/aiohttp-3.14.5-cp315-cp315-win_arm64.whl", hash = "sha256:e29347c142cf6e99e0dff5e2995ead1d50fa3b51bf37a7c726a7ccfe5419745a", size = 495171, upload-time = "2026-10-11T01:04:14.667Z" }, + { url = "https://files.pythonhosted.org/packages/e7/6c/497f0a98782eebfcf0f02a7fbdef5428148bd426027140cbad494cf842b5/aiohttp-3.14.5-cp315-cp315t-macosx_10_15_universal2.whl", hash = "sha256:9bf1d5dcc15204d9ec8b8ea4c18fd66e6b80e5de1f4ecbafb3a2f2740f8039d4", size = 855638, upload-time = "2026-10-11T01:04:17.154Z" }, + { url = "https://files.pythonhosted.org/packages/9a/c5/55c0cef2572af9b1ee81608f7c0a1bf74e6c9151a73b04915d933f192335/aiohttp-3.14.5-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:14f04769cfefe4734016a856a83af36133cd17779cef9ae817f812b8ba9d6d51", size = 567455, upload-time = "2026-10-11T01:04:19.702Z" }, + { url = "https://files.pythonhosted.org/packages/4d/47/e1a0e39f4a2b881f6071225afaf94a6547001b5aefc1566734d73c685934/aiohttp-3.14.5-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:6e4251c0ba4624a68a2c11471a1ac54c3306876c21f0ae86de085cc9241c8905", size = 567836, upload-time = "2026-10-11T01:04:22.235Z" }, + { url = "https://files.pythonhosted.org/packages/c3/1d/817d85836f52b687160064a326e62e037dc42f1ad5b6b5188a70e5c134b5/aiohttp-3.14.5-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e4f5cf4dc72a71c4cfa9751b4950be22f733626670230d46e7d606592aa22d59", size = 2051409, upload-time = "2026-10-11T01:04:24.821Z" }, + { url = "https://files.pythonhosted.org/packages/f7/25/e8ea6fc212a9aabce982917346ce8ecab0929c74b60232a056dd11c99da0/aiohttp-3.14.5-cp315-cp315t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:dbf53ae2601b7fd5a93c3944deea3a78d40f495226d582c35ef7a433425ce2b2", size = 1936493, upload-time = "2026-10-11T01:04:27.456Z" }, + { url = "https://files.pythonhosted.org/packages/24/33/de0517f71f1a19feea4aff78a2ec4ec2d98634129ec30ead78fce2f8f81b/aiohttp-3.14.5-cp315-cp315t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:657291433bf4dd3142f3abac495764cd47d0c7c92087751e6666c6447e65fcef", size = 2021405, upload-time = "2026-10-11T01:04:30.276Z" }, + { url = "https://files.pythonhosted.org/packages/c4/11/ddaf2e7930543e9f0cad3a1c54e1af0c1bd2fae3973d568c4263d3b010e9/aiohttp-3.14.5-cp315-cp315t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3e51a27980c3788e6e6b3325d694fdd4898087fa8a86b2763af77b39353da41e", size = 2142017, upload-time = "2026-10-11T01:04:33.022Z" }, + { url = "https://files.pythonhosted.org/packages/1d/7b/58784353c06de8adc20f426daad3d85dd86fd55331c713a3f4b638c94573/aiohttp-3.14.5-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:82c7583cd3dfdc7dcc927835b4f6c7faae7ecc1ba3ca5879321621ae2e6f8e84", size = 2002482, upload-time = "2026-10-11T01:04:35.94Z" }, + { url = "https://files.pythonhosted.org/packages/b9/f0/417d9535caa9e165ffe6a53e2347a78107e7c87dcb0e10aca315c3af0344/aiohttp-3.14.5-cp315-cp315t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:6fdcd6af7e2e51d1ba1b4bea16e97b074bcb7b5dd0246a9d8201341bb28085a0", size = 1791774, upload-time = "2026-10-11T01:04:38.733Z" }, + { url = "https://files.pythonhosted.org/packages/98/01/25e49c2e8a01b9f0e19ca0a8448ad50aa2bdf96c8cd41e92bd45af044784/aiohttp-3.14.5-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:c8859a013ae0de1074660992139a1a440df3e6b219b86cf0d3f11c2692bb4fe3", size = 1970358, upload-time = "2026-10-11T01:04:41.66Z" }, + { url = "https://files.pythonhosted.org/packages/2d/fc/c132fd3465b6c7e4ce0193154f602c3e6c46b680e4da7eb3bd0d8a40d1c7/aiohttp-3.14.5-cp315-cp315t-musllinux_1_2_armv7l.whl", hash = "sha256:8966ecac808dd5f473c9c4cefd10cd3ffda71c18a4d3493b7c7d2ae1803bf2cc", size = 1969192, upload-time = "2026-10-11T01:04:44.66Z" }, + { url = "https://files.pythonhosted.org/packages/95/4e/d58b45e7dba4eb607eca11fc0a4aa77ae0f39c11afa804635a61ce18cff4/aiohttp-3.14.5-cp315-cp315t-musllinux_1_2_ppc64le.whl", hash = "sha256:3093b72c215bda16ce961a6d073f6e71d46e022962a9d5d457c5d4d421c78b57", size = 1963618, upload-time = "2026-10-11T01:04:47.505Z" }, + { url = "https://files.pythonhosted.org/packages/a2/d9/f6ac50946efb3490428ef52b56e62c1c6b7f9c6ff3ec6083535526c83e60/aiohttp-3.14.5-cp315-cp315t-musllinux_1_2_riscv64.whl", hash = "sha256:149fb56caf7acb67073126f675d0958d9c4b3125fcd3f6d4877df98aa8a97ce9", size = 1784817, upload-time = "2026-10-11T01:04:50.287Z" }, + { url = "https://files.pythonhosted.org/packages/d0/2f/f255eb63da788cd8a452fe350869c03266ccad7d884925f6963c87808f24/aiohttp-3.14.5-cp315-cp315t-musllinux_1_2_s390x.whl", hash = "sha256:293d3ae7c6a0ed176a42e59a1b5fde825ead65c835360f734148e96729f928d2", size = 1995956, upload-time = "2026-10-11T01:04:53.213Z" }, + { url = "https://files.pythonhosted.org/packages/d9/9b/241aa3393eaafda0034470add1625f82a4c252901108723b283a9b0b32ca/aiohttp-3.14.5-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:3f2dcc00191fd563e9075181a14ec31d7dd63223ced7582cc70a15a499de0c79", size = 1967794, upload-time = "2026-10-11T01:04:55.958Z" }, + { url = "https://files.pythonhosted.org/packages/5f/7f/a68e689288c9e4bfcf8d0979f2b12b774bf01861985420df6150eba5448e/aiohttp-3.14.5-cp315-cp315t-win32.whl", hash = "sha256:7779cd97e61ebe583ec2f1c5616cdd038aa08a4453b1848c67842176d054948e", size = 503876, upload-time = "2026-10-11T01:04:58.978Z" }, + { url = "https://files.pythonhosted.org/packages/a4/78/49b0299da6d54de19fc6fdc6889d50233ac47d192a461624f4fc010fde83/aiohttp-3.14.5-cp315-cp315t-win_amd64.whl", hash = "sha256:0e6f16f5e49c4b8267988c05ab07760d7064cea57d077c3d068d04b0fbb992cb", size = 530957, upload-time = "2026-10-11T01:05:02.23Z" }, + { url = "https://files.pythonhosted.org/packages/21/d4/b0afc936aeb6d2f93157e3408b069ec5d7934429ae7d023de5e0953b1887/aiohttp-3.14.5-cp315-cp315t-win_arm64.whl", hash = "sha256:1aead151c3abbac6b32942e452020cb66d7efc099d253cc6c20f748e926c858b", size = 510408, upload-time = "2026-10-11T01:05:05.362Z" }, + { url = "https://files.pythonhosted.org/packages/68/30/173960c42b05a6c59f7558e4b12a4b0d9ba376cf6aa9bde7f9e08a30ca8d/aiohttp-3.14.5-py3-none-any.whl", hash = "sha256:efc21a454892828368b11c2c780de0ff8bc991f73f6b99c6b66e56205470929b", size = 279517, upload-time = "2026-10-11T01:05:08.523Z" }, ] [[package]] name = "aioitertools" version = "0.13.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/fd/3c/53c4a17a05fb9ea2313ee1777ff53f5e001aefd5cc85aa2f4c2d982e1e38/aioitertools-0.13.0.tar.gz", hash = "sha256:620bd241acc0bbb9ec819f1ab215866871b4bbd1f73836a55f799200ee86950c", size = 19322 } +sdist = { url = "https://files.pythonhosted.org/packages/fd/3c/53c4a17a05fb9ea2313ee1777ff53f5e001aefd5cc85aa2f4c2d982e1e38/aioitertools-0.13.0.tar.gz", hash = "sha256:620bd241acc0bbb9ec819f1ab215866871b4bbd1f73836a55f799200ee86950c", size = 19322, upload-time = "2025-11-06T22:17:07.609Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/10/a1/510b0a7fadc6f43a6ce50152e69dbd86415240835868bb0bd9b5b88b1e06/aioitertools-0.13.0-py3-none-any.whl", hash = "sha256:0be0292b856f08dfac90e31f4739432f4cb6d7520ab9eb73e143f4f2fa5259be", size = 24182 }, + { url = "https://files.pythonhosted.org/packages/10/a1/510b0a7fadc6f43a6ce50152e69dbd86415240835868bb0bd9b5b88b1e06/aioitertools-0.13.0-py3-none-any.whl", hash = "sha256:0be0292b856f08dfac90e31f4739432f4cb6d7520ab9eb73e143f4f2fa5259be", size = 24182, upload-time = "2025-11-06T22:17:06.502Z" }, ] [[package]] @@ -156,59 +199,70 @@ dependencies = [ { name = "frozenlist" }, { name = "typing-extensions", marker = "python_full_version < '3.13'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/61/62/06741b579156360248d1ec624842ad0edf697050bbaf7c3e46394e106ad1/aiosignal-1.4.0.tar.gz", hash = "sha256:f47eecd9468083c2029cc99945502cb7708b082c232f9aca65da147157b251c7", size = 25007 } +sdist = { url = "https://files.pythonhosted.org/packages/61/62/06741b579156360248d1ec624842ad0edf697050bbaf7c3e46394e106ad1/aiosignal-1.4.0.tar.gz", hash = "sha256:f47eecd9468083c2029cc99945502cb7708b082c232f9aca65da147157b251c7", size = 25007, upload-time = "2025-07-03T22:54:43.528Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/fb/76/641ae371508676492379f16e2fa48f4e2c11741bd63c48be4b12a6b09cba/aiosignal-1.4.0-py3-none-any.whl", hash = "sha256:053243f8b92b990551949e63930a839ff0cf0b0ebbe0597b0f3fb19e1a0fe82e", size = 7490 }, + { url = "https://files.pythonhosted.org/packages/fb/76/641ae371508676492379f16e2fa48f4e2c11741bd63c48be4b12a6b09cba/aiosignal-1.4.0-py3-none-any.whl", hash = "sha256:053243f8b92b990551949e63930a839ff0cf0b0ebbe0597b0f3fb19e1a0fe82e", size = 7490, upload-time = "2025-07-03T22:54:42.156Z" }, +] + +[[package]] +name = "annotated-types" +version = "0.8.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5f/56/a8120250d128bed162cd73c76d45f6ef9991f3e068f62a8ee060afa3104a/annotated_types-0.8.0.tar.gz", hash = "sha256:13b2beaad985e05e2d6407ee4c4f35590b11f8d693a258a561055cac8f64cab7", size = 15893, upload-time = "2026-07-23T20:16:13.995Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/99/91/8acff4f5e50511b911bbccb72b8628a49c68ce14148cd9f6431094859a90/annotated_types-0.8.0-py3-none-any.whl", hash = "sha256:f072f4d804ea359e4eaf198b1af7a8b0943881a87f31bb764f8bf219bb9419e0", size = 13427, upload-time = "2026-07-23T20:16:12.938Z" }, ] [[package]] name = "appnope" -version = "0.1.4" +version = "1.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/35/5d/752690df9ef5b76e169e68d6a129fa6d08a7100ca7f754c89495db3c6019/appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee", size = 4170 } +sdist = { url = "https://files.pythonhosted.org/packages/11/f7/a82489c2b6ebe32d3e2831895ae19c77861f0eadf3bb16034484d965dbb2/appnope-1.0.0.tar.gz", hash = "sha256:685db59cb6043c3c2e528adc0b3bce3a5f8d09bcf7492c6ea650d1b7421f3c49", size = 5454, upload-time = "2026-08-20T21:36:13.748Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/81/29/5ecc3a15d5a33e31b26c11426c45c501e439cb865d0bff96315d86443b78/appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c", size = 4321 }, + { url = "https://files.pythonhosted.org/packages/46/c7/6b687cb0f83d2a51017d47953f2ee430ffad6fec2a8ebc964e0718a33eb1/appnope-1.0.0-py3-none-any.whl", hash = "sha256:6fe0c04218aab65c54c4ff81638cdbf848d89f5653b74d68638a137f200dd16e", size = 4158, upload-time = "2026-08-20T21:36:12.444Z" }, ] [[package]] name = "array-api-compat" -version = "1.15.0" +version = "1.16.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/86/12/65d297d3e425cb7fe5247b7ec14b4ed83539e9b5e89b65c15ea7ee274182/array_api_compat-1.15.0.tar.gz", hash = "sha256:53c5f922491bf15f62847afafc4e39eedfae57d218988fefb8cce39c2a9b3dea", size = 129305 } +sdist = { url = "https://files.pythonhosted.org/packages/da/88/d7b0f89b1ad0f42ef94b8440fff87b7c0b69701b3c30a5b160fdbc850f25/array_api_compat-1.16.0.tar.gz", hash = "sha256:c8117cb4d6c7aacaec38c2705f72509e342c20b1a716a04cb5397a611f122d51", size = 134991, upload-time = "2026-10-25T18:37:17.582Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/86/16/1a8fd2b19544b84575cf84ef7aa3ad4c173b756d5f087c91f85d1b295777/array_api_compat-1.15.0-py3-none-any.whl", hash = "sha256:7b1b9c53269061403fd5f45a8de349f16e7887653328bfa0c5f2d45299ff0a8e", size = 79113 }, + { url = "https://files.pythonhosted.org/packages/d0/09/cab56a48b7e83609831c96f36658f9e30421877875071f2413eb591cf756/array_api_compat-1.16.0-py3-none-any.whl", hash = "sha256:0464934d7d5f1e9b728b2e248da52400630b1fcb46b70073eab3c7ae084290aa", size = 81744, upload-time = "2026-10-25T18:37:15.934Z" }, ] [[package]] name = "asciitree" -version = "0.3.3" +version = "1.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/2d/6a/885bc91484e1aa8f618f6f0228d76d0e67000b0fdd6090673b777e311913/asciitree-0.3.3.tar.gz", hash = "sha256:4aa4b9b649f85e3fcb343363d97564aa1fb62e249677f2e18a96765145cc0f6e", size = 3951 } +sdist = { url = "https://files.pythonhosted.org/packages/f0/0f/c9686d87934dbbd59d9dee7fbcd98d0e9c8f44e0c5d4965a5bd2f4385865/asciitree-1.0.0.tar.gz", hash = "sha256:0c396808c13cab27b60cbe402b99ef37fa681c6b59d337a008719efa201cdd07", size = 4940, upload-time = "2026-10-25T17:50:11.174Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3b/6a/6683d280e053ab42276234ba73e648ce0db8dce40adc5d409e7e27aaa037/asciitree-1.0.0-py3-none-any.whl", hash = "sha256:4ec3e9dbf093e4b52577325071c11c669ad6fb180a78f168962d35b535d3f430", size = 5255, upload-time = "2026-10-25T17:50:10.284Z" }, +] [[package]] name = "asttokens" -version = "3.0.1" +version = "3.0.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/be/a5/8e3f9b6771b0b408517c82d97aed8f2036509bc247d46114925e32fe33f0/asttokens-3.0.1.tar.gz", hash = "sha256:71a4ee5de0bde6a31d64f6b13f2293ac190344478f081c3d1bccfcf5eacb0cb7", size = 62308 } +sdist = { url = "https://files.pythonhosted.org/packages/25/1e/faf0f247f6f881b98fc4d6d07e14085cb89d13665084e6d6ac1dc2c03d0b/asttokens-3.0.2.tar.gz", hash = "sha256:3ecdbd8f2cc195f53ccada3a613538bb5f9ef6f6869129f13e03c30a677b8fe2", size = 63136, upload-time = "2026-07-12T03:31:49.084Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d2/39/e7eaf1799466a4aef85b6a4fe7bd175ad2b1c6345066aa33f1f58d4b18d0/asttokens-3.0.1-py3-none-any.whl", hash = "sha256:15a3ebc0f43c2d0a50eeafea25e19046c68398e487b9f1f5b517f7c0f40f976a", size = 27047 }, + { url = "https://files.pythonhosted.org/packages/d4/2b/04b8a15f3a1c77bc79ddf5c73875327f34b4fa75982df2b76e45e402d364/asttokens-3.0.2-py3-none-any.whl", hash = "sha256:9da13157f5b28becde0bd374fc677dcd3c290614264eff096f167c469cd9f933", size = 28702, upload-time = "2026-07-12T03:31:47.542Z" }, ] [[package]] name = "attrs" version = "26.1.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/9a/8e/82a0fe20a541c03148528be8cac2408564a6c9a0cc7e9171802bc1d26985/attrs-26.1.0.tar.gz", hash = "sha256:d03ceb89cb322a8fd706d4fb91940737b6642aa36998fe130a9bc96c985eff32", size = 952055 } +sdist = { url = "https://files.pythonhosted.org/packages/9a/8e/82a0fe20a541c03148528be8cac2408564a6c9a0cc7e9171802bc1d26985/attrs-26.1.0.tar.gz", hash = "sha256:d03ceb89cb322a8fd706d4fb91940737b6642aa36998fe130a9bc96c985eff32", size = 952055, upload-time = "2026-03-19T14:22:25.026Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/64/b4/17d4b0b2a2dc85a6df63d1157e028ed19f90d4cd97c36717afef2bc2f395/attrs-26.1.0-py3-none-any.whl", hash = "sha256:c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309", size = 67548 }, + { url = "https://files.pythonhosted.org/packages/64/b4/17d4b0b2a2dc85a6df63d1157e028ed19f90d4cd97c36717afef2bc2f395/attrs-26.1.0-py3-none-any.whl", hash = "sha256:c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309", size = 67548, upload-time = "2026-03-19T14:22:23.645Z" }, ] [[package]] name = "bokeh" -version = "3.9.1" +version = "3.10.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "contourpy" }, { name = "jinja2" }, { name = "narwhals" }, { name = "numpy" }, @@ -218,28 +272,28 @@ dependencies = [ { name = "tornado", marker = "sys_platform != 'emscripten'" }, { name = "xyzservices" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/fc/cc/754521e919aab05982f126b7702c0a253341ef6b400beca22bc5b4bdcb72/bokeh-3.9.1.tar.gz", hash = "sha256:1463d3c84fba61a925ea6ace0b4d3d9c0160ca214f6851edbfed6dc27e172b60", size = 5749911 } +sdist = { url = "https://files.pythonhosted.org/packages/04/ab/19f33e7442fe2f09378bdafa95d088a1ed0dd078ea1f3d676c28d3cf2ed7/bokeh-3.10.1.tar.gz", hash = "sha256:e1dc21c4fa02f793b7c6acb2b439311924f46912b1d1ae1c7b058f8245b54fe8", size = 6053211, upload-time = "2026-10-13T16:53:00.445Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f3/54/40ff985187f0fd1afcedebc23eda0ba92bdbea1e0605cbb878b45391e5e0/bokeh-3.9.1-py3-none-any.whl", hash = "sha256:8bf2aae574509055fbd6b68f023046bebc91b0bbd631d204d0d60863b4237dbd", size = 6406728 }, + { url = "https://files.pythonhosted.org/packages/4e/9c/aaf2f11e31a75f0fffc79659ad7f0be01f39bb018bbc83c2a8a02657589e/bokeh-3.10.1-py3-none-any.whl", hash = "sha256:d73412b6317f70df0ffe6796956af609617523dfdfbc624d4f7f496cd09e8101", size = 6721259, upload-time = "2026-10-13T16:52:58.309Z" }, ] [[package]] name = "botocore" -version = "1.43.0" +version = "1.43.117" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "jmespath" }, { name = "python-dateutil" }, { name = "urllib3" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/28/79/2f4be1896db3db7ccf44504253a175d56b6bd6b669619edc5147d1aa21ea/botocore-1.43.0.tar.gz", hash = "sha256:e933b31a2d644253e1d029d7d39e99ba41b87e29300534f189744cc438cdf928", size = 15286817 } +sdist = { url = "https://files.pythonhosted.org/packages/6e/a0/d0a5c44ad6a01f195681ddcb4ce203f06c712811daf1d15f8f8785e8a9f8/botocore-1.43.117.tar.gz", hash = "sha256:71993702832cc37c2495048b9945f2929d306fccb3fb767e9964e437e637fa6c", size = 16366888, upload-time = "2026-10-21T19:29:59.274Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/bf/4b/afc1fef8a43bafb139f57f73bbd70df82807af5934321e8112ae50668827/botocore-1.43.0-py3-none-any.whl", hash = "sha256:cc5b15eaec3c6eac05d8012cb5ef17ebe891beb88a16ca13c374bfaece1241e6", size = 14970102 }, + { url = "https://files.pythonhosted.org/packages/10/94/050e35c9febf6dd2fce4a76be587ae4a323964865700467d9d7b082f7133/botocore-1.43.117-py3-none-any.whl", hash = "sha256:5920ef9b3002e1361846549078549d9154a6e0004c22853c01ce7b279d05d495", size = 16061765, upload-time = "2026-10-21T19:29:56.001Z" }, ] [[package]] name = "cartopy" -version = "0.25.0" +version = "0.26.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "matplotlib" }, @@ -249,82 +303,150 @@ dependencies = [ { name = "pyshp" }, { name = "shapely" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/3c/3f/ec3dee34237b696a486d566a6d3ae6550ae821836e0412bafdcbbec2cfd2/cartopy-0.25.0.tar.gz", hash = "sha256:55f1a390e5f3f075b221c7d91fb10258ad978db786c7930eba06eb45d28753fe", size = 10767728 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/63/35/b19901cbe7f1b118dccbb9e655cda7d01a31ee1ecd67e5d2d8afe119f6d3/cartopy-0.25.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:060a7b835c0c4222c1067b6ffb2f9c18458abaa35b6624573a3aa37ecf55f4bf", size = 11006900 }, - { url = "https://files.pythonhosted.org/packages/4b/4f/09e824f86be09152ec0f1fa1fe69affbd34eac7a13b545e2e08b9b6bc8ff/cartopy-0.25.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:57717cb603aecff03ecfee1bc153bb4022c054fcd51a4214a1bb53e5a6f74465", size = 10994813 }, - { url = "https://files.pythonhosted.org/packages/b9/30/7465b650110514fc5c9c3b59935264c35ab56f876322de34efa55367ee4e/cartopy-0.25.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:53c256351433155ef51dde976557212f4e230b8cca4e5d0d9b9a2737ad92959d", size = 11799069 }, - { url = "https://files.pythonhosted.org/packages/1d/52/3a57ecb4598c33ee06b512d3686e46b3983e65abd6ec94c5262d01930ed9/cartopy-0.25.0-cp312-cp312-win_amd64.whl", hash = "sha256:efedb82f38409b72becdfee02231126952816d33a68b1c584bd2136713036bfb", size = 10983127 }, - { url = "https://files.pythonhosted.org/packages/8e/b9/0773ff8f1c755b8a362029e6910db87064d27ca021b060c48ce511ec98b7/cartopy-0.25.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a6fcd2df8039293096f957fc9c76e969b1a9715d12ab8cee1a6bdae0c6773b8b", size = 11007728 }, - { url = "https://files.pythonhosted.org/packages/34/a6/75738630b7f64bca7afc6bc5de08ddf0c61f13563f2a1abf642373d1095e/cartopy-0.25.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e4def451617e6957169447fe6ecdad0f63ef2d2007e7d451dd7b9656ada57382", size = 10996613 }, - { url = "https://files.pythonhosted.org/packages/19/0d/669d4bbeb36b87ba504409d85c68ec297e6f434ea6525424f8aa5f14abac/cartopy-0.25.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1c388824cb13e4fa9c2901dc4fbb2dbe9547acd2f4a6a3440983d4e6c6973ae3", size = 11829044 }, - { url = "https://files.pythonhosted.org/packages/01/ff/b46e2120abd99b2ff3d376dc91ed58ae8f0a052d57c242c9b140497573dd/cartopy-0.25.0-cp313-cp313-win_amd64.whl", hash = "sha256:60bad14c072d16e3c96967638cd66eb5a62cf24bc70087bcbfc6b30a3872ed26", size = 10987060 }, +sdist = { url = "https://files.pythonhosted.org/packages/a3/a2/ae348fc400e73fd5b589919ab5f13aece4feb31cd5cc78ab54773018563b/cartopy-0.26.0.tar.gz", hash = "sha256:b87a35835f30333760cc46194bd90b6a4958d12f488f50131d4c4c0962ad9c3c", size = 8579492, upload-time = "2026-09-17T02:57:14.863Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4a/9b/3a32fa86d694188801ed2635672742a74b73538ee807edf9bb05d8ec471f/cartopy-0.26.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:663f00c5350c85d547ef219fdd8672c15e36622132a9745915118bf71ccd30d4", size = 8791036, upload-time = "2026-09-17T02:54:57.097Z" }, + { url = "https://files.pythonhosted.org/packages/b8/85/3d3145e4858f1f980be896ef8d0e19b00302895499e46ce9c9821b9c728d/cartopy-0.26.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6331dc2efd85c76ad55c3cb458940038f7a4224d46fc339ee5dc81b251908755", size = 8787966, upload-time = "2026-09-17T02:54:59.819Z" }, + { url = "https://files.pythonhosted.org/packages/e4/11/eddff579989027c23dbfaacb00b79159266f63e0c42ce4982c5a773f2f56/cartopy-0.26.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0e4364f5c17f2be28bce4714a60a75603b10d67fe7890d479ef3aaf1e69118a5", size = 9492979, upload-time = "2026-09-17T02:55:02.599Z" }, + { url = "https://files.pythonhosted.org/packages/a0/19/b4dfb2690b55262e6ec3e578731ee4b7df1e668a41a8879b4f7d71d9a0df/cartopy-0.26.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4c176bc6a9b9e96cdafed63daea2a3d6368f9887e7acf7b3bcc9d5e0bc0914b9", size = 9510776, upload-time = "2026-09-17T02:55:05.346Z" }, + { url = "https://files.pythonhosted.org/packages/52/84/d40cf7c53da9db42e217de3dd0b1a6795267f14cc12de1dd277441f50b24/cartopy-0.26.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:24686f0b5ebff20e0691933f2a9c0155efd24192324966a7a81d6c1903015711", size = 10459518, upload-time = "2026-09-17T02:55:08.122Z" }, + { url = "https://files.pythonhosted.org/packages/a3/dc/bd53e2dce590efd5f47e285ab2b1303256e6f60780e43e4f7bd3e1b5fec5/cartopy-0.26.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c6543662275a760acd7b8bfcb7b6d531229dffee6fd4b891d2bb11c8f53ff8ea", size = 10537231, upload-time = "2026-09-17T02:55:11.245Z" }, + { url = "https://files.pythonhosted.org/packages/85/c7/5adfeb3dcdf59e22200a97a852e03fbb4c63a7a1bce6eded66947a086e6c/cartopy-0.26.0-cp312-cp312-win32.whl", hash = "sha256:cf0925eeb9fcaea3db97cb2b62e07df84ddc4f66e4fd9c38da470c279e502f0d", size = 8945441, upload-time = "2026-09-17T02:55:14.695Z" }, + { url = "https://files.pythonhosted.org/packages/2e/06/e92639aed965e7bec43518208e3caccd65d3e3f9f7ae36abd18db15b5fc8/cartopy-0.26.0-cp312-cp312-win_amd64.whl", hash = "sha256:0ffd0c16788fd79fb6ddffe77cff01e6a00632962cb2f13b3750d72384271280", size = 8961674, upload-time = "2026-09-17T02:55:17.96Z" }, + { url = "https://files.pythonhosted.org/packages/0d/1d/b3b2125e20cb37f0bdfd501bc05c93c4c43fc915883979fa3fd94c7b3591/cartopy-0.26.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9cbcc7b585cd715befb143ba19213fe7770c302fc50097edcb6025ad2b129beb", size = 8790561, upload-time = "2026-09-17T02:55:20.926Z" }, + { url = "https://files.pythonhosted.org/packages/7b/33/7f2f6e1ae1db2c4d688f9d1bd54778e1677e2f46a341286b74287b331895/cartopy-0.26.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9841e51d4c1a3258365ad3ae0549d06451ee7bd48dd19657d8daa172d581a897", size = 8787570, upload-time = "2026-09-17T02:55:23.671Z" }, + { url = "https://files.pythonhosted.org/packages/ac/60/343f57b4d0c422a3c87308de766716f0c190b2dc35d5fef262331711bbb2/cartopy-0.26.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e81ede9ba9f8dcd7ef7372ff89811c7652967ae14fdd4ced15bd5d765db198d8", size = 9486503, upload-time = "2026-09-17T02:55:26.489Z" }, + { url = "https://files.pythonhosted.org/packages/a2/41/47cc1137a8d02802d131ad0e16f3e52cd4518dab7cae5194af224fe9b9d2/cartopy-0.26.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0326ef7f3833690998f1256ea181a60e2bac6dcc9896c5233c17204521db90fb", size = 9505266, upload-time = "2026-09-17T02:55:29.174Z" }, + { url = "https://files.pythonhosted.org/packages/2b/ae/1cd78770eda2fb4448acbe1b95e1b629dc1bb3fae6d7fabbef8fb5eebea2/cartopy-0.26.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:3ff2753716d9f2ff8e4c5c3021663628f05de56937a359ba9c24369a8893644c", size = 10455294, upload-time = "2026-09-17T02:55:32.138Z" }, + { url = "https://files.pythonhosted.org/packages/7f/a5/4d7c666dcc08e24cf647a88b7dc8fa7346b7bdc9454ec50a903954a149ef/cartopy-0.26.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:30691afee99e1ef457f6fe2b0c134e7e96b2d605e57f48c49b265d0aea2fd449", size = 10529735, upload-time = "2026-09-17T02:55:35.153Z" }, + { url = "https://files.pythonhosted.org/packages/26/11/4d45793c2e767d7be45cbb513f72b451f19e40c6263da652bc5ee02e05cd/cartopy-0.26.0-cp313-cp313-win32.whl", hash = "sha256:0677c3f6437716730dee29b6ac5efdde4a0d24ee1624ad349783d1c5e31b55f1", size = 8945259, upload-time = "2026-09-17T02:55:38.203Z" }, + { url = "https://files.pythonhosted.org/packages/53/0a/825999b94a62670a7b2eca37fcaa7781bf3eadcbb60cef657071facfc25e/cartopy-0.26.0-cp313-cp313-win_amd64.whl", hash = "sha256:0f8f81b45844272dd289f79de707d6deb1975e5e0b27a64dff955519e73dc1d5", size = 8961735, upload-time = "2026-09-17T02:55:41.107Z" }, + { url = "https://files.pythonhosted.org/packages/d9/3c/c0cdefc7a4f60d9c56673b9be732fd94526f7930db0b1914418c7f8e1dc4/cartopy-0.26.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:ce66f8adbcf26b64ac18fc25c15190108b3bc9b64a3d17a650d23e17714dcecd", size = 8791138, upload-time = "2026-09-17T02:55:43.77Z" }, + { url = "https://files.pythonhosted.org/packages/22/31/397970fab138a7a8772871d9f9518e6fed0b3f9d708843d34ac3540c1c8d/cartopy-0.26.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:2a9b9dc5b396882091fef14569bfce04b9195e267bb22f1bf8207765de050453", size = 8788441, upload-time = "2026-09-17T02:55:46.347Z" }, + { url = "https://files.pythonhosted.org/packages/54/7c/4cf68f5169d49db68296ba6bba884032766ed784e0c00534043824d09f14/cartopy-0.26.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:89fd20944a518eeab1c69d57a9e588522b540affd3affbbe46d915769db0cf2f", size = 9485816, upload-time = "2026-09-17T02:55:49.584Z" }, + { url = "https://files.pythonhosted.org/packages/a6/8f/c3f210f3926c205483a7c8f824816c4d808efbe2c7de31aef15546e17b09/cartopy-0.26.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f8ec2d6adbb3325eea8b0087471f7b52d1aff603383c669290914145c5d15dff", size = 9498074, upload-time = "2026-09-17T02:55:53.13Z" }, + { url = "https://files.pythonhosted.org/packages/24/a1/535ca75a6f25006efa1a3622f7402282932d9725a7b16e51b8020ba8bf09/cartopy-0.26.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:b9d4eca6344877ad971e4314a2a244aba67255dd959291a813f29538d6b8a345", size = 10452817, upload-time = "2026-09-17T02:55:55.771Z" }, + { url = "https://files.pythonhosted.org/packages/dc/5a/dbead2524f62b9c799b9d6d80d5f2297f469ed7df7f0d07607a59520d766/cartopy-0.26.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:27684a9b8e3ad41b4be8520c1a162e633e298cad51bf2a4a8263c6ae9c4ac616", size = 10524130, upload-time = "2026-09-17T02:55:59.081Z" }, + { url = "https://files.pythonhosted.org/packages/93/e3/5e72c44cf9ffe57f79f80b7007077111e4ab87799cbab75e98f2074ab147/cartopy-0.26.0-cp314-cp314-win32.whl", hash = "sha256:ab020c9dc771bcc5229ed087764b5211eff05ff8e61585613e526eb145196baa", size = 9035508, upload-time = "2026-09-17T02:56:01.785Z" }, + { url = "https://files.pythonhosted.org/packages/cd/a8/b2b3620dff97def14e49ea6368a06e33650b49ad0f4ce4417c3656f4d5c9/cartopy-0.26.0-cp314-cp314-win_amd64.whl", hash = "sha256:629aad5ff84d61915893e24a505e123db09572fb6294eb1192a2a59c0d6e46f0", size = 9053904, upload-time = "2026-09-17T02:56:04.531Z" }, + { url = "https://files.pythonhosted.org/packages/cb/1c/6b15f17f820b241a9a646bfde63a24a4089a84738f0cf583a384db8ee2a5/cartopy-0.26.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:fd19e0b89886c5cc27f7ffc351aa9e5fb25013b75999ee1951510409491300ac", size = 8795807, upload-time = "2026-09-17T02:56:07.752Z" }, + { url = "https://files.pythonhosted.org/packages/20/09/1cd25d4e0d2b04b12a882881d85a59a3924b4fb372ea1e72057607baa9b6/cartopy-0.26.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5f87a94f1338b62280ce419a22c657f8340327ca4b42982bd8f004410ceea30b", size = 8796263, upload-time = "2026-09-17T02:56:10.77Z" }, + { url = "https://files.pythonhosted.org/packages/32/19/96da644b1542323a2cb322ce0dc423813865ff9defe22e3a426349b292a8/cartopy-0.26.0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b9dce3bfde2cd3a994e1a999e3a6ca7799db653d478dba117d19a3241ba05af5", size = 9503937, upload-time = "2026-09-17T02:56:13.504Z" }, + { url = "https://files.pythonhosted.org/packages/3c/9b/56400b4719271cc53edfe37ab4425c912d2759439e43b106967a5a89beb8/cartopy-0.26.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:93948780d7994f59575afb4ca23b13efeb3de472227eb706ab1d841f75c6e24e", size = 9492803, upload-time = "2026-09-17T02:56:16.028Z" }, + { url = "https://files.pythonhosted.org/packages/15/7e/ddf187fd16e7863b4cacab2aad2fe03dfdde98cf2b65e430614d3ed929e4/cartopy-0.26.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:168022e75a0323f245087343c567903754f0f83fae5782453292807976cd0088", size = 10459132, upload-time = "2026-09-17T02:56:18.735Z" }, + { url = "https://files.pythonhosted.org/packages/e7/99/9f66d4684c096728c610912071fb1958180d4214caa54fe5bb3a3fe18428/cartopy-0.26.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:f342e99772c59ab0c289e53dbcfb6b5d7a60dde5985f108756a4b8f16d934ad7", size = 10516529, upload-time = "2026-09-17T02:56:21.596Z" }, + { url = "https://files.pythonhosted.org/packages/97/fd/53685bc41dfccc87e9a487a44e00f8e94ba79de49a25207bb4e4383cd745/cartopy-0.26.0-cp314-cp314t-win32.whl", hash = "sha256:ae2c55df1917c1ded5da80d92960612ab8e3380449750a81d81c3d197dd4df96", size = 9041814, upload-time = "2026-09-17T02:56:24.625Z" }, + { url = "https://files.pythonhosted.org/packages/49/35/3051356d5b0e76d8ea99b6515a9a1c73b9fc38664be6ab2ac43fe864eacb/cartopy-0.26.0-cp314-cp314t-win_amd64.whl", hash = "sha256:7c1d70f871f71b4535991d04fd982f87ad34ddf3ea4a23cc52fec483d5f911a0", size = 9061241, upload-time = "2026-09-17T02:56:27.255Z" }, + { url = "https://files.pythonhosted.org/packages/96/1c/8853ab85f009363f2de89967f9fad808f184e79eef382e12402c6f04b222/cartopy-0.26.0-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:724a2271ce665f3b9061a1e8e3605b1b8c5a415f68d04cd6332e41377cc922de", size = 8791163, upload-time = "2026-09-17T02:56:30.043Z" }, + { url = "https://files.pythonhosted.org/packages/d4/06/ae9c186aa6277fc2cae8eb582acb4e4bbeb5bfd9ef56e9510610059c9ea2/cartopy-0.26.0-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:3ebe909bcadb79d8fc23e385450d5e5b6d099239992cfb57df804201b7ce66bc", size = 8788151, upload-time = "2026-09-17T02:56:32.704Z" }, + { url = "https://files.pythonhosted.org/packages/23/4d/6281d7e30f2c7aeeba258ebaf19199bf1e121ef968208b59910c9a766d84/cartopy-0.26.0-cp315-cp315-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:240d7239652bc77bef6f79fa6aa93dd57e10762efdefe2254ba268283299f9be", size = 9483923, upload-time = "2026-09-17T02:56:35.673Z" }, + { url = "https://files.pythonhosted.org/packages/ed/2c/9b80925b64b739e4fa49d81242f6ca150329be8ae10213f7c6a7d69263eb/cartopy-0.26.0-cp315-cp315-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:07d62d56bb6386ebba239886d1e346d38e93cdcb958c5a6d79e77d6e9bf66f16", size = 9501276, upload-time = "2026-09-17T02:56:38.229Z" }, + { url = "https://files.pythonhosted.org/packages/41/9c/aa7746c652f47e95e763bfea5e23e9a24174ffb9475c71787aa84cbe149c/cartopy-0.26.0-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:6606aefd1abe3f25d24dcb5ddba8e9a8b91a041fad46fdae0ebf7b2105092e60", size = 10451719, upload-time = "2026-09-17T02:56:40.879Z" }, + { url = "https://files.pythonhosted.org/packages/58/8d/64d3515638ddf53923ffaeec18bfed7c132761709b123d86c6567d6f9790/cartopy-0.26.0-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:972c298e0394cf3e2a6068bb87031df901893f3fa0fb6613c0da83e5580317d5", size = 10525875, upload-time = "2026-09-17T02:56:43.541Z" }, + { url = "https://files.pythonhosted.org/packages/29/15/51f13d060d437110c806c7cc7313d86303cf53e5b27ef80485a2c168336e/cartopy-0.26.0-cp315-cp315-win32.whl", hash = "sha256:c85fd8bc2595acbe098ceb7c324b7b8878f391dda8b523d6d221275de75c2db7", size = 9035455, upload-time = "2026-09-17T02:56:46.644Z" }, + { url = "https://files.pythonhosted.org/packages/61/13/9919d12d45840108dc843e99ad5391e187a315f6d22a29b96ea94543c76b/cartopy-0.26.0-cp315-cp315-win_amd64.whl", hash = "sha256:0832061dfec4b8e63bbd56f8c103f15363b519e6309b6daf0819265152c5f1ad", size = 9053922, upload-time = "2026-09-17T02:56:49.651Z" }, + { url = "https://files.pythonhosted.org/packages/2b/89/5a1148ba652b67aa4e06b141f0314f11addd169951dcc021499f80d98eb3/cartopy-0.26.0-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:58bc1b51123d925e7757b662ae371dbe63c68e2bf1ef70a34a8231f832b0d2f5", size = 8795033, upload-time = "2026-09-17T02:56:52.586Z" }, + { url = "https://files.pythonhosted.org/packages/3f/dd/abae6adbe01c47c586b2568aa3b0cc47311c898677d15f134ceb461db0a7/cartopy-0.26.0-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:044300d4b2b9c26e8a38057aa8776d73fb33e23bdffaab851a4ee049e3bee219", size = 8795342, upload-time = "2026-09-17T02:56:55.182Z" }, + { url = "https://files.pythonhosted.org/packages/b8/7d/cc20443d7d91668f53bf312a23f99ef52d15a5df457e9171915a83834fcc/cartopy-0.26.0-cp315-cp315t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b00f1d70cf670ac6a95da9f68da9146265bc499a1aada5369b966c13891ec532", size = 9504136, upload-time = "2026-09-17T02:56:57.887Z" }, + { url = "https://files.pythonhosted.org/packages/8e/e4/8be69156154f4d7be943c2224030b052bca9890405a61a518d3221b9dd56/cartopy-0.26.0-cp315-cp315t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c8dfa8ecbcbd13a12acac8737f12859a02b2f98d851d92eaf445c7a32c0325d5", size = 9504887, upload-time = "2026-09-17T02:57:00.805Z" }, + { url = "https://files.pythonhosted.org/packages/11/7a/a9174b32fa5b7599aa562383998a3163ce31aaeadf266c642b04805ee55c/cartopy-0.26.0-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:5324d12441fac13abdfe17d8b2a220dc9d64cefa91325e7cf7d6d3f84167ce99", size = 10459545, upload-time = "2026-09-17T02:57:03.653Z" }, + { url = "https://files.pythonhosted.org/packages/da/16/a0b7eef017149af165e0c003de4b8b90c0a84c093e93c50f2aefb70af4ed/cartopy-0.26.0-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:65bfb05640ac1779e335c447c05d6d96504fb01045257e5e56911a80cd065fd1", size = 10527927, upload-time = "2026-09-17T02:57:06.432Z" }, + { url = "https://files.pythonhosted.org/packages/43/70/3c916e984b8c536dfcca47852f7b130b97664626c5df2c056d53051738d0/cartopy-0.26.0-cp315-cp315t-win32.whl", hash = "sha256:6cd2b4fa54e49200d624ce32af4795e2f61c0caa6004d36b21d56c354cda4184", size = 9041571, upload-time = "2026-09-17T02:57:09.435Z" }, + { url = "https://files.pythonhosted.org/packages/15/da/e7e6d9197549fe7bc7733c746bfd225a51e9f9339c5b5ccad04877adca9e/cartopy-0.26.0-cp315-cp315t-win_amd64.whl", hash = "sha256:71933ac04aad42d8d6e782cd9557bd6e0bbb8423e916ba224d08c66f66591e44", size = 9060440, upload-time = "2026-09-17T02:57:11.936Z" }, ] [[package]] name = "certifi" -version = "2026.5.20" +version = "2026.10.23" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f3/ce/ee2ecad540810a79593028e88299baeae54d346cc7a0d94b6199988b89b1/certifi-2026.5.20.tar.gz", hash = "sha256:69dea482ab64caa7b9f6aba1c6bf48bb6a5448d1c0f1b17ab42ad8c763a5344d", size = 135422 } +sdist = { url = "https://files.pythonhosted.org/packages/fd/11/b524cbd9bbdaca58608e4cf4053fd463417549e1959fa8d3aa18319f9555/certifi-2026.10.23.tar.gz", hash = "sha256:a9895e6e2758b371e0545e321a3a8fd1fcfd9829ada8824a936dfb16aaaf36cd", size = 136225, upload-time = "2026-10-23T11:36:16.478Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/59/8c/57e832b7af6d7c5abe66eb3fbe3a3a32f4d11ea23a1aa7131371035be991/certifi-2026.5.20-py3-none-any.whl", hash = "sha256:3c52e209ba0a4ad7aebe60436a4ab349c39e1e602e8c134221e546902ad25897", size = 134134 }, + { url = "https://files.pythonhosted.org/packages/32/d1/a3652fe2c19134d0d15922177821d863cbd7e842d53a21bbe7e8e3a1b5ac/certifi-2026.10.23-py3-none-any.whl", hash = "sha256:e9b54de76e530bb6cf0ccd036787103acb58fd42ba930ea8bf948ddbaa2f61d1", size = 135082, upload-time = "2026-10-23T11:36:14.763Z" }, ] [[package]] name = "cffi" -version = "2.0.0" +version = "2.1.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pycparser", marker = "implementation_name != 'PyPy'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/eb/56/b1ba7935a17738ae8453301356628e8147c79dbb825bcbc73dc7401f9846/cffi-2.0.0.tar.gz", hash = "sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529", size = 523588 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ea/47/4f61023ea636104d4f16ab488e268b93008c3d0bb76893b1b31db1f96802/cffi-2.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6d02d6655b0e54f54c4ef0b94eb6be0607b70853c45ce98bd278dc7de718be5d", size = 185271 }, - { url = "https://files.pythonhosted.org/packages/df/a2/781b623f57358e360d62cdd7a8c681f074a71d445418a776eef0aadb4ab4/cffi-2.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8eca2a813c1cb7ad4fb74d368c2ffbbb4789d377ee5bb8df98373c2cc0dee76c", size = 181048 }, - { url = "https://files.pythonhosted.org/packages/ff/df/a4f0fbd47331ceeba3d37c2e51e9dfc9722498becbeec2bd8bc856c9538a/cffi-2.0.0-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:21d1152871b019407d8ac3985f6775c079416c282e431a4da6afe7aefd2bccbe", size = 212529 }, - { url = "https://files.pythonhosted.org/packages/d5/72/12b5f8d3865bf0f87cf1404d8c374e7487dcf097a1c91c436e72e6badd83/cffi-2.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b21e08af67b8a103c71a250401c78d5e0893beff75e28c53c98f4de42f774062", size = 220097 }, - { url = "https://files.pythonhosted.org/packages/c2/95/7a135d52a50dfa7c882ab0ac17e8dc11cec9d55d2c18dda414c051c5e69e/cffi-2.0.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:1e3a615586f05fc4065a8b22b8152f0c1b00cdbc60596d187c2a74f9e3036e4e", size = 207983 }, - { url = "https://files.pythonhosted.org/packages/3a/c8/15cb9ada8895957ea171c62dc78ff3e99159ee7adb13c0123c001a2546c1/cffi-2.0.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:81afed14892743bbe14dacb9e36d9e0e504cd204e0b165062c488942b9718037", size = 206519 }, - { url = "https://files.pythonhosted.org/packages/78/2d/7fa73dfa841b5ac06c7b8855cfc18622132e365f5b81d02230333ff26e9e/cffi-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3e17ed538242334bf70832644a32a7aae3d83b57567f9fd60a26257e992b79ba", size = 219572 }, - { url = "https://files.pythonhosted.org/packages/07/e0/267e57e387b4ca276b90f0434ff88b2c2241ad72b16d31836adddfd6031b/cffi-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3925dd22fa2b7699ed2617149842d2e6adde22b262fcbfada50e3d195e4b3a94", size = 222963 }, - { url = "https://files.pythonhosted.org/packages/b6/75/1f2747525e06f53efbd878f4d03bac5b859cbc11c633d0fb81432d98a795/cffi-2.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2c8f814d84194c9ea681642fd164267891702542f028a15fc97d4674b6206187", size = 221361 }, - { url = "https://files.pythonhosted.org/packages/7b/2b/2b6435f76bfeb6bbf055596976da087377ede68df465419d192acf00c437/cffi-2.0.0-cp312-cp312-win32.whl", hash = "sha256:da902562c3e9c550df360bfa53c035b2f241fed6d9aef119048073680ace4a18", size = 172932 }, - { url = "https://files.pythonhosted.org/packages/f8/ed/13bd4418627013bec4ed6e54283b1959cf6db888048c7cf4b4c3b5b36002/cffi-2.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:da68248800ad6320861f129cd9c1bf96ca849a2771a59e0344e88681905916f5", size = 183557 }, - { url = "https://files.pythonhosted.org/packages/95/31/9f7f93ad2f8eff1dbc1c3656d7ca5bfd8fb52c9d786b4dcf19b2d02217fa/cffi-2.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:4671d9dd5ec934cb9a73e7ee9676f9362aba54f7f34910956b84d727b0d73fb6", size = 177762 }, - { url = "https://files.pythonhosted.org/packages/4b/8d/a0a47a0c9e413a658623d014e91e74a50cdd2c423f7ccfd44086ef767f90/cffi-2.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:00bdf7acc5f795150faa6957054fbbca2439db2f775ce831222b66f192f03beb", size = 185230 }, - { url = "https://files.pythonhosted.org/packages/4a/d2/a6c0296814556c68ee32009d9c2ad4f85f2707cdecfd7727951ec228005d/cffi-2.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:45d5e886156860dc35862657e1494b9bae8dfa63bf56796f2fb56e1679fc0bca", size = 181043 }, - { url = "https://files.pythonhosted.org/packages/b0/1e/d22cc63332bd59b06481ceaac49d6c507598642e2230f201649058a7e704/cffi-2.0.0-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:07b271772c100085dd28b74fa0cd81c8fb1a3ba18b21e03d7c27f3436a10606b", size = 212446 }, - { url = "https://files.pythonhosted.org/packages/a9/f5/a2c23eb03b61a0b8747f211eb716446c826ad66818ddc7810cc2cc19b3f2/cffi-2.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d48a880098c96020b02d5a1f7d9251308510ce8858940e6fa99ece33f610838b", size = 220101 }, - { url = "https://files.pythonhosted.org/packages/f2/7f/e6647792fc5850d634695bc0e6ab4111ae88e89981d35ac269956605feba/cffi-2.0.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f93fd8e5c8c0a4aa1f424d6173f14a892044054871c771f8566e4008eaa359d2", size = 207948 }, - { url = "https://files.pythonhosted.org/packages/cb/1e/a5a1bd6f1fb30f22573f76533de12a00bf274abcdc55c8edab639078abb6/cffi-2.0.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:dd4f05f54a52fb558f1ba9f528228066954fee3ebe629fc1660d874d040ae5a3", size = 206422 }, - { url = "https://files.pythonhosted.org/packages/98/df/0a1755e750013a2081e863e7cd37e0cdd02664372c754e5560099eb7aa44/cffi-2.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c8d3b5532fc71b7a77c09192b4a5a200ea992702734a2e9279a37f2478236f26", size = 219499 }, - { url = "https://files.pythonhosted.org/packages/50/e1/a969e687fcf9ea58e6e2a928ad5e2dd88cc12f6f0ab477e9971f2309b57c/cffi-2.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d9b29c1f0ae438d5ee9acb31cadee00a58c46cc9c0b2f9038c6b0b3470877a8c", size = 222928 }, - { url = "https://files.pythonhosted.org/packages/36/54/0362578dd2c9e557a28ac77698ed67323ed5b9775ca9d3fe73fe191bb5d8/cffi-2.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6d50360be4546678fc1b79ffe7a66265e28667840010348dd69a314145807a1b", size = 221302 }, - { url = "https://files.pythonhosted.org/packages/eb/6d/bf9bda840d5f1dfdbf0feca87fbdb64a918a69bca42cfa0ba7b137c48cb8/cffi-2.0.0-cp313-cp313-win32.whl", hash = "sha256:74a03b9698e198d47562765773b4a8309919089150a0bb17d829ad7b44b60d27", size = 172909 }, - { url = "https://files.pythonhosted.org/packages/37/18/6519e1ee6f5a1e579e04b9ddb6f1676c17368a7aba48299c3759bbc3c8b3/cffi-2.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:19f705ada2530c1167abacb171925dd886168931e0a7b78f5bffcae5c6b5be75", size = 183402 }, - { url = "https://files.pythonhosted.org/packages/cb/0e/02ceeec9a7d6ee63bb596121c2c8e9b3a9e150936f4fbef6ca1943e6137c/cffi-2.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:256f80b80ca3853f90c21b23ee78cd008713787b1b1e93eae9f3d6a7134abd91", size = 177780 }, - { url = "https://files.pythonhosted.org/packages/92/c4/3ce07396253a83250ee98564f8d7e9789fab8e58858f35d07a9a2c78de9f/cffi-2.0.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fc33c5141b55ed366cfaad382df24fe7dcbc686de5be719b207bb248e3053dc5", size = 185320 }, - { url = "https://files.pythonhosted.org/packages/59/dd/27e9fa567a23931c838c6b02d0764611c62290062a6d4e8ff7863daf9730/cffi-2.0.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c654de545946e0db659b3400168c9ad31b5d29593291482c43e3564effbcee13", size = 181487 }, - { url = "https://files.pythonhosted.org/packages/d6/43/0e822876f87ea8a4ef95442c3d766a06a51fc5298823f884ef87aaad168c/cffi-2.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:24b6f81f1983e6df8db3adc38562c83f7d4a0c36162885ec7f7b77c7dcbec97b", size = 220049 }, - { url = "https://files.pythonhosted.org/packages/b4/89/76799151d9c2d2d1ead63c2429da9ea9d7aac304603de0c6e8764e6e8e70/cffi-2.0.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:12873ca6cb9b0f0d3a0da705d6086fe911591737a59f28b7936bdfed27c0d47c", size = 207793 }, - { url = "https://files.pythonhosted.org/packages/bb/dd/3465b14bb9e24ee24cb88c9e3730f6de63111fffe513492bf8c808a3547e/cffi-2.0.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:d9b97165e8aed9272a6bb17c01e3cc5871a594a446ebedc996e2397a1c1ea8ef", size = 206300 }, - { url = "https://files.pythonhosted.org/packages/47/d9/d83e293854571c877a92da46fdec39158f8d7e68da75bf73581225d28e90/cffi-2.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:afb8db5439b81cf9c9d0c80404b60c3cc9c3add93e114dcae767f1477cb53775", size = 219244 }, - { url = "https://files.pythonhosted.org/packages/2b/0f/1f177e3683aead2bb00f7679a16451d302c436b5cbf2505f0ea8146ef59e/cffi-2.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:737fe7d37e1a1bffe70bd5754ea763a62a066dc5913ca57e957824b72a85e205", size = 222828 }, - { url = "https://files.pythonhosted.org/packages/c6/0f/cafacebd4b040e3119dcb32fed8bdef8dfe94da653155f9d0b9dc660166e/cffi-2.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:38100abb9d1b1435bc4cc340bb4489635dc2f0da7456590877030c9b3d40b0c1", size = 220926 }, - { url = "https://files.pythonhosted.org/packages/3e/aa/df335faa45b395396fcbc03de2dfcab242cd61a9900e914fe682a59170b1/cffi-2.0.0-cp314-cp314-win32.whl", hash = "sha256:087067fa8953339c723661eda6b54bc98c5625757ea62e95eb4898ad5e776e9f", size = 175328 }, - { url = "https://files.pythonhosted.org/packages/bb/92/882c2d30831744296ce713f0feb4c1cd30f346ef747b530b5318715cc367/cffi-2.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:203a48d1fb583fc7d78a4c6655692963b860a417c0528492a6bc21f1aaefab25", size = 185650 }, - { url = "https://files.pythonhosted.org/packages/9f/2c/98ece204b9d35a7366b5b2c6539c350313ca13932143e79dc133ba757104/cffi-2.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:dbd5c7a25a7cb98f5ca55d258b103a2054f859a46ae11aaf23134f9cc0d356ad", size = 180687 }, - { url = "https://files.pythonhosted.org/packages/3e/61/c768e4d548bfa607abcda77423448df8c471f25dbe64fb2ef6d555eae006/cffi-2.0.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:9a67fc9e8eb39039280526379fb3a70023d77caec1852002b4da7e8b270c4dd9", size = 188773 }, - { url = "https://files.pythonhosted.org/packages/2c/ea/5f76bce7cf6fcd0ab1a1058b5af899bfbef198bea4d5686da88471ea0336/cffi-2.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7a66c7204d8869299919db4d5069a82f1561581af12b11b3c9f48c584eb8743d", size = 185013 }, - { url = "https://files.pythonhosted.org/packages/be/b4/c56878d0d1755cf9caa54ba71e5d049479c52f9e4afc230f06822162ab2f/cffi-2.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7cc09976e8b56f8cebd752f7113ad07752461f48a58cbba644139015ac24954c", size = 221593 }, - { url = "https://files.pythonhosted.org/packages/e0/0d/eb704606dfe8033e7128df5e90fee946bbcb64a04fcdaa97321309004000/cffi-2.0.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:92b68146a71df78564e4ef48af17551a5ddd142e5190cdf2c5624d0c3ff5b2e8", size = 209354 }, - { url = "https://files.pythonhosted.org/packages/d8/19/3c435d727b368ca475fb8742ab97c9cb13a0de600ce86f62eab7fa3eea60/cffi-2.0.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:b1e74d11748e7e98e2f426ab176d4ed720a64412b6a15054378afdb71e0f37dc", size = 208480 }, - { url = "https://files.pythonhosted.org/packages/d0/44/681604464ed9541673e486521497406fadcc15b5217c3e326b061696899a/cffi-2.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:28a3a209b96630bca57cce802da70c266eb08c6e97e5afd61a75611ee6c64592", size = 221584 }, - { url = "https://files.pythonhosted.org/packages/25/8e/342a504ff018a2825d395d44d63a767dd8ebc927ebda557fecdaca3ac33a/cffi-2.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:7553fb2090d71822f02c629afe6042c299edf91ba1bf94951165613553984512", size = 224443 }, - { url = "https://files.pythonhosted.org/packages/e1/5e/b666bacbbc60fbf415ba9988324a132c9a7a0448a9a8f125074671c0f2c3/cffi-2.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:6c6c373cfc5c83a975506110d17457138c8c63016b563cc9ed6e056a82f13ce4", size = 223437 }, - { url = "https://files.pythonhosted.org/packages/a0/1d/ec1a60bd1a10daa292d3cd6bb0b359a81607154fb8165f3ec95fe003b85c/cffi-2.0.0-cp314-cp314t-win32.whl", hash = "sha256:1fc9ea04857caf665289b7a75923f2c6ed559b8298a1b8c49e59f7dd95c8481e", size = 180487 }, - { url = "https://files.pythonhosted.org/packages/bf/41/4c1168c74fac325c0c8156f04b6749c8b6a8f405bbf91413ba088359f60d/cffi-2.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:d68b6cef7827e8641e8ef16f4494edda8b36104d79773a334beaa1e3521430f6", size = 191726 }, - { url = "https://files.pythonhosted.org/packages/ae/3a/dbeec9d1ee0844c679f6bb5d6ad4e9f198b1224f4e7a32825f47f6192b0c/cffi-2.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0a1527a803f0a659de1af2e1fd700213caba79377e27e4693648c2923da066f9", size = 184195 }, +sdist = { url = "https://files.pythonhosted.org/packages/9e/ef/008a1939e372c06329a3fce4279c02f328488f3526744906eeec3da7ad5f/cffi-2.1.1.tar.gz", hash = "sha256:dd31f52ea1086513bb9df30f8fcee9b8918323ae067a3d5b78bc826a000712be", size = 530807, upload-time = "2026-08-03T21:21:18.939Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/69/43965eccfdead3b9220015fd1320e117be8c6ed01a62ffab76eeb752f5d5/cffi-2.1.1-cp312-cp312-macosx_10_15_x86_64.whl", hash = "sha256:c8c69575568085ba0b1b10c0249d779a214aea6f6522e949a0fc9fb0fcb449d0", size = 184821, upload-time = "2026-08-03T21:19:44.887Z" }, + { url = "https://files.pythonhosted.org/packages/54/7d/16e5a096677b5e313ca80cd5e5170efa3ea44624a82bb111925522da64b1/cffi-2.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f81b3b8f3d4e343550fa4baa0e479bba9f2d29ce9c2e9b51d1ce1718d7442fcf", size = 184719, upload-time = "2026-08-03T21:19:46.129Z" }, + { url = "https://files.pythonhosted.org/packages/56/e6/8941622732edec876dd17d0453dce07317ae96db34f2ec1436c9d3785986/cffi-2.1.1-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:811bd1e21d32de12efca32393a0ab3f5133b54fce9bd44b8bd77ab07da14bf6a", size = 214799, upload-time = "2026-08-03T21:19:47.218Z" }, + { url = "https://files.pythonhosted.org/packages/44/de/f98430906df1545ffde0d543dd124a7a439bc2cd32b36b9c53f805df7333/cffi-2.1.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:68e62fe11f30d5ca8289242866f0a5291402d8529ca2178ab8afc5c9694ae890", size = 222389, upload-time = "2026-08-03T21:19:48.331Z" }, + { url = "https://files.pythonhosted.org/packages/6a/5b/717f1526b9957b34456313c31645c5b82b8fb5c3fe9e4752999be7128bfc/cffi-2.1.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:4a7c934f7360e8cd64fe9efadcbd10c7c6364f531e432b9a4bf5ccbc9e0e8b50", size = 210249, upload-time = "2026-08-03T21:19:49.543Z" }, + { url = "https://files.pythonhosted.org/packages/64/b3/f8aa4f3e34986c7e4ec45072d1b1b9dd295b6b18007b45518d79726dd725/cffi-2.1.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:3143d81e29e1e20a9ce10901ec369012947876596f75a222235965f2b7ae832e", size = 208775, upload-time = "2026-08-03T21:19:50.918Z" }, + { url = "https://files.pythonhosted.org/packages/b1/db/dceb9dd5b231e1da801793f8acc9f3c52a7e1afe40bb1aae37e02b0faad5/cffi-2.1.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c1453022f490d2459a11819d83ad1d586e9ff65a12ac3e705ffebd46d3685dcf", size = 221822, upload-time = "2026-08-03T21:19:52.054Z" }, + { url = "https://files.pythonhosted.org/packages/a0/d2/6cd24ae3be000a634109c247d1475d62e5616d0dc78c82770942ec384248/cffi-2.1.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:208f941bb9d18e768138677f0a6d2ce01f590df56043dda1df1535ac57c88517", size = 225232, upload-time = "2026-08-03T21:19:53.109Z" }, + { url = "https://files.pythonhosted.org/packages/cb/52/3fa190537004dd7f0ab860a6dc7c0175b8667f68d1e618a46f5498d30250/cffi-2.1.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:210019b6c7cf07f081b4c54635c8cf744377001350e29cc0f81c4377b4797735", size = 223597, upload-time = "2026-08-03T21:19:54.515Z" }, + { url = "https://files.pythonhosted.org/packages/80/fb/0bb75b7039588c074b37ae99f40d9bfddf990ecb2fbc346ebccd2e56b9be/cffi-2.1.1-cp312-cp312-win32.whl", hash = "sha256:046bfc24911b37851ee1b51aab8bffe713d89c68c6a057b09484ce9fd5f69b4e", size = 175292, upload-time = "2026-08-03T21:19:55.566Z" }, + { url = "https://files.pythonhosted.org/packages/d9/79/615cc094e2fb508cade7de88d3b4f6c4ec2bab695c97bce9153dc65aadf5/cffi-2.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:f53e442b08449d42821fa4a4fba000095af9f62742a500f978a9f557ec44339a", size = 185919, upload-time = "2026-08-03T21:19:56.89Z" }, + { url = "https://files.pythonhosted.org/packages/70/c6/d0ea84713fe46b243a436a18fcd47d639732747e21635c8a27191b06dc30/cffi-2.1.1-cp312-cp312-win_arm64.whl", hash = "sha256:7bde5e4cc5c10140859842b9d383af292b22639a4dffb725314baf45968cef80", size = 180093, upload-time = "2026-08-03T21:19:58.155Z" }, + { url = "https://files.pythonhosted.org/packages/9d/f4/035513d4117049066b4779dc3b7c0c0fdad175fa13731c9f4003f1cd1478/cffi-2.1.1-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:b5bdfd1c873d4e093aabc0ca84c4ca6dbc4f752afb5c86f146d9742580c9da2e", size = 194248, upload-time = "2026-08-03T21:19:59.399Z" }, + { url = "https://files.pythonhosted.org/packages/76/af/2aeb4dbb5fc41a04161ae9ff1518de7cec08e164f44a8ce6a4cf7fd2cd1d/cffi-2.1.1-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:31348097ff5bbe827ccc41795d4dd099d9f0625e7def00ee653c137a490c2a6c", size = 196908, upload-time = "2026-08-03T21:20:00.746Z" }, + { url = "https://files.pythonhosted.org/packages/a7/46/2e5fdde8555706dd98139a910ca11be02809f3f605ce956f655d0214e100/cffi-2.1.1-cp313-cp313-macosx_10_15_x86_64.whl", hash = "sha256:9d2055050ea716bd38b7f7f1579c275386646b4894c155a3e2f3cd62ed41b7c6", size = 184805, upload-time = "2026-08-03T21:20:02.02Z" }, + { url = "https://files.pythonhosted.org/packages/55/41/4c7042f317b9217502988f0873af87e16ad606dc20f84e546e3e6ce9764c/cffi-2.1.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:19ee6127ee34de7d83ce3d371ebc5ed91addbdcc39f9ab15ce4eb35a4e534971", size = 184764, upload-time = "2026-08-03T21:20:03.141Z" }, + { url = "https://files.pythonhosted.org/packages/43/1f/1c3d90d91811c8f86ced9ed637956c54bfe5b79ca98fe976d7f8c8979f6b/cffi-2.1.1-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:6a8dddef476fab96d066d578fc88526767b836ab5ab21754e1d5bf3879c31c7c", size = 214722, upload-time = "2026-08-03T21:20:04.377Z" }, + { url = "https://files.pythonhosted.org/packages/37/6f/3b5ce4c3b2192d250f04908f2bfd91ef34552ec8f7716a5d4abdb8d67bb2/cffi-2.1.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f16c709686a78c727bbbf059f92b0bf41c6fc60deec706d2dc19f529175a6125", size = 222369, upload-time = "2026-08-03T21:20:05.544Z" }, + { url = "https://files.pythonhosted.org/packages/02/10/4b3c75dde3d9663c9e02ba05c2668b954f671d4bbe346413ca8c696b295a/cffi-2.1.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:fcd22650c908d7b7da162bbfaab594a1227a15d1643a98c68b122ac642fa2264", size = 210175, upload-time = "2026-08-03T21:20:06.75Z" }, + { url = "https://files.pythonhosted.org/packages/df/62/14f74b9543e605d17701dc797b815958b8bb70b7624ce1b832ddad48ed6c/cffi-2.1.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:aa9511c62d14da7aacc9b4bf51f3f697a621e83b2d6919008243c3aad168eea3", size = 208670, upload-time = "2026-08-03T21:20:08.04Z" }, + { url = "https://files.pythonhosted.org/packages/95/95/86342356ff5953b3fb06f7ef7c5bee212d45e770abc7218d451b9148313c/cffi-2.1.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:a931079504ecc49efed7744c476a5c343a92fabf66dec2db95edb1b2fdc770e2", size = 221824, upload-time = "2026-08-03T21:20:09.274Z" }, + { url = "https://files.pythonhosted.org/packages/eb/ff/7b3429ff53aafe931ed8a5fc69f481bbef7ba6de87ddcbb63d08f483f613/cffi-2.1.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a2d7755bef5a12ed488f4ef1f1b69ee9191d7396083b755a5d2295f6edb4768b", size = 225148, upload-time = "2026-08-03T21:20:10.7Z" }, + { url = "https://files.pythonhosted.org/packages/34/34/a95870b9221e09cf4f2ce3178b1a210abdfe63a1bd357da940418d7b8d15/cffi-2.1.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e0bcb7e0f677f543555d2adff3bf19c05f66cdb4796e5ff602442ab2fe3c4ef7", size = 223564, upload-time = "2026-08-03T21:20:12.165Z" }, + { url = "https://files.pythonhosted.org/packages/70/ea/839b50531021a647fb5e929f72cf97bc1ff702b5472166164b5b6e76b851/cffi-2.1.1-cp313-cp313-win32.whl", hash = "sha256:334644fbac4eff73d985a17a91226df55d0f394160c4cfb880e084c8f7161cac", size = 175263, upload-time = "2026-08-03T21:20:13.559Z" }, + { url = "https://files.pythonhosted.org/packages/60/a6/8b149b2c3f2e11aaa1618ef64500b45f50f22c57a977a4dff1aff1f91042/cffi-2.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:1aa5645c30469b09530c4ebca77ebf8f17618293c58f8549cb1a543a50236e7d", size = 185688, upload-time = "2026-08-03T21:20:14.69Z" }, + { url = "https://files.pythonhosted.org/packages/01/9a/11f687cb39d6a3504060d5242f04f48c735afb4d3d533958a20594890cb2/cffi-2.1.1-cp313-cp313-win_arm64.whl", hash = "sha256:63bbfd5ded17c4840ac07cd8f1c21ba9d9708141f840b324f422f41b207e3973", size = 180078, upload-time = "2026-08-03T21:20:15.917Z" }, + { url = "https://files.pythonhosted.org/packages/d3/7b/d6bbf82b8b96e7391438898c42f5bd96dd02030fd5b64937d248220003e2/cffi-2.1.1-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:7dbb61fe3a7699468030f71bbe5f8a0e326a151daa91beb11a6fc1f980c55e1c", size = 194064, upload-time = "2026-08-03T21:20:17.148Z" }, + { url = "https://files.pythonhosted.org/packages/94/e6/bcc91b283be94735e268487a054004f0aa19947b6348fa367db53230abc8/cffi-2.1.1-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:f24fb43132a4c6b4cb4eb029492919b2db645be6808d738f244fd146c03c32cb", size = 196720, upload-time = "2026-08-03T21:20:18.268Z" }, + { url = "https://files.pythonhosted.org/packages/d9/99/c4b0c17cacdc9c3b8f280026286a9826d6a208c0f047591a3c3ce99b91fd/cffi-2.1.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:d28630f5854ab07ab1fd4aba756de52326c82e6be15d414b12793f1975048b54", size = 184964, upload-time = "2026-08-03T21:20:19.708Z" }, + { url = "https://files.pythonhosted.org/packages/b3/a9/9db617d05d7367c1ad0ab00b3aa6e6f9281edd689b4ee9ea0e5a84e89c97/cffi-2.1.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:661c298b4821edebead0c91edd2b00374d67ad7c5a1f7a91d4442633b79d6a72", size = 184962, upload-time = "2026-08-03T21:20:20.833Z" }, + { url = "https://files.pythonhosted.org/packages/67/b8/b42132ca113dc567d37684437b46ca1dafc885902b02a110a02d5b511857/cffi-2.1.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:58acb8ab8e295e6c5ea12f888cbb13cf21511ef2a3303a23f4325c29d17fe5c1", size = 222328, upload-time = "2026-08-03T21:20:22.118Z" }, + { url = "https://files.pythonhosted.org/packages/80/10/c5c0cbf0a657aecf59ef511409734230bf556f05a0d6c9eed7aa5c0a0166/cffi-2.1.1-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:456a61fa52d579ebf9df2e9552ead5129855dbaff6c1e5a9b1bc408809bdc062", size = 209985, upload-time = "2026-08-03T21:20:23.401Z" }, + { url = "https://files.pythonhosted.org/packages/d5/6c/bfa0b87b03b9238148beca990292843c9396ba069b54496596594173de7b/cffi-2.1.1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:a4f00aa42f75d6e4595e8866e748cc1705adc0cddfeb2ca86d0d03993d63ba03", size = 208530, upload-time = "2026-08-03T21:20:24.628Z" }, + { url = "https://files.pythonhosted.org/packages/e9/02/4e7d553a7ac4b4238b38b3c1b80d486e9d4436f8d2acbf87a0997fe3f402/cffi-2.1.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b0431303acaea1089ad4b3e9ce4e6518193def1118d4073ca848635ee4ea2e96", size = 221525, upload-time = "2026-08-03T21:20:25.758Z" }, + { url = "https://files.pythonhosted.org/packages/82/1d/a4aaf9babd75acb4d5f223bff71533bee748dd770a382619a798960ee9ba/cffi-2.1.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:64faea20f4e2613363a1a9b9c7dd73058f3ecd00133a511e72ad7c511658f527", size = 225053, upload-time = "2026-08-03T21:20:26.985Z" }, + { url = "https://files.pythonhosted.org/packages/81/10/5dc0e7bdd18e22107054288283380fc97a06ae3f1656a106908d666a3c88/cffi-2.1.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5c58fe613dc5e5336357eff555824a314d8e43282600435c8d1cb6a7a2fedd13", size = 223213, upload-time = "2026-08-03T21:20:28.277Z" }, + { url = "https://files.pythonhosted.org/packages/0b/e9/d0061c364cde06ee43168a0d076ac1da512cbc380d44767b844ba34fe2b6/cffi-2.1.1-cp314-cp314-win32.whl", hash = "sha256:1a18a57b58cfb21fc28d72e876acf10eaed67a1ed96226f92af4df681d571c4c", size = 177682, upload-time = "2026-08-03T21:20:44.288Z" }, + { url = "https://files.pythonhosted.org/packages/a7/06/1c3e01e3ba14c39f6d10bfbac52753b7e22259e38088e5cfe1d704918690/cffi-2.1.1-cp314-cp314-win_amd64.whl", hash = "sha256:3222ba5d678f80a030e6afbcc33dc1ae5cb45facabb61cee2c7016b8432fde48", size = 187949, upload-time = "2026-08-03T21:20:45.623Z" }, + { url = "https://files.pythonhosted.org/packages/87/5b/da4e39efe18eeb89cf580ea9cfc66b6a7c3eadb808fc0cc1d3a295cb5a5d/cffi-2.1.1-cp314-cp314-win_arm64.whl", hash = "sha256:ab36d55f9ed2d067327667c2fea18dda018eb628dd6347aa01dda6cf1f5d3836", size = 182947, upload-time = "2026-08-03T21:20:46.955Z" }, + { url = "https://files.pythonhosted.org/packages/23/59/40338bf421c5accea1d45158170c87006ef1cd371b05c077e76476949728/cffi-2.1.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:7750c6449dff7864bb9bb27ddfb0267756189201a3afc911d82b3caacd70dfc3", size = 188504, upload-time = "2026-08-03T21:20:29.495Z" }, + { url = "https://files.pythonhosted.org/packages/7d/47/5ecf1023850036e674c77ec4de86182d309ae344e39e7cba984b7df5d647/cffi-2.1.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:0beceaabe56af686895136a2de78db54ecd8e4046b236b8fd6d6cb61389e9bf2", size = 188259, upload-time = "2026-08-03T21:20:31.291Z" }, + { url = "https://files.pythonhosted.org/packages/2a/9c/92934c3bea9f785b23eba304538c0b4d37a2a96d2431eb3a1bc87a11aa19/cffi-2.1.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:49cbc70e6542d4ccccb936558d1064a8012541e78f821f955cff24e357776c94", size = 223864, upload-time = "2026-08-03T21:20:32.571Z" }, + { url = "https://files.pythonhosted.org/packages/4d/45/ba4c93527bc38616a8bd36488acb69a2212d60486794f0c1f318949bbb76/cffi-2.1.1-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:e2d65b31f36619cda3999b78b2aa9632e76b78448e7a56fc4240824200e7c4fc", size = 211538, upload-time = "2026-08-03T21:20:33.808Z" }, + { url = "https://files.pythonhosted.org/packages/80/e9/b6ef565e452acb932fb0cb5443f44a78efbd1233e566f02b5a83855e9115/cffi-2.1.1-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:28907ab9bfb6aa13184cfc17c6b8e1023c5ab6fd7076d8c20a35e59fe04f8f29", size = 210688, upload-time = "2026-08-03T21:20:34.974Z" }, + { url = "https://files.pythonhosted.org/packages/9a/95/eff5f0cee78d2eabc7eebffec40d3fc1876b5f3c95582e018bb4b99601f2/cffi-2.1.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:51b31d1c98274844cfd7838ce00bfc27c7423a4dc00fc0772fc3331c2cc90676", size = 223803, upload-time = "2026-08-03T21:20:36.564Z" }, + { url = "https://files.pythonhosted.org/packages/fa/01/579d39fb8bef00a335a23d83757b44feb24cd6345a2c451b64cb67b9c362/cffi-2.1.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:5e7cecbaadb83884793e05828cee59b210b24583b9c7425d0ba6a754fe22eb4e", size = 226763, upload-time = "2026-08-03T21:20:37.816Z" }, + { url = "https://files.pythonhosted.org/packages/8d/b0/0b44f47c60b01b57b6e2bbd92343f13a85a1d93bc46ccf6e47e244acd99c/cffi-2.1.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:25792eac27877609e7bb06d42ff88278a6624fff2ba9bbb523c09616b117e80f", size = 225688, upload-time = "2026-08-03T21:20:38.959Z" }, + { url = "https://files.pythonhosted.org/packages/eb/d2/3b7176cb570a1d3e27faf67b72f591af508036e0d8b2be2ef9af9e8c84bb/cffi-2.1.1-cp314-cp314t-win32.whl", hash = "sha256:8ef53b2de9bcb9197d31854256575d59dbac0cba72ac627bb291ef5eceb74be4", size = 182868, upload-time = "2026-08-03T21:20:40.388Z" }, + { url = "https://files.pythonhosted.org/packages/56/78/31f00c1bcd97c9bbf55f1bfdf5bc809a5de8887473e90bb9960dca825e80/cffi-2.1.1-cp314-cp314t-win_amd64.whl", hash = "sha256:616f097f2fe415bc92a247f02e11f634e1f9e9a83d327e3c915c15089c87869e", size = 194104, upload-time = "2026-08-03T21:20:41.725Z" }, + { url = "https://files.pythonhosted.org/packages/7b/1b/58496f2ed0a35de575250c02a43ab3cc2c04d494a88fed31c1cabc0fd176/cffi-2.1.1-cp314-cp314t-win_arm64.whl", hash = "sha256:ad2c86c495b899d862ea0f4b42891b8713a3bd45dd4105c7fd51c2a72f39f3a5", size = 186402, upload-time = "2026-08-03T21:20:43.042Z" }, + { url = "https://files.pythonhosted.org/packages/c1/8f/9ebe220eab48a093d1a5a5e339ab0dc7316eef3bb04d63c42f0251b61f50/cffi-2.1.1-cp315-cp315-ios_13_0_arm64_iphoneos.whl", hash = "sha256:dddad92b554513a31f272570678ba307fb9f618f05e3d4a5eacafff9eae03e1d", size = 194043, upload-time = "2026-08-03T21:20:48.179Z" }, + { url = "https://files.pythonhosted.org/packages/ff/69/844bad3ece306c4782c2ecb93597035b6690d48704b803914c199da1e8b3/cffi-2.1.1-cp315-cp315-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:da0e573f9f97159390c89d9f1a9e41908b66d408cc5b58d08cf3847d844c531b", size = 196737, upload-time = "2026-08-03T21:20:49.457Z" }, + { url = "https://files.pythonhosted.org/packages/1b/8a/af668013284634733f02d683458a0728739c7d6ddb5e14cb0c20832266fe/cffi-2.1.1-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:fb92203a88b3d3053034db775110081c49d28be6551923805e039924093761e4", size = 184933, upload-time = "2026-08-03T21:20:50.639Z" }, + { url = "https://files.pythonhosted.org/packages/0c/75/2f5207ff6d1a613133b23a5203cc0c2a628313b5eb3974d7956ae3c57950/cffi-2.1.1-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:2ae64be792b8966f2c69538199728b290e34726562896df1e5dc8ffd8d8188e8", size = 185002, upload-time = "2026-08-03T21:20:52.173Z" }, + { url = "https://files.pythonhosted.org/packages/e2/31/9e1313b0a6e30e91b3b3d3fff51ae99c857c07738e3afcce1f7334e1b7ab/cffi-2.1.1-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:507a24c282e0f42f8ed737cf048572cbf580468da5555764a8331735e9c736b6", size = 222271, upload-time = "2026-08-03T21:20:53.462Z" }, + { url = "https://files.pythonhosted.org/packages/50/e3/f6234a833e6e08c7007003074723c406559eecf9b48dfc97471e5a8eb7a0/cffi-2.1.1-cp315-cp315-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:246fa40ce8645a614ff682e0b70f37134e460eaf93a775e0cbe3cca585a67a80", size = 209919, upload-time = "2026-08-03T21:20:54.783Z" }, + { url = "https://files.pythonhosted.org/packages/0d/fc/5f74e293fced6edb51af3a46c4ccf6c23c9943774ecb375ddbd522c76add/cffi-2.1.1-cp315-cp315-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:471cee653ae88de62096552e6d24ccb4a5adb8c8c9f10b5054d0122c15bf2779", size = 208529, upload-time = "2026-08-03T21:20:56.066Z" }, + { url = "https://files.pythonhosted.org/packages/44/16/29e6d01b388bef055ecd6ca8244b3f4d336bd09e92d5d892187b9601084e/cffi-2.1.1-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:aeae0e330c9f6acd681f647d46cefd30c29f93e3392882e792e82080c9691399", size = 221630, upload-time = "2026-08-03T21:20:57.336Z" }, + { url = "https://files.pythonhosted.org/packages/a4/18/fa7f1f6857d5eb88a4ca99ffcbfb7c387a287ccc154c64a73e86314745d7/cffi-2.1.1-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:42a494cee34437f05546455144f2b5d9ac09b1face62bcfce597d2e521066688", size = 225134, upload-time = "2026-08-03T21:20:58.675Z" }, + { url = "https://files.pythonhosted.org/packages/e0/9f/e8e3dfa04a1b4c241f8c91faacad872b4d4efd051d49764ad4e2fd4b9fea/cffi-2.1.1-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:cc572dace3f60ef98d7b12ff411d20f5362feb31a0439eab0085bbfd349982d7", size = 223197, upload-time = "2026-08-03T21:20:59.968Z" }, + { url = "https://files.pythonhosted.org/packages/f8/7e/8debeb04f1ab9fe2a6963964cd6f1aaf7192627b83926586a6a4e089c9fa/cffi-2.1.1-cp315-cp315-win32.whl", hash = "sha256:4f42141fc14250de6dde5ee7ea4432be017252d91f19c5ad043c084cea629cac", size = 177683, upload-time = "2026-08-03T21:21:14.901Z" }, + { url = "https://files.pythonhosted.org/packages/e0/31/5158704cc474ab65c1647932e88be78dc0873f47130e253be38bcaf13d01/cffi-2.1.1-cp315-cp315-win_amd64.whl", hash = "sha256:e6e8cff14d6fb0be70a09c0bdc58096f501952d04624ebf867e0e56da2df8960", size = 187897, upload-time = "2026-08-03T21:21:16.108Z" }, + { url = "https://files.pythonhosted.org/packages/cc/4b/b3a2da8570c704ffc0f9762cdc3ec0f02c8573798e0b5cf7f11c82bbb70f/cffi-2.1.1-cp315-cp315-win_arm64.whl", hash = "sha256:27350daa11d4f10c540e6e89dada4c54feb7256ad03e9a4dc075ebad7ba360d1", size = 182935, upload-time = "2026-08-03T21:21:17.271Z" }, + { url = "https://files.pythonhosted.org/packages/d0/ef/5443574510a1207e6f6bc38ba6e1f1de36cb48fef07b2728bb896a21f430/cffi-2.1.1-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:c26608d2222fb1e94487e4a387d85f13eb55d5ed725cb25a0c589ac4ee60e7bc", size = 188464, upload-time = "2026-08-03T21:21:01.163Z" }, + { url = "https://files.pythonhosted.org/packages/7e/ae/a56fa8c4686ad50e148fcbc8d3ae0d03915ff5c30d795058988c24118cef/cffi-2.1.1-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:4be96343e422f2dfcd12ab5c9f5aebe03f82f737c6bffeca6830b3875cb44aab", size = 188262, upload-time = "2026-08-03T21:21:02.382Z" }, + { url = "https://files.pythonhosted.org/packages/53/b2/6187f46f2912276a3ae284076109cc5c8680482f11f766ccf26db4a86427/cffi-2.1.1-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:937c0052c05a31ca1daf18de3158eed4dbfcb9cc107adbea227728d647be701e", size = 223779, upload-time = "2026-08-03T21:21:03.553Z" }, + { url = "https://files.pythonhosted.org/packages/8a/f6/c3ad28bd19f77047a03084424fbd4cbe997303267c14423737324be0385d/cffi-2.1.1-cp315-cp315t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:df423d40ee8654634421812bc3b196da3f9bd7d32929da813f8394c4348a5358", size = 211520, upload-time = "2026-08-03T21:21:04.863Z" }, + { url = "https://files.pythonhosted.org/packages/a0/cd/ccac9013a5bd9fd764de118674ab9c805b5ca10c19270d90ee273f8b2240/cffi-2.1.1-cp315-cp315t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:a730a083190634c65cca36ba5f489531576ebd79bcd5c8e172130f6453127231", size = 210673, upload-time = "2026-08-03T21:21:06.223Z" }, + { url = "https://files.pythonhosted.org/packages/52/86/2976131c639aead931c5bee5aba67e4b09fbeb8018b6f282f70803f923a7/cffi-2.1.1-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:363e05fa78e15116c3c32c210ee36884fd6b9afa6d440e47112c3bd511d64cb6", size = 223835, upload-time = "2026-08-03T21:21:07.539Z" }, + { url = "https://files.pythonhosted.org/packages/ac/0c/33a7aeab2f9c76918c52e084beb39c570db3588133412929e8ec06fab90b/cffi-2.1.1-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:770de9db11e84213beec501cfcaa013b019820ca881e03344dea5844f7876d94", size = 226705, upload-time = "2026-08-03T21:21:08.774Z" }, + { url = "https://files.pythonhosted.org/packages/e3/26/2cde30fdde421130bfc18f70395731a6e6b2053c6a1978a5258ff04e72fa/cffi-2.1.1-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:7da0c5eff80f0197f3b3d1232ec5a682a9325f4ae9016a78f5f5ca35f9ced1f5", size = 225539, upload-time = "2026-08-03T21:21:09.911Z" }, + { url = "https://files.pythonhosted.org/packages/6d/cd/a361394c94b2129d604bb846f624a8e88255a3ee33129c434a00d715e64f/cffi-2.1.1-cp315-cp315t-win32.whl", hash = "sha256:06c72bb76605a4b0cd0aad6930b69d4baf7dd5d806cfc409b824191099700e66", size = 182707, upload-time = "2026-08-03T21:21:11.226Z" }, + { url = "https://files.pythonhosted.org/packages/9b/b5/ba2b299993c26577d529b6ae29841f9e15b9fcf004d65f423f4fcf94ade9/cffi-2.1.1-cp315-cp315t-win_amd64.whl", hash = "sha256:d9c275eaacd24aa73f94ffd6de08fc3f932424d8b6c376f4bed7cde376fe7bc3", size = 193772, upload-time = "2026-08-03T21:21:12.39Z" }, + { url = "https://files.pythonhosted.org/packages/aa/29/35e016098c814cd93de9cd320c66b5bfba14dc6ecedd3cb518fa7c408c69/cffi-2.1.1-cp315-cp315t-win_arm64.whl", hash = "sha256:d18e5ac0f2f03f4f518d3e23db0f0cad7faa1da8620e9c09461d443bbf6e6692", size = 186360, upload-time = "2026-08-03T21:21:13.636Z" }, ] [[package]] @@ -337,239 +459,168 @@ dependencies = [ { name = "eccodes" }, { name = "numpy" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/4a/51/cace2747a517667bbbe5fcab1f35958ad05c778251a452c461b8b3649dbe/cfgrib-0.9.15.1.tar.gz", hash = "sha256:d959d8b97e55a63646fa86686b297905ff7f2918a91e3a11d6292dab09598e4d", size = 9746591 } +sdist = { url = "https://files.pythonhosted.org/packages/4a/51/cace2747a517667bbbe5fcab1f35958ad05c778251a452c461b8b3649dbe/cfgrib-0.9.15.1.tar.gz", hash = "sha256:d959d8b97e55a63646fa86686b297905ff7f2918a91e3a11d6292dab09598e4d", size = 9746591, upload-time = "2025-09-30T22:46:14.133Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/6d/e8/16c58c57c9ce1474dd1e50090ebd78b008c70fc4f06793da65f9a0aba391/cfgrib-0.9.15.1-py3-none-any.whl", hash = "sha256:f1bee90e86917389be9f767051bf32d00f95f6f4e4312b344567511b3cfd62d2", size = 49123 }, + { url = "https://files.pythonhosted.org/packages/6d/e8/16c58c57c9ce1474dd1e50090ebd78b008c70fc4f06793da65f9a0aba391/cfgrib-0.9.15.1-py3-none-any.whl", hash = "sha256:f1bee90e86917389be9f767051bf32d00f95f6f4e4312b344567511b3cfd62d2", size = 49123, upload-time = "2025-09-30T22:46:12.206Z" }, ] [[package]] name = "cftime" -version = "1.6.5" +version = "1.6.6.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/65/dc/470ffebac2eb8c54151eb893055024fe81b1606e7c6ff8449a588e9cd17f/cftime-1.6.5.tar.gz", hash = "sha256:8225fed6b9b43fb87683ebab52130450fc1730011150d3092096a90e54d1e81e", size = 326605 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b6/c1/e8cb7f78a3f87295450e7300ebaecf83076d96a99a76190593d4e1d2be40/cftime-1.6.5-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:eef25caed5ebd003a38719bd3ff8847cd52ef2ea56c3ebdb2c9345ba131fc7c5", size = 504175 }, - { url = "https://files.pythonhosted.org/packages/50/1a/86e1072b09b2f9049bb7378869f64b6747f96a4f3008142afed8955b52a4/cftime-1.6.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c87d2f3b949e45463e559233c69e6a9cf691b2b378c1f7556166adfabbd1c6b0", size = 485980 }, - { url = "https://files.pythonhosted.org/packages/35/28/d3177b60da3f308b60dee2aef2eb69997acfab1e863f0bf0d2a418396ce5/cftime-1.6.5-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:82cb413973cc51b55642b3a1ca5b28db5b93a294edbef7dc049c074b478b4647", size = 1591166 }, - { url = "https://files.pythonhosted.org/packages/d1/fd/a7266970312df65e68b5641b86e0540a739182f5e9c62eec6dbd29f18055/cftime-1.6.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:85ba8e7356d239cfe56ef7707ac30feaf67964642ac760a82e507ee3c5db4ac4", size = 1642614 }, - { url = "https://files.pythonhosted.org/packages/c4/73/f0035a4bc2df8885bb7bd5fe63659686ea1ec7d0cc74b4e3d50e447402e5/cftime-1.6.5-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:456039af7907a3146689bb80bfd8edabd074c7f3b4eca61f91b9c2670addd7ad", size = 1688090 }, - { url = "https://files.pythonhosted.org/packages/88/15/8856a0ab76708553ff597dd2e617b088c734ba87dc3fd395e2b2f3efffe8/cftime-1.6.5-cp312-cp312-win_amd64.whl", hash = "sha256:da84534c43699960dc980a9a765c33433c5de1a719a4916748c2d0e97a071e44", size = 464840 }, - { url = "https://files.pythonhosted.org/packages/3a/85/451009a986d9273d2208fc0898aa00262275b5773259bf3f942f6716a9e7/cftime-1.6.5-cp312-cp312-win_arm64.whl", hash = "sha256:c62cd8db9ea40131eea7d4523691c5d806d3265d31279e4a58574a42c28acd77", size = 450534 }, - { url = "https://files.pythonhosted.org/packages/2e/60/74ea344b3b003fada346ed98a6899085d6fd4c777df608992d90c458fda6/cftime-1.6.5-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4aba66fd6497711a47c656f3a732c2d1755ad15f80e323c44a8716ebde39ddd5", size = 502453 }, - { url = "https://files.pythonhosted.org/packages/1e/14/adb293ac6127079b49ff11c05cf3d5ce5c1f17d097f326dc02d74ddfcb6e/cftime-1.6.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:89e7cba699242366e67d6fb5aee579440e791063f92a93853610c91647167c0d", size = 484541 }, - { url = "https://files.pythonhosted.org/packages/4f/74/bb8a4566af8d0ef3f045d56c462a9115da4f04b07c7fbbf2b4875223eebd/cftime-1.6.5-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:2f1eb43d7a7b919ec99aee709fb62ef87ef1cf0679829ef93d37cc1c725781e9", size = 1591014 }, - { url = "https://files.pythonhosted.org/packages/ba/08/52f06ff2f04d376f9cd2c211aefcf2b37f1978e43289341f362fc99f6a0e/cftime-1.6.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e02a1d80ffc33fe469c7db68aa24c4a87f01da0c0c621373e5edadc92964900b", size = 1633625 }, - { url = "https://files.pythonhosted.org/packages/cf/33/03e0b23d58ea8fab94ecb4f7c5b721e844a0800c13694876149d98830a73/cftime-1.6.5-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:18ab754805233cdd889614b2b3b86a642f6d51a57a1ec327c48053f3414f87d8", size = 1684269 }, - { url = "https://files.pythonhosted.org/packages/a4/60/a0cfba63847b43599ef1cdbbf682e61894994c22b9a79fd9e1e8c7e9de41/cftime-1.6.5-cp313-cp313-win_amd64.whl", hash = "sha256:6c27add8f907f4a4cd400e89438f2ea33e2eb5072541a157a4d013b7dbe93f9c", size = 465364 }, - { url = "https://files.pythonhosted.org/packages/3d/e8/ec32f2aef22c15604e6fda39ff8d581a00b5469349f8fba61640d5358d2c/cftime-1.6.5-cp313-cp313-win_arm64.whl", hash = "sha256:31d1ff8f6bbd4ca209099d24459ec16dea4fb4c9ab740fbb66dd057ccbd9b1b9", size = 450468 }, - { url = "https://files.pythonhosted.org/packages/ea/6c/a9618f589688358e279720f5c0fe67ef0077fba07334ce26895403ebc260/cftime-1.6.5-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:c69ce3bdae6a322cbb44e9ebc20770d47748002fb9d68846a1e934f1bd5daf0b", size = 502725 }, - { url = "https://files.pythonhosted.org/packages/d8/e3/da3c36398bfb730b96248d006cabaceed87e401ff56edafb2a978293e228/cftime-1.6.5-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:e62e9f2943e014c5ef583245bf2e878398af131c97e64f8cd47c1d7baef5c4e2", size = 485445 }, - { url = "https://files.pythonhosted.org/packages/32/93/b05939e5abd14bd1ab69538bbe374b4ee2a15467b189ff895e9a8cdaddf6/cftime-1.6.5-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7da5fdaa4360d8cb89b71b8ded9314f2246aa34581e8105c94ad58d6102d9e4f", size = 1584434 }, - { url = "https://files.pythonhosted.org/packages/7f/89/648397f9936e0b330999c4e776ebf296ec3c6a65f9901687dbca4ab820da/cftime-1.6.5-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:bff865b4ea4304f2744a1ad2b8149b8328b321dd7a2b9746ef926d229bd7cd49", size = 1609812 }, - { url = "https://files.pythonhosted.org/packages/e7/0f/901b4835aa67ad3e915605d4e01d0af80a44b114eefab74ae33de6d36933/cftime-1.6.5-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:e552c5d1c8a58f25af7521e49237db7ca52ed2953e974fe9f7c4491e95fdd36c", size = 1669768 }, - { url = "https://files.pythonhosted.org/packages/22/d5/e605e4b28363e7a9ae98ed12cabbda5b155b6009270e6a231d8f10182a17/cftime-1.6.5-cp314-cp314-win_amd64.whl", hash = "sha256:e645b095dc50a38ac454b7e7f0742f639e7d7f6b108ad329358544a6ff8c9ba2", size = 463818 }, - { url = "https://files.pythonhosted.org/packages/3d/89/a8f85ae697ff10206ec401c2621f5ca9f327554f586d62f244739ceeb347/cftime-1.6.5-cp314-cp314-win_arm64.whl", hash = "sha256:b9044d7ac82d3d8af189df1032fdc871bbd3f3dd41a6ec79edceb5029b71e6e0", size = 459862 }, - { url = "https://files.pythonhosted.org/packages/ab/05/7410e12fd03a0c52717e74e6a1b49958810807dda212e23b65d43ea99676/cftime-1.6.5-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:9ef56460cb0576e1a9161e1428c9e1a633f809a23fa9d598f313748c1ae5064e", size = 533781 }, - { url = "https://files.pythonhosted.org/packages/44/ba/10e3546426d3ed9f9cc82e4a99836bb6fac1642c7830f7bdd0ac1c3f0805/cftime-1.6.5-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:4f4873d38b10032f9f3111c547a1d485519ae64eee6a7a2d091f1f8b08e1ba50", size = 515218 }, - { url = "https://files.pythonhosted.org/packages/bd/68/efa11eae867749e921bfec6a865afdba8166e96188112dde70bb8bb49254/cftime-1.6.5-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ccce0f4c9d3f38dd948a117e578b50d0e0db11e2ca9435fb358fd524813e4b61", size = 1579932 }, - { url = "https://files.pythonhosted.org/packages/9d/6c/0971e602c1390a423e6621dfbad9f1d375186bdaf9c9c7f75e06f1fbf355/cftime-1.6.5-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:19cbfc5152fb0b34ce03acf9668229af388d7baa63a78f936239cb011ccbe6b1", size = 1555894 }, - { url = "https://files.pythonhosted.org/packages/ad/fc/8475a15b7c3209a4a68b563dfc5e01ce74f2d8b9822372c3d30c68ab7f39/cftime-1.6.5-cp314-cp314t-win_amd64.whl", hash = "sha256:4470cd5ef3c2514566f53efbcbb64dd924fa0584637d90285b2f983bd4ee7d97", size = 513027 }, - { url = "https://files.pythonhosted.org/packages/f7/80/4ecbda8318fbf40ad4e005a4a93aebba69e81382e5b4c6086251cd5d0ee8/cftime-1.6.5-cp314-cp314t-win_arm64.whl", hash = "sha256:034c15a67144a0a5590ef150c99f844897618b148b87131ed34fda7072614662", size = 469065 }, -] - -[[package]] -name = "charset-normalizer" -version = "3.4.7" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e7/a1/67fe25fac3c7642725500a3f6cfe5821ad557c3abb11c9d20d12c7008d3e/charset_normalizer-3.4.7.tar.gz", hash = "sha256:ae89db9e5f98a11a4bf50407d4363e7b09b31e55bc117b4f7d80aab97ba009e5", size = 144271 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/0c/eb/4fc8d0a7110eb5fc9cc161723a34a8a6c200ce3b4fbf681bc86feee22308/charset_normalizer-3.4.7-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:eca9705049ad3c7345d574e3510665cb2cf844c2f2dcfe675332677f081cbd46", size = 311328 }, - { url = "https://files.pythonhosted.org/packages/f8/e3/0fadc706008ac9d7b9b5be6dc767c05f9d3e5df51744ce4cc9605de7b9f4/charset_normalizer-3.4.7-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6178f72c5508bfc5fd446a5905e698c6212932f25bcdd4b47a757a50605a90e2", size = 208061 }, - { url = "https://files.pythonhosted.org/packages/42/f0/3dd1045c47f4a4604df85ec18ad093912ae1344ac706993aff91d38773a2/charset_normalizer-3.4.7-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e1421b502d83040e6d7fb2fb18dff63957f720da3d77b2fbd3187ceb63755d7b", size = 229031 }, - { url = "https://files.pythonhosted.org/packages/dc/67/675a46eb016118a2fbde5a277a5d15f4f69d5f3f5f338e5ee2f8948fcf43/charset_normalizer-3.4.7-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:edac0f1ab77644605be2cbba52e6b7f630731fc42b34cb0f634be1a6eface56a", size = 225239 }, - { url = "https://files.pythonhosted.org/packages/4b/f8/d0118a2f5f23b02cd166fa385c60f9b0d4f9194f574e2b31cef350ad7223/charset_normalizer-3.4.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5649fd1c7bade02f320a462fdefd0b4bd3ce036065836d4f42e0de958038e116", size = 216589 }, - { url = "https://files.pythonhosted.org/packages/b1/f1/6d2b0b261b6c4ceef0fcb0d17a01cc5bc53586c2d4796fa04b5c540bc13d/charset_normalizer-3.4.7-cp312-cp312-manylinux_2_31_armv7l.whl", hash = "sha256:203104ed3e428044fd943bc4bf45fa73c0730391f9621e37fe39ecf477b128cb", size = 202733 }, - { url = "https://files.pythonhosted.org/packages/6f/c0/7b1f943f7e87cc3db9626ba17807d042c38645f0a1d4415c7a14afb5591f/charset_normalizer-3.4.7-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:298930cec56029e05497a76988377cbd7457ba864beeea92ad7e844fe74cd1f1", size = 212652 }, - { url = "https://files.pythonhosted.org/packages/38/dd/5a9ab159fe45c6e72079398f277b7d2b523e7f716acc489726115a910097/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:708838739abf24b2ceb208d0e22403dd018faeef86ddac04319a62ae884c4f15", size = 211229 }, - { url = "https://files.pythonhosted.org/packages/d5/ff/531a1cad5ca855d1c1a8b69cb71abfd6d85c0291580146fda7c82857caa1/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:0f7eb884681e3938906ed0434f20c63046eacd0111c4ba96f27b76084cd679f5", size = 203552 }, - { url = "https://files.pythonhosted.org/packages/c1/4c/a5fb52d528a8ca41f7598cb619409ece30a169fbdf9cdce592e53b46c3a6/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4dc1e73c36828f982bfe79fadf5919923f8a6f4df2860804db9a98c48824ce8d", size = 230806 }, - { url = "https://files.pythonhosted.org/packages/59/7a/071feed8124111a32b316b33ae4de83d36923039ef8cf48120266844285b/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:aed52fea0513bac0ccde438c188c8a471c4e0f457c2dd20cdbf6ea7a450046c7", size = 212316 }, - { url = "https://files.pythonhosted.org/packages/fd/35/f7dba3994312d7ba508e041eaac39a36b120f32d4c8662b8814dab876431/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:fea24543955a6a729c45a73fe90e08c743f0b3334bbf3201e6c4bc1b0c7fa464", size = 227274 }, - { url = "https://files.pythonhosted.org/packages/8a/2d/a572df5c9204ab7688ec1edc895a73ebded3b023bb07364710b05dd1c9be/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:bb6d88045545b26da47aa879dd4a89a71d1dce0f0e549b1abcb31dfe4a8eac49", size = 218468 }, - { url = "https://files.pythonhosted.org/packages/86/eb/890922a8b03a568ca2f336c36585a4713c55d4d67bf0f0c78924be6315ca/charset_normalizer-3.4.7-cp312-cp312-win32.whl", hash = "sha256:2257141f39fe65a3fdf38aeccae4b953e5f3b3324f4ff0daf9f15b8518666a2c", size = 148460 }, - { url = "https://files.pythonhosted.org/packages/35/d9/0e7dffa06c5ab081f75b1b786f0aefc88365825dfcd0ac544bdb7b2b6853/charset_normalizer-3.4.7-cp312-cp312-win_amd64.whl", hash = "sha256:5ed6ab538499c8644b8a3e18debabcd7ce684f3fa91cf867521a7a0279cab2d6", size = 159330 }, - { url = "https://files.pythonhosted.org/packages/9e/5d/481bcc2a7c88ea6b0878c299547843b2521ccbc40980cb406267088bc701/charset_normalizer-3.4.7-cp312-cp312-win_arm64.whl", hash = "sha256:56be790f86bfb2c98fb742ce566dfb4816e5a83384616ab59c49e0604d49c51d", size = 147828 }, - { url = "https://files.pythonhosted.org/packages/c1/3b/66777e39d3ae1ddc77ee606be4ec6d8cbd4c801f65e5a1b6f2b11b8346dd/charset_normalizer-3.4.7-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f496c9c3cc02230093d8330875c4c3cdfc3b73612a5fd921c65d39cbcef08063", size = 309627 }, - { url = "https://files.pythonhosted.org/packages/2e/4e/b7f84e617b4854ade48a1b7915c8ccfadeba444d2a18c291f696e37f0d3b/charset_normalizer-3.4.7-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0ea948db76d31190bf08bd371623927ee1339d5f2a0b4b1b4a4439a65298703c", size = 207008 }, - { url = "https://files.pythonhosted.org/packages/c4/bb/ec73c0257c9e11b268f018f068f5d00aa0ef8c8b09f7753ebd5f2880e248/charset_normalizer-3.4.7-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a277ab8928b9f299723bc1a2dabb1265911b1a76341f90a510368ca44ad9ab66", size = 228303 }, - { url = "https://files.pythonhosted.org/packages/85/fb/32d1f5033484494619f701e719429c69b766bfc4dbc61aa9e9c8c166528b/charset_normalizer-3.4.7-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3bec022aec2c514d9cf199522a802bd007cd588ab17ab2525f20f9c34d067c18", size = 224282 }, - { url = "https://files.pythonhosted.org/packages/fa/07/330e3a0dda4c404d6da83b327270906e9654a24f6c546dc886a0eb0ffb23/charset_normalizer-3.4.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e044c39e41b92c845bc815e5ae4230804e8e7bc29e399b0437d64222d92809dd", size = 215595 }, - { url = "https://files.pythonhosted.org/packages/e3/7c/fc890655786e423f02556e0216d4b8c6bcb6bdfa890160dc66bf52dee468/charset_normalizer-3.4.7-cp313-cp313-manylinux_2_31_armv7l.whl", hash = "sha256:f495a1652cf3fbab2eb0639776dad966c2fb874d79d87ca07f9d5f059b8bd215", size = 201986 }, - { url = "https://files.pythonhosted.org/packages/d8/97/bfb18b3db2aed3b90cf54dc292ad79fdd5ad65c4eae454099475cbeadd0d/charset_normalizer-3.4.7-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e712b419df8ba5e42b226c510472b37bd57b38e897d3eca5e8cfd410a29fa859", size = 211711 }, - { url = "https://files.pythonhosted.org/packages/6f/a5/a581c13798546a7fd557c82614a5c65a13df2157e9ad6373166d2a3e645d/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7804338df6fcc08105c7745f1502ba68d900f45fd770d5bdd5288ddccb8a42d8", size = 210036 }, - { url = "https://files.pythonhosted.org/packages/8c/bf/b3ab5bcb478e4193d517644b0fb2bf5497fbceeaa7a1bc0f4d5b50953861/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:481551899c856c704d58119b5025793fa6730adda3571971af568f66d2424bb5", size = 202998 }, - { url = "https://files.pythonhosted.org/packages/e7/4e/23efd79b65d314fa320ec6017b4b5834d5c12a58ba4610aa353af2e2f577/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f59099f9b66f0d7145115e6f80dd8b1d847176df89b234a5a6b3f00437aa0832", size = 230056 }, - { url = "https://files.pythonhosted.org/packages/b9/9f/1e1941bc3f0e01df116e68dc37a55c4d249df5e6fa77f008841aef68264f/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:f59ad4c0e8f6bba240a9bb85504faa1ab438237199d4cce5f622761507b8f6a6", size = 211537 }, - { url = "https://files.pythonhosted.org/packages/80/0f/088cbb3020d44428964a6c97fe1edfb1b9550396bf6d278330281e8b709c/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:3dedcc22d73ec993f42055eff4fcfed9318d1eeb9a6606c55892a26964964e48", size = 226176 }, - { url = "https://files.pythonhosted.org/packages/6a/9f/130394f9bbe06f4f63e22641d32fc9b202b7e251c9aef4db044324dac493/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:64f02c6841d7d83f832cd97ccf8eb8a906d06eb95d5276069175c696b024b60a", size = 217723 }, - { url = "https://files.pythonhosted.org/packages/73/55/c469897448a06e49f8fa03f6caae97074fde823f432a98f979cc42b90e69/charset_normalizer-3.4.7-cp313-cp313-win32.whl", hash = "sha256:4042d5c8f957e15221d423ba781e85d553722fc4113f523f2feb7b188cc34c5e", size = 148085 }, - { url = "https://files.pythonhosted.org/packages/5d/78/1b74c5bbb3f99b77a1715c91b3e0b5bdb6fe302d95ace4f5b1bec37b0167/charset_normalizer-3.4.7-cp313-cp313-win_amd64.whl", hash = "sha256:3946fa46a0cf3e4c8cb1cc52f56bb536310d34f25f01ca9b6c16afa767dab110", size = 158819 }, - { url = "https://files.pythonhosted.org/packages/68/86/46bd42279d323deb8687c4a5a811fd548cb7d1de10cf6535d099877a9a9f/charset_normalizer-3.4.7-cp313-cp313-win_arm64.whl", hash = "sha256:80d04837f55fc81da168b98de4f4b797ef007fc8a79ab71c6ec9bc4dd662b15b", size = 147915 }, - { url = "https://files.pythonhosted.org/packages/97/c8/c67cb8c70e19ef1960b97b22ed2a1567711de46c4ddf19799923adc836c2/charset_normalizer-3.4.7-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:c36c333c39be2dbca264d7803333c896ab8fa7d4d6f0ab7edb7dfd7aea6e98c0", size = 309234 }, - { url = "https://files.pythonhosted.org/packages/99/85/c091fdee33f20de70d6c8b522743b6f831a2f1cd3ff86de4c6a827c48a76/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1c2aed2e5e41f24ea8ef1590b8e848a79b56f3a5564a65ceec43c9d692dc7d8a", size = 208042 }, - { url = "https://files.pythonhosted.org/packages/87/1c/ab2ce611b984d2fd5d86a5a8a19c1ae26acac6bad967da4967562c75114d/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:54523e136b8948060c0fa0bc7b1b50c32c186f2fceee897a495406bb6e311d2b", size = 228706 }, - { url = "https://files.pythonhosted.org/packages/a8/29/2b1d2cb00bf085f59d29eb773ce58ec2d325430f8c216804a0a5cd83cbca/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:715479b9a2802ecac752a3b0efa2b0b60285cf962ee38414211abdfccc233b41", size = 224727 }, - { url = "https://files.pythonhosted.org/packages/47/5c/032c2d5a07fe4d4855fea851209cca2b6f03ebeb6d4e3afdb3358386a684/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bd6c2a1c7573c64738d716488d2cdd3c00e340e4835707d8fdb8dc1a66ef164e", size = 215882 }, - { url = "https://files.pythonhosted.org/packages/2c/c2/356065d5a8b78ed04499cae5f339f091946a6a74f91e03476c33f0ab7100/charset_normalizer-3.4.7-cp314-cp314-manylinux_2_31_armv7l.whl", hash = "sha256:c45e9440fb78f8ddabcf714b68f936737a121355bf59f3907f4e17721b9d1aae", size = 200860 }, - { url = "https://files.pythonhosted.org/packages/0c/cd/a32a84217ced5039f53b29f460962abb2d4420def55afabe45b1c3c7483d/charset_normalizer-3.4.7-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3534e7dcbdcf757da6b85a0bbf5b6868786d5982dd959b065e65481644817a18", size = 211564 }, - { url = "https://files.pythonhosted.org/packages/44/86/58e6f13ce26cc3b8f4a36b94a0f22ae2f00a72534520f4ae6857c4b81f89/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:e8ac484bf18ce6975760921bb6148041faa8fef0547200386ea0b52b5d27bf7b", size = 211276 }, - { url = "https://files.pythonhosted.org/packages/8f/fe/d17c32dc72e17e155e06883efa84514ca375f8a528ba2546bee73fc4df81/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:a5fe03b42827c13cdccd08e6c0247b6a6d4b5e3cdc53fd1749f5896adcdc2356", size = 201238 }, - { url = "https://files.pythonhosted.org/packages/6a/29/f33daa50b06525a237451cdb6c69da366c381a3dadcd833fa5676bc468b3/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:2d6eb928e13016cea4f1f21d1e10c1cebd5a421bc57ddf5b1142ae3f86824fab", size = 230189 }, - { url = "https://files.pythonhosted.org/packages/b6/6e/52c84015394a6a0bdcd435210a7e944c5f94ea1055f5cc5d56c5fe368e7b/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:e74327fb75de8986940def6e8dee4f127cc9752bee7355bb323cc5b2659b6d46", size = 211352 }, - { url = "https://files.pythonhosted.org/packages/8c/d7/4353be581b373033fb9198bf1da3cf8f09c1082561e8e922aa7b39bf9fe8/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:d6038d37043bced98a66e68d3aa2b6a35505dc01328cd65217cefe82f25def44", size = 227024 }, - { url = "https://files.pythonhosted.org/packages/30/45/99d18aa925bd1740098ccd3060e238e21115fffbfdcb8f3ece837d0ace6c/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:7579e913a5339fb8fa133f6bbcfd8e6749696206cf05acdbdca71a1b436d8e72", size = 217869 }, - { url = "https://files.pythonhosted.org/packages/5c/05/5ee478aa53f4bb7996482153d4bfe1b89e0f087f0ab6b294fcf92d595873/charset_normalizer-3.4.7-cp314-cp314-win32.whl", hash = "sha256:5b77459df20e08151cd6f8b9ef8ef1f961ef73d85c21a555c7eed5b79410ec10", size = 148541 }, - { url = "https://files.pythonhosted.org/packages/48/77/72dcb0921b2ce86420b2d79d454c7022bf5be40202a2a07906b9f2a35c97/charset_normalizer-3.4.7-cp314-cp314-win_amd64.whl", hash = "sha256:92a0a01ead5e668468e952e4238cccd7c537364eb7d851ab144ab6627dbbe12f", size = 159634 }, - { url = "https://files.pythonhosted.org/packages/c6/a3/c2369911cd72f02386e4e340770f6e158c7980267da16af8f668217abaa0/charset_normalizer-3.4.7-cp314-cp314-win_arm64.whl", hash = "sha256:67f6279d125ca0046a7fd386d01b311c6363844deac3e5b069b514ba3e63c246", size = 148384 }, - { url = "https://files.pythonhosted.org/packages/94/09/7e8a7f73d24dba1f0035fbbf014d2c36828fc1bf9c88f84093e57d315935/charset_normalizer-3.4.7-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:effc3f449787117233702311a1b7d8f59cba9ced946ba727bdc329ec69028e24", size = 330133 }, - { url = "https://files.pythonhosted.org/packages/8d/da/96975ddb11f8e977f706f45cddd8540fd8242f71ecdb5d18a80723dcf62c/charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fbccdc05410c9ee21bbf16a35f4c1d16123dcdeb8a1d38f33654fa21d0234f79", size = 216257 }, - { url = "https://files.pythonhosted.org/packages/e5/e8/1d63bf8ef2d388e95c64b2098f45f84758f6d102a087552da1485912637b/charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:733784b6d6def852c814bce5f318d25da2ee65dd4839a0718641c696e09a2960", size = 234851 }, - { url = "https://files.pythonhosted.org/packages/9b/40/e5ff04233e70da2681fa43969ad6f66ca5611d7e669be0246c4c7aaf6dc8/charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a89c23ef8d2c6b27fd200a42aa4ac72786e7c60d40efdc76e6011260b6e949c4", size = 233393 }, - { url = "https://files.pythonhosted.org/packages/be/c1/06c6c49d5a5450f76899992f1ee40b41d076aee9279b49cf9974d2f313d5/charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6c114670c45346afedc0d947faf3c7f701051d2518b943679c8ff88befe14f8e", size = 223251 }, - { url = "https://files.pythonhosted.org/packages/2b/9f/f2ff16fb050946169e3e1f82134d107e5d4ae72647ec8a1b1446c148480f/charset_normalizer-3.4.7-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:a180c5e59792af262bf263b21a3c49353f25945d8d9f70628e73de370d55e1e1", size = 206609 }, - { url = "https://files.pythonhosted.org/packages/69/d5/a527c0cd8d64d2eab7459784fb4169a0ac76e5a6fc5237337982fd61347e/charset_normalizer-3.4.7-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3c9a494bc5ec77d43cea229c4f6db1e4d8fe7e1bbffa8b6f0f0032430ff8ab44", size = 220014 }, - { url = "https://files.pythonhosted.org/packages/7e/80/8a7b8104a3e203074dc9aa2c613d4b726c0e136bad1cc734594b02867972/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8d828b6667a32a728a1ad1d93957cdf37489c57b97ae6c4de2860fa749b8fc1e", size = 218979 }, - { url = "https://files.pythonhosted.org/packages/02/9a/b759b503d507f375b2b5c153e4d2ee0a75aa215b7f2489cf314f4541f2c0/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:cf1493cd8607bec4d8a7b9b004e699fcf8f9103a9284cc94962cb73d20f9d4a3", size = 209238 }, - { url = "https://files.pythonhosted.org/packages/c2/4e/0f3f5d47b86bdb79256e7290b26ac847a2832d9a4033f7eb2cd4bcf4bb5b/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:0c96c3b819b5c3e9e165495db84d41914d6894d55181d2d108cc1a69bfc9cce0", size = 236110 }, - { url = "https://files.pythonhosted.org/packages/96/23/bce28734eb3ed2c91dcf93abeb8a5cf393a7b2749725030bb630e554fdd8/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:752a45dc4a6934060b3b0dab47e04edc3326575f82be64bc4fc293914566503e", size = 219824 }, - { url = "https://files.pythonhosted.org/packages/2c/6f/6e897c6984cc4d41af319b077f2f600fc8214eb2fe2d6bcb79141b882400/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:8778f0c7a52e56f75d12dae53ae320fae900a8b9b4164b981b9c5ce059cd1fcb", size = 233103 }, - { url = "https://files.pythonhosted.org/packages/76/22/ef7bd0fe480a0ae9b656189ec00744b60933f68b4f42a7bb06589f6f576a/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ce3412fbe1e31eb81ea42f4169ed94861c56e643189e1e75f0041f3fe7020abe", size = 225194 }, - { url = "https://files.pythonhosted.org/packages/c5/a7/0e0ab3e0b5bc1219bd80a6a0d4d72ca74d9250cb2382b7c699c147e06017/charset_normalizer-3.4.7-cp314-cp314t-win32.whl", hash = "sha256:c03a41a8784091e67a39648f70c5f97b5b6a37f216896d44d2cdcb82615339a0", size = 159827 }, - { url = "https://files.pythonhosted.org/packages/7a/1d/29d32e0fb40864b1f878c7f5a0b343ae676c6e2b271a2d55cc3a152391da/charset_normalizer-3.4.7-cp314-cp314t-win_amd64.whl", hash = "sha256:03853ed82eeebbce3c2abfdbc98c96dc205f32a79627688ac9a27370ea61a49c", size = 174168 }, - { url = "https://files.pythonhosted.org/packages/de/32/d92444ad05c7a6e41fb2036749777c163baf7a0301a040cb672d6b2b1ae9/charset_normalizer-3.4.7-cp314-cp314t-win_arm64.whl", hash = "sha256:c35abb8bfff0185efac5878da64c45dafd2b37fb0383add1be155a763c1f083d", size = 153018 }, - { url = "https://files.pythonhosted.org/packages/db/8f/61959034484a4a7c527811f4721e75d02d653a35afb0b6054474d8185d4c/charset_normalizer-3.4.7-py3-none-any.whl", hash = "sha256:3dce51d0f5e7951f8bb4900c257dad282f49190fdbebecd4ba99bcc41fef404d", size = 61958 }, +sdist = { url = "https://files.pythonhosted.org/packages/4f/bb/64c8afb966ca9482ef7961b606bfe8615f7948e7ea70e737159f9a940064/cftime-1.6.6.1.tar.gz", hash = "sha256:3eff428a229169c2632c093b554e36dd5277dacc0f7aae8ad73ce6a93304d58d", size = 381552, upload-time = "2026-10-14T18:50:47.589Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dd/28/0239c934ddcf555ba718c1b971aa8e241a241f80c92bead219eefd76b82c/cftime-1.6.6.1-cp311-abi3-macosx_10_9_x86_64.whl", hash = "sha256:dd42f26a5ec493ac6ffe83eabc173625d2954cc6993de150ef60bab7599dc10e", size = 549727, upload-time = "2026-10-14T18:50:18.032Z" }, + { url = "https://files.pythonhosted.org/packages/e3/98/2906f59bb8fb11dd47133fcf40d1d01c2e7a00f5f00701a80cfb6cc1f498/cftime-1.6.6.1-cp311-abi3-macosx_11_0_arm64.whl", hash = "sha256:6afab9967fe9635eb16569cd670619a7beed09bbea7982f9c6f61001d06c62a1", size = 543813, upload-time = "2026-10-14T18:50:19.916Z" }, + { url = "https://files.pythonhosted.org/packages/a1/f5/84eb544579f55452df65a47bcc86147deaddf0e568725987bc69a1bc4cf6/cftime-1.6.6.1-cp311-abi3-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:92566dd8c3213b824f8b2e86904efa7f0d8db6a51017cc5ad365b1d20b579617", size = 1673835, upload-time = "2026-10-14T18:50:21.438Z" }, + { url = "https://files.pythonhosted.org/packages/dd/29/563ff54069998e89cd74e410e862017131690e4f595a06820172335a9c1b/cftime-1.6.6.1-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2d1e68e14537e16db8d3a48c95aa617556247d3f8e6e3a864eca302427dc1e4c", size = 1642106, upload-time = "2026-10-14T18:50:23.441Z" }, + { url = "https://files.pythonhosted.org/packages/a8/3a/ad6e96204d85ea6abf3721393ec2e830e025854b51402cfc081a670b61f5/cftime-1.6.6.1-cp311-abi3-win_amd64.whl", hash = "sha256:e4ed505118cbffec8ca6b59636f283d55df1675a3f092bc2d276f917a04af68a", size = 512994, upload-time = "2026-10-14T18:50:25.098Z" }, + { url = "https://files.pythonhosted.org/packages/c4/c5/a5eb6e8b11d8b603af51827c9afb42598d0eda1a2cbd5c0190e31f701348/cftime-1.6.6.1-cp311-abi3-win_arm64.whl", hash = "sha256:f0cf93b58005e8dd012d2c7c10428d405b1afb19384d12de66782fad46df2b39", size = 499638, upload-time = "2026-10-14T18:50:26.658Z" }, + { url = "https://files.pythonhosted.org/packages/07/27/4c26fe755c40132d63819e47184776eee0a325b7ebda060145260d3894ce/cftime-1.6.6.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:bf4d9d496388b9ef9f07d7bd00f7a760e10afbb32ba458ed1f066a0ddbba8b76", size = 591739, upload-time = "2026-10-14T18:50:28.156Z" }, + { url = "https://files.pythonhosted.org/packages/c3/d4/ff91b37a9bf4c10dde675d9748fba62f5aabdaa955031edf4d5e133bb06a/cftime-1.6.6.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:56b8d18ad8a447f81becdccdda4ff81f345284631901fbac00915dbcbbe89ad3", size = 571795, upload-time = "2026-10-14T18:50:29.668Z" }, + { url = "https://files.pythonhosted.org/packages/07/c8/77e4c9fcf450212f284bea92901f0a0b80903a25abb0dfb09d4d8dc73137/cftime-1.6.6.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b58a66c3bbb8a6cd19f62bf8590c847b68fd6c24f3d3e86f5380562c8477334", size = 1859851, upload-time = "2026-10-14T18:50:31.165Z" }, + { url = "https://files.pythonhosted.org/packages/35/68/1bf5d9bf4e42e442cf7082b1c4ff8cf5475a676912ba9427a3b90726b9ec/cftime-1.6.6.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:75429951bf4ead72e93e82b9d91a5ffec9733b1d9f1d3c51c278613dbe7e7422", size = 1847054, upload-time = "2026-10-14T18:50:32.872Z" }, + { url = "https://files.pythonhosted.org/packages/bc/f9/ca501cc52e9201ed7a8d430cbab43f00472476300112cde4079dc35344dc/cftime-1.6.6.1-cp314-cp314t-win_amd64.whl", hash = "sha256:9451036dcd59a54f1d055eba2bbbbe3ecdb8a6a7f98f800b33d80ea1084a56cb", size = 562424, upload-time = "2026-10-14T18:50:34.365Z" }, + { url = "https://files.pythonhosted.org/packages/f9/61/db3cd3561e803c6b7882ef1477adaf20413e195d46fdab52191f47ac14a0/cftime-1.6.6.1-cp314-cp314t-win_arm64.whl", hash = "sha256:a97fb973634e160b087ac06f1f3db6cbf193a3afdad32f05cdf8a7c2d612c3cd", size = 524809, upload-time = "2026-10-14T18:50:36.066Z" }, + { url = "https://files.pythonhosted.org/packages/7b/d8/a43fd99827e442764cd215d03d0074c81dae1306af7c100de671f21c609c/cftime-1.6.6.1-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:03273be53472a16b55bf1e600cb3984ccc607f465afc3d1a9cf02a7300c828be", size = 591357, upload-time = "2026-10-14T18:50:38.124Z" }, + { url = "https://files.pythonhosted.org/packages/04/71/ece2ad6e34595b1ba9b67cae3cf1304681923beb04acac08e860e27340de/cftime-1.6.6.1-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:6084bc378ade5bea34e138506091af70bb484ce529d9c9df19ea1fe9067a3877", size = 571038, upload-time = "2026-10-14T18:50:39.611Z" }, + { url = "https://files.pythonhosted.org/packages/a5/7b/710cc81ee938719996fb68f705ae323524e8c0d4972846c83d3ace74b2e8/cftime-1.6.6.1-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ac0c0b6e8bdd8526e9ed92f1f97da608aa4c0af8599dfe4c121c286b7dbe141f", size = 1852086, upload-time = "2026-10-14T18:50:41.069Z" }, + { url = "https://files.pythonhosted.org/packages/cf/ab/11631d2e98f5012b57d9fd79aa3e4d24fbda8e963d8f54af5f0304bad752/cftime-1.6.6.1-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b1687424178d22958699be91353529d55aadfba5032e3fb53ce68d5512ea3a6c", size = 1845490, upload-time = "2026-10-14T18:50:43.058Z" }, + { url = "https://files.pythonhosted.org/packages/b5/4c/7de0c5bb091f03cd225f9ceaafcc2fc06ddec9d4744a072fed7f849c182e/cftime-1.6.6.1-cp315-cp315t-win_amd64.whl", hash = "sha256:c6ae3b2777165b9de172c79378712078a39e1cb4701731ddaba985c86cc36bc8", size = 560874, upload-time = "2026-10-14T18:50:44.484Z" }, + { url = "https://files.pythonhosted.org/packages/76/2f/4c3be0e5bea3384e9236e3ba627a35c27da79b3613b45f1587ac6be66f8a/cftime-1.6.6.1-cp315-cp315t-win_arm64.whl", hash = "sha256:235130e4186cad92b2f68f454bae730f8ebdc5880bcf4800d2678878891f02cb", size = 523688, upload-time = "2026-10-14T18:50:46.175Z" }, ] [[package]] name = "click" -version = "8.4.1" +version = "8.5.0" source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "colorama", marker = "sys_platform == 'win32'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/9b/98/518d8e5081007684232226f475082b30087d0f585e8457db087298259f49/click-8.4.1.tar.gz", hash = "sha256:918b5633eddf6b41c32d4f454bf0de810065c74e3f7dbf8ee5452f8be88d3e96", size = 353007 } +sdist = { url = "https://files.pythonhosted.org/packages/c7/0e/7fa0ef50764b67090eca4114772a2abf8b6148198475e54c660b97caeee6/click-8.5.0.tar.gz", hash = "sha256:ba0d2089de75ea0310e2dde03160e6ca10009947fb95a182f9b54021bb272e34", size = 382235, upload-time = "2026-08-26T13:33:14.56Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c7/0d/67e5b4109ea4a837e80daa87c2c696711955e40449a97e8926672534def2/click-8.4.1-py3-none-any.whl", hash = "sha256:482be17c6991b8c19c5429a1e995d9b0efdbb63172824c41f99965dc0ade8ec2", size = 116639 }, + { url = "https://files.pythonhosted.org/packages/58/50/6c0d534c5f134586a8e1ba4e330569e32f057e33372ae556463212fb4cd3/click-8.5.0-py3-none-any.whl", hash = "sha256:255bc9599cf7748b4b1a446ccc735421bd08a2ae529a8b88597d3de5664ee360", size = 125251, upload-time = "2026-08-26T13:33:12.928Z" }, ] [[package]] name = "cloudpickle" version = "3.1.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/27/fb/576f067976d320f5f0114a8d9fa1215425441bb35627b1993e5afd8111e5/cloudpickle-3.1.2.tar.gz", hash = "sha256:7fda9eb655c9c230dab534f1983763de5835249750e85fbcef43aaa30a9a2414", size = 22330 } +sdist = { url = "https://files.pythonhosted.org/packages/27/fb/576f067976d320f5f0114a8d9fa1215425441bb35627b1993e5afd8111e5/cloudpickle-3.1.2.tar.gz", hash = "sha256:7fda9eb655c9c230dab534f1983763de5835249750e85fbcef43aaa30a9a2414", size = 22330, upload-time = "2025-11-03T09:25:26.604Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/88/39/799be3f2f0f38cc727ee3b4f1445fe6d5e4133064ec2e4115069418a5bb6/cloudpickle-3.1.2-py3-none-any.whl", hash = "sha256:9acb47f6afd73f60dc1df93bb801b472f05ff42fa6c84167d25cb206be1fbf4a", size = 22228 }, + { url = "https://files.pythonhosted.org/packages/88/39/799be3f2f0f38cc727ee3b4f1445fe6d5e4133064ec2e4115069418a5bb6/cloudpickle-3.1.2-py3-none-any.whl", hash = "sha256:9acb47f6afd73f60dc1df93bb801b472f05ff42fa6c84167d25cb206be1fbf4a", size = 22228, upload-time = "2025-11-03T09:25:25.534Z" }, ] [[package]] name = "colorama" version = "0.4.6" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697 } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 }, + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, ] [[package]] name = "comm" version = "0.2.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/4c/13/7d740c5849255756bc17888787313b61fd38a0a8304fc4f073dfc46122aa/comm-0.2.3.tar.gz", hash = "sha256:2dc8048c10962d55d7ad693be1e7045d891b7ce8d999c97963a5e3e99c055971", size = 6319 } +sdist = { url = "https://files.pythonhosted.org/packages/4c/13/7d740c5849255756bc17888787313b61fd38a0a8304fc4f073dfc46122aa/comm-0.2.3.tar.gz", hash = "sha256:2dc8048c10962d55d7ad693be1e7045d891b7ce8d999c97963a5e3e99c055971", size = 6319, upload-time = "2025-07-25T14:02:04.452Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/60/97/891a0971e1e4a8c5d2b20bbe0e524dc04548d2307fee33cdeba148fd4fc7/comm-0.2.3-py3-none-any.whl", hash = "sha256:c615d91d75f7f04f095b30d1c1711babd43bdc6419c1be9886a85f2f4e489417", size = 7294 }, + { url = "https://files.pythonhosted.org/packages/60/97/891a0971e1e4a8c5d2b20bbe0e524dc04548d2307fee33cdeba148fd4fc7/comm-0.2.3-py3-none-any.whl", hash = "sha256:c615d91d75f7f04f095b30d1c1711babd43bdc6419c1be9886a85f2f4e489417", size = 7294, upload-time = "2025-07-25T14:02:02.896Z" }, ] [[package]] name = "contourpy" -version = "1.3.3" +version = "1.4.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/58/01/1253e6698a07380cd31a736d248a3f2a50a7c88779a1813da27503cadc2a/contourpy-1.3.3.tar.gz", hash = "sha256:083e12155b210502d0bca491432bb04d56dc3432f95a979b429f2848c3dbe880", size = 13466174 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/be/45/adfee365d9ea3d853550b2e735f9d66366701c65db7855cd07621732ccfc/contourpy-1.3.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b08a32ea2f8e42cf1d4be3169a98dd4be32bafe4f22b6c4cb4ba810fa9e5d2cb", size = 293419 }, - { url = "https://files.pythonhosted.org/packages/53/3e/405b59cfa13021a56bba395a6b3aca8cec012b45bf177b0eaf7a202cde2c/contourpy-1.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:556dba8fb6f5d8742f2923fe9457dbdd51e1049c4a43fd3986a0b14a1d815fc6", size = 273979 }, - { url = "https://files.pythonhosted.org/packages/d4/1c/a12359b9b2ca3a845e8f7f9ac08bdf776114eb931392fcad91743e2ea17b/contourpy-1.3.3-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:92d9abc807cf7d0e047b95ca5d957cf4792fcd04e920ca70d48add15c1a90ea7", size = 332653 }, - { url = "https://files.pythonhosted.org/packages/63/12/897aeebfb475b7748ea67b61e045accdfcf0d971f8a588b67108ed7f5512/contourpy-1.3.3-cp312-cp312-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b2e8faa0ed68cb29af51edd8e24798bb661eac3bd9f65420c1887b6ca89987c8", size = 379536 }, - { url = "https://files.pythonhosted.org/packages/43/8a/a8c584b82deb248930ce069e71576fc09bd7174bbd35183b7943fb1064fd/contourpy-1.3.3-cp312-cp312-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:626d60935cf668e70a5ce6ff184fd713e9683fb458898e4249b63be9e28286ea", size = 384397 }, - { url = "https://files.pythonhosted.org/packages/cc/8f/ec6289987824b29529d0dfda0d74a07cec60e54b9c92f3c9da4c0ac732de/contourpy-1.3.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4d00e655fcef08aba35ec9610536bfe90267d7ab5ba944f7032549c55a146da1", size = 362601 }, - { url = "https://files.pythonhosted.org/packages/05/0a/a3fe3be3ee2dceb3e615ebb4df97ae6f3828aa915d3e10549ce016302bd1/contourpy-1.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:451e71b5a7d597379ef572de31eeb909a87246974d960049a9848c3bc6c41bf7", size = 1331288 }, - { url = "https://files.pythonhosted.org/packages/33/1d/acad9bd4e97f13f3e2b18a3977fe1b4a37ecf3d38d815333980c6c72e963/contourpy-1.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:459c1f020cd59fcfe6650180678a9993932d80d44ccde1fa1868977438f0b411", size = 1403386 }, - { url = "https://files.pythonhosted.org/packages/cf/8f/5847f44a7fddf859704217a99a23a4f6417b10e5ab1256a179264561540e/contourpy-1.3.3-cp312-cp312-win32.whl", hash = "sha256:023b44101dfe49d7d53932be418477dba359649246075c996866106da069af69", size = 185018 }, - { url = "https://files.pythonhosted.org/packages/19/e8/6026ed58a64563186a9ee3f29f41261fd1828f527dd93d33b60feca63352/contourpy-1.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:8153b8bfc11e1e4d75bcb0bff1db232f9e10b274e0929de9d608027e0d34ff8b", size = 226567 }, - { url = "https://files.pythonhosted.org/packages/d1/e2/f05240d2c39a1ed228d8328a78b6f44cd695f7ef47beb3e684cf93604f86/contourpy-1.3.3-cp312-cp312-win_arm64.whl", hash = "sha256:07ce5ed73ecdc4a03ffe3e1b3e3c1166db35ae7584be76f65dbbe28a7791b0cc", size = 193655 }, - { url = "https://files.pythonhosted.org/packages/68/35/0167aad910bbdb9599272bd96d01a9ec6852f36b9455cf2ca67bd4cc2d23/contourpy-1.3.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:177fb367556747a686509d6fef71d221a4b198a3905fe824430e5ea0fda54eb5", size = 293257 }, - { url = "https://files.pythonhosted.org/packages/96/e4/7adcd9c8362745b2210728f209bfbcf7d91ba868a2c5f40d8b58f54c509b/contourpy-1.3.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d002b6f00d73d69333dac9d0b8d5e84d9724ff9ef044fd63c5986e62b7c9e1b1", size = 274034 }, - { url = "https://files.pythonhosted.org/packages/73/23/90e31ceeed1de63058a02cb04b12f2de4b40e3bef5e082a7c18d9c8ae281/contourpy-1.3.3-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:348ac1f5d4f1d66d3322420f01d42e43122f43616e0f194fc1c9f5d830c5b286", size = 334672 }, - { url = "https://files.pythonhosted.org/packages/ed/93/b43d8acbe67392e659e1d984700e79eb67e2acb2bd7f62012b583a7f1b55/contourpy-1.3.3-cp313-cp313-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:655456777ff65c2c548b7c454af9c6f33f16c8884f11083244b5819cc214f1b5", size = 381234 }, - { url = "https://files.pythonhosted.org/packages/46/3b/bec82a3ea06f66711520f75a40c8fc0b113b2a75edb36aa633eb11c4f50f/contourpy-1.3.3-cp313-cp313-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:644a6853d15b2512d67881586bd03f462c7ab755db95f16f14d7e238f2852c67", size = 385169 }, - { url = "https://files.pythonhosted.org/packages/4b/32/e0f13a1c5b0f8572d0ec6ae2f6c677b7991fafd95da523159c19eff0696a/contourpy-1.3.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4debd64f124ca62069f313a9cb86656ff087786016d76927ae2cf37846b006c9", size = 362859 }, - { url = "https://files.pythonhosted.org/packages/33/71/e2a7945b7de4e58af42d708a219f3b2f4cff7386e6b6ab0a0fa0033c49a9/contourpy-1.3.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a15459b0f4615b00bbd1e91f1b9e19b7e63aea7483d03d804186f278c0af2659", size = 1332062 }, - { url = "https://files.pythonhosted.org/packages/12/fc/4e87ac754220ccc0e807284f88e943d6d43b43843614f0a8afa469801db0/contourpy-1.3.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ca0fdcd73925568ca027e0b17ab07aad764be4706d0a925b89227e447d9737b7", size = 1403932 }, - { url = "https://files.pythonhosted.org/packages/a6/2e/adc197a37443f934594112222ac1aa7dc9a98faf9c3842884df9a9d8751d/contourpy-1.3.3-cp313-cp313-win32.whl", hash = "sha256:b20c7c9a3bf701366556e1b1984ed2d0cedf999903c51311417cf5f591d8c78d", size = 185024 }, - { url = "https://files.pythonhosted.org/packages/18/0b/0098c214843213759692cc638fce7de5c289200a830e5035d1791d7a2338/contourpy-1.3.3-cp313-cp313-win_amd64.whl", hash = "sha256:1cadd8b8969f060ba45ed7c1b714fe69185812ab43bd6b86a9123fe8f99c3263", size = 226578 }, - { url = "https://files.pythonhosted.org/packages/8a/9a/2f6024a0c5995243cd63afdeb3651c984f0d2bc727fd98066d40e141ad73/contourpy-1.3.3-cp313-cp313-win_arm64.whl", hash = "sha256:fd914713266421b7536de2bfa8181aa8c699432b6763a0ea64195ebe28bff6a9", size = 193524 }, - { url = "https://files.pythonhosted.org/packages/c0/b3/f8a1a86bd3298513f500e5b1f5fd92b69896449f6cab6a146a5d52715479/contourpy-1.3.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:88df9880d507169449d434c293467418b9f6cbe82edd19284aa0409e7fdb933d", size = 306730 }, - { url = "https://files.pythonhosted.org/packages/3f/11/4780db94ae62fc0c2053909b65dc3246bd7cecfc4f8a20d957ad43aa4ad8/contourpy-1.3.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:d06bb1f751ba5d417047db62bca3c8fde202b8c11fb50742ab3ab962c81e8216", size = 287897 }, - { url = "https://files.pythonhosted.org/packages/ae/15/e59f5f3ffdd6f3d4daa3e47114c53daabcb18574a26c21f03dc9e4e42ff0/contourpy-1.3.3-cp313-cp313t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e4e6b05a45525357e382909a4c1600444e2a45b4795163d3b22669285591c1ae", size = 326751 }, - { url = "https://files.pythonhosted.org/packages/0f/81/03b45cfad088e4770b1dcf72ea78d3802d04200009fb364d18a493857210/contourpy-1.3.3-cp313-cp313t-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ab3074b48c4e2cf1a960e6bbeb7f04566bf36b1861d5c9d4d8ac04b82e38ba20", size = 375486 }, - { url = "https://files.pythonhosted.org/packages/0c/ba/49923366492ffbdd4486e970d421b289a670ae8cf539c1ea9a09822b371a/contourpy-1.3.3-cp313-cp313t-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:6c3d53c796f8647d6deb1abe867daeb66dcc8a97e8455efa729516b997b8ed99", size = 388106 }, - { url = "https://files.pythonhosted.org/packages/9f/52/5b00ea89525f8f143651f9f03a0df371d3cbd2fccd21ca9b768c7a6500c2/contourpy-1.3.3-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:50ed930df7289ff2a8d7afeb9603f8289e5704755c7e5c3bbd929c90c817164b", size = 352548 }, - { url = "https://files.pythonhosted.org/packages/32/1d/a209ec1a3a3452d490f6b14dd92e72280c99ae3d1e73da74f8277d4ee08f/contourpy-1.3.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4feffb6537d64b84877da813a5c30f1422ea5739566abf0bd18065ac040e120a", size = 1322297 }, - { url = "https://files.pythonhosted.org/packages/bc/9e/46f0e8ebdd884ca0e8877e46a3f4e633f6c9c8c4f3f6e72be3fe075994aa/contourpy-1.3.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:2b7e9480ffe2b0cd2e787e4df64270e3a0440d9db8dc823312e2c940c167df7e", size = 1391023 }, - { url = "https://files.pythonhosted.org/packages/b9/70/f308384a3ae9cd2209e0849f33c913f658d3326900d0ff5d378d6a1422d2/contourpy-1.3.3-cp313-cp313t-win32.whl", hash = "sha256:283edd842a01e3dcd435b1c5116798d661378d83d36d337b8dde1d16a5fc9ba3", size = 196157 }, - { url = "https://files.pythonhosted.org/packages/b2/dd/880f890a6663b84d9e34a6f88cded89d78f0091e0045a284427cb6b18521/contourpy-1.3.3-cp313-cp313t-win_amd64.whl", hash = "sha256:87acf5963fc2b34825e5b6b048f40e3635dd547f590b04d2ab317c2619ef7ae8", size = 240570 }, - { url = "https://files.pythonhosted.org/packages/80/99/2adc7d8ffead633234817ef8e9a87115c8a11927a94478f6bb3d3f4d4f7d/contourpy-1.3.3-cp313-cp313t-win_arm64.whl", hash = "sha256:3c30273eb2a55024ff31ba7d052dde990d7d8e5450f4bbb6e913558b3d6c2301", size = 199713 }, - { url = "https://files.pythonhosted.org/packages/72/8b/4546f3ab60f78c514ffb7d01a0bd743f90de36f0019d1be84d0a708a580a/contourpy-1.3.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fde6c716d51c04b1c25d0b90364d0be954624a0ee9d60e23e850e8d48353d07a", size = 292189 }, - { url = "https://files.pythonhosted.org/packages/fd/e1/3542a9cb596cadd76fcef413f19c79216e002623158befe6daa03dbfa88c/contourpy-1.3.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:cbedb772ed74ff5be440fa8eee9bd49f64f6e3fc09436d9c7d8f1c287b121d77", size = 273251 }, - { url = "https://files.pythonhosted.org/packages/b1/71/f93e1e9471d189f79d0ce2497007731c1e6bf9ef6d1d61b911430c3db4e5/contourpy-1.3.3-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:22e9b1bd7a9b1d652cd77388465dc358dafcd2e217d35552424aa4f996f524f5", size = 335810 }, - { url = "https://files.pythonhosted.org/packages/91/f9/e35f4c1c93f9275d4e38681a80506b5510e9327350c51f8d4a5a724d178c/contourpy-1.3.3-cp314-cp314-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a22738912262aa3e254e4f3cb079a95a67132fc5a063890e224393596902f5a4", size = 382871 }, - { url = "https://files.pythonhosted.org/packages/b5/71/47b512f936f66a0a900d81c396a7e60d73419868fba959c61efed7a8ab46/contourpy-1.3.3-cp314-cp314-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:afe5a512f31ee6bd7d0dda52ec9864c984ca3d66664444f2d72e0dc4eb832e36", size = 386264 }, - { url = "https://files.pythonhosted.org/packages/04/5f/9ff93450ba96b09c7c2b3f81c94de31c89f92292f1380261bd7195bea4ea/contourpy-1.3.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f64836de09927cba6f79dcd00fdd7d5329f3fccc633468507079c829ca4db4e3", size = 363819 }, - { url = "https://files.pythonhosted.org/packages/3e/a6/0b185d4cc480ee494945cde102cb0149ae830b5fa17bf855b95f2e70ad13/contourpy-1.3.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:1fd43c3be4c8e5fd6e4f2baeae35ae18176cf2e5cced681cca908addf1cdd53b", size = 1333650 }, - { url = "https://files.pythonhosted.org/packages/43/d7/afdc95580ca56f30fbcd3060250f66cedbde69b4547028863abd8aa3b47e/contourpy-1.3.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6afc576f7b33cf00996e5c1102dc2a8f7cc89e39c0b55df93a0b78c1bd992b36", size = 1404833 }, - { url = "https://files.pythonhosted.org/packages/e2/e2/366af18a6d386f41132a48f033cbd2102e9b0cf6345d35ff0826cd984566/contourpy-1.3.3-cp314-cp314-win32.whl", hash = "sha256:66c8a43a4f7b8df8b71ee1840e4211a3c8d93b214b213f590e18a1beca458f7d", size = 189692 }, - { url = "https://files.pythonhosted.org/packages/7d/c2/57f54b03d0f22d4044b8afb9ca0e184f8b1afd57b4f735c2fa70883dc601/contourpy-1.3.3-cp314-cp314-win_amd64.whl", hash = "sha256:cf9022ef053f2694e31d630feaacb21ea24224be1c3ad0520b13d844274614fd", size = 232424 }, - { url = "https://files.pythonhosted.org/packages/18/79/a9416650df9b525737ab521aa181ccc42d56016d2123ddcb7b58e926a42c/contourpy-1.3.3-cp314-cp314-win_arm64.whl", hash = "sha256:95b181891b4c71de4bb404c6621e7e2390745f887f2a026b2d99e92c17892339", size = 198300 }, - { url = "https://files.pythonhosted.org/packages/1f/42/38c159a7d0f2b7b9c04c64ab317042bb6952b713ba875c1681529a2932fe/contourpy-1.3.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:33c82d0138c0a062380332c861387650c82e4cf1747aaa6938b9b6516762e772", size = 306769 }, - { url = "https://files.pythonhosted.org/packages/c3/6c/26a8205f24bca10974e77460de68d3d7c63e282e23782f1239f226fcae6f/contourpy-1.3.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ea37e7b45949df430fe649e5de8351c423430046a2af20b1c1961cae3afcda77", size = 287892 }, - { url = "https://files.pythonhosted.org/packages/66/06/8a475c8ab718ebfd7925661747dbb3c3ee9c82ac834ccb3570be49d129f4/contourpy-1.3.3-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d304906ecc71672e9c89e87c4675dc5c2645e1f4269a5063b99b0bb29f232d13", size = 326748 }, - { url = "https://files.pythonhosted.org/packages/b4/a3/c5ca9f010a44c223f098fccd8b158bb1cb287378a31ac141f04730dc49be/contourpy-1.3.3-cp314-cp314t-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ca658cd1a680a5c9ea96dc61cdbae1e85c8f25849843aa799dfd3cb370ad4fbe", size = 375554 }, - { url = "https://files.pythonhosted.org/packages/80/5b/68bd33ae63fac658a4145088c1e894405e07584a316738710b636c6d0333/contourpy-1.3.3-cp314-cp314t-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:ab2fd90904c503739a75b7c8c5c01160130ba67944a7b77bbf36ef8054576e7f", size = 388118 }, - { url = "https://files.pythonhosted.org/packages/40/52/4c285a6435940ae25d7410a6c36bda5145839bc3f0beb20c707cda18b9d2/contourpy-1.3.3-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b7301b89040075c30e5768810bc96a8e8d78085b47d8be6e4c3f5a0b4ed478a0", size = 352555 }, - { url = "https://files.pythonhosted.org/packages/24/ee/3e81e1dd174f5c7fefe50e85d0892de05ca4e26ef1c9a59c2a57e43b865a/contourpy-1.3.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:2a2a8b627d5cc6b7c41a4beff6c5ad5eb848c88255fda4a8745f7e901b32d8e4", size = 1322295 }, - { url = "https://files.pythonhosted.org/packages/3c/b2/6d913d4d04e14379de429057cd169e5e00f6c2af3bb13e1710bcbdb5da12/contourpy-1.3.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:fd6ec6be509c787f1caf6b247f0b1ca598bef13f4ddeaa126b7658215529ba0f", size = 1391027 }, - { url = "https://files.pythonhosted.org/packages/93/8a/68a4ec5c55a2971213d29a9374913f7e9f18581945a7a31d1a39b5d2dfe5/contourpy-1.3.3-cp314-cp314t-win32.whl", hash = "sha256:e74a9a0f5e3fff48fb5a7f2fd2b9b70a3fe014a67522f79b7cca4c0c7e43c9ae", size = 202428 }, - { url = "https://files.pythonhosted.org/packages/fa/96/fd9f641ffedc4fa3ace923af73b9d07e869496c9cc7a459103e6e978992f/contourpy-1.3.3-cp314-cp314t-win_amd64.whl", hash = "sha256:13b68d6a62db8eafaebb8039218921399baf6e47bf85006fd8529f2a08ef33fc", size = 250331 }, - { url = "https://files.pythonhosted.org/packages/ae/8c/469afb6465b853afff216f9528ffda78a915ff880ed58813ba4faf4ba0b6/contourpy-1.3.3-cp314-cp314t-win_arm64.whl", hash = "sha256:b7448cb5a725bb1e35ce88771b86fba35ef418952474492cf7c764059933ff8b", size = 203831 }, +sdist = { url = "https://files.pythonhosted.org/packages/83/5a/a55177dd22553a277388e8a1b3220e92de91bacb28356cdc73caa240121d/contourpy-1.4.0.tar.gz", hash = "sha256:20156f5a1ac4f8ce02656e39a61e82164a3d359796dc8026f75b062783d500e1", size = 13323726, upload-time = "2026-09-11T19:05:05.808Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/97/ba/01bde9753bdbba04a6da9d2bff3881f021bc708f654655e95fae26d3b3a3/contourpy-1.4.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:186ba929df36d61b6127da2e89cd1357e4cb79aca647381ab1a6feb0b152877b", size = 297302, upload-time = "2026-09-11T19:02:45.103Z" }, + { url = "https://files.pythonhosted.org/packages/dd/f5/c5bf67522d49a2222f3154fe46879451d26f0e35ece41770758a64ea78cb/contourpy-1.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c76f3a5318164db7d9401132fc1b5364b784c613c93fa506e3b5e6d1bf353ec8", size = 284921, upload-time = "2026-09-11T19:02:48.049Z" }, + { url = "https://files.pythonhosted.org/packages/0f/cc/cb989599eec12fda312e127eb8e04a8b21a7a6c94bf7ff1bc68273334a42/contourpy-1.4.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:43c3ccbb32c6294b183dcc8e8c46dacf5ecef809497e3d48a5be298eef185ad0", size = 356332, upload-time = "2026-09-11T19:02:51.408Z" }, + { url = "https://files.pythonhosted.org/packages/47/fb/6f620d7602507817b0b4c21dd790ed68688f1f4ae9c29aacf21f08db5cf1/contourpy-1.4.0-cp312-cp312-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:86d05cec773c9507a3950122e0e40ce77c23c75ceeb2fc189514e71893cbb34b", size = 405878, upload-time = "2026-09-11T19:02:54.093Z" }, + { url = "https://files.pythonhosted.org/packages/32/4e/693c6d6bdece679f0953775eef3a1b66d56be55478d936e7deb1f3004422/contourpy-1.4.0-cp312-cp312-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2deb580178ca19437a84bd77e4bc2cd91a8ccad212413a83c273900868b5978c", size = 408296, upload-time = "2026-09-11T19:02:56.528Z" }, + { url = "https://files.pythonhosted.org/packages/78/f9/b6831508960d559581c448532ba4df312217072975486dbf2b24fcc5b76f/contourpy-1.4.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:875f42444c9cf48d56f724f2637e60d0f73b3b12c9041e1484580a233edf9591", size = 383243, upload-time = "2026-09-11T19:02:58.638Z" }, + { url = "https://files.pythonhosted.org/packages/f2/21/52903825a0ae7bb625e8bd30a09816d4c3c5d6174a469c10a616166cf780/contourpy-1.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f863c6100bf926cf47d13f3cd75f9bb8ebd98aaab230eeb4468b91f98f39a6b3", size = 1357306, upload-time = "2026-09-11T19:03:01.036Z" }, + { url = "https://files.pythonhosted.org/packages/d8/79/d68b1ce8539e4071518fed9523f558398f34dcd078b8927b109c72dad2ef/contourpy-1.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3863ef2e2b13fe93f8c0ebb08ee400cb07153b8b0e91c5acb26e4537f283634f", size = 1427243, upload-time = "2026-09-11T19:03:03.866Z" }, + { url = "https://files.pythonhosted.org/packages/ac/f0/b75a10e9d0616b97a30de277b6dfe83f1879880854c7330337309530eb48/contourpy-1.4.0-cp312-cp312-win32.whl", hash = "sha256:5450f091ac1be0be3ad3a2a3b3f23b5e443e78c670ced4fd347d626f92a28fd2", size = 347345, upload-time = "2026-09-11T19:03:06.192Z" }, + { url = "https://files.pythonhosted.org/packages/50/a9/dab08786bb4d77ef9a046b3c1be923be4e73c5d07d91f5a54e8ea9b09e41/contourpy-1.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:6e697d94e69f499ff6bebb899cae97a58d5d14f0e1fe9568b43a0248d2f9af8c", size = 234083, upload-time = "2026-09-11T19:03:08.122Z" }, + { url = "https://files.pythonhosted.org/packages/47/b9/3ba509755a970dbde5948e7142ac21f266be72f38017cc4087a05fdceee1/contourpy-1.4.0-cp312-cp312-win_arm64.whl", hash = "sha256:0c7a4c2716a4e98342221954416a836cca77c996c14ddbf22b5f01d5d93ca09c", size = 559521, upload-time = "2026-09-11T19:03:10.047Z" }, + { url = "https://files.pythonhosted.org/packages/b7/8b/62a6eacea08ea0b6ab0159a7783df7ed421ff9c1ff58fef7c31f58fa5e52/contourpy-1.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e21d1d4a9db5b3a793649c7ab0ddb4697f2818929eec871a7b9c45fce7b2a1ea", size = 297330, upload-time = "2026-09-11T19:03:11.809Z" }, + { url = "https://files.pythonhosted.org/packages/3f/2f/103cdc5b7077cd569989d3ddb99ee3d4e96ee31bde8df2a6e426b2dc6195/contourpy-1.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:196759a3e4db60e1546167e361090ebb6d199aa3aafc9e34ea17a5ac3b23e814", size = 285037, upload-time = "2026-09-11T19:03:13.781Z" }, + { url = "https://files.pythonhosted.org/packages/bf/25/97001d1fdf940e6f5adfc592d4f5899fff95daf7dceead3988fe09987d2d/contourpy-1.4.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9c0e07c691f3b3321913ed9b8161c50ea5f77fadd006f52f5e755359b0dcbfc5", size = 356675, upload-time = "2026-09-11T19:03:15.374Z" }, + { url = "https://files.pythonhosted.org/packages/a6/5e/9a7241a89e2f74402aefa2569e1349ad2750ff77823c04c788eaaedb7fdd/contourpy-1.4.0-cp313-cp313-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:7f861af508fca2384eef392bc1d8377cfa349b2b854cb11b45d89c75780e2561", size = 406990, upload-time = "2026-09-11T19:03:17.44Z" }, + { url = "https://files.pythonhosted.org/packages/36/81/3a4fbbf6a806eada5453a6d16f6c7d96b9f4b3e57a3127368fb545986b8a/contourpy-1.4.0-cp313-cp313-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a03b32c2e7eda8b17757c022162c13c86f5c3d6f937dddf9ba3c3ff7b513953b", size = 407271, upload-time = "2026-09-11T19:03:19.523Z" }, + { url = "https://files.pythonhosted.org/packages/68/77/8f93ecbde1a4d11dfd460cd19a0c159f5487352e751fa87f5d78cc9db08e/contourpy-1.4.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f1219a8898523cba821085f2da8a1b962cc696325763f09d7f93538ba43b2d70", size = 384707, upload-time = "2026-09-11T19:03:21.208Z" }, + { url = "https://files.pythonhosted.org/packages/05/07/e5cdf94d68961ee464de6b4fedd3d2f666584f59ccd124bb1290597122ab/contourpy-1.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:20da2f86bfaed60dbba729fe738c8241b1dd22b6cf7e8cbbf30df290bd04ba28", size = 1356741, upload-time = "2026-09-11T19:03:23.621Z" }, + { url = "https://files.pythonhosted.org/packages/fd/8a/2301d07accb257ac08daeb631875fada06fedd019c20ff7b00ee07e9d211/contourpy-1.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6ced1670fafee703b8277ab1645072a226e74f167166eae146fb743916119b67", size = 1426793, upload-time = "2026-09-11T19:03:25.955Z" }, + { url = "https://files.pythonhosted.org/packages/7d/5d/a62648f06259d15c139b14eb8cf3c58fe53cb970a55f2bb77d1070e80a41/contourpy-1.4.0-cp313-cp313-pyemscripten_2025_0_wasm32.whl", hash = "sha256:abd0f7e51ecc52bf8c95713bd80b1c17c516a71fa391c54475308a4377903c2b", size = 117961, upload-time = "2026-09-11T19:03:27.713Z" }, + { url = "https://files.pythonhosted.org/packages/71/31/c5b7771ba6982f319ec90c0cf5c425b36891adfeee2d9f667f90b2d0c166/contourpy-1.4.0-cp313-cp313-win32.whl", hash = "sha256:510f7d93d94cf6ebf4e2cd0640bea16ab8affac7547230175b6745b596ce0599", size = 347438, upload-time = "2026-09-11T19:03:29.829Z" }, + { url = "https://files.pythonhosted.org/packages/68/c1/a59df0754bf83a6f3e153cc19d550a5b01f607e389b1c4d57f436f9139e0/contourpy-1.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:6507a016976a75a15aee47809a34605de6244ccc056e6164bf9fb14b27eecad4", size = 234084, upload-time = "2026-09-11T19:03:31.657Z" }, + { url = "https://files.pythonhosted.org/packages/41/48/97224f5decb1efa5a610f912195deb45321f73ec9b9dac485cd6fe2d5a6a/contourpy-1.4.0-cp313-cp313-win_arm64.whl", hash = "sha256:423bd5f4b3f11d54a8c597234e513382e3454bb106b8ec7ae32ba4ed63f8d99b", size = 559559, upload-time = "2026-09-11T19:03:33.528Z" }, + { url = "https://files.pythonhosted.org/packages/75/b0/b548628c8dddf6e5e0a981b7fa8e4c008024df09c7d17c6a9e271edfa0b3/contourpy-1.4.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:a3e67bc1a6a4618a1dac7c3053a9ffece5ddfa2046b2670b342cf430bb0b87d1", size = 297354, upload-time = "2026-09-11T19:03:35.017Z" }, + { url = "https://files.pythonhosted.org/packages/04/5a/513484208742f65af2648c519f0b7ab034616e183c4403538024c136a1ab/contourpy-1.4.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:072a702e2e178f4fcf96f04775d0c059e4c917925abf0d3208ebb6865df3c23d", size = 283729, upload-time = "2026-09-11T19:03:36.818Z" }, + { url = "https://files.pythonhosted.org/packages/35/da/5a6562febc994b2c4bf9d01e57a50458ef8a2051bb3e7b35a00333e0fc26/contourpy-1.4.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:404dbcd9233513dfd1323b66ea593fef90e899f658f6b8a9ed8e93bd0ca669db", size = 357819, upload-time = "2026-09-11T19:03:39.058Z" }, + { url = "https://files.pythonhosted.org/packages/6d/99/7b358ce888aaa426f755daa096c99c59d17c352037344e836f20e5d3b957/contourpy-1.4.0-cp314-cp314-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:61624f6722480aa7e168fd746164e7bfdf48f8ccb6542f1613741200dc37e2b1", size = 407795, upload-time = "2026-09-11T19:03:41.293Z" }, + { url = "https://files.pythonhosted.org/packages/be/02/34d7548adf08c60967435d79d7a90882eacc84f5093435287974c7e99943/contourpy-1.4.0-cp314-cp314-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2e741a39dfc96babe1722561e81351aeec104526c57dbe91c167c1db606c2d55", size = 408552, upload-time = "2026-09-11T19:03:42.728Z" }, + { url = "https://files.pythonhosted.org/packages/cf/8c/9677dad226e5aaac5b823d5b09d881ebc32ff1648af417597649841e516c/contourpy-1.4.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e439ab450c93455feb0218532ded3e946ec7a9b5f459069f122cfa44b89229f6", size = 384850, upload-time = "2026-09-11T19:03:44.402Z" }, + { url = "https://files.pythonhosted.org/packages/08/f5/e3fbeaa489c223629fbb434737cb3de4ecaca9cae4825e77b92490f640f8/contourpy-1.4.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:417be048f7e122cefbe2a34c51a1f2b0410f8eb35796f794d45475ddb7872d9d", size = 1357601, upload-time = "2026-09-11T19:03:46.746Z" }, + { url = "https://files.pythonhosted.org/packages/88/be/55fec293d342c222ed58a5d4056df4362e192af2e59527a3d5d822de8828/contourpy-1.4.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:43d80072a32299bf945de0a6dd4e034ea0162e832261de2e07a274a5adbba9c9", size = 1427340, upload-time = "2026-09-11T19:03:48.745Z" }, + { url = "https://files.pythonhosted.org/packages/86/40/0faabf453edf59b0e3633381d7ca72c3414fb9b72b5cbb08b06ed792d3e5/contourpy-1.4.0-cp314-cp314-pyemscripten_2026_0_wasm32.whl", hash = "sha256:fa1b787362a3856e63dd2b89449f6c384d55ee1beb8f94f4bcc871b40f02462c", size = 118355, upload-time = "2026-09-11T19:03:50.047Z" }, + { url = "https://files.pythonhosted.org/packages/38/0c/7ea75aa3559ae8a6805015e15a19c92b6480752ecc92526361e5776e88c5/contourpy-1.4.0-cp314-cp314-win32.whl", hash = "sha256:738c44fa71735a617f36da58e32810512407d283d5d1bb5b1cecb00d7eeba7cf", size = 356977, upload-time = "2026-09-11T19:04:11.401Z" }, + { url = "https://files.pythonhosted.org/packages/15/41/3df8cc14bb572c8b447f9dfbc876703f0f2f2896058285b5c87a1d4a638d/contourpy-1.4.0-cp314-cp314-win_amd64.whl", hash = "sha256:181bea01bc742734ae672fa00c717d855dd35e1f029536406538c52e7b0cd73d", size = 240101, upload-time = "2026-09-11T19:04:12.772Z" }, + { url = "https://files.pythonhosted.org/packages/66/01/ee6830a5aa4565662a345172f6f35eeeed625d20f1c9d4ecd35318fe4ade/contourpy-1.4.0-cp314-cp314-win_arm64.whl", hash = "sha256:64039341e2d8804f1a13bda8c69083eab935167bbd7e856cf096241f17d5bd45", size = 576359, upload-time = "2026-09-11T19:04:14.983Z" }, + { url = "https://files.pythonhosted.org/packages/51/af/49ee9c9cf012699e505c1b63c531cc99f19df50f205173092c4d541e3ec7/contourpy-1.4.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:ef47fef9a912c77e3d84b014f701e5a9340f25703e9ed3bcebe37f91fb69dc49", size = 313601, upload-time = "2026-09-11T19:03:51.452Z" }, + { url = "https://files.pythonhosted.org/packages/ad/59/ce411ab2be0f805038626d8f4ca9ce563487ff51ff6c363e7512271564ed/contourpy-1.4.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:96019f059bcb3774acc0104be3360a57b36d33eaaa2e1d7f77c800ca8e07618b", size = 302812, upload-time = "2026-09-11T19:03:53.022Z" }, + { url = "https://files.pythonhosted.org/packages/95/b0/390915f9af14c1e2d3b2a9ad99d85b98df4352346a51e368cbb825f813c3/contourpy-1.4.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ddf5a2596d716fd3793434844caf31abc7a40b1e8718431420c89858268fb909", size = 348996, upload-time = "2026-09-11T19:03:54.594Z" }, + { url = "https://files.pythonhosted.org/packages/c7/85/e0952576d54322f3e9983b1e049a7a31f42ce82c5c29d01821e6dd3780d7/contourpy-1.4.0-cp314-cp314t-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:dd59df9e2fb0aff8bd7fd1adb9f349b7c835245a9d0f18c2f2deeb537190f2b1", size = 400272, upload-time = "2026-09-11T19:03:56.822Z" }, + { url = "https://files.pythonhosted.org/packages/d6/7d/f13543a5e1598e4a4ad01d9d5e2d65f9c09c37660616429913d606c5977d/contourpy-1.4.0-cp314-cp314t-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b7794ea07cab575633daad8d6e963b662053391022294d3aacc1d9ba9ef54114", size = 412895, upload-time = "2026-09-11T19:03:58.487Z" }, + { url = "https://files.pythonhosted.org/packages/c5/a8/6e5eaff53507dfd2dfc428240eecda32453067277d4b3e7ca71210b2d611/contourpy-1.4.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a1c8a74744fa746eeaa12f0f9ed7f8b4add9d8f1b14d95e3b5e133675eac888f", size = 377060, upload-time = "2026-09-11T19:04:00.122Z" }, + { url = "https://files.pythonhosted.org/packages/16/a3/d00e44d35511b3cead5bd794ee672d4eecf30d9de4ceac57a49d6204064f/contourpy-1.4.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:107ec46f7aa1664266d69b1181aadc953d58d39f7d8d648fa5b795d4a060b0de", size = 1345688, upload-time = "2026-09-11T19:04:02.705Z" }, + { url = "https://files.pythonhosted.org/packages/1e/01/1e533b0cae32c8edd63fe40435ec3b29345dab87321afcd28722d7f957d1/contourpy-1.4.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5a4c89c7f38a0d7a94356d74e3391073c4325c4d47ad2fd065c3fe7dbae16c0c", size = 1416140, upload-time = "2026-09-11T19:04:04.77Z" }, + { url = "https://files.pythonhosted.org/packages/6d/0c/4ee66759f00d6a5d6909782f14f441d639fa18a4a43142e334351efc47f8/contourpy-1.4.0-cp314-cp314t-win32.whl", hash = "sha256:912c6afaa106e2f74ba22b30416b77ef7eb94e3bdc5a4df51ab147845dba9b6d", size = 371982, upload-time = "2026-09-11T19:04:06.233Z" }, + { url = "https://files.pythonhosted.org/packages/e6/ac/b3e5324138c3e3741f526663f4f265f4f69dfdf26415a39428940864a5f6/contourpy-1.4.0-cp314-cp314t-win_amd64.whl", hash = "sha256:ef9440f6f8506246269a82734f5ff9e2e4c5e775b3996fc883cc491c5257eca6", size = 262907, upload-time = "2026-09-11T19:04:07.882Z" }, + { url = "https://files.pythonhosted.org/packages/19/37/c9aa45e47819dc15a38fc5c81a2fb987fde55e9d3b991fbde514e3b6b5f5/contourpy-1.4.0-cp314-cp314t-win_arm64.whl", hash = "sha256:fc9feef8f1f001c5b87decadc67c4a5d1eebb62ca39c4763d1237ff62cf2b707", size = 587071, upload-time = "2026-09-11T19:04:09.898Z" }, + { url = "https://files.pythonhosted.org/packages/cc/74/66d4e6fbea3bcb3fd4e5ae21c039ba31b8fc408b35884b4bc09b88016dce/contourpy-1.4.0-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:79b06c60d5e569ce12c5da8f0c51217cdc484386e2349fa717c30fafb56d2871", size = 297358, upload-time = "2026-09-11T19:04:16.718Z" }, + { url = "https://files.pythonhosted.org/packages/2e/8d/8f7f25e71d73f15d7859943189900d2d348e740388c9ef52a0180d284762/contourpy-1.4.0-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:6f963ea9f0d68d2b6a02d861e3c0aae09ae25ba21f243fcf281e9fed468b078d", size = 283732, upload-time = "2026-09-11T19:04:18.087Z" }, + { url = "https://files.pythonhosted.org/packages/f0/90/957549e3b03c407c670e3e191db63f4aef60dab6605bc967af3a806b543e/contourpy-1.4.0-cp315-cp315-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5545ff38229c15d11d822fc6f7415b932da9f4975f53e305b7b96ebfb01f889c", size = 357820, upload-time = "2026-09-11T19:04:20.077Z" }, + { url = "https://files.pythonhosted.org/packages/56/4c/fa8de87d907b41b05d03f4945a51675cd67319650d01b4c927d209ffa6ee/contourpy-1.4.0-cp315-cp315-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:630d32f06cedf37b7f1dd2b6a12e4492826bd477a4c9c7b2e2fee6ce3a2cea76", size = 407804, upload-time = "2026-09-11T19:04:21.781Z" }, + { url = "https://files.pythonhosted.org/packages/04/e7/96bd4f4a4ae285727befbdb4b332d53a2654cc5da4585d2525b47a063e1f/contourpy-1.4.0-cp315-cp315-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:be85d160e7c795113c2a93254dde2fc7e86b375322570eee78b420969426973c", size = 408559, upload-time = "2026-09-11T19:04:23.432Z" }, + { url = "https://files.pythonhosted.org/packages/ae/94/39660e8dc309f96bf7971eb4ec5659f272f84e42b34c9990a96ecce8442c/contourpy-1.4.0-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:018227e134b73090b06f911e773a526c77c9af426be29065500ce096a5accd4c", size = 384861, upload-time = "2026-09-11T19:04:25.198Z" }, + { url = "https://files.pythonhosted.org/packages/ab/7b/411dccbf73d5d19da49bf7735786b3baf4ddb1456412d48ae4d4ab1fc761/contourpy-1.4.0-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:4bffcb2e8cc5c0e837631acab59dd04265fdac376550e7c3e310523877c68cb7", size = 1357612, upload-time = "2026-09-11T19:04:27.614Z" }, + { url = "https://files.pythonhosted.org/packages/a0/39/bf2442130e7d5aae75a4de4504f0c8aca3ef3da3feac3940ee27ca985d83/contourpy-1.4.0-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:cc87f2ffa84a49a77d76cb792f28a48ff3b05a222aa0b2bddbd839ba78e1d5ca", size = 1427345, upload-time = "2026-09-11T19:04:29.646Z" }, + { url = "https://files.pythonhosted.org/packages/96/60/e5d9196dd83ccd7dd103762982b10ef19a4f72e8ef67ae7157699b9be0bb/contourpy-1.4.0-cp315-cp315-pyemscripten_2026_5_wasm32.whl", hash = "sha256:c8be3392b84cf43373a488874dc1ebf46f60784a70977f92586e18019d71c7ed", size = 118157, upload-time = "2026-09-11T19:04:31.091Z" }, + { url = "https://files.pythonhosted.org/packages/1a/b2/ae3d90f08ba2ed82189d93b55ffbd41e559760e89af4f9ef54d51869f41d/contourpy-1.4.0-cp315-cp315-win32.whl", hash = "sha256:618137ec5778fb76d494c9ec854b104a377fddba0d128bef7136cce2c3bf0df8", size = 356982, upload-time = "2026-09-11T19:04:52.913Z" }, + { url = "https://files.pythonhosted.org/packages/02/a0/36648fff407dcf8b8482985d33367ffc0fe90be72383869312cd0bd00a1b/contourpy-1.4.0-cp315-cp315-win_amd64.whl", hash = "sha256:ea09dc704029930cbd097f75cb0cc1db9852adbcf1a151fac7e9559f7bcbfd19", size = 240101, upload-time = "2026-09-11T19:04:54.587Z" }, + { url = "https://files.pythonhosted.org/packages/07/09/49e987a96706b8f877596cee00d558d7880793a833addc6b33f80805e5dc/contourpy-1.4.0-cp315-cp315-win_arm64.whl", hash = "sha256:a5e2bb871b90cd7a52bdee63bf80ef7acb46398d27efc66d7679240016efc5aa", size = 576375, upload-time = "2026-09-11T19:04:56.515Z" }, + { url = "https://files.pythonhosted.org/packages/e3/18/820ba24a070fe2a834af73e52245c501960746f5c1777ebc64ec0c0dec12/contourpy-1.4.0-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:432e89f835cf01f8d2123a130a3126b17ee6e0348e4d62c0973872b30aa873bf", size = 313543, upload-time = "2026-09-11T19:04:32.582Z" }, + { url = "https://files.pythonhosted.org/packages/d3/4c/f61a63d8107e0c1c3fa47d30ce45abad90b2ad48a1a9a4510332db7e0176/contourpy-1.4.0-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:3e0a2392533e5e2abdf277c951047516acc8d2f3c42b2dd9dc34c907c9ebabf2", size = 302702, upload-time = "2026-09-11T19:04:34.257Z" }, + { url = "https://files.pythonhosted.org/packages/9d/93/5af95cb5113ecc6e780ca0c6c79756a2cea8833f971bbae112dd4ad73ded/contourpy-1.4.0-cp315-cp315t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:758e7496cec3195fc28a28945eab3ceef348c47fb95c7afc2eca2f3901209c8c", size = 354370, upload-time = "2026-09-11T19:04:36.158Z" }, + { url = "https://files.pythonhosted.org/packages/47/75/5a9942446647202beb7b4d150891bfcb78fb112c73862484bbe4cc031092/contourpy-1.4.0-cp315-cp315t-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:bee6ff96653e0807cd0f8eaef00174a031e3a2effa5c20f49a5a8d574b05af23", size = 402340, upload-time = "2026-09-11T19:04:37.914Z" }, + { url = "https://files.pythonhosted.org/packages/c3/4f/bfdb0c67775a584f957211936661289789c4d0ec3e988bca2c8c02f8090e/contourpy-1.4.0-cp315-cp315t-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a58b5f130afec61a093d743cdda435cc4047748b6791627e34a68f41ec3a9b07", size = 410721, upload-time = "2026-09-11T19:04:39.925Z" }, + { url = "https://files.pythonhosted.org/packages/65/d3/dddf13d6bb26e145c99debd1f2695018b5f3e24452dd9bfc9904c9d2ec89/contourpy-1.4.0-cp315-cp315t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b9dc493e7924e5aa32d89d0b8e50986280f3d4b284968a792787bd7bcffd3cad", size = 382604, upload-time = "2026-09-11T19:04:41.793Z" }, + { url = "https://files.pythonhosted.org/packages/37/b4/89f0a5f6c6ccd322eae2704c7e933c82a4e594a61773933b4b0a18646866/contourpy-1.4.0-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:c927ec747633e68c9920bcaad48b0bcefe648812b822f18c34e2d0e2270a3d2a", size = 1354996, upload-time = "2026-09-11T19:04:43.856Z" }, + { url = "https://files.pythonhosted.org/packages/5d/29/fc91cc1ac6f3b591a269f4357b656d6ed0c39eb17c148f41f6da2f9729b9/contourpy-1.4.0-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:80c7fc8e7ac217777ce7ba2db3cf8478652b5a4b335283111012ff9eaac9d842", size = 1425030, upload-time = "2026-09-11T19:04:45.981Z" }, + { url = "https://files.pythonhosted.org/packages/d8/b8/bb129f524210c5d3eb8616876e02af280fba8b5554e0ac1afad80b51e06b/contourpy-1.4.0-cp315-cp315t-win32.whl", hash = "sha256:90feb8da006803a95ba573fddc9536357d0c3faddc3a4c9e22816ca49af52878", size = 371854, upload-time = "2026-09-11T19:04:48.106Z" }, + { url = "https://files.pythonhosted.org/packages/d8/b1/bc774d9d200cfc4f073bba78b1bb1cb3b55bf1c8c345eae41fc2db510459/contourpy-1.4.0-cp315-cp315t-win_amd64.whl", hash = "sha256:de503609fdb71f597634ca64fb4bd2f13d27c97f140e912b1e8ed93544840df0", size = 262450, upload-time = "2026-09-11T19:04:49.502Z" }, + { url = "https://files.pythonhosted.org/packages/54/bf/eb4ff492e1c3d027617b5a20e4e6d63a035b41b8cf77a95950159556a3a5/contourpy-1.4.0-cp315-cp315t-win_arm64.whl", hash = "sha256:78ed5c5f962b3e156109f0531b174a65ba80d13cc681a70227b12524c162e184", size = 587064, upload-time = "2026-09-11T19:04:51.148Z" }, ] [[package]] name = "cycler" version = "0.12.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a9/95/a3dbbb5028f35eafb79008e7522a75244477d2838f38cbb722248dabc2a8/cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c", size = 7615 } +sdist = { url = "https://files.pythonhosted.org/packages/a9/95/a3dbbb5028f35eafb79008e7522a75244477d2838f38cbb722248dabc2a8/cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c", size = 7615, upload-time = "2023-10-07T05:32:18.335Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30", size = 8321 }, + { url = "https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30", size = 8321, upload-time = "2023-10-07T05:32:16.783Z" }, ] [[package]] name = "dask" -version = "2026.3.0" +version = "2026.8.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "click" }, @@ -580,9 +631,9 @@ dependencies = [ { name = "pyyaml" }, { name = "toolz" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d7/2a/5d8cc1579590af86576dde890254440e478c7174b93a02095ecfc2e6ba38/dask-2026.3.0.tar.gz", hash = "sha256:f7d96c8274e8a900d217c1ff6ea8d1bbf0b4c2c21e74a409644498d925eb8f85", size = 11000710 } +sdist = { url = "https://files.pythonhosted.org/packages/33/a7/6b3c7ac32b642fbbe0821111654e0bd8cfbe88f68560bcf23cc78ab35c71/dask-2026.8.0.tar.gz", hash = "sha256:8a94c37b5de6d869343340dc26c3c3acca7ec48a3abdabe00ea3abb1125884d5", size = 11561752, upload-time = "2026-08-24T19:21:25.906Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/4a/f3/00bb1e867fba351e2d784170955713bee200c43ea306c59f30bd7e748192/dask-2026.3.0-py3-none-any.whl", hash = "sha256:be614b9242b0b38288060fb2d7696125946469c98a1c30e174883fd199e0428d", size = 1485630 }, + { url = "https://files.pythonhosted.org/packages/f8/3a/4fc99e788bcfa1b3b3f21abf57da45898d807d007e7f6fd1c7300904eb70/dask-2026.8.0-py3-none-any.whl", hash = "sha256:ccc0c83a189b0398602435189771d28dad7b5773b6089bb8dce14ae732dd782c", size = 1492182, upload-time = "2026-08-24T19:21:23.997Z" }, ] [package.optional-dependencies] @@ -598,51 +649,46 @@ dependencies = [ { name = "dask" }, { name = "distributed" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/32/2a/751bb5ba28533476b1c667eac158e5aa1840c416fd61d425328ef48a894a/dask_jobqueue-0.9.0.tar.gz", hash = "sha256:494ef64b7bb3848c7d72ed334c288030caca6a09dca54cfaa3f395f4ba7f5c47", size = 56475 } +sdist = { url = "https://files.pythonhosted.org/packages/32/2a/751bb5ba28533476b1c667eac158e5aa1840c416fd61d425328ef48a894a/dask_jobqueue-0.9.0.tar.gz", hash = "sha256:494ef64b7bb3848c7d72ed334c288030caca6a09dca54cfaa3f395f4ba7f5c47", size = 56475, upload-time = "2024-08-22T09:25:21.56Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/57/77/606f138bf70b14865842b3ec9a58dc1ba97153f466e5876fe4ced980f91f/dask_jobqueue-0.9.0-py2.py3-none-any.whl", hash = "sha256:253dfc4f0b8722201a08e05b841859dfeea1f6698ff21eff0d9370e5aa8ae20f", size = 52037 }, + { url = "https://files.pythonhosted.org/packages/57/77/606f138bf70b14865842b3ec9a58dc1ba97153f466e5876fe4ced980f91f/dask_jobqueue-0.9.0-py2.py3-none-any.whl", hash = "sha256:253dfc4f0b8722201a08e05b841859dfeea1f6698ff21eff0d9370e5aa8ae20f", size = 52037, upload-time = "2024-08-22T09:25:20.106Z" }, ] [[package]] name = "debugpy" -version = "1.8.21" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f2/aa/12037145b7a56eaa5b29b41872f7a21b538e807e13f32c4d3c46e59be084/debugpy-1.8.21.tar.gz", hash = "sha256:a3c53278e84c94e11bd87c53970ec391d1a67396c8b22609fcac576520e611a6", size = 1697577 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a2/df/bf625547431a9cadc9f4cbfeda38866e2b17f6aed147b625377e87834449/debugpy-1.8.21-cp312-cp312-macosx_15_0_universal2.whl", hash = "sha256:9f96713896f39c3dff0ee841f47320c3f2983d33c341e009361bb0ebc79adc4e", size = 2483609 }, - { url = "https://files.pythonhosted.org/packages/bf/09/59324b903599031ff9faaec1758292409f6561a0ec2492fe4b703327705a/debugpy-1.8.21-cp312-cp312-manylinux_2_34_x86_64.whl", hash = "sha256:c193d474f0a211191f2b4449d2d06157c689013035bd952f3b617e0ef422b176", size = 3968900 }, - { url = "https://files.pythonhosted.org/packages/14/cd/27f65b805d7fe005c44e1a36b9183ecdfbcdbf9d3e721a5115d461ecc7ee/debugpy-1.8.21-cp312-cp312-win32.whl", hash = "sha256:4743373c1cac7f9e74a1b9915bf1dbe0e900eca657ffb170ae07ac8363205ae9", size = 5336340 }, - { url = "https://files.pythonhosted.org/packages/77/1d/c84e30c0c674184948b66f076ab271c01d940618a2824c23cd035a27bc20/debugpy-1.8.21-cp312-cp312-win_amd64.whl", hash = "sha256:bd7ba9dd3daa7c2f942c6ca8d4695a16bf9ac16b63615261c7982bc74f7ed20c", size = 5374751 }, - { url = "https://files.pythonhosted.org/packages/77/6b/d817e1f8cc77aa055d37fba092e0febfdff40fe652d8d53d4cd7a86ad98d/debugpy-1.8.21-cp313-cp313-macosx_15_0_universal2.whl", hash = "sha256:13678151fc401e2d68c9880b91e28714f797d40422994572b24560ef80910a88", size = 2477398 }, - { url = "https://files.pythonhosted.org/packages/48/57/412421516afc3055fa577516f00beec3d663f9b0ab330639547ae6c57720/debugpy-1.8.21-cp313-cp313-manylinux_2_34_x86_64.whl", hash = "sha256:ecbd158386c31ffe71d46f72d44d56e66331ab9b16cad649156d514368f23ab2", size = 3962096 }, - { url = "https://files.pythonhosted.org/packages/c1/62/2c616337cf6ba7b07ebbc97f02c6c945a8e2f76b365e33ee809c32ee36d1/debugpy-1.8.21-cp313-cp313-win32.whl", hash = "sha256:2c2ae706dec41d99a9ca1f7ebc987a83e65578363be6f6b3ac9067504917fae1", size = 5336288 }, - { url = "https://files.pythonhosted.org/packages/f8/99/9175103392f84c4b1bf7622888cdc68da07f0ff7d9e581266428f6776033/debugpy-1.8.21-cp313-cp313-win_amd64.whl", hash = "sha256:aa648733047443eb1d07682c4ef287d36a54507b643ffdf38b09a3ef002c72a0", size = 5376567 }, - { url = "https://files.pythonhosted.org/packages/ce/3d/f4bbb323a548bfab2af3d6b4ffd9bf22636e55956a1285d317a1de643aad/debugpy-1.8.21-cp314-cp314-macosx_15_0_universal2.whl", hash = "sha256:9bb2a685287a2ac9b181cde89edcec64845cb51de7faaa75badb9a698bc24782", size = 2477209 }, - { url = "https://files.pythonhosted.org/packages/8c/2d/6e7ec524984a1702777868de49a4c53202bddac2a432a76a093469587750/debugpy-1.8.21-cp314-cp314-manylinux_2_34_x86_64.whl", hash = "sha256:3d6922439bf33fd38a3e2c447869ebc7b97da5cd3d329ff1ef9bc06c4903437e", size = 3927115 }, - { url = "https://files.pythonhosted.org/packages/97/47/d1aa6d64005a98a9144647d99306b419396f9ad7bf1d73c119e17a81fb4d/debugpy-1.8.21-cp314-cp314-win32.whl", hash = "sha256:15d4963bd5ffa48f0da0947fd06757fa7621945048a14ad7705431566d3c0e7c", size = 5336724 }, - { url = "https://files.pythonhosted.org/packages/5f/67/b905b90d163af11878c1af8abafa4a25206335e112e284e413454543a6da/debugpy-1.8.21-cp314-cp314-win_amd64.whl", hash = "sha256:fe0744a12353406de0ae8ccff0d0a4a666f00801a3db8fd04e7a5f761cd520e8", size = 5373803 }, - { url = "https://files.pythonhosted.org/packages/95/51/67e7cf11a53e40694f720457d5b3a1cdaaa3d5a9a633e482f225456b93ff/debugpy-1.8.21-py2.py3-none-any.whl", hash = "sha256:b1e37d333663c8851516a47364ef473da127f9caebe4417e6df6f5825a7e9a92", size = 5352888 }, -] - -[[package]] -name = "decorator" -version = "5.3.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/60/8b/32f9823da46cde7df2087faa08cd98d01b908f8dcab982cdba9c84e85355/decorator-5.3.1.tar.gz", hash = "sha256:4cbcdd55a6efadb9dbea26b858f4fb3264567b52d69ca0d25b721b553f60ea82", size = 58084 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/05/7f/798705f5296a58ca505d600456748d1be48078eac8a7050d8a98bc9edb89/decorator-5.3.1-py3-none-any.whl", hash = "sha256:f47fe6fdbd2edd623ecfe36875d37aba411624e2670dd395dddae1358689bb3c", size = 10365 }, +version = "1.8.22" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/44/9d/3cb6693342acf96802dba89934a5b8da43c201d764ebd1f2c0514a3d42bd/debugpy-1.8.22.tar.gz", hash = "sha256:e489c7268e1c7b41e13b438d9c533d2a7af73fb59bf8cd30fead8286c1c39c4e", size = 1710877, upload-time = "2026-09-15T21:44:02.578Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/73/21/5c7f5c66eaeee57c9dadb0bbff22efddc8d99cdbd3d036c806175f1828cc/debugpy-1.8.22-cp312-cp312-macosx_15_0_universal2.whl", hash = "sha256:4ad076f4f66cb8acb79e4384d48b1ea60a0b1957aa0b1112d4887ea3a4df60e0", size = 2499375, upload-time = "2026-09-15T21:44:18.478Z" }, + { url = "https://files.pythonhosted.org/packages/7e/ec/7389798843643ea5bc6a08480ba1b855377c70e2ed90189c0a03594e401e/debugpy-1.8.22-cp312-cp312-manylinux_2_34_x86_64.whl", hash = "sha256:8a697acec45dbc70d17fb5d9f4f61989fc294d273c69de487fd10cb35fdd75eb", size = 4000941, upload-time = "2026-09-15T21:44:20.245Z" }, + { url = "https://files.pythonhosted.org/packages/20/f4/64ce7a2499550929e08654360b270409eeda3e321b7c27027d9c919aa36b/debugpy-1.8.22-cp312-cp312-win32.whl", hash = "sha256:12bc7f368182b517cf26c76a2393fff65354e365fa1552b6241e66edff17997b", size = 5359040, upload-time = "2026-09-15T21:44:22.218Z" }, + { url = "https://files.pythonhosted.org/packages/4b/fe/e7d3b72874cdd327bda295d1995a01e426857ae9cbaaba74fd997bc3afbc/debugpy-1.8.22-cp312-cp312-win_amd64.whl", hash = "sha256:371a4ba4a5975eb958393903f3254cf983da7b1c7c178b3f987ee427f42515e3", size = 5398304, upload-time = "2026-09-15T21:44:24.119Z" }, + { url = "https://files.pythonhosted.org/packages/6b/f4/fee6d40f5865aa84e1100c9df1a0f2cf8991776b61f11f433ff277df4415/debugpy-1.8.22-cp313-cp313-macosx_15_0_universal2.whl", hash = "sha256:c21dd7e1ec22556bb41dc3bf6b86c603e440ec889c4acb27d7206354b2106c54", size = 2493531, upload-time = "2026-09-15T21:44:25.835Z" }, + { url = "https://files.pythonhosted.org/packages/bc/4f/8df91270afbf61fc5ab202951f28451194a7eb093704b26da11cb0ecd308/debugpy-1.8.22-cp313-cp313-manylinux_2_34_x86_64.whl", hash = "sha256:c1ffb9953708b648ecf6acd2e5ad2c002bf68785ed618197dd4463a2a7226f39", size = 3994351, upload-time = "2026-09-15T21:44:27.31Z" }, + { url = "https://files.pythonhosted.org/packages/4f/11/2e34a4f21d6155b0c58003fd6fca9819df7d6fe7d7acd83b146b648a57ee/debugpy-1.8.22-cp313-cp313-win32.whl", hash = "sha256:ba810a66b437e3c43ca0ce0892404f010338286263ca8e5108442d76a9485337", size = 5359071, upload-time = "2026-09-15T21:44:29.064Z" }, + { url = "https://files.pythonhosted.org/packages/d0/f5/c2b3e8260388d7b76bc4e5a3a29648a0ca47dca6a2721d6549ff2d944eee/debugpy-1.8.22-cp313-cp313-win_amd64.whl", hash = "sha256:f49b1d6cecf326b63c06d7f517e4a6642777f758c58cb799e7bc5a6dd74721c2", size = 5400362, upload-time = "2026-09-15T21:44:30.857Z" }, + { url = "https://files.pythonhosted.org/packages/ea/95/d97240bb68b86db8d0a07602be068aae9e50f17063d696a4c6f619975311/debugpy-1.8.22-cp314-cp314-macosx_15_0_universal2.whl", hash = "sha256:e6744ac1850c73c2ba7b29a126cf9ab74efd1831190720e8fee17ef5389c8f5d", size = 2493148, upload-time = "2026-09-15T21:44:32.518Z" }, + { url = "https://files.pythonhosted.org/packages/70/9e/994fe1fb23dd4a5a8d059a0dc95da4b0821907200a61c2d5a4fdc21b6cf8/debugpy-1.8.22-cp314-cp314-manylinux_2_34_x86_64.whl", hash = "sha256:0c1104233340196e5cbf5514e7dfdbb98968e730cfd7fdd6f3d72a082be838a9", size = 3961025, upload-time = "2026-09-15T21:44:34.387Z" }, + { url = "https://files.pythonhosted.org/packages/37/e0/66319918883cf6dd6dea3805210c3cafd9e65dfaa6f8b852482cff10a026/debugpy-1.8.22-cp314-cp314-win32.whl", hash = "sha256:feea785c7bbeb8cfd5b01a63f9061c899dc468c8be81671141a29305774fa294", size = 5359408, upload-time = "2026-09-15T21:44:36.128Z" }, + { url = "https://files.pythonhosted.org/packages/94/53/5b4d91f7fffb9393ac907133201d1da0c070d57e463ee8e2ec1db3cb63b6/debugpy-1.8.22-cp314-cp314-win_amd64.whl", hash = "sha256:d593a330297332ec435f3965c448b6d500e03f33675cf2063178bc76377a788e", size = 5397429, upload-time = "2026-09-15T21:44:38.429Z" }, + { url = "https://files.pythonhosted.org/packages/24/71/580df4aed96c9b23c9cbb049907d8ac1347050afdb8f450df20649d51578/debugpy-1.8.22-cp315-cp315-macosx_15_0_universal2.whl", hash = "sha256:a9eca6ab09a61534e923064400081e016f7e1d8430cc6e8b7a9cecd2f59e2b07", size = 2493380, upload-time = "2026-09-15T21:44:40.074Z" }, + { url = "https://files.pythonhosted.org/packages/b0/10/a323945b0966e560c40fe48470d2847bfc7692a8f550d7086e9a28f5b623/debugpy-1.8.22-cp315-cp315-manylinux_2_34_x86_64.whl", hash = "sha256:b7dbde1fb822d100802d505b2aed6d0813b1a0a2015d495cb8798b2215d5d1e5", size = 3975456, upload-time = "2026-09-15T21:44:41.623Z" }, + { url = "https://files.pythonhosted.org/packages/ef/f9/4383635281999c3eaa44bf327de523ba42240b35eb87c1130adac4a829c6/debugpy-1.8.22-cp315-cp315-win32.whl", hash = "sha256:225d063f81708c2546999e7edfac0198b2d5c2f144797dc64858f867948633e0", size = 5359469, upload-time = "2026-09-15T21:44:43.234Z" }, + { url = "https://files.pythonhosted.org/packages/7b/14/4fe9f46a9c825c8cbc6dc4aebc2a885b0bceb37ce2a37699c170482e7a40/debugpy-1.8.22-cp315-cp315-win_amd64.whl", hash = "sha256:b17a4896520f1c6da09ce76ec8215df0b85b0b6f3617526a4c65c2315340875a", size = 5397869, upload-time = "2026-09-15T21:44:44.783Z" }, + { url = "https://files.pythonhosted.org/packages/56/3d/c7dc9f35bc9e22cdb53679f844bee40fd5cff871862f60595869a433400d/debugpy-1.8.22-py2.py3-none-any.whl", hash = "sha256:a9e9d3550e15ca479c59333e90845029190531f0cacfedab3b815a57bd913947", size = 5374857, upload-time = "2026-09-15T21:44:54.454Z" }, ] [[package]] name = "deprecated" -version = "1.3.1" +version = "3.0.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "wrapt" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/49/85/12f0a49a7c4ffb70572b6c2ef13c90c88fd190debda93b23f026b25f9634/deprecated-1.3.1.tar.gz", hash = "sha256:b1b50e0ff0c1fddaa5708a2c6b0a6588bb09b892825ab2b214ac9ea9d92a5223", size = 2932523 } +sdist = { url = "https://files.pythonhosted.org/packages/f7/9c/16649913bf14c73e0a9453782e148362ff2657067deff6aa9c7ebcddcc31/deprecated-3.0.0.tar.gz", hash = "sha256:16850204d3a1e6bb0acd06bff48d96e8b0a0d25d1c52f71705405a0f4894192d", size = 166912, upload-time = "2026-09-26T13:58:10.675Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/84/d0/205d54408c08b13550c733c4b85429e7ead111c7f0014309637425520a9a/deprecated-1.3.1-py2.py3-none-any.whl", hash = "sha256:597bfef186b6f60181535a29fbe44865ce137a5079f295b479886c82729d5f3f", size = 11298 }, + { url = "https://files.pythonhosted.org/packages/83/ae/676feae8e4644a6d7169951a97f61c56f416c73f67bf1761f2461d75cc81/deprecated-3.0.0-py3-none-any.whl", hash = "sha256:58204cf4a7f6270d547af5c278ee7a6bb56045a4b3d8441a1cd11660f41b7939", size = 21912, upload-time = "2026-09-26T13:58:09.458Z" }, ] [[package]] @@ -652,14 +698,14 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "packaging" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/5a/d3/8ae2869247df154b64c1884d7346d412fed0c49df84db635aab2d1c40e62/deprecation-2.1.0.tar.gz", hash = "sha256:72b3bde64e5d778694b0cf68178aed03d15e15477116add3fb773e581f9518ff", size = 173788 } +sdist = { url = "https://files.pythonhosted.org/packages/5a/d3/8ae2869247df154b64c1884d7346d412fed0c49df84db635aab2d1c40e62/deprecation-2.1.0.tar.gz", hash = "sha256:72b3bde64e5d778694b0cf68178aed03d15e15477116add3fb773e581f9518ff", size = 173788, upload-time = "2020-04-20T14:23:38.738Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/02/c3/253a89ee03fc9b9682f1541728eb66db7db22148cd94f89ab22528cd1e1b/deprecation-2.1.0-py2.py3-none-any.whl", hash = "sha256:a10811591210e1fb0e768a8c25517cabeabcba6f0bf96564f8ff45189f90b14a", size = 11178 }, + { url = "https://files.pythonhosted.org/packages/02/c3/253a89ee03fc9b9682f1541728eb66db7db22148cd94f89ab22528cd1e1b/deprecation-2.1.0-py2.py3-none-any.whl", hash = "sha256:a10811591210e1fb0e768a8c25517cabeabcba6f0bf96564f8ff45189f90b14a", size = 11178, upload-time = "2020-04-20T14:23:36.581Z" }, ] [[package]] name = "distributed" -version = "2026.3.0" +version = "2026.8.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "click" }, @@ -675,72 +721,43 @@ dependencies = [ { name = "tblib" }, { name = "toolz" }, { name = "tornado" }, - { name = "urllib3" }, { name = "zict" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e7/84/3e98a2d61493d201f253743091cbd4f099f502f957a9a33bb9ce5b8d5416/distributed-2026.3.0.tar.gz", hash = "sha256:4a8fc6102fededfbaae45288501276da2297a054d74eb6589f01b087c7f95c26", size = 2103970 } +sdist = { url = "https://files.pythonhosted.org/packages/ff/18/1c98f0a36eccfcce109f054456f38767ac5d4b3fac124dcd5a35b1cd6167/distributed-2026.8.0.tar.gz", hash = "sha256:6f55008ecacf96ba945309fc12e680544764995e27bd63cc5e109afb97d7044d", size = 2465942, upload-time = "2026-08-24T19:36:00.554Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b9/77/2ff7aefc09cf1306a81cd7a46af34f80ebefef81a2e8329b94b58ad813ae/distributed-2026.3.0-py3-none-any.whl", hash = "sha256:52518f4b3e6795e87b442e8f57788ba1ddc750c62d0835669c85927280d38f07", size = 1009769 }, -] - -[[package]] -name = "earthkit-data" -version = "0.20.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "cfgrib" }, - { name = "dask" }, - { name = "deprecation" }, - { name = "earthkit-utils" }, - { name = "eccodes" }, - { name = "entrypoints" }, - { name = "filelock" }, - { name = "jinja2" }, - { name = "jsonschema" }, - { name = "lru-dict" }, - { name = "markdown" }, - { name = "multiurl" }, - { name = "netcdf4" }, - { name = "pandas" }, - { name = "pdbufr" }, - { name = "pyyaml" }, - { name = "tqdm" }, - { name = "xarray" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/52/66/623d201df141f5bb2800d55b6bff0493c7a0d4fd6d1af86ee27c338e4243/earthkit_data-0.20.0.tar.gz", hash = "sha256:17eff8ce863722c016b0d9456d5fe76353dc8c7671ec1091aa7e7189615e80e9", size = 5656819 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b9/d3/a00aeee76005909eaa1f7fcb1e1f2333d9f4b53866666e1bb7f9e9e15148/earthkit_data-0.20.0-py3-none-any.whl", hash = "sha256:e1df4d93354bb5bd30b967ad17d52454b4df4d6a37511fc91f950aebba592056", size = 398525 }, + { url = "https://files.pythonhosted.org/packages/28/d4/017e2d39d797eaa38a52b4459c8bea875d5e0ada335a62aafe98193041a6/distributed-2026.8.0-py3-none-any.whl", hash = "sha256:3bd8882861a2cf497453f28c6b61135fa8ef2bb1d6885ad3b9f27e887e9c0e01", size = 1008640, upload-time = "2026-08-24T19:35:58.622Z" }, ] [[package]] name = "earthkit-meteo" -version = "0.6.2" +version = "1.2.1" source = { registry = "https://pypi.org/simple" } dependencies = [ + { name = "deprecation" }, { name = "earthkit-utils" }, { name = "numpy" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/14/87/162771cba3c4371e054914750164851e32bafe924c674153105789f01c88/earthkit_meteo-0.6.2.tar.gz", hash = "sha256:2823ed56947dd2c9c69aae6fe19153eec393c80392126ab84cc760419d0b952b", size = 370304 } +sdist = { url = "https://files.pythonhosted.org/packages/22/6e/5d236ad510198adccd01779983a3b66f11ab4226b762798d27653869a2a9/earthkit_meteo-1.2.1.tar.gz", hash = "sha256:c546ddfc85df82bfb13d91740b9bf7e6627ffca0e1b2fd7332e0f03dfcabcbfd", size = 3293679, upload-time = "2026-10-15T14:41:17.639Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/86/d3/988c1807b315a71cb4f6e5b2b739b115246083dc678b50fa9ff97c8a417a/earthkit_meteo-0.6.2-py3-none-any.whl", hash = "sha256:7380464a3a62422d4027bcfc20fbd4ee3a7bfc51eb1f89d1a5027f24c7f32a4d", size = 57004 }, + { url = "https://files.pythonhosted.org/packages/f8/f6/3df0ab1ebfa4eed74a6daccd0d86b6d1e5bf8353940452f654f205d0c8f5/earthkit_meteo-1.2.1-py3-none-any.whl", hash = "sha256:04bfcb7702107a54db3411c2a784fc2dd1bc0d6061a072ea0571f33e3aa1d830", size = 186421, upload-time = "2026-10-15T14:41:15.986Z" }, ] [[package]] name = "earthkit-utils" -version = "0.3.0" +version = "1.0.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "array-api-compat" }, { name = "pint" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/82/0b/1a834f5e57294b163aba0713b371810ba28ef5ef73f43ee0cafbeab54e07/earthkit_utils-0.3.0.tar.gz", hash = "sha256:1f49e792683ddd7b40642c41839718d25d101b0f5fbe63a372d0fcd33a7e3cd0", size = 43013 } +sdist = { url = "https://files.pythonhosted.org/packages/d4/c5/411782b6f43af14dd0d5af904f0a40df9bd71bf8b3a2a4099b4bc3383e60/earthkit_utils-1.0.3.tar.gz", hash = "sha256:487c3010279e618c14ce36bf0f231a7ba9262a1fa15dd84144c9331e48674a23", size = 125204, upload-time = "2026-10-15T14:32:03.437Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/eb/cb/0c9f59b0ca2a5ed941b65c52a4a005a7e16511f52fc3965eb45c53565b76/earthkit_utils-0.3.0-py3-none-any.whl", hash = "sha256:167e0385e062800d6c9f2d25a2a3075d7d91b67c3a02af52d772175b2313aa89", size = 35650 }, + { url = "https://files.pythonhosted.org/packages/4c/ab/09d19936401840a34e102452c9839c921806a5c21d6f8142a5de1487c032/earthkit_utils-1.0.3-py3-none-any.whl", hash = "sha256:f77d8ed6c4e22ae96f18c1fa7602bc4c6d87381f3eb145cdac9da4cd475aa210", size = 39654, upload-time = "2026-10-15T14:32:02.08Z" }, ] [[package]] name = "eccodes" -version = "2.47.0" +version = "2.50.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "attrs" }, @@ -748,97 +765,80 @@ dependencies = [ { name = "findlibs" }, { name = "numpy" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/dc/8d/63d8287e912a99a73fa37b9c821883fb8f09a900187a8c917ba72e3743be/eccodes-2.47.0.tar.gz", hash = "sha256:ae9207ef27c67656d068aab97f172abeb85fc3620f56faa22fdac5b1be75de69", size = 2467378 } +sdist = { url = "https://files.pythonhosted.org/packages/d2/f0/2a87bd784a0105f9b245b7e30594a88ec69c58f8dedf57d7f987b2a6dfab/eccodes-2.50.0.tar.gz", hash = "sha256:bbc50d49d1b5a5d754ba1fb7cc49d6cb6bbcb5b0cfc0780ea579d3279a6ce831", size = 2467788, upload-time = "2026-10-15T09:17:09.526Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/31/01/d8bfb2ac2ec4831789a82cc06afc609a599f5f545dc885da1c8671a308e5/eccodes-2.47.0-cp312-cp312-win_amd64.whl", hash = "sha256:7ab3b689fd3caa07451f7bcf07329b2268acdc7434bcedac8b13d1f20d3389c0", size = 7436009 }, - { url = "https://files.pythonhosted.org/packages/d7/ba/4cbca5157e90d90c318b2acae178d38b0c6c6df73b434e6a2b6a8cb23a2b/eccodes-2.47.0-cp313-cp313-win_amd64.whl", hash = "sha256:f5f9b71b6e2cb8c9b8349b88a09791e8fb6d51a4396d7160b3da2a83149a4973", size = 7436001 }, - { url = "https://files.pythonhosted.org/packages/b3/a3/f58ff573ba0f678ff8116686e868afe436627b19b457a2aba62cd463c9ad/eccodes-2.47.0-py3-none-any.whl", hash = "sha256:13d0b28bd58e94e2c303f42415ca0dcc56ab3febf0f52b1fb0f1d4aa5e7db8e1", size = 91567 }, + { url = "https://files.pythonhosted.org/packages/f8/84/8bc4814e181804f61f42efa80009c2395a3441f93001007089190ca29a8a/eccodes-2.50.0-cp312-cp312-win_amd64.whl", hash = "sha256:b05e917fd117ba04bc220e5651158e91ff6f2c961621bea8ce85b00f501e3a87", size = 7556279, upload-time = "2026-10-15T09:16:34.612Z" }, + { url = "https://files.pythonhosted.org/packages/70/89/ec2b996a9a86c28c2b9644f09794f4b08d945db2fa9eb75c7185c806291c/eccodes-2.50.0-cp313-cp313-win_amd64.whl", hash = "sha256:59271289b96669a630dc26e573a310ea5cbb7d41ce45d45da6078ec060b387ec", size = 7556279, upload-time = "2026-10-15T09:16:40.529Z" }, + { url = "https://files.pythonhosted.org/packages/03/b9/da04f4d7fbad46f6e4677164fdb4d9479064f2314c9498f143c69038d786/eccodes-2.50.0-cp314-cp314-win_amd64.whl", hash = "sha256:6309bc2f148dc7eb7766ceea18b1a17b171dbb913f3a1f9dad34d8d3ad7f7c26", size = 7586259, upload-time = "2026-10-15T09:16:36.542Z" }, + { url = "https://files.pythonhosted.org/packages/d6/9f/99be3cacd027cee91063423710a23a9002dd4df52d7d266bd158ecc11801/eccodes-2.50.0-py3-none-any.whl", hash = "sha256:1c391099685092ffba426741315230fbc9deb8b87e93b4330ba84df04144448c", size = 91622, upload-time = "2026-10-15T09:17:08.332Z" }, ] [[package]] name = "eccodeslib" -version = "2.47.1.20" +version = "2.50.0.33" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "eckitlib" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/23/8e/35eea30268c522a328bac685852f5c8122a6499207f68d990e7b0b1218a7/eccodeslib-2.47.1.20-cp312-cp312-macosx_13_0_arm64.whl", hash = "sha256:75e7b099bb2182935eca55104e09f8a5c1f02124608e474f558a645af8693170", size = 8904197 }, - { url = "https://files.pythonhosted.org/packages/c0/a2/31c62d9e9a2b2d7c344c04bfc4a0fa1a8a724d5afa5a0f379a8bad792eb3/eccodeslib-2.47.1.20-cp312-cp312-macosx_13_0_x86_64.whl", hash = "sha256:3c5c5218651e04fa53a955b86975bf9a184baf38c31353d9ff1afb7204228926", size = 8733246 }, - { url = "https://files.pythonhosted.org/packages/23/6b/a5dae7046d8872b1b087e5abf62dacc315d63f531f5212dfdec69c8e1a6f/eccodeslib-2.47.1.20-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:a114ccbbfa9fbec1ce26dce666b8ca73a3af5d51388699053999d511c1ca57e2", size = 9097875 }, - { url = "https://files.pythonhosted.org/packages/ce/86/c3219aa6882a4be70e109f9d85aac350dfb489426c32a433cc3db1658b89/eccodeslib-2.47.1.20-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:f5bb548af96a6a8d0cbca3b0165a8f77ef082d711a675d670cea40d501f0cb84", size = 8989704 }, - { url = "https://files.pythonhosted.org/packages/e6/d5/be95dc969b82fb0dd247f208f72e088c52f0c64a13bb8832bec75e52939f/eccodeslib-2.47.1.20-cp313-cp313-macosx_13_0_arm64.whl", hash = "sha256:caa1f317ef8836e6c2a553bafffa563c9e2d101692648f6fed0abd7f0c758c59", size = 8904200 }, - { url = "https://files.pythonhosted.org/packages/18/99/e41b4a8b883da38be28a377db27167337072a1de0fcd2a89180fc87ecec8/eccodeslib-2.47.1.20-cp313-cp313-macosx_13_0_x86_64.whl", hash = "sha256:6dd3edd578531736eaa64103cbd6768d2ded6b980814f8ce85e4f313301b1e24", size = 8733257 }, - { url = "https://files.pythonhosted.org/packages/24/1d/eccc5fa5efc3c3135f36bfdaf31af242fc6651126764b2341a164d6f1ff6/eccodeslib-2.47.1.20-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:1bc53a6a06561f7b0c94366c3688417206a49cf40fd53893532d4482a341303e", size = 9097874 }, - { url = "https://files.pythonhosted.org/packages/a0/70/420964022ab643e63366d732c80937e39366d593f255c91eee0623edfb09/eccodeslib-2.47.1.20-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:6f8e1c8850df2d601f6df2021638f26eafd1243c578745180e584221b73641d5", size = 8989706 }, - { url = "https://files.pythonhosted.org/packages/ac/ed/0a9e9b8d42f5c3fa90a46329f9cbdab5e65395aad0b9920f6077d85dc37f/eccodeslib-2.47.1.20-cp314-cp314-macosx_13_0_arm64.whl", hash = "sha256:b039b0d0bec9dfbb31ed963c31ac3e76da6f868d21a4ee703b8f6bd6563c6b35", size = 8904210 }, - { url = "https://files.pythonhosted.org/packages/0b/7f/2e33673d417c1aaa2fdce1351c8e4ebfd1449ae166206c8e15a335945a26/eccodeslib-2.47.1.20-cp314-cp314-macosx_13_0_x86_64.whl", hash = "sha256:51dd81e333c2e34b9f8c63af80852900eb032420ad11e188bfab5ede9d015f12", size = 8733256 }, - { url = "https://files.pythonhosted.org/packages/60/a9/d956c6ce65621d83b7ba5c9490782f42bf91ad7c9677921d3c9a952e354a/eccodeslib-2.47.1.20-cp314-cp314-manylinux_2_28_aarch64.whl", hash = "sha256:343eb547492a95dec8400f71779c9c9ada6cd582717c6b564d8cc925aee72948", size = 9097874 }, - { url = "https://files.pythonhosted.org/packages/ef/e6/62d599844084c5ba082c3331c2a799fd53683cebc14997a798f0cebff9fa/eccodeslib-2.47.1.20-cp314-cp314-manylinux_2_28_x86_64.whl", hash = "sha256:8ce2be42776e61459fcaf3938e9cd41c231ba3ef61c067c6785e1c2202cbe800", size = 8989707 }, + { url = "https://files.pythonhosted.org/packages/53/e4/82224fb48965fdbf54a31e9413ae12d0b41aacf732297c93ff0029c09fb6/eccodeslib-2.50.0.33-cp312-cp312-macosx_15_0_arm64.whl", hash = "sha256:7112c65beb2fa3e92b8c67a34682b446804805af5cbba305f0e890443540e8ba", size = 9058278, upload-time = "2026-10-16T18:44:03.765Z" }, + { url = "https://files.pythonhosted.org/packages/8d/3c/ecd49b2dfdf808020a19dbefb0c7fcda841b19a2a72771ddbb7f1333ea77/eccodeslib-2.50.0.33-cp312-cp312-macosx_15_0_x86_64.whl", hash = "sha256:e928e2ffa6b333c7490bc673b0439ec8126ff6420157939387bfe4a16db96071", size = 8837436, upload-time = "2026-10-16T19:29:56.212Z" }, + { url = "https://files.pythonhosted.org/packages/56/dc/447fe4dcd5ec42da4b7b32b3c4d1882958f580c2c90e14d7757f9c3ce25b/eccodeslib-2.50.0.33-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:1fbd1822f873357f2e43c5d53e4d6a98d9a3b951cb7e87dd5b510fdf4a1f7f5f", size = 9201914, upload-time = "2026-10-16T18:55:43.3Z" }, + { url = "https://files.pythonhosted.org/packages/1c/58/1135a9a12a9348312abcbc59f3b945d1285828b593edfceda9a5013b13f2/eccodeslib-2.50.0.33-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:2882ae4af133f62632e73bb6e3d4b63fd45967cbc0e2999998c8217209a8a199", size = 9018934, upload-time = "2026-10-16T18:53:20.266Z" }, + { url = "https://files.pythonhosted.org/packages/8b/e8/ba1a35d2b94859690a5f68b01495ff61743152fcea51bda73445c74b798b/eccodeslib-2.50.0.33-cp313-cp313-macosx_15_0_arm64.whl", hash = "sha256:d37f283de71ebe3575a24045ee27d1c3687fadb47fe07014b7afaff3bca8b5ae", size = 9058278, upload-time = "2026-10-16T18:54:27.878Z" }, + { url = "https://files.pythonhosted.org/packages/01/22/a52618ee222b7f007cee310497de07914eaa0508b00f8fa2894fd873c0ec/eccodeslib-2.50.0.33-cp313-cp313-macosx_15_0_x86_64.whl", hash = "sha256:6cf93e3d056ec7a34ac501e84311c17f1cfeec7b8865b77b498987c9329aee24", size = 8837427, upload-time = "2026-10-16T19:01:11.57Z" }, + { url = "https://files.pythonhosted.org/packages/fd/7f/98d525daa1e868c5b29828f91bb9790f30a75c1585e367b7e05097d387ea/eccodeslib-2.50.0.33-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:6a55b0c9584c8347650fcceb3157943f3853e3e396184b578d51865630fc41b1", size = 9201913, upload-time = "2026-10-16T18:54:01.885Z" }, + { url = "https://files.pythonhosted.org/packages/80/2b/14f16fbf2c2679a307b5db118c629b45674b52bc18ce4fd0a4e5d4b89cdd/eccodeslib-2.50.0.33-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:e6e293f8d25d38e283e0b681ce185c798618b8b81439e7b1e77a51df965a3cd1", size = 9018938, upload-time = "2026-10-16T18:51:10.167Z" }, + { url = "https://files.pythonhosted.org/packages/16/37/119c2b671bf49c78aa909ccca5f44465ea7ed82543cbbace6978a2f46c3f/eccodeslib-2.50.0.33-cp314-cp314-macosx_15_0_arm64.whl", hash = "sha256:8b7ed0b6c509553d3c0b7e5015aefa07e3218977e381809d2c73c5226ba50bfa", size = 9058289, upload-time = "2026-10-16T18:55:10.189Z" }, + { url = "https://files.pythonhosted.org/packages/f7/e9/fb0f6794ecf2cac88b6295e5592288b51c7141c6b1c7035f61bb453565a8/eccodeslib-2.50.0.33-cp314-cp314-macosx_15_0_x86_64.whl", hash = "sha256:520116b8168a35c60ec85145d20e92c8ce5e0c2e6bef0494e51c546a01da35c9", size = 8837359, upload-time = "2026-10-16T19:09:06.525Z" }, + { url = "https://files.pythonhosted.org/packages/6a/81/a6eccecfee3a92147890e21fe31584e1248e7470f2961ec6d61e9c2121c1/eccodeslib-2.50.0.33-cp314-cp314-manylinux_2_28_aarch64.whl", hash = "sha256:c329b8637a5cc0b911c55a2e432c2cb7286157c241628e6534b7711323b3bafb", size = 9201912, upload-time = "2026-10-16T18:51:40.228Z" }, + { url = "https://files.pythonhosted.org/packages/87/73/448e398c92fb6947de86f4e79f7d0ce0fc2963be1d330b3546f7743d5838/eccodeslib-2.50.0.33-cp314-cp314-manylinux_2_28_x86_64.whl", hash = "sha256:ee500b2244ab3ad6a924051f9ff71f481358dab8fc9f558f3efb4f90f4072b96", size = 9018939, upload-time = "2026-10-16T18:52:15.761Z" }, ] [[package]] name = "eckitlib" -version = "2.0.7.20" +version = "2.5.0.33" source = { registry = "https://pypi.org/simple" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2e/b1/3c9218536cddd278ab32304eb7a28f87a64079482219089e3c3d8ba685c2/eckitlib-2.0.7.20-cp312-cp312-macosx_13_0_arm64.whl", hash = "sha256:892795971d7b20ea0c20fac93b2bdfa95bb3742dfecbea1e77c6bd8e8e3fdfe4", size = 2480048 }, - { url = "https://files.pythonhosted.org/packages/a6/9d/9c49a96deb01044c05e3d9a207a40536f4676df27d410e0b70ba3e1691a7/eckitlib-2.0.7.20-cp312-cp312-macosx_13_0_x86_64.whl", hash = "sha256:88701ac42e017ac2bec597e9184f3d8f2be7787a75fde9e3872c7593336d0e47", size = 2610839 }, - { url = "https://files.pythonhosted.org/packages/c3/a9/b7531fca45490a74b7280242b01691a29af7c6803133c17c648aa98914b9/eckitlib-2.0.7.20-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ce605756403ca20ad2633115f96469d15220f799395af73acb3edc255c208bd7", size = 7040524 }, - { url = "https://files.pythonhosted.org/packages/9f/9f/588dcfce004b5fe77de6bc90d23380e8958f703a0082ae51192690362c14/eckitlib-2.0.7.20-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:96930b3dfabcbe515a13a3f92d83a7e0d2dc369ed2c3579e2557a0ff8d5be01c", size = 7169834 }, - { url = "https://files.pythonhosted.org/packages/74/db/4a0c3d29c8f4ea4cbe3356e14751043ed361720374e5d0fa320b0a65ba25/eckitlib-2.0.7.20-cp313-cp313-macosx_13_0_arm64.whl", hash = "sha256:36c2b16f9bd18a526a044b58de12e65ea1271150f1b057f067a280b528eb0e7b", size = 2480048 }, - { url = "https://files.pythonhosted.org/packages/94/c7/8319f175796ba6366eb7388053eb43e155e6952018fe37ef3664db2dac3d/eckitlib-2.0.7.20-cp313-cp313-macosx_13_0_x86_64.whl", hash = "sha256:03f7e5c06195a7163e33e92193c83099cf8eff812a7c344a551d7f506fe418a1", size = 2610840 }, - { url = "https://files.pythonhosted.org/packages/2f/f6/cafad4a774cb7eab1a935b56a62b66becefa0b8e219ea7552b27ea25a877/eckitlib-2.0.7.20-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:138265875c024fa5e1a34c5abdd5ef6dc4edc58e8473ba5793159f29f436965c", size = 7040517 }, - { url = "https://files.pythonhosted.org/packages/5f/0b/1f3e5b0562d880aa0be0198869cacbec86c01460c81f4fc9102fbfb4aaff/eckitlib-2.0.7.20-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e2ee28377ad51642f81de4a60e490016e026fb3558644b6547abf4e2a060c09d", size = 7169842 }, - { url = "https://files.pythonhosted.org/packages/bf/fb/9b751ced57d7f885accadc8b85735fdbd39c6197883d374b37d2bfebe079/eckitlib-2.0.7.20-cp314-cp314-macosx_13_0_arm64.whl", hash = "sha256:2bc8e076fad283440a704b35e76929067086b1a9917e135380139be2ff47b15d", size = 2480048 }, - { url = "https://files.pythonhosted.org/packages/63/21/bfc4c055a8ca36cf382162f7bcbe9779ea1cbbe19741194fe655b29480d9/eckitlib-2.0.7.20-cp314-cp314-macosx_13_0_x86_64.whl", hash = "sha256:0258efd52968f671fea760b1eeaa6519436a4224af84bb26f6931e4a27455a54", size = 2610841 }, - { url = "https://files.pythonhosted.org/packages/ea/12/d4b95372adc27b49eb0a29a52d0daa3eaead2138350d31e2115375d2f93c/eckitlib-2.0.7.20-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4023aaad9a3728926f4414d155e9f77cc575c3296a647a961d3b413ca6e23e9c", size = 7040518 }, - { url = "https://files.pythonhosted.org/packages/85/fc/af19e70aed4c29d3ecddd14f1693c00674866b3352b40015a0d768464242/eckitlib-2.0.7.20-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:065b26fb680f31274717c07189dabab927141be652a33e783c714c93a17b72da", size = 7169836 }, -] - -[[package]] -name = "entrypoints" -version = "0.4" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ea/8d/a7121ffe5f402dc015277d2d31eb82d2187334503a011c18f2e78ecbb9b2/entrypoints-0.4.tar.gz", hash = "sha256:b706eddaa9218a19ebcd67b56818f05bb27589b1ca9e8d797b74affad4ccacd4", size = 13974 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/35/a8/365059bbcd4572cbc41de17fd5b682be5868b218c3c5479071865cab9078/entrypoints-0.4-py3-none-any.whl", hash = "sha256:f174b5ff827504fd3cd97cc3f8649f3693f51538c7e4bdf3ef002c8429d42f9f", size = 5294 }, + { url = "https://files.pythonhosted.org/packages/f4/da/3c96f688bd3e67d392a681e7b1ef7901c0efe8b4d1ed8e53087616438536/eckitlib-2.5.0.33-cp312-cp312-macosx_15_0_arm64.whl", hash = "sha256:2109ad99cb52de84577354d1dc79e4b6a5232eaa14b1d0c476a9217ca8a2e152", size = 6557449, upload-time = "2026-10-16T18:44:09.225Z" }, + { url = "https://files.pythonhosted.org/packages/f6/c4/88ed5675be9d7b320bd6444a3b0a776dfaaf9515c9382e8f49447443d03c/eckitlib-2.5.0.33-cp312-cp312-macosx_15_0_x86_64.whl", hash = "sha256:516b0972461d5c3f03e5a89e3eceaa8d41acf6d6d75bf7b4e36fd94d4027868e", size = 6608978, upload-time = "2026-10-16T19:30:04.003Z" }, + { url = "https://files.pythonhosted.org/packages/04/29/82f55c8b26d368ff01e06dce89787c20279ea63bf2b1e1abbfa508f74b55/eckitlib-2.5.0.33-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:cd5c7cefe540537b14519f30d50d77e4c61270bc58658224a5bcead7a827905f", size = 35185033, upload-time = "2026-10-16T18:55:48.129Z" }, + { url = "https://files.pythonhosted.org/packages/6b/3c/8ac38004b45973138856b381ae7ed1014ef47af47e836ef2ffda5d053147/eckitlib-2.5.0.33-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:832b4098ffc78a2baada10e725117c90e7a23a06937315d9982db88b2df1f9ac", size = 35976871, upload-time = "2026-10-16T18:53:32.386Z" }, + { url = "https://files.pythonhosted.org/packages/c9/38/0a45b55e94aaf64beda753691bea2702555b0a218dd30db1d9e76bc2c9ad/eckitlib-2.5.0.33-cp313-cp313-macosx_15_0_arm64.whl", hash = "sha256:5b9a6d9e5205db3d41ccfecfc17c095716089ccef01b2f8502701623b9c0bb69", size = 6557451, upload-time = "2026-10-16T18:54:33.302Z" }, + { url = "https://files.pythonhosted.org/packages/d8/b1/9582ddd173d2b4c3ab2e76c3437727112040f49f9207be4eab997ad4235d/eckitlib-2.5.0.33-cp313-cp313-macosx_15_0_x86_64.whl", hash = "sha256:80cd6fbabff348825332fd9dc555631c2bf01900f9a618f6ad4021344167e6a4", size = 6608976, upload-time = "2026-10-16T19:01:20.094Z" }, + { url = "https://files.pythonhosted.org/packages/74/b4/69f1d12220e6be38b5ea800c024a36a7c88b4a1005117a0be77080e704ce/eckitlib-2.5.0.33-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:da150a715e12592814e894e2692a7c08a99c1137c41d6e86e7f97fb35932b7f4", size = 35185035, upload-time = "2026-10-16T18:54:07.239Z" }, + { url = "https://files.pythonhosted.org/packages/2e/cf/547f6f03fcc42a26d4d3c77cfe11e3ab7fe26779658a5253389d02cbe5a6/eckitlib-2.5.0.33-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:644344cce1bb47d410c44fa08312b47aa7ea9ee5fecd3727186e539a5e5423e7", size = 35976866, upload-time = "2026-10-16T18:51:18.323Z" }, + { url = "https://files.pythonhosted.org/packages/3e/37/e6e1df6f3a54e0b9747b4c44193f391d8f09536be970e4cbba143245393f/eckitlib-2.5.0.33-cp314-cp314-macosx_15_0_arm64.whl", hash = "sha256:52ccafa54366fef644458b8f0f632585730839ec2a90f965812a52f0cad23083", size = 6557462, upload-time = "2026-10-16T18:55:15.786Z" }, + { url = "https://files.pythonhosted.org/packages/8a/3a/f78785a4daf64c68a248f98b85ef9fab49ac1eb78fd2644a38c21661df3b/eckitlib-2.5.0.33-cp314-cp314-macosx_15_0_x86_64.whl", hash = "sha256:00afc20a7f40dc630bec76d312420f48de4e1f9b6dae3144b5ff9fa27344b4e2", size = 6703324, upload-time = "2026-10-16T19:09:13.086Z" }, + { url = "https://files.pythonhosted.org/packages/5e/2f/3469b7446a3a828555cad382c185b967cdf391e24aef5fb1a34b99bf819e/eckitlib-2.5.0.33-cp314-cp314-manylinux_2_28_aarch64.whl", hash = "sha256:694a8462acf29f25a04a1a0c1f64edbc32d668e1b230bf1887a0cd1fe6de7455", size = 35185035, upload-time = "2026-10-16T18:51:45.663Z" }, + { url = "https://files.pythonhosted.org/packages/26/b0/5e38c37e5e17f3643cd831b0f04bf1acbb0d8c11391fc4c2184abee150ec/eckitlib-2.5.0.33-cp314-cp314-manylinux_2_28_x86_64.whl", hash = "sha256:15d61e597e7dc54bbd4bd4d6df001b9c212a8f19f9f7e1b9952db0fe3b7939e0", size = 35976871, upload-time = "2026-10-16T18:52:27.565Z" }, ] [[package]] name = "executing" -version = "2.2.1" +version = "2.3.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/cc/28/c14e053b6762b1044f34a13aab6859bbf40456d37d23aa286ac24cfd9a5d/executing-2.2.1.tar.gz", hash = "sha256:3632cc370565f6648cc328b32435bd120a1e4ebb20c77e3fdde9a13cd1e533c4", size = 1129488 } +sdist = { url = "https://files.pythonhosted.org/packages/52/92/8a611141e42930c0f194f7504063ab87dfe970cf1a5af28e7703df448734/executing-2.3.0.tar.gz", hash = "sha256:15919cb5d667e5cb4e099511971d00d659573fff2dd5c4e6cd8b71636c7858d2", size = 1338003, upload-time = "2026-10-10T14:06:04.64Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl", hash = "sha256:760643d3452b4d777d295bb167ccc74c64a81df23fb5e08eff250c425a4b2017", size = 28317 }, + { url = "https://files.pythonhosted.org/packages/4d/dd/8bc67e7d5ffc1d88aa5af511189dfb76dc4e1e5b808fab186146ef2663e5/executing-2.3.0-py3-none-any.whl", hash = "sha256:736e859c9f8701f11fcf516856f26f562e04776387824b43a35a1dfe21c84122", size = 29393, upload-time = "2026-10-10T14:06:02.777Z" }, ] [[package]] name = "fasteners" version = "0.20" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/2d/18/7881a99ba5244bfc82f06017316ffe93217dbbbcfa52b887caa1d4f2a6d3/fasteners-0.20.tar.gz", hash = "sha256:55dce8792a41b56f727ba6e123fcaee77fd87e638a6863cec00007bfea84c8d8", size = 25087 } +sdist = { url = "https://files.pythonhosted.org/packages/2d/18/7881a99ba5244bfc82f06017316ffe93217dbbbcfa52b887caa1d4f2a6d3/fasteners-0.20.tar.gz", hash = "sha256:55dce8792a41b56f727ba6e123fcaee77fd87e638a6863cec00007bfea84c8d8", size = 25087, upload-time = "2025-08-11T10:19:37.785Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/51/ac/e5d886f892666d2d1e5cb8c1a41146e1d79ae8896477b1153a21711d3b44/fasteners-0.20-py3-none-any.whl", hash = "sha256:9422c40d1e350e4259f509fb2e608d6bc43c0136f79a00db1b49046029d0b3b7", size = 18702 }, -] - -[[package]] -name = "filelock" -version = "3.29.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1f/f9/f38573ed5844586db374d085911740a501ccfa373b455fc9413f09f85237/filelock-3.29.1.tar.gz", hash = "sha256:d97e6b1b9757569626c58caa07dc4beb1613f4a2938b1e8cc81afca398906c9e", size = 59335 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/4c/a0/614c5fe402fd88951df45f4dda2fa3b4e17a99ecd92340771929169b3b95/filelock-3.29.1-py3-none-any.whl", hash = "sha256:85199dfd706869641b72b2e8955d5416a4b2b7dc4b0e8e6d97b4cc1299a6983b", size = 40750 }, + { url = "https://files.pythonhosted.org/packages/51/ac/e5d886f892666d2d1e5cb8c1a41146e1d79ae8896477b1153a21711d3b44/fasteners-0.20-py3-none-any.whl", hash = "sha256:9422c40d1e350e4259f509fb2e608d6bc43c0136f79a00db1b49046029d0b3b7", size = 18702, upload-time = "2025-08-11T10:19:35.716Z" }, ] [[package]] name = "findlibs" -version = "0.1.2" +version = "0.1.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/22/ef/345b0f88b8e9d9e12051142a9cdcf590bf70206d20d81c3f773ade8d9e32/findlibs-0.1.2.tar.gz", hash = "sha256:1f56d220c69686392ebdc4c65b32ee344818bca633643a8c97592957d1728122", size = 11302 } +sdist = { url = "https://files.pythonhosted.org/packages/91/21/235e81c0e29a5aa84e5374d469723d508de63692049e80654b1b56d1c57e/findlibs-0.1.3.tar.gz", hash = "sha256:49bbe509c8b439ecd9c0d021c301aa9db643a2e6ab4e189a40b505ee4a49db62", size = 11335, upload-time = "2026-07-14T10:52:47.795Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2f/ff/76dd547e129206899e4e26446c3ca7aeaff948c31b05250e9b8690e76883/findlibs-0.1.2-py3-none-any.whl", hash = "sha256:5348bbc7055d2a505962576c2e285b6c0aae6d749f82ba71296e7d41336e66e8", size = 10707 }, + { url = "https://files.pythonhosted.org/packages/d1/13/63305a756cb6e9408828961d4ff8542f3625d7cfb62289b19016216a9fa2/findlibs-0.1.3-py3-none-any.whl", hash = "sha256:9c14f8506cdcd37e38369259f8cd9aa3c002d58cd7c2beff4852bd205495c555", size = 10714, upload-time = "2026-07-14T10:52:46.902Z" }, ] [[package]] @@ -848,9 +848,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/55/b0/8a21e330561c65653d010ef112bf38f60890051d244ede197ddaa08e50c1/flexcache-0.3.tar.gz", hash = "sha256:18743bd5a0621bfe2cf8d519e4c3bfdf57a269c15d1ced3fb4b64e0ff4600656", size = 15816 } +sdist = { url = "https://files.pythonhosted.org/packages/55/b0/8a21e330561c65653d010ef112bf38f60890051d244ede197ddaa08e50c1/flexcache-0.3.tar.gz", hash = "sha256:18743bd5a0621bfe2cf8d519e4c3bfdf57a269c15d1ced3fb4b64e0ff4600656", size = 15816, upload-time = "2024-03-09T03:21:07.555Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/27/cd/c883e1a7c447479d6e13985565080e3fea88ab5a107c21684c813dba1875/flexcache-0.3-py3-none-any.whl", hash = "sha256:d43c9fea82336af6e0115e308d9d33a185390b8346a017564611f1466dcd2e32", size = 13263 }, + { url = "https://files.pythonhosted.org/packages/27/cd/c883e1a7c447479d6e13985565080e3fea88ab5a107c21684c813dba1875/flexcache-0.3-py3-none-any.whl", hash = "sha256:d43c9fea82336af6e0115e308d9d33a185390b8346a017564611f1466dcd2e32", size = 13263, upload-time = "2024-03-09T03:21:05.635Z" }, ] [[package]] @@ -860,148 +860,182 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/82/99/b4de7e39e8eaf8207ba1a8fa2241dd98b2ba72ae6e16960d8351736d8702/flexparser-0.4.tar.gz", hash = "sha256:266d98905595be2ccc5da964fe0a2c3526fbbffdc45b65b3146d75db992ef6b2", size = 31799 } +sdist = { url = "https://files.pythonhosted.org/packages/82/99/b4de7e39e8eaf8207ba1a8fa2241dd98b2ba72ae6e16960d8351736d8702/flexparser-0.4.tar.gz", hash = "sha256:266d98905595be2ccc5da964fe0a2c3526fbbffdc45b65b3146d75db992ef6b2", size = 31799, upload-time = "2024-11-07T02:00:56.249Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/fe/5e/3be305568fe5f34448807976dc82fc151d76c3e0e03958f34770286278c1/flexparser-0.4-py3-none-any.whl", hash = "sha256:3738b456192dcb3e15620f324c447721023c0293f6af9955b481e91d00179846", size = 27625 }, + { url = "https://files.pythonhosted.org/packages/fe/5e/3be305568fe5f34448807976dc82fc151d76c3e0e03958f34770286278c1/flexparser-0.4-py3-none-any.whl", hash = "sha256:3738b456192dcb3e15620f324c447721023c0293f6af9955b481e91d00179846", size = 27625, upload-time = "2024-11-07T02:00:54.523Z" }, ] [[package]] name = "fonttools" -version = "4.63.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/84/69/c97f2c18e0db87d2c7b15da1974dace76ae938f1cfa22e2727a648b7ed43/fonttools-4.63.0.tar.gz", hash = "sha256:caeb583deeb5168e694b65cda8b4ee62abedfa66cf88488734466f2366b9c4e0", size = 3597189 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/08/ef/b3c6b9b5be2f82416d73fe2ed2e96e2793cd80e7510bd6a17ca79cdd88ec/fonttools-4.63.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:37dd23e621e3b0aef1baa70a303b80aaf38449632cfc8fd2a55fb285bbccfc02", size = 2881131 }, - { url = "https://files.pythonhosted.org/packages/44/a0/c815bea63117fa63e4e1c01f8a1110d2112fa003f838e6467094ec2432ce/fonttools-4.63.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a9faff9e0c1f76f9fd55899d2ce785832efebab37eb8ae13995853aef178bef0", size = 2426704 }, - { url = "https://files.pythonhosted.org/packages/44/04/0b91d8e916e92ad1fac9e4624760baf0fd5ff2ead614c2f68fb21373f03f/fonttools-4.63.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ef3048ef05dbb552b89817713d9cac912e00d0fde4a3105c00d29e52e10c89af", size = 5044298 }, - { url = "https://files.pythonhosted.org/packages/77/c7/2342da9830e3e9d4870305ca5d2091d2a83284f2953079b7bdd3b5e029d8/fonttools-4.63.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:58dc6bb86a78d782f00f9190ca02c119cf5bbe2807536e361e18d42019f877d8", size = 4999800 }, - { url = "https://files.pythonhosted.org/packages/e6/6d/67fe16c48d7ce050979b33f47e0d28a318f02da030602e944c34f7a16ef3/fonttools-4.63.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ee08ebfa58f6e1aeff5697ab9582105bb620008c1caafb681e4c557e7483027b", size = 4982666 }, - { url = "https://files.pythonhosted.org/packages/f2/00/3bbab338c07c71fa56269953845e92c951a61457bbbb0f1022551ea266d9/fonttools-4.63.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:27fdc65af8da6f88b9c6121c47a464cbe359fcfff7ff6fc2d37a1f395d755b78", size = 5133598 }, - { url = "https://files.pythonhosted.org/packages/62/f2/aa27c7f98db5b064883dadcc5283947e81e034de42e22a33675878d98b54/fonttools-4.63.0-cp312-cp312-win32.whl", hash = "sha256:af2fd1664d00a397d75f806985ddb36282091c2131a73a6485c23b4a34722263", size = 2292575 }, - { url = "https://files.pythonhosted.org/packages/87/36/cccb9bc2a6ab63d1b2980374f0dca72ce95ae267c9b4cfe77455bb70d0d4/fonttools-4.63.0-cp312-cp312-win_amd64.whl", hash = "sha256:59ac449f8cca9b4ffa08d2e7bbadad87ce710d69d1eda5c3c1ce579baa987272", size = 2343211 }, - { url = "https://files.pythonhosted.org/packages/0f/8d/d8fec3dcde2963f8c908fb315e5ff2cd0ac34f82394bbbf73a2aa5145ce3/fonttools-4.63.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:cd7e9857e5e63738b9d9fd707bc1f59c8b09e5177726d23664db393c59bb08bd", size = 2876062 }, - { url = "https://files.pythonhosted.org/packages/ef/71/d935dc54e4ff121bfdd11e08702db63a7e6f25af21d8a3d7b7212df53641/fonttools-4.63.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c2a2a42198b696a6f48fad91709afb55176e66a5e566131219dba372fb7f8c59", size = 2424594 }, - { url = "https://files.pythonhosted.org/packages/8e/40/e76320afa1df918e146155ef239b1719ee266092e96f5423bfd075affba1/fonttools-4.63.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1e874792a8212b44583ea02189d9e693906b2f78b261f372f95d6c563210ac1d", size = 5024840 }, - { url = "https://files.pythonhosted.org/packages/ce/36/0b805d8c485f872f65a509cbe3b58a5d0d17bee855333b54a150c79d3061/fonttools-4.63.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:22135da48a348785c5e2d5d2d9d6bec5ed44adacbaeb9db12d9493bf6c6bfa68", size = 4975801 }, - { url = "https://files.pythonhosted.org/packages/c8/26/2cee03d0aa083ab022da5c07aff9ed3f689da1defb81ad6917c9627896da/fonttools-4.63.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ccf41f2efdf56994d22d73bef4ced1052161958169428d06ba9724ea9e9a64be", size = 4965009 }, - { url = "https://files.pythonhosted.org/packages/7e/48/cc4b66d9058c0d0982c833fad10127c4b0e9324606aafa41382295ca4102/fonttools-4.63.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9ced0bd02ac751dd6319b0da88aaef24414e3b0dbc32bb4f24944821a3741a27", size = 5105892 }, - { url = "https://files.pythonhosted.org/packages/d8/1f/a98a30a814b9ddef3a2e706025f90b9e0bc94890e6cb15254bc86547d11a/fonttools-4.63.0-cp313-cp313-win32.whl", hash = "sha256:85be818f5506e8a7753153def2c9550178f0ecae6a47b5e0e8dbb23f7cc90380", size = 2291313 }, - { url = "https://files.pythonhosted.org/packages/92/46/5177b01f3b4abfdd4409f31cca4ab279c9343a26efbe9ec78c97fc612e02/fonttools-4.63.0-cp313-cp313-win_amd64.whl", hash = "sha256:ba04cb5891d4c0c21b6da95eda8d7b090021508a294fff33464fc7d241e0856b", size = 2342299 }, - { url = "https://files.pythonhosted.org/packages/27/d2/23d25e3f247b328be58d04a4c9f894178a0d1eda7d42867cfb388adaf416/fonttools-4.63.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:fd1e3094f42d806d3d7c79162fc59e5910fcbe3a7360c385b8da969bc4493745", size = 2875338 }, - { url = "https://files.pythonhosted.org/packages/cd/58/7dfa0c761cb3b2964e2a84c4dc986c926a87de0cb9fb60d5b28ded3f2914/fonttools-4.63.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:6e528da43bc3791085f8cb6141b1d13e459226790240340fcbb4625649238b03", size = 2422661 }, - { url = "https://files.pythonhosted.org/packages/dd/87/64cfa18a7a1621d17b7f4502b2b0ed8a135a90c3db51ea590ee99043e76b/fonttools-4.63.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b2248c5decb223562f7902ff6325077a073f608ee8e33e88ad88db734eb9f49", size = 5010526 }, - { url = "https://files.pythonhosted.org/packages/36/e1/a8933a72c45a87177fbde2696e0d0755c8c9062f8c077a961c6215fa27b1/fonttools-4.63.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:308f957cdeaf8abe4e5f2f124902ef405448af92c90f80e302a3b771c2e6116b", size = 4923946 }, - { url = "https://files.pythonhosted.org/packages/27/60/872e6e233b8c5e8b41413796ff18b7fe479661bd40147e071b450dfad7a1/fonttools-4.63.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:bf00f21eb5fb721dbaf73d1e9da6d02a1af7768f2ebcf9798be98beab8ba90f6", size = 4962489 }, - { url = "https://files.pythonhosted.org/packages/30/c4/83c24f2ec38b90cfda84bf4b1a1f49df80e84a1db4e7ac6e0d41bf23bc39/fonttools-4.63.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:c1aaa4b9c75798400ac043ce04d74e7830376c85095a5a6ed7cba2f17a266bf4", size = 5071870 }, - { url = "https://files.pythonhosted.org/packages/de/40/3ae22b60ff1d41ce0bd044b31238cdc72cef99f28b976f1e128ebd618c9b/fonttools-4.63.0-cp314-cp314-win32.whl", hash = "sha256:22693918177bd9ceabec4736d338045f357769416fc6b0b2508eefef75b08616", size = 2295026 }, - { url = "https://files.pythonhosted.org/packages/c3/d4/98078064ccc76b45cb0f6c002452011e93c4bd26f6850344f0951cc1fe89/fonttools-4.63.0-cp314-cp314-win_amd64.whl", hash = "sha256:7d782fac32985914c351556f68ac0855391572bcd87de50e05970d3cd4c96fc5", size = 2347454 }, - { url = "https://files.pythonhosted.org/packages/49/4e/652d1580c5f4e39f7d103b0c793e4773129ad633dce4addd0cf4dfebde02/fonttools-4.63.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:6db5140a60a5d731d21ec076745b40a310607731b0a565b50776393188649001", size = 2958152 }, - { url = "https://files.pythonhosted.org/packages/0e/55/ad864c9a9b219f552eb46b32cd7906c466e5a578ba0c3abfcc0fe7413eb6/fonttools-4.63.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:7d76edbff9014094dbf03bd2d074709dfa6ec7aba13d838c937a2b33d2d6a86e", size = 2460809 }, - { url = "https://files.pythonhosted.org/packages/ea/2b/0aa8db70f18cf52e49b4ed5ecec68547f981160bf5ded3b5aed6faa0a6f9/fonttools-4.63.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0eac00b9118c3c2f87d272e45341871c5b3066baa3c86897fa634a7c3fb59096", size = 5148649 }, - { url = "https://files.pythonhosted.org/packages/7f/63/18e4369c25043096f1048e0c9915951adc4f842bd81c6b18155824d6fa99/fonttools-4.63.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:51394295f1a51de8b5f30bdb1e1b9a4231536c7064ef5c6e211eec19fa36036f", size = 4932147 }, - { url = "https://files.pythonhosted.org/packages/a1/3f/67f3eac2ffd8a98446c5022f8ed3864eac878a5ff7af8df4c8286dba16cc/fonttools-4.63.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:9e12f105d2b6342c559c298afb674006bb2893afc7102dcf8a1b55b0486b4e40", size = 5027237 }, - { url = "https://files.pythonhosted.org/packages/1a/ba/4e6214cb38a7b04779e97bb7636de9a5c7f20af7018d03dee0b64c08510a/fonttools-4.63.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:796f27556dbe094c4824f75ca85267e4df776c79036c8441469a4df37038c196", size = 5053933 }, - { url = "https://files.pythonhosted.org/packages/34/3b/214dcc19ee31d3d38fb5ad2755c11ef0514e5dc300bbaf41c0b69f393799/fonttools-4.63.0-cp314-cp314t-win32.whl", hash = "sha256:948428a275741f0b64b113c955425a953314f4b9ab9997f73a72c83e68e569c8", size = 2359326 }, - { url = "https://files.pythonhosted.org/packages/dd/1e/3ff1a9b523058c2eeb6a9d50f5574e2a738200d0d94107d5bc4105e8da3f/fonttools-4.63.0-cp314-cp314t-win_amd64.whl", hash = "sha256:6d4741eb179121cab9eea4cb2393d24492373a260d7945006358c08cfbf45419", size = 2425829 }, - { url = "https://files.pythonhosted.org/packages/2c/47/c99d5268f354002ce80f8d029cd9d7d872969da1de8b93d32de4dc56d6f4/fonttools-4.63.0-py3-none-any.whl", hash = "sha256:445af2eab030a16b9171ea8bdda7ebf7d96bda2df88ee182a464252f6e05e20d", size = 1164562 }, +version = "4.67.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/36/102e180f8f5dbaee88b26595b01ca8aa80bf4e62128d9aa94265b3996c96/fonttools-4.67.0.tar.gz", hash = "sha256:3cb57e6600ca77c0b1729cf8adc23bc0652633a37f18cfa934d9c7bc3de25519", size = 3750028, upload-time = "2026-10-14T13:20:28.294Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5b/50/f674402869f11a89868c4755ae86cd2fcfd67ca6193c6f5d1b479b1267b9/fonttools-4.67.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:fcb9743140419410161acfe7ec205fb0a8a703acfccb85b586becb5a97c047c9", size = 3108316, upload-time = "2026-10-14T13:18:39.162Z" }, + { url = "https://files.pythonhosted.org/packages/e3/c8/5963603c5f9bbc28bde3a29dd7cdbe0bfcbee414b0f7eccec04ae477e1b6/fonttools-4.67.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ad813967410ba6d24a52850df59b164ee17883f17b96a91b4b0ac6e9d7b5a118", size = 2598450, upload-time = "2026-10-14T13:18:42.136Z" }, + { url = "https://files.pythonhosted.org/packages/25/6d/f8e5924917a6b5c0296fb507f748c139a34972f66e91d89159d5c98e27b2/fonttools-4.67.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:768a33bbe6ec5ba8f19979f938752f06d4e614cb554fd47abd7830f2007660e3", size = 5427391, upload-time = "2026-10-14T13:18:44.248Z" }, + { url = "https://files.pythonhosted.org/packages/c1/e0/ec9e4cc868c514deb02233aa1047a6aeb9350d3ee012862f58eec10ef834/fonttools-4.67.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:eb3c98cac93aac4b9f6e3ce2008325340b234cc9b0338ca6b513f31962a1e278", size = 5408233, upload-time = "2026-10-14T13:18:46.616Z" }, + { url = "https://files.pythonhosted.org/packages/cd/4a/fe409cb3ab32f322de92e08e6362cd06bf6dd5f0cee5980d823849e9bd11/fonttools-4.67.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e0ca4c8438dd6320f5850c9bbee3b3980455ee3bac602a9a0299caf9e799a0e8", size = 5364778, upload-time = "2026-10-14T13:18:48.926Z" }, + { url = "https://files.pythonhosted.org/packages/de/5b/2a8dede092113be56329dd210deb6b34c55df2f3d7270934ffece8c7d0bb/fonttools-4.67.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2a09d33a9264a6b29efca9dc633b53969aaedb250a9c8521d60f51280cef65ca", size = 5528522, upload-time = "2026-10-14T13:18:51.297Z" }, + { url = "https://files.pythonhosted.org/packages/6c/de/d3baf686e4ac5726a24819a670747c51571c774dcfa41cc0528e5e8c1a2d/fonttools-4.67.0-cp312-cp312-win32.whl", hash = "sha256:e8a8545cbd58bd29494ffe81e3cb35f8a29332a8e495c42bec334145ce8cd65b", size = 2446090, upload-time = "2026-10-14T13:18:53.379Z" }, + { url = "https://files.pythonhosted.org/packages/c1/3a/625a6dd0173e88dbea1826405b4bcbfa06c6ca095310ed720caba36b2e43/fonttools-4.67.0-cp312-cp312-win_amd64.whl", hash = "sha256:2bfab2f5d1d255dec82f4bd082a1c10e77df808e42210890f50a9c30bf91570e", size = 2497985, upload-time = "2026-10-14T13:18:55.245Z" }, + { url = "https://files.pythonhosted.org/packages/30/b4/cd473e0a48427003733e92bc3e8077081ba537eb33f7c658f2b7bef63776/fonttools-4.67.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8239e2ca24878715a19f061d065b5721e87da81d145e48b3418f771a469b5a24", size = 3106141, upload-time = "2026-10-14T13:18:57.238Z" }, + { url = "https://files.pythonhosted.org/packages/ef/36/04d74f0c71d93829657a703d680a54968253bbb5c93babc34378eae2087a/fonttools-4.67.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1be99c1f07fca59510d657ef3eae584b5273fa4e203aff2383b3520744e19536", size = 2598180, upload-time = "2026-10-14T13:18:59.443Z" }, + { url = "https://files.pythonhosted.org/packages/ed/e6/b0cbdedb363a49043d704d8c7903543fdd317596409fb8ac2cb604c1e73c/fonttools-4.67.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ad8b4f7c754a627e91908fa1a1ccc90b489cd2810c0ba16acd26ea2ff5273db7", size = 5400755, upload-time = "2026-10-14T13:19:01.557Z" }, + { url = "https://files.pythonhosted.org/packages/a8/26/939ae9874dd44116f2ecf61cb0caf029e3004ec1ed311a86389dee3450be/fonttools-4.67.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:50c41e30aa2e0130b80d1a58ac0f3ea7c02a854a70dbea1ff8d88e0ce524806f", size = 5382979, upload-time = "2026-10-14T13:19:03.726Z" }, + { url = "https://files.pythonhosted.org/packages/aa/d1/35a0a34ab74609d2e8dc7a1f45f6386c81942868fc4fdf8e873878f392fd/fonttools-4.67.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0781fe22583529e1e98bb8a3a33040632e202a4c427ed7e65412c41a21b8ebcb", size = 5343745, upload-time = "2026-10-14T13:19:06.055Z" }, + { url = "https://files.pythonhosted.org/packages/bc/90/293577941809c3ec5a7f0870c01b3729c682467a858b8978a5c3ea54c226/fonttools-4.67.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:36f0fee56227b909c9d1392f17b23803616f1f04efbe020c176d9945cabc0be5", size = 5501573, upload-time = "2026-10-14T13:19:08.241Z" }, + { url = "https://files.pythonhosted.org/packages/c5/3c/4e25460f37840c51b3983a7a83ceef7a1efa9ea588aca6f0e3a852f4b120/fonttools-4.67.0-cp313-cp313-win32.whl", hash = "sha256:48696b630069e29b8aa5ea8b034e4f651a2e112073938ec16bd536dadde1debf", size = 2444457, upload-time = "2026-10-14T13:19:10.463Z" }, + { url = "https://files.pythonhosted.org/packages/c1/f6/39e9461211309965514642c005a8d51e866a1092f69f5f693b16de9c5395/fonttools-4.67.0-cp313-cp313-win_amd64.whl", hash = "sha256:7343cd0ef70edf8be7f4913cb9b55b992fb4e04055b47dcfecddcc2eb045a9d2", size = 2496147, upload-time = "2026-10-14T13:19:12.588Z" }, + { url = "https://files.pythonhosted.org/packages/25/5b/c418f48918e40ef8c3f0f555567fe013c0c8058a8afa8040d6baeec80683/fonttools-4.67.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:846982e89b1861d6c9d7fcd6567aec3fa5a10ad313e7f2076045fcd339cfbd8e", size = 3110155, upload-time = "2026-10-14T13:19:14.877Z" }, + { url = "https://files.pythonhosted.org/packages/30/18/49013c643c3d56fce1b7e909ef7c01c36a5bd906dfb58571c9dcdaa4dc38/fonttools-4.67.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:952eb091689545d86d16e40f719ed7bb086dd810a07dcc9ea2ca0a81004810a3", size = 2599657, upload-time = "2026-10-14T13:19:16.93Z" }, + { url = "https://files.pythonhosted.org/packages/1f/2c/b7f33fa3bd1e4afdf9bf93b760f22486350eda487ce76c47f5931f868957/fonttools-4.67.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e2b5d511ea012dce7bd6df12b279b7d7a5b01b019865717d03ae679f4b944fa5", size = 5385200, upload-time = "2026-10-14T13:19:18.868Z" }, + { url = "https://files.pythonhosted.org/packages/79/fe/fef04b2cc2930edba11095f9e9b5c2797f8594fc54316195cc39d3c3bc63/fonttools-4.67.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:916836845e4b1c1447bb61390ffb3cb5f2940fd9f5d6de4685539a81806c7764", size = 5328754, upload-time = "2026-10-14T13:19:21.179Z" }, + { url = "https://files.pythonhosted.org/packages/2e/c6/41cd4f6137f61dd059cc0609b73d9556091ecfcc8cb4d3cc543129c8ec24/fonttools-4.67.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:775364ac079e2ea7a2eedb5f9172c57b059d638ff79e2bf8d4257e5805713f32", size = 5327159, upload-time = "2026-10-14T13:19:23.153Z" }, + { url = "https://files.pythonhosted.org/packages/53/5c/08abd0a6d5c36624411e1b934745b4689d4309b03e98d8cf49f9469c63b6/fonttools-4.67.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:b3ddf350e74508102b33dc6b32984b6dd751359a7c57732bcd39f9d7cb37d71e", size = 5460332, upload-time = "2026-10-14T13:19:25.454Z" }, + { url = "https://files.pythonhosted.org/packages/b5/0f/59e835023817fe3932653067fde74960a0800fb95535375d8206aa9ecd68/fonttools-4.67.0-cp314-cp314-win32.whl", hash = "sha256:72d6d316dffc92eadb771f697f289ea7b60f689580931328905a267bd170f93b", size = 2448714, upload-time = "2026-10-14T13:19:27.73Z" }, + { url = "https://files.pythonhosted.org/packages/b3/d3/5230265a5ff16aead01ce1a432a6b5bbdabe086f433988f41a1395e6dff8/fonttools-4.67.0-cp314-cp314-win_amd64.whl", hash = "sha256:4e2c1586b5b6588a47d02e2588170eefdc996b708f2659c44dbe169bd6fcacb5", size = 2500790, upload-time = "2026-10-14T13:19:29.906Z" }, + { url = "https://files.pythonhosted.org/packages/b3/38/d899d7bbbe04d27dd509ac6b8f58f73fc240bb1dfe0ada9a9d33ad3bf9f2/fonttools-4.67.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:84a3aed005de106fb1794372dace82eca50859d52ae26da4bb6c602480a41250", size = 3183808, upload-time = "2026-10-14T13:19:32.015Z" }, + { url = "https://files.pythonhosted.org/packages/c3/f6/4f465a62972e383b3d82205841b93f625a4e5ece6e5693c5be2a691ffe6d/fonttools-4.67.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:64e56d0d6a39780fee86955c758674538387b18f911ea904a4aae8f8e30fa26f", size = 2632826, upload-time = "2026-10-14T13:19:33.854Z" }, + { url = "https://files.pythonhosted.org/packages/d7/91/ce1ae8f8baa75feb2320caf6f74d2c228eba210a13b3e0895c0403e5e987/fonttools-4.67.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8c21073cfe7129aaa070d94f575c1e2a880ae4aae1dcffd5352f174b96d27d16", size = 5557857, upload-time = "2026-10-14T13:19:36.086Z" }, + { url = "https://files.pythonhosted.org/packages/fe/1c/495fe0a6bb8625e693c1417e178aeac42a11aa47e79efd7611c7bc5fb81e/fonttools-4.67.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:720bcf27727193b0fe1883c2e036dc88e37047916e977f5c3daf6ee4316e9656", size = 5364450, upload-time = "2026-10-14T13:19:38.5Z" }, + { url = "https://files.pythonhosted.org/packages/19/9c/d9730d3dd32e39583d6db929d0867df02042539bb0ebc3ad3d92a52a6aaf/fonttools-4.67.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:6c19a770a8d273371a37969003c143eaa629ab893c3db028af8b91d04c6f9a6d", size = 5425231, upload-time = "2026-10-14T13:19:40.659Z" }, + { url = "https://files.pythonhosted.org/packages/f0/c6/d41c1163431828b0fa2172e867798e0c4517ac6606e774b9175e048fb666/fonttools-4.67.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:13d7507252c5a5d7941a5fa1be27d335c378ef07983ea2bb24988bf600eadd5e", size = 5460574, upload-time = "2026-10-14T13:19:43.22Z" }, + { url = "https://files.pythonhosted.org/packages/95/af/14885b78b1c1ff7219f890b79a5a6f76608d907c171b40e43839de995f54/fonttools-4.67.0-cp314-cp314t-win32.whl", hash = "sha256:07a2f36b3263faadf5b7b548f62fd3cac401e490189c82b16f7139ac0df91cd4", size = 2482468, upload-time = "2026-10-14T13:19:45.91Z" }, + { url = "https://files.pythonhosted.org/packages/cf/33/3d660eb850d24a81b4097ed46a1352c4ac0e4c10025526fa115e1871fc64/fonttools-4.67.0-cp314-cp314t-win_amd64.whl", hash = "sha256:fd79e36c2968e9fc3e1b082f2ba7dc63ae88a161a3d8ceaa0746b906455f3617", size = 2532326, upload-time = "2026-10-14T13:19:48.023Z" }, + { url = "https://files.pythonhosted.org/packages/b2/74/ebff33b3c6dfe77d86a1b67b470c3d817f044910203880a1f4e92a08bec2/fonttools-4.67.0-cp315-cp315-macosx_10_15_universal2.whl", hash = "sha256:89ad62d116f45bb45873bb92fd69c14a720ba591cba488044731954a5565e194", size = 3104541, upload-time = "2026-10-14T13:19:50.418Z" }, + { url = "https://files.pythonhosted.org/packages/e0/f5/7b3b786447cdda91f8cd06e44bf3b906e71825118f5cbb9b69c099415152/fonttools-4.67.0-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:1671e5f368b0c136ed9fb62fef26c7e425b4ebb0bb669a1cb7ba453f5bba580b", size = 2598216, upload-time = "2026-10-14T13:19:52.388Z" }, + { url = "https://files.pythonhosted.org/packages/eb/c8/c0c08d8a76b2ed460bf8b63642d98445aa18179a14005cae617bfe9ec732/fonttools-4.67.0-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:451077d2fc61a2a03f5dca54d84fbb01051ad781f48ea137eff35c775a4cb025", size = 5382399, upload-time = "2026-10-14T13:19:54.344Z" }, + { url = "https://files.pythonhosted.org/packages/3c/db/66b5ef9985c7d69f7b3521ee965c3093b1802322fb6c16e8c3da608b747e/fonttools-4.67.0-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1f200cd2cf046a5a0b03babe84ebf8bbc12187d5d57f50bc03f24be89e7c1605", size = 5345746, upload-time = "2026-10-14T13:19:56.472Z" }, + { url = "https://files.pythonhosted.org/packages/8e/b0/77d22a73d5cfce9651909583ea3011c7ab26daf155b0eb21f7a3f02ac78a/fonttools-4.67.0-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:bd3239e5709fd4c3343db67245ede46aece610d7f7ef61afb174718122479282", size = 5322591, upload-time = "2026-10-14T13:19:59.539Z" }, + { url = "https://files.pythonhosted.org/packages/97/b8/d3e7b799186fc3213a31d0cfa2c553c5d8eed0a7c7960dc3cf7c0d0497fa/fonttools-4.67.0-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:b274ed3106b8086f237b7dbb1529c28142ba10ae40b9d285be0ae6a44b2946d0", size = 5470360, upload-time = "2026-10-14T13:20:01.876Z" }, + { url = "https://files.pythonhosted.org/packages/b7/89/c9799e81e6de16196d4781dbb81136d354eaef07136607917275a5fe958f/fonttools-4.67.0-cp315-cp315-win32.whl", hash = "sha256:fc6b6b03aa44f504c8734e62ccc3e4dcda9f4b8213a85aa80742e4d1cc9d96ef", size = 2447522, upload-time = "2026-10-14T13:20:04.197Z" }, + { url = "https://files.pythonhosted.org/packages/79/48/40f5591bd0e198d34ee3e25710e730c824750b3c822fc0a65b08e193de80/fonttools-4.67.0-cp315-cp315-win_amd64.whl", hash = "sha256:592d8f72024dea0408739a92599e4f839b960e1e887b25adc76dc87271fdac76", size = 2499770, upload-time = "2026-10-14T13:20:06.54Z" }, + { url = "https://files.pythonhosted.org/packages/fc/5c/f98ee788f76ffad100427c20abab3a6213b37c97575dc82e4ccfaaafbc55/fonttools-4.67.0-cp315-cp315t-macosx_10_15_universal2.whl", hash = "sha256:9c38fece8156cbda31b42d49c4a187858056a35932b88233b6fb31eaca5cf67f", size = 3175346, upload-time = "2026-10-14T13:20:08.7Z" }, + { url = "https://files.pythonhosted.org/packages/e3/b1/af3016813fd44c0ed32d37f3a12cb707efd99edd8205bd8b73aea1f0f542/fonttools-4.67.0-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:3b34324deb3e09ad648039a0a86d945b83f23a44fe3da74a84e6ada71fe0b650", size = 2629083, upload-time = "2026-10-14T13:20:10.686Z" }, + { url = "https://files.pythonhosted.org/packages/b5/bc/13b45dec208145da2c49c063b6ce73ddb2e6e3bd137ba3613562d686a013/fonttools-4.67.0-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3a19f6d5e1a373f2e4a5bdb9452c8ba212dd9f1e43df2fff042b896e28084e4a", size = 5535751, upload-time = "2026-10-14T13:20:13.099Z" }, + { url = "https://files.pythonhosted.org/packages/c2/8c/01f2f16066c802ad2cd6f3321c226240475b30ada91d69d493f7a40445a7/fonttools-4.67.0-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5ccaa87b312219d02cf72a79f1eb2f3ce028882d6fd1b79336141005db83b84e", size = 5357413, upload-time = "2026-10-14T13:20:15.289Z" }, + { url = "https://files.pythonhosted.org/packages/84/e6/d6dff534e9cb8688ec7ecddc353609bca580efef9967334e2289f56bd9da/fonttools-4.67.0-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:38fc772182ebff3e2ebba7886460476eb65842b601ca0b9221a6a5826136396e", size = 5403722, upload-time = "2026-10-14T13:20:17.535Z" }, + { url = "https://files.pythonhosted.org/packages/39/c8/4de02224adea134666e6705b0137cd3df2df60a03ce100797b2b221a73dd/fonttools-4.67.0-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:f672398385849ff79e7dd50c0a06efe110c8ba23d8890f9b45fbb922bc2f55f6", size = 5450104, upload-time = "2026-10-14T13:20:19.612Z" }, + { url = "https://files.pythonhosted.org/packages/8a/e1/3a32904bac7c3460e23a86e9e1529b40d0969a69bd4edefa31e2d2f1bae7/fonttools-4.67.0-cp315-cp315t-win32.whl", hash = "sha256:77e0d4096a2ac60aebe43928b5382766df2d148577db8e8ff79b6a50879a6c06", size = 2479606, upload-time = "2026-10-14T13:20:21.996Z" }, + { url = "https://files.pythonhosted.org/packages/fa/c5/8834cfb95383059addca24f591379d152f137689ff63766736c26b0f9b25/fonttools-4.67.0-cp315-cp315t-win_amd64.whl", hash = "sha256:8c58a8a9ad447bead6f91e5f50b23c0e4988538cdbd9bf2f68952b39f5900a84", size = 2527993, upload-time = "2026-10-14T13:20:23.949Z" }, + { url = "https://files.pythonhosted.org/packages/3d/61/4161946319472aaa9b897bd18ad5108a5b10f5ebaa503d921a001ac4fff9/fonttools-4.67.0-py3-none-any.whl", hash = "sha256:4304f03ed7f4ba000a8dcc941ad854bfa52e2f3b6112b8f099b6f431cf98e701", size = 1213142, upload-time = "2026-10-14T13:20:26.258Z" }, +] + +[[package]] +name = "formulaic" +version = "1.2.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "interface-meta" }, + { name = "narwhals" }, + { name = "numpy" }, + { name = "pandas" }, + { name = "scipy" }, + { name = "typing-extensions" }, + { name = "wrapt" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f1/87/e7b9b39d218793f159d7425e264c0ac196da07f1decc333001502fac02fb/formulaic-1.2.2.tar.gz", hash = "sha256:c99e8f11ff7d327eaecaf63855ca69b7fa0da100ad6c0041ef80912fbac667e6", size = 657522, upload-time = "2026-06-02T18:24:42.632Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fc/75/0576b03f7889ad25b5385b4f6c69e0543713425a6f193b056c9b0a2e65ce/formulaic-1.2.2-py3-none-any.whl", hash = "sha256:0f84ff49e3fc9dc0e68ab08a0a9427874021aa6c558e66b44dc634a35739b09b", size = 118939, upload-time = "2026-06-02T18:24:41.344Z" }, ] [[package]] name = "frozenlist" version = "1.8.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/2d/f5/c831fac6cc817d26fd54c7eaccd04ef7e0288806943f7cc5bbf69f3ac1f0/frozenlist-1.8.0.tar.gz", hash = "sha256:3ede829ed8d842f6cd48fc7081d7a41001a56f1f38603f9d49bf3020d59a31ad", size = 45875 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/69/29/948b9aa87e75820a38650af445d2ef2b6b8a6fab1a23b6bb9e4ef0be2d59/frozenlist-1.8.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:78f7b9e5d6f2fdb88cdde9440dc147259b62b9d3b019924def9f6478be254ac1", size = 87782 }, - { url = "https://files.pythonhosted.org/packages/64/80/4f6e318ee2a7c0750ed724fa33a4bdf1eacdc5a39a7a24e818a773cd91af/frozenlist-1.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:229bf37d2e4acdaf808fd3f06e854a4a7a3661e871b10dc1f8f1896a3b05f18b", size = 50594 }, - { url = "https://files.pythonhosted.org/packages/2b/94/5c8a2b50a496b11dd519f4a24cb5496cf125681dd99e94c604ccdea9419a/frozenlist-1.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f833670942247a14eafbb675458b4e61c82e002a148f49e68257b79296e865c4", size = 50448 }, - { url = "https://files.pythonhosted.org/packages/6a/bd/d91c5e39f490a49df14320f4e8c80161cfcce09f1e2cde1edd16a551abb3/frozenlist-1.8.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:494a5952b1c597ba44e0e78113a7266e656b9794eec897b19ead706bd7074383", size = 242411 }, - { url = "https://files.pythonhosted.org/packages/8f/83/f61505a05109ef3293dfb1ff594d13d64a2324ac3482be2cedc2be818256/frozenlist-1.8.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:96f423a119f4777a4a056b66ce11527366a8bb92f54e541ade21f2374433f6d4", size = 243014 }, - { url = "https://files.pythonhosted.org/packages/d8/cb/cb6c7b0f7d4023ddda30cf56b8b17494eb3a79e3fda666bf735f63118b35/frozenlist-1.8.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3462dd9475af2025c31cc61be6652dfa25cbfb56cbbf52f4ccfe029f38decaf8", size = 234909 }, - { url = "https://files.pythonhosted.org/packages/31/c5/cd7a1f3b8b34af009fb17d4123c5a778b44ae2804e3ad6b86204255f9ec5/frozenlist-1.8.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c4c800524c9cd9bac5166cd6f55285957fcfc907db323e193f2afcd4d9abd69b", size = 250049 }, - { url = "https://files.pythonhosted.org/packages/c0/01/2f95d3b416c584a1e7f0e1d6d31998c4a795f7544069ee2e0962a4b60740/frozenlist-1.8.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d6a5df73acd3399d893dafc71663ad22534b5aa4f94e8a2fabfe856c3c1b6a52", size = 256485 }, - { url = "https://files.pythonhosted.org/packages/ce/03/024bf7720b3abaebcff6d0793d73c154237b85bdf67b7ed55e5e9596dc9a/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:405e8fe955c2280ce66428b3ca55e12b3c4e9c336fb2103a4937e891c69a4a29", size = 237619 }, - { url = "https://files.pythonhosted.org/packages/69/fa/f8abdfe7d76b731f5d8bd217827cf6764d4f1d9763407e42717b4bed50a0/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:908bd3f6439f2fef9e85031b59fd4f1297af54415fb60e4254a95f75b3cab3f3", size = 250320 }, - { url = "https://files.pythonhosted.org/packages/f5/3c/b051329f718b463b22613e269ad72138cc256c540f78a6de89452803a47d/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:294e487f9ec720bd8ffcebc99d575f7eff3568a08a253d1ee1a0378754b74143", size = 246820 }, - { url = "https://files.pythonhosted.org/packages/0f/ae/58282e8f98e444b3f4dd42448ff36fa38bef29e40d40f330b22e7108f565/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:74c51543498289c0c43656701be6b077f4b265868fa7f8a8859c197006efb608", size = 250518 }, - { url = "https://files.pythonhosted.org/packages/8f/96/007e5944694d66123183845a106547a15944fbbb7154788cbf7272789536/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:776f352e8329135506a1d6bf16ac3f87bc25b28e765949282dcc627af36123aa", size = 239096 }, - { url = "https://files.pythonhosted.org/packages/66/bb/852b9d6db2fa40be96f29c0d1205c306288f0684df8fd26ca1951d461a56/frozenlist-1.8.0-cp312-cp312-win32.whl", hash = "sha256:433403ae80709741ce34038da08511d4a77062aa924baf411ef73d1146e74faf", size = 39985 }, - { url = "https://files.pythonhosted.org/packages/b8/af/38e51a553dd66eb064cdf193841f16f077585d4d28394c2fa6235cb41765/frozenlist-1.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:34187385b08f866104f0c0617404c8eb08165ab1272e884abc89c112e9c00746", size = 44591 }, - { url = "https://files.pythonhosted.org/packages/a7/06/1dc65480ab147339fecc70797e9c2f69d9cea9cf38934ce08df070fdb9cb/frozenlist-1.8.0-cp312-cp312-win_arm64.whl", hash = "sha256:fe3c58d2f5db5fbd18c2987cba06d51b0529f52bc3a6cdc33d3f4eab725104bd", size = 40102 }, - { url = "https://files.pythonhosted.org/packages/2d/40/0832c31a37d60f60ed79e9dfb5a92e1e2af4f40a16a29abcc7992af9edff/frozenlist-1.8.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8d92f1a84bb12d9e56f818b3a746f3efba93c1b63c8387a73dde655e1e42282a", size = 85717 }, - { url = "https://files.pythonhosted.org/packages/30/ba/b0b3de23f40bc55a7057bd38434e25c34fa48e17f20ee273bbde5e0650f3/frozenlist-1.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:96153e77a591c8adc2ee805756c61f59fef4cf4073a9275ee86fe8cba41241f7", size = 49651 }, - { url = "https://files.pythonhosted.org/packages/0c/ab/6e5080ee374f875296c4243c381bbdef97a9ac39c6e3ce1d5f7d42cb78d6/frozenlist-1.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f21f00a91358803399890ab167098c131ec2ddd5f8f5fd5fe9c9f2c6fcd91e40", size = 49417 }, - { url = "https://files.pythonhosted.org/packages/d5/4e/e4691508f9477ce67da2015d8c00acd751e6287739123113a9fca6f1604e/frozenlist-1.8.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:fb30f9626572a76dfe4293c7194a09fb1fe93ba94c7d4f720dfae3b646b45027", size = 234391 }, - { url = "https://files.pythonhosted.org/packages/40/76/c202df58e3acdf12969a7895fd6f3bc016c642e6726aa63bd3025e0fc71c/frozenlist-1.8.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eaa352d7047a31d87dafcacbabe89df0aa506abb5b1b85a2fb91bc3faa02d822", size = 233048 }, - { url = "https://files.pythonhosted.org/packages/f9/c0/8746afb90f17b73ca5979c7a3958116e105ff796e718575175319b5bb4ce/frozenlist-1.8.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:03ae967b4e297f58f8c774c7eabcce57fe3c2434817d4385c50661845a058121", size = 226549 }, - { url = "https://files.pythonhosted.org/packages/7e/eb/4c7eefc718ff72f9b6c4893291abaae5fbc0c82226a32dcd8ef4f7a5dbef/frozenlist-1.8.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f6292f1de555ffcc675941d65fffffb0a5bcd992905015f85d0592201793e0e5", size = 239833 }, - { url = "https://files.pythonhosted.org/packages/c2/4e/e5c02187cf704224f8b21bee886f3d713ca379535f16893233b9d672ea71/frozenlist-1.8.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:29548f9b5b5e3460ce7378144c3010363d8035cea44bc0bf02d57f5a685e084e", size = 245363 }, - { url = "https://files.pythonhosted.org/packages/1f/96/cb85ec608464472e82ad37a17f844889c36100eed57bea094518bf270692/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ec3cc8c5d4084591b4237c0a272cc4f50a5b03396a47d9caaf76f5d7b38a4f11", size = 229314 }, - { url = "https://files.pythonhosted.org/packages/5d/6f/4ae69c550e4cee66b57887daeebe006fe985917c01d0fff9caab9883f6d0/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:517279f58009d0b1f2e7c1b130b377a349405da3f7621ed6bfae50b10adf20c1", size = 243365 }, - { url = "https://files.pythonhosted.org/packages/7a/58/afd56de246cf11780a40a2c28dc7cbabbf06337cc8ddb1c780a2d97e88d8/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:db1e72ede2d0d7ccb213f218df6a078a9c09a7de257c2fe8fcef16d5925230b1", size = 237763 }, - { url = "https://files.pythonhosted.org/packages/cb/36/cdfaf6ed42e2644740d4a10452d8e97fa1c062e2a8006e4b09f1b5fd7d63/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:b4dec9482a65c54a5044486847b8a66bf10c9cb4926d42927ec4e8fd5db7fed8", size = 240110 }, - { url = "https://files.pythonhosted.org/packages/03/a8/9ea226fbefad669f11b52e864c55f0bd57d3c8d7eb07e9f2e9a0b39502e1/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:21900c48ae04d13d416f0e1e0c4d81f7931f73a9dfa0b7a8746fb2fe7dd970ed", size = 233717 }, - { url = "https://files.pythonhosted.org/packages/1e/0b/1b5531611e83ba7d13ccc9988967ea1b51186af64c42b7a7af465dcc9568/frozenlist-1.8.0-cp313-cp313-win32.whl", hash = "sha256:8b7b94a067d1c504ee0b16def57ad5738701e4ba10cec90529f13fa03c833496", size = 39628 }, - { url = "https://files.pythonhosted.org/packages/d8/cf/174c91dbc9cc49bc7b7aab74d8b734e974d1faa8f191c74af9b7e80848e6/frozenlist-1.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:878be833caa6a3821caf85eb39c5ba92d28e85df26d57afb06b35b2efd937231", size = 43882 }, - { url = "https://files.pythonhosted.org/packages/c1/17/502cd212cbfa96eb1388614fe39a3fc9ab87dbbe042b66f97acb57474834/frozenlist-1.8.0-cp313-cp313-win_arm64.whl", hash = "sha256:44389d135b3ff43ba8cc89ff7f51f5a0bb6b63d829c8300f79a2fe4fe61bcc62", size = 39676 }, - { url = "https://files.pythonhosted.org/packages/d2/5c/3bbfaa920dfab09e76946a5d2833a7cbdf7b9b4a91c714666ac4855b88b4/frozenlist-1.8.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:e25ac20a2ef37e91c1b39938b591457666a0fa835c7783c3a8f33ea42870db94", size = 89235 }, - { url = "https://files.pythonhosted.org/packages/d2/d6/f03961ef72166cec1687e84e8925838442b615bd0b8854b54923ce5b7b8a/frozenlist-1.8.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:07cdca25a91a4386d2e76ad992916a85038a9b97561bf7a3fd12d5d9ce31870c", size = 50742 }, - { url = "https://files.pythonhosted.org/packages/1e/bb/a6d12b7ba4c3337667d0e421f7181c82dda448ce4e7ad7ecd249a16fa806/frozenlist-1.8.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:4e0c11f2cc6717e0a741f84a527c52616140741cd812a50422f83dc31749fb52", size = 51725 }, - { url = "https://files.pythonhosted.org/packages/bc/71/d1fed0ffe2c2ccd70b43714c6cab0f4188f09f8a67a7914a6b46ee30f274/frozenlist-1.8.0-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b3210649ee28062ea6099cfda39e147fa1bc039583c8ee4481cb7811e2448c51", size = 284533 }, - { url = "https://files.pythonhosted.org/packages/c9/1f/fb1685a7b009d89f9bf78a42d94461bc06581f6e718c39344754a5d9bada/frozenlist-1.8.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:581ef5194c48035a7de2aefc72ac6539823bb71508189e5de01d60c9dcd5fa65", size = 292506 }, - { url = "https://files.pythonhosted.org/packages/e6/3b/b991fe1612703f7e0d05c0cf734c1b77aaf7c7d321df4572e8d36e7048c8/frozenlist-1.8.0-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3ef2d026f16a2b1866e1d86fc4e1291e1ed8a387b2c333809419a2f8b3a77b82", size = 274161 }, - { url = "https://files.pythonhosted.org/packages/ca/ec/c5c618767bcdf66e88945ec0157d7f6c4a1322f1473392319b7a2501ded7/frozenlist-1.8.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5500ef82073f599ac84d888e3a8c1f77ac831183244bfd7f11eaa0289fb30714", size = 294676 }, - { url = "https://files.pythonhosted.org/packages/7c/ce/3934758637d8f8a88d11f0585d6495ef54b2044ed6ec84492a91fa3b27aa/frozenlist-1.8.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:50066c3997d0091c411a66e710f4e11752251e6d2d73d70d8d5d4c76442a199d", size = 300638 }, - { url = "https://files.pythonhosted.org/packages/fc/4f/a7e4d0d467298f42de4b41cbc7ddaf19d3cfeabaf9ff97c20c6c7ee409f9/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:5c1c8e78426e59b3f8005e9b19f6ff46e5845895adbde20ece9218319eca6506", size = 283067 }, - { url = "https://files.pythonhosted.org/packages/dc/48/c7b163063d55a83772b268e6d1affb960771b0e203b632cfe09522d67ea5/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:eefdba20de0d938cec6a89bd4d70f346a03108a19b9df4248d3cf0d88f1b0f51", size = 292101 }, - { url = "https://files.pythonhosted.org/packages/9f/d0/2366d3c4ecdc2fd391e0afa6e11500bfba0ea772764d631bbf82f0136c9d/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:cf253e0e1c3ceb4aaff6df637ce033ff6535fb8c70a764a8f46aafd3d6ab798e", size = 289901 }, - { url = "https://files.pythonhosted.org/packages/b8/94/daff920e82c1b70e3618a2ac39fbc01ae3e2ff6124e80739ce5d71c9b920/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:032efa2674356903cd0261c4317a561a6850f3ac864a63fc1583147fb05a79b0", size = 289395 }, - { url = "https://files.pythonhosted.org/packages/e3/20/bba307ab4235a09fdcd3cc5508dbabd17c4634a1af4b96e0f69bfe551ebd/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6da155091429aeba16851ecb10a9104a108bcd32f6c1642867eadaee401c1c41", size = 283659 }, - { url = "https://files.pythonhosted.org/packages/fd/00/04ca1c3a7a124b6de4f8a9a17cc2fcad138b4608e7a3fc5877804b8715d7/frozenlist-1.8.0-cp313-cp313t-win32.whl", hash = "sha256:0f96534f8bfebc1a394209427d0f8a63d343c9779cda6fc25e8e121b5fd8555b", size = 43492 }, - { url = "https://files.pythonhosted.org/packages/59/5e/c69f733a86a94ab10f68e496dc6b7e8bc078ebb415281d5698313e3af3a1/frozenlist-1.8.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5d63a068f978fc69421fb0e6eb91a9603187527c86b7cd3f534a5b77a592b888", size = 48034 }, - { url = "https://files.pythonhosted.org/packages/16/6c/be9d79775d8abe79b05fa6d23da99ad6e7763a1d080fbae7290b286093fd/frozenlist-1.8.0-cp313-cp313t-win_arm64.whl", hash = "sha256:bf0a7e10b077bf5fb9380ad3ae8ce20ef919a6ad93b4552896419ac7e1d8e042", size = 41749 }, - { url = "https://files.pythonhosted.org/packages/f1/c8/85da824b7e7b9b6e7f7705b2ecaf9591ba6f79c1177f324c2735e41d36a2/frozenlist-1.8.0-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:cee686f1f4cadeb2136007ddedd0aaf928ab95216e7691c63e50a8ec066336d0", size = 86127 }, - { url = "https://files.pythonhosted.org/packages/8e/e8/a1185e236ec66c20afd72399522f142c3724c785789255202d27ae992818/frozenlist-1.8.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:119fb2a1bd47307e899c2fac7f28e85b9a543864df47aa7ec9d3c1b4545f096f", size = 49698 }, - { url = "https://files.pythonhosted.org/packages/a1/93/72b1736d68f03fda5fdf0f2180fb6caaae3894f1b854d006ac61ecc727ee/frozenlist-1.8.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:4970ece02dbc8c3a92fcc5228e36a3e933a01a999f7094ff7c23fbd2beeaa67c", size = 49749 }, - { url = "https://files.pythonhosted.org/packages/a7/b2/fabede9fafd976b991e9f1b9c8c873ed86f202889b864756f240ce6dd855/frozenlist-1.8.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:cba69cb73723c3f329622e34bdbf5ce1f80c21c290ff04256cff1cd3c2036ed2", size = 231298 }, - { url = "https://files.pythonhosted.org/packages/3a/3b/d9b1e0b0eed36e70477ffb8360c49c85c8ca8ef9700a4e6711f39a6e8b45/frozenlist-1.8.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:778a11b15673f6f1df23d9586f83c4846c471a8af693a22e066508b77d201ec8", size = 232015 }, - { url = "https://files.pythonhosted.org/packages/dc/94/be719d2766c1138148564a3960fc2c06eb688da592bdc25adcf856101be7/frozenlist-1.8.0-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0325024fe97f94c41c08872db482cf8ac4800d80e79222c6b0b7b162d5b13686", size = 225038 }, - { url = "https://files.pythonhosted.org/packages/e4/09/6712b6c5465f083f52f50cf74167b92d4ea2f50e46a9eea0523d658454ae/frozenlist-1.8.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:97260ff46b207a82a7567b581ab4190bd4dfa09f4db8a8b49d1a958f6aa4940e", size = 240130 }, - { url = "https://files.pythonhosted.org/packages/f8/d4/cd065cdcf21550b54f3ce6a22e143ac9e4836ca42a0de1022da8498eac89/frozenlist-1.8.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:54b2077180eb7f83dd52c40b2750d0a9f175e06a42e3213ce047219de902717a", size = 242845 }, - { url = "https://files.pythonhosted.org/packages/62/c3/f57a5c8c70cd1ead3d5d5f776f89d33110b1addae0ab010ad774d9a44fb9/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:2f05983daecab868a31e1da44462873306d3cbfd76d1f0b5b69c473d21dbb128", size = 229131 }, - { url = "https://files.pythonhosted.org/packages/6c/52/232476fe9cb64f0742f3fde2b7d26c1dac18b6d62071c74d4ded55e0ef94/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:33f48f51a446114bc5d251fb2954ab0164d5be02ad3382abcbfe07e2531d650f", size = 240542 }, - { url = "https://files.pythonhosted.org/packages/5f/85/07bf3f5d0fb5414aee5f47d33c6f5c77bfe49aac680bfece33d4fdf6a246/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:154e55ec0655291b5dd1b8731c637ecdb50975a2ae70c606d100750a540082f7", size = 237308 }, - { url = "https://files.pythonhosted.org/packages/11/99/ae3a33d5befd41ac0ca2cc7fd3aa707c9c324de2e89db0e0f45db9a64c26/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:4314debad13beb564b708b4a496020e5306c7333fa9a3ab90374169a20ffab30", size = 238210 }, - { url = "https://files.pythonhosted.org/packages/b2/60/b1d2da22f4970e7a155f0adde9b1435712ece01b3cd45ba63702aea33938/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:073f8bf8becba60aa931eb3bc420b217bb7d5b8f4750e6f8b3be7f3da85d38b7", size = 231972 }, - { url = "https://files.pythonhosted.org/packages/3f/ab/945b2f32de889993b9c9133216c068b7fcf257d8595a0ac420ac8677cab0/frozenlist-1.8.0-cp314-cp314-win32.whl", hash = "sha256:bac9c42ba2ac65ddc115d930c78d24ab8d4f465fd3fc473cdedfccadb9429806", size = 40536 }, - { url = "https://files.pythonhosted.org/packages/59/ad/9caa9b9c836d9ad6f067157a531ac48b7d36499f5036d4141ce78c230b1b/frozenlist-1.8.0-cp314-cp314-win_amd64.whl", hash = "sha256:3e0761f4d1a44f1d1a47996511752cf3dcec5bbdd9cc2b4fe595caf97754b7a0", size = 44330 }, - { url = "https://files.pythonhosted.org/packages/82/13/e6950121764f2676f43534c555249f57030150260aee9dcf7d64efda11dd/frozenlist-1.8.0-cp314-cp314-win_arm64.whl", hash = "sha256:d1eaff1d00c7751b7c6662e9c5ba6eb2c17a2306ba5e2a37f24ddf3cc953402b", size = 40627 }, - { url = "https://files.pythonhosted.org/packages/c0/c7/43200656ecc4e02d3f8bc248df68256cd9572b3f0017f0a0c4e93440ae23/frozenlist-1.8.0-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:d3bb933317c52d7ea5004a1c442eef86f426886fba134ef8cf4226ea6ee1821d", size = 89238 }, - { url = "https://files.pythonhosted.org/packages/d1/29/55c5f0689b9c0fb765055629f472c0de484dcaf0acee2f7707266ae3583c/frozenlist-1.8.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:8009897cdef112072f93a0efdce29cd819e717fd2f649ee3016efd3cd885a7ed", size = 50738 }, - { url = "https://files.pythonhosted.org/packages/ba/7d/b7282a445956506fa11da8c2db7d276adcbf2b17d8bb8407a47685263f90/frozenlist-1.8.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:2c5dcbbc55383e5883246d11fd179782a9d07a986c40f49abe89ddf865913930", size = 51739 }, - { url = "https://files.pythonhosted.org/packages/62/1c/3d8622e60d0b767a5510d1d3cf21065b9db874696a51ea6d7a43180a259c/frozenlist-1.8.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:39ecbc32f1390387d2aa4f5a995e465e9e2f79ba3adcac92d68e3e0afae6657c", size = 284186 }, - { url = "https://files.pythonhosted.org/packages/2d/14/aa36d5f85a89679a85a1d44cd7a6657e0b1c75f61e7cad987b203d2daca8/frozenlist-1.8.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:92db2bf818d5cc8d9c1f1fc56b897662e24ea5adb36ad1f1d82875bd64e03c24", size = 292196 }, - { url = "https://files.pythonhosted.org/packages/05/23/6bde59eb55abd407d34f77d39a5126fb7b4f109a3f611d3929f14b700c66/frozenlist-1.8.0-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:2dc43a022e555de94c3b68a4ef0b11c4f747d12c024a520c7101709a2144fb37", size = 273830 }, - { url = "https://files.pythonhosted.org/packages/d2/3f/22cff331bfad7a8afa616289000ba793347fcd7bc275f3b28ecea2a27909/frozenlist-1.8.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:cb89a7f2de3602cfed448095bab3f178399646ab7c61454315089787df07733a", size = 294289 }, - { url = "https://files.pythonhosted.org/packages/a4/89/5b057c799de4838b6c69aa82b79705f2027615e01be996d2486a69ca99c4/frozenlist-1.8.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:33139dc858c580ea50e7e60a1b0ea003efa1fd42e6ec7fdbad78fff65fad2fd2", size = 300318 }, - { url = "https://files.pythonhosted.org/packages/30/de/2c22ab3eb2a8af6d69dc799e48455813bab3690c760de58e1bf43b36da3e/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:168c0969a329b416119507ba30b9ea13688fafffac1b7822802537569a1cb0ef", size = 282814 }, - { url = "https://files.pythonhosted.org/packages/59/f7/970141a6a8dbd7f556d94977858cfb36fa9b66e0892c6dd780d2219d8cd8/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:28bd570e8e189d7f7b001966435f9dac6718324b5be2990ac496cf1ea9ddb7fe", size = 291762 }, - { url = "https://files.pythonhosted.org/packages/c1/15/ca1adae83a719f82df9116d66f5bb28bb95557b3951903d39135620ef157/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:b2a095d45c5d46e5e79ba1e5b9cb787f541a8dee0433836cea4b96a2c439dcd8", size = 289470 }, - { url = "https://files.pythonhosted.org/packages/ac/83/dca6dc53bf657d371fbc88ddeb21b79891e747189c5de990b9dfff2ccba1/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:eab8145831a0d56ec9c4139b6c3e594c7a83c2c8be25d5bcf2d86136a532287a", size = 289042 }, - { url = "https://files.pythonhosted.org/packages/96/52/abddd34ca99be142f354398700536c5bd315880ed0a213812bc491cff5e4/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:974b28cf63cc99dfb2188d8d222bc6843656188164848c4f679e63dae4b0708e", size = 283148 }, - { url = "https://files.pythonhosted.org/packages/af/d3/76bd4ed4317e7119c2b7f57c3f6934aba26d277acc6309f873341640e21f/frozenlist-1.8.0-cp314-cp314t-win32.whl", hash = "sha256:342c97bf697ac5480c0a7ec73cd700ecfa5a8a40ac923bd035484616efecc2df", size = 44676 }, - { url = "https://files.pythonhosted.org/packages/89/76/c615883b7b521ead2944bb3480398cbb07e12b7b4e4d073d3752eb721558/frozenlist-1.8.0-cp314-cp314t-win_amd64.whl", hash = "sha256:06be8f67f39c8b1dc671f5d83aaefd3358ae5cdcf8314552c57e7ed3e6475bdd", size = 49451 }, - { url = "https://files.pythonhosted.org/packages/e0/a3/5982da14e113d07b325230f95060e2169f5311b1017ea8af2a29b374c289/frozenlist-1.8.0-cp314-cp314t-win_arm64.whl", hash = "sha256:102e6314ca4da683dca92e3b1355490fed5f313b768500084fbe6371fddfdb79", size = 42507 }, - { url = "https://files.pythonhosted.org/packages/9a/9a/e35b4a917281c0b8419d4207f4334c8e8c5dbf4f3f5f9ada73958d937dcc/frozenlist-1.8.0-py3-none-any.whl", hash = "sha256:0c18a16eab41e82c295618a77502e17b195883241c563b00f0aa5106fc4eaa0d", size = 13409 }, +sdist = { url = "https://files.pythonhosted.org/packages/2d/f5/c831fac6cc817d26fd54c7eaccd04ef7e0288806943f7cc5bbf69f3ac1f0/frozenlist-1.8.0.tar.gz", hash = "sha256:3ede829ed8d842f6cd48fc7081d7a41001a56f1f38603f9d49bf3020d59a31ad", size = 45875, upload-time = "2025-10-06T05:38:17.865Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/69/29/948b9aa87e75820a38650af445d2ef2b6b8a6fab1a23b6bb9e4ef0be2d59/frozenlist-1.8.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:78f7b9e5d6f2fdb88cdde9440dc147259b62b9d3b019924def9f6478be254ac1", size = 87782, upload-time = "2025-10-06T05:36:06.649Z" }, + { url = "https://files.pythonhosted.org/packages/64/80/4f6e318ee2a7c0750ed724fa33a4bdf1eacdc5a39a7a24e818a773cd91af/frozenlist-1.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:229bf37d2e4acdaf808fd3f06e854a4a7a3661e871b10dc1f8f1896a3b05f18b", size = 50594, upload-time = "2025-10-06T05:36:07.69Z" }, + { url = "https://files.pythonhosted.org/packages/2b/94/5c8a2b50a496b11dd519f4a24cb5496cf125681dd99e94c604ccdea9419a/frozenlist-1.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f833670942247a14eafbb675458b4e61c82e002a148f49e68257b79296e865c4", size = 50448, upload-time = "2025-10-06T05:36:08.78Z" }, + { url = "https://files.pythonhosted.org/packages/6a/bd/d91c5e39f490a49df14320f4e8c80161cfcce09f1e2cde1edd16a551abb3/frozenlist-1.8.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:494a5952b1c597ba44e0e78113a7266e656b9794eec897b19ead706bd7074383", size = 242411, upload-time = "2025-10-06T05:36:09.801Z" }, + { url = "https://files.pythonhosted.org/packages/8f/83/f61505a05109ef3293dfb1ff594d13d64a2324ac3482be2cedc2be818256/frozenlist-1.8.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:96f423a119f4777a4a056b66ce11527366a8bb92f54e541ade21f2374433f6d4", size = 243014, upload-time = "2025-10-06T05:36:11.394Z" }, + { url = "https://files.pythonhosted.org/packages/d8/cb/cb6c7b0f7d4023ddda30cf56b8b17494eb3a79e3fda666bf735f63118b35/frozenlist-1.8.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3462dd9475af2025c31cc61be6652dfa25cbfb56cbbf52f4ccfe029f38decaf8", size = 234909, upload-time = "2025-10-06T05:36:12.598Z" }, + { url = "https://files.pythonhosted.org/packages/31/c5/cd7a1f3b8b34af009fb17d4123c5a778b44ae2804e3ad6b86204255f9ec5/frozenlist-1.8.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c4c800524c9cd9bac5166cd6f55285957fcfc907db323e193f2afcd4d9abd69b", size = 250049, upload-time = "2025-10-06T05:36:14.065Z" }, + { url = "https://files.pythonhosted.org/packages/c0/01/2f95d3b416c584a1e7f0e1d6d31998c4a795f7544069ee2e0962a4b60740/frozenlist-1.8.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d6a5df73acd3399d893dafc71663ad22534b5aa4f94e8a2fabfe856c3c1b6a52", size = 256485, upload-time = "2025-10-06T05:36:15.39Z" }, + { url = "https://files.pythonhosted.org/packages/ce/03/024bf7720b3abaebcff6d0793d73c154237b85bdf67b7ed55e5e9596dc9a/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:405e8fe955c2280ce66428b3ca55e12b3c4e9c336fb2103a4937e891c69a4a29", size = 237619, upload-time = "2025-10-06T05:36:16.558Z" }, + { url = "https://files.pythonhosted.org/packages/69/fa/f8abdfe7d76b731f5d8bd217827cf6764d4f1d9763407e42717b4bed50a0/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:908bd3f6439f2fef9e85031b59fd4f1297af54415fb60e4254a95f75b3cab3f3", size = 250320, upload-time = "2025-10-06T05:36:17.821Z" }, + { url = "https://files.pythonhosted.org/packages/f5/3c/b051329f718b463b22613e269ad72138cc256c540f78a6de89452803a47d/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:294e487f9ec720bd8ffcebc99d575f7eff3568a08a253d1ee1a0378754b74143", size = 246820, upload-time = "2025-10-06T05:36:19.046Z" }, + { url = "https://files.pythonhosted.org/packages/0f/ae/58282e8f98e444b3f4dd42448ff36fa38bef29e40d40f330b22e7108f565/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:74c51543498289c0c43656701be6b077f4b265868fa7f8a8859c197006efb608", size = 250518, upload-time = "2025-10-06T05:36:20.763Z" }, + { url = "https://files.pythonhosted.org/packages/8f/96/007e5944694d66123183845a106547a15944fbbb7154788cbf7272789536/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:776f352e8329135506a1d6bf16ac3f87bc25b28e765949282dcc627af36123aa", size = 239096, upload-time = "2025-10-06T05:36:22.129Z" }, + { url = "https://files.pythonhosted.org/packages/66/bb/852b9d6db2fa40be96f29c0d1205c306288f0684df8fd26ca1951d461a56/frozenlist-1.8.0-cp312-cp312-win32.whl", hash = "sha256:433403ae80709741ce34038da08511d4a77062aa924baf411ef73d1146e74faf", size = 39985, upload-time = "2025-10-06T05:36:23.661Z" }, + { url = "https://files.pythonhosted.org/packages/b8/af/38e51a553dd66eb064cdf193841f16f077585d4d28394c2fa6235cb41765/frozenlist-1.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:34187385b08f866104f0c0617404c8eb08165ab1272e884abc89c112e9c00746", size = 44591, upload-time = "2025-10-06T05:36:24.958Z" }, + { url = "https://files.pythonhosted.org/packages/a7/06/1dc65480ab147339fecc70797e9c2f69d9cea9cf38934ce08df070fdb9cb/frozenlist-1.8.0-cp312-cp312-win_arm64.whl", hash = "sha256:fe3c58d2f5db5fbd18c2987cba06d51b0529f52bc3a6cdc33d3f4eab725104bd", size = 40102, upload-time = "2025-10-06T05:36:26.333Z" }, + { url = "https://files.pythonhosted.org/packages/2d/40/0832c31a37d60f60ed79e9dfb5a92e1e2af4f40a16a29abcc7992af9edff/frozenlist-1.8.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8d92f1a84bb12d9e56f818b3a746f3efba93c1b63c8387a73dde655e1e42282a", size = 85717, upload-time = "2025-10-06T05:36:27.341Z" }, + { url = "https://files.pythonhosted.org/packages/30/ba/b0b3de23f40bc55a7057bd38434e25c34fa48e17f20ee273bbde5e0650f3/frozenlist-1.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:96153e77a591c8adc2ee805756c61f59fef4cf4073a9275ee86fe8cba41241f7", size = 49651, upload-time = "2025-10-06T05:36:28.855Z" }, + { url = "https://files.pythonhosted.org/packages/0c/ab/6e5080ee374f875296c4243c381bbdef97a9ac39c6e3ce1d5f7d42cb78d6/frozenlist-1.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f21f00a91358803399890ab167098c131ec2ddd5f8f5fd5fe9c9f2c6fcd91e40", size = 49417, upload-time = "2025-10-06T05:36:29.877Z" }, + { url = "https://files.pythonhosted.org/packages/d5/4e/e4691508f9477ce67da2015d8c00acd751e6287739123113a9fca6f1604e/frozenlist-1.8.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:fb30f9626572a76dfe4293c7194a09fb1fe93ba94c7d4f720dfae3b646b45027", size = 234391, upload-time = "2025-10-06T05:36:31.301Z" }, + { url = "https://files.pythonhosted.org/packages/40/76/c202df58e3acdf12969a7895fd6f3bc016c642e6726aa63bd3025e0fc71c/frozenlist-1.8.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eaa352d7047a31d87dafcacbabe89df0aa506abb5b1b85a2fb91bc3faa02d822", size = 233048, upload-time = "2025-10-06T05:36:32.531Z" }, + { url = "https://files.pythonhosted.org/packages/f9/c0/8746afb90f17b73ca5979c7a3958116e105ff796e718575175319b5bb4ce/frozenlist-1.8.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:03ae967b4e297f58f8c774c7eabcce57fe3c2434817d4385c50661845a058121", size = 226549, upload-time = "2025-10-06T05:36:33.706Z" }, + { url = "https://files.pythonhosted.org/packages/7e/eb/4c7eefc718ff72f9b6c4893291abaae5fbc0c82226a32dcd8ef4f7a5dbef/frozenlist-1.8.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f6292f1de555ffcc675941d65fffffb0a5bcd992905015f85d0592201793e0e5", size = 239833, upload-time = "2025-10-06T05:36:34.947Z" }, + { url = "https://files.pythonhosted.org/packages/c2/4e/e5c02187cf704224f8b21bee886f3d713ca379535f16893233b9d672ea71/frozenlist-1.8.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:29548f9b5b5e3460ce7378144c3010363d8035cea44bc0bf02d57f5a685e084e", size = 245363, upload-time = "2025-10-06T05:36:36.534Z" }, + { url = "https://files.pythonhosted.org/packages/1f/96/cb85ec608464472e82ad37a17f844889c36100eed57bea094518bf270692/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ec3cc8c5d4084591b4237c0a272cc4f50a5b03396a47d9caaf76f5d7b38a4f11", size = 229314, upload-time = "2025-10-06T05:36:38.582Z" }, + { url = "https://files.pythonhosted.org/packages/5d/6f/4ae69c550e4cee66b57887daeebe006fe985917c01d0fff9caab9883f6d0/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:517279f58009d0b1f2e7c1b130b377a349405da3f7621ed6bfae50b10adf20c1", size = 243365, upload-time = "2025-10-06T05:36:40.152Z" }, + { url = "https://files.pythonhosted.org/packages/7a/58/afd56de246cf11780a40a2c28dc7cbabbf06337cc8ddb1c780a2d97e88d8/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:db1e72ede2d0d7ccb213f218df6a078a9c09a7de257c2fe8fcef16d5925230b1", size = 237763, upload-time = "2025-10-06T05:36:41.355Z" }, + { url = "https://files.pythonhosted.org/packages/cb/36/cdfaf6ed42e2644740d4a10452d8e97fa1c062e2a8006e4b09f1b5fd7d63/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:b4dec9482a65c54a5044486847b8a66bf10c9cb4926d42927ec4e8fd5db7fed8", size = 240110, upload-time = "2025-10-06T05:36:42.716Z" }, + { url = "https://files.pythonhosted.org/packages/03/a8/9ea226fbefad669f11b52e864c55f0bd57d3c8d7eb07e9f2e9a0b39502e1/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:21900c48ae04d13d416f0e1e0c4d81f7931f73a9dfa0b7a8746fb2fe7dd970ed", size = 233717, upload-time = "2025-10-06T05:36:44.251Z" }, + { url = "https://files.pythonhosted.org/packages/1e/0b/1b5531611e83ba7d13ccc9988967ea1b51186af64c42b7a7af465dcc9568/frozenlist-1.8.0-cp313-cp313-win32.whl", hash = "sha256:8b7b94a067d1c504ee0b16def57ad5738701e4ba10cec90529f13fa03c833496", size = 39628, upload-time = "2025-10-06T05:36:45.423Z" }, + { url = "https://files.pythonhosted.org/packages/d8/cf/174c91dbc9cc49bc7b7aab74d8b734e974d1faa8f191c74af9b7e80848e6/frozenlist-1.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:878be833caa6a3821caf85eb39c5ba92d28e85df26d57afb06b35b2efd937231", size = 43882, upload-time = "2025-10-06T05:36:46.796Z" }, + { url = "https://files.pythonhosted.org/packages/c1/17/502cd212cbfa96eb1388614fe39a3fc9ab87dbbe042b66f97acb57474834/frozenlist-1.8.0-cp313-cp313-win_arm64.whl", hash = "sha256:44389d135b3ff43ba8cc89ff7f51f5a0bb6b63d829c8300f79a2fe4fe61bcc62", size = 39676, upload-time = "2025-10-06T05:36:47.8Z" }, + { url = "https://files.pythonhosted.org/packages/d2/5c/3bbfaa920dfab09e76946a5d2833a7cbdf7b9b4a91c714666ac4855b88b4/frozenlist-1.8.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:e25ac20a2ef37e91c1b39938b591457666a0fa835c7783c3a8f33ea42870db94", size = 89235, upload-time = "2025-10-06T05:36:48.78Z" }, + { url = "https://files.pythonhosted.org/packages/d2/d6/f03961ef72166cec1687e84e8925838442b615bd0b8854b54923ce5b7b8a/frozenlist-1.8.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:07cdca25a91a4386d2e76ad992916a85038a9b97561bf7a3fd12d5d9ce31870c", size = 50742, upload-time = "2025-10-06T05:36:49.837Z" }, + { url = "https://files.pythonhosted.org/packages/1e/bb/a6d12b7ba4c3337667d0e421f7181c82dda448ce4e7ad7ecd249a16fa806/frozenlist-1.8.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:4e0c11f2cc6717e0a741f84a527c52616140741cd812a50422f83dc31749fb52", size = 51725, upload-time = "2025-10-06T05:36:50.851Z" }, + { url = "https://files.pythonhosted.org/packages/bc/71/d1fed0ffe2c2ccd70b43714c6cab0f4188f09f8a67a7914a6b46ee30f274/frozenlist-1.8.0-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b3210649ee28062ea6099cfda39e147fa1bc039583c8ee4481cb7811e2448c51", size = 284533, upload-time = "2025-10-06T05:36:51.898Z" }, + { url = "https://files.pythonhosted.org/packages/c9/1f/fb1685a7b009d89f9bf78a42d94461bc06581f6e718c39344754a5d9bada/frozenlist-1.8.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:581ef5194c48035a7de2aefc72ac6539823bb71508189e5de01d60c9dcd5fa65", size = 292506, upload-time = "2025-10-06T05:36:53.101Z" }, + { url = "https://files.pythonhosted.org/packages/e6/3b/b991fe1612703f7e0d05c0cf734c1b77aaf7c7d321df4572e8d36e7048c8/frozenlist-1.8.0-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3ef2d026f16a2b1866e1d86fc4e1291e1ed8a387b2c333809419a2f8b3a77b82", size = 274161, upload-time = "2025-10-06T05:36:54.309Z" }, + { url = "https://files.pythonhosted.org/packages/ca/ec/c5c618767bcdf66e88945ec0157d7f6c4a1322f1473392319b7a2501ded7/frozenlist-1.8.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5500ef82073f599ac84d888e3a8c1f77ac831183244bfd7f11eaa0289fb30714", size = 294676, upload-time = "2025-10-06T05:36:55.566Z" }, + { url = "https://files.pythonhosted.org/packages/7c/ce/3934758637d8f8a88d11f0585d6495ef54b2044ed6ec84492a91fa3b27aa/frozenlist-1.8.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:50066c3997d0091c411a66e710f4e11752251e6d2d73d70d8d5d4c76442a199d", size = 300638, upload-time = "2025-10-06T05:36:56.758Z" }, + { url = "https://files.pythonhosted.org/packages/fc/4f/a7e4d0d467298f42de4b41cbc7ddaf19d3cfeabaf9ff97c20c6c7ee409f9/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:5c1c8e78426e59b3f8005e9b19f6ff46e5845895adbde20ece9218319eca6506", size = 283067, upload-time = "2025-10-06T05:36:57.965Z" }, + { url = "https://files.pythonhosted.org/packages/dc/48/c7b163063d55a83772b268e6d1affb960771b0e203b632cfe09522d67ea5/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:eefdba20de0d938cec6a89bd4d70f346a03108a19b9df4248d3cf0d88f1b0f51", size = 292101, upload-time = "2025-10-06T05:36:59.237Z" }, + { url = "https://files.pythonhosted.org/packages/9f/d0/2366d3c4ecdc2fd391e0afa6e11500bfba0ea772764d631bbf82f0136c9d/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:cf253e0e1c3ceb4aaff6df637ce033ff6535fb8c70a764a8f46aafd3d6ab798e", size = 289901, upload-time = "2025-10-06T05:37:00.811Z" }, + { url = "https://files.pythonhosted.org/packages/b8/94/daff920e82c1b70e3618a2ac39fbc01ae3e2ff6124e80739ce5d71c9b920/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:032efa2674356903cd0261c4317a561a6850f3ac864a63fc1583147fb05a79b0", size = 289395, upload-time = "2025-10-06T05:37:02.115Z" }, + { url = "https://files.pythonhosted.org/packages/e3/20/bba307ab4235a09fdcd3cc5508dbabd17c4634a1af4b96e0f69bfe551ebd/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6da155091429aeba16851ecb10a9104a108bcd32f6c1642867eadaee401c1c41", size = 283659, upload-time = "2025-10-06T05:37:03.711Z" }, + { url = "https://files.pythonhosted.org/packages/fd/00/04ca1c3a7a124b6de4f8a9a17cc2fcad138b4608e7a3fc5877804b8715d7/frozenlist-1.8.0-cp313-cp313t-win32.whl", hash = "sha256:0f96534f8bfebc1a394209427d0f8a63d343c9779cda6fc25e8e121b5fd8555b", size = 43492, upload-time = "2025-10-06T05:37:04.915Z" }, + { url = "https://files.pythonhosted.org/packages/59/5e/c69f733a86a94ab10f68e496dc6b7e8bc078ebb415281d5698313e3af3a1/frozenlist-1.8.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5d63a068f978fc69421fb0e6eb91a9603187527c86b7cd3f534a5b77a592b888", size = 48034, upload-time = "2025-10-06T05:37:06.343Z" }, + { url = "https://files.pythonhosted.org/packages/16/6c/be9d79775d8abe79b05fa6d23da99ad6e7763a1d080fbae7290b286093fd/frozenlist-1.8.0-cp313-cp313t-win_arm64.whl", hash = "sha256:bf0a7e10b077bf5fb9380ad3ae8ce20ef919a6ad93b4552896419ac7e1d8e042", size = 41749, upload-time = "2025-10-06T05:37:07.431Z" }, + { url = "https://files.pythonhosted.org/packages/f1/c8/85da824b7e7b9b6e7f7705b2ecaf9591ba6f79c1177f324c2735e41d36a2/frozenlist-1.8.0-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:cee686f1f4cadeb2136007ddedd0aaf928ab95216e7691c63e50a8ec066336d0", size = 86127, upload-time = "2025-10-06T05:37:08.438Z" }, + { url = "https://files.pythonhosted.org/packages/8e/e8/a1185e236ec66c20afd72399522f142c3724c785789255202d27ae992818/frozenlist-1.8.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:119fb2a1bd47307e899c2fac7f28e85b9a543864df47aa7ec9d3c1b4545f096f", size = 49698, upload-time = "2025-10-06T05:37:09.48Z" }, + { url = "https://files.pythonhosted.org/packages/a1/93/72b1736d68f03fda5fdf0f2180fb6caaae3894f1b854d006ac61ecc727ee/frozenlist-1.8.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:4970ece02dbc8c3a92fcc5228e36a3e933a01a999f7094ff7c23fbd2beeaa67c", size = 49749, upload-time = "2025-10-06T05:37:10.569Z" }, + { url = "https://files.pythonhosted.org/packages/a7/b2/fabede9fafd976b991e9f1b9c8c873ed86f202889b864756f240ce6dd855/frozenlist-1.8.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:cba69cb73723c3f329622e34bdbf5ce1f80c21c290ff04256cff1cd3c2036ed2", size = 231298, upload-time = "2025-10-06T05:37:11.993Z" }, + { url = "https://files.pythonhosted.org/packages/3a/3b/d9b1e0b0eed36e70477ffb8360c49c85c8ca8ef9700a4e6711f39a6e8b45/frozenlist-1.8.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:778a11b15673f6f1df23d9586f83c4846c471a8af693a22e066508b77d201ec8", size = 232015, upload-time = "2025-10-06T05:37:13.194Z" }, + { url = "https://files.pythonhosted.org/packages/dc/94/be719d2766c1138148564a3960fc2c06eb688da592bdc25adcf856101be7/frozenlist-1.8.0-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0325024fe97f94c41c08872db482cf8ac4800d80e79222c6b0b7b162d5b13686", size = 225038, upload-time = "2025-10-06T05:37:14.577Z" }, + { url = "https://files.pythonhosted.org/packages/e4/09/6712b6c5465f083f52f50cf74167b92d4ea2f50e46a9eea0523d658454ae/frozenlist-1.8.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:97260ff46b207a82a7567b581ab4190bd4dfa09f4db8a8b49d1a958f6aa4940e", size = 240130, upload-time = "2025-10-06T05:37:15.781Z" }, + { url = "https://files.pythonhosted.org/packages/f8/d4/cd065cdcf21550b54f3ce6a22e143ac9e4836ca42a0de1022da8498eac89/frozenlist-1.8.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:54b2077180eb7f83dd52c40b2750d0a9f175e06a42e3213ce047219de902717a", size = 242845, upload-time = "2025-10-06T05:37:17.037Z" }, + { url = "https://files.pythonhosted.org/packages/62/c3/f57a5c8c70cd1ead3d5d5f776f89d33110b1addae0ab010ad774d9a44fb9/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:2f05983daecab868a31e1da44462873306d3cbfd76d1f0b5b69c473d21dbb128", size = 229131, upload-time = "2025-10-06T05:37:18.221Z" }, + { url = "https://files.pythonhosted.org/packages/6c/52/232476fe9cb64f0742f3fde2b7d26c1dac18b6d62071c74d4ded55e0ef94/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:33f48f51a446114bc5d251fb2954ab0164d5be02ad3382abcbfe07e2531d650f", size = 240542, upload-time = "2025-10-06T05:37:19.771Z" }, + { url = "https://files.pythonhosted.org/packages/5f/85/07bf3f5d0fb5414aee5f47d33c6f5c77bfe49aac680bfece33d4fdf6a246/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:154e55ec0655291b5dd1b8731c637ecdb50975a2ae70c606d100750a540082f7", size = 237308, upload-time = "2025-10-06T05:37:20.969Z" }, + { url = "https://files.pythonhosted.org/packages/11/99/ae3a33d5befd41ac0ca2cc7fd3aa707c9c324de2e89db0e0f45db9a64c26/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:4314debad13beb564b708b4a496020e5306c7333fa9a3ab90374169a20ffab30", size = 238210, upload-time = "2025-10-06T05:37:22.252Z" }, + { url = "https://files.pythonhosted.org/packages/b2/60/b1d2da22f4970e7a155f0adde9b1435712ece01b3cd45ba63702aea33938/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:073f8bf8becba60aa931eb3bc420b217bb7d5b8f4750e6f8b3be7f3da85d38b7", size = 231972, upload-time = "2025-10-06T05:37:23.5Z" }, + { url = "https://files.pythonhosted.org/packages/3f/ab/945b2f32de889993b9c9133216c068b7fcf257d8595a0ac420ac8677cab0/frozenlist-1.8.0-cp314-cp314-win32.whl", hash = "sha256:bac9c42ba2ac65ddc115d930c78d24ab8d4f465fd3fc473cdedfccadb9429806", size = 40536, upload-time = "2025-10-06T05:37:25.581Z" }, + { url = "https://files.pythonhosted.org/packages/59/ad/9caa9b9c836d9ad6f067157a531ac48b7d36499f5036d4141ce78c230b1b/frozenlist-1.8.0-cp314-cp314-win_amd64.whl", hash = "sha256:3e0761f4d1a44f1d1a47996511752cf3dcec5bbdd9cc2b4fe595caf97754b7a0", size = 44330, upload-time = "2025-10-06T05:37:26.928Z" }, + { url = "https://files.pythonhosted.org/packages/82/13/e6950121764f2676f43534c555249f57030150260aee9dcf7d64efda11dd/frozenlist-1.8.0-cp314-cp314-win_arm64.whl", hash = "sha256:d1eaff1d00c7751b7c6662e9c5ba6eb2c17a2306ba5e2a37f24ddf3cc953402b", size = 40627, upload-time = "2025-10-06T05:37:28.075Z" }, + { url = "https://files.pythonhosted.org/packages/c0/c7/43200656ecc4e02d3f8bc248df68256cd9572b3f0017f0a0c4e93440ae23/frozenlist-1.8.0-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:d3bb933317c52d7ea5004a1c442eef86f426886fba134ef8cf4226ea6ee1821d", size = 89238, upload-time = "2025-10-06T05:37:29.373Z" }, + { url = "https://files.pythonhosted.org/packages/d1/29/55c5f0689b9c0fb765055629f472c0de484dcaf0acee2f7707266ae3583c/frozenlist-1.8.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:8009897cdef112072f93a0efdce29cd819e717fd2f649ee3016efd3cd885a7ed", size = 50738, upload-time = "2025-10-06T05:37:30.792Z" }, + { url = "https://files.pythonhosted.org/packages/ba/7d/b7282a445956506fa11da8c2db7d276adcbf2b17d8bb8407a47685263f90/frozenlist-1.8.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:2c5dcbbc55383e5883246d11fd179782a9d07a986c40f49abe89ddf865913930", size = 51739, upload-time = "2025-10-06T05:37:32.127Z" }, + { url = "https://files.pythonhosted.org/packages/62/1c/3d8622e60d0b767a5510d1d3cf21065b9db874696a51ea6d7a43180a259c/frozenlist-1.8.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:39ecbc32f1390387d2aa4f5a995e465e9e2f79ba3adcac92d68e3e0afae6657c", size = 284186, upload-time = "2025-10-06T05:37:33.21Z" }, + { url = "https://files.pythonhosted.org/packages/2d/14/aa36d5f85a89679a85a1d44cd7a6657e0b1c75f61e7cad987b203d2daca8/frozenlist-1.8.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:92db2bf818d5cc8d9c1f1fc56b897662e24ea5adb36ad1f1d82875bd64e03c24", size = 292196, upload-time = "2025-10-06T05:37:36.107Z" }, + { url = "https://files.pythonhosted.org/packages/05/23/6bde59eb55abd407d34f77d39a5126fb7b4f109a3f611d3929f14b700c66/frozenlist-1.8.0-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:2dc43a022e555de94c3b68a4ef0b11c4f747d12c024a520c7101709a2144fb37", size = 273830, upload-time = "2025-10-06T05:37:37.663Z" }, + { url = "https://files.pythonhosted.org/packages/d2/3f/22cff331bfad7a8afa616289000ba793347fcd7bc275f3b28ecea2a27909/frozenlist-1.8.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:cb89a7f2de3602cfed448095bab3f178399646ab7c61454315089787df07733a", size = 294289, upload-time = "2025-10-06T05:37:39.261Z" }, + { url = "https://files.pythonhosted.org/packages/a4/89/5b057c799de4838b6c69aa82b79705f2027615e01be996d2486a69ca99c4/frozenlist-1.8.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:33139dc858c580ea50e7e60a1b0ea003efa1fd42e6ec7fdbad78fff65fad2fd2", size = 300318, upload-time = "2025-10-06T05:37:43.213Z" }, + { url = "https://files.pythonhosted.org/packages/30/de/2c22ab3eb2a8af6d69dc799e48455813bab3690c760de58e1bf43b36da3e/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:168c0969a329b416119507ba30b9ea13688fafffac1b7822802537569a1cb0ef", size = 282814, upload-time = "2025-10-06T05:37:45.337Z" }, + { url = "https://files.pythonhosted.org/packages/59/f7/970141a6a8dbd7f556d94977858cfb36fa9b66e0892c6dd780d2219d8cd8/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:28bd570e8e189d7f7b001966435f9dac6718324b5be2990ac496cf1ea9ddb7fe", size = 291762, upload-time = "2025-10-06T05:37:46.657Z" }, + { url = "https://files.pythonhosted.org/packages/c1/15/ca1adae83a719f82df9116d66f5bb28bb95557b3951903d39135620ef157/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:b2a095d45c5d46e5e79ba1e5b9cb787f541a8dee0433836cea4b96a2c439dcd8", size = 289470, upload-time = "2025-10-06T05:37:47.946Z" }, + { url = "https://files.pythonhosted.org/packages/ac/83/dca6dc53bf657d371fbc88ddeb21b79891e747189c5de990b9dfff2ccba1/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:eab8145831a0d56ec9c4139b6c3e594c7a83c2c8be25d5bcf2d86136a532287a", size = 289042, upload-time = "2025-10-06T05:37:49.499Z" }, + { url = "https://files.pythonhosted.org/packages/96/52/abddd34ca99be142f354398700536c5bd315880ed0a213812bc491cff5e4/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:974b28cf63cc99dfb2188d8d222bc6843656188164848c4f679e63dae4b0708e", size = 283148, upload-time = "2025-10-06T05:37:50.745Z" }, + { url = "https://files.pythonhosted.org/packages/af/d3/76bd4ed4317e7119c2b7f57c3f6934aba26d277acc6309f873341640e21f/frozenlist-1.8.0-cp314-cp314t-win32.whl", hash = "sha256:342c97bf697ac5480c0a7ec73cd700ecfa5a8a40ac923bd035484616efecc2df", size = 44676, upload-time = "2025-10-06T05:37:52.222Z" }, + { url = "https://files.pythonhosted.org/packages/89/76/c615883b7b521ead2944bb3480398cbb07e12b7b4e4d073d3752eb721558/frozenlist-1.8.0-cp314-cp314t-win_amd64.whl", hash = "sha256:06be8f67f39c8b1dc671f5d83aaefd3358ae5cdcf8314552c57e7ed3e6475bdd", size = 49451, upload-time = "2025-10-06T05:37:53.425Z" }, + { url = "https://files.pythonhosted.org/packages/e0/a3/5982da14e113d07b325230f95060e2169f5311b1017ea8af2a29b374c289/frozenlist-1.8.0-cp314-cp314t-win_arm64.whl", hash = "sha256:102e6314ca4da683dca92e3b1355490fed5f313b768500084fbe6371fddfdb79", size = 42507, upload-time = "2025-10-06T05:37:54.513Z" }, + { url = "https://files.pythonhosted.org/packages/9a/9a/e35b4a917281c0b8419d4207f4334c8e8c5dbf4f3f5f9ada73958d937dcc/frozenlist-1.8.0-py3-none-any.whl", hash = "sha256:0c18a16eab41e82c295618a77502e17b195883241c563b00f0aa5106fc4eaa0d", size = 13409, upload-time = "2025-10-06T05:38:16.721Z" }, ] [[package]] name = "fsspec" -version = "2026.4.0" +version = "2026.9.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d5/8d/1c51c094345df128ca4a990d633fe1a0ff28726c9e6b3c41ba65087bba1d/fsspec-2026.4.0.tar.gz", hash = "sha256:301d8ac70ae90ef3ad05dcf94d6c3754a097f9b5fe4667d2787aa359ec7df7e4", size = 312760 } +sdist = { url = "https://files.pythonhosted.org/packages/77/cd/9be253869fc42e764de7f3dedd6969af7d44ff9c3375214a3442a6f3fc08/fsspec-2026.9.0.tar.gz", hash = "sha256:0f08147951c8cb31d844c3547d631053b127863b60be04cf06e121333ee0e2fe", size = 333545, upload-time = "2026-09-18T17:50:42.825Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d5/0c/043d5e551459da400957a1395e0febbf771446ff34291afcbe3d8be2a279/fsspec-2026.4.0-py3-none-any.whl", hash = "sha256:11ef7bb35dab8a394fde6e608221d5cf3e8499401c249bebaeaad760a1a8dec2", size = 203402 }, + { url = "https://files.pythonhosted.org/packages/6c/c0/a98505f18594f1bce828bb159cec0fcf9860562f1a2c85913409fc8f3d9e/fsspec-2026.9.0-py3-none-any.whl", hash = "sha256:8dd6e646e99ea382bd85f97a45e6b526a442d79423a7dc673f1e2756d05fcb5f", size = 221738, upload-time = "2026-09-18T17:50:41.341Z" }, ] [[package]] @@ -1012,75 +1046,62 @@ dependencies = [ { name = "numpy" }, { name = "packaging" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ef/03/92d6cc02c0055158167255980461155d6e17f1c4143c03f8bcc18d3e3f3a/h5netcdf-1.8.1.tar.gz", hash = "sha256:9b396a4cc346050fc1a4df8523bc1853681ec3544e0449027ae397cb953c7a16", size = 78679 } +sdist = { url = "https://files.pythonhosted.org/packages/ef/03/92d6cc02c0055158167255980461155d6e17f1c4143c03f8bcc18d3e3f3a/h5netcdf-1.8.1.tar.gz", hash = "sha256:9b396a4cc346050fc1a4df8523bc1853681ec3544e0449027ae397cb953c7a16", size = 78679, upload-time = "2026-01-23T07:35:31.233Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b1/8b/88f16936a8e8070a83d36239555227ecd91728f9ef222c5382cda07e0fd6/h5netcdf-1.8.1-py3-none-any.whl", hash = "sha256:a76ed7cfc9b8a8908ea7057c4e57e27307acff1049b7f5ed52db6c2247636879", size = 62915 }, + { url = "https://files.pythonhosted.org/packages/b1/8b/88f16936a8e8070a83d36239555227ecd91728f9ef222c5382cda07e0fd6/h5netcdf-1.8.1-py3-none-any.whl", hash = "sha256:a76ed7cfc9b8a8908ea7057c4e57e27307acff1049b7f5ed52db6c2247636879", size = 62915, upload-time = "2026-01-23T07:35:30.195Z" }, ] [[package]] name = "h5py" -version = "3.16.0" +version = "3.14.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/db/33/acd0ce6863b6c0d7735007df01815403f5589a21ff8c2e1ee2587a38f548/h5py-3.16.0.tar.gz", hash = "sha256:a0dbaad796840ccaa67a4c144a0d0c8080073c34c76d5a6941d6818678ef2738", size = 446526 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c8/c0/5d4119dba94093bbafede500d3defd2f5eab7897732998c04b54021e530b/h5py-3.16.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c5313566f4643121a78503a473f0fb1e6dcc541d5115c44f05e037609c565c4d", size = 3685604 }, - { url = "https://files.pythonhosted.org/packages/b0/42/c84efcc1d4caebafb1ecd8be4643f39c85c47a80fe254d92b8b43b1eadaf/h5py-3.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:42b012933a83e1a558c673176676a10ce2fd3759976a0fedee1e672d1e04fc9d", size = 3061940 }, - { url = "https://files.pythonhosted.org/packages/89/84/06281c82d4d1686fde1ac6b0f307c50918f1c0151062445ab3b6fa5a921d/h5py-3.16.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:ff24039e2573297787c3063df64b60aab0591980ac898329a08b0320e0cf2527", size = 5198852 }, - { url = "https://files.pythonhosted.org/packages/9e/e9/1a19e42cd43cc1365e127db6aae85e1c671da1d9a5d746f4d34a50edb577/h5py-3.16.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:dfc21898ff025f1e8e67e194965a95a8d4754f452f83454538f98f8a3fcb207e", size = 5405250 }, - { url = "https://files.pythonhosted.org/packages/b7/8e/9790c1655eabeb85b92b1ecab7d7e62a2069e53baefd58c98f0909c7a948/h5py-3.16.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:698dd69291272642ffda44a0ecd6cd3bda5faf9621452d255f57ce91487b9794", size = 5190108 }, - { url = "https://files.pythonhosted.org/packages/51/d7/ab693274f1bd7e8c5f9fdd6c7003a88d59bedeaf8752716a55f532924fbb/h5py-3.16.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2b2c02b0a160faed5fb33f1ba8a264a37ee240b22e049ecc827345d0d9043074", size = 5419216 }, - { url = "https://files.pythonhosted.org/packages/03/c1/0976b235cf29ead553e22f2fb6385a8252b533715e00d0ae52ed7b900582/h5py-3.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:96b422019a1c8975c2d5dadcf61d4ba6f01c31f92bbde6e4649607885fe502d6", size = 3182868 }, - { url = "https://files.pythonhosted.org/packages/14/d9/866b7e570b39070f92d47b0ff1800f0f8239b6f9e45f02363d7112336c1f/h5py-3.16.0-cp312-cp312-win_arm64.whl", hash = "sha256:39c2838fb1e8d97bcf1755e60ad1f3dd76a7b2a475928dc321672752678b96db", size = 2653286 }, - { url = "https://files.pythonhosted.org/packages/0f/9e/6142ebfda0cb6e9349c091eae73c2e01a770b7659255248d637bec54a88b/h5py-3.16.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:370a845f432c2c9619db8eed334d1e610c6015796122b0e57aa46312c22617d9", size = 3671808 }, - { url = "https://files.pythonhosted.org/packages/b0/65/5e088a45d0f43cd814bc5bec521c051d42005a472e804b1a36c48dada09b/h5py-3.16.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:42108e93326c50c2810025aade9eac9d6827524cdccc7d4b75a546e5ab308edb", size = 3045837 }, - { url = "https://files.pythonhosted.org/packages/da/1e/6172269e18cc5a484e2913ced33339aad588e02ba407fafd00d369e22ef3/h5py-3.16.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:099f2525c9dcf28de366970a5fb34879aab20491589fa89ce2863a84218bb524", size = 5193860 }, - { url = "https://files.pythonhosted.org/packages/bd/98/ef2b6fe2903e377cbe870c3b2800d62552f1e3dbe81ce49e1923c53d1c5c/h5py-3.16.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:9300ad32dea9dfc5171f94d5f6948e159ed93e4701280b0f508773b3f582f402", size = 5400417 }, - { url = "https://files.pythonhosted.org/packages/bc/81/5b62d760039eed64348c98129d17061fdfc7839fc9c04eaaad6dee1004e4/h5py-3.16.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:171038f23bccddfc23f344cadabdfc9917ff554db6a0d417180d2747fe4c75a7", size = 5185214 }, - { url = "https://files.pythonhosted.org/packages/28/c4/532123bcd9080e250696779c927f2cb906c8bf3447df98f5ceb8dcded539/h5py-3.16.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7e420b539fb6023a259a1b14d4c9f6df8cf50d7268f48e161169987a57b737ff", size = 5414598 }, - { url = "https://files.pythonhosted.org/packages/c3/d9/a27997f84341fc0dfcdd1fe4179b6ba6c32a7aa880fdb8c514d4dad6fba3/h5py-3.16.0-cp313-cp313-win_amd64.whl", hash = "sha256:18f2bbcd545e6991412253b98727374c356d67caa920e68dc79eab36bf5fedad", size = 3175509 }, - { url = "https://files.pythonhosted.org/packages/a5/23/bb8647521d4fd770c30a76cfc6cb6a2f5495868904054e92f2394c5a78ff/h5py-3.16.0-cp313-cp313-win_arm64.whl", hash = "sha256:656f00e4d903199a1d58df06b711cf3ca632b874b4207b7dbec86185b5c8c7d4", size = 2647362 }, - { url = "https://files.pythonhosted.org/packages/48/3c/7fcd9b4c9eed82e91fb15568992561019ae7a829d1f696b2c844355d95dd/h5py-3.16.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:9c9d307c0ef862d1cd5714f72ecfafe0a5d7529c44845afa8de9f46e5ba8bd65", size = 3678608 }, - { url = "https://files.pythonhosted.org/packages/6a/b7/9366ed44ced9b7ef357ab48c94205280276db9d7f064aa3012a97227e966/h5py-3.16.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:8c1eff849cdd53cbc73c214c30ebdb6f1bb8b64790b4b4fc36acdb5e43570210", size = 3054773 }, - { url = "https://files.pythonhosted.org/packages/58/a5/4964bc0e91e86340c2bbda83420225b2f770dcf1eb8a39464871ad769436/h5py-3.16.0-cp314-cp314-manylinux_2_28_aarch64.whl", hash = "sha256:e2c04d129f180019e216ee5f9c40b78a418634091c8782e1f723a6ca3658b965", size = 5198886 }, - { url = "https://files.pythonhosted.org/packages/f1/16/d905e7f53e661ce2c24686c38048d8e2b750ffc4350009d41c4e6c6c9826/h5py-3.16.0-cp314-cp314-manylinux_2_28_x86_64.whl", hash = "sha256:e4360f15875a532bc7b98196c7592ed4fc92672a57c0a621355961cafb17a6dd", size = 5404883 }, - { url = "https://files.pythonhosted.org/packages/4b/f2/58f34cb74af46d39f4cd18ea20909a8514960c5a3e5b92fd06a28161e0a8/h5py-3.16.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:3fae9197390c325e62e0a1aa977f2f62d994aa87aab182abbea85479b791197c", size = 5192039 }, - { url = "https://files.pythonhosted.org/packages/ce/ca/934a39c24ce2e2db017268c08da0537c20fa0be7e1549be3e977313fc8f5/h5py-3.16.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:43259303989ac8adacc9986695b31e35dba6fd1e297ff9c6a04b7da5542139cc", size = 5421526 }, - { url = "https://files.pythonhosted.org/packages/3e/14/615a450205e1b56d16c6783f5ccd116cde05550faad70ae077c955654a75/h5py-3.16.0-cp314-cp314-win_amd64.whl", hash = "sha256:fa48993a0b799737ba7fd21e2350fa0a60701e58180fae9f2de834bc39a147ab", size = 3183263 }, - { url = "https://files.pythonhosted.org/packages/7b/48/a6faef5ed632cae0c65ac6b214a6614a0b510c3183532c521bdb0055e117/h5py-3.16.0-cp314-cp314-win_arm64.whl", hash = "sha256:1897a771a7f40d05c262fc8f37376ec37873218544b70216872876c627640f63", size = 2663450 }, - { url = "https://files.pythonhosted.org/packages/5d/32/0c8bb8aedb62c772cf7c1d427c7d1951477e8c2835f872bc0a13d1f85f86/h5py-3.16.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:15922e485844f77c0b9d275396d435db3baa58292a9c2176a386e072e0cf2491", size = 3760693 }, - { url = "https://files.pythonhosted.org/packages/1d/1f/fcc5977d32d6387c5c9a694afee716a5e20658ac08b3ff24fdec79fb05f2/h5py-3.16.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:df02dd29bd247f98674634dfe41f89fd7c16ba3d7de8695ec958f58404a4e618", size = 3181305 }, - { url = "https://files.pythonhosted.org/packages/f5/a1/af87f64b9f986889884243643621ebbd4ac72472ba8ec8cec891ac8e2ca1/h5py-3.16.0-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:0f456f556e4e2cebeebd9d66adf8dc321770a42593494a0b6f0af54a7567b242", size = 5074061 }, - { url = "https://files.pythonhosted.org/packages/cc/d0/146f5eaff3dc246a9c7f6e5e4f42bd45cc613bce16693bcd4d1f7c958bf5/h5py-3.16.0-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:3e6cb3387c756de6a9492d601553dffea3fe11b5f22b443aac708c69f3f55e16", size = 5279216 }, - { url = "https://files.pythonhosted.org/packages/a1/9d/12a13424f1e604fc7df9497b73c0356fb78c2fb206abd7465ce47226e8fd/h5py-3.16.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8389e13a1fd745ad2856873e8187fd10268b2d9677877bb667b41aebd771d8b7", size = 5070068 }, - { url = "https://files.pythonhosted.org/packages/41/8c/bbe98f813722b4873818a8db3e15aa3e625b59278566905ac439725e8070/h5py-3.16.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:346df559a0f7dcb31cf8e44805319e2ab24b8957c45e7708ce503b2ec79ba725", size = 5300253 }, - { url = "https://files.pythonhosted.org/packages/32/9e/87e6705b4d6890e7cecdf876e2a7d3e40654a2ae37482d79a6f1b87f7b92/h5py-3.16.0-cp314-cp314t-win_amd64.whl", hash = "sha256:4c6ab014ab704b4feaa719ae783b86522ed0bf1f82184704ed3c9e4e3228796e", size = 3381671 }, - { url = "https://files.pythonhosted.org/packages/96/91/9fad90cfc5f9b2489c7c26ad897157bce82f0e9534a986a221b99760b23b/h5py-3.16.0-cp314-cp314t-win_arm64.whl", hash = "sha256:faca8fb4e4319c09d83337adc80b2ca7d5c5a343c2d6f1b6388f32cfecca13c1", size = 2740706 }, +sdist = { url = "https://files.pythonhosted.org/packages/5d/57/dfb3c5c3f1bf5f5ef2e59a22dec4ff1f3d7408b55bfcefcfb0ea69ef21c6/h5py-3.14.0.tar.gz", hash = "sha256:2372116b2e0d5d3e5e705b7f663f7c8d96fa79a4052d250484ef91d24d6a08f4", size = 424323, upload-time = "2025-06-06T14:06:15.01Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3e/77/8f651053c1843391e38a189ccf50df7e261ef8cd8bfd8baba0cbe694f7c3/h5py-3.14.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e0045115d83272090b0717c555a31398c2c089b87d212ceba800d3dc5d952e23", size = 3312740, upload-time = "2025-06-06T14:05:01.193Z" }, + { url = "https://files.pythonhosted.org/packages/ff/10/20436a6cf419b31124e59fefc78d74cb061ccb22213226a583928a65d715/h5py-3.14.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6da62509b7e1d71a7d110478aa25d245dd32c8d9a1daee9d2a42dba8717b047a", size = 2829207, upload-time = "2025-06-06T14:05:05.061Z" }, + { url = "https://files.pythonhosted.org/packages/3f/19/c8bfe8543bfdd7ccfafd46d8cfd96fce53d6c33e9c7921f375530ee1d39a/h5py-3.14.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:554ef0ced3571366d4d383427c00c966c360e178b5fb5ee5bb31a435c424db0c", size = 4708455, upload-time = "2025-06-06T14:05:11.528Z" }, + { url = "https://files.pythonhosted.org/packages/86/f9/f00de11c82c88bfc1ef22633557bfba9e271e0cb3189ad704183fc4a2644/h5py-3.14.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0cbd41f4e3761f150aa5b662df991868ca533872c95467216f2bec5fcad84882", size = 4929422, upload-time = "2025-06-06T14:05:18.399Z" }, + { url = "https://files.pythonhosted.org/packages/7a/6d/6426d5d456f593c94b96fa942a9b3988ce4d65ebaf57d7273e452a7222e8/h5py-3.14.0-cp312-cp312-win_amd64.whl", hash = "sha256:bf4897d67e613ecf5bdfbdab39a1158a64df105827da70ea1d90243d796d367f", size = 2862845, upload-time = "2025-06-06T14:05:23.699Z" }, + { url = "https://files.pythonhosted.org/packages/6c/c2/7efe82d09ca10afd77cd7c286e42342d520c049a8c43650194928bcc635c/h5py-3.14.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:aa4b7bbce683379b7bf80aaba68e17e23396100336a8d500206520052be2f812", size = 3289245, upload-time = "2025-06-06T14:05:28.24Z" }, + { url = "https://files.pythonhosted.org/packages/4f/31/f570fab1239b0d9441024b92b6ad03bb414ffa69101a985e4c83d37608bd/h5py-3.14.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ef9603a501a04fcd0ba28dd8f0995303d26a77a980a1f9474b3417543d4c6174", size = 2807335, upload-time = "2025-06-06T14:05:31.997Z" }, + { url = "https://files.pythonhosted.org/packages/0d/ce/3a21d87896bc7e3e9255e0ad5583ae31ae9e6b4b00e0bcb2a67e2b6acdbc/h5py-3.14.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8cbaf6910fa3983c46172666b0b8da7b7bd90d764399ca983236f2400436eeb", size = 4700675, upload-time = "2025-06-06T14:05:37.38Z" }, + { url = "https://files.pythonhosted.org/packages/e7/ec/86f59025306dcc6deee5fda54d980d077075b8d9889aac80f158bd585f1b/h5py-3.14.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d90e6445ab7c146d7f7981b11895d70bc1dd91278a4f9f9028bc0c95e4a53f13", size = 4921632, upload-time = "2025-06-06T14:05:43.464Z" }, + { url = "https://files.pythonhosted.org/packages/3f/6d/0084ed0b78d4fd3e7530c32491f2884140d9b06365dac8a08de726421d4a/h5py-3.14.0-cp313-cp313-win_amd64.whl", hash = "sha256:ae18e3de237a7a830adb76aaa68ad438d85fe6e19e0d99944a3ce46b772c69b3", size = 2852929, upload-time = "2025-06-06T14:05:47.659Z" }, ] [[package]] name = "idna" -version = "3.18" +version = "3.20" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/cd/63/9496c57188a2ee585e0f1db071d75089a11e98aa86eb99d9d7618fc1edce/idna-3.18.tar.gz", hash = "sha256:ffb385a7e039654cef1ab9ef32c6fafe283c0c0467bba1d9029738ce4a14a848", size = 196711 } +sdist = { url = "https://files.pythonhosted.org/packages/f5/08/8eea9d4b8302028f3abb2c0813953f7aec26d33b7a8960ed760e65ff29fa/idna-3.20.tar.gz", hash = "sha256:a7db850025b95ded1eae8a46181a1a6c56c92c96f0e2b005d9ff8dc0210cab44", size = 216463, upload-time = "2026-09-17T14:11:04.752Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl", hash = "sha256:7f952cbe720b688055e3f87de14f5c3e5fdaa8bc3928985c4077ca689de849a2", size = 65455 }, + { url = "https://files.pythonhosted.org/packages/58/a2/bb081bab032533a855d44de1d56f8e8426114ff1ba5d1f07a438a0a654f8/idna-3.20-py3-none-any.whl", hash = "sha256:ab7ae7122974553370f0bdb919e1a960b2cd1bc1ef0276416d896db81c14582c", size = 69583, upload-time = "2026-09-17T14:11:03.168Z" }, ] [[package]] name = "iniconfig" -version = "2.3.0" +version = "2.3.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730", size = 20503 } +sdist = { url = "https://files.pythonhosted.org/packages/01/e1/2069291243c926a2ff1cd706c7f3eeb9b62144bf60f77c9fb9ff2fb26bd3/iniconfig-2.3.1.tar.gz", hash = "sha256:67f4b9c50da0dedf52af349e7749a80a9057a5031199791b906c3bb3ae878960", size = 21209, upload-time = "2026-10-06T22:48:38.076Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 7484 }, + { url = "https://files.pythonhosted.org/packages/56/43/4ca9e49d27a1fcf6bece6f6aec0ea46bb9112489b93d4b688fb415457bdb/iniconfig-2.3.1-py3-none-any.whl", hash = "sha256:9121e2c1fdb355232495be3194c8dfe87ccc2d5dee45947b78e68f499790d7a7", size = 7552, upload-time = "2026-10-06T22:48:36.959Z" }, +] + +[[package]] +name = "interface-meta" +version = "2.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/28/5b/202a48a1ccdef721a95357fbe263c54ef87c18c4972df1ab5c22fe0f33d5/interface_meta-2.0.1.tar.gz", hash = "sha256:902bd9a95a12f195f15753a1080075d4eca7a2cb934fac7ac03c9e362b50796a", size = 15281, upload-time = "2026-04-30T22:35:36.882Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a1/d3/20a61a248feb1249cd81f83ce731f0bdf5170ed96a08a298f7081cda9e90/interface_meta-2.0.1-py3-none-any.whl", hash = "sha256:f38016bef9a4429b6d0792d809be7b65e9781820c674bf7f463999086b6e6323", size = 15330, upload-time = "2026-04-30T22:35:35.201Z" }, ] [[package]] name = "ipykernel" -version = "7.2.0" +version = "7.4.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "appnope", marker = "sys_platform == 'darwin'" }, @@ -1090,38 +1111,36 @@ dependencies = [ { name = "jupyter-client" }, { name = "jupyter-core" }, { name = "matplotlib-inline" }, - { name = "nest-asyncio" }, + { name = "nest-asyncio2" }, { name = "packaging" }, - { name = "psutil" }, { name = "pyzmq" }, { name = "tornado" }, { name = "traitlets" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ca/8d/b68b728e2d06b9e0051019640a40a9eb7a88fcd82c2e1b5ce70bef5ff044/ipykernel-7.2.0.tar.gz", hash = "sha256:18ed160b6dee2cbb16e5f3575858bc19d8f1fe6046a9a680c708494ce31d909e", size = 176046 } +sdist = { url = "https://files.pythonhosted.org/packages/7a/05/e5499c8b762387d83926bf0389e8fff888c9bf6e7af30566a8527bc12f4a/ipykernel-7.4.0.tar.gz", hash = "sha256:4330114d22b9b33575b2c7c68753fc8faabbbcfbc60b0cdff9f14dd4ce63742f", size = 192731, upload-time = "2026-09-29T16:33:11.468Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/82/b9/e73d5d9f405cba7706c539aa8b311b49d4c2f3d698d9c12f815231169c71/ipykernel-7.2.0-py3-none-any.whl", hash = "sha256:3bbd4420d2b3cc105cbdf3756bfc04500b1e52f090a90716851f3916c62e1661", size = 118788 }, + { url = "https://files.pythonhosted.org/packages/a5/f8/8b5c10c7f36ab5a3b5c4703669e5b14e44e98782b58e535dd30670e8799a/ipykernel-7.4.0-py3-none-any.whl", hash = "sha256:a6757f790ddc5a6006b813d82da1a9dbb65b3a00f2b6607df776418c6566ec1c", size = 123184, upload-time = "2026-09-29T16:33:09.612Z" }, ] [[package]] name = "ipython" -version = "9.14.1" +version = "9.17.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, - { name = "decorator" }, { name = "ipython-pygments-lexers" }, { name = "jedi" }, { name = "matplotlib-inline" }, { name = "pexpect", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" }, { name = "prompt-toolkit" }, - { name = "psutil", marker = "sys_platform != 'emscripten'" }, + { name = "psutil", marker = "sys_platform != 'cygwin' and sys_platform != 'emscripten'" }, { name = "pygments" }, { name = "stack-data" }, { name = "traitlets" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e2/23/3a27530575643c8bb7bfc757a28e2e7ef80092afbf59a2bc5716320b6602/ipython-9.14.1.tar.gz", hash = "sha256:f913bf74df06d458e46ced84ca506c23797590d594b236fe60b14df213291e7b", size = 4433457 } +sdist = { url = "https://files.pythonhosted.org/packages/b9/32/99451b1283ec5d92ad77073f12e1c667dc10775384d8f15c2914207149dd/ipython-9.17.1.tar.gz", hash = "sha256:8919be8c27f20a6f4423145028063f6637b42a03ce57665bb12015ee1f073529", size = 4539289, upload-time = "2026-09-01T08:29:32.6Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/9d/22/58818a63eaf8982b67632b1bc20585c811611b15a8da19d6012323dc76a5/ipython-9.14.1-py3-none-any.whl", hash = "sha256:5d4a9ecaa3b10e6e5f269dd0948bdb58ca9cb851899cd23e07c320d3eb11613c", size = 627770 }, + { url = "https://files.pythonhosted.org/packages/2d/1e/65b59cf518c106aa755e7f7da3099027738687a862ec785060702a481320/ipython-9.17.1-py3-none-any.whl", hash = "sha256:6d1645743cfd1a07eb695d85aa2b5fa66721f8cbae9431d4049f7084bbf06509", size = 639038, upload-time = "2026-09-01T08:29:30.673Z" }, ] [[package]] @@ -1131,21 +1150,21 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pygments" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ef/4c/5dd1d8af08107f88c7f741ead7a40854b8ac24ddf9ae850afbcf698aa552/ipython_pygments_lexers-1.1.1.tar.gz", hash = "sha256:09c0138009e56b6854f9535736f4171d855c8c08a563a0dcd8022f78355c7e81", size = 8393 } +sdist = { url = "https://files.pythonhosted.org/packages/ef/4c/5dd1d8af08107f88c7f741ead7a40854b8ac24ddf9ae850afbcf698aa552/ipython_pygments_lexers-1.1.1.tar.gz", hash = "sha256:09c0138009e56b6854f9535736f4171d855c8c08a563a0dcd8022f78355c7e81", size = 8393, upload-time = "2025-01-17T11:24:34.505Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d9/33/1f075bf72b0b747cb3288d011319aaf64083cf2efef8354174e3ed4540e2/ipython_pygments_lexers-1.1.1-py3-none-any.whl", hash = "sha256:a9462224a505ade19a605f71f8fa63c2048833ce50abc86768a0d81d876dc81c", size = 8074 }, + { url = "https://files.pythonhosted.org/packages/d9/33/1f075bf72b0b747cb3288d011319aaf64083cf2efef8354174e3ed4540e2/ipython_pygments_lexers-1.1.1-py3-none-any.whl", hash = "sha256:a9462224a505ade19a605f71f8fa63c2048833ce50abc86768a0d81d876dc81c", size = 8074, upload-time = "2025-01-17T11:24:33.271Z" }, ] [[package]] name = "jedi" -version = "0.20.0" +version = "0.20.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "parso" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/46/b7/a3635f6a2d7cf5b5dd98064fc1d5fbbafcb25477bcea204a3a92145d158b/jedi-0.20.0.tar.gz", hash = "sha256:c3f4ccbd276696f4b19c54618d4fb18f9fc24b0aef02acf704b23f487daa1011", size = 3119416 } +sdist = { url = "https://files.pythonhosted.org/packages/a3/a4/4692ecd7fa700ac1066b1c1f6cadef60aa2e01e5e364710235137d823e0a/jedi-0.20.1.tar.gz", hash = "sha256:2f71208c3f9c1bca057c0e90d3f272aba44ace88fc4067d7587e9e069331b7e5", size = 3121738, upload-time = "2026-10-12T17:42:24.361Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/9a/93/242e2eab5fe682ffcb8b0084bde703a41d51e17ee0f3a31ff0d9d813620a/jedi-0.20.0-py2.py3-none-any.whl", hash = "sha256:7bdd9c2634f56713299976f4cbd59cb3fa92165cc5e05ea811fb253480728b67", size = 4884812 }, + { url = "https://files.pythonhosted.org/packages/be/c7/71eb0d51cdcbb63b857c931aa4e9218b078b5d9f8ecd383b234f28fe7b0f/jedi-0.20.1-py2.py3-none-any.whl", hash = "sha256:0fb16d86c4a4c73c37ba518c77419975e30fcc620658a8d14fbb5720cdd34142", size = 4885980, upload-time = "2026-10-12T17:42:21.585Z" }, ] [[package]] @@ -1155,50 +1174,23 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "markupsafe" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", size = 245115 } +sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", size = 245115, upload-time = "2025-03-05T20:05:02.478Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899 }, + { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899, upload-time = "2025-03-05T20:05:00.369Z" }, ] [[package]] name = "jmespath" version = "1.1.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d3/59/322338183ecda247fb5d1763a6cbe46eff7222eaeebafd9fa65d4bf5cb11/jmespath-1.1.0.tar.gz", hash = "sha256:472c87d80f36026ae83c6ddd0f1d05d4e510134ed462851fd5f754c8c3cbb88d", size = 27377 } +sdist = { url = "https://files.pythonhosted.org/packages/d3/59/322338183ecda247fb5d1763a6cbe46eff7222eaeebafd9fa65d4bf5cb11/jmespath-1.1.0.tar.gz", hash = "sha256:472c87d80f36026ae83c6ddd0f1d05d4e510134ed462851fd5f754c8c3cbb88d", size = 27377, upload-time = "2026-01-22T16:35:26.279Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/14/2f/967ba146e6d58cf6a652da73885f52fc68001525b4197effc174321d70b4/jmespath-1.1.0-py3-none-any.whl", hash = "sha256:a5663118de4908c91729bea0acadca56526eb2698e83de10cd116ae0f4e97c64", size = 20419 }, -] - -[[package]] -name = "jsonschema" -version = "4.26.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "attrs" }, - { name = "jsonschema-specifications" }, - { name = "referencing" }, - { name = "rpds-py" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/b3/fc/e067678238fa451312d4c62bf6e6cf5ec56375422aee02f9cb5f909b3047/jsonschema-4.26.0.tar.gz", hash = "sha256:0c26707e2efad8aa1bfc5b7ce170f3fccc2e4918ff85989ba9ffa9facb2be326", size = 366583 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/69/90/f63fb5873511e014207a475e2bb4e8b2e570d655b00ac19a9a0ca0a385ee/jsonschema-4.26.0-py3-none-any.whl", hash = "sha256:d489f15263b8d200f8387e64b4c3a75f06629559fb73deb8fdfb525f2dab50ce", size = 90630 }, -] - -[[package]] -name = "jsonschema-specifications" -version = "2025.9.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "referencing" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/19/74/a633ee74eb36c44aa6d1095e7cc5569bebf04342ee146178e2d36600708b/jsonschema_specifications-2025.9.1.tar.gz", hash = "sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d", size = 32855 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl", hash = "sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe", size = 18437 }, + { url = "https://files.pythonhosted.org/packages/14/2f/967ba146e6d58cf6a652da73885f52fc68001525b4197effc174321d70b4/jmespath-1.1.0-py3-none-any.whl", hash = "sha256:a5663118de4908c91729bea0acadca56526eb2698e83de10cd116ae0f4e97c64", size = 20419, upload-time = "2026-01-22T16:35:24.919Z" }, ] [[package]] name = "jupyter-client" -version = "8.9.0" +version = "8.10.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "jupyter-core" }, @@ -1208,9 +1200,9 @@ dependencies = [ { name = "traitlets" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/9c/a2/9ef7832e6c7d619a35bf6732d199a850ef3b6db4af1cd783a71f81eaeab0/jupyter_client-8.9.0.tar.gz", hash = "sha256:23c0c182e1901ffdab96b5a02cb7bc6f0b04524fd7fc43688a14c4ff2308fb77", size = 358714 } +sdist = { url = "https://files.pythonhosted.org/packages/c5/2a/906772148a06e48885039e0250c340b770a55bbf37b08d6ee0449df369c3/jupyter_client-8.10.0.tar.gz", hash = "sha256:9f7116294dca55f1785be880057d44544db9b1567718d92cb33c58886afb9497", size = 360653, upload-time = "2026-08-28T12:17:10.854Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ef/ce/93ccaca54d41327491b1f6d7341d0eef49f71e8929f875b53c45446335ca/jupyter_client-8.9.0-py3-none-any.whl", hash = "sha256:a0efc16adcec2bb6669d2cf91e3ba5337b338bd1ecd0d9c70940752fcb1144b2", size = 109723 }, + { url = "https://files.pythonhosted.org/packages/0f/88/7c548de1f6c2ade7c931a3282da73f9274fa6a1531091be682f89c85efb9/jupyter_client-8.10.0-py3-none-any.whl", hash = "sha256:5f73f24f22fa25192cfff6b23c051932a2473a797b05734aff495b392103e14e", size = 110184, upload-time = "2026-08-28T12:17:09.028Z" }, ] [[package]] @@ -1221,104 +1213,128 @@ dependencies = [ { name = "platformdirs" }, { name = "traitlets" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/02/49/9d1284d0dc65e2c757b74c6687b6d319b02f822ad039e5c512df9194d9dd/jupyter_core-5.9.1.tar.gz", hash = "sha256:4d09aaff303b9566c3ce657f580bd089ff5c91f5f89cf7d8846c3cdf465b5508", size = 89814 } +sdist = { url = "https://files.pythonhosted.org/packages/02/49/9d1284d0dc65e2c757b74c6687b6d319b02f822ad039e5c512df9194d9dd/jupyter_core-5.9.1.tar.gz", hash = "sha256:4d09aaff303b9566c3ce657f580bd089ff5c91f5f89cf7d8846c3cdf465b5508", size = 89814, upload-time = "2025-10-16T19:19:18.444Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e7/e7/80988e32bf6f73919a113473a604f5a8f09094de312b9d52b79c2df7612b/jupyter_core-5.9.1-py3-none-any.whl", hash = "sha256:ebf87fdc6073d142e114c72c9e29a9d7ca03fad818c5d300ce2adc1fb0743407", size = 29032 }, + { url = "https://files.pythonhosted.org/packages/e7/e7/80988e32bf6f73919a113473a604f5a8f09094de312b9d52b79c2df7612b/jupyter_core-5.9.1-py3-none-any.whl", hash = "sha256:ebf87fdc6073d142e114c72c9e29a9d7ca03fad818c5d300ce2adc1fb0743407", size = 29032, upload-time = "2025-10-16T19:19:16.783Z" }, ] [[package]] name = "kiwisolver" -version = "1.5.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d0/67/9c61eccb13f0bdca9307614e782fec49ffdde0f7a2314935d489fa93cd9c/kiwisolver-1.5.0.tar.gz", hash = "sha256:d4193f3d9dc3f6f79aaed0e5637f45d98850ebf01f7ca20e69457f3e8946b66a", size = 103482 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/4d/b2/818b74ebea34dabe6d0c51cb1c572e046730e64844da6ed646d5298c40ce/kiwisolver-1.5.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:4e9750bc21b886308024f8a54ccb9a2cc38ac9fa813bf4348434e3d54f337ff9", size = 123158 }, - { url = "https://files.pythonhosted.org/packages/bf/d9/405320f8077e8e1c5c4bd6adc45e1e6edf6d727b6da7f2e2533cf58bff71/kiwisolver-1.5.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:72ec46b7eba5b395e0a7b63025490d3214c11013f4aacb4f5e8d6c3041829588", size = 66388 }, - { url = "https://files.pythonhosted.org/packages/99/9f/795fedf35634f746151ca8839d05681ceb6287fbed6cc1c9bf235f7887c2/kiwisolver-1.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ed3a984b31da7481b103f68776f7128a89ef26ed40f4dc41a2223cda7fb24819", size = 64068 }, - { url = "https://files.pythonhosted.org/packages/c4/13/680c54afe3e65767bed7ec1a15571e1a2f1257128733851ade24abcefbcc/kiwisolver-1.5.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:bb5136fb5352d3f422df33f0c879a1b0c204004324150cc3b5e3c4f310c9049f", size = 1477934 }, - { url = "https://files.pythonhosted.org/packages/c8/2f/cebfcdb60fd6a9b0f6b47a9337198bcbad6fbe15e68189b7011fd914911f/kiwisolver-1.5.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b2af221f268f5af85e776a73d62b0845fc8baf8ef0abfae79d29c77d0e776aaf", size = 1278537 }, - { url = "https://files.pythonhosted.org/packages/f2/0d/9b782923aada3fafb1d6b84e13121954515c669b18af0c26e7d21f579855/kiwisolver-1.5.0-cp312-cp312-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b0f172dc8ffaccb8522d7c5d899de00133f2f1ca7b0a49b7da98e901de87bf2d", size = 1296685 }, - { url = "https://files.pythonhosted.org/packages/27/70/83241b6634b04fe44e892688d5208332bde130f38e610c0418f9ede47ded/kiwisolver-1.5.0-cp312-cp312-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:6ab8ba9152203feec73758dad83af9a0bbe05001eb4639e547207c40cfb52083", size = 1346024 }, - { url = "https://files.pythonhosted.org/packages/e4/db/30ed226fb271ae1a6431fc0fe0edffb2efe23cadb01e798caeb9f2ceae8f/kiwisolver-1.5.0-cp312-cp312-manylinux_2_39_riscv64.whl", hash = "sha256:cdee07c4d7f6d72008d3f73b9bf027f4e11550224c7c50d8df1ae4a37c1402a6", size = 987241 }, - { url = "https://files.pythonhosted.org/packages/ec/bd/c314595208e4c9587652d50959ead9e461995389664e490f4dce7ff0f782/kiwisolver-1.5.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7c60d3c9b06fb23bd9c6139281ccbdc384297579ae037f08ae90c69f6845c0b1", size = 2227742 }, - { url = "https://files.pythonhosted.org/packages/c1/43/0499cec932d935229b5543d073c2b87c9c22846aab48881e9d8d6e742a2d/kiwisolver-1.5.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:e315e5ec90d88e140f57696ff85b484ff68bb311e36f2c414aa4286293e6dee0", size = 2323966 }, - { url = "https://files.pythonhosted.org/packages/3d/6f/79b0d760907965acfd9d61826a3d41f8f093c538f55cd2633d3f0db269f6/kiwisolver-1.5.0-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:1465387ac63576c3e125e5337a6892b9e99e0627d52317f3ca79e6930d889d15", size = 1977417 }, - { url = "https://files.pythonhosted.org/packages/ab/31/01d0537c41cb75a551a438c3c7a80d0c60d60b81f694dac83dd436aec0d0/kiwisolver-1.5.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:530a3fd64c87cffa844d4b6b9768774763d9caa299e9b75d8eca6a4423b31314", size = 2491238 }, - { url = "https://files.pythonhosted.org/packages/e4/34/8aefdd0be9cfd00a44509251ba864f5caf2991e36772e61c408007e7f417/kiwisolver-1.5.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1d9daea4ea6b9be74fe2f01f7fbade8d6ffab263e781274cffca0dba9be9eec9", size = 2294947 }, - { url = "https://files.pythonhosted.org/packages/ad/cf/0348374369ca588f8fe9c338fae49fa4e16eeb10ffb3d012f23a54578a9e/kiwisolver-1.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:f18c2d9782259a6dc132fdc7a63c168cbc74b35284b6d75c673958982a378384", size = 73569 }, - { url = "https://files.pythonhosted.org/packages/28/26/192b26196e2316e2bd29deef67e37cdf9870d9af8e085e521afff0fed526/kiwisolver-1.5.0-cp312-cp312-win_arm64.whl", hash = "sha256:f7c7553b13f69c1b29a5bde08ddc6d9d0c8bfb84f9ed01c30db25944aeb852a7", size = 64997 }, - { url = "https://files.pythonhosted.org/packages/9d/69/024d6711d5ba575aa65d5538042e99964104e97fa153a9f10bc369182bc2/kiwisolver-1.5.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:fd40bb9cd0891c4c3cb1ddf83f8bbfa15731a248fdc8162669405451e2724b09", size = 123166 }, - { url = "https://files.pythonhosted.org/packages/ce/48/adbb40df306f587054a348831220812b9b1d787aff714cfbc8556e38fccd/kiwisolver-1.5.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c0e1403fd7c26d77c1f03e096dc58a5c726503fa0db0456678b8668f76f521e3", size = 66395 }, - { url = "https://files.pythonhosted.org/packages/a8/3a/d0a972b34e1c63e2409413104216cd1caa02c5a37cb668d1687d466c1c45/kiwisolver-1.5.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:dda366d548e89a90d88a86c692377d18d8bd64b39c1fb2b92cb31370e2896bbd", size = 64065 }, - { url = "https://files.pythonhosted.org/packages/2b/0a/7b98e1e119878a27ba8618ca1e18b14f992ff1eda40f47bccccf4de44121/kiwisolver-1.5.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:332b4f0145c30b5f5ad9374881133e5aa64320428a57c2c2b61e9d891a51c2f3", size = 1477903 }, - { url = "https://files.pythonhosted.org/packages/18/d8/55638d89ffd27799d5cc3d8aa28e12f4ce7a64d67b285114dbedc8ea4136/kiwisolver-1.5.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0c50b89ffd3e1a911c69a1dd3de7173c0cd10b130f56222e57898683841e4f96", size = 1278751 }, - { url = "https://files.pythonhosted.org/packages/b8/97/b4c8d0d18421ecceba20ad8701358453b88e32414e6f6950b5a4bad54e65/kiwisolver-1.5.0-cp313-cp313-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:4db576bb8c3ef9365f8b40fe0f671644de6736ae2c27a2c62d7d8a1b4329f099", size = 1296793 }, - { url = "https://files.pythonhosted.org/packages/c4/10/f862f94b6389d8957448ec9df59450b81bec4abb318805375c401a1e6892/kiwisolver-1.5.0-cp313-cp313-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0b85aad90cea8ac6797a53b5d5f2e967334fa4d1149f031c4537569972596cb8", size = 1346041 }, - { url = "https://files.pythonhosted.org/packages/a3/6a/f1650af35821eaf09de398ec0bc2aefc8f211f0cda50204c9f1673741ba9/kiwisolver-1.5.0-cp313-cp313-manylinux_2_39_riscv64.whl", hash = "sha256:d36ca54cb4c6c4686f7cbb7b817f66f5911c12ddb519450bbe86707155028f87", size = 987292 }, - { url = "https://files.pythonhosted.org/packages/de/19/d7fb82984b9238115fe629c915007be608ebd23dc8629703d917dbfaffd4/kiwisolver-1.5.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:38f4a703656f493b0ad185211ccfca7f0386120f022066b018eb5296d8613e23", size = 2227865 }, - { url = "https://files.pythonhosted.org/packages/7f/b9/46b7f386589fd222dac9e9de9c956ce5bcefe2ee73b4e79891381dda8654/kiwisolver-1.5.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:3ac2360e93cb41be81121755c6462cff3beaa9967188c866e5fce5cf13170859", size = 2324369 }, - { url = "https://files.pythonhosted.org/packages/92/8b/95e237cf3d9c642960153c769ddcbe278f182c8affb20cecc1cc983e7cc5/kiwisolver-1.5.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c95cab08d1965db3d84a121f1c7ce7479bdd4072c9b3dafd8fecce48a2e6b902", size = 1977989 }, - { url = "https://files.pythonhosted.org/packages/1b/95/980c9df53501892784997820136c01f62bc1865e31b82b9560f980c0e649/kiwisolver-1.5.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:fc20894c3d21194d8041a28b65622d5b86db786da6e3cfe73f0c762951a61167", size = 2491645 }, - { url = "https://files.pythonhosted.org/packages/cb/32/900647fd0840abebe1561792c6b31e6a7c0e278fc3973d30572a965ca14c/kiwisolver-1.5.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7a32f72973f0f950c1920475d5c5ea3d971b81b6f0ec53b8d0a956cc965f22e0", size = 2295237 }, - { url = "https://files.pythonhosted.org/packages/be/8a/be60e3bbcf513cc5a50f4a3e88e1dcecebb79c1ad607a7222877becaa101/kiwisolver-1.5.0-cp313-cp313-win_amd64.whl", hash = "sha256:0bf3acf1419fa93064a4c2189ac0b58e3be7872bf6ee6177b0d4c63dc4cea276", size = 73573 }, - { url = "https://files.pythonhosted.org/packages/4d/d2/64be2e429eb4fca7f7e1c52a91b12663aeaf25de3895e5cca0f47ef2a8d0/kiwisolver-1.5.0-cp313-cp313-win_arm64.whl", hash = "sha256:fa8eb9ecdb7efb0b226acec134e0d709e87a909fa4971a54c0c4f6e88635484c", size = 64998 }, - { url = "https://files.pythonhosted.org/packages/b0/69/ce68dd0c85755ae2de490bf015b62f2cea5f6b14ff00a463f9d0774449ff/kiwisolver-1.5.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:db485b3847d182b908b483b2ed133c66d88d49cacf98fd278fadafe11b4478d1", size = 125700 }, - { url = "https://files.pythonhosted.org/packages/74/aa/937aac021cf9d4349990d47eb319309a51355ed1dbdc9c077cdc9224cb11/kiwisolver-1.5.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:be12f931839a3bdfe28b584db0e640a65a8bcbc24560ae3fdb025a449b3d754e", size = 67537 }, - { url = "https://files.pythonhosted.org/packages/ee/20/3a87fbece2c40ad0f6f0aefa93542559159c5f99831d596050e8afae7a9f/kiwisolver-1.5.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:16b85d37c2cbb3253226d26e64663f755d88a03439a9c47df6246b35defbdfb7", size = 65514 }, - { url = "https://files.pythonhosted.org/packages/f0/7f/f943879cda9007c45e1f7dba216d705c3a18d6b35830e488b6c6a4e7cdf0/kiwisolver-1.5.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4432b835675f0ea7414aab3d37d119f7226d24869b7a829caeab49ebda407b0c", size = 1584848 }, - { url = "https://files.pythonhosted.org/packages/37/f8/4d4f85cc1870c127c88d950913370dd76138482161cd07eabbc450deff01/kiwisolver-1.5.0-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1b0feb50971481a2cc44d94e88bdb02cdd497618252ae226b8eb1201b957e368", size = 1391542 }, - { url = "https://files.pythonhosted.org/packages/04/0b/65dd2916c84d252b244bd405303220f729e7c17c9d7d33dca6feeff9ffc4/kiwisolver-1.5.0-cp313-cp313t-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:56fa888f10d0f367155e76ce849fa1166fc9730d13bd2d65a2aa13b6f5424489", size = 1404447 }, - { url = "https://files.pythonhosted.org/packages/39/5c/2606a373247babce9b1d056c03a04b65f3cf5290a8eac5d7bdead0a17e21/kiwisolver-1.5.0-cp313-cp313t-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:940dda65d5e764406b9fb92761cbf462e4e63f712ab60ed98f70552e496f3bf1", size = 1455918 }, - { url = "https://files.pythonhosted.org/packages/d5/d1/c6078b5756670658e9192a2ef11e939c92918833d2745f85cd14a6004bdf/kiwisolver-1.5.0-cp313-cp313t-manylinux_2_39_riscv64.whl", hash = "sha256:89fc958c702ee9a745e4700378f5d23fddbc46ff89e8fdbf5395c24d5c1452a3", size = 1072856 }, - { url = "https://files.pythonhosted.org/packages/cb/c8/7def6ddf16eb2b3741d8b172bdaa9af882b03c78e9b0772975408801fa63/kiwisolver-1.5.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9027d773c4ff81487181a925945743413f6069634d0b122d0b37684ccf4f1e18", size = 2333580 }, - { url = "https://files.pythonhosted.org/packages/9e/87/2ac1fce0eb1e616fcd3c35caa23e665e9b1948bb984f4764790924594128/kiwisolver-1.5.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:5b233ea3e165e43e35dba1d2b8ecc21cf070b45b65ae17dd2747d2713d942021", size = 2423018 }, - { url = "https://files.pythonhosted.org/packages/67/13/c6700ccc6cc218716bfcda4935e4b2997039869b4ad8a94f364c5a3b8e63/kiwisolver-1.5.0-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:ce9bf03dad3b46408c08649c6fbd6ca28a9fce0eb32fdfffa6775a13103b5310", size = 2062804 }, - { url = "https://files.pythonhosted.org/packages/1b/bd/877056304626943ff0f1f44c08f584300c199b887cb3176cd7e34f1515f1/kiwisolver-1.5.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:fc4d3f1fb9ca0ae9f97b095963bc6326f1dbfd3779d6679a1e016b9baaa153d3", size = 2597482 }, - { url = "https://files.pythonhosted.org/packages/75/19/c60626c47bf0f8ac5dcf72c6c98e266d714f2fbbfd50cf6dab5ede3aaa50/kiwisolver-1.5.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f443b4825c50a51ee68585522ab4a1d1257fac65896f282b4c6763337ac9f5d2", size = 2394328 }, - { url = "https://files.pythonhosted.org/packages/47/84/6a6d5e5bb8273756c27b7d810d47f7ef2f1f9b9fd23c9ee9a3f8c75c9cef/kiwisolver-1.5.0-cp313-cp313t-win_arm64.whl", hash = "sha256:893ff3a711d1b515ba9da14ee090519bad4610ed1962fbe298a434e8c5f8db53", size = 68410 }, - { url = "https://files.pythonhosted.org/packages/e4/d7/060f45052f2a01ad5762c8fdecd6d7a752b43400dc29ff75cd47225a40fd/kiwisolver-1.5.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:8df31fe574b8b3993cc61764f40941111b25c2d9fea13d3ce24a49907cd2d615", size = 123231 }, - { url = "https://files.pythonhosted.org/packages/c2/a7/78da680eadd06ff35edef6ef68a1ad273bad3e2a0936c9a885103230aece/kiwisolver-1.5.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:1d49a49ac4cbfb7c1375301cd1ec90169dfeae55ff84710d782260ce77a75a02", size = 66489 }, - { url = "https://files.pythonhosted.org/packages/49/b2/97980f3ad4fae37dd7fe31626e2bf75fbf8bdf5d303950ec1fab39a12da8/kiwisolver-1.5.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0cbe94b69b819209a62cb27bdfa5dc2a8977d8de2f89dfd97ba4f53ed3af754e", size = 64063 }, - { url = "https://files.pythonhosted.org/packages/e7/f9/b06c934a6aa8bc91f566bd2a214fd04c30506c2d9e2b6b171953216a65b6/kiwisolver-1.5.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:80aa065ffd378ff784822a6d7c3212f2d5f5e9c3589614b5c228b311fd3063ac", size = 1475913 }, - { url = "https://files.pythonhosted.org/packages/6b/f0/f768ae564a710135630672981231320bc403cf9152b5596ec5289de0f106/kiwisolver-1.5.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e7f886f47ab881692f278ae901039a234e4025a68e6dfab514263a0b1c4ae05", size = 1282782 }, - { url = "https://files.pythonhosted.org/packages/e2/9f/1de7aad00697325f05238a5f2eafbd487fb637cc27a558b5367a5f37fb7f/kiwisolver-1.5.0-cp314-cp314-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5060731cc3ed12ca3a8b57acd4aeca5bbc2f49216dd0bec1650a1acd89486bcd", size = 1300815 }, - { url = "https://files.pythonhosted.org/packages/5a/c2/297f25141d2e468e0ce7f7a7b92e0cf8918143a0cbd3422c1ad627e85a06/kiwisolver-1.5.0-cp314-cp314-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7a4aa69609f40fce3cbc3f87b2061f042eee32f94b8f11db707b66a26461591a", size = 1347925 }, - { url = "https://files.pythonhosted.org/packages/b9/d3/f4c73a02eb41520c47610207b21afa8cdd18fdbf64ffd94674ae21c4812d/kiwisolver-1.5.0-cp314-cp314-manylinux_2_39_riscv64.whl", hash = "sha256:d168fda2dbff7b9b5f38e693182d792a938c31db4dac3a80a4888de603c99554", size = 991322 }, - { url = "https://files.pythonhosted.org/packages/7b/46/d3f2efef7732fcda98d22bf4ad5d3d71d545167a852ca710a494f4c15343/kiwisolver-1.5.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:413b820229730d358efd838ecbab79902fe97094565fdc80ddb6b0a18c18a581", size = 2232857 }, - { url = "https://files.pythonhosted.org/packages/3f/ec/2d9756bf2b6d26ae4349b8d3662fb3993f16d80c1f971c179ce862b9dbae/kiwisolver-1.5.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:5124d1ea754509b09e53738ec185584cc609aae4a3b510aaf4ed6aa047ef9303", size = 2329376 }, - { url = "https://files.pythonhosted.org/packages/8f/9f/876a0a0f2260f1bde92e002b3019a5fabc35e0939c7d945e0fa66185eb20/kiwisolver-1.5.0-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:e4415a8db000bf49a6dd1c478bf70062eaacff0f462b92b0ba68791a905861f9", size = 1982549 }, - { url = "https://files.pythonhosted.org/packages/6c/4f/ba3624dfac23a64d54ac4179832860cb537c1b0af06024936e82ca4154a0/kiwisolver-1.5.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:d618fd27420381a4f6044faa71f46d8bfd911bd077c555f7138ed88729bfbe79", size = 2494680 }, - { url = "https://files.pythonhosted.org/packages/39/b7/97716b190ab98911b20d10bf92eca469121ec483b8ce0edd314f51bc85af/kiwisolver-1.5.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5092eb5b1172947f57d6ea7d89b2f29650414e4293c47707eb499ec07a0ac796", size = 2297905 }, - { url = "https://files.pythonhosted.org/packages/a3/36/4e551e8aa55c9188bca9abb5096805edbf7431072b76e2298e34fd3a3008/kiwisolver-1.5.0-cp314-cp314-win_amd64.whl", hash = "sha256:d76e2d8c75051d58177e762164d2e9ab92886534e3a12e795f103524f221dd8e", size = 75086 }, - { url = "https://files.pythonhosted.org/packages/70/15/9b90f7df0e31a003c71649cf66ef61c3c1b862f48c81007fa2383c8bd8d7/kiwisolver-1.5.0-cp314-cp314-win_arm64.whl", hash = "sha256:fa6248cd194edff41d7ea9425ced8ca3a6f838bfb295f6f1d6e6bb694a8518df", size = 66577 }, - { url = "https://files.pythonhosted.org/packages/17/01/7dc8c5443ff42b38e72731643ed7cf1ed9bf01691ae5cdca98501999ed83/kiwisolver-1.5.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:d1ffeb80b5676463d7a7d56acbe8e37a20ce725570e09549fe738e02ca6b7e1e", size = 125794 }, - { url = "https://files.pythonhosted.org/packages/46/8a/b4ebe46ebaac6a303417fab10c2e165c557ddaff558f9699d302b256bc53/kiwisolver-1.5.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:bc4d8e252f532ab46a1de9349e2d27b91fce46736a9eedaa37beaca66f574ed4", size = 67646 }, - { url = "https://files.pythonhosted.org/packages/60/35/10a844afc5f19d6f567359bf4789e26661755a2f36200d5d1ed8ad0126e5/kiwisolver-1.5.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:6783e069732715ad0c3ce96dbf21dbc2235ab0593f2baf6338101f70371f4028", size = 65511 }, - { url = "https://files.pythonhosted.org/packages/f8/8a/685b297052dd041dcebce8e8787b58923b6e78acc6115a0dc9189011c44b/kiwisolver-1.5.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e7c4c09a490dc4d4a7f8cbee56c606a320f9dc28cf92a7157a39d1ce7676a657", size = 1584858 }, - { url = "https://files.pythonhosted.org/packages/9e/80/04865e3d4638ac5bddec28908916df4a3075b8c6cc101786a96803188b96/kiwisolver-1.5.0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2a075bd7bd19c70cf67c8badfa36cf7c5d8de3c9ddb8420c51e10d9c50e94920", size = 1392539 }, - { url = "https://files.pythonhosted.org/packages/ba/01/77a19cacc0893fa13fafa46d1bba06fb4dc2360b3292baf4b56d8e067b24/kiwisolver-1.5.0-cp314-cp314t-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:bdd3e53429ff02aa319ba59dfe4ceeec345bf46cf180ec2cf6fd5b942e7975e9", size = 1405310 }, - { url = "https://files.pythonhosted.org/packages/53/39/bcaf5d0cca50e604cfa9b4e3ae1d64b50ca1ae5b754122396084599ef903/kiwisolver-1.5.0-cp314-cp314t-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3cdcb35dc9d807259c981a85531048ede628eabcffb3239adf3d17463518992d", size = 1456244 }, - { url = "https://files.pythonhosted.org/packages/d0/7a/72c187abc6975f6978c3e39b7cf67aeb8b3c0a8f9790aa7fd412855e9e1f/kiwisolver-1.5.0-cp314-cp314t-manylinux_2_39_riscv64.whl", hash = "sha256:70d593af6a6ca332d1df73d519fddb5148edb15cd90d5f0155e3746a6d4fcc65", size = 1073154 }, - { url = "https://files.pythonhosted.org/packages/c7/ca/cf5b25783ebbd59143b4371ed0c8428a278abe68d6d0104b01865b1bbd0f/kiwisolver-1.5.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:377815a8616074cabbf3f53354e1d040c35815a134e01d7614b7692e4bf8acfa", size = 2334377 }, - { url = "https://files.pythonhosted.org/packages/4a/e5/b1f492adc516796e88751282276745340e2a72dcd0d36cf7173e0daf3210/kiwisolver-1.5.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:0255a027391d52944eae1dbb5d4cc5903f57092f3674e8e544cdd2622826b3f0", size = 2425288 }, - { url = "https://files.pythonhosted.org/packages/e6/e5/9b21fbe91a61b8f409d74a26498706e97a48008bfcd1864373d32a6ba31c/kiwisolver-1.5.0-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:012b1eb16e28718fa782b5e61dc6f2da1f0792ca73bd05d54de6cb9561665fc9", size = 2063158 }, - { url = "https://files.pythonhosted.org/packages/b1/02/83f47986138310f95ea95531f851b2a62227c11cbc3e690ae1374fe49f0f/kiwisolver-1.5.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:0e3aafb33aed7479377e5e9a82e9d4bf87063741fc99fc7ae48b0f16e32bdd6f", size = 2597260 }, - { url = "https://files.pythonhosted.org/packages/07/18/43a5f24608d8c313dd189cf838c8e68d75b115567c6279de7796197cfb6a/kiwisolver-1.5.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:e7a116ae737f0000343218c4edf5bd45893bfeaff0993c0b215d7124c9f77646", size = 2394403 }, - { url = "https://files.pythonhosted.org/packages/3b/b5/98222136d839b8afabcaa943b09bd05888c2d36355b7e448550211d1fca4/kiwisolver-1.5.0-cp314-cp314t-win_amd64.whl", hash = "sha256:1dd9b0b119a350976a6d781e7278ec7aca0b201e1a9e2d23d9804afecb6ca681", size = 79687 }, - { url = "https://files.pythonhosted.org/packages/99/a2/ca7dc962848040befed12732dff6acae7fb3c4f6fc4272b3f6c9a30b8713/kiwisolver-1.5.0-cp314-cp314t-win_arm64.whl", hash = "sha256:58f812017cd2985c21fbffb4864d59174d4903dd66fa23815e74bbc7a0e2dd57", size = 70032 }, - { url = "https://files.pythonhosted.org/packages/1c/fa/2910df836372d8761bb6eff7d8bdcb1613b5c2e03f260efe7abe34d388a7/kiwisolver-1.5.0-graalpy312-graalpy250_312_native-macosx_10_13_x86_64.whl", hash = "sha256:5ae8e62c147495b01a0f4765c878e9bfdf843412446a247e28df59936e99e797", size = 130262 }, - { url = "https://files.pythonhosted.org/packages/0f/41/c5f71f9f00aabcc71fee8b7475e3f64747282580c2fe748961ba29b18385/kiwisolver-1.5.0-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:f6764a4ccab3078db14a632420930f6186058750df066b8ea2a7106df91d3203", size = 138036 }, - { url = "https://files.pythonhosted.org/packages/fa/06/7399a607f434119c6e1fdc8ec89a8d51ccccadf3341dee4ead6bd14caaf5/kiwisolver-1.5.0-graalpy312-graalpy250_312_native-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c31c13da98624f957b0fb1b5bae5383b2333c2c3f6793d9825dd5ce79b525cb7", size = 194295 }, - { url = "https://files.pythonhosted.org/packages/b5/91/53255615acd2a1eaca307ede3c90eb550bae9c94581f8c00081b6b1c8f44/kiwisolver-1.5.0-graalpy312-graalpy250_312_native-win_amd64.whl", hash = "sha256:1f1489f769582498610e015a8ef2d36f28f505ab3096d0e16b4858a9ec214f57", size = 75987 }, +version = "1.5.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ba/07/bd78e6a8fae171ea041ef5bba3ed21a003522fa088834b069b1909981f30/kiwisolver-1.5.1.tar.gz", hash = "sha256:f1303ef2eec81262a4b708c3e858afe58d7c75ad91c1c05266eda7673369859a", size = 104395, upload-time = "2026-08-28T10:28:27.153Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6b/9b/65b302742389c6f96f2956bef5decf26011309feb2fc5d79613af18adea4/kiwisolver-1.5.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:63fb7294b768f444eb4b068965f2662f28c2fd4161e23bd60fcf3ff27b74c046", size = 123876, upload-time = "2026-08-28T10:25:27.44Z" }, + { url = "https://files.pythonhosted.org/packages/71/74/c21f339956f6f691b2ed7e31d5f3ae767304df6c460192739fc830853051/kiwisolver-1.5.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0ebdef3eae5336568147c39a55be6a2036ffde53faa9ca2d978989ae7c2da12c", size = 66487, upload-time = "2026-08-28T10:25:28.728Z" }, + { url = "https://files.pythonhosted.org/packages/84/e5/bdb34e21523e01dceda064d63713f3bdec91388af24fba1eca7ea5e85864/kiwisolver-1.5.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1798e83840c3f627246104c4d8a9639c60fa068adf9ce92b61791781fa8a68c1", size = 64660, upload-time = "2026-08-28T10:25:30.071Z" }, + { url = "https://files.pythonhosted.org/packages/fc/f4/dadfec469313c7f428efa7e84b4aba9732f813c13ea7131a24b7b008ef57/kiwisolver-1.5.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:34633ecf50d16187ab8e5528b7a2530f2feb4e23f300db4672538b51cfc5cd38", size = 1477929, upload-time = "2026-08-28T10:25:31.495Z" }, + { url = "https://files.pythonhosted.org/packages/6f/35/09c58daac34e6f6ea5c6dee0094b422118e5a7c265586008a95fd135ac5f/kiwisolver-1.5.1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d27c2123977cb9269c30a49ba45f03a4323017ef693e19db4ec9dbe1299a3002", size = 1278499, upload-time = "2026-08-28T10:25:33.375Z" }, + { url = "https://files.pythonhosted.org/packages/19/32/739765e24fbad29d13f83e546ea4abc215a78cea9d677ca09025b027724d/kiwisolver-1.5.1-cp312-cp312-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6a797a1cefc8b9c93170db580337e1fe3d011ad18b1299943231279406342048", size = 1296677, upload-time = "2026-08-28T10:25:35.059Z" }, + { url = "https://files.pythonhosted.org/packages/df/32/03304d1010e2cc45e5b3b52cef7e43fed3a2a5cd6c87a89b4a88e1d85b5d/kiwisolver-1.5.1-cp312-cp312-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2551cf9917af48ee7c4b29cc82320489508cf96fd26a51f6fc124de661cd44c7", size = 1346037, upload-time = "2026-08-28T10:25:36.705Z" }, + { url = "https://files.pythonhosted.org/packages/3e/57/4c49377bfd274450dd72ecaa13eaac32ea804a03363e4d1db0c5aa999ceb/kiwisolver-1.5.1-cp312-cp312-manylinux_2_39_riscv64.whl", hash = "sha256:38f6e0deb4d0a4615efe0c4efc5990b06ae450ab50a0b321c0b078b6d238c083", size = 988248, upload-time = "2026-08-28T10:25:38.299Z" }, + { url = "https://files.pythonhosted.org/packages/cb/c3/38df144a08b6c5d75ca4504e5cc3141bb3bfef64c04f4ef48204f42711b6/kiwisolver-1.5.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:bfd1de989b3330420e29de39352f5c049905c9e3ee67233a50d550e3d652c148", size = 2228722, upload-time = "2026-08-28T10:25:40.038Z" }, + { url = "https://files.pythonhosted.org/packages/e7/11/3221838a89cd64d9b386353e000cd8a296069a20fbe3584507fdfd5bebae/kiwisolver-1.5.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:1209042a623ddfda5497e4066c7b77651dde8e1d3a9dd97599dc7e97f3b9b78c", size = 2325216, upload-time = "2026-08-28T10:25:41.699Z" }, + { url = "https://files.pythonhosted.org/packages/83/d4/075c219230697bb5db910d37262b9bacf880f92b4811a02ab81ed073a253/kiwisolver-1.5.1-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:26e8268480be5061d509e29669d59103c067a26377a56491630ece11762e3858", size = 1977689, upload-time = "2026-08-28T10:25:43.559Z" }, + { url = "https://files.pythonhosted.org/packages/bb/08/1d219c3c2dd960983d0d4da623d916e9de6385df2b0bab3d1af0e9b8fccc/kiwisolver-1.5.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:d79308fa689fac89cbcfbd4dbfc80b5f95c54c5a7fd4d194be221f9d33d026e6", size = 2491443, upload-time = "2026-08-28T10:25:45.242Z" }, + { url = "https://files.pythonhosted.org/packages/ba/d3/024208ec1079d273f1047468d1bdffbf38bb75b7b268090fd3a0301b9d9a/kiwisolver-1.5.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b03af77d77e50edba2030fd5f7c352ff209314b09030a3cba7c14edf9a09a444", size = 2295200, upload-time = "2026-08-28T10:25:46.984Z" }, + { url = "https://files.pythonhosted.org/packages/6e/7c/7b210498f9f92e1cd7855f260fa69ef056881087b199ee20c208f0e4189a/kiwisolver-1.5.1-cp312-cp312-win_amd64.whl", hash = "sha256:06a6917674de9e0fe3f66f5430787f59a9f2ddb64af9b714eaec547e29ef5c19", size = 70748, upload-time = "2026-08-28T10:25:48.444Z" }, + { url = "https://files.pythonhosted.org/packages/94/61/ef0daa157c8bb23672f7423e0d14c39db1dc6ef8ed47e6bc54c9c1bef3bf/kiwisolver-1.5.1-cp312-cp312-win_arm64.whl", hash = "sha256:ad8b9671348d7c8716715652ae11f85ed0eb99e265a2df2ca490577d69860b2c", size = 68324, upload-time = "2026-08-28T10:25:49.81Z" }, + { url = "https://files.pythonhosted.org/packages/08/c1/88018321d976f53c421e379c43bc6993e70ce0c8a3ec5edc4bfe102257f6/kiwisolver-1.5.1-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:b6ae6a0328f0bc035741820fdeecdcd67bf4694eee03972e843663107122f450", size = 62272, upload-time = "2026-08-28T10:25:51.02Z" }, + { url = "https://files.pythonhosted.org/packages/85/d2/712bc17ea4f1d216034928069d612defbc6c95a471c55a7203a39faecb1a/kiwisolver-1.5.1-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:886fc26012f0e8b5f69d1cfe6d711f6b11f194621539bf8e6bb1c25c5dc82724", size = 64481, upload-time = "2026-08-28T10:25:52.22Z" }, + { url = "https://files.pythonhosted.org/packages/1b/e6/6c5380d676f43b6d918033962ea5e72360ca69e5a404154bc496b598ffdb/kiwisolver-1.5.1-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:aefe930d113798330e9462f7874542977869c0613cba3262e2de3a8d5dee8f3a", size = 66260, upload-time = "2026-08-28T10:25:53.387Z" }, + { url = "https://files.pythonhosted.org/packages/92/6a/7087f5822cc8bb272679641404b1966a42504dac9ee74e2b33840475a0aa/kiwisolver-1.5.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a5ca5aebae78a0bc13c1943af4af615d4966c5b650b05d5aa83b50e427196fee", size = 123876, upload-time = "2026-08-28T10:25:54.644Z" }, + { url = "https://files.pythonhosted.org/packages/5c/4b/9f385087ca09ee5ab9c09c6832561a7d2f7c78d3e5661d511e669f70e439/kiwisolver-1.5.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1ed0f5e49d0ceff8b72190824d9e59c062fbbc02c231b853112c78474b3f5ec2", size = 66487, upload-time = "2026-08-28T10:25:55.899Z" }, + { url = "https://files.pythonhosted.org/packages/47/8b/40d33ffd2f378094ed462e9a9a0907e59d4de9845e65a59561272da350d4/kiwisolver-1.5.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:77a4c8187a5948d7f8795adb765a3c7b553d07d86d88e43038fc32fc1fb9a3f3", size = 64673, upload-time = "2026-08-28T10:25:57.048Z" }, + { url = "https://files.pythonhosted.org/packages/ab/43/86aacc027959108b4c66eeae8b73cedb057dfa6eb3a335d05ad65197081c/kiwisolver-1.5.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:74ad5c3dad54a4641b4c28cd15ded70899d04459c6c7aeacafea716be97cce6d", size = 1477992, upload-time = "2026-08-28T10:25:58.479Z" }, + { url = "https://files.pythonhosted.org/packages/ed/40/b1d0369048c79733a32c8abb0f2718532e6630641368e33a81384246e844/kiwisolver-1.5.1-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:21e46b23a2da695c364124817bc01d970effd5483147f8d66a6a7167e3f6b851", size = 1278821, upload-time = "2026-08-28T10:26:00.121Z" }, + { url = "https://files.pythonhosted.org/packages/61/a1/fa71c1792272ff9461432715ae60ffb7e11a4d7ac3bf68961b9cab6c60cf/kiwisolver-1.5.1-cp313-cp313-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:75d9b1cf8258462dbdc1eeda718c96ea7f079324c09067f6daabfcf37712b7fe", size = 1296805, upload-time = "2026-08-28T10:26:01.868Z" }, + { url = "https://files.pythonhosted.org/packages/a3/49/3f0bd94af8e06ecc47eb834b195a06f05d48711ceb2352c56d6835160f0e/kiwisolver-1.5.1-cp313-cp313-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8fca690b00c4c48f6c2a547b0160ed511357093a4e4c9b47e0fadf3128066d89", size = 1346109, upload-time = "2026-08-28T10:26:03.59Z" }, + { url = "https://files.pythonhosted.org/packages/a4/44/3afe6ef9cf06d61220953a8963e94eca978491be1d9547cb01d82a1efa08/kiwisolver-1.5.1-cp313-cp313-manylinux_2_39_riscv64.whl", hash = "sha256:876bbfd276473d3daffe30e8c975df4ed9429967b41a6cb362dbb5155b6f13ad", size = 988252, upload-time = "2026-08-28T10:26:05.306Z" }, + { url = "https://files.pythonhosted.org/packages/e4/30/a12bd7a7285a211e1747c3eec77b8c614dbfcc1dad942f7611a1a6921ae5/kiwisolver-1.5.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f942903fde7363d1d879057ec5de01310efda2597161784d752fa9953a01a71a", size = 2228846, upload-time = "2026-08-28T10:26:07.312Z" }, + { url = "https://files.pythonhosted.org/packages/a1/6b/233e2958abf0dab7b18d07e52f286e02e519d7651bfbbe97af9347564109/kiwisolver-1.5.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c90d3022d8a94778939cda8638c6c8da8fa757b8958dad7ec868ce29c87681b8", size = 2325583, upload-time = "2026-08-28T10:26:09.093Z" }, + { url = "https://files.pythonhosted.org/packages/42/8e/7673060a27b01405b580058510adef34687069d229800239f5e44682d4d0/kiwisolver-1.5.1-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:8a34616dc2521cc8dc1d7d081734da63539f021ac0450ce950908340c6e7aa2f", size = 1978221, upload-time = "2026-08-28T10:26:11.127Z" }, + { url = "https://files.pythonhosted.org/packages/3f/7b/1b882fc1a8b4a0bb8084e7d1d85004116d08c92c0705d31f2928dec607f2/kiwisolver-1.5.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:8bf4df63592c2a66b4f8edc5df2544998c288aa02f96ce0acd880cd1de8c8127", size = 2491819, upload-time = "2026-08-28T10:26:13.348Z" }, + { url = "https://files.pythonhosted.org/packages/39/9c/426deb49e62c5f69464b64bbeca064d3b758a7506b8913d986ef34f4619c/kiwisolver-1.5.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d09037ca068d784ebc4aec290ef952ca27ac15dd9c0b5801a88c6e1096b83e6b", size = 2295520, upload-time = "2026-08-28T10:26:15.042Z" }, + { url = "https://files.pythonhosted.org/packages/f5/22/deabbb3ad6d918d74b7831b2d8ae7151b09d21c87974e5ee8a456f58c94c/kiwisolver-1.5.1-cp313-cp313-win_amd64.whl", hash = "sha256:dc23390afe9f4ef9ac3bcc72a03a56eebbde03f4c571a32cb38f859cff9a6524", size = 70758, upload-time = "2026-08-28T10:26:16.504Z" }, + { url = "https://files.pythonhosted.org/packages/b9/71/02fa5c2fd92068bb8952847e70ee6c5cb280e7febe11653d17812acc53dd/kiwisolver-1.5.1-cp313-cp313-win_arm64.whl", hash = "sha256:186884a58486651e3c217b6acea0a53eaa9498fdd472057c46f2f0fb5c25aad5", size = 68329, upload-time = "2026-08-28T10:26:17.658Z" }, + { url = "https://files.pythonhosted.org/packages/dd/87/2d5dfad0daf17dcc18d98c48ed2332fc3f051cf599e60be6182a30dd4cf1/kiwisolver-1.5.1-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:0324cd2567259b7a095f6cf18a52b0ffc6f3de9e69528ff1bc0e7a37bd43ff1a", size = 62337, upload-time = "2026-08-28T10:26:18.778Z" }, + { url = "https://files.pythonhosted.org/packages/08/c8/83e1624f15d6262b470dbcc80b09979fd4d5b2ea3ddfc6b6e3327e235726/kiwisolver-1.5.1-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:74ea337e0ec3f6f342a36a4f1b5cd94dd9affddcd28ba9aae2905af932ee8c6b", size = 64513, upload-time = "2026-08-28T10:26:19.909Z" }, + { url = "https://files.pythonhosted.org/packages/c9/2d/827ec30eb07f528c08d8459ffb318ae91a56d793ee8acbea8b491f0ff906/kiwisolver-1.5.1-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:ee9df1f0d77b9c6e94f4ac0fec533fbddd5ea3a327807f18d7b069ae019ded80", size = 66287, upload-time = "2026-08-28T10:26:21.078Z" }, + { url = "https://files.pythonhosted.org/packages/53/11/5c43a562529dad8def4b81e5e1877c612a7e0298105a5939b3b409d2079c/kiwisolver-1.5.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:fc271a6f0a2126958f4090e5507b9da5848927dae331f8f763bd4aa642b3d2cd", size = 123940, upload-time = "2026-08-28T10:26:22.475Z" }, + { url = "https://files.pythonhosted.org/packages/64/db/9bd6c505c95128c258a55236bfbb3a7a3fb6023f863316b6d7d9f3c69052/kiwisolver-1.5.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:9b3092d8992a1d69b7a59c3e39f35e1b9be327a17f68a7c35fc17329e337d6f2", size = 66493, upload-time = "2026-08-28T10:26:23.743Z" }, + { url = "https://files.pythonhosted.org/packages/e1/f4/b3007a3ed5c9be73f81161140684cf7d9bdb9c4b632f5f484d2a1c713fb9/kiwisolver-1.5.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c2306e8bb53601979fcb3fa09cc65e031876d9ae01eff2fcbcd7a84ef94d5bc1", size = 64720, upload-time = "2026-08-28T10:26:24.95Z" }, + { url = "https://files.pythonhosted.org/packages/a1/13/08188f0cafa3a800403e4ff62b9aad4e7a17f9c4c7e080dc8f18c64794cf/kiwisolver-1.5.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:18a0cfb124546a4c2e6087c5f3029c7f44b37c85b142e0ced71f73a7599ac208", size = 1475867, upload-time = "2026-08-28T10:26:26.393Z" }, + { url = "https://files.pythonhosted.org/packages/8a/3e/053bdc3c9abdb8f2606225eda398adca25c0c91ab90add8222a69db65ee0/kiwisolver-1.5.1-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:34ec467940442c9943016fb2d4c81d1ba84351eeca2f1a78f8bc87f1ba0d414c", size = 1282865, upload-time = "2026-08-28T10:26:28.118Z" }, + { url = "https://files.pythonhosted.org/packages/5e/64/a44c341b36b610588cc2f1e89b3cae072a3119aa8be578e90987cd640751/kiwisolver-1.5.1-cp314-cp314-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a83ee7107df13abe42a54a6654670eef9bb39425cf2e27f65e0007465e1286ab", size = 1300865, upload-time = "2026-08-28T10:26:30.125Z" }, + { url = "https://files.pythonhosted.org/packages/60/5e/7e7d716dca38c714478b741257a5b4a321d9932b8d851551a136dcaf3984/kiwisolver-1.5.1-cp314-cp314-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:bebb89489b279b2f5661bbbb2abcc87bcd4a46607bb4a5c966f04f1db6b8df9a", size = 1348071, upload-time = "2026-08-28T10:26:31.829Z" }, + { url = "https://files.pythonhosted.org/packages/10/1a/2b98fdda8bf45b7be317e48ed12393d44334394d315c74b81f4a14c0e31b/kiwisolver-1.5.1-cp314-cp314-manylinux_2_39_riscv64.whl", hash = "sha256:509735237ae0d849e8a843551d423d2500d2e0a9ac1611a145658b29c0fb9f85", size = 992191, upload-time = "2026-08-28T10:26:33.544Z" }, + { url = "https://files.pythonhosted.org/packages/b6/55/d893f5ede0e50f9e3fcf01f6015f42ec7d9cd221e26772701fe4a98745f9/kiwisolver-1.5.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:824c3d763a05ea9e9003610145186b0e9848c7584a5575c79bac5a8e7cd80bad", size = 2233854, upload-time = "2026-08-28T10:26:35.282Z" }, + { url = "https://files.pythonhosted.org/packages/b1/82/f85f6279555a6ee1639fef7bfe83adb037a03e11a6fc9eaa54b8d0380339/kiwisolver-1.5.1-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:1fff05e239575b1481b6ed1a782f6fad616efbf1f0b1f44e6e85c4dfe426e483", size = 2330621, upload-time = "2026-08-28T10:26:36.9Z" }, + { url = "https://files.pythonhosted.org/packages/56/31/e11aea078f66fc2fffcc179d38ca90d9da97652a241b64519169742ba46a/kiwisolver-1.5.1-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:0627b9bceb9c3cdcf12b8a18655eedfed2692b038df27423383c120d0b7dc2d6", size = 1982848, upload-time = "2026-08-28T10:26:39.01Z" }, + { url = "https://files.pythonhosted.org/packages/af/ea/2956b63bf5140ca46aa2c2818e6aa03e2d5754dd2fa41db1c6b28922940c/kiwisolver-1.5.1-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:8a708a47ade1fe19e8371d5da076bac0dd4b0a5a7985ad6c637f7f7e361b6baa", size = 2494850, upload-time = "2026-08-28T10:26:40.837Z" }, + { url = "https://files.pythonhosted.org/packages/11/d1/3829542258d8b3fc0898d221e7ef0e2c83eca0d348709bb8dbe54f3d4005/kiwisolver-1.5.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:007a5553dfc4f4e8d184f588a0200e2cd4b63a59cc8796df3c39909e679dc7a0", size = 2298067, upload-time = "2026-08-28T10:26:42.803Z" }, + { url = "https://files.pythonhosted.org/packages/4e/0e/49522e1ab5788cbaf63a26fbd3b851f9028616828c961b8a31b35cb96df8/kiwisolver-1.5.1-cp314-cp314-win_amd64.whl", hash = "sha256:f4167e87b397f273dc2356fcf1eaf50a6bac51e6105f45103ef7129c8efb0255", size = 72282, upload-time = "2026-08-28T10:26:44.268Z" }, + { url = "https://files.pythonhosted.org/packages/f5/b6/22e7ca5315d363e6f81c9f37c9472e12e7b298731e77c0428e6a911a2c39/kiwisolver-1.5.1-cp314-cp314-win_arm64.whl", hash = "sha256:5c490db2168a508088f59140dd392556a54b8bd1048fc6383c8baff13c359673", size = 69855, upload-time = "2026-08-28T10:26:45.725Z" }, + { url = "https://files.pythonhosted.org/packages/30/8c/03a9cfbe871964c8758a816eb03ac96c806da2795a9a7cd9bf9648bfb594/kiwisolver-1.5.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:4d4ca09bf13cff792b1884f64b98ee6c2467930d632233be25c56b442d99f10e", size = 126289, upload-time = "2026-08-28T10:26:47.023Z" }, + { url = "https://files.pythonhosted.org/packages/f2/e3/14ce3041ca79dff9c9d884ca00c7bf32374e76028a865a9ecd99b4f5a517/kiwisolver-1.5.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:44b8faef94f1857e77fa0238f3390ff1ac51d2ea20a487e2e452a59fd2b5f5ca", size = 67709, upload-time = "2026-08-28T10:26:48.268Z" }, + { url = "https://files.pythonhosted.org/packages/af/c4/45030471a66ec8ef042e9f96ffe1d522c9ab12da180186a0898966fc1385/kiwisolver-1.5.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:2ae70bc59790d2af72a3f76f24b272403e135070340281108b447cb77ea70819", size = 65909, upload-time = "2026-08-28T10:26:49.523Z" }, + { url = "https://files.pythonhosted.org/packages/42/73/17dce073a6ae259bb32cf9d686c4079d2e538868bc45967462bf33df914a/kiwisolver-1.5.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:43844c1a7ad6d723d5b5b4c4fc7f5bd399c40e288120d16257c7c9e8765c6e85", size = 1584907, upload-time = "2026-08-28T10:26:50.933Z" }, + { url = "https://files.pythonhosted.org/packages/8c/84/ae3c75909f507283cbfcc7e916c7e822579ef962020b97e6882b27b4478f/kiwisolver-1.5.1-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:22d5e5aaad6be121f2515765e3b1c444352cb8eb4c86510801db8f2e50757316", size = 1392474, upload-time = "2026-08-28T10:26:52.638Z" }, + { url = "https://files.pythonhosted.org/packages/34/31/8bcc83caad5bce8fa4577152389848bf6bc110e51e573a2b4e7c2aa34c89/kiwisolver-1.5.1-cp314-cp314t-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:3fa5855898f6d3d01b72ccd48a2d65cbdee301251603fefe34e2025bddba219c", size = 1405246, upload-time = "2026-08-28T10:26:54.248Z" }, + { url = "https://files.pythonhosted.org/packages/55/72/220345537d790cf4ae54f8acfff4b5cc2468e0702a384d651cf7a771c63e/kiwisolver-1.5.1-cp314-cp314t-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d66a64dd5dec136040ec2ae94aa026a912ee60fdd45bc28d3db30037fd809e88", size = 1456099, upload-time = "2026-08-28T10:26:56.042Z" }, + { url = "https://files.pythonhosted.org/packages/cd/10/3725fd2398f66d18c34b4e0f81a8d03764cd4f4f089f58a527f0b4428086/kiwisolver-1.5.1-cp314-cp314t-manylinux_2_39_riscv64.whl", hash = "sha256:9e51c119992ea8820706871c30a4642ec76de20ae82f9b50b9a45517d8e9f810", size = 1073695, upload-time = "2026-08-28T10:26:57.658Z" }, + { url = "https://files.pythonhosted.org/packages/86/cb/28d6e09e66b93e4588b2e6b7d84d020ccefea09e2f4de788510a07efeab7/kiwisolver-1.5.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:70ed9a45c7484d2b30cdacf60d220f494a1763b9fec1ad03285c6553fa0889f2", size = 2335355, upload-time = "2026-08-28T10:26:59.202Z" }, + { url = "https://files.pythonhosted.org/packages/6a/b3/a0f31d5e4e40af7dc97c36b8a74fdd3a36cf3c8bbd098da9a23466ff6a94/kiwisolver-1.5.1-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:98b208a7cc42c803445ef551d6753cc42a5ea13e9cab1ee66cd8b9cb70195330", size = 2426524, upload-time = "2026-08-28T10:27:01.181Z" }, + { url = "https://files.pythonhosted.org/packages/2f/c9/728f63bd58c72cafdc79fc306abeeac7391bec03b757a48dadeb30906521/kiwisolver-1.5.1-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:c6834b92dd2428e2dd85ef3d85f723d3c12f20aaf43a2ddd4f944ca25d833408", size = 2063430, upload-time = "2026-08-28T10:27:03.06Z" }, + { url = "https://files.pythonhosted.org/packages/84/df/ce188b96f92f9a2c958231da140768918cba53c9713dc887b82f85462118/kiwisolver-1.5.1-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:5d142e352eb13facc7dd047489aebdff6ba78576c239f1ea04931979caaf0567", size = 2597513, upload-time = "2026-08-28T10:27:05.072Z" }, + { url = "https://files.pythonhosted.org/packages/69/d6/76947c8203768968382e5bd74d9cc95654746703a61ea53015f2c74a2e06/kiwisolver-1.5.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:f9b1c4900736e489a812c529100de4b8fb617d4db075e931e213c57424b83d9b", size = 2394488, upload-time = "2026-08-28T10:27:07.423Z" }, + { url = "https://files.pythonhosted.org/packages/e4/d4/14b21e4eb203c4d15425e8b6a2c625a320b4a1f2f7557eead63ffc30ffb7/kiwisolver-1.5.1-cp314-cp314t-win_amd64.whl", hash = "sha256:5978c3340f16a35c30f8ab2fa7bcf559973c55f1a5ef6970e1f621acf3c4db13", size = 75404, upload-time = "2026-08-28T10:27:08.892Z" }, + { url = "https://files.pythonhosted.org/packages/cb/f5/53157899fc7f45f76421b77b99eb1639dd0f83f26ff9d76300c96bb4a3b0/kiwisolver-1.5.1-cp314-cp314t-win_arm64.whl", hash = "sha256:ca307d6c259e5c98d3cb9ade55342b47a6839762caf2536f3d7b46ee660cc82e", size = 72946, upload-time = "2026-08-28T10:27:10.944Z" }, + { url = "https://files.pythonhosted.org/packages/75/62/f786c3a27f181fa339d851a77e266d208e776b9883cabc40a5b041a31b5a/kiwisolver-1.5.1-cp315-cp315-ios_13_0_arm64_iphoneos.whl", hash = "sha256:bb7c99f0673c03017a3ee01e54a5c2617a05468b11eabe513b0080e063ed95b1", size = 62420, upload-time = "2026-08-28T10:27:12.308Z" }, + { url = "https://files.pythonhosted.org/packages/02/cd/58a91ed25fbad0facdf503297b03768efab04bdf3141e5e3b49a34be7443/kiwisolver-1.5.1-cp315-cp315-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:0d8924877ce22e17326a99a418c3c82037da078df3c6a260b13eca677444e6e7", size = 64577, upload-time = "2026-08-28T10:27:13.502Z" }, + { url = "https://files.pythonhosted.org/packages/f6/5c/d501ef5a0958b226eac28306d24d5e5f114be0ace50e19cabae7b6b3b197/kiwisolver-1.5.1-cp315-cp315-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:534f02c1abb31ed6dbd3515545285c330b2f12d00fdb1fdb71658b9ca5a13a6a", size = 66284, upload-time = "2026-08-28T10:27:14.813Z" }, + { url = "https://files.pythonhosted.org/packages/a3/a6/8fbecaf4fc18c02f31f05e47a84c010a80e3ec391ed2f0bdade1d62b5954/kiwisolver-1.5.1-cp315-cp315-macosx_10_15_universal2.whl", hash = "sha256:cea20da04494e662b83c872683bf4ff2345206043d036315ed0e924b652e7294", size = 124031, upload-time = "2026-08-28T10:27:16.193Z" }, + { url = "https://files.pythonhosted.org/packages/7c/c6/bf3090d2983b4204347cbdbe952116e7c3b2abf62b4e33e50167a13e75ee/kiwisolver-1.5.1-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:7fd82debf43c6acd0a94359d232f6bb516ee13f269a7993736a9ac9f988bb5d9", size = 66489, upload-time = "2026-08-28T10:27:17.506Z" }, + { url = "https://files.pythonhosted.org/packages/85/de/562dddef55fdd7c291da8626d6619e72b5fc0870e6ccca0e149a5731e7f3/kiwisolver-1.5.1-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:18170a77ddfecf40ec60d0928268dc95880c881864e015a8f34094ed18b9b9ad", size = 64806, upload-time = "2026-08-28T10:27:18.673Z" }, + { url = "https://files.pythonhosted.org/packages/89/b1/ba7b9c0164ce1cf62bf2872db63b8483289cf0f3110d6f9390eb09e409ed/kiwisolver-1.5.1-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ca7f6fe0f37ca978a1e5eb7a3a68e6413f417e78e838324947ffd420202b198b", size = 1482211, upload-time = "2026-08-28T10:27:20.039Z" }, + { url = "https://files.pythonhosted.org/packages/13/dc/34da54efb4976616d45c20aae32d70e89d6e7395ed908029154d1609ef22/kiwisolver-1.5.1-cp315-cp315-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5b973887ff782cfd6b67c9904ad8ca542e0bc5e4961503408b423b5a688b4d38", size = 1283739, upload-time = "2026-08-28T10:27:21.82Z" }, + { url = "https://files.pythonhosted.org/packages/5a/3a/30ffb62bee646e266e98a1b5cd276d9c75b6116fbfcb87c1190838c1b6df/kiwisolver-1.5.1-cp315-cp315-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f76fc85bd054c806960f917ec0f329e24e436f1712267d90588e4c39890caa63", size = 1301681, upload-time = "2026-08-28T10:27:23.876Z" }, + { url = "https://files.pythonhosted.org/packages/a9/8d/13c70be22a8506880b35fdc38dca36629613bc493405c79f4037f2cd2bb9/kiwisolver-1.5.1-cp315-cp315-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:828f75af2b0080c8a972e75f649ab46af008e92c6104a57a759157200b835b75", size = 1349159, upload-time = "2026-08-28T10:27:25.899Z" }, + { url = "https://files.pythonhosted.org/packages/82/0e/993972b8ec6767f47cd69818fb3a5ff14510557d29f7d1a839be7574fa1b/kiwisolver-1.5.1-cp315-cp315-manylinux_2_39_riscv64.whl", hash = "sha256:431dc224a1a92a5c8f582d96e505196a3b5997a7271076678da2dfde67b77e9a", size = 997613, upload-time = "2026-08-28T10:27:27.507Z" }, + { url = "https://files.pythonhosted.org/packages/36/82/ca26eddd2eda2420dfc56693449c1f821f78b485da9cbde9904c03af3f93/kiwisolver-1.5.1-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:61e9a64c7635095a6bfe483e2ff055d437c59bd45f3617a228b37277f0185d62", size = 2235109, upload-time = "2026-08-28T10:27:30.113Z" }, + { url = "https://files.pythonhosted.org/packages/c7/84/97d920881e10840b8d7c7185620298e3e4c88820b05514e3a15a258b08a6/kiwisolver-1.5.1-cp315-cp315-musllinux_1_2_ppc64le.whl", hash = "sha256:3c24cd69455e1b00ddf770c13b6e2c33e07d6dc3f2d34add0bf9277c5c6bbd46", size = 2331207, upload-time = "2026-08-28T10:27:32.795Z" }, + { url = "https://files.pythonhosted.org/packages/e2/ce/34d74b8f25acc58800f4c09268371e8d6159cf0f1206f1e4dc7835629b48/kiwisolver-1.5.1-cp315-cp315-musllinux_1_2_riscv64.whl", hash = "sha256:27add358abe374ebaa3b8763ef380bc99051b5a4b18d94878366a9e4f59efef0", size = 1986696, upload-time = "2026-08-28T10:27:34.628Z" }, + { url = "https://files.pythonhosted.org/packages/0e/01/f892644014612527aef7031d3306a2ffc60b3cb044f802c1561f8e5e14f3/kiwisolver-1.5.1-cp315-cp315-musllinux_1_2_s390x.whl", hash = "sha256:255605693a483db7bd5c79f60437f7bf658f7f520d61aa42722e32257c941951", size = 2496400, upload-time = "2026-08-28T10:27:36.818Z" }, + { url = "https://files.pythonhosted.org/packages/32/6d/d8284e66e697026536e5f418b9cfe56567bffd3c775e3ecfbae373605854/kiwisolver-1.5.1-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:7d38b0c279c3032e8c9cc013b405c6df8e1668dbf15465779aa7f15f61201812", size = 2302967, upload-time = "2026-08-28T10:27:38.803Z" }, + { url = "https://files.pythonhosted.org/packages/46/0a/69a355e27f32ba50d5b6369949b6a1702e122f5277c89bc76d452b81c1c4/kiwisolver-1.5.1-cp315-cp315-win_amd64.whl", hash = "sha256:958254518717542d02d0688d0d20cbf771da5e415e6f49543f92481c850a4540", size = 72283, upload-time = "2026-08-28T10:27:40.491Z" }, + { url = "https://files.pythonhosted.org/packages/ef/d8/7a95be90c33dcdd52204d4aa6384d731443225b887283bbd8b61e7931f6c/kiwisolver-1.5.1-cp315-cp315-win_arm64.whl", hash = "sha256:da3275833be0edbaf4830fae08bae3dc7219f40ce0c37eaa6c25825957e06612", size = 69860, upload-time = "2026-08-28T10:27:41.835Z" }, + { url = "https://files.pythonhosted.org/packages/31/f8/9bc493e7f5707788ba7f621902c68f82dc3a7ba03c78fbd337b026cef1ed/kiwisolver-1.5.1-cp315-cp315t-macosx_10_15_universal2.whl", hash = "sha256:470d420f98d368d6f010633a20659b544c5fdfa5329e6b70219f2ef08fd4a7ef", size = 126336, upload-time = "2026-08-28T10:27:43.379Z" }, + { url = "https://files.pythonhosted.org/packages/d1/82/3aea86b3f99712db825e9ac5631bf99571e818a8b8961ff98cebd798413e/kiwisolver-1.5.1-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:83f78128fa28705fa85d01c59771c72fe81c11bd0e6155edbb9f818983a7d761", size = 67698, upload-time = "2026-08-28T10:27:44.613Z" }, + { url = "https://files.pythonhosted.org/packages/84/7d/8daafc5d2e7f9c47a4f78f8865d86d2a9cf399c2a85f86c44a993594410c/kiwisolver-1.5.1-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:9506e892bcc3b409831d363c6f53e5985e1c8d1f6f6b0256d00358684ff85378", size = 65945, upload-time = "2026-08-28T10:27:45.932Z" }, + { url = "https://files.pythonhosted.org/packages/3d/c9/51dc974d9130da70a8c47a96160123443d387ffe1b6b833d6f91d9429339/kiwisolver-1.5.1-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:cea90547bfd93807e0013a004dc76552be44fad3bc1cc2b38610a9e889ed098f", size = 1588030, upload-time = "2026-08-28T10:27:47.678Z" }, + { url = "https://files.pythonhosted.org/packages/e6/86/f3e1a730e7a995149d8d3ff9e313b6d8a17b2cf1d98a8eff139dc30463fb/kiwisolver-1.5.1-cp315-cp315t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e8e4d953faaded9ec7ede36824e9814082d22d4c7b1eafbfa079ecba8cd0d076", size = 1390760, upload-time = "2026-08-28T10:27:49.676Z" }, + { url = "https://files.pythonhosted.org/packages/4f/3b/8ba25a2b5a0d2375e046f1b72de5179513f0be95aba6e7b094c89303929f/kiwisolver-1.5.1-cp315-cp315t-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:7e9c01d3dd7ceba4d1d436cc021d40d592466e40b9bc7f5d83dc4e98a5c9cd8c", size = 1403279, upload-time = "2026-08-28T10:27:51.242Z" }, + { url = "https://files.pythonhosted.org/packages/18/d0/278d5cb8be812740027d5ca0a7eda0c375488a88d6dce0fa60fcc2591ad2/kiwisolver-1.5.1-cp315-cp315t-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:37f801b5d7cc0e5a548921308e059fd2b057bb42972b591cfa3049f95423c4ed", size = 1454429, upload-time = "2026-08-28T10:27:53.213Z" }, + { url = "https://files.pythonhosted.org/packages/94/37/bcbab41063ec284c1d200efe5087cf087798c2f8916960aa8a20dd303290/kiwisolver-1.5.1-cp315-cp315t-manylinux_2_39_riscv64.whl", hash = "sha256:e68e151428b5384f766cd25739bf77c7e4a3dc93b5ded7a12118d9fbfdf78ab6", size = 1073225, upload-time = "2026-08-28T10:27:55.089Z" }, + { url = "https://files.pythonhosted.org/packages/cb/c5/ab79dcdf5ae28909a51210ae0a1c579e97ff997b3466414f0d04c0994583/kiwisolver-1.5.1-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:8f8fddb8e323bd6eee4e54e69a39243beab22689070f4c66b472c4cc88bb89d8", size = 2334335, upload-time = "2026-08-28T10:27:56.78Z" }, + { url = "https://files.pythonhosted.org/packages/8d/8e/71d047468a189041d9c93f3b76844b924f9793b188c44bd149fa258912da/kiwisolver-1.5.1-cp315-cp315t-musllinux_1_2_ppc64le.whl", hash = "sha256:3cc210010fd2f438a3ed430b45f1b501fd13a8618bf984dc2c5ce5b69b78752e", size = 2424982, upload-time = "2026-08-28T10:27:58.639Z" }, + { url = "https://files.pythonhosted.org/packages/7d/37/1347461bbea6d0e1f0580b94ef603b18e72c2be5f667fa1653867361a00b/kiwisolver-1.5.1-cp315-cp315t-musllinux_1_2_riscv64.whl", hash = "sha256:b5664603a253efd3a75716d793d1d3a6a82723b61dc6db767b2460bbbeec4c0f", size = 2062857, upload-time = "2026-08-28T10:28:00.407Z" }, + { url = "https://files.pythonhosted.org/packages/1f/87/c7f0976c9cd0d127643351bc0c9929e0b8899d7f49d4ec238cd909e39c42/kiwisolver-1.5.1-cp315-cp315t-musllinux_1_2_s390x.whl", hash = "sha256:a7b85b2cc6ea45e5f7e8c9a30bc9fabd47cda09106cbb4b967335c3e6c43b69d", size = 2596022, upload-time = "2026-08-28T10:28:02.183Z" }, + { url = "https://files.pythonhosted.org/packages/e3/9a/59a6f6ae6f938c15076be2c21b6cedea973d71bb1349ec84fa485fab82cf/kiwisolver-1.5.1-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:ab620eb663952455271ac37f9aaad86b73c969c02f11f53cea405b38e96a4300", size = 2395634, upload-time = "2026-08-28T10:28:03.977Z" }, + { url = "https://files.pythonhosted.org/packages/e9/2d/8982c1fb7926da5bb7ed60318c3665b5c3f941447271ac982960a11b8637/kiwisolver-1.5.1-cp315-cp315t-win_amd64.whl", hash = "sha256:cb6fae641357ed2f6e533c0d3c6504a4a5703621a50c89459e46051d56b61140", size = 75379, upload-time = "2026-08-28T10:28:06.307Z" }, + { url = "https://files.pythonhosted.org/packages/07/78/ba7b6dfa1708b82b373ac056928a30c545d5c1a627df9839dcec3c6c1881/kiwisolver-1.5.1-cp315-cp315t-win_arm64.whl", hash = "sha256:b390aec180a7c054919c04898835e1c77bced23ea8383eb2c570213bf25d1a86", size = 73011, upload-time = "2026-08-28T10:28:07.578Z" }, + { url = "https://files.pythonhosted.org/packages/a9/c4/1407df7512a5b36cc79840e01710dc575733c461b13ab866cae77eaf87f3/kiwisolver-1.5.1-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:482676e5bd48d70ac99d9fc78863469845421e01184fa83f1f9366dc49f7e974", size = 134002, upload-time = "2026-08-28T10:28:08.881Z" }, + { url = "https://files.pythonhosted.org/packages/16/45/c37a21ad5c0ab581a93c55ad544721aaa1f0ae94edb29c6a678a23d013e6/kiwisolver-1.5.1-graalpy312-graalpy250_312_native-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:072bdb15a3c19a5b5dbc8f8fb1f4e1884bf4f3507eeb4cc6334401274d37a5c0", size = 194292, upload-time = "2026-08-28T10:28:11.06Z" }, + { url = "https://files.pythonhosted.org/packages/a6/c1/69f00d627949580e43d57af0aa465df46868d7c29801c137a55374101294/kiwisolver-1.5.1-graalpy312-graalpy250_312_native-win_amd64.whl", hash = "sha256:a5a00665d1a0e26763a7338d7e911d4598fbc1d50dd0d6b7919b7dc6c5d6569f", size = 73362, upload-time = "2026-08-28T10:28:12.449Z" }, ] [[package]] name = "locket" version = "1.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/2f/83/97b29fe05cb6ae28d2dbd30b81e2e402a3eed5f460c26e9eaa5895ceacf5/locket-1.0.0.tar.gz", hash = "sha256:5c0d4c052a8bbbf750e056a8e65ccd309086f4f0f18a2eac306a8dfa4112a632", size = 4350 } +sdist = { url = "https://files.pythonhosted.org/packages/2f/83/97b29fe05cb6ae28d2dbd30b81e2e402a3eed5f460c26e9eaa5895ceacf5/locket-1.0.0.tar.gz", hash = "sha256:5c0d4c052a8bbbf750e056a8e65ccd309086f4f0f18a2eac306a8dfa4112a632", size = 4350, upload-time = "2022-04-20T22:04:44.312Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/db/bc/83e112abc66cd466c6b83f99118035867cecd41802f8d044638aa78a106e/locket-1.0.0-py2.py3-none-any.whl", hash = "sha256:b6c819a722f7b6bd955b80781788e4a66a55628b858d347536b7e81325a3a5e3", size = 4398 }, + { url = "https://files.pythonhosted.org/packages/db/bc/83e112abc66cd466c6b83f99118035867cecd41802f8d044638aa78a106e/locket-1.0.0-py2.py3-none-any.whl", hash = "sha256:b6c819a722f7b6bd955b80781788e4a66a55628b858d347536b7e81325a3a5e3", size = 4398, upload-time = "2022-04-20T22:04:42.23Z" }, ] [[package]] @@ -1329,78 +1345,9 @@ dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, { name = "win32-setctime", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/3a/05/a1dae3dffd1116099471c643b8924f5aa6524411dc6c63fdae648c4f1aca/loguru-0.7.3.tar.gz", hash = "sha256:19480589e77d47b8d85b2c827ad95d49bf31b0dcde16593892eb51dd18706eb6", size = 63559 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/0c/29/0348de65b8cc732daa3e33e67806420b2ae89bdce2b04af740289c5c6c8c/loguru-0.7.3-py3-none-any.whl", hash = "sha256:31a33c10c8e1e10422bfd431aeb5d351c7cf7fa671e3c4df004162264b28220c", size = 61595 }, -] - -[[package]] -name = "lru-dict" -version = "1.4.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/06/0a/dec86efe38b350314c49a8d39ef01ba7cf8bbbef1d177646320eedea7159/lru_dict-1.4.1.tar.gz", hash = "sha256:cc518ff2d38cc7a8ab56f9a6ae557f91e2e1524b57ed8e598e97f45a2bd708fc", size = 13439 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/4f/a8/89e4c26e0e751321b41b0a3007384f97d9eae7a863c49af1c68c43005ca3/lru_dict-1.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:7fa342c6e6bc811ee6a17eb569d37b149340d5aa5a637a53438e316a95783838", size = 16683 }, - { url = "https://files.pythonhosted.org/packages/f1/34/b3c6fdd120af68b6eeb524d0de3293ff27918ec57f45eed6bef1789fd085/lru_dict-1.4.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:bd86bd202a7c1585d9dc7e5b0c3d52cf76dc56b261b4bbecfeefbbae31a5c97d", size = 11216 }, - { url = "https://files.pythonhosted.org/packages/e9/7e/280267ae23f1ec1074ddaab787c5e041e090220e8e37828d51ff4e681dfd/lru_dict-1.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4617554f3e42a8f520c8494842c23b98f5b7f4d5e0410e91a4c3ad0ea5f7e094", size = 11687 }, - { url = "https://files.pythonhosted.org/packages/ca/18/fec42416ceff98ae2760067ec72b0b9fc02840e729bbc18059c6a02cb01f/lru_dict-1.4.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:40927a6a4284d437047f547e652b15f6f0f40210deb6b9e5b77e556ff0faea0f", size = 31960 }, - { url = "https://files.pythonhosted.org/packages/c2/ef/38e7ee1a5d32b9b1629d045fa5a495375383aacfb2945f4d9535b9af9630/lru_dict-1.4.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e2c07ecb6d42494e45d00c2541e6b0ae7659fc3cf89681521ba94b15c682d4fe", size = 32882 }, - { url = "https://files.pythonhosted.org/packages/72/82/d56653ca144c291ab37bea5f23c5078ffbe64f7f5b466f91d400590b9106/lru_dict-1.4.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:85b28aa2de7c5f1f6c68221857accd084438df98edbd4f57595795734225770c", size = 34268 }, - { url = "https://files.pythonhosted.org/packages/94/ae/382651533d60f0b598757efda56dc87cad5ac311fba8e61f86fb916bf236/lru_dict-1.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:cbbbb4b51e2529ccf7ee8a3c3b834052dbd54871a216cfd229dd2b1194ff293a", size = 32156 }, - { url = "https://files.pythonhosted.org/packages/aa/d1/d9df7e9272ccbc96f04c477dfb9abb91fa8fabde86b7fa190cb7b3c7a024/lru_dict-1.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:e47040421a13de8bc6404557b3700c33f1f2683cbcce22fe5cacec4c938ce54b", size = 33395 }, - { url = "https://files.pythonhosted.org/packages/e9/6e/dafe0f5943a7b3ab24d3429032ff85873acd626087934b8161b55340c13a/lru_dict-1.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:451f7249866cb9564bb40d73bec7ac865574dafd0a4cc91627bbf35be7e99291", size = 31591 }, - { url = "https://files.pythonhosted.org/packages/a6/4d/9dd35444592bfb6805548e15971cfce821400966a51130b78dc021ee8f03/lru_dict-1.4.1-cp312-cp312-win32.whl", hash = "sha256:e8996f3f94870ecb236c55d280839390edae7f201858fee770267eac27b8b47d", size = 13119 }, - { url = "https://files.pythonhosted.org/packages/8d/82/7e72e30d6c15d65466b3baca87cce15e20848ba6a488868aa54e901141a6/lru_dict-1.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:d90774db1b60c0d5c829cfa5d7fda6db96ed1519296f626575598f9f170cca37", size = 14109 }, - { url = "https://files.pythonhosted.org/packages/85/95/ee171a68ae381ab988c50e3b7b136b1c598f5f683ba4a1e10c51e2480408/lru_dict-1.4.1-cp313-cp313-android_21_arm64_v8a.whl", hash = "sha256:2a5644bb1db0514abdad5e2f3d8f1beb6f7560c8cceb62079c40a4269de34b3c", size = 12248 }, - { url = "https://files.pythonhosted.org/packages/a1/82/8de8e8fd96c44d46891415834ceb9f51c552840bda2d118394aca5e3153a/lru_dict-1.4.1-cp313-cp313-android_21_x86_64.whl", hash = "sha256:4209864be09ec20f6059fef8544697eb3d3729d63a983bf66457054bf3e40601", size = 12243 }, - { url = "https://files.pythonhosted.org/packages/53/97/251cfb357c547a8fd06c2bc40db8a7f7eed7dbacef30d8d7e543522360e1/lru_dict-1.4.1-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:8fef8dd72484b4280799c502c116acfdfcf0dedf3508bc9d0d19e684a6a23267", size = 10938 }, - { url = "https://files.pythonhosted.org/packages/58/14/602791d219bc87197ae80f5fa0f77ca0af8e83e9a06c7cdb89db5575839e/lru_dict-1.4.1-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:d64ddbe4c426fdc4cfc1abaea71d587d439397386a7b35d588f4fd64b695a83d", size = 11261 }, - { url = "https://files.pythonhosted.org/packages/10/5d/a30a6fad150f20f084de8e243882a0488ad4929db41a2c8ce9be6cf56563/lru_dict-1.4.1-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:000ba9a2ab4dd1ad2d91764a6d5cce75a59de51534cdda478d1ddaa3cd8d5c48", size = 10801 }, - { url = "https://files.pythonhosted.org/packages/64/4d/cee327e024d42972c598b7e0cd5063a1b1d7451efba31f7de7b6ca91e7d0/lru_dict-1.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ffad2758ce21d8fd6f0ae2628b31330732db8429a4b5994d2e107bed0ee11e68", size = 16688 }, - { url = "https://files.pythonhosted.org/packages/58/c8/2f86a1e448c5257b31424b96bf1385e7f96ec7841c2376db02811bbd395f/lru_dict-1.4.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1671e8d92fe35dfb38d3505a56338792d3e225032f8e94888b6e95b323120380", size = 11214 }, - { url = "https://files.pythonhosted.org/packages/06/41/507c615cffaba67c35affd77dec25d3183bb87f404b41c8bb2b3053481ac/lru_dict-1.4.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d5f01ada0cf0c1aa2bdc684e5ac0f6548be7eccc3ce8b4c0361db8445f867f04", size = 11689 }, - { url = "https://files.pythonhosted.org/packages/4e/c1/35aa1359f80174016b389f8be5fd48c4a5af0a04a73afb4906e5d4279f4a/lru_dict-1.4.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:74204239e30b8ec7976257c5b64565d7e3e8aea0cad0dd50a9b99e171aaf3898", size = 32034 }, - { url = "https://files.pythonhosted.org/packages/c2/93/46301015bddd4552a1b76982ef788a7fb2a886efff83ad2c178cc7e68349/lru_dict-1.4.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a7da0e451faa4d6dcae21c0f2527c540000b2f23ed8326a0bc1d870130fd12b1", size = 32919 }, - { url = "https://files.pythonhosted.org/packages/e6/cb/6d67145619d8ec3bba15fe145ff702ecf44991e33345d38c763501c1608a/lru_dict-1.4.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:071468a716768a9afca64659c390c1abb6d937b1897e07a0b70383f75637fce0", size = 34334 }, - { url = "https://files.pythonhosted.org/packages/a5/44/50daaec6793ec2042079ed6a8b6a687b4be51b270b1d8ec5efd280116493/lru_dict-1.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e77d209bcd396eb236c197bf4c95fab6848c61e0c1a5031cdde7f5c787e209f4", size = 32211 }, - { url = "https://files.pythonhosted.org/packages/bd/53/355397949215e6b77b6771b973ee1dbc21fdd9f955925e47dce50d9d4727/lru_dict-1.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:b21688fd7ece56d04c0c13b42fd9f904d46fc9ff21e3de87d98f3f5a14c67f74", size = 33461 }, - { url = "https://files.pythonhosted.org/packages/ff/fa/d660fa63144f38a0fd5b437a140517e3cff482d955ef6b9b4cf7651b9d85/lru_dict-1.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:989ef7352b347c82e5d5047f3b7ddf34b5a938e3f7b08775cacc9f28e97dd2a8", size = 31651 }, - { url = "https://files.pythonhosted.org/packages/2e/77/0fae8d0702f7546f436efe06a684b301aad5c8a167bb2df6e42b0f821de5/lru_dict-1.4.1-cp313-cp313-win32.whl", hash = "sha256:a36e6e95b5d474ef90d04a5e3ad81ca362b473ec9534ed964222f3c0444138b8", size = 13120 }, - { url = "https://files.pythonhosted.org/packages/4a/20/56a3f0d74c8fe32c01d3978387f66c9fb180c7f15bfd9fcecaa01b4e7736/lru_dict-1.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:8e73a1ec2d0f476d666ce7c91464b22854086951b319544d1850c508f5ce381f", size = 14112 }, - { url = "https://files.pythonhosted.org/packages/98/02/8e04a8d744b466d4153502e2d92b453c2e5a549d49bf7fabfdca1621828a/lru_dict-1.4.1-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:7b770c7db258625e57b6ea8e2e0503ba0fbbdcde374baacf9adb256eb9c5adfa", size = 11119 }, - { url = "https://files.pythonhosted.org/packages/50/f8/ee96f30127ff47c29966603f040e0485700fe0ca0e7d7b1ecbc9bf999eea/lru_dict-1.4.1-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:45d4dc338237cedcbacedab1afd9707b8f9867d8b601ec04e0395ec73f57405c", size = 11435 }, - { url = "https://files.pythonhosted.org/packages/a0/5a/897b33ba1974b6487848cafa5de7e93a7c4f5d9d3f43319ee010f6882830/lru_dict-1.4.1-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:5b31e9b6636f8945ad69c630c1891d810d62a91d99e792ef0b9ca865b6c26745", size = 10988 }, - { url = "https://files.pythonhosted.org/packages/19/8e/b87d0f2bfcad0169afc00e23e014bad9af252206ec2cbc6079f12bece58e/lru_dict-1.4.1-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:f9335d46c83882a1b5deffed8098a2dd9ad66d2bd6263f416fc4c73f63e26904", size = 16733 }, - { url = "https://files.pythonhosted.org/packages/ab/19/d2384266864b1e5b1cc20527ae468550d3b23a71636371b40e4663276294/lru_dict-1.4.1-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:17844b4f8dd996144d53380395d73832e2508159ad49ed4fbcb62f1787a5feaf", size = 11222 }, - { url = "https://files.pythonhosted.org/packages/66/8a/94dec42ae6b5c8bdc53a86867924fa22634516434f129dca187ccc0853b8/lru_dict-1.4.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:2b569c7813adb753b7b631097c34e6dbc194cb1814f22299c2d2a94894779877", size = 11733 }, - { url = "https://files.pythonhosted.org/packages/3f/19/0b6de1db804cf094e201c5541d58e6a96359eb5beed048fa64d0589b6520/lru_dict-1.4.1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:33cf1eb368d3989b8f00945937cfbfc2095d8ad2b1d2274ce1bde0af6f6d1e66", size = 32251 }, - { url = "https://files.pythonhosted.org/packages/97/38/89d9425dde436b9bd894234171988289b259aeeab5965bd2c21d5104cb41/lru_dict-1.4.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:22d5879ec5d5955f9dde105997bdf7ec9e0522bf99612a80b55b09f356a08368", size = 33405 }, - { url = "https://files.pythonhosted.org/packages/0e/24/f1a189399ee107a64f955c9d6c84d3b0aee9b64b31fc5684b1eaeb3a6fc0/lru_dict-1.4.1-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2084363e4488aa5b4f8b26bd3cc148d70a15be92e3d347621a5b830b2b1e0a82", size = 35135 }, - { url = "https://files.pythonhosted.org/packages/f8/57/58e9dcf0853d639e2995e5d9f84649ff8d6792a04a418628672a130137f4/lru_dict-1.4.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:8198ab8ad7cc81b86340243ddd5cca882ead87daed0c9fa6cce377a10a7f2e47", size = 32620 }, - { url = "https://files.pythonhosted.org/packages/a9/bb/664922f0cf076b1e3c2e43e8258582d507b07c19bd441a72dd5547a483e9/lru_dict-1.4.1-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:f1f4ae6967d5873e684ce8b986e2e43985d0a1be735b09584737ad5634ff48f3", size = 34077 }, - { url = "https://files.pythonhosted.org/packages/58/38/b7a6fa85b150232cada26a50c89dc4bcf9acd6ada00e987b074c3b4e57f2/lru_dict-1.4.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:a9bb130b5eaddd6453ca3dc38ce4a75f743512ad135b6f3994999dde0680bd79", size = 31905 }, - { url = "https://files.pythonhosted.org/packages/86/7d/9c86393946d621f4aec852d543df4023241d85106e9e1e2a0e4057861f71/lru_dict-1.4.1-cp314-cp314-win32.whl", hash = "sha256:5534c69a52add5757714456d08ce3831d36b86c98972394ba900493bb0bd97f8", size = 13435 }, - { url = "https://files.pythonhosted.org/packages/20/3f/b017cbeea55a8a1d18037840a8a9c9cdae29554e9985b55d4e8694305035/lru_dict-1.4.1-cp314-cp314-win_amd64.whl", hash = "sha256:96fd677b6d912229f2d02ba61a5a1210176963c4770c1bb765b8da937cec3834", size = 14423 }, - { url = "https://files.pythonhosted.org/packages/aa/73/13132af7a5155edde66979b53eb509465304e6e5a2b00769246448479c73/lru_dict-1.4.1-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:6699bfebbf11dd9ff1387be7996fac6d1009fe6a6f48091ef6e069e6f19c7bce", size = 17184 }, - { url = "https://files.pythonhosted.org/packages/ef/82/094985beb3e49461bf65a3c40df8de2018b8484e4ef129295090460ca5d9/lru_dict-1.4.1-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:a276f8f6f43861c3f05986824741d00e3133a973c3396598375310129535382d", size = 11459 }, - { url = "https://files.pythonhosted.org/packages/14/29/836abc49f8c2b6c2efccd2ac2b2c0ad3e55b7d75a05a20cc061f17871e39/lru_dict-1.4.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:090c7b6a3d54fa7f3d69ba4802abe2f33c9583b16b33f52bcb521c701f7ea46c", size = 11938 }, - { url = "https://files.pythonhosted.org/packages/c2/83/1bb4e8fbc0b753fea825564d9d96180813a71715d46a9b6bb30a6dea4ce0/lru_dict-1.4.1-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b21d06dec64fb1952385262d9fcefaec147921dc0b55210007091a79da440d93", size = 36389 }, - { url = "https://files.pythonhosted.org/packages/54/f2/7df3b6d0dbc66f3be9aa6261750967cdc5619c89a563420c52200d2dd547/lru_dict-1.4.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b9613908a38cf8aa47f6c138ba031a8ac4ed38460299e84a2b07dba7b3b45aae", size = 38706 }, - { url = "https://files.pythonhosted.org/packages/97/5f/e3ba3eeb9b864a09b92e24fbf179aef4ef48588e763a9d8d2bc10bd2c6f8/lru_dict-1.4.1-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:7558302ce8bbfcd29f08e695e07bf7a0d799c2979636d6a6a0b4e207f840969f", size = 38892 }, - { url = "https://files.pythonhosted.org/packages/e8/e3/12e0888aab0bf3ab9ce35e9849f239994a0feff6fe49380859bf57124a17/lru_dict-1.4.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:3910396142322fb2718546115bb2a56f50ebc9144b5140327053cca084e0d375", size = 37254 }, - { url = "https://files.pythonhosted.org/packages/cc/dc/06cd981718d039eb07a9c03263094aca6269721c470f765a292b24381a20/lru_dict-1.4.1-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:f3f4fad5c4a9458954b275de6a6e31c67a26fbef7037c6a7354e22523a77db26", size = 37422 }, - { url = "https://files.pythonhosted.org/packages/e8/82/ea88e618f39d78ff3c15b71f01a0b1a6c6ac2034ce5c6428ae41b1c30ea5/lru_dict-1.4.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:85fc29363e2d3ba0a5f87b5e17f54b1078aea6d24c6dfc792725854b9d0f8d17", size = 35909 }, - { url = "https://files.pythonhosted.org/packages/89/36/1dd91c602f623839cec24d6c77fa3fd1a8878bf2d716871197cd3bf084dc/lru_dict-1.4.1-cp314-cp314t-win32.whl", hash = "sha256:b3853518dfa50f28af0d6e2dcf8bb8b0a1687c5f4eb913c0b35b0da5c6d276ce", size = 13816 }, - { url = "https://files.pythonhosted.org/packages/ce/a3/113410f7b2e61e9d6f13f1f17c584dbd08b5796e65d772ecd5b063fab3af/lru_dict-1.4.1-cp314-cp314t-win_amd64.whl", hash = "sha256:ff3af42922205620fdc920dcdf580c4c16b32c84a537a03b04b523e5c641a8a9", size = 15204 }, -] - -[[package]] -name = "markdown" -version = "3.10.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/2b/f4/69fa6ed85ae003c2378ffa8f6d2e3234662abd02c10d216c0ba96081a238/markdown-3.10.2.tar.gz", hash = "sha256:994d51325d25ad8aa7ce4ebaec003febcce822c3f8c911e3b17c52f7f589f950", size = 368805 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/de/1f/77fa3081e4f66ca3576c896ae5d31c3002ac6607f9747d2e3aa49227e464/markdown-3.10.2-py3-none-any.whl", hash = "sha256:e91464b71ae3ee7afd3017d9f358ef0baf158fd9a298db92f1d4761133824c36", size = 108180 }, +sdist = { url = "https://files.pythonhosted.org/packages/3a/05/a1dae3dffd1116099471c643b8924f5aa6524411dc6c63fdae648c4f1aca/loguru-0.7.3.tar.gz", hash = "sha256:19480589e77d47b8d85b2c827ad95d49bf31b0dcde16593892eb51dd18706eb6", size = 63559, upload-time = "2024-12-06T11:20:56.608Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/29/0348de65b8cc732daa3e33e67806420b2ae89bdce2b04af740289c5c6c8c/loguru-0.7.3-py3-none-any.whl", hash = "sha256:31a33c10c8e1e10422bfd431aeb5d351c7cf7fa671e3c4df004162264b28220c", size = 61595, upload-time = "2024-12-06T11:20:54.538Z" }, ] [[package]] @@ -1410,77 +1357,127 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "mdurl" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/06/ff/7841249c247aa650a76b9ee4bbaeae59370dc8bfd2f6c01f3630c35eb134/markdown_it_py-4.2.0.tar.gz", hash = "sha256:04a21681d6fbb623de53f6f364d352309d4094dd4194040a10fd51833e418d49", size = 82454 } +sdist = { url = "https://files.pythonhosted.org/packages/06/ff/7841249c247aa650a76b9ee4bbaeae59370dc8bfd2f6c01f3630c35eb134/markdown_it_py-4.2.0.tar.gz", hash = "sha256:04a21681d6fbb623de53f6f364d352309d4094dd4194040a10fd51833e418d49", size = 82454, upload-time = "2026-05-07T12:08:28.36Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b3/81/4da04ced5a082363ecfa159c010d200ecbd959ae410c10c0264a38cac0f5/markdown_it_py-4.2.0-py3-none-any.whl", hash = "sha256:9f7ebbcd14fe59494226453aed97c1070d83f8d24b6fc3a3bcf9a38092641c4a", size = 91687 }, + { url = "https://files.pythonhosted.org/packages/b3/81/4da04ced5a082363ecfa159c010d200ecbd959ae410c10c0264a38cac0f5/markdown_it_py-4.2.0-py3-none-any.whl", hash = "sha256:9f7ebbcd14fe59494226453aed97c1070d83f8d24b6fc3a3bcf9a38092641c4a", size = 91687, upload-time = "2026-05-07T12:08:27.182Z" }, ] [[package]] name = "markupsafe" -version = "3.0.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/7e/99/7690b6d4034fffd95959cbe0c02de8deb3098cc577c67bb6a24fe5d7caa7/markupsafe-3.0.3.tar.gz", hash = "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698", size = 80313 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/5a/72/147da192e38635ada20e0a2e1a51cf8823d2119ce8883f7053879c2199b5/markupsafe-3.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d53197da72cc091b024dd97249dfc7794d6a56530370992a5e1a08983ad9230e", size = 11615 }, - { url = "https://files.pythonhosted.org/packages/9a/81/7e4e08678a1f98521201c3079f77db69fb552acd56067661f8c2f534a718/markupsafe-3.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1872df69a4de6aead3491198eaf13810b565bdbeec3ae2dc8780f14458ec73ce", size = 12020 }, - { url = "https://files.pythonhosted.org/packages/1e/2c/799f4742efc39633a1b54a92eec4082e4f815314869865d876824c257c1e/markupsafe-3.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3a7e8ae81ae39e62a41ec302f972ba6ae23a5c5396c8e60113e9066ef893da0d", size = 24332 }, - { url = "https://files.pythonhosted.org/packages/3c/2e/8d0c2ab90a8c1d9a24f0399058ab8519a3279d1bd4289511d74e909f060e/markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d6dd0be5b5b189d31db7cda48b91d7e0a9795f31430b7f271219ab30f1d3ac9d", size = 22947 }, - { url = "https://files.pythonhosted.org/packages/2c/54/887f3092a85238093a0b2154bd629c89444f395618842e8b0c41783898ea/markupsafe-3.0.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:94c6f0bb423f739146aec64595853541634bde58b2135f27f61c1ffd1cd4d16a", size = 21962 }, - { url = "https://files.pythonhosted.org/packages/c9/2f/336b8c7b6f4a4d95e91119dc8521402461b74a485558d8f238a68312f11c/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:be8813b57049a7dc738189df53d69395eba14fb99345e0a5994914a3864c8a4b", size = 23760 }, - { url = "https://files.pythonhosted.org/packages/32/43/67935f2b7e4982ffb50a4d169b724d74b62a3964bc1a9a527f5ac4f1ee2b/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:83891d0e9fb81a825d9a6d61e3f07550ca70a076484292a70fde82c4b807286f", size = 21529 }, - { url = "https://files.pythonhosted.org/packages/89/e0/4486f11e51bbba8b0c041098859e869e304d1c261e59244baa3d295d47b7/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:77f0643abe7495da77fb436f50f8dab76dbc6e5fd25d39589a0f1fe6548bfa2b", size = 23015 }, - { url = "https://files.pythonhosted.org/packages/2f/e1/78ee7a023dac597a5825441ebd17170785a9dab23de95d2c7508ade94e0e/markupsafe-3.0.3-cp312-cp312-win32.whl", hash = "sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d", size = 14540 }, - { url = "https://files.pythonhosted.org/packages/aa/5b/bec5aa9bbbb2c946ca2733ef9c4ca91c91b6a24580193e891b5f7dbe8e1e/markupsafe-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c", size = 15105 }, - { url = "https://files.pythonhosted.org/packages/e5/f1/216fc1bbfd74011693a4fd837e7026152e89c4bcf3e77b6692fba9923123/markupsafe-3.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f", size = 13906 }, - { url = "https://files.pythonhosted.org/packages/38/2f/907b9c7bbba283e68f20259574b13d005c121a0fa4c175f9bed27c4597ff/markupsafe-3.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e1cf1972137e83c5d4c136c43ced9ac51d0e124706ee1c8aa8532c1287fa8795", size = 11622 }, - { url = "https://files.pythonhosted.org/packages/9c/d9/5f7756922cdd676869eca1c4e3c0cd0df60ed30199ffd775e319089cb3ed/markupsafe-3.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:116bb52f642a37c115f517494ea5feb03889e04df47eeff5b130b1808ce7c219", size = 12029 }, - { url = "https://files.pythonhosted.org/packages/00/07/575a68c754943058c78f30db02ee03a64b3c638586fba6a6dd56830b30a3/markupsafe-3.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:133a43e73a802c5562be9bbcd03d090aa5a1fe899db609c29e8c8d815c5f6de6", size = 24374 }, - { url = "https://files.pythonhosted.org/packages/a9/21/9b05698b46f218fc0e118e1f8168395c65c8a2c750ae2bab54fc4bd4e0e8/markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ccfcd093f13f0f0b7fdd0f198b90053bf7b2f02a3927a30e63f3ccc9df56b676", size = 22980 }, - { url = "https://files.pythonhosted.org/packages/7f/71/544260864f893f18b6827315b988c146b559391e6e7e8f7252839b1b846a/markupsafe-3.0.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:509fa21c6deb7a7a273d629cf5ec029bc209d1a51178615ddf718f5918992ab9", size = 21990 }, - { url = "https://files.pythonhosted.org/packages/c2/28/b50fc2f74d1ad761af2f5dcce7492648b983d00a65b8c0e0cb457c82ebbe/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4afe79fb3de0b7097d81da19090f4df4f8d3a2b3adaa8764138aac2e44f3af1", size = 23784 }, - { url = "https://files.pythonhosted.org/packages/ed/76/104b2aa106a208da8b17a2fb72e033a5a9d7073c68f7e508b94916ed47a9/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:795e7751525cae078558e679d646ae45574b47ed6e7771863fcc079a6171a0fc", size = 21588 }, - { url = "https://files.pythonhosted.org/packages/b5/99/16a5eb2d140087ebd97180d95249b00a03aa87e29cc224056274f2e45fd6/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8485f406a96febb5140bfeca44a73e3ce5116b2501ac54fe953e488fb1d03b12", size = 23041 }, - { url = "https://files.pythonhosted.org/packages/19/bc/e7140ed90c5d61d77cea142eed9f9c303f4c4806f60a1044c13e3f1471d0/markupsafe-3.0.3-cp313-cp313-win32.whl", hash = "sha256:bdd37121970bfd8be76c5fb069c7751683bdf373db1ed6c010162b2a130248ed", size = 14543 }, - { url = "https://files.pythonhosted.org/packages/05/73/c4abe620b841b6b791f2edc248f556900667a5a1cf023a6646967ae98335/markupsafe-3.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:9a1abfdc021a164803f4d485104931fb8f8c1efd55bc6b748d2f5774e78b62c5", size = 15113 }, - { url = "https://files.pythonhosted.org/packages/f0/3a/fa34a0f7cfef23cf9500d68cb7c32dd64ffd58a12b09225fb03dd37d5b80/markupsafe-3.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:7e68f88e5b8799aa49c85cd116c932a1ac15caaa3f5db09087854d218359e485", size = 13911 }, - { url = "https://files.pythonhosted.org/packages/e4/d7/e05cd7efe43a88a17a37b3ae96e79a19e846f3f456fe79c57ca61356ef01/markupsafe-3.0.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:218551f6df4868a8d527e3062d0fb968682fe92054e89978594c28e642c43a73", size = 11658 }, - { url = "https://files.pythonhosted.org/packages/99/9e/e412117548182ce2148bdeacdda3bb494260c0b0184360fe0d56389b523b/markupsafe-3.0.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3524b778fe5cfb3452a09d31e7b5adefeea8c5be1d43c4f810ba09f2ceb29d37", size = 12066 }, - { url = "https://files.pythonhosted.org/packages/bc/e6/fa0ffcda717ef64a5108eaa7b4f5ed28d56122c9a6d70ab8b72f9f715c80/markupsafe-3.0.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e885a3d1efa2eadc93c894a21770e4bc67899e3543680313b09f139e149ab19", size = 25639 }, - { url = "https://files.pythonhosted.org/packages/96/ec/2102e881fe9d25fc16cb4b25d5f5cde50970967ffa5dddafdb771237062d/markupsafe-3.0.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8709b08f4a89aa7586de0aadc8da56180242ee0ada3999749b183aa23df95025", size = 23569 }, - { url = "https://files.pythonhosted.org/packages/4b/30/6f2fce1f1f205fc9323255b216ca8a235b15860c34b6798f810f05828e32/markupsafe-3.0.3-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b8512a91625c9b3da6f127803b166b629725e68af71f8184ae7e7d54686a56d6", size = 23284 }, - { url = "https://files.pythonhosted.org/packages/58/47/4a0ccea4ab9f5dcb6f79c0236d954acb382202721e704223a8aafa38b5c8/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9b79b7a16f7fedff2495d684f2b59b0457c3b493778c9eed31111be64d58279f", size = 24801 }, - { url = "https://files.pythonhosted.org/packages/6a/70/3780e9b72180b6fecb83a4814d84c3bf4b4ae4bf0b19c27196104149734c/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:12c63dfb4a98206f045aa9563db46507995f7ef6d83b2f68eda65c307c6829eb", size = 22769 }, - { url = "https://files.pythonhosted.org/packages/98/c5/c03c7f4125180fc215220c035beac6b9cb684bc7a067c84fc69414d315f5/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8f71bc33915be5186016f675cd83a1e08523649b0e33efdb898db577ef5bb009", size = 23642 }, - { url = "https://files.pythonhosted.org/packages/80/d6/2d1b89f6ca4bff1036499b1e29a1d02d282259f3681540e16563f27ebc23/markupsafe-3.0.3-cp313-cp313t-win32.whl", hash = "sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354", size = 14612 }, - { url = "https://files.pythonhosted.org/packages/2b/98/e48a4bfba0a0ffcf9925fe2d69240bfaa19c6f7507b8cd09c70684a53c1e/markupsafe-3.0.3-cp313-cp313t-win_amd64.whl", hash = "sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218", size = 15200 }, - { url = "https://files.pythonhosted.org/packages/0e/72/e3cc540f351f316e9ed0f092757459afbc595824ca724cbc5a5d4263713f/markupsafe-3.0.3-cp313-cp313t-win_arm64.whl", hash = "sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287", size = 13973 }, - { url = "https://files.pythonhosted.org/packages/33/8a/8e42d4838cd89b7dde187011e97fe6c3af66d8c044997d2183fbd6d31352/markupsafe-3.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:eaa9599de571d72e2daf60164784109f19978b327a3910d3e9de8c97b5b70cfe", size = 11619 }, - { url = "https://files.pythonhosted.org/packages/b5/64/7660f8a4a8e53c924d0fa05dc3a55c9cee10bbd82b11c5afb27d44b096ce/markupsafe-3.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c47a551199eb8eb2121d4f0f15ae0f923d31350ab9280078d1e5f12b249e0026", size = 12029 }, - { url = "https://files.pythonhosted.org/packages/da/ef/e648bfd021127bef5fa12e1720ffed0c6cbb8310c8d9bea7266337ff06de/markupsafe-3.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f34c41761022dd093b4b6896d4810782ffbabe30f2d443ff5f083e0cbbb8c737", size = 24408 }, - { url = "https://files.pythonhosted.org/packages/41/3c/a36c2450754618e62008bf7435ccb0f88053e07592e6028a34776213d877/markupsafe-3.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:457a69a9577064c05a97c41f4e65148652db078a3a509039e64d3467b9e7ef97", size = 23005 }, - { url = "https://files.pythonhosted.org/packages/bc/20/b7fdf89a8456b099837cd1dc21974632a02a999ec9bf7ca3e490aacd98e7/markupsafe-3.0.3-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e8afc3f2ccfa24215f8cb28dcf43f0113ac3c37c2f0f0806d8c70e4228c5cf4d", size = 22048 }, - { url = "https://files.pythonhosted.org/packages/9a/a7/591f592afdc734f47db08a75793a55d7fbcc6902a723ae4cfbab61010cc5/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ec15a59cf5af7be74194f7ab02d0f59a62bdcf1a537677ce67a2537c9b87fcda", size = 23821 }, - { url = "https://files.pythonhosted.org/packages/7d/33/45b24e4f44195b26521bc6f1a82197118f74df348556594bd2262bda1038/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:0eb9ff8191e8498cca014656ae6b8d61f39da5f95b488805da4bb029cccbfbaf", size = 21606 }, - { url = "https://files.pythonhosted.org/packages/ff/0e/53dfaca23a69fbfbbf17a4b64072090e70717344c52eaaaa9c5ddff1e5f0/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2713baf880df847f2bece4230d4d094280f4e67b1e813eec43b4c0e144a34ffe", size = 23043 }, - { url = "https://files.pythonhosted.org/packages/46/11/f333a06fc16236d5238bfe74daccbca41459dcd8d1fa952e8fbd5dccfb70/markupsafe-3.0.3-cp314-cp314-win32.whl", hash = "sha256:729586769a26dbceff69f7a7dbbf59ab6572b99d94576a5592625d5b411576b9", size = 14747 }, - { url = "https://files.pythonhosted.org/packages/28/52/182836104b33b444e400b14f797212f720cbc9ed6ba34c800639d154e821/markupsafe-3.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:bdc919ead48f234740ad807933cdf545180bfbe9342c2bb451556db2ed958581", size = 15341 }, - { url = "https://files.pythonhosted.org/packages/6f/18/acf23e91bd94fd7b3031558b1f013adfa21a8e407a3fdb32745538730382/markupsafe-3.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:5a7d5dc5140555cf21a6fefbdbf8723f06fcd2f63ef108f2854de715e4422cb4", size = 14073 }, - { url = "https://files.pythonhosted.org/packages/3c/f0/57689aa4076e1b43b15fdfa646b04653969d50cf30c32a102762be2485da/markupsafe-3.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:1353ef0c1b138e1907ae78e2f6c63ff67501122006b0f9abad68fda5f4ffc6ab", size = 11661 }, - { url = "https://files.pythonhosted.org/packages/89/c3/2e67a7ca217c6912985ec766c6393b636fb0c2344443ff9d91404dc4c79f/markupsafe-3.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1085e7fbddd3be5f89cc898938f42c0b3c711fdcb37d75221de2666af647c175", size = 12069 }, - { url = "https://files.pythonhosted.org/packages/f0/00/be561dce4e6ca66b15276e184ce4b8aec61fe83662cce2f7d72bd3249d28/markupsafe-3.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1b52b4fb9df4eb9ae465f8d0c228a00624de2334f216f178a995ccdcf82c4634", size = 25670 }, - { url = "https://files.pythonhosted.org/packages/50/09/c419f6f5a92e5fadde27efd190eca90f05e1261b10dbd8cbcb39cd8ea1dc/markupsafe-3.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50", size = 23598 }, - { url = "https://files.pythonhosted.org/packages/22/44/a0681611106e0b2921b3033fc19bc53323e0b50bc70cffdd19f7d679bb66/markupsafe-3.0.3-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f190daf01f13c72eac4efd5c430a8de82489d9cff23c364c3ea822545032993e", size = 23261 }, - { url = "https://files.pythonhosted.org/packages/5f/57/1b0b3f100259dc9fffe780cfb60d4be71375510e435efec3d116b6436d43/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e56b7d45a839a697b5eb268c82a71bd8c7f6c94d6fd50c3d577fa39a9f1409f5", size = 24835 }, - { url = "https://files.pythonhosted.org/packages/26/6a/4bf6d0c97c4920f1597cc14dd720705eca0bf7c787aebc6bb4d1bead5388/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:f3e98bb3798ead92273dc0e5fd0f31ade220f59a266ffd8a4f6065e0a3ce0523", size = 22733 }, - { url = "https://files.pythonhosted.org/packages/14/c7/ca723101509b518797fedc2fdf79ba57f886b4aca8a7d31857ba3ee8281f/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5678211cb9333a6468fb8d8be0305520aa073f50d17f089b5b4b477ea6e67fdc", size = 23672 }, - { url = "https://files.pythonhosted.org/packages/fb/df/5bd7a48c256faecd1d36edc13133e51397e41b73bb77e1a69deab746ebac/markupsafe-3.0.3-cp314-cp314t-win32.whl", hash = "sha256:915c04ba3851909ce68ccc2b8e2cd691618c4dc4c4232fb7982bca3f41fd8c3d", size = 14819 }, - { url = "https://files.pythonhosted.org/packages/1a/8a/0402ba61a2f16038b48b39bccca271134be00c5c9f0f623208399333c448/markupsafe-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4faffd047e07c38848ce017e8725090413cd80cbc23d86e55c587bf979e579c9", size = 15426 }, - { url = "https://files.pythonhosted.org/packages/70/bc/6f1c2f612465f5fa89b95bead1f44dcb607670fd42891d8fdcd5d039f4f4/markupsafe-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa", size = 14146 }, +version = "3.0.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/38/9b/e422a865e1d5d57d0e509b4e0bf1c1a70a7f6382c29a5aa428df994c8bc8/markupsafe-3.0.4.tar.gz", hash = "sha256:2e9ad7dd851bf45fab9f75cbff4cb493fee9979e8d8c7c9c3ee119022518edd6", size = 153777, upload-time = "2026-10-02T23:07:22.29Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/81/09/4c59d56b8461ae8eb0d8ba34bb25b7e618547044679d58a82ef9b2479fc1/markupsafe-3.0.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:61631e08084be9e21a8967ec3139c7616ed7c5e9368e05c86d1b39562c8a57b6", size = 11658, upload-time = "2026-10-02T23:04:51.876Z" }, + { url = "https://files.pythonhosted.org/packages/a2/f0/d6613774d86fbf6d145751d43c59875e47a6f9f17daee0aef173bd36d90e/markupsafe-3.0.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0930db9bdc62d22944e10b066448bb65dc9abe9112880c7cab8da54db4284d5f", size = 12050, upload-time = "2026-10-02T23:04:52.931Z" }, + { url = "https://files.pythonhosted.org/packages/0d/f2/8f18e0b806eb13c1f8d07d917a720831ead54253a6dec011fbc78098a6f8/markupsafe-3.0.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6a45c3d514f2436064db00d7fc8778d888f0236ebfed649b53d13a59e69ad51b", size = 24363, upload-time = "2026-10-02T23:04:53.895Z" }, + { url = "https://files.pythonhosted.org/packages/60/ce/fa07dbe8a5675558fa36dea033e19995bc783de2dec5f540ccb9030b06aa/markupsafe-3.0.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:1e1451fab512d1bcc3dc26988ec1edb0b82c2db909132872cd9356070a6b63df", size = 28525, upload-time = "2026-10-02T23:04:54.905Z" }, + { url = "https://files.pythonhosted.org/packages/85/40/be87c01f3868ec217f8a2015089d71c22c8c5a75324822e5ed1cdd87210d/markupsafe-3.0.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:bd3ce56ae2cbae3ba82b683bc425cd7e48d2ed8b10f3e818186b6f5646d9271c", size = 24733, upload-time = "2026-10-02T23:04:56.229Z" }, + { url = "https://files.pythonhosted.org/packages/4f/a7/aeedb5140afa41fc74c225e9184ab96723a6e873b6ee1c9fede7283456d8/markupsafe-3.0.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8e124f974786f831d6043728e38296969d3579db8896fe004682f5758e613581", size = 22985, upload-time = "2026-10-02T23:04:57.521Z" }, + { url = "https://files.pythonhosted.org/packages/c3/fc/e91352bb08c6a59da3ef0909d457bf95a5f5908fbf151b30a06d9dbcfbb4/markupsafe-3.0.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c02e8f18bdedba082cef725942ac823b9b60656db07f7e265cb31618dfd00d77", size = 22001, upload-time = "2026-10-02T23:04:58.597Z" }, + { url = "https://files.pythonhosted.org/packages/5d/f8/bffee5e7d2a3deb59748a797650a48af7e672025cf641a79344a771ad106/markupsafe-3.0.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9f098115c247e11d138ab83a28fa0323c77015007ea2df73ba5fd714dfefd67c", size = 23793, upload-time = "2026-10-02T23:04:59.686Z" }, + { url = "https://files.pythonhosted.org/packages/ed/59/b853d6628ecb4d658e1d637224846d5e9bb4adf4f8df97f3be9f29dce2ec/markupsafe-3.0.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:d5f93ebbeb8032d47e349328ec8662d973d9b05a70b3c35df1f91fe419b84749", size = 22640, upload-time = "2026-10-02T23:05:00.768Z" }, + { url = "https://files.pythonhosted.org/packages/09/b2/1506df394f0f075797c418d0301498f49e43be194e3ffcb49e6fe6ccf022/markupsafe-3.0.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:64511c54db4e4987aef4c41923235927428729e8174c5dba488429be70a998ed", size = 24074, upload-time = "2026-10-02T23:05:01.813Z" }, + { url = "https://files.pythonhosted.org/packages/c7/81/5ed69cda630ac69ef60d06c09ba5a7f84ff66a2e28cf986fd5614ab3c6e6/markupsafe-3.0.4-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:e1a622f13970d81f95d0c72f9dc090dce9085fccfa4c9f2174377ee32bd15786", size = 21563, upload-time = "2026-10-02T23:05:03.239Z" }, + { url = "https://files.pythonhosted.org/packages/0c/fe/fb1e79be0fea60aa32602ebefc9c35a82bb42b4df157285ab7dfec12341a/markupsafe-3.0.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c9a7f43c0b202b334cc9184af09bb8f21d3a209e038efaf106936fb69e6b026e", size = 23048, upload-time = "2026-10-02T23:05:04.479Z" }, + { url = "https://files.pythonhosted.org/packages/c8/52/7632a53360671a9b750cdbabaf9cdd89f18b42248b8e4cb42c0b0296e459/markupsafe-3.0.4-cp312-cp312-win32.whl", hash = "sha256:f0ec3b750b59375eab5b0fb2b9254810c00a3375be6d789899f1055a1d556237", size = 14108, upload-time = "2026-10-02T23:05:05.513Z" }, + { url = "https://files.pythonhosted.org/packages/3f/bf/62495e180b7000aaf30000fff849e933f74264638057176cf46852500adc/markupsafe-3.0.4-cp312-cp312-win_amd64.whl", hash = "sha256:11935df9bf455ed0c04eb87bcd720f02b1fe5e02128a9430f23aed6f93336fc7", size = 14303, upload-time = "2026-10-02T23:05:06.538Z" }, + { url = "https://files.pythonhosted.org/packages/c5/8e/4c24208776a65878d656996945aacfbfe010d3720d1a98fc0eb8491fc03b/markupsafe-3.0.4-cp312-cp312-win_arm64.whl", hash = "sha256:a4bbd2d87dd233b9fc5812160c3d0ffbe42edc22a26ce0469f58479ede633fe9", size = 14174, upload-time = "2026-10-02T23:05:07.617Z" }, + { url = "https://files.pythonhosted.org/packages/6d/18/4bc5ba32499e87bb2b0ef5b3a9bb9c00a131fa961ddf0be548cb550f548b/markupsafe-3.0.4-cp313-cp313-android_24_arm64_v8a.whl", hash = "sha256:de8b364c423ef0a4bad9069657d617f9a5d2b2062457a89b1fa16ee199c399c1", size = 12786, upload-time = "2026-10-02T23:05:08.709Z" }, + { url = "https://files.pythonhosted.org/packages/4e/6f/17f0c099bf25f3e31e63cc19244d9f6af861a9a4ab778c203997903cfdd0/markupsafe-3.0.4-cp313-cp313-android_24_x86_64.whl", hash = "sha256:34bdde374c5932765d7dc685c4a1d191a3207852d67e8e0a9eb6ea85156181f1", size = 12510, upload-time = "2026-10-02T23:05:09.93Z" }, + { url = "https://files.pythonhosted.org/packages/11/af/1a141081b905036ee904ec4bd945e1f70b4e1b32d33c4e59e8cf1d58b247/markupsafe-3.0.4-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:6bd9e1788e15bfcf6a9082de42e30387e7b85d211ab21e57a939bb8cfaaf8d96", size = 11583, upload-time = "2026-10-02T23:05:10.884Z" }, + { url = "https://files.pythonhosted.org/packages/e7/0a/a89385ae590232622a03e091805cff12f24fabe6c11e0e8bae096cece81c/markupsafe-3.0.4-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:5066b244f576f91afc8ee3ba029a89f99d39c79b1853fe9d39bea9f0afbec148", size = 11801, upload-time = "2026-10-02T23:05:11.913Z" }, + { url = "https://files.pythonhosted.org/packages/ed/85/ea548dc013962eb73653124bc595635fbf9e0fa41d1f181a967ccb784dfb/markupsafe-3.0.4-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:7a83aa6e4805df46fed18e989d3d16f86ef60cb50bbc8d9ce3a6be89165fbf6e", size = 11443, upload-time = "2026-10-02T23:05:12.887Z" }, + { url = "https://files.pythonhosted.org/packages/cc/72/15f2e5ec9cf2eb00d5cdfe968d94e4156a7bd7303832c3f3b2c403a36839/markupsafe-3.0.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2d1b7d9308288661f56672b1b157d75fc536714d3638487bbea17b6318a78248", size = 11665, upload-time = "2026-10-02T23:05:13.829Z" }, + { url = "https://files.pythonhosted.org/packages/ca/e0/4030bea613677e333c8a2c901fd405055f657f9d06acba5b7357984b6ef7/markupsafe-3.0.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:73e77980c7207854f00fc4e71fb1626868d5740ab4012623d55c7a99ad122a72", size = 12061, upload-time = "2026-10-02T23:05:14.807Z" }, + { url = "https://files.pythonhosted.org/packages/f3/a5/28b76a7449eb702966b88bef599e2360b411fbb3afeee8fe560939be06ec/markupsafe-3.0.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7018d4af1cd272e847aa5917983ab5e83e4f6579f9dbfecd4a79c0ca80b144c2", size = 24395, upload-time = "2026-10-02T23:05:15.909Z" }, + { url = "https://files.pythonhosted.org/packages/07/6c/21232811afc3a063b5e934b1ae2efda52f46154ec382f585149c020e61fe/markupsafe-3.0.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c90d5b3d4e944e065a301d741b3c1d784f6bd1f503aa68b4967e32b2ba313d85", size = 27183, upload-time = "2026-10-02T23:05:16.976Z" }, + { url = "https://files.pythonhosted.org/packages/14/38/6ccdfa5b59049cb36fb80cbc80aee9cf1fc9bb77d1335ad435f2070b08cf/markupsafe-3.0.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:18a801868a884f216e784d7d14db2a4077143ce7610440aee2ce8f734e7cfcde", size = 24772, upload-time = "2026-10-02T23:05:18.209Z" }, + { url = "https://files.pythonhosted.org/packages/63/e0/cec6865dfe88cb48fedd4b20aed6af5158e41092adcbf3e028bcc6ec2108/markupsafe-3.0.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:434139499bb20b502ed3baa1f169e618f924a97e7a777fea1a49446d80106cf6", size = 23017, upload-time = "2026-10-02T23:05:19.286Z" }, + { url = "https://files.pythonhosted.org/packages/ee/76/6ed4940bb7648a9aac457c14f870cfdd5105f139a0fb1f29cd61fafa47d1/markupsafe-3.0.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:9e227f3dbe6bde7491cf0a9965d00b88c6b1a4a95d11480ddf88bb96d397c19f", size = 22036, upload-time = "2026-10-02T23:05:20.352Z" }, + { url = "https://files.pythonhosted.org/packages/a1/4f/ed476226d4fe46a09090a36025bf319296810028df55eb12f1253b540f3a/markupsafe-3.0.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b8cd1f918b26fd7b1832ece557cc18f2d8747309ff8b3f0ef9d4250c5ad67a39", size = 23786, upload-time = "2026-10-02T23:05:21.576Z" }, + { url = "https://files.pythonhosted.org/packages/9a/35/66ff30450e35ef5fba9ebc930c9411747e537fd9447b65e44f5007e2b84d/markupsafe-3.0.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:a5fcffb37e602b0b3c1638a97746b9b96125caa9bcf6fa41d337a9261de231ee", size = 22672, upload-time = "2026-10-02T23:05:22.922Z" }, + { url = "https://files.pythonhosted.org/packages/32/0b/72f45ce4b4efcbca4b80cf1b06703eff0be8d37e82abb78f66c85a7ead1e/markupsafe-3.0.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:5989cb26b2e1efc6a42216a9f6b5ee495ce5ace2e5b352a9af489976b32d1ee2", size = 24107, upload-time = "2026-10-02T23:05:24.175Z" }, + { url = "https://files.pythonhosted.org/packages/d2/03/71776e5fdcba04614b384cc102e8a4198208579d896fd1394cb7cb9aa900/markupsafe-3.0.4-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:add96447a86d205ab616665d53b2950ee81083757f56e6ea833c8b2917646b46", size = 21615, upload-time = "2026-10-02T23:05:25.215Z" }, + { url = "https://files.pythonhosted.org/packages/ab/5f/801ce02a02e7aee0f784b1ec7843026178f6adeb9c93ac67eb1992a9a84d/markupsafe-3.0.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:2628d3a8cb648ecebb3c5d6b0a1052d400e4d8b7ac0fb786be8d285b50040d17", size = 23076, upload-time = "2026-10-02T23:05:26.423Z" }, + { url = "https://files.pythonhosted.org/packages/4a/85/c43776625428f3bb4a61e8633940400e3efe6409e3c6f5bff26de5e45618/markupsafe-3.0.4-cp313-cp313-win32.whl", hash = "sha256:672d207103e6b16ca098611b0f9efad6bc00afd47c03d6ef62186495ca677dc0", size = 14118, upload-time = "2026-10-02T23:05:27.716Z" }, + { url = "https://files.pythonhosted.org/packages/6f/36/163da64de88a13db79214ef75fa041be7fa13bdb42261cf5b7484de14bfb/markupsafe-3.0.4-cp313-cp313-win_amd64.whl", hash = "sha256:1f1f9477e174582b0a1b583d60b66e1f2cf5d3fe12cee985e4aedf44766600e5", size = 14313, upload-time = "2026-10-02T23:05:28.749Z" }, + { url = "https://files.pythonhosted.org/packages/9f/a8/9b662783ffaa1149221432a923cee562f78b9cbbb8baa3df9b3753e63e1e/markupsafe-3.0.4-cp313-cp313-win_arm64.whl", hash = "sha256:06de8ef6331f6e822c28d577dc8bf43fe398800477c49498f38fc38b67ff33fc", size = 14189, upload-time = "2026-10-02T23:05:29.917Z" }, + { url = "https://files.pythonhosted.org/packages/5c/c3/a944f3b0df22bd129e96915b9f4e98d2eeca6516687d7618304a966c3c74/markupsafe-3.0.4-cp314-cp314-android_24_arm64_v8a.whl", hash = "sha256:4ed644d75aa94a2baf7ec3a96eaa160ea58c742eb9d27c6506053c5c40fc84ed", size = 12787, upload-time = "2026-10-02T23:05:30.971Z" }, + { url = "https://files.pythonhosted.org/packages/d4/d6/a44863f69d88b6c7e27889108f70d47aed259edf89d5df3c5fca1eac87d6/markupsafe-3.0.4-cp314-cp314-android_24_x86_64.whl", hash = "sha256:6d2a9efe686f9de00d0d1ea32a4a5a86d558a2277501bd78d964214eab625e59", size = 12525, upload-time = "2026-10-02T23:05:32.263Z" }, + { url = "https://files.pythonhosted.org/packages/17/8f/168ba80e532dd6a93f96f8f706f1ad41d7990b6e1aeedc1cc0d211a33497/markupsafe-3.0.4-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:8781a792a070cf2bd1b86d3aa943894115faaba6e88122a7bf32d62072742453", size = 11589, upload-time = "2026-10-02T23:05:33.251Z" }, + { url = "https://files.pythonhosted.org/packages/32/b3/aa2c95a574d3af39403a469b295886eb9b6d448da568cbebb5a2cbfdc2e5/markupsafe-3.0.4-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:971a3bbb75d97ae4e2e8f7d4834236f86f85f0c85e04ab2e191db1123b04f80b", size = 11801, upload-time = "2026-10-02T23:05:34.315Z" }, + { url = "https://files.pythonhosted.org/packages/60/d0/34b810107d83840e768bf485de795893ebbae35b26ab061b487adfa0a692/markupsafe-3.0.4-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:8909c2f1c6dd65e054ac4b573a91c8384d1492281e55d82d159d653f7a13adf6", size = 11447, upload-time = "2026-10-02T23:05:35.302Z" }, + { url = "https://files.pythonhosted.org/packages/6c/ab/2f8488f0f817a39fca068d2b17daf446bf5cdb3eae28c3720af534d873b4/markupsafe-3.0.4-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:4cf3468d5ec187ffffcaca8e61929a37448f215dafc1386a12c750a72fe53634", size = 11722, upload-time = "2026-10-02T23:05:36.363Z" }, + { url = "https://files.pythonhosted.org/packages/ad/40/e2d117b048d47282ade906fbfd92814cbee5647afc13fda88a3406039372/markupsafe-3.0.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:52704c5d36eb6dda8866493decd61111fff86244c9b1ad225ca01b9e91e5970f", size = 12061, upload-time = "2026-10-02T23:05:37.397Z" }, + { url = "https://files.pythonhosted.org/packages/9a/a8/73a81135e85ba66217f5af7facb03bbb386807e1a729ab64532e4c802652/markupsafe-3.0.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1caa2fa5a6184fb233153b35f654e6687bd555476f6170f29d8ee9be1a8b0af9", size = 24434, upload-time = "2026-10-02T23:05:38.407Z" }, + { url = "https://files.pythonhosted.org/packages/ac/ca/fa9216dd01efee2dfdacafe7df32b4d0170fbac694b0c258a193d6e53999/markupsafe-3.0.4-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:387d8cd30e69b3f0a72877b9ae717033396404e19095b17fe89753a981fda44f", size = 27183, upload-time = "2026-10-02T23:05:39.581Z" }, + { url = "https://files.pythonhosted.org/packages/fa/4e/a469509e538d37af51103b17b073126973f2b1cbf197ff32c7ddf025cfe5/markupsafe-3.0.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:051417f74bcaaefa316276e0ff723f541616ca51043d070da00249d9bddd3e3c", size = 24813, upload-time = "2026-10-02T23:05:40.671Z" }, + { url = "https://files.pythonhosted.org/packages/8f/db/d7282caf7ab03af44d5d6fdbaa019b35c7d7f1c90588b839c07cba640d6a/markupsafe-3.0.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a8e9f292fcda89b324f2f5c91d13f1424a153e40fc2756f38ee23b15835ff300", size = 23049, upload-time = "2026-10-02T23:05:41.864Z" }, + { url = "https://files.pythonhosted.org/packages/30/f3/b6a425206e6964efda6acee544d0eb01d1501784d0b8e2dcc74986f33b17/markupsafe-3.0.4-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:df1ae86ff54725a01fa1a0510b914ca53a161b7050be74f6204e24aded5971d0", size = 22088, upload-time = "2026-10-02T23:05:43.014Z" }, + { url = "https://files.pythonhosted.org/packages/ea/8a/84d3582fc1f0d5bd466cdf2eebf175e172158a6e70701aacec1de1b35430/markupsafe-3.0.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:8965520ac587c94a4ac48b729be3d8b8de00af39699b17585dfb599babe77977", size = 23846, upload-time = "2026-10-02T23:05:44.098Z" }, + { url = "https://files.pythonhosted.org/packages/1c/65/db101cce51b7ba4864ac491a9859d297dd1adf0e55b103fee9db9c47c527/markupsafe-3.0.4-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:340cbb1957ba99929cbf19a75626d36ba1ae21d1730b287d1cf7f824a20c4fc7", size = 22674, upload-time = "2026-10-02T23:05:45.23Z" }, + { url = "https://files.pythonhosted.org/packages/e0/49/ddee9813d71db0c7a5c9d97c832125e6758a0c844777f1cf076569bb0e22/markupsafe-3.0.4-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:3a93d9616ddecfb393727a0041a562cf0b15a244e20f2bd25efc7949be4c4f17", size = 24104, upload-time = "2026-10-02T23:05:46.398Z" }, + { url = "https://files.pythonhosted.org/packages/aa/0e/7d8518d726726870a2399d69fd30d0fa36c5e57a2132c336b58d7c491073/markupsafe-3.0.4-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:d2e56fd3b00222722abfb3f5f0759ddbae4b90811b5ad4343c64030ad1bde70c", size = 21637, upload-time = "2026-10-02T23:05:47.48Z" }, + { url = "https://files.pythonhosted.org/packages/b4/b0/b505e8a361ba557dbf3b3aa7331ea39b00d2022a26e925ff8463b9714bb3/markupsafe-3.0.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:0d9c47709875fdb321452056622e930c52afbc07a7d780762fbb8b4d91ce6fa4", size = 23081, upload-time = "2026-10-02T23:05:48.611Z" }, + { url = "https://files.pythonhosted.org/packages/1c/ea/9cc3cea873f980c75cbdb6f4277ce30ee955de38be0b3d02f14c108e0698/markupsafe-3.0.4-cp314-cp314-win32.whl", hash = "sha256:38fc55594dab834470b6733dead2ee9e3f657fb0608c769dcafa0ba5ab52f45c", size = 14272, upload-time = "2026-10-02T23:05:49.707Z" }, + { url = "https://files.pythonhosted.org/packages/80/f0/5792ff768a410f93ee3f84fc19345295ffc352d2c936b424cb37e514714c/markupsafe-3.0.4-cp314-cp314-win_amd64.whl", hash = "sha256:c1bc67752d5f21013cfe430df4062441714eab79f65a6a05e01505957e9c35fe", size = 14501, upload-time = "2026-10-02T23:05:50.788Z" }, + { url = "https://files.pythonhosted.org/packages/5f/cf/3d074a8edffcc6899355232ff2543ae8d929733239596423b7db79698bc9/markupsafe-3.0.4-cp314-cp314-win_arm64.whl", hash = "sha256:7e1636da3d8dfc220b6dd10264db5f2b165e4888c4518594898fbe381049af8a", size = 14364, upload-time = "2026-10-02T23:05:51.857Z" }, + { url = "https://files.pythonhosted.org/packages/d9/31/87ce42159aae2163cf3bbbd0c44bc87780510eecab1ea3859099aed95dcb/markupsafe-3.0.4-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:805c8b84534fa10891890f0e4be39f3a99e94615d93e8836bf9fa1fdca2feeb2", size = 11759, upload-time = "2026-10-02T23:05:52.951Z" }, + { url = "https://files.pythonhosted.org/packages/5f/53/b047207eeb7752e960aca3eb1df5fb7eefa7dd4c62ac49bb156456c8a702/markupsafe-3.0.4-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:fa95848c929b6a75f6848d3c9793e59db365ee436776e57db835cdbfa79ba977", size = 12096, upload-time = "2026-10-02T23:05:54.066Z" }, + { url = "https://files.pythonhosted.org/packages/ee/51/4326c88a13c7b755657d44b4bb986f8c3d9843ecba7e22d98661d87f9a57/markupsafe-3.0.4-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e916035e3e9930cbdfdd10abf48861340221857f45509565898e012263f7b289", size = 25699, upload-time = "2026-10-02T23:05:55.15Z" }, + { url = "https://files.pythonhosted.org/packages/f2/bb/990581b7474bfcf2cf34bed6ba5ea23bd87adb9d671213d68e88620e7a6b/markupsafe-3.0.4-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:b4d12837e0203bbace818ff4a7461afdcd78bcd782351cea148139180d7bcffe", size = 27804, upload-time = "2026-10-02T23:05:56.29Z" }, + { url = "https://files.pythonhosted.org/packages/6b/89/89491878c28e8291f5aa2fffe2c2d57230d10ae366d55dd810b840513d78/markupsafe-3.0.4-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5086f9975abb1ab531ee6afca1761e4b59a19b446f3f6522ed776963228cfe5a", size = 25912, upload-time = "2026-10-02T23:05:57.416Z" }, + { url = "https://files.pythonhosted.org/packages/30/77/680998b54efdea06fc114565cd739b6d059f826a0279219b218dfa750d29/markupsafe-3.0.4-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b4a635a0487774f841cb1fb62e907e7195cc95bc761e053184b8acc3ceb20733", size = 23623, upload-time = "2026-10-02T23:05:58.557Z" }, + { url = "https://files.pythonhosted.org/packages/ae/75/2709f5ac5de9467b40b10e2bb8f89cc63dfb74582e09aa734b1124a217de/markupsafe-3.0.4-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:cb96e6e088d6cf71c1ea977510948320234824cf226e32f6f6e044f7a9c82b34", size = 23301, upload-time = "2026-10-02T23:05:59.94Z" }, + { url = "https://files.pythonhosted.org/packages/a0/c8/39eadc6c5b14c9c7679bfb98f4d4c6a97863b5beb91839aca4d2d6e16e55/markupsafe-3.0.4-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8b5d563170ff8ba3181caa967c99a3c804d1dedb702c7cb93a6a7c32247da978", size = 24950, upload-time = "2026-10-02T23:06:01.289Z" }, + { url = "https://files.pythonhosted.org/packages/1a/5e/01037f8a43e8ccb0bffb4fbdc5212db05bf080fdd7286cd392332d58128a/markupsafe-3.0.4-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:396ec4e65cc889f69786b3b89478b471cee5a3bcf468b9d9bb03e1a30fb291fc", size = 23330, upload-time = "2026-10-02T23:06:02.441Z" }, + { url = "https://files.pythonhosted.org/packages/d4/f4/23e83ce0596bb0cbe670502d31df8f757bbd01a392aa486fa3b40d1ed399/markupsafe-3.0.4-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:15ba9e28640feef770374b116a6f019c21f52404aeabe516aa7f800587b98cfc", size = 25239, upload-time = "2026-10-02T23:06:03.579Z" }, + { url = "https://files.pythonhosted.org/packages/88/5b/3708897368073cc683d524750474f41a77d2986152c380dcc55b20fdf340/markupsafe-3.0.4-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:d920abdfa61279ba1a2ef9484aab07bf03331f8c08a10120fa332353d06e6932", size = 22767, upload-time = "2026-10-02T23:06:04.699Z" }, + { url = "https://files.pythonhosted.org/packages/c6/61/ebda1307864b409e6b3115757a3d4a09cca46cfb6cc65191b5de226b424b/markupsafe-3.0.4-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:a9f54054101545a9a9cccefddf54316aa6e4491611fcbef9e91b3b6bebec04f6", size = 23668, upload-time = "2026-10-02T23:06:05.9Z" }, + { url = "https://files.pythonhosted.org/packages/09/15/98075cceac3b5ba0dbb8e4762a847be967d2befc349a2cf2d0ac77f62c9d/markupsafe-3.0.4-cp314-cp314t-win32.whl", hash = "sha256:12a606a492de952afcb43b59a14aaaaad120e708d3663dd0fdf2d738d427a691", size = 14301, upload-time = "2026-10-02T23:06:07.109Z" }, + { url = "https://files.pythonhosted.org/packages/0b/a3/768b560fcc4156685cb563d922b217810cfa7bc135773367f62f1f9d2078/markupsafe-3.0.4-cp314-cp314t-win_amd64.whl", hash = "sha256:a18f38cafc329bac5e3c2b96c765b4c96d3d103421ed22ab7988c1e3fce27464", size = 14526, upload-time = "2026-10-02T23:06:08.276Z" }, + { url = "https://files.pythonhosted.org/packages/93/63/da554b4c97a6b0ea3229ca7fe8cbfb620be81613d517f482e85958550537/markupsafe-3.0.4-cp314-cp314t-win_arm64.whl", hash = "sha256:eba154571c16e032112afac0dc2dfe9e63c2ceb7aedd07bb7eecf2ce26d4dd4c", size = 14421, upload-time = "2026-10-02T23:06:09.402Z" }, + { url = "https://files.pythonhosted.org/packages/a9/30/54d11c8ca027114898cab97421fb39e4ffd9ddf47cdbc44df2ec76722da9/markupsafe-3.0.4-cp315-cp315-android_24_arm64_v8a.whl", hash = "sha256:737c9c3981998eba27f11786f84fddcbabc74068b72a4a1f454ea02094b57b65", size = 12791, upload-time = "2026-10-02T23:06:10.485Z" }, + { url = "https://files.pythonhosted.org/packages/10/6d/97c913e253a14bd3cd0e15a5c56d13203b823fa7ee32498342896a072dc4/markupsafe-3.0.4-cp315-cp315-android_24_x86_64.whl", hash = "sha256:489505b03f692c3f376394e49194fa7a7f9e8558d6e293a7056a0032b0c38163", size = 12527, upload-time = "2026-10-02T23:06:11.834Z" }, + { url = "https://files.pythonhosted.org/packages/26/f9/b86d032042a4d597d9e1997f0e5f63a3eedaf11258e0a05760b0a0a826ea/markupsafe-3.0.4-cp315-cp315-ios_13_0_arm64_iphoneos.whl", hash = "sha256:077293e425f28ec737dbcad442a71752e28f8ae27cde3d68acd1fb212091cd92", size = 11602, upload-time = "2026-10-02T23:06:13.122Z" }, + { url = "https://files.pythonhosted.org/packages/f2/dc/73c14c1eedf0ac5fa3292ba43435e6c49d2c2050f33cebde541f8f4807f1/markupsafe-3.0.4-cp315-cp315-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:9348cbb300d224fe3b89793262cb093504d4ae927004468463f745188a193e4a", size = 11817, upload-time = "2026-10-02T23:06:14.227Z" }, + { url = "https://files.pythonhosted.org/packages/8f/69/2c2fcaa5fcee22d72c7819c0d536fd181c74a688e6143845419579cd2863/markupsafe-3.0.4-cp315-cp315-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:b807e598953730f82e4eae3bd30f6a122cf6b31c398c6b504c0e04c13c170429", size = 11446, upload-time = "2026-10-02T23:06:15.574Z" }, + { url = "https://files.pythonhosted.org/packages/88/54/9e5ec76c62e6e2834d5a93623018c943e8b3bb41d663e3fd4c03303b9b85/markupsafe-3.0.4-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:799c39bdf5e2f1292fedd3009f7b3c9e760f10b2420cb9638d56920840ff6db8", size = 11719, upload-time = "2026-10-02T23:06:16.701Z" }, + { url = "https://files.pythonhosted.org/packages/96/24/3ec292b44064c16229e064d770b2625bd8ea941aa61f44905a9fa44942c0/markupsafe-3.0.4-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:ae9dcb8fbe244cb82f8a6458b455b927a03685e383d9bacf1ea5ce180b96dc97", size = 12075, upload-time = "2026-10-02T23:06:17.855Z" }, + { url = "https://files.pythonhosted.org/packages/aa/85/b64fdb1f304848518742136983c24e96d967bfb59a0ea160e92736901ab0/markupsafe-3.0.4-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4bced6e2a6dba6a28f7dd3c6ce14df1b2dd495923f16ea484cad03decd463b2b", size = 24656, upload-time = "2026-10-02T23:06:18.963Z" }, + { url = "https://files.pythonhosted.org/packages/9c/18/23997d4c65b355da6390d61cd56e0ab3befd6ba8dda25cb40c602bd0fa6b/markupsafe-3.0.4-cp315-cp315-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3882fb412298575bae3b9c46868251f15cc69307359f87bb1b382e53d6e5a2c9", size = 27737, upload-time = "2026-10-02T23:06:20.117Z" }, + { url = "https://files.pythonhosted.org/packages/d4/36/35998dead3c6af88c38265a56e58100211f036234ab88eb2283fd4cbce44/markupsafe-3.0.4-cp315-cp315-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:04e7902ba80ee4bac1d50a549606527a1dcf0476cd81403db41099d3b60ec653", size = 25003, upload-time = "2026-10-02T23:06:21.284Z" }, + { url = "https://files.pythonhosted.org/packages/82/96/ef49135ce260db4ca4a12b119ed468449cd248db6b1468e2112b546d7a2e/markupsafe-3.0.4-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:925f929d6b59a8b3f8b8c6ac363cd0af7eecc81efb3071770b3c6717c450a369", size = 23111, upload-time = "2026-10-02T23:06:22.524Z" }, + { url = "https://files.pythonhosted.org/packages/50/7d/83126e338bd88c17a220668235368ad719fd4638e426739858cbb8508f77/markupsafe-3.0.4-cp315-cp315-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f68edfc67aabac33708941f26f22a7b8e9f81429bc0cf249fcf7d66b23af8d19", size = 22403, upload-time = "2026-10-02T23:06:23.785Z" }, + { url = "https://files.pythonhosted.org/packages/83/dd/daf7e420de23c8206c365204e7b85e1251d8e19d34196a56336f316e5ed2/markupsafe-3.0.4-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:e5c802729725bd07e2bc3ab7b76dc7e0bbfc53129d8f1eb1c002c24cf774717e", size = 24083, upload-time = "2026-10-02T23:06:25.037Z" }, + { url = "https://files.pythonhosted.org/packages/19/3c/11eecdc06bc44ad5570350085b572ebf049e8f9a38d1ece6d76640b739cd/markupsafe-3.0.4-cp315-cp315-musllinux_1_2_armv7l.whl", hash = "sha256:55ffd6ce583d97dc71dc92e930324c8c0d25aea7e3ade6ae54ef77cedb096811", size = 22931, upload-time = "2026-10-02T23:06:26.328Z" }, + { url = "https://files.pythonhosted.org/packages/0d/9e/ac0fd77f2a726e56ecc3ca0235d095feace1358d1b822406c2a2ef26a4dc/markupsafe-3.0.4-cp315-cp315-musllinux_1_2_ppc64le.whl", hash = "sha256:2cb3dd71fc6be918ad4264346a8ed69485f9b7ed7bf35495d8e22807cd6b8bea", size = 24299, upload-time = "2026-10-02T23:06:27.742Z" }, + { url = "https://files.pythonhosted.org/packages/d7/09/c6bd842ad58ff5b3bc76eeed7e9a42a6f11adc5d090ec697b72c9672731e/markupsafe-3.0.4-cp315-cp315-musllinux_1_2_riscv64.whl", hash = "sha256:94f5407f7bc64fa6463906b896f9904beeeb7dd8dc116ee8e9056c8714ff9916", size = 21948, upload-time = "2026-10-02T23:06:29.274Z" }, + { url = "https://files.pythonhosted.org/packages/a3/46/82f586711fed61e86faa1ee1bc317d68cd45a10c8bdbe3f7d1fdf9026ad8/markupsafe-3.0.4-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:2dad610540cb2e6272855c178f08ae9a1c7ac258a7fb71660553a5f104b42741", size = 23150, upload-time = "2026-10-02T23:06:30.583Z" }, + { url = "https://files.pythonhosted.org/packages/19/2d/2dfdce99318abbfa26925195fbc17db188c46a1ec6457be121b6f9cfeb42/markupsafe-3.0.4-cp315-cp315-win32.whl", hash = "sha256:03470d1a8268e692ecf79ecd565593e59d44219377a7ead61f1f1b94c1f7ff6b", size = 14269, upload-time = "2026-10-02T23:06:31.949Z" }, + { url = "https://files.pythonhosted.org/packages/5b/ec/6000fd82e8791e58fcd0456ec20f098957e2b03d5ed02eb73241a577c0ba/markupsafe-3.0.4-cp315-cp315-win_amd64.whl", hash = "sha256:d882a373d8093c2941e01291b7ced96e9cbe4781da9a7751ca7e6c70385e5214", size = 14496, upload-time = "2026-10-02T23:06:33.258Z" }, + { url = "https://files.pythonhosted.org/packages/bc/66/e73bd5016421d5d6e2fb6de7dd609f9de020942ac8c626526bd8c6eeaf82/markupsafe-3.0.4-cp315-cp315-win_arm64.whl", hash = "sha256:353bd63081912ab8cfa6a0c7d185934cdf8426f04c618bba6bc4b394f2069b67", size = 14361, upload-time = "2026-10-02T23:06:34.539Z" }, + { url = "https://files.pythonhosted.org/packages/90/df/cb8c3dc98d313a951df2f8968f44e4cb5643df6d3cab749a530ce2f7d972/markupsafe-3.0.4-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:c61750fadcd119d0825bcb7d7d675dd264dcc89cc05292aab5be68ebdbb374ad", size = 11760, upload-time = "2026-10-02T23:06:35.807Z" }, + { url = "https://files.pythonhosted.org/packages/d6/bb/4af9b3ca0753d654ac75f9531d5bd741bb77ca6e696f36807c475ffc099a/markupsafe-3.0.4-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:1c0df495a977d10460a94941799c72d5b5ab03d3858d949b55b5a66c8f371c99", size = 12108, upload-time = "2026-10-02T23:06:37.089Z" }, + { url = "https://files.pythonhosted.org/packages/3f/d4/b56429313aee5fd59b079c3df5615299959e25e7113eb6d8caadbdd7d38a/markupsafe-3.0.4-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:02fa4acbc6a3fc5c693c34d4dd8c1130b7fe99cc915181b0ddd6f72aeb296002", size = 25762, upload-time = "2026-10-02T23:06:38.419Z" }, + { url = "https://files.pythonhosted.org/packages/65/f5/34c181e891aa4f7d59c918584672e0c5eb7fffe76c1387d1246008bf4081/markupsafe-3.0.4-cp315-cp315t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:05295589e619b9bed252a86b532b8e27350abc372d18ba89b59375325e91ec1e", size = 28400, upload-time = "2026-10-02T23:06:39.819Z" }, + { url = "https://files.pythonhosted.org/packages/ce/b5/ad14694fd0ac9a5ce30bc6498f2999378f418583dd1679cca5a1b512957e/markupsafe-3.0.4-cp315-cp315t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:be6cb0c799abb0e2ba3e618e6d28ddddf7e485f6c2ce938dfa237daf3905072c", size = 25946, upload-time = "2026-10-02T23:06:41.381Z" }, + { url = "https://files.pythonhosted.org/packages/d6/a8/26b606445387d0ceb1eb1f21840094b84e4e3c3c3983d80d10b89823b490/markupsafe-3.0.4-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:26e9867520db70d37f7fb421a7f0d8adb40171011fb84ce869afa1a83370dfa8", size = 23634, upload-time = "2026-10-02T23:06:42.748Z" }, + { url = "https://files.pythonhosted.org/packages/39/a2/b8814de672f1f0094d498bf646f2fec9d6356b503d28ef500b71c5095377/markupsafe-3.0.4-cp315-cp315t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f03460ff076f70ab595bb45a0205ccea1971443575b6920c52e755dec2b3fbfe", size = 23488, upload-time = "2026-10-02T23:06:44.176Z" }, + { url = "https://files.pythonhosted.org/packages/db/c7/287223376fb73335a3cc5d6eb22c6ab01358cf33945a9c39c06b9dac3f4b/markupsafe-3.0.4-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:436e3ffc6310d3c41878c601db29098102fe5d8a467c49da4a4125254e0980f2", size = 25037, upload-time = "2026-10-02T23:06:45.646Z" }, + { url = "https://files.pythonhosted.org/packages/f9/29/4df8355e313426d19e62ba33e0253c009ca12a0894ee77d67fa67255361c/markupsafe-3.0.4-cp315-cp315t-musllinux_1_2_armv7l.whl", hash = "sha256:4e2c4809c14559aa7ef426f27fb35afbb38104c349a903bf8f3600456764bb38", size = 23543, upload-time = "2026-10-02T23:06:47.264Z" }, + { url = "https://files.pythonhosted.org/packages/71/e5/8377731e8495668dcc768f645e717df18318c841edaf023a99395f6da9b4/markupsafe-3.0.4-cp315-cp315t-musllinux_1_2_ppc64le.whl", hash = "sha256:da2af0d7aebfc2074080d72efa6ab8317c62481ef1f896f65d9999c1c01f4494", size = 25282, upload-time = "2026-10-02T23:06:48.795Z" }, + { url = "https://files.pythonhosted.org/packages/ed/5f/373456e37ceb1478d657d6fe769cbe0a39f0a8dfc1548eeb19c471eefdd9/markupsafe-3.0.4-cp315-cp315t-musllinux_1_2_riscv64.whl", hash = "sha256:aa2c838cc024642cc04c6854232f32b43e5e22833dd11119c1766c7873b8370d", size = 22993, upload-time = "2026-10-02T23:06:50.31Z" }, + { url = "https://files.pythonhosted.org/packages/d7/93/2cbd5628435afb6f541bbaced4bce0c2edac4b09a142e6e928b8b0da9858/markupsafe-3.0.4-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:b91cc9d336957239ff200f30097e6fea2dc6d6fb3c81e853eaa09eac904fd894", size = 23712, upload-time = "2026-10-02T23:06:51.759Z" }, + { url = "https://files.pythonhosted.org/packages/81/99/157e10966b033b363aeda5263e82596ee232a0b1d082fdbf90aa417ff083/markupsafe-3.0.4-cp315-cp315t-win32.whl", hash = "sha256:e49fb0d1ce92cfa0cb198cc5b1b11cdf9d0638658e2a2db2687e39db7c87fc78", size = 14300, upload-time = "2026-10-02T23:06:53.241Z" }, + { url = "https://files.pythonhosted.org/packages/33/05/55884815414c9706a23deca150b72c25a62109e65b0b6ce232077802c719/markupsafe-3.0.4-cp315-cp315t-win_amd64.whl", hash = "sha256:4f6e0852a0283b1b1fd776eeb7b766a5f440b3e2bd31ab51af3b400585f3965c", size = 14522, upload-time = "2026-10-02T23:06:54.729Z" }, + { url = "https://files.pythonhosted.org/packages/92/f9/ecbde7149e95b8a0f18e16d5d747f7dc06049d5da2e4f77f6f5e4a1f46a8/markupsafe-3.0.4-cp315-cp315t-win_arm64.whl", hash = "sha256:39dbacefc411633db5b4378b066a9aca70a3d7e2922c9e578d825f844026eeba", size = 14417, upload-time = "2026-10-02T23:06:56.246Z" }, ] [[package]] name = "matplotlib" -version = "3.10.9" +version = "3.11.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "contourpy" }, @@ -1493,43 +1490,50 @@ dependencies = [ { name = "pyparsing" }, { name = "python-dateutil" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/63/1b/4be5be87d43d327a0cf4de1a56e86f7f84c89312452406cf122efe2839e6/matplotlib-3.10.9.tar.gz", hash = "sha256:fd66508e8c6877d98e586654b608a0456db8d7e8a546eb1e2600efd957302358", size = 34811233 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/35/c6/5581e26c72233ebb2a2a6fed2d24fb7c66b4700120b813f51b0555acf0b6/matplotlib-3.10.9-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f0c3c28d9fbcc1fe7a03be236d73430cf6409c41fb2383a7ac52fe932b072cb1", size = 8319908 }, - { url = "https://files.pythonhosted.org/packages/b7/18/4880dd762e40cd360c1bf06e890c5a97b997e91cb324602b1a19950ad5ce/matplotlib-3.10.9-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:41cb28c2bd769aa3e98322c6ab09854cbcc52ab69d2759d681bba3e327b2b320", size = 8216016 }, - { url = "https://files.pythonhosted.org/packages/32/91/d024616abdba99e83120e07a20658976f6a343646710760c4a51df126029/matplotlib-3.10.9-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ae20801130378b82d647ff5047c07316295b68dc054ca6b3c13519d0ea624285", size = 8789336 }, - { url = "https://files.pythonhosted.org/packages/5c/04/030a2f61ef2158f5e4c259487a92ac877732499fb33d871585d89e03c42d/matplotlib-3.10.9-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6c63ebcd8b4b169eb2f5c200552ae6b8be8999a005b6b507ed76fb8d7d674fe2", size = 9604602 }, - { url = "https://files.pythonhosted.org/packages/fc/c2/541e4d09d87bb6b5830fc28b4c887a9a8cf4e1c6cee698a8c05552ae2003/matplotlib-3.10.9-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d75d11c949914165976c621b2324f9ef162af7ebf4b057ddf95dd1dba7e5edcf", size = 9670966 }, - { url = "https://files.pythonhosted.org/packages/04/a1/4571fc46e7702de8d0c2dc54ad1b2f8e29328dea3ee90831181f7353d93c/matplotlib-3.10.9-cp312-cp312-win_amd64.whl", hash = "sha256:d091f9d758b34aaaaa6331d13574bf01891d903b3dec59bfff458ef7551de5d6", size = 8217462 }, - { url = "https://files.pythonhosted.org/packages/4b/d0/2269edb12aa30c13c8bcc9382892e39943ce1d28aab4ec296e0381798e81/matplotlib-3.10.9-cp312-cp312-win_arm64.whl", hash = "sha256:10cc5ce06d10231c36f40e875f3c7e8050362a4ee8f0ee5d29a6b3277d57bb42", size = 8136688 }, - { url = "https://files.pythonhosted.org/packages/aa/d3/8d4f6afbecb49fc04e060a57c0fce39ea51cc163a6bd87303ccd698e4fa6/matplotlib-3.10.9-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b580440f1ff81a0e34122051a3dfabb7e4b7f9e380629929bde0eff9af72165f", size = 8320331 }, - { url = "https://files.pythonhosted.org/packages/63/d9/9e14bc7564bf92d5ffa801ae5fac819ce74b925dfb55e3ebde61a3bbad3e/matplotlib-3.10.9-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:b1b745c489cd1a77a0dc1120a05dc87af9798faebc913601feb8c73d89bf2d1e", size = 8216461 }, - { url = "https://files.pythonhosted.org/packages/8a/17/4402d0d14ccf1dfc70932600b68097fbbf9c898a4871d2cbbe79c7801a32/matplotlib-3.10.9-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8f3bcac1ca5ed000a6f4337d47ba67dfddf37ed6a46c15fd7f014997f7bf865f", size = 8790091 }, - { url = "https://files.pythonhosted.org/packages/3e/0b/322aeec06dd9b91411f92028b37d447342770a24392aa4813e317064dad5/matplotlib-3.10.9-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7a8d66a55def891c33147ba3ba9bfcabf0b526a43764c818acbb4525e5ed0838", size = 9605027 }, - { url = "https://files.pythonhosted.org/packages/74/88/5f13482f55e7b00bcfc09838b093c2456e1379978d2a146844aae05350ad/matplotlib-3.10.9-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d843374407c4017a6403b59c6c81606773d136f3259d5b6da3131bc814542cc2", size = 9671269 }, - { url = "https://files.pythonhosted.org/packages/c5/e0/0840fd2f93da988ec660b8ad1984abe9f25d2aed22a5e394ff1c68c88307/matplotlib-3.10.9-cp313-cp313-win_amd64.whl", hash = "sha256:f4399f64b3e94cd500195490972ae1ee81170df1636fa15364d157d5bdd7b921", size = 8217588 }, - { url = "https://files.pythonhosted.org/packages/47/b9/d706d06dd605c49b9f83a2aed8c13e3e5db70697d7a80b7e3d7915de6b17/matplotlib-3.10.9-cp313-cp313-win_arm64.whl", hash = "sha256:ba7b3b8ef09eab7df0e86e9ae086faa433efbfbdb46afcb3aa16aabf779469a8", size = 8136913 }, - { url = "https://files.pythonhosted.org/packages/9b/45/6e32d96978264c8ca8c4b1010adb955a1a49cfaf314e212bbc8908f04a61/matplotlib-3.10.9-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:09218df8a93712bd6ea133e83a153c755448cf7868316c531cffcc43f69d1cc9", size = 8368019 }, - { url = "https://files.pythonhosted.org/packages/86/0a/c8e3d3bba245f0f7fc424937f8ff7ef77291a36af3edb97ccd78aa93d84f/matplotlib-3.10.9-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:82368699727bfb7b0182e1aa13082e3c08e092fa1a25d3e1fd92405bff96f6d4", size = 8264645 }, - { url = "https://files.pythonhosted.org/packages/3d/aa/5bf5a14fe4fed73a4209a155606f8096ff797aad89c6c35179026571133e/matplotlib-3.10.9-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3225f4e1edcb8c86c884ddf79ebe20ecd0a67d30188f279897554ccd8fded4dc", size = 8802194 }, - { url = "https://files.pythonhosted.org/packages/dd/5e/b4be852d6bba6fd15893fadf91ff26ae49cb91aac789e95dde9d342e664f/matplotlib-3.10.9-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:de2445a0c6690d21b7eb6ce071cebad6d40a2e9bdf10d039074a96ba19797b99", size = 9622684 }, - { url = "https://files.pythonhosted.org/packages/4c/3d/ed428c971139112ef730f62770654d609467346d09d4b62617e1afd68a5a/matplotlib-3.10.9-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:b2b9516251cb89ff618d757daec0e2ed1bf21248013844a853d87ef85ab3081d", size = 9680790 }, - { url = "https://files.pythonhosted.org/packages/e7/09/052e884aaf2b985c63cb79f715f1d5b6a3eaa7de78f6a52b9dbc077d5b53/matplotlib-3.10.9-cp313-cp313t-win_amd64.whl", hash = "sha256:e9fae004b941b23ff2edcf1567a857ed77bafc8086ffa258190462328434faf8", size = 8287571 }, - { url = "https://files.pythonhosted.org/packages/f4/38/ae27288e788c35a4250491422f3db7750366fc8c97d6f36fbdecfc1f5518/matplotlib-3.10.9-cp313-cp313t-win_arm64.whl", hash = "sha256:6b63d9c7c769b88ab81e10dc86e4e0607cf56817b9f9e6cf24b2a5f1693b8e38", size = 8188292 }, - { url = "https://files.pythonhosted.org/packages/d6/e6/3bd8afd04949f02eabc1c17115ea5255e19cacd4d06fc5abdde4eeb0052c/matplotlib-3.10.9-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:172db52c9e683f5d12eaf57f0f54834190e12581fe1cc2a19595a8f5acb4e77d", size = 8321276 }, - { url = "https://files.pythonhosted.org/packages/41/86/86231232fff41c9f8e4a1a7d7a597d349a02527109c3af7d618366122139/matplotlib-3.10.9-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:97e35e8d39ccc85859095e01a53847432ba9a53ddf7986f7a54a11b73d0e143f", size = 8218218 }, - { url = "https://files.pythonhosted.org/packages/85/8f/becc9722cafc64f5d2eb0b7c1bf5f585271c618a45dbd8fabeb021f898b6/matplotlib-3.10.9-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:aba1615dabe83188e19d4f75a253c6a08423e04c1425e64039f800050a69de6b", size = 9608145 }, - { url = "https://files.pythonhosted.org/packages/32/5d/f7e914f7d9325abff4057cee62c0fa70263683189f774473cbfb534cd13b/matplotlib-3.10.9-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:34cf8167e023ad956c15f36302911d5406bd99a9862c1a8499ea6f7c0e015dc2", size = 9885085 }, - { url = "https://files.pythonhosted.org/packages/a5/fd/fa69f2221534e80cc5772ac2b7d222011a2acafc2ec7216d5dd174c864ae/matplotlib-3.10.9-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:59476c6d29d612b8e9bb6ce8c5b631be6ba8f9e3a2421f22a02b192c7dd28716", size = 9672358 }, - { url = "https://files.pythonhosted.org/packages/ab/1a/5a4f747a8b271cbb024946d2dd3c913ab5032ba430626f8c3528ada96b4b/matplotlib-3.10.9-cp314-cp314-win_amd64.whl", hash = "sha256:336b9acc64d309063126edcdaca00db9373af3c476bb94388fe9c5a53ad13e6f", size = 8349970 }, - { url = "https://files.pythonhosted.org/packages/64/dc/95d60ecaefe30680a154b52ea96ab4b0dab547f1fd6aa12f5fb655e89cae/matplotlib-3.10.9-cp314-cp314-win_arm64.whl", hash = "sha256:2dc9477819ffd78ad12a20df1d9d6a6bd4fec6aaa9072681465fddca052f1456", size = 8272785 }, - { url = "https://files.pythonhosted.org/packages/70/a0/005d68bc8b8418300ce6591f18586910a8526806e2ab663933d9f20a41e9/matplotlib-3.10.9-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:da4e09638420548f31c354032a6250e473c68e5a4e96899b4844cf39ddea23fe", size = 8367999 }, - { url = "https://files.pythonhosted.org/packages/22/05/1236cc9290be70b2498af20ca348add76e3fffe7f67b477db5133a84f3ea/matplotlib-3.10.9-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:345f6f68ecc8da0ca56fad2ea08fde1a115eda530079eca185d50a7bc3e146c6", size = 8264543 }, - { url = "https://files.pythonhosted.org/packages/cd/c2/071f5a5ff6c5bd63aaaf2f45c811d9bf2ced94bde188d9e1a519e21d0cba/matplotlib-3.10.9-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4edcfbd8565339aa62f1cd4012f7180926fdbe71850f7b0d3c379c175cd6b66c", size = 9622800 }, - { url = "https://files.pythonhosted.org/packages/95/57/da7d1f10a85624b9e7db68e069dd94e58dc41dbf9463c5921632ecbe3661/matplotlib-3.10.9-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6be157fe17fc37cb95ac1d7374cf717ce9259616edec911a78d9d26dae8522d4", size = 9888561 }, - { url = "https://files.pythonhosted.org/packages/67/b2/ef8d6bb59b0edb6c16c968b70f548aa13b54348972def5aa6ac85df67145/matplotlib-3.10.9-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:4e42042d54db34fda4e95a7bd3e5789c2a995d2dad3eb8850232ee534092fbbf", size = 9680884 }, - { url = "https://files.pythonhosted.org/packages/61/1c/d21bfeb9931881ebe96bcfcff27c7ae4b160ae0ec291a714c42641a56d75/matplotlib-3.10.9-cp314-cp314t-win_amd64.whl", hash = "sha256:c27df8b3848f32a83d1767566595e43cfaa4460380974da06f4279a7ec143c39", size = 8432333 }, - { url = "https://files.pythonhosted.org/packages/78/23/92493c3e6e1b635ccfff146f7b99e674808787915420373ac399283764c2/matplotlib-3.10.9-cp314-cp314t-win_arm64.whl", hash = "sha256:a49f1eadc84ca85fd72fa4e89e70e61bf86452df6f971af04b12c60761a0772c", size = 8324785 }, +sdist = { url = "https://files.pythonhosted.org/packages/e7/c8/9aa712a0afb882649424dd8de8ad9aa6235e796e84c6052e8f6dc1598d0d/matplotlib-3.11.2.tar.gz", hash = "sha256:cec596316640f2b394b8f0daa0ea61a8eae82d017b620b9f202befb972a59ea4", size = 32660610, upload-time = "2026-09-11T19:05:31.214Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/ce/1bfcc4873b121597791ad74032943b123218c0613af0b97e8dd05e916fb1/matplotlib-3.11.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ef752769cd962f39ea0b6ffc82d1ea43a0012c5a6157c7a075212fa509cfcff2", size = 9476466, upload-time = "2026-09-11T19:03:19.45Z" }, + { url = "https://files.pythonhosted.org/packages/a6/c4/7f5f3601ee69baf072c0c7d3ce60c03e0618621c5a56c34a62a460e29d11/matplotlib-3.11.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ef31985c4dedb5f1424e1aec6849a47dd37689cb7fa3c20b1b82187f26806261", size = 9305583, upload-time = "2026-09-11T19:03:22.39Z" }, + { url = "https://files.pythonhosted.org/packages/b8/90/2b3fd67ee273163faeda6d514be70b5596eaa0fd77b60ffc294ad0b34f5f/matplotlib-3.11.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:df4f7784aca81a94f254c0a2767d592ee25f407e488f5fa7203e51093fb6ca27", size = 9860353, upload-time = "2026-09-11T19:03:25.049Z" }, + { url = "https://files.pythonhosted.org/packages/f4/84/32549e7a462dc311aed2ab62e5d2538028840b5c53a8be0195c789937c3d/matplotlib-3.11.2-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1b9a7ad579856284135e401ecc918c5f8a017ee30539298862a109f51b971710", size = 10670348, upload-time = "2026-09-11T19:03:28.108Z" }, + { url = "https://files.pythonhosted.org/packages/84/39/02e21b74f7439bd643d717ea846006d46e309e6d29b632b57751265311d6/matplotlib-3.11.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3aa4b8516fd26659e4363abbf317c703d9116496c5db2e9d0609a2866dd39dd2", size = 10810580, upload-time = "2026-09-11T19:03:31.402Z" }, + { url = "https://files.pythonhosted.org/packages/04/93/0d239bde12b308262265c2d98909b2f0ecad2b5deeae96241642e822e9c7/matplotlib-3.11.2-cp312-cp312-win_amd64.whl", hash = "sha256:c5c1c68ee401fc98271263410f0e5ce88285abacf7627132914e8adf3d70ff43", size = 9349409, upload-time = "2026-09-11T19:03:34.195Z" }, + { url = "https://files.pythonhosted.org/packages/49/a8/06baf901c02246c8a222b655cc4540ef9c15e1549a04e07927f9cde716c3/matplotlib-3.11.2-cp312-cp312-win_arm64.whl", hash = "sha256:643ff850d8e0f5b8319337f87ed3cb59506afb3df3cc48de777d85871233be7b", size = 9028084, upload-time = "2026-09-11T19:03:37.032Z" }, + { url = "https://files.pythonhosted.org/packages/bf/ce/fc58855a3d17f6cb8a87b6f9ccd100f65432a3a7ffed57309cbf14c78987/matplotlib-3.11.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7d43ff8cebb50840648cb6429b2228621dbd709010f3117b3740abb20abf21c0", size = 9476987, upload-time = "2026-09-11T19:03:40.17Z" }, + { url = "https://files.pythonhosted.org/packages/a9/29/2a47b700545aca050e0ed73c89ba21e08407e11f5f42a567421b220de6c1/matplotlib-3.11.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2a8285cea8ef4d92aa041d1c33788bcae82248503300f93f1ca2136b9049452f", size = 9306050, upload-time = "2026-09-11T19:03:43.103Z" }, + { url = "https://files.pythonhosted.org/packages/a9/df/e7c10292f348cf55178a5b3c0092a38ea68891a3945f199ae8b7b8ac9dc1/matplotlib-3.11.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1944895967f87c84c9b4bad29a707b31f5b36df4a3a2339ea1f8ea3ce5105539", size = 9861060, upload-time = "2026-09-11T19:03:46.044Z" }, + { url = "https://files.pythonhosted.org/packages/e4/b9/b978de6d43d47f1d4d8e653fac32c16d8d2e5f46bbbb822e26d7cb1adece/matplotlib-3.11.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:af2661f6ac6bbd1d081996f54fdd9385715c625ace8cec0869055c0cfbf38981", size = 10670885, upload-time = "2026-09-11T19:03:48.942Z" }, + { url = "https://files.pythonhosted.org/packages/a3/80/d72f61bb2631ac15d17fada1f17e0f99fecba69d8376d34f17cf93b7eddd/matplotlib-3.11.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7e5a90f8a707ebb6004a713b1cff091a40cc5df4c7c1cb165e5a505ebc11c292", size = 10811222, upload-time = "2026-09-11T19:03:51.665Z" }, + { url = "https://files.pythonhosted.org/packages/94/2e/6d1d33f242c705b5c6c6fb3f0fc141add51cb1abb62912e59de0835d28c4/matplotlib-3.11.2-cp313-cp313-win_amd64.whl", hash = "sha256:bc067c462a86f0e57bf52fc6e058d90171a5420007dac00c46e90153050c69a7", size = 9349539, upload-time = "2026-09-11T19:03:54.534Z" }, + { url = "https://files.pythonhosted.org/packages/bb/bb/c0aa86a7f4c0e62f1c3c0711e361f6f23f87eb9018732a5e11994bd1b7ec/matplotlib-3.11.2-cp313-cp313-win_arm64.whl", hash = "sha256:3e8576f7c47e02fd4f21f44171302d2d1d58d4471d46da3d71fe8899d19539d9", size = 9028295, upload-time = "2026-09-11T19:03:57.261Z" }, + { url = "https://files.pythonhosted.org/packages/54/b4/4facdb700bc236e4c676495ca3798d8134ab8668cbfe0f6b2e9ebf962a38/matplotlib-3.11.2-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:c9721f81275499da1feeb36a2cf8192ea086283b3bd16b7dc4c9d7aedb7396d6", size = 9478976, upload-time = "2026-09-11T19:04:00.12Z" }, + { url = "https://files.pythonhosted.org/packages/4c/a0/bba05f0a25bfeb0475c2f2a87958b31103aa6b7a5386017afb1a96212825/matplotlib-3.11.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1a3040b209f3968b4e84161df7b174f07a9fad33b0f2d7e48ea3bbd3075e2863", size = 9307932, upload-time = "2026-09-11T19:04:02.976Z" }, + { url = "https://files.pythonhosted.org/packages/d4/42/81d5cba4bb39b41b0998efc880e129f2d7cdb94256ca49678fdcd9c21be5/matplotlib-3.11.2-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bf3fe71fbfb8ec0e310e0bc8537c3405a01f38f25f9394ed2135e6202fed542b", size = 10674370, upload-time = "2026-09-11T19:04:06.912Z" }, + { url = "https://files.pythonhosted.org/packages/29/5e/52f56f93d5b20815ee0ae352f7a38eff25580edb180b4fa7df87cfeba68f/matplotlib-3.11.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8c8255de28f986d935a64c9ca71c0ec2d2f41d355691f5ea684725dc91413f71", size = 10954597, upload-time = "2026-09-11T19:04:09.948Z" }, + { url = "https://files.pythonhosted.org/packages/6e/ae/f8918a1b564db49c53cd603eb3c8748c5767e4ce0fb2cf1d7c38653e4c5d/matplotlib-3.11.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:a8756cc73d9af9a7fe0deb54ea2e75ef73b01d9e575877e72acad5458e660943", size = 10812583, upload-time = "2026-09-11T19:04:12.887Z" }, + { url = "https://files.pythonhosted.org/packages/ea/61/4315ef0d63937fe56f451887b4a0be3b8e8b22cf1d92a8d157caac54570d/matplotlib-3.11.2-cp314-cp314-win_amd64.whl", hash = "sha256:ecea603dd2fbf8242fd31a305a8b12a4ece2de28096870c65fdd0d1e35b8d9a6", size = 9505972, upload-time = "2026-09-11T19:04:15.788Z" }, + { url = "https://files.pythonhosted.org/packages/d5/00/02398b0a1a62ef73d9af0a957fe1773363eec9a6ca7e433c72ae2790fbce/matplotlib-3.11.2-cp314-cp314-win_arm64.whl", hash = "sha256:01dc8eaaab5a9fce9ff615eca82345728f289e4715b186ee10c6d85272fc26bb", size = 9184534, upload-time = "2026-09-11T19:04:18.691Z" }, + { url = "https://files.pythonhosted.org/packages/ec/c5/1e6ca10baa7e04f113c37856aadb4adc3dbb1c55fc7da6dc830bba1292d7/matplotlib-3.11.2-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:79a258f58253dfa025af80a9e9bb228d75fced007f0e93ae7423fefbde81a74d", size = 9526415, upload-time = "2026-09-11T19:04:21.39Z" }, + { url = "https://files.pythonhosted.org/packages/e0/93/7561727af07ccc84747953c6a33eee3981cc436d04f465032e707ca0e429/matplotlib-3.11.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c0b83f044ce10a98027b105b3931548719a6e8c7ef986b4362651e0b5367c8dc", size = 9361064, upload-time = "2026-09-11T19:04:24.107Z" }, + { url = "https://files.pythonhosted.org/packages/c1/40/ce270ef2a6794d94a409fe28b8dabedffc07c07f9e5dbb89e0f605bd157d/matplotlib-3.11.2-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e43b188f0a5b75447bcc197728258166aa64365770ed1caa36595a5e1ca4bbba", size = 10684626, upload-time = "2026-09-11T19:04:27.201Z" }, + { url = "https://files.pythonhosted.org/packages/45/46/396e0307dbf1c1f2d0a3654caa6dbc780dd5379f5f11257369cf8d21d9fe/matplotlib-3.11.2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d3304eb5a59442a8867f6920d484591c0fa09ffc29e9260be2feec3351e25869", size = 10960602, upload-time = "2026-09-11T19:04:30.254Z" }, + { url = "https://files.pythonhosted.org/packages/1c/97/4defb84695477340aa88b27c9482cc1ca4de11f36f66b6c8c0ddd685def1/matplotlib-3.11.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:02329432ae5c6af87cf208ee575b701d698bdf0b1a3bb28cc6d53c36e967e575", size = 10822603, upload-time = "2026-09-11T19:04:32.964Z" }, + { url = "https://files.pythonhosted.org/packages/7d/e7/eab54551c1ec6b72dcd678a078b6c6da8d4c85ec1ff0016e81fe52866304/matplotlib-3.11.2-cp314-cp314t-win_amd64.whl", hash = "sha256:f2ac30cf5eb5dff1b584627ae0b0e1186551a4f69ae3c75073911da497a29170", size = 9551206, upload-time = "2026-09-11T19:04:35.811Z" }, + { url = "https://files.pythonhosted.org/packages/4e/0e/04698032cb4d8fb1e30d8ffec5ded20f6f582b03c8c58b2385c95245f158/matplotlib-3.11.2-cp314-cp314t-win_arm64.whl", hash = "sha256:cf41ecd1b0c0b6f7177ed965a54c2afbe888715c7cf6054dc12d53bc1494002c", size = 9234977, upload-time = "2026-09-11T19:04:38.972Z" }, + { url = "https://files.pythonhosted.org/packages/44/a9/ca827c184b87364378964e36e7c0ae23651d146fdbc4000635205490cf82/matplotlib-3.11.2-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:894a9cbbecbe30ae6787d464df2e8fc7a8d475cfc68f87c3029f7c11152899b3", size = 9478997, upload-time = "2026-09-11T19:04:41.914Z" }, + { url = "https://files.pythonhosted.org/packages/48/60/01aaafc9c3159f3fae9a65bbcddaa4a6d4d72b0aeffdd636d7f6d00a5c8d/matplotlib-3.11.2-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:bbf1062991d826ed27e2144f3afa4461afbb8ff56e8f703043e191a8163b1ee9", size = 9307947, upload-time = "2026-09-11T19:04:44.834Z" }, + { url = "https://files.pythonhosted.org/packages/1e/a0/6aa72c7cd7cf4dfac652744d7a3310007cec3ce8e5ab9be607bec7096471/matplotlib-3.11.2-cp315-cp315-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:399fef672f7046ef7d6a57572b2a6f9845f3f5afcff04e7b2df7a363a9f42190", size = 10674370, upload-time = "2026-09-11T19:04:47.745Z" }, + { url = "https://files.pythonhosted.org/packages/a1/97/d7e90225ac145046787a2ee0fa4cdc7e4d5cb6772ea232130b10f8a4095a/matplotlib-3.11.2-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cc82dde2a0d3e3ad472edce04897ad7146b8d8bfd1df8a32992eebb81af18fdc", size = 10954581, upload-time = "2026-09-11T19:04:50.712Z" }, + { url = "https://files.pythonhosted.org/packages/58/18/89cf056a9d2cae01f4b8baf01c7e809d613244fcdfa2a2acf28c1e0d79fa/matplotlib-3.11.2-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:930efb28f59fda124e39265d177bab302625297bb147d2910de725a2fc2aef54", size = 10812605, upload-time = "2026-09-11T19:04:53.552Z" }, + { url = "https://files.pythonhosted.org/packages/9d/4d/c61b9f4c34af802d4d84e58803e009013d626b5f468bafe1416131863b5b/matplotlib-3.11.2-cp315-cp315-win_amd64.whl", hash = "sha256:3da3bc0cbf7245e7db72cc6d29d12c5abef72cb73059c73b945f14e3545f3eb2", size = 9506068, upload-time = "2026-09-11T19:04:56.519Z" }, + { url = "https://files.pythonhosted.org/packages/03/7b/047f2fa8708d47430d8e7fa45e9fffb0aee5d4e300f978e087be2ee11fbc/matplotlib-3.11.2-cp315-cp315-win_arm64.whl", hash = "sha256:f25446b2981717dca9786bac841cb3fd7efb568e3e3c755dd980481c5cb9228d", size = 9184576, upload-time = "2026-09-11T19:04:59.318Z" }, + { url = "https://files.pythonhosted.org/packages/03/6e/ad9c5989950785a98642667df265a47c6637e924cb69b5dcf68c3299ae7c/matplotlib-3.11.2-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:fea03cf56568cc1cba08b470be6a0559e71c3a5b688d54b7179bb35ba23d0821", size = 9525988, upload-time = "2026-09-11T19:05:02.304Z" }, + { url = "https://files.pythonhosted.org/packages/a6/c3/25c61701fb655dd412428b15eee2591ce554cdd593e39a045a153373f428/matplotlib-3.11.2-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:254d4ddb2fa8df3b4c689c0c306063aee10521df82cfb438185e499c75fe37c1", size = 9360774, upload-time = "2026-09-11T19:05:05.092Z" }, + { url = "https://files.pythonhosted.org/packages/58/5a/4552878fce8f9d249a5e264c16f5c267c27eac08fb039fa3e207a06feff5/matplotlib-3.11.2-cp315-cp315t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e60cf3047a51edecdc4535a9196bbd6a732936b8e9f8184aabf4d16165884aaf", size = 10685892, upload-time = "2026-09-11T19:05:07.686Z" }, + { url = "https://files.pythonhosted.org/packages/af/dd/b3b19ec0124fc4aafd8a4b3bae859c562a7ff0fd8ae3b2099947f78bde19/matplotlib-3.11.2-cp315-cp315t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:eb3712dc9b464793de0a4e42a7313d50293c751f94bddaf7332a1bc71bccdda9", size = 10964946, upload-time = "2026-09-11T19:05:10.943Z" }, + { url = "https://files.pythonhosted.org/packages/7b/30/687ccce22f66a57fed85942450e88062773bcbf1a42914e70c7148ec71dc/matplotlib-3.11.2-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:75b6d88402770e181b5d06a67dda4129c31da7d05004d63a21c310ec78d1b83c", size = 10824960, upload-time = "2026-09-11T19:05:13.9Z" }, + { url = "https://files.pythonhosted.org/packages/d3/34/117fe35a8d05054b4b34d2d29287099927c24c3841d36e06d9fa2f20c1cf/matplotlib-3.11.2-cp315-cp315t-win_amd64.whl", hash = "sha256:a6939df7567114b6bac7f4c5e06c84a67f197c1b2f2e4b234d4eecb3bfec9482", size = 9551204, upload-time = "2026-09-11T19:05:16.48Z" }, + { url = "https://files.pythonhosted.org/packages/63/5a/9f440e7bec8b80d0af2a65d1165b2f4e718982dad785531f62255d9ff19b/matplotlib-3.11.2-cp315-cp315t-win_arm64.whl", hash = "sha256:d480038c83691532ed52ff3147db51fa902fc78cb2d8349993a1cdb684435bff", size = 9233946, upload-time = "2026-09-11T19:05:19.063Z" }, ] [[package]] @@ -1539,27 +1543,28 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "traitlets" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/bd/c0/9f7c9a46090390368a4d7bcb76bb87a4a36c421e4c0792cdb53486ffac7a/matplotlib_inline-0.2.2.tar.gz", hash = "sha256:72f3fe8fce36b70d4a5b612f899090cd0401deddc4ea90e1572b9f4bfb058c79", size = 8150 } +sdist = { url = "https://files.pythonhosted.org/packages/bd/c0/9f7c9a46090390368a4d7bcb76bb87a4a36c421e4c0792cdb53486ffac7a/matplotlib_inline-0.2.2.tar.gz", hash = "sha256:72f3fe8fce36b70d4a5b612f899090cd0401deddc4ea90e1572b9f4bfb058c79", size = 8150, upload-time = "2026-05-08T17:33:33.49Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/41/09/5b161152e2d90f7b87f781c2e1267494aef9c32498df793f73ad0a0a494a/matplotlib_inline-0.2.2-py3-none-any.whl", hash = "sha256:3c821cf1c209f59fb2d2d64abbf5b23b67bcb2210d663f9918dd851c6da1fcf6", size = 9534 }, + { url = "https://files.pythonhosted.org/packages/41/09/5b161152e2d90f7b87f781c2e1267494aef9c32498df793f73ad0a0a494a/matplotlib_inline-0.2.2-py3-none-any.whl", hash = "sha256:3c821cf1c209f59fb2d2d64abbf5b23b67bcb2210d663f9918dd851c6da1fcf6", size = 9534, upload-time = "2026-05-08T17:33:32.055Z" }, ] [[package]] name = "mdurl" version = "0.1.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729 } +sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729, upload-time = "2022-08-14T12:40:10.846Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979 }, + { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload-time = "2022-08-14T12:40:09.779Z" }, ] [[package]] name = "mlwp-data-loaders" -version = "0.1.0" -source = { git = "https://github.com/mlwp-tools/mlwp-data-loaders#3fc53f3f564c769b8841a54907c6601120929e2a" } +version = "0.1.dev20+ga50382f4a" +source = { git = "https://github.com/mlwp-tools/mlwp-data-loaders#a50382f4a5d00d4a065c8dd70eb5f474baf375bd" } dependencies = [ { name = "fsspec" }, { name = "h5netcdf" }, + { name = "h5py" }, { name = "loguru" }, { name = "mlwp-data-specs" }, { name = "s3fs" }, @@ -1584,160 +1589,217 @@ dependencies = [ [[package]] name = "msgpack" -version = "1.1.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/4d/f2/bfb55a6236ed8725a96b0aa3acbd0ec17588e6a2c3b62a93eb513ed8783f/msgpack-1.1.2.tar.gz", hash = "sha256:3b60763c1373dd60f398488069bcdc703cd08a711477b5d480eecc9f9626f47e", size = 173581 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ad/bd/8b0d01c756203fbab65d265859749860682ccd2a59594609aeec3a144efa/msgpack-1.1.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:70a0dff9d1f8da25179ffcf880e10cf1aad55fdb63cd59c9a49a1b82290062aa", size = 81939 }, - { url = "https://files.pythonhosted.org/packages/34/68/ba4f155f793a74c1483d4bdef136e1023f7bcba557f0db4ef3db3c665cf1/msgpack-1.1.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:446abdd8b94b55c800ac34b102dffd2f6aa0ce643c55dfc017ad89347db3dbdb", size = 85064 }, - { url = "https://files.pythonhosted.org/packages/f2/60/a064b0345fc36c4c3d2c743c82d9100c40388d77f0b48b2f04d6041dbec1/msgpack-1.1.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c63eea553c69ab05b6747901b97d620bb2a690633c77f23feb0c6a947a8a7b8f", size = 417131 }, - { url = "https://files.pythonhosted.org/packages/65/92/a5100f7185a800a5d29f8d14041f61475b9de465ffcc0f3b9fba606e4505/msgpack-1.1.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:372839311ccf6bdaf39b00b61288e0557916c3729529b301c52c2d88842add42", size = 427556 }, - { url = "https://files.pythonhosted.org/packages/f5/87/ffe21d1bf7d9991354ad93949286f643b2bb6ddbeab66373922b44c3b8cc/msgpack-1.1.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2929af52106ca73fcb28576218476ffbb531a036c2adbcf54a3664de124303e9", size = 404920 }, - { url = "https://files.pythonhosted.org/packages/ff/41/8543ed2b8604f7c0d89ce066f42007faac1eaa7d79a81555f206a5cdb889/msgpack-1.1.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:be52a8fc79e45b0364210eef5234a7cf8d330836d0a64dfbb878efa903d84620", size = 415013 }, - { url = "https://files.pythonhosted.org/packages/41/0d/2ddfaa8b7e1cee6c490d46cb0a39742b19e2481600a7a0e96537e9c22f43/msgpack-1.1.2-cp312-cp312-win32.whl", hash = "sha256:1fff3d825d7859ac888b0fbda39a42d59193543920eda9d9bea44d958a878029", size = 65096 }, - { url = "https://files.pythonhosted.org/packages/8c/ec/d431eb7941fb55a31dd6ca3404d41fbb52d99172df2e7707754488390910/msgpack-1.1.2-cp312-cp312-win_amd64.whl", hash = "sha256:1de460f0403172cff81169a30b9a92b260cb809c4cb7e2fc79ae8d0510c78b6b", size = 72708 }, - { url = "https://files.pythonhosted.org/packages/c5/31/5b1a1f70eb0e87d1678e9624908f86317787b536060641d6798e3cf70ace/msgpack-1.1.2-cp312-cp312-win_arm64.whl", hash = "sha256:be5980f3ee0e6bd44f3a9e9dea01054f175b50c3e6cdb692bc9424c0bbb8bf69", size = 64119 }, - { url = "https://files.pythonhosted.org/packages/6b/31/b46518ecc604d7edf3a4f94cb3bf021fc62aa301f0cb849936968164ef23/msgpack-1.1.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4efd7b5979ccb539c221a4c4e16aac1a533efc97f3b759bb5a5ac9f6d10383bf", size = 81212 }, - { url = "https://files.pythonhosted.org/packages/92/dc/c385f38f2c2433333345a82926c6bfa5ecfff3ef787201614317b58dd8be/msgpack-1.1.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:42eefe2c3e2af97ed470eec850facbe1b5ad1d6eacdbadc42ec98e7dcf68b4b7", size = 84315 }, - { url = "https://files.pythonhosted.org/packages/d3/68/93180dce57f684a61a88a45ed13047558ded2be46f03acb8dec6d7c513af/msgpack-1.1.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1fdf7d83102bf09e7ce3357de96c59b627395352a4024f6e2458501f158bf999", size = 412721 }, - { url = "https://files.pythonhosted.org/packages/5d/ba/459f18c16f2b3fc1a1ca871f72f07d70c07bf768ad0a507a698b8052ac58/msgpack-1.1.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fac4be746328f90caa3cd4bc67e6fe36ca2bf61d5c6eb6d895b6527e3f05071e", size = 424657 }, - { url = "https://files.pythonhosted.org/packages/38/f8/4398c46863b093252fe67368b44edc6c13b17f4e6b0e4929dbf0bdb13f23/msgpack-1.1.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:fffee09044073e69f2bad787071aeec727183e7580443dfeb8556cbf1978d162", size = 402668 }, - { url = "https://files.pythonhosted.org/packages/28/ce/698c1eff75626e4124b4d78e21cca0b4cc90043afb80a507626ea354ab52/msgpack-1.1.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5928604de9b032bc17f5099496417f113c45bc6bc21b5c6920caf34b3c428794", size = 419040 }, - { url = "https://files.pythonhosted.org/packages/67/32/f3cd1667028424fa7001d82e10ee35386eea1408b93d399b09fb0aa7875f/msgpack-1.1.2-cp313-cp313-win32.whl", hash = "sha256:a7787d353595c7c7e145e2331abf8b7ff1e6673a6b974ded96e6d4ec09f00c8c", size = 65037 }, - { url = "https://files.pythonhosted.org/packages/74/07/1ed8277f8653c40ebc65985180b007879f6a836c525b3885dcc6448ae6cb/msgpack-1.1.2-cp313-cp313-win_amd64.whl", hash = "sha256:a465f0dceb8e13a487e54c07d04ae3ba131c7c5b95e2612596eafde1dccf64a9", size = 72631 }, - { url = "https://files.pythonhosted.org/packages/e5/db/0314e4e2db56ebcf450f277904ffd84a7988b9e5da8d0d61ab2d057df2b6/msgpack-1.1.2-cp313-cp313-win_arm64.whl", hash = "sha256:e69b39f8c0aa5ec24b57737ebee40be647035158f14ed4b40e6f150077e21a84", size = 64118 }, - { url = "https://files.pythonhosted.org/packages/22/71/201105712d0a2ff07b7873ed3c220292fb2ea5120603c00c4b634bcdafb3/msgpack-1.1.2-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:e23ce8d5f7aa6ea6d2a2b326b4ba46c985dbb204523759984430db7114f8aa00", size = 81127 }, - { url = "https://files.pythonhosted.org/packages/1b/9f/38ff9e57a2eade7bf9dfee5eae17f39fc0e998658050279cbb14d97d36d9/msgpack-1.1.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:6c15b7d74c939ebe620dd8e559384be806204d73b4f9356320632d783d1f7939", size = 84981 }, - { url = "https://files.pythonhosted.org/packages/8e/a9/3536e385167b88c2cc8f4424c49e28d49a6fc35206d4a8060f136e71f94c/msgpack-1.1.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:99e2cb7b9031568a2a5c73aa077180f93dd2e95b4f8d3b8e14a73ae94a9e667e", size = 411885 }, - { url = "https://files.pythonhosted.org/packages/2f/40/dc34d1a8d5f1e51fc64640b62b191684da52ca469da9cd74e84936ffa4a6/msgpack-1.1.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:180759d89a057eab503cf62eeec0aa61c4ea1200dee709f3a8e9397dbb3b6931", size = 419658 }, - { url = "https://files.pythonhosted.org/packages/3b/ef/2b92e286366500a09a67e03496ee8b8ba00562797a52f3c117aa2b29514b/msgpack-1.1.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:04fb995247a6e83830b62f0b07bf36540c213f6eac8e851166d8d86d83cbd014", size = 403290 }, - { url = "https://files.pythonhosted.org/packages/78/90/e0ea7990abea5764e4655b8177aa7c63cdfa89945b6e7641055800f6c16b/msgpack-1.1.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:8e22ab046fa7ede9e36eeb4cfad44d46450f37bb05d5ec482b02868f451c95e2", size = 415234 }, - { url = "https://files.pythonhosted.org/packages/72/4e/9390aed5db983a2310818cd7d3ec0aecad45e1f7007e0cda79c79507bb0d/msgpack-1.1.2-cp314-cp314-win32.whl", hash = "sha256:80a0ff7d4abf5fecb995fcf235d4064b9a9a8a40a3ab80999e6ac1e30b702717", size = 66391 }, - { url = "https://files.pythonhosted.org/packages/6e/f1/abd09c2ae91228c5f3998dbd7f41353def9eac64253de3c8105efa2082f7/msgpack-1.1.2-cp314-cp314-win_amd64.whl", hash = "sha256:9ade919fac6a3e7260b7f64cea89df6bec59104987cbea34d34a2fa15d74310b", size = 73787 }, - { url = "https://files.pythonhosted.org/packages/6a/b0/9d9f667ab48b16ad4115c1935d94023b82b3198064cb84a123e97f7466c1/msgpack-1.1.2-cp314-cp314-win_arm64.whl", hash = "sha256:59415c6076b1e30e563eb732e23b994a61c159cec44deaf584e5cc1dd662f2af", size = 66453 }, - { url = "https://files.pythonhosted.org/packages/16/67/93f80545eb1792b61a217fa7f06d5e5cb9e0055bed867f43e2b8e012e137/msgpack-1.1.2-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:897c478140877e5307760b0ea66e0932738879e7aa68144d9b78ea4c8302a84a", size = 85264 }, - { url = "https://files.pythonhosted.org/packages/87/1c/33c8a24959cf193966ef11a6f6a2995a65eb066bd681fd085afd519a57ce/msgpack-1.1.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:a668204fa43e6d02f89dbe79a30b0d67238d9ec4c5bd8a940fc3a004a47b721b", size = 89076 }, - { url = "https://files.pythonhosted.org/packages/fc/6b/62e85ff7193663fbea5c0254ef32f0c77134b4059f8da89b958beb7696f3/msgpack-1.1.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5559d03930d3aa0f3aacb4c42c776af1a2ace2611871c84a75afe436695e6245", size = 435242 }, - { url = "https://files.pythonhosted.org/packages/c1/47/5c74ecb4cc277cf09f64e913947871682ffa82b3b93c8dad68083112f412/msgpack-1.1.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:70c5a7a9fea7f036b716191c29047374c10721c389c21e9ffafad04df8c52c90", size = 432509 }, - { url = "https://files.pythonhosted.org/packages/24/a4/e98ccdb56dc4e98c929a3f150de1799831c0a800583cde9fa022fa90602d/msgpack-1.1.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:f2cb069d8b981abc72b41aea1c580ce92d57c673ec61af4c500153a626cb9e20", size = 415957 }, - { url = "https://files.pythonhosted.org/packages/da/28/6951f7fb67bc0a4e184a6b38ab71a92d9ba58080b27a77d3e2fb0be5998f/msgpack-1.1.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:d62ce1f483f355f61adb5433ebfd8868c5f078d1a52d042b0a998682b4fa8c27", size = 422910 }, - { url = "https://files.pythonhosted.org/packages/f0/03/42106dcded51f0a0b5284d3ce30a671e7bd3f7318d122b2ead66ad289fed/msgpack-1.1.2-cp314-cp314t-win32.whl", hash = "sha256:1d1418482b1ee984625d88aa9585db570180c286d942da463533b238b98b812b", size = 75197 }, - { url = "https://files.pythonhosted.org/packages/15/86/d0071e94987f8db59d4eeb386ddc64d0bb9b10820a8d82bcd3e53eeb2da6/msgpack-1.1.2-cp314-cp314t-win_amd64.whl", hash = "sha256:5a46bf7e831d09470ad92dff02b8b1ac92175ca36b087f904a0519857c6be3ff", size = 85772 }, - { url = "https://files.pythonhosted.org/packages/81/f2/08ace4142eb281c12701fc3b93a10795e4d4dc7f753911d836675050f886/msgpack-1.1.2-cp314-cp314t-win_arm64.whl", hash = "sha256:d99ef64f349d5ec3293688e91486c5fdb925ed03807f64d98d205d2713c60b46", size = 70868 }, +version = "1.2.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0a/e7/bb605a7bab2d8425a64b3fa762b39dc1bf1c7e3f11ba6fb5413d6db0ff8c/msgpack-1.2.3.tar.gz", hash = "sha256:32edb81a2b5eb7cd7c9d941b2bfbbb082fd2cd09e0e725930316af6b708db186", size = 196517, upload-time = "2026-09-29T02:33:52.276Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/af/12/4d7c6d6203416d9fbf0f59ebaa805e70fb929b93a41b611bc821ec5964a0/msgpack-1.2.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:89c930aece4e972b208ba589c8410b4167b05e411a5ea2cb25fd96f8bc47ee43", size = 91577, upload-time = "2026-09-29T02:32:02.141Z" }, + { url = "https://files.pythonhosted.org/packages/eb/c7/8576ad39f4ca42ddad26f68eb8621d2d0a60501193d480f504bd9d7f36c4/msgpack-1.2.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:905a189853d6bdb204c7ae5f4ab77fb857448abfff574d3d93c62e2815b24b4f", size = 90027, upload-time = "2026-09-29T02:32:03.508Z" }, + { url = "https://files.pythonhosted.org/packages/0a/3a/aa9c580aea1314529a0f3562461479780b0d254b064f0880956bfbcc74a8/msgpack-1.2.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f3d7b3d0018746b5997dd6b14a1870b07cc4c327d9101145d94a1fc264a51a06", size = 460343, upload-time = "2026-09-29T02:32:04.906Z" }, + { url = "https://files.pythonhosted.org/packages/3a/cf/9c2e4d6c179529d5bf4a64cff76fa581486569e9fbdd35bd98f51cb624bf/msgpack-1.2.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ede33b2892ceb976283e009ad12fa1834cfdf1f9c43ee9c97849fc588d00a618", size = 472998, upload-time = "2026-09-29T02:32:06.69Z" }, + { url = "https://files.pythonhosted.org/packages/7b/41/915c81fe6df2d3cbdb0dece4f1a5cd313e1cd2abd9f501d0f50c0582517e/msgpack-1.2.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:666ef5601ab0e6e345e47febc96aa81143cc932201543480cbb9499164f05ffb", size = 423216, upload-time = "2026-09-29T02:32:08.739Z" }, + { url = "https://files.pythonhosted.org/packages/a2/e7/7dda8b1039abfd9bba4c5068172c67135c9e33089f503512db9226f23c24/msgpack-1.2.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:87cf2ef05ff2f2493ba29fcdaef27e960ca64dacfd13460ae29e6f92e0ed05bb", size = 451218, upload-time = "2026-09-29T02:32:10.517Z" }, + { url = "https://files.pythonhosted.org/packages/16/5b/ce995c1ed4a0522b7f2d034bc2034fd63005f240b945961b70fb56fbaf3d/msgpack-1.2.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:b774ff994d844e541439ac5d2d49a14def4104830c3465e9394c153f86200ffb", size = 422453, upload-time = "2026-09-29T02:32:11.956Z" }, + { url = "https://files.pythonhosted.org/packages/d2/3f/ce191fb87e2650d0166b34c437e499ee4a7f9db9c1eb164f41725eb6160e/msgpack-1.2.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:eaf7e82249837e3aa97297b34a0bb9ff562027381631e057cea6e1367f10b438", size = 469003, upload-time = "2026-09-29T02:32:13.663Z" }, + { url = "https://files.pythonhosted.org/packages/42/35/539123407fe200fb16609c835675496fbeb6017ace9fc93909f0613223ae/msgpack-1.2.3-cp312-cp312-win32.whl", hash = "sha256:7c047250096f9fc19dba26e3d1639b5e7a84114003605c94def667149a70ced1", size = 68303, upload-time = "2026-09-29T02:32:15.02Z" }, + { url = "https://files.pythonhosted.org/packages/6f/4c/331b45f9b86fbda6b9e103244d189068e51f726d8c40021ed66e1f2c415e/msgpack-1.2.3-cp312-cp312-win_amd64.whl", hash = "sha256:3ec409b0d6aa8e9eec6eaf881b893caa215dbe68c5319ca96e8a271d81bb111d", size = 76744, upload-time = "2026-09-29T02:32:16.344Z" }, + { url = "https://files.pythonhosted.org/packages/13/9f/fb572dc42b9fac06c7ea848aaee6e140d84469743bd1402bc07089fc4566/msgpack-1.2.3-cp312-cp312-win_arm64.whl", hash = "sha256:59612b4ed48a04cf024584218e813562f3b30a3bafa5f55abe300b15da314751", size = 71580, upload-time = "2026-09-29T02:32:17.617Z" }, + { url = "https://files.pythonhosted.org/packages/1f/8b/3824d65e912e925d09ce30d9130fa9970d6d2855d7888b13639a6604967f/msgpack-1.2.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:21bfa4d2aa0b04c1806ef778a1199e9e53ea2441bcbf284420a32083896320b8", size = 91728, upload-time = "2026-09-29T02:32:18.949Z" }, + { url = "https://files.pythonhosted.org/packages/05/e6/df7f2c9ebb94760113debbcea2bd3afe5fdab88a4f7bec1b618755517460/msgpack-1.2.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:db84203b13aecc222f465061397fdd5b53b7ae73d2c95ffc1c8dc5be0153a709", size = 89955, upload-time = "2026-09-29T02:32:20.224Z" }, + { url = "https://files.pythonhosted.org/packages/08/6a/e5fc57136e8bacccb2b39627dea2cd546540a06181e22fe6db90e15b3ae4/msgpack-1.2.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5e0d7950ca3c1bbae291d0552dd3bb2792fc680629c4c0d44e47e5bab969f3ca", size = 454930, upload-time = "2026-09-29T02:32:21.771Z" }, + { url = "https://files.pythonhosted.org/packages/b0/30/c394d37898db9212d1693456cdf363c7e1a097d0b63e10664007f3df3ec1/msgpack-1.2.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:07c9733089d1b176c3dd2f7fa268452f9d5d784d076473499d754a58e8d1fbbb", size = 466866, upload-time = "2026-09-29T02:32:23.742Z" }, + { url = "https://files.pythonhosted.org/packages/4a/c8/1e4ddf6f6b829b3ee6c530c79dfae89cb609d2b0eedb5e0ae716851c52d1/msgpack-1.2.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f24a43b3560e20f825b807fe1e874bd73d53abaf8bbdcf258a6eb152cddbc1f5", size = 418715, upload-time = "2026-09-29T02:32:25.262Z" }, + { url = "https://files.pythonhosted.org/packages/11/a5/f460ba6d7a12d4301002f3efbb8f841e8bdc9c5fc98d771689677a352885/msgpack-1.2.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6576f348ed6cc4f31db6fd915a8e94245f042f50eae08d48732425e70638ea37", size = 446489, upload-time = "2026-09-29T02:32:26.988Z" }, + { url = "https://files.pythonhosted.org/packages/49/23/adface88db909bed321c85dd673655152d4a514c67e1f0800eb51c777d07/msgpack-1.2.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:cd5a9f9f86a52c24713679aa2631956835f3842512964ff93f736ff76f1f530d", size = 416998, upload-time = "2026-09-29T02:32:28.606Z" }, + { url = "https://files.pythonhosted.org/packages/36/00/5bb3a239ccfc3763c4d0fa49b13b1b7010b00182c499ab3c1fecfe6294bc/msgpack-1.2.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f9ddd28d3e9bbc602a9dced1591882c7fb9ab776eef8837da2c326fde19e2853", size = 463288, upload-time = "2026-09-29T02:32:30.375Z" }, + { url = "https://files.pythonhosted.org/packages/29/8c/456df77f00d701df9d6980ffb80291bce6e4e2e112e25a4dfae216f0715a/msgpack-1.2.3-cp313-cp313-pyemscripten_2025_0_wasm32.whl", hash = "sha256:62cc1a4ef0e553bac32c8342e1f04834aca7de276b92744eb7307db77759b890", size = 53347, upload-time = "2026-09-29T02:32:31.867Z" }, + { url = "https://files.pythonhosted.org/packages/9d/22/ce780be666f89b77cdb855daa9ec62e87bb7f69e9f403e4a5d83a2b2208f/msgpack-1.2.3-cp313-cp313-win32.whl", hash = "sha256:d2f9c4f85e47a44d26d5baf3b041eef23436e224d44eed273f01bd8a12048d9f", size = 68258, upload-time = "2026-09-29T02:32:33.163Z" }, + { url = "https://files.pythonhosted.org/packages/51/06/c3def9bc4db283103c5901b302ee2a4305cb1e69729244f94d9bd8f8e8e7/msgpack-1.2.3-cp313-cp313-win_amd64.whl", hash = "sha256:bb89b5dc30469c84bbf8684826eb851d82412ca95690e111b9ac5e8fb343961a", size = 76569, upload-time = "2026-09-29T02:32:34.412Z" }, + { url = "https://files.pythonhosted.org/packages/12/9f/cef344073858b80adb92d6ea342e20b0eae7a8f6fe70281b69cf03707270/msgpack-1.2.3-cp313-cp313-win_arm64.whl", hash = "sha256:471e12a6a42498a31490c206e0069e343b6a7c35db540be73a879eb06f5be047", size = 71530, upload-time = "2026-09-29T02:32:35.892Z" }, + { url = "https://files.pythonhosted.org/packages/3f/8e/f777f74e38731c428857933c8011596f2d2f3160c821152f23b6ffba862f/msgpack-1.2.3-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:3a31905206722103a84c1f72633fe30692cff6732c9d262e09a27dbc468797c8", size = 92042, upload-time = "2026-09-29T02:32:37.464Z" }, + { url = "https://files.pythonhosted.org/packages/a0/71/551608543ee5d590f7e8d522267665d6d9946866ad2a2a70a770f7c70793/msgpack-1.2.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:3372475211a9ce1a23acefe512cb3e121d18c95dc74ed56cb1819ef40836ebf4", size = 90578, upload-time = "2026-09-29T02:32:38.883Z" }, + { url = "https://files.pythonhosted.org/packages/ea/11/6d78ce5a9a58bf9ba7b1b6a8f649173b030e6770c8019cf330b91825ee5d/msgpack-1.2.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9324c54995641c3d1f92a9d55093c8cde0ffa2fbc87a467a688ef60428393220", size = 454352, upload-time = "2026-09-29T02:32:40.34Z" }, + { url = "https://files.pythonhosted.org/packages/3d/08/feb9a196269ba7809f44f9117d9e4a601c41c313f6144fd0c337293a5488/msgpack-1.2.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d8ef3a66e4b52d2d7fdd90df2984670124b2ff7546d76bb25dcf68ef47f7df58", size = 462562, upload-time = "2026-09-29T02:32:42.176Z" }, + { url = "https://files.pythonhosted.org/packages/f5/77/3a674f366def24140b103d1ffd4fd27b3d912a13e47da67422afa16bebb3/msgpack-1.2.3-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:902f3490db0e07a7d40b48536a85c9b28fbf1397e7e1658a45a55f958e303620", size = 418134, upload-time = "2026-09-29T02:32:43.693Z" }, + { url = "https://files.pythonhosted.org/packages/48/82/944e71f280577490d99a3951cbce21aa4cbe04e7ab42cb373fd668af883c/msgpack-1.2.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:8e51eca14fbb65c4e0a5a9657346962bd3dca78c08e04e3d4dee70ef48687d30", size = 445937, upload-time = "2026-09-29T02:32:45.739Z" }, + { url = "https://files.pythonhosted.org/packages/b1/ec/feddd629c4a3edf1395313680450c525086cceab56dec0d4de9da9ccb618/msgpack-1.2.3-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:f42f146752eedb6765f07dcc04d72dab0a25779ec8d4a88c0085263ce114f22c", size = 416450, upload-time = "2026-09-29T02:32:47.558Z" }, + { url = "https://files.pythonhosted.org/packages/e4/59/263a10f8c4613ba0713f48cbda7695ac8dd6d6fab2fcbc9168f03f23a94d/msgpack-1.2.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:0ed5823c4efc20fe87d3530665f40ec18a002be003114814c21235cc8d256207", size = 459546, upload-time = "2026-09-29T02:32:49.145Z" }, + { url = "https://files.pythonhosted.org/packages/1e/21/addcfa1e583cfc8a22fbdc57526621b5decd7ad676ae12e9150b7be1be5d/msgpack-1.2.3-cp314-cp314-pyemscripten_2026_0_wasm32.whl", hash = "sha256:2487453ca1b6104442c6442f9a1a8fee1fe8f428a70d99d4cba799108b304150", size = 53462, upload-time = "2026-09-29T02:32:50.708Z" }, + { url = "https://files.pythonhosted.org/packages/8d/2c/3cb5c8524a1335ee27ca952c7ab78d375a16fea8e18ae3767ba0c880416c/msgpack-1.2.3-cp314-cp314-win32.whl", hash = "sha256:6df430419f2338cb71e4a34d6e64f83c88ccd321f91f40ba4513400b36d864ec", size = 70294, upload-time = "2026-09-29T02:32:52.037Z" }, + { url = "https://files.pythonhosted.org/packages/23/f9/9172ff3cdb85d160ad06df5e2708a5fce7682982a5eee8d31869b9f69d2e/msgpack-1.2.3-cp314-cp314-win_amd64.whl", hash = "sha256:84a6616d396ec1bc18a1e83e67c96a393ec35dfe5e17434a5be7b9aa0fe988ab", size = 77778, upload-time = "2026-09-29T02:32:53.429Z" }, + { url = "https://files.pythonhosted.org/packages/04/e8/b4c23178bcf605ae17cec48a75530dd69d49b0a5a6f5f4df5c47d59f746e/msgpack-1.2.3-cp314-cp314-win_arm64.whl", hash = "sha256:7a003b02c6ee2eea6dfe0bb08818631e3597e69f0131f2a8250488a1cc553290", size = 73794, upload-time = "2026-09-29T02:32:54.763Z" }, + { url = "https://files.pythonhosted.org/packages/66/b1/92704be352c4f428b7e0a0e0fb210cb1aa2b1c42c102b8dc22d34b82fac0/msgpack-1.2.3-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:ccea05b5542f6d283fef3f0a8e93a7f0be90af0ddeeef84c25c0216ba76dcae1", size = 93721, upload-time = "2026-09-29T02:32:56.342Z" }, + { url = "https://files.pythonhosted.org/packages/49/78/9c91f1e86cadcbc100b3780fd429c3715648704032a612e77a00646ebe79/msgpack-1.2.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:b1631e12fe572e181cd77e831f69335d6cd5278eac22e3db3f33cf264ac2ac18", size = 94256, upload-time = "2026-09-29T02:32:58.056Z" }, + { url = "https://files.pythonhosted.org/packages/91/4d/270f9725921ae88a29d37a774a77ac24f0ef1411fc960a63f5a4665e81b4/msgpack-1.2.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e54394b7dbe2e12ab032d9d21feef7bb61a90a150a2623633ba3781ba69dcb1f", size = 471673, upload-time = "2026-09-29T02:32:59.886Z" }, + { url = "https://files.pythonhosted.org/packages/48/b8/eaa8d930f72dc1d1dd79511dc2ccf965922b059f2f0ed3b30aebac8c4b11/msgpack-1.2.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:63bb7448a1e9111319ae2430c09a5596140c160422830d6271bc75730ff2ff9a", size = 466257, upload-time = "2026-09-29T02:33:01.517Z" }, + { url = "https://files.pythonhosted.org/packages/5b/5a/97adc805037bc7e24c4e2f711bbcd3b28be8ec9aea3e778f18208cfbdb46/msgpack-1.2.3-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:382bc88fe90f29f5ac8a0b65c7046ff255356f2f2f3186c30e370215736fa1dc", size = 418484, upload-time = "2026-09-29T02:33:03.402Z" }, + { url = "https://files.pythonhosted.org/packages/0d/7e/1c53302606fe436ab48ba539ebafafe4a6a9efe12c4f04dc7eb36912d93e/msgpack-1.2.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:c77e27790ad72989db783d5303825fba0b71550f00a490efba35cde7dc4b719f", size = 454064, upload-time = "2026-09-29T02:33:04.977Z" }, + { url = "https://files.pythonhosted.org/packages/00/2d/9ee0170f638907b396c15c6cd26b3e54f869159efc6206683acfd8f696e1/msgpack-1.2.3-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:700bc0fc9e968a292b9137ee70e7a012f7e115bf0107ce45e3a88202788dfc1e", size = 417901, upload-time = "2026-09-29T02:33:06.489Z" }, + { url = "https://files.pythonhosted.org/packages/cc/d2/905c84490a75cd15a27065407cd085d201f7d392e1e0411f49f03fd31ade/msgpack-1.2.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5bd5f91ea75c45cafcc5433ba8fae59b708b736ec178d2441c40c499e9e079db", size = 459896, upload-time = "2026-09-29T02:33:08.361Z" }, + { url = "https://files.pythonhosted.org/packages/37/cd/4ce5809b9ab3b114d7cca64863e436820fa1614b49d55ccb93d49824ac2d/msgpack-1.2.3-cp314-cp314t-win32.whl", hash = "sha256:7995a7c6a62a1d6e7df211b4a16de513bd99fd053525050a319f80f44fb8015e", size = 75983, upload-time = "2026-09-29T02:33:10.023Z" }, + { url = "https://files.pythonhosted.org/packages/8a/31/853bb580744c24be0dbd8b090c3e6987dce466a1fc840fe50c0ac2ef9044/msgpack-1.2.3-cp314-cp314t-win_amd64.whl", hash = "sha256:bfe7d5b62cbe7aa664f0b3e2c49077f10fcdd06183d3014f8271ff3c5edbfbf9", size = 83757, upload-time = "2026-09-29T02:33:11.441Z" }, + { url = "https://files.pythonhosted.org/packages/0d/49/9f1b2ee484414eef9e21ee2b2b23b482bb71433ab9bac1da03cbda15ebf5/msgpack-1.2.3-cp314-cp314t-win_arm64.whl", hash = "sha256:1f585407f740a9eac04a3bb82c61d68a0ea78f90e29e670bfb086b9ce3a518dd", size = 78128, upload-time = "2026-09-29T02:33:13.063Z" }, + { url = "https://files.pythonhosted.org/packages/47/b8/50db4235407c3802f622b4ccdf65c6fe1e48d3c3eab6981fa6a9a5e53f11/msgpack-1.2.3-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:13221a6c81ebb8e43ea63a7251c35d54e4175cea37ebf3a62e911bdf42562a3c", size = 92111, upload-time = "2026-09-29T02:33:14.476Z" }, + { url = "https://files.pythonhosted.org/packages/15/56/50cf2a45c6163edafd737e2fd555103a26ce6748e1e241fb56ed445ea835/msgpack-1.2.3-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:0955b9000725573d1457c1676944b370dd9643c8d18f25bda5ac72913f850949", size = 90583, upload-time = "2026-09-29T02:33:15.924Z" }, + { url = "https://files.pythonhosted.org/packages/2a/fd/8cc02f767c3bc94d2649c954d28dea935ce9398eb9c93ce2444bb9474cc1/msgpack-1.2.3-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0c91762c48cd686dc9cf2b142c0bc544083952de32f5853d6624c956e54b85e5", size = 454751, upload-time = "2026-09-29T02:33:17.475Z" }, + { url = "https://files.pythonhosted.org/packages/80/c9/ddb896767808e3e022453d8dfae26fd52ed404b0aa6fb7f752d39c040208/msgpack-1.2.3-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1f4ae8bd4ad9ba085fde95e95d055a896d19210238a4199a771a3cf36dceed49", size = 463597, upload-time = "2026-09-29T02:33:19.309Z" }, + { url = "https://files.pythonhosted.org/packages/4d/a5/e7c261abf75783c07dcac89951cb31dd0c123bf02fbdeda0c67303e698d8/msgpack-1.2.3-cp315-cp315-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:7013534a7163aa4f213c4d9864f1a8a7555daac6fcd48f699a198e29b436bfab", size = 422661, upload-time = "2026-09-29T02:33:21.093Z" }, + { url = "https://files.pythonhosted.org/packages/9d/8e/466d5133f9e1c2e232e15e304f715b62f6f0e28332d18e37d975fe174315/msgpack-1.2.3-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:6a834097144aabe948b8ca9020a833e8026f7d0abbd0ec54bc7e50f45a8ce012", size = 445188, upload-time = "2026-09-29T02:33:22.877Z" }, + { url = "https://files.pythonhosted.org/packages/d4/b4/33e7ad987ee2f4b3d449a6cbf28f574ed222987ca7f65ad277072646ac5e/msgpack-1.2.3-cp315-cp315-musllinux_1_2_riscv64.whl", hash = "sha256:d31864ba3933a589b6a00249f89c0eb422197f49128fc10da550e57e9cb0f377", size = 420451, upload-time = "2026-09-29T02:33:24.485Z" }, + { url = "https://files.pythonhosted.org/packages/34/2c/9d8be0d6c16e7e6131cd7da20257dd3da65473e3e6df0c00572fb10a195c/msgpack-1.2.3-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:e15f70588f4db8cd10df0930145b186de70feb9db51710cd378b1399009655bd", size = 460624, upload-time = "2026-09-29T02:33:26.063Z" }, + { url = "https://files.pythonhosted.org/packages/6a/e7/3a04783582c6f44f398cbfcf5f07a111192126ec4e63edf7f5640143bf64/msgpack-1.2.3-cp315-cp315-pyemscripten_2026_5_wasm32.whl", hash = "sha256:b949cc25e4a09252cbcc54e66e507de914d0e94a3a7039bd54c299bf7037c098", size = 53474, upload-time = "2026-09-29T02:33:27.83Z" }, + { url = "https://files.pythonhosted.org/packages/68/fb/db07359851644e258609d84f8e4fe0030ef448c108e20afe73f2a3bf539c/msgpack-1.2.3-cp315-cp315-win32.whl", hash = "sha256:8ec7a1d49ca6c2569d722ab5ec86e90089b0713900aa31905b47b4c4d9e78ce0", size = 70344, upload-time = "2026-09-29T02:33:29.382Z" }, + { url = "https://files.pythonhosted.org/packages/5b/e4/cf5584d2f2a2e4465d5896a855a3e75a34a20ab172360b3d42ad862dd1ce/msgpack-1.2.3-cp315-cp315-win_amd64.whl", hash = "sha256:79dfa38faf92f804aa61beec140d70b18418e1dde1778dbb77a87a4cce85aa8a", size = 77800, upload-time = "2026-09-29T02:33:30.941Z" }, + { url = "https://files.pythonhosted.org/packages/63/f9/518ad4e8a580027b507eafdd26de7aae661a714e43d7c111c212482e4a1b/msgpack-1.2.3-cp315-cp315-win_arm64.whl", hash = "sha256:ed899d73a22f286a72bd9528d63f2ab3030dbad8bf1527fc249319a50d61fb9d", size = 73871, upload-time = "2026-09-29T02:33:32.406Z" }, + { url = "https://files.pythonhosted.org/packages/a4/79/254d4c9ad642b2a3ba84e646787892b34cc815eb36c9976f67a1c4f38515/msgpack-1.2.3-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:f56fba61b2516be7917cb00151f0d060b5b21184e3499bb57f0f7d9259bea124", size = 93370, upload-time = "2026-09-29T02:33:33.87Z" }, + { url = "https://files.pythonhosted.org/packages/3d/6f/5a2ba167646a25e84eaa8894e12935351e4331b80c28a9237ce6fe8d375f/msgpack-1.2.3-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:69ad12cedb674c73527bed869cddb42b742cac79a207a614202a4abaa24ea173", size = 93959, upload-time = "2026-09-29T02:33:35.503Z" }, + { url = "https://files.pythonhosted.org/packages/e9/a1/2b44612e55f7cf5d5e4b580294959b4429bbbcb1991177888e3e18668137/msgpack-1.2.3-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:db9fb67a3a2e75247bae569d34ebb5ff61c0448a4f0d6dbf991dae68af39b007", size = 467921, upload-time = "2026-09-29T02:33:37.023Z" }, + { url = "https://files.pythonhosted.org/packages/0b/6e/3309798ed1c11d7fcfdc7b946642685b0ff1588477925bc0d26bee7dcaae/msgpack-1.2.3-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2574ef81c1c8c38b10e330f3f9406fd09198a776b002030fafcf8e7647e9e06e", size = 467310, upload-time = "2026-09-29T02:33:38.799Z" }, + { url = "https://files.pythonhosted.org/packages/6f/79/9c799f489fa4146de4e00cfe9fee17afe33d8012f88ddffffea94f7c4700/msgpack-1.2.3-cp315-cp315t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:fafc3b8898b432b841d30a61082c599fa7f4d06885f9dc58ad72259e12059fa6", size = 420178, upload-time = "2026-09-29T02:33:40.781Z" }, + { url = "https://files.pythonhosted.org/packages/94/c6/5850dc9cafcd2ea315692e65db0e222d20923dd55f44adf35061003de27e/msgpack-1.2.3-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:a393e428f6ffb0dcb73308c1fff5593041c16ff42da66e5bac8a83a6107a54b0", size = 450248, upload-time = "2026-09-29T02:33:42.366Z" }, + { url = "https://files.pythonhosted.org/packages/a9/d2/b4c806e3497fe21f0b353568266aec14ff735d092aea672de7b2955db03f/msgpack-1.2.3-cp315-cp315t-musllinux_1_2_riscv64.whl", hash = "sha256:d1c1e8989a855b7f1f2a64ec4a80b23a631822903952770813857b2e4f460471", size = 418431, upload-time = "2026-09-29T02:33:44.178Z" }, + { url = "https://files.pythonhosted.org/packages/b0/f5/f4ecc3ddac4d551bf2f3cdb283ec546dcc826fe7c500074be61aa273e08a/msgpack-1.2.3-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:e0bd394e999949c814f7912284243298de1b5a17b6a3dcb6cc8a79b156ffc4fa", size = 457543, upload-time = "2026-09-29T02:33:45.978Z" }, + { url = "https://files.pythonhosted.org/packages/a4/69/1c821d8386fae5cecc5fcaacf3de3947ff0a23f16bb481b5532b5868372a/msgpack-1.2.3-cp315-cp315t-win32.whl", hash = "sha256:3d4c807ed050fe3ddbea5ba7e9f63d7136871ce42861be1f50ff739f0e91047a", size = 75820, upload-time = "2026-09-29T02:33:47.596Z" }, + { url = "https://files.pythonhosted.org/packages/68/9e/41e2f7343a3764a9c1fb10c79f9a6a05db9df93dedd76401d1b511f5a685/msgpack-1.2.3-cp315-cp315t-win_amd64.whl", hash = "sha256:5f304123b90e8b2e49867981b7f6061612c39f50cca51ee88de007c084cf68d3", size = 83345, upload-time = "2026-09-29T02:33:49.325Z" }, + { url = "https://files.pythonhosted.org/packages/80/cd/0c3aa439bc7a7bf24684fef3a0ad776cba170e18ed94445e723bce42fce7/msgpack-1.2.3-cp315-cp315t-win_arm64.whl", hash = "sha256:f41ca154b7737b11893cdce3c78c61d703398a1cd54d4297bdad908392338a8e", size = 77572, upload-time = "2026-09-29T02:33:50.729Z" }, ] [[package]] name = "multidict" -version = "6.7.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1a/c2/c2d94cbe6ac1753f3fc980da97b3d930efe1da3af3c9f5125354436c073d/multidict-6.7.1.tar.gz", hash = "sha256:ec6652a1bee61c53a3e5776b6049172c53b6aaba34f18c9ad04f82712bac623d", size = 102010 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8d/9c/f20e0e2cf80e4b2e4b1c365bf5fe104ee633c751a724246262db8f1a0b13/multidict-6.7.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a90f75c956e32891a4eda3639ce6dd86e87105271f43d43442a3aedf3cddf172", size = 76893 }, - { url = "https://files.pythonhosted.org/packages/fe/cf/18ef143a81610136d3da8193da9d80bfe1cb548a1e2d1c775f26b23d024a/multidict-6.7.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3fccb473e87eaa1382689053e4a4618e7ba7b9b9b8d6adf2027ee474597128cd", size = 45456 }, - { url = "https://files.pythonhosted.org/packages/a9/65/1caac9d4cd32e8433908683446eebc953e82d22b03d10d41a5f0fefe991b/multidict-6.7.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b0fa96985700739c4c7853a43c0b3e169360d6855780021bfc6d0f1ce7c123e7", size = 43872 }, - { url = "https://files.pythonhosted.org/packages/cf/3b/d6bd75dc4f3ff7c73766e04e705b00ed6dbbaccf670d9e05a12b006f5a21/multidict-6.7.1-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:cb2a55f408c3043e42b40cc8eecd575afa27b7e0b956dfb190de0f8499a57a53", size = 251018 }, - { url = "https://files.pythonhosted.org/packages/fd/80/c959c5933adedb9ac15152e4067c702a808ea183a8b64cf8f31af8ad3155/multidict-6.7.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eb0ce7b2a32d09892b3dd6cc44877a0d02a33241fafca5f25c8b6b62374f8b75", size = 258883 }, - { url = "https://files.pythonhosted.org/packages/86/85/7ed40adafea3d4f1c8b916e3b5cc3a8e07dfcdcb9cd72800f4ed3ca1b387/multidict-6.7.1-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c3a32d23520ee37bf327d1e1a656fec76a2edd5c038bf43eddfa0572ec49c60b", size = 242413 }, - { url = "https://files.pythonhosted.org/packages/d2/57/b8565ff533e48595503c785f8361ff9a4fde4d67de25c207cd0ba3befd03/multidict-6.7.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9c90fed18bffc0189ba814749fdcc102b536e83a9f738a9003e569acd540a733", size = 268404 }, - { url = "https://files.pythonhosted.org/packages/e0/50/9810c5c29350f7258180dfdcb2e52783a0632862eb334c4896ac717cebcb/multidict-6.7.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:da62917e6076f512daccfbbde27f46fed1c98fee202f0559adec8ee0de67f71a", size = 269456 }, - { url = "https://files.pythonhosted.org/packages/f3/8d/5e5be3ced1d12966fefb5c4ea3b2a5b480afcea36406559442c6e31d4a48/multidict-6.7.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bfde23ef6ed9db7eaee6c37dcec08524cb43903c60b285b172b6c094711b3961", size = 256322 }, - { url = "https://files.pythonhosted.org/packages/31/6e/d8a26d81ac166a5592782d208dd90dfdc0a7a218adaa52b45a672b46c122/multidict-6.7.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3758692429e4e32f1ba0df23219cd0b4fc0a52f476726fff9337d1a57676a582", size = 253955 }, - { url = "https://files.pythonhosted.org/packages/59/4c/7c672c8aad41534ba619bcd4ade7a0dc87ed6b8b5c06149b85d3dd03f0cd/multidict-6.7.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:398c1478926eca669f2fd6a5856b6de9c0acf23a2cb59a14c0ba5844fa38077e", size = 251254 }, - { url = "https://files.pythonhosted.org/packages/7b/bd/84c24de512cbafbdbc39439f74e967f19570ce7924e3007174a29c348916/multidict-6.7.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:c102791b1c4f3ab36ce4101154549105a53dc828f016356b3e3bcae2e3a039d3", size = 252059 }, - { url = "https://files.pythonhosted.org/packages/fa/ba/f5449385510825b73d01c2d4087bf6d2fccc20a2d42ac34df93191d3dd03/multidict-6.7.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:a088b62bd733e2ad12c50dad01b7d0166c30287c166e137433d3b410add807a6", size = 263588 }, - { url = "https://files.pythonhosted.org/packages/d7/11/afc7c677f68f75c84a69fe37184f0f82fce13ce4b92f49f3db280b7e92b3/multidict-6.7.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:3d51ff4785d58d3f6c91bdbffcb5e1f7ddfda557727043aa20d20ec4f65e324a", size = 259642 }, - { url = "https://files.pythonhosted.org/packages/2b/17/ebb9644da78c4ab36403739e0e6e0e30ebb135b9caf3440825001a0bddcb/multidict-6.7.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fc5907494fccf3e7d3f94f95c91d6336b092b5fc83811720fae5e2765890dfba", size = 251377 }, - { url = "https://files.pythonhosted.org/packages/ca/a4/840f5b97339e27846c46307f2530a2805d9d537d8b8bd416af031cad7fa0/multidict-6.7.1-cp312-cp312-win32.whl", hash = "sha256:28ca5ce2fd9716631133d0e9a9b9a745ad7f60bac2bccafb56aa380fc0b6c511", size = 41887 }, - { url = "https://files.pythonhosted.org/packages/80/31/0b2517913687895f5904325c2069d6a3b78f66cc641a86a2baf75a05dcbb/multidict-6.7.1-cp312-cp312-win_amd64.whl", hash = "sha256:fcee94dfbd638784645b066074b338bc9cc155d4b4bffa4adce1615c5a426c19", size = 46053 }, - { url = "https://files.pythonhosted.org/packages/0c/5b/aba28e4ee4006ae4c7df8d327d31025d760ffa992ea23812a601d226e682/multidict-6.7.1-cp312-cp312-win_arm64.whl", hash = "sha256:ba0a9fb644d0c1a2194cf7ffb043bd852cea63a57f66fbd33959f7dae18517bf", size = 43307 }, - { url = "https://files.pythonhosted.org/packages/f2/22/929c141d6c0dba87d3e1d38fbdf1ba8baba86b7776469f2bc2d3227a1e67/multidict-6.7.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2b41f5fed0ed563624f1c17630cb9941cf2309d4df00e494b551b5f3e3d67a23", size = 76174 }, - { url = "https://files.pythonhosted.org/packages/c7/75/bc704ae15fee974f8fccd871305e254754167dce5f9e42d88a2def741a1d/multidict-6.7.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:84e61e3af5463c19b67ced91f6c634effb89ef8bfc5ca0267f954451ed4bb6a2", size = 45116 }, - { url = "https://files.pythonhosted.org/packages/79/76/55cd7186f498ed080a18440c9013011eb548f77ae1b297206d030eb1180a/multidict-6.7.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:935434b9853c7c112eee7ac891bc4cb86455aa631269ae35442cb316790c1445", size = 43524 }, - { url = "https://files.pythonhosted.org/packages/e9/3c/414842ef8d5a1628d68edee29ba0e5bcf235dbfb3ccd3ea303a7fe8c72ff/multidict-6.7.1-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:432feb25a1cb67fe82a9680b4d65fb542e4635cb3166cd9c01560651ad60f177", size = 249368 }, - { url = "https://files.pythonhosted.org/packages/f6/32/befed7f74c458b4a525e60519fe8d87eef72bb1e99924fa2b0f9d97a221e/multidict-6.7.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e82d14e3c948952a1a85503817e038cba5905a3352de76b9a465075d072fba23", size = 256952 }, - { url = "https://files.pythonhosted.org/packages/03/d6/c878a44ba877f366630c860fdf74bfb203c33778f12b6ac274936853c451/multidict-6.7.1-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:4cfb48c6ea66c83bcaaf7e4dfa7ec1b6bbcf751b7db85a328902796dfde4c060", size = 240317 }, - { url = "https://files.pythonhosted.org/packages/68/49/57421b4d7ad2e9e60e25922b08ceb37e077b90444bde6ead629095327a6f/multidict-6.7.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:1d540e51b7e8e170174555edecddbd5538105443754539193e3e1061864d444d", size = 267132 }, - { url = "https://files.pythonhosted.org/packages/b7/fe/ec0edd52ddbcea2a2e89e174f0206444a61440b40f39704e64dc807a70bd/multidict-6.7.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:273d23f4b40f3dce4d6c8a821c741a86dec62cded82e1175ba3d99be128147ed", size = 268140 }, - { url = "https://files.pythonhosted.org/packages/b0/73/6e1b01cbeb458807aa0831742232dbdd1fa92bfa33f52a3f176b4ff3dc11/multidict-6.7.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d624335fd4fa1c08a53f8b4be7676ebde19cd092b3895c421045ca87895b429", size = 254277 }, - { url = "https://files.pythonhosted.org/packages/6a/b2/5fb8c124d7561a4974c342bc8c778b471ebbeb3cc17df696f034a7e9afe7/multidict-6.7.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:12fad252f8b267cc75b66e8fc51b3079604e8d43a75428ffe193cd9e2195dfd6", size = 252291 }, - { url = "https://files.pythonhosted.org/packages/5a/96/51d4e4e06bcce92577fcd488e22600bd38e4fd59c20cb49434d054903bd2/multidict-6.7.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:03ede2a6ffbe8ef936b92cb4529f27f42be7f56afcdab5ab739cd5f27fb1cbf9", size = 250156 }, - { url = "https://files.pythonhosted.org/packages/db/6b/420e173eec5fba721a50e2a9f89eda89d9c98fded1124f8d5c675f7a0c0f/multidict-6.7.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:90efbcf47dbe33dcf643a1e400d67d59abeac5db07dc3f27d6bdeae497a2198c", size = 249742 }, - { url = "https://files.pythonhosted.org/packages/44/a3/ec5b5bd98f306bc2aa297b8c6f11a46714a56b1e6ef5ebda50a4f5d7c5fb/multidict-6.7.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:5c4b9bfc148f5a91be9244d6264c53035c8a0dcd2f51f1c3c6e30e30ebaa1c84", size = 262221 }, - { url = "https://files.pythonhosted.org/packages/cd/f7/e8c0d0da0cd1e28d10e624604e1a36bcc3353aaebdfdc3a43c72bc683a12/multidict-6.7.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:401c5a650f3add2472d1d288c26deebc540f99e2fb83e9525007a74cd2116f1d", size = 258664 }, - { url = "https://files.pythonhosted.org/packages/52/da/151a44e8016dd33feed44f730bd856a66257c1ee7aed4f44b649fb7edeb3/multidict-6.7.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:97891f3b1b3ffbded884e2916cacf3c6fc87b66bb0dde46f7357404750559f33", size = 249490 }, - { url = "https://files.pythonhosted.org/packages/87/af/a3b86bf9630b732897f6fc3f4c4714b90aa4361983ccbdcd6c0339b21b0c/multidict-6.7.1-cp313-cp313-win32.whl", hash = "sha256:e1c5988359516095535c4301af38d8a8838534158f649c05dd1050222321bcb3", size = 41695 }, - { url = "https://files.pythonhosted.org/packages/b2/35/e994121b0e90e46134673422dd564623f93304614f5d11886b1b3e06f503/multidict-6.7.1-cp313-cp313-win_amd64.whl", hash = "sha256:960c83bf01a95b12b08fd54324a4eb1d5b52c88932b5cba5d6e712bb3ed12eb5", size = 45884 }, - { url = "https://files.pythonhosted.org/packages/ca/61/42d3e5dbf661242a69c97ea363f2d7b46c567da8eadef8890022be6e2ab0/multidict-6.7.1-cp313-cp313-win_arm64.whl", hash = "sha256:563fe25c678aaba333d5399408f5ec3c383ca5b663e7f774dd179a520b8144df", size = 43122 }, - { url = "https://files.pythonhosted.org/packages/6d/b3/e6b21c6c4f314bb956016b0b3ef2162590a529b84cb831c257519e7fde44/multidict-6.7.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:c76c4bec1538375dad9d452d246ca5368ad6e1c9039dadcf007ae59c70619ea1", size = 83175 }, - { url = "https://files.pythonhosted.org/packages/fb/76/23ecd2abfe0957b234f6c960f4ade497f55f2c16aeb684d4ecdbf1c95791/multidict-6.7.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:57b46b24b5d5ebcc978da4ec23a819a9402b4228b8a90d9c656422b4bdd8a963", size = 48460 }, - { url = "https://files.pythonhosted.org/packages/c4/57/a0ed92b23f3a042c36bc4227b72b97eca803f5f1801c1ab77c8a212d455e/multidict-6.7.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e954b24433c768ce78ab7929e84ccf3422e46deb45a4dc9f93438f8217fa2d34", size = 46930 }, - { url = "https://files.pythonhosted.org/packages/b5/66/02ec7ace29162e447f6382c495dc95826bf931d3818799bbef11e8f7df1a/multidict-6.7.1-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:3bd231490fa7217cc832528e1cd8752a96f0125ddd2b5749390f7c3ec8721b65", size = 242582 }, - { url = "https://files.pythonhosted.org/packages/58/18/64f5a795e7677670e872673aca234162514696274597b3708b2c0d276cce/multidict-6.7.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:253282d70d67885a15c8a7716f3a73edf2d635793ceda8173b9ecc21f2fb8292", size = 250031 }, - { url = "https://files.pythonhosted.org/packages/c8/ed/e192291dbbe51a8290c5686f482084d31bcd9d09af24f63358c3d42fd284/multidict-6.7.1-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0b4c48648d7649c9335cf1927a8b87fa692de3dcb15faa676c6a6f1f1aabda43", size = 228596 }, - { url = "https://files.pythonhosted.org/packages/1e/7e/3562a15a60cf747397e7f2180b0a11dc0c38d9175a650e75fa1b4d325e15/multidict-6.7.1-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:98bc624954ec4d2c7cb074b8eefc2b5d0ce7d482e410df446414355d158fe4ca", size = 257492 }, - { url = "https://files.pythonhosted.org/packages/24/02/7d0f9eae92b5249bb50ac1595b295f10e263dd0078ebb55115c31e0eaccd/multidict-6.7.1-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:1b99af4d9eec0b49927b4402bcbb58dea89d3e0db8806a4086117019939ad3dd", size = 255899 }, - { url = "https://files.pythonhosted.org/packages/00/e3/9b60ed9e23e64c73a5cde95269ef1330678e9c6e34dd4eb6b431b85b5a10/multidict-6.7.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6aac4f16b472d5b7dc6f66a0d49dd57b0e0902090be16594dc9ebfd3d17c47e7", size = 247970 }, - { url = "https://files.pythonhosted.org/packages/3e/06/538e58a63ed5cfb0bd4517e346b91da32fde409d839720f664e9a4ae4f9d/multidict-6.7.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:21f830fe223215dffd51f538e78c172ed7c7f60c9b96a2bf05c4848ad49921c3", size = 245060 }, - { url = "https://files.pythonhosted.org/packages/b2/2f/d743a3045a97c895d401e9bd29aaa09b94f5cbdf1bd561609e5a6c431c70/multidict-6.7.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:f5dd81c45b05518b9aa4da4aa74e1c93d715efa234fd3e8a179df611cc85e5f4", size = 235888 }, - { url = "https://files.pythonhosted.org/packages/38/83/5a325cac191ab28b63c52f14f1131f3b0a55ba3b9aa65a6d0bf2a9b921a0/multidict-6.7.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:eb304767bca2bb92fb9c5bd33cedc95baee5bb5f6c88e63706533a1c06ad08c8", size = 243554 }, - { url = "https://files.pythonhosted.org/packages/20/1f/9d2327086bd15da2725ef6aae624208e2ef828ed99892b17f60c344e57ed/multidict-6.7.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:c9035dde0f916702850ef66460bc4239d89d08df4d02023a5926e7446724212c", size = 252341 }, - { url = "https://files.pythonhosted.org/packages/e8/2c/2a1aa0280cf579d0f6eed8ee5211c4f1730bd7e06c636ba2ee6aafda302e/multidict-6.7.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:af959b9beeb66c822380f222f0e0a1889331597e81f1ded7f374f3ecb0fd6c52", size = 246391 }, - { url = "https://files.pythonhosted.org/packages/e5/03/7ca022ffc36c5a3f6e03b179a5ceb829be9da5783e6fe395f347c0794680/multidict-6.7.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:41f2952231456154ee479651491e94118229844dd7226541788be783be2b5108", size = 243422 }, - { url = "https://files.pythonhosted.org/packages/dc/1d/b31650eab6c5778aceed46ba735bd97f7c7d2f54b319fa916c0f96e7805b/multidict-6.7.1-cp313-cp313t-win32.whl", hash = "sha256:df9f19c28adcb40b6aae30bbaa1478c389efd50c28d541d76760199fc1037c32", size = 47770 }, - { url = "https://files.pythonhosted.org/packages/ac/5b/2d2d1d522e51285bd61b1e20df8f47ae1a9d80839db0b24ea783b3832832/multidict-6.7.1-cp313-cp313t-win_amd64.whl", hash = "sha256:d54ecf9f301853f2c5e802da559604b3e95bb7a3b01a9c295c6ee591b9882de8", size = 53109 }, - { url = "https://files.pythonhosted.org/packages/3d/a3/cc409ba012c83ca024a308516703cf339bdc4b696195644a7215a5164a24/multidict-6.7.1-cp313-cp313t-win_arm64.whl", hash = "sha256:5a37ca18e360377cfda1d62f5f382ff41f2b8c4ccb329ed974cc2e1643440118", size = 45573 }, - { url = "https://files.pythonhosted.org/packages/91/cc/db74228a8be41884a567e88a62fd589a913708fcf180d029898c17a9a371/multidict-6.7.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:8f333ec9c5eb1b7105e3b84b53141e66ca05a19a605368c55450b6ba208cb9ee", size = 75190 }, - { url = "https://files.pythonhosted.org/packages/d5/22/492f2246bb5b534abd44804292e81eeaf835388901f0c574bac4eeec73c5/multidict-6.7.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:a407f13c188f804c759fc6a9f88286a565c242a76b27626594c133b82883b5c2", size = 44486 }, - { url = "https://files.pythonhosted.org/packages/f1/4f/733c48f270565d78b4544f2baddc2fb2a245e5a8640254b12c36ac7ac68e/multidict-6.7.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0e161ddf326db5577c3a4cc2d8648f81456e8a20d40415541587a71620d7a7d1", size = 43219 }, - { url = "https://files.pythonhosted.org/packages/24/bb/2c0c2287963f4259c85e8bcbba9182ced8d7fca65c780c38e99e61629d11/multidict-6.7.1-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:1e3a8bb24342a8201d178c3b4984c26ba81a577c80d4d525727427460a50c22d", size = 245132 }, - { url = "https://files.pythonhosted.org/packages/a7/f9/44d4b3064c65079d2467888794dea218d1601898ac50222ab8a9a8094460/multidict-6.7.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:97231140a50f5d447d3164f994b86a0bed7cd016e2682f8650d6a9158e14fd31", size = 252420 }, - { url = "https://files.pythonhosted.org/packages/8b/13/78f7275e73fa17b24c9a51b0bd9d73ba64bb32d0ed51b02a746eb876abe7/multidict-6.7.1-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6b10359683bd8806a200fd2909e7c8ca3a7b24ec1d8132e483d58e791d881048", size = 233510 }, - { url = "https://files.pythonhosted.org/packages/4b/25/8167187f62ae3cbd52da7893f58cb036b47ea3fb67138787c76800158982/multidict-6.7.1-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:283ddac99f7ac25a4acadbf004cb5ae34480bbeb063520f70ce397b281859362", size = 264094 }, - { url = "https://files.pythonhosted.org/packages/a1/e7/69a3a83b7b030cf283fb06ce074a05a02322359783424d7edf0f15fe5022/multidict-6.7.1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:538cec1e18c067d0e6103aa9a74f9e832904c957adc260e61cd9d8cf0c3b3d37", size = 260786 }, - { url = "https://files.pythonhosted.org/packages/fe/3b/8ec5074bcfc450fe84273713b4b0a0dd47c0249358f5d82eb8104ffe2520/multidict-6.7.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7eee46ccb30ff48a1e35bb818cc90846c6be2b68240e42a78599166722cea709", size = 248483 }, - { url = "https://files.pythonhosted.org/packages/48/5a/d5a99e3acbca0e29c5d9cba8f92ceb15dce78bab963b308ae692981e3a5d/multidict-6.7.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:fa263a02f4f2dd2d11a7b1bb4362aa7cb1049f84a9235d31adf63f30143469a0", size = 248403 }, - { url = "https://files.pythonhosted.org/packages/35/48/e58cd31f6c7d5102f2a4bf89f96b9cf7e00b6c6f3d04ecc44417c00a5a3c/multidict-6.7.1-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:2e1425e2f99ec5bd36c15a01b690a1a2456209c5deed58f95469ffb46039ccbb", size = 240315 }, - { url = "https://files.pythonhosted.org/packages/94/33/1cd210229559cb90b6786c30676bb0c58249ff42f942765f88793b41fdce/multidict-6.7.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:497394b3239fc6f0e13a78a3e1b61296e72bf1c5f94b4c4eb80b265c37a131cd", size = 245528 }, - { url = "https://files.pythonhosted.org/packages/64/f2/6e1107d226278c876c783056b7db43d800bb64c6131cec9c8dfb6903698e/multidict-6.7.1-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:233b398c29d3f1b9676b4b6f75c518a06fcb2ea0b925119fb2c1bc35c05e1601", size = 258784 }, - { url = "https://files.pythonhosted.org/packages/4d/c1/11f664f14d525e4a1b5327a82d4de61a1db604ab34c6603bb3c2cc63ad34/multidict-6.7.1-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:93b1818e4a6e0930454f0f2af7dfce69307ca03cdcfb3739bf4d91241967b6c1", size = 251980 }, - { url = "https://files.pythonhosted.org/packages/e1/9f/75a9ac888121d0c5bbd4ecf4eead45668b1766f6baabfb3b7f66a410e231/multidict-6.7.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:f33dc2a3abe9249ea5d8360f969ec7f4142e7ac45ee7014d8f8d5acddf178b7b", size = 243602 }, - { url = "https://files.pythonhosted.org/packages/9a/e7/50bf7b004cc8525d80dbbbedfdc7aed3e4c323810890be4413e589074032/multidict-6.7.1-cp314-cp314-win32.whl", hash = "sha256:3ab8b9d8b75aef9df299595d5388b14530839f6422333357af1339443cff777d", size = 40930 }, - { url = "https://files.pythonhosted.org/packages/e0/bf/52f25716bbe93745595800f36fb17b73711f14da59ed0bb2eba141bc9f0f/multidict-6.7.1-cp314-cp314-win_amd64.whl", hash = "sha256:5e01429a929600e7dab7b166062d9bb54a5eed752384c7384c968c2afab8f50f", size = 45074 }, - { url = "https://files.pythonhosted.org/packages/97/ab/22803b03285fa3a525f48217963da3a65ae40f6a1b6f6cf2768879e208f9/multidict-6.7.1-cp314-cp314-win_arm64.whl", hash = "sha256:4885cb0e817aef5d00a2e8451d4665c1808378dc27c2705f1bf4ef8505c0d2e5", size = 42471 }, - { url = "https://files.pythonhosted.org/packages/e0/6d/f9293baa6146ba9507e360ea0292b6422b016907c393e2f63fc40ab7b7b5/multidict-6.7.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:0458c978acd8e6ea53c81eefaddbbee9c6c5e591f41b3f5e8e194780fe026581", size = 82401 }, - { url = "https://files.pythonhosted.org/packages/7a/68/53b5494738d83558d87c3c71a486504d8373421c3e0dbb6d0db48ad42ee0/multidict-6.7.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:c0abd12629b0af3cf590982c0b413b1e7395cd4ec026f30986818ab95bfaa94a", size = 48143 }, - { url = "https://files.pythonhosted.org/packages/37/e8/5284c53310dcdc99ce5d66563f6e5773531a9b9fe9ec7a615e9bc306b05f/multidict-6.7.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:14525a5f61d7d0c94b368a42cff4c9a4e7ba2d52e2672a7b23d84dc86fb02b0c", size = 46507 }, - { url = "https://files.pythonhosted.org/packages/e4/fc/6800d0e5b3875568b4083ecf5f310dcf91d86d52573160834fb4bfcf5e4f/multidict-6.7.1-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:17307b22c217b4cf05033dabefe68255a534d637c6c9b0cc8382718f87be4262", size = 239358 }, - { url = "https://files.pythonhosted.org/packages/41/75/4ad0973179361cdf3a113905e6e088173198349131be2b390f9fa4da5fc6/multidict-6.7.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7a7e590ff876a3eaf1c02a4dfe0724b6e69a9e9de6d8f556816f29c496046e59", size = 246884 }, - { url = "https://files.pythonhosted.org/packages/c3/9c/095bb28b5da139bd41fb9a5d5caff412584f377914bd8787c2aa98717130/multidict-6.7.1-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:5fa6a95dfee63893d80a34758cd0e0c118a30b8dcb46372bf75106c591b77889", size = 225878 }, - { url = "https://files.pythonhosted.org/packages/07/d0/c0a72000243756e8f5a277b6b514fa005f2c73d481b7d9e47cd4568aa2e4/multidict-6.7.1-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a0543217a6a017692aa6ae5cc39adb75e587af0f3a82288b1492eb73dd6cc2a4", size = 253542 }, - { url = "https://files.pythonhosted.org/packages/c0/6b/f69da15289e384ecf2a68837ec8b5ad8c33e973aa18b266f50fe55f24b8c/multidict-6.7.1-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f99fe611c312b3c1c0ace793f92464d8cd263cc3b26b5721950d977b006b6c4d", size = 252403 }, - { url = "https://files.pythonhosted.org/packages/a2/76/b9669547afa5a1a25cd93eaca91c0da1c095b06b6d2d8ec25b713588d3a1/multidict-6.7.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9004d8386d133b7e6135679424c91b0b854d2d164af6ea3f289f8f2761064609", size = 244889 }, - { url = "https://files.pythonhosted.org/packages/7e/a9/a50d2669e506dad33cfc45b5d574a205587b7b8a5f426f2fbb2e90882588/multidict-6.7.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e628ef0e6859ffd8273c69412a2465c4be4a9517d07261b33334b5ec6f3c7489", size = 241982 }, - { url = "https://files.pythonhosted.org/packages/c5/bb/1609558ad8b456b4827d3c5a5b775c93b87878fd3117ed3db3423dfbce1b/multidict-6.7.1-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:841189848ba629c3552035a6a7f5bf3b02eb304e9fea7492ca220a8eda6b0e5c", size = 232415 }, - { url = "https://files.pythonhosted.org/packages/d8/59/6f61039d2aa9261871e03ab9dc058a550d240f25859b05b67fd70f80d4b3/multidict-6.7.1-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:ce1bbd7d780bb5a0da032e095c951f7014d6b0a205f8318308140f1a6aba159e", size = 240337 }, - { url = "https://files.pythonhosted.org/packages/a1/29/fdc6a43c203890dc2ae9249971ecd0c41deaedfe00d25cb6564b2edd99eb/multidict-6.7.1-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:b26684587228afed0d50cf804cc71062cc9c1cdf55051c4c6345d372947b268c", size = 248788 }, - { url = "https://files.pythonhosted.org/packages/a9/14/a153a06101323e4cf086ecee3faadba52ff71633d471f9685c42e3736163/multidict-6.7.1-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:9f9af11306994335398293f9958071019e3ab95e9a707dc1383a35613f6abcb9", size = 242842 }, - { url = "https://files.pythonhosted.org/packages/41/5f/604ae839e64a4a6efc80db94465348d3b328ee955e37acb24badbcd24d83/multidict-6.7.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:b4938326284c4f1224178a560987b6cf8b4d38458b113d9b8c1db1a836e640a2", size = 240237 }, - { url = "https://files.pythonhosted.org/packages/5f/60/c3a5187bf66f6fb546ff4ab8fb5a077cbdd832d7b1908d4365c7f74a1917/multidict-6.7.1-cp314-cp314t-win32.whl", hash = "sha256:98655c737850c064a65e006a3df7c997cd3b220be4ec8fe26215760b9697d4d7", size = 48008 }, - { url = "https://files.pythonhosted.org/packages/0c/f7/addf1087b860ac60e6f382240f64fb99f8bfb532bb06f7c542b83c29ca61/multidict-6.7.1-cp314-cp314t-win_amd64.whl", hash = "sha256:497bde6223c212ba11d462853cfa4f0ae6ef97465033e7dc9940cdb3ab5b48e5", size = 53542 }, - { url = "https://files.pythonhosted.org/packages/4c/81/4629d0aa32302ef7b2ec65c75a728cc5ff4fa410c50096174c1632e70b3e/multidict-6.7.1-cp314-cp314t-win_arm64.whl", hash = "sha256:2bbd113e0d4af5db41d5ebfe9ccaff89de2120578164f86a5d17d5a576d1e5b2", size = 44719 }, - { url = "https://files.pythonhosted.org/packages/81/08/7036c080d7117f28a4af526d794aab6a84463126db031b007717c1a6676e/multidict-6.7.1-py3-none-any.whl", hash = "sha256:55d97cc6dae627efa6a6e548885712d4864b81110ac76fa4e534c03819fa4a56", size = 12319 }, -] - -[[package]] -name = "multiurl" -version = "0.3.7" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "python-dateutil" }, - { name = "pytz" }, - { name = "requests" }, - { name = "tqdm" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/6c/ce/a00c9b44f43c4620ca004e4acb4c1e266b1ab48d2f6ad9e402f6bdbe44d4/multiurl-0.3.7.tar.gz", hash = "sha256:4201563fc8989baca7b525fdc69d4cd5a6c0cef4f303559710b9890021aab6d9", size = 18945 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/93/cf/be4e93afbfa0def2cd6fac9302071db0bd6d0617999ecbf53f92b9398de3/multiurl-0.3.7-py3-none-any.whl", hash = "sha256:054f42974064f103be0ed55b43f0c32fc435a47dc7353a9adaffa643b99fa380", size = 21524 }, +version = "7.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7b/6b/29ef8e752f5854dcc267ded0652c475bec99b86f255957a0d4fcad657b18/multidict-7.2.1.tar.gz", hash = "sha256:e8af3e6f1bdbc31fd762b094133b478b89988eaebc63cbe82b1d9e3bbd15cede", size = 369994, upload-time = "2026-10-24T20:41:35.457Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/27/21/53c299f1ea289f5fd438e70d4f1f053f59b4485f5a410bcc85eecb553394/multidict-7.2.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:cb43bb34346155d479acdc5423afccdff79ce1fc66adfcc9de995cbec8a13acf", size = 172948, upload-time = "2026-10-24T20:40:10.189Z" }, + { url = "https://files.pythonhosted.org/packages/9d/17/faacc27a01e364abed3c6218d8a32bc42fa0688c95f82c6b11e3ffe99a07/multidict-7.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:dbda2baafe08f8431fd3333be02c261023fd454607e3bde5e7dc00565f7bebcb", size = 98039, upload-time = "2026-10-24T20:40:13.633Z" }, + { url = "https://files.pythonhosted.org/packages/bf/e4/bd8838244fd1309165c79e74af9a6b9e9e42fd0f2c24c75bee665fc9ba69/multidict-7.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d37773029ba034a2cc970b6eeb67dad3bff9d894393c51f6bb1c6b4f563a032c", size = 103911, upload-time = "2026-10-24T20:40:13.517Z" }, + { url = "https://files.pythonhosted.org/packages/0c/39/21dbe0be29cd44de626736c6f0915c0b75f153e0155340a253f375ac5747/multidict-7.2.1-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:c85a0a54a19429a17ef449e967baffe7b5089cb4f6ef2894c9168a69fa024d05", size = 493430, upload-time = "2026-10-24T20:40:49.104Z" }, + { url = "https://files.pythonhosted.org/packages/72/13/c081a1af93258029471636ea1c741141ece10f1045578a5f73ba99b694a0/multidict-7.2.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fa0ecd064b0ae18d235283abb5adbc4e07304dba8f2aa7c0d61f28bebcc70d4c", size = 506972, upload-time = "2026-10-24T20:40:11.68Z" }, + { url = "https://files.pythonhosted.org/packages/3d/3e/e9982c6b1e0d4bb19c4551cd56e50c1fbe90492bdf7893adf8d1ea39f373/multidict-7.2.1-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:f278f118f9fdb5faba5a6792be397fbda094d1568efa4dfe8c3595ce4ce89eea", size = 470406, upload-time = "2026-10-24T20:40:14.984Z" }, + { url = "https://files.pythonhosted.org/packages/6d/2e/ab4136028044825995b3c9de4cf8f9ef82c2076b09b5c44c65e7e3eef0a1/multidict-7.2.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a3d28ac22fe658ad7486d1532b3a9084fbf65b428db31f47212c5b0b6da826f1", size = 524691, upload-time = "2026-10-24T20:40:15.205Z" }, + { url = "https://files.pythonhosted.org/packages/f7/ed/0a57de7a6b6444f301fc4cfc4b8eb0d1c36a33b8ff05717fab7700f205b1/multidict-7.2.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2f3cf710144b1859f4128051cc27ea86eee83caac5648cf2ca0c1b835261cbbe", size = 549512, upload-time = "2026-10-24T20:40:50.756Z" }, + { url = "https://files.pythonhosted.org/packages/43/50/6bd8600b4843f0a9d939e0cc0f4160f4c727bd6c69e4f7e294a1caa93db8/multidict-7.2.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1fb8c1a3480c130c3a6422d5f16f3cad6552bf08c2089dd288ba7134649183b5", size = 516796, upload-time = "2026-10-24T20:40:13.481Z" }, + { url = "https://files.pythonhosted.org/packages/c2/77/31e78862081f54a06115927c1c3d81b1a57522fa0209fe1992fac25c6e75/multidict-7.2.1-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b81ff0f2d375988152614eaea4d5023c98ecb08f77df4bb1d96762504bb86fca", size = 451174, upload-time = "2026-10-24T20:40:16.492Z" }, + { url = "https://files.pythonhosted.org/packages/e8/bf/30a0c0911e4b61accb9995165acfdc5107dd335ad3ce003007afaf168dec/multidict-7.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:b4821bd30b38144d8ab75df56af0b07e9d71327c9cf94c0c7a1965f865bb9615", size = 492916, upload-time = "2026-10-24T20:40:16.619Z" }, + { url = "https://files.pythonhosted.org/packages/5a/80/2192317e096489e9361f732beeee2dd213b827de71b038011dd8176e262f/multidict-7.2.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:0eb7fa012ab47b13e96bffc1369642f520adcc4e3d3e170d7f1a2b39fb953bce", size = 468924, upload-time = "2026-10-24T20:40:52.584Z" }, + { url = "https://files.pythonhosted.org/packages/65/fe/92a104d1d9731a97053193a3f3646a2ee286929fdb7f9c2d5077de782b33/multidict-7.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:f9e78d98a29e969a001e953eb09167a48bbc71249e804dae5db987ee7e6531c9", size = 492920, upload-time = "2026-10-24T20:40:15.165Z" }, + { url = "https://files.pythonhosted.org/packages/c6/6b/165323c76d383afbf60da76a4e67f4b78635b09a77c2b83d7033e72d5ee8/multidict-7.2.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:eb5c4a5b1281985271b6c29be53f2c1a9decf11e30a0e2733439c4d9d61b9ebb", size = 510473, upload-time = "2026-10-24T20:40:17.824Z" }, + { url = "https://files.pythonhosted.org/packages/ff/61/e25786f40ab8a862102c198ad0e39cbca704aeeac096edd9cffc85122f8c/multidict-7.2.1-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:2c4e6a97f79699f33e6dc13bddb5631781ee79a4a94c1822116d100e7d5c136c", size = 445954, upload-time = "2026-10-24T20:40:18.14Z" }, + { url = "https://files.pythonhosted.org/packages/a5/bb/deb193198dd1913e8feb54bc83dd13a0cf5425b1aaf7ac913e980537aca6/multidict-7.2.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:5324411117bdb67cfaeb3d1d28fb783710fcca3d88b855696af99044d7219e4b", size = 528252, upload-time = "2026-10-24T20:40:54.068Z" }, + { url = "https://files.pythonhosted.org/packages/7b/9f/ae4d6c442e11aea5ff631f36e4e8d5ff4d1f4c330d2c2721cb729fa5eed6/multidict-7.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d615377a8e7bfc4f1983ede3f411c2ac2b0f7c3053f262d0437b7d8bcc4485e3", size = 508675, upload-time = "2026-10-24T20:40:17.249Z" }, + { url = "https://files.pythonhosted.org/packages/06/ca/bff250b81ada0df548da2b9c0abaf12b4fd864f40ee39e983cd9bada5799/multidict-7.2.1-cp312-cp312-win32.whl", hash = "sha256:30572b61c7932e4d3c2ad1e580de7db1f35b7a35d36db38f89397ce3f2e69096", size = 84510, upload-time = "2026-10-24T20:40:19.481Z" }, + { url = "https://files.pythonhosted.org/packages/68/d5/64108a33c21bde81454b5a400d16baa1378a7d01599de64b131c3e3e3114/multidict-7.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:781ca5dfc2f1d58e47f52216a0c1c7e1ba91ce8aa235459e20de2d402af77fb3", size = 95372, upload-time = "2026-10-24T20:40:19.679Z" }, + { url = "https://files.pythonhosted.org/packages/e0/00/b746ff0f4f70589be9eca08d37a211c3257d602e0ba95224dd0ee0577801/multidict-7.2.1-cp312-cp312-win_arm64.whl", hash = "sha256:9306e0c5595f91874e685be0a9eb743d48ba069c888eea051bec3c67c08b5b8d", size = 92629, upload-time = "2026-10-24T20:40:55.897Z" }, + { url = "https://files.pythonhosted.org/packages/33/f7/453ab156d423def05ac3a4a268f52975378520bf919ded61c9a8bb432b7d/multidict-7.2.1-cp313-cp313-android_24_x86_64.whl", hash = "sha256:fba33e264cdd2ec43b762b9960d1648478eecfc1ce6e8159e7573510f0412c0a", size = 103189, upload-time = "2026-10-24T20:40:18.599Z" }, + { url = "https://files.pythonhosted.org/packages/dc/f1/db4171d67615081b007ceab10af476cf7d66a09291fe43c11f1608f08d4a/multidict-7.2.1-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:f2087ee23a18d1d618a135eedcafba7dfc40c6be4e8e52d7f29a1c8a2344cfcc", size = 101149, upload-time = "2026-10-24T20:40:20.693Z" }, + { url = "https://files.pythonhosted.org/packages/be/7f/adae49eae252c26f2b7a2fe89984533e0bdb0072f29023c1f2ad7588886e/multidict-7.2.1-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:f5812cfcf7daf3ace5fedf6e2ef8d4b342c92fb8ea3a87c1aed2b50453271093", size = 103294, upload-time = "2026-10-24T20:40:21.094Z" }, + { url = "https://files.pythonhosted.org/packages/48/45/9fac67be204fc5570593f4dfa2395c542bd1643ffd090c8566de0d1d7f8e/multidict-7.2.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:57ac987ec5d26d89bbc48c03e486f659e1367d425c465552ac2e4c4af8219def", size = 171995, upload-time = "2026-10-24T20:40:57.102Z" }, + { url = "https://files.pythonhosted.org/packages/91/5f/7912bfb95ab00ed6bd588884ca44adf29f7f56de871247a535135af5a2b4/multidict-7.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:714fe5f3eabd153b1b6911d0b5d31cfc2b808ae6b9e59a32fab17a4e6cdad5a6", size = 97470, upload-time = "2026-10-24T20:40:19.915Z" }, + { url = "https://files.pythonhosted.org/packages/06/18/29874e132d78ce182305e818a1553c4ddae238471ba55903a1ea38b5c4ee/multidict-7.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4bebc9587cc29359e3b045518a7a09264fa882a7d165b0d143fdac8eeb7ea948", size = 103438, upload-time = "2026-10-24T20:40:21.892Z" }, + { url = "https://files.pythonhosted.org/packages/20/9c/0b181fac73aa9d0f24bc38ce24f56a9cb08c96109c3703d2f79ef15c2c2b/multidict-7.2.1-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:12bbab225ce7f69df75409ab8005b11b4e9309fae863821e019e81b32e53a2a8", size = 493852, upload-time = "2026-10-24T20:40:22.383Z" }, + { url = "https://files.pythonhosted.org/packages/4f/2e/d9ee8ccc91fcde4ad9a6e8275b1df67c0e079349fe33fd30530706dc2707/multidict-7.2.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:335f715f8c111654f29e4bf19086bdf0245579d2b4f4f59ca8dd9b3003b859c1", size = 506390, upload-time = "2026-10-24T20:40:58.494Z" }, + { url = "https://files.pythonhosted.org/packages/3c/f6/eca9192c0e598655258b2a3d14120894aecc338982670ca7ff4d4168b226/multidict-7.2.1-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:9df532dd12c59a7a4d381646fc1bf5ccb4bcdbd01c0887d07ec769fae965ea9a", size = 469470, upload-time = "2026-10-24T20:40:21.363Z" }, + { url = "https://files.pythonhosted.org/packages/cf/1b/a4cc6da2651966c725298812d965b9d70918544214a5638c670837034f24/multidict-7.2.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9c9f285f788acf2448a57c9b93d31103ac69bd03f92907e2ffbb23c4e2b42eb6", size = 523167, upload-time = "2026-10-24T20:40:23.155Z" }, + { url = "https://files.pythonhosted.org/packages/20/64/f3df5b32600c6dfcc1a949f15c8de2b89e44053f5c78bea05c6240e10af8/multidict-7.2.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:21d86f2aa58aa428fb9909d6b8587b75eea827287e3515b8506dca86b55e2c7d", size = 547031, upload-time = "2026-10-24T20:40:23.769Z" }, + { url = "https://files.pythonhosted.org/packages/8f/85/15918b8f73aeb770c534f22b7dac256dc70b6fc7aa0571856c82b17bf3c5/multidict-7.2.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cd69c99affd1b4debc1f9a53058ea6e3a9b34f2e733840bb45891666cd8ede0a", size = 516056, upload-time = "2026-10-24T20:40:59.951Z" }, + { url = "https://files.pythonhosted.org/packages/d6/eb/b74b3441b572218dd24068b67bf4f1f71934cfa5938f55c299425b1c41c0/multidict-7.2.1-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:fc45ff19520bc5321dcd9c6dd7df6f35ddd894eed35e5be65d1828a9c3f5e7fb", size = 449703, upload-time = "2026-10-24T20:40:22.96Z" }, + { url = "https://files.pythonhosted.org/packages/47/81/ac9bb12377260913c0384bdb60b2f9097b1ba580579a2f9697b9e21709f3/multidict-7.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cba29f12cd717f1cbbe220edf005666f8df0453347217748331a0c2f7522eca4", size = 492340, upload-time = "2026-10-24T20:40:24.498Z" }, + { url = "https://files.pythonhosted.org/packages/b1/e9/bac55e20457d3e23879b65e8c46dca5ea90675eee73ca70e3fdc4984d53c/multidict-7.2.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:4f31ddf9c00e0e7db848b0236c717acbe8a51954d0d31b4d908c538ab3f0f5bc", size = 468205, upload-time = "2026-10-24T20:40:25.143Z" }, + { url = "https://files.pythonhosted.org/packages/ff/ce/1dc1e0f8bc28f41edee6fd0e2116f1d7b077e8fc04f50617e65f3938cbaa/multidict-7.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:7cb1a6bb70edcc06ea65cb9a35654f268ee39d9fc3a52240e6ba074db4d9c99e", size = 493634, upload-time = "2026-10-24T20:41:01.377Z" }, + { url = "https://files.pythonhosted.org/packages/70/e2/7a4e9f4e35d522715f8987a17d3a098582d0e879cfde621defa586330310/multidict-7.2.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:a2a322c8a6ca82a5a67ae6542e9c6a13ded9045cfd171dcccc5c213ac4fe0eab", size = 509128, upload-time = "2026-10-24T20:40:24.735Z" }, + { url = "https://files.pythonhosted.org/packages/60/cd/d142dc374de3585c57e2635659d45c3179cf47ded415794b2e7ead663373/multidict-7.2.1-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:678ac791b5820d9346eb13c8515fe0c9383659335e5cfc544bf6f54714ca1939", size = 444795, upload-time = "2026-10-24T20:40:25.846Z" }, + { url = "https://files.pythonhosted.org/packages/6d/41/7121157290d436282cf2405cda15d4448921231f7291679f5a3f47669bbe/multidict-7.2.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:0c454b677214fa604e9c4a38952c685dc88a62c96f5576a7ce550f213d1dc318", size = 526200, upload-time = "2026-10-24T20:40:26.763Z" }, + { url = "https://files.pythonhosted.org/packages/6f/fd/05e6e78a34023574db41c057676aa1c26925533fe0b60de9fb5ed5e1a101/multidict-7.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:3ca60708f0ca9d994f46790c5a5c774771e2f1dcb75b12c70a5582f915d0e721", size = 507752, upload-time = "2026-10-24T20:41:02.846Z" }, + { url = "https://files.pythonhosted.org/packages/41/50/3bccfa9f3003303fda37a1f7131ab90dcf36ef7fa9af6611151f4b2e316c/multidict-7.2.1-cp313-cp313-win32.whl", hash = "sha256:fa949c81e3865c10f981dea72fd8d418b59edd13a047a0aee89ae64790113d53", size = 84246, upload-time = "2026-10-24T20:40:26.077Z" }, + { url = "https://files.pythonhosted.org/packages/74/6b/3f90a565e6eb94266d197d91cca5833b34ab89768a24f7f07b29bc186e09/multidict-7.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:ce0f884408938fbd72e764031d0e23a8f5e438a7bf73641089c7a6465cb84456", size = 95078, upload-time = "2026-10-24T20:40:27.34Z" }, + { url = "https://files.pythonhosted.org/packages/09/29/3acaf67a5d0f0ecce997f1f57cd14c8c634d05e1672df23b29d4f072262e/multidict-7.2.1-cp313-cp313-win_arm64.whl", hash = "sha256:554ee1d2e71fb5b4059c0c4ee35d8cbc8af2a3147036d65a454c53fea07ff4eb", size = 92390, upload-time = "2026-10-24T20:40:28.055Z" }, + { url = "https://files.pythonhosted.org/packages/de/0c/2eff3c4f36f45eddf11fb10b35069d9ebcef751b16483a585527061354ac/multidict-7.2.1-cp314-cp314-android_24_x86_64.whl", hash = "sha256:3d22ebb716ac79bf32c2a1d15250f017faef719114af4376e8dd814d6633cf0a", size = 102695, upload-time = "2026-10-24T20:41:04.31Z" }, + { url = "https://files.pythonhosted.org/packages/e2/46/4b8667914db791922e826a847f80324cb1f0acba9b05343fcb53c5a237f9/multidict-7.2.1-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:1d369ed297e79b417766327ece16bb7e89306c588df63c364a85d90d4aeac843", size = 101581, upload-time = "2026-10-24T20:40:27.297Z" }, + { url = "https://files.pythonhosted.org/packages/5a/40/80c50aa45b607086d43ff3d467c25450b85c7d9bb7e4bbcd521c3b030be9/multidict-7.2.1-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:a9cc121b5ee2c8b4bd4b6b526d5a26bb782f4d620463f73707691b2004b8c349", size = 103677, upload-time = "2026-10-24T20:40:28.633Z" }, + { url = "https://files.pythonhosted.org/packages/f3/e0/c822cf8d92f33f0d6fc0f733b6f5b287956133024765f31b7151b68f6198/multidict-7.2.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:02009b402129a73e1f3da68f48eb999afbacd29f25aef0d5052b84ff5c2786a2", size = 172007, upload-time = "2026-10-24T20:40:29.243Z" }, + { url = "https://files.pythonhosted.org/packages/0b/d8/b36e8bbc49a59f38e6411bdf96e07c29462460d77e59527309d72469b1f8/multidict-7.2.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:cb7fc8820b206932ec6d8f8985aeba6edfd2932e13b6c4bf2434d6bcbbeef3e1", size = 97224, upload-time = "2026-10-24T20:41:05.627Z" }, + { url = "https://files.pythonhosted.org/packages/8e/3f/c014da364e2f9707945f921864a6b5c615e88a0ec0518c7999b3b2092405/multidict-7.2.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:cadd02ca804d6ebe799a7af19197d9730094fe2cc74b70eb4f374f4b8c1886c1", size = 103824, upload-time = "2026-10-24T20:40:28.61Z" }, + { url = "https://files.pythonhosted.org/packages/c9/73/bcd1fff09ba644499fcd864e6f86a596e51e90f5504c326354bdba3bb8a0/multidict-7.2.1-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:846b17193f1c373d6f05ada894fadf56bce2473067caea0aab51828849894b31", size = 486848, upload-time = "2026-10-24T20:40:29.976Z" }, + { url = "https://files.pythonhosted.org/packages/52/12/d6731ea19a185f76a1dc6b76f239fa3567732c8575188b47f7a715742c21/multidict-7.2.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6efdeed2723431999cf3bcbc84c72dbe0f65d16bb1f84e15a657f5b60ff18ca6", size = 500914, upload-time = "2026-10-24T20:40:30.626Z" }, + { url = "https://files.pythonhosted.org/packages/71/db/332a5b62d4c2c26950aede813a0da97e42cbc16b656ac936eb2c6e01f58f/multidict-7.2.1-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:f9c118e866164ce05498d9106a4bd01e745321403cd6f0b77a0b2587768f8c06", size = 462069, upload-time = "2026-10-24T20:41:06.892Z" }, + { url = "https://files.pythonhosted.org/packages/64/8d/c8c6826dc3e9b742bd21f3e84e1d8c46daffb584f45fd93429541e5e7f11/multidict-7.2.1-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:dc6f3dcb08c4b41e64f2d6cf272b5686d9144db585b2e138a8b1664376ab3921", size = 515356, upload-time = "2026-10-24T20:40:29.998Z" }, + { url = "https://files.pythonhosted.org/packages/92/c8/c13ffe0d352c4caaa17da0a74e9203c718606c62a1d62f98439feb1783d5/multidict-7.2.1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:27cc258247b13008742f0e239933ad01dec5ed4e6dfc63849e30e04e1aa5bc82", size = 539793, upload-time = "2026-10-24T20:40:31.55Z" }, + { url = "https://files.pythonhosted.org/packages/3b/8f/bff861e3bd5a7cc13bd1f040d22aee8aa32b4f2755bba29b0c31a1d2ae25/multidict-7.2.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:822a7fcd33f6922b650e1b26594f09d53c5d011fe655fea7ded27b2728ce2a1b", size = 506944, upload-time = "2026-10-24T20:40:32.258Z" }, + { url = "https://files.pythonhosted.org/packages/a4/2f/f40fc4a7070798e31630ae0be583e0857fcab71a1bf80c37481ded49c553/multidict-7.2.1-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:0f30d6eaf3cb309b6c21096c6c2b4cf3800f195a78b1babae85f481ce851bdc2", size = 443550, upload-time = "2026-10-24T20:41:08.334Z" }, + { url = "https://files.pythonhosted.org/packages/ba/7e/068b48b20c1df58dddb7885f5e1befd6def91c7b6048f2644ccd81f57fa9/multidict-7.2.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:edffdb3950d3a8b769ddaec3a0962fb7b76b3c96f317f6b88500455a537dded2", size = 486514, upload-time = "2026-10-24T20:40:31.371Z" }, + { url = "https://files.pythonhosted.org/packages/fe/0d/a2f8b1fdd7cc2f497bb2fb0cc59dc7e2ced1fa4b0cd9b2912973e384ea77/multidict-7.2.1-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:8c3ff4f5c376df7126695a52af61e6084b69c9e52dcb9f4713e71ce9819e1bfd", size = 459258, upload-time = "2026-10-24T20:40:32.999Z" }, + { url = "https://files.pythonhosted.org/packages/36/aa/74652a34732f16a951fce9ca118e659f1a9dbe102ee52d9bcea4a8001dad/multidict-7.2.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:d5738cd929f2af8651ebb284467acb58b1ec0f2f4d42489cd0597172bc82e15b", size = 487418, upload-time = "2026-10-24T20:40:33.649Z" }, + { url = "https://files.pythonhosted.org/packages/dd/91/ae90df6402911d310cee3f44a73914ea555d5219b1976a8f2842dc247eac/multidict-7.2.1-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:81a5f84a76401c4330e6db4e170dddd58860b30c4e8a44a181e5c2809c7f9c9d", size = 502308, upload-time = "2026-10-24T20:41:09.776Z" }, + { url = "https://files.pythonhosted.org/packages/3c/f3/5a1ab9f594e652bece00f1243bf565063790838250054ef9310999c856f7/multidict-7.2.1-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:efe695cc2081633b02fcb95bc1b13070f6647c9ad52d42a8beeb3c2a7ea062dc", size = 439169, upload-time = "2026-10-24T20:40:32.896Z" }, + { url = "https://files.pythonhosted.org/packages/38/a4/8c4fd4ecbea568de3b4605dc7323488f65a204475e1aac98db9d36fdbfd3/multidict-7.2.1-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:0c52fdd8cb8194fcb6969a417149aa1d09d6e48b69fb1b34ee1b1e4cb51ec183", size = 519617, upload-time = "2026-10-24T20:40:34.488Z" }, + { url = "https://files.pythonhosted.org/packages/1a/b5/4964b2d8f8b4ff03df7f24e8dc7d0de534fad0430e553ff0693aa2bcfb75/multidict-7.2.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:02d9c04d395a36eeebe89e45f2269614a4675b8e83fddcba15bba2be903971e5", size = 499402, upload-time = "2026-10-24T20:40:35.035Z" }, + { url = "https://files.pythonhosted.org/packages/ee/f2/c7d5c514e066fc6f9b9a2a9583f46a3d8178c49b7e91cadcc59241f22c12/multidict-7.2.1-cp314-cp314-win32.whl", hash = "sha256:b97bffa5772b7e853303de094829fcd3a9bd49fddd70534651ee4933691f6587", size = 83635, upload-time = "2026-10-24T20:41:11.337Z" }, + { url = "https://files.pythonhosted.org/packages/08/8f/2ec03cddf5f283f979813f8c5d38f5df798e21cb07a124dfc311ed28d8e9/multidict-7.2.1-cp314-cp314-win_amd64.whl", hash = "sha256:6e22756c6e2d4f57ead0d2e6be179d8a16d661bee424b81de0c6c0c1305ec39f", size = 94544, upload-time = "2026-10-24T20:40:34.202Z" }, + { url = "https://files.pythonhosted.org/packages/2e/75/3e9803944df2233cd43924c04ef057160a75c35e87f4fc083de7c855ab74/multidict-7.2.1-cp314-cp314-win_arm64.whl", hash = "sha256:b63acdf4df5a78a15223bbb510bb3e0f8234dfa807610ccb8796d0842db2c801", size = 92767, upload-time = "2026-10-24T20:40:35.787Z" }, + { url = "https://files.pythonhosted.org/packages/96/6d/e3a4b4de34cde67f98887ac0c134e2436e1eafdcef62e81f9f8b7ac8e189/multidict-7.2.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:15da10cf11fd8d8716720c95b93180e94c8317405d89d08524c579ef360128ac", size = 183485, upload-time = "2026-10-24T20:40:36.397Z" }, + { url = "https://files.pythonhosted.org/packages/e6/b7/c5aa68302159285e544c7f1b687a48d2b000217b9a90aff880052d6cb867/multidict-7.2.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:c753b820738cddc097892fee95e7cd716fbdfc9640414c5e9ce9463ad125321b", size = 103109, upload-time = "2026-10-24T20:41:12.496Z" }, + { url = "https://files.pythonhosted.org/packages/54/b5/7574cad64ee957cb65a32ac4f842663fbe948c1749f688a93eef0677644c/multidict-7.2.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:69befda4b1ef57027ea95dc6ed733568642f330fb3203a3e5c5ef107d41e0a1f", size = 109785, upload-time = "2026-10-24T20:40:35.496Z" }, + { url = "https://files.pythonhosted.org/packages/38/7b/ced76f7d87cce5ed15ae404213c7f9fdc594d0caaedbbacc6b8cdfac81e6/multidict-7.2.1-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:8648dd5dc4d5db32b5936dc5e85e9a4d79db1135513d40d1f54ca15503750324", size = 511246, upload-time = "2026-10-24T20:40:37.078Z" }, + { url = "https://files.pythonhosted.org/packages/51/91/b598741d494865ed002df52f37f9e92bf9ab5a0524098a3f7667c1bd6ac6/multidict-7.2.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5efddcdbcb73f5485dca2b6624edc8ee063604b77bd3a3eb772826063965819f", size = 545199, upload-time = "2026-10-24T20:40:37.773Z" }, + { url = "https://files.pythonhosted.org/packages/e4/1d/2e3c15a07da380a7845e7d0969fde25cd6fca078a09bf30cf6deb06a3480/multidict-7.2.1-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:9c44bd978adddf39df5834c6a1efd7d075c84769a7a084168d035a2a276d9008", size = 489912, upload-time = "2026-10-24T20:41:13.782Z" }, + { url = "https://files.pythonhosted.org/packages/d6/5b/f6e2668e393430240da34a13503c190493dac8bef352ce7e26e831dc7949/multidict-7.2.1-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:cff7657e79224dea46f2f2e58eb99186656ca63ebe356212210c5c00e9beb814", size = 553445, upload-time = "2026-10-24T20:40:36.916Z" }, + { url = "https://files.pythonhosted.org/packages/05/ca/d7e0605545eebc8053167683fc6aa0d49114df2e75a2c474f2b65f8f083a/multidict-7.2.1-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7fb3bc8d58e1b7c1d9fa1d995e30a4ce9dbe49f4c63c755a1ffdecdfbd026ccb", size = 573757, upload-time = "2026-10-24T20:40:38.554Z" }, + { url = "https://files.pythonhosted.org/packages/1b/de/9a74903ffdbe3712ba392166935c91785ccdff82dc4b6a15b28a4df52a14/multidict-7.2.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:66af55b07e4593790157e85f897f06983ded8a8692cb2fb048f3049c1d3fa172", size = 543116, upload-time = "2026-10-24T20:40:39.052Z" }, + { url = "https://files.pythonhosted.org/packages/8c/9d/8eb3ee4465610cd599b08b3320262a3448dcd03299565f4c725ee1504bbc/multidict-7.2.1-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ed6c107642a9acaa7ede32dcd428a6c87e302c5d555ecd3ec132ffa8c6155b4b", size = 478536, upload-time = "2026-10-24T20:41:15.442Z" }, + { url = "https://files.pythonhosted.org/packages/49/fa/346308a741f2c06b23da186022fd72a75b9923f4fe7c88705605e20506d2/multidict-7.2.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:bc9decb36abd00ed5d123db9df70eb9a0da45d6376d86d64f4a94bfd5a1b83fe", size = 526429, upload-time = "2026-10-24T20:40:38.392Z" }, + { url = "https://files.pythonhosted.org/packages/eb/10/96986b2404bba1bdb54e364e682a2a9fc97a93c9f6598a2c35c065cbe28f/multidict-7.2.1-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:5a7df927c7999d1d3196176a8d4139d3a0e1765936f5de8c768097275b2d617a", size = 488886, upload-time = "2026-10-24T20:40:39.949Z" }, + { url = "https://files.pythonhosted.org/packages/8c/5b/59b11e1e2f93d39b34c554bfe3beb35777aa976c35af078f23eda41fa809/multidict-7.2.1-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:4eb2650aa240b62ab0c6d87238bee5d14aa4d411c0d69ad61be53e026e0785ba", size = 510875, upload-time = "2026-10-24T20:40:40.484Z" }, + { url = "https://files.pythonhosted.org/packages/83/af/79e0036cc9ecc160235f3bcbd337524cb44ebd266cfc77e7532d9bd06850/multidict-7.2.1-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:83fbd7cfaca614975efdbdcd9e2df45f3e987e819216468fb73e1db6f0365b98", size = 539190, upload-time = "2026-10-24T20:41:17.519Z" }, + { url = "https://files.pythonhosted.org/packages/a0/b5/342db062f9ae8816c1b940360c251dff21afeb88a9c4b1694c2b3348f2db/multidict-7.2.1-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:a878fef2797a7c082aa47559af68299372edebc7367bd5128dff2d36e6d820e1", size = 474879, upload-time = "2026-10-24T20:40:39.953Z" }, + { url = "https://files.pythonhosted.org/packages/8a/60/1420f7daae59b331f5506e5b32a79f60fa475e636f53bf4e6cacad5782ec/multidict-7.2.1-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:f332b16911ffc668baec6aaf8f08a09e1af34a8ee87ccac26bd722589e264645", size = 549769, upload-time = "2026-10-24T20:40:41.241Z" }, + { url = "https://files.pythonhosted.org/packages/ce/af/c4b548057bee365137be7b1ed12cb6339b6911ad95d99a83d4b26e9bcb2a/multidict-7.2.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:81c6fc88ac9bf6920a0cdf22d3c383964167f12d35eb630463fc6d5ac89e460d", size = 535840, upload-time = "2026-10-24T20:40:41.927Z" }, + { url = "https://files.pythonhosted.org/packages/ba/df/70710e4bc50b29ced1ed69ec3a99124c56ac34747c6a64b05611f7b5856a/multidict-7.2.1-cp314-cp314t-win32.whl", hash = "sha256:0c7b4d8cc9e6ae7070b8129bdb840215552d4e2689ca765d37eb208a24919209", size = 90136, upload-time = "2026-10-24T20:41:18.854Z" }, + { url = "https://files.pythonhosted.org/packages/ac/cb/a330b1474608eef92e6a0a5861d61b8f2d3152d1a71b65dad8b56edea150/multidict-7.2.1-cp314-cp314t-win_amd64.whl", hash = "sha256:b5fb6b048931ea925b484f0c7c01b007981415a00a6c62ee74bbf8d229d39c08", size = 101163, upload-time = "2026-10-24T20:40:41.847Z" }, + { url = "https://files.pythonhosted.org/packages/66/fe/1563cd1336111755f79a60d06ffecd11dfbce5eb8c32ece9eae888d5fbef/multidict-7.2.1-cp314-cp314t-win_arm64.whl", hash = "sha256:e64b86d16158954825d12799271979c6944c1fd1d03575b2f22e869c3f7d00dc", size = 98630, upload-time = "2026-10-24T20:40:42.671Z" }, + { url = "https://files.pythonhosted.org/packages/03/fd/8048552a28d6ae6e1e11198b0605a4d98eee58e10527a35a9fbb3de5b6f6/multidict-7.2.1-cp315-cp315-android_24_x86_64.whl", hash = "sha256:f29885fef157a602d1816439e5da964c70ebcdbbcd4bb9d2d21b7e8bb5636604", size = 102703, upload-time = "2026-10-24T20:40:44.421Z" }, + { url = "https://files.pythonhosted.org/packages/f1/89/d16f1cb45c2c4d7dab10b199dad0c2907a7846326cbd141abb6c9dedc353/multidict-7.2.1-cp315-cp315-ios_13_0_arm64_iphoneos.whl", hash = "sha256:a92e3080d8889b0f7a80ea0c4a72181b4d4d5d3918a03136b4a459f51f5f59da", size = 101681, upload-time = "2026-10-24T20:41:20.058Z" }, + { url = "https://files.pythonhosted.org/packages/40/eb/2e14975652ca018dfed4bf14756f2aa9f71b74a0347aa52e8a4d0cac95a9/multidict-7.2.1-cp315-cp315-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:3ca4e2e9102d0788b94894a30a5e3561fd4818a0605d8748d8fe780f890aa069", size = 103843, upload-time = "2026-10-24T20:40:43.083Z" }, + { url = "https://files.pythonhosted.org/packages/46/76/9f80aa8013ac294dcbd9b51b0db0312d98f4db03dc92e56d6a404559332d/multidict-7.2.1-cp315-cp315-macosx_10_15_universal2.whl", hash = "sha256:a0f999155c22c8929cc492949c08c6fe7ec8079a5e1bfdeb34b9a3e4991959d0", size = 172121, upload-time = "2026-10-24T20:40:44.051Z" }, + { url = "https://files.pythonhosted.org/packages/82/96/ffc7c5ff41445b51dd71072b066f1189682c52fb32e46a58351f413ddf11/multidict-7.2.1-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:f15205c67d4c45250fcff5da077f0ae54102b5bc39e9ee8bab90d99e09a728c5", size = 97233, upload-time = "2026-10-24T20:40:46.192Z" }, + { url = "https://files.pythonhosted.org/packages/65/19/da52a85bde6db671d652b1d11113c507aa4021f2c8d431a5074108aa4d5e/multidict-7.2.1-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:f07f06db2e333b68dd52560b8b0b12b6f8bf6053cedebf9af4aecfecd2dc1b32", size = 103929, upload-time = "2026-10-24T20:41:21.262Z" }, + { url = "https://files.pythonhosted.org/packages/84/77/4c98e263f94cd5b27f89cdf3b5989bed698fe3a34a6812777620a8a4c518/multidict-7.2.1-cp315-cp315-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:d094951489bb7836342c005e790bd005e60b669aaf5c936b96dd5d68cbd2e23b", size = 490370, upload-time = "2026-10-24T20:40:44.571Z" }, + { url = "https://files.pythonhosted.org/packages/4f/e2/36a02b000bc0605061eebe4fbfe3ee9c39ebe644bbd053e1635d5a0f9286/multidict-7.2.1-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d0381074dc21225951278d7e4a7a2241f7fb86a4d8b94154dfee1411f49cf851", size = 502507, upload-time = "2026-10-24T20:40:45.371Z" }, + { url = "https://files.pythonhosted.org/packages/42/ea/1fbceb93d48c65a731bc2264c34d9374d3c811657b3616c480a3ff32b152/multidict-7.2.1-cp315-cp315-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:2e279ad5a6e9347bc9e043fdbee180a0480c8fd52618c3258e983dd93d98ed49", size = 463742, upload-time = "2026-10-24T20:40:47.479Z" }, + { url = "https://files.pythonhosted.org/packages/a8/2c/e8e8e98bd831b74a4a011d007c6990cbebc834557825948a4c192855dd4d/multidict-7.2.1-cp315-cp315-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e0f2b33a6ae233f4da38c77ea32f90aab2cb82ba819d7b6c4f1b68cd33d871b6", size = 515827, upload-time = "2026-10-24T20:41:22.557Z" }, + { url = "https://files.pythonhosted.org/packages/af/54/a777698e55878f569d3a9daa3658b6a5248608f99ca67fab94b5b94ceb95/multidict-7.2.1-cp315-cp315-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:57b5d0df4c60ab8b1159687610a1c3ae069ad2380d390a79dedff5c82318e714", size = 539980, upload-time = "2026-10-24T20:40:46.122Z" }, + { url = "https://files.pythonhosted.org/packages/63/a8/a00489f6ca40003a95c97e30b556eb136f510664fb9f605d8c1c9e38dd39/multidict-7.2.1-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2592fb6c335d67f1912bf72788c02fd5dab305fc3c8c7eab078a5bec1aaa0f88", size = 508202, upload-time = "2026-10-24T20:40:47.003Z" }, + { url = "https://files.pythonhosted.org/packages/90/7a/67c29db7d0daec8548ba8412d98c1f45f6416171eaa208c5682764e2a227/multidict-7.2.1-cp315-cp315-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:d4af0d863e72f3ea48e85d3aa1d1b426fd81e9544fd7976fc6d6753584a25b03", size = 448626, upload-time = "2026-10-24T20:40:49.019Z" }, + { url = "https://files.pythonhosted.org/packages/ff/7b/986c45a79400c784c7eb2a2e848f77bdb5b97f32cb8a03fb4cda67b5ea28/multidict-7.2.1-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:8148c2aaaf4b85d7872f024c8bb0c9b9797cc76b10588e3594a69cb01057472a", size = 487794, upload-time = "2026-10-24T20:41:24.08Z" }, + { url = "https://files.pythonhosted.org/packages/c6/a1/d1707dbd709fbd774eac819aa15bf825ae6abf4c4ffaee9eb77e429ba11b/multidict-7.2.1-cp315-cp315-musllinux_1_2_armv7l.whl", hash = "sha256:7726c53b1d59eb57b009a9e8759d4f71049ebdacf30642a198a197f80cea451c", size = 459403, upload-time = "2026-10-24T20:40:47.645Z" }, + { url = "https://files.pythonhosted.org/packages/f6/c8/56e3b24559ab63efc76c261e5aa6813616b2094886e9bb9de688cd1a386a/multidict-7.2.1-cp315-cp315-musllinux_1_2_i686.whl", hash = "sha256:f62172cf387e92f4928b60e5936b02c06e3c8449ed7fb440978d6c9bcbfc85df", size = 489508, upload-time = "2026-10-24T20:40:48.541Z" }, + { url = "https://files.pythonhosted.org/packages/01/05/b1cbbdc23a7bcff56fb97d97e675892e9dd0bd941d8c6023c411ae6a1c26/multidict-7.2.1-cp315-cp315-musllinux_1_2_ppc64le.whl", hash = "sha256:03846be88267369908fcd9a91159358a3b142d740991c96e4f696d362fce516c", size = 502575, upload-time = "2026-10-24T20:40:50.968Z" }, + { url = "https://files.pythonhosted.org/packages/fe/f2/946fc151a8e9e17a71f4bd69d5893576addadc8e2528999dd3c1a742b48f/multidict-7.2.1-cp315-cp315-musllinux_1_2_riscv64.whl", hash = "sha256:785ef2f3e372dabc131f228a275f97eca92ad17cfab1ab138790e330d99abe3e", size = 444323, upload-time = "2026-10-24T20:41:25.534Z" }, + { url = "https://files.pythonhosted.org/packages/75/98/548bccbea2dcfe90acc130fa46124527b1460d60ba188d9b368309105a9f/multidict-7.2.1-cp315-cp315-musllinux_1_2_s390x.whl", hash = "sha256:2bac371da2c3554a99ba126f545e79ab8e8d9426a3e41df81d00ad725c1e2cbf", size = 520113, upload-time = "2026-10-24T20:40:49.455Z" }, + { url = "https://files.pythonhosted.org/packages/4a/98/25a588db57a7b4b786150aad4cb1f2aaad7aca13d20df60643461b58944e/multidict-7.2.1-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:2d4cfbbb1023f0f6795b5395c400752fb23a5a09ba756aa9003886bbc47b3e12", size = 500566, upload-time = "2026-10-24T20:40:49.974Z" }, + { url = "https://files.pythonhosted.org/packages/df/49/e319d4dcd4da99f356ca963b41f9c3c48a71d76afe606d8e8f0c90827317/multidict-7.2.1-cp315-cp315-win32.whl", hash = "sha256:584ebfa26c9dcf3e465637a5a9afa2647bebb3022b50b1ff384834ba8e0380d1", size = 83644, upload-time = "2026-10-24T20:40:52.389Z" }, + { url = "https://files.pythonhosted.org/packages/fd/3e/06a59c05402c2ff04eac97ef00783510b82b71128c67455a20b1b0eeecb4/multidict-7.2.1-cp315-cp315-win_amd64.whl", hash = "sha256:873d35366cc115be02a1c858f9b22a1a9f6182b99aab2171ee5276af02a153e3", size = 94542, upload-time = "2026-10-24T20:41:27.144Z" }, + { url = "https://files.pythonhosted.org/packages/d2/99/90e4c68ea5ca6ae89c682e3fa463d3fa7ebda5f6e2209a1b1f7b8ab1aa91/multidict-7.2.1-cp315-cp315-win_arm64.whl", hash = "sha256:f2cc27ec6a53b1d39bab44d2b9dd21cc31e796d01b5e18a76d569721282bb264", size = 92767, upload-time = "2026-10-24T20:40:50.934Z" }, + { url = "https://files.pythonhosted.org/packages/2a/39/66a05f6ce31217ee9ed9417c19433c7498e9468a15fae4cafd920284ef21/multidict-7.2.1-cp315-cp315t-macosx_10_15_universal2.whl", hash = "sha256:522f7d2351743804cdf5c5a304bc45f9d55e935dd87706fae2dbeafe0fed0b49", size = 183697, upload-time = "2026-10-24T20:40:51.79Z" }, + { url = "https://files.pythonhosted.org/packages/f9/88/185b62ccface5a6295934b24bae589f7817f79f54cd41b19267574bc1349/multidict-7.2.1-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:a3d9a59bcdf8531d46b56bcd512017533510c25e955c2c546efd0743bd840940", size = 103097, upload-time = "2026-10-24T20:40:53.594Z" }, + { url = "https://files.pythonhosted.org/packages/23/d6/bae59cc28b4bec2019e5a2fb0262a077982f68200dde08180f079a918a62/multidict-7.2.1-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:6966806cf917cbbeb9a8b5c581db52e19c9af0ef5fe009db54c1f5799a6e003f", size = 110045, upload-time = "2026-10-24T20:41:28.396Z" }, + { url = "https://files.pythonhosted.org/packages/36/a7/bee9b9f0ff28b751fd79d1c7630d6f88a9dead6218ef2f0e566f5d54ab0e/multidict-7.2.1-cp315-cp315t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:74d3e015c28b43b6c1a108eec324ea2efb185c359c459216cabd4cb98f7f02f6", size = 513704, upload-time = "2026-10-24T20:40:52.409Z" }, + { url = "https://files.pythonhosted.org/packages/4e/80/0c2781349f44d137fa138820bb871598116758e9e27042aad2d75835dc5c/multidict-7.2.1-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2529873a3bf68c372532a9f8058bcf4199e78387e92cd6a01b73334bfe6a7e3f", size = 547454, upload-time = "2026-10-24T20:40:53.161Z" }, + { url = "https://files.pythonhosted.org/packages/16/60/8b97c48c728c980ab5d10abe12400d3a8633910a9cf99307f31100fe1366/multidict-7.2.1-cp315-cp315t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:223427392fdf993e198644ec40c404fd93f1cd2a61328d18842ecbf154d02c82", size = 490355, upload-time = "2026-10-24T20:40:55.976Z" }, + { url = "https://files.pythonhosted.org/packages/3d/e5/966b412dd21c58d13f378e60e15e08d13dae669b3a22ed31b1f582b0ec9d/multidict-7.2.1-cp315-cp315t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:90efd90a0f9b7ae3844a4fb3ae614321832d364ae19567b7cd312315fac4ec39", size = 553571, upload-time = "2026-10-24T20:41:29.67Z" }, + { url = "https://files.pythonhosted.org/packages/13/18/e0f099bdf895d1cc1dee64aecd4e761d4d537c4513875e765a6e5dda71b1/multidict-7.2.1-cp315-cp315t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d10e49b940e70e2a4e91f44098007dda0bacb78c3f8e31ba7a37ee2ce52269e6", size = 572533, upload-time = "2026-10-24T20:40:54.421Z" }, + { url = "https://files.pythonhosted.org/packages/25/e7/150bfda9b5a12defbcd0c48385fcceb3efb8257bd9872c8c11cf79643eb0/multidict-7.2.1-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ba5e8d9310a794b853fb0e327d46a827b5b015576341219a591f88ed9d799c27", size = 544014, upload-time = "2026-10-24T20:40:54.676Z" }, + { url = "https://files.pythonhosted.org/packages/31/98/083d4980f3c3eb15663a91ddba983f1317d96e373ae86ac90e93c34140b2/multidict-7.2.1-cp315-cp315t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a7d120bdde5b213e67ed7dc80ea3adf4f014453fbc20195d619ba2ceb34084f3", size = 485204, upload-time = "2026-10-24T20:40:58.116Z" }, + { url = "https://files.pythonhosted.org/packages/06/2f/6990b941b9315f24575afa4ec4dada55c27fa3558ddc5962ca94322e93f4/multidict-7.2.1-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:27166b6ec73eac37696d66b2c6efbd44b6d04b597d655070959df54dc7c71c0b", size = 528125, upload-time = "2026-10-24T20:41:31.176Z" }, + { url = "https://files.pythonhosted.org/packages/d6/69/4efe79c2aa7f8cb42a826dfbffbec129358d81828f63158108eaf2e54603/multidict-7.2.1-cp315-cp315t-musllinux_1_2_armv7l.whl", hash = "sha256:13268013a3db11a214ccb6920f778d175b765f69a40509610b92e43602272718", size = 494332, upload-time = "2026-10-24T20:40:55.762Z" }, + { url = "https://files.pythonhosted.org/packages/d5/86/3704dd04ab0098e509a3dbed132269aca7897dd1d352638a333df5ebfc7c/multidict-7.2.1-cp315-cp315t-musllinux_1_2_i686.whl", hash = "sha256:65e4448dadc7c94a8643bb41361e45f3a73d46e36a008a9bc03e9b525f4d7c80", size = 511543, upload-time = "2026-10-24T20:40:56.457Z" }, + { url = "https://files.pythonhosted.org/packages/90/bb/2efa33d97e8b18533cb89b356a5782b61c28f66e21fb662c9853f71f96f4/multidict-7.2.1-cp315-cp315t-musllinux_1_2_ppc64le.whl", hash = "sha256:68b97b721d95b77d75e718d1b62a227fa4b3e647bd2a9fb39552d1a79ffb67c0", size = 538955, upload-time = "2026-10-24T20:40:59.701Z" }, + { url = "https://files.pythonhosted.org/packages/4f/aa/12510e431bbc652891297aeae4a5b19dc9532b477bbe1eb5642c933825e5/multidict-7.2.1-cp315-cp315t-musllinux_1_2_riscv64.whl", hash = "sha256:ec4ee5d2d624088775e61cada87bbe7629bfd936bfbd57f122a106970d8ab1ee", size = 481562, upload-time = "2026-10-24T20:41:32.578Z" }, + { url = "https://files.pythonhosted.org/packages/77/b0/3a9e0cc640a9f6031618f6b6415ba603040f68bce00ed36d659a2a8b6aba/multidict-7.2.1-cp315-cp315t-musllinux_1_2_s390x.whl", hash = "sha256:4b338b45dc26ca4bac702e1278754f78613d4d0081e14e94e44fe8e261bf1750", size = 548933, upload-time = "2026-10-24T20:40:57.407Z" }, + { url = "https://files.pythonhosted.org/packages/1d/c3/f4074a8e6c249cde81b5f29667161bdd4250f26174ac4bfbd45676f06b3a/multidict-7.2.1-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:9a53776adc1ba923c9e345fdea7b61553c44c17a9af5eba8d8def8c5dcac4dec", size = 537060, upload-time = "2026-10-24T20:40:57.916Z" }, + { url = "https://files.pythonhosted.org/packages/44/88/07382e85348d485db3f901ae7c0f3d33dd3562f6fe56d398631af0dad4c5/multidict-7.2.1-cp315-cp315t-win32.whl", hash = "sha256:fcfebcb537f419e415b6e2bfc77ddbd33abe3c036f0105410a25a14741df9c31", size = 90152, upload-time = "2026-10-24T20:41:01.076Z" }, + { url = "https://files.pythonhosted.org/packages/00/2f/45eb8700ee15716cc22f5b42592b4d5bc1ca65c880179c2c10e42fd6f0b4/multidict-7.2.1-cp315-cp315t-win_amd64.whl", hash = "sha256:25ebc4208d9098f77caeb16df895a0e56eb6c3b22870ac4e3ec43e0a9d6a33b6", size = 101193, upload-time = "2026-10-24T20:41:34.124Z" }, + { url = "https://files.pythonhosted.org/packages/7b/80/37d26f26d20b937344cfd68d9a1f57d8bc4f64adae416fc6828a7f8c8a10/multidict-7.2.1-cp315-cp315t-win_arm64.whl", hash = "sha256:4d61be3725016ef5db3543c95f1f062d7d150ba776582d959a982af88e75fa55", size = 98863, upload-time = "2026-10-24T20:40:59.146Z" }, + { url = "https://files.pythonhosted.org/packages/9d/96/1aaad0e5df33f1f5af21775c411349c0234a6edd581ea403bc81919a6eab/multidict-7.2.1-py3-none-any.whl", hash = "sha256:08ea94663d9e7c25d14d78222f7aee906c472d4837766bec62477c38f6e419dc", size = 28145, upload-time = "2026-10-24T20:40:59.159Z" }, ] [[package]] @@ -1749,12 +1811,13 @@ dependencies = [ { name = "cartopy" }, { name = "dask" }, { name = "distributed" }, - { name = "earthkit-data" }, { name = "h5netcdf" }, { name = "h5py" }, { name = "mlwp-data-loaders" }, { name = "mlwp-data-specs" }, { name = "netcdf4" }, + { name = "pandas" }, + { name = "pydantic" }, { name = "pyyaml" }, { name = "scipy" }, { name = "xarray" }, @@ -1791,15 +1854,16 @@ requires-dist = [ { name = "dask", specifier = ">=2026.1.2" }, { name = "dask-jobqueue", marker = "extra == 'jobqueue'", specifier = ">=0.9.0" }, { name = "distributed", specifier = ">=2026.1.2" }, - { name = "earthkit-data", specifier = ">=0.19.0" }, { name = "earthkit-meteo", marker = "extra == 'earthkit'", specifier = ">=0.6.1" }, { name = "eccodes", marker = "extra == 'ifs'", specifier = ">=2.45.0" }, { name = "eccodeslib", marker = "extra == 'ifs'", specifier = ">=2.46.2.19" }, { name = "h5netcdf", specifier = ">=1.8.1" }, - { name = "h5py", specifier = ">=3.15.1" }, + { name = "h5py", specifier = "<3.15" }, { name = "mlwp-data-loaders", git = "https://github.com/mlwp-tools/mlwp-data-loaders" }, { name = "mlwp-data-specs", git = "https://github.com/mlwp-tools/mlwp-data-specs?rev=059f382" }, { name = "netcdf4", specifier = ">=1.7.4" }, + { name = "pandas", specifier = ">=2.2" }, + { name = "pydantic", specifier = ">=2" }, { name = "pyyaml", specifier = ">=6.0.3" }, { name = "scipy", specifier = ">=1.17.0" }, { name = "xarray", specifier = ">=2026.1.0" }, @@ -1816,198 +1880,229 @@ dev = [ [[package]] name = "narwhals" -version = "2.22.1" +version = "2.27.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/62/3c/c4ef2164a71c1a63d7f1ae411c4082c5fa872405106db60a4b7114989ad7/narwhals-2.22.1.tar.gz", hash = "sha256:d62920805a0a43b7ff8b54b0c0d3142d796f8a9301836ada37e573d6a33cbcd9", size = 647493 } +sdist = { url = "https://files.pythonhosted.org/packages/bf/21/f64d6b2dbea7bf3f8c38cdc786dcc6ef012ca3d173ad208c782c9a7bedf6/narwhals-2.27.1.tar.gz", hash = "sha256:aed93076a3ea42d9c32c88e4eb5ea422a21937011cbe1f480f9572a523c82094", size = 735013, upload-time = "2026-10-10T06:52:18.113Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/48/ca/36339329c4604adbcc99c899b7eb1ce1a555c499b6a6860757dc9bfed36d/narwhals-2.22.1-py3-none-any.whl", hash = "sha256:60567d774edf77db53906f89d9fbd164e66e56d66d388e1e6990f17ac33cfb53", size = 454815 }, + { url = "https://files.pythonhosted.org/packages/d1/89/5d4c86da1130d9059681e5b6cd7645df5c10279a6a079c5c37dcb2cc6f3f/narwhals-2.27.1-py3-none-any.whl", hash = "sha256:d057df13f5852b8e157596e82eb5e955fad267425df5e420e0ee9863da483b31", size = 483211, upload-time = "2026-10-10T06:52:16.32Z" }, ] [[package]] -name = "nest-asyncio" -version = "1.6.0" +name = "nest-asyncio2" +version = "1.7.4" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/83/f8/51569ac65d696c8ecbee95938f89d4abf00f47d58d48f6fbabfe8f0baefe/nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe", size = 7418 } +sdist = { url = "https://files.pythonhosted.org/packages/32/2c/70e3b6bb2189cfd260280b7e1042bd622949a258663f95e887fada4ac1e6/nest_asyncio2-1.7.4.tar.gz", hash = "sha256:995b1409d926ec55e0876ea39a69bffdd8852cf1db3652c177e8c8ffdbcaf3cc", size = 16891, upload-time = "2026-10-07T22:31:50.507Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a0/c4/c2971a3ba4c6103a3d10c4b0f24f461ddc027f0f09763220cf35ca1401b3/nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c", size = 5195 }, + { url = "https://files.pythonhosted.org/packages/09/ed/559d2915dce85794bc0c36064043da170da50cd98746dcbddd85d5932017/nest_asyncio2-1.7.4-py3-none-any.whl", hash = "sha256:86e77b52c3d1496b294af3c944b44213b9b82a12a5ee590c0acc4ca4692ef6c7", size = 8543, upload-time = "2026-10-07T22:31:49.245Z" }, ] [[package]] name = "netcdf4" -version = "1.7.4" +version = "1.7.5.1.post1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "certifi" }, { name = "cftime" }, { name = "numpy" }, + { name = "packaging" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/34/b6/0370bb3af66a12098da06dc5843f3b349b7c83ccbdf7306e7afa6248b533/netcdf4-1.7.4.tar.gz", hash = "sha256:cdbfdc92d6f4d7192ca8506c9b3d4c1d9892969ff28d8e8e1fc97ca08bf12164", size = 838352 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/38/de/38ed7e1956943d28e8ea74161e97c3a00fb98d6d08943b4fd21bae32c240/netcdf4-1.7.4-cp311-abi3-macosx_13_0_x86_64.whl", hash = "sha256:dec70e809cc65b04ebe95113ee9c85ba46a51c3a37c058d2b2b0cadc4d3052d8", size = 23427499 }, - { url = "https://files.pythonhosted.org/packages/e5/70/2f73c133b71709c412bc81d8b721e28dc6237ba9d7dad861b7bfbb70408a/netcdf4-1.7.4-cp311-abi3-macosx_14_0_arm64.whl", hash = "sha256:75cf59100f0775bc4d6b9d4aca7cbabd12e2b8cf3b9a4fb16d810b92743a315a", size = 22847667 }, - { url = "https://files.pythonhosted.org/packages/77/ce/43a3c0c41a6e2e940d87feea79d29aa88302211ac122604838f8a5a48de6/netcdf4-1.7.4-cp311-abi3-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ddfc7e9d261125c74708119440c85ea288b5fee41db676d2ba1ce9be11f96932", size = 10274769 }, - { url = "https://files.pythonhosted.org/packages/7b/7a/a8d32501bb95ecff342004a674720164f95ad616f269450b3bc13dc88ae3/netcdf4-1.7.4-cp311-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a72c9f58767779ec14cb7451c3b56bdd8fdc027a792fac2062b14e090c5617f3", size = 10123122 }, - { url = "https://files.pythonhosted.org/packages/18/68/e89b4fa9242e59326c849c39ce0f49eb68499603c639405a8449900a4f15/netcdf4-1.7.4-cp311-abi3-win_amd64.whl", hash = "sha256:9476e1f23161ae5159cd1548c50c8a37922e77d76583e247133f256ef7b825fc", size = 21299637 }, - { url = "https://files.pythonhosted.org/packages/6c/fc/edd41a3607241027aa4533e7f18e0cd647e74dde10a63274c65350f59967/netcdf4-1.7.4-cp311-abi3-win_arm64.whl", hash = "sha256:876ad9d58f09c98741c066c726164c45a098a58fb90e5fac9e74de4bb8a793fd", size = 2386377 }, - { url = "https://files.pythonhosted.org/packages/d8/2b/684b15dd4791f8be295b2f6fa97377bbc07a768478a63b7d3c4951712e36/netcdf4-1.7.4-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a5841de0735e8e4875b367c668e81d334287858d64dd9f3e3e2261e808c84922", size = 10395635 }, - { url = "https://files.pythonhosted.org/packages/37/dc/44d21524cf1b1c64254f92e22395a7a10f70c18f3a13a18ac9db258760f7/netcdf4-1.7.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:86fac03a8c5b250d57866e7d98918a64742e4b0de1681c5c86bac5726bab8aee", size = 10237725 }, - { url = "https://files.pythonhosted.org/packages/d4/9d/c3ddf54296ad8f18f02f77f23452bdb0971aece1b87e84bab9d734bf72cc/netcdf4-1.7.4-cp314-cp314t-macosx_13_0_x86_64.whl", hash = "sha256:ad083d260301b5add74b1669c75ab0df03bdf986decfcc092cb45eec2615b5f1", size = 23515258 }, - { url = "https://files.pythonhosted.org/packages/dd/44/bc0346e995d436d03fab682b7fbd2a9adcf0db6a05790b8f24853bf08170/netcdf4-1.7.4-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:7f22014092cc9da3f056b0368e2e38c42afd5725c87ad4843eb2f467e16dd4f6", size = 22910171 }, - { url = "https://files.pythonhosted.org/packages/30/6b/f9bc3f43c55e2dac72ee9f98d77860789bdd5d50c29adf164a6bdb303078/netcdf4-1.7.4-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:224a15434c165a5e0225e5831f591edf62533044b1ce62fdfee815195bbd077d", size = 10567579 }, - { url = "https://files.pythonhosted.org/packages/6d/d5/e7685c66b7f011c73cd746127f986358a26c642a4e4a1aa5ab51481b6586/netcdf4-1.7.4-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:31a2318305de6831a18df25ad0df9f03b6d68666af0356d4f6057d66c02ffeb6", size = 10255032 }, - { url = "https://files.pythonhosted.org/packages/a6/14/7506738bb6c8bc373b01e5af8f3b727f83f4f496c6b108490ea2609dc2cf/netcdf4-1.7.4-cp314-cp314t-win_amd64.whl", hash = "sha256:6c4a0aa9446c3a616ef3be015b629dc6173643f8b09546de26a4e40e272cd1ed", size = 22289653 }, - { url = "https://files.pythonhosted.org/packages/af/2e/39d5e9179c543f2e6e149a65908f83afd9b6d64379a90789b323111761db/netcdf4-1.7.4-cp314-cp314t-win_arm64.whl", hash = "sha256:034220887d48da032cb2db5958f69759dbb04eb33e279ec6390571d4aea734fe", size = 2531682 }, +sdist = { url = "https://files.pythonhosted.org/packages/84/a6/816e4887fc132ce62b055cd2aecc47f0273e6bcf870cda250ed1323d93be/netcdf4-1.7.5.1.post1.tar.gz", hash = "sha256:9823076013fd54e7984d3ae8f431671fd199b15eeb267f91b8c4b057fd8324ab", size = 849840, upload-time = "2026-10-23T16:47:18.246Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f7/85/4bf2ff1dc7ab58e777e44f6a25d196f3104b916b8836e4f749fe9e77b158/netcdf4-1.7.5.1.post1-cp311-abi3-macosx_15_0_arm64.whl", hash = "sha256:e241c3e8c3af6a2e04a989bf80db31c580e4692ea6fc8f41d998ef1b2010fbcc", size = 10346992, upload-time = "2026-10-23T16:46:32.361Z" }, + { url = "https://files.pythonhosted.org/packages/95/cd/22874a17787224f6b806224091ae898607762db8f2028ae3cee95bfde498/netcdf4-1.7.5.1.post1-cp311-abi3-macosx_15_0_x86_64.whl", hash = "sha256:3fc1e1820b889b78f5777e18f828e1373ac497798a1e207d4723f21dac5271ed", size = 11089349, upload-time = "2026-10-23T16:46:34.821Z" }, + { url = "https://files.pythonhosted.org/packages/34/b6/ffb022b635490f884cc32b30e3f280fb36a41f35d424213d88a5beddec4d/netcdf4-1.7.5.1.post1-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:544316a1f712aa9f0a29a57ba835c9a8e640f9a5724b37d5cdf8a919e54427df", size = 10695626, upload-time = "2026-10-23T16:46:37.148Z" }, + { url = "https://files.pythonhosted.org/packages/4b/eb/dfbce2a6028198d65d238370f42ced033a506d61804fcb3b882e08f2d930/netcdf4-1.7.5.1.post1-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:fde13b1fc71bf2b0f684a272fe279fa7d01ee45e6098b4711840a4ab6ae42130", size = 10552948, upload-time = "2026-10-23T16:46:39.139Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f2/6906e029e47331c0d2c8ed03b0c72826f394e3561352e9c6dcb27f576e0c/netcdf4-1.7.5.1.post1-cp312-cp312-win_amd64.whl", hash = "sha256:e7a3e88fcad3bd795bd38f772309ae922473287de39412877213939c0a2ae8f5", size = 22443609, upload-time = "2026-10-23T16:46:45.31Z" }, + { url = "https://files.pythonhosted.org/packages/31/b1/572a42ea45ad873477c3d8e3ed8666aa0444e424d2d54408651f5eddd26e/netcdf4-1.7.5.1.post1-cp312-cp312-win_arm64.whl", hash = "sha256:ef36ce6a0ffffa1ec92deaf1fca7fcf49f1b2b14655b08a4acf39afa588a7aad", size = 2813763, upload-time = "2026-10-23T16:46:47.175Z" }, + { url = "https://files.pythonhosted.org/packages/75/2c/145c4e8d5c2870930d4d9d7faebc4bc8d4a9a7036534113b57528d78982e/netcdf4-1.7.5.1.post1-cp313-cp313-win_amd64.whl", hash = "sha256:2d8cff389ca9d49f83f3faebc2cf1abfebf2a023d8a168ee0dc8234de4504371", size = 22443432, upload-time = "2026-10-23T16:46:48.92Z" }, + { url = "https://files.pythonhosted.org/packages/a6/0f/3237cb3dc72c966a5322282b3ac059ee52dc783a69aa1a9601d532388789/netcdf4-1.7.5.1.post1-cp313-cp313-win_arm64.whl", hash = "sha256:2faeb065a16cd60841e7c3930526222f5f8345c3abeed25de34565ee73fe48a4", size = 2813718, upload-time = "2026-10-23T16:46:50.82Z" }, + { url = "https://files.pythonhosted.org/packages/5d/46/2320e06ce861ba290d6b5839cb6e156458404352e3675f8067cd2a8c26c0/netcdf4-1.7.5.1.post1-cp314-cp314-win_amd64.whl", hash = "sha256:8f5a54e4ff563067f514daeb26789dbab94bf89e6dd468e069545dcb1cc04a8e", size = 23347537, upload-time = "2026-10-23T16:46:52.331Z" }, + { url = "https://files.pythonhosted.org/packages/f0/b7/812d3d579950d3d208aa879073fab6ecad5d5c6372e5fa93df4e0bc734dd/netcdf4-1.7.5.1.post1-cp314-cp314-win_arm64.whl", hash = "sha256:6e72f55044e86ee66b4038b49c2e2e66e4780df533d69117d1df825678e32e48", size = 2929667, upload-time = "2026-10-23T16:46:54.403Z" }, + { url = "https://files.pythonhosted.org/packages/66/63/2d0b4ea1c561cee1f3c813edf5af69eeb037cd4ca16250071c66f210155b/netcdf4-1.7.5.1.post1-cp314-cp314t-macosx_15_0_arm64.whl", hash = "sha256:10f7233bb16f44d919b3f2e8300e3b7817aa2471560e90481695c5d5929d796d", size = 10432276, upload-time = "2026-10-23T16:46:56.005Z" }, + { url = "https://files.pythonhosted.org/packages/a8/06/def5e76475f9334630f921d0a6eb90c4a317693decf2a80e22868abd76e5/netcdf4-1.7.5.1.post1-cp314-cp314t-macosx_15_0_x86_64.whl", hash = "sha256:0a77597e25138e106875cf6778be17147d6982f15efd992d2cd353f4c43bbe39", size = 11177840, upload-time = "2026-10-23T16:46:57.759Z" }, + { url = "https://files.pythonhosted.org/packages/84/99/0eb5ef45e520524c0032566fee21e48f8496742b6eab49cf57e1310c118e/netcdf4-1.7.5.1.post1-cp314-cp314t-win_amd64.whl", hash = "sha256:bb73b2c664cc2a99d3d9ab061a9667ec69a9b15650699e34d617a208f651952b", size = 23375287, upload-time = "2026-10-23T16:46:59.772Z" }, + { url = "https://files.pythonhosted.org/packages/45/ec/0c2485579de21ca8c265d3dc1589b40ba3aa14b0874f6da21df8aba623ac/netcdf4-1.7.5.1.post1-cp314-cp314t-win_arm64.whl", hash = "sha256:aca0ea24e18ae4a00875d911d628b6b9a3a0a9b13b661959497501b90799264a", size = 2952541, upload-time = "2026-10-23T16:47:01.876Z" }, + { url = "https://files.pythonhosted.org/packages/bd/21/bcb441a5d7638ac3db4daa3cce3f6c2ad837d36ca978bf92f0080ef84d7f/netcdf4-1.7.5.1.post1-cp315-cp315-win_amd64.whl", hash = "sha256:a80e01a733e81f2fee73fa77928d766d93e8f43564c5f3243ea866fced1dbaa5", size = 23346549, upload-time = "2026-10-23T16:47:03.444Z" }, + { url = "https://files.pythonhosted.org/packages/f0/28/9525fff63d8bdd4dd80f882e1b7c54096a7de385e00ca27d586f9b35ae34/netcdf4-1.7.5.1.post1-cp315-cp315-win_arm64.whl", hash = "sha256:1a90b80aaa405e2dce0ef86f4a5231cace4f830ac1f6b2e39f91a796ea8ff4ce", size = 2928823, upload-time = "2026-10-23T16:47:05.512Z" }, + { url = "https://files.pythonhosted.org/packages/d0/dc/d34027cf74ffe506af3069cdb3db58916f30a37c7444c7de9a581de7dea9/netcdf4-1.7.5.1.post1-cp315-cp315t-macosx_15_0_arm64.whl", hash = "sha256:a7532543e7329ee22620cea2842299705c0154af4e3f79dce86b1887d5ff93e0", size = 10431162, upload-time = "2026-10-23T16:47:06.959Z" }, + { url = "https://files.pythonhosted.org/packages/8c/b9/838e3dd1b75c6f0f0352de63cf0847ffe5dde7275bd146cc405dc46b6328/netcdf4-1.7.5.1.post1-cp315-cp315t-macosx_15_0_x86_64.whl", hash = "sha256:3a832ddceb9a72ad1ffb103a594fa4df0e031402e40d0b22be7a6b52f7b585ca", size = 11176361, upload-time = "2026-10-23T16:47:08.584Z" }, + { url = "https://files.pythonhosted.org/packages/a7/ed/13e3fcfa86245ce88d1bf7a59be2fdaa7b9ba81c591262372eb8c673edb6/netcdf4-1.7.5.1.post1-cp315-cp315t-manylinux_2_28_aarch64.whl", hash = "sha256:319dd6fd2543a626c12cf1dbcddda2647dd124c9cbe16d752de55d1597eef00f", size = 11116616, upload-time = "2026-10-23T16:47:10.261Z" }, + { url = "https://files.pythonhosted.org/packages/55/ee/0b04db4e7b7572dbec669321541c591838eb6db5df7375c9353cd619e1a1/netcdf4-1.7.5.1.post1-cp315-cp315t-manylinux_2_28_x86_64.whl", hash = "sha256:4194f5b45cc9b69c79a577114662f65e90d2de2a76569ac9727a5a19fd37c7d7", size = 10874251, upload-time = "2026-10-23T16:47:11.894Z" }, + { url = "https://files.pythonhosted.org/packages/1e/df/848536c2ae26fc24161e1e6562593bc3c402c1ad111aaf91515f2563839b/netcdf4-1.7.5.1.post1-cp315-cp315t-win_amd64.whl", hash = "sha256:78896567d3467730461c8afd87515b5d2c42d02a582a9e23355663e87acf9d06", size = 23373686, upload-time = "2026-10-23T16:47:13.786Z" }, + { url = "https://files.pythonhosted.org/packages/c8/5c/d3dc00175df6ee22fc947d9afe0cea7a9a08a382bb75a25b127d2f9ea46c/netcdf4-1.7.5.1.post1-cp315-cp315t-win_arm64.whl", hash = "sha256:f63b52b8966a0a9f0ccb30278089c4dcc8d47aa251ff0fa5ee24c2bd81539617", size = 2951354, upload-time = "2026-10-23T16:47:16.056Z" }, ] [[package]] name = "numcodecs" -version = "0.15.1" +version = "0.15.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "deprecated" }, { name = "numpy" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/63/fc/bb532969eb8236984ba65e4f0079a7da885b8ac0ce1f0835decbb3938a62/numcodecs-0.15.1.tar.gz", hash = "sha256:eeed77e4d6636641a2cc605fbc6078c7a8f2cc40f3dfa2b3f61e52e6091b04ff", size = 6267275 } +sdist = { url = "https://files.pythonhosted.org/packages/af/00/518589a9a53ff34640cb03dde5b1d6e16a798e0eaf5a8ea2465f4b4bae35/numcodecs-0.15.2.tar.gz", hash = "sha256:6addf2f278d7a22253b1f7b485c3f144bda395adbd6842a0e01ae0a32356daaa", size = 6279071, upload-time = "2026-10-20T19:26:19.115Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e7/7e/f12fc32d3beedc6a8f1ec69ea0ba72e93cb99c0350feed2cff5d04679bc3/numcodecs-0.15.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b0a9d9cd29a0088220682dda4a9898321f7813ff7802be2bbb545f6e3d2f10ff", size = 1691889 }, - { url = "https://files.pythonhosted.org/packages/81/38/88e40d40288b73c3b3a390ed5614a34b0661d00255bdd4cfb91c32101364/numcodecs-0.15.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a34f0fe5e5f3b837bbedbeb98794a6d4a12eeeef8d4697b523905837900b5e1c", size = 1189149 }, - { url = "https://files.pythonhosted.org/packages/28/7d/7527d9180bc76011d6163c848c9cf02cd28a623c2c66cf543e1e86de7c5e/numcodecs-0.15.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3a09e22140f2c691f7df26303ff8fa2dadcf26d7d0828398c0bc09b69e5efa3", size = 8879163 }, - { url = "https://files.pythonhosted.org/packages/ab/bc/b6c3cde91c754860a3467a8c058dcf0b1a5ca14d82b1c5397c700cf8b1eb/numcodecs-0.15.1-cp312-cp312-win_amd64.whl", hash = "sha256:daed6066ffcf40082da847d318b5ab6123d69ceb433ba603cb87c323a541a8bc", size = 836785 }, - { url = "https://files.pythonhosted.org/packages/78/57/acbc54b3419e5be65015e47177c76c0a73e037fd3ae2cde5808169194d4d/numcodecs-0.15.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e3d82b70500cf61e8d115faa0d0a76be6ecdc24a16477ee3279d711699ad85f3", size = 1688220 }, - { url = "https://files.pythonhosted.org/packages/b6/56/9863fa6dc679f40a31bea5e9713ee5507a31dcd3ee82ea4b1a9268ce52e8/numcodecs-0.15.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1d471a1829ce52d3f365053a2bd1379e32e369517557c4027ddf5ac0d99c591e", size = 1180294 }, - { url = "https://files.pythonhosted.org/packages/fa/91/d96999b41e3146b6c0ce6bddc5ad85803cb4d743c95394562c2a4bb8cded/numcodecs-0.15.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1dfdea4a67108205edfce99c1cb6cd621343bc7abb7e16a041c966776920e7de", size = 8834323 }, - { url = "https://files.pythonhosted.org/packages/c3/32/233e5ede6568bdb044e6f99aaa9fa39827ff3109c6487fc137315f733586/numcodecs-0.15.1-cp313-cp313-win_amd64.whl", hash = "sha256:a4f7bdb26f1b34423cb56d48e75821223be38040907c9b5954eeb7463e7eb03c", size = 831955 }, + { url = "https://files.pythonhosted.org/packages/64/c8/c481098460834304566956096d0f238bc7affe6431d6644807252ccb74dd/numcodecs-0.15.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:770a82f9f4aad16f9428e07f6ba5326a890dd923ddddb53211a7015cde9edad4", size = 1661800, upload-time = "2026-10-20T19:26:06.881Z" }, + { url = "https://files.pythonhosted.org/packages/ee/59/79deae260da14d871744a6987aa9e402bf5d00ec6c6bd8a764bfb4e9932b/numcodecs-0.15.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fe01c37935d2e31f33336d6fd252b521472fecf6585e7d807644ae5072684cda", size = 1167524, upload-time = "2026-10-20T19:26:08.142Z" }, + { url = "https://files.pythonhosted.org/packages/c6/f4/83fd6bb6619319294da377552b15ccd403792f33aaf3f17d0d985e107032/numcodecs-0.15.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0735bfb42908cc2a563559ef29c069b2ba3c7642779b990e03f768798813f1ba", size = 9030015, upload-time = "2026-10-20T19:26:09.593Z" }, + { url = "https://files.pythonhosted.org/packages/a3/3f/260e6760310edff87a47494bf4cb4343a9e48eebea063c55e9f154930b59/numcodecs-0.15.2-cp312-cp312-win_amd64.whl", hash = "sha256:39a125df58666bf58a5926c5733defaddeebe8ed2db6b1bd646f0712c5f6d8c5", size = 847919, upload-time = "2026-10-20T19:26:11.601Z" }, + { url = "https://files.pythonhosted.org/packages/7c/df/6f5d2936889087b19ac2a9f0386ccb0011f9eccf22bd2b086c77a34d199e/numcodecs-0.15.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:6bdab7226fd0985672e9dd887ca5331baea94a6f94c4b40c55879a80dd2a6de1", size = 1658528, upload-time = "2026-10-20T19:26:13.008Z" }, + { url = "https://files.pythonhosted.org/packages/85/6b/6ef3129928164ac7b18efbe064c48dc3d4420326641e47577608775f544c/numcodecs-0.15.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3a5f2c16ad86a3ec5ba5722c355ed873de8d2a2603265a611ed11881e354f600", size = 1164301, upload-time = "2026-10-20T19:26:14.272Z" }, + { url = "https://files.pythonhosted.org/packages/02/d7/ffafab0532f62b02cbc90c3ad9c3a58921770b0d0e6a18a1028c51d4d6f9/numcodecs-0.15.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc93eb4f34eab02074b18f3cee698d36e0fde3cd5c6e2f8c56bdedd792fcc155", size = 8976354, upload-time = "2026-10-20T19:26:15.773Z" }, + { url = "https://files.pythonhosted.org/packages/8b/ff/904fb9a49fd78801d8f57c19f2193785e8dc242c0f077baf7949f65384a7/numcodecs-0.15.2-cp313-cp313-win_amd64.whl", hash = "sha256:b1c684e0c2113a06cf29263a4311c6f86c710ece72d0729a355bbdb2220e2328", size = 843902, upload-time = "2026-10-20T19:26:17.447Z" }, ] [[package]] name = "numpy" -version = "2.4.6" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d0/ad/fed0499ce6a338d2a03ebae59cd15093910c8875328855781952abf6c2fe/numpy-2.4.6.tar.gz", hash = "sha256:f3a3570c4a2a16746ac2c31a7c7c7b0c186b95ce902e33db6f28094ed7387dda", size = 20735807 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/95/2a/3d7b5ac8aac24feaf9ad7ed58f45b0bbc06d37e4338ae84c9f2298b570f9/numpy-2.4.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:001fbb8e08d942dd57599e781f2472269ee7f2755fae407b4f67b2f0b17da3f1", size = 16689119 }, - { url = "https://files.pythonhosted.org/packages/ea/12/92c4c131527599e8288d6918e888d88726f84d805d784b771f32408aeaef/numpy-2.4.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ebfb099f8dcf083deef3ac1ca4c1503f387cf76296fcb3816b66f5ecb5f54fdb", size = 14699246 }, - { url = "https://files.pythonhosted.org/packages/ad/fe/c0a6b7b2ca128a8fb228575147073b660656734b8ebe4d76c8fd748dcc79/numpy-2.4.6-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:3213d622a0283a39a93d188f3cf72b26862df52fbb4ca3697f51705016523d41", size = 5204410 }, - { url = "https://files.pythonhosted.org/packages/f3/d4/9770d14ba719432bb90a421bfd443872ed0f70f7264b64bec12ea363d5fd/numpy-2.4.6-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:357cc07a6d7b0b182ff02249616a03742827ebb1277546b5c7cd7f7620a45698", size = 6551240 }, - { url = "https://files.pythonhosted.org/packages/c9/c6/50a46a6205feba2343f1d6d17438107c5dc491ed1c736e6ea68689fd906b/numpy-2.4.6-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5f9fb9157b4ce2971008323afe46053787b526ef624fea915b261468a8421a0f", size = 15671012 }, - { url = "https://files.pythonhosted.org/packages/99/60/14115e6364fa676c5397c2ad3004e527e9aa487abf5d0706ec81bbd08529/numpy-2.4.6-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:90f9849678c75fe7afa2d348ac842c168b0a4d3d61919687216dfc547976d853", size = 16645538 }, - { url = "https://files.pythonhosted.org/packages/ae/c5/693cbe59e57db94d2231fa519ca3978dc9e19da5a8f088588f5c6e947ff2/numpy-2.4.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c1a2af6c6ef86344a6b0db6b97834208bf598db514f2b155042439b62605601a", size = 17020706 }, - { url = "https://files.pythonhosted.org/packages/ef/fc/85b7c4eff9b4966ade25c2273cf7e7012e92366c032058653934b37de044/numpy-2.4.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e5805d5a22fd19c8ccff10a9561f9df94436b0545619ea579db2d3c35294bce2", size = 18368541 }, - { url = "https://files.pythonhosted.org/packages/f6/81/e1b27545deedce7f4a0b348618c6b62d74e36a4dc9ccd42f3eb2f85eee32/numpy-2.4.6-cp312-cp312-win32.whl", hash = "sha256:e3eeb0aabd6bd5ce64faae67e9935203a6991b4bc2a485a767fbafb2c5125f45", size = 5962825 }, - { url = "https://files.pythonhosted.org/packages/ab/ca/feab00bd44aa5fe1ad2c18f08b4d3bb92e26484b0b1d1443897809ed528c/numpy-2.4.6-cp312-cp312-win_amd64.whl", hash = "sha256:d8e8286dd7cea7895157318d1b91cdacac64c479f3cbc8dce548331728484751", size = 12321687 }, - { url = "https://files.pythonhosted.org/packages/63/cf/5a6d34850a39d1093558564f77ee8e8e0bee5061151b8f05a55711001ec7/numpy-2.4.6-cp312-cp312-win_arm64.whl", hash = "sha256:4081eb135ac24158bd51cdfbef16f1c64df7063b1143f24731387137c092bec8", size = 10221482 }, - { url = "https://files.pythonhosted.org/packages/fb/82/bdab26d7438c6791ca31b7c024ca37c1eab8b726ba236129005cd4a06e45/numpy-2.4.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:511dbaf848decaaaf4b4ca48032619fb3138710c4bf7da7617765edad1ef96b0", size = 16684648 }, - { url = "https://files.pythonhosted.org/packages/1b/30/a80189bcc7f5e4258b3fbc3968d909d1756f54d023299ecc39ad6fdb9ef8/numpy-2.4.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bf162abab1c1a736333192707cef898e735a5ca00f38f27eeedf44b39d9e85eb", size = 14693902 }, - { url = "https://files.pythonhosted.org/packages/97/12/70b5d0d7c15e1ebb8a6a84a8caa1d19e181d84fb58bb6d70aca29099dec1/numpy-2.4.6-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:043191bfa8eab18c776647b62723ac9dddece59743b13f49b2016094129c2b3f", size = 5198992 }, - { url = "https://files.pythonhosted.org/packages/ba/8c/ebd2a8f8a83541f8d38cc5667e8c2b69cecfd30da6e45693e8158857d44b/numpy-2.4.6-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:6180d8b35af935aed8ece3a85e0a43f87393ae0ac87c8d2c8bd2c993f7270ef3", size = 6546944 }, - { url = "https://files.pythonhosted.org/packages/bb/c5/7b863a97a91671a0338f4253bd3b5a3d3852f0692dae91711c9f4a10e787/numpy-2.4.6-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:72fbe16c6fac95aedf5937fa873445cec2110be35d8a4e9433d7501fd98dae6b", size = 15669392 }, - { url = "https://files.pythonhosted.org/packages/a5/9d/3584b9984ca4c047aea75214ce1a4c4c73d849bd71b604264b7f5653f8a8/numpy-2.4.6-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a7830bab239b79cda9c08c2da014761cafb48da6150e1da17ac06283f43b6089", size = 16633220 }, - { url = "https://files.pythonhosted.org/packages/05/ae/7c67fba23bd98caec7c99261f3a16072ade14813486b0282cb29846de832/numpy-2.4.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ef4aea96ce4d3b074422cb4f2f64e216bf9e213004bb58ecfdf50ea02ea8eb9a", size = 17020800 }, - { url = "https://files.pythonhosted.org/packages/d9/5d/3b6725cb31d983c5e66916f5d36f6d7e5521129e4c4404d64f918292a5b6/numpy-2.4.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:dfa20cc6ca228e6b155b11da03825975ce66aea520985dbbddf0f2a5a495c605", size = 18357600 }, - { url = "https://files.pythonhosted.org/packages/f7/da/2ccc6c2fe8898dee01d90c75c5f5f914a23daf99e3e0f59516a08760c8b5/numpy-2.4.6-cp313-cp313-win32.whl", hash = "sha256:56b39e5e0622a09a25bf5baf62f4bcf0cb8a41ae6e2819cf49bbc5a74c083f91", size = 5961134 }, - { url = "https://files.pythonhosted.org/packages/b5/cd/9cc4dc876fb065d5c220aae4d5e14826b2715331bb7618ce1fb07a679d99/numpy-2.4.6-cp313-cp313-win_amd64.whl", hash = "sha256:c4fc99836233ea196540b17ab0983aff60ed07941751930f5f4d05bc3b3b7359", size = 12318598 }, - { url = "https://files.pythonhosted.org/packages/39/1e/c0bcba1f8694116485fe28fd1be698c278fcda4141c5b0e53a2aed8b12a8/numpy-2.4.6-cp313-cp313-win_arm64.whl", hash = "sha256:a7c711e21628b52034bb5ab8d1bce291f752fcc5e92accc615778acee1ff4778", size = 10222272 }, - { url = "https://files.pythonhosted.org/packages/63/6d/cc5619247c8f4204e507f5883528372e4ac4bb189e579fb859a12e480b1f/numpy-2.4.6-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:112b06a867b235ef466ed3508ddf0238050df9c727cafb5301ac385b899189a1", size = 14821197 }, - { url = "https://files.pythonhosted.org/packages/00/58/f1c39161c87d9e9bed660f1ed4bafc0e403d5ec9650b6dd77aead07d489b/numpy-2.4.6-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:eaf7fa2de5c0be8ae6ff8e9bea2ccd725e980541244521d8d4b5f3354a27babe", size = 5326287 }, - { url = "https://files.pythonhosted.org/packages/af/57/3917ab0fd97f271a8694513581b8a36c655f111c446852c302f04ccdb6fc/numpy-2.4.6-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:7265a2f3d436e54ef9f2b52b5c937e6be778781bd97a590319d7348f1c1ca997", size = 6646763 }, - { url = "https://files.pythonhosted.org/packages/eb/0f/037e64c494b67581ae18193d770adef354c41f3f2c8ebf865602d949bf8f/numpy-2.4.6-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f74a575920ab21fe304421a3fc28793d82e299cae9eccb37084e9fc7f3617c20", size = 15728070 }, - { url = "https://files.pythonhosted.org/packages/21/a6/5d2bae9c9542eb4df16dc9c46dc79c186e9bad53805dfa5399a6023c6db0/numpy-2.4.6-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ede83e07a75dd06bc501566c1eca2afc0d61677c1472ac9ad93fdee6e638a48d", size = 16681752 }, - { url = "https://files.pythonhosted.org/packages/92/14/23d1dfb410ae362cd59ce53e936b1513d545eb40db3949ced632e19a459e/numpy-2.4.6-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:68bb27509ac1b9a3443094260f6326150663b06abe40b73a2f81160623da5b67", size = 17086024 }, - { url = "https://files.pythonhosted.org/packages/4b/6e/23595a2c642cdf3bc567877064bdd7f91c8b0038a4453cf2daf7248eafe9/numpy-2.4.6-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:a0df0043bdb289bde1f62da130d20df23d58b45429f752bc7a8fc5325a225ecd", size = 18403398 }, - { url = "https://files.pythonhosted.org/packages/8a/90/0ac3bc947217e66dec77e7cbc6a1979d1af70b6461b82f620d3bccd5e4c8/numpy-2.4.6-cp313-cp313t-win32.whl", hash = "sha256:29a287e0cf63ff528da061de6b9f64a4618da591ca1046aafc54062e40ca7eab", size = 6084971 }, - { url = "https://files.pythonhosted.org/packages/77/71/5673e351671a1d2bd6063b91b44f70c0affea7d1516fa7a6572941ba4aa1/numpy-2.4.6-cp313-cp313t-win_amd64.whl", hash = "sha256:25c692919ac5a01f170a3bfcd62d745b24fd095c353d50812637d6fcab442e75", size = 12458532 }, - { url = "https://files.pythonhosted.org/packages/3f/88/19d3503c5046e688f049274b27a3ef3d771152fa80d3ba3d01a3dff61abe/numpy-2.4.6-cp313-cp313t-win_arm64.whl", hash = "sha256:1e978ec1e8bd0e0e4de6bb75de9d30cbb74db6b6a2bb727618613703ca0167dd", size = 10291881 }, - { url = "https://files.pythonhosted.org/packages/f8/91/3ab2044d05fd16d343c5ac2e69b127f1b2854040dd20b193257c78028bd3/numpy-2.4.6-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:06ca2f61ec4385a07a6977c55ba998a4466c123642b4a32694d3128fce18c079", size = 16683458 }, - { url = "https://files.pythonhosted.org/packages/8e/62/764ce66fa4147ae6d73071a3abf804ffe606f174618697c571acdf26a7c9/numpy-2.4.6-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:38efbc8de75c7a0fc1ac190162d892787f3f47b57cc291231aafee36b80982b7", size = 14704559 }, - { url = "https://files.pythonhosted.org/packages/60/61/23f27c172f022e04025b7dc2367f4d63c1a398120607ec896228649a6f48/numpy-2.4.6-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:d581b735e177fdcdce6fed8e7e8880a3fb6ee4e3653a3ac6af01c6f4c03effc5", size = 5209716 }, - { url = "https://files.pythonhosted.org/packages/03/71/21cf70dc6ea3e3acb95fc53a265b2fc248b981f0194ceb5b475271b8809d/numpy-2.4.6-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:0a041d3d761dc3c35cc56ce0351506a02bcbc25f7b169f652435141a17db9096", size = 6543947 }, - { url = "https://files.pythonhosted.org/packages/d5/91/64288395ee1799bd2e0b04a305dce9666da90c961e1f3fe982a05ee1c036/numpy-2.4.6-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:40fdc1ae7125e518ea98e53e69a4ebc27e1fd50510c47b7ea130cf21e5e1d42b", size = 15685197 }, - { url = "https://files.pythonhosted.org/packages/f3/eb/ebffaa97dc55502df69584a8f0dcf07f69a3e0b3e2323670a2722db9aa39/numpy-2.4.6-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a2c306dea656c12c68f51f4cea133cbe78ca7435eb28c735eac1d3ebe73be6e8", size = 16638245 }, - { url = "https://files.pythonhosted.org/packages/b8/0b/54f9da33128d7e350fab89c7455902eeae70349ee52bddb448dc4a576f45/numpy-2.4.6-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:33111801a01c12a8a1e3721f0a9232f8cfc8ae2c6b7098167e6f623c6073f402", size = 17036587 }, - { url = "https://files.pythonhosted.org/packages/b6/f0/fdebc1052db1cc37c64beb22072d67cd6d1c71adca1299f53dec2b5e20d3/numpy-2.4.6-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:ae506e6902902557576a26ff33eda8695e7ecb3cb36c3b573a0765dee114ebdb", size = 18363226 }, - { url = "https://files.pythonhosted.org/packages/aa/b4/298628d98c72b57e57f7165ae6a481a1deaf6f3c28262a6e4c739c275930/numpy-2.4.6-cp314-cp314-win32.whl", hash = "sha256:aaf159caa35993cb1f56fb9b8e4610d35758e7ca005412eb1daa856a78c9c4b1", size = 6010196 }, - { url = "https://files.pythonhosted.org/packages/df/ac/46de6dda46478f7942f839e094970be2d4a861e005c4b3bf07c92e291a09/numpy-2.4.6-cp314-cp314-win_amd64.whl", hash = "sha256:b507f5c4c1d508876d1819b6bf9a49d365b96320b5d4993426b33a23ca4b8261", size = 12450334 }, - { url = "https://files.pythonhosted.org/packages/78/92/b8b798ac784102c0da830d2257d59358e3d3d90d1e2b3f2575dad976c5cf/numpy-2.4.6-cp314-cp314-win_arm64.whl", hash = "sha256:6f41ae150c4e32db4f3310cdaf64b1593a03dbabe29eec77fc9b50fe64061df6", size = 10495678 }, - { url = "https://files.pythonhosted.org/packages/30/34/ec28d1aa8115971537c01469ab2011ee96827930f0a124de1000cc2a7ed7/numpy-2.4.6-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ece3d2cfe132e7d51f44a832b303895e6f2d499c5e74dfbdb06ee246147a304a", size = 14823672 }, - { url = "https://files.pythonhosted.org/packages/16/bd/f6d1fede4e54e8042a7ff97bb495510f3c220f94bcd9e8b228e87c92cc0d/numpy-2.4.6-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:e3e5193ef5a3dc73bceee50f7fdc2c90dbb76c42df8d8fae3d1067a583df579e", size = 5328731 }, - { url = "https://files.pythonhosted.org/packages/f4/f0/e105b9e2fd728a9910103884decd6951d9dd73896b914a98d9a231de02ee/numpy-2.4.6-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:17f9ade344e7d9b464a084d69bcf18fc691cb1db67c62ed80820bf4926d78f0e", size = 6649805 }, - { url = "https://files.pythonhosted.org/packages/82/dd/1206a7ca6ab15e3f02069707ca96222e202af681bb73756da7527f3cb837/numpy-2.4.6-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9cd5ffd25db4e7ba6a375693b3fc0fc1791ec636c17db3720da19bde7180ec43", size = 15730496 }, - { url = "https://files.pythonhosted.org/packages/51/e7/38d3ea825dcab85a591734decb2f6c67caa7c8367d374df1a1c3842f9b07/numpy-2.4.6-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7d92c3819208a60205a12a245c91ad70cb0a85336659b19b834205573ac8456e", size = 16679616 }, - { url = "https://files.pythonhosted.org/packages/93/b7/caabfdf53edf663e0b4eb74d7d405d83baef09eb5e83bcd32d601d72b93e/numpy-2.4.6-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e85b752a1e912b70eaad4fafbd4d1238007ab221de2009b9a2f5ae7461239895", size = 17085145 }, - { url = "https://files.pythonhosted.org/packages/f9/45/68d7c33a6bcf3e5aa3bdbd57a367e6f615286dfd6482f97e8ffeb734306e/numpy-2.4.6-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:29cb7f67d10b479ff07c17d33e39f78c07f71c40ef30d63c153d340e96cd3fb4", size = 18403813 }, - { url = "https://files.pythonhosted.org/packages/9c/50/0753655aa844c99cd9e018aacf76f130f1bd81d881bb74bc0aef5d73a8ba/numpy-2.4.6-cp314-cp314t-win32.whl", hash = "sha256:260a5d70215b61ab4fadf5c7baacd64821842975eea312125ed3c39a6391b063", size = 6156982 }, - { url = "https://files.pythonhosted.org/packages/b2/d4/7c67becf668f973cb490cec3e98dfd799d866f9c989a54d355672cfa0db6/numpy-2.4.6-cp314-cp314t-win_amd64.whl", hash = "sha256:81a1cca95ed5bb92aa8b10dd2cdc9a0d3853a50fad926c28b5d7e8ea54389627", size = 12638908 }, - { url = "https://files.pythonhosted.org/packages/43/bb/e1c71a4295b1b1d1393d50dbb4f2a36283c6859d9d3892e84f00ec5a91d5/numpy-2.4.6-cp314-cp314t-win_arm64.whl", hash = "sha256:0c9136e14ed34a9e343a31c533d78a9813a69a3148332bce5e9821cb2f996e66", size = 10565867 }, +version = "2.5.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/95/b0/c7453d0b6e2073c3264468b106ee1563750cecc910965e67357e3698c83e/numpy-2.5.4.tar.gz", hash = "sha256:9a94cf751c9ad8ebaa835bcd3d40dacf8534ad086b88c38029b65123c7999d2a", size = 20866315, upload-time = "2026-10-10T20:05:31.422Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d0/97/ba2074e92b7befea137e77ea8471e768bbd87c339b7e8c9f5a931949f977/numpy-2.5.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c6342f54c67093cae5c0227eb0eb772fdb79f2a2c37a6eb278b9909ee06aa356", size = 17001609, upload-time = "2026-10-10T20:02:40.843Z" }, + { url = "https://files.pythonhosted.org/packages/ff/a9/bac826765e971d8e16e2064e9ac7525fd69b40ac17c905033a7f5442023f/numpy-2.5.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b11e8fda06a7d69f15ebf542660b74466c2e51094800c1fb794f47ad4faeef17", size = 12015718, upload-time = "2026-10-10T20:02:43.45Z" }, + { url = "https://files.pythonhosted.org/packages/31/2f/5ea3570fcb8ccd0882bea99436a513b2c85dad8f774a2057849130a8fb99/numpy-2.5.4-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:9cb18a327b49c5c337f972b03682f6a49855525faaf3c0d3e9c96cd0fd8880a8", size = 5451717, upload-time = "2026-10-10T20:02:46.169Z" }, + { url = "https://files.pythonhosted.org/packages/34/f2/b4fc1bafca03868220b5eaf729d2f21ebd7d7b151c0f9e144fe212bbca35/numpy-2.5.4-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:aec3fc4b32ff82421274f5d205c559c51c840c8df66a78efd7f3612dd005a26a", size = 6789926, upload-time = "2026-10-10T20:02:48.139Z" }, + { url = "https://files.pythonhosted.org/packages/dc/96/8319e2457ae4333c62c815c7006b869a4f60985c1e01024c2f8c6c040fe5/numpy-2.5.4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fe4d21ab149f15e4e6043dfb0de87e6e5f34ac176cde83060e9802981fca2ac2", size = 15695312, upload-time = "2026-10-10T20:02:50.115Z" }, + { url = "https://files.pythonhosted.org/packages/43/a3/c799c62e19c337e6d3770b08e475887fb30ce8477d3c09efca6b2f0228a6/numpy-2.5.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fbde6962867ee75b48b0ee29b2b9372ec5d617799dbaf38e82dc0596f2f7738a", size = 16727283, upload-time = "2026-10-10T20:02:53.186Z" }, + { url = "https://files.pythonhosted.org/packages/39/6b/3604e53fb00314d0dc1b94ec9125a1484f649c0a17480b1f0f0c7a9d6250/numpy-2.5.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:381a7a3d2e65e64c0ec302795ab9dc12bb1e73f150904699c153716177eebdaf", size = 17047890, upload-time = "2026-10-10T20:02:56.038Z" }, + { url = "https://files.pythonhosted.org/packages/4a/7a/e8b58a5289a0d464c52885de47c35a935cdd70c03a4c3ab94a5126416dd0/numpy-2.5.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b89d0aaae2fe498c648f4c4795c084db535af5bd98ef942b2a3681fb74ce8645", size = 18485839, upload-time = "2026-10-10T20:02:59.018Z" }, + { url = "https://files.pythonhosted.org/packages/6f/c9/47094f597015009f310b8c900def59065ef1ff5a6fe7b51fc65ec58ec2c6/numpy-2.5.4-cp312-cp312-win32.whl", hash = "sha256:9968ab7e49b93ac6e1c3b2239732183152c9150f16308d30b66a372cffe3483c", size = 6138936, upload-time = "2026-10-10T20:03:01.626Z" }, + { url = "https://files.pythonhosted.org/packages/12/33/fefe62073dc8acfd0f2b9ed7c003af2f50aa61555e113e6db02b8f79f145/numpy-2.5.4-cp312-cp312-win_amd64.whl", hash = "sha256:a7b1b6353e36a7e50de2973a38d705c88ee93adcf120673cee7f45a4a3fa223a", size = 12573091, upload-time = "2026-10-10T20:03:04.349Z" }, + { url = "https://files.pythonhosted.org/packages/1a/07/161270b0c2eec56e4c905f6d6d22e1b836887b2cb189d3f5820aa588e9dd/numpy-2.5.4-cp312-cp312-win_arm64.whl", hash = "sha256:aa1cce2ff3f8d953de38b76bf44602caeb69f101430208f64a10067f7cb4b1d3", size = 10521630, upload-time = "2026-10-10T20:03:06.767Z" }, + { url = "https://files.pythonhosted.org/packages/67/14/1c3ee0118a8fce08565a5d8482631608426a33af10a01077fada5dc7c119/numpy-2.5.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2377da2dd3ba2c1200956acbab2a358c83b8e1f8531191672d1cd6ad83250d53", size = 16997729, upload-time = "2026-10-10T20:03:09.291Z" }, + { url = "https://files.pythonhosted.org/packages/83/8c/b0ea9477fb1f0d4484bbc5cba21678cc9969704d8d7f3f158d1db35f8e14/numpy-2.5.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7415db95818b39ec475a5eea54d9e3b6bc83e3912158e46da3438cdce399804d", size = 12009826, upload-time = "2026-10-10T20:03:11.946Z" }, + { url = "https://files.pythonhosted.org/packages/e2/84/6a3d75b3ba3dfe84ac0053450753d1e6d250a8bf80f66474cc46d1fb643f/numpy-2.5.4-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:6d6a71b9d9a97c03633aa12565ef2825ffa036cc1d99cfd50dacf0f128af4fe2", size = 5445803, upload-time = "2026-10-10T20:03:14.329Z" }, + { url = "https://files.pythonhosted.org/packages/61/18/bb993f267ca20b376e07092a16793a5b31ed3138751e9ba480011a14d742/numpy-2.5.4-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:d8200f16437b289a5bb927c6e184eccc3e8389bc0070fea4cd5b9e13c1757959", size = 6786220, upload-time = "2026-10-10T20:03:16.602Z" }, + { url = "https://files.pythonhosted.org/packages/db/b6/135bb0953b61dc21c6cafa14b424ae666944e4899cf140e00c2b322a1a45/numpy-2.5.4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1c2e71b04c6cad90026e544501bbe0ab9290fa8a4d845e7e8c0d124fb429c988", size = 15689178, upload-time = "2026-10-10T20:03:18.721Z" }, + { url = "https://files.pythonhosted.org/packages/da/24/3bd070f3269dc609d8f26b2643f62ef91bb415841c0b294805aaf7fe06da/numpy-2.5.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6ffa07666f8da0eef81d149934a626d0d95fbd6838432a33e66245423a9062c0", size = 16718044, upload-time = "2026-10-10T20:03:21.386Z" }, + { url = "https://files.pythonhosted.org/packages/c7/8e/9d15bd356b0a019c965312b1a3c6a727cac4cae5bc40045fbc12ce4cff9c/numpy-2.5.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:2fa3328f784fc8277fc48026f6cad516f5c561c5d8e2e39b3c9e0c8f23223b34", size = 17048364, upload-time = "2026-10-10T20:03:24.468Z" }, + { url = "https://files.pythonhosted.org/packages/dc/fe/9d5b560db964f15871885f2250795d15945f8699e17ef90c0c2ff4c875b2/numpy-2.5.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b86966fbe4ad7de710422175572bcdc75fdedadfb54bc6fab7deabccddd7780b", size = 18474904, upload-time = "2026-10-10T20:03:27.895Z" }, + { url = "https://files.pythonhosted.org/packages/e9/98/d27552990f1bd611ef3e7466adadc78312ea2df63b83aad47fdc3d3ca8df/numpy-2.5.4-cp313-cp313-win32.whl", hash = "sha256:5258bc06526964be5face2fc6f756857a3f24f21ec3e72ca131337a75b165d6c", size = 6134537, upload-time = "2026-10-10T20:03:30.511Z" }, + { url = "https://files.pythonhosted.org/packages/90/8c/140a40398a66b4471211be1affdb6ed24c486d581bd28d07b7f2fcb69540/numpy-2.5.4-cp313-cp313-win_amd64.whl", hash = "sha256:8b4d2fd2d34e5f8c9235ee787de5631a37a28402b15cb80814df973d2be54129", size = 12566113, upload-time = "2026-10-10T20:03:32.612Z" }, + { url = "https://files.pythonhosted.org/packages/34/52/01d205e5e8ccb27b2b0b141e801f22b830198c979111b0fa44771438d9a9/numpy-2.5.4-cp313-cp313-win_arm64.whl", hash = "sha256:bc39ac66a7a9a3fbd6134fda43136b60ffde99c8f4501e64e0d2b24da137babf", size = 10519523, upload-time = "2026-10-10T20:03:35.163Z" }, + { url = "https://files.pythonhosted.org/packages/99/ba/005cb5edd580d2f84d7ca3206b92dc17d4388e56e6f87ffe8f2762f83139/numpy-2.5.4-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:c668b2f0d651605b58892644b0e302c7157f7159544227758c896982ef384b18", size = 17005499, upload-time = "2026-10-10T20:03:37.961Z" }, + { url = "https://files.pythonhosted.org/packages/f3/49/fee7587c33ee35f7977f9051d7f2023d4e7246d62710c80f20c2361ea232/numpy-2.5.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ffa6ce09a1c6a08e9667dd9c97aa0b14184e8d18f2a14b78b2a2328c9147f076", size = 12019666, upload-time = "2026-10-10T20:03:40.606Z" }, + { url = "https://files.pythonhosted.org/packages/d5/b2/c6ce165acffceb15a82c07b9cc77d391f86b3f379ba62911908ae5d34b91/numpy-2.5.4-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:956555e0603a4d38019ae6925711cb9dc43195c076a928accf7ea5d50bddfe53", size = 5455617, upload-time = "2026-10-10T20:03:43.138Z" }, + { url = "https://files.pythonhosted.org/packages/77/7f/dd85ce260a669a89be06842cf355d7353a33e6cfbc590fb8ebb947d88dc9/numpy-2.5.4-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:2c2c4afffdeb7920e445028dd71eb932cac3e704792e964bc2a232426d4f1255", size = 6791932, upload-time = "2026-10-10T20:03:44.874Z" }, + { url = "https://files.pythonhosted.org/packages/63/d6/34b0a2b0741386a63025a65a2c09caaaaaad6d0ca95b66cd65c30dd7fcb5/numpy-2.5.4-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4054173604cd8658796053f1f3bc0befb68ec1c0762c57fdad61e199256a8617", size = 15710899, upload-time = "2026-10-10T20:03:46.839Z" }, + { url = "https://files.pythonhosted.org/packages/16/d5/928078d2b28f26829b138b4a6c3980045022fb409f570657a224ae60ef4e/numpy-2.5.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d549420b8858885cea8838a727842249218b9c1da24dd517e25c9c7a948310a3", size = 16721710, upload-time = "2026-10-10T20:03:49.489Z" }, + { url = "https://files.pythonhosted.org/packages/f9/cf/673fd1b8f4cd78eb6320e87ec4c90ac19c095644259e3749853a405c70f4/numpy-2.5.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:823874a507a84af050493b622affde94b6f7c3a0dc22cb2801381bc03b871c00", size = 17066182, upload-time = "2026-10-10T20:03:52.25Z" }, + { url = "https://files.pythonhosted.org/packages/f3/92/a77b5061b1b3e2643928c37976d79ee173e1b171ed158b7a3c61056b41bc/numpy-2.5.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:4e263278bfb5ee6409db8aedbc4cc32973b1b82bc1e8d3c668551d04d83a7e37", size = 18480315, upload-time = "2026-10-10T20:03:55.39Z" }, + { url = "https://files.pythonhosted.org/packages/bb/1d/1486ef3d3fb2279fd93c4c43c1bbbf1ca389a19816696684409f71babaab/numpy-2.5.4-cp314-cp314-win32.whl", hash = "sha256:cfd73180400042a7c532d30c5e287bdd03c59ff9ee1b4c0316af0539e29dfe23", size = 6185739, upload-time = "2026-10-10T20:03:58.186Z" }, + { url = "https://files.pythonhosted.org/packages/52/9a/e1e512ebc948d5b9dd33b08736760f0ebbed2848fd4eda1f553088a6dcee/numpy-2.5.4-cp314-cp314-win_amd64.whl", hash = "sha256:2ca144f15135b6212a5c47b1e2aeca6e412f102f95a2d5d88d8aec77eb255de3", size = 12703552, upload-time = "2026-10-10T20:04:00.28Z" }, + { url = "https://files.pythonhosted.org/packages/2c/05/de709a982d7bbcd688a3fad71f002e9ff80c2db39e03ee726609b610f1d1/numpy-2.5.4-cp314-cp314-win_arm64.whl", hash = "sha256:468397ba3c64427474706e5c9123fe266395496714dc684294eac75cd4930d1e", size = 10803901, upload-time = "2026-10-10T20:04:02.659Z" }, + { url = "https://files.pythonhosted.org/packages/13/34/083570ada3bb2a30fbe5d77c8c6fef9141144a15d33e6f793a67e9749ab8/numpy-2.5.4-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1ef3aa6d7e29bb13677323114280b05acc57607fa2300e66432d665d5418a162", size = 12138695, upload-time = "2026-10-10T20:04:05.012Z" }, + { url = "https://files.pythonhosted.org/packages/94/06/1f9c24db48eef0c2d1207e3b11fffb0478e39dfd8c1e1be7476936885eed/numpy-2.5.4-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:98b053943e5a0474ec0da309d2cb9d3f18ea57f8a2067c2ab7b5f763d1068380", size = 5574615, upload-time = "2026-10-10T20:04:07.316Z" }, + { url = "https://files.pythonhosted.org/packages/da/0f/593fba2e1560e949123bc7d2fc48b5893d56e58cd4bd5a273d2fbf60b220/numpy-2.5.4-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:b64a85f40e154983960a4167d4c1d57a50c7f109b3d3264a3a984154e90a8454", size = 6889383, upload-time = "2026-10-10T20:04:09.918Z" }, + { url = "https://files.pythonhosted.org/packages/eb/9f/b799dfdce4e05e80ed4bc815c71ff343a11533b2c0ffc221cae8538cda63/numpy-2.5.4-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a813ed7719bf45463c51779e6a98d0385fe905e48447526938a4b8337333d551", size = 15753763, upload-time = "2026-10-10T20:04:12.278Z" }, + { url = "https://files.pythonhosted.org/packages/34/88/16c5f12f86f5ad2817c4d103205131fc6c8acb3d1878af05a1a4f23ec859/numpy-2.5.4-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c9b80cdf5cedba0e90d93fa5f9a333c4d65bd545cd669b71bb97ce2b703c9d73", size = 16757212, upload-time = "2026-10-10T20:04:14.799Z" }, + { url = "https://files.pythonhosted.org/packages/ff/4f/a1fe40e18a898e6a5089f4f0d891f0a493eb0574d5b34458f0fbe5aa3e5c/numpy-2.5.4-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:2199ed071f460487c8db2c0e5c0b564494190edb4772fe80f9aad88b2604def5", size = 17116471, upload-time = "2026-10-10T20:04:17.58Z" }, + { url = "https://files.pythonhosted.org/packages/aa/46/e923a11c78e65c1722e7aaad817c06bd591324174b9d28ce5d31eee4d432/numpy-2.5.4-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:64f9c9878c1938476365e11ccfb6b770f3b9e5f045ccddc514235041e6959365", size = 18524063, upload-time = "2026-10-10T20:04:20.365Z" }, + { url = "https://files.pythonhosted.org/packages/5a/fa/84ab064514440c1f64a1b21088f2c82756defdd05e07c75ab233899565b2/numpy-2.5.4-cp314-cp314t-win32.whl", hash = "sha256:64d1c8ac28a4077cf987e0a71a7a0ef7e2df70722f07f0baa42dbb7eb6938647", size = 6340926, upload-time = "2026-10-10T20:04:22.865Z" }, + { url = "https://files.pythonhosted.org/packages/7e/7e/6cd886876f435b10685db9b9f7eeb70356f99e052116f4e5f11c5792c714/numpy-2.5.4-cp314-cp314t-win_amd64.whl", hash = "sha256:067374eb538c34c745436365cf7b0112595c1d326f21ce4ff340f61230239fbb", size = 12901584, upload-time = "2026-10-10T20:04:24.99Z" }, + { url = "https://files.pythonhosted.org/packages/38/1b/3c1684f6a06f7307f2335fca6e486cb162847fb97e91d65f8eb5cabad213/numpy-2.5.4-cp314-cp314t-win_arm64.whl", hash = "sha256:e94aef2c639da4a960ad0db8e06471208d8589974953d78b61d345b4eb99e394", size = 10891152, upload-time = "2026-10-10T20:04:27.52Z" }, + { url = "https://files.pythonhosted.org/packages/08/f4/3224deff3af2bef6bc0b175369698d8cb348f3d91d9bb0286cd5c9eae9e0/numpy-2.5.4-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:8dddfbee2e68d26d0d7d7d9cb247b1fd4409241cce32d815a11d97ec2cfde179", size = 17003231, upload-time = "2026-10-10T20:04:30.021Z" }, + { url = "https://files.pythonhosted.org/packages/be/75/fee0b8c6d94b44b2fdfae74f6a4ad5a138739589a8aebaec28ce4e713ed5/numpy-2.5.4-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:81e3420b27048b65eb14c3acf0c174a8cb0e023277716110347d2dcb26026dad", size = 12018300, upload-time = "2026-10-10T20:04:32.519Z" }, + { url = "https://files.pythonhosted.org/packages/47/c0/d0b335a499a04b65f532c3f034346ef390f81299060f928492dabc1e0272/numpy-2.5.4-cp315-cp315-macosx_14_0_arm64.whl", hash = "sha256:0b4724a19de67bea8cfc4970798efa78bcbbe2ac2613cfac16721a42d44de2a5", size = 5454250, upload-time = "2026-10-10T20:04:34.943Z" }, + { url = "https://files.pythonhosted.org/packages/5a/0e/461b3783c03d668052e6a21b01b673db6ffcb7831fd32d9aa5368c1cd426/numpy-2.5.4-cp315-cp315-macosx_14_0_x86_64.whl", hash = "sha256:2132418bf8dd124a427ca9e6a1daf9ee1a87185344c95119ceae868b99466da1", size = 6789644, upload-time = "2026-10-10T20:04:37.258Z" }, + { url = "https://files.pythonhosted.org/packages/b3/02/5dad269b02166965a7b4ca14adaddd75dbee0de42435bfecf561b84ba5a6/numpy-2.5.4-cp315-cp315-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:325518d4245b9e331387702aa58c2ce1dc4cdcbb41dfb4ccd5dcbc7e08db1266", size = 15704353, upload-time = "2026-10-10T20:04:39.616Z" }, + { url = "https://files.pythonhosted.org/packages/93/3a/01360c8036822ed9f7aa32189a77d1476567ec1e8e1383522389e4faac45/numpy-2.5.4-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:56733449d2544178beaa4545cee357370440cf056c197f9c7bfb19dbfdd0e86d", size = 16718648, upload-time = "2026-10-10T20:04:42.383Z" }, + { url = "https://files.pythonhosted.org/packages/7d/5c/b863a2c093c4d6f21a597fcaf24ead0835c09ab16a8312d5a5a8868af683/numpy-2.5.4-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:5ec3753760c1a6d8bb91200666e545c3a9728e6269dfb5d6ce02340996698aa3", size = 17059053, upload-time = "2026-10-10T20:04:44.976Z" }, + { url = "https://files.pythonhosted.org/packages/0a/60/ced4f57f9a1258a0af74f17cb0b0c2700b5c67cd6678823c803b263e4df3/numpy-2.5.4-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:b1185012870173de7ae33d370bd45b1cf5baee747ea4b97036b65f4e93016877", size = 18477406, upload-time = "2026-10-10T20:04:47.863Z" }, + { url = "https://files.pythonhosted.org/packages/f9/bd/0ef22dafaafcc7d4bb3ca26b8d2afbd55dedad8eaba99a8c864e1997456f/numpy-2.5.4-cp315-cp315-win32.whl", hash = "sha256:298eca75243f2cbbfdb460560b9fb2a1792a33cf2ab4286efd43d92e8d3df508", size = 6185133, upload-time = "2026-10-10T20:04:50.467Z" }, + { url = "https://files.pythonhosted.org/packages/50/bc/d2651b155ecc608a77e6f4d15495c11f14f19bb98f8bf0c5b0d38f86dda1/numpy-2.5.4-cp315-cp315-win_amd64.whl", hash = "sha256:332f3378fe077dd850e677ec01bdcc4f22368fb5d50ef10b2c79230b1bf5a592", size = 12703085, upload-time = "2026-10-10T20:04:52.63Z" }, + { url = "https://files.pythonhosted.org/packages/dc/d2/45e404f8abb26fb9eda12b94012936873e827b1be76f2ee7890be128312e/numpy-2.5.4-cp315-cp315-win_arm64.whl", hash = "sha256:d4cccbbc78717966f764cd3af4fb70276fa01fc7a2688af11c78901fa5c04f05", size = 10801451, upload-time = "2026-10-10T20:04:55.677Z" }, + { url = "https://files.pythonhosted.org/packages/c6/c3/2ae14e09cfdb67dc187a342e15308a21c15bf4d2071f8079e6aee5fe56dc/numpy-2.5.4-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:950ea81d57ef070665581b6e1b5f6a029306423cd1739c5b95fe78aa30db6b9d", size = 17097121, upload-time = "2026-10-10T20:04:58.403Z" }, + { url = "https://files.pythonhosted.org/packages/f5/cf/305ae624ef8a039414317224abe9ec9c2fe7ea3c2e1cf204d43ff6b2ffb9/numpy-2.5.4-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:c05ede731b03fb1b7591faca9389ade3267d2bddf1ad8882bb3f2cc5e101694f", size = 12135439, upload-time = "2026-10-10T20:05:01.65Z" }, + { url = "https://files.pythonhosted.org/packages/a9/a8/f75c63813aef95827bb2c0d13b12803016853056e8792c280058cdbfe783/numpy-2.5.4-cp315-cp315t-macosx_14_0_arm64.whl", hash = "sha256:5fbf7141bbfd63aea22f435c9062a032b9ea0082fe9845dad7f021d3f1234e71", size = 5571451, upload-time = "2026-10-10T20:05:04.135Z" }, + { url = "https://files.pythonhosted.org/packages/6f/0f/f17763f983868b5c49b4101ebd7e00760bd1769478a6bb6a8de6e085bbac/numpy-2.5.4-cp315-cp315t-macosx_14_0_x86_64.whl", hash = "sha256:3573cd22564692a5b899ec344e5d5b9cc4576f2985b96f22af3564ed54f2710f", size = 6883356, upload-time = "2026-10-10T20:05:06.249Z" }, + { url = "https://files.pythonhosted.org/packages/67/a7/8af04c5a79e047996cfa38854dcfbececdd0343a7c933a46fdd03ef6f5da/numpy-2.5.4-cp315-cp315t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6c109eac9cd439193678f69d70733c1108487546ca8eafc107b510ae10c1aecd", size = 15750991, upload-time = "2026-10-10T20:05:08.376Z" }, + { url = "https://files.pythonhosted.org/packages/57/7a/648254290d0c504faa8f2d07aa206660c728802c781a6f3fc68ab7cb5d71/numpy-2.5.4-cp315-cp315t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:80d6ef6e8620eb2c2b4c4caad50b5935d6db3cde2d51581b55dcc79e14016d1d", size = 16757675, upload-time = "2026-10-10T20:05:11.393Z" }, + { url = "https://files.pythonhosted.org/packages/b8/fe/4a8c3cdb0c70400cfe4c5bec42d3099a5673802a95064614b33e07b82aa1/numpy-2.5.4-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:77045a4b175bbf5316ec08003880804336c78f92281a1b72222b274ea85ec5ac", size = 17113846, upload-time = "2026-10-10T20:05:14.49Z" }, + { url = "https://files.pythonhosted.org/packages/1b/7e/619692bb67778702c0e9eb2d468568a7573f4e269386ea61aed01ee4e557/numpy-2.5.4-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:0f02a46e49cfb6c73bdb7aea1c0d3461dbae9aba613542b65f657cd3d17b9fab", size = 18522915, upload-time = "2026-10-10T20:05:17.33Z" }, + { url = "https://files.pythonhosted.org/packages/b7/b5/4da41c328788f575838f97a098fe8ca691ebc6f6fd73ad4a262ee40b184d/numpy-2.5.4-cp315-cp315t-win32.whl", hash = "sha256:ad62a416ddcf863bf44bba76fbf6b53366ab0692e294f51cae4b5fbe0d246788", size = 6335804, upload-time = "2026-10-10T20:05:19.921Z" }, + { url = "https://files.pythonhosted.org/packages/98/94/6482ddfa3d312490cb9358f375bf2ad56427dbea8769187158e94d653753/numpy-2.5.4-cp315-cp315t-win_amd64.whl", hash = "sha256:38f47be9f74ab870d2633b5456ae519c43758a8d1fd05342f0ce4ecc034396ee", size = 12890095, upload-time = "2026-10-10T20:05:21.875Z" }, + { url = "https://files.pythonhosted.org/packages/48/7f/c2d1b436b6e7cfebac140c2579a298344b85f2991a2ce5c3615cefb29400/numpy-2.5.4-cp315-cp315t-win_arm64.whl", hash = "sha256:7a14a461d9340f1b46b8648578aed9cdb8b3b018a8fac6c1dde2c9192a01a87f", size = 10883718, upload-time = "2026-10-10T20:05:28.547Z" }, ] [[package]] name = "packaging" -version = "26.2" +version = "26.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d7/f1/e7a6dd94a8d4a5626c03e4e99c87f241ba9e350cd9e6d75123f992427270/packaging-26.2.tar.gz", hash = "sha256:ff452ff5a3e828ce110190feff1178bb1f2ea2281fa2075aadb987c2fb221661", size = 228134 } +sdist = { url = "https://files.pythonhosted.org/packages/7d/fa/3944b40b07da9ce895c0e6303a5ab7d53da063554f534556b134a54d6093/packaging-26.3.tar.gz", hash = "sha256:94edc256424af38762eb31306eed28beb9f0efc50a8837492c9d6fd6004aed79", size = 313412, upload-time = "2026-08-04T18:15:28.737Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl", hash = "sha256:5fc45236b9446107ff2415ce77c807cee2862cb6fac22b8a73826d0693b0980e", size = 100195 }, + { url = "https://files.pythonhosted.org/packages/63/34/ba1c580383c9eada3711951fef0795c80b829a078d72188184bcab9dd527/packaging-26.3-py3-none-any.whl", hash = "sha256:d7193f7c8e4e93f444fde0262bf90af30e16fa0ad0ad44cb553c87339b23cd1c", size = 129956, upload-time = "2026-08-04T18:15:27.159Z" }, ] [[package]] name = "pandas" -version = "3.0.3" +version = "3.1.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy" }, { name = "python-dateutil" }, { name = "tzdata", marker = "sys_platform == 'emscripten' or sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f8/87/4341c6252d1c47b08768c3d25ac487362bf403f0313ddae4a2a26c9b1b4c/pandas-3.0.3.tar.gz", hash = "sha256:696a4a00a2a2a35d4e5deb3fc946641b96c944f02230e4f76137fe35d806c4fc", size = 4651414 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/24/f1/392f8c5bfc16f66a0d2d41561c01627c228fe7ed2a0d056ef11315042570/pandas-3.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fed2ff7fd9779120e388e285fc029bd5cf9490cdd2e4166a9ee22c0e49a9ab09", size = 10357846 }, - { url = "https://files.pythonhosted.org/packages/cf/3d/b16412745651e855f357e5e66930248688378853a6e2698a214e331fba1f/pandas-3.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b168fc218fd80a6cbdbdbc1a97ddc7889ed057d7eb45f50d866ceab5f39904c4", size = 9899550 }, - { url = "https://files.pythonhosted.org/packages/31/a8/fa2535168fffcedf67f4f6de28d2dd903a747ca7c8ea6989451aaeb3a92f/pandas-3.0.3-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0383c72c75cdcca61a9e116e611143902dbfd08bff356829c2f6d1cf40a9ca8c", size = 10412965 }, - { url = "https://files.pythonhosted.org/packages/65/b6/09b01cdbc15224e2850365192d17b7bdebb8bdbd8780ed221fcdf0d9a515/pandas-3.0.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6dc0b3fd2169c9157deed50b4d519553a3655c8c6a96027136d654592be973a9", size = 10894600 }, - { url = "https://files.pythonhosted.org/packages/c9/a4/2eb28f2fccb4ced4a2c79ab2a5dee9ade1ebf44922ebad6fea158c9f95d4/pandas-3.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7e65d5407dc0b394f509699650e4a2ec01c0514f21850f453fa60f3be79a5dbf", size = 11422824 }, - { url = "https://files.pythonhosted.org/packages/f8/45/830bb57f533a4604b355e07edcb8ea18cf88b5f94e5fca92f27052d7c597/pandas-3.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f8894dc474d648fe7b6ff0ca9b0bd73950d19952bc1a6534540762c5d79d305c", size = 11950889 }, - { url = "https://files.pythonhosted.org/packages/b9/c5/fc1b368f303087d20e8c9bf3d6ceb186263cfac0ade735cd938538bea839/pandas-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:c7be265b62cef88e253a941e4698604973736dcfe242fdb5198f0f7bc473cdcc", size = 9755463 }, - { url = "https://files.pythonhosted.org/packages/86/bd/fda8f9705b1b09c6ebe14bfc0fa0e4ec8584d54ea673628f157ff55131af/pandas-3.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:557409bc4178e70ee8d9ddb494798e51ebf6ea59330f6be22c51bab2a7db6c49", size = 9066158 }, - { url = "https://files.pythonhosted.org/packages/c5/90/62d8302883c44308c477e222c3daf7c813a34c8e96985882fbd53d964352/pandas-3.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:67b3b64c11910cfa29f4e94a14d3bff9ee693b6fc76055e7cad549cee0aec5fa", size = 10331071 }, - { url = "https://files.pythonhosted.org/packages/7f/ae/6a6493c783a101f165e4356953ba3c74d6f77f0042fa7d753da9dfbb640c/pandas-3.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:39436b377d56d2a2e52d0395bdbee171f01068e99af5250509aceeb929f765c7", size = 9875690 }, - { url = "https://files.pythonhosted.org/packages/62/7c/5df8e9f56c69a2769fbe9382a5ef8f2658c007e376434e1e2cbb57ad895f/pandas-3.0.3-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d4be06d68f9ddcfc645b87534911da79a8fbffc7573c80e0edcf42a5020624d8", size = 10381634 }, - { url = "https://files.pythonhosted.org/packages/99/68/1237369725aa617bb358263d535803e3053fdbc593513ec5ed9c9896b5b6/pandas-3.0.3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a4eeb6830daf35a71cc09649bd823e2b542dac246cdee9614c6e4bd65028cd6a", size = 10891243 }, - { url = "https://files.pythonhosted.org/packages/25/93/77d108e8af7222b4a503ebde0e30215b1c2e4f8e53a526431890f22d5586/pandas-3.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1928e07221f82db493cd4af1e23c1bfca524a19a4699887975bff68f49a72bfb", size = 11388659 }, - { url = "https://files.pythonhosted.org/packages/d0/bd/eff5b4399f332ac386c853f6cd2bd3fa2ca0061b9f36ecd9c4d7c4265649/pandas-3.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:51b1fe551acb77dac643c6fda86084d8d446c10fe64b06a9cc29c4cc8540e7f2", size = 11942880 }, - { url = "https://files.pythonhosted.org/packages/2c/20/559ace4200982c3887d0b86bfd0d856a2143ef8ddab63cc07934951a964c/pandas-3.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:a82d532a3351d435432cd913edbccaf8b8e01d4dd0e5ced5a8d2e8ecd94c7e44", size = 9757091 }, - { url = "https://files.pythonhosted.org/packages/3a/66/69055a09fe200f29f922a3eeec4804611900b95f52d932ece3393c3c0c19/pandas-3.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:275c14e0fce14a2ec20eee474aecd305478ea3c1e6f6a9d8fe219a165542717e", size = 9057282 }, - { url = "https://files.pythonhosted.org/packages/57/0e/efe801b0e6811e8e650cd21b7f2608e30f08a7067e2bf6e8752b0d56ee3c/pandas-3.0.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:46997386d528eb40376ecd6b033cf4a8a1e5282580f68f43de875b78cba2199d", size = 10767016 }, - { url = "https://files.pythonhosted.org/packages/ea/dc/eb55135a1d5f0f0519f28da1f609a206d2cad1f9c35c32d51e38dd7261ae/pandas-3.0.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:261e308dfb22448384b7580cf719d2f998fe2966c92893c3e77d14008af1f066", size = 10420210 }, - { url = "https://files.pythonhosted.org/packages/c6/3e/b1d5d955ce33ffecb407465a60bc32769d74fcf68224b7ae67ae11d4dea4/pandas-3.0.3-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dd1a5d1def6a46002e964510bdc67c368aa0951df5d1d9f8365336f5a1f490cd", size = 10336126 }, - { url = "https://files.pythonhosted.org/packages/f5/76/a01261711ab60a22d71b862f0de20e4c504bf80457270ad8cb42110f6abc/pandas-3.0.3-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d72828c20c6d6e83e1e22a6a3b47b326b71664112fa9705dcbccfd7a39b62085", size = 10728051 }, - { url = "https://files.pythonhosted.org/packages/e9/21/ea191195e587b18cf682e97f433f81b2d0fbe341380e80a3e0d6e4403c8e/pandas-3.0.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:d26cbe1fcfc12e8fd900e2454163e466b2d3af84f7c75481df7683ffc073d870", size = 11350796 }, - { url = "https://files.pythonhosted.org/packages/64/69/f0eaaf54939f0e8c6768fd06be9af2cef9b36048b96dfb9e1b2c685a807e/pandas-3.0.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:3e91cec1879ada0624fc3dc9953c5cbd60208e59c0db28f540c5d6d47502422f", size = 11799741 }, - { url = "https://files.pythonhosted.org/packages/45/a4/865e0e510cae5fc2194de4db28be638952de942571ba9125934fd9c01d47/pandas-3.0.3-cp313-cp313t-win_amd64.whl", hash = "sha256:08d789b41f87e0905880e293cedf6197ce71fe67cc081358b1e148a491b9bd13", size = 10499958 }, - { url = "https://files.pythonhosted.org/packages/86/54/effdcc3c0ff7a08037889200e148ebe94c16c4f653be078c7b3675955df1/pandas-3.0.3-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:3650109c0f22879df8bd6179ab9ee3d7f1d1d4e7e0094a3f0032d9f51e2e64ac", size = 10336065 }, - { url = "https://files.pythonhosted.org/packages/68/10/bf2d6738d72748b961a3751ab89522d58c54efc36a8e1a12161216cd45cf/pandas-3.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:bab900348131a7db1f69a7309ef141fd5680f1487094193bcbbb61791573bf8f", size = 9926101 }, - { url = "https://files.pythonhosted.org/packages/ae/e9/e35cf11c8a136e757b956f5f0efdcaa50aecde85ea055f1898dfc68262f3/pandas-3.0.3-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ba7e08b9ac1d54569cd1e256e3668975ed624d6826f7b68df0342b012007bddb", size = 10457553 }, - { url = "https://files.pythonhosted.org/packages/58/3b/1cdec6772bdbaf7b25dab360c59f03cadf05492dd724c6540af905389b07/pandas-3.0.3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d71c63ae4ebdbf70209742096f1fc46a83a0613c99d4b23766cced9ff8cd62a", size = 10914065 }, - { url = "https://files.pythonhosted.org/packages/c4/c2/1ef644445fcd72e3627bceec77e3560636f87ddce4ed841afe76b83b5bf9/pandas-3.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:e3a2ec42c98ffa2565a67e08e218d06d72576d758d90facb7c00805194d8f360", size = 11459188 }, - { url = "https://files.pythonhosted.org/packages/7e/49/4d8d4f42cbc9c4adc7a1870f269c02cbd6cd40d059622c06fb298addcbad/pandas-3.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:335f62418ed562cfc3c49e9e196375c28b729dcef8543abf4f9438e381bf3c76", size = 11982966 }, - { url = "https://files.pythonhosted.org/packages/38/55/792619469bab9882d8bbd5865d45a72f6478762d04a9af4bf0d08c503e95/pandas-3.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:3c20a521bbb85902f79f7270c80a59e1b5452d96d170c034f207181870f97ac5", size = 9876755 }, - { url = "https://files.pythonhosted.org/packages/2a/af/33c469653b0ba03b50c3a98192d4c07f0c75c66b263ceb097fce0ee97d31/pandas-3.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:a2d2dff8a04f3917b55ab3910c32990f8ddf7eceba114947838cefa976a68977", size = 9198658 }, - { url = "https://files.pythonhosted.org/packages/a2/fa/b8c257bd76b8bd060c3a9151c1fca05e9b9c5e3af5d0f549c0356f6d143d/pandas-3.0.3-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:0d589105b3c14645af1738ff279b2995102d8f7a03b0a66dc8d95550eb513e04", size = 10787242 }, - { url = "https://files.pythonhosted.org/packages/54/eb/f19206ffb0bf1919002969aa448b4702c6594845156a6f8050674855aac3/pandas-3.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:13fc1e853d9e04743d11ba75a985ccbc2a317fe07d8af61e445a6fd24dacd6a6", size = 10436369 }, - { url = "https://files.pythonhosted.org/packages/fd/24/c7c39fb4fe22b71a0c2d78bf0c585c600092d85f94f086d2b3b2f6ca27e2/pandas-3.0.3-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:819959dab7bbd0049c15623fbac4e29a191b9528160a61fb1032242d8ced2d9c", size = 10358306 }, - { url = "https://files.pythonhosted.org/packages/16/ec/dd2a9eb7fa1204df88c0864164e35b228ac581062ac612ba0a67fd812e4c/pandas-3.0.3-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:60ae316d3fd75d1858d450d0db0103ea2be3e7d4a95ec2f064f7e2ae63f7b028", size = 10758394 }, - { url = "https://files.pythonhosted.org/packages/95/6e/00c61ea8e85b4f6d8d35e11852a1a4998fc7fafc91c6a602d1cc9c972d64/pandas-3.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:bd3a518890b400d32f9023722dc9a9a5c969f00b415419a3c06c043f09bb5d7d", size = 11375717 }, - { url = "https://files.pythonhosted.org/packages/31/89/8fc1c268969fac43688d65fd92e67df24bd128d53cb4d2eee534cd307399/pandas-3.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:9c39be2d709d01fa972a0cabc522389fceca4f3969332ba25a7d6c5802cf976a", size = 11828897 }, - { url = "https://files.pythonhosted.org/packages/56/3b/e7d20dea247a3e6dc0bd8a6953854afbedc03951def4e7371e05e7263e25/pandas-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4db8c527972a821cf5286b40ccc57642a39bc62e62022b42f99f8a67fca8c3a1", size = 10900855 }, - { url = "https://files.pythonhosted.org/packages/0f/54/68a0978d1ef8502b8492099beaa6e7a0c1b32e3b5d4f677f5810cb08711c/pandas-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:b2c95f8bfc1ee412bf482605d7bfd30c12d1d26bd59fdd91efeef1d4718decb1", size = 9466464 }, +sdist = { url = "https://files.pythonhosted.org/packages/55/b1/a10c0d1a7e3ce44eb42635771004aa503e3b9ddde0bd39c524dda65f7eff/pandas-3.1.0.tar.gz", hash = "sha256:ecb9b2d8a817b1e1ba1fdb90c0abe9eab31b4fdf2562b7a56b86ac66ace17e49", size = 5933421, upload-time = "2026-10-22T11:57:03.087Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e9/12/b94c28870f351e9650c724e6daedf661455b348a9dca6d717c42c30fa216/pandas-3.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f4772320b7735d96dbbef437129f840dec4175f8a18a2391bd1222ed8943825c", size = 11587014, upload-time = "2026-10-22T11:55:07.208Z" }, + { url = "https://files.pythonhosted.org/packages/1b/4b/af8ca15261db52ab07f5d0c2d4c1bc28d822ea4c2a79756bc2606c012e7c/pandas-3.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:cc5e4e12d287ea77bbf4c4d4bf47ed152d82a990d3a6794dee7c350f887532b5", size = 11167712, upload-time = "2026-10-22T11:55:09.523Z" }, + { url = "https://files.pythonhosted.org/packages/49/c4/cd5127751e2bef3d10f07e0d856e120916a3df0df6450f759ddb48c78b1c/pandas-3.1.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9b4e696ff70ed06e986feeec09356c491ce878d0df69a36c8e591b6a38afa29b", size = 11476964, upload-time = "2026-10-22T11:55:11.889Z" }, + { url = "https://files.pythonhosted.org/packages/c5/a6/dc89cdd95e12093bc813e9b814a09f1a056be3e1304edaef9bf9dbee108a/pandas-3.1.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9433b5dc2f26ef9d9b56daaf4d41d078bf4372c5d88c42ed5b397a6eea80de16", size = 12019688, upload-time = "2026-10-22T11:55:14.246Z" }, + { url = "https://files.pythonhosted.org/packages/36/87/da14aa671da792612f15847451e731d5dc0f06f6747b76b15f197ffcce13/pandas-3.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3cba20fd269808e224d6212273008173978033a1dee0f3f217bfdbd58775a72c", size = 12490149, upload-time = "2026-10-22T11:55:16.675Z" }, + { url = "https://files.pythonhosted.org/packages/5e/a0/1ce996c7354ad37983955571058ba0dde585663163ab067275197183868f/pandas-3.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:743554ed96755ad1963397ccadbe9965d92db8777ca2ae8c1fe58bd9549d7f28", size = 13090624, upload-time = "2026-10-22T11:55:18.854Z" }, + { url = "https://files.pythonhosted.org/packages/92/72/d235f82b51a22478938a3583b68e8dc05811937543adf410f34bab76004a/pandas-3.1.0-cp312-cp312-pyemscripten_2024_0_wasm32.whl", hash = "sha256:ac2f833557874a79fc0b5fac4c86e402ea6498beba8753dc29ca23d08481689a", size = 8091628, upload-time = "2026-10-22T11:55:21.285Z" }, + { url = "https://files.pythonhosted.org/packages/10/72/06aefff8fe5efc5e1ca8bfb2695b648a435358f6dc224d4e40159314181a/pandas-3.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:b8c75dbb27c7d170b25c13dd35515da4bb92d40fe8bb3bd2c69a95de2218889b", size = 10748836, upload-time = "2026-10-22T11:55:23.47Z" }, + { url = "https://files.pythonhosted.org/packages/f6/b6/4c86f659f5b14790d14e17253becc93c4e3d1511b73f0ba2184f06b164f8/pandas-3.1.0-cp312-cp312-win_arm64.whl", hash = "sha256:73b6cea22090b7123c78ee662a5108ff36616b0bec4fe47026f86fb04a49bce7", size = 10128898, upload-time = "2026-10-22T11:55:25.995Z" }, + { url = "https://files.pythonhosted.org/packages/01/54/eb85f8b2ce121c21286842cf81abaa670ec3570173c512298f91128927a5/pandas-3.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:849d5019dead65944875ce21fbf71a2ca18e982164cd7367623cbda8567c3122", size = 11609893, upload-time = "2026-10-22T11:55:28.592Z" }, + { url = "https://files.pythonhosted.org/packages/9b/f2/b327e814327b7e7e61b5c5cceafd5c0c20f0d38e94f99ebf2dd6c1cec85b/pandas-3.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c1e084760f3b275eed5863407d025b933d25f3247515fcc84bf664405e8bb3d2", size = 11182834, upload-time = "2026-10-22T11:55:30.912Z" }, + { url = "https://files.pythonhosted.org/packages/4e/6d/2b918a45ad31d85f898567c948f11d0789ffe7fbadd6f487565e99d179b6/pandas-3.1.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c1009f5b6819b81319cf177b4f01a2823ed54c81db8bd11cdf2375f42d064c02", size = 11421478, upload-time = "2026-10-22T11:55:33.257Z" }, + { url = "https://files.pythonhosted.org/packages/4b/6f/b63e1d43eef5746014ae3f4786c72e0020e61b6b373a2abb6ebf1be3df49/pandas-3.1.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:de6d0fc96e8551b83f400bf212611a0b3a2b389594d20a2540dacc61b21e7bce", size = 11991052, upload-time = "2026-10-22T11:55:35.556Z" }, + { url = "https://files.pythonhosted.org/packages/fd/43/2cf85145d822957a3f8959fd0a850e6bf687dac2823c612b3912b8888dae/pandas-3.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5611344f9f0ed51619ac7acdbf72b86f5043801a66e3f8730c8971257082e8ad", size = 12455560, upload-time = "2026-10-22T11:55:37.656Z" }, + { url = "https://files.pythonhosted.org/packages/7f/72/0cb19cea2e6afbb0854cbde0ed1345b61600e0de84eb7b73583fde3e3b55/pandas-3.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:39c67ed9e56ad3ac0727dc2ae6a1eef766988c762d5ce2e2a162613d81c8990b", size = 13045764, upload-time = "2026-10-22T11:55:39.969Z" }, + { url = "https://files.pythonhosted.org/packages/e3/5c/ea5472e8444f5871427f3a6818725684fcdce74223ca1b22aa7ca345d490/pandas-3.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:07807035ad66de0d833d68f9bee05801dbf08b88d56a233b0e9fd189372c3261", size = 10729719, upload-time = "2026-10-22T11:55:42.008Z" }, + { url = "https://files.pythonhosted.org/packages/45/f7/8cdd350c67bc62865d1e30cd7add43dd631420223487ba42dfcfd0d0e052/pandas-3.1.0-cp313-cp313-win_arm64.whl", hash = "sha256:54fed4a50b8321ff8d413b46b7e31a023cecefd06c7210c02aa980a9836428b2", size = 10116651, upload-time = "2026-10-22T11:55:44.367Z" }, + { url = "https://files.pythonhosted.org/packages/c3/a9/e82d44fe20dc61dd2e15bdd17c78aa0023d860d55620e4fe82f9e644a089/pandas-3.1.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:a8c44d40cbb6d00128bf2d8f8bb66c8d561744b6d44686b5a1a01f3b3fd1245f", size = 11675868, upload-time = "2026-10-22T11:55:46.617Z" }, + { url = "https://files.pythonhosted.org/packages/83/38/6be618d98e2cbbb99a40349717532f0c2b6794ddc62f1199e3f83e45a40f/pandas-3.1.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:89b66823678cdd53cf97187e7cd6861402bdd147d11a383706093136a4e83f45", size = 11262553, upload-time = "2026-10-22T11:55:49.143Z" }, + { url = "https://files.pythonhosted.org/packages/06/5c/66e27fb0d691e835bd55b336bdf47312a541a66a17ba4d72a988d743bb79/pandas-3.1.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2a8dc7780720b9e2182799ee86279d4cc7d1fd30b230ea1b202da5b6f7e14c3a", size = 11548155, upload-time = "2026-10-22T11:55:51.674Z" }, + { url = "https://files.pythonhosted.org/packages/37/1e/42e81484c5a6791ab1b8c52c1ff1ef0483c119f710ed58ee603d241b8792/pandas-3.1.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e4455cdcc03e42c17233184e8e4ea65c3ed2925d8b1d9d7dd8e6fced3f6e43c1", size = 12029136, upload-time = "2026-10-22T11:55:53.823Z" }, + { url = "https://files.pythonhosted.org/packages/cd/c9/a3b4fd156457f3eb2585838cd56427a113eeeba679204de435a3224b8cc3/pandas-3.1.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:224a9267e5fa70c16bf4f8a317435eef98387940ce6c8c611f1f68f2c3415e10", size = 12575350, upload-time = "2026-10-22T11:55:56.006Z" }, + { url = "https://files.pythonhosted.org/packages/4e/25/23a017003d792117b297bbd87e35a1bb5658509f610ecd5aeaebb84762aa/pandas-3.1.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:c261c7a808982557c2917d40ffd27916769f26aacb4e6775c01e4467bcd34c3b", size = 13096142, upload-time = "2026-10-22T11:55:58.434Z" }, + { url = "https://files.pythonhosted.org/packages/1c/d2/f4074b7d1234d112aaa23a796be1574441a9fa873707eb98312a237a6185/pandas-3.1.0-cp314-cp314-win_amd64.whl", hash = "sha256:e77112cfcabb3bef7281a72170670db9a5b31409a1cd3199939abb1fba67a7ad", size = 10885958, upload-time = "2026-10-22T11:56:00.895Z" }, + { url = "https://files.pythonhosted.org/packages/25/9f/bcfc9e0ea07f5c7583e129e62cd0529747317977ac1b85878b80235bb322/pandas-3.1.0-cp314-cp314-win_arm64.whl", hash = "sha256:6c51273b89784c9d54020ed2f60e20524169aef349bddf6cba9f5e83b46077a7", size = 10281257, upload-time = "2026-10-22T11:56:03.478Z" }, + { url = "https://files.pythonhosted.org/packages/05/e4/b3bf0b702c0a886e4abcfc2ebdc681310498592a10d9ca0ce5db6df47b70/pandas-3.1.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:84377fa82d0b40165379a0058d8a1a267ceb09e65160de6fcc75475d4d595884", size = 12134028, upload-time = "2026-10-22T11:56:05.696Z" }, + { url = "https://files.pythonhosted.org/packages/3e/ff/9e08cf048d73f4dfdb10da859790cd1a4213465dec39ea367a606d580c4a/pandas-3.1.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:37f88576f3449bfd86c1052f6b42274b61d7250c8d9dcc55f9dc4de7fe9883ae", size = 11729164, upload-time = "2026-10-22T11:56:08.335Z" }, + { url = "https://files.pythonhosted.org/packages/1f/ff/a0df60d70fac10006841457c30d35647ae0c93af33e420e5e047b15e058d/pandas-3.1.0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:756fd67995f3efb6b25f8eaea95c0e893f84e0068e2c53c5fdbb65275041d4db", size = 11413041, upload-time = "2026-10-22T11:56:11.38Z" }, + { url = "https://files.pythonhosted.org/packages/55/04/e6742d85ba7d166a1a8a99ff9f4aa9e585fb24028522daa187859ce50b5d/pandas-3.1.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c4d9252b57bded194d09cd5ebf18d9b4edac238b16f56984ea8281d2ecfe39cd", size = 11869427, upload-time = "2026-10-22T11:56:13.637Z" }, + { url = "https://files.pythonhosted.org/packages/0a/a1/c9f4915408ef10b541f31b7812ca038dd903572c163b7be7bdcece8a5110/pandas-3.1.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:461b79db058639e446ddf90dd7f4804fae385acf0669f6e31321333e14cb6bc5", size = 12430367, upload-time = "2026-10-22T11:56:15.829Z" }, + { url = "https://files.pythonhosted.org/packages/9f/ed/636b9cc8d30b3e2027b43036dd5a8e9e7cfdd5aa86f4454235c5ef7f96db/pandas-3.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:bfac077874a396b7ae61a307b27aa6f0256cf31c143b7f96ac622765754cc300", size = 12945204, upload-time = "2026-10-22T11:56:18.419Z" }, + { url = "https://files.pythonhosted.org/packages/e6/5e/5c28942fa8c6cf2d8b4e941abee43a44ba0a123f9fef6411f0319aefddd5/pandas-3.1.0-cp314-cp314t-win_amd64.whl", hash = "sha256:1340f823a1d189fae8365de314c4d3c2ea0173c61bca66cc76a91385c64d9d3d", size = 11297553, upload-time = "2026-10-22T11:56:20.934Z" }, + { url = "https://files.pythonhosted.org/packages/cd/a4/5991dfb2cccd233ae754f2fb37a4b1474d90595d83f6790467dc5a7d8041/pandas-3.1.0-cp314-cp314t-win_arm64.whl", hash = "sha256:2bb3f8cc42fae0c0de5186778f4a4957656b9b3955aca48383abfdac44a83598", size = 10626068, upload-time = "2026-10-22T11:56:23.187Z" }, + { url = "https://files.pythonhosted.org/packages/77/26/5cd42609d8e6cb3991242116a0e499d09f29f5bcf574f72f0a4aba13a87e/pandas-3.1.0-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:04ca88727dfa86837030c493d7512bb1c008aa4f5f14149c5f8d3ff446791340", size = 11666949, upload-time = "2026-10-22T11:56:25.842Z" }, + { url = "https://files.pythonhosted.org/packages/97/5f/ca1ac99da700c215c52fb0f5063a7fbf14878c6e100f687704c21985640e/pandas-3.1.0-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:c0bfec4d188fb0c05bba47b9f9def87624b8c545913aa3585a28f19f27ce847e", size = 11255062, upload-time = "2026-10-22T11:56:28.201Z" }, + { url = "https://files.pythonhosted.org/packages/d3/eb/8d7aef062e7d1f48869288e5c5ae5d109923f37ed3bbd0fdcaecc87784e9/pandas-3.1.0-cp315-cp315-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bbfb087db83eb79ca348047961d367bdd4bf9820d90a5945f3652c7060da7363", size = 11547558, upload-time = "2026-10-22T11:56:30.492Z" }, + { url = "https://files.pythonhosted.org/packages/06/c4/a041c786bc29935afe44806f72c0111f2643cbac5cab761007a227e12e97/pandas-3.1.0-cp315-cp315-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4b5ce18612ca955e7a95d0bacc20120aedf97e2fbbebbe4de029fc24479e79b8", size = 12026259, upload-time = "2026-10-22T11:56:33.219Z" }, + { url = "https://files.pythonhosted.org/packages/d3/4a/ce6690c7e6081c96857ad7dcbe3b978394d8db682610755919e61863516f/pandas-3.1.0-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:a13199463b129363701a540c7b79586581b246b10b6a7ad682c41b268e7991d5", size = 12563821, upload-time = "2026-10-22T11:56:35.402Z" }, + { url = "https://files.pythonhosted.org/packages/75/ec/ae440ecbfa8f5ba0230541b4519c1fed0c4293ff362f18f7f353b12e2dca/pandas-3.1.0-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:8e4de3fe8017e3445f1174707cd977e4e1154a704af2c060a1f648862f81acb9", size = 13086426, upload-time = "2026-10-22T11:56:37.666Z" }, + { url = "https://files.pythonhosted.org/packages/e7/1e/6459d4b0ed9c3d72b9ab63387ec11e1e658579e702e0ef117be8b5d7d0d1/pandas-3.1.0-cp315-cp315-win_amd64.whl", hash = "sha256:eee72bba8a72f0bf9522132e5c87cd10fce9d77440b50f65326b093ec9fb8d43", size = 10877850, upload-time = "2026-10-22T11:56:39.994Z" }, + { url = "https://files.pythonhosted.org/packages/f5/22/e5fad1828e5f923e80a8d7ba9187f687159004a10f99f95dd5346b04c54e/pandas-3.1.0-cp315-cp315-win_arm64.whl", hash = "sha256:9ea2983fe096a3d997c8c4b9f26775fa51e7fb251b10634bd7f87e6fe3542d52", size = 10276384, upload-time = "2026-10-22T11:56:42.193Z" }, + { url = "https://files.pythonhosted.org/packages/59/76/89820c2e1950425f39d30695d2296a8c7d400c4c2d279e7618363a7289ac/pandas-3.1.0-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:84d73e0814a38711e4f2a24b272f748a0b4335169d2f9752407ae26bde22990f", size = 12107257, upload-time = "2026-10-22T11:56:44.498Z" }, + { url = "https://files.pythonhosted.org/packages/c8/2c/af4397e6e855d2c0dcb3392ab7788087be4ef53f6a3f166daad8b83c783e/pandas-3.1.0-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:d3920d9b4de89fbef76ba6b863d58a330b5bfb720c9f8f58eb9b7da9b711d034", size = 11704430, upload-time = "2026-10-22T11:56:46.791Z" }, + { url = "https://files.pythonhosted.org/packages/fd/9e/7791cd269099f9fca7dc4718955cfe4bb94aedb6634b59eeffefb1ed6a74/pandas-3.1.0-cp315-cp315t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a1d61e0eae5219cd024fcbc21304de759964b5642ddcdbb28d9a8ba442ab6901", size = 11378442, upload-time = "2026-10-22T11:56:49.113Z" }, + { url = "https://files.pythonhosted.org/packages/54/6c/da4013bd33c49a12eb3127771111caeed3222a985651e3465bc06f839ce7/pandas-3.1.0-cp315-cp315t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bbb121205af7bc5e587b94a07b5f67b5ba687a918665b9e8748f21388a88b044", size = 11850193, upload-time = "2026-10-22T11:56:51.558Z" }, + { url = "https://files.pythonhosted.org/packages/14/89/8c820bd6fb6ad8f0edb2877639bc7e164bfb4b8e4cdf7a2202f54959ea1b/pandas-3.1.0-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:684ef3add5a92abb99c1622f2bd04b54b8843075a266e8240106ca94ce1d1237", size = 12394022, upload-time = "2026-10-22T11:56:53.785Z" }, + { url = "https://files.pythonhosted.org/packages/92/f5/9d753d85c4ea85b6d1c3735496ae5b416d7ef6905f1845c70e9521d124d9/pandas-3.1.0-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:dde9a55ecd3c4f9100ac50ab15e852e4c54fcf372d800e4495e0b2159a0122ab", size = 12916085, upload-time = "2026-10-22T11:56:56.084Z" }, + { url = "https://files.pythonhosted.org/packages/e6/f9/4a6965677477dbbb19f8881befb01b67eb6009809db73f7f1b7a0132faf1/pandas-3.1.0-cp315-cp315t-win_amd64.whl", hash = "sha256:3fe234bfb9999552dc54c45851752e56e163218d7663897dca950b4a7c32af39", size = 11267097, upload-time = "2026-10-22T11:56:58.479Z" }, + { url = "https://files.pythonhosted.org/packages/99/35/e60fd8228db4eb848802988dbc6e3a0f1a81c57f06ad95ebe4cd534fa655/pandas-3.1.0-cp315-cp315t-win_arm64.whl", hash = "sha256:f1a93c24175129bfc9922ef748ddae1d8137c743ed835e2615be329f606fed4d", size = 10597861, upload-time = "2026-10-22T11:57:00.776Z" }, ] [[package]] name = "parso" version = "0.8.7" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/30/4b/90c937815137d43ce71ba043cd3566221e9df6b9c805f24b5d138c9d40a7/parso-0.8.7.tar.gz", hash = "sha256:eaaac4c9fdd5e9e8852dc778d2d7405897ec510f2a298071453e5e3a07914bb1", size = 401824 } +sdist = { url = "https://files.pythonhosted.org/packages/30/4b/90c937815137d43ce71ba043cd3566221e9df6b9c805f24b5d138c9d40a7/parso-0.8.7.tar.gz", hash = "sha256:eaaac4c9fdd5e9e8852dc778d2d7405897ec510f2a298071453e5e3a07914bb1", size = 401824, upload-time = "2026-05-01T23:13:02.138Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/99/5d/8268b644392ee874ee82a635cd0df1773de230bde356c38de28e298392cc/parso-0.8.7-py2.py3-none-any.whl", hash = "sha256:a8926eb2a1b915486941fdbd31e86a4baf88fe8c210f25f2f35ecec5b574ca1c", size = 107025 }, + { url = "https://files.pythonhosted.org/packages/99/5d/8268b644392ee874ee82a635cd0df1773de230bde356c38de28e298392cc/parso-0.8.7-py2.py3-none-any.whl", hash = "sha256:a8926eb2a1b915486941fdbd31e86a4baf88fe8c210f25f2f35ecec5b574ca1c", size = 107025, upload-time = "2026-05-01T23:12:58.867Z" }, ] [[package]] @@ -2018,36 +2113,22 @@ dependencies = [ { name = "locket" }, { name = "toolz" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b2/3a/3f06f34820a31257ddcabdfafc2672c5816be79c7e353b02c1f318daa7d4/partd-1.4.2.tar.gz", hash = "sha256:d022c33afbdc8405c226621b015e8067888173d85f7f5ecebb3cafed9a20f02c", size = 21029 } +sdist = { url = "https://files.pythonhosted.org/packages/b2/3a/3f06f34820a31257ddcabdfafc2672c5816be79c7e353b02c1f318daa7d4/partd-1.4.2.tar.gz", hash = "sha256:d022c33afbdc8405c226621b015e8067888173d85f7f5ecebb3cafed9a20f02c", size = 21029, upload-time = "2024-05-06T19:51:41.945Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/71/e7/40fb618334dcdf7c5a316c0e7343c5cd82d3d866edc100d98e29bc945ecd/partd-1.4.2-py3-none-any.whl", hash = "sha256:978e4ac767ec4ba5b86c6eaa52e5a2a3bc748a2ca839e8cc798f1cc6ce6efb0f", size = 18905 }, + { url = "https://files.pythonhosted.org/packages/71/e7/40fb618334dcdf7c5a316c0e7343c5cd82d3d866edc100d98e29bc945ecd/partd-1.4.2-py3-none-any.whl", hash = "sha256:978e4ac767ec4ba5b86c6eaa52e5a2a3bc748a2ca839e8cc798f1cc6ce6efb0f", size = 18905, upload-time = "2024-05-06T19:51:39.271Z" }, ] [[package]] name = "patsy" -version = "1.0.2" +version = "1.0.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy" }, + { name = "packaging" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/be/44/ed13eccdd0519eff265f44b670d46fbb0ec813e2274932dc1c0e48520f7d/patsy-1.0.2.tar.gz", hash = "sha256:cdc995455f6233e90e22de72c37fcadb344e7586fb83f06696f54d92f8ce74c0", size = 399942 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f1/70/ba4b949bdc0490ab78d545459acd7702b211dfccf7eb89bbc1060f52818d/patsy-1.0.2-py2.py3-none-any.whl", hash = "sha256:37bfddbc58fcf0362febb5f54f10743f8b21dd2aa73dec7e7ef59d1b02ae668a", size = 233301 }, -] - -[[package]] -name = "pdbufr" -version = "0.14.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "attrs" }, - { name = "eccodes" }, - { name = "pandas" }, - { name = "pint" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/ac/e9/e633c3ac1856ba04d1329eda9ac0b4cf2e4f4df964df869226af5b9d1f6f/pdbufr-0.14.2.tar.gz", hash = "sha256:5fd40f4dd07ef7b56f5d0c065debddb4afd45ddaa453addc731249ced8d31d13", size = 8761763 } +sdist = { url = "https://files.pythonhosted.org/packages/08/e3/950e513affdfe1c1864397b4f40d6ed06ec1b54f608e462c27f151dd72df/patsy-1.0.3.tar.gz", hash = "sha256:79ebf4c93ff4d296e58a9d5be2b2ee31bd49d737cf11d70ffbd8a44b2de42e65", size = 399992, upload-time = "2026-08-29T21:35:32.258Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/0d/20/f2b98b18200c304f04f7839732298a786d121dba6b7cd79aa406c8c9000d/pdbufr-0.14.2-py3-none-any.whl", hash = "sha256:8d9eb74e65fe1b4b89ffe5e7ad8ee0e854ac2efbed5b64ac17cff287ea86a838", size = 52633 }, + { url = "https://files.pythonhosted.org/packages/20/70/cd3cf5cff538323076a879edef02cce6f13f7d75e03d12f211b0a0dbd178/patsy-1.0.3-py2.py3-none-any.whl", hash = "sha256:d3dbebe8fd5f46e29912d030b63c6268647b59bf788a99e2af28a30234cf357c", size = 233318, upload-time = "2026-08-29T21:35:30.913Z" }, ] [[package]] @@ -2057,83 +2138,90 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "ptyprocess", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/42/92/cc564bf6381ff43ce1f4d06852fc19a2f11d180f23dc32d9588bee2f149d/pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f", size = 166450 } +sdist = { url = "https://files.pythonhosted.org/packages/42/92/cc564bf6381ff43ce1f4d06852fc19a2f11d180f23dc32d9588bee2f149d/pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f", size = 166450, upload-time = "2023-11-25T09:07:26.339Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523", size = 63772 }, + { url = "https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523", size = 63772, upload-time = "2023-11-25T06:56:14.81Z" }, ] [[package]] name = "pillow" -version = "12.2.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/8c/21/c2bcdd5906101a30244eaffc1b6e6ce71a31bd0742a01eb89e660ebfac2d/pillow-12.2.0.tar.gz", hash = "sha256:a830b1a40919539d07806aa58e1b114df53ddd43213d9c8b75847eee6c0182b5", size = 46987819 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/58/be/7482c8a5ebebbc6470b3eb791812fff7d5e0216c2be3827b30b8bb6603ed/pillow-12.2.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2d192a155bbcec180f8564f693e6fd9bccff5a7af9b32e2e4bf8c9c69dbad6b5", size = 5308279 }, - { url = "https://files.pythonhosted.org/packages/d8/95/0a351b9289c2b5cbde0bacd4a83ebc44023e835490a727b2a3bd60ddc0f4/pillow-12.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f3f40b3c5a968281fd507d519e444c35f0ff171237f4fdde090dd60699458421", size = 4695490 }, - { url = "https://files.pythonhosted.org/packages/de/af/4e8e6869cbed569d43c416fad3dc4ecb944cb5d9492defaed89ddd6fe871/pillow-12.2.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:03e7e372d5240cc23e9f07deca4d775c0817bffc641b01e9c3af208dbd300987", size = 6284462 }, - { url = "https://files.pythonhosted.org/packages/e9/9e/c05e19657fd57841e476be1ab46c4d501bffbadbafdc31a6d665f8b737b6/pillow-12.2.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b86024e52a1b269467a802258c25521e6d742349d760728092e1bc2d135b4d76", size = 8094744 }, - { url = "https://files.pythonhosted.org/packages/2b/54/1789c455ed10176066b6e7e6da1b01e50e36f94ba584dc68d9eebfe9156d/pillow-12.2.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7371b48c4fa448d20d2714c9a1f775a81155050d383333e0a6c15b1123dda005", size = 6398371 }, - { url = "https://files.pythonhosted.org/packages/43/e3/fdc657359e919462369869f1c9f0e973f353f9a9ee295a39b1fea8ee1a77/pillow-12.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:62f5409336adb0663b7caa0da5c7d9e7bdbaae9ce761d34669420c2a801b2780", size = 7087215 }, - { url = "https://files.pythonhosted.org/packages/8b/f8/2f6825e441d5b1959d2ca5adec984210f1ec086435b0ed5f52c19b3b8a6e/pillow-12.2.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:01afa7cf67f74f09523699b4e88c73fb55c13346d212a59a2db1f86b0a63e8c5", size = 6509783 }, - { url = "https://files.pythonhosted.org/packages/67/f9/029a27095ad20f854f9dba026b3ea6428548316e057e6fc3545409e86651/pillow-12.2.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fc3d34d4a8fbec3e88a79b92e5465e0f9b842b628675850d860b8bd300b159f5", size = 7212112 }, - { url = "https://files.pythonhosted.org/packages/be/42/025cfe05d1be22dbfdb4f264fe9de1ccda83f66e4fc3aac94748e784af04/pillow-12.2.0-cp312-cp312-win32.whl", hash = "sha256:58f62cc0f00fd29e64b29f4fd923ffdb3859c9f9e6105bfc37ba1d08994e8940", size = 6378489 }, - { url = "https://files.pythonhosted.org/packages/5d/7b/25a221d2c761c6a8ae21bfa3874988ff2583e19cf8a27bf2fee358df7942/pillow-12.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:7f84204dee22a783350679a0333981df803dac21a0190d706a50475e361c93f5", size = 7084129 }, - { url = "https://files.pythonhosted.org/packages/10/e1/542a474affab20fd4a0f1836cb234e8493519da6b76899e30bcc5d990b8b/pillow-12.2.0-cp312-cp312-win_arm64.whl", hash = "sha256:af73337013e0b3b46f175e79492d96845b16126ddf79c438d7ea7ff27783a414", size = 2463612 }, - { url = "https://files.pythonhosted.org/packages/4a/01/53d10cf0dbad820a8db274d259a37ba50b88b24768ddccec07355382d5ad/pillow-12.2.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:8297651f5b5679c19968abefd6bb84d95fe30ef712eb1b2d9b2d31ca61267f4c", size = 4100837 }, - { url = "https://files.pythonhosted.org/packages/0f/98/f3a6657ecb698c937f6c76ee564882945f29b79bad496abcba0e84659ec5/pillow-12.2.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:50d8520da2a6ce0af445fa6d648c4273c3eeefbc32d7ce049f22e8b5c3daecc2", size = 4176528 }, - { url = "https://files.pythonhosted.org/packages/69/bc/8986948f05e3ea490b8442ea1c1d4d990b24a7e43d8a51b2c7d8b1dced36/pillow-12.2.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:766cef22385fa1091258ad7e6216792b156dc16d8d3fa607e7545b2b72061f1c", size = 3640401 }, - { url = "https://files.pythonhosted.org/packages/34/46/6c717baadcd62bc8ed51d238d521ab651eaa74838291bda1f86fe1f864c9/pillow-12.2.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5d2fd0fa6b5d9d1de415060363433f28da8b1526c1c129020435e186794b3795", size = 5308094 }, - { url = "https://files.pythonhosted.org/packages/71/43/905a14a8b17fdb1ccb58d282454490662d2cb89a6bfec26af6d3520da5ec/pillow-12.2.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:56b25336f502b6ed02e889f4ece894a72612fe885889a6e8c4c80239ff6e5f5f", size = 4695402 }, - { url = "https://files.pythonhosted.org/packages/73/dd/42107efcb777b16fa0393317eac58f5b5cf30e8392e266e76e51cff28c3d/pillow-12.2.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f1c943e96e85df3d3478f7b691f229887e143f81fedab9b20205349ab04d73ed", size = 6280005 }, - { url = "https://files.pythonhosted.org/packages/a8/68/b93e09e5e8549019e61acf49f65b1a8530765a7f812c77a7461bca7e4494/pillow-12.2.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:03f6fab9219220f041c74aeaa2939ff0062bd5c364ba9ce037197f4c6d498cd9", size = 8090669 }, - { url = "https://files.pythonhosted.org/packages/4b/6e/3ccb54ce8ec4ddd1accd2d89004308b7b0b21c4ac3d20fa70af4760a4330/pillow-12.2.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5cdfebd752ec52bf5bb4e35d9c64b40826bc5b40a13df7c3cda20a2c03a0f5ed", size = 6395194 }, - { url = "https://files.pythonhosted.org/packages/67/ee/21d4e8536afd1a328f01b359b4d3997b291ffd35a237c877b331c1c3b71c/pillow-12.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:eedf4b74eda2b5a4b2b2fb4c006d6295df3bf29e459e198c90ea48e130dc75c3", size = 7082423 }, - { url = "https://files.pythonhosted.org/packages/78/5f/e9f86ab0146464e8c133fe85df987ed9e77e08b29d8d35f9f9f4d6f917ba/pillow-12.2.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:00a2865911330191c0b818c59103b58a5e697cae67042366970a6b6f1b20b7f9", size = 6505667 }, - { url = "https://files.pythonhosted.org/packages/ed/1e/409007f56a2fdce61584fd3acbc2bbc259857d555196cedcadc68c015c82/pillow-12.2.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1e1757442ed87f4912397c6d35a0db6a7b52592156014706f17658ff58bbf795", size = 7208580 }, - { url = "https://files.pythonhosted.org/packages/23/c4/7349421080b12fb35414607b8871e9534546c128a11965fd4a7002ccfbee/pillow-12.2.0-cp313-cp313-win32.whl", hash = "sha256:144748b3af2d1b358d41286056d0003f47cb339b8c43a9ea42f5fea4d8c66b6e", size = 6375896 }, - { url = "https://files.pythonhosted.org/packages/3f/82/8a3739a5e470b3c6cbb1d21d315800d8e16bff503d1f16b03a4ec3212786/pillow-12.2.0-cp313-cp313-win_amd64.whl", hash = "sha256:390ede346628ccc626e5730107cde16c42d3836b89662a115a921f28440e6a3b", size = 7081266 }, - { url = "https://files.pythonhosted.org/packages/c3/25/f968f618a062574294592f668218f8af564830ccebdd1fa6200f598e65c5/pillow-12.2.0-cp313-cp313-win_arm64.whl", hash = "sha256:8023abc91fba39036dbce14a7d6535632f99c0b857807cbbbf21ecc9f4717f06", size = 2463508 }, - { url = "https://files.pythonhosted.org/packages/4d/a4/b342930964e3cb4dce5038ae34b0eab4653334995336cd486c5a8c25a00c/pillow-12.2.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:042db20a421b9bafecc4b84a8b6e444686bd9d836c7fd24542db3e7df7baad9b", size = 5309927 }, - { url = "https://files.pythonhosted.org/packages/9f/de/23198e0a65a9cf06123f5435a5d95cea62a635697f8f03d134d3f3a96151/pillow-12.2.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:dd025009355c926a84a612fecf58bb315a3f6814b17ead51a8e48d3823d9087f", size = 4698624 }, - { url = "https://files.pythonhosted.org/packages/01/a6/1265e977f17d93ea37aa28aa81bad4fa597933879fac2520d24e021c8da3/pillow-12.2.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:88ddbc66737e277852913bd1e07c150cc7bb124539f94c4e2df5344494e0a612", size = 6321252 }, - { url = "https://files.pythonhosted.org/packages/3c/83/5982eb4a285967baa70340320be9f88e57665a387e3a53a7f0db8231a0cd/pillow-12.2.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d362d1878f00c142b7e1a16e6e5e780f02be8195123f164edf7eddd911eefe7c", size = 8126550 }, - { url = "https://files.pythonhosted.org/packages/4e/48/6ffc514adce69f6050d0753b1a18fd920fce8cac87620d5a31231b04bfc5/pillow-12.2.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2c727a6d53cb0018aadd8018c2b938376af27914a68a492f59dfcaca650d5eea", size = 6433114 }, - { url = "https://files.pythonhosted.org/packages/36/a3/f9a77144231fb8d40ee27107b4463e205fa4677e2ca2548e14da5cf18dce/pillow-12.2.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:efd8c21c98c5cc60653bcb311bef2ce0401642b7ce9d09e03a7da87c878289d4", size = 7115667 }, - { url = "https://files.pythonhosted.org/packages/c1/fc/ac4ee3041e7d5a565e1c4fd72a113f03b6394cc72ab7089d27608f8aaccb/pillow-12.2.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9f08483a632889536b8139663db60f6724bfcb443c96f1b18855860d7d5c0fd4", size = 6538966 }, - { url = "https://files.pythonhosted.org/packages/c0/a8/27fb307055087f3668f6d0a8ccb636e7431d56ed0750e07a60547b1e083e/pillow-12.2.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:dac8d77255a37e81a2efcbd1fc05f1c15ee82200e6c240d7e127e25e365c39ea", size = 7238241 }, - { url = "https://files.pythonhosted.org/packages/ad/4b/926ab182c07fccae9fcb120043464e1ff1564775ec8864f21a0ebce6ac25/pillow-12.2.0-cp313-cp313t-win32.whl", hash = "sha256:ee3120ae9dff32f121610bb08e4313be87e03efeadfc6c0d18f89127e24d0c24", size = 6379592 }, - { url = "https://files.pythonhosted.org/packages/c2/c4/f9e476451a098181b30050cc4c9a3556b64c02cf6497ea421ac047e89e4b/pillow-12.2.0-cp313-cp313t-win_amd64.whl", hash = "sha256:325ca0528c6788d2a6c3d40e3568639398137346c3d6e66bb61db96b96511c98", size = 7085542 }, - { url = "https://files.pythonhosted.org/packages/00/a4/285f12aeacbe2d6dc36c407dfbbe9e96d4a80b0fb710a337f6d2ad978c75/pillow-12.2.0-cp313-cp313t-win_arm64.whl", hash = "sha256:2e5a76d03a6c6dcef67edabda7a52494afa4035021a79c8558e14af25313d453", size = 2465765 }, - { url = "https://files.pythonhosted.org/packages/bf/98/4595daa2365416a86cb0d495248a393dfc84e96d62ad080c8546256cb9c0/pillow-12.2.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:3adc9215e8be0448ed6e814966ecf3d9952f0ea40eb14e89a102b87f450660d8", size = 4100848 }, - { url = "https://files.pythonhosted.org/packages/0b/79/40184d464cf89f6663e18dfcf7ca21aae2491fff1a16127681bf1fa9b8cf/pillow-12.2.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:6a9adfc6d24b10f89588096364cc726174118c62130c817c2837c60cf08a392b", size = 4176515 }, - { url = "https://files.pythonhosted.org/packages/b0/63/703f86fd4c422a9cf722833670f4f71418fb116b2853ff7da722ea43f184/pillow-12.2.0-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:6a6e67ea2e6feda684ed370f9a1c52e7a243631c025ba42149a2cc5934dec295", size = 3640159 }, - { url = "https://files.pythonhosted.org/packages/71/e0/fb22f797187d0be2270f83500aab851536101b254bfa1eae10795709d283/pillow-12.2.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:2bb4a8d594eacdfc59d9e5ad972aa8afdd48d584ffd5f13a937a664c3e7db0ed", size = 5312185 }, - { url = "https://files.pythonhosted.org/packages/ba/8c/1a9e46228571de18f8e28f16fabdfc20212a5d019f3e3303452b3f0a580d/pillow-12.2.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:80b2da48193b2f33ed0c32c38140f9d3186583ce7d516526d462645fd98660ae", size = 4695386 }, - { url = "https://files.pythonhosted.org/packages/70/62/98f6b7f0c88b9addd0e87c217ded307b36be024d4ff8869a812b241d1345/pillow-12.2.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:22db17c68434de69d8ecfc2fe821569195c0c373b25cccb9cbdacf2c6e53c601", size = 6280384 }, - { url = "https://files.pythonhosted.org/packages/5e/03/688747d2e91cfbe0e64f316cd2e8005698f76ada3130d0194664174fa5de/pillow-12.2.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7b14cc0106cd9aecda615dd6903840a058b4700fcb817687d0ee4fc8b6e389be", size = 8091599 }, - { url = "https://files.pythonhosted.org/packages/f6/35/577e22b936fcdd66537329b33af0b4ccfefaeabd8aec04b266528cddb33c/pillow-12.2.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8cbeb542b2ebc6fcdacabf8aca8c1a97c9b3ad3927d46b8723f9d4f033288a0f", size = 6396021 }, - { url = "https://files.pythonhosted.org/packages/11/8d/d2532ad2a603ca2b93ad9f5135732124e57811d0168155852f37fbce2458/pillow-12.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4bfd07bc812fbd20395212969e41931001fd59eb55a60658b0e5710872e95286", size = 7083360 }, - { url = "https://files.pythonhosted.org/packages/5e/26/d325f9f56c7e039034897e7380e9cc202b1e368bfd04d4cbe6a441f02885/pillow-12.2.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:9aba9a17b623ef750a4d11b742cbafffeb48a869821252b30ee21b5e91392c50", size = 6507628 }, - { url = "https://files.pythonhosted.org/packages/5f/f7/769d5632ffb0988f1c5e7660b3e731e30f7f8ec4318e94d0a5d674eb65a4/pillow-12.2.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:deede7c263feb25dba4e82ea23058a235dcc2fe1f6021025dc71f2b618e26104", size = 7209321 }, - { url = "https://files.pythonhosted.org/packages/6a/7a/c253e3c645cd47f1aceea6a8bacdba9991bf45bb7dfe927f7c893e89c93c/pillow-12.2.0-cp314-cp314-win32.whl", hash = "sha256:632ff19b2778e43162304d50da0181ce24ac5bb8180122cbe1bf4673428328c7", size = 6479723 }, - { url = "https://files.pythonhosted.org/packages/cd/8b/601e6566b957ca50e28725cb6c355c59c2c8609751efbecd980db44e0349/pillow-12.2.0-cp314-cp314-win_amd64.whl", hash = "sha256:4e6c62e9d237e9b65fac06857d511e90d8461a32adcc1b9065ea0c0fa3a28150", size = 7217400 }, - { url = "https://files.pythonhosted.org/packages/d6/94/220e46c73065c3e2951bb91c11a1fb636c8c9ad427ac3ce7d7f3359b9b2f/pillow-12.2.0-cp314-cp314-win_arm64.whl", hash = "sha256:b1c1fbd8a5a1af3412a0810d060a78b5136ec0836c8a4ef9aa11807f2a22f4e1", size = 2554835 }, - { url = "https://files.pythonhosted.org/packages/b6/ab/1b426a3974cb0e7da5c29ccff4807871d48110933a57207b5a676cccc155/pillow-12.2.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:57850958fe9c751670e49b2cecf6294acc99e562531f4bd317fa5ddee2068463", size = 5314225 }, - { url = "https://files.pythonhosted.org/packages/19/1e/dce46f371be2438eecfee2a1960ee2a243bbe5e961890146d2dee1ff0f12/pillow-12.2.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:d5d38f1411c0ed9f97bcb49b7bd59b6b7c314e0e27420e34d99d844b9ce3b6f3", size = 4698541 }, - { url = "https://files.pythonhosted.org/packages/55/c3/7fbecf70adb3a0c33b77a300dc52e424dc22ad8cdc06557a2e49523b703d/pillow-12.2.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5c0a9f29ca8e79f09de89293f82fc9b0270bb4af1d58bc98f540cc4aedf03166", size = 6322251 }, - { url = "https://files.pythonhosted.org/packages/1c/3c/7fbc17cfb7e4fe0ef1642e0abc17fc6c94c9f7a16be41498e12e2ba60408/pillow-12.2.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1610dd6c61621ae1cf811bef44d77e149ce3f7b95afe66a4512f8c59f25d9ebe", size = 8127807 }, - { url = "https://files.pythonhosted.org/packages/ff/c3/a8ae14d6defd2e448493ff512fae903b1e9bd40b72efb6ec55ce0048c8ce/pillow-12.2.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0a34329707af4f73cf1782a36cd2289c0368880654a2c11f027bcee9052d35dd", size = 6433935 }, - { url = "https://files.pythonhosted.org/packages/6e/32/2880fb3a074847ac159d8f902cb43278a61e85f681661e7419e6596803ed/pillow-12.2.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8e9c4f5b3c546fa3458a29ab22646c1c6c787ea8f5ef51300e5a60300736905e", size = 7116720 }, - { url = "https://files.pythonhosted.org/packages/46/87/495cc9c30e0129501643f24d320076f4cc54f718341df18cc70ec94c44e1/pillow-12.2.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:fb043ee2f06b41473269765c2feae53fc2e2fbf96e5e22ca94fb5ad677856f06", size = 6540498 }, - { url = "https://files.pythonhosted.org/packages/18/53/773f5edca692009d883a72211b60fdaf8871cbef075eaa9d577f0a2f989e/pillow-12.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:f278f034eb75b4e8a13a54a876cc4a5ab39173d2cdd93a638e1b467fc545ac43", size = 7239413 }, - { url = "https://files.pythonhosted.org/packages/c9/e4/4b64a97d71b2a83158134abbb2f5bd3f8a2ea691361282f010998f339ec7/pillow-12.2.0-cp314-cp314t-win32.whl", hash = "sha256:6bb77b2dcb06b20f9f4b4a8454caa581cd4dd0643a08bacf821216a16d9c8354", size = 6482084 }, - { url = "https://files.pythonhosted.org/packages/ba/13/306d275efd3a3453f72114b7431c877d10b1154014c1ebbedd067770d629/pillow-12.2.0-cp314-cp314t-win_amd64.whl", hash = "sha256:6562ace0d3fb5f20ed7290f1f929cae41b25ae29528f2af1722966a0a02e2aa1", size = 7225152 }, - { url = "https://files.pythonhosted.org/packages/ff/6e/cf826fae916b8658848d7b9f38d88da6396895c676e8086fc0988073aaf8/pillow-12.2.0-cp314-cp314t-win_arm64.whl", hash = "sha256:aa88ccfe4e32d362816319ed727a004423aab09c5cea43c01a4b435643fa34eb", size = 2556579 }, +version = "13.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ce/a4/9cc30690a394a8305e8be4c9036aa16d0dfddadd09079860b582f562496d/pillow-13.0.0.tar.gz", hash = "sha256:cdcd1ba258178f7356d74170c9a81ba4eab6a5d55748bc402a5a2a6fe6be3510", size = 47058631, upload-time = "2026-10-16T22:18:09.718Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/b8/58d79332229482eb0d27c82973850808c19d37e5bdc14443d3417bd373f5/pillow-13.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:67c8d44ad89fa7eb88de5d6ef6199b1e03dd24974f85a67639fc8badb801fe79", size = 5568643, upload-time = "2026-10-16T22:15:44.474Z" }, + { url = "https://files.pythonhosted.org/packages/39/4b/f2ed53d83aa44ac19599ac0a54897f867fafb95f406980d1e24083f8cbe3/pillow-13.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fc481f742ccda20e9ed760b8f978dff50f2a4e9bc253ac167fb0a05b0783ef52", size = 4852329, upload-time = "2026-10-16T22:15:46.284Z" }, + { url = "https://files.pythonhosted.org/packages/3b/bb/9e30e8ed18c20800ee327a12107d5249ad8dc444867b3adfcc21654e3c71/pillow-13.0.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8bf295fe459343bc6093c8e5e0df60bfa189e0fcb775a22e2c2488fdeccc6c0d", size = 6519309, upload-time = "2026-10-16T22:15:48.14Z" }, + { url = "https://files.pythonhosted.org/packages/e6/99/fdf65cc539e266ab93546c261bdf98411fe165c6e4e13f9dbf597097192b/pillow-13.0.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:42d63be3af4f9b951b199b0a9d23365d37ab14687e6d77b74940432c8515c4ca", size = 7144542, upload-time = "2026-10-16T22:15:50.093Z" }, + { url = "https://files.pythonhosted.org/packages/26/9b/f38b7c4d8f599537e2d1a6d546cec9beef7536ff8f5c49a3f9c78179d8ac/pillow-13.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4bd024d567eca931b668978d672dba914d4b8e2628e2c3073a2ad178de8a2620", size = 6618042, upload-time = "2026-10-16T22:15:52.054Z" }, + { url = "https://files.pythonhosted.org/packages/a8/7c/45ee28531f89ee4582967d8a17f7a26d71ca64cd902b93c269590cd60a00/pillow-13.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:23edf4ec4b6f4f240e8df6e4985e9ee2ced86474632433e55fb1e2548744bf40", size = 7228137, upload-time = "2026-10-16T22:15:54.009Z" }, + { url = "https://files.pythonhosted.org/packages/01/bc/9c2a969cb1b70201d04fa17fd5aedf02a732870b8da86bceaaa30b0ca385/pillow-13.0.0-cp312-cp312-win32.whl", hash = "sha256:02464da86f561f410e13b061ec37c3068a9cb557a095494157742d07b3c24a27", size = 6515423, upload-time = "2026-10-16T22:15:56.25Z" }, + { url = "https://files.pythonhosted.org/packages/ff/cd/73a79ecdc822076002eb24b5e1e4a530b0bb5310fcb6d239abbec877110b/pillow-13.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:ff3fe9eb621fbb9db4c4be33ab946f6bac5f98ab50ca8d3260503653656c961b", size = 7272166, upload-time = "2026-10-16T22:15:58.597Z" }, + { url = "https://files.pythonhosted.org/packages/4a/a3/be5a1236efd085b3984e4305da8f179ae9dab80c991d2ad78f2bd5c4c843/pillow-13.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:c3bc8ee0271387e0b1e3ad0ff893645990a656e79bf9c42f4f734a3642b11d51", size = 2698943, upload-time = "2026-10-16T22:16:00.637Z" }, + { url = "https://files.pythonhosted.org/packages/82/e2/9132d38df320e8099e2642d9fa538f18a7dfebf68a875a31725dc2a115aa/pillow-13.0.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:e98b4f91f99b24b1da72e10621ba181f7281922384a7403094debb4199de6c00", size = 4190620, upload-time = "2026-10-16T22:16:02.527Z" }, + { url = "https://files.pythonhosted.org/packages/cb/be/436dac0996876f65ef1916ffb711c5ef4af2ebc57414b6f16642e07f6b47/pillow-13.0.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:34fb3db1149c879343861831728c243c432d4a5afc8f1878ca7612ef8de2a033", size = 4290286, upload-time = "2026-10-16T22:16:04.861Z" }, + { url = "https://files.pythonhosted.org/packages/60/16/7c1007162e4169ea0d5bec47e2e0b2174f56c50cf5b8c02a1dc23e41037e/pillow-13.0.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:2d50500a4a3bc6469adcdb319cf05d688b08ca3bf0f22a05339f3b25b433a599", size = 3723169, upload-time = "2026-10-16T22:16:06.956Z" }, + { url = "https://files.pythonhosted.org/packages/08/bc/578ab2eaa04705a8978bd9be0fe15c3d43a8fc95097c4f7e39540e79e4fa/pillow-13.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ef5fe6b7db3f501c56000ba8fe7c7e1a35ca1d45824fbeb95a67daa85cff4dbe", size = 5568469, upload-time = "2026-10-16T22:16:08.664Z" }, + { url = "https://files.pythonhosted.org/packages/98/c8/ccede3dcc4f274b80fb49199eed1ef34ba05566c8b71976b9d1f111da2e3/pillow-13.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f11a3c1358bb3c68012a7b1f41b223c3db9f7bfde90b481df028cfe1c3363313", size = 4852187, upload-time = "2026-10-16T22:16:10.693Z" }, + { url = "https://files.pythonhosted.org/packages/fb/3c/cd0770e96d20bfd990db024bcbd43897ff3e88da1f4782cf90ea231b1d4f/pillow-13.0.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:19b66ca0a4d25cc0200b381ce824c7ea090db61427315e73cfb05dbf1b35c369", size = 6515908, upload-time = "2026-10-16T22:16:12.896Z" }, + { url = "https://files.pythonhosted.org/packages/ef/fe/f5cdaa2d1c4086e757430f368c271a58ee29cfe7378e7ae7b9d964015c25/pillow-13.0.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5f56499c1a74d2b862beb0c33b8016f99d095858455df9d21583bbbc1c15b582", size = 7142544, upload-time = "2026-10-16T22:16:14.844Z" }, + { url = "https://files.pythonhosted.org/packages/fb/b5/a54f6d44adbcd23737c8c12953f42be107e4cca64e247c0ca3a5b563061c/pillow-13.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a2a14cd73d5e6c927f644b0110ee81f59c4ef506259ec9183904747f2caacc81", size = 6613097, upload-time = "2026-10-16T22:16:16.893Z" }, + { url = "https://files.pythonhosted.org/packages/e6/b4/9e6c1207c21b2e91db0d15c16d30f3701ce5add1bd4da0e787761e66cb6e/pillow-13.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:08b826a9bf1265c76de04a42061d61ea6b109418b7826f28ff1ecdfaa26c5502", size = 7224846, upload-time = "2026-10-16T22:16:19.195Z" }, + { url = "https://files.pythonhosted.org/packages/78/9f/d3c3cb0518f3dd1eee0ef501535f53d15597a53c5c4118d178086143397a/pillow-13.0.0-cp313-cp313-win32.whl", hash = "sha256:12b0fa15879fe5a9d9eebe66e4e2d74128a773b1a4448010c9c714f45e04b9d8", size = 6516013, upload-time = "2026-10-16T22:16:21.389Z" }, + { url = "https://files.pythonhosted.org/packages/d7/ed/1b16fb66a37e1b9e41370b93b2c614c7da761a5b2a41dc333f7af4639962/pillow-13.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:9dda0788a9932776a75d8bcc020076edc308ce2508b51f6739a45e3158b3fc42", size = 7284777, upload-time = "2026-10-16T22:16:23.393Z" }, + { url = "https://files.pythonhosted.org/packages/87/7d/8d02eba9f7ecc87f8e90f731e032cc4773802f2a843763afd0c66a535ff4/pillow-13.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:40a266371ece581e5de13b6635ef78d7487824af80561b6ca27694a88c19bc0f", size = 2698826, upload-time = "2026-10-16T22:16:25.382Z" }, + { url = "https://files.pythonhosted.org/packages/8e/45/fbad9c7f5e2f1745c373a434d46072bc84eddfefaa28b852425ac957fda6/pillow-13.0.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:44629d4498c9cb6b2051806155f22141df0d8a929c56134b166655232dfb2f8c", size = 4190721, upload-time = "2026-10-16T22:16:27.524Z" }, + { url = "https://files.pythonhosted.org/packages/a2/bf/2074902a259a90692c5dbf132885d21671644cbbd3f690047516243a55db/pillow-13.0.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:bf97ba1b5542050e9b0c74e632323b6d8136cc99d64e193abebee22fe6013c76", size = 4290236, upload-time = "2026-10-16T22:16:29.562Z" }, + { url = "https://files.pythonhosted.org/packages/ff/a5/3d1bb93b8ea38d15d21356c1b8e9f50971ac592aaa248f7fb71739094c0e/pillow-13.0.0-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:aa694c49787040943570d61c9b8fc01271bd2a2cfdd55f0d896f8aecdce1a981", size = 3723093, upload-time = "2026-10-16T22:16:31.249Z" }, + { url = "https://files.pythonhosted.org/packages/84/a1/be060135d85187b25fa8b2573786c0e45c62ae27527fff5257675eb97f4a/pillow-13.0.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:49c12af515073e9bf511e4ef736743bf70d531a643668722279314b937742ba4", size = 5572253, upload-time = "2026-10-16T22:16:33.103Z" }, + { url = "https://files.pythonhosted.org/packages/b5/f4/0bf6f1ac9ba7ee2ffe9914aeb410a1035a0c1a3c42f122388d7fc950bc4b/pillow-13.0.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:d9b0a2bee3f3e03e9f29057aedb807dbf1e1d96ee1b9d0f422d9db6c8583271d", size = 4852269, upload-time = "2026-10-16T22:16:35.102Z" }, + { url = "https://files.pythonhosted.org/packages/83/16/b603274617b3e6728da3a0133d4fba1ea8d7fbe0c4ea5fef9cbffa398b8b/pillow-13.0.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5933fcea5a5ba64c686f55c886a115cbfd92f2900460784a1e79909fdbafd7b6", size = 6516058, upload-time = "2026-10-16T22:16:37.228Z" }, + { url = "https://files.pythonhosted.org/packages/1d/f2/1371707ce438ba9a43f9d24089828494ec6f9396e28cd7903aa704dd6306/pillow-13.0.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e91c2b1cbeae768c98752e67e717e283d68dae45717b41f2d91eaee648e37b7d", size = 7142574, upload-time = "2026-10-16T22:16:39.172Z" }, + { url = "https://files.pythonhosted.org/packages/b9/a9/62cf68587f910bc87c5951bcb6e9430c7643a65076adf5f18b4bf350e2bd/pillow-13.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7f6299e494e46253d40c34653cac369412f44ca53b5f85d848d3f95b1ed0546c", size = 6614295, upload-time = "2026-10-16T22:16:41.117Z" }, + { url = "https://files.pythonhosted.org/packages/6c/c9/9e9b48178649730299be0bafbf5f810a5b6977538f5a92d47e4ba5f5d608/pillow-13.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:f9bd7d260d986f3553518c5d723544346fa48031f8aef3265d786aeb59845bc0", size = 7224841, upload-time = "2026-10-16T22:16:43.118Z" }, + { url = "https://files.pythonhosted.org/packages/8f/48/c44e91384b1b6c072a714a63d00608acc16a6a968735e478e4be4384e5ac/pillow-13.0.0-cp314-cp314-win32.whl", hash = "sha256:2e31c4e68cffd7b1f116127626813b82fcba19edf6b940a7b0c266d6484d0055", size = 6508694, upload-time = "2026-10-16T22:16:45.883Z" }, + { url = "https://files.pythonhosted.org/packages/50/e2/7ad17747517e4c813dca78257d6bb593466f8231baf1384bc98d92745edb/pillow-13.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:f7cbb7a64e7ec664775195e4f81923bc8a93d9451b963f844e59118f63147a7a", size = 7281830, upload-time = "2026-10-16T22:16:47.725Z" }, + { url = "https://files.pythonhosted.org/packages/41/9f/e5b51f2ce8ef4563215334035403ce61a244f93a2e65c24a940131618f87/pillow-13.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:a6aaa7871aebca081eb5c45f83e845bbd9712ae99fa9286dbfdcee835e63f4b4", size = 2695468, upload-time = "2026-10-16T22:16:49.515Z" }, + { url = "https://files.pythonhosted.org/packages/97/73/a53502f731f6c84805a4ce87a8881e86d07a65aee64728b900d112dc703e/pillow-13.0.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:7b999816b5850a35ada08443e6e03945f1f6488144a83afe2d37b240a552aafa", size = 5578196, upload-time = "2026-10-16T22:16:51.291Z" }, + { url = "https://files.pythonhosted.org/packages/21/50/7e949959a56b5559c78ef172b70fc6025706acb289f3f648a15329e4fa6f/pillow-13.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:67871a13cf47275201553b536c025da777f997fa562a19eb798af4ad4b97c18f", size = 4857276, upload-time = "2026-10-16T22:16:53.399Z" }, + { url = "https://files.pythonhosted.org/packages/c9/52/43ded0ac08e77e39d17bd6d894162572201b5e8fdc4a022b14c55a1960a4/pillow-13.0.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e8ca8f69b7c77fa96dad99f8638c1fc4f1c0bed4acaa1baf7a3c31bdb80a0ab1", size = 6607008, upload-time = "2026-10-16T22:16:55.525Z" }, + { url = "https://files.pythonhosted.org/packages/0d/2e/4a57ed216d5bf877387cba4d44c02aa87abe51ad2e06404aa6b597c4da39/pillow-13.0.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6bce6a29c3898191f4c9998e4d4e8f69790caeabde46e54da4bc235ce5bde683", size = 7224281, upload-time = "2026-10-16T22:16:57.738Z" }, + { url = "https://files.pythonhosted.org/packages/5c/3d/2929b248e135752d63aaeabf53f6de797e905b7b6263f9c1e2adade20aba/pillow-13.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:816752a5ef76a80484c8c441c85593b7ea9304f6231fc5776ad1fbff7e773058", size = 6695600, upload-time = "2026-10-16T22:16:59.842Z" }, + { url = "https://files.pythonhosted.org/packages/bc/33/fb0da992cf084ed1ee6ee05e96b6191e35c351eb707ca2df874feb24ce47/pillow-13.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5bdb38ba220b61b4ec31dd1046dea6b016d3c6850a23f43ed8b58332b2fc668e", size = 7300589, upload-time = "2026-10-16T22:17:01.686Z" }, + { url = "https://files.pythonhosted.org/packages/bb/af/c30dd9ef6a3dce84ecb1b2393cac629047a32e66279056c6cb46c3ffd65c/pillow-13.0.0-cp314-cp314t-win32.whl", hash = "sha256:06903aac074d00c988e77a1fc435286dc498506d4ca8d6f69df9babddf4ecc15", size = 6517204, upload-time = "2026-10-16T22:17:03.722Z" }, + { url = "https://files.pythonhosted.org/packages/85/d5/ef3a8ae7609c8ab26570abf18194882534b480d245a9148b895a2262c004/pillow-13.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:9a635068d9793c7f0d929f39f18b58f1bd86c236e8e7b64167b86af9232ebca0", size = 7286695, upload-time = "2026-10-16T22:17:05.543Z" }, + { url = "https://files.pythonhosted.org/packages/84/3c/0861db0c69a03689ebe3e7599d35668a414deb5aaafd8255215e4e62e3d3/pillow-13.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0d1a9cf7bc6917538b20f8d06b9ab2147e542f68849e96fc58eb66bdf6acc692", size = 2698098, upload-time = "2026-10-16T22:17:07.674Z" }, + { url = "https://files.pythonhosted.org/packages/6e/eb/e86a41962a3a31ad495a3d6a912d9002b01bba4a6fa71c28703abdca7f69/pillow-13.0.0-cp315-cp315-ios_13_0_arm64_iphoneos.whl", hash = "sha256:7d5e097eabd5d4915c27ac9f6e9325bb1e01a7c94d7348b5c4451d3fc30e8521", size = 4191213, upload-time = "2026-10-16T22:17:09.449Z" }, + { url = "https://files.pythonhosted.org/packages/dd/04/7e7445e706afec84ef06dc25b2c77f9cecff242c23730c62928ad1089d4a/pillow-13.0.0-cp315-cp315-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:51ebb529fc5e8abdd55302f6c3f8943037348ec2384329a3e55677f69ae2fdfc", size = 4290650, upload-time = "2026-10-16T22:17:11.196Z" }, + { url = "https://files.pythonhosted.org/packages/46/85/d534089068ac40c0f61f650389a296c812eab745a8a733f81feec39ae955/pillow-13.0.0-cp315-cp315-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:c87a04e7f152ee4db5dbe15f0bfa3fe628a1aeedbe66b81c43b87f52c813f9ac", size = 3723078, upload-time = "2026-10-16T22:17:12.772Z" }, + { url = "https://files.pythonhosted.org/packages/ce/2b/00b5c3b401df538b5dbe311d3899730fae5ba1e21cb8b80a128887ac6747/pillow-13.0.0-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:20722cd5375533ad754053363a80b8fb30c79d37930a6f7228030e237ce3bd5d", size = 5572292, upload-time = "2026-10-16T22:17:14.539Z" }, + { url = "https://files.pythonhosted.org/packages/72/f5/a6b0610f946e9b54ae888ba7ad29d6e2f8d9b11f69e212d70416b7186c09/pillow-13.0.0-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:04a63720f79e22fd54d897c233a68314c50ca0603360f54ce2bd5db8f0f43782", size = 4852222, upload-time = "2026-10-16T22:17:16.521Z" }, + { url = "https://files.pythonhosted.org/packages/1e/d0/c0ff25bb0427ec70f32aac995453321fc3c4494a46c7292ff02d9d260b04/pillow-13.0.0-cp315-cp315-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4f8db54177035a2b5f717f94475b74907e12a96dc74f6d487f3966b0a4694071", size = 6527349, upload-time = "2026-10-16T22:17:18.534Z" }, + { url = "https://files.pythonhosted.org/packages/85/11/e46fa0bcc0fc117f1eacc206b3d51f04d583fab328b4b740672d0438d83f/pillow-13.0.0-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8f36aa77f74b14a2103622b196402c71330e4e7cf4122ee45c854e9a01e0eecf", size = 7152873, upload-time = "2026-10-16T22:17:20.415Z" }, + { url = "https://files.pythonhosted.org/packages/7c/53/2bdeca705f3a58679fa9201233193c86a30238340ca29b3a152c3fcc719b/pillow-13.0.0-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:149a1c323ba366f90b48e6f1a6db6582eb50512df374588de56fc909abc0f0f3", size = 6626871, upload-time = "2026-10-16T22:17:22.361Z" }, + { url = "https://files.pythonhosted.org/packages/14/de/3829030f209722ade3753bb456b805a0e7f885cf885b483407365c82e9ca/pillow-13.0.0-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:e892354a424b1e82a78ba16785822bdd40de06f19446a3d4a28047df1a4f8932", size = 7236439, upload-time = "2026-10-16T22:17:24.352Z" }, + { url = "https://files.pythonhosted.org/packages/44/b1/67fc37388382bc036a74f04da5bb6fcbf90ec3ac1f45893e06176c373fd3/pillow-13.0.0-cp315-cp315-win32.whl", hash = "sha256:8e459b613cf31f8980f584387b4fe47bf08e076e288d61aa8eba1f7fd4ddbb81", size = 6508688, upload-time = "2026-10-16T22:17:26.314Z" }, + { url = "https://files.pythonhosted.org/packages/44/05/fdb6a79aee10861165526b41b7b440e36ee1ff58613b2fbefe3acbf06d4f/pillow-13.0.0-cp315-cp315-win_amd64.whl", hash = "sha256:d4737f50d23ddd11d6685faacbb9252887dde0bc7997127757247983d74399d6", size = 7281107, upload-time = "2026-10-16T22:17:28.198Z" }, + { url = "https://files.pythonhosted.org/packages/e6/9c/6c6f7dc2a566467baf121394e83de25ac287cffe34cc030726beb4be0224/pillow-13.0.0-cp315-cp315-win_arm64.whl", hash = "sha256:2310e2adfc13c6d457d7d0f2ffdd5c56a74a317650cf765887df8d515a647ac0", size = 2695513, upload-time = "2026-10-16T22:17:30.013Z" }, + { url = "https://files.pythonhosted.org/packages/23/16/e9120defdb8bff693b582d035312acc6f530cdc2bc5238a87f410efccd82/pillow-13.0.0-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:21c32061a5512dc13f87cc7303e120e4d77c2f70df89a35af0e3ce246e5ac57f", size = 5578129, upload-time = "2026-10-16T22:17:31.642Z" }, + { url = "https://files.pythonhosted.org/packages/47/22/76faf2bb2448f48a84cf894c1e2bb1090d7d2b1aa521ece131cb2f05d631/pillow-13.0.0-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:1c774b9c0ba0d0b356f71530677b39028878a2cae5a93e0a13779cfd17120f88", size = 4857428, upload-time = "2026-10-16T22:17:33.43Z" }, + { url = "https://files.pythonhosted.org/packages/b3/64/0861ea4e03c50b14af9ed9dd8b9f388ab42f445c623a9fcbab19aef7aa55/pillow-13.0.0-cp315-cp315t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:20822140c9a2ba9c5e42df342b0a892ab2e102fc0e3db967a133bb9ce3f898bb", size = 6612582, upload-time = "2026-10-16T22:17:35.415Z" }, + { url = "https://files.pythonhosted.org/packages/5c/20/cd1e9b3f60a9f3d5ebe46da36955c26004092a501f7f2c42f9fcc26611bc/pillow-13.0.0-cp315-cp315t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ffea6b2986a797c84b6d1d27d4f43e0b83c73fc16281a930891cd237cf0d08fe", size = 7230176, upload-time = "2026-10-16T22:17:37.362Z" }, + { url = "https://files.pythonhosted.org/packages/b6/ef/ffb0a2fc85690714fb7ac662956949645d57f15bf4426f520da361e7b6e3/pillow-13.0.0-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:05cd2cd39055d0b9650060e4513ef4a9a0aea870083950bd046a0d6490f93a22", size = 6703640, upload-time = "2026-10-16T22:17:39.313Z" }, + { url = "https://files.pythonhosted.org/packages/e0/c2/6402ee3ccb3363aeed8fdb3f9fe56703ac5377a539f0b81b53999d7e121f/pillow-13.0.0-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:c6fd031333dedcad7ce3e03d244093f43504f209e86925ebdb2b868fa4037630", size = 7309231, upload-time = "2026-10-16T22:17:41.021Z" }, + { url = "https://files.pythonhosted.org/packages/fc/96/d6b82e8b8c06ad143b66b12e0b31051e4bf489b4fabca1f390a14fe1ebde/pillow-13.0.0-cp315-cp315t-win32.whl", hash = "sha256:c50c80e3591e5cf9a8dfa6007d4f10732f02e32263850999286e56ccd650cfb2", size = 6517200, upload-time = "2026-10-16T22:17:42.886Z" }, + { url = "https://files.pythonhosted.org/packages/60/d4/0062e6005e9b270b165015aafd343364ac378ec5a685431ea42baad33357/pillow-13.0.0-cp315-cp315t-win_amd64.whl", hash = "sha256:adb3c2124c68e480f4632d06cb7caa3b48a51678475f483b4edb1c6dee29ea43", size = 7287488, upload-time = "2026-10-16T22:17:45.56Z" }, + { url = "https://files.pythonhosted.org/packages/e4/81/b8eb349746be7bce47dd95337c6634e84910af91b59aaa9159c034c614fa/pillow-13.0.0-cp315-cp315t-win_arm64.whl", hash = "sha256:4a25756244bdcce3b50580baadf320fa48297f0eeb8e114ba64139a40d4d0fc8", size = 2698073, upload-time = "2026-10-16T22:17:47.556Z" }, + { url = "https://files.pythonhosted.org/packages/60/da/f6d644e631c5b370c5d0b899f3ccadd2780aab070b29a110527cf4e1fd2c/pillow-13.0.0-pp312-pypy312_pp80-macosx_10_15_x86_64.whl", hash = "sha256:8619685cad8efc4c38c66d3b36aad854523297c43d748b3b6f0cc03c90ba3463", size = 5523188, upload-time = "2026-10-16T22:17:59.334Z" }, + { url = "https://files.pythonhosted.org/packages/e4/b0/2594f202d743a35d4fe80682bfd96f277e5ca7aecb27cf64ef5bfc1d000b/pillow-13.0.0-pp312-pypy312_pp80-macosx_11_0_arm64.whl", hash = "sha256:7e91e97a929232cdb828889ee6ad0e48d7f40f4ec38818f4e4a8968b2b1af22e", size = 4806808, upload-time = "2026-10-16T22:18:01.188Z" }, + { url = "https://files.pythonhosted.org/packages/8e/ed/d504165ef79af6fafe25c76726cf30f544cc236002f7ed054f1d51adc4ff/pillow-13.0.0-pp312-pypy312_pp80-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:93ff9c9c3663ce23aaa5d0b6b6abac55359e2a0c06c7e30f3771829af816be63", size = 5464358, upload-time = "2026-10-16T22:18:02.779Z" }, + { url = "https://files.pythonhosted.org/packages/7b/fe/a10aba5503ca13e9e009b8bd0a1a4ce5584bdce246245fd6f3a83701369c/pillow-13.0.0-pp312-pypy312_pp80-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e65dd6e75de67b2362a4fa3e16aa627595f65054dc4ec73d64680c84d592fa61", size = 6043514, upload-time = "2026-10-16T22:18:04.538Z" }, + { url = "https://files.pythonhosted.org/packages/c0/37/66b12dc476041fe523bca29c9d58fbf1ea92a4eaf73acfb9e993948f1191/pillow-13.0.0-pp312-pypy312_pp80-win_amd64.whl", hash = "sha256:567f20f1c75897d7663830da6ea8af719e03d712b1d9ee7f813319f9ece42e5a", size = 7366030, upload-time = "2026-10-16T22:18:06.638Z" }, ] [[package]] name = "pint" -version = "0.25.3" +version = "0.26.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "flexcache" }, @@ -2141,133 +2229,150 @@ dependencies = [ { name = "platformdirs" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/52/9d/b1379cdbd33a49d17d627bc24e2b63cca06a1c5343b38072d2889499e82e/pint-0.25.3.tar.gz", hash = "sha256:f8f5df6cf65314d74da1ade1bf96f8e3e4d0c41b51577ac53c49e7d44ca5acee", size = 255106 } +sdist = { url = "https://files.pythonhosted.org/packages/d3/b0/cef9c8913ebe959d97b2d57b1fc2a77a4291c4f2bd4dc3fe4d3313c938ea/pint-0.26.2.tar.gz", hash = "sha256:391e5d2fc01fdb121c113b8eb47386688575542c1f5144c465ff318bf5133573", size = 295834, upload-time = "2026-10-19T19:49:31.845Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/1b/dd/a9fe6a0a09512da23951c68bf36466aeecd89def3183dc095edbc807ddc5/pint-0.25.3-py3-none-any.whl", hash = "sha256:27eb25143bd5de9fcc4d5a4b484f16faf6b4615aa93ece6b3373a8c1a3c1b97d", size = 307488 }, + { url = "https://files.pythonhosted.org/packages/b7/d5/01ea71591a29e88926582e3ca7ed32f8b933e9ebc99187a7ab100587242d/pint-0.26.2-py3-none-any.whl", hash = "sha256:c94124cdb19baa1a84bb65c8bb9a620a9636b9b9cd80f32f30ad7ff795ea2eb8", size = 351853, upload-time = "2026-10-19T19:49:29.966Z" }, ] [[package]] name = "platformdirs" -version = "4.10.0" +version = "4.13.5" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d7/47/e4501f49c178ae1d9f4a75073fda4204f52647993f075a9db4d14930e0c5/platformdirs-4.10.0.tar.gz", hash = "sha256:31e761a6a0ca04faf7353ea759bdba55652be214725111e5aac52dfa29d4bef7", size = 31224 } +sdist = { url = "https://files.pythonhosted.org/packages/58/e6/d0abbb256b44e6a05748c6942511ff67db8dbb068de0c35b24bf1b395b09/platformdirs-4.13.5.tar.gz", hash = "sha256:05831adf87d392760f4b5c3a0a95579ab5a10b18b9b9bd43680dcb47544788a0", size = 62362, upload-time = "2026-10-19T01:02:11.778Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/81/e6/cd9575ac904136b3cbf7aa7ee819ef86eedb7274e46f230e94ea4342e729/platformdirs-4.10.0-py3-none-any.whl", hash = "sha256:fb516cdb12eb0d857d0cd85a7c57cea4d060bee4578d6cf5a14dfdf8cbf8784a", size = 22743 }, + { url = "https://files.pythonhosted.org/packages/6c/8a/1d8cb3842909dc193a73835adedf412e32e18f8ffd59f43983949622fe6f/platformdirs-4.13.5-py3-none-any.whl", hash = "sha256:53d3ec4280b815c1e0b02edad7f9ee8fda1ba9c0865dd9c2e6e63849ce82fc1e", size = 32779, upload-time = "2026-10-19T01:02:10.17Z" }, ] [[package]] name = "pluggy" -version = "1.6.0" +version = "1.7.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412 } +sdist = { url = "https://files.pythonhosted.org/packages/bf/db/7fc19e6f2dc92a966727031389fc2e08b558f0f25eb7403c1119ad4713cd/pluggy-1.7.0.tar.gz", hash = "sha256:d1eaa46ebb595891b860ab086b4d09c8588af65ebd4361b8e8f4bb8920b90ba8", size = 123304, upload-time = "2026-10-15T09:50:58.343Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538 }, + { url = "https://files.pythonhosted.org/packages/40/9e/2b38731e0fc536806f16490e1a12d7f0dc2a1235aa8cc07bcc75416a7daa/pluggy-1.7.0-py3-none-any.whl", hash = "sha256:7dd7b0d8832ba3cb632c306926ded123429211b83641b35dc5c41ad2d34f9bec", size = 27082, upload-time = "2026-10-15T09:50:56.808Z" }, ] [[package]] name = "prompt-toolkit" -version = "3.0.52" +version = "3.0.53" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "wcwidth" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a1/96/06e01a7b38dce6fe1db213e061a4602dd6032a8a97ef6c1a862537732421/prompt_toolkit-3.0.52.tar.gz", hash = "sha256:28cde192929c8e7321de85de1ddbe736f1375148b02f2e17edd840042b1be855", size = 434198 } +sdist = { url = "https://files.pythonhosted.org/packages/7d/ea/39b988c938f75cb75d7045b5c69f8bfed47ee2152c8837fb403de29d6fb8/prompt_toolkit-3.0.53.tar.gz", hash = "sha256:9ec8a0ad96d5c56148b3f914aa79c1564c3fde5d2e6b876e7bc327e353cf8fa6", size = 435492, upload-time = "2026-07-26T20:56:14.758Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/84/03/0d3ce49e2505ae70cf43bc5bb3033955d2fc9f932163e84dc0779cc47f48/prompt_toolkit-3.0.52-py3-none-any.whl", hash = "sha256:9aac639a3bbd33284347de5ad8d68ecc044b91a762dc39b7c21095fcd6a19955", size = 391431 }, + { url = "https://files.pythonhosted.org/packages/54/6f/84908cad2d6aa5144abcf7b42709fe4fdb459bc640ec7ac5786e7693dabc/prompt_toolkit-3.0.53-py3-none-any.whl", hash = "sha256:01c0891d7f9237d5e339f7d3e42cdae80b7534abb1c7c0e3352efba6231492f2", size = 392288, upload-time = "2026-07-26T20:56:12.512Z" }, ] [[package]] name = "propcache" -version = "0.5.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ec/44/c87281c333769159c50594f22610f77398a47ccbfbbf23074e744e86f87c/propcache-0.5.2.tar.gz", hash = "sha256:01c4fc7480cd0598bb4b57022df55b9ca296da7fc5a8760bd8451a7e63a7d427", size = 50208 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/4a/cb/e27bc2b2737a0bb49962b275efa051e8f1c35a936df7d5139b6b658b7dc9/propcache-0.5.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:806719138ecd720339a12410fb9614ac9b2b2d3a5fdf8235d56981c36f4039ba", size = 95887 }, - { url = "https://files.pythonhosted.org/packages/e6/13/b8ae04c59392f8d11c6cd9fb4011d1dc7c86b81225c770280300e259ffe1/propcache-0.5.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:db2b80ea58eab4f86b2beec3cc8b39e8ff9276ac20e96b7cce43c8ae84cd6b5a", size = 54654 }, - { url = "https://files.pythonhosted.org/packages/2c/7d/49777a3e20b55863d4794384a38acd460c04157b0a00f8602b0d508b8431/propcache-0.5.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e5cbfac9f61484f7e9f3597775500cd3ebe8274e9b050c38f9525c77c97520bf", size = 55190 }, - { url = "https://files.pythonhosted.org/packages/44/c7/085d0cd63062e84044e3f05797749c3f8e3938ff3aeb0eb2f69d43fafc91/propcache-0.5.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5dbc581d2814337da56222fab8dc5f161cd798a434e49bac27930aaef798e144", size = 59995 }, - { url = "https://files.pythonhosted.org/packages/9c/42/32cf8e3009e92b2645cf1e944f701e8ea4e924dffde1ee26db860bcbf7e4/propcache-0.5.2-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:857187f381f88c8e2fa2fe56ab94879d011b883d5a2ee5a1b60a8cd2a06846d9", size = 63422 }, - { url = "https://files.pythonhosted.org/packages/9e/1b/f112433f99fc979431b87a39ef169e3f8df070d99a72792c56d6937ac48b/propcache-0.5.2-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:178b4a2cdaac1818e2bf1c5a99b94383fa73ea5382e032a48dec07dc5668dc42", size = 64342 }, - { url = "https://files.pythonhosted.org/packages/14/15/5574111ae50dd6e879456888c0eadd4c5a869959775854e18e18a6b345f3/propcache-0.5.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6f328175a2cde1f0ff2c4ed8ce968b9dcfb55f3a7153f39e2957ed994da13476", size = 61639 }, - { url = "https://files.pythonhosted.org/packages/cc/da/4d775080b1490c0ae604acda868bd71aabe3a89ed16f2aa4339eb8a283e7/propcache-0.5.2-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:5671d09a36b06d0fd4a3da0fccbcae360e9b1570924171a15e9e0997f0249fba", size = 61588 }, - { url = "https://files.pythonhosted.org/packages/04/ac/f076982cbe2195ee9cf32de5a1e46951d9fb399fc207f390562dd0fd8fb2/propcache-0.5.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:80168e2ebe4d3ec6599d10ad8f520304ae1cad9b6c5a95372aef1b66b7bfb53a", size = 60029 }, - { url = "https://files.pythonhosted.org/packages/70/60/189be62e0dd898dce3b331e1b8c7a543cd3a405ac0c81fe8ee8a9d5d77e1/propcache-0.5.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:45f11346f884bc47444f6e6647131055844134c3175b629f84952e2b5cd62b64", size = 56774 }, - { url = "https://files.pythonhosted.org/packages/ea/9e/93377b9c7939c1ffae98f878dee955efadfd638078bc86dbc21f9d52f651/propcache-0.5.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:8e778ebd44ef4f66ed60a0416b06b489687db264a9c0b3620362f26489492913", size = 63532 }, - { url = "https://files.pythonhosted.org/packages/14/f9/590ef6cfb9b8028d516d287812ece32bb0bc5f11fbb9c8bf6b2e6313fec8/propcache-0.5.2-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:c0cb9ed24c8964e172768d455a38254c2dd8a552905729ce006cad3d3dda59b1", size = 61592 }, - { url = "https://files.pythonhosted.org/packages/b4/5e/70958b3034c297a630bba2f17ca7abc2d5f39a803ad7e370ab79d1ecd022/propcache-0.5.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:1d1ad32d9d4355e2be65574fd0bfd3677e7066b009cd5b9b2dee8aa6a6393b33", size = 64788 }, - { url = "https://files.pythonhosted.org/packages/12/fd/77fe5936d8c3086ca9048f7f415f122ed82e53884a9ec193646b42deef06/propcache-0.5.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c80f4ba3e8f00189165999a742ee526ebeccedf6c3f7beb0c7df821e9772435a", size = 62514 }, - { url = "https://files.pythonhosted.org/packages/cf/74/66bd798b5b3be70aa1b391f5cc9d6a0a5532d7fd3b19ec0b213e72e6ad9d/propcache-0.5.2-cp312-cp312-win32.whl", hash = "sha256:8c7972d8f193740d9175f0998ab38717e6cd322d5935c5b0fef8c0d323fd9031", size = 39018 }, - { url = "https://files.pythonhosted.org/packages/61/7c/5c0d34aa3024694d6dcb9271cdbdd08c4e47c1c0ad95ec7e7bc74cdea145/propcache-0.5.2-cp312-cp312-win_amd64.whl", hash = "sha256:d9ee8826a7d47863a08ac44e1a5f611a462eefc3a194b492da242128bec75b42", size = 42322 }, - { url = "https://files.pythonhosted.org/packages/4d/91/875812f1a3feb20ceba818ef39fbe4d92f1081e04ac815c822496d0d038b/propcache-0.5.2-cp312-cp312-win_arm64.whl", hash = "sha256:2800a4a8ead6b28cccd1ec54b59346f0def7922ee1c7598e8499c733cfbb7c84", size = 38172 }, - { url = "https://files.pythonhosted.org/packages/c5/09/f049e45385503fe67db75a6b6186a7b9f0c3930366dc960522c312a825b1/propcache-0.5.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:099aaf4b4d1a02265b92a977edf00b5c4f63b3b17ac6de39b0d637c9cac0188a", size = 94457 }, - { url = "https://files.pythonhosted.org/packages/6b/65/83d1d05655baf63113731bd5a1008435e14f8d1e5a06cbe4ec5b23ad7a31/propcache-0.5.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:68ce1c44c7a813a7f71ea04315a8c7b330b63db99d059a797a4651bb6f69f117", size = 53835 }, - { url = "https://files.pythonhosted.org/packages/a9/12/a6ba6482bb5ea3260c000c9b20881c95fa11c6b30173715668259f844ed7/propcache-0.5.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:fc299c129490f55f254cd90be0deca4764e36e9a7c08b4aa588479a3bbed3098", size = 54545 }, - { url = "https://files.pythonhosted.org/packages/a9/19/7fa086f5764c59ec8a8e157cd93aa8497acc00aba9dcdec56bfffb32602d/propcache-0.5.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a6ae2198be502c10f09b2516e7b5d019816924bc3183a43ce792a7bd6625e6f4", size = 59886 }, - { url = "https://files.pythonhosted.org/packages/a1/e4/5d7663dc8235956c8f5281698a3af1d351d8820341ddd890f59d9a9127f2/propcache-0.5.2-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6041d31504dc1779d700e1edcfb08eea334b357620b06681a4eabb57a74e574e", size = 63261 }, - { url = "https://files.pythonhosted.org/packages/4a/4a/15a03adee24d6350da4292caeac44c34c033d2afe5e87eb370f38854560f/propcache-0.5.2-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f7eabc04151c78a9f4d5bbb5f1faf571e4defeb4b585e0fe95b60ff2dbe4d3d7", size = 64184 }, - { url = "https://files.pythonhosted.org/packages/8b/c6/979176efdaa3d239e36d503d5af63a0a773b36662ed8f52e5b6a6d9fd40e/propcache-0.5.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4db0ba63d693afd40d249bd93f842b5f144f8fcbb83de05660373bcf30517b1d", size = 61534 }, - { url = "https://files.pythonhosted.org/packages/c8/22/63e8cd1bae4c2d2be6493b6b7d10566ddafad88137cfbc99964a1119853c/propcache-0.5.2-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:1dbcf7675229b35d31abb6547d8ebc8c27a830ac3f9a794edff6254873ec7c0a", size = 61500 }, - { url = "https://files.pythonhosted.org/packages/60/5a/28e5d9acbac1cc9ccb67045e8c1b943aa8d79fdf39c93bd73cacd68008ea/propcache-0.5.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d310c013aad2c72f1c3f2f8dd3279d460a858c551f97aeb8c63e4693cca7b4d2", size = 59994 }, - { url = "https://files.pythonhosted.org/packages/f3/40/db650677f554a95b9c01a7c9d93d629e93a15562f5deb4573c9ee136fed2/propcache-0.5.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:06187263ddad280d05b4d8a8b3bb7d164cbebd469236544a42e6d9b28ac6a4fa", size = 56884 }, - { url = "https://files.pythonhosted.org/packages/80/45/70b39b89516ff8b96bf732fa6fded8cef20f293cb1508690101c3c07ec51/propcache-0.5.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:3115559b8effafd63b142ea5ed53d63a16ea6469cbc63dce4ee194b42db5d853", size = 63464 }, - { url = "https://files.pythonhosted.org/packages/f9/e2/fa59d3a89eac5534293124af4f1d0d0ada091ce4a0ab4610ce03fd2bdd8d/propcache-0.5.2-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c60462af8e6dc30c35407c7237ea908d777b22862bbee27bc4699c0d8bcdc45a", size = 61588 }, - { url = "https://files.pythonhosted.org/packages/0b/97/efb547a55c4bc7381cfb202d6a2239ac621045277bc1ea5dfd3a7f0516c0/propcache-0.5.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:40314bca9ac559716fe374094fc81c11dcc34b64fd6c585360f5775690505704", size = 64667 }, - { url = "https://files.pythonhosted.org/packages/92/56/f5c7d9b4b7595d5127da38974d791b2153f3d1eae6c674af3583ace92ad3/propcache-0.5.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:cfa21e036ce1e1db2be04ba3b85d2df1bb1702fa01932d984c5464c665228ff4", size = 62463 }, - { url = "https://files.pythonhosted.org/packages/bd/3b/484a3a65fc9f9f60c41dcd17b428bace5389544e2c680994534a20755066/propcache-0.5.2-cp313-cp313-win32.whl", hash = "sha256:f156a3529f38063b6dbaf356e15602a7f95f8055b1295a438433a6386f10463d", size = 38621 }, - { url = "https://files.pythonhosted.org/packages/1c/fd/3f0f10dba4dabad3bf53102be007abf55481067952bde0fdddff439e7c61/propcache-0.5.2-cp313-cp313-win_amd64.whl", hash = "sha256:dfed59d0a5aeb01e242e66ff0300bc4a265a7c05f612d30016f0b60b1017d757", size = 41649 }, - { url = "https://files.pythonhosted.org/packages/90/ec/6ce619cc32bb500a482f811f9cd509368b4e58e638d13f2c68f370d6b475/propcache-0.5.2-cp313-cp313-win_arm64.whl", hash = "sha256:ba338430e87ceb9c8f0cf754de38a9860560261e56c00376debd628698a7364f", size = 37636 }, - { url = "https://files.pythonhosted.org/packages/1b/82/c1d268bbbf2ef981c5bf0fbbe746db617c66e3bcefe431a1aa8943fbe23a/propcache-0.5.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:a592f5f3da71c8691c788c13cb6734b6d17663d2e1cb8caddf0673d01ef8847d", size = 98872 }, - { url = "https://files.pythonhosted.org/packages/f4/d4/52c871e73e864e6b34c0e2d58ac1ec5ccd149497ddc7ad2137ae98323a35/propcache-0.5.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:6a997d0489e9668a384fcfd5061b857aa5361de73191cac204d04b889cfbbafa", size = 56257 }, - { url = "https://files.pythonhosted.org/packages/67/f0/9b90ca2a210b3d09bcfcd96ecd0f55545c091535abce2a45de2775cfd357/propcache-0.5.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:10734b5484ea113152ee25a91dccedf81631791805d2c9ccb054958e51842c94", size = 56696 }, - { url = "https://files.pythonhosted.org/packages/9d/0e/6e9d4ba07c8e56e21ddec1e75f12148142b21ca83a51871babce095334f4/propcache-0.5.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cafca7e56c12bb02ae16d283742bef25a61122e9dab2b5b3f2ccbe589ce32164", size = 62378 }, - { url = "https://files.pythonhosted.org/packages/65/19/c10badaa463dde8a27ce884f8ee2ec37e6035b7c9f5ff0c8f74f06f08dac/propcache-0.5.2-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f064f8d2b59177878b7615df1735cd8fe3462ed6be8c7b217d17a276489c2b7f", size = 65283 }, - { url = "https://files.pythonhosted.org/packages/b0/b6/93bea99ca80e19cef6512a8580e5b7857bbe09422d9daa7fd4ef5723306c/propcache-0.5.2-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f78abfa8dfc32376fd1aacf597b2f2fbbe0ea751419aee718af5d4f82537ef8c", size = 66616 }, - { url = "https://files.pythonhosted.org/packages/83/e4/5c7462e50625f051f37fb38b8224f7639f667184bbd34424ec83819bb1b7/propcache-0.5.2-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f7467da8a9822bf1a55336f877340c5bcbd3c482afc43a99771169f74a26dedc", size = 63773 }, - { url = "https://files.pythonhosted.org/packages/ca/b6/99238894047b13c823be25027e736626cd414a52a5e30d2c3347c2733529/propcache-0.5.2-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a6ddc6ac9e25de626c1f129c1b467d7ecd33ce2237d3fd0c4e429feef0a7ee1f", size = 63664 }, - { url = "https://files.pythonhosted.org/packages/85/1e/a3a1a63116a2b8edb415a8bb9a6f0c34bd03830b1e18e8ce2904e1dc1cf4/propcache-0.5.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:2f22cbbac9e26a8e864c0985ff1268d5d939d53d9d9411a9824279097e03a2cb", size = 62643 }, - { url = "https://files.pythonhosted.org/packages/e4/03/893cf147de2fc6543c5eaa07ad833170e7e2a2385725bbebe8c0503723bb/propcache-0.5.2-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:fc76378c62a0f04d0cd82fbb1a2cd2d7e28fcb40d5873f28a6c44e388aaa2751", size = 59595 }, - { url = "https://files.pythonhosted.org/packages/86/3b/04c1a2e12c57766568ba75ba72b3bf2042818d4c1425fab6fc07155c7cff/propcache-0.5.2-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:acd2c8edba48e31e58a363b8cf4e5c7db3b04b3f9e371f601df30d9b0d244836", size = 65711 }, - { url = "https://files.pythonhosted.org/packages/1c/34/80f8d0099f8d6bacc4de1624c85672681c8cd1149ca2da0e38fd120b817f/propcache-0.5.2-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:452b5065457eb9991ec5eb38ff41d6cd4c991c9ac7c531c4d5849ae473a9a13f", size = 64247 }, - { url = "https://files.pythonhosted.org/packages/f3/1a/8b08f3a5f1037e9e370c55883ceeeee0f6dd0416fb2d2d67b8bfc91f2a79/propcache-0.5.2-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:3430bb2bfe1331885c427745a751e774ee679fd4344f80b97bf879815fe8fa55", size = 67102 }, - { url = "https://files.pythonhosted.org/packages/34/68/8bdb7bb7756d76e005490649d10e4a8369e610c74d619f71e1aedf889e9c/propcache-0.5.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:cef6cea3922890dd6c9654971001fa797b526c16ab5e1e46c05fd6f877be7568", size = 64964 }, - { url = "https://files.pythonhosted.org/packages/0a/aa/50fb0b5d3968b61a510926ff8b8465f1d6e976b3ab74496d7a4b9fc42515/propcache-0.5.2-cp313-cp313t-win32.whl", hash = "sha256:72d61e16dd78228b58c5d47be830ff3da7e5f139abdf0aef9d86cde1c5cf2191", size = 42546 }, - { url = "https://files.pythonhosted.org/packages/ae/4c/0ddbae64321bd4a95bcbfc19307238016b5b1fee645c84626c8d539e5b74/propcache-0.5.2-cp313-cp313t-win_amd64.whl", hash = "sha256:0958834041a0166d343b8d2cedcd8bcbaeb4fdbe0cf08320c5379f143c3be6e7", size = 46330 }, - { url = "https://files.pythonhosted.org/packages/00/d9/9cddc8efb78d8af264c5ec9f6d10b62f57c515feda8d321595f56010fb23/propcache-0.5.2-cp313-cp313t-win_arm64.whl", hash = "sha256:6de8bd93ddde9b992cf2b2e0d796d501a19026b5b9fd87356d7d0779531a8d96", size = 40521 }, - { url = "https://files.pythonhosted.org/packages/e2/ea/23ee535d90ce8bcc465a3028eb3cc0ce3bd1005f4bb27710b30587de798d/propcache-0.5.2-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:46088abff4cba581dea21ae0467a480526cb25aa5f3c269e909f800328bc3999", size = 94662 }, - { url = "https://files.pythonhosted.org/packages/b5/06/c5a52f419b5d8972f8d46a7577476090d8e3263ff589ce40b5ca4968d5be/propcache-0.5.2-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:fc88b26f08d634f7bc819a7852e5214f5802641ab8d9fd5326892292eee1993e", size = 53928 }, - { url = "https://files.pythonhosted.org/packages/63/b1/4260d67d6bd85e58a66b72d54ce15d5de789b6f3870cc6bedf8ff9667401/propcache-0.5.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:97797ebb098e670a2f92dd66f32897e30d7615b14e7f59711de23e30a9072539", size = 54650 }, - { url = "https://files.pythonhosted.org/packages/70/06/2f46c318e3307cd7a6a7481def374ce838c0fe20084b39dd54b0879d0e99/propcache-0.5.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ba57fffe4ac99c5d30076161b5866336d97600769bad35cc68f7774b15298a4e", size = 59912 }, - { url = "https://files.pythonhosted.org/packages/4c/29/fe1aebec2ce57ab985a9c382bded1124431f85078113aa222c5d278430d4/propcache-0.5.2-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:583c19759d9eec1e5b69e2fbef36a7d9c326041be9746cb822d335c8cedc2979", size = 63300 }, - { url = "https://files.pythonhosted.org/packages/b4/18/2334b26768b6c82be8c69e83671b767d5ef426aa09b0cba6c2ea47816774/propcache-0.5.2-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d0326e2e5e1f3163fa306c834e48e8d490e5fae607a097a40c0648109b47ba80", size = 64208 }, - { url = "https://files.pythonhosted.org/packages/2b/76/7f1bfd6afff4c5e38e36a3c6d68eb5f4b7311ea80baf693db78d95b603c4/propcache-0.5.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e00820e192c8dbebcafb383ebbf99030895f09905e7a0eb2e0340a0bcc2bc825", size = 61633 }, - { url = "https://files.pythonhosted.org/packages/c4/46/b3ff8aba2b4953a3e50de2cf72f1b5748b8eca93b15f3dc2c84339084c09/propcache-0.5.2-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c66afea89b1e43725731d2004732a046fe6fe955d51f952c3e95a7314a284a39", size = 61724 }, - { url = "https://files.pythonhosted.org/packages/c5/01/814cfcafbcff954f94c01cf30e097ddc88a076b5440fbcf4570753437d40/propcache-0.5.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:d4dc37dec6c6cdad0b57881a5658fd14fbf53e333b1a86cf86559f190e1d9ec4", size = 60069 }, - { url = "https://files.pythonhosted.org/packages/da/68/5c6f7622d510cc666a300687e06fd060c1a43361c0c9b20d284f06d8096a/propcache-0.5.2-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:5570dbcc97571c15f68068e529c92715a12f8d54030e272d264b377e22bd17a5", size = 57099 }, - { url = "https://files.pythonhosted.org/packages/55/27/9cb0b4c679124085327957d42521c99dba04c88c90c3e55a6f0b633ebccc/propcache-0.5.2-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:f814362777a9f841adddb200ecdf8f5cb1e5a3c4b7a86378edbd6ccb26edd702", size = 63391 }, - { url = "https://files.pythonhosted.org/packages/f0/9d/7258aaa5bdf60fc6f27591eef6fe52768cb0beda7140be477c8b12c9794a/propcache-0.5.2-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:196913dea116aeb5a2ba95af4ddcb7ea85559ae07d8eee8751688310d09168c3", size = 61626 }, - { url = "https://files.pythonhosted.org/packages/8e/0d/41c602003e8a9b16fe1e7eadf62c7bfba9d5474370b24200bf48b315f45f/propcache-0.5.2-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:6e7b8719005dd1175be4ab1cd25e9b98659a5e0347331506ec6760d2773a7fb5", size = 64781 }, - { url = "https://files.pythonhosted.org/packages/8b/f3/38e66b1856e9bd079deea015bc4a55f7767c0e4db2f7dcf69e7e680ba4ce/propcache-0.5.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:51f96d685ab16e88cab128cd37a52c5da540809c8b879fa047731bfcb4ad35a4", size = 62570 }, - { url = "https://files.pythonhosted.org/packages/95/ca/bbfe9b910ce57dde8bb4876b4520fc02a4e89497c10de26be936758a3aaa/propcache-0.5.2-cp314-cp314-win32.whl", hash = "sha256:cc6fc3cc62e8501d3ed62894425040d2728ecddb1ed072737a5c70bd537aa9f0", size = 39436 }, - { url = "https://files.pythonhosted.org/packages/61/d2/45c9defbaa1ea297035d9d4cce9e8f80daafbf19319c6007f157c6256ea9/propcache-0.5.2-cp314-cp314-win_amd64.whl", hash = "sha256:81e3a30b0bb60caa22033dd0f8a3618d1d67356212514f62c57db75cb0ef410c", size = 42373 }, - { url = "https://files.pythonhosted.org/packages/44/68/9ea5103f41d5217d7d6ec24db90018e23aebec070c3f9a6e54d12b841fd8/propcache-0.5.2-cp314-cp314-win_arm64.whl", hash = "sha256:0d2c9bf8528f135dbb805ce027567e09164f7efa51a2be07458a2c0420f292d0", size = 38554 }, - { url = "https://files.pythonhosted.org/packages/8a/81/fadf555f42d3b762eea8a53950b0489fdc0aa9da5f8ed9e10ce0a4e01b48/propcache-0.5.2-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:4bc8ff1feffc6a61c7002ffe84634c41b822e104990ae009f44a0834430070bb", size = 99395 }, - { url = "https://files.pythonhosted.org/packages/f5/c9/c61e134a686949cf7971af3a390148b1156f7be81c73bc0cd12c873e2d48/propcache-0.5.2-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:79aa3ff0a9b566633b642fa9caf7e21ed1c13d6feca718187873f199e1514078", size = 56653 }, - { url = "https://files.pythonhosted.org/packages/cb/73/daf935ea7048ddd7ec8eec5345b4a40b619d2d178b3c0a0900796bc3c794/propcache-0.5.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1b31822f4474c4036bae62de9402710051d431a606d6a0f907fec79935a071aa", size = 56914 }, - { url = "https://files.pythonhosted.org/packages/79/9f/aba959b435ea18617edd7cf0a7ad0b9c574b8fc7e3d2cd55fb59cb255d33/propcache-0.5.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:13fef48778b5a2a756523fdb781326b028ca75e32858b04f2cdd19f394564917", size = 62567 }, - { url = "https://files.pythonhosted.org/packages/6c/a1/859942de9a791ff42f6141736f5b37749b8f53e65edfa49638c67dd67e6a/propcache-0.5.2-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8b73ab70f1a3351fbc71f663b3e645af6dd0329100c353081cf69c37433fc6fe", size = 65542 }, - { url = "https://files.pythonhosted.org/packages/b5/61/315bc0fd6c0fc7f80a528b8afd209e5fc4a875ea79571b91b8f50f442907/propcache-0.5.2-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5538d2c13d93e4698af7e092b57bc7298fd35d1d58e656ae18f23ee0d0378e03", size = 66845 }, - { url = "https://files.pythonhosted.org/packages/47/f7/9f8122e3132e8e354ac41975ef8f1099be7d5a16bc7ae562734e993665c0/propcache-0.5.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cd645f03898405cabe694fb8bc35241e3a9c332ec85627584fe3de201452b335", size = 63985 }, - { url = "https://files.pythonhosted.org/packages/c8/54/c317819ec157cbf6f35df9df9657a6f82daf34d5faf15948b2f639c2192e/propcache-0.5.2-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a473b3440261e0c60706e732b2ed2f517857344fc21bf48fdfe211e2d98eb285", size = 63999 }, - { url = "https://files.pythonhosted.org/packages/5a/56/387e3f7dfce0a9233df41fb888aa1c30222cb4bbbf09537c02dd9bd85fe2/propcache-0.5.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:7afa37062e6650640e932e4cc9297d81f9f42d9944029cc386b8247dea4da837", size = 62779 }, - { url = "https://files.pythonhosted.org/packages/a1/9c/596784cb5824ed61ee960d3f8655a3f0993e107c6e98ab6c818b7fb92ccb/propcache-0.5.2-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:8a90efd5777e996e42d568db9ac740b944d691e565cbfd31b2f7832f9184b2b8", size = 59796 }, - { url = "https://files.pythonhosted.org/packages/c2/3d/1a6cfa1726a48542c1e8784a0761421476a5b68e09b7f36bf95eb954aaba/propcache-0.5.2-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:f19bb891234d72535764d703bfed1153cc34f4214d5bd7150aee1eec9e8f4366", size = 66023 }, - { url = "https://files.pythonhosted.org/packages/e4/0e/05fd6990369477076e4e280bcb970de760fddf0161a46e988bc95f7940ec/propcache-0.5.2-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:32775082acd2d807ee3db715c7770d38767b817870acfa08c29e057f3c4d5b56", size = 64448 }, - { url = "https://files.pythonhosted.org/packages/cd/86/5f8da315a4309c62c10c0b2516b17492d5d3bbe1bb862b96604db67e2a37/propcache-0.5.2-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:9282fb1a3bccd038da9f768b927b24a0c753e466c086b7c4f3c6982851eefb2d", size = 67329 }, - { url = "https://files.pythonhosted.org/packages/da/d3/3368efe79ab21f0cdf86ef49895811c9cc933131d4cde1f28a624e22e712/propcache-0.5.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:cc49723e2f60d6b32a0f0b08a3fd6d13203c07f1cd9566cfce0f12a917c967a2", size = 65172 }, - { url = "https://files.pythonhosted.org/packages/d5/07/127e8b0bacfb325396196f9d976a22453049b89b9b2b08477cc3145faa44/propcache-0.5.2-cp314-cp314t-win32.whl", hash = "sha256:2d7aa89ebca5acc98cba9d1472d976e394782f587bad6661003602a619fd1821", size = 43813 }, - { url = "https://files.pythonhosted.org/packages/88/fb/46dad6c0ae49ed230ab1b16c890c2b6314e2403e6c412976f4a72d64a527/propcache-0.5.2-cp314-cp314t-win_amd64.whl", hash = "sha256:d447bb0b3054be5818458fbb171208b1d9ff11eba14e18ca18b90cbb45767370", size = 47764 }, - { url = "https://files.pythonhosted.org/packages/e7/c4/a47d0a63aa309d10d59ede6e9d4cff03a344a79d1f0f4cd0cd74997b53e0/propcache-0.5.2-cp314-cp314t-win_arm64.whl", hash = "sha256:fe67a3d11cd9b4efabfa45c3d00ffba2b26811442a73a581a94b67c2b5faccf6", size = 41140 }, - { url = "https://files.pythonhosted.org/packages/3a/ed/1cdcab6ba3d6ab7feca11fc14f0eeea80755bb53ef4e892079f31b10a25f/propcache-0.5.2-py3-none-any.whl", hash = "sha256:be1ddfcbb376e3de5d2e2db1d58d6d67463e6b4f9f040c000de8e300295465fe", size = 14036 }, +version = "0.5.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b3/9a/9fbf4e4ec0c2d7f1c32519fff782ef467859b8faa9fbc5331a96f6395d43/propcache-0.5.4.tar.gz", hash = "sha256:ff6b113f50bc066a698db5d944d2c6dc7507168dd3341e255a8892fd0715a558", size = 61545, upload-time = "2026-09-16T00:17:14.386Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/71/cd/348d58f142aebc4873345c6b31087629182ca6e0f2b3caeaa528cf882eba/propcache-0.5.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:b28f41fa3b8c6900457f858ec5b03998f3a6d535fbc1bb2edec5961ea05ec429", size = 87285, upload-time = "2026-09-16T00:14:29.362Z" }, + { url = "https://files.pythonhosted.org/packages/df/f4/f3ffaee281b276da854ac1d7a6a506d26cbc62ea2e623756f1d0a4a1ba1a/propcache-0.5.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:dcbf346a318a5e30063f547630b02bb787ce2f45b6368d5da143660b6a3835d8", size = 50984, upload-time = "2026-09-16T00:14:30.473Z" }, + { url = "https://files.pythonhosted.org/packages/25/88/1d7df7201750b37765ef2b23bc1c526c028dadde80afa0f57a118fc01182/propcache-0.5.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:87a3caecf8095e48dc72f84bfa42e23a848cf410cc9cc13031fba4869b706a21", size = 52460, upload-time = "2026-09-16T00:14:31.692Z" }, + { url = "https://files.pythonhosted.org/packages/83/4f/48865bd02a16ee5236bc46166b2946f37b93e07b0eae355dac0be0b216ca/propcache-0.5.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:60a64cbccaa11b7760ce705a14ada17ba459e7ca9f23ba587eb013821032d7ef", size = 251768, upload-time = "2026-09-16T00:14:32.908Z" }, + { url = "https://files.pythonhosted.org/packages/b0/19/3742a5eed62317b03b4002ee865dc9fd720308bdd0da1f29a5786c630311/propcache-0.5.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a74bfa37147cc08fb29df10bd9c16f40fa7f860cd3a6d2fff853323a94f6e17f", size = 257723, upload-time = "2026-09-16T00:14:34.267Z" }, + { url = "https://files.pythonhosted.org/packages/cb/d5/ee6350fb0be9122bb6c67082a876d34b90d980d100c106af4b81023e04f4/propcache-0.5.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a4d7a54719b67338a305dca2ce6aafe366817df94ddfd4b5514374356f5ca546", size = 265597, upload-time = "2026-09-16T00:14:35.56Z" }, + { url = "https://files.pythonhosted.org/packages/85/9f/83a07b6ec0e043c050cfdd35fb0cf1b7897b91d554d6eea293740309afe7/propcache-0.5.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2814ecd8e818f487bee4b0f921bc4d1c176cc5fc71ac0f072d0fa67eda4ac14b", size = 250424, upload-time = "2026-09-16T00:14:36.894Z" }, + { url = "https://files.pythonhosted.org/packages/33/2c/a763a8251f50fba042af0fb1f02bfec4b31381e40aff760db2be7b2e1f84/propcache-0.5.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:6af4693716bfb03f1752ef1b30faa593db2c01d5272e9b8564a1549452a979ab", size = 216748, upload-time = "2026-09-16T00:14:38.369Z" }, + { url = "https://files.pythonhosted.org/packages/6a/e2/4d11bea8fd6a777149c6c20645f873952eab5de3a2497aa11648ec9ab6ab/propcache-0.5.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4fbc1a15dc8cd1689508758d626b372b1f09d28d9577667feaf9e6bfcd8efcbc", size = 246533, upload-time = "2026-09-16T00:14:39.82Z" }, + { url = "https://files.pythonhosted.org/packages/9f/36/6683597de4907e70c717e3588c541202c66086a72ff3db58be49de66e72c/propcache-0.5.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:cdee8205a44d0be91bbac4c41b95d86641b72dfc7aef1279400e4fda3f26a937", size = 238173, upload-time = "2026-09-16T00:14:41.259Z" }, + { url = "https://files.pythonhosted.org/packages/85/84/cb08d79f1762daafeb2b030c470cd0c725c97b8ad67412457c6f35c53e9d/propcache-0.5.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:9a2a8a50a93dee0268a860a07fa3b4bd968f8ce4dbd794957da772f395368526", size = 251128, upload-time = "2026-09-16T00:14:42.652Z" }, + { url = "https://files.pythonhosted.org/packages/c2/0d/41b848036db6621370c1f2e5471a7da8149c730f8552a5257567721f4576/propcache-0.5.4-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:7ffafcbfc7b549ab940047e505c831eabac5e67de53e1bc174adbc5285c55944", size = 214821, upload-time = "2026-09-16T00:14:44.112Z" }, + { url = "https://files.pythonhosted.org/packages/f1/b7/adfae4bf9c63bccf12e2d9690a175c6579047a6eec3b5a6a5f51428c15e2/propcache-0.5.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:d1f5a500bfcbb2c0ab85e98a0dcd70f5899d34efe365a0187700369a79603031", size = 254793, upload-time = "2026-09-16T00:14:45.429Z" }, + { url = "https://files.pythonhosted.org/packages/51/6f/eeca9647245d5f92e87d53e5f14335bb42fce1a7e6842c8045b364eded8b/propcache-0.5.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8a235f73d6e020855dc29dff012d920c02ee0feab8d73a24185a7569f4be1161", size = 247134, upload-time = "2026-09-16T00:14:46.976Z" }, + { url = "https://files.pythonhosted.org/packages/5d/a9/424e38838793d37160b4379c702f61c74c598fc6cd17204adbe3c554f7a8/propcache-0.5.4-cp312-cp312-win32.whl", hash = "sha256:b3083bfe87f95c756e610bd8025f26cbd1cd4aaa03a422f2d65efb7a97cd53d8", size = 43073, upload-time = "2026-09-16T00:14:48.338Z" }, + { url = "https://files.pythonhosted.org/packages/58/7b/6e8ef26f6d510a7916064fec68d55fcbfbdf7eb01e377480d66a122152d8/propcache-0.5.4-cp312-cp312-win_amd64.whl", hash = "sha256:98914de2c4d7f0f9f4a8c6ea4bf05841f4175796941e3ef7d47eb718f22311fb", size = 46190, upload-time = "2026-09-16T00:14:49.99Z" }, + { url = "https://files.pythonhosted.org/packages/08/b9/72028c5b56ced97f456de6aefa79435ca64d7f77af78ea8cf3c76fc5195f/propcache-0.5.4-cp312-cp312-win_arm64.whl", hash = "sha256:8876b39961e33d912afe3c1bee18ee564fdad0206f873cc15d522756b7f50737", size = 43075, upload-time = "2026-09-16T00:14:51.155Z" }, + { url = "https://files.pythonhosted.org/packages/78/4c/3b1365d58a667689e067e13d055fcd92bdf8d9a2fca3d9201b47ed5b3631/propcache-0.5.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:36c0d9db44b523ef93d03341b1c42d69ff01d673c053d1b1c6c3a363bcaa39ba", size = 85290, upload-time = "2026-09-16T00:14:52.342Z" }, + { url = "https://files.pythonhosted.org/packages/8f/61/5f9c29c3aa67c30238c4eadf95149b1d983a48f69b86b0cff927a7d6df13/propcache-0.5.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e1d52a05dc417279f7e5c7618c5dfbbc29923aaf9bc0a5c1802ddcebf54c61a0", size = 50027, upload-time = "2026-09-16T00:14:53.67Z" }, + { url = "https://files.pythonhosted.org/packages/25/7d/c1ab1ef09e9d4d835be5d58c0a32a1e1de8397abaa4e502a9d4141328cad/propcache-0.5.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:44149f46500a0a41b95b4d99c2e586a77319539730607b9892974a092788b111", size = 51425, upload-time = "2026-09-16T00:14:54.826Z" }, + { url = "https://files.pythonhosted.org/packages/73/36/0093091ebb270fcd1bc1f6e095f93b2e0ed7f1011c28837dc2dbe5f96b99/propcache-0.5.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dbab5f5ff6897c81f355d079010cdae85b02e5a0b518b5251523b8ad8ae9ac3c", size = 233595, upload-time = "2026-09-16T00:14:56.09Z" }, + { url = "https://files.pythonhosted.org/packages/ae/8f/0de9d4c8e05ce0be71b436919a216bd7fc5cc6e2691c0602295efb22b9ed/propcache-0.5.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c3e98c55bde2bcf7db3c70d1aed7ae9aa8aebbf19a250c66645cde44cdb8b867", size = 240318, upload-time = "2026-09-16T00:14:57.674Z" }, + { url = "https://files.pythonhosted.org/packages/7d/71/2b35e91455209b85ee98f7859583e0814fab57d3af0f2381aaee34c37304/propcache-0.5.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:db3ae52ccc150dbc84704e9d642743897f3e1c54742ff34cacb661e52e3818a9", size = 246649, upload-time = "2026-09-16T00:14:59.352Z" }, + { url = "https://files.pythonhosted.org/packages/ed/74/08e6c1faf26ee2732023a3828787ba535557122774f4a386b1f715cbd8e0/propcache-0.5.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f85915e00dcb1cd9f2f890ead064ed40a27df06f0db65be427b29482ae357572", size = 234316, upload-time = "2026-09-16T00:15:00.696Z" }, + { url = "https://files.pythonhosted.org/packages/5c/9a/08385733c9321c9bb78039d3ff31045e4fca962d9665023c4eb70f998819/propcache-0.5.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c2ba30a89035b57b73e00475de948521602f543d79ce01db10b04b36c4c76fc8", size = 204666, upload-time = "2026-09-16T00:15:02.019Z" }, + { url = "https://files.pythonhosted.org/packages/1d/f4/e87bc7629af9a14a752b218764a78742d73c2c563ac58315da6841f0cbe4/propcache-0.5.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ae58f361bd5dae942717c65d3413b478c70aea9c462599e7b9adad3731db3894", size = 225900, upload-time = "2026-09-16T00:15:03.394Z" }, + { url = "https://files.pythonhosted.org/packages/d9/6d/11014938d3fe9bea2ea2dcf930f26ed565bfb2f5be3c756362ea48c92636/propcache-0.5.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:96f7c5c15656040ddcbc51e56dc59b58aa25999d743c126abd425b9766ab43e9", size = 219988, upload-time = "2026-09-16T00:15:04.811Z" }, + { url = "https://files.pythonhosted.org/packages/dc/72/fbf17c589f92c0b3bbf6709a425661f8ef2ed0d46b38985a7d7b5a0f6b91/propcache-0.5.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:7cc528e760a8af06f2b13e9b9f362cd90c7c718ea61228a96dbd31ba16ed7f47", size = 233611, upload-time = "2026-09-16T00:15:06.498Z" }, + { url = "https://files.pythonhosted.org/packages/55/7e/dbd637572a279692e5518d117274a9331bf5faac59f191d30e82521a3ec7/propcache-0.5.4-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:425f8cc86ab5018b4b8d4a23bc8e74d964bd3d757c3702e301aa79be76c53f6c", size = 204333, upload-time = "2026-09-16T00:15:07.961Z" }, + { url = "https://files.pythonhosted.org/packages/ba/5a/f99c92068f1e0f5c886899ce0e4a619db376ca98c5279d93f95bd86906af/propcache-0.5.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:a5793c7698a53f56f4a1889a4737c7eeb1b7ad0842fa6b1abca22913ff79c8c1", size = 235177, upload-time = "2026-09-16T00:15:09.334Z" }, + { url = "https://files.pythonhosted.org/packages/ee/28/95456fabd2daf6be89049a13fbf03341756014d2959c83d12957d4c49694/propcache-0.5.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c02c0e570c5c7e077b0181a9f3cdb7d4c3617d1cda6b5c95bd5d34022923d82c", size = 228982, upload-time = "2026-09-16T00:15:10.729Z" }, + { url = "https://files.pythonhosted.org/packages/b1/bb/df90f62c9cf7c93ea235f6f9405143bba802914607317266dd81fc8d737e/propcache-0.5.4-cp313-cp313-win32.whl", hash = "sha256:3e413d7a4a9b4866b7a761d6060d434b64d23cd35122eda3b026a0bbe8196b25", size = 42611, upload-time = "2026-09-16T00:15:12.111Z" }, + { url = "https://files.pythonhosted.org/packages/01/bc/e0a7b84af04ec02d73a48aa71f091e1e4a2107e3074b7ce12195b66901f4/propcache-0.5.4-cp313-cp313-win_amd64.whl", hash = "sha256:0c889f6fa84957bc7e8b4eab71fd16a0455068d5045e3aa40c733071d2b2fd77", size = 45342, upload-time = "2026-09-16T00:15:13.519Z" }, + { url = "https://files.pythonhosted.org/packages/9a/70/50b031cafe72a5c1878b903ee87303f71313345566bf3d6ec202e5ddc9ec/propcache-0.5.4-cp313-cp313-win_arm64.whl", hash = "sha256:69fc35c0779522da366c563e5faf203ffc1f8ff0021d5b1337fa4efa5be73177", size = 42408, upload-time = "2026-09-16T00:15:14.788Z" }, + { url = "https://files.pythonhosted.org/packages/33/c9/07e227b930c8ae513b8ef1aae3793499be097bffcdf7aee4fb8b33db4cd1/propcache-0.5.4-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:e6720ba44ad7e72174314d0e1fb0172494cff5c73a3a8a2159c3d2402ff15565", size = 85933, upload-time = "2026-09-16T00:15:16.073Z" }, + { url = "https://files.pythonhosted.org/packages/e4/e1/6710bb44510c4e4a8e0f004bbaf3cecfd048141309c77bae56d4e5a6ebc1/propcache-0.5.4-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:4cfe0a92ae30151869e67a4b5f5e105e4e03ad30b3f38e5211b5bf77d0881993", size = 50179, upload-time = "2026-09-16T00:15:17.377Z" }, + { url = "https://files.pythonhosted.org/packages/e2/22/b533b493d7025456f44518b33e53e000021a20fe7c27b88cf3d341df7186/propcache-0.5.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1d759d05634f1b038fb625a66662a8c85e5a8fec912da381b5149ddac107482b", size = 51942, upload-time = "2026-09-16T00:15:18.589Z" }, + { url = "https://files.pythonhosted.org/packages/f1/74/70ac8430e28f21e442c7bcb964eb46c4363f6881ade4aa0e978bfd8d503a/propcache-0.5.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:251c63dd46a0659bb875cb254dc4c1e79ee91a847c737cd62373295afc2235dc", size = 232647, upload-time = "2026-09-16T00:15:19.905Z" }, + { url = "https://files.pythonhosted.org/packages/72/95/f222f13b6fe623310be0eb61a673bf26df439ce27e563ca8e422d0818777/propcache-0.5.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:7a8d5ff04eb1f85698a78d20c62a14676e7b960dcafde09a388d60ad377d355d", size = 241541, upload-time = "2026-09-16T00:15:21.3Z" }, + { url = "https://files.pythonhosted.org/packages/a2/3e/763e370340db16115c5e63ad46e21ef0770a7f06928b3d3b62d8f8edfca4/propcache-0.5.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7b9100a93b372418d8688f3f2a3e5b45c64d70ca4d6176e121aca1e3bfc1e32f", size = 245332, upload-time = "2026-09-16T00:15:22.802Z" }, + { url = "https://files.pythonhosted.org/packages/96/d3/e97cd6f5de2176bd90ed4076c7a9b5e09d0f0b9687d00a576507988bb62c/propcache-0.5.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cc07876cfb079b6f6f36d21ce75784ad6c2c6b563eeac0ed26c2fa2669b85df9", size = 232757, upload-time = "2026-09-16T00:15:24.374Z" }, + { url = "https://files.pythonhosted.org/packages/f9/4c/6766e5f60bcda26d244333aa71d0a702c1c9b21b251d543c7af5953d1eee/propcache-0.5.4-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:0951315a6b3142ee2167404d707743f0157c110091342b1aa0accac5cf0e4acf", size = 204389, upload-time = "2026-09-16T00:15:25.667Z" }, + { url = "https://files.pythonhosted.org/packages/b8/5e/ec4bb09a70b26ea99d76a8292c3383b960b296de2b347ac9986678f1761c/propcache-0.5.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:bee7d3aed13d56f54e681df38c3a23031bc9e3863f687d9d598825c9146acd7d", size = 228217, upload-time = "2026-09-16T00:15:27.11Z" }, + { url = "https://files.pythonhosted.org/packages/e1/7d/b53922ba7d9e5bf797324e63aa05906ec240871899f779628df068743e2d/propcache-0.5.4-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:4e985382be6d15da8d0c2710a6fa7b9070fc9ecdeefb7f580e88373984ec8be3", size = 216947, upload-time = "2026-09-16T00:15:28.532Z" }, + { url = "https://files.pythonhosted.org/packages/ff/39/b62eee45e5ea4de094a258cbb3b01c1e856ca51ddfd95b43135c5effd1eb/propcache-0.5.4-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:9e9ab13760aa8b6d0881ae7cb04fd891d8d490cd2554ea8e79bb278399169bcc", size = 233457, upload-time = "2026-09-16T00:15:29.977Z" }, + { url = "https://files.pythonhosted.org/packages/cc/a9/feec61ed296d993db9dd097e0f6723e3f576a647722367547495e4c5b05c/propcache-0.5.4-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:1b2f3bec4261a94019575481c726c29850f72e27907773c75b1de421e20e9f9d", size = 204131, upload-time = "2026-09-16T00:15:31.74Z" }, + { url = "https://files.pythonhosted.org/packages/92/4d/411ef380cddad28dc001f1c6d75ec72c76cd3817030f68ec1ccfba0ec6c1/propcache-0.5.4-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:720cf832eb2d0b0dfee129cb3335a26f6ce3cc45ee1187e8f0731758caa16792", size = 234820, upload-time = "2026-09-16T00:15:33.087Z" }, + { url = "https://files.pythonhosted.org/packages/15/37/c988229753629ef1cfd5198337a83e624780ea2b3787efe9e747c05aad2d/propcache-0.5.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:9fb0a5be8d9aa213150e8d8148a42aca4984b285bcad1e69587dc4298edd929b", size = 228350, upload-time = "2026-09-16T00:15:34.533Z" }, + { url = "https://files.pythonhosted.org/packages/12/49/5ef1c5cf98591da3c5b952b39e6a298084cc1ce353bc70f85e82397a5036/propcache-0.5.4-cp314-cp314-win32.whl", hash = "sha256:30cc1cebaf9aef49db06357a50398323ae04d70460c0491837d026ab7d6452ea", size = 43578, upload-time = "2026-09-16T00:15:35.957Z" }, + { url = "https://files.pythonhosted.org/packages/1e/9e/a0ac821a2229186af5e2e3c3635a78abb23cfddca57f38513ab5d70420f3/propcache-0.5.4-cp314-cp314-win_amd64.whl", hash = "sha256:0a095db8e15a6020db149ecbed6461939fe74f6acaa3ae8b702a1fe8c38cd983", size = 46304, upload-time = "2026-09-16T00:15:37.655Z" }, + { url = "https://files.pythonhosted.org/packages/a1/19/c8d0d36a9d16cba5dcee67d389c9333b988c8986a653a61c00a451817a46/propcache-0.5.4-cp314-cp314-win_arm64.whl", hash = "sha256:45488d1a5f9ab5bd90aaa1ca20f50fe1922b8ffad71a2009d2adf41355897aac", size = 43440, upload-time = "2026-09-16T00:15:39.091Z" }, + { url = "https://files.pythonhosted.org/packages/2c/e9/42f1da77cacfc184e6ec929557ef653b7961bbf6f1da460b9221273948b3/propcache-0.5.4-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:53eaa697c4d0422ff4cb714d00231b43352064d97b944033b30c1d57cc506ec0", size = 90672, upload-time = "2026-09-16T00:15:40.306Z" }, + { url = "https://files.pythonhosted.org/packages/cf/2f/4b79940908c6ab8c795097c102999d7bc1f7e0b8604dfd1c232f9d99d67a/propcache-0.5.4-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:886b59c4d28ca97dd23b025fdfc50a0356be934efbbbca89ad26230067f86fe5", size = 52586, upload-time = "2026-09-16T00:15:41.575Z" }, + { url = "https://files.pythonhosted.org/packages/eb/07/02196ae6320c110235bb343f90dbd34be41f8b8964a3ee30db84ec12579e/propcache-0.5.4-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:3fa15757fea1dfcd5b7745cad9f4638929605531bd4018ab2adff7955f1a403d", size = 54335, upload-time = "2026-09-16T00:15:43.027Z" }, + { url = "https://files.pythonhosted.org/packages/6f/44/f48b9a131985659924df5fa5093f68fe72c7ee375329802989ba3126efc6/propcache-0.5.4-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6f0093ac3e9daada202c2082439d414a625c57184727a46e112a3fb2a81cb788", size = 297567, upload-time = "2026-09-16T00:15:44.373Z" }, + { url = "https://files.pythonhosted.org/packages/04/a1/418d956d2735139f77fc35262179f1f52c23aa666de5a8ab3819c1ae7854/propcache-0.5.4-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:3cd3a7edb6b95b9b33998135ebfa18d709da82290fb8f27c858970b5a12c8b56", size = 297477, upload-time = "2026-09-16T00:15:46.048Z" }, + { url = "https://files.pythonhosted.org/packages/69/fd/ff811fdb6d3d3e67fd9bbfb75881675d34a42d0ef29a45d33e3e233dde07/propcache-0.5.4-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c174bfd1c48a1b51a3078e95586dde718374bac79719ab3541ec9e74aec40574", size = 302669, upload-time = "2026-09-16T00:15:47.458Z" }, + { url = "https://files.pythonhosted.org/packages/fc/57/527910c455b5ec62f6871bef45d4f79fea16cb8c966ba0d4a07f0339ddc4/propcache-0.5.4-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a219f0ac59817a9114dd2aa57c13180f993e819ba658c7ddab4b66ed1ee0d370", size = 287908, upload-time = "2026-09-16T00:15:48.99Z" }, + { url = "https://files.pythonhosted.org/packages/1d/86/f69ab82707534a0cb2057bdca04f9200a71214c7551800f9d34d6ac39e4f/propcache-0.5.4-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:17a7400cec0256f0a71ae71f9da398f9894c956ff6668a1c9d317b3367316320", size = 249804, upload-time = "2026-09-16T00:15:50.486Z" }, + { url = "https://files.pythonhosted.org/packages/27/19/60677af50d93be4256213de7cd487f056944c048b9c0b6f2e45b3a30f666/propcache-0.5.4-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:978f28401afbc76cdc3df9e1717b4229a06b626a1dcc75db4e1f2beb3884c3e9", size = 282344, upload-time = "2026-09-16T00:15:52.029Z" }, + { url = "https://files.pythonhosted.org/packages/7c/f7/a0057808a91fb3b6a5f3602b528f0cdcb3d53e0ff8315d73fabdfdf8fec4/propcache-0.5.4-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:4a1f4f5ffa55dce6307631f3cb2948e117e665966ea512e0d502b16c24f567e7", size = 270167, upload-time = "2026-09-16T00:15:53.466Z" }, + { url = "https://files.pythonhosted.org/packages/83/c8/f4a865490df0dc0c8531d4e59ac411cb6dc24bb255d2396a6f1c60a368f4/propcache-0.5.4-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:213bb68d9ced5cf2bf717b1071bf2b09b4b04c426256f9fe6d054c60318424c4", size = 286551, upload-time = "2026-09-16T00:15:54.995Z" }, + { url = "https://files.pythonhosted.org/packages/b0/67/b4faebde9da4e8173d0e5a30e8cd31335914af7ef350b988f27fec588cfd/propcache-0.5.4-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:286867fb156488c251a3721766e380ac4495e4fd6b51aaa1403d89ce7f4359d9", size = 249595, upload-time = "2026-09-16T00:15:56.505Z" }, + { url = "https://files.pythonhosted.org/packages/f6/40/52e1dd5636e9f5a27f6b5a4b4e2f33c322fd72afe956c397d82523ec4a80/propcache-0.5.4-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:445ee3bfb46e85838387fb3c536a73cc0b994dc192b004e40e170adc54aa2a7e", size = 286700, upload-time = "2026-09-16T00:15:57.985Z" }, + { url = "https://files.pythonhosted.org/packages/d5/0e/30b2b324b93ff31a0bab539c102aae59e84e444031b2742150a7646aa1bb/propcache-0.5.4-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:48cb48c5346a97de792254af77715aa2529c2a1ebc5f586aa0aae44a02f1fe57", size = 280500, upload-time = "2026-09-16T00:15:59.487Z" }, + { url = "https://files.pythonhosted.org/packages/64/36/721bb59f682ff060d0c8df64274fca8cd0521b1a54506c2eedaef795b7f5/propcache-0.5.4-cp314-cp314t-win32.whl", hash = "sha256:03b229037d25b801e7af53fd52b9fc49d9439b036fca1e087e02780631adfa97", size = 46121, upload-time = "2026-09-16T00:16:01.349Z" }, + { url = "https://files.pythonhosted.org/packages/c1/86/0b1b80fa1ac3a0aac44e2922a6964fbe9cd52af5eab8fa933bf9e90b030c/propcache-0.5.4-cp314-cp314t-win_amd64.whl", hash = "sha256:8a1fc236528c457cd739c88abe823da851b7ab645d72792f88658114cc340c12", size = 49154, upload-time = "2026-09-16T00:16:02.901Z" }, + { url = "https://files.pythonhosted.org/packages/69/4f/9fe6f05a47cb550c823155052116f710064b6be5c6e8ec4e9faae7e18115/propcache-0.5.4-cp314-cp314t-win_arm64.whl", hash = "sha256:135036c5cfc93864affb0f9af9a27e5d7a71cb7bd745e7b6dbfc2d56cc30e827", size = 46005, upload-time = "2026-09-16T00:16:04.266Z" }, + { url = "https://files.pythonhosted.org/packages/58/25/895a11d1e4c5c2acc6d816e2bece34e02d9dc92f2182ae276cd819e9e804/propcache-0.5.4-cp315-cp315-macosx_10_15_universal2.whl", hash = "sha256:45bf2e730ab8905d0527fe05a86500f406e64305c34cc81ebe64b4617cab9760", size = 85634, upload-time = "2026-09-16T00:16:05.599Z" }, + { url = "https://files.pythonhosted.org/packages/58/41/c0acd69271de7a1cf439e77d5d60c18575fd09bad56e798b95fa23458ea4/propcache-0.5.4-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:31eb43ba2edc704ab2ec27815315dd8a19def0fb16215be4cfe8d32fe78ffd51", size = 50084, upload-time = "2026-09-16T00:16:07.384Z" }, + { url = "https://files.pythonhosted.org/packages/a5/1a/ad561f99f90884089e6403b76c220610809429ba868a81a2e7ce115d32e0/propcache-0.5.4-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:174507f82d3594622acb1dd2dafecf2d899d6d506335494e7107767bf05f3aae", size = 51692, upload-time = "2026-09-16T00:16:08.956Z" }, + { url = "https://files.pythonhosted.org/packages/e9/07/057bdd3a9609ffad59b06239cceee784b047f6c720247bfaa36d2103e138/propcache-0.5.4-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:50e337653721d20ead710da33bf44487fbe8a0db8782714b60306481e9f95b51", size = 232947, upload-time = "2026-09-16T00:16:10.466Z" }, + { url = "https://files.pythonhosted.org/packages/fa/dd/d36ad35986718530498a65e45e3713f9f0e6a580f192ef02d2ef7cae9b52/propcache-0.5.4-cp315-cp315-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:0d21d0d2c82bbfeb1677a9711f38df968f9837576102bb4add1bd449d28d88f1", size = 241250, upload-time = "2026-09-16T00:16:12.056Z" }, + { url = "https://files.pythonhosted.org/packages/fb/81/f1459415cdb6c10d46942779de39bb59a77b38e5a76bb1def9227962eb45/propcache-0.5.4-cp315-cp315-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:ccf4f7a79e26bb7efb06ecd50c177833b71df05cbc748701372325e6bcc17f6f", size = 245150, upload-time = "2026-09-16T00:16:13.596Z" }, + { url = "https://files.pythonhosted.org/packages/ce/4e/58b9b1460afc97a4c0b17ee89af701c4011d4d7f46470eba3aaff76a8069/propcache-0.5.4-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:23278f808cd81d5ada7184a76606b925fb3389c60e1077b2cd7da7b1fcf0553c", size = 232166, upload-time = "2026-09-16T00:16:15.126Z" }, + { url = "https://files.pythonhosted.org/packages/b9/c6/5a79e0eda3e7b6987d03d8c622ff6d52a42165a12e8418eb37694b9cc4b4/propcache-0.5.4-cp315-cp315-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e738ab81179510ce79b2eac9a6ecf47feffd9e76d1c72e403005dddb6e36c06c", size = 206085, upload-time = "2026-09-16T00:16:16.713Z" }, + { url = "https://files.pythonhosted.org/packages/4e/72/940aed42c73f9da345ca2de0f6e835c726498159abca5f1ef14fb0a2af8a/propcache-0.5.4-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:a419ee85e654927baabda3929c03c0cc1112bf472ff0dfd6142f4e3a81ca4162", size = 228460, upload-time = "2026-09-16T00:16:18.352Z" }, + { url = "https://files.pythonhosted.org/packages/85/71/3f54e1535c8f323d91ba566044d7c2b39ff6f6a2f1d0bd9071779d07b9b3/propcache-0.5.4-cp315-cp315-musllinux_1_2_armv7l.whl", hash = "sha256:b61805357d966680acf68b3b6d49772631ed9df44ebece10ff1460e117a7da8a", size = 218350, upload-time = "2026-09-16T00:16:20.064Z" }, + { url = "https://files.pythonhosted.org/packages/a8/f4/025890cc389ac3ec485ecec607d4a7ca47e15bfa2a465746ab98af602536/propcache-0.5.4-cp315-cp315-musllinux_1_2_ppc64le.whl", hash = "sha256:58134228927cee6c047d626c08e60a81be604a20578a12ce752cc5c9a84d4826", size = 233156, upload-time = "2026-09-16T00:16:21.624Z" }, + { url = "https://files.pythonhosted.org/packages/04/29/b39cae08c87c140d3d274f0a2c058cb5588e836175c3309e260b230ab07d/propcache-0.5.4-cp315-cp315-musllinux_1_2_riscv64.whl", hash = "sha256:350b272b2279f4135a64fc0c304a5d08e28a137c9573442c606152446638a831", size = 206206, upload-time = "2026-09-16T00:16:23.204Z" }, + { url = "https://files.pythonhosted.org/packages/18/61/e16462ef18a87247dc9ebbd5c606f46d5ce67e708bd9cc734dd0d9222564/propcache-0.5.4-cp315-cp315-musllinux_1_2_s390x.whl", hash = "sha256:45bebbe252550fec975ba3b62bc6f931643cfd3b5464ef47619cf3fef154e01c", size = 234469, upload-time = "2026-09-16T00:16:24.841Z" }, + { url = "https://files.pythonhosted.org/packages/9f/84/b6a1490922427204fc47df920ed002eec709621de6b79b11592bf45c623a/propcache-0.5.4-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:ada748108a43d29b7c328ba7db3755327cd94f028bcc1a7ee3f0addcfacd9c38", size = 227311, upload-time = "2026-09-16T00:16:26.549Z" }, + { url = "https://files.pythonhosted.org/packages/ff/5c/5a59527582e9bcb694b2f08b9894134b65a0f5f79dbff174f054f5f74ed0/propcache-0.5.4-cp315-cp315-win32.whl", hash = "sha256:ee19113bce2f3acd46432050688b70f61acd6857d75abb9ec96341b7e9ced123", size = 43512, upload-time = "2026-09-16T00:16:28.313Z" }, + { url = "https://files.pythonhosted.org/packages/26/07/93cf699ed363681e754d7c3fad587fb09ef6b65618ee193332ad16a68d7b/propcache-0.5.4-cp315-cp315-win_amd64.whl", hash = "sha256:ceb3e879afac028f93d272c957814695dc5569e4904262dbee92f6c41bd5e4a3", size = 46264, upload-time = "2026-09-16T00:16:29.751Z" }, + { url = "https://files.pythonhosted.org/packages/65/10/fef04fbdcd44a4a163cb5ff5674599c6d6fdefd64a5a459438f9ad2ba042/propcache-0.5.4-cp315-cp315-win_arm64.whl", hash = "sha256:c83acbce9f2b5e3f5f5eda9e53d2001fed22fcdfef81274a9e02d8fd53b70a30", size = 43395, upload-time = "2026-09-16T00:16:31.5Z" }, + { url = "https://files.pythonhosted.org/packages/70/f6/7e2f4dab0b92ab46111bd48cee9ee1e5f519514c44e3779ede5358d7ada0/propcache-0.5.4-cp315-cp315t-macosx_10_15_universal2.whl", hash = "sha256:a5e8ef588c109725dc713ba69aadcac00a1ef90c2ce9c0a8c7075128f569f47f", size = 89825, upload-time = "2026-09-16T00:16:43.115Z" }, + { url = "https://files.pythonhosted.org/packages/9f/8b/dfeff925cb6ced97ede701d5c6a99998da963c6f2e06abbf879c9dac5b54/propcache-0.5.4-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:4d86476a935c88963d9b8e1a9a0d38188790e9622169bfbafa173046846709d3", size = 52159, upload-time = "2026-09-16T00:16:44.754Z" }, + { url = "https://files.pythonhosted.org/packages/24/6c/924c810be5b7cf218ef47e707cf06d34adb4e3f3a31e3c24c55c6d945a88/propcache-0.5.4-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:f5470694918830da62fac9e69133b53d23b736d7070e587b27a4a2be37e08e68", size = 53956, upload-time = "2026-09-16T00:16:46.762Z" }, + { url = "https://files.pythonhosted.org/packages/3f/b6/9ed0a5c939b58b6bed740a05b5d0f919f0b318d03284b4b6d81a0fe8a29a/propcache-0.5.4-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:10ef33a68a61ce317e095fd2e202a592ea92392b90944a78c993f0d9a73ab06c", size = 295235, upload-time = "2026-09-16T00:16:48.577Z" }, + { url = "https://files.pythonhosted.org/packages/5a/eb/5ce886e902a2e781dddf110993d5329458a9b1a8626b876c65e5e25bf413/propcache-0.5.4-cp315-cp315t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5cacf3c9efd09df409dc33654dd077e1c245ba8fb747b0f0236ef41b7c49b589", size = 294463, upload-time = "2026-09-16T00:16:50.539Z" }, + { url = "https://files.pythonhosted.org/packages/f2/88/c98f49183ecd3e5b204a556f0ca47baa02c2206a500fe8c7ec1726297b0a/propcache-0.5.4-cp315-cp315t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:770e8209d018175fc0063936fa9583b6d27e88c5ad31543f3383d66080efdd62", size = 300081, upload-time = "2026-09-16T00:16:52.423Z" }, + { url = "https://files.pythonhosted.org/packages/27/0d/c5090f9e6f67cbc30a2b744c7bb0f8006dcba5ec1b0d82f866ae1cc7c5c4/propcache-0.5.4-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:03969626faf0783a592dfa17e28eac06018bd0b44dafae6943d53b92421a7f72", size = 285360, upload-time = "2026-09-16T00:16:54.141Z" }, + { url = "https://files.pythonhosted.org/packages/ac/9c/34a55396910583ed07926669ab309dde2213a2dec05a7e946bb90ad66908/propcache-0.5.4-cp315-cp315t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ef3b928d9c984322b5c44e6964d8dbc653da87d2d8ee1647fa6da43072e650a9", size = 248014, upload-time = "2026-09-16T00:16:56.062Z" }, + { url = "https://files.pythonhosted.org/packages/cd/b5/c0a142b656093ca397039dd3fe166cbb87c945712b534546514a24cd2611/propcache-0.5.4-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:7177c43eddf10a0893c4fec52ebb408fdcd7f7d63962caace9180d8f81b14ece", size = 280662, upload-time = "2026-09-16T00:16:58.044Z" }, + { url = "https://files.pythonhosted.org/packages/54/28/fab2809c2e337fe26becea9648e84d5cef46075c91b826acb13e4f9dd04e/propcache-0.5.4-cp315-cp315t-musllinux_1_2_armv7l.whl", hash = "sha256:420162a77f94eb1cf5ef7893f500016dabd548e73de956785a1dd899cc73006a", size = 266149, upload-time = "2026-09-16T00:16:59.702Z" }, + { url = "https://files.pythonhosted.org/packages/3a/11/7ddf336288b2678a5f054f8da2e2bd1a719f5d4b7de714d9c6bd588a2313/propcache-0.5.4-cp315-cp315t-musllinux_1_2_ppc64le.whl", hash = "sha256:3eb2e820e8e2101407da93f17c57cbb7d225461955fc60105daaba14cd421ee2", size = 283097, upload-time = "2026-09-16T00:17:01.459Z" }, + { url = "https://files.pythonhosted.org/packages/1a/ae/351b1a5225f5473c411d9a612a229ae147cf0cf65c72ad838b87219ea8e8/propcache-0.5.4-cp315-cp315t-musllinux_1_2_riscv64.whl", hash = "sha256:13e52b6e0bde97dee98ab66552dbff2931649c96f1ac432eac299fe689ec373b", size = 248160, upload-time = "2026-09-16T00:17:03.298Z" }, + { url = "https://files.pythonhosted.org/packages/3f/d0/7f79f061e30d135bb615c9782c94a74652033d00b49254edbbf35a9165a8/propcache-0.5.4-cp315-cp315t-musllinux_1_2_s390x.whl", hash = "sha256:12682126712ddc19b70ff819debbd279e58adf1f0c8f8f8138c18ade2044b284", size = 283036, upload-time = "2026-09-16T00:17:05.238Z" }, + { url = "https://files.pythonhosted.org/packages/53/3c/016f1cad8bf4c428d748cf399b2bac603026fbfd6966e6a5579b5c5b6956/propcache-0.5.4-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:3af0c8642b2da4815d86e631232ac8286e17644fad907c19508aa8e7cb4ba8ad", size = 279350, upload-time = "2026-09-16T00:17:06.881Z" }, + { url = "https://files.pythonhosted.org/packages/ea/60/d8f72cb24b412487ed4c397f539117d3b74c3c33dd32020e91fe00a958a8/propcache-0.5.4-cp315-cp315t-win32.whl", hash = "sha256:1df8d8561b21465c5dd56110a01caf897e026d065b4b84e98a488209094272ec", size = 45874, upload-time = "2026-09-16T00:17:08.567Z" }, + { url = "https://files.pythonhosted.org/packages/d4/ef/8bae0a316d406644450522f2f3d44a4e19632f5f3bb60d1d0e6c53842616/propcache-0.5.4-cp315-cp315t-win_amd64.whl", hash = "sha256:02c0a34f16889cf800f10f0247a564d8ce6eeab6ffcd7c87198f769067eb8432", size = 48574, upload-time = "2026-09-16T00:17:10.077Z" }, + { url = "https://files.pythonhosted.org/packages/57/be/bcc053f66a97355683884b448198e79580fae8e8fa4d96b9bb01614e9913/propcache-0.5.4-cp315-cp315t-win_arm64.whl", hash = "sha256:dc4242ca653c9b30ab51c5f8193323e7bc0928f897ee9103201e59a43abcb72e", size = 45625, upload-time = "2026-09-16T00:17:11.377Z" }, + { url = "https://files.pythonhosted.org/packages/f5/cd/785c64ed382f3f04201870267b02783f63b4678c2acfddc177a3ebcc2727/propcache-0.5.4-py3-none-any.whl", hash = "sha256:62c60aec739ed00124573cce1178138fd690c7676352d67a37328c1cf51d7468", size = 16338, upload-time = "2026-09-16T00:17:13.106Z" }, ] [[package]] @@ -2278,152 +2383,282 @@ dependencies = [ { name = "numpy" }, { name = "scipy" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/38/ac/513d2c8653ab6bc66c4502372e6e4e20ce6a136cde4c1ba9908ec36e34c1/properscoring-0.1.tar.gz", hash = "sha256:b0cc4963cc218b728d6c5f77b3259c8f835ae00e32e82678cdf6936049b93961", size = 17848 } +sdist = { url = "https://files.pythonhosted.org/packages/38/ac/513d2c8653ab6bc66c4502372e6e4e20ce6a136cde4c1ba9908ec36e34c1/properscoring-0.1.tar.gz", hash = "sha256:b0cc4963cc218b728d6c5f77b3259c8f835ae00e32e82678cdf6936049b93961", size = 17848, upload-time = "2015-11-12T19:54:29.615Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/0a/ff/51706ba1a029d0f2df0322543793d3bf1383de9dc567d23886144cb21bef/properscoring-0.1-py2.py3-none-any.whl", hash = "sha256:f84d5b06c13549d0171ce52ad7b45c6f5726ac44b733d24af5c60654cbb821dc", size = 23427 }, + { url = "https://files.pythonhosted.org/packages/0a/ff/51706ba1a029d0f2df0322543793d3bf1383de9dc567d23886144cb21bef/properscoring-0.1-py2.py3-none-any.whl", hash = "sha256:f84d5b06c13549d0171ce52ad7b45c6f5726ac44b733d24af5c60654cbb821dc", size = 23427, upload-time = "2015-11-12T19:54:24.578Z" }, ] [[package]] name = "psutil" version = "7.2.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/aa/c6/d1ddf4abb55e93cebc4f2ed8b5d6dbad109ecb8d63748dd2b20ab5e57ebe/psutil-7.2.2.tar.gz", hash = "sha256:0746f5f8d406af344fd547f1c8daa5f5c33dbc293bb8d6a16d80b4bb88f59372", size = 493740 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/51/08/510cbdb69c25a96f4ae523f733cdc963ae654904e8db864c07585ef99875/psutil-7.2.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:2edccc433cbfa046b980b0df0171cd25bcaeb3a68fe9022db0979e7aa74a826b", size = 130595 }, - { url = "https://files.pythonhosted.org/packages/d6/f5/97baea3fe7a5a9af7436301f85490905379b1c6f2dd51fe3ecf24b4c5fbf/psutil-7.2.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e78c8603dcd9a04c7364f1a3e670cea95d51ee865e4efb3556a3a63adef958ea", size = 131082 }, - { url = "https://files.pythonhosted.org/packages/37/d6/246513fbf9fa174af531f28412297dd05241d97a75911ac8febefa1a53c6/psutil-7.2.2-cp313-cp313t-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1a571f2330c966c62aeda00dd24620425d4b0cc86881c89861fbc04549e5dc63", size = 181476 }, - { url = "https://files.pythonhosted.org/packages/b8/b5/9182c9af3836cca61696dabe4fd1304e17bc56cb62f17439e1154f225dd3/psutil-7.2.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:917e891983ca3c1887b4ef36447b1e0873e70c933afc831c6b6da078ba474312", size = 184062 }, - { url = "https://files.pythonhosted.org/packages/16/ba/0756dca669f5a9300d0cbcbfae9a4c30e446dfc7440ffe43ded5724bfd93/psutil-7.2.2-cp313-cp313t-win_amd64.whl", hash = "sha256:ab486563df44c17f5173621c7b198955bd6b613fb87c71c161f827d3fb149a9b", size = 139893 }, - { url = "https://files.pythonhosted.org/packages/1c/61/8fa0e26f33623b49949346de05ec1ddaad02ed8ba64af45f40a147dbfa97/psutil-7.2.2-cp313-cp313t-win_arm64.whl", hash = "sha256:ae0aefdd8796a7737eccea863f80f81e468a1e4cf14d926bd9b6f5f2d5f90ca9", size = 135589 }, - { url = "https://files.pythonhosted.org/packages/81/69/ef179ab5ca24f32acc1dac0c247fd6a13b501fd5534dbae0e05a1c48b66d/psutil-7.2.2-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:eed63d3b4d62449571547b60578c5b2c4bcccc5387148db46e0c2313dad0ee00", size = 130664 }, - { url = "https://files.pythonhosted.org/packages/7b/64/665248b557a236d3fa9efc378d60d95ef56dd0a490c2cd37dafc7660d4a9/psutil-7.2.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7b6d09433a10592ce39b13d7be5a54fbac1d1228ed29abc880fb23df7cb694c9", size = 131087 }, - { url = "https://files.pythonhosted.org/packages/d5/2e/e6782744700d6759ebce3043dcfa661fb61e2fb752b91cdeae9af12c2178/psutil-7.2.2-cp314-cp314t-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1fa4ecf83bcdf6e6c8f4449aff98eefb5d0604bf88cb883d7da3d8d2d909546a", size = 182383 }, - { url = "https://files.pythonhosted.org/packages/57/49/0a41cefd10cb7505cdc04dab3eacf24c0c2cb158a998b8c7b1d27ee2c1f5/psutil-7.2.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e452c464a02e7dc7822a05d25db4cde564444a67e58539a00f929c51eddda0cf", size = 185210 }, - { url = "https://files.pythonhosted.org/packages/dd/2c/ff9bfb544f283ba5f83ba725a3c5fec6d6b10b8f27ac1dc641c473dc390d/psutil-7.2.2-cp314-cp314t-win_amd64.whl", hash = "sha256:c7663d4e37f13e884d13994247449e9f8f574bc4655d509c3b95e9ec9e2b9dc1", size = 141228 }, - { url = "https://files.pythonhosted.org/packages/f2/fc/f8d9c31db14fcec13748d373e668bc3bed94d9077dbc17fb0eebc073233c/psutil-7.2.2-cp314-cp314t-win_arm64.whl", hash = "sha256:11fe5a4f613759764e79c65cf11ebdf26e33d6dd34336f8a337aa2996d71c841", size = 136284 }, - { url = "https://files.pythonhosted.org/packages/e7/36/5ee6e05c9bd427237b11b3937ad82bb8ad2752d72c6969314590dd0c2f6e/psutil-7.2.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ed0cace939114f62738d808fdcecd4c869222507e266e574799e9c0faa17d486", size = 129090 }, - { url = "https://files.pythonhosted.org/packages/80/c4/f5af4c1ca8c1eeb2e92ccca14ce8effdeec651d5ab6053c589b074eda6e1/psutil-7.2.2-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:1a7b04c10f32cc88ab39cbf606e117fd74721c831c98a27dc04578deb0c16979", size = 129859 }, - { url = "https://files.pythonhosted.org/packages/b5/70/5d8df3b09e25bce090399cf48e452d25c935ab72dad19406c77f4e828045/psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:076a2d2f923fd4821644f5ba89f059523da90dc9014e85f8e45a5774ca5bc6f9", size = 155560 }, - { url = "https://files.pythonhosted.org/packages/63/65/37648c0c158dc222aba51c089eb3bdfa238e621674dc42d48706e639204f/psutil-7.2.2-cp36-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b0726cecd84f9474419d67252add4ac0cd9811b04d61123054b9fb6f57df6e9e", size = 156997 }, - { url = "https://files.pythonhosted.org/packages/8e/13/125093eadae863ce03c6ffdbae9929430d116a246ef69866dad94da3bfbc/psutil-7.2.2-cp36-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:fd04ef36b4a6d599bbdb225dd1d3f51e00105f6d48a28f006da7f9822f2606d8", size = 148972 }, - { url = "https://files.pythonhosted.org/packages/04/78/0acd37ca84ce3ddffaa92ef0f571e073faa6d8ff1f0559ab1272188ea2be/psutil-7.2.2-cp36-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b58fabe35e80b264a4e3bb23e6b96f9e45a3df7fb7eed419ac0e5947c61e47cc", size = 148266 }, - { url = "https://files.pythonhosted.org/packages/b4/90/e2159492b5426be0c1fef7acba807a03511f97c5f86b3caeda6ad92351a7/psutil-7.2.2-cp37-abi3-win_amd64.whl", hash = "sha256:eb7e81434c8d223ec4a219b5fc1c47d0417b12be7ea866e24fb5ad6e84b3d988", size = 137737 }, - { url = "https://files.pythonhosted.org/packages/8c/c7/7bb2e321574b10df20cbde462a94e2b71d05f9bbda251ef27d104668306a/psutil-7.2.2-cp37-abi3-win_arm64.whl", hash = "sha256:8c233660f575a5a89e6d4cb65d9f938126312bca76d8fe087b947b3a1aaac9ee", size = 134617 }, +sdist = { url = "https://files.pythonhosted.org/packages/aa/c6/d1ddf4abb55e93cebc4f2ed8b5d6dbad109ecb8d63748dd2b20ab5e57ebe/psutil-7.2.2.tar.gz", hash = "sha256:0746f5f8d406af344fd547f1c8daa5f5c33dbc293bb8d6a16d80b4bb88f59372", size = 493740, upload-time = "2026-01-28T18:14:54.428Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/51/08/510cbdb69c25a96f4ae523f733cdc963ae654904e8db864c07585ef99875/psutil-7.2.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:2edccc433cbfa046b980b0df0171cd25bcaeb3a68fe9022db0979e7aa74a826b", size = 130595, upload-time = "2026-01-28T18:14:57.293Z" }, + { url = "https://files.pythonhosted.org/packages/d6/f5/97baea3fe7a5a9af7436301f85490905379b1c6f2dd51fe3ecf24b4c5fbf/psutil-7.2.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e78c8603dcd9a04c7364f1a3e670cea95d51ee865e4efb3556a3a63adef958ea", size = 131082, upload-time = "2026-01-28T18:14:59.732Z" }, + { url = "https://files.pythonhosted.org/packages/37/d6/246513fbf9fa174af531f28412297dd05241d97a75911ac8febefa1a53c6/psutil-7.2.2-cp313-cp313t-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1a571f2330c966c62aeda00dd24620425d4b0cc86881c89861fbc04549e5dc63", size = 181476, upload-time = "2026-01-28T18:15:01.884Z" }, + { url = "https://files.pythonhosted.org/packages/b8/b5/9182c9af3836cca61696dabe4fd1304e17bc56cb62f17439e1154f225dd3/psutil-7.2.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:917e891983ca3c1887b4ef36447b1e0873e70c933afc831c6b6da078ba474312", size = 184062, upload-time = "2026-01-28T18:15:04.436Z" }, + { url = "https://files.pythonhosted.org/packages/16/ba/0756dca669f5a9300d0cbcbfae9a4c30e446dfc7440ffe43ded5724bfd93/psutil-7.2.2-cp313-cp313t-win_amd64.whl", hash = "sha256:ab486563df44c17f5173621c7b198955bd6b613fb87c71c161f827d3fb149a9b", size = 139893, upload-time = "2026-01-28T18:15:06.378Z" }, + { url = "https://files.pythonhosted.org/packages/1c/61/8fa0e26f33623b49949346de05ec1ddaad02ed8ba64af45f40a147dbfa97/psutil-7.2.2-cp313-cp313t-win_arm64.whl", hash = "sha256:ae0aefdd8796a7737eccea863f80f81e468a1e4cf14d926bd9b6f5f2d5f90ca9", size = 135589, upload-time = "2026-01-28T18:15:08.03Z" }, + { url = "https://files.pythonhosted.org/packages/81/69/ef179ab5ca24f32acc1dac0c247fd6a13b501fd5534dbae0e05a1c48b66d/psutil-7.2.2-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:eed63d3b4d62449571547b60578c5b2c4bcccc5387148db46e0c2313dad0ee00", size = 130664, upload-time = "2026-01-28T18:15:09.469Z" }, + { url = "https://files.pythonhosted.org/packages/7b/64/665248b557a236d3fa9efc378d60d95ef56dd0a490c2cd37dafc7660d4a9/psutil-7.2.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7b6d09433a10592ce39b13d7be5a54fbac1d1228ed29abc880fb23df7cb694c9", size = 131087, upload-time = "2026-01-28T18:15:11.724Z" }, + { url = "https://files.pythonhosted.org/packages/d5/2e/e6782744700d6759ebce3043dcfa661fb61e2fb752b91cdeae9af12c2178/psutil-7.2.2-cp314-cp314t-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1fa4ecf83bcdf6e6c8f4449aff98eefb5d0604bf88cb883d7da3d8d2d909546a", size = 182383, upload-time = "2026-01-28T18:15:13.445Z" }, + { url = "https://files.pythonhosted.org/packages/57/49/0a41cefd10cb7505cdc04dab3eacf24c0c2cb158a998b8c7b1d27ee2c1f5/psutil-7.2.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e452c464a02e7dc7822a05d25db4cde564444a67e58539a00f929c51eddda0cf", size = 185210, upload-time = "2026-01-28T18:15:16.002Z" }, + { url = "https://files.pythonhosted.org/packages/dd/2c/ff9bfb544f283ba5f83ba725a3c5fec6d6b10b8f27ac1dc641c473dc390d/psutil-7.2.2-cp314-cp314t-win_amd64.whl", hash = "sha256:c7663d4e37f13e884d13994247449e9f8f574bc4655d509c3b95e9ec9e2b9dc1", size = 141228, upload-time = "2026-01-28T18:15:18.385Z" }, + { url = "https://files.pythonhosted.org/packages/f2/fc/f8d9c31db14fcec13748d373e668bc3bed94d9077dbc17fb0eebc073233c/psutil-7.2.2-cp314-cp314t-win_arm64.whl", hash = "sha256:11fe5a4f613759764e79c65cf11ebdf26e33d6dd34336f8a337aa2996d71c841", size = 136284, upload-time = "2026-01-28T18:15:19.912Z" }, + { url = "https://files.pythonhosted.org/packages/e7/36/5ee6e05c9bd427237b11b3937ad82bb8ad2752d72c6969314590dd0c2f6e/psutil-7.2.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ed0cace939114f62738d808fdcecd4c869222507e266e574799e9c0faa17d486", size = 129090, upload-time = "2026-01-28T18:15:22.168Z" }, + { url = "https://files.pythonhosted.org/packages/80/c4/f5af4c1ca8c1eeb2e92ccca14ce8effdeec651d5ab6053c589b074eda6e1/psutil-7.2.2-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:1a7b04c10f32cc88ab39cbf606e117fd74721c831c98a27dc04578deb0c16979", size = 129859, upload-time = "2026-01-28T18:15:23.795Z" }, + { url = "https://files.pythonhosted.org/packages/b5/70/5d8df3b09e25bce090399cf48e452d25c935ab72dad19406c77f4e828045/psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:076a2d2f923fd4821644f5ba89f059523da90dc9014e85f8e45a5774ca5bc6f9", size = 155560, upload-time = "2026-01-28T18:15:25.976Z" }, + { url = "https://files.pythonhosted.org/packages/63/65/37648c0c158dc222aba51c089eb3bdfa238e621674dc42d48706e639204f/psutil-7.2.2-cp36-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b0726cecd84f9474419d67252add4ac0cd9811b04d61123054b9fb6f57df6e9e", size = 156997, upload-time = "2026-01-28T18:15:27.794Z" }, + { url = "https://files.pythonhosted.org/packages/8e/13/125093eadae863ce03c6ffdbae9929430d116a246ef69866dad94da3bfbc/psutil-7.2.2-cp36-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:fd04ef36b4a6d599bbdb225dd1d3f51e00105f6d48a28f006da7f9822f2606d8", size = 148972, upload-time = "2026-01-28T18:15:29.342Z" }, + { url = "https://files.pythonhosted.org/packages/04/78/0acd37ca84ce3ddffaa92ef0f571e073faa6d8ff1f0559ab1272188ea2be/psutil-7.2.2-cp36-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b58fabe35e80b264a4e3bb23e6b96f9e45a3df7fb7eed419ac0e5947c61e47cc", size = 148266, upload-time = "2026-01-28T18:15:31.597Z" }, + { url = "https://files.pythonhosted.org/packages/b4/90/e2159492b5426be0c1fef7acba807a03511f97c5f86b3caeda6ad92351a7/psutil-7.2.2-cp37-abi3-win_amd64.whl", hash = "sha256:eb7e81434c8d223ec4a219b5fc1c47d0417b12be7ea866e24fb5ad6e84b3d988", size = 137737, upload-time = "2026-01-28T18:15:33.849Z" }, + { url = "https://files.pythonhosted.org/packages/8c/c7/7bb2e321574b10df20cbde462a94e2b71d05f9bbda251ef27d104668306a/psutil-7.2.2-cp37-abi3-win_arm64.whl", hash = "sha256:8c233660f575a5a89e6d4cb65d9f938126312bca76d8fe087b947b3a1aaac9ee", size = 134617, upload-time = "2026-01-28T18:15:36.514Z" }, ] [[package]] name = "ptyprocess" version = "0.7.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/20/e5/16ff212c1e452235a90aeb09066144d0c5a6a8c0834397e03f5224495c4e/ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220", size = 70762 } +sdist = { url = "https://files.pythonhosted.org/packages/20/e5/16ff212c1e452235a90aeb09066144d0c5a6a8c0834397e03f5224495c4e/ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220", size = 70762, upload-time = "2020-12-28T15:15:30.155Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35", size = 13993 }, + { url = "https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35", size = 13993, upload-time = "2020-12-28T15:15:28.35Z" }, ] [[package]] name = "pure-eval" -version = "0.2.3" +version = "0.2.4" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/cd/05/0a34433a064256a578f1783a10da6df098ceaa4a57bbeaa96a6c0352786b/pure_eval-0.2.3.tar.gz", hash = "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42", size = 19752 } +sdist = { url = "https://files.pythonhosted.org/packages/da/9f/abfd2959e9261dd5217ca8551d4de211ca6ab26fe9b72cf44731ff6c4442/pure_eval-0.2.4.tar.gz", hash = "sha256:260c2774686e651b79f8b8e7fc9d80b3599ea6a66334b47d5f4abb69fc2c0ea1", size = 20563, upload-time = "2026-09-10T21:41:22.836Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/8e/37/efad0257dc6e593a18957422533ff0f87ede7c9c6ea010a2177d738fb82f/pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0", size = 11842 }, + { url = "https://files.pythonhosted.org/packages/6d/18/83376915176eb058cb86470eb7396388a13350b09a8f233a79303bbcbc5b/pure_eval-0.2.4-py3-none-any.whl", hash = "sha256:96cae060a313cfaad51bb761278bfb0e62dc0248d9315a81173752dc546cd37a", size = 11893, upload-time = "2026-09-10T21:41:21.532Z" }, ] [[package]] name = "pycparser" -version = "3.0" +version = "3.12" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1b/7d/92392ff7815c21062bea51aa7b87d45576f649f16458d78b7cf94b9ab2e6/pycparser-3.0.tar.gz", hash = "sha256:600f49d217304a5902ac3c37e1281c9fe94e4d0489de643a9504c5cdfdfc6b29", size = 103492 } +sdist = { url = "https://files.pythonhosted.org/packages/cb/27/eeb9f307bf07060f3d9f9aa0fb8c15b01bdfded0a941e4b2719c7f94cacd/pycparser-3.12.tar.gz", hash = "sha256:f03387877eab82ce01bbdfd0ba7252ee55a90b1c708d5129e2ce915475cf1db6", size = 158785, upload-time = "2026-10-22T13:40:03.56Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/0c/c3/44f3fbbfa403ea2a7c779186dc20772604442dde72947e7d01069cbe98e3/pycparser-3.0-py3-none-any.whl", hash = "sha256:b727414169a36b7d524c1c3e31839a521725078d7b2ff038656844266160a992", size = 48172 }, + { url = "https://files.pythonhosted.org/packages/b6/ae/315bbeee126a769cbde43cf4908acb4b40408d8bf8bbf334dd7368d8dadf/pycparser-3.12-py3-none-any.whl", hash = "sha256:a076f3f489b39b43ed13563a1dafe42447445bec2e294154ec5c57fcdda4c85e", size = 62600, upload-time = "2026-10-22T13:40:02.021Z" }, +] + +[[package]] +name = "pydantic" +version = "2.14.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-types" }, + { name = "pydantic-core" }, + { name = "typing-extensions" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7c/0b/8e10b2e693af8ec54346a14caf36221334775975a747c9ceaa3f8371d96d/pydantic-2.14.1.tar.gz", hash = "sha256:94f478203dd03404682a1ada216965651dd74b1d2d5ffd62e00e0837caab5c26", size = 900362, upload-time = "2026-10-11T18:37:55.396Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/35/ea/a56b9fe5066f3537b7882f77e9c5dfb26d8c2eefdaed9b5fc73d57b4dc22/pydantic-2.14.1-py3-none-any.whl", hash = "sha256:9195d967ec791692a04438115466764fb8b9a27b31f14a760437694f40d6b454", size = 488106, upload-time = "2026-10-11T18:37:53.437Z" }, +] + +[[package]] +name = "pydantic-core" +version = "2.50.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a6/24/af4ec4be49fbc810f35b0bdcacc3d433b56bbfa469fd3bfd4ae116cd9bf1/pydantic_core-2.50.1.tar.gz", hash = "sha256:e50d7b94baac6c7d09927fa5ca5800a0c7ee5015c7fcff65beb3a1931b5a6e09", size = 513515, upload-time = "2026-10-11T18:35:44.82Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ee/94/101b49a6c63f99586755690696eae14532772587d9e39e93f7b8d28a49da/pydantic_core-2.50.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:704075d10b74f2f3c6e15407c696d88701df35fc8953f434a431add0d0074db0", size = 2222428, upload-time = "2026-10-11T18:32:20.228Z" }, + { url = "https://files.pythonhosted.org/packages/db/a3/f8b1b39349c33037c73d7a1b794c9c29d8f07d5bd2b74399c1375a529cc6/pydantic_core-2.50.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e8e1d6ce820aa23317e8209a86bd65a540973c12dc7552b48a4f6c8e9926815e", size = 2025779, upload-time = "2026-10-11T18:32:21.723Z" }, + { url = "https://files.pythonhosted.org/packages/d2/2d/862a7d115305cc621358e51ba13f296e0ffdf4fbd984be9f63bc7862730b/pydantic_core-2.50.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c18db21573bd2c6489f9a544b7499f0df2853958c568e5e783536ee1f690af41", size = 2048429, upload-time = "2026-10-11T18:32:23.3Z" }, + { url = "https://files.pythonhosted.org/packages/c0/7d/fed95d18bf2b5abe2d5ab2bbec4184bfc22b6805994a33ccdae8edffd25a/pydantic_core-2.50.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:cb57f304525a5e3c13333b772bf9a473f36326e9c821b2e8e1b2fd36f80ae2c3", size = 2173274, upload-time = "2026-10-11T18:32:24.697Z" }, + { url = "https://files.pythonhosted.org/packages/93/1e/c6f22ceac65dc3d291ff79bea0eb74cbd1de8b128f01fee48af03bcea1e1/pydantic_core-2.50.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a27c09d86600f1bf2fe3f37e1ae697faf3143931c09322cd799da94deee923b5", size = 2360403, upload-time = "2026-10-11T18:32:26.281Z" }, + { url = "https://files.pythonhosted.org/packages/2c/97/190b5b6bfe4c72f265feb657913eb30749193927a5ad7b83cfa7866a25a2/pydantic_core-2.50.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:46b3301d3b5c886f77de7546e47274a5842c622ea2020b8c6524c6b66913b4a6", size = 2439799, upload-time = "2026-10-11T18:32:27.844Z" }, + { url = "https://files.pythonhosted.org/packages/90/24/48cd98388e4ac2c08d0800af36d15413db15e20387f1038123a2c86cb2f6/pydantic_core-2.50.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93ba4e9d8210d941c200431a56b2c0400b131865947903937ed3ec5404307d2e", size = 2160157, upload-time = "2026-10-11T18:32:29.553Z" }, + { url = "https://files.pythonhosted.org/packages/00/86/d909133d0b9979ed14c20f110f21124a0e346caf071bd66ac5af3009062b/pydantic_core-2.50.1-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:e5faeaee74a57d32b3ab3aebad2e348f06d3ba946fc5d28c1728455f00a3d13a", size = 2229523, upload-time = "2026-10-11T18:32:31.027Z" }, + { url = "https://files.pythonhosted.org/packages/90/31/4b43f08131b2098e73a852fd932063385f3103b33839fd9d1abdb89e673d/pydantic_core-2.50.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a3cda0e538208e5d722bbf3698b24f19c0a7d05bc8d5f8a7f9b121ea7fa243d9", size = 2242700, upload-time = "2026-10-11T18:32:32.622Z" }, + { url = "https://files.pythonhosted.org/packages/88/77/de39658569dc7a4c293d110a89629f61145e7538f00d1e4280c28debefd3/pydantic_core-2.50.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:57f51b31ff826e2859120cf4737c5a758a48d96f3e97da40ccee1796d58078ff", size = 2278452, upload-time = "2026-10-11T18:32:34.165Z" }, + { url = "https://files.pythonhosted.org/packages/46/bd/1eeb9e4e791e81210ef9096f58080b32ba15b5b13c108d50aaa3f8ce9f73/pydantic_core-2.50.1-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:8daa7ee75245d43ad7d747e5c9ecc1b1d06552f72b14887e9276f787d57375f4", size = 2450098, upload-time = "2026-10-11T18:32:35.547Z" }, + { url = "https://files.pythonhosted.org/packages/1c/e6/b2accfdff17e5a88d6358536702146de00f9339adaa4d5bbe1ee93cb4832/pydantic_core-2.50.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:acbf31f37c53a5ac0c34706c80b4f5107ba20b05fdd3816124bf236ef0c57dd2", size = 2476839, upload-time = "2026-10-11T18:32:37.119Z" }, + { url = "https://files.pythonhosted.org/packages/3b/7e/c8a83eb5d2cd42c2e13507150fb777b1edea5a018adc9cbf2858a1d08285/pydantic_core-2.50.1-cp312-cp312-win32.whl", hash = "sha256:45b11cac094aa25725581d9304eee93c9028516b9ea80dd9e175e13a5a2c840e", size = 2101425, upload-time = "2026-10-11T18:32:38.593Z" }, + { url = "https://files.pythonhosted.org/packages/c5/17/8bbd530b8659e9d963f5b16f6cb8e159f4cd174b4d6304e48969ab12dba8/pydantic_core-2.50.1-cp312-cp312-win_amd64.whl", hash = "sha256:132529c83901437ff642f585216831bf5fd7a91df66829907e155192ead62498", size = 2172522, upload-time = "2026-10-11T18:32:40.112Z" }, + { url = "https://files.pythonhosted.org/packages/af/9f/a79d690b127e4e3cff143d031538ab9aa715f6b2fbeecbd07cd6f2bf9fb7/pydantic_core-2.50.1-cp312-cp312-win_arm64.whl", hash = "sha256:4e834f6a8e4ff772dcc34f58ef5504147a3ea5b0f4eeb13b0f8eb2ca75ac57f1", size = 2161366, upload-time = "2026-10-11T18:32:41.606Z" }, + { url = "https://files.pythonhosted.org/packages/ae/57/0e237d7091d2cd44a35d243b7344227f90440166860469cd036afc23a04d/pydantic_core-2.50.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:d5e062c01286d861fd6a1c4ff6e063547b3e713067f2df033c0ff97ac2ca006b", size = 2222774, upload-time = "2026-10-11T18:32:43.103Z" }, + { url = "https://files.pythonhosted.org/packages/f7/b9/c720e56858d4e1539503297ed37063e0c08e0f3541c41b777f6a800f75fa/pydantic_core-2.50.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0c003c3b7f49debb893d2d85ae099ac5959c9839e2f330fadb1fcdf7a6594482", size = 2024738, upload-time = "2026-10-11T18:32:44.587Z" }, + { url = "https://files.pythonhosted.org/packages/4d/b8/fbfc25875219cc060e613170ff10e850c6d8924beb4910da57c2ee3ba1d2/pydantic_core-2.50.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:409e0ea40ec30d9158f33574fd758e689f6045a0f2596701828c27816ca9687d", size = 2047049, upload-time = "2026-10-11T18:32:46.164Z" }, + { url = "https://files.pythonhosted.org/packages/d7/43/34210124d504c553688f2f04b48500b131237528ac545b445e0d6d30e0d5/pydantic_core-2.50.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:131059670f1d2444269b8585cb888963994871932447c08b39ac6a51fcfef658", size = 2173415, upload-time = "2026-10-11T18:32:47.722Z" }, + { url = "https://files.pythonhosted.org/packages/65/cf/6e178e8fdc11da5965bef980983bf46326a42f436871dd51ba0a57f39df1/pydantic_core-2.50.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6dbcbee53bf17196a7f745aa9bf5a9603953a1e365b1f020be3207c676a3e7c4", size = 2361719, upload-time = "2026-10-11T18:32:49.217Z" }, + { url = "https://files.pythonhosted.org/packages/11/14/bd5169d356aa91bf777e28ba0b281c192d286d03c2812c9c9db023a2f00e/pydantic_core-2.50.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:325c23f3e35cfbf0fe3486fa5f7260d1e45885173002d30a28ca019994124255", size = 2439803, upload-time = "2026-10-11T18:32:51.025Z" }, + { url = "https://files.pythonhosted.org/packages/1c/bc/d79d000e5203ebef39af839f2ce77a777fcad6e08ad26af9a2fcd114ffc8/pydantic_core-2.50.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17e722e156d0444ecaefbe640bdb60928752bf2013e2b7a11cdb099aaae19bec", size = 2158402, upload-time = "2026-10-11T18:32:52.714Z" }, + { url = "https://files.pythonhosted.org/packages/1b/a5/4902cb5fd599422c130bd3124ab31ee8b771199bd56662702eed07d3fec7/pydantic_core-2.50.1-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:aa8224f10880d9bf1b5993988ba153d42a8b4f3f4f511f93b1f09c93ff613c72", size = 2229755, upload-time = "2026-10-11T18:32:54.126Z" }, + { url = "https://files.pythonhosted.org/packages/1a/f5/c1481f8669f6060d89110c9b1374173fc8767ca276b84f4870bd8acd5e3f/pydantic_core-2.50.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:41bc8237121bd8dc8d888dfd6279fc166ffc88c1f1bf3a8bf00869680533ca4c", size = 2242303, upload-time = "2026-10-11T18:32:55.641Z" }, + { url = "https://files.pythonhosted.org/packages/04/f9/77fc3c7653ba9b6e42049e17e96b25388187d4a7c274ab1cb07f58ac8419/pydantic_core-2.50.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:45c6266d071c241f2a168d45bf8c54344f0effce35e7e6b73afdec11f3687568", size = 2278345, upload-time = "2026-10-11T18:32:57.38Z" }, + { url = "https://files.pythonhosted.org/packages/95/9b/0579c5d12e7f2b16b27e6782427987341fcce07b0725e02ddb0b74add0c4/pydantic_core-2.50.1-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:1deeacb112d14d3f4fcb16b165f7dbaf76c70ba6e82f37ba042bdab51970a0b8", size = 2449947, upload-time = "2026-10-11T18:32:58.896Z" }, + { url = "https://files.pythonhosted.org/packages/a8/ac/1b677db91eba54cc5922f4de6edc46ba45c2bd712dfdc0130382d158e214/pydantic_core-2.50.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:1c96fd793b73d1b92e65570132505498fe7b21eaef73cdf74e67e5dfba7ac9e4", size = 2476889, upload-time = "2026-10-11T18:33:00.665Z" }, + { url = "https://files.pythonhosted.org/packages/4d/2a/3a9f6624ee3ea9ccba5249dde11418bb4c35780a7a92608f8768bd3fea39/pydantic_core-2.50.1-cp313-cp313-win32.whl", hash = "sha256:06ead20d39ffd6f2f6f2a8f8a6de67ff8bb1b4f14a8a30e058502514ee2ac685", size = 2101118, upload-time = "2026-10-11T18:33:02.329Z" }, + { url = "https://files.pythonhosted.org/packages/2d/1f/323f78ddd9d9938aac420c1abb4e8ba799fc8bdab0acc67c0593b837c979/pydantic_core-2.50.1-cp313-cp313-win_amd64.whl", hash = "sha256:7816e98acc08119dc0f340ab167048ecc54126316330c1f0caf7c6756c88e28f", size = 2170840, upload-time = "2026-10-11T18:33:03.919Z" }, + { url = "https://files.pythonhosted.org/packages/cb/09/8497c52a739ae425c3ac2f7f56414cbc711c67d374346174f40fe2062644/pydantic_core-2.50.1-cp313-cp313-win_arm64.whl", hash = "sha256:c17799a62c142d61b8a3c51752a7cbc87fe2ad4ccfab10e628a77b405075c662", size = 2161633, upload-time = "2026-10-11T18:33:05.518Z" }, + { url = "https://files.pythonhosted.org/packages/49/33/28b96e81677153715e3eafb9f26663a80841e859fde282a380359b0d3fa1/pydantic_core-2.50.1-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:1cf41f1ae3fa155cf167a72689ad044bcc1e3c97e064123677149bdfb5dafc4a", size = 2224428, upload-time = "2026-10-11T18:33:07.153Z" }, + { url = "https://files.pythonhosted.org/packages/94/40/15c06410c9b7b8da5805d27b64e09bd3f900e986728106db2689dbc51513/pydantic_core-2.50.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:4df197990c15b5a37c5a277d131d9f2c67de6133f2e5dafd80d9bba4b99f46f9", size = 2023740, upload-time = "2026-10-11T18:33:08.763Z" }, + { url = "https://files.pythonhosted.org/packages/a1/4e/5eb629f6efc2a27e421d789dd4bfacbb5f6d09c80c28b13d1e87d73163d5/pydantic_core-2.50.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0036473f5583e6a60e50b8b21651511564277a3f05cc5dab8cf579f552cd5f6c", size = 2049435, upload-time = "2026-10-11T18:33:10.366Z" }, + { url = "https://files.pythonhosted.org/packages/ba/8e/f195aebec49ad12318876ac2368c197a7939f5d52f8e156d2238ef8a4588/pydantic_core-2.50.1-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:992c3514ec891fa7858099183e4d64e6bd5a5d4ff452fae29df22faa77a006bb", size = 2172975, upload-time = "2026-10-11T18:33:12.368Z" }, + { url = "https://files.pythonhosted.org/packages/e0/f5/7ad9fb83010cd5ea0948409db105676ed779c4e709e2d3d89b9fe2558794/pydantic_core-2.50.1-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:739dc730e6be3bd5ec2f4ab5cfc7eb047cc45fc1497b3bafec74ff2ed07df597", size = 2364197, upload-time = "2026-10-11T18:33:14.244Z" }, + { url = "https://files.pythonhosted.org/packages/ca/fb/bf0aab3e78301d202b82a0322ec968cd703b11fc0623fde9a28708936f62/pydantic_core-2.50.1-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:32fad3a91e51b6d2039c572db04a5a873260b399f6bd62c3552671fa7a4a2899", size = 2444259, upload-time = "2026-10-11T18:33:15.79Z" }, + { url = "https://files.pythonhosted.org/packages/45/35/38f6d6564fae57d9b12e5676dfa947e0e7d5c46dbeaa7eb3352261d6d299/pydantic_core-2.50.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42b54c2c90ad348b5e3a85e03e715d572c1fde357ef104cdfe3b03b697a404ea", size = 2159857, upload-time = "2026-10-11T18:33:17.51Z" }, + { url = "https://files.pythonhosted.org/packages/65/a0/fb0a3ca10f139dcf765b2d312d10cf0f65c57c59993229d00ad12b14ceff/pydantic_core-2.50.1-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:2df1ff41884de2bc4b307bafd7c40a691094fad2ff8e767e5b45a319257bcf4e", size = 2233954, upload-time = "2026-10-11T18:33:19.591Z" }, + { url = "https://files.pythonhosted.org/packages/8c/6a/e63842252702aa4ec6e6b7178ca85e541a77459076592c23ebe2d9840b33/pydantic_core-2.50.1-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fe90228920fd8ff2be62622b6bb8a2b11acd65046d50c6b130614b5879605a20", size = 2243876, upload-time = "2026-10-11T18:33:21.393Z" }, + { url = "https://files.pythonhosted.org/packages/39/25/5991cf8318b37e0dfab47b87541619a1df8501a793cba0d978846cba37a7/pydantic_core-2.50.1-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:844b869f118e22a41a091bdcedda8a71bc1b0f62c38d1a0c3211cece47e1d8fc", size = 2277908, upload-time = "2026-10-11T18:33:23.324Z" }, + { url = "https://files.pythonhosted.org/packages/a7/3e/3ee8baaa6cc25a6961c69168cf9ff0f002d56f4e0d541ad6724c18fb61f3/pydantic_core-2.50.1-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:2eb75304506894a281d346220a4f7481a1b8729577c5ed2a05395991966a8396", size = 2449285, upload-time = "2026-10-11T18:33:24.942Z" }, + { url = "https://files.pythonhosted.org/packages/c0/c7/acbec6deac13fe697a80c275a9b6661db62c4d323bac8a47347b1f39c7cd/pydantic_core-2.50.1-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:6b20a4bffabdad0db2927ac034ae3b8a681b1f7a0182f3e60b479ad2fde21ebb", size = 2479013, upload-time = "2026-10-11T18:33:26.925Z" }, + { url = "https://files.pythonhosted.org/packages/10/08/21a3f237b264389f6219d053ee78fc1b5c2fd402c1b1cb2b6cb8b85f9834/pydantic_core-2.50.1-cp314-cp314-pyemscripten_2026_0_wasm32.whl", hash = "sha256:99ba9bc2b8062ea0c326a990f7f00e6530c23579de66dd246e72c4cafef950a5", size = 1484400, upload-time = "2026-10-11T18:33:28.693Z" }, + { url = "https://files.pythonhosted.org/packages/09/ce/077a6d262d12ef09108377ac0717f029f420d773ace63cafd6143af75568/pydantic_core-2.50.1-cp314-cp314-win32.whl", hash = "sha256:cf356f70551d40374eaffb1aa63f1eb6d2006681cbd7a9faea173ce0f4dd7cd2", size = 2103222, upload-time = "2026-10-11T18:33:30.326Z" }, + { url = "https://files.pythonhosted.org/packages/14/4c/350a2415209c43d670eb71d3c040f332c04a30583d39e311b05c7ac15762/pydantic_core-2.50.1-cp314-cp314-win_amd64.whl", hash = "sha256:d32f3acc081cc3923386d88f422cde8892335e95f034e0104bb4cf9310d9915f", size = 2171586, upload-time = "2026-10-11T18:33:32.139Z" }, + { url = "https://files.pythonhosted.org/packages/bf/92/9bea6ca96580a0902fed366f064f0829e404f41889b34543279a1162b888/pydantic_core-2.50.1-cp314-cp314-win_arm64.whl", hash = "sha256:bed5163e03b98bc1fa2eb05d74c63d9c5c95d8ed6254985481640fbf5e237dea", size = 2155773, upload-time = "2026-10-11T18:33:33.896Z" }, + { url = "https://files.pythonhosted.org/packages/86/8c/f121f073cf32bdd5cba7e6230b1ce0ac845b0cf43e44dd597d95af272db2/pydantic_core-2.50.1-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:9572c1369e9c9da2d64a7b7992c786d90ff295abc93964cfe3125e4290768070", size = 2234017, upload-time = "2026-10-11T18:33:35.588Z" }, + { url = "https://files.pythonhosted.org/packages/a4/69/2bb2bcd6146cffe98d760a46c42ae71efd5151d9b2f9c9bf6619a3b32083/pydantic_core-2.50.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:2005207aafe1231315718bf6ed5d064a7300fb4772754af35ee72fc68159492e", size = 2001016, upload-time = "2026-10-11T18:33:37.57Z" }, + { url = "https://files.pythonhosted.org/packages/20/b3/fbf854c7d07ec114260c26e9e2071a4381740f9ae09641dbfcbdf2a18c45/pydantic_core-2.50.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:64f6047f62a6c5ae08d0a6afb035667aa2d97c3d20d69762e034c5ea144d92a5", size = 2023015, upload-time = "2026-10-11T18:33:39.433Z" }, + { url = "https://files.pythonhosted.org/packages/65/20/6de55b2f92cdb614b745c6e9ced639fc4fd7e1e77604825a88bdece6fcbd/pydantic_core-2.50.1-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1ef800dd7d85bcdadf4c3076e4c94e43939493558a3b69a1ea830c706d4617bb", size = 2192543, upload-time = "2026-10-11T18:33:41.381Z" }, + { url = "https://files.pythonhosted.org/packages/0c/d9/19e91c94bd5c405945ce2f15526808aea37e162c253160de8ed7bf70b406/pydantic_core-2.50.1-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b0135bcdcaa0f23573f286e4cb5e0fd2962700964ed13df085b85f2b97aeab9e", size = 2388704, upload-time = "2026-10-11T18:33:43.167Z" }, + { url = "https://files.pythonhosted.org/packages/b6/bc/2e24c8415eae1a25ee5a5484946a917123bad2e9d01689a759236928175a/pydantic_core-2.50.1-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0b3a6f334c6a2345ca15318ff894502a90012536404b37c844a976c76c846e0b", size = 2464118, upload-time = "2026-10-11T18:33:44.856Z" }, + { url = "https://files.pythonhosted.org/packages/bd/1f/945b8053cb061c64e102bcaf7bfb9ed740c0bd4349f9bb978a7d4ddff4ab/pydantic_core-2.50.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:06e01fbbfdb9be777b316a71b6c49efaf4a08b615d0a98d678cda3023f79d019", size = 2150142, upload-time = "2026-10-11T18:33:46.661Z" }, + { url = "https://files.pythonhosted.org/packages/2b/78/96a3e50bf0d64aaae781107eb9335b7529d05a85793ed6e7241c4cd1d931/pydantic_core-2.50.1-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:a29a061fec0b4e2d714f277e70a3a18125ecff803f2fea6eade2f2e53711d112", size = 2245577, upload-time = "2026-10-11T18:33:48.574Z" }, + { url = "https://files.pythonhosted.org/packages/7a/5d/a6038a0322232758a6ebfa709f4ca14a60bf5b93940cd0b345056a557da4/pydantic_core-2.50.1-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f5187624823423e1d1b82b1072ac41dc837389e18d3d0572cc19bbee46cd550a", size = 2263728, upload-time = "2026-10-11T18:33:50.527Z" }, + { url = "https://files.pythonhosted.org/packages/0d/4b/76ded3333a457a9344c4f2d63f2d82d0101654b05178fa4ddfe7d3627674/pydantic_core-2.50.1-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:3e46a9eb0a0901dd6275e6b06ac3a464885ef350ec4121fe486869de8053e4bb", size = 2293630, upload-time = "2026-10-11T18:33:52.362Z" }, + { url = "https://files.pythonhosted.org/packages/a9/00/9eca378335c9c1b72bc779bf6e4c2a82ce784f14ec48a0e87102c9870e05/pydantic_core-2.50.1-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:756d669f04e62ec4148ecfe22be6a4484d9b1181a6ef32e205ebfd200540858b", size = 2468048, upload-time = "2026-10-11T18:33:54.118Z" }, + { url = "https://files.pythonhosted.org/packages/35/ca/e3832e9cf93651251de43c8c5c029ed680a3c1a0a1b17ee26c81bed08cbd/pydantic_core-2.50.1-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:c516cc5367ca3448995d42cb994bf3f4c9002d2a7c22eac9622551269ad1b807", size = 2512159, upload-time = "2026-10-11T18:33:55.99Z" }, + { url = "https://files.pythonhosted.org/packages/4b/f2/773469b5a10a39116a2cb17edaf6d722f017dd8da07161b371465311c542/pydantic_core-2.50.1-cp314-cp314t-win32.whl", hash = "sha256:9d1bed94af6a63835461f3cf7502058eb166c58c4778e11d0f433cfb1bd69e19", size = 2098406, upload-time = "2026-10-11T18:33:58.043Z" }, + { url = "https://files.pythonhosted.org/packages/ee/42/0bb74f8f25204b259b11ab7c12dc7f180893b6bd706118b385147fb6efd5/pydantic_core-2.50.1-cp314-cp314t-win_amd64.whl", hash = "sha256:c8dce1f1e0e5358b682a6ad3fa5e31b31d4560997b8e61417e9217c8d60f8a0c", size = 2148481, upload-time = "2026-10-11T18:33:59.913Z" }, + { url = "https://files.pythonhosted.org/packages/47/0d/d801646c9679a4e630e15cf521d4108b93854b42a6e6e02391bd4c6b1095/pydantic_core-2.50.1-cp314-cp314t-win_arm64.whl", hash = "sha256:ceff0acc940be2715bd6ad17b24c0e5304abf44f6efd0f81ee8499e640f9dc86", size = 2174972, upload-time = "2026-10-11T18:34:01.875Z" }, + { url = "https://files.pythonhosted.org/packages/b2/84/23984b763d8862a02a13d27a44b6e8169428fd85ecfed88f54c29108604d/pydantic_core-2.50.1-cp315-cp315-macosx_10_12_x86_64.whl", hash = "sha256:8a6791afa2245e6c6b180122d105941644f5bd410bb18623b408808cc41a3102", size = 2224599, upload-time = "2026-10-11T18:34:04.016Z" }, + { url = "https://files.pythonhosted.org/packages/4d/90/a63cf8586abc1d1a3f6d9b18f0224789ebf003851f092ebda3c7c863fd32/pydantic_core-2.50.1-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:84f34323a61a365b4e9295de6028474754829aaddd59c7bf1a040e7487ef8f3c", size = 2024191, upload-time = "2026-10-11T18:34:05.901Z" }, + { url = "https://files.pythonhosted.org/packages/a6/6a/f34bff9808ffb4907fbf5f5040457d253cacf2da7fce9efbc99ca1b1a44d/pydantic_core-2.50.1-cp315-cp315-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23edad659e8dbd8ca7e4e877fe6c81573abbdf215bd25a68b53e1272f58b80c7", size = 2048252, upload-time = "2026-10-11T18:34:07.757Z" }, + { url = "https://files.pythonhosted.org/packages/b2/54/13f419bf1eb59852003818e25935aaf175687d978f4c4bca70e08fe40a3b/pydantic_core-2.50.1-cp315-cp315-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3a5fce22f1e87d181e924e12da7d81cfe031fb3881a5ddf26ad28f141756ca43", size = 2173376, upload-time = "2026-10-11T18:34:09.592Z" }, + { url = "https://files.pythonhosted.org/packages/6d/6c/b5a34d24cd0c81669d8f8339d74e6815abcf2f8fb48ab4b49b84c09be1d5/pydantic_core-2.50.1-cp315-cp315-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c73622ef819328873b53109ee4f77ceb598bffedd02daf916102be3228866b78", size = 2364559, upload-time = "2026-10-11T18:34:11.534Z" }, + { url = "https://files.pythonhosted.org/packages/eb/8d/d64d6216a8df365082665927ff923f183056f9049fee08e9777c9ac05296/pydantic_core-2.50.1-cp315-cp315-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ce8c25ca38cc0e3d7753ba180808de2c0c8cb24eae0df64491e40921454e9831", size = 2444697, upload-time = "2026-10-11T18:34:13.535Z" }, + { url = "https://files.pythonhosted.org/packages/b8/0d/1b1149f60a00ea21ba5f70e28acbd40feb4598af414f80f53c921fac07c9/pydantic_core-2.50.1-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7689580e72a642ab5ec64d5f55b2e33636fa43b4ebe63c0c2c965ef307c7d1aa", size = 2159961, upload-time = "2026-10-11T18:34:15.56Z" }, + { url = "https://files.pythonhosted.org/packages/1e/35/f236549299dcc78e71e945495d7ec67e78d20844d0999c60601685003031/pydantic_core-2.50.1-cp315-cp315-manylinux_2_31_riscv64.whl", hash = "sha256:d5c0e32fdbce7f1e8ef4d11f655694bf5f4175c757a9f1dc2be09b8864e5bcf5", size = 2234581, upload-time = "2026-10-11T18:34:17.502Z" }, + { url = "https://files.pythonhosted.org/packages/6a/85/26901a490522b7f75ef9bb9a7afb73e5bb550f0e1cb5b99a0069183e2eb9/pydantic_core-2.50.1-cp315-cp315-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:40f523349960fa30f3ea51404308ff50f9997a90df639590f47a057c1f32b415", size = 2244090, upload-time = "2026-10-11T18:34:19.402Z" }, + { url = "https://files.pythonhosted.org/packages/ca/2c/481bcfc70ceeb77a778ca6e5b705fe592cb64735c108157f81b7dd9c280e/pydantic_core-2.50.1-cp315-cp315-musllinux_1_1_aarch64.whl", hash = "sha256:d4193206b6587047437f6f11d7e776df23e1c1e23af2a54d9347275614791e10", size = 2277948, upload-time = "2026-10-11T18:34:21.317Z" }, + { url = "https://files.pythonhosted.org/packages/24/eb/f1e09333faa7ba447cde967310f758430cc7c5e987bdab5228816c70030d/pydantic_core-2.50.1-cp315-cp315-musllinux_1_1_armv7l.whl", hash = "sha256:84bc765b282a9d5b7fe0348b8648904f25a6a04b2139da52b1dd30c8ac3a2c8f", size = 2449688, upload-time = "2026-10-11T18:34:23.321Z" }, + { url = "https://files.pythonhosted.org/packages/d1/b3/036bde636db8f76d92996e81aefc75678ab5cec4a07eea1ad0c72a893fc3/pydantic_core-2.50.1-cp315-cp315-musllinux_1_1_x86_64.whl", hash = "sha256:ed1e728b39a383c81035b2459cfcb35d99dfb01f7d6ebe3a913bc1cc5b81e459", size = 2479286, upload-time = "2026-10-11T18:34:25.214Z" }, + { url = "https://files.pythonhosted.org/packages/d0/a3/07f018294ee18d144afeb6df1a47d9e92960f014be45c5ed13519fa5af95/pydantic_core-2.50.1-cp315-cp315-win32.whl", hash = "sha256:bc94f474417604bd383d2cd445d071b07dd55fedceed3ce33407bf1fcc107290", size = 2103683, upload-time = "2026-10-11T18:34:27.42Z" }, + { url = "https://files.pythonhosted.org/packages/5f/98/f9bd7e1f9b6709f155acb9ef826d9c3884fe925f811fd8e55b9b52280bad/pydantic_core-2.50.1-cp315-cp315-win_amd64.whl", hash = "sha256:983a662de2571cb2502fc8ff47b6770b03d025d2eb314c92f77b3f07c74720ed", size = 2171681, upload-time = "2026-10-11T18:34:29.508Z" }, + { url = "https://files.pythonhosted.org/packages/10/87/4bb3e1e7f385c076ab5af4d6dd0571b22042cd8207eb810d5b9fef15ae31/pydantic_core-2.50.1-cp315-cp315-win_arm64.whl", hash = "sha256:94845ff54dc5193f228cab81b2662a04bfbb892e95bdc15edf7399000ce57d54", size = 2156251, upload-time = "2026-10-11T18:34:31.455Z" }, + { url = "https://files.pythonhosted.org/packages/47/47/83643225b08f2aef6c8cc4bbe6e3f79c5e139c4364a6e450d0f399d87774/pydantic_core-2.50.1-cp315-cp315t-macosx_10_12_x86_64.whl", hash = "sha256:4a53d13cdfbedbfa87f08b83c1a0a5efcc767d785a4b41934fa9cb672670493a", size = 2234363, upload-time = "2026-10-11T18:34:33.65Z" }, + { url = "https://files.pythonhosted.org/packages/5e/66/127ca649ba2f2462039dc1e694c6c01e00a3689f023a617364d3507e6d97/pydantic_core-2.50.1-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:efbecf43d321f7b9281441f1f213f7c21c66988b0e06c2730ba13ed47a46bb08", size = 2000972, upload-time = "2026-10-11T18:34:36.037Z" }, + { url = "https://files.pythonhosted.org/packages/5e/4f/e421e0a5d653b1203b090b2e48745976988d7338a647940704b5b9c2b399/pydantic_core-2.50.1-cp315-cp315t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bc1f08f68dac9f9e83845a8039880aba2ab553eb9b2259c3243a313182c253fe", size = 2022925, upload-time = "2026-10-11T18:34:37.972Z" }, + { url = "https://files.pythonhosted.org/packages/d5/4e/ea5568e2491e1a71100f15ae8c2d01ef52db42a184a2d4e716bc79e5eb8f/pydantic_core-2.50.1-cp315-cp315t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5dfe41f232befddb9c4377f6cfc702b51595e2d78ed082672adf8758d2c4619f", size = 2192867, upload-time = "2026-10-11T18:34:39.921Z" }, + { url = "https://files.pythonhosted.org/packages/ae/5e/3b8c3a35acbe219909ada5defad5d7d9fed845fb2b37bd5ec518f453c119/pydantic_core-2.50.1-cp315-cp315t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:adc06d218a1cadfd2ec4628424d7d79ce4eba69c2965e7e7b55106f0da5208c8", size = 2388687, upload-time = "2026-10-11T18:34:42.184Z" }, + { url = "https://files.pythonhosted.org/packages/b6/aa/7889b4e515f91a2e8c0ae6b5081fec0feb30c4398d1434e14793c60f173a/pydantic_core-2.50.1-cp315-cp315t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2cf91809d0721ab81592ba67bea7694821679c10b1a2e3c3460082b286c1918a", size = 2464415, upload-time = "2026-10-11T18:34:44.384Z" }, + { url = "https://files.pythonhosted.org/packages/08/78/93449e628eb8a6fdcce3eff9043081179d1bc7ce6f1bff32dc5006f41e00/pydantic_core-2.50.1-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23923ab9292c40da026330b1ecf4dc2618c8e86e0422e5d1fbf50d94d64ca4f8", size = 2150823, upload-time = "2026-10-11T18:34:46.392Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f1/72c5bc129fceb0d00f05dc1e67f518c1728de1928c55f81fc13d7690de39/pydantic_core-2.50.1-cp315-cp315t-manylinux_2_31_riscv64.whl", hash = "sha256:f3377c8c2b3ce898423c5e5dd94c7982e30aa7717a7e6ab2470b9de364963709", size = 2245806, upload-time = "2026-10-11T18:34:48.805Z" }, + { url = "https://files.pythonhosted.org/packages/28/2a/922a0e78f3aa6ab837b59f88190233fb8dad546c17995fde9bb3ed3b9b49/pydantic_core-2.50.1-cp315-cp315t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:455a773617b5913bf5c20d0692e5787b119e52c4d40ea644ca31f5758fd31be2", size = 2264160, upload-time = "2026-10-11T18:34:50.876Z" }, + { url = "https://files.pythonhosted.org/packages/52/a8/0f1449e3e1b20941c9372faa18e7b6a092e30cdfa841902473f7989532ac/pydantic_core-2.50.1-cp315-cp315t-musllinux_1_1_aarch64.whl", hash = "sha256:1a9006395dece0e32e704c315eff8a00bede494f6108546cfc5539c89fef4f9a", size = 2294031, upload-time = "2026-10-11T18:34:52.876Z" }, + { url = "https://files.pythonhosted.org/packages/d1/d0/1031f492857de70355fb16524bbb03efce5fd34c93ed4a1ec60be07e0d4b/pydantic_core-2.50.1-cp315-cp315t-musllinux_1_1_armv7l.whl", hash = "sha256:d2d82aa62521c55ddfb000ae70f88cdd8de974078f6024e821dfe5addd0c818f", size = 2468423, upload-time = "2026-10-11T18:34:54.995Z" }, + { url = "https://files.pythonhosted.org/packages/46/52/269ffffa645b8e47906395a39cf9db1151ae9fa4bcd7f47b960bc31baf37/pydantic_core-2.50.1-cp315-cp315t-musllinux_1_1_x86_64.whl", hash = "sha256:009634b83993777ddcd69cad0ffcace43dabde692109528e35f0fde91e386a8b", size = 2512598, upload-time = "2026-10-11T18:34:57.149Z" }, + { url = "https://files.pythonhosted.org/packages/31/5c/e47e28281f20326ff6f3c31d626f0a83e615d2d94ba41bb0ad6ec237184a/pydantic_core-2.50.1-cp315-cp315t-win32.whl", hash = "sha256:3fde4fdc6487a58d944ca87cf5adc95d5f266e872c19599f5f4c0a8a1b1f9f9f", size = 2098535, upload-time = "2026-10-11T18:34:59.313Z" }, + { url = "https://files.pythonhosted.org/packages/03/ad/759e181e69c1b472c60b2049e5f61d5da1deefdd5ce1df4bb2ebcf771f25/pydantic_core-2.50.1-cp315-cp315t-win_amd64.whl", hash = "sha256:1c8632d4ac04e6f91128fca584b3a8a507d81604c24eeaaad00d4be42765c32b", size = 2148645, upload-time = "2026-10-11T18:35:01.571Z" }, + { url = "https://files.pythonhosted.org/packages/6d/56/8a702c27e5be9f47e5f19d8669227424290e4c024e7c370279cbaf244b4e/pydantic_core-2.50.1-cp315-cp315t-win_arm64.whl", hash = "sha256:c3ede305158e75510be50869b319550ab072008c13d64d4ab1e094fb286b6f44", size = 2175297, upload-time = "2026-10-11T18:35:04.079Z" }, + { url = "https://files.pythonhosted.org/packages/a5/09/1bcf160f3cd6333e2a76982fae5963e5032de0bcaaba38464223dc266bfe/pydantic_core-2.50.1-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:76e2e83fa6ec8cdc972d438dafc2522b3a47bee4ec0ae668b29cfb1977ab5242", size = 2217070, upload-time = "2026-10-11T18:35:15.688Z" }, + { url = "https://files.pythonhosted.org/packages/3d/81/f02de95eec7794dfc7a5bc69a834f0e834b31b3009014ce6de903855f775/pydantic_core-2.50.1-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:a51eee75939cf811ac09b278745a6cee7dc873ccfbc8b9af3cc88fe4b7ce25b5", size = 2039027, upload-time = "2026-10-11T18:35:18.07Z" }, + { url = "https://files.pythonhosted.org/packages/4d/16/227746ed3771d9bf2304568b55134849ece34e13b38b1d76de763015c77f/pydantic_core-2.50.1-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ae28183297fb0d2b8dc46a1f01d51f5e45825fc5afe76a835a6cb7fb34821295", size = 2109009, upload-time = "2026-10-11T18:35:20.218Z" }, + { url = "https://files.pythonhosted.org/packages/e5/b9/7664d1592a0e5a74903f357cd5b28ceb7336f3473256c5a4e8c8432f1881/pydantic_core-2.50.1-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88e492e8b9d0312e7dc13667c30222abf284dc3b79b5302b3607b41a5784ce61", size = 2269883, upload-time = "2026-10-11T18:35:22.48Z" }, ] [[package]] name = "pygments" -version = "2.20.0" +version = "2.21.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/c3/b2/bc9c9196916376152d655522fdcebac55e66de6603a76a02bca1b6414f6c/pygments-2.20.0.tar.gz", hash = "sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f", size = 4955991 } +sdist = { url = "https://files.pythonhosted.org/packages/49/2e/ced460408999b33da6b31b0021b0f37d329e202d4169aeb164493778f25b/pygments-2.21.0.tar.gz", hash = "sha256:610ca751c9bc2492b38eb9a38a7fbc93edbbb2d7182edaf34e66ae493dee5c8c", size = 5005329, upload-time = "2026-08-17T08:02:48.824Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl", hash = "sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176", size = 1231151 }, + { url = "https://files.pythonhosted.org/packages/71/46/17f022dd3e953bf20a04a028a21ec746d942f8d2af30fa0f124fa0e6a684/pygments-2.21.0-py3-none-any.whl", hash = "sha256:2363c69b61c4a97c838da3b130dcd6468f4848992b21a82f2a63ec34377137d9", size = 1250147, upload-time = "2026-08-17T08:02:44.912Z" }, ] [[package]] name = "pyparsing" -version = "3.3.2" +version = "3.3.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f3/91/9c6ee907786a473bf81c5f53cf703ba0957b23ab84c264080fb5a450416f/pyparsing-3.3.2.tar.gz", hash = "sha256:c777f4d763f140633dcb6d8a3eda953bf7a214dc4eff598413c070bcdc117cbc", size = 6851574 } +sdist = { url = "https://files.pythonhosted.org/packages/e4/11/b213bebff182584360cb8d17c72c1677fec5c5c228de439e63bcf8ab1c8f/pyparsing-3.3.3.tar.gz", hash = "sha256:928ae7e20211f3b6f3915a72f06a0cfd29ab9d24279dd6346b6b1a7146397d36", size = 1050487, upload-time = "2026-09-20T20:59:05.609Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/10/bd/c038d7cc38edc1aa5bf91ab8068b63d4308c66c4c8bb3cbba7dfbc049f9c/pyparsing-3.3.2-py3-none-any.whl", hash = "sha256:850ba148bd908d7e2411587e247a1e4f0327839c40e2e5e6d05a007ecc69911d", size = 122781 }, + { url = "https://files.pythonhosted.org/packages/38/bb/d215ee7c73b61497b28a5503f9f53523f294fcc936762b7caf90e0c1c2b5/pyparsing-3.3.3-py3-none-any.whl", hash = "sha256:ece8c00a69cf01b45d0b1dedabb469c90d8caf996d4fda40f147627a122849a4", size = 126420, upload-time = "2026-09-20T20:59:04.025Z" }, ] [[package]] name = "pyproj" -version = "3.7.2" +version = "3.8.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "certifi" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/04/90/67bd7260b4ea9b8b20b4f58afef6c223ecb3abf368eb4ec5bc2cdef81b49/pyproj-3.7.2.tar.gz", hash = "sha256:39a0cf1ecc7e282d1d30f36594ebd55c9fae1fda8a2622cee5d100430628f88c", size = 226279 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8d/ab/9893ea9fb066be70ed9074ae543914a618c131ed8dff2da1e08b3a4df4db/pyproj-3.7.2-cp312-cp312-macosx_13_0_x86_64.whl", hash = "sha256:0a9bb26a6356fb5b033433a6d1b4542158fb71e3c51de49b4c318a1dff3aeaab", size = 6219832 }, - { url = "https://files.pythonhosted.org/packages/53/78/4c64199146eed7184eb0e85bedec60a4aa8853b6ffe1ab1f3a8b962e70a0/pyproj-3.7.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:567caa03021178861fad27fabde87500ec6d2ee173dd32f3e2d9871e40eebd68", size = 4620650 }, - { url = "https://files.pythonhosted.org/packages/b6/ac/14a78d17943898a93ef4f8c6a9d4169911c994e3161e54a7cedeba9d8dde/pyproj-3.7.2-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:c203101d1dc3c038a56cff0447acc515dd29d6e14811406ac539c21eed422b2a", size = 9667087 }, - { url = "https://files.pythonhosted.org/packages/b8/be/212882c450bba74fc8d7d35cbd57e4af84792f0a56194819d98106b075af/pyproj-3.7.2-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:1edc34266c0c23ced85f95a1ee8b47c9035eae6aca5b6b340327250e8e281630", size = 9552797 }, - { url = "https://files.pythonhosted.org/packages/ba/c0/c0f25c87b5d2a8686341c53c1792a222a480d6c9caf60311fec12c99ec26/pyproj-3.7.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:aa9f26c21bc0e2dc3d224cb1eb4020cf23e76af179a7c66fea49b828611e4260", size = 10837036 }, - { url = "https://files.pythonhosted.org/packages/5d/37/5cbd6772addde2090c91113332623a86e8c7d583eccb2ad02ea634c4a89f/pyproj-3.7.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f9428b318530625cb389b9ddc9c51251e172808a4af79b82809376daaeabe5e9", size = 10775952 }, - { url = "https://files.pythonhosted.org/packages/69/a1/dc250e3cf83eb4b3b9a2cf86fdb5e25288bd40037ae449695550f9e96b2f/pyproj-3.7.2-cp312-cp312-win32.whl", hash = "sha256:b3d99ed57d319da042f175f4554fc7038aa4bcecc4ac89e217e350346b742c9d", size = 5898872 }, - { url = "https://files.pythonhosted.org/packages/4a/a6/6fe724b72b70f2b00152d77282e14964d60ab092ec225e67c196c9b463e5/pyproj-3.7.2-cp312-cp312-win_amd64.whl", hash = "sha256:11614a054cd86a2ed968a657d00987a86eeb91fdcbd9ad3310478685dc14a128", size = 6312176 }, - { url = "https://files.pythonhosted.org/packages/5d/68/915cc32c02a91e76d02c8f55d5a138d6ef9e47a0d96d259df98f4842e558/pyproj-3.7.2-cp312-cp312-win_arm64.whl", hash = "sha256:509a146d1398bafe4f53273398c3bb0b4732535065fa995270e52a9d3676bca3", size = 6233452 }, - { url = "https://files.pythonhosted.org/packages/be/14/faf1b90d267cea68d7e70662e7f88cefdb1bc890bd596c74b959e0517a72/pyproj-3.7.2-cp313-cp313-macosx_13_0_x86_64.whl", hash = "sha256:19466e529b1b15eeefdf8ff26b06fa745856c044f2f77bf0edbae94078c1dfa1", size = 6214580 }, - { url = "https://files.pythonhosted.org/packages/35/48/da9a45b184d375f62667f62eba0ca68569b0bd980a0bb7ffcc1d50440520/pyproj-3.7.2-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:c79b9b84c4a626c5dc324c0d666be0bfcebd99f7538d66e8898c2444221b3da7", size = 4615388 }, - { url = "https://files.pythonhosted.org/packages/5e/e7/d2b459a4a64bca328b712c1b544e109df88e5c800f7c143cfbc404d39bfb/pyproj-3.7.2-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:ceecf374cacca317bc09e165db38ac548ee3cad07c3609442bd70311c59c21aa", size = 9628455 }, - { url = "https://files.pythonhosted.org/packages/f8/85/c2b1706e51942de19076eff082f8495e57d5151364e78b5bef4af4a1d94a/pyproj-3.7.2-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:5141a538ffdbe4bfd157421828bb2e07123a90a7a2d6f30fa1462abcfb5ce681", size = 9514269 }, - { url = "https://files.pythonhosted.org/packages/34/38/07a9b89ae7467872f9a476883a5bad9e4f4d1219d31060f0f2b282276cbe/pyproj-3.7.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f000841e98ea99acbb7b8ca168d67773b0191de95187228a16110245c5d954d5", size = 10808437 }, - { url = "https://files.pythonhosted.org/packages/12/56/fda1daeabbd39dec5b07f67233d09f31facb762587b498e6fc4572be9837/pyproj-3.7.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8115faf2597f281a42ab608ceac346b4eb1383d3b45ab474fd37341c4bf82a67", size = 10745540 }, - { url = "https://files.pythonhosted.org/packages/0d/90/c793182cbba65a39a11db2ac6b479fe76c59e6509ae75e5744c344a0da9d/pyproj-3.7.2-cp313-cp313-win32.whl", hash = "sha256:f18c0579dd6be00b970cb1a6719197fceecc407515bab37da0066f0184aafdf3", size = 5896506 }, - { url = "https://files.pythonhosted.org/packages/be/0f/747974129cf0d800906f81cd25efd098c96509026e454d4b66868779ab04/pyproj-3.7.2-cp313-cp313-win_amd64.whl", hash = "sha256:bb41c29d5f60854b1075853fe80c58950b398d4ebb404eb532536ac8d2834ed7", size = 6310195 }, - { url = "https://files.pythonhosted.org/packages/82/64/fc7598a53172c4931ec6edf5228280663063150625d3f6423b4c20f9daff/pyproj-3.7.2-cp313-cp313-win_arm64.whl", hash = "sha256:2b617d573be4118c11cd96b8891a0b7f65778fa7733ed8ecdb297a447d439100", size = 6230748 }, - { url = "https://files.pythonhosted.org/packages/aa/f0/611dd5cddb0d277f94b7af12981f56e1441bf8d22695065d4f0df5218498/pyproj-3.7.2-cp313-cp313t-macosx_13_0_x86_64.whl", hash = "sha256:d27b48f0e81beeaa2b4d60c516c3a1cfbb0c7ff6ef71256d8e9c07792f735279", size = 6241729 }, - { url = "https://files.pythonhosted.org/packages/15/93/40bd4a6c523ff9965e480870611aed7eda5aa2c6128c6537345a2b77b542/pyproj-3.7.2-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:55a3610d75023c7b1c6e583e48ef8f62918e85a2ae81300569d9f104d6684bb6", size = 4652497 }, - { url = "https://files.pythonhosted.org/packages/1b/ae/7150ead53c117880b35e0d37960d3138fe640a235feb9605cb9386f50bb0/pyproj-3.7.2-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:8d7349182fa622696787cc9e195508d2a41a64765da9b8a6bee846702b9e6220", size = 9942610 }, - { url = "https://files.pythonhosted.org/packages/d8/17/7a4a7eafecf2b46ab64e5c08176c20ceb5844b503eaa551bf12ccac77322/pyproj-3.7.2-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:d230b186eb876ed4f29a7c5ee310144c3a0e44e89e55f65fb3607e13f6db337c", size = 9692390 }, - { url = "https://files.pythonhosted.org/packages/c3/55/ae18f040f6410f0ea547a21ada7ef3e26e6c82befa125b303b02759c0e9d/pyproj-3.7.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:237499c7862c578d0369e2b8ac56eec550e391a025ff70e2af8417139dabb41c", size = 11047596 }, - { url = "https://files.pythonhosted.org/packages/e6/2e/d3fff4d2909473f26ae799f9dda04caa322c417a51ff3b25763f7d03b233/pyproj-3.7.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8c225f5978abd506fd9a78eaaf794435e823c9156091cabaab5374efb29d7f69", size = 10896975 }, - { url = "https://files.pythonhosted.org/packages/f2/bc/8fc7d3963d87057b7b51ebe68c1e7c51c23129eee5072ba6b86558544a46/pyproj-3.7.2-cp313-cp313t-win32.whl", hash = "sha256:2da731876d27639ff9d2d81c151f6ab90a1546455fabd93368e753047be344a2", size = 5953057 }, - { url = "https://files.pythonhosted.org/packages/cc/27/ea9809966cc47d2d51e6d5ae631ea895f7c7c7b9b3c29718f900a8f7d197/pyproj-3.7.2-cp313-cp313t-win_amd64.whl", hash = "sha256:f54d91ae18dd23b6c0ab48126d446820e725419da10617d86a1b69ada6d881d3", size = 6375414 }, - { url = "https://files.pythonhosted.org/packages/5b/f8/1ef0129fba9a555c658e22af68989f35e7ba7b9136f25758809efec0cd6e/pyproj-3.7.2-cp313-cp313t-win_arm64.whl", hash = "sha256:fc52ba896cfc3214dc9f9ca3c0677a623e8fdd096b257c14a31e719d21ff3fdd", size = 6262501 }, - { url = "https://files.pythonhosted.org/packages/42/17/c2b050d3f5b71b6edd0d96ae16c990fdc42a5f1366464a5c2772146de33a/pyproj-3.7.2-cp314-cp314-macosx_13_0_x86_64.whl", hash = "sha256:2aaa328605ace41db050d06bac1adc11f01b71fe95c18661497763116c3a0f02", size = 6214541 }, - { url = "https://files.pythonhosted.org/packages/03/68/68ada9c8aea96ded09a66cfd9bf87aa6db8c2edebe93f5bf9b66b0143fbc/pyproj-3.7.2-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:35dccbce8201313c596a970fde90e33605248b66272595c061b511c8100ccc08", size = 4617456 }, - { url = "https://files.pythonhosted.org/packages/81/e4/4c50ceca7d0e937977866b02cb64e6ccf4df979a5871e521f9e255df6073/pyproj-3.7.2-cp314-cp314-manylinux_2_28_aarch64.whl", hash = "sha256:25b0b7cb0042444c29a164b993c45c1b8013d6c48baa61dc1160d834a277e83b", size = 9615590 }, - { url = "https://files.pythonhosted.org/packages/05/1e/ada6fb15a1d75b5bd9b554355a69a798c55a7dcc93b8d41596265c1772e3/pyproj-3.7.2-cp314-cp314-manylinux_2_28_x86_64.whl", hash = "sha256:85def3a6388e9ba51f964619aa002a9d2098e77c6454ff47773bb68871024281", size = 9474960 }, - { url = "https://files.pythonhosted.org/packages/51/07/9d48ad0a8db36e16f842f2c8a694c1d9d7dcf9137264846bef77585a71f3/pyproj-3.7.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:b1bccefec3875ab81eabf49059e2b2ea77362c178b66fd3528c3e4df242f1516", size = 10799478 }, - { url = "https://files.pythonhosted.org/packages/85/cf/2f812b529079f72f51ff2d6456b7fef06c01735e5cfd62d54ffb2b548028/pyproj-3.7.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d5371ca114d6990b675247355a801925814eca53e6c4b2f1b5c0a956336ee36e", size = 10710030 }, - { url = "https://files.pythonhosted.org/packages/99/9b/4626a19e1f03eba4c0e77b91a6cf0f73aa9cb5d51a22ee385c22812bcc2c/pyproj-3.7.2-cp314-cp314-win32.whl", hash = "sha256:77f066626030f41be543274f5ac79f2a511fe89860ecd0914f22131b40a0ec25", size = 5991181 }, - { url = "https://files.pythonhosted.org/packages/04/b2/5a6610554306a83a563080c2cf2c57565563eadd280e15388efa00fb5b33/pyproj-3.7.2-cp314-cp314-win_amd64.whl", hash = "sha256:5a964da1696b8522806f4276ab04ccfff8f9eb95133a92a25900697609d40112", size = 6434721 }, - { url = "https://files.pythonhosted.org/packages/ae/ce/6c910ea2e1c74ef673c5d48c482564b8a7824a44c4e35cca2e765b68cfcc/pyproj-3.7.2-cp314-cp314-win_arm64.whl", hash = "sha256:e258ab4dbd3cf627809067c0ba8f9884ea76c8e5999d039fb37a1619c6c3e1f6", size = 6363821 }, - { url = "https://files.pythonhosted.org/packages/e4/e4/5532f6f7491812ba782a2177fe9de73fd8e2912b59f46a1d056b84b9b8f2/pyproj-3.7.2-cp314-cp314t-macosx_13_0_x86_64.whl", hash = "sha256:bbbac2f930c6d266f70ec75df35ef851d96fdb3701c674f42fd23a9314573b37", size = 6241773 }, - { url = "https://files.pythonhosted.org/packages/20/1f/0938c3f2bbbef1789132d1726d9b0e662f10cfc22522743937f421ad664e/pyproj-3.7.2-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:b7544e0a3d6339dc9151e9c8f3ea62a936ab7cc446a806ec448bbe86aebb979b", size = 4652537 }, - { url = "https://files.pythonhosted.org/packages/c7/a8/488b1ed47d25972f33874f91f09ca8f2227902f05f63a2b80dc73e7b1c97/pyproj-3.7.2-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:f7f5133dca4c703e8acadf6f30bc567d39a42c6af321e7f81975c2518f3ed357", size = 9940864 }, - { url = "https://files.pythonhosted.org/packages/c7/cc/7f4c895d0cb98e47b6a85a6d79eaca03eb266129eed2f845125c09cf31ff/pyproj-3.7.2-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:5aff3343038d7426aa5076f07feb88065f50e0502d1b0d7c22ddfdd2c75a3f81", size = 9688868 }, - { url = "https://files.pythonhosted.org/packages/b2/b7/c7e306b8bb0f071d9825b753ee4920f066c40fbfcce9372c4f3cfb2fc4ed/pyproj-3.7.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:b0552178c61f2ac1c820d087e8ba6e62b29442debddbb09d51c4bf8acc84d888", size = 11045910 }, - { url = "https://files.pythonhosted.org/packages/42/fb/538a4d2df695980e2dde5c04d965fbdd1fe8c20a3194dc4aaa3952a4d1be/pyproj-3.7.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:47d87db2d2c436c5fd0409b34d70bb6cdb875cca2ebe7a9d1c442367b0ab8d59", size = 10895724 }, - { url = "https://files.pythonhosted.org/packages/e8/8b/a3f0618b03957de9db5489a04558a8826f43906628bb0b766033aa3b5548/pyproj-3.7.2-cp314-cp314t-win32.whl", hash = "sha256:c9b6f1d8ad3e80a0ee0903a778b6ece7dca1d1d40f6d114ae01bc8ddbad971aa", size = 6056848 }, - { url = "https://files.pythonhosted.org/packages/bc/56/413240dd5149dd3291eda55aa55a659da4431244a2fd1319d0ae89407cfb/pyproj-3.7.2-cp314-cp314t-win_amd64.whl", hash = "sha256:1914e29e27933ba6f9822663ee0600f169014a2859f851c054c88cf5ea8a333c", size = 6517676 }, - { url = "https://files.pythonhosted.org/packages/15/73/a7141a1a0559bf1a7aa42a11c879ceb19f02f5c6c371c6d57fd86cefd4d1/pyproj-3.7.2-cp314-cp314t-win_arm64.whl", hash = "sha256:d9d25bae416a24397e0d85739f84d323b55f6511e45a522dd7d7eae70d10c7e4", size = 6391844 }, +sdist = { url = "https://files.pythonhosted.org/packages/c8/29/6598570c90cbfc84ddefc3ccac4aa412bf51a527d72c74cc4fe64a5e6f24/pyproj-3.8.0.tar.gz", hash = "sha256:efa59725bba68bf97fa808b61302df32934acdceb6a5c92a8dd0e71dc266a876", size = 242018, upload-time = "2026-09-05T20:05:09.353Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bb/c0/e2cdf9555f4feb6a17717de08527b0358ecccca7892ac78b17f5a04903cb/pyproj-3.8.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:8606ccbc110ce2e8cbe4c9ba6c3f24cd73f603795ac0fce1ceb8fc27a9bb786e", size = 4990712, upload-time = "2026-09-05T20:03:10.928Z" }, + { url = "https://files.pythonhosted.org/packages/4e/99/4ec34c75e06d18bd4b8e08189ef8a76170bab339a9bee7d6eaeed075d444/pyproj-3.8.0-cp312-cp312-macosx_15_0_x86_64.whl", hash = "sha256:2d4c49e27d404a95d244196fdadb6b0b0ba3c3cbb43a8d2a357fc579a36b7835", size = 6098819, upload-time = "2026-09-05T20:03:13.066Z" }, + { url = "https://files.pythonhosted.org/packages/28/c3/a819a14ff040ad441f09589fff28cca88c82cb8537818316c798f2ddafb2/pyproj-3.8.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:d8e00ccd9195d9dbb968d490ae9e51c3a59378665506c05e36bfdb6493a38a69", size = 10120591, upload-time = "2026-09-05T20:03:15.214Z" }, + { url = "https://files.pythonhosted.org/packages/5f/ed/035354de8fbc1c1350f5b7f66361995f187d89675622eb63016bf7261dd5/pyproj-3.8.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:6b34cec6bdd66b721980c003cc2a0fce0cab7949444ad037fc2a7ecb6f3b996c", size = 10037552, upload-time = "2026-09-05T20:03:17.43Z" }, + { url = "https://files.pythonhosted.org/packages/76/62/04809135418fb84402acf2a1d37beaeb770d66d78061962cbf0d459a0b07/pyproj-3.8.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:859caa91bd9a1c614bac7de110f3a62f715e6c5a4fe9140c3fd6a0c5034e390d", size = 11498786, upload-time = "2026-09-05T20:03:20.178Z" }, + { url = "https://files.pythonhosted.org/packages/55/ce/7e29ca3df78c59b413ab20d2d2dfb1ef36329f051597992eaa65e4306ac0/pyproj-3.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e6e21972a28e65fdec4b794b6298206516853e03fc9ac40c14271c5dce6b0d32", size = 11497184, upload-time = "2026-09-05T20:03:22.591Z" }, + { url = "https://files.pythonhosted.org/packages/9a/8c/010481b3629eb70f8c8c433d706207b1ec91fdb76fc10cf4ec1d92f51bdd/pyproj-3.8.0-cp312-cp312-win32.whl", hash = "sha256:7914e83760284e4d8d3b6b2a6845c21270a07f214bfd89344d45f9ab63e1b4b5", size = 6295859, upload-time = "2026-09-05T20:03:24.738Z" }, + { url = "https://files.pythonhosted.org/packages/b7/d7/2c861a429581577a441e03020d27274812d7969748f5951d972f6e34597f/pyproj-3.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:0556ce011e1530aea2084a12e39dc9c6ccd25a16c1db5457f39bf83161e7c301", size = 6714045, upload-time = "2026-09-05T20:03:26.863Z" }, + { url = "https://files.pythonhosted.org/packages/09/bb/2d1ff197922cfe106f204041503fb8039d2cee9c34c2a61a0b65f4121b4c/pyproj-3.8.0-cp312-cp312-win_arm64.whl", hash = "sha256:a792112106471f97c3f74b51639068388c9ad0605cc1ca100f11fd0bf47a004e", size = 6663720, upload-time = "2026-09-05T20:03:28.625Z" }, + { url = "https://files.pythonhosted.org/packages/3a/6c/50e8846bda4502d2967c78a106e3565f0e3008965066e65a90cfa295c673/pyproj-3.8.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:d7bd22f1d4f058db72b5f09d0fcc9a2346178ccf965139ca483edaa5c3a7f2d3", size = 4987064, upload-time = "2026-09-05T20:03:30.544Z" }, + { url = "https://files.pythonhosted.org/packages/56/71/108a8a1fe4dfd6d0bfea14835d834d2a10a89c82b1807084f34f480c5599/pyproj-3.8.0-cp313-cp313-macosx_15_0_x86_64.whl", hash = "sha256:c90bf55c42d3d5475958196bf7331b9aa87e1505af49570f126739ad7e808c1e", size = 6096593, upload-time = "2026-09-05T20:03:32.128Z" }, + { url = "https://files.pythonhosted.org/packages/6d/c4/e9213bb303205912bce7d0681c39da654f9e0a9585cc227b1ee142b5156c/pyproj-3.8.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:8e01abceec40fd8326637cc207a4da089a3c3f61e64001cbd86951c746c54085", size = 10051120, upload-time = "2026-09-05T20:03:34.006Z" }, + { url = "https://files.pythonhosted.org/packages/c9/80/3cdcc2e6942eec2774c8c27655705329e0d76b1eea849136d27dd75aea38/pyproj-3.8.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:01a1601da9c6ad247a12d304f96f9e0b4ddd00b307636341c136442a70c5e218", size = 9974666, upload-time = "2026-09-05T20:03:36.226Z" }, + { url = "https://files.pythonhosted.org/packages/99/c4/f890986aa51e846de464e5054d46ea5443c7cf6fa677631b0e2aa0659dc4/pyproj-3.8.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0efefc85d3f262d4e5b43d0ffc4ea30e89881ed21feb281b1d1b1294423411ac", size = 11437839, upload-time = "2026-09-05T20:03:38.752Z" }, + { url = "https://files.pythonhosted.org/packages/c6/1e/e720a2d83424181be89ea5201c1f38c1ea8c73fdfae54e549bb44a14ace1/pyproj-3.8.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9d7f3526031ba810922b15eeab446667f02af4e78de49141e7f0d4a3c7e10ce1", size = 11436240, upload-time = "2026-09-05T20:03:41.128Z" }, + { url = "https://files.pythonhosted.org/packages/9b/0a/8cf66c2a355e2af80ce1dd41386ef2c9f6986c16893b5251e437a03cc5e3/pyproj-3.8.0-cp313-cp313-win32.whl", hash = "sha256:efe9f067215397d719df759083dda09b7012de99439003b12dff5109b339771d", size = 6293886, upload-time = "2026-09-05T20:03:43.392Z" }, + { url = "https://files.pythonhosted.org/packages/b7/70/c5477f4bcc1e1dfeb53ba082f8102467a5675f66ffc21fce1f2564c5ce5d/pyproj-3.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:d7b542e249eb593c1af737b7124648868383b69744ab6a1a0a2ffd0113c997f4", size = 6710283, upload-time = "2026-09-05T20:03:45.185Z" }, + { url = "https://files.pythonhosted.org/packages/99/c5/986fc93c7569e82f21dc2e68cf3603843a57a9837e40f48651a69b4bd27f/pyproj-3.8.0-cp313-cp313-win_arm64.whl", hash = "sha256:b761da280804bb02574c3d950d5e56c47e2aec782d8a3e6714c9c10645cfd020", size = 6661749, upload-time = "2026-09-05T20:03:46.976Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f0/9eb71bd1a38680e0bed2dafc7bb86893944c389fc4d1e4861411f9bc00a3/pyproj-3.8.0-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:ad96cf05cfea67e54c16b2119b29ea60ba3b3562643ed3e8a0ce0ecc55efb50e", size = 4991052, upload-time = "2026-09-05T20:03:49.004Z" }, + { url = "https://files.pythonhosted.org/packages/fa/be/9c9839d8a95b57d6fea342802073886ce58a64b7f6e8f8d58054f2c245a8/pyproj-3.8.0-cp314-cp314-macosx_15_0_x86_64.whl", hash = "sha256:45d3abdf17a26396f86d353b957323d53e5fc9d9558bed311ae3b1bf6665448d", size = 6098992, upload-time = "2026-09-05T20:03:50.961Z" }, + { url = "https://files.pythonhosted.org/packages/81/f5/3dd3d75c124a12a9fb69f607a8c9d3af15439c78d57f0dc8d30edac3342e/pyproj-3.8.0-cp314-cp314-manylinux_2_28_aarch64.whl", hash = "sha256:0b3ba65286a1ea401ca51fd35f2bd375f26fd29d517d5ee980159f9f739b2109", size = 10047009, upload-time = "2026-09-05T20:03:52.921Z" }, + { url = "https://files.pythonhosted.org/packages/15/7e/ccee7d6b307bb635b47dbd96eb3471c3a7d6053b8f903723756f8a3ba00a/pyproj-3.8.0-cp314-cp314-manylinux_2_28_x86_64.whl", hash = "sha256:8cff207c2a92235f79bb2caab29790e1743776e02331143bc5de4224bd695911", size = 9942031, upload-time = "2026-09-05T20:03:55.327Z" }, + { url = "https://files.pythonhosted.org/packages/2b/1d/48a2f7d3242da15a75f6ef3ec33ebb250c4218735ac1ca0144e8fef7274c/pyproj-3.8.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c9a4e37ce375a87a407e8771475680b757903be59cd41b29e60f90bd56fa6b65", size = 11438119, upload-time = "2026-09-05T20:03:57.875Z" }, + { url = "https://files.pythonhosted.org/packages/c6/f7/4118e918180a6edc9267c2d7635167f96bd3c7fa634442b92cb7210a8298/pyproj-3.8.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:ba53cff2c6e768f1b84844ff621291c5ab89ac8875bd8036ab6065aaf58cdbd9", size = 11408758, upload-time = "2026-09-05T20:04:00.587Z" }, + { url = "https://files.pythonhosted.org/packages/12/80/7b2aa0703cfd676a8c8545286cc58ea62ca647c60059c185f0ba484a6a92/pyproj-3.8.0-cp314-cp314-win32.whl", hash = "sha256:dba62da116d92a724723b6e206d792993486458369f65db2381f43564d0d2984", size = 6405456, upload-time = "2026-09-05T20:04:02.92Z" }, + { url = "https://files.pythonhosted.org/packages/f9/26/058eaa656d4e4c43a2528b51a39f6d4b3082e6eb38731ddab4088a744bc1/pyproj-3.8.0-cp314-cp314-win_amd64.whl", hash = "sha256:653b49e2d5aa87c22c1c32520700ed8f394583a0174a6e69ceb280bdbee1b4e6", size = 6856493, upload-time = "2026-09-05T20:04:05.836Z" }, + { url = "https://files.pythonhosted.org/packages/a5/41/8c7c837c863611745e4ad6d30ef2f64838ac7dd77532934120abb4e280f4/pyproj-3.8.0-cp314-cp314-win_arm64.whl", hash = "sha256:c211c35bd8bbf6693fd2787bf8cb15bbac6fbdbad4f6495e9baf53e84923b1a8", size = 6815331, upload-time = "2026-09-05T20:04:08.149Z" }, + { url = "https://files.pythonhosted.org/packages/29/2a/c187159cdd3c0d77a47008b67848433c7663f6f330fdda31d33994525ba6/pyproj-3.8.0-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:e2129d03506414ff22fa4bc2541100ce3bfd9b6d1d9af805e77631aae04b866b", size = 5034204, upload-time = "2026-09-05T20:04:09.811Z" }, + { url = "https://files.pythonhosted.org/packages/5a/3a/33a116141601104596f8d13fb8475124fffc0b79eba7dea607eed7d479ad/pyproj-3.8.0-cp314-cp314t-macosx_15_0_x86_64.whl", hash = "sha256:1271c631c28c1d646c1e0b890bd691d1c4b736f9745a9d8a00f750fefd77de9c", size = 6124713, upload-time = "2026-09-05T20:04:11.517Z" }, + { url = "https://files.pythonhosted.org/packages/d4/42/c95c4a06f59271be31b893ddc9b55e3a2c0a577ab6a1204bd4047a3a2898/pyproj-3.8.0-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:a510721719b9e3f5964ad8235e3530bdd82a38093266ad037ee08f71fb9995e9", size = 10326257, upload-time = "2026-09-05T20:04:13.682Z" }, + { url = "https://files.pythonhosted.org/packages/2e/ef/a23a52a64fd8669a3bb65e6af754f60b3622f30cfd86092007baec3afcdd/pyproj-3.8.0-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:faa68c0996bdd3fd997d86c676e758b72a96209ab14b7c5e8b8dcf3b23f85881", size = 10127655, upload-time = "2026-09-05T20:04:16.52Z" }, + { url = "https://files.pythonhosted.org/packages/de/d5/7ce0841f952c44daff8673636e112e07320dcf19d34cb02b830619eafcfd/pyproj-3.8.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:fe26eb69e78f8b8d30ee67a6a6cfc172dd6085bc2c164a7143568138cb3a5a39", size = 11645798, upload-time = "2026-09-05T20:04:19.251Z" }, + { url = "https://files.pythonhosted.org/packages/e7/23/f921f08d883431d69486e18c127a4b5ad5d4d47ebc530e89ec49faa9e962/pyproj-3.8.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:2da8c0be5660e4f261bf1e63c1d51a8c503947af1c0a330e15e5cddec7ef1e5c", size = 11569070, upload-time = "2026-09-05T20:04:22.142Z" }, + { url = "https://files.pythonhosted.org/packages/ba/b1/e1a20545949c2dc13c6dfc80593f07c1ba32eb6d5f7134732eb1306c5540/pyproj-3.8.0-cp314-cp314t-win32.whl", hash = "sha256:cb38a247201b26be0a2513262e0014847fba6a28400a921d26f6d23db924e345", size = 6475514, upload-time = "2026-09-05T20:04:24.428Z" }, + { url = "https://files.pythonhosted.org/packages/af/46/b3def124148728753a60e8ce3123aed8fec135fd050304c8aa9917aeeeae/pyproj-3.8.0-cp314-cp314t-win_amd64.whl", hash = "sha256:cd047cfb04e451b95ff8b91f824e641a54944fbf64dfef7946e4e8bad6f3f752", size = 6946924, upload-time = "2026-09-05T20:04:26.276Z" }, + { url = "https://files.pythonhosted.org/packages/66/24/c6b0cd6cb625ebc07aeea9bccca5802d9685ee178e9da8c03baadc035f2e/pyproj-3.8.0-cp314-cp314t-win_arm64.whl", hash = "sha256:a02db72ac71f36d4da337e43e98f59ec216613d1bbc2aa1543a9488f3a2a17cc", size = 6847919, upload-time = "2026-09-05T20:04:28.301Z" }, + { url = "https://files.pythonhosted.org/packages/51/00/2c47781ba80bfbeec612815eee45f7b08c4727d4da4d7853981338ff38d1/pyproj-3.8.0-cp315-cp315-macosx_14_0_arm64.whl", hash = "sha256:54750d95c7aa1cbe78ec7be522ceef9b82b8f6f185d26ca413995a953bf8f1e8", size = 4990032, upload-time = "2026-09-05T20:04:30.104Z" }, + { url = "https://files.pythonhosted.org/packages/ba/5a/d8fb1ceb8044bcacfbe1af15169c5674748228c6f6aa8d036399ecfe856f/pyproj-3.8.0-cp315-cp315-macosx_15_0_x86_64.whl", hash = "sha256:dd5bc46f443466cf18418290ef6b69b604b706b24adf84f2ea1d32e58a2f7209", size = 6097707, upload-time = "2026-09-05T20:04:32.346Z" }, + { url = "https://files.pythonhosted.org/packages/a2/24/0a5d3900c001f23d220ae4babd375f17667a505981be573c270c9952bb8f/pyproj-3.8.0-cp315-cp315-manylinux_2_28_aarch64.whl", hash = "sha256:f6e7aa6b2da0c7ae6b6185cb9769bf2f941c5f9cd0c246e98e04fc6751621eac", size = 10052422, upload-time = "2026-09-05T20:04:34.365Z" }, + { url = "https://files.pythonhosted.org/packages/81/68/3cdb0bc8eb5e30e21e2fadbf090c2a92cb92b92175fe9b76d2c74351cc6f/pyproj-3.8.0-cp315-cp315-manylinux_2_28_x86_64.whl", hash = "sha256:0fb11c0d6a7caa396275012a9bda461ddf2d209cf6edfe53c477fb9c71778672", size = 9950482, upload-time = "2026-09-05T20:04:36.814Z" }, + { url = "https://files.pythonhosted.org/packages/b1/b7/d08c09c7d10aacd7705ef71b8fa8e0aed5b625b3f410038d7a198a81fd48/pyproj-3.8.0-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:ea85d85e71d03d9b26d3bab78384226ebcfa71ac61bc25fcca5f50a144003575", size = 11443699, upload-time = "2026-09-05T20:04:39.324Z" }, + { url = "https://files.pythonhosted.org/packages/84/12/c24538a68b5d8ec33e1a2fe4d1dc309108bcfbd9991e976e1a8933063500/pyproj-3.8.0-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:ba88a9b5bfb39a141361e6ccc2a06136383ea2757fbfe3e6df2dd1133ad55304", size = 11410580, upload-time = "2026-09-05T20:04:41.739Z" }, + { url = "https://files.pythonhosted.org/packages/55/13/5bbb11d7d84d4d90b7a5c32c7b48dfaf49a00b04cc1572a92a68e06ae80f/pyproj-3.8.0-cp315-cp315-win32.whl", hash = "sha256:d3a37e54316ebb90f5740aed4728f43cb563109dd4ef610d0a1bc7238666d2a2", size = 6405053, upload-time = "2026-09-05T20:04:43.921Z" }, + { url = "https://files.pythonhosted.org/packages/de/f3/93daa94374eae77a188558cb20b159645eae4fb812fcadd066fc4935d018/pyproj-3.8.0-cp315-cp315-win_amd64.whl", hash = "sha256:d752eaaae639719abdb4d357008b4311c0931977f4ea0f019e79e4176ab243a7", size = 6856131, upload-time = "2026-09-05T20:04:45.619Z" }, + { url = "https://files.pythonhosted.org/packages/78/ce/69d83ccaf270916392e4625fad611e0a72a8fca8287db015f67787c193a5/pyproj-3.8.0-cp315-cp315-win_arm64.whl", hash = "sha256:dde9f238bb08f961c040ce7c6202ad5b841b508ece76eacfd8e18bc202778de7", size = 6815088, upload-time = "2026-09-05T20:04:47.339Z" }, + { url = "https://files.pythonhosted.org/packages/c2/f7/8efd72b1c73377fa41bd161b20a257b33a8497a0fcc1d2073c743622717c/pyproj-3.8.0-cp315-cp315t-macosx_14_0_arm64.whl", hash = "sha256:d31e9ddbd0ffcb65fcd902ab726b26741c9a8e8b90b60844596fd5b67030b39c", size = 5028580, upload-time = "2026-09-05T20:04:49.337Z" }, + { url = "https://files.pythonhosted.org/packages/12/17/9785c98b37e99fe2d67118198b9c379c0883d4b215b1dd1594cd98dc12c7/pyproj-3.8.0-cp315-cp315t-macosx_15_0_x86_64.whl", hash = "sha256:19db3f429013d20d31cfc56b2db44246fe5c33514b320eaef09f71f1762836bb", size = 6118988, upload-time = "2026-09-05T20:04:51.566Z" }, + { url = "https://files.pythonhosted.org/packages/eb/d2/ecfbd0c96dbf1370c4f8931dcee451620e08eb77c1f288b262ee2d962217/pyproj-3.8.0-cp315-cp315t-manylinux_2_28_aarch64.whl", hash = "sha256:f0540dea10339be8bb9f90c95685607b262547c53fa7645eef010965b80c4a90", size = 10316986, upload-time = "2026-09-05T20:04:53.498Z" }, + { url = "https://files.pythonhosted.org/packages/f5/c8/6783f31b178506a8faf55eb4e2f0007c281251a0303d59aa0c9ce9a85a80/pyproj-3.8.0-cp315-cp315t-manylinux_2_28_x86_64.whl", hash = "sha256:1074ab4aac836cb0e211fcf0e36dda7d51126c7ce15062ed9007164c6ae93183", size = 10128479, upload-time = "2026-09-05T20:04:56.441Z" }, + { url = "https://files.pythonhosted.org/packages/fc/03/212cb8445d84d20bca10b9c02516e99793a9b3d645e30892ca343499e9be/pyproj-3.8.0-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:c6da4fedc9b86970cca828b871b3fcbf8f9ad2da353b0669445fd8c03c89a9f7", size = 11641773, upload-time = "2026-09-05T20:04:59.129Z" }, + { url = "https://files.pythonhosted.org/packages/5c/fe/7a390eeb54cf3294d23dd6b03435485b4b28e1e6ca9217ce1e0c1941fe1e/pyproj-3.8.0-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:79e222f6f8486d0af3ebc5544edecebf396492e38f46500f668c6c389a20e4df", size = 11562250, upload-time = "2026-09-05T20:05:01.817Z" }, + { url = "https://files.pythonhosted.org/packages/ed/7a/faad58c948947b217fcf06f80d308fff27bab5730ad6c9cd4c35bcf8bc90/pyproj-3.8.0-cp315-cp315t-win32.whl", hash = "sha256:0ff22ad49d1f59e18a57384926aabcb0ee8bbe9213e5abe375fd18b1b6ace194", size = 6471511, upload-time = "2026-09-05T20:05:04.113Z" }, + { url = "https://files.pythonhosted.org/packages/cf/a8/5ed4f4042031e13a0fede12e81af1e4143102221c373f966a24f38b0d284/pyproj-3.8.0-cp315-cp315t-win_amd64.whl", hash = "sha256:d5a408b215ef98c9ae19e58ec512360b8ad9b25f8792138f983a58d159ac7157", size = 6940114, upload-time = "2026-09-05T20:05:05.737Z" }, + { url = "https://files.pythonhosted.org/packages/12/14/9c291ad92b565629cf4eacee72cbc8071ca8d93c9d719b47f304b1b2ea76/pyproj-3.8.0-cp315-cp315t-win_arm64.whl", hash = "sha256:bbf8a786ebfa9a904802dfde0e95e1325df8efbb573a19686c1937499a8f04e8", size = 6843958, upload-time = "2026-09-05T20:05:07.527Z" }, ] [[package]] name = "pyshp" -version = "3.0.12" +version = "3.1.6" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ad/09/0ee60f56e34c6df34e30d302c29ca67b115a7a76ce1acf21f67924aec9a3/pyshp-3.0.12.tar.gz", hash = "sha256:517f6d80be444f3e85ed3f08b004108845f535dee3efffc2fbca1ba93d22151d", size = 2209829 } +sdist = { url = "https://files.pythonhosted.org/packages/68/6e/f6f241fcb57f09c856ae78249d70cf31c576840218226ba7d88eda5ceab8/pyshp-3.1.6.tar.gz", hash = "sha256:4c4b5a4138815c93defd6ebe50bae885b7e58984f431cdb7bb5d00718ac71daf", size = 2227945, upload-time = "2026-07-25T16:53:12.324Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c5/09/e27388e25d5ba562b19b3893140469355150cfa9d49a4184e5033d7464c9/pyshp-3.0.12-py3-none-any.whl", hash = "sha256:f5f55548700e775e09479781a03a0b82aa46bef0270aa2980f86212565ce9092", size = 65235 }, + { url = "https://files.pythonhosted.org/packages/ac/72/1f79dab76eb7651b5e3622a46b18a7f93f57c3a1317b712986c58810895e/pyshp-3.1.6-py3-none-any.whl", hash = "sha256:be8cd9436dcbde477c63ea789f7dcdea3af19f17ea84f2744bfc12efe9145d1e", size = 73744, upload-time = "2026-07-25T16:53:10.889Z" }, ] [[package]] name = "pytest" -version = "9.0.3" +version = "9.1.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, @@ -2432,9 +2667,9 @@ dependencies = [ { name = "pluggy" }, { name = "pygments" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/7d/0d/549bd94f1a0a402dc8cf64563a117c0f3765662e2e668477624baeec44d5/pytest-9.0.3.tar.gz", hash = "sha256:b86ada508af81d19edeb213c681b1d48246c1a91d304c6c81a427674c17eb91c", size = 1572165 } +sdist = { url = "https://files.pythonhosted.org/packages/e4/47/b9efed96c114afcfa3c9d3fe98a76a1d14c74a9e266d397cf6eb64be5e01/pytest-9.1.1.tar.gz", hash = "sha256:1088fbde8f2b49d95a549a195707afa7a76a3ce9bcadc26b6d71f0ffda5fe313", size = 1636369, upload-time = "2026-06-19T10:58:32.857Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d4/24/a372aaf5c9b7208e7112038812994107bc65a84cd00e0354a88c2c77a617/pytest-9.0.3-py3-none-any.whl", hash = "sha256:2c5efc453d45394fdd706ade797c0a81091eccd1d6e4bccfcd476e2b8e0ab5d9", size = 375249 }, + { url = "https://files.pythonhosted.org/packages/24/25/1de2678b631f5a49215c6c96fff41ba892b0a34df68d6d80292b1b48aa7f/pytest-9.1.1-py3-none-any.whl", hash = "sha256:37a86b45efb9a47a61a36449063e8e18d0cab3161329fc099eb21783169c4f0c", size = 386536, upload-time = "2026-06-19T10:58:31.347Z" }, ] [[package]] @@ -2444,136 +2679,103 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "six" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432 } +sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432, upload-time = "2024-03-01T18:36:20.211Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892 }, -] - -[[package]] -name = "pytz" -version = "2026.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ff/46/dd499ec9038423421951e4fad73051febaa13d2df82b4064f87af8b8c0c3/pytz-2026.2.tar.gz", hash = "sha256:0e60b47b29f21574376f218fe21abc009894a2321ea16c6754f3cad6eb7cdd6a", size = 320861 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ec/dd/96da98f892250475bdf2328112d7468abdd4acc7b902b6af23f4ed958ea0/pytz-2026.2-py2.py3-none-any.whl", hash = "sha256:04156e608bee23d3792fd45c94ae47fae1036688e75032eea2e3bf0323d1f126", size = 510141 }, + { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload-time = "2024-03-01T18:36:18.57Z" }, ] [[package]] name = "pyyaml" version = "6.0.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/33/422b98d2195232ca1826284a76852ad5a86fe23e31b009c9886b2d0fb8b2/pyyaml-6.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7f047e29dcae44602496db43be01ad42fc6f1cc0d8cd6c83d342306c32270196", size = 182063 }, - { url = "https://files.pythonhosted.org/packages/89/a0/6cf41a19a1f2f3feab0e9c0b74134aa2ce6849093d5517a0c550fe37a648/pyyaml-6.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fc09d0aa354569bc501d4e787133afc08552722d3ab34836a80547331bb5d4a0", size = 173973 }, - { url = "https://files.pythonhosted.org/packages/ed/23/7a778b6bd0b9a8039df8b1b1d80e2e2ad78aa04171592c8a5c43a56a6af4/pyyaml-6.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9149cad251584d5fb4981be1ecde53a1ca46c891a79788c0df828d2f166bda28", size = 775116 }, - { url = "https://files.pythonhosted.org/packages/65/30/d7353c338e12baef4ecc1b09e877c1970bd3382789c159b4f89d6a70dc09/pyyaml-6.0.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5fdec68f91a0c6739b380c83b951e2c72ac0197ace422360e6d5a959d8d97b2c", size = 844011 }, - { url = "https://files.pythonhosted.org/packages/8b/9d/b3589d3877982d4f2329302ef98a8026e7f4443c765c46cfecc8858c6b4b/pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ba1cc08a7ccde2d2ec775841541641e4548226580ab850948cbfda66a1befcdc", size = 807870 }, - { url = "https://files.pythonhosted.org/packages/05/c0/b3be26a015601b822b97d9149ff8cb5ead58c66f981e04fedf4e762f4bd4/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8dc52c23056b9ddd46818a57b78404882310fb473d63f17b07d5c40421e47f8e", size = 761089 }, - { url = "https://files.pythonhosted.org/packages/be/8e/98435a21d1d4b46590d5459a22d88128103f8da4c2d4cb8f14f2a96504e1/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:41715c910c881bc081f1e8872880d3c650acf13dfa8214bad49ed4cede7c34ea", size = 790181 }, - { url = "https://files.pythonhosted.org/packages/74/93/7baea19427dcfbe1e5a372d81473250b379f04b1bd3c4c5ff825e2327202/pyyaml-6.0.3-cp312-cp312-win32.whl", hash = "sha256:96b533f0e99f6579b3d4d4995707cf36df9100d67e0c8303a0c55b27b5f99bc5", size = 137658 }, - { url = "https://files.pythonhosted.org/packages/86/bf/899e81e4cce32febab4fb42bb97dcdf66bc135272882d1987881a4b519e9/pyyaml-6.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:5fcd34e47f6e0b794d17de1b4ff496c00986e1c83f7ab2fb8fcfe9616ff7477b", size = 154003 }, - { url = "https://files.pythonhosted.org/packages/1a/08/67bd04656199bbb51dbed1439b7f27601dfb576fb864099c7ef0c3e55531/pyyaml-6.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:64386e5e707d03a7e172c0701abfb7e10f0fb753ee1d773128192742712a98fd", size = 140344 }, - { url = "https://files.pythonhosted.org/packages/d1/11/0fd08f8192109f7169db964b5707a2f1e8b745d4e239b784a5a1dd80d1db/pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8", size = 181669 }, - { url = "https://files.pythonhosted.org/packages/b1/16/95309993f1d3748cd644e02e38b75d50cbc0d9561d21f390a76242ce073f/pyyaml-6.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1", size = 173252 }, - { url = "https://files.pythonhosted.org/packages/50/31/b20f376d3f810b9b2371e72ef5adb33879b25edb7a6d072cb7ca0c486398/pyyaml-6.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c", size = 767081 }, - { url = "https://files.pythonhosted.org/packages/49/1e/a55ca81e949270d5d4432fbbd19dfea5321eda7c41a849d443dc92fd1ff7/pyyaml-6.0.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5", size = 841159 }, - { url = "https://files.pythonhosted.org/packages/74/27/e5b8f34d02d9995b80abcef563ea1f8b56d20134d8f4e5e81733b1feceb2/pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6", size = 801626 }, - { url = "https://files.pythonhosted.org/packages/f9/11/ba845c23988798f40e52ba45f34849aa8a1f2d4af4b798588010792ebad6/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6", size = 753613 }, - { url = "https://files.pythonhosted.org/packages/3d/e0/7966e1a7bfc0a45bf0a7fb6b98ea03fc9b8d84fa7f2229e9659680b69ee3/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be", size = 794115 }, - { url = "https://files.pythonhosted.org/packages/de/94/980b50a6531b3019e45ddeada0626d45fa85cbe22300844a7983285bed3b/pyyaml-6.0.3-cp313-cp313-win32.whl", hash = "sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26", size = 137427 }, - { url = "https://files.pythonhosted.org/packages/97/c9/39d5b874e8b28845e4ec2202b5da735d0199dbe5b8fb85f91398814a9a46/pyyaml-6.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c", size = 154090 }, - { url = "https://files.pythonhosted.org/packages/73/e8/2bdf3ca2090f68bb3d75b44da7bbc71843b19c9f2b9cb9b0f4ab7a5a4329/pyyaml-6.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb", size = 140246 }, - { url = "https://files.pythonhosted.org/packages/9d/8c/f4bd7f6465179953d3ac9bc44ac1a8a3e6122cf8ada906b4f96c60172d43/pyyaml-6.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:8d1fab6bb153a416f9aeb4b8763bc0f22a5586065f86f7664fc23339fc1c1fac", size = 181814 }, - { url = "https://files.pythonhosted.org/packages/bd/9c/4d95bb87eb2063d20db7b60faa3840c1b18025517ae857371c4dd55a6b3a/pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:34d5fcd24b8445fadc33f9cf348c1047101756fd760b4dacb5c3e99755703310", size = 173809 }, - { url = "https://files.pythonhosted.org/packages/92/b5/47e807c2623074914e29dabd16cbbdd4bf5e9b2db9f8090fa64411fc5382/pyyaml-6.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:501a031947e3a9025ed4405a168e6ef5ae3126c59f90ce0cd6f2bfc477be31b7", size = 766454 }, - { url = "https://files.pythonhosted.org/packages/02/9e/e5e9b168be58564121efb3de6859c452fccde0ab093d8438905899a3a483/pyyaml-6.0.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b3bc83488de33889877a0f2543ade9f70c67d66d9ebb4ac959502e12de895788", size = 836355 }, - { url = "https://files.pythonhosted.org/packages/88/f9/16491d7ed2a919954993e48aa941b200f38040928474c9e85ea9e64222c3/pyyaml-6.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5", size = 794175 }, - { url = "https://files.pythonhosted.org/packages/dd/3f/5989debef34dc6397317802b527dbbafb2b4760878a53d4166579111411e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7c6610def4f163542a622a73fb39f534f8c101d690126992300bf3207eab9764", size = 755228 }, - { url = "https://files.pythonhosted.org/packages/d7/ce/af88a49043cd2e265be63d083fc75b27b6ed062f5f9fd6cdc223ad62f03e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5190d403f121660ce8d1d2c1bb2ef1bd05b5f68533fc5c2ea899bd15f4399b35", size = 789194 }, - { url = "https://files.pythonhosted.org/packages/23/20/bb6982b26a40bb43951265ba29d4c246ef0ff59c9fdcdf0ed04e0687de4d/pyyaml-6.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac", size = 156429 }, - { url = "https://files.pythonhosted.org/packages/f4/f4/a4541072bb9422c8a883ab55255f918fa378ecf083f5b85e87fc2b4eda1b/pyyaml-6.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3", size = 143912 }, - { url = "https://files.pythonhosted.org/packages/7c/f9/07dd09ae774e4616edf6cda684ee78f97777bdd15847253637a6f052a62f/pyyaml-6.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:02893d100e99e03eda1c8fd5c441d8c60103fd175728e23e431db1b589cf5ab3", size = 189108 }, - { url = "https://files.pythonhosted.org/packages/4e/78/8d08c9fb7ce09ad8c38ad533c1191cf27f7ae1effe5bb9400a46d9437fcf/pyyaml-6.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c1ff362665ae507275af2853520967820d9124984e0f7466736aea23d8611fba", size = 183641 }, - { url = "https://files.pythonhosted.org/packages/7b/5b/3babb19104a46945cf816d047db2788bcaf8c94527a805610b0289a01c6b/pyyaml-6.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6adc77889b628398debc7b65c073bcb99c4a0237b248cacaf3fe8a557563ef6c", size = 831901 }, - { url = "https://files.pythonhosted.org/packages/8b/cc/dff0684d8dc44da4d22a13f35f073d558c268780ce3c6ba1b87055bb0b87/pyyaml-6.0.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a80cb027f6b349846a3bf6d73b5e95e782175e52f22108cfa17876aaeff93702", size = 861132 }, - { url = "https://files.pythonhosted.org/packages/b1/5e/f77dc6b9036943e285ba76b49e118d9ea929885becb0a29ba8a7c75e29fe/pyyaml-6.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c", size = 839261 }, - { url = "https://files.pythonhosted.org/packages/ce/88/a9db1376aa2a228197c58b37302f284b5617f56a5d959fd1763fb1675ce6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:66e1674c3ef6f541c35191caae2d429b967b99e02040f5ba928632d9a7f0f065", size = 805272 }, - { url = "https://files.pythonhosted.org/packages/da/92/1446574745d74df0c92e6aa4a7b0b3130706a4142b2d1a5869f2eaa423c6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:16249ee61e95f858e83976573de0f5b2893b3677ba71c9dd36b9cf8be9ac6d65", size = 829923 }, - { url = "https://files.pythonhosted.org/packages/f0/7a/1c7270340330e575b92f397352af856a8c06f230aa3e76f86b39d01b416a/pyyaml-6.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9", size = 174062 }, - { url = "https://files.pythonhosted.org/packages/f1/12/de94a39c2ef588c7e6455cfbe7343d3b2dc9d6b6b2f40c4c6565744c873d/pyyaml-6.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b", size = 149341 }, +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/33/422b98d2195232ca1826284a76852ad5a86fe23e31b009c9886b2d0fb8b2/pyyaml-6.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7f047e29dcae44602496db43be01ad42fc6f1cc0d8cd6c83d342306c32270196", size = 182063, upload-time = "2025-09-25T21:32:11.445Z" }, + { url = "https://files.pythonhosted.org/packages/89/a0/6cf41a19a1f2f3feab0e9c0b74134aa2ce6849093d5517a0c550fe37a648/pyyaml-6.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fc09d0aa354569bc501d4e787133afc08552722d3ab34836a80547331bb5d4a0", size = 173973, upload-time = "2025-09-25T21:32:12.492Z" }, + { url = "https://files.pythonhosted.org/packages/ed/23/7a778b6bd0b9a8039df8b1b1d80e2e2ad78aa04171592c8a5c43a56a6af4/pyyaml-6.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9149cad251584d5fb4981be1ecde53a1ca46c891a79788c0df828d2f166bda28", size = 775116, upload-time = "2025-09-25T21:32:13.652Z" }, + { url = "https://files.pythonhosted.org/packages/65/30/d7353c338e12baef4ecc1b09e877c1970bd3382789c159b4f89d6a70dc09/pyyaml-6.0.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5fdec68f91a0c6739b380c83b951e2c72ac0197ace422360e6d5a959d8d97b2c", size = 844011, upload-time = "2025-09-25T21:32:15.21Z" }, + { url = "https://files.pythonhosted.org/packages/8b/9d/b3589d3877982d4f2329302ef98a8026e7f4443c765c46cfecc8858c6b4b/pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ba1cc08a7ccde2d2ec775841541641e4548226580ab850948cbfda66a1befcdc", size = 807870, upload-time = "2025-09-25T21:32:16.431Z" }, + { url = "https://files.pythonhosted.org/packages/05/c0/b3be26a015601b822b97d9149ff8cb5ead58c66f981e04fedf4e762f4bd4/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8dc52c23056b9ddd46818a57b78404882310fb473d63f17b07d5c40421e47f8e", size = 761089, upload-time = "2025-09-25T21:32:17.56Z" }, + { url = "https://files.pythonhosted.org/packages/be/8e/98435a21d1d4b46590d5459a22d88128103f8da4c2d4cb8f14f2a96504e1/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:41715c910c881bc081f1e8872880d3c650acf13dfa8214bad49ed4cede7c34ea", size = 790181, upload-time = "2025-09-25T21:32:18.834Z" }, + { url = "https://files.pythonhosted.org/packages/74/93/7baea19427dcfbe1e5a372d81473250b379f04b1bd3c4c5ff825e2327202/pyyaml-6.0.3-cp312-cp312-win32.whl", hash = "sha256:96b533f0e99f6579b3d4d4995707cf36df9100d67e0c8303a0c55b27b5f99bc5", size = 137658, upload-time = "2025-09-25T21:32:20.209Z" }, + { url = "https://files.pythonhosted.org/packages/86/bf/899e81e4cce32febab4fb42bb97dcdf66bc135272882d1987881a4b519e9/pyyaml-6.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:5fcd34e47f6e0b794d17de1b4ff496c00986e1c83f7ab2fb8fcfe9616ff7477b", size = 154003, upload-time = "2025-09-25T21:32:21.167Z" }, + { url = "https://files.pythonhosted.org/packages/1a/08/67bd04656199bbb51dbed1439b7f27601dfb576fb864099c7ef0c3e55531/pyyaml-6.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:64386e5e707d03a7e172c0701abfb7e10f0fb753ee1d773128192742712a98fd", size = 140344, upload-time = "2025-09-25T21:32:22.617Z" }, + { url = "https://files.pythonhosted.org/packages/d1/11/0fd08f8192109f7169db964b5707a2f1e8b745d4e239b784a5a1dd80d1db/pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8", size = 181669, upload-time = "2025-09-25T21:32:23.673Z" }, + { url = "https://files.pythonhosted.org/packages/b1/16/95309993f1d3748cd644e02e38b75d50cbc0d9561d21f390a76242ce073f/pyyaml-6.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1", size = 173252, upload-time = "2025-09-25T21:32:25.149Z" }, + { url = "https://files.pythonhosted.org/packages/50/31/b20f376d3f810b9b2371e72ef5adb33879b25edb7a6d072cb7ca0c486398/pyyaml-6.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c", size = 767081, upload-time = "2025-09-25T21:32:26.575Z" }, + { url = "https://files.pythonhosted.org/packages/49/1e/a55ca81e949270d5d4432fbbd19dfea5321eda7c41a849d443dc92fd1ff7/pyyaml-6.0.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5", size = 841159, upload-time = "2025-09-25T21:32:27.727Z" }, + { url = "https://files.pythonhosted.org/packages/74/27/e5b8f34d02d9995b80abcef563ea1f8b56d20134d8f4e5e81733b1feceb2/pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6", size = 801626, upload-time = "2025-09-25T21:32:28.878Z" }, + { url = "https://files.pythonhosted.org/packages/f9/11/ba845c23988798f40e52ba45f34849aa8a1f2d4af4b798588010792ebad6/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6", size = 753613, upload-time = "2025-09-25T21:32:30.178Z" }, + { url = "https://files.pythonhosted.org/packages/3d/e0/7966e1a7bfc0a45bf0a7fb6b98ea03fc9b8d84fa7f2229e9659680b69ee3/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be", size = 794115, upload-time = "2025-09-25T21:32:31.353Z" }, + { url = "https://files.pythonhosted.org/packages/de/94/980b50a6531b3019e45ddeada0626d45fa85cbe22300844a7983285bed3b/pyyaml-6.0.3-cp313-cp313-win32.whl", hash = "sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26", size = 137427, upload-time = "2025-09-25T21:32:32.58Z" }, + { url = "https://files.pythonhosted.org/packages/97/c9/39d5b874e8b28845e4ec2202b5da735d0199dbe5b8fb85f91398814a9a46/pyyaml-6.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c", size = 154090, upload-time = "2025-09-25T21:32:33.659Z" }, + { url = "https://files.pythonhosted.org/packages/73/e8/2bdf3ca2090f68bb3d75b44da7bbc71843b19c9f2b9cb9b0f4ab7a5a4329/pyyaml-6.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb", size = 140246, upload-time = "2025-09-25T21:32:34.663Z" }, + { url = "https://files.pythonhosted.org/packages/9d/8c/f4bd7f6465179953d3ac9bc44ac1a8a3e6122cf8ada906b4f96c60172d43/pyyaml-6.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:8d1fab6bb153a416f9aeb4b8763bc0f22a5586065f86f7664fc23339fc1c1fac", size = 181814, upload-time = "2025-09-25T21:32:35.712Z" }, + { url = "https://files.pythonhosted.org/packages/bd/9c/4d95bb87eb2063d20db7b60faa3840c1b18025517ae857371c4dd55a6b3a/pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:34d5fcd24b8445fadc33f9cf348c1047101756fd760b4dacb5c3e99755703310", size = 173809, upload-time = "2025-09-25T21:32:36.789Z" }, + { url = "https://files.pythonhosted.org/packages/92/b5/47e807c2623074914e29dabd16cbbdd4bf5e9b2db9f8090fa64411fc5382/pyyaml-6.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:501a031947e3a9025ed4405a168e6ef5ae3126c59f90ce0cd6f2bfc477be31b7", size = 766454, upload-time = "2025-09-25T21:32:37.966Z" }, + { url = "https://files.pythonhosted.org/packages/02/9e/e5e9b168be58564121efb3de6859c452fccde0ab093d8438905899a3a483/pyyaml-6.0.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b3bc83488de33889877a0f2543ade9f70c67d66d9ebb4ac959502e12de895788", size = 836355, upload-time = "2025-09-25T21:32:39.178Z" }, + { url = "https://files.pythonhosted.org/packages/88/f9/16491d7ed2a919954993e48aa941b200f38040928474c9e85ea9e64222c3/pyyaml-6.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5", size = 794175, upload-time = "2025-09-25T21:32:40.865Z" }, + { url = "https://files.pythonhosted.org/packages/dd/3f/5989debef34dc6397317802b527dbbafb2b4760878a53d4166579111411e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7c6610def4f163542a622a73fb39f534f8c101d690126992300bf3207eab9764", size = 755228, upload-time = "2025-09-25T21:32:42.084Z" }, + { url = "https://files.pythonhosted.org/packages/d7/ce/af88a49043cd2e265be63d083fc75b27b6ed062f5f9fd6cdc223ad62f03e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5190d403f121660ce8d1d2c1bb2ef1bd05b5f68533fc5c2ea899bd15f4399b35", size = 789194, upload-time = "2025-09-25T21:32:43.362Z" }, + { url = "https://files.pythonhosted.org/packages/23/20/bb6982b26a40bb43951265ba29d4c246ef0ff59c9fdcdf0ed04e0687de4d/pyyaml-6.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac", size = 156429, upload-time = "2025-09-25T21:32:57.844Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f4/a4541072bb9422c8a883ab55255f918fa378ecf083f5b85e87fc2b4eda1b/pyyaml-6.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3", size = 143912, upload-time = "2025-09-25T21:32:59.247Z" }, + { url = "https://files.pythonhosted.org/packages/7c/f9/07dd09ae774e4616edf6cda684ee78f97777bdd15847253637a6f052a62f/pyyaml-6.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:02893d100e99e03eda1c8fd5c441d8c60103fd175728e23e431db1b589cf5ab3", size = 189108, upload-time = "2025-09-25T21:32:44.377Z" }, + { url = "https://files.pythonhosted.org/packages/4e/78/8d08c9fb7ce09ad8c38ad533c1191cf27f7ae1effe5bb9400a46d9437fcf/pyyaml-6.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c1ff362665ae507275af2853520967820d9124984e0f7466736aea23d8611fba", size = 183641, upload-time = "2025-09-25T21:32:45.407Z" }, + { url = "https://files.pythonhosted.org/packages/7b/5b/3babb19104a46945cf816d047db2788bcaf8c94527a805610b0289a01c6b/pyyaml-6.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6adc77889b628398debc7b65c073bcb99c4a0237b248cacaf3fe8a557563ef6c", size = 831901, upload-time = "2025-09-25T21:32:48.83Z" }, + { url = "https://files.pythonhosted.org/packages/8b/cc/dff0684d8dc44da4d22a13f35f073d558c268780ce3c6ba1b87055bb0b87/pyyaml-6.0.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a80cb027f6b349846a3bf6d73b5e95e782175e52f22108cfa17876aaeff93702", size = 861132, upload-time = "2025-09-25T21:32:50.149Z" }, + { url = "https://files.pythonhosted.org/packages/b1/5e/f77dc6b9036943e285ba76b49e118d9ea929885becb0a29ba8a7c75e29fe/pyyaml-6.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c", size = 839261, upload-time = "2025-09-25T21:32:51.808Z" }, + { url = "https://files.pythonhosted.org/packages/ce/88/a9db1376aa2a228197c58b37302f284b5617f56a5d959fd1763fb1675ce6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:66e1674c3ef6f541c35191caae2d429b967b99e02040f5ba928632d9a7f0f065", size = 805272, upload-time = "2025-09-25T21:32:52.941Z" }, + { url = "https://files.pythonhosted.org/packages/da/92/1446574745d74df0c92e6aa4a7b0b3130706a4142b2d1a5869f2eaa423c6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:16249ee61e95f858e83976573de0f5b2893b3677ba71c9dd36b9cf8be9ac6d65", size = 829923, upload-time = "2025-09-25T21:32:54.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/7a/1c7270340330e575b92f397352af856a8c06f230aa3e76f86b39d01b416a/pyyaml-6.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9", size = 174062, upload-time = "2025-09-25T21:32:55.767Z" }, + { url = "https://files.pythonhosted.org/packages/f1/12/de94a39c2ef588c7e6455cfbe7343d3b2dc9d6b6b2f40c4c6565744c873d/pyyaml-6.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b", size = 149341, upload-time = "2025-09-25T21:32:56.828Z" }, ] [[package]] name = "pyzmq" -version = "27.1.0" +version = "27.2.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "cffi", marker = "implementation_name == 'pypy'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/04/0b/3c9baedbdf613ecaa7aa07027780b8867f57b6293b6ee50de316c9f3222b/pyzmq-27.1.0.tar.gz", hash = "sha256:ac0765e3d44455adb6ddbf4417dcce460fc40a05978c08efdf2948072f6db540", size = 281750 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/92/e7/038aab64a946d535901103da16b953c8c9cc9c961dadcbf3609ed6428d23/pyzmq-27.1.0-cp312-abi3-macosx_10_15_universal2.whl", hash = "sha256:452631b640340c928fa343801b0d07eb0c3789a5ffa843f6e1a9cee0ba4eb4fc", size = 1306279 }, - { url = "https://files.pythonhosted.org/packages/e8/5e/c3c49fdd0f535ef45eefcc16934648e9e59dace4a37ee88fc53f6cd8e641/pyzmq-27.1.0-cp312-abi3-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:1c179799b118e554b66da67d88ed66cd37a169f1f23b5d9f0a231b4e8d44a113", size = 895645 }, - { url = "https://files.pythonhosted.org/packages/f8/e5/b0b2504cb4e903a74dcf1ebae157f9e20ebb6ea76095f6cfffea28c42ecd/pyzmq-27.1.0-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3837439b7f99e60312f0c926a6ad437b067356dc2bc2ec96eb395fd0fe804233", size = 652574 }, - { url = "https://files.pythonhosted.org/packages/f8/9b/c108cdb55560eaf253f0cbdb61b29971e9fb34d9c3499b0e96e4e60ed8a5/pyzmq-27.1.0-cp312-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:43ad9a73e3da1fab5b0e7e13402f0b2fb934ae1c876c51d0afff0e7c052eca31", size = 840995 }, - { url = "https://files.pythonhosted.org/packages/c2/bb/b79798ca177b9eb0825b4c9998c6af8cd2a7f15a6a1a4272c1d1a21d382f/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:0de3028d69d4cdc475bfe47a6128eb38d8bc0e8f4d69646adfbcd840facbac28", size = 1642070 }, - { url = "https://files.pythonhosted.org/packages/9c/80/2df2e7977c4ede24c79ae39dcef3899bfc5f34d1ca7a5b24f182c9b7a9ca/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_i686.whl", hash = "sha256:cf44a7763aea9298c0aa7dbf859f87ed7012de8bda0f3977b6fb1d96745df856", size = 2021121 }, - { url = "https://files.pythonhosted.org/packages/46/bd/2d45ad24f5f5ae7e8d01525eb76786fa7557136555cac7d929880519e33a/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:f30f395a9e6fbca195400ce833c731e7b64c3919aa481af4d88c3759e0cb7496", size = 1878550 }, - { url = "https://files.pythonhosted.org/packages/e6/2f/104c0a3c778d7c2ab8190e9db4f62f0b6957b53c9d87db77c284b69f33ea/pyzmq-27.1.0-cp312-abi3-win32.whl", hash = "sha256:250e5436a4ba13885494412b3da5d518cd0d3a278a1ae640e113c073a5f88edd", size = 559184 }, - { url = "https://files.pythonhosted.org/packages/fc/7f/a21b20d577e4100c6a41795842028235998a643b1ad406a6d4163ea8f53e/pyzmq-27.1.0-cp312-abi3-win_amd64.whl", hash = "sha256:9ce490cf1d2ca2ad84733aa1d69ce6855372cb5ce9223802450c9b2a7cba0ccf", size = 619480 }, - { url = "https://files.pythonhosted.org/packages/78/c2/c012beae5f76b72f007a9e91ee9401cb88c51d0f83c6257a03e785c81cc2/pyzmq-27.1.0-cp312-abi3-win_arm64.whl", hash = "sha256:75a2f36223f0d535a0c919e23615fc85a1e23b71f40c7eb43d7b1dedb4d8f15f", size = 552993 }, - { url = "https://files.pythonhosted.org/packages/60/cb/84a13459c51da6cec1b7b1dc1a47e6db6da50b77ad7fd9c145842750a011/pyzmq-27.1.0-cp313-cp313-android_24_arm64_v8a.whl", hash = "sha256:93ad4b0855a664229559e45c8d23797ceac03183c7b6f5b4428152a6b06684a5", size = 1122436 }, - { url = "https://files.pythonhosted.org/packages/dc/b6/94414759a69a26c3dd674570a81813c46a078767d931a6c70ad29fc585cb/pyzmq-27.1.0-cp313-cp313-android_24_x86_64.whl", hash = "sha256:fbb4f2400bfda24f12f009cba62ad5734148569ff4949b1b6ec3b519444342e6", size = 1156301 }, - { url = "https://files.pythonhosted.org/packages/a5/ad/15906493fd40c316377fd8a8f6b1f93104f97a752667763c9b9c1b71d42d/pyzmq-27.1.0-cp313-cp313t-macosx_10_15_universal2.whl", hash = "sha256:e343d067f7b151cfe4eb3bb796a7752c9d369eed007b91231e817071d2c2fec7", size = 1341197 }, - { url = "https://files.pythonhosted.org/packages/14/1d/d343f3ce13db53a54cb8946594e567410b2125394dafcc0268d8dda027e0/pyzmq-27.1.0-cp313-cp313t-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:08363b2011dec81c354d694bdecaef4770e0ae96b9afea70b3f47b973655cc05", size = 897275 }, - { url = "https://files.pythonhosted.org/packages/69/2d/d83dd6d7ca929a2fc67d2c3005415cdf322af7751d773524809f9e585129/pyzmq-27.1.0-cp313-cp313t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d54530c8c8b5b8ddb3318f481297441af102517602b569146185fa10b63f4fa9", size = 660469 }, - { url = "https://files.pythonhosted.org/packages/3e/cd/9822a7af117f4bc0f1952dbe9ef8358eb50a24928efd5edf54210b850259/pyzmq-27.1.0-cp313-cp313t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6f3afa12c392f0a44a2414056d730eebc33ec0926aae92b5ad5cf26ebb6cc128", size = 847961 }, - { url = "https://files.pythonhosted.org/packages/9a/12/f003e824a19ed73be15542f172fd0ec4ad0b60cf37436652c93b9df7c585/pyzmq-27.1.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c65047adafe573ff023b3187bb93faa583151627bc9c51fc4fb2c561ed689d39", size = 1650282 }, - { url = "https://files.pythonhosted.org/packages/d5/4a/e82d788ed58e9a23995cee70dbc20c9aded3d13a92d30d57ec2291f1e8a3/pyzmq-27.1.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:90e6e9441c946a8b0a667356f7078d96411391a3b8f80980315455574177ec97", size = 2024468 }, - { url = "https://files.pythonhosted.org/packages/d9/94/2da0a60841f757481e402b34bf4c8bf57fa54a5466b965de791b1e6f747d/pyzmq-27.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:add071b2d25f84e8189aaf0882d39a285b42fa3853016ebab234a5e78c7a43db", size = 1885394 }, - { url = "https://files.pythonhosted.org/packages/4f/6f/55c10e2e49ad52d080dc24e37adb215e5b0d64990b57598abc2e3f01725b/pyzmq-27.1.0-cp313-cp313t-win32.whl", hash = "sha256:7ccc0700cfdf7bd487bea8d850ec38f204478681ea02a582a8da8171b7f90a1c", size = 574964 }, - { url = "https://files.pythonhosted.org/packages/87/4d/2534970ba63dd7c522d8ca80fb92777f362c0f321900667c615e2067cb29/pyzmq-27.1.0-cp313-cp313t-win_amd64.whl", hash = "sha256:8085a9fba668216b9b4323be338ee5437a235fe275b9d1610e422ccc279733e2", size = 641029 }, - { url = "https://files.pythonhosted.org/packages/f6/fa/f8aea7a28b0641f31d40dea42d7ef003fded31e184ef47db696bc74cd610/pyzmq-27.1.0-cp313-cp313t-win_arm64.whl", hash = "sha256:6bb54ca21bcfe361e445256c15eedf083f153811c37be87e0514934d6913061e", size = 561541 }, - { url = "https://files.pythonhosted.org/packages/87/45/19efbb3000956e82d0331bafca5d9ac19ea2857722fa2caacefb6042f39d/pyzmq-27.1.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:ce980af330231615756acd5154f29813d553ea555485ae712c491cd483df6b7a", size = 1341197 }, - { url = "https://files.pythonhosted.org/packages/48/43/d72ccdbf0d73d1343936296665826350cb1e825f92f2db9db3e61c2162a2/pyzmq-27.1.0-cp314-cp314t-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:1779be8c549e54a1c38f805e56d2a2e5c009d26de10921d7d51cfd1c8d4632ea", size = 897175 }, - { url = "https://files.pythonhosted.org/packages/2f/2e/a483f73a10b65a9ef0161e817321d39a770b2acf8bcf3004a28d90d14a94/pyzmq-27.1.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7200bb0f03345515df50d99d3db206a0a6bee1955fbb8c453c76f5bf0e08fb96", size = 660427 }, - { url = "https://files.pythonhosted.org/packages/f5/d2/5f36552c2d3e5685abe60dfa56f91169f7a2d99bbaf67c5271022ab40863/pyzmq-27.1.0-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:01c0e07d558b06a60773744ea6251f769cd79a41a97d11b8bf4ab8f034b0424d", size = 847929 }, - { url = "https://files.pythonhosted.org/packages/c4/2a/404b331f2b7bf3198e9945f75c4c521f0c6a3a23b51f7a4a401b94a13833/pyzmq-27.1.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:80d834abee71f65253c91540445d37c4c561e293ba6e741b992f20a105d69146", size = 1650193 }, - { url = "https://files.pythonhosted.org/packages/1c/0b/f4107e33f62a5acf60e3ded67ed33d79b4ce18de432625ce2fc5093d6388/pyzmq-27.1.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:544b4e3b7198dde4a62b8ff6685e9802a9a1ebf47e77478a5eb88eca2a82f2fd", size = 2024388 }, - { url = "https://files.pythonhosted.org/packages/0d/01/add31fe76512642fd6e40e3a3bd21f4b47e242c8ba33efb6809e37076d9b/pyzmq-27.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:cedc4c68178e59a4046f97eca31b148ddcf51e88677de1ef4e78cf06c5376c9a", size = 1885316 }, - { url = "https://files.pythonhosted.org/packages/c4/59/a5f38970f9bf07cee96128de79590bb354917914a9be11272cfc7ff26af0/pyzmq-27.1.0-cp314-cp314t-win32.whl", hash = "sha256:1f0b2a577fd770aa6f053211a55d1c47901f4d537389a034c690291485e5fe92", size = 587472 }, - { url = "https://files.pythonhosted.org/packages/70/d8/78b1bad170f93fcf5e3536e70e8fadac55030002275c9a29e8f5719185de/pyzmq-27.1.0-cp314-cp314t-win_amd64.whl", hash = "sha256:19c9468ae0437f8074af379e986c5d3d7d7bfe033506af442e8c879732bedbe0", size = 661401 }, - { url = "https://files.pythonhosted.org/packages/81/d6/4bfbb40c9a0b42fc53c7cf442f6385db70b40f74a783130c5d0a5aa62228/pyzmq-27.1.0-cp314-cp314t-win_arm64.whl", hash = "sha256:dc5dbf68a7857b59473f7df42650c621d7e8923fb03fa74a526890f4d33cc4d7", size = 575170 }, -] - -[[package]] -name = "referencing" -version = "0.37.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "attrs" }, - { name = "rpds-py" }, - { name = "typing-extensions", marker = "python_full_version < '3.13'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/22/f5/df4e9027acead3ecc63e50fe1e36aca1523e1719559c499951bb4b53188f/referencing-0.37.0.tar.gz", hash = "sha256:44aefc3142c5b842538163acb373e24cce6632bd54bdb01b21ad5863489f50d8", size = 78036 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl", hash = "sha256:381329a9f99628c9069361716891d34ad94af76e461dcb0335825aecc7692231", size = 26766 }, -] - -[[package]] -name = "requests" -version = "2.34.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "certifi" }, - { name = "charset-normalizer" }, - { name = "idna" }, - { name = "urllib3" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/ac/c3/e2a2b89f2d3e2179abd6d00ebd70bff6273f37fb3e0cc209f48b39d00cbf/requests-2.34.2.tar.gz", hash = "sha256:f288924cae4e29463698d6d60bc6a4da69c89185ad1e0bcc4104f584e960b9ed", size = 142856 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a0/f4/c67b0b3f1b9245e8d266f0f112c500d50e5b4e83cb6f3b71b6528104182a/requests-2.34.2-py3-none-any.whl", hash = "sha256:2a0d60c172f83ac6ab31e4554906c0f3b3588d37b5cb939b1c061f4907e278e0", size = 73075 }, +sdist = { url = "https://files.pythonhosted.org/packages/e7/8d/5b3d5631c2f4b4b8862f64cd0c9eb777b5710eeb5125b4be8dd0a200a4c0/pyzmq-27.2.0.tar.gz", hash = "sha256:54d4259d1bfae24ecdb5ca79f7acc2eac6c286a02d6a0ae617797cb45f0726d3", size = 292316, upload-time = "2026-08-20T19:08:21.19Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/57/8a/153532fa53db30e116118164f3af269a1f3966b3e2ba32c89b12fe864bd8/pyzmq-27.2.0-cp312-abi3-macosx_10_15_universal2.whl", hash = "sha256:591c8de5851c5ea372194469fe97587b97c3b641e9a70f31bb3474acbfde0241", size = 1431074, upload-time = "2026-08-20T19:06:40.601Z" }, + { url = "https://files.pythonhosted.org/packages/c8/ef/c08b91248bb90a9efa81fa00ba81b69c157c74d0c5efbb2c319d91babb62/pyzmq-27.2.0-cp312-abi3-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:00e73942ef12cecbc7951c4a9104bb8ffaed742abb13af2da6833d90dd368cef", size = 973915, upload-time = "2026-08-20T19:06:42.037Z" }, + { url = "https://files.pythonhosted.org/packages/b4/78/a3a3a86c2b00fadb92ece1ca4f8f028d62b2ce9ac3526097239ab2d6fba9/pyzmq-27.2.0-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1f8079d0521fe94bbb401fe9407578b28f3701627c8be2c9f7e0c5b77dcb0109", size = 697722, upload-time = "2026-08-20T19:06:43.325Z" }, + { url = "https://files.pythonhosted.org/packages/62/2c/d5828306f795e8d34676d266823b74e2101e0ad3760d12083de3e02abbb2/pyzmq-27.2.0-cp312-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dea74fd65f1fc5f7fe167916a473ebe6ed6174e5e5d9de11ea6583661be6cf43", size = 872258, upload-time = "2026-08-20T19:06:44.627Z" }, + { url = "https://files.pythonhosted.org/packages/09/52/51253b78fd8739293e283407eeecb14215c02c71b6519af21f6eed8e69cd/pyzmq-27.2.0-cp312-abi3-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:dcc99ca132b667a4ed750afd42db4ea73288f18425a9b2e3c0af095665c491f5", size = 739591, upload-time = "2026-08-20T19:06:46.214Z" }, + { url = "https://files.pythonhosted.org/packages/e6/3e/142c85b67a4c9678629b0cf6d5125b29663d75be69bfaa57a3cac344d780/pyzmq-27.2.0-cp312-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:b8d5f66e4a8246cf77f7b8f7902af64f00553368fa0373c89d99b78f0ad79394", size = 1689031, upload-time = "2026-08-20T19:06:47.612Z" }, + { url = "https://files.pythonhosted.org/packages/0e/ee/0776fb0f98ed1eb74d77240087fef0ab045b6ad15cb09555c6c5134c98ad/pyzmq-27.2.0-cp312-abi3-musllinux_1_2_i686.whl", hash = "sha256:d1526b42a2e725b84ed226f37becedc250c6347594e5ed304e4e9aff68c9aec3", size = 2059547, upload-time = "2026-08-20T19:06:49.064Z" }, + { url = "https://files.pythonhosted.org/packages/aa/0e/ec77f691a4aebe29ab6329f996fb0e0270c876a3016086e3ca6ef733bcae/pyzmq-27.2.0-cp312-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:f707bcf2c1d007d14d70531d4dd7b41060881c73efa845580bf6faaf9ea24d42", size = 1910457, upload-time = "2026-08-20T19:06:50.783Z" }, + { url = "https://files.pythonhosted.org/packages/30/97/1f5530ff4fc271b4597048371d5af972c2baab51be132ba15874e0327a6a/pyzmq-27.2.0-cp312-abi3-win32.whl", hash = "sha256:fdaaa4ea3242f6ad298eb5177eb042aea5c73c30e76d20caee7b15af20d24ec2", size = 563450, upload-time = "2026-08-20T19:06:52.307Z" }, + { url = "https://files.pythonhosted.org/packages/02/8b/b83f7780dad22e0878e4c7bd9158ebd24ed12bc3d5e3a471cd0576f77ded/pyzmq-27.2.0-cp312-abi3-win_amd64.whl", hash = "sha256:2c218c6ab8bc447ba62054b581fd30209689d199c6ecb253f79615ca74a38e12", size = 628633, upload-time = "2026-08-20T19:06:53.809Z" }, + { url = "https://files.pythonhosted.org/packages/52/aa/3918b5ac7f9987bd9c421b065074fd7409ded88f856f2c704a24341877ec/pyzmq-27.2.0-cp312-abi3-win_arm64.whl", hash = "sha256:348d6fd3e4b81ae4580622ea8c2ea60224e84b2ac1b3be4482e6edc7de06e7a3", size = 556006, upload-time = "2026-08-20T19:06:55.242Z" }, + { url = "https://files.pythonhosted.org/packages/83/5e/d0541596b48c5a19f85dcbea83d6673d8e91681cdf853eb194c31fc9766e/pyzmq-27.2.0-cp313-cp313-android_24_arm64_v8a.whl", hash = "sha256:c551b9e2f86dc625fcb1a032c0d68042678caf96a8dd7c28796766b673bd5b52", size = 1127193, upload-time = "2026-08-20T19:06:56.545Z" }, + { url = "https://files.pythonhosted.org/packages/50/9f/8c7411bb283982d46e6d56dca6a095678c87eb0398daead12776d9881ac2/pyzmq-27.2.0-cp313-cp313-android_24_x86_64.whl", hash = "sha256:288cc790da0e3064a14a38ddc56ba169dada8c8af4cb86518db2bcbd380eedbb", size = 1166833, upload-time = "2026-08-20T19:06:58.011Z" }, + { url = "https://files.pythonhosted.org/packages/f9/84/a849161ff88b2de9b991cc8ab332218824741122fdc4fdf222a5b822ac8c/pyzmq-27.2.0-cp314-cp314-android_24_arm64_v8a.whl", hash = "sha256:3d45189c0c3c99f817b7fefff0d32eeef684cf33e1e3c0fc4281515357c54702", size = 1134452, upload-time = "2026-08-20T19:06:59.898Z" }, + { url = "https://files.pythonhosted.org/packages/3c/34/ff4aaff0cfba2a4d7ad1a16ffedc52c6deb89fcf673d455085446b23f215/pyzmq-27.2.0-cp314-cp314-android_24_x86_64.whl", hash = "sha256:d61910b52be5b2cd8b248dbcbe3a1b0275556a7d99fb613fc43323b546e273b8", size = 1167520, upload-time = "2026-08-20T19:07:01.283Z" }, + { url = "https://files.pythonhosted.org/packages/b6/07/42111e9dc1041d78b4443d6eb1b82b027f1a58178dc8a38385effbc72ad5/pyzmq-27.2.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:3ab6eb88590e510ab16715c32dbba12000da9bee989fdadd9ee19a234c492eb7", size = 1466289, upload-time = "2026-08-20T19:07:02.738Z" }, + { url = "https://files.pythonhosted.org/packages/4b/b4/def7a478458da78665840564161772e7e938600c32a89f28e8b221b54d2d/pyzmq-27.2.0-cp314-cp314t-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:1ecbdd131b9669f62d3a45afee5527c7ae9f141e4301267f21714c90bd21725f", size = 975868, upload-time = "2026-08-20T19:07:04.155Z" }, + { url = "https://files.pythonhosted.org/packages/38/d5/e3e85f7fea37153097aaff49db9e33093909cc2a7b22c1ac4ebe546600fc/pyzmq-27.2.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3146385b94a760236c5eceff468a66a296a716ca98a2e0f9217b1518118466b1", size = 706054, upload-time = "2026-08-20T19:07:05.623Z" }, + { url = "https://files.pythonhosted.org/packages/1c/ef/3b7d9449b223183222bf517245e1e53d5f1ab8c10be8b45f6a301b2f994a/pyzmq-27.2.0-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9846e881620dd62566ca76a53e384c3f37490faf4b9240aebc7498810dfca853", size = 878984, upload-time = "2026-08-20T19:07:07.153Z" }, + { url = "https://files.pythonhosted.org/packages/be/a5/8b49dbd494f6dcfda69dc4cade322a4b02706ef4e3d30cc366d4e369899f/pyzmq-27.2.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:d9527e3dbaef1edaeeb2446fa7379446814a43ade8adc7c4a5ebe69437815ddd", size = 1697489, upload-time = "2026-08-20T19:07:08.945Z" }, + { url = "https://files.pythonhosted.org/packages/da/5a/4bb8280901130c26ea25f0cbb4a6d39d94250860c6b3dbd912f1cf48fca7/pyzmq-27.2.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:56b48fa9d478a3af7254f397697a62f5ad3e1bb677e200b2701f0c290d97e5af", size = 2064236, upload-time = "2026-08-20T19:07:10.384Z" }, + { url = "https://files.pythonhosted.org/packages/de/38/f433af66922554adb2b5f79e897018c8e19a90b9eaeb49c4814f8355ebe4/pyzmq-27.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:bf0b6e4ce1bb089751c504c5493d6b0557eabd02dd21b76e9086cf964234b103", size = 1917424, upload-time = "2026-08-20T19:07:11.909Z" }, + { url = "https://files.pythonhosted.org/packages/36/81/ea1c1ae3f801d96ba2c269e056761ebcfe023476e651d3af2a7817962051/pyzmq-27.2.0-cp314-cp314t-win32.whl", hash = "sha256:fba8afcf265c6e9fbe1594cb045d4765c6c9a7d607653a8196067ef23566b843", size = 591103, upload-time = "2026-08-20T19:07:13.451Z" }, + { url = "https://files.pythonhosted.org/packages/8a/04/149a627707e780fa9f2c1ede3590c14fa6b18b5576d15744342622299a50/pyzmq-27.2.0-cp314-cp314t-win_amd64.whl", hash = "sha256:d1bc1d380a91d954ed5fc9f12915dba014eed0978d2de05ee7ca688bdaac144a", size = 670215, upload-time = "2026-08-20T19:07:15.069Z" }, + { url = "https://files.pythonhosted.org/packages/30/ba/f9c3c1536c41ef3dbf765ea04218990e2056e558f98184ecd883767fc501/pyzmq-27.2.0-cp314-cp314t-win_arm64.whl", hash = "sha256:c7cfb75caa83f5153c687e9d2107f64b5ef0ef0d6edd260d3ff920baaaa69101", size = 582252, upload-time = "2026-08-20T19:07:16.582Z" }, + { url = "https://files.pythonhosted.org/packages/fa/00/78fe097a304a408275747ce43f20428789130b059c5649956277c20f30cf/pyzmq-27.2.0-cp315-cp315-android_24_arm64_v8a.whl", hash = "sha256:c5129a8fe43ecc49b99eb75616603d483a3c2fcaef504988fafe8ea392aea98b", size = 1134295, upload-time = "2026-08-20T19:07:17.94Z" }, + { url = "https://files.pythonhosted.org/packages/f2/83/1c36270658d2ee56e23a3f9ef5fbcb94cbd2f9fe966a6641f2f38e697162/pyzmq-27.2.0-cp315-cp315-android_24_x86_64.whl", hash = "sha256:baa2ce3485145653194d6c8c5beedd1e9f0bf46a0919c9fa2fe2204fc35b74d9", size = 1167492, upload-time = "2026-08-20T19:07:19.476Z" }, + { url = "https://files.pythonhosted.org/packages/58/b2/f0ae223438d7faa991f6feefdc823815f11cc604f898738376b59fd96515/pyzmq-27.2.0-cp315-cp315t-macosx_10_15_universal2.whl", hash = "sha256:e1ed46048d1920cabc96d952a0d5cfe4127ad8db572c335aae4e3c57b9278d7f", size = 1465992, upload-time = "2026-08-20T19:07:20.941Z" }, + { url = "https://files.pythonhosted.org/packages/59/46/fb56f3f37a6a0937b0e1d2885e808b5eedc171320bac85573cfae78fa9bc/pyzmq-27.2.0-cp315-cp315t-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:e0fa0bc6b1a184aee59b32efcd1b7f0e6d5b8f9387799e4c16a4cb66a86747d6", size = 976118, upload-time = "2026-08-20T19:07:22.577Z" }, + { url = "https://files.pythonhosted.org/packages/21/82/a2c9bfd7c4d34eea1278493cd041bc000d41acb4463c89ceaad29dc813b6/pyzmq-27.2.0-cp315-cp315t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0f4bd6743e8bf854c3bfce892dd6578a514aabf128e37a4b2eafcf01856f7e44", size = 705968, upload-time = "2026-08-20T19:07:24.019Z" }, + { url = "https://files.pythonhosted.org/packages/d6/12/b906b269116b6591dc15c0acc5d04c043957c8a531d336999731f4b1d899/pyzmq-27.2.0-cp315-cp315t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:95369ed6626afcfe2ac89832fb1b917c077fbeb905fbbe5d918349ce0222b89b", size = 879011, upload-time = "2026-08-20T19:07:25.428Z" }, + { url = "https://files.pythonhosted.org/packages/12/13/f96359534bfb77651c15f1fbfc4bfdd7ec3489d23f434706d39598dd0dcd/pyzmq-27.2.0-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:40124779c3a56ad5d91902df1ff89159cb414b6c1a0ee697abcc66cf5e6db62d", size = 1697496, upload-time = "2026-08-20T19:07:26.821Z" }, + { url = "https://files.pythonhosted.org/packages/21/b4/2c007ae5f2fe5eca86cbfbc874ed86b5135f2f7812615dfd78606d3c93f6/pyzmq-27.2.0-cp315-cp315t-musllinux_1_2_i686.whl", hash = "sha256:ec8a318dfc27c7d946651b3d9e8025d5734f30c168a822195601827207bac09b", size = 2064347, upload-time = "2026-08-20T19:07:28.315Z" }, + { url = "https://files.pythonhosted.org/packages/9b/88/767af3a6630c15215f3a66700ec79598a375edd1fdc9d75a3ad522178c01/pyzmq-27.2.0-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:88c0fac061bac269076edeb3a209acefc96cd6167c239daf1c2b404ac48d7012", size = 1917360, upload-time = "2026-08-20T19:07:29.693Z" }, + { url = "https://files.pythonhosted.org/packages/35/c1/80dd2d20d6e57bc68e1dce1e84bf3e76c9577c1bf728199985c8b4ea0fd1/pyzmq-27.2.0-cp315-cp315t-win32.whl", hash = "sha256:ac126d48cf18aa955daabef43bf0009ff76ad4deee437d09ecf15388214b5beb", size = 591073, upload-time = "2026-08-20T19:07:31.341Z" }, + { url = "https://files.pythonhosted.org/packages/f8/b5/33b781666f3f52ae834bc9c8e38f4f0483a826c5a91cccc993292007bf10/pyzmq-27.2.0-cp315-cp315t-win_amd64.whl", hash = "sha256:edce90a1e588ec63adbf612cc0ad582de4169cd216c7ae53c15f42a2ee902f35", size = 670701, upload-time = "2026-08-20T19:07:32.895Z" }, + { url = "https://files.pythonhosted.org/packages/6e/97/bc4f0edefb992df4fdebcf9f0cc40f631cd4ed277e1ed59ef2cd99a5c8c5/pyzmq-27.2.0-cp315-cp315t-win_arm64.whl", hash = "sha256:a843094b4d3d633bc3623e47a2ff50742d6af02bc1f7606aa2e67e971e21878d", size = 581985, upload-time = "2026-08-20T19:07:34.19Z" }, ] [[package]] @@ -2584,263 +2786,177 @@ dependencies = [ { name = "markdown-it-py" }, { name = "pygments" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c0/8f/0722ca900cc807c13a6a0c696dacf35430f72e0ec571c4275d2371fca3e9/rich-15.0.0.tar.gz", hash = "sha256:edd07a4824c6b40189fb7ac9bc4c52536e9780fbbfbddf6f1e2502c31b068c36", size = 230680 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/82/3b/64d4899d73f91ba49a8c18a8ff3f0ea8f1c1d75481760df8c68ef5235bf5/rich-15.0.0-py3-none-any.whl", hash = "sha256:33bd4ef74232fb73fe9279a257718407f169c09b78a87ad3d296f548e27de0bb", size = 310654 }, -] - -[[package]] -name = "rpds-py" -version = "2026.5.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/2e/43/25a8dcd3feedd735039a8f0b5b7e3b118232b5eae288c4fd9ab200d41094/rpds_py-2026.5.1.tar.gz", hash = "sha256:07b24fea40541e28570e5b795a4a38fbdcd12550c06bd0748005ecc8116ca256", size = 64459 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d4/e7/a78582dc57caa592dcc7d4fb69b61390561e908eb3d2f5df5928a8e354c0/rpds_py-2026.5.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:3abe24a66e57adcfa645d718063a5fa5103ecc71ddbf26d78af8f9368018ff1d", size = 353040 }, - { url = "https://files.pythonhosted.org/packages/a3/43/35e3f136343aef451e545ce8c38d36c2f93c0ed88703db8b64ba2b205c68/rpds_py-2026.5.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:58b1d94308ddf0b1982f61f2eb54bf92997c9ece8a8093ef014250f4a517906c", size = 345775 }, - { url = "https://files.pythonhosted.org/packages/20/e1/0f2160c5982d3157734d5cb3ed63d8b2d583a73c9864f77b666449f32cf8/rpds_py-2026.5.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fa92420128dadce7f54bd73ba1825a273e9268fe9e35dbf7e6362890efa4e08", size = 376329 }, - { url = "https://files.pythonhosted.org/packages/d0/11/ee0ba42aff83bf4effdbc576673c6be64c5e173978c3f6d537e94482f77d/rpds_py-2026.5.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ca653c6546386227cd9800d1bef6a348099acf8db4250341da6d90f663d6dfcb", size = 383539 }, - { url = "https://files.pythonhosted.org/packages/11/df/d94aa6a499d4ac40afe2d7620f2c597fd3c0f182e854ad7cf3f596a81cb6/rpds_py-2026.5.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:66c93681c4729e4e3ecba31b8179fae083ff3118841672835140338b4b9867c1", size = 494674 }, - { url = "https://files.pythonhosted.org/packages/1f/75/33d30f43bb2f458de11979486a591b1bf6e5651765ed1704c6197c2dc773/rpds_py-2026.5.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:40ff257542e04796880e011e15cd4dc21c2599975df2aaa8f2c8495ca574e1a5", size = 389268 }, - { url = "https://files.pythonhosted.org/packages/f4/1e/2c9096fc19d5fd084b0184ca2b651e659aa0a37e6fdbecf6ece47f147fe1/rpds_py-2026.5.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b6825cc329b290e93c5f6a9be2393118a763f6ccf6abd83704e0c102ca583644", size = 376280 }, - { url = "https://files.pythonhosted.org/packages/b9/e5/61ec9f8be8211ea7f48448195549e4aaf02004083475493b0e137702ecb2/rpds_py-2026.5.1-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:de42116e69cb53b911cc34aee5ab98f36c597b822545045d49e938818b99e5e4", size = 387233 }, - { url = "https://files.pythonhosted.org/packages/0d/ca/bcec1005c4f4a234f92a29078631fee49206c7265ccae966f18fd332e80e/rpds_py-2026.5.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c0f920015df2a504bebaba6d4c31ccf3fcf942f92655c086da30b671aad19aa6", size = 405009 }, - { url = "https://files.pythonhosted.org/packages/72/e6/4d5718c5cf26c522dc7c9999e238da1e77380b81d0c5d1df11e271ddfeb1/rpds_py-2026.5.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0408a24e44feb919423dc6d9da677cb5cddb894d2ca9e763967d156d9c60fab4", size = 553113 }, - { url = "https://files.pythonhosted.org/packages/d4/25/2ee807bdb3e1f0b7eddf7782acd5665a8b5205a331a7d7244a52c4812fd9/rpds_py-2026.5.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:cea68bcd53467561ae2f96a6bdad1544299ba97b5b0ddcd5ac3d376e5c781c24", size = 618838 }, - { url = "https://files.pythonhosted.org/packages/6a/c1/7d4c26f167f8c41501cc073d30ee22082b16ce358cf5b00ec97cbc7804ea/rpds_py-2026.5.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:4be8b1d2a705cc37d08256004e1d07de143fa0075c8e85a3df020b776f62b732", size = 582436 }, - { url = "https://files.pythonhosted.org/packages/04/1d/9d12b0a337bab46f4769f8857f4007e3b2d639e14f9a44a0efe157696e64/rpds_py-2026.5.1-cp312-cp312-win32.whl", hash = "sha256:6736718bd4fc49cbcb538ba30516fdbef161522acefb739657d48b97bd864fed", size = 212734 }, - { url = "https://files.pythonhosted.org/packages/c5/93/e4116f2de7f56bc7406a76033dc501811ddeb22b7f056b92d632871ebb0c/rpds_py-2026.5.1-cp312-cp312-win_amd64.whl", hash = "sha256:0a7d1eec967df0e9b22614a5e177622e0c89611d03727fa0cb48e45028907870", size = 229045 }, - { url = "https://files.pythonhosted.org/packages/cb/53/6c3419d85eb2ec5938a37627c585b42d76a63bb731d6e42ed4b079ebf486/rpds_py-2026.5.1-cp312-cp312-win_arm64.whl", hash = "sha256:1841d067089e117142d79b98aa0df2f08b52f2ecc1819dd2700636c0db74a473", size = 223967 }, - { url = "https://files.pythonhosted.org/packages/6c/32/14c961ad295f490eb0849ada8b79683e93a59b9de3afdd983eaf55fa6867/rpds_py-2026.5.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:efef4ac29c6ff495531eb17ee705b62841ecaa291b7c7077e848ea03e237164d", size = 352787 }, - { url = "https://files.pythonhosted.org/packages/ca/bb/d1b85117967c11191441a7274ae616c65d93901d082c588f89a50a8da5ae/rpds_py-2026.5.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c39f5b67a8a2e67179ada2a954227d670fe65fa9098457f698f56ddf248709b3", size = 345179 }, - { url = "https://files.pythonhosted.org/packages/7c/46/d84105f062e626a1b233f863907288a4708c2d833b8b4c6fb2764bc080c0/rpds_py-2026.5.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5c30f3f04eef4fbd362226a6f31d7c8895ca4fbb6e0b790f6890a98d8da8559", size = 376173 }, - { url = "https://files.pythonhosted.org/packages/e2/ae/469d7959ce5b1201e1de135dc735b86db3b35dd0d1734f6a44246d5f061c/rpds_py-2026.5.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:277f6c82f0580848796c7ecc8a7173aa3bfb928e4ff831261c2f60a81dc270db", size = 383162 }, - { url = "https://files.pythonhosted.org/packages/dc/a2/57853d31a1116a561aa072794602ad3f6341e18d70a8523f1bd5b9fc1e5a/rpds_py-2026.5.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:63c2c4c213f1a4e3f3de28ecab029dbdee976324e729c0d7a55211be72576b02", size = 495093 }, - { url = "https://files.pythonhosted.org/packages/99/63/3a8eabcad9314b7daf5c65f451d2c33d989235cd8a5762186cf2c3f5a4f8/rpds_py-2026.5.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3350ec808fb538fe71a1f94dfaa0e29c598dfad805ce49f0caec5ae3183c652b", size = 389829 }, - { url = "https://files.pythonhosted.org/packages/4b/25/05678d97fc25e2622df14dc530fb82023174ecfff6733991ed0d78f167bd/rpds_py-2026.5.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b1b964e3ab599e718dc46c018d104b1ebc007cbc6567d827c94a687fca56d77e", size = 374786 }, - { url = "https://files.pythonhosted.org/packages/88/d1/8c90b6431e80a3b91b284a5c7c8c0c4f9c006444d90477a740d6e0f9c694/rpds_py-2026.5.1-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:19cb09fab7b7fc96b2a6e28f2e34b72a3705ff27b37edb77455316e5d3f3dc9b", size = 386920 }, - { url = "https://files.pythonhosted.org/packages/ff/99/4638f672ab356682d633ee0da9255f5b67ce6efd0b85eb94ad3e255e65a5/rpds_py-2026.5.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:abe76bcdba31e576cb83eeb8797aa0d882b738fef6dc65d0601fc753806a5b46", size = 405059 }, - { url = "https://files.pythonhosted.org/packages/66/3f/3546524b6eb4cc2e1f363a3d638fa52f6c24faae3500c25fb488b02f1740/rpds_py-2026.5.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:8bff7073db3899158fff55ebf57b113a67030af26f80a18978f9f0aa60250ddf", size = 553030 }, - { url = "https://files.pythonhosted.org/packages/c6/c3/7b3388c796fcf471bd17194242d4dc1a7608567c0fa422bcc1c5e79f9c1e/rpds_py-2026.5.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:8ba264fa49be666cd9cc56bf34ec7002fb3d27a4aee5bcb4d43d0d18feb1bb6f", size = 618975 }, - { url = "https://files.pythonhosted.org/packages/61/1e/a3cb07f2795075d1d88efddae2f541359fde5f08c81ee114c29c2949c90a/rpds_py-2026.5.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4860b603ddda0475a8885499b3729e90229d480105b42651962a5397d995fa89", size = 581178 }, - { url = "https://files.pythonhosted.org/packages/a1/74/e758c03a5ef46f04c37f2651a2893db846d569ba8a7bca469d4b58939bcd/rpds_py-2026.5.1-cp313-cp313-win32.whl", hash = "sha256:7944270ae71383f6e2657dd7d5ce4eeb4ac2d0059a6738f0510583d462ab4842", size = 212481 }, - { url = "https://files.pythonhosted.org/packages/70/ec/a2aca432db9c7359b40fa393eeeaa0d166c2f70175be956e75fa24197c44/rpds_py-2026.5.1-cp313-cp313-win_amd64.whl", hash = "sha256:88647f43a73c4e01be19b04ceef0c8d3a1958153604d13c773becd8016f2a0cf", size = 228519 }, - { url = "https://files.pythonhosted.org/packages/29/60/a73bfdd45b096574556acf303bbd9fa9eed36ca8a818b514e2a5d5fe2b9d/rpds_py-2026.5.1-cp313-cp313-win_arm64.whl", hash = "sha256:453895624ecf7db7063b1004e44037522bbaef9ff6a945e59bc71662d7a03abd", size = 223446 }, - { url = "https://files.pythonhosted.org/packages/18/e2/408105fd611823f00882aea810f3989a30d26b1bab8b6beb20f98c724e0e/rpds_py-2026.5.1-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:b4e4bc98639ec915f512fde3aa7a95e0041d95d9c3cc86eea841fa63cb1e8600", size = 355287 }, - { url = "https://files.pythonhosted.org/packages/8d/58/5c4a43436843c90d0f6d19f82c200c80e3843ca9fa07b237623327f6d384/rpds_py-2026.5.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:cacedb7a6e167680acba45ad5716e89067d225dc80da0d7040cae8c81d4572fa", size = 347033 }, - { url = "https://files.pythonhosted.org/packages/fb/c2/1a71acdacaf4e259b10278fb87b039ded3cf80041bcd89dd8a3ea702ded6/rpds_py-2026.5.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68700371c5d7ae1412862ddfa719090925c93ecf351c566d66f09d04b136ea00", size = 376891 }, - { url = "https://files.pythonhosted.org/packages/c2/c8/535f3d9b65addd8e28aa87b83c6e526799c3717a88273db8ea795beeef7a/rpds_py-2026.5.1-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:296c799becfa849c779c8725494fe9ed94959ed886787df4364b058465bad7f0", size = 385646 }, - { url = "https://files.pythonhosted.org/packages/1c/91/dc033f313345c354ade914dbe73cdb90b615a4409ea02430d5356794f3d8/rpds_py-2026.5.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d3858b908218ee108d0bbfb2095ccc237648053c9bf98affad7cb079acaf1d97", size = 498830 }, - { url = "https://files.pythonhosted.org/packages/27/fc/90fcbea459dbb8ddc18a2e0fd1de9412b48bc84ffff2db771cf714bacfd6/rpds_py-2026.5.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4fb8d2e7cb2f850b169806d61d1b991738acec96500a75c30f49caf064ce7cef", size = 392830 }, - { url = "https://files.pythonhosted.org/packages/b2/1d/46cd11a228c9750684a798d98f878be6f614aa762438da7378f035e79e35/rpds_py-2026.5.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:27b74c10ed6a8f190f4287f53bcfea348b92a84a9c9f70d30183d1e6172d580d", size = 379613 }, - { url = "https://files.pythonhosted.org/packages/24/4a/d9b0c6af3a1de03eb93741bbe8be2bdce84d8fda8224f3005451d86df389/rpds_py-2026.5.1-cp313-cp313t-manylinux_2_31_riscv64.whl", hash = "sha256:b9a6528956191c48c52294a592dbd4a8386d7048bdb25c0efcb6b966466c6d83", size = 388183 }, - { url = "https://files.pythonhosted.org/packages/c5/b4/db7aaabdda6d020afc87d981bcc2f57a434c7dec60ecfc2ab3dd50b20351/rpds_py-2026.5.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:af03e34e860047bc7a352b842856fcf78798fbb81132cc98bd2f907ab4eb9cd2", size = 408578 }, - { url = "https://files.pythonhosted.org/packages/08/d6/070f6a41cbb343e2ac4171859bf3f3623e0ab002f72619d6d505313ec2de/rpds_py-2026.5.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:fea6e836d10abbe191d557d33bd58bd5987725fe63aa1eefe557d230209855bd", size = 553573 }, - { url = "https://files.pythonhosted.org/packages/75/ab/1a71ea3589c4345dac0a0518f0e6a031cb42689277851b683c46d27463a5/rpds_py-2026.5.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:fc0c0f878ea770a0a8a462456c5ad36fc9fe6358e6b76fdadc7f17575e0b8bf1", size = 620861 }, - { url = "https://files.pythonhosted.org/packages/8a/22/9bf80a56069c0c443fcfefac639a86a744550a2898817a6dfd3e26654924/rpds_py-2026.5.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:e0b360f316d966b048b085857630b3cc51f3db2f07b06f440eac8f695374d1e3", size = 585633 }, - { url = "https://files.pythonhosted.org/packages/da/68/3b2c0a75c9e04125696f84ebdbbf304acf5a40b58ba4481cdb98a922c3ba/rpds_py-2026.5.1-cp313-cp313t-win32.whl", hash = "sha256:a2999883eedf72fdfb7520b92c7d4ec2572a71ff40239377aa604cc529eecafc", size = 210074 }, - { url = "https://files.pythonhosted.org/packages/e7/8b/609157d5a25d37d4f29f92840ba531f416907c34ae5c5739dd21fc2bef98/rpds_py-2026.5.1-cp313-cp313t-win_amd64.whl", hash = "sha256:e07be2a9d7122bd6e82dea89814ef8dc893feb1aae97fec1630f3263bbb30e55", size = 228635 }, - { url = "https://files.pythonhosted.org/packages/d4/6f/19c1918a4b590d8de87e712e4abe4b3875771eff60216fb6153cf6665c68/rpds_py-2026.5.1-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:1f2c391c3059798093b65df23aca2cac150460ae9c630d99dec83d703d9485b9", size = 349756 }, - { url = "https://files.pythonhosted.org/packages/e5/60/a06fe7da34eca79dacbf958a2ba0c6eea85bc2b29de20080bf40f72f66fa/rpds_py-2026.5.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:413b424f7c4ee65ab5e5be91f5731be0f8b41a1ee2b12dfe810d716312e95a78", size = 343831 }, - { url = "https://files.pythonhosted.org/packages/bf/ec/b2333b97b90e2a6ef6ca8ad386ee284968e74bcfe113b3f1a8d9036429a9/rpds_py-2026.5.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c595a1d9255dce0599e13130d1440ab2506654f2b50294226ee06402f8fef63", size = 375127 }, - { url = "https://files.pythonhosted.org/packages/14/7f/e00aae54067f2b488c4637961d5f58204d470795fc791085fa3f15060d2e/rpds_py-2026.5.1-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1c27c5f6102eac8c03e7595a00827a53b271ba40a53b59ff8709170e0855ea4a", size = 379034 }, - { url = "https://files.pythonhosted.org/packages/be/cc/423999bbb8ae8dc93c77fc1d5e984ade5eb89d237d3bb884ccfa72ae2890/rpds_py-2026.5.1-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6c7fcf61d44cacecaf3aea542b0e053db77972a4573e7ceda16fb2b399161195", size = 490823 }, - { url = "https://files.pythonhosted.org/packages/0f/aa/c671bf660f12e68d3c52ff86c7066ed1372df5a0f4f2ff584e419b8207e7/rpds_py-2026.5.1-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2c817a189d4ee14290420e5ff051e4dd6baa13f3edf84685071dee07a6d538ee", size = 388144 }, - { url = "https://files.pythonhosted.org/packages/19/c8/d63bb75b68afe77b229e3021c6031bcaf01da5db5b0e69d0d10f9ba679a7/rpds_py-2026.5.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21846aac0ed2e0589f38c12dc44e77bb64e494b771eadbcf169cba00566ba7ba", size = 371959 }, - { url = "https://files.pythonhosted.org/packages/82/35/c51122014d8274ff37dc606d60049c3db7d83da02b5b282511e5a906a9a6/rpds_py-2026.5.1-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:b317c87a13f769a4e787819bd508aaa5d69aa09b0880de9af6d3a8a54571cdec", size = 383558 }, - { url = "https://files.pythonhosted.org/packages/e3/f9/2790cb99c136a5363acdeacf5c27c56f3de0d4118a1f48fca83404c99c89/rpds_py-2026.5.1-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ce87129d9f2c14fa6c4a8601fb80eb4488c80d38a20cd13758ef11123e14995d", size = 402789 }, - { url = "https://files.pythonhosted.org/packages/e5/1b/e4fb584f8c75d35c38150ff6a332cda949e6f97acba1f4fd123b14ab56fe/rpds_py-2026.5.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:9cdddb6c1207d284d94fd1530adf57fbd797fe7c4b8704ba85f49414f2557e7d", size = 551405 }, - { url = "https://files.pythonhosted.org/packages/d8/f7/a6731b4216cb3793ea1af5391da240f5683dacc0d13e034fe5fc3503f240/rpds_py-2026.5.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:4e237e139f94d3c036fd28eb9f564c99055476ff4ff05cd42be55ce349b5aa02", size = 616975 }, - { url = "https://files.pythonhosted.org/packages/2c/ea/2e051a81d95d8e63f4b35a1c463a87e8766bc3d083c067c5dfb6bf220747/rpds_py-2026.5.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:ed0954b524873214369184a9c82b0eaa45a3fbb9a798cd95b17e0d98499e7ea0", size = 578701 }, - { url = "https://files.pythonhosted.org/packages/65/56/b5f6fdb2083e32bca8a8993d89e70db114b4756c9e2c38421328126689d2/rpds_py-2026.5.1-cp314-cp314-win32.whl", hash = "sha256:2d88621d6a7d4dfa633d21abe90f280bb205274e16b1d1e61c6ad4640b2453b7", size = 209806 }, - { url = "https://files.pythonhosted.org/packages/fb/80/65a5aa96c155e611d1ed844e4e1f57f3e36b021f396d9f8585d756e6b90d/rpds_py-2026.5.1-cp314-cp314-win_amd64.whl", hash = "sha256:cef8ac28d26f4dda3533060c20fbf80a325458fa9fd23ea72a73cdfa8e978838", size = 225985 }, - { url = "https://files.pythonhosted.org/packages/27/7c/ad185212e87b05f196daef92bc5f3caf07298eb47c295b5585c3dd3093ac/rpds_py-2026.5.1-cp314-cp314-win_arm64.whl", hash = "sha256:eaaea962c68cdc68d4a533ba985ab8e9484277910bbfaa2ab3ef7732667bfed8", size = 221219 }, - { url = "https://files.pythonhosted.org/packages/23/58/e14ae18759020334646b031e708ab4158d653a938822bfb7b95ef2e93aa3/rpds_py-2026.5.1-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:21942f52dbbd5f8758bf021213d28bd45c39e873e65e2407faf5f1846f5761ad", size = 352148 }, - { url = "https://files.pythonhosted.org/packages/31/9b/5f4a1e2f960bca3ac5d052b139dd31eed97b259f9d909173821760d542e8/rpds_py-2026.5.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:f414556f6e3958300ff941e40c9f97e3dc9774ddd1b3434c475d73dd354bbed3", size = 345196 }, - { url = "https://files.pythonhosted.org/packages/1a/71/1d9574d6a2fa20ab60eaa55c7467f5aa20cbc770f341a05f09c0876f59e2/rpds_py-2026.5.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ef1013a8625c74043210190b246f5b1551e09757c1f356c6e4160ef96c5bc081", size = 374981 }, - { url = "https://files.pythonhosted.org/packages/0c/9a/37e99f4915a80aa71670263c1267f7ae0af95f53a3f61e6c3bdc016d4515/rpds_py-2026.5.1-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:cc68e231a77a5f0d774ae278a1f8e55c0456501820847c1e4efb3829f3441df6", size = 379961 }, - { url = "https://files.pythonhosted.org/packages/a8/ff/6e73f74b89d2e0715e0fc86b7dde893f9a61ae2f9b256ff3bdfe41ac4e94/rpds_py-2026.5.1-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9baffb505aff33acc69b422a19f77806680f3c8632227d79f48de8a810d1c2c5", size = 495965 }, - { url = "https://files.pythonhosted.org/packages/ea/e0/425faba25f59d74d4638b267f7c7a80e8649d2ef4db10a19b0c4a71e6e6f/rpds_py-2026.5.1-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b8d2f912928d426e8cfa396f7f3f8d29a59e6689c86dcca3c420730c1096322b", size = 389526 }, - { url = "https://files.pythonhosted.org/packages/c6/76/7a41960e3fddae47fab43a28684d5da981401dffd88253de0944148654cb/rpds_py-2026.5.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90f628283be835db980c941767d41c9a27b5239e54ba0a9c1335247e82406964", size = 376190 }, - { url = "https://files.pythonhosted.org/packages/27/60/5f38dc70824fc6951b51d35377e577a3a3a4c81a6769cc5a2de25ebe0ad1/rpds_py-2026.5.1-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:1ebb2f0ab7e16132995a72de805170e0203df0c3dd22e1ef1cd1fdd90bd7a131", size = 383921 }, - { url = "https://files.pythonhosted.org/packages/60/1a/d60a38caa1505f4b9483c3fbbde12c94e1079154f4f401a6da96f7e77621/rpds_py-2026.5.1-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f3df3d16ded76f1f8c9cdebd0e1ea55fdf4c23b812de189814da7cf229c22a81", size = 404766 }, - { url = "https://files.pythonhosted.org/packages/87/ff/602fd3f174d6425f0bce05ad0dfbec0e96b38d0f7d08a79af5aa20083885/rpds_py-2026.5.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:9af8905b8f854990e40d5206aa5ac58d9b0fe0b7f351ff2bb086c20f6c8c6a47", size = 551343 }, - { url = "https://files.pythonhosted.org/packages/b8/c1/1be13327acdbead3eca1fde03b6a34dbb011f1e864e217f0d32cc1779a7f/rpds_py-2026.5.1-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:036a36a87fb1cd3b214d11c4b3c4f7d2ddad933625dca1c900b56a057c07740a", size = 618502 }, - { url = "https://files.pythonhosted.org/packages/f3/d7/afb49b49d7f2be8b7ba1a9f0977fa5168003437b93086726f066544e8351/rpds_py-2026.5.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:62ae3853454fe9ef283a03c96c2d835d39e84b14643a9d62c82ef0fb87d702ca", size = 581916 }, - { url = "https://files.pythonhosted.org/packages/25/d1/dbef8c1f8a10f07beb62b5f054e20099fd9924b3ec001b8f0b6ac7813a85/rpds_py-2026.5.1-cp314-cp314t-win32.whl", hash = "sha256:6c3d771a46ec18b12af06ce36243a9a80b07a5d0515236332d90863ca8bb326a", size = 207855 }, - { url = "https://files.pythonhosted.org/packages/2a/72/bfa4e61ab8e7dc1c8adf397e05e6cbdd4239357bd72b248d3de662f23915/rpds_py-2026.5.1-cp314-cp314t-win_amd64.whl", hash = "sha256:c93c629be4636cf54337bd5f06c104d55e42ced54d681f6fe21ae510a65116f6", size = 225422 }, - { url = "https://files.pythonhosted.org/packages/27/3a/7b5da92b640f67b6717ccafc83cdd06bfa7ff2395c3685c68922bb54d703/rpds_py-2026.5.1-cp315-cp315-macosx_10_12_x86_64.whl", hash = "sha256:3574b55c604b8f75dacb007136508bbc0db406e626301778096a133327e7f2fb", size = 349576 }, - { url = "https://files.pythonhosted.org/packages/d7/8a/2aafd7ad355a1bd48ca76e2262b74b15e6432b5a1efe150efd4d779cd55d/rpds_py-2026.5.1-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:94068eb3ae6d43f5a786b7db96a406a34e6d5c24489feef32fd6e8946ea7b291", size = 343640 }, - { url = "https://files.pythonhosted.org/packages/f7/7d/6c9523c1abbe840a1b7fba3c516d48e1d3487cc80fea4366c4071cf56784/rpds_py-2026.5.1-cp315-cp315-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3a5b10e8ce894825f380a8f1b6444cf73c294dfea62afbb2d13e3a9e630cec1", size = 375322 }, - { url = "https://files.pythonhosted.org/packages/5a/5d/0b7b03fb1dc509321f01de3149784ab773e34c8573022029af8076afcb9c/rpds_py-2026.5.1-cp315-cp315-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fc09f82e63d4bcd58149572f857a431bae851dc747e313c3b5bdf7abb907fda8", size = 379066 }, - { url = "https://files.pythonhosted.org/packages/d7/e2/8ef6012999ebf1cb1c22f876d9ce5e63d960fd4631d2af3202d3f480aa25/rpds_py-2026.5.1-cp315-cp315-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e10464d17df3b582745c25cec695cb9558bca2cb6ddb631aee1787fc72c767b2", size = 494586 }, - { url = "https://files.pythonhosted.org/packages/80/af/1eeb029bec67582c226b7809172207cd005073af4ebd906e65ff494f4983/rpds_py-2026.5.1-cp315-cp315-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ba05adbf15d994c38ec0b7ab32e858e5110c21e9009a00a86545fd220f84e038", size = 388415 }, - { url = "https://files.pythonhosted.org/packages/18/23/ffbe10711c4d766c1cab0557d6906c074f795814863c67b351355d29354a/rpds_py-2026.5.1-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77c004fdc7b891967106f78ddfd7b076bfe6813c6139c6fff6aed3bcaa960b26", size = 372427 }, - { url = "https://files.pythonhosted.org/packages/bd/3a/30ba4a6ad457e5b070c18d742a33fb77d8d922b565cc881f8a5313d63bfe/rpds_py-2026.5.1-cp315-cp315-manylinux_2_31_riscv64.whl", hash = "sha256:83bcf894486c9d78dd290d3c0124ff6dd8875d3025e2090a8ec49fcc37c55fdd", size = 383615 }, - { url = "https://files.pythonhosted.org/packages/d3/69/62e242b53ce39c0814bd24e1a6e6eba6c92be716277745f317f9540a2e7b/rpds_py-2026.5.1-cp315-cp315-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c3df104083952a0e0c6f10de33e440eabe98fb6317d23e1a58c68f6df08d01b9", size = 402786 }, - { url = "https://files.pythonhosted.org/packages/38/c1/a770b9c186928a1ed0f7e6d7ae50e7f3950ed23e3f9e366dbc8e38cb55de/rpds_py-2026.5.1-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:980450826cf22e133c57e0835070bdd0dd3f73b9b708c3ce223def2cb9469e14", size = 551583 }, - { url = "https://files.pythonhosted.org/packages/21/7c/68e8579b95375b70d2a963103c42e705856cdb98569258bd807f4423891c/rpds_py-2026.5.1-cp315-cp315-musllinux_1_2_i686.whl", hash = "sha256:205dde846f24332ab0c1188699a043b8d165b79bb84529ce272c45048ff6be01", size = 616941 }, - { url = "https://files.pythonhosted.org/packages/70/a1/a6135aed5730ff03ab957182259987ac11e55fb392a28dc6f0592048a280/rpds_py-2026.5.1-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:3966b82dd563176396df030f3dd52a6e54cb69b718e95e78bd555ed3d1e0185d", size = 578349 }, - { url = "https://files.pythonhosted.org/packages/09/6e/f24201a76a84e6c49d0bdfdfcb735210e21701e9b21c5bfc0ba497dd62f6/rpds_py-2026.5.1-cp315-cp315-win32.whl", hash = "sha256:7818f8d0a415be74d2be3590b0a1c1f463a642f4d0217e7d10602dceef5b79aa", size = 209922 }, - { url = "https://files.pythonhosted.org/packages/9e/e4/966bc240bb0485fc265278f6de44d05834bf0b3618886e0b22e33d54c49a/rpds_py-2026.5.1-cp315-cp315-win_amd64.whl", hash = "sha256:b3cc20c0d800af78fd0fac68086e28c1856cec51ea528bb81ea851aa40d39325", size = 226003 }, - { url = "https://files.pythonhosted.org/packages/5c/5c/a15a59269cd5e74472734516c73795c15eccfc841b3d4b0228c3f53f19d0/rpds_py-2026.5.1-cp315-cp315-win_arm64.whl", hash = "sha256:3609e9939a8a76cd904cf98a3f1f13b5dc7e150adeaee89e0ea09652ea213e16", size = 221245 }, - { url = "https://files.pythonhosted.org/packages/e0/22/135ce03804e179a71ceb13be095deda4a279bc88f7a6b8fa161c5ad44e12/rpds_py-2026.5.1-cp315-cp315t-macosx_10_12_x86_64.whl", hash = "sha256:5d333a7127d4b307601ac37792bee01bb95c867cbfacf21b6375b804d6bbd723", size = 352015 }, - { url = "https://files.pythonhosted.org/packages/3b/5f/f1f6d2652eb9d848f6eb369d8db83a2da6249bb49ad2c2a48f45d54538d3/rpds_py-2026.5.1-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:b5f077b44a4f7808520f66dae234988d867deb9aed9be5da057ce9ba831b2a41", size = 345016 }, - { url = "https://files.pythonhosted.org/packages/88/66/b74182775691ea2290c99e52ac8d5db844e56fbec90ce421f107658c8314/rpds_py-2026.5.1-cp315-cp315t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55d8f9b7b78c9538fc9e04e82ec0e888ff0c3cffcfad152c77e57cd09351a98a", size = 374775 }, - { url = "https://files.pythonhosted.org/packages/ff/8f/15e5a61d9f0a43902d36561d4f07cae6ae9f4716be825159fd72717f33af/rpds_py-2026.5.1-cp315-cp315t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e3a8ae58895ac107ed934a6bf51e5846f95c53b9b940c2c6d310838fd5846358", size = 380270 }, - { url = "https://files.pythonhosted.org/packages/02/c3/f859b12763a80540cdf2af0f15b19904cf756a71d7bdd3f82ff3e5b1bbf9/rpds_py-2026.5.1-cp315-cp315t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0957cf3c2b8632ec7aaebffebea8005b353cc2a237b6e2ae3c2cac0820704cfb", size = 495285 }, - { url = "https://files.pythonhosted.org/packages/1c/c7/ff27c2ac8411d30b03b1829fd88cae8dad1a4d0da48dd25e57c4038042e6/rpds_py-2026.5.1-cp315-cp315t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c396c1304de421050b3681ea70f371874b54d41b0151e96109758144c231e30b", size = 389581 }, - { url = "https://files.pythonhosted.org/packages/6e/67/fe92ee32a6cc05c77228a2f8b1762e7124f386ec20ff83d0757b762d58d0/rpds_py-2026.5.1-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aad1bff7f666b9598e573815affd666aac6a13a585dde336f843e33350c7fadc", size = 376041 }, - { url = "https://files.pythonhosted.org/packages/f8/91/b4d6685c27aba55bd82f25b278be8237038117d05f9659a6213ad3408130/rpds_py-2026.5.1-cp315-cp315t-manylinux_2_31_riscv64.whl", hash = "sha256:656a042550878f12d45752452d47094b7cfe5ad1e9d7b87b5a22ad3ae5ff8015", size = 383946 }, - { url = "https://files.pythonhosted.org/packages/bd/79/2c1d832a53c8e0f8e98fc970ec257b950fecd4f62be2ab7182b500a0cbc8/rpds_py-2026.5.1-cp315-cp315t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:73c4bd4f70294737b5206a3e8e30ccadbf8a60301831c8ea23eec5dbeea1ecfa", size = 405526 }, - { url = "https://files.pythonhosted.org/packages/78/c4/c98117b03c6a8581ab2c2dfccfe9a5ad82bd8128a3c28b46a6ad2d97c393/rpds_py-2026.5.1-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:43bca78665423cabae77146f2fe7ce55272b6c8d55d82cca83effd42c7e13972", size = 551165 }, - { url = "https://files.pythonhosted.org/packages/3b/c1/bc479ca069200af730881b1bd525e3114b2b391a351509fcb1b772f28086/rpds_py-2026.5.1-cp315-cp315t-musllinux_1_2_i686.whl", hash = "sha256:42d0f20e85e549c870749d0e247f0c10d318a45b7e9676d575d2dcb04a1b2e66", size = 618778 }, - { url = "https://files.pythonhosted.org/packages/77/65/38ab2f90df44c2febfb63cc10ced40763d9b4bc94d173e734528663fe7f5/rpds_py-2026.5.1-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:b1be5c35683684d5331b93600c210e8367c254683d8a6df6bd21bd2da3a334fb", size = 581839 }, - { url = "https://files.pythonhosted.org/packages/15/2d/ce1f605fe036aadd460e5822e578c6c7ec3a860936cca37d6e0f299daa77/rpds_py-2026.5.1-cp315-cp315t-win32.whl", hash = "sha256:75808f6c38ce7749bb68cc2770161aae5045e6c6f6781a9782e74b93304399df", size = 207866 }, - { url = "https://files.pythonhosted.org/packages/79/cb/966040123eb102371559746908ef2c9471f4d43e17ec9a645a2258dab64b/rpds_py-2026.5.1-cp315-cp315t-win_amd64.whl", hash = "sha256:90bd6630002a1c7f09e7843dd79f0d24f3d2897cc25a753480917865d14f15b3", size = 225441 }, +sdist = { url = "https://files.pythonhosted.org/packages/c0/8f/0722ca900cc807c13a6a0c696dacf35430f72e0ec571c4275d2371fca3e9/rich-15.0.0.tar.gz", hash = "sha256:edd07a4824c6b40189fb7ac9bc4c52536e9780fbbfbddf6f1e2502c31b068c36", size = 230680, upload-time = "2026-04-12T08:24:00.75Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/82/3b/64d4899d73f91ba49a8c18a8ff3f0ea8f1c1d75481760df8c68ef5235bf5/rich-15.0.0-py3-none-any.whl", hash = "sha256:33bd4ef74232fb73fe9279a257718407f169c09b78a87ad3d296f548e27de0bb", size = 310654, upload-time = "2026-04-12T08:24:02.83Z" }, ] [[package]] name = "s3fs" -version = "2026.4.0" +version = "2026.9.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "aiobotocore" }, { name = "aiohttp" }, { name = "fsspec" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/cb/d8/76f3dc1558bdf4494b117a9f7a9cc0a5d9d34edadc9e5d7ceabc5a6a7c37/s3fs-2026.4.0.tar.gz", hash = "sha256:5bdce0abb00b0435ee150807a45fea727451dbc22de4cbc116464f8504ab9d37", size = 85986 } +sdist = { url = "https://files.pythonhosted.org/packages/f7/fe/ab89ab94cc1293849bc1a60876b589007bdd43f59a06ca309e717bd45dc7/s3fs-2026.9.0.tar.gz", hash = "sha256:ec078ff0122d28fd21d36ea4987794e4f42ecd6e8785eeaa083208771c1464e5", size = 89163, upload-time = "2026-09-18T19:02:54.117Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5d/a4/9d1ea10ebc9e028a289a72fec84da170689549a8102c8aacfcad26bc5035/s3fs-2026.4.0-py3-none-any.whl", hash = "sha256:de0d2a1f33cdf03831fd2382d278c6e4e31fe57c3bf2f703c61f8aec6b703e2a", size = 32392 }, + { url = "https://files.pythonhosted.org/packages/bc/9c/15fb18bd708949dc953fe120be8d3c7a1b1b140c2592a9c81ce7961e9ecf/s3fs-2026.9.0-py3-none-any.whl", hash = "sha256:eb185fd98e20a1c9375087d9b2a6ef506f0cd01ae0c0c94efc79f88403fb81fe", size = 33126, upload-time = "2026-09-18T19:02:52.933Z" }, ] [[package]] name = "scipy" -version = "1.17.1" +version = "1.18.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/7a/97/5a3609c4f8d58b039179648e62dd220f89864f56f7357f5d4f45c29eb2cc/scipy-1.17.1.tar.gz", hash = "sha256:95d8e012d8cb8816c226aef832200b1d45109ed4464303e997c5b13122b297c0", size = 30573822 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/35/48/b992b488d6f299dbe3f11a20b24d3dda3d46f1a635ede1c46b5b17a7b163/scipy-1.17.1-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:35c3a56d2ef83efc372eaec584314bd0ef2e2f0d2adb21c55e6ad5b344c0dcb8", size = 31610954 }, - { url = "https://files.pythonhosted.org/packages/b2/02/cf107b01494c19dc100f1d0b7ac3cc08666e96ba2d64db7626066cee895e/scipy-1.17.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:fcb310ddb270a06114bb64bbe53c94926b943f5b7f0842194d585c65eb4edd76", size = 28172662 }, - { url = "https://files.pythonhosted.org/packages/cf/a9/599c28631bad314d219cf9ffd40e985b24d603fc8a2f4ccc5ae8419a535b/scipy-1.17.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:cc90d2e9c7e5c7f1a482c9875007c095c3194b1cfedca3c2f3291cdc2bc7c086", size = 20344366 }, - { url = "https://files.pythonhosted.org/packages/35/f5/906eda513271c8deb5af284e5ef0206d17a96239af79f9fa0aebfe0e36b4/scipy-1.17.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:c80be5ede8f3f8eded4eff73cc99a25c388ce98e555b17d31da05287015ffa5b", size = 22704017 }, - { url = "https://files.pythonhosted.org/packages/da/34/16f10e3042d2f1d6b66e0428308ab52224b6a23049cb2f5c1756f713815f/scipy-1.17.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e19ebea31758fac5893a2ac360fedd00116cbb7628e650842a6691ba7ca28a21", size = 32927842 }, - { url = "https://files.pythonhosted.org/packages/01/8e/1e35281b8ab6d5d72ebe9911edcdffa3f36b04ed9d51dec6dd140396e220/scipy-1.17.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:02ae3b274fde71c5e92ac4d54bc06c42d80e399fec704383dcd99b301df37458", size = 35235890 }, - { url = "https://files.pythonhosted.org/packages/c5/5c/9d7f4c88bea6e0d5a4f1bc0506a53a00e9fcb198de372bfe4d3652cef482/scipy-1.17.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8a604bae87c6195d8b1045eddece0514d041604b14f2727bbc2b3020172045eb", size = 35003557 }, - { url = "https://files.pythonhosted.org/packages/65/94/7698add8f276dbab7a9de9fb6b0e02fc13ee61d51c7c3f85ac28b65e1239/scipy-1.17.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f590cd684941912d10becc07325a3eeb77886fe981415660d9265c4c418d0bea", size = 37625856 }, - { url = "https://files.pythonhosted.org/packages/a2/84/dc08d77fbf3d87d3ee27f6a0c6dcce1de5829a64f2eae85a0ecc1f0daa73/scipy-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:41b71f4a3a4cab9d366cd9065b288efc4d4f3c0b37a91a8e0947fb5bd7f31d87", size = 36549682 }, - { url = "https://files.pythonhosted.org/packages/bc/98/fe9ae9ffb3b54b62559f52dedaebe204b408db8109a8c66fdd04869e6424/scipy-1.17.1-cp312-cp312-win_arm64.whl", hash = "sha256:f4115102802df98b2b0db3cce5cb9b92572633a1197c77b7553e5203f284a5b3", size = 24547340 }, - { url = "https://files.pythonhosted.org/packages/76/27/07ee1b57b65e92645f219b37148a7e7928b82e2b5dbeccecb4dff7c64f0b/scipy-1.17.1-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:5e3c5c011904115f88a39308379c17f91546f77c1667cea98739fe0fccea804c", size = 31590199 }, - { url = "https://files.pythonhosted.org/packages/ec/ae/db19f8ab842e9b724bf5dbb7db29302a91f1e55bc4d04b1025d6d605a2c5/scipy-1.17.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:6fac755ca3d2c3edcb22f479fceaa241704111414831ddd3bc6056e18516892f", size = 28154001 }, - { url = "https://files.pythonhosted.org/packages/5b/58/3ce96251560107b381cbd6e8413c483bbb1228a6b919fa8652b0d4090e7f/scipy-1.17.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:7ff200bf9d24f2e4d5dc6ee8c3ac64d739d3a89e2326ba68aaf6c4a2b838fd7d", size = 20325719 }, - { url = "https://files.pythonhosted.org/packages/b2/83/15087d945e0e4d48ce2377498abf5ad171ae013232ae31d06f336e64c999/scipy-1.17.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:4b400bdc6f79fa02a4d86640310dde87a21fba0c979efff5248908c6f15fad1b", size = 22683595 }, - { url = "https://files.pythonhosted.org/packages/b4/e0/e58fbde4a1a594c8be8114eb4aac1a55bcd6587047efc18a61eb1f5c0d30/scipy-1.17.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2b64ca7d4aee0102a97f3ba22124052b4bd2152522355073580bf4845e2550b6", size = 32896429 }, - { url = "https://files.pythonhosted.org/packages/f5/5f/f17563f28ff03c7b6799c50d01d5d856a1d55f2676f537ca8d28c7f627cd/scipy-1.17.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:581b2264fc0aa555f3f435a5944da7504ea3a065d7029ad60e7c3d1ae09c5464", size = 35203952 }, - { url = "https://files.pythonhosted.org/packages/8d/a5/9afd17de24f657fdfe4df9a3f1ea049b39aef7c06000c13db1530d81ccca/scipy-1.17.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:beeda3d4ae615106d7094f7e7cef6218392e4465cc95d25f900bebabfded0950", size = 34979063 }, - { url = "https://files.pythonhosted.org/packages/8b/13/88b1d2384b424bf7c924f2038c1c409f8d88bb2a8d49d097861dd64a57b2/scipy-1.17.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6609bc224e9568f65064cfa72edc0f24ee6655b47575954ec6339534b2798369", size = 37598449 }, - { url = "https://files.pythonhosted.org/packages/35/e5/d6d0e51fc888f692a35134336866341c08655d92614f492c6860dc45bb2c/scipy-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:37425bc9175607b0268f493d79a292c39f9d001a357bebb6b88fdfaff13f6448", size = 36510943 }, - { url = "https://files.pythonhosted.org/packages/2a/fd/3be73c564e2a01e690e19cc618811540ba5354c67c8680dce3281123fb79/scipy-1.17.1-cp313-cp313-win_arm64.whl", hash = "sha256:5cf36e801231b6a2059bf354720274b7558746f3b1a4efb43fcf557ccd484a87", size = 24545621 }, - { url = "https://files.pythonhosted.org/packages/6f/6b/17787db8b8114933a66f9dcc479a8272e4b4da75fe03b0c282f7b0ade8cd/scipy-1.17.1-cp313-cp313t-macosx_10_14_x86_64.whl", hash = "sha256:d59c30000a16d8edc7e64152e30220bfbd724c9bbb08368c054e24c651314f0a", size = 31936708 }, - { url = "https://files.pythonhosted.org/packages/38/2e/524405c2b6392765ab1e2b722a41d5da33dc5c7b7278184a8ad29b6cb206/scipy-1.17.1-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:010f4333c96c9bb1a4516269e33cb5917b08ef2166d5556ca2fd9f082a9e6ea0", size = 28570135 }, - { url = "https://files.pythonhosted.org/packages/fd/c3/5bd7199f4ea8556c0c8e39f04ccb014ac37d1468e6cfa6a95c6b3562b76e/scipy-1.17.1-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:2ceb2d3e01c5f1d83c4189737a42d9cb2fc38a6eeed225e7515eef71ad301dce", size = 20741977 }, - { url = "https://files.pythonhosted.org/packages/d9/b8/8ccd9b766ad14c78386599708eb745f6b44f08400a5fd0ade7cf89b6fc93/scipy-1.17.1-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:844e165636711ef41f80b4103ed234181646b98a53c8f05da12ca5ca289134f6", size = 23029601 }, - { url = "https://files.pythonhosted.org/packages/6d/a0/3cb6f4d2fb3e17428ad2880333cac878909ad1a89f678527b5328b93c1d4/scipy-1.17.1-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:158dd96d2207e21c966063e1635b1063cd7787b627b6f07305315dd73d9c679e", size = 33019667 }, - { url = "https://files.pythonhosted.org/packages/f3/c3/2d834a5ac7bf3a0c806ad1508efc02dda3c8c61472a56132d7894c312dea/scipy-1.17.1-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:74cbb80d93260fe2ffa334efa24cb8f2f0f622a9b9febf8b483c0b865bfb3475", size = 35264159 }, - { url = "https://files.pythonhosted.org/packages/4d/77/d3ed4becfdbd217c52062fafe35a72388d1bd82c2d0ba5ca19d6fcc93e11/scipy-1.17.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:dbc12c9f3d185f5c737d801da555fb74b3dcfa1a50b66a1a93e09190f41fab50", size = 35102771 }, - { url = "https://files.pythonhosted.org/packages/bd/12/d19da97efde68ca1ee5538bb261d5d2c062f0c055575128f11a2730e3ac1/scipy-1.17.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:94055a11dfebe37c656e70317e1996dc197e1a15bbcc351bcdd4610e128fe1ca", size = 37665910 }, - { url = "https://files.pythonhosted.org/packages/06/1c/1172a88d507a4baaf72c5a09bb6c018fe2ae0ab622e5830b703a46cc9e44/scipy-1.17.1-cp313-cp313t-win_amd64.whl", hash = "sha256:e30bdeaa5deed6bc27b4cc490823cd0347d7dae09119b8803ae576ea0ce52e4c", size = 36562980 }, - { url = "https://files.pythonhosted.org/packages/70/b0/eb757336e5a76dfa7911f63252e3b7d1de00935d7705cf772db5b45ec238/scipy-1.17.1-cp313-cp313t-win_arm64.whl", hash = "sha256:a720477885a9d2411f94a93d16f9d89bad0f28ca23c3f8daa521e2dcc3f44d49", size = 24856543 }, - { url = "https://files.pythonhosted.org/packages/cf/83/333afb452af6f0fd70414dc04f898647ee1423979ce02efa75c3b0f2c28e/scipy-1.17.1-cp314-cp314-macosx_10_14_x86_64.whl", hash = "sha256:a48a72c77a310327f6a3a920092fa2b8fd03d7deaa60f093038f22d98e096717", size = 31584510 }, - { url = "https://files.pythonhosted.org/packages/ed/a6/d05a85fd51daeb2e4ea71d102f15b34fedca8e931af02594193ae4fd25f7/scipy-1.17.1-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:45abad819184f07240d8a696117a7aacd39787af9e0b719d00285549ed19a1e9", size = 28170131 }, - { url = "https://files.pythonhosted.org/packages/db/7b/8624a203326675d7746a254083a187398090a179335b2e4a20e2ddc46e83/scipy-1.17.1-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:3fd1fcdab3ea951b610dc4cef356d416d5802991e7e32b5254828d342f7b7e0b", size = 20342032 }, - { url = "https://files.pythonhosted.org/packages/c9/35/2c342897c00775d688d8ff3987aced3426858fd89d5a0e26e020b660b301/scipy-1.17.1-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:7bdf2da170b67fdf10bca777614b1c7d96ae3ca5794fd9587dce41eb2966e866", size = 22678766 }, - { url = "https://files.pythonhosted.org/packages/ef/f2/7cdb8eb308a1a6ae1e19f945913c82c23c0c442a462a46480ce487fdc0ac/scipy-1.17.1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:adb2642e060a6549c343603a3851ba76ef0b74cc8c079a9a58121c7ec9fe2350", size = 32957007 }, - { url = "https://files.pythonhosted.org/packages/0b/2e/7eea398450457ecb54e18e9d10110993fa65561c4f3add5e8eccd2b9cd41/scipy-1.17.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:eee2cfda04c00a857206a4330f0c5e3e56535494e30ca445eb19ec624ae75118", size = 35221333 }, - { url = "https://files.pythonhosted.org/packages/d9/77/5b8509d03b77f093a0d52e606d3c4f79e8b06d1d38c441dacb1e26cacf46/scipy-1.17.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:d2650c1fb97e184d12d8ba010493ee7b322864f7d3d00d3f9bb97d9c21de4068", size = 35042066 }, - { url = "https://files.pythonhosted.org/packages/f9/df/18f80fb99df40b4070328d5ae5c596f2f00fffb50167e31439e932f29e7d/scipy-1.17.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:08b900519463543aa604a06bec02461558a6e1cef8fdbb8098f77a48a83c8118", size = 37612763 }, - { url = "https://files.pythonhosted.org/packages/4b/39/f0e8ea762a764a9dc52aa7dabcfad51a354819de1f0d4652b6a1122424d6/scipy-1.17.1-cp314-cp314-win_amd64.whl", hash = "sha256:3877ac408e14da24a6196de0ddcace62092bfc12a83823e92e49e40747e52c19", size = 37290984 }, - { url = "https://files.pythonhosted.org/packages/7c/56/fe201e3b0f93d1a8bcf75d3379affd228a63d7e2d80ab45467a74b494947/scipy-1.17.1-cp314-cp314-win_arm64.whl", hash = "sha256:f8885db0bc2bffa59d5c1b72fad7a6a92d3e80e7257f967dd81abb553a90d293", size = 25192877 }, - { url = "https://files.pythonhosted.org/packages/96/ad/f8c414e121f82e02d76f310f16db9899c4fcde36710329502a6b2a3c0392/scipy-1.17.1-cp314-cp314t-macosx_10_14_x86_64.whl", hash = "sha256:1cc682cea2ae55524432f3cdff9e9a3be743d52a7443d0cba9017c23c87ae2f6", size = 31949750 }, - { url = "https://files.pythonhosted.org/packages/7c/b0/c741e8865d61b67c81e255f4f0a832846c064e426636cd7de84e74d209be/scipy-1.17.1-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:2040ad4d1795a0ae89bfc7e8429677f365d45aa9fd5e4587cf1ea737f927b4a1", size = 28585858 }, - { url = "https://files.pythonhosted.org/packages/ed/1b/3985219c6177866628fa7c2595bfd23f193ceebbe472c98a08824b9466ff/scipy-1.17.1-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:131f5aaea57602008f9822e2115029b55d4b5f7c070287699fe45c661d051e39", size = 20757723 }, - { url = "https://files.pythonhosted.org/packages/c0/19/2a04aa25050d656d6f7b9e7b685cc83d6957fb101665bfd9369ca6534563/scipy-1.17.1-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:9cdc1a2fcfd5c52cfb3045feb399f7b3ce822abdde3a193a6b9a60b3cb5854ca", size = 23043098 }, - { url = "https://files.pythonhosted.org/packages/86/f1/3383beb9b5d0dbddd030335bf8a8b32d4317185efe495374f134d8be6cce/scipy-1.17.1-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6e3dcd57ab780c741fde8dc68619de988b966db759a3c3152e8e9142c26295ad", size = 33030397 }, - { url = "https://files.pythonhosted.org/packages/41/68/8f21e8a65a5a03f25a79165ec9d2b28c00e66dc80546cf5eb803aeeff35b/scipy-1.17.1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a9956e4d4f4a301ebf6cde39850333a6b6110799d470dbbb1e25326ac447f52a", size = 35281163 }, - { url = "https://files.pythonhosted.org/packages/84/8d/c8a5e19479554007a5632ed7529e665c315ae7492b4f946b0deb39870e39/scipy-1.17.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:a4328d245944d09fd639771de275701ccadf5f781ba0ff092ad141e017eccda4", size = 35116291 }, - { url = "https://files.pythonhosted.org/packages/52/52/e57eceff0e342a1f50e274264ed47497b59e6a4e3118808ee58ddda7b74a/scipy-1.17.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:a77cbd07b940d326d39a1d1b37817e2ee4d79cb30e7338f3d0cddffae70fcaa2", size = 37682317 }, - { url = "https://files.pythonhosted.org/packages/11/2f/b29eafe4a3fbc3d6de9662b36e028d5f039e72d345e05c250e121a230dd4/scipy-1.17.1-cp314-cp314t-win_amd64.whl", hash = "sha256:eb092099205ef62cd1782b006658db09e2fed75bffcae7cc0d44052d8aa0f484", size = 37345327 }, - { url = "https://files.pythonhosted.org/packages/07/39/338d9219c4e87f3e708f18857ecd24d22a0c3094752393319553096b98af/scipy-1.17.1-cp314-cp314t-win_arm64.whl", hash = "sha256:200e1050faffacc162be6a486a984a0497866ec54149a01270adc8a59b7c7d21", size = 25489165 }, +sdist = { url = "https://files.pythonhosted.org/packages/7e/74/66de6258867beb2ef08f35f9f2ac017a52cacd5081714d239ff1a442d458/scipy-1.18.1.tar.gz", hash = "sha256:52c4b7422442aba924d03ad4019852b08a92e64ea187b933135687bfe2747307", size = 30781235, upload-time = "2026-08-21T23:28:50.599Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/f7/240c110c08693826b4513a52f5717d62ec7c7af72f2920821247c03b17b3/scipy-1.18.1-cp312-cp312-macosx_10_15_x86_64.whl", hash = "sha256:457fd7a2a8edeb044ab6ffbc0aa03ff6cd18491356e5e0c834d76ce621b916d1", size = 31111061, upload-time = "2026-08-21T23:23:44.522Z" }, + { url = "https://files.pythonhosted.org/packages/05/4a/78c6285577c375e7cf27277ea8ee6961224327f1e1a0c44af5f17f23635c/scipy-1.18.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:e708533e8b2ae2497d65346538a7dcc92814410b25b81432eac66de0f2af8265", size = 28733332, upload-time = "2026-08-21T23:23:50.015Z" }, + { url = "https://files.pythonhosted.org/packages/a5/f6/a5b82f8abbe14d134691b8b903696f701d25a081353a29dc655c364d9e62/scipy-1.18.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:7bbf207c4453ce1ad2e00b17313852b33310b83090c2311bdaf97f93c0380d12", size = 20475078, upload-time = "2026-08-21T23:23:54.138Z" }, + { url = "https://files.pythonhosted.org/packages/23/22/0858a0bbd6b3e825ceb8cd9baf9eaf3b2f2b1d77727eb6be40500bcdc92f/scipy-1.18.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:78c0665edead396b1abb4897c41a5c1d9bf090c8a637a4c20a61678e0a264e66", size = 23108904, upload-time = "2026-08-21T23:23:57.824Z" }, + { url = "https://files.pythonhosted.org/packages/75/9a/2e71719f31eaefe0e3a1706c4a1ded94e664bfd95ffca2b219a671faee01/scipy-1.18.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3c085faa2cfa879c5141df483f836f4d691045a078224a670fa570fa01612d89", size = 34025113, upload-time = "2026-08-21T23:24:02.209Z" }, + { url = "https://files.pythonhosted.org/packages/df/64/ff35eb9e54894cf471ff4716abd3c81eb0a0626869217ce3e6ba4ccf17d7/scipy-1.18.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f55fa87b6c612ecd6b058f167c53231b1d14e412efe361d3d6e38b3631c73218", size = 35344199, upload-time = "2026-08-21T23:24:07.844Z" }, + { url = "https://files.pythonhosted.org/packages/d3/af/c5538be1792f7034c12c7db6ee67cace58253c7b87b122d68253eaf5de89/scipy-1.18.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c35d74ce0e193ff740c2f2be2ac913ddc232fe6c1ff40b26cfecb9c670c63314", size = 35639587, upload-time = "2026-08-21T23:24:13.05Z" }, + { url = "https://files.pythonhosted.org/packages/91/4c/075e4f66471bac101141ac739e9e135549be1bae584571bd03a530c056e1/scipy-1.18.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d2924a03db38dc2e848bca2fe9f077dafb891480b91a00a0963a8cf86dfc31c1", size = 37480330, upload-time = "2026-08-21T23:24:19.608Z" }, + { url = "https://files.pythonhosted.org/packages/39/e7/979fd14e75008623df31ba70d6bb144700f68feadcea042021c06a05bf82/scipy-1.18.1-cp312-cp312-win_amd64.whl", hash = "sha256:5e4d44984abc0020154ea81b247adeddcc3ac5527b975ff798bd1ba0adc513c2", size = 36658278, upload-time = "2026-08-21T23:24:25.463Z" }, + { url = "https://files.pythonhosted.org/packages/c7/0b/e1525354ff9d7d5feb6d1b31af6d14072e5c91e9607b421fa1ec889660b3/scipy-1.18.1-cp312-cp312-win_arm64.whl", hash = "sha256:d65d448389b8436493abcf629cc94ad0cf32aecaf06e1acca1de53cc795f2f12", size = 24400588, upload-time = "2026-08-21T23:24:30.579Z" }, + { url = "https://files.pythonhosted.org/packages/b6/55/4540ee0f9c42a9ad7109d0d1a8cc70de54c3572b01c6693a2b1c70e90ceb/scipy-1.18.1-cp313-cp313-macosx_10_15_x86_64.whl", hash = "sha256:3ab3523da44749156e1f68b464dc56af11ae4cbc5c739a49d05f32b982eca9f3", size = 31089958, upload-time = "2026-08-21T23:24:35.8Z" }, + { url = "https://files.pythonhosted.org/packages/2a/f5/769f36d14922b8071a43e95d24d18b6bdafad10d7f5cf647867e1ac052bc/scipy-1.18.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:e6fb6a55cc0ba97b59a1f288fb86dc6fce8bdfc0fffcbfd015e3a954bf2a2d93", size = 28715106, upload-time = "2026-08-21T23:24:40.775Z" }, + { url = "https://files.pythonhosted.org/packages/9a/d7/21d890274f75ea37a8209d5519e72da3da90302e3b9fb8397a0918386a62/scipy-1.18.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:ea324d9dd34c38bfb9bec8ca4d1b407db97dbb74029f566b8e322b1b6fe56fe6", size = 20456846, upload-time = "2026-08-21T23:24:45.066Z" }, + { url = "https://files.pythonhosted.org/packages/ec/01/798430ecea2e78ec7c02663d5f71c007bb6abeca931080debd40d7fa55ea/scipy-1.18.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:75b00eb8fb802090aa903f4ea1c7f5a584779f967361e68b7e98e531cc2d7174", size = 23087986, upload-time = "2026-08-21T23:24:49.539Z" }, + { url = "https://files.pythonhosted.org/packages/e6/5f/4634e9d35c68496e4e34cb6946eafab044458e6cedab42b40b6588e475b6/scipy-1.18.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d416b16cccfd70fbf62400e84d0bb2f4e6af519a45557f1692c749b37f14b315", size = 33998146, upload-time = "2026-08-21T23:24:54.714Z" }, + { url = "https://files.pythonhosted.org/packages/41/48/6450ed9243315322bbc19ac57b9b70d66a20bf1d38d124c96bc4bf6af9ea/scipy-1.18.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fdaf5ea890a6183d0565f51a61799d67081bd5b1cf03c5f4b3fd3732108625c9", size = 35312578, upload-time = "2026-08-21T23:25:00.44Z" }, + { url = "https://files.pythonhosted.org/packages/00/bd/bf5a4be6a3525676499f6dff307991739ff6fdcad1481b1aeb6745339f58/scipy-1.18.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c825cef2f49e46753726a7181a8e199804a912b29519ada542c6ebc654951899", size = 35612621, upload-time = "2026-08-21T23:25:06.144Z" }, + { url = "https://files.pythonhosted.org/packages/bd/4e/3c45c33e00a77996c4b1cb707929f833ba7b1d522ee29f882512c330676d/scipy-1.18.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e3b417bf8c2c7c16e8f58ad91db17783ec911ac16e7b50eb6eab6e809b4f5b07", size = 37457323, upload-time = "2026-08-21T23:25:12.483Z" }, + { url = "https://files.pythonhosted.org/packages/93/0e/e0348fbc0dbab65c114cf78957e7dfeb49f8e8b556b4d930cc12ff195e18/scipy-1.18.1-cp313-cp313-win_amd64.whl", hash = "sha256:559ed65f60c1af5a03f3912605a1b5114f522c7c32fb23c3376ae8f03219fe28", size = 36622841, upload-time = "2026-08-21T23:25:18.722Z" }, + { url = "https://files.pythonhosted.org/packages/50/a8/6a77f5f267c555108f0a864b6db714363dab567a8266422a79a385f9232b/scipy-1.18.1-cp313-cp313-win_arm64.whl", hash = "sha256:cd479fc04dd9401e3b4f49e76518768ef99c4f517a98c284eb091fd725719adf", size = 24399315, upload-time = "2026-08-21T23:25:23.458Z" }, + { url = "https://files.pythonhosted.org/packages/06/d5/d8eb4e280ddb56a4ab2c6f02ee49b56b23f6e977cf0802fd6d68dbef14f5/scipy-1.18.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:83de5453a7799afc9048b4616bd085cef126e36412f0ea2f6370c36a2a3a51e7", size = 31090936, upload-time = "2026-08-21T23:25:28.686Z" }, + { url = "https://files.pythonhosted.org/packages/2a/49/59ea385dc3a62ff498ddf3cfff7c2b41b0f9f9d3c4122b3f1dcb6d6327fe/scipy-1.18.1-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:9554bcc6d715ee87a633a3cc8e7703c6628b100dd29cb8a2efc4c0533c7ff729", size = 28725221, upload-time = "2026-08-21T23:25:33.244Z" }, + { url = "https://files.pythonhosted.org/packages/70/e8/6b0c288c50942d78193696c9f15f9a0874f5178aa0ddf40f83d9924b3e8d/scipy-1.18.1-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:011413b7426b75012840e35649e00fe0a2c3bae89fed433876e3a99251572efc", size = 20466839, upload-time = "2026-08-21T23:25:37.516Z" }, + { url = "https://files.pythonhosted.org/packages/4b/e0/54fd3793c729e3b936782f181b59cbb1205bf250ab605a16cb1ba61cdd5e/scipy-1.18.1-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:88f0e784020649f88ea48c9f5ddfa403bf9205820667c0914740b392035afb82", size = 23089121, upload-time = "2026-08-21T23:25:42.019Z" }, + { url = "https://files.pythonhosted.org/packages/0b/56/030af62bea3cf878e0028515dff78c123b01633606a879b63f42d2db99cc/scipy-1.18.1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2d3ab0e8c69a17dd3559eab8cbb88f258e285c94d572c2719033f90f83290c89", size = 34053851, upload-time = "2026-08-21T23:25:47.998Z" }, + { url = "https://files.pythonhosted.org/packages/6b/89/2a844506d49651e9aa1af6ef95b6bd8031cb1d5a4375edec6155037e04cf/scipy-1.18.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ac0333bdf38309aa3dcbe7e3fa7ea29e7a2c37c6ea306a757b700ded8e4596ad", size = 35329183, upload-time = "2026-08-21T23:25:53.522Z" }, + { url = "https://files.pythonhosted.org/packages/eb/56/c7370c3640e92ac9613cbf26cb3f729f9b12ddf1727b55b94b53b24d6f48/scipy-1.18.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:911de823097db8b63f034299d12662db93344e6ffa0b881cbb57748974b70168", size = 35672551, upload-time = "2026-08-21T23:25:59.387Z" }, + { url = "https://files.pythonhosted.org/packages/24/16/ec8536f351421f8bf60a1120930638f83790f4710b8230446aca3d6159d4/scipy-1.18.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:95298364e251be3e60249facbeeca03631d3bb7584f85879516ec55ac717b81f", size = 37469416, upload-time = "2026-08-21T23:26:05.432Z" }, + { url = "https://files.pythonhosted.org/packages/52/94/d73da0d28f16c45bb9b0a5691b91610b0275c5ef0eb5e43c87cf2dc1bf31/scipy-1.18.1-cp314-cp314-win_amd64.whl", hash = "sha256:78a0d7c918e74a232394117160e7e3db503377572a45bcef8826e4ab8a35feba", size = 37362755, upload-time = "2026-08-21T23:26:11.366Z" }, + { url = "https://files.pythonhosted.org/packages/89/25/e996e4dc74e10e227b1e14db5eaf6608bb6dd33884a64851c38f18dd4249/scipy-1.18.1-cp314-cp314-win_arm64.whl", hash = "sha256:cbf38d043c1aa4ab306e1ada6ab6eddacc3322a20b7af1b30bc93254b366fe09", size = 25036090, upload-time = "2026-08-21T23:26:15.887Z" }, + { url = "https://files.pythonhosted.org/packages/fa/c9/c00213f92309d753b48903e6a451b87eb52ff5b7a16e789d1568bbf221c4/scipy-1.18.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:0fcb3c93519f27bb4f0c4b0f7802cdcaca7fcf93267b75edda2e9f4e8a55cbd7", size = 31485550, upload-time = "2026-08-21T23:26:20.776Z" }, + { url = "https://files.pythonhosted.org/packages/74/b2/e3067c487982d4eeab2938928529410370c06fea84a4d3f4925e7d96647d/scipy-1.18.1-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:ddef79fb382df40104a19bb7151b3b23e57c1778fcf857c71ceecd9bd264513f", size = 29174642, upload-time = "2026-08-21T23:26:25.395Z" }, + { url = "https://files.pythonhosted.org/packages/d5/ab/374c9fe2d1ec014e576c781a4b5d8e1ba340e8f6b4638c16f711d2b194f0/scipy-1.18.1-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:0e82073ecc7acc6436fac4b31674109c7e1d3e596789767eda01258a8c9e8123", size = 20916357, upload-time = "2026-08-21T23:26:30.112Z" }, + { url = "https://files.pythonhosted.org/packages/90/38/223915c88a17317cafbf8ca2a42b11c265a9fb1e804aa665544132b5fe8a/scipy-1.18.1-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:8bcf3c1ba5d6456e2effd30fcbd3459b044d683fcdac79a2e6830f0bdf7de487", size = 23482611, upload-time = "2026-08-21T23:26:34.846Z" }, + { url = "https://files.pythonhosted.org/packages/c4/d1/db0948da8ca57a80b36520ef0a768b967d99f3af65f4b6f1bf6362ad4dd4/scipy-1.18.1-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cfbf154f2ba187f2ed6cce2639efff7d105f1140573642c0161615b6d91d6a87", size = 34143202, upload-time = "2026-08-21T23:26:40.4Z" }, + { url = "https://files.pythonhosted.org/packages/87/53/39d046cc7574ed6acacb6bd5723e220107ece80bff12faaf3efc4ddeede4/scipy-1.18.1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a1d33a7836f7ddc1993427966a0823468ec41bcbdb1a9f9942d1d7e57f803ba3", size = 35380876, upload-time = "2026-08-21T23:26:46.1Z" }, + { url = "https://files.pythonhosted.org/packages/f9/da/32e0e799d875a85ca57d9bde6c78148afcc0e38276df683d95854eadc8c3/scipy-1.18.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:7f4b8bc363b6d65ee2152bec57568e3c52639bb34c46057b09857a307ed5e21d", size = 35770885, upload-time = "2026-08-21T23:26:51.533Z" }, + { url = "https://files.pythonhosted.org/packages/88/2e/f97a666d362fee68b18f41c9c30ed502ca5c98b549749bfcb52a8b74d1eb/scipy-1.18.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:11c423f1049c5755ad4409af52a9ada1cff96fe9b50795d4af3619f292901239", size = 37525424, upload-time = "2026-08-21T23:26:56.751Z" }, + { url = "https://files.pythonhosted.org/packages/ca/d5/a9e765a84654ebba8479a1fd1b059ced1af72b168a3b2a3a46540ea38d20/scipy-1.18.1-cp314-cp314t-win_amd64.whl", hash = "sha256:c24acac1e18912761c4700239bbc1fd32f615af690f1584d49b35859be51324d", size = 37416961, upload-time = "2026-08-21T23:27:01.546Z" }, + { url = "https://files.pythonhosted.org/packages/ee/16/e79e0d1c63ef698879d85439d37e9fb434e3b804e506a6991038d086ebd9/scipy-1.18.1-cp314-cp314t-win_arm64.whl", hash = "sha256:9f2897bf7737392ad0d5213ea7b6add72a4edf5679b3153106aeb88b6507b3b9", size = 25331848, upload-time = "2026-08-21T23:27:05.884Z" }, + { url = "https://files.pythonhosted.org/packages/be/4f/1bd37c883b67163e2ca1f60977a399500e6879c15defecac62831c8d078d/scipy-1.18.1-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:eb0dfcf4e28a99c12c999744a2ff67c9b06200e20401c7c88186e33552a46331", size = 31091484, upload-time = "2026-08-21T23:27:11.051Z" }, + { url = "https://files.pythonhosted.org/packages/8c/c5/ba929d7feb9b2332f96827c12e0e924b61973b59b4dea383b603372c65ce/scipy-1.18.1-cp315-cp315-macosx_12_0_arm64.whl", hash = "sha256:30f464bee641fa8e282577c7dce027308403213c6ca8270bba73285c91024bc5", size = 28725057, upload-time = "2026-08-21T23:27:15.9Z" }, + { url = "https://files.pythonhosted.org/packages/a4/19/68f1c50f609d955d230e66d25d02bd3e1e167ec540232135354fb9a4b9e3/scipy-1.18.1-cp315-cp315-macosx_14_0_arm64.whl", hash = "sha256:1bca3b943fc2567ea49cd02c99abde49da4d5178ec46f624bd8255cda8755beb", size = 20466734, upload-time = "2026-08-21T23:27:20.044Z" }, + { url = "https://files.pythonhosted.org/packages/ef/6d/319fa29b73d1802fa80b32a6eaf3f5be456ef81526da2716a9493bcb5501/scipy-1.18.1-cp315-cp315-macosx_14_0_x86_64.whl", hash = "sha256:c9d18a33309122074ea483dd92dd444189166b8b2ec429fe9ed5ac73c7a0aa23", size = 23089664, upload-time = "2026-08-21T23:27:24.345Z" }, + { url = "https://files.pythonhosted.org/packages/b7/db/30992f9b51a63de671daf3888ffd18378b6cb9ec9f2c972264238ffa7fd6/scipy-1.18.1-cp315-cp315-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:82f201b4c878551d48558337aab270d3c6cca5507b8737c8d8a608d234cccde0", size = 34054035, upload-time = "2026-08-21T23:27:29.409Z" }, + { url = "https://files.pythonhosted.org/packages/91/d4/bf3e735dc0b9d5a8ff45079d2540e17d3aff7a2f0048dd8f552ffd031d2b/scipy-1.18.1-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0ac49ea97594532dd44b7136094d35f5440fa06e6d9c6384a74c01764df388c5", size = 35333883, upload-time = "2026-08-21T23:27:34.293Z" }, + { url = "https://files.pythonhosted.org/packages/19/93/12d78ce9f871fe945fca588d32644e6e63f553c2a35c564d73f3b22a3313/scipy-1.18.1-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:ceb30a00ce7c92d459819443d29ca486d882b83fb6738bdcbb2a1cce94ac5daa", size = 35673124, upload-time = "2026-08-21T23:27:39.059Z" }, + { url = "https://files.pythonhosted.org/packages/70/cd/886219313a1012a48e6ae0ec4f302c837151beb92e1ff0d709ef8fdfc488/scipy-1.18.1-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:f29633129f9fa7e88a3f0fca835de2d030bfc9643f7799e1a0c46cee24d38fc7", size = 37470753, upload-time = "2026-08-21T23:27:44.435Z" }, + { url = "https://files.pythonhosted.org/packages/17/6c/a776888ce618bee54fbde26172f0f46ac1da70d27b63861797fe78e1904b/scipy-1.18.1-cp315-cp315-win_amd64.whl", hash = "sha256:92c14f5bdbfb6216315ce33e78080474082de8b3830122ba97809bfbe65f75c0", size = 37361483, upload-time = "2026-08-21T23:27:49.334Z" }, + { url = "https://files.pythonhosted.org/packages/ab/09/97b651691322ebee97999b017ffc18a15a0b815103844c97e8da9d469731/scipy-1.18.1-cp315-cp315-win_arm64.whl", hash = "sha256:e402cf31eb68f453dbb2d36fc6d722b33f24a55d68b2ae1d92fa6305ca71c298", size = 25035883, upload-time = "2026-08-21T23:27:53.596Z" }, + { url = "https://files.pythonhosted.org/packages/ed/0f/9ec20467bbabd0d44e2a77d0fd3d124f884b4d67df92af82c91d2d6a486f/scipy-1.18.1-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:2a0b02f9fc46f8520330c23d45e6560db7e3a0d927232139427637f98943e11d", size = 31474926, upload-time = "2026-08-21T23:27:57.993Z" }, + { url = "https://files.pythonhosted.org/packages/8a/58/dcb79161e56efbedc50079fcd2f5fe427a0ebb53022eb476aa73c015ad8f/scipy-1.18.1-cp315-cp315t-macosx_12_0_arm64.whl", hash = "sha256:1d73131e358976663dd969e1fb4ed1404b815cd977eaaedc3b3a133ba2d81c35", size = 29164940, upload-time = "2026-08-21T23:28:03.062Z" }, + { url = "https://files.pythonhosted.org/packages/71/d3/1eeea80c817fcb8ef7bd4a05a58824977a0e57a375cfc3d7ea7c911c01ad/scipy-1.18.1-cp315-cp315t-macosx_14_0_arm64.whl", hash = "sha256:bff0b729edd992766136b34e39cc76bc2fad905aa58897ee72a9cd000a6d8443", size = 20906742, upload-time = "2026-08-21T23:28:07.642Z" }, + { url = "https://files.pythonhosted.org/packages/54/46/e59350428b6099301a20128108c995e2eb175a43f383af9a346e38824f9b/scipy-1.18.1-cp315-cp315t-macosx_14_0_x86_64.whl", hash = "sha256:10ac20c69d880f77f375db44c22e3e6a644f9fefa291d4cd2fb9790a89fc99fd", size = 23472183, upload-time = "2026-08-21T23:28:12.109Z" }, + { url = "https://files.pythonhosted.org/packages/89/31/cc91623fa98f0621766a0f0aaaadb2c66de74a7ea7e3837164f6e4354260/scipy-1.18.1-cp315-cp315t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:33a834464fdabc0f26a45508df31b3cc5d028e04dbf6c5ed398541418e0a12fe", size = 34130796, upload-time = "2026-08-21T23:28:17.906Z" }, + { url = "https://files.pythonhosted.org/packages/fc/3e/8572ef536957ddb8aa81bb4090d9e25f257e3b4e05d97deb54319deb8a3a/scipy-1.18.1-cp315-cp315t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:49023963c193dacee096301452f223ee24d86ec5807f8df93c0f7221d119e305", size = 35374253, upload-time = "2026-08-21T23:28:23.732Z" }, + { url = "https://files.pythonhosted.org/packages/b5/c6/59fdeffb4f1435299f93d9dc8140b43ad2916e6cfc944be6c3041fcec86d/scipy-1.18.1-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:d84a09d0dad90ba6525d8ac1c2334b33e64bf3ccfe9e841f02feb867a22681e4", size = 35758543, upload-time = "2026-08-21T23:28:29.431Z" }, + { url = "https://files.pythonhosted.org/packages/cf/d9/135be205d9de8783193aff9cc3bf483a03a38e4b29432c954e8cb66ac14e/scipy-1.18.1-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:179ce34a8d0fe273d8883ba59e17e052247d08973dfcb743ca52bb1cce2d60b0", size = 37521946, upload-time = "2026-08-21T23:28:35.245Z" }, + { url = "https://files.pythonhosted.org/packages/5c/a2/5b7d5270621ab7cfa3f7766067bf95dc360b5efb6394694e8143b4156e2b/scipy-1.18.1-cp315-cp315t-win_amd64.whl", hash = "sha256:5632e3ae3d09197c446310cd5187de63e28448ce22f0f67b2b93d97503c0c230", size = 37408295, upload-time = "2026-08-21T23:28:40.724Z" }, + { url = "https://files.pythonhosted.org/packages/63/ad/741c19fcb66755ff953daf9243af8480e4bf3d7fbe57583c178c7d2b6b51/scipy-1.18.1-cp315-cp315t-win_arm64.whl", hash = "sha256:eda632a7981f69730d6281f451db9c1c370993a2c0d7ddb43e2a809a2862b83a", size = 25319710, upload-time = "2026-08-21T23:28:45.713Z" }, ] [[package]] name = "shapely" -version = "2.1.2" +version = "2.2.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/4d/bc/0989043118a27cccb4e906a46b7565ce36ca7b57f5a18b78f4f1b0f72d9d/shapely-2.1.2.tar.gz", hash = "sha256:2ed4ecb28320a433db18a5bf029986aa8afcfd740745e78847e330d5d94922a9", size = 315489 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/24/c0/f3b6453cf2dfa99adc0ba6675f9aaff9e526d2224cbd7ff9c1a879238693/shapely-2.1.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fe2533caae6a91a543dec62e8360fe86ffcdc42a7c55f9dfd0128a977a896b94", size = 1833550 }, - { url = "https://files.pythonhosted.org/packages/86/07/59dee0bc4b913b7ab59ab1086225baca5b8f19865e6101db9ebb7243e132/shapely-2.1.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ba4d1333cc0bc94381d6d4308d2e4e008e0bd128bdcff5573199742ee3634359", size = 1643556 }, - { url = "https://files.pythonhosted.org/packages/26/29/a5397e75b435b9895cd53e165083faed5d12fd9626eadec15a83a2411f0f/shapely-2.1.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0bd308103340030feef6c111d3eb98d50dc13feea33affc8a6f9fa549e9458a3", size = 2988308 }, - { url = "https://files.pythonhosted.org/packages/b9/37/e781683abac55dde9771e086b790e554811a71ed0b2b8a1e789b7430dd44/shapely-2.1.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1e7d4d7ad262a48bb44277ca12c7c78cb1b0f56b32c10734ec9a1d30c0b0c54b", size = 3099844 }, - { url = "https://files.pythonhosted.org/packages/d8/f3/9876b64d4a5a321b9dc482c92bb6f061f2fa42131cba643c699f39317cb9/shapely-2.1.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e9eddfe513096a71896441a7c37db72da0687b34752c4e193577a145c71736fc", size = 3988842 }, - { url = "https://files.pythonhosted.org/packages/d1/a0/704c7292f7014c7e74ec84eddb7b109e1fbae74a16deae9c1504b1d15565/shapely-2.1.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:980c777c612514c0cf99bc8a9de6d286f5e186dcaf9091252fcd444e5638193d", size = 4152714 }, - { url = "https://files.pythonhosted.org/packages/53/46/319c9dc788884ad0785242543cdffac0e6530e4d0deb6c4862bc4143dcf3/shapely-2.1.2-cp312-cp312-win32.whl", hash = "sha256:9111274b88e4d7b54a95218e243282709b330ef52b7b86bc6aaf4f805306f454", size = 1542745 }, - { url = "https://files.pythonhosted.org/packages/ec/bf/cb6c1c505cb31e818e900b9312d514f381fbfa5c4363edfce0fcc4f8c1a4/shapely-2.1.2-cp312-cp312-win_amd64.whl", hash = "sha256:743044b4cfb34f9a67205cee9279feaf60ba7d02e69febc2afc609047cb49179", size = 1722861 }, - { url = "https://files.pythonhosted.org/packages/c3/90/98ef257c23c46425dc4d1d31005ad7c8d649fe423a38b917db02c30f1f5a/shapely-2.1.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b510dda1a3672d6879beb319bc7c5fd302c6c354584690973c838f46ec3e0fa8", size = 1832644 }, - { url = "https://files.pythonhosted.org/packages/6d/ab/0bee5a830d209adcd3a01f2d4b70e587cdd9fd7380d5198c064091005af8/shapely-2.1.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:8cff473e81017594d20ec55d86b54bc635544897e13a7cfc12e36909c5309a2a", size = 1642887 }, - { url = "https://files.pythonhosted.org/packages/2d/5e/7d7f54ba960c13302584c73704d8c4d15404a51024631adb60b126a4ae88/shapely-2.1.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:fe7b77dc63d707c09726b7908f575fc04ff1d1ad0f3fb92aec212396bc6cfe5e", size = 2970931 }, - { url = "https://files.pythonhosted.org/packages/f2/a2/83fc37e2a58090e3d2ff79175a95493c664bcd0b653dd75cb9134645a4e5/shapely-2.1.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7ed1a5bbfb386ee8332713bf7508bc24e32d24b74fc9a7b9f8529a55db9f4ee6", size = 3082855 }, - { url = "https://files.pythonhosted.org/packages/44/2b/578faf235a5b09f16b5f02833c53822294d7f21b242f8e2d0cf03fb64321/shapely-2.1.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a84e0582858d841d54355246ddfcbd1fce3179f185da7470f41ce39d001ee1af", size = 3979960 }, - { url = "https://files.pythonhosted.org/packages/4d/04/167f096386120f692cc4ca02f75a17b961858997a95e67a3cb6a7bbd6b53/shapely-2.1.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:dc3487447a43d42adcdf52d7ac73804f2312cbfa5d433a7d2c506dcab0033dfd", size = 4142851 }, - { url = "https://files.pythonhosted.org/packages/48/74/fb402c5a6235d1c65a97348b48cdedb75fb19eca2b1d66d04969fc1c6091/shapely-2.1.2-cp313-cp313-win32.whl", hash = "sha256:9c3a3c648aedc9f99c09263b39f2d8252f199cb3ac154fadc173283d7d111350", size = 1541890 }, - { url = "https://files.pythonhosted.org/packages/41/47/3647fe7ad990af60ad98b889657a976042c9988c2807cf322a9d6685f462/shapely-2.1.2-cp313-cp313-win_amd64.whl", hash = "sha256:ca2591bff6645c216695bdf1614fca9c82ea1144d4a7591a466fef64f28f0715", size = 1722151 }, - { url = "https://files.pythonhosted.org/packages/3c/49/63953754faa51ffe7d8189bfbe9ca34def29f8c0e34c67cbe2a2795f269d/shapely-2.1.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:2d93d23bdd2ed9dc157b46bc2f19b7da143ca8714464249bef6771c679d5ff40", size = 1834130 }, - { url = "https://files.pythonhosted.org/packages/7f/ee/dce001c1984052970ff60eb4727164892fb2d08052c575042a47f5a9e88f/shapely-2.1.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:01d0d304b25634d60bd7cf291828119ab55a3bab87dc4af1e44b07fb225f188b", size = 1642802 }, - { url = "https://files.pythonhosted.org/packages/da/e7/fc4e9a19929522877fa602f705706b96e78376afb7fad09cad5b9af1553c/shapely-2.1.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8d8382dd120d64b03698b7298b89611a6ea6f55ada9d39942838b79c9bc89801", size = 3018460 }, - { url = "https://files.pythonhosted.org/packages/a1/18/7519a25db21847b525696883ddc8e6a0ecaa36159ea88e0fef11466384d0/shapely-2.1.2-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:19efa3611eef966e776183e338b2d7ea43569ae99ab34f8d17c2c054d3205cc0", size = 3095223 }, - { url = "https://files.pythonhosted.org/packages/48/de/b59a620b1f3a129c3fecc2737104a0a7e04e79335bd3b0a1f1609744cf17/shapely-2.1.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:346ec0c1a0fcd32f57f00e4134d1200e14bf3f5ae12af87ba83ca275c502498c", size = 4030760 }, - { url = "https://files.pythonhosted.org/packages/96/b3/c6655ee7232b417562bae192ae0d3ceaadb1cc0ffc2088a2ddf415456cc2/shapely-2.1.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6305993a35989391bd3476ee538a5c9a845861462327efe00dd11a5c8c709a99", size = 4170078 }, - { url = "https://files.pythonhosted.org/packages/a0/8e/605c76808d73503c9333af8f6cbe7e1354d2d238bda5f88eea36bfe0f42a/shapely-2.1.2-cp313-cp313t-win32.whl", hash = "sha256:c8876673449f3401f278c86eb33224c5764582f72b653a415d0e6672fde887bf", size = 1559178 }, - { url = "https://files.pythonhosted.org/packages/36/f7/d317eb232352a1f1444d11002d477e54514a4a6045536d49d0c59783c0da/shapely-2.1.2-cp313-cp313t-win_amd64.whl", hash = "sha256:4a44bc62a10d84c11a7a3d7c1c4fe857f7477c3506e24c9062da0db0ae0c449c", size = 1739756 }, - { url = "https://files.pythonhosted.org/packages/fc/c4/3ce4c2d9b6aabd27d26ec988f08cb877ba9e6e96086eff81bfea93e688c7/shapely-2.1.2-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:9a522f460d28e2bf4e12396240a5fc1518788b2fcd73535166d748399ef0c223", size = 1831290 }, - { url = "https://files.pythonhosted.org/packages/17/b9/f6ab8918fc15429f79cb04afa9f9913546212d7fb5e5196132a2af46676b/shapely-2.1.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1ff629e00818033b8d71139565527ced7d776c269a49bd78c9df84e8f852190c", size = 1641463 }, - { url = "https://files.pythonhosted.org/packages/a5/57/91d59ae525ca641e7ac5551c04c9503aee6f29b92b392f31790fcb1a4358/shapely-2.1.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f67b34271dedc3c653eba4e3d7111aa421d5be9b4c4c7d38d30907f796cb30df", size = 2970145 }, - { url = "https://files.pythonhosted.org/packages/8a/cb/4948be52ee1da6927831ab59e10d4c29baa2a714f599f1f0d1bc747f5777/shapely-2.1.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:21952dc00df38a2c28375659b07a3979d22641aeb104751e769c3ee825aadecf", size = 3073806 }, - { url = "https://files.pythonhosted.org/packages/03/83/f768a54af775eb41ef2e7bec8a0a0dbe7d2431c3e78c0a8bdba7ab17e446/shapely-2.1.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:1f2f33f486777456586948e333a56ae21f35ae273be99255a191f5c1fa302eb4", size = 3980803 }, - { url = "https://files.pythonhosted.org/packages/9f/cb/559c7c195807c91c79d38a1f6901384a2878a76fbdf3f1048893a9b7534d/shapely-2.1.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:cf831a13e0d5a7eb519e96f58ec26e049b1fad411fc6fc23b162a7ce04d9cffc", size = 4133301 }, - { url = "https://files.pythonhosted.org/packages/80/cd/60d5ae203241c53ef3abd2ef27c6800e21afd6c94e39db5315ea0cbafb4a/shapely-2.1.2-cp314-cp314-win32.whl", hash = "sha256:61edcd8d0d17dd99075d320a1dd39c0cb9616f7572f10ef91b4b5b00c4aeb566", size = 1583247 }, - { url = "https://files.pythonhosted.org/packages/74/d4/135684f342e909330e50d31d441ace06bf83c7dc0777e11043f99167b123/shapely-2.1.2-cp314-cp314-win_amd64.whl", hash = "sha256:a444e7afccdb0999e203b976adb37ea633725333e5b119ad40b1ca291ecf311c", size = 1773019 }, - { url = "https://files.pythonhosted.org/packages/a3/05/a44f3f9f695fa3ada22786dc9da33c933da1cbc4bfe876fe3a100bafe263/shapely-2.1.2-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:5ebe3f84c6112ad3d4632b1fd2290665aa75d4cef5f6c5d77c4c95b324527c6a", size = 1834137 }, - { url = "https://files.pythonhosted.org/packages/52/7e/4d57db45bf314573427b0a70dfca15d912d108e6023f623947fa69f39b72/shapely-2.1.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5860eb9f00a1d49ebb14e881f5caf6c2cf472c7fd38bd7f253bbd34f934eb076", size = 1642884 }, - { url = "https://files.pythonhosted.org/packages/5a/27/4e29c0a55d6d14ad7422bf86995d7ff3f54af0eba59617eb95caf84b9680/shapely-2.1.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b705c99c76695702656327b819c9660768ec33f5ce01fa32b2af62b56ba400a1", size = 3018320 }, - { url = "https://files.pythonhosted.org/packages/9f/bb/992e6a3c463f4d29d4cd6ab8963b75b1b1040199edbd72beada4af46bde5/shapely-2.1.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:a1fd0ea855b2cf7c9cddaf25543e914dd75af9de08785f20ca3085f2c9ca60b0", size = 3094931 }, - { url = "https://files.pythonhosted.org/packages/9c/16/82e65e21070e473f0ed6451224ed9fa0be85033d17e0c6e7213a12f59d12/shapely-2.1.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:df90e2db118c3671a0754f38e36802db75fe0920d211a27481daf50a711fdf26", size = 4030406 }, - { url = "https://files.pythonhosted.org/packages/7c/75/c24ed871c576d7e2b64b04b1fe3d075157f6eb54e59670d3f5ffb36e25c7/shapely-2.1.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:361b6d45030b4ac64ddd0a26046906c8202eb60d0f9f53085f5179f1d23021a0", size = 4169511 }, - { url = "https://files.pythonhosted.org/packages/b1/f7/b3d1d6d18ebf55236eec1c681ce5e665742aab3c0b7b232720a7d43df7b6/shapely-2.1.2-cp314-cp314t-win32.whl", hash = "sha256:b54df60f1fbdecc8ebc2c5b11870461a6417b3d617f555e5033f1505d36e5735", size = 1602607 }, - { url = "https://files.pythonhosted.org/packages/9a/f6/f09272a71976dfc138129b8faf435d064a811ae2f708cb147dccdf7aacdb/shapely-2.1.2-cp314-cp314t-win_amd64.whl", hash = "sha256:0036ac886e0923417932c2e6369b6c52e38e0ff5d9120b90eef5cd9a5fc5cae9", size = 1796682 }, +sdist = { url = "https://files.pythonhosted.org/packages/f3/ab/924b6e202f796d270a3041a230151f7908db5ea48c74effe6f8023e9bd05/shapely-2.2.0.tar.gz", hash = "sha256:e8865e553d874a1ec4a032057ea81fca9def37b188cd8fb550af3b3480b3f88c", size = 380326, upload-time = "2026-10-07T09:18:01.001Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/63/af/ac371511dbf0f0a172544a647246f746ceb2b5d12b3e1238224bec3a3796/shapely-2.2.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:626fe4c0d32860a98e75ecffabf5a62254c6168eac96b633ad313cd62a38bb2b", size = 1785072, upload-time = "2026-10-07T09:16:13.707Z" }, + { url = "https://files.pythonhosted.org/packages/02/96/5c48977168f32de067bfafce7f584dd04becf152152bf088636cc034828e/shapely-2.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c36ccbff5c3374c349c370bfdac22c7676b268b4a707c98e9031f498965aa02d", size = 1584868, upload-time = "2026-10-07T09:16:15.795Z" }, + { url = "https://files.pythonhosted.org/packages/ae/34/b90723043091161f636fde302e850583dcebd610e798f9edd6e3245f5a2a/shapely-2.2.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a9a380624cdd7a7e661bf15a4d1625082766f07ccd2540cb0a9e0df1ad4f6c11", size = 2176960, upload-time = "2026-10-07T09:16:17.965Z" }, + { url = "https://files.pythonhosted.org/packages/ad/87/6842e4c996914a47b6bfd3ef14a543e67e993f86a9ea5679c34efc9314ab/shapely-2.2.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:650a5f4d8a8e3c96982079d8c99b6ddbe6602bbd1e34c75c2b95dbc0d28ac997", size = 2300970, upload-time = "2026-10-07T09:16:20.191Z" }, + { url = "https://files.pythonhosted.org/packages/54/ea/06295d871f0befc3eafa96b7bb87a31e848f042d03ba80c5938b12eb68dd/shapely-2.2.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a851e077f0f02a3383923e02eca5447a29ddbf234e39593b91c8b7ac75218133", size = 3244534, upload-time = "2026-10-07T09:16:22.36Z" }, + { url = "https://files.pythonhosted.org/packages/8b/2a/ab017941b2014f29b8fca233e3f5a75e5fe109a1f27d316ba85d95a515ff/shapely-2.2.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:dc5faa593948aa64d9afae48331b80f43f7aacc68425d99064a4d6772f53f1ad", size = 3391336, upload-time = "2026-10-07T09:16:24.226Z" }, + { url = "https://files.pythonhosted.org/packages/63/ee/4ccaa854f3b7ecd9181920b913c2d2f4b15053331457b7f615139a9774cc/shapely-2.2.0-cp312-cp312-win32.whl", hash = "sha256:da47a0cc9e630b4dff0db46e8972b29d2d27f337425ce9d4c77fd046ce48eabd", size = 1617174, upload-time = "2026-10-07T09:16:26.277Z" }, + { url = "https://files.pythonhosted.org/packages/f6/26/ba9192f0a72c830aa8cc1c61e207ada57cc54b7de81668b1836f575ee717/shapely-2.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:90895df6542ae039fc6557dec6194e3509e883fbd6f5788e3c3e7a38fe46b257", size = 1791280, upload-time = "2026-10-07T09:16:27.94Z" }, + { url = "https://files.pythonhosted.org/packages/8e/92/4e4f93d7b7db9af2a77126c6c96af2c0c422635e2276f5abb533f67b42df/shapely-2.2.0-cp312-cp312-win_arm64.whl", hash = "sha256:7cf5b3a801b9b4febf774efde2e31280e647388deae8452693d8e6420b3a1ff2", size = 1879393, upload-time = "2026-10-07T09:16:29.684Z" }, + { url = "https://files.pythonhosted.org/packages/28/b6/9ba2a62ab6e831b911a248f0752f0f4120be7637a33ab33d8649ed4ede4d/shapely-2.2.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c037369c35510f51100dd6d386ee3203bac32f164d53e27ca12c3cea5bb643b1", size = 1785102, upload-time = "2026-10-07T09:16:31.662Z" }, + { url = "https://files.pythonhosted.org/packages/e9/8a/d7c11c2d1beef99a4df4183b255ea2d8669f3bcf7d049bb17fe56bf7cd72/shapely-2.2.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d75957716368f919c63016dae1977a0d007e15f06861cd178701edb91b08d2b0", size = 1584542, upload-time = "2026-10-07T09:16:33.413Z" }, + { url = "https://files.pythonhosted.org/packages/f0/bd/21ed8bfd340455ede2df0d25d896acf4e4bab2ed9b582bb67389e97b2250/shapely-2.2.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4ed79beb8d4b6cc7c67780fd381feed25848a5f9b8a2385ac5711eccd115647a", size = 2175369, upload-time = "2026-10-07T09:16:35.507Z" }, + { url = "https://files.pythonhosted.org/packages/5d/df/d67d5c56efddf9b8c2e6913c917c8eca78fdd9e7c6fb73b541dd56b1ce1d/shapely-2.2.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f340e7f99aaee3df5acd6b247cddf723051a7c93d1e1ef09025b80d84e4c0ded", size = 2299018, upload-time = "2026-10-07T09:16:37.246Z" }, + { url = "https://files.pythonhosted.org/packages/58/dd/6e2b5ac83edb4afb540925092feee393a15970216e711a8b211f5abe4478/shapely-2.2.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:17434cb9819c9974c3331333a3b878fa5bf8f85dd69cc3fb7ff5d260f6fbc102", size = 3243663, upload-time = "2026-10-07T09:16:39.093Z" }, + { url = "https://files.pythonhosted.org/packages/0c/dc/7c0461549c212b0d663f99383fe846eb082f4b06cd1fba3bb786b9927d22/shapely-2.2.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b2338ac40e6652c8bfb857936ea9be9a16f43a362c6f67eb3bad741b05fd5683", size = 3388136, upload-time = "2026-10-07T09:16:41.287Z" }, + { url = "https://files.pythonhosted.org/packages/1c/58/ac8f7de528c125ab41a001523ada72e95e2d5f746917487e723b25e1c5c4/shapely-2.2.0-cp313-cp313-win32.whl", hash = "sha256:40871d7135cd723f965d200181aa28418e9ec029fd85bdd010488259d1c01906", size = 1616372, upload-time = "2026-10-07T09:16:43.094Z" }, + { url = "https://files.pythonhosted.org/packages/25/ed/7fcd625c9796e61d815ca9545d4e44a16f075f83869c1532206de88f23f1/shapely-2.2.0-cp313-cp313-win_amd64.whl", hash = "sha256:1eaa2cb64cdedaf65d6bc86f2819c9cd7d6d68f969aa3ebfdc93743ab581f437", size = 1790191, upload-time = "2026-10-07T09:16:44.852Z" }, + { url = "https://files.pythonhosted.org/packages/23/c9/947fcd5665e1945dd54f6e8890bc6dd04613dd169a5fbb4ba7497754b3a8/shapely-2.2.0-cp313-cp313-win_arm64.whl", hash = "sha256:f79b3b34ad2d067207f21f821489c720b14ce40f3bfda931987a193165f80133", size = 1878351, upload-time = "2026-10-07T09:16:46.656Z" }, + { url = "https://files.pythonhosted.org/packages/eb/a9/83531b7a5349568c507c5701179b1727e21f238af318ac55ba8d0800e764/shapely-2.2.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:000c0ce2a3ba49427e6288b7add9de5d8525d4e65d6ebc8840103040d4d57b86", size = 1785489, upload-time = "2026-10-07T09:16:48.795Z" }, + { url = "https://files.pythonhosted.org/packages/a2/c8/e8117528eb96feafcd5fced50a939ecfdc6242b3782959d202755536bb9e/shapely-2.2.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0a63e6b68ec785ef3aae3935c4aa9fb8edccced94e23c79d5d85276442c60859", size = 1585345, upload-time = "2026-10-07T09:16:50.527Z" }, + { url = "https://files.pythonhosted.org/packages/53/66/289a7055e3a383680771ba59764712db822fa406bbf52971a76e51d160d6/shapely-2.2.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:770d4db5cf0bfeed931a1c4aaf4f4eadad0f43f5fc72c27c88fe1f07904ae767", size = 2177801, upload-time = "2026-10-07T09:16:52.393Z" }, + { url = "https://files.pythonhosted.org/packages/d2/54/8f3d60050a703dcab48f7991ec4fb111772731d20ce6a1bf649465033476/shapely-2.2.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:74f4313af38d6e49ea83532d6cedfb4fe5e6c5485d7c40202bd61b19d6ff09bf", size = 2299593, upload-time = "2026-10-07T09:16:54.462Z" }, + { url = "https://files.pythonhosted.org/packages/cf/ec/3389afd3919494f479347a83db7b5672c3c73a339173426a902d9d295152/shapely-2.2.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:9ee11aeba1759d15a525ded58e17916d3edfa60d52110fd8df6a7609a871f066", size = 3246048, upload-time = "2026-10-07T09:16:56.477Z" }, + { url = "https://files.pythonhosted.org/packages/6f/b5/d0d4e3eaf232425a11be7af1a24aaf9c6792bc7a17dd17d722e42892f91a/shapely-2.2.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:24b175c570efc91d1180ac6cd527dc80e863bb7de37f8b2771703d822c65e023", size = 3389241, upload-time = "2026-10-07T09:16:59.055Z" }, + { url = "https://files.pythonhosted.org/packages/3a/3d/b9626c58982a3cf4278ad978644c7a315968c7e03cd7a8a6aaadde911074/shapely-2.2.0-cp314-cp314-win32.whl", hash = "sha256:4e5830637c080bdc646c5982ad6f7cc296b93038879649f7a6acd8e0f1c4db04", size = 1658287, upload-time = "2026-10-07T09:17:00.857Z" }, + { url = "https://files.pythonhosted.org/packages/0a/c1/b3acc1c764dff7e47485dd47fc7ff5fdc230257f02006fec049bf2b9449c/shapely-2.2.0-cp314-cp314-win_amd64.whl", hash = "sha256:48dd1d961391f314ab7fa8812c86ca2a727bee2bdca1478730eacaea007da18e", size = 1843568, upload-time = "2026-10-07T09:17:02.662Z" }, + { url = "https://files.pythonhosted.org/packages/53/12/3b4977cec6bbaee5d4538d8fbd8ffc75bf764fe3519aafb09d5eefb41daa/shapely-2.2.0-cp314-cp314-win_arm64.whl", hash = "sha256:c4127c064bc71f8b7f9b3f341d6627ed39977fd0b61a17c68d09179f5e0089ae", size = 1936825, upload-time = "2026-10-07T09:17:04.886Z" }, + { url = "https://files.pythonhosted.org/packages/cb/0c/8a8f59e344dc3b53c77d99e35e3eb81b8c46cceeb3ffcd44b41ed8d17d7e/shapely-2.2.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:c2915ae1b858e73d5832be7fb5e89497cc5140fa505da40a45223029dc6deace", size = 1793948, upload-time = "2026-10-07T09:17:07.07Z" }, + { url = "https://files.pythonhosted.org/packages/af/1e/76728b192507909866d7eaa398c9a558d326ca9a7dd14bc929362cce99c9/shapely-2.2.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:74028f468e05e461b30a479b08c1fb5094fa45062abeeec8e7905a6711761436", size = 1596025, upload-time = "2026-10-07T09:17:09.141Z" }, + { url = "https://files.pythonhosted.org/packages/11/be/e4b4219ab6414fe17f60d064693f31d5acd25bd8c98def75c4c2a1108b18/shapely-2.2.0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6ec5178a39803fa8626322f69d298037f182461dd28e3ae96c2c7a4309a6bf30", size = 2177914, upload-time = "2026-10-07T09:17:11.011Z" }, + { url = "https://files.pythonhosted.org/packages/f4/36/c007a564ddfeda1aff3c79435d4beb2c0baf41b37d1ec212269ef62f8da8/shapely-2.2.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:593e51cd04fe1122f1ab3fae87b306c36b2be0184a5e0d9c26849c55ff4580dc", size = 2297494, upload-time = "2026-10-07T09:17:13.089Z" }, + { url = "https://files.pythonhosted.org/packages/cf/74/dd289ba822b8c50a2b47dc70f87a6f4933a6402f5fe4cc5cb999fdf1ea4a/shapely-2.2.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:3575a323b7665d7a2e391b16a626caa6b6f6348f399183aca3fc656febd7cf04", size = 3245678, upload-time = "2026-10-07T09:17:15.165Z" }, + { url = "https://files.pythonhosted.org/packages/04/d8/bd58de9c4f325369bbc7edc4f7cce1a56cfab61e2b1c534176ea58d89db4/shapely-2.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:776cc8571d53e42be8fa6d42ad52a599b8e2186dd0c752922831508099af71e2", size = 3387773, upload-time = "2026-10-07T09:17:17.685Z" }, + { url = "https://files.pythonhosted.org/packages/69/4a/6d6e41cab51bb8aa1256ddc28d94d74d016683312e6e0e874afc8b874f3b/shapely-2.2.0-cp314-cp314t-win32.whl", hash = "sha256:f8cd733a66a2a10f461a70dde9fad7b2b62c6a48c7a66cea57ee6f1cd9f2bd2f", size = 1676626, upload-time = "2026-10-07T09:17:19.523Z" }, + { url = "https://files.pythonhosted.org/packages/22/06/6ab21f86fc08aa95b6eb3dc8f8d64701359ce89aae471c15b896e5be5afe/shapely-2.2.0-cp314-cp314t-win_amd64.whl", hash = "sha256:7f68c1fbacab81c0c066d1c3051eeb0f680b7a7a2c511e741f77741640187896", size = 1868388, upload-time = "2026-10-07T09:17:21.376Z" }, + { url = "https://files.pythonhosted.org/packages/07/85/5c0452ee08cfd72b8945ac26fbd5ae559a7af7184aa989a0d83f68f07cf9/shapely-2.2.0-cp314-cp314t-win_arm64.whl", hash = "sha256:9147ebc3b116a0511dca043937f85caf1a41690815643d5b89c8bc472f51c850", size = 1946897, upload-time = "2026-10-07T09:17:23.413Z" }, + { url = "https://files.pythonhosted.org/packages/1d/d0/c994c26df87119e530b715f7109960036242861dba37db17a1b9f44b6e56/shapely-2.2.0-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:715561ceda03b09ca1c6baf9922179392d8c2bc53a1b877965225f0dfb487a58", size = 1785017, upload-time = "2026-10-07T09:17:25.31Z" }, + { url = "https://files.pythonhosted.org/packages/0b/60/2a8975ee00697cb33b17e140def38f2600323760e52eaa6423183a522f06/shapely-2.2.0-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:556f20346a7d96fefbb71b74640d84ca14041703d60f0d2ff47b29d9b3e0093d", size = 1585001, upload-time = "2026-10-07T09:17:27.622Z" }, + { url = "https://files.pythonhosted.org/packages/26/07/45cd192ede49dd821c804fd53177ba5fa2739867ceeb542cfeb259ca4314/shapely-2.2.0-cp315-cp315-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ff9e87b534edf35af65758fafb31ad3b797354cba9323899e263f450c69a2ff2", size = 2177659, upload-time = "2026-10-07T09:17:29.501Z" }, + { url = "https://files.pythonhosted.org/packages/f1/7f/55a7f6ae91c10aa58005e985d01756048b6e4ff82e731ea39003e1eeda3e/shapely-2.2.0-cp315-cp315-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fdb599ec540cea5b635ac47bf24fca4cdfd1c39730ffc0b6cf0d2666b0dd9a33", size = 2299128, upload-time = "2026-10-07T09:17:31.352Z" }, + { url = "https://files.pythonhosted.org/packages/58/2f/49eb352f7c0c0c6ec17bc0bee33f9f449d397f8bfc9c2694c384e752f25e/shapely-2.2.0-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:b8cb04906b74db26f848f76744fa995cd6abeae9145d27cc405277de1f949660", size = 3245354, upload-time = "2026-10-07T09:17:33.291Z" }, + { url = "https://files.pythonhosted.org/packages/1a/c6/3f4f736d615013b2c117cec4d716e775659b2452bb039643c0411d131750/shapely-2.2.0-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:d9b11d712ac72f1d869f2b6964dea5bd9f20b89901adcd796d6712496144ab22", size = 3388587, upload-time = "2026-10-07T09:17:35.261Z" }, + { url = "https://files.pythonhosted.org/packages/27/ea/cb26677d3e34e1663a00a1395fc17c4a2acb5fef638297f94d5cdb9a63f0/shapely-2.2.0-cp315-cp315-win32.whl", hash = "sha256:1af6935acde1db0b6a1bcbea30cbad5ae900723dfd398367ae1488470dc53667", size = 1658324, upload-time = "2026-10-07T09:17:37.362Z" }, + { url = "https://files.pythonhosted.org/packages/14/7d/351c43d812b94197fe279dc3e0defc6886e4be5a144fc191b8635b0fd839/shapely-2.2.0-cp315-cp315-win_amd64.whl", hash = "sha256:96e5101ad2d73df869255bae4c55537f372d32066e2328c376e09841f0f66800", size = 1843506, upload-time = "2026-10-07T09:17:39.336Z" }, + { url = "https://files.pythonhosted.org/packages/82/de/9b62659a23fe8b9d590cf8e4698051d8eab5c5cdddfd86c531019e9d0d2d/shapely-2.2.0-cp315-cp315-win_arm64.whl", hash = "sha256:446b2d5a323bddd1c2a27f41325fdb3a3e8e33c1f8f0f840bdb63e8c1515b29e", size = 1936521, upload-time = "2026-10-07T09:17:41.121Z" }, + { url = "https://files.pythonhosted.org/packages/91/c9/5e16b2ac8853ec587406496a85cbeb1f3465b53c5e8bf0f222b4a39a44a1/shapely-2.2.0-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:c88b21a0e9599ebb741e08f71a95c8f07a434af909efb088828a9874d234d06d", size = 1792605, upload-time = "2026-10-07T09:17:43.211Z" }, + { url = "https://files.pythonhosted.org/packages/19/87/ebaf70f25565ed82d75ab84b1d0eb3a8b803302020c16bb98234f67c0477/shapely-2.2.0-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:cbe184e1946cfe115a9dfeadd2effd88ab4a237ab1a4335d106defa80fbc2d82", size = 1594776, upload-time = "2026-10-07T09:17:44.972Z" }, + { url = "https://files.pythonhosted.org/packages/e6/a1/e6210ff8aa7d065c2a94d2a3486342675bcb3f4d740ec686a414ace0c3b9/shapely-2.2.0-cp315-cp315t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8bc985ad731da2f2cedde9c3cfb3c3d946fe6fc63d2ca557673dc33dd1e389b9", size = 2175890, upload-time = "2026-10-07T09:17:46.92Z" }, + { url = "https://files.pythonhosted.org/packages/96/19/4df2a474cdc24beb06ef557d433dbe936fa274600d4846ea19877ae47094/shapely-2.2.0-cp315-cp315t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c3caa4c6308e7eaf18f4661134a1575eb290a56df78d0ae1b02f919a4cc7bd9d", size = 2296432, upload-time = "2026-10-07T09:17:48.895Z" }, + { url = "https://files.pythonhosted.org/packages/c5/29/2b38bbe8b9b2dba0838b7718819e8751490e3d946cff232049d0e707f98e/shapely-2.2.0-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:2fd87e55d7a7d310553b527378545cdc6ef8702473ed9294926b892c3cfb2ba0", size = 3243397, upload-time = "2026-10-07T09:17:50.885Z" }, + { url = "https://files.pythonhosted.org/packages/e8/1c/5430d8d6559c944ac673984f25989121abfd2bac4254ec3fff1d7673b7bc/shapely-2.2.0-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:7416db8ff3a1003687d4118e741343b3cf9ac2a4a925a59d44d98a865ac4e9e7", size = 3386299, upload-time = "2026-10-07T09:17:52.969Z" }, + { url = "https://files.pythonhosted.org/packages/5b/00/feaeb392e96063717387ec09e6c8e38b29fe4088ddfe976470255c69792e/shapely-2.2.0-cp315-cp315t-win32.whl", hash = "sha256:778421a19085bef1fb38bc0699db1ee9b08fdd0e30a8768788d601a4371f2de0", size = 1675823, upload-time = "2026-10-07T09:17:55.022Z" }, + { url = "https://files.pythonhosted.org/packages/0e/30/0b77618f33fecbc2209c767cecca58bbf83947fc0018571542bf2b859865/shapely-2.2.0-cp315-cp315t-win_amd64.whl", hash = "sha256:287ec7602f7a114b862ae0123880e57160cebe059843a4c7028aaee9e74287f6", size = 1866197, upload-time = "2026-10-07T09:17:56.991Z" }, + { url = "https://files.pythonhosted.org/packages/06/2b/9837e94408335520f778b09067fced0a5d4b2feffa5ebf7119412eb18b00/shapely-2.2.0-cp315-cp315t-win_arm64.whl", hash = "sha256:e414c78bc81aadd76a429111a350f4ef3d05fc13019805617b524951258468e5", size = 1945749, upload-time = "2026-10-07T09:17:59.116Z" }, ] [[package]] name = "six" version = "1.17.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031 } +sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload-time = "2024-12-04T17:35:28.174Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050 }, + { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, ] [[package]] name = "sortedcontainers" version = "2.4.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e8/c4/ba2f8066cceb6f23394729afe52f3bf7adec04bf9ed2c820b39e19299111/sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88", size = 30594 } +sdist = { url = "https://files.pythonhosted.org/packages/e8/c4/ba2f8066cceb6f23394729afe52f3bf7adec04bf9ed2c820b39e19299111/sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88", size = 30594, upload-time = "2021-05-16T22:03:42.897Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0", size = 29575 }, + { url = "https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0", size = 29575, upload-time = "2021-05-16T22:03:41.177Z" }, ] [[package]] @@ -2852,221 +2968,317 @@ dependencies = [ { name = "executing" }, { name = "pure-eval" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/28/e3/55dcc2cfbc3ca9c29519eb6884dd1415ecb53b0e934862d3559ddcb7e20b/stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9", size = 44707 } +sdist = { url = "https://files.pythonhosted.org/packages/28/e3/55dcc2cfbc3ca9c29519eb6884dd1415ecb53b0e934862d3559ddcb7e20b/stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9", size = 44707, upload-time = "2023-09-30T13:58:05.479Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695", size = 24521 }, + { url = "https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695", size = 24521, upload-time = "2023-09-30T13:58:03.53Z" }, ] [[package]] name = "statsmodels" -version = "0.14.6" +version = "0.15.0" source = { registry = "https://pypi.org/simple" } dependencies = [ + { name = "formulaic" }, { name = "numpy" }, { name = "packaging" }, { name = "pandas" }, { name = "patsy" }, { name = "scipy" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/0d/81/e8d74b34f85285f7335d30c5e3c2d7c0346997af9f3debf9a0a9a63de184/statsmodels-0.14.6.tar.gz", hash = "sha256:4d17873d3e607d398b85126cd4ed7aad89e4e9d89fc744cdab1af3189a996c2a", size = 20689085 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/25/ce/308e5e5da57515dd7cab3ec37ea2d5b8ff50bef1fcc8e6d31456f9fae08e/statsmodels-0.14.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fe76140ae7adc5ff0e60a3f0d56f4fffef484efa803c3efebf2fcd734d72ecb5", size = 10091932 }, - { url = "https://files.pythonhosted.org/packages/05/30/affbabf3c27fb501ec7b5808230c619d4d1a4525c07301074eb4bda92fa9/statsmodels-0.14.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:26d4f0ed3b31f3c86f83a92f5c1f5cbe63fc992cd8915daf28ca49be14463a1c", size = 9997345 }, - { url = "https://files.pythonhosted.org/packages/48/f5/3a73b51e6450c31652c53a8e12e24eac64e3824be816c0c2316e7dbdcb7d/statsmodels-0.14.6-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d8c00a42863e4f4733ac9d078bbfad816249c01451740e6f5053ecc7db6d6368", size = 10058649 }, - { url = "https://files.pythonhosted.org/packages/81/68/dddd76117df2ef14c943c6bbb6618be5c9401280046f4ddfc9fb4596a1b8/statsmodels-0.14.6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:19b58cf7474aa9e7e3b0771a66537148b2df9b5884fbf156096c0e6c1ff0469d", size = 10339446 }, - { url = "https://files.pythonhosted.org/packages/56/4a/dce451c74c4050535fac1ec0c14b80706d8fc134c9da22db3c8a0ec62c33/statsmodels-0.14.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:81e7dcc5e9587f2567e52deaff5220b175bf2f648951549eae5fc9383b62bc37", size = 10368705 }, - { url = "https://files.pythonhosted.org/packages/60/15/3daba2df40be8b8a9a027d7f54c8dedf24f0d81b96e54b52293f5f7e3418/statsmodels-0.14.6-cp312-cp312-win_amd64.whl", hash = "sha256:b5eb07acd115aa6208b4058211138393a7e6c2cf12b6f213ede10f658f6a714f", size = 9543991 }, - { url = "https://files.pythonhosted.org/packages/81/59/a5aad5b0cc266f5be013db8cde563ac5d2a025e7efc0c328d83b50c72992/statsmodels-0.14.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:47ee7af083623d2091954fa71c7549b8443168f41b7c5dce66510274c50fd73e", size = 10072009 }, - { url = "https://files.pythonhosted.org/packages/53/dd/d8cfa7922fc6dc3c56fa6c59b348ea7de829a94cd73208c6f8202dd33f17/statsmodels-0.14.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:aa60d82e29fcd0a736e86feb63a11d2380322d77a9369a54be8b0965a3985f71", size = 9980018 }, - { url = "https://files.pythonhosted.org/packages/ee/77/0ec96803eba444efd75dba32f2ef88765ae3e8f567d276805391ec2c98c6/statsmodels-0.14.6-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:89ee7d595f5939cc20bf946faedcb5137d975f03ae080f300ebb4398f16a5bd4", size = 10060269 }, - { url = "https://files.pythonhosted.org/packages/10/b9/fd41f1f6af13a1a1212a06bb377b17762feaa6d656947bf666f76300fc05/statsmodels-0.14.6-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:730f3297b26749b216a06e4327fe0be59b8d05f7d594fb6caff4287b69654589", size = 10324155 }, - { url = "https://files.pythonhosted.org/packages/ee/0f/a6900e220abd2c69cd0a07e3ad26c71984be6061415a60e0f17b152ecf08/statsmodels-0.14.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f1c08befa85e93acc992b72a390ddb7bd876190f1360e61d10cf43833463bc9c", size = 10349765 }, - { url = "https://files.pythonhosted.org/packages/98/08/b79f0c614f38e566eebbdcff90c0bcacf3c6ba7a5bbb12183c09c29ca400/statsmodels-0.14.6-cp313-cp313-win_amd64.whl", hash = "sha256:8021271a79f35b842c02a1794465a651a9d06ec2080f76ebc3b7adce77d08233", size = 9540043 }, - { url = "https://files.pythonhosted.org/packages/71/de/09540e870318e0c7b58316561d417be45eff731263b4234fdd2eee3511a8/statsmodels-0.14.6-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:00781869991f8f02ad3610da6627fd26ebe262210287beb59761982a8fa88cae", size = 10069403 }, - { url = "https://files.pythonhosted.org/packages/ab/f0/63c1bfda75dc53cee858006e1f46bd6d6f883853bea1b97949d0087766ca/statsmodels-0.14.6-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:73f305fbf31607b35ce919fae636ab8b80d175328ed38fdc6f354e813b86ee37", size = 9989253 }, - { url = "https://files.pythonhosted.org/packages/c1/98/b0dfb4f542b2033a3341aa5f1bdd97024230a4ad3670c5b0839d54e3dcab/statsmodels-0.14.6-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e443e7077a6e2d3faeea72f5a92c9f12c63722686eb80bb40a0f04e4a7e267ad", size = 10090802 }, - { url = "https://files.pythonhosted.org/packages/34/0e/2408735aca9e764643196212f9069912100151414dd617d39ffc72d77eee/statsmodels-0.14.6-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3414e40c073d725007a6603a18247ab7af3467e1af4a5e5a24e4c27bc26673b4", size = 10337587 }, - { url = "https://files.pythonhosted.org/packages/0f/36/4d44f7035ab3c0b2b6a4c4ebb98dedf36246ccbc1b3e2f51ebcd7ac83abb/statsmodels-0.14.6-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:a518d3f9889ef920116f9fa56d0338069e110f823926356946dae83bc9e33e19", size = 10363350 }, - { url = "https://files.pythonhosted.org/packages/26/33/f1652d0c59fa51de18492ee2345b65372550501ad061daa38f950be390b6/statsmodels-0.14.6-cp314-cp314-win_amd64.whl", hash = "sha256:151b73e29f01fe619dbce7f66d61a356e9d1fe5e906529b78807df9189c37721", size = 9588010 }, +sdist = { url = "https://files.pythonhosted.org/packages/a8/1f/a3cbf6ed7cf6286afec694bfef561f3e51483197716717fb8476f1f0c50e/statsmodels-0.15.0.tar.gz", hash = "sha256:5d257fe58d0772bc46a557880ca78e2a8e07fec7bfd9d11074aef8e33e1aecbc", size = 15736853, upload-time = "2026-08-27T10:45:21.988Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1f/17/14121b56377f2881ce94c0d0a01466585468923340d94841337d324f6be6/statsmodels-0.15.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:8e8deb1e3d4ab89fec2a52815f1ec924920c4e0cdb307421a4e47cfed87c03ff", size = 11654329, upload-time = "2026-08-27T15:09:42.207Z" }, + { url = "https://files.pythonhosted.org/packages/ef/f5/6b550b5c936dd9ec5c859477698b4fcbccc826e9a4a4a52847fa51673357/statsmodels-0.15.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c6e20788141df134b83ffb43b8cccf135a876188f84124835c86f011f138adee", size = 11527231, upload-time = "2026-08-27T10:35:42.669Z" }, + { url = "https://files.pythonhosted.org/packages/f0/a5/0e7e87e0dedc68bfeecc24bea92876023db09bac1c0fe50584a7d0819fb5/statsmodels-0.15.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4f90dc4989bd82837c80059fdce132976d4e5a80100119d16e1b00537eb55867", size = 11747428, upload-time = "2026-08-27T14:32:28.987Z" }, + { url = "https://files.pythonhosted.org/packages/41/c7/aeadca282baf51d7b9c135674bac79ded91f4db79c69c188575d22234342/statsmodels-0.15.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c6f2bd48915cc9b3b95c3c7f6ac363b6f8aaa38172962ba5f7f6885f0dfe57f2", size = 12042643, upload-time = "2026-08-27T14:33:06.022Z" }, + { url = "https://files.pythonhosted.org/packages/9c/44/7d3eb3836b3c054280baca7ec91bd12858825de437c6319c1212c2531d94/statsmodels-0.15.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:733887a09ff878a2e29504eda684488b26bd134ba3539ac58d2136a58914c65a", size = 12079497, upload-time = "2026-08-27T14:33:47.147Z" }, + { url = "https://files.pythonhosted.org/packages/03/e3/d863228849da191d37c54bdd72634fbbcfadd12e910e29e4bdca1b952bb6/statsmodels-0.15.0-cp312-cp312-win_amd64.whl", hash = "sha256:ba89eb3ccb1c9c1e400d5081157305495b09350b3a65f2d66d3424ad1d3c4209", size = 11322106, upload-time = "2026-08-27T10:35:58.135Z" }, + { url = "https://files.pythonhosted.org/packages/87/17/fee8cfc100c37b1c553515dbad59607a55085a5b9beac2b008e4c03b6388/statsmodels-0.15.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:09fe34ac80e147cd76cb702ba672559ee3c5dd3ba15c25a232922b46e5ffe70e", size = 11696848, upload-time = "2026-08-27T10:36:13.782Z" }, + { url = "https://files.pythonhosted.org/packages/9e/60/a885751cd3aa796ef94b60f6d3de0c9ace4190feb3e55414ee728d2a0abc/statsmodels-0.15.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0ffe08752f420f12a0b03e8f7d8f3a45417615309b1f37f10561f9a53f044737", size = 11556170, upload-time = "2026-08-27T10:36:29.848Z" }, + { url = "https://files.pythonhosted.org/packages/0f/f4/482701d2dc7540897b13ead827cf8499b11c7325753b8cc4ff1a82c87a18/statsmodels-0.15.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5a7ab98634d47048c6b7c168b3f8f71369e256d7314bc386168526f34c7699d7", size = 11752604, upload-time = "2026-08-27T10:47:50.809Z" }, + { url = "https://files.pythonhosted.org/packages/cc/88/5c8819f232448d52514b76a64cf285bc608cff9179f3eeacf58750612323/statsmodels-0.15.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bcaa1e4499697c4e023e5fa6fb04459a34e4f4a449c45ae441992e933bde24db", size = 12055386, upload-time = "2026-08-27T10:49:13.7Z" }, + { url = "https://files.pythonhosted.org/packages/19/a8/298e9b5c993cad3b58913d61b7e7cb0e2fba12e39d3114cd8484f922a5d1/statsmodels-0.15.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:88dbe345ecf317862481b3c86305f42133082e5b366a3a8cf240a6caac404daf", size = 12088356, upload-time = "2026-08-27T10:48:10.645Z" }, + { url = "https://files.pythonhosted.org/packages/28/f5/386c6cfda27c47df81643dc9466b3e28dc2a82152e524131977275a88e0c/statsmodels-0.15.0-cp313-cp313-pyemscripten_2025_0_wasm32.whl", hash = "sha256:ac9bce461d0c8f529f8ed331a469eaa5dd7c3213c06b62623a2e5438a6383093", size = 9809418, upload-time = "2026-08-27T10:36:50.646Z" }, + { url = "https://files.pythonhosted.org/packages/15/b4/a8a4d89918599309bebfc09a2f793a910279f3900671bc959ac8c810edd1/statsmodels-0.15.0-cp313-cp313-win_amd64.whl", hash = "sha256:081adf7e5f2da63f63cbd90491447de5d4c4c2921f19814f235bcf3e736edd3c", size = 11312877, upload-time = "2026-08-27T10:37:08.325Z" }, + { url = "https://files.pythonhosted.org/packages/7a/79/66b57afdcbf9a8b21b1a8e4414ddb006e819b2a81243cd74c12f3301eca3/statsmodels-0.15.0-cp313-cp313-win_arm64.whl", hash = "sha256:3e5f870037ca154a4d177aeac68704a784b24cf2c45d86b046fc28e37a2a5584", size = 10812282, upload-time = "2026-08-27T10:37:26.708Z" }, + { url = "https://files.pythonhosted.org/packages/86/51/daf737efb6002905bd006d296f9ad031ed3861b640075bde3b734706b49d/statsmodels-0.15.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:04e65ee05475aeceb9cb954cf96c0f9361b9cdfd497b8aae47afbab0c7c786dd", size = 11698848, upload-time = "2026-08-27T10:37:46.312Z" }, + { url = "https://files.pythonhosted.org/packages/22/b1/ca42c91e427db43917d4ab5cc6991e7e50b574bcfdf6c4c8eb9590af71d3/statsmodels-0.15.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1f1443cc1ff7683f3d7a9054e6dccd92040fbd4324616a0b6dbb8af1ce7889fb", size = 11571229, upload-time = "2026-08-27T10:38:04.723Z" }, + { url = "https://files.pythonhosted.org/packages/5b/04/d803e8d014d4643d9c0a5eec78343073fbfff1c1018f776dd416c07fc076/statsmodels-0.15.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a45026596c71afa18543ec2af40b895609c181fc3649433c1cded5ce23ec5cd4", size = 11801588, upload-time = "2026-08-27T15:00:31.603Z" }, + { url = "https://files.pythonhosted.org/packages/fd/44/40d7678858065e9ec8efd9f37f04227b22a66632ba194e4aa43fda023f6a/statsmodels-0.15.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:edd803f4606061af8c7a83e2326ea294cbfa802a908dfbda4a88347301fb6820", size = 12062254, upload-time = "2026-08-27T15:00:49.803Z" }, + { url = "https://files.pythonhosted.org/packages/51/69/16c73c3c09f4b8d85f125d7d3ae0f7092d4736a83d24c0159e4fb21632ec/statsmodels-0.15.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:eb7fc1147cd8d17132190db7a8e63cd76a06145dec502816d8f3c20619923f2b", size = 12101259, upload-time = "2026-08-27T15:01:08.755Z" }, + { url = "https://files.pythonhosted.org/packages/23/4c/1138aad8e3c27ebf941d732788488cce7c28d76404a7b7fc1186faad2890/statsmodels-0.15.0-cp314-cp314-win_amd64.whl", hash = "sha256:c3c1138b4d0e5b0c2387b17dafd2a0fd137c67bd869f70d4ee56feecc918cb0d", size = 11348219, upload-time = "2026-08-27T15:11:12.924Z" }, + { url = "https://files.pythonhosted.org/packages/3a/bd/53546d8c9ab013d9a0513706d2a09a03aff12034e6f898987e8ce0f38257/statsmodels-0.15.0-cp314-cp314-win_arm64.whl", hash = "sha256:74c0b63448f03020cc27a8ee698fbcf2ba91e61a9f9eee7978c0c4ed33a9b17f", size = 10866645, upload-time = "2026-08-27T10:38:20.886Z" }, + { url = "https://files.pythonhosted.org/packages/38/a1/0d38328643d4704c8de7867518c3f52ec145ff62537b2ca1e14cdeecf51b/statsmodels-0.15.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:6197b4cca69fd7bc23ab9430abf1c479764cfe74767467f51964a633dfade7a5", size = 11870287, upload-time = "2026-08-27T10:38:38.271Z" }, + { url = "https://files.pythonhosted.org/packages/28/55/fac7e03895f24a0b4883ff9fc69f9421a5df1b60e7edd7e68d49f4327593/statsmodels-0.15.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5538a734dd28efd450bb38a5d5fc94d13ee709bc497e3e4c0a24b3803e3eac39", size = 11755467, upload-time = "2026-08-27T10:38:54.683Z" }, + { url = "https://files.pythonhosted.org/packages/4c/38/5321b9f6065d1c5861e87853720603d56ae81795a83d3040410ca2684305/statsmodels-0.15.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dde0657d18e322eedb2540a84c0582e97afd0f78c370b45eebb0d4ac228a7a83", size = 11636274, upload-time = "2026-08-27T15:03:41.86Z" }, + { url = "https://files.pythonhosted.org/packages/28/56/c75e984c492509d9ab2ba5f2c0e4eab7177cd2cec424cef9dafb42f0cc70/statsmodels-0.15.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:90e75e726be2c9fc1d1d4c43337503a35864bdf5b4693773a08c6ee92d04a153", size = 11865818, upload-time = "2026-08-27T15:04:01.503Z" }, + { url = "https://files.pythonhosted.org/packages/61/72/9e03975701c808767c19f394f670941a962204a4f6a00eeaf56b560348e8/statsmodels-0.15.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:65e64afc2655a486ea44a5ffe4e2b05ee3abbcb10ea61d1c02d3e9e519338d9b", size = 11907800, upload-time = "2026-08-27T15:05:49.786Z" }, + { url = "https://files.pythonhosted.org/packages/4f/a7/c467019a8bf1ab6a07ca88004f0a1d4ea2dae89642aa804e49437b256243/statsmodels-0.15.0-cp314-cp314t-win_amd64.whl", hash = "sha256:edee066ac9b171d95c3de925225331a21de1deb5b6452f252bc853e44566e72b", size = 11559083, upload-time = "2026-08-27T15:06:05.872Z" }, + { url = "https://files.pythonhosted.org/packages/54/10/dc78352367cd5bb298340b57c390c944b66236f6d026cc238bc8264c7633/statsmodels-0.15.0-cp314-cp314t-win_arm64.whl", hash = "sha256:40b2737456e75d96866943e33017a1dffc9166025ee33b7eb373fbe8c7a85e09", size = 11029613, upload-time = "2026-08-27T10:39:10.043Z" }, + { url = "https://files.pythonhosted.org/packages/de/cb/a1f5ad730cb66c7d911ebb45413880333d837f1cffff990a4c6d2c541b95/statsmodels-0.15.0-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:d48ba61db0d13d3033330e6bd1f864dfa9b48c0b952b3b0f7570206b35d552e5", size = 11702125, upload-time = "2026-08-30T16:04:07.635Z" }, + { url = "https://files.pythonhosted.org/packages/ce/db/fb95f242adce112c1507e2062ad6b7b00aea338925f2a03fbe47973c4d72/statsmodels-0.15.0-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:24b9917a09bbe0227047e512a40652c4b9117c2cfbf19c4a5b9971a8944a8606", size = 11571622, upload-time = "2026-08-30T16:04:29.558Z" }, + { url = "https://files.pythonhosted.org/packages/b5/3f/f4cc7e5f4d6c8f46551aee63e59d9b964881070f552400ebb76667b39ad9/statsmodels-0.15.0-cp315-cp315-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:333d0c70f269ff98b647f157d2ae7fbcf0617e6f9a5b1817fc6609766502292c", size = 11780713, upload-time = "2026-08-30T07:40:06.332Z" }, + { url = "https://files.pythonhosted.org/packages/e9/20/fa315a013f70efa6674adfaca59365ea7562371914c408551fc3c399792f/statsmodels-0.15.0-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:80b946d7c922f46f045f25e50daf13439f79c05e403ba50081cad509892c8b26", size = 12070117, upload-time = "2026-08-30T07:40:27.04Z" }, + { url = "https://files.pythonhosted.org/packages/91/43/a63f7880050c2c24056fa8d663b7c8a1816b25864660abbc73afff3f3558/statsmodels-0.15.0-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:cf897abce5616e2763ab7d7a7fa914677df87a649971f877b83a358c98f6e291", size = 12105153, upload-time = "2026-08-30T07:40:45.814Z" }, + { url = "https://files.pythonhosted.org/packages/d4/d4/523ddb13862c228407297754486b6c9e8777e5114f4532b667b47728c544/statsmodels-0.15.0-cp315-cp315-win_amd64.whl", hash = "sha256:511a4f9cadbf91a690bfa863bb3e25dce583d8140046886fdf35fbfabfbce401", size = 11352844, upload-time = "2026-08-30T16:04:48.14Z" }, + { url = "https://files.pythonhosted.org/packages/53/59/f3058214e61b15582ef17d761c9333def46960ee521313409b2705791029/statsmodels-0.15.0-cp315-cp315-win_arm64.whl", hash = "sha256:0cb6228713fe47046b606daee63ed4473a7c246fa97cf0a6d6f20d3b0c96c051", size = 10866685, upload-time = "2026-08-30T16:05:03.971Z" }, + { url = "https://files.pythonhosted.org/packages/4a/2d/43089b37f4bbbf7373929cd198de6cbdb0b5a4580a6e5e32bf9fe74fccab/statsmodels-0.15.0-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:27e9467fae83ff327c9d16ae5ea7e771bcdd66a682f49aa324eeefea5584f2d5", size = 11858149, upload-time = "2026-08-30T16:05:20.585Z" }, + { url = "https://files.pythonhosted.org/packages/7d/38/ca88421b81666cdcfc3d0eb12c714f80f2be327669ececbb5930b68a71c0/statsmodels-0.15.0-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:ecf84918dcd410ab34d3d85d34e0b16ebb10319c9fc77dbf9a1f1a49324c59f8", size = 11739931, upload-time = "2026-08-30T16:05:37.286Z" }, + { url = "https://files.pythonhosted.org/packages/ab/64/98b9e2b1fbfdc4e2392bff349718d8dc796403006a3106ec375c59a5d3f8/statsmodels-0.15.0-cp315-cp315t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5891ad077b36d6401e44967739df3d2cdd380a0e6e9e46dadec7e3d3a828af55", size = 11657996, upload-time = "2026-08-30T07:41:05.608Z" }, + { url = "https://files.pythonhosted.org/packages/34/6d/d8c9e73013ee854031218e8a044ba679535268bc61cf59466f19ac8d980c/statsmodels-0.15.0-cp315-cp315t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:af80f9658c48792947fc754a026ffbebca61a8b483253781973f604a67cf1f8c", size = 11893402, upload-time = "2026-08-30T07:41:27.553Z" }, + { url = "https://files.pythonhosted.org/packages/cc/f5/b9b47f3c688a8af1b199af96e098b8f20897a60b45187c57ce6fcde77a5f/statsmodels-0.15.0-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:583eb2a46f7c7a5c34a26715c8b6d92199bfb4f04623db5fff9902a3c7c832d3", size = 11934786, upload-time = "2026-08-30T07:41:46.809Z" }, + { url = "https://files.pythonhosted.org/packages/c4/08/608871f18bc18c6cba0b484e81fd25a023ef3ca6541f6793ec839fa49e1f/statsmodels-0.15.0-cp315-cp315t-win_amd64.whl", hash = "sha256:38038823fbe86f11e09433b4a0f4af5f102327c3137a1604b002ce3cf722a31f", size = 11549124, upload-time = "2026-08-30T16:05:53.179Z" }, + { url = "https://files.pythonhosted.org/packages/e3/eb/90a506dbee5cde669e2ef28565ff6b7a0791ab415eab2da82f92d033cccc/statsmodels-0.15.0-cp315-cp315t-win_arm64.whl", hash = "sha256:90df413d7e09474f7e7cbf8807440c1bf76298cdd9daabf9141f76d7627c9151", size = 11021454, upload-time = "2026-08-30T16:06:08.124Z" }, ] [[package]] name = "tblib" version = "3.2.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f4/8a/14c15ae154895cc131174f858c707790d416c444fc69f93918adfd8c4c0b/tblib-3.2.2.tar.gz", hash = "sha256:e9a652692d91bf4f743d4a15bc174c0b76afc750fe8c7b6d195cc1c1d6d2ccec", size = 35046 } +sdist = { url = "https://files.pythonhosted.org/packages/f4/8a/14c15ae154895cc131174f858c707790d416c444fc69f93918adfd8c4c0b/tblib-3.2.2.tar.gz", hash = "sha256:e9a652692d91bf4f743d4a15bc174c0b76afc750fe8c7b6d195cc1c1d6d2ccec", size = 35046, upload-time = "2025-11-12T12:21:16.572Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/02/be/5d2d47b1fb58943194fb59dcf222f7c4e35122ec0ffe8c36e18b5d728f0b/tblib-3.2.2-py3-none-any.whl", hash = "sha256:26bdccf339bcce6a88b2b5432c988b266ebbe63a4e593f6b578b1d2e723d2b76", size = 12893 }, + { url = "https://files.pythonhosted.org/packages/02/be/5d2d47b1fb58943194fb59dcf222f7c4e35122ec0ffe8c36e18b5d728f0b/tblib-3.2.2-py3-none-any.whl", hash = "sha256:26bdccf339bcce6a88b2b5432c988b266ebbe63a4e593f6b578b1d2e723d2b76", size = 12893, upload-time = "2025-11-12T12:21:14.407Z" }, ] [[package]] name = "toolz" -version = "1.1.0" +version = "1.2.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/11/d6/114b492226588d6ff54579d95847662fc69196bdeec318eb45393b24c192/toolz-1.1.0.tar.gz", hash = "sha256:27a5c770d068c110d9ed9323f24f1543e83b2f300a687b7891c1a6d56b697b5b", size = 52613 } +sdist = { url = "https://files.pythonhosted.org/packages/31/6f/ae20c212a07aa2d156c787383d8088a5e045ee39628661edb190c97e1659/toolz-1.2.0.tar.gz", hash = "sha256:9667a038e9d6ecba37995e26cb2f59ec6420b6ad8dd9677de59db9b956b08490", size = 55442, upload-time = "2026-10-07T04:16:25.639Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/fb/12/5911ae3eeec47800503a238d971e51722ccea5feb8569b735184d5fcdbc0/toolz-1.1.0-py3-none-any.whl", hash = "sha256:15ccc861ac51c53696de0a5d6d4607f99c210739caf987b5d2054f3efed429d8", size = 58093 }, + { url = "https://files.pythonhosted.org/packages/db/17/4c8beb6c8c4176c6bf143bfd7e1e4dd6719b00ced90738c7ac471b71c1df/toolz-1.2.0-py3-none-any.whl", hash = "sha256:890f820b1cb8152785aaf9386d8707770110809035800985ca65cb24ce1120ef", size = 60789, upload-time = "2026-10-07T04:16:24.173Z" }, ] [[package]] name = "tornado" -version = "6.5.6" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/50/57/6d7303a77ae439d9189108f76c0c4fd89ee5e2cc8387bffb55232565c4ed/tornado-6.5.6.tar.gz", hash = "sha256:9a365179fe8ff6b8766f602c0f67c185d778193e9bdd828b19f0b6ed7764177d", size = 518139 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1b/0d/b4f481e18c5a51864e6d12b9a05ecf72919696680b747c958c3fc1f4fbae/tornado-6.5.6-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:65fcfaafb079435c2c19dc9e07c0f1cf0fa9051759ed0a7d0a3ba7ea7f64919c", size = 447737 }, - { url = "https://files.pythonhosted.org/packages/9e/9c/5430c39fcab1144d35860f457b15e9c08b4bc7ac86764354204e983d6183/tornado-6.5.6-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:38bc01b4acacded2de63ae78023548e41ebe6fbed3ec05a796d7ae3ad893887e", size = 445899 }, - { url = "https://files.pythonhosted.org/packages/8b/79/fa7e14a2f939c807a8d30619b4eb604eab219601b78792516ebe22d40cf9/tornado-6.5.6-cp39-abi3-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b942e6a137fda31ff54bf8e6e2c8d1c37f1f50583f3ed53fb840b53b9601d104", size = 448964 }, - { url = "https://files.pythonhosted.org/packages/a7/71/bd67d5f5199f937dafe03a49a37989f60f600ff6fef34c79412a829d97bd/tornado-6.5.6-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8666946e70171b8c3f1fc9b7876fac492e84822c4c7f3746f4e8f8bc9ac92a79", size = 449935 }, - { url = "https://files.pythonhosted.org/packages/cc/a4/c24388c9cf5b3c3a513b56a158af9f23092c9a2810d789e294310797df21/tornado-6.5.6-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:1c34cfab7ad6d104f052f55de06d39bbafc5885cfeb4da688803308dbcfa90b7", size = 449767 }, - { url = "https://files.pythonhosted.org/packages/a5/eb/6a07ad550c3f7b37244bd0becdf293ec3d3e961783d8b720a97df50de1b2/tornado-6.5.6-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:385f35e4e22fb52551dfcda4cdc8c30c61c2c001aef5ddad99cdfe116952efd3", size = 449174 }, - { url = "https://files.pythonhosted.org/packages/bb/84/3469e098dccdb6763130e06aacd786bb4363fca7b590a55c101ddf34ed30/tornado-6.5.6-cp39-abi3-win32.whl", hash = "sha256:db475f1b67b2809b10bb16264829087724ca8d24fe4ed47f7b8675cae453ef86", size = 450230 }, - { url = "https://files.pythonhosted.org/packages/d2/3c/273a04e0b9dd9016f1685cca0c1c8795a71ac88a34a8c889a0b443483226/tornado-6.5.6-cp39-abi3-win_amd64.whl", hash = "sha256:6739bf1e8eb09230f1280ddbd3236f0309db70f2c551a8dbc40f62babdf82f79", size = 450667 }, - { url = "https://files.pythonhosted.org/packages/02/98/0cffe22a224f60c5fb1e3aa0b76f9da2e1ca78b0e9545e3d077c68ce60a7/tornado-6.5.6-cp39-abi3-win_arm64.whl", hash = "sha256:2543597b24a695d72338a9a77818362d72387c03ae173f1f169eadc5c91466ac", size = 449690 }, +version = "6.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d0/02/5f549b1ad5da6267ed1e1fac2eef69257b1979cc812497002499b7895ff9/tornado-6.6.tar.gz", hash = "sha256:34c4aa916d7f2b2d5cadee2c6850f5a4a7f3d688cbf58399ea9bd3057af4abd5", size = 617998, upload-time = "2026-10-21T15:31:04.733Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/df/f5/d3e6f76b945f9812842db742d0708a3b6287e850e81be3ca10e290c103c6/tornado-6.6-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:01abf15429d64f04ccfafc238b191cc2c177108b7a331f4461707ad77198c8c2", size = 528326, upload-time = "2026-10-21T15:30:05.528Z" }, + { url = "https://files.pythonhosted.org/packages/30/69/b20cf3a8bf641ec792a5a6050aa153e8f120604f9c23471142de535113e5/tornado-6.6-cp311-abi3-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:11bb97c00981eb8254e55bd6a5ad960c983ae343fef8ae3ae5584cd1fb70236a", size = 529544, upload-time = "2026-10-21T15:30:07.126Z" }, + { url = "https://files.pythonhosted.org/packages/0f/f4/d9d8d3ac345aa9df3a132ad03bd443160c2ab24ad4003b4e8d6d5af06371/tornado-6.6-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e152a3b2d3eae113b836d979823f7bb2320f7e334a84449729964921f374a4c", size = 530523, upload-time = "2026-10-21T15:30:08.478Z" }, + { url = "https://files.pythonhosted.org/packages/ad/82/1296ade1c14dee5a4906e5ca092997622ece7c4dc768c68ed9caaf895d1b/tornado-6.6-cp311-abi3-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e912d4c4babd04db6f34b25b748174a4a176debe86c8610beedf1815f9af7fdd", size = 530739, upload-time = "2026-10-21T15:30:09.98Z" }, + { url = "https://files.pythonhosted.org/packages/66/30/6ac1eab66c81af46dafd93c9b24bd311f82e199d9d7b8ce2a64a91b6a200/tornado-6.6-cp311-abi3-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:33aabe8a03d426cef4e0fe5669f0643cadd983b54957f1a7ac2789ec326e9644", size = 529738, upload-time = "2026-10-21T15:30:11.498Z" }, + { url = "https://files.pythonhosted.org/packages/24/b4/6c1f6aa1fd148e4d0f500a10cd0c9949e7bf385e161ff497c81de5b3ae4f/tornado-6.6-cp311-abi3-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:9aaf0e1c2fb9f046f30e2036b8d2060666399e8464d0a72769e43c754089567b", size = 527908, upload-time = "2026-10-21T15:30:13.298Z" }, + { url = "https://files.pythonhosted.org/packages/54/5b/67d3d452b1179bc9e265cebd381a56ab4cf2d7b2a54607aedd8d6e1ebc2e/tornado-6.6-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:61fc5513cea97720ab9bf54b04827ac0f4500c63f0b072b963d6145c798b4661", size = 530367, upload-time = "2026-10-21T15:30:15.183Z" }, + { url = "https://files.pythonhosted.org/packages/74/14/4e8e9a14f77bcafb2408634b2d4c8c676ad7a43bf8dac4ee2d48370698f9/tornado-6.6-cp311-abi3-musllinux_1_2_ppc64le.whl", hash = "sha256:31e1a0d5cd704d2fe8a008c1cc27a0e2b67269ca263630a27985dddc160b5537", size = 530456, upload-time = "2026-10-21T15:30:16.741Z" }, + { url = "https://files.pythonhosted.org/packages/56/12/e3ddef99a2089ccfc86f32bd3f39caaad87bee4868be1bacbf213a0b07a2/tornado-6.6-cp311-abi3-musllinux_1_2_riscv64.whl", hash = "sha256:74416e41e9bdf70fbc2fb242f6fbbc7a58ec11e59d39f15fc5a421ecb6845118", size = 529610, upload-time = "2026-10-21T15:30:18.031Z" }, + { url = "https://files.pythonhosted.org/packages/35/3d/62a692343d46b37e852e5078e0f6513534d925f70a04580072e3c127b129/tornado-6.6-cp311-abi3-musllinux_1_2_s390x.whl", hash = "sha256:8cdd69104ae9d705b3f04d2563aa96e357043e267a455802daae9a1e633a37c8", size = 529803, upload-time = "2026-10-21T15:30:19.326Z" }, + { url = "https://files.pythonhosted.org/packages/49/04/6c59a9413adfe4810f648a4dd9fdf476f13b0495f9cc25ef856b71f9ce1e/tornado-6.6-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:fc7c8a3263501fbe97518cd699101bc3c5f499a7dd4f75fc6cbb3bd9ee1db1f1", size = 529751, upload-time = "2026-10-21T15:30:20.826Z" }, + { url = "https://files.pythonhosted.org/packages/31/36/a1b3b84cd347ae43f982d3bf95628de6c6365668dba2543af47c6a1c888e/tornado-6.6-cp311-abi3-win32.whl", hash = "sha256:b54ca69ff93d0374efb083a12a1e9ec2dd2036e8496d197e0e8ef77b8d9135c3", size = 530643, upload-time = "2026-10-21T15:30:22.428Z" }, + { url = "https://files.pythonhosted.org/packages/b7/50/dc813fe35a672e14ee8bed8b5c634eeb343a05c98eb455318a169de24567/tornado-6.6-cp311-abi3-win_amd64.whl", hash = "sha256:48f26ed9d7beb64e5f06adc864524e581ab6d62ba8ff46eaaa1ac2d0e6d753fd", size = 530886, upload-time = "2026-10-21T15:30:23.975Z" }, + { url = "https://files.pythonhosted.org/packages/0d/71/62a9b9e980026d38874740d0a7c162f53eb0563f6a441e3aff84c48db7e8/tornado-6.6-cp311-abi3-win_arm64.whl", hash = "sha256:29114ffd4e4de869d390393df9e9a0f191065aae1a96f38a58d35e464c04a867", size = 530899, upload-time = "2026-10-21T15:30:25.264Z" }, + { url = "https://files.pythonhosted.org/packages/ac/4c/633e3568eb574df555d6ddd2dac44b7793a5c26cd63b444e653fcfb1d6ec/tornado-6.6-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:63fc8d243b52fd8dd9ed4ad02d0df08f2024f9aea632a433a8a6c91075076d44", size = 528432, upload-time = "2026-10-21T15:30:26.578Z" }, + { url = "https://files.pythonhosted.org/packages/37/eb/b525d1870ad28a56f47b664dd8fd3fab4f7ddd237c87c14e97248bf4762f/tornado-6.6-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:8d4b85cac795bfc6a7f20ba81871abb8c2ae8fba019061b8a9ae1c2f97e29637", size = 532586, upload-time = "2026-10-21T15:30:28.027Z" }, + { url = "https://files.pythonhosted.org/packages/b7/35/909a33c253352346ca081a27ca66b45c1398468adf784b767597ca773c28/tornado-6.6-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e035c065edadfa696529d05eebcbeb25154c129b5aee6dbfb697a6abf5d4f697", size = 533641, upload-time = "2026-10-21T15:30:29.318Z" }, + { url = "https://files.pythonhosted.org/packages/6f/64/100202666d6e3d96288ab184827762415456c139798a15c962547f9fabf9/tornado-6.6-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5b94e589ab855090c448b5c0937b3a75f1c1a604b7b36207e8236d209f720b9c", size = 533869, upload-time = "2026-10-21T15:30:30.882Z" }, + { url = "https://files.pythonhosted.org/packages/b1/e0/af3ed62bc15830d60328d5b4a1a9076b35ea0ba142cb17b1c1772cb15c59/tornado-6.6-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:1a394c8c9db9137f2a2b42869d9f7b91398fcf19da120d0dde4c4546172710f7", size = 532767, upload-time = "2026-10-21T15:30:32.273Z" }, + { url = "https://files.pythonhosted.org/packages/24/d7/1e2e1a6932eb62d63324b64dba2f62e6eaf79ad883dd209352c297b7848c/tornado-6.6-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:0215d1df6e4b5e736ddad5adf0af4138cf7437fdd39c77c5e69768e37850a632", size = 530956, upload-time = "2026-10-21T15:30:33.746Z" }, + { url = "https://files.pythonhosted.org/packages/70/65/3b9a0e53d7a4c39f2ebe95486540fa8eeb67bfb6e8c437d603c00d35b128/tornado-6.6-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:4d711790e0a9576ad924d942c4607e4e401d697588ea6f30f6662824008a7add", size = 533372, upload-time = "2026-10-21T15:30:35.085Z" }, + { url = "https://files.pythonhosted.org/packages/44/48/90979cbfaa3ff941324a2605eb794af0f087c670cd99f18a69ab40498073/tornado-6.6-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:034a66bae0f55421d007803e2385d2a59707d8829b2f026373d42f08256e9922", size = 533425, upload-time = "2026-10-21T15:30:36.425Z" }, + { url = "https://files.pythonhosted.org/packages/bb/c4/ce743a86d91f85c255b77a4282eb5b2716b61e74430eb9d1df8578a539d2/tornado-6.6-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:5cb38483b077129056a94dd415a71d29ab4e42b46da894fee8b4657003f10b21", size = 532545, upload-time = "2026-10-21T15:30:37.789Z" }, + { url = "https://files.pythonhosted.org/packages/02/5e/a82131e35778540fc19139229d02aa8cf2453a8022e202be50c88f0f8ac3/tornado-6.6-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:46bbbd107efa37777ac4b83601866d19b4dbd5b770a7a9123582633d95959ad3", size = 532700, upload-time = "2026-10-21T15:30:39.336Z" }, + { url = "https://files.pythonhosted.org/packages/3a/09/6dac8c2c677c65d60b3d7dae94176dbfe392f314e7c8e2d709623edd6a26/tornado-6.6-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:b85e9d0263cdbc027b95947c8b873a7bc7fd6a08d16bfb4f5047350b0808e464", size = 532712, upload-time = "2026-10-21T15:30:40.698Z" }, + { url = "https://files.pythonhosted.org/packages/b2/ac/71e5776cbcdc3264e81aa6db28c69717ba50607a9eb8d5b766f11a4b020e/tornado-6.6-cp314-cp314t-win32.whl", hash = "sha256:4276eef0880e5fe4488e6799c2842f59af3b06637e9313ab4fb506f9c9c2d6cb", size = 530491, upload-time = "2026-10-21T15:30:42.115Z" }, + { url = "https://files.pythonhosted.org/packages/d8/0f/0b6a6908a5b5aa8320009dfdb84434b1cf160b577a00456e59ab9e6ea598/tornado-6.6-cp314-cp314t-win_amd64.whl", hash = "sha256:10d4af98c6df09f8429b1340ccaea3a72887b86f695dfb8056bda517c8115a00", size = 530780, upload-time = "2026-10-21T15:30:43.414Z" }, + { url = "https://files.pythonhosted.org/packages/3c/39/c152e1cc5371f75f5f9f0a4f44bf2dc9396be9407d384de7428446fb4651/tornado-6.6-cp314-cp314t-win_arm64.whl", hash = "sha256:b1f0ef20a5278854f5fdac31637bafadb055405df28b7fc945e54add12b172e3", size = 530781, upload-time = "2026-10-21T15:30:44.741Z" }, + { url = "https://files.pythonhosted.org/packages/0c/c5/f96c7d7a8895745bb37dfb6e6107e1ee40ad02a4b162d7d6c143644455ab/tornado-6.6-cp315-cp315t-macosx_10_15_universal2.whl", hash = "sha256:8f8e382da30fe042f27f27a871e21aefc2613870e5a41648de18446c72d6ea59", size = 528446, upload-time = "2026-10-21T15:30:46.112Z" }, + { url = "https://files.pythonhosted.org/packages/c0/dd/ab8f6500d274b9c55b025798eb54e92591bcff27515799bec443bd54e35a/tornado-6.6-cp315-cp315t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:8c7a8a328396c2195454a2ecd9499512441bbce99505544a717e6a87d16ff6f9", size = 532774, upload-time = "2026-10-21T15:30:47.393Z" }, + { url = "https://files.pythonhosted.org/packages/87/23/b78e7d1bf329160b8157284005395421ea941864c16c7f04c3e48c98bcf9/tornado-6.6-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ca025bb0da81c294aef26f27427316df1525220820315f4bf32dc1e84a4d2232", size = 533872, upload-time = "2026-10-21T15:30:48.884Z" }, + { url = "https://files.pythonhosted.org/packages/e0/4f/ab66b614ad0bc9a219484be6bc2c002c8de9916a7b6c7b27fe6273838e5c/tornado-6.6-cp315-cp315t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:59c22ebc905ac2a267f8d9d8a878f86afbcbbde329d75c485f1422fc45a81b83", size = 534027, upload-time = "2026-10-21T15:30:50.157Z" }, + { url = "https://files.pythonhosted.org/packages/da/63/501fa15a36bace2f4b9158228cf922d606403261bf71c960c433ec3ca0a4/tornado-6.6-cp315-cp315t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f89802bc0bcd15f988d9325b4e6d2171bb04ea68d188732556335e10d3fd00bd", size = 532936, upload-time = "2026-10-21T15:30:51.45Z" }, + { url = "https://files.pythonhosted.org/packages/7f/b7/82d643f635f0300bda98613ca2660b4f3134b6fb594c6fddfa4de706806c/tornado-6.6-cp315-cp315t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:70043256d5958f9c655066153d23d60ea3e29bf9854f7fb75850e223c477758a", size = 531254, upload-time = "2026-10-21T15:30:52.865Z" }, + { url = "https://files.pythonhosted.org/packages/d4/53/92c40891a94750bc09257310af964bf25c59e3531d6199736c318baa864f/tornado-6.6-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:82b49495e3849d644b841ef33b35491160055997deaa93720ff647ef019421db", size = 533566, upload-time = "2026-10-21T15:30:54.15Z" }, + { url = "https://files.pythonhosted.org/packages/7e/88/b82f5c5efde731b88d839ad99cb6ace2a521f03bb6d7346d2de089c76da8/tornado-6.6-cp315-cp315t-musllinux_1_2_ppc64le.whl", hash = "sha256:07b2bcaa4bf447bdbfb664e4c28344226540db3f0ebccd74886528338a240765", size = 533567, upload-time = "2026-10-21T15:30:55.451Z" }, + { url = "https://files.pythonhosted.org/packages/02/2c/e9a7f5d0fca0bdbcd48b2d9c7884dd0b32669c9945d98bc6d303a80ecfea/tornado-6.6-cp315-cp315t-musllinux_1_2_riscv64.whl", hash = "sha256:c36b921374c302e54909bae17d9f354061d80e7ae7d8c94f73abbcc217866460", size = 532849, upload-time = "2026-10-21T15:30:56.729Z" }, + { url = "https://files.pythonhosted.org/packages/d0/f5/4ade737340ca6ce9c677ea0c2843591c8ad065d07f0913c28d922c7e078e/tornado-6.6-cp315-cp315t-musllinux_1_2_s390x.whl", hash = "sha256:7412d9e37aa9f7048e4b591f520a95f7a097278ffab15f1ddf3f5c2320cf6648", size = 532873, upload-time = "2026-10-21T15:30:58.067Z" }, + { url = "https://files.pythonhosted.org/packages/8e/04/6acdc937d0bb6189ddb34ceded517d7bd1c7b3bded5d4e1b3442160e6b6f/tornado-6.6-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:15bc95112b2d24b0bfaee9a004e3f974da929e33b4244a7f695a22f45b08a5e5", size = 532883, upload-time = "2026-10-21T15:30:59.395Z" }, + { url = "https://files.pythonhosted.org/packages/ab/27/0a766fac6b1cc629d96346329a0485287fd2857c51a887a3a154f2a69938/tornado-6.6-cp315-cp315t-win32.whl", hash = "sha256:f661c21117b875d612371f3eb243d0c69f56d9bdd6aee38b7c24453419dfe554", size = 530488, upload-time = "2026-10-21T15:31:00.77Z" }, + { url = "https://files.pythonhosted.org/packages/5c/80/3e4142570883da27b3f60ae82c638ac96e60997eac684740613557519c96/tornado-6.6-cp315-cp315t-win_amd64.whl", hash = "sha256:ee8853ab35da510dc952879ebd9995c82bc10ffb7925fd87930dc0d6916f4b39", size = 530777, upload-time = "2026-10-21T15:31:02.087Z" }, + { url = "https://files.pythonhosted.org/packages/17/57/4a85c617b6349962320b4afbe1386d5b05fd57218ee8ad6e82e0110ec9ee/tornado-6.6-cp315-cp315t-win_arm64.whl", hash = "sha256:7de62e2dfdf559fd7154d2b9aa58ff3d9cff8304ae0519341feb082618bc2a33", size = 530780, upload-time = "2026-10-21T15:31:03.425Z" }, ] [[package]] -name = "tqdm" -version = "4.68.1" +name = "traitlets" +version = "5.16.1" source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "colorama", marker = "sys_platform == 'win32'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/06/b3/36c8ecf72e8925200671613332db156d84b99b3aee742a41c1938ebb0808/tqdm-4.68.1.tar.gz", hash = "sha256:fc163d96b287bd031e1aa24421ce4411b25559bd0a1be4fe649bdaa4d2c02bf5", size = 171236 } +sdist = { url = "https://files.pythonhosted.org/packages/2c/2e/a7fbfe268c8a3b32546930c0297c101d65a4a14c304ad5790a9f478f0e4e/traitlets-5.16.1.tar.gz", hash = "sha256:ed900c2b631aa3a112811139fa97b8d2c3bad5e989656bba4b7e52c7852c18c1", size = 166137, upload-time = "2026-08-03T08:32:36.848Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/47/aa/218a0eb34de1f753c83e4d0d1c8e7c4cef27f20dcb8342e024f63a80dc86/tqdm-4.68.1-py3-none-any.whl", hash = "sha256:fea4a90e4023f764914569f7802a297277c5ab1a66be5144143e142e1a4031d8", size = 78354 }, + { url = "https://files.pythonhosted.org/packages/ad/66/0d785f0bc5e4315a96c989bb476d0fc07ea4f85132550c7b156ca2035d52/traitlets-5.16.1-py3-none-any.whl", hash = "sha256:f775618166caa0396c8e337099240f2bd3e5e917d203b2e6fbe21a58d3cb1f6b", size = 86211, upload-time = "2026-08-03T08:32:34.48Z" }, ] [[package]] -name = "traitlets" -version = "5.15.1" +name = "typing-extensions" +version = "4.16.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/57/a9/a2584b8313b89f94869ddb3c4074617a691de1812a614d2d50e32ca5a7a6/traitlets-5.15.1.tar.gz", hash = "sha256:7b1c07854fe25acb39e009bae49f11b79ff6cbb2f27999104e9110e7a6b53722", size = 163344 } +sdist = { url = "https://files.pythonhosted.org/packages/f6/cc/6253133b5bb138fc3306cebfbda2c520f545d36b5be2c7255cc528bb45d6/typing_extensions-4.16.0.tar.gz", hash = "sha256:dc983d19a509c94dba722ee6abd33940f7c05a89e243c47e907eb4db6f1a43e5", size = 113555, upload-time = "2026-07-02T08:40:05.92Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/96/8d/1080ee4c231f361b6ce4470d556c8c435b67c7e0753aaa641497ee92f88b/traitlets-5.15.1-py3-none-any.whl", hash = "sha256:770a53705f84b81ac107e83a1b3328ff2dae16094d8fc3cfc004e4b22dfd8e92", size = 85858 }, + { url = "https://files.pythonhosted.org/packages/49/d3/b8441a820a491ddfc024b0b0cf0393375b75ea13866d9c66727e54c2fc80/typing_extensions-4.16.0-py3-none-any.whl", hash = "sha256:481caa481374e813c1b176ada14e97f1f67a4539ce9cfeb3f350d78d6370c2e8", size = 45571, upload-time = "2026-07-02T08:40:04.659Z" }, ] [[package]] -name = "typing-extensions" -version = "4.15.0" +name = "typing-inspection" +version = "0.4.4" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391 } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a3/26/b09b8010994eccc3c09092e6b34058f36a460eea2d4c3e8b910c695975a0/typing_inspection-0.4.4.tar.gz", hash = "sha256:547274fa6b0a561ccf549cc9524b999a578e737d015d8709d021f9d0d13bea47", size = 76928, upload-time = "2026-08-12T12:37:25.997Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614 }, + { url = "https://files.pythonhosted.org/packages/67/81/4add07e5172b7ac40d8ed5ff580409a7801a4fe26d529bdd915401dabfbe/typing_inspection-0.4.4-py3-none-any.whl", hash = "sha256:65b8397ba37ccbce054456aaccddfc91e6e3083c92824df348d96ca832f3f147", size = 14750, upload-time = "2026-08-12T12:37:24.648Z" }, ] [[package]] name = "tzdata" -version = "2026.2" +version = "2026.5" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ba/19/1b9b0e29f30c6d35cb345486df41110984ea67ae69dddbc0e8a100999493/tzdata-2026.2.tar.gz", hash = "sha256:9173fde7d80d9018e02a662e168e5a2d04f87c41ea174b139fbef642eda62d10", size = 198254 } +sdist = { url = "https://files.pythonhosted.org/packages/d9/68/f1b440335057bfce71b6e50a9d09445aa2ecbd08359a337976627b8409e7/tzdata-2026.5.tar.gz", hash = "sha256:8cc73c0a0bfca7dbfa59235d60b2eff82231dee33f53d206db1acd9173cfc0a7", size = 200404, upload-time = "2026-10-03T09:23:14.143Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ce/e4/dccd7f47c4b64213ac01ef921a1337ee6e30e8c6466046018326977efd95/tzdata-2026.2-py2.py3-none-any.whl", hash = "sha256:bbe9af844f658da81a5f95019480da3a89415801f6cc966806612cc7169bffe7", size = 349321 }, + { url = "https://files.pythonhosted.org/packages/94/21/1e5995a1c920cce14e4bffae20c665ec10e7ed03ab25e006cd741092b718/tzdata-2026.5-py2.py3-none-any.whl", hash = "sha256:b683bd1b6659ddcd810ff02ad09ba821d4bf1065072805063eb35c49617905ac", size = 347996, upload-time = "2026-10-03T09:23:12.535Z" }, ] [[package]] name = "urllib3" -version = "2.7.0" +version = "2.8.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/53/0c/06f8b233b8fd13b9e5ee11424ef85419ba0d8ba0b3138bf360be2ff56953/urllib3-2.7.0.tar.gz", hash = "sha256:231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c", size = 433602 } +sdist = { url = "https://files.pythonhosted.org/packages/e3/05/b17359e1cefb4f909b5e40b1b90a496d987258916dbbf88e842c729f510e/urllib3-2.8.0.tar.gz", hash = "sha256:63bf2ead4c879426ebf22ef2a781eeb4aa3b4ae798a0435506f8687fd5bb9b63", size = 458972, upload-time = "2026-09-15T19:29:36.253Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7f/3e/5db95bcf282c52709639744ca2a8b149baccf648e39c8cc87553df9eae0c/urllib3-2.7.0-py3-none-any.whl", hash = "sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897", size = 131087 }, + { url = "https://files.pythonhosted.org/packages/92/9d/c4e665119135114480843e7ab388fa94d8480650450e6f8e26b70d323a4c/urllib3-2.8.0-py3-none-any.whl", hash = "sha256:0cf3cae568d36aa9576b28dfb35f11328f1cb974ca7647d9475ebb86c75ac6e3", size = 135717, upload-time = "2026-09-15T19:29:34.577Z" }, ] [[package]] name = "wcwidth" -version = "0.8.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/49/b4/51fe890511f0f242d07cb1ebe6a5b6db417262b9d2568b460347c57d95cc/wcwidth-0.8.1.tar.gz", hash = "sha256:faf5b4a5366a72dc49cad48cdf21f52bdf63bdda995178e483ba247ff79089b9", size = 1466072 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/bd/6e/95b0e537de1f4d4301f76f944642c6da50d1511cc7b3d64dc418a66c7509/wcwidth-0.8.1-py3-none-any.whl", hash = "sha256:f453740b1e4a4f3291faa37944c555d71056c4da08d59809b307ef4feba695c8", size = 323092 }, +version = "0.9.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ea/01/e5ac23733628a6bbb91913a765fcf55ee8070d8d991bc88fdaaf805052c7/wcwidth-0.9.4.tar.gz", hash = "sha256:fd8d57d3cdfe570e3265c8fab1885c24e34ef40889c0759c0c304a19e9835954", size = 970051, upload-time = "2026-10-24T18:11:44.954Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bf/b8/d251589a100250b71a7b8e83fedfcabfd8bd60e78cd1e3329372f63bcc93/wcwidth-0.9.4-cp310-abi3-macosx_10_9_x86_64.whl", hash = "sha256:b7969c9aa258d536df54c8ac8af5cad0c74a6268c9972e1fb60a5f29feffb66d", size = 612952, upload-time = "2026-10-24T18:10:55.925Z" }, + { url = "https://files.pythonhosted.org/packages/04/e9/dfdca30ca36c472de3e260406dee29fc108499ec590c63b3fe279887ee9d/wcwidth-0.9.4-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:f279f32c8e206a9092fa350e53ca0c2bd8072e45b1c9fd31bb6d476b59b591c4", size = 618904, upload-time = "2026-10-24T18:11:02.008Z" }, + { url = "https://files.pythonhosted.org/packages/5d/b6/d7416f38054a107d2fb17c2b73b68723c6c334f69c4e29545fb9e6df81eb/wcwidth-0.9.4-cp310-abi3-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:a1526cd25c6420e5153bb7d764c7509e692215ee3ad9b725db1ad665d47eae09", size = 778780, upload-time = "2026-10-24T18:11:17.299Z" }, + { url = "https://files.pythonhosted.org/packages/7d/5b/42bdf9a4b0e4f9126584af2ec73642de495f3bd8add907430f13c3bb98d2/wcwidth-0.9.4-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:093469e01d881bff3db93ff3f56c364dc87c441ea01f9f41c22de0c0bdf5c6ef", size = 789012, upload-time = "2026-10-24T18:11:07.829Z" }, + { url = "https://files.pythonhosted.org/packages/fa/e8/0485850748dfdba9443f4151c7b2442cfa4987ba6cd871038eb5d6b8eca9/wcwidth-0.9.4-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b185c8b927b23af2721be1783499d1cfa5c028b098b0858951b4ae224477f1c2", size = 785946, upload-time = "2026-10-24T18:11:18.748Z" }, + { url = "https://files.pythonhosted.org/packages/e9/11/dd3d0379c6094524df6585b76ae3d9727161ff29c003177e3661c36437c1/wcwidth-0.9.4-cp310-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:17619066f95c10f44d7ae08ee456602456bc66cc9d5e91966ec73d799acebc5f", size = 795348, upload-time = "2026-10-24T18:11:09.931Z" }, + { url = "https://files.pythonhosted.org/packages/3c/48/1b5299983d9ec084be897162b7cc6014622dfe62847224fa3272b6d79ea5/wcwidth-0.9.4-cp310-abi3-musllinux_1_2_i686.whl", hash = "sha256:b52f265a694dda6b3ad9050c8bd89158ad519109ef7c5eb110b906cc49f25763", size = 793420, upload-time = "2026-10-24T18:11:20.551Z" }, + { url = "https://files.pythonhosted.org/packages/7a/be/e3097d859b075344a7be57774a58d468eafb0ca88e02aad93eb31d69f6ba/wcwidth-0.9.4-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:d8905f1390d828d745fdd1904374c90386d902d3cfa9ee88e9875099f75a4e17", size = 796192, upload-time = "2026-10-24T18:11:22.552Z" }, + { url = "https://files.pythonhosted.org/packages/5e/cd/739710c8cf0de461239db5bb6ee678c9a33d30aaa22beff55cc356781818/wcwidth-0.9.4-cp310-abi3-win32.whl", hash = "sha256:4831662c396dd4c59a016ec53c0ac96738006d653a00482777d9a2e2ea323d62", size = 593229, upload-time = "2026-10-24T18:11:35.609Z" }, + { url = "https://files.pythonhosted.org/packages/d6/f1/c123f902bc2ff9e9c2ab66241b8872204df87cbb18ecdf035e120860fedc/wcwidth-0.9.4-cp310-abi3-win_amd64.whl", hash = "sha256:f28d77153303450ee13ebbe888297e75cf532c754555b6cabafc9bdda16c421c", size = 597780, upload-time = "2026-10-24T18:11:36.952Z" }, + { url = "https://files.pythonhosted.org/packages/4b/88/1cb5ddaf5510b918e01aa95fc4b68df91dead784b63e4931037c5673e85f/wcwidth-0.9.4-cp310-abi3-win_arm64.whl", hash = "sha256:2b58fc8cf2de1bf9cdb68b8beaa5be198742414a7c8cd97aa51ec039783ffa49", size = 598786, upload-time = "2026-10-24T18:11:30.886Z" }, + { url = "https://files.pythonhosted.org/packages/b0/cc/46a31c12b4cdad04f546a3c0aca5d000d77aa5069ae88b4db24525cc29c4/wcwidth-0.9.4-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:87e4101789415a6cf55ec4c53eceeb4782c2654c88692941cb588f19dca1959f", size = 613805, upload-time = "2026-10-24T18:10:58.887Z" }, + { url = "https://files.pythonhosted.org/packages/18/f6/5a8327af9a65153ea9823d6a12fc182f325264050aa25c05a5deadc189c9/wcwidth-0.9.4-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ab1e5190fb82476e75fbf963e9d59b4fb1c1e1f4ced82069a0c989016aa959f7", size = 619936, upload-time = "2026-10-24T18:11:04.073Z" }, + { url = "https://files.pythonhosted.org/packages/1f/d3/bb8a7f4aa9b915e56e09841b07636ba49c82ec987ad3d2022e1696c038d9/wcwidth-0.9.4-cp314-cp314t-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:8f892713ab5795d3abae181e9c02db0eb24de4084f9ee080535369d3d98d7bb5", size = 794563, upload-time = "2026-10-24T18:11:24.4Z" }, + { url = "https://files.pythonhosted.org/packages/12/0c/986acadef534688a57502d484a40e0f30bdca2d39514fe0a311f7d575f70/wcwidth-0.9.4-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:befbf46467100e43fd8c8cc0c031a0105f13f5418c3be95fdcf0c47214487967", size = 806565, upload-time = "2026-10-24T18:11:14.297Z" }, + { url = "https://files.pythonhosted.org/packages/9b/1d/66a94b9ac07037d7cf2c1f1288867c9932215d467893eaa5ec8d548c7f2f/wcwidth-0.9.4-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:9c4b0dd04cca520792100f6110d10be262c94b285a281d1759c551f159214633", size = 802372, upload-time = "2026-10-24T18:11:26.275Z" }, + { url = "https://files.pythonhosted.org/packages/d1/00/1d50b8e8b45a8330b582695bf8196081a609317928a3718cf21b3d14a899/wcwidth-0.9.4-cp314-cp314t-win32.whl", hash = "sha256:14410eb73178cc492aa9bf22f7c12e3bf930e5470b7220cf6f530efbfa2e03f3", size = 598917, upload-time = "2026-10-24T18:11:38.369Z" }, + { url = "https://files.pythonhosted.org/packages/b4/fc/3e39a33fc8f5c4e07611578710275039c9d4a6655e2be7cf3459401a30cc/wcwidth-0.9.4-cp314-cp314t-win_amd64.whl", hash = "sha256:c36954849aafae1092d6f9de9548c5280c1d6841637a27ca288b2241c802c4ab", size = 603536, upload-time = "2026-10-24T18:11:39.922Z" }, + { url = "https://files.pythonhosted.org/packages/e1/8c/b1f399fd2f8449e42978192967ab6df441d7cf894b10117983c36c062b18/wcwidth-0.9.4-cp314-cp314t-win_arm64.whl", hash = "sha256:79e09e9824c88f5e275ca99e921685567a5c5c1bb6165c16e27ddd1adab33a95", size = 605127, upload-time = "2026-10-24T18:11:32.367Z" }, + { url = "https://files.pythonhosted.org/packages/04/46/839780e772e9068580619d4d691348b7a5f9c4fa5ffe501e522eefeb27cc/wcwidth-0.9.4-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:a8c9ce14c6b4a499e61de6de7e9e456de11be8bc991554e2ab2ed4feb40b9664", size = 613850, upload-time = "2026-10-24T18:11:00.725Z" }, + { url = "https://files.pythonhosted.org/packages/d2/66/b2559c7012bbd4268f5b5c0288cb793c78235d354e306871a55893aa9d1a/wcwidth-0.9.4-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:d68f09093c9bec9226a52edc47487042ed4f64c5df91d06f00419495071c0279", size = 620207, upload-time = "2026-10-24T18:11:05.975Z" }, + { url = "https://files.pythonhosted.org/packages/d1/fe/7d2c39e28924b2430b20099e36276f14e00e75c7bbe4ba5b1ed44d1d465a/wcwidth-0.9.4-cp315-cp315t-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:d76b7c715c5ca0103b28915f699f1020ae21f06f1d22cdd85a7a97f7b1536eed", size = 797056, upload-time = "2026-10-24T18:11:27.911Z" }, + { url = "https://files.pythonhosted.org/packages/2b/d7/f4f9967a411e02b89b74df2f49f44977c4badccf29738f3ae6941619e27c/wcwidth-0.9.4-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:29c0685f5f5f8815b88308fdcbe2cd12a92996a21a5b1e18352d165174ef7a6d", size = 806169, upload-time = "2026-10-24T18:11:15.724Z" }, + { url = "https://files.pythonhosted.org/packages/ac/bb/e2b40c6522f3aa1222558487dda3551d297e07e245761b4816f6caeebc29/wcwidth-0.9.4-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e05458491759aa42b7b85f36345b3e6df082d6d2d9bf616299668fd598e0209d", size = 803462, upload-time = "2026-10-24T18:11:29.269Z" }, + { url = "https://files.pythonhosted.org/packages/a8/f2/ab69009f2dd0d3772d3e07f025fa046b33c60c195e4f2e5f000297d23547/wcwidth-0.9.4-cp315-cp315t-win32.whl", hash = "sha256:9e5090d253f5df99659cddfd3ed90dd21f6ff51989b0421331a63fb2681cbe27", size = 598931, upload-time = "2026-10-24T18:11:41.659Z" }, + { url = "https://files.pythonhosted.org/packages/63/6f/b321f10c2298e7d16cffc1a5f05f3d7e5231b45f9e68af5ee378e23bb2e5/wcwidth-0.9.4-cp315-cp315t-win_amd64.whl", hash = "sha256:12786620375dc83fabf4b2b2aa52416fef2bc6094522ea29c8a53c75b0dfe9b6", size = 603485, upload-time = "2026-10-24T18:11:43.052Z" }, + { url = "https://files.pythonhosted.org/packages/4e/cc/7eeb28059186cae72a770df79e744f232ef068192a5a588b718473e35bb4/wcwidth-0.9.4-cp315-cp315t-win_arm64.whl", hash = "sha256:2cca7b5d0b9d0ae49068d3ce806e965326a987f555b62eaa322223396e10d01b", size = 605198, upload-time = "2026-10-24T18:11:33.75Z" }, + { url = "https://files.pythonhosted.org/packages/6f/0c/309b1813b230d1dbbd6f2c2ab2bb21ef68992358977605d9ef289bbfedcc/wcwidth-0.9.4-py3-none-any.whl", hash = "sha256:901eace6d2dd25ebb917d0ce5db18e5c537e1504c905cf32f0d006c12098b05d", size = 301806, upload-time = "2026-10-24T18:10:52.651Z" }, ] [[package]] name = "win32-setctime" -version = "1.2.0" +version = "1.2.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b3/8f/705086c9d734d3b663af0e9bb3d4de6578d08f46b1b101c2442fd9aecaa2/win32_setctime-1.2.0.tar.gz", hash = "sha256:ae1fdf948f5640aae05c511ade119313fb6a30d7eabe25fef9764dca5873c4c0", size = 4867 } +sdist = { url = "https://files.pythonhosted.org/packages/1a/e4/f0f252c65f9bf7c4042b1f707ef338d49f799da582234e1d3e6e2cfca291/win32_setctime-1.2.1.tar.gz", hash = "sha256:077b35471bf1ff1d71e165c919ddc0cecf51b8e1802f5d820d33a96e2f6717dd", size = 4983, upload-time = "2026-10-25T18:21:32.318Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e1/07/c6fe3ad3e685340704d314d765b7912993bcb8dc198f0e7a89382d37974b/win32_setctime-1.2.0-py3-none-any.whl", hash = "sha256:95d644c4e708aba81dc3704a116d8cbc974d70b3bdb8be1d150e36be6e9d1390", size = 4083 }, + { url = "https://files.pythonhosted.org/packages/bd/df/5593480bc1e932eeae28e4fa182ab68174edd0d77409ced3b6491d02d1d5/win32_setctime-1.2.1-py3-none-any.whl", hash = "sha256:a9edc685b35414bec69392c866ed82456ad125ac4a6a4b703ec1d8b462d4f477", size = 4215, upload-time = "2026-10-25T18:21:30.939Z" }, ] [[package]] name = "wrapt" -version = "2.2.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/2d/9f/06263fcd8ad6c405f05a3905fd7a84dd3176eb5ad46e44bccc0cd16348bb/wrapt-2.2.1.tar.gz", hash = "sha256:6744f504375775d7609c82c8d3d94af1c9a6f05586984536905908ba905277b9", size = 127620 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/89/0c/bfae7b9401583b6d05938cd16dedc43857d96da2f8a3d50d78cc515bf6ff/wrapt-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3ffad790d9d11d8ecf9f17c4bb671a5b4089e4d8b575c46c5129597f41f836b0", size = 81021 }, - { url = "https://files.pythonhosted.org/packages/26/58/80f6a6599f933f4caecc1cb3ee88a04faf81e8b9bddbd6109c688dd63e0f/wrapt-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:628f5220c7a904d5fc78f7075c8d7871433eb6d035c94728a22fdf85f193d2a8", size = 81692 }, - { url = "https://files.pythonhosted.org/packages/17/93/fb357cc7847c58a8ae790be718903afa81a28d23e642c843dc4129e8a0b2/wrapt-2.2.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:61acce4257a9883669703c525447c5b4c392edf0f987ae77ec32668440158f0e", size = 169364 }, - { url = "https://files.pythonhosted.org/packages/aa/0b/76b601ee309a8bd556af0eecb184394c20b3c49aa9c8e085aa1ffacc2568/wrapt-2.2.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:727ab4244622cd6ad2390f322642090c877d2e83a608d2653a7643ae5368d926", size = 171079 }, - { url = "https://files.pythonhosted.org/packages/cd/87/ee3f32d5658e3e26d3e0e457922b47a36dd3bfbdfee7f97bb3e802344a66/wrapt-2.2.1-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:03df9ebed4c73ab93fa8c07e3d41d818dfca1852b15731a3de59457b27814624", size = 160205 }, - { url = "https://files.pythonhosted.org/packages/b1/d0/ae2fd64277a67f5d7bffcf2d05eea1e476263fb2a072baf0b0129ab85984/wrapt-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0d9ff006f420b2ec8296aa56ade43ea7da3e997e85769f0aafc5e0661aacb710", size = 168922 }, - { url = "https://files.pythonhosted.org/packages/b1/f3/2d541a060c5bbafb9400bca4917e4d78bfd1f239f404782c86831a8f6b29/wrapt-2.2.1-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:844c858fc3bb7eacc0ba8efa904935d16aac6a4470948ad1e7e55c9f5a2a665f", size = 158388 }, - { url = "https://files.pythonhosted.org/packages/1d/68/8d92c8800c57e93cb116ae9e9d6cbafc34fade5ee9f9107b6f203fb4dc35/wrapt-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:87bacdaf225117a342a20d9c03438d701c02112f6e3f351ce9b7f32354f14797", size = 167682 }, - { url = "https://files.pythonhosted.org/packages/30/72/83ea3790ea352439442349388e29ff07b76e0686265f9088bbb505d1608d/wrapt-2.2.1-cp312-cp312-win32.whl", hash = "sha256:2f8c90c8afde51969487be4e1343ae049b268854877d415c2510baf833775052", size = 77857 }, - { url = "https://files.pythonhosted.org/packages/ef/cb/99450668dd3502d62a54a1c8aa56e44f34cb8c1261b381cfe2e7926c3b75/wrapt-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:6ce32763ac31ce94fe9aada947e479b1975012bff166da409b4b9e4e376cf7e5", size = 80825 }, - { url = "https://files.pythonhosted.org/packages/e6/3a/87512881be64e743f9ee4c66f4cbe8e884974bef2a5989af71f999653ac7/wrapt-2.2.1-cp312-cp312-win_arm64.whl", hash = "sha256:8d1b4d0e0c2119587a31f5c029abd547e0c81d93b89d394566fe1588659eb579", size = 79087 }, - { url = "https://files.pythonhosted.org/packages/88/d1/a1b08f8f4fac8cbb156fa51cf64ee2c7f7f74f9875ba3cf70b3c58368694/wrapt-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d2beb1c7cab10603aecdc42f8edd6ff013f9a32e4543474e38e6b77ce9975aeb", size = 80831 }, - { url = "https://files.pythonhosted.org/packages/54/ce/57890814991446a845e09b3445ce8b694f27eb0577004f2c2a36a9772ed4/wrapt-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e0cb7e4dd71f4c32e5e84843cd3c4cd65dda034314004bbe1d7f99af2426ab80", size = 81375 }, - { url = "https://files.pythonhosted.org/packages/38/65/08d7a6c76ac4493bdb668205ee9c1de1bd5daca61717c3e9aa49b4c01499/wrapt-2.2.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:95821352042722cd9f1108874579a47989d0a7e12a37d87d2fc4af20fd99ab8a", size = 167417 }, - { url = "https://files.pythonhosted.org/packages/62/ce/f1ccbee7a1bfe5cdc6b3da6bab4b45713d628b9294da32a39f563d648140/wrapt-2.2.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:abd621552ede77c4c69be7fac44ba911225b0c812b6ba604e5964cf98085b474", size = 166948 }, - { url = "https://files.pythonhosted.org/packages/86/2a/f85d48d1cd4869aee6704028d257d740a47c1c467b457ce396b4b5b55d07/wrapt-2.2.1-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e3677c7146ce694874941ba82b57092cc4875445aadf29d72807351023105143", size = 158148 }, - { url = "https://files.pythonhosted.org/packages/fe/5c/93939ad11d4a12358ab1aab219a2ef5efa5612e0db6b9fc65af8af1a891b/wrapt-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9a5934eaea872e17936b5f45501eba5ab0bce9a74122e172b663d7c28c459c4a", size = 165905 }, - { url = "https://files.pythonhosted.org/packages/e0/22/b8c2aa89862ff58605934d7abf4b70e6a5a1c33df96656f49035ccdf1c8a/wrapt-2.2.1-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:f5b9daf6b629fce418e0cc3dd0436eac045188fa35deadb7a7f3941d5b8203f9", size = 156712 }, - { url = "https://files.pythonhosted.org/packages/5d/78/bf00a7b02239c12bb02ddcc3c0b971bfcc36e578c5a44f1ccfef5b458545/wrapt-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f53ac9f3ef573326d009ed809beff4efcac6451931c2b8132586da4b9e53ff31", size = 166560 }, - { url = "https://files.pythonhosted.org/packages/fe/93/6390ca9c5b787683cef588d04f57c8d41b9a2323b5597a65f18638c90ef2/wrapt-2.2.1-cp313-cp313-win32.whl", hash = "sha256:1ffa9cfd4bdb581539951b14ae661ff20ed0c3599b3e911a131ee0ec5ac11337", size = 77817 }, - { url = "https://files.pythonhosted.org/packages/97/73/ce10f0e71c0cfaa1a65faadb8efd4852028b3bb9ba28932b8889df769d38/wrapt-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:368eac1e20fd0bb03dd3cc42bf9887154c3861b60989389ccb5fac032617d215", size = 80736 }, - { url = "https://files.pythonhosted.org/packages/c7/4c/89f4a6818fafbbd840330e4fa3873073e1bfc166133a64cac7f8fde7a5e3/wrapt-2.2.1-cp313-cp313-win_arm64.whl", hash = "sha256:c754dafdf5aaf0b401b644a90a30046929a0dd1a536e0ff0ec959a59155d9c7f", size = 79099 }, - { url = "https://files.pythonhosted.org/packages/bf/f2/9a8741c46f8c208ac0a45b25ba170bcb4fb72a2781d5fb97dbd7b6be73cb/wrapt-2.2.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:ed928d0fda15fc0adc8d13305c8b3c0f2fba5b0669950c9e6d019d9162a3b3e8", size = 82802 }, - { url = "https://files.pythonhosted.org/packages/9c/0d/e9c855716a3705eef1416456bdf062b60620726fdc59428ff670fc3c60dc/wrapt-2.2.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:fafb4e739e43544d12cb4abd1605fd4683b6ca6a9ad682b7fd8f4d21973eafa8", size = 83329 }, - { url = "https://files.pythonhosted.org/packages/3b/d6/a88f1c13112b7831adac75cea65d8310e0d696d570c8961844c90a57b865/wrapt-2.2.1-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:74d6a0c31472fe5d814917266b9f46495d7c61ed890af08b468acea92fb89a8d", size = 202937 }, - { url = "https://files.pythonhosted.org/packages/42/65/e29d54aef06a4d898a5b8a25589a0b3769bde454f922fad8f6f89fbfb650/wrapt-2.2.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ab5be648d5a0b86b7438864f8df3c705a65cef35a2fd3e5561e3e203167e0f27", size = 209997 }, - { url = "https://files.pythonhosted.org/packages/2a/91/e4454263516cf0e12640912fbca9a83654e424f0a6ddb79f5cd7ce14bf33/wrapt-2.2.1-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:9d8f204c8e3a8bf9ece17e0a83d137fd807440977f8a5e762d59306795011440", size = 194856 }, - { url = "https://files.pythonhosted.org/packages/de/d0/fe0ee202286afdf4a7f77dd29f195703145764d572aec209c5086e57d924/wrapt-2.2.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:d047f6498c973874ba08ac3f97c69a2c4b2211c8de6f4c205f75cb1c9522596e", size = 205654 }, - { url = "https://files.pythonhosted.org/packages/23/b6/87d860dfc6460c246af70b1fd5c8b76df77571b42a493459423ded94fd7d/wrapt-2.2.1-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:7a4fdb9326aab4a5a477a1640e5ad786a8495901009d7e7b038371edd23a9d2b", size = 192206 }, - { url = "https://files.pythonhosted.org/packages/df/46/3eea8cde077d985f239a38c0257087b8064fd9ee9b1a99e282d2c86da4ef/wrapt-2.2.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:c8cc5094b08abeae52da9c73c8a32003623be691a5193df2f4e3eac3d557c394", size = 198428 }, - { url = "https://files.pythonhosted.org/packages/18/dc/b927ee9c7fc67adc3a5658f246a0d275425eb840ba36e7b702e70f18bde8/wrapt-2.2.1-cp313-cp313t-win32.whl", hash = "sha256:9907a4402ab6db12b7077a0ea5d7a4d028ecb22c8eee2b53527080d347cd1562", size = 79448 }, - { url = "https://files.pythonhosted.org/packages/ec/b3/fd30b473fe498c70e6b9a5f328b8d3fbaf1b8c3c481465f59724bba8eb70/wrapt-2.2.1-cp313-cp313t-win_amd64.whl", hash = "sha256:5590d63f5243251641cf543009b4c9314a79d0598fdb8a8e4cfc918494536c53", size = 83021 }, - { url = "https://files.pythonhosted.org/packages/ee/f3/96c39153a8737a6e9aa85adef254ac4195bea3f2d24efc60472ccc3c9e2e/wrapt-2.2.1-cp313-cp313t-win_arm64.whl", hash = "sha256:c318a64b53d97b841d7b5e637517e50a27be64bc695128422953d4b21710954e", size = 80295 }, - { url = "https://files.pythonhosted.org/packages/0a/a3/11d7f34ebbf3231bc907a3e6d5ee051b14d034c1bc7b65a97d5cc00516df/wrapt-2.2.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:6f56a647e4eaf5f0ca40330fb070f566bdf9f7b0db89a1af20d71c28dcd7a0ab", size = 80879 }, - { url = "https://files.pythonhosted.org/packages/13/3c/b74cfd984cef560b900fb1a727af20352d89e1f06bf2e1114dd3f00f5f5a/wrapt-2.2.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:64b7deeda4b70408e382328d8bbe52a256fe9bc63ae3db86d804608367e5422c", size = 81462 }, - { url = "https://files.pythonhosted.org/packages/15/a3/7c8f704b8dc07dfe0a5d01c2edbfd88317aa8e5e3fa7c743eb7a085ae767/wrapt-2.2.1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b9cf53ba90717db2e292401de290776c498d4bbfb0d4a559ca2895db8b9dcb5c", size = 167251 }, - { url = "https://files.pythonhosted.org/packages/80/85/a34d1888d97247da6c2ff6118c3a721c73ed8cc4dd198c00208bb73b6f80/wrapt-2.2.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cf3638274ab9d9b724c9baa0b4c04e132cd6faefb78b4dd3dd1a02a4bdaad41e", size = 166316 }, - { url = "https://files.pythonhosted.org/packages/e9/d7/72ffaeb01eebc704afe3fb99e840480f4bda45f0fa66e3381b6a39251c8f/wrapt-2.2.1-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:aed9658797d0b45d6c49adcfc6b41f66e6f2d0c6de3ec79e16cf4b1855df240f", size = 157952 }, - { url = "https://files.pythonhosted.org/packages/24/5b/36f5d6b024e4edfdd90b140742d11ebcf7836daf5c9daf326c55c24db412/wrapt-2.2.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:1d676ee388bc42a04d56dd7deb5605244dac2e35cc2fadbb43c9fa25bbd93508", size = 166130 }, - { url = "https://files.pythonhosted.org/packages/81/06/9296d9e97bfdef5483dfcc859d57b095b257144b2bc5300ab521e06f4bc7/wrapt-2.2.1-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:e395f7bc31851ef9b612050368cb446e9bc14cd7454b025018980349caf25ae5", size = 156604 }, - { url = "https://files.pythonhosted.org/packages/53/37/16953929ed6776175720e58fc966e779926d8d71e2c7b2273230590ca71f/wrapt-2.2.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5f1845c2a8cc1180ccccfa45785dd06f562730d19ef75be180334254012b6283", size = 166007 }, - { url = "https://files.pythonhosted.org/packages/b9/73/20ee58c0612dae7c31131a7095345812ed2c7b389019e175f68cde34e5b4/wrapt-2.2.1-cp314-cp314-win32.whl", hash = "sha256:436addbc4bb4fc0a88c702577f51195d7d73683a7f3e0e5b253d8404d7847243", size = 78327 }, - { url = "https://files.pythonhosted.org/packages/22/b3/ef7c3295d02e0448a71c639a36a057f46d524d057c9486291a7a3039e65c/wrapt-2.2.1-cp314-cp314-win_amd64.whl", hash = "sha256:50972a1d974ea07725a7f6b1cec5f8759008afd030a0024843ebe7d52de47f2b", size = 81144 }, - { url = "https://files.pythonhosted.org/packages/ac/dc/7bdf336953f99f4ceb0a584bb8870e42c8f26f93ea10c87834dad62f1668/wrapt-2.2.1-cp314-cp314-win_arm64.whl", hash = "sha256:1c9934ea5d92957e3cd0adbc0845539dccfd62710ebe16195a8c66c53954db36", size = 79569 }, - { url = "https://files.pythonhosted.org/packages/6a/6d/6dfae80150ff1919c356d1dd528f049bcdfaae29b4d284bc957e022caef4/wrapt-2.2.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:17de18fc12cea55b8a9587314cb830573e37fb33b247a7515696350863714188", size = 82892 }, - { url = "https://files.pythonhosted.org/packages/82/7b/4e34766a7d7804ffce9e71befe47e9b3225dc350c49c94493c4ab39fd3a5/wrapt-2.2.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:a9dec1aca52dddde7df94818310fa2fe79739c8f385b2014c4cb1035f5508199", size = 83333 }, - { url = "https://files.pythonhosted.org/packages/9d/57/0b34db3e8de44ccfece62d7b337abd1631dd810f5adc5f3db571727836b5/wrapt-2.2.1-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:69f2e9244542cb34dd59c7f073445b9e54ad9f3fce8d93606c368a1b499fc413", size = 202899 }, - { url = "https://files.pythonhosted.org/packages/e5/45/ac0c459f154b99d92789a6cba7ca727185b83513b986f8ec7fe2aacddcbf/wrapt-2.2.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2d83966dc7f4f45e8b97b5933685ac2e6e67fc0e19246ea314bceb9a8970c956", size = 209986 }, - { url = "https://files.pythonhosted.org/packages/b7/e4/77e37ff33ad018fa81ade52c25fa327b80b56f81d734279a63614fcb4cbc/wrapt-2.2.1-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:78b0aa6bfb7be8deed0ab23e7aa028cc5210c29bc2d32a04d52b50e517a7307e", size = 194893 }, - { url = "https://files.pythonhosted.org/packages/dd/9d/7ea651d1ab032fc5fa222fbec91d0f8a1397f6ae04ebb93fa7219aa921d7/wrapt-2.2.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:05d5cb74d1b232ec8cfa130a8f900708699ff2491d97b8f85a4cdc5996294b85", size = 205636 }, - { url = "https://files.pythonhosted.org/packages/09/af/8e88031a701275b9085c54e64bc88c0b1cd55c77eadd400691c371cd76c4/wrapt-2.2.1-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:f6518b94edb9150452e9aba08027d4cc293433753ec1fbefb4629a21cbc74181", size = 192267 }, - { url = "https://files.pythonhosted.org/packages/bf/a8/e657ca876b06710194f243d81c4b0896ade646e244bdbec2d87c8c56a8bd/wrapt-2.2.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ed55af48b3eb28f43228ca2306788892bcb629eb2b5c4876e2a3659872c2f17a", size = 198378 }, - { url = "https://files.pythonhosted.org/packages/c8/59/822efe4ea722a3961331bfa35b7d90937790d2c20f0616de1997ccc3aebd/wrapt-2.2.1-cp314-cp314t-win32.whl", hash = "sha256:2e08688ab16525897da6589d56d0aebaf417bbe91c2d8e3b96203b1efa596e85", size = 80226 }, - { url = "https://files.pythonhosted.org/packages/ab/31/2a7dc5f6abb2fca0b6e1610e120419f603650aceb4f1d3ac4cae0354e162/wrapt-2.2.1-cp314-cp314t-win_amd64.whl", hash = "sha256:fd0135d34387f5fd087d9be368ea77ea89cf2451dc1cd1c622d35021bcb3ab50", size = 83835 }, - { url = "https://files.pythonhosted.org/packages/9f/c0/782b86e28d1ceebeb74cccea12d2cd3d2ba0bd68e3dec20b1bc5873f6127/wrapt-2.2.1-cp314-cp314t-win_arm64.whl", hash = "sha256:f70db64e8266d7c45d3b735f2e08eeb434b5e03da9a479ae42b2e2e486a21a00", size = 80722 }, - { url = "https://files.pythonhosted.org/packages/53/46/29ac9daf11a86c22a8c38cd9236c62928ccae83f7ceb06bd3b0467cf9d05/wrapt-2.2.1-py3-none-any.whl", hash = "sha256:3aafea2975caef8ca49400640dde02cc7426e798f24870ed01f490bc3cffd32f", size = 61000 }, +version = "2.5.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/04/22/89e2f3bdae5cb34e0cab0cd86d7172dbf418de4b46c9b17b9c7a560dfa44/wrapt-2.5.1.tar.gz", hash = "sha256:f595bb0185aab3e9dc31950c95d914f56ea8278810c3b928f3426e12ed6d27bc", size = 184455, upload-time = "2026-10-14T00:39:39.24Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/66/9b/c7f97d5493a33b5ed01d3c85745f9bdfdd2e5c2785471b8d8b55a3c273d6/wrapt-2.5.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6e3eff05ae616671b40d7ad0a504210329e4adc9fb91415663570aca93c5f5cc", size = 106452, upload-time = "2026-10-14T00:37:18.951Z" }, + { url = "https://files.pythonhosted.org/packages/7f/b0/335b0af2930938678fcde954b29780b26308961b93df5e0192fc182e8b7e/wrapt-2.5.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c44dd9881626da7d621c23805f26726f6b023cf3e9755f48d092bc9cbef4a8e7", size = 106087, upload-time = "2026-10-14T00:37:20.392Z" }, + { url = "https://files.pythonhosted.org/packages/4a/5a/2a34ba5a468e9d3d6e5b0733280e1ae3c850bfc5f1d681fc0e97f564d1f2/wrapt-2.5.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:bfaa998ceeea4d0aa72b40cdd0023d19409504e244b439ff2aa9f01729341c5f", size = 250438, upload-time = "2026-10-14T00:37:21.882Z" }, + { url = "https://files.pythonhosted.org/packages/b3/d5/3d4ad322af74d3ab2a14f69ba844cdd3edefb555edfc1c1976ec0112d5c4/wrapt-2.5.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d6d274ec50a5b208be75596dc44ea253e65deaa6ee3a600babc86dafbb957dfc", size = 250594, upload-time = "2026-10-14T00:37:23.497Z" }, + { url = "https://files.pythonhosted.org/packages/37/1a/3cbf48425ec2c66aa9645218458da1e19e315abb9766604d3c49e579076c/wrapt-2.5.1-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:1a96e2671c60f9f09ae547b5a815cecb29af16caa68d73693387d0028788cb32", size = 229856, upload-time = "2026-10-14T00:37:25.029Z" }, + { url = "https://files.pythonhosted.org/packages/cc/e7/b2ea57f4c51258659200565af8617d76992b0fe65e6aad7162dd5720ef05/wrapt-2.5.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:729d644b6acaf4846a4ef81b037857b66a01dea6d227f827c6d71c0b6d656d6c", size = 247153, upload-time = "2026-10-14T00:37:26.67Z" }, + { url = "https://files.pythonhosted.org/packages/9d/c1/4714743e672ed1084a035a2a4f0edeef7838399753b4856a0dc46ef9487d/wrapt-2.5.1-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:859f67bfc31eb7ab55f237b629cd4ab0441b075912446481f910f7d02066811e", size = 226726, upload-time = "2026-10-14T00:37:28.425Z" }, + { url = "https://files.pythonhosted.org/packages/91/e3/c00401bcc3485eb9937c3fe4a1cc8fc3b61800b1378ea3a143ea1c30f6f6/wrapt-2.5.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:29b62e87fcd6a1893f669abfd02a596a7fc5cfa79fa57e42c4e650a6c170c67b", size = 238843, upload-time = "2026-10-14T00:37:30.075Z" }, + { url = "https://files.pythonhosted.org/packages/76/b5/c16759fb0721e63df92b576c2222ce1f11690a8b300fd91b49c55436865c/wrapt-2.5.1-cp312-cp312-win32.whl", hash = "sha256:f1c911818fb076910ef509f2298dfcb966a54a6ff068eebd459632102cf589fb", size = 100488, upload-time = "2026-10-14T00:37:31.625Z" }, + { url = "https://files.pythonhosted.org/packages/22/d5/39d5a704650f18799f37841442b464edb81cf2015f006eaef26068acc6ea/wrapt-2.5.1-cp312-cp312-win_amd64.whl", hash = "sha256:c39c7130ea0702c4ab0faf12da1df1e02d5174305c17edf02309e2f058c4114f", size = 106048, upload-time = "2026-10-14T00:37:33.188Z" }, + { url = "https://files.pythonhosted.org/packages/21/bf/65743adeeb5476920c62dad6cded7bc8789e19bd4f9a336d4ac812adb8de/wrapt-2.5.1-cp312-cp312-win_arm64.whl", hash = "sha256:e089a22ff5af1290b8c759a610830bdb2a829ef9c3d7797e4ee32c2f795ed482", size = 103200, upload-time = "2026-10-14T00:37:34.673Z" }, + { url = "https://files.pythonhosted.org/packages/e4/6d/cfe55762435f36107815d56a2cfbebe7e3129b593c47a670c6eb1d7917d3/wrapt-2.5.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f98eaf784cd12bc69c77af398084174531007cd81849c962163ccfc6e791f3ea", size = 106068, upload-time = "2026-10-14T00:37:36.087Z" }, + { url = "https://files.pythonhosted.org/packages/01/b9/41642877fe741db56d240833c8822188b663c4c5d52beb087964774035d4/wrapt-2.5.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ab6db7d2a18d366cc57c2228253cf26443190aba0a6dd0939b3c1e8ac6e29e2c", size = 106190, upload-time = "2026-10-14T00:37:37.768Z" }, + { url = "https://files.pythonhosted.org/packages/37/62/20edad100b93552ec5c172e509a9db898a73d5043ae701fcb6e9986f9d33/wrapt-2.5.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:f1630201b0e2a96bb26304b7adfbd91a4ef486abb5a4c48377444a0bed749f37", size = 248519, upload-time = "2026-10-14T00:37:39.321Z" }, + { url = "https://files.pythonhosted.org/packages/3d/e9/8d81185bc9a40cfb43d91fc70a1e80ecde752c95dc98f5452cae82037976/wrapt-2.5.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d800c7689154622b0ba2922ceca44a3cf2ef61c3b9a4c4eeb1d8b3050d7ededa", size = 248488, upload-time = "2026-10-14T00:37:40.96Z" }, + { url = "https://files.pythonhosted.org/packages/8a/88/8431df4fd81f0dfa83e8ede463eed311d083c5a279a56891dc0396b07b0e/wrapt-2.5.1-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:5b53000b424dc2133eaaf22838a2352d3497f5d7c2e7d9a2acfe675ab7225bb1", size = 227392, upload-time = "2026-10-14T00:37:42.599Z" }, + { url = "https://files.pythonhosted.org/packages/db/8a/ee6f8542eeccad6874faf0b7b2e129952c527a482f1d28940e2111fec2d6/wrapt-2.5.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:76f230a9b07e3cb66646d265398f579abb6128b1bb4cb97c74b1ae5d09e96f31", size = 244972, upload-time = "2026-10-14T00:37:44.209Z" }, + { url = "https://files.pythonhosted.org/packages/4d/1f/32c59e7fd522409f3863dfecdab5315ee9ba37f96020b6f0adee9d223310/wrapt-2.5.1-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:fd3f878a4aac3c262447ddf43c5f4c18fc67dfc3ba69c4fb1c7a4c4af96abe7e", size = 225316, upload-time = "2026-10-14T00:37:45.948Z" }, + { url = "https://files.pythonhosted.org/packages/ae/d6/1b9abc1244592034c5db744571e17d663f0f1b0ce6c8ba279c60f6f9c3a8/wrapt-2.5.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:0c9480bdee340a1602cae5a777146ab4be3e384fdcb569fffdf8721032314645", size = 237145, upload-time = "2026-10-14T00:37:47.535Z" }, + { url = "https://files.pythonhosted.org/packages/f0/ce/8f3b5482f768c1d60fd2557d049c766543fef5ec707037cb410a57eb65ee/wrapt-2.5.1-cp313-cp313-win32.whl", hash = "sha256:dc401274fcc7b15b3b2c12df2ff34024a11925243a7d3daee91c6d7d14f9addf", size = 100462, upload-time = "2026-10-14T00:37:49.21Z" }, + { url = "https://files.pythonhosted.org/packages/7b/dc/6a5735874ea79816f85c1ec9d92139d7073c20d1881c15ff2108c211354b/wrapt-2.5.1-cp313-cp313-win_amd64.whl", hash = "sha256:09b1893ee4063706574c1813abf479b8b51926633fbdb6f96aab8dc7b0976668", size = 105870, upload-time = "2026-10-14T00:37:50.745Z" }, + { url = "https://files.pythonhosted.org/packages/08/83/a4e8b5a5a32f8dfc5dad8344f1e2b908f7d8d84b11c3c336bf7f79a5144a/wrapt-2.5.1-cp313-cp313-win_arm64.whl", hash = "sha256:f280c115ea64eff3dcbd68a668ce3f63476a4ba386bbabb318017e286196ea2c", size = 102903, upload-time = "2026-10-14T00:37:52.323Z" }, + { url = "https://files.pythonhosted.org/packages/25/3d/ec1937283863bbe0d90528e09f2b27cfc0dd7e608fc2b65c804967dee369/wrapt-2.5.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:cf63fffcdcd8c60f223d3967bb92cc4fc2e8b46f09e75b67a6a75e6f47c0fc43", size = 106439, upload-time = "2026-10-14T00:37:53.853Z" }, + { url = "https://files.pythonhosted.org/packages/93/39/cca8afb80dbb9fce6103e59db507a9415291c4dbe97ea055875ff62901fb/wrapt-2.5.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:9f0750cbc2e29e4f3c9529d3587d4e7ed8f60638ceafb80b87a95833b0c5acd9", size = 106378, upload-time = "2026-10-14T00:37:55.386Z" }, + { url = "https://files.pythonhosted.org/packages/aa/a0/e784d7a9fd277a2ee395490ec4df96608b7fe218bb1ef7dced2a1caea490/wrapt-2.5.1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:3cf273b7e8d2038abb7f0a8c6550aff4f617b9d486a9965c8e8acc96a3a04de9", size = 251505, upload-time = "2026-10-14T00:37:57.022Z" }, + { url = "https://files.pythonhosted.org/packages/81/56/01ebc86b88056f5782b9d50f962fb398c6b82aa11efc98f50c64896d94e3/wrapt-2.5.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:380f72610181883f66b41442cfc7c0f7552b42169efb2113def26e6380013d37", size = 250744, upload-time = "2026-10-14T00:37:58.652Z" }, + { url = "https://files.pythonhosted.org/packages/5f/5c/0e8eaaf31e2d6e7bf13c6eae2fd5b85eaa24e21e06466e6e7a0f35532689/wrapt-2.5.1-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:cef2a8f006410b6134a0d273ec037fea8cc7a6a914f1bd7555ad9788ad788c6e", size = 231598, upload-time = "2026-10-14T00:38:00.505Z" }, + { url = "https://files.pythonhosted.org/packages/6a/6b/6a3e257e65de6cc0027e78b423942697c74451520ba3797fd86455ec4df8/wrapt-2.5.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:9bad4dbb4e61624fcce5f301e37f9e743ecae4f1259a3777b3207eb7eba3dccd", size = 247998, upload-time = "2026-10-14T00:38:02.63Z" }, + { url = "https://files.pythonhosted.org/packages/22/38/b2b8f3ee22b05f33f5aefb052844a36a0d7edd1eaff2ff4249f97792bea8/wrapt-2.5.1-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:9a34640eb6295f33ca23462977de275fe8f3a50ab339b8918b96d69a7451e2e1", size = 228795, upload-time = "2026-10-14T00:38:04.317Z" }, + { url = "https://files.pythonhosted.org/packages/29/39/e6c86552286ac27b855042fb9c229c580ed2d4c3ced5d0a1dad5f5ee8c11/wrapt-2.5.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:26313f38d18d40a9975123a4ebff9da125ec63ab9ece4f05320a3d8d37d2c1fe", size = 239090, upload-time = "2026-10-14T00:38:06.119Z" }, + { url = "https://files.pythonhosted.org/packages/e7/7a/aea209f64e894573935b17de26ecfa0efe139b63f170a60be9f13734e0f5/wrapt-2.5.1-cp314-cp314-win32.whl", hash = "sha256:0591e6eace0d186c9ef1ecd1244be5a04e98041424cfca425b684ffe4f0d8030", size = 100919, upload-time = "2026-10-14T00:38:07.874Z" }, + { url = "https://files.pythonhosted.org/packages/57/24/847096aa49d42990137ed3b940743c8a6da806d39f6c455317114e8ebfde/wrapt-2.5.1-cp314-cp314-win_amd64.whl", hash = "sha256:25ed8b1b39234140d5b5c6a273130c7595e0abece417c3ca3cb378fcea5cd0fe", size = 106243, upload-time = "2026-10-14T00:38:09.49Z" }, + { url = "https://files.pythonhosted.org/packages/9c/ff/1cdc742133b9fb8558cdf42b2a6c2699bd7c72f7d0606286ec2f9142e20a/wrapt-2.5.1-cp314-cp314-win_arm64.whl", hash = "sha256:6201c7e122f40060a9b50696d80deec8f93b1a235ec0443f51d7a8a42f7044a6", size = 103974, upload-time = "2026-10-14T00:38:11.354Z" }, + { url = "https://files.pythonhosted.org/packages/fc/6f/c32dc64900f1970a7f991ff5d06788cd636ca2f3ee2f99709d82577ca198/wrapt-2.5.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:da847332447db5505162759a4cd5ac374eb8b74841fe97a98ef3de14edd2586d", size = 109552, upload-time = "2026-10-14T00:38:12.965Z" }, + { url = "https://files.pythonhosted.org/packages/e9/73/a9c8cc82b166e3de42f5fbd88089d2ef9b72e87aac7d6cdddb070335c20b/wrapt-2.5.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:9f437dd704abc4ee1bd03bb2d796d362d0e75915e8f3113a7900b3b7ec5f8b47", size = 109853, upload-time = "2026-10-14T00:38:14.565Z" }, + { url = "https://files.pythonhosted.org/packages/f6/48/f341d82e69ae47df2755847af1c744ff0732543482dbc2373e5e57676621/wrapt-2.5.1-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:03aa7d2256309b57ddbf317bff2cae5f47e50ea9ae8d582780ebe0b554347b42", size = 284103, upload-time = "2026-10-14T00:38:16.23Z" }, + { url = "https://files.pythonhosted.org/packages/fd/50/b87c6374377b08ee0783b6c5c31cd41a5e103bc54e7e857e800a0a965550/wrapt-2.5.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fcccaa1484f7dd1091602970988ab741491f9f974013c844f70e45ac1196b80d", size = 293883, upload-time = "2026-10-14T00:38:17.986Z" }, + { url = "https://files.pythonhosted.org/packages/38/e0/6d0810ae73f7a5180ec366577588ab3ad55fc1bc7e3623e82d5f8528dd2a/wrapt-2.5.1-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:8078186f719a92693199f1e06c4ec72e1e6d374c2e459da18ed5c39d6966d727", size = 263097, upload-time = "2026-10-14T00:38:20.107Z" }, + { url = "https://files.pythonhosted.org/packages/d6/d3/c890a46f4d395a7935e5a7436f374ceefa362eb612fdd39376dd775e0283/wrapt-2.5.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:1425fcf0e70b27053bd610d57bae975856e7897e3f6ba1456d2b80b9d7fd15d1", size = 289045, upload-time = "2026-10-14T00:38:21.913Z" }, + { url = "https://files.pythonhosted.org/packages/e5/c6/042e30e0d851ca6ea743e6978902527f9166da42d736f074245d1cc54c8f/wrapt-2.5.1-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:b238e955ba34ef2b8897f358b7b868b41b9a02ffd338014b62985fa91898cc4a", size = 260378, upload-time = "2026-10-14T00:38:23.662Z" }, + { url = "https://files.pythonhosted.org/packages/31/a4/5e65f90bf414c2f1c7eefc3d26c33af01d87ba33c4b879db4e1d4ba7fc3b/wrapt-2.5.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:25eb4d928a9abeaf70ca786a35861b46d1ab37cc4ce49ea70a070dacdead4dfe", size = 278746, upload-time = "2026-10-14T00:38:25.523Z" }, + { url = "https://files.pythonhosted.org/packages/4b/86/17a85475e218e05225a4f6d65237b12b280596e04520df0e3d8841c4eae3/wrapt-2.5.1-cp314-cp314t-win32.whl", hash = "sha256:df6e3a36170cda0d313be50fe5065948e7f12f3a181b38cbc262e9f2ee4824e1", size = 103415, upload-time = "2026-10-14T00:38:27.409Z" }, + { url = "https://files.pythonhosted.org/packages/27/1c/495b3aebbbe5aebf52ae5f9e8ddd0e072a412b9f5a9bc68e5eba43fa26ba/wrapt-2.5.1-cp314-cp314t-win_amd64.whl", hash = "sha256:bc5c0203d383403043fb86c964bd0bab4fcbfb26004ff4bb9c6d02ebc1d608ae", size = 109940, upload-time = "2026-10-14T00:38:29.145Z" }, + { url = "https://files.pythonhosted.org/packages/28/4d/030ecd98da4d052c264290c4fb9f984706c9a19026154c833580e8624a05/wrapt-2.5.1-cp314-cp314t-win_arm64.whl", hash = "sha256:a424e8a9776c06aef6313af1d0e3fe6e0838af4241d0c09eb0a3b46f2c9a5ff3", size = 106214, upload-time = "2026-10-14T00:38:30.795Z" }, + { url = "https://files.pythonhosted.org/packages/90/2b/eec5745baaad284fa19232f47796914134e1ea2dd21e289b012aa7981323/wrapt-2.5.1-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:a18e63910252eb75d8806b4baefbc3a03612502f63eab042e3741b00b719f043", size = 106441, upload-time = "2026-10-14T00:38:32.504Z" }, + { url = "https://files.pythonhosted.org/packages/29/f3/976b0f014a08654289358d41a799c2d24642151b091cfe18a8b91766ee28/wrapt-2.5.1-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:183bf0bb893f783c9d22f953cb01fababb9f618e098763f8e66337b575b0647a", size = 106411, upload-time = "2026-10-14T00:38:34.338Z" }, + { url = "https://files.pythonhosted.org/packages/c7/f4/4b94583d9bec0ff0573a5f10fab295675e3b9a64b701c4609b1a1982c390/wrapt-2.5.1-cp315-cp315-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:a1e823aecb3746b8f9e0aee2e1413887871ee2f5c502a3e0ef8d466dbd4adde1", size = 252017, upload-time = "2026-10-14T00:38:36.142Z" }, + { url = "https://files.pythonhosted.org/packages/5e/3c/4f9ba033343b2935a453188f97866f0bd4f7748748ab307aaefb18be3a0a/wrapt-2.5.1-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bde5d1b37101b1e9dd3da1f35072e2e7028e9c5e3511f7d76d3fdd4d071b7663", size = 251030, upload-time = "2026-10-14T00:38:38.003Z" }, + { url = "https://files.pythonhosted.org/packages/69/a1/704c761913be404ed893d05702eeda5ff96c5d8448271c28b80101202bcb/wrapt-2.5.1-cp315-cp315-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:12d3d2b9d6553df6e2421ab99e1cc5413509076788f57fcb3169f5ce100a19d1", size = 232875, upload-time = "2026-10-14T00:38:40.124Z" }, + { url = "https://files.pythonhosted.org/packages/f0/3a/779ca20fb8c70238069efd0a2b60ea3da450e57c4f103748db0247f52f3a/wrapt-2.5.1-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:521bd5ef2a33171fac08a0a302d51a983c19c3519406c1ee8da7ce29285488da", size = 248302, upload-time = "2026-10-14T00:38:42.138Z" }, + { url = "https://files.pythonhosted.org/packages/03/02/80e13786204ce8e1002edb66d06a3194906c0dbbc038bce7bbda426d0f2b/wrapt-2.5.1-cp315-cp315-musllinux_1_2_riscv64.whl", hash = "sha256:129cab3c7b21e68e693c2819a95c47f3b1c41a834b931154688c83b6aef6bdab", size = 229839, upload-time = "2026-10-14T00:38:44.039Z" }, + { url = "https://files.pythonhosted.org/packages/9d/d1/14c0d041375ae5d0a12445b5c5bc61b109df954cd5bfb852736cd4281cbd/wrapt-2.5.1-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:8a7c078323e6e1534968cb85488c5eb7ee2b9bbd0f8a291095213a763da40dab", size = 239634, upload-time = "2026-10-14T00:38:45.896Z" }, + { url = "https://files.pythonhosted.org/packages/97/6e/dacc92526fbed1013eb903406ce961da6ff2a1e66b7349a253f439b979aa/wrapt-2.5.1-cp315-cp315-win32.whl", hash = "sha256:736c1de0230c6d24327b14684794214167b2c5ebb6332e28a10f504641b600df", size = 100931, upload-time = "2026-10-14T00:38:47.718Z" }, + { url = "https://files.pythonhosted.org/packages/e8/e4/84bbd88554052958ecbbb481a75559b1e40753aba52ec86e3e1efb50ccf0/wrapt-2.5.1-cp315-cp315-win_amd64.whl", hash = "sha256:69fd0fbb3daf7c8c6f5e062847a0061f880f347374d74cf1daba57220fb64cd0", size = 106252, upload-time = "2026-10-14T00:38:49.511Z" }, + { url = "https://files.pythonhosted.org/packages/b7/98/98d4c4524e8af70ccf35b66864be29ea9d232e5a918efc1dbcf5c87a039d/wrapt-2.5.1-cp315-cp315-win_arm64.whl", hash = "sha256:051220e5071fdfb1a6678707c8abb7bbf4824d40f99758394b2b4d64855fb284", size = 103980, upload-time = "2026-10-14T00:38:51.384Z" }, + { url = "https://files.pythonhosted.org/packages/75/d9/4b242519d6d29eabb73cb9e50e645e014eb2c13f022601151953b3e81946/wrapt-2.5.1-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:711e73da3d7983547fc9dd208973b6b0c52640822f5d477910ba24622df6ba64", size = 109538, upload-time = "2026-10-14T00:38:53.124Z" }, + { url = "https://files.pythonhosted.org/packages/58/05/e434f56fcceaafb251cc56c03107ae278e99158466b49f4146f7b33a2532/wrapt-2.5.1-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:5be9816d9de88f02fce23cf55f392403411d9bd9c7ae57fdc965a43b22e2de5e", size = 109874, upload-time = "2026-10-14T00:38:54.941Z" }, + { url = "https://files.pythonhosted.org/packages/23/09/d2c0b34d02804018225279a157307b873c8d0f8452790efdd7f0004387a8/wrapt-2.5.1-cp315-cp315t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:4b3f410c416752e1dba53d361e2e6562f22c2c3ec855740dfa5836e061b22571", size = 284866, upload-time = "2026-10-14T00:38:57.081Z" }, + { url = "https://files.pythonhosted.org/packages/71/6f/2b56319c0565d9a6b63eeba2f11f3e699dc324aaa460f1aae079bd4507b0/wrapt-2.5.1-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:094b847491b813b6e6c1775e03770930d75078c0821adf929ac712830951ef25", size = 295154, upload-time = "2026-10-14T00:38:59.007Z" }, + { url = "https://files.pythonhosted.org/packages/3c/1b/9ac4238a1a839457d6b687b9e9c35d57ba1b2050a42d6bf8c93176bc1bdf/wrapt-2.5.1-cp315-cp315t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:26d8ea2ec6818aeb656bd8a9e745a6f1fb0edfcd8f54291ccd94f62eb5f5e3bd", size = 264914, upload-time = "2026-10-14T00:39:01.154Z" }, + { url = "https://files.pythonhosted.org/packages/4f/95/9faed8e5f6e5431edd36b2cfb4f305df520c197ba3639e1c78d11c70a068/wrapt-2.5.1-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:0a526227efe17dd94bd16b123d170f879bce42c15f10eb92495a745f54caa943", size = 290238, upload-time = "2026-10-14T00:39:03.052Z" }, + { url = "https://files.pythonhosted.org/packages/b5/52/cae26590ef8ee46b55aa8b211c507f6e5ec0fbd241a6730bf7da024b5dab/wrapt-2.5.1-cp315-cp315t-musllinux_1_2_riscv64.whl", hash = "sha256:36d7d0ad593c4f1a651e4032de834db59aee1a929ee396cd483895b673328e51", size = 262208, upload-time = "2026-10-14T00:39:05.008Z" }, + { url = "https://files.pythonhosted.org/packages/00/f3/34e5008307be4169592e99de52946cd8800b98097e2a145da11484c7b3e4/wrapt-2.5.1-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:89d9a8607b7028054bb6fd01d437f205534a5d59d53c3665d15949a99a2fce0d", size = 280005, upload-time = "2026-10-14T00:39:07.048Z" }, + { url = "https://files.pythonhosted.org/packages/f3/f9/64e000aa84a88c52a481c7c8b011c80a8ae60bd5f68598e567a918a624a0/wrapt-2.5.1-cp315-cp315t-win32.whl", hash = "sha256:ad81bf81b0a0b6c6ec74169638202851962843e86749570c463eecc55072f93b", size = 103378, upload-time = "2026-10-14T00:39:09.336Z" }, + { url = "https://files.pythonhosted.org/packages/2f/e4/69efa7c6e8535c5188e041ac278079949fb2daaa97e6f08beb91cf31b3d1/wrapt-2.5.1-cp315-cp315t-win_amd64.whl", hash = "sha256:d5b665a43fe0d3b390cbdd3c003d61c92fa07bd5e3fb1ed3f47920c2d03cd9fd", size = 109928, upload-time = "2026-10-14T00:39:11.156Z" }, + { url = "https://files.pythonhosted.org/packages/13/77/6e414b3388b9f1ecb76107ef4a2aae501f1bdfcab85c8e34ef78f7db22db/wrapt-2.5.1-cp315-cp315t-win_arm64.whl", hash = "sha256:6405ff2160af9d59132ebb076eda0304db44d9d09809582932412ef7c0788a36", size = 106226, upload-time = "2026-10-14T00:39:13.061Z" }, + { url = "https://files.pythonhosted.org/packages/bc/0c/7da7513ddcc8f1d831ec4bfbedc9f7f174ecb91042bc16916fc1e0d06b22/wrapt-2.5.1-py3-none-any.whl", hash = "sha256:c6e6c226b1ca5402d7ae5fb34a0d21f1b49124fe4200e5884d1e19e53c47ac1d", size = 81849, upload-time = "2026-10-14T00:39:37.441Z" }, ] [[package]] name = "xarray" -version = "2026.4.0" +version = "2026.9.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy" }, { name = "packaging" }, { name = "pandas" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/4b/a6/6fe936a798a3a38a79c7422d1a31afd2e9a14690fcb0ccff96bc01f04bf2/xarray-2026.4.0.tar.gz", hash = "sha256:c4ac9a01a945d90d5b1628e2af045099a9d4943536d4f2ee3ae963c3b222d15b", size = 3132311 } +sdist = { url = "https://files.pythonhosted.org/packages/ff/f5/781c70b234f54e0401f4f7c4427a7486da38d50dbb138c7d7c55144b3d86/xarray-2026.9.0.tar.gz", hash = "sha256:6abc69694c22fa1f0fb2f357ff4e41d88beb4477ed71091f944b7dbf67ed54fe", size = 3176922, upload-time = "2026-09-29T23:06:25.807Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/dc/83/6d810a8a9ebc9c307989b418840c20e46907c74d707beb67ab566773e6fc/xarray-2026.4.0-py3-none-any.whl", hash = "sha256:d43751d9fb4a90f9249c30431684f00c41bc874f1edccd862631a40cbc0edf08", size = 1414326 }, + { url = "https://files.pythonhosted.org/packages/3f/44/3159af4fb3c868970a412e294320ed6bb1a9fbdfa6431050eda8e0b34b6e/xarray-2026.9.0-py3-none-any.whl", hash = "sha256:fe349fa871628b1a0a5217af3fe1283a2862d5485156e6eda354fffb81c3bb7c", size = 1445445, upload-time = "2026-09-29T23:06:23.686Z" }, ] [[package]] @@ -3078,9 +3290,9 @@ dependencies = [ { name = "numpy" }, { name = "xarray" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/02/a7/9530310c67ba4a9945ba8b451ed89b6d9b5c9d119c86bd0cedc2e1abe64f/xhistogram-0.3.2.tar.gz", hash = "sha256:56b0751e1469eaed81710f644c8ba5c574b51883baa2feee26a95f2f708f91a1", size = 52684 } +sdist = { url = "https://files.pythonhosted.org/packages/02/a7/9530310c67ba4a9945ba8b451ed89b6d9b5c9d119c86bd0cedc2e1abe64f/xhistogram-0.3.2.tar.gz", hash = "sha256:56b0751e1469eaed81710f644c8ba5c574b51883baa2feee26a95f2f708f91a1", size = 52684, upload-time = "2022-09-20T05:08:03.703Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/18/08/1432dd10193a5d45294bd42042a5631259ee5a12cd2e9075350546d07a03/xhistogram-0.3.2-py3-none-any.whl", hash = "sha256:ad55330d55296d273b3370678223fde0f50085e04cb744c7b3b0bb7702a2c6bf", size = 20227 }, + { url = "https://files.pythonhosted.org/packages/18/08/1432dd10193a5d45294bd42042a5631259ee5a12cd2e9075350546d07a03/xhistogram-0.3.2-py3-none-any.whl", hash = "sha256:ad55330d55296d273b3370678223fde0f50085e04cb744c7b3b0bb7702a2c6bf", size = 20227, upload-time = "2022-09-20T05:08:01.428Z" }, ] [[package]] @@ -3096,100 +3308,134 @@ dependencies = [ { name = "xarray" }, { name = "xhistogram" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/31/8a/97da0fda5c642afec1ff5974b16830bc07b3a8eb1ec6e43eabfe88e5c157/xskillscore-0.0.29.tar.gz", hash = "sha256:34375e86ea5e2ac710e52b8eb8e77c7acb5b2782aa6c67e863c71e4ae202dd74", size = 219113 } +sdist = { url = "https://files.pythonhosted.org/packages/31/8a/97da0fda5c642afec1ff5974b16830bc07b3a8eb1ec6e43eabfe88e5c157/xskillscore-0.0.29.tar.gz", hash = "sha256:34375e86ea5e2ac710e52b8eb8e77c7acb5b2782aa6c67e863c71e4ae202dd74", size = 219113, upload-time = "2026-02-18T14:05:36.362Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f0/8d/4f78ecff7c6ae42312d20bbff1df1587e14fec198a9091381ebda6ae678b/xskillscore-0.0.29-py3-none-any.whl", hash = "sha256:d021e2fc035fad3fc1341bb9353150117a2eda57439caa671032605ceb9d2358", size = 80466 }, + { url = "https://files.pythonhosted.org/packages/f0/8d/4f78ecff7c6ae42312d20bbff1df1587e14fec198a9091381ebda6ae678b/xskillscore-0.0.29-py3-none-any.whl", hash = "sha256:d021e2fc035fad3fc1341bb9353150117a2eda57439caa671032605ceb9d2358", size = 80466, upload-time = "2026-02-18T14:05:31.907Z" }, ] [[package]] name = "xyzservices" -version = "2026.3.0" +version = "2026.9.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f6/08/3cb9f67a8d48021aca2a02292cc26eecd71d949ae70ad66420a8730cc302/xyzservices-2026.3.0.tar.gz", hash = "sha256:d226866a5d8e9fef337034d8da37a8298f0a1d9d1489b4018e69579eb321fea4", size = 1135736 } +sdist = { url = "https://files.pythonhosted.org/packages/c4/bd/b75d5c2312caec607ec995200fa1eb8453225fd869947ec743919c279544/xyzservices-2026.9.1.tar.gz", hash = "sha256:8d1a39bf6b192940cc5db5264eeefc1b20dd184f8b83b1303b078743744f5943", size = 1134047, upload-time = "2026-09-04T10:35:41.399Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a8/a9/d23012099dc88ec69a29c6407b41d89681cb674c2043cd5b467c7e299c08/xyzservices-2026.3.0-py3-none-any.whl", hash = "sha256:503183d4b322bfebc3c50cdd21192aa3e81e36c5efbf9133d54ae82143e0576b", size = 94101 }, + { url = "https://files.pythonhosted.org/packages/a8/71/9219fe65ef32bddc0b5d14e1d98dfefe9d2c9c1b1d1e93efca1f29fcbd4d/xyzservices-2026.9.1-py3-none-any.whl", hash = "sha256:af4fddac0f1fa5f7951834e2c58e10109e722be548cb1fe4f1a8e8b18cef4c09", size = 98829, upload-time = "2026-09-04T10:35:40.08Z" }, ] [[package]] name = "yarl" -version = "1.24.2" +version = "1.25.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "idna" }, { name = "multidict" }, { name = "propcache" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/79/12/1e8f37460ea0f7eb59c221fdaf0ed75e7ac43e97f8093b9c6f411df50a78/yarl-1.24.2.tar.gz", hash = "sha256:9ac374123c6fd7abf64d1fec93962b0bd4ee2c19751755a762a72dd96c0378f8", size = 210798 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f0/da/866bcb01076ba49d2b42b309867bed3826421f1c479655eb7a607b44f20b/yarl-1.24.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:b975866c184564c827e0877380f0dae57dcca7e52782128381b72feff6dfceb8", size = 129957 }, - { url = "https://files.pythonhosted.org/packages/bf/1d/fcefb70922ea2268a8971d8e5874d9a8218644200fb8465f1dcad55e6851/yarl-1.24.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3b075301a2836a0e297b1b658cb6d6135df535d62efefdd60366bd589c2c82f2", size = 92164 }, - { url = "https://files.pythonhosted.org/packages/29/b6/170e2b8d4e3bc30e6bfdcca53556537f5bf595e938632dfcb059311f3ff6/yarl-1.24.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8ae44649b00947634ab0dab2a374a638f52923a6e67083f2c156cd5cbd1a881d", size = 91688 }, - { url = "https://files.pythonhosted.org/packages/fe/a5/c9f655d5553ea0b99fdac9d6a99ad3f9b3e73b8e5758bb46f58c9831f74c/yarl-1.24.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:507cc19f0b45454e2d6dcd62ff7d062b9f77a2812404e62dbdaec05b50faa035", size = 102902 }, - { url = "https://files.pythonhosted.org/packages/5d/bc/6b9664d815d79af4ee553337f9d606c56bbf269186ada9172de45f1b5f60/yarl-1.24.2-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c4c17bad5a530912d2111825d3f05e89bab2dd376aaa8cbc77e449e6db63e576", size = 97931 }, - { url = "https://files.pythonhosted.org/packages/98/ec/32ba48acae30fecd60928f5791188b80a9d6ee3840507ffda29fecd37b71/yarl-1.24.2-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f5f0cbb112838a4a293985b6ed73948a547dadcc1ba6d2089938e7abdedceef8", size = 111030 }, - { url = "https://files.pythonhosted.org/packages/82/5a/6f4cd081e5f4934d2ae3a8ef4abe3afacc010d26f0035ee91b35cd7d7c37/yarl-1.24.2-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5ec8356b8a6afcf81fc7aeeef13b1ff7a49dec00f313394bbb9e83830d32ccd7", size = 110392 }, - { url = "https://files.pythonhosted.org/packages/7a/da/323a01c349bd5fb01bb6652e314d9bb218cee630a736bdb810ad50e4013f/yarl-1.24.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7e7ebcdef69dec6c6451e616f32b622a6d4a2e92b445c992f7c8e5274a6bbc4c", size = 105612 }, - { url = "https://files.pythonhosted.org/packages/7c/80/264ab684f181e1a876389374519ff05d10248725535ae2ac4e8ac4e563d6/yarl-1.24.2-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:47a55d6cf6db2f401017a9e96e5288844e5051911fb4e0c8311a3980f5e59a7d", size = 104487 }, - { url = "https://files.pythonhosted.org/packages/41/07/efabe5df87e96d7ad5959760b888344be48cd6884db127b407c6b5503adc/yarl-1.24.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3065657c80a2321225e804048597ad55658a7e76b32d6f5ee4074d04c50401db", size = 102333 }, - { url = "https://files.pythonhosted.org/packages/44/0c/bcf7c42603e1009295f586d8890f2ba032c8b53310e815adf0a202c73d9f/yarl-1.24.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:cb84b80d88e19ede158619b80813968713d8d008b0e2497a576e6a0557d50712", size = 99025 }, - { url = "https://files.pythonhosted.org/packages/4f/82/84482ab1a57a0f21a08afe6a7004c61d741f8f2ecc3b05c321577c612164/yarl-1.24.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:990de4f680b1c217e77ff0d6aa0029f9eb79889c11fb3e9a3942c7eba29c1996", size = 110507 }, - { url = "https://files.pythonhosted.org/packages/c4/8d/a546ba1dfe1b0f290e05fef145cd07614c0f15df1a707195e512d1e39d1d/yarl-1.24.2-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:abb8ec0323b80161e3802da3150ef660b41d0e9be2048b76a363d93eee992c2b", size = 103719 }, - { url = "https://files.pythonhosted.org/packages/1a/b6/267f2a09213138473adfce6b8a6e17791d7fee70bd4d9003218e4dec58b0/yarl-1.24.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:e7977781f83638a4c73e0f88425563d70173e0dfd90ac006a45c65036293ee3c", size = 110438 }, - { url = "https://files.pythonhosted.org/packages/48/2d/1c8d89c7c5f9cad9fb2902445d94e2ab1d7aa35de029afbb8ae95c42d00f/yarl-1.24.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e30dd55825dc554ec5b66a94953b8eda8745926514c5089dfcacecb9c99b5bd1", size = 105719 }, - { url = "https://files.pythonhosted.org/packages/a7/25/722e3b93bd687009afb2d59a35e13d30ddd8f80571445bb0c4e4ce26ec66/yarl-1.24.2-cp312-cp312-win_amd64.whl", hash = "sha256:7dafe10c12ddd4d120d528c4b5599c953bd7b12845347d507b95451195bb6cad", size = 92901 }, - { url = "https://files.pythonhosted.org/packages/39/47/4486ccfb674c04854a1ef8aa77868b6a6f765feaf69633409d7ca4f02cb8/yarl-1.24.2-cp312-cp312-win_arm64.whl", hash = "sha256:044a09d8401fcf8681977faef6d286b8ade1e2d2e9dceda175d1cfa5ca496f30", size = 87229 }, - { url = "https://files.pythonhosted.org/packages/82/62/fcf0ce677f17e5c471c06311dd25964be38a4c586993632910d2e75278bc/yarl-1.24.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:491ac9141decf49ee8030199e1ee251cdff0e131f25678817ff6aa5f837a3536", size = 128978 }, - { url = "https://files.pythonhosted.org/packages/d3/58/8e63299bb71ed61a834121d9d3fe6c9fcf2a6a5d09754ff4f20f2d20baf5/yarl-1.24.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e89418f65eda18f99030386305bd44d7d504e328a7945db1ead514fbe03a0607", size = 91733 }, - { url = "https://files.pythonhosted.org/packages/c1/24/16748d5dab6daec8b0ed81ccec639a1cded0f18dcc62a4f696b4fe366c37/yarl-1.24.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cdfcce633b4a4bb8281913c57fcafd4b5933fbc19111a5e3930bbd299d6102f1", size = 91113 }, - { url = "https://files.pythonhosted.org/packages/1b/66/b63fff7b71211e866624b21432d5943cbb633eb0c2872d9ee3070648f22c/yarl-1.24.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:863297ddede92ee49024e9a9b11ecb59f310ca85b60d8537f56bed9bbb5b1986", size = 103899 }, - { url = "https://files.pythonhosted.org/packages/9d/ac/ba1974b8533909636f7733fe86cf677e3619527c3c2fa913e0ea89c48757/yarl-1.24.2-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:374423f70754a2c96942ede36a29d37dc6b0cb8f92f8d009ddf3ed78d3da5488", size = 97862 }, - { url = "https://files.pythonhosted.org/packages/1b/a5/123ac993b5c2ba6f554a140305620cb8f150fa543711bbc49be3ec0a65a4/yarl-1.24.2-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:33a29b5d00ccbf3219bb3e351d7875739c19481e030779f48cc46a7a71681a9b", size = 111060 }, - { url = "https://files.pythonhosted.org/packages/23/37/c472d3af3509688392134a88a825276770a187f1daa4de3f6dc0a327a751/yarl-1.24.2-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a9532c57211730c515341af11fef6e9b61d157487272a096d0c04da445642592", size = 110613 }, - { url = "https://files.pythonhosted.org/packages/df/88/09c28dad91e662ccfaa1b78f1c57badde74fc9d0b23e74aef644750ecd73/yarl-1.24.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:91e72cf093fd833483a97ee648e0c053c7c629f51ff4a0e7edd84f806b0c5617", size = 107012 }, - { url = "https://files.pythonhosted.org/packages/07/ab/9d4f69d571a94f4d112fa7e2e007200f5a54d319f58c82ac7b7baa61f5c6/yarl-1.24.2-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b3177bc0a768ef3bacceb4f272632990b7bea352f1b2f1eee9d6d6ff16516f92", size = 105887 }, - { url = "https://files.pythonhosted.org/packages/8e/9a/000b2b66c0d772a499fc531d21dab92dfeb73b640a12eed6ba89f49bb2d0/yarl-1.24.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e196952aacaf3b232e265ff02980b64d483dc0972bd49bcb061171ff22ac203a", size = 103620 }, - { url = "https://files.pythonhosted.org/packages/41/7c/7c1050f73450fbdaa3f0c72017059f00ce5e13366692f3dba25275a1083d/yarl-1.24.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:204e7a61ce99919c0de1bf904ab5d7aa188a129ea8f690a8f76cfb6e2844dc44", size = 100599 }, - { url = "https://files.pythonhosted.org/packages/ec/b1/29e5756b3926705f5f6089bd5b9f50a56eaac550da6e260bf713ead44d04/yarl-1.24.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4b156914620f0b9d78dc1adb3751141daee561cfec796088abb89ed49d220f1a", size = 110604 }, - { url = "https://files.pythonhosted.org/packages/a3/4b/8415bc96e9b150cde942fbac9a8182985e58f40ce5c54c34ed015407d3ee/yarl-1.24.2-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:8372a2b976cf70654b2be6619ab6068acabb35f724c0fda7b277fbf53d66a5cf", size = 105161 }, - { url = "https://files.pythonhosted.org/packages/8b/d4/cde059abfa229553b7298a2eadde2752e723d50aeedaef86ce59da2718ee/yarl-1.24.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:f9a1e9b622ca284143aab5d885848686dcd85453bb1ca9abcdb7503e64dc0056", size = 110619 }, - { url = "https://files.pythonhosted.org/packages/e7/2c/d6a6c9a61549f7b6c7e6dc6937d195bcf069582b47b7200dcd0e7b256acf/yarl-1.24.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:810e19b685c8c3c5862f6a38160a1f4e4c0916c9390024ec347b6157a45a0992", size = 107362 }, - { url = "https://files.pythonhosted.org/packages/92/dd/3ae5fe417e9d1c353a548553326eb9935e76b6b727161563b424cc296df3/yarl-1.24.2-cp313-cp313-win_amd64.whl", hash = "sha256:7d37fb7c38f2b6edab0f845c4f85148d4c44204f52bc127021bd2bc9fdbf1656", size = 92667 }, - { url = "https://files.pythonhosted.org/packages/10/cc/a7beb239f78f27fca1b053c8e8595e4179c02e62249b4687ec218c370c50/yarl-1.24.2-cp313-cp313-win_arm64.whl", hash = "sha256:1e831894be7c2954240e49791fa4b50c05a0dc881de2552cfe3ffd8631c7f461", size = 87069 }, - { url = "https://files.pythonhosted.org/packages/40/0e/e08087695fc12789263821c5dc0f8dc52b5b17efd0887cacf419f8a43ba3/yarl-1.24.2-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:f9312b3c02d9b3d23840f67952913c9c8721d7f1b7db305289faefa878f364c2", size = 129670 }, - { url = "https://files.pythonhosted.org/packages/3a/98/ab4b5ed1b1b5cd973c8a3eb994c3a6aefb6ce6d399e21bb5f0316c33815c/yarl-1.24.2-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:a4f4d6cd615823bfc7fb7e9b5987c3f41666371d870d51058f77e2680fbe9630", size = 91916 }, - { url = "https://files.pythonhosted.org/packages/ba/b1/5297bb6a7df4782f7605bffc43b31f5044070935fbbcaa6c705a07e6ac65/yarl-1.24.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0c3063e5c0a8e8e62fae6c2596fa01da1561e4cd1da6fec5789f5cf99a8aefd8", size = 91625 }, - { url = "https://files.pythonhosted.org/packages/02/a7/45baabfff76829264e623b185cff0c340d7e11bf3e1cd9ea37e7d17934bd/yarl-1.24.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fecd17873a096036c1c87ab3486f1aef7f269ada7f23f7f856f93b1cc7744f14", size = 104574 }, - { url = "https://files.pythonhosted.org/packages/f3/40/3a5ab144d3d650ca37d4f4b57e56169be8af3ca34c448793e064b30baaed/yarl-1.24.2-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a46d1ab4ba4d32e6dc80daf8a28ce0bd83d08df52fbc32f3e288663427734535", size = 97534 }, - { url = "https://files.pythonhosted.org/packages/9c/b5/5658fef3681fb5776b4513b052bec750009f47b3a592251c705d75375798/yarl-1.24.2-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:73e68edf6dfd5f73f9ca127d84e2a6f9213c65bdffb736bda19524c0564fcd14", size = 111481 }, - { url = "https://files.pythonhosted.org/packages/4c/06/fdcd7dde037f00866dce123ed4ba23dba94beb56fc4cf561668d27be37f2/yarl-1.24.2-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a296ca617f2d25fbceafb962b88750d627e5984e75732c712154d058ae8d79a3", size = 111529 }, - { url = "https://files.pythonhosted.org/packages/c2/53/d81269aaafccea0d33396c03035de997b743f11e648e6e27a0df99c72980/yarl-1.24.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e51b2cf5ec89a8b8470177641ed62a3ba22d74e1e898e06ad53aa77972487208", size = 107338 }, - { url = "https://files.pythonhosted.org/packages/ae/04/23049463f729bd899df203a7960505a75333edd499cda8aa1d5a82b64df5/yarl-1.24.2-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:310fc687f7b2044ec54e372c8cbe923bb88f5c37bded0d3079e5791c2fc3cf50", size = 106147 }, - { url = "https://files.pythonhosted.org/packages/14/18/04a4b5830b43ed5e4c5015b40e9f6241ad91487d71611061b4e111d6ac80/yarl-1.24.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:297a2fe352ecf858b30a98f87948746ec16f001d279f84aebdbd3bd965e2f1bd", size = 104272 }, - { url = "https://files.pythonhosted.org/packages/5a/f7/8cffdf319aee7a7c1dbd07b61d91c3e3fda460c7a93b5f93e445f3806c4c/yarl-1.24.2-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:2a263e76b97bc42bdcd7c5f4953dec1f7cd62a1112fa7f869e57255229390d67", size = 99962 }, - { url = "https://files.pythonhosted.org/packages/d7/39/b3cce3b7dbef64ac700ad4cea156a207d01bede0f507587616c364b5468e/yarl-1.24.2-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:822519b64cf0b474f1a0aaef1dc621438ea46bb77c94df97a5b4d213a7d8a8b1", size = 111063 }, - { url = "https://files.pythonhosted.org/packages/a1/ea/100818505e7ebf165c7242ff17fdf7d9fee79e27234aeca871c1082920d7/yarl-1.24.2-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:b6067060d9dc594899ba83e6db6c48c68d1e494a6dab158156ed86977ca7bcb1", size = 105438 }, - { url = "https://files.pythonhosted.org/packages/8f/d2/e075a0b32aa6625087de9e653087df0759fed5de4a435fef594181102a77/yarl-1.24.2-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:0063adad533e57171b79db3943b229d40dfafeeee579767f96541f106bac5f1b", size = 111458 }, - { url = "https://files.pythonhosted.org/packages/e6/5c/ceea7ba98b65c8eb8d947fdc52f9bedfcd43c6a57c9e3c90c17be8f324a3/yarl-1.24.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:ee8e3fb34513e8dc082b586ef4910c98335d43a6fab688cd44d4851bacfce3e8", size = 107589 }, - { url = "https://files.pythonhosted.org/packages/fa/d9/5582d57e2b2db9b85eb6663a22efdd78e08805f3f5389566e9fcad254d1b/yarl-1.24.2-cp314-cp314-win_amd64.whl", hash = "sha256:afb00d7fd8e0f285ca29a44cc50df2d622ff2f7a6d933fa641577b5f9d5f3db0", size = 94424 }, - { url = "https://files.pythonhosted.org/packages/92/10/7dc07a0e22806a9280f42a57361395506e800c64e22737cd7b0886feab42/yarl-1.24.2-cp314-cp314-win_arm64.whl", hash = "sha256:68cf6eacd6028ef1142bc4b48376b81566385ca6f9e7dde3b0fa91be08ffcb57", size = 88690 }, - { url = "https://files.pythonhosted.org/packages/9e/13/d5b8e2c8667db955bcb3de233f18798fefe7edf1d7429c2c9d4f9c401114/yarl-1.24.2-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:221ce1dd921ac4f603957f17d7c18c5cc0797fbb52f156941f92e04605d1d67b", size = 136248 }, - { url = "https://files.pythonhosted.org/packages/de/46/a4a97c05c9c9b8fd266bb2a0df12992c7fbd02391eb9640583411b6dab32/yarl-1.24.2-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:5f3224db28173a00d7afacdee07045cc4673dfab2b15492c7ae10deddbece761", size = 95084 }, - { url = "https://files.pythonhosted.org/packages/95/b2/845cf2074a015e6fe0d0808cf1a2d9e868386c4220d657ebd8302b199043/yarl-1.24.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c557165320d6244ebe3a02431b2a201a20080e02f41f0cfa0ccc47a183765da8", size = 95272 }, - { url = "https://files.pythonhosted.org/packages/fe/16/e69d4aa244aef45235ddfebc0e04036a6829842bc5a6a795aedc6c998d23/yarl-1.24.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:904065e6e85b1fa54d0d87438bd58c14c0bad97aad654ad1077fd9d87e8478ed", size = 101497 }, - { url = "https://files.pythonhosted.org/packages/15/94/c07107715d621076863ee88b3ddf183fa5e9d4aba5769623c9979828410a/yarl-1.24.2-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:8cec2a38d70edc10e0e856ceda886af5327a017ccbde8e1de1bd44d300357543", size = 94002 }, - { url = "https://files.pythonhosted.org/packages/a9/35/fc1bbdd895b5e4010b8fdd037f7ed3aa289d3863e08231b30231ca9a0815/yarl-1.24.2-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e7484b9361ed222ee1ca5b4337aa4cbdcc4618ce5aff57d9ef1582fd95893fc0", size = 106524 }, - { url = "https://files.pythonhosted.org/packages/1f/f2/32b66d0a4ba47c296cf86d03e2c67bff58399fe6d6d84d5205c04c66cc6d/yarl-1.24.2-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:84f9670b89f34db07f81e53aee83e0b938a3412329d51c8f922488be7fcc4024", size = 106165 }, - { url = "https://files.pythonhosted.org/packages/95/47/37cb5ff50c5e825d4d38e81bb04d1b7e96bf960f7ab89f9850b162f3f114/yarl-1.24.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:abb2759733d63a28b4956500a5dd57140f26486c92b2caedfb964ab7d9b79dbf", size = 103010 }, - { url = "https://files.pythonhosted.org/packages/6f/d2/4597912315096f7bb359e46e13bf8b60994fcbb2db29b804c0902ef4eff5/yarl-1.24.2-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:081c2bf54efe03774d0311172bc04fedf9ca01e644d4cd8c805688e527209bdc", size = 101128 }, - { url = "https://files.pythonhosted.org/packages/b9/d5/c8e86e120521e646013d02a8e3b8884392e28494be8f392366e50d208efc/yarl-1.24.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:86746bef442aa479107fe28132e1277237f9c24c2f00b0b0cf22b3ee0904f2bb", size = 101382 }, - { url = "https://files.pythonhosted.org/packages/fa/98/70b229236118f89dbeb739b76f10225bbf53b5497725502594c9a01d699a/yarl-1.24.2-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:2d07d21d0bc4b17558e8de0b02fbfdf1e347d3bb3699edd00bb92e7c57925420", size = 95964 }, - { url = "https://files.pythonhosted.org/packages/87/f8/56c386981e3c8648d279fdef2397ffec577e8320fd5649745e34d54faeb7/yarl-1.24.2-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:4fb1ac3fc5fecd8ae7453ea237e4d22b49befa70266dfe1629924245c21a0c7f", size = 106204 }, - { url = "https://files.pythonhosted.org/packages/1a/1e/765afe97811ca35933e2a7de70ac57b1997ea2e4ee895719ee7a231fb7e5/yarl-1.24.2-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:4da31a5512ed1729ca8d8aacde3f7faeb8843cde3165d6bcf7f88f74f17bb8aa", size = 101510 }, - { url = "https://files.pythonhosted.org/packages/ee/78/393913f4b9039e1edd09ae8a9bbb9d539be909a8abf6d8a2084585bed4b7/yarl-1.24.2-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:533ded4dceb5f1f3da7906244f4e82cf46cfd40d84c69a1faf5ac506aa65ecbe", size = 105584 }, - { url = "https://files.pythonhosted.org/packages/78/87/deb17b7049bbe74ea11a713b86f8f27800cc1c8648b0b797243ebb4830ba/yarl-1.24.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:7b3a85525f6e7eeabcfdd372862b21ee1915db1b498a04e8bf0e389b607ff0bd", size = 103410 }, - { url = "https://files.pythonhosted.org/packages/8f/be/f9f7594e23b5b93affff0318e4593c1920331bcaefda326cabcad94296a1/yarl-1.24.2-cp314-cp314t-win_amd64.whl", hash = "sha256:a7624b1ca46ca5d7b864ef0d2f8efe3091454085ee1855b4e992314529972215", size = 102980 }, - { url = "https://files.pythonhosted.org/packages/65/a4/ba80dccd3593ff1f01051a818694d07b58cb8232677ee9a22a5a1f93a9fc/yarl-1.24.2-cp314-cp314t-win_arm64.whl", hash = "sha256:e434a45ce2e7a947f951fc5a8944c8cc080b7e59f9c50ae80fd39107cf88126d", size = 91219 }, - { url = "https://files.pythonhosted.org/packages/fd/4d/4b880086bd0d3e034d25647be1d830afc3e3f610e98c4ab3490af6b1b6d5/yarl-1.24.2-py3-none-any.whl", hash = "sha256:2783d9226db8797636cd6896e4de81feed252d1db72265686c9558d97a4d94b9", size = 53576 }, +sdist = { url = "https://files.pythonhosted.org/packages/75/16/e8be8e2fb175bbf41a0680381a319f1199fae256588241a2ac8677eafb49/yarl-1.25.1.tar.gz", hash = "sha256:03dd38de09bc213e9a8b29761eec33ee1d5318dac0e49d8af36e4d27830e23a7", size = 246245, upload-time = "2026-09-15T19:35:02.264Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/75/b3/cd32ac66ae622b854c2df0ac52106dda220d361b65a64fde7d5b3684aa3f/yarl-1.25.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:94d7aa6debf92a1dd14cb5280b083a764169a13cfb23a452111160274ed989f4", size = 144798, upload-time = "2026-09-15T19:31:01.821Z" }, + { url = "https://files.pythonhosted.org/packages/61/fb/a2c52a8007c2051ba74662afb112ecf3d00346af4c25e33df9d80fd14fb8/yarl-1.25.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:83d4a37e4b95da4d8bda930d6d35b75b4cdadbacbb4980cae290ea3100b5d51d", size = 104583, upload-time = "2026-09-15T19:31:04.05Z" }, + { url = "https://files.pythonhosted.org/packages/be/dd/ee38aec8e09fdf957e50d4085453fbe202f56c6c3b4cf07b81cdb4f09ee9/yarl-1.25.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e029648f9c951db30e98a7d7ec90835db88ec4b32820efe2a9bdc2287e032eb6", size = 104325, upload-time = "2026-09-15T19:31:06.338Z" }, + { url = "https://files.pythonhosted.org/packages/1e/b3/058dbfb1857b484c9cf9cc135659f50b85ce66e03c99e44dc2f7b6161f55/yarl-1.25.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4d781294bb815ecb5ea57ff6bbf8038e0a31a95fdf3e1788f66e0dc100d64b58", size = 115358, upload-time = "2026-09-15T19:31:08.593Z" }, + { url = "https://files.pythonhosted.org/packages/db/39/29693446cf0cf6b15a0e2f75a5d40f93c56819b05b0622196f45e95b5cc0/yarl-1.25.1-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e12c538e00e7c1b286a07061046b90e8124e6a9793efae2c70db6a4aad07faad", size = 107658, upload-time = "2026-09-15T19:31:10.802Z" }, + { url = "https://files.pythonhosted.org/packages/86/b3/3c4dd7e1af43b931fba95e0a722737f2ea94a6d199c802585282831d7abd/yarl-1.25.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:7e4de3ac4adbad3d0bc7c6f4360a7dbff5de2f15e3b723be3198074e17fd9c40", size = 122660, upload-time = "2026-09-15T19:31:12.84Z" }, + { url = "https://files.pythonhosted.org/packages/bd/b5/1b60dbc3cfc9c5712b15148c206748f2bc93953ffdbe25ea75b63dfc89c9/yarl-1.25.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:419f392a1da624877975709e3864dfe833af6cc7671b39318086d456e288380c", size = 126506, upload-time = "2026-09-15T19:31:15.088Z" }, + { url = "https://files.pythonhosted.org/packages/bc/7b/ca212cbe170ac8b96e45317ecbcf9c3c3ecf0cdec98d5b088a9c4088929b/yarl-1.25.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c6f117789d22dce188e5754e8bc65b7e6ebf8cb73963b9fa761f672a5883769d", size = 117050, upload-time = "2026-09-15T19:31:17.241Z" }, + { url = "https://files.pythonhosted.org/packages/cb/c3/72b4938cdbe619ad71ac156182faef4908846b84dc3ca4dbb4c4e6f84014/yarl-1.25.1-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:80e47012e730da131c9f059c80936783f9659aae22dc31c03c0595590d11ed54", size = 114174, upload-time = "2026-09-15T19:31:19.294Z" }, + { url = "https://files.pythonhosted.org/packages/e8/43/268717870f9ba0cc9701a95181587f6dc8c5f387aab4aeecc83158f38a79/yarl-1.25.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e80f557716fd765439577131e526b8942ffc2c07bdbc5e39fa62f660ba1e963f", size = 114944, upload-time = "2026-09-15T19:31:21.414Z" }, + { url = "https://files.pythonhosted.org/packages/da/84/baa5bf504d51fe062c4bcaf62936da97fffb43285978d0b39984824231fd/yarl-1.25.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:f61964f235a43738bfac50da46fc4254943a7eea3051aeb0b6fc7c992c29fadc", size = 108263, upload-time = "2026-09-15T19:31:23.388Z" }, + { url = "https://files.pythonhosted.org/packages/a4/28/779a2ed9e0152a601a27039bed9aead3f0b79797a67e2c44bfa444622dd8/yarl-1.25.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:e546fe1d4a93ebc2910f0d768baff19faa09843ab3f2036a67ed6e69fae4419d", size = 122184, upload-time = "2026-09-15T19:31:25.343Z" }, + { url = "https://files.pythonhosted.org/packages/f8/1f/118e9e5b8f07694d63fd3222e801d7782270003f1a222aa798df3f8d5933/yarl-1.25.1-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:cce0727fd5ac04d372fa9bbfde9febc2bcf209aadfcf0468e45dec72719895d1", size = 114001, upload-time = "2026-09-15T19:31:27.465Z" }, + { url = "https://files.pythonhosted.org/packages/0f/ae/a4cf1cf372313734b17996d4007f9f73596e7a178b9485802e5494ecf484/yarl-1.25.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:af4ea5b37403ef4e30f3927eaed540db942bde01d8d3ff083527c0704d1c9c68", size = 120565, upload-time = "2026-09-15T19:31:29.47Z" }, + { url = "https://files.pythonhosted.org/packages/05/79/ad94f93ca731bc9e44d321833ab96b82a4f9f5f63cf773f81a4aeea5ecc1/yarl-1.25.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:68782fdb4027b8d1eee25ec35e9a6db05e863b899eb0310b3a33b6c3fef55707", size = 117060, upload-time = "2026-09-15T19:31:31.367Z" }, + { url = "https://files.pythonhosted.org/packages/bb/cc/51a7b4abf4ac593b8e7eb3794b28e5a35ae26eed8bc04787628d215af82f/yarl-1.25.1-cp312-cp312-win_amd64.whl", hash = "sha256:7d575b54cb3863ef9bc290ea4b009999d55dc237326131e4853cf33e888fee03", size = 102593, upload-time = "2026-09-15T19:31:33.329Z" }, + { url = "https://files.pythonhosted.org/packages/9d/21/0941a6b93a58b59a1ec75e5333bf06929b671309c43c0cd201c172d9c39f/yarl-1.25.1-cp312-cp312-win_arm64.whl", hash = "sha256:bc3ac7bf569f6b64dad04dd7808c7872dae8a97df657856eac05e9b7e3614a85", size = 97697, upload-time = "2026-09-15T19:31:35.855Z" }, + { url = "https://files.pythonhosted.org/packages/7b/ed/2f3129bbcc9a5c8ba12cc2b29d8060a3bab9c8043c456cfd4b5ca3188890/yarl-1.25.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:25868beca8b6765f8f7d0e11fe6dd7c66dd4b0793b9500286d20cc92352126a5", size = 143623, upload-time = "2026-09-15T19:31:37.966Z" }, + { url = "https://files.pythonhosted.org/packages/17/e1/f1bc3390fdca352826676b531d0712736f156919090206700421d46b2c37/yarl-1.25.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:10b2fd95332f0d716d5eee3c9fb2ce8eada19082de7fee83d32e37992fd75c26", size = 104011, upload-time = "2026-09-15T19:31:40.25Z" }, + { url = "https://files.pythonhosted.org/packages/a8/aa/50acc5c3e5da04172ae3c281c75405af4d2ca911e16120ab0563f4dffb66/yarl-1.25.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0f12afda4eea8c8994a76d4df1875c765194f5fbe8a9d197929ea303caee29ec", size = 103677, upload-time = "2026-09-15T19:31:42.46Z" }, + { url = "https://files.pythonhosted.org/packages/30/d2/7d1e0ab9f8390e1fbcede5a6dbf70d23c96ad09b8c5567f3a514d1ddb0e2/yarl-1.25.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:14b79a30a93a3ce2e8832603fd0ab780ada281b0ba5110b519a634f2d7d7d1fc", size = 115392, upload-time = "2026-09-15T19:31:44.371Z" }, + { url = "https://files.pythonhosted.org/packages/71/e1/5ba1e3a2a22139213655e760919038e8ed7e2d4a99826d0bbddb3beb96e5/yarl-1.25.1-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:4bd6340d20ae2c7ca719b87b426e808e90743b676d05d4c26c4fb5ca71f41184", size = 107493, upload-time = "2026-09-15T19:31:46.273Z" }, + { url = "https://files.pythonhosted.org/packages/f5/53/780653d5e0f73831f467cf13548912e5eec97f21dc49fc8daf21da027df4/yarl-1.25.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:126a2533570c554719ca40a1288fdee1700b6bc82e7131aa69fa85252d92e651", size = 122537, upload-time = "2026-09-15T19:31:48.654Z" }, + { url = "https://files.pythonhosted.org/packages/03/92/d54fa70236c6036271c9c9c09fd978df5cbe3ef49ef6c46e9b833476d215/yarl-1.25.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a3faadac7d812ddac258feb57b9846b60c1b437c4f4b9ad42595c6f6fe4390df", size = 126170, upload-time = "2026-09-15T19:31:50.872Z" }, + { url = "https://files.pythonhosted.org/packages/0e/b7/a82a49bf88340b837ef6972b508a1604ae377b9e6904b46b10cf5f1cf925/yarl-1.25.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:be80550d9bfe83d9b62398a37081a90434e6df2d978ec345c3d2820de6beddab", size = 117012, upload-time = "2026-09-15T19:31:53.189Z" }, + { url = "https://files.pythonhosted.org/packages/ef/78/5d684b411e3f3602464ee9b538db48205038f8605872985f61efb809ced0/yarl-1.25.1-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e07595c7d6f4db270ceede356a1bd1c07a34f1c26f958d1ed0cd7b48e0d2bba3", size = 114950, upload-time = "2026-09-15T19:31:55.694Z" }, + { url = "https://files.pythonhosted.org/packages/2f/11/51d82b852c64f7fad0fc7a7ff3031517204887e874c722bbca839c0b23ac/yarl-1.25.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:eb96ed1ae6c7d072d60840c0434aef07a2df611812810807fbc54263a6053e9a", size = 115428, upload-time = "2026-09-15T19:31:57.966Z" }, + { url = "https://files.pythonhosted.org/packages/e4/49/9d1978049bf646b9ea918313926453c6901b71c92f097467777d47d36a88/yarl-1.25.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:3feb99222553a8cbedfa52c2f59dd84c3f50d5b582c728d522caf8d72769a54b", size = 108428, upload-time = "2026-09-15T19:32:00.048Z" }, + { url = "https://files.pythonhosted.org/packages/43/35/7b8f1ebb45d7ec3dda7d1909bf44f458de41ef91e2937f107733582a5166/yarl-1.25.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:a2ed0ba415ccdf08f14bf544cb78346d0f76086707ffee24921a2c84dbf1305a", size = 121961, upload-time = "2026-09-15T19:32:02.436Z" }, + { url = "https://files.pythonhosted.org/packages/63/d6/d8b689ab7ca26edeb85f6ff28812aac7a25376eefc1780e303a7bfbaceff/yarl-1.25.1-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:2b49375d22299b0a834c2bca72f39aaecc270d96fb24c30424899676f487b22a", size = 114961, upload-time = "2026-09-15T19:32:04.456Z" }, + { url = "https://files.pythonhosted.org/packages/cf/d5/1a1798ea4dc6b7ee3260010a27907ebc697c95dae99817d817ed446d24aa/yarl-1.25.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:ef74070ac553c59eb4f04258722066d6c6135b7baa03b2e9f2da65c096e96d98", size = 120036, upload-time = "2026-09-15T19:32:06.5Z" }, + { url = "https://files.pythonhosted.org/packages/91/8d/b1b35ed7903da6669b1d367cb2c09436acd4ff508029b4f39a0c0c2058fc/yarl-1.25.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:0a66db89ea473abeac4b70523cafd94db3772380e565f9d28af7a179b7af71fa", size = 117276, upload-time = "2026-09-15T19:32:09.401Z" }, + { url = "https://files.pythonhosted.org/packages/3a/8f/4db01cef62caff0d7a4593ed694fb8a41a27a11158cab80d290221f13e57/yarl-1.25.1-cp313-cp313-win_amd64.whl", hash = "sha256:1f51020b2eb8a003c84925638ec63c21a750a4bddd3a22ec8eac6a742dadf1b9", size = 101945, upload-time = "2026-09-15T19:32:11.545Z" }, + { url = "https://files.pythonhosted.org/packages/c0/5e/3ce00497c5c0babb74d4130c10c3828ccd215b4819d12020c42429f991ac/yarl-1.25.1-cp313-cp313-win_arm64.whl", hash = "sha256:b10dd0557ba422715b5206b3743192135a6022acca8baec51aa127d0a75db8fe", size = 97270, upload-time = "2026-09-15T19:32:14.127Z" }, + { url = "https://files.pythonhosted.org/packages/80/cf/54023edfab7aa773b860503db0c56e962ccab0922803ee97988c176ea090/yarl-1.25.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:a9ca696eb02e5c02a8afd872ada510eba9b7fe6e68b9572c2e9a9b1941e31e2e", size = 143975, upload-time = "2026-09-15T19:32:16.416Z" }, + { url = "https://files.pythonhosted.org/packages/d7/a8/e6c1be0e6761d0f2d10bbf33a3e1e02b99dc83874d92945d7b461a72481e/yarl-1.25.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:a5877f2255aab518ebe528289037699201d5dc5f045f2396cb30aa02db22f57f", size = 104018, upload-time = "2026-09-15T19:32:18.364Z" }, + { url = "https://files.pythonhosted.org/packages/6e/bb/dda344765ffd3430afe1a1c66c866a57fae67786537d4f14607df6505ac1/yarl-1.25.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:7a5c3115595995779ee21f2567035793911c3802a43c74f3fbb0314929ec67ac", size = 104156, upload-time = "2026-09-15T19:32:20.459Z" }, + { url = "https://files.pythonhosted.org/packages/e5/5f/ed1538bcd06009fe990d6d283dd7667f639e62a81e35c6d8c6ef6c08fb3c/yarl-1.25.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:77e5099b99b37f3cf79c246998ca9f7313a78054cd1809ec46bc1afad47e1c4c", size = 116025, upload-time = "2026-09-15T19:32:22.766Z" }, + { url = "https://files.pythonhosted.org/packages/a2/af/2185daf56b99830d3356ecfada46faaa49945de6626e842b7728088d4980/yarl-1.25.1-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6efaf45df6a849cef613a03a94c845647456662f85438c886bb67a9c027c8c2c", size = 106985, upload-time = "2026-09-15T19:32:24.749Z" }, + { url = "https://files.pythonhosted.org/packages/c1/65/bc1ae564fb4b04a30b6a8f250e787772581c57e4c3d5cf07ac3359de3103/yarl-1.25.1-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:d5f90e44653c4e0f78501ed9bb7d3fce835a8d62b7c6ed0cb16557534087e743", size = 123030, upload-time = "2026-09-15T19:32:27.084Z" }, + { url = "https://files.pythonhosted.org/packages/6a/3e/e2afcde10d74e53b3fa889960991efb3019beda2b1682a01de720a302056/yarl-1.25.1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:632da579b2d879f6bad20f2cfa35ded1efe2f4f77f8abb26a6234a5b236acd2f", size = 126765, upload-time = "2026-09-15T19:32:29.332Z" }, + { url = "https://files.pythonhosted.org/packages/a2/be/415b00c0fe5a0615b062a456b26623d7ec91c2bee20faea1a14045aa0469/yarl-1.25.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:30eec96e8a91bd588ce897c9543f6d5d8d34b28fbcba28a4dedf20ebeae9fe57", size = 117199, upload-time = "2026-09-15T19:32:31.49Z" }, + { url = "https://files.pythonhosted.org/packages/97/27/3d8c63ddd3e8bcfd033748ab93876678ce59bacd66e4cb1ed851c9c5b37e/yarl-1.25.1-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:12b6bc4906e11f5e1a1cdcb12296e7afbd366c783cc8073403cd2fb74334e453", size = 115187, upload-time = "2026-09-15T19:32:34.137Z" }, + { url = "https://files.pythonhosted.org/packages/39/b7/7a81d0be1a502a26a0d4326c6f2ecb736c824f570ea1c6529f2b0b227b50/yarl-1.25.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:9d6ed3d17bccce4c05343e1ca8da13bc5c02c812a4e7282ddd05e8769322d3fc", size = 116085, upload-time = "2026-09-15T19:32:36.438Z" }, + { url = "https://files.pythonhosted.org/packages/f0/69/39fff459916aa0fab42215dc47b759586fd80f94aa56dfc4a7c15ba6e0dc/yarl-1.25.1-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:f38a70074041d3b7e138e452799f5174198bae5bd5ab2000917badf403908c5f", size = 107996, upload-time = "2026-09-15T19:32:38.959Z" }, + { url = "https://files.pythonhosted.org/packages/c0/39/80b9a55a3335590451d9ecf3eb593a8c635351f4c905ef056d7e8a8fd9e7/yarl-1.25.1-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:4ca89e4e21854ed27ec753297dde84b16c9f8e53b14a4866fb44457d643c19f8", size = 122549, upload-time = "2026-09-15T19:32:41.151Z" }, + { url = "https://files.pythonhosted.org/packages/42/7d/a179c6757818bb59372a4adafd09f7f26a3b4a0f04c3ae404b544c0b0c82/yarl-1.25.1-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:1ab7618921a93767387a4b83776f751588f5b5ae9bb5bc96620e2e2e00bca868", size = 115107, upload-time = "2026-09-15T19:32:43.072Z" }, + { url = "https://files.pythonhosted.org/packages/32/2b/a773ac867e4ab53a98ed98e5cefe3bae31e6f550252ca9d1de266f1a40c5/yarl-1.25.1-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:0ae12ff2b805fa02c4dab838005caef735e39986322698c48588d3beacb65c62", size = 120666, upload-time = "2026-09-15T19:32:45.061Z" }, + { url = "https://files.pythonhosted.org/packages/bc/41/52be6505e85b0f76b4f85b01b5de7e06a0512201abc2c95e14e099549174/yarl-1.25.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:90c30ed53546da833c700115c0064c22120d1b1560f474699fd31f22dd668233", size = 117505, upload-time = "2026-09-15T19:32:47.177Z" }, + { url = "https://files.pythonhosted.org/packages/f5/01/349c0386caedbbe488d519f252df54efac8a1459282d466c474bdd84a620/yarl-1.25.1-cp314-cp314-win_amd64.whl", hash = "sha256:acfa7e22aa6c6e7a5996a41d275bfa01efa7ea56ab890590280e9063e2cf5c1b", size = 103446, upload-time = "2026-09-15T19:32:49.615Z" }, + { url = "https://files.pythonhosted.org/packages/5c/f0/8ec63180f77912f0dc4e5a42760cb8c08d20da1d5ace3578a01b84d1f3d8/yarl-1.25.1-cp314-cp314-win_arm64.whl", hash = "sha256:8e7d98cdbb6d71e726f7d525952867096053d1f290dd4e3c50d7d313a136f414", size = 99159, upload-time = "2026-09-15T19:32:51.686Z" }, + { url = "https://files.pythonhosted.org/packages/47/7d/92d2220d6886b70ab1ed8579533ac2af2dfac716d5d929001daff7986df9/yarl-1.25.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:d21f0fa80a02d05299207eeaafef345d812ace96d5306e4ef265e1d419a615fa", size = 150071, upload-time = "2026-09-15T19:32:53.911Z" }, + { url = "https://files.pythonhosted.org/packages/64/fc/b245e448124bcda9340df38e3553fa222b50260fca027a84095e9bd8642d/yarl-1.25.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:17c9877a89fb6e2bca6f9087eb24cd7fb434653946ef5075e470d23d49b52287", size = 106780, upload-time = "2026-09-15T19:32:56.443Z" }, + { url = "https://files.pythonhosted.org/packages/51/e2/9a6ce2e334ebf218a30335ae76fb1696459430d42f733b8cb0d7d65b84d3/yarl-1.25.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:29273edf1530e397bd07cb784db1fbe0d2590b77569f2e24679a9c0a2d763b94", size = 107361, upload-time = "2026-09-15T19:32:58.827Z" }, + { url = "https://files.pythonhosted.org/packages/ed/70/66e8c76b569b450d16e190f15071c916c3df70b0e33927e415ac497cf0c2/yarl-1.25.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b7abffdf37af1cec6a2ad69b827aa84320db5894791bc8ed932dc93fb274b7e9", size = 114396, upload-time = "2026-09-15T19:33:02.24Z" }, + { url = "https://files.pythonhosted.org/packages/73/23/0d82838a05c57fdc05bc8b66e8c92dcc0df15e27463a5f163142d521c682/yarl-1.25.1-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:2239a02249d9326655419e0168a28ca9008938eaab31dc29fc875c217927a6c0", size = 104882, upload-time = "2026-09-15T19:33:04.494Z" }, + { url = "https://files.pythonhosted.org/packages/86/d4/ea08615c4edaa6049a13a2f1128944d068d1893abda7d708d4d7ea01599a/yarl-1.25.1-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:664ec6a520b74a1df2810666eb67695fcb77fa663e6ea0a25aaf2e529cb24dfa", size = 119485, upload-time = "2026-09-15T19:33:06.583Z" }, + { url = "https://files.pythonhosted.org/packages/1a/82/0898bdce9b1ae403b308b9c733d0d24af4a3464270c2c081f457b16c3e0d/yarl-1.25.1-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4f1c91f5a5980a937ff8e238e98e6897e1ad74a4b1e2c0d68c73b5ffbb3f5c0b", size = 122490, upload-time = "2026-09-15T19:33:08.653Z" }, + { url = "https://files.pythonhosted.org/packages/d1/38/97d79b81c342b78246cfedb74809e68841f3198d21653e10d3232bd9c622/yarl-1.25.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7c88edaec8c349ad4c5ad4c486a3defcc4b80ceb2f074436ffa0a87caf5e76a6", size = 115336, upload-time = "2026-09-15T19:33:11.056Z" }, + { url = "https://files.pythonhosted.org/packages/8e/9d/2577896554cd310dc470adb6da0b7dd0b435cb63e2565204a7ac240e504c/yarl-1.25.1-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:35dcbea443fafb3eece757ad4e514560ddeb6c34cfae1582c620d7b293d7feee", size = 111825, upload-time = "2026-09-15T19:33:13.204Z" }, + { url = "https://files.pythonhosted.org/packages/29/6b/7ac49d8ba84a5c4bd73415a4c949d22c749cb3762579b3d50e48019a78aa/yarl-1.25.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:882569ff613758cac762a457a5d72d6e211b28d4bcfea89d1d71ea942b02eac0", size = 114655, upload-time = "2026-09-15T19:33:15.553Z" }, + { url = "https://files.pythonhosted.org/packages/e5/18/e5942a16723f5b72f9b1297fd5a85a54f6300cd15c0dcb5005b90cd89156/yarl-1.25.1-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:d0f1489233a254bb3643d2f05de7d59019254d81daeca6b9162fe9edef57e0c7", size = 106395, upload-time = "2026-09-15T19:33:17.599Z" }, + { url = "https://files.pythonhosted.org/packages/7b/2d/549fa46240781513ebc47ae7eb418df428a163a2a3d644cc9cbb3ecb7846/yarl-1.25.1-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:f41753a76f4f63927d03a0d8ba8f5ce0f2083bec29a8cfaccc55371b1564b96b", size = 119277, upload-time = "2026-09-15T19:33:19.973Z" }, + { url = "https://files.pythonhosted.org/packages/76/16/4763f78dcdc0b3b9fb3842b04afe72b9320857c6a69300c62a0eab03d119/yarl-1.25.1-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:8fb0eb4955adf0579001581f2f71a126e8781ba61bcd120f127b0401163c6c2d", size = 112504, upload-time = "2026-09-15T19:33:22.464Z" }, + { url = "https://files.pythonhosted.org/packages/ae/b4/974e3edfe0d188393ce1cb9de400111c63fe61f4eb3b772a500d84c970d1/yarl-1.25.1-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:a1e32763e641a1566507d90a8d3b19bfc3cc04a9d4e5ae3e32189874ed4b58a3", size = 116243, upload-time = "2026-09-15T19:33:24.788Z" }, + { url = "https://files.pythonhosted.org/packages/b0/aa/157b940428da80c104ca09666a740e51c94963df65d5b112e06b52e4d7a8/yarl-1.25.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:65b5b2066651b7432d389e9799d979c703bcc6ef44266bb8153ef54e91e4aab3", size = 115822, upload-time = "2026-09-15T19:33:26.886Z" }, + { url = "https://files.pythonhosted.org/packages/7e/af/19fbdce41412e1b96825544cc52cd7029d3724655d0988237972f078bd29/yarl-1.25.1-cp314-cp314t-win_amd64.whl", hash = "sha256:734f6e5400352ac4254456003d462866c684703570929cff7a7bde015d0cb371", size = 107386, upload-time = "2026-09-15T19:33:29.009Z" }, + { url = "https://files.pythonhosted.org/packages/2a/99/f6431c8968e89be608d74b28ae2d024521b2953f27dd44e0dece5e04f67a/yarl-1.25.1-cp314-cp314t-win_arm64.whl", hash = "sha256:287e99ff5aa4dc1c7630bfc683ded6f106d756c99dec432a2d7f197a784f51c6", size = 102094, upload-time = "2026-09-15T19:33:31.151Z" }, + { url = "https://files.pythonhosted.org/packages/c7/3b/4f51eab40c2eabea6c3d5b121dff4b8988dc35087732ffede12d2be8b8dd/yarl-1.25.1-cp315-cp315-macosx_10_15_universal2.whl", hash = "sha256:9b1bdaae98bc016825dd3c9d8ee1832f829b3341f9cc6ebd1a1b0a7fef7367cc", size = 143875, upload-time = "2026-09-15T19:33:33.52Z" }, + { url = "https://files.pythonhosted.org/packages/41/05/bbd58fc063f5f299a883f810760b265ca26c8167c91cb9a494d0fe2387e1/yarl-1.25.1-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:e7011b8fb8c4054bf0c12e5edc6cd83778b0028e99ce59b18586ed036f92cfdc", size = 104028, upload-time = "2026-09-15T19:33:36.22Z" }, + { url = "https://files.pythonhosted.org/packages/12/ee/2fba0aecb52e7020e189f684148783aa0b9cfa3b3bfb0b400646eef70ad4/yarl-1.25.1-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:f074e8d4aa0a5798920ddb6de3d08b228c614ff3724c3e8bd7577f4bafea867b", size = 104041, upload-time = "2026-09-15T19:33:38.86Z" }, + { url = "https://files.pythonhosted.org/packages/38/35/884beab53ed88c7247d1671972b5ef116f7351fe0c7e6de8c3558372cb16/yarl-1.25.1-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7d42e7e3ca399555578b4d617e3a6ecf13371b3743a115995fa010c7bf341459", size = 116018, upload-time = "2026-09-15T19:33:44.265Z" }, + { url = "https://files.pythonhosted.org/packages/e2/cc/1a91b685afb55cc18608443ace95280e96e263a97565811732b6788d3269/yarl-1.25.1-cp315-cp315-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:aa4ed3dd308548f9e707d9caaf005d2d7f8c1e7868f858dfeb47fe76e16b391d", size = 107033, upload-time = "2026-09-15T19:33:46.45Z" }, + { url = "https://files.pythonhosted.org/packages/c5/c1/58b379fcb1d68d907b7fcf75200c44321896509b2a6a74abbb4b19d864d2/yarl-1.25.1-cp315-cp315-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:42a66563d8cc056ee32e6191e05097a7b2b3bc302e0bc3133daf8710eb18bd26", size = 123257, upload-time = "2026-09-15T19:33:48.631Z" }, + { url = "https://files.pythonhosted.org/packages/d7/2d/1fe96cf5c2aeab10095e48f38585cf5a8451fb7253234822398e52aa5336/yarl-1.25.1-cp315-cp315-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:98d370568f393215d605304cdb77b3d5539bd192c75b623c7304c42c8d6d8273", size = 126745, upload-time = "2026-09-15T19:33:50.999Z" }, + { url = "https://files.pythonhosted.org/packages/ad/60/8674394ce43f4dadae573a1d6f451716438e9eab7d7fe8d643c673a32d85/yarl-1.25.1-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:23bf5b403c879a54964e0feac7285688e04bb220074878d737d331522da0a5bf", size = 117255, upload-time = "2026-09-15T19:33:53.456Z" }, + { url = "https://files.pythonhosted.org/packages/2f/72/0faa30e02605d56127d42bb987dcc97da3863b7bf70b9bfbf5f739c05e30/yarl-1.25.1-cp315-cp315-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:d45673badd08456d0340e9364eddafe1c53a9d2896424294de4d7dd71ad3ee57", size = 115166, upload-time = "2026-09-15T19:33:55.669Z" }, + { url = "https://files.pythonhosted.org/packages/8c/90/9a46eac564c437e128285c5c1d7bb385d268394e9209d84f6bf4a14471ef/yarl-1.25.1-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:0136d640dfa9b0523853e411430a99f8a91eca85774c6420285a33b755bc6de3", size = 116082, upload-time = "2026-09-15T19:33:57.78Z" }, + { url = "https://files.pythonhosted.org/packages/ad/38/4b1a686a3758878f93d2f1ea943f5a165f3555769cd16e761cfd0efdca17/yarl-1.25.1-cp315-cp315-musllinux_1_2_armv7l.whl", hash = "sha256:59ba3a6e1aa8cfe5adf4bd270fd965db21955401b7ca6f1696010c55ed4daec2", size = 108048, upload-time = "2026-09-15T19:34:00.25Z" }, + { url = "https://files.pythonhosted.org/packages/da/14/f348eb967f31a58348612a2b93bd8a2ab664548e2b5e879cac7f592f7201/yarl-1.25.1-cp315-cp315-musllinux_1_2_ppc64le.whl", hash = "sha256:87796fedc3ba97ec14fab55acb48584276e6c1e4c1e89c422bda62c838e754a9", size = 122775, upload-time = "2026-09-15T19:34:02.455Z" }, + { url = "https://files.pythonhosted.org/packages/ab/e9/4f7b79700f88cb9e8bb66f8b54f9bce1844c013a2c39fdc47112e9334c95/yarl-1.25.1-cp315-cp315-musllinux_1_2_riscv64.whl", hash = "sha256:bd0912757081f89b107d6c00b2ff8a194401b0b87eadcf4481de2b865a8fd44f", size = 115096, upload-time = "2026-09-15T19:34:05.283Z" }, + { url = "https://files.pythonhosted.org/packages/cf/37/f9cb020331997d3eb887bd28d5410ecfd3d80bf163c23d7cec490d78dade/yarl-1.25.1-cp315-cp315-musllinux_1_2_s390x.whl", hash = "sha256:b51c159a9794633f5e0db7ecec7b2b6e3734eca1f5d17dc989ff3552a43ff78b", size = 120655, upload-time = "2026-09-15T19:34:07.382Z" }, + { url = "https://files.pythonhosted.org/packages/12/83/52fceb22891a41f168db7ec22fd1d81e06b6a0b8d9f70921bd3e785defd0/yarl-1.25.1-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:319e070a01db9920fb63761843f96a104c8e2b9427266731810dc1e22595b17c", size = 117488, upload-time = "2026-09-15T19:34:09.988Z" }, + { url = "https://files.pythonhosted.org/packages/f5/5c/ce6c4ff1247fcbe4b33d462c23a097106d909b173fde7042bc52290466e2/yarl-1.25.1-cp315-cp315-win_amd64.whl", hash = "sha256:a2059a2d891bd156bc5184e7ab7a56e78a84dfcfdeac8c501b552533ad1c36ee", size = 103434, upload-time = "2026-09-15T19:34:12.56Z" }, + { url = "https://files.pythonhosted.org/packages/3c/a1/766a906b0704fb26d52b19dc22bed48a8ba0544203b70dcf44da350e8194/yarl-1.25.1-cp315-cp315-win_arm64.whl", hash = "sha256:a78b50b4f7918a3de71105d5c0b93bbc57bb8339a4d03a9dfd449f9068e76f3d", size = 99155, upload-time = "2026-09-15T19:34:15.132Z" }, + { url = "https://files.pythonhosted.org/packages/bd/d3/a1d09b32cb6ab14f66b44939f5b4255b8b9e747aef3974af1d5d80ccc2fd/yarl-1.25.1-cp315-cp315t-macosx_10_15_universal2.whl", hash = "sha256:b5402a340723fa7da00b5cff987ddab61276be6d11251ea71ae02bcac54890d8", size = 149284, upload-time = "2026-09-15T19:34:17.452Z" }, + { url = "https://files.pythonhosted.org/packages/7f/3b/fe554d879692650bca70bfbc0df124e82e4d2bb7456f698c7756f1279a96/yarl-1.25.1-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:eda19ea5ee88742f47a2340816e6f2d40b53bed3ab5b69794769f36af9f35bb4", size = 106399, upload-time = "2026-09-15T19:34:21.474Z" }, + { url = "https://files.pythonhosted.org/packages/e1/4b/e7af56177ac8d40094c82d7728224c0b8472157d50d362e5fb3b014b2bc8/yarl-1.25.1-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:75baa6cf9b6d1c52f3e111a130e202fd8cf0a5b3a066c3f73d615e885092e4ec", size = 106968, upload-time = "2026-09-15T19:34:23.619Z" }, + { url = "https://files.pythonhosted.org/packages/da/4f/2df41fd738d46f23ef829ae8b4468d94bb6070038fc6dfab6165ed44fea8/yarl-1.25.1-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dbcef5a9119ef653653132cccaf999b30a0af6f33bb0a4ba80bec30056868487", size = 114717, upload-time = "2026-09-15T19:34:25.879Z" }, + { url = "https://files.pythonhosted.org/packages/69/ea/002b66df53bbd1aed1c23358ff99c9bdc744fe3f4d2740e1b2fdd7192885/yarl-1.25.1-cp315-cp315t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7efc9f082dfed77c316edffa9deb52888e1bc6789171887cc1f68e06d65465c8", size = 105198, upload-time = "2026-09-15T19:34:28.204Z" }, + { url = "https://files.pythonhosted.org/packages/b1/7c/95c8bc0c8f97d71e59c94525ad60d76f5c57d3f2820f08137ca8b9f0542a/yarl-1.25.1-cp315-cp315t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:fe01645169a2112aa1d4ebc3e4c5f029c5c8f97adfc32e5d37c993b39a994d75", size = 120271, upload-time = "2026-09-15T19:34:30.5Z" }, + { url = "https://files.pythonhosted.org/packages/5d/7a/6fe9da56ec77927baa669fd86c39c567ce6205bab53d581082c6744c8ae7/yarl-1.25.1-cp315-cp315t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d1c557dfd5e3db046053a0bdc72261ade790ebe8e2c7a41b36b0ca1f14cb95f3", size = 123572, upload-time = "2026-09-15T19:34:32.73Z" }, + { url = "https://files.pythonhosted.org/packages/8b/83/35f222d17fa70a14c7c74fdf112ccf5515e0c2a87082b1f9b99f7693bf57/yarl-1.25.1-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8ce4d6ccafb33d39bd78444612d14938ead674c25702ded2ee9c54a47735d225", size = 115228, upload-time = "2026-09-15T19:34:35.344Z" }, + { url = "https://files.pythonhosted.org/packages/da/6f/fbaaf619423578a7d898d0f226ae47bc1906c293865c416d83c17b828b0e/yarl-1.25.1-cp315-cp315t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:80a063f8297fc796296f00f100be520f209b23dc98f93ce8eba6ee7122598209", size = 111618, upload-time = "2026-09-15T19:34:37.656Z" }, + { url = "https://files.pythonhosted.org/packages/ba/78/7383278f1b3cf8e0496bd95b3281a7b09b89217b6b428db24c6b99b3deca/yarl-1.25.1-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:7cb414a73e21a7ab58254926073f2930cb22f5b4314ea4260a687e2b3fd4dce3", size = 114839, upload-time = "2026-09-15T19:34:40.099Z" }, + { url = "https://files.pythonhosted.org/packages/62/49/5506e5b6d29aab91bd845cc9016d88c3d3f81b81bc242b8100bdd5737825/yarl-1.25.1-cp315-cp315t-musllinux_1_2_armv7l.whl", hash = "sha256:85a18376073f8a39aa07be34f9fc77e2869aa72c55c441efdd2cf79a0407504d", size = 106212, upload-time = "2026-09-15T19:34:42.768Z" }, + { url = "https://files.pythonhosted.org/packages/46/8a/19877c193b7c5929f4b07118c18bbe390f3fadd0f59dd98c0cd12b31fa5c/yarl-1.25.1-cp315-cp315t-musllinux_1_2_ppc64le.whl", hash = "sha256:77716e245c90f058466a05e6a465bb8600f767a8f4b18b4d40f3aff958e5f73c", size = 119985, upload-time = "2026-09-15T19:34:44.976Z" }, + { url = "https://files.pythonhosted.org/packages/4e/6c/0a46fbbf9ecbcbd0cc20d2193394254b9e19817f22c814aab60f99847400/yarl-1.25.1-cp315-cp315t-musllinux_1_2_riscv64.whl", hash = "sha256:1e80dcf1446e1b080b1932b0d103c464a04112f5bc31f0f983ad418172063cde", size = 112081, upload-time = "2026-09-15T19:34:47.45Z" }, + { url = "https://files.pythonhosted.org/packages/ef/30/93f5d471230c74ccd06255d0842739f86551f937f9e63a5e947853c6244a/yarl-1.25.1-cp315-cp315t-musllinux_1_2_s390x.whl", hash = "sha256:bdc8d8b8c22e9e43ac68316b5e6cf083dec537f4ec213cb4aa967b583bc3fa64", size = 116995, upload-time = "2026-09-15T19:34:49.972Z" }, + { url = "https://files.pythonhosted.org/packages/2b/80/c386593035ee3f9c6c6af0847b5578f2830c674794a9d7701b744a3ebd42/yarl-1.25.1-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:dfbf531053a0935f2e871bcd4753f90313688772ff8c017f5ea402e315a78c1f", size = 115570, upload-time = "2026-09-15T19:34:52.628Z" }, + { url = "https://files.pythonhosted.org/packages/38/02/eef443559563ef8f2e10469387b8b1e97cb5efee95b288a56da60801f7ee/yarl-1.25.1-cp315-cp315t-win_amd64.whl", hash = "sha256:b13b88747769537f3d32e89e3a735da10c0a9e35d7322928c701b5f93d3afffd", size = 106811, upload-time = "2026-09-15T19:34:54.935Z" }, + { url = "https://files.pythonhosted.org/packages/88/91/41e284ca2cf5211e05dae031d126a3668aea88fa759df56e7e35c6ad25ba/yarl-1.25.1-cp315-cp315t-win_arm64.whl", hash = "sha256:783dd1467083f4d3f7722ad6a313f24c173e7571372738fcb7a6e6d1ba48df25", size = 101804, upload-time = "2026-09-15T19:34:57.231Z" }, + { url = "https://files.pythonhosted.org/packages/54/22/318c7980066769c6bcd9221ed2248294f5698811da099013098c670565ed/yarl-1.25.1-py3-none-any.whl", hash = "sha256:681c758b0490f9e96b78e5fa8e8dc6e648e9185bb6eaebe73183c33ea0c445f3", size = 63617, upload-time = "2026-09-15T19:34:59.616Z" }, ] [[package]] @@ -3202,16 +3448,16 @@ dependencies = [ { name = "numcodecs" }, { name = "numpy" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/da/1d/01cf9e3ab2d85190278efc3fca9f68563de35ae30ee59e7640e3af98abe3/zarr-2.18.7.tar.gz", hash = "sha256:b2b8f66f14dac4af66b180d2338819981b981f70e196c9a66e6bfaa9e59572f5", size = 3604558 } +sdist = { url = "https://files.pythonhosted.org/packages/da/1d/01cf9e3ab2d85190278efc3fca9f68563de35ae30ee59e7640e3af98abe3/zarr-2.18.7.tar.gz", hash = "sha256:b2b8f66f14dac4af66b180d2338819981b981f70e196c9a66e6bfaa9e59572f5", size = 3604558, upload-time = "2025-04-09T07:59:28.482Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5e/d8/9ffd8c237b3559945bb52103cf0eed64ea098f7b7f573f8d2962ef27b4b2/zarr-2.18.7-py3-none-any.whl", hash = "sha256:ac3dc4033e9ae4e9d7b5e27c97ea3eaf1003cc0a07f010bd83d5134bf8c4b223", size = 211273 }, + { url = "https://files.pythonhosted.org/packages/5e/d8/9ffd8c237b3559945bb52103cf0eed64ea098f7b7f573f8d2962ef27b4b2/zarr-2.18.7-py3-none-any.whl", hash = "sha256:ac3dc4033e9ae4e9d7b5e27c97ea3eaf1003cc0a07f010bd83d5134bf8c4b223", size = 211273, upload-time = "2025-04-09T07:59:27.039Z" }, ] [[package]] name = "zict" version = "3.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d1/ac/3c494dd7ec5122cff8252c1a209b282c0867af029f805ae9befd73ae37eb/zict-3.0.0.tar.gz", hash = "sha256:e321e263b6a97aafc0790c3cfb3c04656b7066e6738c37fffcca95d803c9fba5", size = 33238 } +sdist = { url = "https://files.pythonhosted.org/packages/d1/ac/3c494dd7ec5122cff8252c1a209b282c0867af029f805ae9befd73ae37eb/zict-3.0.0.tar.gz", hash = "sha256:e321e263b6a97aafc0790c3cfb3c04656b7066e6738c37fffcca95d803c9fba5", size = 33238, upload-time = "2023-04-17T21:41:16.041Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/80/ab/11a76c1e2126084fde2639514f24e6111b789b0bfa4fc6264a8975c7e1f1/zict-3.0.0-py2.py3-none-any.whl", hash = "sha256:5796e36bd0e0cc8cf0fbc1ace6a68912611c1dbd74750a3f3026b9b9d6a327ae", size = 43332 }, + { url = "https://files.pythonhosted.org/packages/80/ab/11a76c1e2126084fde2639514f24e6111b789b0bfa4fc6264a8975c7e1f1/zict-3.0.0-py2.py3-none-any.whl", hash = "sha256:5796e36bd0e0cc8cf0fbc1ace6a68912611c1dbd74750a3f3026b9b9d6a327ae", size = 43332, upload-time = "2023-04-17T21:41:13.444Z" }, ]