From 7f4ee05c3ea4f4db8b408c55fcac83a931f063f0 Mon Sep 17 00:00:00 2001 From: Cameron Mattson Date: Fri, 18 Oct 2024 15:54:33 -0600 Subject: [PATCH 01/16] Included comparison tool and an example with documentation. --- README.md | 13 +- example_pairwise_comparisons.ipynb | 1315 ++++++++++++++++++++++++++++ utils/Comparator.py | 16 + utils/MIC.py | 51 ++ utils/PairwiseCompare.py | 249 ++++++ utils/PairwiseCompareManager.py | 55 ++ utils/ShuffledMIC.py | 10 + 7 files changed, 1708 insertions(+), 1 deletion(-) create mode 100644 example_pairwise_comparisons.ipynb create mode 100644 utils/Comparator.py create mode 100644 utils/MIC.py create mode 100644 utils/PairwiseCompare.py create mode 100644 utils/PairwiseCompareManager.py create mode 100644 utils/ShuffledMIC.py diff --git a/README.md b/README.md index 3dec6e3..583c224 100644 --- a/README.md +++ b/README.md @@ -1 +1,12 @@ -# pairwise_compare \ No newline at end of file +# pairwise_compare +This tool allows the user to compare instances (rows) of data specified in a tidy pandas dataframe with ease. +In this repo the capabilities of the PairwiseCompareManger are shown through an example using the nuclear speckle data (`example_pairwise_comparisons.ipynb`). +Although, most of the development efforts can be found in the `utils` folder. + +## Limitations +Some input validation has be enforced, although not exclusively. +For example, you should not specify the same column name in both the _same_columns list and _different_columns list. + +## Extensibility +This tool is designed to compare feature between any two different rows within a tidy pandas dataframe. +To include additional comparisons, you will need to introduce the functionality as a class and inherit from the Comparator class. diff --git a/example_pairwise_comparisons.ipynb b/example_pairwise_comparisons.ipynb new file mode 100644 index 0000000..dc954f3 --- /dev/null +++ b/example_pairwise_comparisons.ipynb @@ -0,0 +1,1315 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "jukit_cell_id": "diZkzamaCr" + }, + "source": [ + "# Examples of using the PairwiseCompareManager\n", + "There are two primary steps:\n", + "1. Organize your data into a tidy pandas dataframe.\n", + "2. Compute the comparisons." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "execution": { + "iopub.execute_input": "2024-10-18T21:34:04.262281Z", + "iopub.status.busy": "2024-10-18T21:34:04.262128Z", + "iopub.status.idle": "2024-10-18T21:34:04.498946Z", + "shell.execute_reply": "2024-10-18T21:34:04.498499Z" + }, + "jukit_cell_id": "JlHVCFc6jg" + }, + "outputs": [], + "source": [ + "import pathlib\n", + "import sys\n", + "\n", + "import pandas as pd" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "jukit_cell_id": "09DzTtojev" + }, + "source": [ + "## Find the root of the git repo on the host system" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "execution": { + "iopub.execute_input": "2024-10-18T21:34:04.501231Z", + "iopub.status.busy": "2024-10-18T21:34:04.500841Z", + "iopub.status.idle": "2024-10-18T21:34:04.503750Z", + "shell.execute_reply": "2024-10-18T21:34:04.503391Z" + }, + "jukit_cell_id": "ZSBTA9IqxD" + }, + "outputs": [], + "source": [ + "# Get the current working directory\n", + "cwd = pathlib.Path.cwd()\n", + "\n", + "if (cwd / \".git\").is_dir():\n", + " root_dir = cwd\n", + "\n", + "else:\n", + " root_dir = None\n", + " for parent in cwd.parents:\n", + " if (parent / \".git\").is_dir():\n", + " root_dir = parent\n", + " break\n", + "\n", + "# Check if a Git root directory was found\n", + "if root_dir is None:\n", + " raise FileNotFoundError(\"No Git root directory found.\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "jukit_cell_id": "D89Os0yFLC" + }, + "source": [ + "# Custom Imports" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "execution": { + "iopub.execute_input": "2024-10-18T21:34:04.505424Z", + "iopub.status.busy": "2024-10-18T21:34:04.505092Z", + "iopub.status.idle": "2024-10-18T21:34:04.508691Z", + "shell.execute_reply": "2024-10-18T21:34:04.508334Z" + }, + "jukit_cell_id": "KnQdvFxPkd" + }, + "outputs": [], + "source": [ + "sys.path.append(f\"{root_dir}/0.data_analysis_and_processing/utils\")\n", + "\n", + "from MIC import MIC\n", + "from PairwiseCompareManager import PairwiseCompareManager" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "jukit_cell_id": "fIxGUGaKkR" + }, + "source": [ + "# Inputs" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "execution": { + "iopub.execute_input": "2024-10-18T21:34:04.510250Z", + "iopub.status.busy": "2024-10-18T21:34:04.509978Z", + "iopub.status.idle": "2024-10-18T21:34:04.988565Z", + "shell.execute_reply": "2024-10-18T21:34:04.988173Z" + }, + "jukit_cell_id": "dlU1p2c9cE" + }, + "outputs": [], + "source": [ + "# Paths to original nuclear speckle data\n", + "data_dir = root_dir / \"nuclear_speckles_data\"\n", + "nuclear_mask_dir = (data_dir / \"Nuclear_masks\").resolve(strict=True)\n", + "sc_profiles_path = list((data_dir / \"Preprocessed_data/single_cell_profiles\").resolve(strict=True).glob(\"*feature_selected*.parquet\"))\n", + "\n", + "# Load single-cell profile data\n", + "scdfs = [pd.read_parquet(sc_path) for sc_path in sc_profiles_path if sc_path.is_file()]" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "jukit_cell_id": "2nCHpCWHPX" + }, + "source": [ + "# Outputs" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "execution": { + "iopub.execute_input": "2024-10-18T21:34:04.990618Z", + "iopub.status.busy": "2024-10-18T21:34:04.990382Z", + "iopub.status.idle": "2024-10-18T21:34:04.992656Z", + "shell.execute_reply": "2024-10-18T21:34:04.992383Z" + }, + "jukit_cell_id": "i6nQ6vwPOY" + }, + "outputs": [], + "source": [ + "distribution_figures_path = pathlib.Path(\"well_sirna_mic_distribution_figures\")\n", + "distribution_figures_path.mkdir(parents=True, exist_ok=True)\n", + "\n", + "mic_comparisons_path = pathlib.Path(\"mic_comparisons_data\")\n", + "mic_comparisons_path.mkdir(parents=True, exist_ok=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "jukit_cell_id": "5HpdTkrhdj" + }, + "source": [ + "# Processing" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "jukit_cell_id": "AMY2NJE0ci" + }, + "source": [ + "## Combine Common Data\n", + "Column names are used to combine common single-cell data." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "execution": { + "iopub.execute_input": "2024-10-18T21:34:04.994070Z", + "iopub.status.busy": "2024-10-18T21:34:04.993880Z", + "iopub.status.idle": "2024-10-18T21:34:05.374789Z", + "shell.execute_reply": "2024-10-18T21:34:05.374306Z" + }, + "jukit_cell_id": "TfjgwzLhIQ" + }, + "outputs": [], + "source": [ + "common_columns = scdfs[0].columns\n", + "for scdf in scdfs[1:]:\n", + " common_columns = common_columns.intersection(scdf.columns)\n", + "\n", + "scdfs = pd.concat(scdfs, axis=0)[common_columns]" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "execution": { + "iopub.execute_input": "2024-10-18T21:34:05.376766Z", + "iopub.status.busy": "2024-10-18T21:34:05.376587Z", + "iopub.status.idle": "2024-10-18T21:34:05.593179Z", + "shell.execute_reply": "2024-10-18T21:34:05.592667Z" + }, + "jukit_cell_id": "GKjo1VAEwW" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Metadata_CellLine Metadata_Condition Metadata_ImageNumber \\\n", + "0 786O NTC 1 \n", + "1 786O NTC 1 \n", + "2 786O NTC 1 \n", + "3 786O NTC 1 \n", + "4 786O NTC 1 \n", + "... ... ... ... \n", + "63354 293T untreated 407 \n", + "63355 293T untreated 407 \n", + "63356 293T untreated 407 \n", + "63357 293T untreated 407 \n", + "63358 293T untreated 407 \n", + "\n", + " Metadata_Plate Metadata_Well Metadata_Site Metadata_Nuclei_Site_Count \\\n", + "0 slide3 A1 M14 40 \n", + "1 slide3 A1 M14 40 \n", + "2 slide3 A1 M14 40 \n", + "3 slide3 A1 M14 40 \n", + "4 slide3 A1 M14 40 \n", + "... ... ... ... ... \n", + "63354 slide4 B4 M9 856 \n", + "63355 slide4 B4 M9 856 \n", + "63356 slide4 B4 M9 856 \n", + "63357 slide4 B4 M9 856 \n", + "63358 slide4 B4 M9 856 \n", + "\n", + " Metadata_Nuclei_Location_Center_X Metadata_Nuclei_Location_Center_Y \\\n", + "0 440.421603 78.968641 \n", + "1 419.490134 104.726914 \n", + "2 228.128582 1150.712626 \n", + "3 193.636493 1293.612259 \n", + "4 238.685272 1344.190989 \n", + "... ... ... \n", + "63354 259.852031 2265.419729 \n", + "63355 1031.180619 2264.759513 \n", + "63356 738.728900 2267.087809 \n", + "63357 2272.609593 2271.556609 \n", + "63358 824.547855 2280.754675 \n", + "\n", + " Nuclei_AreaShape_Area ... Nuclei_Texture_Correlation_DAPI_3_02_256 \\\n", + "0 -0.455396 ... 0.076553 \n", + "1 -0.768349 ... 0.440507 \n", + "2 1.681257 ... 0.442093 \n", + "3 -0.515006 ... -0.204978 \n", + "4 -0.358529 ... -0.196367 \n", + "... ... ... ... \n", + "63354 -1.231858 ... -1.567802 \n", + "63355 0.397688 ... 0.873889 \n", + "63356 -0.990121 ... 0.239501 \n", + "63357 0.088127 ... 0.637374 \n", + "63358 -1.449246 ... -0.091024 \n", + "\n", + " Nuclei_Texture_Correlation_DAPI_3_03_256 \\\n", + "0 -0.955255 \n", + "1 -0.935149 \n", + "2 -0.002420 \n", + "3 -1.124243 \n", + "4 -1.294883 \n", + "... ... \n", + "63354 -1.402389 \n", + "63355 0.957832 \n", + "63356 -0.726772 \n", + "63357 0.329904 \n", + "63358 -0.500739 \n", + "\n", + " Nuclei_Texture_Correlation_GOLD_3_00_256 \\\n", + "0 -4.683966 \n", + "1 -4.683966 \n", + "2 0.477625 \n", + "3 -0.895212 \n", + "4 -1.379071 \n", + "... ... \n", + "63354 -1.699914 \n", + "63355 0.256921 \n", + "63356 -1.723400 \n", + "63357 -0.938126 \n", + "63358 -0.604331 \n", + "\n", + " Nuclei_Texture_Correlation_GOLD_3_01_256 \\\n", + "0 -2.873172 \n", + "1 -2.873172 \n", + "2 0.364749 \n", + "3 -1.471390 \n", + "4 -0.299818 \n", + "... ... \n", + "63354 -0.362258 \n", + "63355 1.081944 \n", + "63356 -1.670593 \n", + "63357 -0.337367 \n", + "63358 -0.373327 \n", + "\n", + " Nuclei_Texture_Correlation_GOLD_3_02_256 \\\n", + "0 -4.635442 \n", + "1 -4.635442 \n", + "2 0.057439 \n", + "3 -0.572905 \n", + "4 -0.971546 \n", + "... ... \n", + "63354 -0.952431 \n", + "63355 0.885690 \n", + "63356 -1.738772 \n", + "63357 -0.740371 \n", + "63358 -1.485818 \n", + "\n", + " Nuclei_Texture_Correlation_GOLD_3_03_256 \\\n", + "0 -2.869097 \n", + "1 -2.869097 \n", + "2 0.136200 \n", + "3 0.140653 \n", + "4 -2.075405 \n", + "... ... \n", + "63354 -1.934467 \n", + "63355 0.074114 \n", + "63356 -1.688474 \n", + "63357 -0.793532 \n", + "63358 -0.784130 \n", + "\n", + " Nuclei_Texture_InfoMeas1_DAPI_3_00_256 \\\n", + "0 0.535714 \n", + "1 0.924185 \n", + "2 -0.671712 \n", + "3 0.708704 \n", + "4 0.974129 \n", + "... ... \n", + "63354 1.362543 \n", + "63355 -0.979198 \n", + "63356 0.486452 \n", + "63357 -0.346221 \n", + "63358 -0.147601 \n", + "\n", + " Nuclei_Texture_InfoMeas1_DAPI_3_01_256 \\\n", + "0 -0.182047 \n", + "1 -0.823399 \n", + "2 -0.987276 \n", + "3 0.449238 \n", + "4 -1.009551 \n", + "... ... \n", + "63354 1.128533 \n", + "63355 -0.663974 \n", + "63356 -0.761964 \n", + "63357 -0.534778 \n", + "63358 0.065643 \n", + "\n", + " Nuclei_Texture_InfoMeas1_DAPI_3_02_256 \\\n", + "0 0.502261 \n", + "1 0.023690 \n", + "2 -0.664844 \n", + "3 0.741110 \n", + "4 0.464294 \n", + "... ... \n", + "63354 1.162664 \n", + "63355 -1.025852 \n", + "63356 -1.088521 \n", + "63357 -1.008774 \n", + "63358 0.261785 \n", + "\n", + " Nuclei_Texture_InfoMeas1_DAPI_3_03_256 \n", + "0 0.791409 \n", + "1 -0.008731 \n", + "2 0.026038 \n", + "3 1.011587 \n", + "4 1.326281 \n", + "... ... \n", + "63354 1.229538 \n", + "63355 -0.825447 \n", + "63356 0.597475 \n", + "63357 -0.252631 \n", + "63358 0.245148 \n", + "\n", + "[240906 rows x 267 columns]\n" + ] + } + ], + "source": [ + "scdfs.dropna(inplace=True)\n", + "\n", + "print(scdfs)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "jukit_cell_id": "aV9CyQcjs6" + }, + "source": [ + "## Seperate Gold, A647, and Dapi Features" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "execution": { + "iopub.execute_input": "2024-10-18T21:34:05.630910Z", + "iopub.status.busy": "2024-10-18T21:34:05.630743Z", + "iopub.status.idle": "2024-10-18T21:34:05.831320Z", + "shell.execute_reply": "2024-10-18T21:34:05.830858Z" + }, + "jukit_cell_id": "QqU4ieBlqx" + }, + "outputs": [], + "source": [ + "gold_scdfs = scdfs.loc[:, scdfs.columns.str.contains(\"GOLD|Metadata\", regex=True)]\n", + "a647_scdfs = scdfs.loc[:, scdfs.columns.str.contains(\"A647|Metadata\", regex=True)]\n", + "dapi_scdfs = scdfs.loc[:, scdfs.columns.str.contains(\"DAPI|Metadata\", regex=True)]\n", + "\n", + "gold_scdfs.columns = gold_scdfs.columns.str.replace('_GOLD', '', regex=False)\n", + "a647_scdfs.columns = gold_scdfs.columns.str.replace('_A647', '', regex=False)\n", + "dapi_scdfs.columns = dapi_scdfs.columns.str.replace('_DAPI', '', regex=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "jukit_cell_id": "jA516CWZ8B" + }, + "source": [ + "## Combine Seperated Stain Features" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "execution": { + "iopub.execute_input": "2024-10-18T21:34:05.833338Z", + "iopub.status.busy": "2024-10-18T21:34:05.833211Z", + "iopub.status.idle": "2024-10-18T21:34:06.204188Z", + "shell.execute_reply": "2024-10-18T21:34:06.203724Z" + }, + "jukit_cell_id": "3SM0BccfzV" + }, + "outputs": [], + "source": [ + "gold_scdfs = gold_scdfs.assign(Metadata_Stain=\"GOLD\")\n", + "dapi_scdfs = dapi_scdfs.assign(Metadata_Stain=\"DAPI\")\n", + "a647_scdfs = a647_scdfs.assign(Metadata_Stain=\"A647\")\n", + "\n", + "common_cols = gold_scdfs.columns.intersection(dapi_scdfs.columns).intersection(a647_scdfs.columns)\n", + "scdfs = pd.concat([gold_scdfs[common_cols], dapi_scdfs[common_cols], a647_scdfs[common_cols]], axis=0)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "jukit_cell_id": "dYBpppmu4P" + }, + "source": [ + "## Specify Feature Metadata Columns" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "execution": { + "iopub.execute_input": "2024-10-18T21:34:06.206206Z", + "iopub.status.busy": "2024-10-18T21:34:06.206080Z", + "iopub.status.idle": "2024-10-18T21:34:06.208452Z", + "shell.execute_reply": "2024-10-18T21:34:06.208161Z" + }, + "jukit_cell_id": "Xvk0z6s5YD" + }, + "outputs": [], + "source": [ + "feat_cols = scdfs.columns[~scdfs.columns.str.contains(\"Metadata\")]" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "jukit_cell_id": "DpDVSA22OS" + }, + "source": [ + "## Mean Aggregation to the Well Level" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "execution": { + "iopub.execute_input": "2024-10-18T21:34:06.209893Z", + "iopub.status.busy": "2024-10-18T21:34:06.209783Z", + "iopub.status.idle": "2024-10-18T21:34:06.496910Z", + "shell.execute_reply": "2024-10-18T21:34:06.496459Z" + }, + "jukit_cell_id": "3kAGbC43Zs" + }, + "outputs": [], + "source": [ + "# Metadata to retain\n", + "agg_funcs = {\n", + " \"Metadata_Condition\": \"first\",\n", + "}\n", + "\n", + "agg_funcs |= {feat_col: \"mean\" for feat_col in feat_cols}\n", + "staindf = scdfs.groupby([\"Metadata_Plate\", \"Metadata_Well\", \"Metadata_Stain\"]).agg(agg_funcs).reset_index()" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "execution": { + "iopub.execute_input": "2024-10-18T21:34:06.498968Z", + "iopub.status.busy": "2024-10-18T21:34:06.498813Z", + "iopub.status.idle": "2024-10-18T21:34:06.516634Z", + "shell.execute_reply": "2024-10-18T21:34:06.516271Z" + }, + "jukit_cell_id": "Eo1zbJrCL0" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Metadata_PlateMetadata_WellMetadata_StainMetadata_ConditionNuclei_Granularity_1Nuclei_Intensity_MassDisplacementNuclei_Intensity_StdIntensityEdgeNuclei_RadialDistribution_FracAtD_4of4Nuclei_RadialDistribution_MeanFrac_1of4Nuclei_RadialDistribution_MeanFrac_4of4...Nuclei_RadialDistribution_ZernikePhase_8_8Nuclei_RadialDistribution_ZernikePhase_9_1Nuclei_RadialDistribution_ZernikePhase_9_3Nuclei_RadialDistribution_ZernikePhase_9_5Nuclei_RadialDistribution_ZernikePhase_9_7Nuclei_RadialDistribution_ZernikePhase_9_9Nuclei_Texture_Correlation_3_00_256Nuclei_Texture_Correlation_3_01_256Nuclei_Texture_Correlation_3_02_256Nuclei_Texture_Correlation_3_03_256
0slide1A1A647NTC0.1714740.4770671.159588-0.746587-0.2695720.163854...-0.0150420.018605-0.058823-0.030010-0.012822-0.053868-0.329853-0.279762-0.340624-0.326910
1slide1A1DAPINTC-0.2175380.7190260.3314190.6093520.1469270.117445...-0.0062530.021927-0.075890-0.050538-0.030914-0.0230990.3776500.4039600.4090600.397982
2slide1A1GOLDNTC-0.3820570.4747371.1145610.885131-0.3304990.590850...0.0067250.008139-0.054102-0.0423310.003489-0.0402620.2377650.0972590.1932860.059259
3slide1A2A647ALY kd80.0357720.7655411.081828-0.434666-0.0451960.463068...-0.0009850.0061100.018343-0.0022430.002698-0.0140260.2059980.2061570.2317490.189171
4slide1A2DAPIALY kd8-0.4492470.6812450.724933-0.1169660.847064-0.687609...0.005417-0.016053-0.0008470.0184930.008329-0.0333490.7713910.7151490.7822810.700230
\n", + "

5 rows × 64 columns

\n", + "
" + ], + "text/plain": [ + " Metadata_Plate Metadata_Well Metadata_Stain Metadata_Condition \\\n", + "0 slide1 A1 A647 NTC \n", + "1 slide1 A1 DAPI NTC \n", + "2 slide1 A1 GOLD NTC \n", + "3 slide1 A2 A647 ALY kd8 \n", + "4 slide1 A2 DAPI ALY kd8 \n", + "\n", + " Nuclei_Granularity_1 Nuclei_Intensity_MassDisplacement \\\n", + "0 0.171474 0.477067 \n", + "1 -0.217538 0.719026 \n", + "2 -0.382057 0.474737 \n", + "3 0.035772 0.765541 \n", + "4 -0.449247 0.681245 \n", + "\n", + " Nuclei_Intensity_StdIntensityEdge Nuclei_RadialDistribution_FracAtD_4of4 \\\n", + "0 1.159588 -0.746587 \n", + "1 0.331419 0.609352 \n", + "2 1.114561 0.885131 \n", + "3 1.081828 -0.434666 \n", + "4 0.724933 -0.116966 \n", + "\n", + " Nuclei_RadialDistribution_MeanFrac_1of4 \\\n", + "0 -0.269572 \n", + "1 0.146927 \n", + "2 -0.330499 \n", + "3 -0.045196 \n", + "4 0.847064 \n", + "\n", + " Nuclei_RadialDistribution_MeanFrac_4of4 ... \\\n", + "0 0.163854 ... \n", + "1 0.117445 ... \n", + "2 0.590850 ... \n", + "3 0.463068 ... \n", + "4 -0.687609 ... \n", + "\n", + " Nuclei_RadialDistribution_ZernikePhase_8_8 \\\n", + "0 -0.015042 \n", + "1 -0.006253 \n", + "2 0.006725 \n", + "3 -0.000985 \n", + "4 0.005417 \n", + "\n", + " Nuclei_RadialDistribution_ZernikePhase_9_1 \\\n", + "0 0.018605 \n", + "1 0.021927 \n", + "2 0.008139 \n", + "3 0.006110 \n", + "4 -0.016053 \n", + "\n", + " Nuclei_RadialDistribution_ZernikePhase_9_3 \\\n", + "0 -0.058823 \n", + "1 -0.075890 \n", + "2 -0.054102 \n", + "3 0.018343 \n", + "4 -0.000847 \n", + "\n", + " Nuclei_RadialDistribution_ZernikePhase_9_5 \\\n", + "0 -0.030010 \n", + "1 -0.050538 \n", + "2 -0.042331 \n", + "3 -0.002243 \n", + "4 0.018493 \n", + "\n", + " Nuclei_RadialDistribution_ZernikePhase_9_7 \\\n", + "0 -0.012822 \n", + "1 -0.030914 \n", + "2 0.003489 \n", + "3 0.002698 \n", + "4 0.008329 \n", + "\n", + " Nuclei_RadialDistribution_ZernikePhase_9_9 \\\n", + "0 -0.053868 \n", + "1 -0.023099 \n", + "2 -0.040262 \n", + "3 -0.014026 \n", + "4 -0.033349 \n", + "\n", + " Nuclei_Texture_Correlation_3_00_256 Nuclei_Texture_Correlation_3_01_256 \\\n", + "0 -0.329853 -0.279762 \n", + "1 0.377650 0.403960 \n", + "2 0.237765 0.097259 \n", + "3 0.205998 0.206157 \n", + "4 0.771391 0.715149 \n", + "\n", + " Nuclei_Texture_Correlation_3_02_256 Nuclei_Texture_Correlation_3_03_256 \n", + "0 -0.340624 -0.326910 \n", + "1 0.409060 0.397982 \n", + "2 0.193286 0.059259 \n", + "3 0.231749 0.189171 \n", + "4 0.782281 0.700230 \n", + "\n", + "[5 rows x 64 columns]" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "staindf.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "jukit_cell_id": "C6AaBtUOCj" + }, + "source": [ + "# MIC Comparisons\n", + "In this dataset, each instance (row) corresponds to a stain for a well.\n", + "This means that multiple rows reference the same wells, but different stain features.\n", + "When using the PairwiseCompareManager the _same_columns and _different_columns parameters must follow two conditions:\n", + "1. _same_columns must include at least one list element if _different_columns has less than two list elements.\n", + "2. _different columns must contain one or more list elements" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "jukit_cell_id": "6gx14BlSwz" + }, + "source": [ + "## Compare between the same well from the same plate across different stains" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "execution": { + "iopub.execute_input": "2024-10-18T21:34:06.518225Z", + "iopub.status.busy": "2024-10-18T21:34:06.518113Z", + "iopub.status.idle": "2024-10-18T21:34:06.535946Z", + "shell.execute_reply": "2024-10-18T21:34:06.535655Z" + }, + "jukit_cell_id": "CRa8vLBRj8" + }, + "outputs": [], + "source": [ + "mic_comparator = MIC()\n", + "\n", + "comparer = PairwiseCompareManager(\n", + " _df=staindf.copy(),\n", + " _comparator=mic_comparator,\n", + " _same_columns=[\"Metadata_Plate\", \"Metadata_Well\"],\n", + " _different_columns=[\"Metadata_Stain\"],\n", + " _feat_cols=feat_cols\n", + ")\n", + "\n", + "micdf = comparer()" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "execution": { + "iopub.execute_input": "2024-10-18T21:34:06.537490Z", + "iopub.status.busy": "2024-10-18T21:34:06.537280Z", + "iopub.status.idle": "2024-10-18T21:34:06.541502Z", + "shell.execute_reply": "2024-10-18T21:34:06.541206Z" + }, + "jukit_cell_id": "cGLOXfXNrN" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Metadata_Plate__antehoc_group0Metadata_Plate__antehoc_group1Metadata_Well__antehoc_group0Metadata_Well__antehoc_group1Metadata_Stain__posthoc_group0
0slide1slide1A1A1A647
1slide1slide1A1A1A647
2slide1slide1A1A1DAPI
3slide1slide1A2A2A647
4slide1slide1A2A2A647
\n", + "
" + ], + "text/plain": [ + " Metadata_Plate__antehoc_group0 Metadata_Plate__antehoc_group1 \\\n", + "0 slide1 slide1 \n", + "1 slide1 slide1 \n", + "2 slide1 slide1 \n", + "3 slide1 slide1 \n", + "4 slide1 slide1 \n", + "\n", + " Metadata_Well__antehoc_group0 Metadata_Well__antehoc_group1 \\\n", + "0 A1 A1 \n", + "1 A1 A1 \n", + "2 A1 A1 \n", + "3 A2 A2 \n", + "4 A2 A2 \n", + "\n", + " Metadata_Stain__posthoc_group0 \n", + "0 A647 \n", + "1 A647 \n", + "2 DAPI \n", + "3 A647 \n", + "4 A647 " + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "micdf.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "jukit_cell_id": "ucjifXHnJI" + }, + "source": [ + "## Compare between different stains and conditions" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "execution": { + "iopub.execute_input": "2024-10-18T21:34:06.542937Z", + "iopub.status.busy": "2024-10-18T21:34:06.542827Z", + "iopub.status.idle": "2024-10-18T21:34:06.732751Z", + "shell.execute_reply": "2024-10-18T21:34:06.732381Z" + }, + "jukit_cell_id": "JPLwsPbVsU" + }, + "outputs": [], + "source": [ + "mic_comparator = MIC()\n", + "\n", + "comparer = PairwiseCompareManager(\n", + " _df=staindf.copy(),\n", + " _comparator=mic_comparator,\n", + " _different_columns=[\"Metadata_Stain\", \"Metadata_Condition\"],\n", + " _feat_cols=feat_cols\n", + ")\n", + "\n", + "micdf = comparer()" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "execution": { + "iopub.execute_input": "2024-10-18T21:34:06.734347Z", + "iopub.status.busy": "2024-10-18T21:34:06.734228Z", + "iopub.status.idle": "2024-10-18T21:34:06.738638Z", + "shell.execute_reply": "2024-10-18T21:34:06.738343Z" + }, + "jukit_cell_id": "rGAPBpItug" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
mic_eMetadata_Stain__antehoc_group0Metadata_Stain__antehoc_group1Metadata_Condition__posthoc_group0Metadata_Condition__posthoc_group1
00.767101A647DAPIALY kd5ALY kd8
10.678485A647DAPIALY kd5DDX39A kd1
20.830519A647DAPIALY kd5DDX39A kd4
30.727970A647DAPIALY kd5FIBP kd6
40.718055A647DAPIALY kd5FIBP kd7
\n", + "
" + ], + "text/plain": [ + " mic_e Metadata_Stain__antehoc_group0 Metadata_Stain__antehoc_group1 \\\n", + "0 0.767101 A647 DAPI \n", + "1 0.678485 A647 DAPI \n", + "2 0.830519 A647 DAPI \n", + "3 0.727970 A647 DAPI \n", + "4 0.718055 A647 DAPI \n", + "\n", + " Metadata_Condition__posthoc_group0 Metadata_Condition__posthoc_group1 \n", + "0 ALY kd5 ALY kd8 \n", + "1 ALY kd5 DDX39A kd1 \n", + "2 ALY kd5 DDX39A kd4 \n", + "3 ALY kd5 FIBP kd6 \n", + "4 ALY kd5 FIBP kd7 " + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "micdf.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "jukit_cell_id": "K9KWpg6A7A" + }, + "source": [ + "## Compare between different stains, conditions, and wells\n", + "Excludes wells from the output dataframe" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "execution": { + "iopub.execute_input": "2024-10-18T21:34:06.740234Z", + "iopub.status.busy": "2024-10-18T21:34:06.740016Z", + "iopub.status.idle": "2024-10-18T21:34:07.422306Z", + "shell.execute_reply": "2024-10-18T21:34:07.421944Z" + }, + "jukit_cell_id": "OHRc2Dyid6" + }, + "outputs": [], + "source": [ + "mic_comparator = MIC()\n", + "\n", + "comparer = PairwiseCompareManager(\n", + " _df=staindf.copy(),\n", + " _comparator=mic_comparator,\n", + " _different_columns=[\"Metadata_Stain\", \"Metadata_Plate\", \"Metadata_Well\"],\n", + " _feat_cols=feat_cols,\n", + " _drop_cols=[\"Metadata_Well\"]\n", + ")\n", + "\n", + "micdf = comparer()" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "execution": { + "iopub.execute_input": "2024-10-18T21:34:07.423849Z", + "iopub.status.busy": "2024-10-18T21:34:07.423731Z", + "iopub.status.idle": "2024-10-18T21:34:07.428525Z", + "shell.execute_reply": "2024-10-18T21:34:07.428225Z" + }, + "jukit_cell_id": "P0NrEe8xrX" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
mic_eMetadata_Stain__antehoc_group0Metadata_Stain__antehoc_group1Metadata_Plate__posthoc_group0Metadata_Plate__posthoc_group1Metadata_Well__posthoc_group0Metadata_Well__posthoc_group1
00.857133A647DAPIslide1slide2A1A2
10.818074A647DAPIslide1slide2A1A3
20.693374A647DAPIslide1slide2A1A4
30.558206A647DAPIslide1slide2A1B1
40.782552A647DAPIslide1slide2A1B2
\n", + "
" + ], + "text/plain": [ + " mic_e Metadata_Stain__antehoc_group0 Metadata_Stain__antehoc_group1 \\\n", + "0 0.857133 A647 DAPI \n", + "1 0.818074 A647 DAPI \n", + "2 0.693374 A647 DAPI \n", + "3 0.558206 A647 DAPI \n", + "4 0.782552 A647 DAPI \n", + "\n", + " Metadata_Plate__posthoc_group0 Metadata_Plate__posthoc_group1 \\\n", + "0 slide1 slide2 \n", + "1 slide1 slide2 \n", + "2 slide1 slide2 \n", + "3 slide1 slide2 \n", + "4 slide1 slide2 \n", + "\n", + " Metadata_Well__posthoc_group0 Metadata_Well__posthoc_group1 \n", + "0 A1 A2 \n", + "1 A1 A3 \n", + "2 A1 A4 \n", + "3 A1 B1 \n", + "4 A1 B2 " + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "micdf.head()" + ] + } + ], + "metadata": { + "anaconda-cloud": {}, + "kernelspec": { + "display_name": "python", + "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.10.15" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/utils/Comparator.py b/utils/Comparator.py new file mode 100644 index 0000000..fe1e5a9 --- /dev/null +++ b/utils/Comparator.py @@ -0,0 +1,16 @@ +from abc import ABC, abstractmethod + + +class Comparator(ABC): + + @abstractmethod + def save_groups(self, _cols, _drop_cols, _groups): + pass + + @abstractmethod + def _preprocess_data(self): + pass + + @abstractmethod + def __call__(self, _group0, _group1): + pass diff --git a/utils/MIC.py b/utils/MIC.py new file mode 100644 index 0000000..2fe0af8 --- /dev/null +++ b/utils/MIC.py @@ -0,0 +1,51 @@ +from collections import defaultdict +from typing import Optional + +import pandas as pd +from Comparator import Comparator +from minepy import MINE + + +class MIC(Comparator): + """Computes and stores group and Maximal Information Coefficient (MIC) data between paired groups""" + + def __init__(self, _comparison_name: str = "mic_e", _mine_params: Optional[dict[str, str]] = None): + self._comparisons = defaultdict(list) + + self._comparison_name = _comparison_name + + if _mine_params: + self._mine_params = _mine_params + + else: + self._mine_params = { + "est": "mic_e" + } + + def save_groups(self, _group_cols: list[str], **_groups: dict[str, pd.DataFrame]): + """Save column values defining comparison groups""" + + for idx, col in enumerate(_group_cols): + for group_name, group in _groups.items(): + if len(_group_cols) > 1: + self._comparisons[f"{col}__{group_name}"].append(group[idx]) + else: + self._comparisons[f"{col}__{group_name}"].append(group) + + def _preprocess_data(self): + self._group0, self._group1 = self._group0.iloc[0].values, self._group1.iloc[0].values + + @property + def comparisons(self): + return self._comparisons + + def __call__(self, _group0: pd.DataFrame, _group1: pd.DataFrame): + """Compute Comparisons between groups""" + + self._group0, self._group1 = _group0, _group1 + self._preprocess_data() + + mine = MINE(**self._mine_params) + + mine.compute_score(self._group0, self._group1) + self._comparisons[self._comparison_name].append(mine.mic()) diff --git a/utils/PairwiseCompare.py b/utils/PairwiseCompare.py new file mode 100644 index 0000000..27732cd --- /dev/null +++ b/utils/PairwiseCompare.py @@ -0,0 +1,249 @@ +import warnings +from collections.abc import Iterable +from itertools import combinations, product +from typing import Optional + +import pandas as pd +from Comparator import Comparator + + +class PairwiseCompare: + """ + Compute inter or intra group comparisons between objects. + """ + + def __init__( + self, + _df: pd.DataFrame, + _comparator: Comparator, + _antehoc_group_cols: list[str], + _posthoc_group_cols: list[str], + _feat_cols: list[str], + _one_different_comparison: bool = False, + _drop_cols: Optional[list[str]] = None + ): + """ + Perform Input validation and initializations. + + Parameters + ---------- + _df: + Contains the features and group columns to use for comparing paired data. + + _comparator: + Defines how to perform and save comparisons. + + _antehoc_group_cols: + Columns to groupby before organizing by _posthoc_group_cols. + + _feat_cols: + Feature columns for creating comparisons. + + _posthoc_group_cols: + Columns to groupby after organizing by _antehoc_group_cols. + + _one_different_comparison: + Type of comparison. If True, only one column value needs to be different between two groups for both group to be considered different. + Otherwise, all column values need to be different for both groups to be considered different. + + _drop_cols: + Columns to not save in the final output. + """ + + if not isinstance(_df, pd.DataFrame): + raise TypeError("Expected a Pandas DataFrame.") + + if not isinstance(_comparator, Comparator): + raise TypeError("Expected type Comparator.") + + self.__is_iterable_with_strings(_antehoc_group_cols) + self.__is_iterable_with_strings(_posthoc_group_cols) + self.__is_iterable_with_strings(_feat_cols) + + if _df.empty: + raise ValueError("DataFrame is empty") + + missing_cols = (set(_antehoc_group_cols) | set(_posthoc_group_cols) | set(_feat_cols)) - set(_df.columns) + + if missing_cols: + raise ValueError(f"Missing columns {missing_cols}") + + if any([not pd.api.types.is_numeric_dtype(_df[col].dtype) for col in _feat_cols]): + raise TypeError("At least one of the feature columns is not a numerical data type.") + + if _df.isna().any().any(): + warnings.warn("DataFrame contains NaNs") + + if not _drop_cols: + self.__drop_cols = [] + + else: + self.__is_iterable_with_strings(_drop_cols) + self.__drop_cols = _drop_cols + + + self.__df = _df + self.__comparator = _comparator + self.__feat_cols = _feat_cols + self.__one_different_comparison = _one_different_comparison + + group_suffixes = ("_group0", "_group1") + + self.__posthoc_group_names = [f"posthoc{suffix}" for suffix in group_suffixes] + self.__antehoc_group_names = [f"antehoc{suffix}" for suffix in group_suffixes] + + self.__antehoc_group_cols = _antehoc_group_cols + self.__posthoc_group_cols = _posthoc_group_cols + + self.__filtered_antehoc_group_cols, self.__filtered_antehoc_group_names = self.__get_group_fields( + _group_cols=self.__antehoc_group_cols, + _group_names=self.__antehoc_group_names + ) + + self.__filtered_posthoc_group_cols, self.__filtered_posthoc_group_names = self.__get_group_fields( + _group_cols=self.__posthoc_group_cols, + _group_names=self.__posthoc_group_names + ) + + + def __warn_empty_comparisons(self, _comparison_type_name): + + warnings.warn(f"{_comparison_type_name} were empty", UserWarning) + + + def __is_iterable_with_strings(self, _data_structure): + + prefix_msg = "Expected an Iterable of Strings." + + if isinstance(_data_structure, str): + raise TypeError(f"{prefix_msg} Data is of type String.") + + elif not isinstance(_data_structure, Iterable): + raise TypeError(f"{prefix_msg} Data is not an Iterable.") + + elif isinstance(_data_structure, Iterable): + if any(not isinstance(element, str) for element in _data_structure): + raise TypeError(f"{prefix_msg} Data in Iterable is not of type String.") + + + def __get_group_fields(self, _group_cols, _group_names): + """Get group fields after removing dropped columns.""" + + return zip(*[ + (ante_group_col, ante_group_name) + for ante_group_col, ante_group_name in + zip(_group_cols, _group_names) + if ante_group_col not in self.__drop_cols + ]) + + + def __contains_match(self, _groups): + """Check if the same features between both groups are the same value.""" + + if not self.__one_different_comparison: + if len(self.__posthoc_group_cols) == 1: + if _groups[0] == _groups[1]: + return True + + else: + if any([_groups[0][i] == _groups[1][i] for i in range(len(_groups[0]))]): + return True + + return False + + + def inter_comparisons(self): + """ + Computes comparisons between two pandas rows using both post hoc and ante groups. + This is accomplished by computing comparisons between these rows in different ante groups (inter comparisons) and between all possible post hoc comparisons between those groups. + """ + + groupdf = self.__df.groupby(self.__antehoc_group_cols) + + # Retrieve keys for the ante group + gkeys = groupdf.groups.keys() + + # Find all possible combinations of size 2 ante group keys + apairs = list(combinations(gkeys, 2)) + + # Iterate through each ante group combination + for apair in apairs: + + if self.__contains_match(apair): + continue + + # Extract the keys for the first post hoc group + group0df = groupdf.get_group(apair[0]).copy() + group0df = group0df.groupby(self.__posthoc_group_cols)[self.__feat_cols] + group0_keys = group0df.groups.keys() + + # Extract the keys for the second post hoc group + group1df = groupdf.get_group(apair[1]).copy() + group1df = group1df.groupby(self.__posthoc_group_cols)[self.__feat_cols] + group1_keys = group1df.groups.keys() + + comparison_key_product = list(product(group0_keys, group1_keys)) + + if not comparison_key_product: + self.__warn_empty_comparisons(_comparison_type_name="Inter Comparisons") + continue + + # Iterate through each well group cartesian product and save the data + for ppair in comparison_key_product: + + if self.__contains_match(ppair): + continue + + self.__comparator(group0df.get_group(ppair[0]), group1df.get_group(ppair[1])) + + self.__comparator.save_groups( + self.__antehoc_group_cols, + **dict(zip(self.__antehoc_group_names, apair)) + ) + + self.__comparator.save_groups( + self.__posthoc_group_cols, + **dict(zip(self.__posthoc_group_names, ppair)) + ) + + + def intra_comparisons(self): + """ + Computes comparisons between two pandas rows using both post hoc and ante groups. + This is accomplished by computing comparisons between these rows only in the same ante group (intra comparisons), but between different post hoc groups. + """ + + groupdf = self.__df.groupby(self.__antehoc_group_cols) + + # Retrieve keys for the ante group + akeys = groupdf.groups.keys() + + # Iterate through each ante group combination + for agroup in akeys: + + # Extract keys for poshoc group columns + group = groupdf.get_group(agroup).copy() + group = group.groupby(self.__posthoc_group_cols)[self.__feat_cols] + group_keys = group.groups.keys() + + comparison_key_combinations = list(combinations(group_keys, 2)) + + if not comparison_key_combinations: + self.__warn_empty_comparisons(_comparison_type_name="Intra Comparisons") + continue + + # Iterate through the combinations pairs of the groups + for ppair in comparison_key_combinations: + + if self.__contains_match(ppair): + continue + + self.__comparator.save_groups( + self.__filtered_antehoc_group_cols, + **dict(zip(self.__filtered_antehoc_group_names, (agroup, agroup))) + ) + + self.__comparator.save_groups( + self.__filtered_posthoc_group_cols, + **dict(zip(self.__filtered_posthoc_group_names, ppair)) + ) diff --git a/utils/PairwiseCompareManager.py b/utils/PairwiseCompareManager.py new file mode 100644 index 0000000..22eff87 --- /dev/null +++ b/utils/PairwiseCompareManager.py @@ -0,0 +1,55 @@ +from typing import Optional + +import pandas as pd +from Comparator import Comparator +from PairwiseCompare import PairwiseCompare + + +class PairwiseCompareManager: + + def __init__( + self, + _df: pd.DataFrame, + _different_columns: list[str], + _feat_cols: list[str], + _comparator: Comparator, + _same_columns: Optional[list[str]] = None, + _drop_cols: Optional[list[str]] = None + ): + """ + _same_columns: The values of these columns must all be the same when comparing any two instances (rows). + _different_columns: The values of these columns must all be different when comparing any two instances (rows). + """ + + if (not _same_columns and len(_different_columns) == 1): + raise ValueError("Must specify at least two different columns or at least one different column and at least one same column.") + + if len(_feat_cols) == 0: + raise ValueError("You must specify at least one feature to compare between samples") + + self._comparator = _comparator + + if len(_different_columns) >= 2 and not _same_columns: + pairwise_compare_obj = PairwiseCompare( + _df=_df, + _comparator=_comparator, + _antehoc_group_cols=_different_columns[:1], + _posthoc_group_cols=_different_columns[1:], + _feat_cols=_feat_cols, + _drop_cols=_drop_cols + ) + pairwise_compare_obj.inter_comparisons() + + elif len(_different_columns) >= 1 and len(_same_columns) >= 1: + pairwise_compare_obj = PairwiseCompare( + _df=_df, + _comparator=_comparator, + _antehoc_group_cols=_same_columns, + _posthoc_group_cols=_different_columns, + _feat_cols=_feat_cols, + _drop_cols=_drop_cols + ) + pairwise_compare_obj.intra_comparisons() + + def __call__(self): + return pd.DataFrame(self._comparator.comparisons) diff --git a/utils/ShuffledMIC.py b/utils/ShuffledMIC.py new file mode 100644 index 0000000..fcc4dea --- /dev/null +++ b/utils/ShuffledMIC.py @@ -0,0 +1,10 @@ +import numpy as np +from MIC import MIC + + +class ShuffledMIC(MIC): + + def _preprocess_data(self): + self._group0, self._group1 = self._group0.iloc[0].values, self._group1.iloc[0].values + np.random.shuffle(self._group0) + np.random.shuffle(self._group1) From a391d986fc0d054bf1eee5d59828cc0a49eca8be Mon Sep 17 00:00:00 2001 From: Cameron Mattson Date: Wed, 13 Nov 2024 14:46:42 -0700 Subject: [PATCH 02/16] Added some comments, added data submodule, updated comparators and PairwiseCompare modules from using pr comments and deprecation warnings. Modifies the example code to use data from the data submodule. --- .gitmodules | 3 + docs/data/nf1_schwann_cell_painting_data | 1 + .../example_pairwise_comparisons.ipynb | 0 {utils => src}/PairwiseCompare.py | 70 ++++++++++++++----- {utils => src}/PairwiseCompareManager.py | 0 {utils => src/comparators}/Comparator.py | 0 {utils => src/comparators}/MIC.py | 0 {utils => src/comparators}/ShuffledMIC.py | 0 8 files changed, 55 insertions(+), 19 deletions(-) create mode 100644 .gitmodules create mode 160000 docs/data/nf1_schwann_cell_painting_data rename example_pairwise_comparisons.ipynb => docs/example_pairwise_comparisons.ipynb (100%) rename {utils => src}/PairwiseCompare.py (77%) rename {utils => src}/PairwiseCompareManager.py (100%) rename {utils => src/comparators}/Comparator.py (100%) rename {utils => src/comparators}/MIC.py (100%) rename {utils => src/comparators}/ShuffledMIC.py (100%) diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..ef3d422 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "docs/data/nf1_schwann_cell_painting_data"] + path = docs/data/nf1_schwann_cell_painting_data + url = git@github.com:WayScience/nf1_schwann_cell_painting_data.git diff --git a/docs/data/nf1_schwann_cell_painting_data b/docs/data/nf1_schwann_cell_painting_data new file mode 160000 index 0000000..74069b9 --- /dev/null +++ b/docs/data/nf1_schwann_cell_painting_data @@ -0,0 +1 @@ +Subproject commit 74069b98883320bf0a5e755d76453edd6ae1e7e7 diff --git a/example_pairwise_comparisons.ipynb b/docs/example_pairwise_comparisons.ipynb similarity index 100% rename from example_pairwise_comparisons.ipynb rename to docs/example_pairwise_comparisons.ipynb diff --git a/utils/PairwiseCompare.py b/src/PairwiseCompare.py similarity index 77% rename from utils/PairwiseCompare.py rename to src/PairwiseCompare.py index 27732cd..f6e6a5d 100644 --- a/utils/PairwiseCompare.py +++ b/src/PairwiseCompare.py @@ -68,7 +68,7 @@ def __init__( if missing_cols: raise ValueError(f"Missing columns {missing_cols}") - if any([not pd.api.types.is_numeric_dtype(_df[col].dtype) for col in _feat_cols]): + if any(not pd.api.types.is_numeric_dtype(_df[col].dtype) for col in _feat_cols): raise TypeError("At least one of the feature columns is not a numerical data type.") if _df.isna().any().any(): @@ -95,16 +95,19 @@ def __init__( self.__antehoc_group_cols = _antehoc_group_cols self.__posthoc_group_cols = _posthoc_group_cols - self.__filtered_antehoc_group_cols, self.__filtered_antehoc_group_names = self.__get_group_fields( + self.__filtered_antehoc_group_cols = self.__get_group_fields( _group_cols=self.__antehoc_group_cols, - _group_names=self.__antehoc_group_names ) - self.__filtered_posthoc_group_cols, self.__filtered_posthoc_group_names = self.__get_group_fields( + self.__filtered_posthoc_group_cols = self.__get_group_fields( _group_cols=self.__posthoc_group_cols, - _group_names=self.__posthoc_group_names ) + print(self.__antehoc_group_cols) + print(self.__posthoc_group_cols) + print(self.__filtered_antehoc_group_cols) + print(self.__filtered_posthoc_group_cols) + print(type(self.__filtered_posthoc_group_cols)) def __warn_empty_comparisons(self, _comparison_type_name): @@ -126,15 +129,13 @@ def __is_iterable_with_strings(self, _data_structure): raise TypeError(f"{prefix_msg} Data in Iterable is not of type String.") - def __get_group_fields(self, _group_cols, _group_names): + def __get_group_fields(self, _group_cols): """Get group fields after removing dropped columns.""" - return zip(*[ - (ante_group_col, ante_group_name) - for ante_group_col, ante_group_name in - zip(_group_cols, _group_names) - if ante_group_col not in self.__drop_cols - ]) + return [ + group_col for group_col in _group_cols + if group_col not in self.__drop_cols + ] def __contains_match(self, _groups): @@ -146,10 +147,10 @@ def __contains_match(self, _groups): return True else: - if any([_groups[0][i] == _groups[1][i] for i in range(len(_groups[0]))]): + if any(_groups[0][i] == _groups[1][i] for i in range(len(_groups[0]))): return True - return False + return False def inter_comparisons(self): @@ -172,13 +173,21 @@ def inter_comparisons(self): if self.__contains_match(apair): continue + apair0 = apair[0] + apair1 = apair[1] + + # Avoids a future deprecation in the pandas get_group method + if not isinstance(apair0, tuple) or not isinstance(apair1, tuple): + apair0 = (apair0,) + apair1 = (apair1,) + # Extract the keys for the first post hoc group - group0df = groupdf.get_group(apair[0]).copy() + group0df = groupdf.get_group(apair0).copy() group0df = group0df.groupby(self.__posthoc_group_cols)[self.__feat_cols] group0_keys = group0df.groups.keys() # Extract the keys for the second post hoc group - group1df = groupdf.get_group(apair[1]).copy() + group1df = groupdf.get_group(apair1).copy() group1df = group1df.groupby(self.__posthoc_group_cols)[self.__feat_cols] group1_keys = group1df.groups.keys() @@ -194,7 +203,15 @@ def inter_comparisons(self): if self.__contains_match(ppair): continue - self.__comparator(group0df.get_group(ppair[0]), group1df.get_group(ppair[1])) + ppair0 = ppair[0] + ppair1 = ppair[1] + + # Avoids a future deprecation in the pandas get_group method + if not isinstance(ppair0, tuple) or not isinstance(ppair1, tuple): + ppair0 = (ppair0,) + ppair1 = (ppair1,) + + self.__comparator(group0df.get_group(ppair0), group1df.get_group(ppair1)) self.__comparator.save_groups( self.__antehoc_group_cols, @@ -207,6 +224,7 @@ def inter_comparisons(self): ) + def intra_comparisons(self): """ Computes comparisons between two pandas rows using both post hoc and ante groups. @@ -221,6 +239,10 @@ def intra_comparisons(self): # Iterate through each ante group combination for agroup in akeys: + # Avoids a future deprecation in the pandas get_group method + if not isinstance(agroup, tuple): + agroup = (agroup,) + # Extract keys for poshoc group columns group = groupdf.get_group(agroup).copy() group = group.groupby(self.__posthoc_group_cols)[self.__feat_cols] @@ -238,12 +260,22 @@ def intra_comparisons(self): if self.__contains_match(ppair): continue + ppair0 = ppair[0] + ppair1 = ppair[1] + + # Avoids a future deprecation in the pandas get_group method + if not isinstance(ppair0, tuple) or not isinstance(ppair1, tuple): + ppair0 = (ppair0,) + ppair1 = (ppair1,) + + self.__comparator(group.get_group(ppair0), group.get_group(ppair1)) + self.__comparator.save_groups( self.__filtered_antehoc_group_cols, - **dict(zip(self.__filtered_antehoc_group_names, (agroup, agroup))) + **dict(zip(self.__antehoc_group_names, (agroup, agroup))) ) self.__comparator.save_groups( self.__filtered_posthoc_group_cols, - **dict(zip(self.__filtered_posthoc_group_names, ppair)) + **dict(zip(self.__posthoc_group_names, ppair)) ) diff --git a/utils/PairwiseCompareManager.py b/src/PairwiseCompareManager.py similarity index 100% rename from utils/PairwiseCompareManager.py rename to src/PairwiseCompareManager.py diff --git a/utils/Comparator.py b/src/comparators/Comparator.py similarity index 100% rename from utils/Comparator.py rename to src/comparators/Comparator.py diff --git a/utils/MIC.py b/src/comparators/MIC.py similarity index 100% rename from utils/MIC.py rename to src/comparators/MIC.py diff --git a/utils/ShuffledMIC.py b/src/comparators/ShuffledMIC.py similarity index 100% rename from utils/ShuffledMIC.py rename to src/comparators/ShuffledMIC.py From a2b2ef816c1544067890fd2f22c24aa1af4496ff Mon Sep 17 00:00:00 2001 From: Cameron Mattson Date: Wed, 13 Nov 2024 16:49:40 -0700 Subject: [PATCH 03/16] Remove submodule from old path --- .gitmodules | 3 --- docs/data/nf1_schwann_cell_painting_data | 1 - 2 files changed, 4 deletions(-) delete mode 160000 docs/data/nf1_schwann_cell_painting_data diff --git a/.gitmodules b/.gitmodules index ef3d422..e69de29 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +0,0 @@ -[submodule "docs/data/nf1_schwann_cell_painting_data"] - path = docs/data/nf1_schwann_cell_painting_data - url = git@github.com:WayScience/nf1_schwann_cell_painting_data.git diff --git a/docs/data/nf1_schwann_cell_painting_data b/docs/data/nf1_schwann_cell_painting_data deleted file mode 160000 index 74069b9..0000000 --- a/docs/data/nf1_schwann_cell_painting_data +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 74069b98883320bf0a5e755d76453edd6ae1e7e7 From 993927677528aba7c6f206412b17d3bca46531f3 Mon Sep 17 00:00:00 2001 From: Cameron Mattson Date: Wed, 20 Nov 2024 14:04:53 -0700 Subject: [PATCH 04/16] Updated multiple files based on pr comments. Added the NF1 cell dataset, and modified example comparisons code. Added init files for path management and poetry files for package/dependency management. --- .gitmodules | 3 + README.md | 28 +- data/nf1_schwann_cell_painting_data | 1 + docs/example_pairwise_comparisons.ipynb | 1494 ++++---- poetry.lock | 3129 +++++++++++++++++ pyproject.toml | 34 + src/PairwiseCompareManager.py | 55 - src/comparators/Comparator.py | 35 +- src/comparators/MIC.py | 50 +- src/comparators/PearsonsCorrelation.py | 58 + src/comparators/ShuffledMIC.py | 7 +- src/comparators/__init__.py | 0 src/{ => comparison_tools}/PairwiseCompare.py | 40 +- .../PairwiseCompareManager.py | 89 + src/comparison_tools/__init__.py | 0 15 files changed, 4047 insertions(+), 976 deletions(-) create mode 160000 data/nf1_schwann_cell_painting_data create mode 100644 poetry.lock create mode 100644 pyproject.toml delete mode 100644 src/PairwiseCompareManager.py create mode 100644 src/comparators/PearsonsCorrelation.py create mode 100644 src/comparators/__init__.py rename src/{ => comparison_tools}/PairwiseCompare.py (92%) create mode 100644 src/comparison_tools/PairwiseCompareManager.py create mode 100644 src/comparison_tools/__init__.py diff --git a/.gitmodules b/.gitmodules index e69de29..39a9e58 100644 --- a/.gitmodules +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "data/nf1_schwann_cell_painting_data"] + path = data/nf1_schwann_cell_painting_data + url = git@github.com:WayScience/nf1_schwann_cell_painting_data.git diff --git a/README.md b/README.md index 583c224..c029a0c 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,28 @@ # pairwise_compare -This tool allows the user to compare instances (rows) of data specified in a tidy pandas dataframe with ease. +This tool allows the user to compare groups of data specified in a tidy-wide pandas dataframe with ease. In this repo the capabilities of the PairwiseCompareManger are shown through an example using the nuclear speckle data (`example_pairwise_comparisons.ipynb`). -Although, most of the development efforts can be found in the `utils` folder. +Although, most of the development efforts can be found in the `src` folder. +Users should almost exclusively interact with the PairwiseCompareManager, however, there may be rare exceptions. +If you choose to interact with another component of the tool, then there will be less input validation safeguards available. + +## Data Formats +When passing arguments to the `PairwiseCompareManager` you can specify the columns that remain the same in each group-to-group comparison, and the columns that will be different in these comparisons. +These columns are parameterized by `_same_columns` and `_different_columns`, respectively. +The column values in these columns uniquely define each group. +During pairwise comparisons of groups, all of the column values of the columns specified in `_same_columns` will be the same between both groups compared for all paired combinations of groups. +Likewise, all of the column values of the columns specified in `_different_columns` will be different between both groups compared for all paired combinations of groups. + +One of the following column arguments conditions must be satisified when using the `PairwiseCompareManager`: +1. `_same_columns` must include at least one list element if `_different_columns` has less than two list elements. +2. `_different_columns` must contain one or more list elements. +3. `_same_columns` and `_different_columns` should not contain any of the same columns. ## Limitations -Some input validation has be enforced, although not exclusively. -For example, you should not specify the same column name in both the _same_columns list and _different_columns list. +1. Input validation is enforced in the `PairwiseCompareManager` and `PairwiseCompare` classes. +2. Additional column values are not tracked aside from columns used to compare groups (_same_columns, _different_columns). +3. Output and input python data structures are limited. +4. All of the data, in the supplied pandas dataframe, is used to compute comparisons. ## Extensibility -This tool is designed to compare feature between any two different rows within a tidy pandas dataframe. -To include additional comparisons, you will need to introduce the functionality as a class and inherit from the Comparator class. +This tool compares features between any two groups of a tidy-wide pandas dataframe. +To incorporate additional comparators for making comparisons, you must introduce the functionality as a class and inherit from the `Comparator` class (See `Comparator.py` for details). diff --git a/data/nf1_schwann_cell_painting_data b/data/nf1_schwann_cell_painting_data new file mode 160000 index 0000000..74069b9 --- /dev/null +++ b/data/nf1_schwann_cell_painting_data @@ -0,0 +1 @@ +Subproject commit 74069b98883320bf0a5e755d76453edd6ae1e7e7 diff --git a/docs/example_pairwise_comparisons.ipynb b/docs/example_pairwise_comparisons.ipynb index dc954f3..1e7e6d9 100644 --- a/docs/example_pairwise_comparisons.ipynb +++ b/docs/example_pairwise_comparisons.ipynb @@ -3,13 +3,12 @@ { "cell_type": "markdown", "metadata": { - "jukit_cell_id": "diZkzamaCr" + "jukit_cell_id": "iPcbHzi4Te" }, "source": [ "# Examples of using the PairwiseCompareManager\n", - "There are two primary steps:\n", - "1. Organize your data into a tidy pandas dataframe.\n", - "2. Compute the comparisons." + "This notebook shows examples on the NF1 dataset of how to compare instances of different groups.\n", + "Each instance is a unique well with Schwann Cells." ] }, { @@ -17,10 +16,10 @@ "execution_count": 1, "metadata": { "execution": { - "iopub.execute_input": "2024-10-18T21:34:04.262281Z", - "iopub.status.busy": "2024-10-18T21:34:04.262128Z", - "iopub.status.idle": "2024-10-18T21:34:04.498946Z", - "shell.execute_reply": "2024-10-18T21:34:04.498499Z" + "iopub.execute_input": "2024-11-20T20:49:54.609480Z", + "iopub.status.busy": "2024-11-20T20:49:54.609363Z", + "iopub.status.idle": "2024-11-20T20:49:54.802182Z", + "shell.execute_reply": "2024-11-20T20:49:54.801698Z" }, "jukit_cell_id": "JlHVCFc6jg" }, @@ -32,47 +31,6 @@ "import pandas as pd" ] }, - { - "cell_type": "markdown", - "metadata": { - "jukit_cell_id": "09DzTtojev" - }, - "source": [ - "## Find the root of the git repo on the host system" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "execution": { - "iopub.execute_input": "2024-10-18T21:34:04.501231Z", - "iopub.status.busy": "2024-10-18T21:34:04.500841Z", - "iopub.status.idle": "2024-10-18T21:34:04.503750Z", - "shell.execute_reply": "2024-10-18T21:34:04.503391Z" - }, - "jukit_cell_id": "ZSBTA9IqxD" - }, - "outputs": [], - "source": [ - "# Get the current working directory\n", - "cwd = pathlib.Path.cwd()\n", - "\n", - "if (cwd / \".git\").is_dir():\n", - " root_dir = cwd\n", - "\n", - "else:\n", - " root_dir = None\n", - " for parent in cwd.parents:\n", - " if (parent / \".git\").is_dir():\n", - " root_dir = parent\n", - " break\n", - "\n", - "# Check if a Git root directory was found\n", - "if root_dir is None:\n", - " raise FileNotFoundError(\"No Git root directory found.\")" - ] - }, { "cell_type": "markdown", "metadata": { @@ -84,22 +42,20 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": { "execution": { - "iopub.execute_input": "2024-10-18T21:34:04.505424Z", - "iopub.status.busy": "2024-10-18T21:34:04.505092Z", - "iopub.status.idle": "2024-10-18T21:34:04.508691Z", - "shell.execute_reply": "2024-10-18T21:34:04.508334Z" + "iopub.execute_input": "2024-11-20T20:49:54.803965Z", + "iopub.status.busy": "2024-11-20T20:49:54.803771Z", + "iopub.status.idle": "2024-11-20T20:49:54.806859Z", + "shell.execute_reply": "2024-11-20T20:49:54.806473Z" }, "jukit_cell_id": "KnQdvFxPkd" }, "outputs": [], "source": [ - "sys.path.append(f\"{root_dir}/0.data_analysis_and_processing/utils\")\n", - "\n", - "from MIC import MIC\n", - "from PairwiseCompareManager import PairwiseCompareManager" + "from comparators.PearsonsCorrelation import PearsonsCorrelation\n", + "from comparison_tools.PairwiseCompareManager import PairwiseCompareManager" ] }, { @@ -113,425 +69,47 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": { "execution": { - "iopub.execute_input": "2024-10-18T21:34:04.510250Z", - "iopub.status.busy": "2024-10-18T21:34:04.509978Z", - "iopub.status.idle": "2024-10-18T21:34:04.988565Z", - "shell.execute_reply": "2024-10-18T21:34:04.988173Z" + "iopub.execute_input": "2024-11-20T20:49:54.808060Z", + "iopub.status.busy": "2024-11-20T20:49:54.807870Z", + "iopub.status.idle": "2024-11-20T20:49:54.858284Z", + "shell.execute_reply": "2024-11-20T20:49:54.857869Z" }, "jukit_cell_id": "dlU1p2c9cE" }, "outputs": [], "source": [ "# Paths to original nuclear speckle data\n", - "data_dir = root_dir / \"nuclear_speckles_data\"\n", - "nuclear_mask_dir = (data_dir / \"Nuclear_masks\").resolve(strict=True)\n", - "sc_profiles_path = list((data_dir / \"Preprocessed_data/single_cell_profiles\").resolve(strict=True).glob(\"*feature_selected*.parquet\"))\n", - "\n", - "# Load single-cell profile data\n", - "scdfs = [pd.read_parquet(sc_path) for sc_path in sc_profiles_path if sc_path.is_file()]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "jukit_cell_id": "2nCHpCWHPX" - }, - "source": [ - "# Outputs" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "execution": { - "iopub.execute_input": "2024-10-18T21:34:04.990618Z", - "iopub.status.busy": "2024-10-18T21:34:04.990382Z", - "iopub.status.idle": "2024-10-18T21:34:04.992656Z", - "shell.execute_reply": "2024-10-18T21:34:04.992383Z" - }, - "jukit_cell_id": "i6nQ6vwPOY" - }, - "outputs": [], - "source": [ - "distribution_figures_path = pathlib.Path(\"well_sirna_mic_distribution_figures\")\n", - "distribution_figures_path.mkdir(parents=True, exist_ok=True)\n", - "\n", - "mic_comparisons_path = pathlib.Path(\"mic_comparisons_data\")\n", - "mic_comparisons_path.mkdir(parents=True, exist_ok=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "jukit_cell_id": "5HpdTkrhdj" - }, - "source": [ - "# Processing" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "jukit_cell_id": "AMY2NJE0ci" - }, - "source": [ - "## Combine Common Data\n", - "Column names are used to combine common single-cell data." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "execution": { - "iopub.execute_input": "2024-10-18T21:34:04.994070Z", - "iopub.status.busy": "2024-10-18T21:34:04.993880Z", - "iopub.status.idle": "2024-10-18T21:34:05.374789Z", - "shell.execute_reply": "2024-10-18T21:34:05.374306Z" - }, - "jukit_cell_id": "TfjgwzLhIQ" - }, - "outputs": [], - "source": [ - "common_columns = scdfs[0].columns\n", - "for scdf in scdfs[1:]:\n", - " common_columns = common_columns.intersection(scdf.columns)\n", - "\n", - "scdfs = pd.concat(scdfs, axis=0)[common_columns]" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "execution": { - "iopub.execute_input": "2024-10-18T21:34:05.376766Z", - "iopub.status.busy": "2024-10-18T21:34:05.376587Z", - "iopub.status.idle": "2024-10-18T21:34:05.593179Z", - "shell.execute_reply": "2024-10-18T21:34:05.592667Z" - }, - "jukit_cell_id": "GKjo1VAEwW" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " Metadata_CellLine Metadata_Condition Metadata_ImageNumber \\\n", - "0 786O NTC 1 \n", - "1 786O NTC 1 \n", - "2 786O NTC 1 \n", - "3 786O NTC 1 \n", - "4 786O NTC 1 \n", - "... ... ... ... \n", - "63354 293T untreated 407 \n", - "63355 293T untreated 407 \n", - "63356 293T untreated 407 \n", - "63357 293T untreated 407 \n", - "63358 293T untreated 407 \n", - "\n", - " Metadata_Plate Metadata_Well Metadata_Site Metadata_Nuclei_Site_Count \\\n", - "0 slide3 A1 M14 40 \n", - "1 slide3 A1 M14 40 \n", - "2 slide3 A1 M14 40 \n", - "3 slide3 A1 M14 40 \n", - "4 slide3 A1 M14 40 \n", - "... ... ... ... ... \n", - "63354 slide4 B4 M9 856 \n", - "63355 slide4 B4 M9 856 \n", - "63356 slide4 B4 M9 856 \n", - "63357 slide4 B4 M9 856 \n", - "63358 slide4 B4 M9 856 \n", - "\n", - " Metadata_Nuclei_Location_Center_X Metadata_Nuclei_Location_Center_Y \\\n", - "0 440.421603 78.968641 \n", - "1 419.490134 104.726914 \n", - "2 228.128582 1150.712626 \n", - "3 193.636493 1293.612259 \n", - "4 238.685272 1344.190989 \n", - "... ... ... \n", - "63354 259.852031 2265.419729 \n", - "63355 1031.180619 2264.759513 \n", - "63356 738.728900 2267.087809 \n", - "63357 2272.609593 2271.556609 \n", - "63358 824.547855 2280.754675 \n", - "\n", - " Nuclei_AreaShape_Area ... Nuclei_Texture_Correlation_DAPI_3_02_256 \\\n", - "0 -0.455396 ... 0.076553 \n", - "1 -0.768349 ... 0.440507 \n", - "2 1.681257 ... 0.442093 \n", - "3 -0.515006 ... -0.204978 \n", - "4 -0.358529 ... -0.196367 \n", - "... ... ... ... \n", - "63354 -1.231858 ... -1.567802 \n", - "63355 0.397688 ... 0.873889 \n", - "63356 -0.990121 ... 0.239501 \n", - "63357 0.088127 ... 0.637374 \n", - "63358 -1.449246 ... -0.091024 \n", - "\n", - " Nuclei_Texture_Correlation_DAPI_3_03_256 \\\n", - "0 -0.955255 \n", - "1 -0.935149 \n", - "2 -0.002420 \n", - "3 -1.124243 \n", - "4 -1.294883 \n", - "... ... \n", - "63354 -1.402389 \n", - "63355 0.957832 \n", - "63356 -0.726772 \n", - "63357 0.329904 \n", - "63358 -0.500739 \n", - "\n", - " Nuclei_Texture_Correlation_GOLD_3_00_256 \\\n", - "0 -4.683966 \n", - "1 -4.683966 \n", - "2 0.477625 \n", - "3 -0.895212 \n", - "4 -1.379071 \n", - "... ... \n", - "63354 -1.699914 \n", - "63355 0.256921 \n", - "63356 -1.723400 \n", - "63357 -0.938126 \n", - "63358 -0.604331 \n", - "\n", - " Nuclei_Texture_Correlation_GOLD_3_01_256 \\\n", - "0 -2.873172 \n", - "1 -2.873172 \n", - "2 0.364749 \n", - "3 -1.471390 \n", - "4 -0.299818 \n", - "... ... \n", - "63354 -0.362258 \n", - "63355 1.081944 \n", - "63356 -1.670593 \n", - "63357 -0.337367 \n", - "63358 -0.373327 \n", - "\n", - " Nuclei_Texture_Correlation_GOLD_3_02_256 \\\n", - "0 -4.635442 \n", - "1 -4.635442 \n", - "2 0.057439 \n", - "3 -0.572905 \n", - "4 -0.971546 \n", - "... ... \n", - "63354 -0.952431 \n", - "63355 0.885690 \n", - "63356 -1.738772 \n", - "63357 -0.740371 \n", - "63358 -1.485818 \n", - "\n", - " Nuclei_Texture_Correlation_GOLD_3_03_256 \\\n", - "0 -2.869097 \n", - "1 -2.869097 \n", - "2 0.136200 \n", - "3 0.140653 \n", - "4 -2.075405 \n", - "... ... \n", - "63354 -1.934467 \n", - "63355 0.074114 \n", - "63356 -1.688474 \n", - "63357 -0.793532 \n", - "63358 -0.784130 \n", - "\n", - " Nuclei_Texture_InfoMeas1_DAPI_3_00_256 \\\n", - "0 0.535714 \n", - "1 0.924185 \n", - "2 -0.671712 \n", - "3 0.708704 \n", - "4 0.974129 \n", - "... ... \n", - "63354 1.362543 \n", - "63355 -0.979198 \n", - "63356 0.486452 \n", - "63357 -0.346221 \n", - "63358 -0.147601 \n", - "\n", - " Nuclei_Texture_InfoMeas1_DAPI_3_01_256 \\\n", - "0 -0.182047 \n", - "1 -0.823399 \n", - "2 -0.987276 \n", - "3 0.449238 \n", - "4 -1.009551 \n", - "... ... \n", - "63354 1.128533 \n", - "63355 -0.663974 \n", - "63356 -0.761964 \n", - "63357 -0.534778 \n", - "63358 0.065643 \n", - "\n", - " Nuclei_Texture_InfoMeas1_DAPI_3_02_256 \\\n", - "0 0.502261 \n", - "1 0.023690 \n", - "2 -0.664844 \n", - "3 0.741110 \n", - "4 0.464294 \n", - "... ... \n", - "63354 1.162664 \n", - "63355 -1.025852 \n", - "63356 -1.088521 \n", - "63357 -1.008774 \n", - "63358 0.261785 \n", - "\n", - " Nuclei_Texture_InfoMeas1_DAPI_3_03_256 \n", - "0 0.791409 \n", - "1 -0.008731 \n", - "2 0.026038 \n", - "3 1.011587 \n", - "4 1.326281 \n", - "... ... \n", - "63354 1.229538 \n", - "63355 -0.825447 \n", - "63356 0.597475 \n", - "63357 -0.252631 \n", - "63358 0.245148 \n", - "\n", - "[240906 rows x 267 columns]\n" - ] - } - ], - "source": [ - "scdfs.dropna(inplace=True)\n", - "\n", - "print(scdfs)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "jukit_cell_id": "aV9CyQcjs6" - }, - "source": [ - "## Seperate Gold, A647, and Dapi Features" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": { - "execution": { - "iopub.execute_input": "2024-10-18T21:34:05.630910Z", - "iopub.status.busy": "2024-10-18T21:34:05.630743Z", - "iopub.status.idle": "2024-10-18T21:34:05.831320Z", - "shell.execute_reply": "2024-10-18T21:34:05.830858Z" - }, - "jukit_cell_id": "QqU4ieBlqx" - }, - "outputs": [], - "source": [ - "gold_scdfs = scdfs.loc[:, scdfs.columns.str.contains(\"GOLD|Metadata\", regex=True)]\n", - "a647_scdfs = scdfs.loc[:, scdfs.columns.str.contains(\"A647|Metadata\", regex=True)]\n", - "dapi_scdfs = scdfs.loc[:, scdfs.columns.str.contains(\"DAPI|Metadata\", regex=True)]\n", + "data_dir = pathlib.Path(\n", + " \"../data/nf1_schwann_cell_painting_data/3.processing_features/data/bulk_profiles\"\n", + ").resolve(strict=True)\n", "\n", - "gold_scdfs.columns = gold_scdfs.columns.str.replace('_GOLD', '', regex=False)\n", - "a647_scdfs.columns = gold_scdfs.columns.str.replace('_A647', '', regex=False)\n", - "dapi_scdfs.columns = dapi_scdfs.columns.str.replace('_DAPI', '', regex=False)" + "plate4df = pd.read_parquet(data_dir / \"Plate_4_bulk_feature_selected.parquet\")" ] }, { "cell_type": "markdown", "metadata": { - "jukit_cell_id": "jA516CWZ8B" + "jukit_cell_id": "ecmR6GvGEY" }, "source": [ - "## Combine Seperated Stain Features" + "# Process Plate 4\n", + "Each instance (row) represents a unique well." ] }, { "cell_type": "code", - "execution_count": 9, - "metadata": { - "execution": { - "iopub.execute_input": "2024-10-18T21:34:05.833338Z", - "iopub.status.busy": "2024-10-18T21:34:05.833211Z", - "iopub.status.idle": "2024-10-18T21:34:06.204188Z", - "shell.execute_reply": "2024-10-18T21:34:06.203724Z" - }, - "jukit_cell_id": "3SM0BccfzV" - }, - "outputs": [], - "source": [ - "gold_scdfs = gold_scdfs.assign(Metadata_Stain=\"GOLD\")\n", - "dapi_scdfs = dapi_scdfs.assign(Metadata_Stain=\"DAPI\")\n", - "a647_scdfs = a647_scdfs.assign(Metadata_Stain=\"A647\")\n", - "\n", - "common_cols = gold_scdfs.columns.intersection(dapi_scdfs.columns).intersection(a647_scdfs.columns)\n", - "scdfs = pd.concat([gold_scdfs[common_cols], dapi_scdfs[common_cols], a647_scdfs[common_cols]], axis=0)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "jukit_cell_id": "dYBpppmu4P" - }, - "source": [ - "## Specify Feature Metadata Columns" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": { - "execution": { - "iopub.execute_input": "2024-10-18T21:34:06.206206Z", - "iopub.status.busy": "2024-10-18T21:34:06.206080Z", - "iopub.status.idle": "2024-10-18T21:34:06.208452Z", - "shell.execute_reply": "2024-10-18T21:34:06.208161Z" - }, - "jukit_cell_id": "Xvk0z6s5YD" - }, - "outputs": [], - "source": [ - "feat_cols = scdfs.columns[~scdfs.columns.str.contains(\"Metadata\")]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "jukit_cell_id": "DpDVSA22OS" - }, - "source": [ - "## Mean Aggregation to the Well Level" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": { - "execution": { - "iopub.execute_input": "2024-10-18T21:34:06.209893Z", - "iopub.status.busy": "2024-10-18T21:34:06.209783Z", - "iopub.status.idle": "2024-10-18T21:34:06.496910Z", - "shell.execute_reply": "2024-10-18T21:34:06.496459Z" - }, - "jukit_cell_id": "3kAGbC43Zs" - }, - "outputs": [], - "source": [ - "# Metadata to retain\n", - "agg_funcs = {\n", - " \"Metadata_Condition\": \"first\",\n", - "}\n", - "\n", - "agg_funcs |= {feat_col: \"mean\" for feat_col in feat_cols}\n", - "staindf = scdfs.groupby([\"Metadata_Plate\", \"Metadata_Well\", \"Metadata_Stain\"]).agg(agg_funcs).reset_index()" - ] - }, - { - "cell_type": "code", - "execution_count": 12, + "execution_count": 4, "metadata": { "execution": { - "iopub.execute_input": "2024-10-18T21:34:06.498968Z", - "iopub.status.busy": "2024-10-18T21:34:06.498813Z", - "iopub.status.idle": "2024-10-18T21:34:06.516634Z", - "shell.execute_reply": "2024-10-18T21:34:06.516271Z" + "iopub.execute_input": "2024-11-20T20:49:54.859806Z", + "iopub.status.busy": "2024-11-20T20:49:54.859654Z", + "iopub.status.idle": "2024-11-20T20:49:54.879948Z", + "shell.execute_reply": "2024-11-20T20:49:54.879552Z" }, - "jukit_cell_id": "Eo1zbJrCL0" + "jukit_cell_id": "gQ5lHlQ04X" }, "outputs": [ { @@ -555,257 +133,288 @@ " \n", " \n", " \n", + " Metadata_WellRow\n", + " Metadata_WellCol\n", + " Metadata_gene_name\n", + " Metadata_genotype\n", + " Metadata_seed_density\n", + " Metadata_siRNA\n", + " Metadata_RNAiMax\n", + " Metadata_Concentration\n", " Metadata_Plate\n", " Metadata_Well\n", - " Metadata_Stain\n", - " Metadata_Condition\n", - " Nuclei_Granularity_1\n", - " Nuclei_Intensity_MassDisplacement\n", - " Nuclei_Intensity_StdIntensityEdge\n", - " Nuclei_RadialDistribution_FracAtD_4of4\n", - " Nuclei_RadialDistribution_MeanFrac_1of4\n", - " Nuclei_RadialDistribution_MeanFrac_4of4\n", " ...\n", - " Nuclei_RadialDistribution_ZernikePhase_8_8\n", - " Nuclei_RadialDistribution_ZernikePhase_9_1\n", - " Nuclei_RadialDistribution_ZernikePhase_9_3\n", - " Nuclei_RadialDistribution_ZernikePhase_9_5\n", - " Nuclei_RadialDistribution_ZernikePhase_9_7\n", - " Nuclei_RadialDistribution_ZernikePhase_9_9\n", - " Nuclei_Texture_Correlation_3_00_256\n", - " Nuclei_Texture_Correlation_3_01_256\n", - " Nuclei_Texture_Correlation_3_02_256\n", - " Nuclei_Texture_Correlation_3_03_256\n", + " Nuclei_Texture_InverseDifferenceMoment_DAPI_3_00_256\n", + " Nuclei_Texture_InverseDifferenceMoment_DAPI_3_01_256\n", + " Nuclei_Texture_InverseDifferenceMoment_DAPI_3_02_256\n", + " Nuclei_Texture_InverseDifferenceMoment_GFP_3_02_256\n", + " Nuclei_Texture_InverseDifferenceMoment_RFP_3_00_256\n", + " Nuclei_Texture_InverseDifferenceMoment_RFP_3_01_256\n", + " Nuclei_Texture_InverseDifferenceMoment_RFP_3_02_256\n", + " Nuclei_Texture_InverseDifferenceMoment_RFP_3_03_256\n", + " Nuclei_Texture_SumEntropy_DAPI_3_03_256\n", + " Nuclei_Texture_SumVariance_DAPI_3_01_256\n", " \n", " \n", " \n", " \n", " 0\n", - " slide1\n", - " A1\n", - " A647\n", - " NTC\n", - " 0.171474\n", - " 0.477067\n", - " 1.159588\n", - " -0.746587\n", - " -0.269572\n", - " 0.163854\n", + " B\n", + " 2\n", + " NF1\n", + " WT\n", + " 1000\n", + " No siRNA\n", + " 0\n", + " 0.000\n", + " Plate_4\n", + " B2\n", " ...\n", - " -0.015042\n", - " 0.018605\n", - " -0.058823\n", - " -0.030010\n", - " -0.012822\n", - " -0.053868\n", - " -0.329853\n", - " -0.279762\n", - " -0.340624\n", - " -0.326910\n", + " -0.165689\n", + " -0.446846\n", + " -0.312296\n", + " -0.401454\n", + " -2.032668\n", + " -2.252355\n", + " -2.122525\n", + " -2.177496\n", + " -1.448158\n", + " 0.031227\n", " \n", " \n", " 1\n", - " slide1\n", - " A1\n", - " DAPI\n", - " NTC\n", - " -0.217538\n", - " 0.719026\n", - " 0.331419\n", - " 0.609352\n", - " 0.146927\n", - " 0.117445\n", + " B\n", + " 3\n", + " NF1\n", + " WT\n", + " 1000\n", + " Scramble\n", + " 1\n", + " 0.050\n", + " Plate_4\n", + " B3\n", " ...\n", - " -0.006253\n", - " 0.021927\n", - " -0.075890\n", - " -0.050538\n", - " -0.030914\n", - " -0.023099\n", - " 0.377650\n", - " 0.403960\n", - " 0.409060\n", - " 0.397982\n", + " -0.960711\n", + " -1.438404\n", + " -0.707251\n", + " 0.738356\n", + " 0.188400\n", + " -0.844323\n", + " -0.846457\n", + " -0.342180\n", + " 1.306905\n", + " 0.344522\n", " \n", " \n", " 2\n", - " slide1\n", - " A1\n", - " GOLD\n", - " NTC\n", - " -0.382057\n", - " 0.474737\n", - " 1.114561\n", - " 0.885131\n", - " -0.330499\n", - " 0.590850\n", + " B\n", + " 4\n", + " NF1\n", + " WT\n", + " 1000\n", + " Scramble\n", + " 1\n", + " 0.005\n", + " Plate_4\n", + " B4\n", " ...\n", - " 0.006725\n", - " 0.008139\n", - " -0.054102\n", - " -0.042331\n", - " 0.003489\n", - " -0.040262\n", - " 0.237765\n", - " 0.097259\n", - " 0.193286\n", - " 0.059259\n", + " 1.910170\n", + " 1.887803\n", + " 2.496062\n", + " -1.858108\n", + " 0.149212\n", + " -1.231724\n", + " -1.045144\n", + " -0.340360\n", + " -1.806753\n", + " 0.169433\n", " \n", " \n", " 3\n", - " slide1\n", - " A2\n", - " A647\n", - " ALY kd8\n", - " 0.035772\n", - " 0.765541\n", - " 1.081828\n", - " -0.434666\n", - " -0.045196\n", - " 0.463068\n", + " B\n", + " 5\n", + " NF1\n", + " WT\n", + " 1000\n", + " No siRNA\n", + " 0\n", + " 0.000\n", + " Plate_4\n", + " B5\n", " ...\n", - " -0.000985\n", - " 0.006110\n", - " 0.018343\n", - " -0.002243\n", - " 0.002698\n", - " -0.014026\n", - " 0.205998\n", - " 0.206157\n", - " 0.231749\n", - " 0.189171\n", + " 2.573592\n", + " 2.273321\n", + " 2.652510\n", + " 0.884645\n", + " 0.187687\n", + " -0.199618\n", + " -0.262197\n", + " -0.310826\n", + " -1.312691\n", + " -0.182742\n", " \n", " \n", " 4\n", - " slide1\n", - " A2\n", - " DAPI\n", - " ALY kd8\n", - " -0.449247\n", - " 0.681245\n", - " 0.724933\n", - " -0.116966\n", - " 0.847064\n", - " -0.687609\n", + " B\n", + " 6\n", + " NF1\n", + " WT\n", + " 1000\n", + " Scramble\n", + " 1\n", + " 0.005\n", + " Plate_4\n", + " B6\n", " ...\n", - " 0.005417\n", - " -0.016053\n", - " -0.000847\n", - " 0.018493\n", - " 0.008329\n", - " -0.033349\n", - " 0.771391\n", - " 0.715149\n", - " 0.782281\n", - " 0.700230\n", + " 0.929752\n", + " 1.058821\n", + " -0.080929\n", + " -0.245173\n", + " 0.298632\n", + " -0.254777\n", + " -1.608270\n", + " -0.996690\n", + " 0.151230\n", + " 2.010409\n", " \n", " \n", "\n", - "

5 rows × 64 columns

\n", + "

5 rows × 1182 columns

\n", "" ], "text/plain": [ - " Metadata_Plate Metadata_Well Metadata_Stain Metadata_Condition \\\n", - "0 slide1 A1 A647 NTC \n", - "1 slide1 A1 DAPI NTC \n", - "2 slide1 A1 GOLD NTC \n", - "3 slide1 A2 A647 ALY kd8 \n", - "4 slide1 A2 DAPI ALY kd8 \n", + " Metadata_WellRow Metadata_WellCol Metadata_gene_name Metadata_genotype \\\n", + "0 B 2 NF1 WT \n", + "1 B 3 NF1 WT \n", + "2 B 4 NF1 WT \n", + "3 B 5 NF1 WT \n", + "4 B 6 NF1 WT \n", "\n", - " Nuclei_Granularity_1 Nuclei_Intensity_MassDisplacement \\\n", - "0 0.171474 0.477067 \n", - "1 -0.217538 0.719026 \n", - "2 -0.382057 0.474737 \n", - "3 0.035772 0.765541 \n", - "4 -0.449247 0.681245 \n", + " Metadata_seed_density Metadata_siRNA Metadata_RNAiMax \\\n", + "0 1000 No siRNA 0 \n", + "1 1000 Scramble 1 \n", + "2 1000 Scramble 1 \n", + "3 1000 No siRNA 0 \n", + "4 1000 Scramble 1 \n", "\n", - " Nuclei_Intensity_StdIntensityEdge Nuclei_RadialDistribution_FracAtD_4of4 \\\n", - "0 1.159588 -0.746587 \n", - "1 0.331419 0.609352 \n", - "2 1.114561 0.885131 \n", - "3 1.081828 -0.434666 \n", - "4 0.724933 -0.116966 \n", + " Metadata_Concentration Metadata_Plate Metadata_Well ... \\\n", + "0 0.000 Plate_4 B2 ... \n", + "1 0.050 Plate_4 B3 ... \n", + "2 0.005 Plate_4 B4 ... \n", + "3 0.000 Plate_4 B5 ... \n", + "4 0.005 Plate_4 B6 ... \n", "\n", - " Nuclei_RadialDistribution_MeanFrac_1of4 \\\n", - "0 -0.269572 \n", - "1 0.146927 \n", - "2 -0.330499 \n", - "3 -0.045196 \n", - "4 0.847064 \n", + " Nuclei_Texture_InverseDifferenceMoment_DAPI_3_00_256 \\\n", + "0 -0.165689 \n", + "1 -0.960711 \n", + "2 1.910170 \n", + "3 2.573592 \n", + "4 0.929752 \n", "\n", - " Nuclei_RadialDistribution_MeanFrac_4of4 ... \\\n", - "0 0.163854 ... \n", - "1 0.117445 ... \n", - "2 0.590850 ... \n", - "3 0.463068 ... \n", - "4 -0.687609 ... \n", + " Nuclei_Texture_InverseDifferenceMoment_DAPI_3_01_256 \\\n", + "0 -0.446846 \n", + "1 -1.438404 \n", + "2 1.887803 \n", + "3 2.273321 \n", + "4 1.058821 \n", "\n", - " Nuclei_RadialDistribution_ZernikePhase_8_8 \\\n", - "0 -0.015042 \n", - "1 -0.006253 \n", - "2 0.006725 \n", - "3 -0.000985 \n", - "4 0.005417 \n", + " Nuclei_Texture_InverseDifferenceMoment_DAPI_3_02_256 \\\n", + "0 -0.312296 \n", + "1 -0.707251 \n", + "2 2.496062 \n", + "3 2.652510 \n", + "4 -0.080929 \n", "\n", - " Nuclei_RadialDistribution_ZernikePhase_9_1 \\\n", - "0 0.018605 \n", - "1 0.021927 \n", - "2 0.008139 \n", - "3 0.006110 \n", - "4 -0.016053 \n", + " Nuclei_Texture_InverseDifferenceMoment_GFP_3_02_256 \\\n", + "0 -0.401454 \n", + "1 0.738356 \n", + "2 -1.858108 \n", + "3 0.884645 \n", + "4 -0.245173 \n", "\n", - " Nuclei_RadialDistribution_ZernikePhase_9_3 \\\n", - "0 -0.058823 \n", - "1 -0.075890 \n", - "2 -0.054102 \n", - "3 0.018343 \n", - "4 -0.000847 \n", + " Nuclei_Texture_InverseDifferenceMoment_RFP_3_00_256 \\\n", + "0 -2.032668 \n", + "1 0.188400 \n", + "2 0.149212 \n", + "3 0.187687 \n", + "4 0.298632 \n", "\n", - " Nuclei_RadialDistribution_ZernikePhase_9_5 \\\n", - "0 -0.030010 \n", - "1 -0.050538 \n", - "2 -0.042331 \n", - "3 -0.002243 \n", - "4 0.018493 \n", + " Nuclei_Texture_InverseDifferenceMoment_RFP_3_01_256 \\\n", + "0 -2.252355 \n", + "1 -0.844323 \n", + "2 -1.231724 \n", + "3 -0.199618 \n", + "4 -0.254777 \n", "\n", - " Nuclei_RadialDistribution_ZernikePhase_9_7 \\\n", - "0 -0.012822 \n", - "1 -0.030914 \n", - "2 0.003489 \n", - "3 0.002698 \n", - "4 0.008329 \n", + " Nuclei_Texture_InverseDifferenceMoment_RFP_3_02_256 \\\n", + "0 -2.122525 \n", + "1 -0.846457 \n", + "2 -1.045144 \n", + "3 -0.262197 \n", + "4 -1.608270 \n", "\n", - " Nuclei_RadialDistribution_ZernikePhase_9_9 \\\n", - "0 -0.053868 \n", - "1 -0.023099 \n", - "2 -0.040262 \n", - "3 -0.014026 \n", - "4 -0.033349 \n", + " Nuclei_Texture_InverseDifferenceMoment_RFP_3_03_256 \\\n", + "0 -2.177496 \n", + "1 -0.342180 \n", + "2 -0.340360 \n", + "3 -0.310826 \n", + "4 -0.996690 \n", "\n", - " Nuclei_Texture_Correlation_3_00_256 Nuclei_Texture_Correlation_3_01_256 \\\n", - "0 -0.329853 -0.279762 \n", - "1 0.377650 0.403960 \n", - "2 0.237765 0.097259 \n", - "3 0.205998 0.206157 \n", - "4 0.771391 0.715149 \n", + " Nuclei_Texture_SumEntropy_DAPI_3_03_256 \\\n", + "0 -1.448158 \n", + "1 1.306905 \n", + "2 -1.806753 \n", + "3 -1.312691 \n", + "4 0.151230 \n", "\n", - " Nuclei_Texture_Correlation_3_02_256 Nuclei_Texture_Correlation_3_03_256 \n", - "0 -0.340624 -0.326910 \n", - "1 0.409060 0.397982 \n", - "2 0.193286 0.059259 \n", - "3 0.231749 0.189171 \n", - "4 0.782281 0.700230 \n", + " Nuclei_Texture_SumVariance_DAPI_3_01_256 \n", + "0 0.031227 \n", + "1 0.344522 \n", + "2 0.169433 \n", + "3 -0.182742 \n", + "4 2.010409 \n", "\n", - "[5 rows x 64 columns]" + "[5 rows x 1182 columns]" ] }, - "execution_count": 12, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "staindf.head()" + "plate4df[\"Metadata_siRNA\"] = plate4df[\"Metadata_siRNA\"].fillna(\"No siRNA\")\n", + "\n", + "feat_cols = plate4df.columns[~plate4df.columns.str.contains(\"Metadata\")].tolist()\n", + "\n", + "plate4df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "execution": { + "iopub.execute_input": "2024-11-20T20:49:54.908736Z", + "iopub.status.busy": "2024-11-20T20:49:54.908481Z", + "iopub.status.idle": "2024-11-20T20:49:54.911271Z", + "shell.execute_reply": "2024-11-20T20:49:54.910851Z" + }, + "jukit_cell_id": "ybX13ZBK8Q" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Input Dataframe shape: (60, 1182)\n", + "\n" + ] + } + ], + "source": [ + "print(f\"\\nInput Dataframe shape: {plate4df.shape}\\n\")" ] }, { @@ -814,12 +423,12 @@ "jukit_cell_id": "C6AaBtUOCj" }, "source": [ - "# MIC Comparisons\n", - "In this dataset, each instance (row) corresponds to a stain for a well.\n", - "This means that multiple rows reference the same wells, but different stain features.\n", - "When using the PairwiseCompareManager the _same_columns and _different_columns parameters must follow two conditions:\n", + "# siRNA Comparisons\n", + "In this dataset, each instance (row) corresponds to a well.\n", + "When using the PairwiseCompareManager the _same_columns and _different_columns parameters must follow three conditions:\n", "1. _same_columns must include at least one list element if _different_columns has less than two list elements.\n", - "2. _different columns must contain one or more list elements" + "2. _different_columns must contain one or more list elements.\n", + "3. _same_columns and _different_columns should not contain any of the same columns." ] }, { @@ -828,31 +437,30 @@ "jukit_cell_id": "6gx14BlSwz" }, "source": [ - "## Compare between the same well from the same plate across different stains" + "## Compare between wells and siRNA treatments with the same concentration" ] }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 6, "metadata": { "execution": { - "iopub.execute_input": "2024-10-18T21:34:06.518225Z", - "iopub.status.busy": "2024-10-18T21:34:06.518113Z", - "iopub.status.idle": "2024-10-18T21:34:06.535946Z", - "shell.execute_reply": "2024-10-18T21:34:06.535655Z" + "iopub.execute_input": "2024-11-20T20:49:54.912597Z", + "iopub.status.busy": "2024-11-20T20:49:54.912443Z", + "iopub.status.idle": "2024-11-20T20:50:18.852487Z", + "shell.execute_reply": "2024-11-20T20:50:18.851928Z" }, "jukit_cell_id": "CRa8vLBRj8" }, "outputs": [], "source": [ - "mic_comparator = MIC()\n", + "pearsons_comparator = PearsonsCorrelation()\n", "\n", "comparer = PairwiseCompareManager(\n", - " _df=staindf.copy(),\n", - " _comparator=mic_comparator,\n", - " _same_columns=[\"Metadata_Plate\", \"Metadata_Well\"],\n", - " _different_columns=[\"Metadata_Stain\"],\n", - " _feat_cols=feat_cols\n", + " _df=plate4df.copy(),\n", + " _comparator=pearsons_comparator,\n", + " _different_columns=[\"Metadata_Concentration\", \"Metadata_Well\"],\n", + " _feat_cols=feat_cols,\n", ")\n", "\n", "micdf = comparer()" @@ -860,13 +468,13 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 7, "metadata": { "execution": { - "iopub.execute_input": "2024-10-18T21:34:06.537490Z", - "iopub.status.busy": "2024-10-18T21:34:06.537280Z", - "iopub.status.idle": "2024-10-18T21:34:06.541502Z", - "shell.execute_reply": "2024-10-18T21:34:06.541206Z" + "iopub.execute_input": "2024-11-20T20:50:18.854369Z", + "iopub.status.busy": "2024-11-20T20:50:18.854227Z", + "iopub.status.idle": "2024-11-20T20:50:18.859557Z", + "shell.execute_reply": "2024-11-20T20:50:18.859137Z" }, "jukit_cell_id": "cGLOXfXNrN" }, @@ -892,82 +500,82 @@ " \n", " \n", " \n", - " Metadata_Plate__antehoc_group0\n", - " Metadata_Plate__antehoc_group1\n", - " Metadata_Well__antehoc_group0\n", - " Metadata_Well__antehoc_group1\n", - " Metadata_Stain__posthoc_group0\n", + " pearsons_correlation\n", + " Metadata_Concentration__antehoc_group0\n", + " Metadata_Concentration__antehoc_group1\n", + " Metadata_Well__posthoc_group0\n", + " Metadata_Well__posthoc_group1\n", " \n", " \n", " \n", " \n", " 0\n", - " slide1\n", - " slide1\n", - " A1\n", - " A1\n", - " A647\n", + " -0.025999\n", + " 0.0\n", + " 0.001\n", + " B11\n", + " E10\n", " \n", " \n", " 1\n", - " slide1\n", - " slide1\n", - " A1\n", - " A1\n", - " A647\n", + " -0.035167\n", + " 0.0\n", + " 0.001\n", + " B11\n", + " E4\n", " \n", " \n", " 2\n", - " slide1\n", - " slide1\n", - " A1\n", - " A1\n", - " DAPI\n", + " 0.148778\n", + " 0.0\n", + " 0.001\n", + " B11\n", + " E7\n", " \n", " \n", " 3\n", - " slide1\n", - " slide1\n", - " A2\n", - " A2\n", - " A647\n", + " 0.030356\n", + " 0.0\n", + " 0.001\n", + " B11\n", + " F10\n", " \n", " \n", " 4\n", - " slide1\n", - " slide1\n", - " A2\n", - " A2\n", - " A647\n", + " -0.163734\n", + " 0.0\n", + " 0.001\n", + " B11\n", + " F4\n", " \n", " \n", "\n", "" ], "text/plain": [ - " Metadata_Plate__antehoc_group0 Metadata_Plate__antehoc_group1 \\\n", - "0 slide1 slide1 \n", - "1 slide1 slide1 \n", - "2 slide1 slide1 \n", - "3 slide1 slide1 \n", - "4 slide1 slide1 \n", + " pearsons_correlation Metadata_Concentration__antehoc_group0 \\\n", + "0 -0.025999 0.0 \n", + "1 -0.035167 0.0 \n", + "2 0.148778 0.0 \n", + "3 0.030356 0.0 \n", + "4 -0.163734 0.0 \n", "\n", - " Metadata_Well__antehoc_group0 Metadata_Well__antehoc_group1 \\\n", - "0 A1 A1 \n", - "1 A1 A1 \n", - "2 A1 A1 \n", - "3 A2 A2 \n", - "4 A2 A2 \n", + " Metadata_Concentration__antehoc_group1 Metadata_Well__posthoc_group0 \\\n", + "0 0.001 B11 \n", + "1 0.001 B11 \n", + "2 0.001 B11 \n", + "3 0.001 B11 \n", + "4 0.001 B11 \n", "\n", - " Metadata_Stain__posthoc_group0 \n", - "0 A647 \n", - "1 A647 \n", - "2 DAPI \n", - "3 A647 \n", - "4 A647 " + " Metadata_Well__posthoc_group1 \n", + "0 E10 \n", + "1 E4 \n", + "2 E7 \n", + "3 F10 \n", + "4 F4 " ] }, - "execution_count": 14, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -976,36 +584,90 @@ "micdf.head()" ] }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "execution": { + "iopub.execute_input": "2024-11-20T20:50:18.860877Z", + "iopub.status.busy": "2024-11-20T20:50:18.860753Z", + "iopub.status.idle": "2024-11-20T20:50:18.863242Z", + "shell.execute_reply": "2024-11-20T20:50:18.862831Z" + }, + "jukit_cell_id": "qzMvL0c8sb" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Output Dataframe shape: (1485, 5)\n", + "\n" + ] + } + ], + "source": [ + "print(f\"\\nOutput Dataframe shape: {micdf.shape}\\n\")" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "execution": { + "iopub.execute_input": "2024-11-20T20:50:18.864585Z", + "iopub.status.busy": "2024-11-20T20:50:18.864386Z", + "iopub.status.idle": "2024-11-20T20:50:18.866710Z", + "shell.execute_reply": "2024-11-20T20:50:18.866284Z" + }, + "jukit_cell_id": "7modF1v2ll" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Output Dataframe Columns:\n", + "['pearsons_correlation', 'Metadata_Concentration__antehoc_group0', 'Metadata_Concentration__antehoc_group1', 'Metadata_Well__posthoc_group0', 'Metadata_Well__posthoc_group1']\n" + ] + } + ], + "source": [ + "print(f\"Output Dataframe Columns:\\n{micdf.columns.tolist()}\")" + ] + }, { "cell_type": "markdown", "metadata": { "jukit_cell_id": "ucjifXHnJI" }, "source": [ - "## Compare between different stains and conditions" + "## Compare between different siRNAs and Wells at the same concentrations" ] }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 10, "metadata": { "execution": { - "iopub.execute_input": "2024-10-18T21:34:06.542937Z", - "iopub.status.busy": "2024-10-18T21:34:06.542827Z", - "iopub.status.idle": "2024-10-18T21:34:06.732751Z", - "shell.execute_reply": "2024-10-18T21:34:06.732381Z" + "iopub.execute_input": "2024-11-20T20:50:18.868054Z", + "iopub.status.busy": "2024-11-20T20:50:18.867853Z", + "iopub.status.idle": "2024-11-20T20:50:21.073683Z", + "shell.execute_reply": "2024-11-20T20:50:21.073012Z" }, "jukit_cell_id": "JPLwsPbVsU" }, "outputs": [], "source": [ - "mic_comparator = MIC()\n", + "pearsons_comparator = PearsonsCorrelation()\n", "\n", "comparer = PairwiseCompareManager(\n", - " _df=staindf.copy(),\n", - " _comparator=mic_comparator,\n", - " _different_columns=[\"Metadata_Stain\", \"Metadata_Condition\"],\n", - " _feat_cols=feat_cols\n", + " _df=plate4df.copy(),\n", + " _comparator=pearsons_comparator,\n", + " _same_columns=[\"Metadata_Concentration\"],\n", + " _different_columns=[\"Metadata_siRNA\", \"Metadata_Well\"],\n", + " _feat_cols=feat_cols,\n", ")\n", "\n", "micdf = comparer()" @@ -1013,15 +675,15 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 11, "metadata": { "execution": { - "iopub.execute_input": "2024-10-18T21:34:06.734347Z", - "iopub.status.busy": "2024-10-18T21:34:06.734228Z", - "iopub.status.idle": "2024-10-18T21:34:06.738638Z", - "shell.execute_reply": "2024-10-18T21:34:06.738343Z" + "iopub.execute_input": "2024-11-20T20:50:21.075720Z", + "iopub.status.busy": "2024-11-20T20:50:21.075582Z", + "iopub.status.idle": "2024-11-20T20:50:21.082659Z", + "shell.execute_reply": "2024-11-20T20:50:21.082162Z" }, - "jukit_cell_id": "rGAPBpItug" + "jukit_cell_id": "lFR01EXVLC" }, "outputs": [ { @@ -1045,75 +707,101 @@ " \n", " \n", " \n", - " mic_e\n", - " Metadata_Stain__antehoc_group0\n", - " Metadata_Stain__antehoc_group1\n", - " Metadata_Condition__posthoc_group0\n", - " Metadata_Condition__posthoc_group1\n", + " pearsons_correlation\n", + " Metadata_Concentration__antehoc_group0\n", + " Metadata_Concentration__antehoc_group1\n", + " Metadata_siRNA__posthoc_group0\n", + " Metadata_siRNA__posthoc_group1\n", + " Metadata_Well__posthoc_group0\n", + " Metadata_Well__posthoc_group1\n", " \n", " \n", " \n", " \n", " 0\n", - " 0.767101\n", - " A647\n", - " DAPI\n", - " ALY kd5\n", - " ALY kd8\n", + " 0.128001\n", + " (0.001,)\n", + " (0.001,)\n", + " NF1 Target 1\n", + " NF1 Target 2\n", + " F10\n", + " G10\n", " \n", " \n", " 1\n", - " 0.678485\n", - " A647\n", - " DAPI\n", - " ALY kd5\n", - " DDX39A kd1\n", + " 0.190290\n", + " (0.001,)\n", + " (0.001,)\n", + " NF1 Target 1\n", + " NF1 Target 2\n", + " F10\n", + " G4\n", " \n", " \n", " 2\n", - " 0.830519\n", - " A647\n", - " DAPI\n", - " ALY kd5\n", - " DDX39A kd4\n", + " 0.173737\n", + " (0.001,)\n", + " (0.001,)\n", + " NF1 Target 1\n", + " NF1 Target 2\n", + " F10\n", + " G7\n", " \n", " \n", " 3\n", - " 0.727970\n", - " A647\n", - " DAPI\n", - " ALY kd5\n", - " FIBP kd6\n", + " -0.258292\n", + " (0.001,)\n", + " (0.001,)\n", + " NF1 Target 1\n", + " Scramble\n", + " F10\n", + " E10\n", " \n", " \n", " 4\n", - " 0.718055\n", - " A647\n", - " DAPI\n", - " ALY kd5\n", - " FIBP kd7\n", + " 0.089742\n", + " (0.001,)\n", + " (0.001,)\n", + " NF1 Target 1\n", + " Scramble\n", + " F10\n", + " E4\n", " \n", " \n", "\n", "" ], "text/plain": [ - " mic_e Metadata_Stain__antehoc_group0 Metadata_Stain__antehoc_group1 \\\n", - "0 0.767101 A647 DAPI \n", - "1 0.678485 A647 DAPI \n", - "2 0.830519 A647 DAPI \n", - "3 0.727970 A647 DAPI \n", - "4 0.718055 A647 DAPI \n", + " pearsons_correlation Metadata_Concentration__antehoc_group0 \\\n", + "0 0.128001 (0.001,) \n", + "1 0.190290 (0.001,) \n", + "2 0.173737 (0.001,) \n", + "3 -0.258292 (0.001,) \n", + "4 0.089742 (0.001,) \n", + "\n", + " Metadata_Concentration__antehoc_group1 Metadata_siRNA__posthoc_group0 \\\n", + "0 (0.001,) NF1 Target 1 \n", + "1 (0.001,) NF1 Target 1 \n", + "2 (0.001,) NF1 Target 1 \n", + "3 (0.001,) NF1 Target 1 \n", + "4 (0.001,) NF1 Target 1 \n", + "\n", + " Metadata_siRNA__posthoc_group1 Metadata_Well__posthoc_group0 \\\n", + "0 NF1 Target 2 F10 \n", + "1 NF1 Target 2 F10 \n", + "2 NF1 Target 2 F10 \n", + "3 Scramble F10 \n", + "4 Scramble F10 \n", "\n", - " Metadata_Condition__posthoc_group0 Metadata_Condition__posthoc_group1 \n", - "0 ALY kd5 ALY kd8 \n", - "1 ALY kd5 DDX39A kd1 \n", - "2 ALY kd5 DDX39A kd4 \n", - "3 ALY kd5 FIBP kd6 \n", - "4 ALY kd5 FIBP kd7 " + " Metadata_Well__posthoc_group1 \n", + "0 G10 \n", + "1 G4 \n", + "2 G7 \n", + "3 E10 \n", + "4 E4 " ] }, - "execution_count": 16, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -1122,6 +810,59 @@ "micdf.head()" ] }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "execution": { + "iopub.execute_input": "2024-11-20T20:50:21.084095Z", + "iopub.status.busy": "2024-11-20T20:50:21.083878Z", + "iopub.status.idle": "2024-11-20T20:50:21.086579Z", + "shell.execute_reply": "2024-11-20T20:50:21.086101Z" + }, + "jukit_cell_id": "EiRceI8zqd" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Output Dataframe shape: (135, 7)\n", + "\n" + ] + } + ], + "source": [ + "print(f\"\\nOutput Dataframe shape: {micdf.shape}\\n\")" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "execution": { + "iopub.execute_input": "2024-11-20T20:50:21.087886Z", + "iopub.status.busy": "2024-11-20T20:50:21.087685Z", + "iopub.status.idle": "2024-11-20T20:50:21.090254Z", + "shell.execute_reply": "2024-11-20T20:50:21.089796Z" + }, + "jukit_cell_id": "uHLGwABthL" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Output Dataframe Columns:\n", + "['pearsons_correlation', 'Metadata_Concentration__antehoc_group0', 'Metadata_Concentration__antehoc_group1', 'Metadata_siRNA__posthoc_group0', 'Metadata_siRNA__posthoc_group1', 'Metadata_Well__posthoc_group0', 'Metadata_Well__posthoc_group1']\n" + ] + } + ], + "source": [ + "print(f\"Output Dataframe Columns:\\n{micdf.columns.tolist()}\")" + ] + }, { "cell_type": "markdown", "metadata": { @@ -1129,31 +870,32 @@ }, "source": [ "## Compare between different stains, conditions, and wells\n", - "Excludes wells from the output dataframe" + "Supplying the _drop_cols parameter excludes wells from the output dataframe, even though wells are used to compare groups." ] }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 14, "metadata": { "execution": { - "iopub.execute_input": "2024-10-18T21:34:06.740234Z", - "iopub.status.busy": "2024-10-18T21:34:06.740016Z", - "iopub.status.idle": "2024-10-18T21:34:07.422306Z", - "shell.execute_reply": "2024-10-18T21:34:07.421944Z" + "iopub.execute_input": "2024-11-20T20:50:21.091752Z", + "iopub.status.busy": "2024-11-20T20:50:21.091431Z", + "iopub.status.idle": "2024-11-20T20:50:23.281074Z", + "shell.execute_reply": "2024-11-20T20:50:23.280435Z" }, "jukit_cell_id": "OHRc2Dyid6" }, "outputs": [], "source": [ - "mic_comparator = MIC()\n", + "pearsons_comparator = PearsonsCorrelation()\n", "\n", "comparer = PairwiseCompareManager(\n", - " _df=staindf.copy(),\n", - " _comparator=mic_comparator,\n", - " _different_columns=[\"Metadata_Stain\", \"Metadata_Plate\", \"Metadata_Well\"],\n", + " _df=plate4df.copy(),\n", + " _comparator=pearsons_comparator,\n", + " _same_columns=[\"Metadata_Concentration\"],\n", + " _different_columns=[\"Metadata_siRNA\", \"Metadata_Well\"],\n", " _feat_cols=feat_cols,\n", - " _drop_cols=[\"Metadata_Well\"]\n", + " _drop_cols=[\"Metadata_Concentration\", \"Metadata_Well\"],\n", ")\n", "\n", "micdf = comparer()" @@ -1161,15 +903,15 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 15, "metadata": { "execution": { - "iopub.execute_input": "2024-10-18T21:34:07.423849Z", - "iopub.status.busy": "2024-10-18T21:34:07.423731Z", - "iopub.status.idle": "2024-10-18T21:34:07.428525Z", - "shell.execute_reply": "2024-10-18T21:34:07.428225Z" + "iopub.execute_input": "2024-11-20T20:50:23.282755Z", + "iopub.status.busy": "2024-11-20T20:50:23.282624Z", + "iopub.status.idle": "2024-11-20T20:50:23.288081Z", + "shell.execute_reply": "2024-11-20T20:50:23.287679Z" }, - "jukit_cell_id": "P0NrEe8xrX" + "jukit_cell_id": "rGAPBpItug" }, "outputs": [ { @@ -1193,94 +935,63 @@ " \n", " \n", " \n", - " mic_e\n", - " Metadata_Stain__antehoc_group0\n", - " Metadata_Stain__antehoc_group1\n", - " Metadata_Plate__posthoc_group0\n", - " Metadata_Plate__posthoc_group1\n", - " Metadata_Well__posthoc_group0\n", - " Metadata_Well__posthoc_group1\n", + " pearsons_correlation\n", + " Metadata_siRNA__posthoc_group0\n", + " Metadata_siRNA__posthoc_group1\n", " \n", " \n", " \n", " \n", " 0\n", - " 0.857133\n", - " A647\n", - " DAPI\n", - " slide1\n", - " slide2\n", - " A1\n", - " A2\n", + " 0.128001\n", + " (NF1 Target 1, F10)\n", + " (NF1 Target 2, G10)\n", " \n", " \n", " 1\n", - " 0.818074\n", - " A647\n", - " DAPI\n", - " slide1\n", - " slide2\n", - " A1\n", - " A3\n", + " 0.190290\n", + " (NF1 Target 1, F10)\n", + " (NF1 Target 2, G4)\n", " \n", " \n", " 2\n", - " 0.693374\n", - " A647\n", - " DAPI\n", - " slide1\n", - " slide2\n", - " A1\n", - " A4\n", + " 0.173737\n", + " (NF1 Target 1, F10)\n", + " (NF1 Target 2, G7)\n", " \n", " \n", " 3\n", - " 0.558206\n", - " A647\n", - " DAPI\n", - " slide1\n", - " slide2\n", - " A1\n", - " B1\n", + " -0.258292\n", + " (NF1 Target 1, F10)\n", + " (Scramble, E10)\n", " \n", " \n", " 4\n", - " 0.782552\n", - " A647\n", - " DAPI\n", - " slide1\n", - " slide2\n", - " A1\n", - " B2\n", + " 0.089742\n", + " (NF1 Target 1, F10)\n", + " (Scramble, E4)\n", " \n", " \n", "\n", "" ], "text/plain": [ - " mic_e Metadata_Stain__antehoc_group0 Metadata_Stain__antehoc_group1 \\\n", - "0 0.857133 A647 DAPI \n", - "1 0.818074 A647 DAPI \n", - "2 0.693374 A647 DAPI \n", - "3 0.558206 A647 DAPI \n", - "4 0.782552 A647 DAPI \n", + " pearsons_correlation Metadata_siRNA__posthoc_group0 \\\n", + "0 0.128001 (NF1 Target 1, F10) \n", + "1 0.190290 (NF1 Target 1, F10) \n", + "2 0.173737 (NF1 Target 1, F10) \n", + "3 -0.258292 (NF1 Target 1, F10) \n", + "4 0.089742 (NF1 Target 1, F10) \n", "\n", - " Metadata_Plate__posthoc_group0 Metadata_Plate__posthoc_group1 \\\n", - "0 slide1 slide2 \n", - "1 slide1 slide2 \n", - "2 slide1 slide2 \n", - "3 slide1 slide2 \n", - "4 slide1 slide2 \n", - "\n", - " Metadata_Well__posthoc_group0 Metadata_Well__posthoc_group1 \n", - "0 A1 A2 \n", - "1 A1 A3 \n", - "2 A1 A4 \n", - "3 A1 B1 \n", - "4 A1 B2 " + " Metadata_siRNA__posthoc_group1 \n", + "0 (NF1 Target 2, G10) \n", + "1 (NF1 Target 2, G4) \n", + "2 (NF1 Target 2, G7) \n", + "3 (Scramble, E10) \n", + "4 (Scramble, E4) " ] }, - "execution_count": 18, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } @@ -1288,6 +999,59 @@ "source": [ "micdf.head()" ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "execution": { + "iopub.execute_input": "2024-11-20T20:50:23.289299Z", + "iopub.status.busy": "2024-11-20T20:50:23.289187Z", + "iopub.status.idle": "2024-11-20T20:50:23.291803Z", + "shell.execute_reply": "2024-11-20T20:50:23.291348Z" + }, + "jukit_cell_id": "zZHKZyRQcw" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Output Dataframe shape: (135, 3)\n", + "\n" + ] + } + ], + "source": [ + "print(f\"\\nOutput Dataframe shape: {micdf.shape}\\n\")" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "execution": { + "iopub.execute_input": "2024-11-20T20:50:23.293240Z", + "iopub.status.busy": "2024-11-20T20:50:23.292861Z", + "iopub.status.idle": "2024-11-20T20:50:23.295566Z", + "shell.execute_reply": "2024-11-20T20:50:23.295072Z" + }, + "jukit_cell_id": "8G7ZiPRvd8" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Output Dataframe Columns:\n", + "['pearsons_correlation', 'Metadata_siRNA__posthoc_group0', 'Metadata_siRNA__posthoc_group1']\n" + ] + } + ], + "source": [ + "print(f\"Output Dataframe Columns:\\n{micdf.columns.tolist()}\")" + ] } ], "metadata": { @@ -1307,7 +1071,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.15" + "version": "3.10.12" } }, "nbformat": 4, diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 0000000..d1eedee --- /dev/null +++ b/poetry.lock @@ -0,0 +1,3129 @@ +# This file is automatically @generated by Poetry 1.8.4 and should not be changed by hand. + +[[package]] +name = "anyio" +version = "4.6.2.post1" +description = "High level compatibility layer for multiple asynchronous event loop implementations" +optional = false +python-versions = ">=3.9" +files = [ + {file = "anyio-4.6.2.post1-py3-none-any.whl", hash = "sha256:6d170c36fba3bdd840c73d3868c1e777e33676a69c3a72cf0a0d5d6d8009b61d"}, + {file = "anyio-4.6.2.post1.tar.gz", hash = "sha256:4c8bc31ccdb51c7f7bd251f51c609e038d63e34219b44aa86e47576389880b4c"}, +] + +[package.dependencies] +exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""} +idna = ">=2.8" +sniffio = ">=1.1" +typing-extensions = {version = ">=4.1", markers = "python_version < \"3.11\""} + +[package.extras] +doc = ["Sphinx (>=7.4,<8.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] +test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "truststore (>=0.9.1)", "uvloop (>=0.21.0b1)"] +trio = ["trio (>=0.26.1)"] + +[[package]] +name = "appnope" +version = "0.1.4" +description = "Disable App Nap on macOS >= 10.9" +optional = false +python-versions = ">=3.6" +files = [ + {file = "appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c"}, + {file = "appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee"}, +] + +[[package]] +name = "argon2-cffi" +version = "23.1.0" +description = "Argon2 for Python" +optional = false +python-versions = ">=3.7" +files = [ + {file = "argon2_cffi-23.1.0-py3-none-any.whl", hash = "sha256:c670642b78ba29641818ab2e68bd4e6a78ba53b7eff7b4c3815ae16abf91c7ea"}, + {file = "argon2_cffi-23.1.0.tar.gz", hash = "sha256:879c3e79a2729ce768ebb7d36d4609e3a78a4ca2ec3a9f12286ca057e3d0db08"}, +] + +[package.dependencies] +argon2-cffi-bindings = "*" + +[package.extras] +dev = ["argon2-cffi[tests,typing]", "tox (>4)"] +docs = ["furo", "myst-parser", "sphinx", "sphinx-copybutton", "sphinx-notfound-page"] +tests = ["hypothesis", "pytest"] +typing = ["mypy"] + +[[package]] +name = "argon2-cffi-bindings" +version = "21.2.0" +description = "Low-level CFFI bindings for Argon2" +optional = false +python-versions = ">=3.6" +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"}, +] + +[package.dependencies] +cffi = ">=1.0.1" + +[package.extras] +dev = ["cogapp", "pre-commit", "pytest", "wheel"] +tests = ["pytest"] + +[[package]] +name = "arrow" +version = "1.3.0" +description = "Better dates & times for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "arrow-1.3.0-py3-none-any.whl", hash = "sha256:c728b120ebc00eb84e01882a6f5e7927a53960aa990ce7dd2b10f39005a67f80"}, + {file = "arrow-1.3.0.tar.gz", hash = "sha256:d4540617648cb5f895730f1ad8c82a65f2dad0166f57b75f3ca54759c4d67a85"}, +] + +[package.dependencies] +python-dateutil = ">=2.7.0" +types-python-dateutil = ">=2.8.10" + +[package.extras] +doc = ["doc8", "sphinx (>=7.0.0)", "sphinx-autobuild", "sphinx-autodoc-typehints", "sphinx_rtd_theme (>=1.3.0)"] +test = ["dateparser (==1.*)", "pre-commit", "pytest", "pytest-cov", "pytest-mock", "pytz (==2021.1)", "simplejson (==3.*)"] + +[[package]] +name = "astroid" +version = "3.3.5" +description = "An abstract syntax tree for Python with inference support." +optional = false +python-versions = ">=3.9.0" +files = [ + {file = "astroid-3.3.5-py3-none-any.whl", hash = "sha256:a9d1c946ada25098d790e079ba2a1b112157278f3fb7e718ae6a9252f5835dc8"}, + {file = "astroid-3.3.5.tar.gz", hash = "sha256:5cfc40ae9f68311075d27ef68a4841bdc5cc7f6cf86671b49f00607d30188e2d"}, +] + +[package.dependencies] +typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""} + +[[package]] +name = "asttokens" +version = "2.4.1" +description = "Annotate AST trees with source code positions" +optional = false +python-versions = "*" +files = [ + {file = "asttokens-2.4.1-py2.py3-none-any.whl", hash = "sha256:051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24"}, + {file = "asttokens-2.4.1.tar.gz", hash = "sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0"}, +] + +[package.dependencies] +six = ">=1.12.0" + +[package.extras] +astroid = ["astroid (>=1,<2)", "astroid (>=2,<4)"] +test = ["astroid (>=1,<2)", "astroid (>=2,<4)", "pytest"] + +[[package]] +name = "async-lru" +version = "2.0.4" +description = "Simple LRU cache for asyncio" +optional = false +python-versions = ">=3.8" +files = [ + {file = "async-lru-2.0.4.tar.gz", hash = "sha256:b8a59a5df60805ff63220b2a0c5b5393da5521b113cd5465a44eb037d81a5627"}, + {file = "async_lru-2.0.4-py3-none-any.whl", hash = "sha256:ff02944ce3c288c5be660c42dbcca0742b32c3b279d6dceda655190240b99224"}, +] + +[package.dependencies] +typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""} + +[[package]] +name = "attrs" +version = "24.2.0" +description = "Classes Without Boilerplate" +optional = false +python-versions = ">=3.7" +files = [ + {file = "attrs-24.2.0-py3-none-any.whl", hash = "sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2"}, + {file = "attrs-24.2.0.tar.gz", hash = "sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346"}, +] + +[package.extras] +benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"] +tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] + +[[package]] +name = "babel" +version = "2.16.0" +description = "Internationalization utilities" +optional = false +python-versions = ">=3.8" +files = [ + {file = "babel-2.16.0-py3-none-any.whl", hash = "sha256:368b5b98b37c06b7daf6696391c3240c938b37767d4584413e8438c5c435fa8b"}, + {file = "babel-2.16.0.tar.gz", hash = "sha256:d1f3554ca26605fe173f3de0c65f750f5a42f924499bf134de6423582298e316"}, +] + +[package.extras] +dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] + +[[package]] +name = "beautifulsoup4" +version = "4.12.3" +description = "Screen-scraping library" +optional = false +python-versions = ">=3.6.0" +files = [ + {file = "beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed"}, + {file = "beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051"}, +] + +[package.dependencies] +soupsieve = ">1.2" + +[package.extras] +cchardet = ["cchardet"] +chardet = ["chardet"] +charset-normalizer = ["charset-normalizer"] +html5lib = ["html5lib"] +lxml = ["lxml"] + +[[package]] +name = "bleach" +version = "6.2.0" +description = "An easy safelist-based HTML-sanitizing tool." +optional = false +python-versions = ">=3.9" +files = [ + {file = "bleach-6.2.0-py3-none-any.whl", hash = "sha256:117d9c6097a7c3d22fd578fcd8d35ff1e125df6736f554da4e432fdd63f31e5e"}, + {file = "bleach-6.2.0.tar.gz", hash = "sha256:123e894118b8a599fd80d3ec1a6d4cc7ce4e5882b1317a7e1ba69b56e95f991f"}, +] + +[package.dependencies] +webencodings = "*" + +[package.extras] +css = ["tinycss2 (>=1.1.0,<1.5)"] + +[[package]] +name = "certifi" +version = "2024.8.30" +description = "Python package for providing Mozilla's CA Bundle." +optional = false +python-versions = ">=3.6" +files = [ + {file = "certifi-2024.8.30-py3-none-any.whl", hash = "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8"}, + {file = "certifi-2024.8.30.tar.gz", hash = "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9"}, +] + +[[package]] +name = "cffi" +version = "1.17.1" +description = "Foreign Function Interface for Python calling C code." +optional = false +python-versions = ">=3.8" +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"}, +] + +[package.dependencies] +pycparser = "*" + +[[package]] +name = "charset-normalizer" +version = "3.4.0" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4f9fc98dad6c2eaa32fc3af1417d95b5e3d08aff968df0cd320066def971f9a6"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0de7b687289d3c1b3e8660d0741874abe7888100efe14bd0f9fd7141bcbda92b"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5ed2e36c3e9b4f21dd9422f6893dec0abf2cca553af509b10cd630f878d3eb99"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40d3ff7fc90b98c637bda91c89d51264a3dcf210cade3a2c6f838c7268d7a4ca"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1110e22af8ca26b90bd6364fe4c763329b0ebf1ee213ba32b68c73de5752323d"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:86f4e8cca779080f66ff4f191a685ced73d2f72d50216f7112185dc02b90b9b7"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f683ddc7eedd742e2889d2bfb96d69573fde1d92fcb811979cdb7165bb9c7d3"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:27623ba66c183eca01bf9ff833875b459cad267aeeb044477fedac35e19ba907"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f606a1881d2663630ea5b8ce2efe2111740df4b687bd78b34a8131baa007f79b"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0b309d1747110feb25d7ed6b01afdec269c647d382c857ef4663bbe6ad95a912"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:136815f06a3ae311fae551c3df1f998a1ebd01ddd424aa5603a4336997629e95"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:14215b71a762336254351b00ec720a8e85cada43b987da5a042e4ce3e82bd68e"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:79983512b108e4a164b9c8d34de3992f76d48cadc9554c9e60b43f308988aabe"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-win32.whl", hash = "sha256:c94057af19bc953643a33581844649a7fdab902624d2eb739738a30e2b3e60fc"}, + {file = "charset_normalizer-3.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:55f56e2ebd4e3bc50442fbc0888c9d8c94e4e06a933804e2af3e89e2f9c1c749"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce031db0408e487fd2775d745ce30a7cd2923667cf3b69d48d219f1d8f5ddeb6"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82357d85de703176b5587dbe6ade8ff67f9f69a41c0733cf2425378b49954de5"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8ce7fd6767a1cc5a92a639b391891bf1c268b03ec7e021c7d6d902285259685c"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-win32.whl", hash = "sha256:9ae4ef0b3f6b41bad6366fb0ea4fc1d7ed051528e113a60fa2a65a9abb5b1d99"}, + {file = "charset_normalizer-3.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0713f3adb9d03d49d365b70b84775d0a0d18e4ab08d12bc46baa6132ba78aaf6"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:de7376c29d95d6719048c194a9cf1a1b0393fbe8488a22008610b0361d834ecf"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4a51b48f42d9358460b78725283f04bddaf44a9358197b889657deba38f329db"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b295729485b06c1a0683af02a9e42d2caa9db04a373dc38a6a58cdd1e8abddf1"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ee803480535c44e7f5ad00788526da7d85525cfefaf8acf8ab9a310000be4b03"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d59d125ffbd6d552765510e3f31ed75ebac2c7470c7274195b9161a32350284"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8cda06946eac330cbe6598f77bb54e690b4ca93f593dee1568ad22b04f347c15"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07afec21bbbbf8a5cc3651aa96b980afe2526e7f048fdfb7f1014d84acc8b6d8"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6b40e8d38afe634559e398cc32b1472f376a4099c75fe6299ae607e404c033b2"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b8dcd239c743aa2f9c22ce674a145e0a25cb1566c495928440a181ca1ccf6719"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:84450ba661fb96e9fd67629b93d2941c871ca86fc38d835d19d4225ff946a631"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:44aeb140295a2f0659e113b31cfe92c9061622cadbc9e2a2f7b8ef6b1e29ef4b"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1db4e7fefefd0f548d73e2e2e041f9df5c59e178b4c72fbac4cc6f535cfb1565"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-win32.whl", hash = "sha256:5726cf76c982532c1863fb64d8c6dd0e4c90b6ece9feb06c9f202417a31f7dd7"}, + {file = "charset_normalizer-3.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:b197e7094f232959f8f20541ead1d9862ac5ebea1d58e9849c1bf979255dfac9"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:dd4eda173a9fcccb5f2e2bd2a9f423d180194b1bf17cf59e3269899235b2a114"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e9e3c4c9e1ed40ea53acf11e2a386383c3304212c965773704e4603d589343ed"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:92a7e36b000bf022ef3dbb9c46bfe2d52c047d5e3f3343f43204263c5addc250"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54b6a92d009cbe2fb11054ba694bc9e284dad30a26757b1e372a1fdddaf21920"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ffd9493de4c922f2a38c2bf62b831dcec90ac673ed1ca182fe11b4d8e9f2a64"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35c404d74c2926d0287fbd63ed5d27eb911eb9e4a3bb2c6d294f3cfd4a9e0c23"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4796efc4faf6b53a18e3d46343535caed491776a22af773f366534056c4e1fbc"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7fdd52961feb4c96507aa649550ec2a0d527c086d284749b2f582f2d40a2e0d"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:92db3c28b5b2a273346bebb24857fda45601aef6ae1c011c0a997106581e8a88"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ab973df98fc99ab39080bfb0eb3a925181454d7c3ac8a1e695fddfae696d9e90"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4b67fdab07fdd3c10bb21edab3cbfe8cf5696f453afce75d815d9d7223fbe88b"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:aa41e526a5d4a9dfcfbab0716c7e8a1b215abd3f3df5a45cf18a12721d31cb5d"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ffc519621dce0c767e96b9c53f09c5d215578e10b02c285809f76509a3931482"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-win32.whl", hash = "sha256:f19c1585933c82098c2a520f8ec1227f20e339e33aca8fa6f956f6691b784e67"}, + {file = "charset_normalizer-3.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:707b82d19e65c9bd28b81dde95249b07bf9f5b90ebe1ef17d9b57473f8a64b7b"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:dbe03226baf438ac4fda9e2d0715022fd579cb641c4cf639fa40d53b2fe6f3e2"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd9a8bd8900e65504a305bf8ae6fa9fbc66de94178c420791d0293702fce2df7"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b8831399554b92b72af5932cdbbd4ddc55c55f631bb13ff8fe4e6536a06c5c51"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a14969b8691f7998e74663b77b4c36c0337cb1df552da83d5c9004a93afdb574"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dcaf7c1524c0542ee2fc82cc8ec337f7a9f7edee2532421ab200d2b920fc97cf"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:425c5f215d0eecee9a56cdb703203dda90423247421bf0d67125add85d0c4455"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:d5b054862739d276e09928de37c79ddeec42a6e1bfc55863be96a36ba22926f6"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:f3e73a4255342d4eb26ef6df01e3962e73aa29baa3124a8e824c5d3364a65748"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:2f6c34da58ea9c1a9515621f4d9ac379871a8f21168ba1b5e09d74250de5ad62"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:f09cb5a7bbe1ecae6e87901a2eb23e0256bb524a79ccc53eb0b7629fbe7677c4"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:0099d79bdfcf5c1f0c2c72f91516702ebf8b0b8ddd8905f97a8aecf49712c621"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-win32.whl", hash = "sha256:9c98230f5042f4945f957d006edccc2af1e03ed5e37ce7c373f00a5a4daa6149"}, + {file = "charset_normalizer-3.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:62f60aebecfc7f4b82e3f639a7d1433a20ec32824db2199a11ad4f5e146ef5ee"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:af73657b7a68211996527dbfeffbb0864e043d270580c5aef06dc4b659a4b578"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cab5d0b79d987c67f3b9e9c53f54a61360422a5a0bc075f43cab5621d530c3b6"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9289fd5dddcf57bab41d044f1756550f9e7cf0c8e373b8cdf0ce8773dc4bd417"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b493a043635eb376e50eedf7818f2f322eabbaa974e948bd8bdd29eb7ef2a51"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9fa2566ca27d67c86569e8c85297aaf413ffab85a8960500f12ea34ff98e4c41"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8e538f46104c815be19c975572d74afb53f29650ea2025bbfaef359d2de2f7f"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fd30dc99682dc2c603c2b315bded2799019cea829f8bf57dc6b61efde6611c8"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2006769bd1640bdf4d5641c69a3d63b71b81445473cac5ded39740a226fa88ab"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:dc15e99b2d8a656f8e666854404f1ba54765871104e50c8e9813af8a7db07f12"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:ab2e5bef076f5a235c3774b4f4028a680432cded7cad37bba0fd90d64b187d19"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:4ec9dd88a5b71abfc74e9df5ebe7921c35cbb3b641181a531ca65cdb5e8e4dea"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:43193c5cda5d612f247172016c4bb71251c784d7a4d9314677186a838ad34858"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:aa693779a8b50cd97570e5a0f343538a8dbd3e496fa5dcb87e29406ad0299654"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-win32.whl", hash = "sha256:7706f5850360ac01d80c89bcef1640683cc12ed87f42579dab6c5d3ed6888613"}, + {file = "charset_normalizer-3.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:c3e446d253bd88f6377260d07c895816ebf33ffffd56c1c792b13bff9c3e1ade"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:980b4f289d1d90ca5efcf07958d3eb38ed9c0b7676bf2831a54d4f66f9c27dfa"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f28f891ccd15c514a0981f3b9db9aa23d62fe1a99997512b0491d2ed323d229a"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8aacce6e2e1edcb6ac625fb0f8c3a9570ccc7bfba1f63419b3769ccf6a00ed0"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd7af3717683bea4c87acd8c0d3d5b44d56120b26fd3f8a692bdd2d5260c620a"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5ff2ed8194587faf56555927b3aa10e6fb69d931e33953943bc4f837dfee2242"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e91f541a85298cf35433bf66f3fab2a4a2cff05c127eeca4af174f6d497f0d4b"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:309a7de0a0ff3040acaebb35ec45d18db4b28232f21998851cfa709eeff49d62"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:285e96d9d53422efc0d7a17c60e59f37fbf3dfa942073f666db4ac71e8d726d0"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5d447056e2ca60382d460a604b6302d8db69476fd2015c81e7c35417cfabe4cd"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:20587d20f557fe189b7947d8e7ec5afa110ccf72a3128d61a2a387c3313f46be"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:130272c698667a982a5d0e626851ceff662565379baf0ff2cc58067b81d4f11d"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:ab22fbd9765e6954bc0bcff24c25ff71dcbfdb185fcdaca49e81bac68fe724d3"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7782afc9b6b42200f7362858f9e73b1f8316afb276d316336c0ec3bd73312742"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-win32.whl", hash = "sha256:2de62e8801ddfff069cd5c504ce3bc9672b23266597d4e4f50eda28846c322f2"}, + {file = "charset_normalizer-3.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:95c3c157765b031331dd4db3c775e58deaee050a3042fcad72cbc4189d7c8dca"}, + {file = "charset_normalizer-3.4.0-py3-none-any.whl", hash = "sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079"}, + {file = "charset_normalizer-3.4.0.tar.gz", hash = "sha256:223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e"}, +] + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "comm" +version = "0.2.2" +description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc." +optional = false +python-versions = ">=3.8" +files = [ + {file = "comm-0.2.2-py3-none-any.whl", hash = "sha256:e6fb86cb70ff661ee8c9c14e7d36d6de3b4066f1441be4063df9c5009f0a64d3"}, + {file = "comm-0.2.2.tar.gz", hash = "sha256:3fd7a84065306e07bea1773df6eb8282de51ba82f77c72f9c85716ab11fe980e"}, +] + +[package.dependencies] +traitlets = ">=4" + +[package.extras] +test = ["pytest"] + +[[package]] +name = "contourpy" +version = "1.3.1" +description = "Python library for calculating contours of 2D quadrilateral grids" +optional = false +python-versions = ">=3.10" +files = [ + {file = "contourpy-1.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a045f341a77b77e1c5de31e74e966537bba9f3c4099b35bf4c2e3939dd54cdab"}, + {file = "contourpy-1.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:500360b77259914f7805af7462e41f9cb7ca92ad38e9f94d6c8641b089338124"}, + {file = "contourpy-1.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2f926efda994cdf3c8d3fdb40b9962f86edbc4457e739277b961eced3d0b4c1"}, + {file = "contourpy-1.3.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:adce39d67c0edf383647a3a007de0a45fd1b08dedaa5318404f1a73059c2512b"}, + {file = "contourpy-1.3.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:abbb49fb7dac584e5abc6636b7b2a7227111c4f771005853e7d25176daaf8453"}, + {file = "contourpy-1.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0cffcbede75c059f535725c1680dfb17b6ba8753f0c74b14e6a9c68c29d7ea3"}, + {file = "contourpy-1.3.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ab29962927945d89d9b293eabd0d59aea28d887d4f3be6c22deaefbb938a7277"}, + {file = "contourpy-1.3.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:974d8145f8ca354498005b5b981165b74a195abfae9a8129df3e56771961d595"}, + {file = "contourpy-1.3.1-cp310-cp310-win32.whl", hash = "sha256:ac4578ac281983f63b400f7fe6c101bedc10651650eef012be1ccffcbacf3697"}, + {file = "contourpy-1.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:174e758c66bbc1c8576992cec9599ce8b6672b741b5d336b5c74e35ac382b18e"}, + {file = "contourpy-1.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3e8b974d8db2c5610fb4e76307e265de0edb655ae8169e8b21f41807ccbeec4b"}, + {file = "contourpy-1.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:20914c8c973f41456337652a6eeca26d2148aa96dd7ac323b74516988bea89fc"}, + {file = "contourpy-1.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:19d40d37c1c3a4961b4619dd9d77b12124a453cc3d02bb31a07d58ef684d3d86"}, + {file = "contourpy-1.3.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:113231fe3825ebf6f15eaa8bc1f5b0ddc19d42b733345eae0934cb291beb88b6"}, + {file = "contourpy-1.3.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4dbbc03a40f916a8420e420d63e96a1258d3d1b58cbdfd8d1f07b49fcbd38e85"}, + {file = "contourpy-1.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a04ecd68acbd77fa2d39723ceca4c3197cb2969633836ced1bea14e219d077c"}, + {file = "contourpy-1.3.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c414fc1ed8ee1dbd5da626cf3710c6013d3d27456651d156711fa24f24bd1291"}, + {file = "contourpy-1.3.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:31c1b55c1f34f80557d3830d3dd93ba722ce7e33a0b472cba0ec3b6535684d8f"}, + {file = "contourpy-1.3.1-cp311-cp311-win32.whl", hash = "sha256:f611e628ef06670df83fce17805c344710ca5cde01edfdc72751311da8585375"}, + {file = "contourpy-1.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:b2bdca22a27e35f16794cf585832e542123296b4687f9fd96822db6bae17bfc9"}, + {file = "contourpy-1.3.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0ffa84be8e0bd33410b17189f7164c3589c229ce5db85798076a3fa136d0e509"}, + {file = "contourpy-1.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:805617228ba7e2cbbfb6c503858e626ab528ac2a32a04a2fe88ffaf6b02c32bc"}, + {file = "contourpy-1.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ade08d343436a94e633db932e7e8407fe7de8083967962b46bdfc1b0ced39454"}, + {file = "contourpy-1.3.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:47734d7073fb4590b4a40122b35917cd77be5722d80683b249dac1de266aac80"}, + {file = "contourpy-1.3.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2ba94a401342fc0f8b948e57d977557fbf4d515f03c67682dd5c6191cb2d16ec"}, + {file = "contourpy-1.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efa874e87e4a647fd2e4f514d5e91c7d493697127beb95e77d2f7561f6905bd9"}, + {file = "contourpy-1.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1bf98051f1045b15c87868dbaea84f92408337d4f81d0e449ee41920ea121d3b"}, + {file = "contourpy-1.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:61332c87493b00091423e747ea78200659dc09bdf7fd69edd5e98cef5d3e9a8d"}, + {file = "contourpy-1.3.1-cp312-cp312-win32.whl", hash = "sha256:e914a8cb05ce5c809dd0fe350cfbb4e881bde5e2a38dc04e3afe1b3e58bd158e"}, + {file = "contourpy-1.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:08d9d449a61cf53033612cb368f3a1b26cd7835d9b8cd326647efe43bca7568d"}, + {file = "contourpy-1.3.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a761d9ccfc5e2ecd1bf05534eda382aa14c3e4f9205ba5b1684ecfe400716ef2"}, + {file = "contourpy-1.3.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:523a8ee12edfa36f6d2a49407f705a6ef4c5098de4f498619787e272de93f2d5"}, + {file = "contourpy-1.3.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece6df05e2c41bd46776fbc712e0996f7c94e0d0543af1656956d150c4ca7c81"}, + {file = "contourpy-1.3.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:573abb30e0e05bf31ed067d2f82500ecfdaec15627a59d63ea2d95714790f5c2"}, + {file = "contourpy-1.3.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9fa36448e6a3a1a9a2ba23c02012c43ed88905ec80163f2ffe2421c7192a5d7"}, + {file = "contourpy-1.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ea9924d28fc5586bf0b42d15f590b10c224117e74409dd7a0be3b62b74a501c"}, + {file = "contourpy-1.3.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5b75aa69cb4d6f137b36f7eb2ace9280cfb60c55dc5f61c731fdf6f037f958a3"}, + {file = "contourpy-1.3.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:041b640d4ec01922083645a94bb3b2e777e6b626788f4095cf21abbe266413c1"}, + {file = "contourpy-1.3.1-cp313-cp313-win32.whl", hash = "sha256:36987a15e8ace5f58d4d5da9dca82d498c2bbb28dff6e5d04fbfcc35a9cb3a82"}, + {file = "contourpy-1.3.1-cp313-cp313-win_amd64.whl", hash = "sha256:a7895f46d47671fa7ceec40f31fae721da51ad34bdca0bee83e38870b1f47ffd"}, + {file = "contourpy-1.3.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:9ddeb796389dadcd884c7eb07bd14ef12408aaae358f0e2ae24114d797eede30"}, + {file = "contourpy-1.3.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:19c1555a6801c2f084c7ddc1c6e11f02eb6a6016ca1318dd5452ba3f613a1751"}, + {file = "contourpy-1.3.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:841ad858cff65c2c04bf93875e384ccb82b654574a6d7f30453a04f04af71342"}, + {file = "contourpy-1.3.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4318af1c925fb9a4fb190559ef3eec206845f63e80fb603d47f2d6d67683901c"}, + {file = "contourpy-1.3.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:14c102b0eab282427b662cb590f2e9340a9d91a1c297f48729431f2dcd16e14f"}, + {file = "contourpy-1.3.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05e806338bfeaa006acbdeba0ad681a10be63b26e1b17317bfac3c5d98f36cda"}, + {file = "contourpy-1.3.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4d76d5993a34ef3df5181ba3c92fabb93f1eaa5729504fb03423fcd9f3177242"}, + {file = "contourpy-1.3.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:89785bb2a1980c1bd87f0cb1517a71cde374776a5f150936b82580ae6ead44a1"}, + {file = "contourpy-1.3.1-cp313-cp313t-win32.whl", hash = "sha256:8eb96e79b9f3dcadbad2a3891672f81cdcab7f95b27f28f1c67d75f045b6b4f1"}, + {file = "contourpy-1.3.1-cp313-cp313t-win_amd64.whl", hash = "sha256:287ccc248c9e0d0566934e7d606201abd74761b5703d804ff3df8935f523d546"}, + {file = "contourpy-1.3.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:b457d6430833cee8e4b8e9b6f07aa1c161e5e0d52e118dc102c8f9bd7dd060d6"}, + {file = "contourpy-1.3.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cb76c1a154b83991a3cbbf0dfeb26ec2833ad56f95540b442c73950af2013750"}, + {file = "contourpy-1.3.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:44a29502ca9c7b5ba389e620d44f2fbe792b1fb5734e8b931ad307071ec58c53"}, + {file = "contourpy-1.3.1.tar.gz", hash = "sha256:dfd97abd83335045a913e3bcc4a09c0ceadbe66580cf573fe961f4a825efa699"}, +] + +[package.dependencies] +numpy = ">=1.23" + +[package.extras] +bokeh = ["bokeh", "selenium"] +docs = ["furo", "sphinx (>=7.2)", "sphinx-copybutton"] +mypy = ["contourpy[bokeh,docs]", "docutils-stubs", "mypy (==1.11.1)", "types-Pillow"] +test = ["Pillow", "contourpy[test-no-images]", "matplotlib"] +test-no-images = ["pytest", "pytest-cov", "pytest-rerunfailures", "pytest-xdist", "wurlitzer"] + +[[package]] +name = "cycler" +version = "0.12.1" +description = "Composable style cycles" +optional = false +python-versions = ">=3.8" +files = [ + {file = "cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30"}, + {file = "cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c"}, +] + +[package.extras] +docs = ["ipython", "matplotlib", "numpydoc", "sphinx"] +tests = ["pytest", "pytest-cov", "pytest-xdist"] + +[[package]] +name = "debugpy" +version = "1.8.8" +description = "An implementation of the Debug Adapter Protocol for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "debugpy-1.8.8-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:e59b1607c51b71545cb3496876544f7186a7a27c00b436a62f285603cc68d1c6"}, + {file = "debugpy-1.8.8-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a6531d952b565b7cb2fbd1ef5df3d333cf160b44f37547a4e7cf73666aca5d8d"}, + {file = "debugpy-1.8.8-cp310-cp310-win32.whl", hash = "sha256:b01f4a5e5c5fb1d34f4ccba99a20ed01eabc45a4684f4948b5db17a319dfb23f"}, + {file = "debugpy-1.8.8-cp310-cp310-win_amd64.whl", hash = "sha256:535f4fb1c024ddca5913bb0eb17880c8f24ba28aa2c225059db145ee557035e9"}, + {file = "debugpy-1.8.8-cp311-cp311-macosx_14_0_universal2.whl", hash = "sha256:c399023146e40ae373753a58d1be0a98bf6397fadc737b97ad612886b53df318"}, + {file = "debugpy-1.8.8-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:09cc7b162586ea2171eea055985da2702b0723f6f907a423c9b2da5996ad67ba"}, + {file = "debugpy-1.8.8-cp311-cp311-win32.whl", hash = "sha256:eea8821d998ebeb02f0625dd0d76839ddde8cbf8152ebbe289dd7acf2cdc6b98"}, + {file = "debugpy-1.8.8-cp311-cp311-win_amd64.whl", hash = "sha256:d4483836da2a533f4b1454dffc9f668096ac0433de855f0c22cdce8c9f7e10c4"}, + {file = "debugpy-1.8.8-cp312-cp312-macosx_14_0_universal2.whl", hash = "sha256:0cc94186340be87b9ac5a707184ec8f36547fb66636d1029ff4f1cc020e53996"}, + {file = "debugpy-1.8.8-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64674e95916e53c2e9540a056e5f489e0ad4872645399d778f7c598eacb7b7f9"}, + {file = "debugpy-1.8.8-cp312-cp312-win32.whl", hash = "sha256:5c6e885dbf12015aed73770f29dec7023cb310d0dc2ba8bfbeb5c8e43f80edc9"}, + {file = "debugpy-1.8.8-cp312-cp312-win_amd64.whl", hash = "sha256:19ffbd84e757a6ca0113574d1bf5a2298b3947320a3e9d7d8dc3377f02d9f864"}, + {file = "debugpy-1.8.8-cp313-cp313-macosx_14_0_universal2.whl", hash = "sha256:705cd123a773d184860ed8dae99becd879dfec361098edbefb5fc0d3683eb804"}, + {file = "debugpy-1.8.8-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:890fd16803f50aa9cb1a9b9b25b5ec321656dd6b78157c74283de241993d086f"}, + {file = "debugpy-1.8.8-cp313-cp313-win32.whl", hash = "sha256:90244598214bbe704aa47556ec591d2f9869ff9e042e301a2859c57106649add"}, + {file = "debugpy-1.8.8-cp313-cp313-win_amd64.whl", hash = "sha256:4b93e4832fd4a759a0c465c967214ed0c8a6e8914bced63a28ddb0dd8c5f078b"}, + {file = "debugpy-1.8.8-cp38-cp38-macosx_14_0_x86_64.whl", hash = "sha256:143ef07940aeb8e7316de48f5ed9447644da5203726fca378f3a6952a50a9eae"}, + {file = "debugpy-1.8.8-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f95651bdcbfd3b27a408869a53fbefcc2bcae13b694daee5f1365b1b83a00113"}, + {file = "debugpy-1.8.8-cp38-cp38-win32.whl", hash = "sha256:26b461123a030e82602a750fb24d7801776aa81cd78404e54ab60e8b5fecdad5"}, + {file = "debugpy-1.8.8-cp38-cp38-win_amd64.whl", hash = "sha256:f3cbf1833e644a3100eadb6120f25be8a532035e8245584c4f7532937edc652a"}, + {file = "debugpy-1.8.8-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:53709d4ec586b525724819dc6af1a7703502f7e06f34ded7157f7b1f963bb854"}, + {file = "debugpy-1.8.8-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a9c013077a3a0000e83d97cf9cc9328d2b0bbb31f56b0e99ea3662d29d7a6a2"}, + {file = "debugpy-1.8.8-cp39-cp39-win32.whl", hash = "sha256:ffe94dd5e9a6739a75f0b85316dc185560db3e97afa6b215628d1b6a17561cb2"}, + {file = "debugpy-1.8.8-cp39-cp39-win_amd64.whl", hash = "sha256:5c0e5a38c7f9b481bf31277d2f74d2109292179081f11108e668195ef926c0f9"}, + {file = "debugpy-1.8.8-py2.py3-none-any.whl", hash = "sha256:ec684553aba5b4066d4de510859922419febc710df7bba04fe9e7ef3de15d34f"}, + {file = "debugpy-1.8.8.zip", hash = "sha256:e6355385db85cbd666be703a96ab7351bc9e6c61d694893206f8001e22aee091"}, +] + +[[package]] +name = "decorator" +version = "5.1.1" +description = "Decorators for Humans" +optional = false +python-versions = ">=3.5" +files = [ + {file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"}, + {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"}, +] + +[[package]] +name = "defusedxml" +version = "0.7.1" +description = "XML bomb protection for Python stdlib modules" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"}, + {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, +] + +[[package]] +name = "dill" +version = "0.3.9" +description = "serialize all of Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "dill-0.3.9-py3-none-any.whl", hash = "sha256:468dff3b89520b474c0397703366b7b95eebe6303f108adf9b19da1f702be87a"}, + {file = "dill-0.3.9.tar.gz", hash = "sha256:81aa267dddf68cbfe8029c42ca9ec6a4ab3b22371d1c450abc54422577b4512c"}, +] + +[package.extras] +graph = ["objgraph (>=1.7.2)"] +profile = ["gprof2dot (>=2022.7.29)"] + +[[package]] +name = "exceptiongroup" +version = "1.2.2" +description = "Backport of PEP 654 (exception groups)" +optional = false +python-versions = ">=3.7" +files = [ + {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, + {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, +] + +[package.extras] +test = ["pytest (>=6)"] + +[[package]] +name = "executing" +version = "2.1.0" +description = "Get the currently executing AST node of a frame, and other information" +optional = false +python-versions = ">=3.8" +files = [ + {file = "executing-2.1.0-py2.py3-none-any.whl", hash = "sha256:8d63781349375b5ebccc3142f4b30350c0cd9c79f921cde38be2be4637e98eaf"}, + {file = "executing-2.1.0.tar.gz", hash = "sha256:8ea27ddd260da8150fa5a708269c4a10e76161e2496ec3e587da9e3c0fe4b9ab"}, +] + +[package.extras] +tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipython", "littleutils", "pytest", "rich"] + +[[package]] +name = "fastjsonschema" +version = "2.20.0" +description = "Fastest Python implementation of JSON schema" +optional = false +python-versions = "*" +files = [ + {file = "fastjsonschema-2.20.0-py3-none-any.whl", hash = "sha256:5875f0b0fa7a0043a91e93a9b8f793bcbbba9691e7fd83dca95c28ba26d21f0a"}, + {file = "fastjsonschema-2.20.0.tar.gz", hash = "sha256:3d48fc5300ee96f5d116f10fe6f28d938e6008f59a6a025c2649475b87f76a23"}, +] + +[package.extras] +devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benchmark", "pytest-cache", "validictory"] + +[[package]] +name = "fonttools" +version = "4.55.0" +description = "Tools to manipulate font files" +optional = false +python-versions = ">=3.8" +files = [ + {file = "fonttools-4.55.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:51c029d4c0608a21a3d3d169dfc3fb776fde38f00b35ca11fdab63ba10a16f61"}, + {file = "fonttools-4.55.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bca35b4e411362feab28e576ea10f11268b1aeed883b9f22ed05675b1e06ac69"}, + {file = "fonttools-4.55.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9ce4ba6981e10f7e0ccff6348e9775ce25ffadbee70c9fd1a3737e3e9f5fa74f"}, + {file = "fonttools-4.55.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31d00f9852a6051dac23294a4cf2df80ced85d1d173a61ba90a3d8f5abc63c60"}, + {file = "fonttools-4.55.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e198e494ca6e11f254bac37a680473a311a88cd40e58f9cc4dc4911dfb686ec6"}, + {file = "fonttools-4.55.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7208856f61770895e79732e1dcbe49d77bd5783adf73ae35f87fcc267df9db81"}, + {file = "fonttools-4.55.0-cp310-cp310-win32.whl", hash = "sha256:e7e6a352ff9e46e8ef8a3b1fe2c4478f8a553e1b5a479f2e899f9dc5f2055880"}, + {file = "fonttools-4.55.0-cp310-cp310-win_amd64.whl", hash = "sha256:636caaeefe586d7c84b5ee0734c1a5ab2dae619dc21c5cf336f304ddb8f6001b"}, + {file = "fonttools-4.55.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fa34aa175c91477485c44ddfbb51827d470011e558dfd5c7309eb31bef19ec51"}, + {file = "fonttools-4.55.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:37dbb3fdc2ef7302d3199fb12468481cbebaee849e4b04bc55b77c24e3c49189"}, + {file = "fonttools-4.55.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5263d8e7ef3c0ae87fbce7f3ec2f546dc898d44a337e95695af2cd5ea21a967"}, + {file = "fonttools-4.55.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f307f6b5bf9e86891213b293e538d292cd1677e06d9faaa4bf9c086ad5f132f6"}, + {file = "fonttools-4.55.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:f0a4b52238e7b54f998d6a56b46a2c56b59c74d4f8a6747fb9d4042190f37cd3"}, + {file = "fonttools-4.55.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3e569711464f777a5d4ef522e781dc33f8095ab5efd7548958b36079a9f2f88c"}, + {file = "fonttools-4.55.0-cp311-cp311-win32.whl", hash = "sha256:2b3ab90ec0f7b76c983950ac601b58949f47aca14c3f21eed858b38d7ec42b05"}, + {file = "fonttools-4.55.0-cp311-cp311-win_amd64.whl", hash = "sha256:aa046f6a63bb2ad521004b2769095d4c9480c02c1efa7d7796b37826508980b6"}, + {file = "fonttools-4.55.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:838d2d8870f84fc785528a692e724f2379d5abd3fc9dad4d32f91cf99b41e4a7"}, + {file = "fonttools-4.55.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f46b863d74bab7bb0d395f3b68d3f52a03444964e67ce5c43ce43a75efce9246"}, + {file = "fonttools-4.55.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33b52a9cfe4e658e21b1f669f7309b4067910321757fec53802ca8f6eae96a5a"}, + {file = "fonttools-4.55.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:732a9a63d6ea4a81b1b25a1f2e5e143761b40c2e1b79bb2b68e4893f45139a40"}, + {file = "fonttools-4.55.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7dd91ac3fcb4c491bb4763b820bcab6c41c784111c24172616f02f4bc227c17d"}, + {file = "fonttools-4.55.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1f0e115281a32ff532118aa851ef497a1b7cda617f4621c1cdf81ace3e36fb0c"}, + {file = "fonttools-4.55.0-cp312-cp312-win32.whl", hash = "sha256:6c99b5205844f48a05cb58d4a8110a44d3038c67ed1d79eb733c4953c628b0f6"}, + {file = "fonttools-4.55.0-cp312-cp312-win_amd64.whl", hash = "sha256:f8c8c76037d05652510ae45be1cd8fb5dd2fd9afec92a25374ac82255993d57c"}, + {file = "fonttools-4.55.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8118dc571921dc9e4b288d9cb423ceaf886d195a2e5329cc427df82bba872cd9"}, + {file = "fonttools-4.55.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:01124f2ca6c29fad4132d930da69158d3f49b2350e4a779e1efbe0e82bd63f6c"}, + {file = "fonttools-4.55.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81ffd58d2691f11f7c8438796e9f21c374828805d33e83ff4b76e4635633674c"}, + {file = "fonttools-4.55.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5435e5f1eb893c35c2bc2b9cd3c9596b0fcb0a59e7a14121562986dd4c47b8dd"}, + {file = "fonttools-4.55.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d12081729280c39d001edd0f4f06d696014c26e6e9a0a55488fabc37c28945e4"}, + {file = "fonttools-4.55.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a7ad1f1b98ab6cb927ab924a38a8649f1ffd7525c75fe5b594f5dab17af70e18"}, + {file = "fonttools-4.55.0-cp313-cp313-win32.whl", hash = "sha256:abe62987c37630dca69a104266277216de1023cf570c1643bb3a19a9509e7a1b"}, + {file = "fonttools-4.55.0-cp313-cp313-win_amd64.whl", hash = "sha256:2863555ba90b573e4201feaf87a7e71ca3b97c05aa4d63548a4b69ea16c9e998"}, + {file = "fonttools-4.55.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:00f7cf55ad58a57ba421b6a40945b85ac7cc73094fb4949c41171d3619a3a47e"}, + {file = "fonttools-4.55.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f27526042efd6f67bfb0cc2f1610fa20364396f8b1fc5edb9f45bb815fb090b2"}, + {file = "fonttools-4.55.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8e67974326af6a8879dc2a4ec63ab2910a1c1a9680ccd63e4a690950fceddbe"}, + {file = "fonttools-4.55.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61dc0a13451143c5e987dec5254d9d428f3c2789a549a7cf4f815b63b310c1cc"}, + {file = "fonttools-4.55.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:b2e526b325a903868c62155a6a7e24df53f6ce4c5c3160214d8fe1be2c41b478"}, + {file = "fonttools-4.55.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:b7ef9068a1297714e6fefe5932c33b058aa1d45a2b8be32a4c6dee602ae22b5c"}, + {file = "fonttools-4.55.0-cp38-cp38-win32.whl", hash = "sha256:55718e8071be35dff098976bc249fc243b58efa263768c611be17fe55975d40a"}, + {file = "fonttools-4.55.0-cp38-cp38-win_amd64.whl", hash = "sha256:553bd4f8cc327f310c20158e345e8174c8eed49937fb047a8bda51daf2c353c8"}, + {file = "fonttools-4.55.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3f901cef813f7c318b77d1c5c14cf7403bae5cb977cede023e22ba4316f0a8f6"}, + {file = "fonttools-4.55.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8c9679fc0dd7e8a5351d321d8d29a498255e69387590a86b596a45659a39eb0d"}, + {file = "fonttools-4.55.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd2820a8b632f3307ebb0bf57948511c2208e34a4939cf978333bc0a3f11f838"}, + {file = "fonttools-4.55.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23bbbb49bec613a32ed1b43df0f2b172313cee690c2509f1af8fdedcf0a17438"}, + {file = "fonttools-4.55.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:a656652e1f5d55b9728937a7e7d509b73d23109cddd4e89ee4f49bde03b736c6"}, + {file = "fonttools-4.55.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:f50a1f455902208486fbca47ce33054208a4e437b38da49d6721ce2fef732fcf"}, + {file = "fonttools-4.55.0-cp39-cp39-win32.whl", hash = "sha256:161d1ac54c73d82a3cded44202d0218ab007fde8cf194a23d3dd83f7177a2f03"}, + {file = "fonttools-4.55.0-cp39-cp39-win_amd64.whl", hash = "sha256:ca7fd6987c68414fece41c96836e945e1f320cda56fc96ffdc16e54a44ec57a2"}, + {file = "fonttools-4.55.0-py3-none-any.whl", hash = "sha256:12db5888cd4dd3fcc9f0ee60c6edd3c7e1fd44b7dd0f31381ea03df68f8a153f"}, + {file = "fonttools-4.55.0.tar.gz", hash = "sha256:7636acc6ab733572d5e7eec922b254ead611f1cdad17be3f0be7418e8bfaca71"}, +] + +[package.extras] +all = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "fs (>=2.2.0,<3)", "lxml (>=4.0)", "lz4 (>=1.7.4.2)", "matplotlib", "munkres", "pycairo", "scipy", "skia-pathops (>=0.5.0)", "sympy", "uharfbuzz (>=0.23.0)", "unicodedata2 (>=15.1.0)", "xattr", "zopfli (>=0.1.4)"] +graphite = ["lz4 (>=1.7.4.2)"] +interpolatable = ["munkres", "pycairo", "scipy"] +lxml = ["lxml (>=4.0)"] +pathops = ["skia-pathops (>=0.5.0)"] +plot = ["matplotlib"] +repacker = ["uharfbuzz (>=0.23.0)"] +symfont = ["sympy"] +type1 = ["xattr"] +ufo = ["fs (>=2.2.0,<3)"] +unicode = ["unicodedata2 (>=15.1.0)"] +woff = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "zopfli (>=0.1.4)"] + +[[package]] +name = "fqdn" +version = "1.5.1" +description = "Validates fully-qualified domain names against RFC 1123, so that they are acceptable to modern bowsers" +optional = false +python-versions = ">=2.7, !=3.0, !=3.1, !=3.2, !=3.3, !=3.4, <4" +files = [ + {file = "fqdn-1.5.1-py3-none-any.whl", hash = "sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014"}, + {file = "fqdn-1.5.1.tar.gz", hash = "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f"}, +] + +[[package]] +name = "greenlet" +version = "3.1.1" +description = "Lightweight in-process concurrent programming" +optional = false +python-versions = ">=3.7" +files = [ + {file = "greenlet-3.1.1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:0bbae94a29c9e5c7e4a2b7f0aae5c17e8e90acbfd3bf6270eeba60c39fce3563"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fde093fb93f35ca72a556cf72c92ea3ebfda3d79fc35bb19fbe685853869a83"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:36b89d13c49216cadb828db8dfa6ce86bbbc476a82d3a6c397f0efae0525bdd0"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:94b6150a85e1b33b40b1464a3f9988dcc5251d6ed06842abff82e42632fac120"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93147c513fac16385d1036b7e5b102c7fbbdb163d556b791f0f11eada7ba65dc"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:da7a9bff22ce038e19bf62c4dd1ec8391062878710ded0a845bcf47cc0200617"}, + {file = "greenlet-3.1.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b2795058c23988728eec1f36a4e5e4ebad22f8320c85f3587b539b9ac84128d7"}, + {file = "greenlet-3.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ed10eac5830befbdd0c32f83e8aa6288361597550ba669b04c48f0f9a2c843c6"}, + {file = "greenlet-3.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:77c386de38a60d1dfb8e55b8c1101d68c79dfdd25c7095d51fec2dd800892b80"}, + {file = "greenlet-3.1.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:e4d333e558953648ca09d64f13e6d8f0523fa705f51cae3f03b5983489958c70"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09fc016b73c94e98e29af67ab7b9a879c307c6731a2c9da0db5a7d9b7edd1159"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d5e975ca70269d66d17dd995dafc06f1b06e8cb1ec1e9ed54c1d1e4a7c4cf26e"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3b2813dc3de8c1ee3f924e4d4227999285fd335d1bcc0d2be6dc3f1f6a318ec1"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e347b3bfcf985a05e8c0b7d462ba6f15b1ee1c909e2dcad795e49e91b152c383"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9e8f8c9cb53cdac7ba9793c276acd90168f416b9ce36799b9b885790f8ad6c0a"}, + {file = "greenlet-3.1.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:62ee94988d6b4722ce0028644418d93a52429e977d742ca2ccbe1c4f4a792511"}, + {file = "greenlet-3.1.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1776fd7f989fc6b8d8c8cb8da1f6b82c5814957264d1f6cf818d475ec2bf6395"}, + {file = "greenlet-3.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:48ca08c771c268a768087b408658e216133aecd835c0ded47ce955381105ba39"}, + {file = "greenlet-3.1.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:4afe7ea89de619adc868e087b4d2359282058479d7cfb94970adf4b55284574d"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f406b22b7c9a9b4f8aa9d2ab13d6ae0ac3e85c9a809bd590ad53fed2bf70dc79"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c3a701fe5a9695b238503ce5bbe8218e03c3bcccf7e204e455e7462d770268aa"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2846930c65b47d70b9d178e89c7e1a69c95c1f68ea5aa0a58646b7a96df12441"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99cfaa2110534e2cf3ba31a7abcac9d328d1d9f1b95beede58294a60348fba36"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1443279c19fca463fc33e65ef2a935a5b09bb90f978beab37729e1c3c6c25fe9"}, + {file = "greenlet-3.1.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b7cede291382a78f7bb5f04a529cb18e068dd29e0fb27376074b6d0317bf4dd0"}, + {file = "greenlet-3.1.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:23f20bb60ae298d7d8656c6ec6db134bca379ecefadb0b19ce6f19d1f232a942"}, + {file = "greenlet-3.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:7124e16b4c55d417577c2077be379514321916d5790fa287c9ed6f23bd2ffd01"}, + {file = "greenlet-3.1.1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:05175c27cb459dcfc05d026c4232f9de8913ed006d42713cb8a5137bd49375f1"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:935e943ec47c4afab8965954bf49bfa639c05d4ccf9ef6e924188f762145c0ff"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:667a9706c970cb552ede35aee17339a18e8f2a87a51fba2ed39ceeeb1004798a"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b8a678974d1f3aa55f6cc34dc480169d58f2e6d8958895d68845fa4ab566509e"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efc0f674aa41b92da8c49e0346318c6075d734994c3c4e4430b1c3f853e498e4"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0153404a4bb921f0ff1abeb5ce8a5131da56b953eda6e14b88dc6bbc04d2049e"}, + {file = "greenlet-3.1.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:275f72decf9932639c1c6dd1013a1bc266438eb32710016a1c742df5da6e60a1"}, + {file = "greenlet-3.1.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:c4aab7f6381f38a4b42f269057aee279ab0fc7bf2e929e3d4abfae97b682a12c"}, + {file = "greenlet-3.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:b42703b1cf69f2aa1df7d1030b9d77d3e584a70755674d60e710f0af570f3761"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1695e76146579f8c06c1509c7ce4dfe0706f49c6831a817ac04eebb2fd02011"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7876452af029456b3f3549b696bb36a06db7c90747740c5302f74a9e9fa14b13"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4ead44c85f8ab905852d3de8d86f6f8baf77109f9da589cb4fa142bd3b57b475"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8320f64b777d00dd7ccdade271eaf0cad6636343293a25074cc5566160e4de7b"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6510bf84a6b643dabba74d3049ead221257603a253d0a9873f55f6a59a65f822"}, + {file = "greenlet-3.1.1-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:04b013dc07c96f83134b1e99888e7a79979f1a247e2a9f59697fa14b5862ed01"}, + {file = "greenlet-3.1.1-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:411f015496fec93c1c8cd4e5238da364e1da7a124bcb293f085bf2860c32c6f6"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:47da355d8687fd65240c364c90a31569a133b7b60de111c255ef5b606f2ae291"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:98884ecf2ffb7d7fe6bd517e8eb99d31ff7855a840fa6d0d63cd07c037f6a981"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1d4aeb8891338e60d1ab6127af1fe45def5259def8094b9c7e34690c8858803"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db32b5348615a04b82240cc67983cb315309e88d444a288934ee6ceaebcad6cc"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dcc62f31eae24de7f8dce72134c8651c58000d3b1868e01392baea7c32c247de"}, + {file = "greenlet-3.1.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:1d3755bcb2e02de341c55b4fca7a745a24a9e7212ac953f6b3a48d117d7257aa"}, + {file = "greenlet-3.1.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:b8da394b34370874b4572676f36acabac172602abf054cbc4ac910219f3340af"}, + {file = "greenlet-3.1.1-cp37-cp37m-win32.whl", hash = "sha256:a0dfc6c143b519113354e780a50381508139b07d2177cb6ad6a08278ec655798"}, + {file = "greenlet-3.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:54558ea205654b50c438029505def3834e80f0869a70fb15b871c29b4575ddef"}, + {file = "greenlet-3.1.1-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:346bed03fe47414091be4ad44786d1bd8bef0c3fcad6ed3dee074a032ab408a9"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dfc59d69fc48664bc693842bd57acfdd490acafda1ab52c7836e3fc75c90a111"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d21e10da6ec19b457b82636209cbe2331ff4306b54d06fa04b7c138ba18c8a81"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:37b9de5a96111fc15418819ab4c4432e4f3c2ede61e660b1e33971eba26ef9ba"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ef9ea3f137e5711f0dbe5f9263e8c009b7069d8a1acea822bd5e9dae0ae49c8"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:85f3ff71e2e60bd4b4932a043fbbe0f499e263c628390b285cb599154a3b03b1"}, + {file = "greenlet-3.1.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:95ffcf719966dd7c453f908e208e14cde192e09fde6c7186c8f1896ef778d8cd"}, + {file = "greenlet-3.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:03a088b9de532cbfe2ba2034b2b85e82df37874681e8c470d6fb2f8c04d7e4b7"}, + {file = "greenlet-3.1.1-cp38-cp38-win32.whl", hash = "sha256:8b8b36671f10ba80e159378df9c4f15c14098c4fd73a36b9ad715f057272fbef"}, + {file = "greenlet-3.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:7017b2be767b9d43cc31416aba48aab0d2309ee31b4dbf10a1d38fb7972bdf9d"}, + {file = "greenlet-3.1.1-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:396979749bd95f018296af156201d6211240e7a23090f50a8d5d18c370084dc3"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca9d0ff5ad43e785350894d97e13633a66e2b50000e8a183a50a88d834752d42"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f6ff3b14f2df4c41660a7dec01045a045653998784bf8cfcb5a525bdffffbc8f"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:94ebba31df2aa506d7b14866fed00ac141a867e63143fe5bca82a8e503b36437"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:73aaad12ac0ff500f62cebed98d8789198ea0e6f233421059fa68a5aa7220145"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:63e4844797b975b9af3a3fb8f7866ff08775f5426925e1e0bbcfe7932059a12c"}, + {file = "greenlet-3.1.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:7939aa3ca7d2a1593596e7ac6d59391ff30281ef280d8632fa03d81f7c5f955e"}, + {file = "greenlet-3.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d0028e725ee18175c6e422797c407874da24381ce0690d6b9396c204c7f7276e"}, + {file = "greenlet-3.1.1-cp39-cp39-win32.whl", hash = "sha256:5e06afd14cbaf9e00899fae69b24a32f2196c19de08fcb9f4779dd4f004e5e7c"}, + {file = "greenlet-3.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:3319aa75e0e0639bc15ff54ca327e8dc7a6fe404003496e3c6925cd3142e0e22"}, + {file = "greenlet-3.1.1.tar.gz", hash = "sha256:4ce3ac6cdb6adf7946475d7ef31777c26d94bccc377e070a7986bd2d5c515467"}, +] + +[package.extras] +docs = ["Sphinx", "furo"] +test = ["objgraph", "psutil"] + +[[package]] +name = "h11" +version = "0.14.0" +description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" +optional = false +python-versions = ">=3.7" +files = [ + {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, + {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, +] + +[[package]] +name = "httpcore" +version = "1.0.7" +description = "A minimal low-level HTTP client." +optional = false +python-versions = ">=3.8" +files = [ + {file = "httpcore-1.0.7-py3-none-any.whl", hash = "sha256:a3fff8f43dc260d5bd363d9f9cf1830fa3a458b332856f34282de498ed420edd"}, + {file = "httpcore-1.0.7.tar.gz", hash = "sha256:8551cb62a169ec7162ac7be8d4817d561f60e08eaa485234898414bb5a8a0b4c"}, +] + +[package.dependencies] +certifi = "*" +h11 = ">=0.13,<0.15" + +[package.extras] +asyncio = ["anyio (>=4.0,<5.0)"] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (==1.*)"] +trio = ["trio (>=0.22.0,<1.0)"] + +[[package]] +name = "httpx" +version = "0.27.2" +description = "The next generation HTTP client." +optional = false +python-versions = ">=3.8" +files = [ + {file = "httpx-0.27.2-py3-none-any.whl", hash = "sha256:7bb2708e112d8fdd7829cd4243970f0c223274051cb35ee80c03301ee29a3df0"}, + {file = "httpx-0.27.2.tar.gz", hash = "sha256:f7c2be1d2f3c3c3160d441802406b206c2b76f5947b11115e6df10c6c65e66c2"}, +] + +[package.dependencies] +anyio = "*" +certifi = "*" +httpcore = "==1.*" +idna = "*" +sniffio = "*" + +[package.extras] +brotli = ["brotli", "brotlicffi"] +cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (==1.*)"] +zstd = ["zstandard (>=0.18.0)"] + +[[package]] +name = "idna" +version = "3.10" +description = "Internationalized Domain Names in Applications (IDNA)" +optional = false +python-versions = ">=3.6" +files = [ + {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, + {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, +] + +[package.extras] +all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] + +[[package]] +name = "iniconfig" +version = "2.0.0" +description = "brain-dead simple config-ini parsing" +optional = false +python-versions = ">=3.7" +files = [ + {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, + {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, +] + +[[package]] +name = "ipykernel" +version = "6.29.5" +description = "IPython Kernel for Jupyter" +optional = false +python-versions = ">=3.8" +files = [ + {file = "ipykernel-6.29.5-py3-none-any.whl", hash = "sha256:afdb66ba5aa354b09b91379bac28ae4afebbb30e8b39510c9690afb7a10421b5"}, + {file = "ipykernel-6.29.5.tar.gz", hash = "sha256:f093a22c4a40f8828f8e330a9c297cb93dcab13bd9678ded6de8e5cf81c56215"}, +] + +[package.dependencies] +appnope = {version = "*", markers = "platform_system == \"Darwin\""} +comm = ">=0.1.1" +debugpy = ">=1.6.5" +ipython = ">=7.23.1" +jupyter-client = ">=6.1.12" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +matplotlib-inline = ">=0.1" +nest-asyncio = "*" +packaging = "*" +psutil = "*" +pyzmq = ">=24" +tornado = ">=6.1" +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"] +pyqt5 = ["pyqt5"] +pyside6 = ["pyside6"] +test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.23.5)", "pytest-cov", "pytest-timeout"] + +[[package]] +name = "ipython" +version = "8.29.0" +description = "IPython: Productive Interactive Computing" +optional = false +python-versions = ">=3.10" +files = [ + {file = "ipython-8.29.0-py3-none-any.whl", hash = "sha256:0188a1bd83267192123ccea7f4a8ed0a78910535dbaa3f37671dca76ebd429c8"}, + {file = "ipython-8.29.0.tar.gz", hash = "sha256:40b60e15b22591450eef73e40a027cf77bd652e757523eebc5bd7c7c498290eb"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "sys_platform == \"win32\""} +decorator = "*" +exceptiongroup = {version = "*", markers = "python_version < \"3.11\""} +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[black,doc,kernel,matplotlib,nbconvert,nbformat,notebook,parallel,qtconsole]", "ipython[test,test-extra]"] +black = ["black"] +doc = ["docrepr", "exceptiongroup", "intersphinx-registry", "ipykernel", "ipython[test]", "matplotlib", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "sphinxcontrib-jquery", "tomli", "typing-extensions"] +kernel = ["ipykernel"] +matplotlib = ["matplotlib"] +nbconvert = ["nbconvert"] +nbformat = ["nbformat"] +notebook = ["ipywidgets", "notebook"] +parallel = ["ipyparallel"] +qtconsole = ["qtconsole"] +test = ["packaging", "pickleshare", "pytest", "pytest-asyncio (<0.22)", "testpath"] +test-extra = ["curio", "ipython[test]", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.23)", "pandas", "trio"] + +[[package]] +name = "isoduration" +version = "20.11.0" +description = "Operations with ISO 8601 durations" +optional = false +python-versions = ">=3.7" +files = [ + {file = "isoduration-20.11.0-py3-none-any.whl", hash = "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042"}, + {file = "isoduration-20.11.0.tar.gz", hash = "sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9"}, +] + +[package.dependencies] +arrow = ">=0.15.0" + +[[package]] +name = "isort" +version = "5.13.2" +description = "A Python utility / library to sort Python imports." +optional = false +python-versions = ">=3.8.0" +files = [ + {file = "isort-5.13.2-py3-none-any.whl", hash = "sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6"}, + {file = "isort-5.13.2.tar.gz", hash = "sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109"}, +] + +[package.extras] +colors = ["colorama (>=0.4.6)"] + +[[package]] +name = "jedi" +version = "0.19.2" +description = "An autocompletion tool for Python that can be used for text editors." +optional = false +python-versions = ">=3.6" +files = [ + {file = "jedi-0.19.2-py2.py3-none-any.whl", hash = "sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9"}, + {file = "jedi-0.19.2.tar.gz", hash = "sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0"}, +] + +[package.dependencies] +parso = ">=0.8.4,<0.9.0" + +[package.extras] +docs = ["Jinja2 (==2.11.3)", "MarkupSafe (==1.1.1)", "Pygments (==2.8.1)", "alabaster (==0.7.12)", "babel (==2.9.1)", "chardet (==4.0.0)", "commonmark (==0.8.1)", "docutils (==0.17.1)", "future (==0.18.2)", "idna (==2.10)", "imagesize (==1.2.0)", "mock (==1.0.1)", "packaging (==20.9)", "pyparsing (==2.4.7)", "pytz (==2021.1)", "readthedocs-sphinx-ext (==2.1.4)", "recommonmark (==0.5.0)", "requests (==2.25.1)", "six (==1.15.0)", "snowballstemmer (==2.1.0)", "sphinx (==1.8.5)", "sphinx-rtd-theme (==0.4.3)", "sphinxcontrib-serializinghtml (==1.1.4)", "sphinxcontrib-websupport (==1.2.4)", "urllib3 (==1.26.4)"] +qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] +testing = ["Django", "attrs", "colorama", "docopt", "pytest (<9.0.0)"] + +[[package]] +name = "jinja2" +version = "3.1.4" +description = "A very fast and expressive template engine." +optional = false +python-versions = ">=3.7" +files = [ + {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, + {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, +] + +[package.dependencies] +MarkupSafe = ">=2.0" + +[package.extras] +i18n = ["Babel (>=2.7)"] + +[[package]] +name = "json5" +version = "0.9.28" +description = "A Python implementation of the JSON5 data format." +optional = false +python-versions = ">=3.8.0" +files = [ + {file = "json5-0.9.28-py3-none-any.whl", hash = "sha256:29c56f1accdd8bc2e037321237662034a7e07921e2b7223281a5ce2c46f0c4df"}, + {file = "json5-0.9.28.tar.gz", hash = "sha256:1f82f36e615bc5b42f1bbd49dbc94b12563c56408c6ffa06414ea310890e9a6e"}, +] + +[package.extras] +dev = ["build (==1.2.2.post1)", "coverage (==7.5.3)", "mypy (==1.13.0)", "pip (==24.3.1)", "pylint (==3.2.3)", "ruff (==0.7.3)", "twine (==5.1.1)", "uv (==0.5.1)"] + +[[package]] +name = "jsonpointer" +version = "3.0.0" +description = "Identify specific nodes in a JSON document (RFC 6901)" +optional = false +python-versions = ">=3.7" +files = [ + {file = "jsonpointer-3.0.0-py2.py3-none-any.whl", hash = "sha256:13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942"}, + {file = "jsonpointer-3.0.0.tar.gz", hash = "sha256:2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef"}, +] + +[[package]] +name = "jsonschema" +version = "4.23.0" +description = "An implementation of JSON Schema validation for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jsonschema-4.23.0-py3-none-any.whl", hash = "sha256:fbadb6f8b144a8f8cf9f0b89ba94501d143e50411a1278633f56a7acf7fd5566"}, + {file = "jsonschema-4.23.0.tar.gz", hash = "sha256:d71497fef26351a33265337fa77ffeb82423f3ea21283cd9467bb03999266bc4"}, +] + +[package.dependencies] +attrs = ">=22.2.0" +fqdn = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +idna = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +isoduration = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +jsonpointer = {version = ">1.13", optional = true, markers = "extra == \"format-nongpl\""} +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\""} +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)"] + +[[package]] +name = "jsonschema-specifications" +version = "2024.10.1" +description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" +optional = false +python-versions = ">=3.9" +files = [ + {file = "jsonschema_specifications-2024.10.1-py3-none-any.whl", hash = "sha256:a09a0680616357d9a0ecf05c12ad234479f549239d0f5b55f3deea67475da9bf"}, + {file = "jsonschema_specifications-2024.10.1.tar.gz", hash = "sha256:0f38b83639958ce1152d02a7f062902c41c8fd20d558b0c34344292d417ae272"}, +] + +[package.dependencies] +referencing = ">=0.31.0" + +[[package]] +name = "jupyter-client" +version = "8.6.3" +description = "Jupyter protocol implementation and client libraries" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_client-8.6.3-py3-none-any.whl", hash = "sha256:e8a19cc986cc45905ac3362915f410f3af85424b4c0905e94fa5f2cb08e8f23f"}, + {file = "jupyter_client-8.6.3.tar.gz", hash = "sha256:35b3a0947c4a6e9d589eb97d7d4cd5e90f910ee73101611f01283732bd6d9419"}, +] + +[package.dependencies] +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +python-dateutil = ">=2.8.2" +pyzmq = ">=23.0" +tornado = ">=6.2" +traitlets = ">=5.3" + +[package.extras] +docs = ["ipykernel", "myst-parser", "pydata-sphinx-theme", "sphinx (>=4)", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] +test = ["coverage", "ipykernel (>=6.14)", "mypy", "paramiko", "pre-commit", "pytest (<8.2.0)", "pytest-cov", "pytest-jupyter[client] (>=0.4.1)", "pytest-timeout"] + +[[package]] +name = "jupyter-core" +version = "5.7.2" +description = "Jupyter core package. A base package on which Jupyter projects rely." +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_core-5.7.2-py3-none-any.whl", hash = "sha256:4f7315d2f6b4bcf2e3e7cb6e46772eba760ae459cd1f59d29eb57b0a01bd7409"}, + {file = "jupyter_core-5.7.2.tar.gz", hash = "sha256:aa5f8d32bbf6b431ac830496da7392035d6f61b4f54872f15c4bd2a9c3f536d9"}, +] + +[package.dependencies] +platformdirs = ">=2.5" +pywin32 = {version = ">=300", markers = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\""} +traitlets = ">=5.3" + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "traitlets"] +test = ["ipykernel", "pre-commit", "pytest (<8)", "pytest-cov", "pytest-timeout"] + +[[package]] +name = "jupyter-events" +version = "0.10.0" +description = "Jupyter Event System library" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_events-0.10.0-py3-none-any.whl", hash = "sha256:4b72130875e59d57716d327ea70d3ebc3af1944d3717e5a498b8a06c6c159960"}, + {file = "jupyter_events-0.10.0.tar.gz", hash = "sha256:670b8229d3cc882ec782144ed22e0d29e1c2d639263f92ca8383e66682845e22"}, +] + +[package.dependencies] +jsonschema = {version = ">=4.18.0", extras = ["format-nongpl"]} +python-json-logger = ">=2.0.4" +pyyaml = ">=5.3" +referencing = "*" +rfc3339-validator = "*" +rfc3986-validator = ">=0.1.1" +traitlets = ">=5.3" + +[package.extras] +cli = ["click", "rich"] +docs = ["jupyterlite-sphinx", "myst-parser", "pydata-sphinx-theme", "sphinxcontrib-spelling"] +test = ["click", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.19.0)", "pytest-console-scripts", "rich"] + +[[package]] +name = "jupyter-lsp" +version = "2.2.5" +description = "Multi-Language Server WebSocket proxy for Jupyter Notebook/Lab server" +optional = false +python-versions = ">=3.8" +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"}, +] + +[package.dependencies] +jupyter-server = ">=1.1.2" + +[[package]] +name = "jupyter-server" +version = "2.14.2" +description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications." +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_server-2.14.2-py3-none-any.whl", hash = "sha256:47ff506127c2f7851a17bf4713434208fc490955d0e8632e95014a9a9afbeefd"}, + {file = "jupyter_server-2.14.2.tar.gz", hash = "sha256:66095021aa9638ced276c248b1d81862e4c50f292d575920bbe960de1c56b12b"}, +] + +[package.dependencies] +anyio = ">=3.1.0" +argon2-cffi = ">=21.1" +jinja2 = ">=3.0.3" +jupyter-client = ">=7.4.4" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-events = ">=0.9.0" +jupyter-server-terminals = ">=0.4.4" +nbconvert = ">=6.4.4" +nbformat = ">=5.3.0" +overrides = ">=5.0" +packaging = ">=22.0" +prometheus-client = ">=0.9" +pywinpty = {version = ">=2.0.1", markers = "os_name == \"nt\""} +pyzmq = ">=24" +send2trash = ">=1.8.2" +terminado = ">=0.8.3" +tornado = ">=6.2.0" +traitlets = ">=5.6.0" +websocket-client = ">=1.7" + +[package.extras] +docs = ["ipykernel", "jinja2", "jupyter-client", "myst-parser", "nbformat", "prometheus-client", "pydata-sphinx-theme", "send2trash", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-openapi (>=0.8.0)", "sphinxcontrib-spelling", "sphinxemoji", "tornado", "typing-extensions"] +test = ["flaky", "ipykernel", "pre-commit", "pytest (>=7.0,<9)", "pytest-console-scripts", "pytest-jupyter[server] (>=0.7)", "pytest-timeout", "requests"] + +[[package]] +name = "jupyter-server-terminals" +version = "0.5.3" +description = "A Jupyter Server Extension Providing Terminals." +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_server_terminals-0.5.3-py3-none-any.whl", hash = "sha256:41ee0d7dc0ebf2809c668e0fc726dfaf258fcd3e769568996ca731b6194ae9aa"}, + {file = "jupyter_server_terminals-0.5.3.tar.gz", hash = "sha256:5ae0295167220e9ace0edcfdb212afd2b01ee8d179fe6f23c899590e9b8a5269"}, +] + +[package.dependencies] +pywinpty = {version = ">=2.0.3", markers = "os_name == \"nt\""} +terminado = ">=0.8.3" + +[package.extras] +docs = ["jinja2", "jupyter-server", "mistune (<4.0)", "myst-parser", "nbformat", "packaging", "pydata-sphinx-theme", "sphinxcontrib-github-alt", "sphinxcontrib-openapi", "sphinxcontrib-spelling", "sphinxemoji", "tornado"] +test = ["jupyter-server (>=2.0.0)", "pytest (>=7.0)", "pytest-jupyter[server] (>=0.5.3)", "pytest-timeout"] + +[[package]] +name = "jupyterlab" +version = "4.2.6" +description = "JupyterLab computational environment" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyterlab-4.2.6-py3-none-any.whl", hash = "sha256:78dd42cae5b460f377624b03966a8730e3b0692102ddf5933a2a3730c1bc0a20"}, + {file = "jupyterlab-4.2.6.tar.gz", hash = "sha256:625f3ac19da91f9706baf66df25723b2f1307c1159fc7293035b066786d62a4a"}, +] + +[package.dependencies] +async-lru = ">=1.0.0" +httpx = ">=0.25.0" +ipykernel = ">=6.5.0" +jinja2 = ">=3.0.3" +jupyter-core = "*" +jupyter-lsp = ">=2.0.0" +jupyter-server = ">=2.4.0,<3" +jupyterlab-server = ">=2.27.1,<3" +notebook-shim = ">=0.2" +packaging = "*" +setuptools = ">=40.1.0" +tomli = {version = ">=1.2.2", markers = "python_version < \"3.11\""} +tornado = ">=6.2.0" +traitlets = "*" + +[package.extras] +dev = ["build", "bump2version", "coverage", "hatch", "pre-commit", "pytest-cov", "ruff (==0.3.5)"] +docs = ["jsx-lexer", "myst-parser", "pydata-sphinx-theme (>=0.13.0)", "pytest", "pytest-check-links", "pytest-jupyter", "sphinx (>=1.8,<7.3.0)", "sphinx-copybutton"] +docs-screenshots = ["altair (==5.3.0)", "ipython (==8.16.1)", "ipywidgets (==8.1.2)", "jupyterlab-geojson (==3.4.0)", "jupyterlab-language-pack-zh-cn (==4.1.post2)", "matplotlib (==3.8.3)", "nbconvert (>=7.0.0)", "pandas (==2.2.1)", "scipy (==1.12.0)", "vega-datasets (==0.9.0)"] +test = ["coverage", "pytest (>=7.0)", "pytest-check-links (>=0.7)", "pytest-console-scripts", "pytest-cov", "pytest-jupyter (>=0.5.3)", "pytest-timeout", "pytest-tornasync", "requests", "requests-cache", "virtualenv"] +upgrade-extension = ["copier (>=9,<10)", "jinja2-time (<0.3)", "pydantic (<3.0)", "pyyaml-include (<3.0)", "tomli-w (<2.0)"] + +[[package]] +name = "jupyterlab-pygments" +version = "0.3.0" +description = "Pygments theme using JupyterLab CSS variables" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyterlab_pygments-0.3.0-py3-none-any.whl", hash = "sha256:841a89020971da1d8693f1a99997aefc5dc424bb1b251fd6322462a1b8842780"}, + {file = "jupyterlab_pygments-0.3.0.tar.gz", hash = "sha256:721aca4d9029252b11cfa9d185e5b5af4d54772bb8072f9b7036f4170054d35d"}, +] + +[[package]] +name = "jupyterlab-server" +version = "2.27.3" +description = "A set of server components for JupyterLab and JupyterLab like applications." +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyterlab_server-2.27.3-py3-none-any.whl", hash = "sha256:e697488f66c3db49df675158a77b3b017520d772c6e1548c7d9bcc5df7944ee4"}, + {file = "jupyterlab_server-2.27.3.tar.gz", hash = "sha256:eb36caca59e74471988f0ae25c77945610b887f777255aa21f8065def9e51ed4"}, +] + +[package.dependencies] +babel = ">=2.10" +jinja2 = ">=3.0.3" +json5 = ">=0.9.0" +jsonschema = ">=4.18.0" +jupyter-server = ">=1.21,<3" +packaging = ">=21.3" +requests = ">=2.31" + +[package.extras] +docs = ["autodoc-traits", "jinja2 (<3.2.0)", "mistune (<4)", "myst-parser", "pydata-sphinx-theme", "sphinx", "sphinx-copybutton", "sphinxcontrib-openapi (>0.8)"] +openapi = ["openapi-core (>=0.18.0,<0.19.0)", "ruamel-yaml"] +test = ["hatch", "ipykernel", "openapi-core (>=0.18.0,<0.19.0)", "openapi-spec-validator (>=0.6.0,<0.8.0)", "pytest (>=7.0,<8)", "pytest-console-scripts", "pytest-cov", "pytest-jupyter[server] (>=0.6.2)", "pytest-timeout", "requests-mock", "ruamel-yaml", "sphinxcontrib-spelling", "strict-rfc3339", "werkzeug"] + +[[package]] +name = "kiwisolver" +version = "1.4.7" +description = "A fast implementation of the Cassowary constraint solver" +optional = false +python-versions = ">=3.8" +files = [ + {file = "kiwisolver-1.4.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8a9c83f75223d5e48b0bc9cb1bf2776cf01563e00ade8775ffe13b0b6e1af3a6"}, + {file = "kiwisolver-1.4.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:58370b1ffbd35407444d57057b57da5d6549d2d854fa30249771775c63b5fe17"}, + {file = "kiwisolver-1.4.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:aa0abdf853e09aff551db11fce173e2177d00786c688203f52c87ad7fcd91ef9"}, + {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:8d53103597a252fb3ab8b5845af04c7a26d5e7ea8122303dd7a021176a87e8b9"}, + {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:88f17c5ffa8e9462fb79f62746428dd57b46eb931698e42e990ad63103f35e6c"}, + {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88a9ca9c710d598fd75ee5de59d5bda2684d9db36a9f50b6125eaea3969c2599"}, + {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f4d742cb7af1c28303a51b7a27aaee540e71bb8e24f68c736f6f2ffc82f2bf05"}, + {file = "kiwisolver-1.4.7-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e28c7fea2196bf4c2f8d46a0415c77a1c480cc0724722f23d7410ffe9842c407"}, + {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e968b84db54f9d42046cf154e02911e39c0435c9801681e3fc9ce8a3c4130278"}, + {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0c18ec74c0472de033e1bebb2911c3c310eef5649133dd0bedf2a169a1b269e5"}, + {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:8f0ea6da6d393d8b2e187e6a5e3fb81f5862010a40c3945e2c6d12ae45cfb2ad"}, + {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:f106407dda69ae456dd1227966bf445b157ccc80ba0dff3802bb63f30b74e895"}, + {file = "kiwisolver-1.4.7-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:84ec80df401cfee1457063732d90022f93951944b5b58975d34ab56bb150dfb3"}, + {file = "kiwisolver-1.4.7-cp310-cp310-win32.whl", hash = "sha256:71bb308552200fb2c195e35ef05de12f0c878c07fc91c270eb3d6e41698c3bcc"}, + {file = "kiwisolver-1.4.7-cp310-cp310-win_amd64.whl", hash = "sha256:44756f9fd339de0fb6ee4f8c1696cfd19b2422e0d70b4cefc1cc7f1f64045a8c"}, + {file = "kiwisolver-1.4.7-cp310-cp310-win_arm64.whl", hash = "sha256:78a42513018c41c2ffd262eb676442315cbfe3c44eed82385c2ed043bc63210a"}, + {file = "kiwisolver-1.4.7-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d2b0e12a42fb4e72d509fc994713d099cbb15ebf1103545e8a45f14da2dfca54"}, + {file = "kiwisolver-1.4.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2a8781ac3edc42ea4b90bc23e7d37b665d89423818e26eb6df90698aa2287c95"}, + {file = "kiwisolver-1.4.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:46707a10836894b559e04b0fd143e343945c97fd170d69a2d26d640b4e297935"}, + {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ef97b8df011141c9b0f6caf23b29379f87dd13183c978a30a3c546d2c47314cb"}, + {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ab58c12a2cd0fc769089e6d38466c46d7f76aced0a1f54c77652446733d2d02"}, + {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:803b8e1459341c1bb56d1c5c010406d5edec8a0713a0945851290a7930679b51"}, + {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f9a9e8a507420fe35992ee9ecb302dab68550dedc0da9e2880dd88071c5fb052"}, + {file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18077b53dc3bb490e330669a99920c5e6a496889ae8c63b58fbc57c3d7f33a18"}, + {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6af936f79086a89b3680a280c47ea90b4df7047b5bdf3aa5c524bbedddb9e545"}, + {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:3abc5b19d24af4b77d1598a585b8a719beb8569a71568b66f4ebe1fb0449460b"}, + {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:933d4de052939d90afbe6e9d5273ae05fb836cc86c15b686edd4b3560cc0ee36"}, + {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:65e720d2ab2b53f1f72fb5da5fb477455905ce2c88aaa671ff0a447c2c80e8e3"}, + {file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3bf1ed55088f214ba6427484c59553123fdd9b218a42bbc8c6496d6754b1e523"}, + {file = "kiwisolver-1.4.7-cp311-cp311-win32.whl", hash = "sha256:4c00336b9dd5ad96d0a558fd18a8b6f711b7449acce4c157e7343ba92dd0cf3d"}, + {file = "kiwisolver-1.4.7-cp311-cp311-win_amd64.whl", hash = "sha256:929e294c1ac1e9f615c62a4e4313ca1823ba37326c164ec720a803287c4c499b"}, + {file = "kiwisolver-1.4.7-cp311-cp311-win_arm64.whl", hash = "sha256:e33e8fbd440c917106b237ef1a2f1449dfbb9b6f6e1ce17c94cd6a1e0d438376"}, + {file = "kiwisolver-1.4.7-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:5360cc32706dab3931f738d3079652d20982511f7c0ac5711483e6eab08efff2"}, + {file = "kiwisolver-1.4.7-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:942216596dc64ddb25adb215c3c783215b23626f8d84e8eff8d6d45c3f29f75a"}, + {file = "kiwisolver-1.4.7-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:48b571ecd8bae15702e4f22d3ff6a0f13e54d3d00cd25216d5e7f658242065ee"}, + {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ad42ba922c67c5f219097b28fae965e10045ddf145d2928bfac2eb2e17673640"}, + {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:612a10bdae23404a72941a0fc8fa2660c6ea1217c4ce0dbcab8a8f6543ea9e7f"}, + {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9e838bba3a3bac0fe06d849d29772eb1afb9745a59710762e4ba3f4cb8424483"}, + {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:22f499f6157236c19f4bbbd472fa55b063db77a16cd74d49afe28992dff8c258"}, + {file = "kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:693902d433cf585133699972b6d7c42a8b9f8f826ebcaf0132ff55200afc599e"}, + {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4e77f2126c3e0b0d055f44513ed349038ac180371ed9b52fe96a32aa071a5107"}, + {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:657a05857bda581c3656bfc3b20e353c232e9193eb167766ad2dc58b56504948"}, + {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4bfa75a048c056a411f9705856abfc872558e33c055d80af6a380e3658766038"}, + {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:34ea1de54beef1c104422d210c47c7d2a4999bdecf42c7b5718fbe59a4cac383"}, + {file = "kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:90da3b5f694b85231cf93586dad5e90e2d71b9428f9aad96952c99055582f520"}, + {file = "kiwisolver-1.4.7-cp312-cp312-win32.whl", hash = "sha256:18e0cca3e008e17fe9b164b55735a325140a5a35faad8de92dd80265cd5eb80b"}, + {file = "kiwisolver-1.4.7-cp312-cp312-win_amd64.whl", hash = "sha256:58cb20602b18f86f83a5c87d3ee1c766a79c0d452f8def86d925e6c60fbf7bfb"}, + {file = "kiwisolver-1.4.7-cp312-cp312-win_arm64.whl", hash = "sha256:f5a8b53bdc0b3961f8b6125e198617c40aeed638b387913bf1ce78afb1b0be2a"}, + {file = "kiwisolver-1.4.7-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2e6039dcbe79a8e0f044f1c39db1986a1b8071051efba3ee4d74f5b365f5226e"}, + {file = "kiwisolver-1.4.7-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a1ecf0ac1c518487d9d23b1cd7139a6a65bc460cd101ab01f1be82ecf09794b6"}, + {file = "kiwisolver-1.4.7-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7ab9ccab2b5bd5702ab0803676a580fffa2aa178c2badc5557a84cc943fcf750"}, + {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f816dd2277f8d63d79f9c8473a79fe54047bc0467754962840782c575522224d"}, + {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf8bcc23ceb5a1b624572a1623b9f79d2c3b337c8c455405ef231933a10da379"}, + {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dea0bf229319828467d7fca8c7c189780aa9ff679c94539eed7532ebe33ed37c"}, + {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c06a4c7cf15ec739ce0e5971b26c93638730090add60e183530d70848ebdd34"}, + {file = "kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:913983ad2deb14e66d83c28b632fd35ba2b825031f2fa4ca29675e665dfecbe1"}, + {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5337ec7809bcd0f424c6b705ecf97941c46279cf5ed92311782c7c9c2026f07f"}, + {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:4c26ed10c4f6fa6ddb329a5120ba3b6db349ca192ae211e882970bfc9d91420b"}, + {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c619b101e6de2222c1fcb0531e1b17bbffbe54294bfba43ea0d411d428618c27"}, + {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:073a36c8273647592ea332e816e75ef8da5c303236ec0167196793eb1e34657a"}, + {file = "kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:3ce6b2b0231bda412463e152fc18335ba32faf4e8c23a754ad50ffa70e4091ee"}, + {file = "kiwisolver-1.4.7-cp313-cp313-win32.whl", hash = "sha256:f4c9aee212bc89d4e13f58be11a56cc8036cabad119259d12ace14b34476fd07"}, + {file = "kiwisolver-1.4.7-cp313-cp313-win_amd64.whl", hash = "sha256:8a3ec5aa8e38fc4c8af308917ce12c536f1c88452ce554027e55b22cbbfbff76"}, + {file = "kiwisolver-1.4.7-cp313-cp313-win_arm64.whl", hash = "sha256:76c8094ac20ec259471ac53e774623eb62e6e1f56cd8690c67ce6ce4fcb05650"}, + {file = "kiwisolver-1.4.7-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5d5abf8f8ec1f4e22882273c423e16cae834c36856cac348cfbfa68e01c40f3a"}, + {file = "kiwisolver-1.4.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:aeb3531b196ef6f11776c21674dba836aeea9d5bd1cf630f869e3d90b16cfade"}, + {file = "kiwisolver-1.4.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b7d755065e4e866a8086c9bdada157133ff466476a2ad7861828e17b6026e22c"}, + {file = "kiwisolver-1.4.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08471d4d86cbaec61f86b217dd938a83d85e03785f51121e791a6e6689a3be95"}, + {file = "kiwisolver-1.4.7-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7bbfcb7165ce3d54a3dfbe731e470f65739c4c1f85bb1018ee912bae139e263b"}, + {file = "kiwisolver-1.4.7-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5d34eb8494bea691a1a450141ebb5385e4b69d38bb8403b5146ad279f4b30fa3"}, + {file = "kiwisolver-1.4.7-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9242795d174daa40105c1d86aba618e8eab7bf96ba8c3ee614da8302a9f95503"}, + {file = "kiwisolver-1.4.7-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:a0f64a48bb81af7450e641e3fe0b0394d7381e342805479178b3d335d60ca7cf"}, + {file = "kiwisolver-1.4.7-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:8e045731a5416357638d1700927529e2b8ab304811671f665b225f8bf8d8f933"}, + {file = "kiwisolver-1.4.7-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:4322872d5772cae7369f8351da1edf255a604ea7087fe295411397d0cfd9655e"}, + {file = "kiwisolver-1.4.7-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:e1631290ee9271dffe3062d2634c3ecac02c83890ada077d225e081aca8aab89"}, + {file = "kiwisolver-1.4.7-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:edcfc407e4eb17e037bca59be0e85a2031a2ac87e4fed26d3e9df88b4165f92d"}, + {file = "kiwisolver-1.4.7-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:4d05d81ecb47d11e7f8932bd8b61b720bf0b41199358f3f5e36d38e28f0532c5"}, + {file = "kiwisolver-1.4.7-cp38-cp38-win32.whl", hash = "sha256:b38ac83d5f04b15e515fd86f312479d950d05ce2368d5413d46c088dda7de90a"}, + {file = "kiwisolver-1.4.7-cp38-cp38-win_amd64.whl", hash = "sha256:d83db7cde68459fc803052a55ace60bea2bae361fc3b7a6d5da07e11954e4b09"}, + {file = "kiwisolver-1.4.7-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3f9362ecfca44c863569d3d3c033dbe8ba452ff8eed6f6b5806382741a1334bd"}, + {file = "kiwisolver-1.4.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e8df2eb9b2bac43ef8b082e06f750350fbbaf2887534a5be97f6cf07b19d9583"}, + {file = "kiwisolver-1.4.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f32d6edbc638cde7652bd690c3e728b25332acbadd7cad670cc4a02558d9c417"}, + {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:e2e6c39bd7b9372b0be21456caab138e8e69cc0fc1190a9dfa92bd45a1e6e904"}, + {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:dda56c24d869b1193fcc763f1284b9126550eaf84b88bbc7256e15028f19188a"}, + {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79849239c39b5e1fd906556c474d9b0439ea6792b637511f3fe3a41158d89ca8"}, + {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5e3bc157fed2a4c02ec468de4ecd12a6e22818d4f09cde2c31ee3226ffbefab2"}, + {file = "kiwisolver-1.4.7-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3da53da805b71e41053dc670f9a820d1157aae77b6b944e08024d17bcd51ef88"}, + {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:8705f17dfeb43139a692298cb6637ee2e59c0194538153e83e9ee0c75c2eddde"}, + {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:82a5c2f4b87c26bb1a0ef3d16b5c4753434633b83d365cc0ddf2770c93829e3c"}, + {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ce8be0466f4c0d585cdb6c1e2ed07232221df101a4c6f28821d2aa754ca2d9e2"}, + {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:409afdfe1e2e90e6ee7fc896f3df9a7fec8e793e58bfa0d052c8a82f99c37abb"}, + {file = "kiwisolver-1.4.7-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5b9c3f4ee0b9a439d2415012bd1b1cc2df59e4d6a9939f4d669241d30b414327"}, + {file = "kiwisolver-1.4.7-cp39-cp39-win32.whl", hash = "sha256:a79ae34384df2b615eefca647a2873842ac3b596418032bef9a7283675962644"}, + {file = "kiwisolver-1.4.7-cp39-cp39-win_amd64.whl", hash = "sha256:cf0438b42121a66a3a667de17e779330fc0f20b0d97d59d2f2121e182b0505e4"}, + {file = "kiwisolver-1.4.7-cp39-cp39-win_arm64.whl", hash = "sha256:764202cc7e70f767dab49e8df52c7455e8de0df5d858fa801a11aa0d882ccf3f"}, + {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:94252291e3fe68001b1dd747b4c0b3be12582839b95ad4d1b641924d68fd4643"}, + {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:5b7dfa3b546da08a9f622bb6becdb14b3e24aaa30adba66749d38f3cc7ea9706"}, + {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bd3de6481f4ed8b734da5df134cd5a6a64fe32124fe83dde1e5b5f29fe30b1e6"}, + {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a91b5f9f1205845d488c928e8570dcb62b893372f63b8b6e98b863ebd2368ff2"}, + {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40fa14dbd66b8b8f470d5fc79c089a66185619d31645f9b0773b88b19f7223c4"}, + {file = "kiwisolver-1.4.7-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:eb542fe7933aa09d8d8f9d9097ef37532a7df6497819d16efe4359890a2f417a"}, + {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:bfa1acfa0c54932d5607e19a2c24646fb4c1ae2694437789129cf099789a3b00"}, + {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:eee3ea935c3d227d49b4eb85660ff631556841f6e567f0f7bda972df6c2c9935"}, + {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:f3160309af4396e0ed04db259c3ccbfdc3621b5559b5453075e5de555e1f3a1b"}, + {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a17f6a29cf8935e587cc8a4dbfc8368c55edc645283db0ce9801016f83526c2d"}, + {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:10849fb2c1ecbfae45a693c070e0320a91b35dd4bcf58172c023b994283a124d"}, + {file = "kiwisolver-1.4.7-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:ac542bf38a8a4be2dc6b15248d36315ccc65f0743f7b1a76688ffb6b5129a5c2"}, + {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:8b01aac285f91ca889c800042c35ad3b239e704b150cfd3382adfc9dcc780e39"}, + {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:48be928f59a1f5c8207154f935334d374e79f2b5d212826307d072595ad76a2e"}, + {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f37cfe618a117e50d8c240555331160d73d0411422b59b5ee217843d7b693608"}, + {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:599b5c873c63a1f6ed7eead644a8a380cfbdf5db91dcb6f85707aaab213b1674"}, + {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:801fa7802e5cfabe3ab0c81a34c323a319b097dfb5004be950482d882f3d7225"}, + {file = "kiwisolver-1.4.7-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:0c6c43471bc764fad4bc99c5c2d6d16a676b1abf844ca7c8702bdae92df01ee0"}, + {file = "kiwisolver-1.4.7.tar.gz", hash = "sha256:9893ff81bd7107f7b685d3017cc6583daadb4fc26e4a888350df530e41980a60"}, +] + +[[package]] +name = "markupsafe" +version = "3.0.2" +description = "Safely add untrusted strings to HTML/XML markup." +optional = false +python-versions = ">=3.9" +files = [ + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a"}, + {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"}, +] + +[[package]] +name = "matplotlib" +version = "3.9.2" +description = "Python plotting package" +optional = false +python-versions = ">=3.9" +files = [ + {file = "matplotlib-3.9.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:9d78bbc0cbc891ad55b4f39a48c22182e9bdaea7fc0e5dbd364f49f729ca1bbb"}, + {file = "matplotlib-3.9.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c375cc72229614632c87355366bdf2570c2dac01ac66b8ad048d2dabadf2d0d4"}, + {file = "matplotlib-3.9.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d94ff717eb2bd0b58fe66380bd8b14ac35f48a98e7c6765117fe67fb7684e64"}, + {file = "matplotlib-3.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ab68d50c06938ef28681073327795c5db99bb4666214d2d5f880ed11aeaded66"}, + {file = "matplotlib-3.9.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:65aacf95b62272d568044531e41de26285d54aec8cb859031f511f84bd8b495a"}, + {file = "matplotlib-3.9.2-cp310-cp310-win_amd64.whl", hash = "sha256:3fd595f34aa8a55b7fc8bf9ebea8aa665a84c82d275190a61118d33fbc82ccae"}, + {file = "matplotlib-3.9.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d8dd059447824eec055e829258ab092b56bb0579fc3164fa09c64f3acd478772"}, + {file = "matplotlib-3.9.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c797dac8bb9c7a3fd3382b16fe8f215b4cf0f22adccea36f1545a6d7be310b41"}, + {file = "matplotlib-3.9.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d719465db13267bcef19ea8954a971db03b9f48b4647e3860e4bc8e6ed86610f"}, + {file = "matplotlib-3.9.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8912ef7c2362f7193b5819d17dae8629b34a95c58603d781329712ada83f9447"}, + {file = "matplotlib-3.9.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:7741f26a58a240f43bee74965c4882b6c93df3e7eb3de160126d8c8f53a6ae6e"}, + {file = "matplotlib-3.9.2-cp311-cp311-win_amd64.whl", hash = "sha256:ae82a14dab96fbfad7965403c643cafe6515e386de723e498cf3eeb1e0b70cc7"}, + {file = "matplotlib-3.9.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:ac43031375a65c3196bee99f6001e7fa5bdfb00ddf43379d3c0609bdca042df9"}, + {file = "matplotlib-3.9.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:be0fc24a5e4531ae4d8e858a1a548c1fe33b176bb13eff7f9d0d38ce5112a27d"}, + {file = "matplotlib-3.9.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf81de2926c2db243c9b2cbc3917619a0fc85796c6ba4e58f541df814bbf83c7"}, + {file = "matplotlib-3.9.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6ee45bc4245533111ced13f1f2cace1e7f89d1c793390392a80c139d6cf0e6c"}, + {file = "matplotlib-3.9.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:306c8dfc73239f0e72ac50e5a9cf19cc4e8e331dd0c54f5e69ca8758550f1e1e"}, + {file = "matplotlib-3.9.2-cp312-cp312-win_amd64.whl", hash = "sha256:5413401594cfaff0052f9d8b1aafc6d305b4bd7c4331dccd18f561ff7e1d3bd3"}, + {file = "matplotlib-3.9.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:18128cc08f0d3cfff10b76baa2f296fc28c4607368a8402de61bb3f2eb33c7d9"}, + {file = "matplotlib-3.9.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4876d7d40219e8ae8bb70f9263bcbe5714415acfdf781086601211335e24f8aa"}, + {file = "matplotlib-3.9.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d9f07a80deab4bb0b82858a9e9ad53d1382fd122be8cde11080f4e7dfedb38b"}, + {file = "matplotlib-3.9.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7c0410f181a531ec4e93bbc27692f2c71a15c2da16766f5ba9761e7ae518413"}, + {file = "matplotlib-3.9.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:909645cce2dc28b735674ce0931a4ac94e12f5b13f6bb0b5a5e65e7cea2c192b"}, + {file = "matplotlib-3.9.2-cp313-cp313-win_amd64.whl", hash = "sha256:f32c7410c7f246838a77d6d1eff0c0f87f3cb0e7c4247aebea71a6d5a68cab49"}, + {file = "matplotlib-3.9.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:37e51dd1c2db16ede9cfd7b5cabdfc818b2c6397c83f8b10e0e797501c963a03"}, + {file = "matplotlib-3.9.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:b82c5045cebcecd8496a4d694d43f9cc84aeeb49fe2133e036b207abe73f4d30"}, + {file = "matplotlib-3.9.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f053c40f94bc51bc03832a41b4f153d83f2062d88c72b5e79997072594e97e51"}, + {file = "matplotlib-3.9.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dbe196377a8248972f5cede786d4c5508ed5f5ca4a1e09b44bda889958b33f8c"}, + {file = "matplotlib-3.9.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:5816b1e1fe8c192cbc013f8f3e3368ac56fbecf02fb41b8f8559303f24c5015e"}, + {file = "matplotlib-3.9.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:cef2a73d06601437be399908cf13aee74e86932a5ccc6ccdf173408ebc5f6bb2"}, + {file = "matplotlib-3.9.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e0830e188029c14e891fadd99702fd90d317df294c3298aad682739c5533721a"}, + {file = "matplotlib-3.9.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:03ba9c1299c920964e8d3857ba27173b4dbb51ca4bab47ffc2c2ba0eb5e2cbc5"}, + {file = "matplotlib-3.9.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1cd93b91ab47a3616b4d3c42b52f8363b88ca021e340804c6ab2536344fad9ca"}, + {file = "matplotlib-3.9.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:6d1ce5ed2aefcdce11904fc5bbea7d9c21fff3d5f543841edf3dea84451a09ea"}, + {file = "matplotlib-3.9.2-cp39-cp39-win_amd64.whl", hash = "sha256:b2696efdc08648536efd4e1601b5fd491fd47f4db97a5fbfd175549a7365c1b2"}, + {file = "matplotlib-3.9.2-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:d52a3b618cb1cbb769ce2ee1dcdb333c3ab6e823944e9a2d36e37253815f9556"}, + {file = "matplotlib-3.9.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:039082812cacd6c6bec8e17a9c1e6baca230d4116d522e81e1f63a74d01d2e21"}, + {file = "matplotlib-3.9.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6758baae2ed64f2331d4fd19be38b7b4eae3ecec210049a26b6a4f3ae1c85dcc"}, + {file = "matplotlib-3.9.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:050598c2b29e0b9832cde72bcf97627bf00262adbc4a54e2b856426bb2ef0697"}, + {file = "matplotlib-3.9.2.tar.gz", hash = "sha256:96ab43906269ca64a6366934106fa01534454a69e471b7bf3d79083981aaab92"}, +] + +[package.dependencies] +contourpy = ">=1.0.1" +cycler = ">=0.10" +fonttools = ">=4.22.0" +kiwisolver = ">=1.3.1" +numpy = ">=1.23" +packaging = ">=20.0" +pillow = ">=8" +pyparsing = ">=2.3.1" +python-dateutil = ">=2.7" + +[package.extras] +dev = ["meson-python (>=0.13.1)", "numpy (>=1.25)", "pybind11 (>=2.6)", "setuptools (>=64)", "setuptools_scm (>=7)"] + +[[package]] +name = "matplotlib-inline" +version = "0.1.7" +description = "Inline Matplotlib backend for Jupyter" +optional = false +python-versions = ">=3.8" +files = [ + {file = "matplotlib_inline-0.1.7-py3-none-any.whl", hash = "sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca"}, + {file = "matplotlib_inline-0.1.7.tar.gz", hash = "sha256:8423b23ec666be3d16e16b60bdd8ac4e86e840ebd1dd11a30b9f117f2fa0ab90"}, +] + +[package.dependencies] +traitlets = "*" + +[[package]] +name = "mccabe" +version = "0.7.0" +description = "McCabe checker, plugin for flake8" +optional = false +python-versions = ">=3.6" +files = [ + {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, + {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, +] + +[[package]] +name = "minepy" +version = "1.2.6" +description = "minepy - Maximal Information-based Nonparametric Exploration" +optional = false +python-versions = "*" +files = [ + {file = "minepy-1.2.6.tar.gz", hash = "sha256:7455c5d2edee63b660593343d2876bf5e0a2e41cfd74a29d9e42fd00022f39f9"}, +] + +[package.dependencies] +numpy = ">=1.3.0" + +[[package]] +name = "mistune" +version = "3.0.2" +description = "A sane and fast Markdown parser with useful plugins and renderers" +optional = false +python-versions = ">=3.7" +files = [ + {file = "mistune-3.0.2-py3-none-any.whl", hash = "sha256:71481854c30fdbc938963d3605b72501f5c10a9320ecd412c121c163a1c7d205"}, + {file = "mistune-3.0.2.tar.gz", hash = "sha256:fc7f93ded930c92394ef2cb6f04a8aabab4117a91449e72dcc8dfa646a508be8"}, +] + +[[package]] +name = "msgpack" +version = "1.1.0" +description = "MessagePack serializer" +optional = false +python-versions = ">=3.8" +files = [ + {file = "msgpack-1.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7ad442d527a7e358a469faf43fda45aaf4ac3249c8310a82f0ccff9164e5dccd"}, + {file = "msgpack-1.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:74bed8f63f8f14d75eec75cf3d04ad581da6b914001b474a5d3cd3372c8cc27d"}, + {file = "msgpack-1.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:914571a2a5b4e7606997e169f64ce53a8b1e06f2cf2c3a7273aa106236d43dd5"}, + {file = "msgpack-1.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c921af52214dcbb75e6bdf6a661b23c3e6417f00c603dd2070bccb5c3ef499f5"}, + {file = "msgpack-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d8ce0b22b890be5d252de90d0e0d119f363012027cf256185fc3d474c44b1b9e"}, + {file = "msgpack-1.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:73322a6cc57fcee3c0c57c4463d828e9428275fb85a27aa2aa1a92fdc42afd7b"}, + {file = "msgpack-1.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e1f3c3d21f7cf67bcf2da8e494d30a75e4cf60041d98b3f79875afb5b96f3a3f"}, + {file = "msgpack-1.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:64fc9068d701233effd61b19efb1485587560b66fe57b3e50d29c5d78e7fef68"}, + {file = "msgpack-1.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:42f754515e0f683f9c79210a5d1cad631ec3d06cea5172214d2176a42e67e19b"}, + {file = "msgpack-1.1.0-cp310-cp310-win32.whl", hash = "sha256:3df7e6b05571b3814361e8464f9304c42d2196808e0119f55d0d3e62cd5ea044"}, + {file = "msgpack-1.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:685ec345eefc757a7c8af44a3032734a739f8c45d1b0ac45efc5d8977aa4720f"}, + {file = "msgpack-1.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3d364a55082fb2a7416f6c63ae383fbd903adb5a6cf78c5b96cc6316dc1cedc7"}, + {file = "msgpack-1.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:79ec007767b9b56860e0372085f8504db5d06bd6a327a335449508bbee9648fa"}, + {file = "msgpack-1.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6ad622bf7756d5a497d5b6836e7fc3752e2dd6f4c648e24b1803f6048596f701"}, + {file = "msgpack-1.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e59bca908d9ca0de3dc8684f21ebf9a690fe47b6be93236eb40b99af28b6ea6"}, + {file = "msgpack-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e1da8f11a3dd397f0a32c76165cf0c4eb95b31013a94f6ecc0b280c05c91b59"}, + {file = "msgpack-1.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:452aff037287acb1d70a804ffd022b21fa2bb7c46bee884dbc864cc9024128a0"}, + {file = "msgpack-1.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8da4bf6d54ceed70e8861f833f83ce0814a2b72102e890cbdfe4b34764cdd66e"}, + {file = "msgpack-1.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:41c991beebf175faf352fb940bf2af9ad1fb77fd25f38d9142053914947cdbf6"}, + {file = "msgpack-1.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a52a1f3a5af7ba1c9ace055b659189f6c669cf3657095b50f9602af3a3ba0fe5"}, + {file = "msgpack-1.1.0-cp311-cp311-win32.whl", hash = "sha256:58638690ebd0a06427c5fe1a227bb6b8b9fdc2bd07701bec13c2335c82131a88"}, + {file = "msgpack-1.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:fd2906780f25c8ed5d7b323379f6138524ba793428db5d0e9d226d3fa6aa1788"}, + {file = "msgpack-1.1.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:d46cf9e3705ea9485687aa4001a76e44748b609d260af21c4ceea7f2212a501d"}, + {file = "msgpack-1.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5dbad74103df937e1325cc4bfeaf57713be0b4f15e1c2da43ccdd836393e2ea2"}, + {file = "msgpack-1.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:58dfc47f8b102da61e8949708b3eafc3504509a5728f8b4ddef84bd9e16ad420"}, + {file = "msgpack-1.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4676e5be1b472909b2ee6356ff425ebedf5142427842aa06b4dfd5117d1ca8a2"}, + {file = "msgpack-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17fb65dd0bec285907f68b15734a993ad3fc94332b5bb21b0435846228de1f39"}, + {file = "msgpack-1.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a51abd48c6d8ac89e0cfd4fe177c61481aca2d5e7ba42044fd218cfd8ea9899f"}, + {file = "msgpack-1.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2137773500afa5494a61b1208619e3871f75f27b03bcfca7b3a7023284140247"}, + {file = "msgpack-1.1.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:398b713459fea610861c8a7b62a6fec1882759f308ae0795b5413ff6a160cf3c"}, + {file = "msgpack-1.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:06f5fd2f6bb2a7914922d935d3b8bb4a7fff3a9a91cfce6d06c13bc42bec975b"}, + {file = "msgpack-1.1.0-cp312-cp312-win32.whl", hash = "sha256:ad33e8400e4ec17ba782f7b9cf868977d867ed784a1f5f2ab46e7ba53b6e1e1b"}, + {file = "msgpack-1.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:115a7af8ee9e8cddc10f87636767857e7e3717b7a2e97379dc2054712693e90f"}, + {file = "msgpack-1.1.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:071603e2f0771c45ad9bc65719291c568d4edf120b44eb36324dcb02a13bfddf"}, + {file = "msgpack-1.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0f92a83b84e7c0749e3f12821949d79485971f087604178026085f60ce109330"}, + {file = "msgpack-1.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4a1964df7b81285d00a84da4e70cb1383f2e665e0f1f2a7027e683956d04b734"}, + {file = "msgpack-1.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:59caf6a4ed0d164055ccff8fe31eddc0ebc07cf7326a2aaa0dbf7a4001cd823e"}, + {file = "msgpack-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0907e1a7119b337971a689153665764adc34e89175f9a34793307d9def08e6ca"}, + {file = "msgpack-1.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:65553c9b6da8166e819a6aa90ad15288599b340f91d18f60b2061f402b9a4915"}, + {file = "msgpack-1.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7a946a8992941fea80ed4beae6bff74ffd7ee129a90b4dd5cf9c476a30e9708d"}, + {file = "msgpack-1.1.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:4b51405e36e075193bc051315dbf29168d6141ae2500ba8cd80a522964e31434"}, + {file = "msgpack-1.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b4c01941fd2ff87c2a934ee6055bda4ed353a7846b8d4f341c428109e9fcde8c"}, + {file = "msgpack-1.1.0-cp313-cp313-win32.whl", hash = "sha256:7c9a35ce2c2573bada929e0b7b3576de647b0defbd25f5139dcdaba0ae35a4cc"}, + {file = "msgpack-1.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:bce7d9e614a04d0883af0b3d4d501171fbfca038f12c77fa838d9f198147a23f"}, + {file = "msgpack-1.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c40ffa9a15d74e05ba1fe2681ea33b9caffd886675412612d93ab17b58ea2fec"}, + {file = "msgpack-1.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f1ba6136e650898082d9d5a5217d5906d1e138024f836ff48691784bbe1adf96"}, + {file = "msgpack-1.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e0856a2b7e8dcb874be44fea031d22e5b3a19121be92a1e098f46068a11b0870"}, + {file = "msgpack-1.1.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:471e27a5787a2e3f974ba023f9e265a8c7cfd373632247deb225617e3100a3c7"}, + {file = "msgpack-1.1.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:646afc8102935a388ffc3914b336d22d1c2d6209c773f3eb5dd4d6d3b6f8c1cb"}, + {file = "msgpack-1.1.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:13599f8829cfbe0158f6456374e9eea9f44eee08076291771d8ae93eda56607f"}, + {file = "msgpack-1.1.0-cp38-cp38-win32.whl", hash = "sha256:8a84efb768fb968381e525eeeb3d92857e4985aacc39f3c47ffd00eb4509315b"}, + {file = "msgpack-1.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:879a7b7b0ad82481c52d3c7eb99bf6f0645dbdec5134a4bddbd16f3506947feb"}, + {file = "msgpack-1.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:53258eeb7a80fc46f62fd59c876957a2d0e15e6449a9e71842b6d24419d88ca1"}, + {file = "msgpack-1.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7e7b853bbc44fb03fbdba34feb4bd414322180135e2cb5164f20ce1c9795ee48"}, + {file = "msgpack-1.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f3e9b4936df53b970513eac1758f3882c88658a220b58dcc1e39606dccaaf01c"}, + {file = "msgpack-1.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:46c34e99110762a76e3911fc923222472c9d681f1094096ac4102c18319e6468"}, + {file = "msgpack-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a706d1e74dd3dea05cb54580d9bd8b2880e9264856ce5068027eed09680aa74"}, + {file = "msgpack-1.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:534480ee5690ab3cbed89d4c8971a5c631b69a8c0883ecfea96c19118510c846"}, + {file = "msgpack-1.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:8cf9e8c3a2153934a23ac160cc4cba0ec035f6867c8013cc6077a79823370346"}, + {file = "msgpack-1.1.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3180065ec2abbe13a4ad37688b61b99d7f9e012a535b930e0e683ad6bc30155b"}, + {file = "msgpack-1.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:c5a91481a3cc573ac8c0d9aace09345d989dc4a0202b7fcb312c88c26d4e71a8"}, + {file = "msgpack-1.1.0-cp39-cp39-win32.whl", hash = "sha256:f80bc7d47f76089633763f952e67f8214cb7b3ee6bfa489b3cb6a84cfac114cd"}, + {file = "msgpack-1.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:4d1b7ff2d6146e16e8bd665ac726a89c74163ef8cd39fa8c1087d4e52d3a2325"}, + {file = "msgpack-1.1.0.tar.gz", hash = "sha256:dd432ccc2c72b914e4cb77afce64aab761c1137cc698be3984eee260bcb2896e"}, +] + +[[package]] +name = "nbclient" +version = "0.10.0" +description = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor." +optional = false +python-versions = ">=3.8.0" +files = [ + {file = "nbclient-0.10.0-py3-none-any.whl", hash = "sha256:f13e3529332a1f1f81d82a53210322476a168bb7090a0289c795fe9cc11c9d3f"}, + {file = "nbclient-0.10.0.tar.gz", hash = "sha256:4b3f1b7dba531e498449c4db4f53da339c91d449dc11e9af3a43b4eb5c5abb09"}, +] + +[package.dependencies] +jupyter-client = ">=6.1.12" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +nbformat = ">=5.1" +traitlets = ">=5.4" + +[package.extras] +dev = ["pre-commit"] +docs = ["autodoc-traits", "mock", "moto", "myst-parser", "nbclient[test]", "sphinx (>=1.7)", "sphinx-book-theme", "sphinxcontrib-spelling"] +test = ["flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "nbconvert (>=7.0.0)", "pytest (>=7.0,<8)", "pytest-asyncio", "pytest-cov (>=4.0)", "testpath", "xmltodict"] + +[[package]] +name = "nbconvert" +version = "7.16.4" +description = "Converting Jupyter Notebooks (.ipynb files) to other formats. Output formats include asciidoc, html, latex, markdown, pdf, py, rst, script. nbconvert can be used both as a Python library (`import nbconvert`) or as a command line tool (invoked as `jupyter nbconvert ...`)." +optional = false +python-versions = ">=3.8" +files = [ + {file = "nbconvert-7.16.4-py3-none-any.whl", hash = "sha256:05873c620fe520b6322bf8a5ad562692343fe3452abda5765c7a34b7d1aa3eb3"}, + {file = "nbconvert-7.16.4.tar.gz", hash = "sha256:86ca91ba266b0a448dc96fa6c5b9d98affabde2867b363258703536807f9f7f4"}, +] + +[package.dependencies] +beautifulsoup4 = "*" +bleach = "!=5.0.0" +defusedxml = "*" +jinja2 = ">=3.0" +jupyter-core = ">=4.7" +jupyterlab-pygments = "*" +markupsafe = ">=2.0" +mistune = ">=2.0.3,<4" +nbclient = ">=0.5.0" +nbformat = ">=5.7" +packaging = "*" +pandocfilters = ">=1.4.1" +pygments = ">=2.4.1" +tinycss2 = "*" +traitlets = ">=5.1" + +[package.extras] +all = ["flaky", "ipykernel", "ipython", "ipywidgets (>=7.5)", "myst-parser", "nbsphinx (>=0.2.12)", "playwright", "pydata-sphinx-theme", "pyqtwebengine (>=5.15)", "pytest (>=7)", "sphinx (==5.0.2)", "sphinxcontrib-spelling", "tornado (>=6.1)"] +docs = ["ipykernel", "ipython", "myst-parser", "nbsphinx (>=0.2.12)", "pydata-sphinx-theme", "sphinx (==5.0.2)", "sphinxcontrib-spelling"] +qtpdf = ["pyqtwebengine (>=5.15)"] +qtpng = ["pyqtwebengine (>=5.15)"] +serve = ["tornado (>=6.1)"] +test = ["flaky", "ipykernel", "ipywidgets (>=7.5)", "pytest (>=7)"] +webpdf = ["playwright"] + +[[package]] +name = "nbformat" +version = "5.10.4" +description = "The Jupyter Notebook format" +optional = false +python-versions = ">=3.8" +files = [ + {file = "nbformat-5.10.4-py3-none-any.whl", hash = "sha256:3b48d6c8fbca4b299bf3982ea7db1af21580e4fec269ad087b9e81588891200b"}, + {file = "nbformat-5.10.4.tar.gz", hash = "sha256:322168b14f937a5d11362988ecac2a4952d3d8e3a2cbeb2319584631226d5b3a"}, +] + +[package.dependencies] +fastjsonschema = ">=2.15" +jsonschema = ">=2.6" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +traitlets = ">=5.1" + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] +test = ["pep440", "pre-commit", "pytest", "testpath"] + +[[package]] +name = "nest-asyncio" +version = "1.6.0" +description = "Patch asyncio to allow nested event loops" +optional = false +python-versions = ">=3.5" +files = [ + {file = "nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c"}, + {file = "nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe"}, +] + +[[package]] +name = "notebook" +version = "7.2.2" +description = "Jupyter Notebook - A web-based notebook environment for interactive computing" +optional = false +python-versions = ">=3.8" +files = [ + {file = "notebook-7.2.2-py3-none-any.whl", hash = "sha256:c89264081f671bc02eec0ed470a627ed791b9156cad9285226b31611d3e9fe1c"}, + {file = "notebook-7.2.2.tar.gz", hash = "sha256:2ef07d4220421623ad3fe88118d687bc0450055570cdd160814a59cf3a1c516e"}, +] + +[package.dependencies] +jupyter-server = ">=2.4.0,<3" +jupyterlab = ">=4.2.0,<4.3" +jupyterlab-server = ">=2.27.1,<3" +notebook-shim = ">=0.2,<0.3" +tornado = ">=6.2.0" + +[package.extras] +dev = ["hatch", "pre-commit"] +docs = ["myst-parser", "nbsphinx", "pydata-sphinx-theme", "sphinx (>=1.3.6)", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] +test = ["importlib-resources (>=5.0)", "ipykernel", "jupyter-server[test] (>=2.4.0,<3)", "jupyterlab-server[test] (>=2.27.1,<3)", "nbval", "pytest (>=7.0)", "pytest-console-scripts", "pytest-timeout", "pytest-tornasync", "requests"] + +[[package]] +name = "notebook-shim" +version = "0.2.4" +description = "A shim layer for notebook traits and config" +optional = false +python-versions = ">=3.7" +files = [ + {file = "notebook_shim-0.2.4-py3-none-any.whl", hash = "sha256:411a5be4e9dc882a074ccbcae671eda64cceb068767e9a3419096986560e1cef"}, + {file = "notebook_shim-0.2.4.tar.gz", hash = "sha256:b4b2cfa1b65d98307ca24361f5b30fe785b53c3fd07b7a47e89acb5e6ac638cb"}, +] + +[package.dependencies] +jupyter-server = ">=1.8,<3" + +[package.extras] +test = ["pytest", "pytest-console-scripts", "pytest-jupyter", "pytest-tornasync"] + +[[package]] +name = "numpy" +version = "1.26.4" +description = "Fundamental package for array computing in Python" +optional = false +python-versions = ">=3.9" +files = [ + {file = "numpy-1.26.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0"}, + {file = "numpy-1.26.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a"}, + {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4"}, + {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f"}, + {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a"}, + {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2"}, + {file = "numpy-1.26.4-cp310-cp310-win32.whl", hash = "sha256:bfe25acf8b437eb2a8b2d49d443800a5f18508cd811fea3181723922a8a82b07"}, + {file = "numpy-1.26.4-cp310-cp310-win_amd64.whl", hash = "sha256:b97fe8060236edf3662adfc2c633f56a08ae30560c56310562cb4f95500022d5"}, + {file = "numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71"}, + {file = "numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef"}, + {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e"}, + {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5"}, + {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a"}, + {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a"}, + {file = "numpy-1.26.4-cp311-cp311-win32.whl", hash = "sha256:1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20"}, + {file = "numpy-1.26.4-cp311-cp311-win_amd64.whl", hash = "sha256:cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2"}, + {file = "numpy-1.26.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218"}, + {file = "numpy-1.26.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b"}, + {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b"}, + {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed"}, + {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a"}, + {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0"}, + {file = "numpy-1.26.4-cp312-cp312-win32.whl", hash = "sha256:50193e430acfc1346175fcbdaa28ffec49947a06918b7b92130744e81e640110"}, + {file = "numpy-1.26.4-cp312-cp312-win_amd64.whl", hash = "sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818"}, + {file = "numpy-1.26.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7349ab0fa0c429c82442a27a9673fc802ffdb7c7775fad780226cb234965e53c"}, + {file = "numpy-1.26.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:52b8b60467cd7dd1e9ed082188b4e6bb35aa5cdd01777621a1658910745b90be"}, + {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5241e0a80d808d70546c697135da2c613f30e28251ff8307eb72ba696945764"}, + {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3"}, + {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:679b0076f67ecc0138fd2ede3a8fd196dddc2ad3254069bcb9faf9a79b1cebcd"}, + {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:47711010ad8555514b434df65f7d7b076bb8261df1ca9bb78f53d3b2db02e95c"}, + {file = "numpy-1.26.4-cp39-cp39-win32.whl", hash = "sha256:a354325ee03388678242a4d7ebcd08b5c727033fcff3b2f536aea978e15ee9e6"}, + {file = "numpy-1.26.4-cp39-cp39-win_amd64.whl", hash = "sha256:3373d5d70a5fe74a2c1bb6d2cfd9609ecf686d47a2d7b1d37a8f3b6bf6003aea"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:afedb719a9dcfc7eaf2287b839d8198e06dcd4cb5d276a3df279231138e83d30"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95a7476c59002f2f6c590b9b7b998306fba6a5aa646b1e22ddfeaf8f78c3a29c"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7e50d0a0cc3189f9cb0aeb3a6a6af18c16f59f004b866cd2be1c14b36134a4a0"}, + {file = "numpy-1.26.4.tar.gz", hash = "sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010"}, +] + +[[package]] +name = "overrides" +version = "7.7.0" +description = "A decorator to automatically detect mismatch when overriding a method." +optional = false +python-versions = ">=3.6" +files = [ + {file = "overrides-7.7.0-py3-none-any.whl", hash = "sha256:c7ed9d062f78b8e4c1a7b70bd8796b35ead4d9f510227ef9c5dc7626c60d7e49"}, + {file = "overrides-7.7.0.tar.gz", hash = "sha256:55158fa3d93b98cc75299b1e67078ad9003ca27945c76162c1c0766d6f91820a"}, +] + +[[package]] +name = "packaging" +version = "24.2" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, + {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, +] + +[[package]] +name = "pandas" +version = "2.2.3" +description = "Powerful data structures for data analysis, time series, and statistics" +optional = false +python-versions = ">=3.9" +files = [ + {file = "pandas-2.2.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1948ddde24197a0f7add2bdc4ca83bf2b1ef84a1bc8ccffd95eda17fd836ecb5"}, + {file = "pandas-2.2.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:381175499d3802cde0eabbaf6324cce0c4f5d52ca6f8c377c29ad442f50f6348"}, + {file = "pandas-2.2.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d9c45366def9a3dd85a6454c0e7908f2b3b8e9c138f5dc38fed7ce720d8453ed"}, + {file = "pandas-2.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86976a1c5b25ae3f8ccae3a5306e443569ee3c3faf444dfd0f41cda24667ad57"}, + {file = "pandas-2.2.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b8661b0238a69d7aafe156b7fa86c44b881387509653fdf857bebc5e4008ad42"}, + {file = "pandas-2.2.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:37e0aced3e8f539eccf2e099f65cdb9c8aa85109b0be6e93e2baff94264bdc6f"}, + {file = "pandas-2.2.3-cp310-cp310-win_amd64.whl", hash = "sha256:56534ce0746a58afaf7942ba4863e0ef81c9c50d3f0ae93e9497d6a41a057645"}, + {file = "pandas-2.2.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:66108071e1b935240e74525006034333f98bcdb87ea116de573a6a0dccb6c039"}, + {file = "pandas-2.2.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7c2875855b0ff77b2a64a0365e24455d9990730d6431b9e0ee18ad8acee13dbd"}, + {file = "pandas-2.2.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cd8d0c3be0515c12fed0bdbae072551c8b54b7192c7b1fda0ba56059a0179698"}, + {file = "pandas-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c124333816c3a9b03fbeef3a9f230ba9a737e9e5bb4060aa2107a86cc0a497fc"}, + {file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:63cc132e40a2e084cf01adf0775b15ac515ba905d7dcca47e9a251819c575ef3"}, + {file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:29401dbfa9ad77319367d36940cd8a0b3a11aba16063e39632d98b0e931ddf32"}, + {file = "pandas-2.2.3-cp311-cp311-win_amd64.whl", hash = "sha256:3fc6873a41186404dad67245896a6e440baacc92f5b716ccd1bc9ed2995ab2c5"}, + {file = "pandas-2.2.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b1d432e8d08679a40e2a6d8b2f9770a5c21793a6f9f47fdd52c5ce1948a5a8a9"}, + {file = "pandas-2.2.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a5a1595fe639f5988ba6a8e5bc9649af3baf26df3998a0abe56c02609392e0a4"}, + {file = "pandas-2.2.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5de54125a92bb4d1c051c0659e6fcb75256bf799a732a87184e5ea503965bce3"}, + {file = "pandas-2.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fffb8ae78d8af97f849404f21411c95062db1496aeb3e56f146f0355c9989319"}, + {file = "pandas-2.2.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6dfcb5ee8d4d50c06a51c2fffa6cff6272098ad6540aed1a76d15fb9318194d8"}, + {file = "pandas-2.2.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:062309c1b9ea12a50e8ce661145c6aab431b1e99530d3cd60640e255778bd43a"}, + {file = "pandas-2.2.3-cp312-cp312-win_amd64.whl", hash = "sha256:59ef3764d0fe818125a5097d2ae867ca3fa64df032331b7e0917cf5d7bf66b13"}, + {file = "pandas-2.2.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f00d1345d84d8c86a63e476bb4955e46458b304b9575dcf71102b5c705320015"}, + {file = "pandas-2.2.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3508d914817e153ad359d7e069d752cdd736a247c322d932eb89e6bc84217f28"}, + {file = "pandas-2.2.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:22a9d949bfc9a502d320aa04e5d02feab689d61da4e7764b62c30b991c42c5f0"}, + {file = "pandas-2.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3a255b2c19987fbbe62a9dfd6cff7ff2aa9ccab3fc75218fd4b7530f01efa24"}, + {file = "pandas-2.2.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:800250ecdadb6d9c78eae4990da62743b857b470883fa27f652db8bdde7f6659"}, + {file = "pandas-2.2.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6374c452ff3ec675a8f46fd9ab25c4ad0ba590b71cf0656f8b6daa5202bca3fb"}, + {file = "pandas-2.2.3-cp313-cp313-win_amd64.whl", hash = "sha256:61c5ad4043f791b61dd4752191d9f07f0ae412515d59ba8f005832a532f8736d"}, + {file = "pandas-2.2.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3b71f27954685ee685317063bf13c7709a7ba74fc996b84fc6821c59b0f06468"}, + {file = "pandas-2.2.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:38cf8125c40dae9d5acc10fa66af8ea6fdf760b2714ee482ca691fc66e6fcb18"}, + {file = "pandas-2.2.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ba96630bc17c875161df3818780af30e43be9b166ce51c9a18c1feae342906c2"}, + {file = "pandas-2.2.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1db71525a1538b30142094edb9adc10be3f3e176748cd7acc2240c2f2e5aa3a4"}, + {file = "pandas-2.2.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:15c0e1e02e93116177d29ff83e8b1619c93ddc9c49083f237d4312337a61165d"}, + {file = "pandas-2.2.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ad5b65698ab28ed8d7f18790a0dc58005c7629f227be9ecc1072aa74c0c1d43a"}, + {file = "pandas-2.2.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc6b93f9b966093cb0fd62ff1a7e4c09e6d546ad7c1de191767baffc57628f39"}, + {file = "pandas-2.2.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5dbca4c1acd72e8eeef4753eeca07de9b1db4f398669d5994086f788a5d7cc30"}, + {file = "pandas-2.2.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8cd6d7cc958a3910f934ea8dbdf17b2364827bb4dafc38ce6eef6bb3d65ff09c"}, + {file = "pandas-2.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99df71520d25fade9db7c1076ac94eb994f4d2673ef2aa2e86ee039b6746d20c"}, + {file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:31d0ced62d4ea3e231a9f228366919a5ea0b07440d9d4dac345376fd8e1477ea"}, + {file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7eee9e7cea6adf3e3d24e304ac6b8300646e2a5d1cd3a3c2abed9101b0846761"}, + {file = "pandas-2.2.3-cp39-cp39-win_amd64.whl", hash = "sha256:4850ba03528b6dd51d6c5d273c46f183f39a9baf3f0143e566b89450965b105e"}, + {file = "pandas-2.2.3.tar.gz", hash = "sha256:4f18ba62b61d7e192368b84517265a99b4d7ee8912f8708660fb4a366cc82667"}, +] + +[package.dependencies] +numpy = [ + {version = ">=1.22.4", markers = "python_version < \"3.11\""}, + {version = ">=1.23.2", markers = "python_version == \"3.11\""}, +] +python-dateutil = ">=2.8.2" +pytz = ">=2020.1" +tzdata = ">=2022.7" + +[package.extras] +all = ["PyQt5 (>=5.15.9)", "SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)", "beautifulsoup4 (>=4.11.2)", "bottleneck (>=1.3.6)", "dataframe-api-compat (>=0.1.7)", "fastparquet (>=2022.12.0)", "fsspec (>=2022.11.0)", "gcsfs (>=2022.11.0)", "html5lib (>=1.1)", "hypothesis (>=6.46.1)", "jinja2 (>=3.1.2)", "lxml (>=4.9.2)", "matplotlib (>=3.6.3)", "numba (>=0.56.4)", "numexpr (>=2.8.4)", "odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "pandas-gbq (>=0.19.0)", "psycopg2 (>=2.9.6)", "pyarrow (>=10.0.1)", "pymysql (>=1.0.2)", "pyreadstat (>=1.2.0)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "qtpy (>=2.3.0)", "s3fs (>=2022.11.0)", "scipy (>=1.10.0)", "tables (>=3.8.0)", "tabulate (>=0.9.0)", "xarray (>=2022.12.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)", "zstandard (>=0.19.0)"] +aws = ["s3fs (>=2022.11.0)"] +clipboard = ["PyQt5 (>=5.15.9)", "qtpy (>=2.3.0)"] +compression = ["zstandard (>=0.19.0)"] +computation = ["scipy (>=1.10.0)", "xarray (>=2022.12.0)"] +consortium-standard = ["dataframe-api-compat (>=0.1.7)"] +excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)"] +feather = ["pyarrow (>=10.0.1)"] +fss = ["fsspec (>=2022.11.0)"] +gcp = ["gcsfs (>=2022.11.0)", "pandas-gbq (>=0.19.0)"] +hdf5 = ["tables (>=3.8.0)"] +html = ["beautifulsoup4 (>=4.11.2)", "html5lib (>=1.1)", "lxml (>=4.9.2)"] +mysql = ["SQLAlchemy (>=2.0.0)", "pymysql (>=1.0.2)"] +output-formatting = ["jinja2 (>=3.1.2)", "tabulate (>=0.9.0)"] +parquet = ["pyarrow (>=10.0.1)"] +performance = ["bottleneck (>=1.3.6)", "numba (>=0.56.4)", "numexpr (>=2.8.4)"] +plot = ["matplotlib (>=3.6.3)"] +postgresql = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "psycopg2 (>=2.9.6)"] +pyarrow = ["pyarrow (>=10.0.1)"] +spss = ["pyreadstat (>=1.2.0)"] +sql-other = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)"] +test = ["hypothesis (>=6.46.1)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)"] +xml = ["lxml (>=4.9.2)"] + +[[package]] +name = "pandocfilters" +version = "1.5.1" +description = "Utilities for writing pandoc filters in python" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "pandocfilters-1.5.1-py2.py3-none-any.whl", hash = "sha256:93be382804a9cdb0a7267585f157e5d1731bbe5545a85b268d6f5fe6232de2bc"}, + {file = "pandocfilters-1.5.1.tar.gz", hash = "sha256:002b4a555ee4ebc03f8b66307e287fa492e4a77b4ea14d3f934328297bb4939e"}, +] + +[[package]] +name = "parso" +version = "0.8.4" +description = "A Python Parser" +optional = false +python-versions = ">=3.6" +files = [ + {file = "parso-0.8.4-py2.py3-none-any.whl", hash = "sha256:a418670a20291dacd2dddc80c377c5c3791378ee1e8d12bffc35420643d43f18"}, + {file = "parso-0.8.4.tar.gz", hash = "sha256:eb3a7b58240fb99099a345571deecc0f9540ea5f4dd2fe14c2a99d6b281ab92d"}, +] + +[package.extras] +qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] +testing = ["docopt", "pytest"] + +[[package]] +name = "pathlib2" +version = "2.3.7.post1" +description = "Object-oriented filesystem paths" +optional = false +python-versions = "*" +files = [ + {file = "pathlib2-2.3.7.post1-py2.py3-none-any.whl", hash = "sha256:5266a0fd000452f1b3467d782f079a4343c63aaa119221fbdc4e39577489ca5b"}, + {file = "pathlib2-2.3.7.post1.tar.gz", hash = "sha256:9fe0edad898b83c0c3e199c842b27ed216645d2e177757b2dd67384d4113c641"}, +] + +[package.dependencies] +six = "*" + +[[package]] +name = "pexpect" +version = "4.9.0" +description = "Pexpect allows easy control of interactive console applications." +optional = false +python-versions = "*" +files = [ + {file = "pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523"}, + {file = "pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f"}, +] + +[package.dependencies] +ptyprocess = ">=0.5" + +[[package]] +name = "pillow" +version = "11.0.0" +description = "Python Imaging Library (Fork)" +optional = false +python-versions = ">=3.9" +files = [ + {file = "pillow-11.0.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:6619654954dc4936fcff82db8eb6401d3159ec6be81e33c6000dfd76ae189947"}, + {file = "pillow-11.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b3c5ac4bed7519088103d9450a1107f76308ecf91d6dabc8a33a2fcfb18d0fba"}, + {file = "pillow-11.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a65149d8ada1055029fcb665452b2814fe7d7082fcb0c5bed6db851cb69b2086"}, + {file = "pillow-11.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88a58d8ac0cc0e7f3a014509f0455248a76629ca9b604eca7dc5927cc593c5e9"}, + {file = "pillow-11.0.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:c26845094b1af3c91852745ae78e3ea47abf3dbcd1cf962f16b9a5fbe3ee8488"}, + {file = "pillow-11.0.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:1a61b54f87ab5786b8479f81c4b11f4d61702830354520837f8cc791ebba0f5f"}, + {file = "pillow-11.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:674629ff60030d144b7bca2b8330225a9b11c482ed408813924619c6f302fdbb"}, + {file = "pillow-11.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:598b4e238f13276e0008299bd2482003f48158e2b11826862b1eb2ad7c768b97"}, + {file = "pillow-11.0.0-cp310-cp310-win32.whl", hash = "sha256:9a0f748eaa434a41fccf8e1ee7a3eed68af1b690e75328fd7a60af123c193b50"}, + {file = "pillow-11.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:a5629742881bcbc1f42e840af185fd4d83a5edeb96475a575f4da50d6ede337c"}, + {file = "pillow-11.0.0-cp310-cp310-win_arm64.whl", hash = "sha256:ee217c198f2e41f184f3869f3e485557296d505b5195c513b2bfe0062dc537f1"}, + {file = "pillow-11.0.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:1c1d72714f429a521d8d2d018badc42414c3077eb187a59579f28e4270b4b0fc"}, + {file = "pillow-11.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:499c3a1b0d6fc8213519e193796eb1a86a1be4b1877d678b30f83fd979811d1a"}, + {file = "pillow-11.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c8b2351c85d855293a299038e1f89db92a2f35e8d2f783489c6f0b2b5f3fe8a3"}, + {file = "pillow-11.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f4dba50cfa56f910241eb7f883c20f1e7b1d8f7d91c750cd0b318bad443f4d5"}, + {file = "pillow-11.0.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:5ddbfd761ee00c12ee1be86c9c0683ecf5bb14c9772ddbd782085779a63dd55b"}, + {file = "pillow-11.0.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:45c566eb10b8967d71bf1ab8e4a525e5a93519e29ea071459ce517f6b903d7fa"}, + {file = "pillow-11.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b4fd7bd29610a83a8c9b564d457cf5bd92b4e11e79a4ee4716a63c959699b306"}, + {file = "pillow-11.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:cb929ca942d0ec4fac404cbf520ee6cac37bf35be479b970c4ffadf2b6a1cad9"}, + {file = "pillow-11.0.0-cp311-cp311-win32.whl", hash = "sha256:006bcdd307cc47ba43e924099a038cbf9591062e6c50e570819743f5607404f5"}, + {file = "pillow-11.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:52a2d8323a465f84faaba5236567d212c3668f2ab53e1c74c15583cf507a0291"}, + {file = "pillow-11.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:16095692a253047fe3ec028e951fa4221a1f3ed3d80c397e83541a3037ff67c9"}, + {file = "pillow-11.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d2c0a187a92a1cb5ef2c8ed5412dd8d4334272617f532d4ad4de31e0495bd923"}, + {file = "pillow-11.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:084a07ef0821cfe4858fe86652fffac8e187b6ae677e9906e192aafcc1b69903"}, + {file = "pillow-11.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8069c5179902dcdce0be9bfc8235347fdbac249d23bd90514b7a47a72d9fecf4"}, + {file = "pillow-11.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f02541ef64077f22bf4924f225c0fd1248c168f86e4b7abdedd87d6ebaceab0f"}, + {file = "pillow-11.0.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:fcb4621042ac4b7865c179bb972ed0da0218a076dc1820ffc48b1d74c1e37fe9"}, + {file = "pillow-11.0.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:00177a63030d612148e659b55ba99527803288cea7c75fb05766ab7981a8c1b7"}, + {file = "pillow-11.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8853a3bf12afddfdf15f57c4b02d7ded92c7a75a5d7331d19f4f9572a89c17e6"}, + {file = "pillow-11.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3107c66e43bda25359d5ef446f59c497de2b5ed4c7fdba0894f8d6cf3822dafc"}, + {file = "pillow-11.0.0-cp312-cp312-win32.whl", hash = "sha256:86510e3f5eca0ab87429dd77fafc04693195eec7fd6a137c389c3eeb4cfb77c6"}, + {file = "pillow-11.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:8ec4a89295cd6cd4d1058a5e6aec6bf51e0eaaf9714774e1bfac7cfc9051db47"}, + {file = "pillow-11.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:27a7860107500d813fcd203b4ea19b04babe79448268403172782754870dac25"}, + {file = "pillow-11.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:bcd1fb5bb7b07f64c15618c89efcc2cfa3e95f0e3bcdbaf4642509de1942a699"}, + {file = "pillow-11.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0e038b0745997c7dcaae350d35859c9715c71e92ffb7e0f4a8e8a16732150f38"}, + {file = "pillow-11.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ae08bd8ffc41aebf578c2af2f9d8749d91f448b3bfd41d7d9ff573d74f2a6b2"}, + {file = "pillow-11.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d69bfd8ec3219ae71bcde1f942b728903cad25fafe3100ba2258b973bd2bc1b2"}, + {file = "pillow-11.0.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:61b887f9ddba63ddf62fd02a3ba7add935d053b6dd7d58998c630e6dbade8527"}, + {file = "pillow-11.0.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:c6a660307ca9d4867caa8d9ca2c2658ab685de83792d1876274991adec7b93fa"}, + {file = "pillow-11.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:73e3a0200cdda995c7e43dd47436c1548f87a30bb27fb871f352a22ab8dcf45f"}, + {file = "pillow-11.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fba162b8872d30fea8c52b258a542c5dfd7b235fb5cb352240c8d63b414013eb"}, + {file = "pillow-11.0.0-cp313-cp313-win32.whl", hash = "sha256:f1b82c27e89fffc6da125d5eb0ca6e68017faf5efc078128cfaa42cf5cb38798"}, + {file = "pillow-11.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:8ba470552b48e5835f1d23ecb936bb7f71d206f9dfeee64245f30c3270b994de"}, + {file = "pillow-11.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:846e193e103b41e984ac921b335df59195356ce3f71dcfd155aa79c603873b84"}, + {file = "pillow-11.0.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:4ad70c4214f67d7466bea6a08061eba35c01b1b89eaa098040a35272a8efb22b"}, + {file = "pillow-11.0.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:6ec0d5af64f2e3d64a165f490d96368bb5dea8b8f9ad04487f9ab60dc4bb6003"}, + {file = "pillow-11.0.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c809a70e43c7977c4a42aefd62f0131823ebf7dd73556fa5d5950f5b354087e2"}, + {file = "pillow-11.0.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:4b60c9520f7207aaf2e1d94de026682fc227806c6e1f55bba7606d1c94dd623a"}, + {file = "pillow-11.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:1e2688958a840c822279fda0086fec1fdab2f95bf2b717b66871c4ad9859d7e8"}, + {file = "pillow-11.0.0-cp313-cp313t-win32.whl", hash = "sha256:607bbe123c74e272e381a8d1957083a9463401f7bd01287f50521ecb05a313f8"}, + {file = "pillow-11.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5c39ed17edea3bc69c743a8dd3e9853b7509625c2462532e62baa0732163a904"}, + {file = "pillow-11.0.0-cp313-cp313t-win_arm64.whl", hash = "sha256:75acbbeb05b86bc53cbe7b7e6fe00fbcf82ad7c684b3ad82e3d711da9ba287d3"}, + {file = "pillow-11.0.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:2e46773dc9f35a1dd28bd6981332fd7f27bec001a918a72a79b4133cf5291dba"}, + {file = "pillow-11.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2679d2258b7f1192b378e2893a8a0a0ca472234d4c2c0e6bdd3380e8dfa21b6a"}, + {file = "pillow-11.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eda2616eb2313cbb3eebbe51f19362eb434b18e3bb599466a1ffa76a033fb916"}, + {file = "pillow-11.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20ec184af98a121fb2da42642dea8a29ec80fc3efbaefb86d8fdd2606619045d"}, + {file = "pillow-11.0.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:8594f42df584e5b4bb9281799698403f7af489fba84c34d53d1c4bfb71b7c4e7"}, + {file = "pillow-11.0.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:c12b5ae868897c7338519c03049a806af85b9b8c237b7d675b8c5e089e4a618e"}, + {file = "pillow-11.0.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:70fbbdacd1d271b77b7721fe3cdd2d537bbbd75d29e6300c672ec6bb38d9672f"}, + {file = "pillow-11.0.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5178952973e588b3f1360868847334e9e3bf49d19e169bbbdfaf8398002419ae"}, + {file = "pillow-11.0.0-cp39-cp39-win32.whl", hash = "sha256:8c676b587da5673d3c75bd67dd2a8cdfeb282ca38a30f37950511766b26858c4"}, + {file = "pillow-11.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:94f3e1780abb45062287b4614a5bc0874519c86a777d4a7ad34978e86428b8dd"}, + {file = "pillow-11.0.0-cp39-cp39-win_arm64.whl", hash = "sha256:290f2cc809f9da7d6d622550bbf4c1e57518212da51b6a30fe8e0a270a5b78bd"}, + {file = "pillow-11.0.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:1187739620f2b365de756ce086fdb3604573337cc28a0d3ac4a01ab6b2d2a6d2"}, + {file = "pillow-11.0.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:fbbcb7b57dc9c794843e3d1258c0fbf0f48656d46ffe9e09b63bbd6e8cd5d0a2"}, + {file = "pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d203af30149ae339ad1b4f710d9844ed8796e97fda23ffbc4cc472968a47d0b"}, + {file = "pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21a0d3b115009ebb8ac3d2ebec5c2982cc693da935f4ab7bb5c8ebe2f47d36f2"}, + {file = "pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:73853108f56df97baf2bb8b522f3578221e56f646ba345a372c78326710d3830"}, + {file = "pillow-11.0.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:e58876c91f97b0952eb766123bfef372792ab3f4e3e1f1a2267834c2ab131734"}, + {file = "pillow-11.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:224aaa38177597bb179f3ec87eeefcce8e4f85e608025e9cfac60de237ba6316"}, + {file = "pillow-11.0.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:5bd2d3bdb846d757055910f0a59792d33b555800813c3b39ada1829c372ccb06"}, + {file = "pillow-11.0.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:375b8dd15a1f5d2feafff536d47e22f69625c1aa92f12b339ec0b2ca40263273"}, + {file = "pillow-11.0.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:daffdf51ee5db69a82dd127eabecce20729e21f7a3680cf7cbb23f0829189790"}, + {file = "pillow-11.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7326a1787e3c7b0429659e0a944725e1b03eeaa10edd945a86dead1913383944"}, + {file = "pillow-11.0.0.tar.gz", hash = "sha256:72bacbaf24ac003fea9bff9837d1eedb6088758d41e100c1552930151f677739"}, +] + +[package.extras] +docs = ["furo", "olefile", "sphinx (>=8.1)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinxext-opengraph"] +fpx = ["olefile"] +mic = ["olefile"] +tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"] +typing = ["typing-extensions"] +xmp = ["defusedxml"] + +[[package]] +name = "platformdirs" +version = "4.3.6" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." +optional = false +python-versions = ">=3.8" +files = [ + {file = "platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"}, + {file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"}, +] + +[package.extras] +docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.2)", "pytest-cov (>=5)", "pytest-mock (>=3.14)"] +type = ["mypy (>=1.11.2)"] + +[[package]] +name = "pluggy" +version = "1.5.0" +description = "plugin and hook calling mechanisms for python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, + {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, +] + +[package.extras] +dev = ["pre-commit", "tox"] +testing = ["pytest", "pytest-benchmark"] + +[[package]] +name = "prometheus-client" +version = "0.21.0" +description = "Python client for the Prometheus monitoring system." +optional = false +python-versions = ">=3.8" +files = [ + {file = "prometheus_client-0.21.0-py3-none-any.whl", hash = "sha256:4fa6b4dd0ac16d58bb587c04b1caae65b8c5043e85f778f42f5f632f6af2e166"}, + {file = "prometheus_client-0.21.0.tar.gz", hash = "sha256:96c83c606b71ff2b0a433c98889d275f51ffec6c5e267de37c7a2b5c9aa9233e"}, +] + +[package.extras] +twisted = ["twisted"] + +[[package]] +name = "prompt-toolkit" +version = "3.0.48" +description = "Library for building powerful interactive command lines in Python" +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "prompt_toolkit-3.0.48-py3-none-any.whl", hash = "sha256:f49a827f90062e411f1ce1f854f2aedb3c23353244f8108b89283587397ac10e"}, + {file = "prompt_toolkit-3.0.48.tar.gz", hash = "sha256:d6623ab0477a80df74e646bdbc93621143f5caf104206aa29294d53de1a03d90"}, +] + +[package.dependencies] +wcwidth = "*" + +[[package]] +name = "psutil" +version = "6.1.0" +description = "Cross-platform lib for process and system monitoring in Python." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +files = [ + {file = "psutil-6.1.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:ff34df86226c0227c52f38b919213157588a678d049688eded74c76c8ba4a5d0"}, + {file = "psutil-6.1.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:c0e0c00aa18ca2d3b2b991643b799a15fc8f0563d2ebb6040f64ce8dc027b942"}, + {file = "psutil-6.1.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:000d1d1ebd634b4efb383f4034437384e44a6d455260aaee2eca1e9c1b55f047"}, + {file = "psutil-6.1.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:5cd2bcdc75b452ba2e10f0e8ecc0b57b827dd5d7aaffbc6821b2a9a242823a76"}, + {file = "psutil-6.1.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:045f00a43c737f960d273a83973b2511430d61f283a44c96bf13a6e829ba8fdc"}, + {file = "psutil-6.1.0-cp27-none-win32.whl", hash = "sha256:9118f27452b70bb1d9ab3198c1f626c2499384935aaf55388211ad982611407e"}, + {file = "psutil-6.1.0-cp27-none-win_amd64.whl", hash = "sha256:a8506f6119cff7015678e2bce904a4da21025cc70ad283a53b099e7620061d85"}, + {file = "psutil-6.1.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:6e2dcd475ce8b80522e51d923d10c7871e45f20918e027ab682f94f1c6351688"}, + {file = "psutil-6.1.0-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:0895b8414afafc526712c498bd9de2b063deaac4021a3b3c34566283464aff8e"}, + {file = "psutil-6.1.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9dcbfce5d89f1d1f2546a2090f4fcf87c7f669d1d90aacb7d7582addece9fb38"}, + {file = "psutil-6.1.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:498c6979f9c6637ebc3a73b3f87f9eb1ec24e1ce53a7c5173b8508981614a90b"}, + {file = "psutil-6.1.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d905186d647b16755a800e7263d43df08b790d709d575105d419f8b6ef65423a"}, + {file = "psutil-6.1.0-cp36-cp36m-win32.whl", hash = "sha256:6d3fbbc8d23fcdcb500d2c9f94e07b1342df8ed71b948a2649b5cb060a7c94ca"}, + {file = "psutil-6.1.0-cp36-cp36m-win_amd64.whl", hash = "sha256:1209036fbd0421afde505a4879dee3b2fd7b1e14fee81c0069807adcbbcca747"}, + {file = "psutil-6.1.0-cp37-abi3-win32.whl", hash = "sha256:1ad45a1f5d0b608253b11508f80940985d1d0c8f6111b5cb637533a0e6ddc13e"}, + {file = "psutil-6.1.0-cp37-abi3-win_amd64.whl", hash = "sha256:a8fb3752b491d246034fa4d279ff076501588ce8cbcdbb62c32fd7a377d996be"}, + {file = "psutil-6.1.0.tar.gz", hash = "sha256:353815f59a7f64cdaca1c0307ee13558a0512f6db064e92fe833784f08539c7a"}, +] + +[package.extras] +dev = ["black", "check-manifest", "coverage", "packaging", "pylint", "pyperf", "pypinfo", "pytest-cov", "requests", "rstcheck", "ruff", "sphinx", "sphinx_rtd_theme", "toml-sort", "twine", "virtualenv", "wheel"] +test = ["pytest", "pytest-xdist", "setuptools"] + +[[package]] +name = "ptyprocess" +version = "0.7.0" +description = "Run a subprocess in a pseudo terminal" +optional = false +python-versions = "*" +files = [ + {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"}, + {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"}, +] + +[[package]] +name = "pure-eval" +version = "0.2.3" +description = "Safely evaluate AST nodes without side effects" +optional = false +python-versions = "*" +files = [ + {file = "pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0"}, + {file = "pure_eval-0.2.3.tar.gz", hash = "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42"}, +] + +[package.extras] +tests = ["pytest"] + +[[package]] +name = "pyarrow" +version = "18.0.0" +description = "Python library for Apache Arrow" +optional = false +python-versions = ">=3.9" +files = [ + {file = "pyarrow-18.0.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:2333f93260674e185cfbf208d2da3007132572e56871f451ba1a556b45dae6e2"}, + {file = "pyarrow-18.0.0-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:4c381857754da44326f3a49b8b199f7f87a51c2faacd5114352fc78de30d3aba"}, + {file = "pyarrow-18.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:603cd8ad4976568954598ef0a6d4ed3dfb78aff3d57fa8d6271f470f0ce7d34f"}, + {file = "pyarrow-18.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58a62549a3e0bc9e03df32f350e10e1efb94ec6cf63e3920c3385b26663948ce"}, + {file = "pyarrow-18.0.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:bc97316840a349485fbb137eb8d0f4d7057e1b2c1272b1a20eebbbe1848f5122"}, + {file = "pyarrow-18.0.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:2e549a748fa8b8715e734919923f69318c953e077e9c02140ada13e59d043310"}, + {file = "pyarrow-18.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:606e9a3dcb0f52307c5040698ea962685fb1c852d72379ee9412be7de9c5f9e2"}, + {file = "pyarrow-18.0.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:d5795e37c0a33baa618c5e054cd61f586cf76850a251e2b21355e4085def6280"}, + {file = "pyarrow-18.0.0-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:5f0510608ccd6e7f02ca8596962afb8c6cc84c453e7be0da4d85f5f4f7b0328a"}, + {file = "pyarrow-18.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:616ea2826c03c16e87f517c46296621a7c51e30400f6d0a61be645f203aa2b93"}, + {file = "pyarrow-18.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a1824f5b029ddd289919f354bc285992cb4e32da518758c136271cf66046ef22"}, + {file = "pyarrow-18.0.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:6dd1b52d0d58dd8f685ced9971eb49f697d753aa7912f0a8f50833c7a7426319"}, + {file = "pyarrow-18.0.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:320ae9bd45ad7ecc12ec858b3e8e462578de060832b98fc4d671dee9f10d9954"}, + {file = "pyarrow-18.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:2c992716cffb1088414f2b478f7af0175fd0a76fea80841b1706baa8fb0ebaad"}, + {file = "pyarrow-18.0.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:e7ab04f272f98ebffd2a0661e4e126036f6936391ba2889ed2d44c5006237802"}, + {file = "pyarrow-18.0.0-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:03f40b65a43be159d2f97fd64dc998f769d0995a50c00f07aab58b0b3da87e1f"}, + {file = "pyarrow-18.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:be08af84808dff63a76860847c48ec0416928a7b3a17c2f49a072cac7c45efbd"}, + {file = "pyarrow-18.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c70c1965cde991b711a98448ccda3486f2a336457cf4ec4dca257a926e149c9"}, + {file = "pyarrow-18.0.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:00178509f379415a3fcf855af020e3340254f990a8534294ec3cf674d6e255fd"}, + {file = "pyarrow-18.0.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:a71ab0589a63a3e987beb2bc172e05f000a5c5be2636b4b263c44034e215b5d7"}, + {file = "pyarrow-18.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:fe92efcdbfa0bcf2fa602e466d7f2905500f33f09eb90bf0bcf2e6ca41b574c8"}, + {file = "pyarrow-18.0.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:907ee0aa8ca576f5e0cdc20b5aeb2ad4d3953a3b4769fc4b499e00ef0266f02f"}, + {file = "pyarrow-18.0.0-cp313-cp313-macosx_12_0_x86_64.whl", hash = "sha256:66dcc216ebae2eb4c37b223feaf82f15b69d502821dde2da138ec5a3716e7463"}, + {file = "pyarrow-18.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bc1daf7c425f58527900876354390ee41b0ae962a73ad0959b9d829def583bb1"}, + {file = "pyarrow-18.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:871b292d4b696b09120ed5bde894f79ee2a5f109cb84470546471df264cae136"}, + {file = "pyarrow-18.0.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:082ba62bdcb939824ba1ce10b8acef5ab621da1f4c4805e07bfd153617ac19d4"}, + {file = "pyarrow-18.0.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:2c664ab88b9766413197733c1720d3dcd4190e8fa3bbdc3710384630a0a7207b"}, + {file = "pyarrow-18.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:dc892be34dbd058e8d189b47db1e33a227d965ea8805a235c8a7286f7fd17d3a"}, + {file = "pyarrow-18.0.0-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:28f9c39a56d2c78bf6b87dcc699d520ab850919d4a8c7418cd20eda49874a2ea"}, + {file = "pyarrow-18.0.0-cp313-cp313t-macosx_12_0_x86_64.whl", hash = "sha256:f1a198a50c409ab2d009fbf20956ace84567d67f2c5701511d4dd561fae6f32e"}, + {file = "pyarrow-18.0.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5bd7fd32e3ace012d43925ea4fc8bd1b02cc6cc1e9813b518302950e89b5a22"}, + {file = "pyarrow-18.0.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:336addb8b6f5208be1b2398442c703a710b6b937b1a046065ee4db65e782ff5a"}, + {file = "pyarrow-18.0.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:45476490dd4adec5472c92b4d253e245258745d0ccaabe706f8d03288ed60a79"}, + {file = "pyarrow-18.0.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:b46591222c864e7da7faa3b19455196416cd8355ff6c2cc2e65726a760a3c420"}, + {file = "pyarrow-18.0.0-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:eb7e3abcda7e1e6b83c2dc2909c8d045881017270a119cc6ee7fdcfe71d02df8"}, + {file = "pyarrow-18.0.0-cp39-cp39-macosx_12_0_x86_64.whl", hash = "sha256:09f30690b99ce34e0da64d20dab372ee54431745e4efb78ac938234a282d15f9"}, + {file = "pyarrow-18.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d5ca5d707e158540312e09fd907f9f49bacbe779ab5236d9699ced14d2293b8"}, + {file = "pyarrow-18.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d6331f280c6e4521c69b201a42dd978f60f7e129511a55da9e0bfe426b4ebb8d"}, + {file = "pyarrow-18.0.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:3ac24b2be732e78a5a3ac0b3aa870d73766dd00beba6e015ea2ea7394f8b4e55"}, + {file = "pyarrow-18.0.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:b30a927c6dff89ee702686596f27c25160dd6c99be5bcc1513a763ae5b1bfc03"}, + {file = "pyarrow-18.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:8f40ec677e942374e3d7f2fad6a67a4c2811a8b975e8703c6fd26d3b168a90e2"}, + {file = "pyarrow-18.0.0.tar.gz", hash = "sha256:a6aa027b1a9d2970cf328ccd6dbe4a996bc13c39fd427f502782f5bdb9ca20f5"}, +] + +[package.extras] +test = ["cffi", "hypothesis", "pandas", "pytest", "pytz"] + +[[package]] +name = "pycparser" +version = "2.22" +description = "C parser in Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, + {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, +] + +[[package]] +name = "pygments" +version = "2.18.0" +description = "Pygments is a syntax highlighting package written in Python." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"}, + {file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"}, +] + +[package.extras] +windows-terminal = ["colorama (>=0.4.6)"] + +[[package]] +name = "pylint" +version = "3.3.1" +description = "python code static checker" +optional = false +python-versions = ">=3.9.0" +files = [ + {file = "pylint-3.3.1-py3-none-any.whl", hash = "sha256:2f846a466dd023513240bc140ad2dd73bfc080a5d85a710afdb728c420a5a2b9"}, + {file = "pylint-3.3.1.tar.gz", hash = "sha256:9f3dcc87b1203e612b78d91a896407787e708b3f189b5fa0b307712d49ff0c6e"}, +] + +[package.dependencies] +astroid = ">=3.3.4,<=3.4.0-dev0" +colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} +dill = [ + {version = ">=0.2", markers = "python_version < \"3.11\""}, + {version = ">=0.3.6", markers = "python_version >= \"3.11\""}, +] +isort = ">=4.2.5,<5.13.0 || >5.13.0,<6" +mccabe = ">=0.6,<0.8" +platformdirs = ">=2.2.0" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +tomlkit = ">=0.10.1" + +[package.extras] +spelling = ["pyenchant (>=3.2,<4.0)"] +testutils = ["gitpython (>3)"] + +[[package]] +name = "pynvim" +version = "0.5.2" +description = "Python client for Neovim" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pynvim-0.5.2-py3-none-any.whl", hash = "sha256:20b1c5a18c4cddfc480950094d4135f782b1a98c32149ea63e24bbdb7021eb54"}, + {file = "pynvim-0.5.2.tar.gz", hash = "sha256:734a2432db8683519f58572617528ecb4a2f321bc7b27f034b3f9b2322c15615"}, +] + +[package.dependencies] +greenlet = {version = ">=3.0", markers = "platform_python_implementation != \"PyPy\""} +msgpack = ">=0.5.0" +typing-extensions = {version = ">=4.5", markers = "python_version < \"3.12\""} + +[package.extras] +docs = ["sphinx", "sphinx-rtd-theme"] +test = ["pytest", "pytest-timeout"] + +[[package]] +name = "pyparsing" +version = "3.2.0" +description = "pyparsing module - Classes and methods to define and execute parsing grammars" +optional = false +python-versions = ">=3.9" +files = [ + {file = "pyparsing-3.2.0-py3-none-any.whl", hash = "sha256:93d9577b88da0bbea8cc8334ee8b918ed014968fd2ec383e868fb8afb1ccef84"}, + {file = "pyparsing-3.2.0.tar.gz", hash = "sha256:cbf74e27246d595d9a74b186b810f6fbb86726dbf3b9532efb343f6d7294fe9c"}, +] + +[package.extras] +diagrams = ["jinja2", "railroad-diagrams"] + +[[package]] +name = "pytest" +version = "8.3.3" +description = "pytest: simple powerful testing with Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pytest-8.3.3-py3-none-any.whl", hash = "sha256:a6853c7375b2663155079443d2e45de913a911a11d669df02a50814944db57b2"}, + {file = "pytest-8.3.3.tar.gz", hash = "sha256:70b98107bd648308a7952b06e6ca9a50bc660be218d53c257cc1fc94fda10181"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "sys_platform == \"win32\""} +exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} +iniconfig = "*" +packaging = "*" +pluggy = ">=1.5,<2" +tomli = {version = ">=1", markers = "python_version < \"3.11\""} + +[package.extras] +dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +description = "Extensions to the standard Python datetime module" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +files = [ + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, +] + +[package.dependencies] +six = ">=1.5" + +[[package]] +name = "python-json-logger" +version = "2.0.7" +description = "A python library adding a json log formatter" +optional = false +python-versions = ">=3.6" +files = [ + {file = "python-json-logger-2.0.7.tar.gz", hash = "sha256:23e7ec02d34237c5aa1e29a070193a4ea87583bb4e7f8fd06d3de8264c4b2e1c"}, + {file = "python_json_logger-2.0.7-py3-none-any.whl", hash = "sha256:f380b826a991ebbe3de4d897aeec42760035ac760345e57b812938dc8b35e2bd"}, +] + +[[package]] +name = "pytz" +version = "2024.2" +description = "World timezone definitions, modern and historical" +optional = false +python-versions = "*" +files = [ + {file = "pytz-2024.2-py2.py3-none-any.whl", hash = "sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725"}, + {file = "pytz-2024.2.tar.gz", hash = "sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a"}, +] + +[[package]] +name = "pywin32" +version = "308" +description = "Python for Window Extensions" +optional = false +python-versions = "*" +files = [ + {file = "pywin32-308-cp310-cp310-win32.whl", hash = "sha256:796ff4426437896550d2981b9c2ac0ffd75238ad9ea2d3bfa67a1abd546d262e"}, + {file = "pywin32-308-cp310-cp310-win_amd64.whl", hash = "sha256:4fc888c59b3c0bef905ce7eb7e2106a07712015ea1c8234b703a088d46110e8e"}, + {file = "pywin32-308-cp310-cp310-win_arm64.whl", hash = "sha256:a5ab5381813b40f264fa3495b98af850098f814a25a63589a8e9eb12560f450c"}, + {file = "pywin32-308-cp311-cp311-win32.whl", hash = "sha256:5d8c8015b24a7d6855b1550d8e660d8daa09983c80e5daf89a273e5c6fb5095a"}, + {file = "pywin32-308-cp311-cp311-win_amd64.whl", hash = "sha256:575621b90f0dc2695fec346b2d6302faebd4f0f45c05ea29404cefe35d89442b"}, + {file = "pywin32-308-cp311-cp311-win_arm64.whl", hash = "sha256:100a5442b7332070983c4cd03f2e906a5648a5104b8a7f50175f7906efd16bb6"}, + {file = "pywin32-308-cp312-cp312-win32.whl", hash = "sha256:587f3e19696f4bf96fde9d8a57cec74a57021ad5f204c9e627e15c33ff568897"}, + {file = "pywin32-308-cp312-cp312-win_amd64.whl", hash = "sha256:00b3e11ef09ede56c6a43c71f2d31857cf7c54b0ab6e78ac659497abd2834f47"}, + {file = "pywin32-308-cp312-cp312-win_arm64.whl", hash = "sha256:9b4de86c8d909aed15b7011182c8cab38c8850de36e6afb1f0db22b8959e3091"}, + {file = "pywin32-308-cp313-cp313-win32.whl", hash = "sha256:1c44539a37a5b7b21d02ab34e6a4d314e0788f1690d65b48e9b0b89f31abbbed"}, + {file = "pywin32-308-cp313-cp313-win_amd64.whl", hash = "sha256:fd380990e792eaf6827fcb7e187b2b4b1cede0585e3d0c9e84201ec27b9905e4"}, + {file = "pywin32-308-cp313-cp313-win_arm64.whl", hash = "sha256:ef313c46d4c18dfb82a2431e3051ac8f112ccee1a34f29c263c583c568db63cd"}, + {file = "pywin32-308-cp37-cp37m-win32.whl", hash = "sha256:1f696ab352a2ddd63bd07430080dd598e6369152ea13a25ebcdd2f503a38f1ff"}, + {file = "pywin32-308-cp37-cp37m-win_amd64.whl", hash = "sha256:13dcb914ed4347019fbec6697a01a0aec61019c1046c2b905410d197856326a6"}, + {file = "pywin32-308-cp38-cp38-win32.whl", hash = "sha256:5794e764ebcabf4ff08c555b31bd348c9025929371763b2183172ff4708152f0"}, + {file = "pywin32-308-cp38-cp38-win_amd64.whl", hash = "sha256:3b92622e29d651c6b783e368ba7d6722b1634b8e70bd376fd7610fe1992e19de"}, + {file = "pywin32-308-cp39-cp39-win32.whl", hash = "sha256:7873ca4dc60ab3287919881a7d4f88baee4a6e639aa6962de25a98ba6b193341"}, + {file = "pywin32-308-cp39-cp39-win_amd64.whl", hash = "sha256:71b3322d949b4cc20776436a9c9ba0eeedcbc9c650daa536df63f0ff111bb920"}, +] + +[[package]] +name = "pywinpty" +version = "2.0.14" +description = "Pseudo terminal support for Windows from Python." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pywinpty-2.0.14-cp310-none-win_amd64.whl", hash = "sha256:0b149c2918c7974f575ba79f5a4aad58bd859a52fa9eb1296cc22aa412aa411f"}, + {file = "pywinpty-2.0.14-cp311-none-win_amd64.whl", hash = "sha256:cf2a43ac7065b3e0dc8510f8c1f13a75fb8fde805efa3b8cff7599a1ef497bc7"}, + {file = "pywinpty-2.0.14-cp312-none-win_amd64.whl", hash = "sha256:55dad362ef3e9408ade68fd173e4f9032b3ce08f68cfe7eacb2c263ea1179737"}, + {file = "pywinpty-2.0.14-cp313-none-win_amd64.whl", hash = "sha256:074fb988a56ec79ca90ed03a896d40707131897cefb8f76f926e3834227f2819"}, + {file = "pywinpty-2.0.14-cp39-none-win_amd64.whl", hash = "sha256:5725fd56f73c0531ec218663bd8c8ff5acc43c78962fab28564871b5fce053fd"}, + {file = "pywinpty-2.0.14.tar.gz", hash = "sha256:18bd9529e4a5daf2d9719aa17788ba6013e594ae94c5a0c27e83df3278b0660e"}, +] + +[[package]] +name = "pyyaml" +version = "6.0.2" +description = "YAML parser and emitter for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, + {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, + {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, + {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, + {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, + {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, + {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, + {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, + {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, + {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, + {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, + {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, + {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, + {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, + {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, + {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, + {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, +] + +[[package]] +name = "pyzmq" +version = "26.2.0" +description = "Python bindings for 0MQ" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pyzmq-26.2.0-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:ddf33d97d2f52d89f6e6e7ae66ee35a4d9ca6f36eda89c24591b0c40205a3629"}, + {file = "pyzmq-26.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dacd995031a01d16eec825bf30802fceb2c3791ef24bcce48fa98ce40918c27b"}, + {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89289a5ee32ef6c439086184529ae060c741334b8970a6855ec0b6ad3ff28764"}, + {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5506f06d7dc6ecf1efacb4a013b1f05071bb24b76350832c96449f4a2d95091c"}, + {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8ea039387c10202ce304af74def5021e9adc6297067f3441d348d2b633e8166a"}, + {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:a2224fa4a4c2ee872886ed00a571f5e967c85e078e8e8c2530a2fb01b3309b88"}, + {file = "pyzmq-26.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:28ad5233e9c3b52d76196c696e362508959741e1a005fb8fa03b51aea156088f"}, + {file = "pyzmq-26.2.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:1c17211bc037c7d88e85ed8b7d8f7e52db6dc8eca5590d162717c654550f7282"}, + {file = "pyzmq-26.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b8f86dd868d41bea9a5f873ee13bf5551c94cf6bc51baebc6f85075971fe6eea"}, + {file = "pyzmq-26.2.0-cp310-cp310-win32.whl", hash = "sha256:46a446c212e58456b23af260f3d9fb785054f3e3653dbf7279d8f2b5546b21c2"}, + {file = "pyzmq-26.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:49d34ab71db5a9c292a7644ce74190b1dd5a3475612eefb1f8be1d6961441971"}, + {file = "pyzmq-26.2.0-cp310-cp310-win_arm64.whl", hash = "sha256:bfa832bfa540e5b5c27dcf5de5d82ebc431b82c453a43d141afb1e5d2de025fa"}, + {file = "pyzmq-26.2.0-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:8f7e66c7113c684c2b3f1c83cdd3376103ee0ce4c49ff80a648643e57fb22218"}, + {file = "pyzmq-26.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3a495b30fc91db2db25120df5847d9833af237546fd59170701acd816ccc01c4"}, + {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77eb0968da535cba0470a5165468b2cac7772cfb569977cff92e240f57e31bef"}, + {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ace4f71f1900a548f48407fc9be59c6ba9d9aaf658c2eea6cf2779e72f9f317"}, + {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:92a78853d7280bffb93df0a4a6a2498cba10ee793cc8076ef797ef2f74d107cf"}, + {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:689c5d781014956a4a6de61d74ba97b23547e431e9e7d64f27d4922ba96e9d6e"}, + {file = "pyzmq-26.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0aca98bc423eb7d153214b2df397c6421ba6373d3397b26c057af3c904452e37"}, + {file = "pyzmq-26.2.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:1f3496d76b89d9429a656293744ceca4d2ac2a10ae59b84c1da9b5165f429ad3"}, + {file = "pyzmq-26.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5c2b3bfd4b9689919db068ac6c9911f3fcb231c39f7dd30e3138be94896d18e6"}, + {file = "pyzmq-26.2.0-cp311-cp311-win32.whl", hash = "sha256:eac5174677da084abf378739dbf4ad245661635f1600edd1221f150b165343f4"}, + {file = "pyzmq-26.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:5a509df7d0a83a4b178d0f937ef14286659225ef4e8812e05580776c70e155d5"}, + {file = "pyzmq-26.2.0-cp311-cp311-win_arm64.whl", hash = "sha256:c0e6091b157d48cbe37bd67233318dbb53e1e6327d6fc3bb284afd585d141003"}, + {file = "pyzmq-26.2.0-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:ded0fc7d90fe93ae0b18059930086c51e640cdd3baebdc783a695c77f123dcd9"}, + {file = "pyzmq-26.2.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:17bf5a931c7f6618023cdacc7081f3f266aecb68ca692adac015c383a134ca52"}, + {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55cf66647e49d4621a7e20c8d13511ef1fe1efbbccf670811864452487007e08"}, + {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4661c88db4a9e0f958c8abc2b97472e23061f0bc737f6f6179d7a27024e1faa5"}, + {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ea7f69de383cb47522c9c208aec6dd17697db7875a4674c4af3f8cfdac0bdeae"}, + {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:7f98f6dfa8b8ccaf39163ce872bddacca38f6a67289116c8937a02e30bbe9711"}, + {file = "pyzmq-26.2.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e3e0210287329272539eea617830a6a28161fbbd8a3271bf4150ae3e58c5d0e6"}, + {file = "pyzmq-26.2.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:6b274e0762c33c7471f1a7471d1a2085b1a35eba5cdc48d2ae319f28b6fc4de3"}, + {file = "pyzmq-26.2.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:29c6a4635eef69d68a00321e12a7d2559fe2dfccfa8efae3ffb8e91cd0b36a8b"}, + {file = "pyzmq-26.2.0-cp312-cp312-win32.whl", hash = "sha256:989d842dc06dc59feea09e58c74ca3e1678c812a4a8a2a419046d711031f69c7"}, + {file = "pyzmq-26.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:2a50625acdc7801bc6f74698c5c583a491c61d73c6b7ea4dee3901bb99adb27a"}, + {file = "pyzmq-26.2.0-cp312-cp312-win_arm64.whl", hash = "sha256:4d29ab8592b6ad12ebbf92ac2ed2bedcfd1cec192d8e559e2e099f648570e19b"}, + {file = "pyzmq-26.2.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9dd8cd1aeb00775f527ec60022004d030ddc51d783d056e3e23e74e623e33726"}, + {file = "pyzmq-26.2.0-cp313-cp313-macosx_10_15_universal2.whl", hash = "sha256:28c812d9757fe8acecc910c9ac9dafd2ce968c00f9e619db09e9f8f54c3a68a3"}, + {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d80b1dd99c1942f74ed608ddb38b181b87476c6a966a88a950c7dee118fdf50"}, + {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8c997098cc65e3208eca09303630e84d42718620e83b733d0fd69543a9cab9cb"}, + {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ad1bc8d1b7a18497dda9600b12dc193c577beb391beae5cd2349184db40f187"}, + {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:bea2acdd8ea4275e1278350ced63da0b166421928276c7c8e3f9729d7402a57b"}, + {file = "pyzmq-26.2.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:23f4aad749d13698f3f7b64aad34f5fc02d6f20f05999eebc96b89b01262fb18"}, + {file = "pyzmq-26.2.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:a4f96f0d88accc3dbe4a9025f785ba830f968e21e3e2c6321ccdfc9aef755115"}, + {file = "pyzmq-26.2.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ced65e5a985398827cc9276b93ef6dfabe0273c23de8c7931339d7e141c2818e"}, + {file = "pyzmq-26.2.0-cp313-cp313-win32.whl", hash = "sha256:31507f7b47cc1ead1f6e86927f8ebb196a0bab043f6345ce070f412a59bf87b5"}, + {file = "pyzmq-26.2.0-cp313-cp313-win_amd64.whl", hash = "sha256:70fc7fcf0410d16ebdda9b26cbd8bf8d803d220a7f3522e060a69a9c87bf7bad"}, + {file = "pyzmq-26.2.0-cp313-cp313-win_arm64.whl", hash = "sha256:c3789bd5768ab5618ebf09cef6ec2b35fed88709b104351748a63045f0ff9797"}, + {file = "pyzmq-26.2.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:034da5fc55d9f8da09015d368f519478a52675e558c989bfcb5cf6d4e16a7d2a"}, + {file = "pyzmq-26.2.0-cp313-cp313t-macosx_10_15_universal2.whl", hash = "sha256:c92d73464b886931308ccc45b2744e5968cbaade0b1d6aeb40d8ab537765f5bc"}, + {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:794a4562dcb374f7dbbfb3f51d28fb40123b5a2abadee7b4091f93054909add5"}, + {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aee22939bb6075e7afededabad1a56a905da0b3c4e3e0c45e75810ebe3a52672"}, + {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ae90ff9dad33a1cfe947d2c40cb9cb5e600d759ac4f0fd22616ce6540f72797"}, + {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:43a47408ac52647dfabbc66a25b05b6a61700b5165807e3fbd40063fcaf46386"}, + {file = "pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:25bf2374a2a8433633c65ccb9553350d5e17e60c8eb4de4d92cc6bd60f01d306"}, + {file = "pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_i686.whl", hash = "sha256:007137c9ac9ad5ea21e6ad97d3489af654381324d5d3ba614c323f60dab8fae6"}, + {file = "pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:470d4a4f6d48fb34e92d768b4e8a5cc3780db0d69107abf1cd7ff734b9766eb0"}, + {file = "pyzmq-26.2.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3b55a4229ce5da9497dd0452b914556ae58e96a4381bb6f59f1305dfd7e53fc8"}, + {file = "pyzmq-26.2.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9cb3a6460cdea8fe8194a76de8895707e61ded10ad0be97188cc8463ffa7e3a8"}, + {file = "pyzmq-26.2.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8ab5cad923cc95c87bffee098a27856c859bd5d0af31bd346035aa816b081fe1"}, + {file = "pyzmq-26.2.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9ed69074a610fad1c2fda66180e7b2edd4d31c53f2d1872bc2d1211563904cd9"}, + {file = "pyzmq-26.2.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:cccba051221b916a4f5e538997c45d7d136a5646442b1231b916d0164067ea27"}, + {file = "pyzmq-26.2.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:0eaa83fc4c1e271c24eaf8fb083cbccef8fde77ec8cd45f3c35a9a123e6da097"}, + {file = "pyzmq-26.2.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:9edda2df81daa129b25a39b86cb57dfdfe16f7ec15b42b19bfac503360d27a93"}, + {file = "pyzmq-26.2.0-cp37-cp37m-win32.whl", hash = "sha256:ea0eb6af8a17fa272f7b98d7bebfab7836a0d62738e16ba380f440fceca2d951"}, + {file = "pyzmq-26.2.0-cp37-cp37m-win_amd64.whl", hash = "sha256:4ff9dc6bc1664bb9eec25cd17506ef6672d506115095411e237d571e92a58231"}, + {file = "pyzmq-26.2.0-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:2eb7735ee73ca1b0d71e0e67c3739c689067f055c764f73aac4cc8ecf958ee3f"}, + {file = "pyzmq-26.2.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1a534f43bc738181aa7cbbaf48e3eca62c76453a40a746ab95d4b27b1111a7d2"}, + {file = "pyzmq-26.2.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:aedd5dd8692635813368e558a05266b995d3d020b23e49581ddd5bbe197a8ab6"}, + {file = "pyzmq-26.2.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8be4700cd8bb02cc454f630dcdf7cfa99de96788b80c51b60fe2fe1dac480289"}, + {file = "pyzmq-26.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fcc03fa4997c447dce58264e93b5aa2d57714fbe0f06c07b7785ae131512732"}, + {file = "pyzmq-26.2.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:402b190912935d3db15b03e8f7485812db350d271b284ded2b80d2e5704be780"}, + {file = "pyzmq-26.2.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8685fa9c25ff00f550c1fec650430c4b71e4e48e8d852f7ddcf2e48308038640"}, + {file = "pyzmq-26.2.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:76589c020680778f06b7e0b193f4b6dd66d470234a16e1df90329f5e14a171cd"}, + {file = "pyzmq-26.2.0-cp38-cp38-win32.whl", hash = "sha256:8423c1877d72c041f2c263b1ec6e34360448decfb323fa8b94e85883043ef988"}, + {file = "pyzmq-26.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:76589f2cd6b77b5bdea4fca5992dc1c23389d68b18ccc26a53680ba2dc80ff2f"}, + {file = "pyzmq-26.2.0-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:b1d464cb8d72bfc1a3adc53305a63a8e0cac6bc8c5a07e8ca190ab8d3faa43c2"}, + {file = "pyzmq-26.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4da04c48873a6abdd71811c5e163bd656ee1b957971db7f35140a2d573f6949c"}, + {file = "pyzmq-26.2.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:d049df610ac811dcffdc147153b414147428567fbbc8be43bb8885f04db39d98"}, + {file = "pyzmq-26.2.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:05590cdbc6b902101d0e65d6a4780af14dc22914cc6ab995d99b85af45362cc9"}, + {file = "pyzmq-26.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c811cfcd6a9bf680236c40c6f617187515269ab2912f3d7e8c0174898e2519db"}, + {file = "pyzmq-26.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:6835dd60355593de10350394242b5757fbbd88b25287314316f266e24c61d073"}, + {file = "pyzmq-26.2.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc6bee759a6bddea5db78d7dcd609397449cb2d2d6587f48f3ca613b19410cfc"}, + {file = "pyzmq-26.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c530e1eecd036ecc83c3407f77bb86feb79916d4a33d11394b8234f3bd35b940"}, + {file = "pyzmq-26.2.0-cp39-cp39-win32.whl", hash = "sha256:367b4f689786fca726ef7a6c5ba606958b145b9340a5e4808132cc65759abd44"}, + {file = "pyzmq-26.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:e6fa2e3e683f34aea77de8112f6483803c96a44fd726d7358b9888ae5bb394ec"}, + {file = "pyzmq-26.2.0-cp39-cp39-win_arm64.whl", hash = "sha256:7445be39143a8aa4faec43b076e06944b8f9d0701b669df4af200531b21e40bb"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:706e794564bec25819d21a41c31d4df2d48e1cc4b061e8d345d7fb4dd3e94072"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b435f2753621cd36e7c1762156815e21c985c72b19135dac43a7f4f31d28dd1"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:160c7e0a5eb178011e72892f99f918c04a131f36056d10d9c1afb223fc952c2d"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c4a71d5d6e7b28a47a394c0471b7e77a0661e2d651e7ae91e0cab0a587859ca"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:90412f2db8c02a3864cbfc67db0e3dcdbda336acf1c469526d3e869394fe001c"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2ea4ad4e6a12e454de05f2949d4beddb52460f3de7c8b9d5c46fbb7d7222e02c"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:fc4f7a173a5609631bb0c42c23d12c49df3966f89f496a51d3eb0ec81f4519d6"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:878206a45202247781472a2d99df12a176fef806ca175799e1c6ad263510d57c"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:17c412bad2eb9468e876f556eb4ee910e62d721d2c7a53c7fa31e643d35352e6"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:0d987a3ae5a71c6226b203cfd298720e0086c7fe7c74f35fa8edddfbd6597eed"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:39887ac397ff35b7b775db7201095fc6310a35fdbae85bac4523f7eb3b840e20"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:fdb5b3e311d4d4b0eb8b3e8b4d1b0a512713ad7e6a68791d0923d1aec433d919"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:226af7dcb51fdb0109f0016449b357e182ea0ceb6b47dfb5999d569e5db161d5"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bed0e799e6120b9c32756203fb9dfe8ca2fb8467fed830c34c877e25638c3fc"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:29c7947c594e105cb9e6c466bace8532dc1ca02d498684128b339799f5248277"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:cdeabcff45d1c219636ee2e54d852262e5c2e085d6cb476d938aee8d921356b3"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35cffef589bcdc587d06f9149f8d5e9e8859920a071df5a2671de2213bef592a"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:18c8dc3b7468d8b4bdf60ce9d7141897da103c7a4690157b32b60acb45e333e6"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7133d0a1677aec369d67dd78520d3fa96dd7f3dcec99d66c1762870e5ea1a50a"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:6a96179a24b14fa6428cbfc08641c779a53f8fcec43644030328f44034c7f1f4"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:4f78c88905461a9203eac9faac157a2a0dbba84a0fd09fd29315db27be40af9f"}, + {file = "pyzmq-26.2.0.tar.gz", hash = "sha256:070672c258581c8e4f640b5159297580a9974b026043bd4ab0470be9ed324f1f"}, +] + +[package.dependencies] +cffi = {version = "*", markers = "implementation_name == \"pypy\""} + +[[package]] +name = "referencing" +version = "0.35.1" +description = "JSON Referencing + Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "referencing-0.35.1-py3-none-any.whl", hash = "sha256:eda6d3234d62814d1c64e305c1331c9a3a6132da475ab6382eaa997b21ee75de"}, + {file = "referencing-0.35.1.tar.gz", hash = "sha256:25b42124a6c8b632a425174f24087783efb348a6f1e0008e63cd4466fedf703c"}, +] + +[package.dependencies] +attrs = ">=22.2.0" +rpds-py = ">=0.7.0" + +[[package]] +name = "requests" +version = "2.32.3" +description = "Python HTTP for Humans." +optional = false +python-versions = ">=3.8" +files = [ + {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, + {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, +] + +[package.dependencies] +certifi = ">=2017.4.17" +charset-normalizer = ">=2,<4" +idna = ">=2.5,<4" +urllib3 = ">=1.21.1,<3" + +[package.extras] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] + +[[package]] +name = "rfc3339-validator" +version = "0.1.4" +description = "A pure python RFC3339 validator" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "rfc3339_validator-0.1.4-py2.py3-none-any.whl", hash = "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa"}, + {file = "rfc3339_validator-0.1.4.tar.gz", hash = "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b"}, +] + +[package.dependencies] +six = "*" + +[[package]] +name = "rfc3986-validator" +version = "0.1.1" +description = "Pure python rfc3986 validator" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "rfc3986_validator-0.1.1-py2.py3-none-any.whl", hash = "sha256:2f235c432ef459970b4306369336b9d5dbdda31b510ca1e327636e01f528bfa9"}, + {file = "rfc3986_validator-0.1.1.tar.gz", hash = "sha256:3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055"}, +] + +[[package]] +name = "rpds-py" +version = "0.21.0" +description = "Python bindings to Rust's persistent data structures (rpds)" +optional = false +python-versions = ">=3.9" +files = [ + {file = "rpds_py-0.21.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:a017f813f24b9df929674d0332a374d40d7f0162b326562daae8066b502d0590"}, + {file = "rpds_py-0.21.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:20cc1ed0bcc86d8e1a7e968cce15be45178fd16e2ff656a243145e0b439bd250"}, + {file = "rpds_py-0.21.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad116dda078d0bc4886cb7840e19811562acdc7a8e296ea6ec37e70326c1b41c"}, + {file = "rpds_py-0.21.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:808f1ac7cf3b44f81c9475475ceb221f982ef548e44e024ad5f9e7060649540e"}, + {file = "rpds_py-0.21.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de552f4a1916e520f2703ec474d2b4d3f86d41f353e7680b597512ffe7eac5d0"}, + {file = "rpds_py-0.21.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:efec946f331349dfc4ae9d0e034c263ddde19414fe5128580f512619abed05f1"}, + {file = "rpds_py-0.21.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b80b4690bbff51a034bfde9c9f6bf9357f0a8c61f548942b80f7b66356508bf5"}, + {file = "rpds_py-0.21.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:085ed25baac88953d4283e5b5bd094b155075bb40d07c29c4f073e10623f9f2e"}, + {file = "rpds_py-0.21.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:daa8efac2a1273eed2354397a51216ae1e198ecbce9036fba4e7610b308b6153"}, + {file = "rpds_py-0.21.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:95a5bad1ac8a5c77b4e658671642e4af3707f095d2b78a1fdd08af0dfb647624"}, + {file = "rpds_py-0.21.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3e53861b29a13d5b70116ea4230b5f0f3547b2c222c5daa090eb7c9c82d7f664"}, + {file = "rpds_py-0.21.0-cp310-none-win32.whl", hash = "sha256:ea3a6ac4d74820c98fcc9da4a57847ad2cc36475a8bd9683f32ab6d47a2bd682"}, + {file = "rpds_py-0.21.0-cp310-none-win_amd64.whl", hash = "sha256:b8f107395f2f1d151181880b69a2869c69e87ec079c49c0016ab96860b6acbe5"}, + {file = "rpds_py-0.21.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:5555db3e618a77034954b9dc547eae94166391a98eb867905ec8fcbce1308d95"}, + {file = "rpds_py-0.21.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:97ef67d9bbc3e15584c2f3c74bcf064af36336c10d2e21a2131e123ce0f924c9"}, + {file = "rpds_py-0.21.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ab2c2a26d2f69cdf833174f4d9d86118edc781ad9a8fa13970b527bf8236027"}, + {file = "rpds_py-0.21.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4e8921a259f54bfbc755c5bbd60c82bb2339ae0324163f32868f63f0ebb873d9"}, + {file = "rpds_py-0.21.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8a7ff941004d74d55a47f916afc38494bd1cfd4b53c482b77c03147c91ac0ac3"}, + {file = "rpds_py-0.21.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5145282a7cd2ac16ea0dc46b82167754d5e103a05614b724457cffe614f25bd8"}, + {file = "rpds_py-0.21.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de609a6f1b682f70bb7163da745ee815d8f230d97276db049ab447767466a09d"}, + {file = "rpds_py-0.21.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:40c91c6e34cf016fa8e6b59d75e3dbe354830777fcfd74c58b279dceb7975b75"}, + {file = "rpds_py-0.21.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d2132377f9deef0c4db89e65e8bb28644ff75a18df5293e132a8d67748397b9f"}, + {file = "rpds_py-0.21.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:0a9e0759e7be10109645a9fddaaad0619d58c9bf30a3f248a2ea57a7c417173a"}, + {file = "rpds_py-0.21.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9e20da3957bdf7824afdd4b6eeb29510e83e026473e04952dca565170cd1ecc8"}, + {file = "rpds_py-0.21.0-cp311-none-win32.whl", hash = "sha256:f71009b0d5e94c0e86533c0b27ed7cacc1239cb51c178fd239c3cfefefb0400a"}, + {file = "rpds_py-0.21.0-cp311-none-win_amd64.whl", hash = "sha256:e168afe6bf6ab7ab46c8c375606298784ecbe3ba31c0980b7dcbb9631dcba97e"}, + {file = "rpds_py-0.21.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:30b912c965b2aa76ba5168fd610087bad7fcde47f0a8367ee8f1876086ee6d1d"}, + {file = "rpds_py-0.21.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ca9989d5d9b1b300bc18e1801c67b9f6d2c66b8fd9621b36072ed1df2c977f72"}, + {file = "rpds_py-0.21.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f54e7106f0001244a5f4cf810ba8d3f9c542e2730821b16e969d6887b664266"}, + {file = "rpds_py-0.21.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fed5dfefdf384d6fe975cc026886aece4f292feaf69d0eeb716cfd3c5a4dd8be"}, + {file = "rpds_py-0.21.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:590ef88db231c9c1eece44dcfefd7515d8bf0d986d64d0caf06a81998a9e8cab"}, + {file = "rpds_py-0.21.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f983e4c2f603c95dde63df633eec42955508eefd8d0f0e6d236d31a044c882d7"}, + {file = "rpds_py-0.21.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b229ce052ddf1a01c67d68166c19cb004fb3612424921b81c46e7ea7ccf7c3bf"}, + {file = "rpds_py-0.21.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ebf64e281a06c904a7636781d2e973d1f0926a5b8b480ac658dc0f556e7779f4"}, + {file = "rpds_py-0.21.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:998a8080c4495e4f72132f3d66ff91f5997d799e86cec6ee05342f8f3cda7dca"}, + {file = "rpds_py-0.21.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:98486337f7b4f3c324ab402e83453e25bb844f44418c066623db88e4c56b7c7b"}, + {file = "rpds_py-0.21.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a78d8b634c9df7f8d175451cfeac3810a702ccb85f98ec95797fa98b942cea11"}, + {file = "rpds_py-0.21.0-cp312-none-win32.whl", hash = "sha256:a58ce66847711c4aa2ecfcfaff04cb0327f907fead8945ffc47d9407f41ff952"}, + {file = "rpds_py-0.21.0-cp312-none-win_amd64.whl", hash = "sha256:e860f065cc4ea6f256d6f411aba4b1251255366e48e972f8a347cf88077b24fd"}, + {file = "rpds_py-0.21.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:ee4eafd77cc98d355a0d02f263efc0d3ae3ce4a7c24740010a8b4012bbb24937"}, + {file = "rpds_py-0.21.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:688c93b77e468d72579351a84b95f976bd7b3e84aa6686be6497045ba84be560"}, + {file = "rpds_py-0.21.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c38dbf31c57032667dd5a2f0568ccde66e868e8f78d5a0d27dcc56d70f3fcd3b"}, + {file = "rpds_py-0.21.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2d6129137f43f7fa02d41542ffff4871d4aefa724a5fe38e2c31a4e0fd343fb0"}, + {file = "rpds_py-0.21.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:520ed8b99b0bf86a176271f6fe23024323862ac674b1ce5b02a72bfeff3fff44"}, + {file = "rpds_py-0.21.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:aaeb25ccfb9b9014a10eaf70904ebf3f79faaa8e60e99e19eef9f478651b9b74"}, + {file = "rpds_py-0.21.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af04ac89c738e0f0f1b913918024c3eab6e3ace989518ea838807177d38a2e94"}, + {file = "rpds_py-0.21.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b9b76e2afd585803c53c5b29e992ecd183f68285b62fe2668383a18e74abe7a3"}, + {file = "rpds_py-0.21.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5afb5efde74c54724e1a01118c6e5c15e54e642c42a1ba588ab1f03544ac8c7a"}, + {file = "rpds_py-0.21.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:52c041802a6efa625ea18027a0723676a778869481d16803481ef6cc02ea8cb3"}, + {file = "rpds_py-0.21.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ee1e4fc267b437bb89990b2f2abf6c25765b89b72dd4a11e21934df449e0c976"}, + {file = "rpds_py-0.21.0-cp313-none-win32.whl", hash = "sha256:0c025820b78817db6a76413fff6866790786c38f95ea3f3d3c93dbb73b632202"}, + {file = "rpds_py-0.21.0-cp313-none-win_amd64.whl", hash = "sha256:320c808df533695326610a1b6a0a6e98f033e49de55d7dc36a13c8a30cfa756e"}, + {file = "rpds_py-0.21.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:2c51d99c30091f72a3c5d126fad26236c3f75716b8b5e5cf8effb18889ced928"}, + {file = "rpds_py-0.21.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:cbd7504a10b0955ea287114f003b7ad62330c9e65ba012c6223dba646f6ffd05"}, + {file = "rpds_py-0.21.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6dcc4949be728ede49e6244eabd04064336012b37f5c2200e8ec8eb2988b209c"}, + {file = "rpds_py-0.21.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f414da5c51bf350e4b7960644617c130140423882305f7574b6cf65a3081cecb"}, + {file = "rpds_py-0.21.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9afe42102b40007f588666bc7de82451e10c6788f6f70984629db193849dced1"}, + {file = "rpds_py-0.21.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3b929c2bb6e29ab31f12a1117c39f7e6d6450419ab7464a4ea9b0b417174f044"}, + {file = "rpds_py-0.21.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8404b3717da03cbf773a1d275d01fec84ea007754ed380f63dfc24fb76ce4592"}, + {file = "rpds_py-0.21.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e12bb09678f38b7597b8346983d2323a6482dcd59e423d9448108c1be37cac9d"}, + {file = "rpds_py-0.21.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:58a0e345be4b18e6b8501d3b0aa540dad90caeed814c515e5206bb2ec26736fd"}, + {file = "rpds_py-0.21.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:c3761f62fcfccf0864cc4665b6e7c3f0c626f0380b41b8bd1ce322103fa3ef87"}, + {file = "rpds_py-0.21.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:c2b2f71c6ad6c2e4fc9ed9401080badd1469fa9889657ec3abea42a3d6b2e1ed"}, + {file = "rpds_py-0.21.0-cp39-none-win32.whl", hash = "sha256:b21747f79f360e790525e6f6438c7569ddbfb1b3197b9e65043f25c3c9b489d8"}, + {file = "rpds_py-0.21.0-cp39-none-win_amd64.whl", hash = "sha256:0626238a43152918f9e72ede9a3b6ccc9e299adc8ade0d67c5e142d564c9a83d"}, + {file = "rpds_py-0.21.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:6b4ef7725386dc0762857097f6b7266a6cdd62bfd209664da6712cb26acef035"}, + {file = "rpds_py-0.21.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:6bc0e697d4d79ab1aacbf20ee5f0df80359ecf55db33ff41481cf3e24f206919"}, + {file = "rpds_py-0.21.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da52d62a96e61c1c444f3998c434e8b263c384f6d68aca8274d2e08d1906325c"}, + {file = "rpds_py-0.21.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:98e4fe5db40db87ce1c65031463a760ec7906ab230ad2249b4572c2fc3ef1f9f"}, + {file = "rpds_py-0.21.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:30bdc973f10d28e0337f71d202ff29345320f8bc49a31c90e6c257e1ccef4333"}, + {file = "rpds_py-0.21.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:faa5e8496c530f9c71f2b4e1c49758b06e5f4055e17144906245c99fa6d45356"}, + {file = "rpds_py-0.21.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:32eb88c30b6a4f0605508023b7141d043a79b14acb3b969aa0b4f99b25bc7d4a"}, + {file = "rpds_py-0.21.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a89a8ce9e4e75aeb7fa5d8ad0f3fecdee813802592f4f46a15754dcb2fd6b061"}, + {file = "rpds_py-0.21.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:241e6c125568493f553c3d0fdbb38c74babf54b45cef86439d4cd97ff8feb34d"}, + {file = "rpds_py-0.21.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:3b766a9f57663396e4f34f5140b3595b233a7b146e94777b97a8413a1da1be18"}, + {file = "rpds_py-0.21.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:af4a644bf890f56e41e74be7d34e9511e4954894d544ec6b8efe1e21a1a8da6c"}, + {file = "rpds_py-0.21.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:3e30a69a706e8ea20444b98a49f386c17b26f860aa9245329bab0851ed100677"}, + {file = "rpds_py-0.21.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:031819f906bb146561af051c7cef4ba2003d28cff07efacef59da973ff7969ba"}, + {file = "rpds_py-0.21.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:b876f2bc27ab5954e2fd88890c071bd0ed18b9c50f6ec3de3c50a5ece612f7a6"}, + {file = "rpds_py-0.21.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dc5695c321e518d9f03b7ea6abb5ea3af4567766f9852ad1560f501b17588c7b"}, + {file = "rpds_py-0.21.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b4de1da871b5c0fd5537b26a6fc6814c3cc05cabe0c941db6e9044ffbb12f04a"}, + {file = "rpds_py-0.21.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:878f6fea96621fda5303a2867887686d7a198d9e0f8a40be100a63f5d60c88c9"}, + {file = "rpds_py-0.21.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8eeec67590e94189f434c6d11c426892e396ae59e4801d17a93ac96b8c02a6c"}, + {file = "rpds_py-0.21.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1ff2eba7f6c0cb523d7e9cff0903f2fe1feff8f0b2ceb6bd71c0e20a4dcee271"}, + {file = "rpds_py-0.21.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a429b99337062877d7875e4ff1a51fe788424d522bd64a8c0a20ef3021fdb6ed"}, + {file = "rpds_py-0.21.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:d167e4dbbdac48bd58893c7e446684ad5d425b407f9336e04ab52e8b9194e2ed"}, + {file = "rpds_py-0.21.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:4eb2de8a147ffe0626bfdc275fc6563aa7bf4b6db59cf0d44f0ccd6ca625a24e"}, + {file = "rpds_py-0.21.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:e78868e98f34f34a88e23ee9ccaeeec460e4eaf6db16d51d7a9b883e5e785a5e"}, + {file = "rpds_py-0.21.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:4991ca61656e3160cdaca4851151fd3f4a92e9eba5c7a530ab030d6aee96ec89"}, + {file = "rpds_py-0.21.0.tar.gz", hash = "sha256:ed6378c9d66d0de903763e7706383d60c33829581f0adff47b6535f1802fa6db"}, +] + +[[package]] +name = "send2trash" +version = "1.8.3" +description = "Send file to trash natively under Mac OS X, Windows and Linux" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +files = [ + {file = "Send2Trash-1.8.3-py3-none-any.whl", hash = "sha256:0c31227e0bd08961c7665474a3d1ef7193929fedda4233843689baa056be46c9"}, + {file = "Send2Trash-1.8.3.tar.gz", hash = "sha256:b18e7a3966d99871aefeb00cfbcfdced55ce4871194810fc71f4aa484b953abf"}, +] + +[package.extras] +nativelib = ["pyobjc-framework-Cocoa", "pywin32"] +objc = ["pyobjc-framework-Cocoa"] +win32 = ["pywin32"] + +[[package]] +name = "setuptools" +version = "75.6.0" +description = "Easily download, build, install, upgrade, and uninstall Python packages" +optional = false +python-versions = ">=3.9" +files = [ + {file = "setuptools-75.6.0-py3-none-any.whl", hash = "sha256:ce74b49e8f7110f9bf04883b730f4765b774ef3ef28f722cce7c273d253aaf7d"}, + {file = "setuptools-75.6.0.tar.gz", hash = "sha256:8199222558df7c86216af4f84c30e9b34a61d8ba19366cc914424cdbd28252f6"}, +] + +[package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)", "ruff (>=0.7.0)"] +core = ["importlib_metadata (>=6)", "jaraco.collections", "jaraco.functools (>=4)", "jaraco.text (>=3.7)", "more_itertools", "more_itertools (>=8.8)", "packaging", "packaging (>=24.2)", "platformdirs (>=4.2.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test (>=5.5)", "packaging (>=24.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] +type = ["importlib_metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (>=1.12,<1.14)", "pytest-mypy"] + +[[package]] +name = "six" +version = "1.16.0" +description = "Python 2 and 3 compatibility utilities" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] + +[[package]] +name = "sniffio" +version = "1.3.1" +description = "Sniff out which async library your code is running under" +optional = false +python-versions = ">=3.7" +files = [ + {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, + {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, +] + +[[package]] +name = "soupsieve" +version = "2.6" +description = "A modern CSS selector implementation for Beautiful Soup." +optional = false +python-versions = ">=3.8" +files = [ + {file = "soupsieve-2.6-py3-none-any.whl", hash = "sha256:e72c4ff06e4fb6e4b5a9f0f55fe6e81514581fca1515028625d0f299c602ccc9"}, + {file = "soupsieve-2.6.tar.gz", hash = "sha256:e2e68417777af359ec65daac1057404a3c8a5455bb8abc36f1a9866ab1a51abb"}, +] + +[[package]] +name = "stack-data" +version = "0.6.3" +description = "Extract data from python stack frames and tracebacks for informative displays" +optional = false +python-versions = "*" +files = [ + {file = "stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695"}, + {file = "stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9"}, +] + +[package.dependencies] +asttokens = ">=2.1.0" +executing = ">=1.2.0" +pure-eval = "*" + +[package.extras] +tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] + +[[package]] +name = "terminado" +version = "0.18.1" +description = "Tornado websocket backend for the Xterm.js Javascript terminal emulator library." +optional = false +python-versions = ">=3.8" +files = [ + {file = "terminado-0.18.1-py3-none-any.whl", hash = "sha256:a4468e1b37bb318f8a86514f65814e1afc977cf29b3992a4500d9dd305dcceb0"}, + {file = "terminado-0.18.1.tar.gz", hash = "sha256:de09f2c4b85de4765f7714688fff57d3e75bad1f909b589fde880460c753fd2e"}, +] + +[package.dependencies] +ptyprocess = {version = "*", markers = "os_name != \"nt\""} +pywinpty = {version = ">=1.1.0", markers = "os_name == \"nt\""} +tornado = ">=6.1.0" + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] +test = ["pre-commit", "pytest (>=7.0)", "pytest-timeout"] +typing = ["mypy (>=1.6,<2.0)", "traitlets (>=5.11.1)"] + +[[package]] +name = "tinycss2" +version = "1.4.0" +description = "A tiny CSS parser" +optional = false +python-versions = ">=3.8" +files = [ + {file = "tinycss2-1.4.0-py3-none-any.whl", hash = "sha256:3a49cf47b7675da0b15d0c6e1df8df4ebd96e9394bb905a5775adb0d884c5289"}, + {file = "tinycss2-1.4.0.tar.gz", hash = "sha256:10c0972f6fc0fbee87c3edb76549357415e94548c1ae10ebccdea16fb404a9b7"}, +] + +[package.dependencies] +webencodings = ">=0.4" + +[package.extras] +doc = ["sphinx", "sphinx_rtd_theme"] +test = ["pytest", "ruff"] + +[[package]] +name = "tomli" +version = "2.1.0" +description = "A lil' TOML parser" +optional = false +python-versions = ">=3.8" +files = [ + {file = "tomli-2.1.0-py3-none-any.whl", hash = "sha256:a5c57c3d1c56f5ccdf89f6523458f60ef716e210fc47c4cfb188c5ba473e0391"}, + {file = "tomli-2.1.0.tar.gz", hash = "sha256:3f646cae2aec94e17d04973e4249548320197cfabdf130015d023de4b74d8ab8"}, +] + +[[package]] +name = "tomlkit" +version = "0.13.2" +description = "Style preserving TOML library" +optional = false +python-versions = ">=3.8" +files = [ + {file = "tomlkit-0.13.2-py3-none-any.whl", hash = "sha256:7a974427f6e119197f670fbbbeae7bef749a6c14e793db934baefc1b5f03efde"}, + {file = "tomlkit-0.13.2.tar.gz", hash = "sha256:fff5fe59a87295b278abd31bec92c15d9bc4a06885ab12bcea52c71119392e79"}, +] + +[[package]] +name = "tornado" +version = "6.4.1" +description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." +optional = false +python-versions = ">=3.8" +files = [ + {file = "tornado-6.4.1-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:163b0aafc8e23d8cdc3c9dfb24c5368af84a81e3364745ccb4427669bf84aec8"}, + {file = "tornado-6.4.1-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:6d5ce3437e18a2b66fbadb183c1d3364fb03f2be71299e7d10dbeeb69f4b2a14"}, + {file = "tornado-6.4.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2e20b9113cd7293f164dc46fffb13535266e713cdb87bd2d15ddb336e96cfc4"}, + {file = "tornado-6.4.1-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8ae50a504a740365267b2a8d1a90c9fbc86b780a39170feca9bcc1787ff80842"}, + {file = "tornado-6.4.1-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:613bf4ddf5c7a95509218b149b555621497a6cc0d46ac341b30bd9ec19eac7f3"}, + {file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:25486eb223babe3eed4b8aecbac33b37e3dd6d776bc730ca14e1bf93888b979f"}, + {file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:454db8a7ecfcf2ff6042dde58404164d969b6f5d58b926da15e6b23817950fc4"}, + {file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a02a08cc7a9314b006f653ce40483b9b3c12cda222d6a46d4ac63bb6c9057698"}, + {file = "tornado-6.4.1-cp38-abi3-win32.whl", hash = "sha256:d9a566c40b89757c9aa8e6f032bcdb8ca8795d7c1a9762910c722b1635c9de4d"}, + {file = "tornado-6.4.1-cp38-abi3-win_amd64.whl", hash = "sha256:b24b8982ed444378d7f21d563f4180a2de31ced9d8d84443907a0a64da2072e7"}, + {file = "tornado-6.4.1.tar.gz", hash = "sha256:92d3ab53183d8c50f8204a51e6f91d18a15d5ef261e84d452800d4ff6fc504e9"}, +] + +[[package]] +name = "traitlets" +version = "5.14.3" +description = "Traitlets Python configuration system" +optional = false +python-versions = ">=3.8" +files = [ + {file = "traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f"}, + {file = "traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7"}, +] + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] +test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0,<8.2)", "pytest-mock", "pytest-mypy-testing"] + +[[package]] +name = "types-python-dateutil" +version = "2.9.0.20241003" +description = "Typing stubs for python-dateutil" +optional = false +python-versions = ">=3.8" +files = [ + {file = "types-python-dateutil-2.9.0.20241003.tar.gz", hash = "sha256:58cb85449b2a56d6684e41aeefb4c4280631246a0da1a719bdbe6f3fb0317446"}, + {file = "types_python_dateutil-2.9.0.20241003-py3-none-any.whl", hash = "sha256:250e1d8e80e7bbc3a6c99b907762711d1a1cdd00e978ad39cb5940f6f0a87f3d"}, +] + +[[package]] +name = "typing-extensions" +version = "4.12.2" +description = "Backported and Experimental Type Hints for Python 3.8+" +optional = false +python-versions = ">=3.8" +files = [ + {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, + {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, +] + +[[package]] +name = "tzdata" +version = "2024.2" +description = "Provider of IANA time zone data" +optional = false +python-versions = ">=2" +files = [ + {file = "tzdata-2024.2-py2.py3-none-any.whl", hash = "sha256:a48093786cdcde33cad18c2555e8532f34422074448fbc874186f0abd79565cd"}, + {file = "tzdata-2024.2.tar.gz", hash = "sha256:7d85cc416e9382e69095b7bdf4afd9e3880418a2413feec7069d533d6b4e31cc"}, +] + +[[package]] +name = "uri-template" +version = "1.3.0" +description = "RFC 6570 URI Template Processor" +optional = false +python-versions = ">=3.7" +files = [ + {file = "uri-template-1.3.0.tar.gz", hash = "sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7"}, + {file = "uri_template-1.3.0-py3-none-any.whl", hash = "sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363"}, +] + +[package.extras] +dev = ["flake8", "flake8-annotations", "flake8-bandit", "flake8-bugbear", "flake8-commas", "flake8-comprehensions", "flake8-continuation", "flake8-datetimez", "flake8-docstrings", "flake8-import-order", "flake8-literal", "flake8-modern-annotations", "flake8-noqa", "flake8-pyproject", "flake8-requirements", "flake8-typechecking-import", "flake8-use-fstring", "mypy", "pep8-naming", "types-PyYAML"] + +[[package]] +name = "urllib3" +version = "2.2.3" +description = "HTTP library with thread-safe connection pooling, file post, and more." +optional = false +python-versions = ">=3.8" +files = [ + {file = "urllib3-2.2.3-py3-none-any.whl", hash = "sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac"}, + {file = "urllib3-2.2.3.tar.gz", hash = "sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9"}, +] + +[package.extras] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +h2 = ["h2 (>=4,<5)"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] + +[[package]] +name = "wcwidth" +version = "0.2.13" +description = "Measures the displayed width of unicode strings in a terminal" +optional = false +python-versions = "*" +files = [ + {file = "wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859"}, + {file = "wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5"}, +] + +[[package]] +name = "webcolors" +version = "24.11.1" +description = "A library for working with the color formats defined by HTML and CSS." +optional = false +python-versions = ">=3.9" +files = [ + {file = "webcolors-24.11.1-py3-none-any.whl", hash = "sha256:515291393b4cdf0eb19c155749a096f779f7d909f7cceea072791cb9095b92e9"}, + {file = "webcolors-24.11.1.tar.gz", hash = "sha256:ecb3d768f32202af770477b8b65f318fa4f566c22948673a977b00d589dd80f6"}, +] + +[[package]] +name = "webencodings" +version = "0.5.1" +description = "Character encoding aliases for legacy web content" +optional = false +python-versions = "*" +files = [ + {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"}, + {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"}, +] + +[[package]] +name = "websocket-client" +version = "1.8.0" +description = "WebSocket client for Python with low level API options" +optional = false +python-versions = ">=3.8" +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"}, +] + +[package.extras] +docs = ["Sphinx (>=6.0)", "myst-parser (>=2.0.0)", "sphinx-rtd-theme (>=1.1.0)"] +optional = ["python-socks", "wsaccel"] +test = ["websockets"] + +[metadata] +lock-version = "2.0" +python-versions = ">=3.10,<=3.11" +content-hash = "3981f435d0e49483655b87655d81be69307b796fa5054f04ac1a04a8e8841463" diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..5766746 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,34 @@ +[tool.poetry] +name = "pairwise-compare" +version = "0.1.0" +description = "" +authors = ["Your Name "] +license = "CC0 1.0 Universal" +readme = "README.md" + +packages = [ + { include = "comparison_tools", from = "src" }, + { include = "comparators", from = "src" }, +] + +[tool.poetry.dependencies] +python = ">=3.10,<=3.11" +minepy = "^1.2.6" +pathlib2 = "^2.3.7.post1" +pandas = "^2.2.3" +pyarrow = "^18.0.0" +numpy = "<2.0" +setuptools = ">=14.0" + + +[tool.poetry.group.dev.dependencies] +pytest = "^8.3.3" +pynvim = "^0.5.1" +ipython = "^8.29.0" +matplotlib = "^3.9.2" +pylint = "^3.3.1" +notebook = "^7.2.2" + +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api" diff --git a/src/PairwiseCompareManager.py b/src/PairwiseCompareManager.py deleted file mode 100644 index 22eff87..0000000 --- a/src/PairwiseCompareManager.py +++ /dev/null @@ -1,55 +0,0 @@ -from typing import Optional - -import pandas as pd -from Comparator import Comparator -from PairwiseCompare import PairwiseCompare - - -class PairwiseCompareManager: - - def __init__( - self, - _df: pd.DataFrame, - _different_columns: list[str], - _feat_cols: list[str], - _comparator: Comparator, - _same_columns: Optional[list[str]] = None, - _drop_cols: Optional[list[str]] = None - ): - """ - _same_columns: The values of these columns must all be the same when comparing any two instances (rows). - _different_columns: The values of these columns must all be different when comparing any two instances (rows). - """ - - if (not _same_columns and len(_different_columns) == 1): - raise ValueError("Must specify at least two different columns or at least one different column and at least one same column.") - - if len(_feat_cols) == 0: - raise ValueError("You must specify at least one feature to compare between samples") - - self._comparator = _comparator - - if len(_different_columns) >= 2 and not _same_columns: - pairwise_compare_obj = PairwiseCompare( - _df=_df, - _comparator=_comparator, - _antehoc_group_cols=_different_columns[:1], - _posthoc_group_cols=_different_columns[1:], - _feat_cols=_feat_cols, - _drop_cols=_drop_cols - ) - pairwise_compare_obj.inter_comparisons() - - elif len(_different_columns) >= 1 and len(_same_columns) >= 1: - pairwise_compare_obj = PairwiseCompare( - _df=_df, - _comparator=_comparator, - _antehoc_group_cols=_same_columns, - _posthoc_group_cols=_different_columns, - _feat_cols=_feat_cols, - _drop_cols=_drop_cols - ) - pairwise_compare_obj.intra_comparisons() - - def __call__(self): - return pd.DataFrame(self._comparator.comparisons) diff --git a/src/comparators/Comparator.py b/src/comparators/Comparator.py index fe1e5a9..f8ca65e 100644 --- a/src/comparators/Comparator.py +++ b/src/comparators/Comparator.py @@ -1,16 +1,41 @@ from abc import ABC, abstractmethod +from collections import defaultdict + +import pandas as pd class Comparator(ABC): + """ + This is a template class for how comparator modules should be structured to make comparisons. + When inheriting from this template class ensure this class's constructor is called. + """ - @abstractmethod - def save_groups(self, _cols, _drop_cols, _groups): - pass + def __init__(self): + """ + Store comparisons in self._comparisons to eventually be converted to a pandas datafram, where: + 1. Each key is a column name. + 2. The index at each position in each list corresponds to a row. + """ + + self._comparisons = defaultdict(list) + + @property + def comparisons(self): + return self._comparisons @abstractmethod - def _preprocess_data(self): + def save_groups(self, _group_cols: list[str], **_groups: dict[str, pd.DataFrame]): + """ + Save tracked column values defining comparison groups. + Tracked columns include columns used to compare groups. + """ pass @abstractmethod - def __call__(self, _group0, _group1): + def __call__(self, _group0: pd.DataFrame, _group1: pd.DataFrame): + """ + This function is intended for: + 1. Comparing the two dataframes. + 2. Saving the result in the self._comparisons data structure, which is later converted to a pandas dataframe. + """ pass diff --git a/src/comparators/MIC.py b/src/comparators/MIC.py index 2fe0af8..73f4d2a 100644 --- a/src/comparators/MIC.py +++ b/src/comparators/MIC.py @@ -2,50 +2,62 @@ from typing import Optional import pandas as pd -from Comparator import Comparator +from comparators.Comparator import Comparator from minepy import MINE class MIC(Comparator): - """Computes and stores group and Maximal Information Coefficient (MIC) data between paired groups""" + """Computes and stores group and Maximal Information Coefficient (MIC) data between paired groups.""" - def __init__(self, _comparison_name: str = "mic_e", _mine_params: Optional[dict[str, str]] = None): - self._comparisons = defaultdict(list) + def __init__( + self, + _comparison_name: str = "mic_e", + _mine_params: Optional[dict[str, str]] = None, + ): + + super().__init__() self._comparison_name = _comparison_name + # MIC params if _mine_params: self._mine_params = _mine_params else: - self._mine_params = { - "est": "mic_e" - } + self._mine_params = {"est": "mic_e"} def save_groups(self, _group_cols: list[str], **_groups: dict[str, pd.DataFrame]): - """Save column values defining comparison groups""" + + comparison_count = self._group0.shape[0] * self._group1.shape[0] for idx, col in enumerate(_group_cols): for group_name, group in _groups.items(): + if len(_group_cols) > 1: - self._comparisons[f"{col}__{group_name}"].append(group[idx]) + self._comparisons[f"{col}__{group_name}"].extend( + [group[idx]] * comparison_count + ) else: - self._comparisons[f"{col}__{group_name}"].append(group) + self._comparisons[f"{col}__{group_name}"].extend( + [group] * comparison_count + ) def _preprocess_data(self): - self._group0, self._group1 = self._group0.iloc[0].values, self._group1.iloc[0].values - - @property - def comparisons(self): - return self._comparisons + self._group0, self._group1 = self._group0.values, self._group1.values def __call__(self, _group0: pd.DataFrame, _group1: pd.DataFrame): - """Compute Comparisons between groups""" + """Compute Comparisons between groups.""" self._group0, self._group1 = _group0, _group1 self._preprocess_data() - mine = MINE(**self._mine_params) + for group0_row in range(self._group0.shape[0]): + + for group1_row in range(self._group1.shape[0]): - mine.compute_score(self._group0, self._group1) - self._comparisons[self._comparison_name].append(mine.mic()) + mine = MINE(**self._mine_params) + mine.compute_score( + self._group0[group0_row, :], self._group1[group1_row, :] + ) + self._comparisons[self._comparison_name].append(mine.mic()) + del mine diff --git a/src/comparators/PearsonsCorrelation.py b/src/comparators/PearsonsCorrelation.py new file mode 100644 index 0000000..58e5a42 --- /dev/null +++ b/src/comparators/PearsonsCorrelation.py @@ -0,0 +1,58 @@ +from collections import defaultdict +from typing import Optional + +import numpy as np +import pandas as pd +from comparators.Comparator import Comparator + + +class PearsonsCorrelation(Comparator): + """Computes and stores group and Pearsons Correlation data between paired groups.""" + + def __init__(self, _comparison_name: str = "pearsons_correlation"): + + super().__init__() + + self._comparison_name = _comparison_name + + def _preprocess_data(self): + self._group0, self._group1 = self._group0.values, self._group1.values + + def save_groups(self, _group_cols: list[str], **_groups: dict[str, pd.DataFrame]): + """Save column values defining comparison groups""" + + comparison_count = self._group0.shape[0] * self._group1.shape[0] + + for idx, col in enumerate(_group_cols): + for group_name, group in _groups.items(): + if len(_group_cols) > 1: + self._comparisons[f"{col}__{group_name}"].extend( + [group[idx]] * comparison_count + ) + else: + self._comparisons[f"{col}__{group_name}"].extend( + [group] * comparison_count + ) + + @property + def comparisons(self): + return self._comparisons + + def __call__(self, _group0: pd.DataFrame, _group1: pd.DataFrame): + + self._group0, self._group1 = _group0, _group1 + self._preprocess_data() + + group0_centered = self._group0 - self._group0.mean(axis=1, keepdims=True) + group1_centered = self._group1 - self._group1.mean(axis=1, keepdims=True) + + dot_products = np.dot(group0_centered, group1_centered.T) + + group0_norms = np.linalg.norm(group0_centered, axis=1, keepdims=True) + group1_norms = np.linalg.norm(group1_centered, axis=1, keepdims=True) + + norm_products = np.dot(group0_norms, group1_norms.T) + + correlations = (dot_products / norm_products).flatten() + + self._comparisons[self._comparison_name].extend(correlations.tolist()) diff --git a/src/comparators/ShuffledMIC.py b/src/comparators/ShuffledMIC.py index fcc4dea..2f9831f 100644 --- a/src/comparators/ShuffledMIC.py +++ b/src/comparators/ShuffledMIC.py @@ -1,10 +1,13 @@ import numpy as np -from MIC import MIC +from comparators.MIC import MIC class ShuffledMIC(MIC): + """ + Shuffle each MIC group data before comparing both groups. + """ def _preprocess_data(self): - self._group0, self._group1 = self._group0.iloc[0].values, self._group1.iloc[0].values + self._group0, self._group1 = self._group0.values, self._group1.values np.random.shuffle(self._group0) np.random.shuffle(self._group1) diff --git a/src/comparators/__init__.py b/src/comparators/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/PairwiseCompare.py b/src/comparison_tools/PairwiseCompare.py similarity index 92% rename from src/PairwiseCompare.py rename to src/comparison_tools/PairwiseCompare.py index f6e6a5d..11a9eba 100644 --- a/src/PairwiseCompare.py +++ b/src/comparison_tools/PairwiseCompare.py @@ -4,7 +4,7 @@ from typing import Optional import pandas as pd -from Comparator import Comparator +from comparators.Comparator import Comparator class PairwiseCompare: @@ -20,7 +20,7 @@ def __init__( _posthoc_group_cols: list[str], _feat_cols: list[str], _one_different_comparison: bool = False, - _drop_cols: Optional[list[str]] = None + _drop_cols: Optional[list[str]] = None, ): """ Perform Input validation and initializations. @@ -63,13 +63,17 @@ def __init__( if _df.empty: raise ValueError("DataFrame is empty") - missing_cols = (set(_antehoc_group_cols) | set(_posthoc_group_cols) | set(_feat_cols)) - set(_df.columns) + missing_cols = ( + set(_antehoc_group_cols) | set(_posthoc_group_cols) | set(_feat_cols) + ) - set(_df.columns) if missing_cols: raise ValueError(f"Missing columns {missing_cols}") if any(not pd.api.types.is_numeric_dtype(_df[col].dtype) for col in _feat_cols): - raise TypeError("At least one of the feature columns is not a numerical data type.") + raise TypeError( + "At least one of the feature columns is not a numerical data type." + ) if _df.isna().any().any(): warnings.warn("DataFrame contains NaNs") @@ -81,7 +85,6 @@ def __init__( self.__is_iterable_with_strings(_drop_cols) self.__drop_cols = _drop_cols - self.__df = _df self.__comparator = _comparator self.__feat_cols = _feat_cols @@ -103,17 +106,10 @@ def __init__( _group_cols=self.__posthoc_group_cols, ) - print(self.__antehoc_group_cols) - print(self.__posthoc_group_cols) - print(self.__filtered_antehoc_group_cols) - print(self.__filtered_posthoc_group_cols) - print(type(self.__filtered_posthoc_group_cols)) - def __warn_empty_comparisons(self, _comparison_type_name): warnings.warn(f"{_comparison_type_name} were empty", UserWarning) - def __is_iterable_with_strings(self, _data_structure): prefix_msg = "Expected an Iterable of Strings." @@ -128,16 +124,13 @@ def __is_iterable_with_strings(self, _data_structure): if any(not isinstance(element, str) for element in _data_structure): raise TypeError(f"{prefix_msg} Data in Iterable is not of type String.") - def __get_group_fields(self, _group_cols): """Get group fields after removing dropped columns.""" return [ - group_col for group_col in _group_cols - if group_col not in self.__drop_cols + group_col for group_col in _group_cols if group_col not in self.__drop_cols ] - def __contains_match(self, _groups): """Check if the same features between both groups are the same value.""" @@ -152,7 +145,6 @@ def __contains_match(self, _groups): return False - def inter_comparisons(self): """ Computes comparisons between two pandas rows using both post hoc and ante groups. @@ -211,20 +203,20 @@ def inter_comparisons(self): ppair0 = (ppair0,) ppair1 = (ppair1,) - self.__comparator(group0df.get_group(ppair0), group1df.get_group(ppair1)) + self.__comparator( + group0df.get_group(ppair0), group1df.get_group(ppair1) + ) self.__comparator.save_groups( self.__antehoc_group_cols, - **dict(zip(self.__antehoc_group_names, apair)) + **dict(zip(self.__antehoc_group_names, apair)), ) self.__comparator.save_groups( self.__posthoc_group_cols, - **dict(zip(self.__posthoc_group_names, ppair)) + **dict(zip(self.__posthoc_group_names, ppair)), ) - - def intra_comparisons(self): """ Computes comparisons between two pandas rows using both post hoc and ante groups. @@ -272,10 +264,10 @@ def intra_comparisons(self): self.__comparator.save_groups( self.__filtered_antehoc_group_cols, - **dict(zip(self.__antehoc_group_names, (agroup, agroup))) + **dict(zip(self.__antehoc_group_names, (agroup, agroup))), ) self.__comparator.save_groups( self.__filtered_posthoc_group_cols, - **dict(zip(self.__posthoc_group_names, ppair)) + **dict(zip(self.__posthoc_group_names, ppair)), ) diff --git a/src/comparison_tools/PairwiseCompareManager.py b/src/comparison_tools/PairwiseCompareManager.py new file mode 100644 index 0000000..1f595ec --- /dev/null +++ b/src/comparison_tools/PairwiseCompareManager.py @@ -0,0 +1,89 @@ +from typing import Optional + +import pandas as pd +from comparators.Comparator import Comparator + +from comparison_tools.PairwiseCompare import PairwiseCompare + + +class PairwiseCompareManager: + """ + Allows the user to make comparisons between groups in a pandas dataframe as specified by the columns defining the comparison groups. + See the function parameter descriptions of the constructor, and the README for more info. + """ + + def __init__( + self, + _df: pd.DataFrame, + _different_columns: list[str], + _feat_cols: list[str], + _comparator: Comparator, + _same_columns: Optional[list[str]] = None, + _drop_cols: Optional[list[str]] = None, + ): + """ + _df: Data to compare, which must contain the specified columns passed as arguments. All rows in this dataframe will be compared at least once. + _different_columns: The values of these columns must all be different when comparing any two groups. + _feat_cols: Feature columns to be used in comparisons from _df. + _comparator: The module to use for comparing data. + _same_columns: The values of these columns will all be the same when comparing any two groups. + _drop_cols: Columns in the final output datarame, which are excluded. + """ + + # Ensure no duplicate columns + _feat_cols = list(set(_feat_cols)) + + if _same_columns: + _same_columns = list(set(_same_columns)) + + if _different_columns: + _different_columns = list(set(_different_columns)) + + if _drop_cols: + _drop_cols = list(set(_drop_cols)) + + if _same_columns and _different_columns: + if len(set(_same_columns) & set(_different_columns)) > 0: + raise ValueError( + "_same_columns and _different_columns cannot have any columns in common." + ) + + if not _same_columns and len(_different_columns) == 1: + raise ValueError( + "Must specify at least two different columns or at least one different column and at least one same column." + ) + + if len(_feat_cols) == 0: + raise ValueError( + "You must specify at least one feature to compare between samples" + ) + + self._comparator = _comparator + + if len(_different_columns) >= 2 and not _same_columns: + pairwise_compare_obj = PairwiseCompare( + _df=_df, + _comparator=_comparator, + _antehoc_group_cols=_different_columns[:1], + _posthoc_group_cols=_different_columns[1:], + _feat_cols=_feat_cols, + _drop_cols=_drop_cols, + ) + + pairwise_compare_obj.inter_comparisons() + + elif len(_different_columns) >= 1 and len(_same_columns) >= 1: + pairwise_compare_obj = PairwiseCompare( + _df=_df, + _comparator=_comparator, + _antehoc_group_cols=_same_columns, + _posthoc_group_cols=_different_columns, + _feat_cols=_feat_cols, + _drop_cols=_drop_cols, + ) + + pairwise_compare_obj.intra_comparisons() + + def __call__(self): + """Final comparisons dataframe.""" + return pd.DataFrame(self._comparator.comparisons) diff --git a/src/comparison_tools/__init__.py b/src/comparison_tools/__init__.py new file mode 100644 index 0000000..e69de29 From a70f2266f7e89684b1f0d13f1ac545b6a6e11260 Mon Sep 17 00:00:00 2001 From: Cameron Mattson Date: Wed, 20 Nov 2024 14:56:24 -0700 Subject: [PATCH 05/16] Added pytests for fault injection and input validation. --- ...st_correctness_pairwise_compare_manager.py | 178 ++++++++++++++++++ .../test_fault_injections_compare_manager.py | 67 +++++++ 2 files changed, 245 insertions(+) create mode 100644 tests/test_correctness_pairwise_compare_manager.py create mode 100644 tests/test_fault_injections_compare_manager.py diff --git a/tests/test_correctness_pairwise_compare_manager.py b/tests/test_correctness_pairwise_compare_manager.py new file mode 100644 index 0000000..faa64ca --- /dev/null +++ b/tests/test_correctness_pairwise_compare_manager.py @@ -0,0 +1,178 @@ +import pathlib +import sys + +import pandas as pd +import pytest + +from comparators.MIC import MIC +from comparators.PearsonsCorrelation import PearsonsCorrelation +from comparison_tools.PairwiseCompareManager import PairwiseCompareManager + +# Paths to original nuclear speckle data +data_dir = pathlib.Path( + "data/nf1_schwann_cell_painting_data/3.processing_features/data/bulk_profiles" +).resolve(strict=True) + +plate4df = pd.read_parquet(data_dir / "Plate_4_bulk_feature_selected.parquet") + +plate4df["Metadata_siRNA"] = plate4df["Metadata_siRNA"].fillna("No siRNA") + +feat_cols = plate4df.columns[~plate4df.columns.str.contains("Metadata")].tolist() + + +# Compute comparison outputs +@pytest.fixture +def test_data(request): + + case = request.param + + comparer = PairwiseCompareManager( + _df=plate4df.copy(), + _comparator=case["_comparator"], + _same_columns=case["_same_columns"], + _different_columns=case["_different_columns"], + _feat_cols=feat_cols, + _drop_cols=case["_drop_cols"], + ) + + case["_comparer"] = comparer() + + return case + + +# Specify test cases +@pytest.mark.parametrize( + "test_data", + [ + ( + { + "_comparator": PearsonsCorrelation(), + "_same_columns": ["Metadata_Concentration"], + "_different_columns": ["Metadata_siRNA", "Metadata_Well"], + "_drop_cols": ["Metadata_Concentration", "Metadata_Well"], + } + ), + ( + { + "_comparator": PearsonsCorrelation(), + "_same_columns": None, + "_different_columns": ["Metadata_siRNA", "Metadata_Well"], + "_drop_cols": None, + } + ), + ( + { + "_comparator": PearsonsCorrelation(), + "_same_columns": ["Metadata_Concentration"], + "_different_columns": ["Metadata_siRNA"], + "_drop_cols": ["Metadata_Concentration"], + } + ), + ( + { + "_comparator": PearsonsCorrelation(), + "_same_columns": ["Metadata_Concentration"], + "_different_columns": ["Metadata_siRNA"], + "_drop_cols": None, + } + ), + ( + { + "_comparator": MIC(), + "_same_columns": ["Metadata_Concentration"], + "_different_columns": ["Metadata_siRNA", "Metadata_Well"], + "_drop_cols": ["Metadata_Concentration", "Metadata_Well"], + } + ), + ( + { + "_comparator": MIC(), + "_same_columns": None, + "_different_columns": ["Metadata_siRNA", "Metadata_Well"], + "_drop_cols": None, + } + ), + ( + { + "_comparator": MIC(), + "_same_columns": ["Metadata_Concentration"], + "_different_columns": ["Metadata_siRNA"], + "_drop_cols": ["Metadata_Concentration"], + } + ), + ( + { + "_comparator": MIC(), + "_same_columns": ["Metadata_Concentration"], + "_different_columns": ["Metadata_siRNA"], + "_drop_cols": None, + } + ), + ], + indirect=True, +) +def test_dataframe_shape_correct(test_data: dict): + """Tests if the output dataframe contains the correct number of rows and columns.""" + + total_number_of_comparisons = 0 + + def number_of_comparisons(_df: pd.DataFrame): + """Calculate the number of expected comparisons.""" + + number_of_comparisons = 0 + + numberdf_samples = _df.shape[0] + + for first_row in range(numberdf_samples - 1): + for second_row in range(first_row + 1, numberdf_samples): + groupsdf = _df.iloc[[first_row, second_row]].copy() + if ( + not groupsdf[test_data["_different_columns"]] + .apply(lambda col: col.duplicated(keep=False)) + .any() + .any() + ): + number_of_comparisons += 1 + + return number_of_comparisons + + # Calculate the expected number of comparisons if _same_columns is specified + if test_data["_same_columns"]: + for _, urow in plate4df.drop_duplicates( + subset=test_data["_same_columns"] + ).iterrows(): + same_df = plate4df[ + ( + plate4df[test_data["_same_columns"]] + == urow[test_data["_same_columns"]] + ).all(axis=1) + ] + total_number_of_comparisons += number_of_comparisons(same_df) + + else: + total_number_of_comparisons += number_of_comparisons(plate4df) + + assert test_data["_comparer"].shape[0] == total_number_of_comparisons + + if not test_data["_drop_cols"]: + number_drop_cols = 0 + + else: + number_drop_cols = len(test_data["_drop_cols"]) + + if not test_data["_same_columns"]: + number_same_columns = 0 + + else: + number_same_columns = len(test_data["_same_columns"]) + + # There are 2 of each column, but only one comparison column + assert ( + 2 + * ( + number_same_columns + + len(test_data["_different_columns"]) + - number_drop_cols + ) + == test_data["_comparer"].shape[1] - 1 + ) diff --git a/tests/test_fault_injections_compare_manager.py b/tests/test_fault_injections_compare_manager.py new file mode 100644 index 0000000..252e339 --- /dev/null +++ b/tests/test_fault_injections_compare_manager.py @@ -0,0 +1,67 @@ +import pathlib +import sys + +import pandas as pd +import pytest + +from comparators.MIC import MIC +from comparators.PearsonsCorrelation import PearsonsCorrelation +from comparison_tools.PairwiseCompareManager import PairwiseCompareManager + +# Paths to original nuclear speckle data +data_dir = pathlib.Path( + "data/nf1_schwann_cell_painting_data/3.processing_features/data/bulk_profiles" +).resolve(strict=True) + +plate4df = pd.read_parquet(data_dir / "Plate_4_bulk_feature_selected.parquet") + +plate4df["Metadata_siRNA"] = plate4df["Metadata_siRNA"].fillna("No siRNA") + +feat_cols = plate4df.columns[~plate4df.columns.str.contains("Metadata")].tolist() + + +# Specify tests cases +@pytest.mark.parametrize( + "case", + [ + { + "_comparator": PearsonsCorrelation(), + "_same_columns": ["Metadata_Concentration"], + "_different_columns": None, + "_feat_cols": feat_cols, + "_drop_cols": ["Metadata_Concentration", "Metadata_Well"], + }, + { + "_comparator": PearsonsCorrelation(), + "_same_columns": None, + "_different_columns": ["Metadata_siRNA"], + "_feat_cols": feat_cols, + "_drop_cols": None, + }, + { + "_comparator": PearsonsCorrelation(), + "_same_columns": ["Metadata_Concentration"], + "_different_columns": ["Metadata_siRNA"], + "_feat_cols": None, + "_drop_cols": None, + }, + { + "_comparator": PearsonsCorrelation(), + "_same_columns": ["Metadata_Concentration"], + "_different_columns": ["Metadata_siRNA", "Metadata_Concentration"], + "_feat_cols": feat_cols, + "_drop_cols": None, + }, + ], +) +def test_dataframe_shape_correct(case): + # Pass the test if an exception is raised + with pytest.raises(Exception): + comparer = PairwiseCompareManager( + _df=plate4df.copy(), + _comparator=case["_comparator"], + _same_columns=case["_same_columns"], + _different_columns=case["_different_columns"], + _feat_cols=case["_feat_cols"], + _drop_cols=case["_drop_cols"], + ) From cfd278b60a61fcba4a3b37b7be6a9532f0083f6b Mon Sep 17 00:00:00 2001 From: Cameron Mattson Date: Wed, 20 Nov 2024 16:16:25 -0700 Subject: [PATCH 06/16] Removed MIC module from tool due to lack of compatability. --- poetry.lock | 110 +++++++++--------- pyproject.toml | 3 +- src/comparators/MIC.py | 63 ---------- src/comparators/ShuffledMIC.py | 13 --- ...st_correctness_pairwise_compare_manager.py | 33 ------ .../test_fault_injections_compare_manager.py | 1 - 6 files changed, 59 insertions(+), 164 deletions(-) delete mode 100644 src/comparators/MIC.py delete mode 100644 src/comparators/ShuffledMIC.py diff --git a/poetry.lock b/poetry.lock index d1eedee..67cc940 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1602,19 +1602,6 @@ files = [ {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, ] -[[package]] -name = "minepy" -version = "1.2.6" -description = "minepy - Maximal Information-based Nonparametric Exploration" -optional = false -python-versions = "*" -files = [ - {file = "minepy-1.2.6.tar.gz", hash = "sha256:7455c5d2edee63b660593343d2876bf5e0a2e41cfd74a29d9e42fd00022f39f9"}, -] - -[package.dependencies] -numpy = ">=1.3.0" - [[package]] name = "mistune" version = "3.0.2" @@ -1832,47 +1819,66 @@ test = ["pytest", "pytest-console-scripts", "pytest-jupyter", "pytest-tornasync" [[package]] name = "numpy" -version = "1.26.4" +version = "2.1.3" description = "Fundamental package for array computing in Python" optional = false -python-versions = ">=3.9" +python-versions = ">=3.10" files = [ - {file = "numpy-1.26.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0"}, - {file = "numpy-1.26.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a"}, - {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4"}, - {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f"}, - {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a"}, - {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2"}, - {file = "numpy-1.26.4-cp310-cp310-win32.whl", hash = "sha256:bfe25acf8b437eb2a8b2d49d443800a5f18508cd811fea3181723922a8a82b07"}, - {file = "numpy-1.26.4-cp310-cp310-win_amd64.whl", hash = "sha256:b97fe8060236edf3662adfc2c633f56a08ae30560c56310562cb4f95500022d5"}, - {file = "numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71"}, - {file = "numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef"}, - {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e"}, - {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5"}, - {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a"}, - {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a"}, - {file = "numpy-1.26.4-cp311-cp311-win32.whl", hash = "sha256:1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20"}, - {file = "numpy-1.26.4-cp311-cp311-win_amd64.whl", hash = "sha256:cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2"}, - {file = "numpy-1.26.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218"}, - {file = "numpy-1.26.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b"}, - {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b"}, - {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed"}, - {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a"}, - {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0"}, - {file = "numpy-1.26.4-cp312-cp312-win32.whl", hash = "sha256:50193e430acfc1346175fcbdaa28ffec49947a06918b7b92130744e81e640110"}, - {file = "numpy-1.26.4-cp312-cp312-win_amd64.whl", hash = "sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818"}, - {file = "numpy-1.26.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7349ab0fa0c429c82442a27a9673fc802ffdb7c7775fad780226cb234965e53c"}, - {file = "numpy-1.26.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:52b8b60467cd7dd1e9ed082188b4e6bb35aa5cdd01777621a1658910745b90be"}, - {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5241e0a80d808d70546c697135da2c613f30e28251ff8307eb72ba696945764"}, - {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3"}, - {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:679b0076f67ecc0138fd2ede3a8fd196dddc2ad3254069bcb9faf9a79b1cebcd"}, - {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:47711010ad8555514b434df65f7d7b076bb8261df1ca9bb78f53d3b2db02e95c"}, - {file = "numpy-1.26.4-cp39-cp39-win32.whl", hash = "sha256:a354325ee03388678242a4d7ebcd08b5c727033fcff3b2f536aea978e15ee9e6"}, - {file = "numpy-1.26.4-cp39-cp39-win_amd64.whl", hash = "sha256:3373d5d70a5fe74a2c1bb6d2cfd9609ecf686d47a2d7b1d37a8f3b6bf6003aea"}, - {file = "numpy-1.26.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:afedb719a9dcfc7eaf2287b839d8198e06dcd4cb5d276a3df279231138e83d30"}, - {file = "numpy-1.26.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95a7476c59002f2f6c590b9b7b998306fba6a5aa646b1e22ddfeaf8f78c3a29c"}, - {file = "numpy-1.26.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7e50d0a0cc3189f9cb0aeb3a6a6af18c16f59f004b866cd2be1c14b36134a4a0"}, - {file = "numpy-1.26.4.tar.gz", hash = "sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010"}, + {file = "numpy-2.1.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c894b4305373b9c5576d7a12b473702afdf48ce5369c074ba304cc5ad8730dff"}, + {file = "numpy-2.1.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b47fbb433d3260adcd51eb54f92a2ffbc90a4595f8970ee00e064c644ac788f5"}, + {file = "numpy-2.1.3-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:825656d0743699c529c5943554d223c021ff0494ff1442152ce887ef4f7561a1"}, + {file = "numpy-2.1.3-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:6a4825252fcc430a182ac4dee5a505053d262c807f8a924603d411f6718b88fd"}, + {file = "numpy-2.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e711e02f49e176a01d0349d82cb5f05ba4db7d5e7e0defd026328e5cfb3226d3"}, + {file = "numpy-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78574ac2d1a4a02421f25da9559850d59457bac82f2b8d7a44fe83a64f770098"}, + {file = "numpy-2.1.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c7662f0e3673fe4e832fe07b65c50342ea27d989f92c80355658c7f888fcc83c"}, + {file = "numpy-2.1.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:fa2d1337dc61c8dc417fbccf20f6d1e139896a30721b7f1e832b2bb6ef4eb6c4"}, + {file = "numpy-2.1.3-cp310-cp310-win32.whl", hash = "sha256:72dcc4a35a8515d83e76b58fdf8113a5c969ccd505c8a946759b24e3182d1f23"}, + {file = "numpy-2.1.3-cp310-cp310-win_amd64.whl", hash = "sha256:ecc76a9ba2911d8d37ac01de72834d8849e55473457558e12995f4cd53e778e0"}, + {file = "numpy-2.1.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4d1167c53b93f1f5d8a139a742b3c6f4d429b54e74e6b57d0eff40045187b15d"}, + {file = "numpy-2.1.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c80e4a09b3d95b4e1cac08643f1152fa71a0a821a2d4277334c88d54b2219a41"}, + {file = "numpy-2.1.3-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:576a1c1d25e9e02ed7fa5477f30a127fe56debd53b8d2c89d5578f9857d03ca9"}, + {file = "numpy-2.1.3-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:973faafebaae4c0aaa1a1ca1ce02434554d67e628b8d805e61f874b84e136b09"}, + {file = "numpy-2.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:762479be47a4863e261a840e8e01608d124ee1361e48b96916f38b119cfda04a"}, + {file = "numpy-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc6f24b3d1ecc1eebfbf5d6051faa49af40b03be1aaa781ebdadcbc090b4539b"}, + {file = "numpy-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:17ee83a1f4fef3c94d16dc1802b998668b5419362c8a4f4e8a491de1b41cc3ee"}, + {file = "numpy-2.1.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:15cb89f39fa6d0bdfb600ea24b250e5f1a3df23f901f51c8debaa6a5d122b2f0"}, + {file = "numpy-2.1.3-cp311-cp311-win32.whl", hash = "sha256:d9beb777a78c331580705326d2367488d5bc473b49a9bc3036c154832520aca9"}, + {file = "numpy-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:d89dd2b6da69c4fff5e39c28a382199ddedc3a5be5390115608345dec660b9e2"}, + {file = "numpy-2.1.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f55ba01150f52b1027829b50d70ef1dafd9821ea82905b63936668403c3b471e"}, + {file = "numpy-2.1.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:13138eadd4f4da03074851a698ffa7e405f41a0845a6b1ad135b81596e4e9958"}, + {file = "numpy-2.1.3-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:a6b46587b14b888e95e4a24d7b13ae91fa22386c199ee7b418f449032b2fa3b8"}, + {file = "numpy-2.1.3-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:0fa14563cc46422e99daef53d725d0c326e99e468a9320a240affffe87852564"}, + {file = "numpy-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8637dcd2caa676e475503d1f8fdb327bc495554e10838019651b76d17b98e512"}, + {file = "numpy-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2312b2aa89e1f43ecea6da6ea9a810d06aae08321609d8dc0d0eda6d946a541b"}, + {file = "numpy-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a38c19106902bb19351b83802531fea19dee18e5b37b36454f27f11ff956f7fc"}, + {file = "numpy-2.1.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:02135ade8b8a84011cbb67dc44e07c58f28575cf9ecf8ab304e51c05528c19f0"}, + {file = "numpy-2.1.3-cp312-cp312-win32.whl", hash = "sha256:e6988e90fcf617da2b5c78902fe8e668361b43b4fe26dbf2d7b0f8034d4cafb9"}, + {file = "numpy-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:0d30c543f02e84e92c4b1f415b7c6b5326cbe45ee7882b6b77db7195fb971e3a"}, + {file = "numpy-2.1.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:96fe52fcdb9345b7cd82ecd34547fca4321f7656d500eca497eb7ea5a926692f"}, + {file = "numpy-2.1.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f653490b33e9c3a4c1c01d41bc2aef08f9475af51146e4a7710c450cf9761598"}, + {file = "numpy-2.1.3-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:dc258a761a16daa791081d026f0ed4399b582712e6fc887a95af09df10c5ca57"}, + {file = "numpy-2.1.3-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:016d0f6f5e77b0f0d45d77387ffa4bb89816b57c835580c3ce8e099ef830befe"}, + {file = "numpy-2.1.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c181ba05ce8299c7aa3125c27b9c2167bca4a4445b7ce73d5febc411ca692e43"}, + {file = "numpy-2.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5641516794ca9e5f8a4d17bb45446998c6554704d888f86df9b200e66bdcce56"}, + {file = "numpy-2.1.3-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ea4dedd6e394a9c180b33c2c872b92f7ce0f8e7ad93e9585312b0c5a04777a4a"}, + {file = "numpy-2.1.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b0df3635b9c8ef48bd3be5f862cf71b0a4716fa0e702155c45067c6b711ddcef"}, + {file = "numpy-2.1.3-cp313-cp313-win32.whl", hash = "sha256:50ca6aba6e163363f132b5c101ba078b8cbd3fa92c7865fd7d4d62d9779ac29f"}, + {file = "numpy-2.1.3-cp313-cp313-win_amd64.whl", hash = "sha256:747641635d3d44bcb380d950679462fae44f54b131be347d5ec2bce47d3df9ed"}, + {file = "numpy-2.1.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:996bb9399059c5b82f76b53ff8bb686069c05acc94656bb259b1d63d04a9506f"}, + {file = "numpy-2.1.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:45966d859916ad02b779706bb43b954281db43e185015df6eb3323120188f9e4"}, + {file = "numpy-2.1.3-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:baed7e8d7481bfe0874b566850cb0b85243e982388b7b23348c6db2ee2b2ae8e"}, + {file = "numpy-2.1.3-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:a9f7f672a3388133335589cfca93ed468509cb7b93ba3105fce780d04a6576a0"}, + {file = "numpy-2.1.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7aac50327da5d208db2eec22eb11e491e3fe13d22653dce51b0f4109101b408"}, + {file = "numpy-2.1.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4394bc0dbd074b7f9b52024832d16e019decebf86caf909d94f6b3f77a8ee3b6"}, + {file = "numpy-2.1.3-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:50d18c4358a0a8a53f12a8ba9d772ab2d460321e6a93d6064fc22443d189853f"}, + {file = "numpy-2.1.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:14e253bd43fc6b37af4921b10f6add6925878a42a0c5fe83daee390bca80bc17"}, + {file = "numpy-2.1.3-cp313-cp313t-win32.whl", hash = "sha256:08788d27a5fd867a663f6fc753fd7c3ad7e92747efc73c53bca2f19f8bc06f48"}, + {file = "numpy-2.1.3-cp313-cp313t-win_amd64.whl", hash = "sha256:2564fbdf2b99b3f815f2107c1bbc93e2de8ee655a69c261363a1172a79a257d4"}, + {file = "numpy-2.1.3-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:4f2015dfe437dfebbfce7c85c7b53d81ba49e71ba7eadbf1df40c915af75979f"}, + {file = "numpy-2.1.3-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:3522b0dfe983a575e6a9ab3a4a4dfe156c3e428468ff08ce582b9bb6bd1d71d4"}, + {file = "numpy-2.1.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c006b607a865b07cd981ccb218a04fc86b600411d83d6fc261357f1c0966755d"}, + {file = "numpy-2.1.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:e14e26956e6f1696070788252dcdff11b4aca4c3e8bd166e0df1bb8f315a67cb"}, + {file = "numpy-2.1.3.tar.gz", hash = "sha256:aa08e04e08aaf974d4458def539dece0d28146d866a39da5639596f4921fd761"}, ] [[package]] @@ -3126,4 +3132,4 @@ test = ["websockets"] [metadata] lock-version = "2.0" python-versions = ">=3.10,<=3.11" -content-hash = "3981f435d0e49483655b87655d81be69307b796fa5054f04ac1a04a8e8841463" +content-hash = "76f5c92854154a1603f7ea72947f9c97f9d8a9461695c10d9a877e38f4111fa6" diff --git a/pyproject.toml b/pyproject.toml index 5766746..4cfba16 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -13,12 +13,11 @@ packages = [ [tool.poetry.dependencies] python = ">=3.10,<=3.11" -minepy = "^1.2.6" pathlib2 = "^2.3.7.post1" pandas = "^2.2.3" pyarrow = "^18.0.0" -numpy = "<2.0" setuptools = ">=14.0" +numpy = "^2.1.3" [tool.poetry.group.dev.dependencies] diff --git a/src/comparators/MIC.py b/src/comparators/MIC.py deleted file mode 100644 index 73f4d2a..0000000 --- a/src/comparators/MIC.py +++ /dev/null @@ -1,63 +0,0 @@ -from collections import defaultdict -from typing import Optional - -import pandas as pd -from comparators.Comparator import Comparator -from minepy import MINE - - -class MIC(Comparator): - """Computes and stores group and Maximal Information Coefficient (MIC) data between paired groups.""" - - def __init__( - self, - _comparison_name: str = "mic_e", - _mine_params: Optional[dict[str, str]] = None, - ): - - super().__init__() - - self._comparison_name = _comparison_name - - # MIC params - if _mine_params: - self._mine_params = _mine_params - - else: - self._mine_params = {"est": "mic_e"} - - def save_groups(self, _group_cols: list[str], **_groups: dict[str, pd.DataFrame]): - - comparison_count = self._group0.shape[0] * self._group1.shape[0] - - for idx, col in enumerate(_group_cols): - for group_name, group in _groups.items(): - - if len(_group_cols) > 1: - self._comparisons[f"{col}__{group_name}"].extend( - [group[idx]] * comparison_count - ) - else: - self._comparisons[f"{col}__{group_name}"].extend( - [group] * comparison_count - ) - - def _preprocess_data(self): - self._group0, self._group1 = self._group0.values, self._group1.values - - def __call__(self, _group0: pd.DataFrame, _group1: pd.DataFrame): - """Compute Comparisons between groups.""" - - self._group0, self._group1 = _group0, _group1 - self._preprocess_data() - - for group0_row in range(self._group0.shape[0]): - - for group1_row in range(self._group1.shape[0]): - - mine = MINE(**self._mine_params) - mine.compute_score( - self._group0[group0_row, :], self._group1[group1_row, :] - ) - self._comparisons[self._comparison_name].append(mine.mic()) - del mine diff --git a/src/comparators/ShuffledMIC.py b/src/comparators/ShuffledMIC.py deleted file mode 100644 index 2f9831f..0000000 --- a/src/comparators/ShuffledMIC.py +++ /dev/null @@ -1,13 +0,0 @@ -import numpy as np -from comparators.MIC import MIC - - -class ShuffledMIC(MIC): - """ - Shuffle each MIC group data before comparing both groups. - """ - - def _preprocess_data(self): - self._group0, self._group1 = self._group0.values, self._group1.values - np.random.shuffle(self._group0) - np.random.shuffle(self._group1) diff --git a/tests/test_correctness_pairwise_compare_manager.py b/tests/test_correctness_pairwise_compare_manager.py index faa64ca..7f7dab8 100644 --- a/tests/test_correctness_pairwise_compare_manager.py +++ b/tests/test_correctness_pairwise_compare_manager.py @@ -4,7 +4,6 @@ import pandas as pd import pytest -from comparators.MIC import MIC from comparators.PearsonsCorrelation import PearsonsCorrelation from comparison_tools.PairwiseCompareManager import PairwiseCompareManager @@ -76,38 +75,6 @@ def test_data(request): "_drop_cols": None, } ), - ( - { - "_comparator": MIC(), - "_same_columns": ["Metadata_Concentration"], - "_different_columns": ["Metadata_siRNA", "Metadata_Well"], - "_drop_cols": ["Metadata_Concentration", "Metadata_Well"], - } - ), - ( - { - "_comparator": MIC(), - "_same_columns": None, - "_different_columns": ["Metadata_siRNA", "Metadata_Well"], - "_drop_cols": None, - } - ), - ( - { - "_comparator": MIC(), - "_same_columns": ["Metadata_Concentration"], - "_different_columns": ["Metadata_siRNA"], - "_drop_cols": ["Metadata_Concentration"], - } - ), - ( - { - "_comparator": MIC(), - "_same_columns": ["Metadata_Concentration"], - "_different_columns": ["Metadata_siRNA"], - "_drop_cols": None, - } - ), ], indirect=True, ) diff --git a/tests/test_fault_injections_compare_manager.py b/tests/test_fault_injections_compare_manager.py index 252e339..e4eefb3 100644 --- a/tests/test_fault_injections_compare_manager.py +++ b/tests/test_fault_injections_compare_manager.py @@ -4,7 +4,6 @@ import pandas as pd import pytest -from comparators.MIC import MIC from comparators.PearsonsCorrelation import PearsonsCorrelation from comparison_tools.PairwiseCompareManager import PairwiseCompareManager From 6084d4ea60d8c676d50a1179c4264282f553c266 Mon Sep 17 00:00:00 2001 From: Cameron Mattson <92554334+MattsonCam@users.noreply.github.com> Date: Tue, 19 Nov 2024 20:46:20 +0000 Subject: [PATCH 07/16] Setup github actions for testing This is the basic setup of github actions to run pytest whenever merging, or on pull_request. --- .github/workflows/python-app.yml | 44 ++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 .github/workflows/python-app.yml diff --git a/.github/workflows/python-app.yml b/.github/workflows/python-app.yml new file mode 100644 index 0000000..7ca2c12 --- /dev/null +++ b/.github/workflows/python-app.yml @@ -0,0 +1,44 @@ +# This workflow will install Python dependencies, run tests and lint with a single version of Python +# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python + +# This workflow will install Python dependencies using Poetry and run tests with pytest on all supported Python versions + +name: Python application + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +permissions: + contents: read + +jobs: + build: + + runs-on: ubuntu-latest + + strategy: + matrix: + python-version: ["3.10", "3.11"] + steps: + - uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v3 + with: + python-version: ${{ matrix.python-version }} + + - name: Install Poetry + run: | + curl -sSL https://install.python-poetry.org | python3 - + export PATH="$HOME/.local/bin:$PATH" + + - name: Install dependencies with Poetry + run: | + poetry install --no-interaction + + - name: Test with pytest + run: | + poetry run pytest From 9bf890efa89c7da794c7d68e9c223427276b0ca8 Mon Sep 17 00:00:00 2001 From: Cameron Mattson Date: Wed, 20 Nov 2024 14:29:32 -0700 Subject: [PATCH 08/16] Updated github actions workflow using pr comments. --- .github/workflows/python-app.yml | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/.github/workflows/python-app.yml b/.github/workflows/python-app.yml index 7ca2c12..e4452b5 100644 --- a/.github/workflows/python-app.yml +++ b/.github/workflows/python-app.yml @@ -1,9 +1,4 @@ -# This workflow will install Python dependencies, run tests and lint with a single version of Python -# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python - -# This workflow will install Python dependencies using Poetry and run tests with pytest on all supported Python versions - -name: Python application +name: Test Pairwise Compare on: push: @@ -11,28 +6,28 @@ on: pull_request: branches: [ "main" ] -permissions: - contents: read - jobs: - build: + run-tests: runs-on: ubuntu-latest + strategy: matrix: python-version: ["3.10", "3.11"] + + steps: - uses: actions/checkout@v4 - name: Set up Python - uses: actions/setup-python@v3 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install Poetry run: | - curl -sSL https://install.python-poetry.org | python3 - + python -m pip install --user poetry export PATH="$HOME/.local/bin:$PATH" - name: Install dependencies with Poetry From a18b64cdc9af8dd6a858c3c3606e3e5125b84d12 Mon Sep 17 00:00:00 2001 From: Cameron Mattson Date: Wed, 20 Nov 2024 16:39:35 -0700 Subject: [PATCH 09/16] Specified working directory for pytest testing with github actions. --- .github/workflows/python-app.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/python-app.yml b/.github/workflows/python-app.yml index e4452b5..c8e22d8 100644 --- a/.github/workflows/python-app.yml +++ b/.github/workflows/python-app.yml @@ -37,3 +37,4 @@ jobs: - name: Test with pytest run: | poetry run pytest + working-directory: ${{ github.workspace }} From 923eba72ab12ef5ee8d820f4fc4618b8ba2c246c Mon Sep 17 00:00:00 2001 From: Cameron Mattson Date: Wed, 20 Nov 2024 16:46:41 -0700 Subject: [PATCH 10/16] Updated README title name. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c029a0c..c878769 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# pairwise_compare +# Pairwise Compare This tool allows the user to compare groups of data specified in a tidy-wide pandas dataframe with ease. In this repo the capabilities of the PairwiseCompareManger are shown through an example using the nuclear speckle data (`example_pairwise_comparisons.ipynb`). Although, most of the development efforts can be found in the `src` folder. From 3c89582f1ca24cb2a1939797943fc283b81848fa Mon Sep 17 00:00:00 2001 From: Cameron Mattson Date: Wed, 20 Nov 2024 16:52:22 -0700 Subject: [PATCH 11/16] Updated comment in testing code. --- tests/test_correctness_pairwise_compare_manager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_correctness_pairwise_compare_manager.py b/tests/test_correctness_pairwise_compare_manager.py index 7f7dab8..8a10cb7 100644 --- a/tests/test_correctness_pairwise_compare_manager.py +++ b/tests/test_correctness_pairwise_compare_manager.py @@ -19,7 +19,7 @@ feat_cols = plate4df.columns[~plate4df.columns.str.contains("Metadata")].tolist() -# Compute comparison outputs +# Compute comparison outputs with the PairwiseCompareManager @pytest.fixture def test_data(request): From 702acbe87ea033db001a7cf9a71d5e201fce3638 Mon Sep 17 00:00:00 2001 From: Cameron Mattson Date: Wed, 20 Nov 2024 17:20:10 -0700 Subject: [PATCH 12/16] Added code to github actions workflow to checkout submodule. --- .github/workflows/python-app.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/python-app.yml b/.github/workflows/python-app.yml index c8e22d8..d9bddd9 100644 --- a/.github/workflows/python-app.yml +++ b/.github/workflows/python-app.yml @@ -18,7 +18,10 @@ jobs: steps: - - uses: actions/checkout@v4 + - name: Checkout code with submodules + uses: actions/checkout@v4 + with: + submodules: true - name: Set up Python uses: actions/setup-python@v5 From 47060bbc192880c78e19dfc37af73d93241cc9f0 Mon Sep 17 00:00:00 2001 From: Cameron Mattson Date: Wed, 20 Nov 2024 17:34:20 -0700 Subject: [PATCH 13/16] Trying fastparquet instead of pyarrow. --- poetry.lock | 256 ++++++++++++++++++++++++++++++++++++++----------- pyproject.toml | 2 +- 2 files changed, 202 insertions(+), 56 deletions(-) diff --git a/poetry.lock b/poetry.lock index 67cc940..54d8a69 100644 --- a/poetry.lock +++ b/poetry.lock @@ -531,6 +531,108 @@ mypy = ["contourpy[bokeh,docs]", "docutils-stubs", "mypy (==1.11.1)", "types-Pil test = ["Pillow", "contourpy[test-no-images]", "matplotlib"] test-no-images = ["pytest", "pytest-cov", "pytest-rerunfailures", "pytest-xdist", "wurlitzer"] +[[package]] +name = "cramjam" +version = "2.9.0" +description = "Thin Python bindings to de/compression algorithms in Rust" +optional = false +python-versions = ">=3.8" +files = [ + {file = "cramjam-2.9.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:eb16d995e454b0155b166f6e6da7df4ac812d44e0f3b6dc0f344a934609fd5bc"}, + {file = "cramjam-2.9.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cb1e86bfea656b51f2e75f2cedb17fc08b552d105b814d19b595294ecbe94d8d"}, + {file = "cramjam-2.9.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:4bd76b654275736fd4f55521981b73751c34dacf70a1dbce96e454a39d43201f"}, + {file = "cramjam-2.9.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:21569f19d5848606b85ac0dde0dc3639319d26fed8522c7103515df875bcb300"}, + {file = "cramjam-2.9.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b8f8b1117b4e697d39950ecab01700ce0aef66541e4478eb4d7b3ade8703347b"}, + {file = "cramjam-2.9.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c3464d0042a03e8ef38a2b774ef23163cf3c0cdc41b8dfbf7c4aadf93e40b459"}, + {file = "cramjam-2.9.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0711c776750e243ae347d6609c975f0ff4be9ae65b2764d29e4bbdad8e574c3a"}, + {file = "cramjam-2.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00d96f798bc980b29f8e1c3ed7d554050e05d4cde23d1633ffed4cd63110024a"}, + {file = "cramjam-2.9.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:fc49b6575e3cb15da3180c5a3926ec81db33b109e48530708da76614b306904b"}, + {file = "cramjam-2.9.0-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:c4fa6c23e56d48df18f534af921ec936c812743a8972ecdd5e5ff47b464fea00"}, + {file = "cramjam-2.9.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:b4b8d8160685c11ffb4e8e6daaab79cb351a1c54ceec41cc18a0a62c89309fe0"}, + {file = "cramjam-2.9.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0ed6362cb6c964f8d0c6e7f790e8961b9242cd3acd87c56169ca14d642653707"}, + {file = "cramjam-2.9.0-cp310-none-win32.whl", hash = "sha256:fe9af350dfbdc7ed4c93a8016a8ad7b5492fc116e7197cad7cbce99b434d3fe1"}, + {file = "cramjam-2.9.0-cp310-none-win_amd64.whl", hash = "sha256:37054c73704a3183b60869e7fec1614648752c31d89f44de1ffe1f01ad4d20d5"}, + {file = "cramjam-2.9.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:170a50407f9400073621cc1d5f3200ca3ad9de3000831e3e86f5561ca8048a08"}, + {file = "cramjam-2.9.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:912c94781c8ff318a4d3f3306f8d94d41ae5aa7b9760c4bb0476b01142084845"}, + {file = "cramjam-2.9.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:df089639983a03070be6eabc60317aa1ffbf2c5409023b57a5fc2e4975163bc4"}, + {file = "cramjam-2.9.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1ca28a8f6ab5fca35f163fd7d7a970880ce4fc1a0bead1249ecdaa96ec9ac1f4"}, + {file = "cramjam-2.9.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:abd8bf9a94e3866215ac181a7dbcfa1ddbedca4f8048494a79934febe88537df"}, + {file = "cramjam-2.9.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7de19a382bcab93cd4d028d51f6f581920a3b79659a384775188135b7fc64f15"}, + {file = "cramjam-2.9.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a4156fcefa1dfaa65d35ff82c252d1e32be12820f26d04748be6cd3b461cf85f"}, + {file = "cramjam-2.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b4a3104022129d7463100dfaf12efd398ebfa4b7e4e50832ccc596754f7c26df"}, + {file = "cramjam-2.9.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:6ebee5f5d7e2b9277895ea4fd94646b72075fe9cfc0e8f4770b65c9e72b1fec1"}, + {file = "cramjam-2.9.0-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:8e33ebe4d709b21bc15e7ddf485ac6b30d7fdc7ed7c3c65130654c007f50c183"}, + {file = "cramjam-2.9.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:4d5a39118008bb9f2fba36a0ceea6c41fbd0b55d2647b043ba51a868e5f6de92"}, + {file = "cramjam-2.9.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:7f6ef35eba883927af2678b561cc4407e0b3b0d58a251c863bec4b3d8258cc2f"}, + {file = "cramjam-2.9.0-cp311-none-win32.whl", hash = "sha256:b21e55b5cfdaff96eae1f323ae9a0d36e86852cdf62fe23b60a2481d2fed5571"}, + {file = "cramjam-2.9.0-cp311-none-win_amd64.whl", hash = "sha256:9f685fe4e49b2f3e233548e3397b3f9189d71a265718ec631d13eca3d5718ddb"}, + {file = "cramjam-2.9.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:34578e4c1518b10dad5e0ba40c721e529ef13e7742a528843b40e1f20dd6078c"}, + {file = "cramjam-2.9.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1d5b5512dc61ea78f32e021e88a5fd5b46a821409479e6657d33614fc9e45677"}, + {file = "cramjam-2.9.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0b4f1b5e33915ed591c0c19b8c3bbdd7aa0f6a9bfe2b7246b475d497bda15f18"}, + {file = "cramjam-2.9.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad301801afa0eecdacabf353a2802df5e6770f9bfb0a559d6c069813d83cfd42"}, + {file = "cramjam-2.9.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:399baf80fea574e3870f233e12e6a12f02c53b054e13d792348b272b0614370a"}, + {file = "cramjam-2.9.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3121e2fbec58907fa70636adaeaf30c27614c867e08a7a5bd2887b33786ff790"}, + {file = "cramjam-2.9.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bd04205b2a87087ffc2257c3ad33f11daabc053956f64ac1ec7bae299cac3f2f"}, + {file = "cramjam-2.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ddb9c4db36188a8f08c2303100a83100f26a8572803ae35eadff359bebd3d204"}, + {file = "cramjam-2.9.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ef553d4080368006817c1a935ed619c71987cf10417a32386acc00c5418a2934"}, + {file = "cramjam-2.9.0-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:9862ca8ead80857ecfb9b07f02f577733261e981346f31585fe118975eabb738"}, + {file = "cramjam-2.9.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:4714e1ea0c3329368b83fe5ad6e831d5ca11fb794ca7cf491622eb6b2d420d2f"}, + {file = "cramjam-2.9.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1b4ca30c9f27e3b88bc082d4637e7648f93da5cb69a2dbe0c0300bc51353c820"}, + {file = "cramjam-2.9.0-cp312-none-win32.whl", hash = "sha256:0ed2fef010d1caca9ea63814e9cb5b1d47d907b80302b8cc0b3a1e116ea241e2"}, + {file = "cramjam-2.9.0-cp312-none-win_amd64.whl", hash = "sha256:bd26d71939de5dcf169d479fbc7fcfed21e6675bab33e7f7e9f8405f19711c71"}, + {file = "cramjam-2.9.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:dd70ea5d7b2c5e479e04ac3a00d8bc3deca146d2b5dbfbe3d7b42ed136e19de4"}, + {file = "cramjam-2.9.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0b1410e68c464666473a89cade17483b94bb4639d9161c440ee54ee1e0eca583"}, + {file = "cramjam-2.9.0-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:b0078727fe8c28ef1695e5d04aae5c41ac697eb087cba387c6a02b825f9071c0"}, + {file = "cramjam-2.9.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a63c4e63319bf7dfc3ab46c06afb76d3d9cc1c94369b609dde480e5cc78e4de"}, + {file = "cramjam-2.9.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:47d7253b5a10c201cc65aecfb517dfa1c0b5831b2524ac32dd2964fceafc0dc4"}, + {file = "cramjam-2.9.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05970fb640f236767003e62c256a085754536169bac863f4a3502ecb59cbf197"}, + {file = "cramjam-2.9.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e0b062d261fa3fac00146cf801896c8cfafe1e41332eb047aa0a36558299daa6"}, + {file = "cramjam-2.9.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:017b7066f18b7b676068f51b1dbdecc02d76d9af10092252b22dcbd03a78ed33"}, + {file = "cramjam-2.9.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:9de33ef3bc006c11fbad1dc8b15341dcc78430df2c5ce1e790dfb729b11ab593"}, + {file = "cramjam-2.9.0-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:b99efaf81be8e381de1cde6574e2c89030ed53994e73b0e75b62d6e232f491c5"}, + {file = "cramjam-2.9.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:36426e3f1920f6aa4c644d007bf9cfad06dd9f1a30cd0a921d72b010492d8447"}, + {file = "cramjam-2.9.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ea9bcaff298f5d35ef67346d474fca388c5cf6d4edab1d06b84868800f88bd36"}, + {file = "cramjam-2.9.0-cp313-none-win32.whl", hash = "sha256:c48da60a5eb481b412e5e462b81ad307fb2203178a2840a743f0a7c5fc1718c9"}, + {file = "cramjam-2.9.0-cp313-none-win_amd64.whl", hash = "sha256:97a6311bd32f301ff1b922bc9de62ace3d9fd845e20efc0f71b4d0239a45b8d2"}, + {file = "cramjam-2.9.0-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:78e7349f945a83bc48855fb042873092a69b155a088b8c11942eb76418b32705"}, + {file = "cramjam-2.9.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:65a097ea765dd4ef2fb868b5b0959d7c93a64c250b2c52f462898c823ae4b950"}, + {file = "cramjam-2.9.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:35cad507eb02c775e6c5444312f98b28dd8bf122425677ae199484996e838673"}, + {file = "cramjam-2.9.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8982925d179b940efa860513a31b839bb06343501077cca3e67f7a2f7360d355"}, + {file = "cramjam-2.9.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ba7e2d33e1d092dffd0a3ff4bd1b86177594aa3c2901fd478e78e1fb2aee8ed3"}, + {file = "cramjam-2.9.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:904be92e3bc25e78343ee52aa0fd5fba3a31d11d474e8af4623a9d00baa84bc2"}, + {file = "cramjam-2.9.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9221297c547d702e1431e96705fce26c6a87df34a681a6b97fe63b536d09c1d8"}, + {file = "cramjam-2.9.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e98a18c22a85f321091cc8db6694af1d713a369c2d60ec611c10ccfe24ab103a"}, + {file = "cramjam-2.9.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:e248510f8e2dbc71fa99f86238c9023365dbe1a4520eb40e33d73416527349f2"}, + {file = "cramjam-2.9.0-cp38-cp38-musllinux_1_1_armv7l.whl", hash = "sha256:dc07376aa33b6004ea372ac9b0ba0ed3455aa2fc4e18727414142ecb46b176b8"}, + {file = "cramjam-2.9.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:e94021c541eb2a199b5a2ffae0ea84fb8b99863dab99a5b154b00bc7a44b5c48"}, + {file = "cramjam-2.9.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:4adbf4366f8dc29b7c5c731c800cf633be76c9911e928daeb606827d6ae7c599"}, + {file = "cramjam-2.9.0-cp38-none-win32.whl", hash = "sha256:ca880f555c8db40942acc8a50722c33e229b6be90e598acc1a201f36487b917d"}, + {file = "cramjam-2.9.0-cp38-none-win_amd64.whl", hash = "sha256:ab17a429a92db90bf40115efb97d10e71b94b0dcacf30cf724552df2794a58fb"}, + {file = "cramjam-2.9.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:ed7fd7bc2b86ec3161fe0cc49f5f392e6efa55c91a95397d5047820c38117660"}, + {file = "cramjam-2.9.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a0f654c739a6bc4a69a2aaf31463328a208757ed780ff886234532f78e06a864"}, + {file = "cramjam-2.9.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:cd4d4ab9deb5846af0ac6cf1fa139cfa40291ad14d073efa8b8e20c8d1aa90bd"}, + {file = "cramjam-2.9.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bafc32f01d4ab64f83fdbc29bc5bd25a920b59c751c12e06e6f4b1e379be7600"}, + {file = "cramjam-2.9.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0fb5ea631dbf998f667766a9e485e757817d66ed559916ba553a0ec2f902d788"}, + {file = "cramjam-2.9.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c902e56e60c48f5f15e55257aaa1c2678323df5f18a1b839e8d05cac1107576c"}, + {file = "cramjam-2.9.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:441d3875cdffe5df9294b93ef570058837732dd727cd9d18efa0f089f1c2687a"}, + {file = "cramjam-2.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ed486e57a79ccc7aebaa2ec12517d891fdc5d2fde16915e3db705b8a47570981"}, + {file = "cramjam-2.9.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:013cb872205641c6e5269f530ed40aaaa5640d84e0d8f33b89f5a1bf7f655527"}, + {file = "cramjam-2.9.0-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:a41b4b10a381be1d42a1a7dd07b8c3faccd3d12c7e98e973a6ec558fd040a607"}, + {file = "cramjam-2.9.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:598eac1713ddbe69c3b30dcc890d69b206ce08903fc3aed58149aae87c61973a"}, + {file = "cramjam-2.9.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:72e9ebc27c557706a3c9964c1d1b4522857760dbd60c105a4f5421f3b66e31a2"}, + {file = "cramjam-2.9.0-cp39-none-win32.whl", hash = "sha256:dbbd6fba677e1cbc9d6bd4ebbe3e8b3667d0295f1731489db2a971c95f0ceca0"}, + {file = "cramjam-2.9.0-cp39-none-win_amd64.whl", hash = "sha256:7f33a83969fa94ee8e0c1f0aef8eb303ead3e9142338dc543abeb7e1a28734ab"}, + {file = "cramjam-2.9.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:132db7d3346ea21ba44e7ee23ec73bd6fa9eb1e77133ca6dfe1f7449a69999af"}, + {file = "cramjam-2.9.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:2addf801c88bead21256ccd87dc97cffead03758c4a4947fad8e454f4abfda0a"}, + {file = "cramjam-2.9.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:24afad3ba62774abbb150dc25aab21b047ab999c4143c7a8d96577848baf7af6"}, + {file = "cramjam-2.9.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:604c16052cf29d0c796927ed7e107f65429d2036c82c9a8009bd453c94e5e4f0"}, + {file = "cramjam-2.9.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:65bded20fd2cef17b22246c336ddd67fac842341ee311042b4a70e65dc745aa7"}, + {file = "cramjam-2.9.0.tar.gz", hash = "sha256:f103e648aa3ebe9b8e2c1a3a92719288d8f3f41007c319ad298cdce2d0c28641"}, +] + +[package.extras] +dev = ["black (==22.3.0)", "hypothesis", "numpy", "pytest (>=5.30)", "pytest-benchmark", "pytest-xdist"] + [[package]] name = "cycler" version = "0.12.1" @@ -660,6 +762,65 @@ files = [ [package.extras] devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benchmark", "pytest-cache", "validictory"] +[[package]] +name = "fastparquet" +version = "2024.11.0" +description = "Python support for Parquet file format" +optional = false +python-versions = ">=3.9" +files = [ + {file = "fastparquet-2024.11.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:60ccf587410f0979105e17036df61bb60e1c2b81880dc91895cdb4ee65b71e7f"}, + {file = "fastparquet-2024.11.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a5ad5fc14b0567e700bea3cd528a0bd45a6f9371370b49de8889fb3d10a6574a"}, + {file = "fastparquet-2024.11.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0b74333914f454344458dab9d1432fda9b70d62e28dc7acb1512d937ef1424ee"}, + {file = "fastparquet-2024.11.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41d1610130b5cb1ce36467766191c5418cba8631e2bfe3affffaf13f9be4e7a8"}, + {file = "fastparquet-2024.11.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d281edd625c33628ba028d3221180283d6161bc5ceb55eae1f0ca1678f864f26"}, + {file = "fastparquet-2024.11.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:fa56b19a29008c34cfe8831e810f770080debcbffc69aabd1df4d47572181f9c"}, + {file = "fastparquet-2024.11.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5914ecfa766b7763201b9f49d832a5e89c2dccad470ca4f9c9b228d9a8349756"}, + {file = "fastparquet-2024.11.0-cp310-cp310-win_amd64.whl", hash = "sha256:561202e8f0e859ccc1aa77c4aaad1d7901b2d50fd6f624ca018bae4c3c7a62ce"}, + {file = "fastparquet-2024.11.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:374cdfa745aa7d5188430528d5841cf823eb9ad16df72ad6dadd898ccccce3be"}, + {file = "fastparquet-2024.11.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4c8401bfd86cccaf0ab7c0ade58c91ae19317ff6092e1d4ad96c2178197d8124"}, + {file = "fastparquet-2024.11.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9cca4c6b5969df5561c13786f9d116300db1ec22c7941e237cfca4ce602f59b"}, + {file = "fastparquet-2024.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a9387e77ac608d8978774caaf1e19de67eaa1386806e514dcb19f741b19cfe5"}, + {file = "fastparquet-2024.11.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6595d3771b3d587a31137e985f751b4d599d5c8e9af9c4858e373fdf5c3f8720"}, + {file = "fastparquet-2024.11.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:053695c2f730b78a2d3925df7cd5c6444d6c1560076af907993361cc7accf3e2"}, + {file = "fastparquet-2024.11.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0a52eecc6270ae15f0d51347c3f762703dd667ca486f127dc0a21e7e59856ae5"}, + {file = "fastparquet-2024.11.0-cp311-cp311-win_amd64.whl", hash = "sha256:e29ff7a367fafa57c6896fb6abc84126e2466811aefd3e4ad4070b9e18820e54"}, + {file = "fastparquet-2024.11.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:dbad4b014782bd38b58b8e9f514fe958cfa7a6c4e187859232d29fd5c5ddd849"}, + {file = "fastparquet-2024.11.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:403d31109d398b6be7ce84fa3483fc277c6a23f0b321348c0a505eb098a041cb"}, + {file = "fastparquet-2024.11.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cbbb9057a26acf0abad7adf58781ee357258b7708ee44a289e3bee97e2f55d42"}, + {file = "fastparquet-2024.11.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63e0e416e25c15daa174aad8ba991c2e9e5b0dc347e5aed5562124261400f87b"}, + {file = "fastparquet-2024.11.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0e2d7f02f57231e6c86d26e9ea71953737202f20e948790e5d4db6d6a1a150dc"}, + {file = "fastparquet-2024.11.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:fbe4468146b633d8f09d7b196fea0547f213cb5ce5f76e9d1beb29eaa9593a93"}, + {file = "fastparquet-2024.11.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:29d5c718817bcd765fc519b17f759cad4945974421ecc1931d3bdc3e05e57fa9"}, + {file = "fastparquet-2024.11.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:59e5c5b51083d5b82572cdb7aed0346e3181e3ac9d2e45759da2e804bdafa7ee"}, + {file = "fastparquet-2024.11.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bdadf7b6bad789125b823bfc5b0a719ba5c4a2ef965f973702d3ea89cff057f6"}, + {file = "fastparquet-2024.11.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:46b2db02fc2a1507939d35441c8ab211d53afd75d82eec9767d1c3656402859b"}, + {file = "fastparquet-2024.11.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a3afdef2895c9f459135a00a7ed3ceafebfbce918a9e7b5d550e4fae39c1b64d"}, + {file = "fastparquet-2024.11.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:36b5c9bd2ffaaa26ff45d59a6cefe58503dd748e0c7fad80dd905749da0f2b9e"}, + {file = "fastparquet-2024.11.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:6b7df5d3b61a19d76e209fe8d3133759af1c139e04ebc6d43f3cc2d8045ef338"}, + {file = "fastparquet-2024.11.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8b35823ac7a194134e5f82fa4a9659e42e8f9ad1f2d22a55fbb7b9e4053aabbb"}, + {file = "fastparquet-2024.11.0-cp313-cp313-win_amd64.whl", hash = "sha256:d20632964e65530374ff7cddd42cc06aa0a1388934903693d6d22592a5ba827b"}, + {file = "fastparquet-2024.11.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:1ae953c0e3832ae3936b6d92fde493ac7d8b775d7d59d02f7f46f67e1c21ed24"}, + {file = "fastparquet-2024.11.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:869e167a4067116b4a27eb7adbe597130b2e2e9cfc0f3e84f60e2e182a933f23"}, + {file = "fastparquet-2024.11.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eb3356862fba2f9b2ea8e679d66901f466c92be8e023439fe854bc392fbf40a6"}, + {file = "fastparquet-2024.11.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc475993232c6a64f350aeb928013a807eb93f78675810fd019cbcff39f6baf3"}, + {file = "fastparquet-2024.11.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d24c923a2d9d22a5e7564245f856e6462d524d57982ac8f7479cde991ff73362"}, + {file = "fastparquet-2024.11.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:6b936dcf40ca5fff9e70383d48811b1482b871ff74af857cb4db5f4d072f01ab"}, + {file = "fastparquet-2024.11.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:4abd3426607335e5ad09be29ef4eeccdf097710e44420deac16893cee64ea0d8"}, + {file = "fastparquet-2024.11.0-cp39-cp39-win_amd64.whl", hash = "sha256:6ec7b398a86432993441d0a08dfae59e29649c803ed64ec4b1d7c3e0855b14cb"}, + {file = "fastparquet-2024.11.0.tar.gz", hash = "sha256:e3b1fc73fd3e1b70b0de254bae7feb890436cb67e99458b88cb9bd3cc44db419"}, +] + +[package.dependencies] +cramjam = ">=2.3" +fsspec = "*" +numpy = "*" +packaging = "*" +pandas = ">=1.5.0" + +[package.extras] +lzo = ["python-lzo"] + [[package]] name = "fonttools" version = "4.55.0" @@ -744,6 +905,45 @@ files = [ {file = "fqdn-1.5.1.tar.gz", hash = "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f"}, ] +[[package]] +name = "fsspec" +version = "2024.10.0" +description = "File-system specification" +optional = false +python-versions = ">=3.8" +files = [ + {file = "fsspec-2024.10.0-py3-none-any.whl", hash = "sha256:03b9a6785766a4de40368b88906366755e2819e758b83705c88cd7cb5fe81871"}, + {file = "fsspec-2024.10.0.tar.gz", hash = "sha256:eda2d8a4116d4f2429db8550f2457da57279247dd930bb12f821b58391359493"}, +] + +[package.extras] +abfs = ["adlfs"] +adl = ["adlfs"] +arrow = ["pyarrow (>=1)"] +dask = ["dask", "distributed"] +dev = ["pre-commit", "ruff"] +doc = ["numpydoc", "sphinx", "sphinx-design", "sphinx-rtd-theme", "yarl"] +dropbox = ["dropbox", "dropboxdrivefs", "requests"] +full = ["adlfs", "aiohttp (!=4.0.0a0,!=4.0.0a1)", "dask", "distributed", "dropbox", "dropboxdrivefs", "fusepy", "gcsfs", "libarchive-c", "ocifs", "panel", "paramiko", "pyarrow (>=1)", "pygit2", "requests", "s3fs", "smbprotocol", "tqdm"] +fuse = ["fusepy"] +gcs = ["gcsfs"] +git = ["pygit2"] +github = ["requests"] +gs = ["gcsfs"] +gui = ["panel"] +hdfs = ["pyarrow (>=1)"] +http = ["aiohttp (!=4.0.0a0,!=4.0.0a1)"] +libarchive = ["libarchive-c"] +oci = ["ocifs"] +s3 = ["s3fs"] +sftp = ["paramiko"] +smb = ["smbprotocol"] +ssh = ["paramiko"] +test = ["aiohttp (!=4.0.0a0,!=4.0.0a1)", "numpy", "pytest", "pytest-asyncio (!=0.22.0)", "pytest-benchmark", "pytest-cov", "pytest-mock", "pytest-recording", "pytest-rerunfailures", "requests"] +test-downstream = ["aiobotocore (>=2.5.4,<3.0.0)", "dask-expr", "dask[dataframe,test]", "moto[server] (>4,<5)", "pytest-timeout", "xarray"] +test-full = ["adlfs", "aiohttp (!=4.0.0a0,!=4.0.0a1)", "cloudpickle", "dask", "distributed", "dropbox", "dropboxdrivefs", "fastparquet", "fusepy", "gcsfs", "jinja2", "kerchunk", "libarchive-c", "lz4", "notebook", "numpy", "ocifs", "pandas", "panel", "paramiko", "pyarrow", "pyarrow (>=1)", "pyftpdlib", "pygit2", "pytest", "pytest-asyncio (!=0.22.0)", "pytest-benchmark", "pytest-cov", "pytest-mock", "pytest-recording", "pytest-rerunfailures", "python-snappy", "requests", "smbprotocol", "tqdm", "urllib3", "zarr", "zstandard"] +tqdm = ["tqdm"] + [[package]] name = "greenlet" version = "3.1.1" @@ -2248,60 +2448,6 @@ files = [ [package.extras] tests = ["pytest"] -[[package]] -name = "pyarrow" -version = "18.0.0" -description = "Python library for Apache Arrow" -optional = false -python-versions = ">=3.9" -files = [ - {file = "pyarrow-18.0.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:2333f93260674e185cfbf208d2da3007132572e56871f451ba1a556b45dae6e2"}, - {file = "pyarrow-18.0.0-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:4c381857754da44326f3a49b8b199f7f87a51c2faacd5114352fc78de30d3aba"}, - {file = "pyarrow-18.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:603cd8ad4976568954598ef0a6d4ed3dfb78aff3d57fa8d6271f470f0ce7d34f"}, - {file = "pyarrow-18.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58a62549a3e0bc9e03df32f350e10e1efb94ec6cf63e3920c3385b26663948ce"}, - {file = "pyarrow-18.0.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:bc97316840a349485fbb137eb8d0f4d7057e1b2c1272b1a20eebbbe1848f5122"}, - {file = "pyarrow-18.0.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:2e549a748fa8b8715e734919923f69318c953e077e9c02140ada13e59d043310"}, - {file = "pyarrow-18.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:606e9a3dcb0f52307c5040698ea962685fb1c852d72379ee9412be7de9c5f9e2"}, - {file = "pyarrow-18.0.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:d5795e37c0a33baa618c5e054cd61f586cf76850a251e2b21355e4085def6280"}, - {file = "pyarrow-18.0.0-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:5f0510608ccd6e7f02ca8596962afb8c6cc84c453e7be0da4d85f5f4f7b0328a"}, - {file = "pyarrow-18.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:616ea2826c03c16e87f517c46296621a7c51e30400f6d0a61be645f203aa2b93"}, - {file = "pyarrow-18.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a1824f5b029ddd289919f354bc285992cb4e32da518758c136271cf66046ef22"}, - {file = "pyarrow-18.0.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:6dd1b52d0d58dd8f685ced9971eb49f697d753aa7912f0a8f50833c7a7426319"}, - {file = "pyarrow-18.0.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:320ae9bd45ad7ecc12ec858b3e8e462578de060832b98fc4d671dee9f10d9954"}, - {file = "pyarrow-18.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:2c992716cffb1088414f2b478f7af0175fd0a76fea80841b1706baa8fb0ebaad"}, - {file = "pyarrow-18.0.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:e7ab04f272f98ebffd2a0661e4e126036f6936391ba2889ed2d44c5006237802"}, - {file = "pyarrow-18.0.0-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:03f40b65a43be159d2f97fd64dc998f769d0995a50c00f07aab58b0b3da87e1f"}, - {file = "pyarrow-18.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:be08af84808dff63a76860847c48ec0416928a7b3a17c2f49a072cac7c45efbd"}, - {file = "pyarrow-18.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c70c1965cde991b711a98448ccda3486f2a336457cf4ec4dca257a926e149c9"}, - {file = "pyarrow-18.0.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:00178509f379415a3fcf855af020e3340254f990a8534294ec3cf674d6e255fd"}, - {file = "pyarrow-18.0.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:a71ab0589a63a3e987beb2bc172e05f000a5c5be2636b4b263c44034e215b5d7"}, - {file = "pyarrow-18.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:fe92efcdbfa0bcf2fa602e466d7f2905500f33f09eb90bf0bcf2e6ca41b574c8"}, - {file = "pyarrow-18.0.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:907ee0aa8ca576f5e0cdc20b5aeb2ad4d3953a3b4769fc4b499e00ef0266f02f"}, - {file = "pyarrow-18.0.0-cp313-cp313-macosx_12_0_x86_64.whl", hash = "sha256:66dcc216ebae2eb4c37b223feaf82f15b69d502821dde2da138ec5a3716e7463"}, - {file = "pyarrow-18.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bc1daf7c425f58527900876354390ee41b0ae962a73ad0959b9d829def583bb1"}, - {file = "pyarrow-18.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:871b292d4b696b09120ed5bde894f79ee2a5f109cb84470546471df264cae136"}, - {file = "pyarrow-18.0.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:082ba62bdcb939824ba1ce10b8acef5ab621da1f4c4805e07bfd153617ac19d4"}, - {file = "pyarrow-18.0.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:2c664ab88b9766413197733c1720d3dcd4190e8fa3bbdc3710384630a0a7207b"}, - {file = "pyarrow-18.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:dc892be34dbd058e8d189b47db1e33a227d965ea8805a235c8a7286f7fd17d3a"}, - {file = "pyarrow-18.0.0-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:28f9c39a56d2c78bf6b87dcc699d520ab850919d4a8c7418cd20eda49874a2ea"}, - {file = "pyarrow-18.0.0-cp313-cp313t-macosx_12_0_x86_64.whl", hash = "sha256:f1a198a50c409ab2d009fbf20956ace84567d67f2c5701511d4dd561fae6f32e"}, - {file = "pyarrow-18.0.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5bd7fd32e3ace012d43925ea4fc8bd1b02cc6cc1e9813b518302950e89b5a22"}, - {file = "pyarrow-18.0.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:336addb8b6f5208be1b2398442c703a710b6b937b1a046065ee4db65e782ff5a"}, - {file = "pyarrow-18.0.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:45476490dd4adec5472c92b4d253e245258745d0ccaabe706f8d03288ed60a79"}, - {file = "pyarrow-18.0.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:b46591222c864e7da7faa3b19455196416cd8355ff6c2cc2e65726a760a3c420"}, - {file = "pyarrow-18.0.0-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:eb7e3abcda7e1e6b83c2dc2909c8d045881017270a119cc6ee7fdcfe71d02df8"}, - {file = "pyarrow-18.0.0-cp39-cp39-macosx_12_0_x86_64.whl", hash = "sha256:09f30690b99ce34e0da64d20dab372ee54431745e4efb78ac938234a282d15f9"}, - {file = "pyarrow-18.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d5ca5d707e158540312e09fd907f9f49bacbe779ab5236d9699ced14d2293b8"}, - {file = "pyarrow-18.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d6331f280c6e4521c69b201a42dd978f60f7e129511a55da9e0bfe426b4ebb8d"}, - {file = "pyarrow-18.0.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:3ac24b2be732e78a5a3ac0b3aa870d73766dd00beba6e015ea2ea7394f8b4e55"}, - {file = "pyarrow-18.0.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:b30a927c6dff89ee702686596f27c25160dd6c99be5bcc1513a763ae5b1bfc03"}, - {file = "pyarrow-18.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:8f40ec677e942374e3d7f2fad6a67a4c2811a8b975e8703c6fd26d3b168a90e2"}, - {file = "pyarrow-18.0.0.tar.gz", hash = "sha256:a6aa027b1a9d2970cf328ccd6dbe4a996bc13c39fd427f502782f5bdb9ca20f5"}, -] - -[package.extras] -test = ["cffi", "hypothesis", "pandas", "pytest", "pytz"] - [[package]] name = "pycparser" version = "2.22" @@ -3132,4 +3278,4 @@ test = ["websockets"] [metadata] lock-version = "2.0" python-versions = ">=3.10,<=3.11" -content-hash = "76f5c92854154a1603f7ea72947f9c97f9d8a9461695c10d9a877e38f4111fa6" +content-hash = "cb4804889ac4415f7653137f5decbd7a4e0df71ba696dce8c3266c45bef3a3fd" diff --git a/pyproject.toml b/pyproject.toml index 4cfba16..57adefa 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -15,9 +15,9 @@ packages = [ python = ">=3.10,<=3.11" pathlib2 = "^2.3.7.post1" pandas = "^2.2.3" -pyarrow = "^18.0.0" setuptools = ">=14.0" numpy = "^2.1.3" +fastparquet = "^2024.11.0" [tool.poetry.group.dev.dependencies] From 3c6cfc53da184e9d15302e5bb21e11094d77728d Mon Sep 17 00:00:00 2001 From: Cameron Mattson Date: Wed, 20 Nov 2024 17:45:18 -0700 Subject: [PATCH 14/16] Readded pyarrow and remove fastparquet --- poetry.lock | 256 +++++++++++-------------------------------------- pyproject.toml | 2 +- 2 files changed, 56 insertions(+), 202 deletions(-) diff --git a/poetry.lock b/poetry.lock index 54d8a69..67cc940 100644 --- a/poetry.lock +++ b/poetry.lock @@ -531,108 +531,6 @@ mypy = ["contourpy[bokeh,docs]", "docutils-stubs", "mypy (==1.11.1)", "types-Pil test = ["Pillow", "contourpy[test-no-images]", "matplotlib"] test-no-images = ["pytest", "pytest-cov", "pytest-rerunfailures", "pytest-xdist", "wurlitzer"] -[[package]] -name = "cramjam" -version = "2.9.0" -description = "Thin Python bindings to de/compression algorithms in Rust" -optional = false -python-versions = ">=3.8" -files = [ - {file = "cramjam-2.9.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:eb16d995e454b0155b166f6e6da7df4ac812d44e0f3b6dc0f344a934609fd5bc"}, - {file = "cramjam-2.9.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cb1e86bfea656b51f2e75f2cedb17fc08b552d105b814d19b595294ecbe94d8d"}, - {file = "cramjam-2.9.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:4bd76b654275736fd4f55521981b73751c34dacf70a1dbce96e454a39d43201f"}, - {file = "cramjam-2.9.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:21569f19d5848606b85ac0dde0dc3639319d26fed8522c7103515df875bcb300"}, - {file = "cramjam-2.9.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b8f8b1117b4e697d39950ecab01700ce0aef66541e4478eb4d7b3ade8703347b"}, - {file = "cramjam-2.9.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c3464d0042a03e8ef38a2b774ef23163cf3c0cdc41b8dfbf7c4aadf93e40b459"}, - {file = "cramjam-2.9.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0711c776750e243ae347d6609c975f0ff4be9ae65b2764d29e4bbdad8e574c3a"}, - {file = "cramjam-2.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00d96f798bc980b29f8e1c3ed7d554050e05d4cde23d1633ffed4cd63110024a"}, - {file = "cramjam-2.9.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:fc49b6575e3cb15da3180c5a3926ec81db33b109e48530708da76614b306904b"}, - {file = "cramjam-2.9.0-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:c4fa6c23e56d48df18f534af921ec936c812743a8972ecdd5e5ff47b464fea00"}, - {file = "cramjam-2.9.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:b4b8d8160685c11ffb4e8e6daaab79cb351a1c54ceec41cc18a0a62c89309fe0"}, - {file = "cramjam-2.9.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0ed6362cb6c964f8d0c6e7f790e8961b9242cd3acd87c56169ca14d642653707"}, - {file = "cramjam-2.9.0-cp310-none-win32.whl", hash = "sha256:fe9af350dfbdc7ed4c93a8016a8ad7b5492fc116e7197cad7cbce99b434d3fe1"}, - {file = "cramjam-2.9.0-cp310-none-win_amd64.whl", hash = "sha256:37054c73704a3183b60869e7fec1614648752c31d89f44de1ffe1f01ad4d20d5"}, - {file = "cramjam-2.9.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:170a50407f9400073621cc1d5f3200ca3ad9de3000831e3e86f5561ca8048a08"}, - {file = "cramjam-2.9.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:912c94781c8ff318a4d3f3306f8d94d41ae5aa7b9760c4bb0476b01142084845"}, - {file = "cramjam-2.9.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:df089639983a03070be6eabc60317aa1ffbf2c5409023b57a5fc2e4975163bc4"}, - {file = "cramjam-2.9.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1ca28a8f6ab5fca35f163fd7d7a970880ce4fc1a0bead1249ecdaa96ec9ac1f4"}, - {file = "cramjam-2.9.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:abd8bf9a94e3866215ac181a7dbcfa1ddbedca4f8048494a79934febe88537df"}, - {file = "cramjam-2.9.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7de19a382bcab93cd4d028d51f6f581920a3b79659a384775188135b7fc64f15"}, - {file = "cramjam-2.9.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a4156fcefa1dfaa65d35ff82c252d1e32be12820f26d04748be6cd3b461cf85f"}, - {file = "cramjam-2.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b4a3104022129d7463100dfaf12efd398ebfa4b7e4e50832ccc596754f7c26df"}, - {file = "cramjam-2.9.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:6ebee5f5d7e2b9277895ea4fd94646b72075fe9cfc0e8f4770b65c9e72b1fec1"}, - {file = "cramjam-2.9.0-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:8e33ebe4d709b21bc15e7ddf485ac6b30d7fdc7ed7c3c65130654c007f50c183"}, - {file = "cramjam-2.9.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:4d5a39118008bb9f2fba36a0ceea6c41fbd0b55d2647b043ba51a868e5f6de92"}, - {file = "cramjam-2.9.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:7f6ef35eba883927af2678b561cc4407e0b3b0d58a251c863bec4b3d8258cc2f"}, - {file = "cramjam-2.9.0-cp311-none-win32.whl", hash = "sha256:b21e55b5cfdaff96eae1f323ae9a0d36e86852cdf62fe23b60a2481d2fed5571"}, - {file = "cramjam-2.9.0-cp311-none-win_amd64.whl", hash = "sha256:9f685fe4e49b2f3e233548e3397b3f9189d71a265718ec631d13eca3d5718ddb"}, - {file = "cramjam-2.9.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:34578e4c1518b10dad5e0ba40c721e529ef13e7742a528843b40e1f20dd6078c"}, - {file = "cramjam-2.9.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1d5b5512dc61ea78f32e021e88a5fd5b46a821409479e6657d33614fc9e45677"}, - {file = "cramjam-2.9.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0b4f1b5e33915ed591c0c19b8c3bbdd7aa0f6a9bfe2b7246b475d497bda15f18"}, - {file = "cramjam-2.9.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad301801afa0eecdacabf353a2802df5e6770f9bfb0a559d6c069813d83cfd42"}, - {file = "cramjam-2.9.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:399baf80fea574e3870f233e12e6a12f02c53b054e13d792348b272b0614370a"}, - {file = "cramjam-2.9.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3121e2fbec58907fa70636adaeaf30c27614c867e08a7a5bd2887b33786ff790"}, - {file = "cramjam-2.9.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bd04205b2a87087ffc2257c3ad33f11daabc053956f64ac1ec7bae299cac3f2f"}, - {file = "cramjam-2.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ddb9c4db36188a8f08c2303100a83100f26a8572803ae35eadff359bebd3d204"}, - {file = "cramjam-2.9.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ef553d4080368006817c1a935ed619c71987cf10417a32386acc00c5418a2934"}, - {file = "cramjam-2.9.0-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:9862ca8ead80857ecfb9b07f02f577733261e981346f31585fe118975eabb738"}, - {file = "cramjam-2.9.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:4714e1ea0c3329368b83fe5ad6e831d5ca11fb794ca7cf491622eb6b2d420d2f"}, - {file = "cramjam-2.9.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1b4ca30c9f27e3b88bc082d4637e7648f93da5cb69a2dbe0c0300bc51353c820"}, - {file = "cramjam-2.9.0-cp312-none-win32.whl", hash = "sha256:0ed2fef010d1caca9ea63814e9cb5b1d47d907b80302b8cc0b3a1e116ea241e2"}, - {file = "cramjam-2.9.0-cp312-none-win_amd64.whl", hash = "sha256:bd26d71939de5dcf169d479fbc7fcfed21e6675bab33e7f7e9f8405f19711c71"}, - {file = "cramjam-2.9.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:dd70ea5d7b2c5e479e04ac3a00d8bc3deca146d2b5dbfbe3d7b42ed136e19de4"}, - {file = "cramjam-2.9.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0b1410e68c464666473a89cade17483b94bb4639d9161c440ee54ee1e0eca583"}, - {file = "cramjam-2.9.0-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:b0078727fe8c28ef1695e5d04aae5c41ac697eb087cba387c6a02b825f9071c0"}, - {file = "cramjam-2.9.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a63c4e63319bf7dfc3ab46c06afb76d3d9cc1c94369b609dde480e5cc78e4de"}, - {file = "cramjam-2.9.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:47d7253b5a10c201cc65aecfb517dfa1c0b5831b2524ac32dd2964fceafc0dc4"}, - {file = "cramjam-2.9.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05970fb640f236767003e62c256a085754536169bac863f4a3502ecb59cbf197"}, - {file = "cramjam-2.9.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e0b062d261fa3fac00146cf801896c8cfafe1e41332eb047aa0a36558299daa6"}, - {file = "cramjam-2.9.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:017b7066f18b7b676068f51b1dbdecc02d76d9af10092252b22dcbd03a78ed33"}, - {file = "cramjam-2.9.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:9de33ef3bc006c11fbad1dc8b15341dcc78430df2c5ce1e790dfb729b11ab593"}, - {file = "cramjam-2.9.0-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:b99efaf81be8e381de1cde6574e2c89030ed53994e73b0e75b62d6e232f491c5"}, - {file = "cramjam-2.9.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:36426e3f1920f6aa4c644d007bf9cfad06dd9f1a30cd0a921d72b010492d8447"}, - {file = "cramjam-2.9.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ea9bcaff298f5d35ef67346d474fca388c5cf6d4edab1d06b84868800f88bd36"}, - {file = "cramjam-2.9.0-cp313-none-win32.whl", hash = "sha256:c48da60a5eb481b412e5e462b81ad307fb2203178a2840a743f0a7c5fc1718c9"}, - {file = "cramjam-2.9.0-cp313-none-win_amd64.whl", hash = "sha256:97a6311bd32f301ff1b922bc9de62ace3d9fd845e20efc0f71b4d0239a45b8d2"}, - {file = "cramjam-2.9.0-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:78e7349f945a83bc48855fb042873092a69b155a088b8c11942eb76418b32705"}, - {file = "cramjam-2.9.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:65a097ea765dd4ef2fb868b5b0959d7c93a64c250b2c52f462898c823ae4b950"}, - {file = "cramjam-2.9.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:35cad507eb02c775e6c5444312f98b28dd8bf122425677ae199484996e838673"}, - {file = "cramjam-2.9.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8982925d179b940efa860513a31b839bb06343501077cca3e67f7a2f7360d355"}, - {file = "cramjam-2.9.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ba7e2d33e1d092dffd0a3ff4bd1b86177594aa3c2901fd478e78e1fb2aee8ed3"}, - {file = "cramjam-2.9.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:904be92e3bc25e78343ee52aa0fd5fba3a31d11d474e8af4623a9d00baa84bc2"}, - {file = "cramjam-2.9.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9221297c547d702e1431e96705fce26c6a87df34a681a6b97fe63b536d09c1d8"}, - {file = "cramjam-2.9.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e98a18c22a85f321091cc8db6694af1d713a369c2d60ec611c10ccfe24ab103a"}, - {file = "cramjam-2.9.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:e248510f8e2dbc71fa99f86238c9023365dbe1a4520eb40e33d73416527349f2"}, - {file = "cramjam-2.9.0-cp38-cp38-musllinux_1_1_armv7l.whl", hash = "sha256:dc07376aa33b6004ea372ac9b0ba0ed3455aa2fc4e18727414142ecb46b176b8"}, - {file = "cramjam-2.9.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:e94021c541eb2a199b5a2ffae0ea84fb8b99863dab99a5b154b00bc7a44b5c48"}, - {file = "cramjam-2.9.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:4adbf4366f8dc29b7c5c731c800cf633be76c9911e928daeb606827d6ae7c599"}, - {file = "cramjam-2.9.0-cp38-none-win32.whl", hash = "sha256:ca880f555c8db40942acc8a50722c33e229b6be90e598acc1a201f36487b917d"}, - {file = "cramjam-2.9.0-cp38-none-win_amd64.whl", hash = "sha256:ab17a429a92db90bf40115efb97d10e71b94b0dcacf30cf724552df2794a58fb"}, - {file = "cramjam-2.9.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:ed7fd7bc2b86ec3161fe0cc49f5f392e6efa55c91a95397d5047820c38117660"}, - {file = "cramjam-2.9.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a0f654c739a6bc4a69a2aaf31463328a208757ed780ff886234532f78e06a864"}, - {file = "cramjam-2.9.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:cd4d4ab9deb5846af0ac6cf1fa139cfa40291ad14d073efa8b8e20c8d1aa90bd"}, - {file = "cramjam-2.9.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bafc32f01d4ab64f83fdbc29bc5bd25a920b59c751c12e06e6f4b1e379be7600"}, - {file = "cramjam-2.9.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0fb5ea631dbf998f667766a9e485e757817d66ed559916ba553a0ec2f902d788"}, - {file = "cramjam-2.9.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c902e56e60c48f5f15e55257aaa1c2678323df5f18a1b839e8d05cac1107576c"}, - {file = "cramjam-2.9.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:441d3875cdffe5df9294b93ef570058837732dd727cd9d18efa0f089f1c2687a"}, - {file = "cramjam-2.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ed486e57a79ccc7aebaa2ec12517d891fdc5d2fde16915e3db705b8a47570981"}, - {file = "cramjam-2.9.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:013cb872205641c6e5269f530ed40aaaa5640d84e0d8f33b89f5a1bf7f655527"}, - {file = "cramjam-2.9.0-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:a41b4b10a381be1d42a1a7dd07b8c3faccd3d12c7e98e973a6ec558fd040a607"}, - {file = "cramjam-2.9.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:598eac1713ddbe69c3b30dcc890d69b206ce08903fc3aed58149aae87c61973a"}, - {file = "cramjam-2.9.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:72e9ebc27c557706a3c9964c1d1b4522857760dbd60c105a4f5421f3b66e31a2"}, - {file = "cramjam-2.9.0-cp39-none-win32.whl", hash = "sha256:dbbd6fba677e1cbc9d6bd4ebbe3e8b3667d0295f1731489db2a971c95f0ceca0"}, - {file = "cramjam-2.9.0-cp39-none-win_amd64.whl", hash = "sha256:7f33a83969fa94ee8e0c1f0aef8eb303ead3e9142338dc543abeb7e1a28734ab"}, - {file = "cramjam-2.9.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:132db7d3346ea21ba44e7ee23ec73bd6fa9eb1e77133ca6dfe1f7449a69999af"}, - {file = "cramjam-2.9.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:2addf801c88bead21256ccd87dc97cffead03758c4a4947fad8e454f4abfda0a"}, - {file = "cramjam-2.9.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:24afad3ba62774abbb150dc25aab21b047ab999c4143c7a8d96577848baf7af6"}, - {file = "cramjam-2.9.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:604c16052cf29d0c796927ed7e107f65429d2036c82c9a8009bd453c94e5e4f0"}, - {file = "cramjam-2.9.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:65bded20fd2cef17b22246c336ddd67fac842341ee311042b4a70e65dc745aa7"}, - {file = "cramjam-2.9.0.tar.gz", hash = "sha256:f103e648aa3ebe9b8e2c1a3a92719288d8f3f41007c319ad298cdce2d0c28641"}, -] - -[package.extras] -dev = ["black (==22.3.0)", "hypothesis", "numpy", "pytest (>=5.30)", "pytest-benchmark", "pytest-xdist"] - [[package]] name = "cycler" version = "0.12.1" @@ -762,65 +660,6 @@ files = [ [package.extras] devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benchmark", "pytest-cache", "validictory"] -[[package]] -name = "fastparquet" -version = "2024.11.0" -description = "Python support for Parquet file format" -optional = false -python-versions = ">=3.9" -files = [ - {file = "fastparquet-2024.11.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:60ccf587410f0979105e17036df61bb60e1c2b81880dc91895cdb4ee65b71e7f"}, - {file = "fastparquet-2024.11.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a5ad5fc14b0567e700bea3cd528a0bd45a6f9371370b49de8889fb3d10a6574a"}, - {file = "fastparquet-2024.11.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0b74333914f454344458dab9d1432fda9b70d62e28dc7acb1512d937ef1424ee"}, - {file = "fastparquet-2024.11.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41d1610130b5cb1ce36467766191c5418cba8631e2bfe3affffaf13f9be4e7a8"}, - {file = "fastparquet-2024.11.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d281edd625c33628ba028d3221180283d6161bc5ceb55eae1f0ca1678f864f26"}, - {file = "fastparquet-2024.11.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:fa56b19a29008c34cfe8831e810f770080debcbffc69aabd1df4d47572181f9c"}, - {file = "fastparquet-2024.11.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5914ecfa766b7763201b9f49d832a5e89c2dccad470ca4f9c9b228d9a8349756"}, - {file = "fastparquet-2024.11.0-cp310-cp310-win_amd64.whl", hash = "sha256:561202e8f0e859ccc1aa77c4aaad1d7901b2d50fd6f624ca018bae4c3c7a62ce"}, - {file = "fastparquet-2024.11.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:374cdfa745aa7d5188430528d5841cf823eb9ad16df72ad6dadd898ccccce3be"}, - {file = "fastparquet-2024.11.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4c8401bfd86cccaf0ab7c0ade58c91ae19317ff6092e1d4ad96c2178197d8124"}, - {file = "fastparquet-2024.11.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9cca4c6b5969df5561c13786f9d116300db1ec22c7941e237cfca4ce602f59b"}, - {file = "fastparquet-2024.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a9387e77ac608d8978774caaf1e19de67eaa1386806e514dcb19f741b19cfe5"}, - {file = "fastparquet-2024.11.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6595d3771b3d587a31137e985f751b4d599d5c8e9af9c4858e373fdf5c3f8720"}, - {file = "fastparquet-2024.11.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:053695c2f730b78a2d3925df7cd5c6444d6c1560076af907993361cc7accf3e2"}, - {file = "fastparquet-2024.11.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0a52eecc6270ae15f0d51347c3f762703dd667ca486f127dc0a21e7e59856ae5"}, - {file = "fastparquet-2024.11.0-cp311-cp311-win_amd64.whl", hash = "sha256:e29ff7a367fafa57c6896fb6abc84126e2466811aefd3e4ad4070b9e18820e54"}, - {file = "fastparquet-2024.11.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:dbad4b014782bd38b58b8e9f514fe958cfa7a6c4e187859232d29fd5c5ddd849"}, - {file = "fastparquet-2024.11.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:403d31109d398b6be7ce84fa3483fc277c6a23f0b321348c0a505eb098a041cb"}, - {file = "fastparquet-2024.11.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cbbb9057a26acf0abad7adf58781ee357258b7708ee44a289e3bee97e2f55d42"}, - {file = "fastparquet-2024.11.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63e0e416e25c15daa174aad8ba991c2e9e5b0dc347e5aed5562124261400f87b"}, - {file = "fastparquet-2024.11.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0e2d7f02f57231e6c86d26e9ea71953737202f20e948790e5d4db6d6a1a150dc"}, - {file = "fastparquet-2024.11.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:fbe4468146b633d8f09d7b196fea0547f213cb5ce5f76e9d1beb29eaa9593a93"}, - {file = "fastparquet-2024.11.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:29d5c718817bcd765fc519b17f759cad4945974421ecc1931d3bdc3e05e57fa9"}, - {file = "fastparquet-2024.11.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:59e5c5b51083d5b82572cdb7aed0346e3181e3ac9d2e45759da2e804bdafa7ee"}, - {file = "fastparquet-2024.11.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bdadf7b6bad789125b823bfc5b0a719ba5c4a2ef965f973702d3ea89cff057f6"}, - {file = "fastparquet-2024.11.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:46b2db02fc2a1507939d35441c8ab211d53afd75d82eec9767d1c3656402859b"}, - {file = "fastparquet-2024.11.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a3afdef2895c9f459135a00a7ed3ceafebfbce918a9e7b5d550e4fae39c1b64d"}, - {file = "fastparquet-2024.11.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:36b5c9bd2ffaaa26ff45d59a6cefe58503dd748e0c7fad80dd905749da0f2b9e"}, - {file = "fastparquet-2024.11.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:6b7df5d3b61a19d76e209fe8d3133759af1c139e04ebc6d43f3cc2d8045ef338"}, - {file = "fastparquet-2024.11.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8b35823ac7a194134e5f82fa4a9659e42e8f9ad1f2d22a55fbb7b9e4053aabbb"}, - {file = "fastparquet-2024.11.0-cp313-cp313-win_amd64.whl", hash = "sha256:d20632964e65530374ff7cddd42cc06aa0a1388934903693d6d22592a5ba827b"}, - {file = "fastparquet-2024.11.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:1ae953c0e3832ae3936b6d92fde493ac7d8b775d7d59d02f7f46f67e1c21ed24"}, - {file = "fastparquet-2024.11.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:869e167a4067116b4a27eb7adbe597130b2e2e9cfc0f3e84f60e2e182a933f23"}, - {file = "fastparquet-2024.11.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eb3356862fba2f9b2ea8e679d66901f466c92be8e023439fe854bc392fbf40a6"}, - {file = "fastparquet-2024.11.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc475993232c6a64f350aeb928013a807eb93f78675810fd019cbcff39f6baf3"}, - {file = "fastparquet-2024.11.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d24c923a2d9d22a5e7564245f856e6462d524d57982ac8f7479cde991ff73362"}, - {file = "fastparquet-2024.11.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:6b936dcf40ca5fff9e70383d48811b1482b871ff74af857cb4db5f4d072f01ab"}, - {file = "fastparquet-2024.11.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:4abd3426607335e5ad09be29ef4eeccdf097710e44420deac16893cee64ea0d8"}, - {file = "fastparquet-2024.11.0-cp39-cp39-win_amd64.whl", hash = "sha256:6ec7b398a86432993441d0a08dfae59e29649c803ed64ec4b1d7c3e0855b14cb"}, - {file = "fastparquet-2024.11.0.tar.gz", hash = "sha256:e3b1fc73fd3e1b70b0de254bae7feb890436cb67e99458b88cb9bd3cc44db419"}, -] - -[package.dependencies] -cramjam = ">=2.3" -fsspec = "*" -numpy = "*" -packaging = "*" -pandas = ">=1.5.0" - -[package.extras] -lzo = ["python-lzo"] - [[package]] name = "fonttools" version = "4.55.0" @@ -905,45 +744,6 @@ files = [ {file = "fqdn-1.5.1.tar.gz", hash = "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f"}, ] -[[package]] -name = "fsspec" -version = "2024.10.0" -description = "File-system specification" -optional = false -python-versions = ">=3.8" -files = [ - {file = "fsspec-2024.10.0-py3-none-any.whl", hash = "sha256:03b9a6785766a4de40368b88906366755e2819e758b83705c88cd7cb5fe81871"}, - {file = "fsspec-2024.10.0.tar.gz", hash = "sha256:eda2d8a4116d4f2429db8550f2457da57279247dd930bb12f821b58391359493"}, -] - -[package.extras] -abfs = ["adlfs"] -adl = ["adlfs"] -arrow = ["pyarrow (>=1)"] -dask = ["dask", "distributed"] -dev = ["pre-commit", "ruff"] -doc = ["numpydoc", "sphinx", "sphinx-design", "sphinx-rtd-theme", "yarl"] -dropbox = ["dropbox", "dropboxdrivefs", "requests"] -full = ["adlfs", "aiohttp (!=4.0.0a0,!=4.0.0a1)", "dask", "distributed", "dropbox", "dropboxdrivefs", "fusepy", "gcsfs", "libarchive-c", "ocifs", "panel", "paramiko", "pyarrow (>=1)", "pygit2", "requests", "s3fs", "smbprotocol", "tqdm"] -fuse = ["fusepy"] -gcs = ["gcsfs"] -git = ["pygit2"] -github = ["requests"] -gs = ["gcsfs"] -gui = ["panel"] -hdfs = ["pyarrow (>=1)"] -http = ["aiohttp (!=4.0.0a0,!=4.0.0a1)"] -libarchive = ["libarchive-c"] -oci = ["ocifs"] -s3 = ["s3fs"] -sftp = ["paramiko"] -smb = ["smbprotocol"] -ssh = ["paramiko"] -test = ["aiohttp (!=4.0.0a0,!=4.0.0a1)", "numpy", "pytest", "pytest-asyncio (!=0.22.0)", "pytest-benchmark", "pytest-cov", "pytest-mock", "pytest-recording", "pytest-rerunfailures", "requests"] -test-downstream = ["aiobotocore (>=2.5.4,<3.0.0)", "dask-expr", "dask[dataframe,test]", "moto[server] (>4,<5)", "pytest-timeout", "xarray"] -test-full = ["adlfs", "aiohttp (!=4.0.0a0,!=4.0.0a1)", "cloudpickle", "dask", "distributed", "dropbox", "dropboxdrivefs", "fastparquet", "fusepy", "gcsfs", "jinja2", "kerchunk", "libarchive-c", "lz4", "notebook", "numpy", "ocifs", "pandas", "panel", "paramiko", "pyarrow", "pyarrow (>=1)", "pyftpdlib", "pygit2", "pytest", "pytest-asyncio (!=0.22.0)", "pytest-benchmark", "pytest-cov", "pytest-mock", "pytest-recording", "pytest-rerunfailures", "python-snappy", "requests", "smbprotocol", "tqdm", "urllib3", "zarr", "zstandard"] -tqdm = ["tqdm"] - [[package]] name = "greenlet" version = "3.1.1" @@ -2448,6 +2248,60 @@ files = [ [package.extras] tests = ["pytest"] +[[package]] +name = "pyarrow" +version = "18.0.0" +description = "Python library for Apache Arrow" +optional = false +python-versions = ">=3.9" +files = [ + {file = "pyarrow-18.0.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:2333f93260674e185cfbf208d2da3007132572e56871f451ba1a556b45dae6e2"}, + {file = "pyarrow-18.0.0-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:4c381857754da44326f3a49b8b199f7f87a51c2faacd5114352fc78de30d3aba"}, + {file = "pyarrow-18.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:603cd8ad4976568954598ef0a6d4ed3dfb78aff3d57fa8d6271f470f0ce7d34f"}, + {file = "pyarrow-18.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58a62549a3e0bc9e03df32f350e10e1efb94ec6cf63e3920c3385b26663948ce"}, + {file = "pyarrow-18.0.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:bc97316840a349485fbb137eb8d0f4d7057e1b2c1272b1a20eebbbe1848f5122"}, + {file = "pyarrow-18.0.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:2e549a748fa8b8715e734919923f69318c953e077e9c02140ada13e59d043310"}, + {file = "pyarrow-18.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:606e9a3dcb0f52307c5040698ea962685fb1c852d72379ee9412be7de9c5f9e2"}, + {file = "pyarrow-18.0.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:d5795e37c0a33baa618c5e054cd61f586cf76850a251e2b21355e4085def6280"}, + {file = "pyarrow-18.0.0-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:5f0510608ccd6e7f02ca8596962afb8c6cc84c453e7be0da4d85f5f4f7b0328a"}, + {file = "pyarrow-18.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:616ea2826c03c16e87f517c46296621a7c51e30400f6d0a61be645f203aa2b93"}, + {file = "pyarrow-18.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a1824f5b029ddd289919f354bc285992cb4e32da518758c136271cf66046ef22"}, + {file = "pyarrow-18.0.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:6dd1b52d0d58dd8f685ced9971eb49f697d753aa7912f0a8f50833c7a7426319"}, + {file = "pyarrow-18.0.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:320ae9bd45ad7ecc12ec858b3e8e462578de060832b98fc4d671dee9f10d9954"}, + {file = "pyarrow-18.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:2c992716cffb1088414f2b478f7af0175fd0a76fea80841b1706baa8fb0ebaad"}, + {file = "pyarrow-18.0.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:e7ab04f272f98ebffd2a0661e4e126036f6936391ba2889ed2d44c5006237802"}, + {file = "pyarrow-18.0.0-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:03f40b65a43be159d2f97fd64dc998f769d0995a50c00f07aab58b0b3da87e1f"}, + {file = "pyarrow-18.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:be08af84808dff63a76860847c48ec0416928a7b3a17c2f49a072cac7c45efbd"}, + {file = "pyarrow-18.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c70c1965cde991b711a98448ccda3486f2a336457cf4ec4dca257a926e149c9"}, + {file = "pyarrow-18.0.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:00178509f379415a3fcf855af020e3340254f990a8534294ec3cf674d6e255fd"}, + {file = "pyarrow-18.0.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:a71ab0589a63a3e987beb2bc172e05f000a5c5be2636b4b263c44034e215b5d7"}, + {file = "pyarrow-18.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:fe92efcdbfa0bcf2fa602e466d7f2905500f33f09eb90bf0bcf2e6ca41b574c8"}, + {file = "pyarrow-18.0.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:907ee0aa8ca576f5e0cdc20b5aeb2ad4d3953a3b4769fc4b499e00ef0266f02f"}, + {file = "pyarrow-18.0.0-cp313-cp313-macosx_12_0_x86_64.whl", hash = "sha256:66dcc216ebae2eb4c37b223feaf82f15b69d502821dde2da138ec5a3716e7463"}, + {file = "pyarrow-18.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bc1daf7c425f58527900876354390ee41b0ae962a73ad0959b9d829def583bb1"}, + {file = "pyarrow-18.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:871b292d4b696b09120ed5bde894f79ee2a5f109cb84470546471df264cae136"}, + {file = "pyarrow-18.0.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:082ba62bdcb939824ba1ce10b8acef5ab621da1f4c4805e07bfd153617ac19d4"}, + {file = "pyarrow-18.0.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:2c664ab88b9766413197733c1720d3dcd4190e8fa3bbdc3710384630a0a7207b"}, + {file = "pyarrow-18.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:dc892be34dbd058e8d189b47db1e33a227d965ea8805a235c8a7286f7fd17d3a"}, + {file = "pyarrow-18.0.0-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:28f9c39a56d2c78bf6b87dcc699d520ab850919d4a8c7418cd20eda49874a2ea"}, + {file = "pyarrow-18.0.0-cp313-cp313t-macosx_12_0_x86_64.whl", hash = "sha256:f1a198a50c409ab2d009fbf20956ace84567d67f2c5701511d4dd561fae6f32e"}, + {file = "pyarrow-18.0.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5bd7fd32e3ace012d43925ea4fc8bd1b02cc6cc1e9813b518302950e89b5a22"}, + {file = "pyarrow-18.0.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:336addb8b6f5208be1b2398442c703a710b6b937b1a046065ee4db65e782ff5a"}, + {file = "pyarrow-18.0.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:45476490dd4adec5472c92b4d253e245258745d0ccaabe706f8d03288ed60a79"}, + {file = "pyarrow-18.0.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:b46591222c864e7da7faa3b19455196416cd8355ff6c2cc2e65726a760a3c420"}, + {file = "pyarrow-18.0.0-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:eb7e3abcda7e1e6b83c2dc2909c8d045881017270a119cc6ee7fdcfe71d02df8"}, + {file = "pyarrow-18.0.0-cp39-cp39-macosx_12_0_x86_64.whl", hash = "sha256:09f30690b99ce34e0da64d20dab372ee54431745e4efb78ac938234a282d15f9"}, + {file = "pyarrow-18.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d5ca5d707e158540312e09fd907f9f49bacbe779ab5236d9699ced14d2293b8"}, + {file = "pyarrow-18.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d6331f280c6e4521c69b201a42dd978f60f7e129511a55da9e0bfe426b4ebb8d"}, + {file = "pyarrow-18.0.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:3ac24b2be732e78a5a3ac0b3aa870d73766dd00beba6e015ea2ea7394f8b4e55"}, + {file = "pyarrow-18.0.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:b30a927c6dff89ee702686596f27c25160dd6c99be5bcc1513a763ae5b1bfc03"}, + {file = "pyarrow-18.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:8f40ec677e942374e3d7f2fad6a67a4c2811a8b975e8703c6fd26d3b168a90e2"}, + {file = "pyarrow-18.0.0.tar.gz", hash = "sha256:a6aa027b1a9d2970cf328ccd6dbe4a996bc13c39fd427f502782f5bdb9ca20f5"}, +] + +[package.extras] +test = ["cffi", "hypothesis", "pandas", "pytest", "pytz"] + [[package]] name = "pycparser" version = "2.22" @@ -3278,4 +3132,4 @@ test = ["websockets"] [metadata] lock-version = "2.0" python-versions = ">=3.10,<=3.11" -content-hash = "cb4804889ac4415f7653137f5decbd7a4e0df71ba696dce8c3266c45bef3a3fd" +content-hash = "76f5c92854154a1603f7ea72947f9c97f9d8a9461695c10d9a877e38f4111fa6" diff --git a/pyproject.toml b/pyproject.toml index 57adefa..a399796 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -17,7 +17,7 @@ pathlib2 = "^2.3.7.post1" pandas = "^2.2.3" setuptools = ">=14.0" numpy = "^2.1.3" -fastparquet = "^2024.11.0" +pyarrow = "^18.0.0" [tool.poetry.group.dev.dependencies] From 66425a1b0605a5e883f80683b86433b448aa8e0c Mon Sep 17 00:00:00 2001 From: Cameron Mattson Date: Wed, 20 Nov 2024 17:50:55 -0700 Subject: [PATCH 15/16] Modified code to show output of files in pathlib directory. --- .github/workflows/python-app.yml | 2 +- tests/test_correctness_pairwise_compare_manager.py | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/python-app.yml b/.github/workflows/python-app.yml index d9bddd9..df61817 100644 --- a/.github/workflows/python-app.yml +++ b/.github/workflows/python-app.yml @@ -39,5 +39,5 @@ jobs: - name: Test with pytest run: | - poetry run pytest + poetry run pytest -s working-directory: ${{ github.workspace }} diff --git a/tests/test_correctness_pairwise_compare_manager.py b/tests/test_correctness_pairwise_compare_manager.py index 8a10cb7..bec1558 100644 --- a/tests/test_correctness_pairwise_compare_manager.py +++ b/tests/test_correctness_pairwise_compare_manager.py @@ -12,6 +12,10 @@ "data/nf1_schwann_cell_painting_data/3.processing_features/data/bulk_profiles" ).resolve(strict=True) +for file in data_dir.iterdir(): + if file.is_file(): + print(file) + plate4df = pd.read_parquet(data_dir / "Plate_4_bulk_feature_selected.parquet") plate4df["Metadata_siRNA"] = plate4df["Metadata_siRNA"].fillna("No siRNA") From 65414f4c3abbe0bc06675cd6c4df9128aa5de065 Mon Sep 17 00:00:00 2001 From: Cameron Mattson Date: Thu, 21 Nov 2024 09:05:37 -0700 Subject: [PATCH 16/16] Added dataset and modified github actions workflow, and tests to use added dataset. --- .github/workflows/python-app.yml | 2 -- data/Plate_4_bulk_feature_selected.parquet | Bin 0 -> 1739197 bytes ...st_correctness_pairwise_compare_manager.py | 2 +- .../test_fault_injections_compare_manager.py | 2 +- 4 files changed, 2 insertions(+), 4 deletions(-) create mode 100644 data/Plate_4_bulk_feature_selected.parquet diff --git a/.github/workflows/python-app.yml b/.github/workflows/python-app.yml index df61817..b32cb4a 100644 --- a/.github/workflows/python-app.yml +++ b/.github/workflows/python-app.yml @@ -20,8 +20,6 @@ jobs: steps: - name: Checkout code with submodules uses: actions/checkout@v4 - with: - submodules: true - name: Set up Python uses: actions/setup-python@v5 diff --git a/data/Plate_4_bulk_feature_selected.parquet b/data/Plate_4_bulk_feature_selected.parquet new file mode 100644 index 0000000000000000000000000000000000000000..4052d9ad1f5603804894e905edb03206b5f880d4 GIT binary patch literal 1739197 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

erD!KCy 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%0DP>aJ0=DQwm4jlli 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%0A*y-#vz{|pt0)lF$u$az<$TErO+T@v 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𝔠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

mytAX%_yu<)TCtQI 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�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�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 _OL?vU}tD>FG#*|PZuv~=$EdqGG?nArr)01 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 j2>gS