diff --git a/.gitignore b/.gitignore
index 4e4a379..bf2ce7c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -172,4 +172,7 @@ _*
results/
# remove background jobs
-*nohup.out
+nohup.out
+
+# remove log
+*.logs
diff --git a/notebooks/0.download-data/1.download-data.ipynb b/notebooks/0.download-data/1.download-data.ipynb
index 6a6d223..74c6dfa 100644
--- a/notebooks/0.download-data/1.download-data.ipynb
+++ b/notebooks/0.download-data/1.download-data.ipynb
@@ -326,6 +326,14 @@
" print(\"shape: \", cfret_df.shape)\n",
" cfret_df.head()"
]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "da89481a",
+ "metadata": {},
+ "outputs": [],
+ "source": []
}
],
"metadata": {
diff --git a/notebooks/0.download-data/2.preprocessing.ipynb b/notebooks/0.download-data/2.preprocessing.ipynb
index 6b40b1d..d1d1d06 100644
--- a/notebooks/0.download-data/2.preprocessing.ipynb
+++ b/notebooks/0.download-data/2.preprocessing.ipynb
@@ -23,7 +23,7 @@
},
{
"cell_type": "code",
- "execution_count": 1,
+ "execution_count": 2,
"id": "0387feba",
"metadata": {},
"outputs": [],
@@ -51,7 +51,7 @@
},
{
"cell_type": "code",
- "execution_count": 2,
+ "execution_count": 3,
"id": "d0f8b798",
"metadata": {},
"outputs": [],
@@ -59,19 +59,23 @@
"def load_and_concat_profiles(\n",
" profile_dir: str | pathlib.Path,\n",
" shared_features: Optional[list[str]] = None,\n",
+ " shared_contains_meta: bool = False,\n",
" specific_plates: Optional[list[pathlib.Path]] = None,\n",
") -> pl.DataFrame:\n",
" \"\"\"\n",
- " Load all profile files from a directory and concatenate them into a single Polars DataFrame.\n",
+ " Load all profile files from a directory and concatenate them into a single Polars\n",
+ " DataFrame.\n",
"\n",
" Parameters\n",
" ----------\n",
" profile_dir : str or pathlib.Path\n",
" Directory containing the profile files (.parquet).\n",
" shared_features : Optional[list[str]], optional\n",
- " List of shared feature names to filter the profiles. If None, all features are loaded.\n",
+ " List of shared feature names to filter the profiles. If None, all features are\n",
+ " loaded.\n",
" specific_plates : Optional[list[pathlib.Path]], optional\n",
- " List of specific plate file paths to load. If None, all profiles in the directory are loaded.\n",
+ " List of specific plate file paths to load. If None, all profiles in the\n",
+ " directory are loaded.\n",
"\n",
" Returns\n",
" -------\n",
@@ -93,13 +97,24 @@
" \"All elements in specific_plates must be pathlib.Path objects\"\n",
" )\n",
"\n",
- " def load_profile(file: pathlib.Path) -> pl.DataFrame:\n",
+ " def load_profile(profile_path: pathlib.Path) -> pl.DataFrame:\n",
" \"\"\"internal function to load a single profile file.\"\"\"\n",
- " profile_df = pl.read_parquet(file)\n",
- " meta_cols, _ = split_meta_and_features(profile_df)\n",
+ "\n",
+ " # load profiles\n",
+ " profile_df = pl.read_parquet(profile_path)\n",
+ "\n",
+ " # print shape\n",
+ " print(f\"Loaded profile {profile_path.name} with shape {profile_df.shape}\")\n",
+ "\n",
+ " # if provided shared feature list does not contain meta, split and select\n",
+ " # then get it from the profile, if it does, just select the shared features\n",
+ " # directly\n",
" if shared_features is not None:\n",
- " # Only select metadata and shared features\n",
- " return profile_df.select(meta_cols + shared_features)\n",
+ " if not shared_contains_meta:\n",
+ " meta_cols, _ = split_meta_and_features(profile_df)\n",
+ " return profile_df.select(meta_cols + shared_features)\n",
+ "\n",
+ " return profile_df.select(shared_features)\n",
" return profile_df\n",
"\n",
" # Use specific_plates if provided, otherwise gather all .parquet files\n",
@@ -179,7 +194,61 @@
" pl.DataFrame\n",
" DataFrame with cleaned column names\n",
" \"\"\"\n",
- " return df.rename(lambda x: x.replace(prefix, \"\") if prefix in x else x)"
+ " return df.rename(lambda x: x.replace(prefix, \"\") if prefix in x else x)\n",
+ "\n",
+ "\n",
+ "def find_shared_features_across_parquets(\n",
+ " profile_paths: list[str | pathlib.Path],\n",
+ ") -> list[str]:\n",
+ " \"\"\"\n",
+ " Finds the intersection of column names across multiple parquet files.\n",
+ "\n",
+ " This function returns the list of column names that are present in every provided parquet file.\n",
+ " The order of columns is preserved from the first file. Uses LazyFrame.collect_schema().names()\n",
+ " to avoid expensive full reads and the PerformanceWarning.\n",
+ "\n",
+ " Parameters\n",
+ " ----------\n",
+ " profile_paths : list of str or pathlib.Path\n",
+ " List of paths to parquet files.\n",
+ "\n",
+ " Returns\n",
+ " -------\n",
+ " list of str\n",
+ " List of shared column names present in all files, in the order from the first file.\n",
+ "\n",
+ " Raises\n",
+ " ------\n",
+ " FileNotFoundError\n",
+ " If no parquet files are provided or any file does not exist.\n",
+ " \"\"\"\n",
+ " if not profile_paths:\n",
+ " raise FileNotFoundError(\"No parquet files provided\")\n",
+ "\n",
+ " # check if they are all strings if so, convert to pathlib.Path\n",
+ " if all(isinstance(p, str) for p in profile_paths):\n",
+ " profile_paths = [pathlib.Path(p) for p in profile_paths]\n",
+ "\n",
+ " for p in profile_paths:\n",
+ " if not p.exists():\n",
+ " raise FileNotFoundError(f\"Profile file not found: {p}\")\n",
+ "\n",
+ " # set the first file columns as the initial set\n",
+ " first_cols = pl.scan_parquet(profile_paths[0]).collect_schema().names()\n",
+ " common = set(first_cols)\n",
+ "\n",
+ " # iterate through the rest of the files and find shared columns\n",
+ " # of the rest of the profiles\n",
+ " for p in profile_paths[1:]:\n",
+ " cols = pl.scan_parquet(p).collect_schema().names()\n",
+ " common &= set(cols)\n",
+ " if not common:\n",
+ " # Early exit if no shared columns remain\n",
+ " return []\n",
+ "\n",
+ " # Preserve first file ordering (Meta and features order)\n",
+ " shared_features = [c for c in first_cols if c in common]\n",
+ " return shared_features"
]
},
{
@@ -216,6 +285,9 @@
" cfret_profiles_dir / \"localhost230405150001_sc_feature_selected.parquet\"\n",
").resolve(strict=True)\n",
"\n",
+ "# cfret-screen profiles path\n",
+ "cfret_screen_profiles_path = profiles_dir / \"cfret-screen\"\n",
+ "\n",
"# Setting feature selection path\n",
"shared_features_config_path = (\n",
" profiles_dir / \"cpjump1\" / \"feature_selected_sc_qc_features.json\"\n",
@@ -227,6 +299,12 @@
" profiles_dir / \"mitocheck\" / \"normalized_data\"\n",
").resolve(strict=True)\n",
"\n",
+ "# seting cfret-screen profiles paths\n",
+ "cfret_screen_profiles_paths = [\n",
+ " path.resolve(strict=True)\n",
+ " for path in cfret_screen_profiles_path.glob(\"*_sc_feature_selected.parquet\")\n",
+ "]\n",
+ "\n",
"# output directories\n",
"cpjump1_output_dir = (profiles_dir / \"cpjump1\").resolve()\n",
"cpjump1_output_dir.mkdir(exist_ok=True)\n",
@@ -313,10 +391,8 @@
"\n",
"# Saving metadata and features of the concat profile into a json file\n",
"meta_features_dict = {\n",
- " \"concat-profiles\": {\n",
- " \"meta-features\": meta_cols,\n",
- " \"shared-features\": features_cols,\n",
- " }\n",
+ " \"metadata-features\": meta_cols,\n",
+ " \"morphology-features\": features_cols,\n",
"}\n",
"with open(cpjump1_output_dir / \"concat_profiles_meta_features.json\", \"w\") as f:\n",
" json.dump(meta_features_dict, f, indent=4)\n",
@@ -565,6 +641,96 @@
"# overwrite dataset with cell\n",
"cfret_profiles.select(meta_cols + features_cols).write_parquet(cfret_profiles_path)"
]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "ea8f7f65",
+ "metadata": {},
+ "source": [
+ "## Preprocessing CFReT Screen Dataset\n",
+ "\n",
+ "This section preprocesses the CFReT Screen dataset by concatenating all plate profiles into a single unified dataframe. This represents the first batch of plates, which are technical replicates containing identical treatment conditions and dosages across all plates.\n",
+ "\n",
+ "**Dataset characteristics:**\n",
+ "- Each plate contains both positive (n=3) and negative (n=3) controls\n",
+ "- All treatment plates share the same experimental conditions\n",
+ "- Technical replicates is at the plate level\n",
+ "\n",
+ "**Preprocessing steps:**\n",
+ "\n",
+ "1. **Feature alignment**: Identify shared features across all CFReT Screen plates to ensure consistent feature space\n",
+ "2. **Profile concatenation**: Merge all plate profiles into a single comprehensive dataframe using the shared feature set\n",
+ "3. **Unique cell identification**: Add `Metadata_cell_id` column with unique hash values to enable precise single-cell tracking "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "id": "83e0411f",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "total shared features in cfret-screen profiles: 494\n",
+ "Loaded profile localhost240927060001_sc_feature_selected.parquet with shape (12397, 652)\n",
+ "Loaded profile localhost240928120001_sc_feature_selected.parquet with shape (12745, 641)\n",
+ "Loaded profile localhost240926150001_sc_feature_selected.parquet with shape (16566, 657)\n",
+ "Loaded profile localhost240927120001_sc_feature_selected.parquet with shape (12902, 684)\n",
+ "'Metadata_cell_id' column already exists in the DataFrame. Set force=True to overwrite the existing column.\n"
+ ]
+ }
+ ],
+ "source": [
+ "# find shared features across cfret-screen profiles and load and concat them\n",
+ "cfret_screen_shared_features = find_shared_features_across_parquets(\n",
+ " cfret_screen_profiles_paths\n",
+ ")\n",
+ "print(\n",
+ " \"total shared features in cfret-screen profiles:\", len(cfret_screen_shared_features)\n",
+ ")\n",
+ "\n",
+ "cfret_screen_concat_profiles = load_and_concat_profiles(\n",
+ " profile_dir=cfret_screen_profiles_path,\n",
+ " shared_features=cfret_screen_shared_features,\n",
+ " shared_contains_meta=True,\n",
+ ")\n",
+ "\n",
+ "# add unique cell ID as a string type\n",
+ "cfret_screen_concat_profiles = cfret_screen_concat_profiles.with_columns(\n",
+ " cfret_screen_concat_profiles.hash_rows(seed=0)\n",
+ " .alias(\"Metadata_cell_id\")\n",
+ " .cast(pl.Utf8)\n",
+ ")\n",
+ "\n",
+ "# split the metadata and features and reorganize features in the concat profile\n",
+ "cfret_screen_meta_cols, cfret_screen_features_cols = split_meta_and_features(\n",
+ " cfret_screen_concat_profiles\n",
+ ")\n",
+ "cfret_screen_concat_profiles = cfret_screen_concat_profiles.select(\n",
+ " cfret_screen_meta_cols + cfret_screen_features_cols\n",
+ ")\n",
+ "\n",
+ "# save feature space config to json file\n",
+ "with open(cfret_profiles_dir / \"cfret_screen_feature_space_configs.json\", \"w\") as f:\n",
+ " json.dump(\n",
+ " {\n",
+ " \"metadata-features\": cfret_screen_meta_cols,\n",
+ " \"morphology-features\": cfret_screen_features_cols,\n",
+ " },\n",
+ " f,\n",
+ " indent=4,\n",
+ " )\n",
+ "\n",
+ "# add cell id hash\n",
+ "cfret_screen_concat_profiles = add_cell_id_hash(cfret_screen_concat_profiles)\n",
+ "\n",
+ "# save concatenated cfret-screen profiles\n",
+ "cfret_screen_concat_profiles.write_parquet(\n",
+ " cfret_screen_profiles_path / \"cfret_screen_concat_profiles.parquet\"\n",
+ ")"
+ ]
}
],
"metadata": {
diff --git a/notebooks/0.download-data/nbconverted/2.preprocessing.py b/notebooks/0.download-data/nbconverted/2.preprocessing.py
index b643cef..e454162 100644
--- a/notebooks/0.download-data/nbconverted/2.preprocessing.py
+++ b/notebooks/0.download-data/nbconverted/2.preprocessing.py
@@ -15,7 +15,7 @@
#
# These preprocessing steps ensure that all datasets are standardized, well-documented, and ready for comparative and integrative analyses.
-# In[1]:
+# In[2]:
import json
@@ -31,25 +31,29 @@
#
# Contains helper function that pertains to this notebook.
-# In[2]:
+# In[3]:
def load_and_concat_profiles(
profile_dir: str | pathlib.Path,
shared_features: list[str] | None = None,
+ shared_contains_meta: bool = False,
specific_plates: list[pathlib.Path] | None = None,
) -> pl.DataFrame:
"""
- Load all profile files from a directory and concatenate them into a single Polars DataFrame.
+ Load all profile files from a directory and concatenate them into a single Polars
+ DataFrame.
Parameters
----------
profile_dir : str or pathlib.Path
Directory containing the profile files (.parquet).
shared_features : Optional[list[str]], optional
- List of shared feature names to filter the profiles. If None, all features are loaded.
+ List of shared feature names to filter the profiles. If None, all features are
+ loaded.
specific_plates : Optional[list[pathlib.Path]], optional
- List of specific plate file paths to load. If None, all profiles in the directory are loaded.
+ List of specific plate file paths to load. If None, all profiles in the
+ directory are loaded.
Returns
-------
@@ -71,13 +75,24 @@ def load_and_concat_profiles(
"All elements in specific_plates must be pathlib.Path objects"
)
- def load_profile(file: pathlib.Path) -> pl.DataFrame:
+ def load_profile(profile_path: pathlib.Path) -> pl.DataFrame:
"""internal function to load a single profile file."""
- profile_df = pl.read_parquet(file)
- meta_cols, _ = split_meta_and_features(profile_df)
+
+ # load profiles
+ profile_df = pl.read_parquet(profile_path)
+
+ # print shape
+ print(f"Loaded profile {profile_path.name} with shape {profile_df.shape}")
+
+ # if provided shared feature list does not contain meta, split and select
+ # then get it from the profile, if it does, just select the shared features
+ # directly
if shared_features is not None:
- # Only select metadata and shared features
- return profile_df.select(meta_cols + shared_features)
+ if not shared_contains_meta:
+ meta_cols, _ = split_meta_and_features(profile_df)
+ return profile_df.select(meta_cols + shared_features)
+
+ return profile_df.select(shared_features)
return profile_df
# Use specific_plates if provided, otherwise gather all .parquet files
@@ -160,6 +175,60 @@ def remove_feature_prefixes(df: pl.DataFrame, prefix: str = "CP__") -> pl.DataFr
return df.rename(lambda x: x.replace(prefix, "") if prefix in x else x)
+def find_shared_features_across_parquets(
+ profile_paths: list[str | pathlib.Path],
+) -> list[str]:
+ """
+ Finds the intersection of column names across multiple parquet files.
+
+ This function returns the list of column names that are present in every provided parquet file.
+ The order of columns is preserved from the first file. Uses LazyFrame.collect_schema().names()
+ to avoid expensive full reads and the PerformanceWarning.
+
+ Parameters
+ ----------
+ profile_paths : list of str or pathlib.Path
+ List of paths to parquet files.
+
+ Returns
+ -------
+ list of str
+ List of shared column names present in all files, in the order from the first file.
+
+ Raises
+ ------
+ FileNotFoundError
+ If no parquet files are provided or any file does not exist.
+ """
+ if not profile_paths:
+ raise FileNotFoundError("No parquet files provided")
+
+ # check if they are all strings if so, convert to pathlib.Path
+ if all(isinstance(p, str) for p in profile_paths):
+ profile_paths = [pathlib.Path(p) for p in profile_paths]
+
+ for p in profile_paths:
+ if not p.exists():
+ raise FileNotFoundError(f"Profile file not found: {p}")
+
+ # set the first file columns as the initial set
+ first_cols = pl.scan_parquet(profile_paths[0]).collect_schema().names()
+ common = set(first_cols)
+
+ # iterate through the rest of the files and find shared columns
+ # of the rest of the profiles
+ for p in profile_paths[1:]:
+ cols = pl.scan_parquet(p).collect_schema().names()
+ common &= set(cols)
+ if not common:
+ # Early exit if no shared columns remain
+ return []
+
+ # Preserve first file ordering (Meta and features order)
+ shared_features = [c for c in first_cols if c in common]
+ return shared_features
+
+
# Defining the input and output directories used throughout the notebook.
#
# > **Note:** The shared profiles utilized here are sourced from the [JUMP-single-cell](https://github.com/WayScience/JUMP-single-cell) repository. All preprocessing and profile generation steps are performed in that repository, and this notebook focuses on downstream analysis using the generated profiles.
@@ -184,6 +253,9 @@ def remove_feature_prefixes(df: pl.DataFrame, prefix: str = "CP__") -> pl.DataFr
cfret_profiles_dir / "localhost230405150001_sc_feature_selected.parquet"
).resolve(strict=True)
+# cfret-screen profiles path
+cfret_screen_profiles_path = profiles_dir / "cfret-screen"
+
# Setting feature selection path
shared_features_config_path = (
profiles_dir / "cpjump1" / "feature_selected_sc_qc_features.json"
@@ -195,6 +267,12 @@ def remove_feature_prefixes(df: pl.DataFrame, prefix: str = "CP__") -> pl.DataFr
profiles_dir / "mitocheck" / "normalized_data"
).resolve(strict=True)
+# seting cfret-screen profiles paths
+cfret_screen_profiles_paths = [
+ path.resolve(strict=True)
+ for path in cfret_screen_profiles_path.glob("*_sc_feature_selected.parquet")
+]
+
# output directories
cpjump1_output_dir = (profiles_dir / "cpjump1").resolve()
cpjump1_output_dir.mkdir(exist_ok=True)
@@ -261,10 +339,8 @@ def remove_feature_prefixes(df: pl.DataFrame, prefix: str = "CP__") -> pl.DataFr
# Saving metadata and features of the concat profile into a json file
meta_features_dict = {
- "concat-profiles": {
- "meta-features": meta_cols,
- "shared-features": features_cols,
- }
+ "metadata-features": meta_cols,
+ "morphology-features": features_cols,
}
with open(cpjump1_output_dir / "concat_profiles_meta_features.json", "w") as f:
json.dump(meta_features_dict, f, indent=4)
@@ -469,3 +545,70 @@ def remove_feature_prefixes(df: pl.DataFrame, prefix: str = "CP__") -> pl.DataFr
# overwrite dataset with cell
cfret_profiles.select(meta_cols + features_cols).write_parquet(cfret_profiles_path)
+
+
+# ## Preprocessing CFReT Screen Dataset
+#
+# This section preprocesses the CFReT Screen dataset by concatenating all plate profiles into a single unified dataframe. This represents the first batch of plates, which are technical replicates containing identical treatment conditions and dosages across all plates.
+#
+# **Dataset characteristics:**
+# - Each plate contains both positive (n=3) and negative (n=3) controls
+# - All treatment plates share the same experimental conditions
+# - Technical replicates is at the plate level
+#
+# **Preprocessing steps:**
+#
+# 1. **Feature alignment**: Identify shared features across all CFReT Screen plates to ensure consistent feature space
+# 2. **Profile concatenation**: Merge all plate profiles into a single comprehensive dataframe using the shared feature set
+# 3. **Unique cell identification**: Add `Metadata_cell_id` column with unique hash values to enable precise single-cell tracking
+
+# In[10]:
+
+
+# find shared features across cfret-screen profiles and load and concat them
+cfret_screen_shared_features = find_shared_features_across_parquets(
+ cfret_screen_profiles_paths
+)
+print(
+ "total shared features in cfret-screen profiles:", len(cfret_screen_shared_features)
+)
+
+cfret_screen_concat_profiles = load_and_concat_profiles(
+ profile_dir=cfret_screen_profiles_path,
+ shared_features=cfret_screen_shared_features,
+ shared_contains_meta=True,
+)
+
+# add unique cell ID as a string type
+cfret_screen_concat_profiles = cfret_screen_concat_profiles.with_columns(
+ cfret_screen_concat_profiles.hash_rows(seed=0)
+ .alias("Metadata_cell_id")
+ .cast(pl.Utf8)
+)
+
+# split the metadata and features and reorganize features in the concat profile
+cfret_screen_meta_cols, cfret_screen_features_cols = split_meta_and_features(
+ cfret_screen_concat_profiles
+)
+cfret_screen_concat_profiles = cfret_screen_concat_profiles.select(
+ cfret_screen_meta_cols + cfret_screen_features_cols
+)
+
+# save feature space config to json file
+with open(cfret_profiles_dir / "cfret_screen_feature_space_configs.json", "w") as f:
+ json.dump(
+ {
+ "metadata-features": cfret_screen_meta_cols,
+ "morphology-features": cfret_screen_features_cols,
+ },
+ f,
+ indent=4,
+ )
+
+# add cell id hash
+cfret_screen_concat_profiles = add_cell_id_hash(cfret_screen_concat_profiles)
+
+# save concatenated cfret-screen profiles
+cfret_screen_concat_profiles.write_parquet(
+ cfret_screen_profiles_path / "cfret_screen_concat_profiles.parquet"
+)
diff --git a/notebooks/2.cfret-analysis/r_buscar_env.yaml b/notebooks/2.cfret-analysis/r_buscar_env.yaml
new file mode 100644
index 0000000..4997164
--- /dev/null
+++ b/notebooks/2.cfret-analysis/r_buscar_env.yaml
@@ -0,0 +1,61 @@
+name: r_buscar
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ # R base and essentials
+ - r-base=4.3.*
+ - r-essentials
+
+ # Data manipulation
+ - r-tidyverse=2.0.*
+ - r-dplyr=1.1.*
+ - r-tidyr=1.3.*
+ - r-readr=2.1.*
+ - r-tibble=3.2.*
+ - r-stringr=1.5.*
+ - r-purrr=1.0.*
+
+ # Data I/O
+ - r-arrow=14.* # For reading parquet files
+ - r-data.table=1.14.*
+ - r-jsonlite=1.8.*
+
+ # Plotting essentials
+ - r-ggplot2=3.4.*
+ - r-ggrepel=0.9.* # For better label placement
+ - r-patchwork=1.1.* # For combining plots
+ - r-cowplot=1.1.* # Publication-ready plots
+ - r-ggpubr=0.6.* # Publication-ready themes
+ - r-ggsci=3.0.* # Scientific journal color palettes
+ - r-scales=1.3.* # Scale functions for ggplot2
+ - r-gridextra=2.3 # Arrange multiple plots
+
+ # Advanced plotting
+ - r-pheatmap=1.0.* # Heatmaps
+ - r-complexheatmap # Advanced heatmaps (bioconda)
+ - r-viridis=0.6.* # Color palettes
+ - r-rcolorbrewer=1.1.* # Color palettes
+ - r-ggridges=0.5.* # Ridge plots
+ - r-plotly=4.10.* # Interactive plots
+
+ # Statistical analysis
+ - r-mass=7.3.*
+ - r-car=3.1.*
+ - r-lme4=1.1.*
+ - r-emmeans=1.8.*
+
+ # Bioinformatics (if needed)
+ - bioconductor-complexheatmap
+
+ # Utilities
+ - r-here=1.0.* # Path management
+ - r-glue=1.6.* # String interpolation
+ - r-magrittr=2.0.* # Pipe operator
+ - r-devtools=2.4.* # Development tools
+
+ # Jupyter support (optional, if using R notebooks)
+ - r-irkernel=1.3.*
+ - jupyter
+ - notebook
diff --git a/notebooks/3.cfret-screen-analysis/1.cfret_screen_analysis.ipynb b/notebooks/3.cfret-screen-analysis/1.cfret_screen_analysis.ipynb
new file mode 100644
index 0000000..7c02e02
--- /dev/null
+++ b/notebooks/3.cfret-screen-analysis/1.cfret_screen_analysis.ipynb
@@ -0,0 +1,1134 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "9ac3fc80",
+ "metadata": {},
+ "source": [
+ "# CFReT-Screen analysis\n",
+ "\n",
+ "In this notebook, we will be applying `buscar` to the CFReT initial screen.\n",
+ "\n",
+ "The resource for this dataset can be found [here](https://github.com/WayScience/targeted_fibrosis_drug_screen/tree/main/3.preprocessing_features)\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "a052f353",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/home/erikserrano/Software/miniconda3/envs/buscar/lib/python3.12/site-packages/louvain/__init__.py:54: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n",
+ " from pkg_resources import get_distribution, DistributionNotFound\n"
+ ]
+ }
+ ],
+ "source": [
+ "import sys\n",
+ "import json\n",
+ "import pathlib\n",
+ "\n",
+ "import numpy as np\n",
+ "import polars as pl\n",
+ "import seaborn as sns\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "sys.path.append(\"../../\")\n",
+ "from utils.io_utils import load_profiles\n",
+ "\n",
+ "# from utils.metrics import measure_phenotypic_activity\n",
+ "from utils.preprocess import apply_pca\n",
+ "from utils.data_utils import split_meta_and_features\n",
+ "from utils.signatures import get_signatures\n",
+ "from utils.heterogeneity import optimized_clustering\n",
+ "from utils.metrics import measure_phenotypic_activity\n",
+ "from utils.identify_hits import identify_compound_hit"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "c44a7ad6",
+ "metadata": {},
+ "source": [
+ "## Parameters\n",
+ "\n",
+ "Below are the parameters used for this notebook. The CFReT-screen dataset contains two hearts: **Healthy (Heart 7)** and **Failing (Heart 19)**, which has been diagnosed with dilated cardiomyopathy.\n",
+ "\n",
+ "DMSO Control Naming Convention\n",
+ "\n",
+ "To distinguish between control conditions from different heart sources, the `Metadata_treatment` column values are modified as follows:\n",
+ "- **Healthy controls** (Heart 7 + DMSO): `\"DMSO_heart_7\"`\n",
+ "- **Failing controls** (Heart 19 + DMSO): `\"DMSO_heart_19\"`\n",
+ "\n",
+ "Parameter Definitions:\n",
+ "- **`healthy_ref_treatment`**: Reference treatment name for healthy controls\n",
+ "- **`failing_ref_treatment`**: Reference treatment name for failing heart controls \n",
+ "- **`treatment_col`**: Column name containing treatment metadata\n",
+ "- **`cfret_screen_cluster_param_grid`**: Dictionary defining the hyperparameter search space for clustering optimization when assessing heterogeneity across treatments. Includes:\n",
+ " - `cluster_resolution`: Granularity of clusters (float, 0.1–2.2)\n",
+ " - `n_neighbors`: Number of neighbors for graph construction (int, 5–100)\n",
+ " - `cluster_method`: Clustering algorithm (categorical: leiden)\n",
+ " - `neighbor_distance_metric`: Distance metric for neighbor computation (categorical: euclidean, cosine, manhattan)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "e66b0c55",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# setting parameters\n",
+ "healthy_ref_treatment = \"DMSO_heart_7\"\n",
+ "failing_ref_treatment = \"DMSO_heart_19\"\n",
+ "treatment_col = \"Metadata_treatment\"\n",
+ "\n",
+ "# parameters used for clustering optimization\n",
+ "cfret_screen_cluster_param_grid = {\n",
+ " # Clustering resolution: how granular the clusters should be\n",
+ " \"cluster_resolution\": {\"type\": \"float\", \"low\": 0.1, \"high\": 2.2},\n",
+ " # Number of neighbors for graph construction\n",
+ " \"n_neighbors\": {\"type\": \"int\", \"low\": 5, \"high\": 100},\n",
+ " # Clustering algorithm\n",
+ " \"cluster_method\": {\"type\": \"categorical\", \"choices\": [\"leiden\"]},\n",
+ " # Distance metric for neighbor computation\n",
+ " \"neighbor_distance_metric\": {\n",
+ " \"type\": \"categorical\",\n",
+ " \"choices\": [\"euclidean\", \"cosine\", \"manhattan\"],\n",
+ " },\n",
+ "}"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "6ea34b95",
+ "metadata": {},
+ "source": [
+ "setting paths"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "61c684d4",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# load in raw data from\n",
+ "cfret_data_dir = pathlib.Path(\n",
+ " \"../0.download-data/data/sc-profiles/cfret-screen\"\n",
+ ").resolve(strict=True)\n",
+ "cfret_profiles_path = (cfret_data_dir / \"cfret_screen_concat_profiles.parquet\").resolve(\n",
+ " strict=True\n",
+ ")\n",
+ "\n",
+ "# make results dir\n",
+ "results_dir = pathlib.Path(\"./results/cfret-screen\").resolve()\n",
+ "results_dir.mkdir(parents=True, exist_ok=True)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "d46f7bb0",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "
shape: (5, 495) Metadata_WellRow Metadata_WellCol Metadata_heart_number Metadata_cell_type Metadata_heart_failure_type Metadata_treatment Metadata_Pathway Metadata_Nuclei_Location_Center_X Metadata_Nuclei_Location_Center_Y Metadata_Cells_Location_Center_X Metadata_Cells_Location_Center_Y Metadata_Image_Count_Cells Metadata_ImageNumber Metadata_Plate Metadata_Well Metadata_Cells_Number_Object_Number Metadata_Cytoplasm_Parent_Cells Metadata_Cytoplasm_Parent_Nuclei Metadata_Nuclei_Number_Object_Number Metadata_Site Metadata_cell_id Cytoplasm_AreaShape_Area Cytoplasm_AreaShape_MajorAxisLength Cytoplasm_AreaShape_Zernike_4_0 Cytoplasm_AreaShape_Zernike_5_1 Cytoplasm_AreaShape_Zernike_6_0 Cytoplasm_AreaShape_Zernike_6_2 Cytoplasm_AreaShape_Zernike_7_1 Cytoplasm_AreaShape_Zernike_7_3 Cytoplasm_AreaShape_Zernike_8_0 Cytoplasm_AreaShape_Zernike_8_2 Cytoplasm_AreaShape_Zernike_9_1 Cytoplasm_AreaShape_Zernike_9_3 Cytoplasm_AreaShape_Zernike_9_5 Cytoplasm_AreaShape_Zernike_9_7 Cytoplasm_Correlation_Correlation_ER_Hoechst Cytoplasm_Correlation_Correlation_ER_PM … Nuclei_Texture_Correlation_ER_3_02_256 Nuclei_Texture_Correlation_ER_3_03_256 Nuclei_Texture_Correlation_Hoechst_3_00_256 Nuclei_Texture_Correlation_Hoechst_3_01_256 Nuclei_Texture_Correlation_Hoechst_3_02_256 Nuclei_Texture_Correlation_Hoechst_3_03_256 Nuclei_Texture_Correlation_Mitochondria_3_00_256 Nuclei_Texture_Correlation_Mitochondria_3_01_256 Nuclei_Texture_Correlation_Mitochondria_3_02_256 Nuclei_Texture_Correlation_Mitochondria_3_03_256 Nuclei_Texture_Correlation_PM_3_00_256 Nuclei_Texture_Correlation_PM_3_01_256 Nuclei_Texture_Correlation_PM_3_02_256 Nuclei_Texture_Correlation_PM_3_03_256 Nuclei_Texture_DifferenceEntropy_Hoechst_3_00_256 Nuclei_Texture_DifferenceEntropy_Hoechst_3_02_256 Nuclei_Texture_InfoMeas1_ER_3_00_256 Nuclei_Texture_InfoMeas1_ER_3_01_256 Nuclei_Texture_InfoMeas1_ER_3_02_256 Nuclei_Texture_InfoMeas1_ER_3_03_256 Nuclei_Texture_InfoMeas1_PM_3_00_256 Nuclei_Texture_InfoMeas1_PM_3_01_256 Nuclei_Texture_InfoMeas1_PM_3_02_256 Nuclei_Texture_InfoMeas1_PM_3_03_256 Nuclei_Texture_InfoMeas2_PM_3_00_256 Nuclei_Texture_InfoMeas2_PM_3_01_256 Nuclei_Texture_InfoMeas2_PM_3_02_256 Nuclei_Texture_InfoMeas2_PM_3_03_256 Nuclei_Texture_InverseDifferenceMoment_Hoechst_3_00_256 Nuclei_Texture_InverseDifferenceMoment_Hoechst_3_01_256 Nuclei_Texture_InverseDifferenceMoment_Hoechst_3_02_256 Nuclei_Texture_InverseDifferenceMoment_Hoechst_3_03_256 Nuclei_Texture_InverseDifferenceMoment_PM_3_00_256 Nuclei_Texture_InverseDifferenceMoment_PM_3_01_256 Nuclei_Texture_InverseDifferenceMoment_PM_3_02_256 Nuclei_Texture_InverseDifferenceMoment_PM_3_03_256 Nuclei_Texture_SumEntropy_PM_3_01_256 str i64 i64 str str str str f64 f64 f64 f64 i64 i64 str str i64 i64 i64 i64 str str f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 … f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 "B" 2 7 "healthy" null "DMSO_heart_7" null 870.048176 222.975912 883.760337 261.61621 8 2 "localhost240927060001" "B02" 1 1 3 3 "f07" "12575616795011807720" -0.751363 0.572923 -0.397076 0.280466 -0.842051 0.921933 -0.808205 -0.152162 -0.576562 1.018035 -0.555971 1.136591 -1.010685 -0.580809 0.296295 0.374481 … 1.26599 0.223125 0.001392 0.481817 0.776713 -0.060115 -0.47829 0.369701 0.664598 -0.595822 -0.779385 -1.10438 0.019679 -0.081576 0.899131 0.131613 0.288529 -0.396068 -1.475314 0.104475 0.605291 0.480656 -0.418191 0.05484 -0.245545 -0.194699 0.449148 0.153167 -1.314356 -0.527268 -0.28336 -0.966427 -0.028467 0.025132 0.531559 0.161083 -0.084311 "B" 2 7 "healthy" null "DMSO_heart_7" null 372.665138 78.150612 422.940605 121.357251 9 3 "localhost240927060001" "B02" 1 1 3 3 "f08" "3793444334871218055" -1.315906 1.653718 -0.660428 -1.684414 -0.408983 -0.805361 -1.386725 -1.901982 -0.170266 -0.830062 -1.194093 -1.405091 -1.373065 -1.294781 0.279446 0.891917 … 1.102321 0.297905 0.501124 1.420509 0.260714 -0.725359 0.799276 1.3109 0.532934 0.074106 0.416485 1.003763 0.552246 -0.005259 1.298366 1.548535 -0.770951 -1.91123 -0.873208 -0.699423 -0.794136 -1.358924 -0.085818 -0.433256 1.040848 1.26808 0.738358 0.875659 -1.281228 -0.035844 -1.641539 -1.781835 -0.67462 -0.054664 -0.974624 -1.157279 1.004183 "B" 2 7 "healthy" null "DMSO_heart_7" null 691.469799 396.812081 683.988473 379.093181 13 5 "localhost240927060001" "B02" 1 1 4 4 "f24" "13106199485709533901" -0.831717 -0.493455 -0.314125 1.206134 -0.995271 0.95686 -0.597832 -1.242007 -0.676838 -0.697607 0.261978 -0.954203 -0.465119 0.237499 -1.585019 -0.733386 … -0.667511 -0.10777 -2.840204 -2.204482 -1.341247 -0.772522 -0.848805 -0.711727 -0.210759 -0.562823 0.244987 0.01068 0.07403 0.112629 -1.361163 -1.710352 0.354125 0.124231 -0.204837 0.048314 0.903335 0.686618 -0.263899 0.594106 -0.96627 -0.718725 0.013854 -0.630529 1.253008 0.978559 1.724513 1.741098 0.204027 0.415166 0.695386 0.509317 -0.669122 "B" 2 7 "healthy" null "DMSO_heart_7" null 658.817385 176.3645 656.476395 192.96612 17 1 "localhost240927060001" "B02" 1 1 5 5 "f04" "7290611366224905244" -0.729628 2.007046 -0.698666 -0.80159 -0.704448 0.553221 -0.655824 -1.543914 -0.336989 -0.24697 -0.756293 -0.671515 -1.237478 -0.235575 -1.694629 0.086748 … 0.832292 0.307098 -0.386429 -0.850363 -0.084532 0.570731 0.412617 -0.222178 0.226913 1.11128 -1.537455 -1.935402 -0.910721 0.202415 0.831907 0.771808 -0.146304 -0.354501 -0.571405 -0.525462 1.445841 1.412182 1.00448 0.277911 -0.996699 -1.161237 -0.553192 0.01472 -0.793306 -0.84018 -0.947567 -0.750173 -0.856654 -0.524341 -0.36156 0.09598 -0.099079 "B" 2 7 "healthy" null "DMSO_heart_7" null 1031.773316 87.448834 1023.158705 96.849952 9 3 "localhost240927060001" "B02" 2 2 4 4 "f08" "13601323271362343116" -1.714346 -2.535695 -0.200532 2.762689 -0.613978 0.124689 0.33025 -0.038417 1.281422 -0.987717 -1.124053 1.35118 -0.382761 -0.324415 -2.406365 -2.811065 … 0.519184 0.406731 2.418243 2.290277 1.290873 1.647338 0.507265 1.048953 0.574748 -0.159257 -0.570205 0.79213 -0.870146 -2.626183 0.031559 1.241171 -0.044313 -0.257633 0.132283 -0.004799 1.927704 0.103152 2.3075 2.455422 -0.701168 0.677342 -1.218404 -2.189919 0.371659 -0.508734 -1.278283 -1.529378 -2.088097 -0.929627 -2.14462 -2.443222 1.224159
"
+ ],
+ "text/plain": [
+ "shape: (5, 495)\n",
+ "┌───────────┬───────────┬───────────┬───────────┬───┬───────────┬───────────┬───────────┬──────────┐\n",
+ "│ Metadata_ ┆ Metadata_ ┆ Metadata_ ┆ Metadata_ ┆ … ┆ Nuclei_Te ┆ Nuclei_Te ┆ Nuclei_Te ┆ Nuclei_T │\n",
+ "│ WellRow ┆ WellCol ┆ heart_num ┆ cell_type ┆ ┆ xture_Inv ┆ xture_Inv ┆ xture_Inv ┆ exture_S │\n",
+ "│ --- ┆ --- ┆ ber ┆ --- ┆ ┆ erseDiffe ┆ erseDiffe ┆ erseDiffe ┆ umEntrop │\n",
+ "│ str ┆ i64 ┆ --- ┆ str ┆ ┆ ren… ┆ ren… ┆ ren… ┆ y_PM_3… │\n",
+ "│ ┆ ┆ i64 ┆ ┆ ┆ --- ┆ --- ┆ --- ┆ --- │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ f64 ┆ f64 ┆ f64 ┆ f64 │\n",
+ "╞═══════════╪═══════════╪═══════════╪═══════════╪═══╪═══════════╪═══════════╪═══════════╪══════════╡\n",
+ "│ B ┆ 2 ┆ 7 ┆ healthy ┆ … ┆ 0.025132 ┆ 0.531559 ┆ 0.161083 ┆ -0.08431 │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ 1 │\n",
+ "│ B ┆ 2 ┆ 7 ┆ healthy ┆ … ┆ -0.054664 ┆ -0.974624 ┆ -1.157279 ┆ 1.004183 │\n",
+ "│ B ┆ 2 ┆ 7 ┆ healthy ┆ … ┆ 0.415166 ┆ 0.695386 ┆ 0.509317 ┆ -0.66912 │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ 2 │\n",
+ "│ B ┆ 2 ┆ 7 ┆ healthy ┆ … ┆ -0.524341 ┆ -0.36156 ┆ 0.09598 ┆ -0.09907 │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ 9 │\n",
+ "│ B ┆ 2 ┆ 7 ┆ healthy ┆ … ┆ -0.929627 ┆ -2.14462 ┆ -2.443222 ┆ 1.224159 │\n",
+ "└───────────┴───────────┴───────────┴───────────┴───┴───────────┴───────────┴───────────┴──────────┘"
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# loading profiles\n",
+ "cfret_screen_df = load_profiles(cfret_profiles_path)\n",
+ "cfret_screen_meta, cfret_screen_feats = split_meta_and_features(cfret_screen_df)\n",
+ "\n",
+ "# updating the treatment name to reflect the heart source for DMSO in healthy cells\n",
+ "# this is our reference for healthy cells when measuring phenotypic activity\n",
+ "cfret_screen_df = cfret_screen_df.with_columns(\n",
+ " pl.when(\n",
+ " (pl.col(\"Metadata_treatment\") == \"DMSO\")\n",
+ " & (pl.col(\"Metadata_cell_type\") == \"healthy\")\n",
+ " )\n",
+ " .then(pl.lit(\"DMSO_heart_7\"))\n",
+ " .otherwise(pl.col(\"Metadata_treatment\"))\n",
+ " .alias(\"Metadata_treatment\")\n",
+ ")\n",
+ "cfret_screen_df = cfret_screen_df.with_columns(\n",
+ " pl.when(\n",
+ " (pl.col(\"Metadata_treatment\") == \"DMSO\")\n",
+ " & (pl.col(\"Metadata_cell_type\") == \"failing\")\n",
+ " )\n",
+ " .then(pl.lit(\"DMSO_heart_19\"))\n",
+ " .otherwise(pl.col(\"Metadata_treatment\"))\n",
+ " .alias(\"Metadata_treatment\")\n",
+ ")\n",
+ "\n",
+ "# Generate feature value shuffled dataframe for control\n",
+ "shuffled_cfret_screen_df = cfret_screen_feats.select(\n",
+ " [pl.col(col).shuffle() for col in cfret_screen_feats.columns]\n",
+ ")\n",
+ "\n",
+ "# Display data\n",
+ "cfret_screen_df.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "3f0a4a9c",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "number of healthy cells 1720\n",
+ "number of failing cells 4915\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(\n",
+ " f\"number of healthy cells {cfret_screen_df.filter(pl.col('Metadata_treatment') == 'DMSO_heart_7').height}\"\n",
+ ")\n",
+ "print(\n",
+ " f\"number of failing cells {cfret_screen_df.filter(pl.col('Metadata_treatment') == 'DMSO_heart_19').height}\"\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "d33e33a9",
+ "metadata": {},
+ "source": [
+ "## Preprocessing"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "7b3fc684",
+ "metadata": {},
+ "source": [
+ "Filtering Treatments with Low Cell Counts:\n",
+ "\n",
+ "Treatments with low cell counts were removed from the analysis. This reduction in cell numbers is typically caused by cellular toxicity, which leads to cell death and consequently results in insufficient cell representation for downstream analysis.\n",
+ "\n",
+ "Low cell count treatments also pose challenges when assessing heterogeneity, as there are not enough data points to form meaningful clusters. To address this, highly toxic compounds with very few surviving cells were excluded from the BUSCAR analysis.\n",
+ "\n",
+ "A threshold of 10% was applied based on Scanpy documentation, which recommends having at least 15–100 data points to compute a reliable neighborhood graph. To validate this threshold, we generated a histogram of cell counts and marked the 10th percentile with a red line. Treatments falling below this threshold were removed and excluded from the BUSCAR pipeline."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "a3535dba",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# count number of cells per Metadata_treatment and ensure 'count' is Int64\n",
+ "counts = cfret_screen_df[\"Metadata_treatment\"].value_counts()\n",
+ "counts = counts.with_columns(pl.col(\"count\").cast(pl.Int64))\n",
+ "counts = counts.sort(\"count\", descending=True)\n",
+ "counts = counts.to_pandas()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "146c965b",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "10th percentile of cell counts: 23.3 cells\n"
+ ]
+ }
+ ],
+ "source": [
+ "# using numpy to calculate 10th percentile\n",
+ "tenth_percentile = np.round(np.percentile(counts[\"count\"], 10), 3)\n",
+ "print(f\"10th percentile of cell counts: {tenth_percentile} cells\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "50867f87",
+ "metadata": {},
+ "source": [
+ "Plotting cell count distribution"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "id": "3d6fd55b",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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NFFQUFCadnXr1jXCHgcOHNDp06cz7HP27Nk6efJktvfD1vz8/Izlu6f4sbUJEyZkev5NnDjRCNkEBgaqWbNmadoMGDDAWP7555+1devWbG/fXtNAWh5jy1GQbM3y2EyaNClHI4uld2w6dOige++913h/zJgx2f5RPCYmJs3IRpUqVTKWd+3apdu3b2e4/nfffZet8KBUsOewrdj6s8ovjnhsbS2/7j2FweDBg+XsbP6n4rCwMP3yyy92rij/RUZGZrut5ZSHltPlStIjjzxihJ1jY2M1atSoAgsJuru7q2/fvsbzsWPH5uj7mV4Y/plnnjFCVUeOHMn070J3i4iIUHJycrbbAwAAAIAtEYACAAAAgELG3d1dkydPVqlSpSSZw0qvvPKKRowYkWF4xmQy6eDBg3rzzTf15JNP6sSJE+m2e/fdd42Az5YtW/Tcc89l+uPt2bNn9cUXX6ht27aFahqUkiVLavLkyca+REVFqVevXvrggw8UGhqa7jpJSUnauXOnBg0apF69eln9mJnK29tbL7/8svH822+/1aRJk9IEda5fv66XX37ZmKLN1dVVr732WrrbLVOmjDFSkclk0v/+9z9dvXo1TW0zZ87Uhx9+aDXKSkGrXr26sZyfI1G5ubnpyJEjevnll9P8+BofH68PPvhAS5YsMV579dVXjR/mLYWEhKhr166SzMdw4MCB+uabbxQTE5PuduPj47V27VoNHjxYgwcPtuEeZV/FihVVvHhxSVJoaGi2pwPMqc6dOxvnXUxMjJ599lnNmzcvw9BZdHS0li9frt69e+v9999P876Li4vGjBljTJO1ePFiDRw4MNNA39GjR/Xxxx+rdevWunTpktV7derUUUBAgCTp9u3bGjZsWJof7RMSEjR58mR9+umnxnc9KwV1DtuSrT+r/GI5VeG6deuK5AhB+XXvKQyqVq2qxx57zHg+ffr0f/1n/PPPP+vJJ5/UnDlzMgwTxsTE6PPPP9ehQ4ckma+FzZs3t2rj6uqqd9991wg7//nnn3rxxRczvD5eunRJkydP1tKlS22yHy+88IJx7bt27Zq6d++u1atXKyUlJd32ERERmj9/vrp27aoZM2aked/Hx0dvvfWW8XzatGl68803dfny5XT7M5lM2rNnj8aMGaM2bdooLi7OBnsFAAAAADnnau8CAAAAAABpVapUSQsWLNDg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dd999+m+++5TpUqVtHjxYr311ls57isiIkLjxo2TZA4/TZs2Te3atTPe79Kli7p166bnn39ed+7c0eTJk9W+fXsFBQXZbH+AoiomJkZz586VJD366KOZhl+qVq2qAQMG6NFHH013irtBgwZpxIgRWrNmjeLj4/X222/r119/lYuLS5q2jRs31ubNm1W6dOkMtzd8+HANHz5cf/75p2JjYzVx4kR9++23udhLZOaZZ57R999/r9jYWM2bNy/DKRAdlbO9CwAAAAAAAAAAAAAAFE6DBg3Sa6+9pkcffVSVKlXKU18zZsxQdHS0JKlXr15W4adU9evXN6bLSkpK0hdffJGnbQIwW7FihW7duiVJ6tq1a4btWrZsqZUrV6pr167php8kqXjx4vr4449VtmxZSebpK3fv3p1u21KlSmUafkrt78MPPzQCVFu2bFFCQkKW+4Scuffee9WgQQNJ0ty5c5WSkmLnimyLEaAAAAAAAAAAAAAAAPlu9erVxnLfvn0zbNejRw9NmTJFsbGxWr9+veLi4lSsWDFJSnf0qbfeeivdEamymqrs8OHDmj17tnbu3KmwsDB5enqqRo0a6tq1q7p06SJn57yNJ2JZ6/jx49WtWzcdOnRIc+bM0a5duxQWFqbixYurRo0a6ty5s7p3757tba5fv16//fab9u3bp+vXryslJUWlSpVSw4YN1a1bNz300EMZrrtjxw5j+rMhQ4Zo6NChOnfunObNm6dNmzbp2rVrun37tvGepYSEBC1btkx//fWX/v77b0VERCgpKUmlSpVSjRo11LRpUz3++OMKCAjIcPvh4eGaP3++tmzZogsXLujmzZvy8vJSlSpV1LJlS/Xq1UslSpTIcP3evXtr586dkv75jP/44w/98ssvOnr0qCIjI+Xn56cGDRqoT58+aty4cabHINW0adM0bdq0NG3XrVunihUrZnjs8uL27dv65ZdftHHjRp06dUpRUVHy9PRUxYoV1axZMz333HOZHsucWLJkiSTzNJYhISEZtvPx8clWf8WKFVObNm00f/58SebPokmTJrmur1SpUvL391d4eLiSkpIUGRlpk32Pjo7WwoULtXnzZp04cUKRkZFycnJSmTJlVKtWLTVr1kwdO3aUn59fhn1cuHBBCxYs0LZt2xQaGqro6Gj5+vqqWrVqateunZ5++ukMw2K2dOzYMS1YsEC7d+9WaGio4uLi5O3trZIlSyogIED16tVThw4ddN9992XYR4cOHbR3715du3ZNW7duVfPmzfO97oJCAAoAAAAAAAAAAAAAkK9OnTql0NBQSebptTIbTcrb21uNGjXSpk2bFBsbq507d6ply5Y2refbb7/VpEmTlJycbLyWkJCgnTt3aufOnVq3bp0mT54sV1fb/aQ+a9YsTZw40Wqb8fHxxjYXLVqkb775JtPwz5UrVzR8+HDt27cvzXuhoaEKDQ3VihUr1KFDB02YMCFboYxly5Zp9OjRiouLy7Td9u3bNWLECF27di3Ne1evXtXVq1e1ceNGrVixQkuXLk23jx9//FGfffaZ7ty5Y/V6VFSU9u3bp3379mnWrFn69NNP1aJFiyxrj4+P1xtvvKHff//d6vXw8HCtWbNGa9as0RtvvKH+/ftn2VdBW716tcaMGaOoqCir12/evKmbN2/qyJEj+uGHHzR27NhMR2zKjrCwMO3fv1+S1LBhw3SnqssNb29vYzmr8ycrt27dMo6Fm5tbpoGk7Fq1apXGjRuX5hhL0qVLl3Tp0iWtXbtWW7ZsSXe0uZSUFE2aNEkzZsxQUlKS1Xs3btzQjRs3tGPHDs2cOVNffPGF7r///jzXnJEvvvhC06ZNSzNqU1RUlKKionT27Flt375d69ev18qVKzPsxzL8tmbNGgJQAAAAAAAAAAAAAABk14kTJ4zlunXrZtm+bt262rRpk7FuagCqadOm+uKLL7R9+3b99NNPkswjAjVt2jTbtSxYsEArV66Uv7+/unbtqpo1a8rZ2Vn79u3TL7/8ooSEBK1du1bfffedBg0alJPdzNCff/6pP/74Q25ubnrqqafUsGFDOTs768iRI1q0aJFu376tffv2acCAAZozZ066wasrV66oR48eCg8PlyTVqVNH7dq107333itnZ2edPXtWS5cu1cWLF/X7778rNjZW06dPl5OTU4Z17du3T19//bWcnJzUtWtXNWrUSJ6enjp//rwqVKhgtFu7dq2GDRtmhEAqV66sRx99VFWqVJG7u7vCw8N18OBB/fXXXzKZTOlu6/PPP9fXX38tSfL09FSHDh1Uv359+fn56ebNm9q2bZvWrFmjmzdvatCgQfrhhx/0wAMPZHpcR40apd9//101atRQp06ddM899yg2NlZ//vmn1q5dK0n65JNPVL9+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qlChglxdXXX79m2dP39eBw4c0KFDh2QymRQSEpLtzyqr99PbVx8fH9WqVUvHjh3Trl279P7776tJkyZWwbJGjRoZ51VOj11679eoUUNvv/22xo0bp7i4OI0aNUo//PCDWrZsqUqVKqlYsWKKjo7WxYsXdfjwYe3bt09JSUl6//33c30u+vv7q169etq/f7/279+vhIQEubm5pdt2y5Yteuedd4wMQocOHeTs7Kz169dnuo1y5cqpdu3aaV6fPXu25s6dq+DgYNWtW1f33nuvfHx8lJKSovDwcCPUFxcXJ0ny9vbW+++/L1dX11zvb506dfS///1PEydONI7dL7/8orZt2yowMFDOzs7Gtrds2aKQkJA016wePXro77//1rJly3Tp0iU9++yzevDBBxUSEqKAgABJ0q1bt3T27Fnt27dPx48fl6QMv793u/tcsly+e/0lS5ZoyZIlqly5sho3bqxq1aqpRIkSSkhI0NWrV/XHH38Y12VfX1899dRTGdZgOQJbmzZtbHLvM5lMheK/3QhA5YDl9HdPPfWUHSux5uLiwghQhYDlFzqjmwUAALbCfSdnYhISteZYqE36eqRWoNzFcQdQtHDfAQAUJO47AFC0JSUlGctOTk75vj3LH34LYnuO6OrVq5oxY0aG7588edIqECWZR266ezSVVJ07d1ZcXJw+++wzxcfHa/Xq1Vq9erVVGxcXF7344otpgjuW3Nzc9Morr2jcuHFKSkqyGv0k1b59+4xly8/Xyckp0887J20zY7leq1at1KhRI3322WdauHChFi5cmKZ9cHCwpkyZkuHfgQICAjR79myNHj1aW7Zs0a1bt7R48eJMawgICEhTf272r23btpo6dareffddXb9+XefPn8/wvChfvny6fQ4cOFDly5fXJ598olu3bmnfvn1Wn9HdvLy85OPjk+3PKqv3M9rXoUOHatiwYUpKStLixYvTHNNVq1apQoUK2e4vO/U9+eSTKlOmjMaMGaPw8HAdP37cCNCkx93dXSVLlszTdeqJJ57Q/v37dfPmTW3ZskVt2rRJt93hw4etrsWrVq3SqlWrstX/uHHj0n0vJSXFCF9l5r777tPo0aMzHekou/7zn//I19dXH330kaKjo3Xs2DEdO3Ys3bbOzs7pHtv33ntPlStX1jfffKO4uDht3brVmKoyPX5+fvLw8MjW53T3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6X6VFqDuvvvufPzjH89zzz2XJJ3lp43Zfvvtc+edd+ahhx7K8OHDc9JJJ3X7/8r7u9/9bh555JHU19fn/PPPT319fbfO3xPq6+utANUHrPsHqq5u/c9NkWKDYxs69sUaGxu3LhwA25x17zvuE5tmU+65m6MW/t3723te0dyS/3r4mW6Z6/X77Zym9P33DL3FfQeA3uS+A0Bvct8BoLe453Rob2/vkUV+KitAzZgxI+973/vS0tKSsixTFEXGjRuXpUuXdhaiNuT000/Peeedl6VLl+Z3v/tdjjvuuG7L9PDDD+f73/9+kuTd73539t9//26buyeNHz8+Q4cOrTpGv7fuEnVjxoxeb39j0/p/wBqbGjd47FoNDQ0Z2FCXiRMndk9IALYZM2fOTEtLSxobG90nNkF7a/tL3nM3R63cn73nrVMr7xl6i/sOAL3JfQeA3uS+A0Bvcc/psHz58syePbvb562kALVmzZp89KMfTXNzc5JkypQp+chHPpLRo0fn/PPPz49//OONnvv6178+n/vc51KWZbcXoH7+85+npaUldXV1aWxszHe+850NHvf73/++y/ba4/bcc8+86U1v6rY8AAAAAAAAAADAS6ukAPWzn/0sCxYsSFEU+du//dt85jOf2eRzR44cmd133z2PP/54Zs2a1a251j6Cr729Pd/73vc26Zy77rord911V5LkhBNOUIACAAAAAAAAAIBeVFfFRW+++eYkyZAhQ/Kxj31ss88fP358yrLME0880d3RAAAAAAAAAACAGlLJClCPPPJIiqLIoYcemiFDhmz2+dttt12SZNmyZd2a69xzz8255577ssd961vfysUXX5wkmTp1as4666xuzQEAAAAAAAAAAGyaSgpQS5YsSZKMGTNmi84viiJJx6PqoFbcf8PNVUcAAAAAAAAAANjmVPIIvMGDBydJ1qxZs0XnP/fcc0mSESNGdFckAAAAAAAAAACgBlVSgNpxxx1TlmUeffTRzT63LMvcf//9KYoiu+yySw+kAwAAAAAAAAAAakUlBahDDjkkSTJr1qw8/fTTm3Xub37zmyxevDhJcthhh3V7NgAAAAAAAAAAoHZUUoB64xvfmKRjNacvfOELm3ze/PnzO48viiInn3xyj+R7OWeddVZmz56d2bNn56yzzqokAwAAAAAAAAAAUFEB6ogjjsikSZNSlmVu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AGxTKnkEXlNTU5Kkvb29y/iwYcM6t+fOnbvR89cWpRYsWNAD6QAAAAAAAAAAgFpRSQFq9OjRSZKlS5d2Gd9tt906tx944IGNnv/4448nSdra2ro/HAAAAAAAAAAAUDMqKUDtvffeKcsyTzzxRJfxAw44oHP75z//+QbPnTlzZu67774URZGddtqpR3MCAAAAAAAAAAB9WyUFqEMOOSRJ8uijj2bFihWd43vssUcmTJiQsixz33335dOf/nSef/75zv0zZszIRz/60ZRlmSQ56qijejc4AAAAAAAAAADQp1RSgDrmmGOSdDzC7vbbb++y70Mf+lDn9s9+9rMcc8wxOeaYY3LYYYflzDPPzDPPPJMkGThwYN7znvf0XmgAAAAAAAAAAKDPqaQANW7cuLzhDW/IxIkTM2vWrC77jjvuuPzjP/5jyrJMWZZpa2vLwoULs3Tp0s6xgQMH5qtf/Wp23nnnKuIDAAAAAAAAAAB9RENVF/7mN7+50X1nnXVWXv3qV+eSSy7J73//+7S0tCRJhg0blmOPPTYf/OAHM27cuN6KCgAAAAAAAAAA9FGVFaBezlFHHZWjjjoq7e3tWbx4cYqiyMiRI1MURdXRAAAAAAAAAACAPqLPFqDWqqury/bbb191DAAAAAAAAAAAoA+qqzoAAAAAAAAAAADAllKAAgAAAAAAAAAAapYCFAAAAAAAAAAAULMaemriE044oaem7lQURW688cYevw4AAAAAAAAAANA39VgB6plnnklRFC95TFmW641t6JwXH1cURcqyfNn5AQAAAAAAAACAbVuPFaCSDRecNmRtkaksy42esynHAAAAAAAAAAAA/UuPFaBuuummlz3mf/7nf/KlL30pLS0tGTt2bE455ZQcdNBB2WmnnTJ48OCsXLky8+bNyx/+8If84he/yNNPP52mpqb88z//c44//vieig4AAAAAAAAAANSIHitA7bzzzi+5/2c/+1kuuOCCFEWRD3/4w3nf+96Xhob14+y333457rjj8qEPfSiXXHJJvvGNb+SCCy7IgAED8ra3va2n4gMAAAAAAAAAADWgroqLPvbYY/n85z+fJPnYxz6W//N//s8Gy0/rqq+vz/vf//58/OMfT1mW+cIXvpA5c+b0RlwAAAAAAAAAAKCP6rEVoF7K1Vdfnebm5owePTp///d/v1nnvuc978lll12W5557LldffXXOOeecbs02c+bMPPDAA3nggQfyxz/+MYsXL87ixYvT0tKS4cOHZ9y4cTn88MMzZcqUl13lCta1Yt8JmzQGAAAAAAAAAMCmq6QAdccdd6QoikyaNGmzz1173i9+8Yv87ne/6/Zs73rXu7Jy5coN7lu0aFEWLVqUu+++O//2b/+WqVOn5gMf+EC3Z2Db9OhXL646AgAAAAAAAADANqeSAtTcuXOTJIMHD96i89eeN2/evG7LtK7tt98+EydOzL777ptddtklw4YNS2tra5555pnccsstuffee9Pc3Jyvfe1raWlpydSpU3skBwAAAAAAAAAA8NIqKUCt9fjjj2/VeWVZdl+YP7vmmmuy9957pyiKDe7/wAc+kGnTpuXss89OWZb57ne/m7e97W0ZM2ZMt2cBAAAAAAAAAABeWl0VF915551TlmXuvffePPbYY5t17pw5c3LPPfekKIqMHTu227Pts88+Gy0/rTV58uQcd9xxSZLW1tbcdttt3Z4DAAAAAAAAAAB4eZUUoI4//vgkSXt7ez7ykY9k8eLFm3Te4sWL89GPfjTt7e1Jkte97nU9lvHl7L333p3bCxcurCwHAAAAAAAAAAD0Z5UUoP7u7/4uw4cPT5LMnj07p5xySq6++uosX758g8cvX74811xzTU499dTMnj07STJs2LD83d/9Xa9lfrEnnniic3uHHXaoLAcAAAAAAAAAAPRnDVVcdMcdd8wFF1yQj3zkI2lra8vChQvzuc99Ll/4whey1157ZezYsRk4cGBWr16dZ599NnPmzElbW1uSpCzL1NfX5wtf+EJ23HHHKuLn5ptvzo033pgkGTBgQOfj8AAAAAAAAAAAgN5VSQEqSU488cRcfPHFOffcc7No0aKUZZnW1tb88Y9/zB//+Mcux5Zl2bk9cuTIXHDBBb3y+Lvf//73eeGFF5Ikzc3NmTdvXu64447cfvvtSZKGhoZ87nOfswIUAAAAAAAAAABUpCjXbRdVYMmSJbn00ktz3XXXZeHChRs9bocddshb3vKWvPvd787IkSN7Jdvb3/723H///euNF0WRSZMm5UMf+lAmTZrUK1nWtXz58s5HASZJfX196uoqeZoh62hpacn++++f5tTlvx5+Zr39o++6I41LX+h6zvDtsuDwozY65+v32zlNac8jjzzS7XnpO/bYY480NTV1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+lX+67/+K9OnT8+CBQtSV1eXXXfdNccff3yOOuqoXkwK3eOPX/7X1K9Y0WWsbciQitIAAAAAAAAAAGwbKitAvZympqacfPLJOfnkk6uOAt1i5SsPqDoCAAAAAAAAAMA2p67qAAAAAAAAAAAAAFuqkhWgLr744iTJxIkTc+yxx272+b/73e9y7733JkmmTp3ardkAAAAAAAAAAIDaUVkBqiiKnHHGGVtUgLrtttty6aWXpigKBSgAAAAAAAAAAOjHPAIPAAAAAAAAAACoWTVdgCqKouoIAAAAAAAAAABAhWqyALV06dIkycCBAytOAgAAAAAAAAAAVKnmClAtLS25++67kyRjxoypOA0AAAAAAAAAAFClhp6+wLRp0za6b86cOS+5f10tLS2ZP39+br755jz11FMpiiIHHnhg94SEXjDhXW/P0Afv6zK2/ICDMuvya6sJBAAAAAAAAACwDejxAtTZZ5+doijWGy/LMtOnT8/06dO3aN6iKHL66advbTzoNY3PL8yAuc92GVszdpeK0gAAAAAAAAAAbBt6vACVdJSdNmf85QwcODBnn312Dj744K2JBQAAAAAAAAAA1LgeL0BNmTJlvbHrr78+RVFkzz333OTH2A0YMCAjRozIPvvsk2OPPTZDhw7t7qgAAAAAAAAAAECN6fEC1EUXXbTe2PXXX58kOfLII/OpT32qpyMAAAAAAAAAAADbqF55BN6LjR07NkkyYsSIKi4PAAAAAAAAAABsIyopQN18881VXBYAAAAAAAAAANjG1FUdAAAAAAAAAAAAYEtVsgLUhrzwwgu59957M3fu3CxdujStra2ZOnVq1bEAAAAAAAAAAIA+rPIC1P33359vf/vbuf3221OWZZd9Ly5ALVy4MB/84AfT3t6egw46KJ/61Kd6MyoAAAAAAAAAANDHVPoIvP/3//5fzjjjjNx2221pb29PWZadrw3ZYYcdssMOO+TBBx/MNddck8WLF/dyYgAAAAAAAAAAoC+prAD14x//OF/72tfS2tqasiyz11575W//9m9zwAEHvOR5f/3Xf50kaW1tza233tobUQEAAAAAAAAAgD6qkgLUggUL8pWvfCVJMmDAgFx00UX55S9/mfPOOy8HHnjgS5577LHHpqmpKUly11139XhWAAAAAAAAAACg76qkAHX11Vdn9erVKYoin/zkJzNlypRN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AAAAAAAAAAAAAKMWASgAAAAAAAAAAAAAAAAAoxYBKAAAAAAAAAAAAAAAAACjFgEoAAAAAAAAAAAAAAAAAKMWASgAAAAAAAAAAAAAAAAAo5an0gUAo93y5cv14IMP6u2331ZLS4uqq6s1a9YsnXrqqbr44otVXV1d6RIBAGVk27bWr1+vt99+W++8847efvttrV69WslkUpL08Y9/XD/+8Y8HdczNmzfrjjvu0DPPPKOmpiY5jqOGhgadeOKJuuiii3TQQQcN+FjpdFr33HOP/vKXv2jDhg3q6OjQhAkTtHjxYp111lk655xzZJoDz8C//PLLuueee/Tqq6+qpaVFgUBA06dP18knn6xPfOITqq+vH9TPCgAYuO7ubj377LN68cUXtXLlSm3atEnRaFR+v18NDQ069NBDdfbZZ2vp0qUyDGNAx2TMAQD05a233tKKFSu0YsUKvfvuu2pvb1d7e7symYwikYjmzZun4447Th//+Mc1ffr0AR2zublZd955p5544glt375dyWRS9fX1Ovroo3X++efrmGOOGXB9juPooYce0iOPPKLVq1erra1NtbW1mjt3rk4//XRdcMEF8vl8Az7eqlWrdOedd+r5559Xc3OzTNPUtGnTtHTpUl188cWaOXPmgI8FACivr3/967r//vvzl6+44gpdeeWV+70er3cAAH259NJL9dJLLw24//Lly9XY2NhvH8adkcdwXdetdBHAaBSLxXTNNdfo8ccf77PP1KlT9T//8z86/PDDh68wAMCQuvLKK/XYY4/12T7YANSdd96pH/7wh/kA1b4sy9KXvvQlXXHFFfs91vr163XVVVdp3bp1ffY56qij9Itf/EKTJk3q91jZbFbf+973dNddd/XZp7a2Vj/60Y908skn77c2AMDg/P73v9e1116rVCq1375HH320/vu//1vTpk3rtx9jDgCgP0cccYTi8fh++/l8Pl1xxRX6/Oc/32+/ZcuW6Zvf/KY6Ozv77POJT3xC3/nOd2RZVr/Hamlp0VVXXaXXXnutzz4LFizQddddpzlz5vT/A0j6xS9+oRtuuEG2bZdsDwQC+o//+A9deOGF+z0WAKC8nnrqKV1++eVF+wYSgOL1DgCgP+UOQDHujEwEoIADYNu2Pv/5z+uZZ56RJE2aNEkXXnih5s+fr87OTj388MP5N2Rqamp0++23a968eZUsGQBQJl/60pe0fPny/OXa2lrV1tZq06ZNkgYXgHrwwQf1ta99TZJkmqbOPPNMnXDCCfJ4PHrttdd0//33K51OS5K++tWv9nrzp1Bzc7M+8YlPaMeOHZKkRYsW6eMf/7gaGhq0detW3XPPPdq6daskacmSJbr11lsVCoX6PN5//Md/6O6775YkhcNhXXDBBTr44IOVSCT0+OOP68knn5SUO/lx4403DuqT2wCA/fv2t7+tO++8U5I0efJknXjiiVqyZIkmTpyoVCqlN954Q3/605/yJ6obGxt11113aeLEiSWPx5gDANifI444QsFgUIceeqgWLVqkxsZGhcNhZbNZbd++XU8++WRRAOnKK6/s8838F154QZ/73OeUyWQkSR/60Id08sknKxgMauXKlbrnnnsUjUYlSRdffLG+973v9VlXLBbTJZdcolWrVkmSZsyYoQsuuEAzZsxQc3Oz7r//fq1Zs0aSNH36dN111139nhT4v//7P/3P//yPJMnv9+tjH/uYjjzySGWzWT3//PN69NFH5TiODMPQz372M5111lkD/08EALwn3d3dOvvss9XU1KRQKJR/vbO/ABSvdwAA+1MYgPrlL3+53/7vf//7FQwGS7Yx7oxcBKCAA3DHHXfoO9/5jiRp/vz5uummm3q9sfJf//VfuvHGGyXlPpF92223DXudAIDyu+GGGxSLxbRkyRItWbJEM2bM0H333advfOMbkgYegGpra9Npp52m7u5umaap66+/XqecckpRnzfeeEOXXXaZEomEPB6PHnroIc2dO7fk8a6++mo98sgjkqSzzjpLP/nJT+Tx7F3tOBaL6Qtf+EL+Cf4Xv/hF/cu//EvJYz3zzDP63Oc+J0mqr6/XrbfeqtmzZxf1ueWWW/Sf//mfkqSZM2fqkUceGdRyEwCA/n3nO9/Rtm3b9M///M864YQTSk5xvX37dn32s5/Vxo0bJUnnnXeefvSjH/Xqx5gDABiItWvXasGCBf0uq/rAAw/o61//ulzXlcfj0eOPP67JkycX9Umn0zr99NO1fft2SdK3vvUtffKTnyzqs3HjRl166aVqaWmRJP3hD3/QCSecUPI2f/azn+nXv/61JOnYY4/VDTfcoKqqqnx7JpPR1772NT366KOSpHPPPVf//d//XfJY69at07nnnivbthUKhfSHP/xBhx12WFGfZcuW6corr5TjOIpEInrsscdUV1fX5/8JAKB8ej4IMnXqVJ1++un6/e9/L6n/ABSvdwAAA1EYgOr5AMWBYNwZ2Qa+SCAASbnZn66//vr85Z/85CclP1V2zTXX5Nf1fOWVV/T3v/992GoEAAydL3zhC/rqV7+q008/XTNmzDjg4/zud79Td3e3JOmSSy7p9QRZkg4//HB95StfkZSbtrSvTyWsW7cu/2Z/fX29fvCDHxQ9QZakqqoq/fSnP5Xf75eUO8HQ1dVV8ni/+MUv8tvf/va3ez1BlnIvFj784Q9LkrZs2aL777+/vx8XADBI//qv/6rf/e53ev/7318y/CTlZrnomcFCkv785z8rkUj06seYAwAYiIULF/YbfpKkj33sY/rQhz4kKTde9MyOXuiee+7Jh58+/OEP9wo/SdKcOXP07W9/O3/55z//ecnb6+jo0E033SQpN1vTT3/606LwkyR5vV7953/+p+rr6yVJDz30kNavX1/yeNdff31+2burrrqqV/hJkk499VRdcsklkqSurq78yXcAwNB6/vnn88v1fOc73+n1eN8XXu8AAIYT487IRgAKGKSXX345/+m0Y489VkuWLCnZz7IsXXrppfnLPclNAACk3EnqHp/+9Kf77HfhhRfmpzN9/PHHS64n/eijj6pnUs9PfOITfb5BNHnyZJ1xxhmSpEQiUbSUX4+tW7fqrbfekpRbTum0007rs7bLLrssv/3www/32Q8AMHi1tbUD6rd48WLNmTNHUu6xffPmzb36MOYAAMppwYIF+e3W1tZe7T1v4EvSZz7zmT6Pc+qpp2r69OmSpNdffz0fmiq0fPlypVIpSdKZZ57Za7apHlVVVbroooskSa7rFo19PeLxuJ544glJUigUyvcvpXC85D09ABh6iURC3/rWt+S6rs4888z8idmB4PUOAGA4Me6MbASggEF6+umn89snnXRSv30L2wuvBwAY39atW5d/c3/evHn9ziRVXV2to446SlLuDfueaU4LFY4xH/zgB/u97cL2UmNT4b6lS5f2+wnwo48+Ov8E/tVXX1U8Hu/3tgEAQ6O6ujq/3XOSuAdjDgCg3ArDtvvOit7d3a1XX31VUi6UdPTRR/d5HNM0tXTp0vzl/Y0V+3sfbn/jzssvv5w/6XD00Uf3O7PIjBkz8ktUbNu2rc8ZpQAA5fGzn/1MW7duVW1trf793/99wNfj9Q4AYDgx7ox8BKCAQVq7dm1++5BDDum3b319vaZOnSop94m4tra2Ia0NADA6DGYs2bdP4XWl3Keb161bJyk3+2DP8qsHcqzB1ubxeHTwwQdLyi0R21MHAGD4pNNpbdq0KX952rRpRe2MOQCAcnr88ce1bNkySbkl6XqWw+uxfv16OY4jSTr44INlWVa/xyvnWFF4e++++27+k9Q91qxZM+BjDaQ2AEB5vPbaa7rtttskSV/72td6hWv7w+sdAMCB+PznP6+lS5fqfe97n4455hidddZZ+o//+A+98MIL/V6PcWfkIwAFDNLGjRvz242NjfvtX9hnw4YNQ1ITAGB0KRwPBjuWFI5DktTU1KREIiFJmjJlirxeb7/HmjJlSv6kwObNm3udFHgv49y+tQEAht7DDz+saDQqSVqyZInq6+uL2hlzAAAH4uWXX9ayZcu0bNkyPfroo7rxxhv12c9+Vl/84hdl27Y8Ho++973v9TpJXc7HdsdxtGXLFkm5EwI9HzLsi9frzS+RF4/HtWvXriGrDQBQHqlUSt/85jflOI5OOOEEnX/++YO6Pq93AAAH4sknn1Rzc7MymYy6urq0bt063X333fr0pz+tT3/602pubi55Pcadkc9T6QKA0abn5IIk1dXV7bd/bW1tyesCAMavco4lXV1dJfv1xev1qrq6Wp2dncpkMorH40VLPzDOAcDo0dbWpp/+9Kf5y1/84hd79WHMAQAciP/+7//Wm2++2Wu/YRg65phjdNVVV+mYY47p1V44Vgz2sb3wulIuxJTNZiVJ4XBYHs/+38qura3Vjh078sebMmVKvo1xBwBGnp///OfauHGjAoGAvv/97w/6+rzeAQAMRk1NjU488US9733v0+TJk2VZlnbt2qXnn39eTz/9tFzX1QsvvKCLL75Yd955Z68PGjLujHwEoIBBKlwD0+/377d/YZ9YLDYkNQEARpfBjiWBQCC/ve9YMthj7dsvFosVPUkuZ20AgKGTTqd15ZVXavfu3ZKkU089Vaeddlqvfow5AIBymjx5st7//vdr1qxZJdsLH9t9Pt9+j9ffY3vh5QMdd/qqjXEHACrvrbfe0h/+8AdJ0pVXXqmZM2cO+hi83gEADNTVV1+tJUuWlHyd8pnPfEYrVqzQVVddpR07dmj79u365je/qd/85jdF/Rh3Rj6WwAMAAAAAYBRxHEff/OY39corr0iSZs6cqR/+8IcVrgoAMJbcddddWrNmjdasWaPXX39dDz74oK666irFYjFde+21Ouecc/Tcc89VukwAwCiVTqf17//+77JtW0uWLNFnPvOZSpcEABjjjjjiiH4/pHHIIYfot7/9bb7P008/rbfeemu4ykOZEIACBikUCuW3U6nUfvsX9ilMYQIAxq/BjiXJZDK/ve9YMthj7dvvvR6vv9oAAOXnuq6+853v6KGHHpIkTZs2Tb///e9VU1NTsj9jDgDgvQqFQlq8eLG+/OUv6/7771dDQ4M6Ojp0+eWXa82aNb369kin0/s9dn+P7YWXGXcAYGz5v//7P61du1aWZekHP/iBLMs6oOPwegcAUE7z5s3TRz/60fzlJ598sqidcWfkIwAFDFI4HM5vt7e377d/R0dHyesCAMavco4lkUikZL++ZLNZdXd3S8qtGV34pLjctQEAyst1XX33u9/VXXfdJUmaMmWKbrrpJjU2NvZ5HcYcAEA5zZgxQ1/96lclSZlMRjfccENRe+FYMdjH9sLrSrk38D0ejyQpGo0qm82+p+Mx7gDAyLB69er8kkKXXXaZlixZcsDH4vUOAKDcjjvuuPz2+vXri9oYd0Y+AlDAIM2ZMye/vW3btv32L+wzd+7cIakJADC6FI4Hgx1LCschSZo6daqCwaAkaefOncpkMv0eq6mpSbZtS5JmzZolwzCK2t/LOLdvbQCA8nFdV9/73vd0xx13SJImT56sm2++WTNnzuz3eow5AIByO+mkk/LbL730UlFbOR/bTdPMj3O2baupqanfY2UyGe3atUtSLjw1efLkIasNAHDg7rvvPmUyGZmmKa/Xq//93/8t+fXyyy/nr/Pyyy/n9//5z3/O7+f1DgCg3CZMmJDfjkajRW2MOyMfAShgkBYuXJjfXrFiRb99W1tb82/OTJw4segBEwAwfg1mLNm3z4IFC4raDMPQ/PnzJeVOCqxateqAjzXY2rLZrFauXCkpd3Kipw4AQHn1hJ9uv/12SVJDQ4NuvvlmzZo1a7/XZcwBAJRbdXV1fruzs7Oobd68eTLN3FvOK1euzL9B35dyjhWFtzd//vxeJwQWLVo04GPt26ewDgDAe+O6riTJcRzdcMMN+vnPf17y68UXX8xf58UXX8zv71kOXOL1DgCg/ApnT9p3ZiTGnZGPABQwSEuXLs1vP/300/32feqpp/LbH/zgB4esJgDA6DJ//nxNmzZNUm4K1f7S+LFYTK+++qokKRgM6thjj+3Vp5xjU+GnuZ955pn8m1KlvPLKK4rH45Kko48+uteUqwCA927f8FN9fb1uvvlmzZ49e0DXZ8wBAJTbpk2b8tv7ftivurpaRx55pKTicaUUx3H097//PX+5cFzoUTjuPPPMM/3Wtb9x55hjjlEgEJCUG1disVifx9q6das2bNggSZo+fbrmzZvX720DACqD1zsAgHIrDODuOzMS487IRwAKGKRjjz1W9fX1knLTfL/zzjsl+9m2rVtuuSV/+cwzzxyW+gAAo8MZZ5yR3/7DH/7QZ7+77ror/0T05JNPzk+JWqhwjLnjjjvy/fe1a9eu/DThgUBAp5xySq8+M2bM0CGHHCIpNwXq3/72tz5rK6z7rLPO6rMfAODAff/73+8VfhrstNSMOQCAcupZjlVSPuxUqHCsuPHGG/s8zrJly/InDA4//HA1Njb26nPKKafI7/dLkh555JH8Enf7isViuuuuuyTlPkldOPb1CIVC+tCHPiRJisfj+f6l3HTTTfltxh0AKK9///d/15o1a/b7dcUVV+Svc8UVV+T3/+///m/R8Xi9AwAol40bN+rBBx/MX/7whz/cqw/jzshGAAoYJMuy9KUvfSl/+d/+7d+0e/fuXv1++tOf5qeqO/LII4sSnAAAfPazn1VVVZUk6bbbbtPy5ct79XnzzTf185//XJLk8Xj05S9/ueSxFixYkH/S3dLSom9961vKZrNFfWKxmK655hqlUilJ0mWXXaZIJFLyeFdeeWV++/vf/742b97cq8+tt96qJ554QpLU2Nio8847r9+fFwAweD/4wQ/0xz/+UdLe8NPcuXMHfRzGHADA/tx+++164YUX+v2UsG3b+vWvf50fmyTpn/7pn3r1u+CCC/Kfin7iiSd022239eqzadMmff/7389f/spXvlLyNuvq6nTppZdKklKplK655ppeMzdls1l961vfUktLiyTp7LPP7nPGpi9/+cv5Jfp+8Ytf6K233urVZ9myZfmaw+GwPvOZz5Q8FgBgZOD1DgBgf26++Wa99tpr/fZZuXKlPvvZz+Yf3z/wgQ/osMMO69WPcWdkM9z+XtUCKCmbzeryyy/Xs88+Kyl3MuLCCy/U/Pnz1dHRoUceeSQ/pV0kEtEf//jHkmtxAgBGn61bt+qee+4p2rdmzZr8E8ZFixb1+lTA8ccfrxNOOKHXse6//359/etfl5RbZ/nMM8/U+9//fpmmqddee00PPPBA/kntv/7rv+oLX/hCn3Xt2rVLF110kXbu3Jmv47zzzlNDQ4O2bt2qu+++W1u3bpUkHXTQQbrtttvyT9JL+cY3vqH77rtPUu5N/wsvvFAHH3ywEomEHn/88fzP6/V69dvf/lbHH3983/9pAIBBu/baa3XDDTdIys1kcfXVVw8o/HTwwQfnTzoXYswBAPTn61//uu6//35NnTpVJ554ohYuXKiJEyfK6/UqGo1q7dq1Wr58ubZv356/zuc//3ldffXVJY/33HPP6fLLL1cmk5GU++R0z6eeV65cqbvvvlvRaFSSdNFFF+kHP/hBn7V1d3frn/7pn7RmzRpJuU82X3TRRWpsbFRzc7Puu+++fNu0adN05513qqGhoc/jXX/99bruuuskSX6/Xx//+Md1xBFHyHEcPfvss3r00UflOI4Mw9B//dd/6aMf/egg/icBAOVy3XXX6frrr5eUmwGq8KTuvni9AwDoz5e+9CUtX75cM2fO1AknnKCFCxeqtrZWpmmqublZL7zwgp566ik5jiMptwz27bffrsmTJ5c8HuPOyEUACjhA3d3duuaaa/IPEqVMmTJF1157bcnpwAEAo9OLL76oT33qU4O6Tn9v0vzxj3/Uj3/84/yT4X1ZlqUvfOELuuqqq/Z7O+vWrdOVV16pDRs29NnniCOO0HXXXZdfzrUv2WxW3/72t3Xvvff22aempkY//OEPdeqpp+63NgDA4Fx66aV66aWXBn29H/3oR31+cosxBwDQl54A1ECEw2FdffXVJWd/KvS3v/1N3/zmN9XV1dVnn4suukjf/e53ZVlWv8fatWuXrrrqKr3xxht99pk/f75+8Ytf9Dn7U6Frr71Wv/nNb2Tbdsn2QCCgb3zjG7r44ov3eywAwNAYTABK4vUOAKBvPQGogfjABz6gH/7wh32Gn3ow7oxMBKCA92jZsmV68MEHtWLFCu3evVtVVVWaOXOmTjvtNF188cUKh8OVLhEAUEblDkBJueUf7rjjDj3zzDNqamqS67pqaGjQ8ccfr0984hM6+OCDB3xbqVRK99xzj/7yl79ow4YN6uzsVF1dnRYtWqSzzz5b5557bn7Jh4F48cUXdc899+i1115TS0uL/H6/pk+frpNPPlkXX3xxv5+sBgAcuKEIQEmMOQCA0rq7u/X888/r5Zdf1qpVq7Rlyxa1t7crm80qFApp4sSJWrRokZYuXarTTz99wO93NTc36/bbb9cTTzyh7du3K5VKqb6+XkcddZQuuOACHXvssQOu0XEc/elPf9LDDz+sNWvWqL29XTU1NZo7d65OP/10XXjhhfL5fAM+3jvvvKM777xTL774opqbm2UYhqZOnaqTTjpJF198sWbNmjXgYwEAym+wASiJ1zsAgNK2bNmiF198UW+99ZZWr16t3bt3q729XZlMRtXV1Zo+fbqOOOIInXPOOSWXvesL487IQwAKAAAAAAAAAAAAAAAAwKg18IgYAAAAAAAAAAAAAAAAAIwwBKAAAAAAAAAAAAAAAAAAjFoEoAAAAAAAAAAAAAAAAACMWgSgAAAAAAAAAAAAAAAAAIxaBKAAAAAAAAAAAAAAAAAAjFoEoAAAAAAAAAAAAAAAAACMWgSgAAAAAAAAAAAAAAAAAIxaBKAAAAAAAAAAAAAAAAAAjFoEoAAAAAAAAAAAAAAAAACMWgSgAAAAAAAAAAAAAAAAAIxaBKAAAAAAAAAAAAAAAAAAjFoEoAAAAAAAAAAAAAAAAACMWgSgAAAAAAAAAAAAAAAAAIxaBKAAAAAAAAAAAAAAAAAAjFoEoAAAAAAAAAAAAAAAAACMWgSgAAAAAAAAAAAAAAAAAIxaBKAAAAAAAADwnr344otatGiRFi1apEsvvbTS5YxZf/7zn/WFL3xBS5cu1fve975x9X9+33335X/er3/96yX7bNu2Ld/n5JNPHuYKAQAAAABApXgqXQAAAAAAAMBIcumll+qll17KX546daoee+wx+Xy+/V73uuuu0/XXXy9JOvPMM3XttdcOWZ0YX1zX1TXXXKOHH354yG9rx44devLJJ/Xcc89pw4YNam9vVzQaVTAYVG1trRYtWqRDDz1UZ5xxhmbMmDHk9QAAAAAAAOwPASgAAAAAAIB+NDU16Y477tCnPvWpSpeCceyhhx4qCj8deuihmj9/voLBoCRp1qxZ7/k2mpqa9Mtf/lL333+/stlsr/ZMJqOuri5t2bJFf/vb3/Szn/1Mxx9/vK6++moddthh7/n2AQAAAAAADhQBKAAAAAAAgP341a9+pQsvvDAfNgGG24MPPpjfvvLKK3XFFVeU9fgvvPCCrrrqKnV2dub3GYahRYsWaebMmaqtrVUsFlNLS4vefvttxePx/PUuuugi3XXXXYSgAAAAAABAxRCAAgAAAAAA2I/W1lbdcsstuvzyyytdCsaplStX5rcvvPDCsh778ccf11VXXaVMJiNJCoVCuuyyy3TJJZdo0qRJvfqn02k999xz+vWvf61XX31VkpRMJstaEwAAAAAAwGCYlS4AAAAAAABgpDr88MPz27/73e/U3d1duWIwrnV1deW36+vry3bcrVu36t/+7d/y4afp06fr3nvv1Ve+8pWS4SdJ8vl8+tCHPqQ//vGPuv7661VTU1O2egAAAAAAAA4EASgAAAAAAIA+nHvuuZozZ44kqaOjQzfeeGOFK8J4lc1m89umWb639L71rW/lw1WhUEg33XST5s6dO+Drn3baabr33ns1derUstUEAAAAAAAwWCyBBwAAAAAA0AfTNHXVVVfpX//1XyVJf/jDH3TppZeqrq7ugI+5bds2nXLKKZJys+08/vjj+73OySefrO3bt0uSli9frsbGxgH12bx5s+644w4988wzampqUiaT0ezZs3XmmWfq05/+tILBYNExNmzYoFtvvVUvv/yytm/fLtM0NXfuXH30ox/VxRdfLMuyBvWzuq6rv/3tb7rvvvu0Zs0atba2KhKJaNGiRTr33HN17rnnDirM097ervvvv1/PPPOMNmzYoLa2Nvn9fjU0NOi4447Teeedp0MOOaTfY1x33XW6/vrrJUlXXHGFrrzySiWTST300EP685//rA0bNqi1tVWZTEYPPPCADjrooEH9zPt65pln9Oijj+q1115TS0uLstmsJk6cqIMPPlinnHKKzjnnHHm93pLXLfydFlq0aFGvfWvWrBl0bStWrNDzzz+fv3z11VdrxowZgz7OQK5Tjt9duTU1Nenee+/V888/r40bN+aDYFVVVZo8ebIWLFigo446SqeddlpZZ90CAAAAAADlRwAKAAAAAACgH2eccYZ+9atfafXq1YrFYvrNb36jr33ta5Uua78efPBBfec731EikSjav2bNGq1Zs0Z//etf9Yc//CG/fNn//u//6rrrrpPjOEX933zzTb355pv6y1/+ol//+te9QlN96e7u1te+9jUtX768aH9ra6taW1v17LPP6o477tAvf/lL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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# setting seaborn style and figure size\n",
+ "sns.set(style=\"whitegrid\")\n",
+ "plt.figure(figsize=(12, 6), dpi=200)\n",
+ "\n",
+ "# plot histogram with seaborn\n",
+ "ax = sns.histplot(data=counts, x=\"count\", bins=100, color=\"skyblue\", kde=True)\n",
+ "\n",
+ "# add 10th percentile vertical line and annotation (tenth_percentile already defined)\n",
+ "ax.axvline(\n",
+ " x=tenth_percentile,\n",
+ " color=\"red\",\n",
+ " linestyle=\"--\",\n",
+ " linewidth=2,\n",
+ " label=f\"10th percentile ({int(tenth_percentile)} cells)\",\n",
+ ")\n",
+ "ymin, ymax = ax.get_ylim()\n",
+ "ax.text(\n",
+ " tenth_percentile,\n",
+ " ymax * 0.9,\n",
+ " f\"10th pct = {tenth_percentile:.0f}\",\n",
+ " color=\"red\",\n",
+ " rotation=90,\n",
+ " va=\"top\",\n",
+ " ha=\"right\",\n",
+ " backgroundcolor=\"white\",\n",
+ ")\n",
+ "\n",
+ "# labeling the plot\n",
+ "ax.set_xlabel(\"Number of Cells\")\n",
+ "ax.set_ylabel(\"Metadata_treatment\")\n",
+ "ax.set_title(\"Cell Count per treeatment in CFRET screen\")\n",
+ "\n",
+ "# adding legend\n",
+ "ax.legend()\n",
+ "\n",
+ "# adjust layout\n",
+ "plt.tight_layout()\n",
+ "\n",
+ "# save the plot\n",
+ "plt.savefig(results_dir / \"cell_count_per_treatment_cfret_screen.png\", dpi=500)\n",
+ "\n",
+ "# display plot\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "66ed5921",
+ "metadata": {},
+ "source": [
+ "Removing cells under those specific treatments"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "id": "d8d45e76",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Removed treatments due to low cell counts (below 10th percentile): ['UCD-0159290', 'UCD-0001783', 'UCD-0159264', 'UCD-0018091', 'UCD-0001792', 'UCD-0000721']\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "
shape: (5, 495) Metadata_WellRow Metadata_WellCol Metadata_heart_number Metadata_cell_type Metadata_heart_failure_type Metadata_treatment Metadata_Pathway Metadata_Nuclei_Location_Center_X Metadata_Nuclei_Location_Center_Y Metadata_Cells_Location_Center_X Metadata_Cells_Location_Center_Y Metadata_Image_Count_Cells Metadata_ImageNumber Metadata_Plate Metadata_Well Metadata_Cells_Number_Object_Number Metadata_Cytoplasm_Parent_Cells Metadata_Cytoplasm_Parent_Nuclei Metadata_Nuclei_Number_Object_Number Metadata_Site Metadata_cell_id Cytoplasm_AreaShape_Area Cytoplasm_AreaShape_MajorAxisLength Cytoplasm_AreaShape_Zernike_4_0 Cytoplasm_AreaShape_Zernike_5_1 Cytoplasm_AreaShape_Zernike_6_0 Cytoplasm_AreaShape_Zernike_6_2 Cytoplasm_AreaShape_Zernike_7_1 Cytoplasm_AreaShape_Zernike_7_3 Cytoplasm_AreaShape_Zernike_8_0 Cytoplasm_AreaShape_Zernike_8_2 Cytoplasm_AreaShape_Zernike_9_1 Cytoplasm_AreaShape_Zernike_9_3 Cytoplasm_AreaShape_Zernike_9_5 Cytoplasm_AreaShape_Zernike_9_7 Cytoplasm_Correlation_Correlation_ER_Hoechst Cytoplasm_Correlation_Correlation_ER_PM … Nuclei_Texture_Correlation_ER_3_02_256 Nuclei_Texture_Correlation_ER_3_03_256 Nuclei_Texture_Correlation_Hoechst_3_00_256 Nuclei_Texture_Correlation_Hoechst_3_01_256 Nuclei_Texture_Correlation_Hoechst_3_02_256 Nuclei_Texture_Correlation_Hoechst_3_03_256 Nuclei_Texture_Correlation_Mitochondria_3_00_256 Nuclei_Texture_Correlation_Mitochondria_3_01_256 Nuclei_Texture_Correlation_Mitochondria_3_02_256 Nuclei_Texture_Correlation_Mitochondria_3_03_256 Nuclei_Texture_Correlation_PM_3_00_256 Nuclei_Texture_Correlation_PM_3_01_256 Nuclei_Texture_Correlation_PM_3_02_256 Nuclei_Texture_Correlation_PM_3_03_256 Nuclei_Texture_DifferenceEntropy_Hoechst_3_00_256 Nuclei_Texture_DifferenceEntropy_Hoechst_3_02_256 Nuclei_Texture_InfoMeas1_ER_3_00_256 Nuclei_Texture_InfoMeas1_ER_3_01_256 Nuclei_Texture_InfoMeas1_ER_3_02_256 Nuclei_Texture_InfoMeas1_ER_3_03_256 Nuclei_Texture_InfoMeas1_PM_3_00_256 Nuclei_Texture_InfoMeas1_PM_3_01_256 Nuclei_Texture_InfoMeas1_PM_3_02_256 Nuclei_Texture_InfoMeas1_PM_3_03_256 Nuclei_Texture_InfoMeas2_PM_3_00_256 Nuclei_Texture_InfoMeas2_PM_3_01_256 Nuclei_Texture_InfoMeas2_PM_3_02_256 Nuclei_Texture_InfoMeas2_PM_3_03_256 Nuclei_Texture_InverseDifferenceMoment_Hoechst_3_00_256 Nuclei_Texture_InverseDifferenceMoment_Hoechst_3_01_256 Nuclei_Texture_InverseDifferenceMoment_Hoechst_3_02_256 Nuclei_Texture_InverseDifferenceMoment_Hoechst_3_03_256 Nuclei_Texture_InverseDifferenceMoment_PM_3_00_256 Nuclei_Texture_InverseDifferenceMoment_PM_3_01_256 Nuclei_Texture_InverseDifferenceMoment_PM_3_02_256 Nuclei_Texture_InverseDifferenceMoment_PM_3_03_256 Nuclei_Texture_SumEntropy_PM_3_01_256 str i64 i64 str str str str f64 f64 f64 f64 i64 i64 str str i64 i64 i64 i64 str str f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 … f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 "B" 2 7 "healthy" null "DMSO_heart_7" null 870.048176 222.975912 883.760337 261.61621 8 2 "localhost240927060001" "B02" 1 1 3 3 "f07" "12575616795011807720" -0.751363 0.572923 -0.397076 0.280466 -0.842051 0.921933 -0.808205 -0.152162 -0.576562 1.018035 -0.555971 1.136591 -1.010685 -0.580809 0.296295 0.374481 … 1.26599 0.223125 0.001392 0.481817 0.776713 -0.060115 -0.47829 0.369701 0.664598 -0.595822 -0.779385 -1.10438 0.019679 -0.081576 0.899131 0.131613 0.288529 -0.396068 -1.475314 0.104475 0.605291 0.480656 -0.418191 0.05484 -0.245545 -0.194699 0.449148 0.153167 -1.314356 -0.527268 -0.28336 -0.966427 -0.028467 0.025132 0.531559 0.161083 -0.084311 "B" 2 7 "healthy" null "DMSO_heart_7" null 372.665138 78.150612 422.940605 121.357251 9 3 "localhost240927060001" "B02" 1 1 3 3 "f08" "3793444334871218055" -1.315906 1.653718 -0.660428 -1.684414 -0.408983 -0.805361 -1.386725 -1.901982 -0.170266 -0.830062 -1.194093 -1.405091 -1.373065 -1.294781 0.279446 0.891917 … 1.102321 0.297905 0.501124 1.420509 0.260714 -0.725359 0.799276 1.3109 0.532934 0.074106 0.416485 1.003763 0.552246 -0.005259 1.298366 1.548535 -0.770951 -1.91123 -0.873208 -0.699423 -0.794136 -1.358924 -0.085818 -0.433256 1.040848 1.26808 0.738358 0.875659 -1.281228 -0.035844 -1.641539 -1.781835 -0.67462 -0.054664 -0.974624 -1.157279 1.004183 "B" 2 7 "healthy" null "DMSO_heart_7" null 691.469799 396.812081 683.988473 379.093181 13 5 "localhost240927060001" "B02" 1 1 4 4 "f24" "13106199485709533901" -0.831717 -0.493455 -0.314125 1.206134 -0.995271 0.95686 -0.597832 -1.242007 -0.676838 -0.697607 0.261978 -0.954203 -0.465119 0.237499 -1.585019 -0.733386 … -0.667511 -0.10777 -2.840204 -2.204482 -1.341247 -0.772522 -0.848805 -0.711727 -0.210759 -0.562823 0.244987 0.01068 0.07403 0.112629 -1.361163 -1.710352 0.354125 0.124231 -0.204837 0.048314 0.903335 0.686618 -0.263899 0.594106 -0.96627 -0.718725 0.013854 -0.630529 1.253008 0.978559 1.724513 1.741098 0.204027 0.415166 0.695386 0.509317 -0.669122 "B" 2 7 "healthy" null "DMSO_heart_7" null 658.817385 176.3645 656.476395 192.96612 17 1 "localhost240927060001" "B02" 1 1 5 5 "f04" "7290611366224905244" -0.729628 2.007046 -0.698666 -0.80159 -0.704448 0.553221 -0.655824 -1.543914 -0.336989 -0.24697 -0.756293 -0.671515 -1.237478 -0.235575 -1.694629 0.086748 … 0.832292 0.307098 -0.386429 -0.850363 -0.084532 0.570731 0.412617 -0.222178 0.226913 1.11128 -1.537455 -1.935402 -0.910721 0.202415 0.831907 0.771808 -0.146304 -0.354501 -0.571405 -0.525462 1.445841 1.412182 1.00448 0.277911 -0.996699 -1.161237 -0.553192 0.01472 -0.793306 -0.84018 -0.947567 -0.750173 -0.856654 -0.524341 -0.36156 0.09598 -0.099079 "B" 2 7 "healthy" null "DMSO_heart_7" null 1031.773316 87.448834 1023.158705 96.849952 9 3 "localhost240927060001" "B02" 2 2 4 4 "f08" "13601323271362343116" -1.714346 -2.535695 -0.200532 2.762689 -0.613978 0.124689 0.33025 -0.038417 1.281422 -0.987717 -1.124053 1.35118 -0.382761 -0.324415 -2.406365 -2.811065 … 0.519184 0.406731 2.418243 2.290277 1.290873 1.647338 0.507265 1.048953 0.574748 -0.159257 -0.570205 0.79213 -0.870146 -2.626183 0.031559 1.241171 -0.044313 -0.257633 0.132283 -0.004799 1.927704 0.103152 2.3075 2.455422 -0.701168 0.677342 -1.218404 -2.189919 0.371659 -0.508734 -1.278283 -1.529378 -2.088097 -0.929627 -2.14462 -2.443222 1.224159
"
+ ],
+ "text/plain": [
+ "shape: (5, 495)\n",
+ "┌───────────┬───────────┬───────────┬───────────┬───┬───────────┬───────────┬───────────┬──────────┐\n",
+ "│ Metadata_ ┆ Metadata_ ┆ Metadata_ ┆ Metadata_ ┆ … ┆ Nuclei_Te ┆ Nuclei_Te ┆ Nuclei_Te ┆ Nuclei_T │\n",
+ "│ WellRow ┆ WellCol ┆ heart_num ┆ cell_type ┆ ┆ xture_Inv ┆ xture_Inv ┆ xture_Inv ┆ exture_S │\n",
+ "│ --- ┆ --- ┆ ber ┆ --- ┆ ┆ erseDiffe ┆ erseDiffe ┆ erseDiffe ┆ umEntrop │\n",
+ "│ str ┆ i64 ┆ --- ┆ str ┆ ┆ ren… ┆ ren… ┆ ren… ┆ y_PM_3… │\n",
+ "│ ┆ ┆ i64 ┆ ┆ ┆ --- ┆ --- ┆ --- ┆ --- │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ f64 ┆ f64 ┆ f64 ┆ f64 │\n",
+ "╞═══════════╪═══════════╪═══════════╪═══════════╪═══╪═══════════╪═══════════╪═══════════╪══════════╡\n",
+ "│ B ┆ 2 ┆ 7 ┆ healthy ┆ … ┆ 0.025132 ┆ 0.531559 ┆ 0.161083 ┆ -0.08431 │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ 1 │\n",
+ "│ B ┆ 2 ┆ 7 ┆ healthy ┆ … ┆ -0.054664 ┆ -0.974624 ┆ -1.157279 ┆ 1.004183 │\n",
+ "│ B ┆ 2 ┆ 7 ┆ healthy ┆ … ┆ 0.415166 ┆ 0.695386 ┆ 0.509317 ┆ -0.66912 │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ 2 │\n",
+ "│ B ┆ 2 ┆ 7 ┆ healthy ┆ … ┆ -0.524341 ┆ -0.36156 ┆ 0.09598 ┆ -0.09907 │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ 9 │\n",
+ "│ B ┆ 2 ┆ 7 ┆ healthy ┆ … ┆ -0.929627 ┆ -2.14462 ┆ -2.443222 ┆ 1.224159 │\n",
+ "└───────────┴───────────┴───────────┴───────────┴───┴───────────┴───────────┴───────────┴──────────┘"
+ ]
+ },
+ "execution_count": 9,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# remove treatments with cell counts below the 10th percentile\n",
+ "kept_treatments = counts[counts[\"count\"] >= tenth_percentile][\n",
+ " \"Metadata_treatment\"\n",
+ "].tolist()\n",
+ "cfret_screen_df = cfret_screen_df.filter(\n",
+ " pl.col(\"Metadata_treatment\").is_in(kept_treatments)\n",
+ ")\n",
+ "\n",
+ "# print the treatments that were removed\n",
+ "removed_treatments = counts[counts[\"count\"] < tenth_percentile][\n",
+ " \"Metadata_treatment\"\n",
+ "].tolist()\n",
+ "print(\n",
+ " \"Removed treatments due to low cell counts (below 10th percentile):\",\n",
+ " removed_treatments,\n",
+ ")\n",
+ "\n",
+ "cfret_screen_df.head()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "0a1a597a",
+ "metadata": {},
+ "source": [
+ "## Buscar pipeline"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "045a19d1",
+ "metadata": {},
+ "source": [
+ "Get on and off signatures"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "id": "437ca668",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "length of on and off signatures: 405 69\n"
+ ]
+ }
+ ],
+ "source": [
+ "# once the data is loaded, separate the controls\n",
+ "# here we want the healthy DMSO cells to be the target since the screen consists\n",
+ "# of failing cells treated with compounds\n",
+ "healthy_ref_df = cfret_screen_df.filter(pl.col(\"Metadata_treatment\") == \"DMSO_heart_7\")\n",
+ "failing_ref_df = cfret_screen_df.filter(pl.col(\"Metadata_treatment\") == \"DMSO_heart_19\")\n",
+ "\n",
+ "# creating signatures\n",
+ "on_sigs, off_sigs, _ = get_signatures(\n",
+ " ref_profiles=healthy_ref_df,\n",
+ " exp_profiles=failing_ref_df,\n",
+ " morph_feats=cfret_screen_feats,\n",
+ " test_method=\"mann_whitney_u\",\n",
+ ")\n",
+ "\n",
+ "print(\"length of on and off signatures:\", len(on_sigs), len(off_sigs))\n",
+ "\n",
+ "# save signatures\n",
+ "signatures_dir = results_dir / \"CFRet-screen-signatures.json\"\n",
+ "with open(signatures_dir, \"w\") as sig_file:\n",
+ " json.dump(\n",
+ " {\"on_signatures\": on_sigs, \"off_signatures\": off_sigs}, sig_file, indent=4\n",
+ " )"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "22e3bfd0",
+ "metadata": {},
+ "source": [
+ "Assess heterogeneity"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "id": "ff087290",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Convert raw feature space to PCA space that explains 95% of variance\n",
+ "cfret_screen_pca_df = apply_pca(\n",
+ " profiles=cfret_screen_df,\n",
+ " meta_features=cfret_screen_meta,\n",
+ " morph_features=cfret_screen_feats,\n",
+ " var_explained=0.95,\n",
+ ")\n",
+ "\n",
+ "# split meta and features again after PCA\n",
+ "cfret_screen_pca_feats = cfret_screen_pca_df.drop(cfret_screen_meta).columns"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "7bc3980e",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Optimizing clustering for 46 treatment(s) with 30 job(s)...\n"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/home/erikserrano/Software/miniconda3/envs/buscar/lib/python3.12/site-packages/louvain/__init__.py:54: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n",
+ " from pkg_resources import get_distribution, DistributionNotFound\n",
+ "/home/erikserrano/Software/miniconda3/envs/buscar/lib/python3.12/site-packages/louvain/__init__.py:54: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n",
+ " from pkg_resources import get_distribution, DistributionNotFound\n",
+ "/home/erikserrano/Software/miniconda3/envs/buscar/lib/python3.12/site-packages/louvain/__init__.py:54: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n",
+ " from pkg_resources import get_distribution, DistributionNotFound\n",
+ "/home/erikserrano/Software/miniconda3/envs/buscar/lib/python3.12/site-packages/louvain/__init__.py:54: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n",
+ " from pkg_resources import get_distribution, DistributionNotFound\n",
+ "/home/erikserrano/Software/miniconda3/envs/buscar/lib/python3.12/site-packages/louvain/__init__.py:54: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n",
+ " from pkg_resources import get_distribution, DistributionNotFound\n",
+ "/home/erikserrano/Software/miniconda3/envs/buscar/lib/python3.12/site-packages/louvain/__init__.py:54: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n",
+ " from pkg_resources import get_distribution, DistributionNotFound\n",
+ "[I 2025-11-21 21:41:36,936] A new study created in memory with name: CFReT_screen_clustering_UCD-0159258\n",
+ "/home/erikserrano/Software/miniconda3/envs/buscar/lib/python3.12/site-packages/louvain/__init__.py:54: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n",
+ " from pkg_resources import get_distribution, DistributionNotFound\n",
+ "[I 2025-11-21 21:41:36,957] A new study created in memory with name: CFReT_screen_clustering_UCD-0159256\n",
+ "/home/erikserrano/Software/miniconda3/envs/buscar/lib/python3.12/site-packages/louvain/__init__.py:54: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n",
+ " from pkg_resources import get_distribution, DistributionNotFound\n",
+ "/home/erikserrano/Software/miniconda3/envs/buscar/lib/python3.12/site-packages/louvain/__init__.py:54: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n",
+ " from pkg_resources import get_distribution, DistributionNotFound\n",
+ "/home/erikserrano/Software/miniconda3/envs/buscar/lib/python3.12/site-packages/louvain/__init__.py:54: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n",
+ " from pkg_resources import get_distribution, DistributionNotFound\n",
+ "/home/erikserrano/Software/miniconda3/envs/buscar/lib/python3.12/site-packages/louvain/__init__.py:54: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n",
+ " from pkg_resources import get_distribution, DistributionNotFound\n",
+ "/home/erikserrano/Software/miniconda3/envs/buscar/lib/python3.12/site-packages/louvain/__init__.py:54: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n",
+ " from pkg_resources import get_distribution, DistributionNotFound\n",
+ "/home/erikserrano/Software/miniconda3/envs/buscar/lib/python3.12/site-packages/louvain/__init__.py:54: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n",
+ " from pkg_resources import get_distribution, DistributionNotFound\n",
+ "/home/erikserrano/Software/miniconda3/envs/buscar/lib/python3.12/site-packages/louvain/__init__.py:54: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n",
+ " from pkg_resources import get_distribution, DistributionNotFound\n",
+ "/home/erikserrano/Software/miniconda3/envs/buscar/lib/python3.12/site-packages/louvain/__init__.py:54: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n",
+ " from pkg_resources import get_distribution, DistributionNotFound\n",
+ "[I 2025-11-21 21:41:37,054] A new study created in memory with name: CFReT_screen_clustering_UCD-0001014\n",
+ "/home/erikserrano/Software/miniconda3/envs/buscar/lib/python3.12/site-packages/louvain/__init__.py:54: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n",
+ " from pkg_resources import get_distribution, DistributionNotFound\n",
+ "/home/erikserrano/Software/miniconda3/envs/buscar/lib/python3.12/site-packages/louvain/__init__.py:54: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n",
+ " from pkg_resources import get_distribution, DistributionNotFound\n",
+ "[I 2025-11-21 21:41:37,139] A new study created in memory with name: CFReT_screen_clustering_UCD-0159274\n",
+ "[I 2025-11-21 21:41:37,157] A new study created in memory with name: CFReT_screen_clustering_UCD-0159283\n",
+ "[I 2025-11-21 21:41:37,198] A new study created in memory with name: CFReT_screen_clustering_UCD-0001810\n",
+ "/home/erikserrano/Software/miniconda3/envs/buscar/lib/python3.12/site-packages/louvain/__init__.py:54: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n",
+ " from pkg_resources import get_distribution, DistributionNotFound\n",
+ "[I 2025-11-21 21:41:37,349] A new study created in memory with name: CFReT_screen_clustering_UCD-0017999\n",
+ "/home/erikserrano/Software/miniconda3/envs/buscar/lib/python3.12/site-packages/louvain/__init__.py:54: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n",
+ " from pkg_resources import get_distribution, DistributionNotFound\n",
+ "[I 2025-11-21 21:41:37,369] A new study created in memory with name: CFReT_screen_clustering_UCD-0159279\n",
+ "[I 2025-11-21 21:41:37,392] A new study created in memory with name: CFReT_screen_clustering_UCD-0159262\n",
+ "[I 2025-11-21 21:41:37,399] A new study created in memory with name: CFReT_screen_clustering_UCD-0018179\n",
+ "[I 2025-11-21 21:41:37,406] A new study created in memory with name: CFReT_screen_clustering_UCD-0018207\n",
+ "[I 2025-11-21 21:41:37,418] A new study created in memory with name: CFReT_screen_clustering_UCD-0001766\n",
+ "[I 2025-11-21 21:41:37,431] A new study created in memory with name: CFReT_screen_clustering_DMSO_heart_7\n",
+ "[I 2025-11-21 21:41:37,438] A new study created in memory with name: CFReT_screen_clustering_UCD-0159263\n",
+ "[I 2025-11-21 21:41:37,501] A new study created in memory with name: CFReT_screen_clustering_UCD-0001915\n",
+ "[I 2025-11-21 21:41:37,513] A new study created in memory with name: CFReT_screen_clustering_UCD-0159273\n",
+ "/home/erikserrano/Software/miniconda3/envs/buscar/lib/python3.12/site-packages/louvain/__init__.py:54: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n",
+ " from pkg_resources import get_distribution, DistributionNotFound\n",
+ "[I 2025-11-21 21:41:37,542] A new study created in memory with name: CFReT_screen_clustering_UCD-0159284\n",
+ "/home/erikserrano/Software/miniconda3/envs/buscar/lib/python3.12/site-packages/louvain/__init__.py:54: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n",
+ " from pkg_resources import get_distribution, DistributionNotFound\n",
+ "[I 2025-11-21 21:41:37,691] A new study created in memory with name: CFReT_screen_clustering_UCD-0159270\n",
+ "/home/erikserrano/Software/miniconda3/envs/buscar/lib/python3.12/site-packages/louvain/__init__.py:54: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n",
+ " from pkg_resources import get_distribution, DistributionNotFound\n",
+ "/home/erikserrano/Software/miniconda3/envs/buscar/lib/python3.12/site-packages/louvain/__init__.py:54: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n",
+ " from pkg_resources import get_distribution, DistributionNotFound\n",
+ "/home/erikserrano/Software/miniconda3/envs/buscar/lib/python3.12/site-packages/louvain/__init__.py:54: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n",
+ " from pkg_resources import get_distribution, DistributionNotFound\n",
+ "/home/erikserrano/Software/miniconda3/envs/buscar/lib/python3.12/site-packages/louvain/__init__.py:54: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n",
+ " from pkg_resources import get_distribution, DistributionNotFound\n",
+ "/home/erikserrano/Software/miniconda3/envs/buscar/lib/python3.12/site-packages/louvain/__init__.py:54: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n",
+ " from pkg_resources import get_distribution, DistributionNotFound\n",
+ "/home/erikserrano/Software/miniconda3/envs/buscar/lib/python3.12/site-packages/louvain/__init__.py:54: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n",
+ " from pkg_resources import get_distribution, DistributionNotFound\n",
+ "[I 2025-11-21 21:41:38,042] A new study created in memory with name: CFReT_screen_clustering_UCD-0159289\n",
+ "/home/erikserrano/Software/miniconda3/envs/buscar/lib/python3.12/site-packages/louvain/__init__.py:54: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n",
+ " from pkg_resources import get_distribution, DistributionNotFound\n",
+ "/home/erikserrano/Software/miniconda3/envs/buscar/lib/python3.12/site-packages/louvain/__init__.py:54: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n",
+ " from pkg_resources import get_distribution, DistributionNotFound\n",
+ "[I 2025-11-21 21:41:38,107] A new study created in memory with name: CFReT_screen_clustering_UCD-0159257\n",
+ "[I 2025-11-21 21:41:38,141] A new study created in memory with name: CFReT_screen_clustering_UCD-0159285\n",
+ "[I 2025-11-21 21:41:38,240] A new study created in memory with name: CFReT_screen_clustering_DMSO_heart_19\n",
+ "/home/erikserrano/Software/miniconda3/envs/buscar/lib/python3.12/site-packages/louvain/__init__.py:54: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.\n",
+ " from pkg_resources import get_distribution, DistributionNotFound\n",
+ "[I 2025-11-21 21:41:38,314] A new study created in memory with name: CFReT_screen_clustering_UCD-0001775\n",
+ "[I 2025-11-21 21:41:38,320] A new study created in memory with name: CFReT_screen_clustering_UCD-0159261\n",
+ "[I 2025-11-21 21:41:38,383] A new study created in memory with name: CFReT_screen_clustering_UCD-0001804\n",
+ "[I 2025-11-21 21:41:38,388] A new study created in memory with name: CFReT_screen_clustering_UCD-0001844\n",
+ "[I 2025-11-21 21:41:38,442] A new study created in memory with name: CFReT_screen_clustering_UCD-0159269\n",
+ "[I 2025-11-21 21:41:38,495] A new study created in memory with name: CFReT_screen_clustering_UCD-0000450\n",
+ "[I 2025-11-21 21:41:38,496] A new study created in memory with name: CFReT_screen_clustering_UCD-0001040\n",
+ "[I 2025-11-21 21:41:38,745] A new study created in memory with name: CFReT_screen_clustering_UCD-0001016\n",
+ "/home/erikserrano/Projects/buscar/notebooks/3.cfret-screen-analysis/../../utils/heterogeneity.py:236: FutureWarning: In the future, the default backend for leiden will be igraph instead of leidenalg.\n",
+ "\n",
+ " To achieve the future defaults please pass: flavor=\"igraph\" and n_iterations=2. directed must also be False to work with igraph's implementation.\n",
+ " sc.tl.leiden(\n",
+ "[I 2025-11-21 21:41:46,809] Trial 0 finished with value: 0.051552717333278805 and parameters: {'cluster_resolution': 0.9579619090415782, 'n_neighbors': 13, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}. Best is trial 0 with value: 0.051552717333278805.\n",
+ "/home/erikserrano/Projects/buscar/notebooks/3.cfret-screen-analysis/../../utils/heterogeneity.py:236: FutureWarning: In the future, the default backend for leiden will be igraph instead of leidenalg.\n",
+ "\n",
+ " To achieve the future defaults please pass: flavor=\"igraph\" and n_iterations=2. directed must also be False to work with igraph's implementation.\n",
+ " sc.tl.leiden(\n",
+ "/home/erikserrano/Projects/buscar/notebooks/3.cfret-screen-analysis/../../utils/heterogeneity.py:236: FutureWarning: In the future, the default backend for leiden will be igraph instead of leidenalg.\n",
+ "\n",
+ " To achieve the future defaults please pass: flavor=\"igraph\" and n_iterations=2. directed must also be False to work with igraph's implementation.\n",
+ " sc.tl.leiden(\n",
+ "/home/erikserrano/Projects/buscar/notebooks/3.cfret-screen-analysis/../../utils/heterogeneity.py:236: FutureWarning: In the future, the default backend for leiden will be igraph instead of leidenalg.\n",
+ "\n",
+ " To achieve the future defaults please pass: flavor=\"igraph\" and n_iterations=2. directed must also be False to work with igraph's implementation.\n",
+ " sc.tl.leiden(\n",
+ "[I 2025-11-21 21:41:47,574] Trial 1 finished with value: 0.02433416640157381 and parameters: {'cluster_resolution': 1.6281805664227689, 'n_neighbors': 98, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'cosine'}. Best is trial 0 with value: 0.051552717333278805.\n",
+ "/home/erikserrano/Projects/buscar/notebooks/3.cfret-screen-analysis/../../utils/heterogeneity.py:236: FutureWarning: In the future, the default backend for leiden will be igraph instead of leidenalg.\n",
+ "\n",
+ " To achieve the future defaults please pass: flavor=\"igraph\" and n_iterations=2. directed must also be False to work with igraph's implementation.\n",
+ " sc.tl.leiden(\n",
+ "/home/erikserrano/Projects/buscar/notebooks/3.cfret-screen-analysis/../../utils/heterogeneity.py:236: FutureWarning: In the future, the default backend for leiden will be igraph instead of leidenalg.\n",
+ "\n",
+ " To achieve the future defaults please pass: flavor=\"igraph\" and n_iterations=2. directed must also be False to work with igraph's implementation.\n",
+ " sc.tl.leiden(\n",
+ "[I 2025-11-21 21:41:47,827] Trial 0 finished with value: -1.0 and parameters: {'cluster_resolution': 0.15245619897612683, 'n_neighbors': 76, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'euclidean'}. Best is trial 0 with value: -1.0.\n",
+ "/home/erikserrano/Projects/buscar/notebooks/3.cfret-screen-analysis/../../utils/heterogeneity.py:236: FutureWarning: In the future, the default backend for leiden will be igraph instead of leidenalg.\n",
+ "\n",
+ " To achieve the future defaults please pass: flavor=\"igraph\" and n_iterations=2. directed must also be False to work with igraph's implementation.\n",
+ " sc.tl.leiden(\n",
+ "/home/erikserrano/Projects/buscar/notebooks/3.cfret-screen-analysis/../../utils/heterogeneity.py:236: FutureWarning: In the future, the default backend for leiden will be igraph instead of leidenalg.\n",
+ "\n",
+ " To achieve the future defaults please pass: flavor=\"igraph\" and n_iterations=2. directed must also be False to work with igraph's implementation.\n",
+ " sc.tl.leiden(\n",
+ "/home/erikserrano/Projects/buscar/notebooks/3.cfret-screen-analysis/../../utils/heterogeneity.py:236: FutureWarning: In the future, the default backend for leiden will be igraph instead of leidenalg.\n",
+ "\n",
+ " To achieve the future defaults please pass: flavor=\"igraph\" and n_iterations=2. directed must also be False to work with igraph's implementation.\n",
+ " sc.tl.leiden(\n",
+ "[I 2025-11-21 21:41:48,174] Trial 0 finished with value: -0.0068136195193078805 and parameters: {'cluster_resolution': 1.916077878414102, 'n_neighbors': 29, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'cosine'}. Best is trial 0 with value: -0.0068136195193078805.\n",
+ "[I 2025-11-21 21:41:48,220] A new study created in memory with name: CFReT_screen_clustering_UCD-0159275\n",
+ "/home/erikserrano/Projects/buscar/notebooks/3.cfret-screen-analysis/../../utils/heterogeneity.py:236: FutureWarning: In the future, the default backend for leiden will be igraph instead of leidenalg.\n",
+ "\n",
+ " To achieve the future defaults please pass: flavor=\"igraph\" and n_iterations=2. directed must also be False to work with igraph's implementation.\n",
+ " sc.tl.leiden(\n",
+ "/home/erikserrano/Projects/buscar/notebooks/3.cfret-screen-analysis/../../utils/heterogeneity.py:236: FutureWarning: In the future, the default backend for leiden will be igraph instead of leidenalg.\n",
+ "\n",
+ " To achieve the future defaults please pass: flavor=\"igraph\" and n_iterations=2. directed must also be False to work with igraph's implementation.\n",
+ " sc.tl.leiden(\n",
+ "/home/erikserrano/Projects/buscar/notebooks/3.cfret-screen-analysis/../../utils/heterogeneity.py:236: FutureWarning: In the future, the default backend for leiden will be igraph instead of leidenalg.\n",
+ "\n",
+ " To achieve the future defaults please pass: flavor=\"igraph\" and n_iterations=2. directed must also be False to work with igraph's implementation.\n",
+ " sc.tl.leiden(\n",
+ "/home/erikserrano/Projects/buscar/notebooks/3.cfret-screen-analysis/../../utils/heterogeneity.py:236: FutureWarning: In the future, the default backend for leiden will be igraph instead of leidenalg.\n",
+ "\n",
+ " To achieve the future defaults please pass: flavor=\"igraph\" and n_iterations=2. directed must also be False to work with igraph's implementation.\n",
+ " sc.tl.leiden(\n",
+ "/home/erikserrano/Projects/buscar/notebooks/3.cfret-screen-analysis/../../utils/heterogeneity.py:236: FutureWarning: In the future, the default backend for leiden will be igraph instead of leidenalg.\n",
+ "\n",
+ " To achieve the future defaults please pass: flavor=\"igraph\" and n_iterations=2. directed must also be False to work with igraph's implementation.\n",
+ " sc.tl.leiden(\n",
+ "[I 2025-11-21 21:41:48,539] Trial 0 finished with value: 0.0424053927645916 and parameters: {'cluster_resolution': 1.0415335746283736, 'n_neighbors': 51, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'cosine'}. Best is trial 0 with value: 0.0424053927645916.\n",
+ "/home/erikserrano/Projects/buscar/notebooks/3.cfret-screen-analysis/../../utils/heterogeneity.py:236: FutureWarning: In the future, the default backend for leiden will be igraph instead of leidenalg.\n",
+ "\n",
+ " To achieve the future defaults please pass: flavor=\"igraph\" and n_iterations=2. directed must also be False to work with igraph's implementation.\n",
+ " sc.tl.leiden(\n",
+ "/home/erikserrano/Projects/buscar/notebooks/3.cfret-screen-analysis/../../utils/heterogeneity.py:236: FutureWarning: In the future, the default backend for leiden will be igraph instead of leidenalg.\n",
+ "\n",
+ " To achieve the future defaults please pass: flavor=\"igraph\" and n_iterations=2. directed must also be False to work with igraph's implementation.\n",
+ " sc.tl.leiden(\n",
+ "/home/erikserrano/Projects/buscar/notebooks/3.cfret-screen-analysis/../../utils/heterogeneity.py:236: FutureWarning: In the future, the default backend for leiden will be igraph instead of leidenalg.\n",
+ "\n",
+ " To achieve the future defaults please pass: flavor=\"igraph\" and n_iterations=2. directed must also be False to work with igraph's implementation.\n",
+ " sc.tl.leiden(\n",
+ "[I 2025-11-21 21:41:48,617] Trial 1 finished with value: 0.044143487542837055 and parameters: {'cluster_resolution': 0.46639823003811576, 'n_neighbors': 70, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'cosine'}. Best is trial 1 with value: 0.044143487542837055.\n",
+ "/home/erikserrano/Projects/buscar/notebooks/3.cfret-screen-analysis/../../utils/heterogeneity.py:236: FutureWarning: In the future, the default backend for leiden will be igraph instead of leidenalg.\n",
+ "\n",
+ " To achieve the future defaults please pass: flavor=\"igraph\" and n_iterations=2. directed must also be False to work with igraph's implementation.\n",
+ " sc.tl.leiden(\n",
+ "[I 2025-11-21 21:41:48,887] Trial 1 finished with value: 0.06456273505672518 and parameters: {'cluster_resolution': 0.8230715142786573, 'n_neighbors': 49, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'euclidean'}. Best is trial 1 with value: 0.06456273505672518.\n",
+ "/home/erikserrano/Projects/buscar/notebooks/3.cfret-screen-analysis/../../utils/heterogeneity.py:236: FutureWarning: In the future, the default backend for leiden will be igraph instead of leidenalg.\n",
+ "\n",
+ " To achieve the future defaults please pass: flavor=\"igraph\" and n_iterations=2. directed must also be False to work with igraph's implementation.\n",
+ " sc.tl.leiden(\n",
+ "[I 2025-11-21 21:41:48,995] Trial 0 finished with value: 0.011301827836661994 and parameters: {'cluster_resolution': 1.1770064242354266, 'n_neighbors': 20, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'cosine'}. Best is trial 0 with value: 0.011301827836661994.\n",
+ "/home/erikserrano/Projects/buscar/notebooks/3.cfret-screen-analysis/../../utils/heterogeneity.py:236: FutureWarning: In the future, the default backend for leiden will be igraph instead of leidenalg.\n",
+ "\n",
+ " To achieve the future defaults please pass: flavor=\"igraph\" and n_iterations=2. directed must also be False to work with igraph's implementation.\n",
+ " sc.tl.leiden(\n",
+ "/home/erikserrano/Projects/buscar/notebooks/3.cfret-screen-analysis/../../utils/heterogeneity.py:236: FutureWarning: In the future, the default backend for leiden will be igraph instead of leidenalg.\n",
+ "\n",
+ " To achieve the future defaults please pass: flavor=\"igraph\" and n_iterations=2. directed must also be False to work with igraph's implementation.\n",
+ " sc.tl.leiden(\n",
+ "[I 2025-11-21 21:41:49,136] Trial 0 finished with value: 0.011014276991034423 and parameters: {'cluster_resolution': 0.7930943264793587, 'n_neighbors': 6, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}. Best is trial 0 with value: 0.011014276991034423.\n",
+ "/home/erikserrano/Projects/buscar/notebooks/3.cfret-screen-analysis/../../utils/heterogeneity.py:236: FutureWarning: In the future, the default backend for leiden will be igraph instead of leidenalg.\n",
+ "\n",
+ " To achieve the future defaults please pass: flavor=\"igraph\" and n_iterations=2. directed must also be False to work with igraph's implementation.\n",
+ " sc.tl.leiden(\n",
+ "[I 2025-11-21 21:41:49,279] Trial 0 finished with value: 0.01680104795622003 and parameters: {'cluster_resolution': 0.6981913968968398, 'n_neighbors': 62, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}. Best is trial 0 with value: 0.01680104795622003.\n",
+ "/home/erikserrano/Projects/buscar/notebooks/3.cfret-screen-analysis/../../utils/heterogeneity.py:236: FutureWarning: In the future, the default backend for leiden will be igraph instead of leidenalg.\n",
+ "\n",
+ " To achieve the future defaults please pass: flavor=\"igraph\" and n_iterations=2. directed must also be False to work with igraph's implementation.\n",
+ " sc.tl.leiden(\n",
+ "/home/erikserrano/Projects/buscar/notebooks/3.cfret-screen-analysis/../../utils/heterogeneity.py:236: FutureWarning: In the future, the default backend for leiden will be igraph instead of leidenalg.\n",
+ "\n",
+ " To achieve the future defaults please pass: flavor=\"igraph\" and n_iterations=2. directed must also be False to work with igraph's implementation.\n",
+ " sc.tl.leiden(\n",
+ "[I 2025-11-21 21:41:49,294] Trial 0 finished with value: 0.05119241758899662 and parameters: {'cluster_resolution': 0.5782847549480996, 'n_neighbors': 25, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}. Best is trial 0 with value: 0.05119241758899662.\n",
+ "/home/erikserrano/Projects/buscar/notebooks/3.cfret-screen-analysis/../../utils/heterogeneity.py:236: FutureWarning: In the future, the default backend for leiden will be igraph instead of leidenalg.\n",
+ "\n",
+ " To achieve the future defaults please pass: flavor=\"igraph\" and n_iterations=2. directed must also be False to work with igraph's implementation.\n",
+ " sc.tl.leiden(\n",
+ "/home/erikserrano/Projects/buscar/notebooks/3.cfret-screen-analysis/../../utils/heterogeneity.py:236: FutureWarning: In the future, the default backend for leiden will be igraph instead of leidenalg.\n",
+ "\n",
+ " To achieve the future defaults please pass: flavor=\"igraph\" and n_iterations=2. directed must also be False to work with igraph's implementation.\n",
+ " sc.tl.leiden(\n",
+ "[I 2025-11-21 21:41:49,450] A new study created in memory with name: CFReT_screen_clustering_UCD-0001613\n",
+ "/home/erikserrano/Projects/buscar/notebooks/3.cfret-screen-analysis/../../utils/heterogeneity.py:236: FutureWarning: In the future, the default backend for leiden will be igraph instead of leidenalg.\n",
+ "\n",
+ " To achieve the future defaults please pass: flavor=\"igraph\" and n_iterations=2. directed must also be False to work with igraph's implementation.\n",
+ " sc.tl.leiden(\n",
+ "[I 2025-11-21 21:41:49,674] A new study created in memory with name: CFReT_screen_clustering_UCD-0001921\n",
+ "[I 2025-11-21 21:41:49,705] Trial 0 finished with value: -0.061643378192473286 and parameters: {'cluster_resolution': 2.0559027631953612, 'n_neighbors': 84, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'euclidean'}. Best is trial 0 with value: -0.061643378192473286.\n",
+ "[I 2025-11-21 21:41:49,710] Trial 0 finished with value: -0.0008330515466489801 and parameters: {'cluster_resolution': 1.360059781754819, 'n_neighbors': 88, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'euclidean'}. Best is trial 0 with value: -0.0008330515466489801.\n",
+ "[I 2025-11-21 21:41:49,770] Trial 0 finished with value: 0.1017864061382544 and parameters: {'cluster_resolution': 0.31910048844094696, 'n_neighbors': 28, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'cosine'}. Best is trial 0 with value: 0.1017864061382544.\n",
+ "[I 2025-11-21 21:41:49,824] Trial 0 finished with value: -1.0 and parameters: {'cluster_resolution': 0.330124467439918, 'n_neighbors': 43, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}. Best is trial 0 with value: -1.0.\n",
+ "/home/erikserrano/Projects/buscar/notebooks/3.cfret-screen-analysis/../../utils/heterogeneity.py:236: FutureWarning: In the future, the default backend for leiden will be igraph instead of leidenalg.\n",
+ "\n",
+ " To achieve the future defaults please pass: flavor=\"igraph\" and n_iterations=2. directed must also be False to work with igraph's implementation.\n",
+ " sc.tl.leiden(\n",
+ "[I 2025-11-21 21:41:49,905] Trial 0 finished with value: -0.0029549051286162655 and parameters: {'cluster_resolution': 2.1195482127218557, 'n_neighbors': 5, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}. Best is trial 0 with value: -0.0029549051286162655.\n",
+ "[I 2025-11-21 21:41:49,942] Trial 0 finished with value: -0.002905089081159221 and parameters: {'cluster_resolution': 1.2459789444244442, 'n_neighbors': 61, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}. Best is trial 0 with value: -0.002905089081159221.\n",
+ "[I 2025-11-21 21:41:50,000] Trial 0 finished with value: 0.035485784017005965 and parameters: {'cluster_resolution': 0.6711562818919401, 'n_neighbors': 100, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}. Best is trial 0 with value: 0.035485784017005965.\n",
+ "[I 2025-11-21 21:41:50,120] Trial 0 finished with value: 0.007516636909903132 and parameters: {'cluster_resolution': 1.0544036964208816, 'n_neighbors': 21, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'euclidean'}. Best is trial 0 with value: 0.007516636909903132.\n",
+ "[I 2025-11-21 21:41:50,187] Trial 1 finished with value: 0.02260290731959052 and parameters: {'cluster_resolution': 0.7872371778541689, 'n_neighbors': 45, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}. Best is trial 1 with value: 0.02260290731959052.\n",
+ "[I 2025-11-21 21:41:50,199] Trial 0 finished with value: 0.03655473303188121 and parameters: {'cluster_resolution': 0.8378582755884492, 'n_neighbors': 46, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'euclidean'}. Best is trial 0 with value: 0.03655473303188121.\n",
+ "[I 2025-11-21 21:41:50,214] Trial 0 finished with value: 0.10615484219386685 and parameters: {'cluster_resolution': 0.4709986051914493, 'n_neighbors': 95, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}. Best is trial 0 with value: 0.10615484219386685.\n",
+ "[I 2025-11-21 21:41:50,287] Trial 0 finished with value: -1.0 and parameters: {'cluster_resolution': 0.10054261568399628, 'n_neighbors': 65, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'euclidean'}. Best is trial 0 with value: -1.0.\n",
+ "[I 2025-11-21 21:41:50,302] Trial 0 finished with value: 0.015359952985368533 and parameters: {'cluster_resolution': 0.6403589869468924, 'n_neighbors': 74, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'cosine'}. Best is trial 0 with value: 0.015359952985368533.\n",
+ "[I 2025-11-21 21:41:50,354] Trial 0 finished with value: -1.0 and parameters: {'cluster_resolution': 0.2873493437045338, 'n_neighbors': 42, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}. Best is trial 0 with value: -1.0.\n",
+ "[I 2025-11-21 21:41:50,439] Trial 1 finished with value: -0.0019642839317216888 and parameters: {'cluster_resolution': 1.8398734934902004, 'n_neighbors': 20, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'cosine'}. Best is trial 0 with value: 0.05119241758899662.\n",
+ "[I 2025-11-21 21:41:50,582] Trial 1 finished with value: -0.0033563108382063033 and parameters: {'cluster_resolution': 1.7353083701371663, 'n_neighbors': 9, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'euclidean'}. Best is trial 1 with value: -0.0033563108382063033.\n",
+ "[I 2025-11-21 21:41:50,711] Trial 0 finished with value: -0.000690516044774023 and parameters: {'cluster_resolution': 1.6557217947130078, 'n_neighbors': 43, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}. Best is trial 0 with value: -0.000690516044774023.\n",
+ "[I 2025-11-21 21:41:50,792] Trial 1 finished with value: 0.08618327000175442 and parameters: {'cluster_resolution': 1.0847704793865285, 'n_neighbors': 23, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}. Best is trial 0 with value: 0.10615484219386685.\n",
+ "/home/erikserrano/Projects/buscar/notebooks/3.cfret-screen-analysis/../../utils/heterogeneity.py:236: FutureWarning: In the future, the default backend for leiden will be igraph instead of leidenalg.\n",
+ "\n",
+ " To achieve the future defaults please pass: flavor=\"igraph\" and n_iterations=2. directed must also be False to work with igraph's implementation.\n",
+ " sc.tl.leiden(\n",
+ "[I 2025-11-21 21:41:50,868] Trial 0 finished with value: 0.04925355769287974 and parameters: {'cluster_resolution': 0.5799218772616079, 'n_neighbors': 16, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'cosine'}. Best is trial 0 with value: 0.04925355769287974.\n",
+ "[I 2025-11-21 21:41:50,910] Trial 0 finished with value: 0.006628169774525352 and parameters: {'cluster_resolution': 1.1014261379768582, 'n_neighbors': 30, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}. Best is trial 0 with value: 0.006628169774525352.\n",
+ "[I 2025-11-21 21:41:50,921] Trial 0 finished with value: -0.01572747371987522 and parameters: {'cluster_resolution': 2.16444881203875, 'n_neighbors': 15, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'cosine'}. Best is trial 0 with value: -0.01572747371987522.\n",
+ "[I 2025-11-21 21:41:50,926] Trial 1 finished with value: -0.003681036108855817 and parameters: {'cluster_resolution': 1.9969331650729323, 'n_neighbors': 9, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'cosine'}. Best is trial 0 with value: -0.0029549051286162655.\n",
+ "/home/erikserrano/Projects/buscar/notebooks/3.cfret-screen-analysis/../../utils/heterogeneity.py:236: FutureWarning: In the future, the default backend for leiden will be igraph instead of leidenalg.\n",
+ "\n",
+ " To achieve the future defaults please pass: flavor=\"igraph\" and n_iterations=2. directed must also be False to work with igraph's implementation.\n",
+ " sc.tl.leiden(\n",
+ "[I 2025-11-21 21:41:51,182] Trial 1 finished with value: 0.11588041484442861 and parameters: {'cluster_resolution': 0.4424669352652143, 'n_neighbors': 88, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}. Best is trial 1 with value: 0.11588041484442861.\n",
+ "[I 2025-11-21 21:41:51,277] Trial 1 finished with value: 0.0017951493949188272 and parameters: {'cluster_resolution': 1.0671073050057354, 'n_neighbors': 15, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'cosine'}. Best is trial 0 with value: 0.011014276991034423.\n",
+ "[I 2025-11-21 21:41:51,296] Trial 1 finished with value: 0.0211740700063741 and parameters: {'cluster_resolution': 0.5296463939706878, 'n_neighbors': 9, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'cosine'}. Best is trial 0 with value: 0.03655473303188121.\n",
+ "[I 2025-11-21 21:41:51,439] Trial 0 finished with value: 0.003811427914741992 and parameters: {'cluster_resolution': 1.229216309764472, 'n_neighbors': 39, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'cosine'}. Best is trial 0 with value: 0.003811427914741992.\n",
+ "[I 2025-11-21 21:41:51,589] A new study created in memory with name: CFReT_screen_clustering_UCD-0159293\n",
+ "[I 2025-11-21 21:41:51,627] Trial 1 finished with value: -1.0 and parameters: {'cluster_resolution': 0.24163149591387315, 'n_neighbors': 49, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}. Best is trial 0 with value: 0.035485784017005965.\n",
+ "[I 2025-11-21 21:41:51,661] Trial 1 finished with value: -0.010080853369672009 and parameters: {'cluster_resolution': 2.1136030398529506, 'n_neighbors': 15, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'cosine'}. Best is trial 0 with value: 0.015359952985368533.\n",
+ "[I 2025-11-21 21:41:51,727] A new study created in memory with name: CFReT_screen_clustering_UCD-0001808\n",
+ "[I 2025-11-21 21:41:51,778] A new study created in memory with name: CFReT_screen_clustering_UCD-0001801\n",
+ "[I 2025-11-21 21:41:51,778] A new study created in memory with name: CFReT_screen_clustering_UCD-0159265\n",
+ "[I 2025-11-21 21:41:51,789] Trial 1 finished with value: -1.0 and parameters: {'cluster_resolution': 0.3260022960958597, 'n_neighbors': 88, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'euclidean'}. Best is trial 0 with value: -0.0008330515466489801.\n",
+ "[I 2025-11-21 21:41:52,018] Trial 1 finished with value: -1.0 and parameters: {'cluster_resolution': 0.23373343995177134, 'n_neighbors': 93, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'euclidean'}. Best is trial 0 with value: 0.007516636909903132.\n",
+ "[I 2025-11-21 21:41:52,023] Trial 0 finished with value: 0.017080350538708333 and parameters: {'cluster_resolution': 0.47629250412097834, 'n_neighbors': 54, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'cosine'}. Best is trial 0 with value: 0.017080350538708333.\n",
+ "[I 2025-11-21 21:41:52,030] A new study created in memory with name: CFReT_screen_clustering_UCD-0159271\n",
+ "[I 2025-11-21 21:41:52,330] Trial 1 finished with value: -1.0 and parameters: {'cluster_resolution': 0.40911644917108114, 'n_neighbors': 100, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}. Best is trial 0 with value: -0.002905089081159221.\n",
+ "[I 2025-11-21 21:41:52,363] Trial 0 finished with value: -0.00375753263241175 and parameters: {'cluster_resolution': 1.986967168222464, 'n_neighbors': 82, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'cosine'}. Best is trial 0 with value: -0.00375753263241175.\n",
+ "[I 2025-11-21 21:41:52,454] Trial 0 finished with value: 0.003934508985258803 and parameters: {'cluster_resolution': 0.8073606700941288, 'n_neighbors': 77, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}. Best is trial 0 with value: 0.003934508985258803.\n",
+ "[I 2025-11-21 21:41:52,500] Trial 0 finished with value: -0.022990974409185724 and parameters: {'cluster_resolution': 1.6145283140264624, 'n_neighbors': 66, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'cosine'}. Best is trial 0 with value: -0.022990974409185724.\n",
+ "[I 2025-11-21 21:41:52,616] Trial 1 finished with value: -1.0 and parameters: {'cluster_resolution': 0.19730621058364323, 'n_neighbors': 87, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'euclidean'}. Best is trial 0 with value: -0.01572747371987522.\n",
+ "[I 2025-11-21 21:41:52,634] Trial 0 finished with value: -1.0 and parameters: {'cluster_resolution': 0.24998877347676585, 'n_neighbors': 54, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}. Best is trial 0 with value: -1.0.\n",
+ "[I 2025-11-21 21:41:52,679] Trial 0 finished with value: -0.05748399484616586 and parameters: {'cluster_resolution': 2.112797550694061, 'n_neighbors': 99, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'euclidean'}. Best is trial 0 with value: -0.05748399484616586.\n",
+ "[I 2025-11-21 21:41:52,695] Trial 1 finished with value: 0.12160807065692089 and parameters: {'cluster_resolution': 0.34549620010570903, 'n_neighbors': 69, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'cosine'}. Best is trial 1 with value: 0.12160807065692089.\n",
+ "[I 2025-11-21 21:41:52,725] Trial 0 finished with value: -0.012861342685891073 and parameters: {'cluster_resolution': 1.3974489395194865, 'n_neighbors': 24, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'cosine'}. Best is trial 0 with value: -0.012861342685891073.\n",
+ "[I 2025-11-21 21:41:53,155] Trial 1 finished with value: 0.05918061698447849 and parameters: {'cluster_resolution': 0.5940590085940342, 'n_neighbors': 72, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'euclidean'}. Best is trial 1 with value: 0.05918061698447849.\n",
+ "[I 2025-11-21 21:41:53,169] Trial 1 finished with value: 0.0057895614445007005 and parameters: {'cluster_resolution': 1.4132501494538443, 'n_neighbors': 55, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}. Best is trial 1 with value: 0.0057895614445007005.\n",
+ "[I 2025-11-21 21:41:53,170] A new study created in memory with name: CFReT_screen_clustering_UCD-0001835\n",
+ "[I 2025-11-21 21:41:53,207] Trial 1 finished with value: -1.0 and parameters: {'cluster_resolution': 0.1087240474319129, 'n_neighbors': 76, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}. Best is trial 0 with value: -1.0.\n",
+ "[I 2025-11-21 21:41:53,405] Trial 1 finished with value: -0.044365112941149386 and parameters: {'cluster_resolution': 1.235826623349134, 'n_neighbors': 48, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}. Best is trial 0 with value: 0.1017864061382544.\n",
+ "[I 2025-11-21 21:41:53,407] Trial 0 finished with value: 0.03072872864654188 and parameters: {'cluster_resolution': 1.5820364155303759, 'n_neighbors': 40, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}. Best is trial 0 with value: 0.03072872864654188.\n",
+ "[I 2025-11-21 21:41:53,570] Trial 1 finished with value: 0.023593708730650472 and parameters: {'cluster_resolution': 0.7213025557760123, 'n_neighbors': 45, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'euclidean'}. Best is trial 1 with value: 0.023593708730650472.\n",
+ "[I 2025-11-21 21:41:53,616] A new study created in memory with name: CFReT_screen_clustering_UCD-0159280\n",
+ "[I 2025-11-21 21:41:53,668] A new study created in memory with name: CFReT_screen_clustering_UCD-0159286\n",
+ "[I 2025-11-21 21:41:53,679] Trial 0 finished with value: 0.004596105984601713 and parameters: {'cluster_resolution': 1.114716613455917, 'n_neighbors': 79, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'cosine'}. Best is trial 0 with value: 0.004596105984601713.\n",
+ "[I 2025-11-21 21:41:53,821] Trial 1 finished with value: -0.11581795067299187 and parameters: {'cluster_resolution': 1.6857323682594212, 'n_neighbors': 52, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}. Best is trial 0 with value: -0.012861342685891073.\n",
+ "[I 2025-11-21 21:41:53,970] Trial 1 finished with value: 0.08035998230769666 and parameters: {'cluster_resolution': 0.4869016642528722, 'n_neighbors': 87, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'euclidean'}. Best is trial 1 with value: 0.08035998230769666.\n",
+ "[I 2025-11-21 21:41:53,984] A new study created in memory with name: CFReT_screen_clustering_UCD-0018131\n",
+ "[I 2025-11-21 21:41:54,024] Trial 0 finished with value: -0.019792891987631643 and parameters: {'cluster_resolution': 1.3861580583451385, 'n_neighbors': 15, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'euclidean'}. Best is trial 0 with value: -0.019792891987631643.\n",
+ "[I 2025-11-21 21:41:54,084] A new study created in memory with name: CFReT_screen_clustering_UCD-0001024\n",
+ "[I 2025-11-21 21:41:54,097] Trial 0 finished with value: 0.00807219269274278 and parameters: {'cluster_resolution': 1.9980252655413688, 'n_neighbors': 24, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}. Best is trial 0 with value: 0.00807219269274278.\n",
+ "[I 2025-11-21 21:41:54,118] Trial 1 finished with value: -1.0 and parameters: {'cluster_resolution': 0.23530883078709713, 'n_neighbors': 79, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}. Best is trial 0 with value: 0.003934508985258803.\n",
+ "[I 2025-11-21 21:41:54,161] Trial 1 finished with value: -1.0 and parameters: {'cluster_resolution': 0.3238211097049247, 'n_neighbors': 86, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'euclidean'}. Best is trial 0 with value: 0.017080350538708333.\n",
+ "[I 2025-11-21 21:41:54,179] Trial 1 finished with value: 0.012467995250121336 and parameters: {'cluster_resolution': 0.5994971696232013, 'n_neighbors': 75, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}. Best is trial 1 with value: 0.012467995250121336.\n",
+ "[I 2025-11-21 21:41:54,459] Trial 1 finished with value: -0.06019758904401077 and parameters: {'cluster_resolution': 1.4383869178599122, 'n_neighbors': 31, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}. Best is trial 0 with value: -0.019792891987631643.\n",
+ "[I 2025-11-21 21:41:54,536] Trial 1 finished with value: -0.008950002124262559 and parameters: {'cluster_resolution': 1.2542607886261945, 'n_neighbors': 37, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'euclidean'}. Best is trial 0 with value: -0.00375753263241175.\n",
+ "[I 2025-11-21 21:41:54,566] A new study created in memory with name: CFReT_screen_clustering_UCD-0001829\n",
+ "[I 2025-11-21 21:41:54,596] A new study created in memory with name: CFReT_screen_clustering_UCD-0159259\n",
+ "[I 2025-11-21 21:41:54,599] A new study created in memory with name: CFReT_screen_clustering_UCD-0001842\n",
+ "[I 2025-11-21 21:41:54,732] Trial 0 finished with value: 0.00313574078398014 and parameters: {'cluster_resolution': 1.3235193961935592, 'n_neighbors': 32, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'euclidean'}. Best is trial 0 with value: 0.00313574078398014.\n",
+ "[I 2025-11-21 21:41:54,876] Trial 0 finished with value: 0.004811809551581636 and parameters: {'cluster_resolution': 1.14073578208598, 'n_neighbors': 45, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'cosine'}. Best is trial 0 with value: 0.004811809551581636.\n",
+ "[I 2025-11-21 21:41:54,895] Trial 1 finished with value: -0.008398986581395084 and parameters: {'cluster_resolution': 1.7396290635155816, 'n_neighbors': 22, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'euclidean'}. Best is trial 1 with value: -0.008398986581395084.\n",
+ "[I 2025-11-21 21:41:55,227] Trial 1 finished with value: 0.012305164660017609 and parameters: {'cluster_resolution': 1.8989092776881225, 'n_neighbors': 13, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'euclidean'}. Best is trial 1 with value: 0.012305164660017609.\n",
+ "[I 2025-11-21 21:41:55,435] Trial 0 finished with value: 0.10591701919731593 and parameters: {'cluster_resolution': 0.34903783900782626, 'n_neighbors': 15, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'euclidean'}. Best is trial 0 with value: 0.10591701919731593.\n",
+ "[I 2025-11-21 21:41:55,462] Trial 1 finished with value: 0.008209480849029276 and parameters: {'cluster_resolution': 1.3137726166334238, 'n_neighbors': 11, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}. Best is trial 1 with value: 0.008209480849029276.\n",
+ "[I 2025-11-21 21:41:55,579] Trial 1 finished with value: 0.0212350102370221 and parameters: {'cluster_resolution': 0.671019441206927, 'n_neighbors': 99, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}. Best is trial 1 with value: 0.0212350102370221.\n",
+ "[I 2025-11-21 21:41:55,762] Trial 1 finished with value: 0.02248056708139957 and parameters: {'cluster_resolution': 2.0863894044466362, 'n_neighbors': 73, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'euclidean'}. Best is trial 0 with value: 0.03072872864654188.\n",
+ "[I 2025-11-21 21:41:55,966] Trial 1 finished with value: 0.0004037679958901738 and parameters: {'cluster_resolution': 0.9897732067437842, 'n_neighbors': 53, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'cosine'}. Best is trial 1 with value: 0.0004037679958901738.\n",
+ "[I 2025-11-21 21:41:56,175] Trial 0 finished with value: 0.005358804162630786 and parameters: {'cluster_resolution': 0.8434392689188753, 'n_neighbors': 69, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'euclidean'}. Best is trial 0 with value: 0.005358804162630786.\n",
+ "[I 2025-11-21 21:41:56,218] Trial 0 finished with value: 0.2467483962182524 and parameters: {'cluster_resolution': 0.262336958957558, 'n_neighbors': 55, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'cosine'}. Best is trial 0 with value: 0.2467483962182524.\n",
+ "[I 2025-11-21 21:41:56,306] Trial 0 finished with value: -0.00048012388156834604 and parameters: {'cluster_resolution': 1.9043148916877957, 'n_neighbors': 45, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'euclidean'}. Best is trial 0 with value: -0.00048012388156834604.\n",
+ "[I 2025-11-21 21:41:56,344] Trial 1 finished with value: 0.05783331110842148 and parameters: {'cluster_resolution': 0.3743924356498194, 'n_neighbors': 55, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'cosine'}. Best is trial 1 with value: 0.05783331110842148.\n",
+ "[I 2025-11-21 21:41:56,834] Trial 0 finished with value: -0.007631951601751959 and parameters: {'cluster_resolution': 1.1935192080900463, 'n_neighbors': 28, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}. Best is trial 0 with value: -0.007631951601751959.\n",
+ "[I 2025-11-21 21:41:57,092] Trial 1 finished with value: 0.01959367543624807 and parameters: {'cluster_resolution': 1.702092351809396, 'n_neighbors': 23, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}. Best is trial 0 with value: 0.10591701919731593.\n",
+ "[I 2025-11-21 21:41:57,141] Trial 1 finished with value: 0.010510995457211438 and parameters: {'cluster_resolution': 0.43869230996926756, 'n_neighbors': 16, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'cosine'}. Best is trial 1 with value: 0.010510995457211438.\n",
+ "[I 2025-11-21 21:41:57,153] Trial 1 finished with value: 0.0003562552337337257 and parameters: {'cluster_resolution': 1.7521661341533552, 'n_neighbors': 33, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}. Best is trial 0 with value: 0.004811809551581636.\n",
+ "[I 2025-11-21 21:41:57,483] Trial 0 finished with value: -0.017626559509459766 and parameters: {'cluster_resolution': 1.6874654662174542, 'n_neighbors': 74, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}. Best is trial 0 with value: -0.017626559509459766.\n",
+ "[I 2025-11-21 21:41:57,782] Trial 1 finished with value: 0.008073198574233453 and parameters: {'cluster_resolution': 1.512351275005161, 'n_neighbors': 52, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'euclidean'}. Best is trial 1 with value: 0.008073198574233453.\n",
+ "[I 2025-11-21 21:41:57,852] Trial 1 finished with value: -1.0 and parameters: {'cluster_resolution': 0.151786175794872, 'n_neighbors': 55, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}. Best is trial 0 with value: -0.00048012388156834604.\n",
+ "[I 2025-11-21 21:41:59,055] Trial 1 finished with value: 0.0005829005618925827 and parameters: {'cluster_resolution': 1.4262526091689776, 'n_neighbors': 24, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}. Best is trial 1 with value: 0.0005829005618925827.\n",
+ "[I 2025-11-21 21:41:59,156] Trial 1 finished with value: -0.017433582816213804 and parameters: {'cluster_resolution': 1.6349594176674707, 'n_neighbors': 74, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'cosine'}. Best is trial 0 with value: 0.2467483962182524.\n",
+ "[I 2025-11-21 21:41:59,447] Trial 1 finished with value: -0.028812649420638204 and parameters: {'cluster_resolution': 1.5782011544324503, 'n_neighbors': 90, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}. Best is trial 0 with value: -0.007631951601751959.\n",
+ "[I 2025-11-21 21:42:01,616] Trial 0 finished with value: -0.01156512851642597 and parameters: {'cluster_resolution': 2.1415770674556747, 'n_neighbors': 100, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'euclidean'}. Best is trial 0 with value: -0.01156512851642597.\n",
+ "[I 2025-11-21 21:42:39,809] Trial 1 finished with value: -0.007201972912521659 and parameters: {'cluster_resolution': 1.6050924636725854, 'n_neighbors': 89, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'cosine'}. Best is trial 1 with value: -0.007201972912521659.\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " DMSO_heart_7: silhouette=0.000, params={'cluster_resolution': 0.9897732067437842, 'n_neighbors': 53, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'cosine'}\n",
+ " UCD-0159256: silhouette=-0.003, params={'cluster_resolution': 1.7353083701371663, 'n_neighbors': 9, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'euclidean'}\n",
+ " UCD-0001766: silhouette=0.023, params={'cluster_resolution': 0.7872371778541689, 'n_neighbors': 45, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}\n",
+ " UCD-0159262: silhouette=0.106, params={'cluster_resolution': 0.4709986051914493, 'n_neighbors': 95, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}\n",
+ " UCD-0001915: silhouette=0.051, params={'cluster_resolution': 0.5782847549480996, 'n_neighbors': 25, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}\n",
+ " UCD-0159279: silhouette=0.044, params={'cluster_resolution': 0.46639823003811576, 'n_neighbors': 70, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'cosine'}\n",
+ " UCD-0159283: silhouette=0.006, params={'cluster_resolution': 1.4132501494538443, 'n_neighbors': 55, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}\n",
+ " UCD-0001040: silhouette=0.008, params={'cluster_resolution': 1.0544036964208816, 'n_neighbors': 21, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'euclidean'}\n",
+ " UCD-0000450: silhouette=0.015, params={'cluster_resolution': 0.6403589869468924, 'n_neighbors': 74, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'cosine'}\n",
+ " UCD-0159257: silhouette=0.008, params={'cluster_resolution': 1.3137726166334238, 'n_neighbors': 11, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}\n",
+ " UCD-0001810: silhouette=-0.003, params={'cluster_resolution': 2.1195482127218557, 'n_neighbors': 5, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}\n",
+ " UCD-0159263: silhouette=-0.001, params={'cluster_resolution': 1.360059781754819, 'n_neighbors': 88, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'euclidean'}\n",
+ " UCD-0159269: silhouette=0.116, params={'cluster_resolution': 0.4424669352652143, 'n_neighbors': 88, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}\n",
+ " UCD-0159273: silhouette=-0.004, params={'cluster_resolution': 1.986967168222464, 'n_neighbors': 82, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'cosine'}\n",
+ " UCD-0159284: silhouette=-1.000, params={'cluster_resolution': 0.2873493437045338, 'n_neighbors': 42, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}\n",
+ " UCD-0017999: silhouette=0.102, params={'cluster_resolution': 0.31910048844094696, 'n_neighbors': 28, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'cosine'}\n",
+ " UCD-0001014: silhouette=0.059, params={'cluster_resolution': 0.5940590085940342, 'n_neighbors': 72, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'euclidean'}\n",
+ " UCD-0159258: silhouette=-0.003, params={'cluster_resolution': 1.2459789444244442, 'n_neighbors': 61, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}\n",
+ " UCD-0159261: silhouette=0.037, params={'cluster_resolution': 0.8378582755884492, 'n_neighbors': 46, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'euclidean'}\n",
+ " UCD-0001775: silhouette=0.017, params={'cluster_resolution': 0.47629250412097834, 'n_neighbors': 54, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'cosine'}\n",
+ " UCD-0159274: silhouette=0.011, params={'cluster_resolution': 0.7930943264793587, 'n_neighbors': 6, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}\n",
+ " DMSO_heart_19: silhouette=-0.007, params={'cluster_resolution': 1.6050924636725854, 'n_neighbors': 89, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'cosine'}\n",
+ " UCD-0159285: silhouette=0.008, params={'cluster_resolution': 1.512351275005161, 'n_neighbors': 52, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'euclidean'}\n",
+ " UCD-0159289: silhouette=0.080, params={'cluster_resolution': 0.4869016642528722, 'n_neighbors': 87, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'euclidean'}\n",
+ " UCD-0018179: silhouette=0.052, params={'cluster_resolution': 0.9579619090415782, 'n_neighbors': 13, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}\n",
+ " UCD-0001016: silhouette=-0.008, params={'cluster_resolution': 1.7396290635155816, 'n_neighbors': 22, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'euclidean'}\n",
+ " UCD-0001804: silhouette=0.004, params={'cluster_resolution': 0.8073606700941288, 'n_neighbors': 77, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}\n",
+ " UCD-0018207: silhouette=0.035, params={'cluster_resolution': 0.6711562818919401, 'n_neighbors': 100, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}\n",
+ " UCD-0001844: silhouette=0.065, params={'cluster_resolution': 0.8230715142786573, 'n_neighbors': 49, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'euclidean'}\n",
+ " UCD-0159270: silhouette=0.021, params={'cluster_resolution': 0.671019441206927, 'n_neighbors': 99, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}\n",
+ " UCD-0159275: silhouette=0.012, params={'cluster_resolution': 0.5994971696232013, 'n_neighbors': 75, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}\n",
+ " UCD-0001613: silhouette=-0.016, params={'cluster_resolution': 2.16444881203875, 'n_neighbors': 15, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'cosine'}\n",
+ " UCD-0001921: silhouette=0.122, params={'cluster_resolution': 0.34549620010570903, 'n_neighbors': 69, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'cosine'}\n",
+ " UCD-0159293: silhouette=0.031, params={'cluster_resolution': 1.5820364155303759, 'n_neighbors': 40, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}\n",
+ " UCD-0001808: silhouette=0.024, params={'cluster_resolution': 0.7213025557760123, 'n_neighbors': 45, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'euclidean'}\n",
+ " UCD-0001801: silhouette=-0.013, params={'cluster_resolution': 1.3974489395194865, 'n_neighbors': 24, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'cosine'}\n",
+ " UCD-0159265: silhouette=0.005, params={'cluster_resolution': 1.14073578208598, 'n_neighbors': 45, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'cosine'}\n",
+ " UCD-0159271: silhouette=0.012, params={'cluster_resolution': 1.8989092776881225, 'n_neighbors': 13, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'euclidean'}\n",
+ " UCD-0001835: silhouette=0.058, params={'cluster_resolution': 0.3743924356498194, 'n_neighbors': 55, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'cosine'}\n",
+ " UCD-0159280: silhouette=0.011, params={'cluster_resolution': 0.43869230996926756, 'n_neighbors': 16, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'cosine'}\n",
+ " UCD-0159286: silhouette=-0.020, params={'cluster_resolution': 1.3861580583451385, 'n_neighbors': 15, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'euclidean'}\n",
+ " UCD-0018131: silhouette=0.247, params={'cluster_resolution': 0.262336958957558, 'n_neighbors': 55, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'cosine'}\n",
+ " UCD-0001024: silhouette=0.001, params={'cluster_resolution': 1.4262526091689776, 'n_neighbors': 24, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}\n",
+ " UCD-0001829: silhouette=-0.008, params={'cluster_resolution': 1.1935192080900463, 'n_neighbors': 28, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'manhattan'}\n",
+ " UCD-0159259: silhouette=0.106, params={'cluster_resolution': 0.34903783900782626, 'n_neighbors': 15, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'euclidean'}\n",
+ " UCD-0001842: silhouette=-0.000, params={'cluster_resolution': 1.9043148916877957, 'n_neighbors': 45, 'cluster_method': 'leiden', 'neighbor_distance_metric': 'euclidean'}\n"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "sys:1: CategoricalRemappingWarning: Local categoricals have different encodings, expensive re-encoding is done to perform this merge operation. Consider using a StringCache or an Enum type if the categories are known in advance\n"
+ ]
+ }
+ ],
+ "source": [
+ "# setting best params outputs\n",
+ "cfret_screen_treatment_best_params_outpath = (\n",
+ " results_dir / \"cfret_screen_treatment_clustering_params.json\"\n",
+ ").resolve()\n",
+ "cfret_screen_treatment_cluster_df_outpath = (\n",
+ " results_dir / \"cfret_screen_treatment_clustered.parquet\"\n",
+ ").resolve()\n",
+ "\n",
+ "# here we are clustering each treatment-heart combination\n",
+ "# this will allow us to see how each heart responds to each treatment\n",
+ "cfret_screen_treatment_clustered_df, cfret_screen_treatment_clustered_best_params = (\n",
+ " optimized_clustering(\n",
+ " profiles=cfret_screen_df,\n",
+ " meta_features=cfret_screen_meta,\n",
+ " morph_features=cfret_screen_feats,\n",
+ " treatment_col=\"Metadata_treatment\",\n",
+ " param_grid=cfret_screen_cluster_param_grid,\n",
+ " n_trials=500,\n",
+ " n_jobs=-22,\n",
+ " study_name=\"CFReT_screen_clustering\",\n",
+ " )\n",
+ ")\n",
+ "\n",
+ "# save best params as json and dataframe as parquet\n",
+ "cfret_screen_treatment_clustered_df.write_parquet(\n",
+ " cfret_screen_treatment_cluster_df_outpath\n",
+ ")\n",
+ "with open(cfret_screen_treatment_best_params_outpath, \"w\") as f:\n",
+ " json.dump(\n",
+ " cfret_screen_treatment_clustered_best_params,\n",
+ " f,\n",
+ " indent=4,\n",
+ " )"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "id": "8a4a9979",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "
shape: (5, 499) Metadata_WellRow Metadata_WellCol Metadata_heart_number Metadata_cell_type Metadata_heart_failure_type Metadata_treatment Metadata_Pathway Metadata_Nuclei_Location_Center_X Metadata_Nuclei_Location_Center_Y Metadata_Cells_Location_Center_X Metadata_Cells_Location_Center_Y Metadata_Image_Count_Cells Metadata_ImageNumber Metadata_Plate Metadata_Well Metadata_Cells_Number_Object_Number Metadata_Cytoplasm_Parent_Cells Metadata_Cytoplasm_Parent_Nuclei Metadata_Nuclei_Number_Object_Number Metadata_Site Metadata_cell_id Cytoplasm_AreaShape_Area Cytoplasm_AreaShape_MajorAxisLength Cytoplasm_AreaShape_Zernike_4_0 Cytoplasm_AreaShape_Zernike_5_1 Cytoplasm_AreaShape_Zernike_6_0 Cytoplasm_AreaShape_Zernike_6_2 Cytoplasm_AreaShape_Zernike_7_1 Cytoplasm_AreaShape_Zernike_7_3 Cytoplasm_AreaShape_Zernike_8_0 Cytoplasm_AreaShape_Zernike_8_2 Cytoplasm_AreaShape_Zernike_9_1 Cytoplasm_AreaShape_Zernike_9_3 Cytoplasm_AreaShape_Zernike_9_5 Cytoplasm_AreaShape_Zernike_9_7 Cytoplasm_Correlation_Correlation_ER_Hoechst Cytoplasm_Correlation_Correlation_ER_PM … Nuclei_Texture_Correlation_Hoechst_3_02_256 Nuclei_Texture_Correlation_Hoechst_3_03_256 Nuclei_Texture_Correlation_Mitochondria_3_00_256 Nuclei_Texture_Correlation_Mitochondria_3_01_256 Nuclei_Texture_Correlation_Mitochondria_3_02_256 Nuclei_Texture_Correlation_Mitochondria_3_03_256 Nuclei_Texture_Correlation_PM_3_00_256 Nuclei_Texture_Correlation_PM_3_01_256 Nuclei_Texture_Correlation_PM_3_02_256 Nuclei_Texture_Correlation_PM_3_03_256 Nuclei_Texture_DifferenceEntropy_Hoechst_3_00_256 Nuclei_Texture_DifferenceEntropy_Hoechst_3_02_256 Nuclei_Texture_InfoMeas1_ER_3_00_256 Nuclei_Texture_InfoMeas1_ER_3_01_256 Nuclei_Texture_InfoMeas1_ER_3_02_256 Nuclei_Texture_InfoMeas1_ER_3_03_256 Nuclei_Texture_InfoMeas1_PM_3_00_256 Nuclei_Texture_InfoMeas1_PM_3_01_256 Nuclei_Texture_InfoMeas1_PM_3_02_256 Nuclei_Texture_InfoMeas1_PM_3_03_256 Nuclei_Texture_InfoMeas2_PM_3_00_256 Nuclei_Texture_InfoMeas2_PM_3_01_256 Nuclei_Texture_InfoMeas2_PM_3_02_256 Nuclei_Texture_InfoMeas2_PM_3_03_256 Nuclei_Texture_InverseDifferenceMoment_Hoechst_3_00_256 Nuclei_Texture_InverseDifferenceMoment_Hoechst_3_01_256 Nuclei_Texture_InverseDifferenceMoment_Hoechst_3_02_256 Nuclei_Texture_InverseDifferenceMoment_Hoechst_3_03_256 Nuclei_Texture_InverseDifferenceMoment_PM_3_00_256 Nuclei_Texture_InverseDifferenceMoment_PM_3_01_256 Nuclei_Texture_InverseDifferenceMoment_PM_3_02_256 Nuclei_Texture_InverseDifferenceMoment_PM_3_03_256 Nuclei_Texture_SumEntropy_PM_3_01_256 Metadata_cluster_id Metadata_cluster_n_cells Metadata_treatment_n_cells Metadata_cluster_ratio str i64 i64 str str str str f64 f64 f64 f64 i64 i64 str str i64 i64 i64 i64 str str f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 … f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 cat u32 u32 f64 "B" 2 7 "healthy" null "DMSO_heart_7" null 870.048176 222.975912 883.760337 261.61621 8 2 "localhost240927060001" "B02" 1 1 3 3 "f07" "12575616795011807720" -0.751363 0.572923 -0.397076 0.280466 -0.842051 0.921933 -0.808205 -0.152162 -0.576562 1.018035 -0.555971 1.136591 -1.010685 -0.580809 0.296295 0.374481 … 0.776713 -0.060115 -0.47829 0.369701 0.664598 -0.595822 -0.779385 -1.10438 0.019679 -0.081576 0.899131 0.131613 0.288529 -0.396068 -1.475314 0.104475 0.605291 0.480656 -0.418191 0.05484 -0.245545 -0.194699 0.449148 0.153167 -1.314356 -0.527268 -0.28336 -0.966427 -0.028467 0.025132 0.531559 0.161083 -0.084311 "DMSO_heart_7_leiden_0" 365 1720 0.212209 "B" 2 7 "healthy" null "DMSO_heart_7" null 372.665138 78.150612 422.940605 121.357251 9 3 "localhost240927060001" "B02" 1 1 3 3 "f08" "3793444334871218055" -1.315906 1.653718 -0.660428 -1.684414 -0.408983 -0.805361 -1.386725 -1.901982 -0.170266 -0.830062 -1.194093 -1.405091 -1.373065 -1.294781 0.279446 0.891917 … 0.260714 -0.725359 0.799276 1.3109 0.532934 0.074106 0.416485 1.003763 0.552246 -0.005259 1.298366 1.548535 -0.770951 -1.91123 -0.873208 -0.699423 -0.794136 -1.358924 -0.085818 -0.433256 1.040848 1.26808 0.738358 0.875659 -1.281228 -0.035844 -1.641539 -1.781835 -0.67462 -0.054664 -0.974624 -1.157279 1.004183 "DMSO_heart_7_leiden_3" 288 1720 0.167442 "B" 2 7 "healthy" null "DMSO_heart_7" null 691.469799 396.812081 683.988473 379.093181 13 5 "localhost240927060001" "B02" 1 1 4 4 "f24" "13106199485709533901" -0.831717 -0.493455 -0.314125 1.206134 -0.995271 0.95686 -0.597832 -1.242007 -0.676838 -0.697607 0.261978 -0.954203 -0.465119 0.237499 -1.585019 -0.733386 … -1.341247 -0.772522 -0.848805 -0.711727 -0.210759 -0.562823 0.244987 0.01068 0.07403 0.112629 -1.361163 -1.710352 0.354125 0.124231 -0.204837 0.048314 0.903335 0.686618 -0.263899 0.594106 -0.96627 -0.718725 0.013854 -0.630529 1.253008 0.978559 1.724513 1.741098 0.204027 0.415166 0.695386 0.509317 -0.669122 "DMSO_heart_7_leiden_4" 284 1720 0.165116 "B" 2 7 "healthy" null "DMSO_heart_7" null 658.817385 176.3645 656.476395 192.96612 17 1 "localhost240927060001" "B02" 1 1 5 5 "f04" "7290611366224905244" -0.729628 2.007046 -0.698666 -0.80159 -0.704448 0.553221 -0.655824 -1.543914 -0.336989 -0.24697 -0.756293 -0.671515 -1.237478 -0.235575 -1.694629 0.086748 … -0.084532 0.570731 0.412617 -0.222178 0.226913 1.11128 -1.537455 -1.935402 -0.910721 0.202415 0.831907 0.771808 -0.146304 -0.354501 -0.571405 -0.525462 1.445841 1.412182 1.00448 0.277911 -0.996699 -1.161237 -0.553192 0.01472 -0.793306 -0.84018 -0.947567 -0.750173 -0.856654 -0.524341 -0.36156 0.09598 -0.099079 "DMSO_heart_7_leiden_0" 365 1720 0.212209 "B" 2 7 "healthy" null "DMSO_heart_7" null 1031.773316 87.448834 1023.158705 96.849952 9 3 "localhost240927060001" "B02" 2 2 4 4 "f08" "13601323271362343116" -1.714346 -2.535695 -0.200532 2.762689 -0.613978 0.124689 0.33025 -0.038417 1.281422 -0.987717 -1.124053 1.35118 -0.382761 -0.324415 -2.406365 -2.811065 … 1.290873 1.647338 0.507265 1.048953 0.574748 -0.159257 -0.570205 0.79213 -0.870146 -2.626183 0.031559 1.241171 -0.044313 -0.257633 0.132283 -0.004799 1.927704 0.103152 2.3075 2.455422 -0.701168 0.677342 -1.218404 -2.189919 0.371659 -0.508734 -1.278283 -1.529378 -2.088097 -0.929627 -2.14462 -2.443222 1.224159 "DMSO_heart_7_leiden_2" 305 1720 0.177326
"
+ ],
+ "text/plain": [
+ "shape: (5, 499)\n",
+ "┌───────────┬───────────┬───────────┬───────────┬───┬───────────┬───────────┬───────────┬──────────┐\n",
+ "│ Metadata_ ┆ Metadata_ ┆ Metadata_ ┆ Metadata_ ┆ … ┆ Metadata_ ┆ Metadata_ ┆ Metadata_ ┆ Metadata │\n",
+ "│ WellRow ┆ WellCol ┆ heart_num ┆ cell_type ┆ ┆ cluster_i ┆ cluster_n ┆ treatment ┆ _cluster │\n",
+ "│ --- ┆ --- ┆ ber ┆ --- ┆ ┆ d ┆ _cells ┆ _n_cells ┆ _ratio │\n",
+ "│ str ┆ i64 ┆ --- ┆ str ┆ ┆ --- ┆ --- ┆ --- ┆ --- │\n",
+ "│ ┆ ┆ i64 ┆ ┆ ┆ cat ┆ u32 ┆ u32 ┆ f64 │\n",
+ "╞═══════════╪═══════════╪═══════════╪═══════════╪═══╪═══════════╪═══════════╪═══════════╪══════════╡\n",
+ "│ B ┆ 2 ┆ 7 ┆ healthy ┆ … ┆ DMSO_hear ┆ 365 ┆ 1720 ┆ 0.212209 │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ t_7_leide ┆ ┆ ┆ │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ n_0 ┆ ┆ ┆ │\n",
+ "│ B ┆ 2 ┆ 7 ┆ healthy ┆ … ┆ DMSO_hear ┆ 288 ┆ 1720 ┆ 0.167442 │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ t_7_leide ┆ ┆ ┆ │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ n_3 ┆ ┆ ┆ │\n",
+ "│ B ┆ 2 ┆ 7 ┆ healthy ┆ … ┆ DMSO_hear ┆ 284 ┆ 1720 ┆ 0.165116 │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ t_7_leide ┆ ┆ ┆ │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ n_4 ┆ ┆ ┆ │\n",
+ "│ B ┆ 2 ┆ 7 ┆ healthy ┆ … ┆ DMSO_hear ┆ 365 ┆ 1720 ┆ 0.212209 │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ t_7_leide ┆ ┆ ┆ │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ n_0 ┆ ┆ ┆ │\n",
+ "│ B ┆ 2 ┆ 7 ┆ healthy ┆ … ┆ DMSO_hear ┆ 305 ┆ 1720 ┆ 0.177326 │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ t_7_leide ┆ ┆ ┆ │\n",
+ "│ ┆ ┆ ┆ ┆ ┆ n_2 ┆ ┆ ┆ │\n",
+ "└───────────┴───────────┴───────────┴───────────┴───┴───────────┴───────────┴───────────┴──────────┘"
+ ]
+ },
+ "execution_count": 13,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# now merge the cluster labels back to the main dataframe\n",
+ "cfret_screen_df = cfret_screen_df.join(\n",
+ " cfret_screen_treatment_clustered_df, on=\"Metadata_cell_id\", how=\"left\"\n",
+ ")\n",
+ "cfret_screen_df.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "id": "dc6be2d0",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "treatment_phenotypic_dist_scores = measure_phenotypic_activity(\n",
+ " profiles=cfret_screen_df,\n",
+ " on_signature=on_sigs,\n",
+ " off_signature=off_sigs,\n",
+ " ref_treatment=\"DMSO_heart_7\",\n",
+ " cluster_col=\"Metadata_cluster_id\",\n",
+ " treatment_col=treatment_col,\n",
+ ")\n",
+ "\n",
+ "# save those as csv files\n",
+ "treatment_phenotypic_dist_scores.write_csv(\n",
+ " results_dir / \"cfret_screen_treatment_phenotypic_dist_scores.csv\"\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "id": "83bfbb82",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "treatment_rankings = identify_compound_hit(\n",
+ " distance_df=treatment_phenotypic_dist_scores, method=\"weighted_sum\"\n",
+ ")\n",
+ "\n",
+ "# save as csv files\n",
+ "treatment_rankings.write_csv(results_dir / \"cfret_screen_treatment_rankings.csv\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "id": "d3395186",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "
shape: (2_296, 6) ref_cluster treatment trt_cluster on_dist off_dist exp_cluster_ratio str str str f64 f64 f64 "DMSO_heart_7_leiden_3" "UCD-0159273" "UCD-0159273_leiden_13" 20.107512 8.382844 0.039298 "DMSO_heart_7_leiden_0" "UCD-0159273" "UCD-0159273_leiden_13" 21.627054 9.371636 0.039298 "DMSO_heart_7_leiden_6" "UCD-0159273" "UCD-0159273_leiden_13" 24.228675 10.300784 0.039298 "DMSO_heart_7_leiden_2" "UCD-0159273" "UCD-0159273_leiden_13" 28.832545 10.066661 0.039298 "DMSO_heart_7_leiden_1" "UCD-0159273" "UCD-0159273_leiden_13" 20.883143 8.114354 0.039298 … … … … … … "DMSO_heart_7_leiden_6" "UCD-0159263" "UCD-0159263_leiden_3" 27.972705 12.367947 0.124474 "DMSO_heart_7_leiden_2" "UCD-0159263" "UCD-0159263_leiden_3" 28.050916 10.525981 0.124474 "DMSO_heart_7_leiden_1" "UCD-0159263" "UCD-0159263_leiden_3" 24.944035 10.583916 0.124474 "DMSO_heart_7_leiden_4" "UCD-0159263" "UCD-0159263_leiden_3" 26.071292 10.982288 0.124474 "DMSO_heart_7_leiden_5" "UCD-0159263" "UCD-0159263_leiden_3" 24.951347 10.992888 0.124474
"
+ ],
+ "text/plain": [
+ "shape: (2_296, 6)\n",
+ "┌────────────────────┬─────────────┬───────────────────┬───────────┬───────────┬───────────────────┐\n",
+ "│ ref_cluster ┆ treatment ┆ trt_cluster ┆ on_dist ┆ off_dist ┆ exp_cluster_ratio │\n",
+ "│ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- │\n",
+ "│ str ┆ str ┆ str ┆ f64 ┆ f64 ┆ f64 │\n",
+ "╞════════════════════╪═════════════╪═══════════════════╪═══════════╪═══════════╪═══════════════════╡\n",
+ "│ DMSO_heart_7_leide ┆ UCD-0159273 ┆ UCD-0159273_leide ┆ 20.107512 ┆ 8.382844 ┆ 0.039298 │\n",
+ "│ n_3 ┆ ┆ n_13 ┆ ┆ ┆ │\n",
+ "│ DMSO_heart_7_leide ┆ UCD-0159273 ┆ UCD-0159273_leide ┆ 21.627054 ┆ 9.371636 ┆ 0.039298 │\n",
+ "│ n_0 ┆ ┆ n_13 ┆ ┆ ┆ │\n",
+ "│ DMSO_heart_7_leide ┆ UCD-0159273 ┆ UCD-0159273_leide ┆ 24.228675 ┆ 10.300784 ┆ 0.039298 │\n",
+ "│ n_6 ┆ ┆ n_13 ┆ ┆ ┆ │\n",
+ "│ DMSO_heart_7_leide ┆ UCD-0159273 ┆ UCD-0159273_leide ┆ 28.832545 ┆ 10.066661 ┆ 0.039298 │\n",
+ "│ n_2 ┆ ┆ n_13 ┆ ┆ ┆ │\n",
+ "│ DMSO_heart_7_leide ┆ UCD-0159273 ┆ UCD-0159273_leide ┆ 20.883143 ┆ 8.114354 ┆ 0.039298 │\n",
+ "│ n_1 ┆ ┆ n_13 ┆ ┆ ┆ │\n",
+ "│ … ┆ … ┆ … ┆ … ┆ … ┆ … │\n",
+ "│ DMSO_heart_7_leide ┆ UCD-0159263 ┆ UCD-0159263_leide ┆ 27.972705 ┆ 12.367947 ┆ 0.124474 │\n",
+ "│ n_6 ┆ ┆ n_3 ┆ ┆ ┆ │\n",
+ "│ DMSO_heart_7_leide ┆ UCD-0159263 ┆ UCD-0159263_leide ┆ 28.050916 ┆ 10.525981 ┆ 0.124474 │\n",
+ "│ n_2 ┆ ┆ n_3 ┆ ┆ ┆ │\n",
+ "│ DMSO_heart_7_leide ┆ UCD-0159263 ┆ UCD-0159263_leide ┆ 24.944035 ┆ 10.583916 ┆ 0.124474 │\n",
+ "│ n_1 ┆ ┆ n_3 ┆ ┆ ┆ │\n",
+ "│ DMSO_heart_7_leide ┆ UCD-0159263 ┆ UCD-0159263_leide ┆ 26.071292 ┆ 10.982288 ┆ 0.124474 │\n",
+ "│ n_4 ┆ ┆ n_3 ┆ ┆ ┆ │\n",
+ "│ DMSO_heart_7_leide ┆ UCD-0159263 ┆ UCD-0159263_leide ┆ 24.951347 ┆ 10.992888 ┆ 0.124474 │\n",
+ "│ n_5 ┆ ┆ n_3 ┆ ┆ ┆ │\n",
+ "└────────────────────┴─────────────┴───────────────────┴───────────┴───────────┴───────────────────┘"
+ ]
+ },
+ "execution_count": 16,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "treatment_phenotypic_dist_scores"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "buscar",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.12.11"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/notebooks/3.cfret-screen-analysis/nbconverted/1.cfret_screen_analysis.py b/notebooks/3.cfret-screen-analysis/nbconverted/1.cfret_screen_analysis.py
new file mode 100644
index 0000000..dc70291
--- /dev/null
+++ b/notebooks/3.cfret-screen-analysis/nbconverted/1.cfret_screen_analysis.py
@@ -0,0 +1,369 @@
+#!/usr/bin/env python
+
+# # CFReT-Screen analysis
+#
+# In this notebook, we will be applying `buscar` to the CFReT initial screen.
+#
+# The resource for this dataset can be found [here](https://github.com/WayScience/targeted_fibrosis_drug_screen/tree/main/3.preprocessing_features)
+#
+
+# In[1]:
+
+
+import json
+import pathlib
+import sys
+
+import matplotlib.pyplot as plt
+import numpy as np
+import polars as pl
+import seaborn as sns
+
+sys.path.append("../../")
+from utils.data_utils import split_meta_and_features
+from utils.heterogeneity import optimized_clustering
+from utils.identify_hits import identify_compound_hit
+from utils.io_utils import load_profiles
+from utils.metrics import measure_phenotypic_activity
+
+# from utils.metrics import measure_phenotypic_activity
+from utils.preprocess import apply_pca
+from utils.signatures import get_signatures
+
+# ## Parameters
+#
+# Below are the parameters used for this notebook. The CFReT-screen dataset contains two hearts: **Healthy (Heart 7)** and **Failing (Heart 19)**, which has been diagnosed with dilated cardiomyopathy.
+#
+# DMSO Control Naming Convention
+#
+# To distinguish between control conditions from different heart sources, the `Metadata_treatment` column values are modified as follows:
+# - **Healthy controls** (Heart 7 + DMSO): `"DMSO_heart_7"`
+# - **Failing controls** (Heart 19 + DMSO): `"DMSO_heart_19"`
+#
+# Parameter Definitions:
+# - **`healthy_ref_treatment`**: Reference treatment name for healthy controls
+# - **`failing_ref_treatment`**: Reference treatment name for failing heart controls
+# - **`treatment_col`**: Column name containing treatment metadata
+# - **`cfret_screen_cluster_param_grid`**: Dictionary defining the hyperparameter search space for clustering optimization when assessing heterogeneity across treatments. Includes:
+# - `cluster_resolution`: Granularity of clusters (float, 0.1–2.2)
+# - `n_neighbors`: Number of neighbors for graph construction (int, 5–100)
+# - `cluster_method`: Clustering algorithm (categorical: leiden)
+# - `neighbor_distance_metric`: Distance metric for neighbor computation (categorical: euclidean, cosine, manhattan)
+
+# In[2]:
+
+
+# setting parameters
+healthy_ref_treatment = "DMSO_heart_7"
+failing_ref_treatment = "DMSO_heart_19"
+treatment_col = "Metadata_treatment"
+
+# parameters used for clustering optimization
+cfret_screen_cluster_param_grid = {
+ # Clustering resolution: how granular the clusters should be
+ "cluster_resolution": {"type": "float", "low": 0.1, "high": 2.2},
+ # Number of neighbors for graph construction
+ "n_neighbors": {"type": "int", "low": 5, "high": 100},
+ # Clustering algorithm
+ "cluster_method": {"type": "categorical", "choices": ["leiden"]},
+ # Distance metric for neighbor computation
+ "neighbor_distance_metric": {
+ "type": "categorical",
+ "choices": ["euclidean", "cosine", "manhattan"],
+ },
+}
+
+
+# setting paths
+
+# In[3]:
+
+
+# load in raw data from
+cfret_data_dir = pathlib.Path(
+ "../0.download-data/data/sc-profiles/cfret-screen"
+).resolve(strict=True)
+cfret_profiles_path = (cfret_data_dir / "cfret_screen_concat_profiles.parquet").resolve(
+ strict=True
+)
+
+# make results dir
+results_dir = pathlib.Path("./results/cfret-screen").resolve()
+results_dir.mkdir(parents=True, exist_ok=True)
+
+
+# In[4]:
+
+
+# loading profiles
+cfret_screen_df = load_profiles(cfret_profiles_path)
+cfret_screen_meta, cfret_screen_feats = split_meta_and_features(cfret_screen_df)
+
+# updating the treatment name to reflect the heart source for DMSO in healthy cells
+# this is our reference for healthy cells when measuring phenotypic activity
+cfret_screen_df = cfret_screen_df.with_columns(
+ pl.when(
+ (pl.col("Metadata_treatment") == "DMSO")
+ & (pl.col("Metadata_cell_type") == "healthy")
+ )
+ .then(pl.lit("DMSO_heart_7"))
+ .otherwise(pl.col("Metadata_treatment"))
+ .alias("Metadata_treatment")
+)
+cfret_screen_df = cfret_screen_df.with_columns(
+ pl.when(
+ (pl.col("Metadata_treatment") == "DMSO")
+ & (pl.col("Metadata_cell_type") == "failing")
+ )
+ .then(pl.lit("DMSO_heart_19"))
+ .otherwise(pl.col("Metadata_treatment"))
+ .alias("Metadata_treatment")
+)
+
+# Display data
+cfret_screen_df.head()
+
+
+# In[5]:
+
+
+print(
+ f"number of healthy cells {cfret_screen_df.filter(pl.col('Metadata_treatment') == 'DMSO_heart_7').height}"
+)
+print(
+ f"number of failing cells {cfret_screen_df.filter(pl.col('Metadata_treatment') == 'DMSO_heart_19').height}"
+)
+
+
+# ## Preprocessing
+
+# Filtering Treatments with Low Cell Counts:
+#
+# Treatments with low cell counts were removed from the analysis. This reduction in cell numbers is typically caused by cellular toxicity, which leads to cell death and consequently results in insufficient cell representation for downstream analysis.
+#
+# Low cell count treatments also pose challenges when assessing heterogeneity, as there are not enough data points to form meaningful clusters. To address this, highly toxic compounds with very few surviving cells were excluded from the BUSCAR analysis.
+#
+# A threshold of 10% was applied based on Scanpy documentation, which recommends having at least 15–100 data points to compute a reliable neighborhood graph. To validate this threshold, we generated a histogram of cell counts and marked the 10th percentile with a red line. Treatments falling below this threshold were removed and excluded from the BUSCAR pipeline.
+
+# In[6]:
+
+
+# count number of cells per Metadata_treatment and ensure 'count' is Int64
+counts = cfret_screen_df["Metadata_treatment"].value_counts()
+counts = counts.with_columns(pl.col("count").cast(pl.Int64))
+counts = counts.sort("count", descending=True)
+counts = counts.to_pandas()
+
+
+# In[7]:
+
+
+# using numpy to calculate 10th percentile
+tenth_percentile = np.round(np.percentile(counts["count"], 10), 3)
+print(f"10th percentile of cell counts: {tenth_percentile} cells")
+
+
+# Plotting cell count distribution
+
+# In[8]:
+
+
+# setting seaborn style and figure size
+sns.set(style="whitegrid")
+plt.figure(figsize=(12, 6), dpi=200)
+
+# plot histogram with seaborn
+ax = sns.histplot(data=counts, x="count", bins=100, color="skyblue", kde=True)
+
+# add 10th percentile vertical line and annotation (tenth_percentile already defined)
+ax.axvline(
+ x=tenth_percentile,
+ color="red",
+ linestyle="--",
+ linewidth=2,
+ label=f"10th percentile ({int(tenth_percentile)} cells)",
+)
+ymin, ymax = ax.get_ylim()
+ax.text(
+ tenth_percentile,
+ ymax * 0.9,
+ f"10th pct = {tenth_percentile:.0f}",
+ color="red",
+ rotation=90,
+ va="top",
+ ha="right",
+ backgroundcolor="white",
+)
+
+# labeling the plot
+ax.set_xlabel("Number of Cells")
+ax.set_ylabel("Metadata_treatment")
+ax.set_title("Cell Count per treeatment in CFRET screen")
+
+# adding legend
+ax.legend()
+
+# adjust layout
+plt.tight_layout()
+
+# save the plot
+plt.savefig(results_dir / "cell_count_per_treatment_cfret_screen.png", dpi=500)
+
+# display plot
+plt.show()
+
+
+# Removing cells under those specific treatments
+
+# In[9]:
+
+
+# remove treatments with cell counts below the 10th percentile
+kept_treatments = counts[counts["count"] >= tenth_percentile][
+ "Metadata_treatment"
+].tolist()
+cfret_screen_df = cfret_screen_df.filter(
+ pl.col("Metadata_treatment").is_in(kept_treatments)
+)
+
+# print the treatments that were removed
+removed_treatments = counts[counts["count"] < tenth_percentile][
+ "Metadata_treatment"
+].tolist()
+print(
+ "Removed treatments due to low cell counts (below 10th percentile):",
+ removed_treatments,
+)
+
+cfret_screen_df.head()
+
+
+# ## Buscar pipeline
+
+# Get on and off signatures
+
+# In[10]:
+
+
+# once the data is loaded, separate the controls
+# here we want the healthy DMSO cells to be the target since the screen consists
+# of failing cells treated with compounds
+healthy_ref_df = cfret_screen_df.filter(pl.col("Metadata_treatment") == "DMSO_heart_7")
+failing_ref_df = cfret_screen_df.filter(pl.col("Metadata_treatment") == "DMSO_heart_19")
+
+# creating signatures
+on_sigs, off_sigs, _ = get_signatures(
+ ref_profiles=healthy_ref_df,
+ exp_profiles=failing_ref_df,
+ morph_feats=cfret_screen_feats,
+ test_method="mann_whitney_u",
+)
+
+print("length of on and off signatures:", len(on_sigs), len(off_sigs))
+
+# save signatures
+signatures_dir = results_dir / "CFRet-screen-signatures.json"
+with open(signatures_dir, "w") as sig_file:
+ json.dump(
+ {"on_signatures": on_sigs, "off_signatures": off_sigs}, sig_file, indent=4
+ )
+
+
+# Assess heterogeneity
+
+# In[11]:
+
+
+# Convert raw feature space to PCA space that explains 95% of variance
+cfret_screen_pca_df = apply_pca(
+ profiles=cfret_screen_df,
+ meta_features=cfret_screen_meta,
+ morph_features=cfret_screen_feats,
+ var_explained=0.95,
+)
+
+# split meta and features again after PCA
+cfret_screen_pca_feats = cfret_screen_pca_df.drop(cfret_screen_meta).columns
+
+
+# In[ ]:
+
+
+# setting best params outputs
+cfret_screen_treatment_best_params_outpath = (
+ results_dir / "cfret_screen_treatment_clustering_params.json"
+).resolve()
+cfret_screen_treatment_cluster_df_outpath = (
+ results_dir / "cfret_screen_treatment_clustered.parquet"
+).resolve()
+
+# here we are clustering each treatment-heart combination
+# this will allow us to see how each heart responds to each treatment
+cfret_screen_treatment_clustered_df, cfret_screen_treatment_clustered_best_params = (
+ optimized_clustering(
+ profiles=cfret_screen_df,
+ meta_features=cfret_screen_meta,
+ morph_features=cfret_screen_feats,
+ treatment_col="Metadata_treatment",
+ param_grid=cfret_screen_cluster_param_grid,
+ n_trials=500,
+ n_jobs=-22,
+ study_name="CFReT_screen_clustering",
+ )
+)
+
+# save best params as json and dataframe as parquet
+cfret_screen_treatment_clustered_df.write_parquet(
+ cfret_screen_treatment_cluster_df_outpath
+)
+with open(cfret_screen_treatment_best_params_outpath, "w") as f:
+ json.dump(
+ cfret_screen_treatment_clustered_best_params,
+ f,
+ indent=4,
+ )
+
+
+# In[13]:
+
+
+# now merge the cluster labels back to the main dataframe
+cfret_screen_df = cfret_screen_df.join(
+ cfret_screen_treatment_clustered_df, on="Metadata_cell_id", how="left"
+)
+cfret_screen_df.head()
+
+
+# In[14]:
+
+
+treatment_phenotypic_dist_scores = measure_phenotypic_activity(
+ profiles=cfret_screen_df,
+ on_signature=on_sigs,
+ off_signature=off_sigs,
+ ref_treatment="DMSO_heart_7",
+ cluster_col="Metadata_cluster_id",
+ treatment_col=treatment_col,
+)
+
+# save those as csv files
+treatment_phenotypic_dist_scores.write_csv(
+ results_dir / "cfret_screen_treatment_phenotypic_dist_scores.csv"
+)
+
+
+# In[15]:
+
+
+treatment_rankings = identify_compound_hit(
+ distance_df=treatment_phenotypic_dist_scores, method="weighted_sum"
+)
+
+# save as csv files
+treatment_rankings.write_csv(results_dir / "cfret_screen_treatment_rankings.csv")
+
+
+# In[16]:
+
+
+treatment_phenotypic_dist_scores
diff --git a/poetry.lock b/poetry.lock
index 4863766..261e9d8 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -3,18 +3,18 @@
[metadata]
lock-version = "2.1"
python-versions = ">=3.10,<3.14"
-content-hash = "b864f6c26ead9c23fb27c4bc21744c1337d2ebba342b64c45738e2adc0837164"
+content-hash = "654eaf9cf52f7f9d97f18d036264e4254b1875420c9bd56b5dee4307e97b3d1e"
[[package]]
name = "alembic"
-version = "1.16.5"
+version = "1.17.0"
description = "A database migration tool for SQLAlchemy."
optional = false
-python-versions = ">=3.9"
+python-versions = ">=3.10"
groups = ["main"]
files = [
- {file = "alembic-1.16.5-py3-none-any.whl", hash = "sha256:e845dfe090c5ffa7b92593ae6687c5cb1a101e91fa53868497dbd79847f9dbe3"},
- {file = "alembic-1.16.5.tar.gz", hash = "sha256:a88bb7f6e513bd4301ecf4c7f2206fe93f9913f9b48dac3b78babde2d6fe765e"}
+ {file = "alembic-1.17.0-py3-none-any.whl", hash = "sha256:80523bc437d41b35c5db7e525ad9d908f79de65c27d6a5a5eab6df348a352d99"},
+ {file = "alembic-1.17.0.tar.gz", hash = "sha256:4652a0b3e19616b57d652b82bfa5e38bf5dbea0813eed971612671cb9e90c0fe"}
]
[package.dependencies]
@@ -61,15 +61,15 @@ test = ["awkward (>=2.3)", "boltons", "dask[array] (>=2022.09.2,<2024.8.dev0 ||
[[package]]
name = "anndata"
-version = "0.12.2"
+version = "0.12.3"
description = "Annotated data."
optional = false
python-versions = ">=3.11"
groups = ["main"]
markers = "python_version >= \"3.11\""
files = [
- {file = "anndata-0.12.2-py3-none-any.whl", hash = "sha256:aa3c28b77e53a004b584780ca76652aa51694ca2ad32d27ce22e07227254a62a"},
- {file = "anndata-0.12.2.tar.gz", hash = "sha256:ecb3e0613585f5b464d0d3cfb0043a981b2eb92efaa90aae9042dd3e289c4a0a"}
+ {file = "anndata-0.12.3-py3-none-any.whl", hash = "sha256:81eddb7114401d999002441a3badf0f9ddc88f6f0f15d56890435d4e64efd311"},
+ {file = "anndata-0.12.3.tar.gz", hash = "sha256:1ae821ae90d13b3aeedc9831b6ce4f6aa9d4cccf3dcbe398ae9424cf3df7bafd"}
]
[package.dependencies]
@@ -86,25 +86,25 @@ zarr = ">=2.18.7,<3.0.dev0 || >=3.1.dev0"
[package.extras]
cu11 = ["cupy-cuda11x"]
cu12 = ["cupy-cuda12x"]
-dask = ["dask[array] (>=2023.5.1,<2024.8.dev0 || >=2024.10.dev0,<2025.2.0)"]
-dev = ["hatch-vcs", "towncrier (>=24.8.0)"]
+dask = ["dask[array] (>=2023.5.1,<2024.8.dev0 || >=2024.10.dev0,<2025.2.dev0 || >=2025.9.dev0)"]
+dev = ["towncrier (>=24.8.0)"]
dev-doc = ["towncrier (>=24.8.0)"]
-doc = ["awkward (>=2.3)", "dask[array] (>=2023.5.1,<2024.8.dev0 || >=2024.10.dev0,<2025.2.0)", "ipython", "myst-nb", "myst-parser", "scanpydoc[theme,typehints] (>=0.15.3)", "sphinx (>=8.2.1)", "sphinx-autodoc-typehints (>=2.2.0)", "sphinx-book-theme (>=1.1.0)", "sphinx-copybutton", "sphinx-design (>=0.5.0)", "sphinx-issues (>=5.0.1)", "sphinx-toolbox (>=3.8.0)", "sphinxext-opengraph", "towncrier (>=24.8.0)"]
+doc = ["awkward (>=2.3)", "dask[array] (>=2023.5.1,<2024.8.dev0 || >=2024.10.dev0,<2025.2.dev0 || >=2025.9.dev0)", "ipython", "myst-nb", "myst-parser", "scanpydoc[theme,typehints] (>=0.15.3)", "sphinx (>=8.2.1)", "sphinx-autodoc-typehints (>=2.2.0)", "sphinx-book-theme (>=1.1.0)", "sphinx-copybutton", "sphinx-design (>=0.5.0)", "sphinx-issues (>=5.0.1)", "sphinx-toolbox (>=3.8.0)", "sphinxext-opengraph", "towncrier (>=24.8.0)"]
gpu = ["cupy"]
-lazy = ["aiohttp", "dask[array] (>=2023.5.1,<2024.8.dev0 || >=2024.10.dev0,<2025.2.0)", "requests", "xarray (>=2025.06.1)"]
-test = ["aiohttp", "awkward (>=2.3.2)", "boltons", "dask[array] (>=2023.5.1,<2024.8.dev0 || >=2024.10.dev0,<2025.2.0)", "dask[distributed]", "filelock", "httpx (<1.0)", "joblib", "loompy (>=3.0.5)", "matplotlib", "openpyxl", "pyarrow (<21)", "pytest (>=8.2,<8.3.4)", "pytest-cov", "pytest-memray", "pytest-mock", "pytest-randomly", "pytest-xdist[psutil]", "requests", "scanpy (>=1.10)", "scikit-learn", "xarray (>=2025.06.1)"]
-test-min = ["awkward (>=2.3.2)", "boltons", "dask[array] (>=2023.5.1,<2024.8.dev0 || >=2024.10.dev0,<2025.2.0)", "dask[distributed]", "filelock", "httpx (<1.0)", "joblib", "loompy (>=3.0.5)", "matplotlib", "openpyxl", "pyarrow (<21)", "pytest (>=8.2,<8.3.4)", "pytest-cov", "pytest-memray", "pytest-mock", "pytest-randomly", "pytest-xdist[psutil]", "scanpy (>=1.10)", "scikit-learn"]
+lazy = ["aiohttp", "dask[array] (>=2023.5.1,<2024.8.dev0 || >=2024.10.dev0,<2025.2.dev0 || >=2025.9.dev0)", "requests", "xarray (>=2025.06.1)"]
+test = ["aiohttp", "awkward (>=2.3.2)", "boltons", "dask[array] (>=2023.5.1,<2024.8.dev0 || >=2024.10.dev0,<2025.2.dev0 || >=2025.9.dev0)", "dask[distributed]", "filelock", "httpx (<1.0)", "joblib", "loompy (>=3.0.5)", "matplotlib", "openpyxl", "pyarrow (<21)", "pytest (>=8.2,<8.3.4)", "pytest-cov", "pytest-memray", "pytest-mock", "pytest-randomly", "pytest-xdist[psutil]", "requests", "scanpy (>=1.10)", "scikit-learn", "xarray (>=2025.06.1)"]
+test-min = ["awkward (>=2.3.2)", "boltons", "dask[array] (>=2023.5.1,<2024.8.dev0 || >=2024.10.dev0,<2025.2.dev0 || >=2025.9.dev0)", "dask[distributed]", "filelock", "httpx (<1.0)", "joblib", "loompy (>=3.0.5)", "matplotlib", "openpyxl", "pyarrow (<21)", "pytest (>=8.2,<8.3.4)", "pytest-cov", "pytest-memray", "pytest-mock", "pytest-randomly", "pytest-xdist[psutil]", "scanpy (>=1.10)", "scikit-learn"]
[[package]]
name = "anyio"
-version = "4.9.0"
-description = "High level compatibility layer for multiple asynchronous event loop implementations"
+version = "4.11.0"
+description = "High-level concurrency and networking framework on top of asyncio or Trio"
optional = false
python-versions = ">=3.9"
groups = ["main"]
files = [
- {file = "anyio-4.9.0-py3-none-any.whl", hash = "sha256:9f76d541cad6e36af7beb62e978876f3b41e3e04f2c1fbf0884604c0a9c4d93c"},
- {file = "anyio-4.9.0.tar.gz", hash = "sha256:673c0c244e15788651a4ff38710fea9675823028a6f08a5eda409e0c9840a028"}
+ {file = "anyio-4.11.0-py3-none-any.whl", hash = "sha256:0287e96f4d26d4149305414d4e3bc32f0dcd0862365a4bddea19d7a1ec38c4fc"},
+ {file = "anyio-4.11.0.tar.gz", hash = "sha256:82a8d0b81e318cc5ce71a5f1f8b5c4e63619620b63141ef8c995fa0db95a57c4"}
]
[package.dependencies]
@@ -114,9 +114,7 @@ sniffio = ">=1.1"
typing_extensions = {version = ">=4.5", markers = "python_version < \"3.13\""}
[package.extras]
-doc = ["Sphinx (>=8.2,<9.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx_rtd_theme"]
-test = ["anyio[trio]", "blockbuster (>=1.5.23)", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "trustme", "truststore (>=0.9.1) ; python_version >= \"3.10\"", "uvloop (>=0.21) ; platform_python_implementation == \"CPython\" and platform_system != \"Windows\" and python_version < \"3.14\""]
-trio = ["trio (>=0.26.1)"]
+trio = ["trio (>=0.31.0)"]
[[package]]
name = "appnope"
@@ -148,41 +146,42 @@ argon2-cffi-bindings = "*"
[[package]]
name = "argon2-cffi-bindings"
-version = "21.2.0"
+version = "25.1.0"
description = "Low-level CFFI bindings for Argon2"
optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.9"
groups = ["main"]
files = [
- {file = "argon2-cffi-bindings-21.2.0.tar.gz", hash = "sha256:bb89ceffa6c791807d1305ceb77dbfacc5aa499891d2c55661c6459651fc39e3"},
- {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ccb949252cb2ab3a08c02024acb77cfb179492d5701c7cbdbfd776124d4d2367"},
- {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9524464572e12979364b7d600abf96181d3541da11e23ddf565a32e70bd4dc0d"},
- {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b746dba803a79238e925d9046a63aa26bf86ab2a2fe74ce6b009a1c3f5c8f2ae"},
- {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58ed19212051f49a523abb1dbe954337dc82d947fb6e5a0da60f7c8471a8476c"},
- {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:bd46088725ef7f58b5a1ef7ca06647ebaf0eb4baff7d1d0d177c6cc8744abd86"},
- {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_i686.whl", hash = "sha256:8cd69c07dd875537a824deec19f978e0f2078fdda07fd5c42ac29668dda5f40f"},
- {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:f1152ac548bd5b8bcecfb0b0371f082037e47128653df2e8ba6e914d384f3c3e"},
- {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win32.whl", hash = "sha256:603ca0aba86b1349b147cab91ae970c63118a0f30444d4bc80355937c950c082"},
- {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win_amd64.whl", hash = "sha256:b2ef1c30440dbbcba7a5dc3e319408b59676e2e039e2ae11a8775ecf482b192f"},
- {file = "argon2_cffi_bindings-21.2.0-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e415e3f62c8d124ee16018e491a009937f8cf7ebf5eb430ffc5de21b900dad93"},
- {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3e385d1c39c520c08b53d63300c3ecc28622f076f4c2b0e6d7e796e9f6502194"},
- {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c3e3cc67fdb7d82c4718f19b4e7a87123caf8a93fde7e23cf66ac0337d3cb3f"},
- {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a22ad9800121b71099d0fb0a65323810a15f2e292f2ba450810a7316e128ee5"},
- {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f9f8b450ed0547e3d473fdc8612083fd08dd2120d6ac8f73828df9b7d45bb351"},
- {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:93f9bf70084f97245ba10ee36575f0c3f1e7d7724d67d8e5b08e61787c320ed7"},
- {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3b9ef65804859d335dc6b31582cad2c5166f0c3e7975f324d9ffaa34ee7e6583"},
- {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4966ef5848d820776f5f562a7d45fdd70c2f330c961d0d745b784034bd9f48d"},
- {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20ef543a89dee4db46a1a6e206cd015360e5a75822f76df533845c3cbaf72670"},
- {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed2937d286e2ad0cc79a7087d3c272832865f779430e0cc2b4f3718d3159b0cb"},
- {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5e00316dabdaea0b2dd82d141cc66889ced0cdcbfa599e8b471cf22c620c329a"}
+ {file = "argon2_cffi_bindings-25.1.0-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:3d3f05610594151994ca9ccb3c771115bdb4daef161976a266f0dd8aa9996b8f"},
+ {file = "argon2_cffi_bindings-25.1.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:8b8efee945193e667a396cbc7b4fb7d357297d6234d30a489905d96caabde56b"},
+ {file = "argon2_cffi_bindings-25.1.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:3c6702abc36bf3ccba3f802b799505def420a1b7039862014a65db3205967f5a"},
+ {file = "argon2_cffi_bindings-25.1.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a1c70058c6ab1e352304ac7e3b52554daadacd8d453c1752e547c76e9c99ac44"},
+ {file = "argon2_cffi_bindings-25.1.0-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e2fd3bfbff3c5d74fef31a722f729bf93500910db650c925c2d6ef879a7e51cb"},
+ {file = "argon2_cffi_bindings-25.1.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:c4f9665de60b1b0e99bcd6be4f17d90339698ce954cfd8d9cf4f91c995165a92"},
+ {file = "argon2_cffi_bindings-25.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ba92837e4a9aa6a508c8d2d7883ed5a8f6c308c89a4790e1e447a220deb79a85"},
+ {file = "argon2_cffi_bindings-25.1.0-cp314-cp314t-win32.whl", hash = "sha256:84a461d4d84ae1295871329b346a97f68eade8c53b6ed9a7ca2d7467f3c8ff6f"},
+ {file = "argon2_cffi_bindings-25.1.0-cp314-cp314t-win_amd64.whl", hash = "sha256:b55aec3565b65f56455eebc9b9f34130440404f27fe21c3b375bf1ea4d8fbae6"},
+ {file = "argon2_cffi_bindings-25.1.0-cp314-cp314t-win_arm64.whl", hash = "sha256:87c33a52407e4c41f3b70a9c2d3f6056d88b10dad7695be708c5021673f55623"},
+ {file = "argon2_cffi_bindings-25.1.0-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:aecba1723ae35330a008418a91ea6cfcedf6d31e5fbaa056a166462ff066d500"},
+ {file = "argon2_cffi_bindings-25.1.0-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:2630b6240b495dfab90aebe159ff784d08ea999aa4b0d17efa734055a07d2f44"},
+ {file = "argon2_cffi_bindings-25.1.0-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:7aef0c91e2c0fbca6fc68e7555aa60ef7008a739cbe045541e438373bc54d2b0"},
+ {file = "argon2_cffi_bindings-25.1.0-cp39-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1e021e87faa76ae0d413b619fe2b65ab9a037f24c60a1e6cc43457ae20de6dc6"},
+ {file = "argon2_cffi_bindings-25.1.0-cp39-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d3e924cfc503018a714f94a49a149fdc0b644eaead5d1f089330399134fa028a"},
+ {file = "argon2_cffi_bindings-25.1.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:c87b72589133f0346a1cb8d5ecca4b933e3c9b64656c9d175270a000e73b288d"},
+ {file = "argon2_cffi_bindings-25.1.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:1db89609c06afa1a214a69a462ea741cf735b29a57530478c06eb81dd403de99"},
+ {file = "argon2_cffi_bindings-25.1.0-cp39-abi3-win32.whl", hash = "sha256:473bcb5f82924b1becbb637b63303ec8d10e84c8d241119419897a26116515d2"},
+ {file = "argon2_cffi_bindings-25.1.0-cp39-abi3-win_amd64.whl", hash = "sha256:a98cd7d17e9f7ce244c0803cad3c23a7d379c301ba618a5fa76a67d116618b98"},
+ {file = "argon2_cffi_bindings-25.1.0-cp39-abi3-win_arm64.whl", hash = "sha256:b0fdbcf513833809c882823f98dc2f931cf659d9a1429616ac3adebb49f5db94"},
+ {file = "argon2_cffi_bindings-25.1.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:6dca33a9859abf613e22733131fc9194091c1fa7cb3e131c143056b4856aa47e"},
+ {file = "argon2_cffi_bindings-25.1.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:21378b40e1b8d1655dd5310c84a40fc19a9aa5e6366e835ceb8576bf0fea716d"},
+ {file = "argon2_cffi_bindings-25.1.0-pp310-pypy310_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5d588dec224e2a83edbdc785a5e6f3c6cd736f46bfd4b441bbb5aa1f5085e584"},
+ {file = "argon2_cffi_bindings-25.1.0-pp310-pypy310_pp73-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5acb4e41090d53f17ca1110c3427f0a130f944b896fc8c83973219c97f57b690"},
+ {file = "argon2_cffi_bindings-25.1.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:da0c79c23a63723aa5d782250fbf51b768abca630285262fb5144ba5ae01e520"},
+ {file = "argon2_cffi_bindings-25.1.0.tar.gz", hash = "sha256:b957f3e6ea4d55d820e40ff76f450952807013d361a65d7f28acc0acbf29229d"}
]
[package.dependencies]
-cffi = ">=1.0.1"
-
-[package.extras]
-dev = ["cogapp", "pre-commit", "pytest", "wheel"]
-tests = ["pytest"]
+cffi = {version = ">=1.0.1", markers = "python_version < \"3.14\""}
[[package]]
name = "array-api-compat"
@@ -260,24 +259,16 @@ typing_extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""}
[[package]]
name = "attrs"
-version = "25.3.0"
+version = "25.4.0"
description = "Classes Without Boilerplate"
optional = false
-python-versions = ">=3.8"
+python-versions = ">=3.9"
groups = ["main"]
files = [
- {file = "attrs-25.3.0-py3-none-any.whl", hash = "sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3"},
- {file = "attrs-25.3.0.tar.gz", hash = "sha256:75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b"}
+ {file = "attrs-25.4.0-py3-none-any.whl", hash = "sha256:adcf7e2a1fb3b36ac48d97835bb6d8ade15b8dcce26aba8bf1d14847b57a3373"},
+ {file = "attrs-25.4.0.tar.gz", hash = "sha256:16d5969b87f0859ef33a48b35d55ac1be6e42ae49d5e853b597db70c35c57e11"}
]
-[package.extras]
-benchmark = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"]
-cov = ["cloudpickle ; platform_python_implementation == \"CPython\"", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"]
-dev = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pre-commit-uv", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"]
-docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier"]
-tests = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"]
-tests-mypy = ["mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\""]
-
[[package]]
name = "babel"
version = "2.17.0"
@@ -314,14 +305,14 @@ test-tox-coverage = ["coverage (>=5.5)"]
[[package]]
name = "beautifulsoup4"
-version = "4.13.4"
+version = "4.14.2"
description = "Screen-scraping library"
optional = false
python-versions = ">=3.7.0"
groups = ["main"]
files = [
- {file = "beautifulsoup4-4.13.4-py3-none-any.whl", hash = "sha256:9bbbb14bfde9d79f38b8cd5f8c7c85f4b8f2523190ebed90e950a8dea4cb1c4b"},
- {file = "beautifulsoup4-4.13.4.tar.gz", hash = "sha256:dbb3c4e1ceae6aefebdaf2423247260cd062430a410e38c66f2baa50a8437195"}
+ {file = "beautifulsoup4-4.14.2-py3-none-any.whl", hash = "sha256:5ef6fa3a8cbece8488d66985560f97ed091e22bbc4e9c2338508a9d5de6d4515"},
+ {file = "beautifulsoup4-4.14.2.tar.gz", hash = "sha256:2a98ab9f944a11acee9cc848508ec28d9228abfd522ef0fad6a02a72e0ded69e"}
]
[package.dependencies]
@@ -356,95 +347,112 @@ css = ["tinycss2 (>=1.1.0,<1.5)"]
[[package]]
name = "certifi"
-version = "2025.6.15"
+version = "2025.10.5"
description = "Python package for providing Mozilla's CA Bundle."
optional = false
python-versions = ">=3.7"
groups = ["main"]
files = [
- {file = "certifi-2025.6.15-py3-none-any.whl", hash = "sha256:2e0c7ce7cb5d8f8634ca55d2ba7e6ec2689a2fd6537d8dec1296a477a4910057"},
- {file = "certifi-2025.6.15.tar.gz", hash = "sha256:d747aa5a8b9bbbb1bb8c22bb13e22bd1f18e9796defa16bab421f7f7a317323b"}
+ {file = "certifi-2025.10.5-py3-none-any.whl", hash = "sha256:0f212c2744a9bb6de0c56639a6f68afe01ecd92d91f14ae897c4fe7bbeeef0de"},
+ {file = "certifi-2025.10.5.tar.gz", hash = "sha256:47c09d31ccf2acf0be3f701ea53595ee7e0b8fa08801c6624be771df09ae7b43"}
]
[[package]]
name = "cffi"
-version = "1.17.1"
+version = "2.0.0"
description = "Foreign Function Interface for Python calling C code."
optional = false
-python-versions = ">=3.8"
+python-versions = ">=3.9"
groups = ["main"]
files = [
- {file = "cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14"},
- {file = "cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67"},
- {file = "cffi-1.17.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382"},
- {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702"},
- {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3"},
- {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6"},
- {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17"},
- {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8"},
- {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e"},
- {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be"},
- {file = "cffi-1.17.1-cp310-cp310-win32.whl", hash = "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c"},
- {file = "cffi-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15"},
- {file = "cffi-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401"},
- {file = "cffi-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf"},
- {file = "cffi-1.17.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4"},
- {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41"},
- {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1"},
- {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6"},
- {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d"},
- {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6"},
- {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f"},
- {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b"},
- {file = "cffi-1.17.1-cp311-cp311-win32.whl", hash = "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655"},
- {file = "cffi-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0"},
- {file = "cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4"},
- {file = "cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c"},
- {file = "cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36"},
- {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5"},
- {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff"},
- {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99"},
- {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93"},
- {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3"},
- {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8"},
- {file = "cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65"},
- {file = "cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903"},
- {file = "cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e"},
- {file = "cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2"},
- {file = "cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3"},
- {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683"},
- {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5"},
- {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4"},
- {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd"},
- {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed"},
- {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9"},
- {file = "cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d"},
- {file = "cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a"},
- {file = "cffi-1.17.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b"},
- {file = "cffi-1.17.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964"},
- {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9"},
- {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc"},
- {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c"},
- {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1"},
- {file = "cffi-1.17.1-cp38-cp38-win32.whl", hash = "sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8"},
- {file = "cffi-1.17.1-cp38-cp38-win_amd64.whl", hash = "sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1"},
- {file = "cffi-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16"},
- {file = "cffi-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36"},
- {file = "cffi-1.17.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8"},
- {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576"},
- {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87"},
- {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0"},
- {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3"},
- {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595"},
- {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a"},
- {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e"},
- {file = "cffi-1.17.1-cp39-cp39-win32.whl", hash = "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7"},
- {file = "cffi-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662"},
- {file = "cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824"}
+ {file = "cffi-2.0.0-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:0cf2d91ecc3fcc0625c2c530fe004f82c110405f101548512cce44322fa8ac44"},
+ {file = "cffi-2.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f73b96c41e3b2adedc34a7356e64c8eb96e03a3782b535e043a986276ce12a49"},
+ {file = "cffi-2.0.0-cp310-cp310-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:53f77cbe57044e88bbd5ed26ac1d0514d2acf0591dd6bb02a3ae37f76811b80c"},
+ {file = "cffi-2.0.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:3e837e369566884707ddaf85fc1744b47575005c0a229de3327f8f9a20f4efeb"},
+ {file = "cffi-2.0.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:5eda85d6d1879e692d546a078b44251cdd08dd1cfb98dfb77b670c97cee49ea0"},
+ {file = "cffi-2.0.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:9332088d75dc3241c702d852d4671613136d90fa6881da7d770a483fd05248b4"},
+ {file = "cffi-2.0.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fc7de24befaeae77ba923797c7c87834c73648a05a4bde34b3b7e5588973a453"},
+ {file = "cffi-2.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:cf364028c016c03078a23b503f02058f1814320a56ad535686f90565636a9495"},
+ {file = "cffi-2.0.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e11e82b744887154b182fd3e7e8512418446501191994dbf9c9fc1f32cc8efd5"},
+ {file = "cffi-2.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8ea985900c5c95ce9db1745f7933eeef5d314f0565b27625d9a10ec9881e1bfb"},
+ {file = "cffi-2.0.0-cp310-cp310-win32.whl", hash = "sha256:1f72fb8906754ac8a2cc3f9f5aaa298070652a0ffae577e0ea9bd480dc3c931a"},
+ {file = "cffi-2.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:b18a3ed7d5b3bd8d9ef7a8cb226502c6bf8308df1525e1cc676c3680e7176739"},
+ {file = "cffi-2.0.0-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:b4c854ef3adc177950a8dfc81a86f5115d2abd545751a304c5bcf2c2c7283cfe"},
+ {file = "cffi-2.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2de9a304e27f7596cd03d16f1b7c72219bd944e99cc52b84d0145aefb07cbd3c"},
+ {file = "cffi-2.0.0-cp311-cp311-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:baf5215e0ab74c16e2dd324e8ec067ef59e41125d3eade2b863d294fd5035c92"},
+ {file = "cffi-2.0.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:730cacb21e1bdff3ce90babf007d0a0917cc3e6492f336c2f0134101e0944f93"},
+ {file = "cffi-2.0.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:6824f87845e3396029f3820c206e459ccc91760e8fa24422f8b0c3d1731cbec5"},
+ {file = "cffi-2.0.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:9de40a7b0323d889cf8d23d1ef214f565ab154443c42737dfe52ff82cf857664"},
+ {file = "cffi-2.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8941aaadaf67246224cee8c3803777eed332a19d909b47e29c9842ef1e79ac26"},
+ {file = "cffi-2.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:a05d0c237b3349096d3981b727493e22147f934b20f6f125a3eba8f994bec4a9"},
+ {file = "cffi-2.0.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:94698a9c5f91f9d138526b48fe26a199609544591f859c870d477351dc7b2414"},
+ {file = "cffi-2.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:5fed36fccc0612a53f1d4d9a816b50a36702c28a2aa880cb8a122b3466638743"},
+ {file = "cffi-2.0.0-cp311-cp311-win32.whl", hash = "sha256:c649e3a33450ec82378822b3dad03cc228b8f5963c0c12fc3b1e0ab940f768a5"},
+ {file = "cffi-2.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:66f011380d0e49ed280c789fbd08ff0d40968ee7b665575489afa95c98196ab5"},
+ {file = "cffi-2.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:c6638687455baf640e37344fe26d37c404db8b80d037c3d29f58fe8d1c3b194d"},
+ {file = "cffi-2.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6d02d6655b0e54f54c4ef0b94eb6be0607b70853c45ce98bd278dc7de718be5d"},
+ {file = "cffi-2.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8eca2a813c1cb7ad4fb74d368c2ffbbb4789d377ee5bb8df98373c2cc0dee76c"},
+ {file = "cffi-2.0.0-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:21d1152871b019407d8ac3985f6775c079416c282e431a4da6afe7aefd2bccbe"},
+ {file = "cffi-2.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b21e08af67b8a103c71a250401c78d5e0893beff75e28c53c98f4de42f774062"},
+ {file = "cffi-2.0.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:1e3a615586f05fc4065a8b22b8152f0c1b00cdbc60596d187c2a74f9e3036e4e"},
+ {file = "cffi-2.0.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:81afed14892743bbe14dacb9e36d9e0e504cd204e0b165062c488942b9718037"},
+ {file = "cffi-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3e17ed538242334bf70832644a32a7aae3d83b57567f9fd60a26257e992b79ba"},
+ {file = "cffi-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3925dd22fa2b7699ed2617149842d2e6adde22b262fcbfada50e3d195e4b3a94"},
+ {file = "cffi-2.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2c8f814d84194c9ea681642fd164267891702542f028a15fc97d4674b6206187"},
+ {file = "cffi-2.0.0-cp312-cp312-win32.whl", hash = "sha256:da902562c3e9c550df360bfa53c035b2f241fed6d9aef119048073680ace4a18"},
+ {file = "cffi-2.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:da68248800ad6320861f129cd9c1bf96ca849a2771a59e0344e88681905916f5"},
+ {file = "cffi-2.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:4671d9dd5ec934cb9a73e7ee9676f9362aba54f7f34910956b84d727b0d73fb6"},
+ {file = "cffi-2.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:00bdf7acc5f795150faa6957054fbbca2439db2f775ce831222b66f192f03beb"},
+ {file = "cffi-2.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:45d5e886156860dc35862657e1494b9bae8dfa63bf56796f2fb56e1679fc0bca"},
+ {file = "cffi-2.0.0-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:07b271772c100085dd28b74fa0cd81c8fb1a3ba18b21e03d7c27f3436a10606b"},
+ {file = "cffi-2.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d48a880098c96020b02d5a1f7d9251308510ce8858940e6fa99ece33f610838b"},
+ {file = "cffi-2.0.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f93fd8e5c8c0a4aa1f424d6173f14a892044054871c771f8566e4008eaa359d2"},
+ {file = "cffi-2.0.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:dd4f05f54a52fb558f1ba9f528228066954fee3ebe629fc1660d874d040ae5a3"},
+ {file = "cffi-2.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c8d3b5532fc71b7a77c09192b4a5a200ea992702734a2e9279a37f2478236f26"},
+ {file = "cffi-2.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d9b29c1f0ae438d5ee9acb31cadee00a58c46cc9c0b2f9038c6b0b3470877a8c"},
+ {file = "cffi-2.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6d50360be4546678fc1b79ffe7a66265e28667840010348dd69a314145807a1b"},
+ {file = "cffi-2.0.0-cp313-cp313-win32.whl", hash = "sha256:74a03b9698e198d47562765773b4a8309919089150a0bb17d829ad7b44b60d27"},
+ {file = "cffi-2.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:19f705ada2530c1167abacb171925dd886168931e0a7b78f5bffcae5c6b5be75"},
+ {file = "cffi-2.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:256f80b80ca3853f90c21b23ee78cd008713787b1b1e93eae9f3d6a7134abd91"},
+ {file = "cffi-2.0.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fc33c5141b55ed366cfaad382df24fe7dcbc686de5be719b207bb248e3053dc5"},
+ {file = "cffi-2.0.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c654de545946e0db659b3400168c9ad31b5d29593291482c43e3564effbcee13"},
+ {file = "cffi-2.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:24b6f81f1983e6df8db3adc38562c83f7d4a0c36162885ec7f7b77c7dcbec97b"},
+ {file = "cffi-2.0.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:12873ca6cb9b0f0d3a0da705d6086fe911591737a59f28b7936bdfed27c0d47c"},
+ {file = "cffi-2.0.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:d9b97165e8aed9272a6bb17c01e3cc5871a594a446ebedc996e2397a1c1ea8ef"},
+ {file = "cffi-2.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:afb8db5439b81cf9c9d0c80404b60c3cc9c3add93e114dcae767f1477cb53775"},
+ {file = "cffi-2.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:737fe7d37e1a1bffe70bd5754ea763a62a066dc5913ca57e957824b72a85e205"},
+ {file = "cffi-2.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:38100abb9d1b1435bc4cc340bb4489635dc2f0da7456590877030c9b3d40b0c1"},
+ {file = "cffi-2.0.0-cp314-cp314-win32.whl", hash = "sha256:087067fa8953339c723661eda6b54bc98c5625757ea62e95eb4898ad5e776e9f"},
+ {file = "cffi-2.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:203a48d1fb583fc7d78a4c6655692963b860a417c0528492a6bc21f1aaefab25"},
+ {file = "cffi-2.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:dbd5c7a25a7cb98f5ca55d258b103a2054f859a46ae11aaf23134f9cc0d356ad"},
+ {file = "cffi-2.0.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:9a67fc9e8eb39039280526379fb3a70023d77caec1852002b4da7e8b270c4dd9"},
+ {file = "cffi-2.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7a66c7204d8869299919db4d5069a82f1561581af12b11b3c9f48c584eb8743d"},
+ {file = "cffi-2.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7cc09976e8b56f8cebd752f7113ad07752461f48a58cbba644139015ac24954c"},
+ {file = "cffi-2.0.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:92b68146a71df78564e4ef48af17551a5ddd142e5190cdf2c5624d0c3ff5b2e8"},
+ {file = "cffi-2.0.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:b1e74d11748e7e98e2f426ab176d4ed720a64412b6a15054378afdb71e0f37dc"},
+ {file = "cffi-2.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:28a3a209b96630bca57cce802da70c266eb08c6e97e5afd61a75611ee6c64592"},
+ {file = "cffi-2.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:7553fb2090d71822f02c629afe6042c299edf91ba1bf94951165613553984512"},
+ {file = "cffi-2.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:6c6c373cfc5c83a975506110d17457138c8c63016b563cc9ed6e056a82f13ce4"},
+ {file = "cffi-2.0.0-cp314-cp314t-win32.whl", hash = "sha256:1fc9ea04857caf665289b7a75923f2c6ed559b8298a1b8c49e59f7dd95c8481e"},
+ {file = "cffi-2.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:d68b6cef7827e8641e8ef16f4494edda8b36104d79773a334beaa1e3521430f6"},
+ {file = "cffi-2.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0a1527a803f0a659de1af2e1fd700213caba79377e27e4693648c2923da066f9"},
+ {file = "cffi-2.0.0-cp39-cp39-macosx_10_13_x86_64.whl", hash = "sha256:fe562eb1a64e67dd297ccc4f5addea2501664954f2692b69a76449ec7913ecbf"},
+ {file = "cffi-2.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:de8dad4425a6ca6e4e5e297b27b5c824ecc7581910bf9aee86cb6835e6812aa7"},
+ {file = "cffi-2.0.0-cp39-cp39-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:4647afc2f90d1ddd33441e5b0e85b16b12ddec4fca55f0d9671fef036ecca27c"},
+ {file = "cffi-2.0.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:3f4d46d8b35698056ec29bca21546e1551a205058ae1a181d871e278b0b28165"},
+ {file = "cffi-2.0.0-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:e6e73b9e02893c764e7e8d5bb5ce277f1a009cd5243f8228f75f842bf937c534"},
+ {file = "cffi-2.0.0-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:cb527a79772e5ef98fb1d700678fe031e353e765d1ca2d409c92263c6d43e09f"},
+ {file = "cffi-2.0.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:61d028e90346df14fedc3d1e5441df818d095f3b87d286825dfcbd6459b7ef63"},
+ {file = "cffi-2.0.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0f6084a0ea23d05d20c3edcda20c3d006f9b6f3fefeac38f59262e10cef47ee2"},
+ {file = "cffi-2.0.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1cd13c99ce269b3ed80b417dcd591415d3372bcac067009b6e0f59c7d4015e65"},
+ {file = "cffi-2.0.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:89472c9762729b5ae1ad974b777416bfda4ac5642423fa93bd57a09204712322"},
+ {file = "cffi-2.0.0-cp39-cp39-win32.whl", hash = "sha256:2081580ebb843f759b9f617314a24ed5738c51d2aee65d31e02f6f7a2b97707a"},
+ {file = "cffi-2.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:b882b3df248017dba09d6b16defe9b5c407fe32fc7c65a9c69798e6175601be9"},
+ {file = "cffi-2.0.0.tar.gz", hash = "sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529"}
]
[package.dependencies]
-pycparser = "*"
+pycparser = {version = "*", markers = "implementation_name != \"PyPy\""}
[[package]]
name = "cfgv"
@@ -460,104 +468,125 @@ files = [
[[package]]
name = "charset-normalizer"
-version = "3.4.2"
+version = "3.4.4"
description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
optional = false
python-versions = ">=3.7"
groups = ["main"]
files = [
- {file = "charset_normalizer-3.4.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7c48ed483eb946e6c04ccbe02c6b4d1d48e51944b6db70f697e089c193404941"},
- {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2d318c11350e10662026ad0eb71bb51c7812fc8590825304ae0bdd4ac283acd"},
- {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9cbfacf36cb0ec2897ce0ebc5d08ca44213af24265bd56eca54bee7923c48fd6"},
- {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:18dd2e350387c87dabe711b86f83c9c78af772c748904d372ade190b5c7c9d4d"},
- {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8075c35cd58273fee266c58c0c9b670947c19df5fb98e7b66710e04ad4e9ff86"},
- {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5bf4545e3b962767e5c06fe1738f951f77d27967cb2caa64c28be7c4563e162c"},
- {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:7a6ab32f7210554a96cd9e33abe3ddd86732beeafc7a28e9955cdf22ffadbab0"},
- {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:b33de11b92e9f75a2b545d6e9b6f37e398d86c3e9e9653c4864eb7e89c5773ef"},
- {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:8755483f3c00d6c9a77f490c17e6ab0c8729e39e6390328e42521ef175380ae6"},
- {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:68a328e5f55ec37c57f19ebb1fdc56a248db2e3e9ad769919a58672958e8f366"},
- {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:21b2899062867b0e1fde9b724f8aecb1af14f2778d69aacd1a5a1853a597a5db"},
- {file = "charset_normalizer-3.4.2-cp310-cp310-win32.whl", hash = "sha256:e8082b26888e2f8b36a042a58307d5b917ef2b1cacab921ad3323ef91901c71a"},
- {file = "charset_normalizer-3.4.2-cp310-cp310-win_amd64.whl", hash = "sha256:f69a27e45c43520f5487f27627059b64aaf160415589230992cec34c5e18a509"},
- {file = "charset_normalizer-3.4.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:be1e352acbe3c78727a16a455126d9ff83ea2dfdcbc83148d2982305a04714c2"},
- {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa88ca0b1932e93f2d961bf3addbb2db902198dca337d88c89e1559e066e7645"},
- {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d524ba3f1581b35c03cb42beebab4a13e6cdad7b36246bd22541fa585a56cccd"},
- {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28a1005facc94196e1fb3e82a3d442a9d9110b8434fc1ded7a24a2983c9888d8"},
- {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fdb20a30fe1175ecabed17cbf7812f7b804b8a315a25f24678bcdf120a90077f"},
- {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0f5d9ed7f254402c9e7d35d2f5972c9bbea9040e99cd2861bd77dc68263277c7"},
- {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:efd387a49825780ff861998cd959767800d54f8308936b21025326de4b5a42b9"},
- {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f0aa37f3c979cf2546b73e8222bbfa3dc07a641585340179d768068e3455e544"},
- {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:e70e990b2137b29dc5564715de1e12701815dacc1d056308e2b17e9095372a82"},
- {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0c8c57f84ccfc871a48a47321cfa49ae1df56cd1d965a09abe84066f6853b9c0"},
- {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6b66f92b17849b85cad91259efc341dce9c1af48e2173bf38a85c6329f1033e5"},
- {file = "charset_normalizer-3.4.2-cp311-cp311-win32.whl", hash = "sha256:daac4765328a919a805fa5e2720f3e94767abd632ae410a9062dff5412bae65a"},
- {file = "charset_normalizer-3.4.2-cp311-cp311-win_amd64.whl", hash = "sha256:e53efc7c7cee4c1e70661e2e112ca46a575f90ed9ae3fef200f2a25e954f4b28"},
- {file = "charset_normalizer-3.4.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0c29de6a1a95f24b9a1aa7aefd27d2487263f00dfd55a77719b530788f75cff7"},
- {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cddf7bd982eaa998934a91f69d182aec997c6c468898efe6679af88283b498d3"},
- {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcbe676a55d7445b22c10967bceaaf0ee69407fbe0ece4d032b6eb8d4565982a"},
- {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d41c4d287cfc69060fa91cae9683eacffad989f1a10811995fa309df656ec214"},
- {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e594135de17ab3866138f496755f302b72157d115086d100c3f19370839dd3a"},
- {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cf713fe9a71ef6fd5adf7a79670135081cd4431c2943864757f0fa3a65b1fafd"},
- {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a370b3e078e418187da8c3674eddb9d983ec09445c99a3a263c2011993522981"},
- {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a955b438e62efdf7e0b7b52a64dc5c3396e2634baa62471768a64bc2adb73d5c"},
- {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:7222ffd5e4de8e57e03ce2cef95a4c43c98fcb72ad86909abdfc2c17d227fc1b"},
- {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:bee093bf902e1d8fc0ac143c88902c3dfc8941f7ea1d6a8dd2bcb786d33db03d"},
- {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:dedb8adb91d11846ee08bec4c8236c8549ac721c245678282dcb06b221aab59f"},
- {file = "charset_normalizer-3.4.2-cp312-cp312-win32.whl", hash = "sha256:db4c7bf0e07fc3b7d89ac2a5880a6a8062056801b83ff56d8464b70f65482b6c"},
- {file = "charset_normalizer-3.4.2-cp312-cp312-win_amd64.whl", hash = "sha256:5a9979887252a82fefd3d3ed2a8e3b937a7a809f65dcb1e068b090e165bbe99e"},
- {file = "charset_normalizer-3.4.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:926ca93accd5d36ccdabd803392ddc3e03e6d4cd1cf17deff3b989ab8e9dbcf0"},
- {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eba9904b0f38a143592d9fc0e19e2df0fa2e41c3c3745554761c5f6447eedabf"},
- {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3fddb7e2c84ac87ac3a947cb4e66d143ca5863ef48e4a5ecb83bd48619e4634e"},
- {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98f862da73774290f251b9df8d11161b6cf25b599a66baf087c1ffe340e9bfd1"},
- {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c9379d65defcab82d07b2a9dfbfc2e95bc8fe0ebb1b176a3190230a3ef0e07c"},
- {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e635b87f01ebc977342e2697d05b56632f5f879a4f15955dfe8cef2448b51691"},
- {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1c95a1e2902a8b722868587c0e1184ad5c55631de5afc0eb96bc4b0d738092c0"},
- {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ef8de666d6179b009dce7bcb2ad4c4a779f113f12caf8dc77f0162c29d20490b"},
- {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:32fc0341d72e0f73f80acb0a2c94216bd704f4f0bce10aedea38f30502b271ff"},
- {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:289200a18fa698949d2b39c671c2cc7a24d44096784e76614899a7ccf2574b7b"},
- {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4a476b06fbcf359ad25d34a057b7219281286ae2477cc5ff5e3f70a246971148"},
- {file = "charset_normalizer-3.4.2-cp313-cp313-win32.whl", hash = "sha256:aaeeb6a479c7667fbe1099af9617c83aaca22182d6cf8c53966491a0f1b7ffb7"},
- {file = "charset_normalizer-3.4.2-cp313-cp313-win_amd64.whl", hash = "sha256:aa6af9e7d59f9c12b33ae4e9450619cf2488e2bbe9b44030905877f0b2324980"},
- {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1cad5f45b3146325bb38d6855642f6fd609c3f7cad4dbaf75549bf3b904d3184"},
- {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b2680962a4848b3c4f155dc2ee64505a9c57186d0d56b43123b17ca3de18f0fa"},
- {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:36b31da18b8890a76ec181c3cf44326bf2c48e36d393ca1b72b3f484113ea344"},
- {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f4074c5a429281bf056ddd4c5d3b740ebca4d43ffffe2ef4bf4d2d05114299da"},
- {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c9e36a97bee9b86ef9a1cf7bb96747eb7a15c2f22bdb5b516434b00f2a599f02"},
- {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:1b1bde144d98e446b056ef98e59c256e9294f6b74d7af6846bf5ffdafd687a7d"},
- {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:915f3849a011c1f593ab99092f3cecfcb4d65d8feb4a64cf1bf2d22074dc0ec4"},
- {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:fb707f3e15060adf5b7ada797624a6c6e0138e2a26baa089df64c68ee98e040f"},
- {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:25a23ea5c7edc53e0f29bae2c44fcb5a1aa10591aae107f2a2b2583a9c5cbc64"},
- {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:770cab594ecf99ae64c236bc9ee3439c3f46be49796e265ce0cc8bc17b10294f"},
- {file = "charset_normalizer-3.4.2-cp37-cp37m-win32.whl", hash = "sha256:6a0289e4589e8bdfef02a80478f1dfcb14f0ab696b5a00e1f4b8a14a307a3c58"},
- {file = "charset_normalizer-3.4.2-cp37-cp37m-win_amd64.whl", hash = "sha256:6fc1f5b51fa4cecaa18f2bd7a003f3dd039dd615cd69a2afd6d3b19aed6775f2"},
- {file = "charset_normalizer-3.4.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:76af085e67e56c8816c3ccf256ebd136def2ed9654525348cfa744b6802b69eb"},
- {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e45ba65510e2647721e35323d6ef54c7974959f6081b58d4ef5d87c60c84919a"},
- {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:046595208aae0120559a67693ecc65dd75d46f7bf687f159127046628178dc45"},
- {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75d10d37a47afee94919c4fab4c22b9bc2a8bf7d4f46f87363bcf0573f3ff4f5"},
- {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6333b3aa5a12c26b2a4d4e7335a28f1475e0e5e17d69d55141ee3cab736f66d1"},
- {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e8323a9b031aa0393768b87f04b4164a40037fb2a3c11ac06a03ffecd3618027"},
- {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:24498ba8ed6c2e0b56d4acbf83f2d989720a93b41d712ebd4f4979660db4417b"},
- {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:844da2b5728b5ce0e32d863af26f32b5ce61bc4273a9c720a9f3aa9df73b1455"},
- {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:65c981bdbd3f57670af8b59777cbfae75364b483fa8a9f420f08094531d54a01"},
- {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:3c21d4fca343c805a52c0c78edc01e3477f6dd1ad7c47653241cf2a206d4fc58"},
- {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:dc7039885fa1baf9be153a0626e337aa7ec8bf96b0128605fb0d77788ddc1681"},
- {file = "charset_normalizer-3.4.2-cp38-cp38-win32.whl", hash = "sha256:8272b73e1c5603666618805fe821edba66892e2870058c94c53147602eab29c7"},
- {file = "charset_normalizer-3.4.2-cp38-cp38-win_amd64.whl", hash = "sha256:70f7172939fdf8790425ba31915bfbe8335030f05b9913d7ae00a87d4395620a"},
- {file = "charset_normalizer-3.4.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:005fa3432484527f9732ebd315da8da8001593e2cf46a3d817669f062c3d9ed4"},
- {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e92fca20c46e9f5e1bb485887d074918b13543b1c2a1185e69bb8d17ab6236a7"},
- {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:50bf98d5e563b83cc29471fa114366e6806bc06bc7a25fd59641e41445327836"},
- {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:721c76e84fe669be19c5791da68232ca2e05ba5185575086e384352e2c309597"},
- {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82d8fd25b7f4675d0c47cf95b594d4e7b158aca33b76aa63d07186e13c0e0ab7"},
- {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b3daeac64d5b371dea99714f08ffc2c208522ec6b06fbc7866a450dd446f5c0f"},
- {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:dccab8d5fa1ef9bfba0590ecf4d46df048d18ffe3eec01eeb73a42e0d9e7a8ba"},
- {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:aaf27faa992bfee0264dc1f03f4c75e9fcdda66a519db6b957a3f826e285cf12"},
- {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:eb30abc20df9ab0814b5a2524f23d75dcf83cde762c161917a2b4b7b55b1e518"},
- {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:c72fbbe68c6f32f251bdc08b8611c7b3060612236e960ef848e0a517ddbe76c5"},
- {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:982bb1e8b4ffda883b3d0a521e23abcd6fd17418f6d2c4118d257a10199c0ce3"},
- {file = "charset_normalizer-3.4.2-cp39-cp39-win32.whl", hash = "sha256:43e0933a0eff183ee85833f341ec567c0980dae57c464d8a508e1b2ceb336471"},
- {file = "charset_normalizer-3.4.2-cp39-cp39-win_amd64.whl", hash = "sha256:d11b54acf878eef558599658b0ffca78138c8c3655cf4f3a4a673c437e67732e"},
- {file = "charset_normalizer-3.4.2-py3-none-any.whl", hash = "sha256:7f56930ab0abd1c45cd15be65cc741c28b1c9a34876ce8c17a2fa107810c0af0"},
- {file = "charset_normalizer-3.4.2.tar.gz", hash = "sha256:5baececa9ecba31eff645232d59845c07aa030f0c81ee70184a90d35099a0e63"}
+ {file = "charset_normalizer-3.4.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e824f1492727fa856dd6eda4f7cee25f8518a12f3c4a56a74e8095695089cf6d"},
+ {file = "charset_normalizer-3.4.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4bd5d4137d500351a30687c2d3971758aac9a19208fc110ccb9d7188fbe709e8"},
+ {file = "charset_normalizer-3.4.4-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:027f6de494925c0ab2a55eab46ae5129951638a49a34d87f4c3eda90f696b4ad"},
+ {file = "charset_normalizer-3.4.4-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f820802628d2694cb7e56db99213f930856014862f3fd943d290ea8438d07ca8"},
+ {file = "charset_normalizer-3.4.4-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:798d75d81754988d2565bff1b97ba5a44411867c0cf32b77a7e8f8d84796b10d"},
+ {file = "charset_normalizer-3.4.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d1bb833febdff5c8927f922386db610b49db6e0d4f4ee29601d71e7c2694313"},
+ {file = "charset_normalizer-3.4.4-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:9cd98cdc06614a2f768d2b7286d66805f94c48cde050acdbbb7db2600ab3197e"},
+ {file = "charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:077fbb858e903c73f6c9db43374fd213b0b6a778106bc7032446a8e8b5b38b93"},
+ {file = "charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:244bfb999c71b35de57821b8ea746b24e863398194a4014e4c76adc2bbdfeff0"},
+ {file = "charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:64b55f9dce520635f018f907ff1b0df1fdc31f2795a922fb49dd14fbcdf48c84"},
+ {file = "charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:faa3a41b2b66b6e50f84ae4a68c64fcd0c44355741c6374813a800cd6695db9e"},
+ {file = "charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:6515f3182dbe4ea06ced2d9e8666d97b46ef4c75e326b79bb624110f122551db"},
+ {file = "charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cc00f04ed596e9dc0da42ed17ac5e596c6ccba999ba6bd92b0e0aef2f170f2d6"},
+ {file = "charset_normalizer-3.4.4-cp310-cp310-win32.whl", hash = "sha256:f34be2938726fc13801220747472850852fe6b1ea75869a048d6f896838c896f"},
+ {file = "charset_normalizer-3.4.4-cp310-cp310-win_amd64.whl", hash = "sha256:a61900df84c667873b292c3de315a786dd8dac506704dea57bc957bd31e22c7d"},
+ {file = "charset_normalizer-3.4.4-cp310-cp310-win_arm64.whl", hash = "sha256:cead0978fc57397645f12578bfd2d5ea9138ea0fac82b2f63f7f7c6877986a69"},
+ {file = "charset_normalizer-3.4.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6e1fcf0720908f200cd21aa4e6750a48ff6ce4afe7ff5a79a90d5ed8a08296f8"},
+ {file = "charset_normalizer-3.4.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5f819d5fe9234f9f82d75bdfa9aef3a3d72c4d24a6e57aeaebba32a704553aa0"},
+ {file = "charset_normalizer-3.4.4-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a59cb51917aa591b1c4e6a43c132f0cdc3c76dbad6155df4e28ee626cc77a0a3"},
+ {file = "charset_normalizer-3.4.4-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8ef3c867360f88ac904fd3f5e1f902f13307af9052646963ee08ff4f131adafc"},
+ {file = "charset_normalizer-3.4.4-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d9e45d7faa48ee908174d8fe84854479ef838fc6a705c9315372eacbc2f02897"},
+ {file = "charset_normalizer-3.4.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:840c25fb618a231545cbab0564a799f101b63b9901f2569faecd6b222ac72381"},
+ {file = "charset_normalizer-3.4.4-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ca5862d5b3928c4940729dacc329aa9102900382fea192fc5e52eb69d6093815"},
+ {file = "charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d9c7f57c3d666a53421049053eaacdd14bbd0a528e2186fcb2e672effd053bb0"},
+ {file = "charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:277e970e750505ed74c832b4bf75dac7476262ee2a013f5574dd49075879e161"},
+ {file = "charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:31fd66405eaf47bb62e8cd575dc621c56c668f27d46a61d975a249930dd5e2a4"},
+ {file = "charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:0d3d8f15c07f86e9ff82319b3d9ef6f4bf907608f53fe9d92b28ea9ae3d1fd89"},
+ {file = "charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:9f7fcd74d410a36883701fafa2482a6af2ff5ba96b9a620e9e0721e28ead5569"},
+ {file = "charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ebf3e58c7ec8a8bed6d66a75d7fb37b55e5015b03ceae72a8e7c74495551e224"},
+ {file = "charset_normalizer-3.4.4-cp311-cp311-win32.whl", hash = "sha256:eecbc200c7fd5ddb9a7f16c7decb07b566c29fa2161a16cf67b8d068bd21690a"},
+ {file = "charset_normalizer-3.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:5ae497466c7901d54b639cf42d5b8c1b6a4fead55215500d2f486d34db48d016"},
+ {file = "charset_normalizer-3.4.4-cp311-cp311-win_arm64.whl", hash = "sha256:65e2befcd84bc6f37095f5961e68a6f077bf44946771354a28ad434c2cce0ae1"},
+ {file = "charset_normalizer-3.4.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0a98e6759f854bd25a58a73fa88833fba3b7c491169f86ce1180c948ab3fd394"},
+ {file = "charset_normalizer-3.4.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b5b290ccc2a263e8d185130284f8501e3e36c5e02750fc6b6bdeb2e9e96f1e25"},
+ {file = "charset_normalizer-3.4.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74bb723680f9f7a6234dcf67aea57e708ec1fbdf5699fb91dfd6f511b0a320ef"},
+ {file = "charset_normalizer-3.4.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f1e34719c6ed0b92f418c7c780480b26b5d9c50349e9a9af7d76bf757530350d"},
+ {file = "charset_normalizer-3.4.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2437418e20515acec67d86e12bf70056a33abdacb5cb1655042f6538d6b085a8"},
+ {file = "charset_normalizer-3.4.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:11d694519d7f29d6cd09f6ac70028dba10f92f6cdd059096db198c283794ac86"},
+ {file = "charset_normalizer-3.4.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ac1c4a689edcc530fc9d9aa11f5774b9e2f33f9a0c6a57864e90908f5208d30a"},
+ {file = "charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:21d142cc6c0ec30d2efee5068ca36c128a30b0f2c53c1c07bd78cb6bc1d3be5f"},
+ {file = "charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:5dbe56a36425d26d6cfb40ce79c314a2e4dd6211d51d6d2191c00bed34f354cc"},
+ {file = "charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5bfbb1b9acf3334612667b61bd3002196fe2a1eb4dd74d247e0f2a4d50ec9bbf"},
+ {file = "charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:d055ec1e26e441f6187acf818b73564e6e6282709e9bcb5b63f5b23068356a15"},
+ {file = "charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:af2d8c67d8e573d6de5bc30cdb27e9b95e49115cd9baad5ddbd1a6207aaa82a9"},
+ {file = "charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:780236ac706e66881f3b7f2f32dfe90507a09e67d1d454c762cf642e6e1586e0"},
+ {file = "charset_normalizer-3.4.4-cp312-cp312-win32.whl", hash = "sha256:5833d2c39d8896e4e19b689ffc198f08ea58116bee26dea51e362ecc7cd3ed26"},
+ {file = "charset_normalizer-3.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:a79cfe37875f822425b89a82333404539ae63dbdddf97f84dcbc3d339aae9525"},
+ {file = "charset_normalizer-3.4.4-cp312-cp312-win_arm64.whl", hash = "sha256:376bec83a63b8021bb5c8ea75e21c4ccb86e7e45ca4eb81146091b56599b80c3"},
+ {file = "charset_normalizer-3.4.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e1f185f86a6f3403aa2420e815904c67b2f9ebc443f045edd0de921108345794"},
+ {file = "charset_normalizer-3.4.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b39f987ae8ccdf0d2642338faf2abb1862340facc796048b604ef14919e55ed"},
+ {file = "charset_normalizer-3.4.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3162d5d8ce1bb98dd51af660f2121c55d0fa541b46dff7bb9b9f86ea1d87de72"},
+ {file = "charset_normalizer-3.4.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:81d5eb2a312700f4ecaa977a8235b634ce853200e828fbadf3a9c50bab278328"},
+ {file = "charset_normalizer-3.4.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5bd2293095d766545ec1a8f612559f6b40abc0eb18bb2f5d1171872d34036ede"},
+ {file = "charset_normalizer-3.4.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a8a8b89589086a25749f471e6a900d3f662d1d3b6e2e59dcecf787b1cc3a1894"},
+ {file = "charset_normalizer-3.4.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc7637e2f80d8530ee4a78e878bce464f70087ce73cf7c1caf142416923b98f1"},
+ {file = "charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f8bf04158c6b607d747e93949aa60618b61312fe647a6369f88ce2ff16043490"},
+ {file = "charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:554af85e960429cf30784dd47447d5125aaa3b99a6f0683589dbd27e2f45da44"},
+ {file = "charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:74018750915ee7ad843a774364e13a3db91682f26142baddf775342c3f5b1133"},
+ {file = "charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c0463276121fdee9c49b98908b3a89c39be45d86d1dbaa22957e38f6321d4ce3"},
+ {file = "charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:362d61fd13843997c1c446760ef36f240cf81d3ebf74ac62652aebaf7838561e"},
+ {file = "charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9a26f18905b8dd5d685d6d07b0cdf98a79f3c7a918906af7cc143ea2e164c8bc"},
+ {file = "charset_normalizer-3.4.4-cp313-cp313-win32.whl", hash = "sha256:9b35f4c90079ff2e2edc5b26c0c77925e5d2d255c42c74fdb70fb49b172726ac"},
+ {file = "charset_normalizer-3.4.4-cp313-cp313-win_amd64.whl", hash = "sha256:b435cba5f4f750aa6c0a0d92c541fb79f69a387c91e61f1795227e4ed9cece14"},
+ {file = "charset_normalizer-3.4.4-cp313-cp313-win_arm64.whl", hash = "sha256:542d2cee80be6f80247095cc36c418f7bddd14f4a6de45af91dfad36d817bba2"},
+ {file = "charset_normalizer-3.4.4-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:da3326d9e65ef63a817ecbcc0df6e94463713b754fe293eaa03da99befb9a5bd"},
+ {file = "charset_normalizer-3.4.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8af65f14dc14a79b924524b1e7fffe304517b2bff5a58bf64f30b98bbc5079eb"},
+ {file = "charset_normalizer-3.4.4-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74664978bb272435107de04e36db5a9735e78232b85b77d45cfb38f758efd33e"},
+ {file = "charset_normalizer-3.4.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:752944c7ffbfdd10c074dc58ec2d5a8a4cd9493b314d367c14d24c17684ddd14"},
+ {file = "charset_normalizer-3.4.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d1f13550535ad8cff21b8d757a3257963e951d96e20ec82ab44bc64aeb62a191"},
+ {file = "charset_normalizer-3.4.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ecaae4149d99b1c9e7b88bb03e3221956f68fd6d50be2ef061b2381b61d20838"},
+ {file = "charset_normalizer-3.4.4-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:cb6254dc36b47a990e59e1068afacdcd02958bdcce30bb50cc1700a8b9d624a6"},
+ {file = "charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c8ae8a0f02f57a6e61203a31428fa1d677cbe50c93622b4149d5c0f319c1d19e"},
+ {file = "charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:47cc91b2f4dd2833fddaedd2893006b0106129d4b94fdb6af1f4ce5a9965577c"},
+ {file = "charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:82004af6c302b5d3ab2cfc4cc5f29db16123b1a8417f2e25f9066f91d4411090"},
+ {file = "charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:2b7d8f6c26245217bd2ad053761201e9f9680f8ce52f0fcd8d0755aeae5b2152"},
+ {file = "charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:799a7a5e4fb2d5898c60b640fd4981d6a25f1c11790935a44ce38c54e985f828"},
+ {file = "charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:99ae2cffebb06e6c22bdc25801d7b30f503cc87dbd283479e7b606f70aff57ec"},
+ {file = "charset_normalizer-3.4.4-cp314-cp314-win32.whl", hash = "sha256:f9d332f8c2a2fcbffe1378594431458ddbef721c1769d78e2cbc06280d8155f9"},
+ {file = "charset_normalizer-3.4.4-cp314-cp314-win_amd64.whl", hash = "sha256:8a6562c3700cce886c5be75ade4a5db4214fda19fede41d9792d100288d8f94c"},
+ {file = "charset_normalizer-3.4.4-cp314-cp314-win_arm64.whl", hash = "sha256:de00632ca48df9daf77a2c65a484531649261ec9f25489917f09e455cb09ddb2"},
+ {file = "charset_normalizer-3.4.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ce8a0633f41a967713a59c4139d29110c07e826d131a316b50ce11b1d79b4f84"},
+ {file = "charset_normalizer-3.4.4-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eaabd426fe94daf8fd157c32e571c85cb12e66692f15516a83a03264b08d06c3"},
+ {file = "charset_normalizer-3.4.4-cp38-cp38-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c4ef880e27901b6cc782f1b95f82da9313c0eb95c3af699103088fa0ac3ce9ac"},
+ {file = "charset_normalizer-3.4.4-cp38-cp38-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2aaba3b0819274cc41757a1da876f810a3e4d7b6eb25699253a4effef9e8e4af"},
+ {file = "charset_normalizer-3.4.4-cp38-cp38-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:778d2e08eda00f4256d7f672ca9fef386071c9202f5e4607920b86d7803387f2"},
+ {file = "charset_normalizer-3.4.4-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f155a433c2ec037d4e8df17d18922c3a0d9b3232a396690f17175d2946f0218d"},
+ {file = "charset_normalizer-3.4.4-cp38-cp38-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a8bf8d0f749c5757af2142fe7903a9df1d2e8aa3841559b2bad34b08d0e2bcf3"},
+ {file = "charset_normalizer-3.4.4-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:194f08cbb32dc406d6e1aea671a68be0823673db2832b38405deba2fb0d88f63"},
+ {file = "charset_normalizer-3.4.4-cp38-cp38-musllinux_1_2_armv7l.whl", hash = "sha256:6aee717dcfead04c6eb1ce3bd29ac1e22663cdea57f943c87d1eab9a025438d7"},
+ {file = "charset_normalizer-3.4.4-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:cd4b7ca9984e5e7985c12bc60a6f173f3c958eae74f3ef6624bb6b26e2abbae4"},
+ {file = "charset_normalizer-3.4.4-cp38-cp38-musllinux_1_2_riscv64.whl", hash = "sha256:b7cf1017d601aa35e6bb650b6ad28652c9cd78ee6caff19f3c28d03e1c80acbf"},
+ {file = "charset_normalizer-3.4.4-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:e912091979546adf63357d7e2ccff9b44f026c075aeaf25a52d0e95ad2281074"},
+ {file = "charset_normalizer-3.4.4-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:5cb4d72eea50c8868f5288b7f7f33ed276118325c1dfd3957089f6b519e1382a"},
+ {file = "charset_normalizer-3.4.4-cp38-cp38-win32.whl", hash = "sha256:837c2ce8c5a65a2035be9b3569c684358dfbf109fd3b6969630a87535495ceaa"},
+ {file = "charset_normalizer-3.4.4-cp38-cp38-win_amd64.whl", hash = "sha256:44c2a8734b333e0578090c4cd6b16f275e07aa6614ca8715e6c038e865e70576"},
+ {file = "charset_normalizer-3.4.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:a9768c477b9d7bd54bc0c86dbaebdec6f03306675526c9927c0e8a04e8f94af9"},
+ {file = "charset_normalizer-3.4.4-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1bee1e43c28aa63cb16e5c14e582580546b08e535299b8b6158a7c9c768a1f3d"},
+ {file = "charset_normalizer-3.4.4-cp39-cp39-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:fd44c878ea55ba351104cb93cc85e74916eb8fa440ca7903e57575e97394f608"},
+ {file = "charset_normalizer-3.4.4-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:0f04b14ffe5fdc8c4933862d8306109a2c51e0704acfa35d51598eb45a1e89fc"},
+ {file = "charset_normalizer-3.4.4-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:cd09d08005f958f370f539f186d10aec3377d55b9eeb0d796025d4886119d76e"},
+ {file = "charset_normalizer-3.4.4-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4fe7859a4e3e8457458e2ff592f15ccb02f3da787fcd31e0183879c3ad4692a1"},
+ {file = "charset_normalizer-3.4.4-cp39-cp39-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:fa09f53c465e532f4d3db095e0c55b615f010ad81803d383195b6b5ca6cbf5f3"},
+ {file = "charset_normalizer-3.4.4-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:7fa17817dc5625de8a027cb8b26d9fefa3ea28c8253929b8d6649e705d2835b6"},
+ {file = "charset_normalizer-3.4.4-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:5947809c8a2417be3267efc979c47d76a079758166f7d43ef5ae8e9f92751f88"},
+ {file = "charset_normalizer-3.4.4-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:4902828217069c3c5c71094537a8e623f5d097858ac6ca8252f7b4d10b7560f1"},
+ {file = "charset_normalizer-3.4.4-cp39-cp39-musllinux_1_2_riscv64.whl", hash = "sha256:7c308f7e26e4363d79df40ca5b2be1c6ba9f02bdbccfed5abddb7859a6ce72cf"},
+ {file = "charset_normalizer-3.4.4-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:2c9d3c380143a1fedbff95a312aa798578371eb29da42106a29019368a475318"},
+ {file = "charset_normalizer-3.4.4-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:cb01158d8b88ee68f15949894ccc6712278243d95f344770fa7593fa2d94410c"},
+ {file = "charset_normalizer-3.4.4-cp39-cp39-win32.whl", hash = "sha256:2677acec1a2f8ef614c6888b5b4ae4060cc184174a938ed4e8ef690e15d3e505"},
+ {file = "charset_normalizer-3.4.4-cp39-cp39-win_amd64.whl", hash = "sha256:f8e160feb2aed042cd657a72acc0b481212ed28b1b9a95c0cee1621b524e1966"},
+ {file = "charset_normalizer-3.4.4-cp39-cp39-win_arm64.whl", hash = "sha256:b5d84d37db046c5ca74ee7bb47dd6cbc13f80665fdde3e8040bdd3fb015ecb50"},
+ {file = "charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f"},
+ {file = "charset_normalizer-3.4.4.tar.gz", hash = "sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a"}
]
[[package]]
@@ -575,14 +604,14 @@ markers = {main = "sys_platform == \"win32\" or platform_system == \"Windows\"",
[[package]]
name = "colorlog"
-version = "6.9.0"
+version = "6.10.1"
description = "Add colours to the output of Python's logging module."
optional = false
python-versions = ">=3.6"
groups = ["main"]
files = [
- {file = "colorlog-6.9.0-py3-none-any.whl", hash = "sha256:5906e71acd67cb07a71e779c47c4bcb45fb8c2993eebe9e5adcd6a6f1b283eff"},
- {file = "colorlog-6.9.0.tar.gz", hash = "sha256:bfba54a1b93b94f54e1f4fe48395725a3d92fd2a4af702f6bd70946bdc0c6ac2"}
+ {file = "colorlog-6.10.1-py3-none-any.whl", hash = "sha256:2d7e8348291948af66122cff006c9f8da6255d224e7cf8e37d8de2df3bad8c9c"},
+ {file = "colorlog-6.10.1.tar.gz", hash = "sha256:eb4ae5cb65fe7fec7773c2306061a8e63e02efc2c72eba9d27b0fa23c94f1321"}
]
[package.dependencies]
@@ -593,19 +622,16 @@ development = ["black", "flake8", "mypy", "pytest", "types-colorama"]
[[package]]
name = "comm"
-version = "0.2.2"
+version = "0.2.3"
description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc."
optional = false
python-versions = ">=3.8"
groups = ["main"]
files = [
- {file = "comm-0.2.2-py3-none-any.whl", hash = "sha256:e6fb86cb70ff661ee8c9c14e7d36d6de3b4066f1441be4063df9c5009f0a64d3"},
- {file = "comm-0.2.2.tar.gz", hash = "sha256:3fd7a84065306e07bea1773df6eb8282de51ba82f77c72f9c85716ab11fe980e"}
+ {file = "comm-0.2.3-py3-none-any.whl", hash = "sha256:c615d91d75f7f04f095b30d1c1711babd43bdc6419c1be9886a85f2f4e489417"},
+ {file = "comm-0.2.3.tar.gz", hash = "sha256:2dc8048c10962d55d7ad693be1e7045d891b7ce8d999c97963a5e3e99c055971"}
]
-[package.dependencies]
-traitlets = ">=4"
-
[package.extras]
test = ["pytest"]
@@ -616,6 +642,7 @@ description = "Python library for calculating contours of 2D quadrilateral grids
optional = false
python-versions = ">=3.10"
groups = ["main"]
+markers = "python_version == \"3.10\""
files = [
{file = "contourpy-1.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ba38e3f9f330af820c4b27ceb4b9c7feee5fe0493ea53a8720f4792667465934"},
{file = "contourpy-1.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:dc41ba0714aa2968d1f8674ec97504a8f7e334f48eeacebcaa6256213acb0989"},
@@ -686,122 +713,195 @@ mypy = ["bokeh", "contourpy[bokeh,docs]", "docutils-stubs", "mypy (==1.15.0)", "
test = ["Pillow", "contourpy[test-no-images]", "matplotlib"]
test-no-images = ["pytest", "pytest-cov", "pytest-rerunfailures", "pytest-xdist", "wurlitzer"]
+[[package]]
+name = "contourpy"
+version = "1.3.3"
+description = "Python library for calculating contours of 2D quadrilateral grids"
+optional = false
+python-versions = ">=3.11"
+groups = ["main"]
+markers = "python_version >= \"3.11\""
+files = [
+ {file = "contourpy-1.3.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:709a48ef9a690e1343202916450bc48b9e51c049b089c7f79a267b46cffcdaa1"},
+ {file = "contourpy-1.3.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:23416f38bfd74d5d28ab8429cc4d63fa67d5068bd711a85edb1c3fb0c3e2f381"},
+ {file = "contourpy-1.3.3-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:929ddf8c4c7f348e4c0a5a3a714b5c8542ffaa8c22954862a46ca1813b667ee7"},
+ {file = "contourpy-1.3.3-cp311-cp311-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9e999574eddae35f1312c2b4b717b7885d4edd6cb46700e04f7f02db454e67c1"},
+ {file = "contourpy-1.3.3-cp311-cp311-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0bf67e0e3f482cb69779dd3061b534eb35ac9b17f163d851e2a547d56dba0a3a"},
+ {file = "contourpy-1.3.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:51e79c1f7470158e838808d4a996fa9bac72c498e93d8ebe5119bc1e6becb0db"},
+ {file = "contourpy-1.3.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:598c3aaece21c503615fd59c92a3598b428b2f01bfb4b8ca9c4edeecc2438620"},
+ {file = "contourpy-1.3.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:322ab1c99b008dad206d406bb61d014cf0174df491ae9d9d0fac6a6fda4f977f"},
+ {file = "contourpy-1.3.3-cp311-cp311-win32.whl", hash = "sha256:fd907ae12cd483cd83e414b12941c632a969171bf90fc937d0c9f268a31cafff"},
+ {file = "contourpy-1.3.3-cp311-cp311-win_amd64.whl", hash = "sha256:3519428f6be58431c56581f1694ba8e50626f2dd550af225f82fb5f5814d2a42"},
+ {file = "contourpy-1.3.3-cp311-cp311-win_arm64.whl", hash = "sha256:15ff10bfada4bf92ec8b31c62bf7c1834c244019b4a33095a68000d7075df470"},
+ {file = "contourpy-1.3.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b08a32ea2f8e42cf1d4be3169a98dd4be32bafe4f22b6c4cb4ba810fa9e5d2cb"},
+ {file = "contourpy-1.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:556dba8fb6f5d8742f2923fe9457dbdd51e1049c4a43fd3986a0b14a1d815fc6"},
+ {file = "contourpy-1.3.3-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:92d9abc807cf7d0e047b95ca5d957cf4792fcd04e920ca70d48add15c1a90ea7"},
+ {file = "contourpy-1.3.3-cp312-cp312-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b2e8faa0ed68cb29af51edd8e24798bb661eac3bd9f65420c1887b6ca89987c8"},
+ {file = "contourpy-1.3.3-cp312-cp312-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:626d60935cf668e70a5ce6ff184fd713e9683fb458898e4249b63be9e28286ea"},
+ {file = "contourpy-1.3.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4d00e655fcef08aba35ec9610536bfe90267d7ab5ba944f7032549c55a146da1"},
+ {file = "contourpy-1.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:451e71b5a7d597379ef572de31eeb909a87246974d960049a9848c3bc6c41bf7"},
+ {file = "contourpy-1.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:459c1f020cd59fcfe6650180678a9993932d80d44ccde1fa1868977438f0b411"},
+ {file = "contourpy-1.3.3-cp312-cp312-win32.whl", hash = "sha256:023b44101dfe49d7d53932be418477dba359649246075c996866106da069af69"},
+ {file = "contourpy-1.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:8153b8bfc11e1e4d75bcb0bff1db232f9e10b274e0929de9d608027e0d34ff8b"},
+ {file = "contourpy-1.3.3-cp312-cp312-win_arm64.whl", hash = "sha256:07ce5ed73ecdc4a03ffe3e1b3e3c1166db35ae7584be76f65dbbe28a7791b0cc"},
+ {file = "contourpy-1.3.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:177fb367556747a686509d6fef71d221a4b198a3905fe824430e5ea0fda54eb5"},
+ {file = "contourpy-1.3.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d002b6f00d73d69333dac9d0b8d5e84d9724ff9ef044fd63c5986e62b7c9e1b1"},
+ {file = "contourpy-1.3.3-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:348ac1f5d4f1d66d3322420f01d42e43122f43616e0f194fc1c9f5d830c5b286"},
+ {file = "contourpy-1.3.3-cp313-cp313-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:655456777ff65c2c548b7c454af9c6f33f16c8884f11083244b5819cc214f1b5"},
+ {file = "contourpy-1.3.3-cp313-cp313-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:644a6853d15b2512d67881586bd03f462c7ab755db95f16f14d7e238f2852c67"},
+ {file = "contourpy-1.3.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4debd64f124ca62069f313a9cb86656ff087786016d76927ae2cf37846b006c9"},
+ {file = "contourpy-1.3.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a15459b0f4615b00bbd1e91f1b9e19b7e63aea7483d03d804186f278c0af2659"},
+ {file = "contourpy-1.3.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ca0fdcd73925568ca027e0b17ab07aad764be4706d0a925b89227e447d9737b7"},
+ {file = "contourpy-1.3.3-cp313-cp313-win32.whl", hash = "sha256:b20c7c9a3bf701366556e1b1984ed2d0cedf999903c51311417cf5f591d8c78d"},
+ {file = "contourpy-1.3.3-cp313-cp313-win_amd64.whl", hash = "sha256:1cadd8b8969f060ba45ed7c1b714fe69185812ab43bd6b86a9123fe8f99c3263"},
+ {file = "contourpy-1.3.3-cp313-cp313-win_arm64.whl", hash = "sha256:fd914713266421b7536de2bfa8181aa8c699432b6763a0ea64195ebe28bff6a9"},
+ {file = "contourpy-1.3.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:88df9880d507169449d434c293467418b9f6cbe82edd19284aa0409e7fdb933d"},
+ {file = "contourpy-1.3.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:d06bb1f751ba5d417047db62bca3c8fde202b8c11fb50742ab3ab962c81e8216"},
+ {file = "contourpy-1.3.3-cp313-cp313t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e4e6b05a45525357e382909a4c1600444e2a45b4795163d3b22669285591c1ae"},
+ {file = "contourpy-1.3.3-cp313-cp313t-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ab3074b48c4e2cf1a960e6bbeb7f04566bf36b1861d5c9d4d8ac04b82e38ba20"},
+ {file = "contourpy-1.3.3-cp313-cp313t-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:6c3d53c796f8647d6deb1abe867daeb66dcc8a97e8455efa729516b997b8ed99"},
+ {file = "contourpy-1.3.3-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:50ed930df7289ff2a8d7afeb9603f8289e5704755c7e5c3bbd929c90c817164b"},
+ {file = "contourpy-1.3.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4feffb6537d64b84877da813a5c30f1422ea5739566abf0bd18065ac040e120a"},
+ {file = "contourpy-1.3.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:2b7e9480ffe2b0cd2e787e4df64270e3a0440d9db8dc823312e2c940c167df7e"},
+ {file = "contourpy-1.3.3-cp313-cp313t-win32.whl", hash = "sha256:283edd842a01e3dcd435b1c5116798d661378d83d36d337b8dde1d16a5fc9ba3"},
+ {file = "contourpy-1.3.3-cp313-cp313t-win_amd64.whl", hash = "sha256:87acf5963fc2b34825e5b6b048f40e3635dd547f590b04d2ab317c2619ef7ae8"},
+ {file = "contourpy-1.3.3-cp313-cp313t-win_arm64.whl", hash = "sha256:3c30273eb2a55024ff31ba7d052dde990d7d8e5450f4bbb6e913558b3d6c2301"},
+ {file = "contourpy-1.3.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fde6c716d51c04b1c25d0b90364d0be954624a0ee9d60e23e850e8d48353d07a"},
+ {file = "contourpy-1.3.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:cbedb772ed74ff5be440fa8eee9bd49f64f6e3fc09436d9c7d8f1c287b121d77"},
+ {file = "contourpy-1.3.3-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:22e9b1bd7a9b1d652cd77388465dc358dafcd2e217d35552424aa4f996f524f5"},
+ {file = "contourpy-1.3.3-cp314-cp314-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a22738912262aa3e254e4f3cb079a95a67132fc5a063890e224393596902f5a4"},
+ {file = "contourpy-1.3.3-cp314-cp314-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:afe5a512f31ee6bd7d0dda52ec9864c984ca3d66664444f2d72e0dc4eb832e36"},
+ {file = "contourpy-1.3.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f64836de09927cba6f79dcd00fdd7d5329f3fccc633468507079c829ca4db4e3"},
+ {file = "contourpy-1.3.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:1fd43c3be4c8e5fd6e4f2baeae35ae18176cf2e5cced681cca908addf1cdd53b"},
+ {file = "contourpy-1.3.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6afc576f7b33cf00996e5c1102dc2a8f7cc89e39c0b55df93a0b78c1bd992b36"},
+ {file = "contourpy-1.3.3-cp314-cp314-win32.whl", hash = "sha256:66c8a43a4f7b8df8b71ee1840e4211a3c8d93b214b213f590e18a1beca458f7d"},
+ {file = "contourpy-1.3.3-cp314-cp314-win_amd64.whl", hash = "sha256:cf9022ef053f2694e31d630feaacb21ea24224be1c3ad0520b13d844274614fd"},
+ {file = "contourpy-1.3.3-cp314-cp314-win_arm64.whl", hash = "sha256:95b181891b4c71de4bb404c6621e7e2390745f887f2a026b2d99e92c17892339"},
+ {file = "contourpy-1.3.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:33c82d0138c0a062380332c861387650c82e4cf1747aaa6938b9b6516762e772"},
+ {file = "contourpy-1.3.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ea37e7b45949df430fe649e5de8351c423430046a2af20b1c1961cae3afcda77"},
+ {file = "contourpy-1.3.3-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d304906ecc71672e9c89e87c4675dc5c2645e1f4269a5063b99b0bb29f232d13"},
+ {file = "contourpy-1.3.3-cp314-cp314t-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ca658cd1a680a5c9ea96dc61cdbae1e85c8f25849843aa799dfd3cb370ad4fbe"},
+ {file = "contourpy-1.3.3-cp314-cp314t-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:ab2fd90904c503739a75b7c8c5c01160130ba67944a7b77bbf36ef8054576e7f"},
+ {file = "contourpy-1.3.3-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b7301b89040075c30e5768810bc96a8e8d78085b47d8be6e4c3f5a0b4ed478a0"},
+ {file = "contourpy-1.3.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:2a2a8b627d5cc6b7c41a4beff6c5ad5eb848c88255fda4a8745f7e901b32d8e4"},
+ {file = "contourpy-1.3.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:fd6ec6be509c787f1caf6b247f0b1ca598bef13f4ddeaa126b7658215529ba0f"},
+ {file = "contourpy-1.3.3-cp314-cp314t-win32.whl", hash = "sha256:e74a9a0f5e3fff48fb5a7f2fd2b9b70a3fe014a67522f79b7cca4c0c7e43c9ae"},
+ {file = "contourpy-1.3.3-cp314-cp314t-win_amd64.whl", hash = "sha256:13b68d6a62db8eafaebb8039218921399baf6e47bf85006fd8529f2a08ef33fc"},
+ {file = "contourpy-1.3.3-cp314-cp314t-win_arm64.whl", hash = "sha256:b7448cb5a725bb1e35ce88771b86fba35ef418952474492cf7c764059933ff8b"},
+ {file = "contourpy-1.3.3-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:cd5dfcaeb10f7b7f9dc8941717c6c2ade08f587be2226222c12b25f0483ed497"},
+ {file = "contourpy-1.3.3-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:0c1fc238306b35f246d61a1d416a627348b5cf0648648a031e14bb8705fcdfe8"},
+ {file = "contourpy-1.3.3-pp311-pypy311_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:70f9aad7de812d6541d29d2bbf8feb22ff7e1c299523db288004e3157ff4674e"},
+ {file = "contourpy-1.3.3-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5ed3657edf08512fc3fe81b510e35c2012fbd3081d2e26160f27ca28affec989"},
+ {file = "contourpy-1.3.3-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:3d1a3799d62d45c18bafd41c5fa05120b96a28079f2393af559b843d1a966a77"},
+ {file = "contourpy-1.3.3.tar.gz", hash = "sha256:083e12155b210502d0bca491432bb04d56dc3432f95a979b429f2848c3dbe880"}
+]
+
+[package.dependencies]
+numpy = ">=1.25"
+
+[package.extras]
+bokeh = ["bokeh", "selenium"]
+docs = ["furo", "sphinx (>=7.2)", "sphinx-copybutton"]
+mypy = ["bokeh", "contourpy[bokeh,docs]", "docutils-stubs", "mypy (==1.17.0)", "types-Pillow"]
+test = ["Pillow", "contourpy[test-no-images]", "matplotlib"]
+test-no-images = ["pytest", "pytest-cov", "pytest-rerunfailures", "pytest-xdist", "wurlitzer"]
+
[[package]]
name = "crc32c"
-version = "2.7.1"
+version = "2.8"
description = "A python package implementing the crc32c algorithm in hardware and software"
optional = false
python-versions = ">=3.7"
groups = ["main"]
markers = "python_version >= \"3.11\""
files = [
- {file = "crc32c-2.7.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1fd1f9c6b50d7357736676278a1b8c8986737b8a1c76d7eab4baa71d0b6af67f"},
- {file = "crc32c-2.7.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:805c2be1bc0e251c48439a62b0422385899c15289483692bc70e78473c1039f1"},
- {file = "crc32c-2.7.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f4333e62b7844dfde112dbb8489fd2970358eddc3310db21e943a9f6994df749"},
- {file = "crc32c-2.7.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f0fadc741e79dc705e2d9ee967473e8a061d26b04310ed739f1ee292f33674f"},
- {file = "crc32c-2.7.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:91ced31055d26d59385d708bbd36689e1a1d604d4b0ceb26767eb5a83156f85d"},
- {file = "crc32c-2.7.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:36ffa999b72e3c17f6a066ae9e970b40f8c65f38716e436c39a33b809bc6ed9f"},
- {file = "crc32c-2.7.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e80114dd7f462297e54d5da1b9ff472e5249c5a2b406aa51c371bb0edcbf76bd"},
- {file = "crc32c-2.7.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:676f5b46da268b5190f9fb91b3f037a00d114b411313664438525db876adc71f"},
- {file = "crc32c-2.7.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8d0e660c9ed269e90692993a4457a932fc22c9cc96caf79dd1f1a84da85bb312"},
- {file = "crc32c-2.7.1-cp310-cp310-win32.whl", hash = "sha256:17a2c3f8c6d85b04b5511af827b5dbbda4e672d188c0b9f20a8156e93a1aa7b6"},
- {file = "crc32c-2.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:3208764c29688f91a35392073229975dd7687b6cb9f76b919dae442cabcd5126"},
- {file = "crc32c-2.7.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:19e03a50545a3ef400bd41667d5525f71030488629c57d819e2dd45064f16192"},
- {file = "crc32c-2.7.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8c03286b1e5ce9bed7090084f206aacd87c5146b4b10de56fe9e86cbbbf851cf"},
- {file = "crc32c-2.7.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:80ebbf144a1a56a532b353e81fa0f3edca4f4baa1bf92b1dde2c663a32bb6a15"},
- {file = "crc32c-2.7.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:96b794fd11945298fdd5eb1290a812efb497c14bc42592c5c992ca077458eeba"},
- {file = "crc32c-2.7.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9df7194dd3c0efb5a21f5d70595b7a8b4fd9921fbbd597d6d8e7a11eca3e2d27"},
- {file = "crc32c-2.7.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d698eec444b18e296a104d0b9bb6c596c38bdcb79d24eba49604636e9d747305"},
- {file = "crc32c-2.7.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e07cf10ef852d219d179333fd706d1c415626f1f05e60bd75acf0143a4d8b225"},
- {file = "crc32c-2.7.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:d2a051f296e6e92e13efee3b41db388931cdb4a2800656cd1ed1d9fe4f13a086"},
- {file = "crc32c-2.7.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a1738259802978cdf428f74156175da6a5fdfb7256f647fdc0c9de1bc6cd7173"},
- {file = "crc32c-2.7.1-cp311-cp311-win32.whl", hash = "sha256:f7786d219a1a1bf27d0aa1869821d11a6f8e90415cfffc1e37791690d4a848a1"},
- {file = "crc32c-2.7.1-cp311-cp311-win_amd64.whl", hash = "sha256:887f6844bb3ad35f0778cd10793ad217f7123a5422e40041231b8c4c7329649d"},
- {file = "crc32c-2.7.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:f7d1c4e761fe42bf856130daf8b2658df33fe0ced3c43dadafdfeaa42b57b950"},
- {file = "crc32c-2.7.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:73361c79a6e4605204457f19fda18b042a94508a52e53d10a4239da5fb0f6a34"},
- {file = "crc32c-2.7.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:afd778fc8ac0ed2ffbfb122a9aa6a0e409a8019b894a1799cda12c01534493e0"},
- {file = "crc32c-2.7.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:56ef661b34e9f25991fface7f9ad85e81bbc1b3fe3b916fd58c893eabe2fa0b8"},
- {file = "crc32c-2.7.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:571aa4429444b5d7f588e4377663592145d2d25eb1635abb530f1281794fc7c9"},
- {file = "crc32c-2.7.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c02a3bd67dea95cdb25844aaf44ca2e1b0c1fd70b287ad08c874a95ef4bb38db"},
- {file = "crc32c-2.7.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:99d17637c4867672cb8adeea007294e3c3df9d43964369516cfe2c1f47ce500a"},
- {file = "crc32c-2.7.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:f4a400ac3c69a32e180d8753fd7ec7bccb80ade7ab0812855dce8a208e72495f"},
- {file = "crc32c-2.7.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:588587772e55624dd9c7a906ec9e8773ae0b6ac5e270fc0bc84ee2758eba90d5"},
- {file = "crc32c-2.7.1-cp312-cp312-win32.whl", hash = "sha256:9f14b60e5a14206e8173dd617fa0c4df35e098a305594082f930dae5488da428"},
- {file = "crc32c-2.7.1-cp312-cp312-win_amd64.whl", hash = "sha256:7c810a246660a24dc818047dc5f89c7ce7b2814e1e08a8e99993f4103f7219e8"},
- {file = "crc32c-2.7.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:24949bffb06fc411cc18188d33357923cb935273642164d0bb37a5f375654169"},
- {file = "crc32c-2.7.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2d5d326e7e118d4fa60187770d86b66af2fdfc63ce9eeb265f0d3e7d49bebe0b"},
- {file = "crc32c-2.7.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ba110df60c64c8e2d77a9425b982a520ccdb7abe42f06604f4d98a45bb1fff62"},
- {file = "crc32c-2.7.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c277f9d16a3283e064d54854af0976b72abaa89824955579b2b3f37444f89aae"},
- {file = "crc32c-2.7.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:881af0478a01331244e27197356929edbdeaef6a9f81b5c6bacfea18d2139289"},
- {file = "crc32c-2.7.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:724d5ff4d29ff093a983ae656be3307093706d850ea2a233bf29fcacc335d945"},
- {file = "crc32c-2.7.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b2416c4d88696ac322632555c0f81ab35e15f154bc96055da6cf110d642dbc10"},
- {file = "crc32c-2.7.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:60254251b88ec9b9795215f0f9ec015a6b5eef8b2c5fba1267c672d83c78fc02"},
- {file = "crc32c-2.7.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:edefc0e46f3c37372183f70338e5bdee42f6789b62fcd36ec53aa933e9dfbeaf"},
- {file = "crc32c-2.7.1-cp313-cp313-win32.whl", hash = "sha256:813af8111218970fe2adb833c5e5239f091b9c9e76f03b4dd91aaba86e99b499"},
- {file = "crc32c-2.7.1-cp313-cp313-win_amd64.whl", hash = "sha256:7d9ede7be8e4ec1c9e90aaf6884decbeef10e3473e6ddac032706d710cab5888"},
- {file = "crc32c-2.7.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:db9ac92294284b22521356715784b91cc9094eee42a5282ab281b872510d1831"},
- {file = "crc32c-2.7.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:8fcd7f2f29a30dc92af64a9ee3d38bde0c82bd20ad939999427aac94bbd87373"},
- {file = "crc32c-2.7.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5c056ef043393085523e149276a7ce0cb534b872e04f3e20d74d9a94a75c0ad7"},
- {file = "crc32c-2.7.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:03a92551a343702629af91f78d205801219692b6909f8fa126b830e332bfb0e0"},
- {file = "crc32c-2.7.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fb9424ec1a8ca54763155a703e763bcede82e6569fe94762614bb2de1412d4e1"},
- {file = "crc32c-2.7.1-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88732070f6175530db04e0bb36880ac45c33d49f8ac43fa0e50cfb1830049d23"},
- {file = "crc32c-2.7.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:57a20dfc27995f568f64775eea2bbb58ae269f1a1144561df5e4a4955f79db32"},
- {file = "crc32c-2.7.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:f7186d098bfd2cff25eac6880b7c7ad80431b90610036131c1c7dd0eab42a332"},
- {file = "crc32c-2.7.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:55a77e29a265418fa34bef15bd0f2c60afae5348988aaf35ed163b4bbf93cf37"},
- {file = "crc32c-2.7.1-cp313-cp313t-win32.whl", hash = "sha256:ae38a4b6aa361595d81cab441405fbee905c72273e80a1c010fb878ae77ac769"},
- {file = "crc32c-2.7.1-cp313-cp313t-win_amd64.whl", hash = "sha256:eee2a43b663feb6c79a6c1c6e5eae339c2b72cfac31ee54ec0209fa736cf7ee5"},
- {file = "crc32c-2.7.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:04a56e9f4995559fa86bcf5d0ed5c48505a36e2be1c41d70cae5c080d9a00b74"},
- {file = "crc32c-2.7.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88c5c9c21cd9fff593bb7dfe97d3287438c8aecbcc73d227f2366860a0663521"},
- {file = "crc32c-2.7.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:595146cb94ba0055301d273113add2af5859b467db41b50367f47870c2d0a81c"},
- {file = "crc32c-2.7.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b9f3792872f1320961f33aaf0198edea371aee393bcc221fab66d10ecffd77d"},
- {file = "crc32c-2.7.1-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:999a40d75cd1696e779f6f99c29fa52be777197d1d9e3ae69cb919a05a369c1e"},
- {file = "crc32c-2.7.1-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:eff485526172cee7e6d1fa9c23913f92c7d38ab05674b0b578767c7b693faf5d"},
- {file = "crc32c-2.7.1-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:541dac90c64ed9ce05f85a71066567e854c1b40743a01d83fa2c66419a2e97b6"},
- {file = "crc32c-2.7.1-cp37-cp37m-win32.whl", hash = "sha256:7138ec26e79100c4cf4294ef40027a1cff26a1e23b7e5eb70efe5d7ff37cbc66"},
- {file = "crc32c-2.7.1-cp37-cp37m-win_amd64.whl", hash = "sha256:35a3ed12ac2e2551a07d246b7e6512ac39db021e006205a40c1cfd32ea73fcc3"},
- {file = "crc32c-2.7.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:af062f11aea283b7e9c95f3a97fb6bb96ac08a9063f71621c2140237df141ada"},
- {file = "crc32c-2.7.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8f25ca521ecf7cccfff0ecae4d0538b5c0c7235d27bf098241f3e2bf86aed713"},
- {file = "crc32c-2.7.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:1410bcd909be36ccbf8a52c45e4bddca77adfd4e80789ac3cd575c024086516d"},
- {file = "crc32c-2.7.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33fc8cb32f82685ebefd078e740925ea9da37a008ed5f43b68fc8324f8ca4a37"},
- {file = "crc32c-2.7.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ad3dc6283ce53ad7d1dc5775003460110ab7eebf348efebe0486a531b28f8184"},
- {file = "crc32c-2.7.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:758ead20e122496764ae50db26bb90fb47fc4b6d242c8e99e87c3f1dae1f1dce"},
- {file = "crc32c-2.7.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:e436d9044bbd51936f7aeb8b322543c516bf22371a17970a370a10af1661fa54"},
- {file = "crc32c-2.7.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:47e5be99057264b603e3cd88cf091985f33c16d3c8609f1c83ed6e72ec4179b4"},
- {file = "crc32c-2.7.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:280509210e622a236f16f031856847fd0d6704df662d7209da819ccfb40c6167"},
- {file = "crc32c-2.7.1-cp38-cp38-win32.whl", hash = "sha256:4ab48e048cfa123a9f9bdc5d4d687a3461723132c749c721a6d358605e6d470d"},
- {file = "crc32c-2.7.1-cp38-cp38-win_amd64.whl", hash = "sha256:65471d1b1b6e10a404ca8200a4271d5bc0a552c3f5dcd943c1c7835f766ea02d"},
- {file = "crc32c-2.7.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:39ca842586084bca24f9c4ab43e2d99191b1186b2f89b2122b470d0730254d1b"},
- {file = "crc32c-2.7.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a911abc33d453b3f171a3200b1e18b3fc39c204670b5b0a353cca99e4c664332"},
- {file = "crc32c-2.7.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:22a72e81ec08a7ece6a35ac68d1ed32dd4a8be7949b164db88d4b4a4bade5c5a"},
- {file = "crc32c-2.7.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54d6f8c5be6815eabd6e3e90fa0bc13045183a6aa33a30dd684eb0f062b92213"},
- {file = "crc32c-2.7.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9c855726d71dee7ae25f81c6b54293455fc66802f34d334d22bea1f6ce8bc21c"},
- {file = "crc32c-2.7.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98d5f7fc364bb9c4c4123d149406fbee063f2e8c2cff19a12f13e50faa146237"},
- {file = "crc32c-2.7.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:51ffba582c95a281e5a3f71eacdafc96b9a1835ddae245385639458fff197034"},
- {file = "crc32c-2.7.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3950d3c340c9d70889630ef81fba8666abfd0cf0aa19fd9c3a55634e0b383b0f"},
- {file = "crc32c-2.7.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:522fba1770aad8f7eb189f21fca591a51d96dcc749859088f462281324aec30b"},
- {file = "crc32c-2.7.1-cp39-cp39-win32.whl", hash = "sha256:812723e222b6a9fe0562554d72f4f072c3a95720c60ee500984e7d0e568caac3"},
- {file = "crc32c-2.7.1-cp39-cp39-win_amd64.whl", hash = "sha256:6793fcfe9d4130230d196abbe4021c01ffe8e85c92633bf3c8559f9836c227f5"},
- {file = "crc32c-2.7.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:2e83fedebcdeb80c19e76b7a0e5103528bb062521c40702bf34516a429e81df3"},
- {file = "crc32c-2.7.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:30004a7383538ef93bda9b22f7b3805bc0aa5625ab2675690e1b676b19417d4b"},
- {file = "crc32c-2.7.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a01b0983aa87f517c12418f9898ecf2083bf86f4ea04122e053357c3edb0d73f"},
- {file = "crc32c-2.7.1-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cb2b963c42128b38872e9ed63f04a73ce1ff89a1dfad7ea38add6fe6296497b8"},
- {file = "crc32c-2.7.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:cdd5e576fee5d255c1e68a4dae4420f21e57e6f05900b38d5ae47c713fc3330d"},
- {file = "crc32c-2.7.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:79f0ff50863aeb441fbfa87e9db6542ddfe3e941189dece832b0af2e454dbab0"},
- {file = "crc32c-2.7.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cd27a1e400d77e9872fa1303e8f9d30bd050df35ee4858354ce0b59f8227d32"},
- {file = "crc32c-2.7.1-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:274739b3e1591bd4b7ec98764f2f79c6fbcc0f7d7676d5f17369832fe14ee4f0"},
- {file = "crc32c-2.7.1-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:050f52045b4a033a245e0ee4357e1a793de5af6496c82250ef13d8cb90a21e20"},
- {file = "crc32c-2.7.1-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:ceb4ca126f75694bda020a307221563d3c522719c0acedcc81ffb985b4867c94"},
- {file = "crc32c-2.7.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:eabefe7a6fb5dfc6318fb35f4d98893baef17ebda9b311498e870526d32168e7"},
- {file = "crc32c-2.7.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:217edd9ba8c5f0c3ad60c82a11fa78f01162fa106fd7f5d17175dac6bf1eedf9"},
- {file = "crc32c-2.7.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:15d640d9d4aa213aec6c837f602081a17d1522f8cd78b52334b62ee27b083410"},
- {file = "crc32c-2.7.1-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:519878822bf9bdead63c25a5e4bdc26d2eae9da6056f92b9b5f3023c08f1d016"},
- {file = "crc32c-2.7.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:2bf69cfa4c3ea9f060fe06db00b7e34f771c83f73dd2c3568c2c9019479e34c2"},
- {file = "crc32c-2.7.1-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:e89d51c90f6730b67b12c97d49099ba18d0fdce18541fab94d2be95d1c939adb"},
- {file = "crc32c-2.7.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:488a0feba1bb005d0dd2f702c1da4849d083e88d82cd27b83ac2d2d93af80755"},
- {file = "crc32c-2.7.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:919262b7a12ef63f222ec19c0e092f39268802652e11669315257ae6249ec79f"},
- {file = "crc32c-2.7.1-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4181240f6080c38eec9dd1539cd23a304a12100d3f4ffe43234f32064fae5ef0"},
- {file = "crc32c-2.7.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:fedde1e53507d0ede1980e8109442edd108c04ab100abcd5145c274820dacd4f"},
- {file = "crc32c-2.7.1.tar.gz", hash = "sha256:f91b144a21eef834d64178e01982bb9179c354b3e9e5f4c803b0e5096384968c"}
+ {file = "crc32c-2.8-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:2c0f4eb01fe7c0a3e3f973a418e04d52101bb077dd77626fd80c658ec60aaf95"},
+ {file = "crc32c-2.8-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6baefcfbca82b1a9678455416da24f18629769a76920c640d5a538620a7d12bb"},
+ {file = "crc32c-2.8-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d7f959fcf6c5aad1c4a653ee1a50f05760dab1d1c35d98ec4d7f0f68643f7612"},
+ {file = "crc32c-2.8-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:9bb678507a4e4cf3f0506607b046ecc4ed1c58a19e08a3fb3c2d25441c480bf1"},
+ {file = "crc32c-2.8-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1a16f7ffa4c242a909558565567cbba95148603717b53538ea299c98da68e7a9"},
+ {file = "crc32c-2.8-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:0184369aad562d801f91f454c81f56b9ecb966f6b96684c4d6cf82fc8741d2ad"},
+ {file = "crc32c-2.8-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:86d2eeb5f0189bd803720abe7387019328ea34c4acde62999e5723f789bc316b"},
+ {file = "crc32c-2.8-cp310-cp310-win32.whl", hash = "sha256:51da61904a9e753780a2e6011885677d601db1fa840be4b68799643a113e6f08"},
+ {file = "crc32c-2.8-cp310-cp310-win_amd64.whl", hash = "sha256:b2d6a1f2500daaf2e4b08f97ad0349aa2eff5faaaa5fd3350314a26eade334cd"},
+ {file = "crc32c-2.8-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e560a97fbb96c9897cb1d9b5076ef12fc12e2e25622530a1afd0de4240f17e1f"},
+ {file = "crc32c-2.8-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6762d276d90331a490ef7e71ffee53b9c0eb053bd75a272d786f3b08d3fe3671"},
+ {file = "crc32c-2.8-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:60670569f5ede91e39f48fb0cb4060e05b8d8704dd9e17ede930bf441b2f73ef"},
+ {file = "crc32c-2.8-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:711743da6ccc70b3c6718c328947b0b6f34a1fe6a6c27cc6c1d69cc226bf70e9"},
+ {file = "crc32c-2.8-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5eb4094a2054774f13b26f21bf56792bb44fa1fcee6c6ad099387a43ffbfb4fa"},
+ {file = "crc32c-2.8-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:fff15bf2bd3e95780516baae935ed12be88deaa5ebe6143c53eb0d26a7bdc7b7"},
+ {file = "crc32c-2.8-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4c0e11e3826668121fa53e0745635baf5e4f0ded437e8ff63ea56f38fc4f970a"},
+ {file = "crc32c-2.8-cp311-cp311-win32.whl", hash = "sha256:38f915336715d1f1353ab07d7d786f8a789b119e273aea106ba55355dfc9101d"},
+ {file = "crc32c-2.8-cp311-cp311-win_amd64.whl", hash = "sha256:60e0a765b1caab8d31b2ea80840639253906a9351d4b861551c8c8625ea20f86"},
+ {file = "crc32c-2.8-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:572ffb1b78cce3d88e8d4143e154d31044a44be42cb3f6fbbf77f1e7a941c5ab"},
+ {file = "crc32c-2.8-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:cf827b3758ee0c4aacd21ceca0e2da83681f10295c38a10bfeb105f7d98f7a68"},
+ {file = "crc32c-2.8-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:106fbd79013e06fa92bc3b51031694fcc1249811ed4364ef1554ee3dd2c7f5a2"},
+ {file = "crc32c-2.8-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:6dde035f91ffbfe23163e68605ee5a4bb8ceebd71ed54bb1fb1d0526cdd125a2"},
+ {file = "crc32c-2.8-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e41ebe7c2f0fdcd9f3a3fd206989a36b460b4d3f24816d53e5be6c7dba72c5e1"},
+ {file = "crc32c-2.8-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ecf66cf90266d9c15cea597d5cc86c01917cd1a238dc3c51420c7886fa750d7e"},
+ {file = "crc32c-2.8-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:59eee5f3a69ad0793d5fa9cdc9b9d743b0cd50edf7fccc0a3988a821fef0208c"},
+ {file = "crc32c-2.8-cp312-cp312-win32.whl", hash = "sha256:a73d03ce3604aa5d7a2698e9057a0eef69f529c46497b27ee1c38158e90ceb76"},
+ {file = "crc32c-2.8-cp312-cp312-win_amd64.whl", hash = "sha256:56b3b7d015247962cf58186e06d18c3d75a1a63d709d3233509e1c50a2d36aa2"},
+ {file = "crc32c-2.8-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:36f1e03ee9e9c6938e67d3bcb60e36f260170aa5f37da1185e04ef37b56af395"},
+ {file = "crc32c-2.8-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b2f3226b94b85a8dd9b3533601d7a63e9e3e8edf03a8a169830ee8303a199aeb"},
+ {file = "crc32c-2.8-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6e08628bc72d5b6bc8e0730e8f142194b610e780a98c58cb6698e665cb885a5b"},
+ {file = "crc32c-2.8-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:086f64793c5ec856d1ab31a026d52ad2b895ac83d7a38fce557d74eb857f0a82"},
+ {file = "crc32c-2.8-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bcf72ee7e0135b3d941c34bb2c26c3fc6bc207106b49fd89aaafaeae223ae209"},
+ {file = "crc32c-2.8-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:8a717dd9c3fd777d9bc6603717eae172887d402c4ab589d124ebd0184a83f89e"},
+ {file = "crc32c-2.8-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:0450bb845b3c3c7b9bdc0b4e95620ec9a40824abdc8c86d6285c919a90743c1a"},
+ {file = "crc32c-2.8-cp313-cp313-win32.whl", hash = "sha256:765d220bfcbcffa6598ac11eb1e10af0ee4802b49fe126aa6bf79f8ddb9931d1"},
+ {file = "crc32c-2.8-cp313-cp313-win_amd64.whl", hash = "sha256:171ff0260d112c62abcce29332986950a57bddee514e0a2418bfde493ea06bb3"},
+ {file = "crc32c-2.8-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b977a32a3708d6f51703c8557008f190aaa434d7347431efb0e86fcbe78c2a50"},
+ {file = "crc32c-2.8-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:7399b01db4adaf41da2fb36fe2408e75a8d82a179a9564ed7619412e427b26d6"},
+ {file = "crc32c-2.8-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:4379f73f9cdad31958a673d11a332ec725ca71572401ca865867229f5f15e853"},
+ {file = "crc32c-2.8-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2e68264555fab19bab08331550dab58573e351a63ed79c869d455edd3b0aa417"},
+ {file = "crc32c-2.8-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b48f2486727b8d0e7ccbae4a34cb0300498433d2a9d6b49cb13cb57c2e3f19cb"},
+ {file = "crc32c-2.8-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:ecf123348934a086df8c8fde7f9f2d716d523ca0707c5a1367b8bb00d8134823"},
+ {file = "crc32c-2.8-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:e636ac60f76de538f7a2c0d0f3abf43104ee83a8f5e516f6345dc283ed1a4df7"},
+ {file = "crc32c-2.8-cp313-cp313t-win32.whl", hash = "sha256:8dd4a19505e0253892e1b2f1425cc3bd47f79ae5a04cb8800315d00aad7197f2"},
+ {file = "crc32c-2.8-cp313-cp313t-win_amd64.whl", hash = "sha256:4bb18e4bd98fb266596523ffc6be9c5b2387b2fa4e505ec56ca36336f49cb639"},
+ {file = "crc32c-2.8-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:3a3b2e4bcf7b3ee333050e7d3ff38e2ba46ea205f1d73d8949b248aaffe937ac"},
+ {file = "crc32c-2.8-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:445e559e66dff16be54f8a4ef95aa6b01db799a639956d995c5498ba513fccc2"},
+ {file = "crc32c-2.8-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:bf3040919e17afa5782e01b1875d6a05f44b8f19c05f211d8b9f8a1deb8bbd9c"},
+ {file = "crc32c-2.8-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:5607ab8221e1ffd411f64aa40dbb6850cf06dd2908c9debd05d371e1acf62ff3"},
+ {file = "crc32c-2.8-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c7f5db4f16816926986d3c94253314920689706ae13a9bf4888b47336c6735ce"},
+ {file = "crc32c-2.8-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:70b0153c4d418b673309d3529334d117e1074c4a3b2d7f676e430d72c14de67b"},
+ {file = "crc32c-2.8-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5c8933531442042438753755a5c8a9034e4d88b01da9eb796f7e151b31a7256c"},
+ {file = "crc32c-2.8-cp314-cp314-win32.whl", hash = "sha256:cdc83a3fe6c4e5df9457294cfd643de7d95bd4e9382c1dd6ed1e0f0f9169172c"},
+ {file = "crc32c-2.8-cp314-cp314-win_amd64.whl", hash = "sha256:509e10035106df66770fe24b9eb8d9e32b6fb967df17744402fb67772d8b2bc7"},
+ {file = "crc32c-2.8-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:864359a39777a07b09b28eb31337c0cc603d5c1bf0fc328c3af736a8da624ec0"},
+ {file = "crc32c-2.8-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:14511d7cfc5d9f5e1a6c6b64caa6225c2bdc1ed00d725e9a374a3e84073ce180"},
+ {file = "crc32c-2.8-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:918b7999b52b5dcbcea34081e9a02d46917d571921a3f209956a9a429b2e06e5"},
+ {file = "crc32c-2.8-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:cc445da03fc012a5a03b71da1df1b40139729e6a5571fd4215ab40bfb39689c7"},
+ {file = "crc32c-2.8-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1e3dde2ec59a8a830511d72a086ead95c0b0b7f0d418f93ea106244c5e77e350"},
+ {file = "crc32c-2.8-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:61d51681a08b6a2a2e771b7f0cd1947fb87cb28f38ed55a01cb7c40b2ac4cdd8"},
+ {file = "crc32c-2.8-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:67c0716c3b1a02d5235be649487b637eed21f2d070f2b3f63f709dcd2fefb4c7"},
+ {file = "crc32c-2.8-cp314-cp314t-win32.whl", hash = "sha256:2e8fe863fbbd8bdb6b414a2090f1b0f52106e76e9a9c96a413495dbe5ebe492a"},
+ {file = "crc32c-2.8-cp314-cp314t-win_amd64.whl", hash = "sha256:20a9cfb897693eb6da19e52e2a7be2026fd4d9fc8ae318f086c0d71d5dd2d8e0"},
+ {file = "crc32c-2.8-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:050475897cef1b5f51982bfaeef19d4f9e1a6691348fa47c5c83a95f12325fee"},
+ {file = "crc32c-2.8-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a1512640c6684805419e57ee060e50d6f33af2c0f2d1fa2ab3c2e38d7536cc32"},
+ {file = "crc32c-2.8-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c47f17195ef686545226a5a37402d0c054fdbe2b7fc3f571c28fbb6ac91a2ffb"},
+ {file = "crc32c-2.8-cp38-cp38-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:4374b3ecfdfd387c4dd53863348cc69a2c353ca8998f0a7dfd3193d108b80629"},
+ {file = "crc32c-2.8-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2600f4614bd2efe1713218560503a1f5b548e23569628b7236c2c72cdc60f25f"},
+ {file = "crc32c-2.8-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:2c80c3b25560df5a57345e19779e0e8710b7ba17f2439a7499fc4cd7a0a0bca5"},
+ {file = "crc32c-2.8-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:07f65f30a7c3e7eda933da7e22f3c4d2c266b63afd77f7048e82a6e9f2d7760d"},
+ {file = "crc32c-2.8-cp38-cp38-win32.whl", hash = "sha256:b9829f2ab5524cd9fcba367603dbaf038e6f3280102c6dc1d3e09b4ef0e3270a"},
+ {file = "crc32c-2.8-cp38-cp38-win_amd64.whl", hash = "sha256:1895fbfafbe204a8127f46a252b9ae5ff18a8c6c6c7925acc8bbbce184fa5c23"},
+ {file = "crc32c-2.8-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7885c02d2edc17323de21a33978cdc6dbc7d4845172d2fc7563eae6e749958f5"},
+ {file = "crc32c-2.8-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8bd317beeb59fef039debe33f139c6464c6c1801b369275f433c754cb366c438"},
+ {file = "crc32c-2.8-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6e7af94d59294d36db17032efc8e4817a589aa0720ade545484396b99ecb5496"},
+ {file = "crc32c-2.8-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:1c529ee886eaf1c250b950e6b1636edbded39019b734ca9961c4a82f77feb55f"},
+ {file = "crc32c-2.8-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3cb30c019bc7856cbbb598f00ed63676d9655002351ac2ebdc01165c23c0e1b1"},
+ {file = "crc32c-2.8-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:6fb6590a225761d7d7b4d3a9550681550a7fc1b8b1e2fb4d1add1d10084a1320"},
+ {file = "crc32c-2.8-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5a7f1a0c0233f98ac96aa58edb036e53e3585b85816eea090a11763c6ee7b3b0"},
+ {file = "crc32c-2.8-cp39-cp39-win32.whl", hash = "sha256:670feb4279719f3cbfdac39f82201d28bc16ae2dc1930a6d662cc36ec4ecb9cb"},
+ {file = "crc32c-2.8-cp39-cp39-win_amd64.whl", hash = "sha256:a5f23f17fc25fe49d7334ce73e67568e4120b7aa43d8ad78b06bd22ebf8e45a9"},
+ {file = "crc32c-2.8-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:5833f4071da7ea182c514ba17d1eee8aec3c5be927d798222fbfbbd0f5eea02c"},
+ {file = "crc32c-2.8-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:1dc4da036126ac07b39dd9d03e93e585ec615a2ad28ff12757aef7de175295a8"},
+ {file = "crc32c-2.8-pp311-pypy311_pp73-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:15905fa78344654e241371c47e6ed2411f9eeb2b8095311c68c88eccf541e8b4"},
+ {file = "crc32c-2.8-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c596f918688821f796434e89b431b1698396c38bf0b56de873621528fe3ecb1e"},
+ {file = "crc32c-2.8-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:8d23c4fe01b3844cb6e091044bc1cebdef7d16472e058ce12d9fadf10d2614af"},
+ {file = "crc32c-2.8.tar.gz", hash = "sha256:578728964e59c47c356aeeedee6220e021e124b9d3e8631d95d9a5e5f06e261c"}
]
[[package]]
@@ -822,38 +922,42 @@ tests = ["pytest", "pytest-cov", "pytest-xdist"]
[[package]]
name = "debugpy"
-version = "1.8.14"
+version = "1.8.17"
description = "An implementation of the Debug Adapter Protocol for Python"
optional = false
python-versions = ">=3.8"
groups = ["main"]
files = [
- {file = "debugpy-1.8.14-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:93fee753097e85623cab1c0e6a68c76308cd9f13ffdf44127e6fab4fbf024339"},
- {file = "debugpy-1.8.14-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d937d93ae4fa51cdc94d3e865f535f185d5f9748efb41d0d49e33bf3365bd79"},
- {file = "debugpy-1.8.14-cp310-cp310-win32.whl", hash = "sha256:c442f20577b38cc7a9aafecffe1094f78f07fb8423c3dddb384e6b8f49fd2987"},
- {file = "debugpy-1.8.14-cp310-cp310-win_amd64.whl", hash = "sha256:f117dedda6d969c5c9483e23f573b38f4e39412845c7bc487b6f2648df30fe84"},
- {file = "debugpy-1.8.14-cp311-cp311-macosx_14_0_universal2.whl", hash = "sha256:1b2ac8c13b2645e0b1eaf30e816404990fbdb168e193322be8f545e8c01644a9"},
- {file = "debugpy-1.8.14-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf431c343a99384ac7eab2f763980724834f933a271e90496944195318c619e2"},
- {file = "debugpy-1.8.14-cp311-cp311-win32.whl", hash = "sha256:c99295c76161ad8d507b413cd33422d7c542889fbb73035889420ac1fad354f2"},
- {file = "debugpy-1.8.14-cp311-cp311-win_amd64.whl", hash = "sha256:7816acea4a46d7e4e50ad8d09d963a680ecc814ae31cdef3622eb05ccacf7b01"},
- {file = "debugpy-1.8.14-cp312-cp312-macosx_14_0_universal2.whl", hash = "sha256:8899c17920d089cfa23e6005ad9f22582fd86f144b23acb9feeda59e84405b84"},
- {file = "debugpy-1.8.14-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6bb5c0dcf80ad5dbc7b7d6eac484e2af34bdacdf81df09b6a3e62792b722826"},
- {file = "debugpy-1.8.14-cp312-cp312-win32.whl", hash = "sha256:281d44d248a0e1791ad0eafdbbd2912ff0de9eec48022a5bfbc332957487ed3f"},
- {file = "debugpy-1.8.14-cp312-cp312-win_amd64.whl", hash = "sha256:5aa56ef8538893e4502a7d79047fe39b1dae08d9ae257074c6464a7b290b806f"},
- {file = "debugpy-1.8.14-cp313-cp313-macosx_14_0_universal2.whl", hash = "sha256:329a15d0660ee09fec6786acdb6e0443d595f64f5d096fc3e3ccf09a4259033f"},
- {file = "debugpy-1.8.14-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f920c7f9af409d90f5fd26e313e119d908b0dd2952c2393cd3247a462331f15"},
- {file = "debugpy-1.8.14-cp313-cp313-win32.whl", hash = "sha256:3784ec6e8600c66cbdd4ca2726c72d8ca781e94bce2f396cc606d458146f8f4e"},
- {file = "debugpy-1.8.14-cp313-cp313-win_amd64.whl", hash = "sha256:684eaf43c95a3ec39a96f1f5195a7ff3d4144e4a18d69bb66beeb1a6de605d6e"},
- {file = "debugpy-1.8.14-cp38-cp38-macosx_14_0_x86_64.whl", hash = "sha256:d5582bcbe42917bc6bbe5c12db1bffdf21f6bfc28d4554b738bf08d50dc0c8c3"},
- {file = "debugpy-1.8.14-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5349b7c3735b766a281873fbe32ca9cca343d4cc11ba4a743f84cb854339ff35"},
- {file = "debugpy-1.8.14-cp38-cp38-win32.whl", hash = "sha256:7118d462fe9724c887d355eef395fae68bc764fd862cdca94e70dcb9ade8a23d"},
- {file = "debugpy-1.8.14-cp38-cp38-win_amd64.whl", hash = "sha256:d235e4fa78af2de4e5609073972700523e372cf5601742449970110d565ca28c"},
- {file = "debugpy-1.8.14-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:413512d35ff52c2fb0fd2d65e69f373ffd24f0ecb1fac514c04a668599c5ce7f"},
- {file = "debugpy-1.8.14-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c9156f7524a0d70b7a7e22b2e311d8ba76a15496fb00730e46dcdeedb9e1eea"},
- {file = "debugpy-1.8.14-cp39-cp39-win32.whl", hash = "sha256:b44985f97cc3dd9d52c42eb59ee9d7ee0c4e7ecd62bca704891f997de4cef23d"},
- {file = "debugpy-1.8.14-cp39-cp39-win_amd64.whl", hash = "sha256:b1528cfee6c1b1c698eb10b6b096c598738a8238822d218173d21c3086de8123"},
- {file = "debugpy-1.8.14-py2.py3-none-any.whl", hash = "sha256:5cd9a579d553b6cb9759a7908a41988ee6280b961f24f63336835d9418216a20"},
- {file = "debugpy-1.8.14.tar.gz", hash = "sha256:7cd287184318416850aa8b60ac90105837bb1e59531898c07569d197d2ed5322"}
+ {file = "debugpy-1.8.17-cp310-cp310-macosx_15_0_x86_64.whl", hash = "sha256:c41d2ce8bbaddcc0009cc73f65318eedfa3dbc88a8298081deb05389f1ab5542"},
+ {file = "debugpy-1.8.17-cp310-cp310-manylinux_2_34_x86_64.whl", hash = "sha256:1440fd514e1b815edd5861ca394786f90eb24960eb26d6f7200994333b1d79e3"},
+ {file = "debugpy-1.8.17-cp310-cp310-win32.whl", hash = "sha256:3a32c0af575749083d7492dc79f6ab69f21b2d2ad4cd977a958a07d5865316e4"},
+ {file = "debugpy-1.8.17-cp310-cp310-win_amd64.whl", hash = "sha256:a3aad0537cf4d9c1996434be68c6c9a6d233ac6f76c2a482c7803295b4e4f99a"},
+ {file = "debugpy-1.8.17-cp311-cp311-macosx_15_0_universal2.whl", hash = "sha256:d3fce3f0e3de262a3b67e69916d001f3e767661c6e1ee42553009d445d1cd840"},
+ {file = "debugpy-1.8.17-cp311-cp311-manylinux_2_34_x86_64.whl", hash = "sha256:c6bdf134457ae0cac6fb68205776be635d31174eeac9541e1d0c062165c6461f"},
+ {file = "debugpy-1.8.17-cp311-cp311-win32.whl", hash = "sha256:e79a195f9e059edfe5d8bf6f3749b2599452d3e9380484cd261f6b7cd2c7c4da"},
+ {file = "debugpy-1.8.17-cp311-cp311-win_amd64.whl", hash = "sha256:b532282ad4eca958b1b2d7dbcb2b7218e02cb934165859b918e3b6ba7772d3f4"},
+ {file = "debugpy-1.8.17-cp312-cp312-macosx_15_0_universal2.whl", hash = "sha256:f14467edef672195c6f6b8e27ce5005313cb5d03c9239059bc7182b60c176e2d"},
+ {file = "debugpy-1.8.17-cp312-cp312-manylinux_2_34_x86_64.whl", hash = "sha256:24693179ef9dfa20dca8605905a42b392be56d410c333af82f1c5dff807a64cc"},
+ {file = "debugpy-1.8.17-cp312-cp312-win32.whl", hash = "sha256:6a4e9dacf2cbb60d2514ff7b04b4534b0139facbf2abdffe0639ddb6088e59cf"},
+ {file = "debugpy-1.8.17-cp312-cp312-win_amd64.whl", hash = "sha256:e8f8f61c518952fb15f74a302e068b48d9c4691768ade433e4adeea961993464"},
+ {file = "debugpy-1.8.17-cp313-cp313-macosx_15_0_universal2.whl", hash = "sha256:857c1dd5d70042502aef1c6d1c2801211f3ea7e56f75e9c335f434afb403e464"},
+ {file = "debugpy-1.8.17-cp313-cp313-manylinux_2_34_x86_64.whl", hash = "sha256:3bea3b0b12f3946e098cce9b43c3c46e317b567f79570c3f43f0b96d00788088"},
+ {file = "debugpy-1.8.17-cp313-cp313-win32.whl", hash = "sha256:e34ee844c2f17b18556b5bbe59e1e2ff4e86a00282d2a46edab73fd7f18f4a83"},
+ {file = "debugpy-1.8.17-cp313-cp313-win_amd64.whl", hash = "sha256:6c5cd6f009ad4fca8e33e5238210dc1e5f42db07d4b6ab21ac7ffa904a196420"},
+ {file = "debugpy-1.8.17-cp314-cp314-macosx_15_0_universal2.whl", hash = "sha256:045290c010bcd2d82bc97aa2daf6837443cd52f6328592698809b4549babcee1"},
+ {file = "debugpy-1.8.17-cp314-cp314-manylinux_2_34_x86_64.whl", hash = "sha256:b69b6bd9dba6a03632534cdf67c760625760a215ae289f7489a452af1031fe1f"},
+ {file = "debugpy-1.8.17-cp314-cp314-win32.whl", hash = "sha256:5c59b74aa5630f3a5194467100c3b3d1c77898f9ab27e3f7dc5d40fc2f122670"},
+ {file = "debugpy-1.8.17-cp314-cp314-win_amd64.whl", hash = "sha256:893cba7bb0f55161de4365584b025f7064e1f88913551bcd23be3260b231429c"},
+ {file = "debugpy-1.8.17-cp38-cp38-macosx_15_0_x86_64.whl", hash = "sha256:8deb4e31cd575c9f9370042876e078ca118117c1b5e1f22c32befcfbb6955f0c"},
+ {file = "debugpy-1.8.17-cp38-cp38-manylinux_2_34_x86_64.whl", hash = "sha256:b75868b675949a96ab51abc114c7163f40ff0d8f7d6d5fd63f8932fd38e9c6d7"},
+ {file = "debugpy-1.8.17-cp38-cp38-win32.whl", hash = "sha256:17e456da14848d618662354e1dccfd5e5fb75deec3d1d48dc0aa0baacda55860"},
+ {file = "debugpy-1.8.17-cp38-cp38-win_amd64.whl", hash = "sha256:e851beb536a427b5df8aa7d0c7835b29a13812f41e46292ff80b2ef77327355a"},
+ {file = "debugpy-1.8.17-cp39-cp39-macosx_15_0_x86_64.whl", hash = "sha256:f2ac8055a0c4a09b30b931100996ba49ef334c6947e7ae365cdd870416d7513e"},
+ {file = "debugpy-1.8.17-cp39-cp39-manylinux_2_34_x86_64.whl", hash = "sha256:eaa85bce251feca8e4c87ce3b954aba84b8c645b90f0e6a515c00394a9f5c0e7"},
+ {file = "debugpy-1.8.17-cp39-cp39-win32.whl", hash = "sha256:b13eea5587e44f27f6c48588b5ad56dcb74a4f3a5f89250443c94587f3eb2ea1"},
+ {file = "debugpy-1.8.17-cp39-cp39-win_amd64.whl", hash = "sha256:bb1bbf92317e1f35afcf3ef0450219efb3afe00be79d8664b250ac0933b9015f"},
+ {file = "debugpy-1.8.17-py2.py3-none-any.whl", hash = "sha256:60c7dca6571efe660ccb7a9508d73ca14b8796c4ed484c2002abba714226cfef"},
+ {file = "debugpy-1.8.17.tar.gz", hash = "sha256:fd723b47a8c08892b1a16b2c6239a8b96637c62a59b94bb5dab4bac592a58a8e"}
]
[[package]]
@@ -882,14 +986,14 @@ files = [
[[package]]
name = "distlib"
-version = "0.3.9"
+version = "0.4.0"
description = "Distribution utilities"
optional = false
python-versions = "*"
groups = ["dev"]
files = [
- {file = "distlib-0.3.9-py2.py3-none-any.whl", hash = "sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87"},
- {file = "distlib-0.3.9.tar.gz", hash = "sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403"}
+ {file = "distlib-0.4.0-py2.py3-none-any.whl", hash = "sha256:9659f7d87e46584a30b5780e43ac7a2143098441670ff0a49d5f9034c54a6c16"},
+ {file = "distlib-0.4.0.tar.gz", hash = "sha256:feec40075be03a04501a973d81f633735b4b69f98b05450592310c0f401a4e0d"}
]
[[package]]
@@ -933,14 +1037,14 @@ test = ["pytest (>=6)"]
[[package]]
name = "executing"
-version = "2.2.0"
+version = "2.2.1"
description = "Get the currently executing AST node of a frame, and other information"
optional = false
python-versions = ">=3.8"
groups = ["main"]
files = [
- {file = "executing-2.2.0-py2.py3-none-any.whl", hash = "sha256:11387150cad388d62750327a53d3339fad4888b39a6fe233c3afbb54ecffd3aa"},
- {file = "executing-2.2.0.tar.gz", hash = "sha256:5d108c028108fe2551d1a7b2e8b713341e2cb4fc0aa7dcf966fa4327a5226755"}
+ {file = "executing-2.2.1-py2.py3-none-any.whl", hash = "sha256:760643d3452b4d777d295bb167ccc74c64a81df23fb5e08eff250c425a4b2017"},
+ {file = "executing-2.2.1.tar.gz", hash = "sha256:3632cc370565f6648cc328b32435bd120a1e4ebb20c77e3fdde9a13cd1e533c4"}
]
[package.extras]
@@ -948,14 +1052,14 @@ tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipyth
[[package]]
name = "fastjsonschema"
-version = "2.21.1"
+version = "2.21.2"
description = "Fastest Python implementation of JSON schema"
optional = false
python-versions = "*"
groups = ["main"]
files = [
- {file = "fastjsonschema-2.21.1-py3-none-any.whl", hash = "sha256:c9e5b7e908310918cf494a434eeb31384dd84a98b57a30bcb1f535015b554667"},
- {file = "fastjsonschema-2.21.1.tar.gz", hash = "sha256:794d4f0a58f848961ba16af7b9c85a3e88cd360df008c59aac6fc5ae9323b5d4"}
+ {file = "fastjsonschema-2.21.2-py3-none-any.whl", hash = "sha256:1c797122d0a86c5cace2e54bf4e819c36223b552017172f32c5c024a6b77e463"},
+ {file = "fastjsonschema-2.21.2.tar.gz", hash = "sha256:b1eb43748041c880796cd077f1a07c3d94e93ae84bba5ed36800a33554ae05de"}
]
[package.extras]
@@ -963,75 +1067,86 @@ devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benc
[[package]]
name = "filelock"
-version = "3.18.0"
+version = "3.20.0"
description = "A platform independent file lock."
optional = false
-python-versions = ">=3.9"
+python-versions = ">=3.10"
groups = ["dev"]
files = [
- {file = "filelock-3.18.0-py3-none-any.whl", hash = "sha256:c401f4f8377c4464e6db25fff06205fd89bdd83b65eb0488ed1b160f780e21de"},
- {file = "filelock-3.18.0.tar.gz", hash = "sha256:adbc88eabb99d2fec8c9c1b229b171f18afa655400173ddc653d5d01501fb9f2"}
+ {file = "filelock-3.20.0-py3-none-any.whl", hash = "sha256:339b4732ffda5cd79b13f4e2711a31b0365ce445d95d243bb996273d072546a2"},
+ {file = "filelock-3.20.0.tar.gz", hash = "sha256:711e943b4ec6be42e1d4e6690b48dc175c822967466bb31c0c293f34334c13f4"}
]
-[package.extras]
-docs = ["furo (>=2024.8.6)", "sphinx (>=8.1.3)", "sphinx-autodoc-typehints (>=3)"]
-testing = ["covdefaults (>=2.3)", "coverage (>=7.6.10)", "diff-cover (>=9.2.1)", "pytest (>=8.3.4)", "pytest-asyncio (>=0.25.2)", "pytest-cov (>=6)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.28.1)"]
-typing = ["typing-extensions (>=4.12.2) ; python_version < \"3.11\""]
-
[[package]]
name = "fonttools"
-version = "4.58.4"
+version = "4.60.1"
description = "Tools to manipulate font files"
optional = false
python-versions = ">=3.9"
groups = ["main"]
files = [
- {file = "fonttools-4.58.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:834542f13fee7625ad753b2db035edb674b07522fcbdd0ed9e9a9e2a1034467f"},
- {file = "fonttools-4.58.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2e6c61ce330142525296170cd65666e46121fc0d44383cbbcfa39cf8f58383df"},
- {file = "fonttools-4.58.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e9c75f8faa29579c0fbf29b56ae6a3660c6c025f3b671803cb6a9caa7e4e3a98"},
- {file = "fonttools-4.58.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:88dedcedbd5549e35b2ea3db3de02579c27e62e51af56779c021e7b33caadd0e"},
- {file = "fonttools-4.58.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ae80a895adab43586f4da1521d58fd4f4377cef322ee0cc205abcefa3a5effc3"},
- {file = "fonttools-4.58.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:0d3acc7f0d151da116e87a182aefb569cf0a3c8e0fd4c9cd0a7c1e7d3e7adb26"},
- {file = "fonttools-4.58.4-cp310-cp310-win32.whl", hash = "sha256:1244f69686008e7e8d2581d9f37eef330a73fee3843f1107993eb82c9d306577"},
- {file = "fonttools-4.58.4-cp310-cp310-win_amd64.whl", hash = "sha256:2a66c0af8a01eb2b78645af60f3b787de5fe5eb1fd8348163715b80bdbfbde1f"},
- {file = "fonttools-4.58.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a3841991c9ee2dc0562eb7f23d333d34ce81e8e27c903846f0487da21e0028eb"},
- {file = "fonttools-4.58.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3c98f91b6a9604e7ffb5ece6ea346fa617f967c2c0944228801246ed56084664"},
- {file = "fonttools-4.58.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ab9f891eb687ddf6a4e5f82901e00f992e18012ca97ab7acd15f13632acd14c1"},
- {file = "fonttools-4.58.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:891c5771e8f0094b7c0dc90eda8fc75e72930b32581418f2c285a9feedfd9a68"},
- {file = "fonttools-4.58.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:43ba4d9646045c375d22e3473b7d82b18b31ee2ac715cd94220ffab7bc2d5c1d"},
- {file = "fonttools-4.58.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33d19f16e6d2ffd6669bda574a6589941f6c99a8d5cfb9f464038244c71555de"},
- {file = "fonttools-4.58.4-cp311-cp311-win32.whl", hash = "sha256:b59e5109b907da19dc9df1287454821a34a75f2632a491dd406e46ff432c2a24"},
- {file = "fonttools-4.58.4-cp311-cp311-win_amd64.whl", hash = "sha256:3d471a5b567a0d1648f2e148c9a8bcf00d9ac76eb89e976d9976582044cc2509"},
- {file = "fonttools-4.58.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:462211c0f37a278494e74267a994f6be9a2023d0557aaa9ecbcbfce0f403b5a6"},
- {file = "fonttools-4.58.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0c7a12fb6f769165547f00fcaa8d0df9517603ae7e04b625e5acb8639809b82d"},
- {file = "fonttools-4.58.4-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2d42c63020a922154add0a326388a60a55504629edc3274bc273cd3806b4659f"},
- {file = "fonttools-4.58.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8f2b4e6fd45edc6805f5f2c355590b092ffc7e10a945bd6a569fc66c1d2ae7aa"},
- {file = "fonttools-4.58.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f155b927f6efb1213a79334e4cb9904d1e18973376ffc17a0d7cd43d31981f1e"},
- {file = "fonttools-4.58.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e38f687d5de97c7fb7da3e58169fb5ba349e464e141f83c3c2e2beb91d317816"},
- {file = "fonttools-4.58.4-cp312-cp312-win32.whl", hash = "sha256:636c073b4da9db053aa683db99580cac0f7c213a953b678f69acbca3443c12cc"},
- {file = "fonttools-4.58.4-cp312-cp312-win_amd64.whl", hash = "sha256:82e8470535743409b30913ba2822e20077acf9ea70acec40b10fcf5671dceb58"},
- {file = "fonttools-4.58.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:5f4a64846495c543796fa59b90b7a7a9dff6839bd852741ab35a71994d685c6d"},
- {file = "fonttools-4.58.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e80661793a5d4d7ad132a2aa1eae2e160fbdbb50831a0edf37c7c63b2ed36574"},
- {file = "fonttools-4.58.4-cp313-cp313-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:fe5807fc64e4ba5130f1974c045a6e8d795f3b7fb6debfa511d1773290dbb76b"},
- {file = "fonttools-4.58.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b610b9bef841cb8f4b50472494158b1e347d15cad56eac414c722eda695a6cfd"},
- {file = "fonttools-4.58.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:2daa7f0e213c38f05f054eb5e1730bd0424aebddbeac094489ea1585807dd187"},
- {file = "fonttools-4.58.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:66cccb6c0b944496b7f26450e9a66e997739c513ffaac728d24930df2fd9d35b"},
- {file = "fonttools-4.58.4-cp313-cp313-win32.whl", hash = "sha256:94d2aebb5ca59a5107825520fde596e344652c1f18170ef01dacbe48fa60c889"},
- {file = "fonttools-4.58.4-cp313-cp313-win_amd64.whl", hash = "sha256:b554bd6e80bba582fd326ddab296e563c20c64dca816d5e30489760e0c41529f"},
- {file = "fonttools-4.58.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:ca773fe7812e4e1197ee4e63b9691e89650ab55f679e12ac86052d2fe0d152cd"},
- {file = "fonttools-4.58.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e31289101221910f44245472e02b1a2f7d671c6d06a45c07b354ecb25829ad92"},
- {file = "fonttools-4.58.4-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:90c9e3c01475bb9602cb617f69f02c4ba7ab7784d93f0b0d685e84286f4c1a10"},
- {file = "fonttools-4.58.4-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e00a826f2bc745a010341ac102082fe5e3fb9f0861b90ed9ff32277598813711"},
- {file = "fonttools-4.58.4-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:bc75e72e9d2a4ad0935c59713bd38679d51c6fefab1eadde80e3ed4c2a11ea84"},
- {file = "fonttools-4.58.4-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:f57a795e540059ce3de68508acfaaf177899b39c36ef0a2833b2308db98c71f1"},
- {file = "fonttools-4.58.4-cp39-cp39-win32.whl", hash = "sha256:a7d04f64c88b48ede655abcf76f2b2952f04933567884d99be7c89e0a4495131"},
- {file = "fonttools-4.58.4-cp39-cp39-win_amd64.whl", hash = "sha256:5a8bc5dfd425c89b1c38380bc138787b0a830f761b82b37139aa080915503b69"},
- {file = "fonttools-4.58.4-py3-none-any.whl", hash = "sha256:a10ce13a13f26cbb9f37512a4346bb437ad7e002ff6fa966a7ce7ff5ac3528bd"},
- {file = "fonttools-4.58.4.tar.gz", hash = "sha256:928a8009b9884ed3aae17724b960987575155ca23c6f0b8146e400cc9e0d44ba"}
+ {file = "fonttools-4.60.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:9a52f254ce051e196b8fe2af4634c2d2f02c981756c6464dc192f1b6050b4e28"},
+ {file = "fonttools-4.60.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c7420a2696a44650120cdd269a5d2e56a477e2bfa9d95e86229059beb1c19e15"},
+ {file = "fonttools-4.60.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee0c0b3b35b34f782afc673d503167157094a16f442ace7c6c5e0ca80b08f50c"},
+ {file = "fonttools-4.60.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:282dafa55f9659e8999110bd8ed422ebe1c8aecd0dc396550b038e6c9a08b8ea"},
+ {file = "fonttools-4.60.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:4ba4bd646e86de16160f0fb72e31c3b9b7d0721c3e5b26b9fa2fc931dfdb2652"},
+ {file = "fonttools-4.60.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:0b0835ed15dd5b40d726bb61c846a688f5b4ce2208ec68779bc81860adb5851a"},
+ {file = "fonttools-4.60.1-cp310-cp310-win32.whl", hash = "sha256:1525796c3ffe27bb6268ed2a1bb0dcf214d561dfaf04728abf01489eb5339dce"},
+ {file = "fonttools-4.60.1-cp310-cp310-win_amd64.whl", hash = "sha256:268ecda8ca6cb5c4f044b1fb9b3b376e8cd1b361cef275082429dc4174907038"},
+ {file = "fonttools-4.60.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7b4c32e232a71f63a5d00259ca3d88345ce2a43295bb049d21061f338124246f"},
+ {file = "fonttools-4.60.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3630e86c484263eaac71d117085d509cbcf7b18f677906824e4bace598fb70d2"},
+ {file = "fonttools-4.60.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5c1015318e4fec75dd4943ad5f6a206d9727adf97410d58b7e32ab644a807914"},
+ {file = "fonttools-4.60.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e6c58beb17380f7c2ea181ea11e7db8c0ceb474c9dd45f48e71e2cb577d146a1"},
+ {file = "fonttools-4.60.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ec3681a0cb34c255d76dd9d865a55f260164adb9fa02628415cdc2d43ee2c05d"},
+ {file = "fonttools-4.60.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f4b5c37a5f40e4d733d3bbaaef082149bee5a5ea3156a785ff64d949bd1353fa"},
+ {file = "fonttools-4.60.1-cp311-cp311-win32.whl", hash = "sha256:398447f3d8c0c786cbf1209711e79080a40761eb44b27cdafffb48f52bcec258"},
+ {file = "fonttools-4.60.1-cp311-cp311-win_amd64.whl", hash = "sha256:d066ea419f719ed87bc2c99a4a4bfd77c2e5949cb724588b9dd58f3fd90b92bf"},
+ {file = "fonttools-4.60.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:7b0c6d57ab00dae9529f3faf187f2254ea0aa1e04215cf2f1a8ec277c96661bc"},
+ {file = "fonttools-4.60.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:839565cbf14645952d933853e8ade66a463684ed6ed6c9345d0faf1f0e868877"},
+ {file = "fonttools-4.60.1-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:8177ec9676ea6e1793c8a084a90b65a9f778771998eb919d05db6d4b1c0b114c"},
+ {file = "fonttools-4.60.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:996a4d1834524adbb423385d5a629b868ef9d774670856c63c9a0408a3063401"},
+ {file = "fonttools-4.60.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a46b2f450bc79e06ef3b6394f0c68660529ed51692606ad7f953fc2e448bc903"},
+ {file = "fonttools-4.60.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6ec722ee589e89a89f5b7574f5c45604030aa6ae24cb2c751e2707193b466fed"},
+ {file = "fonttools-4.60.1-cp312-cp312-win32.whl", hash = "sha256:b2cf105cee600d2de04ca3cfa1f74f1127f8455b71dbad02b9da6ec266e116d6"},
+ {file = "fonttools-4.60.1-cp312-cp312-win_amd64.whl", hash = "sha256:992775c9fbe2cf794786fa0ffca7f09f564ba3499b8fe9f2f80bd7197db60383"},
+ {file = "fonttools-4.60.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6f68576bb4bbf6060c7ab047b1574a1ebe5c50a17de62830079967b211059ebb"},
+ {file = "fonttools-4.60.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:eedacb5c5d22b7097482fa834bda0dafa3d914a4e829ec83cdea2a01f8c813c4"},
+ {file = "fonttools-4.60.1-cp313-cp313-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b33a7884fabd72bdf5f910d0cf46be50dce86a0362a65cfc746a4168c67eb96c"},
+ {file = "fonttools-4.60.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2409d5fb7b55fd70f715e6d34e7a6e4f7511b8ad29a49d6df225ee76da76dd77"},
+ {file = "fonttools-4.60.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c8651e0d4b3bdeda6602b85fdc2abbefc1b41e573ecb37b6779c4ca50753a199"},
+ {file = "fonttools-4.60.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:145daa14bf24824b677b9357c5e44fd8895c2a8f53596e1b9ea3496081dc692c"},
+ {file = "fonttools-4.60.1-cp313-cp313-win32.whl", hash = "sha256:2299df884c11162617a66b7c316957d74a18e3758c0274762d2cc87df7bc0272"},
+ {file = "fonttools-4.60.1-cp313-cp313-win_amd64.whl", hash = "sha256:a3db56f153bd4c5c2b619ab02c5db5192e222150ce5a1bc10f16164714bc39ac"},
+ {file = "fonttools-4.60.1-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:a884aef09d45ba1206712c7dbda5829562d3fea7726935d3289d343232ecb0d3"},
+ {file = "fonttools-4.60.1-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:8a44788d9d91df72d1a5eac49b31aeb887a5f4aab761b4cffc4196c74907ea85"},
+ {file = "fonttools-4.60.1-cp314-cp314-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:e852d9dda9f93ad3651ae1e3bb770eac544ec93c3807888798eccddf84596537"},
+ {file = "fonttools-4.60.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:154cb6ee417e417bf5f7c42fe25858c9140c26f647c7347c06f0cc2d47eff003"},
+ {file = "fonttools-4.60.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:5664fd1a9ea7f244487ac8f10340c4e37664675e8667d6fee420766e0fb3cf08"},
+ {file = "fonttools-4.60.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:583b7f8e3c49486e4d489ad1deacfb8d5be54a8ef34d6df824f6a171f8511d99"},
+ {file = "fonttools-4.60.1-cp314-cp314-win32.whl", hash = "sha256:66929e2ea2810c6533a5184f938502cfdaea4bc3efb7130d8cc02e1c1b4108d6"},
+ {file = "fonttools-4.60.1-cp314-cp314-win_amd64.whl", hash = "sha256:f3d5be054c461d6a2268831f04091dc82753176f6ea06dc6047a5e168265a987"},
+ {file = "fonttools-4.60.1-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:b6379e7546ba4ae4b18f8ae2b9bc5960936007a1c0e30b342f662577e8bc3299"},
+ {file = "fonttools-4.60.1-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:9d0ced62b59e0430b3690dbc5373df1c2aa7585e9a8ce38eff87f0fd993c5b01"},
+ {file = "fonttools-4.60.1-cp314-cp314t-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:875cb7764708b3132637f6c5fb385b16eeba0f7ac9fa45a69d35e09b47045801"},
+ {file = "fonttools-4.60.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a184b2ea57b13680ab6d5fbde99ccef152c95c06746cb7718c583abd8f945ccc"},
+ {file = "fonttools-4.60.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:026290e4ec76583881763fac284aca67365e0be9f13a7fb137257096114cb3bc"},
+ {file = "fonttools-4.60.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:f0e8817c7d1a0c2eedebf57ef9a9896f3ea23324769a9a2061a80fe8852705ed"},
+ {file = "fonttools-4.60.1-cp314-cp314t-win32.whl", hash = "sha256:1410155d0e764a4615774e5c2c6fc516259fe3eca5882f034eb9bfdbee056259"},
+ {file = "fonttools-4.60.1-cp314-cp314t-win_amd64.whl", hash = "sha256:022beaea4b73a70295b688f817ddc24ed3e3418b5036ffcd5658141184ef0d0c"},
+ {file = "fonttools-4.60.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:122e1a8ada290423c493491d002f622b1992b1ab0b488c68e31c413390dc7eb2"},
+ {file = "fonttools-4.60.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a140761c4ff63d0cb9256ac752f230460ee225ccef4ad8f68affc723c88e2036"},
+ {file = "fonttools-4.60.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0eae96373e4b7c9e45d099d7a523444e3554360927225c1cdae221a58a45b856"},
+ {file = "fonttools-4.60.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:596ecaca36367027d525b3b426d8a8208169d09edcf8c7506aceb3a38bfb55c7"},
+ {file = "fonttools-4.60.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2ee06fc57512144d8b0445194c2da9f190f61ad51e230f14836286470c99f854"},
+ {file = "fonttools-4.60.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:b42d86938e8dda1cd9a1a87a6d82f1818eaf933348429653559a458d027446da"},
+ {file = "fonttools-4.60.1-cp39-cp39-win32.whl", hash = "sha256:8b4eb332f9501cb1cd3d4d099374a1e1306783ff95489a1026bde9eb02ccc34a"},
+ {file = "fonttools-4.60.1-cp39-cp39-win_amd64.whl", hash = "sha256:7473a8ed9ed09aeaa191301244a5a9dbe46fe0bf54f9d6cd21d83044c3321217"},
+ {file = "fonttools-4.60.1-py3-none-any.whl", hash = "sha256:906306ac7afe2156fcf0042173d6ebbb05416af70f6b370967b47f8f00103bbb"},
+ {file = "fonttools-4.60.1.tar.gz", hash = "sha256:ef00af0439ebfee806b25f24c8f92109157ff3fac5731dc7867957812e87b8d9"}
]
[package.extras]
-all = ["brotli (>=1.0.1) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; platform_python_implementation != \"CPython\"", "fs (>=2.2.0,<3)", "lxml (>=4.0)", "lz4 (>=1.7.4.2)", "matplotlib", "munkres ; platform_python_implementation == \"PyPy\"", "pycairo", "scipy ; platform_python_implementation != \"PyPy\"", "skia-pathops (>=0.5.0)", "sympy", "uharfbuzz (>=0.23.0)", "unicodedata2 (>=15.1.0) ; python_version <= \"3.12\"", "xattr ; sys_platform == \"darwin\"", "zopfli (>=0.1.4)"]
+all = ["brotli (>=1.0.1) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; platform_python_implementation != \"CPython\"", "lxml (>=4.0)", "lz4 (>=1.7.4.2)", "matplotlib", "munkres ; platform_python_implementation == \"PyPy\"", "pycairo", "scipy ; platform_python_implementation != \"PyPy\"", "skia-pathops (>=0.5.0)", "sympy", "uharfbuzz (>=0.23.0)", "unicodedata2 (>=15.1.0) ; python_version <= \"3.12\"", "xattr ; sys_platform == \"darwin\"", "zopfli (>=0.1.4)"]
graphite = ["lz4 (>=1.7.4.2)"]
interpolatable = ["munkres ; platform_python_implementation == \"PyPy\"", "pycairo", "scipy ; platform_python_implementation != \"PyPy\""]
lxml = ["lxml (>=4.0)"]
@@ -1040,7 +1155,6 @@ plot = ["matplotlib"]
repacker = ["uharfbuzz (>=0.23.0)"]
symfont = ["sympy"]
type1 = ["xattr ; sys_platform == \"darwin\""]
-ufo = ["fs (>=2.2.0,<3)"]
unicode = ["unicodedata2 (>=15.1.0) ; python_version <= \"3.12\""]
woff = ["brotli (>=1.0.1) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; platform_python_implementation != \"CPython\"", "zopfli (>=0.1.4)"]
@@ -1058,72 +1172,72 @@ files = [
[[package]]
name = "greenlet"
-version = "3.2.3"
+version = "3.2.4"
description = "Lightweight in-process concurrent programming"
optional = false
python-versions = ">=3.9"
groups = ["main"]
markers = "platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\""
files = [
- {file = "greenlet-3.2.3-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:1afd685acd5597349ee6d7a88a8bec83ce13c106ac78c196ee9dde7c04fe87be"},
- {file = "greenlet-3.2.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:761917cac215c61e9dc7324b2606107b3b292a8349bdebb31503ab4de3f559ac"},
- {file = "greenlet-3.2.3-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:a433dbc54e4a37e4fff90ef34f25a8c00aed99b06856f0119dcf09fbafa16392"},
- {file = "greenlet-3.2.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:72e77ed69312bab0434d7292316d5afd6896192ac4327d44f3d613ecb85b037c"},
- {file = "greenlet-3.2.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:68671180e3849b963649254a882cd544a3c75bfcd2c527346ad8bb53494444db"},
- {file = "greenlet-3.2.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:49c8cfb18fb419b3d08e011228ef8a25882397f3a859b9fe1436946140b6756b"},
- {file = "greenlet-3.2.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:efc6dc8a792243c31f2f5674b670b3a95d46fa1c6a912b8e310d6f542e7b0712"},
- {file = "greenlet-3.2.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:731e154aba8e757aedd0781d4b240f1225b075b4409f1bb83b05ff410582cf00"},
- {file = "greenlet-3.2.3-cp310-cp310-win_amd64.whl", hash = "sha256:96c20252c2f792defe9a115d3287e14811036d51e78b3aaddbee23b69b216302"},
- {file = "greenlet-3.2.3-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:784ae58bba89fa1fa5733d170d42486580cab9decda3484779f4759345b29822"},
- {file = "greenlet-3.2.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0921ac4ea42a5315d3446120ad48f90c3a6b9bb93dd9b3cf4e4d84a66e42de83"},
- {file = "greenlet-3.2.3-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:d2971d93bb99e05f8c2c0c2f4aa9484a18d98c4c3bd3c62b65b7e6ae33dfcfaf"},
- {file = "greenlet-3.2.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:c667c0bf9d406b77a15c924ef3285e1e05250948001220368e039b6aa5b5034b"},
- {file = "greenlet-3.2.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:592c12fb1165be74592f5de0d70f82bc5ba552ac44800d632214b76089945147"},
- {file = "greenlet-3.2.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:29e184536ba333003540790ba29829ac14bb645514fbd7e32af331e8202a62a5"},
- {file = "greenlet-3.2.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:93c0bb79844a367782ec4f429d07589417052e621aa39a5ac1fb99c5aa308edc"},
- {file = "greenlet-3.2.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:751261fc5ad7b6705f5f76726567375bb2104a059454e0226e1eef6c756748ba"},
- {file = "greenlet-3.2.3-cp311-cp311-win_amd64.whl", hash = "sha256:83a8761c75312361aa2b5b903b79da97f13f556164a7dd2d5448655425bd4c34"},
- {file = "greenlet-3.2.3-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:25ad29caed5783d4bd7a85c9251c651696164622494c00802a139c00d639242d"},
- {file = "greenlet-3.2.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:88cd97bf37fe24a6710ec6a3a7799f3f81d9cd33317dcf565ff9950c83f55e0b"},
- {file = "greenlet-3.2.3-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:baeedccca94880d2f5666b4fa16fc20ef50ba1ee353ee2d7092b383a243b0b0d"},
- {file = "greenlet-3.2.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:be52af4b6292baecfa0f397f3edb3c6092ce071b499dd6fe292c9ac9f2c8f264"},
- {file = "greenlet-3.2.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0cc73378150b8b78b0c9fe2ce56e166695e67478550769536a6742dca3651688"},
- {file = "greenlet-3.2.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:706d016a03e78df129f68c4c9b4c4f963f7d73534e48a24f5f5a7101ed13dbbb"},
- {file = "greenlet-3.2.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:419e60f80709510c343c57b4bb5a339d8767bf9aef9b8ce43f4f143240f88b7c"},
- {file = "greenlet-3.2.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:93d48533fade144203816783373f27a97e4193177ebaaf0fc396db19e5d61163"},
- {file = "greenlet-3.2.3-cp312-cp312-win_amd64.whl", hash = "sha256:7454d37c740bb27bdeddfc3f358f26956a07d5220818ceb467a483197d84f849"},
- {file = "greenlet-3.2.3-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:500b8689aa9dd1ab26872a34084503aeddefcb438e2e7317b89b11eaea1901ad"},
- {file = "greenlet-3.2.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:a07d3472c2a93117af3b0136f246b2833fdc0b542d4a9799ae5f41c28323faef"},
- {file = "greenlet-3.2.3-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:8704b3768d2f51150626962f4b9a9e4a17d2e37c8a8d9867bbd9fa4eb938d3b3"},
- {file = "greenlet-3.2.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:5035d77a27b7c62db6cf41cf786cfe2242644a7a337a0e155c80960598baab95"},
- {file = "greenlet-3.2.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2d8aa5423cd4a396792f6d4580f88bdc6efcb9205891c9d40d20f6e670992efb"},
- {file = "greenlet-3.2.3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2c724620a101f8170065d7dded3f962a2aea7a7dae133a009cada42847e04a7b"},
- {file = "greenlet-3.2.3-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:873abe55f134c48e1f2a6f53f7d1419192a3d1a4e873bace00499a4e45ea6af0"},
- {file = "greenlet-3.2.3-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:024571bbce5f2c1cfff08bf3fbaa43bbc7444f580ae13b0099e95d0e6e67ed36"},
- {file = "greenlet-3.2.3-cp313-cp313-win_amd64.whl", hash = "sha256:5195fb1e75e592dd04ce79881c8a22becdfa3e6f500e7feb059b1e6fdd54d3e3"},
- {file = "greenlet-3.2.3-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:3d04332dddb10b4a211b68111dabaee2e1a073663d117dc10247b5b1642bac86"},
- {file = "greenlet-3.2.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8186162dffde068a465deab08fc72c767196895c39db26ab1c17c0b77a6d8b97"},
- {file = "greenlet-3.2.3-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f4bfbaa6096b1b7a200024784217defedf46a07c2eee1a498e94a1b5f8ec5728"},
- {file = "greenlet-3.2.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:ed6cfa9200484d234d8394c70f5492f144b20d4533f69262d530a1a082f6ee9a"},
- {file = "greenlet-3.2.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:02b0df6f63cd15012bed5401b47829cfd2e97052dc89da3cfaf2c779124eb892"},
- {file = "greenlet-3.2.3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:86c2d68e87107c1792e2e8d5399acec2487a4e993ab76c792408e59394d52141"},
- {file = "greenlet-3.2.3-cp314-cp314-win_amd64.whl", hash = "sha256:8c47aae8fbbfcf82cc13327ae802ba13c9c36753b67e760023fd116bc124a62a"},
- {file = "greenlet-3.2.3-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:42efc522c0bd75ffa11a71e09cd8a399d83fafe36db250a87cf1dacfaa15dc64"},
- {file = "greenlet-3.2.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d760f9bdfe79bff803bad32b4d8ffb2c1d2ce906313fc10a83976ffb73d64ca7"},
- {file = "greenlet-3.2.3-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:8324319cbd7b35b97990090808fdc99c27fe5338f87db50514959f8059999805"},
- {file = "greenlet-3.2.3-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:8c37ef5b3787567d322331d5250e44e42b58c8c713859b8a04c6065f27efbf72"},
- {file = "greenlet-3.2.3-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ce539fb52fb774d0802175d37fcff5c723e2c7d249c65916257f0a940cee8904"},
- {file = "greenlet-3.2.3-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:003c930e0e074db83559edc8705f3a2d066d4aa8c2f198aff1e454946efd0f26"},
- {file = "greenlet-3.2.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:7e70ea4384b81ef9e84192e8a77fb87573138aa5d4feee541d8014e452b434da"},
- {file = "greenlet-3.2.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:22eb5ba839c4b2156f18f76768233fe44b23a31decd9cc0d4cc8141c211fd1b4"},
- {file = "greenlet-3.2.3-cp39-cp39-win32.whl", hash = "sha256:4532f0d25df67f896d137431b13f4cdce89f7e3d4a96387a41290910df4d3a57"},
- {file = "greenlet-3.2.3-cp39-cp39-win_amd64.whl", hash = "sha256:aaa7aae1e7f75eaa3ae400ad98f8644bb81e1dc6ba47ce8a93d3f17274e08322"},
- {file = "greenlet-3.2.3.tar.gz", hash = "sha256:8b0dd8ae4c0d6f5e54ee55ba935eeb3d735a9b58a8a1e5b5cbab64e01a39f365"}
+ {file = "greenlet-3.2.4-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:8c68325b0d0acf8d91dde4e6f930967dd52a5302cd4062932a6b2e7c2969f47c"},
+ {file = "greenlet-3.2.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:94385f101946790ae13da500603491f04a76b6e4c059dab271b3ce2e283b2590"},
+ {file = "greenlet-3.2.4-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f10fd42b5ee276335863712fa3da6608e93f70629c631bf77145021600abc23c"},
+ {file = "greenlet-3.2.4-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:c8c9e331e58180d0d83c5b7999255721b725913ff6bc6cf39fa2a45841a4fd4b"},
+ {file = "greenlet-3.2.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:58b97143c9cc7b86fc458f215bd0932f1757ce649e05b640fea2e79b54cedb31"},
+ {file = "greenlet-3.2.4-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c2ca18a03a8cfb5b25bc1cbe20f3d9a4c80d8c3b13ba3df49ac3961af0b1018d"},
+ {file = "greenlet-3.2.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:9fe0a28a7b952a21e2c062cd5756d34354117796c6d9215a87f55e38d15402c5"},
+ {file = "greenlet-3.2.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8854167e06950ca75b898b104b63cc646573aa5fef1353d4508ecdd1ee76254f"},
+ {file = "greenlet-3.2.4-cp310-cp310-win_amd64.whl", hash = "sha256:73f49b5368b5359d04e18d15828eecc1806033db5233397748f4ca813ff1056c"},
+ {file = "greenlet-3.2.4-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:96378df1de302bc38e99c3a9aa311967b7dc80ced1dcc6f171e99842987882a2"},
+ {file = "greenlet-3.2.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1ee8fae0519a337f2329cb78bd7a8e128ec0f881073d43f023c7b8d4831d5246"},
+ {file = "greenlet-3.2.4-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:94abf90142c2a18151632371140b3dba4dee031633fe614cb592dbb6c9e17bc3"},
+ {file = "greenlet-3.2.4-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:4d1378601b85e2e5171b99be8d2dc85f594c79967599328f95c1dc1a40f1c633"},
+ {file = "greenlet-3.2.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0db5594dce18db94f7d1650d7489909b57afde4c580806b8d9203b6e79cdc079"},
+ {file = "greenlet-3.2.4-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2523e5246274f54fdadbce8494458a2ebdcdbc7b802318466ac5606d3cded1f8"},
+ {file = "greenlet-3.2.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1987de92fec508535687fb807a5cea1560f6196285a4cde35c100b8cd632cc52"},
+ {file = "greenlet-3.2.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:55e9c5affaa6775e2c6b67659f3a71684de4c549b3dd9afca3bc773533d284fa"},
+ {file = "greenlet-3.2.4-cp311-cp311-win_amd64.whl", hash = "sha256:9c40adce87eaa9ddb593ccb0fa6a07caf34015a29bf8d344811665b573138db9"},
+ {file = "greenlet-3.2.4-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:3b67ca49f54cede0186854a008109d6ee71f66bd57bb36abd6d0a0267b540cdd"},
+ {file = "greenlet-3.2.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ddf9164e7a5b08e9d22511526865780a576f19ddd00d62f8a665949327fde8bb"},
+ {file = "greenlet-3.2.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f28588772bb5fb869a8eb331374ec06f24a83a9c25bfa1f38b6993afe9c1e968"},
+ {file = "greenlet-3.2.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:5c9320971821a7cb77cfab8d956fa8e39cd07ca44b6070db358ceb7f8797c8c9"},
+ {file = "greenlet-3.2.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c60a6d84229b271d44b70fb6e5fa23781abb5d742af7b808ae3f6efd7c9c60f6"},
+ {file = "greenlet-3.2.4-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3b3812d8d0c9579967815af437d96623f45c0f2ae5f04e366de62a12d83a8fb0"},
+ {file = "greenlet-3.2.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:abbf57b5a870d30c4675928c37278493044d7c14378350b3aa5d484fa65575f0"},
+ {file = "greenlet-3.2.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:20fb936b4652b6e307b8f347665e2c615540d4b42b3b4c8a321d8286da7e520f"},
+ {file = "greenlet-3.2.4-cp312-cp312-win_amd64.whl", hash = "sha256:a7d4e128405eea3814a12cc2605e0e6aedb4035bf32697f72deca74de4105e02"},
+ {file = "greenlet-3.2.4-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:1a921e542453fe531144e91e1feedf12e07351b1cf6c9e8a3325ea600a715a31"},
+ {file = "greenlet-3.2.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cd3c8e693bff0fff6ba55f140bf390fa92c994083f838fece0f63be121334945"},
+ {file = "greenlet-3.2.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:710638eb93b1fa52823aa91bf75326f9ecdfd5e0466f00789246a5280f4ba0fc"},
+ {file = "greenlet-3.2.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:c5111ccdc9c88f423426df3fd1811bfc40ed66264d35aa373420a34377efc98a"},
+ {file = "greenlet-3.2.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d76383238584e9711e20ebe14db6c88ddcedc1829a9ad31a584389463b5aa504"},
+ {file = "greenlet-3.2.4-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:23768528f2911bcd7e475210822ffb5254ed10d71f4028387e5a99b4c6699671"},
+ {file = "greenlet-3.2.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:00fadb3fedccc447f517ee0d3fd8fe49eae949e1cd0f6a611818f4f6fb7dc83b"},
+ {file = "greenlet-3.2.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:d25c5091190f2dc0eaa3f950252122edbbadbb682aa7b1ef2f8af0f8c0afefae"},
+ {file = "greenlet-3.2.4-cp313-cp313-win_amd64.whl", hash = "sha256:554b03b6e73aaabec3745364d6239e9e012d64c68ccd0b8430c64ccc14939a8b"},
+ {file = "greenlet-3.2.4-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:49a30d5fda2507ae77be16479bdb62a660fa51b1eb4928b524975b3bde77b3c0"},
+ {file = "greenlet-3.2.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:299fd615cd8fc86267b47597123e3f43ad79c9d8a22bebdce535e53550763e2f"},
+ {file = "greenlet-3.2.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:c17b6b34111ea72fc5a4e4beec9711d2226285f0386ea83477cbb97c30a3f3a5"},
+ {file = "greenlet-3.2.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:b4a1870c51720687af7fa3e7cda6d08d801dae660f75a76f3845b642b4da6ee1"},
+ {file = "greenlet-3.2.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:061dc4cf2c34852b052a8620d40f36324554bc192be474b9e9770e8c042fd735"},
+ {file = "greenlet-3.2.4-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:44358b9bf66c8576a9f57a590d5f5d6e72fa4228b763d0e43fee6d3b06d3a337"},
+ {file = "greenlet-3.2.4-cp314-cp314-win_amd64.whl", hash = "sha256:e37ab26028f12dbb0ff65f29a8d3d44a765c61e729647bf2ddfbbed621726f01"},
+ {file = "greenlet-3.2.4-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:b6a7c19cf0d2742d0809a4c05975db036fdff50cd294a93632d6a310bf9ac02c"},
+ {file = "greenlet-3.2.4-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:27890167f55d2387576d1f41d9487ef171849ea0359ce1510ca6e06c8bece11d"},
+ {file = "greenlet-3.2.4-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:18d9260df2b5fbf41ae5139e1be4e796d99655f023a636cd0e11e6406cca7d58"},
+ {file = "greenlet-3.2.4-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:671df96c1f23c4a0d4077a325483c1503c96a1b7d9db26592ae770daa41233d4"},
+ {file = "greenlet-3.2.4-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:16458c245a38991aa19676900d48bd1a6f2ce3e16595051a4db9d012154e8433"},
+ {file = "greenlet-3.2.4-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c9913f1a30e4526f432991f89ae263459b1c64d1608c0d22a5c79c287b3c70df"},
+ {file = "greenlet-3.2.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b90654e092f928f110e0007f572007c9727b5265f7632c2fa7415b4689351594"},
+ {file = "greenlet-3.2.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:81701fd84f26330f0d5f4944d4e92e61afe6319dcd9775e39396e39d7c3e5f98"},
+ {file = "greenlet-3.2.4-cp39-cp39-win32.whl", hash = "sha256:65458b409c1ed459ea899e939f0e1cdb14f58dbc803f2f93c5eab5694d32671b"},
+ {file = "greenlet-3.2.4-cp39-cp39-win_amd64.whl", hash = "sha256:d2e685ade4dafd447ede19c31277a224a239a0a1a4eca4e6390efedf20260cfb"},
+ {file = "greenlet-3.2.4.tar.gz", hash = "sha256:0dca0d95ff849f9a364385f36ab49f50065d76964944638be9691e1832e9f86d"}
]
[package.extras]
docs = ["Sphinx", "furo"]
-test = ["objgraph", "psutil"]
+test = ["objgraph", "psutil", "setuptools"]
[[package]]
name = "h11"
@@ -1139,42 +1253,56 @@ files = [
[[package]]
name = "h5py"
-version = "3.14.0"
+version = "3.15.1"
description = "Read and write HDF5 files from Python"
optional = false
-python-versions = ">=3.9"
+python-versions = ">=3.10"
groups = ["main"]
files = [
- {file = "h5py-3.14.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:24df6b2622f426857bda88683b16630014588a0e4155cba44e872eb011c4eaed"},
- {file = "h5py-3.14.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6ff2389961ee5872de697054dd5a033b04284afc3fb52dc51d94561ece2c10c6"},
- {file = "h5py-3.14.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:016e89d3be4c44f8d5e115fab60548e518ecd9efe9fa5c5324505a90773e6f03"},
- {file = "h5py-3.14.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1223b902ef0b5d90bcc8a4778218d6d6cd0f5561861611eda59fa6c52b922f4d"},
- {file = "h5py-3.14.0-cp310-cp310-win_amd64.whl", hash = "sha256:852b81f71df4bb9e27d407b43071d1da330d6a7094a588efa50ef02553fa7ce4"},
- {file = "h5py-3.14.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f30dbc58f2a0efeec6c8836c97f6c94afd769023f44e2bb0ed7b17a16ec46088"},
- {file = "h5py-3.14.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:543877d7f3d8f8a9828ed5df6a0b78ca3d8846244b9702e99ed0d53610b583a8"},
- {file = "h5py-3.14.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c497600c0496548810047257e36360ff551df8b59156d3a4181072eed47d8ad"},
- {file = "h5py-3.14.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:723a40ee6505bd354bfd26385f2dae7bbfa87655f4e61bab175a49d72ebfc06b"},
- {file = "h5py-3.14.0-cp311-cp311-win_amd64.whl", hash = "sha256:d2744b520440a996f2dae97f901caa8a953afc055db4673a993f2d87d7f38713"},
- {file = "h5py-3.14.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e0045115d83272090b0717c555a31398c2c089b87d212ceba800d3dc5d952e23"},
- {file = "h5py-3.14.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6da62509b7e1d71a7d110478aa25d245dd32c8d9a1daee9d2a42dba8717b047a"},
- {file = "h5py-3.14.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:554ef0ced3571366d4d383427c00c966c360e178b5fb5ee5bb31a435c424db0c"},
- {file = "h5py-3.14.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0cbd41f4e3761f150aa5b662df991868ca533872c95467216f2bec5fcad84882"},
- {file = "h5py-3.14.0-cp312-cp312-win_amd64.whl", hash = "sha256:bf4897d67e613ecf5bdfbdab39a1158a64df105827da70ea1d90243d796d367f"},
- {file = "h5py-3.14.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:aa4b7bbce683379b7bf80aaba68e17e23396100336a8d500206520052be2f812"},
- {file = "h5py-3.14.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ef9603a501a04fcd0ba28dd8f0995303d26a77a980a1f9474b3417543d4c6174"},
- {file = "h5py-3.14.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8cbaf6910fa3983c46172666b0b8da7b7bd90d764399ca983236f2400436eeb"},
- {file = "h5py-3.14.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d90e6445ab7c146d7f7981b11895d70bc1dd91278a4f9f9028bc0c95e4a53f13"},
- {file = "h5py-3.14.0-cp313-cp313-win_amd64.whl", hash = "sha256:ae18e3de237a7a830adb76aaa68ad438d85fe6e19e0d99944a3ce46b772c69b3"},
- {file = "h5py-3.14.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f5cc1601e78027cedfec6dd50efb4802f018551754191aeb58d948bd3ec3bd7a"},
- {file = "h5py-3.14.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5e59d2136a8b302afd25acdf7a89b634e0eb7c66b1a211ef2d0457853768a2ef"},
- {file = "h5py-3.14.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:573c33ad056ac7c1ab6d567b6db9df3ffc401045e3f605736218f96c1e0490c6"},
- {file = "h5py-3.14.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ccbe17dc187c0c64178f1a10aa274ed3a57d055117588942b8a08793cc448216"},
- {file = "h5py-3.14.0-cp39-cp39-win_amd64.whl", hash = "sha256:4f025cf30ae738c4c4e38c7439a761a71ccfcce04c2b87b2a2ac64e8c5171d43"},
- {file = "h5py-3.14.0.tar.gz", hash = "sha256:2372116b2e0d5d3e5e705b7f663f7c8d96fa79a4052d250484ef91d24d6a08f4"}
+ {file = "h5py-3.15.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:67e59f6c2f19a32973a40f43d9a088ae324fe228c8366e25ebc57ceebf093a6b"},
+ {file = "h5py-3.15.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0e2f471688402c3404fa4e13466e373e622fd4b74b47b56cfdff7cc688209422"},
+ {file = "h5py-3.15.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4c45802bcb711e128a6839cb6c01e9ac648dc55df045c9542a675c771f15c8d5"},
+ {file = "h5py-3.15.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:64ce3f6470adb87c06e3a8dd1b90e973699f1759ad79bfa70c230939bff356c9"},
+ {file = "h5py-3.15.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:4411c1867b9899a25e983fff56d820a66f52ac326bbe10c7cdf7d832c9dcd883"},
+ {file = "h5py-3.15.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:2cbc4104d3d4aca9d6db8c0c694555e255805bfeacf9eb1349bda871e26cacbe"},
+ {file = "h5py-3.15.1-cp310-cp310-win_amd64.whl", hash = "sha256:01f55111ca516f5568ae7a7fc8247dfce607de331b4467ee8a9a6ed14e5422c7"},
+ {file = "h5py-3.15.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5aaa330bcbf2830150c50897ea5dcbed30b5b6d56897289846ac5b9e529ec243"},
+ {file = "h5py-3.15.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c970fb80001fffabb0109eaf95116c8e7c0d3ca2de854e0901e8a04c1f098509"},
+ {file = "h5py-3.15.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:80e5bb5b9508d5d9da09f81fd00abbb3f85da8143e56b1585d59bc8ceb1dba8b"},
+ {file = "h5py-3.15.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5b849ba619a066196169763c33f9f0f02e381156d61c03e000bb0100f9950faf"},
+ {file = "h5py-3.15.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e7f6c841efd4e6e5b7e82222eaf90819927b6d256ab0f3aca29675601f654f3c"},
+ {file = "h5py-3.15.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ca8a3a22458956ee7b40d8e39c9a9dc01f82933e4c030c964f8b875592f4d831"},
+ {file = "h5py-3.15.1-cp311-cp311-win_amd64.whl", hash = "sha256:550e51131376889656feec4aff2170efc054a7fe79eb1da3bb92e1625d1ac878"},
+ {file = "h5py-3.15.1-cp311-cp311-win_arm64.whl", hash = "sha256:b39239947cb36a819147fc19e86b618dcb0953d1cd969f5ed71fc0de60392427"},
+ {file = "h5py-3.15.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:316dd0f119734f324ca7ed10b5627a2de4ea42cc4dfbcedbee026aaa361c238c"},
+ {file = "h5py-3.15.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b51469890e58e85d5242e43aab29f5e9c7e526b951caab354f3ded4ac88e7b76"},
+ {file = "h5py-3.15.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8a33bfd5dfcea037196f7778534b1ff7e36a7f40a89e648c8f2967292eb6898e"},
+ {file = "h5py-3.15.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:25c8843fec43b2cc368aa15afa1cdf83fc5e17b1c4e10cd3771ef6c39b72e5ce"},
+ {file = "h5py-3.15.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a308fd8681a864c04423c0324527237a0484e2611e3441f8089fd00ed56a8171"},
+ {file = "h5py-3.15.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f4a016df3f4a8a14d573b496e4d1964deb380e26031fc85fb40e417e9131888a"},
+ {file = "h5py-3.15.1-cp312-cp312-win_amd64.whl", hash = "sha256:59b25cf02411bf12e14f803fef0b80886444c7fe21a5ad17c6a28d3f08098a1e"},
+ {file = "h5py-3.15.1-cp312-cp312-win_arm64.whl", hash = "sha256:61d5a58a9851e01ee61c932bbbb1c98fe20aba0a5674776600fb9a361c0aa652"},
+ {file = "h5py-3.15.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c8440fd8bee9500c235ecb7aa1917a0389a2adb80c209fa1cc485bd70e0d94a5"},
+ {file = "h5py-3.15.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ab2219dbc6fcdb6932f76b548e2b16f34a1f52b7666e998157a4dfc02e2c4123"},
+ {file = "h5py-3.15.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d8cb02c3a96255149ed3ac811eeea25b655d959c6dd5ce702c9a95ff11859eb5"},
+ {file = "h5py-3.15.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:121b2b7a4c1915d63737483b7bff14ef253020f617c2fb2811f67a4bed9ac5e8"},
+ {file = "h5py-3.15.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:59b0d63b318bf3cc06687def2b45afd75926bbc006f7b8cd2b1a231299fc8599"},
+ {file = "h5py-3.15.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e02fe77a03f652500d8bff288cbf3675f742fc0411f5a628fa37116507dc7cc0"},
+ {file = "h5py-3.15.1-cp313-cp313-win_amd64.whl", hash = "sha256:dea78b092fd80a083563ed79a3171258d4a4d307492e7cf8b2313d464c82ba52"},
+ {file = "h5py-3.15.1-cp313-cp313-win_arm64.whl", hash = "sha256:c256254a8a81e2bddc0d376e23e2a6d2dc8a1e8a2261835ed8c1281a0744cd97"},
+ {file = "h5py-3.15.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:5f4fb0567eb8517c3ecd6b3c02c4f4e9da220c8932604960fd04e24ee1254763"},
+ {file = "h5py-3.15.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:954e480433e82d3872503104f9b285d369048c3a788b2b1a00e53d1c47c98dd2"},
+ {file = "h5py-3.15.1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fd125c131889ebbef0849f4a0e29cf363b48aba42f228d08b4079913b576bb3a"},
+ {file = "h5py-3.15.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:28a20e1a4082a479b3d7db2169f3a5034af010b90842e75ebbf2e9e49eb4183e"},
+ {file = "h5py-3.15.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:fa8df5267f545b4946df8ca0d93d23382191018e4cda2deda4c2cedf9a010e13"},
+ {file = "h5py-3.15.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:99d374a21f7321a4c6ab327c4ab23bd925ad69821aeb53a1e75dd809d19f67fa"},
+ {file = "h5py-3.15.1-cp314-cp314-win_amd64.whl", hash = "sha256:9c73d1d7cdb97d5b17ae385153472ce118bed607e43be11e9a9deefaa54e0734"},
+ {file = "h5py-3.15.1-cp314-cp314-win_arm64.whl", hash = "sha256:a6d8c5a05a76aca9a494b4c53ce8a9c29023b7f64f625c6ce1841e92a362ccdf"},
+ {file = "h5py-3.15.1.tar.gz", hash = "sha256:c86e3ed45c4473564de55aa83b6fc9e5ead86578773dfbd93047380042e26b69"}
]
[package.dependencies]
-numpy = ">=1.19.3"
+numpy = ">=1.21.2"
[[package]]
name = "httpcore"
@@ -1225,14 +1353,14 @@ zstd = ["zstandard (>=0.18.0)"]
[[package]]
name = "identify"
-version = "2.6.12"
+version = "2.6.15"
description = "File identification library for Python"
optional = false
python-versions = ">=3.9"
groups = ["dev"]
files = [
- {file = "identify-2.6.12-py2.py3-none-any.whl", hash = "sha256:ad9672d5a72e0d2ff7c5c8809b62dfa60458626352fb0eb7b55e69bdc45334a2"},
- {file = "identify-2.6.12.tar.gz", hash = "sha256:d8de45749f1efb108badef65ee8386f0f7bb19a7f26185f74de6367bffbaf0e6"}
+ {file = "identify-2.6.15-py2.py3-none-any.whl", hash = "sha256:1181ef7608e00704db228516541eb83a88a9f94433a8c80bb9b5bd54b1d81757"},
+ {file = "identify-2.6.15.tar.gz", hash = "sha256:e4f4864b96c6557ef2a1e1c951771838f4edc9df3a72ec7118b338801b11c7bf"}
]
[package.extras]
@@ -1240,14 +1368,14 @@ license = ["ukkonen"]
[[package]]
name = "idna"
-version = "3.10"
+version = "3.11"
description = "Internationalized Domain Names in Applications (IDNA)"
optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.8"
groups = ["main"]
files = [
- {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"},
- {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}
+ {file = "idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea"},
+ {file = "idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902"}
]
[package.extras]
@@ -1320,37 +1448,37 @@ files = [
[[package]]
name = "ipykernel"
-version = "6.29.5"
+version = "6.30.1"
description = "IPython Kernel for Jupyter"
optional = false
-python-versions = ">=3.8"
+python-versions = ">=3.9"
groups = ["main"]
files = [
- {file = "ipykernel-6.29.5-py3-none-any.whl", hash = "sha256:afdb66ba5aa354b09b91379bac28ae4afebbb30e8b39510c9690afb7a10421b5"},
- {file = "ipykernel-6.29.5.tar.gz", hash = "sha256:f093a22c4a40f8828f8e330a9c297cb93dcab13bd9678ded6de8e5cf81c56215"}
+ {file = "ipykernel-6.30.1-py3-none-any.whl", hash = "sha256:aa6b9fb93dca949069d8b85b6c79b2518e32ac583ae9c7d37c51d119e18b3fb4"},
+ {file = "ipykernel-6.30.1.tar.gz", hash = "sha256:6abb270161896402e76b91394fcdce5d1be5d45f456671e5080572f8505be39b"}
]
[package.dependencies]
-appnope = {version = "*", markers = "platform_system == \"Darwin\""}
+appnope = {version = ">=0.1.2", markers = "platform_system == \"Darwin\""}
comm = ">=0.1.1"
debugpy = ">=1.6.5"
ipython = ">=7.23.1"
-jupyter-client = ">=6.1.12"
+jupyter-client = ">=8.0.0"
jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0"
matplotlib-inline = ">=0.1"
-nest-asyncio = "*"
-packaging = "*"
-psutil = "*"
-pyzmq = ">=24"
-tornado = ">=6.1"
+nest-asyncio = ">=1.4"
+packaging = ">=22"
+psutil = ">=5.7"
+pyzmq = ">=25"
+tornado = ">=6.2"
traitlets = ">=5.4.0"
[package.extras]
-cov = ["coverage[toml]", "curio", "matplotlib", "pytest-cov", "trio"]
-docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "trio"]
+cov = ["coverage[toml]", "matplotlib", "pytest-cov", "trio"]
+docs = ["intersphinx-registry", "myst-parser", "pydata-sphinx-theme", "sphinx", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "trio"]
pyqt5 = ["pyqt5"]
pyside6 = ["pyside6"]
-test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.23.5)", "pytest-cov", "pytest-timeout"]
+test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0,<9)", "pytest-asyncio (>=0.23.5)", "pytest-cov", "pytest-timeout"]
[[package]]
name = "ipython"
@@ -1359,6 +1487,7 @@ description = "IPython: Productive Interactive Computing"
optional = false
python-versions = ">=3.10"
groups = ["main"]
+markers = "python_version == \"3.10\""
files = [
{file = "ipython-8.37.0-py3-none-any.whl", hash = "sha256:ed87326596b878932dbcb171e3e698845434d8c61b8d8cd474bf663041a9dcf2"},
{file = "ipython-8.37.0.tar.gz", hash = "sha256:ca815841e1a41a1e6b73a0b08f3038af9b2252564d01fc405356d34033012216"}
@@ -1391,6 +1520,56 @@ qtconsole = ["qtconsole"]
test = ["packaging", "pickleshare", "pytest", "pytest-asyncio (<0.22)", "testpath"]
test-extra = ["curio", "ipython[test]", "jupyter_ai", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.23)", "pandas", "trio"]
+[[package]]
+name = "ipython"
+version = "9.6.0"
+description = "IPython: Productive Interactive Computing"
+optional = false
+python-versions = ">=3.11"
+groups = ["main"]
+markers = "python_version >= \"3.11\""
+files = [
+ {file = "ipython-9.6.0-py3-none-any.whl", hash = "sha256:5f77efafc886d2f023442479b8149e7d86547ad0a979e9da9f045d252f648196"},
+ {file = "ipython-9.6.0.tar.gz", hash = "sha256:5603d6d5d356378be5043e69441a072b50a5b33b4503428c77b04cb8ce7bc731"}
+]
+
+[package.dependencies]
+colorama = {version = "*", markers = "sys_platform == \"win32\""}
+decorator = "*"
+ipython-pygments-lexers = "*"
+jedi = ">=0.16"
+matplotlib-inline = "*"
+pexpect = {version = ">4.3", markers = "sys_platform != \"win32\" and sys_platform != \"emscripten\""}
+prompt_toolkit = ">=3.0.41,<3.1.0"
+pygments = ">=2.4.0"
+stack_data = "*"
+traitlets = ">=5.13.0"
+typing_extensions = {version = ">=4.6", markers = "python_version < \"3.12\""}
+
+[package.extras]
+all = ["ipython[doc,matplotlib,test,test-extra]"]
+black = ["black"]
+doc = ["docrepr", "exceptiongroup", "intersphinx_registry", "ipykernel", "ipython[matplotlib,test]", "setuptools (>=61.2)", "sphinx (>=1.3)", "sphinx-rtd-theme", "sphinx_toml (==0.0.4)", "typing_extensions"]
+matplotlib = ["matplotlib (>3.7)"]
+test = ["packaging", "pytest", "pytest-asyncio", "testpath"]
+test-extra = ["curio", "ipykernel", "ipython[matplotlib]", "ipython[test]", "jupyter_ai", "nbclient", "nbformat", "numpy (>=1.25)", "pandas (>2.0)", "trio"]
+
+[[package]]
+name = "ipython-pygments-lexers"
+version = "1.1.1"
+description = "Defines a variety of Pygments lexers for highlighting IPython code."
+optional = false
+python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version >= \"3.11\""
+files = [
+ {file = "ipython_pygments_lexers-1.1.1-py3-none-any.whl", hash = "sha256:a9462224a505ade19a605f71f8fa63c2048833ce50abc86768a0d81d876dc81c"},
+ {file = "ipython_pygments_lexers-1.1.1.tar.gz", hash = "sha256:09c0138009e56b6854f9535736f4171d855c8c08a563a0dcd8022f78355c7e81"}
+]
+
+[package.dependencies]
+pygments = "*"
+
[[package]]
name = "ipywidgets"
version = "8.1.7"
@@ -1468,26 +1647,26 @@ i18n = ["Babel (>=2.7)"]
[[package]]
name = "joblib"
-version = "1.5.1"
+version = "1.5.2"
description = "Lightweight pipelining with Python functions"
optional = false
python-versions = ">=3.9"
groups = ["main"]
files = [
- {file = "joblib-1.5.1-py3-none-any.whl", hash = "sha256:4719a31f054c7d766948dcd83e9613686b27114f190f717cec7eaa2084f8a74a"},
- {file = "joblib-1.5.1.tar.gz", hash = "sha256:f4f86e351f39fe3d0d32a9f2c3d8af1ee4cec285aafcb27003dda5205576b444"}
+ {file = "joblib-1.5.2-py3-none-any.whl", hash = "sha256:4e1f0bdbb987e6d843c70cf43714cb276623def372df3c22fe5266b2670bc241"},
+ {file = "joblib-1.5.2.tar.gz", hash = "sha256:3faa5c39054b2f03ca547da9b2f52fde67c06240c31853f306aea97f13647b55"}
]
[[package]]
name = "json5"
-version = "0.12.0"
+version = "0.12.1"
description = "A Python implementation of the JSON5 data format."
optional = false
python-versions = ">=3.8.0"
groups = ["main"]
files = [
- {file = "json5-0.12.0-py3-none-any.whl", hash = "sha256:6d37aa6c08b0609f16e1ec5ff94697e2cbbfbad5ac112afa05794da9ab7810db"},
- {file = "json5-0.12.0.tar.gz", hash = "sha256:0b4b6ff56801a1c7dc817b0241bca4ce474a0e6a163bfef3fc594d3fd263ff3a"}
+ {file = "json5-0.12.1-py3-none-any.whl", hash = "sha256:d9c9b3bc34a5f54d43c35e11ef7cb87d8bdd098c6ace87117a7b7e83e705c1d5"},
+ {file = "json5-0.12.1.tar.gz", hash = "sha256:b2743e77b3242f8d03c143dd975a6ec7c52e2f2afe76ed934e53503dd4ad4990"}
]
[package.extras]
@@ -1507,14 +1686,14 @@ files = [
[[package]]
name = "jsonschema"
-version = "4.24.0"
+version = "4.25.1"
description = "An implementation of JSON Schema validation for Python"
optional = false
python-versions = ">=3.9"
groups = ["main"]
files = [
- {file = "jsonschema-4.24.0-py3-none-any.whl", hash = "sha256:a462455f19f5faf404a7902952b6f0e3ce868f3ee09a359b05eca6673bd8412d"},
- {file = "jsonschema-4.24.0.tar.gz", hash = "sha256:0b4e8069eb12aedfa881333004bccaec24ecef5a8a6a4b6df142b2cc9599d196"}
+ {file = "jsonschema-4.25.1-py3-none-any.whl", hash = "sha256:3fba0169e345c7175110351d456342c364814cfcf3b964ba4587f22915230a63"},
+ {file = "jsonschema-4.25.1.tar.gz", hash = "sha256:e4a9655ce0da0c0b67a085847e00a3a51449e1157f4f75e9fb5aa545e122eb85"}
]
[package.dependencies]
@@ -1527,24 +1706,25 @@ jsonschema-specifications = ">=2023.03.6"
referencing = ">=0.28.4"
rfc3339-validator = {version = "*", optional = true, markers = "extra == \"format-nongpl\""}
rfc3986-validator = {version = ">0.1.0", optional = true, markers = "extra == \"format-nongpl\""}
+rfc3987-syntax = {version = ">=1.1.0", optional = true, markers = "extra == \"format-nongpl\""}
rpds-py = ">=0.7.1"
uri-template = {version = "*", optional = true, markers = "extra == \"format-nongpl\""}
webcolors = {version = ">=24.6.0", optional = true, markers = "extra == \"format-nongpl\""}
[package.extras]
format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"]
-format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=24.6.0)"]
+format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "rfc3987-syntax (>=1.1.0)", "uri-template", "webcolors (>=24.6.0)"]
[[package]]
name = "jsonschema-specifications"
-version = "2025.4.1"
+version = "2025.9.1"
description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry"
optional = false
python-versions = ">=3.9"
groups = ["main"]
files = [
- {file = "jsonschema_specifications-2025.4.1-py3-none-any.whl", hash = "sha256:4653bffbd6584f7de83a67e0d620ef16900b390ddc7939d56684d6c81e33f1af"},
- {file = "jsonschema_specifications-2025.4.1.tar.gz", hash = "sha256:630159c9f4dbea161a6a2205c3011cc4f18ff381b189fff48bb39b9bf26ae608"}
+ {file = "jsonschema_specifications-2025.9.1-py3-none-any.whl", hash = "sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe"},
+ {file = "jsonschema_specifications-2025.9.1.tar.gz", hash = "sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d"}
]
[package.dependencies]
@@ -1620,19 +1800,18 @@ test = ["flaky", "pexpect", "pytest"]
[[package]]
name = "jupyter-core"
-version = "5.8.1"
+version = "5.9.1"
description = "Jupyter core package. A base package on which Jupyter projects rely."
optional = false
-python-versions = ">=3.8"
+python-versions = ">=3.10"
groups = ["main"]
files = [
- {file = "jupyter_core-5.8.1-py3-none-any.whl", hash = "sha256:c28d268fc90fb53f1338ded2eb410704c5449a358406e8a948b75706e24863d0"},
- {file = "jupyter_core-5.8.1.tar.gz", hash = "sha256:0a5f9706f70e64786b75acba995988915ebd4601c8a52e534a40b51c95f59941"}
+ {file = "jupyter_core-5.9.1-py3-none-any.whl", hash = "sha256:ebf87fdc6073d142e114c72c9e29a9d7ca03fad818c5d300ce2adc1fb0743407"},
+ {file = "jupyter_core-5.9.1.tar.gz", hash = "sha256:4d09aaff303b9566c3ce657f580bd089ff5c91f5f89cf7d8846c3cdf465b5508"}
]
[package.dependencies]
platformdirs = ">=2.5"
-pywin32 = {version = ">=300", markers = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\""}
traitlets = ">=5.3"
[package.extras]
@@ -1668,29 +1847,29 @@ test = ["click", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.19.0)", "p
[[package]]
name = "jupyter-lsp"
-version = "2.2.5"
+version = "2.3.0"
description = "Multi-Language Server WebSocket proxy for Jupyter Notebook/Lab server"
optional = false
python-versions = ">=3.8"
groups = ["main"]
files = [
- {file = "jupyter-lsp-2.2.5.tar.gz", hash = "sha256:793147a05ad446f809fd53ef1cd19a9f5256fd0a2d6b7ce943a982cb4f545001"},
- {file = "jupyter_lsp-2.2.5-py3-none-any.whl", hash = "sha256:45fbddbd505f3fbfb0b6cb2f1bc5e15e83ab7c79cd6e89416b248cb3c00c11da"}
+ {file = "jupyter_lsp-2.3.0-py3-none-any.whl", hash = "sha256:e914a3cb2addf48b1c7710914771aaf1819d46b2e5a79b0f917b5478ec93f34f"},
+ {file = "jupyter_lsp-2.3.0.tar.gz", hash = "sha256:458aa59339dc868fb784d73364f17dbce8836e906cd75fd471a325cba02e0245"}
]
[package.dependencies]
-jupyter-server = ">=1.1.2"
+jupyter_server = ">=1.1.2"
[[package]]
name = "jupyter-server"
-version = "2.16.0"
+version = "2.17.0"
description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications."
optional = false
python-versions = ">=3.9"
groups = ["main"]
files = [
- {file = "jupyter_server-2.16.0-py3-none-any.whl", hash = "sha256:3d8db5be3bc64403b1c65b400a1d7f4647a5ce743f3b20dbdefe8ddb7b55af9e"},
- {file = "jupyter_server-2.16.0.tar.gz", hash = "sha256:65d4b44fdf2dcbbdfe0aa1ace4a842d4aaf746a2b7b168134d5aaed35621b7f6"}
+ {file = "jupyter_server-2.17.0-py3-none-any.whl", hash = "sha256:e8cb9c7db4251f51ed307e329b81b72ccf2056ff82d50524debde1ee1870e13f"},
+ {file = "jupyter_server-2.17.0.tar.gz", hash = "sha256:c38ea898566964c888b4772ae1ed58eca84592e88251d2cfc4d171f81f7e99d5"}
]
[package.dependencies]
@@ -1703,7 +1882,7 @@ jupyter-events = ">=0.11.0"
jupyter-server-terminals = ">=0.4.4"
nbconvert = ">=6.4.4"
nbformat = ">=5.3.0"
-overrides = ">=5.0"
+overrides = {version = ">=5.0", markers = "python_version < \"3.12\""}
packaging = ">=22.0"
prometheus-client = ">=0.9"
pywinpty = {version = ">=2.0.1", markers = "os_name == \"nt\""}
@@ -1740,20 +1919,20 @@ test = ["jupyter-server (>=2.0.0)", "pytest (>=7.0)", "pytest-jupyter[server] (>
[[package]]
name = "jupyterlab"
-version = "4.4.3"
+version = "4.4.9"
description = "JupyterLab computational environment"
optional = false
python-versions = ">=3.9"
groups = ["main"]
files = [
- {file = "jupyterlab-4.4.3-py3-none-any.whl", hash = "sha256:164302f6d4b6c44773dfc38d585665a4db401a16e5296c37df5cba63904fbdea"},
- {file = "jupyterlab-4.4.3.tar.gz", hash = "sha256:a94c32fd7f8b93e82a49dc70a6ec45a5c18281ca2a7228d12765e4e210e5bca2"}
+ {file = "jupyterlab-4.4.9-py3-none-any.whl", hash = "sha256:394c902827350c017430a8370b9f40c03c098773084bc53930145c146d3d2cb2"},
+ {file = "jupyterlab-4.4.9.tar.gz", hash = "sha256:ea55aca8269909016d5fde2dc09b97128bc931230183fe7e2920ede5154ad9c2"}
]
[package.dependencies]
async-lru = ">=1.0.0"
-httpx = ">=0.25.0"
-ipykernel = ">=6.5.0"
+httpx = ">=0.25.0,<1"
+ipykernel = ">=6.5.0,<6.30.0 || >6.30.0"
jinja2 = ">=3.0.3"
jupyter-core = "*"
jupyter-lsp = ">=2.0.0"
@@ -1825,94 +2004,133 @@ files = [
[[package]]
name = "kiwisolver"
-version = "1.4.8"
+version = "1.4.9"
description = "A fast implementation of the Cassowary constraint solver"
optional = false
python-versions = ">=3.10"
groups = ["main"]
files = [
- {file = "kiwisolver-1.4.8-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:88c6f252f6816a73b1f8c904f7bbe02fd67c09a69f7cb8a0eecdbf5ce78e63db"},
- {file = "kiwisolver-1.4.8-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c72941acb7b67138f35b879bbe85be0f6c6a70cab78fe3ef6db9c024d9223e5b"},
- {file = "kiwisolver-1.4.8-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ce2cf1e5688edcb727fdf7cd1bbd0b6416758996826a8be1d958f91880d0809d"},
- {file = "kiwisolver-1.4.8-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:c8bf637892dc6e6aad2bc6d4d69d08764166e5e3f69d469e55427b6ac001b19d"},
- {file = "kiwisolver-1.4.8-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:034d2c891f76bd3edbdb3ea11140d8510dca675443da7304205a2eaa45d8334c"},
- {file = "kiwisolver-1.4.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d47b28d1dfe0793d5e96bce90835e17edf9a499b53969b03c6c47ea5985844c3"},
- {file = "kiwisolver-1.4.8-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eb158fe28ca0c29f2260cca8c43005329ad58452c36f0edf298204de32a9a3ed"},
- {file = "kiwisolver-1.4.8-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d5536185fce131780ebd809f8e623bf4030ce1b161353166c49a3c74c287897f"},
- {file = "kiwisolver-1.4.8-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:369b75d40abedc1da2c1f4de13f3482cb99e3237b38726710f4a793432b1c5ff"},
- {file = "kiwisolver-1.4.8-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:641f2ddf9358c80faa22e22eb4c9f54bd3f0e442e038728f500e3b978d00aa7d"},
- {file = "kiwisolver-1.4.8-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d561d2d8883e0819445cfe58d7ddd673e4015c3c57261d7bdcd3710d0d14005c"},
- {file = "kiwisolver-1.4.8-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:1732e065704b47c9afca7ffa272f845300a4eb959276bf6970dc07265e73b605"},
- {file = "kiwisolver-1.4.8-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:bcb1ebc3547619c3b58a39e2448af089ea2ef44b37988caf432447374941574e"},
- {file = "kiwisolver-1.4.8-cp310-cp310-win_amd64.whl", hash = "sha256:89c107041f7b27844179ea9c85d6da275aa55ecf28413e87624d033cf1f6b751"},
- {file = "kiwisolver-1.4.8-cp310-cp310-win_arm64.whl", hash = "sha256:b5773efa2be9eb9fcf5415ea3ab70fc785d598729fd6057bea38d539ead28271"},
- {file = "kiwisolver-1.4.8-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a4d3601908c560bdf880f07d94f31d734afd1bb71e96585cace0e38ef44c6d84"},
- {file = "kiwisolver-1.4.8-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:856b269c4d28a5c0d5e6c1955ec36ebfd1651ac00e1ce0afa3e28da95293b561"},
- {file = "kiwisolver-1.4.8-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c2b9a96e0f326205af81a15718a9073328df1173a2619a68553decb7097fd5d7"},
- {file = "kiwisolver-1.4.8-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c5020c83e8553f770cb3b5fc13faac40f17e0b205bd237aebd21d53d733adb03"},
- {file = "kiwisolver-1.4.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dace81d28c787956bfbfbbfd72fdcef014f37d9b48830829e488fdb32b49d954"},
- {file = "kiwisolver-1.4.8-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:11e1022b524bd48ae56c9b4f9296bce77e15a2e42a502cceba602f804b32bb79"},
- {file = "kiwisolver-1.4.8-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3b9b4d2892fefc886f30301cdd80debd8bb01ecdf165a449eb6e78f79f0fabd6"},
- {file = "kiwisolver-1.4.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a96c0e790ee875d65e340ab383700e2b4891677b7fcd30a699146f9384a2bb0"},
- {file = "kiwisolver-1.4.8-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:23454ff084b07ac54ca8be535f4174170c1094a4cff78fbae4f73a4bcc0d4dab"},
- {file = "kiwisolver-1.4.8-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:87b287251ad6488e95b4f0b4a79a6d04d3ea35fde6340eb38fbd1ca9cd35bbbc"},
- {file = "kiwisolver-1.4.8-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:b21dbe165081142b1232a240fc6383fd32cdd877ca6cc89eab93e5f5883e1c25"},
- {file = "kiwisolver-1.4.8-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:768cade2c2df13db52475bd28d3a3fac8c9eff04b0e9e2fda0f3760f20b3f7fc"},
- {file = "kiwisolver-1.4.8-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d47cfb2650f0e103d4bf68b0b5804c68da97272c84bb12850d877a95c056bd67"},
- {file = "kiwisolver-1.4.8-cp311-cp311-win_amd64.whl", hash = "sha256:ed33ca2002a779a2e20eeb06aea7721b6e47f2d4b8a8ece979d8ba9e2a167e34"},
- {file = "kiwisolver-1.4.8-cp311-cp311-win_arm64.whl", hash = "sha256:16523b40aab60426ffdebe33ac374457cf62863e330a90a0383639ce14bf44b2"},
- {file = "kiwisolver-1.4.8-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d6af5e8815fd02997cb6ad9bbed0ee1e60014438ee1a5c2444c96f87b8843502"},
- {file = "kiwisolver-1.4.8-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:bade438f86e21d91e0cf5dd7c0ed00cda0f77c8c1616bd83f9fc157fa6760d31"},
- {file = "kiwisolver-1.4.8-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b83dc6769ddbc57613280118fb4ce3cd08899cc3369f7d0e0fab518a7cf37fdb"},
- {file = "kiwisolver-1.4.8-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:111793b232842991be367ed828076b03d96202c19221b5ebab421ce8bcad016f"},
- {file = "kiwisolver-1.4.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:257af1622860e51b1a9d0ce387bf5c2c4f36a90594cb9514f55b074bcc787cfc"},
- {file = "kiwisolver-1.4.8-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:69b5637c3f316cab1ec1c9a12b8c5f4750a4c4b71af9157645bf32830e39c03a"},
- {file = "kiwisolver-1.4.8-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:782bb86f245ec18009890e7cb8d13a5ef54dcf2ebe18ed65f795e635a96a1c6a"},
- {file = "kiwisolver-1.4.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc978a80a0db3a66d25767b03688f1147a69e6237175c0f4ffffaaedf744055a"},
- {file = "kiwisolver-1.4.8-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:36dbbfd34838500a31f52c9786990d00150860e46cd5041386f217101350f0d3"},
- {file = "kiwisolver-1.4.8-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:eaa973f1e05131de5ff3569bbba7f5fd07ea0595d3870ed4a526d486fe57fa1b"},
- {file = "kiwisolver-1.4.8-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:a66f60f8d0c87ab7f59b6fb80e642ebb29fec354a4dfad687ca4092ae69d04f4"},
- {file = "kiwisolver-1.4.8-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:858416b7fb777a53f0c59ca08190ce24e9abbd3cffa18886a5781b8e3e26f65d"},
- {file = "kiwisolver-1.4.8-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:085940635c62697391baafaaeabdf3dd7a6c3643577dde337f4d66eba021b2b8"},
- {file = "kiwisolver-1.4.8-cp312-cp312-win_amd64.whl", hash = "sha256:01c3d31902c7db5fb6182832713d3b4122ad9317c2c5877d0539227d96bb2e50"},
- {file = "kiwisolver-1.4.8-cp312-cp312-win_arm64.whl", hash = "sha256:a3c44cb68861de93f0c4a8175fbaa691f0aa22550c331fefef02b618a9dcb476"},
- {file = "kiwisolver-1.4.8-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:1c8ceb754339793c24aee1c9fb2485b5b1f5bb1c2c214ff13368431e51fc9a09"},
- {file = "kiwisolver-1.4.8-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:54a62808ac74b5e55a04a408cda6156f986cefbcf0ada13572696b507cc92fa1"},
- {file = "kiwisolver-1.4.8-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:68269e60ee4929893aad82666821aaacbd455284124817af45c11e50a4b42e3c"},
- {file = "kiwisolver-1.4.8-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:34d142fba9c464bc3bbfeff15c96eab0e7310343d6aefb62a79d51421fcc5f1b"},
- {file = "kiwisolver-1.4.8-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ddc373e0eef45b59197de815b1b28ef89ae3955e7722cc9710fb91cd77b7f47"},
- {file = "kiwisolver-1.4.8-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:77e6f57a20b9bd4e1e2cedda4d0b986ebd0216236f0106e55c28aea3d3d69b16"},
- {file = "kiwisolver-1.4.8-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:08e77738ed7538f036cd1170cbed942ef749137b1311fa2bbe2a7fda2f6bf3cc"},
- {file = "kiwisolver-1.4.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a5ce1e481a74b44dd5e92ff03ea0cb371ae7a0268318e202be06c8f04f4f1246"},
- {file = "kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:fc2ace710ba7c1dfd1a3b42530b62b9ceed115f19a1656adefce7b1782a37794"},
- {file = "kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:3452046c37c7692bd52b0e752b87954ef86ee2224e624ef7ce6cb21e8c41cc1b"},
- {file = "kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:7e9a60b50fe8b2ec6f448fe8d81b07e40141bfced7f896309df271a0b92f80f3"},
- {file = "kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:918139571133f366e8362fa4a297aeba86c7816b7ecf0bc79168080e2bd79957"},
- {file = "kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e063ef9f89885a1d68dd8b2e18f5ead48653176d10a0e324e3b0030e3a69adeb"},
- {file = "kiwisolver-1.4.8-cp313-cp313-win_amd64.whl", hash = "sha256:a17b7c4f5b2c51bb68ed379defd608a03954a1845dfed7cc0117f1cc8a9b7fd2"},
- {file = "kiwisolver-1.4.8-cp313-cp313-win_arm64.whl", hash = "sha256:3cd3bc628b25f74aedc6d374d5babf0166a92ff1317f46267f12d2ed54bc1d30"},
- {file = "kiwisolver-1.4.8-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:370fd2df41660ed4e26b8c9d6bbcad668fbe2560462cba151a721d49e5b6628c"},
- {file = "kiwisolver-1.4.8-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:84a2f830d42707de1d191b9490ac186bf7997a9495d4e9072210a1296345f7dc"},
- {file = "kiwisolver-1.4.8-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:7a3ad337add5148cf51ce0b55642dc551c0b9d6248458a757f98796ca7348712"},
- {file = "kiwisolver-1.4.8-cp313-cp313t-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7506488470f41169b86d8c9aeff587293f530a23a23a49d6bc64dab66bedc71e"},
- {file = "kiwisolver-1.4.8-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2f0121b07b356a22fb0414cec4666bbe36fd6d0d759db3d37228f496ed67c880"},
- {file = "kiwisolver-1.4.8-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d6d6bd87df62c27d4185de7c511c6248040afae67028a8a22012b010bc7ad062"},
- {file = "kiwisolver-1.4.8-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:291331973c64bb9cce50bbe871fb2e675c4331dab4f31abe89f175ad7679a4d7"},
- {file = "kiwisolver-1.4.8-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:893f5525bb92d3d735878ec00f781b2de998333659507d29ea4466208df37bed"},
- {file = "kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:b47a465040146981dc9db8647981b8cb96366fbc8d452b031e4f8fdffec3f26d"},
- {file = "kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:99cea8b9dd34ff80c521aef46a1dddb0dcc0283cf18bde6d756f1e6f31772165"},
- {file = "kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:151dffc4865e5fe6dafce5480fab84f950d14566c480c08a53c663a0020504b6"},
- {file = "kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:577facaa411c10421314598b50413aa1ebcf5126f704f1e5d72d7e4e9f020d90"},
- {file = "kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:be4816dc51c8a471749d664161b434912eee82f2ea66bd7628bd14583a833e85"},
- {file = "kiwisolver-1.4.8-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:e7a019419b7b510f0f7c9dceff8c5eae2392037eae483a7f9162625233802b0a"},
- {file = "kiwisolver-1.4.8-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:286b18e86682fd2217a48fc6be6b0f20c1d0ed10958d8dc53453ad58d7be0bf8"},
- {file = "kiwisolver-1.4.8-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4191ee8dfd0be1c3666ccbac178c5a05d5f8d689bbe3fc92f3c4abec817f8fe0"},
- {file = "kiwisolver-1.4.8-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7cd2785b9391f2873ad46088ed7599a6a71e762e1ea33e87514b1a441ed1da1c"},
- {file = "kiwisolver-1.4.8-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c07b29089b7ba090b6f1a669f1411f27221c3662b3a1b7010e67b59bb5a6f10b"},
- {file = "kiwisolver-1.4.8-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:65ea09a5a3faadd59c2ce96dc7bf0f364986a315949dc6374f04396b0d60e09b"},
- {file = "kiwisolver-1.4.8.tar.gz", hash = "sha256:23d5f023bdc8c7e54eb65f03ca5d5bb25b601eac4d7f1a042888a1f45237987e"}
+ {file = "kiwisolver-1.4.9-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b4b4d74bda2b8ebf4da5bd42af11d02d04428b2c32846e4c2c93219df8a7987b"},
+ {file = "kiwisolver-1.4.9-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:fb3b8132019ea572f4611d770991000d7f58127560c4889729248eb5852a102f"},
+ {file = "kiwisolver-1.4.9-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:84fd60810829c27ae375114cd379da1fa65e6918e1da405f356a775d49a62bcf"},
+ {file = "kiwisolver-1.4.9-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:b78efa4c6e804ecdf727e580dbb9cba85624d2e1c6b5cb059c66290063bd99a9"},
+ {file = "kiwisolver-1.4.9-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d4efec7bcf21671db6a3294ff301d2fc861c31faa3c8740d1a94689234d1b415"},
+ {file = "kiwisolver-1.4.9-cp310-cp310-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:90f47e70293fc3688b71271100a1a5453aa9944a81d27ff779c108372cf5567b"},
+ {file = "kiwisolver-1.4.9-cp310-cp310-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8fdca1def57a2e88ef339de1737a1449d6dbf5fab184c54a1fca01d541317154"},
+ {file = "kiwisolver-1.4.9-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:9cf554f21be770f5111a1690d42313e140355e687e05cf82cb23d0a721a64a48"},
+ {file = "kiwisolver-1.4.9-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:fc1795ac5cd0510207482c3d1d3ed781143383b8cfd36f5c645f3897ce066220"},
+ {file = "kiwisolver-1.4.9-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:ccd09f20ccdbbd341b21a67ab50a119b64a403b09288c27481575105283c1586"},
+ {file = "kiwisolver-1.4.9-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:540c7c72324d864406a009d72f5d6856f49693db95d1fbb46cf86febef873634"},
+ {file = "kiwisolver-1.4.9-cp310-cp310-win_amd64.whl", hash = "sha256:ede8c6d533bc6601a47ad4046080d36b8fc99f81e6f1c17b0ac3c2dc91ac7611"},
+ {file = "kiwisolver-1.4.9-cp310-cp310-win_arm64.whl", hash = "sha256:7b4da0d01ac866a57dd61ac258c5607b4cd677f63abaec7b148354d2b2cdd536"},
+ {file = "kiwisolver-1.4.9-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:eb14a5da6dc7642b0f3a18f13654847cd8b7a2550e2645a5bda677862b03ba16"},
+ {file = "kiwisolver-1.4.9-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:39a219e1c81ae3b103643d2aedb90f1ef22650deb266ff12a19e7773f3e5f089"},
+ {file = "kiwisolver-1.4.9-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2405a7d98604b87f3fc28b1716783534b1b4b8510d8142adca34ee0bc3c87543"},
+ {file = "kiwisolver-1.4.9-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:dc1ae486f9abcef254b5618dfb4113dd49f94c68e3e027d03cf0143f3f772b61"},
+ {file = "kiwisolver-1.4.9-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8a1f570ce4d62d718dce3f179ee78dac3b545ac16c0c04bb363b7607a949c0d1"},
+ {file = "kiwisolver-1.4.9-cp311-cp311-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:cb27e7b78d716c591e88e0a09a2139c6577865d7f2e152488c2cc6257f460872"},
+ {file = "kiwisolver-1.4.9-cp311-cp311-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:15163165efc2f627eb9687ea5f3a28137217d217ac4024893d753f46bce9de26"},
+ {file = "kiwisolver-1.4.9-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:bdee92c56a71d2b24c33a7d4c2856bd6419d017e08caa7802d2963870e315028"},
+ {file = "kiwisolver-1.4.9-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:412f287c55a6f54b0650bd9b6dce5aceddb95864a1a90c87af16979d37c89771"},
+ {file = "kiwisolver-1.4.9-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:2c93f00dcba2eea70af2be5f11a830a742fe6b579a1d4e00f47760ef13be247a"},
+ {file = "kiwisolver-1.4.9-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f117e1a089d9411663a3207ba874f31be9ac8eaa5b533787024dc07aeb74f464"},
+ {file = "kiwisolver-1.4.9-cp311-cp311-win_amd64.whl", hash = "sha256:be6a04e6c79819c9a8c2373317d19a96048e5a3f90bec587787e86a1153883c2"},
+ {file = "kiwisolver-1.4.9-cp311-cp311-win_arm64.whl", hash = "sha256:0ae37737256ba2de764ddc12aed4956460277f00c4996d51a197e72f62f5eec7"},
+ {file = "kiwisolver-1.4.9-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ac5a486ac389dddcc5bef4f365b6ae3ffff2c433324fb38dd35e3fab7c957999"},
+ {file = "kiwisolver-1.4.9-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f2ba92255faa7309d06fe44c3a4a97efe1c8d640c2a79a5ef728b685762a6fd2"},
+ {file = "kiwisolver-1.4.9-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4a2899935e724dd1074cb568ce7ac0dce28b2cd6ab539c8e001a8578eb106d14"},
+ {file = "kiwisolver-1.4.9-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f6008a4919fdbc0b0097089f67a1eb55d950ed7e90ce2cc3e640abadd2757a04"},
+ {file = "kiwisolver-1.4.9-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:67bb8b474b4181770f926f7b7d2f8c0248cbcb78b660fdd41a47054b28d2a752"},
+ {file = "kiwisolver-1.4.9-cp312-cp312-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2327a4a30d3ee07d2fbe2e7933e8a37c591663b96ce42a00bc67461a87d7df77"},
+ {file = "kiwisolver-1.4.9-cp312-cp312-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7a08b491ec91b1d5053ac177afe5290adacf1f0f6307d771ccac5de30592d198"},
+ {file = "kiwisolver-1.4.9-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d8fc5c867c22b828001b6a38d2eaeb88160bf5783c6cb4a5e440efc981ce286d"},
+ {file = "kiwisolver-1.4.9-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:3b3115b2581ea35bb6d1f24a4c90af37e5d9b49dcff267eeed14c3893c5b86ab"},
+ {file = "kiwisolver-1.4.9-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:858e4c22fb075920b96a291928cb7dea5644e94c0ee4fcd5af7e865655e4ccf2"},
+ {file = "kiwisolver-1.4.9-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ed0fecd28cc62c54b262e3736f8bb2512d8dcfdc2bcf08be5f47f96bf405b145"},
+ {file = "kiwisolver-1.4.9-cp312-cp312-win_amd64.whl", hash = "sha256:f68208a520c3d86ea51acf688a3e3002615a7f0238002cccc17affecc86a8a54"},
+ {file = "kiwisolver-1.4.9-cp312-cp312-win_arm64.whl", hash = "sha256:2c1a4f57df73965f3f14df20b80ee29e6a7930a57d2d9e8491a25f676e197c60"},
+ {file = "kiwisolver-1.4.9-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a5d0432ccf1c7ab14f9949eec60c5d1f924f17c037e9f8b33352fa05799359b8"},
+ {file = "kiwisolver-1.4.9-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efb3a45b35622bb6c16dbfab491a8f5a391fe0e9d45ef32f4df85658232ca0e2"},
+ {file = "kiwisolver-1.4.9-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1a12cf6398e8a0a001a059747a1cbf24705e18fe413bc22de7b3d15c67cffe3f"},
+ {file = "kiwisolver-1.4.9-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b67e6efbf68e077dd71d1a6b37e43e1a99d0bff1a3d51867d45ee8908b931098"},
+ {file = "kiwisolver-1.4.9-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5656aa670507437af0207645273ccdfee4f14bacd7f7c67a4306d0dcaeaf6eed"},
+ {file = "kiwisolver-1.4.9-cp313-cp313-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:bfc08add558155345129c7803b3671cf195e6a56e7a12f3dde7c57d9b417f525"},
+ {file = "kiwisolver-1.4.9-cp313-cp313-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:40092754720b174e6ccf9e845d0d8c7d8e12c3d71e7fc35f55f3813e96376f78"},
+ {file = "kiwisolver-1.4.9-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:497d05f29a1300d14e02e6441cf0f5ee81c1ff5a304b0d9fb77423974684e08b"},
+ {file = "kiwisolver-1.4.9-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:bdd1a81a1860476eb41ac4bc1e07b3f07259e6d55bbf739b79c8aaedcf512799"},
+ {file = "kiwisolver-1.4.9-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:e6b93f13371d341afee3be9f7c5964e3fe61d5fa30f6a30eb49856935dfe4fc3"},
+ {file = "kiwisolver-1.4.9-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d75aa530ccfaa593da12834b86a0724f58bff12706659baa9227c2ccaa06264c"},
+ {file = "kiwisolver-1.4.9-cp313-cp313-win_amd64.whl", hash = "sha256:dd0a578400839256df88c16abddf9ba14813ec5f21362e1fe65022e00c883d4d"},
+ {file = "kiwisolver-1.4.9-cp313-cp313-win_arm64.whl", hash = "sha256:d4188e73af84ca82468f09cadc5ac4db578109e52acb4518d8154698d3a87ca2"},
+ {file = "kiwisolver-1.4.9-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:5a0f2724dfd4e3b3ac5a82436a8e6fd16baa7d507117e4279b660fe8ca38a3a1"},
+ {file = "kiwisolver-1.4.9-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:1b11d6a633e4ed84fc0ddafd4ebfd8ea49b3f25082c04ad12b8315c11d504dc1"},
+ {file = "kiwisolver-1.4.9-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:61874cdb0a36016354853593cffc38e56fc9ca5aa97d2c05d3dcf6922cd55a11"},
+ {file = "kiwisolver-1.4.9-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:60c439763a969a6af93b4881db0eed8fadf93ee98e18cbc35bc8da868d0c4f0c"},
+ {file = "kiwisolver-1.4.9-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:92a2f997387a1b79a75e7803aa7ded2cfbe2823852ccf1ba3bcf613b62ae3197"},
+ {file = "kiwisolver-1.4.9-cp313-cp313t-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a31d512c812daea6d8b3be3b2bfcbeb091dbb09177706569bcfc6240dcf8b41c"},
+ {file = "kiwisolver-1.4.9-cp313-cp313t-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:52a15b0f35dad39862d376df10c5230155243a2c1a436e39eb55623ccbd68185"},
+ {file = "kiwisolver-1.4.9-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a30fd6fdef1430fd9e1ba7b3398b5ee4e2887783917a687d86ba69985fb08748"},
+ {file = "kiwisolver-1.4.9-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:cc9617b46837c6468197b5945e196ee9ca43057bb7d9d1ae688101e4e1dddf64"},
+ {file = "kiwisolver-1.4.9-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:0ab74e19f6a2b027ea4f845a78827969af45ce790e6cb3e1ebab71bdf9f215ff"},
+ {file = "kiwisolver-1.4.9-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:dba5ee5d3981160c28d5490f0d1b7ed730c22470ff7f6cc26cfcfaacb9896a07"},
+ {file = "kiwisolver-1.4.9-cp313-cp313t-win_arm64.whl", hash = "sha256:0749fd8f4218ad2e851e11cc4dc05c7cbc0cbc4267bdfdb31782e65aace4ee9c"},
+ {file = "kiwisolver-1.4.9-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:9928fe1eb816d11ae170885a74d074f57af3a0d65777ca47e9aeb854a1fba386"},
+ {file = "kiwisolver-1.4.9-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:d0005b053977e7b43388ddec89fa567f43d4f6d5c2c0affe57de5ebf290dc552"},
+ {file = "kiwisolver-1.4.9-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:2635d352d67458b66fd0667c14cb1d4145e9560d503219034a18a87e971ce4f3"},
+ {file = "kiwisolver-1.4.9-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:767c23ad1c58c9e827b649a9ab7809fd5fd9db266a9cf02b0e926ddc2c680d58"},
+ {file = "kiwisolver-1.4.9-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:72d0eb9fba308b8311685c2268cf7d0a0639a6cd027d8128659f72bdd8a024b4"},
+ {file = "kiwisolver-1.4.9-cp314-cp314-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f68e4f3eeca8fb22cc3d731f9715a13b652795ef657a13df1ad0c7dc0e9731df"},
+ {file = "kiwisolver-1.4.9-cp314-cp314-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d84cd4061ae292d8ac367b2c3fa3aad11cb8625a95d135fe93f286f914f3f5a6"},
+ {file = "kiwisolver-1.4.9-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:a60ea74330b91bd22a29638940d115df9dc00af5035a9a2a6ad9399ffb4ceca5"},
+ {file = "kiwisolver-1.4.9-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:ce6a3a4e106cf35c2d9c4fa17c05ce0b180db622736845d4315519397a77beaf"},
+ {file = "kiwisolver-1.4.9-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:77937e5e2a38a7b48eef0585114fe7930346993a88060d0bf886086d2aa49ef5"},
+ {file = "kiwisolver-1.4.9-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:24c175051354f4a28c5d6a31c93906dc653e2bf234e8a4bbfb964892078898ce"},
+ {file = "kiwisolver-1.4.9-cp314-cp314-win_amd64.whl", hash = "sha256:0763515d4df10edf6d06a3c19734e2566368980d21ebec439f33f9eb936c07b7"},
+ {file = "kiwisolver-1.4.9-cp314-cp314-win_arm64.whl", hash = "sha256:0e4e2bf29574a6a7b7f6cb5fa69293b9f96c928949ac4a53ba3f525dffb87f9c"},
+ {file = "kiwisolver-1.4.9-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:d976bbb382b202f71c67f77b0ac11244021cfa3f7dfd9e562eefcea2df711548"},
+ {file = "kiwisolver-1.4.9-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:2489e4e5d7ef9a1c300a5e0196e43d9c739f066ef23270607d45aba368b91f2d"},
+ {file = "kiwisolver-1.4.9-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:e2ea9f7ab7fbf18fffb1b5434ce7c69a07582f7acc7717720f1d69f3e806f90c"},
+ {file = "kiwisolver-1.4.9-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b34e51affded8faee0dfdb705416153819d8ea9250bbbf7ea1b249bdeb5f1122"},
+ {file = "kiwisolver-1.4.9-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d8aacd3d4b33b772542b2e01beb50187536967b514b00003bdda7589722d2a64"},
+ {file = "kiwisolver-1.4.9-cp314-cp314t-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:7cf974dd4e35fa315563ac99d6287a1024e4dc2077b8a7d7cd3d2fb65d283134"},
+ {file = "kiwisolver-1.4.9-cp314-cp314t-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:85bd218b5ecfbee8c8a82e121802dcb519a86044c9c3b2e4aef02fa05c6da370"},
+ {file = "kiwisolver-1.4.9-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:0856e241c2d3df4efef7c04a1e46b1936b6120c9bcf36dd216e3acd84bc4fb21"},
+ {file = "kiwisolver-1.4.9-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:9af39d6551f97d31a4deebeac6f45b156f9755ddc59c07b402c148f5dbb6482a"},
+ {file = "kiwisolver-1.4.9-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:bb4ae2b57fc1d8cbd1cf7b1d9913803681ffa903e7488012be5b76dedf49297f"},
+ {file = "kiwisolver-1.4.9-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:aedff62918805fb62d43a4aa2ecd4482c380dc76cd31bd7c8878588a61bd0369"},
+ {file = "kiwisolver-1.4.9-cp314-cp314t-win_amd64.whl", hash = "sha256:1fa333e8b2ce4d9660f2cda9c0e1b6bafcfb2457a9d259faa82289e73ec24891"},
+ {file = "kiwisolver-1.4.9-cp314-cp314t-win_arm64.whl", hash = "sha256:4a48a2ce79d65d363597ef7b567ce3d14d68783d2b2263d98db3d9477805ba32"},
+ {file = "kiwisolver-1.4.9-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:4d1d9e582ad4d63062d34077a9a1e9f3c34088a2ec5135b1f7190c07cf366527"},
+ {file = "kiwisolver-1.4.9-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:deed0c7258ceb4c44ad5ec7d9918f9f14fd05b2be86378d86cf50e63d1e7b771"},
+ {file = "kiwisolver-1.4.9-pp310-pypy310_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0a590506f303f512dff6b7f75fd2fd18e16943efee932008fe7140e5fa91d80e"},
+ {file = "kiwisolver-1.4.9-pp310-pypy310_pp73-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e09c2279a4d01f099f52d5c4b3d9e208e91edcbd1a175c9662a8b16e000fece9"},
+ {file = "kiwisolver-1.4.9-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:c9e7cdf45d594ee04d5be1b24dd9d49f3d1590959b2271fb30b5ca2b262c00fb"},
+ {file = "kiwisolver-1.4.9-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:720e05574713db64c356e86732c0f3c5252818d05f9df320f0ad8380641acea5"},
+ {file = "kiwisolver-1.4.9-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:17680d737d5335b552994a2008fab4c851bcd7de33094a82067ef3a576ff02fa"},
+ {file = "kiwisolver-1.4.9-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:85b5352f94e490c028926ea567fc569c52ec79ce131dadb968d3853e809518c2"},
+ {file = "kiwisolver-1.4.9-pp311-pypy311_pp73-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:464415881e4801295659462c49461a24fb107c140de781d55518c4b80cb6790f"},
+ {file = "kiwisolver-1.4.9-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:fb940820c63a9590d31d88b815e7a3aa5915cad3ce735ab45f0c730b39547de1"},
+ {file = "kiwisolver-1.4.9.tar.gz", hash = "sha256:c3b22c26c6fd6811b0ae8363b95ca8ce4ea3c202d3d0975b2914310ceb1bcc4d"}
+]
+
+[[package]]
+name = "lark"
+version = "1.3.0"
+description = "a modern parsing library"
+optional = false
+python-versions = ">=3.8"
+groups = ["main"]
+files = [
+ {file = "lark-1.3.0-py3-none-any.whl", hash = "sha256:80661f261fb2584a9828a097a2432efd575af27d20be0fd35d17f0fe37253831"},
+ {file = "lark-1.3.0.tar.gz", hash = "sha256:9a3839d0ca5e1faf7cfa3460e420e859b66bcbde05b634e73c369c8244c5fa48"}
]
+[package.extras]
+atomic-cache = ["atomicwrites"]
+interegular = ["interegular (>=0.3.1,<0.4.0)"]
+nearley = ["js2py"]
+regex = ["regex"]
+
[[package]]
name = "legacy-api-wrap"
version = "1.4.1"
@@ -1977,33 +2195,33 @@ igraph = ">=0.10.0,<0.12"
[[package]]
name = "llvmlite"
-version = "0.45.0"
+version = "0.45.1"
description = "lightweight wrapper around basic LLVM functionality"
optional = false
python-versions = ">=3.10"
groups = ["main"]
files = [
- {file = "llvmlite-0.45.0-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:3018e5f8547c8b05e736281d5bd23ff86b88ab94697db2beeaa6f3bce9cfc721"},
- {file = "llvmlite-0.45.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ca7b15dc4422551f1b5fb1dbd734d5e8a9416028890d31d4e23a04fbc8a975c4"},
- {file = "llvmlite-0.45.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:a9c7343bec403a79248859df75c7945768de70bf547eac8c1cc8b8840e0336ba"},
- {file = "llvmlite-0.45.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:56713a25bf81081fc818aa36cbffb70533b3c23291ce0efc17ac8a3b684b8be3"},
- {file = "llvmlite-0.45.0-cp310-cp310-win_amd64.whl", hash = "sha256:849ba7de7153d8d92bc66577bb951c9baf8d9f67f2521c4f39c78718d471362e"},
- {file = "llvmlite-0.45.0-cp311-cp311-macosx_10_15_x86_64.whl", hash = "sha256:9b1b37e00b553e9420d9a2e327e84c5ac65a5690dcacf7fc153014780d97532a"},
- {file = "llvmlite-0.45.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:cd039b8da5514db2729b7c9ae7526cae8da748a540fa3ab721b50c54651d2362"},
- {file = "llvmlite-0.45.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c6815d0d3f96de34491d3dc192e11e933e3448ceff0b58572a53f39795996e01"},
- {file = "llvmlite-0.45.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ba79cc2cbdd0f61632ca8e9235fef3657a8aacd636d5775cd13807ceb8265f63"},
- {file = "llvmlite-0.45.0-cp311-cp311-win_amd64.whl", hash = "sha256:6188da8e9e3906b167fb64bc84a05e6bf98095d982f45f323bed5def2ba7db1c"},
- {file = "llvmlite-0.45.0-cp312-cp312-macosx_10_15_x86_64.whl", hash = "sha256:3928119253849e7c9aad4f881feb3e886370bb7ac6eccbc728b35a1be89064cc"},
- {file = "llvmlite-0.45.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a3e9b5dad694edb9e43904ede037458ee73a18b4e2f227e44fc0f808aceab824"},
- {file = "llvmlite-0.45.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4955635f316e3ffc0271ee7a3da586ae92cd3e70709b6cd59df641e980636d4c"},
- {file = "llvmlite-0.45.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5e7497f1b75d741e568bf4a2dfccd5c702d6b5f3d232dd4a59ed851a82e587bd"},
- {file = "llvmlite-0.45.0-cp312-cp312-win_amd64.whl", hash = "sha256:6404f5363986efbe1c7c1afd19da495534e46180466d593ace5a5c042b2f3f94"},
- {file = "llvmlite-0.45.0-cp313-cp313-macosx_10_15_x86_64.whl", hash = "sha256:f719f98e4f3a6292b1a6495500b2cf668d3604907499c483b326da5ce2ff9f01"},
- {file = "llvmlite-0.45.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:4ffa899f7584ef48f1037308d92cb19460a0afb834aa1fe9db9d3e52d0e81a79"},
- {file = "llvmlite-0.45.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2c12fde908967e464b265554143c030ba4dcc2b981a815582d7708a30295018e"},
- {file = "llvmlite-0.45.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:83567cbbf598eb57f108222dfc3dfee065c20a2aa004391360949f2e8ff2b8b4"},
- {file = "llvmlite-0.45.0-cp313-cp313-win_amd64.whl", hash = "sha256:f68890ceb662e874933103e91e239389ff7275c4befba8e43ccd46ae3231b89e"},
- {file = "llvmlite-0.45.0.tar.gz", hash = "sha256:ceb0bcd20da949178bd7ab78af8de73e9f3c483ac46b5bef39f06a4862aa8336"}
+ {file = "llvmlite-0.45.1-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:1b1af0c910af0978aa55fa4f60bbb3e9f39b41e97c2a6d94d199897be62ba07a"},
+ {file = "llvmlite-0.45.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02a164db2d79088bbd6e0d9633b4fe4021d6379d7e4ac7cc85ed5f44b06a30c5"},
+ {file = "llvmlite-0.45.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f2d47f34e4029e6df3395de34cc1c66440a8d72712993a6e6168db228686711b"},
+ {file = "llvmlite-0.45.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f7319e5f9f90720578a7f56fbc805bdfb4bc071b507c7611f170d631c3c0f1e0"},
+ {file = "llvmlite-0.45.1-cp310-cp310-win_amd64.whl", hash = "sha256:4edb62e685867799e336723cb9787ec6598d51d0b1ed9af0f38e692aa757e898"},
+ {file = "llvmlite-0.45.1-cp311-cp311-macosx_10_15_x86_64.whl", hash = "sha256:60f92868d5d3af30b4239b50e1717cb4e4e54f6ac1c361a27903b318d0f07f42"},
+ {file = "llvmlite-0.45.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:98baab513e19beb210f1ef39066288784839a44cd504e24fff5d17f1b3cf0860"},
+ {file = "llvmlite-0.45.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3adc2355694d6a6fbcc024d59bb756677e7de506037c878022d7b877e7613a36"},
+ {file = "llvmlite-0.45.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2f3377a6db40f563058c9515dedcc8a3e562d8693a106a28f2ddccf2c8fcf6ca"},
+ {file = "llvmlite-0.45.1-cp311-cp311-win_amd64.whl", hash = "sha256:f9c272682d91e0d57f2a76c6d9ebdfccc603a01828cdbe3d15273bdca0c3363a"},
+ {file = "llvmlite-0.45.1-cp312-cp312-macosx_10_15_x86_64.whl", hash = "sha256:28e763aba92fe9c72296911e040231d486447c01d4f90027c8e893d89d49b20e"},
+ {file = "llvmlite-0.45.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1a53f4b74ee9fd30cb3d27d904dadece67a7575198bd80e687ee76474620735f"},
+ {file = "llvmlite-0.45.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5b3796b1b1e1c14dcae34285d2f4ea488402fbd2c400ccf7137603ca3800864f"},
+ {file = "llvmlite-0.45.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:779e2f2ceefef0f4368548685f0b4adde34e5f4b457e90391f570a10b348d433"},
+ {file = "llvmlite-0.45.1-cp312-cp312-win_amd64.whl", hash = "sha256:9e6c9949baf25d9aa9cd7cf0f6d011b9ca660dd17f5ba2b23bdbdb77cc86b116"},
+ {file = "llvmlite-0.45.1-cp313-cp313-macosx_10_15_x86_64.whl", hash = "sha256:d9ea9e6f17569a4253515cc01dade70aba536476e3d750b2e18d81d7e670eb15"},
+ {file = "llvmlite-0.45.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:c9f3cadee1630ce4ac18ea38adebf2a4f57a89bd2740ce83746876797f6e0bfb"},
+ {file = "llvmlite-0.45.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:57c48bf2e1083eedbc9406fb83c4e6483017879714916fe8be8a72a9672c995a"},
+ {file = "llvmlite-0.45.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3aa3dfceda4219ae39cf18806c60eeb518c1680ff834b8b311bd784160b9ce40"},
+ {file = "llvmlite-0.45.1-cp313-cp313-win_amd64.whl", hash = "sha256:080e6f8d0778a8239cd47686d402cb66eb165e421efa9391366a9b7e5810a38b"},
+ {file = "llvmlite-0.45.1.tar.gz", hash = "sha256:09430bb9d0bb58fc45a45a57c7eae912850bedc095cd0810a57de109c69e1c32"}
]
[[package]]
@@ -2101,117 +2319,166 @@ testing = ["pytest"]
[[package]]
name = "markupsafe"
-version = "3.0.2"
+version = "3.0.3"
description = "Safely add untrusted strings to HTML/XML markup."
optional = false
python-versions = ">=3.9"
groups = ["main"]
files = [
- {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"},
- {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"},
- {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579"},
- {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d"},
- {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb"},
- {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b"},
- {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c"},
- {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171"},
- {file = "MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50"},
- {file = "MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a"},
- {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d"},
- {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93"},
- {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832"},
- {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84"},
- {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca"},
- {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798"},
- {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e"},
- {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4"},
- {file = "MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d"},
- {file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"},
- {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf"},
- {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225"},
- {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028"},
- {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8"},
- {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c"},
- {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557"},
- {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22"},
- {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48"},
- {file = "MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30"},
- {file = "MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87"},
- {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd"},
- {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430"},
- {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094"},
- {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396"},
- {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79"},
- {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a"},
- {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca"},
- {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c"},
- {file = "MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1"},
- {file = "MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f"},
- {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c"},
- {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb"},
- {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c"},
- {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d"},
- {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe"},
- {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5"},
- {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a"},
- {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9"},
- {file = "MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6"},
- {file = "MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f"},
- {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a"},
- {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff"},
- {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13"},
- {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144"},
- {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29"},
- {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0"},
- {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0"},
- {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178"},
- {file = "MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f"},
- {file = "MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a"},
- {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"}
+ {file = "markupsafe-3.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2f981d352f04553a7171b8e44369f2af4055f888dfb147d55e42d29e29e74559"},
+ {file = "markupsafe-3.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e1c1493fb6e50ab01d20a22826e57520f1284df32f2d8601fdd90b6304601419"},
+ {file = "markupsafe-3.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1ba88449deb3de88bd40044603fafffb7bc2b055d626a330323a9ed736661695"},
+ {file = "markupsafe-3.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f42d0984e947b8adf7dd6dde396e720934d12c506ce84eea8476409563607591"},
+ {file = "markupsafe-3.0.3-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c0c0b3ade1c0b13b936d7970b1d37a57acde9199dc2aecc4c336773e1d86049c"},
+ {file = "markupsafe-3.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f"},
+ {file = "markupsafe-3.0.3-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:d2ee202e79d8ed691ceebae8e0486bd9a2cd4794cec4824e1c99b6f5009502f6"},
+ {file = "markupsafe-3.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:177b5253b2834fe3678cb4a5f0059808258584c559193998be2601324fdeafb1"},
+ {file = "markupsafe-3.0.3-cp310-cp310-win32.whl", hash = "sha256:2a15a08b17dd94c53a1da0438822d70ebcd13f8c3a95abe3a9ef9f11a94830aa"},
+ {file = "markupsafe-3.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:c4ffb7ebf07cfe8931028e3e4c85f0357459a3f9f9490886198848f4fa002ec8"},
+ {file = "markupsafe-3.0.3-cp310-cp310-win_arm64.whl", hash = "sha256:e2103a929dfa2fcaf9bb4e7c091983a49c9ac3b19c9061b6d5427dd7d14d81a1"},
+ {file = "markupsafe-3.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1cc7ea17a6824959616c525620e387f6dd30fec8cb44f649e31712db02123dad"},
+ {file = "markupsafe-3.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4bd4cd07944443f5a265608cc6aab442e4f74dff8088b0dfc8238647b8f6ae9a"},
+ {file = "markupsafe-3.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b5420a1d9450023228968e7e6a9ce57f65d148ab56d2313fcd589eee96a7a50"},
+ {file = "markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0bf2a864d67e76e5c9a34dc26ec616a66b9888e25e7b9460e1c76d3293bd9dbf"},
+ {file = "markupsafe-3.0.3-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc51efed119bc9cfdf792cdeaa4d67e8f6fcccab66ed4bfdd6bde3e59bfcbb2f"},
+ {file = "markupsafe-3.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:068f375c472b3e7acbe2d5318dea141359e6900156b5b2ba06a30b169086b91a"},
+ {file = "markupsafe-3.0.3-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:7be7b61bb172e1ed687f1754f8e7484f1c8019780f6f6b0786e76bb01c2ae115"},
+ {file = "markupsafe-3.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a"},
+ {file = "markupsafe-3.0.3-cp311-cp311-win32.whl", hash = "sha256:0db14f5dafddbb6d9208827849fad01f1a2609380add406671a26386cdf15a19"},
+ {file = "markupsafe-3.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:de8a88e63464af587c950061a5e6a67d3632e36df62b986892331d4620a35c01"},
+ {file = "markupsafe-3.0.3-cp311-cp311-win_arm64.whl", hash = "sha256:3b562dd9e9ea93f13d53989d23a7e775fdfd1066c33494ff43f5418bc8c58a5c"},
+ {file = "markupsafe-3.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d53197da72cc091b024dd97249dfc7794d6a56530370992a5e1a08983ad9230e"},
+ {file = "markupsafe-3.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1872df69a4de6aead3491198eaf13810b565bdbeec3ae2dc8780f14458ec73ce"},
+ {file = "markupsafe-3.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3a7e8ae81ae39e62a41ec302f972ba6ae23a5c5396c8e60113e9066ef893da0d"},
+ {file = "markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d6dd0be5b5b189d31db7cda48b91d7e0a9795f31430b7f271219ab30f1d3ac9d"},
+ {file = "markupsafe-3.0.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:94c6f0bb423f739146aec64595853541634bde58b2135f27f61c1ffd1cd4d16a"},
+ {file = "markupsafe-3.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:be8813b57049a7dc738189df53d69395eba14fb99345e0a5994914a3864c8a4b"},
+ {file = "markupsafe-3.0.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:83891d0e9fb81a825d9a6d61e3f07550ca70a076484292a70fde82c4b807286f"},
+ {file = "markupsafe-3.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:77f0643abe7495da77fb436f50f8dab76dbc6e5fd25d39589a0f1fe6548bfa2b"},
+ {file = "markupsafe-3.0.3-cp312-cp312-win32.whl", hash = "sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d"},
+ {file = "markupsafe-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c"},
+ {file = "markupsafe-3.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f"},
+ {file = "markupsafe-3.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e1cf1972137e83c5d4c136c43ced9ac51d0e124706ee1c8aa8532c1287fa8795"},
+ {file = "markupsafe-3.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:116bb52f642a37c115f517494ea5feb03889e04df47eeff5b130b1808ce7c219"},
+ {file = "markupsafe-3.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:133a43e73a802c5562be9bbcd03d090aa5a1fe899db609c29e8c8d815c5f6de6"},
+ {file = "markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ccfcd093f13f0f0b7fdd0f198b90053bf7b2f02a3927a30e63f3ccc9df56b676"},
+ {file = "markupsafe-3.0.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:509fa21c6deb7a7a273d629cf5ec029bc209d1a51178615ddf718f5918992ab9"},
+ {file = "markupsafe-3.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4afe79fb3de0b7097d81da19090f4df4f8d3a2b3adaa8764138aac2e44f3af1"},
+ {file = "markupsafe-3.0.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:795e7751525cae078558e679d646ae45574b47ed6e7771863fcc079a6171a0fc"},
+ {file = "markupsafe-3.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8485f406a96febb5140bfeca44a73e3ce5116b2501ac54fe953e488fb1d03b12"},
+ {file = "markupsafe-3.0.3-cp313-cp313-win32.whl", hash = "sha256:bdd37121970bfd8be76c5fb069c7751683bdf373db1ed6c010162b2a130248ed"},
+ {file = "markupsafe-3.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:9a1abfdc021a164803f4d485104931fb8f8c1efd55bc6b748d2f5774e78b62c5"},
+ {file = "markupsafe-3.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:7e68f88e5b8799aa49c85cd116c932a1ac15caaa3f5db09087854d218359e485"},
+ {file = "markupsafe-3.0.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:218551f6df4868a8d527e3062d0fb968682fe92054e89978594c28e642c43a73"},
+ {file = "markupsafe-3.0.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3524b778fe5cfb3452a09d31e7b5adefeea8c5be1d43c4f810ba09f2ceb29d37"},
+ {file = "markupsafe-3.0.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e885a3d1efa2eadc93c894a21770e4bc67899e3543680313b09f139e149ab19"},
+ {file = "markupsafe-3.0.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8709b08f4a89aa7586de0aadc8da56180242ee0ada3999749b183aa23df95025"},
+ {file = "markupsafe-3.0.3-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b8512a91625c9b3da6f127803b166b629725e68af71f8184ae7e7d54686a56d6"},
+ {file = "markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9b79b7a16f7fedff2495d684f2b59b0457c3b493778c9eed31111be64d58279f"},
+ {file = "markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:12c63dfb4a98206f045aa9563db46507995f7ef6d83b2f68eda65c307c6829eb"},
+ {file = "markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8f71bc33915be5186016f675cd83a1e08523649b0e33efdb898db577ef5bb009"},
+ {file = "markupsafe-3.0.3-cp313-cp313t-win32.whl", hash = "sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354"},
+ {file = "markupsafe-3.0.3-cp313-cp313t-win_amd64.whl", hash = "sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218"},
+ {file = "markupsafe-3.0.3-cp313-cp313t-win_arm64.whl", hash = "sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287"},
+ {file = "markupsafe-3.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:eaa9599de571d72e2daf60164784109f19978b327a3910d3e9de8c97b5b70cfe"},
+ {file = "markupsafe-3.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c47a551199eb8eb2121d4f0f15ae0f923d31350ab9280078d1e5f12b249e0026"},
+ {file = "markupsafe-3.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f34c41761022dd093b4b6896d4810782ffbabe30f2d443ff5f083e0cbbb8c737"},
+ {file = "markupsafe-3.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:457a69a9577064c05a97c41f4e65148652db078a3a509039e64d3467b9e7ef97"},
+ {file = "markupsafe-3.0.3-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e8afc3f2ccfa24215f8cb28dcf43f0113ac3c37c2f0f0806d8c70e4228c5cf4d"},
+ {file = "markupsafe-3.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ec15a59cf5af7be74194f7ab02d0f59a62bdcf1a537677ce67a2537c9b87fcda"},
+ {file = "markupsafe-3.0.3-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:0eb9ff8191e8498cca014656ae6b8d61f39da5f95b488805da4bb029cccbfbaf"},
+ {file = "markupsafe-3.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2713baf880df847f2bece4230d4d094280f4e67b1e813eec43b4c0e144a34ffe"},
+ {file = "markupsafe-3.0.3-cp314-cp314-win32.whl", hash = "sha256:729586769a26dbceff69f7a7dbbf59ab6572b99d94576a5592625d5b411576b9"},
+ {file = "markupsafe-3.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:bdc919ead48f234740ad807933cdf545180bfbe9342c2bb451556db2ed958581"},
+ {file = "markupsafe-3.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:5a7d5dc5140555cf21a6fefbdbf8723f06fcd2f63ef108f2854de715e4422cb4"},
+ {file = "markupsafe-3.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:1353ef0c1b138e1907ae78e2f6c63ff67501122006b0f9abad68fda5f4ffc6ab"},
+ {file = "markupsafe-3.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1085e7fbddd3be5f89cc898938f42c0b3c711fdcb37d75221de2666af647c175"},
+ {file = "markupsafe-3.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1b52b4fb9df4eb9ae465f8d0c228a00624de2334f216f178a995ccdcf82c4634"},
+ {file = "markupsafe-3.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50"},
+ {file = "markupsafe-3.0.3-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f190daf01f13c72eac4efd5c430a8de82489d9cff23c364c3ea822545032993e"},
+ {file = "markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e56b7d45a839a697b5eb268c82a71bd8c7f6c94d6fd50c3d577fa39a9f1409f5"},
+ {file = "markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:f3e98bb3798ead92273dc0e5fd0f31ade220f59a266ffd8a4f6065e0a3ce0523"},
+ {file = "markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5678211cb9333a6468fb8d8be0305520aa073f50d17f089b5b4b477ea6e67fdc"},
+ {file = "markupsafe-3.0.3-cp314-cp314t-win32.whl", hash = "sha256:915c04ba3851909ce68ccc2b8e2cd691618c4dc4c4232fb7982bca3f41fd8c3d"},
+ {file = "markupsafe-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4faffd047e07c38848ce017e8725090413cd80cbc23d86e55c587bf979e579c9"},
+ {file = "markupsafe-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa"},
+ {file = "markupsafe-3.0.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:15d939a21d546304880945ca1ecb8a039db6b4dc49b2c5a400387cdae6a62e26"},
+ {file = "markupsafe-3.0.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f71a396b3bf33ecaa1626c255855702aca4d3d9fea5e051b41ac59a9c1c41edc"},
+ {file = "markupsafe-3.0.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0f4b68347f8c5eab4a13419215bdfd7f8c9b19f2b25520968adfad23eb0ce60c"},
+ {file = "markupsafe-3.0.3-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e8fc20152abba6b83724d7ff268c249fa196d8259ff481f3b1476383f8f24e42"},
+ {file = "markupsafe-3.0.3-cp39-cp39-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:949b8d66bc381ee8b007cd945914c721d9aba8e27f71959d750a46f7c282b20b"},
+ {file = "markupsafe-3.0.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:3537e01efc9d4dccdf77221fb1cb3b8e1a38d5428920e0657ce299b20324d758"},
+ {file = "markupsafe-3.0.3-cp39-cp39-musllinux_1_2_riscv64.whl", hash = "sha256:591ae9f2a647529ca990bc681daebdd52c8791ff06c2bfa05b65163e28102ef2"},
+ {file = "markupsafe-3.0.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a320721ab5a1aba0a233739394eb907f8c8da5c98c9181d1161e77a0c8e36f2d"},
+ {file = "markupsafe-3.0.3-cp39-cp39-win32.whl", hash = "sha256:df2449253ef108a379b8b5d6b43f4b1a8e81a061d6537becd5582fba5f9196d7"},
+ {file = "markupsafe-3.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:7c3fb7d25180895632e5d3148dbdc29ea38ccb7fd210aa27acbd1201a1902c6e"},
+ {file = "markupsafe-3.0.3-cp39-cp39-win_arm64.whl", hash = "sha256:38664109c14ffc9e7437e86b4dceb442b0096dfe3541d7864d9cbe1da4cf36c8"},
+ {file = "markupsafe-3.0.3.tar.gz", hash = "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698"}
]
[[package]]
name = "matplotlib"
-version = "3.10.3"
+version = "3.10.7"
description = "Python plotting package"
optional = false
python-versions = ">=3.10"
groups = ["main"]
files = [
- {file = "matplotlib-3.10.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:213fadd6348d106ca7db99e113f1bea1e65e383c3ba76e8556ba4a3054b65ae7"},
- {file = "matplotlib-3.10.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d3bec61cb8221f0ca6313889308326e7bb303d0d302c5cc9e523b2f2e6c73deb"},
- {file = "matplotlib-3.10.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c21ae75651c0231b3ba014b6d5e08fb969c40cdb5a011e33e99ed0c9ea86ecb"},
- {file = "matplotlib-3.10.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a49e39755580b08e30e3620efc659330eac5d6534ab7eae50fa5e31f53ee4e30"},
- {file = "matplotlib-3.10.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cf4636203e1190871d3a73664dea03d26fb019b66692cbfd642faafdad6208e8"},
- {file = "matplotlib-3.10.3-cp310-cp310-win_amd64.whl", hash = "sha256:fd5641a9bb9d55f4dd2afe897a53b537c834b9012684c8444cc105895c8c16fd"},
- {file = "matplotlib-3.10.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:0ef061f74cd488586f552d0c336b2f078d43bc00dc473d2c3e7bfee2272f3fa8"},
- {file = "matplotlib-3.10.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d96985d14dc5f4a736bbea4b9de9afaa735f8a0fc2ca75be2fa9e96b2097369d"},
- {file = "matplotlib-3.10.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7c5f0283da91e9522bdba4d6583ed9d5521566f63729ffb68334f86d0bb98049"},
- {file = "matplotlib-3.10.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fdfa07c0ec58035242bc8b2c8aae37037c9a886370eef6850703d7583e19964b"},
- {file = "matplotlib-3.10.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c0b9849a17bce080a16ebcb80a7b714b5677d0ec32161a2cc0a8e5a6030ae220"},
- {file = "matplotlib-3.10.3-cp311-cp311-win_amd64.whl", hash = "sha256:eef6ed6c03717083bc6d69c2d7ee8624205c29a8e6ea5a31cd3492ecdbaee1e1"},
- {file = "matplotlib-3.10.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0ab1affc11d1f495ab9e6362b8174a25afc19c081ba5b0775ef00533a4236eea"},
- {file = "matplotlib-3.10.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2a818d8bdcafa7ed2eed74487fdb071c09c1ae24152d403952adad11fa3c65b4"},
- {file = "matplotlib-3.10.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:748ebc3470c253e770b17d8b0557f0aa85cf8c63fd52f1a61af5b27ec0b7ffee"},
- {file = "matplotlib-3.10.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ed70453fd99733293ace1aec568255bc51c6361cb0da94fa5ebf0649fdb2150a"},
- {file = "matplotlib-3.10.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:dbed9917b44070e55640bd13419de83b4c918e52d97561544814ba463811cbc7"},
- {file = "matplotlib-3.10.3-cp312-cp312-win_amd64.whl", hash = "sha256:cf37d8c6ef1a48829443e8ba5227b44236d7fcaf7647caa3178a4ff9f7a5be05"},
- {file = "matplotlib-3.10.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9f2efccc8dcf2b86fc4ee849eea5dcaecedd0773b30f47980dc0cbeabf26ec84"},
- {file = "matplotlib-3.10.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3ddbba06a6c126e3301c3d272a99dcbe7f6c24c14024e80307ff03791a5f294e"},
- {file = "matplotlib-3.10.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:748302b33ae9326995b238f606e9ed840bf5886ebafcb233775d946aa8107a15"},
- {file = "matplotlib-3.10.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a80fcccbef63302c0efd78042ea3c2436104c5b1a4d3ae20f864593696364ac7"},
- {file = "matplotlib-3.10.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:55e46cbfe1f8586adb34f7587c3e4f7dedc59d5226719faf6cb54fc24f2fd52d"},
- {file = "matplotlib-3.10.3-cp313-cp313-win_amd64.whl", hash = "sha256:151d89cb8d33cb23345cd12490c76fd5d18a56581a16d950b48c6ff19bb2ab93"},
- {file = "matplotlib-3.10.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:c26dd9834e74d164d06433dc7be5d75a1e9890b926b3e57e74fa446e1a62c3e2"},
- {file = "matplotlib-3.10.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:24853dad5b8c84c8c2390fc31ce4858b6df504156893292ce8092d190ef8151d"},
- {file = "matplotlib-3.10.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68f7878214d369d7d4215e2a9075fef743be38fa401d32e6020bab2dfabaa566"},
- {file = "matplotlib-3.10.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6929fc618cb6db9cb75086f73b3219bbb25920cb24cee2ea7a12b04971a4158"},
- {file = "matplotlib-3.10.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6c7818292a5cc372a2dc4c795e5c356942eb8350b98ef913f7fda51fe175ac5d"},
- {file = "matplotlib-3.10.3-cp313-cp313t-win_amd64.whl", hash = "sha256:4f23ffe95c5667ef8a2b56eea9b53db7f43910fa4a2d5472ae0f72b64deab4d5"},
- {file = "matplotlib-3.10.3-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:86ab63d66bbc83fdb6733471d3bff40897c1e9921cba112accd748eee4bce5e4"},
- {file = "matplotlib-3.10.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:a48f9c08bf7444b5d2391a83e75edb464ccda3c380384b36532a0962593a1751"},
- {file = "matplotlib-3.10.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cb73d8aa75a237457988f9765e4dfe1c0d2453c5ca4eabc897d4309672c8e014"},
- {file = "matplotlib-3.10.3.tar.gz", hash = "sha256:2f82d2c5bb7ae93aaaa4cd42aca65d76ce6376f83304fa3a630b569aca274df0"}
+ {file = "matplotlib-3.10.7-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:7ac81eee3b7c266dd92cee1cd658407b16c57eed08c7421fa354ed68234de380"},
+ {file = "matplotlib-3.10.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:667ecd5d8d37813a845053d8f5bf110b534c3c9f30e69ebd25d4701385935a6d"},
+ {file = "matplotlib-3.10.7-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:cc1c51b846aca49a5a8b44fbba6a92d583a35c64590ad9e1e950dc88940a4297"},
+ {file = "matplotlib-3.10.7-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4a11c2e9e72e7de09b7b72e62f3df23317c888299c875e2b778abf1eda8c0a42"},
+ {file = "matplotlib-3.10.7-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f19410b486fdd139885ace124e57f938c1e6a3210ea13dd29cab58f5d4bc12c7"},
+ {file = "matplotlib-3.10.7-cp310-cp310-win_amd64.whl", hash = "sha256:b498e9e4022f93de2d5a37615200ca01297ceebbb56fe4c833f46862a490f9e3"},
+ {file = "matplotlib-3.10.7-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:53b492410a6cd66c7a471de6c924f6ede976e963c0f3097a3b7abfadddc67d0a"},
+ {file = "matplotlib-3.10.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d9749313deb729f08207718d29c86246beb2ea3fdba753595b55901dee5d2fd6"},
+ {file = "matplotlib-3.10.7-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2222c7ba2cbde7fe63032769f6eb7e83ab3227f47d997a8453377709b7fe3a5a"},
+ {file = "matplotlib-3.10.7-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e91f61a064c92c307c5a9dc8c05dc9f8a68f0a3be199d9a002a0622e13f874a1"},
+ {file = "matplotlib-3.10.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6f1851eab59ca082c95df5a500106bad73672645625e04538b3ad0f69471ffcc"},
+ {file = "matplotlib-3.10.7-cp311-cp311-win_amd64.whl", hash = "sha256:6516ce375109c60ceec579e699524e9d504cd7578506f01150f7a6bc174a775e"},
+ {file = "matplotlib-3.10.7-cp311-cp311-win_arm64.whl", hash = "sha256:b172db79759f5f9bc13ef1c3ef8b9ee7b37b0247f987fbbbdaa15e4f87fd46a9"},
+ {file = "matplotlib-3.10.7-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7a0edb7209e21840e8361e91ea84ea676658aa93edd5f8762793dec77a4a6748"},
+ {file = "matplotlib-3.10.7-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c380371d3c23e0eadf8ebff114445b9f970aff2010198d498d4ab4c3b41eea4f"},
+ {file = "matplotlib-3.10.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d5f256d49fea31f40f166a5e3131235a5d2f4b7f44520b1cf0baf1ce568ccff0"},
+ {file = "matplotlib-3.10.7-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:11ae579ac83cdf3fb72573bb89f70e0534de05266728740d478f0f818983c695"},
+ {file = "matplotlib-3.10.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:4c14b6acd16cddc3569a2d515cfdd81c7a68ac5639b76548cfc1a9e48b20eb65"},
+ {file = "matplotlib-3.10.7-cp312-cp312-win_amd64.whl", hash = "sha256:0d8c32b7ea6fb80b1aeff5a2ceb3fb9778e2759e899d9beff75584714afcc5ee"},
+ {file = "matplotlib-3.10.7-cp312-cp312-win_arm64.whl", hash = "sha256:5f3f6d315dcc176ba7ca6e74c7768fb7e4cf566c49cb143f6bc257b62e634ed8"},
+ {file = "matplotlib-3.10.7-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1d9d3713a237970569156cfb4de7533b7c4eacdd61789726f444f96a0d28f57f"},
+ {file = "matplotlib-3.10.7-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:37a1fea41153dd6ee061d21ab69c9cf2cf543160b1b85d89cd3d2e2a7902ca4c"},
+ {file = "matplotlib-3.10.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b3c4ea4948d93c9c29dc01c0c23eef66f2101bf75158c291b88de6525c55c3d1"},
+ {file = "matplotlib-3.10.7-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:22df30ffaa89f6643206cf13877191c63a50e8f800b038bc39bee9d2d4957632"},
+ {file = "matplotlib-3.10.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b69676845a0a66f9da30e87f48be36734d6748024b525ec4710be40194282c84"},
+ {file = "matplotlib-3.10.7-cp313-cp313-win_amd64.whl", hash = "sha256:744991e0cc863dd669c8dc9136ca4e6e0082be2070b9d793cbd64bec872a6815"},
+ {file = "matplotlib-3.10.7-cp313-cp313-win_arm64.whl", hash = "sha256:fba2974df0bf8ce3c995fa84b79cde38326e0f7b5409e7a3a481c1141340bcf7"},
+ {file = "matplotlib-3.10.7-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:932c55d1fa7af4423422cb6a492a31cbcbdbe68fd1a9a3f545aa5e7a143b5355"},
+ {file = "matplotlib-3.10.7-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5e38c2d581d62ee729a6e144c47a71b3f42fb4187508dbbf4fe71d5612c3433b"},
+ {file = "matplotlib-3.10.7-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:786656bb13c237bbcebcd402f65f44dd61ead60ee3deb045af429d889c8dbc67"},
+ {file = "matplotlib-3.10.7-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:09d7945a70ea43bf9248f4b6582734c2fe726723204a76eca233f24cffc7ef67"},
+ {file = "matplotlib-3.10.7-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:d0b181e9fa8daf1d9f2d4c547527b167cb8838fc587deabca7b5c01f97199e84"},
+ {file = "matplotlib-3.10.7-cp313-cp313t-win_amd64.whl", hash = "sha256:31963603041634ce1a96053047b40961f7a29eb8f9a62e80cc2c0427aa1d22a2"},
+ {file = "matplotlib-3.10.7-cp313-cp313t-win_arm64.whl", hash = "sha256:aebed7b50aa6ac698c90f60f854b47e48cd2252b30510e7a1feddaf5a3f72cbf"},
+ {file = "matplotlib-3.10.7-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:d883460c43e8c6b173fef244a2341f7f7c0e9725c7fe68306e8e44ed9c8fb100"},
+ {file = "matplotlib-3.10.7-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:07124afcf7a6504eafcb8ce94091c5898bbdd351519a1beb5c45f7a38c67e77f"},
+ {file = "matplotlib-3.10.7-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c17398b709a6cce3d9fdb1595c33e356d91c098cd9486cb2cc21ea2ea418e715"},
+ {file = "matplotlib-3.10.7-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7146d64f561498764561e9cd0ed64fcf582e570fc519e6f521e2d0cfd43365e1"},
+ {file = "matplotlib-3.10.7-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:90ad854c0a435da3104c01e2c6f0028d7e719b690998a2333d7218db80950722"},
+ {file = "matplotlib-3.10.7-cp314-cp314-win_amd64.whl", hash = "sha256:4645fc5d9d20ffa3a39361fcdbcec731382763b623b72627806bf251b6388866"},
+ {file = "matplotlib-3.10.7-cp314-cp314-win_arm64.whl", hash = "sha256:9257be2f2a03415f9105c486d304a321168e61ad450f6153d77c69504ad764bb"},
+ {file = "matplotlib-3.10.7-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:1e4bbad66c177a8fdfa53972e5ef8be72a5f27e6a607cec0d8579abd0f3102b1"},
+ {file = "matplotlib-3.10.7-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:d8eb7194b084b12feb19142262165832fc6ee879b945491d1c3d4660748020c4"},
+ {file = "matplotlib-3.10.7-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b4d41379b05528091f00e1728004f9a8d7191260f3862178b88e8fd770206318"},
+ {file = "matplotlib-3.10.7-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4a74f79fafb2e177f240579bc83f0b60f82cc47d2f1d260f422a0627207008ca"},
+ {file = "matplotlib-3.10.7-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:702590829c30aada1e8cef0568ddbffa77ca747b4d6e36c6d173f66e301f89cc"},
+ {file = "matplotlib-3.10.7-cp314-cp314t-win_amd64.whl", hash = "sha256:f79d5de970fc90cd5591f60053aecfce1fcd736e0303d9f0bf86be649fa68fb8"},
+ {file = "matplotlib-3.10.7-cp314-cp314t-win_arm64.whl", hash = "sha256:cb783436e47fcf82064baca52ce748af71725d0352e1d31564cbe9c95df92b9c"},
+ {file = "matplotlib-3.10.7-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:5c09cf8f2793f81368f49f118b6f9f937456362bee282eac575cca7f84cda537"},
+ {file = "matplotlib-3.10.7-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:de66744b2bb88d5cd27e80dfc2ec9f0517d0a46d204ff98fe9e5f2864eb67657"},
+ {file = "matplotlib-3.10.7-pp310-pypy310_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:53cc80662dd197ece414dd5b66e07370201515a3eaf52e7c518c68c16814773b"},
+ {file = "matplotlib-3.10.7-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:15112bcbaef211bd663fa935ec33313b948e214454d949b723998a43357b17b0"},
+ {file = "matplotlib-3.10.7-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:d2a959c640cdeecdd2ec3136e8ea0441da59bcaf58d67e9c590740addba2cb68"},
+ {file = "matplotlib-3.10.7-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3886e47f64611046bc1db523a09dd0a0a6bed6081e6f90e13806dd1d1d1b5e91"},
+ {file = "matplotlib-3.10.7.tar.gz", hash = "sha256:a06ba7e2a2ef9131c79c49e63dad355d2d878413a0376c1727c8b9335ff731c7"}
]
[package.dependencies]
@@ -2222,7 +2489,7 @@ kiwisolver = ">=1.3.1"
numpy = ">=1.23"
packaging = ">=20.0"
pillow = ">=8"
-pyparsing = ">=2.3.1"
+pyparsing = ">=3"
python-dateutil = ">=2.7"
[package.extras]
@@ -2245,14 +2512,14 @@ traitlets = "*"
[[package]]
name = "mistune"
-version = "3.1.3"
+version = "3.1.4"
description = "A sane and fast Markdown parser with useful plugins and renderers"
optional = false
python-versions = ">=3.8"
groups = ["main"]
files = [
- {file = "mistune-3.1.3-py3-none-any.whl", hash = "sha256:1a32314113cff28aa6432e99e522677c8587fd83e3d51c29b82a52409c842bd9"},
- {file = "mistune-3.1.3.tar.gz", hash = "sha256:a7035c21782b2becb6be62f8f25d3df81ccb4d6fa477a6525b15af06539f02a0"}
+ {file = "mistune-3.1.4-py3-none-any.whl", hash = "sha256:93691da911e5d9d2e23bc54472892aff676df27a75274962ff9edc210364266d"},
+ {file = "mistune-3.1.4.tar.gz", hash = "sha256:b5a7f801d389f724ec702840c11d8fc48f2b33519102fc7ee739e8177b672164"}
]
[package.dependencies]
@@ -2260,20 +2527,20 @@ typing-extensions = {version = "*", markers = "python_version < \"3.11\""}
[[package]]
name = "narwhals"
-version = "2.6.0"
+version = "2.8.0"
description = "Extremely lightweight compatibility layer between dataframe libraries"
optional = false
python-versions = ">=3.9"
groups = ["main"]
files = [
- {file = "narwhals-2.6.0-py3-none-any.whl", hash = "sha256:3215ea42afb452c6c8527e79cefbe542b674aa08d7e2e99d46b2c9708870e0d4"},
- {file = "narwhals-2.6.0.tar.gz", hash = "sha256:5c9e2ba923e6a0051017e146184e49fb793548936f978ce130c9f55a9a81240e"}
+ {file = "narwhals-2.8.0-py3-none-any.whl", hash = "sha256:6304856676ba4a79fd34148bda63aed8060dd6edb1227edf3659ce5e091de73c"},
+ {file = "narwhals-2.8.0.tar.gz", hash = "sha256:52e0b22d54718264ae703bd9293af53b04abc995a1414908c3b807ba8c913858"}
]
[package.extras]
cudf = ["cudf (>=24.10.0)"]
dask = ["dask[dataframe] (>=2024.8)"]
-duckdb = ["duckdb (>=1.0)"]
+duckdb = ["duckdb (>=1.1)"]
ibis = ["ibis-framework (>=6.0.0)", "packaging", "pyarrow-hotfix", "rich"]
modin = ["modin"]
pandas = ["pandas (>=1.1.3)"]
@@ -2450,19 +2717,19 @@ files = [
[[package]]
name = "notebook"
-version = "7.4.3"
+version = "7.4.7"
description = "Jupyter Notebook - A web-based notebook environment for interactive computing"
optional = false
python-versions = ">=3.8"
groups = ["main"]
files = [
- {file = "notebook-7.4.3-py3-none-any.whl", hash = "sha256:9cdeee954e04101cadb195d90e2ab62b7c9286c1d4f858bf3bb54e40df16c0c3"},
- {file = "notebook-7.4.3.tar.gz", hash = "sha256:a1567481cd3853f2610ee0ecf5dfa12bb508e878ee8f92152c134ef7f0568a76"}
+ {file = "notebook-7.4.7-py3-none-any.whl", hash = "sha256:362b7c95527f7dd3c4c84d410b782872fd9c734fb2524c11dd92758527b6eda6"},
+ {file = "notebook-7.4.7.tar.gz", hash = "sha256:3f0a04027dfcee8a876de48fba13ab77ec8c12f72f848a222ed7f5081b9e342a"}
]
[package.dependencies]
jupyter-server = ">=2.4.0,<3"
-jupyterlab = ">=4.4.3,<4.5"
+jupyterlab = ">=4.4.9,<4.5"
jupyterlab-server = ">=2.27.1,<3"
notebook-shim = ">=0.2,<0.3"
tornado = ">=6.2.0"
@@ -2666,6 +2933,7 @@ description = "A decorator to automatically detect mismatch when overriding a me
optional = false
python-versions = ">=3.6"
groups = ["main"]
+markers = "python_version < \"3.12\""
files = [
{file = "overrides-7.7.0-py3-none-any.whl", hash = "sha256:c7ed9d062f78b8e4c1a7b70bd8796b35ead4d9f510227ef9c5dc7626c60d7e49"},
{file = "overrides-7.7.0.tar.gz", hash = "sha256:55158fa3d93b98cc75299b1e67078ad9003ca27945c76162c1c0766d6f91820a"}
@@ -2685,61 +2953,74 @@ files = [
[[package]]
name = "pandas"
-version = "2.3.0"
+version = "2.3.3"
description = "Powerful data structures for data analysis, time series, and statistics"
optional = false
python-versions = ">=3.9"
groups = ["main"]
files = [
- {file = "pandas-2.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:625466edd01d43b75b1883a64d859168e4556261a5035b32f9d743b67ef44634"},
- {file = "pandas-2.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a6872d695c896f00df46b71648eea332279ef4077a409e2fe94220208b6bb675"},
- {file = "pandas-2.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f4dd97c19bd06bc557ad787a15b6489d2614ddaab5d104a0310eb314c724b2d2"},
- {file = "pandas-2.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:034abd6f3db8b9880aaee98f4f5d4dbec7c4829938463ec046517220b2f8574e"},
- {file = "pandas-2.3.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:23c2b2dc5213810208ca0b80b8666670eb4660bbfd9d45f58592cc4ddcfd62e1"},
- {file = "pandas-2.3.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:39ff73ec07be5e90330cc6ff5705c651ace83374189dcdcb46e6ff54b4a72cd6"},
- {file = "pandas-2.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:40cecc4ea5abd2921682b57532baea5588cc5f80f0231c624056b146887274d2"},
- {file = "pandas-2.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8adff9f138fc614347ff33812046787f7d43b3cef7c0f0171b3340cae333f6ca"},
- {file = "pandas-2.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e5f08eb9a445d07720776df6e641975665c9ea12c9d8a331e0f6890f2dcd76ef"},
- {file = "pandas-2.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fa35c266c8cd1a67d75971a1912b185b492d257092bdd2709bbdebe574ed228d"},
- {file = "pandas-2.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14a0cc77b0f089d2d2ffe3007db58f170dae9b9f54e569b299db871a3ab5bf46"},
- {file = "pandas-2.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c06f6f144ad0a1bf84699aeea7eff6068ca5c63ceb404798198af7eb86082e33"},
- {file = "pandas-2.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ed16339bc354a73e0a609df36d256672c7d296f3f767ac07257801aa064ff73c"},
- {file = "pandas-2.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:fa07e138b3f6c04addfeaf56cc7fdb96c3b68a3fe5e5401251f231fce40a0d7a"},
- {file = "pandas-2.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2eb4728a18dcd2908c7fccf74a982e241b467d178724545a48d0caf534b38ebf"},
- {file = "pandas-2.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b9d8c3187be7479ea5c3d30c32a5d73d62a621166675063b2edd21bc47614027"},
- {file = "pandas-2.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9ff730713d4c4f2f1c860e36c005c7cefc1c7c80c21c0688fd605aa43c9fcf09"},
- {file = "pandas-2.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba24af48643b12ffe49b27065d3babd52702d95ab70f50e1b34f71ca703e2c0d"},
- {file = "pandas-2.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:404d681c698e3c8a40a61d0cd9412cc7364ab9a9cc6e144ae2992e11a2e77a20"},
- {file = "pandas-2.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6021910b086b3ca756755e86ddc64e0ddafd5e58e076c72cb1585162e5ad259b"},
- {file = "pandas-2.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:094e271a15b579650ebf4c5155c05dcd2a14fd4fdd72cf4854b2f7ad31ea30be"},
- {file = "pandas-2.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2c7e2fc25f89a49a11599ec1e76821322439d90820108309bf42130d2f36c983"},
- {file = "pandas-2.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c6da97aeb6a6d233fb6b17986234cc723b396b50a3c6804776351994f2a658fd"},
- {file = "pandas-2.3.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb32dc743b52467d488e7a7c8039b821da2826a9ba4f85b89ea95274f863280f"},
- {file = "pandas-2.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:213cd63c43263dbb522c1f8a7c9d072e25900f6975596f883f4bebd77295d4f3"},
- {file = "pandas-2.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1d2b33e68d0ce64e26a4acc2e72d747292084f4e8db4c847c6f5f6cbe56ed6d8"},
- {file = "pandas-2.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:430a63bae10b5086995db1b02694996336e5a8ac9a96b4200572b413dfdfccb9"},
- {file = "pandas-2.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:4930255e28ff5545e2ca404637bcc56f031893142773b3468dc021c6c32a1390"},
- {file = "pandas-2.3.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:f925f1ef673b4bd0271b1809b72b3270384f2b7d9d14a189b12b7fc02574d575"},
- {file = "pandas-2.3.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e78ad363ddb873a631e92a3c063ade1ecfb34cae71e9a2be6ad100f875ac1042"},
- {file = "pandas-2.3.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:951805d146922aed8357e4cc5671b8b0b9be1027f0619cea132a9f3f65f2f09c"},
- {file = "pandas-2.3.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1a881bc1309f3fce34696d07b00f13335c41f5f5a8770a33b09ebe23261cfc67"},
- {file = "pandas-2.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:e1991bbb96f4050b09b5f811253c4f3cf05ee89a589379aa36cd623f21a31d6f"},
- {file = "pandas-2.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:bb3be958022198531eb7ec2008cfc78c5b1eed51af8600c6c5d9160d89d8d249"},
- {file = "pandas-2.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9efc0acbbffb5236fbdf0409c04edce96bec4bdaa649d49985427bd1ec73e085"},
- {file = "pandas-2.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:75651c14fde635e680496148a8526b328e09fe0572d9ae9b638648c46a544ba3"},
- {file = "pandas-2.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf5be867a0541a9fb47a4be0c5790a4bccd5b77b92f0a59eeec9375fafc2aa14"},
- {file = "pandas-2.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:84141f722d45d0c2a89544dd29d35b3abfc13d2250ed7e68394eda7564bd6324"},
- {file = "pandas-2.3.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:f95a2aef32614ed86216d3c450ab12a4e82084e8102e355707a1d96e33d51c34"},
- {file = "pandas-2.3.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:e0f51973ba93a9f97185049326d75b942b9aeb472bec616a129806facb129ebb"},
- {file = "pandas-2.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:b198687ca9c8529662213538a9bb1e60fa0bf0f6af89292eb68fea28743fcd5a"},
- {file = "pandas-2.3.0.tar.gz", hash = "sha256:34600ab34ebf1131a7613a260a61dbe8b62c188ec0ea4c296da7c9a06b004133"}
+ {file = "pandas-2.3.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:376c6446ae31770764215a6c937f72d917f214b43560603cd60da6408f183b6c"},
+ {file = "pandas-2.3.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e19d192383eab2f4ceb30b412b22ea30690c9e618f78870357ae1d682912015a"},
+ {file = "pandas-2.3.3-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5caf26f64126b6c7aec964f74266f435afef1c1b13da3b0636c7518a1fa3e2b1"},
+ {file = "pandas-2.3.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dd7478f1463441ae4ca7308a70e90b33470fa593429f9d4c578dd00d1fa78838"},
+ {file = "pandas-2.3.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:4793891684806ae50d1288c9bae9330293ab4e083ccd1c5e383c34549c6e4250"},
+ {file = "pandas-2.3.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:28083c648d9a99a5dd035ec125d42439c6c1c525098c58af0fc38dd1a7a1b3d4"},
+ {file = "pandas-2.3.3-cp310-cp310-win_amd64.whl", hash = "sha256:503cf027cf9940d2ceaa1a93cfb5f8c8c7e6e90720a2850378f0b3f3b1e06826"},
+ {file = "pandas-2.3.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:602b8615ebcc4a0c1751e71840428ddebeb142ec02c786e8ad6b1ce3c8dec523"},
+ {file = "pandas-2.3.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8fe25fc7b623b0ef6b5009149627e34d2a4657e880948ec3c840e9402e5c1b45"},
+ {file = "pandas-2.3.3-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b468d3dad6ff947df92dcb32ede5b7bd41a9b3cceef0a30ed925f6d01fb8fa66"},
+ {file = "pandas-2.3.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b98560e98cb334799c0b07ca7967ac361a47326e9b4e5a7dfb5ab2b1c9d35a1b"},
+ {file = "pandas-2.3.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1d37b5848ba49824e5c30bedb9c830ab9b7751fd049bc7914533e01c65f79791"},
+ {file = "pandas-2.3.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:db4301b2d1f926ae677a751eb2bd0e8c5f5319c9cb3f88b0becbbb0b07b34151"},
+ {file = "pandas-2.3.3-cp311-cp311-win_amd64.whl", hash = "sha256:f086f6fe114e19d92014a1966f43a3e62285109afe874f067f5abbdcbb10e59c"},
+ {file = "pandas-2.3.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6d21f6d74eb1725c2efaa71a2bfc661a0689579b58e9c0ca58a739ff0b002b53"},
+ {file = "pandas-2.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3fd2f887589c7aa868e02632612ba39acb0b8948faf5cc58f0850e165bd46f35"},
+ {file = "pandas-2.3.3-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ecaf1e12bdc03c86ad4a7ea848d66c685cb6851d807a26aa245ca3d2017a1908"},
+ {file = "pandas-2.3.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b3d11d2fda7eb164ef27ffc14b4fcab16a80e1ce67e9f57e19ec0afaf715ba89"},
+ {file = "pandas-2.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a68e15f780eddf2b07d242e17a04aa187a7ee12b40b930bfdd78070556550e98"},
+ {file = "pandas-2.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:371a4ab48e950033bcf52b6527eccb564f52dc826c02afd9a1bc0ab731bba084"},
+ {file = "pandas-2.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:a16dcec078a01eeef8ee61bf64074b4e524a2a3f4b3be9326420cabe59c4778b"},
+ {file = "pandas-2.3.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:56851a737e3470de7fa88e6131f41281ed440d29a9268dcbf0002da5ac366713"},
+ {file = "pandas-2.3.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bdcd9d1167f4885211e401b3036c0c8d9e274eee67ea8d0758a256d60704cfe8"},
+ {file = "pandas-2.3.3-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e32e7cc9af0f1cc15548288a51a3b681cc2a219faa838e995f7dc53dbab1062d"},
+ {file = "pandas-2.3.3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:318d77e0e42a628c04dc56bcef4b40de67918f7041c2b061af1da41dcff670ac"},
+ {file = "pandas-2.3.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4e0a175408804d566144e170d0476b15d78458795bb18f1304fb94160cabf40c"},
+ {file = "pandas-2.3.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:93c2d9ab0fc11822b5eece72ec9587e172f63cff87c00b062f6e37448ced4493"},
+ {file = "pandas-2.3.3-cp313-cp313-win_amd64.whl", hash = "sha256:f8bfc0e12dc78f777f323f55c58649591b2cd0c43534e8355c51d3fede5f4dee"},
+ {file = "pandas-2.3.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:75ea25f9529fdec2d2e93a42c523962261e567d250b0013b16210e1d40d7c2e5"},
+ {file = "pandas-2.3.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:74ecdf1d301e812db96a465a525952f4dde225fdb6d8e5a521d47e1f42041e21"},
+ {file = "pandas-2.3.3-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6435cb949cb34ec11cc9860246ccb2fdc9ecd742c12d3304989017d53f039a78"},
+ {file = "pandas-2.3.3-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:900f47d8f20860de523a1ac881c4c36d65efcb2eb850e6948140fa781736e110"},
+ {file = "pandas-2.3.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a45c765238e2ed7d7c608fc5bc4a6f88b642f2f01e70c0c23d2224dd21829d86"},
+ {file = "pandas-2.3.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:c4fc4c21971a1a9f4bdb4c73978c7f7256caa3e62b323f70d6cb80db583350bc"},
+ {file = "pandas-2.3.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:ee15f284898e7b246df8087fc82b87b01686f98ee67d85a17b7ab44143a3a9a0"},
+ {file = "pandas-2.3.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1611aedd912e1ff81ff41c745822980c49ce4a7907537be8692c8dbc31924593"},
+ {file = "pandas-2.3.3-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6d2cefc361461662ac48810cb14365a365ce864afe85ef1f447ff5a1e99ea81c"},
+ {file = "pandas-2.3.3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ee67acbbf05014ea6c763beb097e03cd629961c8a632075eeb34247120abcb4b"},
+ {file = "pandas-2.3.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c46467899aaa4da076d5abc11084634e2d197e9460643dd455ac3db5856b24d6"},
+ {file = "pandas-2.3.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6253c72c6a1d990a410bc7de641d34053364ef8bcd3126f7e7450125887dffe3"},
+ {file = "pandas-2.3.3-cp314-cp314-win_amd64.whl", hash = "sha256:1b07204a219b3b7350abaae088f451860223a52cfb8a6c53358e7948735158e5"},
+ {file = "pandas-2.3.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:2462b1a365b6109d275250baaae7b760fd25c726aaca0054649286bcfbb3e8ec"},
+ {file = "pandas-2.3.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:0242fe9a49aa8b4d78a4fa03acb397a58833ef6199e9aa40a95f027bb3a1b6e7"},
+ {file = "pandas-2.3.3-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a21d830e78df0a515db2b3d2f5570610f5e6bd2e27749770e8bb7b524b89b450"},
+ {file = "pandas-2.3.3-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2e3ebdb170b5ef78f19bfb71b0dc5dc58775032361fa188e814959b74d726dd5"},
+ {file = "pandas-2.3.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:d051c0e065b94b7a3cea50eb1ec32e912cd96dba41647eb24104b6c6c14c5788"},
+ {file = "pandas-2.3.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:3869faf4bd07b3b66a9f462417d0ca3a9df29a9f6abd5d0d0dbab15dac7abe87"},
+ {file = "pandas-2.3.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c503ba5216814e295f40711470446bc3fd00f0faea8a086cbc688808e26f92a2"},
+ {file = "pandas-2.3.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a637c5cdfa04b6d6e2ecedcb81fc52ffb0fd78ce2ebccc9ea964df9f658de8c8"},
+ {file = "pandas-2.3.3-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:854d00d556406bffe66a4c0802f334c9ad5a96b4f1f868adf036a21b11ef13ff"},
+ {file = "pandas-2.3.3-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bf1f8a81d04ca90e32a0aceb819d34dbd378a98bf923b6398b9a3ec0bf44de29"},
+ {file = "pandas-2.3.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:23ebd657a4d38268c7dfbdf089fbc31ea709d82e4923c5ffd4fbd5747133ce73"},
+ {file = "pandas-2.3.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5554c929ccc317d41a5e3d1234f3be588248e61f08a74dd17c9eabb535777dc9"},
+ {file = "pandas-2.3.3-cp39-cp39-win_amd64.whl", hash = "sha256:d3e28b3e83862ccf4d85ff19cf8c20b2ae7e503881711ff2d534dc8f761131aa"},
+ {file = "pandas-2.3.3.tar.gz", hash = "sha256:e05e1af93b977f7eafa636d043f9f94c7ee3ac81af99c13508215942e64c993b"}
]
[package.dependencies]
numpy = [
+ {version = ">=1.26.0", markers = "python_version >= \"3.12\""},
{version = ">=1.22.4", markers = "python_version < \"3.11\""},
- {version = ">=1.23.2", markers = "python_version == \"3.11\""},
- {version = ">=1.26.0", markers = "python_version >= \"3.12\""}
+ {version = ">=1.23.2", markers = "python_version == \"3.11\""}
]
python-dateutil = ">=2.8.2"
pytz = ">=2020.1"
@@ -2784,14 +3065,14 @@ files = [
[[package]]
name = "parso"
-version = "0.8.4"
+version = "0.8.5"
description = "A Python Parser"
optional = false
python-versions = ">=3.6"
groups = ["main"]
files = [
- {file = "parso-0.8.4-py2.py3-none-any.whl", hash = "sha256:a418670a20291dacd2dddc80c377c5c3791378ee1e8d12bffc35420643d43f18"},
- {file = "parso-0.8.4.tar.gz", hash = "sha256:eb3a7b58240fb99099a345571deecc0f9540ea5f4dd2fe14c2a99d6b281ab92d"}
+ {file = "parso-0.8.5-py2.py3-none-any.whl", hash = "sha256:646204b5ee239c396d040b90f9e272e9a8017c630092bf59980beb62fd033887"},
+ {file = "parso-0.8.5.tar.gz", hash = "sha256:034d7354a9a018bdce352f48b2a8a450f05e9d6ee85db84764e9b6bd96dafe5a"}
]
[package.extras]
@@ -2834,120 +3115,129 @@ ptyprocess = ">=0.5"
[[package]]
name = "pillow"
-version = "11.2.1"
-description = "Python Imaging Library (Fork)"
+version = "12.0.0"
+description = "Python Imaging Library (fork)"
optional = false
-python-versions = ">=3.9"
+python-versions = ">=3.10"
groups = ["main"]
files = [
- {file = "pillow-11.2.1-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:d57a75d53922fc20c165016a20d9c44f73305e67c351bbc60d1adaf662e74047"},
- {file = "pillow-11.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:127bf6ac4a5b58b3d32fc8289656f77f80567d65660bc46f72c0d77e6600cc95"},
- {file = "pillow-11.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b4ba4be812c7a40280629e55ae0b14a0aafa150dd6451297562e1764808bbe61"},
- {file = "pillow-11.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c8bd62331e5032bc396a93609982a9ab6b411c05078a52f5fe3cc59234a3abd1"},
- {file = "pillow-11.2.1-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:562d11134c97a62fe3af29581f083033179f7ff435f78392565a1ad2d1c2c45c"},
- {file = "pillow-11.2.1-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:c97209e85b5be259994eb5b69ff50c5d20cca0f458ef9abd835e262d9d88b39d"},
- {file = "pillow-11.2.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:0c3e6d0f59171dfa2e25d7116217543310908dfa2770aa64b8f87605f8cacc97"},
- {file = "pillow-11.2.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cc1c3bc53befb6096b84165956e886b1729634a799e9d6329a0c512ab651e579"},
- {file = "pillow-11.2.1-cp310-cp310-win32.whl", hash = "sha256:312c77b7f07ab2139924d2639860e084ec2a13e72af54d4f08ac843a5fc9c79d"},
- {file = "pillow-11.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:9bc7ae48b8057a611e5fe9f853baa88093b9a76303937449397899385da06fad"},
- {file = "pillow-11.2.1-cp310-cp310-win_arm64.whl", hash = "sha256:2728567e249cdd939f6cc3d1f049595c66e4187f3c34078cbc0a7d21c47482d2"},
- {file = "pillow-11.2.1-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:35ca289f712ccfc699508c4658a1d14652e8033e9b69839edf83cbdd0ba39e70"},
- {file = "pillow-11.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e0409af9f829f87a2dfb7e259f78f317a5351f2045158be321fd135973fff7bf"},
- {file = "pillow-11.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4e5c5edee874dce4f653dbe59db7c73a600119fbea8d31f53423586ee2aafd7"},
- {file = "pillow-11.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b93a07e76d13bff9444f1a029e0af2964e654bfc2e2c2d46bfd080df5ad5f3d8"},
- {file = "pillow-11.2.1-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:e6def7eed9e7fa90fde255afaf08060dc4b343bbe524a8f69bdd2a2f0018f600"},
- {file = "pillow-11.2.1-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:8f4f3724c068be008c08257207210c138d5f3731af6c155a81c2b09a9eb3a788"},
- {file = "pillow-11.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:a0a6709b47019dff32e678bc12c63008311b82b9327613f534e496dacaefb71e"},
- {file = "pillow-11.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f6b0c664ccb879109ee3ca702a9272d877f4fcd21e5eb63c26422fd6e415365e"},
- {file = "pillow-11.2.1-cp311-cp311-win32.whl", hash = "sha256:cc5d875d56e49f112b6def6813c4e3d3036d269c008bf8aef72cd08d20ca6df6"},
- {file = "pillow-11.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:0f5c7eda47bf8e3c8a283762cab94e496ba977a420868cb819159980b6709193"},
- {file = "pillow-11.2.1-cp311-cp311-win_arm64.whl", hash = "sha256:4d375eb838755f2528ac8cbc926c3e31cc49ca4ad0cf79cff48b20e30634a4a7"},
- {file = "pillow-11.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:78afba22027b4accef10dbd5eed84425930ba41b3ea0a86fa8d20baaf19d807f"},
- {file = "pillow-11.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:78092232a4ab376a35d68c4e6d5e00dfd73454bd12b230420025fbe178ee3b0b"},
- {file = "pillow-11.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25a5f306095c6780c52e6bbb6109624b95c5b18e40aab1c3041da3e9e0cd3e2d"},
- {file = "pillow-11.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c7b29dbd4281923a2bfe562acb734cee96bbb129e96e6972d315ed9f232bef4"},
- {file = "pillow-11.2.1-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:3e645b020f3209a0181a418bffe7b4a93171eef6c4ef6cc20980b30bebf17b7d"},
- {file = "pillow-11.2.1-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:b2dbea1012ccb784a65349f57bbc93730b96e85b42e9bf7b01ef40443db720b4"},
- {file = "pillow-11.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:da3104c57bbd72948d75f6a9389e6727d2ab6333c3617f0a89d72d4940aa0443"},
- {file = "pillow-11.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:598174aef4589af795f66f9caab87ba4ff860ce08cd5bb447c6fc553ffee603c"},
- {file = "pillow-11.2.1-cp312-cp312-win32.whl", hash = "sha256:1d535df14716e7f8776b9e7fee118576d65572b4aad3ed639be9e4fa88a1cad3"},
- {file = "pillow-11.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:14e33b28bf17c7a38eede290f77db7c664e4eb01f7869e37fa98a5aa95978941"},
- {file = "pillow-11.2.1-cp312-cp312-win_arm64.whl", hash = "sha256:21e1470ac9e5739ff880c211fc3af01e3ae505859392bf65458c224d0bf283eb"},
- {file = "pillow-11.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:fdec757fea0b793056419bca3e9932eb2b0ceec90ef4813ea4c1e072c389eb28"},
- {file = "pillow-11.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:b0e130705d568e2f43a17bcbe74d90958e8a16263868a12c3e0d9c8162690830"},
- {file = "pillow-11.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bdb5e09068332578214cadd9c05e3d64d99e0e87591be22a324bdbc18925be0"},
- {file = "pillow-11.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d189ba1bebfbc0c0e529159631ec72bb9e9bc041f01ec6d3233d6d82eb823bc1"},
- {file = "pillow-11.2.1-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:191955c55d8a712fab8934a42bfefbf99dd0b5875078240943f913bb66d46d9f"},
- {file = "pillow-11.2.1-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:ad275964d52e2243430472fc5d2c2334b4fc3ff9c16cb0a19254e25efa03a155"},
- {file = "pillow-11.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:750f96efe0597382660d8b53e90dd1dd44568a8edb51cb7f9d5d918b80d4de14"},
- {file = "pillow-11.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fe15238d3798788d00716637b3d4e7bb6bde18b26e5d08335a96e88564a36b6b"},
- {file = "pillow-11.2.1-cp313-cp313-win32.whl", hash = "sha256:3fe735ced9a607fee4f481423a9c36701a39719252a9bb251679635f99d0f7d2"},
- {file = "pillow-11.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:74ee3d7ecb3f3c05459ba95eed5efa28d6092d751ce9bf20e3e253a4e497e691"},
- {file = "pillow-11.2.1-cp313-cp313-win_arm64.whl", hash = "sha256:5119225c622403afb4b44bad4c1ca6c1f98eed79db8d3bc6e4e160fc6339d66c"},
- {file = "pillow-11.2.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:8ce2e8411c7aaef53e6bb29fe98f28cd4fbd9a1d9be2eeea434331aac0536b22"},
- {file = "pillow-11.2.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:9ee66787e095127116d91dea2143db65c7bb1e232f617aa5957c0d9d2a3f23a7"},
- {file = "pillow-11.2.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9622e3b6c1d8b551b6e6f21873bdcc55762b4b2126633014cea1803368a9aa16"},
- {file = "pillow-11.2.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63b5dff3a68f371ea06025a1a6966c9a1e1ee452fc8020c2cd0ea41b83e9037b"},
- {file = "pillow-11.2.1-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:31df6e2d3d8fc99f993fd253e97fae451a8db2e7207acf97859732273e108406"},
- {file = "pillow-11.2.1-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:062b7a42d672c45a70fa1f8b43d1d38ff76b63421cbbe7f88146b39e8a558d91"},
- {file = "pillow-11.2.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4eb92eca2711ef8be42fd3f67533765d9fd043b8c80db204f16c8ea62ee1a751"},
- {file = "pillow-11.2.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f91ebf30830a48c825590aede79376cb40f110b387c17ee9bd59932c961044f9"},
- {file = "pillow-11.2.1-cp313-cp313t-win32.whl", hash = "sha256:e0b55f27f584ed623221cfe995c912c61606be8513bfa0e07d2c674b4516d9dd"},
- {file = "pillow-11.2.1-cp313-cp313t-win_amd64.whl", hash = "sha256:36d6b82164c39ce5482f649b437382c0fb2395eabc1e2b1702a6deb8ad647d6e"},
- {file = "pillow-11.2.1-cp313-cp313t-win_arm64.whl", hash = "sha256:225c832a13326e34f212d2072982bb1adb210e0cc0b153e688743018c94a2681"},
- {file = "pillow-11.2.1-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:7491cf8a79b8eb867d419648fff2f83cb0b3891c8b36da92cc7f1931d46108c8"},
- {file = "pillow-11.2.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8b02d8f9cb83c52578a0b4beadba92e37d83a4ef11570a8688bbf43f4ca50909"},
- {file = "pillow-11.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:014ca0050c85003620526b0ac1ac53f56fc93af128f7546623cc8e31875ab928"},
- {file = "pillow-11.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3692b68c87096ac6308296d96354eddd25f98740c9d2ab54e1549d6c8aea9d79"},
- {file = "pillow-11.2.1-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:f781dcb0bc9929adc77bad571b8621ecb1e4cdef86e940fe2e5b5ee24fd33b35"},
- {file = "pillow-11.2.1-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:2b490402c96f907a166615e9a5afacf2519e28295f157ec3a2bb9bd57de638cb"},
- {file = "pillow-11.2.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:dd6b20b93b3ccc9c1b597999209e4bc5cf2853f9ee66e3fc9a400a78733ffc9a"},
- {file = "pillow-11.2.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:4b835d89c08a6c2ee7781b8dd0a30209a8012b5f09c0a665b65b0eb3560b6f36"},
- {file = "pillow-11.2.1-cp39-cp39-win32.whl", hash = "sha256:b10428b3416d4f9c61f94b494681280be7686bda15898a3a9e08eb66a6d92d67"},
- {file = "pillow-11.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:6ebce70c3f486acf7591a3d73431fa504a4e18a9b97ff27f5f47b7368e4b9dd1"},
- {file = "pillow-11.2.1-cp39-cp39-win_arm64.whl", hash = "sha256:c27476257b2fdcd7872d54cfd119b3a9ce4610fb85c8e32b70b42e3680a29a1e"},
- {file = "pillow-11.2.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:9b7b0d4fd2635f54ad82785d56bc0d94f147096493a79985d0ab57aedd563156"},
- {file = "pillow-11.2.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:aa442755e31c64037aa7c1cb186e0b369f8416c567381852c63444dd666fb772"},
- {file = "pillow-11.2.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f0d3348c95b766f54b76116d53d4cb171b52992a1027e7ca50c81b43b9d9e363"},
- {file = "pillow-11.2.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85d27ea4c889342f7e35f6d56e7e1cb345632ad592e8c51b693d7b7556043ce0"},
- {file = "pillow-11.2.1-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:bf2c33d6791c598142f00c9c4c7d47f6476731c31081331664eb26d6ab583e01"},
- {file = "pillow-11.2.1-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:e616e7154c37669fc1dfc14584f11e284e05d1c650e1c0f972f281c4ccc53193"},
- {file = "pillow-11.2.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:39ad2e0f424394e3aebc40168845fee52df1394a4673a6ee512d840d14ab3013"},
- {file = "pillow-11.2.1-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:80f1df8dbe9572b4b7abdfa17eb5d78dd620b1d55d9e25f834efdbee872d3aed"},
- {file = "pillow-11.2.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:ea926cfbc3957090becbcbbb65ad177161a2ff2ad578b5a6ec9bb1e1cd78753c"},
- {file = "pillow-11.2.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:738db0e0941ca0376804d4de6a782c005245264edaa253ffce24e5a15cbdc7bd"},
- {file = "pillow-11.2.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9db98ab6565c69082ec9b0d4e40dd9f6181dab0dd236d26f7a50b8b9bfbd5076"},
- {file = "pillow-11.2.1-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:036e53f4170e270ddb8797d4c590e6dd14d28e15c7da375c18978045f7e6c37b"},
- {file = "pillow-11.2.1-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:14f73f7c291279bd65fda51ee87affd7c1e097709f7fdd0188957a16c264601f"},
- {file = "pillow-11.2.1-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:208653868d5c9ecc2b327f9b9ef34e0e42a4cdd172c2988fd81d62d2bc9bc044"},
- {file = "pillow-11.2.1.tar.gz", hash = "sha256:a64dd61998416367b7ef979b73d3a85853ba9bec4c2925f74e588879a58716b6"}
+ {file = "pillow-12.0.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:3adfb466bbc544b926d50fe8f4a4e6abd8c6bffd28a26177594e6e9b2b76572b"},
+ {file = "pillow-12.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1ac11e8ea4f611c3c0147424eae514028b5e9077dd99ab91e1bd7bc33ff145e1"},
+ {file = "pillow-12.0.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d49e2314c373f4c2b39446fb1a45ed333c850e09d0c59ac79b72eb3b95397363"},
+ {file = "pillow-12.0.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c7b2a63fd6d5246349f3d3f37b14430d73ee7e8173154461785e43036ffa96ca"},
+ {file = "pillow-12.0.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d64317d2587c70324b79861babb9c09f71fbb780bad212018874b2c013d8600e"},
+ {file = "pillow-12.0.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d77153e14b709fd8b8af6f66a3afbb9ed6e9fc5ccf0b6b7e1ced7b036a228782"},
+ {file = "pillow-12.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:32ed80ea8a90ee3e6fa08c21e2e091bba6eda8eccc83dbc34c95169507a91f10"},
+ {file = "pillow-12.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c828a1ae702fc712978bda0320ba1b9893d99be0badf2647f693cc01cf0f04fa"},
+ {file = "pillow-12.0.0-cp310-cp310-win32.whl", hash = "sha256:bd87e140e45399c818fac4247880b9ce719e4783d767e030a883a970be632275"},
+ {file = "pillow-12.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:455247ac8a4cfb7b9bc45b7e432d10421aea9fc2e74d285ba4072688a74c2e9d"},
+ {file = "pillow-12.0.0-cp310-cp310-win_arm64.whl", hash = "sha256:6ace95230bfb7cd79ef66caa064bbe2f2a1e63d93471c3a2e1f1348d9f22d6b7"},
+ {file = "pillow-12.0.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:0fd00cac9c03256c8b2ff58f162ebcd2587ad3e1f2e397eab718c47e24d231cc"},
+ {file = "pillow-12.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a3475b96f5908b3b16c47533daaa87380c491357d197564e0ba34ae75c0f3257"},
+ {file = "pillow-12.0.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:110486b79f2d112cf6add83b28b627e369219388f64ef2f960fef9ebaf54c642"},
+ {file = "pillow-12.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5269cc1caeedb67e6f7269a42014f381f45e2e7cd42d834ede3c703a1d915fe3"},
+ {file = "pillow-12.0.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:aa5129de4e174daccbc59d0a3b6d20eaf24417d59851c07ebb37aeb02947987c"},
+ {file = "pillow-12.0.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bee2a6db3a7242ea309aa7ee8e2780726fed67ff4e5b40169f2c940e7eb09227"},
+ {file = "pillow-12.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:90387104ee8400a7b4598253b4c406f8958f59fcf983a6cea2b50d59f7d63d0b"},
+ {file = "pillow-12.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bc91a56697869546d1b8f0a3ff35224557ae7f881050e99f615e0119bf934b4e"},
+ {file = "pillow-12.0.0-cp311-cp311-win32.whl", hash = "sha256:27f95b12453d165099c84f8a8bfdfd46b9e4bda9e0e4b65f0635430027f55739"},
+ {file = "pillow-12.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:b583dc9070312190192631373c6c8ed277254aa6e6084b74bdd0a6d3b221608e"},
+ {file = "pillow-12.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:759de84a33be3b178a64c8ba28ad5c135900359e85fb662bc6e403ad4407791d"},
+ {file = "pillow-12.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:53561a4ddc36facb432fae7a9d8afbfaf94795414f5cdc5fc52f28c1dca90371"},
+ {file = "pillow-12.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:71db6b4c1653045dacc1585c1b0d184004f0d7e694c7b34ac165ca70c0838082"},
+ {file = "pillow-12.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:2fa5f0b6716fc88f11380b88b31fe591a06c6315e955c096c35715788b339e3f"},
+ {file = "pillow-12.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:82240051c6ca513c616f7f9da06e871f61bfd7805f566275841af15015b8f98d"},
+ {file = "pillow-12.0.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:55f818bd74fe2f11d4d7cbc65880a843c4075e0ac7226bc1a23261dbea531953"},
+ {file = "pillow-12.0.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b87843e225e74576437fd5b6a4c2205d422754f84a06942cfaf1dc32243e45a8"},
+ {file = "pillow-12.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c607c90ba67533e1b2355b821fef6764d1dd2cbe26b8c1005ae84f7aea25ff79"},
+ {file = "pillow-12.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:21f241bdd5080a15bc86d3466a9f6074a9c2c2b314100dd896ac81ee6db2f1ba"},
+ {file = "pillow-12.0.0-cp312-cp312-win32.whl", hash = "sha256:dd333073e0cacdc3089525c7df7d39b211bcdf31fc2824e49d01c6b6187b07d0"},
+ {file = "pillow-12.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:9fe611163f6303d1619bbcb653540a4d60f9e55e622d60a3108be0d5b441017a"},
+ {file = "pillow-12.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:7dfb439562f234f7d57b1ac6bc8fe7f838a4bd49c79230e0f6a1da93e82f1fad"},
+ {file = "pillow-12.0.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:0869154a2d0546545cde61d1789a6524319fc1897d9ee31218eae7a60ccc5643"},
+ {file = "pillow-12.0.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:a7921c5a6d31b3d756ec980f2f47c0cfdbce0fc48c22a39347a895f41f4a6ea4"},
+ {file = "pillow-12.0.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:1ee80a59f6ce048ae13cda1abf7fbd2a34ab9ee7d401c46be3ca685d1999a399"},
+ {file = "pillow-12.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c50f36a62a22d350c96e49ad02d0da41dbd17ddc2e29750dbdba4323f85eb4a5"},
+ {file = "pillow-12.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5193fde9a5f23c331ea26d0cf171fbf67e3f247585f50c08b3e205c7aeb4589b"},
+ {file = "pillow-12.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:bde737cff1a975b70652b62d626f7785e0480918dece11e8fef3c0cf057351c3"},
+ {file = "pillow-12.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:a6597ff2b61d121172f5844b53f21467f7082f5fb385a9a29c01414463f93b07"},
+ {file = "pillow-12.0.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0b817e7035ea7f6b942c13aa03bb554fc44fea70838ea21f8eb31c638326584e"},
+ {file = "pillow-12.0.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f4f1231b7dec408e8670264ce63e9c71409d9583dd21d32c163e25213ee2a344"},
+ {file = "pillow-12.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6e51b71417049ad6ab14c49608b4a24d8fb3fe605e5dfabfe523b58064dc3d27"},
+ {file = "pillow-12.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d120c38a42c234dc9a8c5de7ceaaf899cf33561956acb4941653f8bdc657aa79"},
+ {file = "pillow-12.0.0-cp313-cp313-win32.whl", hash = "sha256:4cc6b3b2efff105c6a1656cfe59da4fdde2cda9af1c5e0b58529b24525d0a098"},
+ {file = "pillow-12.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:4cf7fed4b4580601c4345ceb5d4cbf5a980d030fd5ad07c4d2ec589f95f09905"},
+ {file = "pillow-12.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:9f0b04c6b8584c2c193babcccc908b38ed29524b29dd464bc8801bf10d746a3a"},
+ {file = "pillow-12.0.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:7fa22993bac7b77b78cae22bad1e2a987ddf0d9015c63358032f84a53f23cdc3"},
+ {file = "pillow-12.0.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:f135c702ac42262573fe9714dfe99c944b4ba307af5eb507abef1667e2cbbced"},
+ {file = "pillow-12.0.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c85de1136429c524e55cfa4e033b4a7940ac5c8ee4d9401cc2d1bf48154bbc7b"},
+ {file = "pillow-12.0.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:38df9b4bfd3db902c9c2bd369bcacaf9d935b2fff73709429d95cc41554f7b3d"},
+ {file = "pillow-12.0.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7d87ef5795da03d742bf49439f9ca4d027cde49c82c5371ba52464aee266699a"},
+ {file = "pillow-12.0.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:aff9e4d82d082ff9513bdd6acd4f5bd359f5b2c870907d2b0a9c5e10d40c88fe"},
+ {file = "pillow-12.0.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:8d8ca2b210ada074d57fcee40c30446c9562e542fc46aedc19baf758a93532ee"},
+ {file = "pillow-12.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:99a7f72fb6249302aa62245680754862a44179b545ded638cf1fef59befb57ef"},
+ {file = "pillow-12.0.0-cp313-cp313t-win32.whl", hash = "sha256:4078242472387600b2ce8d93ade8899c12bf33fa89e55ec89fe126e9d6d5d9e9"},
+ {file = "pillow-12.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:2c54c1a783d6d60595d3514f0efe9b37c8808746a66920315bfd34a938d7994b"},
+ {file = "pillow-12.0.0-cp313-cp313t-win_arm64.whl", hash = "sha256:26d9f7d2b604cd23aba3e9faf795787456ac25634d82cd060556998e39c6fa47"},
+ {file = "pillow-12.0.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:beeae3f27f62308f1ddbcfb0690bf44b10732f2ef43758f169d5e9303165d3f9"},
+ {file = "pillow-12.0.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:d4827615da15cd59784ce39d3388275ec093ae3ee8d7f0c089b76fa87af756c2"},
+ {file = "pillow-12.0.0-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:3e42edad50b6909089750e65c91aa09aaf1e0a71310d383f11321b27c224ed8a"},
+ {file = "pillow-12.0.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:e5d8efac84c9afcb40914ab49ba063d94f5dbdf5066db4482c66a992f47a3a3b"},
+ {file = "pillow-12.0.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:266cd5f2b63ff316d5a1bba46268e603c9caf5606d44f38c2873c380950576ad"},
+ {file = "pillow-12.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:58eea5ebe51504057dd95c5b77d21700b77615ab0243d8152793dc00eb4faf01"},
+ {file = "pillow-12.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f13711b1a5ba512d647a0e4ba79280d3a9a045aaf7e0cc6fbe96b91d4cdf6b0c"},
+ {file = "pillow-12.0.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6846bd2d116ff42cba6b646edf5bf61d37e5cbd256425fa089fee4ff5c07a99e"},
+ {file = "pillow-12.0.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c98fa880d695de164b4135a52fd2e9cd7b7c90a9d8ac5e9e443a24a95ef9248e"},
+ {file = "pillow-12.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:fa3ed2a29a9e9d2d488b4da81dcb54720ac3104a20bf0bd273f1e4648aff5af9"},
+ {file = "pillow-12.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d034140032870024e6b9892c692fe2968493790dd57208b2c37e3fb35f6df3ab"},
+ {file = "pillow-12.0.0-cp314-cp314-win32.whl", hash = "sha256:1b1b133e6e16105f524a8dec491e0586d072948ce15c9b914e41cdadd209052b"},
+ {file = "pillow-12.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:8dc232e39d409036af549c86f24aed8273a40ffa459981146829a324e0848b4b"},
+ {file = "pillow-12.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:d52610d51e265a51518692045e372a4c363056130d922a7351429ac9f27e70b0"},
+ {file = "pillow-12.0.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:1979f4566bb96c1e50a62d9831e2ea2d1211761e5662afc545fa766f996632f6"},
+ {file = "pillow-12.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:b2e4b27a6e15b04832fe9bf292b94b5ca156016bbc1ea9c2c20098a0320d6cf6"},
+ {file = "pillow-12.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:fb3096c30df99fd01c7bf8e544f392103d0795b9f98ba71a8054bcbf56b255f1"},
+ {file = "pillow-12.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7438839e9e053ef79f7112c881cef684013855016f928b168b81ed5835f3e75e"},
+ {file = "pillow-12.0.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5d5c411a8eaa2299322b647cd932586b1427367fd3184ffbb8f7a219ea2041ca"},
+ {file = "pillow-12.0.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d7e091d464ac59d2c7ad8e7e08105eaf9dafbc3883fd7265ffccc2baad6ac925"},
+ {file = "pillow-12.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:792a2c0be4dcc18af9d4a2dfd8a11a17d5e25274a1062b0ec1c2d79c76f3e7f8"},
+ {file = "pillow-12.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:afbefa430092f71a9593a99ab6a4e7538bc9eabbf7bf94f91510d3503943edc4"},
+ {file = "pillow-12.0.0-cp314-cp314t-win32.whl", hash = "sha256:3830c769decf88f1289680a59d4f4c46c72573446352e2befec9a8512104fa52"},
+ {file = "pillow-12.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:905b0365b210c73afb0ebe9101a32572152dfd1c144c7e28968a331b9217b94a"},
+ {file = "pillow-12.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:99353a06902c2e43b43e8ff74ee65a7d90307d82370604746738a1e0661ccca7"},
+ {file = "pillow-12.0.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:b22bd8c974942477156be55a768f7aa37c46904c175be4e158b6a86e3a6b7ca8"},
+ {file = "pillow-12.0.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:805ebf596939e48dbb2e4922a1d3852cfc25c38160751ce02da93058b48d252a"},
+ {file = "pillow-12.0.0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cae81479f77420d217def5f54b5b9d279804d17e982e0f2fa19b1d1e14ab5197"},
+ {file = "pillow-12.0.0-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:aeaefa96c768fc66818730b952a862235d68825c178f1b3ffd4efd7ad2edcb7c"},
+ {file = "pillow-12.0.0-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:09f2d0abef9e4e2f349305a4f8cc784a8a6c2f58a8c4892eea13b10a943bd26e"},
+ {file = "pillow-12.0.0-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bdee52571a343d721fb2eb3b090a82d959ff37fc631e3f70422e0c2e029f3e76"},
+ {file = "pillow-12.0.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:b290fd8aa38422444d4b50d579de197557f182ef1068b75f5aa8558638b8d0a5"},
+ {file = "pillow-12.0.0.tar.gz", hash = "sha256:87d4f8125c9988bfbed67af47dd7a953e2fc7b0cc1e7800ec6d2080d490bb353"}
]
[package.extras]
-docs = ["furo", "olefile", "sphinx (>=8.2)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinxext-opengraph"]
+docs = ["furo", "olefile", "sphinx (>=8.2)", "sphinx-autobuild", "sphinx-copybutton", "sphinx-inline-tabs", "sphinxext-opengraph"]
fpx = ["olefile"]
mic = ["olefile"]
-test-arrow = ["pyarrow"]
-tests = ["check-manifest", "coverage (>=7.4.2)", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout", "trove-classifiers (>=2024.10.12)"]
-typing = ["typing-extensions ; python_version < \"3.10\""]
+test-arrow = ["arro3-compute", "arro3-core", "nanoarrow", "pyarrow"]
+tests = ["check-manifest", "coverage (>=7.4.2)", "defusedxml", "markdown2", "olefile", "packaging", "pyroma (>=5)", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "trove-classifiers (>=2024.10.12)"]
xmp = ["defusedxml"]
[[package]]
name = "platformdirs"
-version = "4.3.8"
+version = "4.5.0"
description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`."
optional = false
-python-versions = ">=3.9"
+python-versions = ">=3.10"
groups = ["main", "dev"]
files = [
- {file = "platformdirs-4.3.8-py3-none-any.whl", hash = "sha256:ff7059bb7eb1179e2685604f4aaf157cfd9535242bd23742eadc3c13542139b4"},
- {file = "platformdirs-4.3.8.tar.gz", hash = "sha256:3d512d96e16bcb959a814c9f348431070822a6496326a4be0911c40b5a74c2bc"}
+ {file = "platformdirs-4.5.0-py3-none-any.whl", hash = "sha256:e578a81bb873cbb89a41fcc904c7ef523cc18284b7e3b3ccf06aca1403b7ebd3"},
+ {file = "platformdirs-4.5.0.tar.gz", hash = "sha256:70ddccdd7c99fc5942e9fc25636a8b34d04c24b335100223152c2803e4063312"}
]
[package.extras]
-docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.1.3)", "sphinx-autodoc-typehints (>=3)"]
-test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.4)", "pytest-cov (>=6)", "pytest-mock (>=3.14)"]
-type = ["mypy (>=1.14.1)"]
+docs = ["furo (>=2025.9.25)", "proselint (>=0.14)", "sphinx (>=8.2.3)", "sphinx-autodoc-typehints (>=3.2)"]
+test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.4.2)", "pytest-cov (>=7)", "pytest-mock (>=3.15.1)"]
+type = ["mypy (>=1.18.2)"]
[[package]]
name = "pluggy"
@@ -2967,21 +3257,19 @@ testing = ["coverage", "pytest", "pytest-benchmark"]
[[package]]
name = "polars"
-version = "1.31.0"
+version = "1.34.0"
description = "Blazingly fast DataFrame library"
optional = false
python-versions = ">=3.9"
groups = ["main"]
files = [
- {file = "polars-1.31.0-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:ccc68cd6877deecd46b13cbd2663ca89ab2a2cb1fe49d5cfc66a9cef166566d9"},
- {file = "polars-1.31.0-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:a94c5550df397ad3c2d6adc212e59fd93d9b044ec974dd3653e121e6487a7d21"},
- {file = "polars-1.31.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ada7940ed92bea65d5500ae7ac1f599798149df8faa5a6db150327c9ddbee4f1"},
- {file = "polars-1.31.0-cp39-abi3-manylinux_2_24_aarch64.whl", hash = "sha256:b324e6e3e8c6cc6593f9d72fe625f06af65e8d9d47c8686583585533a5e731e1"},
- {file = "polars-1.31.0-cp39-abi3-win_amd64.whl", hash = "sha256:3fd874d3432fc932863e8cceff2cff8a12a51976b053f2eb6326a0672134a632"},
- {file = "polars-1.31.0-cp39-abi3-win_arm64.whl", hash = "sha256:62ef23bb9d10dca4c2b945979f9a50812ac4ace4ed9e158a6b5d32a7322e6f75"},
- {file = "polars-1.31.0.tar.gz", hash = "sha256:59a88054a5fc0135386268ceefdbb6a6cc012d21b5b44fed4f1d3faabbdcbf32"}
+ {file = "polars-1.34.0-py3-none-any.whl", hash = "sha256:40d2f357b4d9e447ad28bd2c9923e4318791a7c18eb68f31f1fbf11180f41391"},
+ {file = "polars-1.34.0.tar.gz", hash = "sha256:5de5f871027db4b11bcf39215a2d6b13b4a80baf8a55c5862d4ebedfd5cd4013"}
]
+[package.dependencies]
+polars-runtime-32 = "1.34.0"
+
[package.extras]
adbc = ["adbc-driver-manager[dbapi]", "adbc-driver-sqlite[dbapi]"]
all = ["polars[async,cloudpickle,database,deltalake,excel,fsspec,graph,iceberg,numpy,pandas,plot,pyarrow,pydantic,style,timezone]"]
@@ -3000,64 +3288,78 @@ numpy = ["numpy (>=1.16.0)"]
openpyxl = ["openpyxl (>=3.0.0)"]
pandas = ["pandas", "polars[pyarrow]"]
plot = ["altair (>=5.4.0)"]
-polars-cloud = ["polars-cloud (>=0.0.1a1)"]
+polars-cloud = ["polars_cloud (>=0.0.1a1)"]
pyarrow = ["pyarrow (>=7.0.0)"]
pydantic = ["pydantic"]
+rt64 = ["polars-runtime-64 (==1.34.0)"]
+rtcompat = ["polars-runtime-compat (==1.34.0)"]
sqlalchemy = ["polars[pandas]", "sqlalchemy"]
style = ["great-tables (>=0.8.0)"]
timezone = ["tzdata ; platform_system == \"Windows\""]
xlsx2csv = ["xlsx2csv (>=0.8.0)"]
xlsxwriter = ["xlsxwriter"]
+[[package]]
+name = "polars-runtime-32"
+version = "1.34.0"
+description = "Blazingly fast DataFrame library"
+optional = false
+python-versions = ">=3.9"
+groups = ["main"]
+files = [
+ {file = "polars_runtime_32-1.34.0-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:2878f9951e91121afe60c25433ef270b9a221e6ebf3de5f6642346b38cab3f03"},
+ {file = "polars_runtime_32-1.34.0-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:fbc329c7d34a924228cc5dcdbbd4696d94411a3a5b15ad8bb868634c204e1951"},
+ {file = "polars_runtime_32-1.34.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93fa51d88a2d12ea996a5747aad5647d22a86cce73c80f208e61f487b10bc448"},
+ {file = "polars_runtime_32-1.34.0-cp39-abi3-manylinux_2_24_aarch64.whl", hash = "sha256:79e4d696392c6d8d51f4347f0b167c52eef303c9d87093c0c68e8651198735b7"},
+ {file = "polars_runtime_32-1.34.0-cp39-abi3-win_amd64.whl", hash = "sha256:2501d6b29d9001ea5ea2fd9b598787e10ddf45d8c4a87c2bead75159e8a15711"},
+ {file = "polars_runtime_32-1.34.0-cp39-abi3-win_arm64.whl", hash = "sha256:f9ed1765378dfe0bcd1ac5ec570dd9eab27ea728bbc980cc9a76eebc55586559"},
+ {file = "polars_runtime_32-1.34.0.tar.gz", hash = "sha256:ebe6f865128a0d833f53a3f6828360761ad86d1698bceb22bef9fd999500dc1c"}
+]
+
[[package]]
name = "pot"
-version = "0.9.5"
+version = "0.9.6.post1"
description = "Python Optimal Transport Library"
optional = false
python-versions = ">=3.7"
groups = ["main"]
files = [
- {file = "POT-0.9.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:34d766c38e65a69c087b01a854fe89fbd152c3e8af93da2227b6c40aed6d37b9"},
- {file = "POT-0.9.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b5407377256de11b6fdc94bbba9b50ea5a2301570905fc9014541cc8473806d9"},
- {file = "POT-0.9.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2f37039cd356198c1fb994e7d935b9bf75d44f2a40319d298bf8cc149eb360d5"},
- {file = "POT-0.9.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:00a18427c9abdd107a2285ea0a814c6b22e95a1af8f88a37c56f23cd216f7a6b"},
- {file = "POT-0.9.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0dc608cea1107289a58dec33cddc1b0a3fea77ff36d66e2c8ac7aeea543969a"},
- {file = "POT-0.9.5-cp310-cp310-win32.whl", hash = "sha256:8312bee055389db47adab063749c8d77b5981534177ca6cd9b91e4fb68f69d00"},
- {file = "POT-0.9.5-cp310-cp310-win_amd64.whl", hash = "sha256:043706d69202ac87e140121ba32ed1b038f2b3fc4a5549586187239a583cd50d"},
- {file = "POT-0.9.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:b5f000da00e408ff781672a4895bfa8daacec055bd534c9e66ead479f3c6d83c"},
- {file = "POT-0.9.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9eddd9ff29bdb17d4db8ba00ba18d42656c694a128591502bf59afc1369e1bb3"},
- {file = "POT-0.9.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7eb9b88c73387a9966775a6f6d077d9d071814783701d2656dc05b5032a9662d"},
- {file = "POT-0.9.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9f44446056f5fc9d132ed8e431732c33cbe754fb1e6d73636f1b6ae811be7df"},
- {file = "POT-0.9.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7f5d27bc9063e01b03d906bb77e7b3428065fdd72ed64233b249584ead2e2bf"},
- {file = "POT-0.9.5-cp311-cp311-win32.whl", hash = "sha256:cd79a8b4d35b706f2124f73ebff3bb1ce3450e01cc8f610eda3b6ce13616b829"},
- {file = "POT-0.9.5-cp311-cp311-win_amd64.whl", hash = "sha256:6680aadb69df2f75a413fe9c58bd1c5cb744d017a7c8ba8841654fd0dc75433b"},
- {file = "POT-0.9.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:7d57f96b333c9816a2af7817753108739b38155e52648c5967681dbd89d92ed2"},
- {file = "POT-0.9.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:afad647c78f999439f8c5cbcf74b03c5c0afefb08727cd7d68994130fabfc761"},
- {file = "POT-0.9.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:bca891c28592d6e0e8f04b35989de7005f0fb9b3923f00537f1b269c5084aa7b"},
- {file = "POT-0.9.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:088c930a5fcd1e8e36fb6af710df47ce6e9331b6b5a28eb09c673df4186dcb10"},
- {file = "POT-0.9.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dfb18268fac1e982e21821a03f802802a0d579c4690988b764115dd886dc38f5"},
- {file = "POT-0.9.5-cp312-cp312-win32.whl", hash = "sha256:931fa46ff8e01d47309207243988c783a2d8364452bc080b130c5d319349ad3f"},
- {file = "POT-0.9.5-cp312-cp312-win_amd64.whl", hash = "sha256:be786612b391c2e4d3b5db4e7d51cdb2360284e3a6949990051c2eb102f60d3c"},
- {file = "POT-0.9.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:844820020240bad66ca07255289df9ed1e46c5f71ba2401852833c0dd114c660"},
- {file = "POT-0.9.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a76a5bed3af51db1a10c59ba376f500a743f8e20c2a6d4851c4535dbbed17714"},
- {file = "POT-0.9.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a03da3283cb04a1fa3258f0096ad9cfa3311192d5a6bee3a2ca0e15304f8652"},
- {file = "POT-0.9.5-cp37-cp37m-win32.whl", hash = "sha256:dc50b8005b4dfa3478f0bf841c22d8b3500a8a04e5673da146d71f7039607e3a"},
- {file = "POT-0.9.5-cp37-cp37m-win_amd64.whl", hash = "sha256:a9cab787bcb3ce6d23ef297c115baad34ed578a98b4a02afba8cb4e30e39d171"},
- {file = "POT-0.9.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:926ba491b5b1f43fb0f3bc6e9d92b6cc634c12e2fa778eba88d9350e82fc2c88"},
- {file = "POT-0.9.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1b77b630a303868ee14015a4306d7e852b174d4a734815c67e27cd45fd59cc07"},
- {file = "POT-0.9.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:db0dd974328cbdd7b20477fb5757326dda22d77cb639f4759296fcd206db380f"},
- {file = "POT-0.9.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eb29c375d02bb5aadad527133e9c20dd73930d8e2294434dc5306fb740a49d9e"},
- {file = "POT-0.9.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:293e0993d66b09db69c2282edbf859e1de57a3f15b99bd909609ce120380b398"},
- {file = "POT-0.9.5-cp38-cp38-win32.whl", hash = "sha256:5996d538885b834e36a3838bc73adeb747bd54ab0a2b3178addbb35b3edafa45"},
- {file = "POT-0.9.5-cp38-cp38-win_amd64.whl", hash = "sha256:0131aab58d57bf5876d826461d0968d1a655b611cc8c0297c38ab8a235e0d627"},
- {file = "POT-0.9.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:95c29ee3e647b272bfcb35c3c4cb7409326a0a6d3bf3ed8460495e9ac3f3a76d"},
- {file = "POT-0.9.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b1bca1b3465eadab9d5e1c075122963da3e921102555d1c6b7ff3c1f437d3e18"},
- {file = "POT-0.9.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e64f5d8890e21eb1e7decac694c34820496238e7d9c95309411e58cb0b04d384"},
- {file = "POT-0.9.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4fa190662670868126a2372499aec513bd4ac50b4565fe2014525c7cef11e2bf"},
- {file = "POT-0.9.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f9b775daf69cb4043897050961f9b654c30261543e531d53248a99e5599db0c8"},
- {file = "POT-0.9.5-cp39-cp39-win32.whl", hash = "sha256:ceea4cffebce88211cd63bfddc878e2f29a6b6347125cbac40fa214308315878"},
- {file = "POT-0.9.5-cp39-cp39-win_amd64.whl", hash = "sha256:2f6af660505772833d4ccc189d9de264b429d9ec8e0cb564f33d2181e6f1bbce"},
- {file = "pot-0.9.5.tar.gz", hash = "sha256:9644ee7ff51c3cffa3c2632b9dd9dff4f3520266f9fb771450935ffb646d6042"}
+ {file = "pot-0.9.6.post1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:2127b310a13f03951be450812e7dfdf62c5484bc6219bd0e0639f0347b3b60dd"},
+ {file = "pot-0.9.6.post1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ef7d50dbc851d8b69a6c5305fcad197f149047093e5f4555aed1ea77d1d7823b"},
+ {file = "pot-0.9.6.post1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1de9cf2af8920c5902f1ee779cf2bf388d5677618735ce91f65d7f8e0ead629e"},
+ {file = "pot-0.9.6.post1-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b17c1373366f8ebd745d159793f415660ec45e69048305bb8597267d900145ab"},
+ {file = "pot-0.9.6.post1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:48924f34d61b909e68651f3fe9fc1a892c69ae38d3c52bc832f95a28569c0e0e"},
+ {file = "pot-0.9.6.post1-cp310-cp310-win32.whl", hash = "sha256:06e21b4dcebc2e8e318a96889243580ea64364830d05d53c4d038afedbe072cc"},
+ {file = "pot-0.9.6.post1-cp310-cp310-win_amd64.whl", hash = "sha256:d35bb0169ef242fc2ce4f610572a5d11ac11d646698cbdf8cbb45d828f3c514b"},
+ {file = "pot-0.9.6.post1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7fd8482a0262e5c875c05cf52e9c087e7c8bc473ef05d175887ad16e3c0443b7"},
+ {file = "pot-0.9.6.post1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c0bfac9daec0095061279a709f52be740e09363a62fe4c7edc843a4a0f6144c6"},
+ {file = "pot-0.9.6.post1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:703853f7ba0ae2afed8203ea3478e87ef5f39d55cd75b1a39bb622867d1d5628"},
+ {file = "pot-0.9.6.post1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:68268b4dd926976cf0604d466a57dff2ca44372e8ae9c879ba1f3d2a51e3be3d"},
+ {file = "pot-0.9.6.post1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c7568ddc957d3a16739bd24f9e07ce655166d27ebbc8786aad692cc5ba5d4c59"},
+ {file = "pot-0.9.6.post1-cp311-cp311-win32.whl", hash = "sha256:9649b736ea5dddad3a89d55a4a3bb0078610307ba64cac2efebe6bfcf8cfe785"},
+ {file = "pot-0.9.6.post1-cp311-cp311-win_amd64.whl", hash = "sha256:e161e49a22d5a925993baace4679f4e32fc2ade8f45ad73cf8417e13df5bd337"},
+ {file = "pot-0.9.6.post1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:f7c542fc20662e35c24dd82eeff8a737220757434d7f0038664a7322221452f7"},
+ {file = "pot-0.9.6.post1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c1755516a7354cbd6110ad2e5f341b98b9968240c2f0f67b0ff5e3ebcb3105bd"},
+ {file = "pot-0.9.6.post1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f3207362d3e3b5aaa783f452aa85f66e83edbefb5764f34662860af54ac72ee6"},
+ {file = "pot-0.9.6.post1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:05f6659c5657e6d7e9f98f4a82e0ed64f88e9fce69b2e557416d156343919ba3"},
+ {file = "pot-0.9.6.post1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4f1b0148ae17bec0ed12264c6da3a05e13913b716e2a8c9043242b5d8349d8df"},
+ {file = "pot-0.9.6.post1-cp312-cp312-win32.whl", hash = "sha256:571e543cc2b0a462365002203595baf2b89c3d064cce4fce70fd1231e832c21f"},
+ {file = "pot-0.9.6.post1-cp312-cp312-win_amd64.whl", hash = "sha256:b1d8bd9a334c72baa37f9a2b268de5366c23c0f9c9e3d6dc25d150137ec2823c"},
+ {file = "pot-0.9.6.post1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:659fff750a162f58b52b33a64c4ac358f4ff44e9dff0841052c088e1b6a54430"},
+ {file = "pot-0.9.6.post1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4f54830e9f9cb78b1ff7abd5c5bf162625ed6aea903241267c64ea9f0fb73ddb"},
+ {file = "pot-0.9.6.post1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e9fd4b1fafacd37debdb984687ddb26f5c43d1429401847d388a6f1bd1f10e98"},
+ {file = "pot-0.9.6.post1-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ec097ec0ef8bb93fee8cdb187b6a0a9653613cba7b06bb603247930e2c629cdc"},
+ {file = "pot-0.9.6.post1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:299f11f172908d799793ef18b2bc82452305350d2528d243e255a17876e98a57"},
+ {file = "pot-0.9.6.post1-cp313-cp313-win32.whl", hash = "sha256:8a1d95310faae9c75355d9e2fac8dfac41316a2450061eefc982ee498a687a34"},
+ {file = "pot-0.9.6.post1-cp313-cp313-win_amd64.whl", hash = "sha256:a43e2b61389bd32f5b488da2488999ed55867e95fedb25dd64f9f390e40b4fab"},
+ {file = "pot-0.9.6.post1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8e16ad379f32030385b4328f5844751d905c913a94c09581595e726c402e460b"},
+ {file = "pot-0.9.6.post1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b964efd192308fd636fdbb1dd2896946b7dd7d45d08a7324dc217f38f7f568f"},
+ {file = "pot-0.9.6.post1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:be39b1c80e08b205c9f3f36ab66a364d29286fa3b4deaac14b0a8cc8e2ca5a3f"},
+ {file = "pot-0.9.6.post1-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dedcb06ce83790bb7948461fc801542e97c11d7a65846010744a3c449de3af3b"},
+ {file = "pot-0.9.6.post1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:72ce6859e3c93e3c9fef88de35a716ac37b1b7f241063b5ceb5a96bb55835ad6"},
+ {file = "pot-0.9.6.post1-cp39-cp39-win32.whl", hash = "sha256:23bdedf4bfdd4c13c571a0efead331cd54ad5a9116d764027c252b3b7738b2c2"},
+ {file = "pot-0.9.6.post1-cp39-cp39-win_amd64.whl", hash = "sha256:60a660387fbdcf3f888768937e9245c5299dd6c247f8340c5d0ced1b83e2c6db"},
+ {file = "pot-0.9.6.post1.tar.gz", hash = "sha256:9b6cc14a8daecfe1268268168cf46548f9130976b22b24a9e8ec62a734be6c43"}
]
[package.dependencies]
@@ -3065,25 +3367,25 @@ numpy = ">=1.16"
scipy = ">=1.6"
[package.extras]
-all = ["autograd", "cvxopt", "jax", "jaxlib", "matplotlib", "pymanopt", "scikit-learn", "tensorflow", "torch", "torch-geometric"]
+all = ["autograd", "cvxopt", "jax", "jaxlib", "matplotlib", "pymanopt", "scikit-learn", "tensorflow", "torch", "torch_geometric"]
backend-jax = ["jax", "jaxlib"]
backend-tf = ["tensorflow"]
backend-torch = ["torch"]
cvxopt = ["cvxopt"]
dr = ["autograd", "pymanopt", "scikit-learn"]
-gnn = ["torch", "torch-geometric"]
+gnn = ["torch", "torch_geometric"]
plot = ["matplotlib"]
[[package]]
name = "pre-commit"
-version = "4.2.0"
+version = "4.3.0"
description = "A framework for managing and maintaining multi-language pre-commit hooks."
optional = false
python-versions = ">=3.9"
groups = ["dev"]
files = [
- {file = "pre_commit-4.2.0-py2.py3-none-any.whl", hash = "sha256:a009ca7205f1eb497d10b845e52c838a98b6cdd2102a6c8e4540e94ee75c58bd"},
- {file = "pre_commit-4.2.0.tar.gz", hash = "sha256:601283b9757afd87d40c4c4a9b2b5de9637a8ea02eaff7adc2d0fb4e04841146"}
+ {file = "pre_commit-4.3.0-py2.py3-none-any.whl", hash = "sha256:2b0747ad7e6e967169136edffee14c16e148a778a54e4f967921aa1ebf2308d8"},
+ {file = "pre_commit-4.3.0.tar.gz", hash = "sha256:499fe450cc9d42e9d58e606262795ecb64dd05438943c62b66f6a8673da30b16"}
]
[package.dependencies]
@@ -3095,14 +3397,14 @@ virtualenv = ">=20.10.0"
[[package]]
name = "prometheus-client"
-version = "0.22.1"
+version = "0.23.1"
description = "Python client for the Prometheus monitoring system."
optional = false
python-versions = ">=3.9"
groups = ["main"]
files = [
- {file = "prometheus_client-0.22.1-py3-none-any.whl", hash = "sha256:cca895342e308174341b2cbf99a56bef291fbc0ef7b9e5412a0f26d653ba7094"},
- {file = "prometheus_client-0.22.1.tar.gz", hash = "sha256:190f1331e783cf21eb60bca559354e0a4d4378facecf78f5428c39b675d20d28"}
+ {file = "prometheus_client-0.23.1-py3-none-any.whl", hash = "sha256:dd1913e6e76b59cfe44e7a4b83e01afc9873c1bdfd2ed8739f1e76aeca115f99"},
+ {file = "prometheus_client-0.23.1.tar.gz", hash = "sha256:6ae8f9081eaaaf153a2e959d2e6c4f4fb57b12ef76c8c7980202f1e57b48b2ce"}
]
[package.extras]
@@ -3110,14 +3412,14 @@ twisted = ["twisted"]
[[package]]
name = "prompt-toolkit"
-version = "3.0.51"
+version = "3.0.52"
description = "Library for building powerful interactive command lines in Python"
optional = false
python-versions = ">=3.8"
groups = ["main"]
files = [
- {file = "prompt_toolkit-3.0.51-py3-none-any.whl", hash = "sha256:52742911fde84e2d423e2f9a4cf1de7d7ac4e51958f648d9540e0fb8db077b07"},
- {file = "prompt_toolkit-3.0.51.tar.gz", hash = "sha256:931a162e3b27fc90c86f1b48bb1fb2c528c2761475e57c9c06de13311c7b54ed"}
+ {file = "prompt_toolkit-3.0.52-py3-none-any.whl", hash = "sha256:9aac639a3bbd33284347de5ad8d68ecc044b91a762dc39b7c21095fcd6a19955"},
+ {file = "prompt_toolkit-3.0.52.tar.gz", hash = "sha256:28cde192929c8e7321de85de1ddbe736f1375148b02f2e17edd840042b1be855"}
]
[package.dependencies]
@@ -3125,27 +3427,26 @@ wcwidth = "*"
[[package]]
name = "psutil"
-version = "7.0.0"
-description = "Cross-platform lib for process and system monitoring in Python. NOTE: the syntax of this script MUST be kept compatible with Python 2.7."
+version = "7.1.0"
+description = "Cross-platform lib for process and system monitoring."
optional = false
python-versions = ">=3.6"
groups = ["main"]
files = [
- {file = "psutil-7.0.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:101d71dc322e3cffd7cea0650b09b3d08b8e7c4109dd6809fe452dfd00e58b25"},
- {file = "psutil-7.0.0-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:39db632f6bb862eeccf56660871433e111b6ea58f2caea825571951d4b6aa3da"},
- {file = "psutil-7.0.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1fcee592b4c6f146991ca55919ea3d1f8926497a713ed7faaf8225e174581e91"},
- {file = "psutil-7.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b1388a4f6875d7e2aff5c4ca1cc16c545ed41dd8bb596cefea80111db353a34"},
- {file = "psutil-7.0.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5f098451abc2828f7dc6b58d44b532b22f2088f4999a937557b603ce72b1993"},
- {file = "psutil-7.0.0-cp36-cp36m-win32.whl", hash = "sha256:84df4eb63e16849689f76b1ffcb36db7b8de703d1bc1fe41773db487621b6c17"},
- {file = "psutil-7.0.0-cp36-cp36m-win_amd64.whl", hash = "sha256:1e744154a6580bc968a0195fd25e80432d3afec619daf145b9e5ba16cc1d688e"},
- {file = "psutil-7.0.0-cp37-abi3-win32.whl", hash = "sha256:ba3fcef7523064a6c9da440fc4d6bd07da93ac726b5733c29027d7dc95b39d99"},
- {file = "psutil-7.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:4cf3d4eb1aa9b348dec30105c55cd9b7d4629285735a102beb4441e38db90553"},
- {file = "psutil-7.0.0.tar.gz", hash = "sha256:7be9c3eba38beccb6495ea33afd982a44074b78f28c434a1f51cc07fd315c456"}
+ {file = "psutil-7.1.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:76168cef4397494250e9f4e73eb3752b146de1dd950040b29186d0cce1d5ca13"},
+ {file = "psutil-7.1.0-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:5d007560c8c372efdff9e4579c2846d71de737e4605f611437255e81efcca2c5"},
+ {file = "psutil-7.1.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:22e4454970b32472ce7deaa45d045b34d3648ce478e26a04c7e858a0a6e75ff3"},
+ {file = "psutil-7.1.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c70e113920d51e89f212dd7be06219a9b88014e63a4cec69b684c327bc474e3"},
+ {file = "psutil-7.1.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7d4a113425c037300de3ac8b331637293da9be9713855c4fc9d2d97436d7259d"},
+ {file = "psutil-7.1.0-cp37-abi3-win32.whl", hash = "sha256:09ad740870c8d219ed8daae0ad3b726d3bf9a028a198e7f3080f6a1888b99bca"},
+ {file = "psutil-7.1.0-cp37-abi3-win_amd64.whl", hash = "sha256:57f5e987c36d3146c0dd2528cd42151cf96cd359b9d67cfff836995cc5df9a3d"},
+ {file = "psutil-7.1.0-cp37-abi3-win_arm64.whl", hash = "sha256:6937cb68133e7c97b6cc9649a570c9a18ba0efebed46d8c5dae4c07fa1b67a07"},
+ {file = "psutil-7.1.0.tar.gz", hash = "sha256:655708b3c069387c8b77b072fc429a57d0e214221d01c0a772df7dfedcb3bcd2"}
]
[package.extras]
-dev = ["abi3audit", "black (==24.10.0)", "check-manifest", "coverage", "packaging", "pylint", "pyperf", "pypinfo", "pytest", "pytest-cov", "pytest-xdist", "requests", "rstcheck", "ruff", "setuptools", "sphinx", "sphinx_rtd_theme", "toml-sort", "twine", "virtualenv", "vulture", "wheel"]
-test = ["pytest", "pytest-xdist", "setuptools"]
+dev = ["abi3audit", "black", "check-manifest", "coverage", "packaging", "pylint", "pyperf", "pypinfo", "pyreadline ; os_name == \"nt\"", "pytest", "pytest-cov", "pytest-instafail", "pytest-subtests", "pytest-xdist", "pywin32 ; os_name == \"nt\" and platform_python_implementation != \"PyPy\"", "requests", "rstcheck", "ruff", "setuptools", "sphinx", "sphinx_rtd_theme", "toml-sort", "twine", "virtualenv", "vulture", "wheel", "wheel ; os_name == \"nt\" and platform_python_implementation != \"PyPy\"", "wmi ; os_name == \"nt\" and platform_python_implementation != \"PyPy\""]
+test = ["pytest", "pytest-instafail", "pytest-subtests", "pytest-xdist", "pywin32 ; os_name == \"nt\" and platform_python_implementation != \"PyPy\"", "setuptools", "wheel ; os_name == \"nt\" and platform_python_implementation != \"PyPy\"", "wmi ; os_name == \"nt\" and platform_python_implementation != \"PyPy\""]
[[package]]
name = "ptyprocess"
@@ -3177,67 +3478,55 @@ tests = ["pytest"]
[[package]]
name = "pyarrow"
-version = "20.0.0"
+version = "21.0.0"
description = "Python library for Apache Arrow"
optional = false
python-versions = ">=3.9"
groups = ["main"]
files = [
- {file = "pyarrow-20.0.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:c7dd06fd7d7b410ca5dc839cc9d485d2bc4ae5240851bcd45d85105cc90a47d7"},
- {file = "pyarrow-20.0.0-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:d5382de8dc34c943249b01c19110783d0d64b207167c728461add1ecc2db88e4"},
- {file = "pyarrow-20.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6415a0d0174487456ddc9beaead703d0ded5966129fa4fd3114d76b5d1c5ceae"},
- {file = "pyarrow-20.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15aa1b3b2587e74328a730457068dc6c89e6dcbf438d4369f572af9d320a25ee"},
- {file = "pyarrow-20.0.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:5605919fbe67a7948c1f03b9f3727d82846c053cd2ce9303ace791855923fd20"},
- {file = "pyarrow-20.0.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:a5704f29a74b81673d266e5ec1fe376f060627c2e42c5c7651288ed4b0db29e9"},
- {file = "pyarrow-20.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:00138f79ee1b5aca81e2bdedb91e3739b987245e11fa3c826f9e57c5d102fb75"},
- {file = "pyarrow-20.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f2d67ac28f57a362f1a2c1e6fa98bfe2f03230f7e15927aecd067433b1e70ce8"},
- {file = "pyarrow-20.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:4a8b029a07956b8d7bd742ffca25374dd3f634b35e46cc7a7c3fa4c75b297191"},
- {file = "pyarrow-20.0.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:24ca380585444cb2a31324c546a9a56abbe87e26069189e14bdba19c86c049f0"},
- {file = "pyarrow-20.0.0-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:95b330059ddfdc591a3225f2d272123be26c8fa76e8c9ee1a77aad507361cfdb"},
- {file = "pyarrow-20.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f0fb1041267e9968c6d0d2ce3ff92e3928b243e2b6d11eeb84d9ac547308232"},
- {file = "pyarrow-20.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8ff87cc837601532cc8242d2f7e09b4e02404de1b797aee747dd4ba4bd6313f"},
- {file = "pyarrow-20.0.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:7a3a5dcf54286e6141d5114522cf31dd67a9e7c9133d150799f30ee302a7a1ab"},
- {file = "pyarrow-20.0.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:a6ad3e7758ecf559900261a4df985662df54fb7fdb55e8e3b3aa99b23d526b62"},
- {file = "pyarrow-20.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6bb830757103a6cb300a04610e08d9636f0cd223d32f388418ea893a3e655f1c"},
- {file = "pyarrow-20.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:96e37f0766ecb4514a899d9a3554fadda770fb57ddf42b63d80f14bc20aa7db3"},
- {file = "pyarrow-20.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:3346babb516f4b6fd790da99b98bed9708e3f02e734c84971faccb20736848dc"},
- {file = "pyarrow-20.0.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:75a51a5b0eef32727a247707d4755322cb970be7e935172b6a3a9f9ae98404ba"},
- {file = "pyarrow-20.0.0-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:211d5e84cecc640c7a3ab900f930aaff5cd2702177e0d562d426fb7c4f737781"},
- {file = "pyarrow-20.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ba3cf4182828be7a896cbd232aa8dd6a31bd1f9e32776cc3796c012855e1199"},
- {file = "pyarrow-20.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c3a01f313ffe27ac4126f4c2e5ea0f36a5fc6ab51f8726cf41fee4b256680bd"},
- {file = "pyarrow-20.0.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:a2791f69ad72addd33510fec7bb14ee06c2a448e06b649e264c094c5b5f7ce28"},
- {file = "pyarrow-20.0.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:4250e28a22302ce8692d3a0e8ec9d9dde54ec00d237cff4dfa9c1fbf79e472a8"},
- {file = "pyarrow-20.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:89e030dc58fc760e4010148e6ff164d2f44441490280ef1e97a542375e41058e"},
- {file = "pyarrow-20.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6102b4864d77102dbbb72965618e204e550135a940c2534711d5ffa787df2a5a"},
- {file = "pyarrow-20.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:96d6a0a37d9c98be08f5ed6a10831d88d52cac7b13f5287f1e0f625a0de8062b"},
- {file = "pyarrow-20.0.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:a15532e77b94c61efadde86d10957950392999503b3616b2ffcef7621a002893"},
- {file = "pyarrow-20.0.0-cp313-cp313-macosx_12_0_x86_64.whl", hash = "sha256:dd43f58037443af715f34f1322c782ec463a3c8a94a85fdb2d987ceb5658e061"},
- {file = "pyarrow-20.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa0d288143a8585806e3cc7c39566407aab646fb9ece164609dac1cfff45f6ae"},
- {file = "pyarrow-20.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b6953f0114f8d6f3d905d98e987d0924dabce59c3cda380bdfaa25a6201563b4"},
- {file = "pyarrow-20.0.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:991f85b48a8a5e839b2128590ce07611fae48a904cae6cab1f089c5955b57eb5"},
- {file = "pyarrow-20.0.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:97c8dc984ed09cb07d618d57d8d4b67a5100a30c3818c2fb0b04599f0da2de7b"},
- {file = "pyarrow-20.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9b71daf534f4745818f96c214dbc1e6124d7daf059167330b610fc69b6f3d3e3"},
- {file = "pyarrow-20.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e8b88758f9303fa5a83d6c90e176714b2fd3852e776fc2d7e42a22dd6c2fb368"},
- {file = "pyarrow-20.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:30b3051b7975801c1e1d387e17c588d8ab05ced9b1e14eec57915f79869b5031"},
- {file = "pyarrow-20.0.0-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:ca151afa4f9b7bc45bcc791eb9a89e90a9eb2772767d0b1e5389609c7d03db63"},
- {file = "pyarrow-20.0.0-cp313-cp313t-macosx_12_0_x86_64.whl", hash = "sha256:4680f01ecd86e0dd63e39eb5cd59ef9ff24a9d166db328679e36c108dc993d4c"},
- {file = "pyarrow-20.0.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7f4c8534e2ff059765647aa69b75d6543f9fef59e2cd4c6d18015192565d2b70"},
- {file = "pyarrow-20.0.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3e1f8a47f4b4ae4c69c4d702cfbdfe4d41e18e5c7ef6f1bb1c50918c1e81c57b"},
- {file = "pyarrow-20.0.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:a1f60dc14658efaa927f8214734f6a01a806d7690be4b3232ba526836d216122"},
- {file = "pyarrow-20.0.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:204a846dca751428991346976b914d6d2a82ae5b8316a6ed99789ebf976551e6"},
- {file = "pyarrow-20.0.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:f3b117b922af5e4c6b9a9115825726cac7d8b1421c37c2b5e24fbacc8930612c"},
- {file = "pyarrow-20.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:e724a3fd23ae5b9c010e7be857f4405ed5e679db5c93e66204db1a69f733936a"},
- {file = "pyarrow-20.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:82f1ee5133bd8f49d31be1299dc07f585136679666b502540db854968576faf9"},
- {file = "pyarrow-20.0.0-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:1bcbe471ef3349be7714261dea28fe280db574f9d0f77eeccc195a2d161fd861"},
- {file = "pyarrow-20.0.0-cp39-cp39-macosx_12_0_x86_64.whl", hash = "sha256:a18a14baef7d7ae49247e75641fd8bcbb39f44ed49a9fc4ec2f65d5031aa3b96"},
- {file = "pyarrow-20.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb497649e505dc36542d0e68eca1a3c94ecbe9799cb67b578b55f2441a247fbc"},
- {file = "pyarrow-20.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11529a2283cb1f6271d7c23e4a8f9f8b7fd173f7360776b668e509d712a02eec"},
- {file = "pyarrow-20.0.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:6fc1499ed3b4b57ee4e090e1cea6eb3584793fe3d1b4297bbf53f09b434991a5"},
- {file = "pyarrow-20.0.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:db53390eaf8a4dab4dbd6d93c85c5cf002db24902dbff0ca7d988beb5c9dd15b"},
- {file = "pyarrow-20.0.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:851c6a8260ad387caf82d2bbf54759130534723e37083111d4ed481cb253cc0d"},
- {file = "pyarrow-20.0.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:e22f80b97a271f0a7d9cd07394a7d348f80d3ac63ed7cc38b6d1b696ab3b2619"},
- {file = "pyarrow-20.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:9965a050048ab02409fb7cbbefeedba04d3d67f2cc899eff505cc084345959ca"},
- {file = "pyarrow-20.0.0.tar.gz", hash = "sha256:febc4a913592573c8d5805091a6c2b5064c8bd6e002131f01061797d91c783c1"}
+ {file = "pyarrow-21.0.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:e563271e2c5ff4d4a4cbeb2c83d5cf0d4938b891518e676025f7268c6fe5fe26"},
+ {file = "pyarrow-21.0.0-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:fee33b0ca46f4c85443d6c450357101e47d53e6c3f008d658c27a2d020d44c79"},
+ {file = "pyarrow-21.0.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:7be45519b830f7c24b21d630a31d48bcebfd5d4d7f9d3bdb49da9cdf6d764edb"},
+ {file = "pyarrow-21.0.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:26bfd95f6bff443ceae63c65dc7e048670b7e98bc892210acba7e4995d3d4b51"},
+ {file = "pyarrow-21.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:bd04ec08f7f8bd113c55868bd3fc442a9db67c27af098c5f814a3091e71cc61a"},
+ {file = "pyarrow-21.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:9b0b14b49ac10654332a805aedfc0147fb3469cbf8ea951b3d040dab12372594"},
+ {file = "pyarrow-21.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:9d9f8bcb4c3be7738add259738abdeddc363de1b80e3310e04067aa1ca596634"},
+ {file = "pyarrow-21.0.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:c077f48aab61738c237802836fc3844f85409a46015635198761b0d6a688f87b"},
+ {file = "pyarrow-21.0.0-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:689f448066781856237eca8d1975b98cace19b8dd2ab6145bf49475478bcaa10"},
+ {file = "pyarrow-21.0.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:479ee41399fcddc46159a551705b89c05f11e8b8cb8e968f7fec64f62d91985e"},
+ {file = "pyarrow-21.0.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:40ebfcb54a4f11bcde86bc586cbd0272bac0d516cfa539c799c2453768477569"},
+ {file = "pyarrow-21.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8d58d8497814274d3d20214fbb24abcad2f7e351474357d552a8d53bce70c70e"},
+ {file = "pyarrow-21.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:585e7224f21124dd57836b1530ac8f2df2afc43c861d7bf3d58a4870c42ae36c"},
+ {file = "pyarrow-21.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:555ca6935b2cbca2c0e932bedd853e9bc523098c39636de9ad4693b5b1df86d6"},
+ {file = "pyarrow-21.0.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:3a302f0e0963db37e0a24a70c56cf91a4faa0bca51c23812279ca2e23481fccd"},
+ {file = "pyarrow-21.0.0-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:b6b27cf01e243871390474a211a7922bfbe3bda21e39bc9160daf0da3fe48876"},
+ {file = "pyarrow-21.0.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:e72a8ec6b868e258a2cd2672d91f2860ad532d590ce94cdf7d5e7ec674ccf03d"},
+ {file = "pyarrow-21.0.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:b7ae0bbdc8c6674259b25bef5d2a1d6af5d39d7200c819cf99e07f7dfef1c51e"},
+ {file = "pyarrow-21.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:58c30a1729f82d201627c173d91bd431db88ea74dcaa3885855bc6203e433b82"},
+ {file = "pyarrow-21.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:072116f65604b822a7f22945a7a6e581cfa28e3454fdcc6939d4ff6090126623"},
+ {file = "pyarrow-21.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:cf56ec8b0a5c8c9d7021d6fd754e688104f9ebebf1bf4449613c9531f5346a18"},
+ {file = "pyarrow-21.0.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:e99310a4ebd4479bcd1964dff9e14af33746300cb014aa4a3781738ac63baf4a"},
+ {file = "pyarrow-21.0.0-cp313-cp313-macosx_12_0_x86_64.whl", hash = "sha256:d2fe8e7f3ce329a71b7ddd7498b3cfac0eeb200c2789bd840234f0dc271a8efe"},
+ {file = "pyarrow-21.0.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:f522e5709379d72fb3da7785aa489ff0bb87448a9dc5a75f45763a795a089ebd"},
+ {file = "pyarrow-21.0.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:69cbbdf0631396e9925e048cfa5bce4e8c3d3b41562bbd70c685a8eb53a91e61"},
+ {file = "pyarrow-21.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:731c7022587006b755d0bdb27626a1a3bb004bb56b11fb30d98b6c1b4718579d"},
+ {file = "pyarrow-21.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:dc56bc708f2d8ac71bd1dcb927e458c93cec10b98eb4120206a4091db7b67b99"},
+ {file = "pyarrow-21.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:186aa00bca62139f75b7de8420f745f2af12941595bbbfa7ed3870ff63e25636"},
+ {file = "pyarrow-21.0.0-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:a7a102574faa3f421141a64c10216e078df467ab9576684d5cd696952546e2da"},
+ {file = "pyarrow-21.0.0-cp313-cp313t-macosx_12_0_x86_64.whl", hash = "sha256:1e005378c4a2c6db3ada3ad4c217b381f6c886f0a80d6a316fe586b90f77efd7"},
+ {file = "pyarrow-21.0.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:65f8e85f79031449ec8706b74504a316805217b35b6099155dd7e227eef0d4b6"},
+ {file = "pyarrow-21.0.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:3a81486adc665c7eb1a2bde0224cfca6ceaba344a82a971ef059678417880eb8"},
+ {file = "pyarrow-21.0.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:fc0d2f88b81dcf3ccf9a6ae17f89183762c8a94a5bdcfa09e05cfe413acf0503"},
+ {file = "pyarrow-21.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6299449adf89df38537837487a4f8d3bd91ec94354fdd2a7d30bc11c48ef6e79"},
+ {file = "pyarrow-21.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:222c39e2c70113543982c6b34f3077962b44fca38c0bd9e68bb6781534425c10"},
+ {file = "pyarrow-21.0.0-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:a7f6524e3747e35f80744537c78e7302cd41deee8baa668d56d55f77d9c464b3"},
+ {file = "pyarrow-21.0.0-cp39-cp39-macosx_12_0_x86_64.whl", hash = "sha256:203003786c9fd253ebcafa44b03c06983c9c8d06c3145e37f1b76a1f317aeae1"},
+ {file = "pyarrow-21.0.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:3b4d97e297741796fead24867a8dabf86c87e4584ccc03167e4a811f50fdf74d"},
+ {file = "pyarrow-21.0.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:898afce396b80fdda05e3086b4256f8677c671f7b1d27a6976fa011d3fd0a86e"},
+ {file = "pyarrow-21.0.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:067c66ca29aaedae08218569a114e413b26e742171f526e828e1064fcdec13f4"},
+ {file = "pyarrow-21.0.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:0c4e75d13eb76295a49e0ea056eb18dbd87d81450bfeb8afa19a7e5a75ae2ad7"},
+ {file = "pyarrow-21.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:cdc4c17afda4dab2a9c0b79148a43a7f4e1094916b3e18d8975bfd6d6d52241f"},
+ {file = "pyarrow-21.0.0.tar.gz", hash = "sha256:5051f2dccf0e283ff56335760cbc8622cf52264d67e359d5569541ac11b6d5bc"}
]
[package.extras]
@@ -3245,26 +3534,27 @@ test = ["cffi", "hypothesis", "pandas", "pytest", "pytz"]
[[package]]
name = "pycparser"
-version = "2.22"
+version = "2.23"
description = "C parser in Python"
optional = false
python-versions = ">=3.8"
groups = ["main"]
+markers = "implementation_name != \"PyPy\""
files = [
- {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"},
- {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}
+ {file = "pycparser-2.23-py3-none-any.whl", hash = "sha256:e5c6e8d3fbad53479cab09ac03729e0a9faf2bee3db8208a550daf5af81a5934"},
+ {file = "pycparser-2.23.tar.gz", hash = "sha256:78816d4f24add8f10a06d6f05b4d424ad9e96cfebf68a4ddc99c65c0720d00c2"}
]
[[package]]
name = "pycytominer"
-version = "1.2.3"
+version = "1.3.0"
description = "Python package for processing image-based profiling data"
optional = false
python-versions = "<3.14,>=3.9"
groups = ["main"]
files = [
- {file = "pycytominer-1.2.3-py3-none-any.whl", hash = "sha256:e972284fa4340eb9854eeaad00f723889de8d1767f8390f191d9172a2827f6a2"},
- {file = "pycytominer-1.2.3.tar.gz", hash = "sha256:ea71a7897d69a83bd71db19b5de9c1a06792c56f9e9267b36776f34d4907f26f"}
+ {file = "pycytominer-1.3.0-py3-none-any.whl", hash = "sha256:6969c7f77d25353161bc8d7509186ea64415574d3efcec741873867848693788"},
+ {file = "pycytominer-1.3.0.tar.gz", hash = "sha256:7ae607ea668629940863e91db7649b0f0e641a586b599e21c3882632d7fbca6c"}
]
[package.dependencies]
@@ -3272,10 +3562,14 @@ numpy = ">=1.16.5"
pandas = ">=1.2.0"
pyarrow = ">=8.0.0"
scikit-learn = ">=0.21.2"
-scipy = ">=1.5"
+scipy = [
+ {version = ">1.13.1", markers = "python_full_version > \"3.12.0\""},
+ {version = ">=1.5", markers = "python_full_version <= \"3.12.0\""}
+]
sqlalchemy = ">=1.3.6,<3"
[package.extras]
+anndata = ["anndata (<0.12.2) ; python_version < \"3.11\"", "anndata (>=0.12.2) ; python_version >= \"3.11\"", "zarr (<3.1.1) ; python_version < \"3.11\"", "zarr (>=3.1.1) ; python_version >= \"3.11\""]
cell-locations = ["boto3 (>=1.26.79)", "fire (>=0.5.0)", "fsspec (>=2023.1.0)", "s3fs (>=2023.4.0)"]
collate = ["cytominer-database (==0.3.4)"]
@@ -3315,14 +3609,14 @@ scipy = ">=1.0"
[[package]]
name = "pyparsing"
-version = "3.2.3"
-description = "pyparsing module - Classes and methods to define and execute parsing grammars"
+version = "3.2.5"
+description = "pyparsing - Classes and methods to define and execute parsing grammars"
optional = false
python-versions = ">=3.9"
groups = ["main"]
files = [
- {file = "pyparsing-3.2.3-py3-none-any.whl", hash = "sha256:a749938e02d6fd0b59b356ca504a24982314bb090c383e3cf201c95ef7e2bfcf"},
- {file = "pyparsing-3.2.3.tar.gz", hash = "sha256:b9c13f1ab8b3b542f72e28f634bad4de758ab3ce4546e4301970ad6fa77c38be"}
+ {file = "pyparsing-3.2.5-py3-none-any.whl", hash = "sha256:e38a4f02064cf41fe6593d328d0512495ad1f3d8a91c4f73fc401b3079a59a5e"},
+ {file = "pyparsing-3.2.5.tar.gz", hash = "sha256:2df8d5b7b2802ef88e8d016a2eb9c7aeaa923529cd251ed0fe4608275d4105b6"}
]
[package.extras]
@@ -3330,14 +3624,14 @@ diagrams = ["jinja2", "railroad-diagrams"]
[[package]]
name = "pytest"
-version = "8.4.1"
+version = "8.4.2"
description = "pytest: simple powerful testing with Python"
optional = false
python-versions = ">=3.9"
groups = ["dev"]
files = [
- {file = "pytest-8.4.1-py3-none-any.whl", hash = "sha256:539c70ba6fcead8e78eebbf1115e8b589e7565830d7d006a8723f19ac8a0afb7"},
- {file = "pytest-8.4.1.tar.gz", hash = "sha256:7c67fd69174877359ed9371ec3af8a3d2b04741818c51e5e99cc1742251fa93c"}
+ {file = "pytest-8.4.2-py3-none-any.whl", hash = "sha256:872f880de3fc3a5bdc88a11b39c9710c3497a547cfa9320bc3c5e62fbf272e79"},
+ {file = "pytest-8.4.2.tar.gz", hash = "sha256:86c0d0b93306b961d58d62a4db4879f27fe25513d4b969df351abdddb3c30e01"}
]
[package.dependencies]
@@ -3369,14 +3663,14 @@ six = ">=1.5"
[[package]]
name = "python-json-logger"
-version = "3.3.0"
+version = "4.0.0"
description = "JSON Log Formatter for the Python Logging Package"
optional = false
python-versions = ">=3.8"
groups = ["main"]
files = [
- {file = "python_json_logger-3.3.0-py3-none-any.whl", hash = "sha256:dd980fae8cffb24c13caf6e158d3d61c0d6d22342f932cb6e9deedab3d35eec7"},
- {file = "python_json_logger-3.3.0.tar.gz", hash = "sha256:12b7e74b17775e7d565129296105bbe3910842d9d0eb083fc83a6a617aa8df84"}
+ {file = "python_json_logger-4.0.0-py3-none-any.whl", hash = "sha256:af09c9daf6a813aa4cc7180395f50f2a9e5fa056034c9953aec92e381c5ba1e2"},
+ {file = "python_json_logger-4.0.0.tar.gz", hash = "sha256:f58e68eb46e1faed27e0f574a55a0455eecd7b8a5b88b85a784519ba3cff047f"}
]
[package.extras]
@@ -3394,201 +3688,209 @@ files = [
{file = "pytz-2025.2.tar.gz", hash = "sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3"}
]
-[[package]]
-name = "pywin32"
-version = "310"
-description = "Python for Window Extensions"
-optional = false
-python-versions = "*"
-groups = ["main"]
-markers = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\""
-files = [
- {file = "pywin32-310-cp310-cp310-win32.whl", hash = "sha256:6dd97011efc8bf51d6793a82292419eba2c71cf8e7250cfac03bba284454abc1"},
- {file = "pywin32-310-cp310-cp310-win_amd64.whl", hash = "sha256:c3e78706e4229b915a0821941a84e7ef420bf2b77e08c9dae3c76fd03fd2ae3d"},
- {file = "pywin32-310-cp310-cp310-win_arm64.whl", hash = "sha256:33babed0cf0c92a6f94cc6cc13546ab24ee13e3e800e61ed87609ab91e4c8213"},
- {file = "pywin32-310-cp311-cp311-win32.whl", hash = "sha256:1e765f9564e83011a63321bb9d27ec456a0ed90d3732c4b2e312b855365ed8bd"},
- {file = "pywin32-310-cp311-cp311-win_amd64.whl", hash = "sha256:126298077a9d7c95c53823934f000599f66ec9296b09167810eb24875f32689c"},
- {file = "pywin32-310-cp311-cp311-win_arm64.whl", hash = "sha256:19ec5fc9b1d51c4350be7bb00760ffce46e6c95eaf2f0b2f1150657b1a43c582"},
- {file = "pywin32-310-cp312-cp312-win32.whl", hash = "sha256:8a75a5cc3893e83a108c05d82198880704c44bbaee4d06e442e471d3c9ea4f3d"},
- {file = "pywin32-310-cp312-cp312-win_amd64.whl", hash = "sha256:bf5c397c9a9a19a6f62f3fb821fbf36cac08f03770056711f765ec1503972060"},
- {file = "pywin32-310-cp312-cp312-win_arm64.whl", hash = "sha256:2349cc906eae872d0663d4d6290d13b90621eaf78964bb1578632ff20e152966"},
- {file = "pywin32-310-cp313-cp313-win32.whl", hash = "sha256:5d241a659c496ada3253cd01cfaa779b048e90ce4b2b38cd44168ad555ce74ab"},
- {file = "pywin32-310-cp313-cp313-win_amd64.whl", hash = "sha256:667827eb3a90208ddbdcc9e860c81bde63a135710e21e4cb3348968e4bd5249e"},
- {file = "pywin32-310-cp313-cp313-win_arm64.whl", hash = "sha256:e308f831de771482b7cf692a1f308f8fca701b2d8f9dde6cc440c7da17e47b33"},
- {file = "pywin32-310-cp38-cp38-win32.whl", hash = "sha256:0867beb8addefa2e3979d4084352e4ac6e991ca45373390775f7084cc0209b9c"},
- {file = "pywin32-310-cp38-cp38-win_amd64.whl", hash = "sha256:30f0a9b3138fb5e07eb4973b7077e1883f558e40c578c6925acc7a94c34eaa36"},
- {file = "pywin32-310-cp39-cp39-win32.whl", hash = "sha256:851c8d927af0d879221e616ae1f66145253537bbdd321a77e8ef701b443a9a1a"},
- {file = "pywin32-310-cp39-cp39-win_amd64.whl", hash = "sha256:96867217335559ac619f00ad70e513c0fcf84b8a3af9fc2bba3b59b97da70475"}
-]
-
[[package]]
name = "pywinpty"
-version = "2.0.15"
+version = "3.0.2"
description = "Pseudo terminal support for Windows from Python."
optional = false
python-versions = ">=3.9"
groups = ["main"]
markers = "os_name == \"nt\""
files = [
- {file = "pywinpty-2.0.15-cp310-cp310-win_amd64.whl", hash = "sha256:8e7f5de756a615a38b96cd86fa3cd65f901ce54ce147a3179c45907fa11b4c4e"},
- {file = "pywinpty-2.0.15-cp311-cp311-win_amd64.whl", hash = "sha256:9a6bcec2df2707aaa9d08b86071970ee32c5026e10bcc3cc5f6f391d85baf7ca"},
- {file = "pywinpty-2.0.15-cp312-cp312-win_amd64.whl", hash = "sha256:83a8f20b430bbc5d8957249f875341a60219a4e971580f2ba694fbfb54a45ebc"},
- {file = "pywinpty-2.0.15-cp313-cp313-win_amd64.whl", hash = "sha256:ab5920877dd632c124b4ed17bc6dd6ef3b9f86cd492b963ffdb1a67b85b0f408"},
- {file = "pywinpty-2.0.15-cp313-cp313t-win_amd64.whl", hash = "sha256:a4560ad8c01e537708d2790dbe7da7d986791de805d89dd0d3697ca59e9e4901"},
- {file = "pywinpty-2.0.15-cp39-cp39-win_amd64.whl", hash = "sha256:d261cd88fcd358cfb48a7ca0700db3e1c088c9c10403c9ebc0d8a8b57aa6a117"},
- {file = "pywinpty-2.0.15.tar.gz", hash = "sha256:312cf39153a8736c617d45ce8b6ad6cd2107de121df91c455b10ce6bba7a39b2"}
+ {file = "pywinpty-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:65db57fd3387d71e8372b6a54269cbcd0f6dfa6d4616a29e0af749ec19f5c558"},
+ {file = "pywinpty-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:327790d70e4c841ebd9d0f295a780177149aeb405bca44c7115a3de5c2054b23"},
+ {file = "pywinpty-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:99fdd9b455f0ad6419aba6731a7a0d2f88ced83c3c94a80ff9533d95fa8d8a9e"},
+ {file = "pywinpty-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:18f78b81e4cfee6aabe7ea8688441d30247b73e52cd9657138015c5f4ee13a51"},
+ {file = "pywinpty-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:663383ecfab7fc382cc97ea5c4f7f0bb32c2f889259855df6ea34e5df42d305b"},
+ {file = "pywinpty-3.0.2-cp314-cp314-win_amd64.whl", hash = "sha256:28297cecc37bee9f24d8889e47231972d6e9e84f7b668909de54f36ca785029a"},
+ {file = "pywinpty-3.0.2-cp314-cp314t-win_amd64.whl", hash = "sha256:34b55ae9a1b671fe3eae071d86618110538e8eaad18fcb1531c0830b91a82767"},
+ {file = "pywinpty-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:3962daf801bc38dd4de872108c424b5338c9a46c6efca5761854cd66370a9022"},
+ {file = "pywinpty-3.0.2.tar.gz", hash = "sha256:1505cc4cb248af42cb6285a65c9c2086ee9e7e574078ee60933d5d7fa86fb004"}
]
[[package]]
name = "pyyaml"
-version = "6.0.2"
+version = "6.0.3"
description = "YAML parser and emitter for Python"
optional = false
python-versions = ">=3.8"
groups = ["main", "dev"]
files = [
- {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"},
- {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"},
- {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"},
- {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"},
- {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"},
- {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"},
- {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"},
- {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"},
- {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"},
- {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"},
- {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"},
- {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"},
- {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"},
- {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"},
- {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"},
- {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"},
- {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"},
- {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"},
- {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"},
- {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"},
- {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"},
- {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"},
- {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"},
- {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"},
- {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"},
- {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"},
- {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"},
- {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"},
- {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"},
- {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"},
- {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"},
- {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"},
- {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"},
- {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"},
- {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"},
- {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"},
- {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"},
- {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"},
- {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"},
- {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"},
- {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"},
- {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"},
- {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"},
- {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"},
- {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"},
- {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"},
- {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"},
- {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"},
- {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"},
- {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"},
- {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"},
- {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"},
- {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}
+ {file = "PyYAML-6.0.3-cp38-cp38-macosx_10_13_x86_64.whl", hash = "sha256:c2514fceb77bc5e7a2f7adfaa1feb2fb311607c9cb518dbc378688ec73d8292f"},
+ {file = "PyYAML-6.0.3-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9c57bb8c96f6d1808c030b1687b9b5fb476abaa47f0db9c0101f5e9f394e97f4"},
+ {file = "PyYAML-6.0.3-cp38-cp38-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:efd7b85f94a6f21e4932043973a7ba2613b059c4a000551892ac9f1d11f5baf3"},
+ {file = "PyYAML-6.0.3-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:22ba7cfcad58ef3ecddc7ed1db3409af68d023b7f940da23c6c2a1890976eda6"},
+ {file = "PyYAML-6.0.3-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:6344df0d5755a2c9a276d4473ae6b90647e216ab4757f8426893b5dd2ac3f369"},
+ {file = "PyYAML-6.0.3-cp38-cp38-win32.whl", hash = "sha256:3ff07ec89bae51176c0549bc4c63aa6202991da2d9a6129d7aef7f1407d3f295"},
+ {file = "PyYAML-6.0.3-cp38-cp38-win_amd64.whl", hash = "sha256:5cf4e27da7e3fbed4d6c3d8e797387aaad68102272f8f9752883bc32d61cb87b"},
+ {file = "pyyaml-6.0.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:214ed4befebe12df36bcc8bc2b64b396ca31be9304b8f59e25c11cf94a4c033b"},
+ {file = "pyyaml-6.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02ea2dfa234451bbb8772601d7b8e426c2bfa197136796224e50e35a78777956"},
+ {file = "pyyaml-6.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b30236e45cf30d2b8e7b3e85881719e98507abed1011bf463a8fa23e9c3e98a8"},
+ {file = "pyyaml-6.0.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:66291b10affd76d76f54fad28e22e51719ef9ba22b29e1d7d03d6777a9174198"},
+ {file = "pyyaml-6.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9c7708761fccb9397fe64bbc0395abcae8c4bf7b0eac081e12b809bf47700d0b"},
+ {file = "pyyaml-6.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:418cf3f2111bc80e0933b2cd8cd04f286338bb88bdc7bc8e6dd775ebde60b5e0"},
+ {file = "pyyaml-6.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5e0b74767e5f8c593e8c9b5912019159ed0533c70051e9cce3e8b6aa699fcd69"},
+ {file = "pyyaml-6.0.3-cp310-cp310-win32.whl", hash = "sha256:28c8d926f98f432f88adc23edf2e6d4921ac26fb084b028c733d01868d19007e"},
+ {file = "pyyaml-6.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:bdb2c67c6c1390b63c6ff89f210c8fd09d9a1217a465701eac7316313c915e4c"},
+ {file = "pyyaml-6.0.3-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:44edc647873928551a01e7a563d7452ccdebee747728c1080d881d68af7b997e"},
+ {file = "pyyaml-6.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:652cb6edd41e718550aad172851962662ff2681490a8a711af6a4d288dd96824"},
+ {file = "pyyaml-6.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:10892704fc220243f5305762e276552a0395f7beb4dbf9b14ec8fd43b57f126c"},
+ {file = "pyyaml-6.0.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:850774a7879607d3a6f50d36d04f00ee69e7fc816450e5f7e58d7f17f1ae5c00"},
+ {file = "pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b8bb0864c5a28024fac8a632c443c87c5aa6f215c0b126c449ae1a150412f31d"},
+ {file = "pyyaml-6.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1d37d57ad971609cf3c53ba6a7e365e40660e3be0e5175fa9f2365a379d6095a"},
+ {file = "pyyaml-6.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:37503bfbfc9d2c40b344d06b2199cf0e96e97957ab1c1b546fd4f87e53e5d3e4"},
+ {file = "pyyaml-6.0.3-cp311-cp311-win32.whl", hash = "sha256:8098f252adfa6c80ab48096053f512f2321f0b998f98150cea9bd23d83e1467b"},
+ {file = "pyyaml-6.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:9f3bfb4965eb874431221a3ff3fdcddc7e74e3b07799e0e84ca4a0f867d449bf"},
+ {file = "pyyaml-6.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7f047e29dcae44602496db43be01ad42fc6f1cc0d8cd6c83d342306c32270196"},
+ {file = "pyyaml-6.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fc09d0aa354569bc501d4e787133afc08552722d3ab34836a80547331bb5d4a0"},
+ {file = "pyyaml-6.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9149cad251584d5fb4981be1ecde53a1ca46c891a79788c0df828d2f166bda28"},
+ {file = "pyyaml-6.0.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5fdec68f91a0c6739b380c83b951e2c72ac0197ace422360e6d5a959d8d97b2c"},
+ {file = "pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ba1cc08a7ccde2d2ec775841541641e4548226580ab850948cbfda66a1befcdc"},
+ {file = "pyyaml-6.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8dc52c23056b9ddd46818a57b78404882310fb473d63f17b07d5c40421e47f8e"},
+ {file = "pyyaml-6.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:41715c910c881bc081f1e8872880d3c650acf13dfa8214bad49ed4cede7c34ea"},
+ {file = "pyyaml-6.0.3-cp312-cp312-win32.whl", hash = "sha256:96b533f0e99f6579b3d4d4995707cf36df9100d67e0c8303a0c55b27b5f99bc5"},
+ {file = "pyyaml-6.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:5fcd34e47f6e0b794d17de1b4ff496c00986e1c83f7ab2fb8fcfe9616ff7477b"},
+ {file = "pyyaml-6.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:64386e5e707d03a7e172c0701abfb7e10f0fb753ee1d773128192742712a98fd"},
+ {file = "pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8"},
+ {file = "pyyaml-6.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1"},
+ {file = "pyyaml-6.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c"},
+ {file = "pyyaml-6.0.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5"},
+ {file = "pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6"},
+ {file = "pyyaml-6.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6"},
+ {file = "pyyaml-6.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be"},
+ {file = "pyyaml-6.0.3-cp313-cp313-win32.whl", hash = "sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26"},
+ {file = "pyyaml-6.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c"},
+ {file = "pyyaml-6.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb"},
+ {file = "pyyaml-6.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:8d1fab6bb153a416f9aeb4b8763bc0f22a5586065f86f7664fc23339fc1c1fac"},
+ {file = "pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:34d5fcd24b8445fadc33f9cf348c1047101756fd760b4dacb5c3e99755703310"},
+ {file = "pyyaml-6.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:501a031947e3a9025ed4405a168e6ef5ae3126c59f90ce0cd6f2bfc477be31b7"},
+ {file = "pyyaml-6.0.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b3bc83488de33889877a0f2543ade9f70c67d66d9ebb4ac959502e12de895788"},
+ {file = "pyyaml-6.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5"},
+ {file = "pyyaml-6.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7c6610def4f163542a622a73fb39f534f8c101d690126992300bf3207eab9764"},
+ {file = "pyyaml-6.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5190d403f121660ce8d1d2c1bb2ef1bd05b5f68533fc5c2ea899bd15f4399b35"},
+ {file = "pyyaml-6.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac"},
+ {file = "pyyaml-6.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3"},
+ {file = "pyyaml-6.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:02893d100e99e03eda1c8fd5c441d8c60103fd175728e23e431db1b589cf5ab3"},
+ {file = "pyyaml-6.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c1ff362665ae507275af2853520967820d9124984e0f7466736aea23d8611fba"},
+ {file = "pyyaml-6.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6adc77889b628398debc7b65c073bcb99c4a0237b248cacaf3fe8a557563ef6c"},
+ {file = "pyyaml-6.0.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a80cb027f6b349846a3bf6d73b5e95e782175e52f22108cfa17876aaeff93702"},
+ {file = "pyyaml-6.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c"},
+ {file = "pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:66e1674c3ef6f541c35191caae2d429b967b99e02040f5ba928632d9a7f0f065"},
+ {file = "pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:16249ee61e95f858e83976573de0f5b2893b3677ba71c9dd36b9cf8be9ac6d65"},
+ {file = "pyyaml-6.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9"},
+ {file = "pyyaml-6.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b"},
+ {file = "pyyaml-6.0.3-cp39-cp39-macosx_10_13_x86_64.whl", hash = "sha256:b865addae83924361678b652338317d1bd7e79b1f4596f96b96c77a5a34b34da"},
+ {file = "pyyaml-6.0.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c3355370a2c156cffb25e876646f149d5d68f5e0a3ce86a5084dd0b64a994917"},
+ {file = "pyyaml-6.0.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3c5677e12444c15717b902a5798264fa7909e41153cdf9ef7ad571b704a63dd9"},
+ {file = "pyyaml-6.0.3-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5ed875a24292240029e4483f9d4a4b8a1ae08843b9c54f43fcc11e404532a8a5"},
+ {file = "pyyaml-6.0.3-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0150219816b6a1fa26fb4699fb7daa9caf09eb1999f3b70fb6e786805e80375a"},
+ {file = "pyyaml-6.0.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:fa160448684b4e94d80416c0fa4aac48967a969efe22931448d853ada8baf926"},
+ {file = "pyyaml-6.0.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:27c0abcb4a5dac13684a37f76e701e054692a9b2d3064b70f5e4eb54810553d7"},
+ {file = "pyyaml-6.0.3-cp39-cp39-win32.whl", hash = "sha256:1ebe39cb5fc479422b83de611d14e2c0d3bb2a18bbcb01f229ab3cfbd8fee7a0"},
+ {file = "pyyaml-6.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:2e71d11abed7344e42a8849600193d15b6def118602c4c176f748e4583246007"},
+ {file = "pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f"}
]
[[package]]
name = "pyzmq"
-version = "27.0.0"
+version = "27.1.0"
description = "Python bindings for 0MQ"
optional = false
python-versions = ">=3.8"
groups = ["main"]
files = [
- {file = "pyzmq-27.0.0-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:b973ee650e8f442ce482c1d99ca7ab537c69098d53a3d046676a484fd710c87a"},
- {file = "pyzmq-27.0.0-cp310-cp310-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:661942bc7cd0223d569d808f2e5696d9cc120acc73bf3e88a1f1be7ab648a7e4"},
- {file = "pyzmq-27.0.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:50360fb2a056ffd16e5f4177eee67f1dd1017332ea53fb095fe7b5bf29c70246"},
- {file = "pyzmq-27.0.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cf209a6dc4b420ed32a7093642843cbf8703ed0a7d86c16c0b98af46762ebefb"},
- {file = "pyzmq-27.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c2dace4a7041cca2fba5357a2d7c97c5effdf52f63a1ef252cfa496875a3762d"},
- {file = "pyzmq-27.0.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:63af72b2955fc77caf0a77444baa2431fcabb4370219da38e1a9f8d12aaebe28"},
- {file = "pyzmq-27.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e8c4adce8e37e75c4215297d7745551b8dcfa5f728f23ce09bf4e678a9399413"},
- {file = "pyzmq-27.0.0-cp310-cp310-win32.whl", hash = "sha256:5d5ef4718ecab24f785794e0e7536436698b459bfbc19a1650ef55280119d93b"},
- {file = "pyzmq-27.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:e40609380480b3d12c30f841323f42451c755b8fece84235236f5fe5ffca8c1c"},
- {file = "pyzmq-27.0.0-cp310-cp310-win_arm64.whl", hash = "sha256:6b0397b0be277b46762956f576e04dc06ced265759e8c2ff41a0ee1aa0064198"},
- {file = "pyzmq-27.0.0-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:21457825249b2a53834fa969c69713f8b5a79583689387a5e7aed880963ac564"},
- {file = "pyzmq-27.0.0-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:1958947983fef513e6e98eff9cb487b60bf14f588dc0e6bf35fa13751d2c8251"},
- {file = "pyzmq-27.0.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c0dc628b5493f9a8cd9844b8bee9732ef587ab00002157c9329e4fc0ef4d3afa"},
- {file = "pyzmq-27.0.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f7bbe9e1ed2c8d3da736a15694d87c12493e54cc9dc9790796f0321794bbc91f"},
- {file = "pyzmq-27.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:dc1091f59143b471d19eb64f54bae4f54bcf2a466ffb66fe45d94d8d734eb495"},
- {file = "pyzmq-27.0.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:7011ade88c8e535cf140f8d1a59428676fbbce7c6e54fefce58bf117aefb6667"},
- {file = "pyzmq-27.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:2c386339d7e3f064213aede5d03d054b237937fbca6dd2197ac8cf3b25a6b14e"},
- {file = "pyzmq-27.0.0-cp311-cp311-win32.whl", hash = "sha256:0546a720c1f407b2172cb04b6b094a78773491497e3644863cf5c96c42df8cff"},
- {file = "pyzmq-27.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:15f39d50bd6c9091c67315ceb878a4f531957b121d2a05ebd077eb35ddc5efed"},
- {file = "pyzmq-27.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:c5817641eebb391a2268c27fecd4162448e03538387093cdbd8bf3510c316b38"},
- {file = "pyzmq-27.0.0-cp312-abi3-macosx_10_15_universal2.whl", hash = "sha256:cbabc59dcfaac66655c040dfcb8118f133fb5dde185e5fc152628354c1598e52"},
- {file = "pyzmq-27.0.0-cp312-abi3-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:cb0ac5179cba4b2f94f1aa208fbb77b62c4c9bf24dd446278b8b602cf85fcda3"},
- {file = "pyzmq-27.0.0-cp312-abi3-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:53a48f0228eab6cbf69fde3aa3c03cbe04e50e623ef92ae395fce47ef8a76152"},
- {file = "pyzmq-27.0.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:111db5f395e09f7e775f759d598f43cb815fc58e0147623c4816486e1a39dc22"},
- {file = "pyzmq-27.0.0-cp312-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:c8878011653dcdc27cc2c57e04ff96f0471e797f5c19ac3d7813a245bcb24371"},
- {file = "pyzmq-27.0.0-cp312-abi3-musllinux_1_2_i686.whl", hash = "sha256:c0ed2c1f335ba55b5fdc964622254917d6b782311c50e138863eda409fbb3b6d"},
- {file = "pyzmq-27.0.0-cp312-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:e918d70862d4cfd4b1c187310015646a14e1f5917922ab45b29f28f345eeb6be"},
- {file = "pyzmq-27.0.0-cp312-abi3-win32.whl", hash = "sha256:88b4e43cab04c3c0f0d55df3b1eef62df2b629a1a369b5289a58f6fa8b07c4f4"},
- {file = "pyzmq-27.0.0-cp312-abi3-win_amd64.whl", hash = "sha256:dce4199bf5f648a902ce37e7b3afa286f305cd2ef7a8b6ec907470ccb6c8b371"},
- {file = "pyzmq-27.0.0-cp312-abi3-win_arm64.whl", hash = "sha256:56e46bbb85d52c1072b3f809cc1ce77251d560bc036d3a312b96db1afe76db2e"},
- {file = "pyzmq-27.0.0-cp313-cp313t-macosx_10_15_universal2.whl", hash = "sha256:c36ad534c0c29b4afa088dc53543c525b23c0797e01b69fef59b1a9c0e38b688"},
- {file = "pyzmq-27.0.0-cp313-cp313t-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:67855c14173aec36395d7777aaba3cc527b393821f30143fd20b98e1ff31fd38"},
- {file = "pyzmq-27.0.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8617c7d43cd8ccdb62aebe984bfed77ca8f036e6c3e46dd3dddda64b10f0ab7a"},
- {file = "pyzmq-27.0.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:67bfbcbd0a04c575e8103a6061d03e393d9f80ffdb9beb3189261e9e9bc5d5e9"},
- {file = "pyzmq-27.0.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:5cd11d46d7b7e5958121b3eaf4cd8638eff3a720ec527692132f05a57f14341d"},
- {file = "pyzmq-27.0.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:b801c2e40c5aa6072c2f4876de8dccd100af6d9918d4d0d7aa54a1d982fd4f44"},
- {file = "pyzmq-27.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:20d5cb29e8c5f76a127c75b6e7a77e846bc4b655c373baa098c26a61b7ecd0ef"},
- {file = "pyzmq-27.0.0-cp313-cp313t-win32.whl", hash = "sha256:a20528da85c7ac7a19b7384e8c3f8fa707841fd85afc4ed56eda59d93e3d98ad"},
- {file = "pyzmq-27.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:d8229f2efece6a660ee211d74d91dbc2a76b95544d46c74c615e491900dc107f"},
- {file = "pyzmq-27.0.0-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:f4162dbbd9c5c84fb930a36f290b08c93e35fce020d768a16fc8891a2f72bab8"},
- {file = "pyzmq-27.0.0-cp38-cp38-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:4e7d0a8d460fba526cc047333bdcbf172a159b8bd6be8c3eb63a416ff9ba1477"},
- {file = "pyzmq-27.0.0-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:29f44e3c26b9783816ba9ce274110435d8f5b19bbd82f7a6c7612bb1452a3597"},
- {file = "pyzmq-27.0.0-cp38-cp38-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6e435540fa1da54667f0026cf1e8407fe6d8a11f1010b7f06b0b17214ebfcf5e"},
- {file = "pyzmq-27.0.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:51f5726de3532b8222e569990c8aa34664faa97038304644679a51d906e60c6e"},
- {file = "pyzmq-27.0.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:42c7555123679637c99205b1aa9e8f7d90fe29d4c243c719e347d4852545216c"},
- {file = "pyzmq-27.0.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:a979b7cf9e33d86c4949df527a3018767e5f53bc3b02adf14d4d8db1db63ccc0"},
- {file = "pyzmq-27.0.0-cp38-cp38-win32.whl", hash = "sha256:26b72c5ae20bf59061c3570db835edb81d1e0706ff141747055591c4b41193f8"},
- {file = "pyzmq-27.0.0-cp38-cp38-win_amd64.whl", hash = "sha256:55a0155b148fe0428285a30922f7213539aa84329a5ad828bca4bbbc665c70a4"},
- {file = "pyzmq-27.0.0-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:100f6e5052ba42b2533011d34a018a5ace34f8cac67cb03cfa37c8bdae0ca617"},
- {file = "pyzmq-27.0.0-cp39-cp39-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:bf6c6b061efd00404b9750e2cfbd9507492c8d4b3721ded76cb03786131be2ed"},
- {file = "pyzmq-27.0.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ee05728c0b0b2484a9fc20466fa776fffb65d95f7317a3419985b8c908563861"},
- {file = "pyzmq-27.0.0-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7cdf07fe0a557b131366f80727ec8ccc4b70d89f1e3f920d94a594d598d754f0"},
- {file = "pyzmq-27.0.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:90252fa2ff3a104219db1f5ced7032a7b5fc82d7c8d2fec2b9a3e6fd4e25576b"},
- {file = "pyzmq-27.0.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:ea6d441c513bf18c578c73c323acf7b4184507fc244762193aa3a871333c9045"},
- {file = "pyzmq-27.0.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:ae2b34bcfaae20c064948a4113bf8709eee89fd08317eb293ae4ebd69b4d9740"},
- {file = "pyzmq-27.0.0-cp39-cp39-win32.whl", hash = "sha256:5b10bd6f008937705cf6e7bf8b6ece5ca055991e3eb130bca8023e20b86aa9a3"},
- {file = "pyzmq-27.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:00387d12a8af4b24883895f7e6b9495dc20a66027b696536edac35cb988c38f3"},
- {file = "pyzmq-27.0.0-cp39-cp39-win_arm64.whl", hash = "sha256:4c19d39c04c29a6619adfeb19e3735c421b3bfee082f320662f52e59c47202ba"},
- {file = "pyzmq-27.0.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:656c1866505a5735d0660b7da6d7147174bbf59d4975fc2b7f09f43c9bc25745"},
- {file = "pyzmq-27.0.0-pp310-pypy310_pp73-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:74175b9e12779382432dd1d1f5960ebe7465d36649b98a06c6b26be24d173fab"},
- {file = "pyzmq-27.0.0-pp310-pypy310_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d8c6de908465697a8708e4d6843a1e884f567962fc61eb1706856545141d0cbb"},
- {file = "pyzmq-27.0.0-pp310-pypy310_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c644aaacc01d0df5c7072826df45e67301f191c55f68d7b2916d83a9ddc1b551"},
- {file = "pyzmq-27.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:10f70c1d9a446a85013a36871a296007f6fe4232b530aa254baf9da3f8328bc0"},
- {file = "pyzmq-27.0.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:cd1dc59763effd1576f8368047c9c31468fce0af89d76b5067641137506792ae"},
- {file = "pyzmq-27.0.0-pp311-pypy311_pp73-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:60e8cc82d968174650c1860d7b716366caab9973787a1c060cf8043130f7d0f7"},
- {file = "pyzmq-27.0.0-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:14fe7aaac86e4e93ea779a821967360c781d7ac5115b3f1a171ced77065a0174"},
- {file = "pyzmq-27.0.0-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6ad0562d4e6abb785be3e4dd68599c41be821b521da38c402bc9ab2a8e7ebc7e"},
- {file = "pyzmq-27.0.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:9df43a2459cd3a3563404c1456b2c4c69564daa7dbaf15724c09821a3329ce46"},
- {file = "pyzmq-27.0.0-pp38-pypy38_pp73-macosx_10_15_x86_64.whl", hash = "sha256:8c86ea8fe85e2eb0ffa00b53192c401477d5252f6dd1db2e2ed21c1c30d17e5e"},
- {file = "pyzmq-27.0.0-pp38-pypy38_pp73-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:c45fee3968834cd291a13da5fac128b696c9592a9493a0f7ce0b47fa03cc574d"},
- {file = "pyzmq-27.0.0-pp38-pypy38_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:cae73bb6898c4e045fbed5024cb587e4110fddb66f6163bcab5f81f9d4b9c496"},
- {file = "pyzmq-27.0.0-pp38-pypy38_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:26d542258c7a1f35a9cff3d887687d3235006134b0ac1c62a6fe1ad3ac10440e"},
- {file = "pyzmq-27.0.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:04cd50ef3b28e35ced65740fb9956a5b3f77a6ff32fcd887e3210433f437dd0f"},
- {file = "pyzmq-27.0.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:39ddd3ba0a641f01d8f13a3cfd4c4924eb58e660d8afe87e9061d6e8ca6f7ac3"},
- {file = "pyzmq-27.0.0-pp39-pypy39_pp73-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:8ca7e6a0388dd9e1180b14728051068f4efe83e0d2de058b5ff92c63f399a73f"},
- {file = "pyzmq-27.0.0-pp39-pypy39_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2524c40891be6a3106885a3935d58452dd83eb7a5742a33cc780a1ad4c49dec0"},
- {file = "pyzmq-27.0.0-pp39-pypy39_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6a56e3e5bd2d62a01744fd2f1ce21d760c7c65f030e9522738d75932a14ab62a"},
- {file = "pyzmq-27.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:096af9e133fec3a72108ddefba1e42985cb3639e9de52cfd336b6fc23aa083e9"},
- {file = "pyzmq-27.0.0.tar.gz", hash = "sha256:b1f08eeb9ce1510e6939b6e5dcd46a17765e2333daae78ecf4606808442e52cf"}
+ {file = "pyzmq-27.1.0-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:508e23ec9bc44c0005c4946ea013d9317ae00ac67778bd47519fdf5a0e930ff4"},
+ {file = "pyzmq-27.1.0-cp310-cp310-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:507b6f430bdcf0ee48c0d30e734ea89ce5567fd7b8a0f0044a369c176aa44556"},
+ {file = "pyzmq-27.1.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bf7b38f9fd7b81cb6d9391b2946382c8237fd814075c6aa9c3b746d53076023b"},
+ {file = "pyzmq-27.1.0-cp310-cp310-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:03ff0b279b40d687691a6217c12242ee71f0fba28bf8626ff50e3ef0f4410e1e"},
+ {file = "pyzmq-27.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:677e744fee605753eac48198b15a2124016c009a11056f93807000ab11ce6526"},
+ {file = "pyzmq-27.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:dd2fec2b13137416a1c5648b7009499bcc8fea78154cd888855fa32514f3dad1"},
+ {file = "pyzmq-27.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:08e90bb4b57603b84eab1d0ca05b3bbb10f60c1839dc471fc1c9e1507bef3386"},
+ {file = "pyzmq-27.1.0-cp310-cp310-win32.whl", hash = "sha256:a5b42d7a0658b515319148875fcb782bbf118dd41c671b62dae33666c2213bda"},
+ {file = "pyzmq-27.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:c0bb87227430ee3aefcc0ade2088100e528d5d3298a0a715a64f3d04c60ba02f"},
+ {file = "pyzmq-27.1.0-cp310-cp310-win_arm64.whl", hash = "sha256:9a916f76c2ab8d045b19f2286851a38e9ac94ea91faf65bd64735924522a8b32"},
+ {file = "pyzmq-27.1.0-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:226b091818d461a3bef763805e75685e478ac17e9008f49fce2d3e52b3d58b86"},
+ {file = "pyzmq-27.1.0-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:0790a0161c281ca9723f804871b4027f2e8b5a528d357c8952d08cd1a9c15581"},
+ {file = "pyzmq-27.1.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c895a6f35476b0c3a54e3eb6ccf41bf3018de937016e6e18748317f25d4e925f"},
+ {file = "pyzmq-27.1.0-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5bbf8d3630bf96550b3be8e1fc0fea5cbdc8d5466c1192887bd94869da17a63e"},
+ {file = "pyzmq-27.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:15c8bd0fe0dabf808e2d7a681398c4e5ded70a551ab47482067a572c054c8e2e"},
+ {file = "pyzmq-27.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:bafcb3dd171b4ae9f19ee6380dfc71ce0390fefaf26b504c0e5f628d7c8c54f2"},
+ {file = "pyzmq-27.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e829529fcaa09937189178115c49c504e69289abd39967cd8a4c215761373394"},
+ {file = "pyzmq-27.1.0-cp311-cp311-win32.whl", hash = "sha256:6df079c47d5902af6db298ec92151db82ecb557af663098b92f2508c398bb54f"},
+ {file = "pyzmq-27.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:190cbf120fbc0fc4957b56866830def56628934a9d112aec0e2507aa6a032b97"},
+ {file = "pyzmq-27.1.0-cp311-cp311-win_arm64.whl", hash = "sha256:eca6b47df11a132d1745eb3b5b5e557a7dae2c303277aa0e69c6ba91b8736e07"},
+ {file = "pyzmq-27.1.0-cp312-abi3-macosx_10_15_universal2.whl", hash = "sha256:452631b640340c928fa343801b0d07eb0c3789a5ffa843f6e1a9cee0ba4eb4fc"},
+ {file = "pyzmq-27.1.0-cp312-abi3-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:1c179799b118e554b66da67d88ed66cd37a169f1f23b5d9f0a231b4e8d44a113"},
+ {file = "pyzmq-27.1.0-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3837439b7f99e60312f0c926a6ad437b067356dc2bc2ec96eb395fd0fe804233"},
+ {file = "pyzmq-27.1.0-cp312-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:43ad9a73e3da1fab5b0e7e13402f0b2fb934ae1c876c51d0afff0e7c052eca31"},
+ {file = "pyzmq-27.1.0-cp312-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:0de3028d69d4cdc475bfe47a6128eb38d8bc0e8f4d69646adfbcd840facbac28"},
+ {file = "pyzmq-27.1.0-cp312-abi3-musllinux_1_2_i686.whl", hash = "sha256:cf44a7763aea9298c0aa7dbf859f87ed7012de8bda0f3977b6fb1d96745df856"},
+ {file = "pyzmq-27.1.0-cp312-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:f30f395a9e6fbca195400ce833c731e7b64c3919aa481af4d88c3759e0cb7496"},
+ {file = "pyzmq-27.1.0-cp312-abi3-win32.whl", hash = "sha256:250e5436a4ba13885494412b3da5d518cd0d3a278a1ae640e113c073a5f88edd"},
+ {file = "pyzmq-27.1.0-cp312-abi3-win_amd64.whl", hash = "sha256:9ce490cf1d2ca2ad84733aa1d69ce6855372cb5ce9223802450c9b2a7cba0ccf"},
+ {file = "pyzmq-27.1.0-cp312-abi3-win_arm64.whl", hash = "sha256:75a2f36223f0d535a0c919e23615fc85a1e23b71f40c7eb43d7b1dedb4d8f15f"},
+ {file = "pyzmq-27.1.0-cp313-cp313-android_24_arm64_v8a.whl", hash = "sha256:93ad4b0855a664229559e45c8d23797ceac03183c7b6f5b4428152a6b06684a5"},
+ {file = "pyzmq-27.1.0-cp313-cp313-android_24_x86_64.whl", hash = "sha256:fbb4f2400bfda24f12f009cba62ad5734148569ff4949b1b6ec3b519444342e6"},
+ {file = "pyzmq-27.1.0-cp313-cp313t-macosx_10_15_universal2.whl", hash = "sha256:e343d067f7b151cfe4eb3bb796a7752c9d369eed007b91231e817071d2c2fec7"},
+ {file = "pyzmq-27.1.0-cp313-cp313t-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:08363b2011dec81c354d694bdecaef4770e0ae96b9afea70b3f47b973655cc05"},
+ {file = "pyzmq-27.1.0-cp313-cp313t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d54530c8c8b5b8ddb3318f481297441af102517602b569146185fa10b63f4fa9"},
+ {file = "pyzmq-27.1.0-cp313-cp313t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6f3afa12c392f0a44a2414056d730eebc33ec0926aae92b5ad5cf26ebb6cc128"},
+ {file = "pyzmq-27.1.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c65047adafe573ff023b3187bb93faa583151627bc9c51fc4fb2c561ed689d39"},
+ {file = "pyzmq-27.1.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:90e6e9441c946a8b0a667356f7078d96411391a3b8f80980315455574177ec97"},
+ {file = "pyzmq-27.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:add071b2d25f84e8189aaf0882d39a285b42fa3853016ebab234a5e78c7a43db"},
+ {file = "pyzmq-27.1.0-cp313-cp313t-win32.whl", hash = "sha256:7ccc0700cfdf7bd487bea8d850ec38f204478681ea02a582a8da8171b7f90a1c"},
+ {file = "pyzmq-27.1.0-cp313-cp313t-win_amd64.whl", hash = "sha256:8085a9fba668216b9b4323be338ee5437a235fe275b9d1610e422ccc279733e2"},
+ {file = "pyzmq-27.1.0-cp313-cp313t-win_arm64.whl", hash = "sha256:6bb54ca21bcfe361e445256c15eedf083f153811c37be87e0514934d6913061e"},
+ {file = "pyzmq-27.1.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:ce980af330231615756acd5154f29813d553ea555485ae712c491cd483df6b7a"},
+ {file = "pyzmq-27.1.0-cp314-cp314t-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:1779be8c549e54a1c38f805e56d2a2e5c009d26de10921d7d51cfd1c8d4632ea"},
+ {file = "pyzmq-27.1.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7200bb0f03345515df50d99d3db206a0a6bee1955fbb8c453c76f5bf0e08fb96"},
+ {file = "pyzmq-27.1.0-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:01c0e07d558b06a60773744ea6251f769cd79a41a97d11b8bf4ab8f034b0424d"},
+ {file = "pyzmq-27.1.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:80d834abee71f65253c91540445d37c4c561e293ba6e741b992f20a105d69146"},
+ {file = "pyzmq-27.1.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:544b4e3b7198dde4a62b8ff6685e9802a9a1ebf47e77478a5eb88eca2a82f2fd"},
+ {file = "pyzmq-27.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:cedc4c68178e59a4046f97eca31b148ddcf51e88677de1ef4e78cf06c5376c9a"},
+ {file = "pyzmq-27.1.0-cp314-cp314t-win32.whl", hash = "sha256:1f0b2a577fd770aa6f053211a55d1c47901f4d537389a034c690291485e5fe92"},
+ {file = "pyzmq-27.1.0-cp314-cp314t-win_amd64.whl", hash = "sha256:19c9468ae0437f8074af379e986c5d3d7d7bfe033506af442e8c879732bedbe0"},
+ {file = "pyzmq-27.1.0-cp314-cp314t-win_arm64.whl", hash = "sha256:dc5dbf68a7857b59473f7df42650c621d7e8923fb03fa74a526890f4d33cc4d7"},
+ {file = "pyzmq-27.1.0-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:18339186c0ed0ce5835f2656cdfb32203125917711af64da64dbaa3d949e5a1b"},
+ {file = "pyzmq-27.1.0-cp38-cp38-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:753d56fba8f70962cd8295fb3edb40b9b16deaa882dd2b5a3a2039f9ff7625aa"},
+ {file = "pyzmq-27.1.0-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b721c05d932e5ad9ff9344f708c96b9e1a485418c6618d765fca95d4daacfbef"},
+ {file = "pyzmq-27.1.0-cp38-cp38-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7be883ff3d722e6085ee3f4afc057a50f7f2e0c72d289fd54df5706b4e3d3a50"},
+ {file = "pyzmq-27.1.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:b2e592db3a93128daf567de9650a2f3859017b3f7a66bc4ed6e4779d6034976f"},
+ {file = "pyzmq-27.1.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:ad68808a61cbfbbae7ba26d6233f2a4aa3b221de379ce9ee468aa7a83b9c36b0"},
+ {file = "pyzmq-27.1.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:e2687c2d230e8d8584fbea433c24382edfeda0c60627aca3446aa5e58d5d1831"},
+ {file = "pyzmq-27.1.0-cp38-cp38-win32.whl", hash = "sha256:a1aa0ee920fb3825d6c825ae3f6c508403b905b698b6460408ebd5bb04bbb312"},
+ {file = "pyzmq-27.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:df7cd397ece96cf20a76fae705d40efbab217d217897a5053267cd88a700c266"},
+ {file = "pyzmq-27.1.0-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:96c71c32fff75957db6ae33cd961439f386505c6e6b377370af9b24a1ef9eafb"},
+ {file = "pyzmq-27.1.0-cp39-cp39-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:49d3980544447f6bd2968b6ac913ab963a49dcaa2d4a2990041f16057b04c429"},
+ {file = "pyzmq-27.1.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:849ca054d81aa1c175c49484afaaa5db0622092b5eccb2055f9f3bb8f703782d"},
+ {file = "pyzmq-27.1.0-cp39-cp39-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3970778e74cb7f85934d2b926b9900e92bfe597e62267d7499acc39c9c28e345"},
+ {file = "pyzmq-27.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:da96ecdcf7d3919c3be2de91a8c513c186f6762aa6cf7c01087ed74fad7f0968"},
+ {file = "pyzmq-27.1.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:9541c444cfe1b1c0156c5c86ece2bb926c7079a18e7b47b0b1b3b1b875e5d098"},
+ {file = "pyzmq-27.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:e30a74a39b93e2e1591b58eb1acef4902be27c957a8720b0e368f579b82dc22f"},
+ {file = "pyzmq-27.1.0-cp39-cp39-win32.whl", hash = "sha256:b1267823d72d1e40701dcba7edc45fd17f71be1285557b7fe668887150a14b78"},
+ {file = "pyzmq-27.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:0c996ded912812a2fcd7ab6574f4ad3edc27cb6510349431e4930d4196ade7db"},
+ {file = "pyzmq-27.1.0-cp39-cp39-win_arm64.whl", hash = "sha256:346e9ba4198177a07e7706050f35d733e08c1c1f8ceacd5eb6389d653579ffbc"},
+ {file = "pyzmq-27.1.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:c17e03cbc9312bee223864f1a2b13a99522e0dc9f7c5df0177cd45210ac286e6"},
+ {file = "pyzmq-27.1.0-pp310-pypy310_pp73-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:f328d01128373cb6763823b2b4e7f73bdf767834268c565151eacb3b7a392f90"},
+ {file = "pyzmq-27.1.0-pp310-pypy310_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9c1790386614232e1b3a40a958454bdd42c6d1811837b15ddbb052a032a43f62"},
+ {file = "pyzmq-27.1.0-pp310-pypy310_pp73-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:448f9cb54eb0cee4732b46584f2710c8bc178b0e5371d9e4fc8125201e413a74"},
+ {file = "pyzmq-27.1.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:05b12f2d32112bf8c95ef2e74ec4f1d4beb01f8b5e703b38537f8849f92cb9ba"},
+ {file = "pyzmq-27.1.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:18770c8d3563715387139060d37859c02ce40718d1faf299abddcdcc6a649066"},
+ {file = "pyzmq-27.1.0-pp311-pypy311_pp73-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:ac25465d42f92e990f8d8b0546b01c391ad431c3bf447683fdc40565941d0604"},
+ {file = "pyzmq-27.1.0-pp311-pypy311_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:53b40f8ae006f2734ee7608d59ed661419f087521edbfc2149c3932e9c14808c"},
+ {file = "pyzmq-27.1.0-pp311-pypy311_pp73-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f605d884e7c8be8fe1aa94e0a783bf3f591b84c24e4bc4f3e7564c82ac25e271"},
+ {file = "pyzmq-27.1.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:c9f7f6e13dff2e44a6afeaf2cf54cee5929ad64afaf4d40b50f93c58fc687355"},
+ {file = "pyzmq-27.1.0-pp38-pypy38_pp73-macosx_10_15_x86_64.whl", hash = "sha256:50081a4e98472ba9f5a02850014b4c9b629da6710f8f14f3b15897c666a28f1b"},
+ {file = "pyzmq-27.1.0-pp38-pypy38_pp73-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:510869f9df36ab97f89f4cff9d002a89ac554c7ac9cadd87d444aa4cf66abd27"},
+ {file = "pyzmq-27.1.0-pp38-pypy38_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1f8426a01b1c4098a750973c37131cf585f61c7911d735f729935a0c701b68d3"},
+ {file = "pyzmq-27.1.0-pp38-pypy38_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:726b6a502f2e34c6d2ada5e702929586d3ac948a4dbbb7fed9854ec8c0466027"},
+ {file = "pyzmq-27.1.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:bd67e7c8f4654bef471c0b1ca6614af0b5202a790723a58b79d9584dc8022a78"},
+ {file = "pyzmq-27.1.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:722ea791aa233ac0a819fc2c475e1292c76930b31f1d828cb61073e2fe5e208f"},
+ {file = "pyzmq-27.1.0-pp39-pypy39_pp73-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:01f9437501886d3a1dd4b02ef59fb8cc384fa718ce066d52f175ee49dd5b7ed8"},
+ {file = "pyzmq-27.1.0-pp39-pypy39_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4a19387a3dddcc762bfd2f570d14e2395b2c9701329b266f83dd87a2b3cbd381"},
+ {file = "pyzmq-27.1.0-pp39-pypy39_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4c618fbcd069e3a29dcd221739cacde52edcc681f041907867e0f5cc7e85f172"},
+ {file = "pyzmq-27.1.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:ff8d114d14ac671d88c89b9224c63d6c4e5a613fe8acd5594ce53d752a3aafe9"},
+ {file = "pyzmq-27.1.0.tar.gz", hash = "sha256:ac0765e3d44455adb6ddbf4417dcce460fc40a05978c08efdf2948072f6db540"}
]
[package.dependencies]
@@ -3596,14 +3898,14 @@ cffi = {version = "*", markers = "implementation_name == \"pypy\""}
[[package]]
name = "referencing"
-version = "0.36.2"
+version = "0.37.0"
description = "JSON Referencing + Python"
optional = false
-python-versions = ">=3.9"
+python-versions = ">=3.10"
groups = ["main"]
files = [
- {file = "referencing-0.36.2-py3-none-any.whl", hash = "sha256:e8699adbbf8b5c7de96d8ffa0eb5c158b3beafce084968e2ea8bb08c6794dcd0"},
- {file = "referencing-0.36.2.tar.gz", hash = "sha256:df2e89862cd09deabbdba16944cc3f10feb6b3e6f18e902f7cc25609a34775aa"}
+ {file = "referencing-0.37.0-py3-none-any.whl", hash = "sha256:381329a9f99628c9069361716891d34ad94af76e461dcb0335825aecc7692231"},
+ {file = "referencing-0.37.0.tar.gz", hash = "sha256:44aefc3142c5b842538163acb373e24cce6632bd54bdb01b21ad5863489f50d8"}
]
[package.dependencies]
@@ -3613,14 +3915,14 @@ typing-extensions = {version = ">=4.4.0", markers = "python_version < \"3.13\""}
[[package]]
name = "requests"
-version = "2.32.4"
+version = "2.32.5"
description = "Python HTTP for Humans."
optional = false
-python-versions = ">=3.8"
+python-versions = ">=3.9"
groups = ["main"]
files = [
- {file = "requests-2.32.4-py3-none-any.whl", hash = "sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c"},
- {file = "requests-2.32.4.tar.gz", hash = "sha256:27d0316682c8a29834d3264820024b62a36942083d52caf2f14c0591336d3422"}
+ {file = "requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6"},
+ {file = "requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf"}
]
[package.dependencies]
@@ -3660,131 +3962,187 @@ files = [
{file = "rfc3986_validator-0.1.1.tar.gz", hash = "sha256:3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055"}
]
+[[package]]
+name = "rfc3987-syntax"
+version = "1.1.0"
+description = "Helper functions to syntactically validate strings according to RFC 3987."
+optional = false
+python-versions = ">=3.9"
+groups = ["main"]
+files = [
+ {file = "rfc3987_syntax-1.1.0-py3-none-any.whl", hash = "sha256:6c3d97604e4c5ce9f714898e05401a0445a641cfa276432b0a648c80856f6a3f"},
+ {file = "rfc3987_syntax-1.1.0.tar.gz", hash = "sha256:717a62cbf33cffdd16dfa3a497d81ce48a660ea691b1ddd7be710c22f00b4a0d"}
+]
+
+[package.dependencies]
+lark = ">=1.2.2"
+
+[package.extras]
+testing = ["pytest (>=8.3.5)"]
+
[[package]]
name = "rpds-py"
-version = "0.25.1"
+version = "0.27.1"
description = "Python bindings to Rust's persistent data structures (rpds)"
optional = false
python-versions = ">=3.9"
groups = ["main"]
files = [
- {file = "rpds_py-0.25.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:f4ad628b5174d5315761b67f212774a32f5bad5e61396d38108bd801c0a8f5d9"},
- {file = "rpds_py-0.25.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8c742af695f7525e559c16f1562cf2323db0e3f0fbdcabdf6865b095256b2d40"},
- {file = "rpds_py-0.25.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:605ffe7769e24b1800b4d024d24034405d9404f0bc2f55b6db3362cd34145a6f"},
- {file = "rpds_py-0.25.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ccc6f3ddef93243538be76f8e47045b4aad7a66a212cd3a0f23e34469473d36b"},
- {file = "rpds_py-0.25.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f70316f760174ca04492b5ab01be631a8ae30cadab1d1081035136ba12738cfa"},
- {file = "rpds_py-0.25.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e1dafef8df605fdb46edcc0bf1573dea0d6d7b01ba87f85cd04dc855b2b4479e"},
- {file = "rpds_py-0.25.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0701942049095741a8aeb298a31b203e735d1c61f4423511d2b1a41dcd8a16da"},
- {file = "rpds_py-0.25.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e87798852ae0b37c88babb7f7bbbb3e3fecc562a1c340195b44c7e24d403e380"},
- {file = "rpds_py-0.25.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3bcce0edc1488906c2d4c75c94c70a0417e83920dd4c88fec1078c94843a6ce9"},
- {file = "rpds_py-0.25.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e2f6a2347d3440ae789505693a02836383426249d5293541cd712e07e7aecf54"},
- {file = "rpds_py-0.25.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:4fd52d3455a0aa997734f3835cbc4c9f32571345143960e7d7ebfe7b5fbfa3b2"},
- {file = "rpds_py-0.25.1-cp310-cp310-win32.whl", hash = "sha256:3f0b1798cae2bbbc9b9db44ee068c556d4737911ad53a4e5093d09d04b3bbc24"},
- {file = "rpds_py-0.25.1-cp310-cp310-win_amd64.whl", hash = "sha256:3ebd879ab996537fc510a2be58c59915b5dd63bccb06d1ef514fee787e05984a"},
- {file = "rpds_py-0.25.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:5f048bbf18b1f9120685c6d6bb70cc1a52c8cc11bdd04e643d28d3be0baf666d"},
- {file = "rpds_py-0.25.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4fbb0dbba559959fcb5d0735a0f87cdbca9e95dac87982e9b95c0f8f7ad10255"},
- {file = "rpds_py-0.25.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4ca54b9cf9d80b4016a67a0193ebe0bcf29f6b0a96f09db942087e294d3d4c2"},
- {file = "rpds_py-0.25.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1ee3e26eb83d39b886d2cb6e06ea701bba82ef30a0de044d34626ede51ec98b0"},
- {file = "rpds_py-0.25.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:89706d0683c73a26f76a5315d893c051324d771196ae8b13e6ffa1ffaf5e574f"},
- {file = "rpds_py-0.25.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c2013ee878c76269c7b557a9a9c042335d732e89d482606990b70a839635feb7"},
- {file = "rpds_py-0.25.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45e484db65e5380804afbec784522de84fa95e6bb92ef1bd3325d33d13efaebd"},
- {file = "rpds_py-0.25.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:48d64155d02127c249695abb87d39f0faf410733428d499867606be138161d65"},
- {file = "rpds_py-0.25.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:048893e902132fd6548a2e661fb38bf4896a89eea95ac5816cf443524a85556f"},
- {file = "rpds_py-0.25.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:0317177b1e8691ab5879f4f33f4b6dc55ad3b344399e23df2e499de7b10a548d"},
- {file = "rpds_py-0.25.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bffcf57826d77a4151962bf1701374e0fc87f536e56ec46f1abdd6a903354042"},
- {file = "rpds_py-0.25.1-cp311-cp311-win32.whl", hash = "sha256:cda776f1967cb304816173b30994faaf2fd5bcb37e73118a47964a02c348e1bc"},
- {file = "rpds_py-0.25.1-cp311-cp311-win_amd64.whl", hash = "sha256:dc3c1ff0abc91444cd20ec643d0f805df9a3661fcacf9c95000329f3ddf268a4"},
- {file = "rpds_py-0.25.1-cp311-cp311-win_arm64.whl", hash = "sha256:5a3ddb74b0985c4387719fc536faced33cadf2172769540c62e2a94b7b9be1c4"},
- {file = "rpds_py-0.25.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:b5ffe453cde61f73fea9430223c81d29e2fbf412a6073951102146c84e19e34c"},
- {file = "rpds_py-0.25.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:115874ae5e2fdcfc16b2aedc95b5eef4aebe91b28e7e21951eda8a5dc0d3461b"},
- {file = "rpds_py-0.25.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a714bf6e5e81b0e570d01f56e0c89c6375101b8463999ead3a93a5d2a4af91fa"},
- {file = "rpds_py-0.25.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:35634369325906bcd01577da4c19e3b9541a15e99f31e91a02d010816b49bfda"},
- {file = "rpds_py-0.25.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d4cb2b3ddc16710548801c6fcc0cfcdeeff9dafbc983f77265877793f2660309"},
- {file = "rpds_py-0.25.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9ceca1cf097ed77e1a51f1dbc8d174d10cb5931c188a4505ff9f3e119dfe519b"},
- {file = "rpds_py-0.25.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c2cd1a4b0c2b8c5e31ffff50d09f39906fe351389ba143c195566056c13a7ea"},
- {file = "rpds_py-0.25.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1de336a4b164c9188cb23f3703adb74a7623ab32d20090d0e9bf499a2203ad65"},
- {file = "rpds_py-0.25.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9fca84a15333e925dd59ce01da0ffe2ffe0d6e5d29a9eeba2148916d1824948c"},
- {file = "rpds_py-0.25.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:88ec04afe0c59fa64e2f6ea0dd9657e04fc83e38de90f6de201954b4d4eb59bd"},
- {file = "rpds_py-0.25.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a8bd2f19e312ce3e1d2c635618e8a8d8132892bb746a7cf74780a489f0f6cdcb"},
- {file = "rpds_py-0.25.1-cp312-cp312-win32.whl", hash = "sha256:e5e2f7280d8d0d3ef06f3ec1b4fd598d386cc6f0721e54f09109a8132182fbfe"},
- {file = "rpds_py-0.25.1-cp312-cp312-win_amd64.whl", hash = "sha256:db58483f71c5db67d643857404da360dce3573031586034b7d59f245144cc192"},
- {file = "rpds_py-0.25.1-cp312-cp312-win_arm64.whl", hash = "sha256:6d50841c425d16faf3206ddbba44c21aa3310a0cebc3c1cdfc3e3f4f9f6f5728"},
- {file = "rpds_py-0.25.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:659d87430a8c8c704d52d094f5ba6fa72ef13b4d385b7e542a08fc240cb4a559"},
- {file = "rpds_py-0.25.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:68f6f060f0bbdfb0245267da014d3a6da9be127fe3e8cc4a68c6f833f8a23bb1"},
- {file = "rpds_py-0.25.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:083a9513a33e0b92cf6e7a6366036c6bb43ea595332c1ab5c8ae329e4bcc0a9c"},
- {file = "rpds_py-0.25.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:816568614ecb22b18a010c7a12559c19f6fe993526af88e95a76d5a60b8b75fb"},
- {file = "rpds_py-0.25.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3c6564c0947a7f52e4792983f8e6cf9bac140438ebf81f527a21d944f2fd0a40"},
- {file = "rpds_py-0.25.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c4a128527fe415d73cf1f70a9a688d06130d5810be69f3b553bf7b45e8acf79"},
- {file = "rpds_py-0.25.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a49e1d7a4978ed554f095430b89ecc23f42014a50ac385eb0c4d163ce213c325"},
- {file = "rpds_py-0.25.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d74ec9bc0e2feb81d3f16946b005748119c0f52a153f6db6a29e8cd68636f295"},
- {file = "rpds_py-0.25.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:3af5b4cc10fa41e5bc64e5c198a1b2d2864337f8fcbb9a67e747e34002ce812b"},
- {file = "rpds_py-0.25.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:79dc317a5f1c51fd9c6a0c4f48209c6b8526d0524a6904fc1076476e79b00f98"},
- {file = "rpds_py-0.25.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1521031351865e0181bc585147624d66b3b00a84109b57fcb7a779c3ec3772cd"},
- {file = "rpds_py-0.25.1-cp313-cp313-win32.whl", hash = "sha256:5d473be2b13600b93a5675d78f59e63b51b1ba2d0476893415dfbb5477e65b31"},
- {file = "rpds_py-0.25.1-cp313-cp313-win_amd64.whl", hash = "sha256:a7b74e92a3b212390bdce1d93da9f6488c3878c1d434c5e751cbc202c5e09500"},
- {file = "rpds_py-0.25.1-cp313-cp313-win_arm64.whl", hash = "sha256:dd326a81afe332ede08eb39ab75b301d5676802cdffd3a8f287a5f0b694dc3f5"},
- {file = "rpds_py-0.25.1-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:a58d1ed49a94d4183483a3ce0af22f20318d4a1434acee255d683ad90bf78129"},
- {file = "rpds_py-0.25.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:f251bf23deb8332823aef1da169d5d89fa84c89f67bdfb566c49dea1fccfd50d"},
- {file = "rpds_py-0.25.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8dbd586bfa270c1103ece2109314dd423df1fa3d9719928b5d09e4840cec0d72"},
- {file = "rpds_py-0.25.1-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6d273f136e912aa101a9274c3145dcbddbe4bac560e77e6d5b3c9f6e0ed06d34"},
- {file = "rpds_py-0.25.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:666fa7b1bd0a3810a7f18f6d3a25ccd8866291fbbc3c9b912b917a6715874bb9"},
- {file = "rpds_py-0.25.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:921954d7fbf3fccc7de8f717799304b14b6d9a45bbeec5a8d7408ccbf531faf5"},
- {file = "rpds_py-0.25.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3d86373ff19ca0441ebeb696ef64cb58b8b5cbacffcda5a0ec2f3911732a194"},
- {file = "rpds_py-0.25.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c8980cde3bb8575e7c956a530f2c217c1d6aac453474bf3ea0f9c89868b531b6"},
- {file = "rpds_py-0.25.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:8eb8c84ecea987a2523e057c0d950bcb3f789696c0499290b8d7b3107a719d78"},
- {file = "rpds_py-0.25.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:e43a005671a9ed5a650f3bc39e4dbccd6d4326b24fb5ea8be5f3a43a6f576c72"},
- {file = "rpds_py-0.25.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:58f77c60956501a4a627749a6dcb78dac522f249dd96b5c9f1c6af29bfacfb66"},
- {file = "rpds_py-0.25.1-cp313-cp313t-win32.whl", hash = "sha256:2cb9e5b5e26fc02c8a4345048cd9998c2aca7c2712bd1b36da0c72ee969a3523"},
- {file = "rpds_py-0.25.1-cp313-cp313t-win_amd64.whl", hash = "sha256:401ca1c4a20cc0510d3435d89c069fe0a9ae2ee6495135ac46bdd49ec0495763"},
- {file = "rpds_py-0.25.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:ce4c8e485a3c59593f1a6f683cf0ea5ab1c1dc94d11eea5619e4fb5228b40fbd"},
- {file = "rpds_py-0.25.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d8222acdb51a22929c3b2ddb236b69c59c72af4019d2cba961e2f9add9b6e634"},
- {file = "rpds_py-0.25.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4593c4eae9b27d22df41cde518b4b9e4464d139e4322e2127daa9b5b981b76be"},
- {file = "rpds_py-0.25.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bd035756830c712b64725a76327ce80e82ed12ebab361d3a1cdc0f51ea21acb0"},
- {file = "rpds_py-0.25.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:114a07e85f32b125404f28f2ed0ba431685151c037a26032b213c882f26eb908"},
- {file = "rpds_py-0.25.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dec21e02e6cc932538b5203d3a8bd6aa1480c98c4914cb88eea064ecdbc6396a"},
- {file = "rpds_py-0.25.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:09eab132f41bf792c7a0ea1578e55df3f3e7f61888e340779b06050a9a3f16e9"},
- {file = "rpds_py-0.25.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c98f126c4fc697b84c423e387337d5b07e4a61e9feac494362a59fd7a2d9ed80"},
- {file = "rpds_py-0.25.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0e6a327af8ebf6baba1c10fadd04964c1965d375d318f4435d5f3f9651550f4a"},
- {file = "rpds_py-0.25.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:bc120d1132cff853ff617754196d0ac0ae63befe7c8498bd67731ba368abe451"},
- {file = "rpds_py-0.25.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:140f61d9bed7839446bdd44852e30195c8e520f81329b4201ceead4d64eb3a9f"},
- {file = "rpds_py-0.25.1-cp39-cp39-win32.whl", hash = "sha256:9c006f3aadeda131b438c3092124bd196b66312f0caa5823ef09585a669cf449"},
- {file = "rpds_py-0.25.1-cp39-cp39-win_amd64.whl", hash = "sha256:a61d0b2c7c9a0ae45732a77844917b427ff16ad5464b4d4f5e4adb955f582890"},
- {file = "rpds_py-0.25.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b24bf3cd93d5b6ecfbedec73b15f143596c88ee249fa98cefa9a9dc9d92c6f28"},
- {file = "rpds_py-0.25.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:0eb90e94f43e5085623932b68840b6f379f26db7b5c2e6bcef3179bd83c9330f"},
- {file = "rpds_py-0.25.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d50e4864498a9ab639d6d8854b25e80642bd362ff104312d9770b05d66e5fb13"},
- {file = "rpds_py-0.25.1-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7c9409b47ba0650544b0bb3c188243b83654dfe55dcc173a86832314e1a6a35d"},
- {file = "rpds_py-0.25.1-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:796ad874c89127c91970652a4ee8b00d56368b7e00d3477f4415fe78164c8000"},
- {file = "rpds_py-0.25.1-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:85608eb70a659bf4c1142b2781083d4b7c0c4e2c90eff11856a9754e965b2540"},
- {file = "rpds_py-0.25.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c4feb9211d15d9160bc85fa72fed46432cdc143eb9cf6d5ca377335a921ac37b"},
- {file = "rpds_py-0.25.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ccfa689b9246c48947d31dd9d8b16d89a0ecc8e0e26ea5253068efb6c542b76e"},
- {file = "rpds_py-0.25.1-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:3c5b317ecbd8226887994852e85de562f7177add602514d4ac40f87de3ae45a8"},
- {file = "rpds_py-0.25.1-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:454601988aab2c6e8fd49e7634c65476b2b919647626208e376afcd22019eeb8"},
- {file = "rpds_py-0.25.1-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:1c0c434a53714358532d13539272db75a5ed9df75a4a090a753ac7173ec14e11"},
- {file = "rpds_py-0.25.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:f73ce1512e04fbe2bc97836e89830d6b4314c171587a99688082d090f934d20a"},
- {file = "rpds_py-0.25.1-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:ee86d81551ec68a5c25373c5643d343150cc54672b5e9a0cafc93c1870a53954"},
- {file = "rpds_py-0.25.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:89c24300cd4a8e4a51e55c31a8ff3918e6651b241ee8876a42cc2b2a078533ba"},
- {file = "rpds_py-0.25.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:771c16060ff4e79584dc48902a91ba79fd93eade3aa3a12d6d2a4aadaf7d542b"},
- {file = "rpds_py-0.25.1-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:785ffacd0ee61c3e60bdfde93baa6d7c10d86f15655bd706c89da08068dc5038"},
- {file = "rpds_py-0.25.1-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2a40046a529cc15cef88ac5ab589f83f739e2d332cb4d7399072242400ed68c9"},
- {file = "rpds_py-0.25.1-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:85fc223d9c76cabe5d0bff82214459189720dc135db45f9f66aa7cffbf9ff6c1"},
- {file = "rpds_py-0.25.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b0be9965f93c222fb9b4cc254235b3b2b215796c03ef5ee64f995b1b69af0762"},
- {file = "rpds_py-0.25.1-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8378fa4a940f3fb509c081e06cb7f7f2adae8cf46ef258b0e0ed7519facd573e"},
- {file = "rpds_py-0.25.1-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:33358883a4490287e67a2c391dfaea4d9359860281db3292b6886bf0be3d8692"},
- {file = "rpds_py-0.25.1-pp311-pypy311_pp73-musllinux_1_2_i686.whl", hash = "sha256:1d1fadd539298e70cac2f2cb36f5b8a65f742b9b9f1014dd4ea1f7785e2470bf"},
- {file = "rpds_py-0.25.1-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:9a46c2fb2545e21181445515960006e85d22025bd2fe6db23e76daec6eb689fe"},
- {file = "rpds_py-0.25.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:50f2c501a89c9a5f4e454b126193c5495b9fb441a75b298c60591d8a2eb92e1b"},
- {file = "rpds_py-0.25.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:7d779b325cc8238227c47fbc53964c8cc9a941d5dbae87aa007a1f08f2f77b23"},
- {file = "rpds_py-0.25.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:036ded36bedb727beeabc16dc1dad7cb154b3fa444e936a03b67a86dc6a5066e"},
- {file = "rpds_py-0.25.1-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:245550f5a1ac98504147cba96ffec8fabc22b610742e9150138e5d60774686d7"},
- {file = "rpds_py-0.25.1-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ff7c23ba0a88cb7b104281a99476cccadf29de2a0ef5ce864959a52675b1ca83"},
- {file = "rpds_py-0.25.1-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e37caa8cdb3b7cf24786451a0bdb853f6347b8b92005eeb64225ae1db54d1c2b"},
- {file = "rpds_py-0.25.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f2f48ab00181600ee266a095fe815134eb456163f7d6699f525dee471f312cf"},
- {file = "rpds_py-0.25.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9e5fc7484fa7dce57e25063b0ec9638ff02a908304f861d81ea49273e43838c1"},
- {file = "rpds_py-0.25.1-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:d3c10228d6cf6fe2b63d2e7985e94f6916fa46940df46b70449e9ff9297bd3d1"},
- {file = "rpds_py-0.25.1-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:5d9e40f32745db28c1ef7aad23f6fc458dc1e29945bd6781060f0d15628b8ddf"},
- {file = "rpds_py-0.25.1-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:35a8d1a24b5936b35c5003313bc177403d8bdef0f8b24f28b1c4a255f94ea992"},
- {file = "rpds_py-0.25.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:6099263f526efff9cf3883dfef505518730f7a7a93049b1d90d42e50a22b4793"},
- {file = "rpds_py-0.25.1.tar.gz", hash = "sha256:8960b6dac09b62dac26e75d7e2c4a22efb835d827a7278c34f72b2b84fa160e3"}
+ {file = "rpds_py-0.27.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:68afeec26d42ab3b47e541b272166a0b4400313946871cba3ed3a4fc0cab1cef"},
+ {file = "rpds_py-0.27.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:74e5b2f7bb6fa38b1b10546d27acbacf2a022a8b5543efb06cfebc72a59c85be"},
+ {file = "rpds_py-0.27.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9024de74731df54546fab0bfbcdb49fae19159ecaecfc8f37c18d2c7e2c0bd61"},
+ {file = "rpds_py-0.27.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:31d3ebadefcd73b73928ed0b2fd696f7fefda8629229f81929ac9c1854d0cffb"},
+ {file = "rpds_py-0.27.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b2e7f8f169d775dd9092a1743768d771f1d1300453ddfe6325ae3ab5332b4657"},
+ {file = "rpds_py-0.27.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d905d16f77eb6ab2e324e09bfa277b4c8e5e6b8a78a3e7ff8f3cdf773b4c013"},
+ {file = "rpds_py-0.27.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:50c946f048209e6362e22576baea09193809f87687a95a8db24e5fbdb307b93a"},
+ {file = "rpds_py-0.27.1-cp310-cp310-manylinux_2_31_riscv64.whl", hash = "sha256:3deab27804d65cd8289eb814c2c0e807c4b9d9916c9225e363cb0cf875eb67c1"},
+ {file = "rpds_py-0.27.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8b61097f7488de4be8244c89915da8ed212832ccf1e7c7753a25a394bf9b1f10"},
+ {file = "rpds_py-0.27.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:8a3f29aba6e2d7d90528d3c792555a93497fe6538aa65eb675b44505be747808"},
+ {file = "rpds_py-0.27.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:dd6cd0485b7d347304067153a6dc1d73f7d4fd995a396ef32a24d24b8ac63ac8"},
+ {file = "rpds_py-0.27.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:6f4461bf931108c9fa226ffb0e257c1b18dc2d44cd72b125bec50ee0ab1248a9"},
+ {file = "rpds_py-0.27.1-cp310-cp310-win32.whl", hash = "sha256:ee5422d7fb21f6a00c1901bf6559c49fee13a5159d0288320737bbf6585bd3e4"},
+ {file = "rpds_py-0.27.1-cp310-cp310-win_amd64.whl", hash = "sha256:3e039aabf6d5f83c745d5f9a0a381d031e9ed871967c0a5c38d201aca41f3ba1"},
+ {file = "rpds_py-0.27.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:be898f271f851f68b318872ce6ebebbc62f303b654e43bf72683dbdc25b7c881"},
+ {file = "rpds_py-0.27.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:62ac3d4e3e07b58ee0ddecd71d6ce3b1637de2d373501412df395a0ec5f9beb5"},
+ {file = "rpds_py-0.27.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4708c5c0ceb2d034f9991623631d3d23cb16e65c83736ea020cdbe28d57c0a0e"},
+ {file = "rpds_py-0.27.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:abfa1171a9952d2e0002aba2ad3780820b00cc3d9c98c6630f2e93271501f66c"},
+ {file = "rpds_py-0.27.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4b507d19f817ebaca79574b16eb2ae412e5c0835542c93fe9983f1e432aca195"},
+ {file = "rpds_py-0.27.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:168b025f8fd8d8d10957405f3fdcef3dc20f5982d398f90851f4abc58c566c52"},
+ {file = "rpds_py-0.27.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cb56c6210ef77caa58e16e8c17d35c63fe3f5b60fd9ba9d424470c3400bcf9ed"},
+ {file = "rpds_py-0.27.1-cp311-cp311-manylinux_2_31_riscv64.whl", hash = "sha256:d252f2d8ca0195faa707f8eb9368955760880b2b42a8ee16d382bf5dd807f89a"},
+ {file = "rpds_py-0.27.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6e5e54da1e74b91dbc7996b56640f79b195d5925c2b78efaa8c5d53e1d88edde"},
+ {file = "rpds_py-0.27.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ffce0481cc6e95e5b3f0a47ee17ffbd234399e6d532f394c8dce320c3b089c21"},
+ {file = "rpds_py-0.27.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:a205fdfe55c90c2cd8e540ca9ceba65cbe6629b443bc05db1f590a3db8189ff9"},
+ {file = "rpds_py-0.27.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:689fb5200a749db0415b092972e8eba85847c23885c8543a8b0f5c009b1a5948"},
+ {file = "rpds_py-0.27.1-cp311-cp311-win32.whl", hash = "sha256:3182af66048c00a075010bc7f4860f33913528a4b6fc09094a6e7598e462fe39"},
+ {file = "rpds_py-0.27.1-cp311-cp311-win_amd64.whl", hash = "sha256:b4938466c6b257b2f5c4ff98acd8128ec36b5059e5c8f8372d79316b1c36bb15"},
+ {file = "rpds_py-0.27.1-cp311-cp311-win_arm64.whl", hash = "sha256:2f57af9b4d0793e53266ee4325535a31ba48e2f875da81a9177c9926dfa60746"},
+ {file = "rpds_py-0.27.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:ae2775c1973e3c30316892737b91f9283f9908e3cc7625b9331271eaaed7dc90"},
+ {file = "rpds_py-0.27.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2643400120f55c8a96f7c9d858f7be0c88d383cd4653ae2cf0d0c88f668073e5"},
+ {file = "rpds_py-0.27.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:16323f674c089b0360674a4abd28d5042947d54ba620f72514d69be4ff64845e"},
+ {file = "rpds_py-0.27.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9a1f4814b65eacac94a00fc9a526e3fdafd78e439469644032032d0d63de4881"},
+ {file = "rpds_py-0.27.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7ba32c16b064267b22f1850a34051121d423b6f7338a12b9459550eb2096e7ec"},
+ {file = "rpds_py-0.27.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5c20f33fd10485b80f65e800bbe5f6785af510b9f4056c5a3c612ebc83ba6cb"},
+ {file = "rpds_py-0.27.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:466bfe65bd932da36ff279ddd92de56b042f2266d752719beb97b08526268ec5"},
+ {file = "rpds_py-0.27.1-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:41e532bbdcb57c92ba3be62c42e9f096431b4cf478da9bc3bc6ce5c38ab7ba7a"},
+ {file = "rpds_py-0.27.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f149826d742b406579466283769a8ea448eed82a789af0ed17b0cd5770433444"},
+ {file = "rpds_py-0.27.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:80c60cfb5310677bd67cb1e85a1e8eb52e12529545441b43e6f14d90b878775a"},
+ {file = "rpds_py-0.27.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:7ee6521b9baf06085f62ba9c7a3e5becffbc32480d2f1b351559c001c38ce4c1"},
+ {file = "rpds_py-0.27.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a512c8263249a9d68cac08b05dd59d2b3f2061d99b322813cbcc14c3c7421998"},
+ {file = "rpds_py-0.27.1-cp312-cp312-win32.whl", hash = "sha256:819064fa048ba01b6dadc5116f3ac48610435ac9a0058bbde98e569f9e785c39"},
+ {file = "rpds_py-0.27.1-cp312-cp312-win_amd64.whl", hash = "sha256:d9199717881f13c32c4046a15f024971a3b78ad4ea029e8da6b86e5aa9cf4594"},
+ {file = "rpds_py-0.27.1-cp312-cp312-win_arm64.whl", hash = "sha256:33aa65b97826a0e885ef6e278fbd934e98cdcfed80b63946025f01e2f5b29502"},
+ {file = "rpds_py-0.27.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:e4b9fcfbc021633863a37e92571d6f91851fa656f0180246e84cbd8b3f6b329b"},
+ {file = "rpds_py-0.27.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1441811a96eadca93c517d08df75de45e5ffe68aa3089924f963c782c4b898cf"},
+ {file = "rpds_py-0.27.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55266dafa22e672f5a4f65019015f90336ed31c6383bd53f5e7826d21a0e0b83"},
+ {file = "rpds_py-0.27.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d78827d7ac08627ea2c8e02c9e5b41180ea5ea1f747e9db0915e3adf36b62dcf"},
+ {file = "rpds_py-0.27.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae92443798a40a92dc5f0b01d8a7c93adde0c4dc965310a29ae7c64d72b9fad2"},
+ {file = "rpds_py-0.27.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c46c9dd2403b66a2a3b9720ec4b74d4ab49d4fabf9f03dfdce2d42af913fe8d0"},
+ {file = "rpds_py-0.27.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2efe4eb1d01b7f5f1939f4ef30ecea6c6b3521eec451fb93191bf84b2a522418"},
+ {file = "rpds_py-0.27.1-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:15d3b4d83582d10c601f481eca29c3f138d44c92187d197aff663a269197c02d"},
+ {file = "rpds_py-0.27.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4ed2e16abbc982a169d30d1a420274a709949e2cbdef119fe2ec9d870b42f274"},
+ {file = "rpds_py-0.27.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a75f305c9b013289121ec0f1181931975df78738cdf650093e6b86d74aa7d8dd"},
+ {file = "rpds_py-0.27.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:67ce7620704745881a3d4b0ada80ab4d99df390838839921f99e63c474f82cf2"},
+ {file = "rpds_py-0.27.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9d992ac10eb86d9b6f369647b6a3f412fc0075cfd5d799530e84d335e440a002"},
+ {file = "rpds_py-0.27.1-cp313-cp313-win32.whl", hash = "sha256:4f75e4bd8ab8db624e02c8e2fc4063021b58becdbe6df793a8111d9343aec1e3"},
+ {file = "rpds_py-0.27.1-cp313-cp313-win_amd64.whl", hash = "sha256:f9025faafc62ed0b75a53e541895ca272815bec18abe2249ff6501c8f2e12b83"},
+ {file = "rpds_py-0.27.1-cp313-cp313-win_arm64.whl", hash = "sha256:ed10dc32829e7d222b7d3b93136d25a406ba9788f6a7ebf6809092da1f4d279d"},
+ {file = "rpds_py-0.27.1-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:92022bbbad0d4426e616815b16bc4127f83c9a74940e1ccf3cfe0b387aba0228"},
+ {file = "rpds_py-0.27.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:47162fdab9407ec3f160805ac3e154df042e577dd53341745fc7fb3f625e6d92"},
+ {file = "rpds_py-0.27.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb89bec23fddc489e5d78b550a7b773557c9ab58b7946154a10a6f7a214a48b2"},
+ {file = "rpds_py-0.27.1-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e48af21883ded2b3e9eb48cb7880ad8598b31ab752ff3be6457001d78f416723"},
+ {file = "rpds_py-0.27.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6f5b7bd8e219ed50299e58551a410b64daafb5017d54bbe822e003856f06a802"},
+ {file = "rpds_py-0.27.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:08f1e20bccf73b08d12d804d6e1c22ca5530e71659e6673bce31a6bb71c1e73f"},
+ {file = "rpds_py-0.27.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0dc5dceeaefcc96dc192e3a80bbe1d6c410c469e97bdd47494a7d930987f18b2"},
+ {file = "rpds_py-0.27.1-cp313-cp313t-manylinux_2_31_riscv64.whl", hash = "sha256:d76f9cc8665acdc0c9177043746775aa7babbf479b5520b78ae4002d889f5c21"},
+ {file = "rpds_py-0.27.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:134fae0e36022edad8290a6661edf40c023562964efea0cc0ec7f5d392d2aaef"},
+ {file = "rpds_py-0.27.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:eb11a4f1b2b63337cfd3b4d110af778a59aae51c81d195768e353d8b52f88081"},
+ {file = "rpds_py-0.27.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:13e608ac9f50a0ed4faec0e90ece76ae33b34c0e8656e3dceb9a7db994c692cd"},
+ {file = "rpds_py-0.27.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:dd2135527aa40f061350c3f8f89da2644de26cd73e4de458e79606384f4f68e7"},
+ {file = "rpds_py-0.27.1-cp313-cp313t-win32.whl", hash = "sha256:3020724ade63fe320a972e2ffd93b5623227e684315adce194941167fee02688"},
+ {file = "rpds_py-0.27.1-cp313-cp313t-win_amd64.whl", hash = "sha256:8ee50c3e41739886606388ba3ab3ee2aae9f35fb23f833091833255a31740797"},
+ {file = "rpds_py-0.27.1-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:acb9aafccaae278f449d9c713b64a9e68662e7799dbd5859e2c6b3c67b56d334"},
+ {file = "rpds_py-0.27.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:b7fb801aa7f845ddf601c49630deeeccde7ce10065561d92729bfe81bd21fb33"},
+ {file = "rpds_py-0.27.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fe0dd05afb46597b9a2e11c351e5e4283c741237e7f617ffb3252780cca9336a"},
+ {file = "rpds_py-0.27.1-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b6dfb0e058adb12d8b1d1b25f686e94ffa65d9995a5157afe99743bf7369d62b"},
+ {file = "rpds_py-0.27.1-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ed090ccd235f6fa8bb5861684567f0a83e04f52dfc2e5c05f2e4b1309fcf85e7"},
+ {file = "rpds_py-0.27.1-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bf876e79763eecf3e7356f157540d6a093cef395b65514f17a356f62af6cc136"},
+ {file = "rpds_py-0.27.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:12ed005216a51b1d6e2b02a7bd31885fe317e45897de81d86dcce7d74618ffff"},
+ {file = "rpds_py-0.27.1-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:ee4308f409a40e50593c7e3bb8cbe0b4d4c66d1674a316324f0c2f5383b486f9"},
+ {file = "rpds_py-0.27.1-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0b08d152555acf1f455154d498ca855618c1378ec810646fcd7c76416ac6dc60"},
+ {file = "rpds_py-0.27.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:dce51c828941973a5684d458214d3a36fcd28da3e1875d659388f4f9f12cc33e"},
+ {file = "rpds_py-0.27.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:c1476d6f29eb81aa4151c9a31219b03f1f798dc43d8af1250a870735516a1212"},
+ {file = "rpds_py-0.27.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:3ce0cac322b0d69b63c9cdb895ee1b65805ec9ffad37639f291dd79467bee675"},
+ {file = "rpds_py-0.27.1-cp314-cp314-win32.whl", hash = "sha256:dfbfac137d2a3d0725758cd141f878bf4329ba25e34979797c89474a89a8a3a3"},
+ {file = "rpds_py-0.27.1-cp314-cp314-win_amd64.whl", hash = "sha256:a6e57b0abfe7cc513450fcf529eb486b6e4d3f8aee83e92eb5f1ef848218d456"},
+ {file = "rpds_py-0.27.1-cp314-cp314-win_arm64.whl", hash = "sha256:faf8d146f3d476abfee026c4ae3bdd9ca14236ae4e4c310cbd1cf75ba33d24a3"},
+ {file = "rpds_py-0.27.1-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:ba81d2b56b6d4911ce735aad0a1d4495e808b8ee4dc58715998741a26874e7c2"},
+ {file = "rpds_py-0.27.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:84f7d509870098de0e864cad0102711c1e24e9b1a50ee713b65928adb22269e4"},
+ {file = "rpds_py-0.27.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9e960fc78fecd1100539f14132425e1d5fe44ecb9239f8f27f079962021523e"},
+ {file = "rpds_py-0.27.1-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:62f85b665cedab1a503747617393573995dac4600ff51869d69ad2f39eb5e817"},
+ {file = "rpds_py-0.27.1-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fed467af29776f6556250c9ed85ea5a4dd121ab56a5f8b206e3e7a4c551e48ec"},
+ {file = "rpds_py-0.27.1-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f2729615f9d430af0ae6b36cf042cb55c0936408d543fb691e1a9e36648fd35a"},
+ {file = "rpds_py-0.27.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1b207d881a9aef7ba753d69c123a35d96ca7cb808056998f6b9e8747321f03b8"},
+ {file = "rpds_py-0.27.1-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:639fd5efec029f99b79ae47e5d7e00ad8a773da899b6309f6786ecaf22948c48"},
+ {file = "rpds_py-0.27.1-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fecc80cb2a90e28af8a9b366edacf33d7a91cbfe4c2c4544ea1246e949cfebeb"},
+ {file = "rpds_py-0.27.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:42a89282d711711d0a62d6f57d81aa43a1368686c45bc1c46b7f079d55692734"},
+ {file = "rpds_py-0.27.1-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:cf9931f14223de59551ab9d38ed18d92f14f055a5f78c1d8ad6493f735021bbb"},
+ {file = "rpds_py-0.27.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:f39f58a27cc6e59f432b568ed8429c7e1641324fbe38131de852cd77b2d534b0"},
+ {file = "rpds_py-0.27.1-cp314-cp314t-win32.whl", hash = "sha256:d5fa0ee122dc09e23607a28e6d7b150da16c662e66409bbe85230e4c85bb528a"},
+ {file = "rpds_py-0.27.1-cp314-cp314t-win_amd64.whl", hash = "sha256:6567d2bb951e21232c2f660c24cf3470bb96de56cdcb3f071a83feeaff8a2772"},
+ {file = "rpds_py-0.27.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:c918c65ec2e42c2a78d19f18c553d77319119bf43aa9e2edf7fb78d624355527"},
+ {file = "rpds_py-0.27.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1fea2b1a922c47c51fd07d656324531adc787e415c8b116530a1d29c0516c62d"},
+ {file = "rpds_py-0.27.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bbf94c58e8e0cd6b6f38d8de67acae41b3a515c26169366ab58bdca4a6883bb8"},
+ {file = "rpds_py-0.27.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c2a8fed130ce946d5c585eddc7c8eeef0051f58ac80a8ee43bd17835c144c2cc"},
+ {file = "rpds_py-0.27.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:037a2361db72ee98d829bc2c5b7cc55598ae0a5e0ec1823a56ea99374cfd73c1"},
+ {file = "rpds_py-0.27.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5281ed1cc1d49882f9997981c88df1a22e140ab41df19071222f7e5fc4e72125"},
+ {file = "rpds_py-0.27.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fd50659a069c15eef8aa3d64bbef0d69fd27bb4a50c9ab4f17f83a16cbf8905"},
+ {file = "rpds_py-0.27.1-cp39-cp39-manylinux_2_31_riscv64.whl", hash = "sha256:c4b676c4ae3921649a15d28ed10025548e9b561ded473aa413af749503c6737e"},
+ {file = "rpds_py-0.27.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:079bc583a26db831a985c5257797b2b5d3affb0386e7ff886256762f82113b5e"},
+ {file = "rpds_py-0.27.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:4e44099bd522cba71a2c6b97f68e19f40e7d85399de899d66cdb67b32d7cb786"},
+ {file = "rpds_py-0.27.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:e202e6d4188e53c6661af813b46c37ca2c45e497fc558bacc1a7630ec2695aec"},
+ {file = "rpds_py-0.27.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:f41f814b8eaa48768d1bb551591f6ba45f87ac76899453e8ccd41dba1289b04b"},
+ {file = "rpds_py-0.27.1-cp39-cp39-win32.whl", hash = "sha256:9e71f5a087ead99563c11fdaceee83ee982fd39cf67601f4fd66cb386336ee52"},
+ {file = "rpds_py-0.27.1-cp39-cp39-win_amd64.whl", hash = "sha256:71108900c9c3c8590697244b9519017a400d9ba26a36c48381b3f64743a44aab"},
+ {file = "rpds_py-0.27.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:7ba22cb9693df986033b91ae1d7a979bc399237d45fccf875b76f62bb9e52ddf"},
+ {file = "rpds_py-0.27.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:5b640501be9288c77738b5492b3fd3abc4ba95c50c2e41273c8a1459f08298d3"},
+ {file = "rpds_py-0.27.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb08b65b93e0c6dd70aac7f7890a9c0938d5ec71d5cb32d45cf844fb8ae47636"},
+ {file = "rpds_py-0.27.1-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d7ff07d696a7a38152ebdb8212ca9e5baab56656749f3d6004b34ab726b550b8"},
+ {file = "rpds_py-0.27.1-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fb7c72262deae25366e3b6c0c0ba46007967aea15d1eea746e44ddba8ec58dcc"},
+ {file = "rpds_py-0.27.1-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7b002cab05d6339716b03a4a3a2ce26737f6231d7b523f339fa061d53368c9d8"},
+ {file = "rpds_py-0.27.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23f6b69d1c26c4704fec01311963a41d7de3ee0570a84ebde4d544e5a1859ffc"},
+ {file = "rpds_py-0.27.1-pp310-pypy310_pp73-manylinux_2_31_riscv64.whl", hash = "sha256:530064db9146b247351f2a0250b8f00b289accea4596a033e94be2389977de71"},
+ {file = "rpds_py-0.27.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7b90b0496570bd6b0321724a330d8b545827c4df2034b6ddfc5f5275f55da2ad"},
+ {file = "rpds_py-0.27.1-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:879b0e14a2da6a1102a3fc8af580fc1ead37e6d6692a781bd8c83da37429b5ab"},
+ {file = "rpds_py-0.27.1-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:0d807710df3b5faa66c731afa162ea29717ab3be17bdc15f90f2d9f183da4059"},
+ {file = "rpds_py-0.27.1-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:3adc388fc3afb6540aec081fa59e6e0d3908722771aa1e37ffe22b220a436f0b"},
+ {file = "rpds_py-0.27.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:c796c0c1cc68cb08b0284db4229f5af76168172670c74908fdbd4b7d7f515819"},
+ {file = "rpds_py-0.27.1-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:cdfe4bb2f9fe7458b7453ad3c33e726d6d1c7c0a72960bcc23800d77384e42df"},
+ {file = "rpds_py-0.27.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:8fabb8fd848a5f75a2324e4a84501ee3a5e3c78d8603f83475441866e60b94a3"},
+ {file = "rpds_py-0.27.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eda8719d598f2f7f3e0f885cba8646644b55a187762bec091fa14a2b819746a9"},
+ {file = "rpds_py-0.27.1-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3c64d07e95606ec402a0a1c511fe003873fa6af630bda59bac77fac8b4318ebc"},
+ {file = "rpds_py-0.27.1-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:93a2ed40de81bcff59aabebb626562d48332f3d028ca2036f1d23cbb52750be4"},
+ {file = "rpds_py-0.27.1-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:387ce8c44ae94e0ec50532d9cb0edce17311024c9794eb196b90e1058aadeb66"},
+ {file = "rpds_py-0.27.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aaf94f812c95b5e60ebaf8bfb1898a7d7cb9c1af5744d4a67fa47796e0465d4e"},
+ {file = "rpds_py-0.27.1-pp311-pypy311_pp73-manylinux_2_31_riscv64.whl", hash = "sha256:4848ca84d6ded9b58e474dfdbad4b8bfb450344c0551ddc8d958bf4b36aa837c"},
+ {file = "rpds_py-0.27.1-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2bde09cbcf2248b73c7c323be49b280180ff39fadcfe04e7b6f54a678d02a7cf"},
+ {file = "rpds_py-0.27.1-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:94c44ee01fd21c9058f124d2d4f0c9dc7634bec93cd4b38eefc385dabe71acbf"},
+ {file = "rpds_py-0.27.1-pp311-pypy311_pp73-musllinux_1_2_i686.whl", hash = "sha256:df8b74962e35c9249425d90144e721eed198e6555a0e22a563d29fe4486b51f6"},
+ {file = "rpds_py-0.27.1-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:dc23e6820e3b40847e2f4a7726462ba0cf53089512abe9ee16318c366494c17a"},
+ {file = "rpds_py-0.27.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:aa8933159edc50be265ed22b401125c9eebff3171f570258854dbce3ecd55475"},
+ {file = "rpds_py-0.27.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:a50431bf02583e21bf273c71b89d710e7a710ad5e39c725b14e685610555926f"},
+ {file = "rpds_py-0.27.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78af06ddc7fe5cc0e967085a9115accee665fb912c22a3f54bad70cc65b05fe6"},
+ {file = "rpds_py-0.27.1-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:70d0738ef8fee13c003b100c2fbd667ec4f133468109b3472d249231108283a3"},
+ {file = "rpds_py-0.27.1-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e2f6fd8a1cea5bbe599b6e78a6e5ee08db434fc8ffea51ff201c8765679698b3"},
+ {file = "rpds_py-0.27.1-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8177002868d1426305bb5de1e138161c2ec9eb2d939be38291d7c431c4712df8"},
+ {file = "rpds_py-0.27.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:008b839781d6c9bf3b6a8984d1d8e56f0ec46dc56df61fd669c49b58ae800400"},
+ {file = "rpds_py-0.27.1-pp39-pypy39_pp73-manylinux_2_31_riscv64.whl", hash = "sha256:a55b9132bb1ade6c734ddd2759c8dc132aa63687d259e725221f106b83a0e485"},
+ {file = "rpds_py-0.27.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a46fdec0083a26415f11d5f236b79fa1291c32aaa4a17684d82f7017a1f818b1"},
+ {file = "rpds_py-0.27.1-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:8a63b640a7845f2bdd232eb0d0a4a2dd939bcdd6c57e6bb134526487f3160ec5"},
+ {file = "rpds_py-0.27.1-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:7e32721e5d4922deaaf963469d795d5bde6093207c52fec719bd22e5d1bedbc4"},
+ {file = "rpds_py-0.27.1-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:2c426b99a068601b5f4623573df7a7c3d72e87533a2dd2253353a03e7502566c"},
+ {file = "rpds_py-0.27.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:4fc9b7fe29478824361ead6e14e4f5aed570d477e06088826537e202d25fe859"},
+ {file = "rpds_py-0.27.1.tar.gz", hash = "sha256:26a1c73171d10b7acccbded82bf6a586ab8203601e565badc74bbbf8bc5a10f8"}
]
[[package]]
@@ -3842,37 +4200,43 @@ test-min = ["pytest (>=8.2.2)", "pytest-cov", "pytest-mock", "pytest-randomly",
[[package]]
name = "scikit-learn"
-version = "1.7.0"
+version = "1.7.2"
description = "A set of python modules for machine learning and data mining"
optional = false
python-versions = ">=3.10"
groups = ["main"]
files = [
- {file = "scikit_learn-1.7.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9fe7f51435f49d97bd41d724bb3e11eeb939882af9c29c931a8002c357e8cdd5"},
- {file = "scikit_learn-1.7.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:d0c93294e1e1acbee2d029b1f2a064f26bd928b284938d51d412c22e0c977eb3"},
- {file = "scikit_learn-1.7.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf3755f25f145186ad8c403312f74fb90df82a4dfa1af19dc96ef35f57237a94"},
- {file = "scikit_learn-1.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2726c8787933add436fb66fb63ad18e8ef342dfb39bbbd19dc1e83e8f828a85a"},
- {file = "scikit_learn-1.7.0-cp310-cp310-win_amd64.whl", hash = "sha256:e2539bb58886a531b6e86a510c0348afaadd25005604ad35966a85c2ec378800"},
- {file = "scikit_learn-1.7.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8ef09b1615e1ad04dc0d0054ad50634514818a8eb3ee3dee99af3bffc0ef5007"},
- {file = "scikit_learn-1.7.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:7d7240c7b19edf6ed93403f43b0fcb0fe95b53bc0b17821f8fb88edab97085ef"},
- {file = "scikit_learn-1.7.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:80bd3bd4e95381efc47073a720d4cbab485fc483966f1709f1fd559afac57ab8"},
- {file = "scikit_learn-1.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9dbe48d69aa38ecfc5a6cda6c5df5abef0c0ebdb2468e92437e2053f84abb8bc"},
- {file = "scikit_learn-1.7.0-cp311-cp311-win_amd64.whl", hash = "sha256:8fa979313b2ffdfa049ed07252dc94038def3ecd49ea2a814db5401c07f1ecfa"},
- {file = "scikit_learn-1.7.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c2c7243d34aaede0efca7a5a96d67fddaebb4ad7e14a70991b9abee9dc5c0379"},
- {file = "scikit_learn-1.7.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:9f39f6a811bf3f15177b66c82cbe0d7b1ebad9f190737dcdef77cfca1ea3c19c"},
- {file = "scikit_learn-1.7.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63017a5f9a74963d24aac7590287149a8d0f1a0799bbe7173c0d8ba1523293c0"},
- {file = "scikit_learn-1.7.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b2f8a0b1e73e9a08b7cc498bb2aeab36cdc1f571f8ab2b35c6e5d1c7115d97d"},
- {file = "scikit_learn-1.7.0-cp312-cp312-win_amd64.whl", hash = "sha256:34cc8d9d010d29fb2b7cbcd5ccc24ffdd80515f65fe9f1e4894ace36b267ce19"},
- {file = "scikit_learn-1.7.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5b7974f1f32bc586c90145df51130e02267e4b7e77cab76165c76cf43faca0d9"},
- {file = "scikit_learn-1.7.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:014e07a23fe02e65f9392898143c542a50b6001dbe89cb867e19688e468d049b"},
- {file = "scikit_learn-1.7.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e7e7ced20582d3a5516fb6f405fd1d254e1f5ce712bfef2589f51326af6346e8"},
- {file = "scikit_learn-1.7.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1babf2511e6ffd695da7a983b4e4d6de45dce39577b26b721610711081850906"},
- {file = "scikit_learn-1.7.0-cp313-cp313-win_amd64.whl", hash = "sha256:5abd2acff939d5bd4701283f009b01496832d50ddafa83c90125a4e41c33e314"},
- {file = "scikit_learn-1.7.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:e39d95a929b112047c25b775035c8c234c5ca67e681ce60d12413afb501129f7"},
- {file = "scikit_learn-1.7.0-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:0521cb460426c56fee7e07f9365b0f45ec8ca7b2d696534ac98bfb85e7ae4775"},
- {file = "scikit_learn-1.7.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:317ca9f83acbde2883bd6bb27116a741bfcb371369706b4f9973cf30e9a03b0d"},
- {file = "scikit_learn-1.7.0-cp313-cp313t-win_amd64.whl", hash = "sha256:126c09740a6f016e815ab985b21e3a0656835414521c81fc1a8da78b679bdb75"},
- {file = "scikit_learn-1.7.0.tar.gz", hash = "sha256:c01e869b15aec88e2cdb73d27f15bdbe03bce8e2fb43afbe77c45d399e73a5a3"}
+ {file = "scikit_learn-1.7.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b33579c10a3081d076ab403df4a4190da4f4432d443521674637677dc91e61f"},
+ {file = "scikit_learn-1.7.2-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:36749fb62b3d961b1ce4fedf08fa57a1986cd409eff2d783bca5d4b9b5fce51c"},
+ {file = "scikit_learn-1.7.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7a58814265dfc52b3295b1900cfb5701589d30a8bb026c7540f1e9d3499d5ec8"},
+ {file = "scikit_learn-1.7.2-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4a847fea807e278f821a0406ca01e387f97653e284ecbd9750e3ee7c90347f18"},
+ {file = "scikit_learn-1.7.2-cp310-cp310-win_amd64.whl", hash = "sha256:ca250e6836d10e6f402436d6463d6c0e4d8e0234cfb6a9a47835bd392b852ce5"},
+ {file = "scikit_learn-1.7.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c7509693451651cd7361d30ce4e86a1347493554f172b1c72a39300fa2aea79e"},
+ {file = "scikit_learn-1.7.2-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:0486c8f827c2e7b64837c731c8feff72c0bd2b998067a8a9cbc10643c31f0fe1"},
+ {file = "scikit_learn-1.7.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:89877e19a80c7b11a2891a27c21c4894fb18e2c2e077815bcade10d34287b20d"},
+ {file = "scikit_learn-1.7.2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8da8bf89d4d79aaec192d2bda62f9b56ae4e5b4ef93b6a56b5de4977e375c1f1"},
+ {file = "scikit_learn-1.7.2-cp311-cp311-win_amd64.whl", hash = "sha256:9b7ed8d58725030568523e937c43e56bc01cadb478fc43c042a9aca1dacb3ba1"},
+ {file = "scikit_learn-1.7.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:8d91a97fa2b706943822398ab943cde71858a50245e31bc71dba62aab1d60a96"},
+ {file = "scikit_learn-1.7.2-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:acbc0f5fd2edd3432a22c69bed78e837c70cf896cd7993d71d51ba6708507476"},
+ {file = "scikit_learn-1.7.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e5bf3d930aee75a65478df91ac1225ff89cd28e9ac7bd1196853a9229b6adb0b"},
+ {file = "scikit_learn-1.7.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b4d6e9deed1a47aca9fe2f267ab8e8fe82ee20b4526b2c0cd9e135cea10feb44"},
+ {file = "scikit_learn-1.7.2-cp312-cp312-win_amd64.whl", hash = "sha256:6088aa475f0785e01bcf8529f55280a3d7d298679f50c0bb70a2364a82d0b290"},
+ {file = "scikit_learn-1.7.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0b7dacaa05e5d76759fb071558a8b5130f4845166d88654a0f9bdf3eb57851b7"},
+ {file = "scikit_learn-1.7.2-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:abebbd61ad9e1deed54cca45caea8ad5f79e1b93173dece40bb8e0c658dbe6fe"},
+ {file = "scikit_learn-1.7.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:502c18e39849c0ea1a5d681af1dbcf15f6cce601aebb657aabbfe84133c1907f"},
+ {file = "scikit_learn-1.7.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7a4c328a71785382fe3fe676a9ecf2c86189249beff90bf85e22bdb7efaf9ae0"},
+ {file = "scikit_learn-1.7.2-cp313-cp313-win_amd64.whl", hash = "sha256:63a9afd6f7b229aad94618c01c252ce9e6fa97918c5ca19c9a17a087d819440c"},
+ {file = "scikit_learn-1.7.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:9acb6c5e867447b4e1390930e3944a005e2cb115922e693c08a323421a6966e8"},
+ {file = "scikit_learn-1.7.2-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:2a41e2a0ef45063e654152ec9d8bcfc39f7afce35b08902bfe290c2498a67a6a"},
+ {file = "scikit_learn-1.7.2-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:98335fb98509b73385b3ab2bd0639b1f610541d3988ee675c670371d6a87aa7c"},
+ {file = "scikit_learn-1.7.2-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:191e5550980d45449126e23ed1d5e9e24b2c68329ee1f691a3987476e115e09c"},
+ {file = "scikit_learn-1.7.2-cp313-cp313t-win_amd64.whl", hash = "sha256:57dc4deb1d3762c75d685507fbd0bc17160144b2f2ba4ccea5dc285ab0d0e973"},
+ {file = "scikit_learn-1.7.2-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fa8f63940e29c82d1e67a45d5297bdebbcb585f5a5a50c4914cc2e852ab77f33"},
+ {file = "scikit_learn-1.7.2-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:f95dc55b7902b91331fa4e5845dd5bde0580c9cd9612b1b2791b7e80c3d32615"},
+ {file = "scikit_learn-1.7.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:9656e4a53e54578ad10a434dc1f993330568cfee176dff07112b8785fb413106"},
+ {file = "scikit_learn-1.7.2-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:96dc05a854add0e50d3f47a1ef21a10a595016da5b007c7d9cd9d0bffd1fcc61"},
+ {file = "scikit_learn-1.7.2-cp314-cp314-win_amd64.whl", hash = "sha256:bb24510ed3f9f61476181e4db51ce801e2ba37541def12dc9333b946fc7a9cf8"},
+ {file = "scikit_learn-1.7.2.tar.gz", hash = "sha256:20e9e49ecd130598f1ca38a1d85090e1a600147b9c02fa6f15d69cb53d968fda"}
]
[package.dependencies]
@@ -3883,7 +4247,7 @@ threadpoolctl = ">=3.1.0"
[package.extras]
benchmark = ["matplotlib (>=3.5.0)", "memory_profiler (>=0.57.0)", "pandas (>=1.4.0)"]
-build = ["cython (>=3.0.10)", "meson-python (>=0.16.0)", "numpy (>=1.22.0)", "scipy (>=1.8.0)"]
+build = ["cython (>=3.0.10)", "meson-python (>=0.17.1)", "numpy (>=1.22.0)", "scipy (>=1.8.0)"]
docs = ["Pillow (>=8.4.0)", "matplotlib (>=3.5.0)", "memory_profiler (>=0.57.0)", "numpydoc (>=1.2.0)", "pandas (>=1.4.0)", "plotly (>=5.14.0)", "polars (>=0.20.30)", "pooch (>=1.6.0)", "pydata-sphinx-theme (>=0.15.3)", "scikit-image (>=0.19.0)", "seaborn (>=0.9.0)", "sphinx (>=7.3.7)", "sphinx-copybutton (>=0.5.2)", "sphinx-design (>=0.5.0)", "sphinx-design (>=0.6.0)", "sphinx-gallery (>=0.17.1)", "sphinx-prompt (>=1.4.0)", "sphinx-remove-toctrees (>=1.0.0.post1)", "sphinxcontrib-sass (>=0.3.4)", "sphinxext-opengraph (>=0.9.1)", "towncrier (>=24.8.0)"]
examples = ["matplotlib (>=3.5.0)", "pandas (>=1.4.0)", "plotly (>=5.14.0)", "pooch (>=1.6.0)", "scikit-image (>=0.19.0)", "seaborn (>=0.9.0)"]
install = ["joblib (>=1.2.0)", "numpy (>=1.22.0)", "scipy (>=1.8.0)", "threadpoolctl (>=3.1.0)"]
@@ -3892,67 +4256,54 @@ tests = ["matplotlib (>=3.5.0)", "mypy (>=1.15)", "numpydoc (>=1.2.0)", "pandas
[[package]]
name = "scipy"
-version = "1.15.3"
+version = "1.14.1"
description = "Fundamental algorithms for scientific computing in Python"
optional = false
python-versions = ">=3.10"
groups = ["main"]
files = [
- {file = "scipy-1.15.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:a345928c86d535060c9c2b25e71e87c39ab2f22fc96e9636bd74d1dbf9de448c"},
- {file = "scipy-1.15.3-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:ad3432cb0f9ed87477a8d97f03b763fd1d57709f1bbde3c9369b1dff5503b253"},
- {file = "scipy-1.15.3-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:aef683a9ae6eb00728a542b796f52a5477b78252edede72b8327a886ab63293f"},
- {file = "scipy-1.15.3-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:1c832e1bd78dea67d5c16f786681b28dd695a8cb1fb90af2e27580d3d0967e92"},
- {file = "scipy-1.15.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:263961f658ce2165bbd7b99fa5135195c3a12d9bef045345016b8b50c315cb82"},
- {file = "scipy-1.15.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e2abc762b0811e09a0d3258abee2d98e0c703eee49464ce0069590846f31d40"},
- {file = "scipy-1.15.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ed7284b21a7a0c8f1b6e5977ac05396c0d008b89e05498c8b7e8f4a1423bba0e"},
- {file = "scipy-1.15.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5380741e53df2c566f4d234b100a484b420af85deb39ea35a1cc1be84ff53a5c"},
- {file = "scipy-1.15.3-cp310-cp310-win_amd64.whl", hash = "sha256:9d61e97b186a57350f6d6fd72640f9e99d5a4a2b8fbf4b9ee9a841eab327dc13"},
- {file = "scipy-1.15.3-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:993439ce220d25e3696d1b23b233dd010169b62f6456488567e830654ee37a6b"},
- {file = "scipy-1.15.3-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:34716e281f181a02341ddeaad584205bd2fd3c242063bd3423d61ac259ca7eba"},
- {file = "scipy-1.15.3-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3b0334816afb8b91dab859281b1b9786934392aa3d527cd847e41bb6f45bee65"},
- {file = "scipy-1.15.3-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:6db907c7368e3092e24919b5e31c76998b0ce1684d51a90943cb0ed1b4ffd6c1"},
- {file = "scipy-1.15.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:721d6b4ef5dc82ca8968c25b111e307083d7ca9091bc38163fb89243e85e3889"},
- {file = "scipy-1.15.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39cb9c62e471b1bb3750066ecc3a3f3052b37751c7c3dfd0fd7e48900ed52982"},
- {file = "scipy-1.15.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:795c46999bae845966368a3c013e0e00947932d68e235702b5c3f6ea799aa8c9"},
- {file = "scipy-1.15.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:18aaacb735ab38b38db42cb01f6b92a2d0d4b6aabefeb07f02849e47f8fb3594"},
- {file = "scipy-1.15.3-cp311-cp311-win_amd64.whl", hash = "sha256:ae48a786a28412d744c62fd7816a4118ef97e5be0bee968ce8f0a2fba7acf3bb"},
- {file = "scipy-1.15.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6ac6310fdbfb7aa6612408bd2f07295bcbd3fda00d2d702178434751fe48e019"},
- {file = "scipy-1.15.3-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:185cd3d6d05ca4b44a8f1595af87f9c372bb6acf9c808e99aa3e9aa03bd98cf6"},
- {file = "scipy-1.15.3-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:05dc6abcd105e1a29f95eada46d4a3f251743cfd7d3ae8ddb4088047f24ea477"},
- {file = "scipy-1.15.3-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:06efcba926324df1696931a57a176c80848ccd67ce6ad020c810736bfd58eb1c"},
- {file = "scipy-1.15.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c05045d8b9bfd807ee1b9f38761993297b10b245f012b11b13b91ba8945f7e45"},
- {file = "scipy-1.15.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:271e3713e645149ea5ea3e97b57fdab61ce61333f97cfae392c28ba786f9bb49"},
- {file = "scipy-1.15.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6cfd56fc1a8e53f6e89ba3a7a7251f7396412d655bca2aa5611c8ec9a6784a1e"},
- {file = "scipy-1.15.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0ff17c0bb1cb32952c09217d8d1eed9b53d1463e5f1dd6052c7857f83127d539"},
- {file = "scipy-1.15.3-cp312-cp312-win_amd64.whl", hash = "sha256:52092bc0472cfd17df49ff17e70624345efece4e1a12b23783a1ac59a1b728ed"},
- {file = "scipy-1.15.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2c620736bcc334782e24d173c0fdbb7590a0a436d2fdf39310a8902505008759"},
- {file = "scipy-1.15.3-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:7e11270a000969409d37ed399585ee530b9ef6aa99d50c019de4cb01e8e54e62"},
- {file = "scipy-1.15.3-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:8c9ed3ba2c8a2ce098163a9bdb26f891746d02136995df25227a20e71c396ebb"},
- {file = "scipy-1.15.3-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:0bdd905264c0c9cfa74a4772cdb2070171790381a5c4d312c973382fc6eaf730"},
- {file = "scipy-1.15.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79167bba085c31f38603e11a267d862957cbb3ce018d8b38f79ac043bc92d825"},
- {file = "scipy-1.15.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9deabd6d547aee2c9a81dee6cc96c6d7e9a9b1953f74850c179f91fdc729cb7"},
- {file = "scipy-1.15.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:dde4fc32993071ac0c7dd2d82569e544f0bdaff66269cb475e0f369adad13f11"},
- {file = "scipy-1.15.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f77f853d584e72e874d87357ad70f44b437331507d1c311457bed8ed2b956126"},
- {file = "scipy-1.15.3-cp313-cp313-win_amd64.whl", hash = "sha256:b90ab29d0c37ec9bf55424c064312930ca5f4bde15ee8619ee44e69319aab163"},
- {file = "scipy-1.15.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3ac07623267feb3ae308487c260ac684b32ea35fd81e12845039952f558047b8"},
- {file = "scipy-1.15.3-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:6487aa99c2a3d509a5227d9a5e889ff05830a06b2ce08ec30df6d79db5fcd5c5"},
- {file = "scipy-1.15.3-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:50f9e62461c95d933d5c5ef4a1f2ebf9a2b4e83b0db374cb3f1de104d935922e"},
- {file = "scipy-1.15.3-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:14ed70039d182f411ffc74789a16df3835e05dc469b898233a245cdfd7f162cb"},
- {file = "scipy-1.15.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a769105537aa07a69468a0eefcd121be52006db61cdd8cac8a0e68980bbb723"},
- {file = "scipy-1.15.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9db984639887e3dffb3928d118145ffe40eff2fa40cb241a306ec57c219ebbbb"},
- {file = "scipy-1.15.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:40e54d5c7e7ebf1aa596c374c49fa3135f04648a0caabcb66c52884b943f02b4"},
- {file = "scipy-1.15.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:5e721fed53187e71d0ccf382b6bf977644c533e506c4d33c3fb24de89f5c3ed5"},
- {file = "scipy-1.15.3-cp313-cp313t-win_amd64.whl", hash = "sha256:76ad1fb5f8752eabf0fa02e4cc0336b4e8f021e2d5f061ed37d6d264db35e3ca"},
- {file = "scipy-1.15.3.tar.gz", hash = "sha256:eae3cf522bc7df64b42cad3925c876e1b0b6c35c1337c93e12c0f366f55b0eaf"}
+ {file = "scipy-1.14.1-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:b28d2ca4add7ac16ae8bb6632a3c86e4b9e4d52d3e34267f6e1b0c1f8d87e389"},
+ {file = "scipy-1.14.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:d0d2821003174de06b69e58cef2316a6622b60ee613121199cb2852a873f8cf3"},
+ {file = "scipy-1.14.1-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:8bddf15838ba768bb5f5083c1ea012d64c9a444e16192762bd858f1e126196d0"},
+ {file = "scipy-1.14.1-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:97c5dddd5932bd2a1a31c927ba5e1463a53b87ca96b5c9bdf5dfd6096e27efc3"},
+ {file = "scipy-1.14.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2ff0a7e01e422c15739ecd64432743cf7aae2b03f3084288f399affcefe5222d"},
+ {file = "scipy-1.14.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e32dced201274bf96899e6491d9ba3e9a5f6b336708656466ad0522d8528f69"},
+ {file = "scipy-1.14.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8426251ad1e4ad903a4514712d2fa8fdd5382c978010d1c6f5f37ef286a713ad"},
+ {file = "scipy-1.14.1-cp310-cp310-win_amd64.whl", hash = "sha256:a49f6ed96f83966f576b33a44257d869756df6cf1ef4934f59dd58b25e0327e5"},
+ {file = "scipy-1.14.1-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:2da0469a4ef0ecd3693761acbdc20f2fdeafb69e6819cc081308cc978153c675"},
+ {file = "scipy-1.14.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:c0ee987efa6737242745f347835da2cc5bb9f1b42996a4d97d5c7ff7928cb6f2"},
+ {file = "scipy-1.14.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3a1b111fac6baec1c1d92f27e76511c9e7218f1695d61b59e05e0fe04dc59617"},
+ {file = "scipy-1.14.1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:8475230e55549ab3f207bff11ebfc91c805dc3463ef62eda3ccf593254524ce8"},
+ {file = "scipy-1.14.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:278266012eb69f4a720827bdd2dc54b2271c97d84255b2faaa8f161a158c3b37"},
+ {file = "scipy-1.14.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fef8c87f8abfb884dac04e97824b61299880c43f4ce675dd2cbeadd3c9b466d2"},
+ {file = "scipy-1.14.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b05d43735bb2f07d689f56f7b474788a13ed8adc484a85aa65c0fd931cf9ccd2"},
+ {file = "scipy-1.14.1-cp311-cp311-win_amd64.whl", hash = "sha256:716e389b694c4bb564b4fc0c51bc84d381735e0d39d3f26ec1af2556ec6aad94"},
+ {file = "scipy-1.14.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:631f07b3734d34aced009aaf6fedfd0eb3498a97e581c3b1e5f14a04164a456d"},
+ {file = "scipy-1.14.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:af29a935803cc707ab2ed7791c44288a682f9c8107bc00f0eccc4f92c08d6e07"},
+ {file = "scipy-1.14.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:2843f2d527d9eebec9a43e6b406fb7266f3af25a751aa91d62ff416f54170bc5"},
+ {file = "scipy-1.14.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:eb58ca0abd96911932f688528977858681a59d61a7ce908ffd355957f7025cfc"},
+ {file = "scipy-1.14.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:30ac8812c1d2aab7131a79ba62933a2a76f582d5dbbc695192453dae67ad6310"},
+ {file = "scipy-1.14.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f9ea80f2e65bdaa0b7627fb00cbeb2daf163caa015e59b7516395fe3bd1e066"},
+ {file = "scipy-1.14.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:edaf02b82cd7639db00dbff629995ef185c8df4c3ffa71a5562a595765a06ce1"},
+ {file = "scipy-1.14.1-cp312-cp312-win_amd64.whl", hash = "sha256:2ff38e22128e6c03ff73b6bb0f85f897d2362f8c052e3b8ad00532198fbdae3f"},
+ {file = "scipy-1.14.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1729560c906963fc8389f6aac023739ff3983e727b1a4d87696b7bf108316a79"},
+ {file = "scipy-1.14.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:4079b90df244709e675cdc8b93bfd8a395d59af40b72e339c2287c91860deb8e"},
+ {file = "scipy-1.14.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:e0cf28db0f24a38b2a0ca33a85a54852586e43cf6fd876365c86e0657cfe7d73"},
+ {file = "scipy-1.14.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:0c2f95de3b04e26f5f3ad5bb05e74ba7f68b837133a4492414b3afd79dfe540e"},
+ {file = "scipy-1.14.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b99722ea48b7ea25e8e015e8341ae74624f72e5f21fc2abd45f3a93266de4c5d"},
+ {file = "scipy-1.14.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5149e3fd2d686e42144a093b206aef01932a0059c2a33ddfa67f5f035bdfe13e"},
+ {file = "scipy-1.14.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e4f5a7c49323533f9103d4dacf4e4f07078f360743dec7f7596949149efeec06"},
+ {file = "scipy-1.14.1-cp313-cp313-win_amd64.whl", hash = "sha256:baff393942b550823bfce952bb62270ee17504d02a1801d7fd0719534dfb9c84"},
+ {file = "scipy-1.14.1.tar.gz", hash = "sha256:5a275584e726026a5699459aa72f828a610821006228e841b94275c4a7c08417"}
]
[package.dependencies]
-numpy = ">=1.23.5,<2.5"
+numpy = ">=1.23.5,<2.3"
[package.extras]
dev = ["cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy (==1.10.0)", "pycodestyle", "pydevtool", "rich-click", "ruff (>=0.0.292)", "types-psutil", "typing_extensions"]
-doc = ["intersphinx_registry", "jupyterlite-pyodide-kernel", "jupyterlite-sphinx (>=0.19.1)", "jupytext", "matplotlib (>=3.5)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (>=0.15.2)", "sphinx (>=5.0.0,<8.0.0)", "sphinx-copybutton", "sphinx-design (>=0.4.0)"]
-test = ["Cython", "array-api-strict (>=2.0,<2.1.1)", "asv", "gmpy2", "hypothesis (>=6.30)", "meson", "mpmath", "ninja ; sys_platform != \"emscripten\"", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"]
+doc = ["jupyterlite-pyodide-kernel", "jupyterlite-sphinx (>=0.13.1)", "jupytext", "matplotlib (>=3.5)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (>=0.15.2)", "sphinx (>=5.0.0,<=7.3.7)", "sphinx-design (>=0.4.0)"]
+test = ["Cython", "array-api-strict (>=2.0)", "asv", "gmpy2", "hypothesis (>=6.30)", "meson", "mpmath", "ninja ; sys_platform != \"emscripten\"", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"]
[[package]]
name = "seaborn"
@@ -3995,18 +4346,18 @@ win32 = ["pywin32 ; sys_platform == \"win32\""]
[[package]]
name = "session-info2"
-version = "0.2.2"
+version = "0.2.3"
description = "Print versions of imported packages."
optional = false
python-versions = ">=3.10"
groups = ["main"]
files = [
- {file = "session_info2-0.2.2-py3-none-any.whl", hash = "sha256:3284dc1e6e3fc423770681498bbfea4b1992db756bd0400288aad693d000583d"},
- {file = "session_info2-0.2.2.tar.gz", hash = "sha256:48a2bc0e8fc39d74e49dc2c273346efac2735303bc874ee591190c8dae100f9a"}
+ {file = "session_info2-0.2.3-py3-none-any.whl", hash = "sha256:f211d9930f73b485b727b6c4d8b964fa1b634351b3079393738f42be9b4c7f5e"},
+ {file = "session_info2-0.2.3.tar.gz", hash = "sha256:6d16e3c6bb72ea52e589da4d722d24798aa3511c34ab8446a131d655cba2e2c9"}
]
[package.extras]
-docs = ["furo", "hatch", "ipywidgets", "myst-nb", "numpy", "session-info", "sphinx", "sphinx-autodoc-typehints", "sphinx-codeautolink"]
+docs = ["click (!=8.3)", "furo", "hatch", "ipywidgets", "myst-nb", "numpy", "session-info", "sphinx", "sphinx-autodoc-typehints", "sphinx-codeautolink"]
jupyter = ["ipywidgets"]
notebook = ["ipywidgets", "numpy", "session-info"]
test = ["coverage[toml] (>=6.5)", "ipykernel", "jupyter-client", "pytest", "pytest-asyncio", "pytest-md", "pytest-subprocess", "testing-common-database"]
@@ -4058,85 +4409,85 @@ files = [
[[package]]
name = "soupsieve"
-version = "2.7"
+version = "2.8"
description = "A modern CSS selector implementation for Beautiful Soup."
optional = false
-python-versions = ">=3.8"
+python-versions = ">=3.9"
groups = ["main"]
files = [
- {file = "soupsieve-2.7-py3-none-any.whl", hash = "sha256:6e60cc5c1ffaf1cebcc12e8188320b72071e922c2e897f737cadce79ad5d30c4"},
- {file = "soupsieve-2.7.tar.gz", hash = "sha256:ad282f9b6926286d2ead4750552c8a6142bc4c783fd66b0293547c8fe6ae126a"}
+ {file = "soupsieve-2.8-py3-none-any.whl", hash = "sha256:0cc76456a30e20f5d7f2e14a98a4ae2ee4e5abdc7c5ea0aafe795f344bc7984c"},
+ {file = "soupsieve-2.8.tar.gz", hash = "sha256:e2dd4a40a628cb5f28f6d4b0db8800b8f581b65bb380b97de22ba5ca8d72572f"}
]
[[package]]
name = "sqlalchemy"
-version = "2.0.41"
+version = "2.0.44"
description = "Database Abstraction Library"
optional = false
python-versions = ">=3.7"
groups = ["main"]
files = [
- {file = "SQLAlchemy-2.0.41-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:6854175807af57bdb6425e47adbce7d20a4d79bbfd6f6d6519cd10bb7109a7f8"},
- {file = "SQLAlchemy-2.0.41-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:05132c906066142103b83d9c250b60508af556982a385d96c4eaa9fb9720ac2b"},
- {file = "SQLAlchemy-2.0.41-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b4af17bda11e907c51d10686eda89049f9ce5669b08fbe71a29747f1e876036"},
- {file = "SQLAlchemy-2.0.41-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:c0b0e5e1b5d9f3586601048dd68f392dc0cc99a59bb5faf18aab057ce00d00b2"},
- {file = "SQLAlchemy-2.0.41-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:0b3dbf1e7e9bc95f4bac5e2fb6d3fb2f083254c3fdd20a1789af965caf2d2348"},
- {file = "SQLAlchemy-2.0.41-cp37-cp37m-win32.whl", hash = "sha256:1e3f196a0c59b0cae9a0cd332eb1a4bda4696e863f4f1cf84ab0347992c548c2"},
- {file = "SQLAlchemy-2.0.41-cp37-cp37m-win_amd64.whl", hash = "sha256:6ab60a5089a8f02009f127806f777fca82581c49e127f08413a66056bd9166dd"},
- {file = "sqlalchemy-2.0.41-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b1f09b6821406ea1f94053f346f28f8215e293344209129a9c0fcc3578598d7b"},
- {file = "sqlalchemy-2.0.41-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1936af879e3db023601196a1684d28e12f19ccf93af01bf3280a3262c4b6b4e5"},
- {file = "sqlalchemy-2.0.41-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2ac41acfc8d965fb0c464eb8f44995770239668956dc4cdf502d1b1ffe0d747"},
- {file = "sqlalchemy-2.0.41-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:81c24e0c0fde47a9723c81d5806569cddef103aebbf79dbc9fcbb617153dea30"},
- {file = "sqlalchemy-2.0.41-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:23a8825495d8b195c4aa9ff1c430c28f2c821e8c5e2d98089228af887e5d7e29"},
- {file = "sqlalchemy-2.0.41-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:60c578c45c949f909a4026b7807044e7e564adf793537fc762b2489d522f3d11"},
- {file = "sqlalchemy-2.0.41-cp310-cp310-win32.whl", hash = "sha256:118c16cd3f1b00c76d69343e38602006c9cfb9998fa4f798606d28d63f23beda"},
- {file = "sqlalchemy-2.0.41-cp310-cp310-win_amd64.whl", hash = "sha256:7492967c3386df69f80cf67efd665c0f667cee67032090fe01d7d74b0e19bb08"},
- {file = "sqlalchemy-2.0.41-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6375cd674fe82d7aa9816d1cb96ec592bac1726c11e0cafbf40eeee9a4516b5f"},
- {file = "sqlalchemy-2.0.41-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9f8c9fdd15a55d9465e590a402f42082705d66b05afc3ffd2d2eb3c6ba919560"},
- {file = "sqlalchemy-2.0.41-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:32f9dc8c44acdee06c8fc6440db9eae8b4af8b01e4b1aee7bdd7241c22edff4f"},
- {file = "sqlalchemy-2.0.41-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90c11ceb9a1f482c752a71f203a81858625d8df5746d787a4786bca4ffdf71c6"},
- {file = "sqlalchemy-2.0.41-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:911cc493ebd60de5f285bcae0491a60b4f2a9f0f5c270edd1c4dbaef7a38fc04"},
- {file = "sqlalchemy-2.0.41-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:03968a349db483936c249f4d9cd14ff2c296adfa1290b660ba6516f973139582"},
- {file = "sqlalchemy-2.0.41-cp311-cp311-win32.whl", hash = "sha256:293cd444d82b18da48c9f71cd7005844dbbd06ca19be1ccf6779154439eec0b8"},
- {file = "sqlalchemy-2.0.41-cp311-cp311-win_amd64.whl", hash = "sha256:3d3549fc3e40667ec7199033a4e40a2f669898a00a7b18a931d3efb4c7900504"},
- {file = "sqlalchemy-2.0.41-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:81f413674d85cfd0dfcd6512e10e0f33c19c21860342a4890c3a2b59479929f9"},
- {file = "sqlalchemy-2.0.41-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:598d9ebc1e796431bbd068e41e4de4dc34312b7aa3292571bb3674a0cb415dd1"},
- {file = "sqlalchemy-2.0.41-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a104c5694dfd2d864a6f91b0956eb5d5883234119cb40010115fd45a16da5e70"},
- {file = "sqlalchemy-2.0.41-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6145afea51ff0af7f2564a05fa95eb46f542919e6523729663a5d285ecb3cf5e"},
- {file = "sqlalchemy-2.0.41-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:b46fa6eae1cd1c20e6e6f44e19984d438b6b2d8616d21d783d150df714f44078"},
- {file = "sqlalchemy-2.0.41-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:41836fe661cc98abfae476e14ba1906220f92c4e528771a8a3ae6a151242d2ae"},
- {file = "sqlalchemy-2.0.41-cp312-cp312-win32.whl", hash = "sha256:a8808d5cf866c781150d36a3c8eb3adccfa41a8105d031bf27e92c251e3969d6"},
- {file = "sqlalchemy-2.0.41-cp312-cp312-win_amd64.whl", hash = "sha256:5b14e97886199c1f52c14629c11d90c11fbb09e9334fa7bb5f6d068d9ced0ce0"},
- {file = "sqlalchemy-2.0.41-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4eeb195cdedaf17aab6b247894ff2734dcead6c08f748e617bfe05bd5a218443"},
- {file = "sqlalchemy-2.0.41-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d4ae769b9c1c7757e4ccce94b0641bc203bbdf43ba7a2413ab2523d8d047d8dc"},
- {file = "sqlalchemy-2.0.41-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a62448526dd9ed3e3beedc93df9bb6b55a436ed1474db31a2af13b313a70a7e1"},
- {file = "sqlalchemy-2.0.41-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc56c9788617b8964ad02e8fcfeed4001c1f8ba91a9e1f31483c0dffb207002a"},
- {file = "sqlalchemy-2.0.41-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c153265408d18de4cc5ded1941dcd8315894572cddd3c58df5d5b5705b3fa28d"},
- {file = "sqlalchemy-2.0.41-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4f67766965996e63bb46cfbf2ce5355fc32d9dd3b8ad7e536a920ff9ee422e23"},
- {file = "sqlalchemy-2.0.41-cp313-cp313-win32.whl", hash = "sha256:bfc9064f6658a3d1cadeaa0ba07570b83ce6801a1314985bf98ec9b95d74e15f"},
- {file = "sqlalchemy-2.0.41-cp313-cp313-win_amd64.whl", hash = "sha256:82ca366a844eb551daff9d2e6e7a9e5e76d2612c8564f58db6c19a726869c1df"},
- {file = "sqlalchemy-2.0.41-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:90144d3b0c8b139408da50196c5cad2a6909b51b23df1f0538411cd23ffa45d3"},
- {file = "sqlalchemy-2.0.41-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:023b3ee6169969beea3bb72312e44d8b7c27c75b347942d943cf49397b7edeb5"},
- {file = "sqlalchemy-2.0.41-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:725875a63abf7c399d4548e686debb65cdc2549e1825437096a0af1f7e374814"},
- {file = "sqlalchemy-2.0.41-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:81965cc20848ab06583506ef54e37cf15c83c7e619df2ad16807c03100745dea"},
- {file = "sqlalchemy-2.0.41-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:dd5ec3aa6ae6e4d5b5de9357d2133c07be1aff6405b136dad753a16afb6717dd"},
- {file = "sqlalchemy-2.0.41-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:ff8e80c4c4932c10493ff97028decfdb622de69cae87e0f127a7ebe32b4069c6"},
- {file = "sqlalchemy-2.0.41-cp38-cp38-win32.whl", hash = "sha256:4d44522480e0bf34c3d63167b8cfa7289c1c54264c2950cc5fc26e7850967e45"},
- {file = "sqlalchemy-2.0.41-cp38-cp38-win_amd64.whl", hash = "sha256:81eedafa609917040d39aa9332e25881a8e7a0862495fcdf2023a9667209deda"},
- {file = "sqlalchemy-2.0.41-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9a420a91913092d1e20c86a2f5f1fc85c1a8924dbcaf5e0586df8aceb09c9cc2"},
- {file = "sqlalchemy-2.0.41-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:906e6b0d7d452e9a98e5ab8507c0da791856b2380fdee61b765632bb8698026f"},
- {file = "sqlalchemy-2.0.41-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a373a400f3e9bac95ba2a06372c4fd1412a7cee53c37fc6c05f829bf672b8769"},
- {file = "sqlalchemy-2.0.41-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:087b6b52de812741c27231b5a3586384d60c353fbd0e2f81405a814b5591dc8b"},
- {file = "sqlalchemy-2.0.41-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:34ea30ab3ec98355235972dadc497bb659cc75f8292b760394824fab9cf39826"},
- {file = "sqlalchemy-2.0.41-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:8280856dd7c6a68ab3a164b4a4b1c51f7691f6d04af4d4ca23d6ecf2261b7923"},
- {file = "sqlalchemy-2.0.41-cp39-cp39-win32.whl", hash = "sha256:b50eab9994d64f4a823ff99a0ed28a6903224ddbe7fef56a6dd865eec9243440"},
- {file = "sqlalchemy-2.0.41-cp39-cp39-win_amd64.whl", hash = "sha256:5e22575d169529ac3e0a120cf050ec9daa94b6a9597993d1702884f6954a7d71"},
- {file = "sqlalchemy-2.0.41-py3-none-any.whl", hash = "sha256:57df5dc6fdb5ed1a88a1ed2195fd31927e705cad62dedd86b46972752a80f576"},
- {file = "sqlalchemy-2.0.41.tar.gz", hash = "sha256:edba70118c4be3c2b1f90754d308d0b79c6fe2c0fdc52d8ddf603916f83f4db9"}
+ {file = "SQLAlchemy-2.0.44-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:471733aabb2e4848d609141a9e9d56a427c0a038f4abf65dd19d7a21fd563632"},
+ {file = "SQLAlchemy-2.0.44-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:48bf7d383a35e668b984c805470518b635d48b95a3c57cb03f37eaa3551b5f9f"},
+ {file = "SQLAlchemy-2.0.44-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bf4bb6b3d6228fcf3a71b50231199fb94d2dd2611b66d33be0578ea3e6c2726"},
+ {file = "SQLAlchemy-2.0.44-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:e998cf7c29473bd077704cea3577d23123094311f59bdc4af551923b168332b1"},
+ {file = "SQLAlchemy-2.0.44-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:ebac3f0b5732014a126b43c2b7567f2f0e0afea7d9119a3378bde46d3dcad88e"},
+ {file = "SQLAlchemy-2.0.44-cp37-cp37m-win32.whl", hash = "sha256:3255d821ee91bdf824795e936642bbf43a4c7cedf5d1aed8d24524e66843aa74"},
+ {file = "SQLAlchemy-2.0.44-cp37-cp37m-win_amd64.whl", hash = "sha256:78e6c137ba35476adb5432103ae1534f2f5295605201d946a4198a0dea4b38e7"},
+ {file = "sqlalchemy-2.0.44-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7c77f3080674fc529b1bd99489378c7f63fcb4ba7f8322b79732e0258f0ea3ce"},
+ {file = "sqlalchemy-2.0.44-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4c26ef74ba842d61635b0152763d057c8d48215d5be9bb8b7604116a059e9985"},
+ {file = "sqlalchemy-2.0.44-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f4a172b31785e2f00780eccab00bc240ccdbfdb8345f1e6063175b3ff12ad1b0"},
+ {file = "sqlalchemy-2.0.44-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f9480c0740aabd8cb29c329b422fb65358049840b34aba0adf63162371d2a96e"},
+ {file = "sqlalchemy-2.0.44-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:17835885016b9e4d0135720160db3095dc78c583e7b902b6be799fb21035e749"},
+ {file = "sqlalchemy-2.0.44-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cbe4f85f50c656d753890f39468fcd8190c5f08282caf19219f684225bfd5fd2"},
+ {file = "sqlalchemy-2.0.44-cp310-cp310-win32.whl", hash = "sha256:2fcc4901a86ed81dc76703f3b93ff881e08761c63263c46991081fd7f034b165"},
+ {file = "sqlalchemy-2.0.44-cp310-cp310-win_amd64.whl", hash = "sha256:9919e77403a483ab81e3423151e8ffc9dd992c20d2603bf17e4a8161111e55f5"},
+ {file = "sqlalchemy-2.0.44-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0fe3917059c7ab2ee3f35e77757062b1bea10a0b6ca633c58391e3f3c6c488dd"},
+ {file = "sqlalchemy-2.0.44-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:de4387a354ff230bc979b46b2207af841dc8bf29847b6c7dbe60af186d97aefa"},
+ {file = "sqlalchemy-2.0.44-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c3678a0fb72c8a6a29422b2732fe423db3ce119c34421b5f9955873eb9b62c1e"},
+ {file = "sqlalchemy-2.0.44-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3cf6872a23601672d61a68f390e44703442639a12ee9dd5a88bbce52a695e46e"},
+ {file = "sqlalchemy-2.0.44-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:329aa42d1be9929603f406186630135be1e7a42569540577ba2c69952b7cf399"},
+ {file = "sqlalchemy-2.0.44-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:70e03833faca7166e6a9927fbee7c27e6ecde436774cd0b24bbcc96353bce06b"},
+ {file = "sqlalchemy-2.0.44-cp311-cp311-win32.whl", hash = "sha256:253e2f29843fb303eca6b2fc645aca91fa7aa0aa70b38b6950da92d44ff267f3"},
+ {file = "sqlalchemy-2.0.44-cp311-cp311-win_amd64.whl", hash = "sha256:7a8694107eb4308a13b425ca8c0e67112f8134c846b6e1f722698708741215d5"},
+ {file = "sqlalchemy-2.0.44-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:72fea91746b5890f9e5e0997f16cbf3d53550580d76355ba2d998311b17b2250"},
+ {file = "sqlalchemy-2.0.44-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:585c0c852a891450edbb1eaca8648408a3cc125f18cf433941fa6babcc359e29"},
+ {file = "sqlalchemy-2.0.44-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9b94843a102efa9ac68a7a30cd46df3ff1ed9c658100d30a725d10d9c60a2f44"},
+ {file = "sqlalchemy-2.0.44-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:119dc41e7a7defcefc57189cfa0e61b1bf9c228211aba432b53fb71ef367fda1"},
+ {file = "sqlalchemy-2.0.44-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0765e318ee9179b3718c4fd7ba35c434f4dd20332fbc6857a5e8df17719c24d7"},
+ {file = "sqlalchemy-2.0.44-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2e7b5b079055e02d06a4308d0481658e4f06bc7ef211567edc8f7d5dce52018d"},
+ {file = "sqlalchemy-2.0.44-cp312-cp312-win32.whl", hash = "sha256:846541e58b9a81cce7dee8329f352c318de25aa2f2bbe1e31587eb1f057448b4"},
+ {file = "sqlalchemy-2.0.44-cp312-cp312-win_amd64.whl", hash = "sha256:7cbcb47fd66ab294703e1644f78971f6f2f1126424d2b300678f419aa73c7b6e"},
+ {file = "sqlalchemy-2.0.44-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ff486e183d151e51b1d694c7aa1695747599bb00b9f5f604092b54b74c64a8e1"},
+ {file = "sqlalchemy-2.0.44-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0b1af8392eb27b372ddb783b317dea0f650241cea5bd29199b22235299ca2e45"},
+ {file = "sqlalchemy-2.0.44-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2b61188657e3a2b9ac4e8f04d6cf8e51046e28175f79464c67f2fd35bceb0976"},
+ {file = "sqlalchemy-2.0.44-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b87e7b91a5d5973dda5f00cd61ef72ad75a1db73a386b62877d4875a8840959c"},
+ {file = "sqlalchemy-2.0.44-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:15f3326f7f0b2bfe406ee562e17f43f36e16167af99c4c0df61db668de20002d"},
+ {file = "sqlalchemy-2.0.44-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1e77faf6ff919aa8cd63f1c4e561cac1d9a454a191bb864d5dd5e545935e5a40"},
+ {file = "sqlalchemy-2.0.44-cp313-cp313-win32.whl", hash = "sha256:ee51625c2d51f8baadf2829fae817ad0b66b140573939dd69284d2ba3553ae73"},
+ {file = "sqlalchemy-2.0.44-cp313-cp313-win_amd64.whl", hash = "sha256:c1c80faaee1a6c3428cecf40d16a2365bcf56c424c92c2b6f0f9ad204b899e9e"},
+ {file = "sqlalchemy-2.0.44-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2fc44e5965ea46909a416fff0af48a219faefd5773ab79e5f8a5fcd5d62b2667"},
+ {file = "sqlalchemy-2.0.44-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:dc8b3850d2a601ca2320d081874033684e246d28e1c5e89db0864077cfc8f5a9"},
+ {file = "sqlalchemy-2.0.44-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d733dec0614bb8f4bcb7c8af88172b974f685a31dc3a65cca0527e3120de5606"},
+ {file = "sqlalchemy-2.0.44-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:22be14009339b8bc16d6b9dc8780bacaba3402aa7581658e246114abbd2236e3"},
+ {file = "sqlalchemy-2.0.44-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:357bade0e46064f88f2c3a99808233e67b0051cdddf82992379559322dfeb183"},
+ {file = "sqlalchemy-2.0.44-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:4848395d932e93c1595e59a8672aa7400e8922c39bb9b0668ed99ac6fa867822"},
+ {file = "sqlalchemy-2.0.44-cp38-cp38-win32.whl", hash = "sha256:2f19644f27c76f07e10603580a47278abb2a70311136a7f8fd27dc2e096b9013"},
+ {file = "sqlalchemy-2.0.44-cp38-cp38-win_amd64.whl", hash = "sha256:1df4763760d1de0dfc8192cc96d8aa293eb1a44f8f7a5fbe74caf1b551905c5e"},
+ {file = "sqlalchemy-2.0.44-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f7027414f2b88992877573ab780c19ecb54d3a536bef3397933573d6b5068be4"},
+ {file = "sqlalchemy-2.0.44-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3fe166c7d00912e8c10d3a9a0ce105569a31a3d0db1a6e82c4e0f4bf16d5eca9"},
+ {file = "sqlalchemy-2.0.44-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3caef1ff89b1caefc28f0368b3bde21a7e3e630c2eddac16abd9e47bd27cc36a"},
+ {file = "sqlalchemy-2.0.44-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc2856d24afa44295735e72f3c75d6ee7fdd4336d8d3a8f3d44de7aa6b766df2"},
+ {file = "sqlalchemy-2.0.44-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:11bac86b0deada30b6b5f93382712ff0e911fe8d31cb9bf46e6b149ae175eff0"},
+ {file = "sqlalchemy-2.0.44-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:4d18cd0e9a0f37c9f4088e50e3839fcb69a380a0ec957408e0b57cff08ee0a26"},
+ {file = "sqlalchemy-2.0.44-cp39-cp39-win32.whl", hash = "sha256:9e9018544ab07614d591a26c1bd4293ddf40752cc435caf69196740516af7100"},
+ {file = "sqlalchemy-2.0.44-cp39-cp39-win_amd64.whl", hash = "sha256:8e0e4e66fd80f277a8c3de016a81a554e76ccf6b8d881ee0b53200305a8433f6"},
+ {file = "sqlalchemy-2.0.44-py3-none-any.whl", hash = "sha256:19de7ca1246fbef9f9d1bff8f1ab25641569df226364a0e40457dc5457c54b05"},
+ {file = "sqlalchemy-2.0.44.tar.gz", hash = "sha256:0ae7454e1ab1d780aee69fd2aae7d6b8670a581d8847f2d1e0f7ddfbf47e5a22"}
]
[package.dependencies]
-greenlet = {version = ">=1", markers = "python_version < \"3.14\" and (platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\")"}
+greenlet = {version = ">=1", markers = "platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\""}
typing-extensions = ">=4.6.0"
[package.extras]
@@ -4303,67 +4654,77 @@ test = ["pytest", "ruff"]
[[package]]
name = "tomli"
-version = "2.2.1"
+version = "2.3.0"
description = "A lil' TOML parser"
optional = false
python-versions = ">=3.8"
groups = ["main", "dev"]
markers = "python_version == \"3.10\""
files = [
- {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"},
- {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"},
- {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a"},
- {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee"},
- {file = "tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e"},
- {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4"},
- {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106"},
- {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8"},
- {file = "tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff"},
- {file = "tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b"},
- {file = "tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea"},
- {file = "tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8"},
- {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192"},
- {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222"},
- {file = "tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77"},
- {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6"},
- {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd"},
- {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e"},
- {file = "tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98"},
- {file = "tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4"},
- {file = "tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7"},
- {file = "tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c"},
- {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13"},
- {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281"},
- {file = "tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272"},
- {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140"},
- {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2"},
- {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744"},
- {file = "tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec"},
- {file = "tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69"},
- {file = "tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc"},
- {file = "tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff"}
+ {file = "tomli-2.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:88bd15eb972f3664f5ed4b57c1634a97153b4bac4479dcb6a495f41921eb7f45"},
+ {file = "tomli-2.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:883b1c0d6398a6a9d29b508c331fa56adbcdff647f6ace4dfca0f50e90dfd0ba"},
+ {file = "tomli-2.3.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d1381caf13ab9f300e30dd8feadb3de072aeb86f1d34a8569453ff32a7dea4bf"},
+ {file = "tomli-2.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a0e285d2649b78c0d9027570d4da3425bdb49830a6156121360b3f8511ea3441"},
+ {file = "tomli-2.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0a154a9ae14bfcf5d8917a59b51ffd5a3ac1fd149b71b47a3a104ca4edcfa845"},
+ {file = "tomli-2.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:74bf8464ff93e413514fefd2be591c3b0b23231a77f901db1eb30d6f712fc42c"},
+ {file = "tomli-2.3.0-cp311-cp311-win32.whl", hash = "sha256:00b5f5d95bbfc7d12f91ad8c593a1659b6387b43f054104cda404be6bda62456"},
+ {file = "tomli-2.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:4dc4ce8483a5d429ab602f111a93a6ab1ed425eae3122032db7e9acf449451be"},
+ {file = "tomli-2.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d7d86942e56ded512a594786a5ba0a5e521d02529b3826e7761a05138341a2ac"},
+ {file = "tomli-2.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:73ee0b47d4dad1c5e996e3cd33b8a76a50167ae5f96a2607cbe8cc773506ab22"},
+ {file = "tomli-2.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:792262b94d5d0a466afb5bc63c7daa9d75520110971ee269152083270998316f"},
+ {file = "tomli-2.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4f195fe57ecceac95a66a75ac24d9d5fbc98ef0962e09b2eddec5d39375aae52"},
+ {file = "tomli-2.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e31d432427dcbf4d86958c184b9bfd1e96b5b71f8eb17e6d02531f434fd335b8"},
+ {file = "tomli-2.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7b0882799624980785240ab732537fcfc372601015c00f7fc367c55308c186f6"},
+ {file = "tomli-2.3.0-cp312-cp312-win32.whl", hash = "sha256:ff72b71b5d10d22ecb084d345fc26f42b5143c5533db5e2eaba7d2d335358876"},
+ {file = "tomli-2.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:1cb4ed918939151a03f33d4242ccd0aa5f11b3547d0cf30f7c74a408a5b99878"},
+ {file = "tomli-2.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5192f562738228945d7b13d4930baffda67b69425a7f0da96d360b0a3888136b"},
+ {file = "tomli-2.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:be71c93a63d738597996be9528f4abe628d1adf5e6eb11607bc8fe1a510b5dae"},
+ {file = "tomli-2.3.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c4665508bcbac83a31ff8ab08f424b665200c0e1e645d2bd9ab3d3e557b6185b"},
+ {file = "tomli-2.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4021923f97266babc6ccab9f5068642a0095faa0a51a246a6a02fccbb3514eaf"},
+ {file = "tomli-2.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4ea38c40145a357d513bffad0ed869f13c1773716cf71ccaa83b0fa0cc4e42f"},
+ {file = "tomli-2.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ad805ea85eda330dbad64c7ea7a4556259665bdf9d2672f5dccc740eb9d3ca05"},
+ {file = "tomli-2.3.0-cp313-cp313-win32.whl", hash = "sha256:97d5eec30149fd3294270e889b4234023f2c69747e555a27bd708828353ab606"},
+ {file = "tomli-2.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:0c95ca56fbe89e065c6ead5b593ee64b84a26fca063b5d71a1122bf26e533999"},
+ {file = "tomli-2.3.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:cebc6fe843e0733ee827a282aca4999b596241195f43b4cc371d64fc6639da9e"},
+ {file = "tomli-2.3.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:4c2ef0244c75aba9355561272009d934953817c49f47d768070c3c94355c2aa3"},
+ {file = "tomli-2.3.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c22a8bf253bacc0cf11f35ad9808b6cb75ada2631c2d97c971122583b129afbc"},
+ {file = "tomli-2.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0eea8cc5c5e9f89c9b90c4896a8deefc74f518db5927d0e0e8d4a80953d774d0"},
+ {file = "tomli-2.3.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:b74a0e59ec5d15127acdabd75ea17726ac4c5178ae51b85bfe39c4f8a278e879"},
+ {file = "tomli-2.3.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:b5870b50c9db823c595983571d1296a6ff3e1b88f734a4c8f6fc6188397de005"},
+ {file = "tomli-2.3.0-cp314-cp314-win32.whl", hash = "sha256:feb0dacc61170ed7ab602d3d972a58f14ee3ee60494292d384649a3dc38ef463"},
+ {file = "tomli-2.3.0-cp314-cp314-win_amd64.whl", hash = "sha256:b273fcbd7fc64dc3600c098e39136522650c49bca95df2d11cf3b626422392c8"},
+ {file = "tomli-2.3.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:940d56ee0410fa17ee1f12b817b37a4d4e4dc4d27340863cc67236c74f582e77"},
+ {file = "tomli-2.3.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:f85209946d1fe94416debbb88d00eb92ce9cd5266775424ff81bc959e001acaf"},
+ {file = "tomli-2.3.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a56212bdcce682e56b0aaf79e869ba5d15a6163f88d5451cbde388d48b13f530"},
+ {file = "tomli-2.3.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c5f3ffd1e098dfc032d4d3af5c0ac64f6d286d98bc148698356847b80fa4de1b"},
+ {file = "tomli-2.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:5e01decd096b1530d97d5d85cb4dff4af2d8347bd35686654a004f8dea20fc67"},
+ {file = "tomli-2.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:8a35dd0e643bb2610f156cca8db95d213a90015c11fee76c946aa62b7ae7e02f"},
+ {file = "tomli-2.3.0-cp314-cp314t-win32.whl", hash = "sha256:a1f7f282fe248311650081faafa5f4732bdbfef5d45fe3f2e702fbc6f2d496e0"},
+ {file = "tomli-2.3.0-cp314-cp314t-win_amd64.whl", hash = "sha256:70a251f8d4ba2d9ac2542eecf008b3c8a9fc5c3f9f02c56a9d7952612be2fdba"},
+ {file = "tomli-2.3.0-py3-none-any.whl", hash = "sha256:e95b1af3c5b07d9e643909b5abbec77cd9f1217e6d0bca72b0234736b9fb1f1b"},
+ {file = "tomli-2.3.0.tar.gz", hash = "sha256:64be704a875d2a59753d80ee8a533c3fe183e3f06807ff7dc2232938ccb01549"}
]
[[package]]
name = "tornado"
-version = "6.5.1"
+version = "6.5.2"
description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed."
optional = false
python-versions = ">=3.9"
groups = ["main"]
files = [
- {file = "tornado-6.5.1-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:d50065ba7fd11d3bd41bcad0825227cc9a95154bad83239357094c36708001f7"},
- {file = "tornado-6.5.1-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:9e9ca370f717997cb85606d074b0e5b247282cf5e2e1611568b8821afe0342d6"},
- {file = "tornado-6.5.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b77e9dfa7ed69754a54c89d82ef746398be82f749df69c4d3abe75c4d1ff4888"},
- {file = "tornado-6.5.1-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:253b76040ee3bab8bcf7ba9feb136436a3787208717a1fb9f2c16b744fba7331"},
- {file = "tornado-6.5.1-cp39-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:308473f4cc5a76227157cdf904de33ac268af770b2c5f05ca6c1161d82fdd95e"},
- {file = "tornado-6.5.1-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:caec6314ce8a81cf69bd89909f4b633b9f523834dc1a352021775d45e51d9401"},
- {file = "tornado-6.5.1-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:13ce6e3396c24e2808774741331638ee6c2f50b114b97a55c5b442df65fd9692"},
- {file = "tornado-6.5.1-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:5cae6145f4cdf5ab24744526cc0f55a17d76f02c98f4cff9daa08ae9a217448a"},
- {file = "tornado-6.5.1-cp39-abi3-win32.whl", hash = "sha256:e0a36e1bc684dca10b1aa75a31df8bdfed656831489bc1e6a6ebed05dc1ec365"},
- {file = "tornado-6.5.1-cp39-abi3-win_amd64.whl", hash = "sha256:908e7d64567cecd4c2b458075589a775063453aeb1d2a1853eedb806922f568b"},
- {file = "tornado-6.5.1-cp39-abi3-win_arm64.whl", hash = "sha256:02420a0eb7bf617257b9935e2b754d1b63897525d8a289c9d65690d580b4dcf7"},
- {file = "tornado-6.5.1.tar.gz", hash = "sha256:84ceece391e8eb9b2b95578db65e920d2a61070260594819589609ba9bc6308c"}
+ {file = "tornado-6.5.2-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:2436822940d37cde62771cff8774f4f00b3c8024fe482e16ca8387b8a2724db6"},
+ {file = "tornado-6.5.2-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:583a52c7aa94ee046854ba81d9ebb6c81ec0fd30386d96f7640c96dad45a03ef"},
+ {file = "tornado-6.5.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b0fe179f28d597deab2842b86ed4060deec7388f1fd9c1b4a41adf8af058907e"},
+ {file = "tornado-6.5.2-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b186e85d1e3536d69583d2298423744740986018e393d0321df7340e71898882"},
+ {file = "tornado-6.5.2-cp39-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e792706668c87709709c18b353da1f7662317b563ff69f00bab83595940c7108"},
+ {file = "tornado-6.5.2-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:06ceb1300fd70cb20e43b1ad8aaee0266e69e7ced38fa910ad2e03285009ce7c"},
+ {file = "tornado-6.5.2-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:74db443e0f5251be86cbf37929f84d8c20c27a355dd452a5cfa2aada0d001ec4"},
+ {file = "tornado-6.5.2-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b5e735ab2889d7ed33b32a459cac490eda71a1ba6857b0118de476ab6c366c04"},
+ {file = "tornado-6.5.2-cp39-abi3-win32.whl", hash = "sha256:c6f29e94d9b37a95013bb669616352ddb82e3bfe8326fccee50583caebc8a5f0"},
+ {file = "tornado-6.5.2-cp39-abi3-win_amd64.whl", hash = "sha256:e56a5af51cc30dd2cae649429af65ca2f6571da29504a07995175df14c18f35f"},
+ {file = "tornado-6.5.2-cp39-abi3-win_arm64.whl", hash = "sha256:d6c33dc3672e3a1f3618eb63b7ef4683a7688e7b9e6e8f0d9aa5726360a004af"},
+ {file = "tornado-6.5.2.tar.gz", hash = "sha256:ab53c8f9a0fa351e2c0741284e06c7a45da86afb544133201c5cc8578eb076a0"}
]
[[package]]
@@ -4406,26 +4767,26 @@ test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0,
[[package]]
name = "types-python-dateutil"
-version = "2.9.0.20250516"
+version = "2.9.0.20251008"
description = "Typing stubs for python-dateutil"
optional = false
python-versions = ">=3.9"
groups = ["main"]
files = [
- {file = "types_python_dateutil-2.9.0.20250516-py3-none-any.whl", hash = "sha256:2b2b3f57f9c6a61fba26a9c0ffb9ea5681c9b83e69cd897c6b5f668d9c0cab93"},
- {file = "types_python_dateutil-2.9.0.20250516.tar.gz", hash = "sha256:13e80d6c9c47df23ad773d54b2826bd52dbbb41be87c3f339381c1700ad21ee5"}
+ {file = "types_python_dateutil-2.9.0.20251008-py3-none-any.whl", hash = "sha256:b9a5232c8921cf7661b29c163ccc56055c418ab2c6eabe8f917cbcc73a4c4157"},
+ {file = "types_python_dateutil-2.9.0.20251008.tar.gz", hash = "sha256:c3826289c170c93ebd8360c3485311187df740166dbab9dd3b792e69f2bc1f9c"}
]
[[package]]
name = "typing-extensions"
-version = "4.14.0"
+version = "4.15.0"
description = "Backported and Experimental Type Hints for Python 3.9+"
optional = false
python-versions = ">=3.9"
groups = ["main", "dev"]
files = [
- {file = "typing_extensions-4.14.0-py3-none-any.whl", hash = "sha256:a1514509136dd0b477638fc68d6a91497af5076466ad0fa6c338e44e359944af"},
- {file = "typing_extensions-4.14.0.tar.gz", hash = "sha256:8676b788e32f02ab42d9e7c61324048ae4c6d844a399eebace3d4979d75ceef4"}
+ {file = "typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548"},
+ {file = "typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466"}
]
markers = {dev = "python_version == \"3.10\""}
@@ -4502,20 +4863,21 @@ zstd = ["zstandard (>=0.18.0)"]
[[package]]
name = "virtualenv"
-version = "20.31.2"
+version = "20.35.3"
description = "Virtual Python Environment builder"
optional = false
python-versions = ">=3.8"
groups = ["dev"]
files = [
- {file = "virtualenv-20.31.2-py3-none-any.whl", hash = "sha256:36efd0d9650ee985f0cad72065001e66d49a6f24eb44d98980f630686243cf11"},
- {file = "virtualenv-20.31.2.tar.gz", hash = "sha256:e10c0a9d02835e592521be48b332b6caee6887f332c111aa79a09b9e79efc2af"}
+ {file = "virtualenv-20.35.3-py3-none-any.whl", hash = "sha256:63d106565078d8c8d0b206d48080f938a8b25361e19432d2c9db40d2899c810a"},
+ {file = "virtualenv-20.35.3.tar.gz", hash = "sha256:4f1a845d131133bdff10590489610c98c168ff99dc75d6c96853801f7f67af44"}
]
[package.dependencies]
distlib = ">=0.3.7,<1"
filelock = ">=3.12.2,<4"
platformdirs = ">=3.9.1,<5"
+typing-extensions = {version = ">=4.13.2", markers = "python_version < \"3.11\""}
[package.extras]
docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2,!=7.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"]
@@ -4523,14 +4885,14 @@ test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess
[[package]]
name = "wcwidth"
-version = "0.2.13"
+version = "0.2.14"
description = "Measures the displayed width of unicode strings in a terminal"
optional = false
-python-versions = "*"
+python-versions = ">=3.6"
groups = ["main"]
files = [
- {file = "wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859"},
- {file = "wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5"}
+ {file = "wcwidth-0.2.14-py2.py3-none-any.whl", hash = "sha256:a7bb560c8aee30f9957e5f9895805edd20602f2d7f720186dfd906e82b4982e1"},
+ {file = "wcwidth-0.2.14.tar.gz", hash = "sha256:4d478375d31bc5395a3c55c40ccdf3354688364cd61c4f6adacaa9215d0b3605"}
]
[[package]]
@@ -4559,20 +4921,20 @@ files = [
[[package]]
name = "websocket-client"
-version = "1.8.0"
+version = "1.9.0"
description = "WebSocket client for Python with low level API options"
optional = false
-python-versions = ">=3.8"
+python-versions = ">=3.9"
groups = ["main"]
files = [
- {file = "websocket_client-1.8.0-py3-none-any.whl", hash = "sha256:17b44cc997f5c498e809b22cdf2d9c7a9e71c02c8cc2b6c56e7c2d1239bfa526"},
- {file = "websocket_client-1.8.0.tar.gz", hash = "sha256:3239df9f44da632f96012472805d40a23281a991027ce11d2f45a6f24ac4c3da"}
+ {file = "websocket_client-1.9.0-py3-none-any.whl", hash = "sha256:af248a825037ef591efbf6ed20cc5faa03d3b47b9e5a2230a529eeee1c1fc3ef"},
+ {file = "websocket_client-1.9.0.tar.gz", hash = "sha256:9e813624b6eb619999a97dc7958469217c3176312b3a16a4bd1bc7e08a46ec98"}
]
[package.extras]
-docs = ["Sphinx (>=6.0)", "myst-parser (>=2.0.0)", "sphinx-rtd-theme (>=1.1.0)"]
+docs = ["Sphinx (>=6.0)", "myst-parser (>=2.0.0)", "sphinx_rtd_theme (>=1.1.0)"]
optional = ["python-socks", "wsaccel"]
-test = ["websockets"]
+test = ["pytest", "websockets"]
[[package]]
name = "widgetsnbextension"
diff --git a/pyproject.toml b/pyproject.toml
index c3d577c..2f99905 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -10,7 +10,7 @@ readme = "README.md"
[tool.poetry.dependencies]
python = ">=3.10,<3.14"
numpy = ">=2.2.5,<3.0.0"
-scipy = ">=1.15.3,<2.0.0"
+scipy = ">=1.14.0,<1.15.0"
matplotlib = ">=3.10.3,<4.0.0"
polars = ">=1.29.0,<2.0.0"
statsmodels = ">=0.14.4,<0.15.0"
@@ -24,10 +24,10 @@ beartype = "^0.21.0"
umap-learn = "^0.5.9.post2"
narwhals = "^2.4.0"
optuna = "^4.5.0"
-scanpy = "^1.11.4"
igraph = "^0.11.9"
leidenalg = "^0.10.2"
louvain = "^0.8.2"
+scanpy = "^1.11.4"
[tool.poetry.group.dev.dependencies]
pytest = "^8.4.1"
diff --git a/utils/metrics.py b/utils/metrics.py
index 2ac4b60..5975e2d 100644
--- a/utils/metrics.py
+++ b/utils/metrics.py
@@ -113,9 +113,9 @@ def compute_earth_movers_distance(
metric=distance_metric,
)
- # compute on and off emd scores
- on_emd = ot.emd2(weights_ref, weights_exp, on_M)
- off_emd = ot.emd2(weights_ref, weights_exp, off_M)
+ # compute on and off emd scores with increased numItermax to avoid warnings
+ on_emd = ot.emd2(weights_ref, weights_exp, on_M, numItermax=100000)
+ off_emd = ot.emd2(weights_ref, weights_exp, off_M, numItermax=100000)
return on_emd, off_emd
@@ -207,6 +207,14 @@ def measure_phenotypic_activity(
ref_profiles = profiles.filter(pl.col(treatment_col) == ref_treatment)
exp_profiles = profiles.filter(pl.col(treatment_col) != ref_treatment)
+ # check that there are profiles to compare
+ if ref_profiles.height == 0:
+ raise ValueError(
+ f"No reference profiles found for treatment '{ref_treatment}'."
+ )
+ if exp_profiles.height == 0:
+ raise ValueError("No experimental profiles found to compare against.")
+
# get all unique combinations by using group by
ref_clusters = (
ref_profiles.group_by(cluster_col)
@@ -239,16 +247,27 @@ def measure_phenotypic_activity(
pl.col(cluster_col) == ref_cluster
)
- exp_cluster_population_df = exp_profiles.filter(
- (pl.col(treatment_col) == treatment)
- & (pl.col(cluster_col) == exp_cluster)
- )
+ if exp_cluster is None:
+ exp_cluster_population_df = exp_profiles.filter(
+ (pl.col(treatment_col) == treatment)
+ & (pl.col(cluster_col).is_null())
+ )
+ else:
+ exp_cluster_population_df = exp_profiles.filter(
+ (pl.col(treatment_col) == treatment)
+ & (pl.col(cluster_col) == exp_cluster)
+ )
# Skip if either population is empty
if (
ref_cluster_population_df.height == 0
or exp_cluster_population_df.height == 0
):
+ print(
+ f"Skipping comparison: ref_cluster={ref_cluster}, "
+ f"treatment={treatment}, exp_cluster={exp_cluster} "
+ "- one of the populations is empty."
+ )
continue
# Calculate EMD distances