From 377bd5e6eadefdb7185f2113d05e328ead1aa1a2 Mon Sep 17 00:00:00 2001 From: ncguilbeault Date: Mon, 6 Oct 2025 14:29:13 +0100 Subject: [PATCH 01/17] Added example for estimating parameters of Kalman filter and inferring neural latents --- .../.bonsai/Bonsai.config | 134 ++ .../EstimatingParameters/.bonsai/NuGet.config | 5 + .../EstimatingParameters/.bonsai/Setup.ps1 | 21 + .../EstimatingParameters/.bonsai/Setup.sh | 41 + .../EstimatingParameters/.bonsai/activate | 15 + .../EstimatingParameters/.bonsai/deactivate | 8 + .../EstimatingParameters/.bonsai/run | 58 + .../EstimatingParameters/.python-version | 1 + .../EstimateParameters.bonsai | 301 +++ .../NeuralLatentsEstimatingParameters.gif | Bin 0 -> 226510 bytes .../EstimatingParameters/README.md | 36 + .../EstimatingParameters/download_data.py | 46 + .../EstimatingParameters/pyproject.toml | 13 + .../EstimatingParameters/uv.lock | 1833 +++++++++++++++++ 14 files changed, 2512 insertions(+) create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/.bonsai/Bonsai.config create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/.bonsai/NuGet.config create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/.bonsai/Setup.ps1 create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/.bonsai/Setup.sh create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/.bonsai/activate create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/.bonsai/deactivate create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/.bonsai/run create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/.python-version create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/EstimateParameters.bonsai create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/NeuralLatentsEstimatingParameters.gif create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/README.md create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/download_data.py create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/pyproject.toml create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/uv.lock diff --git a/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/.bonsai/Bonsai.config b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/.bonsai/Bonsai.config new file mode 100644 index 0000000..110f42f --- /dev/null +++ b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/.bonsai/Bonsai.config @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/.bonsai/NuGet.config b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/.bonsai/NuGet.config new file mode 100644 index 0000000..aa5beec --- /dev/null +++ b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/.bonsai/NuGet.config @@ -0,0 +1,5 @@ + + + + + diff --git a/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/.bonsai/Setup.ps1 b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/.bonsai/Setup.ps1 new file mode 100644 index 0000000..76b5c46 --- /dev/null +++ b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/.bonsai/Setup.ps1 @@ -0,0 +1,21 @@ +Push-Location $PSScriptRoot +if (!(Test-Path "./Bonsai.exe")) { + $release = "https://github.com/bonsai-rx/bonsai/releases/latest/download/Bonsai.zip" + $configPath = "./Bonsai.config" + if (Test-Path $configPath) { + [xml]$config = Get-Content $configPath + $bootstrapper = $config.PackageConfiguration.Packages.Package.where{$_.id -eq 'Bonsai'} + if ($bootstrapper) { + $version = $bootstrapper.version + $release = "https://github.com/bonsai-rx/bonsai/releases/download/$version/Bonsai.zip" + } + } + Invoke-WebRequest $release -OutFile "temp.zip" + Move-Item -Path "NuGet.config" "temp.config" -ErrorAction SilentlyContinue + Expand-Archive "temp.zip" -DestinationPath "." -Force + Move-Item -Path "temp.config" "NuGet.config" -Force -ErrorAction SilentlyContinue + Remove-Item -Path "temp.zip" + Remove-Item -Path "Bonsai32.exe" +} +& .\Bonsai.exe --no-editor +Pop-Location \ No newline at end of file diff --git a/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/.bonsai/Setup.sh b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/.bonsai/Setup.sh new file mode 100644 index 0000000..941d850 --- /dev/null +++ b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/.bonsai/Setup.sh @@ -0,0 +1,41 @@ +#! /bin/bash + +SETUP_SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &> /dev/null && pwd)" + +DEFAULT_VERSION="latest" +VERSION="$DEFAULT_VERSION" + +while [[ "$#" -gt 0 ]]; do + case $1 in + --version) VERSION="$2"; shift ;; + *) echo "Unknown parameter passed: $1"; exit 1 ;; + esac + shift +done + +echo "Setting up Bonsai v=$VERSION environment..." + +if [ ! -f "$SETUP_SCRIPT_DIR/Bonsai.exe" ]; then + CONFIG="$SETUP_SCRIPT_DIR/Bonsai.config" + if [ -f "$CONFIG" ]; then + DETECTED=$(xmllint --xpath '//PackageConfiguration/Packages/Package[@id="Bonsai"]/@version' "$CONFIG" | sed -e 's/^[^"]*"//' -e 's/"$//') + echo "Version detected v=$DETECTED." + RELEASE="https://github.com/bonsai-rx/bonsai/releases/download/$DETECTED/Bonsai.zip" + else + if [ $VERSION = "latest" ]; then + RELEASE="https://github.com/bonsai-rx/bonsai/releases/latest/download/Bonsai.zip" + else + RELEASE="https://github.com/bonsai-rx/bonsai/releases/download/$VERSION/Bonsai.zip" + fi + fi + echo "Download URL: $RELEASE" + wget $RELEASE -O "$SETUP_SCRIPT_DIR/temp.zip" + mv -f "$SETUP_SCRIPT_DIR/NuGet.config" "$SETUP_SCRIPT_DIR/temp.config" + unzip -d "$SETUP_SCRIPT_DIR" -o "$SETUP_SCRIPT_DIR/temp.zip" + mv -f "$SETUP_SCRIPT_DIR/temp.config" "$SETUP_SCRIPT_DIR/NuGet.config" + rm -rf "$SETUP_SCRIPT_DIR/temp.zip" + rm -rf "$SETUP_SCRIPT_DIR/Bonsai32.exe" +fi + +source "$SETUP_SCRIPT_DIR/activate" +source "$SETUP_SCRIPT_DIR/run" --no-editor diff --git a/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/.bonsai/activate b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/.bonsai/activate new file mode 100644 index 0000000..ddf75f3 --- /dev/null +++ b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/.bonsai/activate @@ -0,0 +1,15 @@ +#!/bin/bash +# activate.sh +if [[ -v BONSAI_EXE_PATH ]]; then + echo "Error! Cannot have multiple bonsai environments activated at the same time. Please deactivate the current environment before activating the new one." + return +fi +BONSAI_ENV_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &> /dev/null && pwd)" +export BONSAI_ENV_DIR +export BONSAI_EXE_PATH="$BONSAI_ENV_DIR/Bonsai.exe" +export ORIGINAL_PS1="$PS1" +export PS1="($(basename "$BONSAI_ENV_DIR")) $PS1" +alias bonsai='source "$BONSAI_ENV_DIR"/run' +alias bonsai-clean='GTK_DATA_PREFIX= source "$BONSAI_ENV_DIR"/run' +alias deactivate='source "$BONSAI_ENV_DIR"/deactivate' +echo "Activated bonsai environment in $BONSAI_ENV_DIR" \ No newline at end of file diff --git a/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/.bonsai/deactivate b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/.bonsai/deactivate new file mode 100644 index 0000000..43233d9 --- /dev/null +++ b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/.bonsai/deactivate @@ -0,0 +1,8 @@ +#!/bin/bash +unset BONSAI_EXE_PATH +export PS1="$ORIGINAL_PS1" +unset ORIGINAL_PS1 +unalias bonsai +unalias bonsai-clean +unalias deactivate +echo "Deactivated bonsai environment." \ No newline at end of file diff --git a/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/.bonsai/run b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/.bonsai/run new file mode 100644 index 0000000..bffd6cf --- /dev/null +++ b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/.bonsai/run @@ -0,0 +1,58 @@ +#!/bin/bash +# run.sh + +SETUP_SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &> /dev/null && pwd)" +CONFIG="$SETUP_SCRIPT_DIR/Bonsai.config" + +cleanup() { + update_paths_to_windows +} + +update_paths_to_linux() { + ASSEMBLYLOCATIONS=$(xmllint --xpath '//PackageConfiguration/AssemblyLocations/AssemblyLocation/@location' "$CONFIG" | sed -e 's/^[^"]*"//' -e 's/"$//') + for ASSEMBLYLOCATION in $ASSEMBLYLOCATIONS; do + NEWASSEMBLYLOCATION="${ASSEMBLYLOCATION//\\/\/}" + xmlstarlet edit --inplace --update "/PackageConfiguration/AssemblyLocations/AssemblyLocation[@location='$ASSEMBLYLOCATION']/@location" --value "$NEWASSEMBLYLOCATION" "$CONFIG" + done + + LIBRARYFOLDERS=$(xmllint --xpath '//PackageConfiguration/LibraryFolders/LibraryFolder/@path' "$CONFIG" | sed -e 's/^[^"]*"//' -e 's/"$//') + for LIBRARYFOLDER in $LIBRARYFOLDERS; do + NEWLIBRARYFOLDER="${LIBRARYFOLDER//\\/\/}" + xmlstarlet edit --inplace --update "//PackageConfiguration/LibraryFolders/LibraryFolder[@path='$LIBRARYFOLDER']/@path" --value "$NEWLIBRARYFOLDER" "$CONFIG" + done +} + +update_paths_to_windows() { + ASSEMBLYLOCATIONS=$(xmllint --xpath '//PackageConfiguration/AssemblyLocations/AssemblyLocation/@location' "$CONFIG" | sed -e 's/^[^"]*"//' -e 's/"$//') + for ASSEMBLYLOCATION in $ASSEMBLYLOCATIONS; do + NEWASSEMBLYLOCATION="${ASSEMBLYLOCATION//\//\\}" + xmlstarlet edit --inplace --update "/PackageConfiguration/AssemblyLocations/AssemblyLocation[@location='$ASSEMBLYLOCATION']/@location" --value "$NEWASSEMBLYLOCATION" "$CONFIG" + done + + LIBRARYFOLDERS=$(xmllint --xpath '//PackageConfiguration/LibraryFolders/LibraryFolder/@path' "$CONFIG" | sed -e 's/^[^"]*"//' -e 's/"$//') + for LIBRARYFOLDER in $LIBRARYFOLDERS; do + NEWLIBRARYFOLDER="${LIBRARYFOLDER//\//\\}" + xmlstarlet edit --inplace --update "//PackageConfiguration/LibraryFolders/LibraryFolder[@path='$LIBRARYFOLDER']/@path" --value "$NEWLIBRARYFOLDER" "$CONFIG" + done +} + +if [[ -v BONSAI_EXE_PATH ]]; then + if [ ! -f "$BONSAI_EXE_PATH" ]; then + bash "$BONSAI_ENV_DIR"/Setup.sh + bash "$BONSAI_ENV_DIR"/run "$@" + else + BONSAI_VERSION=$(xmllint --xpath "//PackageConfiguration/Packages/Package[@id='Bonsai']/@version" "$CONFIG" | sed -e 's/^[^"]*"//' -e 's/"$//') + if [[ -z ${BONSAI_VERSION+x} ]] && [ "$BONSAI_VERSION" \< "2.8.4" ]; then + echo "Updating paths to Linux format..." + trap cleanup EXIT INT TERM + update_paths_to_linux + mono "$BONSAI_EXE_PATH" "$@" + cleanup + else + mono "$BONSAI_EXE_PATH" "$@" + fi + fi +else + echo "BONSAI_EXE_PATH is not set. Please set the path to the Bonsai executable." + return +fi \ No newline at end of file diff --git a/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/.python-version b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/.python-version new file mode 100644 index 0000000..e4fba21 --- /dev/null +++ b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/.python-version @@ -0,0 +1 @@ +3.12 diff --git a/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/EstimateParameters.bonsai b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/EstimateParameters.bonsai new file mode 100644 index 0000000..50c63b3 --- /dev/null +++ b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/EstimateParameters.bonsai @@ -0,0 +1,301 @@ + + + + + + LoadData + + + + + ../../../../datasets/transformed_binned_spikes.bin + 0 + 0 + 142 + 0 + F64 + RowMajor + + + + + + + + + + + + + + 142 + -1 + + + + + + + 1 + 0 + + + + + SpikeCounts + + + + + + + + + + + + + + LoadModel + + + + + KalmanFilter + Float64 + 10 + 142 + + + + + + + + + + KalmanFilterModel + + + + + + + + + + + LearnParameters + + + + SpikeCounts + + + + KalmanFilter + 10 + 0.1 + true + true + true + true + true + true + true + + + + + + + Source1 + + + Finished + + + + + + + + + + + ExpectationMaximizationResult + + + KalmanFilterModel + + + + + + + + + + + + + + + + InferNeuralLatents + + + + SpikeCounts + + + + KalmanFilter + + + + UpdatedFilteredResult + + + ExpectationMaximizationResult + + + + + + UpdatedFilteredResult + + + + KalmanFilter + + + + UpdatedSmoothedResult + + + UpdatedSmoothedResult + + + + KalmanFilter + + + + OrthogonalizedResult + + + OrthogonalizedResult + + + ReplayState + + + + Source1 + + + Mean + + + + 0 + + + + it.unsqueeze(0) + + + Covariance + + + + 0 + + + + it.unsqueeze(0) + + + + + + + PT0S + PT0.01S + + + + + + + + + + + + + + Float32 + [[-8.795354, 0.002164141, 7.56382E-05, -2.363834E-05, -5.15293E-06, 0.0001483039, -2.777361E-05, -5.953018E-06, -3.695483E-05, 1.815893E-05]] + [[[2.933708, 8.711358E-06, 4.451293E-06, -7.569341E-08, -8.818488E-07, 2.81094E-07, -6.41004E-08, -1.231459E-06, 1.977342E-07, -4.267149E-07], [8.711358E-06, 0.000198096, 3.131335E-09, -7.42367E-10, -5.885209E-09, -2.825571E-09, -1.192377E-09, -1.782066E-09, -2.267036E-09, 2.386495E-10], [4.451293E-06, 3.131335E-09, 4.985891E-05, -7.335216E-10, 2.460339E-10, 9.609284E-10, -2.088825E-10, 1.511517E-09, 4.920012E-10, 2.324915E-10], [-7.569341E-08, -7.42367E-10, -7.335216E-10, 3.403751E-05, 4.842198E-10, 6.143238E-10, -4.056797E-10, -5.8914E-10, -5.523358E-11, 2.215748E-11], [-8.818488E-07, -5.885209E-09, 2.460339E-10, 4.842198E-10, 2.522797E-05, -9.49988E-10, 1.527901E-10, 3.71208E-11, -1.238991E-10, -4.813097E-11], [2.81094E-07, -2.825571E-09, 9.609284E-10, 6.143238E-10, -9.49988E-10, 2.271433E-05, 1.389039E-10, -1.712359E-10, 1.213243E-10, -4.842049E-11], [-6.41004E-08, -1.192377E-09, -2.088825E-10, -4.056797E-10, 1.527901E-10, 1.389039E-10, 2.053487E-05, -5.178224E-11, -1.111919E-10, 1.701798E-12], [-1.231459E-06, -1.782066E-09, 1.511517E-09, -5.8914E-10, 3.71208E-11, -1.712359E-10, -5.178224E-11, 1.513379E-05, 1.367752E-10, -5.611431E-11], [1.977342E-07, -2.267036E-09, 4.920012E-10, -5.523358E-11, -1.238991E-10, 1.213243E-10, -1.111919E-10, 1.367752E-10, 1.024639E-05, -2.804446E-11], [-4.267149E-07, 2.386495E-10, 2.324915E-10, 2.215748E-11, -4.813097E-11, -4.842049E-11, 1.701798E-12, -5.611431E-11, -2.804446E-11, 2.744816E-06]]] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NeuralLatents + true + + + + + + + + + + \ No newline at end of file diff --git a/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/NeuralLatentsEstimatingParameters.gif b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/NeuralLatentsEstimatingParameters.gif new file mode 100644 index 0000000000000000000000000000000000000000..cc8e93b2bfada6ae1289e7f02117e3a66f580614 GIT binary patch literal 226510 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%0Dx|s0zt3>NZa3*X^i0(4@a5^ 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 QFnafk6#t&rDFFchI|*o{tN;K2 literal 0 HcmV?d00001 diff --git a/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/README.md b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/README.md new file mode 100644 index 0000000..886ea43 --- /dev/null +++ b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/README.md @@ -0,0 +1,36 @@ +# Estimating Parameters of Kalman Filter + +In the following example, you will see how the `Bonsai.ML.Lds.Torch` package can be used to estimate the parameters of a Kalman filter and perform acausal smoothing of neural spike counts. + +### Download the Dataset + +To run the example, you need to download the dataset from DANDI and transform the raw spike data into binned spike counts. We provide a convenient python script and `uv` environment to easily download and transform the raw data. First, make sure `uv` is installed on your computer, which you can do by following the guide [here](https://docs.astral.sh/uv/getting-started/installation/). + +Next, open up a terminal and run the following commands. + +```bash +cd examples/Torch.LDS/NeuralLatents/EstimatingParameters +uv run download_data.py +``` + +When the script finishes, you should see a file called `transformed_binned_spikes.bin` inside the `datasets` folders. + +### Running the Workflow + +The example workflow is shown here: + +:::workflow +![Estimate Parameters](EstimateParameters.bonsai) +::: + +The first group node, `LoadData`, loads the entire `datasets/transformed_binned_spikes.bin` file into memory and converts it into a `Tensor` object. It then reshapes it so that the dimensions are `time` x `neurons` and passes it to a `ReplaySubject` called `SpikeCounts` to be used in the downstream processing pipeline. In this example, the entire batch of data are loaded. + +The `LoadModel` group node uses the `CreateKalmanFilter` node to specify the model. We leave the optional parameters blank. We set the `NumStates` to `10` and the `NumObservations` to `142` to match the number of spiking neurons contained in the dataset. This then feeds into a `BehaviorSubject` node called `KalmanFilterModel` for use in other parts of the workflow. + +In the `LearnParameters` group node, the `SpikeCounts` are fed into the `ExpectationMaximization` node which uses the EM algorithm to iteratively optimize the models selected parameters given the spike count data. The EM algorithm will iterate until it reaches the `MaxIterations` count or until the algorithm converges to less than the `Tolerance`. After some time, the algorithm will finish and the output will be passed to a `BehaviorSubject` called `ExpectationMaximizationResult` to trigger the inference procedure. + +The last group node, `InferNeuralLatents`, contains the inference pipeline and starts when the `ExpectationMaximizationResult` is emitted. The `Filter` step runs causal filtering over the entire batch of `SpikeCounts`. The `UpdatedFilterResult` is then run through the `Smooth` step, which runs acausal smoothing from the last data point all the way back to the initial data point. This `UpdatedSmoothedResult` is then fed into the `Orthogonalize` node, which essentially node extracts the principal, orthogonal components of the measurement function and projects the state mean and covariance into the orthogonalized space to focus only on the most informative directions. The `OrthogonalizedResult` is then decomposed into individual observations over time and gated to produce values at a frequency of a ~100Hz. + +When you start the workflow, you should see a window pop up with the title `NeuralLatents`. As the EM algorithm runs, nothing will be displayed at first. After 10 iterations, the EM algorithm will finish, and once the data are filtered, smoothed, and orthogonalized, you will start to see the inferred latents displayed in the chart. This is how it should appear: + +![](./NeuralLatentsEstimatingParameters.gif) diff --git a/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/download_data.py b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/download_data.py new file mode 100644 index 0000000..8fb4416 --- /dev/null +++ b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/download_data.py @@ -0,0 +1,46 @@ +# Import libraries +import numpy as np +import remfile, h5py +from dandi.dandiapi import DandiAPIClient +from pynwb import NWBHDF5IO +import os + +# set base directory to save data +base_dir = os.path.join(os.path.realpath(os.path.dirname(__file__)), "..", "..", "..", "..", "datasets") + +# dandi dataset info +dandiset_ID = "000140" +dandi_filepath = "sub-Jenkins/sub-Jenkins_ses-small_desc-train_behavior+ecephys.nwb" + +# download data using remfile and dandi +with DandiAPIClient() as client: + asset = client.get_dandiset(dandiset_ID, + "draft").get_asset_by_path(dandi_filepath) + s3_path = asset.get_content_url(follow_redirects=1, strip_query=True) + cache = remfile.DiskCache(os.path.join(base_dir, "remfile_cache")) + rf = remfile.File(s3_path, disk_cache=cache) + with h5py.File(rf, "r") as h: + with NWBHDF5IO(file=h, mode="r") as io: + nwbfile = io.read() + # extract spike sorted units dataframe + units_df = nwbfile.units.to_dataframe() + +# bin spikes +n_clusters = units_df.shape[0] +bin_size = 0.02 + +spike_times = [units_df.iloc[n]['spike_times'] for n in range(n_clusters)] +t_max = max(max(st) for st in spike_times if len(st) > 0) + +bin_edges = np.arange(0, t_max + bin_size, bin_size) +bin_centers = (bin_edges[1:] + bin_edges[:-1]) / 2 +n_bins = len(bin_edges) - 1 + +spike_counts = np.zeros((n_clusters, n_bins), dtype=int) + +for n, spikes in enumerate(spike_times): + spike_counts[n], _ = np.histogram(spikes, bins=bin_edges) + +# transform binned spikes using square-root transform +transformed_binned_spikes = np.sqrt(spike_counts + 0.5) +transformed_binned_spikes.astype(float).tofile(os.path.join(base_dir, "transformed_binned_spikes.bin")) \ No newline at end of file diff --git a/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/pyproject.toml b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/pyproject.toml new file mode 100644 index 0000000..29a08db --- /dev/null +++ b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/pyproject.toml @@ -0,0 +1,13 @@ +[project] +name = "estimatingneurallatents" +version = "0.1.0" +description = "Example for estimating neural latents" +readme = "README.md" +requires-python = ">=3.12" +dependencies = [ + "dandi>=0.71.4", + "h5py>=3.14.0", + "numpy>=2.3.3", + "pynwb>=3.1.2", + "remfile>=0.1.13", +] diff --git a/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/uv.lock b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/uv.lock new file mode 100644 index 0000000..ba10581 --- /dev/null +++ b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/uv.lock @@ -0,0 +1,1833 @@ +version = 1 +revision = 2 +requires-python = ">=3.12" +resolution-markers = [ + "python_full_version >= '3.13'", + "python_full_version < '3.13'", +] + +[[package]] +name = "acres" +version = "0.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ec/ba/94b63a9af588fbf7bde25ce44d55456199654a92fb7b2337767198a824b0/acres-0.5.0.tar.gz", hash = "sha256:128b6447bf5df3b6210264feccbfa018b4ac5bd337358319aec6563f99db8f3a", size = 57750, upload_time = "2025-06-04T12:40:30.329Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/39/e8/806475fe4cdfd8635535d3fa11bd61d19b7cc94b61b9147ebdd2ab4cbbee/acres-0.5.0-py3-none-any.whl", hash = "sha256:fcc32b974b510897de0f041609b4234f9ff03e2e960aea088f63973fb106c772", size = 12703, upload_time = "2025-06-04T12:40:28.745Z" }, +] + +[[package]] +name = "aiohappyeyeballs" +version = "2.6.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/26/30/f84a107a9c4331c14b2b586036f40965c128aa4fee4dda5d3d51cb14ad54/aiohappyeyeballs-2.6.1.tar.gz", hash = "sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558", size = 22760, upload_time = "2025-03-12T01:42:48.764Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0f/15/5bf3b99495fb160b63f95972b81750f18f7f4e02ad051373b669d17d44f2/aiohappyeyeballs-2.6.1-py3-none-any.whl", hash = "sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8", size = 15265, upload_time = "2025-03-12T01:42:47.083Z" }, +] + +[[package]] +name = "aiohttp" +version = "3.12.15" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohappyeyeballs" }, + { name = "aiosignal" }, + { name = "attrs" }, + { name = "frozenlist" }, + { name = "multidict" }, + { name = "propcache" }, + { name = "yarl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9b/e7/d92a237d8802ca88483906c388f7c201bbe96cd80a165ffd0ac2f6a8d59f/aiohttp-3.12.15.tar.gz", hash = "sha256:4fc61385e9c98d72fcdf47e6dd81833f47b2f77c114c29cd64a361be57a763a2", size = 7823716, upload_time = "2025-07-29T05:52:32.215Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/63/97/77cb2450d9b35f517d6cf506256bf4f5bda3f93a66b4ad64ba7fc917899c/aiohttp-3.12.15-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:802d3868f5776e28f7bf69d349c26fc0efadb81676d0afa88ed00d98a26340b7", size = 702333, upload_time = "2025-07-29T05:50:46.507Z" }, + { url = "https://files.pythonhosted.org/packages/83/6d/0544e6b08b748682c30b9f65640d006e51f90763b41d7c546693bc22900d/aiohttp-3.12.15-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f2800614cd560287be05e33a679638e586a2d7401f4ddf99e304d98878c29444", size = 476948, upload_time = "2025-07-29T05:50:48.067Z" }, + { url = "https://files.pythonhosted.org/packages/3a/1d/c8c40e611e5094330284b1aea8a4b02ca0858f8458614fa35754cab42b9c/aiohttp-3.12.15-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8466151554b593909d30a0a125d638b4e5f3836e5aecde85b66b80ded1cb5b0d", size = 469787, upload_time = "2025-07-29T05:50:49.669Z" }, + { url = "https://files.pythonhosted.org/packages/38/7d/b76438e70319796bfff717f325d97ce2e9310f752a267bfdf5192ac6082b/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e5a495cb1be69dae4b08f35a6c4579c539e9b5706f606632102c0f855bcba7c", size = 1716590, upload_time = "2025-07-29T05:50:51.368Z" }, + { url = "https://files.pythonhosted.org/packages/79/b1/60370d70cdf8b269ee1444b390cbd72ce514f0d1cd1a715821c784d272c9/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6404dfc8cdde35c69aaa489bb3542fb86ef215fc70277c892be8af540e5e21c0", size = 1699241, upload_time = "2025-07-29T05:50:53.628Z" }, + { url = "https://files.pythonhosted.org/packages/a3/2b/4968a7b8792437ebc12186db31523f541943e99bda8f30335c482bea6879/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3ead1c00f8521a5c9070fcb88f02967b1d8a0544e6d85c253f6968b785e1a2ab", size = 1754335, upload_time = "2025-07-29T05:50:55.394Z" }, + { url = "https://files.pythonhosted.org/packages/fb/c1/49524ed553f9a0bec1a11fac09e790f49ff669bcd14164f9fab608831c4d/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6990ef617f14450bc6b34941dba4f12d5613cbf4e33805932f853fbd1cf18bfb", size = 1800491, upload_time = "2025-07-29T05:50:57.202Z" }, + { url = "https://files.pythonhosted.org/packages/de/5e/3bf5acea47a96a28c121b167f5ef659cf71208b19e52a88cdfa5c37f1fcc/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd736ed420f4db2b8148b52b46b88ed038d0354255f9a73196b7bbce3ea97545", size = 1719929, upload_time = "2025-07-29T05:50:59.192Z" }, + { url = "https://files.pythonhosted.org/packages/39/94/8ae30b806835bcd1cba799ba35347dee6961a11bd507db634516210e91d8/aiohttp-3.12.15-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3c5092ce14361a73086b90c6efb3948ffa5be2f5b6fbcf52e8d8c8b8848bb97c", size = 1635733, upload_time = "2025-07-29T05:51:01.394Z" }, + { url = "https://files.pythonhosted.org/packages/7a/46/06cdef71dd03acd9da7f51ab3a9107318aee12ad38d273f654e4f981583a/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:aaa2234bb60c4dbf82893e934d8ee8dea30446f0647e024074237a56a08c01bd", size = 1696790, upload_time = "2025-07-29T05:51:03.657Z" }, + { url = "https://files.pythonhosted.org/packages/02/90/6b4cfaaf92ed98d0ec4d173e78b99b4b1a7551250be8937d9d67ecb356b4/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:6d86a2fbdd14192e2f234a92d3b494dd4457e683ba07e5905a0b3ee25389ac9f", size = 1718245, upload_time = "2025-07-29T05:51:05.911Z" }, + { url = "https://files.pythonhosted.org/packages/2e/e6/2593751670fa06f080a846f37f112cbe6f873ba510d070136a6ed46117c6/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a041e7e2612041a6ddf1c6a33b883be6a421247c7afd47e885969ee4cc58bd8d", size = 1658899, upload_time = "2025-07-29T05:51:07.753Z" }, + { url = "https://files.pythonhosted.org/packages/8f/28/c15bacbdb8b8eb5bf39b10680d129ea7410b859e379b03190f02fa104ffd/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5015082477abeafad7203757ae44299a610e89ee82a1503e3d4184e6bafdd519", size = 1738459, upload_time = "2025-07-29T05:51:09.56Z" }, + { url = "https://files.pythonhosted.org/packages/00/de/c269cbc4faa01fb10f143b1670633a8ddd5b2e1ffd0548f7aa49cb5c70e2/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:56822ff5ddfd1b745534e658faba944012346184fbfe732e0d6134b744516eea", size = 1766434, upload_time = "2025-07-29T05:51:11.423Z" }, + { url = "https://files.pythonhosted.org/packages/52/b0/4ff3abd81aa7d929b27d2e1403722a65fc87b763e3a97b3a2a494bfc63bc/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b2acbbfff69019d9014508c4ba0401822e8bae5a5fdc3b6814285b71231b60f3", size = 1726045, upload_time = "2025-07-29T05:51:13.689Z" }, + { url = "https://files.pythonhosted.org/packages/71/16/949225a6a2dd6efcbd855fbd90cf476052e648fb011aa538e3b15b89a57a/aiohttp-3.12.15-cp312-cp312-win32.whl", hash = "sha256:d849b0901b50f2185874b9a232f38e26b9b3d4810095a7572eacea939132d4e1", size = 423591, upload_time = "2025-07-29T05:51:15.452Z" }, + { url = "https://files.pythonhosted.org/packages/2b/d8/fa65d2a349fe938b76d309db1a56a75c4fb8cc7b17a398b698488a939903/aiohttp-3.12.15-cp312-cp312-win_amd64.whl", hash = "sha256:b390ef5f62bb508a9d67cb3bba9b8356e23b3996da7062f1a57ce1a79d2b3d34", size = 450266, upload_time = "2025-07-29T05:51:17.239Z" }, + { url = "https://files.pythonhosted.org/packages/f2/33/918091abcf102e39d15aba2476ad9e7bd35ddb190dcdd43a854000d3da0d/aiohttp-3.12.15-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:9f922ffd05034d439dde1c77a20461cf4a1b0831e6caa26151fe7aa8aaebc315", size = 696741, upload_time = "2025-07-29T05:51:19.021Z" }, + { url = "https://files.pythonhosted.org/packages/b5/2a/7495a81e39a998e400f3ecdd44a62107254803d1681d9189be5c2e4530cd/aiohttp-3.12.15-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2ee8a8ac39ce45f3e55663891d4b1d15598c157b4d494a4613e704c8b43112cd", size = 474407, upload_time = "2025-07-29T05:51:21.165Z" }, + { url = "https://files.pythonhosted.org/packages/49/fc/a9576ab4be2dcbd0f73ee8675d16c707cfc12d5ee80ccf4015ba543480c9/aiohttp-3.12.15-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3eae49032c29d356b94eee45a3f39fdf4b0814b397638c2f718e96cfadf4c4e4", size = 466703, upload_time = "2025-07-29T05:51:22.948Z" }, + { url = "https://files.pythonhosted.org/packages/09/2f/d4bcc8448cf536b2b54eed48f19682031ad182faa3a3fee54ebe5b156387/aiohttp-3.12.15-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b97752ff12cc12f46a9b20327104448042fce5c33a624f88c18f66f9368091c7", size = 1705532, upload_time = "2025-07-29T05:51:25.211Z" }, + { url = "https://files.pythonhosted.org/packages/f1/f3/59406396083f8b489261e3c011aa8aee9df360a96ac8fa5c2e7e1b8f0466/aiohttp-3.12.15-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:894261472691d6fe76ebb7fcf2e5870a2ac284c7406ddc95823c8598a1390f0d", size = 1686794, upload_time = "2025-07-29T05:51:27.145Z" }, + { url = "https://files.pythonhosted.org/packages/dc/71/164d194993a8d114ee5656c3b7ae9c12ceee7040d076bf7b32fb98a8c5c6/aiohttp-3.12.15-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5fa5d9eb82ce98959fc1031c28198b431b4d9396894f385cb63f1e2f3f20ca6b", size = 1738865, upload_time = "2025-07-29T05:51:29.366Z" }, + { url = "https://files.pythonhosted.org/packages/1c/00/d198461b699188a93ead39cb458554d9f0f69879b95078dce416d3209b54/aiohttp-3.12.15-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f0fa751efb11a541f57db59c1dd821bec09031e01452b2b6217319b3a1f34f3d", size = 1788238, upload_time = "2025-07-29T05:51:31.285Z" }, + { url = "https://files.pythonhosted.org/packages/85/b8/9e7175e1fa0ac8e56baa83bf3c214823ce250d0028955dfb23f43d5e61fd/aiohttp-3.12.15-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5346b93e62ab51ee2a9d68e8f73c7cf96ffb73568a23e683f931e52450e4148d", size = 1710566, upload_time = "2025-07-29T05:51:33.219Z" }, + { url = "https://files.pythonhosted.org/packages/59/e4/16a8eac9df39b48ae102ec030fa9f726d3570732e46ba0c592aeeb507b93/aiohttp-3.12.15-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:049ec0360f939cd164ecbfd2873eaa432613d5e77d6b04535e3d1fbae5a9e645", size = 1624270, upload_time = "2025-07-29T05:51:35.195Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f8/cd84dee7b6ace0740908fd0af170f9fab50c2a41ccbc3806aabcb1050141/aiohttp-3.12.15-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b52dcf013b57464b6d1e51b627adfd69a8053e84b7103a7cd49c030f9ca44461", size = 1677294, upload_time = "2025-07-29T05:51:37.215Z" }, + { url = "https://files.pythonhosted.org/packages/ce/42/d0f1f85e50d401eccd12bf85c46ba84f947a84839c8a1c2c5f6e8ab1eb50/aiohttp-3.12.15-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:9b2af240143dd2765e0fb661fd0361a1b469cab235039ea57663cda087250ea9", size = 1708958, upload_time = "2025-07-29T05:51:39.328Z" }, + { url = "https://files.pythonhosted.org/packages/d5/6b/f6fa6c5790fb602538483aa5a1b86fcbad66244997e5230d88f9412ef24c/aiohttp-3.12.15-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ac77f709a2cde2cc71257ab2d8c74dd157c67a0558a0d2799d5d571b4c63d44d", size = 1651553, upload_time = "2025-07-29T05:51:41.356Z" }, + { url = "https://files.pythonhosted.org/packages/04/36/a6d36ad545fa12e61d11d1932eef273928b0495e6a576eb2af04297fdd3c/aiohttp-3.12.15-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:47f6b962246f0a774fbd3b6b7be25d59b06fdb2f164cf2513097998fc6a29693", size = 1727688, upload_time = "2025-07-29T05:51:43.452Z" }, + { url = "https://files.pythonhosted.org/packages/aa/c8/f195e5e06608a97a4e52c5d41c7927301bf757a8e8bb5bbf8cef6c314961/aiohttp-3.12.15-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:760fb7db442f284996e39cf9915a94492e1896baac44f06ae551974907922b64", size = 1761157, upload_time = "2025-07-29T05:51:45.643Z" }, + { url = "https://files.pythonhosted.org/packages/05/6a/ea199e61b67f25ba688d3ce93f63b49b0a4e3b3d380f03971b4646412fc6/aiohttp-3.12.15-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ad702e57dc385cae679c39d318def49aef754455f237499d5b99bea4ef582e51", size = 1710050, upload_time = "2025-07-29T05:51:48.203Z" }, + { url = "https://files.pythonhosted.org/packages/b4/2e/ffeb7f6256b33635c29dbed29a22a723ff2dd7401fff42ea60cf2060abfb/aiohttp-3.12.15-cp313-cp313-win32.whl", hash = "sha256:f813c3e9032331024de2eb2e32a88d86afb69291fbc37a3a3ae81cc9917fb3d0", size = 422647, upload_time = "2025-07-29T05:51:50.718Z" }, + { url = "https://files.pythonhosted.org/packages/1b/8e/78ee35774201f38d5e1ba079c9958f7629b1fd079459aea9467441dbfbf5/aiohttp-3.12.15-cp313-cp313-win_amd64.whl", hash = "sha256:1a649001580bdb37c6fdb1bebbd7e3bc688e8ec2b5c6f52edbb664662b17dc84", size = 449067, upload_time = "2025-07-29T05:51:52.549Z" }, +] + +[[package]] +name = "aiosignal" +version = "1.4.0" +source = { registry = "https://pypi.org/simple" } +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, 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, upload_time = "2025-07-03T22:54:42.156Z" }, +] + +[[package]] +name = "annotated-types" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081, upload_time = "2024-05-20T21:33:25.928Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643, upload_time = "2024-05-20T21:33:24.1Z" }, +] + +[[package]] +name = "arrow" +version = "1.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "python-dateutil" }, + { name = "types-python-dateutil" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2e/00/0f6e8fcdb23ea632c866620cc872729ff43ed91d284c866b515c6342b173/arrow-1.3.0.tar.gz", hash = "sha256:d4540617648cb5f895730f1ad8c82a65f2dad0166f57b75f3ca54759c4d67a85", size = 131960, upload_time = "2023-09-30T22:11:18.25Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f8/ed/e97229a566617f2ae958a6b13e7cc0f585470eac730a73e9e82c32a3cdd2/arrow-1.3.0-py3-none-any.whl", hash = "sha256:c728b120ebc00eb84e01882a6f5e7927a53960aa990ce7dd2b10f39005a67f80", size = 66419, upload_time = "2023-09-30T22:11:16.072Z" }, +] + +[[package]] +name = "asciitree" +version = "0.3.3" +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, upload_time = "2016-09-05T19:10:42.681Z" } + +[[package]] +name = "attrs" +version = "25.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5a/b0/1367933a8532ee6ff8d63537de4f1177af4bff9f3e829baf7331f595bb24/attrs-25.3.0.tar.gz", hash = "sha256:75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b", size = 812032, upload_time = "2025-03-13T11:10:22.779Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/77/06/bb80f5f86020c4551da315d78b3ab75e8228f89f0162f2c3a819e407941a/attrs-25.3.0-py3-none-any.whl", hash = "sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3", size = 63815, upload_time = "2025-03-13T11:10:21.14Z" }, +] + +[[package]] +name = "bids-validator-deno" +version = "2.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7a/ae/2045dacd02307997b612d7dd0c61092c2b6875d72cad3873d7af26dd7f3a/bids_validator_deno-2.1.1.tar.gz", hash = "sha256:1add452625548607d357c018a5ac1365809dcabf612624e71f5bdbb3d2ec081c", size = 73252, upload_time = "2025-09-29T16:25:21.774Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/30/08/0ca16cac7c2ad7ed8846691ab4ee4997a1d936d5c29509f3cec71f36a778/bids_validator_deno-2.1.1-py2.py3-none-macosx_10_12_x86_64.whl", hash = "sha256:ac27e7070229fb45a80ff04b61de0a37551da751ab3d893a45cbd672daed220e", size = 42418556, upload_time = "2025-09-29T16:25:06.696Z" }, + { url = "https://files.pythonhosted.org/packages/18/4d/d98fc4e6c3ed73de84f7af84c695d676e086678f9e4ec3e2fc66c54b0d78/bids_validator_deno-2.1.1-py2.py3-none-macosx_11_0_arm64.whl", hash = "sha256:6082c69cdf4382df0ca82be7591d22444e65b2e2a72d06fb7d87a6e131d6e920", size = 41656505, upload_time = "2025-09-29T16:25:10.639Z" }, + { url = "https://files.pythonhosted.org/packages/15/44/7c8ad5a37d77db13985508aa04d4ee006df4adde8414921760ecd4b642c5/bids_validator_deno-2.1.1-py2.py3-none-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:06a06a27b07a237bcb4eecd09bf656fd8eafb61c77d0f4ae311807db0ac6dba5", size = 43321256, upload_time = "2025-09-29T16:25:13.676Z" }, + { url = "https://files.pythonhosted.org/packages/a8/cf/92cd8c6507068745c55afa0cad60a6ac85d1bd0a17dec41b93f1eab55a5b/bids_validator_deno-2.1.1-py2.py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:538914e927fe38c6cd80458acf31a5a4e3ff52020b5b2dfdea42d3bc49aac5e7", size = 44433972, upload_time = "2025-09-29T16:25:16.439Z" }, + { url = "https://files.pythonhosted.org/packages/3b/b4/0f9b960ef336426df7f2db4920a99d10c6f57a29001696a93854aa3da0bf/bids_validator_deno-2.1.1-py2.py3-none-win_amd64.whl", hash = "sha256:b163ed4976ece0cf21f94f6293281687633110e8bd2e8966064f2f0e2ed88302", size = 43848264, upload_time = "2025-09-29T16:25:19.546Z" }, +] + +[[package]] +name = "bidsschematools" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "acres" }, + { name = "click" }, + { name = "pyyaml" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/82/5d/8b940b4149ba11e5ed5325a79f3c75a0e2ec66cb4123d3d1313222550929/bidsschematools-1.1.0.tar.gz", hash = "sha256:71555f2364a27ba6ac7bff869b5181ff64aa180c5e56725180b43012627c0e06", size = 1752873, upload_time = "2025-09-03T14:24:36.587Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/00/d6/15f1ea70e9dde2fbd5c1ea83db6169e5663c9b20d4854678650ff5cefad7/bidsschematools-1.1.0-py3-none-any.whl", hash = "sha256:aabd6ae19978a5a92777f04fa0740ca9ea4a746075b077d88671d47d46c56653", size = 179191, upload_time = "2025-09-03T14:24:35.2Z" }, +] + +[[package]] +name = "blessed" +version = "1.22.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "wcwidth" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7c/51/a72df7730aa34a94bc43cebecb7b63ffa42f019868637dbeb45e0620d26e/blessed-1.22.0.tar.gz", hash = "sha256:1818efb7c10015478286f21a412fcdd31a3d8b94a18f6d926e733827da7a844b", size = 6660050, upload_time = "2025-09-15T19:15:26.551Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/11/b7/a19b55c4cd0b5ca5009ca11d3634994758a1a446976b8e7afa25e719613c/blessed-1.22.0-py2.py3-none-any.whl", hash = "sha256:a1fed52d708a1aa26dfb8d3eaecf6f4714bff590e728baeefcb44f2c16c8de82", size = 85078, upload_time = "2025-09-15T19:15:24.787Z" }, +] + +[[package]] +name = "certifi" +version = "2025.8.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/dc/67/960ebe6bf230a96cda2e0abcf73af550ec4f090005363542f0765df162e0/certifi-2025.8.3.tar.gz", hash = "sha256:e564105f78ded564e3ae7c923924435e1daa7463faeab5bb932bc53ffae63407", size = 162386, upload_time = "2025-08-03T03:07:47.08Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/48/1549795ba7742c948d2ad169c1c8cdbae65bc450d6cd753d124b17c8cd32/certifi-2025.8.3-py3-none-any.whl", hash = "sha256:f6c12493cfb1b06ba2ff328595af9350c65d6644968e5d3a2ffd78699af217a5", size = 161216, upload_time = "2025-08-03T03:07:45.777Z" }, +] + +[[package]] +name = "cffi" +version = "2.0.0" +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, upload_time = "2025-09-08T23:24:04.541Z" } +wheels = [ + { 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, upload_time = "2025-09-08T23:22:47.349Z" }, + { 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, upload_time = "2025-09-08T23:22:48.677Z" }, + { 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, upload_time = "2025-09-08T23:22:50.06Z" }, + { 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, upload_time = "2025-09-08T23:22:51.364Z" }, + { 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, upload_time = "2025-09-08T23:22:52.902Z" }, + { 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, upload_time = "2025-09-08T23:22:54.518Z" }, + { 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, upload_time = "2025-09-08T23:22:55.867Z" }, + { 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, upload_time = "2025-09-08T23:23:03.472Z" }, + { 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, upload_time = "2025-09-08T23:23:04.792Z" }, + { 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, upload_time = "2025-09-08T23:23:06.127Z" }, + { 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, upload_time = "2025-09-08T23:23:07.753Z" }, + { 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, upload_time = "2025-09-08T23:23:09.648Z" }, + { 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, upload_time = "2025-09-08T23:23:10.928Z" }, + { 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, upload_time = "2025-09-08T23:23:12.42Z" }, + { 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, upload_time = "2025-09-08T23:23:20.853Z" }, + { 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, upload_time = "2025-09-08T23:23:22.08Z" }, + { 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, upload_time = "2025-09-08T23:23:23.314Z" }, + { 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, upload_time = "2025-09-08T23:23:24.541Z" }, + { 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, upload_time = "2025-09-08T23:23:26.143Z" }, + { 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, upload_time = "2025-09-08T23:23:27.873Z" }, + { 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, upload_time = "2025-09-08T23:23:31.91Z" }, + { 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, upload_time = "2025-09-08T23:23:33.214Z" }, + { 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, upload_time = "2025-09-08T23:23:34.495Z" }, + { 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, upload_time = "2025-09-08T23:23:36.096Z" }, + { 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, upload_time = "2025-09-08T23:23:37.328Z" }, + { 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, upload_time = "2025-09-08T23:23:38.945Z" }, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/83/2d/5fd176ceb9b2fc619e63405525573493ca23441330fcdaee6bef9460e924/charset_normalizer-3.4.3.tar.gz", hash = "sha256:6fce4b8500244f6fcb71465d4a4930d132ba9ab8e71a7859e6a5d59851068d14", size = 122371, upload_time = "2025-08-09T07:57:28.46Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e9/5e/14c94999e418d9b87682734589404a25854d5f5d0408df68bc15b6ff54bb/charset_normalizer-3.4.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e28e334d3ff134e88989d90ba04b47d84382a828c061d0d1027b1b12a62b39b1", size = 205655, upload_time = "2025-08-09T07:56:08.475Z" }, + { url = "https://files.pythonhosted.org/packages/7d/a8/c6ec5d389672521f644505a257f50544c074cf5fc292d5390331cd6fc9c3/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0cacf8f7297b0c4fcb74227692ca46b4a5852f8f4f24b3c766dd94a1075c4884", size = 146223, upload_time = "2025-08-09T07:56:09.708Z" }, + { url = "https://files.pythonhosted.org/packages/fc/eb/a2ffb08547f4e1e5415fb69eb7db25932c52a52bed371429648db4d84fb1/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c6fd51128a41297f5409deab284fecbe5305ebd7e5a1f959bee1c054622b7018", size = 159366, upload_time = "2025-08-09T07:56:11.326Z" }, + { url = "https://files.pythonhosted.org/packages/82/10/0fd19f20c624b278dddaf83b8464dcddc2456cb4b02bb902a6da126b87a1/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3cfb2aad70f2c6debfbcb717f23b7eb55febc0bb23dcffc0f076009da10c6392", size = 157104, upload_time = "2025-08-09T07:56:13.014Z" }, + { url = "https://files.pythonhosted.org/packages/16/ab/0233c3231af734f5dfcf0844aa9582d5a1466c985bbed6cedab85af9bfe3/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1606f4a55c0fd363d754049cdf400175ee96c992b1f8018b993941f221221c5f", size = 151830, upload_time = "2025-08-09T07:56:14.428Z" }, + { url = "https://files.pythonhosted.org/packages/ae/02/e29e22b4e02839a0e4a06557b1999d0a47db3567e82989b5bb21f3fbbd9f/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:027b776c26d38b7f15b26a5da1044f376455fb3766df8fc38563b4efbc515154", size = 148854, upload_time = "2025-08-09T07:56:16.051Z" }, + { url = "https://files.pythonhosted.org/packages/05/6b/e2539a0a4be302b481e8cafb5af8792da8093b486885a1ae4d15d452bcec/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:42e5088973e56e31e4fa58eb6bd709e42fc03799c11c42929592889a2e54c491", size = 160670, upload_time = "2025-08-09T07:56:17.314Z" }, + { url = "https://files.pythonhosted.org/packages/31/e7/883ee5676a2ef217a40ce0bffcc3d0dfbf9e64cbcfbdf822c52981c3304b/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:cc34f233c9e71701040d772aa7490318673aa7164a0efe3172b2981218c26d93", size = 158501, upload_time = "2025-08-09T07:56:18.641Z" }, + { url = "https://files.pythonhosted.org/packages/c1/35/6525b21aa0db614cf8b5792d232021dca3df7f90a1944db934efa5d20bb1/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:320e8e66157cc4e247d9ddca8e21f427efc7a04bbd0ac8a9faf56583fa543f9f", size = 153173, upload_time = "2025-08-09T07:56:20.289Z" }, + { url = "https://files.pythonhosted.org/packages/50/ee/f4704bad8201de513fdc8aac1cabc87e38c5818c93857140e06e772b5892/charset_normalizer-3.4.3-cp312-cp312-win32.whl", hash = "sha256:fb6fecfd65564f208cbf0fba07f107fb661bcd1a7c389edbced3f7a493f70e37", size = 99822, upload_time = "2025-08-09T07:56:21.551Z" }, + { url = "https://files.pythonhosted.org/packages/39/f5/3b3836ca6064d0992c58c7561c6b6eee1b3892e9665d650c803bd5614522/charset_normalizer-3.4.3-cp312-cp312-win_amd64.whl", hash = "sha256:86df271bf921c2ee3818f0522e9a5b8092ca2ad8b065ece5d7d9d0e9f4849bcc", size = 107543, upload_time = "2025-08-09T07:56:23.115Z" }, + { url = "https://files.pythonhosted.org/packages/65/ca/2135ac97709b400c7654b4b764daf5c5567c2da45a30cdd20f9eefe2d658/charset_normalizer-3.4.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:14c2a87c65b351109f6abfc424cab3927b3bdece6f706e4d12faaf3d52ee5efe", size = 205326, upload_time = "2025-08-09T07:56:24.721Z" }, + { url = "https://files.pythonhosted.org/packages/71/11/98a04c3c97dd34e49c7d247083af03645ca3730809a5509443f3c37f7c99/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:41d1fc408ff5fdfb910200ec0e74abc40387bccb3252f3f27c0676731df2b2c8", size = 146008, upload_time = "2025-08-09T07:56:26.004Z" }, + { url = "https://files.pythonhosted.org/packages/60/f5/4659a4cb3c4ec146bec80c32d8bb16033752574c20b1252ee842a95d1a1e/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:1bb60174149316da1c35fa5233681f7c0f9f514509b8e399ab70fea5f17e45c9", size = 159196, upload_time = "2025-08-09T07:56:27.25Z" }, + { url = "https://files.pythonhosted.org/packages/86/9e/f552f7a00611f168b9a5865a1414179b2c6de8235a4fa40189f6f79a1753/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:30d006f98569de3459c2fc1f2acde170b7b2bd265dc1943e87e1a4efe1b67c31", size = 156819, upload_time = "2025-08-09T07:56:28.515Z" }, + { url = "https://files.pythonhosted.org/packages/7e/95/42aa2156235cbc8fa61208aded06ef46111c4d3f0de233107b3f38631803/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:416175faf02e4b0810f1f38bcb54682878a4af94059a1cd63b8747244420801f", size = 151350, upload_time = "2025-08-09T07:56:29.716Z" }, + { url = "https://files.pythonhosted.org/packages/c2/a9/3865b02c56f300a6f94fc631ef54f0a8a29da74fb45a773dfd3dcd380af7/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6aab0f181c486f973bc7262a97f5aca3ee7e1437011ef0c2ec04b5a11d16c927", size = 148644, upload_time = "2025-08-09T07:56:30.984Z" }, + { url = "https://files.pythonhosted.org/packages/77/d9/cbcf1a2a5c7d7856f11e7ac2d782aec12bdfea60d104e60e0aa1c97849dc/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:fdabf8315679312cfa71302f9bd509ded4f2f263fb5b765cf1433b39106c3cc9", size = 160468, upload_time = "2025-08-09T07:56:32.252Z" }, + { url = "https://files.pythonhosted.org/packages/f6/42/6f45efee8697b89fda4d50580f292b8f7f9306cb2971d4b53f8914e4d890/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:bd28b817ea8c70215401f657edef3a8aa83c29d447fb0b622c35403780ba11d5", size = 158187, upload_time = "2025-08-09T07:56:33.481Z" }, + { url = "https://files.pythonhosted.org/packages/70/99/f1c3bdcfaa9c45b3ce96f70b14f070411366fa19549c1d4832c935d8e2c3/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:18343b2d246dc6761a249ba1fb13f9ee9a2bcd95decc767319506056ea4ad4dc", size = 152699, upload_time = "2025-08-09T07:56:34.739Z" }, + { url = "https://files.pythonhosted.org/packages/a3/ad/b0081f2f99a4b194bcbb1934ef3b12aa4d9702ced80a37026b7607c72e58/charset_normalizer-3.4.3-cp313-cp313-win32.whl", hash = "sha256:6fb70de56f1859a3f71261cbe41005f56a7842cc348d3aeb26237560bfa5e0ce", size = 99580, upload_time = "2025-08-09T07:56:35.981Z" }, + { url = "https://files.pythonhosted.org/packages/9a/8f/ae790790c7b64f925e5c953b924aaa42a243fb778fed9e41f147b2a5715a/charset_normalizer-3.4.3-cp313-cp313-win_amd64.whl", hash = "sha256:cf1ebb7d78e1ad8ec2a8c4732c7be2e736f6e5123a4146c5b89c9d1f585f8cef", size = 107366, upload_time = "2025-08-09T07:56:37.339Z" }, + { url = "https://files.pythonhosted.org/packages/8e/91/b5a06ad970ddc7a0e513112d40113e834638f4ca1120eb727a249fb2715e/charset_normalizer-3.4.3-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:3cd35b7e8aedeb9e34c41385fda4f73ba609e561faedfae0a9e75e44ac558a15", size = 204342, upload_time = "2025-08-09T07:56:38.687Z" }, + { url = "https://files.pythonhosted.org/packages/ce/ec/1edc30a377f0a02689342f214455c3f6c2fbedd896a1d2f856c002fc3062/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b89bc04de1d83006373429975f8ef9e7932534b8cc9ca582e4db7d20d91816db", size = 145995, upload_time = "2025-08-09T07:56:40.048Z" }, + { url = "https://files.pythonhosted.org/packages/17/e5/5e67ab85e6d22b04641acb5399c8684f4d37caf7558a53859f0283a650e9/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2001a39612b241dae17b4687898843f254f8748b796a2e16f1051a17078d991d", size = 158640, upload_time = "2025-08-09T07:56:41.311Z" }, + { url = "https://files.pythonhosted.org/packages/f1/e5/38421987f6c697ee3722981289d554957c4be652f963d71c5e46a262e135/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8dcfc373f888e4fb39a7bc57e93e3b845e7f462dacc008d9749568b1c4ece096", size = 156636, upload_time = "2025-08-09T07:56:43.195Z" }, + { url = "https://files.pythonhosted.org/packages/a0/e4/5a075de8daa3ec0745a9a3b54467e0c2967daaaf2cec04c845f73493e9a1/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:18b97b8404387b96cdbd30ad660f6407799126d26a39ca65729162fd810a99aa", size = 150939, upload_time = "2025-08-09T07:56:44.819Z" }, + { url = "https://files.pythonhosted.org/packages/02/f7/3611b32318b30974131db62b4043f335861d4d9b49adc6d57c1149cc49d4/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ccf600859c183d70eb47e05a44cd80a4ce77394d1ac0f79dbd2dd90a69a3a049", size = 148580, upload_time = "2025-08-09T07:56:46.684Z" }, + { url = "https://files.pythonhosted.org/packages/7e/61/19b36f4bd67f2793ab6a99b979b4e4f3d8fc754cbdffb805335df4337126/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:53cd68b185d98dde4ad8990e56a58dea83a4162161b1ea9272e5c9182ce415e0", size = 159870, upload_time = "2025-08-09T07:56:47.941Z" }, + { url = "https://files.pythonhosted.org/packages/06/57/84722eefdd338c04cf3030ada66889298eaedf3e7a30a624201e0cbe424a/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:30a96e1e1f865f78b030d65241c1ee850cdf422d869e9028e2fc1d5e4db73b92", size = 157797, upload_time = "2025-08-09T07:56:49.756Z" }, + { url = "https://files.pythonhosted.org/packages/72/2a/aff5dd112b2f14bcc3462c312dce5445806bfc8ab3a7328555da95330e4b/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d716a916938e03231e86e43782ca7878fb602a125a91e7acb8b5112e2e96ac16", size = 152224, upload_time = "2025-08-09T07:56:51.369Z" }, + { url = "https://files.pythonhosted.org/packages/b7/8c/9839225320046ed279c6e839d51f028342eb77c91c89b8ef2549f951f3ec/charset_normalizer-3.4.3-cp314-cp314-win32.whl", hash = "sha256:c6dbd0ccdda3a2ba7c2ecd9d77b37f3b5831687d8dc1b6ca5f56a4880cc7b7ce", size = 100086, upload_time = "2025-08-09T07:56:52.722Z" }, + { url = "https://files.pythonhosted.org/packages/ee/7a/36fbcf646e41f710ce0a563c1c9a343c6edf9be80786edeb15b6f62e17db/charset_normalizer-3.4.3-cp314-cp314-win_amd64.whl", hash = "sha256:73dc19b562516fc9bcf6e5d6e596df0b4eb98d87e4f79f3ae71840e6ed21361c", size = 107400, upload_time = "2025-08-09T07:56:55.172Z" }, + { url = "https://files.pythonhosted.org/packages/8a/1f/f041989e93b001bc4e44bb1669ccdcf54d3f00e628229a85b08d330615c5/charset_normalizer-3.4.3-py3-none-any.whl", hash = "sha256:ce571ab16d890d23b5c278547ba694193a45011ff86a9162a71307ed9f86759a", size = 53175, upload_time = "2025-08-09T07:57:26.864Z" }, +] + +[[package]] +name = "ci-info" +version = "0.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/11/27/938d6ef93df09c686dcee1c7334578274320e98e7bf912a6409cf2c8c3e5/ci-info-0.3.0.tar.gz", hash = "sha256:1fd50cbd401f29adffeeb18b0489e232d16ac1a7458ac6bc316deab6ae535fb0", size = 25169, upload_time = "2022-07-27T17:22:49.365Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/13/c3/8ac768b389d5b6dda1c3ce7992b3acd2b46401f9b71439123858b17b1a2c/ci_info-0.3.0-py3-none-any.whl", hash = "sha256:e9e05d262a6c48aa03cd904475de5ce8c4da8a5435e516631c795d0487dc9e07", size = 7764, upload_time = "2022-07-27T17:22:47.196Z" }, +] + +[[package]] +name = "click" +version = "8.1.8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b9/2e/0090cbf739cee7d23781ad4b89a9894a41538e4fcf4c31dcdd705b78eb8b/click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a", size = 226593, upload_time = "2024-12-21T18:38:44.339Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/d4/7ebdbd03970677812aac39c869717059dbb71a4cfc033ca6e5221787892c/click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2", size = 98188, upload_time = "2024-12-21T18:38:41.666Z" }, +] + +[[package]] +name = "click-didyoumean" +version = "0.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/30/ce/217289b77c590ea1e7c24242d9ddd6e249e52c795ff10fac2c50062c48cb/click_didyoumean-0.3.1.tar.gz", hash = "sha256:4f82fdff0dbe64ef8ab2279bd6aa3f6a99c3b28c05aa09cbfc07c9d7fbb5a463", size = 3089, upload_time = "2024-03-24T08:22:07.499Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1b/5b/974430b5ffdb7a4f1941d13d83c64a0395114503cc357c6b9ae4ce5047ed/click_didyoumean-0.3.1-py3-none-any.whl", hash = "sha256:5c4bb6007cfea5f2fd6583a2fb6701a22a41eb98957e63d0fac41c10e7c3117c", size = 3631, upload_time = "2024-03-24T08:22:06.356Z" }, +] + +[[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, 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, upload_time = "2022-10-25T02:36:20.889Z" }, +] + +[[package]] +name = "cryptography" +version = "46.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/4a/9b/e301418629f7bfdf72db9e80ad6ed9d1b83c487c471803eaa6464c511a01/cryptography-46.0.2.tar.gz", hash = "sha256:21b6fc8c71a3f9a604f028a329e5560009cc4a3a828bfea5fcba8eb7647d88fe", size = 749293, upload_time = "2025-10-01T00:29:11.856Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c6/38/b2adb2aa1baa6706adc3eb746691edd6f90a656a9a65c3509e274d15a2b8/cryptography-46.0.2-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1fd1a69086926b623ef8126b4c33d5399ce9e2f3fac07c9c734c2a4ec38b6d02", size = 4297596, upload_time = "2025-10-01T00:27:25.258Z" }, + { url = "https://files.pythonhosted.org/packages/e4/27/0f190ada240003119488ae66c897b5e97149292988f556aef4a6a2a57595/cryptography-46.0.2-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:bb7fb9cd44c2582aa5990cf61a4183e6f54eea3172e54963787ba47287edd135", size = 4450899, upload_time = "2025-10-01T00:27:27.458Z" }, + { url = "https://files.pythonhosted.org/packages/85/d5/e4744105ab02fdf6bb58ba9a816e23b7a633255987310b4187d6745533db/cryptography-46.0.2-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:9066cfd7f146f291869a9898b01df1c9b0e314bfa182cef432043f13fc462c92", size = 4300382, upload_time = "2025-10-01T00:27:29.091Z" }, + { url = "https://files.pythonhosted.org/packages/33/fb/bf9571065c18c04818cb07de90c43fc042c7977c68e5de6876049559c72f/cryptography-46.0.2-cp311-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:97e83bf4f2f2c084d8dd792d13841d0a9b241643151686010866bbd076b19659", size = 4017347, upload_time = "2025-10-01T00:27:30.767Z" }, + { url = "https://files.pythonhosted.org/packages/35/72/fc51856b9b16155ca071080e1a3ad0c3a8e86616daf7eb018d9565b99baa/cryptography-46.0.2-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:4a766d2a5d8127364fd936572c6e6757682fc5dfcbdba1632d4554943199f2fa", size = 4983500, upload_time = "2025-10-01T00:27:32.741Z" }, + { url = "https://files.pythonhosted.org/packages/c1/53/0f51e926799025e31746d454ab2e36f8c3f0d41592bc65cb9840368d3275/cryptography-46.0.2-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:fab8f805e9675e61ed8538f192aad70500fa6afb33a8803932999b1049363a08", size = 4482591, upload_time = "2025-10-01T00:27:34.869Z" }, + { url = "https://files.pythonhosted.org/packages/86/96/4302af40b23ab8aa360862251fb8fc450b2a06ff24bc5e261c2007f27014/cryptography-46.0.2-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:1e3b6428a3d56043bff0bb85b41c535734204e599c1c0977e1d0f261b02f3ad5", size = 4300019, upload_time = "2025-10-01T00:27:37.029Z" }, + { url = "https://files.pythonhosted.org/packages/9b/59/0be12c7fcc4c5e34fe2b665a75bc20958473047a30d095a7657c218fa9e8/cryptography-46.0.2-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:1a88634851d9b8de8bb53726f4300ab191d3b2f42595e2581a54b26aba71b7cc", size = 4950006, upload_time = "2025-10-01T00:27:40.272Z" }, + { url = "https://files.pythonhosted.org/packages/55/1d/42fda47b0111834b49e31590ae14fd020594d5e4dadd639bce89ad790fba/cryptography-46.0.2-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:be939b99d4e091eec9a2bcf41aaf8f351f312cd19ff74b5c83480f08a8a43e0b", size = 4482088, upload_time = "2025-10-01T00:27:42.668Z" }, + { url = "https://files.pythonhosted.org/packages/17/50/60f583f69aa1602c2bdc7022dae86a0d2b837276182f8c1ec825feb9b874/cryptography-46.0.2-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9f13b040649bc18e7eb37936009b24fd31ca095a5c647be8bb6aaf1761142bd1", size = 4425599, upload_time = "2025-10-01T00:27:44.616Z" }, + { url = "https://files.pythonhosted.org/packages/d1/57/d8d4134cd27e6e94cf44adb3f3489f935bde85f3a5508e1b5b43095b917d/cryptography-46.0.2-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:9bdc25e4e01b261a8fda4e98618f1c9515febcecebc9566ddf4a70c63967043b", size = 4697458, upload_time = "2025-10-01T00:27:46.209Z" }, + { url = "https://files.pythonhosted.org/packages/93/22/d66a8591207c28bbe4ac7afa25c4656dc19dc0db29a219f9809205639ede/cryptography-46.0.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e7155c0b004e936d381b15425273aee1cebc94f879c0ce82b0d7fecbf755d53a", size = 4287584, upload_time = "2025-10-01T00:27:57.018Z" }, + { url = "https://files.pythonhosted.org/packages/8c/3e/fac3ab6302b928e0398c269eddab5978e6c1c50b2b77bb5365ffa8633b37/cryptography-46.0.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:a61c154cc5488272a6c4b86e8d5beff4639cdb173d75325ce464d723cda0052b", size = 4433796, upload_time = "2025-10-01T00:27:58.631Z" }, + { url = "https://files.pythonhosted.org/packages/7d/d8/24392e5d3c58e2d83f98fe5a2322ae343360ec5b5b93fe18bc52e47298f5/cryptography-46.0.2-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:9ec3f2e2173f36a9679d3b06d3d01121ab9b57c979de1e6a244b98d51fea1b20", size = 4292126, upload_time = "2025-10-01T00:28:00.643Z" }, + { url = "https://files.pythonhosted.org/packages/ed/38/3d9f9359b84c16c49a5a336ee8be8d322072a09fac17e737f3bb11f1ce64/cryptography-46.0.2-cp314-cp314t-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:2fafb6aa24e702bbf74de4cb23bfa2c3beb7ab7683a299062b69724c92e0fa73", size = 3993056, upload_time = "2025-10-01T00:28:02.8Z" }, + { url = "https://files.pythonhosted.org/packages/d6/a3/4c44fce0d49a4703cc94bfbe705adebf7ab36efe978053742957bc7ec324/cryptography-46.0.2-cp314-cp314t-manylinux_2_28_ppc64le.whl", hash = "sha256:0c7ffe8c9b1fcbb07a26d7c9fa5e857c2fe80d72d7b9e0353dcf1d2180ae60ee", size = 4967604, upload_time = "2025-10-01T00:28:04.783Z" }, + { url = "https://files.pythonhosted.org/packages/eb/c2/49d73218747c8cac16bb8318a5513fde3129e06a018af3bc4dc722aa4a98/cryptography-46.0.2-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:5840f05518caa86b09d23f8b9405a7b6d5400085aa14a72a98fdf5cf1568c0d2", size = 4465367, upload_time = "2025-10-01T00:28:06.864Z" }, + { url = "https://files.pythonhosted.org/packages/1b/64/9afa7d2ee742f55ca6285a54386ed2778556a4ed8871571cb1c1bfd8db9e/cryptography-46.0.2-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:27c53b4f6a682a1b645fbf1cd5058c72cf2f5aeba7d74314c36838c7cbc06e0f", size = 4291678, upload_time = "2025-10-01T00:28:08.982Z" }, + { url = "https://files.pythonhosted.org/packages/50/48/1696d5ea9623a7b72ace87608f6899ca3c331709ac7ebf80740abb8ac673/cryptography-46.0.2-cp314-cp314t-manylinux_2_34_ppc64le.whl", hash = "sha256:512c0250065e0a6b286b2db4bbcc2e67d810acd53eb81733e71314340366279e", size = 4931366, upload_time = "2025-10-01T00:28:10.74Z" }, + { url = "https://files.pythonhosted.org/packages/eb/3c/9dfc778401a334db3b24435ee0733dd005aefb74afe036e2d154547cb917/cryptography-46.0.2-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:07c0eb6657c0e9cca5891f4e35081dbf985c8131825e21d99b4f440a8f496f36", size = 4464738, upload_time = "2025-10-01T00:28:12.491Z" }, + { url = "https://files.pythonhosted.org/packages/dc/b1/abcde62072b8f3fd414e191a6238ce55a0050e9738090dc6cded24c12036/cryptography-46.0.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:48b983089378f50cba258f7f7aa28198c3f6e13e607eaf10472c26320332ca9a", size = 4419305, upload_time = "2025-10-01T00:28:14.145Z" }, + { url = "https://files.pythonhosted.org/packages/c7/1f/3d2228492f9391395ca34c677e8f2571fb5370fe13dc48c1014f8c509864/cryptography-46.0.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:e6f6775eaaa08c0eec73e301f7592f4367ccde5e4e4df8e58320f2ebf161ea2c", size = 4681201, upload_time = "2025-10-01T00:28:15.951Z" }, + { url = "https://files.pythonhosted.org/packages/b7/66/f42071ce0e3ffbfa80a88feadb209c779fda92a23fbc1e14f74ebf72ef6b/cryptography-46.0.2-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d30bc11d35743bf4ddf76674a0a369ec8a21f87aaa09b0661b04c5f6c46e8d7b", size = 4293123, upload_time = "2025-10-01T00:28:25.072Z" }, + { url = "https://files.pythonhosted.org/packages/a8/5d/1fdbd2e5c1ba822828d250e5a966622ef00185e476d1cd2726b6dd135e53/cryptography-46.0.2-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:bca3f0ce67e5a2a2cf524e86f44697c4323a86e0fd7ba857de1c30d52c11ede1", size = 4439524, upload_time = "2025-10-01T00:28:26.808Z" }, + { url = "https://files.pythonhosted.org/packages/c8/c1/5e4989a7d102d4306053770d60f978c7b6b1ea2ff8c06e0265e305b23516/cryptography-46.0.2-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:ff798ad7a957a5021dcbab78dfff681f0cf15744d0e6af62bd6746984d9c9e9c", size = 4297264, upload_time = "2025-10-01T00:28:29.327Z" }, + { url = "https://files.pythonhosted.org/packages/28/78/b56f847d220cb1d6d6aef5a390e116ad603ce13a0945a3386a33abc80385/cryptography-46.0.2-cp38-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:cb5e8daac840e8879407acbe689a174f5ebaf344a062f8918e526824eb5d97af", size = 4011872, upload_time = "2025-10-01T00:28:31.479Z" }, + { url = "https://files.pythonhosted.org/packages/e1/80/2971f214b066b888944f7b57761bf709ee3f2cf805619a18b18cab9b263c/cryptography-46.0.2-cp38-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:3f37aa12b2d91e157827d90ce78f6180f0c02319468a0aea86ab5a9566da644b", size = 4978458, upload_time = "2025-10-01T00:28:33.267Z" }, + { url = "https://files.pythonhosted.org/packages/a5/84/0cb0a2beaa4f1cbe63ebec4e97cd7e0e9f835d0ba5ee143ed2523a1e0016/cryptography-46.0.2-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:5e38f203160a48b93010b07493c15f2babb4e0f2319bbd001885adb3f3696d21", size = 4472195, upload_time = "2025-10-01T00:28:36.039Z" }, + { url = "https://files.pythonhosted.org/packages/30/8b/2b542ddbf78835c7cd67b6fa79e95560023481213a060b92352a61a10efe/cryptography-46.0.2-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:d19f5f48883752b5ab34cff9e2f7e4a7f216296f33714e77d1beb03d108632b6", size = 4296791, upload_time = "2025-10-01T00:28:37.732Z" }, + { url = "https://files.pythonhosted.org/packages/78/12/9065b40201b4f4876e93b9b94d91feb18de9150d60bd842a16a21565007f/cryptography-46.0.2-cp38-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:04911b149eae142ccd8c9a68892a70c21613864afb47aba92d8c7ed9cc001023", size = 4939629, upload_time = "2025-10-01T00:28:39.654Z" }, + { url = "https://files.pythonhosted.org/packages/f6/9e/6507dc048c1b1530d372c483dfd34e7709fc542765015425f0442b08547f/cryptography-46.0.2-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:8b16c1ede6a937c291d41176934268e4ccac2c6521c69d3f5961c5a1e11e039e", size = 4471988, upload_time = "2025-10-01T00:28:41.822Z" }, + { url = "https://files.pythonhosted.org/packages/b1/86/d025584a5f7d5c5ec8d3633dbcdce83a0cd579f1141ceada7817a4c26934/cryptography-46.0.2-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:747b6f4a4a23d5a215aadd1d0b12233b4119c4313df83ab4137631d43672cc90", size = 4422989, upload_time = "2025-10-01T00:28:43.608Z" }, + { url = "https://files.pythonhosted.org/packages/4b/39/536370418b38a15a61bbe413006b79dfc3d2b4b0eafceb5581983f973c15/cryptography-46.0.2-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:6b275e398ab3a7905e168c036aad54b5969d63d3d9099a0a66cc147a3cc983be", size = 4685578, upload_time = "2025-10-01T00:28:45.361Z" }, +] + +[[package]] +name = "dandi" +version = "0.71.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "bids-validator-deno" }, + { name = "bidsschematools" }, + { name = "click" }, + { name = "click-didyoumean" }, + { name = "dandischema" }, + { name = "etelemetry" }, + { name = "fasteners" }, + { name = "fscacher" }, + { name = "hdmf" }, + { name = "humanize" }, + { name = "interleave" }, + { name = "joblib" }, + { name = "keyring" }, + { name = "keyrings-alt" }, + { name = "numcodecs" }, + { name = "nwbinspector" }, + { name = "packaging" }, + { name = "platformdirs" }, + { name = "pycryptodomex" }, + { name = "pydantic" }, + { name = "pynwb" }, + { name = "pyout" }, + { name = "python-dateutil" }, + { name = "requests" }, + { name = "ruamel-yaml" }, + { name = "semantic-version" }, + { name = "tenacity" }, + { name = "tensorstore" }, + { name = "urllib3" }, + { name = "yarl" }, + { name = "zarr" }, + { name = "zarr-checksum" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/10/fc/39127506b70d3ef212a830e3d3725e032c2c049349ce60de5ed597317c55/dandi-0.71.4.tar.gz", hash = "sha256:5dc9e1960d8c55cb5a184b15f58c07cb50fdb7f5038c0f6bc8ccbb214e83381b", size = 354241, upload_time = "2025-09-17T01:39:44.061Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8e/60/5496a7c0de8221b0683bdee8f9710f297da125951d4f507bf8e037a512fe/dandi-0.71.4-py3-none-any.whl", hash = "sha256:3cf15eb411218386cc1a01465b604a97de6d5c5ef53c4186d84fed69605ef9a4", size = 359756, upload_time = "2025-09-17T01:39:42.145Z" }, +] + +[[package]] +name = "dandischema" +version = "0.11.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jsonschema", extra = ["format"] }, + { name = "pydantic", extra = ["email"] }, + { name = "requests" }, + { name = "zarr-checksum" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/83/c3/68b59ef8f7d49904af4aa4ea730364f3eb02b94cceaaadf128048cbd6370/dandischema-0.11.1.tar.gz", hash = "sha256:662ca01ec3bd81ca70becc98727b0aadd5b116a40ad257d11216acab0d8dda66", size = 74714, upload_time = "2025-05-15T13:38:37.957Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a2/a6/ea4542a2897f8e0438621bc44cd462021c737c84be85e1964f8625ce6509/dandischema-0.11.1-py3-none-any.whl", hash = "sha256:ac80c29a8dad7b4df2e3c7edd5a830fcb31acabe75c78a4b7323097e136d040f", size = 85309, upload_time = "2025-05-15T13:38:36.83Z" }, +] + +[[package]] +name = "deprecated" +version = "1.2.18" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "wrapt" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/98/97/06afe62762c9a8a86af0cfb7bfdab22a43ad17138b07af5b1a58442690a2/deprecated-1.2.18.tar.gz", hash = "sha256:422b6f6d859da6f2ef57857761bfb392480502a64c3028ca9bbe86085d72115d", size = 2928744, upload_time = "2025-01-27T10:46:25.7Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6e/c6/ac0b6c1e2d138f1002bcf799d330bd6d85084fece321e662a14223794041/Deprecated-1.2.18-py2.py3-none-any.whl", hash = "sha256:bd5011788200372a32418f888e326a09ff80d0214bd961147cfed01b5c018eec", size = 9998, upload_time = "2025-01-27T10:46:09.186Z" }, +] + +[[package]] +name = "dnspython" +version = "2.8.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8c/8b/57666417c0f90f08bcafa776861060426765fdb422eb10212086fb811d26/dnspython-2.8.0.tar.gz", hash = "sha256:181d3c6996452cb1189c4046c61599b84a5a86e099562ffde77d26984ff26d0f", size = 368251, upload_time = "2025-09-07T18:58:00.022Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ba/5a/18ad964b0086c6e62e2e7500f7edc89e3faa45033c71c1893d34eed2b2de/dnspython-2.8.0-py3-none-any.whl", hash = "sha256:01d9bbc4a2d76bf0db7c1f729812ded6d912bd318d3b1cf81d30c0f845dbf3af", size = 331094, upload_time = "2025-09-07T18:57:58.071Z" }, +] + +[[package]] +name = "email-validator" +version = "2.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "dnspython" }, + { name = "idna" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f5/22/900cb125c76b7aaa450ce02fd727f452243f2e91a61af068b40adba60ea9/email_validator-2.3.0.tar.gz", hash = "sha256:9fc05c37f2f6cf439ff414f8fc46d917929974a82244c20eb10231ba60c54426", size = 51238, upload_time = "2025-08-26T13:09:06.831Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/de/15/545e2b6cf2e3be84bc1ed85613edd75b8aea69807a71c26f4ca6a9258e82/email_validator-2.3.0-py3-none-any.whl", hash = "sha256:80f13f623413e6b197ae73bb10bf4eb0908faf509ad8362c5edeb0be7fd450b4", size = 35604, upload_time = "2025-08-26T13:09:05.858Z" }, +] + +[[package]] +name = "estimatingneurallatents" +version = "0.1.0" +source = { virtual = "." } +dependencies = [ + { name = "dandi" }, + { name = "h5py" }, + { name = "numpy" }, + { name = "pynwb" }, + { name = "remfile" }, +] + +[package.metadata] +requires-dist = [ + { name = "dandi", specifier = ">=0.71.4" }, + { name = "h5py", specifier = ">=3.14.0" }, + { name = "numpy", specifier = ">=2.3.3" }, + { name = "pynwb", specifier = ">=3.1.2" }, + { name = "remfile", specifier = ">=0.1.13" }, +] + +[[package]] +name = "etelemetry" +version = "0.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ci-info" }, + { name = "packaging" }, + { name = "requests" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/83/27/f997c9da0e179986fadd6c8474d16743f1b3697c129c2fcd1e739cd038c2/etelemetry-0.3.1-py3-none-any.whl", hash = "sha256:a64f09bcd55cbfa5684e4d9fb6d1d6a018ab99d2ea28e638435c4c26e6814a6b", size = 6416, upload_time = "2023-10-13T15:13:16.067Z" }, +] + +[[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, 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, upload_time = "2025-08-11T10:19:35.716Z" }, +] + +[[package]] +name = "fqdn" +version = "1.5.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/30/3e/a80a8c077fd798951169626cde3e239adeba7dab75deb3555716415bd9b0/fqdn-1.5.1.tar.gz", hash = "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f", size = 6015, upload_time = "2021-03-11T07:16:29.08Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cf/58/8acf1b3e91c58313ce5cb67df61001fc9dcd21be4fadb76c1a2d540e09ed/fqdn-1.5.1-py3-none-any.whl", hash = "sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014", size = 9121, upload_time = "2021-03-11T07:16:28.351Z" }, +] + +[[package]] +name = "frozenlist" +version = "1.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/79/b1/b64018016eeb087db503b038296fd782586432b9c077fc5c7839e9cb6ef6/frozenlist-1.7.0.tar.gz", hash = "sha256:2e310d81923c2437ea8670467121cc3e9b0f76d3043cc1d2331d56c7fb7a3a8f", size = 45078, upload_time = "2025-06-09T23:02:35.538Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ef/a2/c8131383f1e66adad5f6ecfcce383d584ca94055a34d683bbb24ac5f2f1c/frozenlist-1.7.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:3dbf9952c4bb0e90e98aec1bd992b3318685005702656bc6f67c1a32b76787f2", size = 81424, upload_time = "2025-06-09T23:00:42.24Z" }, + { url = "https://files.pythonhosted.org/packages/4c/9d/02754159955088cb52567337d1113f945b9e444c4960771ea90eb73de8db/frozenlist-1.7.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:1f5906d3359300b8a9bb194239491122e6cf1444c2efb88865426f170c262cdb", size = 47952, upload_time = "2025-06-09T23:00:43.481Z" }, + { url = "https://files.pythonhosted.org/packages/01/7a/0046ef1bd6699b40acd2067ed6d6670b4db2f425c56980fa21c982c2a9db/frozenlist-1.7.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3dabd5a8f84573c8d10d8859a50ea2dec01eea372031929871368c09fa103478", size = 46688, upload_time = "2025-06-09T23:00:44.793Z" }, + { url = "https://files.pythonhosted.org/packages/d6/a2/a910bafe29c86997363fb4c02069df4ff0b5bc39d33c5198b4e9dd42d8f8/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa57daa5917f1738064f302bf2626281a1cb01920c32f711fbc7bc36111058a8", size = 243084, upload_time = "2025-06-09T23:00:46.125Z" }, + { url = "https://files.pythonhosted.org/packages/64/3e/5036af9d5031374c64c387469bfcc3af537fc0f5b1187d83a1cf6fab1639/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c193dda2b6d49f4c4398962810fa7d7c78f032bf45572b3e04dd5249dff27e08", size = 233524, upload_time = "2025-06-09T23:00:47.73Z" }, + { url = "https://files.pythonhosted.org/packages/06/39/6a17b7c107a2887e781a48ecf20ad20f1c39d94b2a548c83615b5b879f28/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bfe2b675cf0aaa6d61bf8fbffd3c274b3c9b7b1623beb3809df8a81399a4a9c4", size = 248493, upload_time = "2025-06-09T23:00:49.742Z" }, + { url = "https://files.pythonhosted.org/packages/be/00/711d1337c7327d88c44d91dd0f556a1c47fb99afc060ae0ef66b4d24793d/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8fc5d5cda37f62b262405cf9652cf0856839c4be8ee41be0afe8858f17f4c94b", size = 244116, upload_time = "2025-06-09T23:00:51.352Z" }, + { url = "https://files.pythonhosted.org/packages/24/fe/74e6ec0639c115df13d5850e75722750adabdc7de24e37e05a40527ca539/frozenlist-1.7.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b0d5ce521d1dd7d620198829b87ea002956e4319002ef0bc8d3e6d045cb4646e", size = 224557, upload_time = "2025-06-09T23:00:52.855Z" }, + { url = "https://files.pythonhosted.org/packages/8d/db/48421f62a6f77c553575201e89048e97198046b793f4a089c79a6e3268bd/frozenlist-1.7.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:488d0a7d6a0008ca0db273c542098a0fa9e7dfaa7e57f70acef43f32b3f69dca", size = 241820, upload_time = "2025-06-09T23:00:54.43Z" }, + { url = "https://files.pythonhosted.org/packages/1d/fa/cb4a76bea23047c8462976ea7b7a2bf53997a0ca171302deae9d6dd12096/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:15a7eaba63983d22c54d255b854e8108e7e5f3e89f647fc854bd77a237e767df", size = 236542, upload_time = "2025-06-09T23:00:56.409Z" }, + { url = "https://files.pythonhosted.org/packages/5d/32/476a4b5cfaa0ec94d3f808f193301debff2ea42288a099afe60757ef6282/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:1eaa7e9c6d15df825bf255649e05bd8a74b04a4d2baa1ae46d9c2d00b2ca2cb5", size = 249350, upload_time = "2025-06-09T23:00:58.468Z" }, + { url = "https://files.pythonhosted.org/packages/8d/ba/9a28042f84a6bf8ea5dbc81cfff8eaef18d78b2a1ad9d51c7bc5b029ad16/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e4389e06714cfa9d47ab87f784a7c5be91d3934cd6e9a7b85beef808297cc025", size = 225093, upload_time = "2025-06-09T23:01:00.015Z" }, + { url = "https://files.pythonhosted.org/packages/bc/29/3a32959e68f9cf000b04e79ba574527c17e8842e38c91d68214a37455786/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:73bd45e1488c40b63fe5a7df892baf9e2a4d4bb6409a2b3b78ac1c6236178e01", size = 245482, upload_time = "2025-06-09T23:01:01.474Z" }, + { url = "https://files.pythonhosted.org/packages/80/e8/edf2f9e00da553f07f5fa165325cfc302dead715cab6ac8336a5f3d0adc2/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:99886d98e1643269760e5fe0df31e5ae7050788dd288947f7f007209b8c33f08", size = 249590, upload_time = "2025-06-09T23:01:02.961Z" }, + { url = "https://files.pythonhosted.org/packages/1c/80/9a0eb48b944050f94cc51ee1c413eb14a39543cc4f760ed12657a5a3c45a/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:290a172aae5a4c278c6da8a96222e6337744cd9c77313efe33d5670b9f65fc43", size = 237785, upload_time = "2025-06-09T23:01:05.095Z" }, + { url = "https://files.pythonhosted.org/packages/f3/74/87601e0fb0369b7a2baf404ea921769c53b7ae00dee7dcfe5162c8c6dbf0/frozenlist-1.7.0-cp312-cp312-win32.whl", hash = "sha256:426c7bc70e07cfebc178bc4c2bf2d861d720c4fff172181eeb4a4c41d4ca2ad3", size = 39487, upload_time = "2025-06-09T23:01:06.54Z" }, + { url = "https://files.pythonhosted.org/packages/0b/15/c026e9a9fc17585a9d461f65d8593d281fedf55fbf7eb53f16c6df2392f9/frozenlist-1.7.0-cp312-cp312-win_amd64.whl", hash = "sha256:563b72efe5da92e02eb68c59cb37205457c977aa7a449ed1b37e6939e5c47c6a", size = 43874, upload_time = "2025-06-09T23:01:07.752Z" }, + { url = "https://files.pythonhosted.org/packages/24/90/6b2cebdabdbd50367273c20ff6b57a3dfa89bd0762de02c3a1eb42cb6462/frozenlist-1.7.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ee80eeda5e2a4e660651370ebffd1286542b67e268aa1ac8d6dbe973120ef7ee", size = 79791, upload_time = "2025-06-09T23:01:09.368Z" }, + { url = "https://files.pythonhosted.org/packages/83/2e/5b70b6a3325363293fe5fc3ae74cdcbc3e996c2a11dde2fd9f1fb0776d19/frozenlist-1.7.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d1a81c85417b914139e3a9b995d4a1c84559afc839a93cf2cb7f15e6e5f6ed2d", size = 47165, upload_time = "2025-06-09T23:01:10.653Z" }, + { url = "https://files.pythonhosted.org/packages/f4/25/a0895c99270ca6966110f4ad98e87e5662eab416a17e7fd53c364bf8b954/frozenlist-1.7.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cbb65198a9132ebc334f237d7b0df163e4de83fb4f2bdfe46c1e654bdb0c5d43", size = 45881, upload_time = "2025-06-09T23:01:12.296Z" }, + { url = "https://files.pythonhosted.org/packages/19/7c/71bb0bbe0832793c601fff68cd0cf6143753d0c667f9aec93d3c323f4b55/frozenlist-1.7.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dab46c723eeb2c255a64f9dc05b8dd601fde66d6b19cdb82b2e09cc6ff8d8b5d", size = 232409, upload_time = "2025-06-09T23:01:13.641Z" }, + { url = "https://files.pythonhosted.org/packages/c0/45/ed2798718910fe6eb3ba574082aaceff4528e6323f9a8570be0f7028d8e9/frozenlist-1.7.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6aeac207a759d0dedd2e40745575ae32ab30926ff4fa49b1635def65806fddee", size = 225132, upload_time = "2025-06-09T23:01:15.264Z" }, + { url = "https://files.pythonhosted.org/packages/ba/e2/8417ae0f8eacb1d071d4950f32f229aa6bf68ab69aab797b72a07ea68d4f/frozenlist-1.7.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bd8c4e58ad14b4fa7802b8be49d47993182fdd4023393899632c88fd8cd994eb", size = 237638, upload_time = "2025-06-09T23:01:16.752Z" }, + { url = "https://files.pythonhosted.org/packages/f8/b7/2ace5450ce85f2af05a871b8c8719b341294775a0a6c5585d5e6170f2ce7/frozenlist-1.7.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:04fb24d104f425da3540ed83cbfc31388a586a7696142004c577fa61c6298c3f", size = 233539, upload_time = "2025-06-09T23:01:18.202Z" }, + { url = "https://files.pythonhosted.org/packages/46/b9/6989292c5539553dba63f3c83dc4598186ab2888f67c0dc1d917e6887db6/frozenlist-1.7.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6a5c505156368e4ea6b53b5ac23c92d7edc864537ff911d2fb24c140bb175e60", size = 215646, upload_time = "2025-06-09T23:01:19.649Z" }, + { url = "https://files.pythonhosted.org/packages/72/31/bc8c5c99c7818293458fe745dab4fd5730ff49697ccc82b554eb69f16a24/frozenlist-1.7.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8bd7eb96a675f18aa5c553eb7ddc24a43c8c18f22e1f9925528128c052cdbe00", size = 232233, upload_time = "2025-06-09T23:01:21.175Z" }, + { url = "https://files.pythonhosted.org/packages/59/52/460db4d7ba0811b9ccb85af996019f5d70831f2f5f255f7cc61f86199795/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:05579bf020096fe05a764f1f84cd104a12f78eaab68842d036772dc6d4870b4b", size = 227996, upload_time = "2025-06-09T23:01:23.098Z" }, + { url = "https://files.pythonhosted.org/packages/ba/c9/f4b39e904c03927b7ecf891804fd3b4df3db29b9e487c6418e37988d6e9d/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:376b6222d114e97eeec13d46c486facd41d4f43bab626b7c3f6a8b4e81a5192c", size = 242280, upload_time = "2025-06-09T23:01:24.808Z" }, + { url = "https://files.pythonhosted.org/packages/b8/33/3f8d6ced42f162d743e3517781566b8481322be321b486d9d262adf70bfb/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:0aa7e176ebe115379b5b1c95b4096fb1c17cce0847402e227e712c27bdb5a949", size = 217717, upload_time = "2025-06-09T23:01:26.28Z" }, + { url = "https://files.pythonhosted.org/packages/3e/e8/ad683e75da6ccef50d0ab0c2b2324b32f84fc88ceee778ed79b8e2d2fe2e/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:3fbba20e662b9c2130dc771e332a99eff5da078b2b2648153a40669a6d0e36ca", size = 236644, upload_time = "2025-06-09T23:01:27.887Z" }, + { url = "https://files.pythonhosted.org/packages/b2/14/8d19ccdd3799310722195a72ac94ddc677541fb4bef4091d8e7775752360/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:f3f4410a0a601d349dd406b5713fec59b4cee7e71678d5b17edda7f4655a940b", size = 238879, upload_time = "2025-06-09T23:01:29.524Z" }, + { url = "https://files.pythonhosted.org/packages/ce/13/c12bf657494c2fd1079a48b2db49fa4196325909249a52d8f09bc9123fd7/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e2cdfaaec6a2f9327bf43c933c0319a7c429058e8537c508964a133dffee412e", size = 232502, upload_time = "2025-06-09T23:01:31.287Z" }, + { url = "https://files.pythonhosted.org/packages/d7/8b/e7f9dfde869825489382bc0d512c15e96d3964180c9499efcec72e85db7e/frozenlist-1.7.0-cp313-cp313-win32.whl", hash = "sha256:5fc4df05a6591c7768459caba1b342d9ec23fa16195e744939ba5914596ae3e1", size = 39169, upload_time = "2025-06-09T23:01:35.503Z" }, + { url = "https://files.pythonhosted.org/packages/35/89/a487a98d94205d85745080a37860ff5744b9820a2c9acbcdd9440bfddf98/frozenlist-1.7.0-cp313-cp313-win_amd64.whl", hash = "sha256:52109052b9791a3e6b5d1b65f4b909703984b770694d3eb64fad124c835d7cba", size = 43219, upload_time = "2025-06-09T23:01:36.784Z" }, + { url = "https://files.pythonhosted.org/packages/56/d5/5c4cf2319a49eddd9dd7145e66c4866bdc6f3dbc67ca3d59685149c11e0d/frozenlist-1.7.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:a6f86e4193bb0e235ef6ce3dde5cbabed887e0b11f516ce8a0f4d3b33078ec2d", size = 84345, upload_time = "2025-06-09T23:01:38.295Z" }, + { url = "https://files.pythonhosted.org/packages/a4/7d/ec2c1e1dc16b85bc9d526009961953df9cec8481b6886debb36ec9107799/frozenlist-1.7.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:82d664628865abeb32d90ae497fb93df398a69bb3434463d172b80fc25b0dd7d", size = 48880, upload_time = "2025-06-09T23:01:39.887Z" }, + { url = "https://files.pythonhosted.org/packages/69/86/f9596807b03de126e11e7d42ac91e3d0b19a6599c714a1989a4e85eeefc4/frozenlist-1.7.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:912a7e8375a1c9a68325a902f3953191b7b292aa3c3fb0d71a216221deca460b", size = 48498, upload_time = "2025-06-09T23:01:41.318Z" }, + { url = "https://files.pythonhosted.org/packages/5e/cb/df6de220f5036001005f2d726b789b2c0b65f2363b104bbc16f5be8084f8/frozenlist-1.7.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9537c2777167488d539bc5de2ad262efc44388230e5118868e172dd4a552b146", size = 292296, upload_time = "2025-06-09T23:01:42.685Z" }, + { url = "https://files.pythonhosted.org/packages/83/1f/de84c642f17c8f851a2905cee2dae401e5e0daca9b5ef121e120e19aa825/frozenlist-1.7.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:f34560fb1b4c3e30ba35fa9a13894ba39e5acfc5f60f57d8accde65f46cc5e74", size = 273103, upload_time = "2025-06-09T23:01:44.166Z" }, + { url = "https://files.pythonhosted.org/packages/88/3c/c840bfa474ba3fa13c772b93070893c6e9d5c0350885760376cbe3b6c1b3/frozenlist-1.7.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:acd03d224b0175f5a850edc104ac19040d35419eddad04e7cf2d5986d98427f1", size = 292869, upload_time = "2025-06-09T23:01:45.681Z" }, + { url = "https://files.pythonhosted.org/packages/a6/1c/3efa6e7d5a39a1d5ef0abeb51c48fb657765794a46cf124e5aca2c7a592c/frozenlist-1.7.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f2038310bc582f3d6a09b3816ab01737d60bf7b1ec70f5356b09e84fb7408ab1", size = 291467, upload_time = "2025-06-09T23:01:47.234Z" }, + { url = "https://files.pythonhosted.org/packages/4f/00/d5c5e09d4922c395e2f2f6b79b9a20dab4b67daaf78ab92e7729341f61f6/frozenlist-1.7.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b8c05e4c8e5f36e5e088caa1bf78a687528f83c043706640a92cb76cd6999384", size = 266028, upload_time = "2025-06-09T23:01:48.819Z" }, + { url = "https://files.pythonhosted.org/packages/4e/27/72765be905619dfde25a7f33813ac0341eb6b076abede17a2e3fbfade0cb/frozenlist-1.7.0-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:765bb588c86e47d0b68f23c1bee323d4b703218037765dcf3f25c838c6fecceb", size = 284294, upload_time = "2025-06-09T23:01:50.394Z" }, + { url = "https://files.pythonhosted.org/packages/88/67/c94103a23001b17808eb7dd1200c156bb69fb68e63fcf0693dde4cd6228c/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:32dc2e08c67d86d0969714dd484fd60ff08ff81d1a1e40a77dd34a387e6ebc0c", size = 281898, upload_time = "2025-06-09T23:01:52.234Z" }, + { url = "https://files.pythonhosted.org/packages/42/34/a3e2c00c00f9e2a9db5653bca3fec306349e71aff14ae45ecc6d0951dd24/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:c0303e597eb5a5321b4de9c68e9845ac8f290d2ab3f3e2c864437d3c5a30cd65", size = 290465, upload_time = "2025-06-09T23:01:53.788Z" }, + { url = "https://files.pythonhosted.org/packages/bb/73/f89b7fbce8b0b0c095d82b008afd0590f71ccb3dee6eee41791cf8cd25fd/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:a47f2abb4e29b3a8d0b530f7c3598badc6b134562b1a5caee867f7c62fee51e3", size = 266385, upload_time = "2025-06-09T23:01:55.769Z" }, + { url = "https://files.pythonhosted.org/packages/cd/45/e365fdb554159462ca12df54bc59bfa7a9a273ecc21e99e72e597564d1ae/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:3d688126c242a6fabbd92e02633414d40f50bb6002fa4cf995a1d18051525657", size = 288771, upload_time = "2025-06-09T23:01:57.4Z" }, + { url = "https://files.pythonhosted.org/packages/00/11/47b6117002a0e904f004d70ec5194fe9144f117c33c851e3d51c765962d0/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:4e7e9652b3d367c7bd449a727dc79d5043f48b88d0cbfd4f9f1060cf2b414104", size = 288206, upload_time = "2025-06-09T23:01:58.936Z" }, + { url = "https://files.pythonhosted.org/packages/40/37/5f9f3c3fd7f7746082ec67bcdc204db72dad081f4f83a503d33220a92973/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:1a85e345b4c43db8b842cab1feb41be5cc0b10a1830e6295b69d7310f99becaf", size = 282620, upload_time = "2025-06-09T23:02:00.493Z" }, + { url = "https://files.pythonhosted.org/packages/0b/31/8fbc5af2d183bff20f21aa743b4088eac4445d2bb1cdece449ae80e4e2d1/frozenlist-1.7.0-cp313-cp313t-win32.whl", hash = "sha256:3a14027124ddb70dfcee5148979998066897e79f89f64b13328595c4bdf77c81", size = 43059, upload_time = "2025-06-09T23:02:02.072Z" }, + { url = "https://files.pythonhosted.org/packages/bb/ed/41956f52105b8dbc26e457c5705340c67c8cc2b79f394b79bffc09d0e938/frozenlist-1.7.0-cp313-cp313t-win_amd64.whl", hash = "sha256:3bf8010d71d4507775f658e9823210b7427be36625b387221642725b515dcf3e", size = 47516, upload_time = "2025-06-09T23:02:03.779Z" }, + { url = "https://files.pythonhosted.org/packages/ee/45/b82e3c16be2182bff01179db177fe144d58b5dc787a7d4492c6ed8b9317f/frozenlist-1.7.0-py3-none-any.whl", hash = "sha256:9a5af342e34f7e97caf8c995864c7a396418ae2859cc6fdf1b1073020d516a7e", size = 13106, upload_time = "2025-06-09T23:02:34.204Z" }, +] + +[[package]] +name = "fscacher" +version = "0.4.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "joblib" }, + { name = "platformdirs" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/37/b7/d78437a034563d0b063d327d0bf9ac51854305ddf1f002ec54d18928e051/fscacher-0.4.4.tar.gz", hash = "sha256:742ab436ea698c3ef06e9d9cde81a5687bf2c2910019679a0d7f572d8ab97d79", size = 35265, upload_time = "2025-01-06T14:04:24.19Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/f1/816bb80e649ba7202cee656733ecea134370f9496c661fc16c129450bdbc/fscacher-0.4.4-py3-none-any.whl", hash = "sha256:f45632f318e979a7c27fc645b36bd633121fa443a50daf96de0fb9afe7c61b47", size = 12484, upload_time = "2025-01-06T14:04:22.612Z" }, +] + +[[package]] +name = "fsspec" +version = "2025.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/de/e0/bab50af11c2d75c9c4a2a26a5254573c0bd97cea152254401510950486fa/fsspec-2025.9.0.tar.gz", hash = "sha256:19fd429483d25d28b65ec68f9f4adc16c17ea2c7c7bf54ec61360d478fb19c19", size = 304847, upload_time = "2025-09-02T19:10:49.215Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/47/71/70db47e4f6ce3e5c37a607355f80da8860a33226be640226ac52cb05ef2e/fsspec-2025.9.0-py3-none-any.whl", hash = "sha256:530dc2a2af60a414a832059574df4a6e10cce927f6f4a78209390fe38955cfb7", size = 199289, upload_time = "2025-09-02T19:10:47.708Z" }, +] + +[[package]] +name = "h5py" +version = "3.14.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +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 = "hdmf" +version = "4.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "h5py" }, + { name = "jsonschema" }, + { name = "numpy" }, + { name = "pandas" }, + { name = "ruamel-yaml" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5d/42/1abbdd6321e9c3b382cac20e993fc9f347417b5a2dadf771801cca033607/hdmf-4.1.0.tar.gz", hash = "sha256:7fd1577deeb2f385fa34bda93657babe697fd71420eda2bec6e12ef03e53730a", size = 16607167, upload_time = "2025-05-28T19:02:11.54Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/e4/a5c84425feece1383ede342086720f8eba4a67e6afc2e4f990d2ce1d7e94/hdmf-4.1.0-py3-none-any.whl", hash = "sha256:d0cffd8e573d77368892d20351ecba07142a8a21b75c7665d732748132d7a696", size = 336653, upload_time = "2025-05-28T19:02:09.808Z" }, +] + +[[package]] +name = "hdmf-zarr" +version = "0.11.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "hdmf" }, + { name = "numcodecs" }, + { name = "numpy" }, + { name = "pynwb" }, + { name = "threadpoolctl" }, + { name = "zarr" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ab/a2/df41ea6846da35ed2427730379f8650521d0364517131b036c1e7462d1c3/hdmf_zarr-0.11.3.tar.gz", hash = "sha256:07c3aaaa59ac5b02d3abc80b5e25fcd1a9742eb296fe251c992a277a1850e97c", size = 3105845, upload_time = "2025-08-10T22:23:57.676Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/b9/c6dd04e38336afd1301a8f7f214a599724dcf8fe57522817ea65a430ad31/hdmf_zarr-0.11.3-py3-none-any.whl", hash = "sha256:57202f9f19bda920b34e25788fa4de67c0d93ff3076345f01419bde1d230a7bb", size = 33288, upload_time = "2025-08-10T22:23:55.54Z" }, +] + +[[package]] +name = "humanize" +version = "4.13.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/98/1d/3062fcc89ee05a715c0b9bfe6490c00c576314f27ffee3a704122c6fd259/humanize-4.13.0.tar.gz", hash = "sha256:78f79e68f76f0b04d711c4e55d32bebef5be387148862cb1ef83d2b58e7935a0", size = 81884, upload_time = "2025-08-25T09:39:20.04Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/c7/316e7ca04d26695ef0635dc81683d628350810eb8e9b2299fc08ba49f366/humanize-4.13.0-py3-none-any.whl", hash = "sha256:b810820b31891813b1673e8fec7f1ed3312061eab2f26e3fa192c393d11ed25f", size = 128869, upload_time = "2025-08-25T09:39:18.54Z" }, +] + +[[package]] +name = "idna" +version = "3.10" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490, upload_time = "2024-09-15T18:07:39.745Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442, upload_time = "2024-09-15T18:07:37.964Z" }, +] + +[[package]] +name = "interleave" +version = "0.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cb/73/f06bcda00889d164ee1918126381f2d5e0030a6deaf80c9887e84ba18e31/interleave-0.3.0.tar.gz", hash = "sha256:4c4595e05c5c3286d306db7459972bada9a38088fb8649c1199782c8e4a60a32", size = 15689, upload_time = "2025-01-28T19:48:04.286Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/2b/13b5b2e418bc77574b7215c26be862f72d7850713116641c4ad56add61fd/interleave-0.3.0-py3-none-any.whl", hash = "sha256:09d772693b958c0cbb11e3cd8a6b726c6995c7e12b0530a10ae31a943b458c39", size = 11847, upload_time = "2025-01-28T19:48:03.081Z" }, +] + +[[package]] +name = "isodate" +version = "0.7.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/54/4d/e940025e2ce31a8ce1202635910747e5a87cc3a6a6bb2d00973375014749/isodate-0.7.2.tar.gz", hash = "sha256:4cd1aa0f43ca76f4a6c6c0292a85f40b35ec2e43e315b59f06e6d32171a953e6", size = 29705, upload_time = "2024-10-08T23:04:11.5Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/15/aa/0aca39a37d3c7eb941ba736ede56d689e7be91cab5d9ca846bde3999eba6/isodate-0.7.2-py3-none-any.whl", hash = "sha256:28009937d8031054830160fce6d409ed342816b543597cece116d966c6d99e15", size = 22320, upload_time = "2024-10-08T23:04:09.501Z" }, +] + +[[package]] +name = "isoduration" +version = "20.11.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "arrow" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7c/1a/3c8edc664e06e6bd06cce40c6b22da5f1429aa4224d0c590f3be21c91ead/isoduration-20.11.0.tar.gz", hash = "sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9", size = 11649, upload_time = "2020-11-01T11:00:00.312Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7b/55/e5326141505c5d5e34c5e0935d2908a74e4561eca44108fbfb9c13d2911a/isoduration-20.11.0-py3-none-any.whl", hash = "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042", size = 11321, upload_time = "2020-11-01T10:59:58.02Z" }, +] + +[[package]] +name = "jaraco-classes" +version = "3.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "more-itertools" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/06/c0/ed4a27bc5571b99e3cff68f8a9fa5b56ff7df1c2251cc715a652ddd26402/jaraco.classes-3.4.0.tar.gz", hash = "sha256:47a024b51d0239c0dd8c8540c6c7f484be3b8fcf0b2d85c13825780d3b3f3acd", size = 11780, upload_time = "2024-03-31T07:27:36.643Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7f/66/b15ce62552d84bbfcec9a4873ab79d993a1dd4edb922cbfccae192bd5b5f/jaraco.classes-3.4.0-py3-none-any.whl", hash = "sha256:f662826b6bed8cace05e7ff873ce0f9283b5c924470fe664fff1c2f00f581790", size = 6777, upload_time = "2024-03-31T07:27:34.792Z" }, +] + +[[package]] +name = "jaraco-context" +version = "6.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ad/f3777b81bf0b6e7bc7514a1656d3e637b2e8e15fab2ce3235730b3e7a4e6/jaraco_context-6.0.1.tar.gz", hash = "sha256:9bae4ea555cf0b14938dc0aee7c9f32ed303aa20a3b73e7dc80111628792d1b3", size = 13912, upload_time = "2024-08-20T03:39:27.358Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ff/db/0c52c4cf5e4bd9f5d7135ec7669a3a767af21b3a308e1ed3674881e52b62/jaraco.context-6.0.1-py3-none-any.whl", hash = "sha256:f797fc481b490edb305122c9181830a3a5b76d84ef6d1aef2fb9b47ab956f9e4", size = 6825, upload_time = "2024-08-20T03:39:25.966Z" }, +] + +[[package]] +name = "jaraco-functools" +version = "4.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "more-itertools" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/ed/1aa2d585304ec07262e1a83a9889880701079dde796ac7b1d1826f40c63d/jaraco_functools-4.3.0.tar.gz", hash = "sha256:cfd13ad0dd2c47a3600b439ef72d8615d482cedcff1632930d6f28924d92f294", size = 19755, upload_time = "2025-08-18T20:05:09.91Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b4/09/726f168acad366b11e420df31bf1c702a54d373a83f968d94141a8c3fde0/jaraco_functools-4.3.0-py3-none-any.whl", hash = "sha256:227ff8ed6f7b8f62c56deff101545fa7543cf2c8e7b82a7c2116e672f29c26e8", size = 10408, upload_time = "2025-08-18T20:05:08.69Z" }, +] + +[[package]] +name = "jeepney" +version = "0.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7b/6f/357efd7602486741aa73ffc0617fb310a29b588ed0fd69c2399acbb85b0c/jeepney-0.9.0.tar.gz", hash = "sha256:cf0e9e845622b81e4a28df94c40345400256ec608d0e55bb8a3feaa9163f5732", size = 106758, upload_time = "2025-02-27T18:51:01.684Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b2/a3/e137168c9c44d18eff0376253da9f1e9234d0239e0ee230d2fee6cea8e55/jeepney-0.9.0-py3-none-any.whl", hash = "sha256:97e5714520c16fc0a45695e5365a2e11b81ea79bba796e26f9f1d178cb182683", size = 49010, upload_time = "2025-02-27T18:51:00.104Z" }, +] + +[[package]] +name = "joblib" +version = "1.5.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e8/5d/447af5ea094b9e4c4054f82e223ada074c552335b9b4b2d14bd9b35a67c4/joblib-1.5.2.tar.gz", hash = "sha256:3faa5c39054b2f03ca547da9b2f52fde67c06240c31853f306aea97f13647b55", size = 331077, upload_time = "2025-08-27T12:15:46.575Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/e8/685f47e0d754320684db4425a0967f7d3fa70126bffd76110b7009a0090f/joblib-1.5.2-py3-none-any.whl", hash = "sha256:4e1f0bdbb987e6d843c70cf43714cb276623def372df3c22fe5266b2670bc241", size = 308396, upload_time = "2025-08-27T12:15:45.188Z" }, +] + +[[package]] +name = "jsonpointer" +version = "3.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6a/0a/eebeb1fa92507ea94016a2a790b93c2ae41a7e18778f85471dc54475ed25/jsonpointer-3.0.0.tar.gz", hash = "sha256:2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef", size = 9114, upload_time = "2024-06-10T19:24:42.462Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/71/92/5e77f98553e9e75130c78900d000368476aed74276eb8ae8796f65f00918/jsonpointer-3.0.0-py2.py3-none-any.whl", hash = "sha256:13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942", size = 7595, upload_time = "2024-06-10T19:24:40.698Z" }, +] + +[[package]] +name = "jsonschema" +version = "4.25.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "jsonschema-specifications" }, + { name = "referencing" }, + { name = "rpds-py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/74/69/f7185de793a29082a9f3c7728268ffb31cb5095131a9c139a74078e27336/jsonschema-4.25.1.tar.gz", hash = "sha256:e4a9655ce0da0c0b67a085847e00a3a51449e1157f4f75e9fb5aa545e122eb85", size = 357342, upload_time = "2025-08-18T17:03:50.038Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bf/9c/8c95d856233c1f82500c2450b8c68576b4cf1c871db3afac5c34ff84e6fd/jsonschema-4.25.1-py3-none-any.whl", hash = "sha256:3fba0169e345c7175110351d456342c364814cfcf3b964ba4587f22915230a63", size = 90040, upload_time = "2025-08-18T17:03:48.373Z" }, +] + +[package.optional-dependencies] +format = [ + { name = "fqdn" }, + { name = "idna" }, + { name = "isoduration" }, + { name = "jsonpointer" }, + { name = "rfc3339-validator" }, + { name = "rfc3987" }, + { name = "uri-template" }, + { name = "webcolors" }, +] + +[[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, upload_time = "2025-09-08T01:34:59.186Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl", hash = "sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe", size = 18437, upload_time = "2025-09-08T01:34:57.871Z" }, +] + +[[package]] +name = "keyring" +version = "25.6.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jaraco-classes" }, + { name = "jaraco-context" }, + { name = "jaraco-functools" }, + { name = "jeepney", marker = "sys_platform == 'linux'" }, + { name = "pywin32-ctypes", marker = "sys_platform == 'win32'" }, + { name = "secretstorage", marker = "sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/70/09/d904a6e96f76ff214be59e7aa6ef7190008f52a0ab6689760a98de0bf37d/keyring-25.6.0.tar.gz", hash = "sha256:0b39998aa941431eb3d9b0d4b2460bc773b9df6fed7621c2dfb291a7e0187a66", size = 62750, upload_time = "2024-12-25T15:26:45.782Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d3/32/da7f44bcb1105d3e88a0b74ebdca50c59121d2ddf71c9e34ba47df7f3a56/keyring-25.6.0-py3-none-any.whl", hash = "sha256:552a3f7af126ece7ed5c89753650eec89c7eaae8617d0aa4d9ad2b75111266bd", size = 39085, upload_time = "2024-12-25T15:26:44.377Z" }, +] + +[[package]] +name = "keyrings-alt" +version = "5.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jaraco-classes" }, + { name = "jaraco-context" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5c/7b/e3bf53326e0753bee11813337b1391179582ba5c6851b13e0d9502d15a50/keyrings_alt-5.0.2.tar.gz", hash = "sha256:8f097ebe9dc8b185106502b8cdb066c926d2180e13b4689fd4771a3eab7d69fb", size = 29229, upload_time = "2024-08-14T01:09:28.12Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4a/0d/9c59313ab43d0858a9a665e80763bd830dc78d5f379afc3815e123c486c2/keyrings.alt-5.0.2-py3-none-any.whl", hash = "sha256:6be74693192f3f37bbb752bfac9b86e6177076b17d2ac12a390f1d6abff8ac7c", size = 17930, upload_time = "2024-08-14T01:09:26.785Z" }, +] + +[[package]] +name = "ml-dtypes" +version = "0.5.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/78/a7/aad060393123cfb383956dca68402aff3db1e1caffd5764887ed5153f41b/ml_dtypes-0.5.3.tar.gz", hash = "sha256:95ce33057ba4d05df50b1f3cfefab22e351868a843b3b15a46c65836283670c9", size = 692316, upload_time = "2025-07-29T18:39:19.454Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0d/eb/bc07c88a6ab002b4635e44585d80fa0b350603f11a2097c9d1bfacc03357/ml_dtypes-0.5.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:156418abeeda48ea4797db6776db3c5bdab9ac7be197c1233771e0880c304057", size = 663864, upload_time = "2025-07-29T18:38:33.777Z" }, + { url = "https://files.pythonhosted.org/packages/cf/89/11af9b0f21b99e6386b6581ab40fb38d03225f9de5f55cf52097047e2826/ml_dtypes-0.5.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1db60c154989af253f6c4a34e8a540c2c9dce4d770784d426945e09908fbb177", size = 4951313, upload_time = "2025-07-29T18:38:36.45Z" }, + { url = "https://files.pythonhosted.org/packages/d8/a9/b98b86426c24900b0c754aad006dce2863df7ce0bb2bcc2c02f9cc7e8489/ml_dtypes-0.5.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1b255acada256d1fa8c35ed07b5f6d18bc21d1556f842fbc2d5718aea2cd9e55", size = 4928805, upload_time = "2025-07-29T18:38:38.29Z" }, + { url = "https://files.pythonhosted.org/packages/50/c1/85e6be4fc09c6175f36fb05a45917837f30af9a5146a5151cb3a3f0f9e09/ml_dtypes-0.5.3-cp312-cp312-win_amd64.whl", hash = "sha256:da65e5fd3eea434ccb8984c3624bc234ddcc0d9f4c81864af611aaebcc08a50e", size = 208182, upload_time = "2025-07-29T18:38:39.72Z" }, + { url = "https://files.pythonhosted.org/packages/9e/17/cf5326d6867be057f232d0610de1458f70a8ce7b6290e4b4a277ea62b4cd/ml_dtypes-0.5.3-cp312-cp312-win_arm64.whl", hash = "sha256:8bb9cd1ce63096567f5f42851f5843b5a0ea11511e50039a7649619abfb4ba6d", size = 161560, upload_time = "2025-07-29T18:38:41.072Z" }, + { url = "https://files.pythonhosted.org/packages/2d/87/1bcc98a66de7b2455dfb292f271452cac9edc4e870796e0d87033524d790/ml_dtypes-0.5.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:5103856a225465371fe119f2fef737402b705b810bd95ad5f348e6e1a6ae21af", size = 663781, upload_time = "2025-07-29T18:38:42.984Z" }, + { url = "https://files.pythonhosted.org/packages/fd/2c/bd2a79ba7c759ee192b5601b675b180a3fd6ccf48ffa27fe1782d280f1a7/ml_dtypes-0.5.3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4cae435a68861660af81fa3c5af16b70ca11a17275c5b662d9c6f58294e0f113", size = 4956217, upload_time = "2025-07-29T18:38:44.65Z" }, + { url = "https://files.pythonhosted.org/packages/14/f3/091ba84e5395d7fe5b30c081a44dec881cd84b408db1763ee50768b2ab63/ml_dtypes-0.5.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6936283b56d74fbec431ca57ce58a90a908fdbd14d4e2d22eea6d72bb208a7b7", size = 4933109, upload_time = "2025-07-29T18:38:46.405Z" }, + { url = "https://files.pythonhosted.org/packages/bc/24/054036dbe32c43295382c90a1363241684c4d6aaa1ecc3df26bd0c8d5053/ml_dtypes-0.5.3-cp313-cp313-win_amd64.whl", hash = "sha256:d0f730a17cf4f343b2c7ad50cee3bd19e969e793d2be6ed911f43086460096e4", size = 208187, upload_time = "2025-07-29T18:38:48.24Z" }, + { url = "https://files.pythonhosted.org/packages/a6/3d/7dc3ec6794a4a9004c765e0c341e32355840b698f73fd2daff46f128afc1/ml_dtypes-0.5.3-cp313-cp313-win_arm64.whl", hash = "sha256:2db74788fc01914a3c7f7da0763427280adfc9cd377e9604b6b64eb8097284bd", size = 161559, upload_time = "2025-07-29T18:38:50.493Z" }, + { url = "https://files.pythonhosted.org/packages/12/91/e6c7a0d67a152b9330445f9f0cf8ae6eee9b83f990b8c57fe74631e42a90/ml_dtypes-0.5.3-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:93c36a08a6d158db44f2eb9ce3258e53f24a9a4a695325a689494f0fdbc71770", size = 689321, upload_time = "2025-07-29T18:38:52.03Z" }, + { url = "https://files.pythonhosted.org/packages/9e/6c/b7b94b84a104a5be1883305b87d4c6bd6ae781504474b4cca067cb2340ec/ml_dtypes-0.5.3-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0e44a3761f64bc009d71ddb6d6c71008ba21b53ab6ee588dadab65e2fa79eafc", size = 5274495, upload_time = "2025-07-29T18:38:53.797Z" }, + { url = "https://files.pythonhosted.org/packages/5b/38/6266604dffb43378055394ea110570cf261a49876fc48f548dfe876f34cc/ml_dtypes-0.5.3-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bdf40d2aaabd3913dec11840f0d0ebb1b93134f99af6a0a4fd88ffe924928ab4", size = 5285422, upload_time = "2025-07-29T18:38:56.603Z" }, + { url = "https://files.pythonhosted.org/packages/7c/88/8612ff177d043a474b9408f0382605d881eeb4125ba89d4d4b3286573a83/ml_dtypes-0.5.3-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:aec640bd94c4c85c0d11e2733bd13cbb10438fb004852996ec0efbc6cacdaf70", size = 661182, upload_time = "2025-07-29T18:38:58.414Z" }, + { url = "https://files.pythonhosted.org/packages/6f/2b/0569a5e88b29240d373e835107c94ae9256fb2191d3156b43b2601859eff/ml_dtypes-0.5.3-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bda32ce212baa724e03c68771e5c69f39e584ea426bfe1a701cb01508ffc7035", size = 4956187, upload_time = "2025-07-29T18:39:00.611Z" }, + { url = "https://files.pythonhosted.org/packages/51/66/273c2a06ae44562b104b61e6b14444da00061fd87652506579d7eb2c40b1/ml_dtypes-0.5.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c205cac07d24a29840c163d6469f61069ce4b065518519216297fc2f261f8db9", size = 4930911, upload_time = "2025-07-29T18:39:02.405Z" }, + { url = "https://files.pythonhosted.org/packages/93/ab/606be3e87dc0821bd360c8c1ee46108025c31a4f96942b63907bb441b87d/ml_dtypes-0.5.3-cp314-cp314-win_amd64.whl", hash = "sha256:cd7c0bb22d4ff86d65ad61b5dd246812e8993fbc95b558553624c33e8b6903ea", size = 216664, upload_time = "2025-07-29T18:39:03.927Z" }, + { url = "https://files.pythonhosted.org/packages/30/a2/e900690ca47d01dffffd66375c5de8c4f8ced0f1ef809ccd3b25b3e6b8fa/ml_dtypes-0.5.3-cp314-cp314-win_arm64.whl", hash = "sha256:9d55ea7f7baf2aed61bf1872116cefc9d0c3693b45cae3916897ee27ef4b835e", size = 160203, upload_time = "2025-07-29T18:39:05.671Z" }, + { url = "https://files.pythonhosted.org/packages/53/21/783dfb51f40d2660afeb9bccf3612b99f6a803d980d2a09132b0f9d216ab/ml_dtypes-0.5.3-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:e12e29764a0e66a7a31e9b8bf1de5cc0423ea72979f45909acd4292de834ccd3", size = 689324, upload_time = "2025-07-29T18:39:07.567Z" }, + { url = "https://files.pythonhosted.org/packages/09/f7/a82d249c711abf411ac027b7163f285487f5e615c3e0716c61033ce996ab/ml_dtypes-0.5.3-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:19f6c3a4f635c2fc9e2aa7d91416bd7a3d649b48350c51f7f715a09370a90d93", size = 5275917, upload_time = "2025-07-29T18:39:09.339Z" }, + { url = "https://files.pythonhosted.org/packages/7f/3c/541c4b30815ab90ebfbb51df15d0b4254f2f9f1e2b4907ab229300d5e6f2/ml_dtypes-0.5.3-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5ab039ffb40f3dc0aeeeba84fd6c3452781b5e15bef72e2d10bcb33e4bbffc39", size = 5285284, upload_time = "2025-07-29T18:39:11.532Z" }, +] + +[[package]] +name = "more-itertools" +version = "10.8.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ea/5d/38b681d3fce7a266dd9ab73c66959406d565b3e85f21d5e66e1181d93721/more_itertools-10.8.0.tar.gz", hash = "sha256:f638ddf8a1a0d134181275fb5d58b086ead7c6a72429ad725c67503f13ba30bd", size = 137431, upload_time = "2025-09-02T15:23:11.018Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a4/8e/469e5a4a2f5855992e425f3cb33804cc07bf18d48f2db061aec61ce50270/more_itertools-10.8.0-py3-none-any.whl", hash = "sha256:52d4362373dcf7c52546bc4af9a86ee7c4579df9a8dc268be0a2f949d376cc9b", size = 69667, upload_time = "2025-09-02T15:23:09.635Z" }, +] + +[[package]] +name = "multidict" +version = "6.6.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/69/7f/0652e6ed47ab288e3756ea9c0df8b14950781184d4bd7883f4d87dd41245/multidict-6.6.4.tar.gz", hash = "sha256:d2d4e4787672911b48350df02ed3fa3fffdc2f2e8ca06dd6afdf34189b76a9dd", size = 101843, upload_time = "2025-08-11T12:08:48.217Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/05/f6/512ffd8fd8b37fb2680e5ac35d788f1d71bbaf37789d21a820bdc441e565/multidict-6.6.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0ffb87be160942d56d7b87b0fdf098e81ed565add09eaa1294268c7f3caac4c8", size = 76516, upload_time = "2025-08-11T12:06:53.393Z" }, + { url = "https://files.pythonhosted.org/packages/99/58/45c3e75deb8855c36bd66cc1658007589662ba584dbf423d01df478dd1c5/multidict-6.6.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d191de6cbab2aff5de6c5723101705fd044b3e4c7cfd587a1929b5028b9714b3", size = 45394, upload_time = "2025-08-11T12:06:54.555Z" }, + { url = "https://files.pythonhosted.org/packages/fd/ca/e8c4472a93a26e4507c0b8e1f0762c0d8a32de1328ef72fd704ef9cc5447/multidict-6.6.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:38a0956dd92d918ad5feff3db8fcb4a5eb7dba114da917e1a88475619781b57b", size = 43591, upload_time = "2025-08-11T12:06:55.672Z" }, + { url = "https://files.pythonhosted.org/packages/05/51/edf414f4df058574a7265034d04c935aa84a89e79ce90fcf4df211f47b16/multidict-6.6.4-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:6865f6d3b7900ae020b495d599fcf3765653bc927951c1abb959017f81ae8287", size = 237215, upload_time = "2025-08-11T12:06:57.213Z" }, + { url = "https://files.pythonhosted.org/packages/c8/45/8b3d6dbad8cf3252553cc41abea09ad527b33ce47a5e199072620b296902/multidict-6.6.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0a2088c126b6f72db6c9212ad827d0ba088c01d951cee25e758c450da732c138", size = 258299, upload_time = "2025-08-11T12:06:58.946Z" }, + { url = "https://files.pythonhosted.org/packages/3c/e8/8ca2e9a9f5a435fc6db40438a55730a4bf4956b554e487fa1b9ae920f825/multidict-6.6.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0f37bed7319b848097085d7d48116f545985db988e2256b2e6f00563a3416ee6", size = 242357, upload_time = "2025-08-11T12:07:00.301Z" }, + { url = "https://files.pythonhosted.org/packages/0f/84/80c77c99df05a75c28490b2af8f7cba2a12621186e0a8b0865d8e745c104/multidict-6.6.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:01368e3c94032ba6ca0b78e7ccb099643466cf24f8dc8eefcfdc0571d56e58f9", size = 268369, upload_time = "2025-08-11T12:07:01.638Z" }, + { url = "https://files.pythonhosted.org/packages/0d/e9/920bfa46c27b05fb3e1ad85121fd49f441492dca2449c5bcfe42e4565d8a/multidict-6.6.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8fe323540c255db0bffee79ad7f048c909f2ab0edb87a597e1c17da6a54e493c", size = 269341, upload_time = "2025-08-11T12:07:02.943Z" }, + { url = "https://files.pythonhosted.org/packages/af/65/753a2d8b05daf496f4a9c367fe844e90a1b2cac78e2be2c844200d10cc4c/multidict-6.6.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b8eb3025f17b0a4c3cd08cda49acf312a19ad6e8a4edd9dbd591e6506d999402", size = 256100, upload_time = "2025-08-11T12:07:04.564Z" }, + { url = "https://files.pythonhosted.org/packages/09/54/655be13ae324212bf0bc15d665a4e34844f34c206f78801be42f7a0a8aaa/multidict-6.6.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:bbc14f0365534d35a06970d6a83478b249752e922d662dc24d489af1aa0d1be7", size = 253584, upload_time = "2025-08-11T12:07:05.914Z" }, + { url = "https://files.pythonhosted.org/packages/5c/74/ab2039ecc05264b5cec73eb018ce417af3ebb384ae9c0e9ed42cb33f8151/multidict-6.6.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:75aa52fba2d96bf972e85451b99d8e19cc37ce26fd016f6d4aa60da9ab2b005f", size = 251018, upload_time = "2025-08-11T12:07:08.301Z" }, + { url = "https://files.pythonhosted.org/packages/af/0a/ccbb244ac848e56c6427f2392741c06302bbfba49c0042f1eb3c5b606497/multidict-6.6.4-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4fefd4a815e362d4f011919d97d7b4a1e566f1dde83dc4ad8cfb5b41de1df68d", size = 251477, upload_time = "2025-08-11T12:07:10.248Z" }, + { url = "https://files.pythonhosted.org/packages/0e/b0/0ed49bba775b135937f52fe13922bc64a7eaf0a3ead84a36e8e4e446e096/multidict-6.6.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:db9801fe021f59a5b375ab778973127ca0ac52429a26e2fd86aa9508f4d26eb7", size = 263575, upload_time = "2025-08-11T12:07:11.928Z" }, + { url = "https://files.pythonhosted.org/packages/3e/d9/7fb85a85e14de2e44dfb6a24f03c41e2af8697a6df83daddb0e9b7569f73/multidict-6.6.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:a650629970fa21ac1fb06ba25dabfc5b8a2054fcbf6ae97c758aa956b8dba802", size = 259649, upload_time = "2025-08-11T12:07:13.244Z" }, + { url = "https://files.pythonhosted.org/packages/03/9e/b3a459bcf9b6e74fa461a5222a10ff9b544cb1cd52fd482fb1b75ecda2a2/multidict-6.6.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:452ff5da78d4720d7516a3a2abd804957532dd69296cb77319c193e3ffb87e24", size = 251505, upload_time = "2025-08-11T12:07:14.57Z" }, + { url = "https://files.pythonhosted.org/packages/86/a2/8022f78f041dfe6d71e364001a5cf987c30edfc83c8a5fb7a3f0974cff39/multidict-6.6.4-cp312-cp312-win32.whl", hash = "sha256:8c2fcb12136530ed19572bbba61b407f655e3953ba669b96a35036a11a485793", size = 41888, upload_time = "2025-08-11T12:07:15.904Z" }, + { url = "https://files.pythonhosted.org/packages/c7/eb/d88b1780d43a56db2cba24289fa744a9d216c1a8546a0dc3956563fd53ea/multidict-6.6.4-cp312-cp312-win_amd64.whl", hash = "sha256:047d9425860a8c9544fed1b9584f0c8bcd31bcde9568b047c5e567a1025ecd6e", size = 46072, upload_time = "2025-08-11T12:07:17.045Z" }, + { url = "https://files.pythonhosted.org/packages/9f/16/b929320bf5750e2d9d4931835a4c638a19d2494a5b519caaaa7492ebe105/multidict-6.6.4-cp312-cp312-win_arm64.whl", hash = "sha256:14754eb72feaa1e8ae528468f24250dd997b8e2188c3d2f593f9eba259e4b364", size = 43222, upload_time = "2025-08-11T12:07:18.328Z" }, + { url = "https://files.pythonhosted.org/packages/3a/5d/e1db626f64f60008320aab00fbe4f23fc3300d75892a3381275b3d284580/multidict-6.6.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f46a6e8597f9bd71b31cc708195d42b634c8527fecbcf93febf1052cacc1f16e", size = 75848, upload_time = "2025-08-11T12:07:19.912Z" }, + { url = "https://files.pythonhosted.org/packages/4c/aa/8b6f548d839b6c13887253af4e29c939af22a18591bfb5d0ee6f1931dae8/multidict-6.6.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:22e38b2bc176c5eb9c0a0e379f9d188ae4cd8b28c0f53b52bce7ab0a9e534657", size = 45060, upload_time = "2025-08-11T12:07:21.163Z" }, + { url = "https://files.pythonhosted.org/packages/eb/c6/f5e97e5d99a729bc2aa58eb3ebfa9f1e56a9b517cc38c60537c81834a73f/multidict-6.6.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5df8afd26f162da59e218ac0eefaa01b01b2e6cd606cffa46608f699539246da", size = 43269, upload_time = "2025-08-11T12:07:22.392Z" }, + { url = "https://files.pythonhosted.org/packages/dc/31/d54eb0c62516776f36fe67f84a732f97e0b0e12f98d5685bebcc6d396910/multidict-6.6.4-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:49517449b58d043023720aa58e62b2f74ce9b28f740a0b5d33971149553d72aa", size = 237158, upload_time = "2025-08-11T12:07:23.636Z" }, + { url = "https://files.pythonhosted.org/packages/c4/1c/8a10c1c25b23156e63b12165a929d8eb49a6ed769fdbefb06e6f07c1e50d/multidict-6.6.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ae9408439537c5afdca05edd128a63f56a62680f4b3c234301055d7a2000220f", size = 257076, upload_time = "2025-08-11T12:07:25.049Z" }, + { url = "https://files.pythonhosted.org/packages/ad/86/90e20b5771d6805a119e483fd3d1e8393e745a11511aebca41f0da38c3e2/multidict-6.6.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:87a32d20759dc52a9e850fe1061b6e41ab28e2998d44168a8a341b99ded1dba0", size = 240694, upload_time = "2025-08-11T12:07:26.458Z" }, + { url = "https://files.pythonhosted.org/packages/e7/49/484d3e6b535bc0555b52a0a26ba86e4d8d03fd5587d4936dc59ba7583221/multidict-6.6.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:52e3c8d43cdfff587ceedce9deb25e6ae77daba560b626e97a56ddcad3756879", size = 266350, upload_time = "2025-08-11T12:07:27.94Z" }, + { url = "https://files.pythonhosted.org/packages/bf/b4/aa4c5c379b11895083d50021e229e90c408d7d875471cb3abf721e4670d6/multidict-6.6.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:ad8850921d3a8d8ff6fbef790e773cecfc260bbfa0566998980d3fa8f520bc4a", size = 267250, upload_time = "2025-08-11T12:07:29.303Z" }, + { url = "https://files.pythonhosted.org/packages/80/e5/5e22c5bf96a64bdd43518b1834c6d95a4922cc2066b7d8e467dae9b6cee6/multidict-6.6.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:497a2954adc25c08daff36f795077f63ad33e13f19bfff7736e72c785391534f", size = 254900, upload_time = "2025-08-11T12:07:30.764Z" }, + { url = "https://files.pythonhosted.org/packages/17/38/58b27fed927c07035abc02befacab42491e7388ca105e087e6e0215ead64/multidict-6.6.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:024ce601f92d780ca1617ad4be5ac15b501cc2414970ffa2bb2bbc2bd5a68fa5", size = 252355, upload_time = "2025-08-11T12:07:32.205Z" }, + { url = "https://files.pythonhosted.org/packages/d0/a1/dad75d23a90c29c02b5d6f3d7c10ab36c3197613be5d07ec49c7791e186c/multidict-6.6.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:a693fc5ed9bdd1c9e898013e0da4dcc640de7963a371c0bd458e50e046bf6438", size = 250061, upload_time = "2025-08-11T12:07:33.623Z" }, + { url = "https://files.pythonhosted.org/packages/b8/1a/ac2216b61c7f116edab6dc3378cca6c70dc019c9a457ff0d754067c58b20/multidict-6.6.4-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:190766dac95aab54cae5b152a56520fd99298f32a1266d66d27fdd1b5ac00f4e", size = 249675, upload_time = "2025-08-11T12:07:34.958Z" }, + { url = "https://files.pythonhosted.org/packages/d4/79/1916af833b800d13883e452e8e0977c065c4ee3ab7a26941fbfdebc11895/multidict-6.6.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:34d8f2a5ffdceab9dcd97c7a016deb2308531d5f0fced2bb0c9e1df45b3363d7", size = 261247, upload_time = "2025-08-11T12:07:36.588Z" }, + { url = "https://files.pythonhosted.org/packages/c5/65/d1f84fe08ac44a5fc7391cbc20a7cedc433ea616b266284413fd86062f8c/multidict-6.6.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:59e8d40ab1f5a8597abcef00d04845155a5693b5da00d2c93dbe88f2050f2812", size = 257960, upload_time = "2025-08-11T12:07:39.735Z" }, + { url = "https://files.pythonhosted.org/packages/13/b5/29ec78057d377b195ac2c5248c773703a6b602e132a763e20ec0457e7440/multidict-6.6.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:467fe64138cfac771f0e949b938c2e1ada2b5af22f39692aa9258715e9ea613a", size = 250078, upload_time = "2025-08-11T12:07:41.525Z" }, + { url = "https://files.pythonhosted.org/packages/c4/0e/7e79d38f70a872cae32e29b0d77024bef7834b0afb406ddae6558d9e2414/multidict-6.6.4-cp313-cp313-win32.whl", hash = "sha256:14616a30fe6d0a48d0a48d1a633ab3b8bec4cf293aac65f32ed116f620adfd69", size = 41708, upload_time = "2025-08-11T12:07:43.405Z" }, + { url = "https://files.pythonhosted.org/packages/9d/34/746696dffff742e97cd6a23da953e55d0ea51fa601fa2ff387b3edcfaa2c/multidict-6.6.4-cp313-cp313-win_amd64.whl", hash = "sha256:40cd05eaeb39e2bc8939451f033e57feaa2ac99e07dbca8afe2be450a4a3b6cf", size = 45912, upload_time = "2025-08-11T12:07:45.082Z" }, + { url = "https://files.pythonhosted.org/packages/c7/87/3bac136181e271e29170d8d71929cdeddeb77f3e8b6a0c08da3a8e9da114/multidict-6.6.4-cp313-cp313-win_arm64.whl", hash = "sha256:f6eb37d511bfae9e13e82cb4d1af36b91150466f24d9b2b8a9785816deb16605", size = 43076, upload_time = "2025-08-11T12:07:46.746Z" }, + { url = "https://files.pythonhosted.org/packages/64/94/0a8e63e36c049b571c9ae41ee301ada29c3fee9643d9c2548d7d558a1d99/multidict-6.6.4-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:6c84378acd4f37d1b507dfa0d459b449e2321b3ba5f2338f9b085cf7a7ba95eb", size = 82812, upload_time = "2025-08-11T12:07:48.402Z" }, + { url = "https://files.pythonhosted.org/packages/25/1a/be8e369dfcd260d2070a67e65dd3990dd635cbd735b98da31e00ea84cd4e/multidict-6.6.4-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0e0558693063c75f3d952abf645c78f3c5dfdd825a41d8c4d8156fc0b0da6e7e", size = 48313, upload_time = "2025-08-11T12:07:49.679Z" }, + { url = "https://files.pythonhosted.org/packages/26/5a/dd4ade298674b2f9a7b06a32c94ffbc0497354df8285f27317c66433ce3b/multidict-6.6.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3f8e2384cb83ebd23fd07e9eada8ba64afc4c759cd94817433ab8c81ee4b403f", size = 46777, upload_time = "2025-08-11T12:07:51.318Z" }, + { url = "https://files.pythonhosted.org/packages/89/db/98aa28bc7e071bfba611ac2ae803c24e96dd3a452b4118c587d3d872c64c/multidict-6.6.4-cp313-cp313t-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:f996b87b420995a9174b2a7c1a8daf7db4750be6848b03eb5e639674f7963773", size = 229321, upload_time = "2025-08-11T12:07:52.965Z" }, + { url = "https://files.pythonhosted.org/packages/c7/bc/01ddda2a73dd9d167bd85d0e8ef4293836a8f82b786c63fb1a429bc3e678/multidict-6.6.4-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cc356250cffd6e78416cf5b40dc6a74f1edf3be8e834cf8862d9ed5265cf9b0e", size = 249954, upload_time = "2025-08-11T12:07:54.423Z" }, + { url = "https://files.pythonhosted.org/packages/06/78/6b7c0f020f9aa0acf66d0ab4eb9f08375bac9a50ff5e3edb1c4ccd59eafc/multidict-6.6.4-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:dadf95aa862714ea468a49ad1e09fe00fcc9ec67d122f6596a8d40caf6cec7d0", size = 228612, upload_time = "2025-08-11T12:07:55.914Z" }, + { url = "https://files.pythonhosted.org/packages/00/44/3faa416f89b2d5d76e9d447296a81521e1c832ad6e40b92f990697b43192/multidict-6.6.4-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:7dd57515bebffd8ebd714d101d4c434063322e4fe24042e90ced41f18b6d3395", size = 257528, upload_time = "2025-08-11T12:07:57.371Z" }, + { url = "https://files.pythonhosted.org/packages/05/5f/77c03b89af0fcb16f018f668207768191fb9dcfb5e3361a5e706a11db2c9/multidict-6.6.4-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:967af5f238ebc2eb1da4e77af5492219fbd9b4b812347da39a7b5f5c72c0fa45", size = 256329, upload_time = "2025-08-11T12:07:58.844Z" }, + { url = "https://files.pythonhosted.org/packages/cf/e9/ed750a2a9afb4f8dc6f13dc5b67b514832101b95714f1211cd42e0aafc26/multidict-6.6.4-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2a4c6875c37aae9794308ec43e3530e4aa0d36579ce38d89979bbf89582002bb", size = 247928, upload_time = "2025-08-11T12:08:01.037Z" }, + { url = "https://files.pythonhosted.org/packages/1f/b5/e0571bc13cda277db7e6e8a532791d4403dacc9850006cb66d2556e649c0/multidict-6.6.4-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:7f683a551e92bdb7fac545b9c6f9fa2aebdeefa61d607510b3533286fcab67f5", size = 245228, upload_time = "2025-08-11T12:08:02.96Z" }, + { url = "https://files.pythonhosted.org/packages/f3/a3/69a84b0eccb9824491f06368f5b86e72e4af54c3067c37c39099b6687109/multidict-6.6.4-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:3ba5aaf600edaf2a868a391779f7a85d93bed147854925f34edd24cc70a3e141", size = 235869, upload_time = "2025-08-11T12:08:04.746Z" }, + { url = "https://files.pythonhosted.org/packages/a9/9d/28802e8f9121a6a0804fa009debf4e753d0a59969ea9f70be5f5fdfcb18f/multidict-6.6.4-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:580b643b7fd2c295d83cad90d78419081f53fd532d1f1eb67ceb7060f61cff0d", size = 243446, upload_time = "2025-08-11T12:08:06.332Z" }, + { url = "https://files.pythonhosted.org/packages/38/ea/6c98add069b4878c1d66428a5f5149ddb6d32b1f9836a826ac764b9940be/multidict-6.6.4-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:37b7187197da6af3ee0b044dbc9625afd0c885f2800815b228a0e70f9a7f473d", size = 252299, upload_time = "2025-08-11T12:08:07.931Z" }, + { url = "https://files.pythonhosted.org/packages/3a/09/8fe02d204473e14c0af3affd50af9078839dfca1742f025cca765435d6b4/multidict-6.6.4-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:e1b93790ed0bc26feb72e2f08299691ceb6da5e9e14a0d13cc74f1869af327a0", size = 246926, upload_time = "2025-08-11T12:08:09.467Z" }, + { url = "https://files.pythonhosted.org/packages/37/3d/7b1e10d774a6df5175ecd3c92bff069e77bed9ec2a927fdd4ff5fe182f67/multidict-6.6.4-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:a506a77ddee1efcca81ecbeae27ade3e09cdf21a8ae854d766c2bb4f14053f92", size = 243383, upload_time = "2025-08-11T12:08:10.981Z" }, + { url = "https://files.pythonhosted.org/packages/50/b0/a6fae46071b645ae98786ab738447de1ef53742eaad949f27e960864bb49/multidict-6.6.4-cp313-cp313t-win32.whl", hash = "sha256:f93b2b2279883d1d0a9e1bd01f312d6fc315c5e4c1f09e112e4736e2f650bc4e", size = 47775, upload_time = "2025-08-11T12:08:12.439Z" }, + { url = "https://files.pythonhosted.org/packages/b2/0a/2436550b1520091af0600dff547913cb2d66fbac27a8c33bc1b1bccd8d98/multidict-6.6.4-cp313-cp313t-win_amd64.whl", hash = "sha256:6d46a180acdf6e87cc41dc15d8f5c2986e1e8739dc25dbb7dac826731ef381a4", size = 53100, upload_time = "2025-08-11T12:08:13.823Z" }, + { url = "https://files.pythonhosted.org/packages/97/ea/43ac51faff934086db9c072a94d327d71b7d8b40cd5dcb47311330929ef0/multidict-6.6.4-cp313-cp313t-win_arm64.whl", hash = "sha256:756989334015e3335d087a27331659820d53ba432befdef6a718398b0a8493ad", size = 45501, upload_time = "2025-08-11T12:08:15.173Z" }, + { url = "https://files.pythonhosted.org/packages/fd/69/b547032297c7e63ba2af494edba695d781af8a0c6e89e4d06cf848b21d80/multidict-6.6.4-py3-none-any.whl", hash = "sha256:27d8f8e125c07cb954e54d75d04905a9bba8a439c1d84aca94949d4d03d8601c", size = 12313, upload_time = "2025-08-11T12:08:46.891Z" }, +] + +[[package]] +name = "natsort" +version = "8.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e2/a9/a0c57aee75f77794adaf35322f8b6404cbd0f89ad45c87197a937764b7d0/natsort-8.4.0.tar.gz", hash = "sha256:45312c4a0e5507593da193dedd04abb1469253b601ecaf63445ad80f0a1ea581", size = 76575, upload_time = "2023-06-20T04:17:19.925Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ef/82/7a9d0550484a62c6da82858ee9419f3dd1ccc9aa1c26a1e43da3ecd20b0d/natsort-8.4.0-py3-none-any.whl", hash = "sha256:4732914fb471f56b5cce04d7bae6f164a592c7712e1c85f9ef585e197299521c", size = 38268, upload_time = "2023-06-20T04:17:17.522Z" }, +] + +[[package]] +name = "numcodecs" +version = "0.15.1" +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, upload_time = "2025-02-10T10:23:33.254Z" } +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, upload_time = "2025-02-10T10:23:12.934Z" }, + { 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, upload_time = "2025-02-10T10:23:15.803Z" }, + { 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, upload_time = "2025-02-10T10:23:18.582Z" }, + { url = "https://files.pythonhosted.org/packages/ab/bc/b6c3cde91c754860a3467a8c058dcf0b1a5ca14d82b1c5397c700cf8b1eb/numcodecs-0.15.1-cp312-cp312-win_amd64.whl", hash = "sha256:daed6066ffcf40082da847d318b5ab6123d69ceb433ba603cb87c323a541a8bc", size = 836785, upload_time = "2025-02-10T10:23:22.314Z" }, + { 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, upload_time = "2025-02-10T10:23:23.79Z" }, + { 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, upload_time = "2025-02-10T10:23:25.533Z" }, + { 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, upload_time = "2025-02-10T10:23:27.46Z" }, + { url = "https://files.pythonhosted.org/packages/c3/32/233e5ede6568bdb044e6f99aaa9fa39827ff3109c6487fc137315f733586/numcodecs-0.15.1-cp313-cp313-win_amd64.whl", hash = "sha256:a4f7bdb26f1b34423cb56d48e75821223be38040907c9b5954eeb7463e7eb03c", size = 831955, upload_time = "2025-02-10T10:23:30.601Z" }, +] + +[[package]] +name = "numpy" +version = "2.3.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d0/19/95b3d357407220ed24c139018d2518fab0a61a948e68286a25f1a4d049ff/numpy-2.3.3.tar.gz", hash = "sha256:ddc7c39727ba62b80dfdbedf400d1c10ddfa8eefbd7ec8dcb118be8b56d31029", size = 20576648, upload_time = "2025-09-09T16:54:12.543Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/51/5d/bb7fc075b762c96329147799e1bcc9176ab07ca6375ea976c475482ad5b3/numpy-2.3.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:cfdd09f9c84a1a934cde1eec2267f0a43a7cd44b2cca4ff95b7c0d14d144b0bf", size = 20957014, upload_time = "2025-09-09T15:56:29.966Z" }, + { url = "https://files.pythonhosted.org/packages/6b/0e/c6211bb92af26517acd52125a237a92afe9c3124c6a68d3b9f81b62a0568/numpy-2.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:cb32e3cf0f762aee47ad1ddc6672988f7f27045b0783c887190545baba73aa25", size = 14185220, upload_time = "2025-09-09T15:56:32.175Z" }, + { url = "https://files.pythonhosted.org/packages/22/f2/07bb754eb2ede9073f4054f7c0286b0d9d2e23982e090a80d478b26d35ca/numpy-2.3.3-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:396b254daeb0a57b1fe0ecb5e3cff6fa79a380fa97c8f7781a6d08cd429418fe", size = 5113918, upload_time = "2025-09-09T15:56:34.175Z" }, + { url = "https://files.pythonhosted.org/packages/81/0a/afa51697e9fb74642f231ea36aca80fa17c8fb89f7a82abd5174023c3960/numpy-2.3.3-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:067e3d7159a5d8f8a0b46ee11148fc35ca9b21f61e3c49fbd0a027450e65a33b", size = 6647922, upload_time = "2025-09-09T15:56:36.149Z" }, + { url = "https://files.pythonhosted.org/packages/5d/f5/122d9cdb3f51c520d150fef6e87df9279e33d19a9611a87c0d2cf78a89f4/numpy-2.3.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1c02d0629d25d426585fb2e45a66154081b9fa677bc92a881ff1d216bc9919a8", size = 14281991, upload_time = "2025-09-09T15:56:40.548Z" }, + { url = "https://files.pythonhosted.org/packages/51/64/7de3c91e821a2debf77c92962ea3fe6ac2bc45d0778c1cbe15d4fce2fd94/numpy-2.3.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d9192da52b9745f7f0766531dcfa978b7763916f158bb63bdb8a1eca0068ab20", size = 16641643, upload_time = "2025-09-09T15:56:43.343Z" }, + { url = "https://files.pythonhosted.org/packages/30/e4/961a5fa681502cd0d68907818b69f67542695b74e3ceaa513918103b7e80/numpy-2.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:cd7de500a5b66319db419dc3c345244404a164beae0d0937283b907d8152e6ea", size = 16056787, upload_time = "2025-09-09T15:56:46.141Z" }, + { url = "https://files.pythonhosted.org/packages/99/26/92c912b966e47fbbdf2ad556cb17e3a3088e2e1292b9833be1dfa5361a1a/numpy-2.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:93d4962d8f82af58f0b2eb85daaf1b3ca23fe0a85d0be8f1f2b7bb46034e56d7", size = 18579598, upload_time = "2025-09-09T15:56:49.844Z" }, + { url = "https://files.pythonhosted.org/packages/17/b6/fc8f82cb3520768718834f310c37d96380d9dc61bfdaf05fe5c0b7653e01/numpy-2.3.3-cp312-cp312-win32.whl", hash = "sha256:5534ed6b92f9b7dca6c0a19d6df12d41c68b991cef051d108f6dbff3babc4ebf", size = 6320800, upload_time = "2025-09-09T15:56:52.499Z" }, + { url = "https://files.pythonhosted.org/packages/32/ee/de999f2625b80d043d6d2d628c07d0d5555a677a3cf78fdf868d409b8766/numpy-2.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:497d7cad08e7092dba36e3d296fe4c97708c93daf26643a1ae4b03f6294d30eb", size = 12786615, upload_time = "2025-09-09T15:56:54.422Z" }, + { url = "https://files.pythonhosted.org/packages/49/6e/b479032f8a43559c383acb20816644f5f91c88f633d9271ee84f3b3a996c/numpy-2.3.3-cp312-cp312-win_arm64.whl", hash = "sha256:ca0309a18d4dfea6fc6262a66d06c26cfe4640c3926ceec90e57791a82b6eee5", size = 10195936, upload_time = "2025-09-09T15:56:56.541Z" }, + { url = "https://files.pythonhosted.org/packages/7d/b9/984c2b1ee61a8b803bf63582b4ac4242cf76e2dbd663efeafcb620cc0ccb/numpy-2.3.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f5415fb78995644253370985342cd03572ef8620b934da27d77377a2285955bf", size = 20949588, upload_time = "2025-09-09T15:56:59.087Z" }, + { url = "https://files.pythonhosted.org/packages/a6/e4/07970e3bed0b1384d22af1e9912527ecbeb47d3b26e9b6a3bced068b3bea/numpy-2.3.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d00de139a3324e26ed5b95870ce63be7ec7352171bc69a4cf1f157a48e3eb6b7", size = 14177802, upload_time = "2025-09-09T15:57:01.73Z" }, + { url = "https://files.pythonhosted.org/packages/35/c7/477a83887f9de61f1203bad89cf208b7c19cc9fef0cebef65d5a1a0619f2/numpy-2.3.3-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:9dc13c6a5829610cc07422bc74d3ac083bd8323f14e2827d992f9e52e22cd6a6", size = 5106537, upload_time = "2025-09-09T15:57:03.765Z" }, + { url = "https://files.pythonhosted.org/packages/52/47/93b953bd5866a6f6986344d045a207d3f1cfbad99db29f534ea9cee5108c/numpy-2.3.3-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:d79715d95f1894771eb4e60fb23f065663b2298f7d22945d66877aadf33d00c7", size = 6640743, upload_time = "2025-09-09T15:57:07.921Z" }, + { url = "https://files.pythonhosted.org/packages/23/83/377f84aaeb800b64c0ef4de58b08769e782edcefa4fea712910b6f0afd3c/numpy-2.3.3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:952cfd0748514ea7c3afc729a0fc639e61655ce4c55ab9acfab14bda4f402b4c", size = 14278881, upload_time = "2025-09-09T15:57:11.349Z" }, + { url = "https://files.pythonhosted.org/packages/9a/a5/bf3db6e66c4b160d6ea10b534c381a1955dfab34cb1017ea93aa33c70ed3/numpy-2.3.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5b83648633d46f77039c29078751f80da65aa64d5622a3cd62aaef9d835b6c93", size = 16636301, upload_time = "2025-09-09T15:57:14.245Z" }, + { url = "https://files.pythonhosted.org/packages/a2/59/1287924242eb4fa3f9b3a2c30400f2e17eb2707020d1c5e3086fe7330717/numpy-2.3.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b001bae8cea1c7dfdb2ae2b017ed0a6f2102d7a70059df1e338e307a4c78a8ae", size = 16053645, upload_time = "2025-09-09T15:57:16.534Z" }, + { url = "https://files.pythonhosted.org/packages/e6/93/b3d47ed882027c35e94ac2320c37e452a549f582a5e801f2d34b56973c97/numpy-2.3.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8e9aced64054739037d42fb84c54dd38b81ee238816c948c8f3ed134665dcd86", size = 18578179, upload_time = "2025-09-09T15:57:18.883Z" }, + { url = "https://files.pythonhosted.org/packages/20/d9/487a2bccbf7cc9d4bfc5f0f197761a5ef27ba870f1e3bbb9afc4bbe3fcc2/numpy-2.3.3-cp313-cp313-win32.whl", hash = "sha256:9591e1221db3f37751e6442850429b3aabf7026d3b05542d102944ca7f00c8a8", size = 6312250, upload_time = "2025-09-09T15:57:21.296Z" }, + { url = "https://files.pythonhosted.org/packages/1b/b5/263ebbbbcede85028f30047eab3d58028d7ebe389d6493fc95ae66c636ab/numpy-2.3.3-cp313-cp313-win_amd64.whl", hash = "sha256:f0dadeb302887f07431910f67a14d57209ed91130be0adea2f9793f1a4f817cf", size = 12783269, upload_time = "2025-09-09T15:57:23.034Z" }, + { url = "https://files.pythonhosted.org/packages/fa/75/67b8ca554bbeaaeb3fac2e8bce46967a5a06544c9108ec0cf5cece559b6c/numpy-2.3.3-cp313-cp313-win_arm64.whl", hash = "sha256:3c7cf302ac6e0b76a64c4aecf1a09e51abd9b01fc7feee80f6c43e3ab1b1dbc5", size = 10195314, upload_time = "2025-09-09T15:57:25.045Z" }, + { url = "https://files.pythonhosted.org/packages/11/d0/0d1ddec56b162042ddfafeeb293bac672de9b0cfd688383590090963720a/numpy-2.3.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:eda59e44957d272846bb407aad19f89dc6f58fecf3504bd144f4c5cf81a7eacc", size = 21048025, upload_time = "2025-09-09T15:57:27.257Z" }, + { url = "https://files.pythonhosted.org/packages/36/9e/1996ca6b6d00415b6acbdd3c42f7f03ea256e2c3f158f80bd7436a8a19f3/numpy-2.3.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:823d04112bc85ef5c4fda73ba24e6096c8f869931405a80aa8b0e604510a26bc", size = 14301053, upload_time = "2025-09-09T15:57:30.077Z" }, + { url = "https://files.pythonhosted.org/packages/05/24/43da09aa764c68694b76e84b3d3f0c44cb7c18cdc1ba80e48b0ac1d2cd39/numpy-2.3.3-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:40051003e03db4041aa325da2a0971ba41cf65714e65d296397cc0e32de6018b", size = 5229444, upload_time = "2025-09-09T15:57:32.733Z" }, + { url = "https://files.pythonhosted.org/packages/bc/14/50ffb0f22f7218ef8af28dd089f79f68289a7a05a208db9a2c5dcbe123c1/numpy-2.3.3-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:6ee9086235dd6ab7ae75aba5662f582a81ced49f0f1c6de4260a78d8f2d91a19", size = 6738039, upload_time = "2025-09-09T15:57:34.328Z" }, + { url = "https://files.pythonhosted.org/packages/55/52/af46ac0795e09657d45a7f4db961917314377edecf66db0e39fa7ab5c3d3/numpy-2.3.3-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:94fcaa68757c3e2e668ddadeaa86ab05499a70725811e582b6a9858dd472fb30", size = 14352314, upload_time = "2025-09-09T15:57:36.255Z" }, + { url = "https://files.pythonhosted.org/packages/a7/b1/dc226b4c90eb9f07a3fff95c2f0db3268e2e54e5cce97c4ac91518aee71b/numpy-2.3.3-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:da1a74b90e7483d6ce5244053399a614b1d6b7bc30a60d2f570e5071f8959d3e", size = 16701722, upload_time = "2025-09-09T15:57:38.622Z" }, + { url = "https://files.pythonhosted.org/packages/9d/9d/9d8d358f2eb5eced14dba99f110d83b5cd9a4460895230f3b396ad19a323/numpy-2.3.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:2990adf06d1ecee3b3dcbb4977dfab6e9f09807598d647f04d385d29e7a3c3d3", size = 16132755, upload_time = "2025-09-09T15:57:41.16Z" }, + { url = "https://files.pythonhosted.org/packages/b6/27/b3922660c45513f9377b3fb42240bec63f203c71416093476ec9aa0719dc/numpy-2.3.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ed635ff692483b8e3f0fcaa8e7eb8a75ee71aa6d975388224f70821421800cea", size = 18651560, upload_time = "2025-09-09T15:57:43.459Z" }, + { url = "https://files.pythonhosted.org/packages/5b/8e/3ab61a730bdbbc201bb245a71102aa609f0008b9ed15255500a99cd7f780/numpy-2.3.3-cp313-cp313t-win32.whl", hash = "sha256:a333b4ed33d8dc2b373cc955ca57babc00cd6f9009991d9edc5ddbc1bac36bcd", size = 6442776, upload_time = "2025-09-09T15:57:45.793Z" }, + { url = "https://files.pythonhosted.org/packages/1c/3a/e22b766b11f6030dc2decdeff5c2fb1610768055603f9f3be88b6d192fb2/numpy-2.3.3-cp313-cp313t-win_amd64.whl", hash = "sha256:4384a169c4d8f97195980815d6fcad04933a7e1ab3b530921c3fef7a1c63426d", size = 12927281, upload_time = "2025-09-09T15:57:47.492Z" }, + { url = "https://files.pythonhosted.org/packages/7b/42/c2e2bc48c5e9b2a83423f99733950fbefd86f165b468a3d85d52b30bf782/numpy-2.3.3-cp313-cp313t-win_arm64.whl", hash = "sha256:75370986cc0bc66f4ce5110ad35aae6d182cc4ce6433c40ad151f53690130bf1", size = 10265275, upload_time = "2025-09-09T15:57:49.647Z" }, + { url = "https://files.pythonhosted.org/packages/6b/01/342ad585ad82419b99bcf7cebe99e61da6bedb89e213c5fd71acc467faee/numpy-2.3.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:cd052f1fa6a78dee696b58a914b7229ecfa41f0a6d96dc663c1220a55e137593", size = 20951527, upload_time = "2025-09-09T15:57:52.006Z" }, + { url = "https://files.pythonhosted.org/packages/ef/d8/204e0d73fc1b7a9ee80ab1fe1983dd33a4d64a4e30a05364b0208e9a241a/numpy-2.3.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:414a97499480067d305fcac9716c29cf4d0d76db6ebf0bf3cbce666677f12652", size = 14186159, upload_time = "2025-09-09T15:57:54.407Z" }, + { url = "https://files.pythonhosted.org/packages/22/af/f11c916d08f3a18fb8ba81ab72b5b74a6e42ead4c2846d270eb19845bf74/numpy-2.3.3-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:50a5fe69f135f88a2be9b6ca0481a68a136f6febe1916e4920e12f1a34e708a7", size = 5114624, upload_time = "2025-09-09T15:57:56.5Z" }, + { url = "https://files.pythonhosted.org/packages/fb/11/0ed919c8381ac9d2ffacd63fd1f0c34d27e99cab650f0eb6f110e6ae4858/numpy-2.3.3-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:b912f2ed2b67a129e6a601e9d93d4fa37bef67e54cac442a2f588a54afe5c67a", size = 6642627, upload_time = "2025-09-09T15:57:58.206Z" }, + { url = "https://files.pythonhosted.org/packages/ee/83/deb5f77cb0f7ba6cb52b91ed388b47f8f3c2e9930d4665c600408d9b90b9/numpy-2.3.3-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9e318ee0596d76d4cb3d78535dc005fa60e5ea348cd131a51e99d0bdbe0b54fe", size = 14296926, upload_time = "2025-09-09T15:58:00.035Z" }, + { url = "https://files.pythonhosted.org/packages/77/cc/70e59dcb84f2b005d4f306310ff0a892518cc0c8000a33d0e6faf7ca8d80/numpy-2.3.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ce020080e4a52426202bdb6f7691c65bb55e49f261f31a8f506c9f6bc7450421", size = 16638958, upload_time = "2025-09-09T15:58:02.738Z" }, + { url = "https://files.pythonhosted.org/packages/b6/5a/b2ab6c18b4257e099587d5b7f903317bd7115333ad8d4ec4874278eafa61/numpy-2.3.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:e6687dc183aa55dae4a705b35f9c0f8cb178bcaa2f029b241ac5356221d5c021", size = 16071920, upload_time = "2025-09-09T15:58:05.029Z" }, + { url = "https://files.pythonhosted.org/packages/b8/f1/8b3fdc44324a259298520dd82147ff648979bed085feeacc1250ef1656c0/numpy-2.3.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d8f3b1080782469fdc1718c4ed1d22549b5fb12af0d57d35e992158a772a37cf", size = 18577076, upload_time = "2025-09-09T15:58:07.745Z" }, + { url = "https://files.pythonhosted.org/packages/f0/a1/b87a284fb15a42e9274e7fcea0dad259d12ddbf07c1595b26883151ca3b4/numpy-2.3.3-cp314-cp314-win32.whl", hash = "sha256:cb248499b0bc3be66ebd6578b83e5acacf1d6cb2a77f2248ce0e40fbec5a76d0", size = 6366952, upload_time = "2025-09-09T15:58:10.096Z" }, + { url = "https://files.pythonhosted.org/packages/70/5f/1816f4d08f3b8f66576d8433a66f8fa35a5acfb3bbd0bf6c31183b003f3d/numpy-2.3.3-cp314-cp314-win_amd64.whl", hash = "sha256:691808c2b26b0f002a032c73255d0bd89751425f379f7bcd22d140db593a96e8", size = 12919322, upload_time = "2025-09-09T15:58:12.138Z" }, + { url = "https://files.pythonhosted.org/packages/8c/de/072420342e46a8ea41c324a555fa90fcc11637583fb8df722936aed1736d/numpy-2.3.3-cp314-cp314-win_arm64.whl", hash = "sha256:9ad12e976ca7b10f1774b03615a2a4bab8addce37ecc77394d8e986927dc0dfe", size = 10478630, upload_time = "2025-09-09T15:58:14.64Z" }, + { url = "https://files.pythonhosted.org/packages/d5/df/ee2f1c0a9de7347f14da5dd3cd3c3b034d1b8607ccb6883d7dd5c035d631/numpy-2.3.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:9cc48e09feb11e1db00b320e9d30a4151f7369afb96bd0e48d942d09da3a0d00", size = 21047987, upload_time = "2025-09-09T15:58:16.889Z" }, + { url = "https://files.pythonhosted.org/packages/d6/92/9453bdc5a4e9e69cf4358463f25e8260e2ffc126d52e10038b9077815989/numpy-2.3.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:901bf6123879b7f251d3631967fd574690734236075082078e0571977c6a8e6a", size = 14301076, upload_time = "2025-09-09T15:58:20.343Z" }, + { url = "https://files.pythonhosted.org/packages/13/77/1447b9eb500f028bb44253105bd67534af60499588a5149a94f18f2ca917/numpy-2.3.3-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:7f025652034199c301049296b59fa7d52c7e625017cae4c75d8662e377bf487d", size = 5229491, upload_time = "2025-09-09T15:58:22.481Z" }, + { url = "https://files.pythonhosted.org/packages/3d/f9/d72221b6ca205f9736cb4b2ce3b002f6e45cd67cd6a6d1c8af11a2f0b649/numpy-2.3.3-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:533ca5f6d325c80b6007d4d7fb1984c303553534191024ec6a524a4c92a5935a", size = 6737913, upload_time = "2025-09-09T15:58:24.569Z" }, + { url = "https://files.pythonhosted.org/packages/3c/5f/d12834711962ad9c46af72f79bb31e73e416ee49d17f4c797f72c96b6ca5/numpy-2.3.3-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0edd58682a399824633b66885d699d7de982800053acf20be1eaa46d92009c54", size = 14352811, upload_time = "2025-09-09T15:58:26.416Z" }, + { url = "https://files.pythonhosted.org/packages/a1/0d/fdbec6629d97fd1bebed56cd742884e4eead593611bbe1abc3eb40d304b2/numpy-2.3.3-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:367ad5d8fbec5d9296d18478804a530f1191e24ab4d75ab408346ae88045d25e", size = 16702689, upload_time = "2025-09-09T15:58:28.831Z" }, + { url = "https://files.pythonhosted.org/packages/9b/09/0a35196dc5575adde1eb97ddfbc3e1687a814f905377621d18ca9bc2b7dd/numpy-2.3.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8f6ac61a217437946a1fa48d24c47c91a0c4f725237871117dea264982128097", size = 16133855, upload_time = "2025-09-09T15:58:31.349Z" }, + { url = "https://files.pythonhosted.org/packages/7a/ca/c9de3ea397d576f1b6753eaa906d4cdef1bf97589a6d9825a349b4729cc2/numpy-2.3.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:179a42101b845a816d464b6fe9a845dfaf308fdfc7925387195570789bb2c970", size = 18652520, upload_time = "2025-09-09T15:58:33.762Z" }, + { url = "https://files.pythonhosted.org/packages/fd/c2/e5ed830e08cd0196351db55db82f65bc0ab05da6ef2b72a836dcf1936d2f/numpy-2.3.3-cp314-cp314t-win32.whl", hash = "sha256:1250c5d3d2562ec4174bce2e3a1523041595f9b651065e4a4473f5f48a6bc8a5", size = 6515371, upload_time = "2025-09-09T15:58:36.04Z" }, + { url = "https://files.pythonhosted.org/packages/47/c7/b0f6b5b67f6788a0725f744496badbb604d226bf233ba716683ebb47b570/numpy-2.3.3-cp314-cp314t-win_amd64.whl", hash = "sha256:b37a0b2e5935409daebe82c1e42274d30d9dd355852529eab91dab8dcca7419f", size = 13112576, upload_time = "2025-09-09T15:58:37.927Z" }, + { url = "https://files.pythonhosted.org/packages/06/b9/33bba5ff6fb679aa0b1f8a07e853f002a6b04b9394db3069a1270a7784ca/numpy-2.3.3-cp314-cp314t-win_arm64.whl", hash = "sha256:78c9f6560dc7e6b3990e32df7ea1a50bbd0e2a111e05209963f5ddcab7073b0b", size = 10545953, upload_time = "2025-09-09T15:58:40.576Z" }, +] + +[[package]] +name = "nwbinspector" +version = "0.6.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "click" }, + { name = "fsspec" }, + { name = "hdmf-zarr" }, + { name = "isodate" }, + { name = "jsonschema" }, + { name = "natsort" }, + { name = "packaging" }, + { name = "pynwb" }, + { name = "pyyaml" }, + { name = "requests" }, + { name = "tqdm" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/45/23/d50bb1dfef6eff622dff58ec64077f6b51ce9191ee4f093881b1394a6ddd/nwbinspector-0.6.5.tar.gz", hash = "sha256:93023bcd72c73add18644211fb26f6b005e012ec9c6a8b3f53e136ddeb58af16", size = 591999, upload_time = "2025-07-25T18:05:22.529Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8f/e7/01fd709430ee0178db611f1db9652bfca71599799c602101e13ce5bdeedc/nwbinspector-0.6.5-py3-none-any.whl", hash = "sha256:f0219a9b06482b07415e7beebddf3ae7d97371cc178e7bc05c7d3edf7285d135", size = 64409, upload_time = "2025-07-25T18:05:21.4Z" }, +] + +[[package]] +name = "packaging" +version = "25.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727, upload_time = "2025-04-19T11:48:59.673Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload_time = "2025-04-19T11:48:57.875Z" }, +] + +[[package]] +name = "pandas" +version = "2.3.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "tzdata" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/33/01/d40b85317f86cf08d853a4f495195c73815fdf205eef3993821720274518/pandas-2.3.3.tar.gz", hash = "sha256:e05e1af93b977f7eafa636d043f9f94c7ee3ac81af99c13508215942e64c993b", size = 4495223, upload_time = "2025-09-29T23:34:51.853Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/fb/231d89e8637c808b997d172b18e9d4a4bc7bf31296196c260526055d1ea0/pandas-2.3.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6d21f6d74eb1725c2efaa71a2bfc661a0689579b58e9c0ca58a739ff0b002b53", size = 11597846, upload_time = "2025-09-29T23:19:48.856Z" }, + { url = "https://files.pythonhosted.org/packages/5c/bd/bf8064d9cfa214294356c2d6702b716d3cf3bb24be59287a6a21e24cae6b/pandas-2.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3fd2f887589c7aa868e02632612ba39acb0b8948faf5cc58f0850e165bd46f35", size = 10729618, upload_time = "2025-09-29T23:39:08.659Z" }, + { url = "https://files.pythonhosted.org/packages/57/56/cf2dbe1a3f5271370669475ead12ce77c61726ffd19a35546e31aa8edf4e/pandas-2.3.3-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ecaf1e12bdc03c86ad4a7ea848d66c685cb6851d807a26aa245ca3d2017a1908", size = 11737212, upload_time = "2025-09-29T23:19:59.765Z" }, + { url = "https://files.pythonhosted.org/packages/e5/63/cd7d615331b328e287d8233ba9fdf191a9c2d11b6af0c7a59cfcec23de68/pandas-2.3.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b3d11d2fda7eb164ef27ffc14b4fcab16a80e1ce67e9f57e19ec0afaf715ba89", size = 12362693, upload_time = "2025-09-29T23:20:14.098Z" }, + { url = "https://files.pythonhosted.org/packages/a6/de/8b1895b107277d52f2b42d3a6806e69cfef0d5cf1d0ba343470b9d8e0a04/pandas-2.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a68e15f780eddf2b07d242e17a04aa187a7ee12b40b930bfdd78070556550e98", size = 12771002, upload_time = "2025-09-29T23:20:26.76Z" }, + { url = "https://files.pythonhosted.org/packages/87/21/84072af3187a677c5893b170ba2c8fbe450a6ff911234916da889b698220/pandas-2.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:371a4ab48e950033bcf52b6527eccb564f52dc826c02afd9a1bc0ab731bba084", size = 13450971, upload_time = "2025-09-29T23:20:41.344Z" }, + { url = "https://files.pythonhosted.org/packages/86/41/585a168330ff063014880a80d744219dbf1dd7a1c706e75ab3425a987384/pandas-2.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:a16dcec078a01eeef8ee61bf64074b4e524a2a3f4b3be9326420cabe59c4778b", size = 10992722, upload_time = "2025-09-29T23:20:54.139Z" }, + { url = "https://files.pythonhosted.org/packages/cd/4b/18b035ee18f97c1040d94debd8f2e737000ad70ccc8f5513f4eefad75f4b/pandas-2.3.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:56851a737e3470de7fa88e6131f41281ed440d29a9268dcbf0002da5ac366713", size = 11544671, upload_time = "2025-09-29T23:21:05.024Z" }, + { url = "https://files.pythonhosted.org/packages/31/94/72fac03573102779920099bcac1c3b05975c2cb5f01eac609faf34bed1ca/pandas-2.3.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bdcd9d1167f4885211e401b3036c0c8d9e274eee67ea8d0758a256d60704cfe8", size = 10680807, upload_time = "2025-09-29T23:21:15.979Z" }, + { url = "https://files.pythonhosted.org/packages/16/87/9472cf4a487d848476865321de18cc8c920b8cab98453ab79dbbc98db63a/pandas-2.3.3-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e32e7cc9af0f1cc15548288a51a3b681cc2a219faa838e995f7dc53dbab1062d", size = 11709872, upload_time = "2025-09-29T23:21:27.165Z" }, + { url = "https://files.pythonhosted.org/packages/15/07/284f757f63f8a8d69ed4472bfd85122bd086e637bf4ed09de572d575a693/pandas-2.3.3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:318d77e0e42a628c04dc56bcef4b40de67918f7041c2b061af1da41dcff670ac", size = 12306371, upload_time = "2025-09-29T23:21:40.532Z" }, + { url = "https://files.pythonhosted.org/packages/33/81/a3afc88fca4aa925804a27d2676d22dcd2031c2ebe08aabd0ae55b9ff282/pandas-2.3.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4e0a175408804d566144e170d0476b15d78458795bb18f1304fb94160cabf40c", size = 12765333, upload_time = "2025-09-29T23:21:55.77Z" }, + { url = "https://files.pythonhosted.org/packages/8d/0f/b4d4ae743a83742f1153464cf1a8ecfafc3ac59722a0b5c8602310cb7158/pandas-2.3.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:93c2d9ab0fc11822b5eece72ec9587e172f63cff87c00b062f6e37448ced4493", size = 13418120, upload_time = "2025-09-29T23:22:10.109Z" }, + { url = "https://files.pythonhosted.org/packages/4f/c7/e54682c96a895d0c808453269e0b5928a07a127a15704fedb643e9b0a4c8/pandas-2.3.3-cp313-cp313-win_amd64.whl", hash = "sha256:f8bfc0e12dc78f777f323f55c58649591b2cd0c43534e8355c51d3fede5f4dee", size = 10993991, upload_time = "2025-09-29T23:25:04.889Z" }, + { url = "https://files.pythonhosted.org/packages/f9/ca/3f8d4f49740799189e1395812f3bf23b5e8fc7c190827d55a610da72ce55/pandas-2.3.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:75ea25f9529fdec2d2e93a42c523962261e567d250b0013b16210e1d40d7c2e5", size = 12048227, upload_time = "2025-09-29T23:22:24.343Z" }, + { url = "https://files.pythonhosted.org/packages/0e/5a/f43efec3e8c0cc92c4663ccad372dbdff72b60bdb56b2749f04aa1d07d7e/pandas-2.3.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:74ecdf1d301e812db96a465a525952f4dde225fdb6d8e5a521d47e1f42041e21", size = 11411056, upload_time = "2025-09-29T23:22:37.762Z" }, + { url = "https://files.pythonhosted.org/packages/46/b1/85331edfc591208c9d1a63a06baa67b21d332e63b7a591a5ba42a10bb507/pandas-2.3.3-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6435cb949cb34ec11cc9860246ccb2fdc9ecd742c12d3304989017d53f039a78", size = 11645189, upload_time = "2025-09-29T23:22:51.688Z" }, + { url = "https://files.pythonhosted.org/packages/44/23/78d645adc35d94d1ac4f2a3c4112ab6f5b8999f4898b8cdf01252f8df4a9/pandas-2.3.3-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:900f47d8f20860de523a1ac881c4c36d65efcb2eb850e6948140fa781736e110", size = 12121912, upload_time = "2025-09-29T23:23:05.042Z" }, + { url = "https://files.pythonhosted.org/packages/53/da/d10013df5e6aaef6b425aa0c32e1fc1f3e431e4bcabd420517dceadce354/pandas-2.3.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a45c765238e2ed7d7c608fc5bc4a6f88b642f2f01e70c0c23d2224dd21829d86", size = 12712160, upload_time = "2025-09-29T23:23:28.57Z" }, + { url = "https://files.pythonhosted.org/packages/bd/17/e756653095a083d8a37cbd816cb87148debcfcd920129b25f99dd8d04271/pandas-2.3.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:c4fc4c21971a1a9f4bdb4c73978c7f7256caa3e62b323f70d6cb80db583350bc", size = 13199233, upload_time = "2025-09-29T23:24:24.876Z" }, + { url = "https://files.pythonhosted.org/packages/04/fd/74903979833db8390b73b3a8a7d30d146d710bd32703724dd9083950386f/pandas-2.3.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:ee15f284898e7b246df8087fc82b87b01686f98ee67d85a17b7ab44143a3a9a0", size = 11540635, upload_time = "2025-09-29T23:25:52.486Z" }, + { url = "https://files.pythonhosted.org/packages/21/00/266d6b357ad5e6d3ad55093a7e8efc7dd245f5a842b584db9f30b0f0a287/pandas-2.3.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1611aedd912e1ff81ff41c745822980c49ce4a7907537be8692c8dbc31924593", size = 10759079, upload_time = "2025-09-29T23:26:33.204Z" }, + { url = "https://files.pythonhosted.org/packages/ca/05/d01ef80a7a3a12b2f8bbf16daba1e17c98a2f039cbc8e2f77a2c5a63d382/pandas-2.3.3-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6d2cefc361461662ac48810cb14365a365ce864afe85ef1f447ff5a1e99ea81c", size = 11814049, upload_time = "2025-09-29T23:27:15.384Z" }, + { url = "https://files.pythonhosted.org/packages/15/b2/0e62f78c0c5ba7e3d2c5945a82456f4fac76c480940f805e0b97fcbc2f65/pandas-2.3.3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ee67acbbf05014ea6c763beb097e03cd629961c8a632075eeb34247120abcb4b", size = 12332638, upload_time = "2025-09-29T23:27:51.625Z" }, + { url = "https://files.pythonhosted.org/packages/c5/33/dd70400631b62b9b29c3c93d2feee1d0964dc2bae2e5ad7a6c73a7f25325/pandas-2.3.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c46467899aaa4da076d5abc11084634e2d197e9460643dd455ac3db5856b24d6", size = 12886834, upload_time = "2025-09-29T23:28:21.289Z" }, + { url = "https://files.pythonhosted.org/packages/d3/18/b5d48f55821228d0d2692b34fd5034bb185e854bdb592e9c640f6290e012/pandas-2.3.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6253c72c6a1d990a410bc7de641d34053364ef8bcd3126f7e7450125887dffe3", size = 13409925, upload_time = "2025-09-29T23:28:58.261Z" }, + { url = "https://files.pythonhosted.org/packages/a6/3d/124ac75fcd0ecc09b8fdccb0246ef65e35b012030defb0e0eba2cbbbe948/pandas-2.3.3-cp314-cp314-win_amd64.whl", hash = "sha256:1b07204a219b3b7350abaae088f451860223a52cfb8a6c53358e7948735158e5", size = 11109071, upload_time = "2025-09-29T23:32:27.484Z" }, + { url = "https://files.pythonhosted.org/packages/89/9c/0e21c895c38a157e0faa1fb64587a9226d6dd46452cac4532d80c3c4a244/pandas-2.3.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:2462b1a365b6109d275250baaae7b760fd25c726aaca0054649286bcfbb3e8ec", size = 12048504, upload_time = "2025-09-29T23:29:31.47Z" }, + { url = "https://files.pythonhosted.org/packages/d7/82/b69a1c95df796858777b68fbe6a81d37443a33319761d7c652ce77797475/pandas-2.3.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:0242fe9a49aa8b4d78a4fa03acb397a58833ef6199e9aa40a95f027bb3a1b6e7", size = 11410702, upload_time = "2025-09-29T23:29:54.591Z" }, + { url = "https://files.pythonhosted.org/packages/f9/88/702bde3ba0a94b8c73a0181e05144b10f13f29ebfc2150c3a79062a8195d/pandas-2.3.3-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a21d830e78df0a515db2b3d2f5570610f5e6bd2e27749770e8bb7b524b89b450", size = 11634535, upload_time = "2025-09-29T23:30:21.003Z" }, + { url = "https://files.pythonhosted.org/packages/a4/1e/1bac1a839d12e6a82ec6cb40cda2edde64a2013a66963293696bbf31fbbb/pandas-2.3.3-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2e3ebdb170b5ef78f19bfb71b0dc5dc58775032361fa188e814959b74d726dd5", size = 12121582, upload_time = "2025-09-29T23:30:43.391Z" }, + { url = "https://files.pythonhosted.org/packages/44/91/483de934193e12a3b1d6ae7c8645d083ff88dec75f46e827562f1e4b4da6/pandas-2.3.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:d051c0e065b94b7a3cea50eb1ec32e912cd96dba41647eb24104b6c6c14c5788", size = 12699963, upload_time = "2025-09-29T23:31:10.009Z" }, + { url = "https://files.pythonhosted.org/packages/70/44/5191d2e4026f86a2a109053e194d3ba7a31a2d10a9c2348368c63ed4e85a/pandas-2.3.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:3869faf4bd07b3b66a9f462417d0ca3a9df29a9f6abd5d0d0dbab15dac7abe87", size = 13202175, upload_time = "2025-09-29T23:31:59.173Z" }, +] + +[[package]] +name = "platformdirs" +version = "4.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/23/e8/21db9c9987b0e728855bd57bff6984f67952bea55d6f75e055c46b5383e8/platformdirs-4.4.0.tar.gz", hash = "sha256:ca753cf4d81dc309bc67b0ea38fd15dc97bc30ce419a7f58d13eb3bf14c4febf", size = 21634, upload_time = "2025-08-26T14:32:04.268Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/40/4b/2028861e724d3bd36227adfa20d3fd24c3fc6d52032f4a93c133be5d17ce/platformdirs-4.4.0-py3-none-any.whl", hash = "sha256:abd01743f24e5287cd7a5db3752faf1a2d65353f38ec26d98e25a6db65958c85", size = 18654, upload_time = "2025-08-26T14:32:02.735Z" }, +] + +[[package]] +name = "propcache" +version = "0.3.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a6/16/43264e4a779dd8588c21a70f0709665ee8f611211bdd2c87d952cfa7c776/propcache-0.3.2.tar.gz", hash = "sha256:20d7d62e4e7ef05f221e0db2856b979540686342e7dd9973b815599c7057e168", size = 44139, upload_time = "2025-06-09T22:56:06.081Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a8/42/9ca01b0a6f48e81615dca4765a8f1dd2c057e0540f6116a27dc5ee01dfb6/propcache-0.3.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:8de106b6c84506b31c27168582cd3cb3000a6412c16df14a8628e5871ff83c10", size = 73674, upload_time = "2025-06-09T22:54:30.551Z" }, + { url = "https://files.pythonhosted.org/packages/af/6e/21293133beb550f9c901bbece755d582bfaf2176bee4774000bd4dd41884/propcache-0.3.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:28710b0d3975117239c76600ea351934ac7b5ff56e60953474342608dbbb6154", size = 43570, upload_time = "2025-06-09T22:54:32.296Z" }, + { url = "https://files.pythonhosted.org/packages/0c/c8/0393a0a3a2b8760eb3bde3c147f62b20044f0ddac81e9d6ed7318ec0d852/propcache-0.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce26862344bdf836650ed2487c3d724b00fbfec4233a1013f597b78c1cb73615", size = 43094, upload_time = "2025-06-09T22:54:33.929Z" }, + { url = "https://files.pythonhosted.org/packages/37/2c/489afe311a690399d04a3e03b069225670c1d489eb7b044a566511c1c498/propcache-0.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bca54bd347a253af2cf4544bbec232ab982f4868de0dd684246b67a51bc6b1db", size = 226958, upload_time = "2025-06-09T22:54:35.186Z" }, + { url = "https://files.pythonhosted.org/packages/9d/ca/63b520d2f3d418c968bf596839ae26cf7f87bead026b6192d4da6a08c467/propcache-0.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:55780d5e9a2ddc59711d727226bb1ba83a22dd32f64ee15594b9392b1f544eb1", size = 234894, upload_time = "2025-06-09T22:54:36.708Z" }, + { url = "https://files.pythonhosted.org/packages/11/60/1d0ed6fff455a028d678df30cc28dcee7af77fa2b0e6962ce1df95c9a2a9/propcache-0.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:035e631be25d6975ed87ab23153db6a73426a48db688070d925aa27e996fe93c", size = 233672, upload_time = "2025-06-09T22:54:38.062Z" }, + { url = "https://files.pythonhosted.org/packages/37/7c/54fd5301ef38505ab235d98827207176a5c9b2aa61939b10a460ca53e123/propcache-0.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ee6f22b6eaa39297c751d0e80c0d3a454f112f5c6481214fcf4c092074cecd67", size = 224395, upload_time = "2025-06-09T22:54:39.634Z" }, + { url = "https://files.pythonhosted.org/packages/ee/1a/89a40e0846f5de05fdc6779883bf46ba980e6df4d2ff8fb02643de126592/propcache-0.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7ca3aee1aa955438c4dba34fc20a9f390e4c79967257d830f137bd5a8a32ed3b", size = 212510, upload_time = "2025-06-09T22:54:41.565Z" }, + { url = "https://files.pythonhosted.org/packages/5e/33/ca98368586c9566a6b8d5ef66e30484f8da84c0aac3f2d9aec6d31a11bd5/propcache-0.3.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7a4f30862869fa2b68380d677cc1c5fcf1e0f2b9ea0cf665812895c75d0ca3b8", size = 222949, upload_time = "2025-06-09T22:54:43.038Z" }, + { url = "https://files.pythonhosted.org/packages/ba/11/ace870d0aafe443b33b2f0b7efdb872b7c3abd505bfb4890716ad7865e9d/propcache-0.3.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:b77ec3c257d7816d9f3700013639db7491a434644c906a2578a11daf13176251", size = 217258, upload_time = "2025-06-09T22:54:44.376Z" }, + { url = "https://files.pythonhosted.org/packages/5b/d2/86fd6f7adffcfc74b42c10a6b7db721d1d9ca1055c45d39a1a8f2a740a21/propcache-0.3.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:cab90ac9d3f14b2d5050928483d3d3b8fb6b4018893fc75710e6aa361ecb2474", size = 213036, upload_time = "2025-06-09T22:54:46.243Z" }, + { url = "https://files.pythonhosted.org/packages/07/94/2d7d1e328f45ff34a0a284cf5a2847013701e24c2a53117e7c280a4316b3/propcache-0.3.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:0b504d29f3c47cf6b9e936c1852246c83d450e8e063d50562115a6be6d3a2535", size = 227684, upload_time = "2025-06-09T22:54:47.63Z" }, + { url = "https://files.pythonhosted.org/packages/b7/05/37ae63a0087677e90b1d14710e532ff104d44bc1efa3b3970fff99b891dc/propcache-0.3.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:ce2ac2675a6aa41ddb2a0c9cbff53780a617ac3d43e620f8fd77ba1c84dcfc06", size = 234562, upload_time = "2025-06-09T22:54:48.982Z" }, + { url = "https://files.pythonhosted.org/packages/a4/7c/3f539fcae630408d0bd8bf3208b9a647ccad10976eda62402a80adf8fc34/propcache-0.3.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:62b4239611205294cc433845b914131b2a1f03500ff3c1ed093ed216b82621e1", size = 222142, upload_time = "2025-06-09T22:54:50.424Z" }, + { url = "https://files.pythonhosted.org/packages/7c/d2/34b9eac8c35f79f8a962546b3e97e9d4b990c420ee66ac8255d5d9611648/propcache-0.3.2-cp312-cp312-win32.whl", hash = "sha256:df4a81b9b53449ebc90cc4deefb052c1dd934ba85012aa912c7ea7b7e38b60c1", size = 37711, upload_time = "2025-06-09T22:54:52.072Z" }, + { url = "https://files.pythonhosted.org/packages/19/61/d582be5d226cf79071681d1b46b848d6cb03d7b70af7063e33a2787eaa03/propcache-0.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:7046e79b989d7fe457bb755844019e10f693752d169076138abf17f31380800c", size = 41479, upload_time = "2025-06-09T22:54:53.234Z" }, + { url = "https://files.pythonhosted.org/packages/dc/d1/8c747fafa558c603c4ca19d8e20b288aa0c7cda74e9402f50f31eb65267e/propcache-0.3.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ca592ed634a73ca002967458187109265e980422116c0a107cf93d81f95af945", size = 71286, upload_time = "2025-06-09T22:54:54.369Z" }, + { url = "https://files.pythonhosted.org/packages/61/99/d606cb7986b60d89c36de8a85d58764323b3a5ff07770a99d8e993b3fa73/propcache-0.3.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9ecb0aad4020e275652ba3975740f241bd12a61f1a784df044cf7477a02bc252", size = 42425, upload_time = "2025-06-09T22:54:55.642Z" }, + { url = "https://files.pythonhosted.org/packages/8c/96/ef98f91bbb42b79e9bb82bdd348b255eb9d65f14dbbe3b1594644c4073f7/propcache-0.3.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7f08f1cc28bd2eade7a8a3d2954ccc673bb02062e3e7da09bc75d843386b342f", size = 41846, upload_time = "2025-06-09T22:54:57.246Z" }, + { url = "https://files.pythonhosted.org/packages/5b/ad/3f0f9a705fb630d175146cd7b1d2bf5555c9beaed54e94132b21aac098a6/propcache-0.3.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1a342c834734edb4be5ecb1e9fb48cb64b1e2320fccbd8c54bf8da8f2a84c33", size = 208871, upload_time = "2025-06-09T22:54:58.975Z" }, + { url = "https://files.pythonhosted.org/packages/3a/38/2085cda93d2c8b6ec3e92af2c89489a36a5886b712a34ab25de9fbca7992/propcache-0.3.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8a544caaae1ac73f1fecfae70ded3e93728831affebd017d53449e3ac052ac1e", size = 215720, upload_time = "2025-06-09T22:55:00.471Z" }, + { url = "https://files.pythonhosted.org/packages/61/c1/d72ea2dc83ac7f2c8e182786ab0fc2c7bd123a1ff9b7975bee671866fe5f/propcache-0.3.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:310d11aa44635298397db47a3ebce7db99a4cc4b9bbdfcf6c98a60c8d5261cf1", size = 215203, upload_time = "2025-06-09T22:55:01.834Z" }, + { url = "https://files.pythonhosted.org/packages/af/81/b324c44ae60c56ef12007105f1460d5c304b0626ab0cc6b07c8f2a9aa0b8/propcache-0.3.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c1396592321ac83157ac03a2023aa6cc4a3cc3cfdecb71090054c09e5a7cce3", size = 206365, upload_time = "2025-06-09T22:55:03.199Z" }, + { url = "https://files.pythonhosted.org/packages/09/73/88549128bb89e66d2aff242488f62869014ae092db63ccea53c1cc75a81d/propcache-0.3.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8cabf5b5902272565e78197edb682017d21cf3b550ba0460ee473753f28d23c1", size = 196016, upload_time = "2025-06-09T22:55:04.518Z" }, + { url = "https://files.pythonhosted.org/packages/b9/3f/3bdd14e737d145114a5eb83cb172903afba7242f67c5877f9909a20d948d/propcache-0.3.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0a2f2235ac46a7aa25bdeb03a9e7060f6ecbd213b1f9101c43b3090ffb971ef6", size = 205596, upload_time = "2025-06-09T22:55:05.942Z" }, + { url = "https://files.pythonhosted.org/packages/0f/ca/2f4aa819c357d3107c3763d7ef42c03980f9ed5c48c82e01e25945d437c1/propcache-0.3.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:92b69e12e34869a6970fd2f3da91669899994b47c98f5d430b781c26f1d9f387", size = 200977, upload_time = "2025-06-09T22:55:07.792Z" }, + { url = "https://files.pythonhosted.org/packages/cd/4a/e65276c7477533c59085251ae88505caf6831c0e85ff8b2e31ebcbb949b1/propcache-0.3.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:54e02207c79968ebbdffc169591009f4474dde3b4679e16634d34c9363ff56b4", size = 197220, upload_time = "2025-06-09T22:55:09.173Z" }, + { url = "https://files.pythonhosted.org/packages/7c/54/fc7152e517cf5578278b242396ce4d4b36795423988ef39bb8cd5bf274c8/propcache-0.3.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4adfb44cb588001f68c5466579d3f1157ca07f7504fc91ec87862e2b8e556b88", size = 210642, upload_time = "2025-06-09T22:55:10.62Z" }, + { url = "https://files.pythonhosted.org/packages/b9/80/abeb4a896d2767bf5f1ea7b92eb7be6a5330645bd7fb844049c0e4045d9d/propcache-0.3.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:fd3e6019dc1261cd0291ee8919dd91fbab7b169bb76aeef6c716833a3f65d206", size = 212789, upload_time = "2025-06-09T22:55:12.029Z" }, + { url = "https://files.pythonhosted.org/packages/b3/db/ea12a49aa7b2b6d68a5da8293dcf50068d48d088100ac016ad92a6a780e6/propcache-0.3.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4c181cad81158d71c41a2bce88edce078458e2dd5ffee7eddd6b05da85079f43", size = 205880, upload_time = "2025-06-09T22:55:13.45Z" }, + { url = "https://files.pythonhosted.org/packages/d1/e5/9076a0bbbfb65d1198007059c65639dfd56266cf8e477a9707e4b1999ff4/propcache-0.3.2-cp313-cp313-win32.whl", hash = "sha256:8a08154613f2249519e549de2330cf8e2071c2887309a7b07fb56098f5170a02", size = 37220, upload_time = "2025-06-09T22:55:15.284Z" }, + { url = "https://files.pythonhosted.org/packages/d3/f5/b369e026b09a26cd77aa88d8fffd69141d2ae00a2abaaf5380d2603f4b7f/propcache-0.3.2-cp313-cp313-win_amd64.whl", hash = "sha256:e41671f1594fc4ab0a6dec1351864713cb3a279910ae8b58f884a88a0a632c05", size = 40678, upload_time = "2025-06-09T22:55:16.445Z" }, + { url = "https://files.pythonhosted.org/packages/a4/3a/6ece377b55544941a08d03581c7bc400a3c8cd3c2865900a68d5de79e21f/propcache-0.3.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:9a3cf035bbaf035f109987d9d55dc90e4b0e36e04bbbb95af3055ef17194057b", size = 76560, upload_time = "2025-06-09T22:55:17.598Z" }, + { url = "https://files.pythonhosted.org/packages/0c/da/64a2bb16418740fa634b0e9c3d29edff1db07f56d3546ca2d86ddf0305e1/propcache-0.3.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:156c03d07dc1323d8dacaa221fbe028c5c70d16709cdd63502778e6c3ccca1b0", size = 44676, upload_time = "2025-06-09T22:55:18.922Z" }, + { url = "https://files.pythonhosted.org/packages/36/7b/f025e06ea51cb72c52fb87e9b395cced02786610b60a3ed51da8af017170/propcache-0.3.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:74413c0ba02ba86f55cf60d18daab219f7e531620c15f1e23d95563f505efe7e", size = 44701, upload_time = "2025-06-09T22:55:20.106Z" }, + { url = "https://files.pythonhosted.org/packages/a4/00/faa1b1b7c3b74fc277f8642f32a4c72ba1d7b2de36d7cdfb676db7f4303e/propcache-0.3.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f066b437bb3fa39c58ff97ab2ca351db465157d68ed0440abecb21715eb24b28", size = 276934, upload_time = "2025-06-09T22:55:21.5Z" }, + { url = "https://files.pythonhosted.org/packages/74/ab/935beb6f1756e0476a4d5938ff44bf0d13a055fed880caf93859b4f1baf4/propcache-0.3.2-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1304b085c83067914721e7e9d9917d41ad87696bf70f0bc7dee450e9c71ad0a", size = 278316, upload_time = "2025-06-09T22:55:22.918Z" }, + { url = "https://files.pythonhosted.org/packages/f8/9d/994a5c1ce4389610838d1caec74bdf0e98b306c70314d46dbe4fcf21a3e2/propcache-0.3.2-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ab50cef01b372763a13333b4e54021bdcb291fc9a8e2ccb9c2df98be51bcde6c", size = 282619, upload_time = "2025-06-09T22:55:24.651Z" }, + { url = "https://files.pythonhosted.org/packages/2b/00/a10afce3d1ed0287cef2e09506d3be9822513f2c1e96457ee369adb9a6cd/propcache-0.3.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fad3b2a085ec259ad2c2842666b2a0a49dea8463579c606426128925af1ed725", size = 265896, upload_time = "2025-06-09T22:55:26.049Z" }, + { url = "https://files.pythonhosted.org/packages/2e/a8/2aa6716ffa566ca57c749edb909ad27884680887d68517e4be41b02299f3/propcache-0.3.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:261fa020c1c14deafd54c76b014956e2f86991af198c51139faf41c4d5e83892", size = 252111, upload_time = "2025-06-09T22:55:27.381Z" }, + { url = "https://files.pythonhosted.org/packages/36/4f/345ca9183b85ac29c8694b0941f7484bf419c7f0fea2d1e386b4f7893eed/propcache-0.3.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:46d7f8aa79c927e5f987ee3a80205c987717d3659f035c85cf0c3680526bdb44", size = 268334, upload_time = "2025-06-09T22:55:28.747Z" }, + { url = "https://files.pythonhosted.org/packages/3e/ca/fcd54f78b59e3f97b3b9715501e3147f5340167733d27db423aa321e7148/propcache-0.3.2-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:6d8f3f0eebf73e3c0ff0e7853f68be638b4043c65a70517bb575eff54edd8dbe", size = 255026, upload_time = "2025-06-09T22:55:30.184Z" }, + { url = "https://files.pythonhosted.org/packages/8b/95/8e6a6bbbd78ac89c30c225210a5c687790e532ba4088afb8c0445b77ef37/propcache-0.3.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:03c89c1b14a5452cf15403e291c0ccd7751d5b9736ecb2c5bab977ad6c5bcd81", size = 250724, upload_time = "2025-06-09T22:55:31.646Z" }, + { url = "https://files.pythonhosted.org/packages/ee/b0/0dd03616142baba28e8b2d14ce5df6631b4673850a3d4f9c0f9dd714a404/propcache-0.3.2-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:0cc17efde71e12bbaad086d679ce575268d70bc123a5a71ea7ad76f70ba30bba", size = 268868, upload_time = "2025-06-09T22:55:33.209Z" }, + { url = "https://files.pythonhosted.org/packages/c5/98/2c12407a7e4fbacd94ddd32f3b1e3d5231e77c30ef7162b12a60e2dd5ce3/propcache-0.3.2-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:acdf05d00696bc0447e278bb53cb04ca72354e562cf88ea6f9107df8e7fd9770", size = 271322, upload_time = "2025-06-09T22:55:35.065Z" }, + { url = "https://files.pythonhosted.org/packages/35/91/9cb56efbb428b006bb85db28591e40b7736847b8331d43fe335acf95f6c8/propcache-0.3.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4445542398bd0b5d32df908031cb1b30d43ac848e20470a878b770ec2dcc6330", size = 265778, upload_time = "2025-06-09T22:55:36.45Z" }, + { url = "https://files.pythonhosted.org/packages/9a/4c/b0fe775a2bdd01e176b14b574be679d84fc83958335790f7c9a686c1f468/propcache-0.3.2-cp313-cp313t-win32.whl", hash = "sha256:f86e5d7cd03afb3a1db8e9f9f6eff15794e79e791350ac48a8c924e6f439f394", size = 41175, upload_time = "2025-06-09T22:55:38.436Z" }, + { url = "https://files.pythonhosted.org/packages/a4/ff/47f08595e3d9b5e149c150f88d9714574f1a7cbd89fe2817158a952674bf/propcache-0.3.2-cp313-cp313t-win_amd64.whl", hash = "sha256:9704bedf6e7cbe3c65eca4379a9b53ee6a83749f047808cbb5044d40d7d72198", size = 44857, upload_time = "2025-06-09T22:55:39.687Z" }, + { url = "https://files.pythonhosted.org/packages/cc/35/cc0aaecf278bb4575b8555f2b137de5ab821595ddae9da9d3cd1da4072c7/propcache-0.3.2-py3-none-any.whl", hash = "sha256:98f1ec44fb675f5052cccc8e609c46ed23a35a1cfd18545ad4e29002d858a43f", size = 12663, upload_time = "2025-06-09T22:56:04.484Z" }, +] + +[[package]] +name = "pycparser" +version = "2.23" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fe/cf/d2d3b9f5699fb1e4615c8e32ff220203e43b248e1dfcc6736ad9057731ca/pycparser-2.23.tar.gz", hash = "sha256:78816d4f24add8f10a06d6f05b4d424ad9e96cfebf68a4ddc99c65c0720d00c2", size = 173734, upload_time = "2025-09-09T13:23:47.91Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/e3/59cd50310fc9b59512193629e1984c1f95e5c8ae6e5d8c69532ccc65a7fe/pycparser-2.23-py3-none-any.whl", hash = "sha256:e5c6e8d3fbad53479cab09ac03729e0a9faf2bee3db8208a550daf5af81a5934", size = 118140, upload_time = "2025-09-09T13:23:46.651Z" }, +] + +[[package]] +name = "pycryptodomex" +version = "3.23.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c9/85/e24bf90972a30b0fcd16c73009add1d7d7cd9140c2498a68252028899e41/pycryptodomex-3.23.0.tar.gz", hash = "sha256:71909758f010c82bc99b0abf4ea12012c98962fbf0583c2164f8b84533c2e4da", size = 4922157, upload_time = "2025-05-17T17:23:41.434Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2e/00/10edb04777069a42490a38c137099d4b17ba6e36a4e6e28bdc7470e9e853/pycryptodomex-3.23.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:7b37e08e3871efe2187bc1fd9320cc81d87caf19816c648f24443483005ff886", size = 2498764, upload_time = "2025-05-17T17:22:21.453Z" }, + { url = "https://files.pythonhosted.org/packages/6b/3f/2872a9c2d3a27eac094f9ceaa5a8a483b774ae69018040ea3240d5b11154/pycryptodomex-3.23.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:91979028227543010d7b2ba2471cf1d1e398b3f183cb105ac584df0c36dac28d", size = 1643012, upload_time = "2025-05-17T17:22:23.702Z" }, + { url = "https://files.pythonhosted.org/packages/70/af/774c2e2b4f6570fbf6a4972161adbb183aeeaa1863bde31e8706f123bf92/pycryptodomex-3.23.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b8962204c47464d5c1c4038abeadd4514a133b28748bcd9fa5b6d62e3cec6fa", size = 2187643, upload_time = "2025-05-17T17:22:26.37Z" }, + { url = "https://files.pythonhosted.org/packages/de/a3/71065b24cb889d537954cedc3ae5466af00a2cabcff8e29b73be047e9a19/pycryptodomex-3.23.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a33986a0066860f7fcf7c7bd2bc804fa90e434183645595ae7b33d01f3c91ed8", size = 2273762, upload_time = "2025-05-17T17:22:28.313Z" }, + { url = "https://files.pythonhosted.org/packages/c9/0b/ff6f43b7fbef4d302c8b981fe58467b8871902cdc3eb28896b52421422cc/pycryptodomex-3.23.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7947ab8d589e3178da3d7cdeabe14f841b391e17046954f2fbcd941705762b5", size = 2313012, upload_time = "2025-05-17T17:22:30.57Z" }, + { url = "https://files.pythonhosted.org/packages/02/de/9d4772c0506ab6da10b41159493657105d3f8bb5c53615d19452afc6b315/pycryptodomex-3.23.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c25e30a20e1b426e1f0fa00131c516f16e474204eee1139d1603e132acffc314", size = 2186856, upload_time = "2025-05-17T17:22:32.819Z" }, + { url = "https://files.pythonhosted.org/packages/28/ad/8b30efcd6341707a234e5eba5493700a17852ca1ac7a75daa7945fcf6427/pycryptodomex-3.23.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:da4fa650cef02db88c2b98acc5434461e027dce0ae8c22dd5a69013eaf510006", size = 2347523, upload_time = "2025-05-17T17:22:35.386Z" }, + { url = "https://files.pythonhosted.org/packages/0f/02/16868e9f655b7670dbb0ac4f2844145cbc42251f916fc35c414ad2359849/pycryptodomex-3.23.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:58b851b9effd0d072d4ca2e4542bf2a4abcf13c82a29fd2c93ce27ee2a2e9462", size = 2272825, upload_time = "2025-05-17T17:22:37.632Z" }, + { url = "https://files.pythonhosted.org/packages/ca/18/4ca89ac737230b52ac8ffaca42f9c6f1fd07c81a6cd821e91af79db60632/pycryptodomex-3.23.0-cp313-cp313t-win32.whl", hash = "sha256:a9d446e844f08299236780f2efa9898c818fe7e02f17263866b8550c7d5fb328", size = 1772078, upload_time = "2025-05-17T17:22:40Z" }, + { url = "https://files.pythonhosted.org/packages/73/34/13e01c322db027682e00986873eca803f11c56ade9ba5bbf3225841ea2d4/pycryptodomex-3.23.0-cp313-cp313t-win_amd64.whl", hash = "sha256:bc65bdd9fc8de7a35a74cab1c898cab391a4add33a8fe740bda00f5976ca4708", size = 1803656, upload_time = "2025-05-17T17:22:42.139Z" }, + { url = "https://files.pythonhosted.org/packages/54/68/9504c8796b1805d58f4425002bcca20f12880e6fa4dc2fc9a668705c7a08/pycryptodomex-3.23.0-cp313-cp313t-win_arm64.whl", hash = "sha256:c885da45e70139464f082018ac527fdaad26f1657a99ee13eecdce0f0ca24ab4", size = 1707172, upload_time = "2025-05-17T17:22:44.704Z" }, + { url = "https://files.pythonhosted.org/packages/dd/9c/1a8f35daa39784ed8adf93a694e7e5dc15c23c741bbda06e1d45f8979e9e/pycryptodomex-3.23.0-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:06698f957fe1ab229a99ba2defeeae1c09af185baa909a31a5d1f9d42b1aaed6", size = 2499240, upload_time = "2025-05-17T17:22:46.953Z" }, + { url = "https://files.pythonhosted.org/packages/7a/62/f5221a191a97157d240cf6643747558759126c76ee92f29a3f4aee3197a5/pycryptodomex-3.23.0-cp37-abi3-macosx_10_9_x86_64.whl", hash = "sha256:b2c2537863eccef2d41061e82a881dcabb04944c5c06c5aa7110b577cc487545", size = 1644042, upload_time = "2025-05-17T17:22:49.098Z" }, + { url = "https://files.pythonhosted.org/packages/8c/fd/5a054543c8988d4ed7b612721d7e78a4b9bf36bc3c5ad45ef45c22d0060e/pycryptodomex-3.23.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:43c446e2ba8df8889e0e16f02211c25b4934898384c1ec1ec04d7889c0333587", size = 2186227, upload_time = "2025-05-17T17:22:51.139Z" }, + { url = "https://files.pythonhosted.org/packages/c8/a9/8862616a85cf450d2822dbd4fff1fcaba90877907a6ff5bc2672cafe42f8/pycryptodomex-3.23.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f489c4765093fb60e2edafdf223397bc716491b2b69fe74367b70d6999257a5c", size = 2272578, upload_time = "2025-05-17T17:22:53.676Z" }, + { url = "https://files.pythonhosted.org/packages/46/9f/bda9c49a7c1842820de674ab36c79f4fbeeee03f8ff0e4f3546c3889076b/pycryptodomex-3.23.0-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bdc69d0d3d989a1029df0eed67cc5e8e5d968f3724f4519bd03e0ec68df7543c", size = 2312166, upload_time = "2025-05-17T17:22:56.585Z" }, + { url = "https://files.pythonhosted.org/packages/03/cc/870b9bf8ca92866ca0186534801cf8d20554ad2a76ca959538041b7a7cf4/pycryptodomex-3.23.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:6bbcb1dd0f646484939e142462d9e532482bc74475cecf9c4903d4e1cd21f003", size = 2185467, upload_time = "2025-05-17T17:22:59.237Z" }, + { url = "https://files.pythonhosted.org/packages/96/e3/ce9348236d8e669fea5dd82a90e86be48b9c341210f44e25443162aba187/pycryptodomex-3.23.0-cp37-abi3-musllinux_1_2_i686.whl", hash = "sha256:8a4fcd42ccb04c31268d1efeecfccfd1249612b4de6374205376b8f280321744", size = 2346104, upload_time = "2025-05-17T17:23:02.112Z" }, + { url = "https://files.pythonhosted.org/packages/a5/e9/e869bcee87beb89040263c416a8a50204f7f7a83ac11897646c9e71e0daf/pycryptodomex-3.23.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:55ccbe27f049743a4caf4f4221b166560d3438d0b1e5ab929e07ae1702a4d6fd", size = 2271038, upload_time = "2025-05-17T17:23:04.872Z" }, + { url = "https://files.pythonhosted.org/packages/8d/67/09ee8500dd22614af5fbaa51a4aee6e342b5fa8aecf0a6cb9cbf52fa6d45/pycryptodomex-3.23.0-cp37-abi3-win32.whl", hash = "sha256:189afbc87f0b9f158386bf051f720e20fa6145975f1e76369303d0f31d1a8d7c", size = 1771969, upload_time = "2025-05-17T17:23:07.115Z" }, + { url = "https://files.pythonhosted.org/packages/69/96/11f36f71a865dd6df03716d33bd07a67e9d20f6b8d39820470b766af323c/pycryptodomex-3.23.0-cp37-abi3-win_amd64.whl", hash = "sha256:52e5ca58c3a0b0bd5e100a9fbc8015059b05cffc6c66ce9d98b4b45e023443b9", size = 1803124, upload_time = "2025-05-17T17:23:09.267Z" }, + { url = "https://files.pythonhosted.org/packages/f9/93/45c1cdcbeb182ccd2e144c693eaa097763b08b38cded279f0053ed53c553/pycryptodomex-3.23.0-cp37-abi3-win_arm64.whl", hash = "sha256:02d87b80778c171445d67e23d1caef279bf4b25c3597050ccd2e13970b57fd51", size = 1707161, upload_time = "2025-05-17T17:23:11.414Z" }, +] + +[[package]] +name = "pydantic" +version = "2.11.9" +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/ff/5d/09a551ba512d7ca404d785072700d3f6727a02f6f3c24ecfd081c7cf0aa8/pydantic-2.11.9.tar.gz", hash = "sha256:6b8ffda597a14812a7975c90b82a8a2e777d9257aba3453f973acd3c032a18e2", size = 788495, upload_time = "2025-09-13T11:26:39.325Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3e/d3/108f2006987c58e76691d5ae5d200dd3e0f532cb4e5fa3560751c3a1feba/pydantic-2.11.9-py3-none-any.whl", hash = "sha256:c42dd626f5cfc1c6950ce6205ea58c93efa406da65f479dcb4029d5934857da2", size = 444855, upload_time = "2025-09-13T11:26:36.909Z" }, +] + +[package.optional-dependencies] +email = [ + { name = "email-validator" }, +] + +[[package]] +name = "pydantic-core" +version = "2.33.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ad/88/5f2260bdfae97aabf98f1778d43f69574390ad787afb646292a638c923d4/pydantic_core-2.33.2.tar.gz", hash = "sha256:7cb8bc3605c29176e1b105350d2e6474142d7c1bd1d9327c4a9bdb46bf827acc", size = 435195, upload_time = "2025-04-23T18:33:52.104Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/8a/2b41c97f554ec8c71f2a8a5f85cb56a8b0956addfe8b0efb5b3d77e8bdc3/pydantic_core-2.33.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a7ec89dc587667f22b6a0b6579c249fca9026ce7c333fc142ba42411fa243cdc", size = 2009000, upload_time = "2025-04-23T18:31:25.863Z" }, + { url = "https://files.pythonhosted.org/packages/a1/02/6224312aacb3c8ecbaa959897af57181fb6cf3a3d7917fd44d0f2917e6f2/pydantic_core-2.33.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3c6db6e52c6d70aa0d00d45cdb9b40f0433b96380071ea80b09277dba021ddf7", size = 1847996, upload_time = "2025-04-23T18:31:27.341Z" }, + { url = "https://files.pythonhosted.org/packages/d6/46/6dcdf084a523dbe0a0be59d054734b86a981726f221f4562aed313dbcb49/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e61206137cbc65e6d5256e1166f88331d3b6238e082d9f74613b9b765fb9025", size = 1880957, upload_time = "2025-04-23T18:31:28.956Z" }, + { url = "https://files.pythonhosted.org/packages/ec/6b/1ec2c03837ac00886ba8160ce041ce4e325b41d06a034adbef11339ae422/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eb8c529b2819c37140eb51b914153063d27ed88e3bdc31b71198a198e921e011", size = 1964199, upload_time = "2025-04-23T18:31:31.025Z" }, + { url = "https://files.pythonhosted.org/packages/2d/1d/6bf34d6adb9debd9136bd197ca72642203ce9aaaa85cfcbfcf20f9696e83/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c52b02ad8b4e2cf14ca7b3d918f3eb0ee91e63b3167c32591e57c4317e134f8f", size = 2120296, upload_time = "2025-04-23T18:31:32.514Z" }, + { url = "https://files.pythonhosted.org/packages/e0/94/2bd0aaf5a591e974b32a9f7123f16637776c304471a0ab33cf263cf5591a/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:96081f1605125ba0855dfda83f6f3df5ec90c61195421ba72223de35ccfb2f88", size = 2676109, upload_time = "2025-04-23T18:31:33.958Z" }, + { url = "https://files.pythonhosted.org/packages/f9/41/4b043778cf9c4285d59742281a769eac371b9e47e35f98ad321349cc5d61/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f57a69461af2a5fa6e6bbd7a5f60d3b7e6cebb687f55106933188e79ad155c1", size = 2002028, upload_time = "2025-04-23T18:31:39.095Z" }, + { url = "https://files.pythonhosted.org/packages/cb/d5/7bb781bf2748ce3d03af04d5c969fa1308880e1dca35a9bd94e1a96a922e/pydantic_core-2.33.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:572c7e6c8bb4774d2ac88929e3d1f12bc45714ae5ee6d9a788a9fb35e60bb04b", size = 2100044, upload_time = "2025-04-23T18:31:41.034Z" }, + { url = "https://files.pythonhosted.org/packages/fe/36/def5e53e1eb0ad896785702a5bbfd25eed546cdcf4087ad285021a90ed53/pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:db4b41f9bd95fbe5acd76d89920336ba96f03e149097365afe1cb092fceb89a1", size = 2058881, upload_time = "2025-04-23T18:31:42.757Z" }, + { url = "https://files.pythonhosted.org/packages/01/6c/57f8d70b2ee57fc3dc8b9610315949837fa8c11d86927b9bb044f8705419/pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:fa854f5cf7e33842a892e5c73f45327760bc7bc516339fda888c75ae60edaeb6", size = 2227034, upload_time = "2025-04-23T18:31:44.304Z" }, + { url = "https://files.pythonhosted.org/packages/27/b9/9c17f0396a82b3d5cbea4c24d742083422639e7bb1d5bf600e12cb176a13/pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:5f483cfb75ff703095c59e365360cb73e00185e01aaea067cd19acffd2ab20ea", size = 2234187, upload_time = "2025-04-23T18:31:45.891Z" }, + { url = "https://files.pythonhosted.org/packages/b0/6a/adf5734ffd52bf86d865093ad70b2ce543415e0e356f6cacabbc0d9ad910/pydantic_core-2.33.2-cp312-cp312-win32.whl", hash = "sha256:9cb1da0f5a471435a7bc7e439b8a728e8b61e59784b2af70d7c169f8dd8ae290", size = 1892628, upload_time = "2025-04-23T18:31:47.819Z" }, + { url = "https://files.pythonhosted.org/packages/43/e4/5479fecb3606c1368d496a825d8411e126133c41224c1e7238be58b87d7e/pydantic_core-2.33.2-cp312-cp312-win_amd64.whl", hash = "sha256:f941635f2a3d96b2973e867144fde513665c87f13fe0e193c158ac51bfaaa7b2", size = 1955866, upload_time = "2025-04-23T18:31:49.635Z" }, + { url = "https://files.pythonhosted.org/packages/0d/24/8b11e8b3e2be9dd82df4b11408a67c61bb4dc4f8e11b5b0fc888b38118b5/pydantic_core-2.33.2-cp312-cp312-win_arm64.whl", hash = "sha256:cca3868ddfaccfbc4bfb1d608e2ccaaebe0ae628e1416aeb9c4d88c001bb45ab", size = 1888894, upload_time = "2025-04-23T18:31:51.609Z" }, + { url = "https://files.pythonhosted.org/packages/46/8c/99040727b41f56616573a28771b1bfa08a3d3fe74d3d513f01251f79f172/pydantic_core-2.33.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:1082dd3e2d7109ad8b7da48e1d4710c8d06c253cbc4a27c1cff4fbcaa97a9e3f", size = 2015688, upload_time = "2025-04-23T18:31:53.175Z" }, + { url = "https://files.pythonhosted.org/packages/3a/cc/5999d1eb705a6cefc31f0b4a90e9f7fc400539b1a1030529700cc1b51838/pydantic_core-2.33.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f517ca031dfc037a9c07e748cefd8d96235088b83b4f4ba8939105d20fa1dcd6", size = 1844808, upload_time = "2025-04-23T18:31:54.79Z" }, + { url = "https://files.pythonhosted.org/packages/6f/5e/a0a7b8885c98889a18b6e376f344da1ef323d270b44edf8174d6bce4d622/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a9f2c9dd19656823cb8250b0724ee9c60a82f3cdf68a080979d13092a3b0fef", size = 1885580, upload_time = "2025-04-23T18:31:57.393Z" }, + { url = "https://files.pythonhosted.org/packages/3b/2a/953581f343c7d11a304581156618c3f592435523dd9d79865903272c256a/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2b0a451c263b01acebe51895bfb0e1cc842a5c666efe06cdf13846c7418caa9a", size = 1973859, upload_time = "2025-04-23T18:31:59.065Z" }, + { url = "https://files.pythonhosted.org/packages/e6/55/f1a813904771c03a3f97f676c62cca0c0a4138654107c1b61f19c644868b/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ea40a64d23faa25e62a70ad163571c0b342b8bf66d5fa612ac0dec4f069d916", size = 2120810, upload_time = "2025-04-23T18:32:00.78Z" }, + { url = "https://files.pythonhosted.org/packages/aa/c3/053389835a996e18853ba107a63caae0b9deb4a276c6b472931ea9ae6e48/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0fb2d542b4d66f9470e8065c5469ec676978d625a8b7a363f07d9a501a9cb36a", size = 2676498, upload_time = "2025-04-23T18:32:02.418Z" }, + { url = "https://files.pythonhosted.org/packages/eb/3c/f4abd740877a35abade05e437245b192f9d0ffb48bbbbd708df33d3cda37/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdac5d6ffa1b5a83bca06ffe7583f5576555e6c8b3a91fbd25ea7780f825f7d", size = 2000611, upload_time = "2025-04-23T18:32:04.152Z" }, + { url = "https://files.pythonhosted.org/packages/59/a7/63ef2fed1837d1121a894d0ce88439fe3e3b3e48c7543b2a4479eb99c2bd/pydantic_core-2.33.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:04a1a413977ab517154eebb2d326da71638271477d6ad87a769102f7c2488c56", size = 2107924, upload_time = "2025-04-23T18:32:06.129Z" }, + { url = "https://files.pythonhosted.org/packages/04/8f/2551964ef045669801675f1cfc3b0d74147f4901c3ffa42be2ddb1f0efc4/pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c8e7af2f4e0194c22b5b37205bfb293d166a7344a5b0d0eaccebc376546d77d5", size = 2063196, upload_time = "2025-04-23T18:32:08.178Z" }, + { url = "https://files.pythonhosted.org/packages/26/bd/d9602777e77fc6dbb0c7db9ad356e9a985825547dce5ad1d30ee04903918/pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:5c92edd15cd58b3c2d34873597a1e20f13094f59cf88068adb18947df5455b4e", size = 2236389, upload_time = "2025-04-23T18:32:10.242Z" }, + { url = "https://files.pythonhosted.org/packages/42/db/0e950daa7e2230423ab342ae918a794964b053bec24ba8af013fc7c94846/pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:65132b7b4a1c0beded5e057324b7e16e10910c106d43675d9bd87d4f38dde162", size = 2239223, upload_time = "2025-04-23T18:32:12.382Z" }, + { url = "https://files.pythonhosted.org/packages/58/4d/4f937099c545a8a17eb52cb67fe0447fd9a373b348ccfa9a87f141eeb00f/pydantic_core-2.33.2-cp313-cp313-win32.whl", hash = "sha256:52fb90784e0a242bb96ec53f42196a17278855b0f31ac7c3cc6f5c1ec4811849", size = 1900473, upload_time = "2025-04-23T18:32:14.034Z" }, + { url = "https://files.pythonhosted.org/packages/a0/75/4a0a9bac998d78d889def5e4ef2b065acba8cae8c93696906c3a91f310ca/pydantic_core-2.33.2-cp313-cp313-win_amd64.whl", hash = "sha256:c083a3bdd5a93dfe480f1125926afcdbf2917ae714bdb80b36d34318b2bec5d9", size = 1955269, upload_time = "2025-04-23T18:32:15.783Z" }, + { url = "https://files.pythonhosted.org/packages/f9/86/1beda0576969592f1497b4ce8e7bc8cbdf614c352426271b1b10d5f0aa64/pydantic_core-2.33.2-cp313-cp313-win_arm64.whl", hash = "sha256:e80b087132752f6b3d714f041ccf74403799d3b23a72722ea2e6ba2e892555b9", size = 1893921, upload_time = "2025-04-23T18:32:18.473Z" }, + { url = "https://files.pythonhosted.org/packages/a4/7d/e09391c2eebeab681df2b74bfe6c43422fffede8dc74187b2b0bf6fd7571/pydantic_core-2.33.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:61c18fba8e5e9db3ab908620af374db0ac1baa69f0f32df4f61ae23f15e586ac", size = 1806162, upload_time = "2025-04-23T18:32:20.188Z" }, + { url = "https://files.pythonhosted.org/packages/f1/3d/847b6b1fed9f8ed3bb95a9ad04fbd0b212e832d4f0f50ff4d9ee5a9f15cf/pydantic_core-2.33.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95237e53bb015f67b63c91af7518a62a8660376a6a0db19b89acc77a4d6199f5", size = 1981560, upload_time = "2025-04-23T18:32:22.354Z" }, + { url = "https://files.pythonhosted.org/packages/6f/9a/e73262f6c6656262b5fdd723ad90f518f579b7bc8622e43a942eec53c938/pydantic_core-2.33.2-cp313-cp313t-win_amd64.whl", hash = "sha256:c2fc0a768ef76c15ab9238afa6da7f69895bb5d1ee83aeea2e3509af4472d0b9", size = 1935777, upload_time = "2025-04-23T18:32:25.088Z" }, +] + +[[package]] +name = "pynwb" +version = "3.1.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "h5py" }, + { name = "hdmf" }, + { name = "numpy" }, + { name = "pandas" }, + { name = "platformdirs" }, + { name = "python-dateutil" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0a/24/4760bc06c17f7139b69edcafb40b3f28563c9c68a2d3ac5d1303575e5015/pynwb-3.1.2.tar.gz", hash = "sha256:4260be763a91c91c56f4bcbe4f782697f19c32938ecead708be0e3b60e2cdb81", size = 35672780, upload_time = "2025-08-13T20:47:34.647Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ce/da/dd488531f94ef5b5eac0b6e2ad845742895655ae82fd7fdf465f3399ad45/pynwb-3.1.2-py3-none-any.whl", hash = "sha256:90c3091937064c86c43933c49a85070fc67f2e7eec0b392ded2caa2e42195bd2", size = 1395141, upload_time = "2025-08-13T20:47:32.577Z" }, +] + +[[package]] +name = "pyout" +version = "0.8.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "blessed", marker = "sys_platform != 'win32'" }, + { name = "jsonschema" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a1/0e/87f3d9aef4211fe7e88ddabf01794bd15c9051cae44633bcf507bdd3837d/pyout-0.8.1.tar.gz", hash = "sha256:57b0e96a9beb2e20336bd5a265e369915e1c23f50048a7d448b3fab5d076d1d1", size = 46887, upload_time = "2025-02-22T14:58:09.616Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/46/bb/cf48ce5ba1481d568c5fb2b74ecc55e64207a7ee6444a3d0cb04f0410020/pyout-0.8.1-py3-none-any.whl", hash = "sha256:31708f9a1ea0009e92371c1e045541a1b01e22ec006e1cb2f3407ec99c036a10", size = 53080, upload_time = "2025-02-22T14:58:08.032Z" }, +] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +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, 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, upload_time = "2024-03-01T18:36:18.57Z" }, +] + +[[package]] +name = "pytz" +version = "2025.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f8/bf/abbd3cdfb8fbc7fb3d4d38d320f2441b1e7cbe29be4f23797b4a2b5d8aac/pytz-2025.2.tar.gz", hash = "sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3", size = 320884, upload_time = "2025-03-25T02:25:00.538Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/81/c4/34e93fe5f5429d7570ec1fa436f1986fb1f00c3e0f43a589fe2bbcd22c3f/pytz-2025.2-py2.py3-none-any.whl", hash = "sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00", size = 509225, upload_time = "2025-03-25T02:24:58.468Z" }, +] + +[[package]] +name = "pywin32-ctypes" +version = "0.2.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/85/9f/01a1a99704853cb63f253eea009390c88e7131c67e66a0a02099a8c917cb/pywin32-ctypes-0.2.3.tar.gz", hash = "sha256:d162dc04946d704503b2edc4d55f3dba5c1d539ead017afa00142c38b9885755", size = 29471, upload_time = "2024-08-14T10:15:34.626Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/de/3d/8161f7711c017e01ac9f008dfddd9410dff3674334c233bde66e7ba65bbf/pywin32_ctypes-0.2.3-py3-none-any.whl", hash = "sha256:8a1513379d709975552d202d942d9837758905c8d01eb82b8bcc30918929e7b8", size = 30756, upload_time = "2024-08-14T10:15:33.187Z" }, +] + +[[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, 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 = "referencing" +version = "0.36.2" +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/2f/db/98b5c277be99dd18bfd91dd04e1b759cad18d1a338188c936e92f921c7e2/referencing-0.36.2.tar.gz", hash = "sha256:df2e89862cd09deabbdba16944cc3f10feb6b3e6f18e902f7cc25609a34775aa", size = 74744, upload_time = "2025-01-25T08:48:16.138Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c1/b1/3baf80dc6d2b7bc27a95a67752d0208e410351e3feb4eb78de5f77454d8d/referencing-0.36.2-py3-none-any.whl", hash = "sha256:e8699adbbf8b5c7de96d8ffa0eb5c158b3beafce084968e2ea8bb08c6794dcd0", size = 26775, upload_time = "2025-01-25T08:48:14.241Z" }, +] + +[[package]] +name = "remfile" +version = "0.1.13" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "h5py" }, + { name = "numpy" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7c/d1/e9ae25f762f188d912440c9f595c94e3148e9f6994bb43b1794a199f5610/remfile-0.1.13.tar.gz", hash = "sha256:230795a0f903c2e0650dedbef14167ff714d64bb6ce22e9c5d835a9afbdfff55", size = 13267, upload_time = "2024-05-29T18:14:04.448Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3e/33/485cb65a071e2e15b86693e25467ada58164f00ec076b8e24191671004cb/remfile-0.1.13-py3-none-any.whl", hash = "sha256:1e87dacc76a4db9fbbcb7ccaaa275e6b428b7d4528d39b88f8d790e17d1b50c3", size = 11916, upload_time = "2024-05-29T18:14:02.876Z" }, +] + +[[package]] +name = "requests" +version = "2.32.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf", size = 134517, upload_time = "2025-08-18T20:46:02.573Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6", size = 64738, upload_time = "2025-08-18T20:46:00.542Z" }, +] + +[[package]] +name = "rfc3339-validator" +version = "0.1.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/28/ea/a9387748e2d111c3c2b275ba970b735e04e15cdb1eb30693b6b5708c4dbd/rfc3339_validator-0.1.4.tar.gz", hash = "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b", size = 5513, upload_time = "2021-05-12T16:37:54.178Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7b/44/4e421b96b67b2daff264473f7465db72fbdf36a07e05494f50300cc7b0c6/rfc3339_validator-0.1.4-py2.py3-none-any.whl", hash = "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa", size = 3490, upload_time = "2021-05-12T16:37:52.536Z" }, +] + +[[package]] +name = "rfc3987" +version = "1.3.8" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/14/bb/f1395c4b62f251a1cb503ff884500ebd248eed593f41b469f89caa3547bd/rfc3987-1.3.8.tar.gz", hash = "sha256:d3c4d257a560d544e9826b38bc81db676890c79ab9d7ac92b39c7a253d5ca733", size = 20700, upload_time = "2018-07-29T17:23:47.954Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/65/d4/f7407c3d15d5ac779c3dd34fbbc6ea2090f77bd7dd12f207ccf881551208/rfc3987-1.3.8-py2.py3-none-any.whl", hash = "sha256:10702b1e51e5658843460b189b185c0366d2cf4cff716f13111b0ea9fd2dce53", size = 13377, upload_time = "2018-07-29T17:23:45.313Z" }, +] + +[[package]] +name = "rpds-py" +version = "0.27.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e9/dd/2c0cbe774744272b0ae725f44032c77bdcab6e8bcf544bffa3b6e70c8dba/rpds_py-0.27.1.tar.gz", hash = "sha256:26a1c73171d10b7acccbded82bf6a586ab8203601e565badc74bbbf8bc5a10f8", size = 27479, upload_time = "2025-08-27T12:16:36.024Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bd/fe/38de28dee5df58b8198c743fe2bea0c785c6d40941b9950bac4cdb71a014/rpds_py-0.27.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:ae2775c1973e3c30316892737b91f9283f9908e3cc7625b9331271eaaed7dc90", size = 361887, upload_time = "2025-08-27T12:13:10.233Z" }, + { url = "https://files.pythonhosted.org/packages/7c/9a/4b6c7eedc7dd90986bf0fab6ea2a091ec11c01b15f8ba0a14d3f80450468/rpds_py-0.27.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2643400120f55c8a96f7c9d858f7be0c88d383cd4653ae2cf0d0c88f668073e5", size = 345795, upload_time = "2025-08-27T12:13:11.65Z" }, + { url = "https://files.pythonhosted.org/packages/6f/0e/e650e1b81922847a09cca820237b0edee69416a01268b7754d506ade11ad/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:16323f674c089b0360674a4abd28d5042947d54ba620f72514d69be4ff64845e", size = 385121, upload_time = "2025-08-27T12:13:13.008Z" }, + { url = "https://files.pythonhosted.org/packages/1b/ea/b306067a712988e2bff00dcc7c8f31d26c29b6d5931b461aa4b60a013e33/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9a1f4814b65eacac94a00fc9a526e3fdafd78e439469644032032d0d63de4881", size = 398976, upload_time = "2025-08-27T12:13:14.368Z" }, + { url = "https://files.pythonhosted.org/packages/2c/0a/26dc43c8840cb8fe239fe12dbc8d8de40f2365e838f3d395835dde72f0e5/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7ba32c16b064267b22f1850a34051121d423b6f7338a12b9459550eb2096e7ec", size = 525953, upload_time = "2025-08-27T12:13:15.774Z" }, + { url = "https://files.pythonhosted.org/packages/22/14/c85e8127b573aaf3a0cbd7fbb8c9c99e735a4a02180c84da2a463b766e9e/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5c20f33fd10485b80f65e800bbe5f6785af510b9f4056c5a3c612ebc83ba6cb", size = 407915, upload_time = "2025-08-27T12:13:17.379Z" }, + { url = "https://files.pythonhosted.org/packages/ed/7b/8f4fee9ba1fb5ec856eb22d725a4efa3deb47f769597c809e03578b0f9d9/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:466bfe65bd932da36ff279ddd92de56b042f2266d752719beb97b08526268ec5", size = 386883, upload_time = "2025-08-27T12:13:18.704Z" }, + { url = "https://files.pythonhosted.org/packages/86/47/28fa6d60f8b74fcdceba81b272f8d9836ac0340570f68f5df6b41838547b/rpds_py-0.27.1-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:41e532bbdcb57c92ba3be62c42e9f096431b4cf478da9bc3bc6ce5c38ab7ba7a", size = 405699, upload_time = "2025-08-27T12:13:20.089Z" }, + { url = "https://files.pythonhosted.org/packages/d0/fd/c5987b5e054548df56953a21fe2ebed51fc1ec7c8f24fd41c067b68c4a0a/rpds_py-0.27.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f149826d742b406579466283769a8ea448eed82a789af0ed17b0cd5770433444", size = 423713, upload_time = "2025-08-27T12:13:21.436Z" }, + { url = "https://files.pythonhosted.org/packages/ac/ba/3c4978b54a73ed19a7d74531be37a8bcc542d917c770e14d372b8daea186/rpds_py-0.27.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:80c60cfb5310677bd67cb1e85a1e8eb52e12529545441b43e6f14d90b878775a", size = 562324, upload_time = "2025-08-27T12:13:22.789Z" }, + { url = "https://files.pythonhosted.org/packages/b5/6c/6943a91768fec16db09a42b08644b960cff540c66aab89b74be6d4a144ba/rpds_py-0.27.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:7ee6521b9baf06085f62ba9c7a3e5becffbc32480d2f1b351559c001c38ce4c1", size = 593646, upload_time = "2025-08-27T12:13:24.122Z" }, + { url = "https://files.pythonhosted.org/packages/11/73/9d7a8f4be5f4396f011a6bb7a19fe26303a0dac9064462f5651ced2f572f/rpds_py-0.27.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a512c8263249a9d68cac08b05dd59d2b3f2061d99b322813cbcc14c3c7421998", size = 558137, upload_time = "2025-08-27T12:13:25.557Z" }, + { url = "https://files.pythonhosted.org/packages/6e/96/6772cbfa0e2485bcceef8071de7821f81aeac8bb45fbfd5542a3e8108165/rpds_py-0.27.1-cp312-cp312-win32.whl", hash = "sha256:819064fa048ba01b6dadc5116f3ac48610435ac9a0058bbde98e569f9e785c39", size = 221343, upload_time = "2025-08-27T12:13:26.967Z" }, + { url = "https://files.pythonhosted.org/packages/67/b6/c82f0faa9af1c6a64669f73a17ee0eeef25aff30bb9a1c318509efe45d84/rpds_py-0.27.1-cp312-cp312-win_amd64.whl", hash = "sha256:d9199717881f13c32c4046a15f024971a3b78ad4ea029e8da6b86e5aa9cf4594", size = 232497, upload_time = "2025-08-27T12:13:28.326Z" }, + { url = "https://files.pythonhosted.org/packages/e1/96/2817b44bd2ed11aebacc9251da03689d56109b9aba5e311297b6902136e2/rpds_py-0.27.1-cp312-cp312-win_arm64.whl", hash = "sha256:33aa65b97826a0e885ef6e278fbd934e98cdcfed80b63946025f01e2f5b29502", size = 222790, upload_time = "2025-08-27T12:13:29.71Z" }, + { url = "https://files.pythonhosted.org/packages/cc/77/610aeee8d41e39080c7e14afa5387138e3c9fa9756ab893d09d99e7d8e98/rpds_py-0.27.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:e4b9fcfbc021633863a37e92571d6f91851fa656f0180246e84cbd8b3f6b329b", size = 361741, upload_time = "2025-08-27T12:13:31.039Z" }, + { url = "https://files.pythonhosted.org/packages/3a/fc/c43765f201c6a1c60be2043cbdb664013def52460a4c7adace89d6682bf4/rpds_py-0.27.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1441811a96eadca93c517d08df75de45e5ffe68aa3089924f963c782c4b898cf", size = 345574, upload_time = "2025-08-27T12:13:32.902Z" }, + { url = "https://files.pythonhosted.org/packages/20/42/ee2b2ca114294cd9847d0ef9c26d2b0851b2e7e00bf14cc4c0b581df0fc3/rpds_py-0.27.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55266dafa22e672f5a4f65019015f90336ed31c6383bd53f5e7826d21a0e0b83", size = 385051, upload_time = "2025-08-27T12:13:34.228Z" }, + { url = "https://files.pythonhosted.org/packages/fd/e8/1e430fe311e4799e02e2d1af7c765f024e95e17d651612425b226705f910/rpds_py-0.27.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d78827d7ac08627ea2c8e02c9e5b41180ea5ea1f747e9db0915e3adf36b62dcf", size = 398395, upload_time = "2025-08-27T12:13:36.132Z" }, + { url = "https://files.pythonhosted.org/packages/82/95/9dc227d441ff2670651c27a739acb2535ccaf8b351a88d78c088965e5996/rpds_py-0.27.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae92443798a40a92dc5f0b01d8a7c93adde0c4dc965310a29ae7c64d72b9fad2", size = 524334, upload_time = "2025-08-27T12:13:37.562Z" }, + { url = "https://files.pythonhosted.org/packages/87/01/a670c232f401d9ad461d9a332aa4080cd3cb1d1df18213dbd0d2a6a7ab51/rpds_py-0.27.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c46c9dd2403b66a2a3b9720ec4b74d4ab49d4fabf9f03dfdce2d42af913fe8d0", size = 407691, upload_time = "2025-08-27T12:13:38.94Z" }, + { url = "https://files.pythonhosted.org/packages/03/36/0a14aebbaa26fe7fab4780c76f2239e76cc95a0090bdb25e31d95c492fcd/rpds_py-0.27.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2efe4eb1d01b7f5f1939f4ef30ecea6c6b3521eec451fb93191bf84b2a522418", size = 386868, upload_time = "2025-08-27T12:13:40.192Z" }, + { url = "https://files.pythonhosted.org/packages/3b/03/8c897fb8b5347ff6c1cc31239b9611c5bf79d78c984430887a353e1409a1/rpds_py-0.27.1-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:15d3b4d83582d10c601f481eca29c3f138d44c92187d197aff663a269197c02d", size = 405469, upload_time = "2025-08-27T12:13:41.496Z" }, + { url = "https://files.pythonhosted.org/packages/da/07/88c60edc2df74850d496d78a1fdcdc7b54360a7f610a4d50008309d41b94/rpds_py-0.27.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4ed2e16abbc982a169d30d1a420274a709949e2cbdef119fe2ec9d870b42f274", size = 422125, upload_time = "2025-08-27T12:13:42.802Z" }, + { url = "https://files.pythonhosted.org/packages/6b/86/5f4c707603e41b05f191a749984f390dabcbc467cf833769b47bf14ba04f/rpds_py-0.27.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a75f305c9b013289121ec0f1181931975df78738cdf650093e6b86d74aa7d8dd", size = 562341, upload_time = "2025-08-27T12:13:44.472Z" }, + { url = "https://files.pythonhosted.org/packages/b2/92/3c0cb2492094e3cd9baf9e49bbb7befeceb584ea0c1a8b5939dca4da12e5/rpds_py-0.27.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:67ce7620704745881a3d4b0ada80ab4d99df390838839921f99e63c474f82cf2", size = 592511, upload_time = "2025-08-27T12:13:45.898Z" }, + { url = "https://files.pythonhosted.org/packages/10/bb/82e64fbb0047c46a168faa28d0d45a7851cd0582f850b966811d30f67ad8/rpds_py-0.27.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9d992ac10eb86d9b6f369647b6a3f412fc0075cfd5d799530e84d335e440a002", size = 557736, upload_time = "2025-08-27T12:13:47.408Z" }, + { url = "https://files.pythonhosted.org/packages/00/95/3c863973d409210da7fb41958172c6b7dbe7fc34e04d3cc1f10bb85e979f/rpds_py-0.27.1-cp313-cp313-win32.whl", hash = "sha256:4f75e4bd8ab8db624e02c8e2fc4063021b58becdbe6df793a8111d9343aec1e3", size = 221462, upload_time = "2025-08-27T12:13:48.742Z" }, + { url = "https://files.pythonhosted.org/packages/ce/2c/5867b14a81dc217b56d95a9f2a40fdbc56a1ab0181b80132beeecbd4b2d6/rpds_py-0.27.1-cp313-cp313-win_amd64.whl", hash = "sha256:f9025faafc62ed0b75a53e541895ca272815bec18abe2249ff6501c8f2e12b83", size = 232034, upload_time = "2025-08-27T12:13:50.11Z" }, + { url = "https://files.pythonhosted.org/packages/c7/78/3958f3f018c01923823f1e47f1cc338e398814b92d83cd278364446fac66/rpds_py-0.27.1-cp313-cp313-win_arm64.whl", hash = "sha256:ed10dc32829e7d222b7d3b93136d25a406ba9788f6a7ebf6809092da1f4d279d", size = 222392, upload_time = "2025-08-27T12:13:52.587Z" }, + { url = "https://files.pythonhosted.org/packages/01/76/1cdf1f91aed5c3a7bf2eba1f1c4e4d6f57832d73003919a20118870ea659/rpds_py-0.27.1-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:92022bbbad0d4426e616815b16bc4127f83c9a74940e1ccf3cfe0b387aba0228", size = 358355, upload_time = "2025-08-27T12:13:54.012Z" }, + { url = "https://files.pythonhosted.org/packages/c3/6f/bf142541229374287604caf3bb2a4ae17f0a580798fd72d3b009b532db4e/rpds_py-0.27.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:47162fdab9407ec3f160805ac3e154df042e577dd53341745fc7fb3f625e6d92", size = 342138, upload_time = "2025-08-27T12:13:55.791Z" }, + { url = "https://files.pythonhosted.org/packages/1a/77/355b1c041d6be40886c44ff5e798b4e2769e497b790f0f7fd1e78d17e9a8/rpds_py-0.27.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb89bec23fddc489e5d78b550a7b773557c9ab58b7946154a10a6f7a214a48b2", size = 380247, upload_time = "2025-08-27T12:13:57.683Z" }, + { url = "https://files.pythonhosted.org/packages/d6/a4/d9cef5c3946ea271ce2243c51481971cd6e34f21925af2783dd17b26e815/rpds_py-0.27.1-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e48af21883ded2b3e9eb48cb7880ad8598b31ab752ff3be6457001d78f416723", size = 390699, upload_time = "2025-08-27T12:13:59.137Z" }, + { url = "https://files.pythonhosted.org/packages/3a/06/005106a7b8c6c1a7e91b73169e49870f4af5256119d34a361ae5240a0c1d/rpds_py-0.27.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6f5b7bd8e219ed50299e58551a410b64daafb5017d54bbe822e003856f06a802", size = 521852, upload_time = "2025-08-27T12:14:00.583Z" }, + { url = "https://files.pythonhosted.org/packages/e5/3e/50fb1dac0948e17a02eb05c24510a8fe12d5ce8561c6b7b7d1339ab7ab9c/rpds_py-0.27.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:08f1e20bccf73b08d12d804d6e1c22ca5530e71659e6673bce31a6bb71c1e73f", size = 402582, upload_time = "2025-08-27T12:14:02.034Z" }, + { url = "https://files.pythonhosted.org/packages/cb/b0/f4e224090dc5b0ec15f31a02d746ab24101dd430847c4d99123798661bfc/rpds_py-0.27.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0dc5dceeaefcc96dc192e3a80bbe1d6c410c469e97bdd47494a7d930987f18b2", size = 384126, upload_time = "2025-08-27T12:14:03.437Z" }, + { url = "https://files.pythonhosted.org/packages/54/77/ac339d5f82b6afff1df8f0fe0d2145cc827992cb5f8eeb90fc9f31ef7a63/rpds_py-0.27.1-cp313-cp313t-manylinux_2_31_riscv64.whl", hash = "sha256:d76f9cc8665acdc0c9177043746775aa7babbf479b5520b78ae4002d889f5c21", size = 399486, upload_time = "2025-08-27T12:14:05.443Z" }, + { url = "https://files.pythonhosted.org/packages/d6/29/3e1c255eee6ac358c056a57d6d6869baa00a62fa32eea5ee0632039c50a3/rpds_py-0.27.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:134fae0e36022edad8290a6661edf40c023562964efea0cc0ec7f5d392d2aaef", size = 414832, upload_time = "2025-08-27T12:14:06.902Z" }, + { url = "https://files.pythonhosted.org/packages/3f/db/6d498b844342deb3fa1d030598db93937a9964fcf5cb4da4feb5f17be34b/rpds_py-0.27.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:eb11a4f1b2b63337cfd3b4d110af778a59aae51c81d195768e353d8b52f88081", size = 557249, upload_time = "2025-08-27T12:14:08.37Z" }, + { url = "https://files.pythonhosted.org/packages/60/f3/690dd38e2310b6f68858a331399b4d6dbb9132c3e8ef8b4333b96caf403d/rpds_py-0.27.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:13e608ac9f50a0ed4faec0e90ece76ae33b34c0e8656e3dceb9a7db994c692cd", size = 587356, upload_time = "2025-08-27T12:14:10.034Z" }, + { url = "https://files.pythonhosted.org/packages/86/e3/84507781cccd0145f35b1dc32c72675200c5ce8d5b30f813e49424ef68fc/rpds_py-0.27.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:dd2135527aa40f061350c3f8f89da2644de26cd73e4de458e79606384f4f68e7", size = 555300, upload_time = "2025-08-27T12:14:11.783Z" }, + { url = "https://files.pythonhosted.org/packages/e5/ee/375469849e6b429b3516206b4580a79e9ef3eb12920ddbd4492b56eaacbe/rpds_py-0.27.1-cp313-cp313t-win32.whl", hash = "sha256:3020724ade63fe320a972e2ffd93b5623227e684315adce194941167fee02688", size = 216714, upload_time = "2025-08-27T12:14:13.629Z" }, + { url = "https://files.pythonhosted.org/packages/21/87/3fc94e47c9bd0742660e84706c311a860dcae4374cf4a03c477e23ce605a/rpds_py-0.27.1-cp313-cp313t-win_amd64.whl", hash = "sha256:8ee50c3e41739886606388ba3ab3ee2aae9f35fb23f833091833255a31740797", size = 228943, upload_time = "2025-08-27T12:14:14.937Z" }, + { url = "https://files.pythonhosted.org/packages/70/36/b6e6066520a07cf029d385de869729a895917b411e777ab1cde878100a1d/rpds_py-0.27.1-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:acb9aafccaae278f449d9c713b64a9e68662e7799dbd5859e2c6b3c67b56d334", size = 362472, upload_time = "2025-08-27T12:14:16.333Z" }, + { url = "https://files.pythonhosted.org/packages/af/07/b4646032e0dcec0df9c73a3bd52f63bc6c5f9cda992f06bd0e73fe3fbebd/rpds_py-0.27.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:b7fb801aa7f845ddf601c49630deeeccde7ce10065561d92729bfe81bd21fb33", size = 345676, upload_time = "2025-08-27T12:14:17.764Z" }, + { url = "https://files.pythonhosted.org/packages/b0/16/2f1003ee5d0af4bcb13c0cf894957984c32a6751ed7206db2aee7379a55e/rpds_py-0.27.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fe0dd05afb46597b9a2e11c351e5e4283c741237e7f617ffb3252780cca9336a", size = 385313, upload_time = "2025-08-27T12:14:19.829Z" }, + { url = "https://files.pythonhosted.org/packages/05/cd/7eb6dd7b232e7f2654d03fa07f1414d7dfc980e82ba71e40a7c46fd95484/rpds_py-0.27.1-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b6dfb0e058adb12d8b1d1b25f686e94ffa65d9995a5157afe99743bf7369d62b", size = 399080, upload_time = "2025-08-27T12:14:21.531Z" }, + { url = "https://files.pythonhosted.org/packages/20/51/5829afd5000ec1cb60f304711f02572d619040aa3ec033d8226817d1e571/rpds_py-0.27.1-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ed090ccd235f6fa8bb5861684567f0a83e04f52dfc2e5c05f2e4b1309fcf85e7", size = 523868, upload_time = "2025-08-27T12:14:23.485Z" }, + { url = "https://files.pythonhosted.org/packages/05/2c/30eebca20d5db95720ab4d2faec1b5e4c1025c473f703738c371241476a2/rpds_py-0.27.1-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bf876e79763eecf3e7356f157540d6a093cef395b65514f17a356f62af6cc136", size = 408750, upload_time = "2025-08-27T12:14:24.924Z" }, + { url = "https://files.pythonhosted.org/packages/90/1a/cdb5083f043597c4d4276eae4e4c70c55ab5accec078da8611f24575a367/rpds_py-0.27.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:12ed005216a51b1d6e2b02a7bd31885fe317e45897de81d86dcce7d74618ffff", size = 387688, upload_time = "2025-08-27T12:14:27.537Z" }, + { url = "https://files.pythonhosted.org/packages/7c/92/cf786a15320e173f945d205ab31585cc43969743bb1a48b6888f7a2b0a2d/rpds_py-0.27.1-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:ee4308f409a40e50593c7e3bb8cbe0b4d4c66d1674a316324f0c2f5383b486f9", size = 407225, upload_time = "2025-08-27T12:14:28.981Z" }, + { url = "https://files.pythonhosted.org/packages/33/5c/85ee16df5b65063ef26017bef33096557a4c83fbe56218ac7cd8c235f16d/rpds_py-0.27.1-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0b08d152555acf1f455154d498ca855618c1378ec810646fcd7c76416ac6dc60", size = 423361, upload_time = "2025-08-27T12:14:30.469Z" }, + { url = "https://files.pythonhosted.org/packages/4b/8e/1c2741307fcabd1a334ecf008e92c4f47bb6f848712cf15c923becfe82bb/rpds_py-0.27.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:dce51c828941973a5684d458214d3a36fcd28da3e1875d659388f4f9f12cc33e", size = 562493, upload_time = "2025-08-27T12:14:31.987Z" }, + { url = "https://files.pythonhosted.org/packages/04/03/5159321baae9b2222442a70c1f988cbbd66b9be0675dd3936461269be360/rpds_py-0.27.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:c1476d6f29eb81aa4151c9a31219b03f1f798dc43d8af1250a870735516a1212", size = 592623, upload_time = "2025-08-27T12:14:33.543Z" }, + { url = "https://files.pythonhosted.org/packages/ff/39/c09fd1ad28b85bc1d4554a8710233c9f4cefd03d7717a1b8fbfd171d1167/rpds_py-0.27.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:3ce0cac322b0d69b63c9cdb895ee1b65805ec9ffad37639f291dd79467bee675", size = 558800, upload_time = "2025-08-27T12:14:35.436Z" }, + { url = "https://files.pythonhosted.org/packages/c5/d6/99228e6bbcf4baa764b18258f519a9035131d91b538d4e0e294313462a98/rpds_py-0.27.1-cp314-cp314-win32.whl", hash = "sha256:dfbfac137d2a3d0725758cd141f878bf4329ba25e34979797c89474a89a8a3a3", size = 221943, upload_time = "2025-08-27T12:14:36.898Z" }, + { url = "https://files.pythonhosted.org/packages/be/07/c802bc6b8e95be83b79bdf23d1aa61d68324cb1006e245d6c58e959e314d/rpds_py-0.27.1-cp314-cp314-win_amd64.whl", hash = "sha256:a6e57b0abfe7cc513450fcf529eb486b6e4d3f8aee83e92eb5f1ef848218d456", size = 233739, upload_time = "2025-08-27T12:14:38.386Z" }, + { url = "https://files.pythonhosted.org/packages/c8/89/3e1b1c16d4c2d547c5717377a8df99aee8099ff050f87c45cb4d5fa70891/rpds_py-0.27.1-cp314-cp314-win_arm64.whl", hash = "sha256:faf8d146f3d476abfee026c4ae3bdd9ca14236ae4e4c310cbd1cf75ba33d24a3", size = 223120, upload_time = "2025-08-27T12:14:39.82Z" }, + { url = "https://files.pythonhosted.org/packages/62/7e/dc7931dc2fa4a6e46b2a4fa744a9fe5c548efd70e0ba74f40b39fa4a8c10/rpds_py-0.27.1-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:ba81d2b56b6d4911ce735aad0a1d4495e808b8ee4dc58715998741a26874e7c2", size = 358944, upload_time = "2025-08-27T12:14:41.199Z" }, + { url = "https://files.pythonhosted.org/packages/e6/22/4af76ac4e9f336bfb1a5f240d18a33c6b2fcaadb7472ac7680576512b49a/rpds_py-0.27.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:84f7d509870098de0e864cad0102711c1e24e9b1a50ee713b65928adb22269e4", size = 342283, upload_time = "2025-08-27T12:14:42.699Z" }, + { url = "https://files.pythonhosted.org/packages/1c/15/2a7c619b3c2272ea9feb9ade67a45c40b3eeb500d503ad4c28c395dc51b4/rpds_py-0.27.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9e960fc78fecd1100539f14132425e1d5fe44ecb9239f8f27f079962021523e", size = 380320, upload_time = "2025-08-27T12:14:44.157Z" }, + { url = "https://files.pythonhosted.org/packages/a2/7d/4c6d243ba4a3057e994bb5bedd01b5c963c12fe38dde707a52acdb3849e7/rpds_py-0.27.1-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:62f85b665cedab1a503747617393573995dac4600ff51869d69ad2f39eb5e817", size = 391760, upload_time = "2025-08-27T12:14:45.845Z" }, + { url = "https://files.pythonhosted.org/packages/b4/71/b19401a909b83bcd67f90221330bc1ef11bc486fe4e04c24388d28a618ae/rpds_py-0.27.1-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fed467af29776f6556250c9ed85ea5a4dd121ab56a5f8b206e3e7a4c551e48ec", size = 522476, upload_time = "2025-08-27T12:14:47.364Z" }, + { url = "https://files.pythonhosted.org/packages/e4/44/1a3b9715c0455d2e2f0f6df5ee6d6f5afdc423d0773a8a682ed2b43c566c/rpds_py-0.27.1-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f2729615f9d430af0ae6b36cf042cb55c0936408d543fb691e1a9e36648fd35a", size = 403418, upload_time = "2025-08-27T12:14:49.991Z" }, + { url = "https://files.pythonhosted.org/packages/1c/4b/fb6c4f14984eb56673bc868a66536f53417ddb13ed44b391998100a06a96/rpds_py-0.27.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1b207d881a9aef7ba753d69c123a35d96ca7cb808056998f6b9e8747321f03b8", size = 384771, upload_time = "2025-08-27T12:14:52.159Z" }, + { url = "https://files.pythonhosted.org/packages/c0/56/d5265d2d28b7420d7b4d4d85cad8ef891760f5135102e60d5c970b976e41/rpds_py-0.27.1-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:639fd5efec029f99b79ae47e5d7e00ad8a773da899b6309f6786ecaf22948c48", size = 400022, upload_time = "2025-08-27T12:14:53.859Z" }, + { url = "https://files.pythonhosted.org/packages/8f/e9/9f5fc70164a569bdd6ed9046486c3568d6926e3a49bdefeeccfb18655875/rpds_py-0.27.1-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fecc80cb2a90e28af8a9b366edacf33d7a91cbfe4c2c4544ea1246e949cfebeb", size = 416787, upload_time = "2025-08-27T12:14:55.673Z" }, + { url = "https://files.pythonhosted.org/packages/d4/64/56dd03430ba491db943a81dcdef115a985aac5f44f565cd39a00c766d45c/rpds_py-0.27.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:42a89282d711711d0a62d6f57d81aa43a1368686c45bc1c46b7f079d55692734", size = 557538, upload_time = "2025-08-27T12:14:57.245Z" }, + { url = "https://files.pythonhosted.org/packages/3f/36/92cc885a3129993b1d963a2a42ecf64e6a8e129d2c7cc980dbeba84e55fb/rpds_py-0.27.1-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:cf9931f14223de59551ab9d38ed18d92f14f055a5f78c1d8ad6493f735021bbb", size = 588512, upload_time = "2025-08-27T12:14:58.728Z" }, + { url = "https://files.pythonhosted.org/packages/dd/10/6b283707780a81919f71625351182b4f98932ac89a09023cb61865136244/rpds_py-0.27.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:f39f58a27cc6e59f432b568ed8429c7e1641324fbe38131de852cd77b2d534b0", size = 555813, upload_time = "2025-08-27T12:15:00.334Z" }, + { url = "https://files.pythonhosted.org/packages/04/2e/30b5ea18c01379da6272a92825dd7e53dc9d15c88a19e97932d35d430ef7/rpds_py-0.27.1-cp314-cp314t-win32.whl", hash = "sha256:d5fa0ee122dc09e23607a28e6d7b150da16c662e66409bbe85230e4c85bb528a", size = 217385, upload_time = "2025-08-27T12:15:01.937Z" }, + { url = "https://files.pythonhosted.org/packages/32/7d/97119da51cb1dd3f2f3c0805f155a3aa4a95fa44fe7d78ae15e69edf4f34/rpds_py-0.27.1-cp314-cp314t-win_amd64.whl", hash = "sha256:6567d2bb951e21232c2f660c24cf3470bb96de56cdcb3f071a83feeaff8a2772", size = 230097, upload_time = "2025-08-27T12:15:03.961Z" }, +] + +[[package]] +name = "ruamel-yaml" +version = "0.18.15" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ruamel-yaml-clib", marker = "python_full_version < '3.14' and platform_python_implementation == 'CPython'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3e/db/f3950f5e5031b618aae9f423a39bf81a55c148aecd15a34527898e752cf4/ruamel.yaml-0.18.15.tar.gz", hash = "sha256:dbfca74b018c4c3fba0b9cc9ee33e53c371194a9000e694995e620490fd40700", size = 146865, upload_time = "2025-08-19T11:15:10.694Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/e5/f2a0621f1781b76a38194acae72f01e37b1941470407345b6e8653ad7640/ruamel.yaml-0.18.15-py3-none-any.whl", hash = "sha256:148f6488d698b7a5eded5ea793a025308b25eca97208181b6a026037f391f701", size = 119702, upload_time = "2025-08-19T11:15:07.696Z" }, +] + +[[package]] +name = "ruamel-yaml-clib" +version = "0.2.14" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/e9/39ec4d4b3f91188fad1842748f67d4e749c77c37e353c4e545052ee8e893/ruamel.yaml.clib-0.2.14.tar.gz", hash = "sha256:803f5044b13602d58ea378576dd75aa759f52116a0232608e8fdada4da33752e", size = 225394, upload_time = "2025-09-22T19:51:23.753Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b4/42/ccfb34a25289afbbc42017e4d3d4288e61d35b2e00cfc6b92974a6a1f94b/ruamel.yaml.clib-0.2.14-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:6aeadc170090ff1889f0d2c3057557f9cd71f975f17535c26a5d37af98f19c27", size = 271775, upload_time = "2025-09-23T14:24:12.771Z" }, + { url = "https://files.pythonhosted.org/packages/82/73/e628a92e80197ff6a79ab81ec3fa00d4cc082d58ab78d3337b7ba7043301/ruamel.yaml.clib-0.2.14-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:5e56ac47260c0eed992789fa0b8efe43404a9adb608608631a948cee4fc2b052", size = 138842, upload_time = "2025-09-22T19:50:49.156Z" }, + { url = "https://files.pythonhosted.org/packages/2b/c5/346c7094344a60419764b4b1334d9e0285031c961176ff88ffb652405b0c/ruamel.yaml.clib-0.2.14-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:a911aa73588d9a8b08d662b9484bc0567949529824a55d3885b77e8dd62a127a", size = 647404, upload_time = "2025-09-22T19:50:52.921Z" }, + { url = "https://files.pythonhosted.org/packages/df/99/65080c863eb06d4498de3d6c86f3e90595e02e159fd8529f1565f56cfe2c/ruamel.yaml.clib-0.2.14-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a05ba88adf3d7189a974b2de7a9d56731548d35dc0a822ec3dc669caa7019b29", size = 753141, upload_time = "2025-09-22T19:50:50.294Z" }, + { url = "https://files.pythonhosted.org/packages/3d/e3/0de85f3e3333f8e29e4b10244374a202a87665d1131798946ee22cf05c7c/ruamel.yaml.clib-0.2.14-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fb04c5650de6668b853623eceadcdb1a9f2fee381f5d7b6bc842ee7c239eeec4", size = 703477, upload_time = "2025-09-22T19:50:51.508Z" }, + { url = "https://files.pythonhosted.org/packages/d9/25/0d2f09d8833c7fd77ab8efeff213093c16856479a9d293180a0d89f6bed9/ruamel.yaml.clib-0.2.14-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:df3ec9959241d07bc261f4983d25a1205ff37703faf42b474f15d54d88b4f8c9", size = 741157, upload_time = "2025-09-23T18:42:50.408Z" }, + { url = "https://files.pythonhosted.org/packages/d3/8c/959f10c2e2153cbdab834c46e6954b6dd9e3b109c8f8c0a3cf1618310985/ruamel.yaml.clib-0.2.14-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:fbc08c02e9b147a11dfcaa1ac8a83168b699863493e183f7c0c8b12850b7d259", size = 745859, upload_time = "2025-09-22T19:50:54.497Z" }, + { url = "https://files.pythonhosted.org/packages/ed/6b/e580a7c18b485e1a5f30a32cda96b20364b0ba649d9d2baaf72f8bd21f83/ruamel.yaml.clib-0.2.14-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c099cafc1834d3c5dac305865d04235f7c21c167c8dd31ebc3d6bbc357e2f023", size = 770200, upload_time = "2025-09-22T19:50:55.718Z" }, + { url = "https://files.pythonhosted.org/packages/ef/44/3455eebc761dc8e8fdced90f2b0a3fa61e32ba38b50de4130e2d57db0f21/ruamel.yaml.clib-0.2.14-cp312-cp312-win32.whl", hash = "sha256:b5b0f7e294700b615a3bcf6d28b26e6da94e8eba63b079f4ec92e9ba6c0d6b54", size = 98829, upload_time = "2025-09-22T19:50:58.895Z" }, + { url = "https://files.pythonhosted.org/packages/76/ab/5121f7f3b651db93de546f8c982c241397aad0a4765d793aca1dac5eadee/ruamel.yaml.clib-0.2.14-cp312-cp312-win_amd64.whl", hash = "sha256:a37f40a859b503304dd740686359fcf541d6fb3ff7fc10f539af7f7150917c68", size = 115570, upload_time = "2025-09-22T19:50:57.981Z" }, + { url = "https://files.pythonhosted.org/packages/d7/ae/e3811f05415594025e96000349d3400978adaed88d8f98d494352d9761ee/ruamel.yaml.clib-0.2.14-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7e4f9da7e7549946e02a6122dcad00b7c1168513acb1f8a726b1aaf504a99d32", size = 269205, upload_time = "2025-09-23T14:24:15.06Z" }, + { url = "https://files.pythonhosted.org/packages/72/06/7d51f4688d6d72bb72fa74254e1593c4f5ebd0036be5b41fe39315b275e9/ruamel.yaml.clib-0.2.14-cp313-cp313-macosx_15_0_arm64.whl", hash = "sha256:dd7546c851e59c06197a7c651335755e74aa383a835878ca86d2c650c07a2f85", size = 137417, upload_time = "2025-09-22T19:50:59.82Z" }, + { url = "https://files.pythonhosted.org/packages/5a/08/b4499234a420ef42960eeb05585df5cc7eb25ccb8c980490b079e6367050/ruamel.yaml.clib-0.2.14-cp313-cp313-manylinux2014_aarch64.whl", hash = "sha256:1c1acc3a0209ea9042cc3cfc0790edd2eddd431a2ec3f8283d081e4d5018571e", size = 642558, upload_time = "2025-09-22T19:51:03.388Z" }, + { url = "https://files.pythonhosted.org/packages/b6/ba/1975a27dedf1c4c33306ee67c948121be8710b19387aada29e2f139c43ee/ruamel.yaml.clib-0.2.14-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2070bf0ad1540d5c77a664de07ebcc45eebd1ddcab71a7a06f26936920692beb", size = 744087, upload_time = "2025-09-22T19:51:00.897Z" }, + { url = "https://files.pythonhosted.org/packages/20/15/8a19a13d27f3bd09fa18813add8380a29115a47b553845f08802959acbce/ruamel.yaml.clib-0.2.14-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9bd8fe07f49c170e09d76773fb86ad9135e0beee44f36e1576a201b0676d3d1d", size = 699709, upload_time = "2025-09-22T19:51:02.075Z" }, + { url = "https://files.pythonhosted.org/packages/19/ee/8d6146a079ad21e534b5083c9ee4a4c8bec42f79cf87594b60978286b39a/ruamel.yaml.clib-0.2.14-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ff86876889ea478b1381089e55cf9e345707b312beda4986f823e1d95e8c0f59", size = 708926, upload_time = "2025-09-23T18:42:51.707Z" }, + { url = "https://files.pythonhosted.org/packages/a9/f5/426b714abdc222392e68f3b8ad323930d05a214a27c7e7a0f06c69126401/ruamel.yaml.clib-0.2.14-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:1f118b707eece8cf84ecbc3e3ec94d9db879d85ed608f95870d39b2d2efa5dca", size = 740202, upload_time = "2025-09-22T19:51:04.673Z" }, + { url = "https://files.pythonhosted.org/packages/3d/ac/3c5c2b27a183f4fda8a57c82211721c016bcb689a4a175865f7646db9f94/ruamel.yaml.clib-0.2.14-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b30110b29484adc597df6bd92a37b90e63a8c152ca8136aad100a02f8ba6d1b6", size = 765196, upload_time = "2025-09-22T19:51:05.916Z" }, + { url = "https://files.pythonhosted.org/packages/92/2e/06f56a71fd55021c993ed6e848c9b2e5e9cfce180a42179f0ddd28253f7c/ruamel.yaml.clib-0.2.14-cp313-cp313-win32.whl", hash = "sha256:f4e97a1cf0b7a30af9e1d9dad10a5671157b9acee790d9e26996391f49b965a2", size = 98635, upload_time = "2025-09-22T19:51:08.183Z" }, + { url = "https://files.pythonhosted.org/packages/51/79/76aba16a1689b50528224b182f71097ece338e7a4ab55e84c2e73443b78a/ruamel.yaml.clib-0.2.14-cp313-cp313-win_amd64.whl", hash = "sha256:090782b5fb9d98df96509eecdbcaffd037d47389a89492320280d52f91330d78", size = 115238, upload_time = "2025-09-22T19:51:07.081Z" }, + { url = "https://files.pythonhosted.org/packages/21/e2/a59ff65c26aaf21a24eb38df777cb9af5d87ba8fc8107c163c2da9d1e85e/ruamel.yaml.clib-0.2.14-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:7df6f6e9d0e33c7b1d435defb185095386c469109de723d514142632a7b9d07f", size = 271441, upload_time = "2025-09-23T14:24:16.498Z" }, + { url = "https://files.pythonhosted.org/packages/6b/fa/3234f913fe9a6525a7b97c6dad1f51e72b917e6872e051a5e2ffd8b16fbb/ruamel.yaml.clib-0.2.14-cp314-cp314-macosx_15_0_arm64.whl", hash = "sha256:70eda7703b8126f5e52fcf276e6c0f40b0d314674f896fc58c47b0aef2b9ae83", size = 137970, upload_time = "2025-09-22T19:51:09.472Z" }, + { url = "https://files.pythonhosted.org/packages/ef/ec/4edbf17ac2c87fa0845dd366ef8d5852b96eb58fcd65fc1ecf5fe27b4641/ruamel.yaml.clib-0.2.14-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:a0cb71ccc6ef9ce36eecb6272c81afdc2f565950cdcec33ae8e6cd8f7fc86f27", size = 739639, upload_time = "2025-09-22T19:51:10.566Z" }, + { url = "https://files.pythonhosted.org/packages/15/18/b0e1fafe59051de9e79cdd431863b03593ecfa8341c110affad7c8121efc/ruamel.yaml.clib-0.2.14-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:e7cb9ad1d525d40f7d87b6df7c0ff916a66bc52cb61b66ac1b2a16d0c1b07640", size = 764456, upload_time = "2025-09-22T19:51:11.736Z" }, +] + +[[package]] +name = "secretstorage" +version = "3.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "jeepney" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/31/9f/11ef35cf1027c1339552ea7bfe6aaa74a8516d8b5caf6e7d338daf54fd80/secretstorage-3.4.0.tar.gz", hash = "sha256:c46e216d6815aff8a8a18706a2fbfd8d53fcbb0dce99301881687a1b0289ef7c", size = 19748, upload_time = "2025-09-09T16:42:13.859Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/91/ff/2e2eed29e02c14a5cb6c57f09b2d5b40e65d6cc71f45b52e0be295ccbc2f/secretstorage-3.4.0-py3-none-any.whl", hash = "sha256:0e3b6265c2c63509fb7415717607e4b2c9ab767b7f344a57473b779ca13bd02e", size = 15272, upload_time = "2025-09-09T16:42:12.744Z" }, +] + +[[package]] +name = "semantic-version" +version = "2.10.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7d/31/f2289ce78b9b473d582568c234e104d2a342fd658cc288a7553d83bb8595/semantic_version-2.10.0.tar.gz", hash = "sha256:bdabb6d336998cbb378d4b9db3a4b56a1e3235701dc05ea2690d9a997ed5041c", size = 52289, upload_time = "2022-05-26T13:35:23.454Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/23/8146aad7d88f4fcb3a6218f41a60f6c2d4e3a72de72da1825dc7c8f7877c/semantic_version-2.10.0-py2.py3-none-any.whl", hash = "sha256:de78a3b8e0feda74cabc54aab2da702113e33ac9d9eb9d2389bcf1f58b7d9177", size = 15552, upload_time = "2022-05-26T13:35:21.206Z" }, +] + +[[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, 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, upload_time = "2024-12-04T17:35:26.475Z" }, +] + +[[package]] +name = "tenacity" +version = "9.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0a/d4/2b0cd0fe285e14b36db076e78c93766ff1d529d70408bd1d2a5a84f1d929/tenacity-9.1.2.tar.gz", hash = "sha256:1169d376c297e7de388d18b4481760d478b0e99a777cad3a9c86e556f4b697cb", size = 48036, upload_time = "2025-04-02T08:25:09.966Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/30/643397144bfbfec6f6ef821f36f33e57d35946c44a2352d3c9f0ae847619/tenacity-9.1.2-py3-none-any.whl", hash = "sha256:f77bf36710d8b73a50b2dd155c97b870017ad21afe6ab300326b0371b3b05138", size = 28248, upload_time = "2025-04-02T08:25:07.678Z" }, +] + +[[package]] +name = "tensorstore" +version = "0.1.77" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ml-dtypes" }, + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/48/4c/7db3b759e38e14c5eafeada78705f347f42a9ba132914a2ccad60bce5605/tensorstore-0.1.77.tar.gz", hash = "sha256:5ae62828503cea71e64d808bda959877ed75ea23f1adffca903635b842acc1e8", size = 6880812, upload_time = "2025-09-20T00:19:02.497Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a8/d4/1545f47b496c3eff088e500f3396de6185e33deb4170ac70afd42a98da17/tensorstore-0.1.77-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:90417e8c499d3aac0359bf990abad1b60892cd5c868f288115d546aa5dbe7ace", size = 15727039, upload_time = "2025-09-20T00:18:36.589Z" }, + { url = "https://files.pythonhosted.org/packages/e0/94/cf104fde7ffd1e4726e48ab15a9a587e68b741a9ca366739041f5702c794/tensorstore-0.1.77-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a654468acb816c0e8cf0a1443eb0956e76f4e1a2a4fe75ab06ea504161190755", size = 13781960, upload_time = "2025-09-20T00:18:39.504Z" }, + { url = "https://files.pythonhosted.org/packages/16/ea/0fd3ec6d9d1e0a00aae5174e9c44ea00bfd06208f820262425c6b120e76f/tensorstore-0.1.77-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b8e68accbcfbc68900367028971066adb927d0b302eba387271957545d0c0ec1", size = 17701149, upload_time = "2025-09-20T00:18:41.94Z" }, + { url = "https://files.pythonhosted.org/packages/19/31/94bb41faf66eaeead8f1930b7836a3d01e72b73f4346f602f31a9324b347/tensorstore-0.1.77-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7ce520277b32397cfd0bc812751cc9c414d12488ecbb33efe9fc50979b73a80f", size = 19536583, upload_time = "2025-09-20T00:18:44.836Z" }, + { url = "https://files.pythonhosted.org/packages/5a/02/1931b4f854ec275361cba62b7af76064153570f732dc0ea02b220077ba57/tensorstore-0.1.77-cp312-cp312-win_amd64.whl", hash = "sha256:e55bd02c0a1163f4565f98c8b41837b72ffd0c27e9f8a4d3dcc7018ce17a2c1a", size = 12710352, upload_time = "2025-09-20T00:18:47.737Z" }, + { url = "https://files.pythonhosted.org/packages/44/c2/e0f185bd75e9881c0c35df57dd89c528ef750f8f4ab7fb639ffd415e7589/tensorstore-0.1.77-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:9b4e21b09acd01bde8660939d1b2f52a9179571e1bdfa1e8d2cc88b1cadf5d78", size = 15726851, upload_time = "2025-09-20T00:18:50.117Z" }, + { url = "https://files.pythonhosted.org/packages/ce/94/42703000135524901a120fc974c1b487309d1e3264071bc117a57f38316d/tensorstore-0.1.77-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f383d8d1f7fd0babd2c03851ab57738782f35f604d29a7cf463f9875e3584613", size = 13782161, upload_time = "2025-09-20T00:18:52.529Z" }, + { url = "https://files.pythonhosted.org/packages/43/c9/36611dcb2e5007d1b7405f44068d1c2839f6233fc0c4bdead56a8ec24c31/tensorstore-0.1.77-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:351f0f73ed2b57a561b0ffd32ab9188d65adc0a85916b23f8355a5df50dbac2e", size = 17701404, upload_time = "2025-09-20T00:18:54.929Z" }, + { url = "https://files.pythonhosted.org/packages/c1/42/598560fe23d04c0ae160b8f9754c3887893e401305fd50dd7d70e08c4b0b/tensorstore-0.1.77-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ed487f313af8e07cc3caa372120621f4029778f9e5a1c026efb915dabea555a2", size = 19537201, upload_time = "2025-09-20T00:18:57.504Z" }, + { url = "https://files.pythonhosted.org/packages/22/5d/bf02faa525ed54b37d1f6d4a1463e9986014ccf26da3cef77fe1efb8c18b/tensorstore-0.1.77-cp313-cp313-win_amd64.whl", hash = "sha256:416a5f076260e852afeaf7d30e567b08a28dd3af913d38a27f112f599e53313a", size = 12710186, upload_time = "2025-09-20T00:19:00.199Z" }, +] + +[[package]] +name = "threadpoolctl" +version = "3.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b7/4d/08c89e34946fce2aec4fbb45c9016efd5f4d7f24af8e5d93296e935631d8/threadpoolctl-3.6.0.tar.gz", hash = "sha256:8ab8b4aa3491d812b623328249fab5302a68d2d71745c8a4c719a2fcaba9f44e", size = 21274, upload_time = "2025-03-13T13:49:23.031Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/32/d5/f9a850d79b0851d1d4ef6456097579a9005b31fea68726a4ae5f2d82ddd9/threadpoolctl-3.6.0-py3-none-any.whl", hash = "sha256:43a0b8fd5a2928500110039e43a5eed8480b918967083ea48dc3ab9f13c4a7fb", size = 18638, upload_time = "2025-03-13T13:49:21.846Z" }, +] + +[[package]] +name = "tqdm" +version = "4.67.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a8/4b/29b4ef32e036bb34e4ab51796dd745cdba7ed47ad142a9f4a1eb8e0c744d/tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2", size = 169737, upload_time = "2024-11-24T20:12:22.481Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2", size = 78540, upload_time = "2024-11-24T20:12:19.698Z" }, +] + +[[package]] +name = "types-python-dateutil" +version = "2.9.0.20250822" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0c/0a/775f8551665992204c756be326f3575abba58c4a3a52eef9909ef4536428/types_python_dateutil-2.9.0.20250822.tar.gz", hash = "sha256:84c92c34bd8e68b117bff742bc00b692a1e8531262d4507b33afcc9f7716cd53", size = 16084, upload_time = "2025-08-22T03:02:00.613Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ab/d9/a29dfa84363e88b053bf85a8b7f212a04f0d7343a4d24933baa45c06e08b/types_python_dateutil-2.9.0.20250822-py3-none-any.whl", hash = "sha256:849d52b737e10a6dc6621d2bd7940ec7c65fcb69e6aa2882acf4e56b2b508ddc", size = 17892, upload_time = "2025-08-22T03:01:59.436Z" }, +] + +[[package]] +name = "typing-extensions" +version = "4.15.0" +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, upload_time = "2025-08-25T13:49:26.313Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload_time = "2025-08-25T13:49:24.86Z" }, +] + +[[package]] +name = "typing-inspection" +version = "0.4.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/55/e3/70399cb7dd41c10ac53367ae42139cf4b1ca5f36bb3dc6c9d33acdb43655/typing_inspection-0.4.2.tar.gz", hash = "sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464", size = 75949, upload_time = "2025-10-01T02:14:41.687Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7", size = 14611, upload_time = "2025-10-01T02:14:40.154Z" }, +] + +[[package]] +name = "tzdata" +version = "2025.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/95/32/1a225d6164441be760d75c2c42e2780dc0873fe382da3e98a2e1e48361e5/tzdata-2025.2.tar.gz", hash = "sha256:b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9", size = 196380, upload_time = "2025-03-23T13:54:43.652Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5c/23/c7abc0ca0a1526a0774eca151daeb8de62ec457e77262b66b359c3c7679e/tzdata-2025.2-py2.py3-none-any.whl", hash = "sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8", size = 347839, upload_time = "2025-03-23T13:54:41.845Z" }, +] + +[[package]] +name = "uri-template" +version = "1.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/31/c7/0336f2bd0bcbada6ccef7aaa25e443c118a704f828a0620c6fa0207c1b64/uri-template-1.3.0.tar.gz", hash = "sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7", size = 21678, upload_time = "2023-06-21T01:49:05.374Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/00/3fca040d7cf8a32776d3d81a00c8ee7457e00f80c649f1e4a863c8321ae9/uri_template-1.3.0-py3-none-any.whl", hash = "sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363", size = 11140, upload_time = "2023-06-21T01:49:03.467Z" }, +] + +[[package]] +name = "urllib3" +version = "2.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/15/22/9ee70a2574a4f4599c47dd506532914ce044817c7752a79b6a51286319bc/urllib3-2.5.0.tar.gz", hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760", size = 393185, upload_time = "2025-06-18T14:07:41.644Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a7/c2/fe1e52489ae3122415c51f387e221dd0773709bad6c6cdaa599e8a2c5185/urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc", size = 129795, upload_time = "2025-06-18T14:07:40.39Z" }, +] + +[[package]] +name = "wcwidth" +version = "0.2.14" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/24/30/6b0809f4510673dc723187aeaf24c7f5459922d01e2f794277a3dfb90345/wcwidth-0.2.14.tar.gz", hash = "sha256:4d478375d31bc5395a3c55c40ccdf3354688364cd61c4f6adacaa9215d0b3605", size = 102293, upload_time = "2025-09-22T16:29:53.023Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/af/b5/123f13c975e9f27ab9c0770f514345bd406d0e8d3b7a0723af9d43f710af/wcwidth-0.2.14-py2.py3-none-any.whl", hash = "sha256:a7bb560c8aee30f9957e5f9895805edd20602f2d7f720186dfd906e82b4982e1", size = 37286, upload_time = "2025-09-22T16:29:51.641Z" }, +] + +[[package]] +name = "webcolors" +version = "24.11.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7b/29/061ec845fb58521848f3739e466efd8250b4b7b98c1b6c5bf4d40b419b7e/webcolors-24.11.1.tar.gz", hash = "sha256:ecb3d768f32202af770477b8b65f318fa4f566c22948673a977b00d589dd80f6", size = 45064, upload_time = "2024-11-11T07:43:24.224Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/60/e8/c0e05e4684d13459f93d312077a9a2efbe04d59c393bc2b8802248c908d4/webcolors-24.11.1-py3-none-any.whl", hash = "sha256:515291393b4cdf0eb19c155749a096f779f7d909f7cceea072791cb9095b92e9", size = 14934, upload_time = "2024-11-11T07:43:22.529Z" }, +] + +[[package]] +name = "wrapt" +version = "1.17.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/95/8f/aeb76c5b46e273670962298c23e7ddde79916cb74db802131d49a85e4b7d/wrapt-1.17.3.tar.gz", hash = "sha256:f66eb08feaa410fe4eebd17f2a2c8e2e46d3476e9f8c783daa8e09e0faa666d0", size = 55547, upload_time = "2025-08-12T05:53:21.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9f/41/cad1aba93e752f1f9268c77270da3c469883d56e2798e7df6240dcb2287b/wrapt-1.17.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ab232e7fdb44cdfbf55fc3afa31bcdb0d8980b9b95c38b6405df2acb672af0e0", size = 53998, upload_time = "2025-08-12T05:51:47.138Z" }, + { url = "https://files.pythonhosted.org/packages/60/f8/096a7cc13097a1869fe44efe68dace40d2a16ecb853141394047f0780b96/wrapt-1.17.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:9baa544e6acc91130e926e8c802a17f3b16fbea0fd441b5a60f5cf2cc5c3deba", size = 39020, upload_time = "2025-08-12T05:51:35.906Z" }, + { url = "https://files.pythonhosted.org/packages/33/df/bdf864b8997aab4febb96a9ae5c124f700a5abd9b5e13d2a3214ec4be705/wrapt-1.17.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6b538e31eca1a7ea4605e44f81a48aa24c4632a277431a6ed3f328835901f4fd", size = 39098, upload_time = "2025-08-12T05:51:57.474Z" }, + { url = "https://files.pythonhosted.org/packages/9f/81/5d931d78d0eb732b95dc3ddaeeb71c8bb572fb01356e9133916cd729ecdd/wrapt-1.17.3-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:042ec3bb8f319c147b1301f2393bc19dba6e176b7da446853406d041c36c7828", size = 88036, upload_time = "2025-08-12T05:52:34.784Z" }, + { url = "https://files.pythonhosted.org/packages/ca/38/2e1785df03b3d72d34fc6252d91d9d12dc27a5c89caef3335a1bbb8908ca/wrapt-1.17.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3af60380ba0b7b5aeb329bc4e402acd25bd877e98b3727b0135cb5c2efdaefe9", size = 88156, upload_time = "2025-08-12T05:52:13.599Z" }, + { url = "https://files.pythonhosted.org/packages/b3/8b/48cdb60fe0603e34e05cffda0b2a4adab81fd43718e11111a4b0100fd7c1/wrapt-1.17.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0b02e424deef65c9f7326d8c19220a2c9040c51dc165cddb732f16198c168396", size = 87102, upload_time = "2025-08-12T05:52:14.56Z" }, + { url = "https://files.pythonhosted.org/packages/3c/51/d81abca783b58f40a154f1b2c56db1d2d9e0d04fa2d4224e357529f57a57/wrapt-1.17.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:74afa28374a3c3a11b3b5e5fca0ae03bef8450d6aa3ab3a1e2c30e3a75d023dc", size = 87732, upload_time = "2025-08-12T05:52:36.165Z" }, + { url = "https://files.pythonhosted.org/packages/9e/b1/43b286ca1392a006d5336412d41663eeef1ad57485f3e52c767376ba7e5a/wrapt-1.17.3-cp312-cp312-win32.whl", hash = "sha256:4da9f45279fff3543c371d5ababc57a0384f70be244de7759c85a7f989cb4ebe", size = 36705, upload_time = "2025-08-12T05:53:07.123Z" }, + { url = "https://files.pythonhosted.org/packages/28/de/49493f962bd3c586ab4b88066e967aa2e0703d6ef2c43aa28cb83bf7b507/wrapt-1.17.3-cp312-cp312-win_amd64.whl", hash = "sha256:e71d5c6ebac14875668a1e90baf2ea0ef5b7ac7918355850c0908ae82bcb297c", size = 38877, upload_time = "2025-08-12T05:53:05.436Z" }, + { url = "https://files.pythonhosted.org/packages/f1/48/0f7102fe9cb1e8a5a77f80d4f0956d62d97034bbe88d33e94699f99d181d/wrapt-1.17.3-cp312-cp312-win_arm64.whl", hash = "sha256:604d076c55e2fdd4c1c03d06dc1a31b95130010517b5019db15365ec4a405fc6", size = 36885, upload_time = "2025-08-12T05:52:54.367Z" }, + { url = "https://files.pythonhosted.org/packages/fc/f6/759ece88472157acb55fc195e5b116e06730f1b651b5b314c66291729193/wrapt-1.17.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a47681378a0439215912ef542c45a783484d4dd82bac412b71e59cf9c0e1cea0", size = 54003, upload_time = "2025-08-12T05:51:48.627Z" }, + { url = "https://files.pythonhosted.org/packages/4f/a9/49940b9dc6d47027dc850c116d79b4155f15c08547d04db0f07121499347/wrapt-1.17.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:54a30837587c6ee3cd1a4d1c2ec5d24e77984d44e2f34547e2323ddb4e22eb77", size = 39025, upload_time = "2025-08-12T05:51:37.156Z" }, + { url = "https://files.pythonhosted.org/packages/45/35/6a08de0f2c96dcdd7fe464d7420ddb9a7655a6561150e5fc4da9356aeaab/wrapt-1.17.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:16ecf15d6af39246fe33e507105d67e4b81d8f8d2c6598ff7e3ca1b8a37213f7", size = 39108, upload_time = "2025-08-12T05:51:58.425Z" }, + { url = "https://files.pythonhosted.org/packages/0c/37/6faf15cfa41bf1f3dba80cd3f5ccc6622dfccb660ab26ed79f0178c7497f/wrapt-1.17.3-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:6fd1ad24dc235e4ab88cda009e19bf347aabb975e44fd5c2fb22a3f6e4141277", size = 88072, upload_time = "2025-08-12T05:52:37.53Z" }, + { url = "https://files.pythonhosted.org/packages/78/f2/efe19ada4a38e4e15b6dff39c3e3f3f73f5decf901f66e6f72fe79623a06/wrapt-1.17.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0ed61b7c2d49cee3c027372df5809a59d60cf1b6c2f81ee980a091f3afed6a2d", size = 88214, upload_time = "2025-08-12T05:52:15.886Z" }, + { url = "https://files.pythonhosted.org/packages/40/90/ca86701e9de1622b16e09689fc24b76f69b06bb0150990f6f4e8b0eeb576/wrapt-1.17.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:423ed5420ad5f5529db9ce89eac09c8a2f97da18eb1c870237e84c5a5c2d60aa", size = 87105, upload_time = "2025-08-12T05:52:17.914Z" }, + { url = "https://files.pythonhosted.org/packages/fd/e0/d10bd257c9a3e15cbf5523025252cc14d77468e8ed644aafb2d6f54cb95d/wrapt-1.17.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e01375f275f010fcbf7f643b4279896d04e571889b8a5b3f848423d91bf07050", size = 87766, upload_time = "2025-08-12T05:52:39.243Z" }, + { url = "https://files.pythonhosted.org/packages/e8/cf/7d848740203c7b4b27eb55dbfede11aca974a51c3d894f6cc4b865f42f58/wrapt-1.17.3-cp313-cp313-win32.whl", hash = "sha256:53e5e39ff71b3fc484df8a522c933ea2b7cdd0d5d15ae82e5b23fde87d44cbd8", size = 36711, upload_time = "2025-08-12T05:53:10.074Z" }, + { url = "https://files.pythonhosted.org/packages/57/54/35a84d0a4d23ea675994104e667ceff49227ce473ba6a59ba2c84f250b74/wrapt-1.17.3-cp313-cp313-win_amd64.whl", hash = "sha256:1f0b2f40cf341ee8cc1a97d51ff50dddb9fcc73241b9143ec74b30fc4f44f6cb", size = 38885, upload_time = "2025-08-12T05:53:08.695Z" }, + { url = "https://files.pythonhosted.org/packages/01/77/66e54407c59d7b02a3c4e0af3783168fff8e5d61def52cda8728439d86bc/wrapt-1.17.3-cp313-cp313-win_arm64.whl", hash = "sha256:7425ac3c54430f5fc5e7b6f41d41e704db073309acfc09305816bc6a0b26bb16", size = 36896, upload_time = "2025-08-12T05:52:55.34Z" }, + { url = "https://files.pythonhosted.org/packages/02/a2/cd864b2a14f20d14f4c496fab97802001560f9f41554eef6df201cd7f76c/wrapt-1.17.3-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:cf30f6e3c077c8e6a9a7809c94551203c8843e74ba0c960f4a98cd80d4665d39", size = 54132, upload_time = "2025-08-12T05:51:49.864Z" }, + { url = "https://files.pythonhosted.org/packages/d5/46/d011725b0c89e853dc44cceb738a307cde5d240d023d6d40a82d1b4e1182/wrapt-1.17.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:e228514a06843cae89621384cfe3a80418f3c04aadf8a3b14e46a7be704e4235", size = 39091, upload_time = "2025-08-12T05:51:38.935Z" }, + { url = "https://files.pythonhosted.org/packages/2e/9e/3ad852d77c35aae7ddebdbc3b6d35ec8013af7d7dddad0ad911f3d891dae/wrapt-1.17.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:5ea5eb3c0c071862997d6f3e02af1d055f381b1d25b286b9d6644b79db77657c", size = 39172, upload_time = "2025-08-12T05:51:59.365Z" }, + { url = "https://files.pythonhosted.org/packages/c3/f7/c983d2762bcce2326c317c26a6a1e7016f7eb039c27cdf5c4e30f4160f31/wrapt-1.17.3-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:281262213373b6d5e4bb4353bc36d1ba4084e6d6b5d242863721ef2bf2c2930b", size = 87163, upload_time = "2025-08-12T05:52:40.965Z" }, + { url = "https://files.pythonhosted.org/packages/e4/0f/f673f75d489c7f22d17fe0193e84b41540d962f75fce579cf6873167c29b/wrapt-1.17.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dc4a8d2b25efb6681ecacad42fca8859f88092d8732b170de6a5dddd80a1c8fa", size = 87963, upload_time = "2025-08-12T05:52:20.326Z" }, + { url = "https://files.pythonhosted.org/packages/df/61/515ad6caca68995da2fac7a6af97faab8f78ebe3bf4f761e1b77efbc47b5/wrapt-1.17.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:373342dd05b1d07d752cecbec0c41817231f29f3a89aa8b8843f7b95992ed0c7", size = 86945, upload_time = "2025-08-12T05:52:21.581Z" }, + { url = "https://files.pythonhosted.org/packages/d3/bd/4e70162ce398462a467bc09e768bee112f1412e563620adc353de9055d33/wrapt-1.17.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d40770d7c0fd5cbed9d84b2c3f2e156431a12c9a37dc6284060fb4bec0b7ffd4", size = 86857, upload_time = "2025-08-12T05:52:43.043Z" }, + { url = "https://files.pythonhosted.org/packages/2b/b8/da8560695e9284810b8d3df8a19396a6e40e7518059584a1a394a2b35e0a/wrapt-1.17.3-cp314-cp314-win32.whl", hash = "sha256:fbd3c8319de8e1dc79d346929cd71d523622da527cca14e0c1d257e31c2b8b10", size = 37178, upload_time = "2025-08-12T05:53:12.605Z" }, + { url = "https://files.pythonhosted.org/packages/db/c8/b71eeb192c440d67a5a0449aaee2310a1a1e8eca41676046f99ed2487e9f/wrapt-1.17.3-cp314-cp314-win_amd64.whl", hash = "sha256:e1a4120ae5705f673727d3253de3ed0e016f7cd78dc463db1b31e2463e1f3cf6", size = 39310, upload_time = "2025-08-12T05:53:11.106Z" }, + { url = "https://files.pythonhosted.org/packages/45/20/2cda20fd4865fa40f86f6c46ed37a2a8356a7a2fde0773269311f2af56c7/wrapt-1.17.3-cp314-cp314-win_arm64.whl", hash = "sha256:507553480670cab08a800b9463bdb881b2edeed77dc677b0a5915e6106e91a58", size = 37266, upload_time = "2025-08-12T05:52:56.531Z" }, + { url = "https://files.pythonhosted.org/packages/77/ed/dd5cf21aec36c80443c6f900449260b80e2a65cf963668eaef3b9accce36/wrapt-1.17.3-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:ed7c635ae45cfbc1a7371f708727bf74690daedc49b4dba310590ca0bd28aa8a", size = 56544, upload_time = "2025-08-12T05:51:51.109Z" }, + { url = "https://files.pythonhosted.org/packages/8d/96/450c651cc753877ad100c7949ab4d2e2ecc4d97157e00fa8f45df682456a/wrapt-1.17.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:249f88ed15503f6492a71f01442abddd73856a0032ae860de6d75ca62eed8067", size = 40283, upload_time = "2025-08-12T05:51:39.912Z" }, + { url = "https://files.pythonhosted.org/packages/d1/86/2fcad95994d9b572db57632acb6f900695a648c3e063f2cd344b3f5c5a37/wrapt-1.17.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5a03a38adec8066d5a37bea22f2ba6bbf39fcdefbe2d91419ab864c3fb515454", size = 40366, upload_time = "2025-08-12T05:52:00.693Z" }, + { url = "https://files.pythonhosted.org/packages/64/0e/f4472f2fdde2d4617975144311f8800ef73677a159be7fe61fa50997d6c0/wrapt-1.17.3-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:5d4478d72eb61c36e5b446e375bbc49ed002430d17cdec3cecb36993398e1a9e", size = 108571, upload_time = "2025-08-12T05:52:44.521Z" }, + { url = "https://files.pythonhosted.org/packages/cc/01/9b85a99996b0a97c8a17484684f206cbb6ba73c1ce6890ac668bcf3838fb/wrapt-1.17.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:223db574bb38637e8230eb14b185565023ab624474df94d2af18f1cdb625216f", size = 113094, upload_time = "2025-08-12T05:52:22.618Z" }, + { url = "https://files.pythonhosted.org/packages/25/02/78926c1efddcc7b3aa0bc3d6b33a822f7d898059f7cd9ace8c8318e559ef/wrapt-1.17.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e405adefb53a435f01efa7ccdec012c016b5a1d3f35459990afc39b6be4d5056", size = 110659, upload_time = "2025-08-12T05:52:24.057Z" }, + { url = "https://files.pythonhosted.org/packages/dc/ee/c414501ad518ac3e6fe184753632fe5e5ecacdcf0effc23f31c1e4f7bfcf/wrapt-1.17.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:88547535b787a6c9ce4086917b6e1d291aa8ed914fdd3a838b3539dc95c12804", size = 106946, upload_time = "2025-08-12T05:52:45.976Z" }, + { url = "https://files.pythonhosted.org/packages/be/44/a1bd64b723d13bb151d6cc91b986146a1952385e0392a78567e12149c7b4/wrapt-1.17.3-cp314-cp314t-win32.whl", hash = "sha256:41b1d2bc74c2cac6f9074df52b2efbef2b30bdfe5f40cb78f8ca22963bc62977", size = 38717, upload_time = "2025-08-12T05:53:15.214Z" }, + { url = "https://files.pythonhosted.org/packages/79/d9/7cfd5a312760ac4dd8bf0184a6ee9e43c33e47f3dadc303032ce012b8fa3/wrapt-1.17.3-cp314-cp314t-win_amd64.whl", hash = "sha256:73d496de46cd2cdbdbcce4ae4bcdb4afb6a11234a1df9c085249d55166b95116", size = 41334, upload_time = "2025-08-12T05:53:14.178Z" }, + { url = "https://files.pythonhosted.org/packages/46/78/10ad9781128ed2f99dbc474f43283b13fea8ba58723e98844367531c18e9/wrapt-1.17.3-cp314-cp314t-win_arm64.whl", hash = "sha256:f38e60678850c42461d4202739f9bf1e3a737c7ad283638251e79cc49effb6b6", size = 38471, upload_time = "2025-08-12T05:52:57.784Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f6/a933bd70f98e9cf3e08167fc5cd7aaaca49147e48411c0bd5ae701bb2194/wrapt-1.17.3-py3-none-any.whl", hash = "sha256:7171ae35d2c33d326ac19dd8facb1e82e5fd04ef8c6c0e394d7af55a55051c22", size = 23591, upload_time = "2025-08-12T05:53:20.674Z" }, +] + +[[package]] +name = "yarl" +version = "1.20.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "idna" }, + { name = "multidict" }, + { name = "propcache" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3c/fb/efaa23fa4e45537b827620f04cf8f3cd658b76642205162e072703a5b963/yarl-1.20.1.tar.gz", hash = "sha256:d017a4997ee50c91fd5466cef416231bb82177b93b029906cefc542ce14c35ac", size = 186428, upload_time = "2025-06-10T00:46:09.923Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5f/9a/cb7fad7d73c69f296eda6815e4a2c7ed53fc70c2f136479a91c8e5fbdb6d/yarl-1.20.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:bdcc4cd244e58593a4379fe60fdee5ac0331f8eb70320a24d591a3be197b94a9", size = 133667, upload_time = "2025-06-10T00:43:44.369Z" }, + { url = "https://files.pythonhosted.org/packages/67/38/688577a1cb1e656e3971fb66a3492501c5a5df56d99722e57c98249e5b8a/yarl-1.20.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b29a2c385a5f5b9c7d9347e5812b6f7ab267193c62d282a540b4fc528c8a9d2a", size = 91025, upload_time = "2025-06-10T00:43:46.295Z" }, + { url = "https://files.pythonhosted.org/packages/50/ec/72991ae51febeb11a42813fc259f0d4c8e0507f2b74b5514618d8b640365/yarl-1.20.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1112ae8154186dfe2de4732197f59c05a83dc814849a5ced892b708033f40dc2", size = 89709, upload_time = "2025-06-10T00:43:48.22Z" }, + { url = "https://files.pythonhosted.org/packages/99/da/4d798025490e89426e9f976702e5f9482005c548c579bdae792a4c37769e/yarl-1.20.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:90bbd29c4fe234233f7fa2b9b121fb63c321830e5d05b45153a2ca68f7d310ee", size = 352287, upload_time = "2025-06-10T00:43:49.924Z" }, + { url = "https://files.pythonhosted.org/packages/1a/26/54a15c6a567aac1c61b18aa0f4b8aa2e285a52d547d1be8bf48abe2b3991/yarl-1.20.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:680e19c7ce3710ac4cd964e90dad99bf9b5029372ba0c7cbfcd55e54d90ea819", size = 345429, upload_time = "2025-06-10T00:43:51.7Z" }, + { url = "https://files.pythonhosted.org/packages/d6/95/9dcf2386cb875b234353b93ec43e40219e14900e046bf6ac118f94b1e353/yarl-1.20.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4a979218c1fdb4246a05efc2cc23859d47c89af463a90b99b7c56094daf25a16", size = 365429, upload_time = "2025-06-10T00:43:53.494Z" }, + { url = "https://files.pythonhosted.org/packages/91/b2/33a8750f6a4bc224242a635f5f2cff6d6ad5ba651f6edcccf721992c21a0/yarl-1.20.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:255b468adf57b4a7b65d8aad5b5138dce6a0752c139965711bdcb81bc370e1b6", size = 363862, upload_time = "2025-06-10T00:43:55.766Z" }, + { url = "https://files.pythonhosted.org/packages/98/28/3ab7acc5b51f4434b181b0cee8f1f4b77a65919700a355fb3617f9488874/yarl-1.20.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a97d67108e79cfe22e2b430d80d7571ae57d19f17cda8bb967057ca8a7bf5bfd", size = 355616, upload_time = "2025-06-10T00:43:58.056Z" }, + { url = "https://files.pythonhosted.org/packages/36/a3/f666894aa947a371724ec7cd2e5daa78ee8a777b21509b4252dd7bd15e29/yarl-1.20.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8570d998db4ddbfb9a590b185a0a33dbf8aafb831d07a5257b4ec9948df9cb0a", size = 339954, upload_time = "2025-06-10T00:43:59.773Z" }, + { url = "https://files.pythonhosted.org/packages/f1/81/5f466427e09773c04219d3450d7a1256138a010b6c9f0af2d48565e9ad13/yarl-1.20.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:97c75596019baae7c71ccf1d8cc4738bc08134060d0adfcbe5642f778d1dca38", size = 365575, upload_time = "2025-06-10T00:44:02.051Z" }, + { url = "https://files.pythonhosted.org/packages/2e/e3/e4b0ad8403e97e6c9972dd587388940a032f030ebec196ab81a3b8e94d31/yarl-1.20.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:1c48912653e63aef91ff988c5432832692ac5a1d8f0fb8a33091520b5bbe19ef", size = 365061, upload_time = "2025-06-10T00:44:04.196Z" }, + { url = "https://files.pythonhosted.org/packages/ac/99/b8a142e79eb86c926f9f06452eb13ecb1bb5713bd01dc0038faf5452e544/yarl-1.20.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4c3ae28f3ae1563c50f3d37f064ddb1511ecc1d5584e88c6b7c63cf7702a6d5f", size = 364142, upload_time = "2025-06-10T00:44:06.527Z" }, + { url = "https://files.pythonhosted.org/packages/34/f2/08ed34a4a506d82a1a3e5bab99ccd930a040f9b6449e9fd050320e45845c/yarl-1.20.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c5e9642f27036283550f5f57dc6156c51084b458570b9d0d96100c8bebb186a8", size = 381894, upload_time = "2025-06-10T00:44:08.379Z" }, + { url = "https://files.pythonhosted.org/packages/92/f8/9a3fbf0968eac704f681726eff595dce9b49c8a25cd92bf83df209668285/yarl-1.20.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:2c26b0c49220d5799f7b22c6838409ee9bc58ee5c95361a4d7831f03cc225b5a", size = 383378, upload_time = "2025-06-10T00:44:10.51Z" }, + { url = "https://files.pythonhosted.org/packages/af/85/9363f77bdfa1e4d690957cd39d192c4cacd1c58965df0470a4905253b54f/yarl-1.20.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:564ab3d517e3d01c408c67f2e5247aad4019dcf1969982aba3974b4093279004", size = 374069, upload_time = "2025-06-10T00:44:12.834Z" }, + { url = "https://files.pythonhosted.org/packages/35/99/9918c8739ba271dcd935400cff8b32e3cd319eaf02fcd023d5dcd487a7c8/yarl-1.20.1-cp312-cp312-win32.whl", hash = "sha256:daea0d313868da1cf2fac6b2d3a25c6e3a9e879483244be38c8e6a41f1d876a5", size = 81249, upload_time = "2025-06-10T00:44:14.731Z" }, + { url = "https://files.pythonhosted.org/packages/eb/83/5d9092950565481b413b31a23e75dd3418ff0a277d6e0abf3729d4d1ce25/yarl-1.20.1-cp312-cp312-win_amd64.whl", hash = "sha256:48ea7d7f9be0487339828a4de0360d7ce0efc06524a48e1810f945c45b813698", size = 86710, upload_time = "2025-06-10T00:44:16.716Z" }, + { url = "https://files.pythonhosted.org/packages/8a/e1/2411b6d7f769a07687acee88a062af5833cf1966b7266f3d8dfb3d3dc7d3/yarl-1.20.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:0b5ff0fbb7c9f1b1b5ab53330acbfc5247893069e7716840c8e7d5bb7355038a", size = 131811, upload_time = "2025-06-10T00:44:18.933Z" }, + { url = "https://files.pythonhosted.org/packages/b2/27/584394e1cb76fb771371770eccad35de400e7b434ce3142c2dd27392c968/yarl-1.20.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:14f326acd845c2b2e2eb38fb1346c94f7f3b01a4f5c788f8144f9b630bfff9a3", size = 90078, upload_time = "2025-06-10T00:44:20.635Z" }, + { url = "https://files.pythonhosted.org/packages/bf/9a/3246ae92d4049099f52d9b0fe3486e3b500e29b7ea872d0f152966fc209d/yarl-1.20.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f60e4ad5db23f0b96e49c018596707c3ae89f5d0bd97f0ad3684bcbad899f1e7", size = 88748, upload_time = "2025-06-10T00:44:22.34Z" }, + { url = "https://files.pythonhosted.org/packages/a3/25/35afe384e31115a1a801fbcf84012d7a066d89035befae7c5d4284df1e03/yarl-1.20.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:49bdd1b8e00ce57e68ba51916e4bb04461746e794e7c4d4bbc42ba2f18297691", size = 349595, upload_time = "2025-06-10T00:44:24.314Z" }, + { url = "https://files.pythonhosted.org/packages/28/2d/8aca6cb2cabc8f12efcb82749b9cefecbccfc7b0384e56cd71058ccee433/yarl-1.20.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:66252d780b45189975abfed839616e8fd2dbacbdc262105ad7742c6ae58f3e31", size = 342616, upload_time = "2025-06-10T00:44:26.167Z" }, + { url = "https://files.pythonhosted.org/packages/0b/e9/1312633d16b31acf0098d30440ca855e3492d66623dafb8e25b03d00c3da/yarl-1.20.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:59174e7332f5d153d8f7452a102b103e2e74035ad085f404df2e40e663a22b28", size = 361324, upload_time = "2025-06-10T00:44:27.915Z" }, + { url = "https://files.pythonhosted.org/packages/bc/a0/688cc99463f12f7669eec7c8acc71ef56a1521b99eab7cd3abb75af887b0/yarl-1.20.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e3968ec7d92a0c0f9ac34d5ecfd03869ec0cab0697c91a45db3fbbd95fe1b653", size = 359676, upload_time = "2025-06-10T00:44:30.041Z" }, + { url = "https://files.pythonhosted.org/packages/af/44/46407d7f7a56e9a85a4c207724c9f2c545c060380718eea9088f222ba697/yarl-1.20.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d1a4fbb50e14396ba3d375f68bfe02215d8e7bc3ec49da8341fe3157f59d2ff5", size = 352614, upload_time = "2025-06-10T00:44:32.171Z" }, + { url = "https://files.pythonhosted.org/packages/b1/91/31163295e82b8d5485d31d9cf7754d973d41915cadce070491778d9c9825/yarl-1.20.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:11a62c839c3a8eac2410e951301309426f368388ff2f33799052787035793b02", size = 336766, upload_time = "2025-06-10T00:44:34.494Z" }, + { url = "https://files.pythonhosted.org/packages/b4/8e/c41a5bc482121f51c083c4c2bcd16b9e01e1cf8729e380273a952513a21f/yarl-1.20.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:041eaa14f73ff5a8986b4388ac6bb43a77f2ea09bf1913df7a35d4646db69e53", size = 364615, upload_time = "2025-06-10T00:44:36.856Z" }, + { url = "https://files.pythonhosted.org/packages/e3/5b/61a3b054238d33d70ea06ebba7e58597891b71c699e247df35cc984ab393/yarl-1.20.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:377fae2fef158e8fd9d60b4c8751387b8d1fb121d3d0b8e9b0be07d1b41e83dc", size = 360982, upload_time = "2025-06-10T00:44:39.141Z" }, + { url = "https://files.pythonhosted.org/packages/df/a3/6a72fb83f8d478cb201d14927bc8040af901811a88e0ff2da7842dd0ed19/yarl-1.20.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:1c92f4390e407513f619d49319023664643d3339bd5e5a56a3bebe01bc67ec04", size = 369792, upload_time = "2025-06-10T00:44:40.934Z" }, + { url = "https://files.pythonhosted.org/packages/7c/af/4cc3c36dfc7c077f8dedb561eb21f69e1e9f2456b91b593882b0b18c19dc/yarl-1.20.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:d25ddcf954df1754ab0f86bb696af765c5bfaba39b74095f27eececa049ef9a4", size = 382049, upload_time = "2025-06-10T00:44:42.854Z" }, + { url = "https://files.pythonhosted.org/packages/19/3a/e54e2c4752160115183a66dc9ee75a153f81f3ab2ba4bf79c3c53b33de34/yarl-1.20.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:909313577e9619dcff8c31a0ea2aa0a2a828341d92673015456b3ae492e7317b", size = 384774, upload_time = "2025-06-10T00:44:45.275Z" }, + { url = "https://files.pythonhosted.org/packages/9c/20/200ae86dabfca89060ec6447649f219b4cbd94531e425e50d57e5f5ac330/yarl-1.20.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:793fd0580cb9664548c6b83c63b43c477212c0260891ddf86809e1c06c8b08f1", size = 374252, upload_time = "2025-06-10T00:44:47.31Z" }, + { url = "https://files.pythonhosted.org/packages/83/75/11ee332f2f516b3d094e89448da73d557687f7d137d5a0f48c40ff211487/yarl-1.20.1-cp313-cp313-win32.whl", hash = "sha256:468f6e40285de5a5b3c44981ca3a319a4b208ccc07d526b20b12aeedcfa654b7", size = 81198, upload_time = "2025-06-10T00:44:49.164Z" }, + { url = "https://files.pythonhosted.org/packages/ba/ba/39b1ecbf51620b40ab402b0fc817f0ff750f6d92712b44689c2c215be89d/yarl-1.20.1-cp313-cp313-win_amd64.whl", hash = "sha256:495b4ef2fea40596bfc0affe3837411d6aa3371abcf31aac0ccc4bdd64d4ef5c", size = 86346, upload_time = "2025-06-10T00:44:51.182Z" }, + { url = "https://files.pythonhosted.org/packages/43/c7/669c52519dca4c95153c8ad96dd123c79f354a376346b198f438e56ffeb4/yarl-1.20.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:f60233b98423aab21d249a30eb27c389c14929f47be8430efa7dbd91493a729d", size = 138826, upload_time = "2025-06-10T00:44:52.883Z" }, + { url = "https://files.pythonhosted.org/packages/6a/42/fc0053719b44f6ad04a75d7f05e0e9674d45ef62f2d9ad2c1163e5c05827/yarl-1.20.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:6f3eff4cc3f03d650d8755c6eefc844edde99d641d0dcf4da3ab27141a5f8ddf", size = 93217, upload_time = "2025-06-10T00:44:54.658Z" }, + { url = "https://files.pythonhosted.org/packages/4f/7f/fa59c4c27e2a076bba0d959386e26eba77eb52ea4a0aac48e3515c186b4c/yarl-1.20.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:69ff8439d8ba832d6bed88af2c2b3445977eba9a4588b787b32945871c2444e3", size = 92700, upload_time = "2025-06-10T00:44:56.784Z" }, + { url = "https://files.pythonhosted.org/packages/2f/d4/062b2f48e7c93481e88eff97a6312dca15ea200e959f23e96d8ab898c5b8/yarl-1.20.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3cf34efa60eb81dd2645a2e13e00bb98b76c35ab5061a3989c7a70f78c85006d", size = 347644, upload_time = "2025-06-10T00:44:59.071Z" }, + { url = "https://files.pythonhosted.org/packages/89/47/78b7f40d13c8f62b499cc702fdf69e090455518ae544c00a3bf4afc9fc77/yarl-1.20.1-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:8e0fe9364ad0fddab2688ce72cb7a8e61ea42eff3c7caeeb83874a5d479c896c", size = 323452, upload_time = "2025-06-10T00:45:01.605Z" }, + { url = "https://files.pythonhosted.org/packages/eb/2b/490d3b2dc66f52987d4ee0d3090a147ea67732ce6b4d61e362c1846d0d32/yarl-1.20.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8f64fbf81878ba914562c672024089e3401974a39767747691c65080a67b18c1", size = 346378, upload_time = "2025-06-10T00:45:03.946Z" }, + { url = "https://files.pythonhosted.org/packages/66/ad/775da9c8a94ce925d1537f939a4f17d782efef1f973039d821cbe4bcc211/yarl-1.20.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f6342d643bf9a1de97e512e45e4b9560a043347e779a173250824f8b254bd5ce", size = 353261, upload_time = "2025-06-10T00:45:05.992Z" }, + { url = "https://files.pythonhosted.org/packages/4b/23/0ed0922b47a4f5c6eb9065d5ff1e459747226ddce5c6a4c111e728c9f701/yarl-1.20.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56dac5f452ed25eef0f6e3c6a066c6ab68971d96a9fb441791cad0efba6140d3", size = 335987, upload_time = "2025-06-10T00:45:08.227Z" }, + { url = "https://files.pythonhosted.org/packages/3e/49/bc728a7fe7d0e9336e2b78f0958a2d6b288ba89f25a1762407a222bf53c3/yarl-1.20.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7d7f497126d65e2cad8dc5f97d34c27b19199b6414a40cb36b52f41b79014be", size = 329361, upload_time = "2025-06-10T00:45:10.11Z" }, + { url = "https://files.pythonhosted.org/packages/93/8f/b811b9d1f617c83c907e7082a76e2b92b655400e61730cd61a1f67178393/yarl-1.20.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:67e708dfb8e78d8a19169818eeb5c7a80717562de9051bf2413aca8e3696bf16", size = 346460, upload_time = "2025-06-10T00:45:12.055Z" }, + { url = "https://files.pythonhosted.org/packages/70/fd/af94f04f275f95da2c3b8b5e1d49e3e79f1ed8b6ceb0f1664cbd902773ff/yarl-1.20.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:595c07bc79af2494365cc96ddeb772f76272364ef7c80fb892ef9d0649586513", size = 334486, upload_time = "2025-06-10T00:45:13.995Z" }, + { url = "https://files.pythonhosted.org/packages/84/65/04c62e82704e7dd0a9b3f61dbaa8447f8507655fd16c51da0637b39b2910/yarl-1.20.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:7bdd2f80f4a7df852ab9ab49484a4dee8030023aa536df41f2d922fd57bf023f", size = 342219, upload_time = "2025-06-10T00:45:16.479Z" }, + { url = "https://files.pythonhosted.org/packages/91/95/459ca62eb958381b342d94ab9a4b6aec1ddec1f7057c487e926f03c06d30/yarl-1.20.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:c03bfebc4ae8d862f853a9757199677ab74ec25424d0ebd68a0027e9c639a390", size = 350693, upload_time = "2025-06-10T00:45:18.399Z" }, + { url = "https://files.pythonhosted.org/packages/a6/00/d393e82dd955ad20617abc546a8f1aee40534d599ff555ea053d0ec9bf03/yarl-1.20.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:344d1103e9c1523f32a5ed704d576172d2cabed3122ea90b1d4e11fe17c66458", size = 355803, upload_time = "2025-06-10T00:45:20.677Z" }, + { url = "https://files.pythonhosted.org/packages/9e/ed/c5fb04869b99b717985e244fd93029c7a8e8febdfcffa06093e32d7d44e7/yarl-1.20.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:88cab98aa4e13e1ade8c141daeedd300a4603b7132819c484841bb7af3edce9e", size = 341709, upload_time = "2025-06-10T00:45:23.221Z" }, + { url = "https://files.pythonhosted.org/packages/24/fd/725b8e73ac2a50e78a4534ac43c6addf5c1c2d65380dd48a9169cc6739a9/yarl-1.20.1-cp313-cp313t-win32.whl", hash = "sha256:b121ff6a7cbd4abc28985b6028235491941b9fe8fe226e6fdc539c977ea1739d", size = 86591, upload_time = "2025-06-10T00:45:25.793Z" }, + { url = "https://files.pythonhosted.org/packages/94/c3/b2e9f38bc3e11191981d57ea08cab2166e74ea770024a646617c9cddd9f6/yarl-1.20.1-cp313-cp313t-win_amd64.whl", hash = "sha256:541d050a355bbbc27e55d906bc91cb6fe42f96c01413dd0f4ed5a5240513874f", size = 93003, upload_time = "2025-06-10T00:45:27.752Z" }, + { url = "https://files.pythonhosted.org/packages/b4/2d/2345fce04cfd4bee161bf1e7d9cdc702e3e16109021035dbb24db654a622/yarl-1.20.1-py3-none-any.whl", hash = "sha256:83b8eb083fe4683c6115795d9fc1cfaf2cbbefb19b3a1cb68f6527460f483a77", size = 46542, upload_time = "2025-06-10T00:46:07.521Z" }, +] + +[[package]] +name = "zarr" +version = "2.18.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "asciitree" }, + { name = "fasteners", marker = "sys_platform != 'emscripten'" }, + { 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, 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, upload_time = "2025-04-09T07:59:27.039Z" }, +] + +[[package]] +name = "zarr-checksum" +version = "0.4.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "tqdm" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b4/af/eb603e6d7f02d16a60b05335ed97a08de4c71f5b109c2a65f3a571d2c4be/zarr_checksum-0.4.7.tar.gz", hash = "sha256:081f163d52533a286bc8249a241da5614b5dab0c06377b208980dc205e272da9", size = 12414, upload_time = "2025-04-01T15:54:48.548Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e3/6b/a57376f2713b79e5f2eb8003ebc569aa3201a36779ee1472404f183e3c87/zarr_checksum-0.4.7-py3-none-any.whl", hash = "sha256:97cbffe2288338f9083f92a2312052f045fb2154a6f4ddbbcb1bde109b6fd22e", size = 15292, upload_time = "2025-04-01T15:54:47.27Z" }, +] From 9d13ab9e61ea37dec722f26c6b6a329745bed978 Mon Sep 17 00:00:00 2001 From: ncguilbeault Date: Tue, 7 Oct 2025 18:48:41 +0100 Subject: [PATCH 02/17] Added an example to perform online filtering --- .../OnlineFiltering/.bonsai/Bonsai.config | 134 ++ .../OnlineFiltering/.bonsai/NuGet.config | 5 + .../OnlineFiltering/.bonsai/Setup.ps1 | 21 + .../OnlineFiltering/.bonsai/Setup.sh | 41 + .../OnlineFiltering/.bonsai/activate | 15 + .../OnlineFiltering/.bonsai/deactivate | 8 + .../NeuralLatents/OnlineFiltering/.bonsai/run | 58 + .../OnlineFiltering/.python-version | 1 + .../OnlineFiltering/OnlineFiltering.bonsai | 383 ++++ .../NeuralLatents/OnlineFiltering/README.md | 34 + .../OnlineFiltering/download_data.py | 46 + .../OnlineFiltering/pyproject.toml | 13 + .../OnlineFiltering/train_model.py | 0 .../NeuralLatents/OnlineFiltering/uv.lock | 1833 +++++++++++++++++ 14 files changed, 2592 insertions(+) create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/.bonsai/Bonsai.config create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/.bonsai/NuGet.config create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/.bonsai/Setup.ps1 create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/.bonsai/Setup.sh create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/.bonsai/activate create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/.bonsai/deactivate create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/.bonsai/run create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/.python-version create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/OnlineFiltering.bonsai create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/README.md create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/download_data.py create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/pyproject.toml create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/train_model.py create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/uv.lock diff --git a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/.bonsai/Bonsai.config b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/.bonsai/Bonsai.config new file mode 100644 index 0000000..110f42f --- /dev/null +++ b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/.bonsai/Bonsai.config @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/.bonsai/NuGet.config b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/.bonsai/NuGet.config new file mode 100644 index 0000000..aa5beec --- /dev/null +++ b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/.bonsai/NuGet.config @@ -0,0 +1,5 @@ + + + + + diff --git a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/.bonsai/Setup.ps1 b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/.bonsai/Setup.ps1 new file mode 100644 index 0000000..76b5c46 --- /dev/null +++ b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/.bonsai/Setup.ps1 @@ -0,0 +1,21 @@ +Push-Location $PSScriptRoot +if (!(Test-Path "./Bonsai.exe")) { + $release = "https://github.com/bonsai-rx/bonsai/releases/latest/download/Bonsai.zip" + $configPath = "./Bonsai.config" + if (Test-Path $configPath) { + [xml]$config = Get-Content $configPath + $bootstrapper = $config.PackageConfiguration.Packages.Package.where{$_.id -eq 'Bonsai'} + if ($bootstrapper) { + $version = $bootstrapper.version + $release = "https://github.com/bonsai-rx/bonsai/releases/download/$version/Bonsai.zip" + } + } + Invoke-WebRequest $release -OutFile "temp.zip" + Move-Item -Path "NuGet.config" "temp.config" -ErrorAction SilentlyContinue + Expand-Archive "temp.zip" -DestinationPath "." -Force + Move-Item -Path "temp.config" "NuGet.config" -Force -ErrorAction SilentlyContinue + Remove-Item -Path "temp.zip" + Remove-Item -Path "Bonsai32.exe" +} +& .\Bonsai.exe --no-editor +Pop-Location \ No newline at end of file diff --git a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/.bonsai/Setup.sh b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/.bonsai/Setup.sh new file mode 100644 index 0000000..941d850 --- /dev/null +++ b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/.bonsai/Setup.sh @@ -0,0 +1,41 @@ +#! /bin/bash + +SETUP_SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &> /dev/null && pwd)" + +DEFAULT_VERSION="latest" +VERSION="$DEFAULT_VERSION" + +while [[ "$#" -gt 0 ]]; do + case $1 in + --version) VERSION="$2"; shift ;; + *) echo "Unknown parameter passed: $1"; exit 1 ;; + esac + shift +done + +echo "Setting up Bonsai v=$VERSION environment..." + +if [ ! -f "$SETUP_SCRIPT_DIR/Bonsai.exe" ]; then + CONFIG="$SETUP_SCRIPT_DIR/Bonsai.config" + if [ -f "$CONFIG" ]; then + DETECTED=$(xmllint --xpath '//PackageConfiguration/Packages/Package[@id="Bonsai"]/@version' "$CONFIG" | sed -e 's/^[^"]*"//' -e 's/"$//') + echo "Version detected v=$DETECTED." + RELEASE="https://github.com/bonsai-rx/bonsai/releases/download/$DETECTED/Bonsai.zip" + else + if [ $VERSION = "latest" ]; then + RELEASE="https://github.com/bonsai-rx/bonsai/releases/latest/download/Bonsai.zip" + else + RELEASE="https://github.com/bonsai-rx/bonsai/releases/download/$VERSION/Bonsai.zip" + fi + fi + echo "Download URL: $RELEASE" + wget $RELEASE -O "$SETUP_SCRIPT_DIR/temp.zip" + mv -f "$SETUP_SCRIPT_DIR/NuGet.config" "$SETUP_SCRIPT_DIR/temp.config" + unzip -d "$SETUP_SCRIPT_DIR" -o "$SETUP_SCRIPT_DIR/temp.zip" + mv -f "$SETUP_SCRIPT_DIR/temp.config" "$SETUP_SCRIPT_DIR/NuGet.config" + rm -rf "$SETUP_SCRIPT_DIR/temp.zip" + rm -rf "$SETUP_SCRIPT_DIR/Bonsai32.exe" +fi + +source "$SETUP_SCRIPT_DIR/activate" +source "$SETUP_SCRIPT_DIR/run" --no-editor diff --git a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/.bonsai/activate b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/.bonsai/activate new file mode 100644 index 0000000..ddf75f3 --- /dev/null +++ b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/.bonsai/activate @@ -0,0 +1,15 @@ +#!/bin/bash +# activate.sh +if [[ -v BONSAI_EXE_PATH ]]; then + echo "Error! Cannot have multiple bonsai environments activated at the same time. Please deactivate the current environment before activating the new one." + return +fi +BONSAI_ENV_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &> /dev/null && pwd)" +export BONSAI_ENV_DIR +export BONSAI_EXE_PATH="$BONSAI_ENV_DIR/Bonsai.exe" +export ORIGINAL_PS1="$PS1" +export PS1="($(basename "$BONSAI_ENV_DIR")) $PS1" +alias bonsai='source "$BONSAI_ENV_DIR"/run' +alias bonsai-clean='GTK_DATA_PREFIX= source "$BONSAI_ENV_DIR"/run' +alias deactivate='source "$BONSAI_ENV_DIR"/deactivate' +echo "Activated bonsai environment in $BONSAI_ENV_DIR" \ No newline at end of file diff --git a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/.bonsai/deactivate b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/.bonsai/deactivate new file mode 100644 index 0000000..43233d9 --- /dev/null +++ b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/.bonsai/deactivate @@ -0,0 +1,8 @@ +#!/bin/bash +unset BONSAI_EXE_PATH +export PS1="$ORIGINAL_PS1" +unset ORIGINAL_PS1 +unalias bonsai +unalias bonsai-clean +unalias deactivate +echo "Deactivated bonsai environment." \ No newline at end of file diff --git a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/.bonsai/run b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/.bonsai/run new file mode 100644 index 0000000..bffd6cf --- /dev/null +++ b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/.bonsai/run @@ -0,0 +1,58 @@ +#!/bin/bash +# run.sh + +SETUP_SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &> /dev/null && pwd)" +CONFIG="$SETUP_SCRIPT_DIR/Bonsai.config" + +cleanup() { + update_paths_to_windows +} + +update_paths_to_linux() { + ASSEMBLYLOCATIONS=$(xmllint --xpath '//PackageConfiguration/AssemblyLocations/AssemblyLocation/@location' "$CONFIG" | sed -e 's/^[^"]*"//' -e 's/"$//') + for ASSEMBLYLOCATION in $ASSEMBLYLOCATIONS; do + NEWASSEMBLYLOCATION="${ASSEMBLYLOCATION//\\/\/}" + xmlstarlet edit --inplace --update "/PackageConfiguration/AssemblyLocations/AssemblyLocation[@location='$ASSEMBLYLOCATION']/@location" --value "$NEWASSEMBLYLOCATION" "$CONFIG" + done + + LIBRARYFOLDERS=$(xmllint --xpath '//PackageConfiguration/LibraryFolders/LibraryFolder/@path' "$CONFIG" | sed -e 's/^[^"]*"//' -e 's/"$//') + for LIBRARYFOLDER in $LIBRARYFOLDERS; do + NEWLIBRARYFOLDER="${LIBRARYFOLDER//\\/\/}" + xmlstarlet edit --inplace --update "//PackageConfiguration/LibraryFolders/LibraryFolder[@path='$LIBRARYFOLDER']/@path" --value "$NEWLIBRARYFOLDER" "$CONFIG" + done +} + +update_paths_to_windows() { + ASSEMBLYLOCATIONS=$(xmllint --xpath '//PackageConfiguration/AssemblyLocations/AssemblyLocation/@location' "$CONFIG" | sed -e 's/^[^"]*"//' -e 's/"$//') + for ASSEMBLYLOCATION in $ASSEMBLYLOCATIONS; do + NEWASSEMBLYLOCATION="${ASSEMBLYLOCATION//\//\\}" + xmlstarlet edit --inplace --update "/PackageConfiguration/AssemblyLocations/AssemblyLocation[@location='$ASSEMBLYLOCATION']/@location" --value "$NEWASSEMBLYLOCATION" "$CONFIG" + done + + LIBRARYFOLDERS=$(xmllint --xpath '//PackageConfiguration/LibraryFolders/LibraryFolder/@path' "$CONFIG" | sed -e 's/^[^"]*"//' -e 's/"$//') + for LIBRARYFOLDER in $LIBRARYFOLDERS; do + NEWLIBRARYFOLDER="${LIBRARYFOLDER//\//\\}" + xmlstarlet edit --inplace --update "//PackageConfiguration/LibraryFolders/LibraryFolder[@path='$LIBRARYFOLDER']/@path" --value "$NEWLIBRARYFOLDER" "$CONFIG" + done +} + +if [[ -v BONSAI_EXE_PATH ]]; then + if [ ! -f "$BONSAI_EXE_PATH" ]; then + bash "$BONSAI_ENV_DIR"/Setup.sh + bash "$BONSAI_ENV_DIR"/run "$@" + else + BONSAI_VERSION=$(xmllint --xpath "//PackageConfiguration/Packages/Package[@id='Bonsai']/@version" "$CONFIG" | sed -e 's/^[^"]*"//' -e 's/"$//') + if [[ -z ${BONSAI_VERSION+x} ]] && [ "$BONSAI_VERSION" \< "2.8.4" ]; then + echo "Updating paths to Linux format..." + trap cleanup EXIT INT TERM + update_paths_to_linux + mono "$BONSAI_EXE_PATH" "$@" + cleanup + else + mono "$BONSAI_EXE_PATH" "$@" + fi + fi +else + echo "BONSAI_EXE_PATH is not set. Please set the path to the Bonsai executable." + return +fi \ No newline at end of file diff --git a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/.python-version b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/.python-version new file mode 100644 index 0000000..e4fba21 --- /dev/null +++ b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/.python-version @@ -0,0 +1 @@ +3.12 diff --git a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/OnlineFiltering.bonsai b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/OnlineFiltering.bonsai new file mode 100644 index 0000000..e7a1d4b --- /dev/null +++ b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/OnlineFiltering.bonsai @@ -0,0 +1,383 @@ + + + + + + LoadData + + + + + ../../../../datasets/transformed_binned_spikes.bin + 0 + 100 + 142 + 1 + F64 + ColumnMajor + + + + + + + + + + + + it.squeeze(null).unsqueeze(0) + + + SpikeCounts + + + + + + + + + + + + LoadModel + + + + + KalmanFilter + Float64 + 10 + 142 + + + 0.1 + 0.01 + + + + + + + + + + + + + LearnParameters + + + + SpikeCounts + + + it.squeeze(null) + + + + 1000 + 1 + + + + + 1 + + + + + KalmanFilter + 2 + 10 + true + true + true + true + true + true + true + + + + + + + Source1 + + + Finished + + + + + + + + + + + ExpectationMaximizationResult + + + + + + + + + + + + + + + + InferNeuralLatents + + + + SpikeCounts + + + ExpectationMaximizationResult + + + + + + + KalmanFilter + + + + + KalmanFilter + + + + + + + + + + + + + + + + NeuralLatents + true + + + + + + + + + + + + + + + LoadData + + + + + ../../../../datasets/transformed_binned_spikes.bin + 0 + 100 + 142 + 1 + F64 + ColumnMajor + + + + + + + + + + + + it.squeeze(null).unsqueeze(0) + + + SpikeCounts + + + + + + + + + + + + LoadModel + + + + + KalmanFilter + Float64 + 10 + 142 + + + 0.1 + 0.01 + + + + + + + + + + + + + LearnParameters + + + + SpikeCounts + + + it.squeeze(null) + + + + 1000 + 1 + + + + + 1 + + + + + KalmanFilter + 2 + 10 + true + true + true + true + true + true + true + + + + + + + Source1 + + + Finished + + + + + + + + + + + ExpectationMaximizationResult + + + + + + + + + + + + + + + + InferNeuralLatents + + + + SpikeCounts + + + ExpectationMaximizationResult + + + + + + + KalmanFilter + + + + + KalmanFilter + + + + + + + + + + + + + + + + NeuralLatents + true + + + + + + + + + + \ No newline at end of file diff --git a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/README.md b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/README.md new file mode 100644 index 0000000..4c42e35 --- /dev/null +++ b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/README.md @@ -0,0 +1,34 @@ +# Inferring Neural Latents using Online Kalman Filtering + +In the following example, you will see how the `Bonsai.ML.Lds.Torch` package can be used for inferring neural latents online using a Kalman filter from binned spike counts. + +### Download the Dataset + +To run the example, you need to download the dataset from DANDI and transform the raw spike data into binned spike counts. We provide a convenient python script and `uv` environment to easily download and transform the raw data. First, make sure `uv` is installed on your computer, which you can do by following the guide [here](https://docs.astral.sh/uv/getting-started/installation/). + +Next, open up a terminal and run the following commands. + +```bash +cd examples/Torch/NeuralLatents/OnlineFiltering +uv run download_data.py +``` + +When the script finishes, you should see a file called `transformed_binned_spikes.bin` inside the `datasets` folders. + +### Running the Workflow + +The example workflow is shown here: + +:::workflow +![Online Filtering of Neural Latents](OnlineFiltering.bonsai) +::: + +The first group node, `LoadData`, loads the `datasets/transformed_binned_spikes.bin` file and produces a sequence of binned spike counts, one vector for each time point. Each spike count vector gets converted into a `Tensor` object. It then reshapes it into a column vector of `time` x `neurons` (in this case, time is `1`) and passes it to a `PublishSubject` called `SpikeCounts` to be used in the downstream processing pipeline. + +The `LoadModel` group node uses the `CreateKalmanFilter` node to specify the model. We leave most of the optional parameters blank, but use `0.01` and `0.1` as our initial guesses of the `MeasurementNoiseVariance` and `ProcessNoiseVariance`, respectively. We set the `NumStates` to `10` and the `NumObservations` to `142` to match the number of spiking neurons contained in the dataset. + +In the `LearnParameters` group node, the `SpikeCounts` are fed into `Buffer`, which will collect the spike counts into a small batch of `1000`. Realistically, you would want to increase the size of this batch to include more data when running the EM algorithm. The sequence completes once the first batch is fed into the `ExpectationMaximization` node, which uses the EM algorithm to iteratively optimize the models selected parameters given the batch of spike count data. In this example, all the model parameters are estimated, but we set a very small number of iterations and large tolerance. Again, in a real experiment, you would likely need to increase the number of iterations to get accurate estimates. The EM algorithm will iterate until it reaches the `MaxIterations` count or until the algorithm converges to less than the `Tolerance`. After some time, the algorithm will finish and the output will be passed to a `BehaviorSubject` called `ExpectationMaximizationResult` to trigger the inference procedure. + +The last group node, `InferNeuralLatents`, contains the inference pipeline and starts when the `ExpectationMaximizationResult` is emitted. The `Filter` step runs causal filtering over each new data point it observes from the `SpikeCounts` subject. This output is fed into the `Orthogonalize` node, which extracts the principal components of the measurement function and projects the state mean and covariance into the orthogonalized space. + +When you start the workflow, a window will pop up with the title `NeuralLatents`. As the EM algorithm runs, nothing will be displayed at first. After some time (~1 min), the EM algorithm will finish, and you will start to see the filtered latents displayed in the chart. \ No newline at end of file diff --git a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/download_data.py b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/download_data.py new file mode 100644 index 0000000..8fb4416 --- /dev/null +++ b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/download_data.py @@ -0,0 +1,46 @@ +# Import libraries +import numpy as np +import remfile, h5py +from dandi.dandiapi import DandiAPIClient +from pynwb import NWBHDF5IO +import os + +# set base directory to save data +base_dir = os.path.join(os.path.realpath(os.path.dirname(__file__)), "..", "..", "..", "..", "datasets") + +# dandi dataset info +dandiset_ID = "000140" +dandi_filepath = "sub-Jenkins/sub-Jenkins_ses-small_desc-train_behavior+ecephys.nwb" + +# download data using remfile and dandi +with DandiAPIClient() as client: + asset = client.get_dandiset(dandiset_ID, + "draft").get_asset_by_path(dandi_filepath) + s3_path = asset.get_content_url(follow_redirects=1, strip_query=True) + cache = remfile.DiskCache(os.path.join(base_dir, "remfile_cache")) + rf = remfile.File(s3_path, disk_cache=cache) + with h5py.File(rf, "r") as h: + with NWBHDF5IO(file=h, mode="r") as io: + nwbfile = io.read() + # extract spike sorted units dataframe + units_df = nwbfile.units.to_dataframe() + +# bin spikes +n_clusters = units_df.shape[0] +bin_size = 0.02 + +spike_times = [units_df.iloc[n]['spike_times'] for n in range(n_clusters)] +t_max = max(max(st) for st in spike_times if len(st) > 0) + +bin_edges = np.arange(0, t_max + bin_size, bin_size) +bin_centers = (bin_edges[1:] + bin_edges[:-1]) / 2 +n_bins = len(bin_edges) - 1 + +spike_counts = np.zeros((n_clusters, n_bins), dtype=int) + +for n, spikes in enumerate(spike_times): + spike_counts[n], _ = np.histogram(spikes, bins=bin_edges) + +# transform binned spikes using square-root transform +transformed_binned_spikes = np.sqrt(spike_counts + 0.5) +transformed_binned_spikes.astype(float).tofile(os.path.join(base_dir, "transformed_binned_spikes.bin")) \ No newline at end of file diff --git a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/pyproject.toml b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/pyproject.toml new file mode 100644 index 0000000..29a08db --- /dev/null +++ b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/pyproject.toml @@ -0,0 +1,13 @@ +[project] +name = "estimatingneurallatents" +version = "0.1.0" +description = "Example for estimating neural latents" +readme = "README.md" +requires-python = ">=3.12" +dependencies = [ + "dandi>=0.71.4", + "h5py>=3.14.0", + "numpy>=2.3.3", + "pynwb>=3.1.2", + "remfile>=0.1.13", +] diff --git a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/train_model.py b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/train_model.py new file mode 100644 index 0000000..e69de29 diff --git a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/uv.lock b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/uv.lock new file mode 100644 index 0000000..ba10581 --- /dev/null +++ b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/uv.lock @@ -0,0 +1,1833 @@ +version = 1 +revision = 2 +requires-python = ">=3.12" +resolution-markers = [ + "python_full_version >= '3.13'", + "python_full_version < '3.13'", +] + +[[package]] +name = "acres" +version = "0.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ec/ba/94b63a9af588fbf7bde25ce44d55456199654a92fb7b2337767198a824b0/acres-0.5.0.tar.gz", hash = "sha256:128b6447bf5df3b6210264feccbfa018b4ac5bd337358319aec6563f99db8f3a", size = 57750, upload_time = "2025-06-04T12:40:30.329Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/39/e8/806475fe4cdfd8635535d3fa11bd61d19b7cc94b61b9147ebdd2ab4cbbee/acres-0.5.0-py3-none-any.whl", hash = "sha256:fcc32b974b510897de0f041609b4234f9ff03e2e960aea088f63973fb106c772", size = 12703, upload_time = "2025-06-04T12:40:28.745Z" }, +] + +[[package]] +name = "aiohappyeyeballs" +version = "2.6.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/26/30/f84a107a9c4331c14b2b586036f40965c128aa4fee4dda5d3d51cb14ad54/aiohappyeyeballs-2.6.1.tar.gz", hash = "sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558", size = 22760, upload_time = "2025-03-12T01:42:48.764Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0f/15/5bf3b99495fb160b63f95972b81750f18f7f4e02ad051373b669d17d44f2/aiohappyeyeballs-2.6.1-py3-none-any.whl", hash = "sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8", size = 15265, upload_time = "2025-03-12T01:42:47.083Z" }, +] + +[[package]] +name = "aiohttp" +version = "3.12.15" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohappyeyeballs" }, + { name = "aiosignal" }, + { name = "attrs" }, + { name = "frozenlist" }, + { name = "multidict" }, + { name = "propcache" }, + { name = "yarl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9b/e7/d92a237d8802ca88483906c388f7c201bbe96cd80a165ffd0ac2f6a8d59f/aiohttp-3.12.15.tar.gz", hash = "sha256:4fc61385e9c98d72fcdf47e6dd81833f47b2f77c114c29cd64a361be57a763a2", size = 7823716, upload_time = "2025-07-29T05:52:32.215Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/63/97/77cb2450d9b35f517d6cf506256bf4f5bda3f93a66b4ad64ba7fc917899c/aiohttp-3.12.15-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:802d3868f5776e28f7bf69d349c26fc0efadb81676d0afa88ed00d98a26340b7", size = 702333, upload_time = "2025-07-29T05:50:46.507Z" }, + { url = "https://files.pythonhosted.org/packages/83/6d/0544e6b08b748682c30b9f65640d006e51f90763b41d7c546693bc22900d/aiohttp-3.12.15-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f2800614cd560287be05e33a679638e586a2d7401f4ddf99e304d98878c29444", size = 476948, upload_time = "2025-07-29T05:50:48.067Z" }, + { url = "https://files.pythonhosted.org/packages/3a/1d/c8c40e611e5094330284b1aea8a4b02ca0858f8458614fa35754cab42b9c/aiohttp-3.12.15-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8466151554b593909d30a0a125d638b4e5f3836e5aecde85b66b80ded1cb5b0d", size = 469787, upload_time = "2025-07-29T05:50:49.669Z" }, + { url = "https://files.pythonhosted.org/packages/38/7d/b76438e70319796bfff717f325d97ce2e9310f752a267bfdf5192ac6082b/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e5a495cb1be69dae4b08f35a6c4579c539e9b5706f606632102c0f855bcba7c", size = 1716590, upload_time = "2025-07-29T05:50:51.368Z" }, + { url = "https://files.pythonhosted.org/packages/79/b1/60370d70cdf8b269ee1444b390cbd72ce514f0d1cd1a715821c784d272c9/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6404dfc8cdde35c69aaa489bb3542fb86ef215fc70277c892be8af540e5e21c0", size = 1699241, upload_time = "2025-07-29T05:50:53.628Z" }, + { url = "https://files.pythonhosted.org/packages/a3/2b/4968a7b8792437ebc12186db31523f541943e99bda8f30335c482bea6879/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3ead1c00f8521a5c9070fcb88f02967b1d8a0544e6d85c253f6968b785e1a2ab", size = 1754335, upload_time = "2025-07-29T05:50:55.394Z" }, + { url = "https://files.pythonhosted.org/packages/fb/c1/49524ed553f9a0bec1a11fac09e790f49ff669bcd14164f9fab608831c4d/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6990ef617f14450bc6b34941dba4f12d5613cbf4e33805932f853fbd1cf18bfb", size = 1800491, upload_time = "2025-07-29T05:50:57.202Z" }, + { url = "https://files.pythonhosted.org/packages/de/5e/3bf5acea47a96a28c121b167f5ef659cf71208b19e52a88cdfa5c37f1fcc/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd736ed420f4db2b8148b52b46b88ed038d0354255f9a73196b7bbce3ea97545", size = 1719929, upload_time = "2025-07-29T05:50:59.192Z" }, + { url = "https://files.pythonhosted.org/packages/39/94/8ae30b806835bcd1cba799ba35347dee6961a11bd507db634516210e91d8/aiohttp-3.12.15-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3c5092ce14361a73086b90c6efb3948ffa5be2f5b6fbcf52e8d8c8b8848bb97c", size = 1635733, upload_time = "2025-07-29T05:51:01.394Z" }, + { url = "https://files.pythonhosted.org/packages/7a/46/06cdef71dd03acd9da7f51ab3a9107318aee12ad38d273f654e4f981583a/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:aaa2234bb60c4dbf82893e934d8ee8dea30446f0647e024074237a56a08c01bd", size = 1696790, upload_time = "2025-07-29T05:51:03.657Z" }, + { url = "https://files.pythonhosted.org/packages/02/90/6b4cfaaf92ed98d0ec4d173e78b99b4b1a7551250be8937d9d67ecb356b4/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:6d86a2fbdd14192e2f234a92d3b494dd4457e683ba07e5905a0b3ee25389ac9f", size = 1718245, upload_time = "2025-07-29T05:51:05.911Z" }, + { url = "https://files.pythonhosted.org/packages/2e/e6/2593751670fa06f080a846f37f112cbe6f873ba510d070136a6ed46117c6/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a041e7e2612041a6ddf1c6a33b883be6a421247c7afd47e885969ee4cc58bd8d", size = 1658899, upload_time = "2025-07-29T05:51:07.753Z" }, + { url = "https://files.pythonhosted.org/packages/8f/28/c15bacbdb8b8eb5bf39b10680d129ea7410b859e379b03190f02fa104ffd/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5015082477abeafad7203757ae44299a610e89ee82a1503e3d4184e6bafdd519", size = 1738459, upload_time = "2025-07-29T05:51:09.56Z" }, + { url = "https://files.pythonhosted.org/packages/00/de/c269cbc4faa01fb10f143b1670633a8ddd5b2e1ffd0548f7aa49cb5c70e2/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:56822ff5ddfd1b745534e658faba944012346184fbfe732e0d6134b744516eea", size = 1766434, upload_time = "2025-07-29T05:51:11.423Z" }, + { url = "https://files.pythonhosted.org/packages/52/b0/4ff3abd81aa7d929b27d2e1403722a65fc87b763e3a97b3a2a494bfc63bc/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b2acbbfff69019d9014508c4ba0401822e8bae5a5fdc3b6814285b71231b60f3", size = 1726045, upload_time = "2025-07-29T05:51:13.689Z" }, + { url = "https://files.pythonhosted.org/packages/71/16/949225a6a2dd6efcbd855fbd90cf476052e648fb011aa538e3b15b89a57a/aiohttp-3.12.15-cp312-cp312-win32.whl", hash = "sha256:d849b0901b50f2185874b9a232f38e26b9b3d4810095a7572eacea939132d4e1", size = 423591, upload_time = "2025-07-29T05:51:15.452Z" }, + { url = "https://files.pythonhosted.org/packages/2b/d8/fa65d2a349fe938b76d309db1a56a75c4fb8cc7b17a398b698488a939903/aiohttp-3.12.15-cp312-cp312-win_amd64.whl", hash = "sha256:b390ef5f62bb508a9d67cb3bba9b8356e23b3996da7062f1a57ce1a79d2b3d34", size = 450266, upload_time = "2025-07-29T05:51:17.239Z" }, + { url = "https://files.pythonhosted.org/packages/f2/33/918091abcf102e39d15aba2476ad9e7bd35ddb190dcdd43a854000d3da0d/aiohttp-3.12.15-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:9f922ffd05034d439dde1c77a20461cf4a1b0831e6caa26151fe7aa8aaebc315", size = 696741, upload_time = "2025-07-29T05:51:19.021Z" }, + { url = "https://files.pythonhosted.org/packages/b5/2a/7495a81e39a998e400f3ecdd44a62107254803d1681d9189be5c2e4530cd/aiohttp-3.12.15-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2ee8a8ac39ce45f3e55663891d4b1d15598c157b4d494a4613e704c8b43112cd", size = 474407, upload_time = "2025-07-29T05:51:21.165Z" }, + { url = "https://files.pythonhosted.org/packages/49/fc/a9576ab4be2dcbd0f73ee8675d16c707cfc12d5ee80ccf4015ba543480c9/aiohttp-3.12.15-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3eae49032c29d356b94eee45a3f39fdf4b0814b397638c2f718e96cfadf4c4e4", size = 466703, upload_time = "2025-07-29T05:51:22.948Z" }, + { url = "https://files.pythonhosted.org/packages/09/2f/d4bcc8448cf536b2b54eed48f19682031ad182faa3a3fee54ebe5b156387/aiohttp-3.12.15-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b97752ff12cc12f46a9b20327104448042fce5c33a624f88c18f66f9368091c7", size = 1705532, upload_time = "2025-07-29T05:51:25.211Z" }, + { url = "https://files.pythonhosted.org/packages/f1/f3/59406396083f8b489261e3c011aa8aee9df360a96ac8fa5c2e7e1b8f0466/aiohttp-3.12.15-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:894261472691d6fe76ebb7fcf2e5870a2ac284c7406ddc95823c8598a1390f0d", size = 1686794, upload_time = "2025-07-29T05:51:27.145Z" }, + { url = "https://files.pythonhosted.org/packages/dc/71/164d194993a8d114ee5656c3b7ae9c12ceee7040d076bf7b32fb98a8c5c6/aiohttp-3.12.15-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5fa5d9eb82ce98959fc1031c28198b431b4d9396894f385cb63f1e2f3f20ca6b", size = 1738865, upload_time = "2025-07-29T05:51:29.366Z" }, + { url = "https://files.pythonhosted.org/packages/1c/00/d198461b699188a93ead39cb458554d9f0f69879b95078dce416d3209b54/aiohttp-3.12.15-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f0fa751efb11a541f57db59c1dd821bec09031e01452b2b6217319b3a1f34f3d", size = 1788238, upload_time = "2025-07-29T05:51:31.285Z" }, + { url = "https://files.pythonhosted.org/packages/85/b8/9e7175e1fa0ac8e56baa83bf3c214823ce250d0028955dfb23f43d5e61fd/aiohttp-3.12.15-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5346b93e62ab51ee2a9d68e8f73c7cf96ffb73568a23e683f931e52450e4148d", size = 1710566, upload_time = "2025-07-29T05:51:33.219Z" }, + { url = "https://files.pythonhosted.org/packages/59/e4/16a8eac9df39b48ae102ec030fa9f726d3570732e46ba0c592aeeb507b93/aiohttp-3.12.15-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:049ec0360f939cd164ecbfd2873eaa432613d5e77d6b04535e3d1fbae5a9e645", size = 1624270, upload_time = "2025-07-29T05:51:35.195Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f8/cd84dee7b6ace0740908fd0af170f9fab50c2a41ccbc3806aabcb1050141/aiohttp-3.12.15-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b52dcf013b57464b6d1e51b627adfd69a8053e84b7103a7cd49c030f9ca44461", size = 1677294, upload_time = "2025-07-29T05:51:37.215Z" }, + { url = "https://files.pythonhosted.org/packages/ce/42/d0f1f85e50d401eccd12bf85c46ba84f947a84839c8a1c2c5f6e8ab1eb50/aiohttp-3.12.15-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:9b2af240143dd2765e0fb661fd0361a1b469cab235039ea57663cda087250ea9", size = 1708958, upload_time = "2025-07-29T05:51:39.328Z" }, + { url = "https://files.pythonhosted.org/packages/d5/6b/f6fa6c5790fb602538483aa5a1b86fcbad66244997e5230d88f9412ef24c/aiohttp-3.12.15-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ac77f709a2cde2cc71257ab2d8c74dd157c67a0558a0d2799d5d571b4c63d44d", size = 1651553, upload_time = "2025-07-29T05:51:41.356Z" }, + { url = "https://files.pythonhosted.org/packages/04/36/a6d36ad545fa12e61d11d1932eef273928b0495e6a576eb2af04297fdd3c/aiohttp-3.12.15-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:47f6b962246f0a774fbd3b6b7be25d59b06fdb2f164cf2513097998fc6a29693", size = 1727688, upload_time = "2025-07-29T05:51:43.452Z" }, + { url = "https://files.pythonhosted.org/packages/aa/c8/f195e5e06608a97a4e52c5d41c7927301bf757a8e8bb5bbf8cef6c314961/aiohttp-3.12.15-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:760fb7db442f284996e39cf9915a94492e1896baac44f06ae551974907922b64", size = 1761157, upload_time = "2025-07-29T05:51:45.643Z" }, + { url = "https://files.pythonhosted.org/packages/05/6a/ea199e61b67f25ba688d3ce93f63b49b0a4e3b3d380f03971b4646412fc6/aiohttp-3.12.15-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ad702e57dc385cae679c39d318def49aef754455f237499d5b99bea4ef582e51", size = 1710050, upload_time = "2025-07-29T05:51:48.203Z" }, + { url = "https://files.pythonhosted.org/packages/b4/2e/ffeb7f6256b33635c29dbed29a22a723ff2dd7401fff42ea60cf2060abfb/aiohttp-3.12.15-cp313-cp313-win32.whl", hash = "sha256:f813c3e9032331024de2eb2e32a88d86afb69291fbc37a3a3ae81cc9917fb3d0", size = 422647, upload_time = "2025-07-29T05:51:50.718Z" }, + { url = "https://files.pythonhosted.org/packages/1b/8e/78ee35774201f38d5e1ba079c9958f7629b1fd079459aea9467441dbfbf5/aiohttp-3.12.15-cp313-cp313-win_amd64.whl", hash = "sha256:1a649001580bdb37c6fdb1bebbd7e3bc688e8ec2b5c6f52edbb664662b17dc84", size = 449067, upload_time = "2025-07-29T05:51:52.549Z" }, +] + +[[package]] +name = "aiosignal" +version = "1.4.0" +source = { registry = "https://pypi.org/simple" } +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, 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, upload_time = "2025-07-03T22:54:42.156Z" }, +] + +[[package]] +name = "annotated-types" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081, upload_time = "2024-05-20T21:33:25.928Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643, upload_time = "2024-05-20T21:33:24.1Z" }, +] + +[[package]] +name = "arrow" +version = "1.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "python-dateutil" }, + { name = "types-python-dateutil" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2e/00/0f6e8fcdb23ea632c866620cc872729ff43ed91d284c866b515c6342b173/arrow-1.3.0.tar.gz", hash = "sha256:d4540617648cb5f895730f1ad8c82a65f2dad0166f57b75f3ca54759c4d67a85", size = 131960, upload_time = "2023-09-30T22:11:18.25Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f8/ed/e97229a566617f2ae958a6b13e7cc0f585470eac730a73e9e82c32a3cdd2/arrow-1.3.0-py3-none-any.whl", hash = "sha256:c728b120ebc00eb84e01882a6f5e7927a53960aa990ce7dd2b10f39005a67f80", size = 66419, upload_time = "2023-09-30T22:11:16.072Z" }, +] + +[[package]] +name = "asciitree" +version = "0.3.3" +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, upload_time = "2016-09-05T19:10:42.681Z" } + +[[package]] +name = "attrs" +version = "25.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5a/b0/1367933a8532ee6ff8d63537de4f1177af4bff9f3e829baf7331f595bb24/attrs-25.3.0.tar.gz", hash = "sha256:75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b", size = 812032, upload_time = "2025-03-13T11:10:22.779Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/77/06/bb80f5f86020c4551da315d78b3ab75e8228f89f0162f2c3a819e407941a/attrs-25.3.0-py3-none-any.whl", hash = "sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3", size = 63815, upload_time = "2025-03-13T11:10:21.14Z" }, +] + +[[package]] +name = "bids-validator-deno" +version = "2.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7a/ae/2045dacd02307997b612d7dd0c61092c2b6875d72cad3873d7af26dd7f3a/bids_validator_deno-2.1.1.tar.gz", hash = "sha256:1add452625548607d357c018a5ac1365809dcabf612624e71f5bdbb3d2ec081c", size = 73252, upload_time = "2025-09-29T16:25:21.774Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/30/08/0ca16cac7c2ad7ed8846691ab4ee4997a1d936d5c29509f3cec71f36a778/bids_validator_deno-2.1.1-py2.py3-none-macosx_10_12_x86_64.whl", hash = "sha256:ac27e7070229fb45a80ff04b61de0a37551da751ab3d893a45cbd672daed220e", size = 42418556, upload_time = "2025-09-29T16:25:06.696Z" }, + { url = "https://files.pythonhosted.org/packages/18/4d/d98fc4e6c3ed73de84f7af84c695d676e086678f9e4ec3e2fc66c54b0d78/bids_validator_deno-2.1.1-py2.py3-none-macosx_11_0_arm64.whl", hash = "sha256:6082c69cdf4382df0ca82be7591d22444e65b2e2a72d06fb7d87a6e131d6e920", size = 41656505, upload_time = "2025-09-29T16:25:10.639Z" }, + { url = "https://files.pythonhosted.org/packages/15/44/7c8ad5a37d77db13985508aa04d4ee006df4adde8414921760ecd4b642c5/bids_validator_deno-2.1.1-py2.py3-none-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:06a06a27b07a237bcb4eecd09bf656fd8eafb61c77d0f4ae311807db0ac6dba5", size = 43321256, upload_time = "2025-09-29T16:25:13.676Z" }, + { url = "https://files.pythonhosted.org/packages/a8/cf/92cd8c6507068745c55afa0cad60a6ac85d1bd0a17dec41b93f1eab55a5b/bids_validator_deno-2.1.1-py2.py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:538914e927fe38c6cd80458acf31a5a4e3ff52020b5b2dfdea42d3bc49aac5e7", size = 44433972, upload_time = "2025-09-29T16:25:16.439Z" }, + { url = "https://files.pythonhosted.org/packages/3b/b4/0f9b960ef336426df7f2db4920a99d10c6f57a29001696a93854aa3da0bf/bids_validator_deno-2.1.1-py2.py3-none-win_amd64.whl", hash = "sha256:b163ed4976ece0cf21f94f6293281687633110e8bd2e8966064f2f0e2ed88302", size = 43848264, upload_time = "2025-09-29T16:25:19.546Z" }, +] + +[[package]] +name = "bidsschematools" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "acres" }, + { name = "click" }, + { name = "pyyaml" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/82/5d/8b940b4149ba11e5ed5325a79f3c75a0e2ec66cb4123d3d1313222550929/bidsschematools-1.1.0.tar.gz", hash = "sha256:71555f2364a27ba6ac7bff869b5181ff64aa180c5e56725180b43012627c0e06", size = 1752873, upload_time = "2025-09-03T14:24:36.587Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/00/d6/15f1ea70e9dde2fbd5c1ea83db6169e5663c9b20d4854678650ff5cefad7/bidsschematools-1.1.0-py3-none-any.whl", hash = "sha256:aabd6ae19978a5a92777f04fa0740ca9ea4a746075b077d88671d47d46c56653", size = 179191, upload_time = "2025-09-03T14:24:35.2Z" }, +] + +[[package]] +name = "blessed" +version = "1.22.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "wcwidth" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7c/51/a72df7730aa34a94bc43cebecb7b63ffa42f019868637dbeb45e0620d26e/blessed-1.22.0.tar.gz", hash = "sha256:1818efb7c10015478286f21a412fcdd31a3d8b94a18f6d926e733827da7a844b", size = 6660050, upload_time = "2025-09-15T19:15:26.551Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/11/b7/a19b55c4cd0b5ca5009ca11d3634994758a1a446976b8e7afa25e719613c/blessed-1.22.0-py2.py3-none-any.whl", hash = "sha256:a1fed52d708a1aa26dfb8d3eaecf6f4714bff590e728baeefcb44f2c16c8de82", size = 85078, upload_time = "2025-09-15T19:15:24.787Z" }, +] + +[[package]] +name = "certifi" +version = "2025.8.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/dc/67/960ebe6bf230a96cda2e0abcf73af550ec4f090005363542f0765df162e0/certifi-2025.8.3.tar.gz", hash = "sha256:e564105f78ded564e3ae7c923924435e1daa7463faeab5bb932bc53ffae63407", size = 162386, upload_time = "2025-08-03T03:07:47.08Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/48/1549795ba7742c948d2ad169c1c8cdbae65bc450d6cd753d124b17c8cd32/certifi-2025.8.3-py3-none-any.whl", hash = "sha256:f6c12493cfb1b06ba2ff328595af9350c65d6644968e5d3a2ffd78699af217a5", size = 161216, upload_time = "2025-08-03T03:07:45.777Z" }, +] + +[[package]] +name = "cffi" +version = "2.0.0" +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, upload_time = "2025-09-08T23:24:04.541Z" } +wheels = [ + { 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, upload_time = "2025-09-08T23:22:47.349Z" }, + { 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, upload_time = "2025-09-08T23:22:48.677Z" }, + { 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, upload_time = "2025-09-08T23:22:50.06Z" }, + { 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, upload_time = "2025-09-08T23:22:51.364Z" }, + { 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, upload_time = "2025-09-08T23:22:52.902Z" }, + { 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, upload_time = "2025-09-08T23:22:54.518Z" }, + { 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, upload_time = "2025-09-08T23:22:55.867Z" }, + { 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, upload_time = "2025-09-08T23:23:03.472Z" }, + { 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, upload_time = "2025-09-08T23:23:04.792Z" }, + { 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, upload_time = "2025-09-08T23:23:06.127Z" }, + { 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, upload_time = "2025-09-08T23:23:07.753Z" }, + { 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, upload_time = "2025-09-08T23:23:09.648Z" }, + { 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, upload_time = "2025-09-08T23:23:10.928Z" }, + { 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, upload_time = "2025-09-08T23:23:12.42Z" }, + { 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, upload_time = "2025-09-08T23:23:20.853Z" }, + { 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, upload_time = "2025-09-08T23:23:22.08Z" }, + { 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, upload_time = "2025-09-08T23:23:23.314Z" }, + { 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, upload_time = "2025-09-08T23:23:24.541Z" }, + { 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, upload_time = "2025-09-08T23:23:26.143Z" }, + { 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, upload_time = "2025-09-08T23:23:27.873Z" }, + { 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, upload_time = "2025-09-08T23:23:31.91Z" }, + { 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, upload_time = "2025-09-08T23:23:33.214Z" }, + { 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, upload_time = "2025-09-08T23:23:34.495Z" }, + { 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, upload_time = "2025-09-08T23:23:36.096Z" }, + { 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, upload_time = "2025-09-08T23:23:37.328Z" }, + { 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, upload_time = "2025-09-08T23:23:38.945Z" }, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/83/2d/5fd176ceb9b2fc619e63405525573493ca23441330fcdaee6bef9460e924/charset_normalizer-3.4.3.tar.gz", hash = "sha256:6fce4b8500244f6fcb71465d4a4930d132ba9ab8e71a7859e6a5d59851068d14", size = 122371, upload_time = "2025-08-09T07:57:28.46Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e9/5e/14c94999e418d9b87682734589404a25854d5f5d0408df68bc15b6ff54bb/charset_normalizer-3.4.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e28e334d3ff134e88989d90ba04b47d84382a828c061d0d1027b1b12a62b39b1", size = 205655, upload_time = "2025-08-09T07:56:08.475Z" }, + { url = "https://files.pythonhosted.org/packages/7d/a8/c6ec5d389672521f644505a257f50544c074cf5fc292d5390331cd6fc9c3/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0cacf8f7297b0c4fcb74227692ca46b4a5852f8f4f24b3c766dd94a1075c4884", size = 146223, upload_time = "2025-08-09T07:56:09.708Z" }, + { url = "https://files.pythonhosted.org/packages/fc/eb/a2ffb08547f4e1e5415fb69eb7db25932c52a52bed371429648db4d84fb1/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c6fd51128a41297f5409deab284fecbe5305ebd7e5a1f959bee1c054622b7018", size = 159366, upload_time = "2025-08-09T07:56:11.326Z" }, + { url = "https://files.pythonhosted.org/packages/82/10/0fd19f20c624b278dddaf83b8464dcddc2456cb4b02bb902a6da126b87a1/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3cfb2aad70f2c6debfbcb717f23b7eb55febc0bb23dcffc0f076009da10c6392", size = 157104, upload_time = "2025-08-09T07:56:13.014Z" }, + { url = "https://files.pythonhosted.org/packages/16/ab/0233c3231af734f5dfcf0844aa9582d5a1466c985bbed6cedab85af9bfe3/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1606f4a55c0fd363d754049cdf400175ee96c992b1f8018b993941f221221c5f", size = 151830, upload_time = "2025-08-09T07:56:14.428Z" }, + { url = "https://files.pythonhosted.org/packages/ae/02/e29e22b4e02839a0e4a06557b1999d0a47db3567e82989b5bb21f3fbbd9f/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:027b776c26d38b7f15b26a5da1044f376455fb3766df8fc38563b4efbc515154", size = 148854, upload_time = "2025-08-09T07:56:16.051Z" }, + { url = "https://files.pythonhosted.org/packages/05/6b/e2539a0a4be302b481e8cafb5af8792da8093b486885a1ae4d15d452bcec/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:42e5088973e56e31e4fa58eb6bd709e42fc03799c11c42929592889a2e54c491", size = 160670, upload_time = "2025-08-09T07:56:17.314Z" }, + { url = "https://files.pythonhosted.org/packages/31/e7/883ee5676a2ef217a40ce0bffcc3d0dfbf9e64cbcfbdf822c52981c3304b/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:cc34f233c9e71701040d772aa7490318673aa7164a0efe3172b2981218c26d93", size = 158501, upload_time = "2025-08-09T07:56:18.641Z" }, + { url = "https://files.pythonhosted.org/packages/c1/35/6525b21aa0db614cf8b5792d232021dca3df7f90a1944db934efa5d20bb1/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:320e8e66157cc4e247d9ddca8e21f427efc7a04bbd0ac8a9faf56583fa543f9f", size = 153173, upload_time = "2025-08-09T07:56:20.289Z" }, + { url = "https://files.pythonhosted.org/packages/50/ee/f4704bad8201de513fdc8aac1cabc87e38c5818c93857140e06e772b5892/charset_normalizer-3.4.3-cp312-cp312-win32.whl", hash = "sha256:fb6fecfd65564f208cbf0fba07f107fb661bcd1a7c389edbced3f7a493f70e37", size = 99822, upload_time = "2025-08-09T07:56:21.551Z" }, + { url = "https://files.pythonhosted.org/packages/39/f5/3b3836ca6064d0992c58c7561c6b6eee1b3892e9665d650c803bd5614522/charset_normalizer-3.4.3-cp312-cp312-win_amd64.whl", hash = "sha256:86df271bf921c2ee3818f0522e9a5b8092ca2ad8b065ece5d7d9d0e9f4849bcc", size = 107543, upload_time = "2025-08-09T07:56:23.115Z" }, + { url = "https://files.pythonhosted.org/packages/65/ca/2135ac97709b400c7654b4b764daf5c5567c2da45a30cdd20f9eefe2d658/charset_normalizer-3.4.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:14c2a87c65b351109f6abfc424cab3927b3bdece6f706e4d12faaf3d52ee5efe", size = 205326, upload_time = "2025-08-09T07:56:24.721Z" }, + { url = "https://files.pythonhosted.org/packages/71/11/98a04c3c97dd34e49c7d247083af03645ca3730809a5509443f3c37f7c99/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:41d1fc408ff5fdfb910200ec0e74abc40387bccb3252f3f27c0676731df2b2c8", size = 146008, upload_time = "2025-08-09T07:56:26.004Z" }, + { url = "https://files.pythonhosted.org/packages/60/f5/4659a4cb3c4ec146bec80c32d8bb16033752574c20b1252ee842a95d1a1e/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:1bb60174149316da1c35fa5233681f7c0f9f514509b8e399ab70fea5f17e45c9", size = 159196, upload_time = "2025-08-09T07:56:27.25Z" }, + { url = "https://files.pythonhosted.org/packages/86/9e/f552f7a00611f168b9a5865a1414179b2c6de8235a4fa40189f6f79a1753/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:30d006f98569de3459c2fc1f2acde170b7b2bd265dc1943e87e1a4efe1b67c31", size = 156819, upload_time = "2025-08-09T07:56:28.515Z" }, + { url = "https://files.pythonhosted.org/packages/7e/95/42aa2156235cbc8fa61208aded06ef46111c4d3f0de233107b3f38631803/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:416175faf02e4b0810f1f38bcb54682878a4af94059a1cd63b8747244420801f", size = 151350, upload_time = "2025-08-09T07:56:29.716Z" }, + { url = "https://files.pythonhosted.org/packages/c2/a9/3865b02c56f300a6f94fc631ef54f0a8a29da74fb45a773dfd3dcd380af7/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6aab0f181c486f973bc7262a97f5aca3ee7e1437011ef0c2ec04b5a11d16c927", size = 148644, upload_time = "2025-08-09T07:56:30.984Z" }, + { url = "https://files.pythonhosted.org/packages/77/d9/cbcf1a2a5c7d7856f11e7ac2d782aec12bdfea60d104e60e0aa1c97849dc/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:fdabf8315679312cfa71302f9bd509ded4f2f263fb5b765cf1433b39106c3cc9", size = 160468, upload_time = "2025-08-09T07:56:32.252Z" }, + { url = "https://files.pythonhosted.org/packages/f6/42/6f45efee8697b89fda4d50580f292b8f7f9306cb2971d4b53f8914e4d890/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:bd28b817ea8c70215401f657edef3a8aa83c29d447fb0b622c35403780ba11d5", size = 158187, upload_time = "2025-08-09T07:56:33.481Z" }, + { url = "https://files.pythonhosted.org/packages/70/99/f1c3bdcfaa9c45b3ce96f70b14f070411366fa19549c1d4832c935d8e2c3/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:18343b2d246dc6761a249ba1fb13f9ee9a2bcd95decc767319506056ea4ad4dc", size = 152699, upload_time = "2025-08-09T07:56:34.739Z" }, + { url = "https://files.pythonhosted.org/packages/a3/ad/b0081f2f99a4b194bcbb1934ef3b12aa4d9702ced80a37026b7607c72e58/charset_normalizer-3.4.3-cp313-cp313-win32.whl", hash = "sha256:6fb70de56f1859a3f71261cbe41005f56a7842cc348d3aeb26237560bfa5e0ce", size = 99580, upload_time = "2025-08-09T07:56:35.981Z" }, + { url = "https://files.pythonhosted.org/packages/9a/8f/ae790790c7b64f925e5c953b924aaa42a243fb778fed9e41f147b2a5715a/charset_normalizer-3.4.3-cp313-cp313-win_amd64.whl", hash = "sha256:cf1ebb7d78e1ad8ec2a8c4732c7be2e736f6e5123a4146c5b89c9d1f585f8cef", size = 107366, upload_time = "2025-08-09T07:56:37.339Z" }, + { url = "https://files.pythonhosted.org/packages/8e/91/b5a06ad970ddc7a0e513112d40113e834638f4ca1120eb727a249fb2715e/charset_normalizer-3.4.3-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:3cd35b7e8aedeb9e34c41385fda4f73ba609e561faedfae0a9e75e44ac558a15", size = 204342, upload_time = "2025-08-09T07:56:38.687Z" }, + { url = "https://files.pythonhosted.org/packages/ce/ec/1edc30a377f0a02689342f214455c3f6c2fbedd896a1d2f856c002fc3062/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b89bc04de1d83006373429975f8ef9e7932534b8cc9ca582e4db7d20d91816db", size = 145995, upload_time = "2025-08-09T07:56:40.048Z" }, + { url = "https://files.pythonhosted.org/packages/17/e5/5e67ab85e6d22b04641acb5399c8684f4d37caf7558a53859f0283a650e9/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2001a39612b241dae17b4687898843f254f8748b796a2e16f1051a17078d991d", size = 158640, upload_time = "2025-08-09T07:56:41.311Z" }, + { url = "https://files.pythonhosted.org/packages/f1/e5/38421987f6c697ee3722981289d554957c4be652f963d71c5e46a262e135/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8dcfc373f888e4fb39a7bc57e93e3b845e7f462dacc008d9749568b1c4ece096", size = 156636, upload_time = "2025-08-09T07:56:43.195Z" }, + { url = "https://files.pythonhosted.org/packages/a0/e4/5a075de8daa3ec0745a9a3b54467e0c2967daaaf2cec04c845f73493e9a1/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:18b97b8404387b96cdbd30ad660f6407799126d26a39ca65729162fd810a99aa", size = 150939, upload_time = "2025-08-09T07:56:44.819Z" }, + { url = "https://files.pythonhosted.org/packages/02/f7/3611b32318b30974131db62b4043f335861d4d9b49adc6d57c1149cc49d4/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ccf600859c183d70eb47e05a44cd80a4ce77394d1ac0f79dbd2dd90a69a3a049", size = 148580, upload_time = "2025-08-09T07:56:46.684Z" }, + { url = "https://files.pythonhosted.org/packages/7e/61/19b36f4bd67f2793ab6a99b979b4e4f3d8fc754cbdffb805335df4337126/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:53cd68b185d98dde4ad8990e56a58dea83a4162161b1ea9272e5c9182ce415e0", size = 159870, upload_time = "2025-08-09T07:56:47.941Z" }, + { url = "https://files.pythonhosted.org/packages/06/57/84722eefdd338c04cf3030ada66889298eaedf3e7a30a624201e0cbe424a/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:30a96e1e1f865f78b030d65241c1ee850cdf422d869e9028e2fc1d5e4db73b92", size = 157797, upload_time = "2025-08-09T07:56:49.756Z" }, + { url = "https://files.pythonhosted.org/packages/72/2a/aff5dd112b2f14bcc3462c312dce5445806bfc8ab3a7328555da95330e4b/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d716a916938e03231e86e43782ca7878fb602a125a91e7acb8b5112e2e96ac16", size = 152224, upload_time = "2025-08-09T07:56:51.369Z" }, + { url = "https://files.pythonhosted.org/packages/b7/8c/9839225320046ed279c6e839d51f028342eb77c91c89b8ef2549f951f3ec/charset_normalizer-3.4.3-cp314-cp314-win32.whl", hash = "sha256:c6dbd0ccdda3a2ba7c2ecd9d77b37f3b5831687d8dc1b6ca5f56a4880cc7b7ce", size = 100086, upload_time = "2025-08-09T07:56:52.722Z" }, + { url = "https://files.pythonhosted.org/packages/ee/7a/36fbcf646e41f710ce0a563c1c9a343c6edf9be80786edeb15b6f62e17db/charset_normalizer-3.4.3-cp314-cp314-win_amd64.whl", hash = "sha256:73dc19b562516fc9bcf6e5d6e596df0b4eb98d87e4f79f3ae71840e6ed21361c", size = 107400, upload_time = "2025-08-09T07:56:55.172Z" }, + { url = "https://files.pythonhosted.org/packages/8a/1f/f041989e93b001bc4e44bb1669ccdcf54d3f00e628229a85b08d330615c5/charset_normalizer-3.4.3-py3-none-any.whl", hash = "sha256:ce571ab16d890d23b5c278547ba694193a45011ff86a9162a71307ed9f86759a", size = 53175, upload_time = "2025-08-09T07:57:26.864Z" }, +] + +[[package]] +name = "ci-info" +version = "0.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/11/27/938d6ef93df09c686dcee1c7334578274320e98e7bf912a6409cf2c8c3e5/ci-info-0.3.0.tar.gz", hash = "sha256:1fd50cbd401f29adffeeb18b0489e232d16ac1a7458ac6bc316deab6ae535fb0", size = 25169, upload_time = "2022-07-27T17:22:49.365Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/13/c3/8ac768b389d5b6dda1c3ce7992b3acd2b46401f9b71439123858b17b1a2c/ci_info-0.3.0-py3-none-any.whl", hash = "sha256:e9e05d262a6c48aa03cd904475de5ce8c4da8a5435e516631c795d0487dc9e07", size = 7764, upload_time = "2022-07-27T17:22:47.196Z" }, +] + +[[package]] +name = "click" +version = "8.1.8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b9/2e/0090cbf739cee7d23781ad4b89a9894a41538e4fcf4c31dcdd705b78eb8b/click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a", size = 226593, upload_time = "2024-12-21T18:38:44.339Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/d4/7ebdbd03970677812aac39c869717059dbb71a4cfc033ca6e5221787892c/click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2", size = 98188, upload_time = "2024-12-21T18:38:41.666Z" }, +] + +[[package]] +name = "click-didyoumean" +version = "0.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/30/ce/217289b77c590ea1e7c24242d9ddd6e249e52c795ff10fac2c50062c48cb/click_didyoumean-0.3.1.tar.gz", hash = "sha256:4f82fdff0dbe64ef8ab2279bd6aa3f6a99c3b28c05aa09cbfc07c9d7fbb5a463", size = 3089, upload_time = "2024-03-24T08:22:07.499Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1b/5b/974430b5ffdb7a4f1941d13d83c64a0395114503cc357c6b9ae4ce5047ed/click_didyoumean-0.3.1-py3-none-any.whl", hash = "sha256:5c4bb6007cfea5f2fd6583a2fb6701a22a41eb98957e63d0fac41c10e7c3117c", size = 3631, upload_time = "2024-03-24T08:22:06.356Z" }, +] + +[[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, 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, upload_time = "2022-10-25T02:36:20.889Z" }, +] + +[[package]] +name = "cryptography" +version = "46.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/4a/9b/e301418629f7bfdf72db9e80ad6ed9d1b83c487c471803eaa6464c511a01/cryptography-46.0.2.tar.gz", hash = "sha256:21b6fc8c71a3f9a604f028a329e5560009cc4a3a828bfea5fcba8eb7647d88fe", size = 749293, upload_time = "2025-10-01T00:29:11.856Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c6/38/b2adb2aa1baa6706adc3eb746691edd6f90a656a9a65c3509e274d15a2b8/cryptography-46.0.2-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1fd1a69086926b623ef8126b4c33d5399ce9e2f3fac07c9c734c2a4ec38b6d02", size = 4297596, upload_time = "2025-10-01T00:27:25.258Z" }, + { url = "https://files.pythonhosted.org/packages/e4/27/0f190ada240003119488ae66c897b5e97149292988f556aef4a6a2a57595/cryptography-46.0.2-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:bb7fb9cd44c2582aa5990cf61a4183e6f54eea3172e54963787ba47287edd135", size = 4450899, upload_time = "2025-10-01T00:27:27.458Z" }, + { url = "https://files.pythonhosted.org/packages/85/d5/e4744105ab02fdf6bb58ba9a816e23b7a633255987310b4187d6745533db/cryptography-46.0.2-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:9066cfd7f146f291869a9898b01df1c9b0e314bfa182cef432043f13fc462c92", size = 4300382, upload_time = "2025-10-01T00:27:29.091Z" }, + { url = "https://files.pythonhosted.org/packages/33/fb/bf9571065c18c04818cb07de90c43fc042c7977c68e5de6876049559c72f/cryptography-46.0.2-cp311-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:97e83bf4f2f2c084d8dd792d13841d0a9b241643151686010866bbd076b19659", size = 4017347, upload_time = "2025-10-01T00:27:30.767Z" }, + { url = "https://files.pythonhosted.org/packages/35/72/fc51856b9b16155ca071080e1a3ad0c3a8e86616daf7eb018d9565b99baa/cryptography-46.0.2-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:4a766d2a5d8127364fd936572c6e6757682fc5dfcbdba1632d4554943199f2fa", size = 4983500, upload_time = "2025-10-01T00:27:32.741Z" }, + { url = "https://files.pythonhosted.org/packages/c1/53/0f51e926799025e31746d454ab2e36f8c3f0d41592bc65cb9840368d3275/cryptography-46.0.2-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:fab8f805e9675e61ed8538f192aad70500fa6afb33a8803932999b1049363a08", size = 4482591, upload_time = "2025-10-01T00:27:34.869Z" }, + { url = "https://files.pythonhosted.org/packages/86/96/4302af40b23ab8aa360862251fb8fc450b2a06ff24bc5e261c2007f27014/cryptography-46.0.2-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:1e3b6428a3d56043bff0bb85b41c535734204e599c1c0977e1d0f261b02f3ad5", size = 4300019, upload_time = "2025-10-01T00:27:37.029Z" }, + { url = "https://files.pythonhosted.org/packages/9b/59/0be12c7fcc4c5e34fe2b665a75bc20958473047a30d095a7657c218fa9e8/cryptography-46.0.2-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:1a88634851d9b8de8bb53726f4300ab191d3b2f42595e2581a54b26aba71b7cc", size = 4950006, upload_time = "2025-10-01T00:27:40.272Z" }, + { url = "https://files.pythonhosted.org/packages/55/1d/42fda47b0111834b49e31590ae14fd020594d5e4dadd639bce89ad790fba/cryptography-46.0.2-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:be939b99d4e091eec9a2bcf41aaf8f351f312cd19ff74b5c83480f08a8a43e0b", size = 4482088, upload_time = "2025-10-01T00:27:42.668Z" }, + { url = "https://files.pythonhosted.org/packages/17/50/60f583f69aa1602c2bdc7022dae86a0d2b837276182f8c1ec825feb9b874/cryptography-46.0.2-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9f13b040649bc18e7eb37936009b24fd31ca095a5c647be8bb6aaf1761142bd1", size = 4425599, upload_time = "2025-10-01T00:27:44.616Z" }, + { url = "https://files.pythonhosted.org/packages/d1/57/d8d4134cd27e6e94cf44adb3f3489f935bde85f3a5508e1b5b43095b917d/cryptography-46.0.2-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:9bdc25e4e01b261a8fda4e98618f1c9515febcecebc9566ddf4a70c63967043b", size = 4697458, upload_time = "2025-10-01T00:27:46.209Z" }, + { url = "https://files.pythonhosted.org/packages/93/22/d66a8591207c28bbe4ac7afa25c4656dc19dc0db29a219f9809205639ede/cryptography-46.0.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e7155c0b004e936d381b15425273aee1cebc94f879c0ce82b0d7fecbf755d53a", size = 4287584, upload_time = "2025-10-01T00:27:57.018Z" }, + { url = "https://files.pythonhosted.org/packages/8c/3e/fac3ab6302b928e0398c269eddab5978e6c1c50b2b77bb5365ffa8633b37/cryptography-46.0.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:a61c154cc5488272a6c4b86e8d5beff4639cdb173d75325ce464d723cda0052b", size = 4433796, upload_time = "2025-10-01T00:27:58.631Z" }, + { url = "https://files.pythonhosted.org/packages/7d/d8/24392e5d3c58e2d83f98fe5a2322ae343360ec5b5b93fe18bc52e47298f5/cryptography-46.0.2-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:9ec3f2e2173f36a9679d3b06d3d01121ab9b57c979de1e6a244b98d51fea1b20", size = 4292126, upload_time = "2025-10-01T00:28:00.643Z" }, + { url = "https://files.pythonhosted.org/packages/ed/38/3d9f9359b84c16c49a5a336ee8be8d322072a09fac17e737f3bb11f1ce64/cryptography-46.0.2-cp314-cp314t-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:2fafb6aa24e702bbf74de4cb23bfa2c3beb7ab7683a299062b69724c92e0fa73", size = 3993056, upload_time = "2025-10-01T00:28:02.8Z" }, + { url = "https://files.pythonhosted.org/packages/d6/a3/4c44fce0d49a4703cc94bfbe705adebf7ab36efe978053742957bc7ec324/cryptography-46.0.2-cp314-cp314t-manylinux_2_28_ppc64le.whl", hash = "sha256:0c7ffe8c9b1fcbb07a26d7c9fa5e857c2fe80d72d7b9e0353dcf1d2180ae60ee", size = 4967604, upload_time = "2025-10-01T00:28:04.783Z" }, + { url = "https://files.pythonhosted.org/packages/eb/c2/49d73218747c8cac16bb8318a5513fde3129e06a018af3bc4dc722aa4a98/cryptography-46.0.2-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:5840f05518caa86b09d23f8b9405a7b6d5400085aa14a72a98fdf5cf1568c0d2", size = 4465367, upload_time = "2025-10-01T00:28:06.864Z" }, + { url = "https://files.pythonhosted.org/packages/1b/64/9afa7d2ee742f55ca6285a54386ed2778556a4ed8871571cb1c1bfd8db9e/cryptography-46.0.2-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:27c53b4f6a682a1b645fbf1cd5058c72cf2f5aeba7d74314c36838c7cbc06e0f", size = 4291678, upload_time = "2025-10-01T00:28:08.982Z" }, + { url = "https://files.pythonhosted.org/packages/50/48/1696d5ea9623a7b72ace87608f6899ca3c331709ac7ebf80740abb8ac673/cryptography-46.0.2-cp314-cp314t-manylinux_2_34_ppc64le.whl", hash = "sha256:512c0250065e0a6b286b2db4bbcc2e67d810acd53eb81733e71314340366279e", size = 4931366, upload_time = "2025-10-01T00:28:10.74Z" }, + { url = "https://files.pythonhosted.org/packages/eb/3c/9dfc778401a334db3b24435ee0733dd005aefb74afe036e2d154547cb917/cryptography-46.0.2-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:07c0eb6657c0e9cca5891f4e35081dbf985c8131825e21d99b4f440a8f496f36", size = 4464738, upload_time = "2025-10-01T00:28:12.491Z" }, + { url = "https://files.pythonhosted.org/packages/dc/b1/abcde62072b8f3fd414e191a6238ce55a0050e9738090dc6cded24c12036/cryptography-46.0.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:48b983089378f50cba258f7f7aa28198c3f6e13e607eaf10472c26320332ca9a", size = 4419305, upload_time = "2025-10-01T00:28:14.145Z" }, + { url = "https://files.pythonhosted.org/packages/c7/1f/3d2228492f9391395ca34c677e8f2571fb5370fe13dc48c1014f8c509864/cryptography-46.0.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:e6f6775eaaa08c0eec73e301f7592f4367ccde5e4e4df8e58320f2ebf161ea2c", size = 4681201, upload_time = "2025-10-01T00:28:15.951Z" }, + { url = "https://files.pythonhosted.org/packages/b7/66/f42071ce0e3ffbfa80a88feadb209c779fda92a23fbc1e14f74ebf72ef6b/cryptography-46.0.2-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d30bc11d35743bf4ddf76674a0a369ec8a21f87aaa09b0661b04c5f6c46e8d7b", size = 4293123, upload_time = "2025-10-01T00:28:25.072Z" }, + { url = "https://files.pythonhosted.org/packages/a8/5d/1fdbd2e5c1ba822828d250e5a966622ef00185e476d1cd2726b6dd135e53/cryptography-46.0.2-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:bca3f0ce67e5a2a2cf524e86f44697c4323a86e0fd7ba857de1c30d52c11ede1", size = 4439524, upload_time = "2025-10-01T00:28:26.808Z" }, + { url = "https://files.pythonhosted.org/packages/c8/c1/5e4989a7d102d4306053770d60f978c7b6b1ea2ff8c06e0265e305b23516/cryptography-46.0.2-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:ff798ad7a957a5021dcbab78dfff681f0cf15744d0e6af62bd6746984d9c9e9c", size = 4297264, upload_time = "2025-10-01T00:28:29.327Z" }, + { url = "https://files.pythonhosted.org/packages/28/78/b56f847d220cb1d6d6aef5a390e116ad603ce13a0945a3386a33abc80385/cryptography-46.0.2-cp38-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:cb5e8daac840e8879407acbe689a174f5ebaf344a062f8918e526824eb5d97af", size = 4011872, upload_time = "2025-10-01T00:28:31.479Z" }, + { url = "https://files.pythonhosted.org/packages/e1/80/2971f214b066b888944f7b57761bf709ee3f2cf805619a18b18cab9b263c/cryptography-46.0.2-cp38-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:3f37aa12b2d91e157827d90ce78f6180f0c02319468a0aea86ab5a9566da644b", size = 4978458, upload_time = "2025-10-01T00:28:33.267Z" }, + { url = "https://files.pythonhosted.org/packages/a5/84/0cb0a2beaa4f1cbe63ebec4e97cd7e0e9f835d0ba5ee143ed2523a1e0016/cryptography-46.0.2-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:5e38f203160a48b93010b07493c15f2babb4e0f2319bbd001885adb3f3696d21", size = 4472195, upload_time = "2025-10-01T00:28:36.039Z" }, + { url = "https://files.pythonhosted.org/packages/30/8b/2b542ddbf78835c7cd67b6fa79e95560023481213a060b92352a61a10efe/cryptography-46.0.2-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:d19f5f48883752b5ab34cff9e2f7e4a7f216296f33714e77d1beb03d108632b6", size = 4296791, upload_time = "2025-10-01T00:28:37.732Z" }, + { url = "https://files.pythonhosted.org/packages/78/12/9065b40201b4f4876e93b9b94d91feb18de9150d60bd842a16a21565007f/cryptography-46.0.2-cp38-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:04911b149eae142ccd8c9a68892a70c21613864afb47aba92d8c7ed9cc001023", size = 4939629, upload_time = "2025-10-01T00:28:39.654Z" }, + { url = "https://files.pythonhosted.org/packages/f6/9e/6507dc048c1b1530d372c483dfd34e7709fc542765015425f0442b08547f/cryptography-46.0.2-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:8b16c1ede6a937c291d41176934268e4ccac2c6521c69d3f5961c5a1e11e039e", size = 4471988, upload_time = "2025-10-01T00:28:41.822Z" }, + { url = "https://files.pythonhosted.org/packages/b1/86/d025584a5f7d5c5ec8d3633dbcdce83a0cd579f1141ceada7817a4c26934/cryptography-46.0.2-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:747b6f4a4a23d5a215aadd1d0b12233b4119c4313df83ab4137631d43672cc90", size = 4422989, upload_time = "2025-10-01T00:28:43.608Z" }, + { url = "https://files.pythonhosted.org/packages/4b/39/536370418b38a15a61bbe413006b79dfc3d2b4b0eafceb5581983f973c15/cryptography-46.0.2-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:6b275e398ab3a7905e168c036aad54b5969d63d3d9099a0a66cc147a3cc983be", size = 4685578, upload_time = "2025-10-01T00:28:45.361Z" }, +] + +[[package]] +name = "dandi" +version = "0.71.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "bids-validator-deno" }, + { name = "bidsschematools" }, + { name = "click" }, + { name = "click-didyoumean" }, + { name = "dandischema" }, + { name = "etelemetry" }, + { name = "fasteners" }, + { name = "fscacher" }, + { name = "hdmf" }, + { name = "humanize" }, + { name = "interleave" }, + { name = "joblib" }, + { name = "keyring" }, + { name = "keyrings-alt" }, + { name = "numcodecs" }, + { name = "nwbinspector" }, + { name = "packaging" }, + { name = "platformdirs" }, + { name = "pycryptodomex" }, + { name = "pydantic" }, + { name = "pynwb" }, + { name = "pyout" }, + { name = "python-dateutil" }, + { name = "requests" }, + { name = "ruamel-yaml" }, + { name = "semantic-version" }, + { name = "tenacity" }, + { name = "tensorstore" }, + { name = "urllib3" }, + { name = "yarl" }, + { name = "zarr" }, + { name = "zarr-checksum" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/10/fc/39127506b70d3ef212a830e3d3725e032c2c049349ce60de5ed597317c55/dandi-0.71.4.tar.gz", hash = "sha256:5dc9e1960d8c55cb5a184b15f58c07cb50fdb7f5038c0f6bc8ccbb214e83381b", size = 354241, upload_time = "2025-09-17T01:39:44.061Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8e/60/5496a7c0de8221b0683bdee8f9710f297da125951d4f507bf8e037a512fe/dandi-0.71.4-py3-none-any.whl", hash = "sha256:3cf15eb411218386cc1a01465b604a97de6d5c5ef53c4186d84fed69605ef9a4", size = 359756, upload_time = "2025-09-17T01:39:42.145Z" }, +] + +[[package]] +name = "dandischema" +version = "0.11.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jsonschema", extra = ["format"] }, + { name = "pydantic", extra = ["email"] }, + { name = "requests" }, + { name = "zarr-checksum" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/83/c3/68b59ef8f7d49904af4aa4ea730364f3eb02b94cceaaadf128048cbd6370/dandischema-0.11.1.tar.gz", hash = "sha256:662ca01ec3bd81ca70becc98727b0aadd5b116a40ad257d11216acab0d8dda66", size = 74714, upload_time = "2025-05-15T13:38:37.957Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a2/a6/ea4542a2897f8e0438621bc44cd462021c737c84be85e1964f8625ce6509/dandischema-0.11.1-py3-none-any.whl", hash = "sha256:ac80c29a8dad7b4df2e3c7edd5a830fcb31acabe75c78a4b7323097e136d040f", size = 85309, upload_time = "2025-05-15T13:38:36.83Z" }, +] + +[[package]] +name = "deprecated" +version = "1.2.18" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "wrapt" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/98/97/06afe62762c9a8a86af0cfb7bfdab22a43ad17138b07af5b1a58442690a2/deprecated-1.2.18.tar.gz", hash = "sha256:422b6f6d859da6f2ef57857761bfb392480502a64c3028ca9bbe86085d72115d", size = 2928744, upload_time = "2025-01-27T10:46:25.7Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6e/c6/ac0b6c1e2d138f1002bcf799d330bd6d85084fece321e662a14223794041/Deprecated-1.2.18-py2.py3-none-any.whl", hash = "sha256:bd5011788200372a32418f888e326a09ff80d0214bd961147cfed01b5c018eec", size = 9998, upload_time = "2025-01-27T10:46:09.186Z" }, +] + +[[package]] +name = "dnspython" +version = "2.8.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8c/8b/57666417c0f90f08bcafa776861060426765fdb422eb10212086fb811d26/dnspython-2.8.0.tar.gz", hash = "sha256:181d3c6996452cb1189c4046c61599b84a5a86e099562ffde77d26984ff26d0f", size = 368251, upload_time = "2025-09-07T18:58:00.022Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ba/5a/18ad964b0086c6e62e2e7500f7edc89e3faa45033c71c1893d34eed2b2de/dnspython-2.8.0-py3-none-any.whl", hash = "sha256:01d9bbc4a2d76bf0db7c1f729812ded6d912bd318d3b1cf81d30c0f845dbf3af", size = 331094, upload_time = "2025-09-07T18:57:58.071Z" }, +] + +[[package]] +name = "email-validator" +version = "2.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "dnspython" }, + { name = "idna" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f5/22/900cb125c76b7aaa450ce02fd727f452243f2e91a61af068b40adba60ea9/email_validator-2.3.0.tar.gz", hash = "sha256:9fc05c37f2f6cf439ff414f8fc46d917929974a82244c20eb10231ba60c54426", size = 51238, upload_time = "2025-08-26T13:09:06.831Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/de/15/545e2b6cf2e3be84bc1ed85613edd75b8aea69807a71c26f4ca6a9258e82/email_validator-2.3.0-py3-none-any.whl", hash = "sha256:80f13f623413e6b197ae73bb10bf4eb0908faf509ad8362c5edeb0be7fd450b4", size = 35604, upload_time = "2025-08-26T13:09:05.858Z" }, +] + +[[package]] +name = "estimatingneurallatents" +version = "0.1.0" +source = { virtual = "." } +dependencies = [ + { name = "dandi" }, + { name = "h5py" }, + { name = "numpy" }, + { name = "pynwb" }, + { name = "remfile" }, +] + +[package.metadata] +requires-dist = [ + { name = "dandi", specifier = ">=0.71.4" }, + { name = "h5py", specifier = ">=3.14.0" }, + { name = "numpy", specifier = ">=2.3.3" }, + { name = "pynwb", specifier = ">=3.1.2" }, + { name = "remfile", specifier = ">=0.1.13" }, +] + +[[package]] +name = "etelemetry" +version = "0.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ci-info" }, + { name = "packaging" }, + { name = "requests" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/83/27/f997c9da0e179986fadd6c8474d16743f1b3697c129c2fcd1e739cd038c2/etelemetry-0.3.1-py3-none-any.whl", hash = "sha256:a64f09bcd55cbfa5684e4d9fb6d1d6a018ab99d2ea28e638435c4c26e6814a6b", size = 6416, upload_time = "2023-10-13T15:13:16.067Z" }, +] + +[[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, 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, upload_time = "2025-08-11T10:19:35.716Z" }, +] + +[[package]] +name = "fqdn" +version = "1.5.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/30/3e/a80a8c077fd798951169626cde3e239adeba7dab75deb3555716415bd9b0/fqdn-1.5.1.tar.gz", hash = "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f", size = 6015, upload_time = "2021-03-11T07:16:29.08Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cf/58/8acf1b3e91c58313ce5cb67df61001fc9dcd21be4fadb76c1a2d540e09ed/fqdn-1.5.1-py3-none-any.whl", hash = "sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014", size = 9121, upload_time = "2021-03-11T07:16:28.351Z" }, +] + +[[package]] +name = "frozenlist" +version = "1.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/79/b1/b64018016eeb087db503b038296fd782586432b9c077fc5c7839e9cb6ef6/frozenlist-1.7.0.tar.gz", hash = "sha256:2e310d81923c2437ea8670467121cc3e9b0f76d3043cc1d2331d56c7fb7a3a8f", size = 45078, upload_time = "2025-06-09T23:02:35.538Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ef/a2/c8131383f1e66adad5f6ecfcce383d584ca94055a34d683bbb24ac5f2f1c/frozenlist-1.7.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:3dbf9952c4bb0e90e98aec1bd992b3318685005702656bc6f67c1a32b76787f2", size = 81424, upload_time = "2025-06-09T23:00:42.24Z" }, + { url = "https://files.pythonhosted.org/packages/4c/9d/02754159955088cb52567337d1113f945b9e444c4960771ea90eb73de8db/frozenlist-1.7.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:1f5906d3359300b8a9bb194239491122e6cf1444c2efb88865426f170c262cdb", size = 47952, upload_time = "2025-06-09T23:00:43.481Z" }, + { url = "https://files.pythonhosted.org/packages/01/7a/0046ef1bd6699b40acd2067ed6d6670b4db2f425c56980fa21c982c2a9db/frozenlist-1.7.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3dabd5a8f84573c8d10d8859a50ea2dec01eea372031929871368c09fa103478", size = 46688, upload_time = "2025-06-09T23:00:44.793Z" }, + { url = "https://files.pythonhosted.org/packages/d6/a2/a910bafe29c86997363fb4c02069df4ff0b5bc39d33c5198b4e9dd42d8f8/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa57daa5917f1738064f302bf2626281a1cb01920c32f711fbc7bc36111058a8", size = 243084, upload_time = "2025-06-09T23:00:46.125Z" }, + { url = "https://files.pythonhosted.org/packages/64/3e/5036af9d5031374c64c387469bfcc3af537fc0f5b1187d83a1cf6fab1639/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c193dda2b6d49f4c4398962810fa7d7c78f032bf45572b3e04dd5249dff27e08", size = 233524, upload_time = "2025-06-09T23:00:47.73Z" }, + { url = "https://files.pythonhosted.org/packages/06/39/6a17b7c107a2887e781a48ecf20ad20f1c39d94b2a548c83615b5b879f28/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bfe2b675cf0aaa6d61bf8fbffd3c274b3c9b7b1623beb3809df8a81399a4a9c4", size = 248493, upload_time = "2025-06-09T23:00:49.742Z" }, + { url = "https://files.pythonhosted.org/packages/be/00/711d1337c7327d88c44d91dd0f556a1c47fb99afc060ae0ef66b4d24793d/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8fc5d5cda37f62b262405cf9652cf0856839c4be8ee41be0afe8858f17f4c94b", size = 244116, upload_time = "2025-06-09T23:00:51.352Z" }, + { url = "https://files.pythonhosted.org/packages/24/fe/74e6ec0639c115df13d5850e75722750adabdc7de24e37e05a40527ca539/frozenlist-1.7.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b0d5ce521d1dd7d620198829b87ea002956e4319002ef0bc8d3e6d045cb4646e", size = 224557, upload_time = "2025-06-09T23:00:52.855Z" }, + { url = "https://files.pythonhosted.org/packages/8d/db/48421f62a6f77c553575201e89048e97198046b793f4a089c79a6e3268bd/frozenlist-1.7.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:488d0a7d6a0008ca0db273c542098a0fa9e7dfaa7e57f70acef43f32b3f69dca", size = 241820, upload_time = "2025-06-09T23:00:54.43Z" }, + { url = "https://files.pythonhosted.org/packages/1d/fa/cb4a76bea23047c8462976ea7b7a2bf53997a0ca171302deae9d6dd12096/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:15a7eaba63983d22c54d255b854e8108e7e5f3e89f647fc854bd77a237e767df", size = 236542, upload_time = "2025-06-09T23:00:56.409Z" }, + { url = "https://files.pythonhosted.org/packages/5d/32/476a4b5cfaa0ec94d3f808f193301debff2ea42288a099afe60757ef6282/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:1eaa7e9c6d15df825bf255649e05bd8a74b04a4d2baa1ae46d9c2d00b2ca2cb5", size = 249350, upload_time = "2025-06-09T23:00:58.468Z" }, + { url = "https://files.pythonhosted.org/packages/8d/ba/9a28042f84a6bf8ea5dbc81cfff8eaef18d78b2a1ad9d51c7bc5b029ad16/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e4389e06714cfa9d47ab87f784a7c5be91d3934cd6e9a7b85beef808297cc025", size = 225093, upload_time = "2025-06-09T23:01:00.015Z" }, + { url = "https://files.pythonhosted.org/packages/bc/29/3a32959e68f9cf000b04e79ba574527c17e8842e38c91d68214a37455786/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:73bd45e1488c40b63fe5a7df892baf9e2a4d4bb6409a2b3b78ac1c6236178e01", size = 245482, upload_time = "2025-06-09T23:01:01.474Z" }, + { url = "https://files.pythonhosted.org/packages/80/e8/edf2f9e00da553f07f5fa165325cfc302dead715cab6ac8336a5f3d0adc2/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:99886d98e1643269760e5fe0df31e5ae7050788dd288947f7f007209b8c33f08", size = 249590, upload_time = "2025-06-09T23:01:02.961Z" }, + { url = "https://files.pythonhosted.org/packages/1c/80/9a0eb48b944050f94cc51ee1c413eb14a39543cc4f760ed12657a5a3c45a/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:290a172aae5a4c278c6da8a96222e6337744cd9c77313efe33d5670b9f65fc43", size = 237785, upload_time = "2025-06-09T23:01:05.095Z" }, + { url = "https://files.pythonhosted.org/packages/f3/74/87601e0fb0369b7a2baf404ea921769c53b7ae00dee7dcfe5162c8c6dbf0/frozenlist-1.7.0-cp312-cp312-win32.whl", hash = "sha256:426c7bc70e07cfebc178bc4c2bf2d861d720c4fff172181eeb4a4c41d4ca2ad3", size = 39487, upload_time = "2025-06-09T23:01:06.54Z" }, + { url = "https://files.pythonhosted.org/packages/0b/15/c026e9a9fc17585a9d461f65d8593d281fedf55fbf7eb53f16c6df2392f9/frozenlist-1.7.0-cp312-cp312-win_amd64.whl", hash = "sha256:563b72efe5da92e02eb68c59cb37205457c977aa7a449ed1b37e6939e5c47c6a", size = 43874, upload_time = "2025-06-09T23:01:07.752Z" }, + { url = "https://files.pythonhosted.org/packages/24/90/6b2cebdabdbd50367273c20ff6b57a3dfa89bd0762de02c3a1eb42cb6462/frozenlist-1.7.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ee80eeda5e2a4e660651370ebffd1286542b67e268aa1ac8d6dbe973120ef7ee", size = 79791, upload_time = "2025-06-09T23:01:09.368Z" }, + { url = "https://files.pythonhosted.org/packages/83/2e/5b70b6a3325363293fe5fc3ae74cdcbc3e996c2a11dde2fd9f1fb0776d19/frozenlist-1.7.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d1a81c85417b914139e3a9b995d4a1c84559afc839a93cf2cb7f15e6e5f6ed2d", size = 47165, upload_time = "2025-06-09T23:01:10.653Z" }, + { url = "https://files.pythonhosted.org/packages/f4/25/a0895c99270ca6966110f4ad98e87e5662eab416a17e7fd53c364bf8b954/frozenlist-1.7.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cbb65198a9132ebc334f237d7b0df163e4de83fb4f2bdfe46c1e654bdb0c5d43", size = 45881, upload_time = "2025-06-09T23:01:12.296Z" }, + { url = "https://files.pythonhosted.org/packages/19/7c/71bb0bbe0832793c601fff68cd0cf6143753d0c667f9aec93d3c323f4b55/frozenlist-1.7.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dab46c723eeb2c255a64f9dc05b8dd601fde66d6b19cdb82b2e09cc6ff8d8b5d", size = 232409, upload_time = "2025-06-09T23:01:13.641Z" }, + { url = "https://files.pythonhosted.org/packages/c0/45/ed2798718910fe6eb3ba574082aaceff4528e6323f9a8570be0f7028d8e9/frozenlist-1.7.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6aeac207a759d0dedd2e40745575ae32ab30926ff4fa49b1635def65806fddee", size = 225132, upload_time = "2025-06-09T23:01:15.264Z" }, + { url = "https://files.pythonhosted.org/packages/ba/e2/8417ae0f8eacb1d071d4950f32f229aa6bf68ab69aab797b72a07ea68d4f/frozenlist-1.7.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bd8c4e58ad14b4fa7802b8be49d47993182fdd4023393899632c88fd8cd994eb", size = 237638, upload_time = "2025-06-09T23:01:16.752Z" }, + { url = "https://files.pythonhosted.org/packages/f8/b7/2ace5450ce85f2af05a871b8c8719b341294775a0a6c5585d5e6170f2ce7/frozenlist-1.7.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:04fb24d104f425da3540ed83cbfc31388a586a7696142004c577fa61c6298c3f", size = 233539, upload_time = "2025-06-09T23:01:18.202Z" }, + { url = "https://files.pythonhosted.org/packages/46/b9/6989292c5539553dba63f3c83dc4598186ab2888f67c0dc1d917e6887db6/frozenlist-1.7.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6a5c505156368e4ea6b53b5ac23c92d7edc864537ff911d2fb24c140bb175e60", size = 215646, upload_time = "2025-06-09T23:01:19.649Z" }, + { url = "https://files.pythonhosted.org/packages/72/31/bc8c5c99c7818293458fe745dab4fd5730ff49697ccc82b554eb69f16a24/frozenlist-1.7.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8bd7eb96a675f18aa5c553eb7ddc24a43c8c18f22e1f9925528128c052cdbe00", size = 232233, upload_time = "2025-06-09T23:01:21.175Z" }, + { url = "https://files.pythonhosted.org/packages/59/52/460db4d7ba0811b9ccb85af996019f5d70831f2f5f255f7cc61f86199795/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:05579bf020096fe05a764f1f84cd104a12f78eaab68842d036772dc6d4870b4b", size = 227996, upload_time = "2025-06-09T23:01:23.098Z" }, + { url = "https://files.pythonhosted.org/packages/ba/c9/f4b39e904c03927b7ecf891804fd3b4df3db29b9e487c6418e37988d6e9d/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:376b6222d114e97eeec13d46c486facd41d4f43bab626b7c3f6a8b4e81a5192c", size = 242280, upload_time = "2025-06-09T23:01:24.808Z" }, + { url = "https://files.pythonhosted.org/packages/b8/33/3f8d6ced42f162d743e3517781566b8481322be321b486d9d262adf70bfb/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:0aa7e176ebe115379b5b1c95b4096fb1c17cce0847402e227e712c27bdb5a949", size = 217717, upload_time = "2025-06-09T23:01:26.28Z" }, + { url = "https://files.pythonhosted.org/packages/3e/e8/ad683e75da6ccef50d0ab0c2b2324b32f84fc88ceee778ed79b8e2d2fe2e/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:3fbba20e662b9c2130dc771e332a99eff5da078b2b2648153a40669a6d0e36ca", size = 236644, upload_time = "2025-06-09T23:01:27.887Z" }, + { url = "https://files.pythonhosted.org/packages/b2/14/8d19ccdd3799310722195a72ac94ddc677541fb4bef4091d8e7775752360/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:f3f4410a0a601d349dd406b5713fec59b4cee7e71678d5b17edda7f4655a940b", size = 238879, upload_time = "2025-06-09T23:01:29.524Z" }, + { url = "https://files.pythonhosted.org/packages/ce/13/c12bf657494c2fd1079a48b2db49fa4196325909249a52d8f09bc9123fd7/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e2cdfaaec6a2f9327bf43c933c0319a7c429058e8537c508964a133dffee412e", size = 232502, upload_time = "2025-06-09T23:01:31.287Z" }, + { url = "https://files.pythonhosted.org/packages/d7/8b/e7f9dfde869825489382bc0d512c15e96d3964180c9499efcec72e85db7e/frozenlist-1.7.0-cp313-cp313-win32.whl", hash = "sha256:5fc4df05a6591c7768459caba1b342d9ec23fa16195e744939ba5914596ae3e1", size = 39169, upload_time = "2025-06-09T23:01:35.503Z" }, + { url = "https://files.pythonhosted.org/packages/35/89/a487a98d94205d85745080a37860ff5744b9820a2c9acbcdd9440bfddf98/frozenlist-1.7.0-cp313-cp313-win_amd64.whl", hash = "sha256:52109052b9791a3e6b5d1b65f4b909703984b770694d3eb64fad124c835d7cba", size = 43219, upload_time = "2025-06-09T23:01:36.784Z" }, + { url = "https://files.pythonhosted.org/packages/56/d5/5c4cf2319a49eddd9dd7145e66c4866bdc6f3dbc67ca3d59685149c11e0d/frozenlist-1.7.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:a6f86e4193bb0e235ef6ce3dde5cbabed887e0b11f516ce8a0f4d3b33078ec2d", size = 84345, upload_time = "2025-06-09T23:01:38.295Z" }, + { url = "https://files.pythonhosted.org/packages/a4/7d/ec2c1e1dc16b85bc9d526009961953df9cec8481b6886debb36ec9107799/frozenlist-1.7.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:82d664628865abeb32d90ae497fb93df398a69bb3434463d172b80fc25b0dd7d", size = 48880, upload_time = "2025-06-09T23:01:39.887Z" }, + { url = "https://files.pythonhosted.org/packages/69/86/f9596807b03de126e11e7d42ac91e3d0b19a6599c714a1989a4e85eeefc4/frozenlist-1.7.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:912a7e8375a1c9a68325a902f3953191b7b292aa3c3fb0d71a216221deca460b", size = 48498, upload_time = "2025-06-09T23:01:41.318Z" }, + { url = "https://files.pythonhosted.org/packages/5e/cb/df6de220f5036001005f2d726b789b2c0b65f2363b104bbc16f5be8084f8/frozenlist-1.7.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9537c2777167488d539bc5de2ad262efc44388230e5118868e172dd4a552b146", size = 292296, upload_time = "2025-06-09T23:01:42.685Z" }, + { url = "https://files.pythonhosted.org/packages/83/1f/de84c642f17c8f851a2905cee2dae401e5e0daca9b5ef121e120e19aa825/frozenlist-1.7.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:f34560fb1b4c3e30ba35fa9a13894ba39e5acfc5f60f57d8accde65f46cc5e74", size = 273103, upload_time = "2025-06-09T23:01:44.166Z" }, + { url = "https://files.pythonhosted.org/packages/88/3c/c840bfa474ba3fa13c772b93070893c6e9d5c0350885760376cbe3b6c1b3/frozenlist-1.7.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:acd03d224b0175f5a850edc104ac19040d35419eddad04e7cf2d5986d98427f1", size = 292869, upload_time = "2025-06-09T23:01:45.681Z" }, + { url = "https://files.pythonhosted.org/packages/a6/1c/3efa6e7d5a39a1d5ef0abeb51c48fb657765794a46cf124e5aca2c7a592c/frozenlist-1.7.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f2038310bc582f3d6a09b3816ab01737d60bf7b1ec70f5356b09e84fb7408ab1", size = 291467, upload_time = "2025-06-09T23:01:47.234Z" }, + { url = "https://files.pythonhosted.org/packages/4f/00/d5c5e09d4922c395e2f2f6b79b9a20dab4b67daaf78ab92e7729341f61f6/frozenlist-1.7.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b8c05e4c8e5f36e5e088caa1bf78a687528f83c043706640a92cb76cd6999384", size = 266028, upload_time = "2025-06-09T23:01:48.819Z" }, + { url = "https://files.pythonhosted.org/packages/4e/27/72765be905619dfde25a7f33813ac0341eb6b076abede17a2e3fbfade0cb/frozenlist-1.7.0-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:765bb588c86e47d0b68f23c1bee323d4b703218037765dcf3f25c838c6fecceb", size = 284294, upload_time = "2025-06-09T23:01:50.394Z" }, + { url = "https://files.pythonhosted.org/packages/88/67/c94103a23001b17808eb7dd1200c156bb69fb68e63fcf0693dde4cd6228c/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:32dc2e08c67d86d0969714dd484fd60ff08ff81d1a1e40a77dd34a387e6ebc0c", size = 281898, upload_time = "2025-06-09T23:01:52.234Z" }, + { url = "https://files.pythonhosted.org/packages/42/34/a3e2c00c00f9e2a9db5653bca3fec306349e71aff14ae45ecc6d0951dd24/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:c0303e597eb5a5321b4de9c68e9845ac8f290d2ab3f3e2c864437d3c5a30cd65", size = 290465, upload_time = "2025-06-09T23:01:53.788Z" }, + { url = "https://files.pythonhosted.org/packages/bb/73/f89b7fbce8b0b0c095d82b008afd0590f71ccb3dee6eee41791cf8cd25fd/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:a47f2abb4e29b3a8d0b530f7c3598badc6b134562b1a5caee867f7c62fee51e3", size = 266385, upload_time = "2025-06-09T23:01:55.769Z" }, + { url = "https://files.pythonhosted.org/packages/cd/45/e365fdb554159462ca12df54bc59bfa7a9a273ecc21e99e72e597564d1ae/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:3d688126c242a6fabbd92e02633414d40f50bb6002fa4cf995a1d18051525657", size = 288771, upload_time = "2025-06-09T23:01:57.4Z" }, + { url = "https://files.pythonhosted.org/packages/00/11/47b6117002a0e904f004d70ec5194fe9144f117c33c851e3d51c765962d0/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:4e7e9652b3d367c7bd449a727dc79d5043f48b88d0cbfd4f9f1060cf2b414104", size = 288206, upload_time = "2025-06-09T23:01:58.936Z" }, + { url = "https://files.pythonhosted.org/packages/40/37/5f9f3c3fd7f7746082ec67bcdc204db72dad081f4f83a503d33220a92973/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:1a85e345b4c43db8b842cab1feb41be5cc0b10a1830e6295b69d7310f99becaf", size = 282620, upload_time = "2025-06-09T23:02:00.493Z" }, + { url = "https://files.pythonhosted.org/packages/0b/31/8fbc5af2d183bff20f21aa743b4088eac4445d2bb1cdece449ae80e4e2d1/frozenlist-1.7.0-cp313-cp313t-win32.whl", hash = "sha256:3a14027124ddb70dfcee5148979998066897e79f89f64b13328595c4bdf77c81", size = 43059, upload_time = "2025-06-09T23:02:02.072Z" }, + { url = "https://files.pythonhosted.org/packages/bb/ed/41956f52105b8dbc26e457c5705340c67c8cc2b79f394b79bffc09d0e938/frozenlist-1.7.0-cp313-cp313t-win_amd64.whl", hash = "sha256:3bf8010d71d4507775f658e9823210b7427be36625b387221642725b515dcf3e", size = 47516, upload_time = "2025-06-09T23:02:03.779Z" }, + { url = "https://files.pythonhosted.org/packages/ee/45/b82e3c16be2182bff01179db177fe144d58b5dc787a7d4492c6ed8b9317f/frozenlist-1.7.0-py3-none-any.whl", hash = "sha256:9a5af342e34f7e97caf8c995864c7a396418ae2859cc6fdf1b1073020d516a7e", size = 13106, upload_time = "2025-06-09T23:02:34.204Z" }, +] + +[[package]] +name = "fscacher" +version = "0.4.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "joblib" }, + { name = "platformdirs" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/37/b7/d78437a034563d0b063d327d0bf9ac51854305ddf1f002ec54d18928e051/fscacher-0.4.4.tar.gz", hash = "sha256:742ab436ea698c3ef06e9d9cde81a5687bf2c2910019679a0d7f572d8ab97d79", size = 35265, upload_time = "2025-01-06T14:04:24.19Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/f1/816bb80e649ba7202cee656733ecea134370f9496c661fc16c129450bdbc/fscacher-0.4.4-py3-none-any.whl", hash = "sha256:f45632f318e979a7c27fc645b36bd633121fa443a50daf96de0fb9afe7c61b47", size = 12484, upload_time = "2025-01-06T14:04:22.612Z" }, +] + +[[package]] +name = "fsspec" +version = "2025.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/de/e0/bab50af11c2d75c9c4a2a26a5254573c0bd97cea152254401510950486fa/fsspec-2025.9.0.tar.gz", hash = "sha256:19fd429483d25d28b65ec68f9f4adc16c17ea2c7c7bf54ec61360d478fb19c19", size = 304847, upload_time = "2025-09-02T19:10:49.215Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/47/71/70db47e4f6ce3e5c37a607355f80da8860a33226be640226ac52cb05ef2e/fsspec-2025.9.0-py3-none-any.whl", hash = "sha256:530dc2a2af60a414a832059574df4a6e10cce927f6f4a78209390fe38955cfb7", size = 199289, upload_time = "2025-09-02T19:10:47.708Z" }, +] + +[[package]] +name = "h5py" +version = "3.14.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +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 = "hdmf" +version = "4.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "h5py" }, + { name = "jsonschema" }, + { name = "numpy" }, + { name = "pandas" }, + { name = "ruamel-yaml" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5d/42/1abbdd6321e9c3b382cac20e993fc9f347417b5a2dadf771801cca033607/hdmf-4.1.0.tar.gz", hash = "sha256:7fd1577deeb2f385fa34bda93657babe697fd71420eda2bec6e12ef03e53730a", size = 16607167, upload_time = "2025-05-28T19:02:11.54Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/e4/a5c84425feece1383ede342086720f8eba4a67e6afc2e4f990d2ce1d7e94/hdmf-4.1.0-py3-none-any.whl", hash = "sha256:d0cffd8e573d77368892d20351ecba07142a8a21b75c7665d732748132d7a696", size = 336653, upload_time = "2025-05-28T19:02:09.808Z" }, +] + +[[package]] +name = "hdmf-zarr" +version = "0.11.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "hdmf" }, + { name = "numcodecs" }, + { name = "numpy" }, + { name = "pynwb" }, + { name = "threadpoolctl" }, + { name = "zarr" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ab/a2/df41ea6846da35ed2427730379f8650521d0364517131b036c1e7462d1c3/hdmf_zarr-0.11.3.tar.gz", hash = "sha256:07c3aaaa59ac5b02d3abc80b5e25fcd1a9742eb296fe251c992a277a1850e97c", size = 3105845, upload_time = "2025-08-10T22:23:57.676Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/b9/c6dd04e38336afd1301a8f7f214a599724dcf8fe57522817ea65a430ad31/hdmf_zarr-0.11.3-py3-none-any.whl", hash = "sha256:57202f9f19bda920b34e25788fa4de67c0d93ff3076345f01419bde1d230a7bb", size = 33288, upload_time = "2025-08-10T22:23:55.54Z" }, +] + +[[package]] +name = "humanize" +version = "4.13.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/98/1d/3062fcc89ee05a715c0b9bfe6490c00c576314f27ffee3a704122c6fd259/humanize-4.13.0.tar.gz", hash = "sha256:78f79e68f76f0b04d711c4e55d32bebef5be387148862cb1ef83d2b58e7935a0", size = 81884, upload_time = "2025-08-25T09:39:20.04Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/c7/316e7ca04d26695ef0635dc81683d628350810eb8e9b2299fc08ba49f366/humanize-4.13.0-py3-none-any.whl", hash = "sha256:b810820b31891813b1673e8fec7f1ed3312061eab2f26e3fa192c393d11ed25f", size = 128869, upload_time = "2025-08-25T09:39:18.54Z" }, +] + +[[package]] +name = "idna" +version = "3.10" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490, upload_time = "2024-09-15T18:07:39.745Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442, upload_time = "2024-09-15T18:07:37.964Z" }, +] + +[[package]] +name = "interleave" +version = "0.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cb/73/f06bcda00889d164ee1918126381f2d5e0030a6deaf80c9887e84ba18e31/interleave-0.3.0.tar.gz", hash = "sha256:4c4595e05c5c3286d306db7459972bada9a38088fb8649c1199782c8e4a60a32", size = 15689, upload_time = "2025-01-28T19:48:04.286Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/2b/13b5b2e418bc77574b7215c26be862f72d7850713116641c4ad56add61fd/interleave-0.3.0-py3-none-any.whl", hash = "sha256:09d772693b958c0cbb11e3cd8a6b726c6995c7e12b0530a10ae31a943b458c39", size = 11847, upload_time = "2025-01-28T19:48:03.081Z" }, +] + +[[package]] +name = "isodate" +version = "0.7.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/54/4d/e940025e2ce31a8ce1202635910747e5a87cc3a6a6bb2d00973375014749/isodate-0.7.2.tar.gz", hash = "sha256:4cd1aa0f43ca76f4a6c6c0292a85f40b35ec2e43e315b59f06e6d32171a953e6", size = 29705, upload_time = "2024-10-08T23:04:11.5Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/15/aa/0aca39a37d3c7eb941ba736ede56d689e7be91cab5d9ca846bde3999eba6/isodate-0.7.2-py3-none-any.whl", hash = "sha256:28009937d8031054830160fce6d409ed342816b543597cece116d966c6d99e15", size = 22320, upload_time = "2024-10-08T23:04:09.501Z" }, +] + +[[package]] +name = "isoduration" +version = "20.11.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "arrow" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7c/1a/3c8edc664e06e6bd06cce40c6b22da5f1429aa4224d0c590f3be21c91ead/isoduration-20.11.0.tar.gz", hash = "sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9", size = 11649, upload_time = "2020-11-01T11:00:00.312Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7b/55/e5326141505c5d5e34c5e0935d2908a74e4561eca44108fbfb9c13d2911a/isoduration-20.11.0-py3-none-any.whl", hash = "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042", size = 11321, upload_time = "2020-11-01T10:59:58.02Z" }, +] + +[[package]] +name = "jaraco-classes" +version = "3.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "more-itertools" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/06/c0/ed4a27bc5571b99e3cff68f8a9fa5b56ff7df1c2251cc715a652ddd26402/jaraco.classes-3.4.0.tar.gz", hash = "sha256:47a024b51d0239c0dd8c8540c6c7f484be3b8fcf0b2d85c13825780d3b3f3acd", size = 11780, upload_time = "2024-03-31T07:27:36.643Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7f/66/b15ce62552d84bbfcec9a4873ab79d993a1dd4edb922cbfccae192bd5b5f/jaraco.classes-3.4.0-py3-none-any.whl", hash = "sha256:f662826b6bed8cace05e7ff873ce0f9283b5c924470fe664fff1c2f00f581790", size = 6777, upload_time = "2024-03-31T07:27:34.792Z" }, +] + +[[package]] +name = "jaraco-context" +version = "6.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ad/f3777b81bf0b6e7bc7514a1656d3e637b2e8e15fab2ce3235730b3e7a4e6/jaraco_context-6.0.1.tar.gz", hash = "sha256:9bae4ea555cf0b14938dc0aee7c9f32ed303aa20a3b73e7dc80111628792d1b3", size = 13912, upload_time = "2024-08-20T03:39:27.358Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ff/db/0c52c4cf5e4bd9f5d7135ec7669a3a767af21b3a308e1ed3674881e52b62/jaraco.context-6.0.1-py3-none-any.whl", hash = "sha256:f797fc481b490edb305122c9181830a3a5b76d84ef6d1aef2fb9b47ab956f9e4", size = 6825, upload_time = "2024-08-20T03:39:25.966Z" }, +] + +[[package]] +name = "jaraco-functools" +version = "4.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "more-itertools" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/ed/1aa2d585304ec07262e1a83a9889880701079dde796ac7b1d1826f40c63d/jaraco_functools-4.3.0.tar.gz", hash = "sha256:cfd13ad0dd2c47a3600b439ef72d8615d482cedcff1632930d6f28924d92f294", size = 19755, upload_time = "2025-08-18T20:05:09.91Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b4/09/726f168acad366b11e420df31bf1c702a54d373a83f968d94141a8c3fde0/jaraco_functools-4.3.0-py3-none-any.whl", hash = "sha256:227ff8ed6f7b8f62c56deff101545fa7543cf2c8e7b82a7c2116e672f29c26e8", size = 10408, upload_time = "2025-08-18T20:05:08.69Z" }, +] + +[[package]] +name = "jeepney" +version = "0.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7b/6f/357efd7602486741aa73ffc0617fb310a29b588ed0fd69c2399acbb85b0c/jeepney-0.9.0.tar.gz", hash = "sha256:cf0e9e845622b81e4a28df94c40345400256ec608d0e55bb8a3feaa9163f5732", size = 106758, upload_time = "2025-02-27T18:51:01.684Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b2/a3/e137168c9c44d18eff0376253da9f1e9234d0239e0ee230d2fee6cea8e55/jeepney-0.9.0-py3-none-any.whl", hash = "sha256:97e5714520c16fc0a45695e5365a2e11b81ea79bba796e26f9f1d178cb182683", size = 49010, upload_time = "2025-02-27T18:51:00.104Z" }, +] + +[[package]] +name = "joblib" +version = "1.5.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e8/5d/447af5ea094b9e4c4054f82e223ada074c552335b9b4b2d14bd9b35a67c4/joblib-1.5.2.tar.gz", hash = "sha256:3faa5c39054b2f03ca547da9b2f52fde67c06240c31853f306aea97f13647b55", size = 331077, upload_time = "2025-08-27T12:15:46.575Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/e8/685f47e0d754320684db4425a0967f7d3fa70126bffd76110b7009a0090f/joblib-1.5.2-py3-none-any.whl", hash = "sha256:4e1f0bdbb987e6d843c70cf43714cb276623def372df3c22fe5266b2670bc241", size = 308396, upload_time = "2025-08-27T12:15:45.188Z" }, +] + +[[package]] +name = "jsonpointer" +version = "3.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6a/0a/eebeb1fa92507ea94016a2a790b93c2ae41a7e18778f85471dc54475ed25/jsonpointer-3.0.0.tar.gz", hash = "sha256:2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef", size = 9114, upload_time = "2024-06-10T19:24:42.462Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/71/92/5e77f98553e9e75130c78900d000368476aed74276eb8ae8796f65f00918/jsonpointer-3.0.0-py2.py3-none-any.whl", hash = "sha256:13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942", size = 7595, upload_time = "2024-06-10T19:24:40.698Z" }, +] + +[[package]] +name = "jsonschema" +version = "4.25.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "jsonschema-specifications" }, + { name = "referencing" }, + { name = "rpds-py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/74/69/f7185de793a29082a9f3c7728268ffb31cb5095131a9c139a74078e27336/jsonschema-4.25.1.tar.gz", hash = "sha256:e4a9655ce0da0c0b67a085847e00a3a51449e1157f4f75e9fb5aa545e122eb85", size = 357342, upload_time = "2025-08-18T17:03:50.038Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bf/9c/8c95d856233c1f82500c2450b8c68576b4cf1c871db3afac5c34ff84e6fd/jsonschema-4.25.1-py3-none-any.whl", hash = "sha256:3fba0169e345c7175110351d456342c364814cfcf3b964ba4587f22915230a63", size = 90040, upload_time = "2025-08-18T17:03:48.373Z" }, +] + +[package.optional-dependencies] +format = [ + { name = "fqdn" }, + { name = "idna" }, + { name = "isoduration" }, + { name = "jsonpointer" }, + { name = "rfc3339-validator" }, + { name = "rfc3987" }, + { name = "uri-template" }, + { name = "webcolors" }, +] + +[[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, upload_time = "2025-09-08T01:34:59.186Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl", hash = "sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe", size = 18437, upload_time = "2025-09-08T01:34:57.871Z" }, +] + +[[package]] +name = "keyring" +version = "25.6.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jaraco-classes" }, + { name = "jaraco-context" }, + { name = "jaraco-functools" }, + { name = "jeepney", marker = "sys_platform == 'linux'" }, + { name = "pywin32-ctypes", marker = "sys_platform == 'win32'" }, + { name = "secretstorage", marker = "sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/70/09/d904a6e96f76ff214be59e7aa6ef7190008f52a0ab6689760a98de0bf37d/keyring-25.6.0.tar.gz", hash = "sha256:0b39998aa941431eb3d9b0d4b2460bc773b9df6fed7621c2dfb291a7e0187a66", size = 62750, upload_time = "2024-12-25T15:26:45.782Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d3/32/da7f44bcb1105d3e88a0b74ebdca50c59121d2ddf71c9e34ba47df7f3a56/keyring-25.6.0-py3-none-any.whl", hash = "sha256:552a3f7af126ece7ed5c89753650eec89c7eaae8617d0aa4d9ad2b75111266bd", size = 39085, upload_time = "2024-12-25T15:26:44.377Z" }, +] + +[[package]] +name = "keyrings-alt" +version = "5.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jaraco-classes" }, + { name = "jaraco-context" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5c/7b/e3bf53326e0753bee11813337b1391179582ba5c6851b13e0d9502d15a50/keyrings_alt-5.0.2.tar.gz", hash = "sha256:8f097ebe9dc8b185106502b8cdb066c926d2180e13b4689fd4771a3eab7d69fb", size = 29229, upload_time = "2024-08-14T01:09:28.12Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4a/0d/9c59313ab43d0858a9a665e80763bd830dc78d5f379afc3815e123c486c2/keyrings.alt-5.0.2-py3-none-any.whl", hash = "sha256:6be74693192f3f37bbb752bfac9b86e6177076b17d2ac12a390f1d6abff8ac7c", size = 17930, upload_time = "2024-08-14T01:09:26.785Z" }, +] + +[[package]] +name = "ml-dtypes" +version = "0.5.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/78/a7/aad060393123cfb383956dca68402aff3db1e1caffd5764887ed5153f41b/ml_dtypes-0.5.3.tar.gz", hash = "sha256:95ce33057ba4d05df50b1f3cfefab22e351868a843b3b15a46c65836283670c9", size = 692316, upload_time = "2025-07-29T18:39:19.454Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0d/eb/bc07c88a6ab002b4635e44585d80fa0b350603f11a2097c9d1bfacc03357/ml_dtypes-0.5.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:156418abeeda48ea4797db6776db3c5bdab9ac7be197c1233771e0880c304057", size = 663864, upload_time = "2025-07-29T18:38:33.777Z" }, + { url = "https://files.pythonhosted.org/packages/cf/89/11af9b0f21b99e6386b6581ab40fb38d03225f9de5f55cf52097047e2826/ml_dtypes-0.5.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1db60c154989af253f6c4a34e8a540c2c9dce4d770784d426945e09908fbb177", size = 4951313, upload_time = "2025-07-29T18:38:36.45Z" }, + { url = "https://files.pythonhosted.org/packages/d8/a9/b98b86426c24900b0c754aad006dce2863df7ce0bb2bcc2c02f9cc7e8489/ml_dtypes-0.5.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1b255acada256d1fa8c35ed07b5f6d18bc21d1556f842fbc2d5718aea2cd9e55", size = 4928805, upload_time = "2025-07-29T18:38:38.29Z" }, + { url = "https://files.pythonhosted.org/packages/50/c1/85e6be4fc09c6175f36fb05a45917837f30af9a5146a5151cb3a3f0f9e09/ml_dtypes-0.5.3-cp312-cp312-win_amd64.whl", hash = "sha256:da65e5fd3eea434ccb8984c3624bc234ddcc0d9f4c81864af611aaebcc08a50e", size = 208182, upload_time = "2025-07-29T18:38:39.72Z" }, + { url = "https://files.pythonhosted.org/packages/9e/17/cf5326d6867be057f232d0610de1458f70a8ce7b6290e4b4a277ea62b4cd/ml_dtypes-0.5.3-cp312-cp312-win_arm64.whl", hash = "sha256:8bb9cd1ce63096567f5f42851f5843b5a0ea11511e50039a7649619abfb4ba6d", size = 161560, upload_time = "2025-07-29T18:38:41.072Z" }, + { url = "https://files.pythonhosted.org/packages/2d/87/1bcc98a66de7b2455dfb292f271452cac9edc4e870796e0d87033524d790/ml_dtypes-0.5.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:5103856a225465371fe119f2fef737402b705b810bd95ad5f348e6e1a6ae21af", size = 663781, upload_time = "2025-07-29T18:38:42.984Z" }, + { url = "https://files.pythonhosted.org/packages/fd/2c/bd2a79ba7c759ee192b5601b675b180a3fd6ccf48ffa27fe1782d280f1a7/ml_dtypes-0.5.3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4cae435a68861660af81fa3c5af16b70ca11a17275c5b662d9c6f58294e0f113", size = 4956217, upload_time = "2025-07-29T18:38:44.65Z" }, + { url = "https://files.pythonhosted.org/packages/14/f3/091ba84e5395d7fe5b30c081a44dec881cd84b408db1763ee50768b2ab63/ml_dtypes-0.5.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6936283b56d74fbec431ca57ce58a90a908fdbd14d4e2d22eea6d72bb208a7b7", size = 4933109, upload_time = "2025-07-29T18:38:46.405Z" }, + { url = "https://files.pythonhosted.org/packages/bc/24/054036dbe32c43295382c90a1363241684c4d6aaa1ecc3df26bd0c8d5053/ml_dtypes-0.5.3-cp313-cp313-win_amd64.whl", hash = "sha256:d0f730a17cf4f343b2c7ad50cee3bd19e969e793d2be6ed911f43086460096e4", size = 208187, upload_time = "2025-07-29T18:38:48.24Z" }, + { url = "https://files.pythonhosted.org/packages/a6/3d/7dc3ec6794a4a9004c765e0c341e32355840b698f73fd2daff46f128afc1/ml_dtypes-0.5.3-cp313-cp313-win_arm64.whl", hash = "sha256:2db74788fc01914a3c7f7da0763427280adfc9cd377e9604b6b64eb8097284bd", size = 161559, upload_time = "2025-07-29T18:38:50.493Z" }, + { url = "https://files.pythonhosted.org/packages/12/91/e6c7a0d67a152b9330445f9f0cf8ae6eee9b83f990b8c57fe74631e42a90/ml_dtypes-0.5.3-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:93c36a08a6d158db44f2eb9ce3258e53f24a9a4a695325a689494f0fdbc71770", size = 689321, upload_time = "2025-07-29T18:38:52.03Z" }, + { url = "https://files.pythonhosted.org/packages/9e/6c/b7b94b84a104a5be1883305b87d4c6bd6ae781504474b4cca067cb2340ec/ml_dtypes-0.5.3-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0e44a3761f64bc009d71ddb6d6c71008ba21b53ab6ee588dadab65e2fa79eafc", size = 5274495, upload_time = "2025-07-29T18:38:53.797Z" }, + { url = "https://files.pythonhosted.org/packages/5b/38/6266604dffb43378055394ea110570cf261a49876fc48f548dfe876f34cc/ml_dtypes-0.5.3-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bdf40d2aaabd3913dec11840f0d0ebb1b93134f99af6a0a4fd88ffe924928ab4", size = 5285422, upload_time = "2025-07-29T18:38:56.603Z" }, + { url = "https://files.pythonhosted.org/packages/7c/88/8612ff177d043a474b9408f0382605d881eeb4125ba89d4d4b3286573a83/ml_dtypes-0.5.3-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:aec640bd94c4c85c0d11e2733bd13cbb10438fb004852996ec0efbc6cacdaf70", size = 661182, upload_time = "2025-07-29T18:38:58.414Z" }, + { url = "https://files.pythonhosted.org/packages/6f/2b/0569a5e88b29240d373e835107c94ae9256fb2191d3156b43b2601859eff/ml_dtypes-0.5.3-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bda32ce212baa724e03c68771e5c69f39e584ea426bfe1a701cb01508ffc7035", size = 4956187, upload_time = "2025-07-29T18:39:00.611Z" }, + { url = "https://files.pythonhosted.org/packages/51/66/273c2a06ae44562b104b61e6b14444da00061fd87652506579d7eb2c40b1/ml_dtypes-0.5.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c205cac07d24a29840c163d6469f61069ce4b065518519216297fc2f261f8db9", size = 4930911, upload_time = "2025-07-29T18:39:02.405Z" }, + { url = "https://files.pythonhosted.org/packages/93/ab/606be3e87dc0821bd360c8c1ee46108025c31a4f96942b63907bb441b87d/ml_dtypes-0.5.3-cp314-cp314-win_amd64.whl", hash = "sha256:cd7c0bb22d4ff86d65ad61b5dd246812e8993fbc95b558553624c33e8b6903ea", size = 216664, upload_time = "2025-07-29T18:39:03.927Z" }, + { url = "https://files.pythonhosted.org/packages/30/a2/e900690ca47d01dffffd66375c5de8c4f8ced0f1ef809ccd3b25b3e6b8fa/ml_dtypes-0.5.3-cp314-cp314-win_arm64.whl", hash = "sha256:9d55ea7f7baf2aed61bf1872116cefc9d0c3693b45cae3916897ee27ef4b835e", size = 160203, upload_time = "2025-07-29T18:39:05.671Z" }, + { url = "https://files.pythonhosted.org/packages/53/21/783dfb51f40d2660afeb9bccf3612b99f6a803d980d2a09132b0f9d216ab/ml_dtypes-0.5.3-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:e12e29764a0e66a7a31e9b8bf1de5cc0423ea72979f45909acd4292de834ccd3", size = 689324, upload_time = "2025-07-29T18:39:07.567Z" }, + { url = "https://files.pythonhosted.org/packages/09/f7/a82d249c711abf411ac027b7163f285487f5e615c3e0716c61033ce996ab/ml_dtypes-0.5.3-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:19f6c3a4f635c2fc9e2aa7d91416bd7a3d649b48350c51f7f715a09370a90d93", size = 5275917, upload_time = "2025-07-29T18:39:09.339Z" }, + { url = "https://files.pythonhosted.org/packages/7f/3c/541c4b30815ab90ebfbb51df15d0b4254f2f9f1e2b4907ab229300d5e6f2/ml_dtypes-0.5.3-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5ab039ffb40f3dc0aeeeba84fd6c3452781b5e15bef72e2d10bcb33e4bbffc39", size = 5285284, upload_time = "2025-07-29T18:39:11.532Z" }, +] + +[[package]] +name = "more-itertools" +version = "10.8.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ea/5d/38b681d3fce7a266dd9ab73c66959406d565b3e85f21d5e66e1181d93721/more_itertools-10.8.0.tar.gz", hash = "sha256:f638ddf8a1a0d134181275fb5d58b086ead7c6a72429ad725c67503f13ba30bd", size = 137431, upload_time = "2025-09-02T15:23:11.018Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a4/8e/469e5a4a2f5855992e425f3cb33804cc07bf18d48f2db061aec61ce50270/more_itertools-10.8.0-py3-none-any.whl", hash = "sha256:52d4362373dcf7c52546bc4af9a86ee7c4579df9a8dc268be0a2f949d376cc9b", size = 69667, upload_time = "2025-09-02T15:23:09.635Z" }, +] + +[[package]] +name = "multidict" +version = "6.6.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/69/7f/0652e6ed47ab288e3756ea9c0df8b14950781184d4bd7883f4d87dd41245/multidict-6.6.4.tar.gz", hash = "sha256:d2d4e4787672911b48350df02ed3fa3fffdc2f2e8ca06dd6afdf34189b76a9dd", size = 101843, upload_time = "2025-08-11T12:08:48.217Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/05/f6/512ffd8fd8b37fb2680e5ac35d788f1d71bbaf37789d21a820bdc441e565/multidict-6.6.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0ffb87be160942d56d7b87b0fdf098e81ed565add09eaa1294268c7f3caac4c8", size = 76516, upload_time = "2025-08-11T12:06:53.393Z" }, + { url = "https://files.pythonhosted.org/packages/99/58/45c3e75deb8855c36bd66cc1658007589662ba584dbf423d01df478dd1c5/multidict-6.6.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d191de6cbab2aff5de6c5723101705fd044b3e4c7cfd587a1929b5028b9714b3", size = 45394, upload_time = "2025-08-11T12:06:54.555Z" }, + { url = "https://files.pythonhosted.org/packages/fd/ca/e8c4472a93a26e4507c0b8e1f0762c0d8a32de1328ef72fd704ef9cc5447/multidict-6.6.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:38a0956dd92d918ad5feff3db8fcb4a5eb7dba114da917e1a88475619781b57b", size = 43591, upload_time = "2025-08-11T12:06:55.672Z" }, + { url = "https://files.pythonhosted.org/packages/05/51/edf414f4df058574a7265034d04c935aa84a89e79ce90fcf4df211f47b16/multidict-6.6.4-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:6865f6d3b7900ae020b495d599fcf3765653bc927951c1abb959017f81ae8287", size = 237215, upload_time = "2025-08-11T12:06:57.213Z" }, + { url = "https://files.pythonhosted.org/packages/c8/45/8b3d6dbad8cf3252553cc41abea09ad527b33ce47a5e199072620b296902/multidict-6.6.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0a2088c126b6f72db6c9212ad827d0ba088c01d951cee25e758c450da732c138", size = 258299, upload_time = "2025-08-11T12:06:58.946Z" }, + { url = "https://files.pythonhosted.org/packages/3c/e8/8ca2e9a9f5a435fc6db40438a55730a4bf4956b554e487fa1b9ae920f825/multidict-6.6.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0f37bed7319b848097085d7d48116f545985db988e2256b2e6f00563a3416ee6", size = 242357, upload_time = "2025-08-11T12:07:00.301Z" }, + { url = "https://files.pythonhosted.org/packages/0f/84/80c77c99df05a75c28490b2af8f7cba2a12621186e0a8b0865d8e745c104/multidict-6.6.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:01368e3c94032ba6ca0b78e7ccb099643466cf24f8dc8eefcfdc0571d56e58f9", size = 268369, upload_time = "2025-08-11T12:07:01.638Z" }, + { url = "https://files.pythonhosted.org/packages/0d/e9/920bfa46c27b05fb3e1ad85121fd49f441492dca2449c5bcfe42e4565d8a/multidict-6.6.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8fe323540c255db0bffee79ad7f048c909f2ab0edb87a597e1c17da6a54e493c", size = 269341, upload_time = "2025-08-11T12:07:02.943Z" }, + { url = "https://files.pythonhosted.org/packages/af/65/753a2d8b05daf496f4a9c367fe844e90a1b2cac78e2be2c844200d10cc4c/multidict-6.6.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b8eb3025f17b0a4c3cd08cda49acf312a19ad6e8a4edd9dbd591e6506d999402", size = 256100, upload_time = "2025-08-11T12:07:04.564Z" }, + { url = "https://files.pythonhosted.org/packages/09/54/655be13ae324212bf0bc15d665a4e34844f34c206f78801be42f7a0a8aaa/multidict-6.6.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:bbc14f0365534d35a06970d6a83478b249752e922d662dc24d489af1aa0d1be7", size = 253584, upload_time = "2025-08-11T12:07:05.914Z" }, + { url = "https://files.pythonhosted.org/packages/5c/74/ab2039ecc05264b5cec73eb018ce417af3ebb384ae9c0e9ed42cb33f8151/multidict-6.6.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:75aa52fba2d96bf972e85451b99d8e19cc37ce26fd016f6d4aa60da9ab2b005f", size = 251018, upload_time = "2025-08-11T12:07:08.301Z" }, + { url = "https://files.pythonhosted.org/packages/af/0a/ccbb244ac848e56c6427f2392741c06302bbfba49c0042f1eb3c5b606497/multidict-6.6.4-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4fefd4a815e362d4f011919d97d7b4a1e566f1dde83dc4ad8cfb5b41de1df68d", size = 251477, upload_time = "2025-08-11T12:07:10.248Z" }, + { url = "https://files.pythonhosted.org/packages/0e/b0/0ed49bba775b135937f52fe13922bc64a7eaf0a3ead84a36e8e4e446e096/multidict-6.6.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:db9801fe021f59a5b375ab778973127ca0ac52429a26e2fd86aa9508f4d26eb7", size = 263575, upload_time = "2025-08-11T12:07:11.928Z" }, + { url = "https://files.pythonhosted.org/packages/3e/d9/7fb85a85e14de2e44dfb6a24f03c41e2af8697a6df83daddb0e9b7569f73/multidict-6.6.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:a650629970fa21ac1fb06ba25dabfc5b8a2054fcbf6ae97c758aa956b8dba802", size = 259649, upload_time = "2025-08-11T12:07:13.244Z" }, + { url = "https://files.pythonhosted.org/packages/03/9e/b3a459bcf9b6e74fa461a5222a10ff9b544cb1cd52fd482fb1b75ecda2a2/multidict-6.6.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:452ff5da78d4720d7516a3a2abd804957532dd69296cb77319c193e3ffb87e24", size = 251505, upload_time = "2025-08-11T12:07:14.57Z" }, + { url = "https://files.pythonhosted.org/packages/86/a2/8022f78f041dfe6d71e364001a5cf987c30edfc83c8a5fb7a3f0974cff39/multidict-6.6.4-cp312-cp312-win32.whl", hash = "sha256:8c2fcb12136530ed19572bbba61b407f655e3953ba669b96a35036a11a485793", size = 41888, upload_time = "2025-08-11T12:07:15.904Z" }, + { url = "https://files.pythonhosted.org/packages/c7/eb/d88b1780d43a56db2cba24289fa744a9d216c1a8546a0dc3956563fd53ea/multidict-6.6.4-cp312-cp312-win_amd64.whl", hash = "sha256:047d9425860a8c9544fed1b9584f0c8bcd31bcde9568b047c5e567a1025ecd6e", size = 46072, upload_time = "2025-08-11T12:07:17.045Z" }, + { url = "https://files.pythonhosted.org/packages/9f/16/b929320bf5750e2d9d4931835a4c638a19d2494a5b519caaaa7492ebe105/multidict-6.6.4-cp312-cp312-win_arm64.whl", hash = "sha256:14754eb72feaa1e8ae528468f24250dd997b8e2188c3d2f593f9eba259e4b364", size = 43222, upload_time = "2025-08-11T12:07:18.328Z" }, + { url = "https://files.pythonhosted.org/packages/3a/5d/e1db626f64f60008320aab00fbe4f23fc3300d75892a3381275b3d284580/multidict-6.6.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f46a6e8597f9bd71b31cc708195d42b634c8527fecbcf93febf1052cacc1f16e", size = 75848, upload_time = "2025-08-11T12:07:19.912Z" }, + { url = "https://files.pythonhosted.org/packages/4c/aa/8b6f548d839b6c13887253af4e29c939af22a18591bfb5d0ee6f1931dae8/multidict-6.6.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:22e38b2bc176c5eb9c0a0e379f9d188ae4cd8b28c0f53b52bce7ab0a9e534657", size = 45060, upload_time = "2025-08-11T12:07:21.163Z" }, + { url = "https://files.pythonhosted.org/packages/eb/c6/f5e97e5d99a729bc2aa58eb3ebfa9f1e56a9b517cc38c60537c81834a73f/multidict-6.6.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5df8afd26f162da59e218ac0eefaa01b01b2e6cd606cffa46608f699539246da", size = 43269, upload_time = "2025-08-11T12:07:22.392Z" }, + { url = "https://files.pythonhosted.org/packages/dc/31/d54eb0c62516776f36fe67f84a732f97e0b0e12f98d5685bebcc6d396910/multidict-6.6.4-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:49517449b58d043023720aa58e62b2f74ce9b28f740a0b5d33971149553d72aa", size = 237158, upload_time = "2025-08-11T12:07:23.636Z" }, + { url = "https://files.pythonhosted.org/packages/c4/1c/8a10c1c25b23156e63b12165a929d8eb49a6ed769fdbefb06e6f07c1e50d/multidict-6.6.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ae9408439537c5afdca05edd128a63f56a62680f4b3c234301055d7a2000220f", size = 257076, upload_time = "2025-08-11T12:07:25.049Z" }, + { url = "https://files.pythonhosted.org/packages/ad/86/90e20b5771d6805a119e483fd3d1e8393e745a11511aebca41f0da38c3e2/multidict-6.6.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:87a32d20759dc52a9e850fe1061b6e41ab28e2998d44168a8a341b99ded1dba0", size = 240694, upload_time = "2025-08-11T12:07:26.458Z" }, + { url = "https://files.pythonhosted.org/packages/e7/49/484d3e6b535bc0555b52a0a26ba86e4d8d03fd5587d4936dc59ba7583221/multidict-6.6.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:52e3c8d43cdfff587ceedce9deb25e6ae77daba560b626e97a56ddcad3756879", size = 266350, upload_time = "2025-08-11T12:07:27.94Z" }, + { url = "https://files.pythonhosted.org/packages/bf/b4/aa4c5c379b11895083d50021e229e90c408d7d875471cb3abf721e4670d6/multidict-6.6.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:ad8850921d3a8d8ff6fbef790e773cecfc260bbfa0566998980d3fa8f520bc4a", size = 267250, upload_time = "2025-08-11T12:07:29.303Z" }, + { url = "https://files.pythonhosted.org/packages/80/e5/5e22c5bf96a64bdd43518b1834c6d95a4922cc2066b7d8e467dae9b6cee6/multidict-6.6.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:497a2954adc25c08daff36f795077f63ad33e13f19bfff7736e72c785391534f", size = 254900, upload_time = "2025-08-11T12:07:30.764Z" }, + { url = "https://files.pythonhosted.org/packages/17/38/58b27fed927c07035abc02befacab42491e7388ca105e087e6e0215ead64/multidict-6.6.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:024ce601f92d780ca1617ad4be5ac15b501cc2414970ffa2bb2bbc2bd5a68fa5", size = 252355, upload_time = "2025-08-11T12:07:32.205Z" }, + { url = "https://files.pythonhosted.org/packages/d0/a1/dad75d23a90c29c02b5d6f3d7c10ab36c3197613be5d07ec49c7791e186c/multidict-6.6.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:a693fc5ed9bdd1c9e898013e0da4dcc640de7963a371c0bd458e50e046bf6438", size = 250061, upload_time = "2025-08-11T12:07:33.623Z" }, + { url = "https://files.pythonhosted.org/packages/b8/1a/ac2216b61c7f116edab6dc3378cca6c70dc019c9a457ff0d754067c58b20/multidict-6.6.4-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:190766dac95aab54cae5b152a56520fd99298f32a1266d66d27fdd1b5ac00f4e", size = 249675, upload_time = "2025-08-11T12:07:34.958Z" }, + { url = "https://files.pythonhosted.org/packages/d4/79/1916af833b800d13883e452e8e0977c065c4ee3ab7a26941fbfdebc11895/multidict-6.6.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:34d8f2a5ffdceab9dcd97c7a016deb2308531d5f0fced2bb0c9e1df45b3363d7", size = 261247, upload_time = "2025-08-11T12:07:36.588Z" }, + { url = "https://files.pythonhosted.org/packages/c5/65/d1f84fe08ac44a5fc7391cbc20a7cedc433ea616b266284413fd86062f8c/multidict-6.6.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:59e8d40ab1f5a8597abcef00d04845155a5693b5da00d2c93dbe88f2050f2812", size = 257960, upload_time = "2025-08-11T12:07:39.735Z" }, + { url = "https://files.pythonhosted.org/packages/13/b5/29ec78057d377b195ac2c5248c773703a6b602e132a763e20ec0457e7440/multidict-6.6.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:467fe64138cfac771f0e949b938c2e1ada2b5af22f39692aa9258715e9ea613a", size = 250078, upload_time = "2025-08-11T12:07:41.525Z" }, + { url = "https://files.pythonhosted.org/packages/c4/0e/7e79d38f70a872cae32e29b0d77024bef7834b0afb406ddae6558d9e2414/multidict-6.6.4-cp313-cp313-win32.whl", hash = "sha256:14616a30fe6d0a48d0a48d1a633ab3b8bec4cf293aac65f32ed116f620adfd69", size = 41708, upload_time = "2025-08-11T12:07:43.405Z" }, + { url = "https://files.pythonhosted.org/packages/9d/34/746696dffff742e97cd6a23da953e55d0ea51fa601fa2ff387b3edcfaa2c/multidict-6.6.4-cp313-cp313-win_amd64.whl", hash = "sha256:40cd05eaeb39e2bc8939451f033e57feaa2ac99e07dbca8afe2be450a4a3b6cf", size = 45912, upload_time = "2025-08-11T12:07:45.082Z" }, + { url = "https://files.pythonhosted.org/packages/c7/87/3bac136181e271e29170d8d71929cdeddeb77f3e8b6a0c08da3a8e9da114/multidict-6.6.4-cp313-cp313-win_arm64.whl", hash = "sha256:f6eb37d511bfae9e13e82cb4d1af36b91150466f24d9b2b8a9785816deb16605", size = 43076, upload_time = "2025-08-11T12:07:46.746Z" }, + { url = "https://files.pythonhosted.org/packages/64/94/0a8e63e36c049b571c9ae41ee301ada29c3fee9643d9c2548d7d558a1d99/multidict-6.6.4-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:6c84378acd4f37d1b507dfa0d459b449e2321b3ba5f2338f9b085cf7a7ba95eb", size = 82812, upload_time = "2025-08-11T12:07:48.402Z" }, + { url = "https://files.pythonhosted.org/packages/25/1a/be8e369dfcd260d2070a67e65dd3990dd635cbd735b98da31e00ea84cd4e/multidict-6.6.4-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0e0558693063c75f3d952abf645c78f3c5dfdd825a41d8c4d8156fc0b0da6e7e", size = 48313, upload_time = "2025-08-11T12:07:49.679Z" }, + { url = "https://files.pythonhosted.org/packages/26/5a/dd4ade298674b2f9a7b06a32c94ffbc0497354df8285f27317c66433ce3b/multidict-6.6.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3f8e2384cb83ebd23fd07e9eada8ba64afc4c759cd94817433ab8c81ee4b403f", size = 46777, upload_time = "2025-08-11T12:07:51.318Z" }, + { url = "https://files.pythonhosted.org/packages/89/db/98aa28bc7e071bfba611ac2ae803c24e96dd3a452b4118c587d3d872c64c/multidict-6.6.4-cp313-cp313t-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:f996b87b420995a9174b2a7c1a8daf7db4750be6848b03eb5e639674f7963773", size = 229321, upload_time = "2025-08-11T12:07:52.965Z" }, + { url = "https://files.pythonhosted.org/packages/c7/bc/01ddda2a73dd9d167bd85d0e8ef4293836a8f82b786c63fb1a429bc3e678/multidict-6.6.4-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cc356250cffd6e78416cf5b40dc6a74f1edf3be8e834cf8862d9ed5265cf9b0e", size = 249954, upload_time = "2025-08-11T12:07:54.423Z" }, + { url = "https://files.pythonhosted.org/packages/06/78/6b7c0f020f9aa0acf66d0ab4eb9f08375bac9a50ff5e3edb1c4ccd59eafc/multidict-6.6.4-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:dadf95aa862714ea468a49ad1e09fe00fcc9ec67d122f6596a8d40caf6cec7d0", size = 228612, upload_time = "2025-08-11T12:07:55.914Z" }, + { url = "https://files.pythonhosted.org/packages/00/44/3faa416f89b2d5d76e9d447296a81521e1c832ad6e40b92f990697b43192/multidict-6.6.4-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:7dd57515bebffd8ebd714d101d4c434063322e4fe24042e90ced41f18b6d3395", size = 257528, upload_time = "2025-08-11T12:07:57.371Z" }, + { url = "https://files.pythonhosted.org/packages/05/5f/77c03b89af0fcb16f018f668207768191fb9dcfb5e3361a5e706a11db2c9/multidict-6.6.4-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:967af5f238ebc2eb1da4e77af5492219fbd9b4b812347da39a7b5f5c72c0fa45", size = 256329, upload_time = "2025-08-11T12:07:58.844Z" }, + { url = "https://files.pythonhosted.org/packages/cf/e9/ed750a2a9afb4f8dc6f13dc5b67b514832101b95714f1211cd42e0aafc26/multidict-6.6.4-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2a4c6875c37aae9794308ec43e3530e4aa0d36579ce38d89979bbf89582002bb", size = 247928, upload_time = "2025-08-11T12:08:01.037Z" }, + { url = "https://files.pythonhosted.org/packages/1f/b5/e0571bc13cda277db7e6e8a532791d4403dacc9850006cb66d2556e649c0/multidict-6.6.4-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:7f683a551e92bdb7fac545b9c6f9fa2aebdeefa61d607510b3533286fcab67f5", size = 245228, upload_time = "2025-08-11T12:08:02.96Z" }, + { url = "https://files.pythonhosted.org/packages/f3/a3/69a84b0eccb9824491f06368f5b86e72e4af54c3067c37c39099b6687109/multidict-6.6.4-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:3ba5aaf600edaf2a868a391779f7a85d93bed147854925f34edd24cc70a3e141", size = 235869, upload_time = "2025-08-11T12:08:04.746Z" }, + { url = "https://files.pythonhosted.org/packages/a9/9d/28802e8f9121a6a0804fa009debf4e753d0a59969ea9f70be5f5fdfcb18f/multidict-6.6.4-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:580b643b7fd2c295d83cad90d78419081f53fd532d1f1eb67ceb7060f61cff0d", size = 243446, upload_time = "2025-08-11T12:08:06.332Z" }, + { url = "https://files.pythonhosted.org/packages/38/ea/6c98add069b4878c1d66428a5f5149ddb6d32b1f9836a826ac764b9940be/multidict-6.6.4-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:37b7187197da6af3ee0b044dbc9625afd0c885f2800815b228a0e70f9a7f473d", size = 252299, upload_time = "2025-08-11T12:08:07.931Z" }, + { url = "https://files.pythonhosted.org/packages/3a/09/8fe02d204473e14c0af3affd50af9078839dfca1742f025cca765435d6b4/multidict-6.6.4-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:e1b93790ed0bc26feb72e2f08299691ceb6da5e9e14a0d13cc74f1869af327a0", size = 246926, upload_time = "2025-08-11T12:08:09.467Z" }, + { url = "https://files.pythonhosted.org/packages/37/3d/7b1e10d774a6df5175ecd3c92bff069e77bed9ec2a927fdd4ff5fe182f67/multidict-6.6.4-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:a506a77ddee1efcca81ecbeae27ade3e09cdf21a8ae854d766c2bb4f14053f92", size = 243383, upload_time = "2025-08-11T12:08:10.981Z" }, + { url = "https://files.pythonhosted.org/packages/50/b0/a6fae46071b645ae98786ab738447de1ef53742eaad949f27e960864bb49/multidict-6.6.4-cp313-cp313t-win32.whl", hash = "sha256:f93b2b2279883d1d0a9e1bd01f312d6fc315c5e4c1f09e112e4736e2f650bc4e", size = 47775, upload_time = "2025-08-11T12:08:12.439Z" }, + { url = "https://files.pythonhosted.org/packages/b2/0a/2436550b1520091af0600dff547913cb2d66fbac27a8c33bc1b1bccd8d98/multidict-6.6.4-cp313-cp313t-win_amd64.whl", hash = "sha256:6d46a180acdf6e87cc41dc15d8f5c2986e1e8739dc25dbb7dac826731ef381a4", size = 53100, upload_time = "2025-08-11T12:08:13.823Z" }, + { url = "https://files.pythonhosted.org/packages/97/ea/43ac51faff934086db9c072a94d327d71b7d8b40cd5dcb47311330929ef0/multidict-6.6.4-cp313-cp313t-win_arm64.whl", hash = "sha256:756989334015e3335d087a27331659820d53ba432befdef6a718398b0a8493ad", size = 45501, upload_time = "2025-08-11T12:08:15.173Z" }, + { url = "https://files.pythonhosted.org/packages/fd/69/b547032297c7e63ba2af494edba695d781af8a0c6e89e4d06cf848b21d80/multidict-6.6.4-py3-none-any.whl", hash = "sha256:27d8f8e125c07cb954e54d75d04905a9bba8a439c1d84aca94949d4d03d8601c", size = 12313, upload_time = "2025-08-11T12:08:46.891Z" }, +] + +[[package]] +name = "natsort" +version = "8.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e2/a9/a0c57aee75f77794adaf35322f8b6404cbd0f89ad45c87197a937764b7d0/natsort-8.4.0.tar.gz", hash = "sha256:45312c4a0e5507593da193dedd04abb1469253b601ecaf63445ad80f0a1ea581", size = 76575, upload_time = "2023-06-20T04:17:19.925Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ef/82/7a9d0550484a62c6da82858ee9419f3dd1ccc9aa1c26a1e43da3ecd20b0d/natsort-8.4.0-py3-none-any.whl", hash = "sha256:4732914fb471f56b5cce04d7bae6f164a592c7712e1c85f9ef585e197299521c", size = 38268, upload_time = "2023-06-20T04:17:17.522Z" }, +] + +[[package]] +name = "numcodecs" +version = "0.15.1" +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, upload_time = "2025-02-10T10:23:33.254Z" } +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, upload_time = "2025-02-10T10:23:12.934Z" }, + { 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, upload_time = "2025-02-10T10:23:15.803Z" }, + { 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, upload_time = "2025-02-10T10:23:18.582Z" }, + { url = "https://files.pythonhosted.org/packages/ab/bc/b6c3cde91c754860a3467a8c058dcf0b1a5ca14d82b1c5397c700cf8b1eb/numcodecs-0.15.1-cp312-cp312-win_amd64.whl", hash = "sha256:daed6066ffcf40082da847d318b5ab6123d69ceb433ba603cb87c323a541a8bc", size = 836785, upload_time = "2025-02-10T10:23:22.314Z" }, + { 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, upload_time = "2025-02-10T10:23:23.79Z" }, + { 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, upload_time = "2025-02-10T10:23:25.533Z" }, + { 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, upload_time = "2025-02-10T10:23:27.46Z" }, + { url = "https://files.pythonhosted.org/packages/c3/32/233e5ede6568bdb044e6f99aaa9fa39827ff3109c6487fc137315f733586/numcodecs-0.15.1-cp313-cp313-win_amd64.whl", hash = "sha256:a4f7bdb26f1b34423cb56d48e75821223be38040907c9b5954eeb7463e7eb03c", size = 831955, upload_time = "2025-02-10T10:23:30.601Z" }, +] + +[[package]] +name = "numpy" +version = "2.3.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d0/19/95b3d357407220ed24c139018d2518fab0a61a948e68286a25f1a4d049ff/numpy-2.3.3.tar.gz", hash = "sha256:ddc7c39727ba62b80dfdbedf400d1c10ddfa8eefbd7ec8dcb118be8b56d31029", size = 20576648, upload_time = "2025-09-09T16:54:12.543Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/51/5d/bb7fc075b762c96329147799e1bcc9176ab07ca6375ea976c475482ad5b3/numpy-2.3.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:cfdd09f9c84a1a934cde1eec2267f0a43a7cd44b2cca4ff95b7c0d14d144b0bf", size = 20957014, upload_time = "2025-09-09T15:56:29.966Z" }, + { url = "https://files.pythonhosted.org/packages/6b/0e/c6211bb92af26517acd52125a237a92afe9c3124c6a68d3b9f81b62a0568/numpy-2.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:cb32e3cf0f762aee47ad1ddc6672988f7f27045b0783c887190545baba73aa25", size = 14185220, upload_time = "2025-09-09T15:56:32.175Z" }, + { url = "https://files.pythonhosted.org/packages/22/f2/07bb754eb2ede9073f4054f7c0286b0d9d2e23982e090a80d478b26d35ca/numpy-2.3.3-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:396b254daeb0a57b1fe0ecb5e3cff6fa79a380fa97c8f7781a6d08cd429418fe", size = 5113918, upload_time = "2025-09-09T15:56:34.175Z" }, + { url = "https://files.pythonhosted.org/packages/81/0a/afa51697e9fb74642f231ea36aca80fa17c8fb89f7a82abd5174023c3960/numpy-2.3.3-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:067e3d7159a5d8f8a0b46ee11148fc35ca9b21f61e3c49fbd0a027450e65a33b", size = 6647922, upload_time = "2025-09-09T15:56:36.149Z" }, + { url = "https://files.pythonhosted.org/packages/5d/f5/122d9cdb3f51c520d150fef6e87df9279e33d19a9611a87c0d2cf78a89f4/numpy-2.3.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1c02d0629d25d426585fb2e45a66154081b9fa677bc92a881ff1d216bc9919a8", size = 14281991, upload_time = "2025-09-09T15:56:40.548Z" }, + { url = "https://files.pythonhosted.org/packages/51/64/7de3c91e821a2debf77c92962ea3fe6ac2bc45d0778c1cbe15d4fce2fd94/numpy-2.3.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d9192da52b9745f7f0766531dcfa978b7763916f158bb63bdb8a1eca0068ab20", size = 16641643, upload_time = "2025-09-09T15:56:43.343Z" }, + { url = "https://files.pythonhosted.org/packages/30/e4/961a5fa681502cd0d68907818b69f67542695b74e3ceaa513918103b7e80/numpy-2.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:cd7de500a5b66319db419dc3c345244404a164beae0d0937283b907d8152e6ea", size = 16056787, upload_time = "2025-09-09T15:56:46.141Z" }, + { url = "https://files.pythonhosted.org/packages/99/26/92c912b966e47fbbdf2ad556cb17e3a3088e2e1292b9833be1dfa5361a1a/numpy-2.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:93d4962d8f82af58f0b2eb85daaf1b3ca23fe0a85d0be8f1f2b7bb46034e56d7", size = 18579598, upload_time = "2025-09-09T15:56:49.844Z" }, + { url = "https://files.pythonhosted.org/packages/17/b6/fc8f82cb3520768718834f310c37d96380d9dc61bfdaf05fe5c0b7653e01/numpy-2.3.3-cp312-cp312-win32.whl", hash = "sha256:5534ed6b92f9b7dca6c0a19d6df12d41c68b991cef051d108f6dbff3babc4ebf", size = 6320800, upload_time = "2025-09-09T15:56:52.499Z" }, + { url = "https://files.pythonhosted.org/packages/32/ee/de999f2625b80d043d6d2d628c07d0d5555a677a3cf78fdf868d409b8766/numpy-2.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:497d7cad08e7092dba36e3d296fe4c97708c93daf26643a1ae4b03f6294d30eb", size = 12786615, upload_time = "2025-09-09T15:56:54.422Z" }, + { url = "https://files.pythonhosted.org/packages/49/6e/b479032f8a43559c383acb20816644f5f91c88f633d9271ee84f3b3a996c/numpy-2.3.3-cp312-cp312-win_arm64.whl", hash = "sha256:ca0309a18d4dfea6fc6262a66d06c26cfe4640c3926ceec90e57791a82b6eee5", size = 10195936, upload_time = "2025-09-09T15:56:56.541Z" }, + { url = "https://files.pythonhosted.org/packages/7d/b9/984c2b1ee61a8b803bf63582b4ac4242cf76e2dbd663efeafcb620cc0ccb/numpy-2.3.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f5415fb78995644253370985342cd03572ef8620b934da27d77377a2285955bf", size = 20949588, upload_time = "2025-09-09T15:56:59.087Z" }, + { url = "https://files.pythonhosted.org/packages/a6/e4/07970e3bed0b1384d22af1e9912527ecbeb47d3b26e9b6a3bced068b3bea/numpy-2.3.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d00de139a3324e26ed5b95870ce63be7ec7352171bc69a4cf1f157a48e3eb6b7", size = 14177802, upload_time = "2025-09-09T15:57:01.73Z" }, + { url = "https://files.pythonhosted.org/packages/35/c7/477a83887f9de61f1203bad89cf208b7c19cc9fef0cebef65d5a1a0619f2/numpy-2.3.3-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:9dc13c6a5829610cc07422bc74d3ac083bd8323f14e2827d992f9e52e22cd6a6", size = 5106537, upload_time = "2025-09-09T15:57:03.765Z" }, + { url = "https://files.pythonhosted.org/packages/52/47/93b953bd5866a6f6986344d045a207d3f1cfbad99db29f534ea9cee5108c/numpy-2.3.3-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:d79715d95f1894771eb4e60fb23f065663b2298f7d22945d66877aadf33d00c7", size = 6640743, upload_time = "2025-09-09T15:57:07.921Z" }, + { url = "https://files.pythonhosted.org/packages/23/83/377f84aaeb800b64c0ef4de58b08769e782edcefa4fea712910b6f0afd3c/numpy-2.3.3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:952cfd0748514ea7c3afc729a0fc639e61655ce4c55ab9acfab14bda4f402b4c", size = 14278881, upload_time = "2025-09-09T15:57:11.349Z" }, + { url = "https://files.pythonhosted.org/packages/9a/a5/bf3db6e66c4b160d6ea10b534c381a1955dfab34cb1017ea93aa33c70ed3/numpy-2.3.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5b83648633d46f77039c29078751f80da65aa64d5622a3cd62aaef9d835b6c93", size = 16636301, upload_time = "2025-09-09T15:57:14.245Z" }, + { url = "https://files.pythonhosted.org/packages/a2/59/1287924242eb4fa3f9b3a2c30400f2e17eb2707020d1c5e3086fe7330717/numpy-2.3.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b001bae8cea1c7dfdb2ae2b017ed0a6f2102d7a70059df1e338e307a4c78a8ae", size = 16053645, upload_time = "2025-09-09T15:57:16.534Z" }, + { url = "https://files.pythonhosted.org/packages/e6/93/b3d47ed882027c35e94ac2320c37e452a549f582a5e801f2d34b56973c97/numpy-2.3.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8e9aced64054739037d42fb84c54dd38b81ee238816c948c8f3ed134665dcd86", size = 18578179, upload_time = "2025-09-09T15:57:18.883Z" }, + { url = "https://files.pythonhosted.org/packages/20/d9/487a2bccbf7cc9d4bfc5f0f197761a5ef27ba870f1e3bbb9afc4bbe3fcc2/numpy-2.3.3-cp313-cp313-win32.whl", hash = "sha256:9591e1221db3f37751e6442850429b3aabf7026d3b05542d102944ca7f00c8a8", size = 6312250, upload_time = "2025-09-09T15:57:21.296Z" }, + { url = "https://files.pythonhosted.org/packages/1b/b5/263ebbbbcede85028f30047eab3d58028d7ebe389d6493fc95ae66c636ab/numpy-2.3.3-cp313-cp313-win_amd64.whl", hash = "sha256:f0dadeb302887f07431910f67a14d57209ed91130be0adea2f9793f1a4f817cf", size = 12783269, upload_time = "2025-09-09T15:57:23.034Z" }, + { url = "https://files.pythonhosted.org/packages/fa/75/67b8ca554bbeaaeb3fac2e8bce46967a5a06544c9108ec0cf5cece559b6c/numpy-2.3.3-cp313-cp313-win_arm64.whl", hash = "sha256:3c7cf302ac6e0b76a64c4aecf1a09e51abd9b01fc7feee80f6c43e3ab1b1dbc5", size = 10195314, upload_time = "2025-09-09T15:57:25.045Z" }, + { url = "https://files.pythonhosted.org/packages/11/d0/0d1ddec56b162042ddfafeeb293bac672de9b0cfd688383590090963720a/numpy-2.3.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:eda59e44957d272846bb407aad19f89dc6f58fecf3504bd144f4c5cf81a7eacc", size = 21048025, upload_time = "2025-09-09T15:57:27.257Z" }, + { url = "https://files.pythonhosted.org/packages/36/9e/1996ca6b6d00415b6acbdd3c42f7f03ea256e2c3f158f80bd7436a8a19f3/numpy-2.3.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:823d04112bc85ef5c4fda73ba24e6096c8f869931405a80aa8b0e604510a26bc", size = 14301053, upload_time = "2025-09-09T15:57:30.077Z" }, + { url = "https://files.pythonhosted.org/packages/05/24/43da09aa764c68694b76e84b3d3f0c44cb7c18cdc1ba80e48b0ac1d2cd39/numpy-2.3.3-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:40051003e03db4041aa325da2a0971ba41cf65714e65d296397cc0e32de6018b", size = 5229444, upload_time = "2025-09-09T15:57:32.733Z" }, + { url = "https://files.pythonhosted.org/packages/bc/14/50ffb0f22f7218ef8af28dd089f79f68289a7a05a208db9a2c5dcbe123c1/numpy-2.3.3-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:6ee9086235dd6ab7ae75aba5662f582a81ced49f0f1c6de4260a78d8f2d91a19", size = 6738039, upload_time = "2025-09-09T15:57:34.328Z" }, + { url = "https://files.pythonhosted.org/packages/55/52/af46ac0795e09657d45a7f4db961917314377edecf66db0e39fa7ab5c3d3/numpy-2.3.3-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:94fcaa68757c3e2e668ddadeaa86ab05499a70725811e582b6a9858dd472fb30", size = 14352314, upload_time = "2025-09-09T15:57:36.255Z" }, + { url = "https://files.pythonhosted.org/packages/a7/b1/dc226b4c90eb9f07a3fff95c2f0db3268e2e54e5cce97c4ac91518aee71b/numpy-2.3.3-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:da1a74b90e7483d6ce5244053399a614b1d6b7bc30a60d2f570e5071f8959d3e", size = 16701722, upload_time = "2025-09-09T15:57:38.622Z" }, + { url = "https://files.pythonhosted.org/packages/9d/9d/9d8d358f2eb5eced14dba99f110d83b5cd9a4460895230f3b396ad19a323/numpy-2.3.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:2990adf06d1ecee3b3dcbb4977dfab6e9f09807598d647f04d385d29e7a3c3d3", size = 16132755, upload_time = "2025-09-09T15:57:41.16Z" }, + { url = "https://files.pythonhosted.org/packages/b6/27/b3922660c45513f9377b3fb42240bec63f203c71416093476ec9aa0719dc/numpy-2.3.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ed635ff692483b8e3f0fcaa8e7eb8a75ee71aa6d975388224f70821421800cea", size = 18651560, upload_time = "2025-09-09T15:57:43.459Z" }, + { url = "https://files.pythonhosted.org/packages/5b/8e/3ab61a730bdbbc201bb245a71102aa609f0008b9ed15255500a99cd7f780/numpy-2.3.3-cp313-cp313t-win32.whl", hash = "sha256:a333b4ed33d8dc2b373cc955ca57babc00cd6f9009991d9edc5ddbc1bac36bcd", size = 6442776, upload_time = "2025-09-09T15:57:45.793Z" }, + { url = "https://files.pythonhosted.org/packages/1c/3a/e22b766b11f6030dc2decdeff5c2fb1610768055603f9f3be88b6d192fb2/numpy-2.3.3-cp313-cp313t-win_amd64.whl", hash = "sha256:4384a169c4d8f97195980815d6fcad04933a7e1ab3b530921c3fef7a1c63426d", size = 12927281, upload_time = "2025-09-09T15:57:47.492Z" }, + { url = "https://files.pythonhosted.org/packages/7b/42/c2e2bc48c5e9b2a83423f99733950fbefd86f165b468a3d85d52b30bf782/numpy-2.3.3-cp313-cp313t-win_arm64.whl", hash = "sha256:75370986cc0bc66f4ce5110ad35aae6d182cc4ce6433c40ad151f53690130bf1", size = 10265275, upload_time = "2025-09-09T15:57:49.647Z" }, + { url = "https://files.pythonhosted.org/packages/6b/01/342ad585ad82419b99bcf7cebe99e61da6bedb89e213c5fd71acc467faee/numpy-2.3.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:cd052f1fa6a78dee696b58a914b7229ecfa41f0a6d96dc663c1220a55e137593", size = 20951527, upload_time = "2025-09-09T15:57:52.006Z" }, + { url = "https://files.pythonhosted.org/packages/ef/d8/204e0d73fc1b7a9ee80ab1fe1983dd33a4d64a4e30a05364b0208e9a241a/numpy-2.3.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:414a97499480067d305fcac9716c29cf4d0d76db6ebf0bf3cbce666677f12652", size = 14186159, upload_time = "2025-09-09T15:57:54.407Z" }, + { url = "https://files.pythonhosted.org/packages/22/af/f11c916d08f3a18fb8ba81ab72b5b74a6e42ead4c2846d270eb19845bf74/numpy-2.3.3-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:50a5fe69f135f88a2be9b6ca0481a68a136f6febe1916e4920e12f1a34e708a7", size = 5114624, upload_time = "2025-09-09T15:57:56.5Z" }, + { url = "https://files.pythonhosted.org/packages/fb/11/0ed919c8381ac9d2ffacd63fd1f0c34d27e99cab650f0eb6f110e6ae4858/numpy-2.3.3-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:b912f2ed2b67a129e6a601e9d93d4fa37bef67e54cac442a2f588a54afe5c67a", size = 6642627, upload_time = "2025-09-09T15:57:58.206Z" }, + { url = "https://files.pythonhosted.org/packages/ee/83/deb5f77cb0f7ba6cb52b91ed388b47f8f3c2e9930d4665c600408d9b90b9/numpy-2.3.3-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9e318ee0596d76d4cb3d78535dc005fa60e5ea348cd131a51e99d0bdbe0b54fe", size = 14296926, upload_time = "2025-09-09T15:58:00.035Z" }, + { url = "https://files.pythonhosted.org/packages/77/cc/70e59dcb84f2b005d4f306310ff0a892518cc0c8000a33d0e6faf7ca8d80/numpy-2.3.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ce020080e4a52426202bdb6f7691c65bb55e49f261f31a8f506c9f6bc7450421", size = 16638958, upload_time = "2025-09-09T15:58:02.738Z" }, + { url = "https://files.pythonhosted.org/packages/b6/5a/b2ab6c18b4257e099587d5b7f903317bd7115333ad8d4ec4874278eafa61/numpy-2.3.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:e6687dc183aa55dae4a705b35f9c0f8cb178bcaa2f029b241ac5356221d5c021", size = 16071920, upload_time = "2025-09-09T15:58:05.029Z" }, + { url = "https://files.pythonhosted.org/packages/b8/f1/8b3fdc44324a259298520dd82147ff648979bed085feeacc1250ef1656c0/numpy-2.3.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d8f3b1080782469fdc1718c4ed1d22549b5fb12af0d57d35e992158a772a37cf", size = 18577076, upload_time = "2025-09-09T15:58:07.745Z" }, + { url = "https://files.pythonhosted.org/packages/f0/a1/b87a284fb15a42e9274e7fcea0dad259d12ddbf07c1595b26883151ca3b4/numpy-2.3.3-cp314-cp314-win32.whl", hash = "sha256:cb248499b0bc3be66ebd6578b83e5acacf1d6cb2a77f2248ce0e40fbec5a76d0", size = 6366952, upload_time = "2025-09-09T15:58:10.096Z" }, + { url = "https://files.pythonhosted.org/packages/70/5f/1816f4d08f3b8f66576d8433a66f8fa35a5acfb3bbd0bf6c31183b003f3d/numpy-2.3.3-cp314-cp314-win_amd64.whl", hash = "sha256:691808c2b26b0f002a032c73255d0bd89751425f379f7bcd22d140db593a96e8", size = 12919322, upload_time = "2025-09-09T15:58:12.138Z" }, + { url = "https://files.pythonhosted.org/packages/8c/de/072420342e46a8ea41c324a555fa90fcc11637583fb8df722936aed1736d/numpy-2.3.3-cp314-cp314-win_arm64.whl", hash = "sha256:9ad12e976ca7b10f1774b03615a2a4bab8addce37ecc77394d8e986927dc0dfe", size = 10478630, upload_time = "2025-09-09T15:58:14.64Z" }, + { url = "https://files.pythonhosted.org/packages/d5/df/ee2f1c0a9de7347f14da5dd3cd3c3b034d1b8607ccb6883d7dd5c035d631/numpy-2.3.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:9cc48e09feb11e1db00b320e9d30a4151f7369afb96bd0e48d942d09da3a0d00", size = 21047987, upload_time = "2025-09-09T15:58:16.889Z" }, + { url = "https://files.pythonhosted.org/packages/d6/92/9453bdc5a4e9e69cf4358463f25e8260e2ffc126d52e10038b9077815989/numpy-2.3.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:901bf6123879b7f251d3631967fd574690734236075082078e0571977c6a8e6a", size = 14301076, upload_time = "2025-09-09T15:58:20.343Z" }, + { url = "https://files.pythonhosted.org/packages/13/77/1447b9eb500f028bb44253105bd67534af60499588a5149a94f18f2ca917/numpy-2.3.3-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:7f025652034199c301049296b59fa7d52c7e625017cae4c75d8662e377bf487d", size = 5229491, upload_time = "2025-09-09T15:58:22.481Z" }, + { url = "https://files.pythonhosted.org/packages/3d/f9/d72221b6ca205f9736cb4b2ce3b002f6e45cd67cd6a6d1c8af11a2f0b649/numpy-2.3.3-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:533ca5f6d325c80b6007d4d7fb1984c303553534191024ec6a524a4c92a5935a", size = 6737913, upload_time = "2025-09-09T15:58:24.569Z" }, + { url = "https://files.pythonhosted.org/packages/3c/5f/d12834711962ad9c46af72f79bb31e73e416ee49d17f4c797f72c96b6ca5/numpy-2.3.3-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0edd58682a399824633b66885d699d7de982800053acf20be1eaa46d92009c54", size = 14352811, upload_time = "2025-09-09T15:58:26.416Z" }, + { url = "https://files.pythonhosted.org/packages/a1/0d/fdbec6629d97fd1bebed56cd742884e4eead593611bbe1abc3eb40d304b2/numpy-2.3.3-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:367ad5d8fbec5d9296d18478804a530f1191e24ab4d75ab408346ae88045d25e", size = 16702689, upload_time = "2025-09-09T15:58:28.831Z" }, + { url = "https://files.pythonhosted.org/packages/9b/09/0a35196dc5575adde1eb97ddfbc3e1687a814f905377621d18ca9bc2b7dd/numpy-2.3.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8f6ac61a217437946a1fa48d24c47c91a0c4f725237871117dea264982128097", size = 16133855, upload_time = "2025-09-09T15:58:31.349Z" }, + { url = "https://files.pythonhosted.org/packages/7a/ca/c9de3ea397d576f1b6753eaa906d4cdef1bf97589a6d9825a349b4729cc2/numpy-2.3.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:179a42101b845a816d464b6fe9a845dfaf308fdfc7925387195570789bb2c970", size = 18652520, upload_time = "2025-09-09T15:58:33.762Z" }, + { url = "https://files.pythonhosted.org/packages/fd/c2/e5ed830e08cd0196351db55db82f65bc0ab05da6ef2b72a836dcf1936d2f/numpy-2.3.3-cp314-cp314t-win32.whl", hash = "sha256:1250c5d3d2562ec4174bce2e3a1523041595f9b651065e4a4473f5f48a6bc8a5", size = 6515371, upload_time = "2025-09-09T15:58:36.04Z" }, + { url = "https://files.pythonhosted.org/packages/47/c7/b0f6b5b67f6788a0725f744496badbb604d226bf233ba716683ebb47b570/numpy-2.3.3-cp314-cp314t-win_amd64.whl", hash = "sha256:b37a0b2e5935409daebe82c1e42274d30d9dd355852529eab91dab8dcca7419f", size = 13112576, upload_time = "2025-09-09T15:58:37.927Z" }, + { url = "https://files.pythonhosted.org/packages/06/b9/33bba5ff6fb679aa0b1f8a07e853f002a6b04b9394db3069a1270a7784ca/numpy-2.3.3-cp314-cp314t-win_arm64.whl", hash = "sha256:78c9f6560dc7e6b3990e32df7ea1a50bbd0e2a111e05209963f5ddcab7073b0b", size = 10545953, upload_time = "2025-09-09T15:58:40.576Z" }, +] + +[[package]] +name = "nwbinspector" +version = "0.6.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "click" }, + { name = "fsspec" }, + { name = "hdmf-zarr" }, + { name = "isodate" }, + { name = "jsonschema" }, + { name = "natsort" }, + { name = "packaging" }, + { name = "pynwb" }, + { name = "pyyaml" }, + { name = "requests" }, + { name = "tqdm" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/45/23/d50bb1dfef6eff622dff58ec64077f6b51ce9191ee4f093881b1394a6ddd/nwbinspector-0.6.5.tar.gz", hash = "sha256:93023bcd72c73add18644211fb26f6b005e012ec9c6a8b3f53e136ddeb58af16", size = 591999, upload_time = "2025-07-25T18:05:22.529Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8f/e7/01fd709430ee0178db611f1db9652bfca71599799c602101e13ce5bdeedc/nwbinspector-0.6.5-py3-none-any.whl", hash = "sha256:f0219a9b06482b07415e7beebddf3ae7d97371cc178e7bc05c7d3edf7285d135", size = 64409, upload_time = "2025-07-25T18:05:21.4Z" }, +] + +[[package]] +name = "packaging" +version = "25.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727, upload_time = "2025-04-19T11:48:59.673Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload_time = "2025-04-19T11:48:57.875Z" }, +] + +[[package]] +name = "pandas" +version = "2.3.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "tzdata" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/33/01/d40b85317f86cf08d853a4f495195c73815fdf205eef3993821720274518/pandas-2.3.3.tar.gz", hash = "sha256:e05e1af93b977f7eafa636d043f9f94c7ee3ac81af99c13508215942e64c993b", size = 4495223, upload_time = "2025-09-29T23:34:51.853Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/fb/231d89e8637c808b997d172b18e9d4a4bc7bf31296196c260526055d1ea0/pandas-2.3.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6d21f6d74eb1725c2efaa71a2bfc661a0689579b58e9c0ca58a739ff0b002b53", size = 11597846, upload_time = "2025-09-29T23:19:48.856Z" }, + { url = "https://files.pythonhosted.org/packages/5c/bd/bf8064d9cfa214294356c2d6702b716d3cf3bb24be59287a6a21e24cae6b/pandas-2.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3fd2f887589c7aa868e02632612ba39acb0b8948faf5cc58f0850e165bd46f35", size = 10729618, upload_time = "2025-09-29T23:39:08.659Z" }, + { url = "https://files.pythonhosted.org/packages/57/56/cf2dbe1a3f5271370669475ead12ce77c61726ffd19a35546e31aa8edf4e/pandas-2.3.3-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ecaf1e12bdc03c86ad4a7ea848d66c685cb6851d807a26aa245ca3d2017a1908", size = 11737212, upload_time = "2025-09-29T23:19:59.765Z" }, + { url = "https://files.pythonhosted.org/packages/e5/63/cd7d615331b328e287d8233ba9fdf191a9c2d11b6af0c7a59cfcec23de68/pandas-2.3.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b3d11d2fda7eb164ef27ffc14b4fcab16a80e1ce67e9f57e19ec0afaf715ba89", size = 12362693, upload_time = "2025-09-29T23:20:14.098Z" }, + { url = "https://files.pythonhosted.org/packages/a6/de/8b1895b107277d52f2b42d3a6806e69cfef0d5cf1d0ba343470b9d8e0a04/pandas-2.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a68e15f780eddf2b07d242e17a04aa187a7ee12b40b930bfdd78070556550e98", size = 12771002, upload_time = "2025-09-29T23:20:26.76Z" }, + { url = "https://files.pythonhosted.org/packages/87/21/84072af3187a677c5893b170ba2c8fbe450a6ff911234916da889b698220/pandas-2.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:371a4ab48e950033bcf52b6527eccb564f52dc826c02afd9a1bc0ab731bba084", size = 13450971, upload_time = "2025-09-29T23:20:41.344Z" }, + { url = "https://files.pythonhosted.org/packages/86/41/585a168330ff063014880a80d744219dbf1dd7a1c706e75ab3425a987384/pandas-2.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:a16dcec078a01eeef8ee61bf64074b4e524a2a3f4b3be9326420cabe59c4778b", size = 10992722, upload_time = "2025-09-29T23:20:54.139Z" }, + { url = "https://files.pythonhosted.org/packages/cd/4b/18b035ee18f97c1040d94debd8f2e737000ad70ccc8f5513f4eefad75f4b/pandas-2.3.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:56851a737e3470de7fa88e6131f41281ed440d29a9268dcbf0002da5ac366713", size = 11544671, upload_time = "2025-09-29T23:21:05.024Z" }, + { url = "https://files.pythonhosted.org/packages/31/94/72fac03573102779920099bcac1c3b05975c2cb5f01eac609faf34bed1ca/pandas-2.3.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bdcd9d1167f4885211e401b3036c0c8d9e274eee67ea8d0758a256d60704cfe8", size = 10680807, upload_time = "2025-09-29T23:21:15.979Z" }, + { url = "https://files.pythonhosted.org/packages/16/87/9472cf4a487d848476865321de18cc8c920b8cab98453ab79dbbc98db63a/pandas-2.3.3-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e32e7cc9af0f1cc15548288a51a3b681cc2a219faa838e995f7dc53dbab1062d", size = 11709872, upload_time = "2025-09-29T23:21:27.165Z" }, + { url = "https://files.pythonhosted.org/packages/15/07/284f757f63f8a8d69ed4472bfd85122bd086e637bf4ed09de572d575a693/pandas-2.3.3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:318d77e0e42a628c04dc56bcef4b40de67918f7041c2b061af1da41dcff670ac", size = 12306371, upload_time = "2025-09-29T23:21:40.532Z" }, + { url = "https://files.pythonhosted.org/packages/33/81/a3afc88fca4aa925804a27d2676d22dcd2031c2ebe08aabd0ae55b9ff282/pandas-2.3.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4e0a175408804d566144e170d0476b15d78458795bb18f1304fb94160cabf40c", size = 12765333, upload_time = "2025-09-29T23:21:55.77Z" }, + { url = "https://files.pythonhosted.org/packages/8d/0f/b4d4ae743a83742f1153464cf1a8ecfafc3ac59722a0b5c8602310cb7158/pandas-2.3.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:93c2d9ab0fc11822b5eece72ec9587e172f63cff87c00b062f6e37448ced4493", size = 13418120, upload_time = "2025-09-29T23:22:10.109Z" }, + { url = "https://files.pythonhosted.org/packages/4f/c7/e54682c96a895d0c808453269e0b5928a07a127a15704fedb643e9b0a4c8/pandas-2.3.3-cp313-cp313-win_amd64.whl", hash = "sha256:f8bfc0e12dc78f777f323f55c58649591b2cd0c43534e8355c51d3fede5f4dee", size = 10993991, upload_time = "2025-09-29T23:25:04.889Z" }, + { url = "https://files.pythonhosted.org/packages/f9/ca/3f8d4f49740799189e1395812f3bf23b5e8fc7c190827d55a610da72ce55/pandas-2.3.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:75ea25f9529fdec2d2e93a42c523962261e567d250b0013b16210e1d40d7c2e5", size = 12048227, upload_time = "2025-09-29T23:22:24.343Z" }, + { url = "https://files.pythonhosted.org/packages/0e/5a/f43efec3e8c0cc92c4663ccad372dbdff72b60bdb56b2749f04aa1d07d7e/pandas-2.3.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:74ecdf1d301e812db96a465a525952f4dde225fdb6d8e5a521d47e1f42041e21", size = 11411056, upload_time = "2025-09-29T23:22:37.762Z" }, + { url = "https://files.pythonhosted.org/packages/46/b1/85331edfc591208c9d1a63a06baa67b21d332e63b7a591a5ba42a10bb507/pandas-2.3.3-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6435cb949cb34ec11cc9860246ccb2fdc9ecd742c12d3304989017d53f039a78", size = 11645189, upload_time = "2025-09-29T23:22:51.688Z" }, + { url = "https://files.pythonhosted.org/packages/44/23/78d645adc35d94d1ac4f2a3c4112ab6f5b8999f4898b8cdf01252f8df4a9/pandas-2.3.3-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:900f47d8f20860de523a1ac881c4c36d65efcb2eb850e6948140fa781736e110", size = 12121912, upload_time = "2025-09-29T23:23:05.042Z" }, + { url = "https://files.pythonhosted.org/packages/53/da/d10013df5e6aaef6b425aa0c32e1fc1f3e431e4bcabd420517dceadce354/pandas-2.3.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a45c765238e2ed7d7c608fc5bc4a6f88b642f2f01e70c0c23d2224dd21829d86", size = 12712160, upload_time = "2025-09-29T23:23:28.57Z" }, + { url = "https://files.pythonhosted.org/packages/bd/17/e756653095a083d8a37cbd816cb87148debcfcd920129b25f99dd8d04271/pandas-2.3.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:c4fc4c21971a1a9f4bdb4c73978c7f7256caa3e62b323f70d6cb80db583350bc", size = 13199233, upload_time = "2025-09-29T23:24:24.876Z" }, + { url = "https://files.pythonhosted.org/packages/04/fd/74903979833db8390b73b3a8a7d30d146d710bd32703724dd9083950386f/pandas-2.3.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:ee15f284898e7b246df8087fc82b87b01686f98ee67d85a17b7ab44143a3a9a0", size = 11540635, upload_time = "2025-09-29T23:25:52.486Z" }, + { url = "https://files.pythonhosted.org/packages/21/00/266d6b357ad5e6d3ad55093a7e8efc7dd245f5a842b584db9f30b0f0a287/pandas-2.3.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1611aedd912e1ff81ff41c745822980c49ce4a7907537be8692c8dbc31924593", size = 10759079, upload_time = "2025-09-29T23:26:33.204Z" }, + { url = "https://files.pythonhosted.org/packages/ca/05/d01ef80a7a3a12b2f8bbf16daba1e17c98a2f039cbc8e2f77a2c5a63d382/pandas-2.3.3-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6d2cefc361461662ac48810cb14365a365ce864afe85ef1f447ff5a1e99ea81c", size = 11814049, upload_time = "2025-09-29T23:27:15.384Z" }, + { url = "https://files.pythonhosted.org/packages/15/b2/0e62f78c0c5ba7e3d2c5945a82456f4fac76c480940f805e0b97fcbc2f65/pandas-2.3.3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ee67acbbf05014ea6c763beb097e03cd629961c8a632075eeb34247120abcb4b", size = 12332638, upload_time = "2025-09-29T23:27:51.625Z" }, + { url = "https://files.pythonhosted.org/packages/c5/33/dd70400631b62b9b29c3c93d2feee1d0964dc2bae2e5ad7a6c73a7f25325/pandas-2.3.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c46467899aaa4da076d5abc11084634e2d197e9460643dd455ac3db5856b24d6", size = 12886834, upload_time = "2025-09-29T23:28:21.289Z" }, + { url = "https://files.pythonhosted.org/packages/d3/18/b5d48f55821228d0d2692b34fd5034bb185e854bdb592e9c640f6290e012/pandas-2.3.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6253c72c6a1d990a410bc7de641d34053364ef8bcd3126f7e7450125887dffe3", size = 13409925, upload_time = "2025-09-29T23:28:58.261Z" }, + { url = "https://files.pythonhosted.org/packages/a6/3d/124ac75fcd0ecc09b8fdccb0246ef65e35b012030defb0e0eba2cbbbe948/pandas-2.3.3-cp314-cp314-win_amd64.whl", hash = "sha256:1b07204a219b3b7350abaae088f451860223a52cfb8a6c53358e7948735158e5", size = 11109071, upload_time = "2025-09-29T23:32:27.484Z" }, + { url = "https://files.pythonhosted.org/packages/89/9c/0e21c895c38a157e0faa1fb64587a9226d6dd46452cac4532d80c3c4a244/pandas-2.3.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:2462b1a365b6109d275250baaae7b760fd25c726aaca0054649286bcfbb3e8ec", size = 12048504, upload_time = "2025-09-29T23:29:31.47Z" }, + { url = "https://files.pythonhosted.org/packages/d7/82/b69a1c95df796858777b68fbe6a81d37443a33319761d7c652ce77797475/pandas-2.3.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:0242fe9a49aa8b4d78a4fa03acb397a58833ef6199e9aa40a95f027bb3a1b6e7", size = 11410702, upload_time = "2025-09-29T23:29:54.591Z" }, + { url = "https://files.pythonhosted.org/packages/f9/88/702bde3ba0a94b8c73a0181e05144b10f13f29ebfc2150c3a79062a8195d/pandas-2.3.3-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a21d830e78df0a515db2b3d2f5570610f5e6bd2e27749770e8bb7b524b89b450", size = 11634535, upload_time = "2025-09-29T23:30:21.003Z" }, + { url = "https://files.pythonhosted.org/packages/a4/1e/1bac1a839d12e6a82ec6cb40cda2edde64a2013a66963293696bbf31fbbb/pandas-2.3.3-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2e3ebdb170b5ef78f19bfb71b0dc5dc58775032361fa188e814959b74d726dd5", size = 12121582, upload_time = "2025-09-29T23:30:43.391Z" }, + { url = "https://files.pythonhosted.org/packages/44/91/483de934193e12a3b1d6ae7c8645d083ff88dec75f46e827562f1e4b4da6/pandas-2.3.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:d051c0e065b94b7a3cea50eb1ec32e912cd96dba41647eb24104b6c6c14c5788", size = 12699963, upload_time = "2025-09-29T23:31:10.009Z" }, + { url = "https://files.pythonhosted.org/packages/70/44/5191d2e4026f86a2a109053e194d3ba7a31a2d10a9c2348368c63ed4e85a/pandas-2.3.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:3869faf4bd07b3b66a9f462417d0ca3a9df29a9f6abd5d0d0dbab15dac7abe87", size = 13202175, upload_time = "2025-09-29T23:31:59.173Z" }, +] + +[[package]] +name = "platformdirs" +version = "4.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/23/e8/21db9c9987b0e728855bd57bff6984f67952bea55d6f75e055c46b5383e8/platformdirs-4.4.0.tar.gz", hash = "sha256:ca753cf4d81dc309bc67b0ea38fd15dc97bc30ce419a7f58d13eb3bf14c4febf", size = 21634, upload_time = "2025-08-26T14:32:04.268Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/40/4b/2028861e724d3bd36227adfa20d3fd24c3fc6d52032f4a93c133be5d17ce/platformdirs-4.4.0-py3-none-any.whl", hash = "sha256:abd01743f24e5287cd7a5db3752faf1a2d65353f38ec26d98e25a6db65958c85", size = 18654, upload_time = "2025-08-26T14:32:02.735Z" }, +] + +[[package]] +name = "propcache" +version = "0.3.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a6/16/43264e4a779dd8588c21a70f0709665ee8f611211bdd2c87d952cfa7c776/propcache-0.3.2.tar.gz", hash = "sha256:20d7d62e4e7ef05f221e0db2856b979540686342e7dd9973b815599c7057e168", size = 44139, upload_time = "2025-06-09T22:56:06.081Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a8/42/9ca01b0a6f48e81615dca4765a8f1dd2c057e0540f6116a27dc5ee01dfb6/propcache-0.3.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:8de106b6c84506b31c27168582cd3cb3000a6412c16df14a8628e5871ff83c10", size = 73674, upload_time = "2025-06-09T22:54:30.551Z" }, + { url = "https://files.pythonhosted.org/packages/af/6e/21293133beb550f9c901bbece755d582bfaf2176bee4774000bd4dd41884/propcache-0.3.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:28710b0d3975117239c76600ea351934ac7b5ff56e60953474342608dbbb6154", size = 43570, upload_time = "2025-06-09T22:54:32.296Z" }, + { url = "https://files.pythonhosted.org/packages/0c/c8/0393a0a3a2b8760eb3bde3c147f62b20044f0ddac81e9d6ed7318ec0d852/propcache-0.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce26862344bdf836650ed2487c3d724b00fbfec4233a1013f597b78c1cb73615", size = 43094, upload_time = "2025-06-09T22:54:33.929Z" }, + { url = "https://files.pythonhosted.org/packages/37/2c/489afe311a690399d04a3e03b069225670c1d489eb7b044a566511c1c498/propcache-0.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bca54bd347a253af2cf4544bbec232ab982f4868de0dd684246b67a51bc6b1db", size = 226958, upload_time = "2025-06-09T22:54:35.186Z" }, + { url = "https://files.pythonhosted.org/packages/9d/ca/63b520d2f3d418c968bf596839ae26cf7f87bead026b6192d4da6a08c467/propcache-0.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:55780d5e9a2ddc59711d727226bb1ba83a22dd32f64ee15594b9392b1f544eb1", size = 234894, upload_time = "2025-06-09T22:54:36.708Z" }, + { url = "https://files.pythonhosted.org/packages/11/60/1d0ed6fff455a028d678df30cc28dcee7af77fa2b0e6962ce1df95c9a2a9/propcache-0.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:035e631be25d6975ed87ab23153db6a73426a48db688070d925aa27e996fe93c", size = 233672, upload_time = "2025-06-09T22:54:38.062Z" }, + { url = "https://files.pythonhosted.org/packages/37/7c/54fd5301ef38505ab235d98827207176a5c9b2aa61939b10a460ca53e123/propcache-0.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ee6f22b6eaa39297c751d0e80c0d3a454f112f5c6481214fcf4c092074cecd67", size = 224395, upload_time = "2025-06-09T22:54:39.634Z" }, + { url = "https://files.pythonhosted.org/packages/ee/1a/89a40e0846f5de05fdc6779883bf46ba980e6df4d2ff8fb02643de126592/propcache-0.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7ca3aee1aa955438c4dba34fc20a9f390e4c79967257d830f137bd5a8a32ed3b", size = 212510, upload_time = "2025-06-09T22:54:41.565Z" }, + { url = "https://files.pythonhosted.org/packages/5e/33/ca98368586c9566a6b8d5ef66e30484f8da84c0aac3f2d9aec6d31a11bd5/propcache-0.3.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7a4f30862869fa2b68380d677cc1c5fcf1e0f2b9ea0cf665812895c75d0ca3b8", size = 222949, upload_time = "2025-06-09T22:54:43.038Z" }, + { url = "https://files.pythonhosted.org/packages/ba/11/ace870d0aafe443b33b2f0b7efdb872b7c3abd505bfb4890716ad7865e9d/propcache-0.3.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:b77ec3c257d7816d9f3700013639db7491a434644c906a2578a11daf13176251", size = 217258, upload_time = "2025-06-09T22:54:44.376Z" }, + { url = "https://files.pythonhosted.org/packages/5b/d2/86fd6f7adffcfc74b42c10a6b7db721d1d9ca1055c45d39a1a8f2a740a21/propcache-0.3.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:cab90ac9d3f14b2d5050928483d3d3b8fb6b4018893fc75710e6aa361ecb2474", size = 213036, upload_time = "2025-06-09T22:54:46.243Z" }, + { url = "https://files.pythonhosted.org/packages/07/94/2d7d1e328f45ff34a0a284cf5a2847013701e24c2a53117e7c280a4316b3/propcache-0.3.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:0b504d29f3c47cf6b9e936c1852246c83d450e8e063d50562115a6be6d3a2535", size = 227684, upload_time = "2025-06-09T22:54:47.63Z" }, + { url = "https://files.pythonhosted.org/packages/b7/05/37ae63a0087677e90b1d14710e532ff104d44bc1efa3b3970fff99b891dc/propcache-0.3.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:ce2ac2675a6aa41ddb2a0c9cbff53780a617ac3d43e620f8fd77ba1c84dcfc06", size = 234562, upload_time = "2025-06-09T22:54:48.982Z" }, + { url = "https://files.pythonhosted.org/packages/a4/7c/3f539fcae630408d0bd8bf3208b9a647ccad10976eda62402a80adf8fc34/propcache-0.3.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:62b4239611205294cc433845b914131b2a1f03500ff3c1ed093ed216b82621e1", size = 222142, upload_time = "2025-06-09T22:54:50.424Z" }, + { url = "https://files.pythonhosted.org/packages/7c/d2/34b9eac8c35f79f8a962546b3e97e9d4b990c420ee66ac8255d5d9611648/propcache-0.3.2-cp312-cp312-win32.whl", hash = "sha256:df4a81b9b53449ebc90cc4deefb052c1dd934ba85012aa912c7ea7b7e38b60c1", size = 37711, upload_time = "2025-06-09T22:54:52.072Z" }, + { url = "https://files.pythonhosted.org/packages/19/61/d582be5d226cf79071681d1b46b848d6cb03d7b70af7063e33a2787eaa03/propcache-0.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:7046e79b989d7fe457bb755844019e10f693752d169076138abf17f31380800c", size = 41479, upload_time = "2025-06-09T22:54:53.234Z" }, + { url = "https://files.pythonhosted.org/packages/dc/d1/8c747fafa558c603c4ca19d8e20b288aa0c7cda74e9402f50f31eb65267e/propcache-0.3.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ca592ed634a73ca002967458187109265e980422116c0a107cf93d81f95af945", size = 71286, upload_time = "2025-06-09T22:54:54.369Z" }, + { url = "https://files.pythonhosted.org/packages/61/99/d606cb7986b60d89c36de8a85d58764323b3a5ff07770a99d8e993b3fa73/propcache-0.3.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9ecb0aad4020e275652ba3975740f241bd12a61f1a784df044cf7477a02bc252", size = 42425, upload_time = "2025-06-09T22:54:55.642Z" }, + { url = "https://files.pythonhosted.org/packages/8c/96/ef98f91bbb42b79e9bb82bdd348b255eb9d65f14dbbe3b1594644c4073f7/propcache-0.3.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7f08f1cc28bd2eade7a8a3d2954ccc673bb02062e3e7da09bc75d843386b342f", size = 41846, upload_time = "2025-06-09T22:54:57.246Z" }, + { url = "https://files.pythonhosted.org/packages/5b/ad/3f0f9a705fb630d175146cd7b1d2bf5555c9beaed54e94132b21aac098a6/propcache-0.3.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1a342c834734edb4be5ecb1e9fb48cb64b1e2320fccbd8c54bf8da8f2a84c33", size = 208871, upload_time = "2025-06-09T22:54:58.975Z" }, + { url = "https://files.pythonhosted.org/packages/3a/38/2085cda93d2c8b6ec3e92af2c89489a36a5886b712a34ab25de9fbca7992/propcache-0.3.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8a544caaae1ac73f1fecfae70ded3e93728831affebd017d53449e3ac052ac1e", size = 215720, upload_time = "2025-06-09T22:55:00.471Z" }, + { url = "https://files.pythonhosted.org/packages/61/c1/d72ea2dc83ac7f2c8e182786ab0fc2c7bd123a1ff9b7975bee671866fe5f/propcache-0.3.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:310d11aa44635298397db47a3ebce7db99a4cc4b9bbdfcf6c98a60c8d5261cf1", size = 215203, upload_time = "2025-06-09T22:55:01.834Z" }, + { url = "https://files.pythonhosted.org/packages/af/81/b324c44ae60c56ef12007105f1460d5c304b0626ab0cc6b07c8f2a9aa0b8/propcache-0.3.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c1396592321ac83157ac03a2023aa6cc4a3cc3cfdecb71090054c09e5a7cce3", size = 206365, upload_time = "2025-06-09T22:55:03.199Z" }, + { url = "https://files.pythonhosted.org/packages/09/73/88549128bb89e66d2aff242488f62869014ae092db63ccea53c1cc75a81d/propcache-0.3.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8cabf5b5902272565e78197edb682017d21cf3b550ba0460ee473753f28d23c1", size = 196016, upload_time = "2025-06-09T22:55:04.518Z" }, + { url = "https://files.pythonhosted.org/packages/b9/3f/3bdd14e737d145114a5eb83cb172903afba7242f67c5877f9909a20d948d/propcache-0.3.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0a2f2235ac46a7aa25bdeb03a9e7060f6ecbd213b1f9101c43b3090ffb971ef6", size = 205596, upload_time = "2025-06-09T22:55:05.942Z" }, + { url = "https://files.pythonhosted.org/packages/0f/ca/2f4aa819c357d3107c3763d7ef42c03980f9ed5c48c82e01e25945d437c1/propcache-0.3.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:92b69e12e34869a6970fd2f3da91669899994b47c98f5d430b781c26f1d9f387", size = 200977, upload_time = "2025-06-09T22:55:07.792Z" }, + { url = "https://files.pythonhosted.org/packages/cd/4a/e65276c7477533c59085251ae88505caf6831c0e85ff8b2e31ebcbb949b1/propcache-0.3.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:54e02207c79968ebbdffc169591009f4474dde3b4679e16634d34c9363ff56b4", size = 197220, upload_time = "2025-06-09T22:55:09.173Z" }, + { url = "https://files.pythonhosted.org/packages/7c/54/fc7152e517cf5578278b242396ce4d4b36795423988ef39bb8cd5bf274c8/propcache-0.3.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4adfb44cb588001f68c5466579d3f1157ca07f7504fc91ec87862e2b8e556b88", size = 210642, upload_time = "2025-06-09T22:55:10.62Z" }, + { url = "https://files.pythonhosted.org/packages/b9/80/abeb4a896d2767bf5f1ea7b92eb7be6a5330645bd7fb844049c0e4045d9d/propcache-0.3.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:fd3e6019dc1261cd0291ee8919dd91fbab7b169bb76aeef6c716833a3f65d206", size = 212789, upload_time = "2025-06-09T22:55:12.029Z" }, + { url = "https://files.pythonhosted.org/packages/b3/db/ea12a49aa7b2b6d68a5da8293dcf50068d48d088100ac016ad92a6a780e6/propcache-0.3.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4c181cad81158d71c41a2bce88edce078458e2dd5ffee7eddd6b05da85079f43", size = 205880, upload_time = "2025-06-09T22:55:13.45Z" }, + { url = "https://files.pythonhosted.org/packages/d1/e5/9076a0bbbfb65d1198007059c65639dfd56266cf8e477a9707e4b1999ff4/propcache-0.3.2-cp313-cp313-win32.whl", hash = "sha256:8a08154613f2249519e549de2330cf8e2071c2887309a7b07fb56098f5170a02", size = 37220, upload_time = "2025-06-09T22:55:15.284Z" }, + { url = "https://files.pythonhosted.org/packages/d3/f5/b369e026b09a26cd77aa88d8fffd69141d2ae00a2abaaf5380d2603f4b7f/propcache-0.3.2-cp313-cp313-win_amd64.whl", hash = "sha256:e41671f1594fc4ab0a6dec1351864713cb3a279910ae8b58f884a88a0a632c05", size = 40678, upload_time = "2025-06-09T22:55:16.445Z" }, + { url = "https://files.pythonhosted.org/packages/a4/3a/6ece377b55544941a08d03581c7bc400a3c8cd3c2865900a68d5de79e21f/propcache-0.3.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:9a3cf035bbaf035f109987d9d55dc90e4b0e36e04bbbb95af3055ef17194057b", size = 76560, upload_time = "2025-06-09T22:55:17.598Z" }, + { url = "https://files.pythonhosted.org/packages/0c/da/64a2bb16418740fa634b0e9c3d29edff1db07f56d3546ca2d86ddf0305e1/propcache-0.3.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:156c03d07dc1323d8dacaa221fbe028c5c70d16709cdd63502778e6c3ccca1b0", size = 44676, upload_time = "2025-06-09T22:55:18.922Z" }, + { url = "https://files.pythonhosted.org/packages/36/7b/f025e06ea51cb72c52fb87e9b395cced02786610b60a3ed51da8af017170/propcache-0.3.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:74413c0ba02ba86f55cf60d18daab219f7e531620c15f1e23d95563f505efe7e", size = 44701, upload_time = "2025-06-09T22:55:20.106Z" }, + { url = "https://files.pythonhosted.org/packages/a4/00/faa1b1b7c3b74fc277f8642f32a4c72ba1d7b2de36d7cdfb676db7f4303e/propcache-0.3.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f066b437bb3fa39c58ff97ab2ca351db465157d68ed0440abecb21715eb24b28", size = 276934, upload_time = "2025-06-09T22:55:21.5Z" }, + { url = "https://files.pythonhosted.org/packages/74/ab/935beb6f1756e0476a4d5938ff44bf0d13a055fed880caf93859b4f1baf4/propcache-0.3.2-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1304b085c83067914721e7e9d9917d41ad87696bf70f0bc7dee450e9c71ad0a", size = 278316, upload_time = "2025-06-09T22:55:22.918Z" }, + { url = "https://files.pythonhosted.org/packages/f8/9d/994a5c1ce4389610838d1caec74bdf0e98b306c70314d46dbe4fcf21a3e2/propcache-0.3.2-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ab50cef01b372763a13333b4e54021bdcb291fc9a8e2ccb9c2df98be51bcde6c", size = 282619, upload_time = "2025-06-09T22:55:24.651Z" }, + { url = "https://files.pythonhosted.org/packages/2b/00/a10afce3d1ed0287cef2e09506d3be9822513f2c1e96457ee369adb9a6cd/propcache-0.3.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fad3b2a085ec259ad2c2842666b2a0a49dea8463579c606426128925af1ed725", size = 265896, upload_time = "2025-06-09T22:55:26.049Z" }, + { url = "https://files.pythonhosted.org/packages/2e/a8/2aa6716ffa566ca57c749edb909ad27884680887d68517e4be41b02299f3/propcache-0.3.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:261fa020c1c14deafd54c76b014956e2f86991af198c51139faf41c4d5e83892", size = 252111, upload_time = "2025-06-09T22:55:27.381Z" }, + { url = "https://files.pythonhosted.org/packages/36/4f/345ca9183b85ac29c8694b0941f7484bf419c7f0fea2d1e386b4f7893eed/propcache-0.3.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:46d7f8aa79c927e5f987ee3a80205c987717d3659f035c85cf0c3680526bdb44", size = 268334, upload_time = "2025-06-09T22:55:28.747Z" }, + { url = "https://files.pythonhosted.org/packages/3e/ca/fcd54f78b59e3f97b3b9715501e3147f5340167733d27db423aa321e7148/propcache-0.3.2-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:6d8f3f0eebf73e3c0ff0e7853f68be638b4043c65a70517bb575eff54edd8dbe", size = 255026, upload_time = "2025-06-09T22:55:30.184Z" }, + { url = "https://files.pythonhosted.org/packages/8b/95/8e6a6bbbd78ac89c30c225210a5c687790e532ba4088afb8c0445b77ef37/propcache-0.3.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:03c89c1b14a5452cf15403e291c0ccd7751d5b9736ecb2c5bab977ad6c5bcd81", size = 250724, upload_time = "2025-06-09T22:55:31.646Z" }, + { url = "https://files.pythonhosted.org/packages/ee/b0/0dd03616142baba28e8b2d14ce5df6631b4673850a3d4f9c0f9dd714a404/propcache-0.3.2-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:0cc17efde71e12bbaad086d679ce575268d70bc123a5a71ea7ad76f70ba30bba", size = 268868, upload_time = "2025-06-09T22:55:33.209Z" }, + { url = "https://files.pythonhosted.org/packages/c5/98/2c12407a7e4fbacd94ddd32f3b1e3d5231e77c30ef7162b12a60e2dd5ce3/propcache-0.3.2-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:acdf05d00696bc0447e278bb53cb04ca72354e562cf88ea6f9107df8e7fd9770", size = 271322, upload_time = "2025-06-09T22:55:35.065Z" }, + { url = "https://files.pythonhosted.org/packages/35/91/9cb56efbb428b006bb85db28591e40b7736847b8331d43fe335acf95f6c8/propcache-0.3.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4445542398bd0b5d32df908031cb1b30d43ac848e20470a878b770ec2dcc6330", size = 265778, upload_time = "2025-06-09T22:55:36.45Z" }, + { url = "https://files.pythonhosted.org/packages/9a/4c/b0fe775a2bdd01e176b14b574be679d84fc83958335790f7c9a686c1f468/propcache-0.3.2-cp313-cp313t-win32.whl", hash = "sha256:f86e5d7cd03afb3a1db8e9f9f6eff15794e79e791350ac48a8c924e6f439f394", size = 41175, upload_time = "2025-06-09T22:55:38.436Z" }, + { url = "https://files.pythonhosted.org/packages/a4/ff/47f08595e3d9b5e149c150f88d9714574f1a7cbd89fe2817158a952674bf/propcache-0.3.2-cp313-cp313t-win_amd64.whl", hash = "sha256:9704bedf6e7cbe3c65eca4379a9b53ee6a83749f047808cbb5044d40d7d72198", size = 44857, upload_time = "2025-06-09T22:55:39.687Z" }, + { url = "https://files.pythonhosted.org/packages/cc/35/cc0aaecf278bb4575b8555f2b137de5ab821595ddae9da9d3cd1da4072c7/propcache-0.3.2-py3-none-any.whl", hash = "sha256:98f1ec44fb675f5052cccc8e609c46ed23a35a1cfd18545ad4e29002d858a43f", size = 12663, upload_time = "2025-06-09T22:56:04.484Z" }, +] + +[[package]] +name = "pycparser" +version = "2.23" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fe/cf/d2d3b9f5699fb1e4615c8e32ff220203e43b248e1dfcc6736ad9057731ca/pycparser-2.23.tar.gz", hash = "sha256:78816d4f24add8f10a06d6f05b4d424ad9e96cfebf68a4ddc99c65c0720d00c2", size = 173734, upload_time = "2025-09-09T13:23:47.91Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/e3/59cd50310fc9b59512193629e1984c1f95e5c8ae6e5d8c69532ccc65a7fe/pycparser-2.23-py3-none-any.whl", hash = "sha256:e5c6e8d3fbad53479cab09ac03729e0a9faf2bee3db8208a550daf5af81a5934", size = 118140, upload_time = "2025-09-09T13:23:46.651Z" }, +] + +[[package]] +name = "pycryptodomex" +version = "3.23.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c9/85/e24bf90972a30b0fcd16c73009add1d7d7cd9140c2498a68252028899e41/pycryptodomex-3.23.0.tar.gz", hash = "sha256:71909758f010c82bc99b0abf4ea12012c98962fbf0583c2164f8b84533c2e4da", size = 4922157, upload_time = "2025-05-17T17:23:41.434Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2e/00/10edb04777069a42490a38c137099d4b17ba6e36a4e6e28bdc7470e9e853/pycryptodomex-3.23.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:7b37e08e3871efe2187bc1fd9320cc81d87caf19816c648f24443483005ff886", size = 2498764, upload_time = "2025-05-17T17:22:21.453Z" }, + { url = "https://files.pythonhosted.org/packages/6b/3f/2872a9c2d3a27eac094f9ceaa5a8a483b774ae69018040ea3240d5b11154/pycryptodomex-3.23.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:91979028227543010d7b2ba2471cf1d1e398b3f183cb105ac584df0c36dac28d", size = 1643012, upload_time = "2025-05-17T17:22:23.702Z" }, + { url = "https://files.pythonhosted.org/packages/70/af/774c2e2b4f6570fbf6a4972161adbb183aeeaa1863bde31e8706f123bf92/pycryptodomex-3.23.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b8962204c47464d5c1c4038abeadd4514a133b28748bcd9fa5b6d62e3cec6fa", size = 2187643, upload_time = "2025-05-17T17:22:26.37Z" }, + { url = "https://files.pythonhosted.org/packages/de/a3/71065b24cb889d537954cedc3ae5466af00a2cabcff8e29b73be047e9a19/pycryptodomex-3.23.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a33986a0066860f7fcf7c7bd2bc804fa90e434183645595ae7b33d01f3c91ed8", size = 2273762, upload_time = "2025-05-17T17:22:28.313Z" }, + { url = "https://files.pythonhosted.org/packages/c9/0b/ff6f43b7fbef4d302c8b981fe58467b8871902cdc3eb28896b52421422cc/pycryptodomex-3.23.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7947ab8d589e3178da3d7cdeabe14f841b391e17046954f2fbcd941705762b5", size = 2313012, upload_time = "2025-05-17T17:22:30.57Z" }, + { url = "https://files.pythonhosted.org/packages/02/de/9d4772c0506ab6da10b41159493657105d3f8bb5c53615d19452afc6b315/pycryptodomex-3.23.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c25e30a20e1b426e1f0fa00131c516f16e474204eee1139d1603e132acffc314", size = 2186856, upload_time = "2025-05-17T17:22:32.819Z" }, + { url = "https://files.pythonhosted.org/packages/28/ad/8b30efcd6341707a234e5eba5493700a17852ca1ac7a75daa7945fcf6427/pycryptodomex-3.23.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:da4fa650cef02db88c2b98acc5434461e027dce0ae8c22dd5a69013eaf510006", size = 2347523, upload_time = "2025-05-17T17:22:35.386Z" }, + { url = "https://files.pythonhosted.org/packages/0f/02/16868e9f655b7670dbb0ac4f2844145cbc42251f916fc35c414ad2359849/pycryptodomex-3.23.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:58b851b9effd0d072d4ca2e4542bf2a4abcf13c82a29fd2c93ce27ee2a2e9462", size = 2272825, upload_time = "2025-05-17T17:22:37.632Z" }, + { url = "https://files.pythonhosted.org/packages/ca/18/4ca89ac737230b52ac8ffaca42f9c6f1fd07c81a6cd821e91af79db60632/pycryptodomex-3.23.0-cp313-cp313t-win32.whl", hash = "sha256:a9d446e844f08299236780f2efa9898c818fe7e02f17263866b8550c7d5fb328", size = 1772078, upload_time = "2025-05-17T17:22:40Z" }, + { url = "https://files.pythonhosted.org/packages/73/34/13e01c322db027682e00986873eca803f11c56ade9ba5bbf3225841ea2d4/pycryptodomex-3.23.0-cp313-cp313t-win_amd64.whl", hash = "sha256:bc65bdd9fc8de7a35a74cab1c898cab391a4add33a8fe740bda00f5976ca4708", size = 1803656, upload_time = "2025-05-17T17:22:42.139Z" }, + { url = "https://files.pythonhosted.org/packages/54/68/9504c8796b1805d58f4425002bcca20f12880e6fa4dc2fc9a668705c7a08/pycryptodomex-3.23.0-cp313-cp313t-win_arm64.whl", hash = "sha256:c885da45e70139464f082018ac527fdaad26f1657a99ee13eecdce0f0ca24ab4", size = 1707172, upload_time = "2025-05-17T17:22:44.704Z" }, + { url = "https://files.pythonhosted.org/packages/dd/9c/1a8f35daa39784ed8adf93a694e7e5dc15c23c741bbda06e1d45f8979e9e/pycryptodomex-3.23.0-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:06698f957fe1ab229a99ba2defeeae1c09af185baa909a31a5d1f9d42b1aaed6", size = 2499240, upload_time = "2025-05-17T17:22:46.953Z" }, + { url = "https://files.pythonhosted.org/packages/7a/62/f5221a191a97157d240cf6643747558759126c76ee92f29a3f4aee3197a5/pycryptodomex-3.23.0-cp37-abi3-macosx_10_9_x86_64.whl", hash = "sha256:b2c2537863eccef2d41061e82a881dcabb04944c5c06c5aa7110b577cc487545", size = 1644042, upload_time = "2025-05-17T17:22:49.098Z" }, + { url = "https://files.pythonhosted.org/packages/8c/fd/5a054543c8988d4ed7b612721d7e78a4b9bf36bc3c5ad45ef45c22d0060e/pycryptodomex-3.23.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:43c446e2ba8df8889e0e16f02211c25b4934898384c1ec1ec04d7889c0333587", size = 2186227, upload_time = "2025-05-17T17:22:51.139Z" }, + { url = "https://files.pythonhosted.org/packages/c8/a9/8862616a85cf450d2822dbd4fff1fcaba90877907a6ff5bc2672cafe42f8/pycryptodomex-3.23.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f489c4765093fb60e2edafdf223397bc716491b2b69fe74367b70d6999257a5c", size = 2272578, upload_time = "2025-05-17T17:22:53.676Z" }, + { url = "https://files.pythonhosted.org/packages/46/9f/bda9c49a7c1842820de674ab36c79f4fbeeee03f8ff0e4f3546c3889076b/pycryptodomex-3.23.0-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bdc69d0d3d989a1029df0eed67cc5e8e5d968f3724f4519bd03e0ec68df7543c", size = 2312166, upload_time = "2025-05-17T17:22:56.585Z" }, + { url = "https://files.pythonhosted.org/packages/03/cc/870b9bf8ca92866ca0186534801cf8d20554ad2a76ca959538041b7a7cf4/pycryptodomex-3.23.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:6bbcb1dd0f646484939e142462d9e532482bc74475cecf9c4903d4e1cd21f003", size = 2185467, upload_time = "2025-05-17T17:22:59.237Z" }, + { url = "https://files.pythonhosted.org/packages/96/e3/ce9348236d8e669fea5dd82a90e86be48b9c341210f44e25443162aba187/pycryptodomex-3.23.0-cp37-abi3-musllinux_1_2_i686.whl", hash = "sha256:8a4fcd42ccb04c31268d1efeecfccfd1249612b4de6374205376b8f280321744", size = 2346104, upload_time = "2025-05-17T17:23:02.112Z" }, + { url = "https://files.pythonhosted.org/packages/a5/e9/e869bcee87beb89040263c416a8a50204f7f7a83ac11897646c9e71e0daf/pycryptodomex-3.23.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:55ccbe27f049743a4caf4f4221b166560d3438d0b1e5ab929e07ae1702a4d6fd", size = 2271038, upload_time = "2025-05-17T17:23:04.872Z" }, + { url = "https://files.pythonhosted.org/packages/8d/67/09ee8500dd22614af5fbaa51a4aee6e342b5fa8aecf0a6cb9cbf52fa6d45/pycryptodomex-3.23.0-cp37-abi3-win32.whl", hash = "sha256:189afbc87f0b9f158386bf051f720e20fa6145975f1e76369303d0f31d1a8d7c", size = 1771969, upload_time = "2025-05-17T17:23:07.115Z" }, + { url = "https://files.pythonhosted.org/packages/69/96/11f36f71a865dd6df03716d33bd07a67e9d20f6b8d39820470b766af323c/pycryptodomex-3.23.0-cp37-abi3-win_amd64.whl", hash = "sha256:52e5ca58c3a0b0bd5e100a9fbc8015059b05cffc6c66ce9d98b4b45e023443b9", size = 1803124, upload_time = "2025-05-17T17:23:09.267Z" }, + { url = "https://files.pythonhosted.org/packages/f9/93/45c1cdcbeb182ccd2e144c693eaa097763b08b38cded279f0053ed53c553/pycryptodomex-3.23.0-cp37-abi3-win_arm64.whl", hash = "sha256:02d87b80778c171445d67e23d1caef279bf4b25c3597050ccd2e13970b57fd51", size = 1707161, upload_time = "2025-05-17T17:23:11.414Z" }, +] + +[[package]] +name = "pydantic" +version = "2.11.9" +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/ff/5d/09a551ba512d7ca404d785072700d3f6727a02f6f3c24ecfd081c7cf0aa8/pydantic-2.11.9.tar.gz", hash = "sha256:6b8ffda597a14812a7975c90b82a8a2e777d9257aba3453f973acd3c032a18e2", size = 788495, upload_time = "2025-09-13T11:26:39.325Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3e/d3/108f2006987c58e76691d5ae5d200dd3e0f532cb4e5fa3560751c3a1feba/pydantic-2.11.9-py3-none-any.whl", hash = "sha256:c42dd626f5cfc1c6950ce6205ea58c93efa406da65f479dcb4029d5934857da2", size = 444855, upload_time = "2025-09-13T11:26:36.909Z" }, +] + +[package.optional-dependencies] +email = [ + { name = "email-validator" }, +] + +[[package]] +name = "pydantic-core" +version = "2.33.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ad/88/5f2260bdfae97aabf98f1778d43f69574390ad787afb646292a638c923d4/pydantic_core-2.33.2.tar.gz", hash = "sha256:7cb8bc3605c29176e1b105350d2e6474142d7c1bd1d9327c4a9bdb46bf827acc", size = 435195, upload_time = "2025-04-23T18:33:52.104Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/8a/2b41c97f554ec8c71f2a8a5f85cb56a8b0956addfe8b0efb5b3d77e8bdc3/pydantic_core-2.33.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a7ec89dc587667f22b6a0b6579c249fca9026ce7c333fc142ba42411fa243cdc", size = 2009000, upload_time = "2025-04-23T18:31:25.863Z" }, + { url = "https://files.pythonhosted.org/packages/a1/02/6224312aacb3c8ecbaa959897af57181fb6cf3a3d7917fd44d0f2917e6f2/pydantic_core-2.33.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3c6db6e52c6d70aa0d00d45cdb9b40f0433b96380071ea80b09277dba021ddf7", size = 1847996, upload_time = "2025-04-23T18:31:27.341Z" }, + { url = "https://files.pythonhosted.org/packages/d6/46/6dcdf084a523dbe0a0be59d054734b86a981726f221f4562aed313dbcb49/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e61206137cbc65e6d5256e1166f88331d3b6238e082d9f74613b9b765fb9025", size = 1880957, upload_time = "2025-04-23T18:31:28.956Z" }, + { url = "https://files.pythonhosted.org/packages/ec/6b/1ec2c03837ac00886ba8160ce041ce4e325b41d06a034adbef11339ae422/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eb8c529b2819c37140eb51b914153063d27ed88e3bdc31b71198a198e921e011", size = 1964199, upload_time = "2025-04-23T18:31:31.025Z" }, + { url = "https://files.pythonhosted.org/packages/2d/1d/6bf34d6adb9debd9136bd197ca72642203ce9aaaa85cfcbfcf20f9696e83/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c52b02ad8b4e2cf14ca7b3d918f3eb0ee91e63b3167c32591e57c4317e134f8f", size = 2120296, upload_time = "2025-04-23T18:31:32.514Z" }, + { url = "https://files.pythonhosted.org/packages/e0/94/2bd0aaf5a591e974b32a9f7123f16637776c304471a0ab33cf263cf5591a/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:96081f1605125ba0855dfda83f6f3df5ec90c61195421ba72223de35ccfb2f88", size = 2676109, upload_time = "2025-04-23T18:31:33.958Z" }, + { url = "https://files.pythonhosted.org/packages/f9/41/4b043778cf9c4285d59742281a769eac371b9e47e35f98ad321349cc5d61/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f57a69461af2a5fa6e6bbd7a5f60d3b7e6cebb687f55106933188e79ad155c1", size = 2002028, upload_time = "2025-04-23T18:31:39.095Z" }, + { url = "https://files.pythonhosted.org/packages/cb/d5/7bb781bf2748ce3d03af04d5c969fa1308880e1dca35a9bd94e1a96a922e/pydantic_core-2.33.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:572c7e6c8bb4774d2ac88929e3d1f12bc45714ae5ee6d9a788a9fb35e60bb04b", size = 2100044, upload_time = "2025-04-23T18:31:41.034Z" }, + { url = "https://files.pythonhosted.org/packages/fe/36/def5e53e1eb0ad896785702a5bbfd25eed546cdcf4087ad285021a90ed53/pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:db4b41f9bd95fbe5acd76d89920336ba96f03e149097365afe1cb092fceb89a1", size = 2058881, upload_time = "2025-04-23T18:31:42.757Z" }, + { url = "https://files.pythonhosted.org/packages/01/6c/57f8d70b2ee57fc3dc8b9610315949837fa8c11d86927b9bb044f8705419/pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:fa854f5cf7e33842a892e5c73f45327760bc7bc516339fda888c75ae60edaeb6", size = 2227034, upload_time = "2025-04-23T18:31:44.304Z" }, + { url = "https://files.pythonhosted.org/packages/27/b9/9c17f0396a82b3d5cbea4c24d742083422639e7bb1d5bf600e12cb176a13/pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:5f483cfb75ff703095c59e365360cb73e00185e01aaea067cd19acffd2ab20ea", size = 2234187, upload_time = "2025-04-23T18:31:45.891Z" }, + { url = "https://files.pythonhosted.org/packages/b0/6a/adf5734ffd52bf86d865093ad70b2ce543415e0e356f6cacabbc0d9ad910/pydantic_core-2.33.2-cp312-cp312-win32.whl", hash = "sha256:9cb1da0f5a471435a7bc7e439b8a728e8b61e59784b2af70d7c169f8dd8ae290", size = 1892628, upload_time = "2025-04-23T18:31:47.819Z" }, + { url = "https://files.pythonhosted.org/packages/43/e4/5479fecb3606c1368d496a825d8411e126133c41224c1e7238be58b87d7e/pydantic_core-2.33.2-cp312-cp312-win_amd64.whl", hash = "sha256:f941635f2a3d96b2973e867144fde513665c87f13fe0e193c158ac51bfaaa7b2", size = 1955866, upload_time = "2025-04-23T18:31:49.635Z" }, + { url = "https://files.pythonhosted.org/packages/0d/24/8b11e8b3e2be9dd82df4b11408a67c61bb4dc4f8e11b5b0fc888b38118b5/pydantic_core-2.33.2-cp312-cp312-win_arm64.whl", hash = "sha256:cca3868ddfaccfbc4bfb1d608e2ccaaebe0ae628e1416aeb9c4d88c001bb45ab", size = 1888894, upload_time = "2025-04-23T18:31:51.609Z" }, + { url = "https://files.pythonhosted.org/packages/46/8c/99040727b41f56616573a28771b1bfa08a3d3fe74d3d513f01251f79f172/pydantic_core-2.33.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:1082dd3e2d7109ad8b7da48e1d4710c8d06c253cbc4a27c1cff4fbcaa97a9e3f", size = 2015688, upload_time = "2025-04-23T18:31:53.175Z" }, + { url = "https://files.pythonhosted.org/packages/3a/cc/5999d1eb705a6cefc31f0b4a90e9f7fc400539b1a1030529700cc1b51838/pydantic_core-2.33.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f517ca031dfc037a9c07e748cefd8d96235088b83b4f4ba8939105d20fa1dcd6", size = 1844808, upload_time = "2025-04-23T18:31:54.79Z" }, + { url = "https://files.pythonhosted.org/packages/6f/5e/a0a7b8885c98889a18b6e376f344da1ef323d270b44edf8174d6bce4d622/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a9f2c9dd19656823cb8250b0724ee9c60a82f3cdf68a080979d13092a3b0fef", size = 1885580, upload_time = "2025-04-23T18:31:57.393Z" }, + { url = "https://files.pythonhosted.org/packages/3b/2a/953581f343c7d11a304581156618c3f592435523dd9d79865903272c256a/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2b0a451c263b01acebe51895bfb0e1cc842a5c666efe06cdf13846c7418caa9a", size = 1973859, upload_time = "2025-04-23T18:31:59.065Z" }, + { url = "https://files.pythonhosted.org/packages/e6/55/f1a813904771c03a3f97f676c62cca0c0a4138654107c1b61f19c644868b/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ea40a64d23faa25e62a70ad163571c0b342b8bf66d5fa612ac0dec4f069d916", size = 2120810, upload_time = "2025-04-23T18:32:00.78Z" }, + { url = "https://files.pythonhosted.org/packages/aa/c3/053389835a996e18853ba107a63caae0b9deb4a276c6b472931ea9ae6e48/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0fb2d542b4d66f9470e8065c5469ec676978d625a8b7a363f07d9a501a9cb36a", size = 2676498, upload_time = "2025-04-23T18:32:02.418Z" }, + { url = "https://files.pythonhosted.org/packages/eb/3c/f4abd740877a35abade05e437245b192f9d0ffb48bbbbd708df33d3cda37/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdac5d6ffa1b5a83bca06ffe7583f5576555e6c8b3a91fbd25ea7780f825f7d", size = 2000611, upload_time = "2025-04-23T18:32:04.152Z" }, + { url = "https://files.pythonhosted.org/packages/59/a7/63ef2fed1837d1121a894d0ce88439fe3e3b3e48c7543b2a4479eb99c2bd/pydantic_core-2.33.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:04a1a413977ab517154eebb2d326da71638271477d6ad87a769102f7c2488c56", size = 2107924, upload_time = "2025-04-23T18:32:06.129Z" }, + { url = "https://files.pythonhosted.org/packages/04/8f/2551964ef045669801675f1cfc3b0d74147f4901c3ffa42be2ddb1f0efc4/pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c8e7af2f4e0194c22b5b37205bfb293d166a7344a5b0d0eaccebc376546d77d5", size = 2063196, upload_time = "2025-04-23T18:32:08.178Z" }, + { url = "https://files.pythonhosted.org/packages/26/bd/d9602777e77fc6dbb0c7db9ad356e9a985825547dce5ad1d30ee04903918/pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:5c92edd15cd58b3c2d34873597a1e20f13094f59cf88068adb18947df5455b4e", size = 2236389, upload_time = "2025-04-23T18:32:10.242Z" }, + { url = "https://files.pythonhosted.org/packages/42/db/0e950daa7e2230423ab342ae918a794964b053bec24ba8af013fc7c94846/pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:65132b7b4a1c0beded5e057324b7e16e10910c106d43675d9bd87d4f38dde162", size = 2239223, upload_time = "2025-04-23T18:32:12.382Z" }, + { url = "https://files.pythonhosted.org/packages/58/4d/4f937099c545a8a17eb52cb67fe0447fd9a373b348ccfa9a87f141eeb00f/pydantic_core-2.33.2-cp313-cp313-win32.whl", hash = "sha256:52fb90784e0a242bb96ec53f42196a17278855b0f31ac7c3cc6f5c1ec4811849", size = 1900473, upload_time = "2025-04-23T18:32:14.034Z" }, + { url = "https://files.pythonhosted.org/packages/a0/75/4a0a9bac998d78d889def5e4ef2b065acba8cae8c93696906c3a91f310ca/pydantic_core-2.33.2-cp313-cp313-win_amd64.whl", hash = "sha256:c083a3bdd5a93dfe480f1125926afcdbf2917ae714bdb80b36d34318b2bec5d9", size = 1955269, upload_time = "2025-04-23T18:32:15.783Z" }, + { url = "https://files.pythonhosted.org/packages/f9/86/1beda0576969592f1497b4ce8e7bc8cbdf614c352426271b1b10d5f0aa64/pydantic_core-2.33.2-cp313-cp313-win_arm64.whl", hash = "sha256:e80b087132752f6b3d714f041ccf74403799d3b23a72722ea2e6ba2e892555b9", size = 1893921, upload_time = "2025-04-23T18:32:18.473Z" }, + { url = "https://files.pythonhosted.org/packages/a4/7d/e09391c2eebeab681df2b74bfe6c43422fffede8dc74187b2b0bf6fd7571/pydantic_core-2.33.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:61c18fba8e5e9db3ab908620af374db0ac1baa69f0f32df4f61ae23f15e586ac", size = 1806162, upload_time = "2025-04-23T18:32:20.188Z" }, + { url = "https://files.pythonhosted.org/packages/f1/3d/847b6b1fed9f8ed3bb95a9ad04fbd0b212e832d4f0f50ff4d9ee5a9f15cf/pydantic_core-2.33.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95237e53bb015f67b63c91af7518a62a8660376a6a0db19b89acc77a4d6199f5", size = 1981560, upload_time = "2025-04-23T18:32:22.354Z" }, + { url = "https://files.pythonhosted.org/packages/6f/9a/e73262f6c6656262b5fdd723ad90f518f579b7bc8622e43a942eec53c938/pydantic_core-2.33.2-cp313-cp313t-win_amd64.whl", hash = "sha256:c2fc0a768ef76c15ab9238afa6da7f69895bb5d1ee83aeea2e3509af4472d0b9", size = 1935777, upload_time = "2025-04-23T18:32:25.088Z" }, +] + +[[package]] +name = "pynwb" +version = "3.1.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "h5py" }, + { name = "hdmf" }, + { name = "numpy" }, + { name = "pandas" }, + { name = "platformdirs" }, + { name = "python-dateutil" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0a/24/4760bc06c17f7139b69edcafb40b3f28563c9c68a2d3ac5d1303575e5015/pynwb-3.1.2.tar.gz", hash = "sha256:4260be763a91c91c56f4bcbe4f782697f19c32938ecead708be0e3b60e2cdb81", size = 35672780, upload_time = "2025-08-13T20:47:34.647Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ce/da/dd488531f94ef5b5eac0b6e2ad845742895655ae82fd7fdf465f3399ad45/pynwb-3.1.2-py3-none-any.whl", hash = "sha256:90c3091937064c86c43933c49a85070fc67f2e7eec0b392ded2caa2e42195bd2", size = 1395141, upload_time = "2025-08-13T20:47:32.577Z" }, +] + +[[package]] +name = "pyout" +version = "0.8.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "blessed", marker = "sys_platform != 'win32'" }, + { name = "jsonschema" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a1/0e/87f3d9aef4211fe7e88ddabf01794bd15c9051cae44633bcf507bdd3837d/pyout-0.8.1.tar.gz", hash = "sha256:57b0e96a9beb2e20336bd5a265e369915e1c23f50048a7d448b3fab5d076d1d1", size = 46887, upload_time = "2025-02-22T14:58:09.616Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/46/bb/cf48ce5ba1481d568c5fb2b74ecc55e64207a7ee6444a3d0cb04f0410020/pyout-0.8.1-py3-none-any.whl", hash = "sha256:31708f9a1ea0009e92371c1e045541a1b01e22ec006e1cb2f3407ec99c036a10", size = 53080, upload_time = "2025-02-22T14:58:08.032Z" }, +] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +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, 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, upload_time = "2024-03-01T18:36:18.57Z" }, +] + +[[package]] +name = "pytz" +version = "2025.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f8/bf/abbd3cdfb8fbc7fb3d4d38d320f2441b1e7cbe29be4f23797b4a2b5d8aac/pytz-2025.2.tar.gz", hash = "sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3", size = 320884, upload_time = "2025-03-25T02:25:00.538Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/81/c4/34e93fe5f5429d7570ec1fa436f1986fb1f00c3e0f43a589fe2bbcd22c3f/pytz-2025.2-py2.py3-none-any.whl", hash = "sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00", size = 509225, upload_time = "2025-03-25T02:24:58.468Z" }, +] + +[[package]] +name = "pywin32-ctypes" +version = "0.2.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/85/9f/01a1a99704853cb63f253eea009390c88e7131c67e66a0a02099a8c917cb/pywin32-ctypes-0.2.3.tar.gz", hash = "sha256:d162dc04946d704503b2edc4d55f3dba5c1d539ead017afa00142c38b9885755", size = 29471, upload_time = "2024-08-14T10:15:34.626Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/de/3d/8161f7711c017e01ac9f008dfddd9410dff3674334c233bde66e7ba65bbf/pywin32_ctypes-0.2.3-py3-none-any.whl", hash = "sha256:8a1513379d709975552d202d942d9837758905c8d01eb82b8bcc30918929e7b8", size = 30756, upload_time = "2024-08-14T10:15:33.187Z" }, +] + +[[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, 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 = "referencing" +version = "0.36.2" +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/2f/db/98b5c277be99dd18bfd91dd04e1b759cad18d1a338188c936e92f921c7e2/referencing-0.36.2.tar.gz", hash = "sha256:df2e89862cd09deabbdba16944cc3f10feb6b3e6f18e902f7cc25609a34775aa", size = 74744, upload_time = "2025-01-25T08:48:16.138Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c1/b1/3baf80dc6d2b7bc27a95a67752d0208e410351e3feb4eb78de5f77454d8d/referencing-0.36.2-py3-none-any.whl", hash = "sha256:e8699adbbf8b5c7de96d8ffa0eb5c158b3beafce084968e2ea8bb08c6794dcd0", size = 26775, upload_time = "2025-01-25T08:48:14.241Z" }, +] + +[[package]] +name = "remfile" +version = "0.1.13" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "h5py" }, + { name = "numpy" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7c/d1/e9ae25f762f188d912440c9f595c94e3148e9f6994bb43b1794a199f5610/remfile-0.1.13.tar.gz", hash = "sha256:230795a0f903c2e0650dedbef14167ff714d64bb6ce22e9c5d835a9afbdfff55", size = 13267, upload_time = "2024-05-29T18:14:04.448Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3e/33/485cb65a071e2e15b86693e25467ada58164f00ec076b8e24191671004cb/remfile-0.1.13-py3-none-any.whl", hash = "sha256:1e87dacc76a4db9fbbcb7ccaaa275e6b428b7d4528d39b88f8d790e17d1b50c3", size = 11916, upload_time = "2024-05-29T18:14:02.876Z" }, +] + +[[package]] +name = "requests" +version = "2.32.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf", size = 134517, upload_time = "2025-08-18T20:46:02.573Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6", size = 64738, upload_time = "2025-08-18T20:46:00.542Z" }, +] + +[[package]] +name = "rfc3339-validator" +version = "0.1.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/28/ea/a9387748e2d111c3c2b275ba970b735e04e15cdb1eb30693b6b5708c4dbd/rfc3339_validator-0.1.4.tar.gz", hash = "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b", size = 5513, upload_time = "2021-05-12T16:37:54.178Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7b/44/4e421b96b67b2daff264473f7465db72fbdf36a07e05494f50300cc7b0c6/rfc3339_validator-0.1.4-py2.py3-none-any.whl", hash = "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa", size = 3490, upload_time = "2021-05-12T16:37:52.536Z" }, +] + +[[package]] +name = "rfc3987" +version = "1.3.8" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/14/bb/f1395c4b62f251a1cb503ff884500ebd248eed593f41b469f89caa3547bd/rfc3987-1.3.8.tar.gz", hash = "sha256:d3c4d257a560d544e9826b38bc81db676890c79ab9d7ac92b39c7a253d5ca733", size = 20700, upload_time = "2018-07-29T17:23:47.954Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/65/d4/f7407c3d15d5ac779c3dd34fbbc6ea2090f77bd7dd12f207ccf881551208/rfc3987-1.3.8-py2.py3-none-any.whl", hash = "sha256:10702b1e51e5658843460b189b185c0366d2cf4cff716f13111b0ea9fd2dce53", size = 13377, upload_time = "2018-07-29T17:23:45.313Z" }, +] + +[[package]] +name = "rpds-py" +version = "0.27.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e9/dd/2c0cbe774744272b0ae725f44032c77bdcab6e8bcf544bffa3b6e70c8dba/rpds_py-0.27.1.tar.gz", hash = "sha256:26a1c73171d10b7acccbded82bf6a586ab8203601e565badc74bbbf8bc5a10f8", size = 27479, upload_time = "2025-08-27T12:16:36.024Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bd/fe/38de28dee5df58b8198c743fe2bea0c785c6d40941b9950bac4cdb71a014/rpds_py-0.27.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:ae2775c1973e3c30316892737b91f9283f9908e3cc7625b9331271eaaed7dc90", size = 361887, upload_time = "2025-08-27T12:13:10.233Z" }, + { url = "https://files.pythonhosted.org/packages/7c/9a/4b6c7eedc7dd90986bf0fab6ea2a091ec11c01b15f8ba0a14d3f80450468/rpds_py-0.27.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2643400120f55c8a96f7c9d858f7be0c88d383cd4653ae2cf0d0c88f668073e5", size = 345795, upload_time = "2025-08-27T12:13:11.65Z" }, + { url = "https://files.pythonhosted.org/packages/6f/0e/e650e1b81922847a09cca820237b0edee69416a01268b7754d506ade11ad/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:16323f674c089b0360674a4abd28d5042947d54ba620f72514d69be4ff64845e", size = 385121, upload_time = "2025-08-27T12:13:13.008Z" }, + { url = "https://files.pythonhosted.org/packages/1b/ea/b306067a712988e2bff00dcc7c8f31d26c29b6d5931b461aa4b60a013e33/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9a1f4814b65eacac94a00fc9a526e3fdafd78e439469644032032d0d63de4881", size = 398976, upload_time = "2025-08-27T12:13:14.368Z" }, + { url = "https://files.pythonhosted.org/packages/2c/0a/26dc43c8840cb8fe239fe12dbc8d8de40f2365e838f3d395835dde72f0e5/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7ba32c16b064267b22f1850a34051121d423b6f7338a12b9459550eb2096e7ec", size = 525953, upload_time = "2025-08-27T12:13:15.774Z" }, + { url = "https://files.pythonhosted.org/packages/22/14/c85e8127b573aaf3a0cbd7fbb8c9c99e735a4a02180c84da2a463b766e9e/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5c20f33fd10485b80f65e800bbe5f6785af510b9f4056c5a3c612ebc83ba6cb", size = 407915, upload_time = "2025-08-27T12:13:17.379Z" }, + { url = "https://files.pythonhosted.org/packages/ed/7b/8f4fee9ba1fb5ec856eb22d725a4efa3deb47f769597c809e03578b0f9d9/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:466bfe65bd932da36ff279ddd92de56b042f2266d752719beb97b08526268ec5", size = 386883, upload_time = "2025-08-27T12:13:18.704Z" }, + { url = "https://files.pythonhosted.org/packages/86/47/28fa6d60f8b74fcdceba81b272f8d9836ac0340570f68f5df6b41838547b/rpds_py-0.27.1-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:41e532bbdcb57c92ba3be62c42e9f096431b4cf478da9bc3bc6ce5c38ab7ba7a", size = 405699, upload_time = "2025-08-27T12:13:20.089Z" }, + { url = "https://files.pythonhosted.org/packages/d0/fd/c5987b5e054548df56953a21fe2ebed51fc1ec7c8f24fd41c067b68c4a0a/rpds_py-0.27.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f149826d742b406579466283769a8ea448eed82a789af0ed17b0cd5770433444", size = 423713, upload_time = "2025-08-27T12:13:21.436Z" }, + { url = "https://files.pythonhosted.org/packages/ac/ba/3c4978b54a73ed19a7d74531be37a8bcc542d917c770e14d372b8daea186/rpds_py-0.27.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:80c60cfb5310677bd67cb1e85a1e8eb52e12529545441b43e6f14d90b878775a", size = 562324, upload_time = "2025-08-27T12:13:22.789Z" }, + { url = "https://files.pythonhosted.org/packages/b5/6c/6943a91768fec16db09a42b08644b960cff540c66aab89b74be6d4a144ba/rpds_py-0.27.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:7ee6521b9baf06085f62ba9c7a3e5becffbc32480d2f1b351559c001c38ce4c1", size = 593646, upload_time = "2025-08-27T12:13:24.122Z" }, + { url = "https://files.pythonhosted.org/packages/11/73/9d7a8f4be5f4396f011a6bb7a19fe26303a0dac9064462f5651ced2f572f/rpds_py-0.27.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a512c8263249a9d68cac08b05dd59d2b3f2061d99b322813cbcc14c3c7421998", size = 558137, upload_time = "2025-08-27T12:13:25.557Z" }, + { url = "https://files.pythonhosted.org/packages/6e/96/6772cbfa0e2485bcceef8071de7821f81aeac8bb45fbfd5542a3e8108165/rpds_py-0.27.1-cp312-cp312-win32.whl", hash = "sha256:819064fa048ba01b6dadc5116f3ac48610435ac9a0058bbde98e569f9e785c39", size = 221343, upload_time = "2025-08-27T12:13:26.967Z" }, + { url = "https://files.pythonhosted.org/packages/67/b6/c82f0faa9af1c6a64669f73a17ee0eeef25aff30bb9a1c318509efe45d84/rpds_py-0.27.1-cp312-cp312-win_amd64.whl", hash = "sha256:d9199717881f13c32c4046a15f024971a3b78ad4ea029e8da6b86e5aa9cf4594", size = 232497, upload_time = "2025-08-27T12:13:28.326Z" }, + { url = "https://files.pythonhosted.org/packages/e1/96/2817b44bd2ed11aebacc9251da03689d56109b9aba5e311297b6902136e2/rpds_py-0.27.1-cp312-cp312-win_arm64.whl", hash = "sha256:33aa65b97826a0e885ef6e278fbd934e98cdcfed80b63946025f01e2f5b29502", size = 222790, upload_time = "2025-08-27T12:13:29.71Z" }, + { url = "https://files.pythonhosted.org/packages/cc/77/610aeee8d41e39080c7e14afa5387138e3c9fa9756ab893d09d99e7d8e98/rpds_py-0.27.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:e4b9fcfbc021633863a37e92571d6f91851fa656f0180246e84cbd8b3f6b329b", size = 361741, upload_time = "2025-08-27T12:13:31.039Z" }, + { url = "https://files.pythonhosted.org/packages/3a/fc/c43765f201c6a1c60be2043cbdb664013def52460a4c7adace89d6682bf4/rpds_py-0.27.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1441811a96eadca93c517d08df75de45e5ffe68aa3089924f963c782c4b898cf", size = 345574, upload_time = "2025-08-27T12:13:32.902Z" }, + { url = "https://files.pythonhosted.org/packages/20/42/ee2b2ca114294cd9847d0ef9c26d2b0851b2e7e00bf14cc4c0b581df0fc3/rpds_py-0.27.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55266dafa22e672f5a4f65019015f90336ed31c6383bd53f5e7826d21a0e0b83", size = 385051, upload_time = "2025-08-27T12:13:34.228Z" }, + { url = "https://files.pythonhosted.org/packages/fd/e8/1e430fe311e4799e02e2d1af7c765f024e95e17d651612425b226705f910/rpds_py-0.27.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d78827d7ac08627ea2c8e02c9e5b41180ea5ea1f747e9db0915e3adf36b62dcf", size = 398395, upload_time = "2025-08-27T12:13:36.132Z" }, + { url = "https://files.pythonhosted.org/packages/82/95/9dc227d441ff2670651c27a739acb2535ccaf8b351a88d78c088965e5996/rpds_py-0.27.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae92443798a40a92dc5f0b01d8a7c93adde0c4dc965310a29ae7c64d72b9fad2", size = 524334, upload_time = "2025-08-27T12:13:37.562Z" }, + { url = "https://files.pythonhosted.org/packages/87/01/a670c232f401d9ad461d9a332aa4080cd3cb1d1df18213dbd0d2a6a7ab51/rpds_py-0.27.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c46c9dd2403b66a2a3b9720ec4b74d4ab49d4fabf9f03dfdce2d42af913fe8d0", size = 407691, upload_time = "2025-08-27T12:13:38.94Z" }, + { url = "https://files.pythonhosted.org/packages/03/36/0a14aebbaa26fe7fab4780c76f2239e76cc95a0090bdb25e31d95c492fcd/rpds_py-0.27.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2efe4eb1d01b7f5f1939f4ef30ecea6c6b3521eec451fb93191bf84b2a522418", size = 386868, upload_time = "2025-08-27T12:13:40.192Z" }, + { url = "https://files.pythonhosted.org/packages/3b/03/8c897fb8b5347ff6c1cc31239b9611c5bf79d78c984430887a353e1409a1/rpds_py-0.27.1-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:15d3b4d83582d10c601f481eca29c3f138d44c92187d197aff663a269197c02d", size = 405469, upload_time = "2025-08-27T12:13:41.496Z" }, + { url = "https://files.pythonhosted.org/packages/da/07/88c60edc2df74850d496d78a1fdcdc7b54360a7f610a4d50008309d41b94/rpds_py-0.27.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4ed2e16abbc982a169d30d1a420274a709949e2cbdef119fe2ec9d870b42f274", size = 422125, upload_time = "2025-08-27T12:13:42.802Z" }, + { url = "https://files.pythonhosted.org/packages/6b/86/5f4c707603e41b05f191a749984f390dabcbc467cf833769b47bf14ba04f/rpds_py-0.27.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a75f305c9b013289121ec0f1181931975df78738cdf650093e6b86d74aa7d8dd", size = 562341, upload_time = "2025-08-27T12:13:44.472Z" }, + { url = "https://files.pythonhosted.org/packages/b2/92/3c0cb2492094e3cd9baf9e49bbb7befeceb584ea0c1a8b5939dca4da12e5/rpds_py-0.27.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:67ce7620704745881a3d4b0ada80ab4d99df390838839921f99e63c474f82cf2", size = 592511, upload_time = "2025-08-27T12:13:45.898Z" }, + { url = "https://files.pythonhosted.org/packages/10/bb/82e64fbb0047c46a168faa28d0d45a7851cd0582f850b966811d30f67ad8/rpds_py-0.27.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9d992ac10eb86d9b6f369647b6a3f412fc0075cfd5d799530e84d335e440a002", size = 557736, upload_time = "2025-08-27T12:13:47.408Z" }, + { url = "https://files.pythonhosted.org/packages/00/95/3c863973d409210da7fb41958172c6b7dbe7fc34e04d3cc1f10bb85e979f/rpds_py-0.27.1-cp313-cp313-win32.whl", hash = "sha256:4f75e4bd8ab8db624e02c8e2fc4063021b58becdbe6df793a8111d9343aec1e3", size = 221462, upload_time = "2025-08-27T12:13:48.742Z" }, + { url = "https://files.pythonhosted.org/packages/ce/2c/5867b14a81dc217b56d95a9f2a40fdbc56a1ab0181b80132beeecbd4b2d6/rpds_py-0.27.1-cp313-cp313-win_amd64.whl", hash = "sha256:f9025faafc62ed0b75a53e541895ca272815bec18abe2249ff6501c8f2e12b83", size = 232034, upload_time = "2025-08-27T12:13:50.11Z" }, + { url = "https://files.pythonhosted.org/packages/c7/78/3958f3f018c01923823f1e47f1cc338e398814b92d83cd278364446fac66/rpds_py-0.27.1-cp313-cp313-win_arm64.whl", hash = "sha256:ed10dc32829e7d222b7d3b93136d25a406ba9788f6a7ebf6809092da1f4d279d", size = 222392, upload_time = "2025-08-27T12:13:52.587Z" }, + { url = "https://files.pythonhosted.org/packages/01/76/1cdf1f91aed5c3a7bf2eba1f1c4e4d6f57832d73003919a20118870ea659/rpds_py-0.27.1-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:92022bbbad0d4426e616815b16bc4127f83c9a74940e1ccf3cfe0b387aba0228", size = 358355, upload_time = "2025-08-27T12:13:54.012Z" }, + { url = "https://files.pythonhosted.org/packages/c3/6f/bf142541229374287604caf3bb2a4ae17f0a580798fd72d3b009b532db4e/rpds_py-0.27.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:47162fdab9407ec3f160805ac3e154df042e577dd53341745fc7fb3f625e6d92", size = 342138, upload_time = "2025-08-27T12:13:55.791Z" }, + { url = "https://files.pythonhosted.org/packages/1a/77/355b1c041d6be40886c44ff5e798b4e2769e497b790f0f7fd1e78d17e9a8/rpds_py-0.27.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb89bec23fddc489e5d78b550a7b773557c9ab58b7946154a10a6f7a214a48b2", size = 380247, upload_time = "2025-08-27T12:13:57.683Z" }, + { url = "https://files.pythonhosted.org/packages/d6/a4/d9cef5c3946ea271ce2243c51481971cd6e34f21925af2783dd17b26e815/rpds_py-0.27.1-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e48af21883ded2b3e9eb48cb7880ad8598b31ab752ff3be6457001d78f416723", size = 390699, upload_time = "2025-08-27T12:13:59.137Z" }, + { url = "https://files.pythonhosted.org/packages/3a/06/005106a7b8c6c1a7e91b73169e49870f4af5256119d34a361ae5240a0c1d/rpds_py-0.27.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6f5b7bd8e219ed50299e58551a410b64daafb5017d54bbe822e003856f06a802", size = 521852, upload_time = "2025-08-27T12:14:00.583Z" }, + { url = "https://files.pythonhosted.org/packages/e5/3e/50fb1dac0948e17a02eb05c24510a8fe12d5ce8561c6b7b7d1339ab7ab9c/rpds_py-0.27.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:08f1e20bccf73b08d12d804d6e1c22ca5530e71659e6673bce31a6bb71c1e73f", size = 402582, upload_time = "2025-08-27T12:14:02.034Z" }, + { url = "https://files.pythonhosted.org/packages/cb/b0/f4e224090dc5b0ec15f31a02d746ab24101dd430847c4d99123798661bfc/rpds_py-0.27.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0dc5dceeaefcc96dc192e3a80bbe1d6c410c469e97bdd47494a7d930987f18b2", size = 384126, upload_time = "2025-08-27T12:14:03.437Z" }, + { url = "https://files.pythonhosted.org/packages/54/77/ac339d5f82b6afff1df8f0fe0d2145cc827992cb5f8eeb90fc9f31ef7a63/rpds_py-0.27.1-cp313-cp313t-manylinux_2_31_riscv64.whl", hash = "sha256:d76f9cc8665acdc0c9177043746775aa7babbf479b5520b78ae4002d889f5c21", size = 399486, upload_time = "2025-08-27T12:14:05.443Z" }, + { url = "https://files.pythonhosted.org/packages/d6/29/3e1c255eee6ac358c056a57d6d6869baa00a62fa32eea5ee0632039c50a3/rpds_py-0.27.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:134fae0e36022edad8290a6661edf40c023562964efea0cc0ec7f5d392d2aaef", size = 414832, upload_time = "2025-08-27T12:14:06.902Z" }, + { url = "https://files.pythonhosted.org/packages/3f/db/6d498b844342deb3fa1d030598db93937a9964fcf5cb4da4feb5f17be34b/rpds_py-0.27.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:eb11a4f1b2b63337cfd3b4d110af778a59aae51c81d195768e353d8b52f88081", size = 557249, upload_time = "2025-08-27T12:14:08.37Z" }, + { url = "https://files.pythonhosted.org/packages/60/f3/690dd38e2310b6f68858a331399b4d6dbb9132c3e8ef8b4333b96caf403d/rpds_py-0.27.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:13e608ac9f50a0ed4faec0e90ece76ae33b34c0e8656e3dceb9a7db994c692cd", size = 587356, upload_time = "2025-08-27T12:14:10.034Z" }, + { url = "https://files.pythonhosted.org/packages/86/e3/84507781cccd0145f35b1dc32c72675200c5ce8d5b30f813e49424ef68fc/rpds_py-0.27.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:dd2135527aa40f061350c3f8f89da2644de26cd73e4de458e79606384f4f68e7", size = 555300, upload_time = "2025-08-27T12:14:11.783Z" }, + { url = "https://files.pythonhosted.org/packages/e5/ee/375469849e6b429b3516206b4580a79e9ef3eb12920ddbd4492b56eaacbe/rpds_py-0.27.1-cp313-cp313t-win32.whl", hash = "sha256:3020724ade63fe320a972e2ffd93b5623227e684315adce194941167fee02688", size = 216714, upload_time = "2025-08-27T12:14:13.629Z" }, + { url = "https://files.pythonhosted.org/packages/21/87/3fc94e47c9bd0742660e84706c311a860dcae4374cf4a03c477e23ce605a/rpds_py-0.27.1-cp313-cp313t-win_amd64.whl", hash = "sha256:8ee50c3e41739886606388ba3ab3ee2aae9f35fb23f833091833255a31740797", size = 228943, upload_time = "2025-08-27T12:14:14.937Z" }, + { url = "https://files.pythonhosted.org/packages/70/36/b6e6066520a07cf029d385de869729a895917b411e777ab1cde878100a1d/rpds_py-0.27.1-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:acb9aafccaae278f449d9c713b64a9e68662e7799dbd5859e2c6b3c67b56d334", size = 362472, upload_time = "2025-08-27T12:14:16.333Z" }, + { url = "https://files.pythonhosted.org/packages/af/07/b4646032e0dcec0df9c73a3bd52f63bc6c5f9cda992f06bd0e73fe3fbebd/rpds_py-0.27.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:b7fb801aa7f845ddf601c49630deeeccde7ce10065561d92729bfe81bd21fb33", size = 345676, upload_time = "2025-08-27T12:14:17.764Z" }, + { url = "https://files.pythonhosted.org/packages/b0/16/2f1003ee5d0af4bcb13c0cf894957984c32a6751ed7206db2aee7379a55e/rpds_py-0.27.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fe0dd05afb46597b9a2e11c351e5e4283c741237e7f617ffb3252780cca9336a", size = 385313, upload_time = "2025-08-27T12:14:19.829Z" }, + { url = "https://files.pythonhosted.org/packages/05/cd/7eb6dd7b232e7f2654d03fa07f1414d7dfc980e82ba71e40a7c46fd95484/rpds_py-0.27.1-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b6dfb0e058adb12d8b1d1b25f686e94ffa65d9995a5157afe99743bf7369d62b", size = 399080, upload_time = "2025-08-27T12:14:21.531Z" }, + { url = "https://files.pythonhosted.org/packages/20/51/5829afd5000ec1cb60f304711f02572d619040aa3ec033d8226817d1e571/rpds_py-0.27.1-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ed090ccd235f6fa8bb5861684567f0a83e04f52dfc2e5c05f2e4b1309fcf85e7", size = 523868, upload_time = "2025-08-27T12:14:23.485Z" }, + { url = "https://files.pythonhosted.org/packages/05/2c/30eebca20d5db95720ab4d2faec1b5e4c1025c473f703738c371241476a2/rpds_py-0.27.1-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bf876e79763eecf3e7356f157540d6a093cef395b65514f17a356f62af6cc136", size = 408750, upload_time = "2025-08-27T12:14:24.924Z" }, + { url = "https://files.pythonhosted.org/packages/90/1a/cdb5083f043597c4d4276eae4e4c70c55ab5accec078da8611f24575a367/rpds_py-0.27.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:12ed005216a51b1d6e2b02a7bd31885fe317e45897de81d86dcce7d74618ffff", size = 387688, upload_time = "2025-08-27T12:14:27.537Z" }, + { url = "https://files.pythonhosted.org/packages/7c/92/cf786a15320e173f945d205ab31585cc43969743bb1a48b6888f7a2b0a2d/rpds_py-0.27.1-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:ee4308f409a40e50593c7e3bb8cbe0b4d4c66d1674a316324f0c2f5383b486f9", size = 407225, upload_time = "2025-08-27T12:14:28.981Z" }, + { url = "https://files.pythonhosted.org/packages/33/5c/85ee16df5b65063ef26017bef33096557a4c83fbe56218ac7cd8c235f16d/rpds_py-0.27.1-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0b08d152555acf1f455154d498ca855618c1378ec810646fcd7c76416ac6dc60", size = 423361, upload_time = "2025-08-27T12:14:30.469Z" }, + { url = "https://files.pythonhosted.org/packages/4b/8e/1c2741307fcabd1a334ecf008e92c4f47bb6f848712cf15c923becfe82bb/rpds_py-0.27.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:dce51c828941973a5684d458214d3a36fcd28da3e1875d659388f4f9f12cc33e", size = 562493, upload_time = "2025-08-27T12:14:31.987Z" }, + { url = "https://files.pythonhosted.org/packages/04/03/5159321baae9b2222442a70c1f988cbbd66b9be0675dd3936461269be360/rpds_py-0.27.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:c1476d6f29eb81aa4151c9a31219b03f1f798dc43d8af1250a870735516a1212", size = 592623, upload_time = "2025-08-27T12:14:33.543Z" }, + { url = "https://files.pythonhosted.org/packages/ff/39/c09fd1ad28b85bc1d4554a8710233c9f4cefd03d7717a1b8fbfd171d1167/rpds_py-0.27.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:3ce0cac322b0d69b63c9cdb895ee1b65805ec9ffad37639f291dd79467bee675", size = 558800, upload_time = "2025-08-27T12:14:35.436Z" }, + { url = "https://files.pythonhosted.org/packages/c5/d6/99228e6bbcf4baa764b18258f519a9035131d91b538d4e0e294313462a98/rpds_py-0.27.1-cp314-cp314-win32.whl", hash = "sha256:dfbfac137d2a3d0725758cd141f878bf4329ba25e34979797c89474a89a8a3a3", size = 221943, upload_time = "2025-08-27T12:14:36.898Z" }, + { url = "https://files.pythonhosted.org/packages/be/07/c802bc6b8e95be83b79bdf23d1aa61d68324cb1006e245d6c58e959e314d/rpds_py-0.27.1-cp314-cp314-win_amd64.whl", hash = "sha256:a6e57b0abfe7cc513450fcf529eb486b6e4d3f8aee83e92eb5f1ef848218d456", size = 233739, upload_time = "2025-08-27T12:14:38.386Z" }, + { url = "https://files.pythonhosted.org/packages/c8/89/3e1b1c16d4c2d547c5717377a8df99aee8099ff050f87c45cb4d5fa70891/rpds_py-0.27.1-cp314-cp314-win_arm64.whl", hash = "sha256:faf8d146f3d476abfee026c4ae3bdd9ca14236ae4e4c310cbd1cf75ba33d24a3", size = 223120, upload_time = "2025-08-27T12:14:39.82Z" }, + { url = "https://files.pythonhosted.org/packages/62/7e/dc7931dc2fa4a6e46b2a4fa744a9fe5c548efd70e0ba74f40b39fa4a8c10/rpds_py-0.27.1-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:ba81d2b56b6d4911ce735aad0a1d4495e808b8ee4dc58715998741a26874e7c2", size = 358944, upload_time = "2025-08-27T12:14:41.199Z" }, + { url = "https://files.pythonhosted.org/packages/e6/22/4af76ac4e9f336bfb1a5f240d18a33c6b2fcaadb7472ac7680576512b49a/rpds_py-0.27.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:84f7d509870098de0e864cad0102711c1e24e9b1a50ee713b65928adb22269e4", size = 342283, upload_time = "2025-08-27T12:14:42.699Z" }, + { url = "https://files.pythonhosted.org/packages/1c/15/2a7c619b3c2272ea9feb9ade67a45c40b3eeb500d503ad4c28c395dc51b4/rpds_py-0.27.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9e960fc78fecd1100539f14132425e1d5fe44ecb9239f8f27f079962021523e", size = 380320, upload_time = "2025-08-27T12:14:44.157Z" }, + { url = "https://files.pythonhosted.org/packages/a2/7d/4c6d243ba4a3057e994bb5bedd01b5c963c12fe38dde707a52acdb3849e7/rpds_py-0.27.1-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:62f85b665cedab1a503747617393573995dac4600ff51869d69ad2f39eb5e817", size = 391760, upload_time = "2025-08-27T12:14:45.845Z" }, + { url = "https://files.pythonhosted.org/packages/b4/71/b19401a909b83bcd67f90221330bc1ef11bc486fe4e04c24388d28a618ae/rpds_py-0.27.1-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fed467af29776f6556250c9ed85ea5a4dd121ab56a5f8b206e3e7a4c551e48ec", size = 522476, upload_time = "2025-08-27T12:14:47.364Z" }, + { url = "https://files.pythonhosted.org/packages/e4/44/1a3b9715c0455d2e2f0f6df5ee6d6f5afdc423d0773a8a682ed2b43c566c/rpds_py-0.27.1-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f2729615f9d430af0ae6b36cf042cb55c0936408d543fb691e1a9e36648fd35a", size = 403418, upload_time = "2025-08-27T12:14:49.991Z" }, + { url = "https://files.pythonhosted.org/packages/1c/4b/fb6c4f14984eb56673bc868a66536f53417ddb13ed44b391998100a06a96/rpds_py-0.27.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1b207d881a9aef7ba753d69c123a35d96ca7cb808056998f6b9e8747321f03b8", size = 384771, upload_time = "2025-08-27T12:14:52.159Z" }, + { url = "https://files.pythonhosted.org/packages/c0/56/d5265d2d28b7420d7b4d4d85cad8ef891760f5135102e60d5c970b976e41/rpds_py-0.27.1-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:639fd5efec029f99b79ae47e5d7e00ad8a773da899b6309f6786ecaf22948c48", size = 400022, upload_time = "2025-08-27T12:14:53.859Z" }, + { url = "https://files.pythonhosted.org/packages/8f/e9/9f5fc70164a569bdd6ed9046486c3568d6926e3a49bdefeeccfb18655875/rpds_py-0.27.1-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fecc80cb2a90e28af8a9b366edacf33d7a91cbfe4c2c4544ea1246e949cfebeb", size = 416787, upload_time = "2025-08-27T12:14:55.673Z" }, + { url = "https://files.pythonhosted.org/packages/d4/64/56dd03430ba491db943a81dcdef115a985aac5f44f565cd39a00c766d45c/rpds_py-0.27.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:42a89282d711711d0a62d6f57d81aa43a1368686c45bc1c46b7f079d55692734", size = 557538, upload_time = "2025-08-27T12:14:57.245Z" }, + { url = "https://files.pythonhosted.org/packages/3f/36/92cc885a3129993b1d963a2a42ecf64e6a8e129d2c7cc980dbeba84e55fb/rpds_py-0.27.1-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:cf9931f14223de59551ab9d38ed18d92f14f055a5f78c1d8ad6493f735021bbb", size = 588512, upload_time = "2025-08-27T12:14:58.728Z" }, + { url = "https://files.pythonhosted.org/packages/dd/10/6b283707780a81919f71625351182b4f98932ac89a09023cb61865136244/rpds_py-0.27.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:f39f58a27cc6e59f432b568ed8429c7e1641324fbe38131de852cd77b2d534b0", size = 555813, upload_time = "2025-08-27T12:15:00.334Z" }, + { url = "https://files.pythonhosted.org/packages/04/2e/30b5ea18c01379da6272a92825dd7e53dc9d15c88a19e97932d35d430ef7/rpds_py-0.27.1-cp314-cp314t-win32.whl", hash = "sha256:d5fa0ee122dc09e23607a28e6d7b150da16c662e66409bbe85230e4c85bb528a", size = 217385, upload_time = "2025-08-27T12:15:01.937Z" }, + { url = "https://files.pythonhosted.org/packages/32/7d/97119da51cb1dd3f2f3c0805f155a3aa4a95fa44fe7d78ae15e69edf4f34/rpds_py-0.27.1-cp314-cp314t-win_amd64.whl", hash = "sha256:6567d2bb951e21232c2f660c24cf3470bb96de56cdcb3f071a83feeaff8a2772", size = 230097, upload_time = "2025-08-27T12:15:03.961Z" }, +] + +[[package]] +name = "ruamel-yaml" +version = "0.18.15" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ruamel-yaml-clib", marker = "python_full_version < '3.14' and platform_python_implementation == 'CPython'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3e/db/f3950f5e5031b618aae9f423a39bf81a55c148aecd15a34527898e752cf4/ruamel.yaml-0.18.15.tar.gz", hash = "sha256:dbfca74b018c4c3fba0b9cc9ee33e53c371194a9000e694995e620490fd40700", size = 146865, upload_time = "2025-08-19T11:15:10.694Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/e5/f2a0621f1781b76a38194acae72f01e37b1941470407345b6e8653ad7640/ruamel.yaml-0.18.15-py3-none-any.whl", hash = "sha256:148f6488d698b7a5eded5ea793a025308b25eca97208181b6a026037f391f701", size = 119702, upload_time = "2025-08-19T11:15:07.696Z" }, +] + +[[package]] +name = "ruamel-yaml-clib" +version = "0.2.14" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/e9/39ec4d4b3f91188fad1842748f67d4e749c77c37e353c4e545052ee8e893/ruamel.yaml.clib-0.2.14.tar.gz", hash = "sha256:803f5044b13602d58ea378576dd75aa759f52116a0232608e8fdada4da33752e", size = 225394, upload_time = "2025-09-22T19:51:23.753Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b4/42/ccfb34a25289afbbc42017e4d3d4288e61d35b2e00cfc6b92974a6a1f94b/ruamel.yaml.clib-0.2.14-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:6aeadc170090ff1889f0d2c3057557f9cd71f975f17535c26a5d37af98f19c27", size = 271775, upload_time = "2025-09-23T14:24:12.771Z" }, + { url = "https://files.pythonhosted.org/packages/82/73/e628a92e80197ff6a79ab81ec3fa00d4cc082d58ab78d3337b7ba7043301/ruamel.yaml.clib-0.2.14-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:5e56ac47260c0eed992789fa0b8efe43404a9adb608608631a948cee4fc2b052", size = 138842, upload_time = "2025-09-22T19:50:49.156Z" }, + { url = "https://files.pythonhosted.org/packages/2b/c5/346c7094344a60419764b4b1334d9e0285031c961176ff88ffb652405b0c/ruamel.yaml.clib-0.2.14-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:a911aa73588d9a8b08d662b9484bc0567949529824a55d3885b77e8dd62a127a", size = 647404, upload_time = "2025-09-22T19:50:52.921Z" }, + { url = "https://files.pythonhosted.org/packages/df/99/65080c863eb06d4498de3d6c86f3e90595e02e159fd8529f1565f56cfe2c/ruamel.yaml.clib-0.2.14-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a05ba88adf3d7189a974b2de7a9d56731548d35dc0a822ec3dc669caa7019b29", size = 753141, upload_time = "2025-09-22T19:50:50.294Z" }, + { url = "https://files.pythonhosted.org/packages/3d/e3/0de85f3e3333f8e29e4b10244374a202a87665d1131798946ee22cf05c7c/ruamel.yaml.clib-0.2.14-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fb04c5650de6668b853623eceadcdb1a9f2fee381f5d7b6bc842ee7c239eeec4", size = 703477, upload_time = "2025-09-22T19:50:51.508Z" }, + { url = "https://files.pythonhosted.org/packages/d9/25/0d2f09d8833c7fd77ab8efeff213093c16856479a9d293180a0d89f6bed9/ruamel.yaml.clib-0.2.14-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:df3ec9959241d07bc261f4983d25a1205ff37703faf42b474f15d54d88b4f8c9", size = 741157, upload_time = "2025-09-23T18:42:50.408Z" }, + { url = "https://files.pythonhosted.org/packages/d3/8c/959f10c2e2153cbdab834c46e6954b6dd9e3b109c8f8c0a3cf1618310985/ruamel.yaml.clib-0.2.14-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:fbc08c02e9b147a11dfcaa1ac8a83168b699863493e183f7c0c8b12850b7d259", size = 745859, upload_time = "2025-09-22T19:50:54.497Z" }, + { url = "https://files.pythonhosted.org/packages/ed/6b/e580a7c18b485e1a5f30a32cda96b20364b0ba649d9d2baaf72f8bd21f83/ruamel.yaml.clib-0.2.14-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c099cafc1834d3c5dac305865d04235f7c21c167c8dd31ebc3d6bbc357e2f023", size = 770200, upload_time = "2025-09-22T19:50:55.718Z" }, + { url = "https://files.pythonhosted.org/packages/ef/44/3455eebc761dc8e8fdced90f2b0a3fa61e32ba38b50de4130e2d57db0f21/ruamel.yaml.clib-0.2.14-cp312-cp312-win32.whl", hash = "sha256:b5b0f7e294700b615a3bcf6d28b26e6da94e8eba63b079f4ec92e9ba6c0d6b54", size = 98829, upload_time = "2025-09-22T19:50:58.895Z" }, + { url = "https://files.pythonhosted.org/packages/76/ab/5121f7f3b651db93de546f8c982c241397aad0a4765d793aca1dac5eadee/ruamel.yaml.clib-0.2.14-cp312-cp312-win_amd64.whl", hash = "sha256:a37f40a859b503304dd740686359fcf541d6fb3ff7fc10f539af7f7150917c68", size = 115570, upload_time = "2025-09-22T19:50:57.981Z" }, + { url = "https://files.pythonhosted.org/packages/d7/ae/e3811f05415594025e96000349d3400978adaed88d8f98d494352d9761ee/ruamel.yaml.clib-0.2.14-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7e4f9da7e7549946e02a6122dcad00b7c1168513acb1f8a726b1aaf504a99d32", size = 269205, upload_time = "2025-09-23T14:24:15.06Z" }, + { url = "https://files.pythonhosted.org/packages/72/06/7d51f4688d6d72bb72fa74254e1593c4f5ebd0036be5b41fe39315b275e9/ruamel.yaml.clib-0.2.14-cp313-cp313-macosx_15_0_arm64.whl", hash = "sha256:dd7546c851e59c06197a7c651335755e74aa383a835878ca86d2c650c07a2f85", size = 137417, upload_time = "2025-09-22T19:50:59.82Z" }, + { url = "https://files.pythonhosted.org/packages/5a/08/b4499234a420ef42960eeb05585df5cc7eb25ccb8c980490b079e6367050/ruamel.yaml.clib-0.2.14-cp313-cp313-manylinux2014_aarch64.whl", hash = "sha256:1c1acc3a0209ea9042cc3cfc0790edd2eddd431a2ec3f8283d081e4d5018571e", size = 642558, upload_time = "2025-09-22T19:51:03.388Z" }, + { url = "https://files.pythonhosted.org/packages/b6/ba/1975a27dedf1c4c33306ee67c948121be8710b19387aada29e2f139c43ee/ruamel.yaml.clib-0.2.14-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2070bf0ad1540d5c77a664de07ebcc45eebd1ddcab71a7a06f26936920692beb", size = 744087, upload_time = "2025-09-22T19:51:00.897Z" }, + { url = "https://files.pythonhosted.org/packages/20/15/8a19a13d27f3bd09fa18813add8380a29115a47b553845f08802959acbce/ruamel.yaml.clib-0.2.14-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9bd8fe07f49c170e09d76773fb86ad9135e0beee44f36e1576a201b0676d3d1d", size = 699709, upload_time = "2025-09-22T19:51:02.075Z" }, + { url = "https://files.pythonhosted.org/packages/19/ee/8d6146a079ad21e534b5083c9ee4a4c8bec42f79cf87594b60978286b39a/ruamel.yaml.clib-0.2.14-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ff86876889ea478b1381089e55cf9e345707b312beda4986f823e1d95e8c0f59", size = 708926, upload_time = "2025-09-23T18:42:51.707Z" }, + { url = "https://files.pythonhosted.org/packages/a9/f5/426b714abdc222392e68f3b8ad323930d05a214a27c7e7a0f06c69126401/ruamel.yaml.clib-0.2.14-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:1f118b707eece8cf84ecbc3e3ec94d9db879d85ed608f95870d39b2d2efa5dca", size = 740202, upload_time = "2025-09-22T19:51:04.673Z" }, + { url = "https://files.pythonhosted.org/packages/3d/ac/3c5c2b27a183f4fda8a57c82211721c016bcb689a4a175865f7646db9f94/ruamel.yaml.clib-0.2.14-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b30110b29484adc597df6bd92a37b90e63a8c152ca8136aad100a02f8ba6d1b6", size = 765196, upload_time = "2025-09-22T19:51:05.916Z" }, + { url = "https://files.pythonhosted.org/packages/92/2e/06f56a71fd55021c993ed6e848c9b2e5e9cfce180a42179f0ddd28253f7c/ruamel.yaml.clib-0.2.14-cp313-cp313-win32.whl", hash = "sha256:f4e97a1cf0b7a30af9e1d9dad10a5671157b9acee790d9e26996391f49b965a2", size = 98635, upload_time = "2025-09-22T19:51:08.183Z" }, + { url = "https://files.pythonhosted.org/packages/51/79/76aba16a1689b50528224b182f71097ece338e7a4ab55e84c2e73443b78a/ruamel.yaml.clib-0.2.14-cp313-cp313-win_amd64.whl", hash = "sha256:090782b5fb9d98df96509eecdbcaffd037d47389a89492320280d52f91330d78", size = 115238, upload_time = "2025-09-22T19:51:07.081Z" }, + { url = "https://files.pythonhosted.org/packages/21/e2/a59ff65c26aaf21a24eb38df777cb9af5d87ba8fc8107c163c2da9d1e85e/ruamel.yaml.clib-0.2.14-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:7df6f6e9d0e33c7b1d435defb185095386c469109de723d514142632a7b9d07f", size = 271441, upload_time = "2025-09-23T14:24:16.498Z" }, + { url = "https://files.pythonhosted.org/packages/6b/fa/3234f913fe9a6525a7b97c6dad1f51e72b917e6872e051a5e2ffd8b16fbb/ruamel.yaml.clib-0.2.14-cp314-cp314-macosx_15_0_arm64.whl", hash = "sha256:70eda7703b8126f5e52fcf276e6c0f40b0d314674f896fc58c47b0aef2b9ae83", size = 137970, upload_time = "2025-09-22T19:51:09.472Z" }, + { url = "https://files.pythonhosted.org/packages/ef/ec/4edbf17ac2c87fa0845dd366ef8d5852b96eb58fcd65fc1ecf5fe27b4641/ruamel.yaml.clib-0.2.14-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:a0cb71ccc6ef9ce36eecb6272c81afdc2f565950cdcec33ae8e6cd8f7fc86f27", size = 739639, upload_time = "2025-09-22T19:51:10.566Z" }, + { url = "https://files.pythonhosted.org/packages/15/18/b0e1fafe59051de9e79cdd431863b03593ecfa8341c110affad7c8121efc/ruamel.yaml.clib-0.2.14-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:e7cb9ad1d525d40f7d87b6df7c0ff916a66bc52cb61b66ac1b2a16d0c1b07640", size = 764456, upload_time = "2025-09-22T19:51:11.736Z" }, +] + +[[package]] +name = "secretstorage" +version = "3.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "jeepney" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/31/9f/11ef35cf1027c1339552ea7bfe6aaa74a8516d8b5caf6e7d338daf54fd80/secretstorage-3.4.0.tar.gz", hash = "sha256:c46e216d6815aff8a8a18706a2fbfd8d53fcbb0dce99301881687a1b0289ef7c", size = 19748, upload_time = "2025-09-09T16:42:13.859Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/91/ff/2e2eed29e02c14a5cb6c57f09b2d5b40e65d6cc71f45b52e0be295ccbc2f/secretstorage-3.4.0-py3-none-any.whl", hash = "sha256:0e3b6265c2c63509fb7415717607e4b2c9ab767b7f344a57473b779ca13bd02e", size = 15272, upload_time = "2025-09-09T16:42:12.744Z" }, +] + +[[package]] +name = "semantic-version" +version = "2.10.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7d/31/f2289ce78b9b473d582568c234e104d2a342fd658cc288a7553d83bb8595/semantic_version-2.10.0.tar.gz", hash = "sha256:bdabb6d336998cbb378d4b9db3a4b56a1e3235701dc05ea2690d9a997ed5041c", size = 52289, upload_time = "2022-05-26T13:35:23.454Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/23/8146aad7d88f4fcb3a6218f41a60f6c2d4e3a72de72da1825dc7c8f7877c/semantic_version-2.10.0-py2.py3-none-any.whl", hash = "sha256:de78a3b8e0feda74cabc54aab2da702113e33ac9d9eb9d2389bcf1f58b7d9177", size = 15552, upload_time = "2022-05-26T13:35:21.206Z" }, +] + +[[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, 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, upload_time = "2024-12-04T17:35:26.475Z" }, +] + +[[package]] +name = "tenacity" +version = "9.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0a/d4/2b0cd0fe285e14b36db076e78c93766ff1d529d70408bd1d2a5a84f1d929/tenacity-9.1.2.tar.gz", hash = "sha256:1169d376c297e7de388d18b4481760d478b0e99a777cad3a9c86e556f4b697cb", size = 48036, upload_time = "2025-04-02T08:25:09.966Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/30/643397144bfbfec6f6ef821f36f33e57d35946c44a2352d3c9f0ae847619/tenacity-9.1.2-py3-none-any.whl", hash = "sha256:f77bf36710d8b73a50b2dd155c97b870017ad21afe6ab300326b0371b3b05138", size = 28248, upload_time = "2025-04-02T08:25:07.678Z" }, +] + +[[package]] +name = "tensorstore" +version = "0.1.77" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ml-dtypes" }, + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/48/4c/7db3b759e38e14c5eafeada78705f347f42a9ba132914a2ccad60bce5605/tensorstore-0.1.77.tar.gz", hash = "sha256:5ae62828503cea71e64d808bda959877ed75ea23f1adffca903635b842acc1e8", size = 6880812, upload_time = "2025-09-20T00:19:02.497Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a8/d4/1545f47b496c3eff088e500f3396de6185e33deb4170ac70afd42a98da17/tensorstore-0.1.77-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:90417e8c499d3aac0359bf990abad1b60892cd5c868f288115d546aa5dbe7ace", size = 15727039, upload_time = "2025-09-20T00:18:36.589Z" }, + { url = "https://files.pythonhosted.org/packages/e0/94/cf104fde7ffd1e4726e48ab15a9a587e68b741a9ca366739041f5702c794/tensorstore-0.1.77-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a654468acb816c0e8cf0a1443eb0956e76f4e1a2a4fe75ab06ea504161190755", size = 13781960, upload_time = "2025-09-20T00:18:39.504Z" }, + { url = "https://files.pythonhosted.org/packages/16/ea/0fd3ec6d9d1e0a00aae5174e9c44ea00bfd06208f820262425c6b120e76f/tensorstore-0.1.77-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b8e68accbcfbc68900367028971066adb927d0b302eba387271957545d0c0ec1", size = 17701149, upload_time = "2025-09-20T00:18:41.94Z" }, + { url = "https://files.pythonhosted.org/packages/19/31/94bb41faf66eaeead8f1930b7836a3d01e72b73f4346f602f31a9324b347/tensorstore-0.1.77-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7ce520277b32397cfd0bc812751cc9c414d12488ecbb33efe9fc50979b73a80f", size = 19536583, upload_time = "2025-09-20T00:18:44.836Z" }, + { url = "https://files.pythonhosted.org/packages/5a/02/1931b4f854ec275361cba62b7af76064153570f732dc0ea02b220077ba57/tensorstore-0.1.77-cp312-cp312-win_amd64.whl", hash = "sha256:e55bd02c0a1163f4565f98c8b41837b72ffd0c27e9f8a4d3dcc7018ce17a2c1a", size = 12710352, upload_time = "2025-09-20T00:18:47.737Z" }, + { url = "https://files.pythonhosted.org/packages/44/c2/e0f185bd75e9881c0c35df57dd89c528ef750f8f4ab7fb639ffd415e7589/tensorstore-0.1.77-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:9b4e21b09acd01bde8660939d1b2f52a9179571e1bdfa1e8d2cc88b1cadf5d78", size = 15726851, upload_time = "2025-09-20T00:18:50.117Z" }, + { url = "https://files.pythonhosted.org/packages/ce/94/42703000135524901a120fc974c1b487309d1e3264071bc117a57f38316d/tensorstore-0.1.77-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f383d8d1f7fd0babd2c03851ab57738782f35f604d29a7cf463f9875e3584613", size = 13782161, upload_time = "2025-09-20T00:18:52.529Z" }, + { url = "https://files.pythonhosted.org/packages/43/c9/36611dcb2e5007d1b7405f44068d1c2839f6233fc0c4bdead56a8ec24c31/tensorstore-0.1.77-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:351f0f73ed2b57a561b0ffd32ab9188d65adc0a85916b23f8355a5df50dbac2e", size = 17701404, upload_time = "2025-09-20T00:18:54.929Z" }, + { url = "https://files.pythonhosted.org/packages/c1/42/598560fe23d04c0ae160b8f9754c3887893e401305fd50dd7d70e08c4b0b/tensorstore-0.1.77-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ed487f313af8e07cc3caa372120621f4029778f9e5a1c026efb915dabea555a2", size = 19537201, upload_time = "2025-09-20T00:18:57.504Z" }, + { url = "https://files.pythonhosted.org/packages/22/5d/bf02faa525ed54b37d1f6d4a1463e9986014ccf26da3cef77fe1efb8c18b/tensorstore-0.1.77-cp313-cp313-win_amd64.whl", hash = "sha256:416a5f076260e852afeaf7d30e567b08a28dd3af913d38a27f112f599e53313a", size = 12710186, upload_time = "2025-09-20T00:19:00.199Z" }, +] + +[[package]] +name = "threadpoolctl" +version = "3.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b7/4d/08c89e34946fce2aec4fbb45c9016efd5f4d7f24af8e5d93296e935631d8/threadpoolctl-3.6.0.tar.gz", hash = "sha256:8ab8b4aa3491d812b623328249fab5302a68d2d71745c8a4c719a2fcaba9f44e", size = 21274, upload_time = "2025-03-13T13:49:23.031Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/32/d5/f9a850d79b0851d1d4ef6456097579a9005b31fea68726a4ae5f2d82ddd9/threadpoolctl-3.6.0-py3-none-any.whl", hash = "sha256:43a0b8fd5a2928500110039e43a5eed8480b918967083ea48dc3ab9f13c4a7fb", size = 18638, upload_time = "2025-03-13T13:49:21.846Z" }, +] + +[[package]] +name = "tqdm" +version = "4.67.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a8/4b/29b4ef32e036bb34e4ab51796dd745cdba7ed47ad142a9f4a1eb8e0c744d/tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2", size = 169737, upload_time = "2024-11-24T20:12:22.481Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2", size = 78540, upload_time = "2024-11-24T20:12:19.698Z" }, +] + +[[package]] +name = "types-python-dateutil" +version = "2.9.0.20250822" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0c/0a/775f8551665992204c756be326f3575abba58c4a3a52eef9909ef4536428/types_python_dateutil-2.9.0.20250822.tar.gz", hash = "sha256:84c92c34bd8e68b117bff742bc00b692a1e8531262d4507b33afcc9f7716cd53", size = 16084, upload_time = "2025-08-22T03:02:00.613Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ab/d9/a29dfa84363e88b053bf85a8b7f212a04f0d7343a4d24933baa45c06e08b/types_python_dateutil-2.9.0.20250822-py3-none-any.whl", hash = "sha256:849d52b737e10a6dc6621d2bd7940ec7c65fcb69e6aa2882acf4e56b2b508ddc", size = 17892, upload_time = "2025-08-22T03:01:59.436Z" }, +] + +[[package]] +name = "typing-extensions" +version = "4.15.0" +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, upload_time = "2025-08-25T13:49:26.313Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload_time = "2025-08-25T13:49:24.86Z" }, +] + +[[package]] +name = "typing-inspection" +version = "0.4.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/55/e3/70399cb7dd41c10ac53367ae42139cf4b1ca5f36bb3dc6c9d33acdb43655/typing_inspection-0.4.2.tar.gz", hash = "sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464", size = 75949, upload_time = "2025-10-01T02:14:41.687Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7", size = 14611, upload_time = "2025-10-01T02:14:40.154Z" }, +] + +[[package]] +name = "tzdata" +version = "2025.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/95/32/1a225d6164441be760d75c2c42e2780dc0873fe382da3e98a2e1e48361e5/tzdata-2025.2.tar.gz", hash = "sha256:b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9", size = 196380, upload_time = "2025-03-23T13:54:43.652Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5c/23/c7abc0ca0a1526a0774eca151daeb8de62ec457e77262b66b359c3c7679e/tzdata-2025.2-py2.py3-none-any.whl", hash = "sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8", size = 347839, upload_time = "2025-03-23T13:54:41.845Z" }, +] + +[[package]] +name = "uri-template" +version = "1.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/31/c7/0336f2bd0bcbada6ccef7aaa25e443c118a704f828a0620c6fa0207c1b64/uri-template-1.3.0.tar.gz", hash = "sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7", size = 21678, upload_time = "2023-06-21T01:49:05.374Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/00/3fca040d7cf8a32776d3d81a00c8ee7457e00f80c649f1e4a863c8321ae9/uri_template-1.3.0-py3-none-any.whl", hash = "sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363", size = 11140, upload_time = "2023-06-21T01:49:03.467Z" }, +] + +[[package]] +name = "urllib3" +version = "2.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/15/22/9ee70a2574a4f4599c47dd506532914ce044817c7752a79b6a51286319bc/urllib3-2.5.0.tar.gz", hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760", size = 393185, upload_time = "2025-06-18T14:07:41.644Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a7/c2/fe1e52489ae3122415c51f387e221dd0773709bad6c6cdaa599e8a2c5185/urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc", size = 129795, upload_time = "2025-06-18T14:07:40.39Z" }, +] + +[[package]] +name = "wcwidth" +version = "0.2.14" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/24/30/6b0809f4510673dc723187aeaf24c7f5459922d01e2f794277a3dfb90345/wcwidth-0.2.14.tar.gz", hash = "sha256:4d478375d31bc5395a3c55c40ccdf3354688364cd61c4f6adacaa9215d0b3605", size = 102293, upload_time = "2025-09-22T16:29:53.023Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/af/b5/123f13c975e9f27ab9c0770f514345bd406d0e8d3b7a0723af9d43f710af/wcwidth-0.2.14-py2.py3-none-any.whl", hash = "sha256:a7bb560c8aee30f9957e5f9895805edd20602f2d7f720186dfd906e82b4982e1", size = 37286, upload_time = "2025-09-22T16:29:51.641Z" }, +] + +[[package]] +name = "webcolors" +version = "24.11.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7b/29/061ec845fb58521848f3739e466efd8250b4b7b98c1b6c5bf4d40b419b7e/webcolors-24.11.1.tar.gz", hash = "sha256:ecb3d768f32202af770477b8b65f318fa4f566c22948673a977b00d589dd80f6", size = 45064, upload_time = "2024-11-11T07:43:24.224Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/60/e8/c0e05e4684d13459f93d312077a9a2efbe04d59c393bc2b8802248c908d4/webcolors-24.11.1-py3-none-any.whl", hash = "sha256:515291393b4cdf0eb19c155749a096f779f7d909f7cceea072791cb9095b92e9", size = 14934, upload_time = "2024-11-11T07:43:22.529Z" }, +] + +[[package]] +name = "wrapt" +version = "1.17.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/95/8f/aeb76c5b46e273670962298c23e7ddde79916cb74db802131d49a85e4b7d/wrapt-1.17.3.tar.gz", hash = "sha256:f66eb08feaa410fe4eebd17f2a2c8e2e46d3476e9f8c783daa8e09e0faa666d0", size = 55547, upload_time = "2025-08-12T05:53:21.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9f/41/cad1aba93e752f1f9268c77270da3c469883d56e2798e7df6240dcb2287b/wrapt-1.17.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ab232e7fdb44cdfbf55fc3afa31bcdb0d8980b9b95c38b6405df2acb672af0e0", size = 53998, upload_time = "2025-08-12T05:51:47.138Z" }, + { url = "https://files.pythonhosted.org/packages/60/f8/096a7cc13097a1869fe44efe68dace40d2a16ecb853141394047f0780b96/wrapt-1.17.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:9baa544e6acc91130e926e8c802a17f3b16fbea0fd441b5a60f5cf2cc5c3deba", size = 39020, upload_time = "2025-08-12T05:51:35.906Z" }, + { url = "https://files.pythonhosted.org/packages/33/df/bdf864b8997aab4febb96a9ae5c124f700a5abd9b5e13d2a3214ec4be705/wrapt-1.17.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6b538e31eca1a7ea4605e44f81a48aa24c4632a277431a6ed3f328835901f4fd", size = 39098, upload_time = "2025-08-12T05:51:57.474Z" }, + { url = "https://files.pythonhosted.org/packages/9f/81/5d931d78d0eb732b95dc3ddaeeb71c8bb572fb01356e9133916cd729ecdd/wrapt-1.17.3-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:042ec3bb8f319c147b1301f2393bc19dba6e176b7da446853406d041c36c7828", size = 88036, upload_time = "2025-08-12T05:52:34.784Z" }, + { url = "https://files.pythonhosted.org/packages/ca/38/2e1785df03b3d72d34fc6252d91d9d12dc27a5c89caef3335a1bbb8908ca/wrapt-1.17.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3af60380ba0b7b5aeb329bc4e402acd25bd877e98b3727b0135cb5c2efdaefe9", size = 88156, upload_time = "2025-08-12T05:52:13.599Z" }, + { url = "https://files.pythonhosted.org/packages/b3/8b/48cdb60fe0603e34e05cffda0b2a4adab81fd43718e11111a4b0100fd7c1/wrapt-1.17.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0b02e424deef65c9f7326d8c19220a2c9040c51dc165cddb732f16198c168396", size = 87102, upload_time = "2025-08-12T05:52:14.56Z" }, + { url = "https://files.pythonhosted.org/packages/3c/51/d81abca783b58f40a154f1b2c56db1d2d9e0d04fa2d4224e357529f57a57/wrapt-1.17.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:74afa28374a3c3a11b3b5e5fca0ae03bef8450d6aa3ab3a1e2c30e3a75d023dc", size = 87732, upload_time = "2025-08-12T05:52:36.165Z" }, + { url = "https://files.pythonhosted.org/packages/9e/b1/43b286ca1392a006d5336412d41663eeef1ad57485f3e52c767376ba7e5a/wrapt-1.17.3-cp312-cp312-win32.whl", hash = "sha256:4da9f45279fff3543c371d5ababc57a0384f70be244de7759c85a7f989cb4ebe", size = 36705, upload_time = "2025-08-12T05:53:07.123Z" }, + { url = "https://files.pythonhosted.org/packages/28/de/49493f962bd3c586ab4b88066e967aa2e0703d6ef2c43aa28cb83bf7b507/wrapt-1.17.3-cp312-cp312-win_amd64.whl", hash = "sha256:e71d5c6ebac14875668a1e90baf2ea0ef5b7ac7918355850c0908ae82bcb297c", size = 38877, upload_time = "2025-08-12T05:53:05.436Z" }, + { url = "https://files.pythonhosted.org/packages/f1/48/0f7102fe9cb1e8a5a77f80d4f0956d62d97034bbe88d33e94699f99d181d/wrapt-1.17.3-cp312-cp312-win_arm64.whl", hash = "sha256:604d076c55e2fdd4c1c03d06dc1a31b95130010517b5019db15365ec4a405fc6", size = 36885, upload_time = "2025-08-12T05:52:54.367Z" }, + { url = "https://files.pythonhosted.org/packages/fc/f6/759ece88472157acb55fc195e5b116e06730f1b651b5b314c66291729193/wrapt-1.17.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a47681378a0439215912ef542c45a783484d4dd82bac412b71e59cf9c0e1cea0", size = 54003, upload_time = "2025-08-12T05:51:48.627Z" }, + { url = "https://files.pythonhosted.org/packages/4f/a9/49940b9dc6d47027dc850c116d79b4155f15c08547d04db0f07121499347/wrapt-1.17.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:54a30837587c6ee3cd1a4d1c2ec5d24e77984d44e2f34547e2323ddb4e22eb77", size = 39025, upload_time = "2025-08-12T05:51:37.156Z" }, + { url = "https://files.pythonhosted.org/packages/45/35/6a08de0f2c96dcdd7fe464d7420ddb9a7655a6561150e5fc4da9356aeaab/wrapt-1.17.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:16ecf15d6af39246fe33e507105d67e4b81d8f8d2c6598ff7e3ca1b8a37213f7", size = 39108, upload_time = "2025-08-12T05:51:58.425Z" }, + { url = "https://files.pythonhosted.org/packages/0c/37/6faf15cfa41bf1f3dba80cd3f5ccc6622dfccb660ab26ed79f0178c7497f/wrapt-1.17.3-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:6fd1ad24dc235e4ab88cda009e19bf347aabb975e44fd5c2fb22a3f6e4141277", size = 88072, upload_time = "2025-08-12T05:52:37.53Z" }, + { url = "https://files.pythonhosted.org/packages/78/f2/efe19ada4a38e4e15b6dff39c3e3f3f73f5decf901f66e6f72fe79623a06/wrapt-1.17.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0ed61b7c2d49cee3c027372df5809a59d60cf1b6c2f81ee980a091f3afed6a2d", size = 88214, upload_time = "2025-08-12T05:52:15.886Z" }, + { url = "https://files.pythonhosted.org/packages/40/90/ca86701e9de1622b16e09689fc24b76f69b06bb0150990f6f4e8b0eeb576/wrapt-1.17.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:423ed5420ad5f5529db9ce89eac09c8a2f97da18eb1c870237e84c5a5c2d60aa", size = 87105, upload_time = "2025-08-12T05:52:17.914Z" }, + { url = "https://files.pythonhosted.org/packages/fd/e0/d10bd257c9a3e15cbf5523025252cc14d77468e8ed644aafb2d6f54cb95d/wrapt-1.17.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e01375f275f010fcbf7f643b4279896d04e571889b8a5b3f848423d91bf07050", size = 87766, upload_time = "2025-08-12T05:52:39.243Z" }, + { url = "https://files.pythonhosted.org/packages/e8/cf/7d848740203c7b4b27eb55dbfede11aca974a51c3d894f6cc4b865f42f58/wrapt-1.17.3-cp313-cp313-win32.whl", hash = "sha256:53e5e39ff71b3fc484df8a522c933ea2b7cdd0d5d15ae82e5b23fde87d44cbd8", size = 36711, upload_time = "2025-08-12T05:53:10.074Z" }, + { url = "https://files.pythonhosted.org/packages/57/54/35a84d0a4d23ea675994104e667ceff49227ce473ba6a59ba2c84f250b74/wrapt-1.17.3-cp313-cp313-win_amd64.whl", hash = "sha256:1f0b2f40cf341ee8cc1a97d51ff50dddb9fcc73241b9143ec74b30fc4f44f6cb", size = 38885, upload_time = "2025-08-12T05:53:08.695Z" }, + { url = "https://files.pythonhosted.org/packages/01/77/66e54407c59d7b02a3c4e0af3783168fff8e5d61def52cda8728439d86bc/wrapt-1.17.3-cp313-cp313-win_arm64.whl", hash = "sha256:7425ac3c54430f5fc5e7b6f41d41e704db073309acfc09305816bc6a0b26bb16", size = 36896, upload_time = "2025-08-12T05:52:55.34Z" }, + { url = "https://files.pythonhosted.org/packages/02/a2/cd864b2a14f20d14f4c496fab97802001560f9f41554eef6df201cd7f76c/wrapt-1.17.3-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:cf30f6e3c077c8e6a9a7809c94551203c8843e74ba0c960f4a98cd80d4665d39", size = 54132, upload_time = "2025-08-12T05:51:49.864Z" }, + { url = "https://files.pythonhosted.org/packages/d5/46/d011725b0c89e853dc44cceb738a307cde5d240d023d6d40a82d1b4e1182/wrapt-1.17.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:e228514a06843cae89621384cfe3a80418f3c04aadf8a3b14e46a7be704e4235", size = 39091, upload_time = "2025-08-12T05:51:38.935Z" }, + { url = "https://files.pythonhosted.org/packages/2e/9e/3ad852d77c35aae7ddebdbc3b6d35ec8013af7d7dddad0ad911f3d891dae/wrapt-1.17.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:5ea5eb3c0c071862997d6f3e02af1d055f381b1d25b286b9d6644b79db77657c", size = 39172, upload_time = "2025-08-12T05:51:59.365Z" }, + { url = "https://files.pythonhosted.org/packages/c3/f7/c983d2762bcce2326c317c26a6a1e7016f7eb039c27cdf5c4e30f4160f31/wrapt-1.17.3-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:281262213373b6d5e4bb4353bc36d1ba4084e6d6b5d242863721ef2bf2c2930b", size = 87163, upload_time = "2025-08-12T05:52:40.965Z" }, + { url = "https://files.pythonhosted.org/packages/e4/0f/f673f75d489c7f22d17fe0193e84b41540d962f75fce579cf6873167c29b/wrapt-1.17.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dc4a8d2b25efb6681ecacad42fca8859f88092d8732b170de6a5dddd80a1c8fa", size = 87963, upload_time = "2025-08-12T05:52:20.326Z" }, + { url = "https://files.pythonhosted.org/packages/df/61/515ad6caca68995da2fac7a6af97faab8f78ebe3bf4f761e1b77efbc47b5/wrapt-1.17.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:373342dd05b1d07d752cecbec0c41817231f29f3a89aa8b8843f7b95992ed0c7", size = 86945, upload_time = "2025-08-12T05:52:21.581Z" }, + { url = "https://files.pythonhosted.org/packages/d3/bd/4e70162ce398462a467bc09e768bee112f1412e563620adc353de9055d33/wrapt-1.17.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d40770d7c0fd5cbed9d84b2c3f2e156431a12c9a37dc6284060fb4bec0b7ffd4", size = 86857, upload_time = "2025-08-12T05:52:43.043Z" }, + { url = "https://files.pythonhosted.org/packages/2b/b8/da8560695e9284810b8d3df8a19396a6e40e7518059584a1a394a2b35e0a/wrapt-1.17.3-cp314-cp314-win32.whl", hash = "sha256:fbd3c8319de8e1dc79d346929cd71d523622da527cca14e0c1d257e31c2b8b10", size = 37178, upload_time = "2025-08-12T05:53:12.605Z" }, + { url = "https://files.pythonhosted.org/packages/db/c8/b71eeb192c440d67a5a0449aaee2310a1a1e8eca41676046f99ed2487e9f/wrapt-1.17.3-cp314-cp314-win_amd64.whl", hash = "sha256:e1a4120ae5705f673727d3253de3ed0e016f7cd78dc463db1b31e2463e1f3cf6", size = 39310, upload_time = "2025-08-12T05:53:11.106Z" }, + { url = "https://files.pythonhosted.org/packages/45/20/2cda20fd4865fa40f86f6c46ed37a2a8356a7a2fde0773269311f2af56c7/wrapt-1.17.3-cp314-cp314-win_arm64.whl", hash = "sha256:507553480670cab08a800b9463bdb881b2edeed77dc677b0a5915e6106e91a58", size = 37266, upload_time = "2025-08-12T05:52:56.531Z" }, + { url = "https://files.pythonhosted.org/packages/77/ed/dd5cf21aec36c80443c6f900449260b80e2a65cf963668eaef3b9accce36/wrapt-1.17.3-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:ed7c635ae45cfbc1a7371f708727bf74690daedc49b4dba310590ca0bd28aa8a", size = 56544, upload_time = "2025-08-12T05:51:51.109Z" }, + { url = "https://files.pythonhosted.org/packages/8d/96/450c651cc753877ad100c7949ab4d2e2ecc4d97157e00fa8f45df682456a/wrapt-1.17.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:249f88ed15503f6492a71f01442abddd73856a0032ae860de6d75ca62eed8067", size = 40283, upload_time = "2025-08-12T05:51:39.912Z" }, + { url = "https://files.pythonhosted.org/packages/d1/86/2fcad95994d9b572db57632acb6f900695a648c3e063f2cd344b3f5c5a37/wrapt-1.17.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5a03a38adec8066d5a37bea22f2ba6bbf39fcdefbe2d91419ab864c3fb515454", size = 40366, upload_time = "2025-08-12T05:52:00.693Z" }, + { url = "https://files.pythonhosted.org/packages/64/0e/f4472f2fdde2d4617975144311f8800ef73677a159be7fe61fa50997d6c0/wrapt-1.17.3-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:5d4478d72eb61c36e5b446e375bbc49ed002430d17cdec3cecb36993398e1a9e", size = 108571, upload_time = "2025-08-12T05:52:44.521Z" }, + { url = "https://files.pythonhosted.org/packages/cc/01/9b85a99996b0a97c8a17484684f206cbb6ba73c1ce6890ac668bcf3838fb/wrapt-1.17.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:223db574bb38637e8230eb14b185565023ab624474df94d2af18f1cdb625216f", size = 113094, upload_time = "2025-08-12T05:52:22.618Z" }, + { url = "https://files.pythonhosted.org/packages/25/02/78926c1efddcc7b3aa0bc3d6b33a822f7d898059f7cd9ace8c8318e559ef/wrapt-1.17.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e405adefb53a435f01efa7ccdec012c016b5a1d3f35459990afc39b6be4d5056", size = 110659, upload_time = "2025-08-12T05:52:24.057Z" }, + { url = "https://files.pythonhosted.org/packages/dc/ee/c414501ad518ac3e6fe184753632fe5e5ecacdcf0effc23f31c1e4f7bfcf/wrapt-1.17.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:88547535b787a6c9ce4086917b6e1d291aa8ed914fdd3a838b3539dc95c12804", size = 106946, upload_time = "2025-08-12T05:52:45.976Z" }, + { url = "https://files.pythonhosted.org/packages/be/44/a1bd64b723d13bb151d6cc91b986146a1952385e0392a78567e12149c7b4/wrapt-1.17.3-cp314-cp314t-win32.whl", hash = "sha256:41b1d2bc74c2cac6f9074df52b2efbef2b30bdfe5f40cb78f8ca22963bc62977", size = 38717, upload_time = "2025-08-12T05:53:15.214Z" }, + { url = "https://files.pythonhosted.org/packages/79/d9/7cfd5a312760ac4dd8bf0184a6ee9e43c33e47f3dadc303032ce012b8fa3/wrapt-1.17.3-cp314-cp314t-win_amd64.whl", hash = "sha256:73d496de46cd2cdbdbcce4ae4bcdb4afb6a11234a1df9c085249d55166b95116", size = 41334, upload_time = "2025-08-12T05:53:14.178Z" }, + { url = "https://files.pythonhosted.org/packages/46/78/10ad9781128ed2f99dbc474f43283b13fea8ba58723e98844367531c18e9/wrapt-1.17.3-cp314-cp314t-win_arm64.whl", hash = "sha256:f38e60678850c42461d4202739f9bf1e3a737c7ad283638251e79cc49effb6b6", size = 38471, upload_time = "2025-08-12T05:52:57.784Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f6/a933bd70f98e9cf3e08167fc5cd7aaaca49147e48411c0bd5ae701bb2194/wrapt-1.17.3-py3-none-any.whl", hash = "sha256:7171ae35d2c33d326ac19dd8facb1e82e5fd04ef8c6c0e394d7af55a55051c22", size = 23591, upload_time = "2025-08-12T05:53:20.674Z" }, +] + +[[package]] +name = "yarl" +version = "1.20.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "idna" }, + { name = "multidict" }, + { name = "propcache" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3c/fb/efaa23fa4e45537b827620f04cf8f3cd658b76642205162e072703a5b963/yarl-1.20.1.tar.gz", hash = "sha256:d017a4997ee50c91fd5466cef416231bb82177b93b029906cefc542ce14c35ac", size = 186428, upload_time = "2025-06-10T00:46:09.923Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5f/9a/cb7fad7d73c69f296eda6815e4a2c7ed53fc70c2f136479a91c8e5fbdb6d/yarl-1.20.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:bdcc4cd244e58593a4379fe60fdee5ac0331f8eb70320a24d591a3be197b94a9", size = 133667, upload_time = "2025-06-10T00:43:44.369Z" }, + { url = "https://files.pythonhosted.org/packages/67/38/688577a1cb1e656e3971fb66a3492501c5a5df56d99722e57c98249e5b8a/yarl-1.20.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b29a2c385a5f5b9c7d9347e5812b6f7ab267193c62d282a540b4fc528c8a9d2a", size = 91025, upload_time = "2025-06-10T00:43:46.295Z" }, + { url = "https://files.pythonhosted.org/packages/50/ec/72991ae51febeb11a42813fc259f0d4c8e0507f2b74b5514618d8b640365/yarl-1.20.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1112ae8154186dfe2de4732197f59c05a83dc814849a5ced892b708033f40dc2", size = 89709, upload_time = "2025-06-10T00:43:48.22Z" }, + { url = "https://files.pythonhosted.org/packages/99/da/4d798025490e89426e9f976702e5f9482005c548c579bdae792a4c37769e/yarl-1.20.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:90bbd29c4fe234233f7fa2b9b121fb63c321830e5d05b45153a2ca68f7d310ee", size = 352287, upload_time = "2025-06-10T00:43:49.924Z" }, + { url = "https://files.pythonhosted.org/packages/1a/26/54a15c6a567aac1c61b18aa0f4b8aa2e285a52d547d1be8bf48abe2b3991/yarl-1.20.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:680e19c7ce3710ac4cd964e90dad99bf9b5029372ba0c7cbfcd55e54d90ea819", size = 345429, upload_time = "2025-06-10T00:43:51.7Z" }, + { url = "https://files.pythonhosted.org/packages/d6/95/9dcf2386cb875b234353b93ec43e40219e14900e046bf6ac118f94b1e353/yarl-1.20.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4a979218c1fdb4246a05efc2cc23859d47c89af463a90b99b7c56094daf25a16", size = 365429, upload_time = "2025-06-10T00:43:53.494Z" }, + { url = "https://files.pythonhosted.org/packages/91/b2/33a8750f6a4bc224242a635f5f2cff6d6ad5ba651f6edcccf721992c21a0/yarl-1.20.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:255b468adf57b4a7b65d8aad5b5138dce6a0752c139965711bdcb81bc370e1b6", size = 363862, upload_time = "2025-06-10T00:43:55.766Z" }, + { url = "https://files.pythonhosted.org/packages/98/28/3ab7acc5b51f4434b181b0cee8f1f4b77a65919700a355fb3617f9488874/yarl-1.20.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a97d67108e79cfe22e2b430d80d7571ae57d19f17cda8bb967057ca8a7bf5bfd", size = 355616, upload_time = "2025-06-10T00:43:58.056Z" }, + { url = "https://files.pythonhosted.org/packages/36/a3/f666894aa947a371724ec7cd2e5daa78ee8a777b21509b4252dd7bd15e29/yarl-1.20.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8570d998db4ddbfb9a590b185a0a33dbf8aafb831d07a5257b4ec9948df9cb0a", size = 339954, upload_time = "2025-06-10T00:43:59.773Z" }, + { url = "https://files.pythonhosted.org/packages/f1/81/5f466427e09773c04219d3450d7a1256138a010b6c9f0af2d48565e9ad13/yarl-1.20.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:97c75596019baae7c71ccf1d8cc4738bc08134060d0adfcbe5642f778d1dca38", size = 365575, upload_time = "2025-06-10T00:44:02.051Z" }, + { url = "https://files.pythonhosted.org/packages/2e/e3/e4b0ad8403e97e6c9972dd587388940a032f030ebec196ab81a3b8e94d31/yarl-1.20.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:1c48912653e63aef91ff988c5432832692ac5a1d8f0fb8a33091520b5bbe19ef", size = 365061, upload_time = "2025-06-10T00:44:04.196Z" }, + { url = "https://files.pythonhosted.org/packages/ac/99/b8a142e79eb86c926f9f06452eb13ecb1bb5713bd01dc0038faf5452e544/yarl-1.20.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4c3ae28f3ae1563c50f3d37f064ddb1511ecc1d5584e88c6b7c63cf7702a6d5f", size = 364142, upload_time = "2025-06-10T00:44:06.527Z" }, + { url = "https://files.pythonhosted.org/packages/34/f2/08ed34a4a506d82a1a3e5bab99ccd930a040f9b6449e9fd050320e45845c/yarl-1.20.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c5e9642f27036283550f5f57dc6156c51084b458570b9d0d96100c8bebb186a8", size = 381894, upload_time = "2025-06-10T00:44:08.379Z" }, + { url = "https://files.pythonhosted.org/packages/92/f8/9a3fbf0968eac704f681726eff595dce9b49c8a25cd92bf83df209668285/yarl-1.20.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:2c26b0c49220d5799f7b22c6838409ee9bc58ee5c95361a4d7831f03cc225b5a", size = 383378, upload_time = "2025-06-10T00:44:10.51Z" }, + { url = "https://files.pythonhosted.org/packages/af/85/9363f77bdfa1e4d690957cd39d192c4cacd1c58965df0470a4905253b54f/yarl-1.20.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:564ab3d517e3d01c408c67f2e5247aad4019dcf1969982aba3974b4093279004", size = 374069, upload_time = "2025-06-10T00:44:12.834Z" }, + { url = "https://files.pythonhosted.org/packages/35/99/9918c8739ba271dcd935400cff8b32e3cd319eaf02fcd023d5dcd487a7c8/yarl-1.20.1-cp312-cp312-win32.whl", hash = "sha256:daea0d313868da1cf2fac6b2d3a25c6e3a9e879483244be38c8e6a41f1d876a5", size = 81249, upload_time = "2025-06-10T00:44:14.731Z" }, + { url = "https://files.pythonhosted.org/packages/eb/83/5d9092950565481b413b31a23e75dd3418ff0a277d6e0abf3729d4d1ce25/yarl-1.20.1-cp312-cp312-win_amd64.whl", hash = "sha256:48ea7d7f9be0487339828a4de0360d7ce0efc06524a48e1810f945c45b813698", size = 86710, upload_time = "2025-06-10T00:44:16.716Z" }, + { url = "https://files.pythonhosted.org/packages/8a/e1/2411b6d7f769a07687acee88a062af5833cf1966b7266f3d8dfb3d3dc7d3/yarl-1.20.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:0b5ff0fbb7c9f1b1b5ab53330acbfc5247893069e7716840c8e7d5bb7355038a", size = 131811, upload_time = "2025-06-10T00:44:18.933Z" }, + { url = "https://files.pythonhosted.org/packages/b2/27/584394e1cb76fb771371770eccad35de400e7b434ce3142c2dd27392c968/yarl-1.20.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:14f326acd845c2b2e2eb38fb1346c94f7f3b01a4f5c788f8144f9b630bfff9a3", size = 90078, upload_time = "2025-06-10T00:44:20.635Z" }, + { url = "https://files.pythonhosted.org/packages/bf/9a/3246ae92d4049099f52d9b0fe3486e3b500e29b7ea872d0f152966fc209d/yarl-1.20.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f60e4ad5db23f0b96e49c018596707c3ae89f5d0bd97f0ad3684bcbad899f1e7", size = 88748, upload_time = "2025-06-10T00:44:22.34Z" }, + { url = "https://files.pythonhosted.org/packages/a3/25/35afe384e31115a1a801fbcf84012d7a066d89035befae7c5d4284df1e03/yarl-1.20.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:49bdd1b8e00ce57e68ba51916e4bb04461746e794e7c4d4bbc42ba2f18297691", size = 349595, upload_time = "2025-06-10T00:44:24.314Z" }, + { url = "https://files.pythonhosted.org/packages/28/2d/8aca6cb2cabc8f12efcb82749b9cefecbccfc7b0384e56cd71058ccee433/yarl-1.20.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:66252d780b45189975abfed839616e8fd2dbacbdc262105ad7742c6ae58f3e31", size = 342616, upload_time = "2025-06-10T00:44:26.167Z" }, + { url = "https://files.pythonhosted.org/packages/0b/e9/1312633d16b31acf0098d30440ca855e3492d66623dafb8e25b03d00c3da/yarl-1.20.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:59174e7332f5d153d8f7452a102b103e2e74035ad085f404df2e40e663a22b28", size = 361324, upload_time = "2025-06-10T00:44:27.915Z" }, + { url = "https://files.pythonhosted.org/packages/bc/a0/688cc99463f12f7669eec7c8acc71ef56a1521b99eab7cd3abb75af887b0/yarl-1.20.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e3968ec7d92a0c0f9ac34d5ecfd03869ec0cab0697c91a45db3fbbd95fe1b653", size = 359676, upload_time = "2025-06-10T00:44:30.041Z" }, + { url = "https://files.pythonhosted.org/packages/af/44/46407d7f7a56e9a85a4c207724c9f2c545c060380718eea9088f222ba697/yarl-1.20.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d1a4fbb50e14396ba3d375f68bfe02215d8e7bc3ec49da8341fe3157f59d2ff5", size = 352614, upload_time = "2025-06-10T00:44:32.171Z" }, + { url = "https://files.pythonhosted.org/packages/b1/91/31163295e82b8d5485d31d9cf7754d973d41915cadce070491778d9c9825/yarl-1.20.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:11a62c839c3a8eac2410e951301309426f368388ff2f33799052787035793b02", size = 336766, upload_time = "2025-06-10T00:44:34.494Z" }, + { url = "https://files.pythonhosted.org/packages/b4/8e/c41a5bc482121f51c083c4c2bcd16b9e01e1cf8729e380273a952513a21f/yarl-1.20.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:041eaa14f73ff5a8986b4388ac6bb43a77f2ea09bf1913df7a35d4646db69e53", size = 364615, upload_time = "2025-06-10T00:44:36.856Z" }, + { url = "https://files.pythonhosted.org/packages/e3/5b/61a3b054238d33d70ea06ebba7e58597891b71c699e247df35cc984ab393/yarl-1.20.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:377fae2fef158e8fd9d60b4c8751387b8d1fb121d3d0b8e9b0be07d1b41e83dc", size = 360982, upload_time = "2025-06-10T00:44:39.141Z" }, + { url = "https://files.pythonhosted.org/packages/df/a3/6a72fb83f8d478cb201d14927bc8040af901811a88e0ff2da7842dd0ed19/yarl-1.20.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:1c92f4390e407513f619d49319023664643d3339bd5e5a56a3bebe01bc67ec04", size = 369792, upload_time = "2025-06-10T00:44:40.934Z" }, + { url = "https://files.pythonhosted.org/packages/7c/af/4cc3c36dfc7c077f8dedb561eb21f69e1e9f2456b91b593882b0b18c19dc/yarl-1.20.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:d25ddcf954df1754ab0f86bb696af765c5bfaba39b74095f27eececa049ef9a4", size = 382049, upload_time = "2025-06-10T00:44:42.854Z" }, + { url = "https://files.pythonhosted.org/packages/19/3a/e54e2c4752160115183a66dc9ee75a153f81f3ab2ba4bf79c3c53b33de34/yarl-1.20.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:909313577e9619dcff8c31a0ea2aa0a2a828341d92673015456b3ae492e7317b", size = 384774, upload_time = "2025-06-10T00:44:45.275Z" }, + { url = "https://files.pythonhosted.org/packages/9c/20/200ae86dabfca89060ec6447649f219b4cbd94531e425e50d57e5f5ac330/yarl-1.20.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:793fd0580cb9664548c6b83c63b43c477212c0260891ddf86809e1c06c8b08f1", size = 374252, upload_time = "2025-06-10T00:44:47.31Z" }, + { url = "https://files.pythonhosted.org/packages/83/75/11ee332f2f516b3d094e89448da73d557687f7d137d5a0f48c40ff211487/yarl-1.20.1-cp313-cp313-win32.whl", hash = "sha256:468f6e40285de5a5b3c44981ca3a319a4b208ccc07d526b20b12aeedcfa654b7", size = 81198, upload_time = "2025-06-10T00:44:49.164Z" }, + { url = "https://files.pythonhosted.org/packages/ba/ba/39b1ecbf51620b40ab402b0fc817f0ff750f6d92712b44689c2c215be89d/yarl-1.20.1-cp313-cp313-win_amd64.whl", hash = "sha256:495b4ef2fea40596bfc0affe3837411d6aa3371abcf31aac0ccc4bdd64d4ef5c", size = 86346, upload_time = "2025-06-10T00:44:51.182Z" }, + { url = "https://files.pythonhosted.org/packages/43/c7/669c52519dca4c95153c8ad96dd123c79f354a376346b198f438e56ffeb4/yarl-1.20.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:f60233b98423aab21d249a30eb27c389c14929f47be8430efa7dbd91493a729d", size = 138826, upload_time = "2025-06-10T00:44:52.883Z" }, + { url = "https://files.pythonhosted.org/packages/6a/42/fc0053719b44f6ad04a75d7f05e0e9674d45ef62f2d9ad2c1163e5c05827/yarl-1.20.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:6f3eff4cc3f03d650d8755c6eefc844edde99d641d0dcf4da3ab27141a5f8ddf", size = 93217, upload_time = "2025-06-10T00:44:54.658Z" }, + { url = "https://files.pythonhosted.org/packages/4f/7f/fa59c4c27e2a076bba0d959386e26eba77eb52ea4a0aac48e3515c186b4c/yarl-1.20.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:69ff8439d8ba832d6bed88af2c2b3445977eba9a4588b787b32945871c2444e3", size = 92700, upload_time = "2025-06-10T00:44:56.784Z" }, + { url = "https://files.pythonhosted.org/packages/2f/d4/062b2f48e7c93481e88eff97a6312dca15ea200e959f23e96d8ab898c5b8/yarl-1.20.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3cf34efa60eb81dd2645a2e13e00bb98b76c35ab5061a3989c7a70f78c85006d", size = 347644, upload_time = "2025-06-10T00:44:59.071Z" }, + { url = "https://files.pythonhosted.org/packages/89/47/78b7f40d13c8f62b499cc702fdf69e090455518ae544c00a3bf4afc9fc77/yarl-1.20.1-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:8e0fe9364ad0fddab2688ce72cb7a8e61ea42eff3c7caeeb83874a5d479c896c", size = 323452, upload_time = "2025-06-10T00:45:01.605Z" }, + { url = "https://files.pythonhosted.org/packages/eb/2b/490d3b2dc66f52987d4ee0d3090a147ea67732ce6b4d61e362c1846d0d32/yarl-1.20.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8f64fbf81878ba914562c672024089e3401974a39767747691c65080a67b18c1", size = 346378, upload_time = "2025-06-10T00:45:03.946Z" }, + { url = "https://files.pythonhosted.org/packages/66/ad/775da9c8a94ce925d1537f939a4f17d782efef1f973039d821cbe4bcc211/yarl-1.20.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f6342d643bf9a1de97e512e45e4b9560a043347e779a173250824f8b254bd5ce", size = 353261, upload_time = "2025-06-10T00:45:05.992Z" }, + { url = "https://files.pythonhosted.org/packages/4b/23/0ed0922b47a4f5c6eb9065d5ff1e459747226ddce5c6a4c111e728c9f701/yarl-1.20.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56dac5f452ed25eef0f6e3c6a066c6ab68971d96a9fb441791cad0efba6140d3", size = 335987, upload_time = "2025-06-10T00:45:08.227Z" }, + { url = "https://files.pythonhosted.org/packages/3e/49/bc728a7fe7d0e9336e2b78f0958a2d6b288ba89f25a1762407a222bf53c3/yarl-1.20.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7d7f497126d65e2cad8dc5f97d34c27b19199b6414a40cb36b52f41b79014be", size = 329361, upload_time = "2025-06-10T00:45:10.11Z" }, + { url = "https://files.pythonhosted.org/packages/93/8f/b811b9d1f617c83c907e7082a76e2b92b655400e61730cd61a1f67178393/yarl-1.20.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:67e708dfb8e78d8a19169818eeb5c7a80717562de9051bf2413aca8e3696bf16", size = 346460, upload_time = "2025-06-10T00:45:12.055Z" }, + { url = "https://files.pythonhosted.org/packages/70/fd/af94f04f275f95da2c3b8b5e1d49e3e79f1ed8b6ceb0f1664cbd902773ff/yarl-1.20.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:595c07bc79af2494365cc96ddeb772f76272364ef7c80fb892ef9d0649586513", size = 334486, upload_time = "2025-06-10T00:45:13.995Z" }, + { url = "https://files.pythonhosted.org/packages/84/65/04c62e82704e7dd0a9b3f61dbaa8447f8507655fd16c51da0637b39b2910/yarl-1.20.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:7bdd2f80f4a7df852ab9ab49484a4dee8030023aa536df41f2d922fd57bf023f", size = 342219, upload_time = "2025-06-10T00:45:16.479Z" }, + { url = "https://files.pythonhosted.org/packages/91/95/459ca62eb958381b342d94ab9a4b6aec1ddec1f7057c487e926f03c06d30/yarl-1.20.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:c03bfebc4ae8d862f853a9757199677ab74ec25424d0ebd68a0027e9c639a390", size = 350693, upload_time = "2025-06-10T00:45:18.399Z" }, + { url = "https://files.pythonhosted.org/packages/a6/00/d393e82dd955ad20617abc546a8f1aee40534d599ff555ea053d0ec9bf03/yarl-1.20.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:344d1103e9c1523f32a5ed704d576172d2cabed3122ea90b1d4e11fe17c66458", size = 355803, upload_time = "2025-06-10T00:45:20.677Z" }, + { url = "https://files.pythonhosted.org/packages/9e/ed/c5fb04869b99b717985e244fd93029c7a8e8febdfcffa06093e32d7d44e7/yarl-1.20.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:88cab98aa4e13e1ade8c141daeedd300a4603b7132819c484841bb7af3edce9e", size = 341709, upload_time = "2025-06-10T00:45:23.221Z" }, + { url = "https://files.pythonhosted.org/packages/24/fd/725b8e73ac2a50e78a4534ac43c6addf5c1c2d65380dd48a9169cc6739a9/yarl-1.20.1-cp313-cp313t-win32.whl", hash = "sha256:b121ff6a7cbd4abc28985b6028235491941b9fe8fe226e6fdc539c977ea1739d", size = 86591, upload_time = "2025-06-10T00:45:25.793Z" }, + { url = "https://files.pythonhosted.org/packages/94/c3/b2e9f38bc3e11191981d57ea08cab2166e74ea770024a646617c9cddd9f6/yarl-1.20.1-cp313-cp313t-win_amd64.whl", hash = "sha256:541d050a355bbbc27e55d906bc91cb6fe42f96c01413dd0f4ed5a5240513874f", size = 93003, upload_time = "2025-06-10T00:45:27.752Z" }, + { url = "https://files.pythonhosted.org/packages/b4/2d/2345fce04cfd4bee161bf1e7d9cdc702e3e16109021035dbb24db654a622/yarl-1.20.1-py3-none-any.whl", hash = "sha256:83b8eb083fe4683c6115795d9fc1cfaf2cbbefb19b3a1cb68f6527460f483a77", size = 46542, upload_time = "2025-06-10T00:46:07.521Z" }, +] + +[[package]] +name = "zarr" +version = "2.18.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "asciitree" }, + { name = "fasteners", marker = "sys_platform != 'emscripten'" }, + { 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, 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, upload_time = "2025-04-09T07:59:27.039Z" }, +] + +[[package]] +name = "zarr-checksum" +version = "0.4.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "tqdm" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b4/af/eb603e6d7f02d16a60b05335ed97a08de4c71f5b109c2a65f3a571d2c4be/zarr_checksum-0.4.7.tar.gz", hash = "sha256:081f163d52533a286bc8249a241da5614b5dab0c06377b208980dc205e272da9", size = 12414, upload_time = "2025-04-01T15:54:48.548Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e3/6b/a57376f2713b79e5f2eb8003ebc569aa3201a36779ee1472404f183e3c87/zarr_checksum-0.4.7-py3-none-any.whl", hash = "sha256:97cbffe2288338f9083f92a2312052f045fb2154a6f4ddbbcb1bde109b6fd22e", size = 15292, upload_time = "2025-04-01T15:54:47.27Z" }, +] From 08937772ac5c7d712b6c4fc111a024d7dce80f8f Mon Sep 17 00:00:00 2001 From: ncguilbeault Date: Fri, 10 Oct 2025 17:05:49 +0100 Subject: [PATCH 03/17] Updated `toc.yml` in examples with item lists for improved readability --- docs/toc.yml | 103 ++++++++++++++++++++++++++++----------------------- 1 file changed, 57 insertions(+), 46 deletions(-) diff --git a/docs/toc.yml b/docs/toc.yml index 21e973c..a4cd990 100644 --- a/docs/toc.yml +++ b/docs/toc.yml @@ -2,55 +2,66 @@ href: ../README.md - name: Linear Dynamical Systems -- name: Getting Started - href: ../examples/LinearDynamicalSystems/README.md -- name: Kinematics -- name: Simulated Data - href: ../examples/LinearDynamicalSystems/Kinematics/SimulatedData/README.md -- name: Zebrafish Centroid Tracking - href: ../examples/LinearDynamicalSystems/Kinematics/ZebrafishCentroidTracking/README.md -- name: Foraging Mouse - href: ../examples/LinearDynamicalSystems/Kinematics/ForagingMouse/README.md -- name: Optimizing Model Parameters for Foraging Mouse - href: ../examples/LinearDynamicalSystems/Kinematics/ModelOptimizationForagingMouse/README.md -- name: Forecasting Foraging Mouse Kinematics - href: ../examples/LinearDynamicalSystems/Kinematics/ForecastingForagingMouse/README.md -- name: Linear Regression -- name: Simulated Data - href: ../examples/LinearDynamicalSystems/LinearRegression/SimulatedData/README.md -- name: Receptive Field Simple Cell - href: ../examples/LinearDynamicalSystems/LinearRegression/ReceptiveFieldSimpleCell/README.md - + items: + - name: Kinematics + items: + - name: Simulated Data + href: ../examples/LinearDynamicalSystems/Kinematics/SimulatedData/README.md + - name: Zebrafish Centroid Tracking + href: ../examples/LinearDynamicalSystems/Kinematics/ZebrafishCentroidTracking/README.md + - name: Foraging Mouse + href: ../examples/LinearDynamicalSystems/Kinematics/ForagingMouse/README.md + - name: Optimizing Model Parameters for Foraging Mouse + href: ../examples/LinearDynamicalSystems/Kinematics/ModelOptimizationForagingMouse/README.md + - name: Forecasting Foraging Mouse Kinematics + href: ../examples/LinearDynamicalSystems/Kinematics/ForecastingForagingMouse/README.md + - name: Linear Regression + items: + - name: Simulated Data + href: ../examples/LinearDynamicalSystems/LinearRegression/SimulatedData/README.md + - name: Receptive Field Simple Cell + href: ../examples/LinearDynamicalSystems/LinearRegression/ReceptiveFieldSimpleCell/README.md + - name: Neural Latents + items: + - name: Estimating Parameters of LDS + href: ../examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/README.md + - name: Online Filtering + href: ../examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/README.md + - name: Hidden Markov Models -- name: Getting Started - href: ../examples/HiddenMarkovModels/README.md -- name: Simulated Data - href: ../examples/HiddenMarkovModels/SimulatedData/README.md -- name: Inferring Behavioral State from Kinematics - href: ../examples/HiddenMarkovModels/InferringBehavioralStateFromKinematics/README.md -- name: Extended Model Configuration - href: ../examples/HiddenMarkovModels/ExtendedModelConfiguration/README.md + items: + - name: Getting Started + href: ../examples/HiddenMarkovModels/README.md + - name: Simulated Data + href: ../examples/HiddenMarkovModels/SimulatedData/README.md + - name: Inferring Behavioral State from Kinematics + href: ../examples/HiddenMarkovModels/InferringBehavioralStateFromKinematics/README.md + - name: Extended Model Configuration + href: ../examples/HiddenMarkovModels/ExtendedModelConfiguration/README.md - name: Torch -- name: Linear Regression - href: ../examples/Torch/LinearRegression/README.md + items: + - name: Linear Regression + href: ../examples/Torch/LinearRegression/README.md -- name: Torch Models -- name: Custom PyTorch Model - href: ../examples/Torch/CustomPyTorchModel/README.md -- name: Pretrained Neural Network for Image Classification - href: ../examples/Torch/NeuralNetsPretrainedModel/README.md -- name: Downloading and Running a TorchHub Model - href: ../examples/Torch/NeuralNetsTorchHub/README.md -- name: Training a Neural Network Online - href: ../examples/Torch/NeuralNetsTrainedOnline/README.md + - name: Neural Networks + items: + - name: Exporting a PyTorch Model + href: ../examples/Torch/CustomPyTorchModel/README.md + - name: Running a Pretrained Neural Network for Image Classification + href: ../examples/Torch/NeuralNetsPretrainedModel/README.md + - name: Downloading and Running a TorchHub Model + href: ../examples/Torch/NeuralNetsTorchHub/README.md + - name: Training a Neural Network Online + href: ../examples/Torch/NeuralNetsTrainedOnline/README.md - name: Point Process Decoder -- name: Decode Position from Hippocampus using Sorted Spikes - href: ../examples/PointProcessDecoder/DecodePositionFromHippocampusSortedUnits/README.md -- name: Decode Position from Hippocampus using Clusterless Marks - href: ../examples/PointProcessDecoder/DecodePositionFromHippocampusClusterless/README.md -- name: Decode Position from Striatum using Sorted Spikes - href: ../examples/PointProcessDecoder/DecodePositionFromStriatumSortedUnits/README.md -- name: Classify Dynamics and Decode Position from Hippocampal Sorted Units - href: ../examples/PointProcessDecoder/ClassifyPositionFromHippocampusSortedUnits/README.md \ No newline at end of file + items: + - name: Decode Position from Hippocampus using Sorted Spikes + href: ../examples/PointProcessDecoder/DecodePositionFromHippocampusSortedUnits/README.md + - name: Decode Position from Hippocampus using Clusterless Marks + href: ../examples/PointProcessDecoder/DecodePositionFromHippocampusClusterless/README.md + - name: Decode Position from Striatum using Sorted Spikes + href: ../examples/PointProcessDecoder/DecodePositionFromStriatumSortedUnits/README.md + - name: Classify Dynamics and Decode Position from Hippocampal Sorted Units + href: ../examples/PointProcessDecoder/ClassifyPositionFromHippocampusSortedUnits/README.md \ No newline at end of file From 7895add5e89deb562af7482673c4b55543068e9e Mon Sep 17 00:00:00 2001 From: ncguilbeault Date: Fri, 10 Oct 2025 17:06:05 +0100 Subject: [PATCH 04/17] Removed `README.md` from LinearDynamicalSystems examples folder since this is no longer accurate --- examples/LinearDynamicalSystems/README.md | 138 ---------------------- 1 file changed, 138 deletions(-) delete mode 100644 examples/LinearDynamicalSystems/README.md diff --git a/examples/LinearDynamicalSystems/README.md b/examples/LinearDynamicalSystems/README.md deleted file mode 100644 index e060f00..0000000 --- a/examples/LinearDynamicalSystems/README.md +++ /dev/null @@ -1,138 +0,0 @@ -# Getting Started - -In general, when using the LinearDynamicalSystems package, you need to configure your Bonsai workflow to run the correct python environment which has the [lds_python](https://github.com/joacorapela/lds_python) package installed. - -If you followed the installation guide, you will have a basic Bonsai-python environment for using the LinearDynamicalSystems package. You will also have installed the basic dependencies required to build and run the Bonsai workflows. However, if you wish to run the examples, we highly recommend following this guide to create and configure the environments needed for each example. This guide has been made for users starting from scratch to get started. Alternatively, you can use the environment you created in the previous guide and install the necessary package dependencies required to run each workflow. - -All of the examples are self-contained and can be found by going to the [Bonsai.ML - Examples](https://github.com/bonsai-rx/machinelearning-examples) repo. For each example, you can bootstrap the python and Bonsai environments from within each example directory. Below, we demonstrate how to get started using the examples by bootstrapping the example environments that are needed to run the example workflow. - -### Windows - -#### Dependencies - -You must have the following installed on your PC in order to run the example workflows: - -- [Python (v3.10)](https://www.python.org/downloads/) *Note: python must be installed using the windows installer and must be added to the system PATH* -- [Git](https://git-scm.com/downloads) -- [Microsoft Visual C++ Redistributable](https://aka.ms/vs/16/release/vc_redist.x64.exe) - -> [!TIP] -> When running windows in a virtual machine, it is necessary to install the [OpenGL mesa drivers](https://github.com/pal1000/mesa-dist-win/releases/) on the windows VM. You can read more about it [here](https://github.com/pal1000/mesa-dist-win) - -#### Instructions - -Open the terminal or powershell. Start by cloning the [Bonsai.ML - Examples](https://github.com/bonsai-rx/machinelearning-examples) repo with: - -```cmd -git clone https://github.com/bonsai-rx/machinelearning-examples.git -``` - -Change directory to one of the examples. For instance, this will bring you to the simulated data example from the LinearDynamicalSystems.Kinematics package: - -```cmd -cd .\machinelearning-examples\examples\LinearDynamicalSystems\Kinematics\SimulatedData -``` - -To create the python virtual environment and install the package, run the following: - -```cmd -python -m venv .venv -.\.venv\Scripts\activate -pip install lds_python@git+https://github.com/joacorapela/lds_python@f761c201f3df883503ecb67acef35ba846e3524c -``` - -> [!TIP] -> If you get an error during this step, you need to make sure that scripts are executable from the terminal. To do this, open a powershell terminal using `Run as Administrator` and enter this line, followed by `yes`: - -```powershell -set-executionpolicy remotesigned -``` - -To create the bonsai environment and install the packages, run the powershell script: - -```cmd -cd .bonsai -powershell .\Setup.ps1 -``` - -Once installed, run the bonsai executable with: - -```cmd -.\Bonsai.exe -``` - -Open the workflow example and start the bonsai workflow. - -### Linux - -#### Notes on Running Bonsai in Linux - -Currently, the examples have only been tested on Ubuntu 22.04. Running Bonsai on Linux is still being tested and should be used with caution. We cannot guarantee that these instructions will work for all Linux distributions or versions. It is important that you consult the general [Bonsai installation guide on Linux](https://github.com/orgs/bonsai-rx/discussions/1101) to ensure that the underlying Bonsai package dependencies are met and installed properly. - -#### Dependencies - -You must have the following installed on your PC in order to run the example workflows: - -- [Python (v3.10)](https://www.python.org/downloads/) *comes installed with the latest version of Ubuntu 22.04* -- [Git](https://git-scm.com/downloads) -- [Mono](https://www.mono-project.com/download/stable/#download-lin) -- [OpenCV and OpenGL binaries](https://github.com/orgs/bonsai-rx/discussions/1101) - - -> [!TIP] -> For installing OpenCV, the simplest method is to follow the instructions on installing OpenCV from pre-built binaries - -#### Instructions - -Open up a terminal and start by cloning the [Bonsai.ML - Examples](https://github.com/bonsai-rx/machinelearning-examples) repo: - -```cmd -git clone https://github.com/bonsai-rx/machinelearning-examples.git -``` - -Change directory to one of the examples. For instance: - -```cmd -cd machinelearning-examples/examples/LinearDynamicalSystems/Kinematics/SimulatedData -``` - -Create the python virtual environment and install the lds python package with the following: - -```cmd -python3 -m venv .venv -source .venv/bin/activate -pip install lds_python@git+https://github.com/joacorapela/lds_python@f761c201f3df883503ecb67acef35ba846e3524c -``` - -> [!TIP] -> If you get an error during this step, it may be because you need to install python virtual environment package on your system. You can do so using the following: - -```cmd -sudo apt install -y python3.10-venv -``` - -Run the `Setup.sh` script using the following: - -```cmd -cd .bonsai -./Setup.sh -``` - -> [!TIP] -> The `Setup.sh` script uses the `xmllint` and `xmlstarlet` packages to convert the assembly location paths in the bonsai config file from Windows to Linux paths. If you do not have these packages already installed on your computer, you can install the `xmllint` and the `xmlstarlet` packages using: - -```cmd -sudo apt install -y libxml2-utils xmlstarlet -``` - -Once the bonsai environment has been created, activate the bonsai environment and run the Bonsai executable: - -```cmd -source ./activate -bonsai -``` - -> [!TIP] -> If your desktop theme is set to dark mode, the Bonsai GUI can display in weird ways due to the way that mono tries to use the desktop theme in applications. If you use the `bonsai-clean` command instead of the `bonsai` command, this will reset the theme that mono uses to the default theme, which can imporove the appearance of the Bonsai GUI. - -Open the workflow example and start the bonsai workflow. From fe2378ccba189e13ab6d61f8f74291914df84f04 Mon Sep 17 00:00:00 2001 From: ncguilbeault Date: Mon, 13 Oct 2025 17:50:54 +0100 Subject: [PATCH 05/17] Updated download data script to acquire both training and testing datasets --- .../EstimatingParameters/download_data.py | 81 +++++++++++-------- .../OnlineFiltering/download_data.py | 81 +++++++++++-------- 2 files changed, 94 insertions(+), 68 deletions(-) diff --git a/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/download_data.py b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/download_data.py index 8fb4416..2582820 100644 --- a/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/download_data.py +++ b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/download_data.py @@ -10,37 +10,50 @@ # dandi dataset info dandiset_ID = "000140" -dandi_filepath = "sub-Jenkins/sub-Jenkins_ses-small_desc-train_behavior+ecephys.nwb" - -# download data using remfile and dandi -with DandiAPIClient() as client: - asset = client.get_dandiset(dandiset_ID, - "draft").get_asset_by_path(dandi_filepath) - s3_path = asset.get_content_url(follow_redirects=1, strip_query=True) - cache = remfile.DiskCache(os.path.join(base_dir, "remfile_cache")) - rf = remfile.File(s3_path, disk_cache=cache) - with h5py.File(rf, "r") as h: - with NWBHDF5IO(file=h, mode="r") as io: - nwbfile = io.read() - # extract spike sorted units dataframe - units_df = nwbfile.units.to_dataframe() - -# bin spikes -n_clusters = units_df.shape[0] -bin_size = 0.02 - -spike_times = [units_df.iloc[n]['spike_times'] for n in range(n_clusters)] -t_max = max(max(st) for st in spike_times if len(st) > 0) - -bin_edges = np.arange(0, t_max + bin_size, bin_size) -bin_centers = (bin_edges[1:] + bin_edges[:-1]) / 2 -n_bins = len(bin_edges) - 1 - -spike_counts = np.zeros((n_clusters, n_bins), dtype=int) - -for n, spikes in enumerate(spike_times): - spike_counts[n], _ = np.histogram(spikes, bins=bin_edges) - -# transform binned spikes using square-root transform -transformed_binned_spikes = np.sqrt(spike_counts + 0.5) -transformed_binned_spikes.astype(float).tofile(os.path.join(base_dir, "transformed_binned_spikes.bin")) \ No newline at end of file +dandi_filenames = [ + "sub-Jenkins/sub-Jenkins_ses-small_desc-train_behavior+ecephys.nwb", + "sub-Jenkins/sub-Jenkins_ses-small_desc-test_ecephys.nwb" +] + +for dandi_filepath in dandi_filenames: + + print(f"Downloading and processing {dandi_filepath}...") + + # download data using remfile and dandi + with DandiAPIClient() as client: + asset = client.get_dandiset(dandiset_ID, + "draft").get_asset_by_path(dandi_filepath) + s3_path = asset.get_content_url(follow_redirects=1, strip_query=True) + cache = remfile.DiskCache(os.path.join(base_dir, "remfile_cache")) + rf = remfile.File(s3_path, disk_cache=cache) + with h5py.File(rf, "r") as h: + with NWBHDF5IO(file=h, mode="r") as io: + nwbfile = io.read() + # extract spike sorted units dataframe + units_df = nwbfile.units.to_dataframe() + + print(f"Data downloaded. Processing spikes...") + + # bin spikes + n_clusters = units_df.shape[0] + bin_size = 0.02 + + spike_times = [units_df.iloc[n]['spike_times'] for n in range(n_clusters)] + t_max = max(max(st) for st in spike_times if len(st) > 0) + + bin_edges = np.arange(0, t_max + bin_size, bin_size) + bin_centers = (bin_edges[1:] + bin_edges[:-1]) / 2 + n_bins = len(bin_edges) - 1 + + spike_counts = np.zeros((n_clusters, n_bins), dtype=int) + + for n, spikes in enumerate(spike_times): + spike_counts[n], _ = np.histogram(spikes, bins=bin_edges) + + # transform binned spikes using square-root transform + spike_counts = np.sqrt(spike_counts + 0.5) + + output_filename = dandi_filepath.split("/")[-1].replace(".nwb", ".bin") + spike_counts.astype(float).tofile(os.path.join(base_dir, output_filename)) + + print(f"Processed spikes saved to {os.path.realpath(os.path.join(base_dir, output_filename))}") \ No newline at end of file diff --git a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/download_data.py b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/download_data.py index 8fb4416..2582820 100644 --- a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/download_data.py +++ b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/download_data.py @@ -10,37 +10,50 @@ # dandi dataset info dandiset_ID = "000140" -dandi_filepath = "sub-Jenkins/sub-Jenkins_ses-small_desc-train_behavior+ecephys.nwb" - -# download data using remfile and dandi -with DandiAPIClient() as client: - asset = client.get_dandiset(dandiset_ID, - "draft").get_asset_by_path(dandi_filepath) - s3_path = asset.get_content_url(follow_redirects=1, strip_query=True) - cache = remfile.DiskCache(os.path.join(base_dir, "remfile_cache")) - rf = remfile.File(s3_path, disk_cache=cache) - with h5py.File(rf, "r") as h: - with NWBHDF5IO(file=h, mode="r") as io: - nwbfile = io.read() - # extract spike sorted units dataframe - units_df = nwbfile.units.to_dataframe() - -# bin spikes -n_clusters = units_df.shape[0] -bin_size = 0.02 - -spike_times = [units_df.iloc[n]['spike_times'] for n in range(n_clusters)] -t_max = max(max(st) for st in spike_times if len(st) > 0) - -bin_edges = np.arange(0, t_max + bin_size, bin_size) -bin_centers = (bin_edges[1:] + bin_edges[:-1]) / 2 -n_bins = len(bin_edges) - 1 - -spike_counts = np.zeros((n_clusters, n_bins), dtype=int) - -for n, spikes in enumerate(spike_times): - spike_counts[n], _ = np.histogram(spikes, bins=bin_edges) - -# transform binned spikes using square-root transform -transformed_binned_spikes = np.sqrt(spike_counts + 0.5) -transformed_binned_spikes.astype(float).tofile(os.path.join(base_dir, "transformed_binned_spikes.bin")) \ No newline at end of file +dandi_filenames = [ + "sub-Jenkins/sub-Jenkins_ses-small_desc-train_behavior+ecephys.nwb", + "sub-Jenkins/sub-Jenkins_ses-small_desc-test_ecephys.nwb" +] + +for dandi_filepath in dandi_filenames: + + print(f"Downloading and processing {dandi_filepath}...") + + # download data using remfile and dandi + with DandiAPIClient() as client: + asset = client.get_dandiset(dandiset_ID, + "draft").get_asset_by_path(dandi_filepath) + s3_path = asset.get_content_url(follow_redirects=1, strip_query=True) + cache = remfile.DiskCache(os.path.join(base_dir, "remfile_cache")) + rf = remfile.File(s3_path, disk_cache=cache) + with h5py.File(rf, "r") as h: + with NWBHDF5IO(file=h, mode="r") as io: + nwbfile = io.read() + # extract spike sorted units dataframe + units_df = nwbfile.units.to_dataframe() + + print(f"Data downloaded. Processing spikes...") + + # bin spikes + n_clusters = units_df.shape[0] + bin_size = 0.02 + + spike_times = [units_df.iloc[n]['spike_times'] for n in range(n_clusters)] + t_max = max(max(st) for st in spike_times if len(st) > 0) + + bin_edges = np.arange(0, t_max + bin_size, bin_size) + bin_centers = (bin_edges[1:] + bin_edges[:-1]) / 2 + n_bins = len(bin_edges) - 1 + + spike_counts = np.zeros((n_clusters, n_bins), dtype=int) + + for n, spikes in enumerate(spike_times): + spike_counts[n], _ = np.histogram(spikes, bins=bin_edges) + + # transform binned spikes using square-root transform + spike_counts = np.sqrt(spike_counts + 0.5) + + output_filename = dandi_filepath.split("/")[-1].replace(".nwb", ".bin") + spike_counts.astype(float).tofile(os.path.join(base_dir, output_filename)) + + print(f"Processed spikes saved to {os.path.realpath(os.path.join(base_dir, output_filename))}") \ No newline at end of file From b0d2c46510c68367d9c328b14349f1bb341a2e4d Mon Sep 17 00:00:00 2001 From: ncguilbeault Date: Mon, 13 Oct 2025 17:54:10 +0100 Subject: [PATCH 06/17] Updated `OnlineFiltering` example to load Kalman filter parameters trained offline for online latent state estimation of unseen testing data --- .../OnlineFiltering/.bonsai/Bonsai.config | 2 + .../OnlineFiltering/Extensions.csproj | 14 + .../LoadPretrainedKFModelParameters.cs | 111 +++++ .../OnlineFiltering/OnlineFiltering.bonsai | 312 ++------------ .../OnlineFiltering/pyproject.toml | 5 + .../OnlineFiltering/train_model.py | 59 +++ .../NeuralLatents/OnlineFiltering/uv.lock | 379 ++++++++++++++++++ 7 files changed, 600 insertions(+), 282 deletions(-) create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/Extensions.csproj create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/Extensions/LoadPretrainedKFModelParameters.cs diff --git a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/.bonsai/Bonsai.config b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/.bonsai/Bonsai.config index 110f42f..c00e092 100644 --- a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/.bonsai/Bonsai.config +++ b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/.bonsai/Bonsai.config @@ -48,6 +48,7 @@ + @@ -109,6 +110,7 @@ + diff --git a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/Extensions.csproj b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/Extensions.csproj new file mode 100644 index 0000000..a092954 --- /dev/null +++ b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/Extensions.csproj @@ -0,0 +1,14 @@ + + + + net472 + + + + + + + + + + \ No newline at end of file diff --git a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/Extensions/LoadPretrainedKFModelParameters.cs b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/Extensions/LoadPretrainedKFModelParameters.cs new file mode 100644 index 0000000..a50a2cf --- /dev/null +++ b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/Extensions/LoadPretrainedKFModelParameters.cs @@ -0,0 +1,111 @@ +using System; +using System.ComponentModel; +using System.Linq; +using System.Reactive.Linq; +using System.Xml.Serialization; +using System.IO; +using TorchSharp; +using Bonsai; +using Bonsai.ML.Lds.Torch; + +///

+/// Loads the parameters of a Kalman filter model. +/// +[Combinator] +[ResetCombinator] +[Description("Loads the parameters of a Kalman filter model.")] +[WorkflowElementCategory(ElementCategory.Source)] +public class LoadKalmanFilterParameters +{ + public string TransitionMatrixFilePath { get; set; } + public string MeasurementFunctionFilePath { get; set; } + public string ProcessNoiseCovarianceFilePath { get; set; } + public string MeasurementNoiseCovarianceFilePath { get; set; } + public string InitialMeanFilePath { get; set; } + public string InitialCovarianceFilePath { get; set; } + + public int NumObservations { get; set; } + public int NumStates { get; set; } + + public torch.ScalarType Type { get; set; } + + [XmlIgnore] + public torch.Device Device { get; set; } + + private static double[] ReadBinaryFile(string fileName) + { + using (var fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read)) + { + using (var binaryReader = new BinaryReader(fileStream)) + { + var fileLength = fileStream.Length; + var numDoubles = fileLength / sizeof(double); + var data = new double[numDoubles]; + for (int i = 0; i < numDoubles; i++) + { + data[i] = binaryReader.ReadDouble(); + } + return data; + } + } + } + + /// + /// Creates parameters for a Kalman filter model using the properties of this class. + /// + public IObservable Process() + { + torch.Tensor transitionMatrix = null; + if (TransitionMatrixFilePath != null) + { + var data = ReadBinaryFile(TransitionMatrixFilePath); + transitionMatrix = torch.from_array(data).reshape(NumStates, NumStates).to(Type); + } + + torch.Tensor measurementFunction = null; + if (MeasurementFunctionFilePath != null) + { + var data = ReadBinaryFile(MeasurementFunctionFilePath); + measurementFunction = torch.from_array(data).reshape(NumObservations, NumStates).to(Type); + } + + torch.Tensor processNoiseCovariance = null; + if (ProcessNoiseCovarianceFilePath != null) + { + var data = ReadBinaryFile(ProcessNoiseCovarianceFilePath); + processNoiseCovariance = torch.from_array(data).reshape(NumStates, NumStates).to(Type); + } + + torch.Tensor measurementNoiseCovariance = null; + if (MeasurementNoiseCovarianceFilePath != null) + { + var data = ReadBinaryFile(MeasurementNoiseCovarianceFilePath); + measurementNoiseCovariance = torch.from_array(data).reshape(NumObservations, NumObservations).to(Type); + } + + torch.Tensor initialMean = null; + if (InitialMeanFilePath != null) + { + var data = ReadBinaryFile(InitialMeanFilePath); + initialMean = torch.from_array(data).reshape(NumStates).to(Type); + } + + torch.Tensor initialCovariance = null; + if (InitialCovarianceFilePath != null) + { + var data = ReadBinaryFile(InitialCovarianceFilePath); + initialCovariance = torch.from_array(data).reshape(NumStates, NumStates).to(Type); + } + + var parameters = new KalmanFilterParameters( + transitionMatrix: transitionMatrix, + measurementFunction: measurementFunction, + processNoiseCovariance: processNoiseCovariance, + measurementNoiseCovariance: measurementNoiseCovariance, + initialMean: initialMean, + initialCovariance: initialCovariance + ); + + return Observable.Return(parameters); + } +} \ No newline at end of file diff --git a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/OnlineFiltering.bonsai b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/OnlineFiltering.bonsai index e7a1d4b..2f6bed8 100644 --- a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/OnlineFiltering.bonsai +++ b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/OnlineFiltering.bonsai @@ -5,9 +5,10 @@ xmlns:p1="clr-namespace:Bonsai.ML.Torch;assembly=Bonsai.ML.Torch" xmlns:scr="clr-namespace:Bonsai.Scripting.Expressions;assembly=Bonsai.Scripting.Expressions" xmlns:rx="clr-namespace:Bonsai.Reactive;assembly=Bonsai.Core" - xmlns:p2="clr-namespace:Bonsai.ML.Lds.Torch;assembly=Bonsai.ML.Lds.Torch" + xmlns:p2="clr-namespace:;assembly=Extensions" + xmlns:p3="clr-namespace:Bonsai.ML.Lds.Torch;assembly=Bonsai.ML.Lds.Torch" xmlns:ui="clr-namespace:Bonsai.Design;assembly=Bonsai.Design" - xmlns:p3="clr-namespace:Bonsai.ML.Lds.Torch.Design;assembly=Bonsai.ML.Lds.Torch.Design" + xmlns:p4="clr-namespace:Bonsai.ML.Lds.Torch.Design;assembly=Bonsai.ML.Lds.Torch.Design" xmlns="https://bonsai-rx.org/2018/workflow"> @@ -17,7 +18,7 @@ - ../../../../datasets/transformed_binned_spikes.bin + ../../../../datasets/sub-Jenkins_ses-small_desc-test_ecephys.bin 0 100 142 @@ -54,91 +55,37 @@ - - KalmanFilter - Float64 - 10 + + ../../../../datasets/transition_matrix.bin + ../../../../datasets/measurement_function.bin + ../../../../datasets/process_noise_covariance.bin + ../../../../datasets/measurement_noise_covariance.bin + ../../../../datasets/initial_state_mean.bin + ../../../../datasets/initial_state_covariance.bin 142 - - - 0.1 - 0.01 - - - - - - - - - - - - - LearnParameters - - - - SpikeCounts - - - it.squeeze(null) - - - - 1000 - 1 - - - - - 1 + 10 + Float32 - - KalmanFilter - 2 - 10 - true - true - true - true - true - true - true + + KalmanFilter + Float64 + 10 + 142 + + + + + + - - - - - Source1 - - - Finished - - - - - - - - - - - ExpectationMaximizationResult - - - - - - @@ -149,226 +96,27 @@ SpikeCounts - - ExpectationMaximizationResult - - - - - - - KalmanFilter - - - - - KalmanFilter - - - - - - - - - - - - - - - - NeuralLatents - true - - - - - - - - - - - - - - - LoadData - - - - - ../../../../datasets/transformed_binned_spikes.bin - 0 - 100 - 142 - 1 - F64 - ColumnMajor - - - - - - - - - - - - it.squeeze(null).unsqueeze(0) - - - SpikeCounts - - - - - - - - - - - - LoadModel - - - - - KalmanFilter - Float64 - 10 - 142 - - - 0.1 - 0.01 - - - - - - - - - - - - - LearnParameters - - - - SpikeCounts - - - it.squeeze(null) - - - - 1000 - 1 - - - - 1 + + KalmanFilter - - KalmanFilter - 2 - 10 - true - true - true - true - true - true - true + + KalmanFilter - - - - - Source1 - - - Finished - - - - - - - - - - - ExpectationMaximizationResult - - - - - - - - - - InferNeuralLatents - - - - SpikeCounts - - - ExpectationMaximizationResult - - - - - - - KalmanFilter - - - - - KalmanFilter - - - - - - - - - - - + NeuralLatents true @@ -377,7 +125,7 @@ - + \ No newline at end of file diff --git a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/pyproject.toml b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/pyproject.toml index 29a08db..8ae6f75 100644 --- a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/pyproject.toml +++ b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/pyproject.toml @@ -10,4 +10,9 @@ dependencies = [ "numpy>=2.3.3", "pynwb>=3.1.2", "remfile>=0.1.13", + "ssm", + "torch>=2.8.0", ] + +[tool.uv.sources] +ssm = { git = "https://github.com/ncguilbeault/lds_python", rev = "75e3e5e92ce6344009b62a5034db49b238db63ef" } diff --git a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/train_model.py b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/train_model.py index e69de29..2faaab2 100644 --- a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/train_model.py +++ b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/train_model.py @@ -0,0 +1,59 @@ +import numpy as np +import ssm.learning +import os + +base_dir = os.path.join(os.path.realpath(os.path.dirname(__file__)), "..", "..", "..", "..", "datasets") + +print("Loading training data...") + +# load training data +training_data_file = os.path.join(base_dir, "sub-Jenkins_ses-small_desc-train_behavior+ecephys.bin") + +n_clusters = 142 +transformed_binned_spikes = np.fromfile(training_data_file, dtype=float).reshape(-1, n_clusters).T + +print("Initializing model...") + +# model +n_latents = 10 + +# estimation initial conditions +sigma_B = 0.1 +sigma_Z = 0.1 +sigma_Q = 0.1 +sigma_R = 0.1 +sigma_m0 = 0.1 +sigma_V0 = 0.1 + +# estimation parameters +max_iter = 100 +tol = 0.1 +vars_to_estimate = {"B": True, "Q": True, "Z": True, "R": True, + "m0": True, "V0": True, } + +np.random.seed(0) + +B0 = np.diag(np.random.normal(loc=0, scale=sigma_B, size=n_latents)) +Z0 = np.random.normal(loc=0, scale=sigma_Z, size=(n_clusters, n_latents)) +Q0 = np.diag(np.abs(np.random.normal(loc=0, scale=sigma_Q, size=n_latents))) +R0 = np.diag(np.abs(np.random.normal(loc=0, scale=sigma_R, size=n_clusters))) +m0_0 = np.random.normal(loc=0, scale=sigma_m0, size=n_latents) +V0_0 = np.diag(np.abs(np.random.normal(loc=0, scale=sigma_V0, size=n_latents))) + +print("Estimating parameters...") + +optim_res = ssm.learning.em_SS_LDS( + y=transformed_binned_spikes, B0=B0, Q0=Q0, Z0=Z0, R0=R0, + m0_0=m0_0, V0_0=V0_0, max_iter=max_iter, tol=tol, + vars_to_estimate=vars_to_estimate, +) + +# Save estimated parameters +optim_res["B"].astype(float).tofile(os.path.join(base_dir, "transition_matrix.bin")) +optim_res["Z"].astype(float).tofile(os.path.join(base_dir, "measurement_function.bin")) +optim_res["Q"].astype(float).tofile(os.path.join(base_dir, "process_noise_covariance.bin")) +optim_res["R"].astype(float).tofile(os.path.join(base_dir, "measurement_noise_covariance.bin")) +optim_res["m0"].astype(float).tofile(os.path.join(base_dir, "initial_state_mean.bin")) +optim_res["V0"].astype(float).tofile(os.path.join(base_dir, "initial_state_covariance.bin")) + +print(f"Estimated parameters saved to {os.path.realpath(base_dir)}") \ No newline at end of file diff --git a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/uv.lock b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/uv.lock index ba10581..2548f72 100644 --- a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/uv.lock +++ b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/uv.lock @@ -440,6 +440,8 @@ dependencies = [ { name = "numpy" }, { name = "pynwb" }, { name = "remfile" }, + { name = "ssm" }, + { name = "torch" }, ] [package.metadata] @@ -449,6 +451,8 @@ requires-dist = [ { name = "numpy", specifier = ">=2.3.3" }, { name = "pynwb", specifier = ">=3.1.2" }, { name = "remfile", specifier = ">=0.1.13" }, + { name = "ssm", git = "https://github.com/ncguilbeault/lds_python?rev=75e3e5e92ce6344009b62a5034db49b238db63ef" }, + { name = "torch", specifier = ">=2.8.0" }, ] [[package]] @@ -473,6 +477,15 @@ wheels = [ { 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 = "filelock" +version = "3.20.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/58/46/0028a82567109b5ef6e4d2a1f04a583fb513e6cf9527fcdd09afd817deeb/filelock-3.20.0.tar.gz", hash = "sha256:711e943b4ec6be42e1d4e6690b48dc175c822967466bb31c0c293f34334c13f4", size = 18922, upload_time = "2025-10-08T18:03:50.056Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/76/91/7216b27286936c16f5b4d0c530087e4a54eead683e6b0b73dd0c64844af6/filelock-3.20.0-py3-none-any.whl", hash = "sha256:339b4732ffda5cd79b13f4e2711a31b0365ce445d95d243bb996273d072546a2", size = 16054, upload_time = "2025-10-08T18:03:48.35Z" }, +] + [[package]] name = "fqdn" version = "1.5.1" @@ -708,6 +721,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b2/a3/e137168c9c44d18eff0376253da9f1e9234d0239e0ee230d2fee6cea8e55/jeepney-0.9.0-py3-none-any.whl", hash = "sha256:97e5714520c16fc0a45695e5365a2e11b81ea79bba796e26f9f1d178cb182683", size = 49010, upload_time = "2025-02-27T18:51:00.104Z" }, ] +[[package]] +name = "jinja2" +version = "3.1.6" +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, 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, upload_time = "2025-03-05T20:05:00.369Z" }, +] + [[package]] name = "joblib" version = "1.5.2" @@ -795,6 +820,69 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/4a/0d/9c59313ab43d0858a9a665e80763bd830dc78d5f379afc3815e123c486c2/keyrings.alt-5.0.2-py3-none-any.whl", hash = "sha256:6be74693192f3f37bbb752bfac9b86e6177076b17d2ac12a390f1d6abff8ac7c", size = 17930, upload_time = "2024-08-14T01:09:26.785Z" }, ] +[[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, upload_time = "2025-09-27T18:37:40.426Z" } +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, upload_time = "2025-09-27T18:36:30.854Z" }, + { 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, upload_time = "2025-09-27T18:36:31.971Z" }, + { 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, upload_time = "2025-09-27T18:36:32.813Z" }, + { 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, upload_time = "2025-09-27T18:36:33.86Z" }, + { 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, upload_time = "2025-09-27T18:36:35.099Z" }, + { 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, upload_time = "2025-09-27T18:36:36.001Z" }, + { 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, upload_time = "2025-09-27T18:36:36.906Z" }, + { 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, upload_time = "2025-09-27T18:36:37.868Z" }, + { url = "https://files.pythonhosted.org/packages/2f/e1/78ee7a023dac597a5825441ebd17170785a9dab23de95d2c7508ade94e0e/markupsafe-3.0.3-cp312-cp312-win32.whl", hash = "sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d", size = 14540, upload_time = "2025-09-27T18:36:38.761Z" }, + { url = "https://files.pythonhosted.org/packages/aa/5b/bec5aa9bbbb2c946ca2733ef9c4ca91c91b6a24580193e891b5f7dbe8e1e/markupsafe-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c", size = 15105, upload_time = "2025-09-27T18:36:39.701Z" }, + { url = "https://files.pythonhosted.org/packages/e5/f1/216fc1bbfd74011693a4fd837e7026152e89c4bcf3e77b6692fba9923123/markupsafe-3.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f", size = 13906, upload_time = "2025-09-27T18:36:40.689Z" }, + { 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, upload_time = "2025-09-27T18:36:41.777Z" }, + { 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, upload_time = "2025-09-27T18:36:43.257Z" }, + { 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, upload_time = "2025-09-27T18:36:44.508Z" }, + { 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, upload_time = "2025-09-27T18:36:45.385Z" }, + { 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, upload_time = "2025-09-27T18:36:46.916Z" }, + { 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, upload_time = "2025-09-27T18:36:47.884Z" }, + { 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, upload_time = "2025-09-27T18:36:48.82Z" }, + { 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, upload_time = "2025-09-27T18:36:49.797Z" }, + { url = "https://files.pythonhosted.org/packages/19/bc/e7140ed90c5d61d77cea142eed9f9c303f4c4806f60a1044c13e3f1471d0/markupsafe-3.0.3-cp313-cp313-win32.whl", hash = "sha256:bdd37121970bfd8be76c5fb069c7751683bdf373db1ed6c010162b2a130248ed", size = 14543, upload_time = "2025-09-27T18:36:51.584Z" }, + { url = "https://files.pythonhosted.org/packages/05/73/c4abe620b841b6b791f2edc248f556900667a5a1cf023a6646967ae98335/markupsafe-3.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:9a1abfdc021a164803f4d485104931fb8f8c1efd55bc6b748d2f5774e78b62c5", size = 15113, upload_time = "2025-09-27T18:36:52.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/3a/fa34a0f7cfef23cf9500d68cb7c32dd64ffd58a12b09225fb03dd37d5b80/markupsafe-3.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:7e68f88e5b8799aa49c85cd116c932a1ac15caaa3f5db09087854d218359e485", size = 13911, upload_time = "2025-09-27T18:36:53.513Z" }, + { 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, upload_time = "2025-09-27T18:36:54.819Z" }, + { 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, upload_time = "2025-09-27T18:36:55.714Z" }, + { 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, upload_time = "2025-09-27T18:36:56.908Z" }, + { 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, upload_time = "2025-09-27T18:36:57.913Z" }, + { 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, upload_time = "2025-09-27T18:36:58.833Z" }, + { 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, upload_time = "2025-09-27T18:36:59.739Z" }, + { 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, upload_time = "2025-09-27T18:37:00.719Z" }, + { 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, upload_time = "2025-09-27T18:37:01.673Z" }, + { url = "https://files.pythonhosted.org/packages/80/d6/2d1b89f6ca4bff1036499b1e29a1d02d282259f3681540e16563f27ebc23/markupsafe-3.0.3-cp313-cp313t-win32.whl", hash = "sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354", size = 14612, upload_time = "2025-09-27T18:37:02.639Z" }, + { url = "https://files.pythonhosted.org/packages/2b/98/e48a4bfba0a0ffcf9925fe2d69240bfaa19c6f7507b8cd09c70684a53c1e/markupsafe-3.0.3-cp313-cp313t-win_amd64.whl", hash = "sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218", size = 15200, upload_time = "2025-09-27T18:37:03.582Z" }, + { url = "https://files.pythonhosted.org/packages/0e/72/e3cc540f351f316e9ed0f092757459afbc595824ca724cbc5a5d4263713f/markupsafe-3.0.3-cp313-cp313t-win_arm64.whl", hash = "sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287", size = 13973, upload_time = "2025-09-27T18:37:04.929Z" }, + { 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, upload_time = "2025-09-27T18:37:06.342Z" }, + { 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, upload_time = "2025-09-27T18:37:07.213Z" }, + { 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, upload_time = "2025-09-27T18:37:09.572Z" }, + { 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, upload_time = "2025-09-27T18:37:10.58Z" }, + { 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, upload_time = "2025-09-27T18:37:11.547Z" }, + { 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, upload_time = "2025-09-27T18:37:12.48Z" }, + { 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, upload_time = "2025-09-27T18:37:13.485Z" }, + { 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, upload_time = "2025-09-27T18:37:14.408Z" }, + { url = "https://files.pythonhosted.org/packages/46/11/f333a06fc16236d5238bfe74daccbca41459dcd8d1fa952e8fbd5dccfb70/markupsafe-3.0.3-cp314-cp314-win32.whl", hash = "sha256:729586769a26dbceff69f7a7dbbf59ab6572b99d94576a5592625d5b411576b9", size = 14747, upload_time = "2025-09-27T18:37:15.36Z" }, + { url = "https://files.pythonhosted.org/packages/28/52/182836104b33b444e400b14f797212f720cbc9ed6ba34c800639d154e821/markupsafe-3.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:bdc919ead48f234740ad807933cdf545180bfbe9342c2bb451556db2ed958581", size = 15341, upload_time = "2025-09-27T18:37:16.496Z" }, + { url = "https://files.pythonhosted.org/packages/6f/18/acf23e91bd94fd7b3031558b1f013adfa21a8e407a3fdb32745538730382/markupsafe-3.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:5a7d5dc5140555cf21a6fefbdbf8723f06fcd2f63ef108f2854de715e4422cb4", size = 14073, upload_time = "2025-09-27T18:37:17.476Z" }, + { 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, upload_time = "2025-09-27T18:37:18.453Z" }, + { 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, upload_time = "2025-09-27T18:37:19.332Z" }, + { 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, upload_time = "2025-09-27T18:37:20.245Z" }, + { 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, upload_time = "2025-09-27T18:37:21.177Z" }, + { 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, upload_time = "2025-09-27T18:37:22.167Z" }, + { 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, upload_time = "2025-09-27T18:37:23.296Z" }, + { 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, upload_time = "2025-09-27T18:37:24.237Z" }, + { 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, upload_time = "2025-09-27T18:37:25.271Z" }, + { url = "https://files.pythonhosted.org/packages/fb/df/5bd7a48c256faecd1d36edc13133e51397e41b73bb77e1a69deab746ebac/markupsafe-3.0.3-cp314-cp314t-win32.whl", hash = "sha256:915c04ba3851909ce68ccc2b8e2cd691618c4dc4c4232fb7982bca3f41fd8c3d", size = 14819, upload_time = "2025-09-27T18:37:26.285Z" }, + { url = "https://files.pythonhosted.org/packages/1a/8a/0402ba61a2f16038b48b39bccca271134be00c5c9f0f623208399333c448/markupsafe-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4faffd047e07c38848ce017e8725090413cd80cbc23d86e55c587bf979e579c9", size = 15426, upload_time = "2025-09-27T18:37:27.316Z" }, + { url = "https://files.pythonhosted.org/packages/70/bc/6f1c2f612465f5fa89b95bead1f44dcb607670fd42891d8fdcd5d039f4f4/markupsafe-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa", size = 14146, upload_time = "2025-09-27T18:37:28.327Z" }, +] + [[package]] name = "ml-dtypes" version = "0.5.3" @@ -836,6 +924,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/a4/8e/469e5a4a2f5855992e425f3cb33804cc07bf18d48f2db061aec61ce50270/more_itertools-10.8.0-py3-none-any.whl", hash = "sha256:52d4362373dcf7c52546bc4af9a86ee7c4579df9a8dc268be0a2f949d376cc9b", size = 69667, upload_time = "2025-09-02T15:23:09.635Z" }, ] +[[package]] +name = "mpmath" +version = "1.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e0/47/dd32fa426cc72114383ac549964eecb20ecfd886d1e5ccf5340b55b02f57/mpmath-1.3.0.tar.gz", hash = "sha256:7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f", size = 508106, upload_time = "2023-03-07T16:47:11.061Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl", hash = "sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c", size = 536198, upload_time = "2023-03-07T16:47:09.197Z" }, +] + [[package]] name = "multidict" version = "6.6.4" @@ -908,6 +1005,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ef/82/7a9d0550484a62c6da82858ee9419f3dd1ccc9aa1c26a1e43da3ecd20b0d/natsort-8.4.0-py3-none-any.whl", hash = "sha256:4732914fb471f56b5cce04d7bae6f164a592c7712e1c85f9ef585e197299521c", size = 38268, upload_time = "2023-06-20T04:17:17.522Z" }, ] +[[package]] +name = "networkx" +version = "3.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6c/4f/ccdb8ad3a38e583f214547fd2f7ff1fc160c43a75af88e6aec213404b96a/networkx-3.5.tar.gz", hash = "sha256:d4c6f9cf81f52d69230866796b82afbccdec3db7ae4fbd1b65ea750feed50037", size = 2471065, upload_time = "2025-05-29T11:35:07.804Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/eb/8d/776adee7bbf76365fdd7f2552710282c79a4ead5d2a46408c9043a2b70ba/networkx-3.5-py3-none-any.whl", hash = "sha256:0030d386a9a06dee3565298b4a734b68589749a544acbb6c412dc9e2489ec6ec", size = 2034406, upload_time = "2025-05-29T11:35:04.961Z" }, +] + [[package]] name = "numcodecs" version = "0.15.1" @@ -991,6 +1097,132 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/06/b9/33bba5ff6fb679aa0b1f8a07e853f002a6b04b9394db3069a1270a7784ca/numpy-2.3.3-cp314-cp314t-win_arm64.whl", hash = "sha256:78c9f6560dc7e6b3990e32df7ea1a50bbd0e2a111e05209963f5ddcab7073b0b", size = 10545953, upload_time = "2025-09-09T15:58:40.576Z" }, ] +[[package]] +name = "nvidia-cublas-cu12" +version = "12.8.4.1" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dc/61/e24b560ab2e2eaeb3c839129175fb330dfcfc29e5203196e5541a4c44682/nvidia_cublas_cu12-12.8.4.1-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:8ac4e771d5a348c551b2a426eda6193c19aa630236b418086020df5ba9667142", size = 594346921, upload_time = "2025-03-07T01:44:31.254Z" }, +] + +[[package]] +name = "nvidia-cuda-cupti-cu12" +version = "12.8.90" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f8/02/2adcaa145158bf1a8295d83591d22e4103dbfd821bcaf6f3f53151ca4ffa/nvidia_cuda_cupti_cu12-12.8.90-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ea0cb07ebda26bb9b29ba82cda34849e73c166c18162d3913575b0c9db9a6182", size = 10248621, upload_time = "2025-03-07T01:40:21.213Z" }, +] + +[[package]] +name = "nvidia-cuda-nvrtc-cu12" +version = "12.8.93" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/05/6b/32f747947df2da6994e999492ab306a903659555dddc0fbdeb9d71f75e52/nvidia_cuda_nvrtc_cu12-12.8.93-py3-none-manylinux2010_x86_64.manylinux_2_12_x86_64.whl", hash = "sha256:a7756528852ef889772a84c6cd89d41dfa74667e24cca16bb31f8f061e3e9994", size = 88040029, upload_time = "2025-03-07T01:42:13.562Z" }, +] + +[[package]] +name = "nvidia-cuda-runtime-cu12" +version = "12.8.90" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0d/9b/a997b638fcd068ad6e4d53b8551a7d30fe8b404d6f1804abf1df69838932/nvidia_cuda_runtime_cu12-12.8.90-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:adade8dcbd0edf427b7204d480d6066d33902cab2a4707dcfc48a2d0fd44ab90", size = 954765, upload_time = "2025-03-07T01:40:01.615Z" }, +] + +[[package]] +name = "nvidia-cudnn-cu12" +version = "9.10.2.21" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "nvidia-cublas-cu12" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/ba/51/e123d997aa098c61d029f76663dedbfb9bc8dcf8c60cbd6adbe42f76d049/nvidia_cudnn_cu12-9.10.2.21-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:949452be657fa16687d0930933f032835951ef0892b37d2d53824d1a84dc97a8", size = 706758467, upload_time = "2025-06-06T21:54:08.597Z" }, +] + +[[package]] +name = "nvidia-cufft-cu12" +version = "11.3.3.83" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "nvidia-nvjitlink-cu12" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/1f/13/ee4e00f30e676b66ae65b4f08cb5bcbb8392c03f54f2d5413ea99a5d1c80/nvidia_cufft_cu12-11.3.3.83-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4d2dd21ec0b88cf61b62e6b43564355e5222e4a3fb394cac0db101f2dd0d4f74", size = 193118695, upload_time = "2025-03-07T01:45:27.821Z" }, +] + +[[package]] +name = "nvidia-cufile-cu12" +version = "1.13.1.3" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bb/fe/1bcba1dfbfb8d01be8d93f07bfc502c93fa23afa6fd5ab3fc7c1df71038a/nvidia_cufile_cu12-1.13.1.3-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1d069003be650e131b21c932ec3d8969c1715379251f8d23a1860554b1cb24fc", size = 1197834, upload_time = "2025-03-07T01:45:50.723Z" }, +] + +[[package]] +name = "nvidia-curand-cu12" +version = "10.3.9.90" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/aa/6584b56dc84ebe9cf93226a5cde4d99080c8e90ab40f0c27bda7a0f29aa1/nvidia_curand_cu12-10.3.9.90-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:b32331d4f4df5d6eefa0554c565b626c7216f87a06a4f56fab27c3b68a830ec9", size = 63619976, upload_time = "2025-03-07T01:46:23.323Z" }, +] + +[[package]] +name = "nvidia-cusolver-cu12" +version = "11.7.3.90" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "nvidia-cublas-cu12" }, + { name = "nvidia-cusparse-cu12" }, + { name = "nvidia-nvjitlink-cu12" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/85/48/9a13d2975803e8cf2777d5ed57b87a0b6ca2cc795f9a4f59796a910bfb80/nvidia_cusolver_cu12-11.7.3.90-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:4376c11ad263152bd50ea295c05370360776f8c3427b30991df774f9fb26c450", size = 267506905, upload_time = "2025-03-07T01:47:16.273Z" }, +] + +[[package]] +name = "nvidia-cusparse-cu12" +version = "12.5.8.93" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "nvidia-nvjitlink-cu12" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/c2/f5/e1854cb2f2bcd4280c44736c93550cc300ff4b8c95ebe370d0aa7d2b473d/nvidia_cusparse_cu12-12.5.8.93-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1ec05d76bbbd8b61b06a80e1eaf8cf4959c3d4ce8e711b65ebd0443bb0ebb13b", size = 288216466, upload_time = "2025-03-07T01:48:13.779Z" }, +] + +[[package]] +name = "nvidia-cusparselt-cu12" +version = "0.7.1" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/56/79/12978b96bd44274fe38b5dde5cfb660b1d114f70a65ef962bcbbed99b549/nvidia_cusparselt_cu12-0.7.1-py3-none-manylinux2014_x86_64.whl", hash = "sha256:f1bb701d6b930d5a7cea44c19ceb973311500847f81b634d802b7b539dc55623", size = 287193691, upload_time = "2025-02-26T00:15:44.104Z" }, +] + +[[package]] +name = "nvidia-nccl-cu12" +version = "2.27.3" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5c/5b/4e4fff7bad39adf89f735f2bc87248c81db71205b62bcc0d5ca5b606b3c3/nvidia_nccl_cu12-2.27.3-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:adf27ccf4238253e0b826bce3ff5fa532d65fc42322c8bfdfaf28024c0fbe039", size = 322364134, upload_time = "2025-06-03T21:58:04.013Z" }, +] + +[[package]] +name = "nvidia-nvjitlink-cu12" +version = "12.8.93" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f6/74/86a07f1d0f42998ca31312f998bd3b9a7eff7f52378f4f270c8679c77fb9/nvidia_nvjitlink_cu12-12.8.93-py3-none-manylinux2010_x86_64.manylinux_2_12_x86_64.whl", hash = "sha256:81ff63371a7ebd6e6451970684f916be2eab07321b73c9d244dc2b4da7f73b88", size = 39254836, upload_time = "2025-03-07T01:49:55.661Z" }, +] + +[[package]] +name = "nvidia-nvtx-cu12" +version = "12.8.90" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a2/eb/86626c1bbc2edb86323022371c39aa48df6fd8b0a1647bc274577f72e90b/nvidia_nvtx_cu12-12.8.90-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5b17e2001cc0d751a5bc2c6ec6d26ad95913324a4adb86788c944f8ce9ba441f", size = 89954, upload_time = "2025-03-07T01:42:44.131Z" }, +] + [[package]] name = "nwbinspector" version = "0.6.5" @@ -1532,6 +1764,67 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/15/18/b0e1fafe59051de9e79cdd431863b03593ecfa8341c110affad7c8121efc/ruamel.yaml.clib-0.2.14-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:e7cb9ad1d525d40f7d87b6df7c0ff916a66bc52cb61b66ac1b2a16d0c1b07640", size = 764456, upload_time = "2025-09-22T19:51:11.736Z" }, ] +[[package]] +name = "scipy" +version = "1.16.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/4c/3b/546a6f0bfe791bbb7f8d591613454d15097e53f906308ec6f7c1ce588e8e/scipy-1.16.2.tar.gz", hash = "sha256:af029b153d243a80afb6eabe40b0a07f8e35c9adc269c019f364ad747f826a6b", size = 30580599, upload_time = "2025-09-11T17:48:08.271Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/8d/6396e00db1282279a4ddd507c5f5e11f606812b608ee58517ce8abbf883f/scipy-1.16.2-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:89d6c100fa5c48472047632e06f0876b3c4931aac1f4291afc81a3644316bb0d", size = 36646259, upload_time = "2025-09-11T17:40:39.329Z" }, + { url = "https://files.pythonhosted.org/packages/3b/93/ea9edd7e193fceb8eef149804491890bde73fb169c896b61aa3e2d1e4e77/scipy-1.16.2-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:ca748936cd579d3f01928b30a17dc474550b01272d8046e3e1ee593f23620371", size = 28888976, upload_time = "2025-09-11T17:40:46.82Z" }, + { url = "https://files.pythonhosted.org/packages/91/4d/281fddc3d80fd738ba86fd3aed9202331180b01e2c78eaae0642f22f7e83/scipy-1.16.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:fac4f8ce2ddb40e2e3d0f7ec36d2a1e7f92559a2471e59aec37bd8d9de01fec0", size = 20879905, upload_time = "2025-09-11T17:40:52.545Z" }, + { url = "https://files.pythonhosted.org/packages/69/40/b33b74c84606fd301b2915f0062e45733c6ff5708d121dd0deaa8871e2d0/scipy-1.16.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:033570f1dcefd79547a88e18bccacff025c8c647a330381064f561d43b821232", size = 23553066, upload_time = "2025-09-11T17:40:59.014Z" }, + { url = "https://files.pythonhosted.org/packages/55/a7/22c739e2f21a42cc8f16bc76b47cff4ed54fbe0962832c589591c2abec34/scipy-1.16.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ea3421209bf00c8a5ef2227de496601087d8f638a2363ee09af059bd70976dc1", size = 33336407, upload_time = "2025-09-11T17:41:06.796Z" }, + { url = "https://files.pythonhosted.org/packages/53/11/a0160990b82999b45874dc60c0c183d3a3a969a563fffc476d5a9995c407/scipy-1.16.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f66bd07ba6f84cd4a380b41d1bf3c59ea488b590a2ff96744845163309ee8e2f", size = 35673281, upload_time = "2025-09-11T17:41:15.055Z" }, + { url = "https://files.pythonhosted.org/packages/96/53/7ef48a4cfcf243c3d0f1643f5887c81f29fdf76911c4e49331828e19fc0a/scipy-1.16.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5e9feab931bd2aea4a23388c962df6468af3d808ddf2d40f94a81c5dc38f32ef", size = 36004222, upload_time = "2025-09-11T17:41:23.868Z" }, + { url = "https://files.pythonhosted.org/packages/49/7f/71a69e0afd460049d41c65c630c919c537815277dfea214031005f474d78/scipy-1.16.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:03dfc75e52f72cf23ec2ced468645321407faad8f0fe7b1f5b49264adbc29cb1", size = 38664586, upload_time = "2025-09-11T17:41:31.021Z" }, + { url = "https://files.pythonhosted.org/packages/34/95/20e02ca66fb495a95fba0642fd48e0c390d0ece9b9b14c6e931a60a12dea/scipy-1.16.2-cp312-cp312-win_amd64.whl", hash = "sha256:0ce54e07bbb394b417457409a64fd015be623f36e330ac49306433ffe04bc97e", size = 38550641, upload_time = "2025-09-11T17:41:36.61Z" }, + { url = "https://files.pythonhosted.org/packages/92/ad/13646b9beb0a95528ca46d52b7babafbe115017814a611f2065ee4e61d20/scipy-1.16.2-cp312-cp312-win_arm64.whl", hash = "sha256:2a8ffaa4ac0df81a0b94577b18ee079f13fecdb924df3328fc44a7dc5ac46851", size = 25456070, upload_time = "2025-09-11T17:41:41.3Z" }, + { url = "https://files.pythonhosted.org/packages/c1/27/c5b52f1ee81727a9fc457f5ac1e9bf3d6eab311805ea615c83c27ba06400/scipy-1.16.2-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:84f7bf944b43e20b8a894f5fe593976926744f6c185bacfcbdfbb62736b5cc70", size = 36604856, upload_time = "2025-09-11T17:41:47.695Z" }, + { url = "https://files.pythonhosted.org/packages/32/a9/15c20d08e950b540184caa8ced675ba1128accb0e09c653780ba023a4110/scipy-1.16.2-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:5c39026d12edc826a1ef2ad35ad1e6d7f087f934bb868fc43fa3049c8b8508f9", size = 28864626, upload_time = "2025-09-11T17:41:52.642Z" }, + { url = "https://files.pythonhosted.org/packages/4c/fc/ea36098df653cca26062a627c1a94b0de659e97127c8491e18713ca0e3b9/scipy-1.16.2-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:e52729ffd45b68777c5319560014d6fd251294200625d9d70fd8626516fc49f5", size = 20855689, upload_time = "2025-09-11T17:41:57.886Z" }, + { url = "https://files.pythonhosted.org/packages/dc/6f/d0b53be55727f3e6d7c72687ec18ea6d0047cf95f1f77488b99a2bafaee1/scipy-1.16.2-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:024dd4a118cccec09ca3209b7e8e614931a6ffb804b2a601839499cb88bdf925", size = 23512151, upload_time = "2025-09-11T17:42:02.303Z" }, + { url = "https://files.pythonhosted.org/packages/11/85/bf7dab56e5c4b1d3d8eef92ca8ede788418ad38a7dc3ff50262f00808760/scipy-1.16.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7a5dc7ee9c33019973a470556081b0fd3c9f4c44019191039f9769183141a4d9", size = 33329824, upload_time = "2025-09-11T17:42:07.549Z" }, + { url = "https://files.pythonhosted.org/packages/da/6a/1a927b14ddc7714111ea51f4e568203b2bb6ed59bdd036d62127c1a360c8/scipy-1.16.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c2275ff105e508942f99d4e3bc56b6ef5e4b3c0af970386ca56b777608ce95b7", size = 35681881, upload_time = "2025-09-11T17:42:13.255Z" }, + { url = "https://files.pythonhosted.org/packages/c1/5f/331148ea5780b4fcc7007a4a6a6ee0a0c1507a796365cc642d4d226e1c3a/scipy-1.16.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:af80196eaa84f033e48444d2e0786ec47d328ba00c71e4299b602235ffef9acb", size = 36006219, upload_time = "2025-09-11T17:42:18.765Z" }, + { url = "https://files.pythonhosted.org/packages/46/3a/e991aa9d2aec723b4a8dcfbfc8365edec5d5e5f9f133888067f1cbb7dfc1/scipy-1.16.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9fb1eb735fe3d6ed1f89918224e3385fbf6f9e23757cacc35f9c78d3b712dd6e", size = 38682147, upload_time = "2025-09-11T17:42:25.177Z" }, + { url = "https://files.pythonhosted.org/packages/a1/57/0f38e396ad19e41b4c5db66130167eef8ee620a49bc7d0512e3bb67e0cab/scipy-1.16.2-cp313-cp313-win_amd64.whl", hash = "sha256:fda714cf45ba43c9d3bae8f2585c777f64e3f89a2e073b668b32ede412d8f52c", size = 38520766, upload_time = "2025-09-11T17:43:25.342Z" }, + { url = "https://files.pythonhosted.org/packages/1b/a5/85d3e867b6822d331e26c862a91375bb7746a0b458db5effa093d34cdb89/scipy-1.16.2-cp313-cp313-win_arm64.whl", hash = "sha256:2f5350da923ccfd0b00e07c3e5cfb316c1c0d6c1d864c07a72d092e9f20db104", size = 25451169, upload_time = "2025-09-11T17:43:30.198Z" }, + { url = "https://files.pythonhosted.org/packages/09/d9/60679189bcebda55992d1a45498de6d080dcaf21ce0c8f24f888117e0c2d/scipy-1.16.2-cp313-cp313t-macosx_10_14_x86_64.whl", hash = "sha256:53d8d2ee29b925344c13bda64ab51785f016b1b9617849dac10897f0701b20c1", size = 37012682, upload_time = "2025-09-11T17:42:30.677Z" }, + { url = "https://files.pythonhosted.org/packages/83/be/a99d13ee4d3b7887a96f8c71361b9659ba4ef34da0338f14891e102a127f/scipy-1.16.2-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:9e05e33657efb4c6a9d23bd8300101536abd99c85cca82da0bffff8d8764d08a", size = 29389926, upload_time = "2025-09-11T17:42:35.845Z" }, + { url = "https://files.pythonhosted.org/packages/bf/0a/130164a4881cec6ca8c00faf3b57926f28ed429cd6001a673f83c7c2a579/scipy-1.16.2-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:7fe65b36036357003b3ef9d37547abeefaa353b237e989c21027b8ed62b12d4f", size = 21381152, upload_time = "2025-09-11T17:42:40.07Z" }, + { url = "https://files.pythonhosted.org/packages/47/a6/503ffb0310ae77fba874e10cddfc4a1280bdcca1d13c3751b8c3c2996cf8/scipy-1.16.2-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:6406d2ac6d40b861cccf57f49592f9779071655e9f75cd4f977fa0bdd09cb2e4", size = 23914410, upload_time = "2025-09-11T17:42:44.313Z" }, + { url = "https://files.pythonhosted.org/packages/fa/c7/1147774bcea50d00c02600aadaa919facbd8537997a62496270133536ed6/scipy-1.16.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ff4dc42bd321991fbf611c23fc35912d690f731c9914bf3af8f417e64aca0f21", size = 33481880, upload_time = "2025-09-11T17:42:49.325Z" }, + { url = "https://files.pythonhosted.org/packages/6a/74/99d5415e4c3e46b2586f30cdbecb95e101c7192628a484a40dd0d163811a/scipy-1.16.2-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:654324826654d4d9133e10675325708fb954bc84dae6e9ad0a52e75c6b1a01d7", size = 35791425, upload_time = "2025-09-11T17:42:54.711Z" }, + { url = "https://files.pythonhosted.org/packages/1b/ee/a6559de7c1cc710e938c0355d9d4fbcd732dac4d0d131959d1f3b63eb29c/scipy-1.16.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:63870a84cd15c44e65220eaed2dac0e8f8b26bbb991456a033c1d9abfe8a94f8", size = 36178622, upload_time = "2025-09-11T17:43:00.375Z" }, + { url = "https://files.pythonhosted.org/packages/4e/7b/f127a5795d5ba8ece4e0dce7d4a9fb7cb9e4f4757137757d7a69ab7d4f1a/scipy-1.16.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:fa01f0f6a3050fa6a9771a95d5faccc8e2f5a92b4a2e5440a0fa7264a2398472", size = 38783985, upload_time = "2025-09-11T17:43:06.661Z" }, + { url = "https://files.pythonhosted.org/packages/3e/9f/bc81c1d1e033951eb5912cd3750cc005943afa3e65a725d2443a3b3c4347/scipy-1.16.2-cp313-cp313t-win_amd64.whl", hash = "sha256:116296e89fba96f76353a8579820c2512f6e55835d3fad7780fece04367de351", size = 38631367, upload_time = "2025-09-11T17:43:14.44Z" }, + { url = "https://files.pythonhosted.org/packages/d6/5e/2cc7555fd81d01814271412a1d59a289d25f8b63208a0a16c21069d55d3e/scipy-1.16.2-cp313-cp313t-win_arm64.whl", hash = "sha256:98e22834650be81d42982360382b43b17f7ba95e0e6993e2a4f5b9ad9283a94d", size = 25787992, upload_time = "2025-09-11T17:43:19.745Z" }, + { url = "https://files.pythonhosted.org/packages/8b/ac/ad8951250516db71619f0bd3b2eb2448db04b720a003dd98619b78b692c0/scipy-1.16.2-cp314-cp314-macosx_10_14_x86_64.whl", hash = "sha256:567e77755019bb7461513c87f02bb73fb65b11f049aaaa8ca17cfaa5a5c45d77", size = 36595109, upload_time = "2025-09-11T17:43:35.713Z" }, + { url = "https://files.pythonhosted.org/packages/ff/f6/5779049ed119c5b503b0f3dc6d6f3f68eefc3a9190d4ad4c276f854f051b/scipy-1.16.2-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:17d9bb346194e8967296621208fcdfd39b55498ef7d2f376884d5ac47cec1a70", size = 28859110, upload_time = "2025-09-11T17:43:40.814Z" }, + { url = "https://files.pythonhosted.org/packages/82/09/9986e410ae38bf0a0c737ff8189ac81a93b8e42349aac009891c054403d7/scipy-1.16.2-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:0a17541827a9b78b777d33b623a6dcfe2ef4a25806204d08ead0768f4e529a88", size = 20850110, upload_time = "2025-09-11T17:43:44.981Z" }, + { url = "https://files.pythonhosted.org/packages/0d/ad/485cdef2d9215e2a7df6d61b81d2ac073dfacf6ae24b9ae87274c4e936ae/scipy-1.16.2-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:d7d4c6ba016ffc0f9568d012f5f1eb77ddd99412aea121e6fa8b4c3b7cbad91f", size = 23497014, upload_time = "2025-09-11T17:43:49.074Z" }, + { url = "https://files.pythonhosted.org/packages/a7/74/f6a852e5d581122b8f0f831f1d1e32fb8987776ed3658e95c377d308ed86/scipy-1.16.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:9702c4c023227785c779cba2e1d6f7635dbb5b2e0936cdd3a4ecb98d78fd41eb", size = 33401155, upload_time = "2025-09-11T17:43:54.661Z" }, + { url = "https://files.pythonhosted.org/packages/d9/f5/61d243bbc7c6e5e4e13dde9887e84a5cbe9e0f75fd09843044af1590844e/scipy-1.16.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d1cdf0ac28948d225decdefcc45ad7dd91716c29ab56ef32f8e0d50657dffcc7", size = 35691174, upload_time = "2025-09-11T17:44:00.101Z" }, + { url = "https://files.pythonhosted.org/packages/03/99/59933956331f8cc57e406cdb7a483906c74706b156998f322913e789c7e1/scipy-1.16.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:70327d6aa572a17c2941cdfb20673f82e536e91850a2e4cb0c5b858b690e1548", size = 36070752, upload_time = "2025-09-11T17:44:05.619Z" }, + { url = "https://files.pythonhosted.org/packages/c6/7d/00f825cfb47ee19ef74ecf01244b43e95eae74e7e0ff796026ea7cd98456/scipy-1.16.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5221c0b2a4b58aa7c4ed0387d360fd90ee9086d383bb34d9f2789fafddc8a936", size = 38701010, upload_time = "2025-09-11T17:44:11.322Z" }, + { url = "https://files.pythonhosted.org/packages/e4/9f/b62587029980378304ba5a8563d376c96f40b1e133daacee76efdcae32de/scipy-1.16.2-cp314-cp314-win_amd64.whl", hash = "sha256:f5a85d7b2b708025af08f060a496dd261055b617d776fc05a1a1cc69e09fe9ff", size = 39360061, upload_time = "2025-09-11T17:45:09.814Z" }, + { url = "https://files.pythonhosted.org/packages/82/04/7a2f1609921352c7fbee0815811b5050582f67f19983096c4769867ca45f/scipy-1.16.2-cp314-cp314-win_arm64.whl", hash = "sha256:2cc73a33305b4b24556957d5857d6253ce1e2dcd67fa0ff46d87d1670b3e1e1d", size = 26126914, upload_time = "2025-09-11T17:45:14.73Z" }, + { url = "https://files.pythonhosted.org/packages/51/b9/60929ce350c16b221928725d2d1d7f86cf96b8bc07415547057d1196dc92/scipy-1.16.2-cp314-cp314t-macosx_10_14_x86_64.whl", hash = "sha256:9ea2a3fed83065d77367775d689401a703d0f697420719ee10c0780bcab594d8", size = 37013193, upload_time = "2025-09-11T17:44:16.757Z" }, + { url = "https://files.pythonhosted.org/packages/2a/41/ed80e67782d4bc5fc85a966bc356c601afddd175856ba7c7bb6d9490607e/scipy-1.16.2-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:7280d926f11ca945c3ef92ba960fa924e1465f8d07ce3a9923080363390624c4", size = 29390172, upload_time = "2025-09-11T17:44:21.783Z" }, + { url = "https://files.pythonhosted.org/packages/c4/a3/2f673ace4090452696ccded5f5f8efffb353b8f3628f823a110e0170b605/scipy-1.16.2-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:8afae1756f6a1fe04636407ef7dbece33d826a5d462b74f3d0eb82deabefd831", size = 21381326, upload_time = "2025-09-11T17:44:25.982Z" }, + { url = "https://files.pythonhosted.org/packages/42/bf/59df61c5d51395066c35836b78136accf506197617c8662e60ea209881e1/scipy-1.16.2-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:5c66511f29aa8d233388e7416a3f20d5cae7a2744d5cee2ecd38c081f4e861b3", size = 23915036, upload_time = "2025-09-11T17:44:30.527Z" }, + { url = "https://files.pythonhosted.org/packages/91/c3/edc7b300dc16847ad3672f1a6f3f7c5d13522b21b84b81c265f4f2760d4a/scipy-1.16.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:efe6305aeaa0e96b0ccca5ff647a43737d9a092064a3894e46c414db84bc54ac", size = 33484341, upload_time = "2025-09-11T17:44:35.981Z" }, + { url = "https://files.pythonhosted.org/packages/26/c7/24d1524e72f06ff141e8d04b833c20db3021020563272ccb1b83860082a9/scipy-1.16.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7f3a337d9ae06a1e8d655ee9d8ecb835ea5ddcdcbd8d23012afa055ab014f374", size = 35790840, upload_time = "2025-09-11T17:44:41.76Z" }, + { url = "https://files.pythonhosted.org/packages/aa/b7/5aaad984eeedd56858dc33d75efa59e8ce798d918e1033ef62d2708f2c3d/scipy-1.16.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:bab3605795d269067d8ce78a910220262711b753de8913d3deeaedb5dded3bb6", size = 36174716, upload_time = "2025-09-11T17:44:47.316Z" }, + { url = "https://files.pythonhosted.org/packages/fd/c2/e276a237acb09824822b0ada11b028ed4067fdc367a946730979feacb870/scipy-1.16.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:b0348d8ddb55be2a844c518cd8cc8deeeb8aeba707cf834db5758fc89b476a2c", size = 38790088, upload_time = "2025-09-11T17:44:53.011Z" }, + { url = "https://files.pythonhosted.org/packages/c6/b4/5c18a766e8353015439f3780f5fc473f36f9762edc1a2e45da3ff5a31b21/scipy-1.16.2-cp314-cp314t-win_amd64.whl", hash = "sha256:26284797e38b8a75e14ea6631d29bda11e76ceaa6ddb6fdebbfe4c4d90faf2f9", size = 39457455, upload_time = "2025-09-11T17:44:58.899Z" }, + { url = "https://files.pythonhosted.org/packages/97/30/2f9a5243008f76dfc5dee9a53dfb939d9b31e16ce4bd4f2e628bfc5d89d2/scipy-1.16.2-cp314-cp314t-win_arm64.whl", hash = "sha256:d2a4472c231328d4de38d5f1f68fdd6d28a615138f842580a8a321b5845cf779", size = 26448374, upload_time = "2025-09-11T17:45:03.45Z" }, +] + [[package]] name = "secretstorage" version = "3.4.0" @@ -1554,6 +1847,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6a/23/8146aad7d88f4fcb3a6218f41a60f6c2d4e3a72de72da1825dc7c8f7877c/semantic_version-2.10.0-py2.py3-none-any.whl", hash = "sha256:de78a3b8e0feda74cabc54aab2da702113e33ac9d9eb9d2389bcf1f58b7d9177", size = 15552, upload_time = "2022-05-26T13:35:21.206Z" }, ] +[[package]] +name = "setuptools" +version = "80.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/18/5d/3bf57dcd21979b887f014ea83c24ae194cfcd12b9e0fda66b957c69d1fca/setuptools-80.9.0.tar.gz", hash = "sha256:f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c", size = 1319958, upload_time = "2025-05-27T00:56:51.443Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a3/dc/17031897dae0efacfea57dfd3a82fdd2a2aeb58e0ff71b77b87e44edc772/setuptools-80.9.0-py3-none-any.whl", hash = "sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922", size = 1201486, upload_time = "2025-05-27T00:56:49.664Z" }, +] + [[package]] name = "six" version = "1.17.0" @@ -1563,6 +1865,27 @@ wheels = [ { 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 = "ssm" +version = "1.0.0" +source = { git = "https://github.com/ncguilbeault/lds_python?rev=75e3e5e92ce6344009b62a5034db49b238db63ef#75e3e5e92ce6344009b62a5034db49b238db63ef" } +dependencies = [ + { name = "numpy" }, + { name = "scipy" }, +] + +[[package]] +name = "sympy" +version = "1.14.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mpmath" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/83/d3/803453b36afefb7c2bb238361cd4ae6125a569b4db67cd9e79846ba2d68c/sympy-1.14.0.tar.gz", hash = "sha256:d3d3fe8df1e5a0b42f0e7bdf50541697dbe7d23746e894990c030e2b05e72517", size = 7793921, upload_time = "2025-04-27T18:05:01.611Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a2/09/77d55d46fd61b4a135c444fc97158ef34a095e5681d0a6c10b75bf356191/sympy-1.14.0-py3-none-any.whl", hash = "sha256:e091cc3e99d2141a0ba2847328f5479b05d94a6635cb96148ccb3f34671bd8f5", size = 6299353, upload_time = "2025-04-27T18:04:59.103Z" }, +] + [[package]] name = "tenacity" version = "9.1.2" @@ -1603,6 +1926,49 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/32/d5/f9a850d79b0851d1d4ef6456097579a9005b31fea68726a4ae5f2d82ddd9/threadpoolctl-3.6.0-py3-none-any.whl", hash = "sha256:43a0b8fd5a2928500110039e43a5eed8480b918967083ea48dc3ab9f13c4a7fb", size = 18638, upload_time = "2025-03-13T13:49:21.846Z" }, ] +[[package]] +name = "torch" +version = "2.8.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "filelock" }, + { name = "fsspec" }, + { name = "jinja2" }, + { name = "networkx" }, + { name = "nvidia-cublas-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-cuda-cupti-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-cuda-nvrtc-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-cuda-runtime-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-cudnn-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-cufft-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-cufile-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-curand-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-cusolver-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-cusparse-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-cusparselt-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-nccl-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-nvjitlink-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-nvtx-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "setuptools" }, + { name = "sympy" }, + { name = "triton", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "typing-extensions" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/49/0c/2fd4df0d83a495bb5e54dca4474c4ec5f9c62db185421563deeb5dabf609/torch-2.8.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:e2fab4153768d433f8ed9279c8133a114a034a61e77a3a104dcdf54388838705", size = 101906089, upload_time = "2025-08-06T14:53:52.631Z" }, + { url = "https://files.pythonhosted.org/packages/99/a8/6acf48d48838fb8fe480597d98a0668c2beb02ee4755cc136de92a0a956f/torch-2.8.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:b2aca0939fb7e4d842561febbd4ffda67a8e958ff725c1c27e244e85e982173c", size = 887913624, upload_time = "2025-08-06T14:56:44.33Z" }, + { url = "https://files.pythonhosted.org/packages/af/8a/5c87f08e3abd825c7dfecef5a0f1d9aa5df5dd0e3fd1fa2f490a8e512402/torch-2.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:2f4ac52f0130275d7517b03a33d2493bab3693c83dcfadf4f81688ea82147d2e", size = 241326087, upload_time = "2025-08-06T14:53:46.503Z" }, + { url = "https://files.pythonhosted.org/packages/be/66/5c9a321b325aaecb92d4d1855421e3a055abd77903b7dab6575ca07796db/torch-2.8.0-cp312-none-macosx_11_0_arm64.whl", hash = "sha256:619c2869db3ada2c0105487ba21b5008defcc472d23f8b80ed91ac4a380283b0", size = 73630478, upload_time = "2025-08-06T14:53:57.144Z" }, + { url = "https://files.pythonhosted.org/packages/10/4e/469ced5a0603245d6a19a556e9053300033f9c5baccf43a3d25ba73e189e/torch-2.8.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:2b2f96814e0345f5a5aed9bf9734efa913678ed19caf6dc2cddb7930672d6128", size = 101936856, upload_time = "2025-08-06T14:54:01.526Z" }, + { url = "https://files.pythonhosted.org/packages/16/82/3948e54c01b2109238357c6f86242e6ecbf0c63a1af46906772902f82057/torch-2.8.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:65616ca8ec6f43245e1f5f296603e33923f4c30f93d65e103d9e50c25b35150b", size = 887922844, upload_time = "2025-08-06T14:55:50.78Z" }, + { url = "https://files.pythonhosted.org/packages/e3/54/941ea0a860f2717d86a811adf0c2cd01b3983bdd460d0803053c4e0b8649/torch-2.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:659df54119ae03e83a800addc125856effda88b016dfc54d9f65215c3975be16", size = 241330968, upload_time = "2025-08-06T14:54:45.293Z" }, + { url = "https://files.pythonhosted.org/packages/de/69/8b7b13bba430f5e21d77708b616f767683629fc4f8037564a177d20f90ed/torch-2.8.0-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:1a62a1ec4b0498930e2543535cf70b1bef8c777713de7ceb84cd79115f553767", size = 73915128, upload_time = "2025-08-06T14:54:34.769Z" }, + { url = "https://files.pythonhosted.org/packages/15/0e/8a800e093b7f7430dbaefa80075aee9158ec22e4c4fc3c1a66e4fb96cb4f/torch-2.8.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:83c13411a26fac3d101fe8035a6b0476ae606deb8688e904e796a3534c197def", size = 102020139, upload_time = "2025-08-06T14:54:39.047Z" }, + { url = "https://files.pythonhosted.org/packages/4a/15/5e488ca0bc6162c86a33b58642bc577c84ded17c7b72d97e49b5833e2d73/torch-2.8.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:8f0a9d617a66509ded240add3754e462430a6c1fc5589f86c17b433dd808f97a", size = 887990692, upload_time = "2025-08-06T14:56:18.286Z" }, + { url = "https://files.pythonhosted.org/packages/b4/a8/6a04e4b54472fc5dba7ca2341ab219e529f3c07b6941059fbf18dccac31f/torch-2.8.0-cp313-cp313t-win_amd64.whl", hash = "sha256:a7242b86f42be98ac674b88a4988643b9bc6145437ec8f048fea23f72feb5eca", size = 241603453, upload_time = "2025-08-06T14:55:22.945Z" }, + { url = "https://files.pythonhosted.org/packages/04/6e/650bb7f28f771af0cb791b02348db8b7f5f64f40f6829ee82aa6ce99aabe/torch-2.8.0-cp313-none-macosx_11_0_arm64.whl", hash = "sha256:7b677e17f5a3e69fdef7eb3b9da72622f8d322692930297e4ccb52fefc6c8211", size = 73632395, upload_time = "2025-08-06T14:55:28.645Z" }, +] + [[package]] name = "tqdm" version = "4.67.1" @@ -1615,6 +1981,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2", size = 78540, upload_time = "2024-11-24T20:12:19.698Z" }, ] +[[package]] +name = "triton" +version = "3.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "setuptools" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/d0/66/b1eb52839f563623d185f0927eb3530ee4d5ffe9d377cdaf5346b306689e/triton-3.4.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:31c1d84a5c0ec2c0f8e8a072d7fd150cab84a9c239eaddc6706c081bfae4eb04", size = 155560068, upload_time = "2025-07-30T19:58:37.081Z" }, + { url = "https://files.pythonhosted.org/packages/30/7b/0a685684ed5322d2af0bddefed7906674f67974aa88b0fae6e82e3b766f6/triton-3.4.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:00be2964616f4c619193cb0d1b29a99bd4b001d7dc333816073f92cf2a8ccdeb", size = 155569223, upload_time = "2025-07-30T19:58:44.017Z" }, + { url = "https://files.pythonhosted.org/packages/20/63/8cb444ad5cdb25d999b7d647abac25af0ee37d292afc009940c05b82dda0/triton-3.4.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7936b18a3499ed62059414d7df563e6c163c5e16c3773678a3ee3d417865035d", size = 155659780, upload_time = "2025-07-30T19:58:51.171Z" }, +] + [[package]] name = "types-python-dateutil" version = "2.9.0.20250822" From a95e88e5ebf82e59f2fb1a465fee45e67c1b7571 Mon Sep 17 00:00:00 2001 From: ncguilbeault Date: Mon, 13 Oct 2025 18:03:48 +0100 Subject: [PATCH 07/17] Updated name of dataset to load --- .../EstimatingParameters/EstimateParameters.bonsai | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/EstimateParameters.bonsai b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/EstimateParameters.bonsai index 50c63b3..af8b0a8 100644 --- a/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/EstimateParameters.bonsai +++ b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/EstimateParameters.bonsai @@ -17,7 +17,7 @@ - ../../../../datasets/transformed_binned_spikes.bin + ../../../../datasets/sub-Jenkins_ses-small_desc-train_behavior+ecephys.bin 0 0 142 From 04a1fff0d92f66fe31e5a162d38a46563d81eb70 Mon Sep 17 00:00:00 2001 From: ncguilbeault Date: Mon, 13 Oct 2025 18:50:26 +0100 Subject: [PATCH 08/17] Updated READMEs of examples with updated references to training and testing datasets --- .../NeuralLatents/EstimatingParameters/README.md | 4 ++-- .../NeuralLatents/OnlineFiltering/README.md | 12 ++++++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/README.md b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/README.md index 886ea43..7b5082a 100644 --- a/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/README.md +++ b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/README.md @@ -13,7 +13,7 @@ cd examples/Torch.LDS/NeuralLatents/EstimatingParameters uv run download_data.py ``` -When the script finishes, you should see a file called `transformed_binned_spikes.bin` inside the `datasets` folders. +When the script finishes, you should see 2 different datasets saved, one for training and the other for testing. ### Running the Workflow @@ -23,7 +23,7 @@ The example workflow is shown here: ![Estimate Parameters](EstimateParameters.bonsai) ::: -The first group node, `LoadData`, loads the entire `datasets/transformed_binned_spikes.bin` file into memory and converts it into a `Tensor` object. It then reshapes it so that the dimensions are `time` x `neurons` and passes it to a `ReplaySubject` called `SpikeCounts` to be used in the downstream processing pipeline. In this example, the entire batch of data are loaded. +The first group node, `LoadData`, loads the training dataset and converts it into a `Tensor` object. It then reshapes it so that the dimensions are `time` x `neurons` and passes it to a `ReplaySubject` called `SpikeCounts` to be used in the downstream processing pipeline. In this example, the entire batch of data are loaded. The `LoadModel` group node uses the `CreateKalmanFilter` node to specify the model. We leave the optional parameters blank. We set the `NumStates` to `10` and the `NumObservations` to `142` to match the number of spiking neurons contained in the dataset. This then feeds into a `BehaviorSubject` node called `KalmanFilterModel` for use in other parts of the workflow. diff --git a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/README.md b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/README.md index 4c42e35..43f34f5 100644 --- a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/README.md +++ b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/README.md @@ -13,7 +13,15 @@ cd examples/Torch/NeuralLatents/OnlineFiltering uv run download_data.py ``` -When the script finishes, you should see a file called `transformed_binned_spikes.bin` inside the `datasets` folders. +When the script finishes, you should see 2 different datasets saved, one for training and the other for testing. + +Next, run the python script to train the model on the training dataset and save the parameters of the model to disk. + +```bash +uv run train_model.py +``` + +You can change the training procedure by passing parameters to the script. By default, this script will run 100 iterations, which can take several hours. You may want to consider changing this amount depending on your needs. ### Running the Workflow @@ -23,7 +31,7 @@ The example workflow is shown here: ![Online Filtering of Neural Latents](OnlineFiltering.bonsai) ::: -The first group node, `LoadData`, loads the `datasets/transformed_binned_spikes.bin` file and produces a sequence of binned spike counts, one vector for each time point. Each spike count vector gets converted into a `Tensor` object. It then reshapes it into a column vector of `time` x `neurons` (in this case, time is `1`) and passes it to a `PublishSubject` called `SpikeCounts` to be used in the downstream processing pipeline. +The first group node, `LoadData`, loads the testing dataset and produces a sequence of binned spike counts, one spike count vector for each time point. Each spike count vector gets converted into a `Tensor` object and then reshaped into a column vector of `time` x `neurons` (in this case, time is `1`). This data then feeds into a `PublishSubject` called `SpikeCounts` to be used in the downstream processing pipeline. The `LoadModel` group node uses the `CreateKalmanFilter` node to specify the model. We leave most of the optional parameters blank, but use `0.01` and `0.1` as our initial guesses of the `MeasurementNoiseVariance` and `ProcessNoiseVariance`, respectively. We set the `NumStates` to `10` and the `NumObservations` to `142` to match the number of spiking neurons contained in the dataset. From d290eb55f2337eeac83b31a20be057c036465747 Mon Sep 17 00:00:00 2001 From: ncguilbeault Date: Mon, 13 Oct 2025 18:50:55 +0100 Subject: [PATCH 09/17] Added command line parsing to training model script --- .../OnlineFiltering/train_model.py | 96 ++++++++++--------- 1 file changed, 53 insertions(+), 43 deletions(-) diff --git a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/train_model.py b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/train_model.py index 2faaab2..34beb4f 100644 --- a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/train_model.py +++ b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/train_model.py @@ -1,59 +1,69 @@ import numpy as np import ssm.learning import os +import argparse -base_dir = os.path.join(os.path.realpath(os.path.dirname(__file__)), "..", "..", "..", "..", "datasets") +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument("--n_latents", type=int, default=10, + help="Number of latent states") + parser.add_argument("--max_iter", type=int, default=100, + help="Maximum number of EM iterations") + parser.add_argument("--tol", type=float, default=0.1, + help="Convergence tolerance for EM") + parser.add_argument("--output_dir", type=str, default=None, + help="Output directory to save estimated parameters. If not specified, uses the datasets directory.") + parser.add_argument("--seed", type=int, default=0, + help="Random seed for reproducibility") + parser.add_argument("--vars_to_estimate", type=str, default="B,Q,Z,R,m0,V0", + help="Comma-separated list of variables to estimate. Options are B, Q, Z, R, m0, V0.") + args = parser.parse_args() -print("Loading training data...") + n_latents = args.n_latents + max_iter = args.max_iter + tol = args.tol + output_dir = args.output_dir + seed = args.seed + vars_to_estimate_list = [var.strip() for var in args.vars_to_estimate.split(",")] + vars_to_estimate = {var: (var in vars_to_estimate_list) for var in ["B", "Q", "Z", "R", "m0", "V0"]} -# load training data -training_data_file = os.path.join(base_dir, "sub-Jenkins_ses-small_desc-train_behavior+ecephys.bin") + if output_dir is None: + output_dir = os.path.join(os.path.realpath(os.path.dirname(__file__)), "..", "..", "..", "..", "datasets") -n_clusters = 142 -transformed_binned_spikes = np.fromfile(training_data_file, dtype=float).reshape(-1, n_clusters).T + print("Loading training data...") -print("Initializing model...") + # load training data + training_data_file = os.path.join(output_dir, "sub-Jenkins_ses-small_desc-train_behavior+ecephys.bin") -# model -n_latents = 10 + n_clusters = 142 + transformed_binned_spikes = np.fromfile(training_data_file, dtype=float).reshape(-1, n_clusters).T -# estimation initial conditions -sigma_B = 0.1 -sigma_Z = 0.1 -sigma_Q = 0.1 -sigma_R = 0.1 -sigma_m0 = 0.1 -sigma_V0 = 0.1 + print("Initializing model...") -# estimation parameters -max_iter = 100 -tol = 0.1 -vars_to_estimate = {"B": True, "Q": True, "Z": True, "R": True, - "m0": True, "V0": True, } + # initialize model + np.random.seed(seed) -np.random.seed(0) + B0 = np.diag(np.random.normal(loc=0, scale=0.1, size=n_latents)) + Z0 = np.random.normal(loc=0, scale=0.1, size=(n_clusters, n_latents)) + Q0 = np.diag(np.abs(np.random.normal(loc=0, scale=0.1, size=n_latents))) + R0 = np.diag(np.abs(np.random.normal(loc=0, scale=0.1, size=n_clusters))) + m0_0 = np.random.normal(loc=0, scale=0.1, size=n_latents) + V0_0 = np.diag(np.abs(np.random.normal(loc=0, scale=0.1, size=n_latents))) -B0 = np.diag(np.random.normal(loc=0, scale=sigma_B, size=n_latents)) -Z0 = np.random.normal(loc=0, scale=sigma_Z, size=(n_clusters, n_latents)) -Q0 = np.diag(np.abs(np.random.normal(loc=0, scale=sigma_Q, size=n_latents))) -R0 = np.diag(np.abs(np.random.normal(loc=0, scale=sigma_R, size=n_clusters))) -m0_0 = np.random.normal(loc=0, scale=sigma_m0, size=n_latents) -V0_0 = np.diag(np.abs(np.random.normal(loc=0, scale=sigma_V0, size=n_latents))) + print("Estimating parameters...") -print("Estimating parameters...") + optim_res = ssm.learning.em_SS_LDS( + y=transformed_binned_spikes, B0=B0, Q0=Q0, Z0=Z0, R0=R0, + m0_0=m0_0, V0_0=V0_0, max_iter=max_iter, tol=tol, + vars_to_estimate=vars_to_estimate, + ) -optim_res = ssm.learning.em_SS_LDS( - y=transformed_binned_spikes, B0=B0, Q0=Q0, Z0=Z0, R0=R0, - m0_0=m0_0, V0_0=V0_0, max_iter=max_iter, tol=tol, - vars_to_estimate=vars_to_estimate, -) + # Save estimated parameters + optim_res["B"].astype(float).tofile(os.path.join(output_dir, "transition_matrix.bin")) + optim_res["Z"].astype(float).tofile(os.path.join(output_dir, "measurement_function.bin")) + optim_res["Q"].astype(float).tofile(os.path.join(output_dir, "process_noise_covariance.bin")) + optim_res["R"].astype(float).tofile(os.path.join(output_dir, "measurement_noise_covariance.bin")) + optim_res["m0"].astype(float).tofile(os.path.join(output_dir, "initial_state_mean.bin")) + optim_res["V0"].astype(float).tofile(os.path.join(output_dir, "initial_state_covariance.bin")) -# Save estimated parameters -optim_res["B"].astype(float).tofile(os.path.join(base_dir, "transition_matrix.bin")) -optim_res["Z"].astype(float).tofile(os.path.join(base_dir, "measurement_function.bin")) -optim_res["Q"].astype(float).tofile(os.path.join(base_dir, "process_noise_covariance.bin")) -optim_res["R"].astype(float).tofile(os.path.join(base_dir, "measurement_noise_covariance.bin")) -optim_res["m0"].astype(float).tofile(os.path.join(base_dir, "initial_state_mean.bin")) -optim_res["V0"].astype(float).tofile(os.path.join(base_dir, "initial_state_covariance.bin")) - -print(f"Estimated parameters saved to {os.path.realpath(base_dir)}") \ No newline at end of file + print(f"Estimated parameters saved to {os.path.realpath(output_dir)}") \ No newline at end of file From 7cbf3223f4d279322c89309a9efa9624e917fad1 Mon Sep 17 00:00:00 2001 From: ncguilbeault Date: Tue, 14 Oct 2025 18:26:16 +0100 Subject: [PATCH 10/17] Added example for training a model in Bonsai and saving to disk, followed by loading in Bonsai --- .../.bonsai/Bonsai.config | 140 ++ .../.bonsai/NuGet.config | 5 + .../.bonsai/Setup.ps1 | 21 + .../.bonsai/Setup.sh | 41 + .../.bonsai/activate | 15 + .../.bonsai/deactivate | 8 + .../SavingAndLoadingParameters/.bonsai/run | 58 + .../.python-version | 1 + .../LoadModelParameters.bonsai | 128 + .../SavingAndLoadingParameters/README.md | 46 + .../SaveModelParameters.bonsai | 188 ++ .../download_data.py | 59 + .../SavingAndLoadingParameters/pyproject.toml | 18 + .../SavingAndLoadingParameters/uv.lock | 2212 +++++++++++++++++ 14 files changed, 2940 insertions(+) create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/.bonsai/Bonsai.config create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/.bonsai/NuGet.config create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/.bonsai/Setup.ps1 create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/.bonsai/Setup.sh create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/.bonsai/activate create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/.bonsai/deactivate create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/.bonsai/run create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/.python-version create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/LoadModelParameters.bonsai create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/README.md create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/SaveModelParameters.bonsai create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/download_data.py create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/pyproject.toml create mode 100644 examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/uv.lock diff --git a/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/.bonsai/Bonsai.config b/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/.bonsai/Bonsai.config new file mode 100644 index 0000000..5323629 --- /dev/null +++ b/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/.bonsai/Bonsai.config @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/.bonsai/NuGet.config b/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/.bonsai/NuGet.config new file mode 100644 index 0000000..aa5beec --- /dev/null +++ b/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/.bonsai/NuGet.config @@ -0,0 +1,5 @@ + + + + + diff --git a/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/.bonsai/Setup.ps1 b/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/.bonsai/Setup.ps1 new file mode 100644 index 0000000..76b5c46 --- /dev/null +++ b/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/.bonsai/Setup.ps1 @@ -0,0 +1,21 @@ +Push-Location $PSScriptRoot +if (!(Test-Path "./Bonsai.exe")) { + $release = "https://github.com/bonsai-rx/bonsai/releases/latest/download/Bonsai.zip" + $configPath = "./Bonsai.config" + if (Test-Path $configPath) { + [xml]$config = Get-Content $configPath + $bootstrapper = $config.PackageConfiguration.Packages.Package.where{$_.id -eq 'Bonsai'} + if ($bootstrapper) { + $version = $bootstrapper.version + $release = "https://github.com/bonsai-rx/bonsai/releases/download/$version/Bonsai.zip" + } + } + Invoke-WebRequest $release -OutFile "temp.zip" + Move-Item -Path "NuGet.config" "temp.config" -ErrorAction SilentlyContinue + Expand-Archive "temp.zip" -DestinationPath "." -Force + Move-Item -Path "temp.config" "NuGet.config" -Force -ErrorAction SilentlyContinue + Remove-Item -Path "temp.zip" + Remove-Item -Path "Bonsai32.exe" +} +& .\Bonsai.exe --no-editor +Pop-Location \ No newline at end of file diff --git a/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/.bonsai/Setup.sh b/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/.bonsai/Setup.sh new file mode 100644 index 0000000..941d850 --- /dev/null +++ b/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/.bonsai/Setup.sh @@ -0,0 +1,41 @@ +#! /bin/bash + +SETUP_SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &> /dev/null && pwd)" + +DEFAULT_VERSION="latest" +VERSION="$DEFAULT_VERSION" + +while [[ "$#" -gt 0 ]]; do + case $1 in + --version) VERSION="$2"; shift ;; + *) echo "Unknown parameter passed: $1"; exit 1 ;; + esac + shift +done + +echo "Setting up Bonsai v=$VERSION environment..." + +if [ ! -f "$SETUP_SCRIPT_DIR/Bonsai.exe" ]; then + CONFIG="$SETUP_SCRIPT_DIR/Bonsai.config" + if [ -f "$CONFIG" ]; then + DETECTED=$(xmllint --xpath '//PackageConfiguration/Packages/Package[@id="Bonsai"]/@version' "$CONFIG" | sed -e 's/^[^"]*"//' -e 's/"$//') + echo "Version detected v=$DETECTED." + RELEASE="https://github.com/bonsai-rx/bonsai/releases/download/$DETECTED/Bonsai.zip" + else + if [ $VERSION = "latest" ]; then + RELEASE="https://github.com/bonsai-rx/bonsai/releases/latest/download/Bonsai.zip" + else + RELEASE="https://github.com/bonsai-rx/bonsai/releases/download/$VERSION/Bonsai.zip" + fi + fi + echo "Download URL: $RELEASE" + wget $RELEASE -O "$SETUP_SCRIPT_DIR/temp.zip" + mv -f "$SETUP_SCRIPT_DIR/NuGet.config" "$SETUP_SCRIPT_DIR/temp.config" + unzip -d "$SETUP_SCRIPT_DIR" -o "$SETUP_SCRIPT_DIR/temp.zip" + mv -f "$SETUP_SCRIPT_DIR/temp.config" "$SETUP_SCRIPT_DIR/NuGet.config" + rm -rf "$SETUP_SCRIPT_DIR/temp.zip" + rm -rf "$SETUP_SCRIPT_DIR/Bonsai32.exe" +fi + +source "$SETUP_SCRIPT_DIR/activate" +source "$SETUP_SCRIPT_DIR/run" --no-editor diff --git a/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/.bonsai/activate b/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/.bonsai/activate new file mode 100644 index 0000000..ddf75f3 --- /dev/null +++ b/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/.bonsai/activate @@ -0,0 +1,15 @@ +#!/bin/bash +# activate.sh +if [[ -v BONSAI_EXE_PATH ]]; then + echo "Error! Cannot have multiple bonsai environments activated at the same time. Please deactivate the current environment before activating the new one." + return +fi +BONSAI_ENV_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &> /dev/null && pwd)" +export BONSAI_ENV_DIR +export BONSAI_EXE_PATH="$BONSAI_ENV_DIR/Bonsai.exe" +export ORIGINAL_PS1="$PS1" +export PS1="($(basename "$BONSAI_ENV_DIR")) $PS1" +alias bonsai='source "$BONSAI_ENV_DIR"/run' +alias bonsai-clean='GTK_DATA_PREFIX= source "$BONSAI_ENV_DIR"/run' +alias deactivate='source "$BONSAI_ENV_DIR"/deactivate' +echo "Activated bonsai environment in $BONSAI_ENV_DIR" \ No newline at end of file diff --git a/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/.bonsai/deactivate b/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/.bonsai/deactivate new file mode 100644 index 0000000..43233d9 --- /dev/null +++ b/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/.bonsai/deactivate @@ -0,0 +1,8 @@ +#!/bin/bash +unset BONSAI_EXE_PATH +export PS1="$ORIGINAL_PS1" +unset ORIGINAL_PS1 +unalias bonsai +unalias bonsai-clean +unalias deactivate +echo "Deactivated bonsai environment." \ No newline at end of file diff --git a/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/.bonsai/run b/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/.bonsai/run new file mode 100644 index 0000000..bffd6cf --- /dev/null +++ b/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/.bonsai/run @@ -0,0 +1,58 @@ +#!/bin/bash +# run.sh + +SETUP_SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &> /dev/null && pwd)" +CONFIG="$SETUP_SCRIPT_DIR/Bonsai.config" + +cleanup() { + update_paths_to_windows +} + +update_paths_to_linux() { + ASSEMBLYLOCATIONS=$(xmllint --xpath '//PackageConfiguration/AssemblyLocations/AssemblyLocation/@location' "$CONFIG" | sed -e 's/^[^"]*"//' -e 's/"$//') + for ASSEMBLYLOCATION in $ASSEMBLYLOCATIONS; do + NEWASSEMBLYLOCATION="${ASSEMBLYLOCATION//\\/\/}" + xmlstarlet edit --inplace --update "/PackageConfiguration/AssemblyLocations/AssemblyLocation[@location='$ASSEMBLYLOCATION']/@location" --value "$NEWASSEMBLYLOCATION" "$CONFIG" + done + + LIBRARYFOLDERS=$(xmllint --xpath '//PackageConfiguration/LibraryFolders/LibraryFolder/@path' "$CONFIG" | sed -e 's/^[^"]*"//' -e 's/"$//') + for LIBRARYFOLDER in $LIBRARYFOLDERS; do + NEWLIBRARYFOLDER="${LIBRARYFOLDER//\\/\/}" + xmlstarlet edit --inplace --update "//PackageConfiguration/LibraryFolders/LibraryFolder[@path='$LIBRARYFOLDER']/@path" --value "$NEWLIBRARYFOLDER" "$CONFIG" + done +} + +update_paths_to_windows() { + ASSEMBLYLOCATIONS=$(xmllint --xpath '//PackageConfiguration/AssemblyLocations/AssemblyLocation/@location' "$CONFIG" | sed -e 's/^[^"]*"//' -e 's/"$//') + for ASSEMBLYLOCATION in $ASSEMBLYLOCATIONS; do + NEWASSEMBLYLOCATION="${ASSEMBLYLOCATION//\//\\}" + xmlstarlet edit --inplace --update "/PackageConfiguration/AssemblyLocations/AssemblyLocation[@location='$ASSEMBLYLOCATION']/@location" --value "$NEWASSEMBLYLOCATION" "$CONFIG" + done + + LIBRARYFOLDERS=$(xmllint --xpath '//PackageConfiguration/LibraryFolders/LibraryFolder/@path' "$CONFIG" | sed -e 's/^[^"]*"//' -e 's/"$//') + for LIBRARYFOLDER in $LIBRARYFOLDERS; do + NEWLIBRARYFOLDER="${LIBRARYFOLDER//\//\\}" + xmlstarlet edit --inplace --update "//PackageConfiguration/LibraryFolders/LibraryFolder[@path='$LIBRARYFOLDER']/@path" --value "$NEWLIBRARYFOLDER" "$CONFIG" + done +} + +if [[ -v BONSAI_EXE_PATH ]]; then + if [ ! -f "$BONSAI_EXE_PATH" ]; then + bash "$BONSAI_ENV_DIR"/Setup.sh + bash "$BONSAI_ENV_DIR"/run "$@" + else + BONSAI_VERSION=$(xmllint --xpath "//PackageConfiguration/Packages/Package[@id='Bonsai']/@version" "$CONFIG" | sed -e 's/^[^"]*"//' -e 's/"$//') + if [[ -z ${BONSAI_VERSION+x} ]] && [ "$BONSAI_VERSION" \< "2.8.4" ]; then + echo "Updating paths to Linux format..." + trap cleanup EXIT INT TERM + update_paths_to_linux + mono "$BONSAI_EXE_PATH" "$@" + cleanup + else + mono "$BONSAI_EXE_PATH" "$@" + fi + fi +else + echo "BONSAI_EXE_PATH is not set. Please set the path to the Bonsai executable." + return +fi \ No newline at end of file diff --git a/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/.python-version b/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/.python-version new file mode 100644 index 0000000..e4fba21 --- /dev/null +++ b/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/.python-version @@ -0,0 +1 @@ +3.12 diff --git a/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/LoadModelParameters.bonsai b/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/LoadModelParameters.bonsai new file mode 100644 index 0000000..f8af411 --- /dev/null +++ b/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/LoadModelParameters.bonsai @@ -0,0 +1,128 @@ + + + + + + LoadData + + + + + ../../../../datasets/sub-Jenkins_ses-small_desc-test_ecephys.bin + 0 + 100 + 142 + 1 + F64 + ColumnMajor + + + + + + + + + + + + it.squeeze(null).unsqueeze(0) + + + SpikeCounts + + + + + + + + + + + + LoadModel + + + + + transition_matrix.bin + measurement_function.bin + process_noise_covariance.bin + measurement_noise_covariance.bin + initial_mean.bin + initial_covariance.bin + Float32 + + + + + KalmanFilter + Float64 + 10 + 142 + + + + + + + + + + + + + + + + + + InferNeuralLatents + + + + SpikeCounts + + + + KalmanFilter + + + + + KalmanFilter + + + + + + + + + + + + + + NeuralLatents + true + + + + + + + + + + \ No newline at end of file diff --git a/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/README.md b/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/README.md new file mode 100644 index 0000000..6981d8a --- /dev/null +++ b/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/README.md @@ -0,0 +1,46 @@ +# Saving and Loading Model Parameters + +In the following example, you will use the `Bonsai.ML.Lds.Torch` package to train a Kalman filter model for estimating neural latents in Bonsai, save the parameters of the model to disk, and subsequently load the parameters and create a model in a separate Bonsai workflow. + +### Download the dataset + +To run the example, you need to download the dataset from DANDI and transform the raw spike data into binned spike counts. We provide a convenient python script and `uv` environment to easily download and transform the raw data. First, make sure `uv` is installed on your computer, which you can do by following the guide [here](https://docs.astral.sh/uv/getting-started/installation/). + +Next, open up a terminal and run the following commands. + +```bash +cd examples/Torch/NeuralLatents/SavingAndLoadingParameters +uv run download_data.py +``` + +When the script finishes, you should see 2 different datasets saved, one for training and the other for testing. + +### Saving model parameters in Bonsai + +The example workflow is shown here: + +:::workflow +![Saving Model Parameters](SaveModelParameters.bonsai) +::: + +The first group node, `LoadData`, loads the training dataset and converts it into a `Tensor` object. It then reshapes it so that the dimensions are `time` x `neurons` and passes it to a `Subject` called `SpikeCounts`. In this example, the entire batch of data is loaded. + +The `LoadModel` group node uses the `CreateKalmanFilter` node to specify the model. We leave the optional parameters blank. We set the `NumStates` to `10` and the `NumObservations` to `142` to match the number of spiking neurons contained in the dataset. This then feeds into a `BehaviorSubject` node called `KalmanFilterModel` for use in other parts of the workflow. + +In the `LearnParameters` group node, the `SpikeCounts` are fed into the `ExpectationMaximization` node which uses the EM algorithm to iteratively optimize the models selected parameters given the spike count data. The EM algorithm will iterate until it reaches the `MaxIterations` count or until the algorithm converges to less than the `Tolerance`. After some time, the algorithm will finish and the output will be passed to a `BehaviorSubject` called `ExpectationMaximizationResult`. + +In the `SaveModelParameters` group node, the emission of a value from the `ExpectationMaximizationResult` subject triggers the `SaveModelParameters` node to write the model parameters to binary data files. + +### Loading model parameters in Bonsai + +The example workflow is shown here: + +:::workflow +![Loading Model Parameters](LoadModelParameters.bonsai) +::: + +The first group node, `LoadData`, loads the test dataset and converts it into a `Tensor` object. + +Inside of the `LoadModel` group node, the `LoadKalmanFilterParameters` operator reads in the data files for the different parameters of the model that were created in the previous workflow. These parameters are then used by the `CreateKalmanFilter` operator. + +In the `InferNeuralLatents` group node, the `SpikeCounts` are passed to the model and online filtering is performed, followed by orthogonalization of the values. The inferrence stream can then be visualized online. \ No newline at end of file diff --git a/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/SaveModelParameters.bonsai b/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/SaveModelParameters.bonsai new file mode 100644 index 0000000..ea68195 --- /dev/null +++ b/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/SaveModelParameters.bonsai @@ -0,0 +1,188 @@ + + + + + + LoadData + + + + + ../../../../datasets/sub-Jenkins_ses-small_desc-train_behavior+ecephys.bin + 0 + 0 + 142 + 0 + F64 + RowMajor + + + + + + + + + + + + + + 142 + -1 + + + + + + + 1 + 0 + + + + + SpikeCounts + + + + + + + + + + + + + + LoadModel + + + + + KalmanFilter + Float64 + 10 + 142 + + + + + + + + + + KalmanFilterModel + + + + + + + + + + + LearnParameters + + + + SpikeCounts + + + + KalmanFilter + 10 + 0.1 + true + true + true + true + true + true + true + + + + + + + Source1 + + + Finished + + + + + + + + + + + ExpectationMaximizationResult + + + KalmanFilterModel + + + + + + + + + + + + + + + + SaveModelParameters + + + + ExpectationMaximizationResult + + + + transition_matrix.bin + measurement_function.bin + process_noise_covariance.bin + measurement_noise_covariance.bin + initial_mean.bin + initial_covariance.bin + KalmanFilter + + + + + + + + + + + + + 1 + + + + + + + + + + \ No newline at end of file diff --git a/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/download_data.py b/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/download_data.py new file mode 100644 index 0000000..2582820 --- /dev/null +++ b/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/download_data.py @@ -0,0 +1,59 @@ +# Import libraries +import numpy as np +import remfile, h5py +from dandi.dandiapi import DandiAPIClient +from pynwb import NWBHDF5IO +import os + +# set base directory to save data +base_dir = os.path.join(os.path.realpath(os.path.dirname(__file__)), "..", "..", "..", "..", "datasets") + +# dandi dataset info +dandiset_ID = "000140" +dandi_filenames = [ + "sub-Jenkins/sub-Jenkins_ses-small_desc-train_behavior+ecephys.nwb", + "sub-Jenkins/sub-Jenkins_ses-small_desc-test_ecephys.nwb" +] + +for dandi_filepath in dandi_filenames: + + print(f"Downloading and processing {dandi_filepath}...") + + # download data using remfile and dandi + with DandiAPIClient() as client: + asset = client.get_dandiset(dandiset_ID, + "draft").get_asset_by_path(dandi_filepath) + s3_path = asset.get_content_url(follow_redirects=1, strip_query=True) + cache = remfile.DiskCache(os.path.join(base_dir, "remfile_cache")) + rf = remfile.File(s3_path, disk_cache=cache) + with h5py.File(rf, "r") as h: + with NWBHDF5IO(file=h, mode="r") as io: + nwbfile = io.read() + # extract spike sorted units dataframe + units_df = nwbfile.units.to_dataframe() + + print(f"Data downloaded. Processing spikes...") + + # bin spikes + n_clusters = units_df.shape[0] + bin_size = 0.02 + + spike_times = [units_df.iloc[n]['spike_times'] for n in range(n_clusters)] + t_max = max(max(st) for st in spike_times if len(st) > 0) + + bin_edges = np.arange(0, t_max + bin_size, bin_size) + bin_centers = (bin_edges[1:] + bin_edges[:-1]) / 2 + n_bins = len(bin_edges) - 1 + + spike_counts = np.zeros((n_clusters, n_bins), dtype=int) + + for n, spikes in enumerate(spike_times): + spike_counts[n], _ = np.histogram(spikes, bins=bin_edges) + + # transform binned spikes using square-root transform + spike_counts = np.sqrt(spike_counts + 0.5) + + output_filename = dandi_filepath.split("/")[-1].replace(".nwb", ".bin") + spike_counts.astype(float).tofile(os.path.join(base_dir, output_filename)) + + print(f"Processed spikes saved to {os.path.realpath(os.path.join(base_dir, output_filename))}") \ No newline at end of file diff --git a/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/pyproject.toml b/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/pyproject.toml new file mode 100644 index 0000000..8ae6f75 --- /dev/null +++ b/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/pyproject.toml @@ -0,0 +1,18 @@ +[project] +name = "estimatingneurallatents" +version = "0.1.0" +description = "Example for estimating neural latents" +readme = "README.md" +requires-python = ">=3.12" +dependencies = [ + "dandi>=0.71.4", + "h5py>=3.14.0", + "numpy>=2.3.3", + "pynwb>=3.1.2", + "remfile>=0.1.13", + "ssm", + "torch>=2.8.0", +] + +[tool.uv.sources] +ssm = { git = "https://github.com/ncguilbeault/lds_python", rev = "75e3e5e92ce6344009b62a5034db49b238db63ef" } diff --git a/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/uv.lock b/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/uv.lock new file mode 100644 index 0000000..2548f72 --- /dev/null +++ b/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/uv.lock @@ -0,0 +1,2212 @@ +version = 1 +revision = 2 +requires-python = ">=3.12" +resolution-markers = [ + "python_full_version >= '3.13'", + "python_full_version < '3.13'", +] + +[[package]] +name = "acres" +version = "0.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ec/ba/94b63a9af588fbf7bde25ce44d55456199654a92fb7b2337767198a824b0/acres-0.5.0.tar.gz", hash = "sha256:128b6447bf5df3b6210264feccbfa018b4ac5bd337358319aec6563f99db8f3a", size = 57750, upload_time = "2025-06-04T12:40:30.329Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/39/e8/806475fe4cdfd8635535d3fa11bd61d19b7cc94b61b9147ebdd2ab4cbbee/acres-0.5.0-py3-none-any.whl", hash = "sha256:fcc32b974b510897de0f041609b4234f9ff03e2e960aea088f63973fb106c772", size = 12703, upload_time = "2025-06-04T12:40:28.745Z" }, +] + +[[package]] +name = "aiohappyeyeballs" +version = "2.6.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/26/30/f84a107a9c4331c14b2b586036f40965c128aa4fee4dda5d3d51cb14ad54/aiohappyeyeballs-2.6.1.tar.gz", hash = "sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558", size = 22760, upload_time = "2025-03-12T01:42:48.764Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0f/15/5bf3b99495fb160b63f95972b81750f18f7f4e02ad051373b669d17d44f2/aiohappyeyeballs-2.6.1-py3-none-any.whl", hash = "sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8", size = 15265, upload_time = "2025-03-12T01:42:47.083Z" }, +] + +[[package]] +name = "aiohttp" +version = "3.12.15" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohappyeyeballs" }, + { name = "aiosignal" }, + { name = "attrs" }, + { name = "frozenlist" }, + { name = "multidict" }, + { name = "propcache" }, + { name = "yarl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9b/e7/d92a237d8802ca88483906c388f7c201bbe96cd80a165ffd0ac2f6a8d59f/aiohttp-3.12.15.tar.gz", hash = "sha256:4fc61385e9c98d72fcdf47e6dd81833f47b2f77c114c29cd64a361be57a763a2", size = 7823716, upload_time = "2025-07-29T05:52:32.215Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/63/97/77cb2450d9b35f517d6cf506256bf4f5bda3f93a66b4ad64ba7fc917899c/aiohttp-3.12.15-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:802d3868f5776e28f7bf69d349c26fc0efadb81676d0afa88ed00d98a26340b7", size = 702333, upload_time = "2025-07-29T05:50:46.507Z" }, + { url = "https://files.pythonhosted.org/packages/83/6d/0544e6b08b748682c30b9f65640d006e51f90763b41d7c546693bc22900d/aiohttp-3.12.15-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f2800614cd560287be05e33a679638e586a2d7401f4ddf99e304d98878c29444", size = 476948, upload_time = "2025-07-29T05:50:48.067Z" }, + { url = "https://files.pythonhosted.org/packages/3a/1d/c8c40e611e5094330284b1aea8a4b02ca0858f8458614fa35754cab42b9c/aiohttp-3.12.15-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8466151554b593909d30a0a125d638b4e5f3836e5aecde85b66b80ded1cb5b0d", size = 469787, upload_time = "2025-07-29T05:50:49.669Z" }, + { url = "https://files.pythonhosted.org/packages/38/7d/b76438e70319796bfff717f325d97ce2e9310f752a267bfdf5192ac6082b/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e5a495cb1be69dae4b08f35a6c4579c539e9b5706f606632102c0f855bcba7c", size = 1716590, upload_time = "2025-07-29T05:50:51.368Z" }, + { url = "https://files.pythonhosted.org/packages/79/b1/60370d70cdf8b269ee1444b390cbd72ce514f0d1cd1a715821c784d272c9/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6404dfc8cdde35c69aaa489bb3542fb86ef215fc70277c892be8af540e5e21c0", size = 1699241, upload_time = "2025-07-29T05:50:53.628Z" }, + { url = "https://files.pythonhosted.org/packages/a3/2b/4968a7b8792437ebc12186db31523f541943e99bda8f30335c482bea6879/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3ead1c00f8521a5c9070fcb88f02967b1d8a0544e6d85c253f6968b785e1a2ab", size = 1754335, upload_time = "2025-07-29T05:50:55.394Z" }, + { url = "https://files.pythonhosted.org/packages/fb/c1/49524ed553f9a0bec1a11fac09e790f49ff669bcd14164f9fab608831c4d/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6990ef617f14450bc6b34941dba4f12d5613cbf4e33805932f853fbd1cf18bfb", size = 1800491, upload_time = "2025-07-29T05:50:57.202Z" }, + { url = "https://files.pythonhosted.org/packages/de/5e/3bf5acea47a96a28c121b167f5ef659cf71208b19e52a88cdfa5c37f1fcc/aiohttp-3.12.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd736ed420f4db2b8148b52b46b88ed038d0354255f9a73196b7bbce3ea97545", size = 1719929, upload_time = "2025-07-29T05:50:59.192Z" }, + { url = "https://files.pythonhosted.org/packages/39/94/8ae30b806835bcd1cba799ba35347dee6961a11bd507db634516210e91d8/aiohttp-3.12.15-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3c5092ce14361a73086b90c6efb3948ffa5be2f5b6fbcf52e8d8c8b8848bb97c", size = 1635733, upload_time = "2025-07-29T05:51:01.394Z" }, + { url = "https://files.pythonhosted.org/packages/7a/46/06cdef71dd03acd9da7f51ab3a9107318aee12ad38d273f654e4f981583a/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:aaa2234bb60c4dbf82893e934d8ee8dea30446f0647e024074237a56a08c01bd", size = 1696790, upload_time = "2025-07-29T05:51:03.657Z" }, + { url = "https://files.pythonhosted.org/packages/02/90/6b4cfaaf92ed98d0ec4d173e78b99b4b1a7551250be8937d9d67ecb356b4/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:6d86a2fbdd14192e2f234a92d3b494dd4457e683ba07e5905a0b3ee25389ac9f", size = 1718245, upload_time = "2025-07-29T05:51:05.911Z" }, + { url = "https://files.pythonhosted.org/packages/2e/e6/2593751670fa06f080a846f37f112cbe6f873ba510d070136a6ed46117c6/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a041e7e2612041a6ddf1c6a33b883be6a421247c7afd47e885969ee4cc58bd8d", size = 1658899, upload_time = "2025-07-29T05:51:07.753Z" }, + { url = "https://files.pythonhosted.org/packages/8f/28/c15bacbdb8b8eb5bf39b10680d129ea7410b859e379b03190f02fa104ffd/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5015082477abeafad7203757ae44299a610e89ee82a1503e3d4184e6bafdd519", size = 1738459, upload_time = "2025-07-29T05:51:09.56Z" }, + { url = "https://files.pythonhosted.org/packages/00/de/c269cbc4faa01fb10f143b1670633a8ddd5b2e1ffd0548f7aa49cb5c70e2/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:56822ff5ddfd1b745534e658faba944012346184fbfe732e0d6134b744516eea", size = 1766434, upload_time = "2025-07-29T05:51:11.423Z" }, + { url = "https://files.pythonhosted.org/packages/52/b0/4ff3abd81aa7d929b27d2e1403722a65fc87b763e3a97b3a2a494bfc63bc/aiohttp-3.12.15-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b2acbbfff69019d9014508c4ba0401822e8bae5a5fdc3b6814285b71231b60f3", size = 1726045, upload_time = "2025-07-29T05:51:13.689Z" }, + { url = "https://files.pythonhosted.org/packages/71/16/949225a6a2dd6efcbd855fbd90cf476052e648fb011aa538e3b15b89a57a/aiohttp-3.12.15-cp312-cp312-win32.whl", hash = "sha256:d849b0901b50f2185874b9a232f38e26b9b3d4810095a7572eacea939132d4e1", size = 423591, upload_time = "2025-07-29T05:51:15.452Z" }, + { url = "https://files.pythonhosted.org/packages/2b/d8/fa65d2a349fe938b76d309db1a56a75c4fb8cc7b17a398b698488a939903/aiohttp-3.12.15-cp312-cp312-win_amd64.whl", hash = "sha256:b390ef5f62bb508a9d67cb3bba9b8356e23b3996da7062f1a57ce1a79d2b3d34", size = 450266, upload_time = "2025-07-29T05:51:17.239Z" }, + { url = "https://files.pythonhosted.org/packages/f2/33/918091abcf102e39d15aba2476ad9e7bd35ddb190dcdd43a854000d3da0d/aiohttp-3.12.15-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:9f922ffd05034d439dde1c77a20461cf4a1b0831e6caa26151fe7aa8aaebc315", size = 696741, upload_time = "2025-07-29T05:51:19.021Z" }, + { url = "https://files.pythonhosted.org/packages/b5/2a/7495a81e39a998e400f3ecdd44a62107254803d1681d9189be5c2e4530cd/aiohttp-3.12.15-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2ee8a8ac39ce45f3e55663891d4b1d15598c157b4d494a4613e704c8b43112cd", size = 474407, upload_time = "2025-07-29T05:51:21.165Z" }, + { url = "https://files.pythonhosted.org/packages/49/fc/a9576ab4be2dcbd0f73ee8675d16c707cfc12d5ee80ccf4015ba543480c9/aiohttp-3.12.15-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3eae49032c29d356b94eee45a3f39fdf4b0814b397638c2f718e96cfadf4c4e4", size = 466703, upload_time = "2025-07-29T05:51:22.948Z" }, + { url = "https://files.pythonhosted.org/packages/09/2f/d4bcc8448cf536b2b54eed48f19682031ad182faa3a3fee54ebe5b156387/aiohttp-3.12.15-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b97752ff12cc12f46a9b20327104448042fce5c33a624f88c18f66f9368091c7", size = 1705532, upload_time = "2025-07-29T05:51:25.211Z" }, + { url = "https://files.pythonhosted.org/packages/f1/f3/59406396083f8b489261e3c011aa8aee9df360a96ac8fa5c2e7e1b8f0466/aiohttp-3.12.15-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:894261472691d6fe76ebb7fcf2e5870a2ac284c7406ddc95823c8598a1390f0d", size = 1686794, upload_time = "2025-07-29T05:51:27.145Z" }, + { url = "https://files.pythonhosted.org/packages/dc/71/164d194993a8d114ee5656c3b7ae9c12ceee7040d076bf7b32fb98a8c5c6/aiohttp-3.12.15-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5fa5d9eb82ce98959fc1031c28198b431b4d9396894f385cb63f1e2f3f20ca6b", size = 1738865, upload_time = "2025-07-29T05:51:29.366Z" }, + { url = "https://files.pythonhosted.org/packages/1c/00/d198461b699188a93ead39cb458554d9f0f69879b95078dce416d3209b54/aiohttp-3.12.15-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f0fa751efb11a541f57db59c1dd821bec09031e01452b2b6217319b3a1f34f3d", size = 1788238, upload_time = "2025-07-29T05:51:31.285Z" }, + { url = "https://files.pythonhosted.org/packages/85/b8/9e7175e1fa0ac8e56baa83bf3c214823ce250d0028955dfb23f43d5e61fd/aiohttp-3.12.15-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5346b93e62ab51ee2a9d68e8f73c7cf96ffb73568a23e683f931e52450e4148d", size = 1710566, upload_time = "2025-07-29T05:51:33.219Z" }, + { url = "https://files.pythonhosted.org/packages/59/e4/16a8eac9df39b48ae102ec030fa9f726d3570732e46ba0c592aeeb507b93/aiohttp-3.12.15-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:049ec0360f939cd164ecbfd2873eaa432613d5e77d6b04535e3d1fbae5a9e645", size = 1624270, upload_time = "2025-07-29T05:51:35.195Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f8/cd84dee7b6ace0740908fd0af170f9fab50c2a41ccbc3806aabcb1050141/aiohttp-3.12.15-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b52dcf013b57464b6d1e51b627adfd69a8053e84b7103a7cd49c030f9ca44461", size = 1677294, upload_time = "2025-07-29T05:51:37.215Z" }, + { url = "https://files.pythonhosted.org/packages/ce/42/d0f1f85e50d401eccd12bf85c46ba84f947a84839c8a1c2c5f6e8ab1eb50/aiohttp-3.12.15-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:9b2af240143dd2765e0fb661fd0361a1b469cab235039ea57663cda087250ea9", size = 1708958, upload_time = "2025-07-29T05:51:39.328Z" }, + { url = "https://files.pythonhosted.org/packages/d5/6b/f6fa6c5790fb602538483aa5a1b86fcbad66244997e5230d88f9412ef24c/aiohttp-3.12.15-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ac77f709a2cde2cc71257ab2d8c74dd157c67a0558a0d2799d5d571b4c63d44d", size = 1651553, upload_time = "2025-07-29T05:51:41.356Z" }, + { url = "https://files.pythonhosted.org/packages/04/36/a6d36ad545fa12e61d11d1932eef273928b0495e6a576eb2af04297fdd3c/aiohttp-3.12.15-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:47f6b962246f0a774fbd3b6b7be25d59b06fdb2f164cf2513097998fc6a29693", size = 1727688, upload_time = "2025-07-29T05:51:43.452Z" }, + { url = "https://files.pythonhosted.org/packages/aa/c8/f195e5e06608a97a4e52c5d41c7927301bf757a8e8bb5bbf8cef6c314961/aiohttp-3.12.15-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:760fb7db442f284996e39cf9915a94492e1896baac44f06ae551974907922b64", size = 1761157, upload_time = "2025-07-29T05:51:45.643Z" }, + { url = "https://files.pythonhosted.org/packages/05/6a/ea199e61b67f25ba688d3ce93f63b49b0a4e3b3d380f03971b4646412fc6/aiohttp-3.12.15-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ad702e57dc385cae679c39d318def49aef754455f237499d5b99bea4ef582e51", size = 1710050, upload_time = "2025-07-29T05:51:48.203Z" }, + { url = "https://files.pythonhosted.org/packages/b4/2e/ffeb7f6256b33635c29dbed29a22a723ff2dd7401fff42ea60cf2060abfb/aiohttp-3.12.15-cp313-cp313-win32.whl", hash = "sha256:f813c3e9032331024de2eb2e32a88d86afb69291fbc37a3a3ae81cc9917fb3d0", size = 422647, upload_time = "2025-07-29T05:51:50.718Z" }, + { url = "https://files.pythonhosted.org/packages/1b/8e/78ee35774201f38d5e1ba079c9958f7629b1fd079459aea9467441dbfbf5/aiohttp-3.12.15-cp313-cp313-win_amd64.whl", hash = "sha256:1a649001580bdb37c6fdb1bebbd7e3bc688e8ec2b5c6f52edbb664662b17dc84", size = 449067, upload_time = "2025-07-29T05:51:52.549Z" }, +] + +[[package]] +name = "aiosignal" +version = "1.4.0" +source = { registry = "https://pypi.org/simple" } +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, 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, upload_time = "2025-07-03T22:54:42.156Z" }, +] + +[[package]] +name = "annotated-types" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081, upload_time = "2024-05-20T21:33:25.928Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643, upload_time = "2024-05-20T21:33:24.1Z" }, +] + +[[package]] +name = "arrow" +version = "1.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "python-dateutil" }, + { name = "types-python-dateutil" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2e/00/0f6e8fcdb23ea632c866620cc872729ff43ed91d284c866b515c6342b173/arrow-1.3.0.tar.gz", hash = "sha256:d4540617648cb5f895730f1ad8c82a65f2dad0166f57b75f3ca54759c4d67a85", size = 131960, upload_time = "2023-09-30T22:11:18.25Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f8/ed/e97229a566617f2ae958a6b13e7cc0f585470eac730a73e9e82c32a3cdd2/arrow-1.3.0-py3-none-any.whl", hash = "sha256:c728b120ebc00eb84e01882a6f5e7927a53960aa990ce7dd2b10f39005a67f80", size = 66419, upload_time = "2023-09-30T22:11:16.072Z" }, +] + +[[package]] +name = "asciitree" +version = "0.3.3" +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, upload_time = "2016-09-05T19:10:42.681Z" } + +[[package]] +name = "attrs" +version = "25.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5a/b0/1367933a8532ee6ff8d63537de4f1177af4bff9f3e829baf7331f595bb24/attrs-25.3.0.tar.gz", hash = "sha256:75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b", size = 812032, upload_time = "2025-03-13T11:10:22.779Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/77/06/bb80f5f86020c4551da315d78b3ab75e8228f89f0162f2c3a819e407941a/attrs-25.3.0-py3-none-any.whl", hash = "sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3", size = 63815, upload_time = "2025-03-13T11:10:21.14Z" }, +] + +[[package]] +name = "bids-validator-deno" +version = "2.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7a/ae/2045dacd02307997b612d7dd0c61092c2b6875d72cad3873d7af26dd7f3a/bids_validator_deno-2.1.1.tar.gz", hash = "sha256:1add452625548607d357c018a5ac1365809dcabf612624e71f5bdbb3d2ec081c", size = 73252, upload_time = "2025-09-29T16:25:21.774Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/30/08/0ca16cac7c2ad7ed8846691ab4ee4997a1d936d5c29509f3cec71f36a778/bids_validator_deno-2.1.1-py2.py3-none-macosx_10_12_x86_64.whl", hash = "sha256:ac27e7070229fb45a80ff04b61de0a37551da751ab3d893a45cbd672daed220e", size = 42418556, upload_time = "2025-09-29T16:25:06.696Z" }, + { url = "https://files.pythonhosted.org/packages/18/4d/d98fc4e6c3ed73de84f7af84c695d676e086678f9e4ec3e2fc66c54b0d78/bids_validator_deno-2.1.1-py2.py3-none-macosx_11_0_arm64.whl", hash = "sha256:6082c69cdf4382df0ca82be7591d22444e65b2e2a72d06fb7d87a6e131d6e920", size = 41656505, upload_time = "2025-09-29T16:25:10.639Z" }, + { url = "https://files.pythonhosted.org/packages/15/44/7c8ad5a37d77db13985508aa04d4ee006df4adde8414921760ecd4b642c5/bids_validator_deno-2.1.1-py2.py3-none-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:06a06a27b07a237bcb4eecd09bf656fd8eafb61c77d0f4ae311807db0ac6dba5", size = 43321256, upload_time = "2025-09-29T16:25:13.676Z" }, + { url = "https://files.pythonhosted.org/packages/a8/cf/92cd8c6507068745c55afa0cad60a6ac85d1bd0a17dec41b93f1eab55a5b/bids_validator_deno-2.1.1-py2.py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:538914e927fe38c6cd80458acf31a5a4e3ff52020b5b2dfdea42d3bc49aac5e7", size = 44433972, upload_time = "2025-09-29T16:25:16.439Z" }, + { url = "https://files.pythonhosted.org/packages/3b/b4/0f9b960ef336426df7f2db4920a99d10c6f57a29001696a93854aa3da0bf/bids_validator_deno-2.1.1-py2.py3-none-win_amd64.whl", hash = "sha256:b163ed4976ece0cf21f94f6293281687633110e8bd2e8966064f2f0e2ed88302", size = 43848264, upload_time = "2025-09-29T16:25:19.546Z" }, +] + +[[package]] +name = "bidsschematools" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "acres" }, + { name = "click" }, + { name = "pyyaml" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/82/5d/8b940b4149ba11e5ed5325a79f3c75a0e2ec66cb4123d3d1313222550929/bidsschematools-1.1.0.tar.gz", hash = "sha256:71555f2364a27ba6ac7bff869b5181ff64aa180c5e56725180b43012627c0e06", size = 1752873, upload_time = "2025-09-03T14:24:36.587Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/00/d6/15f1ea70e9dde2fbd5c1ea83db6169e5663c9b20d4854678650ff5cefad7/bidsschematools-1.1.0-py3-none-any.whl", hash = "sha256:aabd6ae19978a5a92777f04fa0740ca9ea4a746075b077d88671d47d46c56653", size = 179191, upload_time = "2025-09-03T14:24:35.2Z" }, +] + +[[package]] +name = "blessed" +version = "1.22.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "wcwidth" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7c/51/a72df7730aa34a94bc43cebecb7b63ffa42f019868637dbeb45e0620d26e/blessed-1.22.0.tar.gz", hash = "sha256:1818efb7c10015478286f21a412fcdd31a3d8b94a18f6d926e733827da7a844b", size = 6660050, upload_time = "2025-09-15T19:15:26.551Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/11/b7/a19b55c4cd0b5ca5009ca11d3634994758a1a446976b8e7afa25e719613c/blessed-1.22.0-py2.py3-none-any.whl", hash = "sha256:a1fed52d708a1aa26dfb8d3eaecf6f4714bff590e728baeefcb44f2c16c8de82", size = 85078, upload_time = "2025-09-15T19:15:24.787Z" }, +] + +[[package]] +name = "certifi" +version = "2025.8.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/dc/67/960ebe6bf230a96cda2e0abcf73af550ec4f090005363542f0765df162e0/certifi-2025.8.3.tar.gz", hash = "sha256:e564105f78ded564e3ae7c923924435e1daa7463faeab5bb932bc53ffae63407", size = 162386, upload_time = "2025-08-03T03:07:47.08Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/48/1549795ba7742c948d2ad169c1c8cdbae65bc450d6cd753d124b17c8cd32/certifi-2025.8.3-py3-none-any.whl", hash = "sha256:f6c12493cfb1b06ba2ff328595af9350c65d6644968e5d3a2ffd78699af217a5", size = 161216, upload_time = "2025-08-03T03:07:45.777Z" }, +] + +[[package]] +name = "cffi" +version = "2.0.0" +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, upload_time = "2025-09-08T23:24:04.541Z" } +wheels = [ + { 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, upload_time = "2025-09-08T23:22:47.349Z" }, + { 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, upload_time = "2025-09-08T23:22:48.677Z" }, + { 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, upload_time = "2025-09-08T23:22:50.06Z" }, + { 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, upload_time = "2025-09-08T23:22:51.364Z" }, + { 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, upload_time = "2025-09-08T23:22:52.902Z" }, + { 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, upload_time = "2025-09-08T23:22:54.518Z" }, + { 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, upload_time = "2025-09-08T23:22:55.867Z" }, + { 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, upload_time = "2025-09-08T23:23:03.472Z" }, + { 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, upload_time = "2025-09-08T23:23:04.792Z" }, + { 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, upload_time = "2025-09-08T23:23:06.127Z" }, + { 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, upload_time = "2025-09-08T23:23:07.753Z" }, + { 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, upload_time = "2025-09-08T23:23:09.648Z" }, + { 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, upload_time = "2025-09-08T23:23:10.928Z" }, + { 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, upload_time = "2025-09-08T23:23:12.42Z" }, + { 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, upload_time = "2025-09-08T23:23:20.853Z" }, + { 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, upload_time = "2025-09-08T23:23:22.08Z" }, + { 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, upload_time = "2025-09-08T23:23:23.314Z" }, + { 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, upload_time = "2025-09-08T23:23:24.541Z" }, + { 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, upload_time = "2025-09-08T23:23:26.143Z" }, + { 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, upload_time = "2025-09-08T23:23:27.873Z" }, + { 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, upload_time = "2025-09-08T23:23:31.91Z" }, + { 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, upload_time = "2025-09-08T23:23:33.214Z" }, + { 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, upload_time = "2025-09-08T23:23:34.495Z" }, + { 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, upload_time = "2025-09-08T23:23:36.096Z" }, + { 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, upload_time = "2025-09-08T23:23:37.328Z" }, + { 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, upload_time = "2025-09-08T23:23:38.945Z" }, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/83/2d/5fd176ceb9b2fc619e63405525573493ca23441330fcdaee6bef9460e924/charset_normalizer-3.4.3.tar.gz", hash = "sha256:6fce4b8500244f6fcb71465d4a4930d132ba9ab8e71a7859e6a5d59851068d14", size = 122371, upload_time = "2025-08-09T07:57:28.46Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e9/5e/14c94999e418d9b87682734589404a25854d5f5d0408df68bc15b6ff54bb/charset_normalizer-3.4.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e28e334d3ff134e88989d90ba04b47d84382a828c061d0d1027b1b12a62b39b1", size = 205655, upload_time = "2025-08-09T07:56:08.475Z" }, + { url = "https://files.pythonhosted.org/packages/7d/a8/c6ec5d389672521f644505a257f50544c074cf5fc292d5390331cd6fc9c3/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0cacf8f7297b0c4fcb74227692ca46b4a5852f8f4f24b3c766dd94a1075c4884", size = 146223, upload_time = "2025-08-09T07:56:09.708Z" }, + { url = "https://files.pythonhosted.org/packages/fc/eb/a2ffb08547f4e1e5415fb69eb7db25932c52a52bed371429648db4d84fb1/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c6fd51128a41297f5409deab284fecbe5305ebd7e5a1f959bee1c054622b7018", size = 159366, upload_time = "2025-08-09T07:56:11.326Z" }, + { url = "https://files.pythonhosted.org/packages/82/10/0fd19f20c624b278dddaf83b8464dcddc2456cb4b02bb902a6da126b87a1/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3cfb2aad70f2c6debfbcb717f23b7eb55febc0bb23dcffc0f076009da10c6392", size = 157104, upload_time = "2025-08-09T07:56:13.014Z" }, + { url = "https://files.pythonhosted.org/packages/16/ab/0233c3231af734f5dfcf0844aa9582d5a1466c985bbed6cedab85af9bfe3/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1606f4a55c0fd363d754049cdf400175ee96c992b1f8018b993941f221221c5f", size = 151830, upload_time = "2025-08-09T07:56:14.428Z" }, + { url = "https://files.pythonhosted.org/packages/ae/02/e29e22b4e02839a0e4a06557b1999d0a47db3567e82989b5bb21f3fbbd9f/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:027b776c26d38b7f15b26a5da1044f376455fb3766df8fc38563b4efbc515154", size = 148854, upload_time = "2025-08-09T07:56:16.051Z" }, + { url = "https://files.pythonhosted.org/packages/05/6b/e2539a0a4be302b481e8cafb5af8792da8093b486885a1ae4d15d452bcec/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:42e5088973e56e31e4fa58eb6bd709e42fc03799c11c42929592889a2e54c491", size = 160670, upload_time = "2025-08-09T07:56:17.314Z" }, + { url = "https://files.pythonhosted.org/packages/31/e7/883ee5676a2ef217a40ce0bffcc3d0dfbf9e64cbcfbdf822c52981c3304b/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:cc34f233c9e71701040d772aa7490318673aa7164a0efe3172b2981218c26d93", size = 158501, upload_time = "2025-08-09T07:56:18.641Z" }, + { url = "https://files.pythonhosted.org/packages/c1/35/6525b21aa0db614cf8b5792d232021dca3df7f90a1944db934efa5d20bb1/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:320e8e66157cc4e247d9ddca8e21f427efc7a04bbd0ac8a9faf56583fa543f9f", size = 153173, upload_time = "2025-08-09T07:56:20.289Z" }, + { url = "https://files.pythonhosted.org/packages/50/ee/f4704bad8201de513fdc8aac1cabc87e38c5818c93857140e06e772b5892/charset_normalizer-3.4.3-cp312-cp312-win32.whl", hash = "sha256:fb6fecfd65564f208cbf0fba07f107fb661bcd1a7c389edbced3f7a493f70e37", size = 99822, upload_time = "2025-08-09T07:56:21.551Z" }, + { url = "https://files.pythonhosted.org/packages/39/f5/3b3836ca6064d0992c58c7561c6b6eee1b3892e9665d650c803bd5614522/charset_normalizer-3.4.3-cp312-cp312-win_amd64.whl", hash = "sha256:86df271bf921c2ee3818f0522e9a5b8092ca2ad8b065ece5d7d9d0e9f4849bcc", size = 107543, upload_time = "2025-08-09T07:56:23.115Z" }, + { url = "https://files.pythonhosted.org/packages/65/ca/2135ac97709b400c7654b4b764daf5c5567c2da45a30cdd20f9eefe2d658/charset_normalizer-3.4.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:14c2a87c65b351109f6abfc424cab3927b3bdece6f706e4d12faaf3d52ee5efe", size = 205326, upload_time = "2025-08-09T07:56:24.721Z" }, + { url = "https://files.pythonhosted.org/packages/71/11/98a04c3c97dd34e49c7d247083af03645ca3730809a5509443f3c37f7c99/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:41d1fc408ff5fdfb910200ec0e74abc40387bccb3252f3f27c0676731df2b2c8", size = 146008, upload_time = "2025-08-09T07:56:26.004Z" }, + { url = "https://files.pythonhosted.org/packages/60/f5/4659a4cb3c4ec146bec80c32d8bb16033752574c20b1252ee842a95d1a1e/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:1bb60174149316da1c35fa5233681f7c0f9f514509b8e399ab70fea5f17e45c9", size = 159196, upload_time = "2025-08-09T07:56:27.25Z" }, + { url = "https://files.pythonhosted.org/packages/86/9e/f552f7a00611f168b9a5865a1414179b2c6de8235a4fa40189f6f79a1753/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:30d006f98569de3459c2fc1f2acde170b7b2bd265dc1943e87e1a4efe1b67c31", size = 156819, upload_time = "2025-08-09T07:56:28.515Z" }, + { url = "https://files.pythonhosted.org/packages/7e/95/42aa2156235cbc8fa61208aded06ef46111c4d3f0de233107b3f38631803/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:416175faf02e4b0810f1f38bcb54682878a4af94059a1cd63b8747244420801f", size = 151350, upload_time = "2025-08-09T07:56:29.716Z" }, + { url = "https://files.pythonhosted.org/packages/c2/a9/3865b02c56f300a6f94fc631ef54f0a8a29da74fb45a773dfd3dcd380af7/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6aab0f181c486f973bc7262a97f5aca3ee7e1437011ef0c2ec04b5a11d16c927", size = 148644, upload_time = "2025-08-09T07:56:30.984Z" }, + { url = "https://files.pythonhosted.org/packages/77/d9/cbcf1a2a5c7d7856f11e7ac2d782aec12bdfea60d104e60e0aa1c97849dc/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:fdabf8315679312cfa71302f9bd509ded4f2f263fb5b765cf1433b39106c3cc9", size = 160468, upload_time = "2025-08-09T07:56:32.252Z" }, + { url = "https://files.pythonhosted.org/packages/f6/42/6f45efee8697b89fda4d50580f292b8f7f9306cb2971d4b53f8914e4d890/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:bd28b817ea8c70215401f657edef3a8aa83c29d447fb0b622c35403780ba11d5", size = 158187, upload_time = "2025-08-09T07:56:33.481Z" }, + { url = "https://files.pythonhosted.org/packages/70/99/f1c3bdcfaa9c45b3ce96f70b14f070411366fa19549c1d4832c935d8e2c3/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:18343b2d246dc6761a249ba1fb13f9ee9a2bcd95decc767319506056ea4ad4dc", size = 152699, upload_time = "2025-08-09T07:56:34.739Z" }, + { url = "https://files.pythonhosted.org/packages/a3/ad/b0081f2f99a4b194bcbb1934ef3b12aa4d9702ced80a37026b7607c72e58/charset_normalizer-3.4.3-cp313-cp313-win32.whl", hash = "sha256:6fb70de56f1859a3f71261cbe41005f56a7842cc348d3aeb26237560bfa5e0ce", size = 99580, upload_time = "2025-08-09T07:56:35.981Z" }, + { url = "https://files.pythonhosted.org/packages/9a/8f/ae790790c7b64f925e5c953b924aaa42a243fb778fed9e41f147b2a5715a/charset_normalizer-3.4.3-cp313-cp313-win_amd64.whl", hash = "sha256:cf1ebb7d78e1ad8ec2a8c4732c7be2e736f6e5123a4146c5b89c9d1f585f8cef", size = 107366, upload_time = "2025-08-09T07:56:37.339Z" }, + { url = "https://files.pythonhosted.org/packages/8e/91/b5a06ad970ddc7a0e513112d40113e834638f4ca1120eb727a249fb2715e/charset_normalizer-3.4.3-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:3cd35b7e8aedeb9e34c41385fda4f73ba609e561faedfae0a9e75e44ac558a15", size = 204342, upload_time = "2025-08-09T07:56:38.687Z" }, + { url = "https://files.pythonhosted.org/packages/ce/ec/1edc30a377f0a02689342f214455c3f6c2fbedd896a1d2f856c002fc3062/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b89bc04de1d83006373429975f8ef9e7932534b8cc9ca582e4db7d20d91816db", size = 145995, upload_time = "2025-08-09T07:56:40.048Z" }, + { url = "https://files.pythonhosted.org/packages/17/e5/5e67ab85e6d22b04641acb5399c8684f4d37caf7558a53859f0283a650e9/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2001a39612b241dae17b4687898843f254f8748b796a2e16f1051a17078d991d", size = 158640, upload_time = "2025-08-09T07:56:41.311Z" }, + { url = "https://files.pythonhosted.org/packages/f1/e5/38421987f6c697ee3722981289d554957c4be652f963d71c5e46a262e135/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8dcfc373f888e4fb39a7bc57e93e3b845e7f462dacc008d9749568b1c4ece096", size = 156636, upload_time = "2025-08-09T07:56:43.195Z" }, + { url = "https://files.pythonhosted.org/packages/a0/e4/5a075de8daa3ec0745a9a3b54467e0c2967daaaf2cec04c845f73493e9a1/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:18b97b8404387b96cdbd30ad660f6407799126d26a39ca65729162fd810a99aa", size = 150939, upload_time = "2025-08-09T07:56:44.819Z" }, + { url = "https://files.pythonhosted.org/packages/02/f7/3611b32318b30974131db62b4043f335861d4d9b49adc6d57c1149cc49d4/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ccf600859c183d70eb47e05a44cd80a4ce77394d1ac0f79dbd2dd90a69a3a049", size = 148580, upload_time = "2025-08-09T07:56:46.684Z" }, + { url = "https://files.pythonhosted.org/packages/7e/61/19b36f4bd67f2793ab6a99b979b4e4f3d8fc754cbdffb805335df4337126/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:53cd68b185d98dde4ad8990e56a58dea83a4162161b1ea9272e5c9182ce415e0", size = 159870, upload_time = "2025-08-09T07:56:47.941Z" }, + { url = "https://files.pythonhosted.org/packages/06/57/84722eefdd338c04cf3030ada66889298eaedf3e7a30a624201e0cbe424a/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:30a96e1e1f865f78b030d65241c1ee850cdf422d869e9028e2fc1d5e4db73b92", size = 157797, upload_time = "2025-08-09T07:56:49.756Z" }, + { url = "https://files.pythonhosted.org/packages/72/2a/aff5dd112b2f14bcc3462c312dce5445806bfc8ab3a7328555da95330e4b/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d716a916938e03231e86e43782ca7878fb602a125a91e7acb8b5112e2e96ac16", size = 152224, upload_time = "2025-08-09T07:56:51.369Z" }, + { url = "https://files.pythonhosted.org/packages/b7/8c/9839225320046ed279c6e839d51f028342eb77c91c89b8ef2549f951f3ec/charset_normalizer-3.4.3-cp314-cp314-win32.whl", hash = "sha256:c6dbd0ccdda3a2ba7c2ecd9d77b37f3b5831687d8dc1b6ca5f56a4880cc7b7ce", size = 100086, upload_time = "2025-08-09T07:56:52.722Z" }, + { url = "https://files.pythonhosted.org/packages/ee/7a/36fbcf646e41f710ce0a563c1c9a343c6edf9be80786edeb15b6f62e17db/charset_normalizer-3.4.3-cp314-cp314-win_amd64.whl", hash = "sha256:73dc19b562516fc9bcf6e5d6e596df0b4eb98d87e4f79f3ae71840e6ed21361c", size = 107400, upload_time = "2025-08-09T07:56:55.172Z" }, + { url = "https://files.pythonhosted.org/packages/8a/1f/f041989e93b001bc4e44bb1669ccdcf54d3f00e628229a85b08d330615c5/charset_normalizer-3.4.3-py3-none-any.whl", hash = "sha256:ce571ab16d890d23b5c278547ba694193a45011ff86a9162a71307ed9f86759a", size = 53175, upload_time = "2025-08-09T07:57:26.864Z" }, +] + +[[package]] +name = "ci-info" +version = "0.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/11/27/938d6ef93df09c686dcee1c7334578274320e98e7bf912a6409cf2c8c3e5/ci-info-0.3.0.tar.gz", hash = "sha256:1fd50cbd401f29adffeeb18b0489e232d16ac1a7458ac6bc316deab6ae535fb0", size = 25169, upload_time = "2022-07-27T17:22:49.365Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/13/c3/8ac768b389d5b6dda1c3ce7992b3acd2b46401f9b71439123858b17b1a2c/ci_info-0.3.0-py3-none-any.whl", hash = "sha256:e9e05d262a6c48aa03cd904475de5ce8c4da8a5435e516631c795d0487dc9e07", size = 7764, upload_time = "2022-07-27T17:22:47.196Z" }, +] + +[[package]] +name = "click" +version = "8.1.8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b9/2e/0090cbf739cee7d23781ad4b89a9894a41538e4fcf4c31dcdd705b78eb8b/click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a", size = 226593, upload_time = "2024-12-21T18:38:44.339Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/d4/7ebdbd03970677812aac39c869717059dbb71a4cfc033ca6e5221787892c/click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2", size = 98188, upload_time = "2024-12-21T18:38:41.666Z" }, +] + +[[package]] +name = "click-didyoumean" +version = "0.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/30/ce/217289b77c590ea1e7c24242d9ddd6e249e52c795ff10fac2c50062c48cb/click_didyoumean-0.3.1.tar.gz", hash = "sha256:4f82fdff0dbe64ef8ab2279bd6aa3f6a99c3b28c05aa09cbfc07c9d7fbb5a463", size = 3089, upload_time = "2024-03-24T08:22:07.499Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1b/5b/974430b5ffdb7a4f1941d13d83c64a0395114503cc357c6b9ae4ce5047ed/click_didyoumean-0.3.1-py3-none-any.whl", hash = "sha256:5c4bb6007cfea5f2fd6583a2fb6701a22a41eb98957e63d0fac41c10e7c3117c", size = 3631, upload_time = "2024-03-24T08:22:06.356Z" }, +] + +[[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, 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, upload_time = "2022-10-25T02:36:20.889Z" }, +] + +[[package]] +name = "cryptography" +version = "46.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/4a/9b/e301418629f7bfdf72db9e80ad6ed9d1b83c487c471803eaa6464c511a01/cryptography-46.0.2.tar.gz", hash = "sha256:21b6fc8c71a3f9a604f028a329e5560009cc4a3a828bfea5fcba8eb7647d88fe", size = 749293, upload_time = "2025-10-01T00:29:11.856Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c6/38/b2adb2aa1baa6706adc3eb746691edd6f90a656a9a65c3509e274d15a2b8/cryptography-46.0.2-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1fd1a69086926b623ef8126b4c33d5399ce9e2f3fac07c9c734c2a4ec38b6d02", size = 4297596, upload_time = "2025-10-01T00:27:25.258Z" }, + { url = "https://files.pythonhosted.org/packages/e4/27/0f190ada240003119488ae66c897b5e97149292988f556aef4a6a2a57595/cryptography-46.0.2-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:bb7fb9cd44c2582aa5990cf61a4183e6f54eea3172e54963787ba47287edd135", size = 4450899, upload_time = "2025-10-01T00:27:27.458Z" }, + { url = "https://files.pythonhosted.org/packages/85/d5/e4744105ab02fdf6bb58ba9a816e23b7a633255987310b4187d6745533db/cryptography-46.0.2-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:9066cfd7f146f291869a9898b01df1c9b0e314bfa182cef432043f13fc462c92", size = 4300382, upload_time = "2025-10-01T00:27:29.091Z" }, + { url = "https://files.pythonhosted.org/packages/33/fb/bf9571065c18c04818cb07de90c43fc042c7977c68e5de6876049559c72f/cryptography-46.0.2-cp311-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:97e83bf4f2f2c084d8dd792d13841d0a9b241643151686010866bbd076b19659", size = 4017347, upload_time = "2025-10-01T00:27:30.767Z" }, + { url = "https://files.pythonhosted.org/packages/35/72/fc51856b9b16155ca071080e1a3ad0c3a8e86616daf7eb018d9565b99baa/cryptography-46.0.2-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:4a766d2a5d8127364fd936572c6e6757682fc5dfcbdba1632d4554943199f2fa", size = 4983500, upload_time = "2025-10-01T00:27:32.741Z" }, + { url = "https://files.pythonhosted.org/packages/c1/53/0f51e926799025e31746d454ab2e36f8c3f0d41592bc65cb9840368d3275/cryptography-46.0.2-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:fab8f805e9675e61ed8538f192aad70500fa6afb33a8803932999b1049363a08", size = 4482591, upload_time = "2025-10-01T00:27:34.869Z" }, + { url = "https://files.pythonhosted.org/packages/86/96/4302af40b23ab8aa360862251fb8fc450b2a06ff24bc5e261c2007f27014/cryptography-46.0.2-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:1e3b6428a3d56043bff0bb85b41c535734204e599c1c0977e1d0f261b02f3ad5", size = 4300019, upload_time = "2025-10-01T00:27:37.029Z" }, + { url = "https://files.pythonhosted.org/packages/9b/59/0be12c7fcc4c5e34fe2b665a75bc20958473047a30d095a7657c218fa9e8/cryptography-46.0.2-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:1a88634851d9b8de8bb53726f4300ab191d3b2f42595e2581a54b26aba71b7cc", size = 4950006, upload_time = "2025-10-01T00:27:40.272Z" }, + { url = "https://files.pythonhosted.org/packages/55/1d/42fda47b0111834b49e31590ae14fd020594d5e4dadd639bce89ad790fba/cryptography-46.0.2-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:be939b99d4e091eec9a2bcf41aaf8f351f312cd19ff74b5c83480f08a8a43e0b", size = 4482088, upload_time = "2025-10-01T00:27:42.668Z" }, + { url = "https://files.pythonhosted.org/packages/17/50/60f583f69aa1602c2bdc7022dae86a0d2b837276182f8c1ec825feb9b874/cryptography-46.0.2-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9f13b040649bc18e7eb37936009b24fd31ca095a5c647be8bb6aaf1761142bd1", size = 4425599, upload_time = "2025-10-01T00:27:44.616Z" }, + { url = "https://files.pythonhosted.org/packages/d1/57/d8d4134cd27e6e94cf44adb3f3489f935bde85f3a5508e1b5b43095b917d/cryptography-46.0.2-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:9bdc25e4e01b261a8fda4e98618f1c9515febcecebc9566ddf4a70c63967043b", size = 4697458, upload_time = "2025-10-01T00:27:46.209Z" }, + { url = "https://files.pythonhosted.org/packages/93/22/d66a8591207c28bbe4ac7afa25c4656dc19dc0db29a219f9809205639ede/cryptography-46.0.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e7155c0b004e936d381b15425273aee1cebc94f879c0ce82b0d7fecbf755d53a", size = 4287584, upload_time = "2025-10-01T00:27:57.018Z" }, + { url = "https://files.pythonhosted.org/packages/8c/3e/fac3ab6302b928e0398c269eddab5978e6c1c50b2b77bb5365ffa8633b37/cryptography-46.0.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:a61c154cc5488272a6c4b86e8d5beff4639cdb173d75325ce464d723cda0052b", size = 4433796, upload_time = "2025-10-01T00:27:58.631Z" }, + { url = "https://files.pythonhosted.org/packages/7d/d8/24392e5d3c58e2d83f98fe5a2322ae343360ec5b5b93fe18bc52e47298f5/cryptography-46.0.2-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:9ec3f2e2173f36a9679d3b06d3d01121ab9b57c979de1e6a244b98d51fea1b20", size = 4292126, upload_time = "2025-10-01T00:28:00.643Z" }, + { url = "https://files.pythonhosted.org/packages/ed/38/3d9f9359b84c16c49a5a336ee8be8d322072a09fac17e737f3bb11f1ce64/cryptography-46.0.2-cp314-cp314t-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:2fafb6aa24e702bbf74de4cb23bfa2c3beb7ab7683a299062b69724c92e0fa73", size = 3993056, upload_time = "2025-10-01T00:28:02.8Z" }, + { url = "https://files.pythonhosted.org/packages/d6/a3/4c44fce0d49a4703cc94bfbe705adebf7ab36efe978053742957bc7ec324/cryptography-46.0.2-cp314-cp314t-manylinux_2_28_ppc64le.whl", hash = "sha256:0c7ffe8c9b1fcbb07a26d7c9fa5e857c2fe80d72d7b9e0353dcf1d2180ae60ee", size = 4967604, upload_time = "2025-10-01T00:28:04.783Z" }, + { url = "https://files.pythonhosted.org/packages/eb/c2/49d73218747c8cac16bb8318a5513fde3129e06a018af3bc4dc722aa4a98/cryptography-46.0.2-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:5840f05518caa86b09d23f8b9405a7b6d5400085aa14a72a98fdf5cf1568c0d2", size = 4465367, upload_time = "2025-10-01T00:28:06.864Z" }, + { url = "https://files.pythonhosted.org/packages/1b/64/9afa7d2ee742f55ca6285a54386ed2778556a4ed8871571cb1c1bfd8db9e/cryptography-46.0.2-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:27c53b4f6a682a1b645fbf1cd5058c72cf2f5aeba7d74314c36838c7cbc06e0f", size = 4291678, upload_time = "2025-10-01T00:28:08.982Z" }, + { url = "https://files.pythonhosted.org/packages/50/48/1696d5ea9623a7b72ace87608f6899ca3c331709ac7ebf80740abb8ac673/cryptography-46.0.2-cp314-cp314t-manylinux_2_34_ppc64le.whl", hash = "sha256:512c0250065e0a6b286b2db4bbcc2e67d810acd53eb81733e71314340366279e", size = 4931366, upload_time = "2025-10-01T00:28:10.74Z" }, + { url = "https://files.pythonhosted.org/packages/eb/3c/9dfc778401a334db3b24435ee0733dd005aefb74afe036e2d154547cb917/cryptography-46.0.2-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:07c0eb6657c0e9cca5891f4e35081dbf985c8131825e21d99b4f440a8f496f36", size = 4464738, upload_time = "2025-10-01T00:28:12.491Z" }, + { url = "https://files.pythonhosted.org/packages/dc/b1/abcde62072b8f3fd414e191a6238ce55a0050e9738090dc6cded24c12036/cryptography-46.0.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:48b983089378f50cba258f7f7aa28198c3f6e13e607eaf10472c26320332ca9a", size = 4419305, upload_time = "2025-10-01T00:28:14.145Z" }, + { url = "https://files.pythonhosted.org/packages/c7/1f/3d2228492f9391395ca34c677e8f2571fb5370fe13dc48c1014f8c509864/cryptography-46.0.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:e6f6775eaaa08c0eec73e301f7592f4367ccde5e4e4df8e58320f2ebf161ea2c", size = 4681201, upload_time = "2025-10-01T00:28:15.951Z" }, + { url = "https://files.pythonhosted.org/packages/b7/66/f42071ce0e3ffbfa80a88feadb209c779fda92a23fbc1e14f74ebf72ef6b/cryptography-46.0.2-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d30bc11d35743bf4ddf76674a0a369ec8a21f87aaa09b0661b04c5f6c46e8d7b", size = 4293123, upload_time = "2025-10-01T00:28:25.072Z" }, + { url = "https://files.pythonhosted.org/packages/a8/5d/1fdbd2e5c1ba822828d250e5a966622ef00185e476d1cd2726b6dd135e53/cryptography-46.0.2-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:bca3f0ce67e5a2a2cf524e86f44697c4323a86e0fd7ba857de1c30d52c11ede1", size = 4439524, upload_time = "2025-10-01T00:28:26.808Z" }, + { url = "https://files.pythonhosted.org/packages/c8/c1/5e4989a7d102d4306053770d60f978c7b6b1ea2ff8c06e0265e305b23516/cryptography-46.0.2-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:ff798ad7a957a5021dcbab78dfff681f0cf15744d0e6af62bd6746984d9c9e9c", size = 4297264, upload_time = "2025-10-01T00:28:29.327Z" }, + { url = "https://files.pythonhosted.org/packages/28/78/b56f847d220cb1d6d6aef5a390e116ad603ce13a0945a3386a33abc80385/cryptography-46.0.2-cp38-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:cb5e8daac840e8879407acbe689a174f5ebaf344a062f8918e526824eb5d97af", size = 4011872, upload_time = "2025-10-01T00:28:31.479Z" }, + { url = "https://files.pythonhosted.org/packages/e1/80/2971f214b066b888944f7b57761bf709ee3f2cf805619a18b18cab9b263c/cryptography-46.0.2-cp38-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:3f37aa12b2d91e157827d90ce78f6180f0c02319468a0aea86ab5a9566da644b", size = 4978458, upload_time = "2025-10-01T00:28:33.267Z" }, + { url = "https://files.pythonhosted.org/packages/a5/84/0cb0a2beaa4f1cbe63ebec4e97cd7e0e9f835d0ba5ee143ed2523a1e0016/cryptography-46.0.2-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:5e38f203160a48b93010b07493c15f2babb4e0f2319bbd001885adb3f3696d21", size = 4472195, upload_time = "2025-10-01T00:28:36.039Z" }, + { url = "https://files.pythonhosted.org/packages/30/8b/2b542ddbf78835c7cd67b6fa79e95560023481213a060b92352a61a10efe/cryptography-46.0.2-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:d19f5f48883752b5ab34cff9e2f7e4a7f216296f33714e77d1beb03d108632b6", size = 4296791, upload_time = "2025-10-01T00:28:37.732Z" }, + { url = "https://files.pythonhosted.org/packages/78/12/9065b40201b4f4876e93b9b94d91feb18de9150d60bd842a16a21565007f/cryptography-46.0.2-cp38-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:04911b149eae142ccd8c9a68892a70c21613864afb47aba92d8c7ed9cc001023", size = 4939629, upload_time = "2025-10-01T00:28:39.654Z" }, + { url = "https://files.pythonhosted.org/packages/f6/9e/6507dc048c1b1530d372c483dfd34e7709fc542765015425f0442b08547f/cryptography-46.0.2-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:8b16c1ede6a937c291d41176934268e4ccac2c6521c69d3f5961c5a1e11e039e", size = 4471988, upload_time = "2025-10-01T00:28:41.822Z" }, + { url = "https://files.pythonhosted.org/packages/b1/86/d025584a5f7d5c5ec8d3633dbcdce83a0cd579f1141ceada7817a4c26934/cryptography-46.0.2-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:747b6f4a4a23d5a215aadd1d0b12233b4119c4313df83ab4137631d43672cc90", size = 4422989, upload_time = "2025-10-01T00:28:43.608Z" }, + { url = "https://files.pythonhosted.org/packages/4b/39/536370418b38a15a61bbe413006b79dfc3d2b4b0eafceb5581983f973c15/cryptography-46.0.2-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:6b275e398ab3a7905e168c036aad54b5969d63d3d9099a0a66cc147a3cc983be", size = 4685578, upload_time = "2025-10-01T00:28:45.361Z" }, +] + +[[package]] +name = "dandi" +version = "0.71.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "bids-validator-deno" }, + { name = "bidsschematools" }, + { name = "click" }, + { name = "click-didyoumean" }, + { name = "dandischema" }, + { name = "etelemetry" }, + { name = "fasteners" }, + { name = "fscacher" }, + { name = "hdmf" }, + { name = "humanize" }, + { name = "interleave" }, + { name = "joblib" }, + { name = "keyring" }, + { name = "keyrings-alt" }, + { name = "numcodecs" }, + { name = "nwbinspector" }, + { name = "packaging" }, + { name = "platformdirs" }, + { name = "pycryptodomex" }, + { name = "pydantic" }, + { name = "pynwb" }, + { name = "pyout" }, + { name = "python-dateutil" }, + { name = "requests" }, + { name = "ruamel-yaml" }, + { name = "semantic-version" }, + { name = "tenacity" }, + { name = "tensorstore" }, + { name = "urllib3" }, + { name = "yarl" }, + { name = "zarr" }, + { name = "zarr-checksum" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/10/fc/39127506b70d3ef212a830e3d3725e032c2c049349ce60de5ed597317c55/dandi-0.71.4.tar.gz", hash = "sha256:5dc9e1960d8c55cb5a184b15f58c07cb50fdb7f5038c0f6bc8ccbb214e83381b", size = 354241, upload_time = "2025-09-17T01:39:44.061Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8e/60/5496a7c0de8221b0683bdee8f9710f297da125951d4f507bf8e037a512fe/dandi-0.71.4-py3-none-any.whl", hash = "sha256:3cf15eb411218386cc1a01465b604a97de6d5c5ef53c4186d84fed69605ef9a4", size = 359756, upload_time = "2025-09-17T01:39:42.145Z" }, +] + +[[package]] +name = "dandischema" +version = "0.11.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jsonschema", extra = ["format"] }, + { name = "pydantic", extra = ["email"] }, + { name = "requests" }, + { name = "zarr-checksum" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/83/c3/68b59ef8f7d49904af4aa4ea730364f3eb02b94cceaaadf128048cbd6370/dandischema-0.11.1.tar.gz", hash = "sha256:662ca01ec3bd81ca70becc98727b0aadd5b116a40ad257d11216acab0d8dda66", size = 74714, upload_time = "2025-05-15T13:38:37.957Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a2/a6/ea4542a2897f8e0438621bc44cd462021c737c84be85e1964f8625ce6509/dandischema-0.11.1-py3-none-any.whl", hash = "sha256:ac80c29a8dad7b4df2e3c7edd5a830fcb31acabe75c78a4b7323097e136d040f", size = 85309, upload_time = "2025-05-15T13:38:36.83Z" }, +] + +[[package]] +name = "deprecated" +version = "1.2.18" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "wrapt" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/98/97/06afe62762c9a8a86af0cfb7bfdab22a43ad17138b07af5b1a58442690a2/deprecated-1.2.18.tar.gz", hash = "sha256:422b6f6d859da6f2ef57857761bfb392480502a64c3028ca9bbe86085d72115d", size = 2928744, upload_time = "2025-01-27T10:46:25.7Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6e/c6/ac0b6c1e2d138f1002bcf799d330bd6d85084fece321e662a14223794041/Deprecated-1.2.18-py2.py3-none-any.whl", hash = "sha256:bd5011788200372a32418f888e326a09ff80d0214bd961147cfed01b5c018eec", size = 9998, upload_time = "2025-01-27T10:46:09.186Z" }, +] + +[[package]] +name = "dnspython" +version = "2.8.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8c/8b/57666417c0f90f08bcafa776861060426765fdb422eb10212086fb811d26/dnspython-2.8.0.tar.gz", hash = "sha256:181d3c6996452cb1189c4046c61599b84a5a86e099562ffde77d26984ff26d0f", size = 368251, upload_time = "2025-09-07T18:58:00.022Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ba/5a/18ad964b0086c6e62e2e7500f7edc89e3faa45033c71c1893d34eed2b2de/dnspython-2.8.0-py3-none-any.whl", hash = "sha256:01d9bbc4a2d76bf0db7c1f729812ded6d912bd318d3b1cf81d30c0f845dbf3af", size = 331094, upload_time = "2025-09-07T18:57:58.071Z" }, +] + +[[package]] +name = "email-validator" +version = "2.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "dnspython" }, + { name = "idna" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f5/22/900cb125c76b7aaa450ce02fd727f452243f2e91a61af068b40adba60ea9/email_validator-2.3.0.tar.gz", hash = "sha256:9fc05c37f2f6cf439ff414f8fc46d917929974a82244c20eb10231ba60c54426", size = 51238, upload_time = "2025-08-26T13:09:06.831Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/de/15/545e2b6cf2e3be84bc1ed85613edd75b8aea69807a71c26f4ca6a9258e82/email_validator-2.3.0-py3-none-any.whl", hash = "sha256:80f13f623413e6b197ae73bb10bf4eb0908faf509ad8362c5edeb0be7fd450b4", size = 35604, upload_time = "2025-08-26T13:09:05.858Z" }, +] + +[[package]] +name = "estimatingneurallatents" +version = "0.1.0" +source = { virtual = "." } +dependencies = [ + { name = "dandi" }, + { name = "h5py" }, + { name = "numpy" }, + { name = "pynwb" }, + { name = "remfile" }, + { name = "ssm" }, + { name = "torch" }, +] + +[package.metadata] +requires-dist = [ + { name = "dandi", specifier = ">=0.71.4" }, + { name = "h5py", specifier = ">=3.14.0" }, + { name = "numpy", specifier = ">=2.3.3" }, + { name = "pynwb", specifier = ">=3.1.2" }, + { name = "remfile", specifier = ">=0.1.13" }, + { name = "ssm", git = "https://github.com/ncguilbeault/lds_python?rev=75e3e5e92ce6344009b62a5034db49b238db63ef" }, + { name = "torch", specifier = ">=2.8.0" }, +] + +[[package]] +name = "etelemetry" +version = "0.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ci-info" }, + { name = "packaging" }, + { name = "requests" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/83/27/f997c9da0e179986fadd6c8474d16743f1b3697c129c2fcd1e739cd038c2/etelemetry-0.3.1-py3-none-any.whl", hash = "sha256:a64f09bcd55cbfa5684e4d9fb6d1d6a018ab99d2ea28e638435c4c26e6814a6b", size = 6416, upload_time = "2023-10-13T15:13:16.067Z" }, +] + +[[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, 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, upload_time = "2025-08-11T10:19:35.716Z" }, +] + +[[package]] +name = "filelock" +version = "3.20.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/58/46/0028a82567109b5ef6e4d2a1f04a583fb513e6cf9527fcdd09afd817deeb/filelock-3.20.0.tar.gz", hash = "sha256:711e943b4ec6be42e1d4e6690b48dc175c822967466bb31c0c293f34334c13f4", size = 18922, upload_time = "2025-10-08T18:03:50.056Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/76/91/7216b27286936c16f5b4d0c530087e4a54eead683e6b0b73dd0c64844af6/filelock-3.20.0-py3-none-any.whl", hash = "sha256:339b4732ffda5cd79b13f4e2711a31b0365ce445d95d243bb996273d072546a2", size = 16054, upload_time = "2025-10-08T18:03:48.35Z" }, +] + +[[package]] +name = "fqdn" +version = "1.5.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/30/3e/a80a8c077fd798951169626cde3e239adeba7dab75deb3555716415bd9b0/fqdn-1.5.1.tar.gz", hash = "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f", size = 6015, upload_time = "2021-03-11T07:16:29.08Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cf/58/8acf1b3e91c58313ce5cb67df61001fc9dcd21be4fadb76c1a2d540e09ed/fqdn-1.5.1-py3-none-any.whl", hash = "sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014", size = 9121, upload_time = "2021-03-11T07:16:28.351Z" }, +] + +[[package]] +name = "frozenlist" +version = "1.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/79/b1/b64018016eeb087db503b038296fd782586432b9c077fc5c7839e9cb6ef6/frozenlist-1.7.0.tar.gz", hash = "sha256:2e310d81923c2437ea8670467121cc3e9b0f76d3043cc1d2331d56c7fb7a3a8f", size = 45078, upload_time = "2025-06-09T23:02:35.538Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ef/a2/c8131383f1e66adad5f6ecfcce383d584ca94055a34d683bbb24ac5f2f1c/frozenlist-1.7.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:3dbf9952c4bb0e90e98aec1bd992b3318685005702656bc6f67c1a32b76787f2", size = 81424, upload_time = "2025-06-09T23:00:42.24Z" }, + { url = "https://files.pythonhosted.org/packages/4c/9d/02754159955088cb52567337d1113f945b9e444c4960771ea90eb73de8db/frozenlist-1.7.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:1f5906d3359300b8a9bb194239491122e6cf1444c2efb88865426f170c262cdb", size = 47952, upload_time = "2025-06-09T23:00:43.481Z" }, + { url = "https://files.pythonhosted.org/packages/01/7a/0046ef1bd6699b40acd2067ed6d6670b4db2f425c56980fa21c982c2a9db/frozenlist-1.7.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3dabd5a8f84573c8d10d8859a50ea2dec01eea372031929871368c09fa103478", size = 46688, upload_time = "2025-06-09T23:00:44.793Z" }, + { url = "https://files.pythonhosted.org/packages/d6/a2/a910bafe29c86997363fb4c02069df4ff0b5bc39d33c5198b4e9dd42d8f8/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa57daa5917f1738064f302bf2626281a1cb01920c32f711fbc7bc36111058a8", size = 243084, upload_time = "2025-06-09T23:00:46.125Z" }, + { url = "https://files.pythonhosted.org/packages/64/3e/5036af9d5031374c64c387469bfcc3af537fc0f5b1187d83a1cf6fab1639/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c193dda2b6d49f4c4398962810fa7d7c78f032bf45572b3e04dd5249dff27e08", size = 233524, upload_time = "2025-06-09T23:00:47.73Z" }, + { url = "https://files.pythonhosted.org/packages/06/39/6a17b7c107a2887e781a48ecf20ad20f1c39d94b2a548c83615b5b879f28/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bfe2b675cf0aaa6d61bf8fbffd3c274b3c9b7b1623beb3809df8a81399a4a9c4", size = 248493, upload_time = "2025-06-09T23:00:49.742Z" }, + { url = "https://files.pythonhosted.org/packages/be/00/711d1337c7327d88c44d91dd0f556a1c47fb99afc060ae0ef66b4d24793d/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8fc5d5cda37f62b262405cf9652cf0856839c4be8ee41be0afe8858f17f4c94b", size = 244116, upload_time = "2025-06-09T23:00:51.352Z" }, + { url = "https://files.pythonhosted.org/packages/24/fe/74e6ec0639c115df13d5850e75722750adabdc7de24e37e05a40527ca539/frozenlist-1.7.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b0d5ce521d1dd7d620198829b87ea002956e4319002ef0bc8d3e6d045cb4646e", size = 224557, upload_time = "2025-06-09T23:00:52.855Z" }, + { url = "https://files.pythonhosted.org/packages/8d/db/48421f62a6f77c553575201e89048e97198046b793f4a089c79a6e3268bd/frozenlist-1.7.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:488d0a7d6a0008ca0db273c542098a0fa9e7dfaa7e57f70acef43f32b3f69dca", size = 241820, upload_time = "2025-06-09T23:00:54.43Z" }, + { url = "https://files.pythonhosted.org/packages/1d/fa/cb4a76bea23047c8462976ea7b7a2bf53997a0ca171302deae9d6dd12096/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:15a7eaba63983d22c54d255b854e8108e7e5f3e89f647fc854bd77a237e767df", size = 236542, upload_time = "2025-06-09T23:00:56.409Z" }, + { url = "https://files.pythonhosted.org/packages/5d/32/476a4b5cfaa0ec94d3f808f193301debff2ea42288a099afe60757ef6282/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:1eaa7e9c6d15df825bf255649e05bd8a74b04a4d2baa1ae46d9c2d00b2ca2cb5", size = 249350, upload_time = "2025-06-09T23:00:58.468Z" }, + { url = "https://files.pythonhosted.org/packages/8d/ba/9a28042f84a6bf8ea5dbc81cfff8eaef18d78b2a1ad9d51c7bc5b029ad16/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e4389e06714cfa9d47ab87f784a7c5be91d3934cd6e9a7b85beef808297cc025", size = 225093, upload_time = "2025-06-09T23:01:00.015Z" }, + { url = "https://files.pythonhosted.org/packages/bc/29/3a32959e68f9cf000b04e79ba574527c17e8842e38c91d68214a37455786/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:73bd45e1488c40b63fe5a7df892baf9e2a4d4bb6409a2b3b78ac1c6236178e01", size = 245482, upload_time = "2025-06-09T23:01:01.474Z" }, + { url = "https://files.pythonhosted.org/packages/80/e8/edf2f9e00da553f07f5fa165325cfc302dead715cab6ac8336a5f3d0adc2/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:99886d98e1643269760e5fe0df31e5ae7050788dd288947f7f007209b8c33f08", size = 249590, upload_time = "2025-06-09T23:01:02.961Z" }, + { url = "https://files.pythonhosted.org/packages/1c/80/9a0eb48b944050f94cc51ee1c413eb14a39543cc4f760ed12657a5a3c45a/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:290a172aae5a4c278c6da8a96222e6337744cd9c77313efe33d5670b9f65fc43", size = 237785, upload_time = "2025-06-09T23:01:05.095Z" }, + { url = "https://files.pythonhosted.org/packages/f3/74/87601e0fb0369b7a2baf404ea921769c53b7ae00dee7dcfe5162c8c6dbf0/frozenlist-1.7.0-cp312-cp312-win32.whl", hash = "sha256:426c7bc70e07cfebc178bc4c2bf2d861d720c4fff172181eeb4a4c41d4ca2ad3", size = 39487, upload_time = "2025-06-09T23:01:06.54Z" }, + { url = "https://files.pythonhosted.org/packages/0b/15/c026e9a9fc17585a9d461f65d8593d281fedf55fbf7eb53f16c6df2392f9/frozenlist-1.7.0-cp312-cp312-win_amd64.whl", hash = "sha256:563b72efe5da92e02eb68c59cb37205457c977aa7a449ed1b37e6939e5c47c6a", size = 43874, upload_time = "2025-06-09T23:01:07.752Z" }, + { url = "https://files.pythonhosted.org/packages/24/90/6b2cebdabdbd50367273c20ff6b57a3dfa89bd0762de02c3a1eb42cb6462/frozenlist-1.7.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ee80eeda5e2a4e660651370ebffd1286542b67e268aa1ac8d6dbe973120ef7ee", size = 79791, upload_time = "2025-06-09T23:01:09.368Z" }, + { url = "https://files.pythonhosted.org/packages/83/2e/5b70b6a3325363293fe5fc3ae74cdcbc3e996c2a11dde2fd9f1fb0776d19/frozenlist-1.7.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d1a81c85417b914139e3a9b995d4a1c84559afc839a93cf2cb7f15e6e5f6ed2d", size = 47165, upload_time = "2025-06-09T23:01:10.653Z" }, + { url = "https://files.pythonhosted.org/packages/f4/25/a0895c99270ca6966110f4ad98e87e5662eab416a17e7fd53c364bf8b954/frozenlist-1.7.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cbb65198a9132ebc334f237d7b0df163e4de83fb4f2bdfe46c1e654bdb0c5d43", size = 45881, upload_time = "2025-06-09T23:01:12.296Z" }, + { url = "https://files.pythonhosted.org/packages/19/7c/71bb0bbe0832793c601fff68cd0cf6143753d0c667f9aec93d3c323f4b55/frozenlist-1.7.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dab46c723eeb2c255a64f9dc05b8dd601fde66d6b19cdb82b2e09cc6ff8d8b5d", size = 232409, upload_time = "2025-06-09T23:01:13.641Z" }, + { url = "https://files.pythonhosted.org/packages/c0/45/ed2798718910fe6eb3ba574082aaceff4528e6323f9a8570be0f7028d8e9/frozenlist-1.7.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6aeac207a759d0dedd2e40745575ae32ab30926ff4fa49b1635def65806fddee", size = 225132, upload_time = "2025-06-09T23:01:15.264Z" }, + { url = "https://files.pythonhosted.org/packages/ba/e2/8417ae0f8eacb1d071d4950f32f229aa6bf68ab69aab797b72a07ea68d4f/frozenlist-1.7.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bd8c4e58ad14b4fa7802b8be49d47993182fdd4023393899632c88fd8cd994eb", size = 237638, upload_time = "2025-06-09T23:01:16.752Z" }, + { url = "https://files.pythonhosted.org/packages/f8/b7/2ace5450ce85f2af05a871b8c8719b341294775a0a6c5585d5e6170f2ce7/frozenlist-1.7.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:04fb24d104f425da3540ed83cbfc31388a586a7696142004c577fa61c6298c3f", size = 233539, upload_time = "2025-06-09T23:01:18.202Z" }, + { url = "https://files.pythonhosted.org/packages/46/b9/6989292c5539553dba63f3c83dc4598186ab2888f67c0dc1d917e6887db6/frozenlist-1.7.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6a5c505156368e4ea6b53b5ac23c92d7edc864537ff911d2fb24c140bb175e60", size = 215646, upload_time = "2025-06-09T23:01:19.649Z" }, + { url = "https://files.pythonhosted.org/packages/72/31/bc8c5c99c7818293458fe745dab4fd5730ff49697ccc82b554eb69f16a24/frozenlist-1.7.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8bd7eb96a675f18aa5c553eb7ddc24a43c8c18f22e1f9925528128c052cdbe00", size = 232233, upload_time = "2025-06-09T23:01:21.175Z" }, + { url = "https://files.pythonhosted.org/packages/59/52/460db4d7ba0811b9ccb85af996019f5d70831f2f5f255f7cc61f86199795/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:05579bf020096fe05a764f1f84cd104a12f78eaab68842d036772dc6d4870b4b", size = 227996, upload_time = "2025-06-09T23:01:23.098Z" }, + { url = "https://files.pythonhosted.org/packages/ba/c9/f4b39e904c03927b7ecf891804fd3b4df3db29b9e487c6418e37988d6e9d/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:376b6222d114e97eeec13d46c486facd41d4f43bab626b7c3f6a8b4e81a5192c", size = 242280, upload_time = "2025-06-09T23:01:24.808Z" }, + { url = "https://files.pythonhosted.org/packages/b8/33/3f8d6ced42f162d743e3517781566b8481322be321b486d9d262adf70bfb/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:0aa7e176ebe115379b5b1c95b4096fb1c17cce0847402e227e712c27bdb5a949", size = 217717, upload_time = "2025-06-09T23:01:26.28Z" }, + { url = "https://files.pythonhosted.org/packages/3e/e8/ad683e75da6ccef50d0ab0c2b2324b32f84fc88ceee778ed79b8e2d2fe2e/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:3fbba20e662b9c2130dc771e332a99eff5da078b2b2648153a40669a6d0e36ca", size = 236644, upload_time = "2025-06-09T23:01:27.887Z" }, + { url = "https://files.pythonhosted.org/packages/b2/14/8d19ccdd3799310722195a72ac94ddc677541fb4bef4091d8e7775752360/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:f3f4410a0a601d349dd406b5713fec59b4cee7e71678d5b17edda7f4655a940b", size = 238879, upload_time = "2025-06-09T23:01:29.524Z" }, + { url = "https://files.pythonhosted.org/packages/ce/13/c12bf657494c2fd1079a48b2db49fa4196325909249a52d8f09bc9123fd7/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e2cdfaaec6a2f9327bf43c933c0319a7c429058e8537c508964a133dffee412e", size = 232502, upload_time = "2025-06-09T23:01:31.287Z" }, + { url = "https://files.pythonhosted.org/packages/d7/8b/e7f9dfde869825489382bc0d512c15e96d3964180c9499efcec72e85db7e/frozenlist-1.7.0-cp313-cp313-win32.whl", hash = "sha256:5fc4df05a6591c7768459caba1b342d9ec23fa16195e744939ba5914596ae3e1", size = 39169, upload_time = "2025-06-09T23:01:35.503Z" }, + { url = "https://files.pythonhosted.org/packages/35/89/a487a98d94205d85745080a37860ff5744b9820a2c9acbcdd9440bfddf98/frozenlist-1.7.0-cp313-cp313-win_amd64.whl", hash = "sha256:52109052b9791a3e6b5d1b65f4b909703984b770694d3eb64fad124c835d7cba", size = 43219, upload_time = "2025-06-09T23:01:36.784Z" }, + { url = "https://files.pythonhosted.org/packages/56/d5/5c4cf2319a49eddd9dd7145e66c4866bdc6f3dbc67ca3d59685149c11e0d/frozenlist-1.7.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:a6f86e4193bb0e235ef6ce3dde5cbabed887e0b11f516ce8a0f4d3b33078ec2d", size = 84345, upload_time = "2025-06-09T23:01:38.295Z" }, + { url = "https://files.pythonhosted.org/packages/a4/7d/ec2c1e1dc16b85bc9d526009961953df9cec8481b6886debb36ec9107799/frozenlist-1.7.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:82d664628865abeb32d90ae497fb93df398a69bb3434463d172b80fc25b0dd7d", size = 48880, upload_time = "2025-06-09T23:01:39.887Z" }, + { url = "https://files.pythonhosted.org/packages/69/86/f9596807b03de126e11e7d42ac91e3d0b19a6599c714a1989a4e85eeefc4/frozenlist-1.7.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:912a7e8375a1c9a68325a902f3953191b7b292aa3c3fb0d71a216221deca460b", size = 48498, upload_time = "2025-06-09T23:01:41.318Z" }, + { url = "https://files.pythonhosted.org/packages/5e/cb/df6de220f5036001005f2d726b789b2c0b65f2363b104bbc16f5be8084f8/frozenlist-1.7.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9537c2777167488d539bc5de2ad262efc44388230e5118868e172dd4a552b146", size = 292296, upload_time = "2025-06-09T23:01:42.685Z" }, + { url = "https://files.pythonhosted.org/packages/83/1f/de84c642f17c8f851a2905cee2dae401e5e0daca9b5ef121e120e19aa825/frozenlist-1.7.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:f34560fb1b4c3e30ba35fa9a13894ba39e5acfc5f60f57d8accde65f46cc5e74", size = 273103, upload_time = "2025-06-09T23:01:44.166Z" }, + { url = "https://files.pythonhosted.org/packages/88/3c/c840bfa474ba3fa13c772b93070893c6e9d5c0350885760376cbe3b6c1b3/frozenlist-1.7.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:acd03d224b0175f5a850edc104ac19040d35419eddad04e7cf2d5986d98427f1", size = 292869, upload_time = "2025-06-09T23:01:45.681Z" }, + { url = "https://files.pythonhosted.org/packages/a6/1c/3efa6e7d5a39a1d5ef0abeb51c48fb657765794a46cf124e5aca2c7a592c/frozenlist-1.7.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f2038310bc582f3d6a09b3816ab01737d60bf7b1ec70f5356b09e84fb7408ab1", size = 291467, upload_time = "2025-06-09T23:01:47.234Z" }, + { url = "https://files.pythonhosted.org/packages/4f/00/d5c5e09d4922c395e2f2f6b79b9a20dab4b67daaf78ab92e7729341f61f6/frozenlist-1.7.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b8c05e4c8e5f36e5e088caa1bf78a687528f83c043706640a92cb76cd6999384", size = 266028, upload_time = "2025-06-09T23:01:48.819Z" }, + { url = "https://files.pythonhosted.org/packages/4e/27/72765be905619dfde25a7f33813ac0341eb6b076abede17a2e3fbfade0cb/frozenlist-1.7.0-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:765bb588c86e47d0b68f23c1bee323d4b703218037765dcf3f25c838c6fecceb", size = 284294, upload_time = "2025-06-09T23:01:50.394Z" }, + { url = "https://files.pythonhosted.org/packages/88/67/c94103a23001b17808eb7dd1200c156bb69fb68e63fcf0693dde4cd6228c/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:32dc2e08c67d86d0969714dd484fd60ff08ff81d1a1e40a77dd34a387e6ebc0c", size = 281898, upload_time = "2025-06-09T23:01:52.234Z" }, + { url = "https://files.pythonhosted.org/packages/42/34/a3e2c00c00f9e2a9db5653bca3fec306349e71aff14ae45ecc6d0951dd24/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:c0303e597eb5a5321b4de9c68e9845ac8f290d2ab3f3e2c864437d3c5a30cd65", size = 290465, upload_time = "2025-06-09T23:01:53.788Z" }, + { url = "https://files.pythonhosted.org/packages/bb/73/f89b7fbce8b0b0c095d82b008afd0590f71ccb3dee6eee41791cf8cd25fd/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:a47f2abb4e29b3a8d0b530f7c3598badc6b134562b1a5caee867f7c62fee51e3", size = 266385, upload_time = "2025-06-09T23:01:55.769Z" }, + { url = "https://files.pythonhosted.org/packages/cd/45/e365fdb554159462ca12df54bc59bfa7a9a273ecc21e99e72e597564d1ae/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:3d688126c242a6fabbd92e02633414d40f50bb6002fa4cf995a1d18051525657", size = 288771, upload_time = "2025-06-09T23:01:57.4Z" }, + { url = "https://files.pythonhosted.org/packages/00/11/47b6117002a0e904f004d70ec5194fe9144f117c33c851e3d51c765962d0/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:4e7e9652b3d367c7bd449a727dc79d5043f48b88d0cbfd4f9f1060cf2b414104", size = 288206, upload_time = "2025-06-09T23:01:58.936Z" }, + { url = "https://files.pythonhosted.org/packages/40/37/5f9f3c3fd7f7746082ec67bcdc204db72dad081f4f83a503d33220a92973/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:1a85e345b4c43db8b842cab1feb41be5cc0b10a1830e6295b69d7310f99becaf", size = 282620, upload_time = "2025-06-09T23:02:00.493Z" }, + { url = "https://files.pythonhosted.org/packages/0b/31/8fbc5af2d183bff20f21aa743b4088eac4445d2bb1cdece449ae80e4e2d1/frozenlist-1.7.0-cp313-cp313t-win32.whl", hash = "sha256:3a14027124ddb70dfcee5148979998066897e79f89f64b13328595c4bdf77c81", size = 43059, upload_time = "2025-06-09T23:02:02.072Z" }, + { url = "https://files.pythonhosted.org/packages/bb/ed/41956f52105b8dbc26e457c5705340c67c8cc2b79f394b79bffc09d0e938/frozenlist-1.7.0-cp313-cp313t-win_amd64.whl", hash = "sha256:3bf8010d71d4507775f658e9823210b7427be36625b387221642725b515dcf3e", size = 47516, upload_time = "2025-06-09T23:02:03.779Z" }, + { url = "https://files.pythonhosted.org/packages/ee/45/b82e3c16be2182bff01179db177fe144d58b5dc787a7d4492c6ed8b9317f/frozenlist-1.7.0-py3-none-any.whl", hash = "sha256:9a5af342e34f7e97caf8c995864c7a396418ae2859cc6fdf1b1073020d516a7e", size = 13106, upload_time = "2025-06-09T23:02:34.204Z" }, +] + +[[package]] +name = "fscacher" +version = "0.4.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "joblib" }, + { name = "platformdirs" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/37/b7/d78437a034563d0b063d327d0bf9ac51854305ddf1f002ec54d18928e051/fscacher-0.4.4.tar.gz", hash = "sha256:742ab436ea698c3ef06e9d9cde81a5687bf2c2910019679a0d7f572d8ab97d79", size = 35265, upload_time = "2025-01-06T14:04:24.19Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/f1/816bb80e649ba7202cee656733ecea134370f9496c661fc16c129450bdbc/fscacher-0.4.4-py3-none-any.whl", hash = "sha256:f45632f318e979a7c27fc645b36bd633121fa443a50daf96de0fb9afe7c61b47", size = 12484, upload_time = "2025-01-06T14:04:22.612Z" }, +] + +[[package]] +name = "fsspec" +version = "2025.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/de/e0/bab50af11c2d75c9c4a2a26a5254573c0bd97cea152254401510950486fa/fsspec-2025.9.0.tar.gz", hash = "sha256:19fd429483d25d28b65ec68f9f4adc16c17ea2c7c7bf54ec61360d478fb19c19", size = 304847, upload_time = "2025-09-02T19:10:49.215Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/47/71/70db47e4f6ce3e5c37a607355f80da8860a33226be640226ac52cb05ef2e/fsspec-2025.9.0-py3-none-any.whl", hash = "sha256:530dc2a2af60a414a832059574df4a6e10cce927f6f4a78209390fe38955cfb7", size = 199289, upload_time = "2025-09-02T19:10:47.708Z" }, +] + +[[package]] +name = "h5py" +version = "3.14.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +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 = "hdmf" +version = "4.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "h5py" }, + { name = "jsonschema" }, + { name = "numpy" }, + { name = "pandas" }, + { name = "ruamel-yaml" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5d/42/1abbdd6321e9c3b382cac20e993fc9f347417b5a2dadf771801cca033607/hdmf-4.1.0.tar.gz", hash = "sha256:7fd1577deeb2f385fa34bda93657babe697fd71420eda2bec6e12ef03e53730a", size = 16607167, upload_time = "2025-05-28T19:02:11.54Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/e4/a5c84425feece1383ede342086720f8eba4a67e6afc2e4f990d2ce1d7e94/hdmf-4.1.0-py3-none-any.whl", hash = "sha256:d0cffd8e573d77368892d20351ecba07142a8a21b75c7665d732748132d7a696", size = 336653, upload_time = "2025-05-28T19:02:09.808Z" }, +] + +[[package]] +name = "hdmf-zarr" +version = "0.11.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "hdmf" }, + { name = "numcodecs" }, + { name = "numpy" }, + { name = "pynwb" }, + { name = "threadpoolctl" }, + { name = "zarr" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ab/a2/df41ea6846da35ed2427730379f8650521d0364517131b036c1e7462d1c3/hdmf_zarr-0.11.3.tar.gz", hash = "sha256:07c3aaaa59ac5b02d3abc80b5e25fcd1a9742eb296fe251c992a277a1850e97c", size = 3105845, upload_time = "2025-08-10T22:23:57.676Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/b9/c6dd04e38336afd1301a8f7f214a599724dcf8fe57522817ea65a430ad31/hdmf_zarr-0.11.3-py3-none-any.whl", hash = "sha256:57202f9f19bda920b34e25788fa4de67c0d93ff3076345f01419bde1d230a7bb", size = 33288, upload_time = "2025-08-10T22:23:55.54Z" }, +] + +[[package]] +name = "humanize" +version = "4.13.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/98/1d/3062fcc89ee05a715c0b9bfe6490c00c576314f27ffee3a704122c6fd259/humanize-4.13.0.tar.gz", hash = "sha256:78f79e68f76f0b04d711c4e55d32bebef5be387148862cb1ef83d2b58e7935a0", size = 81884, upload_time = "2025-08-25T09:39:20.04Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/c7/316e7ca04d26695ef0635dc81683d628350810eb8e9b2299fc08ba49f366/humanize-4.13.0-py3-none-any.whl", hash = "sha256:b810820b31891813b1673e8fec7f1ed3312061eab2f26e3fa192c393d11ed25f", size = 128869, upload_time = "2025-08-25T09:39:18.54Z" }, +] + +[[package]] +name = "idna" +version = "3.10" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490, upload_time = "2024-09-15T18:07:39.745Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442, upload_time = "2024-09-15T18:07:37.964Z" }, +] + +[[package]] +name = "interleave" +version = "0.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cb/73/f06bcda00889d164ee1918126381f2d5e0030a6deaf80c9887e84ba18e31/interleave-0.3.0.tar.gz", hash = "sha256:4c4595e05c5c3286d306db7459972bada9a38088fb8649c1199782c8e4a60a32", size = 15689, upload_time = "2025-01-28T19:48:04.286Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/2b/13b5b2e418bc77574b7215c26be862f72d7850713116641c4ad56add61fd/interleave-0.3.0-py3-none-any.whl", hash = "sha256:09d772693b958c0cbb11e3cd8a6b726c6995c7e12b0530a10ae31a943b458c39", size = 11847, upload_time = "2025-01-28T19:48:03.081Z" }, +] + +[[package]] +name = "isodate" +version = "0.7.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/54/4d/e940025e2ce31a8ce1202635910747e5a87cc3a6a6bb2d00973375014749/isodate-0.7.2.tar.gz", hash = "sha256:4cd1aa0f43ca76f4a6c6c0292a85f40b35ec2e43e315b59f06e6d32171a953e6", size = 29705, upload_time = "2024-10-08T23:04:11.5Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/15/aa/0aca39a37d3c7eb941ba736ede56d689e7be91cab5d9ca846bde3999eba6/isodate-0.7.2-py3-none-any.whl", hash = "sha256:28009937d8031054830160fce6d409ed342816b543597cece116d966c6d99e15", size = 22320, upload_time = "2024-10-08T23:04:09.501Z" }, +] + +[[package]] +name = "isoduration" +version = "20.11.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "arrow" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7c/1a/3c8edc664e06e6bd06cce40c6b22da5f1429aa4224d0c590f3be21c91ead/isoduration-20.11.0.tar.gz", hash = "sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9", size = 11649, upload_time = "2020-11-01T11:00:00.312Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7b/55/e5326141505c5d5e34c5e0935d2908a74e4561eca44108fbfb9c13d2911a/isoduration-20.11.0-py3-none-any.whl", hash = "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042", size = 11321, upload_time = "2020-11-01T10:59:58.02Z" }, +] + +[[package]] +name = "jaraco-classes" +version = "3.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "more-itertools" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/06/c0/ed4a27bc5571b99e3cff68f8a9fa5b56ff7df1c2251cc715a652ddd26402/jaraco.classes-3.4.0.tar.gz", hash = "sha256:47a024b51d0239c0dd8c8540c6c7f484be3b8fcf0b2d85c13825780d3b3f3acd", size = 11780, upload_time = "2024-03-31T07:27:36.643Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7f/66/b15ce62552d84bbfcec9a4873ab79d993a1dd4edb922cbfccae192bd5b5f/jaraco.classes-3.4.0-py3-none-any.whl", hash = "sha256:f662826b6bed8cace05e7ff873ce0f9283b5c924470fe664fff1c2f00f581790", size = 6777, upload_time = "2024-03-31T07:27:34.792Z" }, +] + +[[package]] +name = "jaraco-context" +version = "6.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ad/f3777b81bf0b6e7bc7514a1656d3e637b2e8e15fab2ce3235730b3e7a4e6/jaraco_context-6.0.1.tar.gz", hash = "sha256:9bae4ea555cf0b14938dc0aee7c9f32ed303aa20a3b73e7dc80111628792d1b3", size = 13912, upload_time = "2024-08-20T03:39:27.358Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ff/db/0c52c4cf5e4bd9f5d7135ec7669a3a767af21b3a308e1ed3674881e52b62/jaraco.context-6.0.1-py3-none-any.whl", hash = "sha256:f797fc481b490edb305122c9181830a3a5b76d84ef6d1aef2fb9b47ab956f9e4", size = 6825, upload_time = "2024-08-20T03:39:25.966Z" }, +] + +[[package]] +name = "jaraco-functools" +version = "4.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "more-itertools" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/ed/1aa2d585304ec07262e1a83a9889880701079dde796ac7b1d1826f40c63d/jaraco_functools-4.3.0.tar.gz", hash = "sha256:cfd13ad0dd2c47a3600b439ef72d8615d482cedcff1632930d6f28924d92f294", size = 19755, upload_time = "2025-08-18T20:05:09.91Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b4/09/726f168acad366b11e420df31bf1c702a54d373a83f968d94141a8c3fde0/jaraco_functools-4.3.0-py3-none-any.whl", hash = "sha256:227ff8ed6f7b8f62c56deff101545fa7543cf2c8e7b82a7c2116e672f29c26e8", size = 10408, upload_time = "2025-08-18T20:05:08.69Z" }, +] + +[[package]] +name = "jeepney" +version = "0.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7b/6f/357efd7602486741aa73ffc0617fb310a29b588ed0fd69c2399acbb85b0c/jeepney-0.9.0.tar.gz", hash = "sha256:cf0e9e845622b81e4a28df94c40345400256ec608d0e55bb8a3feaa9163f5732", size = 106758, upload_time = "2025-02-27T18:51:01.684Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b2/a3/e137168c9c44d18eff0376253da9f1e9234d0239e0ee230d2fee6cea8e55/jeepney-0.9.0-py3-none-any.whl", hash = "sha256:97e5714520c16fc0a45695e5365a2e11b81ea79bba796e26f9f1d178cb182683", size = 49010, upload_time = "2025-02-27T18:51:00.104Z" }, +] + +[[package]] +name = "jinja2" +version = "3.1.6" +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, 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, upload_time = "2025-03-05T20:05:00.369Z" }, +] + +[[package]] +name = "joblib" +version = "1.5.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e8/5d/447af5ea094b9e4c4054f82e223ada074c552335b9b4b2d14bd9b35a67c4/joblib-1.5.2.tar.gz", hash = "sha256:3faa5c39054b2f03ca547da9b2f52fde67c06240c31853f306aea97f13647b55", size = 331077, upload_time = "2025-08-27T12:15:46.575Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/e8/685f47e0d754320684db4425a0967f7d3fa70126bffd76110b7009a0090f/joblib-1.5.2-py3-none-any.whl", hash = "sha256:4e1f0bdbb987e6d843c70cf43714cb276623def372df3c22fe5266b2670bc241", size = 308396, upload_time = "2025-08-27T12:15:45.188Z" }, +] + +[[package]] +name = "jsonpointer" +version = "3.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6a/0a/eebeb1fa92507ea94016a2a790b93c2ae41a7e18778f85471dc54475ed25/jsonpointer-3.0.0.tar.gz", hash = "sha256:2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef", size = 9114, upload_time = "2024-06-10T19:24:42.462Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/71/92/5e77f98553e9e75130c78900d000368476aed74276eb8ae8796f65f00918/jsonpointer-3.0.0-py2.py3-none-any.whl", hash = "sha256:13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942", size = 7595, upload_time = "2024-06-10T19:24:40.698Z" }, +] + +[[package]] +name = "jsonschema" +version = "4.25.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "jsonschema-specifications" }, + { name = "referencing" }, + { name = "rpds-py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/74/69/f7185de793a29082a9f3c7728268ffb31cb5095131a9c139a74078e27336/jsonschema-4.25.1.tar.gz", hash = "sha256:e4a9655ce0da0c0b67a085847e00a3a51449e1157f4f75e9fb5aa545e122eb85", size = 357342, upload_time = "2025-08-18T17:03:50.038Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bf/9c/8c95d856233c1f82500c2450b8c68576b4cf1c871db3afac5c34ff84e6fd/jsonschema-4.25.1-py3-none-any.whl", hash = "sha256:3fba0169e345c7175110351d456342c364814cfcf3b964ba4587f22915230a63", size = 90040, upload_time = "2025-08-18T17:03:48.373Z" }, +] + +[package.optional-dependencies] +format = [ + { name = "fqdn" }, + { name = "idna" }, + { name = "isoduration" }, + { name = "jsonpointer" }, + { name = "rfc3339-validator" }, + { name = "rfc3987" }, + { name = "uri-template" }, + { name = "webcolors" }, +] + +[[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, upload_time = "2025-09-08T01:34:59.186Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl", hash = "sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe", size = 18437, upload_time = "2025-09-08T01:34:57.871Z" }, +] + +[[package]] +name = "keyring" +version = "25.6.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jaraco-classes" }, + { name = "jaraco-context" }, + { name = "jaraco-functools" }, + { name = "jeepney", marker = "sys_platform == 'linux'" }, + { name = "pywin32-ctypes", marker = "sys_platform == 'win32'" }, + { name = "secretstorage", marker = "sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/70/09/d904a6e96f76ff214be59e7aa6ef7190008f52a0ab6689760a98de0bf37d/keyring-25.6.0.tar.gz", hash = "sha256:0b39998aa941431eb3d9b0d4b2460bc773b9df6fed7621c2dfb291a7e0187a66", size = 62750, upload_time = "2024-12-25T15:26:45.782Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d3/32/da7f44bcb1105d3e88a0b74ebdca50c59121d2ddf71c9e34ba47df7f3a56/keyring-25.6.0-py3-none-any.whl", hash = "sha256:552a3f7af126ece7ed5c89753650eec89c7eaae8617d0aa4d9ad2b75111266bd", size = 39085, upload_time = "2024-12-25T15:26:44.377Z" }, +] + +[[package]] +name = "keyrings-alt" +version = "5.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jaraco-classes" }, + { name = "jaraco-context" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5c/7b/e3bf53326e0753bee11813337b1391179582ba5c6851b13e0d9502d15a50/keyrings_alt-5.0.2.tar.gz", hash = "sha256:8f097ebe9dc8b185106502b8cdb066c926d2180e13b4689fd4771a3eab7d69fb", size = 29229, upload_time = "2024-08-14T01:09:28.12Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4a/0d/9c59313ab43d0858a9a665e80763bd830dc78d5f379afc3815e123c486c2/keyrings.alt-5.0.2-py3-none-any.whl", hash = "sha256:6be74693192f3f37bbb752bfac9b86e6177076b17d2ac12a390f1d6abff8ac7c", size = 17930, upload_time = "2024-08-14T01:09:26.785Z" }, +] + +[[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, upload_time = "2025-09-27T18:37:40.426Z" } +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, upload_time = "2025-09-27T18:36:30.854Z" }, + { 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, upload_time = "2025-09-27T18:36:31.971Z" }, + { 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, upload_time = "2025-09-27T18:36:32.813Z" }, + { 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, upload_time = "2025-09-27T18:36:33.86Z" }, + { 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, upload_time = "2025-09-27T18:36:35.099Z" }, + { 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, upload_time = "2025-09-27T18:36:36.001Z" }, + { 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, upload_time = "2025-09-27T18:36:36.906Z" }, + { 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, upload_time = "2025-09-27T18:36:37.868Z" }, + { url = "https://files.pythonhosted.org/packages/2f/e1/78ee7a023dac597a5825441ebd17170785a9dab23de95d2c7508ade94e0e/markupsafe-3.0.3-cp312-cp312-win32.whl", hash = "sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d", size = 14540, upload_time = "2025-09-27T18:36:38.761Z" }, + { url = "https://files.pythonhosted.org/packages/aa/5b/bec5aa9bbbb2c946ca2733ef9c4ca91c91b6a24580193e891b5f7dbe8e1e/markupsafe-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c", size = 15105, upload_time = "2025-09-27T18:36:39.701Z" }, + { url = "https://files.pythonhosted.org/packages/e5/f1/216fc1bbfd74011693a4fd837e7026152e89c4bcf3e77b6692fba9923123/markupsafe-3.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f", size = 13906, upload_time = "2025-09-27T18:36:40.689Z" }, + { 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, upload_time = "2025-09-27T18:36:41.777Z" }, + { 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, upload_time = "2025-09-27T18:36:43.257Z" }, + { 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, upload_time = "2025-09-27T18:36:44.508Z" }, + { 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, upload_time = "2025-09-27T18:36:45.385Z" }, + { 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, upload_time = "2025-09-27T18:36:46.916Z" }, + { 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, upload_time = "2025-09-27T18:36:47.884Z" }, + { 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, upload_time = "2025-09-27T18:36:48.82Z" }, + { 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, upload_time = "2025-09-27T18:36:49.797Z" }, + { url = "https://files.pythonhosted.org/packages/19/bc/e7140ed90c5d61d77cea142eed9f9c303f4c4806f60a1044c13e3f1471d0/markupsafe-3.0.3-cp313-cp313-win32.whl", hash = "sha256:bdd37121970bfd8be76c5fb069c7751683bdf373db1ed6c010162b2a130248ed", size = 14543, upload_time = "2025-09-27T18:36:51.584Z" }, + { url = "https://files.pythonhosted.org/packages/05/73/c4abe620b841b6b791f2edc248f556900667a5a1cf023a6646967ae98335/markupsafe-3.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:9a1abfdc021a164803f4d485104931fb8f8c1efd55bc6b748d2f5774e78b62c5", size = 15113, upload_time = "2025-09-27T18:36:52.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/3a/fa34a0f7cfef23cf9500d68cb7c32dd64ffd58a12b09225fb03dd37d5b80/markupsafe-3.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:7e68f88e5b8799aa49c85cd116c932a1ac15caaa3f5db09087854d218359e485", size = 13911, upload_time = "2025-09-27T18:36:53.513Z" }, + { 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, upload_time = "2025-09-27T18:36:54.819Z" }, + { 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, upload_time = "2025-09-27T18:36:55.714Z" }, + { 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, upload_time = "2025-09-27T18:36:56.908Z" }, + { 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, upload_time = "2025-09-27T18:36:57.913Z" }, + { 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, upload_time = "2025-09-27T18:36:58.833Z" }, + { 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, upload_time = "2025-09-27T18:36:59.739Z" }, + { 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, upload_time = "2025-09-27T18:37:00.719Z" }, + { 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, upload_time = "2025-09-27T18:37:01.673Z" }, + { url = "https://files.pythonhosted.org/packages/80/d6/2d1b89f6ca4bff1036499b1e29a1d02d282259f3681540e16563f27ebc23/markupsafe-3.0.3-cp313-cp313t-win32.whl", hash = "sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354", size = 14612, upload_time = "2025-09-27T18:37:02.639Z" }, + { url = "https://files.pythonhosted.org/packages/2b/98/e48a4bfba0a0ffcf9925fe2d69240bfaa19c6f7507b8cd09c70684a53c1e/markupsafe-3.0.3-cp313-cp313t-win_amd64.whl", hash = "sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218", size = 15200, upload_time = "2025-09-27T18:37:03.582Z" }, + { url = "https://files.pythonhosted.org/packages/0e/72/e3cc540f351f316e9ed0f092757459afbc595824ca724cbc5a5d4263713f/markupsafe-3.0.3-cp313-cp313t-win_arm64.whl", hash = "sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287", size = 13973, upload_time = "2025-09-27T18:37:04.929Z" }, + { 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, upload_time = "2025-09-27T18:37:06.342Z" }, + { 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, upload_time = "2025-09-27T18:37:07.213Z" }, + { 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, upload_time = "2025-09-27T18:37:09.572Z" }, + { 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, upload_time = "2025-09-27T18:37:10.58Z" }, + { 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, upload_time = "2025-09-27T18:37:11.547Z" }, + { 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, upload_time = "2025-09-27T18:37:12.48Z" }, + { 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, upload_time = "2025-09-27T18:37:13.485Z" }, + { 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, upload_time = "2025-09-27T18:37:14.408Z" }, + { url = "https://files.pythonhosted.org/packages/46/11/f333a06fc16236d5238bfe74daccbca41459dcd8d1fa952e8fbd5dccfb70/markupsafe-3.0.3-cp314-cp314-win32.whl", hash = "sha256:729586769a26dbceff69f7a7dbbf59ab6572b99d94576a5592625d5b411576b9", size = 14747, upload_time = "2025-09-27T18:37:15.36Z" }, + { url = "https://files.pythonhosted.org/packages/28/52/182836104b33b444e400b14f797212f720cbc9ed6ba34c800639d154e821/markupsafe-3.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:bdc919ead48f234740ad807933cdf545180bfbe9342c2bb451556db2ed958581", size = 15341, upload_time = "2025-09-27T18:37:16.496Z" }, + { url = "https://files.pythonhosted.org/packages/6f/18/acf23e91bd94fd7b3031558b1f013adfa21a8e407a3fdb32745538730382/markupsafe-3.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:5a7d5dc5140555cf21a6fefbdbf8723f06fcd2f63ef108f2854de715e4422cb4", size = 14073, upload_time = "2025-09-27T18:37:17.476Z" }, + { 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, upload_time = "2025-09-27T18:37:18.453Z" }, + { 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, upload_time = "2025-09-27T18:37:19.332Z" }, + { 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, upload_time = "2025-09-27T18:37:20.245Z" }, + { 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, upload_time = "2025-09-27T18:37:21.177Z" }, + { 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, upload_time = "2025-09-27T18:37:22.167Z" }, + { 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, upload_time = "2025-09-27T18:37:23.296Z" }, + { 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, upload_time = "2025-09-27T18:37:24.237Z" }, + { 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, upload_time = "2025-09-27T18:37:25.271Z" }, + { url = "https://files.pythonhosted.org/packages/fb/df/5bd7a48c256faecd1d36edc13133e51397e41b73bb77e1a69deab746ebac/markupsafe-3.0.3-cp314-cp314t-win32.whl", hash = "sha256:915c04ba3851909ce68ccc2b8e2cd691618c4dc4c4232fb7982bca3f41fd8c3d", size = 14819, upload_time = "2025-09-27T18:37:26.285Z" }, + { url = "https://files.pythonhosted.org/packages/1a/8a/0402ba61a2f16038b48b39bccca271134be00c5c9f0f623208399333c448/markupsafe-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4faffd047e07c38848ce017e8725090413cd80cbc23d86e55c587bf979e579c9", size = 15426, upload_time = "2025-09-27T18:37:27.316Z" }, + { url = "https://files.pythonhosted.org/packages/70/bc/6f1c2f612465f5fa89b95bead1f44dcb607670fd42891d8fdcd5d039f4f4/markupsafe-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa", size = 14146, upload_time = "2025-09-27T18:37:28.327Z" }, +] + +[[package]] +name = "ml-dtypes" +version = "0.5.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/78/a7/aad060393123cfb383956dca68402aff3db1e1caffd5764887ed5153f41b/ml_dtypes-0.5.3.tar.gz", hash = "sha256:95ce33057ba4d05df50b1f3cfefab22e351868a843b3b15a46c65836283670c9", size = 692316, upload_time = "2025-07-29T18:39:19.454Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0d/eb/bc07c88a6ab002b4635e44585d80fa0b350603f11a2097c9d1bfacc03357/ml_dtypes-0.5.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:156418abeeda48ea4797db6776db3c5bdab9ac7be197c1233771e0880c304057", size = 663864, upload_time = "2025-07-29T18:38:33.777Z" }, + { url = "https://files.pythonhosted.org/packages/cf/89/11af9b0f21b99e6386b6581ab40fb38d03225f9de5f55cf52097047e2826/ml_dtypes-0.5.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1db60c154989af253f6c4a34e8a540c2c9dce4d770784d426945e09908fbb177", size = 4951313, upload_time = "2025-07-29T18:38:36.45Z" }, + { url = "https://files.pythonhosted.org/packages/d8/a9/b98b86426c24900b0c754aad006dce2863df7ce0bb2bcc2c02f9cc7e8489/ml_dtypes-0.5.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1b255acada256d1fa8c35ed07b5f6d18bc21d1556f842fbc2d5718aea2cd9e55", size = 4928805, upload_time = "2025-07-29T18:38:38.29Z" }, + { url = "https://files.pythonhosted.org/packages/50/c1/85e6be4fc09c6175f36fb05a45917837f30af9a5146a5151cb3a3f0f9e09/ml_dtypes-0.5.3-cp312-cp312-win_amd64.whl", hash = "sha256:da65e5fd3eea434ccb8984c3624bc234ddcc0d9f4c81864af611aaebcc08a50e", size = 208182, upload_time = "2025-07-29T18:38:39.72Z" }, + { url = "https://files.pythonhosted.org/packages/9e/17/cf5326d6867be057f232d0610de1458f70a8ce7b6290e4b4a277ea62b4cd/ml_dtypes-0.5.3-cp312-cp312-win_arm64.whl", hash = "sha256:8bb9cd1ce63096567f5f42851f5843b5a0ea11511e50039a7649619abfb4ba6d", size = 161560, upload_time = "2025-07-29T18:38:41.072Z" }, + { url = "https://files.pythonhosted.org/packages/2d/87/1bcc98a66de7b2455dfb292f271452cac9edc4e870796e0d87033524d790/ml_dtypes-0.5.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:5103856a225465371fe119f2fef737402b705b810bd95ad5f348e6e1a6ae21af", size = 663781, upload_time = "2025-07-29T18:38:42.984Z" }, + { url = "https://files.pythonhosted.org/packages/fd/2c/bd2a79ba7c759ee192b5601b675b180a3fd6ccf48ffa27fe1782d280f1a7/ml_dtypes-0.5.3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4cae435a68861660af81fa3c5af16b70ca11a17275c5b662d9c6f58294e0f113", size = 4956217, upload_time = "2025-07-29T18:38:44.65Z" }, + { url = "https://files.pythonhosted.org/packages/14/f3/091ba84e5395d7fe5b30c081a44dec881cd84b408db1763ee50768b2ab63/ml_dtypes-0.5.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6936283b56d74fbec431ca57ce58a90a908fdbd14d4e2d22eea6d72bb208a7b7", size = 4933109, upload_time = "2025-07-29T18:38:46.405Z" }, + { url = "https://files.pythonhosted.org/packages/bc/24/054036dbe32c43295382c90a1363241684c4d6aaa1ecc3df26bd0c8d5053/ml_dtypes-0.5.3-cp313-cp313-win_amd64.whl", hash = "sha256:d0f730a17cf4f343b2c7ad50cee3bd19e969e793d2be6ed911f43086460096e4", size = 208187, upload_time = "2025-07-29T18:38:48.24Z" }, + { url = "https://files.pythonhosted.org/packages/a6/3d/7dc3ec6794a4a9004c765e0c341e32355840b698f73fd2daff46f128afc1/ml_dtypes-0.5.3-cp313-cp313-win_arm64.whl", hash = "sha256:2db74788fc01914a3c7f7da0763427280adfc9cd377e9604b6b64eb8097284bd", size = 161559, upload_time = "2025-07-29T18:38:50.493Z" }, + { url = "https://files.pythonhosted.org/packages/12/91/e6c7a0d67a152b9330445f9f0cf8ae6eee9b83f990b8c57fe74631e42a90/ml_dtypes-0.5.3-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:93c36a08a6d158db44f2eb9ce3258e53f24a9a4a695325a689494f0fdbc71770", size = 689321, upload_time = "2025-07-29T18:38:52.03Z" }, + { url = "https://files.pythonhosted.org/packages/9e/6c/b7b94b84a104a5be1883305b87d4c6bd6ae781504474b4cca067cb2340ec/ml_dtypes-0.5.3-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0e44a3761f64bc009d71ddb6d6c71008ba21b53ab6ee588dadab65e2fa79eafc", size = 5274495, upload_time = "2025-07-29T18:38:53.797Z" }, + { url = "https://files.pythonhosted.org/packages/5b/38/6266604dffb43378055394ea110570cf261a49876fc48f548dfe876f34cc/ml_dtypes-0.5.3-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bdf40d2aaabd3913dec11840f0d0ebb1b93134f99af6a0a4fd88ffe924928ab4", size = 5285422, upload_time = "2025-07-29T18:38:56.603Z" }, + { url = "https://files.pythonhosted.org/packages/7c/88/8612ff177d043a474b9408f0382605d881eeb4125ba89d4d4b3286573a83/ml_dtypes-0.5.3-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:aec640bd94c4c85c0d11e2733bd13cbb10438fb004852996ec0efbc6cacdaf70", size = 661182, upload_time = "2025-07-29T18:38:58.414Z" }, + { url = "https://files.pythonhosted.org/packages/6f/2b/0569a5e88b29240d373e835107c94ae9256fb2191d3156b43b2601859eff/ml_dtypes-0.5.3-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bda32ce212baa724e03c68771e5c69f39e584ea426bfe1a701cb01508ffc7035", size = 4956187, upload_time = "2025-07-29T18:39:00.611Z" }, + { url = "https://files.pythonhosted.org/packages/51/66/273c2a06ae44562b104b61e6b14444da00061fd87652506579d7eb2c40b1/ml_dtypes-0.5.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c205cac07d24a29840c163d6469f61069ce4b065518519216297fc2f261f8db9", size = 4930911, upload_time = "2025-07-29T18:39:02.405Z" }, + { url = "https://files.pythonhosted.org/packages/93/ab/606be3e87dc0821bd360c8c1ee46108025c31a4f96942b63907bb441b87d/ml_dtypes-0.5.3-cp314-cp314-win_amd64.whl", hash = "sha256:cd7c0bb22d4ff86d65ad61b5dd246812e8993fbc95b558553624c33e8b6903ea", size = 216664, upload_time = "2025-07-29T18:39:03.927Z" }, + { url = "https://files.pythonhosted.org/packages/30/a2/e900690ca47d01dffffd66375c5de8c4f8ced0f1ef809ccd3b25b3e6b8fa/ml_dtypes-0.5.3-cp314-cp314-win_arm64.whl", hash = "sha256:9d55ea7f7baf2aed61bf1872116cefc9d0c3693b45cae3916897ee27ef4b835e", size = 160203, upload_time = "2025-07-29T18:39:05.671Z" }, + { url = "https://files.pythonhosted.org/packages/53/21/783dfb51f40d2660afeb9bccf3612b99f6a803d980d2a09132b0f9d216ab/ml_dtypes-0.5.3-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:e12e29764a0e66a7a31e9b8bf1de5cc0423ea72979f45909acd4292de834ccd3", size = 689324, upload_time = "2025-07-29T18:39:07.567Z" }, + { url = "https://files.pythonhosted.org/packages/09/f7/a82d249c711abf411ac027b7163f285487f5e615c3e0716c61033ce996ab/ml_dtypes-0.5.3-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:19f6c3a4f635c2fc9e2aa7d91416bd7a3d649b48350c51f7f715a09370a90d93", size = 5275917, upload_time = "2025-07-29T18:39:09.339Z" }, + { url = "https://files.pythonhosted.org/packages/7f/3c/541c4b30815ab90ebfbb51df15d0b4254f2f9f1e2b4907ab229300d5e6f2/ml_dtypes-0.5.3-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5ab039ffb40f3dc0aeeeba84fd6c3452781b5e15bef72e2d10bcb33e4bbffc39", size = 5285284, upload_time = "2025-07-29T18:39:11.532Z" }, +] + +[[package]] +name = "more-itertools" +version = "10.8.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ea/5d/38b681d3fce7a266dd9ab73c66959406d565b3e85f21d5e66e1181d93721/more_itertools-10.8.0.tar.gz", hash = "sha256:f638ddf8a1a0d134181275fb5d58b086ead7c6a72429ad725c67503f13ba30bd", size = 137431, upload_time = "2025-09-02T15:23:11.018Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a4/8e/469e5a4a2f5855992e425f3cb33804cc07bf18d48f2db061aec61ce50270/more_itertools-10.8.0-py3-none-any.whl", hash = "sha256:52d4362373dcf7c52546bc4af9a86ee7c4579df9a8dc268be0a2f949d376cc9b", size = 69667, upload_time = "2025-09-02T15:23:09.635Z" }, +] + +[[package]] +name = "mpmath" +version = "1.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e0/47/dd32fa426cc72114383ac549964eecb20ecfd886d1e5ccf5340b55b02f57/mpmath-1.3.0.tar.gz", hash = "sha256:7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f", size = 508106, upload_time = "2023-03-07T16:47:11.061Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl", hash = "sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c", size = 536198, upload_time = "2023-03-07T16:47:09.197Z" }, +] + +[[package]] +name = "multidict" +version = "6.6.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/69/7f/0652e6ed47ab288e3756ea9c0df8b14950781184d4bd7883f4d87dd41245/multidict-6.6.4.tar.gz", hash = "sha256:d2d4e4787672911b48350df02ed3fa3fffdc2f2e8ca06dd6afdf34189b76a9dd", size = 101843, upload_time = "2025-08-11T12:08:48.217Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/05/f6/512ffd8fd8b37fb2680e5ac35d788f1d71bbaf37789d21a820bdc441e565/multidict-6.6.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0ffb87be160942d56d7b87b0fdf098e81ed565add09eaa1294268c7f3caac4c8", size = 76516, upload_time = "2025-08-11T12:06:53.393Z" }, + { url = "https://files.pythonhosted.org/packages/99/58/45c3e75deb8855c36bd66cc1658007589662ba584dbf423d01df478dd1c5/multidict-6.6.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d191de6cbab2aff5de6c5723101705fd044b3e4c7cfd587a1929b5028b9714b3", size = 45394, upload_time = "2025-08-11T12:06:54.555Z" }, + { url = "https://files.pythonhosted.org/packages/fd/ca/e8c4472a93a26e4507c0b8e1f0762c0d8a32de1328ef72fd704ef9cc5447/multidict-6.6.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:38a0956dd92d918ad5feff3db8fcb4a5eb7dba114da917e1a88475619781b57b", size = 43591, upload_time = "2025-08-11T12:06:55.672Z" }, + { url = "https://files.pythonhosted.org/packages/05/51/edf414f4df058574a7265034d04c935aa84a89e79ce90fcf4df211f47b16/multidict-6.6.4-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:6865f6d3b7900ae020b495d599fcf3765653bc927951c1abb959017f81ae8287", size = 237215, upload_time = "2025-08-11T12:06:57.213Z" }, + { url = "https://files.pythonhosted.org/packages/c8/45/8b3d6dbad8cf3252553cc41abea09ad527b33ce47a5e199072620b296902/multidict-6.6.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0a2088c126b6f72db6c9212ad827d0ba088c01d951cee25e758c450da732c138", size = 258299, upload_time = "2025-08-11T12:06:58.946Z" }, + { url = "https://files.pythonhosted.org/packages/3c/e8/8ca2e9a9f5a435fc6db40438a55730a4bf4956b554e487fa1b9ae920f825/multidict-6.6.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0f37bed7319b848097085d7d48116f545985db988e2256b2e6f00563a3416ee6", size = 242357, upload_time = "2025-08-11T12:07:00.301Z" }, + { url = "https://files.pythonhosted.org/packages/0f/84/80c77c99df05a75c28490b2af8f7cba2a12621186e0a8b0865d8e745c104/multidict-6.6.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:01368e3c94032ba6ca0b78e7ccb099643466cf24f8dc8eefcfdc0571d56e58f9", size = 268369, upload_time = "2025-08-11T12:07:01.638Z" }, + { url = "https://files.pythonhosted.org/packages/0d/e9/920bfa46c27b05fb3e1ad85121fd49f441492dca2449c5bcfe42e4565d8a/multidict-6.6.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8fe323540c255db0bffee79ad7f048c909f2ab0edb87a597e1c17da6a54e493c", size = 269341, upload_time = "2025-08-11T12:07:02.943Z" }, + { url = "https://files.pythonhosted.org/packages/af/65/753a2d8b05daf496f4a9c367fe844e90a1b2cac78e2be2c844200d10cc4c/multidict-6.6.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b8eb3025f17b0a4c3cd08cda49acf312a19ad6e8a4edd9dbd591e6506d999402", size = 256100, upload_time = "2025-08-11T12:07:04.564Z" }, + { url = "https://files.pythonhosted.org/packages/09/54/655be13ae324212bf0bc15d665a4e34844f34c206f78801be42f7a0a8aaa/multidict-6.6.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:bbc14f0365534d35a06970d6a83478b249752e922d662dc24d489af1aa0d1be7", size = 253584, upload_time = "2025-08-11T12:07:05.914Z" }, + { url = "https://files.pythonhosted.org/packages/5c/74/ab2039ecc05264b5cec73eb018ce417af3ebb384ae9c0e9ed42cb33f8151/multidict-6.6.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:75aa52fba2d96bf972e85451b99d8e19cc37ce26fd016f6d4aa60da9ab2b005f", size = 251018, upload_time = "2025-08-11T12:07:08.301Z" }, + { url = "https://files.pythonhosted.org/packages/af/0a/ccbb244ac848e56c6427f2392741c06302bbfba49c0042f1eb3c5b606497/multidict-6.6.4-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4fefd4a815e362d4f011919d97d7b4a1e566f1dde83dc4ad8cfb5b41de1df68d", size = 251477, upload_time = "2025-08-11T12:07:10.248Z" }, + { url = "https://files.pythonhosted.org/packages/0e/b0/0ed49bba775b135937f52fe13922bc64a7eaf0a3ead84a36e8e4e446e096/multidict-6.6.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:db9801fe021f59a5b375ab778973127ca0ac52429a26e2fd86aa9508f4d26eb7", size = 263575, upload_time = "2025-08-11T12:07:11.928Z" }, + { url = "https://files.pythonhosted.org/packages/3e/d9/7fb85a85e14de2e44dfb6a24f03c41e2af8697a6df83daddb0e9b7569f73/multidict-6.6.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:a650629970fa21ac1fb06ba25dabfc5b8a2054fcbf6ae97c758aa956b8dba802", size = 259649, upload_time = "2025-08-11T12:07:13.244Z" }, + { url = "https://files.pythonhosted.org/packages/03/9e/b3a459bcf9b6e74fa461a5222a10ff9b544cb1cd52fd482fb1b75ecda2a2/multidict-6.6.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:452ff5da78d4720d7516a3a2abd804957532dd69296cb77319c193e3ffb87e24", size = 251505, upload_time = "2025-08-11T12:07:14.57Z" }, + { url = "https://files.pythonhosted.org/packages/86/a2/8022f78f041dfe6d71e364001a5cf987c30edfc83c8a5fb7a3f0974cff39/multidict-6.6.4-cp312-cp312-win32.whl", hash = "sha256:8c2fcb12136530ed19572bbba61b407f655e3953ba669b96a35036a11a485793", size = 41888, upload_time = "2025-08-11T12:07:15.904Z" }, + { url = "https://files.pythonhosted.org/packages/c7/eb/d88b1780d43a56db2cba24289fa744a9d216c1a8546a0dc3956563fd53ea/multidict-6.6.4-cp312-cp312-win_amd64.whl", hash = "sha256:047d9425860a8c9544fed1b9584f0c8bcd31bcde9568b047c5e567a1025ecd6e", size = 46072, upload_time = "2025-08-11T12:07:17.045Z" }, + { url = "https://files.pythonhosted.org/packages/9f/16/b929320bf5750e2d9d4931835a4c638a19d2494a5b519caaaa7492ebe105/multidict-6.6.4-cp312-cp312-win_arm64.whl", hash = "sha256:14754eb72feaa1e8ae528468f24250dd997b8e2188c3d2f593f9eba259e4b364", size = 43222, upload_time = "2025-08-11T12:07:18.328Z" }, + { url = "https://files.pythonhosted.org/packages/3a/5d/e1db626f64f60008320aab00fbe4f23fc3300d75892a3381275b3d284580/multidict-6.6.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f46a6e8597f9bd71b31cc708195d42b634c8527fecbcf93febf1052cacc1f16e", size = 75848, upload_time = "2025-08-11T12:07:19.912Z" }, + { url = "https://files.pythonhosted.org/packages/4c/aa/8b6f548d839b6c13887253af4e29c939af22a18591bfb5d0ee6f1931dae8/multidict-6.6.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:22e38b2bc176c5eb9c0a0e379f9d188ae4cd8b28c0f53b52bce7ab0a9e534657", size = 45060, upload_time = "2025-08-11T12:07:21.163Z" }, + { url = "https://files.pythonhosted.org/packages/eb/c6/f5e97e5d99a729bc2aa58eb3ebfa9f1e56a9b517cc38c60537c81834a73f/multidict-6.6.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5df8afd26f162da59e218ac0eefaa01b01b2e6cd606cffa46608f699539246da", size = 43269, upload_time = "2025-08-11T12:07:22.392Z" }, + { url = "https://files.pythonhosted.org/packages/dc/31/d54eb0c62516776f36fe67f84a732f97e0b0e12f98d5685bebcc6d396910/multidict-6.6.4-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:49517449b58d043023720aa58e62b2f74ce9b28f740a0b5d33971149553d72aa", size = 237158, upload_time = "2025-08-11T12:07:23.636Z" }, + { url = "https://files.pythonhosted.org/packages/c4/1c/8a10c1c25b23156e63b12165a929d8eb49a6ed769fdbefb06e6f07c1e50d/multidict-6.6.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ae9408439537c5afdca05edd128a63f56a62680f4b3c234301055d7a2000220f", size = 257076, upload_time = "2025-08-11T12:07:25.049Z" }, + { url = "https://files.pythonhosted.org/packages/ad/86/90e20b5771d6805a119e483fd3d1e8393e745a11511aebca41f0da38c3e2/multidict-6.6.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:87a32d20759dc52a9e850fe1061b6e41ab28e2998d44168a8a341b99ded1dba0", size = 240694, upload_time = "2025-08-11T12:07:26.458Z" }, + { url = "https://files.pythonhosted.org/packages/e7/49/484d3e6b535bc0555b52a0a26ba86e4d8d03fd5587d4936dc59ba7583221/multidict-6.6.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:52e3c8d43cdfff587ceedce9deb25e6ae77daba560b626e97a56ddcad3756879", size = 266350, upload_time = "2025-08-11T12:07:27.94Z" }, + { url = "https://files.pythonhosted.org/packages/bf/b4/aa4c5c379b11895083d50021e229e90c408d7d875471cb3abf721e4670d6/multidict-6.6.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:ad8850921d3a8d8ff6fbef790e773cecfc260bbfa0566998980d3fa8f520bc4a", size = 267250, upload_time = "2025-08-11T12:07:29.303Z" }, + { url = "https://files.pythonhosted.org/packages/80/e5/5e22c5bf96a64bdd43518b1834c6d95a4922cc2066b7d8e467dae9b6cee6/multidict-6.6.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:497a2954adc25c08daff36f795077f63ad33e13f19bfff7736e72c785391534f", size = 254900, upload_time = "2025-08-11T12:07:30.764Z" }, + { url = "https://files.pythonhosted.org/packages/17/38/58b27fed927c07035abc02befacab42491e7388ca105e087e6e0215ead64/multidict-6.6.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:024ce601f92d780ca1617ad4be5ac15b501cc2414970ffa2bb2bbc2bd5a68fa5", size = 252355, upload_time = "2025-08-11T12:07:32.205Z" }, + { url = "https://files.pythonhosted.org/packages/d0/a1/dad75d23a90c29c02b5d6f3d7c10ab36c3197613be5d07ec49c7791e186c/multidict-6.6.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:a693fc5ed9bdd1c9e898013e0da4dcc640de7963a371c0bd458e50e046bf6438", size = 250061, upload_time = "2025-08-11T12:07:33.623Z" }, + { url = "https://files.pythonhosted.org/packages/b8/1a/ac2216b61c7f116edab6dc3378cca6c70dc019c9a457ff0d754067c58b20/multidict-6.6.4-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:190766dac95aab54cae5b152a56520fd99298f32a1266d66d27fdd1b5ac00f4e", size = 249675, upload_time = "2025-08-11T12:07:34.958Z" }, + { url = "https://files.pythonhosted.org/packages/d4/79/1916af833b800d13883e452e8e0977c065c4ee3ab7a26941fbfdebc11895/multidict-6.6.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:34d8f2a5ffdceab9dcd97c7a016deb2308531d5f0fced2bb0c9e1df45b3363d7", size = 261247, upload_time = "2025-08-11T12:07:36.588Z" }, + { url = "https://files.pythonhosted.org/packages/c5/65/d1f84fe08ac44a5fc7391cbc20a7cedc433ea616b266284413fd86062f8c/multidict-6.6.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:59e8d40ab1f5a8597abcef00d04845155a5693b5da00d2c93dbe88f2050f2812", size = 257960, upload_time = "2025-08-11T12:07:39.735Z" }, + { url = "https://files.pythonhosted.org/packages/13/b5/29ec78057d377b195ac2c5248c773703a6b602e132a763e20ec0457e7440/multidict-6.6.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:467fe64138cfac771f0e949b938c2e1ada2b5af22f39692aa9258715e9ea613a", size = 250078, upload_time = "2025-08-11T12:07:41.525Z" }, + { url = "https://files.pythonhosted.org/packages/c4/0e/7e79d38f70a872cae32e29b0d77024bef7834b0afb406ddae6558d9e2414/multidict-6.6.4-cp313-cp313-win32.whl", hash = "sha256:14616a30fe6d0a48d0a48d1a633ab3b8bec4cf293aac65f32ed116f620adfd69", size = 41708, upload_time = "2025-08-11T12:07:43.405Z" }, + { url = "https://files.pythonhosted.org/packages/9d/34/746696dffff742e97cd6a23da953e55d0ea51fa601fa2ff387b3edcfaa2c/multidict-6.6.4-cp313-cp313-win_amd64.whl", hash = "sha256:40cd05eaeb39e2bc8939451f033e57feaa2ac99e07dbca8afe2be450a4a3b6cf", size = 45912, upload_time = "2025-08-11T12:07:45.082Z" }, + { url = "https://files.pythonhosted.org/packages/c7/87/3bac136181e271e29170d8d71929cdeddeb77f3e8b6a0c08da3a8e9da114/multidict-6.6.4-cp313-cp313-win_arm64.whl", hash = "sha256:f6eb37d511bfae9e13e82cb4d1af36b91150466f24d9b2b8a9785816deb16605", size = 43076, upload_time = "2025-08-11T12:07:46.746Z" }, + { url = "https://files.pythonhosted.org/packages/64/94/0a8e63e36c049b571c9ae41ee301ada29c3fee9643d9c2548d7d558a1d99/multidict-6.6.4-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:6c84378acd4f37d1b507dfa0d459b449e2321b3ba5f2338f9b085cf7a7ba95eb", size = 82812, upload_time = "2025-08-11T12:07:48.402Z" }, + { url = "https://files.pythonhosted.org/packages/25/1a/be8e369dfcd260d2070a67e65dd3990dd635cbd735b98da31e00ea84cd4e/multidict-6.6.4-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0e0558693063c75f3d952abf645c78f3c5dfdd825a41d8c4d8156fc0b0da6e7e", size = 48313, upload_time = "2025-08-11T12:07:49.679Z" }, + { url = "https://files.pythonhosted.org/packages/26/5a/dd4ade298674b2f9a7b06a32c94ffbc0497354df8285f27317c66433ce3b/multidict-6.6.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3f8e2384cb83ebd23fd07e9eada8ba64afc4c759cd94817433ab8c81ee4b403f", size = 46777, upload_time = "2025-08-11T12:07:51.318Z" }, + { url = "https://files.pythonhosted.org/packages/89/db/98aa28bc7e071bfba611ac2ae803c24e96dd3a452b4118c587d3d872c64c/multidict-6.6.4-cp313-cp313t-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:f996b87b420995a9174b2a7c1a8daf7db4750be6848b03eb5e639674f7963773", size = 229321, upload_time = "2025-08-11T12:07:52.965Z" }, + { url = "https://files.pythonhosted.org/packages/c7/bc/01ddda2a73dd9d167bd85d0e8ef4293836a8f82b786c63fb1a429bc3e678/multidict-6.6.4-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cc356250cffd6e78416cf5b40dc6a74f1edf3be8e834cf8862d9ed5265cf9b0e", size = 249954, upload_time = "2025-08-11T12:07:54.423Z" }, + { url = "https://files.pythonhosted.org/packages/06/78/6b7c0f020f9aa0acf66d0ab4eb9f08375bac9a50ff5e3edb1c4ccd59eafc/multidict-6.6.4-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:dadf95aa862714ea468a49ad1e09fe00fcc9ec67d122f6596a8d40caf6cec7d0", size = 228612, upload_time = "2025-08-11T12:07:55.914Z" }, + { url = "https://files.pythonhosted.org/packages/00/44/3faa416f89b2d5d76e9d447296a81521e1c832ad6e40b92f990697b43192/multidict-6.6.4-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:7dd57515bebffd8ebd714d101d4c434063322e4fe24042e90ced41f18b6d3395", size = 257528, upload_time = "2025-08-11T12:07:57.371Z" }, + { url = "https://files.pythonhosted.org/packages/05/5f/77c03b89af0fcb16f018f668207768191fb9dcfb5e3361a5e706a11db2c9/multidict-6.6.4-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:967af5f238ebc2eb1da4e77af5492219fbd9b4b812347da39a7b5f5c72c0fa45", size = 256329, upload_time = "2025-08-11T12:07:58.844Z" }, + { url = "https://files.pythonhosted.org/packages/cf/e9/ed750a2a9afb4f8dc6f13dc5b67b514832101b95714f1211cd42e0aafc26/multidict-6.6.4-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2a4c6875c37aae9794308ec43e3530e4aa0d36579ce38d89979bbf89582002bb", size = 247928, upload_time = "2025-08-11T12:08:01.037Z" }, + { url = "https://files.pythonhosted.org/packages/1f/b5/e0571bc13cda277db7e6e8a532791d4403dacc9850006cb66d2556e649c0/multidict-6.6.4-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:7f683a551e92bdb7fac545b9c6f9fa2aebdeefa61d607510b3533286fcab67f5", size = 245228, upload_time = "2025-08-11T12:08:02.96Z" }, + { url = "https://files.pythonhosted.org/packages/f3/a3/69a84b0eccb9824491f06368f5b86e72e4af54c3067c37c39099b6687109/multidict-6.6.4-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:3ba5aaf600edaf2a868a391779f7a85d93bed147854925f34edd24cc70a3e141", size = 235869, upload_time = "2025-08-11T12:08:04.746Z" }, + { url = "https://files.pythonhosted.org/packages/a9/9d/28802e8f9121a6a0804fa009debf4e753d0a59969ea9f70be5f5fdfcb18f/multidict-6.6.4-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:580b643b7fd2c295d83cad90d78419081f53fd532d1f1eb67ceb7060f61cff0d", size = 243446, upload_time = "2025-08-11T12:08:06.332Z" }, + { url = "https://files.pythonhosted.org/packages/38/ea/6c98add069b4878c1d66428a5f5149ddb6d32b1f9836a826ac764b9940be/multidict-6.6.4-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:37b7187197da6af3ee0b044dbc9625afd0c885f2800815b228a0e70f9a7f473d", size = 252299, upload_time = "2025-08-11T12:08:07.931Z" }, + { url = "https://files.pythonhosted.org/packages/3a/09/8fe02d204473e14c0af3affd50af9078839dfca1742f025cca765435d6b4/multidict-6.6.4-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:e1b93790ed0bc26feb72e2f08299691ceb6da5e9e14a0d13cc74f1869af327a0", size = 246926, upload_time = "2025-08-11T12:08:09.467Z" }, + { url = "https://files.pythonhosted.org/packages/37/3d/7b1e10d774a6df5175ecd3c92bff069e77bed9ec2a927fdd4ff5fe182f67/multidict-6.6.4-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:a506a77ddee1efcca81ecbeae27ade3e09cdf21a8ae854d766c2bb4f14053f92", size = 243383, upload_time = "2025-08-11T12:08:10.981Z" }, + { url = "https://files.pythonhosted.org/packages/50/b0/a6fae46071b645ae98786ab738447de1ef53742eaad949f27e960864bb49/multidict-6.6.4-cp313-cp313t-win32.whl", hash = "sha256:f93b2b2279883d1d0a9e1bd01f312d6fc315c5e4c1f09e112e4736e2f650bc4e", size = 47775, upload_time = "2025-08-11T12:08:12.439Z" }, + { url = "https://files.pythonhosted.org/packages/b2/0a/2436550b1520091af0600dff547913cb2d66fbac27a8c33bc1b1bccd8d98/multidict-6.6.4-cp313-cp313t-win_amd64.whl", hash = "sha256:6d46a180acdf6e87cc41dc15d8f5c2986e1e8739dc25dbb7dac826731ef381a4", size = 53100, upload_time = "2025-08-11T12:08:13.823Z" }, + { url = "https://files.pythonhosted.org/packages/97/ea/43ac51faff934086db9c072a94d327d71b7d8b40cd5dcb47311330929ef0/multidict-6.6.4-cp313-cp313t-win_arm64.whl", hash = "sha256:756989334015e3335d087a27331659820d53ba432befdef6a718398b0a8493ad", size = 45501, upload_time = "2025-08-11T12:08:15.173Z" }, + { url = "https://files.pythonhosted.org/packages/fd/69/b547032297c7e63ba2af494edba695d781af8a0c6e89e4d06cf848b21d80/multidict-6.6.4-py3-none-any.whl", hash = "sha256:27d8f8e125c07cb954e54d75d04905a9bba8a439c1d84aca94949d4d03d8601c", size = 12313, upload_time = "2025-08-11T12:08:46.891Z" }, +] + +[[package]] +name = "natsort" +version = "8.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e2/a9/a0c57aee75f77794adaf35322f8b6404cbd0f89ad45c87197a937764b7d0/natsort-8.4.0.tar.gz", hash = "sha256:45312c4a0e5507593da193dedd04abb1469253b601ecaf63445ad80f0a1ea581", size = 76575, upload_time = "2023-06-20T04:17:19.925Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ef/82/7a9d0550484a62c6da82858ee9419f3dd1ccc9aa1c26a1e43da3ecd20b0d/natsort-8.4.0-py3-none-any.whl", hash = "sha256:4732914fb471f56b5cce04d7bae6f164a592c7712e1c85f9ef585e197299521c", size = 38268, upload_time = "2023-06-20T04:17:17.522Z" }, +] + +[[package]] +name = "networkx" +version = "3.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6c/4f/ccdb8ad3a38e583f214547fd2f7ff1fc160c43a75af88e6aec213404b96a/networkx-3.5.tar.gz", hash = "sha256:d4c6f9cf81f52d69230866796b82afbccdec3db7ae4fbd1b65ea750feed50037", size = 2471065, upload_time = "2025-05-29T11:35:07.804Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/eb/8d/776adee7bbf76365fdd7f2552710282c79a4ead5d2a46408c9043a2b70ba/networkx-3.5-py3-none-any.whl", hash = "sha256:0030d386a9a06dee3565298b4a734b68589749a544acbb6c412dc9e2489ec6ec", size = 2034406, upload_time = "2025-05-29T11:35:04.961Z" }, +] + +[[package]] +name = "numcodecs" +version = "0.15.1" +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, upload_time = "2025-02-10T10:23:33.254Z" } +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, upload_time = "2025-02-10T10:23:12.934Z" }, + { 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, upload_time = "2025-02-10T10:23:15.803Z" }, + { 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, upload_time = "2025-02-10T10:23:18.582Z" }, + { url = "https://files.pythonhosted.org/packages/ab/bc/b6c3cde91c754860a3467a8c058dcf0b1a5ca14d82b1c5397c700cf8b1eb/numcodecs-0.15.1-cp312-cp312-win_amd64.whl", hash = "sha256:daed6066ffcf40082da847d318b5ab6123d69ceb433ba603cb87c323a541a8bc", size = 836785, upload_time = "2025-02-10T10:23:22.314Z" }, + { 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, upload_time = "2025-02-10T10:23:23.79Z" }, + { 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, upload_time = "2025-02-10T10:23:25.533Z" }, + { 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, upload_time = "2025-02-10T10:23:27.46Z" }, + { url = "https://files.pythonhosted.org/packages/c3/32/233e5ede6568bdb044e6f99aaa9fa39827ff3109c6487fc137315f733586/numcodecs-0.15.1-cp313-cp313-win_amd64.whl", hash = "sha256:a4f7bdb26f1b34423cb56d48e75821223be38040907c9b5954eeb7463e7eb03c", size = 831955, upload_time = "2025-02-10T10:23:30.601Z" }, +] + +[[package]] +name = "numpy" +version = "2.3.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d0/19/95b3d357407220ed24c139018d2518fab0a61a948e68286a25f1a4d049ff/numpy-2.3.3.tar.gz", hash = "sha256:ddc7c39727ba62b80dfdbedf400d1c10ddfa8eefbd7ec8dcb118be8b56d31029", size = 20576648, upload_time = "2025-09-09T16:54:12.543Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/51/5d/bb7fc075b762c96329147799e1bcc9176ab07ca6375ea976c475482ad5b3/numpy-2.3.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:cfdd09f9c84a1a934cde1eec2267f0a43a7cd44b2cca4ff95b7c0d14d144b0bf", size = 20957014, upload_time = "2025-09-09T15:56:29.966Z" }, + { url = "https://files.pythonhosted.org/packages/6b/0e/c6211bb92af26517acd52125a237a92afe9c3124c6a68d3b9f81b62a0568/numpy-2.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:cb32e3cf0f762aee47ad1ddc6672988f7f27045b0783c887190545baba73aa25", size = 14185220, upload_time = "2025-09-09T15:56:32.175Z" }, + { url = "https://files.pythonhosted.org/packages/22/f2/07bb754eb2ede9073f4054f7c0286b0d9d2e23982e090a80d478b26d35ca/numpy-2.3.3-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:396b254daeb0a57b1fe0ecb5e3cff6fa79a380fa97c8f7781a6d08cd429418fe", size = 5113918, upload_time = "2025-09-09T15:56:34.175Z" }, + { url = "https://files.pythonhosted.org/packages/81/0a/afa51697e9fb74642f231ea36aca80fa17c8fb89f7a82abd5174023c3960/numpy-2.3.3-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:067e3d7159a5d8f8a0b46ee11148fc35ca9b21f61e3c49fbd0a027450e65a33b", size = 6647922, upload_time = "2025-09-09T15:56:36.149Z" }, + { url = "https://files.pythonhosted.org/packages/5d/f5/122d9cdb3f51c520d150fef6e87df9279e33d19a9611a87c0d2cf78a89f4/numpy-2.3.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1c02d0629d25d426585fb2e45a66154081b9fa677bc92a881ff1d216bc9919a8", size = 14281991, upload_time = "2025-09-09T15:56:40.548Z" }, + { url = "https://files.pythonhosted.org/packages/51/64/7de3c91e821a2debf77c92962ea3fe6ac2bc45d0778c1cbe15d4fce2fd94/numpy-2.3.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d9192da52b9745f7f0766531dcfa978b7763916f158bb63bdb8a1eca0068ab20", size = 16641643, upload_time = "2025-09-09T15:56:43.343Z" }, + { url = "https://files.pythonhosted.org/packages/30/e4/961a5fa681502cd0d68907818b69f67542695b74e3ceaa513918103b7e80/numpy-2.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:cd7de500a5b66319db419dc3c345244404a164beae0d0937283b907d8152e6ea", size = 16056787, upload_time = "2025-09-09T15:56:46.141Z" }, + { url = "https://files.pythonhosted.org/packages/99/26/92c912b966e47fbbdf2ad556cb17e3a3088e2e1292b9833be1dfa5361a1a/numpy-2.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:93d4962d8f82af58f0b2eb85daaf1b3ca23fe0a85d0be8f1f2b7bb46034e56d7", size = 18579598, upload_time = "2025-09-09T15:56:49.844Z" }, + { url = "https://files.pythonhosted.org/packages/17/b6/fc8f82cb3520768718834f310c37d96380d9dc61bfdaf05fe5c0b7653e01/numpy-2.3.3-cp312-cp312-win32.whl", hash = "sha256:5534ed6b92f9b7dca6c0a19d6df12d41c68b991cef051d108f6dbff3babc4ebf", size = 6320800, upload_time = "2025-09-09T15:56:52.499Z" }, + { url = "https://files.pythonhosted.org/packages/32/ee/de999f2625b80d043d6d2d628c07d0d5555a677a3cf78fdf868d409b8766/numpy-2.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:497d7cad08e7092dba36e3d296fe4c97708c93daf26643a1ae4b03f6294d30eb", size = 12786615, upload_time = "2025-09-09T15:56:54.422Z" }, + { url = "https://files.pythonhosted.org/packages/49/6e/b479032f8a43559c383acb20816644f5f91c88f633d9271ee84f3b3a996c/numpy-2.3.3-cp312-cp312-win_arm64.whl", hash = "sha256:ca0309a18d4dfea6fc6262a66d06c26cfe4640c3926ceec90e57791a82b6eee5", size = 10195936, upload_time = "2025-09-09T15:56:56.541Z" }, + { url = "https://files.pythonhosted.org/packages/7d/b9/984c2b1ee61a8b803bf63582b4ac4242cf76e2dbd663efeafcb620cc0ccb/numpy-2.3.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f5415fb78995644253370985342cd03572ef8620b934da27d77377a2285955bf", size = 20949588, upload_time = "2025-09-09T15:56:59.087Z" }, + { url = "https://files.pythonhosted.org/packages/a6/e4/07970e3bed0b1384d22af1e9912527ecbeb47d3b26e9b6a3bced068b3bea/numpy-2.3.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d00de139a3324e26ed5b95870ce63be7ec7352171bc69a4cf1f157a48e3eb6b7", size = 14177802, upload_time = "2025-09-09T15:57:01.73Z" }, + { url = "https://files.pythonhosted.org/packages/35/c7/477a83887f9de61f1203bad89cf208b7c19cc9fef0cebef65d5a1a0619f2/numpy-2.3.3-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:9dc13c6a5829610cc07422bc74d3ac083bd8323f14e2827d992f9e52e22cd6a6", size = 5106537, upload_time = "2025-09-09T15:57:03.765Z" }, + { url = "https://files.pythonhosted.org/packages/52/47/93b953bd5866a6f6986344d045a207d3f1cfbad99db29f534ea9cee5108c/numpy-2.3.3-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:d79715d95f1894771eb4e60fb23f065663b2298f7d22945d66877aadf33d00c7", size = 6640743, upload_time = "2025-09-09T15:57:07.921Z" }, + { url = "https://files.pythonhosted.org/packages/23/83/377f84aaeb800b64c0ef4de58b08769e782edcefa4fea712910b6f0afd3c/numpy-2.3.3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:952cfd0748514ea7c3afc729a0fc639e61655ce4c55ab9acfab14bda4f402b4c", size = 14278881, upload_time = "2025-09-09T15:57:11.349Z" }, + { url = "https://files.pythonhosted.org/packages/9a/a5/bf3db6e66c4b160d6ea10b534c381a1955dfab34cb1017ea93aa33c70ed3/numpy-2.3.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5b83648633d46f77039c29078751f80da65aa64d5622a3cd62aaef9d835b6c93", size = 16636301, upload_time = "2025-09-09T15:57:14.245Z" }, + { url = "https://files.pythonhosted.org/packages/a2/59/1287924242eb4fa3f9b3a2c30400f2e17eb2707020d1c5e3086fe7330717/numpy-2.3.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b001bae8cea1c7dfdb2ae2b017ed0a6f2102d7a70059df1e338e307a4c78a8ae", size = 16053645, upload_time = "2025-09-09T15:57:16.534Z" }, + { url = "https://files.pythonhosted.org/packages/e6/93/b3d47ed882027c35e94ac2320c37e452a549f582a5e801f2d34b56973c97/numpy-2.3.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8e9aced64054739037d42fb84c54dd38b81ee238816c948c8f3ed134665dcd86", size = 18578179, upload_time = "2025-09-09T15:57:18.883Z" }, + { url = "https://files.pythonhosted.org/packages/20/d9/487a2bccbf7cc9d4bfc5f0f197761a5ef27ba870f1e3bbb9afc4bbe3fcc2/numpy-2.3.3-cp313-cp313-win32.whl", hash = "sha256:9591e1221db3f37751e6442850429b3aabf7026d3b05542d102944ca7f00c8a8", size = 6312250, upload_time = "2025-09-09T15:57:21.296Z" }, + { url = "https://files.pythonhosted.org/packages/1b/b5/263ebbbbcede85028f30047eab3d58028d7ebe389d6493fc95ae66c636ab/numpy-2.3.3-cp313-cp313-win_amd64.whl", hash = "sha256:f0dadeb302887f07431910f67a14d57209ed91130be0adea2f9793f1a4f817cf", size = 12783269, upload_time = "2025-09-09T15:57:23.034Z" }, + { url = "https://files.pythonhosted.org/packages/fa/75/67b8ca554bbeaaeb3fac2e8bce46967a5a06544c9108ec0cf5cece559b6c/numpy-2.3.3-cp313-cp313-win_arm64.whl", hash = "sha256:3c7cf302ac6e0b76a64c4aecf1a09e51abd9b01fc7feee80f6c43e3ab1b1dbc5", size = 10195314, upload_time = "2025-09-09T15:57:25.045Z" }, + { url = "https://files.pythonhosted.org/packages/11/d0/0d1ddec56b162042ddfafeeb293bac672de9b0cfd688383590090963720a/numpy-2.3.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:eda59e44957d272846bb407aad19f89dc6f58fecf3504bd144f4c5cf81a7eacc", size = 21048025, upload_time = "2025-09-09T15:57:27.257Z" }, + { url = "https://files.pythonhosted.org/packages/36/9e/1996ca6b6d00415b6acbdd3c42f7f03ea256e2c3f158f80bd7436a8a19f3/numpy-2.3.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:823d04112bc85ef5c4fda73ba24e6096c8f869931405a80aa8b0e604510a26bc", size = 14301053, upload_time = "2025-09-09T15:57:30.077Z" }, + { url = "https://files.pythonhosted.org/packages/05/24/43da09aa764c68694b76e84b3d3f0c44cb7c18cdc1ba80e48b0ac1d2cd39/numpy-2.3.3-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:40051003e03db4041aa325da2a0971ba41cf65714e65d296397cc0e32de6018b", size = 5229444, upload_time = "2025-09-09T15:57:32.733Z" }, + { url = "https://files.pythonhosted.org/packages/bc/14/50ffb0f22f7218ef8af28dd089f79f68289a7a05a208db9a2c5dcbe123c1/numpy-2.3.3-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:6ee9086235dd6ab7ae75aba5662f582a81ced49f0f1c6de4260a78d8f2d91a19", size = 6738039, upload_time = "2025-09-09T15:57:34.328Z" }, + { url = "https://files.pythonhosted.org/packages/55/52/af46ac0795e09657d45a7f4db961917314377edecf66db0e39fa7ab5c3d3/numpy-2.3.3-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:94fcaa68757c3e2e668ddadeaa86ab05499a70725811e582b6a9858dd472fb30", size = 14352314, upload_time = "2025-09-09T15:57:36.255Z" }, + { url = "https://files.pythonhosted.org/packages/a7/b1/dc226b4c90eb9f07a3fff95c2f0db3268e2e54e5cce97c4ac91518aee71b/numpy-2.3.3-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:da1a74b90e7483d6ce5244053399a614b1d6b7bc30a60d2f570e5071f8959d3e", size = 16701722, upload_time = "2025-09-09T15:57:38.622Z" }, + { url = "https://files.pythonhosted.org/packages/9d/9d/9d8d358f2eb5eced14dba99f110d83b5cd9a4460895230f3b396ad19a323/numpy-2.3.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:2990adf06d1ecee3b3dcbb4977dfab6e9f09807598d647f04d385d29e7a3c3d3", size = 16132755, upload_time = "2025-09-09T15:57:41.16Z" }, + { url = "https://files.pythonhosted.org/packages/b6/27/b3922660c45513f9377b3fb42240bec63f203c71416093476ec9aa0719dc/numpy-2.3.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ed635ff692483b8e3f0fcaa8e7eb8a75ee71aa6d975388224f70821421800cea", size = 18651560, upload_time = "2025-09-09T15:57:43.459Z" }, + { url = "https://files.pythonhosted.org/packages/5b/8e/3ab61a730bdbbc201bb245a71102aa609f0008b9ed15255500a99cd7f780/numpy-2.3.3-cp313-cp313t-win32.whl", hash = "sha256:a333b4ed33d8dc2b373cc955ca57babc00cd6f9009991d9edc5ddbc1bac36bcd", size = 6442776, upload_time = "2025-09-09T15:57:45.793Z" }, + { url = "https://files.pythonhosted.org/packages/1c/3a/e22b766b11f6030dc2decdeff5c2fb1610768055603f9f3be88b6d192fb2/numpy-2.3.3-cp313-cp313t-win_amd64.whl", hash = "sha256:4384a169c4d8f97195980815d6fcad04933a7e1ab3b530921c3fef7a1c63426d", size = 12927281, upload_time = "2025-09-09T15:57:47.492Z" }, + { url = "https://files.pythonhosted.org/packages/7b/42/c2e2bc48c5e9b2a83423f99733950fbefd86f165b468a3d85d52b30bf782/numpy-2.3.3-cp313-cp313t-win_arm64.whl", hash = "sha256:75370986cc0bc66f4ce5110ad35aae6d182cc4ce6433c40ad151f53690130bf1", size = 10265275, upload_time = "2025-09-09T15:57:49.647Z" }, + { url = "https://files.pythonhosted.org/packages/6b/01/342ad585ad82419b99bcf7cebe99e61da6bedb89e213c5fd71acc467faee/numpy-2.3.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:cd052f1fa6a78dee696b58a914b7229ecfa41f0a6d96dc663c1220a55e137593", size = 20951527, upload_time = "2025-09-09T15:57:52.006Z" }, + { url = "https://files.pythonhosted.org/packages/ef/d8/204e0d73fc1b7a9ee80ab1fe1983dd33a4d64a4e30a05364b0208e9a241a/numpy-2.3.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:414a97499480067d305fcac9716c29cf4d0d76db6ebf0bf3cbce666677f12652", size = 14186159, upload_time = "2025-09-09T15:57:54.407Z" }, + { url = "https://files.pythonhosted.org/packages/22/af/f11c916d08f3a18fb8ba81ab72b5b74a6e42ead4c2846d270eb19845bf74/numpy-2.3.3-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:50a5fe69f135f88a2be9b6ca0481a68a136f6febe1916e4920e12f1a34e708a7", size = 5114624, upload_time = "2025-09-09T15:57:56.5Z" }, + { url = "https://files.pythonhosted.org/packages/fb/11/0ed919c8381ac9d2ffacd63fd1f0c34d27e99cab650f0eb6f110e6ae4858/numpy-2.3.3-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:b912f2ed2b67a129e6a601e9d93d4fa37bef67e54cac442a2f588a54afe5c67a", size = 6642627, upload_time = "2025-09-09T15:57:58.206Z" }, + { url = "https://files.pythonhosted.org/packages/ee/83/deb5f77cb0f7ba6cb52b91ed388b47f8f3c2e9930d4665c600408d9b90b9/numpy-2.3.3-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9e318ee0596d76d4cb3d78535dc005fa60e5ea348cd131a51e99d0bdbe0b54fe", size = 14296926, upload_time = "2025-09-09T15:58:00.035Z" }, + { url = "https://files.pythonhosted.org/packages/77/cc/70e59dcb84f2b005d4f306310ff0a892518cc0c8000a33d0e6faf7ca8d80/numpy-2.3.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ce020080e4a52426202bdb6f7691c65bb55e49f261f31a8f506c9f6bc7450421", size = 16638958, upload_time = "2025-09-09T15:58:02.738Z" }, + { url = "https://files.pythonhosted.org/packages/b6/5a/b2ab6c18b4257e099587d5b7f903317bd7115333ad8d4ec4874278eafa61/numpy-2.3.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:e6687dc183aa55dae4a705b35f9c0f8cb178bcaa2f029b241ac5356221d5c021", size = 16071920, upload_time = "2025-09-09T15:58:05.029Z" }, + { url = "https://files.pythonhosted.org/packages/b8/f1/8b3fdc44324a259298520dd82147ff648979bed085feeacc1250ef1656c0/numpy-2.3.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d8f3b1080782469fdc1718c4ed1d22549b5fb12af0d57d35e992158a772a37cf", size = 18577076, upload_time = "2025-09-09T15:58:07.745Z" }, + { url = "https://files.pythonhosted.org/packages/f0/a1/b87a284fb15a42e9274e7fcea0dad259d12ddbf07c1595b26883151ca3b4/numpy-2.3.3-cp314-cp314-win32.whl", hash = "sha256:cb248499b0bc3be66ebd6578b83e5acacf1d6cb2a77f2248ce0e40fbec5a76d0", size = 6366952, upload_time = "2025-09-09T15:58:10.096Z" }, + { url = "https://files.pythonhosted.org/packages/70/5f/1816f4d08f3b8f66576d8433a66f8fa35a5acfb3bbd0bf6c31183b003f3d/numpy-2.3.3-cp314-cp314-win_amd64.whl", hash = "sha256:691808c2b26b0f002a032c73255d0bd89751425f379f7bcd22d140db593a96e8", size = 12919322, upload_time = "2025-09-09T15:58:12.138Z" }, + { url = "https://files.pythonhosted.org/packages/8c/de/072420342e46a8ea41c324a555fa90fcc11637583fb8df722936aed1736d/numpy-2.3.3-cp314-cp314-win_arm64.whl", hash = "sha256:9ad12e976ca7b10f1774b03615a2a4bab8addce37ecc77394d8e986927dc0dfe", size = 10478630, upload_time = "2025-09-09T15:58:14.64Z" }, + { url = "https://files.pythonhosted.org/packages/d5/df/ee2f1c0a9de7347f14da5dd3cd3c3b034d1b8607ccb6883d7dd5c035d631/numpy-2.3.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:9cc48e09feb11e1db00b320e9d30a4151f7369afb96bd0e48d942d09da3a0d00", size = 21047987, upload_time = "2025-09-09T15:58:16.889Z" }, + { url = "https://files.pythonhosted.org/packages/d6/92/9453bdc5a4e9e69cf4358463f25e8260e2ffc126d52e10038b9077815989/numpy-2.3.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:901bf6123879b7f251d3631967fd574690734236075082078e0571977c6a8e6a", size = 14301076, upload_time = "2025-09-09T15:58:20.343Z" }, + { url = "https://files.pythonhosted.org/packages/13/77/1447b9eb500f028bb44253105bd67534af60499588a5149a94f18f2ca917/numpy-2.3.3-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:7f025652034199c301049296b59fa7d52c7e625017cae4c75d8662e377bf487d", size = 5229491, upload_time = "2025-09-09T15:58:22.481Z" }, + { url = "https://files.pythonhosted.org/packages/3d/f9/d72221b6ca205f9736cb4b2ce3b002f6e45cd67cd6a6d1c8af11a2f0b649/numpy-2.3.3-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:533ca5f6d325c80b6007d4d7fb1984c303553534191024ec6a524a4c92a5935a", size = 6737913, upload_time = "2025-09-09T15:58:24.569Z" }, + { url = "https://files.pythonhosted.org/packages/3c/5f/d12834711962ad9c46af72f79bb31e73e416ee49d17f4c797f72c96b6ca5/numpy-2.3.3-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0edd58682a399824633b66885d699d7de982800053acf20be1eaa46d92009c54", size = 14352811, upload_time = "2025-09-09T15:58:26.416Z" }, + { url = "https://files.pythonhosted.org/packages/a1/0d/fdbec6629d97fd1bebed56cd742884e4eead593611bbe1abc3eb40d304b2/numpy-2.3.3-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:367ad5d8fbec5d9296d18478804a530f1191e24ab4d75ab408346ae88045d25e", size = 16702689, upload_time = "2025-09-09T15:58:28.831Z" }, + { url = "https://files.pythonhosted.org/packages/9b/09/0a35196dc5575adde1eb97ddfbc3e1687a814f905377621d18ca9bc2b7dd/numpy-2.3.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8f6ac61a217437946a1fa48d24c47c91a0c4f725237871117dea264982128097", size = 16133855, upload_time = "2025-09-09T15:58:31.349Z" }, + { url = "https://files.pythonhosted.org/packages/7a/ca/c9de3ea397d576f1b6753eaa906d4cdef1bf97589a6d9825a349b4729cc2/numpy-2.3.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:179a42101b845a816d464b6fe9a845dfaf308fdfc7925387195570789bb2c970", size = 18652520, upload_time = "2025-09-09T15:58:33.762Z" }, + { url = "https://files.pythonhosted.org/packages/fd/c2/e5ed830e08cd0196351db55db82f65bc0ab05da6ef2b72a836dcf1936d2f/numpy-2.3.3-cp314-cp314t-win32.whl", hash = "sha256:1250c5d3d2562ec4174bce2e3a1523041595f9b651065e4a4473f5f48a6bc8a5", size = 6515371, upload_time = "2025-09-09T15:58:36.04Z" }, + { url = "https://files.pythonhosted.org/packages/47/c7/b0f6b5b67f6788a0725f744496badbb604d226bf233ba716683ebb47b570/numpy-2.3.3-cp314-cp314t-win_amd64.whl", hash = "sha256:b37a0b2e5935409daebe82c1e42274d30d9dd355852529eab91dab8dcca7419f", size = 13112576, upload_time = "2025-09-09T15:58:37.927Z" }, + { url = "https://files.pythonhosted.org/packages/06/b9/33bba5ff6fb679aa0b1f8a07e853f002a6b04b9394db3069a1270a7784ca/numpy-2.3.3-cp314-cp314t-win_arm64.whl", hash = "sha256:78c9f6560dc7e6b3990e32df7ea1a50bbd0e2a111e05209963f5ddcab7073b0b", size = 10545953, upload_time = "2025-09-09T15:58:40.576Z" }, +] + +[[package]] +name = "nvidia-cublas-cu12" +version = "12.8.4.1" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dc/61/e24b560ab2e2eaeb3c839129175fb330dfcfc29e5203196e5541a4c44682/nvidia_cublas_cu12-12.8.4.1-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:8ac4e771d5a348c551b2a426eda6193c19aa630236b418086020df5ba9667142", size = 594346921, upload_time = "2025-03-07T01:44:31.254Z" }, +] + +[[package]] +name = "nvidia-cuda-cupti-cu12" +version = "12.8.90" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f8/02/2adcaa145158bf1a8295d83591d22e4103dbfd821bcaf6f3f53151ca4ffa/nvidia_cuda_cupti_cu12-12.8.90-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ea0cb07ebda26bb9b29ba82cda34849e73c166c18162d3913575b0c9db9a6182", size = 10248621, upload_time = "2025-03-07T01:40:21.213Z" }, +] + +[[package]] +name = "nvidia-cuda-nvrtc-cu12" +version = "12.8.93" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/05/6b/32f747947df2da6994e999492ab306a903659555dddc0fbdeb9d71f75e52/nvidia_cuda_nvrtc_cu12-12.8.93-py3-none-manylinux2010_x86_64.manylinux_2_12_x86_64.whl", hash = "sha256:a7756528852ef889772a84c6cd89d41dfa74667e24cca16bb31f8f061e3e9994", size = 88040029, upload_time = "2025-03-07T01:42:13.562Z" }, +] + +[[package]] +name = "nvidia-cuda-runtime-cu12" +version = "12.8.90" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0d/9b/a997b638fcd068ad6e4d53b8551a7d30fe8b404d6f1804abf1df69838932/nvidia_cuda_runtime_cu12-12.8.90-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:adade8dcbd0edf427b7204d480d6066d33902cab2a4707dcfc48a2d0fd44ab90", size = 954765, upload_time = "2025-03-07T01:40:01.615Z" }, +] + +[[package]] +name = "nvidia-cudnn-cu12" +version = "9.10.2.21" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "nvidia-cublas-cu12" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/ba/51/e123d997aa098c61d029f76663dedbfb9bc8dcf8c60cbd6adbe42f76d049/nvidia_cudnn_cu12-9.10.2.21-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:949452be657fa16687d0930933f032835951ef0892b37d2d53824d1a84dc97a8", size = 706758467, upload_time = "2025-06-06T21:54:08.597Z" }, +] + +[[package]] +name = "nvidia-cufft-cu12" +version = "11.3.3.83" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "nvidia-nvjitlink-cu12" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/1f/13/ee4e00f30e676b66ae65b4f08cb5bcbb8392c03f54f2d5413ea99a5d1c80/nvidia_cufft_cu12-11.3.3.83-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4d2dd21ec0b88cf61b62e6b43564355e5222e4a3fb394cac0db101f2dd0d4f74", size = 193118695, upload_time = "2025-03-07T01:45:27.821Z" }, +] + +[[package]] +name = "nvidia-cufile-cu12" +version = "1.13.1.3" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bb/fe/1bcba1dfbfb8d01be8d93f07bfc502c93fa23afa6fd5ab3fc7c1df71038a/nvidia_cufile_cu12-1.13.1.3-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1d069003be650e131b21c932ec3d8969c1715379251f8d23a1860554b1cb24fc", size = 1197834, upload_time = "2025-03-07T01:45:50.723Z" }, +] + +[[package]] +name = "nvidia-curand-cu12" +version = "10.3.9.90" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/aa/6584b56dc84ebe9cf93226a5cde4d99080c8e90ab40f0c27bda7a0f29aa1/nvidia_curand_cu12-10.3.9.90-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:b32331d4f4df5d6eefa0554c565b626c7216f87a06a4f56fab27c3b68a830ec9", size = 63619976, upload_time = "2025-03-07T01:46:23.323Z" }, +] + +[[package]] +name = "nvidia-cusolver-cu12" +version = "11.7.3.90" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "nvidia-cublas-cu12" }, + { name = "nvidia-cusparse-cu12" }, + { name = "nvidia-nvjitlink-cu12" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/85/48/9a13d2975803e8cf2777d5ed57b87a0b6ca2cc795f9a4f59796a910bfb80/nvidia_cusolver_cu12-11.7.3.90-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:4376c11ad263152bd50ea295c05370360776f8c3427b30991df774f9fb26c450", size = 267506905, upload_time = "2025-03-07T01:47:16.273Z" }, +] + +[[package]] +name = "nvidia-cusparse-cu12" +version = "12.5.8.93" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "nvidia-nvjitlink-cu12" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/c2/f5/e1854cb2f2bcd4280c44736c93550cc300ff4b8c95ebe370d0aa7d2b473d/nvidia_cusparse_cu12-12.5.8.93-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1ec05d76bbbd8b61b06a80e1eaf8cf4959c3d4ce8e711b65ebd0443bb0ebb13b", size = 288216466, upload_time = "2025-03-07T01:48:13.779Z" }, +] + +[[package]] +name = "nvidia-cusparselt-cu12" +version = "0.7.1" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/56/79/12978b96bd44274fe38b5dde5cfb660b1d114f70a65ef962bcbbed99b549/nvidia_cusparselt_cu12-0.7.1-py3-none-manylinux2014_x86_64.whl", hash = "sha256:f1bb701d6b930d5a7cea44c19ceb973311500847f81b634d802b7b539dc55623", size = 287193691, upload_time = "2025-02-26T00:15:44.104Z" }, +] + +[[package]] +name = "nvidia-nccl-cu12" +version = "2.27.3" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5c/5b/4e4fff7bad39adf89f735f2bc87248c81db71205b62bcc0d5ca5b606b3c3/nvidia_nccl_cu12-2.27.3-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:adf27ccf4238253e0b826bce3ff5fa532d65fc42322c8bfdfaf28024c0fbe039", size = 322364134, upload_time = "2025-06-03T21:58:04.013Z" }, +] + +[[package]] +name = "nvidia-nvjitlink-cu12" +version = "12.8.93" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f6/74/86a07f1d0f42998ca31312f998bd3b9a7eff7f52378f4f270c8679c77fb9/nvidia_nvjitlink_cu12-12.8.93-py3-none-manylinux2010_x86_64.manylinux_2_12_x86_64.whl", hash = "sha256:81ff63371a7ebd6e6451970684f916be2eab07321b73c9d244dc2b4da7f73b88", size = 39254836, upload_time = "2025-03-07T01:49:55.661Z" }, +] + +[[package]] +name = "nvidia-nvtx-cu12" +version = "12.8.90" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a2/eb/86626c1bbc2edb86323022371c39aa48df6fd8b0a1647bc274577f72e90b/nvidia_nvtx_cu12-12.8.90-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5b17e2001cc0d751a5bc2c6ec6d26ad95913324a4adb86788c944f8ce9ba441f", size = 89954, upload_time = "2025-03-07T01:42:44.131Z" }, +] + +[[package]] +name = "nwbinspector" +version = "0.6.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "click" }, + { name = "fsspec" }, + { name = "hdmf-zarr" }, + { name = "isodate" }, + { name = "jsonschema" }, + { name = "natsort" }, + { name = "packaging" }, + { name = "pynwb" }, + { name = "pyyaml" }, + { name = "requests" }, + { name = "tqdm" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/45/23/d50bb1dfef6eff622dff58ec64077f6b51ce9191ee4f093881b1394a6ddd/nwbinspector-0.6.5.tar.gz", hash = "sha256:93023bcd72c73add18644211fb26f6b005e012ec9c6a8b3f53e136ddeb58af16", size = 591999, upload_time = "2025-07-25T18:05:22.529Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8f/e7/01fd709430ee0178db611f1db9652bfca71599799c602101e13ce5bdeedc/nwbinspector-0.6.5-py3-none-any.whl", hash = "sha256:f0219a9b06482b07415e7beebddf3ae7d97371cc178e7bc05c7d3edf7285d135", size = 64409, upload_time = "2025-07-25T18:05:21.4Z" }, +] + +[[package]] +name = "packaging" +version = "25.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727, upload_time = "2025-04-19T11:48:59.673Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload_time = "2025-04-19T11:48:57.875Z" }, +] + +[[package]] +name = "pandas" +version = "2.3.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "tzdata" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/33/01/d40b85317f86cf08d853a4f495195c73815fdf205eef3993821720274518/pandas-2.3.3.tar.gz", hash = "sha256:e05e1af93b977f7eafa636d043f9f94c7ee3ac81af99c13508215942e64c993b", size = 4495223, upload_time = "2025-09-29T23:34:51.853Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/fb/231d89e8637c808b997d172b18e9d4a4bc7bf31296196c260526055d1ea0/pandas-2.3.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6d21f6d74eb1725c2efaa71a2bfc661a0689579b58e9c0ca58a739ff0b002b53", size = 11597846, upload_time = "2025-09-29T23:19:48.856Z" }, + { url = "https://files.pythonhosted.org/packages/5c/bd/bf8064d9cfa214294356c2d6702b716d3cf3bb24be59287a6a21e24cae6b/pandas-2.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3fd2f887589c7aa868e02632612ba39acb0b8948faf5cc58f0850e165bd46f35", size = 10729618, upload_time = "2025-09-29T23:39:08.659Z" }, + { url = "https://files.pythonhosted.org/packages/57/56/cf2dbe1a3f5271370669475ead12ce77c61726ffd19a35546e31aa8edf4e/pandas-2.3.3-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ecaf1e12bdc03c86ad4a7ea848d66c685cb6851d807a26aa245ca3d2017a1908", size = 11737212, upload_time = "2025-09-29T23:19:59.765Z" }, + { url = "https://files.pythonhosted.org/packages/e5/63/cd7d615331b328e287d8233ba9fdf191a9c2d11b6af0c7a59cfcec23de68/pandas-2.3.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b3d11d2fda7eb164ef27ffc14b4fcab16a80e1ce67e9f57e19ec0afaf715ba89", size = 12362693, upload_time = "2025-09-29T23:20:14.098Z" }, + { url = "https://files.pythonhosted.org/packages/a6/de/8b1895b107277d52f2b42d3a6806e69cfef0d5cf1d0ba343470b9d8e0a04/pandas-2.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a68e15f780eddf2b07d242e17a04aa187a7ee12b40b930bfdd78070556550e98", size = 12771002, upload_time = "2025-09-29T23:20:26.76Z" }, + { url = "https://files.pythonhosted.org/packages/87/21/84072af3187a677c5893b170ba2c8fbe450a6ff911234916da889b698220/pandas-2.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:371a4ab48e950033bcf52b6527eccb564f52dc826c02afd9a1bc0ab731bba084", size = 13450971, upload_time = "2025-09-29T23:20:41.344Z" }, + { url = "https://files.pythonhosted.org/packages/86/41/585a168330ff063014880a80d744219dbf1dd7a1c706e75ab3425a987384/pandas-2.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:a16dcec078a01eeef8ee61bf64074b4e524a2a3f4b3be9326420cabe59c4778b", size = 10992722, upload_time = "2025-09-29T23:20:54.139Z" }, + { url = "https://files.pythonhosted.org/packages/cd/4b/18b035ee18f97c1040d94debd8f2e737000ad70ccc8f5513f4eefad75f4b/pandas-2.3.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:56851a737e3470de7fa88e6131f41281ed440d29a9268dcbf0002da5ac366713", size = 11544671, upload_time = "2025-09-29T23:21:05.024Z" }, + { url = "https://files.pythonhosted.org/packages/31/94/72fac03573102779920099bcac1c3b05975c2cb5f01eac609faf34bed1ca/pandas-2.3.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bdcd9d1167f4885211e401b3036c0c8d9e274eee67ea8d0758a256d60704cfe8", size = 10680807, upload_time = "2025-09-29T23:21:15.979Z" }, + { url = "https://files.pythonhosted.org/packages/16/87/9472cf4a487d848476865321de18cc8c920b8cab98453ab79dbbc98db63a/pandas-2.3.3-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e32e7cc9af0f1cc15548288a51a3b681cc2a219faa838e995f7dc53dbab1062d", size = 11709872, upload_time = "2025-09-29T23:21:27.165Z" }, + { url = "https://files.pythonhosted.org/packages/15/07/284f757f63f8a8d69ed4472bfd85122bd086e637bf4ed09de572d575a693/pandas-2.3.3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:318d77e0e42a628c04dc56bcef4b40de67918f7041c2b061af1da41dcff670ac", size = 12306371, upload_time = "2025-09-29T23:21:40.532Z" }, + { url = "https://files.pythonhosted.org/packages/33/81/a3afc88fca4aa925804a27d2676d22dcd2031c2ebe08aabd0ae55b9ff282/pandas-2.3.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4e0a175408804d566144e170d0476b15d78458795bb18f1304fb94160cabf40c", size = 12765333, upload_time = "2025-09-29T23:21:55.77Z" }, + { url = "https://files.pythonhosted.org/packages/8d/0f/b4d4ae743a83742f1153464cf1a8ecfafc3ac59722a0b5c8602310cb7158/pandas-2.3.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:93c2d9ab0fc11822b5eece72ec9587e172f63cff87c00b062f6e37448ced4493", size = 13418120, upload_time = "2025-09-29T23:22:10.109Z" }, + { url = "https://files.pythonhosted.org/packages/4f/c7/e54682c96a895d0c808453269e0b5928a07a127a15704fedb643e9b0a4c8/pandas-2.3.3-cp313-cp313-win_amd64.whl", hash = "sha256:f8bfc0e12dc78f777f323f55c58649591b2cd0c43534e8355c51d3fede5f4dee", size = 10993991, upload_time = "2025-09-29T23:25:04.889Z" }, + { url = "https://files.pythonhosted.org/packages/f9/ca/3f8d4f49740799189e1395812f3bf23b5e8fc7c190827d55a610da72ce55/pandas-2.3.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:75ea25f9529fdec2d2e93a42c523962261e567d250b0013b16210e1d40d7c2e5", size = 12048227, upload_time = "2025-09-29T23:22:24.343Z" }, + { url = "https://files.pythonhosted.org/packages/0e/5a/f43efec3e8c0cc92c4663ccad372dbdff72b60bdb56b2749f04aa1d07d7e/pandas-2.3.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:74ecdf1d301e812db96a465a525952f4dde225fdb6d8e5a521d47e1f42041e21", size = 11411056, upload_time = "2025-09-29T23:22:37.762Z" }, + { url = "https://files.pythonhosted.org/packages/46/b1/85331edfc591208c9d1a63a06baa67b21d332e63b7a591a5ba42a10bb507/pandas-2.3.3-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6435cb949cb34ec11cc9860246ccb2fdc9ecd742c12d3304989017d53f039a78", size = 11645189, upload_time = "2025-09-29T23:22:51.688Z" }, + { url = "https://files.pythonhosted.org/packages/44/23/78d645adc35d94d1ac4f2a3c4112ab6f5b8999f4898b8cdf01252f8df4a9/pandas-2.3.3-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:900f47d8f20860de523a1ac881c4c36d65efcb2eb850e6948140fa781736e110", size = 12121912, upload_time = "2025-09-29T23:23:05.042Z" }, + { url = "https://files.pythonhosted.org/packages/53/da/d10013df5e6aaef6b425aa0c32e1fc1f3e431e4bcabd420517dceadce354/pandas-2.3.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a45c765238e2ed7d7c608fc5bc4a6f88b642f2f01e70c0c23d2224dd21829d86", size = 12712160, upload_time = "2025-09-29T23:23:28.57Z" }, + { url = "https://files.pythonhosted.org/packages/bd/17/e756653095a083d8a37cbd816cb87148debcfcd920129b25f99dd8d04271/pandas-2.3.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:c4fc4c21971a1a9f4bdb4c73978c7f7256caa3e62b323f70d6cb80db583350bc", size = 13199233, upload_time = "2025-09-29T23:24:24.876Z" }, + { url = "https://files.pythonhosted.org/packages/04/fd/74903979833db8390b73b3a8a7d30d146d710bd32703724dd9083950386f/pandas-2.3.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:ee15f284898e7b246df8087fc82b87b01686f98ee67d85a17b7ab44143a3a9a0", size = 11540635, upload_time = "2025-09-29T23:25:52.486Z" }, + { url = "https://files.pythonhosted.org/packages/21/00/266d6b357ad5e6d3ad55093a7e8efc7dd245f5a842b584db9f30b0f0a287/pandas-2.3.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1611aedd912e1ff81ff41c745822980c49ce4a7907537be8692c8dbc31924593", size = 10759079, upload_time = "2025-09-29T23:26:33.204Z" }, + { url = "https://files.pythonhosted.org/packages/ca/05/d01ef80a7a3a12b2f8bbf16daba1e17c98a2f039cbc8e2f77a2c5a63d382/pandas-2.3.3-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6d2cefc361461662ac48810cb14365a365ce864afe85ef1f447ff5a1e99ea81c", size = 11814049, upload_time = "2025-09-29T23:27:15.384Z" }, + { url = "https://files.pythonhosted.org/packages/15/b2/0e62f78c0c5ba7e3d2c5945a82456f4fac76c480940f805e0b97fcbc2f65/pandas-2.3.3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ee67acbbf05014ea6c763beb097e03cd629961c8a632075eeb34247120abcb4b", size = 12332638, upload_time = "2025-09-29T23:27:51.625Z" }, + { url = "https://files.pythonhosted.org/packages/c5/33/dd70400631b62b9b29c3c93d2feee1d0964dc2bae2e5ad7a6c73a7f25325/pandas-2.3.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c46467899aaa4da076d5abc11084634e2d197e9460643dd455ac3db5856b24d6", size = 12886834, upload_time = "2025-09-29T23:28:21.289Z" }, + { url = "https://files.pythonhosted.org/packages/d3/18/b5d48f55821228d0d2692b34fd5034bb185e854bdb592e9c640f6290e012/pandas-2.3.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6253c72c6a1d990a410bc7de641d34053364ef8bcd3126f7e7450125887dffe3", size = 13409925, upload_time = "2025-09-29T23:28:58.261Z" }, + { url = "https://files.pythonhosted.org/packages/a6/3d/124ac75fcd0ecc09b8fdccb0246ef65e35b012030defb0e0eba2cbbbe948/pandas-2.3.3-cp314-cp314-win_amd64.whl", hash = "sha256:1b07204a219b3b7350abaae088f451860223a52cfb8a6c53358e7948735158e5", size = 11109071, upload_time = "2025-09-29T23:32:27.484Z" }, + { url = "https://files.pythonhosted.org/packages/89/9c/0e21c895c38a157e0faa1fb64587a9226d6dd46452cac4532d80c3c4a244/pandas-2.3.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:2462b1a365b6109d275250baaae7b760fd25c726aaca0054649286bcfbb3e8ec", size = 12048504, upload_time = "2025-09-29T23:29:31.47Z" }, + { url = "https://files.pythonhosted.org/packages/d7/82/b69a1c95df796858777b68fbe6a81d37443a33319761d7c652ce77797475/pandas-2.3.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:0242fe9a49aa8b4d78a4fa03acb397a58833ef6199e9aa40a95f027bb3a1b6e7", size = 11410702, upload_time = "2025-09-29T23:29:54.591Z" }, + { url = "https://files.pythonhosted.org/packages/f9/88/702bde3ba0a94b8c73a0181e05144b10f13f29ebfc2150c3a79062a8195d/pandas-2.3.3-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a21d830e78df0a515db2b3d2f5570610f5e6bd2e27749770e8bb7b524b89b450", size = 11634535, upload_time = "2025-09-29T23:30:21.003Z" }, + { url = "https://files.pythonhosted.org/packages/a4/1e/1bac1a839d12e6a82ec6cb40cda2edde64a2013a66963293696bbf31fbbb/pandas-2.3.3-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2e3ebdb170b5ef78f19bfb71b0dc5dc58775032361fa188e814959b74d726dd5", size = 12121582, upload_time = "2025-09-29T23:30:43.391Z" }, + { url = "https://files.pythonhosted.org/packages/44/91/483de934193e12a3b1d6ae7c8645d083ff88dec75f46e827562f1e4b4da6/pandas-2.3.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:d051c0e065b94b7a3cea50eb1ec32e912cd96dba41647eb24104b6c6c14c5788", size = 12699963, upload_time = "2025-09-29T23:31:10.009Z" }, + { url = "https://files.pythonhosted.org/packages/70/44/5191d2e4026f86a2a109053e194d3ba7a31a2d10a9c2348368c63ed4e85a/pandas-2.3.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:3869faf4bd07b3b66a9f462417d0ca3a9df29a9f6abd5d0d0dbab15dac7abe87", size = 13202175, upload_time = "2025-09-29T23:31:59.173Z" }, +] + +[[package]] +name = "platformdirs" +version = "4.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/23/e8/21db9c9987b0e728855bd57bff6984f67952bea55d6f75e055c46b5383e8/platformdirs-4.4.0.tar.gz", hash = "sha256:ca753cf4d81dc309bc67b0ea38fd15dc97bc30ce419a7f58d13eb3bf14c4febf", size = 21634, upload_time = "2025-08-26T14:32:04.268Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/40/4b/2028861e724d3bd36227adfa20d3fd24c3fc6d52032f4a93c133be5d17ce/platformdirs-4.4.0-py3-none-any.whl", hash = "sha256:abd01743f24e5287cd7a5db3752faf1a2d65353f38ec26d98e25a6db65958c85", size = 18654, upload_time = "2025-08-26T14:32:02.735Z" }, +] + +[[package]] +name = "propcache" +version = "0.3.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a6/16/43264e4a779dd8588c21a70f0709665ee8f611211bdd2c87d952cfa7c776/propcache-0.3.2.tar.gz", hash = "sha256:20d7d62e4e7ef05f221e0db2856b979540686342e7dd9973b815599c7057e168", size = 44139, upload_time = "2025-06-09T22:56:06.081Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a8/42/9ca01b0a6f48e81615dca4765a8f1dd2c057e0540f6116a27dc5ee01dfb6/propcache-0.3.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:8de106b6c84506b31c27168582cd3cb3000a6412c16df14a8628e5871ff83c10", size = 73674, upload_time = "2025-06-09T22:54:30.551Z" }, + { url = "https://files.pythonhosted.org/packages/af/6e/21293133beb550f9c901bbece755d582bfaf2176bee4774000bd4dd41884/propcache-0.3.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:28710b0d3975117239c76600ea351934ac7b5ff56e60953474342608dbbb6154", size = 43570, upload_time = "2025-06-09T22:54:32.296Z" }, + { url = "https://files.pythonhosted.org/packages/0c/c8/0393a0a3a2b8760eb3bde3c147f62b20044f0ddac81e9d6ed7318ec0d852/propcache-0.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce26862344bdf836650ed2487c3d724b00fbfec4233a1013f597b78c1cb73615", size = 43094, upload_time = "2025-06-09T22:54:33.929Z" }, + { url = "https://files.pythonhosted.org/packages/37/2c/489afe311a690399d04a3e03b069225670c1d489eb7b044a566511c1c498/propcache-0.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bca54bd347a253af2cf4544bbec232ab982f4868de0dd684246b67a51bc6b1db", size = 226958, upload_time = "2025-06-09T22:54:35.186Z" }, + { url = "https://files.pythonhosted.org/packages/9d/ca/63b520d2f3d418c968bf596839ae26cf7f87bead026b6192d4da6a08c467/propcache-0.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:55780d5e9a2ddc59711d727226bb1ba83a22dd32f64ee15594b9392b1f544eb1", size = 234894, upload_time = "2025-06-09T22:54:36.708Z" }, + { url = "https://files.pythonhosted.org/packages/11/60/1d0ed6fff455a028d678df30cc28dcee7af77fa2b0e6962ce1df95c9a2a9/propcache-0.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:035e631be25d6975ed87ab23153db6a73426a48db688070d925aa27e996fe93c", size = 233672, upload_time = "2025-06-09T22:54:38.062Z" }, + { url = "https://files.pythonhosted.org/packages/37/7c/54fd5301ef38505ab235d98827207176a5c9b2aa61939b10a460ca53e123/propcache-0.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ee6f22b6eaa39297c751d0e80c0d3a454f112f5c6481214fcf4c092074cecd67", size = 224395, upload_time = "2025-06-09T22:54:39.634Z" }, + { url = "https://files.pythonhosted.org/packages/ee/1a/89a40e0846f5de05fdc6779883bf46ba980e6df4d2ff8fb02643de126592/propcache-0.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7ca3aee1aa955438c4dba34fc20a9f390e4c79967257d830f137bd5a8a32ed3b", size = 212510, upload_time = "2025-06-09T22:54:41.565Z" }, + { url = "https://files.pythonhosted.org/packages/5e/33/ca98368586c9566a6b8d5ef66e30484f8da84c0aac3f2d9aec6d31a11bd5/propcache-0.3.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7a4f30862869fa2b68380d677cc1c5fcf1e0f2b9ea0cf665812895c75d0ca3b8", size = 222949, upload_time = "2025-06-09T22:54:43.038Z" }, + { url = "https://files.pythonhosted.org/packages/ba/11/ace870d0aafe443b33b2f0b7efdb872b7c3abd505bfb4890716ad7865e9d/propcache-0.3.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:b77ec3c257d7816d9f3700013639db7491a434644c906a2578a11daf13176251", size = 217258, upload_time = "2025-06-09T22:54:44.376Z" }, + { url = "https://files.pythonhosted.org/packages/5b/d2/86fd6f7adffcfc74b42c10a6b7db721d1d9ca1055c45d39a1a8f2a740a21/propcache-0.3.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:cab90ac9d3f14b2d5050928483d3d3b8fb6b4018893fc75710e6aa361ecb2474", size = 213036, upload_time = "2025-06-09T22:54:46.243Z" }, + { url = "https://files.pythonhosted.org/packages/07/94/2d7d1e328f45ff34a0a284cf5a2847013701e24c2a53117e7c280a4316b3/propcache-0.3.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:0b504d29f3c47cf6b9e936c1852246c83d450e8e063d50562115a6be6d3a2535", size = 227684, upload_time = "2025-06-09T22:54:47.63Z" }, + { url = "https://files.pythonhosted.org/packages/b7/05/37ae63a0087677e90b1d14710e532ff104d44bc1efa3b3970fff99b891dc/propcache-0.3.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:ce2ac2675a6aa41ddb2a0c9cbff53780a617ac3d43e620f8fd77ba1c84dcfc06", size = 234562, upload_time = "2025-06-09T22:54:48.982Z" }, + { url = "https://files.pythonhosted.org/packages/a4/7c/3f539fcae630408d0bd8bf3208b9a647ccad10976eda62402a80adf8fc34/propcache-0.3.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:62b4239611205294cc433845b914131b2a1f03500ff3c1ed093ed216b82621e1", size = 222142, upload_time = "2025-06-09T22:54:50.424Z" }, + { url = "https://files.pythonhosted.org/packages/7c/d2/34b9eac8c35f79f8a962546b3e97e9d4b990c420ee66ac8255d5d9611648/propcache-0.3.2-cp312-cp312-win32.whl", hash = "sha256:df4a81b9b53449ebc90cc4deefb052c1dd934ba85012aa912c7ea7b7e38b60c1", size = 37711, upload_time = "2025-06-09T22:54:52.072Z" }, + { url = "https://files.pythonhosted.org/packages/19/61/d582be5d226cf79071681d1b46b848d6cb03d7b70af7063e33a2787eaa03/propcache-0.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:7046e79b989d7fe457bb755844019e10f693752d169076138abf17f31380800c", size = 41479, upload_time = "2025-06-09T22:54:53.234Z" }, + { url = "https://files.pythonhosted.org/packages/dc/d1/8c747fafa558c603c4ca19d8e20b288aa0c7cda74e9402f50f31eb65267e/propcache-0.3.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ca592ed634a73ca002967458187109265e980422116c0a107cf93d81f95af945", size = 71286, upload_time = "2025-06-09T22:54:54.369Z" }, + { url = "https://files.pythonhosted.org/packages/61/99/d606cb7986b60d89c36de8a85d58764323b3a5ff07770a99d8e993b3fa73/propcache-0.3.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9ecb0aad4020e275652ba3975740f241bd12a61f1a784df044cf7477a02bc252", size = 42425, upload_time = "2025-06-09T22:54:55.642Z" }, + { url = "https://files.pythonhosted.org/packages/8c/96/ef98f91bbb42b79e9bb82bdd348b255eb9d65f14dbbe3b1594644c4073f7/propcache-0.3.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7f08f1cc28bd2eade7a8a3d2954ccc673bb02062e3e7da09bc75d843386b342f", size = 41846, upload_time = "2025-06-09T22:54:57.246Z" }, + { url = "https://files.pythonhosted.org/packages/5b/ad/3f0f9a705fb630d175146cd7b1d2bf5555c9beaed54e94132b21aac098a6/propcache-0.3.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1a342c834734edb4be5ecb1e9fb48cb64b1e2320fccbd8c54bf8da8f2a84c33", size = 208871, upload_time = "2025-06-09T22:54:58.975Z" }, + { url = "https://files.pythonhosted.org/packages/3a/38/2085cda93d2c8b6ec3e92af2c89489a36a5886b712a34ab25de9fbca7992/propcache-0.3.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8a544caaae1ac73f1fecfae70ded3e93728831affebd017d53449e3ac052ac1e", size = 215720, upload_time = "2025-06-09T22:55:00.471Z" }, + { url = "https://files.pythonhosted.org/packages/61/c1/d72ea2dc83ac7f2c8e182786ab0fc2c7bd123a1ff9b7975bee671866fe5f/propcache-0.3.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:310d11aa44635298397db47a3ebce7db99a4cc4b9bbdfcf6c98a60c8d5261cf1", size = 215203, upload_time = "2025-06-09T22:55:01.834Z" }, + { url = "https://files.pythonhosted.org/packages/af/81/b324c44ae60c56ef12007105f1460d5c304b0626ab0cc6b07c8f2a9aa0b8/propcache-0.3.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c1396592321ac83157ac03a2023aa6cc4a3cc3cfdecb71090054c09e5a7cce3", size = 206365, upload_time = "2025-06-09T22:55:03.199Z" }, + { url = "https://files.pythonhosted.org/packages/09/73/88549128bb89e66d2aff242488f62869014ae092db63ccea53c1cc75a81d/propcache-0.3.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8cabf5b5902272565e78197edb682017d21cf3b550ba0460ee473753f28d23c1", size = 196016, upload_time = "2025-06-09T22:55:04.518Z" }, + { url = "https://files.pythonhosted.org/packages/b9/3f/3bdd14e737d145114a5eb83cb172903afba7242f67c5877f9909a20d948d/propcache-0.3.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0a2f2235ac46a7aa25bdeb03a9e7060f6ecbd213b1f9101c43b3090ffb971ef6", size = 205596, upload_time = "2025-06-09T22:55:05.942Z" }, + { url = "https://files.pythonhosted.org/packages/0f/ca/2f4aa819c357d3107c3763d7ef42c03980f9ed5c48c82e01e25945d437c1/propcache-0.3.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:92b69e12e34869a6970fd2f3da91669899994b47c98f5d430b781c26f1d9f387", size = 200977, upload_time = "2025-06-09T22:55:07.792Z" }, + { url = "https://files.pythonhosted.org/packages/cd/4a/e65276c7477533c59085251ae88505caf6831c0e85ff8b2e31ebcbb949b1/propcache-0.3.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:54e02207c79968ebbdffc169591009f4474dde3b4679e16634d34c9363ff56b4", size = 197220, upload_time = "2025-06-09T22:55:09.173Z" }, + { url = "https://files.pythonhosted.org/packages/7c/54/fc7152e517cf5578278b242396ce4d4b36795423988ef39bb8cd5bf274c8/propcache-0.3.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4adfb44cb588001f68c5466579d3f1157ca07f7504fc91ec87862e2b8e556b88", size = 210642, upload_time = "2025-06-09T22:55:10.62Z" }, + { url = "https://files.pythonhosted.org/packages/b9/80/abeb4a896d2767bf5f1ea7b92eb7be6a5330645bd7fb844049c0e4045d9d/propcache-0.3.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:fd3e6019dc1261cd0291ee8919dd91fbab7b169bb76aeef6c716833a3f65d206", size = 212789, upload_time = "2025-06-09T22:55:12.029Z" }, + { url = "https://files.pythonhosted.org/packages/b3/db/ea12a49aa7b2b6d68a5da8293dcf50068d48d088100ac016ad92a6a780e6/propcache-0.3.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4c181cad81158d71c41a2bce88edce078458e2dd5ffee7eddd6b05da85079f43", size = 205880, upload_time = "2025-06-09T22:55:13.45Z" }, + { url = "https://files.pythonhosted.org/packages/d1/e5/9076a0bbbfb65d1198007059c65639dfd56266cf8e477a9707e4b1999ff4/propcache-0.3.2-cp313-cp313-win32.whl", hash = "sha256:8a08154613f2249519e549de2330cf8e2071c2887309a7b07fb56098f5170a02", size = 37220, upload_time = "2025-06-09T22:55:15.284Z" }, + { url = "https://files.pythonhosted.org/packages/d3/f5/b369e026b09a26cd77aa88d8fffd69141d2ae00a2abaaf5380d2603f4b7f/propcache-0.3.2-cp313-cp313-win_amd64.whl", hash = "sha256:e41671f1594fc4ab0a6dec1351864713cb3a279910ae8b58f884a88a0a632c05", size = 40678, upload_time = "2025-06-09T22:55:16.445Z" }, + { url = "https://files.pythonhosted.org/packages/a4/3a/6ece377b55544941a08d03581c7bc400a3c8cd3c2865900a68d5de79e21f/propcache-0.3.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:9a3cf035bbaf035f109987d9d55dc90e4b0e36e04bbbb95af3055ef17194057b", size = 76560, upload_time = "2025-06-09T22:55:17.598Z" }, + { url = "https://files.pythonhosted.org/packages/0c/da/64a2bb16418740fa634b0e9c3d29edff1db07f56d3546ca2d86ddf0305e1/propcache-0.3.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:156c03d07dc1323d8dacaa221fbe028c5c70d16709cdd63502778e6c3ccca1b0", size = 44676, upload_time = "2025-06-09T22:55:18.922Z" }, + { url = "https://files.pythonhosted.org/packages/36/7b/f025e06ea51cb72c52fb87e9b395cced02786610b60a3ed51da8af017170/propcache-0.3.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:74413c0ba02ba86f55cf60d18daab219f7e531620c15f1e23d95563f505efe7e", size = 44701, upload_time = "2025-06-09T22:55:20.106Z" }, + { url = "https://files.pythonhosted.org/packages/a4/00/faa1b1b7c3b74fc277f8642f32a4c72ba1d7b2de36d7cdfb676db7f4303e/propcache-0.3.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f066b437bb3fa39c58ff97ab2ca351db465157d68ed0440abecb21715eb24b28", size = 276934, upload_time = "2025-06-09T22:55:21.5Z" }, + { url = "https://files.pythonhosted.org/packages/74/ab/935beb6f1756e0476a4d5938ff44bf0d13a055fed880caf93859b4f1baf4/propcache-0.3.2-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1304b085c83067914721e7e9d9917d41ad87696bf70f0bc7dee450e9c71ad0a", size = 278316, upload_time = "2025-06-09T22:55:22.918Z" }, + { url = "https://files.pythonhosted.org/packages/f8/9d/994a5c1ce4389610838d1caec74bdf0e98b306c70314d46dbe4fcf21a3e2/propcache-0.3.2-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ab50cef01b372763a13333b4e54021bdcb291fc9a8e2ccb9c2df98be51bcde6c", size = 282619, upload_time = "2025-06-09T22:55:24.651Z" }, + { url = "https://files.pythonhosted.org/packages/2b/00/a10afce3d1ed0287cef2e09506d3be9822513f2c1e96457ee369adb9a6cd/propcache-0.3.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fad3b2a085ec259ad2c2842666b2a0a49dea8463579c606426128925af1ed725", size = 265896, upload_time = "2025-06-09T22:55:26.049Z" }, + { url = "https://files.pythonhosted.org/packages/2e/a8/2aa6716ffa566ca57c749edb909ad27884680887d68517e4be41b02299f3/propcache-0.3.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:261fa020c1c14deafd54c76b014956e2f86991af198c51139faf41c4d5e83892", size = 252111, upload_time = "2025-06-09T22:55:27.381Z" }, + { url = "https://files.pythonhosted.org/packages/36/4f/345ca9183b85ac29c8694b0941f7484bf419c7f0fea2d1e386b4f7893eed/propcache-0.3.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:46d7f8aa79c927e5f987ee3a80205c987717d3659f035c85cf0c3680526bdb44", size = 268334, upload_time = "2025-06-09T22:55:28.747Z" }, + { url = "https://files.pythonhosted.org/packages/3e/ca/fcd54f78b59e3f97b3b9715501e3147f5340167733d27db423aa321e7148/propcache-0.3.2-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:6d8f3f0eebf73e3c0ff0e7853f68be638b4043c65a70517bb575eff54edd8dbe", size = 255026, upload_time = "2025-06-09T22:55:30.184Z" }, + { url = "https://files.pythonhosted.org/packages/8b/95/8e6a6bbbd78ac89c30c225210a5c687790e532ba4088afb8c0445b77ef37/propcache-0.3.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:03c89c1b14a5452cf15403e291c0ccd7751d5b9736ecb2c5bab977ad6c5bcd81", size = 250724, upload_time = "2025-06-09T22:55:31.646Z" }, + { url = "https://files.pythonhosted.org/packages/ee/b0/0dd03616142baba28e8b2d14ce5df6631b4673850a3d4f9c0f9dd714a404/propcache-0.3.2-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:0cc17efde71e12bbaad086d679ce575268d70bc123a5a71ea7ad76f70ba30bba", size = 268868, upload_time = "2025-06-09T22:55:33.209Z" }, + { url = "https://files.pythonhosted.org/packages/c5/98/2c12407a7e4fbacd94ddd32f3b1e3d5231e77c30ef7162b12a60e2dd5ce3/propcache-0.3.2-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:acdf05d00696bc0447e278bb53cb04ca72354e562cf88ea6f9107df8e7fd9770", size = 271322, upload_time = "2025-06-09T22:55:35.065Z" }, + { url = "https://files.pythonhosted.org/packages/35/91/9cb56efbb428b006bb85db28591e40b7736847b8331d43fe335acf95f6c8/propcache-0.3.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4445542398bd0b5d32df908031cb1b30d43ac848e20470a878b770ec2dcc6330", size = 265778, upload_time = "2025-06-09T22:55:36.45Z" }, + { url = "https://files.pythonhosted.org/packages/9a/4c/b0fe775a2bdd01e176b14b574be679d84fc83958335790f7c9a686c1f468/propcache-0.3.2-cp313-cp313t-win32.whl", hash = "sha256:f86e5d7cd03afb3a1db8e9f9f6eff15794e79e791350ac48a8c924e6f439f394", size = 41175, upload_time = "2025-06-09T22:55:38.436Z" }, + { url = "https://files.pythonhosted.org/packages/a4/ff/47f08595e3d9b5e149c150f88d9714574f1a7cbd89fe2817158a952674bf/propcache-0.3.2-cp313-cp313t-win_amd64.whl", hash = "sha256:9704bedf6e7cbe3c65eca4379a9b53ee6a83749f047808cbb5044d40d7d72198", size = 44857, upload_time = "2025-06-09T22:55:39.687Z" }, + { url = "https://files.pythonhosted.org/packages/cc/35/cc0aaecf278bb4575b8555f2b137de5ab821595ddae9da9d3cd1da4072c7/propcache-0.3.2-py3-none-any.whl", hash = "sha256:98f1ec44fb675f5052cccc8e609c46ed23a35a1cfd18545ad4e29002d858a43f", size = 12663, upload_time = "2025-06-09T22:56:04.484Z" }, +] + +[[package]] +name = "pycparser" +version = "2.23" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fe/cf/d2d3b9f5699fb1e4615c8e32ff220203e43b248e1dfcc6736ad9057731ca/pycparser-2.23.tar.gz", hash = "sha256:78816d4f24add8f10a06d6f05b4d424ad9e96cfebf68a4ddc99c65c0720d00c2", size = 173734, upload_time = "2025-09-09T13:23:47.91Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/e3/59cd50310fc9b59512193629e1984c1f95e5c8ae6e5d8c69532ccc65a7fe/pycparser-2.23-py3-none-any.whl", hash = "sha256:e5c6e8d3fbad53479cab09ac03729e0a9faf2bee3db8208a550daf5af81a5934", size = 118140, upload_time = "2025-09-09T13:23:46.651Z" }, +] + +[[package]] +name = "pycryptodomex" +version = "3.23.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c9/85/e24bf90972a30b0fcd16c73009add1d7d7cd9140c2498a68252028899e41/pycryptodomex-3.23.0.tar.gz", hash = "sha256:71909758f010c82bc99b0abf4ea12012c98962fbf0583c2164f8b84533c2e4da", size = 4922157, upload_time = "2025-05-17T17:23:41.434Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2e/00/10edb04777069a42490a38c137099d4b17ba6e36a4e6e28bdc7470e9e853/pycryptodomex-3.23.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:7b37e08e3871efe2187bc1fd9320cc81d87caf19816c648f24443483005ff886", size = 2498764, upload_time = "2025-05-17T17:22:21.453Z" }, + { url = "https://files.pythonhosted.org/packages/6b/3f/2872a9c2d3a27eac094f9ceaa5a8a483b774ae69018040ea3240d5b11154/pycryptodomex-3.23.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:91979028227543010d7b2ba2471cf1d1e398b3f183cb105ac584df0c36dac28d", size = 1643012, upload_time = "2025-05-17T17:22:23.702Z" }, + { url = "https://files.pythonhosted.org/packages/70/af/774c2e2b4f6570fbf6a4972161adbb183aeeaa1863bde31e8706f123bf92/pycryptodomex-3.23.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b8962204c47464d5c1c4038abeadd4514a133b28748bcd9fa5b6d62e3cec6fa", size = 2187643, upload_time = "2025-05-17T17:22:26.37Z" }, + { url = "https://files.pythonhosted.org/packages/de/a3/71065b24cb889d537954cedc3ae5466af00a2cabcff8e29b73be047e9a19/pycryptodomex-3.23.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a33986a0066860f7fcf7c7bd2bc804fa90e434183645595ae7b33d01f3c91ed8", size = 2273762, upload_time = "2025-05-17T17:22:28.313Z" }, + { url = "https://files.pythonhosted.org/packages/c9/0b/ff6f43b7fbef4d302c8b981fe58467b8871902cdc3eb28896b52421422cc/pycryptodomex-3.23.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7947ab8d589e3178da3d7cdeabe14f841b391e17046954f2fbcd941705762b5", size = 2313012, upload_time = "2025-05-17T17:22:30.57Z" }, + { url = "https://files.pythonhosted.org/packages/02/de/9d4772c0506ab6da10b41159493657105d3f8bb5c53615d19452afc6b315/pycryptodomex-3.23.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c25e30a20e1b426e1f0fa00131c516f16e474204eee1139d1603e132acffc314", size = 2186856, upload_time = "2025-05-17T17:22:32.819Z" }, + { url = "https://files.pythonhosted.org/packages/28/ad/8b30efcd6341707a234e5eba5493700a17852ca1ac7a75daa7945fcf6427/pycryptodomex-3.23.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:da4fa650cef02db88c2b98acc5434461e027dce0ae8c22dd5a69013eaf510006", size = 2347523, upload_time = "2025-05-17T17:22:35.386Z" }, + { url = "https://files.pythonhosted.org/packages/0f/02/16868e9f655b7670dbb0ac4f2844145cbc42251f916fc35c414ad2359849/pycryptodomex-3.23.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:58b851b9effd0d072d4ca2e4542bf2a4abcf13c82a29fd2c93ce27ee2a2e9462", size = 2272825, upload_time = "2025-05-17T17:22:37.632Z" }, + { url = "https://files.pythonhosted.org/packages/ca/18/4ca89ac737230b52ac8ffaca42f9c6f1fd07c81a6cd821e91af79db60632/pycryptodomex-3.23.0-cp313-cp313t-win32.whl", hash = "sha256:a9d446e844f08299236780f2efa9898c818fe7e02f17263866b8550c7d5fb328", size = 1772078, upload_time = "2025-05-17T17:22:40Z" }, + { url = "https://files.pythonhosted.org/packages/73/34/13e01c322db027682e00986873eca803f11c56ade9ba5bbf3225841ea2d4/pycryptodomex-3.23.0-cp313-cp313t-win_amd64.whl", hash = "sha256:bc65bdd9fc8de7a35a74cab1c898cab391a4add33a8fe740bda00f5976ca4708", size = 1803656, upload_time = "2025-05-17T17:22:42.139Z" }, + { url = "https://files.pythonhosted.org/packages/54/68/9504c8796b1805d58f4425002bcca20f12880e6fa4dc2fc9a668705c7a08/pycryptodomex-3.23.0-cp313-cp313t-win_arm64.whl", hash = "sha256:c885da45e70139464f082018ac527fdaad26f1657a99ee13eecdce0f0ca24ab4", size = 1707172, upload_time = "2025-05-17T17:22:44.704Z" }, + { url = "https://files.pythonhosted.org/packages/dd/9c/1a8f35daa39784ed8adf93a694e7e5dc15c23c741bbda06e1d45f8979e9e/pycryptodomex-3.23.0-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:06698f957fe1ab229a99ba2defeeae1c09af185baa909a31a5d1f9d42b1aaed6", size = 2499240, upload_time = "2025-05-17T17:22:46.953Z" }, + { url = "https://files.pythonhosted.org/packages/7a/62/f5221a191a97157d240cf6643747558759126c76ee92f29a3f4aee3197a5/pycryptodomex-3.23.0-cp37-abi3-macosx_10_9_x86_64.whl", hash = "sha256:b2c2537863eccef2d41061e82a881dcabb04944c5c06c5aa7110b577cc487545", size = 1644042, upload_time = "2025-05-17T17:22:49.098Z" }, + { url = "https://files.pythonhosted.org/packages/8c/fd/5a054543c8988d4ed7b612721d7e78a4b9bf36bc3c5ad45ef45c22d0060e/pycryptodomex-3.23.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:43c446e2ba8df8889e0e16f02211c25b4934898384c1ec1ec04d7889c0333587", size = 2186227, upload_time = "2025-05-17T17:22:51.139Z" }, + { url = "https://files.pythonhosted.org/packages/c8/a9/8862616a85cf450d2822dbd4fff1fcaba90877907a6ff5bc2672cafe42f8/pycryptodomex-3.23.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f489c4765093fb60e2edafdf223397bc716491b2b69fe74367b70d6999257a5c", size = 2272578, upload_time = "2025-05-17T17:22:53.676Z" }, + { url = "https://files.pythonhosted.org/packages/46/9f/bda9c49a7c1842820de674ab36c79f4fbeeee03f8ff0e4f3546c3889076b/pycryptodomex-3.23.0-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bdc69d0d3d989a1029df0eed67cc5e8e5d968f3724f4519bd03e0ec68df7543c", size = 2312166, upload_time = "2025-05-17T17:22:56.585Z" }, + { url = "https://files.pythonhosted.org/packages/03/cc/870b9bf8ca92866ca0186534801cf8d20554ad2a76ca959538041b7a7cf4/pycryptodomex-3.23.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:6bbcb1dd0f646484939e142462d9e532482bc74475cecf9c4903d4e1cd21f003", size = 2185467, upload_time = "2025-05-17T17:22:59.237Z" }, + { url = "https://files.pythonhosted.org/packages/96/e3/ce9348236d8e669fea5dd82a90e86be48b9c341210f44e25443162aba187/pycryptodomex-3.23.0-cp37-abi3-musllinux_1_2_i686.whl", hash = "sha256:8a4fcd42ccb04c31268d1efeecfccfd1249612b4de6374205376b8f280321744", size = 2346104, upload_time = "2025-05-17T17:23:02.112Z" }, + { url = "https://files.pythonhosted.org/packages/a5/e9/e869bcee87beb89040263c416a8a50204f7f7a83ac11897646c9e71e0daf/pycryptodomex-3.23.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:55ccbe27f049743a4caf4f4221b166560d3438d0b1e5ab929e07ae1702a4d6fd", size = 2271038, upload_time = "2025-05-17T17:23:04.872Z" }, + { url = "https://files.pythonhosted.org/packages/8d/67/09ee8500dd22614af5fbaa51a4aee6e342b5fa8aecf0a6cb9cbf52fa6d45/pycryptodomex-3.23.0-cp37-abi3-win32.whl", hash = "sha256:189afbc87f0b9f158386bf051f720e20fa6145975f1e76369303d0f31d1a8d7c", size = 1771969, upload_time = "2025-05-17T17:23:07.115Z" }, + { url = "https://files.pythonhosted.org/packages/69/96/11f36f71a865dd6df03716d33bd07a67e9d20f6b8d39820470b766af323c/pycryptodomex-3.23.0-cp37-abi3-win_amd64.whl", hash = "sha256:52e5ca58c3a0b0bd5e100a9fbc8015059b05cffc6c66ce9d98b4b45e023443b9", size = 1803124, upload_time = "2025-05-17T17:23:09.267Z" }, + { url = "https://files.pythonhosted.org/packages/f9/93/45c1cdcbeb182ccd2e144c693eaa097763b08b38cded279f0053ed53c553/pycryptodomex-3.23.0-cp37-abi3-win_arm64.whl", hash = "sha256:02d87b80778c171445d67e23d1caef279bf4b25c3597050ccd2e13970b57fd51", size = 1707161, upload_time = "2025-05-17T17:23:11.414Z" }, +] + +[[package]] +name = "pydantic" +version = "2.11.9" +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/ff/5d/09a551ba512d7ca404d785072700d3f6727a02f6f3c24ecfd081c7cf0aa8/pydantic-2.11.9.tar.gz", hash = "sha256:6b8ffda597a14812a7975c90b82a8a2e777d9257aba3453f973acd3c032a18e2", size = 788495, upload_time = "2025-09-13T11:26:39.325Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3e/d3/108f2006987c58e76691d5ae5d200dd3e0f532cb4e5fa3560751c3a1feba/pydantic-2.11.9-py3-none-any.whl", hash = "sha256:c42dd626f5cfc1c6950ce6205ea58c93efa406da65f479dcb4029d5934857da2", size = 444855, upload_time = "2025-09-13T11:26:36.909Z" }, +] + +[package.optional-dependencies] +email = [ + { name = "email-validator" }, +] + +[[package]] +name = "pydantic-core" +version = "2.33.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ad/88/5f2260bdfae97aabf98f1778d43f69574390ad787afb646292a638c923d4/pydantic_core-2.33.2.tar.gz", hash = "sha256:7cb8bc3605c29176e1b105350d2e6474142d7c1bd1d9327c4a9bdb46bf827acc", size = 435195, upload_time = "2025-04-23T18:33:52.104Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/8a/2b41c97f554ec8c71f2a8a5f85cb56a8b0956addfe8b0efb5b3d77e8bdc3/pydantic_core-2.33.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a7ec89dc587667f22b6a0b6579c249fca9026ce7c333fc142ba42411fa243cdc", size = 2009000, upload_time = "2025-04-23T18:31:25.863Z" }, + { url = "https://files.pythonhosted.org/packages/a1/02/6224312aacb3c8ecbaa959897af57181fb6cf3a3d7917fd44d0f2917e6f2/pydantic_core-2.33.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3c6db6e52c6d70aa0d00d45cdb9b40f0433b96380071ea80b09277dba021ddf7", size = 1847996, upload_time = "2025-04-23T18:31:27.341Z" }, + { url = "https://files.pythonhosted.org/packages/d6/46/6dcdf084a523dbe0a0be59d054734b86a981726f221f4562aed313dbcb49/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e61206137cbc65e6d5256e1166f88331d3b6238e082d9f74613b9b765fb9025", size = 1880957, upload_time = "2025-04-23T18:31:28.956Z" }, + { url = "https://files.pythonhosted.org/packages/ec/6b/1ec2c03837ac00886ba8160ce041ce4e325b41d06a034adbef11339ae422/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eb8c529b2819c37140eb51b914153063d27ed88e3bdc31b71198a198e921e011", size = 1964199, upload_time = "2025-04-23T18:31:31.025Z" }, + { url = "https://files.pythonhosted.org/packages/2d/1d/6bf34d6adb9debd9136bd197ca72642203ce9aaaa85cfcbfcf20f9696e83/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c52b02ad8b4e2cf14ca7b3d918f3eb0ee91e63b3167c32591e57c4317e134f8f", size = 2120296, upload_time = "2025-04-23T18:31:32.514Z" }, + { url = "https://files.pythonhosted.org/packages/e0/94/2bd0aaf5a591e974b32a9f7123f16637776c304471a0ab33cf263cf5591a/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:96081f1605125ba0855dfda83f6f3df5ec90c61195421ba72223de35ccfb2f88", size = 2676109, upload_time = "2025-04-23T18:31:33.958Z" }, + { url = "https://files.pythonhosted.org/packages/f9/41/4b043778cf9c4285d59742281a769eac371b9e47e35f98ad321349cc5d61/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f57a69461af2a5fa6e6bbd7a5f60d3b7e6cebb687f55106933188e79ad155c1", size = 2002028, upload_time = "2025-04-23T18:31:39.095Z" }, + { url = "https://files.pythonhosted.org/packages/cb/d5/7bb781bf2748ce3d03af04d5c969fa1308880e1dca35a9bd94e1a96a922e/pydantic_core-2.33.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:572c7e6c8bb4774d2ac88929e3d1f12bc45714ae5ee6d9a788a9fb35e60bb04b", size = 2100044, upload_time = "2025-04-23T18:31:41.034Z" }, + { url = "https://files.pythonhosted.org/packages/fe/36/def5e53e1eb0ad896785702a5bbfd25eed546cdcf4087ad285021a90ed53/pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:db4b41f9bd95fbe5acd76d89920336ba96f03e149097365afe1cb092fceb89a1", size = 2058881, upload_time = "2025-04-23T18:31:42.757Z" }, + { url = "https://files.pythonhosted.org/packages/01/6c/57f8d70b2ee57fc3dc8b9610315949837fa8c11d86927b9bb044f8705419/pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:fa854f5cf7e33842a892e5c73f45327760bc7bc516339fda888c75ae60edaeb6", size = 2227034, upload_time = "2025-04-23T18:31:44.304Z" }, + { url = "https://files.pythonhosted.org/packages/27/b9/9c17f0396a82b3d5cbea4c24d742083422639e7bb1d5bf600e12cb176a13/pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:5f483cfb75ff703095c59e365360cb73e00185e01aaea067cd19acffd2ab20ea", size = 2234187, upload_time = "2025-04-23T18:31:45.891Z" }, + { url = "https://files.pythonhosted.org/packages/b0/6a/adf5734ffd52bf86d865093ad70b2ce543415e0e356f6cacabbc0d9ad910/pydantic_core-2.33.2-cp312-cp312-win32.whl", hash = "sha256:9cb1da0f5a471435a7bc7e439b8a728e8b61e59784b2af70d7c169f8dd8ae290", size = 1892628, upload_time = "2025-04-23T18:31:47.819Z" }, + { url = "https://files.pythonhosted.org/packages/43/e4/5479fecb3606c1368d496a825d8411e126133c41224c1e7238be58b87d7e/pydantic_core-2.33.2-cp312-cp312-win_amd64.whl", hash = "sha256:f941635f2a3d96b2973e867144fde513665c87f13fe0e193c158ac51bfaaa7b2", size = 1955866, upload_time = "2025-04-23T18:31:49.635Z" }, + { url = "https://files.pythonhosted.org/packages/0d/24/8b11e8b3e2be9dd82df4b11408a67c61bb4dc4f8e11b5b0fc888b38118b5/pydantic_core-2.33.2-cp312-cp312-win_arm64.whl", hash = "sha256:cca3868ddfaccfbc4bfb1d608e2ccaaebe0ae628e1416aeb9c4d88c001bb45ab", size = 1888894, upload_time = "2025-04-23T18:31:51.609Z" }, + { url = "https://files.pythonhosted.org/packages/46/8c/99040727b41f56616573a28771b1bfa08a3d3fe74d3d513f01251f79f172/pydantic_core-2.33.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:1082dd3e2d7109ad8b7da48e1d4710c8d06c253cbc4a27c1cff4fbcaa97a9e3f", size = 2015688, upload_time = "2025-04-23T18:31:53.175Z" }, + { url = "https://files.pythonhosted.org/packages/3a/cc/5999d1eb705a6cefc31f0b4a90e9f7fc400539b1a1030529700cc1b51838/pydantic_core-2.33.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f517ca031dfc037a9c07e748cefd8d96235088b83b4f4ba8939105d20fa1dcd6", size = 1844808, upload_time = "2025-04-23T18:31:54.79Z" }, + { url = "https://files.pythonhosted.org/packages/6f/5e/a0a7b8885c98889a18b6e376f344da1ef323d270b44edf8174d6bce4d622/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a9f2c9dd19656823cb8250b0724ee9c60a82f3cdf68a080979d13092a3b0fef", size = 1885580, upload_time = "2025-04-23T18:31:57.393Z" }, + { url = "https://files.pythonhosted.org/packages/3b/2a/953581f343c7d11a304581156618c3f592435523dd9d79865903272c256a/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2b0a451c263b01acebe51895bfb0e1cc842a5c666efe06cdf13846c7418caa9a", size = 1973859, upload_time = "2025-04-23T18:31:59.065Z" }, + { url = "https://files.pythonhosted.org/packages/e6/55/f1a813904771c03a3f97f676c62cca0c0a4138654107c1b61f19c644868b/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ea40a64d23faa25e62a70ad163571c0b342b8bf66d5fa612ac0dec4f069d916", size = 2120810, upload_time = "2025-04-23T18:32:00.78Z" }, + { url = "https://files.pythonhosted.org/packages/aa/c3/053389835a996e18853ba107a63caae0b9deb4a276c6b472931ea9ae6e48/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0fb2d542b4d66f9470e8065c5469ec676978d625a8b7a363f07d9a501a9cb36a", size = 2676498, upload_time = "2025-04-23T18:32:02.418Z" }, + { url = "https://files.pythonhosted.org/packages/eb/3c/f4abd740877a35abade05e437245b192f9d0ffb48bbbbd708df33d3cda37/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdac5d6ffa1b5a83bca06ffe7583f5576555e6c8b3a91fbd25ea7780f825f7d", size = 2000611, upload_time = "2025-04-23T18:32:04.152Z" }, + { url = "https://files.pythonhosted.org/packages/59/a7/63ef2fed1837d1121a894d0ce88439fe3e3b3e48c7543b2a4479eb99c2bd/pydantic_core-2.33.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:04a1a413977ab517154eebb2d326da71638271477d6ad87a769102f7c2488c56", size = 2107924, upload_time = "2025-04-23T18:32:06.129Z" }, + { url = "https://files.pythonhosted.org/packages/04/8f/2551964ef045669801675f1cfc3b0d74147f4901c3ffa42be2ddb1f0efc4/pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c8e7af2f4e0194c22b5b37205bfb293d166a7344a5b0d0eaccebc376546d77d5", size = 2063196, upload_time = "2025-04-23T18:32:08.178Z" }, + { url = "https://files.pythonhosted.org/packages/26/bd/d9602777e77fc6dbb0c7db9ad356e9a985825547dce5ad1d30ee04903918/pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:5c92edd15cd58b3c2d34873597a1e20f13094f59cf88068adb18947df5455b4e", size = 2236389, upload_time = "2025-04-23T18:32:10.242Z" }, + { url = "https://files.pythonhosted.org/packages/42/db/0e950daa7e2230423ab342ae918a794964b053bec24ba8af013fc7c94846/pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:65132b7b4a1c0beded5e057324b7e16e10910c106d43675d9bd87d4f38dde162", size = 2239223, upload_time = "2025-04-23T18:32:12.382Z" }, + { url = "https://files.pythonhosted.org/packages/58/4d/4f937099c545a8a17eb52cb67fe0447fd9a373b348ccfa9a87f141eeb00f/pydantic_core-2.33.2-cp313-cp313-win32.whl", hash = "sha256:52fb90784e0a242bb96ec53f42196a17278855b0f31ac7c3cc6f5c1ec4811849", size = 1900473, upload_time = "2025-04-23T18:32:14.034Z" }, + { url = "https://files.pythonhosted.org/packages/a0/75/4a0a9bac998d78d889def5e4ef2b065acba8cae8c93696906c3a91f310ca/pydantic_core-2.33.2-cp313-cp313-win_amd64.whl", hash = "sha256:c083a3bdd5a93dfe480f1125926afcdbf2917ae714bdb80b36d34318b2bec5d9", size = 1955269, upload_time = "2025-04-23T18:32:15.783Z" }, + { url = "https://files.pythonhosted.org/packages/f9/86/1beda0576969592f1497b4ce8e7bc8cbdf614c352426271b1b10d5f0aa64/pydantic_core-2.33.2-cp313-cp313-win_arm64.whl", hash = "sha256:e80b087132752f6b3d714f041ccf74403799d3b23a72722ea2e6ba2e892555b9", size = 1893921, upload_time = "2025-04-23T18:32:18.473Z" }, + { url = "https://files.pythonhosted.org/packages/a4/7d/e09391c2eebeab681df2b74bfe6c43422fffede8dc74187b2b0bf6fd7571/pydantic_core-2.33.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:61c18fba8e5e9db3ab908620af374db0ac1baa69f0f32df4f61ae23f15e586ac", size = 1806162, upload_time = "2025-04-23T18:32:20.188Z" }, + { url = "https://files.pythonhosted.org/packages/f1/3d/847b6b1fed9f8ed3bb95a9ad04fbd0b212e832d4f0f50ff4d9ee5a9f15cf/pydantic_core-2.33.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95237e53bb015f67b63c91af7518a62a8660376a6a0db19b89acc77a4d6199f5", size = 1981560, upload_time = "2025-04-23T18:32:22.354Z" }, + { url = "https://files.pythonhosted.org/packages/6f/9a/e73262f6c6656262b5fdd723ad90f518f579b7bc8622e43a942eec53c938/pydantic_core-2.33.2-cp313-cp313t-win_amd64.whl", hash = "sha256:c2fc0a768ef76c15ab9238afa6da7f69895bb5d1ee83aeea2e3509af4472d0b9", size = 1935777, upload_time = "2025-04-23T18:32:25.088Z" }, +] + +[[package]] +name = "pynwb" +version = "3.1.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "h5py" }, + { name = "hdmf" }, + { name = "numpy" }, + { name = "pandas" }, + { name = "platformdirs" }, + { name = "python-dateutil" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0a/24/4760bc06c17f7139b69edcafb40b3f28563c9c68a2d3ac5d1303575e5015/pynwb-3.1.2.tar.gz", hash = "sha256:4260be763a91c91c56f4bcbe4f782697f19c32938ecead708be0e3b60e2cdb81", size = 35672780, upload_time = "2025-08-13T20:47:34.647Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ce/da/dd488531f94ef5b5eac0b6e2ad845742895655ae82fd7fdf465f3399ad45/pynwb-3.1.2-py3-none-any.whl", hash = "sha256:90c3091937064c86c43933c49a85070fc67f2e7eec0b392ded2caa2e42195bd2", size = 1395141, upload_time = "2025-08-13T20:47:32.577Z" }, +] + +[[package]] +name = "pyout" +version = "0.8.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "blessed", marker = "sys_platform != 'win32'" }, + { name = "jsonschema" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a1/0e/87f3d9aef4211fe7e88ddabf01794bd15c9051cae44633bcf507bdd3837d/pyout-0.8.1.tar.gz", hash = "sha256:57b0e96a9beb2e20336bd5a265e369915e1c23f50048a7d448b3fab5d076d1d1", size = 46887, upload_time = "2025-02-22T14:58:09.616Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/46/bb/cf48ce5ba1481d568c5fb2b74ecc55e64207a7ee6444a3d0cb04f0410020/pyout-0.8.1-py3-none-any.whl", hash = "sha256:31708f9a1ea0009e92371c1e045541a1b01e22ec006e1cb2f3407ec99c036a10", size = 53080, upload_time = "2025-02-22T14:58:08.032Z" }, +] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +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, 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, upload_time = "2024-03-01T18:36:18.57Z" }, +] + +[[package]] +name = "pytz" +version = "2025.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f8/bf/abbd3cdfb8fbc7fb3d4d38d320f2441b1e7cbe29be4f23797b4a2b5d8aac/pytz-2025.2.tar.gz", hash = "sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3", size = 320884, upload_time = "2025-03-25T02:25:00.538Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/81/c4/34e93fe5f5429d7570ec1fa436f1986fb1f00c3e0f43a589fe2bbcd22c3f/pytz-2025.2-py2.py3-none-any.whl", hash = "sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00", size = 509225, upload_time = "2025-03-25T02:24:58.468Z" }, +] + +[[package]] +name = "pywin32-ctypes" +version = "0.2.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/85/9f/01a1a99704853cb63f253eea009390c88e7131c67e66a0a02099a8c917cb/pywin32-ctypes-0.2.3.tar.gz", hash = "sha256:d162dc04946d704503b2edc4d55f3dba5c1d539ead017afa00142c38b9885755", size = 29471, upload_time = "2024-08-14T10:15:34.626Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/de/3d/8161f7711c017e01ac9f008dfddd9410dff3674334c233bde66e7ba65bbf/pywin32_ctypes-0.2.3-py3-none-any.whl", hash = "sha256:8a1513379d709975552d202d942d9837758905c8d01eb82b8bcc30918929e7b8", size = 30756, upload_time = "2024-08-14T10:15:33.187Z" }, +] + +[[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, 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 = "referencing" +version = "0.36.2" +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/2f/db/98b5c277be99dd18bfd91dd04e1b759cad18d1a338188c936e92f921c7e2/referencing-0.36.2.tar.gz", hash = "sha256:df2e89862cd09deabbdba16944cc3f10feb6b3e6f18e902f7cc25609a34775aa", size = 74744, upload_time = "2025-01-25T08:48:16.138Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c1/b1/3baf80dc6d2b7bc27a95a67752d0208e410351e3feb4eb78de5f77454d8d/referencing-0.36.2-py3-none-any.whl", hash = "sha256:e8699adbbf8b5c7de96d8ffa0eb5c158b3beafce084968e2ea8bb08c6794dcd0", size = 26775, upload_time = "2025-01-25T08:48:14.241Z" }, +] + +[[package]] +name = "remfile" +version = "0.1.13" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "h5py" }, + { name = "numpy" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7c/d1/e9ae25f762f188d912440c9f595c94e3148e9f6994bb43b1794a199f5610/remfile-0.1.13.tar.gz", hash = "sha256:230795a0f903c2e0650dedbef14167ff714d64bb6ce22e9c5d835a9afbdfff55", size = 13267, upload_time = "2024-05-29T18:14:04.448Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3e/33/485cb65a071e2e15b86693e25467ada58164f00ec076b8e24191671004cb/remfile-0.1.13-py3-none-any.whl", hash = "sha256:1e87dacc76a4db9fbbcb7ccaaa275e6b428b7d4528d39b88f8d790e17d1b50c3", size = 11916, upload_time = "2024-05-29T18:14:02.876Z" }, +] + +[[package]] +name = "requests" +version = "2.32.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf", size = 134517, upload_time = "2025-08-18T20:46:02.573Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6", size = 64738, upload_time = "2025-08-18T20:46:00.542Z" }, +] + +[[package]] +name = "rfc3339-validator" +version = "0.1.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/28/ea/a9387748e2d111c3c2b275ba970b735e04e15cdb1eb30693b6b5708c4dbd/rfc3339_validator-0.1.4.tar.gz", hash = "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b", size = 5513, upload_time = "2021-05-12T16:37:54.178Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7b/44/4e421b96b67b2daff264473f7465db72fbdf36a07e05494f50300cc7b0c6/rfc3339_validator-0.1.4-py2.py3-none-any.whl", hash = "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa", size = 3490, upload_time = "2021-05-12T16:37:52.536Z" }, +] + +[[package]] +name = "rfc3987" +version = "1.3.8" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/14/bb/f1395c4b62f251a1cb503ff884500ebd248eed593f41b469f89caa3547bd/rfc3987-1.3.8.tar.gz", hash = "sha256:d3c4d257a560d544e9826b38bc81db676890c79ab9d7ac92b39c7a253d5ca733", size = 20700, upload_time = "2018-07-29T17:23:47.954Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/65/d4/f7407c3d15d5ac779c3dd34fbbc6ea2090f77bd7dd12f207ccf881551208/rfc3987-1.3.8-py2.py3-none-any.whl", hash = "sha256:10702b1e51e5658843460b189b185c0366d2cf4cff716f13111b0ea9fd2dce53", size = 13377, upload_time = "2018-07-29T17:23:45.313Z" }, +] + +[[package]] +name = "rpds-py" +version = "0.27.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e9/dd/2c0cbe774744272b0ae725f44032c77bdcab6e8bcf544bffa3b6e70c8dba/rpds_py-0.27.1.tar.gz", hash = "sha256:26a1c73171d10b7acccbded82bf6a586ab8203601e565badc74bbbf8bc5a10f8", size = 27479, upload_time = "2025-08-27T12:16:36.024Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bd/fe/38de28dee5df58b8198c743fe2bea0c785c6d40941b9950bac4cdb71a014/rpds_py-0.27.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:ae2775c1973e3c30316892737b91f9283f9908e3cc7625b9331271eaaed7dc90", size = 361887, upload_time = "2025-08-27T12:13:10.233Z" }, + { url = "https://files.pythonhosted.org/packages/7c/9a/4b6c7eedc7dd90986bf0fab6ea2a091ec11c01b15f8ba0a14d3f80450468/rpds_py-0.27.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2643400120f55c8a96f7c9d858f7be0c88d383cd4653ae2cf0d0c88f668073e5", size = 345795, upload_time = "2025-08-27T12:13:11.65Z" }, + { url = "https://files.pythonhosted.org/packages/6f/0e/e650e1b81922847a09cca820237b0edee69416a01268b7754d506ade11ad/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:16323f674c089b0360674a4abd28d5042947d54ba620f72514d69be4ff64845e", size = 385121, upload_time = "2025-08-27T12:13:13.008Z" }, + { url = "https://files.pythonhosted.org/packages/1b/ea/b306067a712988e2bff00dcc7c8f31d26c29b6d5931b461aa4b60a013e33/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9a1f4814b65eacac94a00fc9a526e3fdafd78e439469644032032d0d63de4881", size = 398976, upload_time = "2025-08-27T12:13:14.368Z" }, + { url = "https://files.pythonhosted.org/packages/2c/0a/26dc43c8840cb8fe239fe12dbc8d8de40f2365e838f3d395835dde72f0e5/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7ba32c16b064267b22f1850a34051121d423b6f7338a12b9459550eb2096e7ec", size = 525953, upload_time = "2025-08-27T12:13:15.774Z" }, + { url = "https://files.pythonhosted.org/packages/22/14/c85e8127b573aaf3a0cbd7fbb8c9c99e735a4a02180c84da2a463b766e9e/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5c20f33fd10485b80f65e800bbe5f6785af510b9f4056c5a3c612ebc83ba6cb", size = 407915, upload_time = "2025-08-27T12:13:17.379Z" }, + { url = "https://files.pythonhosted.org/packages/ed/7b/8f4fee9ba1fb5ec856eb22d725a4efa3deb47f769597c809e03578b0f9d9/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:466bfe65bd932da36ff279ddd92de56b042f2266d752719beb97b08526268ec5", size = 386883, upload_time = "2025-08-27T12:13:18.704Z" }, + { url = "https://files.pythonhosted.org/packages/86/47/28fa6d60f8b74fcdceba81b272f8d9836ac0340570f68f5df6b41838547b/rpds_py-0.27.1-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:41e532bbdcb57c92ba3be62c42e9f096431b4cf478da9bc3bc6ce5c38ab7ba7a", size = 405699, upload_time = "2025-08-27T12:13:20.089Z" }, + { url = "https://files.pythonhosted.org/packages/d0/fd/c5987b5e054548df56953a21fe2ebed51fc1ec7c8f24fd41c067b68c4a0a/rpds_py-0.27.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f149826d742b406579466283769a8ea448eed82a789af0ed17b0cd5770433444", size = 423713, upload_time = "2025-08-27T12:13:21.436Z" }, + { url = "https://files.pythonhosted.org/packages/ac/ba/3c4978b54a73ed19a7d74531be37a8bcc542d917c770e14d372b8daea186/rpds_py-0.27.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:80c60cfb5310677bd67cb1e85a1e8eb52e12529545441b43e6f14d90b878775a", size = 562324, upload_time = "2025-08-27T12:13:22.789Z" }, + { url = "https://files.pythonhosted.org/packages/b5/6c/6943a91768fec16db09a42b08644b960cff540c66aab89b74be6d4a144ba/rpds_py-0.27.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:7ee6521b9baf06085f62ba9c7a3e5becffbc32480d2f1b351559c001c38ce4c1", size = 593646, upload_time = "2025-08-27T12:13:24.122Z" }, + { url = "https://files.pythonhosted.org/packages/11/73/9d7a8f4be5f4396f011a6bb7a19fe26303a0dac9064462f5651ced2f572f/rpds_py-0.27.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a512c8263249a9d68cac08b05dd59d2b3f2061d99b322813cbcc14c3c7421998", size = 558137, upload_time = "2025-08-27T12:13:25.557Z" }, + { url = "https://files.pythonhosted.org/packages/6e/96/6772cbfa0e2485bcceef8071de7821f81aeac8bb45fbfd5542a3e8108165/rpds_py-0.27.1-cp312-cp312-win32.whl", hash = "sha256:819064fa048ba01b6dadc5116f3ac48610435ac9a0058bbde98e569f9e785c39", size = 221343, upload_time = "2025-08-27T12:13:26.967Z" }, + { url = "https://files.pythonhosted.org/packages/67/b6/c82f0faa9af1c6a64669f73a17ee0eeef25aff30bb9a1c318509efe45d84/rpds_py-0.27.1-cp312-cp312-win_amd64.whl", hash = "sha256:d9199717881f13c32c4046a15f024971a3b78ad4ea029e8da6b86e5aa9cf4594", size = 232497, upload_time = "2025-08-27T12:13:28.326Z" }, + { url = "https://files.pythonhosted.org/packages/e1/96/2817b44bd2ed11aebacc9251da03689d56109b9aba5e311297b6902136e2/rpds_py-0.27.1-cp312-cp312-win_arm64.whl", hash = "sha256:33aa65b97826a0e885ef6e278fbd934e98cdcfed80b63946025f01e2f5b29502", size = 222790, upload_time = "2025-08-27T12:13:29.71Z" }, + { url = "https://files.pythonhosted.org/packages/cc/77/610aeee8d41e39080c7e14afa5387138e3c9fa9756ab893d09d99e7d8e98/rpds_py-0.27.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:e4b9fcfbc021633863a37e92571d6f91851fa656f0180246e84cbd8b3f6b329b", size = 361741, upload_time = "2025-08-27T12:13:31.039Z" }, + { url = "https://files.pythonhosted.org/packages/3a/fc/c43765f201c6a1c60be2043cbdb664013def52460a4c7adace89d6682bf4/rpds_py-0.27.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1441811a96eadca93c517d08df75de45e5ffe68aa3089924f963c782c4b898cf", size = 345574, upload_time = "2025-08-27T12:13:32.902Z" }, + { url = "https://files.pythonhosted.org/packages/20/42/ee2b2ca114294cd9847d0ef9c26d2b0851b2e7e00bf14cc4c0b581df0fc3/rpds_py-0.27.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55266dafa22e672f5a4f65019015f90336ed31c6383bd53f5e7826d21a0e0b83", size = 385051, upload_time = "2025-08-27T12:13:34.228Z" }, + { url = "https://files.pythonhosted.org/packages/fd/e8/1e430fe311e4799e02e2d1af7c765f024e95e17d651612425b226705f910/rpds_py-0.27.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d78827d7ac08627ea2c8e02c9e5b41180ea5ea1f747e9db0915e3adf36b62dcf", size = 398395, upload_time = "2025-08-27T12:13:36.132Z" }, + { url = "https://files.pythonhosted.org/packages/82/95/9dc227d441ff2670651c27a739acb2535ccaf8b351a88d78c088965e5996/rpds_py-0.27.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae92443798a40a92dc5f0b01d8a7c93adde0c4dc965310a29ae7c64d72b9fad2", size = 524334, upload_time = "2025-08-27T12:13:37.562Z" }, + { url = "https://files.pythonhosted.org/packages/87/01/a670c232f401d9ad461d9a332aa4080cd3cb1d1df18213dbd0d2a6a7ab51/rpds_py-0.27.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c46c9dd2403b66a2a3b9720ec4b74d4ab49d4fabf9f03dfdce2d42af913fe8d0", size = 407691, upload_time = "2025-08-27T12:13:38.94Z" }, + { url = "https://files.pythonhosted.org/packages/03/36/0a14aebbaa26fe7fab4780c76f2239e76cc95a0090bdb25e31d95c492fcd/rpds_py-0.27.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2efe4eb1d01b7f5f1939f4ef30ecea6c6b3521eec451fb93191bf84b2a522418", size = 386868, upload_time = "2025-08-27T12:13:40.192Z" }, + { url = "https://files.pythonhosted.org/packages/3b/03/8c897fb8b5347ff6c1cc31239b9611c5bf79d78c984430887a353e1409a1/rpds_py-0.27.1-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:15d3b4d83582d10c601f481eca29c3f138d44c92187d197aff663a269197c02d", size = 405469, upload_time = "2025-08-27T12:13:41.496Z" }, + { url = "https://files.pythonhosted.org/packages/da/07/88c60edc2df74850d496d78a1fdcdc7b54360a7f610a4d50008309d41b94/rpds_py-0.27.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4ed2e16abbc982a169d30d1a420274a709949e2cbdef119fe2ec9d870b42f274", size = 422125, upload_time = "2025-08-27T12:13:42.802Z" }, + { url = "https://files.pythonhosted.org/packages/6b/86/5f4c707603e41b05f191a749984f390dabcbc467cf833769b47bf14ba04f/rpds_py-0.27.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a75f305c9b013289121ec0f1181931975df78738cdf650093e6b86d74aa7d8dd", size = 562341, upload_time = "2025-08-27T12:13:44.472Z" }, + { url = "https://files.pythonhosted.org/packages/b2/92/3c0cb2492094e3cd9baf9e49bbb7befeceb584ea0c1a8b5939dca4da12e5/rpds_py-0.27.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:67ce7620704745881a3d4b0ada80ab4d99df390838839921f99e63c474f82cf2", size = 592511, upload_time = "2025-08-27T12:13:45.898Z" }, + { url = "https://files.pythonhosted.org/packages/10/bb/82e64fbb0047c46a168faa28d0d45a7851cd0582f850b966811d30f67ad8/rpds_py-0.27.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9d992ac10eb86d9b6f369647b6a3f412fc0075cfd5d799530e84d335e440a002", size = 557736, upload_time = "2025-08-27T12:13:47.408Z" }, + { url = "https://files.pythonhosted.org/packages/00/95/3c863973d409210da7fb41958172c6b7dbe7fc34e04d3cc1f10bb85e979f/rpds_py-0.27.1-cp313-cp313-win32.whl", hash = "sha256:4f75e4bd8ab8db624e02c8e2fc4063021b58becdbe6df793a8111d9343aec1e3", size = 221462, upload_time = "2025-08-27T12:13:48.742Z" }, + { url = "https://files.pythonhosted.org/packages/ce/2c/5867b14a81dc217b56d95a9f2a40fdbc56a1ab0181b80132beeecbd4b2d6/rpds_py-0.27.1-cp313-cp313-win_amd64.whl", hash = "sha256:f9025faafc62ed0b75a53e541895ca272815bec18abe2249ff6501c8f2e12b83", size = 232034, upload_time = "2025-08-27T12:13:50.11Z" }, + { url = "https://files.pythonhosted.org/packages/c7/78/3958f3f018c01923823f1e47f1cc338e398814b92d83cd278364446fac66/rpds_py-0.27.1-cp313-cp313-win_arm64.whl", hash = "sha256:ed10dc32829e7d222b7d3b93136d25a406ba9788f6a7ebf6809092da1f4d279d", size = 222392, upload_time = "2025-08-27T12:13:52.587Z" }, + { url = "https://files.pythonhosted.org/packages/01/76/1cdf1f91aed5c3a7bf2eba1f1c4e4d6f57832d73003919a20118870ea659/rpds_py-0.27.1-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:92022bbbad0d4426e616815b16bc4127f83c9a74940e1ccf3cfe0b387aba0228", size = 358355, upload_time = "2025-08-27T12:13:54.012Z" }, + { url = "https://files.pythonhosted.org/packages/c3/6f/bf142541229374287604caf3bb2a4ae17f0a580798fd72d3b009b532db4e/rpds_py-0.27.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:47162fdab9407ec3f160805ac3e154df042e577dd53341745fc7fb3f625e6d92", size = 342138, upload_time = "2025-08-27T12:13:55.791Z" }, + { url = "https://files.pythonhosted.org/packages/1a/77/355b1c041d6be40886c44ff5e798b4e2769e497b790f0f7fd1e78d17e9a8/rpds_py-0.27.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb89bec23fddc489e5d78b550a7b773557c9ab58b7946154a10a6f7a214a48b2", size = 380247, upload_time = "2025-08-27T12:13:57.683Z" }, + { url = "https://files.pythonhosted.org/packages/d6/a4/d9cef5c3946ea271ce2243c51481971cd6e34f21925af2783dd17b26e815/rpds_py-0.27.1-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e48af21883ded2b3e9eb48cb7880ad8598b31ab752ff3be6457001d78f416723", size = 390699, upload_time = "2025-08-27T12:13:59.137Z" }, + { url = "https://files.pythonhosted.org/packages/3a/06/005106a7b8c6c1a7e91b73169e49870f4af5256119d34a361ae5240a0c1d/rpds_py-0.27.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6f5b7bd8e219ed50299e58551a410b64daafb5017d54bbe822e003856f06a802", size = 521852, upload_time = "2025-08-27T12:14:00.583Z" }, + { url = "https://files.pythonhosted.org/packages/e5/3e/50fb1dac0948e17a02eb05c24510a8fe12d5ce8561c6b7b7d1339ab7ab9c/rpds_py-0.27.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:08f1e20bccf73b08d12d804d6e1c22ca5530e71659e6673bce31a6bb71c1e73f", size = 402582, upload_time = "2025-08-27T12:14:02.034Z" }, + { url = "https://files.pythonhosted.org/packages/cb/b0/f4e224090dc5b0ec15f31a02d746ab24101dd430847c4d99123798661bfc/rpds_py-0.27.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0dc5dceeaefcc96dc192e3a80bbe1d6c410c469e97bdd47494a7d930987f18b2", size = 384126, upload_time = "2025-08-27T12:14:03.437Z" }, + { url = "https://files.pythonhosted.org/packages/54/77/ac339d5f82b6afff1df8f0fe0d2145cc827992cb5f8eeb90fc9f31ef7a63/rpds_py-0.27.1-cp313-cp313t-manylinux_2_31_riscv64.whl", hash = "sha256:d76f9cc8665acdc0c9177043746775aa7babbf479b5520b78ae4002d889f5c21", size = 399486, upload_time = "2025-08-27T12:14:05.443Z" }, + { url = "https://files.pythonhosted.org/packages/d6/29/3e1c255eee6ac358c056a57d6d6869baa00a62fa32eea5ee0632039c50a3/rpds_py-0.27.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:134fae0e36022edad8290a6661edf40c023562964efea0cc0ec7f5d392d2aaef", size = 414832, upload_time = "2025-08-27T12:14:06.902Z" }, + { url = "https://files.pythonhosted.org/packages/3f/db/6d498b844342deb3fa1d030598db93937a9964fcf5cb4da4feb5f17be34b/rpds_py-0.27.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:eb11a4f1b2b63337cfd3b4d110af778a59aae51c81d195768e353d8b52f88081", size = 557249, upload_time = "2025-08-27T12:14:08.37Z" }, + { url = "https://files.pythonhosted.org/packages/60/f3/690dd38e2310b6f68858a331399b4d6dbb9132c3e8ef8b4333b96caf403d/rpds_py-0.27.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:13e608ac9f50a0ed4faec0e90ece76ae33b34c0e8656e3dceb9a7db994c692cd", size = 587356, upload_time = "2025-08-27T12:14:10.034Z" }, + { url = "https://files.pythonhosted.org/packages/86/e3/84507781cccd0145f35b1dc32c72675200c5ce8d5b30f813e49424ef68fc/rpds_py-0.27.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:dd2135527aa40f061350c3f8f89da2644de26cd73e4de458e79606384f4f68e7", size = 555300, upload_time = "2025-08-27T12:14:11.783Z" }, + { url = "https://files.pythonhosted.org/packages/e5/ee/375469849e6b429b3516206b4580a79e9ef3eb12920ddbd4492b56eaacbe/rpds_py-0.27.1-cp313-cp313t-win32.whl", hash = "sha256:3020724ade63fe320a972e2ffd93b5623227e684315adce194941167fee02688", size = 216714, upload_time = "2025-08-27T12:14:13.629Z" }, + { url = "https://files.pythonhosted.org/packages/21/87/3fc94e47c9bd0742660e84706c311a860dcae4374cf4a03c477e23ce605a/rpds_py-0.27.1-cp313-cp313t-win_amd64.whl", hash = "sha256:8ee50c3e41739886606388ba3ab3ee2aae9f35fb23f833091833255a31740797", size = 228943, upload_time = "2025-08-27T12:14:14.937Z" }, + { url = "https://files.pythonhosted.org/packages/70/36/b6e6066520a07cf029d385de869729a895917b411e777ab1cde878100a1d/rpds_py-0.27.1-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:acb9aafccaae278f449d9c713b64a9e68662e7799dbd5859e2c6b3c67b56d334", size = 362472, upload_time = "2025-08-27T12:14:16.333Z" }, + { url = "https://files.pythonhosted.org/packages/af/07/b4646032e0dcec0df9c73a3bd52f63bc6c5f9cda992f06bd0e73fe3fbebd/rpds_py-0.27.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:b7fb801aa7f845ddf601c49630deeeccde7ce10065561d92729bfe81bd21fb33", size = 345676, upload_time = "2025-08-27T12:14:17.764Z" }, + { url = "https://files.pythonhosted.org/packages/b0/16/2f1003ee5d0af4bcb13c0cf894957984c32a6751ed7206db2aee7379a55e/rpds_py-0.27.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fe0dd05afb46597b9a2e11c351e5e4283c741237e7f617ffb3252780cca9336a", size = 385313, upload_time = "2025-08-27T12:14:19.829Z" }, + { url = "https://files.pythonhosted.org/packages/05/cd/7eb6dd7b232e7f2654d03fa07f1414d7dfc980e82ba71e40a7c46fd95484/rpds_py-0.27.1-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b6dfb0e058adb12d8b1d1b25f686e94ffa65d9995a5157afe99743bf7369d62b", size = 399080, upload_time = "2025-08-27T12:14:21.531Z" }, + { url = "https://files.pythonhosted.org/packages/20/51/5829afd5000ec1cb60f304711f02572d619040aa3ec033d8226817d1e571/rpds_py-0.27.1-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ed090ccd235f6fa8bb5861684567f0a83e04f52dfc2e5c05f2e4b1309fcf85e7", size = 523868, upload_time = "2025-08-27T12:14:23.485Z" }, + { url = "https://files.pythonhosted.org/packages/05/2c/30eebca20d5db95720ab4d2faec1b5e4c1025c473f703738c371241476a2/rpds_py-0.27.1-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bf876e79763eecf3e7356f157540d6a093cef395b65514f17a356f62af6cc136", size = 408750, upload_time = "2025-08-27T12:14:24.924Z" }, + { url = "https://files.pythonhosted.org/packages/90/1a/cdb5083f043597c4d4276eae4e4c70c55ab5accec078da8611f24575a367/rpds_py-0.27.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:12ed005216a51b1d6e2b02a7bd31885fe317e45897de81d86dcce7d74618ffff", size = 387688, upload_time = "2025-08-27T12:14:27.537Z" }, + { url = "https://files.pythonhosted.org/packages/7c/92/cf786a15320e173f945d205ab31585cc43969743bb1a48b6888f7a2b0a2d/rpds_py-0.27.1-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:ee4308f409a40e50593c7e3bb8cbe0b4d4c66d1674a316324f0c2f5383b486f9", size = 407225, upload_time = "2025-08-27T12:14:28.981Z" }, + { url = "https://files.pythonhosted.org/packages/33/5c/85ee16df5b65063ef26017bef33096557a4c83fbe56218ac7cd8c235f16d/rpds_py-0.27.1-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0b08d152555acf1f455154d498ca855618c1378ec810646fcd7c76416ac6dc60", size = 423361, upload_time = "2025-08-27T12:14:30.469Z" }, + { url = "https://files.pythonhosted.org/packages/4b/8e/1c2741307fcabd1a334ecf008e92c4f47bb6f848712cf15c923becfe82bb/rpds_py-0.27.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:dce51c828941973a5684d458214d3a36fcd28da3e1875d659388f4f9f12cc33e", size = 562493, upload_time = "2025-08-27T12:14:31.987Z" }, + { url = "https://files.pythonhosted.org/packages/04/03/5159321baae9b2222442a70c1f988cbbd66b9be0675dd3936461269be360/rpds_py-0.27.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:c1476d6f29eb81aa4151c9a31219b03f1f798dc43d8af1250a870735516a1212", size = 592623, upload_time = "2025-08-27T12:14:33.543Z" }, + { url = "https://files.pythonhosted.org/packages/ff/39/c09fd1ad28b85bc1d4554a8710233c9f4cefd03d7717a1b8fbfd171d1167/rpds_py-0.27.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:3ce0cac322b0d69b63c9cdb895ee1b65805ec9ffad37639f291dd79467bee675", size = 558800, upload_time = "2025-08-27T12:14:35.436Z" }, + { url = "https://files.pythonhosted.org/packages/c5/d6/99228e6bbcf4baa764b18258f519a9035131d91b538d4e0e294313462a98/rpds_py-0.27.1-cp314-cp314-win32.whl", hash = "sha256:dfbfac137d2a3d0725758cd141f878bf4329ba25e34979797c89474a89a8a3a3", size = 221943, upload_time = "2025-08-27T12:14:36.898Z" }, + { url = "https://files.pythonhosted.org/packages/be/07/c802bc6b8e95be83b79bdf23d1aa61d68324cb1006e245d6c58e959e314d/rpds_py-0.27.1-cp314-cp314-win_amd64.whl", hash = "sha256:a6e57b0abfe7cc513450fcf529eb486b6e4d3f8aee83e92eb5f1ef848218d456", size = 233739, upload_time = "2025-08-27T12:14:38.386Z" }, + { url = "https://files.pythonhosted.org/packages/c8/89/3e1b1c16d4c2d547c5717377a8df99aee8099ff050f87c45cb4d5fa70891/rpds_py-0.27.1-cp314-cp314-win_arm64.whl", hash = "sha256:faf8d146f3d476abfee026c4ae3bdd9ca14236ae4e4c310cbd1cf75ba33d24a3", size = 223120, upload_time = "2025-08-27T12:14:39.82Z" }, + { url = "https://files.pythonhosted.org/packages/62/7e/dc7931dc2fa4a6e46b2a4fa744a9fe5c548efd70e0ba74f40b39fa4a8c10/rpds_py-0.27.1-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:ba81d2b56b6d4911ce735aad0a1d4495e808b8ee4dc58715998741a26874e7c2", size = 358944, upload_time = "2025-08-27T12:14:41.199Z" }, + { url = "https://files.pythonhosted.org/packages/e6/22/4af76ac4e9f336bfb1a5f240d18a33c6b2fcaadb7472ac7680576512b49a/rpds_py-0.27.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:84f7d509870098de0e864cad0102711c1e24e9b1a50ee713b65928adb22269e4", size = 342283, upload_time = "2025-08-27T12:14:42.699Z" }, + { url = "https://files.pythonhosted.org/packages/1c/15/2a7c619b3c2272ea9feb9ade67a45c40b3eeb500d503ad4c28c395dc51b4/rpds_py-0.27.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9e960fc78fecd1100539f14132425e1d5fe44ecb9239f8f27f079962021523e", size = 380320, upload_time = "2025-08-27T12:14:44.157Z" }, + { url = "https://files.pythonhosted.org/packages/a2/7d/4c6d243ba4a3057e994bb5bedd01b5c963c12fe38dde707a52acdb3849e7/rpds_py-0.27.1-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:62f85b665cedab1a503747617393573995dac4600ff51869d69ad2f39eb5e817", size = 391760, upload_time = "2025-08-27T12:14:45.845Z" }, + { url = "https://files.pythonhosted.org/packages/b4/71/b19401a909b83bcd67f90221330bc1ef11bc486fe4e04c24388d28a618ae/rpds_py-0.27.1-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fed467af29776f6556250c9ed85ea5a4dd121ab56a5f8b206e3e7a4c551e48ec", size = 522476, upload_time = "2025-08-27T12:14:47.364Z" }, + { url = "https://files.pythonhosted.org/packages/e4/44/1a3b9715c0455d2e2f0f6df5ee6d6f5afdc423d0773a8a682ed2b43c566c/rpds_py-0.27.1-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f2729615f9d430af0ae6b36cf042cb55c0936408d543fb691e1a9e36648fd35a", size = 403418, upload_time = "2025-08-27T12:14:49.991Z" }, + { url = "https://files.pythonhosted.org/packages/1c/4b/fb6c4f14984eb56673bc868a66536f53417ddb13ed44b391998100a06a96/rpds_py-0.27.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1b207d881a9aef7ba753d69c123a35d96ca7cb808056998f6b9e8747321f03b8", size = 384771, upload_time = "2025-08-27T12:14:52.159Z" }, + { url = "https://files.pythonhosted.org/packages/c0/56/d5265d2d28b7420d7b4d4d85cad8ef891760f5135102e60d5c970b976e41/rpds_py-0.27.1-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:639fd5efec029f99b79ae47e5d7e00ad8a773da899b6309f6786ecaf22948c48", size = 400022, upload_time = "2025-08-27T12:14:53.859Z" }, + { url = "https://files.pythonhosted.org/packages/8f/e9/9f5fc70164a569bdd6ed9046486c3568d6926e3a49bdefeeccfb18655875/rpds_py-0.27.1-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fecc80cb2a90e28af8a9b366edacf33d7a91cbfe4c2c4544ea1246e949cfebeb", size = 416787, upload_time = "2025-08-27T12:14:55.673Z" }, + { url = "https://files.pythonhosted.org/packages/d4/64/56dd03430ba491db943a81dcdef115a985aac5f44f565cd39a00c766d45c/rpds_py-0.27.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:42a89282d711711d0a62d6f57d81aa43a1368686c45bc1c46b7f079d55692734", size = 557538, upload_time = "2025-08-27T12:14:57.245Z" }, + { url = "https://files.pythonhosted.org/packages/3f/36/92cc885a3129993b1d963a2a42ecf64e6a8e129d2c7cc980dbeba84e55fb/rpds_py-0.27.1-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:cf9931f14223de59551ab9d38ed18d92f14f055a5f78c1d8ad6493f735021bbb", size = 588512, upload_time = "2025-08-27T12:14:58.728Z" }, + { url = "https://files.pythonhosted.org/packages/dd/10/6b283707780a81919f71625351182b4f98932ac89a09023cb61865136244/rpds_py-0.27.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:f39f58a27cc6e59f432b568ed8429c7e1641324fbe38131de852cd77b2d534b0", size = 555813, upload_time = "2025-08-27T12:15:00.334Z" }, + { url = "https://files.pythonhosted.org/packages/04/2e/30b5ea18c01379da6272a92825dd7e53dc9d15c88a19e97932d35d430ef7/rpds_py-0.27.1-cp314-cp314t-win32.whl", hash = "sha256:d5fa0ee122dc09e23607a28e6d7b150da16c662e66409bbe85230e4c85bb528a", size = 217385, upload_time = "2025-08-27T12:15:01.937Z" }, + { url = "https://files.pythonhosted.org/packages/32/7d/97119da51cb1dd3f2f3c0805f155a3aa4a95fa44fe7d78ae15e69edf4f34/rpds_py-0.27.1-cp314-cp314t-win_amd64.whl", hash = "sha256:6567d2bb951e21232c2f660c24cf3470bb96de56cdcb3f071a83feeaff8a2772", size = 230097, upload_time = "2025-08-27T12:15:03.961Z" }, +] + +[[package]] +name = "ruamel-yaml" +version = "0.18.15" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ruamel-yaml-clib", marker = "python_full_version < '3.14' and platform_python_implementation == 'CPython'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3e/db/f3950f5e5031b618aae9f423a39bf81a55c148aecd15a34527898e752cf4/ruamel.yaml-0.18.15.tar.gz", hash = "sha256:dbfca74b018c4c3fba0b9cc9ee33e53c371194a9000e694995e620490fd40700", size = 146865, upload_time = "2025-08-19T11:15:10.694Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/e5/f2a0621f1781b76a38194acae72f01e37b1941470407345b6e8653ad7640/ruamel.yaml-0.18.15-py3-none-any.whl", hash = "sha256:148f6488d698b7a5eded5ea793a025308b25eca97208181b6a026037f391f701", size = 119702, upload_time = "2025-08-19T11:15:07.696Z" }, +] + +[[package]] +name = "ruamel-yaml-clib" +version = "0.2.14" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/e9/39ec4d4b3f91188fad1842748f67d4e749c77c37e353c4e545052ee8e893/ruamel.yaml.clib-0.2.14.tar.gz", hash = "sha256:803f5044b13602d58ea378576dd75aa759f52116a0232608e8fdada4da33752e", size = 225394, upload_time = "2025-09-22T19:51:23.753Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b4/42/ccfb34a25289afbbc42017e4d3d4288e61d35b2e00cfc6b92974a6a1f94b/ruamel.yaml.clib-0.2.14-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:6aeadc170090ff1889f0d2c3057557f9cd71f975f17535c26a5d37af98f19c27", size = 271775, upload_time = "2025-09-23T14:24:12.771Z" }, + { url = "https://files.pythonhosted.org/packages/82/73/e628a92e80197ff6a79ab81ec3fa00d4cc082d58ab78d3337b7ba7043301/ruamel.yaml.clib-0.2.14-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:5e56ac47260c0eed992789fa0b8efe43404a9adb608608631a948cee4fc2b052", size = 138842, upload_time = "2025-09-22T19:50:49.156Z" }, + { url = "https://files.pythonhosted.org/packages/2b/c5/346c7094344a60419764b4b1334d9e0285031c961176ff88ffb652405b0c/ruamel.yaml.clib-0.2.14-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:a911aa73588d9a8b08d662b9484bc0567949529824a55d3885b77e8dd62a127a", size = 647404, upload_time = "2025-09-22T19:50:52.921Z" }, + { url = "https://files.pythonhosted.org/packages/df/99/65080c863eb06d4498de3d6c86f3e90595e02e159fd8529f1565f56cfe2c/ruamel.yaml.clib-0.2.14-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a05ba88adf3d7189a974b2de7a9d56731548d35dc0a822ec3dc669caa7019b29", size = 753141, upload_time = "2025-09-22T19:50:50.294Z" }, + { url = "https://files.pythonhosted.org/packages/3d/e3/0de85f3e3333f8e29e4b10244374a202a87665d1131798946ee22cf05c7c/ruamel.yaml.clib-0.2.14-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fb04c5650de6668b853623eceadcdb1a9f2fee381f5d7b6bc842ee7c239eeec4", size = 703477, upload_time = "2025-09-22T19:50:51.508Z" }, + { url = "https://files.pythonhosted.org/packages/d9/25/0d2f09d8833c7fd77ab8efeff213093c16856479a9d293180a0d89f6bed9/ruamel.yaml.clib-0.2.14-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:df3ec9959241d07bc261f4983d25a1205ff37703faf42b474f15d54d88b4f8c9", size = 741157, upload_time = "2025-09-23T18:42:50.408Z" }, + { url = "https://files.pythonhosted.org/packages/d3/8c/959f10c2e2153cbdab834c46e6954b6dd9e3b109c8f8c0a3cf1618310985/ruamel.yaml.clib-0.2.14-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:fbc08c02e9b147a11dfcaa1ac8a83168b699863493e183f7c0c8b12850b7d259", size = 745859, upload_time = "2025-09-22T19:50:54.497Z" }, + { url = "https://files.pythonhosted.org/packages/ed/6b/e580a7c18b485e1a5f30a32cda96b20364b0ba649d9d2baaf72f8bd21f83/ruamel.yaml.clib-0.2.14-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c099cafc1834d3c5dac305865d04235f7c21c167c8dd31ebc3d6bbc357e2f023", size = 770200, upload_time = "2025-09-22T19:50:55.718Z" }, + { url = "https://files.pythonhosted.org/packages/ef/44/3455eebc761dc8e8fdced90f2b0a3fa61e32ba38b50de4130e2d57db0f21/ruamel.yaml.clib-0.2.14-cp312-cp312-win32.whl", hash = "sha256:b5b0f7e294700b615a3bcf6d28b26e6da94e8eba63b079f4ec92e9ba6c0d6b54", size = 98829, upload_time = "2025-09-22T19:50:58.895Z" }, + { url = "https://files.pythonhosted.org/packages/76/ab/5121f7f3b651db93de546f8c982c241397aad0a4765d793aca1dac5eadee/ruamel.yaml.clib-0.2.14-cp312-cp312-win_amd64.whl", hash = "sha256:a37f40a859b503304dd740686359fcf541d6fb3ff7fc10f539af7f7150917c68", size = 115570, upload_time = "2025-09-22T19:50:57.981Z" }, + { url = "https://files.pythonhosted.org/packages/d7/ae/e3811f05415594025e96000349d3400978adaed88d8f98d494352d9761ee/ruamel.yaml.clib-0.2.14-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7e4f9da7e7549946e02a6122dcad00b7c1168513acb1f8a726b1aaf504a99d32", size = 269205, upload_time = "2025-09-23T14:24:15.06Z" }, + { url = "https://files.pythonhosted.org/packages/72/06/7d51f4688d6d72bb72fa74254e1593c4f5ebd0036be5b41fe39315b275e9/ruamel.yaml.clib-0.2.14-cp313-cp313-macosx_15_0_arm64.whl", hash = "sha256:dd7546c851e59c06197a7c651335755e74aa383a835878ca86d2c650c07a2f85", size = 137417, upload_time = "2025-09-22T19:50:59.82Z" }, + { url = "https://files.pythonhosted.org/packages/5a/08/b4499234a420ef42960eeb05585df5cc7eb25ccb8c980490b079e6367050/ruamel.yaml.clib-0.2.14-cp313-cp313-manylinux2014_aarch64.whl", hash = "sha256:1c1acc3a0209ea9042cc3cfc0790edd2eddd431a2ec3f8283d081e4d5018571e", size = 642558, upload_time = "2025-09-22T19:51:03.388Z" }, + { url = "https://files.pythonhosted.org/packages/b6/ba/1975a27dedf1c4c33306ee67c948121be8710b19387aada29e2f139c43ee/ruamel.yaml.clib-0.2.14-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2070bf0ad1540d5c77a664de07ebcc45eebd1ddcab71a7a06f26936920692beb", size = 744087, upload_time = "2025-09-22T19:51:00.897Z" }, + { url = "https://files.pythonhosted.org/packages/20/15/8a19a13d27f3bd09fa18813add8380a29115a47b553845f08802959acbce/ruamel.yaml.clib-0.2.14-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9bd8fe07f49c170e09d76773fb86ad9135e0beee44f36e1576a201b0676d3d1d", size = 699709, upload_time = "2025-09-22T19:51:02.075Z" }, + { url = "https://files.pythonhosted.org/packages/19/ee/8d6146a079ad21e534b5083c9ee4a4c8bec42f79cf87594b60978286b39a/ruamel.yaml.clib-0.2.14-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ff86876889ea478b1381089e55cf9e345707b312beda4986f823e1d95e8c0f59", size = 708926, upload_time = "2025-09-23T18:42:51.707Z" }, + { url = "https://files.pythonhosted.org/packages/a9/f5/426b714abdc222392e68f3b8ad323930d05a214a27c7e7a0f06c69126401/ruamel.yaml.clib-0.2.14-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:1f118b707eece8cf84ecbc3e3ec94d9db879d85ed608f95870d39b2d2efa5dca", size = 740202, upload_time = "2025-09-22T19:51:04.673Z" }, + { url = "https://files.pythonhosted.org/packages/3d/ac/3c5c2b27a183f4fda8a57c82211721c016bcb689a4a175865f7646db9f94/ruamel.yaml.clib-0.2.14-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b30110b29484adc597df6bd92a37b90e63a8c152ca8136aad100a02f8ba6d1b6", size = 765196, upload_time = "2025-09-22T19:51:05.916Z" }, + { url = "https://files.pythonhosted.org/packages/92/2e/06f56a71fd55021c993ed6e848c9b2e5e9cfce180a42179f0ddd28253f7c/ruamel.yaml.clib-0.2.14-cp313-cp313-win32.whl", hash = "sha256:f4e97a1cf0b7a30af9e1d9dad10a5671157b9acee790d9e26996391f49b965a2", size = 98635, upload_time = "2025-09-22T19:51:08.183Z" }, + { url = "https://files.pythonhosted.org/packages/51/79/76aba16a1689b50528224b182f71097ece338e7a4ab55e84c2e73443b78a/ruamel.yaml.clib-0.2.14-cp313-cp313-win_amd64.whl", hash = "sha256:090782b5fb9d98df96509eecdbcaffd037d47389a89492320280d52f91330d78", size = 115238, upload_time = "2025-09-22T19:51:07.081Z" }, + { url = "https://files.pythonhosted.org/packages/21/e2/a59ff65c26aaf21a24eb38df777cb9af5d87ba8fc8107c163c2da9d1e85e/ruamel.yaml.clib-0.2.14-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:7df6f6e9d0e33c7b1d435defb185095386c469109de723d514142632a7b9d07f", size = 271441, upload_time = "2025-09-23T14:24:16.498Z" }, + { url = "https://files.pythonhosted.org/packages/6b/fa/3234f913fe9a6525a7b97c6dad1f51e72b917e6872e051a5e2ffd8b16fbb/ruamel.yaml.clib-0.2.14-cp314-cp314-macosx_15_0_arm64.whl", hash = "sha256:70eda7703b8126f5e52fcf276e6c0f40b0d314674f896fc58c47b0aef2b9ae83", size = 137970, upload_time = "2025-09-22T19:51:09.472Z" }, + { url = "https://files.pythonhosted.org/packages/ef/ec/4edbf17ac2c87fa0845dd366ef8d5852b96eb58fcd65fc1ecf5fe27b4641/ruamel.yaml.clib-0.2.14-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:a0cb71ccc6ef9ce36eecb6272c81afdc2f565950cdcec33ae8e6cd8f7fc86f27", size = 739639, upload_time = "2025-09-22T19:51:10.566Z" }, + { url = "https://files.pythonhosted.org/packages/15/18/b0e1fafe59051de9e79cdd431863b03593ecfa8341c110affad7c8121efc/ruamel.yaml.clib-0.2.14-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:e7cb9ad1d525d40f7d87b6df7c0ff916a66bc52cb61b66ac1b2a16d0c1b07640", size = 764456, upload_time = "2025-09-22T19:51:11.736Z" }, +] + +[[package]] +name = "scipy" +version = "1.16.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/4c/3b/546a6f0bfe791bbb7f8d591613454d15097e53f906308ec6f7c1ce588e8e/scipy-1.16.2.tar.gz", hash = "sha256:af029b153d243a80afb6eabe40b0a07f8e35c9adc269c019f364ad747f826a6b", size = 30580599, upload_time = "2025-09-11T17:48:08.271Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/8d/6396e00db1282279a4ddd507c5f5e11f606812b608ee58517ce8abbf883f/scipy-1.16.2-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:89d6c100fa5c48472047632e06f0876b3c4931aac1f4291afc81a3644316bb0d", size = 36646259, upload_time = "2025-09-11T17:40:39.329Z" }, + { url = "https://files.pythonhosted.org/packages/3b/93/ea9edd7e193fceb8eef149804491890bde73fb169c896b61aa3e2d1e4e77/scipy-1.16.2-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:ca748936cd579d3f01928b30a17dc474550b01272d8046e3e1ee593f23620371", size = 28888976, upload_time = "2025-09-11T17:40:46.82Z" }, + { url = "https://files.pythonhosted.org/packages/91/4d/281fddc3d80fd738ba86fd3aed9202331180b01e2c78eaae0642f22f7e83/scipy-1.16.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:fac4f8ce2ddb40e2e3d0f7ec36d2a1e7f92559a2471e59aec37bd8d9de01fec0", size = 20879905, upload_time = "2025-09-11T17:40:52.545Z" }, + { url = "https://files.pythonhosted.org/packages/69/40/b33b74c84606fd301b2915f0062e45733c6ff5708d121dd0deaa8871e2d0/scipy-1.16.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:033570f1dcefd79547a88e18bccacff025c8c647a330381064f561d43b821232", size = 23553066, upload_time = "2025-09-11T17:40:59.014Z" }, + { url = "https://files.pythonhosted.org/packages/55/a7/22c739e2f21a42cc8f16bc76b47cff4ed54fbe0962832c589591c2abec34/scipy-1.16.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ea3421209bf00c8a5ef2227de496601087d8f638a2363ee09af059bd70976dc1", size = 33336407, upload_time = "2025-09-11T17:41:06.796Z" }, + { url = "https://files.pythonhosted.org/packages/53/11/a0160990b82999b45874dc60c0c183d3a3a969a563fffc476d5a9995c407/scipy-1.16.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f66bd07ba6f84cd4a380b41d1bf3c59ea488b590a2ff96744845163309ee8e2f", size = 35673281, upload_time = "2025-09-11T17:41:15.055Z" }, + { url = "https://files.pythonhosted.org/packages/96/53/7ef48a4cfcf243c3d0f1643f5887c81f29fdf76911c4e49331828e19fc0a/scipy-1.16.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5e9feab931bd2aea4a23388c962df6468af3d808ddf2d40f94a81c5dc38f32ef", size = 36004222, upload_time = "2025-09-11T17:41:23.868Z" }, + { url = "https://files.pythonhosted.org/packages/49/7f/71a69e0afd460049d41c65c630c919c537815277dfea214031005f474d78/scipy-1.16.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:03dfc75e52f72cf23ec2ced468645321407faad8f0fe7b1f5b49264adbc29cb1", size = 38664586, upload_time = "2025-09-11T17:41:31.021Z" }, + { url = "https://files.pythonhosted.org/packages/34/95/20e02ca66fb495a95fba0642fd48e0c390d0ece9b9b14c6e931a60a12dea/scipy-1.16.2-cp312-cp312-win_amd64.whl", hash = "sha256:0ce54e07bbb394b417457409a64fd015be623f36e330ac49306433ffe04bc97e", size = 38550641, upload_time = "2025-09-11T17:41:36.61Z" }, + { url = "https://files.pythonhosted.org/packages/92/ad/13646b9beb0a95528ca46d52b7babafbe115017814a611f2065ee4e61d20/scipy-1.16.2-cp312-cp312-win_arm64.whl", hash = "sha256:2a8ffaa4ac0df81a0b94577b18ee079f13fecdb924df3328fc44a7dc5ac46851", size = 25456070, upload_time = "2025-09-11T17:41:41.3Z" }, + { url = "https://files.pythonhosted.org/packages/c1/27/c5b52f1ee81727a9fc457f5ac1e9bf3d6eab311805ea615c83c27ba06400/scipy-1.16.2-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:84f7bf944b43e20b8a894f5fe593976926744f6c185bacfcbdfbb62736b5cc70", size = 36604856, upload_time = "2025-09-11T17:41:47.695Z" }, + { url = "https://files.pythonhosted.org/packages/32/a9/15c20d08e950b540184caa8ced675ba1128accb0e09c653780ba023a4110/scipy-1.16.2-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:5c39026d12edc826a1ef2ad35ad1e6d7f087f934bb868fc43fa3049c8b8508f9", size = 28864626, upload_time = "2025-09-11T17:41:52.642Z" }, + { url = "https://files.pythonhosted.org/packages/4c/fc/ea36098df653cca26062a627c1a94b0de659e97127c8491e18713ca0e3b9/scipy-1.16.2-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:e52729ffd45b68777c5319560014d6fd251294200625d9d70fd8626516fc49f5", size = 20855689, upload_time = "2025-09-11T17:41:57.886Z" }, + { url = "https://files.pythonhosted.org/packages/dc/6f/d0b53be55727f3e6d7c72687ec18ea6d0047cf95f1f77488b99a2bafaee1/scipy-1.16.2-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:024dd4a118cccec09ca3209b7e8e614931a6ffb804b2a601839499cb88bdf925", size = 23512151, upload_time = "2025-09-11T17:42:02.303Z" }, + { url = "https://files.pythonhosted.org/packages/11/85/bf7dab56e5c4b1d3d8eef92ca8ede788418ad38a7dc3ff50262f00808760/scipy-1.16.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7a5dc7ee9c33019973a470556081b0fd3c9f4c44019191039f9769183141a4d9", size = 33329824, upload_time = "2025-09-11T17:42:07.549Z" }, + { url = "https://files.pythonhosted.org/packages/da/6a/1a927b14ddc7714111ea51f4e568203b2bb6ed59bdd036d62127c1a360c8/scipy-1.16.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c2275ff105e508942f99d4e3bc56b6ef5e4b3c0af970386ca56b777608ce95b7", size = 35681881, upload_time = "2025-09-11T17:42:13.255Z" }, + { url = "https://files.pythonhosted.org/packages/c1/5f/331148ea5780b4fcc7007a4a6a6ee0a0c1507a796365cc642d4d226e1c3a/scipy-1.16.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:af80196eaa84f033e48444d2e0786ec47d328ba00c71e4299b602235ffef9acb", size = 36006219, upload_time = "2025-09-11T17:42:18.765Z" }, + { url = "https://files.pythonhosted.org/packages/46/3a/e991aa9d2aec723b4a8dcfbfc8365edec5d5e5f9f133888067f1cbb7dfc1/scipy-1.16.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9fb1eb735fe3d6ed1f89918224e3385fbf6f9e23757cacc35f9c78d3b712dd6e", size = 38682147, upload_time = "2025-09-11T17:42:25.177Z" }, + { url = "https://files.pythonhosted.org/packages/a1/57/0f38e396ad19e41b4c5db66130167eef8ee620a49bc7d0512e3bb67e0cab/scipy-1.16.2-cp313-cp313-win_amd64.whl", hash = "sha256:fda714cf45ba43c9d3bae8f2585c777f64e3f89a2e073b668b32ede412d8f52c", size = 38520766, upload_time = "2025-09-11T17:43:25.342Z" }, + { url = "https://files.pythonhosted.org/packages/1b/a5/85d3e867b6822d331e26c862a91375bb7746a0b458db5effa093d34cdb89/scipy-1.16.2-cp313-cp313-win_arm64.whl", hash = "sha256:2f5350da923ccfd0b00e07c3e5cfb316c1c0d6c1d864c07a72d092e9f20db104", size = 25451169, upload_time = "2025-09-11T17:43:30.198Z" }, + { url = "https://files.pythonhosted.org/packages/09/d9/60679189bcebda55992d1a45498de6d080dcaf21ce0c8f24f888117e0c2d/scipy-1.16.2-cp313-cp313t-macosx_10_14_x86_64.whl", hash = "sha256:53d8d2ee29b925344c13bda64ab51785f016b1b9617849dac10897f0701b20c1", size = 37012682, upload_time = "2025-09-11T17:42:30.677Z" }, + { url = "https://files.pythonhosted.org/packages/83/be/a99d13ee4d3b7887a96f8c71361b9659ba4ef34da0338f14891e102a127f/scipy-1.16.2-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:9e05e33657efb4c6a9d23bd8300101536abd99c85cca82da0bffff8d8764d08a", size = 29389926, upload_time = "2025-09-11T17:42:35.845Z" }, + { url = "https://files.pythonhosted.org/packages/bf/0a/130164a4881cec6ca8c00faf3b57926f28ed429cd6001a673f83c7c2a579/scipy-1.16.2-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:7fe65b36036357003b3ef9d37547abeefaa353b237e989c21027b8ed62b12d4f", size = 21381152, upload_time = "2025-09-11T17:42:40.07Z" }, + { url = "https://files.pythonhosted.org/packages/47/a6/503ffb0310ae77fba874e10cddfc4a1280bdcca1d13c3751b8c3c2996cf8/scipy-1.16.2-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:6406d2ac6d40b861cccf57f49592f9779071655e9f75cd4f977fa0bdd09cb2e4", size = 23914410, upload_time = "2025-09-11T17:42:44.313Z" }, + { url = "https://files.pythonhosted.org/packages/fa/c7/1147774bcea50d00c02600aadaa919facbd8537997a62496270133536ed6/scipy-1.16.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ff4dc42bd321991fbf611c23fc35912d690f731c9914bf3af8f417e64aca0f21", size = 33481880, upload_time = "2025-09-11T17:42:49.325Z" }, + { url = "https://files.pythonhosted.org/packages/6a/74/99d5415e4c3e46b2586f30cdbecb95e101c7192628a484a40dd0d163811a/scipy-1.16.2-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:654324826654d4d9133e10675325708fb954bc84dae6e9ad0a52e75c6b1a01d7", size = 35791425, upload_time = "2025-09-11T17:42:54.711Z" }, + { url = "https://files.pythonhosted.org/packages/1b/ee/a6559de7c1cc710e938c0355d9d4fbcd732dac4d0d131959d1f3b63eb29c/scipy-1.16.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:63870a84cd15c44e65220eaed2dac0e8f8b26bbb991456a033c1d9abfe8a94f8", size = 36178622, upload_time = "2025-09-11T17:43:00.375Z" }, + { url = "https://files.pythonhosted.org/packages/4e/7b/f127a5795d5ba8ece4e0dce7d4a9fb7cb9e4f4757137757d7a69ab7d4f1a/scipy-1.16.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:fa01f0f6a3050fa6a9771a95d5faccc8e2f5a92b4a2e5440a0fa7264a2398472", size = 38783985, upload_time = "2025-09-11T17:43:06.661Z" }, + { url = "https://files.pythonhosted.org/packages/3e/9f/bc81c1d1e033951eb5912cd3750cc005943afa3e65a725d2443a3b3c4347/scipy-1.16.2-cp313-cp313t-win_amd64.whl", hash = "sha256:116296e89fba96f76353a8579820c2512f6e55835d3fad7780fece04367de351", size = 38631367, upload_time = "2025-09-11T17:43:14.44Z" }, + { url = "https://files.pythonhosted.org/packages/d6/5e/2cc7555fd81d01814271412a1d59a289d25f8b63208a0a16c21069d55d3e/scipy-1.16.2-cp313-cp313t-win_arm64.whl", hash = "sha256:98e22834650be81d42982360382b43b17f7ba95e0e6993e2a4f5b9ad9283a94d", size = 25787992, upload_time = "2025-09-11T17:43:19.745Z" }, + { url = "https://files.pythonhosted.org/packages/8b/ac/ad8951250516db71619f0bd3b2eb2448db04b720a003dd98619b78b692c0/scipy-1.16.2-cp314-cp314-macosx_10_14_x86_64.whl", hash = "sha256:567e77755019bb7461513c87f02bb73fb65b11f049aaaa8ca17cfaa5a5c45d77", size = 36595109, upload_time = "2025-09-11T17:43:35.713Z" }, + { url = "https://files.pythonhosted.org/packages/ff/f6/5779049ed119c5b503b0f3dc6d6f3f68eefc3a9190d4ad4c276f854f051b/scipy-1.16.2-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:17d9bb346194e8967296621208fcdfd39b55498ef7d2f376884d5ac47cec1a70", size = 28859110, upload_time = "2025-09-11T17:43:40.814Z" }, + { url = "https://files.pythonhosted.org/packages/82/09/9986e410ae38bf0a0c737ff8189ac81a93b8e42349aac009891c054403d7/scipy-1.16.2-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:0a17541827a9b78b777d33b623a6dcfe2ef4a25806204d08ead0768f4e529a88", size = 20850110, upload_time = "2025-09-11T17:43:44.981Z" }, + { url = "https://files.pythonhosted.org/packages/0d/ad/485cdef2d9215e2a7df6d61b81d2ac073dfacf6ae24b9ae87274c4e936ae/scipy-1.16.2-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:d7d4c6ba016ffc0f9568d012f5f1eb77ddd99412aea121e6fa8b4c3b7cbad91f", size = 23497014, upload_time = "2025-09-11T17:43:49.074Z" }, + { url = "https://files.pythonhosted.org/packages/a7/74/f6a852e5d581122b8f0f831f1d1e32fb8987776ed3658e95c377d308ed86/scipy-1.16.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:9702c4c023227785c779cba2e1d6f7635dbb5b2e0936cdd3a4ecb98d78fd41eb", size = 33401155, upload_time = "2025-09-11T17:43:54.661Z" }, + { url = "https://files.pythonhosted.org/packages/d9/f5/61d243bbc7c6e5e4e13dde9887e84a5cbe9e0f75fd09843044af1590844e/scipy-1.16.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d1cdf0ac28948d225decdefcc45ad7dd91716c29ab56ef32f8e0d50657dffcc7", size = 35691174, upload_time = "2025-09-11T17:44:00.101Z" }, + { url = "https://files.pythonhosted.org/packages/03/99/59933956331f8cc57e406cdb7a483906c74706b156998f322913e789c7e1/scipy-1.16.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:70327d6aa572a17c2941cdfb20673f82e536e91850a2e4cb0c5b858b690e1548", size = 36070752, upload_time = "2025-09-11T17:44:05.619Z" }, + { url = "https://files.pythonhosted.org/packages/c6/7d/00f825cfb47ee19ef74ecf01244b43e95eae74e7e0ff796026ea7cd98456/scipy-1.16.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5221c0b2a4b58aa7c4ed0387d360fd90ee9086d383bb34d9f2789fafddc8a936", size = 38701010, upload_time = "2025-09-11T17:44:11.322Z" }, + { url = "https://files.pythonhosted.org/packages/e4/9f/b62587029980378304ba5a8563d376c96f40b1e133daacee76efdcae32de/scipy-1.16.2-cp314-cp314-win_amd64.whl", hash = "sha256:f5a85d7b2b708025af08f060a496dd261055b617d776fc05a1a1cc69e09fe9ff", size = 39360061, upload_time = "2025-09-11T17:45:09.814Z" }, + { url = "https://files.pythonhosted.org/packages/82/04/7a2f1609921352c7fbee0815811b5050582f67f19983096c4769867ca45f/scipy-1.16.2-cp314-cp314-win_arm64.whl", hash = "sha256:2cc73a33305b4b24556957d5857d6253ce1e2dcd67fa0ff46d87d1670b3e1e1d", size = 26126914, upload_time = "2025-09-11T17:45:14.73Z" }, + { url = "https://files.pythonhosted.org/packages/51/b9/60929ce350c16b221928725d2d1d7f86cf96b8bc07415547057d1196dc92/scipy-1.16.2-cp314-cp314t-macosx_10_14_x86_64.whl", hash = "sha256:9ea2a3fed83065d77367775d689401a703d0f697420719ee10c0780bcab594d8", size = 37013193, upload_time = "2025-09-11T17:44:16.757Z" }, + { url = "https://files.pythonhosted.org/packages/2a/41/ed80e67782d4bc5fc85a966bc356c601afddd175856ba7c7bb6d9490607e/scipy-1.16.2-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:7280d926f11ca945c3ef92ba960fa924e1465f8d07ce3a9923080363390624c4", size = 29390172, upload_time = "2025-09-11T17:44:21.783Z" }, + { url = "https://files.pythonhosted.org/packages/c4/a3/2f673ace4090452696ccded5f5f8efffb353b8f3628f823a110e0170b605/scipy-1.16.2-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:8afae1756f6a1fe04636407ef7dbece33d826a5d462b74f3d0eb82deabefd831", size = 21381326, upload_time = "2025-09-11T17:44:25.982Z" }, + { url = "https://files.pythonhosted.org/packages/42/bf/59df61c5d51395066c35836b78136accf506197617c8662e60ea209881e1/scipy-1.16.2-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:5c66511f29aa8d233388e7416a3f20d5cae7a2744d5cee2ecd38c081f4e861b3", size = 23915036, upload_time = "2025-09-11T17:44:30.527Z" }, + { url = "https://files.pythonhosted.org/packages/91/c3/edc7b300dc16847ad3672f1a6f3f7c5d13522b21b84b81c265f4f2760d4a/scipy-1.16.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:efe6305aeaa0e96b0ccca5ff647a43737d9a092064a3894e46c414db84bc54ac", size = 33484341, upload_time = "2025-09-11T17:44:35.981Z" }, + { url = "https://files.pythonhosted.org/packages/26/c7/24d1524e72f06ff141e8d04b833c20db3021020563272ccb1b83860082a9/scipy-1.16.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7f3a337d9ae06a1e8d655ee9d8ecb835ea5ddcdcbd8d23012afa055ab014f374", size = 35790840, upload_time = "2025-09-11T17:44:41.76Z" }, + { url = "https://files.pythonhosted.org/packages/aa/b7/5aaad984eeedd56858dc33d75efa59e8ce798d918e1033ef62d2708f2c3d/scipy-1.16.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:bab3605795d269067d8ce78a910220262711b753de8913d3deeaedb5dded3bb6", size = 36174716, upload_time = "2025-09-11T17:44:47.316Z" }, + { url = "https://files.pythonhosted.org/packages/fd/c2/e276a237acb09824822b0ada11b028ed4067fdc367a946730979feacb870/scipy-1.16.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:b0348d8ddb55be2a844c518cd8cc8deeeb8aeba707cf834db5758fc89b476a2c", size = 38790088, upload_time = "2025-09-11T17:44:53.011Z" }, + { url = "https://files.pythonhosted.org/packages/c6/b4/5c18a766e8353015439f3780f5fc473f36f9762edc1a2e45da3ff5a31b21/scipy-1.16.2-cp314-cp314t-win_amd64.whl", hash = "sha256:26284797e38b8a75e14ea6631d29bda11e76ceaa6ddb6fdebbfe4c4d90faf2f9", size = 39457455, upload_time = "2025-09-11T17:44:58.899Z" }, + { url = "https://files.pythonhosted.org/packages/97/30/2f9a5243008f76dfc5dee9a53dfb939d9b31e16ce4bd4f2e628bfc5d89d2/scipy-1.16.2-cp314-cp314t-win_arm64.whl", hash = "sha256:d2a4472c231328d4de38d5f1f68fdd6d28a615138f842580a8a321b5845cf779", size = 26448374, upload_time = "2025-09-11T17:45:03.45Z" }, +] + +[[package]] +name = "secretstorage" +version = "3.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "jeepney" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/31/9f/11ef35cf1027c1339552ea7bfe6aaa74a8516d8b5caf6e7d338daf54fd80/secretstorage-3.4.0.tar.gz", hash = "sha256:c46e216d6815aff8a8a18706a2fbfd8d53fcbb0dce99301881687a1b0289ef7c", size = 19748, upload_time = "2025-09-09T16:42:13.859Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/91/ff/2e2eed29e02c14a5cb6c57f09b2d5b40e65d6cc71f45b52e0be295ccbc2f/secretstorage-3.4.0-py3-none-any.whl", hash = "sha256:0e3b6265c2c63509fb7415717607e4b2c9ab767b7f344a57473b779ca13bd02e", size = 15272, upload_time = "2025-09-09T16:42:12.744Z" }, +] + +[[package]] +name = "semantic-version" +version = "2.10.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7d/31/f2289ce78b9b473d582568c234e104d2a342fd658cc288a7553d83bb8595/semantic_version-2.10.0.tar.gz", hash = "sha256:bdabb6d336998cbb378d4b9db3a4b56a1e3235701dc05ea2690d9a997ed5041c", size = 52289, upload_time = "2022-05-26T13:35:23.454Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/23/8146aad7d88f4fcb3a6218f41a60f6c2d4e3a72de72da1825dc7c8f7877c/semantic_version-2.10.0-py2.py3-none-any.whl", hash = "sha256:de78a3b8e0feda74cabc54aab2da702113e33ac9d9eb9d2389bcf1f58b7d9177", size = 15552, upload_time = "2022-05-26T13:35:21.206Z" }, +] + +[[package]] +name = "setuptools" +version = "80.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/18/5d/3bf57dcd21979b887f014ea83c24ae194cfcd12b9e0fda66b957c69d1fca/setuptools-80.9.0.tar.gz", hash = "sha256:f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c", size = 1319958, upload_time = "2025-05-27T00:56:51.443Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a3/dc/17031897dae0efacfea57dfd3a82fdd2a2aeb58e0ff71b77b87e44edc772/setuptools-80.9.0-py3-none-any.whl", hash = "sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922", size = 1201486, upload_time = "2025-05-27T00:56:49.664Z" }, +] + +[[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, 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, upload_time = "2024-12-04T17:35:26.475Z" }, +] + +[[package]] +name = "ssm" +version = "1.0.0" +source = { git = "https://github.com/ncguilbeault/lds_python?rev=75e3e5e92ce6344009b62a5034db49b238db63ef#75e3e5e92ce6344009b62a5034db49b238db63ef" } +dependencies = [ + { name = "numpy" }, + { name = "scipy" }, +] + +[[package]] +name = "sympy" +version = "1.14.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mpmath" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/83/d3/803453b36afefb7c2bb238361cd4ae6125a569b4db67cd9e79846ba2d68c/sympy-1.14.0.tar.gz", hash = "sha256:d3d3fe8df1e5a0b42f0e7bdf50541697dbe7d23746e894990c030e2b05e72517", size = 7793921, upload_time = "2025-04-27T18:05:01.611Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a2/09/77d55d46fd61b4a135c444fc97158ef34a095e5681d0a6c10b75bf356191/sympy-1.14.0-py3-none-any.whl", hash = "sha256:e091cc3e99d2141a0ba2847328f5479b05d94a6635cb96148ccb3f34671bd8f5", size = 6299353, upload_time = "2025-04-27T18:04:59.103Z" }, +] + +[[package]] +name = "tenacity" +version = "9.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0a/d4/2b0cd0fe285e14b36db076e78c93766ff1d529d70408bd1d2a5a84f1d929/tenacity-9.1.2.tar.gz", hash = "sha256:1169d376c297e7de388d18b4481760d478b0e99a777cad3a9c86e556f4b697cb", size = 48036, upload_time = "2025-04-02T08:25:09.966Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/30/643397144bfbfec6f6ef821f36f33e57d35946c44a2352d3c9f0ae847619/tenacity-9.1.2-py3-none-any.whl", hash = "sha256:f77bf36710d8b73a50b2dd155c97b870017ad21afe6ab300326b0371b3b05138", size = 28248, upload_time = "2025-04-02T08:25:07.678Z" }, +] + +[[package]] +name = "tensorstore" +version = "0.1.77" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ml-dtypes" }, + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/48/4c/7db3b759e38e14c5eafeada78705f347f42a9ba132914a2ccad60bce5605/tensorstore-0.1.77.tar.gz", hash = "sha256:5ae62828503cea71e64d808bda959877ed75ea23f1adffca903635b842acc1e8", size = 6880812, upload_time = "2025-09-20T00:19:02.497Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a8/d4/1545f47b496c3eff088e500f3396de6185e33deb4170ac70afd42a98da17/tensorstore-0.1.77-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:90417e8c499d3aac0359bf990abad1b60892cd5c868f288115d546aa5dbe7ace", size = 15727039, upload_time = "2025-09-20T00:18:36.589Z" }, + { url = "https://files.pythonhosted.org/packages/e0/94/cf104fde7ffd1e4726e48ab15a9a587e68b741a9ca366739041f5702c794/tensorstore-0.1.77-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a654468acb816c0e8cf0a1443eb0956e76f4e1a2a4fe75ab06ea504161190755", size = 13781960, upload_time = "2025-09-20T00:18:39.504Z" }, + { url = "https://files.pythonhosted.org/packages/16/ea/0fd3ec6d9d1e0a00aae5174e9c44ea00bfd06208f820262425c6b120e76f/tensorstore-0.1.77-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b8e68accbcfbc68900367028971066adb927d0b302eba387271957545d0c0ec1", size = 17701149, upload_time = "2025-09-20T00:18:41.94Z" }, + { url = "https://files.pythonhosted.org/packages/19/31/94bb41faf66eaeead8f1930b7836a3d01e72b73f4346f602f31a9324b347/tensorstore-0.1.77-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7ce520277b32397cfd0bc812751cc9c414d12488ecbb33efe9fc50979b73a80f", size = 19536583, upload_time = "2025-09-20T00:18:44.836Z" }, + { url = "https://files.pythonhosted.org/packages/5a/02/1931b4f854ec275361cba62b7af76064153570f732dc0ea02b220077ba57/tensorstore-0.1.77-cp312-cp312-win_amd64.whl", hash = "sha256:e55bd02c0a1163f4565f98c8b41837b72ffd0c27e9f8a4d3dcc7018ce17a2c1a", size = 12710352, upload_time = "2025-09-20T00:18:47.737Z" }, + { url = "https://files.pythonhosted.org/packages/44/c2/e0f185bd75e9881c0c35df57dd89c528ef750f8f4ab7fb639ffd415e7589/tensorstore-0.1.77-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:9b4e21b09acd01bde8660939d1b2f52a9179571e1bdfa1e8d2cc88b1cadf5d78", size = 15726851, upload_time = "2025-09-20T00:18:50.117Z" }, + { url = "https://files.pythonhosted.org/packages/ce/94/42703000135524901a120fc974c1b487309d1e3264071bc117a57f38316d/tensorstore-0.1.77-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f383d8d1f7fd0babd2c03851ab57738782f35f604d29a7cf463f9875e3584613", size = 13782161, upload_time = "2025-09-20T00:18:52.529Z" }, + { url = "https://files.pythonhosted.org/packages/43/c9/36611dcb2e5007d1b7405f44068d1c2839f6233fc0c4bdead56a8ec24c31/tensorstore-0.1.77-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:351f0f73ed2b57a561b0ffd32ab9188d65adc0a85916b23f8355a5df50dbac2e", size = 17701404, upload_time = "2025-09-20T00:18:54.929Z" }, + { url = "https://files.pythonhosted.org/packages/c1/42/598560fe23d04c0ae160b8f9754c3887893e401305fd50dd7d70e08c4b0b/tensorstore-0.1.77-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ed487f313af8e07cc3caa372120621f4029778f9e5a1c026efb915dabea555a2", size = 19537201, upload_time = "2025-09-20T00:18:57.504Z" }, + { url = "https://files.pythonhosted.org/packages/22/5d/bf02faa525ed54b37d1f6d4a1463e9986014ccf26da3cef77fe1efb8c18b/tensorstore-0.1.77-cp313-cp313-win_amd64.whl", hash = "sha256:416a5f076260e852afeaf7d30e567b08a28dd3af913d38a27f112f599e53313a", size = 12710186, upload_time = "2025-09-20T00:19:00.199Z" }, +] + +[[package]] +name = "threadpoolctl" +version = "3.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b7/4d/08c89e34946fce2aec4fbb45c9016efd5f4d7f24af8e5d93296e935631d8/threadpoolctl-3.6.0.tar.gz", hash = "sha256:8ab8b4aa3491d812b623328249fab5302a68d2d71745c8a4c719a2fcaba9f44e", size = 21274, upload_time = "2025-03-13T13:49:23.031Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/32/d5/f9a850d79b0851d1d4ef6456097579a9005b31fea68726a4ae5f2d82ddd9/threadpoolctl-3.6.0-py3-none-any.whl", hash = "sha256:43a0b8fd5a2928500110039e43a5eed8480b918967083ea48dc3ab9f13c4a7fb", size = 18638, upload_time = "2025-03-13T13:49:21.846Z" }, +] + +[[package]] +name = "torch" +version = "2.8.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "filelock" }, + { name = "fsspec" }, + { name = "jinja2" }, + { name = "networkx" }, + { name = "nvidia-cublas-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-cuda-cupti-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-cuda-nvrtc-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-cuda-runtime-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-cudnn-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-cufft-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-cufile-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-curand-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-cusolver-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-cusparse-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-cusparselt-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-nccl-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-nvjitlink-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "nvidia-nvtx-cu12", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "setuptools" }, + { name = "sympy" }, + { name = "triton", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, + { name = "typing-extensions" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/49/0c/2fd4df0d83a495bb5e54dca4474c4ec5f9c62db185421563deeb5dabf609/torch-2.8.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:e2fab4153768d433f8ed9279c8133a114a034a61e77a3a104dcdf54388838705", size = 101906089, upload_time = "2025-08-06T14:53:52.631Z" }, + { url = "https://files.pythonhosted.org/packages/99/a8/6acf48d48838fb8fe480597d98a0668c2beb02ee4755cc136de92a0a956f/torch-2.8.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:b2aca0939fb7e4d842561febbd4ffda67a8e958ff725c1c27e244e85e982173c", size = 887913624, upload_time = "2025-08-06T14:56:44.33Z" }, + { url = "https://files.pythonhosted.org/packages/af/8a/5c87f08e3abd825c7dfecef5a0f1d9aa5df5dd0e3fd1fa2f490a8e512402/torch-2.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:2f4ac52f0130275d7517b03a33d2493bab3693c83dcfadf4f81688ea82147d2e", size = 241326087, upload_time = "2025-08-06T14:53:46.503Z" }, + { url = "https://files.pythonhosted.org/packages/be/66/5c9a321b325aaecb92d4d1855421e3a055abd77903b7dab6575ca07796db/torch-2.8.0-cp312-none-macosx_11_0_arm64.whl", hash = "sha256:619c2869db3ada2c0105487ba21b5008defcc472d23f8b80ed91ac4a380283b0", size = 73630478, upload_time = "2025-08-06T14:53:57.144Z" }, + { url = "https://files.pythonhosted.org/packages/10/4e/469ced5a0603245d6a19a556e9053300033f9c5baccf43a3d25ba73e189e/torch-2.8.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:2b2f96814e0345f5a5aed9bf9734efa913678ed19caf6dc2cddb7930672d6128", size = 101936856, upload_time = "2025-08-06T14:54:01.526Z" }, + { url = "https://files.pythonhosted.org/packages/16/82/3948e54c01b2109238357c6f86242e6ecbf0c63a1af46906772902f82057/torch-2.8.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:65616ca8ec6f43245e1f5f296603e33923f4c30f93d65e103d9e50c25b35150b", size = 887922844, upload_time = "2025-08-06T14:55:50.78Z" }, + { url = "https://files.pythonhosted.org/packages/e3/54/941ea0a860f2717d86a811adf0c2cd01b3983bdd460d0803053c4e0b8649/torch-2.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:659df54119ae03e83a800addc125856effda88b016dfc54d9f65215c3975be16", size = 241330968, upload_time = "2025-08-06T14:54:45.293Z" }, + { url = "https://files.pythonhosted.org/packages/de/69/8b7b13bba430f5e21d77708b616f767683629fc4f8037564a177d20f90ed/torch-2.8.0-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:1a62a1ec4b0498930e2543535cf70b1bef8c777713de7ceb84cd79115f553767", size = 73915128, upload_time = "2025-08-06T14:54:34.769Z" }, + { url = "https://files.pythonhosted.org/packages/15/0e/8a800e093b7f7430dbaefa80075aee9158ec22e4c4fc3c1a66e4fb96cb4f/torch-2.8.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:83c13411a26fac3d101fe8035a6b0476ae606deb8688e904e796a3534c197def", size = 102020139, upload_time = "2025-08-06T14:54:39.047Z" }, + { url = "https://files.pythonhosted.org/packages/4a/15/5e488ca0bc6162c86a33b58642bc577c84ded17c7b72d97e49b5833e2d73/torch-2.8.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:8f0a9d617a66509ded240add3754e462430a6c1fc5589f86c17b433dd808f97a", size = 887990692, upload_time = "2025-08-06T14:56:18.286Z" }, + { url = "https://files.pythonhosted.org/packages/b4/a8/6a04e4b54472fc5dba7ca2341ab219e529f3c07b6941059fbf18dccac31f/torch-2.8.0-cp313-cp313t-win_amd64.whl", hash = "sha256:a7242b86f42be98ac674b88a4988643b9bc6145437ec8f048fea23f72feb5eca", size = 241603453, upload_time = "2025-08-06T14:55:22.945Z" }, + { url = "https://files.pythonhosted.org/packages/04/6e/650bb7f28f771af0cb791b02348db8b7f5f64f40f6829ee82aa6ce99aabe/torch-2.8.0-cp313-none-macosx_11_0_arm64.whl", hash = "sha256:7b677e17f5a3e69fdef7eb3b9da72622f8d322692930297e4ccb52fefc6c8211", size = 73632395, upload_time = "2025-08-06T14:55:28.645Z" }, +] + +[[package]] +name = "tqdm" +version = "4.67.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a8/4b/29b4ef32e036bb34e4ab51796dd745cdba7ed47ad142a9f4a1eb8e0c744d/tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2", size = 169737, upload_time = "2024-11-24T20:12:22.481Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2", size = 78540, upload_time = "2024-11-24T20:12:19.698Z" }, +] + +[[package]] +name = "triton" +version = "3.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "setuptools" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/d0/66/b1eb52839f563623d185f0927eb3530ee4d5ffe9d377cdaf5346b306689e/triton-3.4.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:31c1d84a5c0ec2c0f8e8a072d7fd150cab84a9c239eaddc6706c081bfae4eb04", size = 155560068, upload_time = "2025-07-30T19:58:37.081Z" }, + { url = "https://files.pythonhosted.org/packages/30/7b/0a685684ed5322d2af0bddefed7906674f67974aa88b0fae6e82e3b766f6/triton-3.4.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:00be2964616f4c619193cb0d1b29a99bd4b001d7dc333816073f92cf2a8ccdeb", size = 155569223, upload_time = "2025-07-30T19:58:44.017Z" }, + { url = "https://files.pythonhosted.org/packages/20/63/8cb444ad5cdb25d999b7d647abac25af0ee37d292afc009940c05b82dda0/triton-3.4.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7936b18a3499ed62059414d7df563e6c163c5e16c3773678a3ee3d417865035d", size = 155659780, upload_time = "2025-07-30T19:58:51.171Z" }, +] + +[[package]] +name = "types-python-dateutil" +version = "2.9.0.20250822" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0c/0a/775f8551665992204c756be326f3575abba58c4a3a52eef9909ef4536428/types_python_dateutil-2.9.0.20250822.tar.gz", hash = "sha256:84c92c34bd8e68b117bff742bc00b692a1e8531262d4507b33afcc9f7716cd53", size = 16084, upload_time = "2025-08-22T03:02:00.613Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ab/d9/a29dfa84363e88b053bf85a8b7f212a04f0d7343a4d24933baa45c06e08b/types_python_dateutil-2.9.0.20250822-py3-none-any.whl", hash = "sha256:849d52b737e10a6dc6621d2bd7940ec7c65fcb69e6aa2882acf4e56b2b508ddc", size = 17892, upload_time = "2025-08-22T03:01:59.436Z" }, +] + +[[package]] +name = "typing-extensions" +version = "4.15.0" +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, upload_time = "2025-08-25T13:49:26.313Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload_time = "2025-08-25T13:49:24.86Z" }, +] + +[[package]] +name = "typing-inspection" +version = "0.4.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/55/e3/70399cb7dd41c10ac53367ae42139cf4b1ca5f36bb3dc6c9d33acdb43655/typing_inspection-0.4.2.tar.gz", hash = "sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464", size = 75949, upload_time = "2025-10-01T02:14:41.687Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7", size = 14611, upload_time = "2025-10-01T02:14:40.154Z" }, +] + +[[package]] +name = "tzdata" +version = "2025.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/95/32/1a225d6164441be760d75c2c42e2780dc0873fe382da3e98a2e1e48361e5/tzdata-2025.2.tar.gz", hash = "sha256:b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9", size = 196380, upload_time = "2025-03-23T13:54:43.652Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5c/23/c7abc0ca0a1526a0774eca151daeb8de62ec457e77262b66b359c3c7679e/tzdata-2025.2-py2.py3-none-any.whl", hash = "sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8", size = 347839, upload_time = "2025-03-23T13:54:41.845Z" }, +] + +[[package]] +name = "uri-template" +version = "1.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/31/c7/0336f2bd0bcbada6ccef7aaa25e443c118a704f828a0620c6fa0207c1b64/uri-template-1.3.0.tar.gz", hash = "sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7", size = 21678, upload_time = "2023-06-21T01:49:05.374Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/00/3fca040d7cf8a32776d3d81a00c8ee7457e00f80c649f1e4a863c8321ae9/uri_template-1.3.0-py3-none-any.whl", hash = "sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363", size = 11140, upload_time = "2023-06-21T01:49:03.467Z" }, +] + +[[package]] +name = "urllib3" +version = "2.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/15/22/9ee70a2574a4f4599c47dd506532914ce044817c7752a79b6a51286319bc/urllib3-2.5.0.tar.gz", hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760", size = 393185, upload_time = "2025-06-18T14:07:41.644Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a7/c2/fe1e52489ae3122415c51f387e221dd0773709bad6c6cdaa599e8a2c5185/urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc", size = 129795, upload_time = "2025-06-18T14:07:40.39Z" }, +] + +[[package]] +name = "wcwidth" +version = "0.2.14" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/24/30/6b0809f4510673dc723187aeaf24c7f5459922d01e2f794277a3dfb90345/wcwidth-0.2.14.tar.gz", hash = "sha256:4d478375d31bc5395a3c55c40ccdf3354688364cd61c4f6adacaa9215d0b3605", size = 102293, upload_time = "2025-09-22T16:29:53.023Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/af/b5/123f13c975e9f27ab9c0770f514345bd406d0e8d3b7a0723af9d43f710af/wcwidth-0.2.14-py2.py3-none-any.whl", hash = "sha256:a7bb560c8aee30f9957e5f9895805edd20602f2d7f720186dfd906e82b4982e1", size = 37286, upload_time = "2025-09-22T16:29:51.641Z" }, +] + +[[package]] +name = "webcolors" +version = "24.11.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7b/29/061ec845fb58521848f3739e466efd8250b4b7b98c1b6c5bf4d40b419b7e/webcolors-24.11.1.tar.gz", hash = "sha256:ecb3d768f32202af770477b8b65f318fa4f566c22948673a977b00d589dd80f6", size = 45064, upload_time = "2024-11-11T07:43:24.224Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/60/e8/c0e05e4684d13459f93d312077a9a2efbe04d59c393bc2b8802248c908d4/webcolors-24.11.1-py3-none-any.whl", hash = "sha256:515291393b4cdf0eb19c155749a096f779f7d909f7cceea072791cb9095b92e9", size = 14934, upload_time = "2024-11-11T07:43:22.529Z" }, +] + +[[package]] +name = "wrapt" +version = "1.17.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/95/8f/aeb76c5b46e273670962298c23e7ddde79916cb74db802131d49a85e4b7d/wrapt-1.17.3.tar.gz", hash = "sha256:f66eb08feaa410fe4eebd17f2a2c8e2e46d3476e9f8c783daa8e09e0faa666d0", size = 55547, upload_time = "2025-08-12T05:53:21.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9f/41/cad1aba93e752f1f9268c77270da3c469883d56e2798e7df6240dcb2287b/wrapt-1.17.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ab232e7fdb44cdfbf55fc3afa31bcdb0d8980b9b95c38b6405df2acb672af0e0", size = 53998, upload_time = "2025-08-12T05:51:47.138Z" }, + { url = "https://files.pythonhosted.org/packages/60/f8/096a7cc13097a1869fe44efe68dace40d2a16ecb853141394047f0780b96/wrapt-1.17.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:9baa544e6acc91130e926e8c802a17f3b16fbea0fd441b5a60f5cf2cc5c3deba", size = 39020, upload_time = "2025-08-12T05:51:35.906Z" }, + { url = "https://files.pythonhosted.org/packages/33/df/bdf864b8997aab4febb96a9ae5c124f700a5abd9b5e13d2a3214ec4be705/wrapt-1.17.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6b538e31eca1a7ea4605e44f81a48aa24c4632a277431a6ed3f328835901f4fd", size = 39098, upload_time = "2025-08-12T05:51:57.474Z" }, + { url = "https://files.pythonhosted.org/packages/9f/81/5d931d78d0eb732b95dc3ddaeeb71c8bb572fb01356e9133916cd729ecdd/wrapt-1.17.3-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:042ec3bb8f319c147b1301f2393bc19dba6e176b7da446853406d041c36c7828", size = 88036, upload_time = "2025-08-12T05:52:34.784Z" }, + { url = "https://files.pythonhosted.org/packages/ca/38/2e1785df03b3d72d34fc6252d91d9d12dc27a5c89caef3335a1bbb8908ca/wrapt-1.17.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3af60380ba0b7b5aeb329bc4e402acd25bd877e98b3727b0135cb5c2efdaefe9", size = 88156, upload_time = "2025-08-12T05:52:13.599Z" }, + { url = "https://files.pythonhosted.org/packages/b3/8b/48cdb60fe0603e34e05cffda0b2a4adab81fd43718e11111a4b0100fd7c1/wrapt-1.17.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0b02e424deef65c9f7326d8c19220a2c9040c51dc165cddb732f16198c168396", size = 87102, upload_time = "2025-08-12T05:52:14.56Z" }, + { url = "https://files.pythonhosted.org/packages/3c/51/d81abca783b58f40a154f1b2c56db1d2d9e0d04fa2d4224e357529f57a57/wrapt-1.17.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:74afa28374a3c3a11b3b5e5fca0ae03bef8450d6aa3ab3a1e2c30e3a75d023dc", size = 87732, upload_time = "2025-08-12T05:52:36.165Z" }, + { url = "https://files.pythonhosted.org/packages/9e/b1/43b286ca1392a006d5336412d41663eeef1ad57485f3e52c767376ba7e5a/wrapt-1.17.3-cp312-cp312-win32.whl", hash = "sha256:4da9f45279fff3543c371d5ababc57a0384f70be244de7759c85a7f989cb4ebe", size = 36705, upload_time = "2025-08-12T05:53:07.123Z" }, + { url = "https://files.pythonhosted.org/packages/28/de/49493f962bd3c586ab4b88066e967aa2e0703d6ef2c43aa28cb83bf7b507/wrapt-1.17.3-cp312-cp312-win_amd64.whl", hash = "sha256:e71d5c6ebac14875668a1e90baf2ea0ef5b7ac7918355850c0908ae82bcb297c", size = 38877, upload_time = "2025-08-12T05:53:05.436Z" }, + { url = "https://files.pythonhosted.org/packages/f1/48/0f7102fe9cb1e8a5a77f80d4f0956d62d97034bbe88d33e94699f99d181d/wrapt-1.17.3-cp312-cp312-win_arm64.whl", hash = "sha256:604d076c55e2fdd4c1c03d06dc1a31b95130010517b5019db15365ec4a405fc6", size = 36885, upload_time = "2025-08-12T05:52:54.367Z" }, + { url = "https://files.pythonhosted.org/packages/fc/f6/759ece88472157acb55fc195e5b116e06730f1b651b5b314c66291729193/wrapt-1.17.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a47681378a0439215912ef542c45a783484d4dd82bac412b71e59cf9c0e1cea0", size = 54003, upload_time = "2025-08-12T05:51:48.627Z" }, + { url = "https://files.pythonhosted.org/packages/4f/a9/49940b9dc6d47027dc850c116d79b4155f15c08547d04db0f07121499347/wrapt-1.17.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:54a30837587c6ee3cd1a4d1c2ec5d24e77984d44e2f34547e2323ddb4e22eb77", size = 39025, upload_time = "2025-08-12T05:51:37.156Z" }, + { url = "https://files.pythonhosted.org/packages/45/35/6a08de0f2c96dcdd7fe464d7420ddb9a7655a6561150e5fc4da9356aeaab/wrapt-1.17.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:16ecf15d6af39246fe33e507105d67e4b81d8f8d2c6598ff7e3ca1b8a37213f7", size = 39108, upload_time = "2025-08-12T05:51:58.425Z" }, + { url = "https://files.pythonhosted.org/packages/0c/37/6faf15cfa41bf1f3dba80cd3f5ccc6622dfccb660ab26ed79f0178c7497f/wrapt-1.17.3-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:6fd1ad24dc235e4ab88cda009e19bf347aabb975e44fd5c2fb22a3f6e4141277", size = 88072, upload_time = "2025-08-12T05:52:37.53Z" }, + { url = "https://files.pythonhosted.org/packages/78/f2/efe19ada4a38e4e15b6dff39c3e3f3f73f5decf901f66e6f72fe79623a06/wrapt-1.17.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0ed61b7c2d49cee3c027372df5809a59d60cf1b6c2f81ee980a091f3afed6a2d", size = 88214, upload_time = "2025-08-12T05:52:15.886Z" }, + { url = "https://files.pythonhosted.org/packages/40/90/ca86701e9de1622b16e09689fc24b76f69b06bb0150990f6f4e8b0eeb576/wrapt-1.17.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:423ed5420ad5f5529db9ce89eac09c8a2f97da18eb1c870237e84c5a5c2d60aa", size = 87105, upload_time = "2025-08-12T05:52:17.914Z" }, + { url = "https://files.pythonhosted.org/packages/fd/e0/d10bd257c9a3e15cbf5523025252cc14d77468e8ed644aafb2d6f54cb95d/wrapt-1.17.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e01375f275f010fcbf7f643b4279896d04e571889b8a5b3f848423d91bf07050", size = 87766, upload_time = "2025-08-12T05:52:39.243Z" }, + { url = "https://files.pythonhosted.org/packages/e8/cf/7d848740203c7b4b27eb55dbfede11aca974a51c3d894f6cc4b865f42f58/wrapt-1.17.3-cp313-cp313-win32.whl", hash = "sha256:53e5e39ff71b3fc484df8a522c933ea2b7cdd0d5d15ae82e5b23fde87d44cbd8", size = 36711, upload_time = "2025-08-12T05:53:10.074Z" }, + { url = "https://files.pythonhosted.org/packages/57/54/35a84d0a4d23ea675994104e667ceff49227ce473ba6a59ba2c84f250b74/wrapt-1.17.3-cp313-cp313-win_amd64.whl", hash = "sha256:1f0b2f40cf341ee8cc1a97d51ff50dddb9fcc73241b9143ec74b30fc4f44f6cb", size = 38885, upload_time = "2025-08-12T05:53:08.695Z" }, + { url = "https://files.pythonhosted.org/packages/01/77/66e54407c59d7b02a3c4e0af3783168fff8e5d61def52cda8728439d86bc/wrapt-1.17.3-cp313-cp313-win_arm64.whl", hash = "sha256:7425ac3c54430f5fc5e7b6f41d41e704db073309acfc09305816bc6a0b26bb16", size = 36896, upload_time = "2025-08-12T05:52:55.34Z" }, + { url = "https://files.pythonhosted.org/packages/02/a2/cd864b2a14f20d14f4c496fab97802001560f9f41554eef6df201cd7f76c/wrapt-1.17.3-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:cf30f6e3c077c8e6a9a7809c94551203c8843e74ba0c960f4a98cd80d4665d39", size = 54132, upload_time = "2025-08-12T05:51:49.864Z" }, + { url = "https://files.pythonhosted.org/packages/d5/46/d011725b0c89e853dc44cceb738a307cde5d240d023d6d40a82d1b4e1182/wrapt-1.17.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:e228514a06843cae89621384cfe3a80418f3c04aadf8a3b14e46a7be704e4235", size = 39091, upload_time = "2025-08-12T05:51:38.935Z" }, + { url = "https://files.pythonhosted.org/packages/2e/9e/3ad852d77c35aae7ddebdbc3b6d35ec8013af7d7dddad0ad911f3d891dae/wrapt-1.17.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:5ea5eb3c0c071862997d6f3e02af1d055f381b1d25b286b9d6644b79db77657c", size = 39172, upload_time = "2025-08-12T05:51:59.365Z" }, + { url = "https://files.pythonhosted.org/packages/c3/f7/c983d2762bcce2326c317c26a6a1e7016f7eb039c27cdf5c4e30f4160f31/wrapt-1.17.3-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:281262213373b6d5e4bb4353bc36d1ba4084e6d6b5d242863721ef2bf2c2930b", size = 87163, upload_time = "2025-08-12T05:52:40.965Z" }, + { url = "https://files.pythonhosted.org/packages/e4/0f/f673f75d489c7f22d17fe0193e84b41540d962f75fce579cf6873167c29b/wrapt-1.17.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dc4a8d2b25efb6681ecacad42fca8859f88092d8732b170de6a5dddd80a1c8fa", size = 87963, upload_time = "2025-08-12T05:52:20.326Z" }, + { url = "https://files.pythonhosted.org/packages/df/61/515ad6caca68995da2fac7a6af97faab8f78ebe3bf4f761e1b77efbc47b5/wrapt-1.17.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:373342dd05b1d07d752cecbec0c41817231f29f3a89aa8b8843f7b95992ed0c7", size = 86945, upload_time = "2025-08-12T05:52:21.581Z" }, + { url = "https://files.pythonhosted.org/packages/d3/bd/4e70162ce398462a467bc09e768bee112f1412e563620adc353de9055d33/wrapt-1.17.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d40770d7c0fd5cbed9d84b2c3f2e156431a12c9a37dc6284060fb4bec0b7ffd4", size = 86857, upload_time = "2025-08-12T05:52:43.043Z" }, + { url = "https://files.pythonhosted.org/packages/2b/b8/da8560695e9284810b8d3df8a19396a6e40e7518059584a1a394a2b35e0a/wrapt-1.17.3-cp314-cp314-win32.whl", hash = "sha256:fbd3c8319de8e1dc79d346929cd71d523622da527cca14e0c1d257e31c2b8b10", size = 37178, upload_time = "2025-08-12T05:53:12.605Z" }, + { url = "https://files.pythonhosted.org/packages/db/c8/b71eeb192c440d67a5a0449aaee2310a1a1e8eca41676046f99ed2487e9f/wrapt-1.17.3-cp314-cp314-win_amd64.whl", hash = "sha256:e1a4120ae5705f673727d3253de3ed0e016f7cd78dc463db1b31e2463e1f3cf6", size = 39310, upload_time = "2025-08-12T05:53:11.106Z" }, + { url = "https://files.pythonhosted.org/packages/45/20/2cda20fd4865fa40f86f6c46ed37a2a8356a7a2fde0773269311f2af56c7/wrapt-1.17.3-cp314-cp314-win_arm64.whl", hash = "sha256:507553480670cab08a800b9463bdb881b2edeed77dc677b0a5915e6106e91a58", size = 37266, upload_time = "2025-08-12T05:52:56.531Z" }, + { url = "https://files.pythonhosted.org/packages/77/ed/dd5cf21aec36c80443c6f900449260b80e2a65cf963668eaef3b9accce36/wrapt-1.17.3-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:ed7c635ae45cfbc1a7371f708727bf74690daedc49b4dba310590ca0bd28aa8a", size = 56544, upload_time = "2025-08-12T05:51:51.109Z" }, + { url = "https://files.pythonhosted.org/packages/8d/96/450c651cc753877ad100c7949ab4d2e2ecc4d97157e00fa8f45df682456a/wrapt-1.17.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:249f88ed15503f6492a71f01442abddd73856a0032ae860de6d75ca62eed8067", size = 40283, upload_time = "2025-08-12T05:51:39.912Z" }, + { url = "https://files.pythonhosted.org/packages/d1/86/2fcad95994d9b572db57632acb6f900695a648c3e063f2cd344b3f5c5a37/wrapt-1.17.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5a03a38adec8066d5a37bea22f2ba6bbf39fcdefbe2d91419ab864c3fb515454", size = 40366, upload_time = "2025-08-12T05:52:00.693Z" }, + { url = "https://files.pythonhosted.org/packages/64/0e/f4472f2fdde2d4617975144311f8800ef73677a159be7fe61fa50997d6c0/wrapt-1.17.3-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:5d4478d72eb61c36e5b446e375bbc49ed002430d17cdec3cecb36993398e1a9e", size = 108571, upload_time = "2025-08-12T05:52:44.521Z" }, + { url = "https://files.pythonhosted.org/packages/cc/01/9b85a99996b0a97c8a17484684f206cbb6ba73c1ce6890ac668bcf3838fb/wrapt-1.17.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:223db574bb38637e8230eb14b185565023ab624474df94d2af18f1cdb625216f", size = 113094, upload_time = "2025-08-12T05:52:22.618Z" }, + { url = "https://files.pythonhosted.org/packages/25/02/78926c1efddcc7b3aa0bc3d6b33a822f7d898059f7cd9ace8c8318e559ef/wrapt-1.17.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e405adefb53a435f01efa7ccdec012c016b5a1d3f35459990afc39b6be4d5056", size = 110659, upload_time = "2025-08-12T05:52:24.057Z" }, + { url = "https://files.pythonhosted.org/packages/dc/ee/c414501ad518ac3e6fe184753632fe5e5ecacdcf0effc23f31c1e4f7bfcf/wrapt-1.17.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:88547535b787a6c9ce4086917b6e1d291aa8ed914fdd3a838b3539dc95c12804", size = 106946, upload_time = "2025-08-12T05:52:45.976Z" }, + { url = "https://files.pythonhosted.org/packages/be/44/a1bd64b723d13bb151d6cc91b986146a1952385e0392a78567e12149c7b4/wrapt-1.17.3-cp314-cp314t-win32.whl", hash = "sha256:41b1d2bc74c2cac6f9074df52b2efbef2b30bdfe5f40cb78f8ca22963bc62977", size = 38717, upload_time = "2025-08-12T05:53:15.214Z" }, + { url = "https://files.pythonhosted.org/packages/79/d9/7cfd5a312760ac4dd8bf0184a6ee9e43c33e47f3dadc303032ce012b8fa3/wrapt-1.17.3-cp314-cp314t-win_amd64.whl", hash = "sha256:73d496de46cd2cdbdbcce4ae4bcdb4afb6a11234a1df9c085249d55166b95116", size = 41334, upload_time = "2025-08-12T05:53:14.178Z" }, + { url = "https://files.pythonhosted.org/packages/46/78/10ad9781128ed2f99dbc474f43283b13fea8ba58723e98844367531c18e9/wrapt-1.17.3-cp314-cp314t-win_arm64.whl", hash = "sha256:f38e60678850c42461d4202739f9bf1e3a737c7ad283638251e79cc49effb6b6", size = 38471, upload_time = "2025-08-12T05:52:57.784Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f6/a933bd70f98e9cf3e08167fc5cd7aaaca49147e48411c0bd5ae701bb2194/wrapt-1.17.3-py3-none-any.whl", hash = "sha256:7171ae35d2c33d326ac19dd8facb1e82e5fd04ef8c6c0e394d7af55a55051c22", size = 23591, upload_time = "2025-08-12T05:53:20.674Z" }, +] + +[[package]] +name = "yarl" +version = "1.20.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "idna" }, + { name = "multidict" }, + { name = "propcache" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3c/fb/efaa23fa4e45537b827620f04cf8f3cd658b76642205162e072703a5b963/yarl-1.20.1.tar.gz", hash = "sha256:d017a4997ee50c91fd5466cef416231bb82177b93b029906cefc542ce14c35ac", size = 186428, upload_time = "2025-06-10T00:46:09.923Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5f/9a/cb7fad7d73c69f296eda6815e4a2c7ed53fc70c2f136479a91c8e5fbdb6d/yarl-1.20.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:bdcc4cd244e58593a4379fe60fdee5ac0331f8eb70320a24d591a3be197b94a9", size = 133667, upload_time = "2025-06-10T00:43:44.369Z" }, + { url = "https://files.pythonhosted.org/packages/67/38/688577a1cb1e656e3971fb66a3492501c5a5df56d99722e57c98249e5b8a/yarl-1.20.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b29a2c385a5f5b9c7d9347e5812b6f7ab267193c62d282a540b4fc528c8a9d2a", size = 91025, upload_time = "2025-06-10T00:43:46.295Z" }, + { url = "https://files.pythonhosted.org/packages/50/ec/72991ae51febeb11a42813fc259f0d4c8e0507f2b74b5514618d8b640365/yarl-1.20.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1112ae8154186dfe2de4732197f59c05a83dc814849a5ced892b708033f40dc2", size = 89709, upload_time = "2025-06-10T00:43:48.22Z" }, + { url = "https://files.pythonhosted.org/packages/99/da/4d798025490e89426e9f976702e5f9482005c548c579bdae792a4c37769e/yarl-1.20.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:90bbd29c4fe234233f7fa2b9b121fb63c321830e5d05b45153a2ca68f7d310ee", size = 352287, upload_time = "2025-06-10T00:43:49.924Z" }, + { url = "https://files.pythonhosted.org/packages/1a/26/54a15c6a567aac1c61b18aa0f4b8aa2e285a52d547d1be8bf48abe2b3991/yarl-1.20.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:680e19c7ce3710ac4cd964e90dad99bf9b5029372ba0c7cbfcd55e54d90ea819", size = 345429, upload_time = "2025-06-10T00:43:51.7Z" }, + { url = "https://files.pythonhosted.org/packages/d6/95/9dcf2386cb875b234353b93ec43e40219e14900e046bf6ac118f94b1e353/yarl-1.20.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4a979218c1fdb4246a05efc2cc23859d47c89af463a90b99b7c56094daf25a16", size = 365429, upload_time = "2025-06-10T00:43:53.494Z" }, + { url = "https://files.pythonhosted.org/packages/91/b2/33a8750f6a4bc224242a635f5f2cff6d6ad5ba651f6edcccf721992c21a0/yarl-1.20.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:255b468adf57b4a7b65d8aad5b5138dce6a0752c139965711bdcb81bc370e1b6", size = 363862, upload_time = "2025-06-10T00:43:55.766Z" }, + { url = "https://files.pythonhosted.org/packages/98/28/3ab7acc5b51f4434b181b0cee8f1f4b77a65919700a355fb3617f9488874/yarl-1.20.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a97d67108e79cfe22e2b430d80d7571ae57d19f17cda8bb967057ca8a7bf5bfd", size = 355616, upload_time = "2025-06-10T00:43:58.056Z" }, + { url = "https://files.pythonhosted.org/packages/36/a3/f666894aa947a371724ec7cd2e5daa78ee8a777b21509b4252dd7bd15e29/yarl-1.20.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8570d998db4ddbfb9a590b185a0a33dbf8aafb831d07a5257b4ec9948df9cb0a", size = 339954, upload_time = "2025-06-10T00:43:59.773Z" }, + { url = "https://files.pythonhosted.org/packages/f1/81/5f466427e09773c04219d3450d7a1256138a010b6c9f0af2d48565e9ad13/yarl-1.20.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:97c75596019baae7c71ccf1d8cc4738bc08134060d0adfcbe5642f778d1dca38", size = 365575, upload_time = "2025-06-10T00:44:02.051Z" }, + { url = "https://files.pythonhosted.org/packages/2e/e3/e4b0ad8403e97e6c9972dd587388940a032f030ebec196ab81a3b8e94d31/yarl-1.20.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:1c48912653e63aef91ff988c5432832692ac5a1d8f0fb8a33091520b5bbe19ef", size = 365061, upload_time = "2025-06-10T00:44:04.196Z" }, + { url = "https://files.pythonhosted.org/packages/ac/99/b8a142e79eb86c926f9f06452eb13ecb1bb5713bd01dc0038faf5452e544/yarl-1.20.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4c3ae28f3ae1563c50f3d37f064ddb1511ecc1d5584e88c6b7c63cf7702a6d5f", size = 364142, upload_time = "2025-06-10T00:44:06.527Z" }, + { url = "https://files.pythonhosted.org/packages/34/f2/08ed34a4a506d82a1a3e5bab99ccd930a040f9b6449e9fd050320e45845c/yarl-1.20.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c5e9642f27036283550f5f57dc6156c51084b458570b9d0d96100c8bebb186a8", size = 381894, upload_time = "2025-06-10T00:44:08.379Z" }, + { url = "https://files.pythonhosted.org/packages/92/f8/9a3fbf0968eac704f681726eff595dce9b49c8a25cd92bf83df209668285/yarl-1.20.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:2c26b0c49220d5799f7b22c6838409ee9bc58ee5c95361a4d7831f03cc225b5a", size = 383378, upload_time = "2025-06-10T00:44:10.51Z" }, + { url = "https://files.pythonhosted.org/packages/af/85/9363f77bdfa1e4d690957cd39d192c4cacd1c58965df0470a4905253b54f/yarl-1.20.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:564ab3d517e3d01c408c67f2e5247aad4019dcf1969982aba3974b4093279004", size = 374069, upload_time = "2025-06-10T00:44:12.834Z" }, + { url = "https://files.pythonhosted.org/packages/35/99/9918c8739ba271dcd935400cff8b32e3cd319eaf02fcd023d5dcd487a7c8/yarl-1.20.1-cp312-cp312-win32.whl", hash = "sha256:daea0d313868da1cf2fac6b2d3a25c6e3a9e879483244be38c8e6a41f1d876a5", size = 81249, upload_time = "2025-06-10T00:44:14.731Z" }, + { url = "https://files.pythonhosted.org/packages/eb/83/5d9092950565481b413b31a23e75dd3418ff0a277d6e0abf3729d4d1ce25/yarl-1.20.1-cp312-cp312-win_amd64.whl", hash = "sha256:48ea7d7f9be0487339828a4de0360d7ce0efc06524a48e1810f945c45b813698", size = 86710, upload_time = "2025-06-10T00:44:16.716Z" }, + { url = "https://files.pythonhosted.org/packages/8a/e1/2411b6d7f769a07687acee88a062af5833cf1966b7266f3d8dfb3d3dc7d3/yarl-1.20.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:0b5ff0fbb7c9f1b1b5ab53330acbfc5247893069e7716840c8e7d5bb7355038a", size = 131811, upload_time = "2025-06-10T00:44:18.933Z" }, + { url = "https://files.pythonhosted.org/packages/b2/27/584394e1cb76fb771371770eccad35de400e7b434ce3142c2dd27392c968/yarl-1.20.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:14f326acd845c2b2e2eb38fb1346c94f7f3b01a4f5c788f8144f9b630bfff9a3", size = 90078, upload_time = "2025-06-10T00:44:20.635Z" }, + { url = "https://files.pythonhosted.org/packages/bf/9a/3246ae92d4049099f52d9b0fe3486e3b500e29b7ea872d0f152966fc209d/yarl-1.20.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f60e4ad5db23f0b96e49c018596707c3ae89f5d0bd97f0ad3684bcbad899f1e7", size = 88748, upload_time = "2025-06-10T00:44:22.34Z" }, + { url = "https://files.pythonhosted.org/packages/a3/25/35afe384e31115a1a801fbcf84012d7a066d89035befae7c5d4284df1e03/yarl-1.20.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:49bdd1b8e00ce57e68ba51916e4bb04461746e794e7c4d4bbc42ba2f18297691", size = 349595, upload_time = "2025-06-10T00:44:24.314Z" }, + { url = "https://files.pythonhosted.org/packages/28/2d/8aca6cb2cabc8f12efcb82749b9cefecbccfc7b0384e56cd71058ccee433/yarl-1.20.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:66252d780b45189975abfed839616e8fd2dbacbdc262105ad7742c6ae58f3e31", size = 342616, upload_time = "2025-06-10T00:44:26.167Z" }, + { url = "https://files.pythonhosted.org/packages/0b/e9/1312633d16b31acf0098d30440ca855e3492d66623dafb8e25b03d00c3da/yarl-1.20.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:59174e7332f5d153d8f7452a102b103e2e74035ad085f404df2e40e663a22b28", size = 361324, upload_time = "2025-06-10T00:44:27.915Z" }, + { url = "https://files.pythonhosted.org/packages/bc/a0/688cc99463f12f7669eec7c8acc71ef56a1521b99eab7cd3abb75af887b0/yarl-1.20.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e3968ec7d92a0c0f9ac34d5ecfd03869ec0cab0697c91a45db3fbbd95fe1b653", size = 359676, upload_time = "2025-06-10T00:44:30.041Z" }, + { url = "https://files.pythonhosted.org/packages/af/44/46407d7f7a56e9a85a4c207724c9f2c545c060380718eea9088f222ba697/yarl-1.20.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d1a4fbb50e14396ba3d375f68bfe02215d8e7bc3ec49da8341fe3157f59d2ff5", size = 352614, upload_time = "2025-06-10T00:44:32.171Z" }, + { url = "https://files.pythonhosted.org/packages/b1/91/31163295e82b8d5485d31d9cf7754d973d41915cadce070491778d9c9825/yarl-1.20.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:11a62c839c3a8eac2410e951301309426f368388ff2f33799052787035793b02", size = 336766, upload_time = "2025-06-10T00:44:34.494Z" }, + { url = "https://files.pythonhosted.org/packages/b4/8e/c41a5bc482121f51c083c4c2bcd16b9e01e1cf8729e380273a952513a21f/yarl-1.20.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:041eaa14f73ff5a8986b4388ac6bb43a77f2ea09bf1913df7a35d4646db69e53", size = 364615, upload_time = "2025-06-10T00:44:36.856Z" }, + { url = "https://files.pythonhosted.org/packages/e3/5b/61a3b054238d33d70ea06ebba7e58597891b71c699e247df35cc984ab393/yarl-1.20.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:377fae2fef158e8fd9d60b4c8751387b8d1fb121d3d0b8e9b0be07d1b41e83dc", size = 360982, upload_time = "2025-06-10T00:44:39.141Z" }, + { url = "https://files.pythonhosted.org/packages/df/a3/6a72fb83f8d478cb201d14927bc8040af901811a88e0ff2da7842dd0ed19/yarl-1.20.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:1c92f4390e407513f619d49319023664643d3339bd5e5a56a3bebe01bc67ec04", size = 369792, upload_time = "2025-06-10T00:44:40.934Z" }, + { url = "https://files.pythonhosted.org/packages/7c/af/4cc3c36dfc7c077f8dedb561eb21f69e1e9f2456b91b593882b0b18c19dc/yarl-1.20.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:d25ddcf954df1754ab0f86bb696af765c5bfaba39b74095f27eececa049ef9a4", size = 382049, upload_time = "2025-06-10T00:44:42.854Z" }, + { url = "https://files.pythonhosted.org/packages/19/3a/e54e2c4752160115183a66dc9ee75a153f81f3ab2ba4bf79c3c53b33de34/yarl-1.20.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:909313577e9619dcff8c31a0ea2aa0a2a828341d92673015456b3ae492e7317b", size = 384774, upload_time = "2025-06-10T00:44:45.275Z" }, + { url = "https://files.pythonhosted.org/packages/9c/20/200ae86dabfca89060ec6447649f219b4cbd94531e425e50d57e5f5ac330/yarl-1.20.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:793fd0580cb9664548c6b83c63b43c477212c0260891ddf86809e1c06c8b08f1", size = 374252, upload_time = "2025-06-10T00:44:47.31Z" }, + { url = "https://files.pythonhosted.org/packages/83/75/11ee332f2f516b3d094e89448da73d557687f7d137d5a0f48c40ff211487/yarl-1.20.1-cp313-cp313-win32.whl", hash = "sha256:468f6e40285de5a5b3c44981ca3a319a4b208ccc07d526b20b12aeedcfa654b7", size = 81198, upload_time = "2025-06-10T00:44:49.164Z" }, + { url = "https://files.pythonhosted.org/packages/ba/ba/39b1ecbf51620b40ab402b0fc817f0ff750f6d92712b44689c2c215be89d/yarl-1.20.1-cp313-cp313-win_amd64.whl", hash = "sha256:495b4ef2fea40596bfc0affe3837411d6aa3371abcf31aac0ccc4bdd64d4ef5c", size = 86346, upload_time = "2025-06-10T00:44:51.182Z" }, + { url = "https://files.pythonhosted.org/packages/43/c7/669c52519dca4c95153c8ad96dd123c79f354a376346b198f438e56ffeb4/yarl-1.20.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:f60233b98423aab21d249a30eb27c389c14929f47be8430efa7dbd91493a729d", size = 138826, upload_time = "2025-06-10T00:44:52.883Z" }, + { url = "https://files.pythonhosted.org/packages/6a/42/fc0053719b44f6ad04a75d7f05e0e9674d45ef62f2d9ad2c1163e5c05827/yarl-1.20.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:6f3eff4cc3f03d650d8755c6eefc844edde99d641d0dcf4da3ab27141a5f8ddf", size = 93217, upload_time = "2025-06-10T00:44:54.658Z" }, + { url = "https://files.pythonhosted.org/packages/4f/7f/fa59c4c27e2a076bba0d959386e26eba77eb52ea4a0aac48e3515c186b4c/yarl-1.20.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:69ff8439d8ba832d6bed88af2c2b3445977eba9a4588b787b32945871c2444e3", size = 92700, upload_time = "2025-06-10T00:44:56.784Z" }, + { url = "https://files.pythonhosted.org/packages/2f/d4/062b2f48e7c93481e88eff97a6312dca15ea200e959f23e96d8ab898c5b8/yarl-1.20.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3cf34efa60eb81dd2645a2e13e00bb98b76c35ab5061a3989c7a70f78c85006d", size = 347644, upload_time = "2025-06-10T00:44:59.071Z" }, + { url = "https://files.pythonhosted.org/packages/89/47/78b7f40d13c8f62b499cc702fdf69e090455518ae544c00a3bf4afc9fc77/yarl-1.20.1-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:8e0fe9364ad0fddab2688ce72cb7a8e61ea42eff3c7caeeb83874a5d479c896c", size = 323452, upload_time = "2025-06-10T00:45:01.605Z" }, + { url = "https://files.pythonhosted.org/packages/eb/2b/490d3b2dc66f52987d4ee0d3090a147ea67732ce6b4d61e362c1846d0d32/yarl-1.20.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8f64fbf81878ba914562c672024089e3401974a39767747691c65080a67b18c1", size = 346378, upload_time = "2025-06-10T00:45:03.946Z" }, + { url = "https://files.pythonhosted.org/packages/66/ad/775da9c8a94ce925d1537f939a4f17d782efef1f973039d821cbe4bcc211/yarl-1.20.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f6342d643bf9a1de97e512e45e4b9560a043347e779a173250824f8b254bd5ce", size = 353261, upload_time = "2025-06-10T00:45:05.992Z" }, + { url = "https://files.pythonhosted.org/packages/4b/23/0ed0922b47a4f5c6eb9065d5ff1e459747226ddce5c6a4c111e728c9f701/yarl-1.20.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56dac5f452ed25eef0f6e3c6a066c6ab68971d96a9fb441791cad0efba6140d3", size = 335987, upload_time = "2025-06-10T00:45:08.227Z" }, + { url = "https://files.pythonhosted.org/packages/3e/49/bc728a7fe7d0e9336e2b78f0958a2d6b288ba89f25a1762407a222bf53c3/yarl-1.20.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7d7f497126d65e2cad8dc5f97d34c27b19199b6414a40cb36b52f41b79014be", size = 329361, upload_time = "2025-06-10T00:45:10.11Z" }, + { url = "https://files.pythonhosted.org/packages/93/8f/b811b9d1f617c83c907e7082a76e2b92b655400e61730cd61a1f67178393/yarl-1.20.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:67e708dfb8e78d8a19169818eeb5c7a80717562de9051bf2413aca8e3696bf16", size = 346460, upload_time = "2025-06-10T00:45:12.055Z" }, + { url = "https://files.pythonhosted.org/packages/70/fd/af94f04f275f95da2c3b8b5e1d49e3e79f1ed8b6ceb0f1664cbd902773ff/yarl-1.20.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:595c07bc79af2494365cc96ddeb772f76272364ef7c80fb892ef9d0649586513", size = 334486, upload_time = "2025-06-10T00:45:13.995Z" }, + { url = "https://files.pythonhosted.org/packages/84/65/04c62e82704e7dd0a9b3f61dbaa8447f8507655fd16c51da0637b39b2910/yarl-1.20.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:7bdd2f80f4a7df852ab9ab49484a4dee8030023aa536df41f2d922fd57bf023f", size = 342219, upload_time = "2025-06-10T00:45:16.479Z" }, + { url = "https://files.pythonhosted.org/packages/91/95/459ca62eb958381b342d94ab9a4b6aec1ddec1f7057c487e926f03c06d30/yarl-1.20.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:c03bfebc4ae8d862f853a9757199677ab74ec25424d0ebd68a0027e9c639a390", size = 350693, upload_time = "2025-06-10T00:45:18.399Z" }, + { url = "https://files.pythonhosted.org/packages/a6/00/d393e82dd955ad20617abc546a8f1aee40534d599ff555ea053d0ec9bf03/yarl-1.20.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:344d1103e9c1523f32a5ed704d576172d2cabed3122ea90b1d4e11fe17c66458", size = 355803, upload_time = "2025-06-10T00:45:20.677Z" }, + { url = "https://files.pythonhosted.org/packages/9e/ed/c5fb04869b99b717985e244fd93029c7a8e8febdfcffa06093e32d7d44e7/yarl-1.20.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:88cab98aa4e13e1ade8c141daeedd300a4603b7132819c484841bb7af3edce9e", size = 341709, upload_time = "2025-06-10T00:45:23.221Z" }, + { url = "https://files.pythonhosted.org/packages/24/fd/725b8e73ac2a50e78a4534ac43c6addf5c1c2d65380dd48a9169cc6739a9/yarl-1.20.1-cp313-cp313t-win32.whl", hash = "sha256:b121ff6a7cbd4abc28985b6028235491941b9fe8fe226e6fdc539c977ea1739d", size = 86591, upload_time = "2025-06-10T00:45:25.793Z" }, + { url = "https://files.pythonhosted.org/packages/94/c3/b2e9f38bc3e11191981d57ea08cab2166e74ea770024a646617c9cddd9f6/yarl-1.20.1-cp313-cp313t-win_amd64.whl", hash = "sha256:541d050a355bbbc27e55d906bc91cb6fe42f96c01413dd0f4ed5a5240513874f", size = 93003, upload_time = "2025-06-10T00:45:27.752Z" }, + { url = "https://files.pythonhosted.org/packages/b4/2d/2345fce04cfd4bee161bf1e7d9cdc702e3e16109021035dbb24db654a622/yarl-1.20.1-py3-none-any.whl", hash = "sha256:83b8eb083fe4683c6115795d9fc1cfaf2cbbefb19b3a1cb68f6527460f483a77", size = 46542, upload_time = "2025-06-10T00:46:07.521Z" }, +] + +[[package]] +name = "zarr" +version = "2.18.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "asciitree" }, + { name = "fasteners", marker = "sys_platform != 'emscripten'" }, + { 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, 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, upload_time = "2025-04-09T07:59:27.039Z" }, +] + +[[package]] +name = "zarr-checksum" +version = "0.4.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "tqdm" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b4/af/eb603e6d7f02d16a60b05335ed97a08de4c71f5b109c2a65f3a571d2c4be/zarr_checksum-0.4.7.tar.gz", hash = "sha256:081f163d52533a286bc8249a241da5614b5dab0c06377b208980dc205e272da9", size = 12414, upload_time = "2025-04-01T15:54:48.548Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e3/6b/a57376f2713b79e5f2eb8003ebc569aa3201a36779ee1472404f183e3c87/zarr_checksum-0.4.7-py3-none-any.whl", hash = "sha256:97cbffe2288338f9083f92a2312052f045fb2154a6f4ddbbcb1bde109b6fd22e", size = 15292, upload_time = "2025-04-01T15:54:47.27Z" }, +] From 9da64817a67b710583259c698a66c3101d024f38 Mon Sep 17 00:00:00 2001 From: ncguilbeault Date: Tue, 14 Oct 2025 18:26:27 +0100 Subject: [PATCH 11/17] Updated README --- .../NeuralLatents/EstimatingParameters/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/README.md b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/README.md index 7b5082a..4639845 100644 --- a/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/README.md +++ b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/README.md @@ -23,7 +23,7 @@ The example workflow is shown here: ![Estimate Parameters](EstimateParameters.bonsai) ::: -The first group node, `LoadData`, loads the training dataset and converts it into a `Tensor` object. It then reshapes it so that the dimensions are `time` x `neurons` and passes it to a `ReplaySubject` called `SpikeCounts` to be used in the downstream processing pipeline. In this example, the entire batch of data are loaded. +The first group node, `LoadData`, loads the training dataset and converts it into a `Tensor` object. It then reshapes it so that the dimensions are `time` x `neurons` and passes it to a `ReplaySubject` called `SpikeCounts` to be used in the downstream processing pipeline. In this example, the entire batch of data is loaded at once. The `LoadModel` group node uses the `CreateKalmanFilter` node to specify the model. We leave the optional parameters blank. We set the `NumStates` to `10` and the `NumObservations` to `142` to match the number of spiking neurons contained in the dataset. This then feeds into a `BehaviorSubject` node called `KalmanFilterModel` for use in other parts of the workflow. From 36cd69341a983ac34f5fa882a9406d717c023769 Mon Sep 17 00:00:00 2001 From: ncguilbeault Date: Tue, 28 Oct 2025 14:36:43 +0000 Subject: [PATCH 12/17] Updated examples in line with new package naming --- .../EstimateParameters.bonsai | 115 ++++++++++++++---- 1 file changed, 89 insertions(+), 26 deletions(-) diff --git a/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/EstimateParameters.bonsai b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/EstimateParameters.bonsai index af8b0a8..ade788f 100644 --- a/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/EstimateParameters.bonsai +++ b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/EstimateParameters.bonsai @@ -5,8 +5,8 @@ xmlns:p1="clr-namespace:Bonsai.ML.Torch;assembly=Bonsai.ML.Torch" xmlns:rx="clr-namespace:Bonsai.Reactive;assembly=Bonsai.Core" xmlns:p2="clr-namespace:Bonsai.ML.Lds.Torch;assembly=Bonsai.ML.Lds.Torch" - xmlns:scr="clr-namespace:Bonsai.Scripting.Expressions;assembly=Bonsai.Scripting.Expressions" xmlns:ui="clr-namespace:Bonsai.Design;assembly=Bonsai.Design" + xmlns:scr="clr-namespace:Bonsai.Scripting.Expressions;assembly=Bonsai.Scripting.Expressions" xmlns:p3="clr-namespace:Bonsai.ML.Lds.Torch.Design;assembly=Bonsai.ML.Lds.Torch.Design" xmlns="https://bonsai-rx.org/2018/workflow"> @@ -70,7 +70,6 @@ - KalmanFilter Float64 10 142 @@ -100,9 +99,21 @@ SpikeCounts + + KalmanFilterModel + + + Parameters + + + + + + - KalmanFilter + 2 + 10 10 0.1 true @@ -114,6 +125,12 @@ true + + true + + + + @@ -131,6 +148,20 @@ + + Parameters + + + KalmanFilterModel + + + + + + + + + ExpectationMaximizationResult @@ -142,11 +173,19 @@ - + - - + + + + + + + + + + @@ -157,10 +196,16 @@ SpikeCounts + + KalmanFilterModel + + + + + + - - KalmanFilter - + UpdatedFilteredResult @@ -174,10 +219,16 @@ UpdatedFilteredResult + + KalmanFilterModel + + + + + + - - KalmanFilter - + UpdatedSmoothedResult @@ -185,10 +236,16 @@ UpdatedSmoothedResult + + KalmanFilterModel + + + + + + - - KalmanFilter - + OrthogonalizedResult @@ -244,10 +301,10 @@ - + Float32 - [[-8.795354, 0.002164141, 7.56382E-05, -2.363834E-05, -5.15293E-06, 0.0001483039, -2.777361E-05, -5.953018E-06, -3.695483E-05, 1.815893E-05]] - [[[2.933708, 8.711358E-06, 4.451293E-06, -7.569341E-08, -8.818488E-07, 2.81094E-07, -6.41004E-08, -1.231459E-06, 1.977342E-07, -4.267149E-07], [8.711358E-06, 0.000198096, 3.131335E-09, -7.42367E-10, -5.885209E-09, -2.825571E-09, -1.192377E-09, -1.782066E-09, -2.267036E-09, 2.386495E-10], [4.451293E-06, 3.131335E-09, 4.985891E-05, -7.335216E-10, 2.460339E-10, 9.609284E-10, -2.088825E-10, 1.511517E-09, 4.920012E-10, 2.324915E-10], [-7.569341E-08, -7.42367E-10, -7.335216E-10, 3.403751E-05, 4.842198E-10, 6.143238E-10, -4.056797E-10, -5.8914E-10, -5.523358E-11, 2.215748E-11], [-8.818488E-07, -5.885209E-09, 2.460339E-10, 4.842198E-10, 2.522797E-05, -9.49988E-10, 1.527901E-10, 3.71208E-11, -1.238991E-10, -4.813097E-11], [2.81094E-07, -2.825571E-09, 9.609284E-10, 6.143238E-10, -9.49988E-10, 2.271433E-05, 1.389039E-10, -1.712359E-10, 1.213243E-10, -4.842049E-11], [-6.41004E-08, -1.192377E-09, -2.088825E-10, -4.056797E-10, 1.527901E-10, 1.389039E-10, 2.053487E-05, -5.178224E-11, -1.111919E-10, 1.701798E-12], [-1.231459E-06, -1.782066E-09, 1.511517E-09, -5.8914E-10, 3.71208E-11, -1.712359E-10, -5.178224E-11, 1.513379E-05, 1.367752E-10, -5.611431E-11], [1.977342E-07, -2.267036E-09, 4.920012E-10, -5.523358E-11, -1.238991E-10, 1.213243E-10, -1.111919E-10, 1.367752E-10, 1.024639E-05, -2.804446E-11], [-4.267149E-07, 2.386495E-10, 2.324915E-10, 2.215748E-11, -4.813097E-11, -4.842049E-11, 1.701798E-12, -5.611431E-11, -2.804446E-11, 2.744816E-06]]] + + @@ -272,16 +329,22 @@ - + - - - - + + + + + - - - + + + + + + + + From 99d70d6a5e12402420b54c9fe0782dd13262821d Mon Sep 17 00:00:00 2001 From: ncguilbeault Date: Fri, 31 Oct 2025 16:56:57 +0000 Subject: [PATCH 13/17] Adding example workflows to work with latest changes to package --- .../EstimateParameters.bonsai | 147 ++++-------------- .../OnlineFiltering/Extensions.csproj | 14 -- .../LoadPretrainedKFModelParameters.cs | 111 ------------- .../OnlineFiltering/OnlineFiltering.bonsai | 69 ++++---- .../SaveModelParameters.bonsai | 80 ++++------ 5 files changed, 98 insertions(+), 323 deletions(-) delete mode 100644 examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/Extensions.csproj delete mode 100644 examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/Extensions/LoadPretrainedKFModelParameters.cs diff --git a/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/EstimateParameters.bonsai b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/EstimateParameters.bonsai index ade788f..d7adf46 100644 --- a/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/EstimateParameters.bonsai +++ b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/EstimateParameters.bonsai @@ -7,7 +7,6 @@ xmlns:p2="clr-namespace:Bonsai.ML.Lds.Torch;assembly=Bonsai.ML.Lds.Torch" xmlns:ui="clr-namespace:Bonsai.Design;assembly=Bonsai.Design" xmlns:scr="clr-namespace:Bonsai.Scripting.Expressions;assembly=Bonsai.Scripting.Expressions" - xmlns:p3="clr-namespace:Bonsai.ML.Lds.Torch.Design;assembly=Bonsai.ML.Lds.Torch.Design" xmlns="https://bonsai-rx.org/2018/workflow"> @@ -64,34 +63,6 @@ - - LoadModel - - - - - Float64 - 10 - 142 - - - - - - - - - - KalmanFilterModel - - - - - - - - - LearnParameters @@ -99,21 +70,9 @@ SpikeCounts - - KalmanFilterModel - - - Parameters - - - - - - - 2 - 10 + 10 10 0.1 true @@ -151,41 +110,34 @@ Parameters - - KalmanFilterModel - - - - - + + KalmanFilterParameters - + + Float64 + + + + + + + + + - ExpectationMaximizationResult - - KalmanFilterModel - - - - + - + - - - - - - @@ -207,52 +159,12 @@ - - UpdatedFilteredResult - - - ExpectationMaximizationResult - - - - - - UpdatedFilteredResult - - - KalmanFilterModel - - - - - - - - UpdatedSmoothedResult - - - UpdatedSmoothedResult - - - KalmanFilterModel - - - - - - - - OrthogonalizedResult - - - OrthogonalizedResult - ReplayState @@ -326,31 +238,30 @@ + + KalmanFilterModel + + + + + + - - - + + + + - - - - - - - - - - NeuralLatents true @@ -358,7 +269,7 @@ - + \ No newline at end of file diff --git a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/Extensions.csproj b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/Extensions.csproj deleted file mode 100644 index a092954..0000000 --- a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/Extensions.csproj +++ /dev/null @@ -1,14 +0,0 @@ - - - - net472 - - - - - - - - - - \ No newline at end of file diff --git a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/Extensions/LoadPretrainedKFModelParameters.cs b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/Extensions/LoadPretrainedKFModelParameters.cs deleted file mode 100644 index a50a2cf..0000000 --- a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/Extensions/LoadPretrainedKFModelParameters.cs +++ /dev/null @@ -1,111 +0,0 @@ -using System; -using System.ComponentModel; -using System.Linq; -using System.Reactive.Linq; -using System.Xml.Serialization; -using System.IO; -using TorchSharp; -using Bonsai; -using Bonsai.ML.Lds.Torch; - -/// -/// Loads the parameters of a Kalman filter model. -/// -[Combinator] -[ResetCombinator] -[Description("Loads the parameters of a Kalman filter model.")] -[WorkflowElementCategory(ElementCategory.Source)] -public class LoadKalmanFilterParameters -{ - public string TransitionMatrixFilePath { get; set; } - public string MeasurementFunctionFilePath { get; set; } - public string ProcessNoiseCovarianceFilePath { get; set; } - public string MeasurementNoiseCovarianceFilePath { get; set; } - public string InitialMeanFilePath { get; set; } - public string InitialCovarianceFilePath { get; set; } - - public int NumObservations { get; set; } - public int NumStates { get; set; } - - public torch.ScalarType Type { get; set; } - - [XmlIgnore] - public torch.Device Device { get; set; } - - private static double[] ReadBinaryFile(string fileName) - { - using (var fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read)) - { - using (var binaryReader = new BinaryReader(fileStream)) - { - var fileLength = fileStream.Length; - var numDoubles = fileLength / sizeof(double); - var data = new double[numDoubles]; - for (int i = 0; i < numDoubles; i++) - { - data[i] = binaryReader.ReadDouble(); - } - return data; - } - } - } - - /// - /// Creates parameters for a Kalman filter model using the properties of this class. - /// - public IObservable Process() - { - torch.Tensor transitionMatrix = null; - if (TransitionMatrixFilePath != null) - { - var data = ReadBinaryFile(TransitionMatrixFilePath); - transitionMatrix = torch.from_array(data).reshape(NumStates, NumStates).to(Type); - } - - torch.Tensor measurementFunction = null; - if (MeasurementFunctionFilePath != null) - { - var data = ReadBinaryFile(MeasurementFunctionFilePath); - measurementFunction = torch.from_array(data).reshape(NumObservations, NumStates).to(Type); - } - - torch.Tensor processNoiseCovariance = null; - if (ProcessNoiseCovarianceFilePath != null) - { - var data = ReadBinaryFile(ProcessNoiseCovarianceFilePath); - processNoiseCovariance = torch.from_array(data).reshape(NumStates, NumStates).to(Type); - } - - torch.Tensor measurementNoiseCovariance = null; - if (MeasurementNoiseCovarianceFilePath != null) - { - var data = ReadBinaryFile(MeasurementNoiseCovarianceFilePath); - measurementNoiseCovariance = torch.from_array(data).reshape(NumObservations, NumObservations).to(Type); - } - - torch.Tensor initialMean = null; - if (InitialMeanFilePath != null) - { - var data = ReadBinaryFile(InitialMeanFilePath); - initialMean = torch.from_array(data).reshape(NumStates).to(Type); - } - - torch.Tensor initialCovariance = null; - if (InitialCovarianceFilePath != null) - { - var data = ReadBinaryFile(InitialCovarianceFilePath); - initialCovariance = torch.from_array(data).reshape(NumStates, NumStates).to(Type); - } - - var parameters = new KalmanFilterParameters( - transitionMatrix: transitionMatrix, - measurementFunction: measurementFunction, - processNoiseCovariance: processNoiseCovariance, - measurementNoiseCovariance: measurementNoiseCovariance, - initialMean: initialMean, - initialCovariance: initialCovariance - ); - - return Observable.Return(parameters); - } -} \ No newline at end of file diff --git a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/OnlineFiltering.bonsai b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/OnlineFiltering.bonsai index 2f6bed8..8ab0d84 100644 --- a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/OnlineFiltering.bonsai +++ b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/OnlineFiltering.bonsai @@ -5,10 +5,9 @@ xmlns:p1="clr-namespace:Bonsai.ML.Torch;assembly=Bonsai.ML.Torch" xmlns:scr="clr-namespace:Bonsai.Scripting.Expressions;assembly=Bonsai.Scripting.Expressions" xmlns:rx="clr-namespace:Bonsai.Reactive;assembly=Bonsai.Core" - xmlns:p2="clr-namespace:;assembly=Extensions" - xmlns:p3="clr-namespace:Bonsai.ML.Lds.Torch;assembly=Bonsai.ML.Lds.Torch" + xmlns:p2="clr-namespace:Bonsai.ML.Lds.Torch;assembly=Bonsai.ML.Lds.Torch" xmlns:ui="clr-namespace:Bonsai.Design;assembly=Bonsai.Design" - xmlns:p4="clr-namespace:Bonsai.ML.Lds.Torch.Design;assembly=Bonsai.ML.Lds.Torch.Design" + xmlns:p3="clr-namespace:Bonsai.ML.Lds.Torch.Design;assembly=Bonsai.ML.Lds.Torch.Design" xmlns="https://bonsai-rx.org/2018/workflow"> @@ -56,32 +55,26 @@ - ../../../../datasets/transition_matrix.bin - ../../../../datasets/measurement_function.bin - ../../../../datasets/process_noise_covariance.bin - ../../../../datasets/measurement_noise_covariance.bin - ../../../../datasets/initial_state_mean.bin - ../../../../datasets/initial_state_covariance.bin - 142 - 10 - Float32 + /home/nicholas/machinelearning/docs/examples/datasets/NeuralLatents + Float64 - - KalmanFilter - Float64 - 10 - 142 - - - - - - + + Float64 + + + + + + + + - + + KalmanFilterModel + @@ -96,27 +89,37 @@ SpikeCounts + + KalmanFilterModel + + + + + + - - KalmanFilter - + + + + KalmanFilterModel - - KalmanFilter - + - + - + + + + - + NeuralLatents true diff --git a/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/SaveModelParameters.bonsai b/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/SaveModelParameters.bonsai index ea68195..3b5536b 100644 --- a/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/SaveModelParameters.bonsai +++ b/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/SaveModelParameters.bonsai @@ -5,6 +5,7 @@ xmlns:p1="clr-namespace:Bonsai.ML.Torch;assembly=Bonsai.ML.Torch" xmlns:rx="clr-namespace:Bonsai.Reactive;assembly=Bonsai.Core" xmlns:p2="clr-namespace:Bonsai.ML.Lds.Torch;assembly=Bonsai.ML.Lds.Torch" + xmlns:ui="clr-namespace:Bonsai.Design;assembly=Bonsai.Design" xmlns="https://bonsai-rx.org/2018/workflow"> @@ -61,35 +62,6 @@ - - LoadModel - - - - - KalmanFilter - Float64 - 10 - 142 - - - - - - - - - - KalmanFilterModel - - - - - - - - - LearnParameters @@ -99,7 +71,8 @@ - KalmanFilter + 10 + 142 10 0.1 true @@ -111,6 +84,12 @@ true + + true + + + + @@ -128,22 +107,33 @@ - - ExpectationMaximizationResult - - - KalmanFilterModel + + Parameters - + + Float32 + 2 + 2 + + + + + + + + + + KalmanFilterModel - - + + + @@ -152,17 +142,13 @@ - ExpectationMaximizationResult + KalmanFilterModel - transition_matrix.bin - measurement_function.bin - process_noise_covariance.bin - measurement_noise_covariance.bin - initial_mean.bin - initial_covariance.bin - KalmanFilter + models + false + DateTime @@ -181,8 +167,8 @@ + - \ No newline at end of file From 073d8f730410c181d3a5c6be8dacb7500bac5f5e Mon Sep 17 00:00:00 2001 From: ncguilbeault Date: Fri, 31 Oct 2025 16:58:35 +0000 Subject: [PATCH 14/17] Updated model training script to save model parameters in a way that is consistent with the `LoadKalmanFilterParameters` function --- .../OnlineFiltering/train_model.py | 50 ++++++++++++++++--- 1 file changed, 42 insertions(+), 8 deletions(-) diff --git a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/train_model.py b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/train_model.py index 34beb4f..02c4302 100644 --- a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/train_model.py +++ b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/train_model.py @@ -2,6 +2,38 @@ import ssm.learning import os import argparse +import leb128 + +def convert_type(array): + match array.dtype: + case np.uint8: + return 0 + case np.int8: + return 1 + case np.int16: + return 2 + case np.int32: + return 3 + case np.int64: + return 4 + case np.float16: + return 5 + case np.float32: + return 6 + case np.float64: + return 7 + case np.bool_: + return 11 + case _: + return 4711 + +def save_to_tensor(array, filename): + with open(filename, "wb") as f: + f.write(leb128.u.encode(convert_type(array))) + f.write(leb128.u.encode(len(array.shape))) + for size in array.shape: + f.write(leb128.u.encode(size)) + f.write(array.tobytes()) if __name__ == "__main__": parser = argparse.ArgumentParser() @@ -28,12 +60,14 @@ vars_to_estimate = {var: (var in vars_to_estimate_list) for var in ["B", "Q", "Z", "R", "m0", "V0"]} if output_dir is None: - output_dir = os.path.join(os.path.realpath(os.path.dirname(__file__)), "..", "..", "..", "..", "datasets") + output_dir = os.path.join(os.path.realpath(os.path.dirname(__file__)), "..", "..", "..", "..", "datasets", "NeuralLatents") + + os.makedirs(output_dir, exist_ok=True) print("Loading training data...") # load training data - training_data_file = os.path.join(output_dir, "sub-Jenkins_ses-small_desc-train_behavior+ecephys.bin") + training_data_file = os.path.join(os.path.dirname(output_dir), "sub-Jenkins_ses-small_desc-train_behavior+ecephys.bin") n_clusters = 142 transformed_binned_spikes = np.fromfile(training_data_file, dtype=float).reshape(-1, n_clusters).T @@ -59,11 +93,11 @@ ) # Save estimated parameters - optim_res["B"].astype(float).tofile(os.path.join(output_dir, "transition_matrix.bin")) - optim_res["Z"].astype(float).tofile(os.path.join(output_dir, "measurement_function.bin")) - optim_res["Q"].astype(float).tofile(os.path.join(output_dir, "process_noise_covariance.bin")) - optim_res["R"].astype(float).tofile(os.path.join(output_dir, "measurement_noise_covariance.bin")) - optim_res["m0"].astype(float).tofile(os.path.join(output_dir, "initial_state_mean.bin")) - optim_res["V0"].astype(float).tofile(os.path.join(output_dir, "initial_state_covariance.bin")) + save_to_tensor(optim_res["B"], os.path.join(output_dir, "TransitionMatrix.bin")) + save_to_tensor(optim_res["Z"], os.path.join(output_dir, "MeasurementFunction.bin")) + save_to_tensor(optim_res["Q"], os.path.join(output_dir, "ProcessNoiseCovariance.bin")) + save_to_tensor(optim_res["R"], os.path.join(output_dir, "MeasurementNoiseCovariance.bin")) + save_to_tensor(optim_res["m0"], os.path.join(output_dir, "InitialMean.bin")) + save_to_tensor(optim_res["V0"], os.path.join(output_dir, "InitialCovariance.bin")) print(f"Estimated parameters saved to {os.path.realpath(output_dir)}") \ No newline at end of file From cc531182d24378230f6a8539586e3af244335935 Mon Sep 17 00:00:00 2001 From: ncguilbeault Date: Fri, 31 Oct 2025 19:11:36 +0000 Subject: [PATCH 15/17] Updated examples --- .../EstimatingParameters/EstimateParameters.bonsai | 6 ++++-- .../OnlineFiltering/OnlineFiltering.bonsai | 11 ++++++++--- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/EstimateParameters.bonsai b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/EstimateParameters.bonsai index d7adf46..46f1c88 100644 --- a/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/EstimateParameters.bonsai +++ b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/EstimateParameters.bonsai @@ -85,6 +85,7 @@ + ExpectationMaximization true @@ -215,8 +216,8 @@ Float32 - - + [[-8.737335, 0.0842269, 0.009232007, -0.0008691379, -0.01574879, -0.006062153, 0.0008153673, -0.001463936, 0.0005580065, -7.526268E-06]] + [[[0.009540861, 0.001642221, -0.0003729272, 0.0001364285, -0.0003722429, -0.0001043696, 3.902293E-05, -2.020181E-05, 1.850796E-05, 1.132543E-05], [0.001642221, 0.005607077, 0.0002884019, 5.757339E-05, -1.882871E-05, 1.61614E-06, 7.674043E-06, -4.401983E-06, -1.133E-06, 4.295156E-07], [-0.0003729272, 0.0002884019, 0.00456911, -9.982559E-05, -3.125695E-07, -1.271387E-06, -1.342541E-06, 2.8035E-06, 5.200116E-07, 2.058647E-08], [0.0001364285, 5.757339E-05, -9.982559E-05, 0.003710471, 5.307371E-07, 4.996915E-07, 3.508996E-06, -1.049549E-07, 9.021393E-07, -2.722985E-07], [-0.0003722429, -1.882871E-05, -3.125695E-07, 5.307371E-07, 0.003082175, -4.211043E-06, 1.827337E-06, -8.512937E-07, 4.143237E-07, 1.848511E-07], [-0.0001043696, 1.61614E-06, -1.271387E-06, 4.996915E-07, -4.211043E-06, 0.001288361, 1.71188E-06, -1.227383E-06, 2.295068E-07, -1.284648E-07], [3.902293E-05, 7.674043E-06, -1.342541E-06, 3.508996E-06, 1.827337E-06, 1.71188E-06, 0.0005039083, -2.359678E-07, -8.154034E-08, -1.028429E-07], [-2.020181E-05, -4.401983E-06, 2.8035E-06, -1.049549E-07, -8.512937E-07, -1.227383E-06, -2.359678E-07, 0.0004041222, -5.05107E-09, 1.07337E-08], [1.850796E-05, -1.133E-06, 5.200116E-07, 9.021393E-07, 4.143237E-07, 2.295068E-07, -8.154034E-08, -5.05107E-09, 0.0001370257, -3.074566E-08], [1.132543E-05, 4.295156E-07, 2.058647E-08, -2.722985E-07, 1.848511E-07, -1.284648E-07, -1.028429E-07, 1.07337E-08, -3.074566E-08, 4.862578E-05]]] @@ -262,6 +263,7 @@ + NeuralLatents true diff --git a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/OnlineFiltering.bonsai b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/OnlineFiltering.bonsai index 8ab0d84..b5ffb3a 100644 --- a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/OnlineFiltering.bonsai +++ b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/OnlineFiltering.bonsai @@ -100,6 +100,9 @@ + + + KalmanFilterModel @@ -112,9 +115,11 @@ - - - + + + + + From ce910d4da888a24d2848beb5a69db05f769506df Mon Sep 17 00:00:00 2001 From: ncguilbeault Date: Fri, 31 Oct 2025 22:04:12 +0000 Subject: [PATCH 16/17] Updated bonsai configs to match release candidate --- .../.bonsai/Bonsai.config | 26 +++++++++---------- .../OnlineFiltering/.bonsai/Bonsai.config | 26 +++++++++---------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/.bonsai/Bonsai.config b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/.bonsai/Bonsai.config index 110f42f..e23fc91 100644 --- a/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/.bonsai/Bonsai.config +++ b/examples/LinearDynamicalSystems/NeuralLatents/EstimatingParameters/.bonsai/Bonsai.config @@ -7,13 +7,13 @@ - - - - - - - + + + + + + + @@ -76,12 +76,12 @@ - - - - - - + + + + + + diff --git a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/.bonsai/Bonsai.config b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/.bonsai/Bonsai.config index c00e092..bafd848 100644 --- a/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/.bonsai/Bonsai.config +++ b/examples/LinearDynamicalSystems/NeuralLatents/OnlineFiltering/.bonsai/Bonsai.config @@ -7,13 +7,13 @@ - - - - - - - + + + + + + + @@ -77,12 +77,12 @@ - - - - - - + + + + + + From 93b69f9f39ce82cd7dc6f5cc9b3a8cd6fbf3509a Mon Sep 17 00:00:00 2001 From: ncguilbeault Date: Sat, 1 Nov 2025 00:22:24 +0000 Subject: [PATCH 17/17] Updating Bonsai.config to remove dev packages --- .../.bonsai/Bonsai.config | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/.bonsai/Bonsai.config b/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/.bonsai/Bonsai.config index 5323629..c7c1f78 100644 --- a/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/.bonsai/Bonsai.config +++ b/examples/LinearDynamicalSystems/NeuralLatents/SavingAndLoadingParameters/.bonsai/Bonsai.config @@ -8,13 +8,13 @@ - - - - - - - + + + + + + + @@ -81,12 +81,12 @@ - - - - - - + + + + + +